import * as i0 from '@angular/core';
import { EventEmitter, Component, Input, Output, inject, ChangeDetectorRef, forwardRef, ElementRef, ContentChildren, ViewChild, HostListener, NgModule } from '@angular/core';
import { __decorate } from 'tslib';
import * as i1 from '@angular/forms';
import { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
import { KeyFilter } from 'primeng/keyfilter';
import { TemplateDirective } from '@seniorsistemas/angular-components/template';
import { randomHash, isNullOrUndefined } from '@seniorsistemas/angular-components/utils';
import { CheckDisabled } from '@seniorsistemas/angular-components/shared';
import { TooltipDirective } from '@seniorsistemas/angular-components/tooltip';
import { NgTemplateOutlet, NgClass } from '@angular/common';

/**
 * @description Componente interno de item individual de chip, utilizado pelo {@link ChipsComponent}.
 * Responsável pela renderização do texto, tooltip e botão de remoção de cada chip.
 *
 * @category Inputs
 */
class ChipItemComponent {
    /** @description Conteúdo a ser exibido no chip (string ou objeto). Campo obrigatório. */
    dataRender;
    /** @description Chave do objeto usada para exibição quando `dataRender` for um objeto. Campo obrigatório. */
    objectField;
    /** @description Desabilita os eventos de clique do chip. Campo obrigatório. */
    disabled = false;
    /** @description Template personalizado para renderização interna do chip. */
    templateRef;
    /** @description Índice do chip na lista, usado ao emitir o evento de remoção. Campo obrigatório. */
    itemIndex = -1;
    /** @description Habilita o tooltip para chips com texto truncado. Campo obrigatório. */
    showTooltip = true;
    /** @description Limite de caracteres exibidos antes de truncar o texto do chip. Campo obrigatório. */
    maxLengthRenderWithoutTooltip = 20;
    /** @description Emitido ao clicar no botão de remoção do chip. */
    clickRemove = new EventEmitter();
    /** @description Emitido ao clicar sobre o chip (fora do botão de remoção). */
    chipClicked = new EventEmitter();
    clickedRemove($event) {
        this.clickRemove.emit({ itemIndex: this.itemIndex, event: $event });
    }
    onChipClicked($event) {
        this.chipClicked.emit({ event: $event, data: this.dataRender });
    }
    get _text() {
        const _text = this._rawText;
        return (_text.substring(0, _text.length > this.maxLengthRenderWithoutTooltip ? this.maxLengthRenderWithoutTooltip : _text.length) + (_text.length > this.maxLengthRenderWithoutTooltip ? '...' : ''));
    }
    get _rawText() {
        return this.objectField ? this.dataRender[this.objectField] || '' : this.dataRender || '';
    }
    static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChipItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
    static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ChipItemComponent, isStandalone: true, selector: "s-chip-item", inputs: { dataRender: "dataRender", objectField: "objectField", disabled: "disabled", templateRef: "templateRef", itemIndex: "itemIndex", showTooltip: "showTooltip", maxLengthRenderWithoutTooltip: "maxLengthRenderWithoutTooltip" }, outputs: { clickRemove: "clickRemove", chipClicked: "chipClicked" }, ngImport: i0, template: "<ng-template #itemRender>\n    <div\n        class=\"rounded-medium border border-grayscale-50 bg-grayscale-10 break-words text-xs text-center flex items-center gap-2 px-1.5\"\n        [ngClass]=\"{ 'hover:bg-grayscale-30': !disabled, 'opacity-50': disabled }\"\n        (click)=\"onChipClicked($event)\" \n        [sTooltip]=\"_rawText\"\n        [showDelay]=\"0\"\n        [visible]=\"showTooltip ? _rawText.length > maxLengthRenderWithoutTooltip : false\">\n            @if(templateRef) {\n                <ng-container\n                    *ngTemplateOutlet=\"templateRef; context: { $implicit: dataRender, text: _text }\">\n                </ng-container>\n            } @else {\n                {{ _text }}\n            }\n            <i class=\"fas fa-times\" [ngClass]=\"{ 'cursor-pointer': !disabled, 'cursor-default': disabled }\" (click)=\"clickedRemove($event)\"></i>\n    </div>\n</ng-template>\n\n\n@if(objectField && !templateRef) {\n    <ng-container *ngTemplateOutlet=\"itemRender;\"></ng-container>\n}\n\n@if(!objectField && !templateRef) {\n    <ng-container *ngTemplateOutlet=\"itemRender;\"></ng-container>\n}\n\n@if(templateRef) {\n    <ng-container *ngTemplateOutlet=\"itemRender\"></ng-container>\n}\n", dependencies: [{ kind: "directive", type: TooltipDirective, selector: "[sTooltip]", inputs: ["sTooltip", "tooltipPosition", "showDelay", "displayTime", "tooltipEvent", "escape", "visible", "mobileBehavior", "focusedInputRef", "checkTruncatedText"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
}
__decorate([
    CheckDisabled()
], ChipItemComponent.prototype, "clickedRemove", null);
__decorate([
    CheckDisabled()
], ChipItemComponent.prototype, "onChipClicked", null);
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChipItemComponent, decorators: [{
            type: Component,
            args: [{ selector: 's-chip-item', standalone: true, imports: [TooltipDirective, NgTemplateOutlet, NgClass], template: "<ng-template #itemRender>\n    <div\n        class=\"rounded-medium border border-grayscale-50 bg-grayscale-10 break-words text-xs text-center flex items-center gap-2 px-1.5\"\n        [ngClass]=\"{ 'hover:bg-grayscale-30': !disabled, 'opacity-50': disabled }\"\n        (click)=\"onChipClicked($event)\" \n        [sTooltip]=\"_rawText\"\n        [showDelay]=\"0\"\n        [visible]=\"showTooltip ? _rawText.length > maxLengthRenderWithoutTooltip : false\">\n            @if(templateRef) {\n                <ng-container\n                    *ngTemplateOutlet=\"templateRef; context: { $implicit: dataRender, text: _text }\">\n                </ng-container>\n            } @else {\n                {{ _text }}\n            }\n            <i class=\"fas fa-times\" [ngClass]=\"{ 'cursor-pointer': !disabled, 'cursor-default': disabled }\" (click)=\"clickedRemove($event)\"></i>\n    </div>\n</ng-template>\n\n\n@if(objectField && !templateRef) {\n    <ng-container *ngTemplateOutlet=\"itemRender;\"></ng-container>\n}\n\n@if(!objectField && !templateRef) {\n    <ng-container *ngTemplateOutlet=\"itemRender;\"></ng-container>\n}\n\n@if(templateRef) {\n    <ng-container *ngTemplateOutlet=\"itemRender\"></ng-container>\n}\n" }]
        }], propDecorators: { dataRender: [{
                type: Input,
                args: [{ required: true }]
            }], objectField: [{
                type: Input,
                args: [{ required: true }]
            }], disabled: [{
                type: Input,
                args: [{ required: true }]
            }], templateRef: [{
                type: Input
            }], itemIndex: [{
                type: Input,
                args: [{ required: true }]
            }], showTooltip: [{
                type: Input,
                args: [{ required: true }]
            }], maxLengthRenderWithoutTooltip: [{
                type: Input,
                args: [{ required: true }]
            }], clickRemove: [{
                type: Output
            }], chipClicked: [{
                type: Output
            }], clickedRemove: [], onChipClicked: [] } });

/**
 * @description Componente de entrada de tags/chips que permite adicionar e remover
 * itens de texto livremente ou a partir de uma lista. Suporta templates personalizados
 * para renderização de cada chip, filtro de teclas, limite de itens e duplicação configurável.
 * Implementa {@link ControlValueAccessor} para uso em formulários Angular.
 *
 * @example
 * ```html
 * <s-chips
 *   formControlName="tags"
 *   placeholder="Adicionar tag..."
 *   [max]="10"
 *   [allowDuplicated]="false"
 *   (added)="onAdded($event)" />
 * ```
 *
 * @category Inputs
 */
class ChipsComponent {
    cdr = inject(ChangeDetectorRef);
    newItem = '';
    chipTemplate;
    /** @description Desabilita a interação com o componente. @default false */
    disabled = false;
    /** @description Chave do objeto usada para exibição quando os itens são objetos complexos. @default '' */
    field = '';
    /** @description Lista de chips atualmente exibidos. @default [] */
    value = [];
    /** @description Texto de placeholder exibido no campo de entrada quando vazio. */
    placeholder;
    /** @description Número máximo de chips permitidos. @default Infinity */
    max = Infinity;
    /** @description Comprimento máximo do texto de cada chip. @default Infinity */
    maxLength = Infinity;
    /** @description Identificador do elemento `<input>` interno. Gerado automaticamente se não informado. */
    inputId = `chips-${randomHash()}`;
    /** @description Permite a adição de chips com valor duplicado. @default true */
    allowDuplicated = true;
    /** @description Quando `false`, a comparação de duplicatas é case-insensitive. @default false */
    caseSensitiveDuplication = false;
    /** @description Adiciona o chip ao pressionar Tab. @default true */
    addOnTab = true;
    /** @description Adiciona o chip ao perder o foco (blur). @default true */
    addOnBlur = true;
    /** @description Caractere separador que, quando digitado, confirma a adição de um novo chip. @default '' */
    separator = '';
    /** @description Coloca o foco automaticamente no campo de entrada ao renderizar o componente. @default false */
    autofocus = false;
    /** @description Texto informativo exibido abaixo do campo de entrada. @default '' */
    infoLabel = '';
    /** @description Expressão regular ou padrão predefinido (PrimeNG KeyFilterPattern) para filtrar teclas aceitas. */
    keyFilter;
    /** @description Exibe tooltip ao passar o mouse sobre chips com texto truncado. @default true */
    showTooltip = true;
    /** @description Número máximo de caracteres exibidos diretamente no chip sem aplicar truncamento. @default 20 */
    maxLengthRenderWithoutTooltip = 20;
    /** @description Emitido quando um novo chip é adicionado com sucesso. */
    added = new EventEmitter();
    /** @description Emitido quando um chip é removido pelo usuário. */
    removed = new EventEmitter();
    /** @description Emitido quando o campo de entrada recebe foco. */
    focused = new EventEmitter();
    /** @description Emitido quando o campo de entrada perde o foco. */
    focusLost = new EventEmitter();
    /** @description Emitido quando o usuário clica em um chip existente. */
    chipClicked = new EventEmitter();
    /** @description Emitido sempre que a lista de chips é alterada (adição ou remoção). */
    valueChange = new EventEmitter();
    templates = null;
    input = null;
    isFocused = false;
    onChange = () => { };
    onTouched = () => { };
    isTabEventActive = false;
    ngAfterViewInit() {
        if (this.autofocus && this.input) {
            this.input.nativeElement.focus();
        }
        if (this.templates) {
            this.chipTemplate = this.templates.find((x) => x.type === 'chip-container')?.template;
            this.cdr.detectChanges();
        }
    }
    writeValue(obj) {
        if (isNullOrUndefined(obj)) {
            obj = [];
        }
        this.value = obj;
    }
    registerOnChange(fn) {
        this.onChange = fn;
    }
    registerOnTouched(fn) {
        this.onTouched = fn;
    }
    setDisabledState(isDisabled) {
        this.disabled = isDisabled;
    }
    onKeydown($event) {
        const isEnter = $event.key === 'Enter';
        const isSeparator = this.separator && $event.key === this.separator;
        const eventKeyIsTab = $event.key === 'Tab';
        if (eventKeyIsTab) {
            const tabTimeoutTime = 50;
            this.isTabEventActive = true;
            setTimeout(() => {
                this.isTabEventActive = false;
            }, tabTimeoutTime);
        }
        const isTab = this.addOnTab && eventKeyIsTab;
        if (isEnter || isSeparator || isTab) {
            $event.preventDefault();
            this.addItem();
        }
    }
    onInputFocus($event) {
        this.focused.emit($event);
        this.isFocused = true;
    }
    onInputLostFocus($event) {
        this.isFocused = false;
        if (!this.addOnBlur || this.isTabEventActive) {
            return;
        }
        this.addItem();
        this.focusLost.emit($event);
    }
    removeItem({ itemIndex, event }) {
        const _removedItem = this.value[itemIndex];
        this.value.splice(itemIndex, 1);
        this.removed.emit({ value: _removedItem, originalEvent: event });
    }
    onChipClicked({ event, data }) {
        this.chipClicked.emit({ value: data, originalEvent: event });
    }
    addItem() {
        if (!this.hasValueToAdd()) {
            return;
        }
        if (this.isMaxReached()) {
            return;
        }
        if (!this.isValidItemLength()) {
            return;
        }
        const valueToAdd = this.getValueToAdd();
        if (!this.hasDuplicatedItem()) {
            this.storeValue(valueToAdd);
        }
        this.newItem = '';
    }
    hasValueToAdd() {
        return !!this.newItem;
    }
    isMaxReached() {
        return !!(this.max && this.value.length === this.max);
    }
    isValidItemLength() {
        return this.maxLength ? this.newItem.length <= this.maxLength : true;
    }
    getMappedValues() {
        return this.field ? this.value.map((x) => x[this.field]) : this.value;
    }
    getValueToAdd() {
        return this.field ? { [this.field]: this.newItem } : this.newItem;
    }
    hasDuplicatedItem() {
        if (this.allowDuplicated) {
            return false;
        }
        const mappedValues = this.getMappedValues();
        return !!mappedValues.find((x) => {
            if (this.caseSensitiveDuplication) {
                return x === this.newItem;
            }
            else {
                return x.toLowerCase() === this.newItem.toLowerCase();
            }
        });
    }
    storeValue(value) {
        this.value = [...this.value, value];
        this.added.emit({ value });
        this.valueChange.emit(this.value);
        this.writeValue(this.value);
        this.onChange(this.value);
        this.onTouched(this.value);
    }
    static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChipsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
    static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ChipsComponent, isStandalone: true, selector: "s-chips", inputs: { disabled: "disabled", field: "field", value: "value", placeholder: "placeholder", max: "max", maxLength: "maxLength", inputId: "inputId", allowDuplicated: "allowDuplicated", caseSensitiveDuplication: "caseSensitiveDuplication", addOnTab: "addOnTab", addOnBlur: "addOnBlur", separator: "separator", autofocus: "autofocus", infoLabel: "infoLabel", keyFilter: "keyFilter", showTooltip: "showTooltip", maxLengthRenderWithoutTooltip: "maxLengthRenderWithoutTooltip" }, outputs: { added: "added", removed: "removed", focused: "focused", focusLost: "focusLost", chipClicked: "chipClicked", valueChange: "valueChange" }, host: { listeners: { "document:keydown": "onKeydown($event)" } }, providers: [
            {
                provide: NG_VALUE_ACCESSOR,
                useExisting: forwardRef(() => ChipsComponent),
                multi: true,
            },
        ], queries: [{ propertyName: "templates", predicate: TemplateDirective }], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, read: ElementRef }], ngImport: i0, template: "<ul\n    class=\"chips-container w-full p-1.5 flex flex-wrap items-center rounded-small border border-grayscale-30 bg-grayscale-0 list-none gap-2 min-h-[35px]\"\n    [class.outline]=\"isFocused\"\n    [class.outline-2]=\"isFocused\"\n    [class.outline-criticality-blue]=\"isFocused\">\n    @for(item of value; track $index) {\n        <li>\n            <s-chip-item\n                [templateRef]=\"chipTemplate\"\n                [dataRender]=\"item\"\n                [objectField]=\"field\"\n                [itemIndex]=\"$index\"\n                [disabled]=\"disabled\"\n                [showTooltip]=\"showTooltip\"\n                [maxLengthRenderWithoutTooltip]=\"maxLengthRenderWithoutTooltip\"\n                (clickRemove)=\"removeItem($event)\"\n                (chipClicked)=\"onChipClicked($event)\">\n            </s-chip-item>\n        </li>\n    }\n\n    @if(keyFilter) {\n        <input\n            #input\n            class=\"bg-grayscale-0 w-full border-none flex-1 focus-visible:outline-none\"\n            [disabled]=\"disabled || max === value.length\"\n            [placeholder]=\"placeholder || ''\"\n            [maxlength]=\"maxLength\"\n            [id]=\"inputId\"\n            [(ngModel)]=\"newItem\"\n            [pKeyFilter]=\"keyFilter\"\n            (focus)=\"onInputFocus($event)\"\n            (blur)=\"onInputLostFocus($event)\">\n    }@else {\n        <input\n            #input\n            class=\"bg-grayscale-0 w-full border-none flex-1 focus-visible:outline-none\"\n            [disabled]=\"disabled || max === value.length\"\n            [placeholder]=\"placeholder || ''\"\n            [maxlength]=\"maxLength\"\n            [id]=\"inputId\"\n            [(ngModel)]=\"newItem\"\n            (focus)=\"onInputFocus($event)\"\n            (blur)=\"onInputLostFocus($event)\">\n    }\n</ul>\n@if(infoLabel) {\n    <span class=\"text-grayscale-50 text-xs\">\n        {{ infoLabel }}\n    </span>\n}\n", styles: [":host.ng-invalid.ng-dirty .chips-container{--tw-border-opacity: 1;border-color:rgb(193 48 24 / var(--tw-border-opacity, 1))}\n"], dependencies: [{ kind: "component", type: ChipItemComponent, selector: "s-chip-item", inputs: ["dataRender", "objectField", "disabled", "templateRef", "itemIndex", "showTooltip", "maxLengthRenderWithoutTooltip"], outputs: ["clickRemove", "chipClicked"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: KeyFilter, selector: "[pKeyFilter]", inputs: ["pValidateOnly", "pKeyFilter"], outputs: ["ngModelChange"] }] });
}
__decorate([
    CheckDisabled()
], ChipsComponent.prototype, "onKeydown", null);
__decorate([
    CheckDisabled()
], ChipsComponent.prototype, "onInputLostFocus", null);
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChipsComponent, decorators: [{
            type: Component,
            args: [{ selector: 's-chips', providers: [
                        {
                            provide: NG_VALUE_ACCESSOR,
                            useExisting: forwardRef(() => ChipsComponent),
                            multi: true,
                        },
                    ], standalone: true, imports: [ChipItemComponent, FormsModule, KeyFilter], template: "<ul\n    class=\"chips-container w-full p-1.5 flex flex-wrap items-center rounded-small border border-grayscale-30 bg-grayscale-0 list-none gap-2 min-h-[35px]\"\n    [class.outline]=\"isFocused\"\n    [class.outline-2]=\"isFocused\"\n    [class.outline-criticality-blue]=\"isFocused\">\n    @for(item of value; track $index) {\n        <li>\n            <s-chip-item\n                [templateRef]=\"chipTemplate\"\n                [dataRender]=\"item\"\n                [objectField]=\"field\"\n                [itemIndex]=\"$index\"\n                [disabled]=\"disabled\"\n                [showTooltip]=\"showTooltip\"\n                [maxLengthRenderWithoutTooltip]=\"maxLengthRenderWithoutTooltip\"\n                (clickRemove)=\"removeItem($event)\"\n                (chipClicked)=\"onChipClicked($event)\">\n            </s-chip-item>\n        </li>\n    }\n\n    @if(keyFilter) {\n        <input\n            #input\n            class=\"bg-grayscale-0 w-full border-none flex-1 focus-visible:outline-none\"\n            [disabled]=\"disabled || max === value.length\"\n            [placeholder]=\"placeholder || ''\"\n            [maxlength]=\"maxLength\"\n            [id]=\"inputId\"\n            [(ngModel)]=\"newItem\"\n            [pKeyFilter]=\"keyFilter\"\n            (focus)=\"onInputFocus($event)\"\n            (blur)=\"onInputLostFocus($event)\">\n    }@else {\n        <input\n            #input\n            class=\"bg-grayscale-0 w-full border-none flex-1 focus-visible:outline-none\"\n            [disabled]=\"disabled || max === value.length\"\n            [placeholder]=\"placeholder || ''\"\n            [maxlength]=\"maxLength\"\n            [id]=\"inputId\"\n            [(ngModel)]=\"newItem\"\n            (focus)=\"onInputFocus($event)\"\n            (blur)=\"onInputLostFocus($event)\">\n    }\n</ul>\n@if(infoLabel) {\n    <span class=\"text-grayscale-50 text-xs\">\n        {{ infoLabel }}\n    </span>\n}\n", styles: [":host.ng-invalid.ng-dirty .chips-container{--tw-border-opacity: 1;border-color:rgb(193 48 24 / var(--tw-border-opacity, 1))}\n"] }]
        }], propDecorators: { disabled: [{
                type: Input
            }], field: [{
                type: Input
            }], value: [{
                type: Input
            }], placeholder: [{
                type: Input
            }], max: [{
                type: Input
            }], maxLength: [{
                type: Input
            }], inputId: [{
                type: Input
            }], allowDuplicated: [{
                type: Input
            }], caseSensitiveDuplication: [{
                type: Input
            }], addOnTab: [{
                type: Input
            }], addOnBlur: [{
                type: Input
            }], separator: [{
                type: Input
            }], autofocus: [{
                type: Input
            }], infoLabel: [{
                type: Input
            }], keyFilter: [{
                type: Input
            }], showTooltip: [{
                type: Input
            }], maxLengthRenderWithoutTooltip: [{
                type: Input
            }], added: [{
                type: Output
            }], removed: [{
                type: Output
            }], focused: [{
                type: Output
            }], focusLost: [{
                type: Output
            }], chipClicked: [{
                type: Output
            }], valueChange: [{
                type: Output
            }], templates: [{
                type: ContentChildren,
                args: [TemplateDirective]
            }], input: [{
                type: ViewChild,
                args: ['input', { read: ElementRef }]
            }], onKeydown: [{
                type: HostListener,
                args: ['document:keydown', ['$event']]
            }], onInputLostFocus: [] } });

class ChipsModule {
    static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChipsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
    static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: ChipsModule, imports: [ChipsComponent], exports: [ChipsComponent] });
    static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChipsModule, imports: [ChipsComponent] });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChipsModule, decorators: [{
            type: NgModule,
            args: [{
                    imports: [ChipsComponent],
                    exports: [ChipsComponent],
                }]
        }] });

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

export { ChipsComponent, ChipsModule };
//# sourceMappingURL=seniorsistemas-angular-components-chips.mjs.map
