{"version":3,"file":"eui-components-eui-dropdown.mjs","sources":["../../eui-dropdown/animations/open-close.ts","../../eui-dropdown/dropdown-item/eui-dropdown-item.component.ts","../../eui-dropdown/dropdown-item/eui-dropdown-item.component.html","../../eui-dropdown/eui-dropdown.service.ts","../../eui-dropdown/eui-dropdown.component.ts","../../eui-dropdown/eui-dropdown.component.html","../../eui-dropdown/directives/eui-dropdown-content.directive.ts","../../eui-dropdown/index.ts","../../eui-dropdown/eui-components-eui-dropdown.ts"],"sourcesContent":["import { animate, state, style, transition, trigger } from '@angular/animations';\n\nexport const openClose = trigger('openClose', [\n    state(\n        'open',\n        style({\n            opacity: 1,\n            transform: 'scale(1)',\n        }),\n    ),\n    state(\n        'closed',\n        style({\n            opacity: 0,\n            transform: 'scale(0.9)',\n        }),\n    ),\n    transition('closed => open', [animate('50ms 25ms linear')]),\n]);\n","import {\n    Component,\n    HostBinding,\n    ChangeDetectionStrategy,\n    ViewEncapsulation,\n    Input,\n    ElementRef,\n    booleanAttribute,\n    inject,\n} from '@angular/core';\nimport { Highlightable } from '@angular/cdk/a11y';\n\nimport { EuiDropdownComponent } from '../eui-dropdown.component';\nimport { EUI_ICON } from '@eui/components/eui-icon';\n\n/**\n * @description\n * Represents an individual selectable item within an eui-dropdown menu.\n * Implements keyboard navigation and focus management through the CDK Highlightable interface.\n * Supports nested submenus and active/focused visual states for accessibility.\n * Typically used as a child element within eui-dropdown to create menu options.\n *\n * @usageNotes\n * ### Basic menu item\n * ```html\n * <eui-dropdown>\n *   <button euiButton>Menu</button>\n *   <eui-dropdown-item>Edit</eui-dropdown-item>\n *   <eui-dropdown-item [isActive]=\"true\">Delete</eui-dropdown-item>\n * </eui-dropdown>\n * ```\n *\n * ### Accessibility\n * - Implements menuitem role for proper screen reader announcement\n * - Supports roving tabindex for keyboard navigation\n * - Focus state is visually indicated and programmatically managed\n *\n * ### Notes\n * - Use `isActive` to highlight the currently selected item\n * - Nest `eui-dropdown` inside item via `subDropdown` for hierarchical menus\n * - Focus management is handled automatically by parent dropdown\n */\n@Component({\n    selector: 'eui-dropdown-item, [euiDropdownItem]',\n    templateUrl: './eui-dropdown-item.component.html',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    imports: [\n        ...EUI_ICON,\n    ],\n})\nexport class EuiDropdownItemComponent implements Highlightable {\n    elementRef = inject(ElementRef);\n\n    /**\n     * Reference to a nested dropdown component that opens as a submenu from this item.\n     * When provided, displays a visual indicator and enables hierarchical menu navigation.\n     */\n    @Input() subDropdown: EuiDropdownComponent;\n\n    @HostBinding('attr.role') role = 'menuitem';\n    // Make item programmatically focusable using roving tabindex to properly announce the items in the screen reader\n    @HostBinding('attr.tabindex')\n    get tabIndex(): number { \n        return this.isFocus ? 0 : -1; \n    }\n    @HostBinding('class')\n    get cssClasses(): string {\n        return [\n            'eui-dropdown-item',\n            this.isActive ? 'eui-dropdown-item--active' : '',\n            this.isFocus ? 'eui-dropdown-item--focused' : '',\n            this.subDropdown ? 'eui-dropdown-item--has-subdropdown' : '',\n        ]\n            .join(' ')\n            .trim();\n    }\n\n    /**\n     * Marks the item as currently selected or active within the dropdown.\n     * Applies distinct styling to indicate the active state to users.\n     * @default undefined (falsy)\n     */\n    @Input({ transform: booleanAttribute }) isActive: boolean;\n    \n    /**\n     * Indicates whether the item currently has keyboard focus during navigation.\n     * Controls tabindex and applies focus styling for accessibility compliance.\n     * Managed internally by the keyboard navigation system.\n     * @default undefined (falsy)\n     */\n    @Input({ transform: booleanAttribute }) isFocus: boolean;\n\n    public setActiveStyles(): void {\n        this.isFocus = true;\n    }\n\n    public setInactiveStyles(): void {\n        this.isFocus = false;\n    }\n\n    public focus(options?: FocusOptions): void {\n        this.elementRef.nativeElement.focus({ preventScroll: true, ...options });\n    }\n\n    public click(): void {\n        this.elementRef.nativeElement.click();\n    }\n\n    public mouseenter(): void {\n        const mouseenterEvent = new Event('mouseenter');\n        this.elementRef.nativeElement.dispatchEvent(mouseenterEvent);\n    }\n}\n","<div class=\"eui-dropdown-item__container\">\n    <div class=\"eui-dropdown-item__content\">\n        @if (subDropdown) {\n            <div class=\"eui-dropdown-item__content-icon eui-dropdown-item__content-icon--left\">\n                <eui-icon-svg icon=\"eui-chevron-left\" size=\"s\" fillColor=\"secondary\"></eui-icon-svg>\n            </div>\n        }\n        <div class=\"eui-dropdown-item__content-text\">\n            <ng-content></ng-content>\n        </div>\n        @if (subDropdown) {\n            <div class=\"eui-dropdown-item__content-icon eui-dropdown-item__content-icon--right\">\n                <eui-icon-svg icon=\"eui-chevron-right\" size=\"s\" fillColor=\"secondary\"></eui-icon-svg>\n            </div>\n        }\n    </div>\n</div>\n","import { EventEmitter, Injectable } from '@angular/core';\n\n/**\n * Service to manage the state of dropdowns in the application.\n * This service provides an event emitter to notify when a dropdown is opened or closed.\n *\n * @deprecated This service is deprecated and will be removed in future versions. Use\n * `EuiDropdownComponent` output events instead.\n */\n@Injectable()\nexport class EuiDropdownService {\n    /**\n     * Event emitter that emits a boolean value indicating whether the dropdown is open or closed.\n     * @deprecated Use `EuiDropdownComponent` output events instead.\n     */\n    isDropdownOpen = new EventEmitter<boolean>();\n}\n","import {\n    Component,\n    ChangeDetectionStrategy,\n    HostBinding,\n    ViewEncapsulation,\n    Input,\n    OnInit,\n    OnDestroy,\n    AfterViewInit,\n    ViewContainerRef,\n    ViewChild,\n    TemplateRef,\n    ContentChildren,\n    QueryList,\n    ElementRef,\n    Renderer2,\n    booleanAttribute,\n    EventEmitter,\n    inject,\n    PLATFORM_ID,\n    Output,\n    ChangeDetectorRef,\n    signal,\n} from '@angular/core';\nimport { DOCUMENT, isPlatformBrowser, isPlatformServer } from '@angular/common';\nimport {\n    CdkScrollable,\n    ConnectionPositionPair,\n    FlexibleConnectedPositionStrategy,\n    FlexibleConnectedPositionStrategyOrigin,\n    GlobalPositionStrategy,\n    Overlay,\n    OverlayRef,\n    ScrollDispatcher,\n    OverlayModule,\n} from '@angular/cdk/overlay';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { ObserversModule } from '@angular/cdk/observers';\nimport { fromEvent, Subject, Subscription, takeUntil } from 'rxjs';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { ActiveDescendantKeyManager, Highlightable } from '@angular/cdk/a11y';\n\nimport { openClose } from './animations/open-close';\nimport { EuiDropdownItemComponent } from './dropdown-item/eui-dropdown-item.component';\nimport { EuiDropdownService } from './eui-dropdown.service';\n\n/**\n * @description\n * A flexible dropdown menu component that displays contextual content in an overlay panel.\n * Supports keyboard navigation, nested submenus, positioning strategies, and accessibility features.\n * Composed of a trigger element that opens a panel containing menu items or custom content.\n * Handles focus management, scroll behavior, and click-outside detection automatically.\n *\n * @usageNotes\n * ### Basic dropdown with menu items\n * ```html\n * <eui-dropdown>\n *   <button euiButton>Open Menu</button>\n *   <eui-dropdown-item>Action 1</eui-dropdown-item>\n *   <eui-dropdown-item>Action 2</eui-dropdown-item>\n * </eui-dropdown>\n * ```\n *\n * ### Accessibility\n * - Implements ARIA menu pattern with proper roles and keyboard navigation\n * - Arrow keys navigate between items, Enter/Space activates selection\n * - Escape closes the dropdown and returns focus to trigger\n * - Screen readers announce menu state changes via aria-expanded\n *\n * ### Notes\n * - Use `position` to control dropdown placement (top, right, bottom, left)\n * - Enable `isExpandOnHover` for submenu expansion without clicking\n * - Set `hasClosedOnClickInside` to false for multi-select scenarios\n * - Context menus can be triggered with right-click using `isRightClickEnabled`\n */\n@Component({\n    selector: 'eui-dropdown',\n    templateUrl: './eui-dropdown.component.html',\n    styleUrl: './eui-dropdown.scss',\n    animations: [openClose],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    imports: [\n        OverlayModule,\n        ScrollingModule,\n        A11yModule,\n        ObserversModule,\n    ],\n    providers: [EuiDropdownService],\n})\nexport class EuiDropdownComponent implements OnInit, OnDestroy, AfterViewInit {\n    /**\n     * Sets the `data-e2e` attribute for dropodown panel. Default: `eui-dropdown`.\n     *\n     * @default 'eui-dropdown'\n     */\n    @Input() e2eAttr = 'eui-dropdown';\n    /**\n     * Sets the `tabindex` attribute for a dropdown panel.\n     *\n     * @default -1\n     */\n    @Input() tabIndex = -1;\n    /**\n     * Sets the `width` attribute for the dropdown panel.\n     *\n     * @default 'auto'\n     */\n    @Input() width = 'auto';\n    /**\n     * Sets the `height` attribute for the dropdown panel.\n     *\n     * @default 'auto'\n     */\n    @Input() height = 'auto';\n    /**\n     * Sets the `position` attribute for the dropdown panel.\n     *\n     * @default 'bottom'\n     */\n    @Input() position: 'top' | 'right' | 'bottom' | 'left' = 'bottom';\n    /**\n     * Sets the `subDropdownPosition` attribute for a multi-level dropdown.\n     *\n     * @default 'right'\n     */\n    @Input() subDropdownPosition: 'right' | 'left' = 'right';\n    /**\n     * Sets the `isBlock` attribute in order for the dropdown to take the full width of the parent container.\n     *\n     * @default false\n     */\n    @Input({ transform: booleanAttribute }) isBlock = false;\n    /**\n     * Sets the `isDropDownRightAligned` attribute to align the menu panel on the right of the opening element.\n     *\n     * @default false\n     */\n    @Input({ transform: booleanAttribute }) isDropDownRightAligned = false;\n    /**\n     * Sets the `hasClosedOnClickInside` attribute which controls the auto-closing of the menu when clicking inside.\n     *\n     * @default true\n     */\n    @Input({ transform: booleanAttribute }) hasClosedOnClickInside = true;\n    /**\n     * Sets the `isLabelUpdatedFromSelectedItem` attribute which updates the label of the trigger with the selected item.\n     *\n     * @default false\n     */\n    @Input({ transform: booleanAttribute }) isLabelUpdatedFromSelectedItem = false;\n    /**\n     * Sets the `isExpandOnHover` attribute which opens the sub dropdown upon hover.\n     *\n     * @default false\n     */\n    @Input({ transform: booleanAttribute }) isExpandOnHover = false;\n    /**\n     * Sets the `hasTabNavigation` attribute to tab within the dropdown content when there is rich content.\n     *\n     * @default false\n     */\n    @Input({ transform: booleanAttribute }) hasTabNavigation = false;\n    /**\n     * Sets the `isRightClickEnabled` attribute to trigger the menu using the right mouse click.\n     *\n     * @default false\n     */\n    @Input({ transform: booleanAttribute }) isRightClickEnabled = false;\n    @Input({ transform: booleanAttribute }) euiDisabled = false;\n    /**\n     * Event emitted when the menu expands.\n     */\n    @Output() expand: EventEmitter<boolean> = new EventEmitter();\n    @Output() isDropdownOpen: EventEmitter<boolean> = new EventEmitter();\n\n    @ViewChild('templatePortalContent') templatePortalContent: TemplateRef<unknown>;\n    @ViewChild('triggerRef') triggerRef: ElementRef<HTMLElement>;\n    @ContentChildren(EuiDropdownItemComponent, { descendants: true }) euiDropdownItems: QueryList<Highlightable & EuiDropdownItemComponent>;\n\n    public trapFocusAutoCapture = true;\n    public parentDropdown: EuiDropdownComponent;\n\n    public isOpened = signal(false);\n    protected dropdownService = inject(EuiDropdownService);\n    private mousePositionX = 0;\n    private mousePositionY = 0;\n    private initialScrollX = 0;\n    private initialScrollY = 0;\n    private originX: 'start' | 'end' | 'center' = 'start';\n    private originY: 'top' | 'bottom' | 'center' = 'bottom';\n    private overlayX: 'start' | 'end' | 'center' = 'start';\n    private overlayY: 'top' | 'bottom' | 'center' = 'top';\n    private templatePortal: TemplatePortal;\n    private overlayRef: OverlayRef;\n    private destroy$ = new Subject<boolean>();\n    private scrollDispatcherSubscription = new Subscription();\n    private keydownListenerSubscription = new Subscription();\n    private euiDropdownItemsEventSubscriptions: Subscription[] = [];\n    private activeDescendantKeyManagerChangeSubscription = new Subscription();\n    private activeDescendantKeyManager: ActiveDescendantKeyManager<EuiDropdownItemComponent>;\n    private origin: HTMLElement;\n    private positionStrategy: FlexibleConnectedPositionStrategy;\n    private scrollSubscription = new Subscription();\n    private overlay = inject(Overlay);\n    private viewContainerRef = inject(ViewContainerRef);\n    private scrollDispatcher = inject(ScrollDispatcher);\n    private cd = inject(ChangeDetectorRef);\n    protected _renderer = inject(Renderer2);\n    protected platformId = inject(PLATFORM_ID);\n    private document = inject<Document>(DOCUMENT);\n    /**\n     * @description\n     * Computes and returns the CSS classes for the component based on its current state.\n     *\n     * @returns {string} Space-separated string of CSS class names\n     */\n    @HostBinding('class')\n    get cssClasses(): string {\n        return [\n            'eui-dropdown',\n            this.isBlock ? 'eui-dropdown--block' : '',\n            this.isRightClickEnabled ? 'eui-dropdown--contextual-menu' : '',\n        ].join(' ').trim();\n    }\n\n    ngOnInit(): void {\n        // Currently, the `cdkTrapFocusAutoCapture` is only checked once on init.\n        if (this.hasDropdownItems) {\n            this.trapFocusAutoCapture = false;\n        } else {\n            this.trapFocusAutoCapture = true;\n        }\n\n        if (this.hasTabNavigation) {\n            this.trapFocusAutoCapture = true;\n            this.hasClosedOnClickInside = false;\n        }\n\n        if (this.isRightClickEnabled) {\n            this.hasTabNavigation = false;  // UX wise, contextual menu contains only menu items accessible through arrow keys nav\n        }\n\n        this.setPosition();\n\n        // TODO: Remove this in the future, when the `isDropdownOpen` signal is used instead.\n        this.isDropdownOpen.subscribe(isOpen => this.dropdownService.isDropdownOpen.emit(isOpen));\n    }\n\n    ngAfterViewInit(): void {\n        this.templatePortal = new TemplatePortal(this.templatePortalContent, this.viewContainerRef);\n\n        if(this.triggerRef && this.triggerRef.nativeElement.firstElementChild) {\n            if(this.isFocusableElement(this.triggerRef.nativeElement.firstElementChild as HTMLElement)) {\n                this._renderer?.setAttribute(this.triggerRef.nativeElement.firstElementChild as HTMLElement, 'aria-haspopup', 'menu');\n                this._renderer?.setAttribute(this.triggerRef.nativeElement.firstElementChild as HTMLElement, 'aria-expanded', 'false');\n            } else if(this.triggerRef.nativeElement.firstElementChild.firstChild && this.isFocusableElement(this.triggerRef.nativeElement.firstElementChild.firstChild as HTMLElement)) {\n                this._renderer?.setAttribute(this.triggerRef.nativeElement.firstElementChild.firstChild as HTMLElement, 'aria-haspopup', 'menu');\n                this._renderer?.setAttribute(this.triggerRef.nativeElement.firstElementChild.firstChild as HTMLElement, 'aria-expanded', 'false');\n            }\n        }\n    }\n\n    ngOnDestroy(): void {\n        this.destroy$.next(true);\n        this.destroy$.unsubscribe();\n        this.euiDropdownItemsEventSubscriptions.forEach((euiDropdownItemsEventSubscription) => {\n            euiDropdownItemsEventSubscription.unsubscribe();\n        });\n        this.keydownListenerSubscription.unsubscribe();\n        this.scrollDispatcherSubscription.unsubscribe();\n        this.activeDescendantKeyManagerChangeSubscription.unsubscribe();\n        this.overlayRef?.dispose();\n        this.overlayRef = null;\n        this.activeDescendantKeyManager = null;\n        this.scrollSubscription.unsubscribe();\n    }\n\n    /**\n     * Whether the eui-dropdown is open.\n     *\n     * @deprecated This property will be removed in the future. Use `isOpened` signal instead.\n     *\n     * @usageNotes\n     * ```html\n     * <eui-dropdown #dropdown>\n     *      <my-component *ngIf=\"dropdown.isOpen\"></my-component>\n     * </eui-dropdown>\n     * ```\n     * @returns A boolean with value `true` when open, otherwise `false`.\n     */\n    get isOpen(): boolean {\n        return this.isOpened();\n    }\n    /**\n     * Method fired upon clicking the dropdown trigger.\n     *\n     * @param e Event triggered when the dropdown trigger is clicked.\n     */\n    public onTriggerClicked(e: Event): void {\n        if (\n            !(e.target as HTMLElement).querySelector('.disabled') &&\n            !(e.target as HTMLElement).querySelector(':disabled') &&\n            !this.isOpened()\n        ) {\n            if (this.isBlock) {\n                this.width = this.triggerRef.nativeElement.offsetWidth + 'px';\n            }\n\n            this.openDropdown(e.target as HTMLElement);\n            this.expand.emit(true);\n            e.stopPropagation();\n        }\n    }\n    /**\n     * Method fired upon right clicking the dropdown trigger in case of context menu.\n     *\n     * @param e Event triggered when the dropdown trigger is right clicked.\n     */\n    public onTriggerRightClicked(e: Event): void {\n        if (\n            !(e.target as HTMLElement).querySelector('.disabled') &&\n            !(e.target as HTMLElement).querySelector(':disabled') &&\n            !this.isOpened()\n        ) {\n            if (this.isBlock) {\n                this.width = this.triggerRef.nativeElement.offsetWidth + 'px';\n            }\n\n            this.mousePositionX = (e as PointerEvent).clientX;\n            this.mousePositionY = (e as PointerEvent).clientY;\n            if(isPlatformBrowser(this.platformId)) {\n                this.initialScrollX = window.pageXOffset;\n                this.initialScrollY = window.pageYOffset;\n            }\n\n            this.openDropdown(e.target as HTMLElement);\n            e.preventDefault();\n            e.stopPropagation();\n        }\n    }\n    /**\n     * Method fired upon clicking the dropdown content.\n     *\n     */\n    public onClick(): void {\n        if (\n            this.hasClosedOnClickInside &&\n            !this.activeDescendantKeyManager?.activeItem.subDropdown &&\n            !this.activeDescendantKeyManager?.activeItem.elementRef?.nativeElement?.disabled\n        ) {\n            this.closeDropdown(true);\n        }\n    }\n\n    /**\n     * Method fired when the dropdown is opened.\n     *\n     * @param origin Origin of the dropdown position\n     * @param position Position of the dropdown\n     * @param position.x X coordinate of the dropdown position\n     * @param position.y Y coordinate of the dropdown position\n     */\n    public openDropdown(origin: HTMLElement, position?: { x: number, y: number }): void {\n        this.origin = origin;\n\n        if (position) {\n            this.mousePositionX = position.x;\n            this.mousePositionY = position.y;\n            if(isPlatformBrowser(this.platformId)) {\n                this.initialScrollX = window.pageXOffset;\n                this.initialScrollY = window.pageYOffset;\n            }\n        }\n\n        if (this.isRightClickEnabled) {\n            this.scrollSubscription = fromEvent(window, 'scroll').subscribe((event: Event) => {\n                this.overlayRef?.updatePositionStrategy(this.getContextualMenuPositionStrategy());\n            });\n        }\n\n        if (!this.isTriggerFocusableOnClose(origin)) {\n            this.origin = origin.closest('button:not([disabled])') || (this.triggerRef.nativeElement.firstChild as HTMLElement);\n\n            if (!this.origin) {\n                this.origin = origin.closest('a');\n            }\n\n            if (!this.origin) {\n                this.origin = origin;\n            }\n        }\n\n        if (!this.isOpened()) {\n            this.scrollDispatcherSubscription = this.scrollDispatcher\n                .ancestorScrolled(this.origin)\n                .pipe(takeUntil(this.destroy$))\n                .subscribe((event: CdkScrollable) => {\n                    if (!this.isVisible(this.origin, event ? event.getElementRef().nativeElement : this.document.querySelector('body'))) {\n                        this.closeDropdown();\n                    }\n                });\n\n            const positionStrategy = this.isRightClickEnabled ? this.getContextualMenuPositionStrategy() : this.getPositionStrategy();\n            const scrollStrategy = this.overlay.scrollStrategies.reposition({ scrollThrottle: 10 });\n\n            this.overlayRef = this.overlay.create({\n                hasBackdrop: false,\n                backdropClass: 'eui-dropdown__backdrop',\n                panelClass: ['eui-dropdown__panel', this.subDropdownPosition === 'right' ? 'eui-dropdown--subdropdown-position-right' : 'eui-dropdown--subdropdown-position-left'],\n                positionStrategy,\n                scrollStrategy,\n                disposeOnNavigation: true,\n            });\n            this.overlayRef.attach(this.templatePortal);\n\n            if (this.isRightClickEnabled) {\n                this.overlayRef?.updatePositionStrategy(this.getContextualMenuPositionStrategy());\n            }\n\n            this.overlayRef\n                .outsidePointerEvents()\n                .pipe(takeUntil(this.destroy$))\n                .subscribe(() => {\n                    this.closeDropdown();\n                });\n            this.overlayRef\n                .backdropClick()\n                .pipe(takeUntil(this.destroy$))\n                .subscribe(() => {\n                    this.closeDropdown();\n                });\n            this.overlayRef\n                .keydownEvents()\n                .pipe(takeUntil(this.destroy$))\n                .subscribe((keyboardEvent) => {\n                    if (keyboardEvent.key?.toLowerCase() === 'escape') {\n                        this.closeDropdown();\n                    }\n                });\n\n            if (this.hasDropdownItems) {\n                this.euiDropdownItems.toArray().forEach((euiDropdownItem, i) => {\n                    if (this.isExpandOnHover) {\n                        this.euiDropdownItemsEventSubscriptions[i] = fromEvent(\n                            euiDropdownItem.elementRef.nativeElement,\n                            'mouseenter',\n                        ).pipe(takeUntil(this.destroy$)).subscribe((e: MouseEvent) => {\n                            this.activeDescendantKeyManager.setActiveItem(euiDropdownItem);\n                            if (this.activeDescendantKeyManager.activeItem?.subDropdown) {\n                                this.activeDescendantKeyManager.activeItem?.subDropdown.setParentDropdown(this);\n                                this.activeDescendantKeyManager.activeItem?.subDropdown.overlayRef.detachBackdrop();\n                                this.keydownListenerSubscription.unsubscribe();\n                            }\n\n                            const triggerOutsidePointerEvents = (subDropdown: EuiDropdownComponent): void => {\n                                subDropdown?.overlayRef?._outsidePointerEvents.next(e);\n\n                                if (subDropdown?.hasDropdownItems) {\n                                    subDropdown.euiDropdownItems.toArray().forEach((s) => {\n                                        triggerOutsidePointerEvents(s.subDropdown);\n                                    });\n                                }\n                            };\n\n                            this.euiDropdownItems\n                                .filter((item) => !item.isFocus)\n                                .forEach((euiDropdownItemHavingSubDropdown) => {\n                                    triggerOutsidePointerEvents(euiDropdownItemHavingSubDropdown.subDropdown);\n                                });\n                        });\n                    } else {\n                        this.euiDropdownItemsEventSubscriptions[i] = fromEvent(\n                            euiDropdownItem.elementRef.nativeElement,\n                            'click',\n                        ).pipe(takeUntil(this.destroy$)).subscribe(() => {\n                            this.activeDescendantKeyManager.setActiveItem(euiDropdownItem);\n                            if (this.activeDescendantKeyManager.activeItem?.subDropdown) {\n                                this.activeDescendantKeyManager.activeItem?.subDropdown.setParentDropdown(this);\n                                this.activeDescendantKeyManager.activeItem?.subDropdown.overlayRef.detachBackdrop();\n                                this.keydownListenerSubscription.unsubscribe();\n                            }\n\n                            const labelElement = this.triggerRef.nativeElement.querySelector('button .eui-label');\n                            if (this.isLabelUpdatedFromSelectedItem && labelElement) {\n                                (labelElement as HTMLElement).innerText = euiDropdownItem.elementRef.nativeElement.innerText;\n                            }\n                        });\n                    }\n                });\n\n                this.activeDescendantKeyManager = new ActiveDescendantKeyManager(this.euiDropdownItems)\n                    .withHomeAndEnd(true)\n                    .withVerticalOrientation(true)\n                    .withWrap();\n                this.activeDescendantKeyManager.setFirstItemActive();\n            }\n\n            this.createKeyboardHandlerSubscription();\n            this.isOpened.set(true);\n            this.isDropdownOpen.emit(true);\n\n            // Announce expanded on trigger\n            if (this.triggerRef?.nativeElement.firstElementChild && this.isFocusableElement(this.triggerRef.nativeElement.firstElementChild as HTMLElement)) {\n                this._renderer?.setAttribute(this.triggerRef.nativeElement.firstElementChild as HTMLElement, 'aria-expanded', 'true');\n            } else if(this.triggerRef?.nativeElement.firstElementChild?.firstChild && this.isFocusableElement(this.triggerRef.nativeElement.firstElementChild.firstChild as HTMLElement)) {\n                this._renderer?.setAttribute(this.triggerRef.nativeElement.firstElementChild.firstChild as HTMLElement, 'aria-expanded', 'true');\n            }\n        }\n    }\n\n    /**\n     * Close a dropdown\n     *\n     * @param recursively If true, close the parent dropdown as well\n     */\n    public closeDropdown(recursively = false): void {\n        this.isOpened.set(false);\n        this.expand.emit(false);\n        this.euiDropdownItemsEventSubscriptions.forEach((euiDropdownItemsEventSubscription) => {\n            euiDropdownItemsEventSubscription.unsubscribe();\n        });\n        this.keydownListenerSubscription.unsubscribe();\n        if (this.hasDropdownItems) {\n            this.activeDescendantKeyManager?.setFirstItemActive();\n        }\n        this.scrollDispatcherSubscription.unsubscribe();\n        this.activeDescendantKeyManagerChangeSubscription.unsubscribe();\n        this.scrollSubscription.unsubscribe();\n        this.overlayRef?.dispose();\n        this.overlayRef = null;\n        this.activeDescendantKeyManager = null;\n        if (this.trapFocusAutoCapture) {\n            this.origin.focus();\n        }\n        // Update aria-expanded on the trigger\n        if (this.triggerRef?.nativeElement.firstElementChild && this.isFocusableElement(this.triggerRef.nativeElement.firstElementChild as HTMLElement)) {\n            this._renderer?.setAttribute(this.triggerRef.nativeElement.firstElementChild as HTMLElement, 'aria-expanded', 'false');\n        } else if(this.triggerRef?.nativeElement.firstElementChild?.firstChild && this.isFocusableElement(this.triggerRef.nativeElement.firstElementChild.firstChild as HTMLElement)) {\n            this._renderer?.setAttribute(this.triggerRef.nativeElement.firstElementChild.firstChild as HTMLElement, 'aria-expanded', 'false');\n        }\n        if (recursively && this.parentDropdown) {\n            this.parentDropdown.closeDropdown(true);\n        }\n\n        this.isDropdownOpen.emit(false);\n    }\n    /**\n     * Method fired when the dropdown content is changed.\n     *\n     */\n    public projectContentChanged(): void {\n        if (!this.isRightClickEnabled) {\n            this.positionStrategy = this.getPositionStrategy();\n            this.overlayRef.updatePositionStrategy(this.positionStrategy);\n        }\n    }\n    /**\n     * Handles the keyboard navigation on the menu items upon opening the dropdown.\n     *\n     */\n    public createKeyboardHandlerSubscription(): void {\n        this.keydownListenerSubscription = fromEvent(document, 'keydown').subscribe((event: KeyboardEvent) => {\n            if (this.isOpened()) {\n                if (\n                    event.code === 'Enter' &&\n                    !this.hasTabNavigation &&\n                    this.activeDescendantKeyManager?.activeItem &&\n                    !this.activeDescendantKeyManager.activeItem?.elementRef?.nativeElement?.disabled\n                ) {\n                    this.activeDescendantKeyManager.activeItem.isFocus = true;\n                    // eslint-disable-next-line\n                    this.isExpandOnHover\n                        ? this.activeDescendantKeyManager.activeItem.mouseenter()\n                        : this.activeDescendantKeyManager.activeItem.click();\n\n                    if (this.activeDescendantKeyManager?.activeItem?.subDropdown) {\n                        this.activeDescendantKeyManager.activeItem.subDropdown.setParentDropdown(this);\n                        this.keydownListenerSubscription.unsubscribe();\n                    } else {\n                        this.closeDropdown();\n                    }\n                    event.preventDefault();\n                } else if ((this.subDropdownPosition === 'right' && event.code === 'ArrowLeft') || this.subDropdownPosition === 'left' && event.code === 'ArrowRight') {\n                    if (this.parentDropdown) {\n                        this.parentDropdown.createKeyboardHandlerSubscription();\n                        this.closeDropdown();\n                    }\n                    event.preventDefault();\n                } else if ((this.subDropdownPosition === 'right' && event.code === 'ArrowRight') || (this.subDropdownPosition === 'left' && event.code === 'ArrowLeft')) {\n                    if (this.activeDescendantKeyManager?.activeItem?.subDropdown) {\n                        this.activeDescendantKeyManager.activeItem.isFocus = true;\n                        // eslint-disable-next-line\n                        this.isExpandOnHover\n                            ? this.activeDescendantKeyManager.activeItem.mouseenter()\n                            : this.activeDescendantKeyManager.activeItem.click();\n                        this.activeDescendantKeyManager.activeItem.subDropdown.setParentDropdown(this);\n                        this.keydownListenerSubscription.unsubscribe();\n                    }\n                    event.preventDefault();\n                } else if (event.code === 'Tab' && !this.hasTabNavigation) {\n                    this.closeDropdown(true);\n                } else {\n                    // Delegate to key manager and then move DOM focus to the active item (roving tabindex)\n                    const before = this.activeDescendantKeyManager?.activeItem;\n                    this.activeDescendantKeyManager?.onKeydown(event);\n                    const active = this.activeDescendantKeyManager?.activeItem;\n                    if (active && active !== before && !active.elementRef?.nativeElement?.disabled) {\n                        // Update roving tabindex and move focus so that screen readers announce it\n                        active.isFocus = true;\n                        active.focus?.({ preventScroll: true });\n                    }\n                    // Prevent default arrow key behavior when navigating within the menu\n                    if (['ArrowUp','ArrowDown','ArrowLeft','ArrowRight','Home','End'].includes(event.code)) {\n                        event.preventDefault();\n                    }\n                }\n\n                this.cd.markForCheck();\n            }\n        });\n    }\n    /**\n     * Sets the parent dropdown for a sub-dropdown.\n     *\n     * @param parentDropdown Parent dropdown component\n     */\n    public setParentDropdown(parentDropdown: EuiDropdownComponent): void {\n        this.parentDropdown = parentDropdown;\n        this.position = this.subDropdownPosition;\n\n        this.setPosition();\n\n        const positionStrategy = this.getPositionStrategy();\n        this.overlayRef.updatePositionStrategy(positionStrategy);\n    }\n\n    /**\n     * Checks the existence of focusable elements\n     * @param origin The element to check\n     */\n    private isFocusableElement(origin: unknown): boolean {\n        if (!(origin instanceof Element)) {\n            return false;\n        }\n        return (\n            (origin as Element).matches('button') ||\n            (origin as Element).matches('a') ||\n            (origin as Element).matches('input') ||\n            (origin as Element).matches('select') ||\n            (origin as Element).matches('textarea') ||\n            (origin as Element).matches('[tabindex]:not([tabindex=\"-1\"])')\n        );\n    }\n    /**\n     * Method that returns the dropdown items.\n     *\n     * @type {boolean}\n     */\n    private get hasDropdownItems(): boolean {\n        return this.euiDropdownItems?.length > 0;\n    }\n    /**\n     * Method that returns the strategy for the overlay position.\n     *\n     * @type {FlexibleConnectedPositionStrategy}\n     */\n    private getPositionStrategy(): FlexibleConnectedPositionStrategy {\n        return this.overlay\n            .position()\n            .flexibleConnectedTo(this.origin as FlexibleConnectedPositionStrategyOrigin)\n            .withPositions([\n                new ConnectionPositionPair(\n                    { originX: this.originX, originY: this.originY },\n                    { overlayX: this.overlayX, overlayY: this.overlayY },\n                ),\n            ])\n            .withFlexibleDimensions(false)\n            .withLockedPosition(true);\n    }\n    /**\n     * Method that returns the strategy for the contextual menu position.\n     *\n     * @type {GlobalPositionStrategy}\n     */\n    private getContextualMenuPositionStrategy(): GlobalPositionStrategy {\n        if(isPlatformServer(this.platformId)) {\n            throw new Error('getContextualMenuPositionStrategy is not supported on the server');\n        }\n        const panelHeight = this.overlayRef?.overlayElement.clientHeight || 0;\n        const scrollX = window.scrollX || window.pageXOffset;\n        const scrollY = window.scrollY || window.pageYOffset;\n        const newX = this.mousePositionX + (this.initialScrollX - scrollX);\n        const newY = this.mousePositionY + (this.initialScrollY - scrollY);\n        const menuBottomPosition = newY + panelHeight;\n        const isMenuBelowWindowBottom = menuBottomPosition > window.innerHeight;\n\n        const positionStrategy = this.overlay\n            .position()\n            .global()\n            .left(newX + 'px');\n\n        if (isMenuBelowWindowBottom) {\n            positionStrategy.bottom(window.innerHeight - newY + 'px');\n        } else {\n            positionStrategy.top(newY + 'px');\n        }\n\n        return positionStrategy;\n    }\n    /**\n     * Method that checks if the dropdown is visible.\n     *\n     * @param origin Origin of the dropdown position\n     * @param scrollableParent Scrollable parent element\n     * @type {boolean}\n     */\n    private isVisible(origin: HTMLElement, scrollableParent: HTMLElement): boolean {\n        const originY = origin.getBoundingClientRect().y;\n        const scrollableParentY = Math.abs(scrollableParent.getBoundingClientRect().y);\n        const scrollableParentHeight = scrollableParent.getBoundingClientRect().height - 50;\n\n        return (\n            (originY > 0 && originY < scrollableParentHeight) ||\n            (originY - scrollableParentY > 0 && originY < scrollableParentY + scrollableParentHeight)\n        );\n    }\n    /**\n     * Method that checks if the trigger is focusable upon closing the dropdown panel.\n     *\n     * @param origin Origin html element\n     * @type {boolean}\n     */\n    private isTriggerFocusableOnClose(origin: HTMLElement): boolean {\n        return origin.matches('button:not([disabled])') || origin.matches('a');\n    }\n    /**\n     * Method that sets the position of the dropdown panel.\n     *\n     */\n    private setPosition(): void {\n        if (this.position === 'top') {\n            this.originY = 'top';\n            this.overlayY = 'bottom';\n\n            if (this.isDropDownRightAligned) {\n                this.originX = 'end';\n                this.overlayX = 'end';\n            }\n        }\n        if (this.position === 'right') {\n            this.originX = 'end';\n            this.overlayX = 'start';\n            this.overlayY = 'center';\n        }\n        if (this.position === 'bottom') {\n            this.originY = 'bottom';\n            this.overlayY = 'top';\n\n            if (this.isDropDownRightAligned) {\n                this.originX = 'end';\n                this.overlayX = 'end';\n            }\n        }\n        if (this.position === 'left') {\n            this.originX = 'start';\n            this.overlayX = 'end';\n            this.overlayY = 'center';\n        }\n    }\n}\n","<div #triggerRef class=\"eui-dropdown__trigger-container\"\n    (click)=\"!isRightClickEnabled ? onTriggerClicked($event) : null\"\n    (contextmenu)=\"isRightClickEnabled ? onTriggerRightClicked($event) : null\">\n    <ng-content></ng-content>\n</div>\n\n<ng-template #templatePortalContent>\n    <div\n        attr.data-e2e=\"{{ e2eAttr }}\"\n        [@openClose]=\"isOpened() ? 'open' : 'closed'\"\n        cdkTrapFocus\n        [cdkTrapFocusAutoCapture]=\"trapFocusAutoCapture\"\n        role=\"menu\"\n        aria-orientation=\"vertical\"\n        aria-label=\"eUI dropdown panel\"\n        class=\"eui-dropdown__panel-container eui-21\"\n        [style.max-height]=\"height\"\n        [style.width]=\"width\"\n        [tabindex]=\"tabIndex\"\n        (click)=\"onClick()\"\n        (cdkObserveContent)=\"projectContentChanged()\">\n        <ng-content select=\"eui-dropdown-content\"></ng-content>\n    </div>\n</ng-template>\n","import { Directive, HostBinding } from '@angular/core';\n\n/**\n * @description\n * Structural directive that marks the content area of an `eui-dropdown` component.\n * Applies semantic role and styling to the dropdown panel container.\n * Must be used as a direct child of `eui-dropdown` to define the menu content that appears in the overlay.\n * Automatically applies ARIA menu role for accessibility compliance.\n */\n// eslint-disable-next-line @angular-eslint/directive-selector\n@Directive({ selector: 'eui-dropdown-content' })\nexport class EuiDropdownContentDirective {\n    @HostBinding('attr.role') role = 'menu';\n    @HostBinding('class') c = 'eui-dropdown-content';\n}\n","import { EuiDropdownComponent } from './eui-dropdown.component';\nimport { EuiDropdownItemComponent } from './dropdown-item/eui-dropdown-item.component';\nimport { EuiDropdownContentDirective } from './directives/eui-dropdown-content.directive';\n\nexport const EUI_DROPDOWN = [\n    EuiDropdownComponent,\n    EuiDropdownItemComponent,\n    EuiDropdownContentDirective,\n] as const;\nexport * from './dropdown-item/eui-dropdown-item.component';\nexport * from './directives/eui-dropdown-content.directive';\nexport * from './eui-dropdown.component';\nexport * from './eui-dropdown.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}