{"version":3,"file":"eui-components-eui-list.mjs","sources":["../../eui-list/eui-list.component.ts","../../eui-list/eui-list-item/eui-list-item.component.ts","../../eui-list/eui-list-item/eui-list-item.component.html","../../eui-list/index.ts","../../eui-list/eui-components-eui-list.ts"],"sourcesContent":["import {\n    Component,\n    HostBinding,\n    ChangeDetectionStrategy,\n    AfterContentInit,\n    ContentChildren,\n    forwardRef,\n    QueryList,\n    HostListener,\n} from '@angular/core';\nimport { FocusKeyManager } from '@angular/cdk/a11y';\n\nimport { EuiListItemComponent } from './eui-list-item/eui-list-item.component';\nimport { EuiArrowKeyNavigableDirective } from '@eui/components/directives';\n\n/**\n * @description\n * Component that provides a navigable list implementation with keyboard interaction support.\n * Works with Angular CDK's FocusKeyManager to enable keyboard navigation between list items.\n *\n * The component automatically manages focus between nested lists and supports rich content\n * navigation. It can contain multiple EuiListItemComponents as children.\n *\n * @usageNotes\n * ### Basic Usage\n * ```html\n * <ul euiList>\n *   <li euiListItem>First item</li>\n *   <li euiListItem>Second item</li>\n *   <li euiListItem>Third item</li>\n * </ul>\n * ```\n *\n * ### With Nested Lists\n * ```html\n * <ul euiList>\n *   <li euiListItem>\n *     Parent item\n *     <ul euiList>\n *       <li euiListItem>Child item</li>\n *     </ul>\n *   </li>\n * </ul>\n * ```\n *\n * ### Accessibility\n * - Uses semantic `list` role\n * - Keyboard navigation with Arrow keys\n * - Enter key activates items\n * - Focus management for nested lists\n *\n * ### Notes\n * - Can be used as attribute `[euiList]` or element `<eui-list>`\n * - Supports nested list structures\n * - Automatically manages tabindex for keyboard navigation\n */\n@Component({\n    selector: '[euiList], eui-list',\n    template: '<ng-content/>',\n    styleUrl: './eui-list.scss',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class EuiListComponent implements AfterContentInit {\n    /**\n     * CSS class binding that applies the 'eui-list' class to the host element.\n     * This class applies the basic styling for the list component.\n     *\n     * @returns {string} The CSS class to be applied to the host element\n     */\n    @HostBinding('class')\n    get cssClasses(): string {\n        return 'eui-list';\n    }\n\n    /**\n     * Binds the 'list' ARIA role to the host element for accessibility.\n     * This informs screen readers that this component functions as a list.\n     */\n    @HostBinding('attr.role') role = 'list';\n    /**\n     * Binds the tabIndex attribute to the host element.\n     * Controls whether the list can receive keyboard focus.\n     * Set to '0' for top-level lists and '-1' for nested lists.\n     */\n    @HostBinding('attr.tabindex') tabIndex: string;\n    /**\n     * Collection of all list item components that are children of this list.\n     * Includes items from nested lists due to the 'descendants: true' option.\n     */\n    @ContentChildren(forwardRef(() => EuiListItemComponent), { descendants: true }) items: QueryList<EuiListItemComponent>;\n    private focusKeyManager: FocusKeyManager<EuiListItemComponent>;\n\n    /**\n     * Handles keyboard events for navigating the list.\n     * Supports Enter key for selection and arrow keys for navigation.\n     *\n     * @param {KeyboardEvent} event - The keyboard event to handle\n     */\n    @HostListener('keydown', ['$event'])\n    onKeydown(event: KeyboardEvent): void {\n        switch (event.key) {\n            case 'Enter': {\n                if (this.focusKeyManager?.activeItem) {\n                    this.focusKeyManager.activeItem.click();\n                }\n                break;\n            }\n            case 'ArrowRight':\n            case 'ArrowLeft': {\n                event.stopPropagation();\n                const activeItem = this.items.find(item =>\n                    item.elementRef.nativeElement.contains(document.activeElement),\n                );\n                if (activeItem?.euiArrowKeyNavigableDirectives?.length) {\n                    event.preventDefault();\n                    // Queries the DOM for all [euiList] or eui-list elements inside the active <li>\n                    const nestedListEls = Array.from<Element>(activeItem.elementRef.nativeElement.querySelectorAll('[euiList],[eui-list]'));\n                    // navigable directives that are direct content of this list item, not belonging to any nested list.\n                    const directNavigables = activeItem.euiArrowKeyNavigableDirectives\n                        .filter(d => !nestedListEls.some(nl => nl.contains(d.elementRef.nativeElement)));\n                    if (!directNavigables.length) { \n                        break; \n                    }\n                    const activeIndex = directNavigables\n                        .findIndex(d => d.elementRef.nativeElement.contains(document.activeElement));\n                    this.focusKeyManager.setActiveItem(activeItem);\n                    this.checkRichContentFocusState(event.key as 'ArrowRight' | 'ArrowLeft', activeIndex, directNavigables);\n                }\n                break;\n            }\n            default: {\n                this.focusKeyManager.onKeydown(event);\n                break;\n            }\n        }\n    }\n\n    /**\n     * Initializes the component after content (list items) has been initialized.\n     * Sets up the FocusKeyManager for keyboard navigation and configures tabindex\n     * attributes based on nested list structure.\n     */\n    ngAfterContentInit(): void {\n        // instantiates FocusKeyManager with the query list of items enabling wrapping\n        this.focusKeyManager = new FocusKeyManager(this.items).withWrap();\n\n        // checks whether an item contains a sub-menu and if so it sets it's ul element tabindex to -1\n        this.items.forEach((item) => {\n            if (item.euiListComponent.length > 0) {\n                item.euiListComponent.forEach((list) => (list.tabIndex = '-1'));\n            } else {\n                this.tabIndex = '0';\n            }\n        });\n    }\n\n    /**\n     * Manages focus state of rich content navigation within list items.\n     * Handles the focus transition between list item elements and their navigable content.\n     * Called when right/left arrow keys are pressed on items with navigable content.\n     * Cycles through all navigable elements before returning focus to the list item.\n     */\n    checkRichContentFocusState(direction: 'ArrowRight' | 'ArrowLeft', activeIndex: number, navigables: EuiArrowKeyNavigableDirective[]): void {\n        if (direction === 'ArrowRight') {\n            const nextIndex = activeIndex + 1;\n            // eslint-disable-next-line\n            nextIndex < navigables.length ?\n                navigables[nextIndex].elementRef.nativeElement.focus() :\n                this.focusKeyManager.activeItem.focus();\n        } else {\n            // eslint-disable-next-line\n            activeIndex <= 0 ?\n                (activeIndex === -1 ? navigables[navigables.length - 1].elementRef.nativeElement.focus() : this.focusKeyManager.activeItem.focus()) :\n                navigables[activeIndex - 1].elementRef.nativeElement.focus();\n        }\n    }\n}\n","import {\n    Component,\n    HostBinding,\n    ContentChildren,\n    forwardRef,\n    QueryList,\n    Input,\n    ElementRef,\n    booleanAttribute,\n    inject,\n} from '@angular/core';\nimport { Highlightable, FocusableOption } from '@angular/cdk/a11y';\n\nimport { BaseStatesDirective } from '@eui/components/shared';\nimport { EuiListComponent } from '../eui-list.component';\nimport { EuiIconSvgComponent } from '@eui/components/eui-icon';\nimport { EuiLabelComponent } from '@eui/components/eui-label';\nimport { EuiTemplateDirective, EuiArrowKeyNavigableDirective } from '@eui/components/directives';\n\n/**\n * @description\n * Component that represents a single item within an EuiList.\n * Implements FocusableOption and Highlightable for keyboard navigation and accessibility.\n *\n * This component is designed to work with the EuiListComponent as part of a navigable list.\n * It supports various display states through the BaseStatesDirective, and can contain\n * nested list components, icons, labels, and custom templates.\n *\n * @usageNotes\n * ### Basic Usage\n * ```html\n * <ul euiList>\n *   <li euiListItem>Simple list item</li>\n *   <li euiListItem [isActive]=\"true\">Active item</li>\n *   <li euiListItem euiPrimary>Primary styled item</li>\n * </ul>\n * ```\n *\n * ### With Icon and Label\n * ```html\n * <li euiListItem>\n *   <eui-icon icon=\"eui-home\"></eui-icon>\n *   <label euiLabel>Home</label>\n * </li>\n * ```\n *\n * ### Accessibility\n * - Uses semantic `listitem` role\n * - Keyboard focusable with proper tabindex management\n * - Active state is visually and programmatically indicated\n * - Supports arrow key navigation for rich content\n *\n * ### Notes\n * - Can be used as attribute `[euiListItem]` or element `<eui-list-item>`\n * - Supports variant styling via BaseStatesDirective\n * - Active state managed by parent list's FocusKeyManager\n */\n@Component({\n    templateUrl: './eui-list-item.component.html',\n    selector: '[euiListItem], eui-list-item',\n    styleUrl: './eui-list-item.scss',\n    hostDirectives: [\n        {\n            directive: BaseStatesDirective,\n            inputs: [\n                'euiPrimary',\n                'euiSecondary',\n                'euiSuccess',\n                'euiInfo',\n                'euiWarning',\n                'euiDanger',\n                'euiVariant',\n            ],\n        },\n    ],\n})\nexport class EuiListItemComponent implements FocusableOption, Highlightable {\n    @HostBinding('class')\n    get cssClasses(): string {\n        return [\n            this.baseStatesDirective.getCssClasses('eui-list-item'),\n            this.isActive ? 'eui-list-item--active' : '',\n        ].join(' ').trim();\n    }\n\n    @HostBinding('attr.role') role = 'listitem';\n    @HostBinding('attr.data-e2e') @Input() e2eAttr = 'eui-list-item';\n    @HostBinding('attr.tabindex') tabindex = '-1';\n\n    @ContentChildren(forwardRef(() => EuiListComponent), { descendants: true }) euiListComponent: QueryList<EuiListComponent>;\n    @ContentChildren(forwardRef(() => EuiIconSvgComponent), { descendants: true }) euiIconSvgComponent: QueryList<EuiIconSvgComponent>;\n    @ContentChildren(forwardRef(() => EuiLabelComponent), { descendants: true }) euiLabelComponent: QueryList<EuiLabelComponent>;\n    @ContentChildren(forwardRef(() => EuiTemplateDirective), { descendants: true }) templates: QueryList<EuiTemplateDirective>;\n    @ContentChildren(forwardRef(() => EuiArrowKeyNavigableDirective), { descendants: true }) euiArrowKeyNavigableDirectives: QueryList<EuiArrowKeyNavigableDirective>;\n\n    @Input({ transform: booleanAttribute }) isActive = false;\n    baseStatesDirective = inject(BaseStatesDirective);\n    elementRef = inject(ElementRef);\n\n    /**\n     * Sets focus on the list item element.\n     * Used by the FocusKeyManager to handle keyboard navigation within the list.\n     */\n    public focus(): void {\n        this.elementRef.nativeElement.focus();\n    }\n\n    /**\n     * Programmatically triggers a click event on the list item element.\n     * Typically, invoked when the user presses Enter while the item is focused.\n     */\n    // TODO: make it protected\n    public click(): void {\n        this.elementRef.nativeElement.click();\n    }\n\n    /**\n     * Applies active styling to the list item.\n     * Called by the FocusKeyManager when this item becomes the active item in the list.\n     * Sets the isActive flag to true, which adds the 'eui-list-item--active' CSS class.\n     */\n    public setActiveStyles(): void {\n        this.isActive = true;\n    }\n\n    /**\n     * Removes active styling from the list item.\n     * Called by the FocusKeyManager when another item becomes the active item.\n     * Sets the isActive flag to false, removing the 'eui-list-item--active' CSS class.\n     */\n    public setInactiveStyles(): void {\n        this.isActive = false;\n    }\n}\n","<div class=\"eui-list-item__container\" [class.eui-list-item--has-submenu]=\"euiListComponent.length > 0\">\n    <div class=\"eui-list-item__content\">\n        @if (euiIconSvgComponent.length > 0) {\n            <div class=\"eui-list-item__content-icon\">\n                <ng-content select=\"eui-icon-svg, span[euiIconSvg]\"></ng-content>\n            </div>\n        }\n        @if (euiLabelComponent.length > 0) {\n            <div class=\"eui-list-item__content-text\">\n                <ng-content select=\"[eui-label], [euiLabel]\"></ng-content>\n            </div>\n        }\n        <ng-content></ng-content>\n    </div>\n\n    @if ((euiListComponent.length > 0) || (euiListComponent.length > 0)) {\n        <div class=\"eui-list-item__sub-list\">\n            <ng-content select=\"[eui-list], [euiList]\"></ng-content>\n        </div>\n    }\n</div>\n","import { EuiListItemComponent } from './eui-list-item/eui-list-item.component';\nimport { EuiListComponent } from './eui-list.component';\n\nexport * from './eui-list.component';\nexport * from './eui-list-item/eui-list-item.component';\n\nexport const EUI_LIST = [\n    EuiListComponent,\n    EuiListItemComponent,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}