{"version":3,"file":"eui-components-layout.mjs","sources":["../../layout/eui-toolbar/toolbar-logo/toolbar-logo.component.ts","../../layout/eui-toolbar/toolbar-logo/toolbar-logo.component.html","../../layout/eui-toolbar/toolbar-environment/toolbar-environment.component.ts","../../layout/eui-toolbar/toolbar-app/toolbar-app.component.ts","../../layout/eui-toolbar/toolbar-app/toolbar-app.component.html","../../layout/eui-toolbar/toolbar-items/toolbar-items.component.ts","../../layout/eui-toolbar/toolbar-item/toolbar-item.component.ts","../../layout/eui-toolbar/toolbar-mega-menu/toolbar-mega-menu-container.component.ts","../../layout/eui-toolbar/toolbar-mega-menu/toolbar-mega-menu-container.component.html","../../layout/eui-toolbar/toolbar-mega-menu/toolbar-mega-menu.component.ts","../../layout/eui-toolbar/toolbar-mega-menu/toolbar-mega-menu.component.html","../../layout/eui-toolbar/toolbar.component.ts","../../layout/eui-toolbar/toolbar.component.html","../../layout/eui-toolbar/toolbar-center/toolbar-center.component.ts","../../layout/eui-toolbar/toolbar-navbar-item/toolbar-navbar-item.component.ts","../../layout/eui-toolbar/toolbar-navbar/toolbar-navbar.component.ts","../../layout/eui-toolbar/toolbar-navbar/toolbar-navbar.component.html","../../layout/eui-toolbar/toolbar-selector/toolbar-selector.component.ts","../../layout/eui-toolbar/toolbar-selector/toolbar-selector.component.html","../../layout/eui-toolbar/toolbar-search/toolbar-search.component.ts","../../layout/eui-toolbar/toolbar-search/toolbar-search.component.html","../../layout/eui-app/eui-app-sidebar/sidebar.component.ts","../../layout/eui-app/eui-app-sidebar/sidebar.component.html","../../layout/eui-app/eui-app-sidebar/sidebar-body/sidebar-body.component.ts","../../layout/eui-app/eui-app-sidebar/sidebar-body/sidebar-body.component.html","../../layout/eui-app/eui-app-sidebar/sidebar-menu/sidebar-menu.component.ts","../../layout/eui-app/eui-app-sidebar/sidebar-menu/sidebar-menu.component.html","../../layout/eui-app/eui-app-sidebar/sidebar-header/sidebar-header.component.ts","../../layout/eui-app/eui-app-sidebar/sidebar-footer/sidebar-footer.component.ts","../../layout/eui-app/eui-app-sidebar/sidebar-header-user-profile/sidebar-header-user-profile.component.ts","../../layout/eui-app/eui-app-sidebar/sidebar-header-user-profile/sidebar-header-user-profile.component.html","../../layout/eui-app/eui-app-sidebar/sidebar-drawer/sidebar-drawer.component.ts","../../layout/eui-app/eui-app-sidebar/sidebar-drawer/sidebar-drawer.component.html","../../layout/eui-sidebar-toggle/sidebar-toggle.component.ts","../../layout/eui-sidebar-toggle/sidebar-toggle.component.html","../../layout/eui-app/eui-app-toolbar/toolbar.component.ts","../../layout/eui-app/eui-app-toolbar/toolbar.component.html","../../layout/eui-app/eui-app-toolbar/toolbar-items-mobile.component.ts","../../layout/eui-app/eui-app.component.ts","../../layout/eui-app/eui-app.component.html","../../layout/eui-app/eui-app-header/header.component.ts","../../layout/eui-app/eui-app-header/header.component.html","../../layout/eui-app/eui-app-footer/footer.component.ts","../../layout/eui-app/eui-app-top-message/top-message.component.ts","../../layout/eui-app/eui-app-top-message/top-message.component.html","../../layout/eui-app/eui-app-breadcrumb/breadcrumb.component.ts","../../layout/eui-app/eui-app-side-container/side-container.component.ts","../../layout/eui-app/eui-app-side-container/side-container.component.html","../../layout/eui-footer/footer.component.ts","../../layout/eui-header/header-right-content/header-right-content.component.ts","../../layout/eui-header/header.component.ts","../../layout/eui-header/header.component.html","../../layout/eui-header/header-app/header-app-name.component.ts","../../layout/eui-header/header-app/header-app-subtitle.component.ts","../../layout/eui-header/header-app/header-app-name-logo.component.ts","../../layout/eui-header/header-app/header-app.component.ts","../../layout/eui-header/header-app/header-app.component.html","../../layout/eui-header/header-environment/header-environment.component.ts","../../layout/eui-header/header-logo/header-logo.component.ts","../../layout/eui-header/header-logo/header-logo.component.html","../../layout/eui-header/header-user-profile/header-user-profile.component.ts","../../layout/eui-header/header-user-profile/header-user-profile.component.html","../../layout/eui-header/header-search/header-search.component.ts","../../layout/eui-header/header-search/header-search.component.html","../../layout/eui-notifications/eui-notification-item.component.ts","../../layout/eui-notifications/eui-notification-item.component.html","../../layout/eui-notifications/eui-notifications.component.ts","../../layout/eui-notifications/eui-notifications.component.html","../../layout/eui-notifications-v2/eui-notification-item.component.ts","../../layout/eui-notifications-v2/eui-notification-item.component.html","../../layout/eui-notifications-v2/eui-notifications.component.ts","../../layout/eui-notifications-v2/eui-notifications.component.html","../../layout/index.ts","../../layout/eui-components-layout.ts"],"sourcesContent":["import { Component, ChangeDetectionStrategy, HostBinding, ViewEncapsulation, Input, HostListener, OnInit, inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { EUI_CONFIG_TOKEN, EuiConfig } from '@eui/core';\n\n/**\n * @description\n * Logo component for toolbar placement, displaying organization branding with automatic navigation to home page.\n * Provides clickable logo linking to home route with support for custom or default Europa flag logo.\n * Automatically resolves asset paths using EuiConfig for flexible asset location configuration.\n * Integrates with Angular Router for navigation on click.\n * Typically used within eui-toolbar for consistent branding across the application.\n * \n * @usageNotes\n * ```html\n * <!-- Default Europa flag logo -->\n * <eui-app>\n *   <eui-app-toolbar>\n *     <eui-toolbar>\n *       <eui-toolbar-logo></eui-toolbar-logo>\n *       <eui-toolbar-mega-menu [items]=\"menuItems\"></eui-toolbar-mega-menu>\n *     </eui-toolbar>\n *   </eui-app-toolbar>\n * </eui-app>\n *\n * <!-- Custom logo -->\n * <eui-toolbar-logo\n *   logoUrl=\"assets/custom-logo.png\"\n *   homeUrl=\"/home\"\n *   logoHeight=\"32px\"\n *   logoWidth=\"48px\">\n * </eui-toolbar-logo>\n * ```\n *\n * ### Accessibility\n * - Logo is clickable and navigates to home page\n * - Provides visual branding and orientation\n * - Keyboard accessible via click handler\n * - Focus visible for keyboard navigation\n * - Alt text should be provided in template\n *\n * ### Notes\n * - Must be used within eui-toolbar for proper layout\n * - Positioned at the start of the toolbar (leftmost)\n * - Default logo: Europa flag small (36x53px)\n * - Custom logoUrl overrides default logo\n * - homeUrl defaults to '..' for parent route navigation\n * - Logo dimensions customizable via logoHeight and logoWidth\n * - Asset path resolved via EuiConfig (default: 'assets')\n * - Click handler navigates using Angular Router\n * - Simpler alternative to eui-header-logo for toolbar layouts\n * - No theme adaptation (unlike eui-header-logo)\n * - PNG format for default logo\n */\n@Component({\n    selector: 'eui-toolbar-logo',\n    templateUrl: './toolbar-logo.component.html',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n})\nexport class EuiToolbarLogoComponent implements OnInit {\n    @HostBinding() class = 'eui-toolbar-logo';\n\n    /**\n     * URL or route path for the home page navigation when logo is clicked.\n     * Supports both relative and absolute paths for Angular routing.\n     * @default '..'\n     */\n    @Input() homeUrl = '..';\n\n    /**\n     * Custom URL path to a logo image file.\n     * When provided, overrides the default Europa flag logo.\n     * Optional - defaults to Europa flag small logo when not provided.\n     */\n    @Input() logoUrl: string;\n\n    /**\n     * CSS height value for the logo image.\n     * Accepts any valid CSS height unit (px, rem, %, etc.).\n     * @default '36px'\n     */\n    @Input() logoHeight = '36px'\n\n    /**\n     * CSS width value for the logo image.\n     * Accepts any valid CSS width unit (px, rem, %, etc.).\n     * @default '53px'\n     */\n    @Input() logoWidth = '53px';\n\n    protected logoUrlGenerated;\n    protected logoStyle;\n    private router = inject(Router);\n    private config = inject<EuiConfig>(EUI_CONFIG_TOKEN, { optional: true })!;\n\n    @HostListener('click')\n    onClick(): void {\n        this.router.navigate([this.homeUrl]);\n    }\n\n    ngOnInit(): void {\n        let assetsBaseUrl = this.config?.appConfig?.global?.eui?.assetsBaseUrl;\n        if (!assetsBaseUrl) {\n            assetsBaseUrl = 'assets';\n        }\n\n        if (!this.logoUrl) {\n            this.logoUrlGenerated = `${assetsBaseUrl}/images/ec-europa/logos/europa-flag-small.png`;\n        } else {\n            this.logoUrlGenerated = this.logoUrl;\n        }\n\n        this.logoStyle = `width:${this.logoWidth}; height:${this.logoHeight};`;\n    }\n}\n","<img [src]=\"logoUrlGenerated\" class=\"eui-toolbar-logo__image\" alt=\"European Commission\" [style]=\"logoStyle\"/>\n","import { Component, HostBinding, ViewEncapsulation } from '@angular/core';\n\n/**\n * @description\n * Environment indicator component for toolbar placement, displaying the current application environment.\n * Provides visual distinction between different deployment environments (dev, test, production, etc.) to prevent user confusion.\n * Content is projected via ng-content allowing custom environment labels and styling.\n * Typically displays text like \"Development\", \"Testing\", \"Staging\" with distinct background colors.\n * Used within eui-toolbar for consistent environment indication across the application.\n * \n * @usageNotes\n * ```html\n * <eui-app>\n *   <eui-app-toolbar>\n *     <eui-toolbar>\n *       <eui-toolbar-environment>DEV</eui-toolbar-environment>\n *       <eui-toolbar-mega-menu [items]=\"menuItems\"></eui-toolbar-mega-menu>\n *     </eui-toolbar>\n *   </eui-app-toolbar>\n * </eui-app>\n * ```\n *\n * ### Accessibility\n * - Environment text readable by screen readers\n * - Provides critical deployment context\n * - Visual distinction prevents accidental actions\n * - Text content should be concise and clear\n *\n * ### Notes\n * - Must be used within eui-toolbar for proper layout\n * - Positioned at start of toolbar (leftmost)\n * - Content projected via ng-content\n * - Common values: \"DEV\", \"TEST\", \"ACC\", \"PROD\"\n * - Styling typically uses distinct background colors per environment\n * - Simpler alternative to eui-header-environment for toolbar layouts\n * - No integration with EuiAppShellService\n * - Use when toolbar is primary navigation instead of header\n */\n@Component({\n    selector: 'eui-toolbar-environment',\n    template: '<ng-content />',\n    encapsulation: ViewEncapsulation.None,\n})\nexport class EuiToolbarEnvironmentComponent {\n    @HostBinding() class = 'eui-toolbar-environment';\n}\n","import { Component, HostBinding, ViewEncapsulation, Input } from '@angular/core';\n\n/**\n * @description\n * Application name and subtitle component for toolbar placement, displaying the application title and descriptive text.\n * Provides a compact representation of application identity suitable for toolbar layouts.\n * Displays application name with optional subtitle for additional context or section information.\n * Typically used within eui-toolbar for consistent application branding in toolbar-based layouts.\n * Simpler alternative to eui-header-app for toolbar-specific use cases.\n * \n * @usageNotes\n * ```html\n * <eui-app>\n *   <eui-app-toolbar>\n *     <eui-toolbar>\n *       <eui-toolbar-app\n *         appName=\"MyWorkplace\"\n *         appSubTitle=\"Dashboard\">\n *       </eui-toolbar-app>\n *     </eui-toolbar>\n *   </eui-app-toolbar>\n * </eui-app>\n * ```\n *\n * ### Accessibility\n * - Application name provides primary identification\n * - Subtitle offers additional context\n * - Text content readable by screen readers\n * - Semantic structure for application branding\n *\n * ### Notes\n * - Must be used within eui-toolbar for proper layout\n * - Positioned in toolbar content area\n * - Simpler alternative to eui-header-app\n * - Designed for toolbar-specific layouts\n * - appName for primary application title\n * - appSubTitle for additional context (optional)\n * - Both inputs are optional\n * - Compact design suitable for toolbar height\n * - No integration with EuiAppShellService (unlike eui-header-app)\n * - Use when toolbar is primary navigation instead of header\n */\n@Component({\n    selector: 'eui-toolbar-app',\n    templateUrl: './toolbar-app.component.html',\n    encapsulation: ViewEncapsulation.None,\n})\nexport class EuiToolbarAppComponent {\n    @HostBinding() class = 'eui-toolbar-app';\n\n    /**\n     * Application name displayed in the toolbar.\n     * Provides the primary application identifier for toolbar branding.\n     * Optional.\n     */\n    @Input() appName: string;\n\n    /**\n     * Subtitle or descriptive text displayed below the application name.\n     * Provides additional context about the application, current section, or user role.\n     * Optional.\n     */\n    @Input() appSubTitle: string;\n}\n","@if (appSubTitle) {\n    <div class=\"eui-toolbar-app__name\">\n        {{ appName }}\n    </div>\n    <div class=\"eui-toolbar-app__subTitle\">\n        {{ appSubTitle }}\n    </div>\n} @else {\n    {{ appName }}\n}\n","import { Component, HostBinding, Input, booleanAttribute } from '@angular/core';\n\n/**\n * @description\n * Container component for grouping toolbar items with flexible positioning options.\n * Provides a wrapper for organizing multiple toolbar items (buttons, icons, menus) with left or right alignment.\n * Content is projected via ng-content allowing flexible composition of toolbar actions and utilities.\n * Supports right-side positioning through euiEnd or euiPositionRight properties for consistent layout control.\n * Typically used within eui-toolbar to organize action buttons, user profile, notifications, and other toolbar elements.\n * \n * @usageNotes\n * ```html\n * <eui-app>\n *   <eui-app-toolbar>\n *     <eui-toolbar>\n *       <eui-toolbar-mega-menu [items]=\"menuItems\"></eui-toolbar-mega-menu>\n *       <eui-toolbar-items euiPositionRight>\n *         <eui-toolbar-item-notifications>\n *           <eui-notifications [items]=\"notificationItems\"></eui-notifications>\n *         </eui-toolbar-item-notifications>\n *         <eui-toolbar-item>\n *           <button euiButton>Action</button>\n *         </eui-toolbar-item>\n *       </eui-toolbar-items>\n *     </eui-toolbar>\n *   </eui-app-toolbar>\n * </eui-app>\n * ```\n *\n * ### Accessibility\n * - Groups related toolbar actions logically\n * - Content should be keyboard accessible\n * - Interactive elements must have proper focus states\n * - Maintains consistent toolbar navigation\n *\n * ### Notes\n * - Must be used within eui-toolbar for proper layout\n * - Groups multiple eui-toolbar-item components\n * - Content projected via ng-content\n * - euiPositionRight or euiEnd for right alignment (default: left)\n * - Both positioning properties are functionally equivalent\n * - Common content: notifications, buttons, user profile\n * - Typically used for right-aligned actions\n * - Works with eui-toolbar-item children\n * - Flexbox-based positioning\n * - Multiple instances can exist in same toolbar\n */\n@Component({\n    selector: 'eui-toolbar-items',\n    template: '<ng-content />',\n})\nexport class EuiToolbarItemsComponent {\n    @HostBinding('class')\n    get cssClasses(): string {\n        const rootClass = 'eui-toolbar-items';\n        return [\n            rootClass,\n            this.euiEnd ? `${rootClass}--position-right` : '',\n            this.euiPositionRight ? `${rootClass}--position-right` : '',\n        ].join(' ').trim();\n    }\n\n    /**\n     * Positions the toolbar items container to the right end of the toolbar.\n     * When true, applies right alignment styling using flexbox positioning.\n     * @default false\n     */\n    @Input({ transform: booleanAttribute }) euiEnd = false;\n\n    /**\n     * Alternative property to position the toolbar items container to the right.\n     * When true, applies right alignment styling. Functionally equivalent to euiEnd.\n     * @default false\n     */\n    @Input({ transform: booleanAttribute }) euiPositionRight = false;\n}\n","import { Component, HostBinding } from '@angular/core';\n\n/**\n * @description\n * Individual toolbar item wrapper component for consistent spacing and styling of toolbar elements.\n * Provides a standardized container for single toolbar actions, buttons, icons, or custom content.\n * Content is projected via ng-content allowing flexible composition of any toolbar element.\n * Automatically applies consistent spacing and alignment within the toolbar layout.\n * Typically used within eui-toolbar-items to wrap individual buttons, icons, or interactive elements.\n * \n * @usageNotes\n * ```html\n * <eui-app>\n *   <eui-app-toolbar>\n *     <eui-toolbar>\n *       <eui-toolbar-items euiPositionRight>\n *         <eui-toolbar-item>\n *           <button euiButton>Action</button>\n *         </eui-toolbar-item>\n *         <eui-toolbar-item>\n *           <button euiIconButton icon=\"settings\"></button>\n *         </eui-toolbar-item>\n *       </eui-toolbar-items>\n *     </eui-toolbar>\n *   </eui-app-toolbar>\n * </eui-app>\n * ```\n *\n * ### Accessibility\n * - Provides consistent spacing for toolbar elements\n * - Content should be keyboard accessible\n * - Interactive elements must have proper focus states\n * - Maintains visual consistency across toolbar\n *\n * ### Notes\n * - Must be used within eui-toolbar-items for proper layout\n * - Wraps individual toolbar elements (buttons, icons, etc.)\n * - Content projected via ng-content\n * - Automatic spacing and alignment applied\n * - Common content: buttons, icon buttons, custom controls\n * - Use one eui-toolbar-item per toolbar element\n * - Works with euiPositionRight directive on parent\n * - Provides consistent visual rhythm in toolbar\n */\n@Component({\n    selector: 'eui-toolbar-item',\n    template: '<ng-content />',\n})\nexport class EuiToolbarItemComponent {\n    @HostBinding('class') string = 'eui-toolbar-item';\n}\n","import { KeyValuePipe, NgTemplateOutlet } from '@angular/common';\nimport { Component, HostBinding, Input, ViewChildren, QueryList, ElementRef, EventEmitter, Output } from '@angular/core';\nimport { RouterLink, RouterLinkActive } from '@angular/router';\nimport { TranslateModule } from '@ngx-translate/core';\n\nimport { EuiMenuItem } from '@eui/base';\nimport { EUI_BADGE } from '@eui/components/eui-badge';\nimport { EUI_ICON } from '@eui/components/eui-icon';\n\n/**\n * @description\n * Container component for rendering the mega menu dropdown content with multi-column layout.\n * Displays grouped menu items organized by parent, column index, and column label in a structured grid.\n * Handles menu item clicks and executes associated command functions.\n * Used internally by EuiToolbarMegaMenuComponent to render the dropdown panel content.\n * Supports router links, badges, and icons on menu items.\n * \n * @usageNotes\n * ```html\n * <!-- Used internally by eui-toolbar-mega-menu -->\n * <eui-toolbar-mega-menu-container\n *   [megaMenuItemsGrouped]=\"groupedItems\"\n *   [activeMenu]=\"0\">\n * </eui-toolbar-mega-menu-container>\n * ```\n * ```typescript\n * // Grouped structure created by parent component\n * megaMenuItemsGrouped = {\n *   0: {\n *     '0': { 'Category A': [{ label: 'Item 1', url: '/item1' }] },\n *     '1': { 'Category B': [{ label: 'Item 2', url: '/item2' }] }\n *   }\n * };\n * ```\n *\n * ### Accessibility\n * - Router link integration for navigation\n * - Keyboard accessible menu items\n * - Semantic structure for menu layout\n * - Focus management for dropdown items\n * - ARIA attributes inherited from parent\n *\n * ### Notes\n * - Used internally by eui-toolbar-mega-menu\n * - Not intended for standalone usage\n * - Renders dropdown panel content\n * - Multi-column grid layout automatically generated\n * - megaMenuItemsGrouped structure: parent → column → label → items\n * - activeMenu determines which parent's children to display\n * - onItemClick() executes item command functions\n * - Supports router links via RouterLink directive\n * - Badge and icon support on menu items\n * - Column labels used as section headers\n * - Grid layout adapts to number of columns\n * - Items grouped by megaMenuColIndex and megaMenuColLabel\n */\n@Component({\n    selector: 'eui-toolbar-mega-menu-container',\n    templateUrl: './toolbar-mega-menu-container.component.html',\n    styleUrl: './toolbar-mega-menu-container.component.scss',\n    imports: [\n        ...EUI_ICON, \n        ...EUI_BADGE, \n        TranslateModule, \n        KeyValuePipe, \n        NgTemplateOutlet,\n        RouterLink,\n        RouterLinkActive,\n    ],\n})\nexport class EuiToolbarMegaMenuContainerComponent<Items = EuiMenuItem> {\n    @HostBinding('class') string = 'eui-toolbar-mega-menu-container';\n\n    /**\n     * Grouped menu items organized by parent index, column index, and column label.\n     * Structure: { [parentIndex]: { [colIndex]: { [colLabel]: Items[] } } }\n     * Provided by parent EuiToolbarMegaMenuComponent after processing menu items.\n     * Required for rendering the multi-column dropdown layout.\n     */\n    @Input() megaMenuItemsGrouped: { [parentIndex: number]: { [colIndex: string]: { [colLabel: string]: Items[] } } } ;\n\n    /**\n     * Index of the currently active menu item whose dropdown is displayed.\n     * Used to determine which parent menu's children to render in the dropdown.\n     * When null, no dropdown is displayed.\n     * @default null\n     */\n    @Input() activeMenu: number = null;\n\n    @ViewChildren('submenuItemLink', { read: ElementRef }) submenuItemLinks: QueryList<ElementRef<HTMLElement>>;\n\n    /**\n     * Provides accessibility labeling for the dropdown menu.\n     * @default `eUI sub menu`\n     */\n    @Input() ariaLabel = 'eUI sub menu';\n    /**\n     * Emits an output event when item is clicked\n     */\n    @Output() itemClick = new EventEmitter<EuiMenuItem>();\n\n    /**\n     * Handles click events on menu items within the dropdown.\n     * Executes the item's command function if defined.\n     * Called internally when user clicks a menu item in the dropdown panel.\n     */\n    onItemClick(item: EuiMenuItem): void {\n        if (item.command) {\n            item.command();\n        }\n\n        this.itemClick.emit(item);\n    }\n\n    /**\n     * Focuses the first item in the submenu.\n     */\n    focusFirstItem(): void {\n        const items = this.submenuItemLinks.toArray();\n        if (items.length > 0) {\n            items[0].nativeElement.focus();\n        }\n    }\n\n    /**\n     * Handles keyboard navigation for submenu items.\n     * @param event - The keyboard event from the submenu item.\n     */\n    protected onSubmenuKeydown(event: KeyboardEvent): void {\n        const key = event.key;\n        const target = event.target as HTMLElement;\n        const menuItems = this.submenuItemLinks.toArray().map(ref => ref.nativeElement);\n        const currentIndex = menuItems.indexOf(target);\n\n        if (currentIndex === -1) return;\n\n        switch (key) {\n            case 'ArrowDown':\n                event.preventDefault();\n                this.focusNextItem(menuItems, currentIndex);\n                break;\n            case 'ArrowUp':\n                event.preventDefault();\n                this.focusPreviousItem(menuItems, currentIndex);\n                break;\n            case 'Home':\n                event.preventDefault();\n                menuItems[0]?.focus();\n                break;\n            case 'End':\n                event.preventDefault();\n                menuItems[menuItems.length - 1]?.focus();\n                break;\n            case 'Tab':\n                this.itemClick.emit(null);\n                break;\n            case 'Enter':\n            case ' ':\n                event.preventDefault();\n                if (target.getAttribute('aria-disabled') !== 'true') {\n                    target.click();\n                }\n                break;\n        }\n    }\n\n    /**\n     * Focuses the next item in the list based on the current index\n     * @param items\n     * @param currentIndex \n     */\n    private focusNextItem(items: HTMLElement[], currentIndex: number): void {\n        items[(currentIndex + 1) % items.length]?.focus();\n    }\n\n    /**\n     * Focuses the previous item in the list based on the current index\n     * @param items\n     * @param currentIndex \n     */\n    private focusPreviousItem(items: HTMLElement[], currentIndex: number): void {\n        items[currentIndex === 0 ? items.length - 1 : currentIndex - 1]?.focus();\n    }\n}\n","<nav class=\"eui-toolbar-mega-menu-container-nav\" [aria-label]=\"ariaLabel\" (keydown)=\"onSubmenuKeydown($event)\">\n    @for (col of megaMenuItemsGrouped[activeMenu] | keyvalue; track $index) {\n        <div class=\"eui-toolbar-mega-menu-container-col\">\n            @for (label of col.value | keyvalue; track $index) {\n                <div class=\"eui-toolbar-mega-menu-container-item-container\">\n                    <ul role=\"menu\" class=\"eui-toolbar-mega-menu-container-items\">\n                        @if (label.key !== 'eui-no-label') {\n                            <li role=\"none\" class=\"eui-toolbar-mega-menu-container-item-category\">\n                                <span\n                                    #submenuItemLink\n                                    role=\"menuitem\"\n                                    [attr.tabindex]=\"-1\"\n                                    [attr.aria-disabled]=\"true\"\n                                    class=\"eui-toolbar-mega-menu-container-item-category-label\">\n                                    {{ label.key }}\n                                </span>\n                            </li>\n                        }\n                        @for (item of label.value; track $index) {\n                            @if (item['visible'] !== false) { <!-- Reverted ! operator to prevent passing when visible is null or undefined -->\n                                @if (item['url'] || item['urlExternal'] || item['command']) {\n                                    <li\n                                        class=\"eui-toolbar-mega-menu-container-item\"\n                                        role=\"none\"\n                                        [class.eui-toolbar-mega-menu-container-item-disabled]=\"item['disabled']\">\n                                        @if (item['url']) {\n                                            <a\n                                                #submenuItemLink\n                                                role=\"menuitem\"\n                                                title=\"{{ item['label'] | translate }}\"\n                                                [attr.tabindex]=\"-1\"\n                                                [attr.aria-disabled]=\"item['disabled']\"\n                                                class=\"eui-toolbar-mega-menu-container-item-link\"\n                                                [routerLink]=\"!item['disabled'] ? item['url'] : null\"\n                                                [queryParams]=\"item['queryParams']\"\n                                                routerLinkActive=\"eui-toolbar-mega-menu-container-item-link--active\">\n                                                <ng-template [ngTemplateOutlet]=\"itemContent\" [ngTemplateOutletContext]=\"{ $implicit: item }\"/>\n                                            </a>\n                                        } @else if (item['urlExternal']) {\n                                            <a\n                                                #submenuItemLink\n                                                role=\"menuitem\"\n                                                title=\"{{ item['label'] | translate }}\"\n                                                [attr.tabindex]=\"-1\"\n                                                [attr.aria-disabled]=\"item['disabled']\"\n                                                class=\"eui-toolbar-mega-menu-container-item-link\"\n                                                [href]=\"!item['disabled'] ? item['urlExternal'] : null\"\n                                                [target]=\"item['urlExternalTarget'] ? item['urlExternalTarget'] : '_blank'\">\n                                                <ng-template [ngTemplateOutlet]=\"itemContent\" [ngTemplateOutletContext]=\"{ $implicit: item }\"/>\n                                            </a>\n                                        } @else {\n                                            <a\n                                                #submenuItemLink\n                                                role=\"menuitem\"\n                                                title=\"{{ item['label'] | translate }}\"\n                                                [attr.tabindex]=\"-1\"\n                                                [attr.aria-disabled]=\"item['disabled']\"\n                                                class=\"eui-toolbar-mega-menu-container-item-link\"\n                                                href=\"javascript: void(0)\"\n                                                (click)=\"onItemClick(item)\">\n                                                <ng-template [ngTemplateOutlet]=\"itemContent\" [ngTemplateOutletContext]=\"{ $implicit: item }\"/>\n                                            </a>\n                                        }\n                                    </li>\n                                } @else {\n                                    <li role=\"none\" class=\"eui-toolbar-mega-menu-container-item-category\">\n                                        <span\n                                            #submenuItemLink\n                                            role=\"menuitem\"\n                                            title=\"{{ item['label'] | translate }}\"\n                                            [attr.tabindex]=\"-1\"\n                                            [attr.aria-disabled]=\"true\"\n                                            class=\"eui-toolbar-mega-menu-container-item-category-label\">\n                                            <ng-template [ngTemplateOutlet]=\"itemContent\" [ngTemplateOutletContext]=\"{ $implicit: item }\"/>\n                                        </span>\n                                    </li>\n                                }\n                            }\n                        }\n                    </ul>\n                </div>\n            }\n        </div>\n    }\n</nav>\n\n<!-- PROJECTED CONTENT -->\n<ng-template #itemContent let-item>\n    <div class=\"eui-toolbar-mega-menu-container-item-start-block\">\n        @if (item['iconSvgName']) {\n            <eui-icon-svg icon=\"{{ item['iconSvgName'] }}\" fillColor=\"{{ item['iconTypeClass'] || null }}\" />\n        } @else if (item['hasMarker']) {\n            <eui-icon-svg fillColor=\"{{ item['markerTypeClass'] || null }}\" icon=\"eui-circle-fill\" size=\"2xs\"/>\n        }\n    </div>\n\n    <div class=\"eui-toolbar-mega-menu-container-item-content-block\">\n        <div class=\"eui-toolbar-mega-menu-container-item-label-container\">\n            <span class=\"eui-toolbar-mega-menu-container-item-label\">{{ item['label'] | translate }}</span>\n        </div>\n    </div>\n\n    <div class=\"eui-toolbar-mega-menu-container-item-end-block\">\n        @if (item['tagLabel']) {\n            <eui-badge euiOutline euiVariant=\"{{ item['tagTypeClass'] }}\">{{ item['tagLabel'] | translate }}</eui-badge>\n        }\n    </div>\n</ng-template>","import { Component, HostBinding, ChangeDetectionStrategy, OnInit, inject, Input, OnDestroy, OnChanges, SimpleChanges, ViewChild, TemplateRef,\n    ElementRef, ViewContainerRef, AfterViewInit, signal, input, ViewChildren, QueryList } from '@angular/core';\nimport { ActivatedRoute, IsActiveMatchOptions, NavigationEnd, Router, RouterLink, RouterLinkActive } from '@angular/router';\nimport {\n    ConnectionPositionPair,\n    FlexibleConnectedPositionStrategyOrigin,\n    Overlay,\n    OverlayModule,\n    OverlayRef,\n    PositionStrategy,\n    RepositionScrollStrategy,\n} from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { filter, startWith, Subject, Subscription, takeUntil } from 'rxjs';\nimport { TranslateModule } from '@ngx-translate/core';\n\nimport { EuiAppShellService, EuiMenuItem, uniqueId } from '@eui/core';\nimport { EUI_ICON } from '@eui/components/eui-icon';\nimport { EUI_BADGE } from '@eui/components/eui-badge';\n\nimport { EuiToolbarMegaMenuContainerComponent } from './toolbar-mega-menu-container.component';\n\n/**\n * @description\n * Mega menu component for toolbar providing a multi-column dropdown navigation with grouped menu items.\n * Displays a horizontal menu bar with expandable dropdown panels containing organized navigation links.\n * Automatically groups child menu items by column index and label for structured multi-column layout.\n * Integrates with Angular CDK Overlay for positioning and manages outside click/escape key dismissal.\n * Synchronizes menu items with EuiAppShellService state for global access and reactive updates.\n * Supports badges, icons, and custom commands on menu items with router link integration.\n * \n * @usageNotes\n * ```html\n * <eui-app>\n *   <eui-app-toolbar>\n *     <eui-toolbar>\n *       <eui-toolbar-mega-menu [items]=\"menuItems\"></eui-toolbar-mega-menu>\n *     </eui-toolbar>\n *   </eui-app-toolbar>\n * </eui-app>\n * ```\n * ```typescript\n * menuItems: EuiMenuItem[] = [\n *   {\n *     label: 'Products',\n *     children: [\n *       { label: 'Item 1', url: '/products/1', megaMenuColIndex: 0, megaMenuColLabel: 'Category A' },\n *       { label: 'Item 2', url: '/products/2', megaMenuColIndex: 1, megaMenuColLabel: 'Category B' }\n *     ]\n *   }\n * ];\n * ```\n *\n * ### Accessibility\n * - Navigation role for semantic structure\n * - Keyboard accessible (Escape to close)\n * - Router link integration for navigation\n * - Outside click dismissal\n * - Focus management for dropdown\n * - ARIA attributes for menu structure\n *\n * ### Notes\n * - Must be used within eui-toolbar for proper layout\n * - Positioned at start of toolbar (leftmost)\n * - Items array uses EuiMenuItem interface\n * - Children grouped by megaMenuColIndex and megaMenuColLabel\n * - Multi-column dropdown layout automatically generated\n * - CDK Overlay for dropdown positioning\n * - Outside click and Escape key close dropdown\n * - Synchronizes with EuiAppShellService state\n * - Supports badges and icons on menu items\n * - Router link integration for navigation\n * - Custom command functions on items\n * - openMenu() method to programmatically open\n * - closeMenu() method to programmatically close\n * - onItemClick() executes item commands\n * - Overlay disposed on navigation\n * - Responsive positioning strategy\n */\n@Component({\n    selector: 'eui-toolbar-mega-menu',\n    templateUrl: './toolbar-mega-menu.component.html',\n    styleUrl: './toolbar-mega-menu.scss',\n    changeDetection: ChangeDetectionStrategy.Default,\n    imports: [\n        ...EUI_ICON, \n        ...EUI_BADGE, \n        EuiToolbarMegaMenuContainerComponent,\n        RouterLink, \n        RouterLinkActive,\n        OverlayModule,\n        TranslateModule,\n    ],\n})\nexport class EuiToolbarMegaMenuComponent<Items = EuiMenuItem> implements OnInit, AfterViewInit, OnDestroy, OnChanges {\n    @HostBinding('class') string = 'eui-toolbar-mega-menu';\n\n    /**\n     * Array of menu items to display in the mega menu.\n     * Each item should conform to EuiMenuItem interface with support for children, megaMenuColIndex, and megaMenuColLabel properties.\n     * Child items are automatically grouped by column for multi-column dropdown layout.\n     * Required for menu display.\n     */\n    @Input() items: Items[];\n    /**\n     * Provides a unique label for the menubar.\n     * @default `eUI mega menu ${uniqueId()}`\n     */\n    @Input() ariaLabel = `eUI mega menu ${uniqueId()}`;\n    /**\n     * Provides a unique id for the menubar\n     * @default `eui-mega-menu ${uniqueId()}`\n     */\n    @Input() id = `eui-mega-menu ${uniqueId()}`;\n    readonly itemsInput = input<Items[]>([]);\n    \n    protected megaMenuItems: Items[];\n    protected megaMenuItemsGrouped: { [parentIndex: number]: { [colIndex: string]: { [colLabel: string]: Items[] } } } ;\n    protected readonly activeMenu = signal<number | null>(null);\n    protected active: EuiMenuItem = null;\n    protected activeParent: EuiMenuItem = null;\n    \n    @ViewChild('templatePortalContent') templatePortalContent: TemplateRef<ElementRef>;\n    @ViewChild(EuiToolbarMegaMenuContainerComponent) subMenuComponent: EuiToolbarMegaMenuContainerComponent;\n    @ViewChildren('menuItemLink', { read: ElementRef }) menuItemLinks: QueryList<ElementRef<HTMLElement>>;\n\n    private asService = inject(EuiAppShellService);\n    private subs: Subscription = new Subscription();\n    private overlayRef: OverlayRef;\n    private templatePortal: TemplatePortal<unknown>;\n    private overlay = inject(Overlay);\n    private viewContainerRef = inject(ViewContainerRef);\n    private destroy$: Subject<boolean> = new Subject<boolean>();\n    private router = inject(Router);\n    private route = inject(ActivatedRoute);\n\n    ngOnChanges(changes: SimpleChanges): void {\n        if (changes.items) {\n            this.asService.setState({\n                ...this.asService.state,\n                menuLinks: changes.items.currentValue,\n            });\n            this.megaMenuItems = this.filterMegaMenuItems(this.items);\n        }\n    }\n\n    ngOnInit(): void {\n        this.megaMenuItems = this.filterMegaMenuItems(this.items);\n        this.megaMenuItemsGrouped = this.groupByColIdPerParent(this.megaMenuItems);\n\n        this.subs.add(this.asService.getState<Items[]>('menuLinks').subscribe((links: Items[]) => (this.items = links)));  \n        \n        this.router.events.pipe(\n            filter((e): e is NavigationEnd => e instanceof NavigationEnd),\n            startWith(new NavigationEnd(0, this.router.url, this.router.url)),\n            takeUntil(this.destroy$),\n        ).subscribe(() => {\n            this.active = this.findActiveItemByUrl(this.router, this.route, this.items).active;\n            this.activeParent = this.findActiveItemByUrl(this.router, this.route, this.items).parent;\n\n            this.closeMenu();\n        });\n    }\n\n    ngAfterViewInit(): void {\n        this.templatePortal = new TemplatePortal(this.templatePortalContent, this.viewContainerRef);\n    }\n\n    ngOnDestroy(): void {\n        this.destroy$.next(true);\n        this.destroy$.unsubscribe();\n\n        this.activeMenu.set(null);\n        this.overlayRef?.dispose();\n        this.overlayRef = null;\n\n        this.asService.setState({\n            ...this.asService.state,\n            hasToolbarMegaMenu: false,\n        });\n    }\n\n    toggleMenu(menuIndex: number, e: PointerEvent): void {\n        if (this.activeMenu() === menuIndex) {\n            this.closeMenu();\n        } else {\n            this.openMenu(menuIndex, e);\n        }\n    }\n\n    /**\n     * Programmatically opens the mega menu dropdown for a specific menu item.\n     * Creates overlay with positioning strategy and attaches menu content portal.\n     * Sets up outside click and escape key listeners for dismissal.\n     */\n    openMenu(menuIndex: number, target: Element | PointerEvent): void {\n        this.activeMenu.set(menuIndex);\n        this.overlayRef?.dispose();\n\n        const element = target instanceof Element ? target : (target as PointerEvent).currentTarget as Element;\n        const positionStrategy = this.getPositionStrategy(element);\n        const scrollStrategy = this.getScrollStrategy();\n\n        this.overlayRef = this.overlay.create({\n            hasBackdrop: false,\n            positionStrategy,\n            scrollStrategy,\n            disposeOnNavigation: true,\n        });\n        this.overlayRef.attach(this.templatePortal);\n\n        this.overlayRef\n            .outsidePointerEvents()\n            .pipe(takeUntil(this.destroy$))\n            .subscribe((e) => {\n                if (!(e.target as HTMLElement).closest('.eui-toolbar-mega-menu-item-container')) {\n                    this.closeMenu();\n                }\n            });\n\n        this.overlayRef\n            .keydownEvents()\n            .pipe(takeUntil(this.destroy$))\n            .subscribe((keyboardEvent) => {\n                if (keyboardEvent.key?.toLowerCase() === 'escape') {\n                    const activeIndex = this.activeMenu();\n                    this.closeMenu();\n                    if (activeIndex !== null) {\n                        this.getMenuItemElements()[activeIndex]?.focus();\n                    }\n                }\n            });\n\n        document.querySelectorAll('.cdk-overlay-container')?.forEach(el => {\n            if (!el.classList.contains('eui-21')) {\n                el.classList.add('eui-21');\n            }\n        }); \n    }\n\n    /**\n     * Programmatically closes the currently open mega menu dropdown.\n     * Disposes of the overlay and resets active menu state.\n     * Can be called externally to close the menu programmatically.\n     */\n    public closeMenu(returnFocus = false): void {\n        const activeIndex = returnFocus ? this.activeMenu() : null;\n        this.activeMenu.set(null);\n        this.overlayRef?.dispose();\n        this.overlayRef = null;\n        \n        if (returnFocus && activeIndex !== null) {\n            this.getMenuItemElements()[activeIndex]?.focus();\n        }\n    }\n\n    /**\n     * Handles click events on menu items.\n     * Executes the item's command function if defined.\n     * Called internally when user clicks a menu item.\n     */\n    public onItemClick(item: EuiMenuItem): void {\n        if (item.command) {\n            item.command();\n        }\n\n        this.closeMenu();\n    }\n\n    /**\n     * If the Tab key in the submenu was pressed and null emitted, it captures the host megamenu element,\n     * closes the menu and focuses the next focusable element after the megamenu. If item is not null calls the closeMenu method.\n     * @param item - The item that was clicked or null if tab was pressed\n     */\n    public onContainerItemClick(item: EuiMenuItem): void {\n        if (item === null) {\n            const host = this.menuItemLinks.last?.nativeElement.closest('eui-toolbar-mega-menu') as HTMLElement;\n            this.closeMenu();\n            setTimeout(() => {\n                const focusable = Array.from(document.querySelectorAll<HTMLElement>(\n                    'button:not([disabled]):not([tabindex=\"-1\"]), a[href]:not([tabindex=\"-1\"]), input:not([disabled]):not([tabindex=\"-1\"]), select:not([disabled]):not([tabindex=\"-1\"]), textarea:not([disabled]):not([tabindex=\"-1\"]), [tabindex]:not([tabindex=\"-1\"])',\n                )).filter(el => !el.closest('.cdk-overlay-container') && !host?.contains(el));\n                const following = focusable.filter(el =>\n                    !!(host.compareDocumentPosition(el) & Node.DOCUMENT_POSITION_FOLLOWING),\n                );\n                following[0]?.focus();\n            });\n            return;\n        }\n        this.closeMenu();\n    }\n\n    /**\n     * Applies the keyboard navigation actions for each key pressed\n     * @param event - The keyboard event from the menue item\n     */\n    protected onMenubarKeydown(event: KeyboardEvent): void {\n        const key = event.key;\n        const target = event.target as HTMLElement;\n        const menuItems = this.getMenuItemElements();\n        const currentIndex = menuItems.indexOf(target);\n\n        if (currentIndex === -1) return;\n\n        switch (key) {\n            case 'ArrowRight':\n                event.preventDefault();\n                this.focusNextItem(menuItems, currentIndex);\n                break;\n            case 'ArrowLeft':\n                event.preventDefault();\n                this.focusPreviousItem(menuItems, currentIndex);\n                break;\n            case 'ArrowDown':\n                event.preventDefault();\n                if (this.megaMenuItems[currentIndex]?.['children']?.length > 0) {\n                    const wasOpen = this.activeMenu() === currentIndex;\n                    if (!wasOpen) {\n                        this.openMenu(currentIndex, target);\n                    }\n                    setTimeout(() => this.subMenuComponent?.focusFirstItem(), 0);\n                }\n                break;\n            case 'Home':\n                event.preventDefault();\n                this.focusItem(menuItems, 0);\n                break;\n            case 'End':\n                event.preventDefault();\n                this.focusItem(menuItems, menuItems.length - 1);\n                break;\n            case 'Enter':\n            case ' ':\n                event.preventDefault();\n                if (this.megaMenuItems[currentIndex]?.['disabled']) return;\n                if (this.megaMenuItems[currentIndex]?.['children']?.length > 0) {\n                    const wasOpen = this.activeMenu() === currentIndex;\n                    if (!wasOpen) {\n                        this.openMenu(currentIndex, target);\n                    }\n                    setTimeout(() => this.subMenuComponent?.focusFirstItem(), 0);\n                } else {\n                    target.click();\n                }\n                break;\n        }\n    }\n\n    /**\n     * Maps the menu item links to html elements\n     * @returns HTMLElement[]\n     */\n    private getMenuItemElements(): HTMLElement[] {\n        return this.menuItemLinks.toArray().map(ref => ref.nativeElement);\n    }\n\n    /**\n     * Focuses the next item based on the current index\n     * @param items\n     * @param currentIndex\n     */\n    private focusNextItem(items: HTMLElement[], currentIndex: number): void {\n        const nextIndex = (currentIndex + 1) % items.length;\n        this.focusItem(items, nextIndex);\n    }\n\n    /**\n     * Focuses the previous item based on the current index\n     * @param items\n     * @param currentIndex\n     */\n    private focusPreviousItem(items: HTMLElement[], currentIndex: number): void {\n        const prevIndex = currentIndex === 0 ? items.length - 1 : currentIndex - 1;\n        this.focusItem(items, prevIndex);\n    }\n\n    /**\n     * Sets the tabindex value based on the index of the item\n     * @param items\n     * @param index\n     */\n    private focusItem(items: HTMLElement[], index: number): void {\n        items.forEach((item, i) => item.setAttribute('tabindex', i === index ? '0' : '-1'));\n        items[index]?.focus();\n    }\n\n    private groupByColIdPerParent(items: Items[]): { [parentIndex: number]: { [colIndex: string]: { [colLabel: string]: Items[] } } } {\n        const result: { [parentIndex: number]: { [colIndex: string]: { [colLabel: string]: Items[] } } } = {};\n\n        items.forEach((parent, index) => {\n            const group: { [colIndex: string]: { [colLabel: string]: Items[] } } = {};\n\n            parent['children']?.forEach((child: Items) => {\n                const colId = child['megaMenuColIndex'] ?? 'eui-no-col-label';\n                const colLabel = child['megaMenuColLabel'] ?? 'eui-no-label';\n\n                if (!group[colId]) {\n                    group[colId] = {};\n                }\n\n                if (!group[colId][colLabel]) {\n                    group[colId][colLabel] = [];\n                }\n\n                group[colId][colLabel].push(child);\n            });\n\n            result[index] = group;\n        });\n\n        return result;\n    }\n\n    private filterMegaMenuItems(items: Items[]): Items[] {\n        return items\n            .map((item) => {\n                const newItem = { ...item };\n                if (newItem['children']) {\n                    newItem['children'] = this.filterMegaMenuItems(newItem['children']);\n                }\n                return newItem;\n            });\n    }    \n\n    /**\n     * Return the position strategy for the panel.\n     *\n     * @returns A CDK position strategy.\n     */\n    private getPositionStrategy(target: Element): PositionStrategy {\n        return this.overlay\n            .position()\n            .flexibleConnectedTo(target as FlexibleConnectedPositionStrategyOrigin)\n            .withPositions([new ConnectionPositionPair({ originX: 'start', originY: 'bottom' }, { overlayX: 'start', overlayY: 'top' }, 0, 0)])\n            .withFlexibleDimensions(false)\n    }\n\n    /**\n     * Return the scroll strategy for the panel.\n     *\n     * @returns A CDK scroll strategy.\n     */\n    private getScrollStrategy(): RepositionScrollStrategy {\n        return this.overlay.scrollStrategies.reposition({ scrollThrottle: 10 });\n    }\n\n    private findActiveItemByUrl(router: Router, route: ActivatedRoute, items: EuiMenuItem[]): { active: EuiMenuItem; parent: EuiMenuItem } {\n        const match: IsActiveMatchOptions = { paths: 'exact', queryParams: 'ignored', fragment: 'ignored', matrixParams: 'ignored' };\n        const toCommands = (url: string): string[] => url.trim().replace(/^\\.\\//, '').split('/').filter(Boolean);\n        const visit = (list: EuiMenuItem[], parent: EuiMenuItem): { active: EuiMenuItem; parent: EuiMenuItem } => {\n            for (const item of list ?? []) {\n                const url = (item?.url ?? '').trim();\n\n                if (url && url !== '#') {\n                    const tree = router.createUrlTree(toCommands(url), { relativeTo: route });\n                    if (router.isActive(tree, match)) return { active: item, parent };\n                }\n\n                const found = visit(item?.children ?? [], item);\n                if (found) return found;\n            }\n            return null;\n        };\n\n        return visit(items, null) ?? { active: null, parent: null };\n    }\n\n}\n","<nav [id]=\"id\" class=\"eui-toolbar-mega-menu-content\" [aria-label]=\"ariaLabel\">\n    <ul role=\"menubar\" class=\"eui-toolbar-mega-menu-items\" (keydown)=\"onMenubarKeydown($event)\">\n        @for(megaMenuItem of megaMenuItems; track $index; let i = $index) {\n            @if (megaMenuItem['visible'] !== false) {\n                <li role=\"none\" class=\"eui-toolbar-mega-menu-item\"\n                    [class.eui-toolbar-mega-menu-item--active]=\"activeMenu() === i || megaMenuItem['active'] || parentLi.isActive || megaMenuItem['label'] === activeParent?.label\"\n                    [class.eui-toolbar-mega-menu-item--parent-active]=\"megaMenuItem['active'] || parentLi.isActive || megaMenuItem['label'] === activeParent?.label\"\n                    [class.eui-toolbar-mega-menu-item--disabled]=\"megaMenuItem['disabled']\"\n                    routerLinkActive=\"eui-toolbar-mega-menu-item--active\"\n                    #parentLi=\"routerLinkActive\">\n                    @if (!megaMenuItem['url'] && !megaMenuItem['urlExternal']) {\n                        <a #menuItemLink href=\"javascript: void(0)\"\n                            role=\"menuitem\"\n                            title=\"{{ megaMenuItem['label'] | translate }}\"\n                            [attr.tabindex]=\"i === 0 ? 0 : -1\"\n                            [attr.aria-haspopup]=\"megaMenuItem['children']?.length > 0 ? 'true' : null\"\n                            [attr.aria-expanded]=\"megaMenuItem['children']?.length > 0 ? (activeMenu() === i) : null\"\n                            [attr.aria-disabled]=\"megaMenuItem['disabled']\"\n                            class=\"eui-toolbar-mega-menu-item-container\"\n                            (click)=\"toggleMenu(i, $event)\">    \n                            @if (megaMenuItem['iconSvgName']) {\n                                <eui-icon-svg icon=\"{{ megaMenuItem['iconSvgName'] }}\" fillColor=\"{{ megaMenuItem['iconTypeClass'] || null }}\" class=\"eui-u-mr-xs\"/>\n                            } @else if (megaMenuItem['iconSvgUrl']) {\n                                <eui-icon-svg iconUrl=\"{{ megaMenuItem['iconSvgUrl'] }}\" fillColor=\"{{ megaMenuItem['iconTypeClass'] || null }}\" class=\"eui-u-mr-xs\"/>\n                            }\n                            <span class=\"eui-toolbar-mega-menu-item-label\">{{ megaMenuItem['label'] | translate }}</span>\n                            @if (megaMenuItem['children'] && megaMenuItem['children'].length > 0) {\n                                @if (activeMenu() === i) {\n                                    <eui-icon-svg icon=\"eui-chevron-up\" size=\"xs\" class=\"eui-u-ml-xs\" />\n                                } @else {\n                                    <eui-icon-svg icon=\"eui-chevron-down\" size=\"xs\" class=\"eui-u-ml-xs\" />\n                                }\n                            }\n                        </a>\n                    } @else {\n                        @if (megaMenuItem['url']) {\n                            <a  #menuItemLink=\"routerLinkActive\"\n                                [routerLink]=\"!megaMenuItem['disabled'] ? megaMenuItem['url'] : null\"\n                                role=\"menuitem\"\n                                title=\"{{ megaMenuItem['label'] | translate }}\"\n                                [attr.tabindex]=\"i === 0 ? 0 : -1\"\n                                [attr.aria-haspopup]=\"megaMenuItem['children']?.length > 0 ? 'true' : null\"\n                                [attr.aria-expanded]=\"megaMenuItem['children']?.length > 0 ? (activeMenu() === i) : null\"\n                                [attr.aria-disabled]=\"megaMenuItem['disabled']\"\n                                routerLinkActive=\"eui-toolbar-mega-menu-item-container--active\"\n                                [queryParams]=\"megaMenuItem['queryParams']\"\n                                class=\"eui-toolbar-mega-menu-item-container\"\n                                [class.eui-toolbar-mega-menu-item-container--active]=\"activeMenu() === i || megaMenuItem['active'] || menuItemLink.isActive || megaMenuItem['label'] === activeParent?.label\"\n                                [class.eui-toolbar-mega-menu-item--disabled]=\"megaMenuItem['disabled']\"\n                                (click)=\"toggleMenu(i, $event)\">\n    \n                                @if (megaMenuItem['iconSvgName']) {\n                                    <eui-icon-svg icon=\"{{ megaMenuItem['iconSvgName'] }}\" fillColor=\"{{ megaMenuItem['iconTypeClass'] || null }}\" class=\"eui-u-mr-xs\"/>\n                                } @else if (megaMenuItem['iconSvgUrl']) {\n                                    <eui-icon-svg iconUrl=\"{{ megaMenuItem['iconSvgUrl'] }}\" fillColor=\"{{ megaMenuItem['iconTypeClass'] || null }}\" class=\"eui-u-mr-xs\"/>\n                                }\n                                <span class=\"eui-toolbar-mega-menu-item-label\">{{ megaMenuItem['label'] | translate }}</span>\n                                @if (megaMenuItem['children'] && megaMenuItem['children'].length > 0) {\n                                    <eui-icon-svg icon=\"eui-chevron-down\" size=\"xs\" class=\"eui-u-ml-xs\" />\n                                }\n                            </a>\n                        } @else if (megaMenuItem['urlExternal']) {\n                            <a #menuItemLink [href]=\"!megaMenuItem['disabled'] ? megaMenuItem['urlExternal'] : null\"\n                                [target]=\"megaMenuItem['urlExternalTarget'] ? megaMenuItem['urlExternalTarget'] : '_blank'\"\n                                role=\"menuitem\"\n                                title=\"{{ megaMenuItem['label'] | translate }}\"\n                                [attr.tabindex]=\"i === 0 ? 0 : -1\"\n                                [attr.aria-disabled]=\"megaMenuItem['disabled']\"\n                                class=\"eui-toolbar-mega-menu-item-container\"\n                                [class.eui-toolbar-mega-menu-item-container--active]=\"activeMenu() === i || megaMenuItem['active']\"\n                                [class.eui-toolbar-mega-menu-item--disabled]=\"megaMenuItem['disabled']\">\n                                {{ megaMenuItem['label'] | translate }}\n                            </a>\n                        } @else if (megaMenuItem['command']) {\n                            <a #menuItemLink href=\"javascript: void(0)\"\n                                role=\"menuitem\"\n                                title=\"{{ megaMenuItem['label'] | translate }}\"\n                                [attr.tabindex]=\"i === 0 ? 0 : -1\"\n                                [attr.aria-disabled]=\"megaMenuItem['disabled']\"\n                                class=\"eui-toolbar-mega-menu-item-container\"\n                                [class.eui-toolbar-mega-menu-item-container--active]=\"activeMenu() === i || megaMenuItem['active']\"\n                                [class.eui-toolbar-mega-menu-item--disabled]=\"megaMenuItem['disabled']\"\n                                (click)=\"onItemClick(megaMenuItem)\">\n                                {{ megaMenuItem['label'] | translate }}\n                            </a>\n                        }\n                    }\n                </li>\n            }\n        }\n    </ul>\n</nav>\n\n<ng-template #templatePortalContent>\n    <!-- @if (activeMenu()) { -->\n        <eui-toolbar-mega-menu-container [megaMenuItemsGrouped]=\"megaMenuItemsGrouped\" [activeMenu]=\"activeMenu()\" (itemClick)=\"onContainerItemClick($event)\"/>\n    <!-- } -->\n</ng-template>\n","import {\n    Component,\n    HostBinding,\n    ViewEncapsulation,\n    forwardRef,\n    ContentChild,\n    booleanAttribute,\n    ElementRef,\n    AfterViewInit,\n    OnInit,\n    inject,\n    linkedSignal,\n    input,\n} from '@angular/core';\nimport { EuiAppShellService } from '@eui/core';\nimport { AsyncPipe, NgTemplateOutlet } from '@angular/common';\n\nimport { EUI_USER_PROFILE } from '@eui/components/eui-user-profile';\n\nimport { EuiToolbarLogoComponent } from './toolbar-logo/toolbar-logo.component';\nimport { EuiToolbarEnvironmentComponent } from './toolbar-environment/toolbar-environment.component';\nimport { EuiToolbarAppComponent } from './toolbar-app/toolbar-app.component';\nimport { EuiToolbarItemsComponent } from './toolbar-items/toolbar-items.component';\nimport { EuiToolbarItemComponent } from './toolbar-item/toolbar-item.component';\nimport { EuiToolbarMegaMenuComponent } from './toolbar-mega-menu/toolbar-mega-menu.component';\n\n/**\n * @description\n * Toolbar component providing a horizontal container for navigation, branding, and action items.\n * Supports primary and secondary visual variants with automatic theme inheritance from parent eui-app-toolbar.\n * Integrates with EuiAppShellService for layout coordination and responsive behavior.\n * Provides content projection areas for logo, environment indicator, app name, menu items, and user profile.\n * Detects and adapts to mega menu presence for enhanced navigation capabilities.\n * \n * @usageNotes\n * ```html\n * <!-- Basic toolbar within app structure -->\n * <eui-app>\n *   <eui-app-toolbar>\n *     <eui-toolbar>\n *       <eui-toolbar-mega-menu [items]=\"menuItems\"></eui-toolbar-mega-menu>\n *       <eui-toolbar-items euiPositionRight>\n *         <eui-toolbar-item-notifications>\n *           <eui-notifications [count]=\"5\" [items]=\"notifications\"></eui-notifications>\n *         </eui-toolbar-item-notifications>\n *       </eui-toolbar-items>\n *     </eui-toolbar>\n *   </eui-app-toolbar>\n * </eui-app>\n *\n * <!-- Secondary toolbar variant -->\n * <eui-toolbar [euiSecondary]=\"true\">\n *   <eui-toolbar-mega-menu [items]=\"menuItems\"></eui-toolbar-mega-menu>\n * </eui-toolbar>\n * ```\n *\n * ### Accessibility\n * - Provides semantic navigation structure for toolbar items\n * - Keyboard navigation supported through child components\n * - Focus management handled by individual toolbar items\n * - Theme variants maintain sufficient contrast ratios\n * - Mega menu integration provides accessible dropdown navigation\n *\n * ### Notes\n * - Must be used within eui-app-toolbar for proper layout integration\n * - euiPrimary applies primary brand colors (default: true)\n * - euiSecondary applies secondary theme and overrides primary\n * - Automatically inherits secondary styling from parent eui-app-toolbar\n * - Content projection expects eui-toolbar-mega-menu and eui-toolbar-items children\n * - Detects mega menu presence for layout adjustments\n * - Integrates with EuiAppShellService for responsive behavior\n * - Theme variants are mutually exclusive (secondary overrides primary)\n */\n@Component({\n    selector: 'eui-toolbar',\n    templateUrl: './toolbar.component.html',\n    styleUrl: './toolbar.component.scss',\n    encapsulation: ViewEncapsulation.None,\n    imports: [\n        AsyncPipe,\n        NgTemplateOutlet,\n        EuiToolbarLogoComponent,\n        EuiToolbarEnvironmentComponent,\n        EuiToolbarAppComponent,\n        EuiToolbarItemsComponent,\n        EuiToolbarItemComponent,\n        ...EUI_USER_PROFILE,\n    ],\n})\nexport class EuiToolbarComponent implements OnInit, AfterViewInit {\n\n    @HostBinding('class')\n    get cssClasses(): string {\n        return [\n            'eui-toolbar',\n            this.euiSecondarySignal() ? 'eui-toolbar--secondary eui--secondary' : '',\n            this.euiPrimarySignal() ? 'eui-toolbar--primary eui--primary' : '',\n        ].join(' ').trim();\n    }\n\n    @ContentChild(forwardRef(() => EuiToolbarMegaMenuComponent))\n    hasMegaMenu: EuiToolbarMegaMenuComponent;\n\n    asService = inject(EuiAppShellService);\n    /**\n     * Applies secondary theme styling to the toolbar.\n     * When true, uses secondary colors and automatically disables primary styling.\n     * Automatically inherits secondary styling from parent eui-app-toolbar if present.\n     * @default false\n     */\n    euiSecondary = input(false, { transform: booleanAttribute })\n\n    /**\n     * Applies primary theme styling to the toolbar.\n     * When true, uses primary brand colors. Automatically disabled when euiSecondary is true.\n     * @default true\n     */\n    euiPrimary = input(true, { transform: booleanAttribute });\n    private euiSecondarySignal = linkedSignal({\n      source: this.euiSecondary,\n      computation: () => this.euiSecondary(),\n    });\n    private euiPrimarySignal  = linkedSignal({\n      source: this.euiPrimary,\n      computation: () => this.euiPrimary(),\n    });\n    private elRef = inject(ElementRef);\n\n    ngOnInit(): void {\n        if (this.euiSecondarySignal()) {\n            this.euiPrimarySignal.set(false);\n        }\n    }\n\n    ngAfterViewInit(): void {\n        const appToolbar = this.elRef.nativeElement.closest('eui-app-toolbar');\n        if (appToolbar && appToolbar.classList.contains('eui--secondary')) {\n            this.euiSecondarySignal.set(true);\n            this.euiPrimarySignal.set(false);\n        }\n    }\n}\n","@if ( (asService.state$ | async).hasHeader && (asService.breakpoints$ | async).isMobile ) {\n\n    <div class=\"eui-toolbar__left\">\n        @if ( ( asService.state$ | async).hasHeaderLogo ) {\n            <eui-toolbar-logo></eui-toolbar-logo>\n        }\n        @if ( ( asService.state$ | async).hasHeaderEnvironment ) {\n            <eui-toolbar-environment>\n                {{ (asService.state$ | async).environmentValue }}\n            </eui-toolbar-environment>\n        }\n        @if ( (asService.state$ | async).appName ) {\n            <eui-toolbar-app appName=\"{{ (asService.state$ | async).appName }}\"></eui-toolbar-app>\n        }\n    </div>\n\n    <ng-container *ngTemplateOutlet=\"toolbarItems\" />\n\n    <ng-container *ngTemplateOutlet=\"toolbarLanguageSelector\" />\n\n} @else {\n    @if ( (asService.state$ | async).hasHeader ) {\n\n        @if ( hasMegaMenu ) {\n            <ng-container *ngTemplateOutlet=\"toolbarMegaMenu\" />\n        } @else {\n            <ng-container *ngTemplateOutlet=\"toolbarNavbar\" />\n            <ng-container *ngTemplateOutlet=\"toolbarCenter\" />\n        }\n        <ng-container *ngTemplateOutlet=\"toolbarItems\" />\n\n    } @else {\n\n        <div class=\"eui-toolbar__left\">\n            <ng-content select=\"eui-toolbar-logo\"></ng-content>\n            <ng-content select=\"eui-toolbar-app\"></ng-content>\n            <ng-content select=\"eui-toolbar-environment\"></ng-content>\n            <ng-container *ngTemplateOutlet=\"toolbarNavbar\"></ng-container>\n        </div>\n\n        <ng-container *ngTemplateOutlet=\"toolbarCenter\" />\n\n        <div class=\"eui-toolbar__right\">\n            <ng-container *ngTemplateOutlet=\"toolbarItems\"></ng-container>\n        </div>\n    }\n    <ng-container *ngTemplateOutlet=\"toolbarLanguageSelector\" />\n}\n\n<ng-template #toolbarCenter>\n    <ng-content select=\"eui-toolbar-center\" />\n</ng-template>\n\n<ng-template #toolbarItems>\n    <ng-content select=\"eui-toolbar-items\" />\n</ng-template>\n\n<ng-template #toolbarNavbar>\n    <ng-content select=\"eui-toolbar-navbar\" />\n</ng-template>\n\n<ng-template #toolbarMegaMenu>\n    @if (hasMegaMenu) {\n        <ng-content select=\"eui-toolbar-mega-menu\"></ng-content>\n    }\n</ng-template>\n\n<ng-template #toolbarLanguageSelector>\n    <ng-content select=\"eui-language-selector\" />\n</ng-template>\n","import { Component, HostBinding } from '@angular/core';\n\n/**\n * @description\n * Center-aligned container component for toolbar content, positioning elements in the middle of the toolbar.\n * Provides a dedicated region for center-aligned content such as application name, search bar, or navigation tabs.\n * Content is projected via ng-content allowing flexible composition of centered toolbar elements.\n * Automatically applies flexbox centering within the toolbar layout for consistent positioning.\n * Typically used within eui-toolbar to organize content in the center region between left and right toolbar items.\n * \n * @usageNotes\n * ```html\n * <eui-app>\n *   <eui-app-toolbar>\n *     <eui-toolbar>\n *       <eui-toolbar-mega-menu [items]=\"menuItems\"></eui-toolbar-mega-menu>\n *       <eui-toolbar-center>\n *         <eui-toolbar-app appName=\"MyWorkplace\"></eui-toolbar-app>\n *       </eui-toolbar-center>\n *       <eui-toolbar-items euiPositionRight>\n *         <button euiButton>Action</button>\n *       </eui-toolbar-items>\n *     </eui-toolbar>\n *   </eui-app-toolbar>\n * </eui-app>\n * ```\n *\n * ### Accessibility\n * - Center positioning provides visual balance\n * - Content should follow proper semantic structure\n * - Interactive elements must be keyboard accessible\n * - Maintains consistent toolbar layout\n *\n * ### Notes\n * - Must be used within eui-toolbar for proper layout\n * - Positioned in center of toolbar between left and right content\n * - Content projected via ng-content\n * - Flexbox centering applied automatically\n * - Common content: app name, search bar, navigation tabs\n * - Works alongside toolbar-items and toolbar-mega-menu\n * - Provides visual balance in toolbar layout\n * - Responsive behavior inherits from toolbar\n */\n@Component({\n    selector: 'eui-toolbar-center',\n    template: '<ng-content />',\n})\nexport class EuiToolbarCenterComponent {\n    @HostBinding('class') string = 'eui-toolbar__center';\n}\n","import {\n    ChangeDetectionStrategy,\n    Component,\n    HostBinding,\n    HostListener,\n    Input,\n    booleanAttribute,\n    inject,\n} from '@angular/core';\nimport { EuiToolbarNavbarComponent } from '../toolbar-navbar/toolbar-navbar.component';\n\n/**\n * @description\n * Navigation bar item component representing a single clickable tab or link within the toolbar navbar.\n * Provides visual active state indication and keyboard navigation support (Enter/Space keys).\n * Automatically registers with parent EuiToolbarNavbarComponent to coordinate selection state.\n * Emits selection events to parent when clicked or activated via keyboard.\n * Typically used within eui-toolbar-navbar for horizontal tab navigation.\n * \n * @usageNotes\n * ```html\n * <eui-app>\n *   <eui-app-toolbar>\n *     <eui-toolbar>\n *       <eui-toolbar-navbar (itemClick)=\"onNavItemClick($event)\">\n *         <eui-toolbar-navbar-item\n *           id=\"home\"\n *           label=\"Home\"\n *           [isActive]=\"true\">\n *         </eui-toolbar-navbar-item>\n *         <eui-toolbar-navbar-item\n *           id=\"products\"\n *           label=\"Products\">\n *         </eui-toolbar-navbar-item>\n *       </eui-toolbar-navbar>\n *     </eui-toolbar>\n *   </eui-app-toolbar>\n * </eui-app>\n * ```\n *\n * ### Accessibility\n * - Keyboard accessible (Enter/Space keys)\n * - Tabindex 0 for keyboard navigation\n * - Active state visually indicated\n * - Focus visible for keyboard users\n * - Click and keyboard events handled\n * - ARIA attributes for tab role\n *\n * ### Notes\n * - Must be used within eui-toolbar-navbar for proper functionality\n * - Automatically registers with parent navbar component\n * - id required for selection tracking\n * - label required for display text\n * - isActive controls active/selected state (default: false)\n * - Only one item should be active at a time (managed by parent)\n * - Click handler notifies parent via itemSelected()\n * - Enter and Space keys trigger selection\n * - Active state applies 'eui-toolbar-navbar-item--active' class\n * - Parent navbar coordinates selection across all items\n * - Tabindex 0 makes item keyboard focusable\n * - Template displays label text only\n */\n@Component({\n    selector: 'eui-toolbar-navbar-item',\n    template: '{{ label }}',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class EuiToolbarNavbarItemComponent {\n    @HostBinding('class')\n    get cssClasses(): string {\n        return [\n            'eui-toolbar-navbar-item',\n            this.isActive ? 'eui-toolbar-navbar-item--active' : '',\n        ].join(' ').trim();\n    }\n\n    @HostBinding('attr.tabindex') tabindex = 0;\n\n    /**\n     * Unique identifier for the navbar item.\n     * Used by parent navbar component to track and manage selection state.\n     * Required for proper item identification and selection handling.\n     */\n    @Input() id: string;\n\n    /**\n     * Text label displayed for the navbar item.\n     * Provides the visible text content for the navigation tab.\n     * Required for item display.\n     */\n    @Input() label: string;\n\n    /**\n     * Indicates whether this navbar item is currently active/selected.\n     * When true, applies active styling to highlight the current selection.\n     * @default false\n     */\n    @Input({ transform: booleanAttribute }) isActive = false;\n\n    navBarComponentParent: EuiToolbarNavbarComponent;\n\n    constructor() {\n        const navBarComponent = inject(EuiToolbarNavbarComponent, { host: true, optional: true })!;\n\n        this.navBarComponentParent = navBarComponent;\n    }\n\n    @HostListener('click')\n    protected onClick(): void {\n        this._click();\n    }\n\n    @HostListener('keydown', ['$event'])\n    protected onKeydown(event: KeyboardEvent): void {\n        switch (event.code) {\n            case 'Enter':\n            case 'Space':\n                event.preventDefault();\n                event.stopPropagation();\n                this._click();\n                break;\n        }\n    }\n\n    private _click(): void {\n        this.navBarComponentParent.itemSelected(this.id);\n    }\n}\n","import {\n    Component,\n    ChangeDetectionStrategy,\n    HostBinding,\n    ViewEncapsulation,\n    Output,\n    EventEmitter,\n    ContentChildren,\n    forwardRef,\n    QueryList,\n    ElementRef,\n    AfterViewInit,\n    AfterContentInit,\n    inject,\n} from '@angular/core';\nimport { EuiToolbarNavbarItemComponent } from '../toolbar-navbar-item/toolbar-navbar-item.component';\nimport { EuiAppShellService } from '@eui/core';\nimport { EUI_DROPDOWN } from '@eui/components/eui-dropdown';\nimport { EUI_BUTTON } from '@eui/components/eui-button';\nimport { EUI_ICON } from '@eui/components/eui-icon';\nimport { AsyncPipe } from '@angular/common';\n\n/**\n * @description\n * Navigation bar container component for horizontal tab navigation within the toolbar.\n * Manages a collection of navbar items with automatic active state coordination and responsive dropdown fallback.\n * Automatically switches to dropdown mode when navbar items exceed available horizontal space.\n * Integrates with EuiAppShellService for responsive behavior and coordinates selection state across child items.\n * Emits events when navbar items are clicked for parent components to handle navigation logic.\n * \n * @usageNotes\n * ```html\n * <eui-app>\n *   <eui-app-toolbar>\n *     <eui-toolbar>\n *       <eui-toolbar-navbar (itemClick)=\"onNavItemClick($event)\">\n *         <eui-toolbar-navbar-item id=\"home\" [isActive]=\"true\">\n *           Home\n *         </eui-toolbar-navbar-item>\n *         <eui-toolbar-navbar-item id=\"products\">\n *           Products\n *         </eui-toolbar-navbar-item>\n *         <eui-toolbar-navbar-item id=\"about\">\n *           About\n *         </eui-toolbar-navbar-item>\n *       </eui-toolbar-navbar>\n *     </eui-toolbar>\n *   </eui-app-toolbar>\n * </eui-app>\n * ```\n * ```typescript\n * onNavItemClick(itemId: string): void {\n *   console.log('Selected:', itemId);\n * }\n * ```\n *\n * ### Accessibility\n * - Tab navigation keyboard accessible\n * - Active state clearly indicated\n * - Dropdown fallback for overflow\n * - Focus management for navigation\n * - ARIA attributes for tab structure\n * - Keyboard navigation between items\n *\n * ### Notes\n * - Must be used within eui-toolbar for proper layout\n * - Contains eui-toolbar-navbar-item children\n * - Automatically coordinates active state across items\n * - Responsive: switches to dropdown when items overflow\n * - Overflow detection based on parent toolbar width\n * - itemClick event emits selected item id\n * - itemSelected() method updates active states\n * - Only one item can be active at a time\n * - baseItemSelected tracks initially active item\n * - isDropdownView flag controls display mode\n * - Dropdown mode activated automatically on overflow\n * - Integrates with EuiAppShellService for responsive behavior\n */\n@Component({\n    selector: 'eui-toolbar-navbar',\n    templateUrl: './toolbar-navbar.component.html',\n    styleUrl: './toolbar-navbar.component.scss',\n    changeDetection: ChangeDetectionStrategy.Default,\n    encapsulation: ViewEncapsulation.None,\n    imports: [\n        AsyncPipe,\n        ...EUI_ICON,\n        ...EUI_BUTTON,\n        ...EUI_DROPDOWN,\n    ],\n})\nexport class EuiToolbarNavbarComponent implements AfterContentInit, AfterViewInit {\n    @HostBinding() class = 'eui-toolbar-navbar';\n\n    /**\n     * Emitted when a navbar item is clicked or activated.\n     * Payload: string - the id of the selected navbar item\n     * Triggered when user clicks or keyboard-activates any navbar item. Automatically updates active state of all items.\n     */\n    @Output() itemClick: EventEmitter<string> = new EventEmitter();\n\n    @ContentChildren(forwardRef(() => EuiToolbarNavbarItemComponent)) items: QueryList<EuiToolbarNavbarItemComponent>;\n\n    asService = inject(EuiAppShellService);\n    public baseItemSelected: EuiToolbarNavbarItemComponent;\n    public isDropdownView = false;\n    private elementRef = inject(ElementRef);\n\n    ngAfterContentInit(): void {\n        this.baseItemSelected = this.items.filter((i) => i.isActive)[0];\n    }\n\n    ngAfterViewInit(): void {\n        // if (!this.asService?.state?.hasHeader) {\n            const parentWidth = this.elementRef.nativeElement.closest('eui-toolbar').clientWidth;\n            const width = this.elementRef.nativeElement.clientWidth;\n\n            if (width > parentWidth) {\n                setTimeout(() => {\n                    this.isDropdownView = true;\n                }, 1);\n            }\n        // }\n    }\n\n    /**\n     * Handles item selection from child navbar items.\n     * Updates active state across all items and emits itemClick event with selected item id.\n     * Called internally by child EuiToolbarNavbarItemComponent instances.\n     */\n    public itemSelected(id: string): void {\n        this.items.forEach((item) => {\n            if (item.id === id) {\n                item.isActive = true;\n            } else {\n                item.isActive = false;\n            }\n        });\n        this.itemClick.emit(id);\n    }\n}\n","@if ( (asService.breakpoints$ | async).isLtLargeTablet || isDropdownView ) {\n    <eui-dropdown isLabelUpdatedFromSelectedItem>\n        <button euiButton euiSecondary euiSizeS [attr.aria-label]=\"'Button trigger'\">\n            <span class=\"eui-label\">{{ baseItemSelected.label }}</span>\n            <eui-icon-svg icon=\"eui-chevron-down\" size=\"s\"></eui-icon-svg>\n        </button>\n        <eui-dropdown-content>\n            @for (item of items; track item) {\n            <button euiDropdownItem (click)=\"itemSelected(item.id)\" ariaLabel=\"{{ item.label }}\">\n                {{ item.label }}\n            </button>\n            }\n        </eui-dropdown-content>\n    </eui-dropdown>\n} @else {\n    <ng-content />\n}\n","import { AsyncPipe } from '@angular/common';\nimport {\n    Component,\n    ChangeDetectionStrategy,\n    HostBinding,\n    ViewEncapsulation,\n    Input,\n    booleanAttribute,\n    Output,\n    EventEmitter,\n    inject,\n} from '@angular/core';\nimport { EUI_BUTTON } from '@eui/components/eui-button';\nimport { EUI_ICON } from '@eui/components/eui-icon';\nimport { EUI_ICON_BUTTON } from '@eui/components/eui-icon-button';\nimport { EuiAppShellService } from '@eui/core';\n\n/**\n * @description\n * Toolbar selector component providing a clickable button with icon and label for triggering selection actions.\n * Typically used for context switching, workspace selection, or opening dropdown menus in the toolbar.\n * Integrates with EuiAppShellService for responsive behavior and theme coordination.\n * Supports disabled state and emits click events for parent components to handle selection logic.\n * \n * @usageNotes\n * ```html\n * <eui-app>\n *   <eui-app-toolbar>\n *     <eui-toolbar>\n *       <eui-toolbar-selector\n *         label=\"Select Workspace\"\n *         iconSvgName=\"chevron-down:outline\"\n *         [euiDisabled]=\"false\"\n *         (selectorClick)=\"onSelectorClick()\">\n *       </eui-toolbar-selector>\n *     </eui-toolbar>\n *   </eui-app-toolbar>\n * </eui-app>\n * ```\n * ```typescript\n * onSelectorClick(): void {\n *   // Open dropdown or handle selection\n *   console.log('Selector clicked');\n * }\n * ```\n *\n * ### Accessibility\n * - Button keyboard accessible\n * - Disabled state prevents interaction\n * - Label provides context\n * - Icon enhances visual affordance\n * - Focus visible for keyboard navigation\n * - Click events properly handled\n *\n * ### Notes\n * - Must be used within eui-toolbar for proper layout\n * - Positioned in toolbar content area\n * - label for button text (optional)\n * - iconSvgName for button icon (optional)\n * - euiDisabled to disable button (default: false)\n * - selectorClick event emits true on click\n * - Common use: workspace/context switching\n * - Often paired with dropdown menus\n * - Integrates with EuiAppShellService\n * - Responsive behavior inherited from toolbar\n * - Button styling follows EUI button patterns\n */\n@Component({\n    selector: 'eui-toolbar-selector',\n    templateUrl: './toolbar-selector.component.html',\n    styleUrl: './toolbar-selector.component.scss',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    imports: [\n        AsyncPipe,\n        ...EUI_BUTTON,\n        ...EUI_ICON,\n        ...EUI_ICON_BUTTON,\n    ],\n})\nexport class EuiToolbarSelectorComponent {\n    @HostBinding() class = 'eui-toolbar-selector';\n\n    /**\n     * Text label displayed on the selector button.\n     * Provides context for what the selector controls or represents.\n     * Optional.\n     */\n    @Input() label: string;\n\n    /**\n     * SVG icon name displayed on the selector button.\n     * Follows EUI icon naming convention (e.g., 'chevron-down:outline').\n     * Optional.\n     */\n    @Input() iconSvgName: string;\n\n    /**\n     * Disables the selector button preventing user interaction.\n     * When true, button is visually disabled and click events are not emitted.\n     * @default false\n     */\n    @Input({ transform: booleanAttribute }) euiDisabled = false;\n\n    /**\n     * Emitted when the selector button is clicked.\n     * Payload: boolean - always emits true to indicate click occurred\n     * Triggered when user clicks the selector button and it is not disabled.\n     */\n    @Output() selectorClick: EventEmitter<boolean> = new EventEmitter();\n    protected asService = inject(EuiAppShellService);\n\n    onClick(): void {\n        this.selectorClick.emit(true);\n    }\n}\n","@if ((asService.breakpoints$ | async).isLtLargeTablet) {\n    <eui-icon-button [icon]=\"iconSvgName\" (buttonClick)=\"onClick()\"/>\n} @else {\n    <button euiButton euiButtonOutline [euiDisabled]=\"euiDisabled\" (click)=\"onClick()\" class=\"eui-toolbar-selector__button\">\n        {{ label }}\n        <eui-icon-svg [icon]=\"iconSvgName\" size=\"s\" class=\"eui-u-ml-m\"></eui-icon-svg>\n    </button>\n}\n","import {\n    Component,\n    ContentChildren,\n    ChangeDetectionStrategy,\n    HostBinding,\n    Input,\n    Output,\n    EventEmitter,\n    TemplateRef,\n    AfterViewInit,\n    QueryList,\n    booleanAttribute,\n    AfterContentInit,\n    inject,\n} from '@angular/core';\nimport { EUI_AUTOCOMPLETE, EuiAutoCompleteItem } from '@eui/components/eui-autocomplete';\n\nimport { EuiTemplateDirective } from '@eui/components/directives';\nimport { EUI_BUTTON } from '@eui/components/eui-button';\nimport { EUI_ICON } from '@eui/components/eui-icon';\nimport { EUI_ICON_INPUT } from '@eui/components/eui-icon-input';\nimport { AsyncPipe, NgTemplateOutlet } from '@angular/common';\nimport { EUI_INPUT_TEXT } from '@eui/components/eui-input-text';\nimport { FormsModule } from '@angular/forms';\nimport { EuiAppShellService } from '@eui/core';\nimport { EUI_ICON_BUTTON } from '@eui/components/eui-icon-button';\n\n/**\n * @description\n * Toolbar search component providing an expandable search input with autocomplete or plain text input modes.\n * Offers flexible search functionality with optional search button, expand animation, and custom result templates.\n * Supports two modes: autocomplete with dropdown suggestions or simple text input with enter-to-search.\n * Integrates with EuiAppShellService for responsive behavior and theme coordination.\n * Emits events for search actions, selection changes, and focus state for parent components to handle search logic.\n * \n * @usageNotes\n * ```html\n * <!-- Autocomplete mode -->\n * <eui-app>\n *   <eui-app-toolbar>\n *     <eui-toolbar>\n *       <eui-toolbar-search\n *         [isAutocomplete]=\"true\"\n *         [searchResults]=\"searchResults\"\n *         placeholderLabel=\"Search...\"\n *         (search)=\"onSearch($event)\"\n *         (selectionChange)=\"onSelectionChange($event)\">\n *       </eui-toolbar-search>\n *     </eui-toolbar>\n *   </eui-app-toolbar>\n * </eui-app>\n *\n * <!-- Text input mode -->\n * <eui-toolbar-search\n *   [isInputText]=\"true\"\n *   [hasSearchButton]=\"true\"\n *   (search)=\"onSearch($event)\">\n * </eui-toolbar-search>\n * ```\n * ```typescript\n * searchResults: EuiAutoCompleteItem[] = [\n *   { id: 1, label: 'Result 1' },\n *   { id: 2, label: 'Result 2' }\n * ];\n * ```\n *\n * ### Accessibility\n * - Search input keyboard accessible\n * - Enter key triggers search\n * - Focus and blur events managed\n * - Placeholder provides context\n * - Autocomplete dropdown keyboard navigable\n * - Search button keyboard accessible\n *\n * ### Notes\n * - Must be used within eui-toolbar for proper layout\n * - Two modes: autocomplete (default) or text input\n * - isAutocomplete and isInputText are mutually exclusive\n * - Default mode is autocomplete if neither specified\n * - searchResults for autocomplete suggestions\n * - hasSearchButton adds explicit search button\n * - hasExpandAnimation controls focus expansion (default: true)\n * - panelWidth for autocomplete dropdown (default: '25vw')\n * - search event on Enter key or autocomplete change\n * - selectionChange event for autocomplete selections\n * - searchClick event for button clicks\n * - inputFocus/inputBlur events for focus state\n * - Custom result templates via EuiTemplateDirective\n * - Focus state applies 'eui-toolbar-search--focus' class\n * - Integrates with EuiAppShellService\n */\n@Component({\n    selector: 'eui-toolbar-search',\n    templateUrl: './toolbar-search.component.html',\n    styleUrl: './toolbar-search.component.scss',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    imports: [\n        ...EUI_BUTTON,\n        ...EUI_ICON,\n        ...EUI_ICON_BUTTON,\n        ...EUI_AUTOCOMPLETE,\n        ...EUI_ICON_INPUT,\n        ...EUI_INPUT_TEXT,\n        EuiTemplateDirective,\n        NgTemplateOutlet,\n        FormsModule,\n        AsyncPipe,\n    ],\n})\nexport class EuiToolbarSearchComponent implements AfterViewInit, AfterContentInit {\n    @HostBinding('class')\n    public get cssClasses(): string {\n        return [\n            'eui-toolbar-search',\n            this.isInputFocus ? 'eui-toolbar-search--focus' : '',\n            !this.hasExpandAnimation ? 'eui-toolbar-search--no-animation': '',\n        ]\n            .join(' ')\n            .trim();\n    }\n\n    isInputFocus = false;\n    searchTerm: string;\n    searchInput = '';\n\n    public resultItemTemplate: TemplateRef<{ $implicit: EuiAutoCompleteItem }>;\n\n    /**\n     * Placeholder text displayed in the search input when empty.\n     * Provides hint text to guide users on what they can search for.\n     * Optional.\n     */\n    @Input() placeholderLabel: string;\n\n    /**\n     * Width of the autocomplete dropdown panel.\n     * Accepts any valid CSS width value.\n     * @default '25vw'\n     */\n    @Input() panelWidth = '25vw';\n\n    /**\n     * Array of autocomplete suggestion items displayed in the dropdown.\n     * Only used when isAutocomplete is true. Each item should conform to EuiAutoCompleteItem interface.\n     * @default empty array\n     */\n    @Input() searchResults: EuiAutoCompleteItem[] = [];\n\n    /**\n     * Enables autocomplete mode with dropdown suggestions.\n     * When true, displays autocomplete dropdown. Automatically disables isInputText.\n     * @default false (automatically set to true if both isInputText and isAutocomplete are false)\n     */\n    @Input({ transform: booleanAttribute }) isAutocomplete = false;\n\n    /**\n     * Enables plain text input mode without autocomplete.\n     * When true, displays simple text input. Automatically disables isAutocomplete.\n     * @default false\n     */\n    @Input({ transform: booleanAttribute }) isInputText = false;\n\n    /**\n     * Shows a search button next to the input field.\n     * When true, displays a button to trigger search action explicitly.\n     * @default false\n     */\n    @Input({ transform: booleanAttribute }) hasSearchButton = false;\n\n    /**\n     * Enables expand animation when search input gains focus.\n     * When true, animates the input field expansion. When false, input expands instantly.\n     * @default true\n     */\n    @Input({ transform: booleanAttribute }) hasExpandAnimation = true;\n\n    /**\n     * Emitted when a search is performed via Enter key or autocomplete input change.\n     * Payload: string - the search term entered by the user\n     * Triggered on Enter key press in text input mode or autocomplete input change.\n     */\n    // eslint-disable-next-line @angular-eslint/no-output-native\n    @Output() search: EventEmitter<string> = new EventEmitter();\n\n    /**\n     * Emitted when autocomplete selection changes.\n     * Payload: EuiAutoCompleteItem[] - array of selected autocomplete items\n     * Triggered when user selects or deselects items in autocomplete mode.\n     */\n    @Output() selectionChange: EventEmitter<EuiAutoCompleteItem[]> = new EventEmitter();\n\n    /**\n     * Emitted when the search button is clicked.\n     * Payload: string - the current search input value, or null if icon-only mode\n     * Triggered when user clicks the search button (when hasSearchButton is true).\n     */\n    @Output() searchClick: EventEmitter<string> = new EventEmitter();\n\n    /**\n     * Emitted when the search input gains focus.\n     * Payload: Event - the focus event\n     * Triggered when user focuses on the search input field.\n     */\n    @Output() inputFocus: EventEmitter<Event> = new EventEmitter();\n\n    /**\n     * Emitted when the search input loses focus.\n     * Payload: Event - the blur event\n     * Triggered when user leaves the search input field, unless search button is present and input has value.\n     */\n    @Output() inputBlur: EventEmitter<Event> = new EventEmitter();\n\n    @ContentChildren(EuiTemplateDirective) templates: QueryList<EuiTemplateDirective>;\n    protected asService = inject(EuiAppShellService);\n\n    ngAfterContentInit(): void {\n        if (this.isAutocomplete) {\n            this.isInputText = false;\n        }\n\n        if (this.isInputText) {\n            this.isAutocomplete = false;\n        }\n\n        if (!this.isInputText && !this.isAutocomplete) {\n            this.isAutocomplete = true;\n        }\n    }\n\n    ngAfterViewInit(): void {\n        this.templates.forEach((item) => {\n            if (item.getType() === 'resultItemTemplate') {\n                this.resultItemTemplate = item.template;\n            }\n        });\n    }\n\n    onSelectionChange(items: EuiAutoCompleteItem[]): void {\n        this.selectionChange.emit(items);\n    }\n\n    onInputFocus(): void {\n        this.inputFocus.emit();\n        this.isInputFocus = true;\n    }\n\n    onInputBlur(): void {\n        if (!this.hasSearchButton || (this.hasSearchButton && this.searchInput === '')) {\n            this.inputBlur.emit();\n            this.isInputFocus = false;\n        }\n    }\n\n    onSearch(e: string): void {\n        this.searchTerm = e;\n        this.search.emit(e);\n    }\n\n    onSearchInput(e: KeyboardEvent): void {\n        if (e.code === 'Enter' || e.code === 'NumpadEnter') {\n            this.searchTerm = this.searchInput;\n            this.search.emit(this.searchInput);\n        }\n    }\n\n    onSearchClick(isIconOnly: boolean): void {\n        if (isIconOnly) {\n            this.searchClick.emit(null);\n        } else {\n            this.isInputFocus = false;\n            if (this.searchInput) {\n                this.searchClick.emit(this.searchInput);\n            }\n        }\n    }\n}\n","@if ((asService.breakpoints$ | async).isLtLargeTablet) {\n    <eui-icon-button icon=\"eui-search\" (buttonClick)=\"onSearchClick(true)\"/>\n\n} @else {\n    <eui-icon-input euiIconPositionEnd>\n        @if (isAutocomplete) {\n            <eui-autocomplete [autocompleteData]=\"searchResults\"\n                placeholder=\"{{placeholderLabel}}\"\n                panelWidth=\"{{panelWidth}}\"\n                (inputBlur)=\"onInputBlur()\"\n                (inputFocus)=\"onInputFocus()\"\n                (selectionChange)=\"onSelectionChange($event)\"\n                (inputChange)=\"onSearch($event)\">\n                @if (templates.length !== 0) {\n                    <ng-template let-option euiTemplate=\"dropdownOption\">\n                        <ng-container\n                            [ngTemplateOutlet]=\"resultItemTemplate\"\n                            [ngTemplateOutletContext]=\"{ $implicit: option }\" />\n                    </ng-template>\n                }\n            </eui-autocomplete>\n        } @else {\n            @if (isInputText) {\n                <input euiInputText class=\"eui-toolbar-search-bar__input\" [(ngModel)]=\"searchInput\"\n                    placeholder=\"{{ placeholderLabel }}\"\n                    (focus)=\"onInputFocus()\" (blur)=\"onInputBlur()\" (keydown)=\"onSearchInput($event)\" />\n            }\n        }\n\n        @if (hasSearchButton) {\n            <button class=\"eui-toolbar-search__input-button\"\n                euiButton\n                euiIconButton\n                euiSizeS\n                [euiSecondary]=\"isInputFocus\"\n                [euiPrimary]=\"!isInputFocus\"\n                (click)=\"onSearchClick(false)\"\n                aria-label=\"search button\">\n                <eui-icon-svg icon=\"eui-search\" size=\"s\"></eui-icon-svg>\n            </button>\n        } @else {\n            <eui-icon-svg icon=\"eui-search\" size=\"s\" />\n        }\n    </eui-icon-input>\n\n}\n\n","import {\n    Component,\n    HostBinding,\n    ChangeDetectionStrategy,\n    ViewEncapsulation,\n    OnInit,\n    HostListener,\n    OnDestroy,\n    inject,\n} from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { EuiAppShellService } from '@eui/core';\nimport { CssUtils } from '@eui/core';\n\n/**\n * @description\n * Application sidebar component that provides a collapsible navigation panel for the application shell.\n * Automatically registers with EuiAppShellService to coordinate layout state and responsive behavior.\n * Handles automatic collapse on mobile and tablet breakpoints, and closes on body clicks in responsive modes.\n * Manages CSS variables for sidebar dimensions to ensure proper content area positioning.\n * \n * @usageNotes\n * ```html\n * <!-- Basic sidebar within app structure -->\n * <eui-app>\n *   <eui-app-sidebar>\n *     <eui-app-sidebar-header>\n *       <eui-app-sidebar-header-user-profile \n *         (toggle)=\"onSidebarProfileToggle($event)\"\n *         [hasProfileDrawer]=\"true\">\n *       </eui-app-sidebar-header-user-profile>\n *     </eui-app-sidebar-header>\n *     \n *     <eui-app-sidebar-drawer [isExpanded]=\"false\">\n *       <p>User profile details</p>\n *     </eui-app-sidebar-drawer>\n *     \n *     <eui-app-sidebar-body>\n *       <eui-app-sidebar-menu\n *         [items]=\"sidebarItems\"\n *         [hasFilter]=\"true\"\n *         [hasIcons]=\"true\">\n *       </eui-app-sidebar-menu>\n *     </eui-app-sidebar-body>\n *     \n *     <eui-app-sidebar-footer>\n *       Footer content\n *     </eui-app-sidebar-footer>\n *   </eui-app-sidebar>\n * </eui-app>\n * ```\n *\n * ### Accessibility\n * - Provides semantic navigation structure for sidebar content\n * - Keyboard navigation supported through child menu components\n * - Automatically closes on mobile/tablet for better UX\n * - Focus management handled by child components\n * - Collapsible behavior maintains accessibility in all states\n *\n * ### Notes\n * - Must be used within eui-app component for proper layout integration\n * - Automatically registers with EuiAppShellService on init\n * - Manages CSS variables for sidebar width calculations\n * - Automatically collapses on mobile and tablet breakpoints\n * - Closes on body clicks when in responsive mode\n * - Expects child components: eui-app-sidebar-header, eui-app-sidebar-body, eui-app-sidebar-footer\n * - Optional eui-app-sidebar-drawer for expandable content (e.g., user profile)\n * - Cleans up layout state and CSS variables on destroy\n * - Sidebar state controlled via EuiAppShellService.isSidebarOpen\n */\n@Component({\n    selector: 'eui-app-sidebar',\n    templateUrl: './sidebar.component.html',\n    styleUrls: ['./_styles/_index.scss'],\n    changeDetection: ChangeDetectionStrategy.Default,\n    encapsulation: ViewEncapsulation.None,\n})\nexport class EuiAppSidebarComponent implements OnInit, OnDestroy {\n    @HostBinding('class') string = 'eui-app-sidebar';\n\n    asService = inject(EuiAppShellService, { optional: true })!;\n    private subscriptions: Subscription[] = [];\n    private document = inject<Document>(DOCUMENT);\n\n    @HostListener('body:click')\n    close(): void {\n        if (\n            this.asService &&\n            (this.asService.state.breakpoints.isMobile || this.asService.state.breakpoints.isTablet || this.asService.state.isSidebarHidden)\n        ) {\n            this.asService.isSidebarOpen = false;\n        }\n    }\n\n    ngOnInit(): void {\n        this.asService?.activateSidebar();\n        this.subscriptions.push(\n            this.asService\n                ?.getState('breakpoints.isMobile')\n                .pipe(filter((s) => s === true))\n                .subscribe(() => (this.asService.isSidebarOpen = false)),\n        );\n        this.subscriptions.push(\n            this.asService\n                ?.getState('breakpoints.isTablet')\n                .pipe(filter((s) => s === true))\n                .subscribe(() => (this.asService.isSidebarOpen = false)),\n        );\n    }\n\n    ngOnDestroy(): void {\n        this.subscriptions.forEach((s) => s.unsubscribe());\n        this.asService?.setState({\n            ...this.asService.state,\n            hasSidebar: false,\n        });\n        CssUtils.removeSidebarCssVars(this.document);\n    }\n}\n","<aside class=\"eui-app-sidebar-content\">\n    <ng-content select=\"eui-app-sidebar-header-user-profile\"></ng-content>\n    <ng-content select=\"eui-app-sidebar-header\"></ng-content>\n    <ng-content select=\"eui-app-sidebar-body\"></ng-content>\n    <ng-content select=\"eui-app-sidebar-footer\"></ng-content>\n    <ng-content select=\"eui-app-sidebar-drawer\"></ng-content>\n</aside>\n","import { Component, ChangeDetectionStrategy, HostBinding, ViewEncapsulation } from '@angular/core';\n\n/**\n * @description\n * Container component for the main content area of the sidebar, positioned between header and footer.\n * Provides a scrollable region for sidebar navigation menus or other interactive content.\n * Automatically handles vertical spacing to accommodate sidebar header and footer when present.\n * Content is projected via ng-content allowing flexible body composition.\n * \n * @usageNotes\n * ```html\n * <!-- Sidebar body with navigation menu -->\n * <eui-app>\n *   <eui-app-sidebar>\n *     <eui-app-sidebar-body>\n *       <eui-app-sidebar-menu\n *         [items]=\"sidebarItems\"\n *         [hasFilter]=\"true\"\n *         [hasIcons]=\"true\">\n *       </eui-app-sidebar-menu>\n *     </eui-app-sidebar-body>\n *   </eui-app-sidebar>\n * </eui-app>\n * ```\n *\n * ### Accessibility\n * - Provides scrollable navigation region\n * - Content projection allows flexible accessible structure\n * - Child menu components handle keyboard navigation\n * - Scroll behavior maintains focus visibility\n *\n * ### Notes\n * - Must be used within eui-app-sidebar for proper layout integration\n * - Positioned between eui-app-sidebar-header and eui-app-sidebar-footer\n * - Typically contains eui-app-sidebar-menu for navigation\n * - Automatically scrollable when content exceeds available height\n * - Content is projected via ng-content for flexible composition\n * - Vertical spacing automatically adjusts for header/footer presence\n * - Takes remaining vertical space between header and footer\n */\n@Component({\n    selector: 'eui-app-sidebar-body',\n    templateUrl: './sidebar-body.component.html',\n    changeDetection: ChangeDetectionStrategy.Default,\n    encapsulation: ViewEncapsulation.None,\n})\nexport class EuiAppSidebarBodyComponent {\n    @HostBinding() class = 'eui-app-sidebar-body';\n}\n","<ng-content select=\"eui-app-sidebar-menu\"/>\n<ng-content/>\n","import {\n    Component,\n    HostBinding,\n    ViewEncapsulation,\n    Input,\n    OnChanges,\n    OnInit,\n    SimpleChanges,\n    Output,\n    EventEmitter,\n    OnDestroy,\n    booleanAttribute,\n    inject,\n    ViewChild,\n    AfterViewInit,\n} from '@angular/core';\nimport { EuiAppShellService } from '@eui/core';\nimport { EUI_MENU, EuiMenuComponent, EuiMenuItem } from '@eui/components/eui-menu';\nimport { Subscription } from 'rxjs';\nimport { AsyncPipe } from '@angular/common';\n\n/**\n * @description\n * Sidebar navigation menu component that renders hierarchical menu items within the application sidebar.\n * Integrates with EuiAppShellService to synchronize menu state and handle responsive behavior.\n * Supports filtering, icons, tooltips, collapsible states, and automatic closure on mobile/tablet navigation.\n * Automatically switches between sidebar-only and combined menu items based on viewport breakpoints.\n * \n * @usageNotes\n * ```html\n * <!-- Basic sidebar menu within app structure -->\n * <eui-app>\n *   <eui-app-sidebar>\n *     <eui-app-sidebar-body>\n *       <eui-app-sidebar-menu\n *         [items]=\"sidebarItems\"\n *         [hasFilter]=\"true\"\n *         [hasIcons]=\"true\"\n *         (sidebarItemClick)=\"onMenuItemClick($event)\"\n *         (sidebarItemToggle)=\"onMenuItemToggle($event)\">\n *       </eui-app-sidebar-menu>\n *     </eui-app-sidebar-body>\n *   </eui-app-sidebar>\n * </eui-app>\n * ```\n *\n * ```ts\n * import { EuiMenuItem } from '@eui/components/eui-menu';\n *\n * sidebarItems: EuiMenuItem[] = [\n *   {\n *     label: 'Dashboard',\n *     url: '/dashboard',\n *     icon: 'home:outline'\n *   },\n *   {\n *     label: 'Settings',\n *     icon: 'settings:outline',\n *     children: [\n *       { label: 'Profile', url: '/settings/profile' },\n *       { label: 'Security', url: '/settings/security' }\n *     ]\n *   }\n * ];\n *\n * onMenuItemClick(item: EuiMenuItem): void {\n *   console.log('Menu item clicked:', item);\n * }\n * ```\n *\n * ### Accessibility\n * - Keyboard navigation supported (Arrow keys, Enter, Space)\n * - Focus management handled automatically\n * - ARIA attributes for menu structure and states\n * - Tooltips provide context in collapsed mode\n * - Filter input is keyboard accessible\n * - Collapsible items announce expanded/collapsed state\n *\n * ### Notes\n * - Must be used within eui-app-sidebar-body for proper layout\n * - items array should use EuiMenuItem interface\n * - hasFilter enables search/filter input above menu\n * - hasIcons displays icons alongside labels\n * - hasIconsLabels shows text below icons in collapsed mode\n * - hasTooltip enables tooltips in collapsed state (default: true)\n * - hasTooltipOnExpanded shows tooltips even when expanded\n * - expandAllItems expands all parent items by default\n * - isCollapsed renders icon-only mode (syncs with sidebar state)\n * - hasCollapsedInitials shows first letter instead of icon\n * - isFlat removes hierarchical indentation\n * - hasScrollToItem auto-scrolls to active item\n * - hasBoldRootLevel emphasizes top-level items\n * - Automatically closes sidebar on mobile/tablet after navigation\n * - Switches to combined menu items on mobile breakpoint\n * - sidebarItemClick emits on any item click\n * - sidebarItemToggle emits on expand/collapse actions\n */\n@Component({\n    selector: 'eui-app-sidebar-menu',\n    templateUrl: './sidebar-menu.component.html',\n    encapsulation: ViewEncapsulation.None,\n    imports: [\n        AsyncPipe,\n        ...EUI_MENU,\n    ],\n})\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport class EuiAppSidebarMenuComponent<Items = any> implements OnInit, AfterViewInit, OnChanges, OnDestroy {\n    asService = inject(EuiAppShellService);\n\n    @HostBinding() class = 'eui-app-sidebar-menu';\n\n    /**\n     * Enables a search/filter input field above the menu items.\n     * When true, displays a text input allowing users to filter menu items by label.\n     * @default false\n     */\n    @Input({ transform: booleanAttribute }) hasFilter = false;\n\n    /**\n     * Displays icons alongside menu item labels.\n     * When true, renders icon elements for menu items that have icon definitions.\n     * @default false\n     */\n    @Input({ transform: booleanAttribute }) hasIcons = false;\n\n    /**\n     * Shows icon labels in collapsed sidebar mode.\n     * When true, displays text labels below icons when sidebar is collapsed, enabling icon-with-label variant.\n     * @default false\n     */\n    @Input({ transform: booleanAttribute }) hasIconsLabels = false;\n\n    /**\n     * Enables tooltips on menu items when sidebar is collapsed.\n     * When true, displays full menu item labels in tooltips on hover in collapsed state.\n     * @default true\n     */\n    @Input({ transform: booleanAttribute }) hasTooltip = true;\n\n    /**\n     * Shows tooltips even when sidebar is expanded.\n     * When true, displays tooltips on menu items regardless of sidebar collapse state.\n     * @default false\n     */\n    @Input({ transform: booleanAttribute }) hasTooltipOnExpanded = false;\n\n    /**\n     * Expands all collapsible menu items by default.\n     * When true, all parent menu items with children are rendered in expanded state on initialization.\n     * @default false\n     */\n    @Input({ transform: booleanAttribute }) expandAllItems = false;\n\n    /**\n     * Renders the menu in collapsed/icon-only mode.\n     * When true, hides menu item labels and shows only icons, typically synchronized with sidebar collapse state.\n     * @default false\n     */\n    @Input({ transform: booleanAttribute }) isCollapsed = false;\n\n    /**\n     * Displays initials instead of full icons in collapsed mode.\n     * When true, shows first letter of menu item label as a visual identifier when sidebar is collapsed.\n     * @default false\n     */\n    @Input({ transform: booleanAttribute }) hasCollapsedInitials = false;\n\n    /**\n     * Renders menu in flat mode without hierarchical indentation.\n     * When true, all menu items are displayed at the same level regardless of parent-child relationships.\n     * @default false\n     */\n    @Input({ transform: booleanAttribute }) isFlat = false;\n\n    /**\n     * Enables automatic scrolling to active menu item.\n     * When true, scrolls the menu container to bring the currently active item into view.\n     * @default false\n     */\n    @Input({ transform: booleanAttribute }) hasScrollToItem = false;\n\n    /**\n     * Applies bold font weight to root-level menu items.\n     * When true, emphasizes top-level menu items with bold styling to distinguish hierarchy.\n     * @default false\n     */\n    @Input({ transform: booleanAttribute }) hasBoldRootLevel = false;\n\n    /**\n     * Array of menu item objects to render in the sidebar navigation.\n     * Each item should conform to EuiMenuItem interface with properties like label, url, icon, and children.\n     * Required for menu rendering.\n     */\n    @Input() items: Items[];\n\n    /**\n     * Emitted when a menu item is clicked by the user.\n     * Payload: EuiMenuItem - the clicked menu item object\n     * Triggered on any menu item click, before automatic sidebar closure on mobile/tablet.\n     */\n    @Output() sidebarItemClick = new EventEmitter<EuiMenuItem>();\n\n    /**\n     * Emitted when a collapsible menu item is expanded or collapsed.\n     * Payload: EuiMenuItem - the toggled menu item object\n     * Triggered when user clicks the expand/collapse control on parent menu items.\n     */\n    @Output() sidebarItemToggle = new EventEmitter<EuiMenuItem>();\n\n    @ViewChild('menu', { static: false }) menu?: EuiMenuComponent;\n\n    private subs: Subscription;\n\n    constructor() {\n        this.subs = new Subscription();\n    }\n\n    ngOnInit(): void {\n        if (this.items) {\n            this.asService.setState({\n                ...this.asService.state,\n                sidebarLinks: this.items,\n            });\n        }\n        \n        if (this.hasIconsLabels) {\n            this.asService.hasSidebarCollapsedVariant = this.hasIconsLabels;\n        }\n\n        this.subs.add(this.asService.state$.subscribe((state) => {\n            if (state?.breakpoints?.isMobile) {\n                this.items = <Items[]>state.combinedLinks;\n            } else {\n                this.items = <Items[]>state.sidebarLinks;\n            }\n        }));\n\n        // subscribe to state changes\n        // this.subs.add(this.asService.getState<Items[]>('combinedLinks').subscribe((links) => (this.items = links)));\n    }\n\n    ngAfterViewInit(): void {\n        this.subs.add(this.asService.state$.subscribe((state) => {\n            if (state?.isSidebarFocused && this.menu) {\n                this.menu.menubar.nativeElement.focus();\n                this.asService.state.isSidebarFocused = false;\n            }\n        }));\n    }\n\n    ngOnDestroy(): void {\n        this.subs.unsubscribe();\n    }\n\n    ngOnChanges(changes: SimpleChanges): void {\n        if (changes.items) {\n            this.asService.setState({\n                ...this.asService.state,\n                sidebarLinks: this.items,\n            });\n        }\n    }\n\n    public onMenuItemClicked(event: EuiMenuItem): void {\n        // Auto-close sidebar menu after click when in mobile / tablet modes\n        if (\n            event.url &&\n            (this.asService.state.breakpoints.isMobile || this.asService.state.breakpoints.isTablet || this.asService.state.isSidebarHidden)\n        ) {\n            this.asService.isSidebarOpen = false;\n        }\n\n        this.sidebarItemClick.emit(event);\n    }\n\n    public onSidebarItemToggled(event: EuiMenuItem): void {\n        this.sidebarItemToggle.emit(event);\n    }\n}\n","<eui-menu\n    #menu\n    [items]=\"items\"\n    [hasFilter]=\"hasFilter\"\n    [hasIcons]=\"hasIcons\"\n    [hasIconsLabels]=\"hasIconsLabels\"\n    [hasTooltip]=\"hasTooltip\"\n    [hasTooltipOnExpanded]=\"hasTooltipOnExpanded\"\n    [expandAllItems]=\"expandAllItems\"\n    [isFlat]=\"isFlat\"\n    [hasScrollToItem]=\"hasScrollToItem\"\n    [hasCollapsedInitials]=\"hasCollapsedInitials\"\n    [hasBoldRootLevel]=\"hasBoldRootLevel\"\n    [isCollapsed]=\"!(asService.state$ | async).isSidebarOpen\"\n    (itemClick)=\"onMenuItemClicked($event)\"\n    (expandToggle)=\"onSidebarItemToggled($event)\" />\n","import { Component, HostBinding, ViewEncapsulation, OnInit, OnDestroy, inject } from '@angular/core';\nimport { EuiAppShellService } from '@eui/core';\nimport { DOCUMENT } from '@angular/common';\n\n/**\n * @description\n * Container component for the sidebar header area, typically containing branding, logo, or user profile elements.\n * Automatically registers with EuiAppShellService to calculate and set CSS variables for proper layout spacing.\n * Manages the --eui-app-sidebar-header-height CSS variable to coordinate vertical positioning of sidebar content.\n * Content is projected via ng-content allowing flexible header composition.\n * \n * @usageNotes\n * ```html\n * <!-- Sidebar header with user profile -->\n * <eui-app>\n *   <eui-app-sidebar>\n *     <eui-app-sidebar-header>\n *       <eui-app-sidebar-header-user-profile\n *         (toggle)=\"onSidebarProfileToggle($event)\"\n *         [hasProfileDrawer]=\"true\">\n *       </eui-app-sidebar-header-user-profile>\n *     </eui-app-sidebar-header>\n *   </eui-app-sidebar>\n * </eui-app>\n * ```\n *\n * ### Accessibility\n * - Provides semantic container for sidebar header content\n * - Content projection allows flexible accessible structure\n * - Child components handle their own accessibility features\n *\n * ### Notes\n * - Must be used within eui-app-sidebar for proper layout integration\n * - Automatically registers with EuiAppShellService on init\n * - Sets --eui-app-sidebar-header-height CSS variable for layout calculations\n * - Typically contains eui-app-sidebar-header-user-profile\n * - Content is projected via ng-content for flexible composition\n * - Cleans up CSS variables on destroy\n * - Height is automatically calculated based on content\n */\n@Component({\n    selector: 'eui-app-sidebar-header',\n    template: '<ng-content/>',\n    encapsulation: ViewEncapsulation.None,\n})\nexport class EuiAppSidebarHeaderComponent implements OnInit, OnDestroy {\n    @HostBinding() class = 'eui-app-sidebar-header';\n    private asService = inject(EuiAppShellService);\n    private document = inject<Document>(DOCUMENT);\n\n    ngOnInit(): void {\n        this.asService.activateSidebarHeader();\n    }\n\n    ngOnDestroy(): void {\n        this.document.documentElement.style.removeProperty('--eui-app-sidebar-header-height');\n    }\n}\n","import { Component, HostBinding, ViewEncapsulation, OnInit, OnDestroy, inject } from '@angular/core';\nimport { EuiAppShellService } from '@eui/core';\nimport { DOCUMENT } from '@angular/common';\n\n/**\n * @description\n * Container component for the sidebar footer area, typically containing secondary actions, settings, or utility links.\n * Automatically registers with EuiAppShellService to calculate and set CSS variables for proper layout spacing.\n * Manages the --eui-app-sidebar-footer-height CSS variable to coordinate vertical positioning of sidebar content.\n * Content is projected via ng-content allowing flexible footer composition.\n * \n * @usageNotes\n * ```html\n * <!-- Sidebar footer with custom content -->\n * <eui-app>\n *   <eui-app-sidebar>\n *     <eui-app-sidebar-footer>\n *       <p>Version 1.0.0</p>\n *       <a href=\"/help\">Help</a>\n *     </eui-app-sidebar-footer>\n *   </eui-app-sidebar>\n * </eui-app>\n * ```\n *\n * ### Accessibility\n * - Provides semantic container for sidebar footer content\n * - Content projection allows flexible accessible structure\n * - Links and buttons within footer maintain keyboard accessibility\n *\n * ### Notes\n * - Must be used within eui-app-sidebar for proper layout integration\n * - Automatically registers with EuiAppShellService on init\n * - Sets --eui-app-sidebar-footer-height CSS variable for layout calculations\n * - Typically contains utility links, version info, or secondary actions\n * - Content is projected via ng-content for flexible composition\n * - Cleans up CSS variables on destroy\n * - Height is automatically calculated based on content\n * - Positioned at bottom of sidebar, below sidebar body\n */\n@Component({\n    selector: 'eui-app-sidebar-footer',\n    template: '<ng-content/>',\n    encapsulation: ViewEncapsulation.None,\n})\nexport class EuiAppSidebarFooterComponent implements OnInit, OnDestroy {\n    @HostBinding() class = 'eui-app-sidebar-footer';\n    private asService = inject(EuiAppShellService);\n    private document = inject<Document>(DOCUMENT);\n\n    ngOnInit(): void {\n        this.asService.activateSidebarFooter();\n    }\n\n    ngOnDestroy(): void {\n        this.document.documentElement.style.removeProperty('--eui-app-sidebar-footer-height');\n    }\n}\n","import { booleanAttribute, Component, HostBinding, ChangeDetectionStrategy, ViewEncapsulation, Input, EventEmitter, Output, ContentChildren, forwardRef, QueryList, HostListener } from '@angular/core';\nimport { consumeEvent } from '@eui/core';\nimport { EUI_USER_PROFILE, EuiUserProfileMenuComponent } from '@eui/components/eui-user-profile';\nimport { EUI_BUTTON } from '@eui/components/eui-button';\nimport { EUI_ICON } from '@eui/components/eui-icon';\n\n/**\n * @description\n * User profile component displayed in the sidebar header showing user information and avatar.\n * Provides visual representation of the logged-in user with optional welcome message, online status, and profile menu integration.\n * Supports impersonation indicators, avatar customization, and optional drawer toggle for expanded profile details.\n * Integrates with EuiUserProfileMenuComponent for dropdown menu functionality.\n * \n * @usageNotes\n * ```html\n * <!-- Basic user profile in sidebar header -->\n * <eui-app>\n *   <eui-app-sidebar>\n *     <eui-app-sidebar-header>\n *       <eui-app-sidebar-header-user-profile\n *         welcomeLabel=\"Welcome\"\n *         [avatarUrl]=\"userAvatar\"\n *         [isOnline]=\"true\">\n *       </eui-app-sidebar-header-user-profile>\n *     </eui-app-sidebar-header>\n *   </eui-app-sidebar>\n * </eui-app>\n *\n * <!-- With profile drawer -->\n * <eui-app>\n *   <eui-app-sidebar>\n *     <eui-app-sidebar-header>\n *       <eui-app-sidebar-header-user-profile\n *         [hasProfileDrawer]=\"true\"\n *         (toggle)=\"onSidebarProfileToggle($event)\">\n *       </eui-app-sidebar-header-user-profile>\n *     </eui-app-sidebar-header>\n *     \n *     <eui-app-sidebar-drawer [isExpanded]=\"false\">\n *       <p>User profile details</p>\n *     </eui-app-sidebar-drawer>\n *   </eui-app-sidebar>\n * </eui-app>\n * ```\n *\n * ```ts\n * userAvatar = 'assets/user-avatar.jpg';\n *\n * onSidebarProfileToggle(event: any): void {\n *   console.log('Profile drawer toggled');\n * }\n * ```\n *\n * ### Accessibility\n * - Avatar provides visual user identification\n * - hasTabNavigation enables keyboard focus and navigation\n * - Online status indicator is visually distinct\n * - Welcome label provides context for screen readers\n * - Click interaction is keyboard accessible when hasToggle enabled\n * - Profile menu integration supports keyboard navigation\n *\n * ### Notes\n * - Must be used within eui-app-sidebar-header for proper layout\n * - welcomeLabel displays greeting text (default: 'Welcome')\n * - impersonateLabel shows when user is impersonating (default: 'acting as')\n * - avatarUrl displays custom avatar image\n * - isShowUserInfos controls visibility of user text details (default: true)\n * - isShowAvatarInitials shows initials when no avatar image (default: false)\n * - isOnline displays online status indicator (default: true)\n * - hasWelcomeLabel controls welcome message visibility (default: true)\n * - hasTabNavigation enables keyboard focus (default: false)\n * - hasToggle enables click toggle functionality (default: false)\n * - hasProfileDrawer enables drawer mode with expandable content (default: false)\n * - toggle event emits when profile is clicked with hasToggle or hasProfileDrawer enabled\n * - Integrates with eui-app-sidebar-drawer for expanded profile details\n * - Can contain eui-user-profile-menu for dropdown menu functionality\n */\n@Component({\n    selector: 'eui-app-sidebar-header-user-profile',\n    templateUrl: './sidebar-header-user-profile.component.html',\n    styleUrls: ['./_styles/_index.scss'],\n    changeDetection: ChangeDetectionStrategy.Default,\n    encapsulation: ViewEncapsulation.None,\n    imports: [\n        ...EUI_USER_PROFILE,\n        ...EUI_BUTTON,\n        ...EUI_ICON,\n    ],\n})\nexport class EuiAppSidebarHeaderUserProfileComponent {\n    @HostBinding('class')\n    public get cssClasses(): string {\n        return this._getCssClasses();\n    }\n\n    /**\n     * Text label displayed before the username in the welcome message.\n     * Typically used for greeting text like \"Welcome\" or \"Hello\".\n     * @default 'Welcome'\n     */\n    @Input() welcomeLabel = 'Welcome';\n\n    /**\n     * Text label displayed when user is impersonating another user.\n     * Shows between the actual user and impersonated user names, typically \"acting as\".\n     * @default 'acting as'\n     */\n    @Input() impersonateLabel = 'acting as';\n\n    /**\n     * URL path to the user's avatar image.\n     * When provided, displays the image instead of initials or default avatar.\n     * Optional.\n     */\n    @Input() avatarUrl: string;\n\n    /**\n     * Controls visibility of user information text (name, email, etc.).\n     * When false, hides textual user details and shows only the avatar.\n     * @default true\n     */\n    @Input({ transform: booleanAttribute }) isShowUserInfos = true;\n\n    /**\n     * Displays user initials in the avatar when no avatar image is provided.\n     * When true, shows first letters of user's name as avatar placeholder.\n     * @default false\n     */\n    @Input({ transform: booleanAttribute }) isShowAvatarInitials = false;\n\n    /**\n     * Indicates the user's online status with a visual indicator.\n     * When true, displays an online status badge on the avatar.\n     * @default true\n     */\n    @Input({ transform: booleanAttribute }) isOnline = true;\n\n    /**\n     * Controls visibility of the welcome label text.\n     * When false, hides the welcome message prefix and shows only the username.\n     * @default true\n     */\n    @Input({ transform: booleanAttribute }) hasWelcomeLabel = true;\n\n    /**\n     * Enables keyboard tab navigation to the user profile component.\n     * When true, makes the profile element focusable and accessible via keyboard.\n     * @default false\n     */\n    @Input({ transform: booleanAttribute }) hasTabNavigation = false;\n\n    /**\n     * Enables toggle functionality for expanding/collapsing profile details.\n     * When true, allows clicking to toggle profile state and emits toggle events.\n     * @default false\n     */\n    @Input({ transform: booleanAttribute }) hasToggle = false;\n\n    /**\n     * Enables profile drawer mode with expandable content panel.\n     * When true, clicking the profile opens a drawer with additional user details and actions.\n     * @default false\n     */\n    @Input({ transform: booleanAttribute }) hasProfileDrawer = false;\n\n    /**\n     * Emitted when the user profile is clicked and toggle functionality is enabled.\n     * Payload: any - event data from the click interaction\n     * Triggered when hasToggle or hasProfileDrawer is true and the profile is clicked.\n     */\n    // eslint-disable-next-line\n    @Output() toggle: EventEmitter<any> = new EventEmitter();\n    public toggleProfile = false;\n\n    @ContentChildren(forwardRef(() => EuiUserProfileMenuComponent)) userProfileMenu: QueryList<EuiUserProfileMenuComponent>;\n\n    // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    onProfileClick(event: any): void {\n        this.toggleProfile = !this.toggleProfile;\n        consumeEvent(event);\n        this.toggle.emit();\n    }\n\n    @HostListener('click', ['$event'])\n    onClick(event: MouseEvent): void {\n        if (this.hasProfileDrawer) {\n            this.onProfileClick(event);\n        }\n        consumeEvent(event);\n    }\n\n    private _getCssClasses(): string {\n        return [\n            'eui-app-sidebar-header-user-profile',\n            this.hasProfileDrawer ? 'eui-app-sidebar-header-user-profile--has-drawer' : '',\n        ].join(' ').trim();\n    }\n}\n","<eui-user-profile\n    [hasWelcomeLabel]=\"hasWelcomeLabel\"\n    [welcomeLabel]=\"welcomeLabel\"\n    [impersonateLabel]=\"impersonateLabel\"\n    [avatarUrl]=\"avatarUrl\"\n    [hasMenu]=\"userProfileMenu.length !== 0\"\n    [isShowUserInfos]=\"isShowUserInfos\"\n    [isShowAvatarInitials]=\"isShowAvatarInitials\"\n    [hasTabNavigation]=\"hasTabNavigation\"\n    isReverse\n    [hasToggle]=\"hasToggle\"\n    #userProfile>\n    <ng-content select=\"eui-user-profile-menu\" />\n</eui-user-profile>\n\n@if (hasProfileDrawer) {\n    <button euiButton euiRounded euiIconButton euiBasicButton euiSecondary class=\"eui-u-ml-auto\" aria-label=\"Toggle user profile details\">\n        <eui-icon-svg [icon]=\"toggleProfile ? 'eui-chevron-up' : 'eui-chevron-down'\"></eui-icon-svg>\n    </button>\n}\n","import { coerceBooleanProperty, BooleanInput } from '@angular/cdk/coercion';\nimport { Component, HostBinding, ViewEncapsulation, Input } from '@angular/core';\n\n/**\n * @description\n * Expandable drawer component that slides out from the sidebar to display additional content or details.\n * Provides a secondary panel for contextual information, settings, or extended navigation without leaving the current view.\n * Manages expanded/collapsed state with corresponding CSS classes for animation and positioning.\n * Prevents event propagation from drawer content to avoid unintended sidebar interactions.\n * \n * @usageNotes\n * ```html\n * <!-- Sidebar drawer for user profile details -->\n * <eui-app>\n *   <eui-app-sidebar>\n *     <eui-app-sidebar-header>\n *       <eui-app-sidebar-header-user-profile\n *         (toggle)=\"onSidebarProfileToggle($event)\"\n *         [hasProfileDrawer]=\"true\">\n *       </eui-app-sidebar-header-user-profile>\n *     </eui-app-sidebar-header>\n *     \n *     <eui-app-sidebar-drawer [isExpanded]=\"drawerExpanded\">\n *       <p><strong>User Profile Details</strong></p>\n *       <p>Additional user information and settings</p>\n *     </eui-app-sidebar-drawer>\n *     \n *     <eui-app-sidebar-body>\n *       <eui-app-sidebar-menu [items]=\"sidebarItems\"></eui-app-sidebar-menu>\n *     </eui-app-sidebar-body>\n *   </eui-app-sidebar>\n * </eui-app>\n * ```\n *\n * ```ts\n * drawerExpanded = false;\n *\n * onSidebarProfileToggle(event: any): void {\n *   this.drawerExpanded = !this.drawerExpanded;\n * }\n * ```\n *\n * ### Accessibility\n * - Drawer content is keyboard accessible\n * - Expanded/collapsed state is visually indicated\n * - Content within drawer maintains focus management\n * - Event propagation prevented to avoid sidebar conflicts\n *\n * ### Notes\n * - Must be used within eui-app-sidebar for proper layout integration\n * - isExpanded controls drawer visibility (default: false)\n * - Typically toggled via eui-app-sidebar-header-user-profile\n * - Commonly used for user profile details or extended settings\n * - Drawer slides out over sidebar content when expanded\n * - Content is projected via ng-content for flexible composition\n * - Automatically prevents click events from propagating to sidebar\n * - Positioned between sidebar header and body in layout\n * - Includes automatic scroll when content exceeds viewport height\n */\n@Component({\n    selector: 'eui-app-sidebar-drawer',\n    templateUrl: './sidebar-drawer.component.html',\n    encapsulation: ViewEncapsulation.None,\n})\nexport class EuiAppSidebarDrawerComponent {\n    /**\n     * Controls the expanded/collapsed state of the drawer panel.\n     * When true, drawer slides out to display its content. When false, drawer is hidden.\n     * Accepts boolean or boolean-coercible values (string 'true'/'false', empty attribute).\n     * @default false\n     */\n    @Input()\n    get isExpanded(): boolean {\n        return this._isExpanded;\n    }\n    set isExpanded(value: BooleanInput) {\n        this._isExpanded = coerceBooleanProperty(value);\n    }\n    @HostBinding('class')\n    public get cssClasses(): string {\n        return this._getCssClasses();\n    }\n    private _isExpanded = false;\n\n    public onSidebarDrawerContentClick(event: Event): void {\n        event.stopPropagation();\n    }\n\n    private _getCssClasses(): string {\n        return ['eui-app-sidebar-drawer', this.isExpanded ? 'eui-app-sidebar-drawer--expanded' : ''].join(' ').trim();\n    }\n}\n","<!-- HIDDEN APP DRAWER : scrolls up and revealing user info details or any other injected content -->\n<div class=\"eui-app-sidebar-drawer-content\" (click)=\"onSidebarDrawerContentClick($event)\">\n    <ng-content></ng-content>\n</div>\n","import { AsyncPipe } from '@angular/common';\nimport { Component, HostBinding, Input, ViewEncapsulation, inject } from '@angular/core';\nimport { EUI_ICON_BUTTON } from '@eui/components/eui-icon-button';\nimport { EuiAppShellService, consumeEvent } from '@eui/core';\n\n/**\n * @description\n * Toggle button component for controlling sidebar open/closed state in the application shell.\n * Provides a hamburger menu icon button that expands or collapses the application sidebar.\n * Integrates with EuiAppShellService to manage sidebar state and handle responsive behavior.\n * Automatically manages focus on mobile and tablet devices, directing focus to sidebar when opened.\n * Typically placed in application header or toolbar for consistent sidebar control.\n * \n * @usageNotes\n * ```html\n * <!-- In header -->\n * <eui-app>\n *   <eui-app-header>\n *     <eui-header>\n *       <eui-sidebar-toggle></eui-sidebar-toggle>\n *       <eui-header-logo></eui-header-logo>\n *       <eui-header-app appName=\"MyWorkplace\"></eui-header-app>\n *     </eui-header>\n *   </eui-app-header>\n * </eui-app>\n *\n * <!-- In toolbar -->\n * <eui-app-toolbar>\n *   <eui-toolbar>\n *     <eui-sidebar-toggle iconSvgFillColor=\"primary\"></eui-sidebar-toggle>\n *   </eui-toolbar>\n * </eui-app-toolbar>\n * ```\n *\n * ### Accessibility\n * - Hamburger icon button keyboard accessible\n * - Toggles sidebar visibility on click/Enter\n * - Automatically manages focus on mobile/tablet\n * - Focus directed to sidebar when opened on small screens\n * - ARIA attributes for toggle state\n * - Clear visual affordance for interaction\n *\n * ### Notes\n * - Typically placed in header or toolbar\n * - Integrates with EuiAppShellService for state management\n * - Toggles sidebar open/closed state\n * - Responsive behavior: focus management on mobile/tablet\n * - On mobile/tablet, opening sidebar sets isSidebarFocused to true\n * - Focus automatically moves to first focusable element in sidebar\n * - iconSvgFillColor for custom icon color\n * - e2eAttr for test automation (default: 'eui-sidebar-toggle')\n * - Hamburger icon standard for sidebar toggle\n * - Works with eui-app-sidebar component\n * - State synchronized across application via EuiAppShellService\n */\n@Component({\n    selector: 'eui-sidebar-toggle',\n    templateUrl: './sidebar-toggle.component.html',\n    encapsulation: ViewEncapsulation.None,\n    imports: [\n        AsyncPipe,\n        ...EUI_ICON_BUTTON,\n    ],\n})\nexport class EuiSidebarToggleComponent {\n    /**\n     * Data attribute value for end-to-end testing identification.\n     * Applied as data-e2e attribute on the host element for test automation.\n     * @default 'eui-sidebar-toggle'\n     */\n    @HostBinding('attr.data-e2e') @Input() e2eAttr = 'eui-sidebar-toggle';\n\n    @HostBinding('class') name = 'eui-sidebar-toggle';\n\n    /**\n     * Custom fill color for the toggle icon SVG.\n     * Accepts any valid CSS color value to override default icon color.\n     * Optional.\n     */\n    @Input() iconSvgFillColor;\n    asService = inject(EuiAppShellService);\n\n    onToggleSidebar(event: Event): void {\n        // focus the first focusable element in the sidebar when opened in mobile/tablet\n        if (this.asService.state.breakpoints.isMobile || this.asService.state.breakpoints.isTablet) {\n            this.asService.state.isSidebarFocused = !this.asService.isSidebarOpen;\n        }\n        this.asService.sidebarToggle();\n        consumeEvent(event);\n    }\n}\n","<eui-icon-button\n    icon=\"eui-menu\"\n    fillColor=\"{{iconSvgFillColor}}\"\n    size=\"l\"\n    [ariaLabel]=\"(asService.state$ | async).isSidebarOpen ? 'Close Sidebar' : 'Open Sidebar'\"\n    (buttonClick)=\"onToggleSidebar($event)\" />\n","import {\n    Component,\n    HostBinding,\n    ChangeDetectionStrategy,\n    ViewEncapsulation,\n    OnInit,\n    OnDestroy,\n    Input,\n    booleanAttribute,\n    inject,\n} from '@angular/core';\nimport { EuiAppShellService } from '@eui/core';\nimport { AsyncPipe, DOCUMENT } from '@angular/common';\nimport { EuiSidebarToggleComponent } from '../../eui-sidebar-toggle';\nimport { EUI_LANGUAGE_SELECTOR } from '@eui/components/eui-language-selector';\n\n/**\n * @description\n * Application-level toolbar component that provides a horizontal navigation and action bar at the top of the application.\n * Automatically registers itself with EuiAppShellService to coordinate layout calculations and CSS variable management.\n * Supports primary and secondary visual variants for different toolbar contexts within the application hierarchy.\n * Includes built-in sidebar toggle and language selector integration points.\n * \n * @usageNotes\n * ```html\n * <!-- Basic toolbar within app structure -->\n * <eui-app>\n *   <eui-app-toolbar>\n *     <eui-toolbar>\n *       <eui-toolbar-mega-menu [items]=\"menuItems\"></eui-toolbar-mega-menu>\n *       <eui-toolbar-items euiPositionRight>\n *         <eui-toolbar-item-notifications>\n *           <eui-notifications [count]=\"notificationItems.length\" [items]=\"notificationItems\"></eui-notifications>\n *         </eui-toolbar-item-notifications>\n *       </eui-toolbar-items>\n *     </eui-toolbar>\n *   </eui-app-toolbar>\n * </eui-app>\n *\n * <!-- Secondary toolbar variant -->\n * <eui-app>\n *   <eui-app-toolbar [euiSecondary]=\"true\">\n *     <eui-toolbar>\n *       <!-- Toolbar content -->\n *     </eui-toolbar>\n *   </eui-app-toolbar>\n * </eui-app>\n * ```\n *\n * ### Accessibility\n * - Uses role=\"banner\" for semantic landmark identification\n * - Provides consistent navigation structure across application\n * - Sidebar toggle is keyboard accessible\n * - Language selector supports keyboard navigation\n * - Child toolbar components inherit accessibility features\n *\n * ### Notes\n * - Must be used within eui-app component for proper layout integration\n * - Automatically registers with EuiAppShellService on init\n * - Sets --eui-app-toolbar-height CSS variable for layout calculations\n * - euiSecondary applies secondary theme styling (default: false, primary)\n * - Expects eui-toolbar child component for content projection\n * - Includes built-in sidebar toggle and language selector slots\n * - Cleans up layout state and CSS variables on destroy\n * - Theme variants affect nested eui-toolbar styling automatically\n */\n@Component({\n    selector: 'eui-app-toolbar',\n    templateUrl: './toolbar.component.html',\n    styleUrl: './toolbar.scss',\n    changeDetection: ChangeDetectionStrategy.Default,\n    encapsulation: ViewEncapsulation.None,\n    imports: [\n        AsyncPipe,\n        EuiSidebarToggleComponent,\n        ...EUI_LANGUAGE_SELECTOR,\n    ],\n})\nexport class EuiAppToolbarComponent implements OnInit, OnDestroy {\n    @HostBinding('class')\n    get cssClasses(): string {\n        return [\n            'eui-app-toolbar',\n            this.euiSecondary ? 'eui-app-toolbar--secondary eui--secondary' : 'eui-app-toolbar--primary eui--primary',\n        ].join(' ').trim();\n    }\n\n    @HostBinding('attr.role') role = 'banner';\n\n    /**\n     * Applies secondary styling variant to the toolbar.\n     * @default false\n     */\n    @Input({ transform: booleanAttribute }) euiSecondary = false;\n    asService = inject(EuiAppShellService);\n    private document = inject<Document>(DOCUMENT);\n\n    ngOnInit(): void {\n        this.asService.activateToolbar();\n    }\n\n    ngOnDestroy(): void {\n        this.asService.setState({\n            ...this.asService.state,\n            hasToolbar: false,\n        });\n        this.document.documentElement.style.removeProperty('--eui-app-toolbar-height');\n    }\n}\n","@if (asService.getState('hasSidebar') | async) {\n    <eui-sidebar-toggle class=\"eui-app-toolbar__sidebar-toggle\"/>\n}\n\n<ng-content/>\n\n@if ((asService.getState('hasHeader') | async) && (asService.breakpoints$ | async).isMobile) {\n    <eui-language-selector isToolbarSelector/>\n}\n","import { Component, HostBinding, Input, booleanAttribute } from '@angular/core';\n\n@Component({\n    selector: 'eui-app-toolbar-items-mobile',\n    template: '<ng-content />',\n})\nexport class EuiAppToolbarItemsMobileComponent {\n}\n","import {\n    Component,\n    Directive,\n    ViewEncapsulation,\n    HostBinding,\n    OnInit,\n    OnDestroy,\n    Input,\n    ContentChild,\n    forwardRef,\n    OnChanges,\n    SimpleChanges,\n    ChangeDetectorRef,\n    AfterContentInit,\n    inject,\n    PLATFORM_ID,\n    booleanAttribute,\n    Injector,\n    ComponentRef,\n} from '@angular/core';\nimport { AsyncPipe, DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport { RouterOutlet } from '@angular/router';\nimport { Subject, fromEvent, debounceTime, take, takeUntil, withLatestFrom } from 'rxjs';\nimport { GlobalPositionStrategy, Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal, PortalModule } from '@angular/cdk/portal';\n\nimport { EuiAppShellService, EuiGrowlService, CssUtils } from '@eui/core';\nimport { EUI_DIMMER } from '@eui/components/eui-dimmer';\nimport { EuiGrowlComponent } from '@eui/components/eui-growl';\nimport { EuiBlockDocumentComponent } from '@eui/components/eui-block-document';\nimport { EUI_USER_PROFILE } from '@eui/components/eui-user-profile';\n\nimport { EuiToolbarComponent, EuiToolbarItemComponent, EuiToolbarItemsComponent } from '../eui-toolbar';\nimport { EuiAppSidebarBodyComponent, EuiAppSidebarComponent, EuiAppSidebarMenuComponent } from './eui-app-sidebar';\nimport { EuiAppToolbarComponent } from './eui-app-toolbar';\n\n/**\n * @description\n * Root application shell component that provides the foundational layout structure for EUI applications.\n * Manages the main application frame including sidebar navigation, toolbar, page content area, and global UI services.\n * Handles responsive behavior, viewport tracking, and theme application across the entire application.\n * Integrates with EuiAppShellService to maintain centralized application state for layout configuration.\n * \n * @usageNotes\n * ```html\n * <!-- Basic app shell -->\n * <eui-app>\n *   <eui-app-sidebar>\n *     <eui-app-sidebar-menu>\n *       <!-- Navigation menu items -->\n *     </eui-app-sidebar-menu>\n *   </eui-app-sidebar>\n *   \n *   <eui-app-toolbar>\n *     <!-- Toolbar content -->\n *   </eui-app-toolbar>\n *   \n *   <router-outlet></router-outlet>\n * </eui-app>\n *\n * <!-- With custom configuration -->\n * <eui-app \n *   [isSidebarOpen]=\"sidebarOpen\"\n *   [isShrinkHeaderActive]=\"true\"\n *   [themeClass]=\"'dark-theme'\"\n *   appSubTitle=\"Dashboard\">\n *   <eui-app-sidebar>\n *     <!-- Sidebar content -->\n *   </eui-app-sidebar>\n *   <router-outlet></router-outlet>\n * </eui-app>\n *\n * <!-- Without sidebar -->\n * <eui-app [isSidebarHidden]=\"true\">\n *   <eui-app-toolbar>\n *     <!-- Toolbar only layout -->\n *   </eui-app-toolbar>\n *   <router-outlet></router-outlet>\n * </eui-app>\n * ```\n *\n * ```ts\n * export class AppComponent {\n *   sidebarOpen = true;\n *   \n *   constructor(private appShellService: EuiAppShellService) {\n *     // Access global app state\n *     this.appShellService.state$.subscribe(state => {\n *       console.log('App state:', state);\n *     });\n *   }\n * }\n * ```\n *\n * ### Accessibility\n * - Provides semantic application structure with proper landmarks\n * - Sidebar navigation is keyboard accessible\n * - Focus management handled during sidebar expand/collapse\n * - Responsive behavior maintains usability across devices\n * - Theme changes preserve contrast ratios for accessibility\n * - Growl notifications use ARIA live regions for screen reader announcements\n *\n * ### Notes\n * - Must be used as root layout component in application\n * - Integrates with EuiAppShellService for centralized state management\n * - Automatically tracks viewport dimensions and updates on resize\n * - Applies 'eui-21' class to HTML element for global styling\n * - isSidebarOpen controls sidebar expanded/collapsed state (default: true)\n * - isSidebarHidden completely removes sidebar from layout (default: false)\n * - isShrinkHeaderActive enables header shrinking on scroll (default: true)\n * - themeClass applies custom theme styling to entire application\n * - appSubTitle displays contextual subtitle in header/toolbar\n * - Manages growl notification overlay positioning and lifecycle\n * - Handles browser detection for Chrome, IE, Firefox specific behaviors\n * - Automatically sets CSS custom properties for viewport dimensions\n * - Content projection expects eui-app-sidebar, eui-app-toolbar, and router-outlet\n * - Use EuiAppPageWrapperDirective for custom page wrapper layouts\n * - Responsive breakpoints handled automatically via media queries\n */\n@Component({\n    selector: 'eui-app',\n    templateUrl: './eui-app.component.html',\n    styleUrl: './_styles/_index.scss',\n    encapsulation: ViewEncapsulation.None,\n    imports: [\n        RouterOutlet,\n        AsyncPipe,\n        EuiAppSidebarComponent,\n        EuiAppSidebarMenuComponent,\n        EuiAppSidebarBodyComponent,\n        EuiAppToolbarComponent,\n        EuiToolbarComponent,\n        EuiToolbarItemsComponent,\n        EuiToolbarItemComponent,\n        ...EUI_USER_PROFILE,\n        ...EUI_DIMMER,\n        PortalModule,\n    ],\n})\nexport class EuiAppComponent implements OnInit, OnDestroy, OnChanges, AfterContentInit {\n    @HostBinding('class') cssClasses = 'eui-app';\n\n    /**\n     * Subtitle text displayed in the application header or toolbar area.\n     * Typically used to show contextual information about the current view or section.\n     * @default empty string\n     */\n    @Input() appSubTitle = '';\n\n    /**\n     * CSS class name to apply a custom theme to the application shell.\n     * Allows theme switching by applying predefined theme class names to the root component.\n     * @default empty string\n     */\n    @Input() themeClass = '';\n\n    hasNoPageWrapper = false;\n\n    isViewLoaded: boolean;\n\n    /**\n     * Controls the expanded/collapsed state of the application sidebar.\n     * When true, sidebar is fully expanded showing labels and content. When false, sidebar collapses to icon-only mode.\n     * Syncs with EuiAppShellService state to coordinate sidebar behavior across the application.\n     * @default true\n     */\n    @Input({ transform: booleanAttribute }) isSidebarOpen = true;\n\n    /**\n     * Enables automatic header shrinking behavior on scroll.\n     * When true, the application header reduces its height when user scrolls down, maximizing content area.\n     * @default true\n     */\n    @Input({ transform: booleanAttribute }) isShrinkHeaderActive = true;\n\n    /**\n     * Completely hides the sidebar from the layout.\n     * When true, sidebar is removed from DOM and content area expands to full width.\n     * Differs from isSidebarOpen which only collapses the sidebar.\n     * @default false\n     */\n    @Input({ transform: booleanAttribute }) isSidebarHidden = false;\n    \n    @ContentChild(forwardRef(() => EuiAppSidebarComponent))\n    appSidebar: EuiAppSidebarComponent;\n\n    @ContentChild(forwardRef(() => EuiAppPageWrapperDirective))\n    customPageWrapper: EuiAppPageWrapperDirective;\n\n    @ContentChild(forwardRef(() => EuiAppToolbarComponent))\n    appToolbar: EuiAppToolbarComponent;\n\n    asService = inject(EuiAppShellService);\n    euiGrowlService = inject(EuiGrowlService);\n    private destroy$: Subject<boolean> = new Subject<boolean>();\n    private cdRef = inject(ChangeDetectorRef);\n    private platformId = inject(PLATFORM_ID);\n    private document = inject<Document>(DOCUMENT);\n    private overlay = inject(Overlay);\n    private overlayRefs: OverlayRef[] = [];\n    private growlInstance: ComponentRef<EuiGrowlComponent> = null;\n    private blockDocumentOverlayRef: OverlayRef = null;\n    private blockDocumentInstance: ComponentRef<EuiBlockDocumentComponent> = null;\n\n    ngAfterContentInit(): void {\n        this.hasNoPageWrapper = !this.customPageWrapper;\n        this.isViewLoaded = true;\n    }\n\n    ngOnInit(): void {\n        this.isViewLoaded = false;\n\n        CssUtils.initCssVars(this.document, this.platformId);\n\n        CssUtils.setHtmlClass('eui-21', this.document);\n\n        if(isPlatformBrowser(this.platformId)) {\n            const browserAgent = window.navigator.userAgent.toLowerCase();\n\n            this.asService.setState({\n                ...this.asService.state,\n                windowHeight: window.innerHeight,\n                windowWidth: window.innerWidth,\n                hasHeader: false,\n                hasSidebar: false,\n                deviceInfo: {\n                    isChrome: browserAgent.indexOf('chrome') > -1,\n                    isIE: browserAgent.indexOf('trident') > -1,\n                    isFF: browserAgent.indexOf('firefox') > -1,\n                },\n                appBaseFontSize: this.asService.getBaseFontSize(),\n            });\n        }\n\n        this.asService\n            .getState('wrapperClasses')\n            .pipe(takeUntil(this.destroy$))\n            .subscribe((state: string) => {\n                this.cdRef.detach();\n                this.cssClasses = ['eui-app', state].join(' ');\n                this.cdRef.reattach();\n                this.cdRef.detectChanges();\n            });\n\n        if(isPlatformBrowser(this.platformId)) {\n            fromEvent(window, 'resize')\n                .pipe(debounceTime(50), takeUntil(this.destroy$))\n                .subscribe(() => {\n                    this.asService?.setState({\n                        ...this.asService.state,\n                        windowHeight: window.innerHeight,\n                        windowWidth: window.innerWidth,\n                    });\n                    CssUtils.setAppViewportCssVars(this.platformId);\n                });\n        }\n\n        this.euiGrowlService.growlMessages\n            .pipe(\n                withLatestFrom(\n                this.euiGrowlService.isGrowlSticky,\n                this.euiGrowlService.isCloseAllSticky,\n                this.euiGrowlService.growlLife,\n                this.euiGrowlService.growlPosition,\n                this.euiGrowlService.growlCallback,\n                this.euiGrowlService.ariaGrowlLive,\n                ),\n                takeUntil(this.destroy$),\n            )\n        .subscribe(([messages, sticky, closeAllSticky, life, position, callback, ariaLive]) => {\n            if (messages.length > 0) {\n                if (!this.growlInstance) {\n                    const overlayRef = this.overlay.create({\n                        hasBackdrop: false,\n                        disposeOnNavigation: true,\n                        panelClass: ['eui-growl', 'eui-growl--' + position, 'eui-21'],\n                        positionStrategy: this.getPositionStrategy(position),\n                    });\n    \n                    this.overlayRefs.push(overlayRef);\n                    this.overlayRefs.slice(0, -1).forEach(ref => ref.dispose());\n                    this.overlayRefs = this.overlayRefs.slice(-1);\n\n                    const containerPortal = new ComponentPortal<EuiGrowlComponent>(EuiGrowlComponent);\n                    this.growlInstance = overlayRef.attach(containerPortal);\n\n                    this.growlInstance.setInput('value', messages);\n                    this.growlInstance.setInput('sticky', sticky);\n                    this.growlInstance.setInput('closeAllSticky', closeAllSticky);\n                    this.growlInstance.setInput('life', life);\n                    this.growlInstance.setInput('position', position);\n                    this.growlInstance.setInput('ariaLive', ariaLive);\n                    this.growlInstance.setInput('callback', callback);\n\n                    this.growlInstance.instance.growlClose.pipe(take(1)).subscribe(() => {\n                        if (messages.length === 0) {\n                            this.overlayRefs.forEach(ref => ref.dispose());\n                            this.overlayRefs = [];\n                            this.growlInstance = null;\n                        }\n                    });\n                } else {\n                    this.growlInstance.setInput('value', messages);\n                    this.growlInstance.instance.growlClose.pipe(take(1)).subscribe(() => {\n                        if (messages.length === 0) {\n                            this.overlayRefs.forEach(ref => ref.dispose());\n                            this.overlayRefs = [];\n                            this.growlInstance = null;\n                        }\n                    });\n                }\n            } else {\n                this.overlayRefs.forEach(ref => ref.dispose());\n                this.overlayRefs = [];\n                this.growlInstance = null;\n            }\n        });\n\n        this.asService\n            .getState('isBlockDocumentActive')\n            .pipe(takeUntil(this.destroy$))\n            .subscribe((isBlocked: boolean) => {\n                if (isBlocked) {\n                    if (!this.blockDocumentInstance) {\n                        this.blockDocumentOverlayRef = this.overlay.create({\n                            hasBackdrop: false,\n                            disposeOnNavigation: false,\n                            panelClass: ['eui-21'],\n                            positionStrategy: this.overlay.position().global(),\n                        });\n\n                        const blockPortal = new ComponentPortal<EuiBlockDocumentComponent>(EuiBlockDocumentComponent);\n                        this.blockDocumentInstance = this.blockDocumentOverlayRef.attach(blockPortal);\n                        this.blockDocumentInstance.setInput('isBlocked', true);\n                    }\n                } else {\n                    if (this.blockDocumentOverlayRef) {\n                        this.blockDocumentOverlayRef.dispose();\n                        this.blockDocumentOverlayRef = null;\n                        this.blockDocumentInstance = null;\n                    }\n                }\n            });\n    }\n\n    ngOnChanges(changes: SimpleChanges): void {\n        if (changes.isSidebarHidden) {\n            this.asService.setState({\n                ...this.asService.state,\n                isSidebarHidden: changes.isSidebarHidden.currentValue,\n            });\n        }\n        if (changes.isSidebarOpen) {\n            this.asService.setState({\n                ...this.asService.state,\n                isSidebarOpen: changes.isSidebarOpen.currentValue,\n            });\n        }\n    }\n\n    ngOnDestroy(): void {\n        this.destroy$.next(true);\n        this.destroy$.unsubscribe();\n        this.overlayRefs.forEach(ref => ref.dispose());\n        this.overlayRefs = [];\n        this.growlInstance = null;\n        if (this.blockDocumentOverlayRef) {\n            this.blockDocumentOverlayRef.dispose();\n            this.blockDocumentOverlayRef = null;\n            this.blockDocumentInstance = null;\n        }\n    }\n\n    private getPositionStrategy(position: string): GlobalPositionStrategy {\n        const strategy = this.overlay.position().global();\n\n        switch (position) {\n            case 'bottom-right':\n            return strategy.bottom().right();\n\n            case 'bottom-left':\n            return strategy.bottom().left();\n\n            case 'top-right':\n            return strategy.top().right();\n\n            case 'top-left':\n            return strategy.top().left();\n\n            case 'bottom-center':\n            return strategy.bottom().centerHorizontally();\n\n            case 'top-center':\n            return strategy.top().centerHorizontally();\n\n            default:\n            return strategy.bottom().right();\n        }\n    }\n}\n\n/**\n * @description\n * Marker directive to identify custom page wrapper content projected into the eui-app component.\n * When present, prevents the default page wrapper from being rendered, allowing full control over page layout structure.\n * Used internally by EuiAppComponent to detect custom content projection.\n */\n/* eslint-disable */\n@Directive({ selector: 'eui-app-page-wrapper' })\nexport class EuiAppPageWrapperDirective { }\n\n","<eui-dimmer [isDimmerActive]=\"(asService.state$ | async).isDimmerActive\" />\n\n<ng-content select=\"eui-app-sidebar\" />\n@if (!appSidebar && (asService.state$ | async).menuLinks.length !== 0 && (asService.state$ | async).hasHeader && (asService.breakpoints$ | async).isMobile) {\n    <eui-app-sidebar>\n        <eui-app-sidebar-body>\n            <eui-app-sidebar-menu [hasIcons]=\"true\" />\n        </eui-app-sidebar-body>\n    </eui-app-sidebar>\n}\n\n@if (isViewLoaded) {\n    <div class=\"eui-app-main\">\n        <ng-content select=\"eui-app-top-message\"></ng-content>\n\n        <ng-content select=\"eui-app-header\"></ng-content>\n\n        @if (\n            (!appToolbar && (asService.state$ | async).hasHeader && (asService.breakpoints$ | async).isMobile) || \n            (appToolbar && (asService.state$ | async).hasHeader && (asService.breakpoints$ | async).isMobile ) && (asService.state$ | async).menuLinks.length !== 0\n            ) {\n            <eui-app-toolbar>\n                <eui-toolbar>\n                    <eui-toolbar-items>\n                        <ng-content select=\"eui-app-toolbar-items-mobile\"/>\n                        <eui-toolbar-item>\n                            <ng-content select=\"eui-user-profile\"/>\n                        </eui-toolbar-item>\n                    </eui-toolbar-items>                \n                </eui-toolbar>\n            </eui-app-toolbar>\n        } @else {\n            <ng-content select=\"eui-app-toolbar\"></ng-content>\n        }\n\n        <ng-content select=\"eui-app-breadcrumb\"></ng-content>\n\n        <div class=\"eui-app-main-content\" role=\"main\">\n            <ng-content select=\"eui-app-page-wrapper\"></ng-content>\n            @if (hasNoPageWrapper) {\n                <router-outlet></router-outlet>\n            }\n        </div>\n\n        <ng-content select=\"eui-app-footer\"></ng-content>\n    </div>\n}\n\n<ng-content select=\"eui-app-side-container\"/>\n","import {\n    Component,\n    HostBinding,\n    ChangeDetectionStrategy,\n    ViewEncapsulation,\n    OnInit,\n    OnDestroy,\n    Input,\n    NgZone,\n    PLATFORM_ID,\n    inject,\n} from '@angular/core';\nimport { coerceBooleanProperty, BooleanInput } from '@angular/cdk/coercion';\nimport { ScrollDispatcher, ViewportRuler } from '@angular/cdk/scrolling';\nimport { EuiAppShellService } from '@eui/core';\n\nimport { Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { CssUtils } from '@eui/core';\nimport { AsyncPipe, DOCUMENT } from '@angular/common';\nimport { EuiSidebarToggleComponent } from '../../eui-sidebar-toggle';\n\n/**\n * @description\n * Application header component that provides a top-level banner area for branding, navigation, and global actions.\n * Automatically registers with EuiAppShellService to coordinate layout calculations and CSS variable management.\n * Supports automatic header shrinking on scroll to maximize content area when user scrolls down the page.\n * Integrates with Angular CDK ScrollDispatcher for optimized scroll event handling outside Angular zone.\n * Includes built-in sidebar toggle integration for responsive navigation control.\n * \n * @usageNotes\n * ```html\n * <!-- Basic app header -->\n * <eui-app>\n *   <eui-app-header>\n *     <eui-header>\n *       <eui-header-logo></eui-header-logo>\n *       <eui-header-environment>DEV</eui-header-environment>\n *       <eui-header-app>\n *         <eui-header-app-name><strong>My</strong>Workplace</eui-header-app-name>\n *         <eui-header-app-subtitle>Dashboard</eui-header-app-subtitle>\n *       </eui-header-app>\n *       <eui-header-user-profile>\n *         <!-- User profile menu -->\n *       </eui-header-user-profile>\n *     </eui-header>\n *   </eui-app-header>\n * </eui-app>\n *\n * <!-- With shrink on scroll -->\n * <eui-app [isShrinkHeaderActive]=\"true\">\n *   <eui-app-header [isShrinkHeaderActive]=\"true\">\n *     <eui-header>\n *       <!-- Header content -->\n *     </eui-header>\n *   </eui-app-header>\n * </eui-app>\n * ```\n *\n * ### Accessibility\n * - Uses role=\"banner\" for semantic landmark identification\n * - Provides consistent branding and navigation structure\n * - Sidebar toggle is keyboard accessible\n * - Header shrinking maintains accessibility in all states\n * - Child components handle their own accessibility features\n *\n * ### Notes\n * - Must be used within eui-app component for proper layout integration\n * - Automatically registers with EuiAppShellService on init\n * - Sets --eui-app-header-height CSS variable for layout calculations\n * - isShrinkHeaderActive enables scroll-based height reduction (default: false)\n * - Scroll detection runs outside Angular zone for performance\n * - Expects eui-header child component for content projection\n * - Includes built-in sidebar toggle for responsive layouts\n * - Cleans up layout state and CSS variables on destroy\n * - Header shrinks when viewport scroll position > 0\n * - Positioned at top of application, above toolbar and content\n */\n@Component({\n    selector: 'eui-app-header',\n    templateUrl: './header.component.html',\n    styleUrl: './header.scss',\n    changeDetection: ChangeDetectionStrategy.Default,\n    encapsulation: ViewEncapsulation.None,\n    imports: [\n        AsyncPipe,\n        EuiSidebarToggleComponent,\n    ],\n})\nexport class EuiAppHeaderComponent implements OnInit, OnDestroy {\n    asService = inject(EuiAppShellService);\n    @HostBinding('class')\n    get cssClasses(): string {\n        return this.getCssClasses();\n    }\n    @HostBinding('attr.role') role = 'banner';\n\n    /**\n     * Enables automatic header height reduction when user scrolls down the page.\n     * When true, monitors viewport scroll position and applies shrinked styling to reduce header height, maximizing content area.\n     * @default false\n     */\n    @Input()\n    get isShrinkHeaderActive(): boolean {\n        return this._isShrinkHeaderActive;\n    }\n    set isShrinkHeaderActive(value: BooleanInput) {\n        this._isShrinkHeaderActive = coerceBooleanProperty(value);\n    }\n    private _isShrinkHeaderActive = false;\n\n    private isHeaderShrinked = false;\n    private destroy$: Subject<boolean> = new Subject<boolean>();\n    private zone = inject(NgZone);\n    private viewportRuler = inject(ViewportRuler);\n    private scrollDispatcher = inject(ScrollDispatcher);\n    private document = inject<Document>(DOCUMENT);\n    private platformId = inject(PLATFORM_ID);\n\n    ngOnInit(): void {\n        this.asService.activateHeader();\n\n        // Scrolled is running outside angular zone (for performance reasons - less change detections).\n        // Read more: https://material.angular.io/cdk/scrolling/api#ScrollDispatcher\n        // scrolled uses DEFAULT_SCROLL_TIME which is 20ms\n        this.scrollDispatcher\n            .scrolled()\n            .pipe(\n                filter(() => this.isShrinkHeaderActive),\n                takeUntil(this.destroy$),\n            )\n            .subscribe(() => {\n                // read the top scroll position of the viewport\n                const topScrollPos = this.viewportRuler.getViewportScrollPosition().top;\n                CssUtils.setHeaderShrinkCssVar(topScrollPos > 0, this.document, this.platformId);\n                // change the shrinkHeader value only if it's different from the current one\n                if (topScrollPos > 0 !== this.isHeaderShrinked) {\n                    // we need to run this inside angular zone to trigger change detection in CSS\n                    this.zone.run(() => (this.isHeaderShrinked = topScrollPos > 0));\n                }\n            });\n    }\n\n    ngOnDestroy(): void {\n        this.destroy$.next(true);\n        this.destroy$.unsubscribe();\n        // cleanup\n        this.asService.setState({\n            ...this.asService.state,\n            hasHeader: false,\n        });\n        this.document.documentElement.style.removeProperty('--eui-app-header-height');\n    }\n\n    private getCssClasses(): string {\n        return ['eui-app-header', this.isHeaderShrinked ? 'eui-app-header--shrinked' : ''].join(' ');\n    }\n}\n","@if ((asService.state$ | async).hasSidebar && (asService.state$ | async).hasHeader && !(asService.state$ | async).hasToolbar) {\n    <eui-sidebar-toggle class=\"eui-app-header__sidebar-toggle\"/>\n}\n<ng-content select=\"eui-header\"/>\n","import { Component, HostBinding, ChangeDetectionStrategy, ViewEncapsulation } from '@angular/core';\n\n/**\n * @description\n * Application footer component that provides a bottom-level content area for copyright, links, and supplementary information.\n * Positioned at the bottom of the application layout with semantic contentinfo role for accessibility.\n * Content is projected via ng-content allowing flexible footer composition with custom elements and layouts.\n * Automatically styled with consistent spacing and theming to match the application shell design.\n * \n * @usageNotes\n * ```html\n * <!-- Basic app footer -->\n * <eui-app>\n *   <eui-app-footer>\n *     <eui-footer euiPrimary>\n *       © 2026 European Commission - <a href=\"/privacy\">Privacy</a> - <a href=\"/legal\">Legal Notice</a>\n *     </eui-footer>\n *   </eui-app-footer>\n * </eui-app>\n * ```\n *\n * ### Accessibility\n * - Uses role=\"contentinfo\" for semantic landmark identification\n * - Provides consistent location for supplementary information\n * - Links within footer are keyboard accessible\n * - Content projection allows flexible accessible structure\n *\n * ### Notes\n * - Must be used within eui-app component for proper layout integration\n * - Positioned at bottom of application, below all content\n * - Typically contains eui-footer child component for content\n * - Content is projected via ng-content for flexible composition\n * - Automatically styled with consistent spacing and theming\n * - Common content includes copyright, legal links, version info\n * - Footer remains at bottom even with minimal page content\n */\n@Component({\n    selector: 'eui-app-footer',\n    template: '<ng-content/>',\n    changeDetection: ChangeDetectionStrategy.Default,\n    styleUrl: './footer.scss',\n    encapsulation: ViewEncapsulation.None,\n})\nexport class EuiAppFooterComponent {\n    @HostBinding() class = 'eui-app-footer';\n    @HostBinding('attr.role') role = 'contentinfo';\n}\n","import {\n    Component,\n    HostBinding,\n    ChangeDetectionStrategy,\n    ViewEncapsulation,\n    ElementRef,\n    AfterViewInit,\n    Input,\n    OnInit,\n    Output,\n    EventEmitter,\n    OnDestroy,\n    ChangeDetectorRef,\n    ViewChild,\n    booleanAttribute,\n    inject,\n} from '@angular/core';\nimport { EuiAppShellService } from '@eui/core';\nimport { BaseStatesDirective } from '@eui/components/shared';\nimport { Subject, startWith, Subscription, takeUntil, distinctUntilChanged } from 'rxjs';\nimport { ContentObserver } from '@angular/cdk/observers';\nimport { CssUtils } from '@eui/core';\nimport { DOCUMENT } from '@angular/common';\nimport { EUI_ICON_BUTTON } from '@eui/components/eui-icon-button';\n\n/**\n * @description\n * Banner component displayed at the top of the application shell to communicate important system-wide messages.\n * Automatically adjusts application layout by reserving vertical space and updating CSS variables for proper content positioning.\n * Supports dismissible messages, custom content projection, and theme variants through BaseStatesDirective.\n * Integrates with EuiAppShellService to coordinate layout calculations and viewport changes.\n * \n * @usageNotes\n * ```html\n * <eui-app>\n *     <eui-app-top-message euiDanger>\n *         Test message for App top message\n *     </eui-app-top-message>\n * </eui-app>\n * ```\n *\n * ### Accessibility\n * - Uses role=\"banner\" for semantic landmark identification\n * - Close button is keyboard accessible (Enter/Space)\n * - Message content is announced to screen readers\n * - Color variants provide visual meaning supplemented by text\n * - Ensure message text is clear and actionable\n * - Consider using euiWarning or euiDanger for time-sensitive messages\n *\n * ### Notes\n * - Must be used within eui-app component for proper layout integration\n * - Automatically adjusts application layout by updating CSS variables\n * - Color variants: euiPrimary, euiInfo, euiWarning, euiSuccess, euiDanger\n * - isCloseable adds close button and enables dismissal\n * - hasCustomContent applies styling for complex HTML layouts\n * - isVisible controls visibility and triggers layout recalculation\n * - topMessageClose event emits when close button is clicked\n * - Height is automatically calculated and communicated to EuiAppShellService\n * - Responds to viewport changes and recalculates layout\n * - Content changes are observed and trigger height recalculation\n * - On destroy, resets layout by removing reserved space\n * - Use for system-wide announcements, alerts, or important notifications\n * - Avoid multiple simultaneous top messages (only one supported)\n * - Message persists across navigation unless dismissed or hidden\n */\n@Component({\n    selector: 'eui-app-top-message',\n    templateUrl: './top-message.component.html',\n    changeDetection: ChangeDetectionStrategy.Default,\n    styleUrl: './top-message.scss',\n    encapsulation: ViewEncapsulation.None,\n    hostDirectives: [\n        {\n            directive: BaseStatesDirective,\n            inputs: [\n                'euiPrimary',\n                'euiInfo',\n                'euiWarning',\n                'euiSuccess',\n                'euiDanger',\n                'euiVariant',\n            ],\n        },\n    ],\n    imports: [\n        ...EUI_ICON_BUTTON,\n    ],\n})\nexport class EuiAppTopMessageComponent implements AfterViewInit, OnInit, OnDestroy {\n    @HostBinding('class')\n    get cssClasses(): string {\n        return [\n            this.baseStatesDirective.getCssClasses('eui-app-top-message'),\n            !this.isVisible ? 'eui-app-top-message--hidden' : '',\n            this.hasCustomContent ? 'eui-app-top-message--custom' : '',\n    ].join(' ').trim();\n    }\n    @HostBinding('attr.role') role = 'banner';\n\n    @ViewChild('appTopMessage') appTopMessage: ElementRef;\n    appTopMessageChanges: Subscription;\n\n    /**\n     * Enables a close button allowing users to dismiss the top message.\n     * When true, displays an icon button that triggers the topMessageClose event and hides the message.\n     * @default false\n     */\n    @Input({ transform: booleanAttribute }) isCloseable = false;\n\n    /**\n     * Indicates that custom HTML content is projected into the message area.\n     * When true, applies specific styling to accommodate non-standard message layouts.\n     * @default false\n     */\n    @Input({ transform: booleanAttribute }) hasCustomContent = false;\n\n    /**\n     * Controls the visibility state of the top message banner.\n     * When changed, triggers layout recalculation to adjust application content positioning.\n     * Setting to false collapses the message and releases reserved vertical space.\n     * @default true\n     */\n    @Input()\n    set isVisible(value: boolean) {\n        this._isVisible = value;\n        this._calculateHeight();\n    }\n\n    get isVisible(): boolean {\n        return this._isVisible;\n    }\n\n    /**\n     * Emitted when the user clicks the close button on a dismissible message.\n     * Payload: null\n     * Triggered only when isCloseable is true and the close button is clicked.\n     */\n    @Output() topMessageClose = new EventEmitter<null>();\n\n    asService = inject(EuiAppShellService);\n    private _isVisible = true;\n    private destroy$: Subject<boolean> = new Subject<boolean>();\n    private elRef = inject(ElementRef);\n    private cd = inject(ChangeDetectorRef);\n    private obs = inject(ContentObserver);\n    protected baseStatesDirective = inject(BaseStatesDirective);\n    private document = inject<Document>(DOCUMENT);\n\n    ngOnInit(): void {\n        // Trigger for recalculate when resizing viewport (works perfect)\n        this.asService.breakpoint$.pipe(takeUntil(this.destroy$)).subscribe(() => {\n            this._calculateHeight();\n        });\n    }\n\n    ngAfterViewInit(): void {\n        // TODO: This will not work when there are more than one top-message\n        this.appTopMessageChanges = this.obs\n            .observe(this.appTopMessage.nativeElement)\n            .pipe(startWith(0))\n            .subscribe(() => this._calculateHeight());\n    }\n\n    ngOnDestroy(): void {\n        this.asService.setState({\n            ...this.asService.state,\n            hasTopMessage: false,\n        });\n        CssUtils.activateTopMessageCssVars(0, this.document);\n        this.appTopMessageChanges.unsubscribe();\n\n        this.destroy$.next(true);\n        this.destroy$.unsubscribe();\n    }\n\n    onCloseClick(): void {\n        this.isVisible = false;\n        CssUtils.activateTopMessageCssVars(0, this.document);\n        this.topMessageClose.emit();\n    }\n\n    private _calculateHeight(): void {\n        // Differ DC from AfterViewInit due to the styles the are not yet applied when retrieving the CSS var value\n        setTimeout( () => {\n            this.cd.detach();\n            const height = this.elRef.nativeElement.offsetHeight;\n            this.asService.activateTopMessage(height);\n            this.cd.reattach();\n            this.cd.detectChanges();\n        }, 0);\n    }\n}\n","<div class=\"eui-app-top-message__wrapper\" #appTopMessage>\n    <div class=\"eui-app-top-message__content\">\n        <ng-content></ng-content>\n    </div>\n    @if (isCloseable) {\n    <eui-icon-button\n        icon=\"eui-close\"\n        (buttonClick)=\"onCloseClick()\"\n        ariaLabel=\"Close top message\"\n        fillColor=\"white\"\n        euiRounded\n        class=\"eui-app-top-message__close\"/>\n    }\n</div>\n","import { Component, HostBinding, ChangeDetectionStrategy, ViewEncapsulation, OnInit, inject } from '@angular/core';\n\nimport { EuiAppShellService } from '@eui/core';\n\n/**\n * @description\n * Breadcrumb navigation component that displays the hierarchical path to the current page location.\n * Automatically registers with EuiAppShellService to coordinate layout positioning within the application shell.\n * Provides semantic navigation landmark with appropriate ARIA role for accessibility.\n * Content is projected via ng-content allowing flexible breadcrumb item composition and custom separators.\n * \n * @usageNotes\n * ```html\n * <!-- Breadcrumb navigation in app -->\n * <eui-app>\n *   <eui-app-breadcrumb>\n *     <eui-breadcrumb>\n *       <eui-breadcrumb-item link=\"/\" iconSvgName=\"home:outline\" ariaLabel=\"Home\"></eui-breadcrumb-item>\n *       <eui-breadcrumb-item link=\"/products\" label=\"Products\"></eui-breadcrumb-item>\n *       <eui-breadcrumb-item label=\"Electronics\"></eui-breadcrumb-item>\n *     </eui-breadcrumb>\n *   </eui-app-breadcrumb>\n * </eui-app>\n * ```\n *\n * ### Accessibility\n * - Uses role=\"nav\" for semantic navigation landmark\n * - Provides hierarchical page location context\n * - Breadcrumb items are keyboard accessible\n * - Current page (last item) typically not linked\n * - Screen readers announce navigation structure\n *\n * ### Notes\n * - Must be used within eui-app component for proper layout integration\n * - Automatically registers with EuiAppShellService on init\n * - Typically contains eui-breadcrumb child component\n * - Content is projected via ng-content for flexible composition\n * - Positioned below header/toolbar, above main content\n * - Shows hierarchical path from home to current page\n * - Last breadcrumb item represents current page location\n */\n@Component({\n    selector: 'eui-app-breadcrumb',\n    template: '<ng-content/>',\n    styleUrl: './breadcrumb.scss',\n    changeDetection: ChangeDetectionStrategy.Default,\n    encapsulation: ViewEncapsulation.None,\n})\nexport class EuiAppBreadcrumbComponent implements OnInit {\n    @HostBinding('class')\n    get cssClasses(): string {\n        return this.getCssClasses();\n    }\n    @HostBinding('attr.role') role = 'nav';\n    private asService = inject(EuiAppShellService);\n\n    ngOnInit(): void {\n        this.asService.activateBreadcrumb();\n    }\n\n    /** @internal */\n    private getCssClasses(): string {\n        return ['eui-app-breadcrumb'].join(' ');\n    }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n    Component,\n    HostBinding,\n    ChangeDetectionStrategy,\n    ViewEncapsulation,\n    inject,\n    OnInit,\n    Input,\n    booleanAttribute,\n    OnChanges,\n    SimpleChanges,\n    OnDestroy,\n} from '@angular/core';\nimport { EuiResizableDirective } from '@eui/components/directives';\nimport { EUI_OVERLAY } from '@eui/components/eui-overlay';\nimport { EuiAppShellService } from '@eui/core';\nimport { Subject, takeUntil } from 'rxjs';\n\n@Component({\n    selector: 'eui-app-side-container',\n    templateUrl: './side-container.component.html',\n    changeDetection: ChangeDetectionStrategy.Default,\n    encapsulation: ViewEncapsulation.None,\n    styleUrl: './side-container.scss',\n    imports: [\n        NgTemplateOutlet,\n        ...EUI_OVERLAY,\n        EuiResizableDirective,\n    ],\n})\nexport class EuiAppSideContainerComponent implements OnInit, OnChanges, OnDestroy {\n    @HostBinding('class')\n    get cssClasses(): string {\n        return [\n            'eui-app-side-container',\n        ].join(' ').trim();\n    }\n\n    asService = inject(EuiAppShellService, { optional: true })!;\n\n    @Input({ transform: booleanAttribute }) isActive = false;\n    @Input({ transform: booleanAttribute }) isOverlayActive = false;\n\n    private destroy$ = new Subject<boolean>();\n\n    ngOnInit(): void {\n        this.asService.breakpoints$.pipe(takeUntil(this.destroy$)).subscribe((bkps) => {\n            if (bkps.isLtDesktop) {\n                this.isOverlayActive = true;\n                this.asService?.deactivateSideContainer();\n            }\n        });\n    }\n\n    ngOnChanges(c: SimpleChanges): void {\n        if (this.isOverlayActive) {\n            this.asService?.deactivateSideContainer();\n        } else {\n            this.asService?.activateSideContainer();\n        }\n        if (!this.isActive) {\n            this.asService?.deactivateSideContainer();\n        }\n    }\n\n    ngOnDestroy(): void {\n        this.destroy$.next(true);\n        this.destroy$.unsubscribe();\n    }\n}\n","@if (isActive) {\n    @if (isOverlayActive) {\n        <eui-overlay isActive class=\"eui-app-side-container__overlay\" euiResizable euiResizablePosition=\"left\" euiResizableMinWidth=\"300\">\n            <eui-overlay-content>\n                <ng-container *ngTemplateOutlet=\"content\"/>\n            </eui-overlay-content>\n        </eui-overlay>\n    \n    } @else {\n        <div class=\"eui-app-side-container__content\" euiResizable euiResizableSideContainer euiResizablePosition=\"left\" euiResizableMinWidth=\"300\">\n            <ng-container *ngTemplateOutlet=\"content\"/>\n        </div>\n    }\n}\n\n<ng-template #content>\n    <ng-content/>\n</ng-template>","import { Component, HostBinding, ChangeDetectionStrategy, ViewEncapsulation, Input, booleanAttribute } from '@angular/core';\n\n/**\n * @description\n * Standalone footer component for displaying supplementary content, links, and copyright information.\n * Provides a flexible container with primary and default styling variants for different visual contexts.\n * Unlike eui-app-footer which is part of the application shell, this component can be used independently in any layout.\n * Content is projected via ng-content allowing complete customization of footer structure and elements.\n * \n * @usageNotes\n * ```html\n * <!-- Footer in app shell -->\n * <eui-app>\n *   <eui-app-footer>\n *     <eui-footer euiPrimary>\n *       © 2024 European Commission - <a href=\"/privacy\">Privacy</a> - <a href=\"/legal\">Legal Notice</a>\n *     </eui-footer>\n *   </eui-app-footer>\n * </eui-app>\n *\n * <!-- Standalone footer in page -->\n * <eui-footer>\n *   <p>© 2024 My Organization</p>\n *   <nav>\n *     <a href=\"/about\">About</a> | \n *     <a href=\"/contact\">Contact</a>\n *   </nav>\n * </eui-footer>\n * ```\n *\n * ### Accessibility\n * - Content projection allows flexible accessible structure\n * - Links within footer are keyboard accessible\n * - Use semantic HTML elements (nav, p) for proper structure\n * - Ensure sufficient color contrast in both themes\n *\n * ### Notes\n * - Can be used standalone or within eui-app-footer\n * - euiPrimary applies primary brand styling (default: false)\n * - Content is projected via ng-content for complete flexibility\n * - Common content includes copyright, legal links, version info, contact\n * - Can contain navigation links, text, or custom elements\n * - Styling adapts to primary or default theme variant\n * - Independent component, not tied to application shell layout\n */\n@Component({\n    selector: 'eui-footer',\n    template: '<ng-content />',\n    changeDetection: ChangeDetectionStrategy.Default,\n    styleUrl: './footer.component.scss',\n    encapsulation: ViewEncapsulation.None,\n})\nexport class EuiFooterComponent {\n    @HostBinding('class')\n    get cssClasses(): string {\n        return [\n            'eui-footer',\n            this.euiPrimary ? 'eui-footer--primary': '',\n        ].join(' ').trim();\n    }\n\n    /**\n     * Applies primary theme styling to the footer.\n     * When true, uses primary brand colors and emphasis. When false, uses default neutral styling.\n     * @default false\n     */\n    @Input({ transform: booleanAttribute }) euiPrimary = false;\n}\n","import { Component, ChangeDetectionStrategy, HostBinding, ViewEncapsulation } from '@angular/core';\n\n/**\n * @description\n * Container component for right-aligned content within eui-header, typically containing user profile, notifications, or action buttons.\n * Automatically positioned to the right side of the header with appropriate spacing and alignment.\n * Detected by parent EuiHeaderComponent via content projection to ensure proper layout structure.\n * Content is projected via ng-content allowing flexible composition of header actions and utilities.\n * \n * @usageNotes\n * ```html\n * <eui-app>\n *   <eui-app-header>\n *     <eui-header>\n *       <eui-header-logo></eui-header-logo>\n *       <eui-header-app appName=\"MyWorkplace\"></eui-header-app>\n *       <eui-header-right-content>\n *         <button euiButton>Action</button>\n *       </eui-header-right-content>\n *     </eui-header>\n *   </eui-app-header>\n * </eui-app>\n * ```\n *\n * ### Accessibility\n * - Right-aligned positioning provides consistent layout\n * - Content should follow proper semantic structure\n * - Interactive elements must be keyboard accessible\n * - Maintains visual hierarchy in header\n *\n * ### Notes\n * - Must be used within eui-header for proper layout\n * - Positioned at the end of the header (rightmost)\n * - Content projected via ng-content\n * - Typically contains buttons, icons, or user profile\n * - Alternative to eui-header-user-profile for custom content\n * - Automatically detected by parent EuiHeaderComponent\n * - Provides flexible container for header actions\n * - Common use: custom action buttons or utility controls\n */\n@Component({\n    selector: 'eui-header-right-content',\n    template: '<ng-content />',\n    changeDetection: ChangeDetectionStrategy.Default,\n    encapsulation: ViewEncapsulation.None,\n})\nexport class EuiHeaderRightContentComponent {\n    @HostBinding('class') cssClass = 'eui-header-right-content';\n}\n","import { Component, HostBinding, ViewEncapsulation, ContentChild } from '@angular/core';\nimport { EuiHeaderRightContentComponent } from './header-right-content/header-right-content.component';\n\n/**\n * @description\n * Standalone header component for displaying page-level or section-level headers with branding and navigation.\n * Provides a flexible container with support for left and right content areas through content projection.\n * Unlike eui-app-header which is part of the application shell, this component can be used independently within page layouts.\n * Automatically detects and positions EuiHeaderRightContentComponent when projected for consistent right-aligned content placement.\n * \n * @usageNotes\n * ```html\n * <!-- Within eui-app-header -->\n * <eui-app>\n *   <eui-app-header>\n *     <eui-header>\n *       <eui-header-logo></eui-header-logo>\n *       <eui-header-environment>DEV</eui-header-environment>\n *       <eui-header-app appName=\"MyWorkplace\"></eui-header-app>\n *       <eui-header-user-profile></eui-header-user-profile>\n *     </eui-header>\n *   </eui-app-header>\n * </eui-app>\n *\n * <!-- Standalone usage -->\n * <eui-header>\n *   <h1>Page Title</h1>\n *   <eui-header-right-content>\n *     <button euiButton>Action</button>\n *   </eui-header-right-content>\n * </eui-header>\n * ```\n *\n * ### Accessibility\n * - Provides semantic header structure\n * - Content should follow proper heading hierarchy\n * - Interactive elements must be keyboard accessible\n * - Maintains consistent navigation patterns\n *\n * ### Notes\n * - Can be used within eui-app-header or standalone\n * - Content projected via ng-content\n * - Automatically detects eui-header-right-content for alignment\n * - Supports all eui-header-* child components\n * - Common children: eui-header-logo, eui-header-environment, eui-header-app\n * - eui-header-user-profile typically positioned at the end\n * - Flexible layout adapts to projected content\n * - Use within eui-app-header for application shell integration\n * - Use standalone for page-level or section headers\n */\n@Component({\n    selector: 'eui-header',\n    templateUrl: './header.component.html',\n    styleUrl: './header.component.scss',\n    encapsulation: ViewEncapsulation.None,\n})\nexport class EuiHeaderComponent {\n\n    @HostBinding('class') string = 'eui-header';\n\n    @ContentChild(EuiHeaderRightContentComponent) rightContent: EuiHeaderRightContentComponent;\n}\n","<div class=\"eui-header-logo-wrapper\">\n    <ng-content select=\"eui-header-logo\"></ng-content>\n    <ng-content select=\"eui-header-environment\"></ng-content>\n</div>\n\n<ng-content select=\"eui-header-app\" />\n\n<div class=\"eui-header-right-content-wrapper\">\n    @if (rightContent) {\n        <ng-content select=\"eui-header-right-content\"></ng-content>\n    } @else {\n        <ng-content select=\"eui-header-user-profile\"></ng-content>\n    }\n</div>\n\n<ng-content select=\"eui-language-selector\" />\n\n<ng-content select=\"eui-header-search\" />\n","import { Component, HostBinding, ChangeDetectionStrategy, ViewEncapsulation, OnInit, ElementRef, inject } from '@angular/core';\nimport { EuiAppShellService } from '@eui/core';\n\n/**\n * @description\n * Custom application name component for use within eui-header-app, allowing HTML content projection for application title.\n * Automatically extracts projected text content and synchronizes it with EuiAppShellService state for global access.\n * Provides an alternative to the appName input property when rich HTML formatting or custom elements are needed.\n * Content is projected via ng-content allowing flexible name composition with links, icons, or formatted text.\n * \n * @usageNotes\n * ```html\n * <!-- Application name in header -->\n * <eui-app>\n *   <eui-app-header>\n *     <eui-header>\n *       <eui-header-app>\n *         <eui-header-app-name><strong>My</strong>Workplace</eui-header-app-name>\n *         <eui-header-app-subtitle>Dashboard</eui-header-app-subtitle>\n *       </eui-header-app>\n *     </eui-header>\n *   </eui-app-header>\n * </eui-app>\n * ```\n *\n * ### Accessibility\n * - Text content is readable by screen readers\n * - Provides application identification context\n * - HTML formatting preserved for visual emphasis\n * - Text content extracted for global state access\n *\n * ### Notes\n * - Must be used within eui-header-app for proper layout\n * - Automatically syncs text content with EuiAppShellService\n * - Alternative to appName input property on eui-header-app\n * - Allows rich HTML formatting (bold, links, icons)\n * - Content is projected via ng-content for flexibility\n * - Text content extracted and stored in application state\n * - Typically paired with eui-header-app-subtitle\n */\n@Component({\n    selector: 'eui-header-app-name',\n    template: '<ng-content />',\n    changeDetection: ChangeDetectionStrategy.Default,\n    encapsulation: ViewEncapsulation.None,\n})\nexport class EuiHeaderAppNameComponent implements OnInit {\n    @HostBinding('class') string = 'eui-header-app-name';\n    protected asService = inject(EuiAppShellService);\n    private elRef = inject(ElementRef);\n\n    ngOnInit(): void {\n        this.asService?.setState({\n            ...this.asService.state,\n            appName: this.elRef.nativeElement.textContent,\n        });\n    }\n}\n","import { Component, HostBinding, ViewEncapsulation, OnInit, ElementRef, inject } from '@angular/core';\nimport { EuiAppShellService } from '@eui/core';\n\n/**\n * @description\n * Custom subtitle component for use within eui-header-app, allowing HTML content projection for application subtitle.\n * Automatically extracts projected content and synchronizes it with EuiAppShellService state for global access.\n * Provides an alternative to the appSubTitle input property when rich HTML formatting or custom elements are needed.\n * Content is projected via ng-content allowing flexible subtitle composition with links, icons, or formatted text.\n * \n * @usageNotes\n * ```html\n * <!-- Application subtitle in header -->\n * <eui-app>\n *   <eui-app-header>\n *     <eui-header>\n *       <eui-header-app>\n *         <eui-header-app-name><strong>My</strong>Workplace</eui-header-app-name>\n *         <eui-header-app-subtitle>Dashboard</eui-header-app-subtitle>\n *       </eui-header-app>\n *     </eui-header>\n *   </eui-app-header>\n * </eui-app>\n * ```\n *\n * ### Accessibility\n * - Text content is readable by screen readers\n * - Provides contextual information about current view\n * - HTML formatting preserved for visual emphasis\n * - Content extracted for global state access\n *\n * ### Notes\n * - Must be used within eui-header-app for proper layout\n * - Automatically syncs HTML content with EuiAppShellService\n * - Alternative to appSubTitle input property on eui-header-app\n * - Allows rich HTML formatting (links, icons, emphasis)\n * - Content is projected via ng-content for flexibility\n * - HTML content extracted and stored in application state\n * - Typically paired with eui-header-app-name\n * - Displays below application name in header\n */\n@Component({\n    selector: 'eui-header-app-subtitle',\n    template: '<ng-content />',\n    encapsulation: ViewEncapsulation.None,\n})\nexport class EuiHeaderAppSubtitleComponent implements OnInit {\n    @HostBinding('class') string = 'eui-header-app-subtitle';\n    protected asService = inject(EuiAppShellService);\n    private elRef = inject(ElementRef);\n\n    ngOnInit(): void {\n        this.asService?.setState({\n            ...this.asService.state,\n            appSubTitle: this.elRef.nativeElement.innerHTML,\n        });\n    }\n}\n","import { Component, ChangeDetectionStrategy, HostBinding, ViewEncapsulation, Input, OnInit, inject } from '@angular/core';\nimport { EuiConfig } from '@eui/core';\nimport { EUI_CONFIG_TOKEN } from '@eui/core';\n\n/**\n * @description\n * Logo component for use within eui-header-app, displaying a small icon or logo next to the application name.\n * Provides visual branding alongside the application title with automatic asset path resolution.\n * Integrates with EuiConfig to resolve asset base URL, supporting custom asset locations.\n * Typically used for application-specific icons or small logos that complement the main application name.\n */\n@Component({\n    selector: 'eui-header-app-name-logo',\n    template: '<img class=\"title-logo-svg\" [src]=\"svgUrl\" alt=\"Application title logo\" />',\n    changeDetection: ChangeDetectionStrategy.Default,\n    encapsulation: ViewEncapsulation.None,\n})\nexport class EuiHeaderAppNameLogoComponent implements OnInit {\n    @HostBinding('class') cssClass = 'eui-header-app-name-logo';\n\n    /**\n     * URL or route path for the home page navigation when logo is clicked.\n     * Currently not implemented in template but reserved for future clickable logo functionality.\n     * @default '..'\n     */\n    @Input() homeUrl = '..';\n\n    /**\n     * Filename of the logo image located in the assets directory.\n     * Combined with assetsBaseUrl to construct the full image path.\n     * Should include file extension (e.g., 'my-app-logo.svg').\n     * Required for logo display.\n     */\n    @Input() logoFilename: string;\n\n    private assetsBaseUrl: string;\n    private config = inject<EuiConfig>(EUI_CONFIG_TOKEN, { optional: true })!;\n\n    ngOnInit(): void {\n        this.assetsBaseUrl = this.config?.appConfig?.global?.eui?.assetsBaseUrl || 'assets';\n    }\n\n    get svgUrl(): string {\n        return `${this.assetsBaseUrl}/${this.logoFilename}`;\n    }\n}\n","import {\n    Component,\n    HostBinding,\n    ChangeDetectionStrategy,\n    ViewEncapsulation,\n    OnInit,\n    Input,\n    OnChanges,\n    ContentChild,\n    forwardRef,\n    SimpleChanges,\n    OnDestroy,\n    inject,\n} from '@angular/core';\nimport { EuiAppShellService } from '@eui/core';\nimport { Subscription } from 'rxjs';\nimport { EuiHeaderAppNameComponent } from './header-app-name.component';\nimport { EuiHeaderAppSubtitleComponent } from './header-app-subtitle.component';\nimport { EuiHeaderAppNameLogoComponent } from './header-app-name-logo.component';\n\n/**\n * @description\n * Application name and subtitle component for header placement, displaying the application title and descriptive text.\n * Provides centralized management of application identity with synchronization to EuiAppShellService for global access.\n * Supports full application name, shortened name for responsive layouts, and optional subtitle for context.\n * Allows custom content projection via child components (EuiHeaderAppNameComponent, EuiHeaderAppSubtitleComponent, EuiHeaderAppNameLogoComponent).\n * Automatically updates application shell state when input values change, enabling reactive UI updates across the application.\n * \n * @usageNotes\n * ```html\n * <!-- Using input properties -->\n * <eui-app>\n *   <eui-app-header>\n *     <eui-header>\n *       <eui-header-app\n *         appName=\"MyWorkplace\"\n *         appShortName=\"MWP\"\n *         appSubTitle=\"Dashboard\">\n *       </eui-header-app>\n *     </eui-header>\n *   </eui-app-header>\n * </eui-app>\n *\n * <!-- Using content projection -->\n * <eui-app>\n *   <eui-app-header>\n *     <eui-header>\n *       <eui-header-app>\n *         <eui-header-app-name><strong>My</strong>Workplace</eui-header-app-name>\n *         <eui-header-app-subtitle>Dashboard</eui-header-app-subtitle>\n *       </eui-header-app>\n *     </eui-header>\n *   </eui-app-header>\n * </eui-app>\n * ```\n *\n * ### Accessibility\n * - Application name provides primary identification context\n * - Subtitle offers additional contextual information\n * - Text content is readable by screen readers\n * - Content projection allows semantic HTML structure\n *\n * ### Notes\n * - Must be used within eui-header for proper layout\n * - Two usage modes: input properties or content projection\n * - appName is the full application name (required)\n * - appShortName displays in responsive/compact layouts (defaults to appName)\n * - appSubTitle provides contextual information below name\n * - Content projection via eui-header-app-name and eui-header-app-subtitle\n * - Automatically syncs with EuiAppShellService state\n * - State changes propagate to all subscribed components\n * - Positioned in header between logo/environment and user profile\n * - Responsive behavior switches between full and short names\n */\n@Component({\n    selector: 'eui-header-app',\n    templateUrl: './header-app.component.html',\n    styleUrl: './header-app.component.scss',\n    changeDetection: ChangeDetectionStrategy.Default,\n    encapsulation: ViewEncapsulation.None,\n})\nexport class EuiHeaderAppComponent implements OnInit, OnChanges, OnDestroy {\n    @HostBinding('class') cssClass = 'eui-header-app';\n\n    /**\n     * Full application name displayed in the header.\n     * Used as the primary application identifier and fallback for appShortName when not provided.\n     * Synchronized with EuiAppShellService state for global access.\n     * @default empty string\n     */\n    @Input() appName = '';\n\n    /**\n     * Shortened version of the application name for responsive or compact layouts.\n     * When empty, automatically falls back to appName value.\n     * Useful for displaying abbreviated names in mobile or collapsed header states.\n     * @default empty string\n     */\n    @Input() appShortName = '';\n\n    /**\n     * Subtitle or descriptive text displayed below the application name.\n     * Provides additional context about the application, current section, or user role.\n     * Synchronized with EuiAppShellService state for global access.\n     * @default empty string\n     */\n    @Input() appSubTitle = '';\n\n    @ContentChild(forwardRef(() => EuiHeaderAppNameComponent))\n    customAppName: EuiHeaderAppNameComponent;\n    @ContentChild(forwardRef(() => EuiHeaderAppSubtitleComponent))\n    customAppSubtitle: EuiHeaderAppSubtitleComponent;\n    @ContentChild(forwardRef(() => EuiHeaderAppNameLogoComponent))\n    customAppNameLogo: EuiHeaderAppNameLogoComponent;\n\n    protected asService = inject(EuiAppShellService);\n    private subscriptions: Subscription[] = [];\n\n    ngOnInit(): void {\n        if (this.asService) {\n            this.subscriptions.push(this.asService.getState('appName').subscribe((s: string) => (this.appName = s)));\n            this.subscriptions.push(this.asService.getState('appShortName').subscribe((s: string) => (this.appShortName = s)));\n            this.subscriptions.push(this.asService.getState('appSubTitle').subscribe((s: string) => (this.appSubTitle = s)));\n        }\n    }\n\n    ngOnDestroy(): void {\n        this.subscriptions.forEach((s) => s.unsubscribe());\n    }\n\n    ngOnChanges(changes: SimpleChanges): void {\n        if (changes.appName) {\n            this.asService?.setState({\n                ...this.asService.state,\n                appName: changes.appName.currentValue,\n            });\n        }\n        if (changes.appShortName) {\n            let shortName = changes.appShortName.currentValue;\n            shortName = shortName === '' ? this.appName : shortName;\n            this.asService?.setState({\n                ...this.asService.state,\n                appShortName: shortName,\n            });\n        }\n        if (changes.appSubTitle) {\n            this.asService?.setState({\n                ...this.asService.state,\n                appSubTitle: changes.appSubTitle.currentValue,\n            });\n        }\n    }\n}\n\n","@if (customAppName) {\n    <div class=\"eui-header-app__title full\">\n        <ng-content select=\"eui-header-app-name\"></ng-content>\n    </div>\n} @else {\n    @if (appName) {\n        <div class=\"eui-header-app__title full\">\n            {{ appName }}\n        </div>\n    }\n}\n\n@if (customAppSubtitle) {\n    <div class=\"eui-header-app__sub-title\">\n        <ng-content select=\"eui-header-app-subtitle\"></ng-content>\n    </div>\n} @else {\n    @if (appSubTitle) {\n        <div class=\"eui-header-app__sub-title\">{{ appSubTitle }}</div>\n    }\n}\n\n<div class=\"eui-header-app__title short\">\n    {{ appShortName }}\n</div>\n\n@if (customAppNameLogo) {\n    <div class=\"eui-header-app-__title-logo\">\n        <ng-content select=\"eui-header-app-name-logo\"></ng-content>\n    </div>\n}\n","import { Component, ChangeDetectionStrategy, HostBinding, ViewEncapsulation, OnInit, ElementRef, OnDestroy, inject } from '@angular/core';\nimport { EuiAppShellService } from '@eui/core';\n\n/**\n * @description\n * Environment indicator component for header placement, displaying the current application environment (dev, test, production, etc.).\n * Provides visual distinction between different deployment environments to prevent user confusion and accidental actions.\n * Automatically registers with EuiAppShellService to share environment information across the application.\n * Content is projected via ng-content allowing custom environment labels and styling.\n * Typically displays text like \"Development\", \"Testing\", \"Staging\" with distinct background colors.\n * \n * @usageNotes\n * ```html\n * <eui-app>\n *   <eui-app-header>\n *     <eui-header>\n *       <eui-header-logo></eui-header-logo>\n *       <eui-header-environment>DEV</eui-header-environment>\n *       <eui-header-app appName=\"MyWorkplace\"></eui-header-app>\n *     </eui-header>\n *   </eui-app-header>\n * </eui-app>\n * ```\n *\n * ### Accessibility\n * - Environment text is readable by screen readers\n * - Provides critical context about deployment environment\n * - Visual distinction helps prevent accidental actions in production\n * - Text content should be concise and clear\n *\n * ### Notes\n * - Must be used within eui-header for proper layout\n * - Positioned between logo and application name\n * - Content projected via ng-content (text or HTML)\n * - Automatically syncs with EuiAppShellService state\n * - Environment value extracted from innerHTML on init\n * - Common values: \"DEV\", \"TEST\", \"ACC\", \"PROD\"\n * - Styling typically uses distinct background colors per environment\n * - Component registers/unregisters with app shell on init/destroy\n */\n@Component({\n    selector: 'eui-header-environment',\n    template: '<ng-content />',\n    styleUrl: './header-environment.component.scss',\n    changeDetection: ChangeDetectionStrategy.Default,\n    encapsulation: ViewEncapsulation.None,\n})\nexport class EuiHeaderEnvironmentComponent implements OnInit, OnDestroy {\n    @HostBinding('class') cssClass = 'eui-header-environment';\n    protected asService = inject(EuiAppShellService);\n    private elRef = inject(ElementRef);\n\n    ngOnInit(): void {\n        this.asService?.setState({\n            ...this.asService.state,\n            hasHeaderEnvironment: true,\n            environmentValue: this.elRef.nativeElement.innerHTML,\n        });\n    }\n\n    ngOnDestroy(): void {\n        this.asService?.setState({\n            ...this.asService.state,\n            hasHeaderEnvironment: false,\n        });\n    }\n}\n","import { AsyncPipe } from '@angular/common';\nimport {\n    Component,\n    HostBinding,\n    ViewEncapsulation,\n    Input,\n    OnInit,\n    OnDestroy,\n    inject,\n} from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { TranslateModule } from '@ngx-translate/core';\n\nimport { EuiAppShellService, EuiThemeService } from '@eui/core';\nimport { EuiConfig } from '@eui/core';\nimport { EUI_CONFIG_TOKEN } from '@eui/core';\n\n/**\n * @description\n * Logo component for header placement, displaying organization branding with automatic theme and language adaptation.\n * Provides clickable logo linking to home page with support for custom or default European Commission logos.\n * Automatically switches between light and dark logo variants based on active theme.\n * Integrates with EuiAppShellService to register logo presence and with translation service for language-specific logos.\n * Supports custom logo URLs or defaults to ECL (Europa Component Library) logo assets.\n * \n * @usageNotes\n * ```html\n * <!-- Default EC logo -->\n * <eui-app>\n *   <eui-app-header>\n *     <eui-header>\n *       <eui-header-logo></eui-header-logo>\n *       <eui-header-environment>DEV</eui-header-environment>\n *       <eui-header-app appName=\"MyWorkplace\"></eui-header-app>\n *     </eui-header>\n *   </eui-app-header>\n * </eui-app>\n *\n * <!-- Custom logo -->\n * <eui-header-logo\n *   logoUrl=\"assets/custom-logo.svg\"\n *   homeUrl=\"/home\"\n *   logoHeight=\"48px\"\n *   logoWidth=\"200px\">\n * </eui-header-logo>\n * ```\n *\n * ### Accessibility\n * - Logo is clickable and navigates to home page\n * - Provides visual branding and orientation\n * - Alt text provided via translation service\n * - Keyboard accessible via RouterLink\n * - Focus visible for keyboard navigation\n *\n * ### Notes\n * - Must be used within eui-header for proper layout\n * - Positioned at the start of the header (leftmost)\n * - Automatically adapts to active theme (light/dark)\n * - Language-specific logos loaded based on active language\n * - Default logos from ECL assets (logo-ec--en, logo-ec--fr, etc.)\n * - Custom logoUrl overrides default ECL logos for both themes\n * - homeUrl defaults to '..' for parent route navigation\n * - Logo dimensions customizable via logoHeight and logoWidth\n * - Registers/unregisters with EuiAppShellService on init/destroy\n * - SVG format recommended for scalability\n */\n@Component({\n    selector: 'eui-header-logo',\n    templateUrl: './header-logo.component.html',\n    styleUrl: './header-logo.component.scss',\n    encapsulation: ViewEncapsulation.None,\n    imports: [\n        RouterLink,\n        AsyncPipe,\n        TranslateModule,\n    ],\n})\nexport class EuiHeaderLogoComponent implements OnInit, OnDestroy {\n    @HostBinding('class') cssClass = 'eui-header-logo';\n\n    /**\n     * URL or route path for the home page navigation when logo is clicked.\n     * Supports both relative and absolute paths for Angular routing.\n     * @default '..'\n     */\n    @Input() homeUrl = '..';\n\n    /**\n     * Custom URL path to a logo image file.\n     * When provided, overrides the default ECL logo and uses the specified image for both light and dark themes.\n     * Optional - defaults to language-specific ECL logos when not provided.\n     */\n    @Input() logoUrl: string;\n\n    /**\n     * CSS height value for the logo image.\n     * Accepts any valid CSS height unit (px, rem, %, etc.).\n     * @default '64px'\n     */\n    @Input() logoHeight = '64px'\n\n    /**\n     * CSS width value for the logo image.\n     * Accepts any valid CSS width unit (px, rem, %, etc.).\n     * @default '260px'\n     */\n    @Input() logoWidth = '260px';    \n\n    protected asService = inject(EuiAppShellService);\n    protected euiThemeService = inject(EuiThemeService);\n    protected logoStyle;\n    private logo: string;\n    private assetsBaseUrl: string;\n    private config = inject<EuiConfig>(EUI_CONFIG_TOKEN, { optional: true })!;\n\n    ngOnInit(): void {\n        this.asService?.setState({\n            ...this.asService.state,\n            hasHeaderLogo: true,\n        });\n        this.asService?.getState('activeLanguage').subscribe((activeLanguage) => {\n            this.logo = 'logo-ec--' + activeLanguage;\n        });\n        this.assetsBaseUrl = this.config?.appConfig?.global?.eui?.assetsBaseUrl || 'assets';\n        this.logoStyle = `width:${this.logoWidth}; height:${this.logoHeight};`;\n    }\n\n    get svgUrl(): string {\n        if (this.logoUrl) {\n            return this.logoUrl;\n        } else {\n            return `${this.assetsBaseUrl}/ecl/ec/logo/positive/${this.logo}.svg`;\n        }\n    }\n\n    get svgUrlDark(): string {\n        if (this.logoUrl) {\n            return this.logoUrl;\n        } else {\n            return `${this.assetsBaseUrl}/ecl/ec/logo/negative/${this.logo}.svg`;\n        }   \n    }\n\n    ngOnDestroy(): void {\n        this.asService?.setState({\n            ...this.asService.state,\n            hasHeaderLogo: false,\n        });\n    }\n}\n","@if ((euiThemeService.state$ | async).theme.isDark) {\n    <img class=\"eui-header-logo__image\" [src]=\"svgUrlDark\" [routerLink]=\"homeUrl\" [style]=\"logoStyle\" alt=\"{{ 'eui.header.LOGO' | translate }}\" />\n\n} @else {\n    <img class=\"eui-header-logo__image\" [src]=\"svgUrl\" [routerLink]=\"homeUrl\" [style]=\"logoStyle\" alt=\"{{ 'eui.header.LOGO' | translate }}\" />\n}\n","import {\n    Component,\n    ChangeDetectionStrategy,\n    HostBinding,\n    ViewEncapsulation,\n    Input,\n    forwardRef,\n    QueryList,\n    ContentChildren,\n    ViewChild,\n    booleanAttribute,\n    AfterContentInit,\n    AfterViewInit,\n} from '@angular/core';\nimport { EuiUserProfileMenuComponent, EuiUserProfileComponent, EUI_USER_PROFILE } from '@eui/components/eui-user-profile';\n\n/**\n * @description\n * User profile component designed for header placement, displaying user information with optional dropdown menu.\n * Provides visual representation of the logged-in user with avatar, name, welcome message, and impersonation indicators.\n * Integrates with EuiUserProfileComponent and EuiUserProfileMenuComponent for dropdown menu functionality.\n * Supports customization of avatar display, user information visibility, and welcome message text.\n * \n * @usageNotes\n * ```html\n * <eui-app>\n *   <eui-app-header>\n *     <eui-header>\n *       <eui-header-logo></eui-header-logo>\n *       <eui-header-app appName=\"MyWorkplace\"></eui-header-app>\n *       <eui-header-user-profile\n *         avatarUrl=\"assets/avatar.jpg\"\n *         welcomeLabel=\"Welcome\"\n *         [isShowUserInfos]=\"true\">\n *         <eui-user-profile-menu>\n *           <eui-user-profile-menu-item (click)=\"onProfile()\">\n *             My Profile\n *           </eui-user-profile-menu-item>\n *           <eui-user-profile-menu-item (click)=\"onSignOut()\">\n *             Sign Out\n *           </eui-user-profile-menu-item>\n *         </eui-user-profile-menu>\n *       </eui-header-user-profile>\n *     </eui-header>\n *   </eui-app-header>\n * </eui-app>\n * ```\n *\n * ### Accessibility\n * - Avatar provides visual user identification\n * - Dropdown menu keyboard accessible when hasTabNavigation enabled\n * - Welcome message readable by screen readers\n * - Menu items must be keyboard navigable\n * - Focus management for dropdown interactions\n * - Impersonation status clearly indicated\n *\n * ### Notes\n * - Must be used within eui-header for proper layout\n * - Positioned at the end of the header (rightmost)\n * - Wraps EuiUserProfileComponent with header-specific styling\n * - Menu content via eui-user-profile-menu child component\n * - isShowUserInfos controls text visibility (default: true)\n * - hasWelcomeLabel controls welcome message (default: true)\n * - isShowAvatarInitials shows user initials when no avatar (default: false)\n * - hasTabNavigation enables keyboard focus (default: false)\n * - avatarUrl for custom avatar image\n * - subInfos for additional user details (role, department)\n * - impersonateLabel for impersonation scenarios\n * - closeUserProfileDropdown() method to programmatically close menu\n * - Automatically detects menu content via ContentChildren\n */\n@Component({\n    selector: 'eui-header-user-profile',\n    templateUrl: './header-user-profile.component.html',\n    styleUrl: './header-user-profile.component.scss',\n    changeDetection: ChangeDetectionStrategy.Default,\n    encapsulation: ViewEncapsulation.None,\n    imports: [\n        ...EUI_USER_PROFILE,\n    ],\n})\nexport class EuiHeaderUserProfileComponent implements AfterContentInit {\n    @HostBinding('class') cssClass = 'eui-header-user-profile';\n\n    @ContentChildren(forwardRef(() => EuiUserProfileMenuComponent), { descendants: true })\n    hasMenuContent: QueryList<EuiUserProfileMenuComponent>;\n\n    @ViewChild('userProfile') userProfile: EuiUserProfileComponent;\n\n    /**\n     * Controls visibility of user information text (name, email, etc.).\n     * When false, hides textual user details and shows only the avatar.\n     * @default true\n     */\n    @Input({ transform: booleanAttribute }) isShowUserInfos = true;\n\n    /**\n     * Controls visibility of the welcome label text.\n     * When false, hides the welcome message prefix and shows only the username.\n     * @default true\n     */\n    @Input({ transform: booleanAttribute }) hasWelcomeLabel = true;\n\n    /**\n     * Displays user initials in the avatar when no avatar image is provided.\n     * When true, shows first letters of user's name as avatar placeholder.\n     * @default false\n     */\n    @Input({ transform: booleanAttribute }) isShowAvatarInitials = false;\n\n    /**\n     * Enables keyboard tab navigation to the user profile component.\n     * When true, makes the profile element focusable and accessible via keyboard.\n     * @default false\n     */\n    @Input({ transform: booleanAttribute }) hasTabNavigation = false;\n\n    /**\n     * Text label displayed before the username in the welcome message.\n     * Typically used for greeting text like \"Welcome\" or \"Hello\".\n     * @default 'Welcome'\n     */\n    @Input() welcomeLabel = 'Welcome';\n\n    /**\n     * Text label displayed when user is impersonating another user.\n     * Shows between the actual user and impersonated user names, typically \"acting as\".\n     * @default 'acting as'\n     */\n    @Input() impersonateLabel = 'acting as';\n\n    /**\n     * URL path to the user's avatar image.\n     * When provided, displays the image instead of initials or default avatar.\n     * Optional.\n     */\n    @Input() avatarUrl: string;\n\n    /**\n     * Additional user information text displayed below the main user name.\n     * Typically used for role, department, or secondary identification.\n     * Optional.\n     */\n    @Input() subInfos: string;\n\n    protected hasMenu = false;\n\n    /**\n     * Programmatically closes the user profile dropdown menu if currently open.\n     * Must be called after ngAfterViewInit lifecycle hook to ensure userProfile component is initialized.\n     * Useful for closing the menu in response to external events or navigation changes.\n     */\n    public closeUserProfileDropdown(): void {\n        this.userProfile.closeDropdown();\n    }\n\n    ngAfterContentInit(): void {\n        this.hasMenu = this.hasMenuContent.length !== 0;\n    }\n\n    // ngAfterViewInit(): void {\n    //     // Pass the reference to the userProfile component to each menu component\n    //     if (this.userProfile && this.hasMenuContent) {\n    //         this.hasMenuContent.forEach(menu => {\n    //             // Ensure the menu has a reference to the userProfile component\n    //             menu.parent = this.userProfile;\n    //             /**\n    //              * Subscribe to the parent component to handle any necessary logic While the ngAfterViewInit of\n    //              * EuiUserProfileComponent has been called before the parent injection did not exist.\n    //              *\n    //              * Thus, we need to manually subscribe to the parent component after the view has been initialized,\n    //              * and we manually set the parent property before subscribing.\n    //              */\n    //             menu.subscribeToParent();\n    //         });\n    //     }\n    // }\n}\n","<eui-user-profile\n    [hasWelcomeLabel]=\"hasWelcomeLabel\"\n    [welcomeLabel]=\"welcomeLabel\"\n    [impersonateLabel]=\"impersonateLabel\"\n    [avatarUrl]=\"avatarUrl\"\n    [isShowUserInfos]=\"isShowUserInfos\"\n    [isShowAvatarInitials]=\"isShowAvatarInitials\"\n    [hasTabNavigation]=\"hasTabNavigation\"\n    [subInfos]=\"subInfos\"\n    [hasMenu]=\"hasMenu\"\n    isHeaderUserProfile\n    #userProfile>\n    <ng-content select=\"eui-user-profile-menu\" />\n</eui-user-profile>\n","import { coerceBooleanProperty, BooleanInput } from '@angular/cdk/coercion';\nimport {\n    Component,\n    ChangeDetectionStrategy,\n    HostBinding,\n    ViewEncapsulation,\n    Input,\n    EventEmitter,\n    Output,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { EUI_BUTTON } from '@eui/components/eui-button';\nimport { EUI_ICON } from '@eui/components/eui-icon';\nimport { EUI_INPUT_BUTTON } from '@eui/components/eui-input-button';\nimport { EUI_INPUT_TEXT } from '@eui/components/eui-input-text';\n\n/**\n * @description\n * Search input component designed for header placement, providing a compact search interface with submit button.\n * Combines text input with search icon button for initiating search operations from the application header.\n * Emits search events with the current input value when user clicks the search button or submits the form.\n * Integrates with EUI input and button components for consistent styling and behavior.\n * \n * @usageNotes\n * ```html\n * <eui-app>\n *   <eui-app-header>\n *     <eui-header>\n *       <eui-header-logo></eui-header-logo>\n *       <eui-header-search\n *         placeholder=\"Search documents...\"\n *         (searchClick)=\"onSearch($event)\">\n *       </eui-header-search>\n *     </eui-header>\n *   </eui-app-header>\n * </eui-app>\n * ```\n * ```typescript\n * onSearch(searchTerm: string): void {\n *   console.log('Searching for:', searchTerm);\n * }\n * ```\n *\n * ### Accessibility\n * - Search input is keyboard accessible\n * - Placeholder provides context for screen readers\n * - Submit button accessible via keyboard (Enter key)\n * - Focus management follows standard input behavior\n * - Search icon provides visual affordance\n *\n * ### Notes\n * - Must be used within eui-header for proper layout\n * - Positioned in header content area\n * - Combines input field with search button\n * - searchClick event emits current input value\n * - Triggered by button click or form submission\n * - placeholder defaults to 'Search'\n * - Input value managed internally via FormsModule\n * - Integrates EUI input-text and button components\n * - Compact design suitable for header placement\n */\n@Component({\n    selector: 'eui-header-search',\n    templateUrl: './header-search.component.html',\n    styleUrl: './header-search.component.scss',\n    changeDetection: ChangeDetectionStrategy.Default,\n    encapsulation: ViewEncapsulation.None,\n    imports: [\n        FormsModule,\n        ...EUI_ICON,\n        ...EUI_BUTTON,\n        ...EUI_INPUT_TEXT,\n        ...EUI_INPUT_BUTTON,\n    ],\n})\nexport class EuiHeaderSearchComponent {\n    @HostBinding('class') cssClass = 'eui-header-search';\n\n    /**\n     * Placeholder text displayed in the search input field when empty.\n     * Provides hint text to guide users on what they can search for.\n     * @default 'Search'\n     */\n    @Input() placeholder = 'Search';\n\n    /**\n     * Emitted when the user initiates a search by clicking the search button or submitting the form.\n     * Payload: string - the current value of the search input field\n     * Triggered on search button click or form submission.\n     */\n    @Output() searchClick: EventEmitter<string> = new EventEmitter();\n\n    protected inputValue: string;\n\n    onSearch(): void {\n        this.searchClick.emit(this.inputValue);\n    }\n}\n","<eui-input-button>\n    <input euiInputText\n        [euiClearable]=\"true\"\n        (input)=\"onSearch()\"\n        placeholder=\"Search...\"\n        aria-label=\"Search\"/>\n    <button euiButton aria-label=\"Search Icon\">\n        <eui-icon-svg icon=\"eui-search\"/>\n    </button>\n</eui-input-button>\n","import { DatePipe, NgClass } from '@angular/common';\nimport { booleanAttribute, Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';\nimport { EUI_ICON } from '@eui/components/eui-icon';\nimport { EuiTruncatePipe } from '@eui/components/pipes';\nimport { UxLinkLegacy } from '@eui/core';\nimport { consumeEvent } from '@eui/core';\nimport { TranslateModule } from '@ngx-translate/core';\n\n/**\n * Metadata interface for notification items containing read status, URLs, importance flags, and timestamp.\n * Used to extend UxLinkLegacy with notification-specific properties for state management and display logic.\n */\nexport interface NotificationMetadata {\n    read?: boolean;\n    urlExternal?: string;\n    urlExternalTarget?: string;\n    important?: boolean;\n    new?: boolean;\n    url?: string;\n    date?: Date | string | number;\n}\n\n/**\n * @description\n * Individual notification item component displaying a single notification with read/unread status and actions.\n * Renders notification content with icon, label, date, and optional mark as read button.\n * Supports internal and external links with visual indicators for unread and important notifications.\n * Emits events for item clicks and mark as read actions to parent notification panel.\n * \n * @usageNotes\n * ```html\n * <!-- Used internally by eui-notifications -->\n * <eui-notification-item\n *   [item]=\"notificationItem\"\n *   [dateFormat]=\"'dd/MM/yyyy'\"\n *   [isShowMarkAsRead]=\"true\"\n *   (itemClick)=\"onItemClick($event)\"\n *   (itemMarkAsRead)=\"onMarkAsRead($event)\">\n * </eui-notification-item>\n * ```\n * ```typescript\n * notificationItem: UxLinkLegacy<NotificationMetadata> = {\n *   id: '1',\n *   label: 'New message received',\n *   metadata: {\n *     read: false,\n *     date: new Date(),\n *     important: true\n *   }\n * };\n * ```\n *\n * ### Accessibility\n * - Entire item is clickable and keyboard accessible\n * - Visual indicators for read/unread status\n * - Mark as read button keyboard accessible\n * - Icon color changes based on read status\n * - Date displayed in accessible format\n * - Supports screen reader announcements\n *\n * ### Notes\n * - Typically used internally by eui-notifications component\n * - Not intended for standalone usage\n * - Item data uses UxLinkLegacy<NotificationMetadata> interface\n * - Metadata properties: read, date, important, new, url, urlExternal\n * - Visual distinction for unread items (darker icon)\n * - dateFormat for timestamp display (default: 'dd/MM/yyyy')\n * - Mark as read button optional via isShowMarkAsRead\n * - Clicking mark as read automatically sets metadata.read to true\n * - itemClick emitted on item click\n * - itemMarkAsRead emitted on mark as read action\n * - Icon color: 'secondary' for unread, 'secondary-light' for read\n * - Supports internal and external links via metadata.url/urlExternal\n * - Label truncation with tooltip for long text\n */\n@Component({\n    selector: 'eui-notification-item',\n    templateUrl: './eui-notification-item.component.html',\n    imports: [\n        NgClass,\n        DatePipe,\n        EuiTruncatePipe,\n        TranslateModule,\n        ...EUI_ICON,\n    ],\n})\nexport class EuiNotificationItemComponent {\n    @HostBinding('class') string = 'eui-notification-item';\n    /**\n     * Emitted when the notification item is clicked.\n     * Payload: UxLinkLegacy<NotificationMetadata> - the clicked notification item with metadata\n     * Triggered when user clicks anywhere on the notification item.\n     */\n    @Output() itemClick: EventEmitter<UxLinkLegacy<NotificationMetadata>> = new EventEmitter<UxLinkLegacy<NotificationMetadata>>();\n\n    /**\n     * Emitted when the mark as read button is clicked.\n     * Payload: UxLinkLegacy<NotificationMetadata> - the notification item marked as read\n     * Triggered when user clicks the mark as read action button. Automatically sets item.metadata.read to true.\n     */\n    @Output() itemMarkAsRead: EventEmitter<UxLinkLegacy<NotificationMetadata>> = new EventEmitter<UxLinkLegacy<NotificationMetadata>>();\n\n    /**\n     * Custom label text for the mark as read button.\n     * When null, uses default translation key.\n     * Optional.\n     */\n    @Input() markAsReadLabel: string = null;\n\n    /**\n     * Notification item data containing label, metadata, and link information.\n     * Must conform to UxLinkLegacy<NotificationMetadata> interface with id, label, and metadata properties.\n     * Required for notification display.\n     */\n    @Input() item: UxLinkLegacy<NotificationMetadata>;\n\n    /**\n     * Date format string for displaying the notification timestamp.\n     * Accepts any valid Angular DatePipe format pattern.\n     * @default 'dd/MM/yyyy'\n     */\n    @Input() dateFormat = 'dd/MM/yyyy';\n\n    /**\n     * Shows the mark as read action button on the notification item.\n     * When false, hides the mark as read functionality.\n     * @default true\n     */\n    @Input({ transform: booleanAttribute })isShowMarkAsRead = true;\n\n    tooltipSize = 'auto';\n\n    onItemClick(): void {\n        this.itemClick.emit(this.item);\n    }\n\n    onItemMarkAsRead(event: Event): void {\n        if (this.item.metadata) {\n            this.item.metadata.read = true;\n        }\n        this.itemMarkAsRead.emit(this.item);\n        consumeEvent(event);\n    }\n\n    get iconColor(): string {\n        return this.item.metadata?.read ? 'secondary-light' : 'secondary';\n    }\n\n}\n","<div\n    class=\"eui-notification-item-content\"\n    (click)=\"onItemClick()\"\n    [ngClass]=\"{ 'eui-u-c-bg-white': item.metadata?.read || !item.metadata }\">\n    <div class=\"eui-notification-item-content-top eui-u-f-s\">\n        @if (item.metadata?.date) {\n            <div class=\"eui-notification-item-content-top__date\">\n                <span class=\"eui-notification-item-content-top__date-icon eui-u-mr-s\">\n                    <eui-icon-svg icon=\"eui-notifications\" size=\"m\" [fillColor]=\"iconColor\"></eui-icon-svg>\n                    @if (item.metadata?.new) {\n                    <span class=\"eui-notification-item-content-top__date-dot eui-u-c-danger-light eui-u-f-s eui-icon eui-icon-circle\"></span>\n                    }\n                </span>\n                <span>{{ item.metadata?.date | date: dateFormat }}</span>\n            </div>\n        }\n        @if (item.metadata?.important) {\n            <div class=\"eui-u-f-m-bold\">\n                <eui-icon-svg icon=\"eui-alert\" fillColor=\"danger\" class=\"eui-u-ml-xs\"></eui-icon-svg>\n            </div>\n        }\n    </div>\n    <span class=\"eui-notification-item-content-middle eui-u-cursor-pointer\">\n        @if (item.metadata?.url) {\n            <a class=\"eui-u-text-link\" href=\"{{ item.metadata.url }}\">\n                <div\n                    class=\"eui-notification-item-content-middle__label\"\n                    [ngClass]=\"{ 'eui-u-f-m-semi-bold': !item.metadata || (item.metadata && !item.metadata.read) }\">\n                    {{ item.label | translate | euiTruncate: 200 }}\n                </div>\n                @if (item.subLabel) {\n                    <div\n                        class=\"eui-notification-item-content-middle__sub-label\"\n                        [innerHTML]=\"item.subLabel | translate | euiTruncate: 200\">\n                    </div>\n                }\n            </a>\n        }\n\n        @if (item.metadata?.urlExternal) {\n            <a class=\"eui-u-text-link-external\"\n                href=\"{{ item.metadata.urlExternal }}\"\n                [target]=\"!item.metadata.urlExternalTarget ? '_blank' : item.metadata.urlExternalTarget\">\n                <div\n                    class=\"eui-notification-item-content-middle__label\"\n                    [ngClass]=\"{ 'eui-u-f-m-semi-bold': !item.metadata || (item.metadata && !item.metadata.read) }\">\n                    {{ item.label | translate | euiTruncate: 200 }}\n                </div>\n                @if (item.subLabel) {\n                    <div\n                        class=\"eui-notification-item-content-middle__sub-label\"\n                        [innerHTML]=\"item.subLabel | translate | euiTruncate: 200\">\n                    </div>\n                }\n            </a>\n        }\n\n        @if (!item.metadata?.url && !item.metadata?.urlExternal) {\n            <div\n                class=\"eui-notification-item-content-middle__label\"\n                [ngClass]=\"{ 'eui-u-f-m-semi-bold': !item.metadata || (item.metadata && !item.metadata.read) }\">\n                {{ item.label | translate | euiTruncate: 200 }}\n            </div>\n            @if (item.subLabel) {\n                <div\n                    class=\"eui-notification-item-content-middle__sub-label\"\n                    [innerHTML]=\"item.subLabel | translate | euiTruncate: 200\">\n                </div>\n            }\n        }\n    </span>\n    <div class=\"eui-notification-item-content-bottom\">\n        @if (isShowMarkAsRead && item.metadata && !item.metadata.read) {\n            <a\n                href=\"javascript:void(0)\"\n                class=\"eui-u-text-link\"\n                (click)=\"onItemMarkAsRead($event)\">\n                {{ markAsReadLabel ? markAsReadLabel : ('eui.NOTIFICATIONMARKASREAD' | translate) }}\n            </a>\n        }\n    </div>\n</div>\n","import {\n    booleanAttribute,\n    ChangeDetectionStrategy,\n    Component,\n    EventEmitter,\n    HostBinding,\n    Input,\n    OnChanges,\n    OnInit,\n    Output,\n    SimpleChanges,\n    ViewEncapsulation,\n} from '@angular/core';\nimport { consumeEvent } from '@eui/core';\nimport { UxLinkLegacy } from '@eui/base';\nimport { EuiNotificationItemComponent, NotificationMetadata } from './eui-notification-item.component';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { EUI_ICON } from '@eui/components/eui-icon';\nimport { EUI_ICON_BUTTON } from '@eui/components/eui-icon-button';\nimport { EUI_BADGE } from '@eui/components/eui-badge';\nimport { EUI_OVERLAY } from '@eui/components/eui-overlay';\nimport { EUI_BUTTON } from '@eui/components/eui-button';\n\n/**\n * @description\n * Notifications panel component that displays a dropdown list of user notifications with badge counter.\n * Provides a comprehensive notification center with filtering, marking as read/unread, and action buttons.\n * Supports customizable labels, date formatting, and unread count display with badge indicator.\n * Integrates with overlay component for dropdown panel behavior and manages notification state.\n * Emits events for all user interactions including item clicks, refresh, settings, and mark as read actions.\n * \n * @usageNotes\n * ```html\n * <eui-app>\n *   <eui-app-toolbar>\n *     <eui-toolbar>\n *       <eui-toolbar-items euiPositionRight>\n *         <eui-toolbar-item-notifications>\n *           <eui-notifications\n *             [count]=\"notificationItems.length\"\n *             [items]=\"notificationItems\"\n *             (itemClick)=\"onItemClick($event)\"\n *             (markAllAsReadClick)=\"onMarkAllAsRead()\"\n *             (refreshClick)=\"onRefresh()\">\n *           </eui-notifications>\n *         </eui-toolbar-item-notifications>\n *       </eui-toolbar-items>\n *     </eui-toolbar>\n *   </eui-app-toolbar>\n * </eui-app>\n * ```\n * ```typescript\n * notificationItems = [\n *   { id: '1', label: 'New message', metadata: { read: false, date: new Date() } },\n *   { id: '2', label: 'Task completed', metadata: { read: true, date: new Date() } }\n * ];\n * ```\n *\n * ### Accessibility\n * - Bell icon button keyboard accessible\n * - Badge displays notification count for screen readers\n * - Dropdown panel keyboard navigable\n * - Each notification item is focusable\n * - ARIA labels for notification count\n * - Mark as read actions keyboard accessible\n *\n * ### Notes\n * - Typically used within eui-toolbar-item-notifications\n * - Positioned in toolbar right section\n * - Badge shows count or unread count\n * - Dropdown panel with overlay behavior\n * - Items array uses UxLinkLegacy<NotificationMetadata> interface\n * - Metadata includes read status and date\n * - Automatic unread count calculation when customUnreadCount is false\n * - All labels customizable or use default translations\n * - dateFormat for timestamp display (default: 'dd/MM/YYYY')\n * - Multiple action buttons: refresh, settings, mark all as read\n * - View all button in footer (optional)\n * - Empty state when no notifications\n * - Panel auto-closes on view all (configurable)\n * - Supports grouping by date (today vs older)\n */\n@Component({\n    selector: 'eui-notifications',\n    templateUrl: './eui-notifications.component.html',\n    styleUrls: ['./styles/_index.scss'],\n    changeDetection: ChangeDetectionStrategy.Default,\n    encapsulation: ViewEncapsulation.None,\n    imports: [\n        TranslateModule,\n        EuiNotificationItemComponent,\n        ...EUI_ICON,\n        ...EUI_ICON_BUTTON,\n        ...EUI_BADGE,\n        ...EUI_OVERLAY,\n        ...EUI_BUTTON,\n    ],\n})\nexport class EuiNotificationsComponent implements OnInit, OnChanges {\n    /**\n     * Emitted when the refresh button is clicked to reload notifications.\n     * Payload: void\n     * Triggered when user clicks the refresh button in the notifications panel header.\n     */\n    @Output() refreshClick: EventEmitter<void> = new EventEmitter<void>();\n\n    /**\n     * Emitted when the notifications bell icon is clicked to toggle the panel.\n     * Payload: void\n     * Triggered when user clicks the main notifications button to open/close the dropdown.\n     */\n    @Output() notificationsClick: EventEmitter<void> = new EventEmitter<void>();\n\n    /**\n     * Emitted when the \"View All\" button is clicked.\n     * Payload: void\n     * Triggered when user clicks the view all notifications action button.\n     */\n    @Output() viewAllClick: EventEmitter<void> = new EventEmitter<void>();\n\n    /**\n     * Emitted when the settings button is clicked.\n     * Payload: MouseEvent - the click event\n     * Triggered when user clicks the settings button in the notifications panel header.\n     */\n    @Output() settingsClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\n\n    /**\n     * Emitted when the \"Mark All as Read\" button is clicked.\n     * Payload: MouseEvent - the click event\n     * Triggered when user clicks the mark all as read button in the panel header.\n     */\n    @Output() markAllAsReadClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\n\n    /**\n     * Emitted when the \"No notifications found\" link is clicked.\n     * Payload: void\n     * Triggered when user clicks the no notifications message (when noNotificationFoundLink is true).\n     */\n    @Output() noNotificationFoundClick: EventEmitter<void> = new EventEmitter<void>();\n\n    /**\n     * Emitted when a notification item is clicked.\n     * Payload: UxLinkLegacy<NotificationMetadata> - the clicked notification item\n     * Triggered when user clicks on any notification item in the list.\n     */\n    @Output() itemClick: EventEmitter<UxLinkLegacy<NotificationMetadata>> = new EventEmitter<UxLinkLegacy<NotificationMetadata>>();\n\n    /**\n     * Emitted when the mark as read button on a notification item is clicked.\n     * Payload: UxLinkLegacy<NotificationMetadata> - the notification item to mark as read\n     * Triggered when user clicks the mark as read action on an individual notification.\n     */\n    @Output() itemMarkAsReadClick: EventEmitter<UxLinkLegacy<NotificationMetadata>> = new EventEmitter<UxLinkLegacy<NotificationMetadata>>();\n\n    isOverlayActive = false;\n    currentDayNotifications = [];\n    oldestNotifications = [];\n    unreadNotifications = [];\n    today: Date = new Date();\n\n    @HostBinding('class') string = 'eui-notifications';\n\n    /**\n     * Total count of notifications displayed in the badge.\n     * When null, badge shows unread count instead. When provided, overrides automatic counting.\n     * Optional.\n     */\n    @Input() count: number = null;\n\n    /**\n     * Array of notification items to display in the panel.\n     * Each item should conform to UxLinkLegacy<NotificationMetadata> interface with id, label, and metadata properties.\n     * @default empty array\n     */\n    @Input() items = [];\n\n    /**\n     * Custom label text for \"unread\" status indicator.\n     * When null, uses default translation key.\n     * Optional.\n     */\n    @Input() unreadLabel: string = null;\n\n    /**\n     * Custom label text for \"total\" count display.\n     * When null, uses default translation key.\n     * Optional.\n     */\n    @Input() totalLabel: string = null;\n\n    /**\n     * Custom label text for \"mark as read\" action.\n     * When null, uses default translation key.\n     * Optional.\n     */\n    @Input() markAsReadLabel: string = null;\n\n    /**\n     * Custom label text for \"mark as unread\" action.\n     * When null, uses default translation key.\n     * Optional.\n     */\n    @Input() markAsUnReadLabel: string = null;\n\n    /**\n     * Custom label text for \"mark all as read\" button.\n     * When null, uses default translation key.\n     * Optional.\n     */\n    @Input() markAllAsReadLabel: string = null;\n\n    /**\n     * Custom label text for settings button.\n     * When null, uses default translation key.\n     * Optional.\n     */\n    @Input() settingsLabel: string = null;\n\n    /**\n     * Custom label text for refresh button.\n     * When null, uses default translation key.\n     * Optional.\n     */\n    @Input() refreshLabel: string = null;\n\n    /**\n     * Custom label text for \"view all notifications\" button.\n     * When null, uses default translation key.\n     * Optional.\n     */\n    @Input() viewAllNotificationsLabel: string = null;\n\n    /**\n     * Custom label text for panel header title.\n     * When null, uses default translation key.\n     * Optional.\n     */\n    @Input() headerTitleLabel: string = null;\n\n    /**\n     * Custom label text for empty state message when no notifications exist.\n     * When null, uses default translation key.\n     * Optional.\n     */\n    @Input() noNotificationFoundLabel: string = null;\n\n    /**\n     * Number of unread notifications to display in the badge.\n     * When null and customUnreadCount is false, automatically calculated from items array.\n     * Optional.\n     */\n    @Input() nbUnreadCount: number = null;\n\n    /**\n     * Date format string for displaying notification timestamps.\n     * Accepts any valid date format pattern.\n     * @default 'dd/MM/yyyy'\n     */\n    @Input() dateFormat = 'dd/MM/yyyy';\n\n    /**\n     * Makes the \"no notifications found\" message clickable as a link.\n     * When true, emits noNotificationFoundClick event on click.\n     * @default false\n     */\n    @Input({ transform: booleanAttribute }) noNotificationFoundLink = false;\n\n    /**\n     * Shows the mark as read action button on individual notification items.\n     * When false, hides the mark as read functionality from notification items.\n     * @default true\n     */\n    @Input({ transform: booleanAttribute }) isShowMarkAsRead = true;\n\n    /**\n     * Shows the \"View All\" action button in the panel footer.\n     * When false, hides the view all notifications button.\n     * @default true\n     */\n    @Input({ transform: booleanAttribute }) isShowViewAllAction = true;\n\n    /**\n     * Automatically closes the notifications panel when \"View All\" is clicked.\n     * When false, panel remains open after clicking view all.\n     * @default true\n     */\n    @Input({ transform: booleanAttribute })isHidePanelOnViewAllAction = true;\n\n    /**\n     * Uses custom unread count from nbUnreadCount input instead of automatic calculation.\n     * When true, disables automatic counting of unread notifications from items array.\n     * @default false\n     */\n    @Input({ transform: booleanAttribute }) customUnreadCount = false;\n\n    /**\n     * Shows the \"Mark All as Read\" button in the panel header.\n     * When false, hides the mark all as read functionality.\n     * @default true\n     */\n    @Input({ transform: booleanAttribute }) isShowMarkAllAsReadButton = true;\n\n    /**\n     * Shows the settings button in the panel header.\n     * When false, hides the settings button.\n     * @default true\n     */\n    @Input({ transform: booleanAttribute }) isShowSettingsButton = true;\n\n    /**\n     * Shows the refresh button in the panel header.\n     * When false, hides the refresh button.\n     * @default true\n     */\n    @Input({ transform: booleanAttribute }) isShowRefreshButton = true;\n\n    onClicked(event: MouseEvent | Event): void {\n        this.notificationsClick.emit();\n        consumeEvent(event);\n        this.isOverlayActive = !this.isOverlayActive;\n    }\n\n    ngOnChanges(changes: SimpleChanges): void {\n        if (changes.customUnreadCount) {\n            const customUnreadCount = changes.customUnreadCount.currentValue;\n            if (!customUnreadCount) {\n                this.nbUnreadCount = this._getUnreadCount();\n            }\n        }\n    }\n\n    ngOnInit(): void {\n        if (!this.customUnreadCount) {\n            this.nbUnreadCount = this._getUnreadCount();\n        }\n    }\n\n    onRefresh(event: Event): void {\n        this.refreshClick.emit();\n        consumeEvent(event);\n    }\n\n    onItemClick(link: UxLinkLegacy<NotificationMetadata>): void {\n        this.itemClick.emit(link);\n        consumeEvent(event);\n    }\n\n    /** @internal */\n    onViewAllClick(event: Event): void {\n        this.viewAllClick.emit();\n        if (!this.isHidePanelOnViewAllAction) {\n            consumeEvent(event);\n        }\n    }\n\n    onNoNotificationFoundClick(): void {\n        this.noNotificationFoundClick.emit();\n    }\n\n    onItemMarkAsRead(link: UxLinkLegacy<NotificationMetadata>): void {\n        this.itemMarkAsReadClick.emit(link);\n    }\n\n    onMarkAllAsRead(e: MouseEvent): void {\n        this.markAllAsReadClick.emit(e);\n        consumeEvent(e);\n    }\n\n    onSettings(e: MouseEvent): void {\n        this.settingsClick.emit(e);\n        consumeEvent(e);\n    }\n\n    protected trackByFn(index: number, item: UxLinkLegacy<NotificationMetadata>): string {\n        return item.id;\n    }\n\n    protected updateActiveState(isActive: boolean): void {\n        this.isOverlayActive = isActive;\n    }\n\n    protected getAriaLabel(): string {\n        if (this.count) {\n            return this.count > 1\n                ? ` You have ${this.count} notifications`\n                : `You have ${this.count} notification`;\n        }\n        return 'Open notifications panel';\n    }\n\n    private _getUnreadCount(): number {\n        const unreadNotifications = this.items.filter((link) => {\n            if (link.metadata) {\n                return link.metadata.read === false;\n            }\n            return false;\n        });\n        return unreadNotifications.length;\n    }\n}\n","<eui-icon-button\n    class=\"eui-notifications__trigger\"\n    icon=\"eui-notifications\"\n    (click)=\"onClicked($event)\"\n    [ariaLabel]=\"getAriaLabel()\">\n    @if (count) {\n        <eui-badge euiDanger [maxCharCount]=\"2\">{{ count }}</eui-badge>\n    }\n</eui-icon-button>\n\n@if (isOverlayActive) {\n    <eui-overlay hasClosedOnClickOutside isActive class=\"eui-overlay-offset--width-30\" (activeState)=\"updateActiveState($event)\">\n        <eui-overlay-header>\n            <div class=\"eui-notifications__header-title\">\n                <div class=\"eui-notifications__header-title-label\">\n                    {{ headerTitleLabel ? headerTitleLabel : ('eui.MYNOTIFICATIONS' | translate) }}\n                    @if (items) {\n                        <span\n                            class=\"eui-u-cursor-help eui-u-ml-s\"\n                            attr.aria-label=\"{{ unreadLabel ? unreadLabel : ('eui.NOTIFICATIONSUNREAD' | translate) }}\"\n                            title=\"{{ unreadLabel ? unreadLabel : ('eui.NOTIFICATIONSUNREAD' | translate) }}\">\n                        </span>\n                    }\n                    <eui-badge>{{ items.length }}</eui-badge>\n                </div>\n            </div>\n    \n            @if (items) {\n                <div class=\"eui-notifications__header-actions\">\n                    @if (isShowMarkAllAsReadButton) {\n                        <button\n                            euiButton\n                            euiPrimary\n                            euiRounded\n                            euiIconButton\n                            euiBasicButton\n                            euiSizeS\n                            type=\"button\"\n                            [attr.aria-label]=\"markAllAsReadLabel ? markAllAsReadLabel : ('eui.NOTIFICATIONMARKALLASREAD' | translate)\"\n                            title=\"{{ markAllAsReadLabel ? markAllAsReadLabel : ('eui.NOTIFICATIONMARKALLASREAD' | translate) }}\"\n                            (click)=\"onMarkAllAsRead($event)\">\n                            <eui-icon-svg icon=\"eui-checkmark-done\" fillColor=\"secondary\"></eui-icon-svg>\n                        </button>\n                    }\n                    @if (isShowSettingsButton) {\n                        <button\n                            euiButton\n                            euiPrimary\n                            euiRounded\n                            euiIconButton\n                            euiBasicButton\n                            euiSizeS\n                            type=\"button\"\n                            [attr.aria-label]=\"settingsLabel ? settingsLabel : ('eui.SETTINGS' | translate)\"\n                            title=\"{{ settingsLabel ? settingsLabel : ('eui.SETTINGS' | translate) }}\"\n                            (click)=\"onSettings($event)\">\n                            <eui-icon-svg icon=\"eui-settings\" fillColor=\"secondary\"></eui-icon-svg>\n                        </button>\n                    }\n                    @if (isShowRefreshButton) {\n                        <button\n                            euiButton\n                            euiPrimary\n                            euiRounded\n                            euiIconButton\n                            euiBasicButton\n                            euiSizeS\n                            type=\"button\"\n                            [attr.aria-label]=\"refreshLabel ? refreshLabel : ('eui.REFRESH' | translate)\"\n                            title=\"{{ refreshLabel ? refreshLabel : ('eui.REFRESH' | translate) }}\"\n                            (click)=\"onRefresh($event)\">\n                            <eui-icon-svg icon=\"eui-refresh\" fillColor=\"secondary\"></eui-icon-svg>\n                        </button>\n                    }\n                </div>\n            }\n        </eui-overlay-header>\n    \n        <eui-overlay-body>\n            @if (items) {\n                <ul class=\"eui-notifications-items\">\n                    @for (item of items; let i = $index; track $index) {\n                        <eui-notification-item\n                            [item]=\"item\"\n                            [dateFormat]=\"dateFormat\"\n                            [markAsReadLabel]=\"markAsReadLabel\"\n                            [isShowMarkAsRead]=\"isShowMarkAsRead\"\n                            (itemClick)=\"onItemClick($event)\"\n                            (itemMarkAsRead)=\"onItemMarkAsRead($event)\">\n                        </eui-notification-item>\n                    }\n                </ul>\n            }\n        </eui-overlay-body>\n    \n        @if ((items?.length > 0 && isShowViewAllAction) || items?.length === 0) {\n            <eui-overlay-footer>\n                @if (items?.length > 0 && isShowViewAllAction) {\n                    <a (click)=\"onViewAllClick($event)\" class=\"eui-u-text-link\">\n                        <strong>{{ viewAllNotificationsLabel ? viewAllNotificationsLabel : ('eui.VIEWALLNOTIFICATIONS' | translate) }}</strong>\n                    </a>\n                }\n                @if (items?.length === 0) {\n                    @if (!noNotificationFoundLink) {\n                        <div class=\"ux-notification__item-content\">\n                            {{ noNotificationFoundLabel ? noNotificationFoundLabel : ('eui.NONOTIFICATIONFOUND' | translate) }}\n                        </div>\n                    }\n                    @if (noNotificationFoundLink) {\n                        <div class=\"ux-notification__item-content\">\n                            <a (click)=\"onNoNotificationFoundClick()\" class=\"eui-u-text-link\">\n                                {{ noNotificationFoundLabel ? noNotificationFoundLabel : ('eui.NONOTIFICATIONFOUND' | translate) }}\n                            </a>\n                        </div>\n                    }\n                }\n            </eui-overlay-footer>\n        }\n    </eui-overlay>\n}\n\n","import { booleanAttribute, Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';\nimport { UxLinkLegacy } from '@eui/core';\nimport { consumeEvent } from '@eui/core';\nimport { NotificationMetadata } from '../eui-notifications';\nimport { DatePipe, NgClass } from '@angular/common';\nimport { EUI_ICON } from '@eui/components/eui-icon';\nimport { EuiTruncatePipe } from '@eui/components/pipes';\nimport { TranslateModule } from '@ngx-translate/core';\n\n/**\n * @description\n * Enhanced individual notification item component (v2) displaying a single notification with read/unread status and actions.\n * Renders notification content with icon, label, date, and optional mark as read button.\n * Supports internal and external links with visual indicators for unread and important notifications.\n * Emits events for item clicks and mark as read actions to parent notification panel.\n * Improved version with enhanced styling and behavior compared to EuiNotificationItemComponent.\n */\n@Component({\n    selector: 'eui-notification-item-v2',\n    templateUrl: './eui-notification-item.component.html',\n    imports: [\n        NgClass,\n        DatePipe,\n        EuiTruncatePipe,\n        TranslateModule,\n        ...EUI_ICON,\n    ],\n})\nexport class EuiNotificationItemV2Component {\n    @HostBinding('class') string = 'eui-notification-item';\n    /**\n     * Emitted when the notification item is clicked.\n     * Payload: UxLinkLegacy - the clicked notification item with metadata\n     * Triggered when user clicks anywhere on the notification item.\n     */\n    @Output() itemClick: EventEmitter<UxLinkLegacy> = new EventEmitter<UxLinkLegacy>();\n\n    /**\n     * Emitted when the mark as read button is clicked.\n     * Payload: UxLinkLegacy - the notification item marked as read\n     * Triggered when user clicks the mark as read action button. Automatically sets item.metadata.read to true.\n     */\n    @Output() itemMarkAsRead: EventEmitter<UxLinkLegacy> = new EventEmitter<UxLinkLegacy>();\n\n    /**\n     * Custom label text for the mark as read button.\n     * When null, uses default translation key.\n     * Optional.\n     */\n    @Input() markAsReadLabel: string = null;\n\n    /**\n     * Notification item data containing label, metadata, and link information.\n     * Must conform to UxLinkLegacy<NotificationMetadata> interface with id, label, and metadata properties.\n     * Required for notification display.\n     */\n    @Input() item: UxLinkLegacy<NotificationMetadata>;\n\n    /**\n     * Date format string for displaying the notification timestamp.\n     * Accepts any valid Angular DatePipe format pattern.\n     * @default 'dd/MM/yyyy'\n     */\n    @Input() dateFormat = 'dd/MM/yyyy';\n\n    /**\n     * Shows the mark as read action button on the notification item.\n     * When false, hides the mark as read functionality.\n     * @default true\n     */\n    @Input({ transform: booleanAttribute }) isShowMarkAsRead = true;\n\n    tooltipSize = 'auto';\n\n    get iconColor(): string {\n        return this.item.metadata?.read ? 'secondary-light' : 'secondary';\n    }\n\n    onItemClick(): void {\n        this.itemClick.emit(this.item);\n    }\n\n    onItemMarkAsRead(event: Event): void {\n        if (this.item.metadata) {\n            this.item.metadata.read = true;\n        }\n        this.itemMarkAsRead.emit(this.item);\n        consumeEvent(event);\n    }\n}\n","<div\n    class=\"eui-notification-item-content\"\n    (click)=\"onItemClick()\"\n    [ngClass]=\"{ 'eui-u-c-bg-white': item.metadata?.read || !item.metadata }\">\n    <div class=\"eui-notification-item-content-top eui-u-f-s\">\n        @if (item.metadata?.date) {\n        <div class=\"eui-notification-item-content-top__date\">\n            <span class=\"eui-notification-item-content-top__date-icon eui-u-mr-s\">\n                <eui-icon-svg icon=\"eui-notifications\" [fillColor]=\"iconColor\"></eui-icon-svg>\n                @if (item.metadata?.new) {\n                    <span class=\"eui-notification-item-content-top__date-dot eui-u-c-danger-light eui-u-f-s eui-icon eui-icon-circle\"></span>\n                }\n            </span>\n            <span>{{ item.metadata?.date | date: dateFormat }}</span>\n        </div>\n        }\n        @if (item.metadata?.important) {\n        <div class=\"eui-u-f-m-semi-bold\">\n            <eui-icon-svg icon=\"eui-alert\" fillColor=\"danger\" class=\"eui-u-ml-xs\"></eui-icon-svg>\n        </div>\n        }\n    </div>\n    <span class=\"eui-notification-item-content-middle eui-u-cursor-pointer\">\n        @if (item.metadata?.url) {\n            <a class=\"eui-u-text-link\" href=\"{{ item.metadata.url }}\" tabIndex=\"0\">\n                <div\n                    class=\"eui-notification-item-content-middle__label\"\n                    [ngClass]=\"{ 'eui-u-f-m-semi-bold': !item.metadata || (item.metadata && !item.metadata.read) }\">\n                    {{ item.label | translate | euiTruncate: 200 }}\n                </div>\n                @if (item.subLabel) {\n                <div\n                    class=\"eui-notification-item-content-middle__sub-label\"\n                    [innerHTML]=\"item.subLabel | translate | euiTruncate: 200\"></div>\n                }\n            </a>\n        }\n\n        @if (item.metadata?.urlExternal) {\n            <a class=\"eui-u-text-link-external\"\n                href=\"{{ item.metadata.urlExternal }}\"\n                [target]=\"!item.metadata.urlExternalTarget ? '_blank' : item.metadata.urlExternalTarget\" tabIndex=\"0\">\n                <div\n                    class=\"eui-notification-item-content-middle__label\"\n                    [ngClass]=\"{ 'eui-u-f-m-semi-bold': !item.metadata || (item.metadata && !item.metadata.read) }\">\n                    {{ item.label | translate | euiTruncate: 200 }}\n                </div>\n                @if (item.subLabel) {\n                <div\n                    class=\"eui-notification-item-content-middle__sub-label\"\n                    [innerHTML]=\"item.subLabel | translate | euiTruncate: 200\"></div>\n                }\n            </a>\n        }\n\n        @if (!item.metadata?.url && !item.metadata?.urlExternal) {\n            <div\n                class=\"eui-notification-item-content-middle__label\"\n                [ngClass]=\"{ 'eui-u-f-m-bold': !item.metadata || (item.metadata && !item.metadata.read) }\">\n                {{ item.label | translate | euiTruncate: 200 }}\n            </div>\n            @if (item.subLabel) {\n            <div\n                class=\"eui-notification-item-content-middle__sub-label\"\n                [innerHTML]=\"item.subLabel | translate | euiTruncate: 200\"></div>\n            }\n        }\n    </span>\n    <div class=\"eui-notification-item-content-bottom\">\n        @if (isShowMarkAsRead && item.metadata && !item.metadata.read) {\n        <a\n            class=\"eui-u-text-link\"\n            href=\"javascript:void(0)\"\n            (click)=\"onItemMarkAsRead($event)\" tabIndex=\"0\">\n            {{ markAsReadLabel ? markAsReadLabel : ('eui.NOTIFICATIONMARKASREAD' | translate) }}\n        </a>\n        }\n    </div>\n</div>\n","import {\n    booleanAttribute,\n    ChangeDetectionStrategy,\n    Component,\n    EventEmitter,\n    HostBinding,\n    Input,\n    Output,\n    ViewEncapsulation,\n} from '@angular/core';\nimport { EUI_BADGE } from '@eui/components/eui-badge';\nimport { EUI_ICON } from '@eui/components/eui-icon';\nimport { EUI_ICON_BUTTON } from '@eui/components/eui-icon-button';\nimport { EUI_OVERLAY } from '@eui/components/eui-overlay';\nimport { consumeEvent, UxLinkLegacy } from '@eui/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { EuiNotificationItemV2Component } from './eui-notification-item.component';\nimport { EUI_BUTTON } from '@eui/components/eui-button';\n\n/**\n * @description\n * Enhanced notifications panel component (v2) displaying a dropdown list of user notifications with advanced badge indicators.\n * Provides comprehensive notification center with unread count, new notifications since last check, and action buttons.\n * Supports customizable labels, date formatting, and multiple count displays with badge indicators.\n * Integrates with overlay component for dropdown panel behavior and manages notification state.\n * Emits events for all user interactions including item clicks, refresh, and mark as read actions.\n * Improved version with additional features compared to EuiNotificationsComponent.\n */\n@Component({\n    selector: 'eui-notifications-v2',\n    templateUrl: './eui-notifications.component.html',\n    styleUrls: ['./styles/_index.scss'],\n    changeDetection: ChangeDetectionStrategy.Default,\n    encapsulation: ViewEncapsulation.None,\n    imports: [\n        TranslateModule,\n        EuiNotificationItemV2Component,\n        ...EUI_ICON,\n        ...EUI_ICON_BUTTON,\n        ...EUI_BADGE,\n        ...EUI_OVERLAY,\n        ...EUI_BUTTON,\n    ],\n})\nexport class EuiNotificationsV2Component {\n    /**\n     * Emitted when the refresh button is clicked to reload notifications.\n     * Payload: Event - the click event\n     * Triggered when user clicks the refresh button in the notifications panel header.\n     */\n    @Output() refreshClick: EventEmitter<Event> = new EventEmitter<Event>();\n\n    /**\n     * Emitted when the notifications bell icon is clicked to toggle the panel.\n     * Payload: KeyboardEvent | MouseEvent - the interaction event\n     * Triggered when user clicks or uses keyboard to open/close the dropdown.\n     */\n    @Output() notificationsClick: EventEmitter<KeyboardEvent | MouseEvent> = new EventEmitter<KeyboardEvent | MouseEvent>();\n\n    /**\n     * Emitted when the \"View All\" button is clicked.\n     * Payload: Event - the click event\n     * Triggered when user clicks the view all notifications action button.\n     */\n    @Output() viewAllClick: EventEmitter<Event> = new EventEmitter<Event>();\n\n    /**\n     * Emitted when the \"Mark All as Read\" button is clicked.\n     * Payload: MouseEvent - the click event\n     * Triggered when user clicks the mark all as read button in the panel header.\n     */\n    @Output() markAllAsReadClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\n\n    /**\n     * Emitted when the \"No notifications found\" link is clicked.\n     * Payload: void\n     * Triggered when user clicks the no notifications message (when noNotificationFoundLink is true).\n     */\n    @Output() noNotificationFoundClick: EventEmitter<void> = new EventEmitter<void>();\n\n    /**\n     * Emitted when a notification item is clicked.\n     * Payload: UxLinkLegacy - the clicked notification item\n     * Triggered when user clicks on any notification item in the list.\n     */\n    @Output() itemClick: EventEmitter<UxLinkLegacy> = new EventEmitter<UxLinkLegacy>();\n\n    /**\n     * Emitted when the mark as read button on a notification item is clicked.\n     * Payload: UxLinkLegacy - the notification item to mark as read\n     * Triggered when user clicks the mark as read action on an individual notification.\n     */\n    @Output() itemMarkAsReadClick: EventEmitter<UxLinkLegacy> = new EventEmitter<UxLinkLegacy>();\n\n    isOverlayActive = false;\n    currentDayNotifications = [];\n    oldestNotifications = [];\n    unreadNotifications = [];\n    today: Date = new Date();\n\n    @HostBinding('class') string = 'eui-notifications-v2';\n\n    /**\n     * Total count of notifications displayed in the badge.\n     * When null, badge shows unread count instead.\n     * Optional.\n     */\n    @Input() count: number = null;\n\n    /**\n     * Number of unread notifications to display.\n     * Used for badge display and header information.\n     * Optional.\n     */\n    @Input() unreadCount: number = null;\n\n    /**\n     * Number of new unread notifications since user last checked the panel.\n     * Displays as a secondary indicator to highlight new activity.\n     * Optional.\n     */\n    @Input() unreadSinceLastCheckCount: number = null;\n\n    /**\n     * Array of notification items to display in the panel.\n     * Each item should conform to UxLinkLegacy interface with id, label, and metadata properties.\n     * @default empty array\n     */\n    @Input() items = [];\n\n    /**\n     * Custom label text for \"unread\" status indicator.\n     * When null, uses default translation key.\n     * Optional.\n     */\n    @Input() unreadLabel: string = null;\n\n    /**\n     * Custom label text for \"total\" count display.\n     * When null, uses default translation key.\n     * Optional.\n     */\n    @Input() totalLabel: string = null;\n\n    /**\n     * Custom label text for \"mark as read\" action.\n     * When null, uses default translation key.\n     * Optional.\n     */\n    @Input() markAsReadLabel: string = null;\n\n    /**\n     * Custom label text for \"mark as unread\" action.\n     * When null, uses default translation key.\n     * Optional.\n     */\n    @Input() markAsUnReadLabel: string = null;\n\n    /**\n     * Custom label text for \"mark all as read\" button.\n     * When null, uses default translation key.\n     * Optional.\n     */\n    @Input() markAllAsReadLabel: string = null;\n\n    /**\n     * Custom label text for settings button.\n     * When null, uses default translation key.\n     * Optional.\n     */\n    @Input() settingsLabel: string = null;\n\n    /**\n     * Custom label text for refresh button.\n     * When null, uses default translation key.\n     * Optional.\n     */\n    @Input() refreshLabel: string = null;\n\n    /**\n     * Custom label text for \"view all notifications\" button.\n     * When null, uses default translation key.\n     * Optional.\n     */\n    @Input() viewAllNotificationsLabel: string = null;\n\n    /**\n     * Custom label text for panel header title.\n     * When null, uses default translation key.\n     * Optional.\n     */\n    @Input() headerTitleLabel: string = null;\n\n    /**\n     * Custom label text for hide/close button in header.\n     * When null, uses default translation key.\n     * Optional.\n     */\n    @Input() headerHideLabel: string = null;\n\n    /**\n     * Custom label text for displaying unread count since last check in header.\n     * When null, uses default translation key.\n     * Optional.\n     */\n    @Input() headerUnreadSinceLastCheckCountLabel: string = null;\n\n    /**\n     * Custom label text for displaying total unread count in header.\n     * When null, uses default translation key.\n     * Optional.\n     */\n    @Input() headerUnreadCountLabel: string = null;\n\n    /**\n     * Custom label text for empty state message when no notifications exist.\n     * When null, uses default translation key.\n     * Optional.\n     */\n    @Input() noNotificationFoundLabel: string = null;\n\n    /**\n     * Date format string for displaying notification timestamps.\n     * Accepts any valid Angular DatePipe format pattern.\n     * @default 'dd/MM/yyyy'\n     */\n    @Input() dateFormat = 'dd/MM/yyyy';\n\n    /**\n     * Makes the \"no notifications found\" message clickable as a link.\n     * When true, emits noNotificationFoundClick event on click.\n     * @default false\n     */\n    @Input({ transform: booleanAttribute }) noNotificationFoundLink = false;\n\n    /**\n     * Shows the mark as read action button on individual notification items.\n     * When false, hides the mark as read functionality from notification items.\n     * @default true\n     */\n    @Input({ transform: booleanAttribute }) isShowMarkAsRead = true;\n\n    /**\n     * Shows the \"View All\" action button in the panel footer.\n     * When false, hides the view all notifications button.\n     * @default true\n     */\n    @Input({ transform: booleanAttribute }) isShowViewAllAction = true;\n\n    /**\n     * Automatically closes the notifications panel when \"View All\" is clicked.\n     * When false, panel remains open after clicking view all.\n     * @default true\n     */\n    @Input({ transform: booleanAttribute }) isHidePanelOnViewAllAction = true;\n\n    /**\n     * Shows the \"Mark All as Read\" button in the panel header.\n     * When false, hides the mark all as read functionality.\n     * @default true\n     */\n    @Input({ transform: booleanAttribute }) isShowMarkAllAsReadButton = true;\n\n    /**\n     * Shows the settings button in the panel header.\n     * When false, hides the settings button.\n     * @default true\n     */\n    @Input({ transform: booleanAttribute }) isShowSettingsButton = true;\n\n    /**\n     * Shows the refresh button in the panel header.\n     * When false, hides the refresh button.\n     * @default true\n     */\n    @Input({ transform: booleanAttribute }) isShowRefreshButton = true;\n\n    get isShowUnreadSinceLastCheckCount(): boolean {\n        return this.unreadSinceLastCheckCount && this.unreadSinceLastCheckCount > 0;\n    }\n\n    onHide(): void {\n        this.isOverlayActive = false;\n    }\n\n    onClicked(event: Event): void {\n        this.notificationsClick.emit();\n        consumeEvent(event);\n        this.isOverlayActive = !this.isOverlayActive;\n    }\n\n    onRefresh(event: Event): void {\n        this.refreshClick.emit();\n        consumeEvent(event);\n    }\n\n    onItemClick(link: UxLinkLegacy): void {\n        this.itemClick.emit(link);\n        consumeEvent(event);\n    }\n\n    onViewAllClick(event: Event): void {\n        this.viewAllClick.emit();\n        if (!this.isHidePanelOnViewAllAction) {\n            consumeEvent(event);\n        }\n    }\n\n    onNoNotificationFoundClick(): void {\n        this.noNotificationFoundClick.emit();\n    }\n\n    onItemMarkAsRead(link: UxLinkLegacy): void {\n        this.itemMarkAsReadClick.emit(link);\n    }\n\n    onMarkAllAsRead(e: MouseEvent): void {\n        this.markAllAsReadClick.emit(e);\n        consumeEvent(e);\n    }\n\n    // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    trackByFn(index: number, item: any): void {\n        return item.id;\n    }\n\n    protected updateActiveState(isActive: boolean): void {\n        this.isOverlayActive = isActive;\n    }\n\n    protected getAriaLabel(): string {\n        if (this.count) {\n            return this.count > 1\n                ? ` You have ${this.count} notifications`\n                : `You have ${this.count} notification`;\n        }\n        return 'Open notifications panel';\n    }\n}\n","<eui-icon-button\n    class=\"eui-notifications-v2__trigger\"\n    icon=\"eui-notifications\"\n    fillColor=\"white\"\n    (click)=\"onClicked($event)\"\n    [ariaLabel]=\"getAriaLabel()\">\n    @if (isShowUnreadSinceLastCheckCount) {\n        <eui-badge euiSizeM euiDanger [maxCharCount]=\"2\">{{ unreadSinceLastCheckCount }}</eui-badge>\n    }\n</eui-icon-button>\n\n@if (isOverlayActive){\n    <eui-overlay isActive hasClosedOnClickOutside class=\"eui-overlay-offset--width-30\" (activeState)=\"updateActiveState($event)\">\n        <eui-overlay-header>\n            <div class=\"eui-notifications-v2__header\">\n                <div class=\"eui-notifications-v2__header-title\">\n                    <div class=\"eui-notifications-v2__header-title-label\">\n                        {{ headerTitleLabel ? headerTitleLabel : ('eui.MYNOTIFICATIONS' | translate) }}\n                    </div>\n    \n                    <div class=\"eui-notifications-v2__header-title-actions\">\n                        <span class=\"hide\">\n                            <a (click)=\"onHide()\" class=\"eui-u-text-link\" role=\"button\" tabIndex=\"0\">\n                                {{ headerHideLabel ? headerHideLabel : ('eui.HIDE' | translate) }}\n                            </a>\n                            <eui-icon-svg icon=\"eui-chevron-right\" size=\"2xs\"></eui-icon-svg>\n                        </span>\n                    </div>\n                </div>\n    \n                <div class=\"eui-notifications-v2__header-subinfos-bar\">\n                    <strong>{{ unreadSinceLastCheckCount }}</strong>\n                    <span class=\"eui-u-ml-xs\">{{\n                        headerUnreadSinceLastCheckCountLabel ? headerUnreadSinceLastCheckCountLabel : ('eui.NEW-COUNT' | translate)\n                    }}</span>\n    \n                    <span class=\"eui-u-ml-xs\">|</span>\n    \n                    <span class=\"eui-u-ml-xs\">{{ unreadCount }}</span>\n                    <span class=\"eui-u-ml-xs\">{{ headerUnreadCountLabel ? headerUnreadCountLabel : ('eui.NEW-COUNT' | translate) }}</span>\n                </div>\n    \n                <div class=\"eui-notifications-v2__header-subactions-bar\">\n                    @if (items.length > 0) {\n                    <a (click)=\"onMarkAllAsRead($event)\" class=\"eui-u-text-link\" tabIndex=\"0\">\n                        {{ 'notif.MARK-ALL-READ' | translate }}\n                    </a>\n                    }\n                    <a (click)=\"onRefresh($event)\" class=\"eui-u-text-link eui-u-ml-auto\" tabIndex=\"0\">\n                        <span class=\"eui-u-flex\">\n                            <eui-icon-svg icon=\"eui-refresh\" fillColor=\"secondary\"></eui-icon-svg>\n                            {{ 'notif.SV-REFRESH' | translate }}\n                        </span>\n                    </a>\n                </div>\n            </div>\n        </eui-overlay-header>\n    \n        <eui-overlay-body>\n            @if (items) {\n            <ul class=\"eui-notifications-items\">\n                @for (item of items; track trackByFn($index, item)) {\n                <eui-notification-item-v2\n                    [item]=\"item\"\n                    [dateFormat]=\"dateFormat\"\n                    [markAsReadLabel]=\"markAsReadLabel\"\n                    [isShowMarkAsRead]=\"isShowMarkAsRead\"\n                    (itemClick)=\"onItemClick($event)\"\n                    (itemMarkAsRead)=\"onItemMarkAsRead($event)\">\n                </eui-notification-item-v2>\n                }\n            </ul>\n            }\n        </eui-overlay-body>\n    \n        <eui-overlay-footer>\n            @if (items?.length > 0) {\n                <strong\n                    ><a (click)=\"onViewAllClick($event)\" class=\"eui-u-text-link\">{{\n                        viewAllNotificationsLabel ? viewAllNotificationsLabel : ('eui.VIEWALLNOTIFICATIONS' | translate)\n                    }}</a></strong\n                >\n            }\n            @if (items?.length === 0) {\n                @if (!noNotificationFoundLink) {\n                <div class=\"ux-notification__item-content\">\n                    {{ noNotificationFoundLabel ? noNotificationFoundLabel : ('eui.NONOTIFICATIONFOUND' | translate) }}\n                </div>\n                }\n                @if (noNotificationFoundLink) {\n                <div class=\"ux-notification__item-content\">\n                    <strong\n                        ><a (click)=\"onNoNotificationFoundClick()\" class=\"eui-u-text-link\">{{\n                            noNotificationFoundLabel ? noNotificationFoundLabel : ('eui.NONOTIFICATIONFOUND' | translate)\n                        }}</a></strong\n                    >\n                </div>\n                }\n            }\n        </eui-overlay-footer>\n    </eui-overlay>\n}\n","import { \n    EuiAppBreadcrumbComponent,\n    EuiAppComponent,\n    EuiAppFooterComponent,\n    EuiAppHeaderComponent,\n    EuiAppPageWrapperDirective,\n    EuiAppSidebarBodyComponent,\n    EuiAppSidebarComponent,\n    EuiAppSidebarDrawerComponent,\n    EuiAppSidebarFooterComponent,\n    EuiAppSidebarHeaderComponent,\n    EuiAppSidebarHeaderUserProfileComponent,\n    EuiAppSidebarMenuComponent,\n    EuiAppToolbarComponent,\n    EuiAppToolbarItemsMobileComponent,\n    EuiAppTopMessageComponent,\n    EuiAppSideContainerComponent,\n} from './eui-app';\n\nexport * from './eui-app';\n\nimport {\n    EuiFooterComponent,\n} from './eui-footer';\n\nexport * from './eui-footer';\n\nimport {\n    EuiHeaderAppComponent,\n    EuiHeaderAppNameComponent,\n    EuiHeaderAppNameLogoComponent,\n    EuiHeaderAppSubtitleComponent,\n    EuiHeaderComponent,\n    EuiHeaderEnvironmentComponent,\n    EuiHeaderLogoComponent,\n    EuiHeaderRightContentComponent,\n    EuiHeaderSearchComponent,\n    EuiHeaderUserProfileComponent,\n} from './eui-header';\n\nexport * from './eui-header';\n\nimport { \n    EuiNotificationItemComponent,\n    EuiNotificationsComponent,\n} from './eui-notifications';\n\nexport * from './eui-notifications';\n\nimport { \n    EuiNotificationItemV2Component,\n    EuiNotificationsV2Component,\n} from './eui-notifications-v2';\n\nexport * from './eui-notifications-v2';\n\nimport {\n    EuiSidebarToggleComponent,\n} from './eui-sidebar-toggle';\n\nexport * from './eui-sidebar-toggle';\n\nimport { \n    EuiToolbarAppComponent,\n    EuiToolbarCenterComponent,\n    EuiToolbarComponent,\n    EuiToolbarEnvironmentComponent,\n    EuiToolbarItemComponent,\n    EuiToolbarItemsComponent,\n    EuiToolbarLogoComponent,\n    EuiToolbarMegaMenuComponent,\n    EuiToolbarMegaMenuContainerComponent,\n    EuiToolbarNavbarComponent,\n    EuiToolbarNavbarItemComponent,\n    EuiToolbarSearchComponent,\n    EuiToolbarSelectorComponent,\n} from './eui-toolbar';\n\nexport * from './eui-toolbar';\n\nexport const EUI_LAYOUT = [\n    EuiAppComponent,\n    EuiAppBreadcrumbComponent,\n    EuiAppFooterComponent,\n    EuiAppHeaderComponent,\n    EuiAppPageWrapperDirective,\n    EuiAppSidebarBodyComponent,\n    EuiAppSidebarComponent,\n    EuiAppSidebarDrawerComponent,\n    EuiAppSidebarFooterComponent,\n    EuiAppSidebarHeaderComponent,\n    EuiAppSidebarHeaderUserProfileComponent,\n    EuiAppSidebarMenuComponent,\n    EuiAppToolbarComponent,\n    EuiAppToolbarItemsMobileComponent,\n    EuiAppTopMessageComponent,   \n    EuiAppSideContainerComponent,\n\n    EuiFooterComponent,\n\n    EuiHeaderAppComponent,\n    EuiHeaderAppNameComponent,\n    EuiHeaderAppNameLogoComponent,\n    EuiHeaderAppSubtitleComponent,\n    EuiHeaderComponent,\n    EuiHeaderEnvironmentComponent,\n    EuiHeaderLogoComponent,\n    EuiHeaderRightContentComponent,\n    EuiHeaderSearchComponent,\n    EuiHeaderUserProfileComponent,\n\n    EuiNotificationItemComponent,\n    EuiNotificationsComponent,\n\n    EuiNotificationItemV2Component,\n    EuiNotificationsV2Component,    \n\n    EuiSidebarToggleComponent,\n\n    EuiToolbarAppComponent,\n    EuiToolbarCenterComponent,\n    EuiToolbarComponent,\n    EuiToolbarEnvironmentComponent,\n    EuiToolbarItemComponent,\n    EuiToolbarItemsComponent,\n    EuiToolbarLogoComponent,\n    EuiToolbarMegaMenuComponent,\n    EuiToolbarNavbarComponent,\n    EuiToolbarNavbarItemComponent,\n    EuiToolbarSearchComponent,\n    EuiToolbarSelectorComponent,    \n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","filter","i1","i3","takeUntil","i4","i5","i6"],"mappings":"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"}