{"version":3,"file":"primeng-chips.mjs","sources":["../../src/chips/style/chipsstyle.ts","../../src/chips/chips.ts","../../src/chips/primeng-chips.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = ({ dt }) => `\n.p-inputchips {\n    display: inline-flex;\n}\n\n.p-inputchips-input {\n    margin: 0;\n    list-style-type: none;\n    cursor: text;\n    overflow: hidden;\n    display: flex;\n    position: relative;\n    align-items: center;\n    flex-wrap: wrap;\n    padding: calc(${dt('inputchips.padding.y')} / 2) ${dt('inputchips.padding.x')};\n    gap: calc(${dt('inputchips.padding.y')} / 2);\n    color: ${dt('inputchips.color')};\n    background: ${dt('inputchips.background')};\n    border: 1px solid ${dt('inputchips.border.color')};\n    border-radius: ${dt('inputchips.border.radius')};\n    width: 100%;\n    transition: background ${dt('inputchips.transition.duration')}, color ${dt('inputchips.transition.duration')}, border-color ${dt('inputchips.transition.duration')}, outline-color ${dt('inputchips.transition.duration')}, box-shadow ${dt(\n        'inputchips.transition.duration'\n    )};\n    outline-color: transparent;\n    box-shadow: ${dt('inputchips.shadow')};\n}\n\n.p-inputchips:not(.p-disabled):hover .p-inputchips-input {\n    border-color: ${dt('inputchips.hover.border.color')};\n}\n\n.p-inputchips:not(.p-disabled).p-focus .p-inputchips-input {\n    border-color: ${dt('inputchips.focus.border.color')};\n    box-shadow: ${dt('inputchips.focus.ring.shadow')};\n    outline: ${dt('inputchips.focus.ring.width')} ${dt('inputchips.focus.ring.style')} ${dt('inputchips.focus.ring.color')};\n    outline-offset: ${dt('inputchips.focus.ring.offset')};\n}\n\n.p-inputchips.p-invalid .p-inputchips-input {\n    border-color: ${dt('inputchips.invalid.border.color')};\n}\n\n.p-variant-filled.p-inputchips-input {\n    background: ${dt('inputchips.filled.background')};\n}\n\n.p-inputchips:not(.p-disabled).p-focus .p-variant-filled.p-inputchips-input  {\n    background: ${dt('inputchips.filled.focus.background')};\n}\n\n.p-inputchips.p-disabled .p-inputchips-input {\n    opacity: 1;\n    background: ${dt('inputchips.disabled.background')};\n    color: ${dt('inputchips.disabled.color')};\n}\n\n.p-inputchips-chip.p-chip {\n    padding-top: calc(${dt('inputchips.padding.y')} / 2);\n    padding-bottom: calc(${dt('inputchips.padding.y')} / 2);\n    border-radius: ${dt('inputchips.chip.border.radius')};\n    transition: background ${dt('inputchips.transition.duration')}, color ${dt('inputchips.transition.duration')};\n}\n\n.p-inputchips-chip-item.p-focus .p-inputchips-chip {\n    background: ${dt('inputchips.chip.focus.background')};\n    color: ${dt('inputchips.chip.focus.color')};\n}\n\n.p-inputchips-input:has(.p-inputchips-chip) {\n    padding-left: calc(${dt('inputchips.padding.y')} / 2);\n    padding-right: calc(${dt('inputchips.padding.y')} / 2);\n}\n\n.p-inputchips-input-item {\n    flex: 1 1 auto;\n    display: inline-flex;\n    padding-top: calc(${dt('inputchips.padding.y')} / 2);\n    padding-bottom: calc(${dt('inputchips.padding.y')} / 2);\n}\n\n.p-inputchips-input-item input {\n    border: 0 none;\n    outline: 0 none;\n    background: transparent;\n    margin: 0;\n    padding: 0;\n    box-shadow: none;\n    border-radius: 0;\n    width: 100%;\n    font-family: inherit;\n    font-feature-settings: inherit;\n    font-size: 1rem;\n    color: inherit;\n}\n\n.p-inputchips-input-item input::placeholder {\n    color: ${dt('inputchips.placeholder.color')};\n}\n\n/* For PrimeNG */\n\n.p-chips-clear-icon {\n    position: absolute;\n    top: 50%;\n    margin-top: -0.5rem;\n    cursor: pointer;\n    right: ${dt('inputchips.padding.x')};\n}\n`;\n\nconst classes = {\n    root: ({ instance, props }) => [\n        'p-inputchips p-component p-inputwrapper',\n        {\n            'p-disabled': props.disabled,\n            'p-invalid': props.invalid,\n            'p-focus': instance.focused,\n            'p-inputwrapper-filled': (props.modelValue && props.modelValue.length) || (instance.inputValue && instance.inputValue.length),\n            'p-inputwrapper-focus': instance.focused\n        }\n    ],\n    input: ({ props, instance }) => [\n        'p-inputchips-input',\n        {\n            'p-variant-filled': props.variant ? props.variant === 'filled' : instance.config.inputStyle === 'filled' || instance.config.inputVariant === 'filled'\n        }\n    ],\n    chipItem: ({ state, index }) => ['p-inputchips-chip-item', { 'p-focus': state.focusedIndex === index }],\n    pcChip: 'p-inputchips-chip',\n    chipIcon: 'p-inputchips-chip-icon',\n    inputItem: 'p-inputchips-input-item'\n};\n\n@Injectable()\nexport class ChipsStyle extends BaseStyle {\n    name = 'inputchips';\n\n    theme = theme;\n\n    classes = classes;\n}\n\n/**\n *\n * Chips is used to enter multiple values on an input field.\n *\n *\n * @module chipsstyle\n *\n */\nexport enum ChipsClasses {\n    /**\n     * Class name of the root element\n     */\n    root = 'p-chip',\n    /**\n     * Class name of the image element\n     */\n    image = 'p-chip-image',\n    /**\n     * Class name of the icon element\n     */\n    icon = 'p-chip-icon',\n    /**\n     * Class name of the label element\n     */\n    label = 'p-chip-label',\n    /**\n     * Class name of the remove icon element\n     */\n    removeIcon = 'p-chip-remove-icon'\n}\n\nexport interface ChipsStyle extends BaseStyle {}\n","import { CommonModule } from '@angular/common';\nimport {\n    AfterContentInit,\n    ChangeDetectionStrategy,\n    ChangeDetectorRef,\n    Component,\n    ContentChildren,\n    ElementRef,\n    EventEmitter,\n    Input,\n    NgModule,\n    Output,\n    QueryList,\n    TemplateRef,\n    ViewChild,\n    ViewEncapsulation,\n    booleanAttribute,\n    forwardRef,\n    inject,\n    numberAttribute\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { PrimeTemplate, SharedModule } from 'primeng/api';\nimport { AutoFocusModule } from 'primeng/autofocus';\nimport { TimesIcon } from 'primeng/icons/times';\nimport { TimesCircleIcon } from 'primeng/icons/timescircle';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { Nullable } from 'primeng/ts-helpers';\nimport { UniqueComponentId } from 'primeng/utils';\nimport { ChipsAddEvent, ChipsClickEvent, ChipsContextMenuEvent, ChipsRemoveEvent } from './chips.interface';\nimport { PrimeNG } from 'primeng/config';\nimport { ChipsStyle } from './style/chipsstyle';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { ChipModule } from 'primeng/chip';\n\nexport const CHIPS_VALUE_ACCESSOR: any = {\n    provide: NG_VALUE_ACCESSOR,\n    useExisting: forwardRef(() => Chips),\n    multi: true\n};\n/**\n * Chips groups a collection of contents in tabs.\n * @group Components\n */\n@Component({\n    selector: 'p-chips',\n    standalone: true,\n    imports: [CommonModule, InputTextModule, SharedModule, AutoFocusModule, TimesCircleIcon, TimesIcon, ChipModule],\n    template: `\n        <div\n            [ngClass]=\"{\n                'p-inputchips p-component p-input-wrapper': true,\n                'p-disabled': disabled,\n                'p-focus': focused,\n                'p-inputwrapper-filled': (value && value.length) || (this.inputViewChild?.nativeElement.value && this.inputViewChild?.nativeElement.value.length),\n                'p-inputwrapper-focus': focused\n            }\"\n            [ngStyle]=\"style\"\n            [class]=\"styleClass\"\n            [attr.data-pc-name]=\"'chips'\"\n            [attr.data-pc-section]=\"'root'\"\n        >\n            <ul\n                #container\n                class=\"p-inputchips-input\"\n                tabindex=\"-1\"\n                role=\"listbox\"\n                [attr.aria-labelledby]=\"ariaLabelledBy\"\n                [attr.aria-label]=\"ariaLabel\"\n                [attr.aria-activedescendant]=\"focused ? focusedOptionId : undefined\"\n                [attr.aria-orientation]=\"'horizontal'\"\n                (click)=\"onWrapperClick()\"\n                (focus)=\"onContainerFocus()\"\n                (blur)=\"onContainerBlur()\"\n                (keydown)=\"onContainerKeyDown($event)\"\n                [attr.data-pc-section]=\"'container'\"\n            >\n                <li\n                    #token\n                    *ngFor=\"let item of value; let i = index\"\n                    [attr.id]=\"id + '_chips_item_' + i\"\n                    role=\"option\"\n                    [attr.ariaLabel]=\"item\"\n                    [attr.aria-selected]=\"true\"\n                    [attr.aria-setsize]=\"value.length\"\n                    [attr.aria-posinset]=\"i + 1\"\n                    [attr.data-p-focused]=\"focusedIndex === i\"\n                    [ngClass]=\"{ 'p-inputchips-chip-item': true, 'p-focus': focusedIndex === i }\"\n                    (click)=\"onItemClick($event, item)\"\n                    (contextmenu)=\"onItemContextMenu($event, item)\"\n                    [attr.data-pc-section]=\"'token'\"\n                >\n                    <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\"></ng-container>\n                    <p-chip *ngIf=\"!itemTemplate\" class=\"p-inputchips-chip\" [label]=\"field ? resolveFieldData(item, field) : item\" [removeIcon]=\"chipIcon\" removable (onRemove)=\"removeItem($event, i)\">\n                        <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\"></ng-container>\n                        <ng-template #removeicon>\n                            <ng-container *ngIf=\"!disabled\">\n                                <TimesCircleIcon [styleClass]=\"'p-chips-token-icon'\" *ngIf=\"!removeTokenIconTemplate\" (click)=\"removeItem($event, i)\" [attr.data-pc-section]=\"'removeTokenIcon'\" [attr.aria-hidden]=\"true\" />\n                                <span *ngIf=\"removeTokenIconTemplate\" class=\"p-chips-token-icon\" (click)=\"removeItem($event, i)\" [attr.data-pc-section]=\"'removeTokenIcon'\" [attr.aria-hidden]=\"true\">\n                                    <ng-template *ngTemplateOutlet=\"removeTokenIconTemplate; context: { removeItem: removeItem.bind(this) }\"></ng-template>\n                                </span>\n                            </ng-container>\n                        </ng-template>\n                    </p-chip>\n                </li>\n                <li class=\"p-inputchips-input-item\" [ngClass]=\"{ 'p-chips-clearable': showClear && !disabled }\" [attr.data-pc-section]=\"'inputToken'\" role=\"option\">\n                    <input\n                        #inputtext\n                        type=\"text\"\n                        [attr.id]=\"inputId\"\n                        [attr.maxlength]=\"maxLength\"\n                        [attr.placeholder]=\"value && value.length ? null : placeholder\"\n                        [attr.tabindex]=\"tabindex\"\n                        (keydown)=\"onKeyDown($event)\"\n                        (input)=\"onInput()\"\n                        (paste)=\"onPaste($event)\"\n                        (focus)=\"onInputFocus($event)\"\n                        (blur)=\"onInputBlur($event)\"\n                        [disabled]=\"disabled || isMaxedOut\"\n                        [ngStyle]=\"inputStyle\"\n                        [class]=\"inputStyleClass\"\n                        pAutoFocus\n                        [autofocus]=\"autofocus\"\n                        class=\"test\"\n                    />\n                </li>\n                <li *ngIf=\"value != null && filled && !disabled && showClear\">\n                    <TimesIcon *ngIf=\"!clearIconTemplate\" [styleClass]=\"'p-chips-clear-icon'\" (click)=\"clear()\" />\n                    <span *ngIf=\"clearIconTemplate\" class=\"p-chips-clear-icon\" (click)=\"clear()\">\n                        <ng-template *ngTemplateOutlet=\"clearIconTemplate\"></ng-template>\n                    </span>\n                </li>\n            </ul>\n        </div>\n    `,\n    host: {\n        class: 'p-element p-inputwrapper',\n        '[class.p-inputwrapper-filled]': 'filled',\n        '[class.p-inputwrapper-focus]': 'focused',\n        '[class.p-chips-clearable]': 'showClear'\n    },\n    providers: [CHIPS_VALUE_ACCESSOR, ChipsStyle],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None\n})\nexport class Chips extends BaseComponent implements AfterContentInit, ControlValueAccessor {\n    /**\n     * Inline style of the element.\n     * @group Props\n     */\n    @Input() style: { [klass: string]: any } | null | undefined;\n    /**\n     * Style class of the element.\n     * @group Props\n     */\n    @Input() styleClass: string | undefined;\n    /**\n     * When present, it specifies that the element should be disabled.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) disabled: boolean | undefined;\n    /**\n     * Name of the property to display on a chip.\n     * @group Props\n     */\n    @Input() field: string | undefined;\n    /**\n     * Advisory information to display on input.\n     * @group Props\n     */\n    @Input() placeholder: string | undefined;\n    /**\n     * Maximum number of entries allowed.\n     * @group Props\n     */\n    @Input({ transform: numberAttribute }) max: number | undefined;\n    /**\n     * Maximum length of a chip.\n     * @group Props\n     */\n    @Input() maxLength: number | undefined;\n    /**\n     * Defines a string that labels the input for accessibility.\n     * @group Props\n     */\n    @Input() ariaLabel: string | undefined;\n    /**\n     * Establishes relationships between the component and label(s) where its value should be one or more element IDs.\n     * @group Props\n     */\n    @Input() ariaLabelledBy: string | undefined;\n    /**\n     * Index of the element in tabbing order.\n     * @group Props\n     */\n    @Input({ transform: numberAttribute }) tabindex: number | undefined;\n    /**\n     * Identifier of the focus input to match a label defined for the component.\n     * @group Props\n     */\n    @Input() inputId: string | undefined;\n    /**\n     * Whether to allow duplicate values or not.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) allowDuplicate: boolean = true;\n    /**\n     * Defines whether duplication check should be case-sensitive\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) caseSensitiveDuplication: boolean = true;\n    /**\n     * Inline style of the input field.\n     * @group Props\n     */\n    @Input() inputStyle: { [klass: string]: any } | null | undefined;\n    /**\n     * Style class of the input field.\n     * @group Props\n     */\n    @Input() inputStyleClass: string | undefined;\n    /**\n     * Icon to display in chip remove action..\n     * @group Props\n     */\n    @Input() chipIcon: string | undefined;\n    /**\n     * Whether to add an item on tab key press.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) addOnTab: boolean | undefined;\n    /**\n     * Whether to add an item when the input loses focus.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) addOnBlur: boolean | undefined;\n    /**\n     * Separator char to add an item when pressed in addition to the enter key.\n     * @group Props\n     */\n    @Input() separator: string | RegExp | undefined;\n    /**\n     * When enabled, a clear icon is displayed to clear the value.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) showClear: boolean = false;\n    /**\n     * When present, it specifies that the component should automatically get focus on load.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) autofocus: boolean | undefined;\n    /**\n     * Specifies the input variant of the component.\n     * @group Props\n     */\n    @Input() variant: 'filled' | 'outlined' = 'outlined';\n    /**\n     * Callback to invoke on chip add.\n     * @param {ChipsAddEvent} event - Custom chip add event.\n     * @group Emits\n     */\n    @Output() onAdd: EventEmitter<ChipsAddEvent> = new EventEmitter<ChipsAddEvent>();\n    /**\n     * Callback to invoke on chip remove.\n     * @param {ChipsRemoveEvent} event - Custom chip remove event.\n     * @group Emits\n     */\n    @Output() onRemove: EventEmitter<ChipsRemoveEvent> = new EventEmitter<ChipsRemoveEvent>();\n    /**\n     * Callback to invoke on focus of input field.\n     * @param {Event} event - Browser event.\n     * @group Emits\n     */\n    @Output() onFocus: EventEmitter<Event> = new EventEmitter<Event>();\n    /**\n     * Callback to invoke on blur of input field.\n     * @param {Event} event - Browser event.\n     * @group Emits\n     */\n    @Output() onBlur: EventEmitter<Event> = new EventEmitter<Event>();\n    /**\n     * Callback to invoke on chip clicked.\n     * @param {ChipsClickEvent} event - Custom chip click event.\n     * @group Emits\n     */\n    @Output() onChipClick: EventEmitter<ChipsClickEvent> = new EventEmitter<ChipsClickEvent>();\n    /**\n     * Callback to invoke on chip contextmenu.\n     * @param {ChipsClickEvent} event - Custom chip contextmenu event.\n     * @group Emits\n     */\n    @Output() onChipContextMenu: EventEmitter<ChipsContextMenuEvent> = new EventEmitter<ChipsContextMenuEvent>();\n    /**\n     * Callback to invoke on clear token clicked.\n     * @group Emits\n     */\n    @Output() onClear: EventEmitter<any> = new EventEmitter<any>();\n\n    @ViewChild('inputtext') inputViewChild!: ElementRef;\n\n    @ViewChild('container') containerViewChild!: ElementRef;\n\n    @ContentChildren(PrimeTemplate) templates!: QueryList<any>;\n\n    public itemTemplate: Nullable<TemplateRef<any>>;\n\n    removeTokenIconTemplate: Nullable<TemplateRef<any>>;\n\n    clearIconTemplate: Nullable<TemplateRef<any>>;\n\n    value: any;\n\n    onModelChange: Function = () => {};\n\n    onModelTouched: Function = () => {};\n\n    valueChanged: Nullable<boolean>;\n\n    id = UniqueComponentId();\n\n    focused: Nullable<boolean>;\n\n    focusedIndex: Nullable<number>;\n\n    filled: Nullable<boolean>;\n\n    _componentStyle = inject(ChipsStyle);\n\n    get focusedOptionId() {\n        return this.focusedIndex !== null ? `${this.id}_chips_item_${this.focusedIndex}` : null;\n    }\n\n    get isMaxedOut(): boolean {\n        return this.max && this.value && this.max === this.value.length;\n    }\n\n    constructor(\n        public el: ElementRef,\n        public cd: ChangeDetectorRef,\n        public config: PrimeNG\n    ) {\n        super();\n        console.log('Deprecated since v18. Use AutoComplete component instead with its typeahead property.');\n    }\n\n    ngAfterContentInit() {\n        this.templates.forEach((item) => {\n            switch (item.getType()) {\n                case 'item':\n                    this.itemTemplate = item.template;\n                    break;\n\n                case 'removetokenicon':\n                    this.removeTokenIconTemplate = item.template;\n                    break;\n\n                case 'clearicon':\n                    this.clearIconTemplate = item.template;\n                    break;\n\n                default:\n                    this.itemTemplate = item.template;\n                    break;\n            }\n        });\n\n        this.updateFilledState();\n    }\n\n    onWrapperClick() {\n        this.inputViewChild?.nativeElement.focus();\n    }\n\n    onContainerFocus() {\n        this.focused = true;\n    }\n\n    onContainerBlur() {\n        this.focusedIndex = -1;\n        this.focused = false;\n    }\n\n    onContainerKeyDown(event) {\n        switch (event.code) {\n            case 'ArrowLeft':\n                this.onArrowLeftKeyOn();\n                break;\n\n            case 'ArrowRight':\n                this.onArrowRightKeyOn();\n                break;\n\n            case 'Backspace':\n                this.onBackspaceKeyOn(event);\n                break;\n\n            case 'Space':\n                if (this.focusedIndex !== null && this.value && this.value.length > 0) {\n                    this.onItemClick(event, this.value[this.focusedIndex]);\n                }\n                break;\n\n            default:\n                break;\n        }\n    }\n\n    onArrowLeftKeyOn() {\n        if (this.inputViewChild.nativeElement.value.length === 0 && this.value && this.value.length > 0) {\n            this.focusedIndex = this.focusedIndex === null ? this.value.length - 1 : this.focusedIndex - 1;\n            if (this.focusedIndex < 0) this.focusedIndex = 0;\n        }\n    }\n\n    onArrowRightKeyOn() {\n        if (this.inputViewChild.nativeElement.value.length === 0 && this.value && this.value.length > 0) {\n            if (this.focusedIndex === this.value.length - 1) {\n                this.focusedIndex = null;\n                this.inputViewChild?.nativeElement.focus();\n            } else {\n                this.focusedIndex++;\n            }\n        }\n    }\n\n    onBackspaceKeyOn(event) {\n        if (this.focusedIndex !== null) {\n            this.removeItem(event, this.focusedIndex);\n        }\n    }\n\n    onInput() {\n        this.updateFilledState();\n        this.focusedIndex = null;\n    }\n\n    onPaste(event: any) {\n        if (!this.disabled) {\n            if (this.separator) {\n                const pastedData: string = (event.clipboardData || (this.document.defaultView as any)['clipboardData']).getData('Text');\n                pastedData.split(this.separator).forEach((val: any) => {\n                    this.addItem(event, val, true);\n                });\n                this.inputViewChild.nativeElement.value = '';\n            }\n\n            this.updateFilledState();\n        }\n    }\n\n    updateFilledState() {\n        if (!this.value || this.value.length === 0) {\n            this.filled = this.inputViewChild && this.inputViewChild.nativeElement && this.inputViewChild.nativeElement.value != '';\n        } else {\n            this.filled = true;\n        }\n    }\n\n    onItemClick(event: Event, item: any) {\n        this.onChipClick.emit({\n            originalEvent: event,\n            value: item\n        });\n    }\n\n    onItemContextMenu(event: Event, item: any) {\n        this.onChipContextMenu.emit({\n            originalEvent: event,\n            value: item\n        });\n    }\n\n    writeValue(value: any): void {\n        this.value = value;\n        this.updateMaxedOut();\n        this.updateFilledState();\n        this.cd.markForCheck();\n    }\n\n    registerOnChange(fn: Function): void {\n        this.onModelChange = fn;\n    }\n\n    registerOnTouched(fn: Function): void {\n        this.onModelTouched = fn;\n    }\n\n    setDisabledState(val: boolean): void {\n        this.disabled = val;\n        this.cd.markForCheck();\n    }\n\n    resolveFieldData(data: any, field: string): any {\n        if (data && field) {\n            if (field.indexOf('.') == -1) {\n                return data[field];\n            } else {\n                let fields: string[] = field.split('.');\n                let value = data;\n                for (var i = 0, len = fields.length; i < len; ++i) {\n                    value = value[fields[i]];\n                }\n                return value;\n            }\n        } else {\n            return null;\n        }\n    }\n\n    onInputFocus(event: FocusEvent) {\n        this.focused = true;\n        this.focusedIndex = null;\n        this.onFocus.emit(event);\n    }\n\n    onInputBlur(event: FocusEvent) {\n        this.focused = false;\n        this.focusedIndex = null;\n        if (this.addOnBlur && this.inputViewChild.nativeElement.value) {\n            this.addItem(event, this.inputViewChild.nativeElement.value, false);\n        }\n        this.onModelTouched();\n        this.onBlur.emit(event);\n    }\n\n    removeItem(event: Event, index: number): void {\n        if (this.disabled) {\n            return;\n        }\n\n        let removedItem = this.value[index];\n        this.value = this.value.filter((val: any, i: number) => i != index);\n        this.focusedIndex = null;\n        this.inputViewChild.nativeElement.focus();\n\n        this.onModelChange(this.value);\n        this.onRemove.emit({\n            originalEvent: event,\n            value: removedItem\n        });\n        this.updateFilledState();\n        this.updateMaxedOut();\n    }\n\n    addItem(event: Event, item: string, preventDefault: boolean): void {\n        this.value = this.value || [];\n\n        if (item && item.trim().length) {\n            const newItemIsDuplicate = this.caseSensitiveDuplication ? this.value.includes(item) : this.value.some((val) => val.toLowerCase() === item.toLowerCase());\n\n            if ((this.allowDuplicate || !newItemIsDuplicate) && !this.isMaxedOut) {\n                this.value = [...this.value, item];\n                this.onModelChange(this.value);\n                this.onAdd.emit({\n                    originalEvent: event,\n                    value: item\n                });\n            }\n        }\n\n        this.updateFilledState();\n        this.updateMaxedOut();\n        this.inputViewChild.nativeElement.value = '';\n\n        if (preventDefault) {\n            event.preventDefault();\n        }\n    }\n\n    /**\n     * Callback to invoke on filter reset.\n     * @group Method\n     */\n    public clear() {\n        this.value = null;\n        this.updateFilledState();\n        this.onModelChange(this.value);\n        this.updateMaxedOut();\n        this.onClear.emit();\n    }\n\n    onKeyDown(event) {\n        const inputValue = event.target.value;\n\n        switch (event.code) {\n            case 'Backspace':\n                if (inputValue.length === 0 && this.value && this.value.length > 0) {\n                    if (this.focusedIndex !== null) {\n                        this.removeItem(event, this.focusedIndex);\n                    } else this.removeItem(event, this.value.length - 1);\n                }\n\n                break;\n\n            case 'Enter':\n            case 'NumpadEnter':\n                if (inputValue && inputValue.trim().length && !this.isMaxedOut) {\n                    this.addItem(event, inputValue, true);\n                }\n\n                break;\n\n            case 'Tab':\n                if (this.addOnTab && inputValue && inputValue.trim().length && !this.isMaxedOut) {\n                    this.addItem(event, inputValue, true);\n                    event.preventDefault();\n                }\n\n                break;\n\n            case 'ArrowLeft':\n                if (inputValue.length === 0 && this.value && this.value.length > 0) {\n                    this.containerViewChild?.nativeElement.focus();\n                }\n\n                break;\n\n            case 'ArrowRight':\n                event.stopPropagation();\n                break;\n\n            default:\n                if (this.separator) {\n                    if (this.separator === event.key || event.key.match(this.separator)) {\n                        this.addItem(event, inputValue, true);\n                    }\n                }\n\n                break;\n        }\n    }\n\n    updateMaxedOut(): void {\n        if (this.inputViewChild && this.inputViewChild.nativeElement) {\n            if (this.isMaxedOut) {\n                // Calling `blur` is necessary because firefox does not call `onfocus` events\n                // for disabled inputs, unlike chromium browsers.\n                this.inputViewChild.nativeElement.blur();\n                this.inputViewChild.nativeElement.disabled = true;\n            } else {\n                if (this.disabled) {\n                    this.inputViewChild.nativeElement.blur();\n                }\n\n                this.inputViewChild.nativeElement.disabled = this.disabled || false;\n            }\n        }\n    }\n}\n\n@NgModule({\n    imports: [Chips, SharedModule],\n    exports: [Chips, SharedModule]\n})\nexport class ChipsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}