import * as i0 from '@angular/core';
import { Injectable, EventEmitter, inject, ChangeDetectorRef, ElementRef, numberAttribute, booleanAttribute, ViewChildren, ViewChild, forwardRef, ContentChildren, HostBinding, Output, Input, ChangeDetectionStrategy, Component, Directive, NgModule } from '@angular/core';
import * as i4 from '@eui/components/eui-chip';
import { EuiChipTooltip, EuiChip, EuiChipComponent, EUI_CHIP } from '@eui/components/eui-chip';
import * as i5 from '@eui/components/eui-button';
import { EUI_BUTTON } from '@eui/components/eui-button';
import * as i6 from '@eui/components/eui-icon';
import { EUI_ICON } from '@eui/components/eui-icon';
import { EuiTruncatePipe } from '@eui/components/pipes';
import { EuiTooltipDirective } from '@eui/components/directives';
import * as i1 from '@eui/components/shared';
import { BaseStatesDirective } from '@eui/components/shared';
import { NgTemplateOutlet } from '@angular/common';
import * as i3 from '@ngx-translate/core';
import { TranslateModule } from '@ngx-translate/core';
import { DomSanitizer } from '@angular/platform-browser';
import { BehaviorSubject, Subject, startWith, takeUntil } from 'rxjs';
import * as i2 from '@angular/cdk/drag-drop';
import { moveItemInArray, transferArrayItem, DragDropModule, CdkDropList } from '@angular/cdk/drag-drop';

/**
 * @description
 * Service used internally by `eui-chip-list` for the drag and drop feature.
 */
class EuiChipListDragService {
    constructor() {
        this.componentConnector = [];
        this.droppableArea = [];
        this.removedFromDroppable = new BehaviorSubject(null);
    }
    /**
     * Creates a source with a name provided in chip-list component
     *
     * @param sourceName Name of the source
     */
    setComponentConnector(sourceName) {
        if (!this.componentConnector[sourceName]) {
            this.componentConnector[sourceName] = [];
        }
    }
    /**
     * Creates an area in which the chips can be dropped.
     *
     * @param componentRef Reference to the area.
     * @param sourceNames Possible source that can be dropped.
     */
    setDroppableArea(componentRef, sourceNames) {
        sourceNames.forEach((sourceName) => {
            if (!this.droppableArea[sourceName]) {
                this.droppableArea[sourceName] = [];
            }
            this.droppableArea[sourceName].push(componentRef);
            if (!this.componentConnector[sourceName]) {
                this.setComponentConnector(sourceName);
            }
            this.componentConnector[sourceName].push(componentRef);
        });
    }
    // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html
    // eslint-disable-next-line @typescript-eslint/no-explicit-any
    removeFromDroppable(item) {
        this.removedFromDroppable.next(item);
    }
    /**
     * Reset the service when `OnDestroy` hook of the component is called.
     */
    resetConnector() {
        this.componentConnector = [];
        this.droppableArea = [];
    }
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: EuiChipListDragService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
    static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: EuiChipListDragService, providedIn: 'root' }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: EuiChipListDragService, decorators: [{
            type: Injectable,
            args: [{ providedIn: 'root' }]
        }] });

/**
 * @description
 * Multiple eui-chips displayed dynamically as a group of multiple interactive elements.
 */
class EuiChipListComponent {
    constructor() {
        /**
         * In combination with `maxVisibleChipsCount`, sets the label of the 'more chips' button, if not provided an arrow right icon will be displayed only.
         *
         * @type {string}
         *
         * @deprecated This option has been removed in version 21.
         * It must now be implemented at the application level.
         * For more information, see: [EUI Showcase](https://eui.ecdevops.eu/eui-showcase-ux-components-21.x/style-guide/components/eui-chip-list)
         */
        this.toggleLinkMoreLabel = null;
        /**
         * In combination with `maxVisibleChipsCount`, sets the label of the 'less chips' button, if not provided an arrow left icon will be displayed only.
         *
         * @type {string}
         *
         * @deprecated This option has been removed in version 21.
         * It must now be implemented at the application level.
         * For more information, see: [EUI Showcase](https://eui.ecdevops.eu/eui-showcase-ux-components-21.x/style-guide/components/eui-chip-list)
         */
        this.toggleLinkLessLabel = null;
        /**
         * In combination with `isChipsSorted`. Sets the sort criteria of the chips.
         *
         * @type {('ASC' | 'DESC')}
         * @default 'ASC'
         *
         * @deprecated This option has been removed in version 21.
         * It must now be implemented at the application level.
         * For more information, see: [EUI Showcase](https://eui.ecdevops.eu/eui-showcase-ux-components-21.x/style-guide/components/eui-chip-list)
         */
        this.chipsSortOrder = 'ASC';
        /**
         * In combination with `isChipsDragAndDrop`, sets the name to the chips source with which a drag and drop will be done.
         *
         * @type {string}
         *
         * @deprecated This option has been removed in version 21.
         * It must now be implemented at the application level.
         * For more information, see: [EUI Showcase](https://eui.ecdevops.eu/eui-showcase-ux-components-21.x/style-guide/components/eui-chip-list)
         */
        this.dragAndDropConnectedTo = [];
        /**
         * Sets the `aria-label` attribute for the host element.
         *
         * @default 'eUI Chip List'
         *
         * @deprecated This option has been removed in version 21.
         * It must now be implemented at the application level.
         * For more information, see: [EUI Showcase](https://eui.ecdevops.eu/eui-showcase-ux-components-21.x/style-guide/components/eui-chip-list)
         */
        this.ariaLabel = 'eUI Chip List';
        /**
         * In combination with `isChipsDragAndDrop`, sets the orientation of the list.
         *
         * @type {string} 'horizontal' | 'vertical'
         * @default 'horizontal'
         *
         * @deprecated This option has been removed in version 21.
         * It must now be implemented at the application level.
         * For more information, see: [EUI Showcase](https://eui.ecdevops.eu/eui-showcase-ux-components-21.x/style-guide/components/eui-chip-list)
         */
        this.dropListOrientation = 'horizontal';
        /**
         * @deprecated This option is not applicable anymore to comply Design System.
         */
        this.isSquared = false;
        /**
         * Whether the chip can be removed from the list.
         *
         * @default false
         *
         * @deprecated This option has been removed in version 21.
         * It must now be implemented at the application level.
         * For more information, see: [EUI Showcase](https://eui.ecdevops.eu/eui-showcase-ux-components-21.x/style-guide/components/eui-chip-list)
         */
        this.isChipsRemovable = false;
        /**
         * In combination with `maxVisibleChipsCount`. Whether all chips are shown by default.
         *
         * @default false
         *
         * @deprecated This option has been removed in version 21.
         * It must now be implemented at the application level.
         * For more information, see: [EUI Showcase](https://eui.ecdevops.eu/eui-showcase-ux-components-21.x/style-guide/components/eui-chip-list)
         */
        this.isMaxVisibleChipsOpened = false;
        /**
         * Whether this chips are sorted on their label.
         *
         * @default false
         *
         * @deprecated This option has been removed in version 21.
         * It must now be implemented at the application level.
         * For more information, see: [EUI Showcase](https://eui.ecdevops.eu/eui-showcase-ux-components-21.x/style-guide/components/eui-chip-list)
         */
        this.isChipsSorted = false;
        /**
         * Whether the chips can be drag and dropped.
         *
         * @default false
         *
         * @deprecated This option has been removed in version 21.
         * It must now be implemented at the application level.
         * For more information, see: [EUI Showcase](https://eui.ecdevops.eu/eui-showcase-ux-components-21.x/style-guide/components/eui-chip-list)
         */
        this.isChipsDragAndDrop = false;
        /**
         * In combination with `isChipsDragAndDrop`. Whether the chips are drag and droppable in a flex container.
         *
         * @default false
         *
         * @deprecated This option has been removed in version 21.
         * It must now be implemented at the application level.
         * For more information, see: [EUI Showcase](https://eui.ecdevops.eu/eui-showcase-ux-components-21.x/style-guide/components/eui-chip-list)
         */
        this.isGrid = false;
        /**
         * Whether a limited amount, defined by this option, is used to display the chips.
         *
         * @deprecated This option has been removed in version 21.
         * It must now be implemented at the application level.
         * For more information, see: [EUI Showcase](https://eui.ecdevops.eu/eui-showcase-ux-components-21.x/style-guide/components/eui-chip-list)
         */
        this.maxVisibleChipsCount = null;
        /**
         * Whether the chips label length are limited by the value of this option.
         *
         * @deprecated This option has been removed in version 21.
         * It must now be implemented at the application level.
         * For more information, see: [EUI Showcase](https://eui.ecdevops.eu/eui-showcase-ux-components-21.x/style-guide/components/eui-chip-list)
         */
        this.chipsLabelTruncateCount = null;
        /**
         * Event emitted with `CdkDropList` object when the chiplist is initiated.
         *
         * @deprecated This event has been removed in version 21.
         * It must now be implemented at the application level.
         * For more information, see: [EUI Showcase](https://eui.ecdevops.eu/eui-showcase-ux-components-21.x/style-guide/components/eui-chip-list)
         */
        this.chipsInit = new EventEmitter();
        /**
         * Event emitted when a chip is removed from the list.
         *
         * @deprecated This event has been removed in version 21.
         * It must now be implemented at the application level.
         * For more information, see: [EUI Showcase](https://eui.ecdevops.eu/eui-showcase-ux-components-21.x/style-guide/components/eui-chip-list)
         */
        this.chipRemove = new EventEmitter();
        /**
         * Event emitted when a chip drag starts.
         *
         * @deprecated This event has been removed in version 21.
         * It must now be implemented at the application level.
         * For more information, see: [EUI Showcase](https://eui.ecdevops.eu/eui-showcase-ux-components-21.x/style-guide/components/eui-chip-list)
         */
        this.chipDragStart = new EventEmitter();
        /**
         * Event emitted when a chip drag is released.
         *
         * @deprecated This event has been removed in version 21.
         * It must now be implemented at the application level.
         * For more information, see: [EUI Showcase](https://eui.ecdevops.eu/eui-showcase-ux-components-21.x/style-guide/components/eui-chip-list)
         */
        this.chipDragRelease = new EventEmitter();
        /**
         * Event emitted when a chip drag is released.
         *
         * @deprecated This event has been removed in version 21.
         * It must now be implemented at the application level.
         * For more information, see: [EUI Showcase](https://eui.ecdevops.eu/eui-showcase-ux-components-21.x/style-guide/components/eui-chip-list)
         */
        this.chipDrop = new EventEmitter();
        /**
         * Event emitted when the list gets the focus.
         *
         * @deprecated This event has been removed in version 21.
         * It must now be implemented at the application level.
         * For more information, see: [EUI Showcase](https://eui.ecdevops.eu/eui-showcase-ux-components-21.x/style-guide/components/eui-chip-list)
         */
        this.chiplistFocus = new EventEmitter();
        this.connectComponent = [];
        this.e2eAttr = 'eui-chip-list';
        this.destroy$ = new Subject();
        this.cd = inject(ChangeDetectorRef);
        this.euiChipListDragService = inject(EuiChipListDragService);
        this.domSanitizer = inject(DomSanitizer);
        this.baseStatesDirective = inject(BaseStatesDirective);
    }
    /**
     * @description
     * Computes and returns the CSS classes for the label title component based on its current state.
     *
     * @returns {string} Space-separated string of CSS class names
     */
    get cssClasses() {
        return [
            this.baseStatesDirective.getCssClasses('eui-chip-list'),
            this.isChipsDragAndDrop ? 'eui-chip-list--drag-drop' : '',
        ]
            .join(' ')
            .trim();
    }
    ngOnChanges(c) {
        if (c.chips && this.isChipsSorted) {
            this.chips = this.orderItems(this.chips, this.chipsSortOrder);
        }
    }
    ngOnInit() {
        this.chips = this.chips?.map((chip) => ({
            ...chip,
            tooltip: new EuiChipTooltip(chip.tooltip),
        }));
    }
    ngAfterContentInit() {
        this.chips = this.chips?.map((chip) => ({
            ...chip,
            tooltip: new EuiChipTooltip(chip.tooltip),
        }));
    }
    ngAfterViewInit() {
        this.chipsInit.emit(this.chipListDragAndDropItems);
        if (this.isChipsSorted && this.chips) {
            this.chips = this.orderItems(this.chips, this.chipsSortOrder);
        }
        if (this.dragAndDropSourceName) {
            this.euiChipListDragService.setComponentConnector(this.dragAndDropSourceName);
        }
        if (this.dragAndDropConnectedTo) {
            this.euiChipListDragService.setDroppableArea(this.chipListDropList, this.dragAndDropConnectedTo);
            this.dragAndDropConnectedTo.forEach((connectTo) => {
                this.connectComponent = this.euiChipListDragService.componentConnector[connectTo];
            });
        }
        setTimeout(() => {
            this.droppableArea = this.euiChipListDragService.droppableArea[this.dragAndDropSourceName];
            this.cd.detectChanges();
        });
        Object.keys(this.euiChipListDragService.componentConnector).map((connectTo) => {
            this.euiChipListDragService.componentConnector[connectTo].push(this.chipListDragAndDropItems);
        });
        this.euiChipsContent.changes.pipe(startWith(true), takeUntil(this.destroy$)).subscribe(() => {
            if (this.euiChipsContent.toArray().length > 0) {
                this.chips = this.euiChipsContent.toArray().map((chip) => Object.assign(chip, { euiInternalId: this.generateId() }));
                if (this.isChipsSorted) {
                    this.chips = this.orderItems(this.chips, this.chipsSortOrder);
                }
                this.cd.detectChanges();
            }
        });
    }
    ngOnDestroy() {
        this.euiChipListDragService.resetConnector();
        this.destroy$.next(true);
        this.destroy$.unsubscribe();
    }
    /**
     * Method toggling the display of the chips in combination with `maxVisibleChipsCount`.
     *
     * @deprecated This method has been removed in version 21.
     * It must now be implemented at the application level.
     * For more information, see: [EUI Showcase](https://eui.ecdevops.eu/eui-showcase-ux-components-21.x/style-guide/components/eui-chip-list)
     */
    toggleTags() {
        this.isMaxVisibleChipsOpened = !this.isMaxVisibleChipsOpened;
    }
    // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html
    // eslint-disable-next-line @typescript-eslint/no-explicit-any
    getChipContent(euiChip) {
        return euiChip.chipLabel ? this.domSanitizer.bypassSecurityTrustHtml(euiChip.chipLabel.nativeElement.innerHTML) : euiChip.label;
    }
    // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html
    // eslint-disable-next-line @typescript-eslint/no-explicit-any
    getChipLabel(euiChip) {
        return euiChip.chipLabel ? euiChip.chipLabel.nativeElement.textContent : euiChip.label;
    }
    /**
     * Method that returns a boolean indicating if an icon has been declared before the label.
     *
     * @param euiChip Chip to check.
     * @returns `true` if an icon has been declared otherwise `false`.
     */
    // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html
    // eslint-disable-next-line @typescript-eslint/no-explicit-any
    getChipIconBefore(euiChip) {
        return euiChip.iconBefore;
    }
    /**
     * Method that returns a boolean indicating of an icon has been declared after the label.
     *
     * @param euiChip Chip to check.
     * @returns `true` if an icon has been declared otherwise `false`.
     */
    // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html
    // eslint-disable-next-line @typescript-eslint/no-explicit-any
    getChipIconAfter(euiChip) {
        return euiChip.iconAfter;
    }
    /**
     * Remove chip from the list handler
     *
     * @param removed Chip that is removed
     */
    // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html
    // eslint-disable-next-line @typescript-eslint/no-explicit-any
    onRemove(removed) {
        const chips = this.euiChipsContent.toArray().length > 0 ? this.chips.map((c) => c.data) : this.chips;
        const removedChip = removed;
        let index = removedChip instanceof EuiChip ? chips.indexOf(removedChip) : chips.indexOf(removedChip.chip);
        if (index === -1 && removed.id) {
            index = chips.map((chip) => chip.id).indexOf(removed.id);
        }
        this.chips.splice(index, 1);
        this.chipRemove.emit({
            chips: this.euiChipsContent.toArray().length > 0 ? this.chips.map((c) => c.data) : this.chips,
            removed: removedChip,
        });
    }
    /**
     * Drag and Drop chip handler used when a chip is moved to another container.
     *
     * @param event `CdkDragEnter` object used to move the chip in a list.
     */
    onDragEnter(event) {
        const dropList = event.container;
        const phContainer = dropList.element.nativeElement;
        const phElement = phContainer.querySelector('.cdk-drag-placeholder');
        phContainer.parentElement.insertBefore(phElement, phContainer);
        moveItemInArray(this.chips, event.item.data.index, event.container.data.index);
    }
    /**
     * Method called when a chip is dropped.
     *
     * @param event `CdkDragDrop` object used to move the chip in a list.
     */
    onDropGrid(e) {
        this.chipDrop.emit({
            type: 'dropped',
            sourceName: this.dragAndDropSourceName,
            chip: e.item.data.chip,
            chips: this.chips,
        });
    }
    /**
     * Drag and Drop chip handler used when a chip is moved inside a container.
     *
     * @param e `CdkDragDrop` object used to move the chip in a list.
     */
    // eslint-disable-next-line @typescript-eslint/no-explicit-any
    drop(e) {
        if (e.previousContainer === e.container) {
            moveItemInArray(e.container.data['chips'], e.previousIndex, e.currentIndex);
        }
        else {
            transferArrayItem(e.previousContainer.data['chips'], e.container.data['chips'], e.previousContainer.data['chips'].indexOf(e.item.data), e.currentIndex);
            // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html
            // eslint-disable-next-line @typescript-eslint/no-explicit-any
            this.chips = e.container.data['chips'].map((item) => item);
        }
        this.chipDrop.emit({
            type: 'dropped',
            sourceName: this.dragAndDropSourceName,
            chip: e.item.data,
            chips: e.container.data['chips'],
        });
    }
    /**
     * Method called when a chip starts to be dragged.
     *
     * @param event `CdkDragStart` object used to move the chip in a list.
     */
    onDragStarted(event) {
        this.chipDragStart.emit({
            type: 'started',
            sourceName: this.dragAndDropSourceName,
            chip: event['source'].data instanceof EuiChipComponent ? event['source'].data : event['source'].data.chip,
            chips: this.chips,
        });
    }
    /**
     * Method called when a chip is released after dragging.
     *
     * @param event `CdkDragRelease` object used to move the chip in a list.
     */
    onDragReleased(event) {
        this.chipDragRelease.emit({
            type: 'released',
            sourceName: this.dragAndDropSourceName,
            chip: event['source'].data instanceof EuiChipComponent ? event['source'].data : event['source'].data.chip,
            chips: this.chips,
        });
    }
    /**
     * Method called when the list gets the focus.
     */
    onFocus() {
        this.chiplistFocus.emit(true);
    }
    /**
     * Generates a random id to be used in the chips.
     *
     * @returns an id as a string
     */
    generateId() {
        return '_' + Math.random().toString(36).substr(2, 9);
    }
    /**
     * Method that orders the chips in the list.
     *
     * @param tab Array of chips to order.
     * @param sortOrder Sorting to apply `ASC` or `DESC`.
     * @returns The array ordered.
     */
    // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html
    // eslint-disable-next-line @typescript-eslint/no-explicit-any
    orderItems(tab, sortOrder) {
        // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html
        // eslint-disable-next-line @typescript-eslint/no-explicit-any
        tab.sort((a, b) => {
            const aObj = a.chipLabel ? a.chipLabel.nativeElement.textContent.toLowerCase() : a.label.toLowerCase();
            const bObj = b.chipLabel ? b.chipLabel.nativeElement.textContent.toLowerCase() : b.label.toLowerCase();
            if (sortOrder === 'ASC') {
                if (aObj < bObj) {
                    return -1;
                }
                if (aObj > bObj) {
                    return 1;
                }
                return 0;
            }
            else {
                if (aObj > bObj) {
                    return -1;
                }
                if (aObj < bObj) {
                    return 1;
                }
                return 0;
            }
        });
        return tab;
    }
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: EuiChipListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.17", type: EuiChipListComponent, isStandalone: true, selector: "eui-chip-list, div[euiChipList], ul[euiChipList]", inputs: { chips: "chips", toggleLinkMoreLabel: "toggleLinkMoreLabel", toggleLinkLessLabel: "toggleLinkLessLabel", chipsSortOrder: "chipsSortOrder", dragAndDropSourceName: "dragAndDropSourceName", dragAndDropConnectedTo: "dragAndDropConnectedTo", ariaLabel: "ariaLabel", dropListOrientation: "dropListOrientation", isSquared: ["isSquared", "isSquared", booleanAttribute], isChipsRemovable: ["isChipsRemovable", "isChipsRemovable", booleanAttribute], isMaxVisibleChipsOpened: ["isMaxVisibleChipsOpened", "isMaxVisibleChipsOpened", booleanAttribute], isChipsSorted: ["isChipsSorted", "isChipsSorted", booleanAttribute], isChipsDragAndDrop: ["isChipsDragAndDrop", "isChipsDragAndDrop", booleanAttribute], isGrid: ["isGrid", "isGrid", booleanAttribute], maxVisibleChipsCount: ["maxVisibleChipsCount", "maxVisibleChipsCount", numberAttribute], chipsLabelTruncateCount: ["chipsLabelTruncateCount", "chipsLabelTruncateCount", numberAttribute] }, outputs: { chipsInit: "chipsInit", chipRemove: "chipRemove", chipDragStart: "chipDragStart", chipDragRelease: "chipDragRelease", chipDrop: "chipDrop", chiplistFocus: "chiplistFocus" }, host: { properties: { "class": "this.cssClasses" } }, queries: [{ propertyName: "euiChipsContent", predicate: i0.forwardRef(() => EuiChipComponent) }], viewQueries: [{ propertyName: "chipListDropList", first: true, predicate: ["chipListDropList"], descendants: true, read: CdkDropList }, { propertyName: "chipListDragAndDropItems", first: true, predicate: ["chipListDragAndDropItems"], descendants: true, read: CdkDropList }, { propertyName: "euiChipItems", predicate: ["euiChipItem"], descendants: true, read: ElementRef }], usesOnChanges: true, hostDirectives: [{ directive: i1.BaseStatesDirective, inputs: ["euiPrimary", "euiPrimary", "euiSecondary", "euiSecondary", "euiSuccess", "euiSuccess", "euiInfo", "euiInfo", "euiWarning", "euiWarning", "euiDanger", "euiDanger", "euiAccent", "euiAccent", "euiVariant", "euiVariant", "euiSizeS", "euiSizeS", "euiSizeVariant", "euiSizeVariant", "euiOutline", "euiOutline", "euiDisabled", "euiDisabled"] }], ngImport: i0, template: "<div class=\"eui-chip-list-container\">\n    <div class=\"eui-chip-list-wrapper\">\n\n    @if (!isGrid) {\n        <div\n            [attr.role]=\"chips && chips.length > 0 ? 'list' : null\"\n            [attr.aria-label]=\"chips && chips.length > 0 ? ariaLabel : null\"\n            #chipList\n            #chipListDropList\n            #chipListDragAndDropItems\n            cdkDropList\n            [cdkDropListOrientation]=\"dropListOrientation\"\n            [cdkDropListDisabled]=\"!isChipsDragAndDrop\"\n            [cdkDropListData]=\"chips ? { chips } : { chips: [] }\"\n            [cdkDropListConnectedTo]=\"droppableArea\"\n            (cdkDropListDropped)=\"drop($event)\"\n            (focus)=\"onFocus()\"\n            class=\"eui-chip-list__list\">\n\n            @for ( chip of chips; track chip; let i = $index; ) {\n                @if (\n                    (maxVisibleChipsCount && isMaxVisibleChipsOpened) ||\n                    (maxVisibleChipsCount && maxVisibleChipsCount > i) ||\n                    !maxVisibleChipsCount\n                ) {\n                    <div\n                        class=\"eui-chip-list__chip-container\"\n                        [class.eui-chip--hidden]=\"maxVisibleChipsCount > i\"\n                        cdkDrag\n                        [cdkDragData]=\"chip\"\n                        (cdkDragStarted)=\"onDragStarted($event)\"\n                        (cdkDragReleased)=\"onDragReleased($event)\">\n                        <eui-chip\n                            #euiChipItem\n                            [data]=\"chip.data ? chip.data : chip\"\n                            [attr.role]=\"'listitem'\"\n                            ariaLabel=\"{{ getChipLabel(chip) }}\"\n                            [euiInternalId]=\"chip.euiInternalId\"\n                            [isFilled]=\"chip.isFilled\"\n                            [isChipRemovable]=\"chip.isChipRemovable || (isChipsRemovable && chip.isRemovable) !== false\"\n                            [euiOutline]=\"chip.euiOutline || this.baseStatesDirective?.euiOutline || chip.isOutline\"\n                            [euiVariant]=\"chip.typeClass || this.baseStatesDirective?.euiVariant || chip.baseStatesDirective?.euiVariant\"\n                            [euiSizeVariant]=\"this.baseStatesDirective?.euiSizeVariant || chip.baseStatesDirective?.euiSizeVariant\"\n                            [euiDisabled]=\"chip.euiDisabled || this.baseStatesDirective?.euiDisabled || chip.isDisabled\"\n                            [euiTooltip]=\"chip.tooltipMessage\"\n                            [position]=\"chip.tooltip?.position\"\n                            [contentAlignment]=\"chip.tooltip?.contentAlignment\"\n                            (remove)=\"onRemove($event)\">\n\n                            @if (chip.iconSvgName) {\n                                <eui-icon-svg [icon]=\"chip.iconSvgName\" />\n                            }\n                            @if (chip.iconClass) {\n                                <span class=\"{{ chip.iconClass }}\"></span>\n                            }\n                            @if (chipsLabelTruncateCount) {\n                                <span title=\"{{ getChipLabel(chip) }}\">\n                                    {{ getChipLabel(chip) | euiTruncate: chipsLabelTruncateCount }}\n                                </span>\n                            } @else {\n                                <span class=\"eui-chip-list__chip-content\" [innerHTML]=\"getChipContent(chip)\"></span>\n                            }                            \n                        </eui-chip>\n                    </div>\n                }\n            }\n        </div>\n        <ng-container *ngTemplateOutlet=\"additionalContent\"></ng-container>\n        <ng-container *ngTemplateOutlet=\"euiChipListAppendContent\"></ng-container>\n    } @else {\n\n        <div class=\"eui-chip-list__group\" cdkDropListGroup>\n            @for ( chip of chips; track chip; let i = $index; ) {\n                @if (\n                        (maxVisibleChipsCount && isMaxVisibleChipsOpened) ||\n                        (maxVisibleChipsCount && maxVisibleChipsCount > i) ||\n                        !maxVisibleChipsCount\n                    )\n                {\n                    <div\n                        role=\"list\"\n                        [attr.aria-label]=\"ariaLabel\"\n                        #chipList\n                        #chipListDropList\n                        #chipListDragAndDropItems\n                        cdkDropList\n                        [cdkDropListDisabled]=\"!isChipsDragAndDrop\"\n                        [cdkDropListData]=\"{ chip: chip, index: i }\"\n                        (focus)=\"onFocus()\"\n                        (cdkDropListDropped)=\"onDropGrid($event)\"\n                        class=\"eui-chip-list__custom\">\n                            <div\n                                class=\"eui-chip-list__chip-container\"\n                                cdkDrag\n                                [cdkDragData]=\"{ chip: chip, index: i }\"\n                                (cdkDragStarted)=\"onDragStarted($event)\"\n                                (cdkDragReleased)=\"onDragReleased($event)\"\n                                (cdkDragEntered)=\"onDragEnter($event)\">\n                                <eui-chip\n                                    #euiChipItem\n                                    [data]=\"chip.data ? chip.data : chip\"\n                                    [id]=\"chip.id\"\n                                    [attr.role]=\"'listitem'\"\n                                    ariaLabel=\"{{ getChipLabel(chip) }}\"\n                                    [euiInternalId]=\"chip.euiInternalId\"\n                                    [isFilled]=\"chip.isFilled\"\n                                    [isChipRemovable]=\"chip.isChipRemovable || (isChipsRemovable && chip.isRemovable) !== false\"\n                                    [euiOutline]=\"chip.euiOutline || this.baseStatesDirective?.euiOutline || chip.isOutline\"\n                                    [euiVariant]=\"chip.typeClass || this.baseStatesDirective?.euiVariant || chip.baseStatesDirective?.euiVariant\"\n                                    [euiDisabled]=\"chip.euiDisabled || this.baseStatesDirective?.euiDisabled || chip.isDisabled\"\n                                    [euiTooltip]=\"chip.tooltipMessage\"\n                                    [position]=\"chip.tooltip?.position\"\n                                    [contentAlignment]=\"chip.tooltip?.contentAlignment\"\n                                    (remove)=\"onRemove($event)\">\n                                    \n                                    @if (chip.iconSvgName) {\n                                        <eui-icon-svg [icon]=\"chip.iconSvgName\" />\n                                    }\n                                    @if (chipsLabelTruncateCount) {\n                                        <span title=\"{{ getChipLabel(chip) }}\">\n                                            {{ getChipLabel(chip) | euiTruncate: chipsLabelTruncateCount }}\n                                        </span>\n                                    } @else {\n                                        <span class=\"eui-chip-list__chip-content\" [innerHTML]=\"getChipContent(chip)\"></span>\n                                    }\n                                </eui-chip>\n                            </div>\n                    </div>\n                }\n            }\n            <ng-container *ngTemplateOutlet=\"euiChipListAppendContent\"></ng-container>\n            <ng-container *ngTemplateOutlet=\"additionalContent\"></ng-container>\n        </div>\n    }\n    </div>\n</div>\n\n<ng-template #euiChipListAppendContent>\n    <ng-content select=\"euiChipListAppendContent\" />\n</ng-template>\n\n<ng-template #additionalContent>\n    @if (maxVisibleChipsCount && chips && chips.length > maxVisibleChipsCount) {\n        <div class=\"eui-chip-list__expand-button-wrapper\">\n            <button\n                euiButton\n                euiBasicButton\n                euiSecondary\n                euiSizeS\n                type=\"button\"\n                class=\"eui-chip-list__expand-button\"\n                attr.aria-label=\"{{ toggleLinkLessLabel ? (toggleLinkLessLabel | translate) : ((toggleLinkMoreLabel | translate) || 'More') }}\"\n                (click)=\"toggleTags()\">\n\n                @if (isMaxVisibleChipsOpened) {\n                    <eui-icon-svg icon=\"chevron-back:sharp\"/>\n                    @if (toggleLinkLessLabel) {\n                        {{ toggleLinkLessLabel | translate }}\n                    }\n                } @else {\n                    @if (toggleLinkMoreLabel) {\n                        {{ toggleLinkMoreLabel | translate }}\n                    }\n                    <eui-icon-svg icon=\"chevron-forward:sharp\"/>\n                }\n            </button>\n        </div>\n    }\n</ng-template>\n", styles: [".eui-19 :host.eui-chip-list{align-items:center;display:flex;margin:0;padding:0}.eui-19 :host.eui-chip-list .eui-chip-list-container{align-items:center;display:flex;width:100%}.eui-19 :host.eui-chip-list .eui-chip-list-container .eui-chip-list-wrapper{align-items:center;display:flex;gap:var(--eui-s-xs);width:100%}.eui-19 :host.eui-chip-list .eui-chip-list-container .eui-chip-list-wrapper .eui-chip-list__list{display:flex;flex-wrap:wrap;gap:var(--eui-s-xs)}.eui-19 :host.eui-chip-list .eui-chip-list-container .eui-chip-list-wrapper .eui-chip-list__chip-container{align-items:center;display:inline-flex}.eui-19 :host.eui-chip-list[ischipsdraganddrop] .eui-chip-list-container{width:100%}.eui-19 :host.eui-chip-list .eui-chip-list--drag-drop .eui-chip-list__list.cdk-drop-list{min-height:var(--eui-s-2xl)}.eui-19 :host.eui-chip-list .eui-chip-list__group{align-items:center;display:flex;flex-wrap:wrap;gap:var(--eui-s-xs)}.eui-19 :host.eui-chip-list .eui-chip-list__chip-container.cdk-drag:not(.cdk-drag-disabled){cursor:move!important}.eui-19 :host.eui-chip-list .eui-chip-list__custom{min-width:auto!important;width:auto!important}.eui-19 :host.eui-chip-list .eui-chip-list__chip-content{display:flex;align-items:center;gap:var(--eui-s-xs)}@media screen and (max-width: 767px){.eui-19 .eui-chip-list .eui-chip-list-container{flex-wrap:wrap}}@media screen and (min-width: 768px) and (max-width: 995px){.eui-19 .eui-chip-list .eui-chip-list-container{flex-wrap:wrap}}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: DragDropModule }, { kind: "directive", type: i2.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i2.CdkDropListGroup, selector: "[cdkDropListGroup]", inputs: ["cdkDropListGroupDisabled"], exportAs: ["cdkDropListGroup"] }, { kind: "directive", type: i2.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "pipe", type: EuiTruncatePipe, name: "euiTruncate" }, { kind: "directive", type: EuiTooltipDirective, selector: "[euiTooltip]", inputs: ["e2eAttr", "showDelay", "hideDelay", "contentAlignment", "position", "isDisabled", "euiTooltip", "euiTooltipPrimary", "euiTooltipSecondary", "euiTooltipInfo", "euiTooltipSuccess", "euiTooltipWarning", "euiTooltipDanger", "euiTooltipAccent"], exportAs: ["euiTooltip"] }, { kind: "component", type: i4.EuiChipComponent, selector: "eui-chip, span[euiChip], li[euiChip]", inputs: ["ariaLabel", "e2eAttr", "euiInternalId", "tooltipMessage", "id", "data", "isChipRemovable", "isSquared", "isFilled"], outputs: ["remove"] }, { kind: "component", type: i5.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiCTAButton", "euiBlockButton", "euiIconButton", "euiAvatarButton", "euiLineWrap", "isCompact", "hasNoFocusRing", "isChecked", "euiDisabled"], outputs: ["buttonClick"] }, { kind: "component", type: i6.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "fillColor", "set", "size", "style", "iconUrl", "transform", "euiVariant", "aria-label", "ariaHidden", "focusable", "isLoading", "isInputIcon", "euiStart", "euiEnd"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: EuiChipListComponent, decorators: [{
            type: Component,
            args: [{ selector: 'eui-chip-list, div[euiChipList], ul[euiChipList]', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
                        NgTemplateOutlet,
                        DragDropModule,
                        TranslateModule,
                        EuiTruncatePipe,
                        EuiTooltipDirective,
                        ...EUI_CHIP,
                        ...EUI_BUTTON,
                        ...EUI_ICON,
                    ], hostDirectives: [
                        {
                            directive: BaseStatesDirective,
                            inputs: [
                                'euiPrimary',
                                'euiSecondary',
                                'euiSuccess',
                                'euiInfo',
                                'euiWarning',
                                'euiDanger',
                                'euiAccent',
                                'euiVariant',
                                'euiSizeS',
                                'euiSizeVariant',
                                'euiOutline',
                                'euiDisabled',
                            ],
                        },
                    ], template: "<div class=\"eui-chip-list-container\">\n    <div class=\"eui-chip-list-wrapper\">\n\n    @if (!isGrid) {\n        <div\n            [attr.role]=\"chips && chips.length > 0 ? 'list' : null\"\n            [attr.aria-label]=\"chips && chips.length > 0 ? ariaLabel : null\"\n            #chipList\n            #chipListDropList\n            #chipListDragAndDropItems\n            cdkDropList\n            [cdkDropListOrientation]=\"dropListOrientation\"\n            [cdkDropListDisabled]=\"!isChipsDragAndDrop\"\n            [cdkDropListData]=\"chips ? { chips } : { chips: [] }\"\n            [cdkDropListConnectedTo]=\"droppableArea\"\n            (cdkDropListDropped)=\"drop($event)\"\n            (focus)=\"onFocus()\"\n            class=\"eui-chip-list__list\">\n\n            @for ( chip of chips; track chip; let i = $index; ) {\n                @if (\n                    (maxVisibleChipsCount && isMaxVisibleChipsOpened) ||\n                    (maxVisibleChipsCount && maxVisibleChipsCount > i) ||\n                    !maxVisibleChipsCount\n                ) {\n                    <div\n                        class=\"eui-chip-list__chip-container\"\n                        [class.eui-chip--hidden]=\"maxVisibleChipsCount > i\"\n                        cdkDrag\n                        [cdkDragData]=\"chip\"\n                        (cdkDragStarted)=\"onDragStarted($event)\"\n                        (cdkDragReleased)=\"onDragReleased($event)\">\n                        <eui-chip\n                            #euiChipItem\n                            [data]=\"chip.data ? chip.data : chip\"\n                            [attr.role]=\"'listitem'\"\n                            ariaLabel=\"{{ getChipLabel(chip) }}\"\n                            [euiInternalId]=\"chip.euiInternalId\"\n                            [isFilled]=\"chip.isFilled\"\n                            [isChipRemovable]=\"chip.isChipRemovable || (isChipsRemovable && chip.isRemovable) !== false\"\n                            [euiOutline]=\"chip.euiOutline || this.baseStatesDirective?.euiOutline || chip.isOutline\"\n                            [euiVariant]=\"chip.typeClass || this.baseStatesDirective?.euiVariant || chip.baseStatesDirective?.euiVariant\"\n                            [euiSizeVariant]=\"this.baseStatesDirective?.euiSizeVariant || chip.baseStatesDirective?.euiSizeVariant\"\n                            [euiDisabled]=\"chip.euiDisabled || this.baseStatesDirective?.euiDisabled || chip.isDisabled\"\n                            [euiTooltip]=\"chip.tooltipMessage\"\n                            [position]=\"chip.tooltip?.position\"\n                            [contentAlignment]=\"chip.tooltip?.contentAlignment\"\n                            (remove)=\"onRemove($event)\">\n\n                            @if (chip.iconSvgName) {\n                                <eui-icon-svg [icon]=\"chip.iconSvgName\" />\n                            }\n                            @if (chip.iconClass) {\n                                <span class=\"{{ chip.iconClass }}\"></span>\n                            }\n                            @if (chipsLabelTruncateCount) {\n                                <span title=\"{{ getChipLabel(chip) }}\">\n                                    {{ getChipLabel(chip) | euiTruncate: chipsLabelTruncateCount }}\n                                </span>\n                            } @else {\n                                <span class=\"eui-chip-list__chip-content\" [innerHTML]=\"getChipContent(chip)\"></span>\n                            }                            \n                        </eui-chip>\n                    </div>\n                }\n            }\n        </div>\n        <ng-container *ngTemplateOutlet=\"additionalContent\"></ng-container>\n        <ng-container *ngTemplateOutlet=\"euiChipListAppendContent\"></ng-container>\n    } @else {\n\n        <div class=\"eui-chip-list__group\" cdkDropListGroup>\n            @for ( chip of chips; track chip; let i = $index; ) {\n                @if (\n                        (maxVisibleChipsCount && isMaxVisibleChipsOpened) ||\n                        (maxVisibleChipsCount && maxVisibleChipsCount > i) ||\n                        !maxVisibleChipsCount\n                    )\n                {\n                    <div\n                        role=\"list\"\n                        [attr.aria-label]=\"ariaLabel\"\n                        #chipList\n                        #chipListDropList\n                        #chipListDragAndDropItems\n                        cdkDropList\n                        [cdkDropListDisabled]=\"!isChipsDragAndDrop\"\n                        [cdkDropListData]=\"{ chip: chip, index: i }\"\n                        (focus)=\"onFocus()\"\n                        (cdkDropListDropped)=\"onDropGrid($event)\"\n                        class=\"eui-chip-list__custom\">\n                            <div\n                                class=\"eui-chip-list__chip-container\"\n                                cdkDrag\n                                [cdkDragData]=\"{ chip: chip, index: i }\"\n                                (cdkDragStarted)=\"onDragStarted($event)\"\n                                (cdkDragReleased)=\"onDragReleased($event)\"\n                                (cdkDragEntered)=\"onDragEnter($event)\">\n                                <eui-chip\n                                    #euiChipItem\n                                    [data]=\"chip.data ? chip.data : chip\"\n                                    [id]=\"chip.id\"\n                                    [attr.role]=\"'listitem'\"\n                                    ariaLabel=\"{{ getChipLabel(chip) }}\"\n                                    [euiInternalId]=\"chip.euiInternalId\"\n                                    [isFilled]=\"chip.isFilled\"\n                                    [isChipRemovable]=\"chip.isChipRemovable || (isChipsRemovable && chip.isRemovable) !== false\"\n                                    [euiOutline]=\"chip.euiOutline || this.baseStatesDirective?.euiOutline || chip.isOutline\"\n                                    [euiVariant]=\"chip.typeClass || this.baseStatesDirective?.euiVariant || chip.baseStatesDirective?.euiVariant\"\n                                    [euiDisabled]=\"chip.euiDisabled || this.baseStatesDirective?.euiDisabled || chip.isDisabled\"\n                                    [euiTooltip]=\"chip.tooltipMessage\"\n                                    [position]=\"chip.tooltip?.position\"\n                                    [contentAlignment]=\"chip.tooltip?.contentAlignment\"\n                                    (remove)=\"onRemove($event)\">\n                                    \n                                    @if (chip.iconSvgName) {\n                                        <eui-icon-svg [icon]=\"chip.iconSvgName\" />\n                                    }\n                                    @if (chipsLabelTruncateCount) {\n                                        <span title=\"{{ getChipLabel(chip) }}\">\n                                            {{ getChipLabel(chip) | euiTruncate: chipsLabelTruncateCount }}\n                                        </span>\n                                    } @else {\n                                        <span class=\"eui-chip-list__chip-content\" [innerHTML]=\"getChipContent(chip)\"></span>\n                                    }\n                                </eui-chip>\n                            </div>\n                    </div>\n                }\n            }\n            <ng-container *ngTemplateOutlet=\"euiChipListAppendContent\"></ng-container>\n            <ng-container *ngTemplateOutlet=\"additionalContent\"></ng-container>\n        </div>\n    }\n    </div>\n</div>\n\n<ng-template #euiChipListAppendContent>\n    <ng-content select=\"euiChipListAppendContent\" />\n</ng-template>\n\n<ng-template #additionalContent>\n    @if (maxVisibleChipsCount && chips && chips.length > maxVisibleChipsCount) {\n        <div class=\"eui-chip-list__expand-button-wrapper\">\n            <button\n                euiButton\n                euiBasicButton\n                euiSecondary\n                euiSizeS\n                type=\"button\"\n                class=\"eui-chip-list__expand-button\"\n                attr.aria-label=\"{{ toggleLinkLessLabel ? (toggleLinkLessLabel | translate) : ((toggleLinkMoreLabel | translate) || 'More') }}\"\n                (click)=\"toggleTags()\">\n\n                @if (isMaxVisibleChipsOpened) {\n                    <eui-icon-svg icon=\"chevron-back:sharp\"/>\n                    @if (toggleLinkLessLabel) {\n                        {{ toggleLinkLessLabel | translate }}\n                    }\n                } @else {\n                    @if (toggleLinkMoreLabel) {\n                        {{ toggleLinkMoreLabel | translate }}\n                    }\n                    <eui-icon-svg icon=\"chevron-forward:sharp\"/>\n                }\n            </button>\n        </div>\n    }\n</ng-template>\n", styles: [".eui-19 :host.eui-chip-list{align-items:center;display:flex;margin:0;padding:0}.eui-19 :host.eui-chip-list .eui-chip-list-container{align-items:center;display:flex;width:100%}.eui-19 :host.eui-chip-list .eui-chip-list-container .eui-chip-list-wrapper{align-items:center;display:flex;gap:var(--eui-s-xs);width:100%}.eui-19 :host.eui-chip-list .eui-chip-list-container .eui-chip-list-wrapper .eui-chip-list__list{display:flex;flex-wrap:wrap;gap:var(--eui-s-xs)}.eui-19 :host.eui-chip-list .eui-chip-list-container .eui-chip-list-wrapper .eui-chip-list__chip-container{align-items:center;display:inline-flex}.eui-19 :host.eui-chip-list[ischipsdraganddrop] .eui-chip-list-container{width:100%}.eui-19 :host.eui-chip-list .eui-chip-list--drag-drop .eui-chip-list__list.cdk-drop-list{min-height:var(--eui-s-2xl)}.eui-19 :host.eui-chip-list .eui-chip-list__group{align-items:center;display:flex;flex-wrap:wrap;gap:var(--eui-s-xs)}.eui-19 :host.eui-chip-list .eui-chip-list__chip-container.cdk-drag:not(.cdk-drag-disabled){cursor:move!important}.eui-19 :host.eui-chip-list .eui-chip-list__custom{min-width:auto!important;width:auto!important}.eui-19 :host.eui-chip-list .eui-chip-list__chip-content{display:flex;align-items:center;gap:var(--eui-s-xs)}@media screen and (max-width: 767px){.eui-19 .eui-chip-list .eui-chip-list-container{flex-wrap:wrap}}@media screen and (min-width: 768px) and (max-width: 995px){.eui-19 .eui-chip-list .eui-chip-list-container{flex-wrap:wrap}}\n"] }]
        }], propDecorators: { chips: [{
                type: Input
            }], toggleLinkMoreLabel: [{
                type: Input
            }], toggleLinkLessLabel: [{
                type: Input
            }], chipsSortOrder: [{
                type: Input
            }], dragAndDropSourceName: [{
                type: Input
            }], dragAndDropConnectedTo: [{
                type: Input
            }], ariaLabel: [{
                type: Input
            }], dropListOrientation: [{
                type: Input
            }], isSquared: [{
                type: Input,
                args: [{ transform: booleanAttribute }]
            }], isChipsRemovable: [{
                type: Input,
                args: [{ transform: booleanAttribute }]
            }], isMaxVisibleChipsOpened: [{
                type: Input,
                args: [{ transform: booleanAttribute }]
            }], isChipsSorted: [{
                type: Input,
                args: [{ transform: booleanAttribute }]
            }], isChipsDragAndDrop: [{
                type: Input,
                args: [{ transform: booleanAttribute }]
            }], isGrid: [{
                type: Input,
                args: [{ transform: booleanAttribute }]
            }], maxVisibleChipsCount: [{
                type: Input,
                args: [{ transform: numberAttribute }]
            }], chipsLabelTruncateCount: [{
                type: Input,
                args: [{ transform: numberAttribute }]
            }], chipsInit: [{
                type: Output
            }], chipRemove: [{
                type: Output
            }], chipDragStart: [{
                type: Output
            }], chipDragRelease: [{
                type: Output
            }], chipDrop: [{
                type: Output
            }], chiplistFocus: [{
                type: Output
            }], cssClasses: [{
                type: HostBinding,
                args: ['class']
            }], euiChipsContent: [{
                type: ContentChildren,
                args: [forwardRef(() => EuiChipComponent)]
            }], chipListDropList: [{
                type: ViewChild,
                args: ['chipListDropList', { read: CdkDropList }]
            }], chipListDragAndDropItems: [{
                type: ViewChild,
                args: ['chipListDragAndDropItems', { read: CdkDropList }]
            }], euiChipItems: [{
                type: ViewChildren,
                args: ['euiChipItem', { read: ElementRef }]
            }] } });
/**
 * @description
 * This directive is only used internally by eui-autocomplete component to be able to display the chips above, below and inside the text input with an option.
 */
/* eslint-disable */
class EuiChipListAppendContentDirective {
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: EuiChipListAppendContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
    static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.17", type: EuiChipListAppendContentDirective, isStandalone: true, selector: "euiChipListAppendContent", ngImport: i0 }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: EuiChipListAppendContentDirective, decorators: [{
            type: Directive,
            args: [{ selector: 'euiChipListAppendContent' }]
        }] });

/**
 * @description
 * Module that provides the EuiChipList component and its dependencies
 *
 * @deprecated Use {@link EUI_CHIP_LIST} instead.
 */
class EuiChipListModule {
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: EuiChipListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
    static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.17", ngImport: i0, type: EuiChipListModule, imports: [EuiChipListComponent, EuiChipListAppendContentDirective], exports: [EuiChipListComponent, EuiChipListAppendContentDirective] }); }
    static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: EuiChipListModule, imports: [EuiChipListComponent] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: EuiChipListModule, decorators: [{
            type: NgModule,
            args: [{
                    imports: [EuiChipListComponent, EuiChipListAppendContentDirective],
                    exports: [EuiChipListComponent, EuiChipListAppendContentDirective],
                }]
        }] });

const EUI_CHIP_LIST = [
    EuiChipListAppendContentDirective,
    EuiChipListComponent,
];

/**
 * Generated bundle index. Do not edit.
 */

export { EUI_CHIP_LIST, EuiChipListAppendContentDirective, EuiChipListComponent, EuiChipListModule };
//# sourceMappingURL=eui-components-eui-chip-list.mjs.map
