import * as i0 from '@angular/core';
import { EventEmitter, Component, Input, Output, ContentChildren, NgModule } from '@angular/core';
import { trigger, transition, style, animate, state } from '@angular/animations';
import * as i1 from '@angular/forms';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { BadgeComponent } from '@seniorsistemas/angular-components/badge';
import { TooltipDirective } from '@seniorsistemas/angular-components/tooltip';
import { NgClass, NgTemplateOutlet } from '@angular/common';
import { SwitchComponent } from '@seniorsistemas/angular-components/switch';
import { Subject } from 'rxjs';
import { takeUntil } from 'rxjs/operators';

let nextPanelId = 0;
/**
 * @description Painel individual do {@link AccordionComponent}. Gerencia o estado de
 * abertura/fechamento com animação, podendo conter um switch de controle via `switchControl`,
 * botões de ação configuráveis e uma mensagem de validação com ícone.
 *
 * @example
 * ```html
 * <s-accordion-panel
 *   header="Configurações"
 *   [disabled]="false"
 *   (panelOpened)="onOpen()"
 *   (panelClosed)="onClose()">
 *   <p>Conteúdo do painel</p>
 * </s-accordion-panel>
 * ```
 *
 * @category Inputs
 */
class AccordionPanelComponent {
    /**
     * @description Título exibido no cabeçalho do painel. Campo obrigatório.
     */
    header;
    /**
     * @description Cria um componente Badge ao lado dos botões de ação no cabeçalho do painel.
     * O objeto de configuração deve conter o texto e a cor do badge.
     */
    badgeConfig;
    /**
     * @description Lista de botões de ação exibidos no cabeçalho do painel,
     * à direita do título. Cada item define ícone, tooltip e callback de clique.
     */
    buttons;
    /**
     * @description Desabilita a interação do usuário com o painel, impedindo abertura e fechamento.
     *
     * @default false
     */
    disabled = false;
    /**
     * @description `FormControl` vinculado a um switch exibido no cabeçalho do painel.
     * Permite habilitar/desabilitar o conteúdo do painel via toggle.
     */
    switchControl;
    /**
     * @description Mensagem de validação exibida abaixo do cabeçalho, acompanhada de um ícone.
     * Útil para indicar erros ou alertas relacionados ao conteúdo do painel.
     */
    validationMessage;
    /**
     * @description Mantém o conteúdo do painel no DOM mesmo quando fechado (modo cache).
     * Útil para preservar o estado de componentes internos ao reabrir o painel.
     *
     * @default false
     */
    cache = false;
    /**
     * @description Classe do ícone exibido ao lado da mensagem de validação.
     *
     * @default 'fas fa-exclamation-circle'
     */
    validationMessageIcon = 'fas fa-exclamation-circle';
    /**
     * @description Cor do ícone da mensagem de validação.
     *
     * @default 'Red'
     */
    validationMessageIconColor = 'Red';
    /**
     * @description Emitido quando o painel é aberto pelo usuário.
     */
    panelOpened = new EventEmitter();
    /**
     * @description Emitido quando o painel é fechado pelo usuário.
     */
    panelClosed = new EventEmitter();
    isAnimating = false;
    isContentAnimationDisabled = true;
    panelId = nextPanelId++;
    _isOpen = false;
    get isOpen() {
        return this._isOpen;
    }
    set isOpen(isOpen) {
        this._isOpen = isOpen;
    }
    ngOnChanges(changes) {
        if ('disabled' in changes && this.switchControl) {
            if (changes['disabled'].currentValue) {
                this.switchControl.disable({ emitEvent: false });
            }
            else {
                this.switchControl.enable({ emitEvent: false });
            }
        }
        if ('switch' in changes && 'switchControl' in changes) {
            throw new Error("You can't set switch and switchControl together.");
        }
    }
    ngAfterViewInit() {
        // to executed at a safe time prior to control returning to the browser's event loop
        queueMicrotask(() => {
            this.isContentAnimationDisabled = false;
        });
    }
    onIconButtonsClick(event, callback) {
        if (this.disabled) {
            return;
        }
        event.stopPropagation();
        callback();
    }
    onTabClick() {
        if (this.disabled || this.isAnimating) {
            return;
        }
        this.isOpen = !this.isOpen;
        this._emitPanelEvent();
    }
    onHeaderKeydown(event) {
        if (event.key === 'Enter' || event.key === ' ') {
            event.preventDefault();
            this.onTabClick();
        }
    }
    onContentAnimationStart() {
        this.isAnimating = true;
    }
    onContentAnimationDone() {
        this.isAnimating = false;
        this._emitPanelEvent();
    }
    _emitPanelEvent() {
        if (this.isOpen) {
            this.panelOpened.emit();
        }
        else {
            this.panelClosed.emit();
        }
    }
    static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AccordionPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
    static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: AccordionPanelComponent, isStandalone: true, selector: "s-accordion-panel", inputs: { header: "header", badgeConfig: "badgeConfig", buttons: "buttons", disabled: "disabled", switchControl: "switchControl", validationMessage: "validationMessage", cache: "cache", validationMessageIcon: "validationMessageIcon", validationMessageIconColor: "validationMessageIconColor" }, outputs: { panelOpened: "panelOpened", panelClosed: "panelClosed" }, usesOnChanges: true, ngImport: i0, template: "<div\n    class=\"accordion-panel border-b border-grayscale-30\"\n    [class.accordion-panel--open]=\"isOpen\"\n    [class.accordion-panel--disabled]=\"disabled\"\n>\n    <div\n        class=\"header flex select-none items-center justify-between border-grayscale-30 bg-grayscale-0 p-4\"\n        [class.bg-grayscale-10]=\"isOpen\"\n        [class.border-b]=\"isOpen\"\n        [class.cursor-pointer]=\"!disabled\"\n        [class.cursor-auto]=\"disabled\"\n    >\n        <div\n            class=\"header__trigger flex items-center flex-1 flex-nowrap focus-visible:outline focus-visible:outline-2 focus-visible:outline-primary focus-visible:[outline-offset:-2px]\"\n            [class.cursor-pointer]=\"!disabled\"\n            [class.cursor-auto]=\"disabled\"\n            role=\"button\"\n            [tabindex]=\"disabled ? -1 : 0\"\n            [attr.aria-expanded]=\"isOpen\"\n            [attr.aria-controls]=\"'accordion-panel-content-' + panelId\"\n            [attr.aria-disabled]=\"disabled\"\n            (click)=\"onTabClick()\"\n            (keydown)=\"onHeaderKeydown($event)\"\n        >\n            <span\n                class=\"icon fas text-base mr-3\"\n                [class.fa-minus]=\"isOpen\"\n                [class.fa-plus]=\"!isOpen\"\n                [class.text-grayscale-90]=\"!disabled\"\n                [class.text-grayscale-30]=\"disabled\"\n                aria-hidden=\"true\"\n            >\n            </span>\n            @if (validationMessage) {\n                <span\n                    class=\"exclamation-icon text-base mr-3\"\n                    [class]=\"validationMessageIcon\"\n                    [sTooltip]=\"validationMessage\"\n                    [class.exclamation-icon-red]=\"validationMessageIconColor === 'Red'\"\n                    [class.text-criticality-red]=\"validationMessageIconColor === 'Red'\"\n                    [class.exclamation-icon-orange]=\"validationMessageIconColor === 'Orange'\"\n                    [class.text-criticality-orange]=\"validationMessageIconColor === 'Orange'\"\n                    [class.exclamation-icon-yellow]=\"validationMessageIconColor === 'Yellow'\"\n                    [class.text-criticality-yellow]=\"validationMessageIconColor === 'Yellow'\"\n                    [class.exclamation-icon-green]=\"validationMessageIconColor === 'Green'\"\n                    [class.text-criticality-green]=\"validationMessageIconColor === 'Green'\"\n                    [class.exclamation-icon-blue]=\"validationMessageIconColor === 'Blue'\"\n                    [class.text-primary]=\"validationMessageIconColor === 'Blue'\"\n                    [class.opacity-50]=\"disabled\"\n                    aria-hidden=\"true\"\n                >\n                </span>\n            }\n            <span\n                class=\"title font-open-sans text-sm font-bold uppercase leading-normal\"\n                [class.text-grayscale-30]=\"disabled\"\n                [id]=\"'accordion-panel-header-' + panelId\"\n                >{{ header }}</span\n            >\n        </div>\n        <div class=\"header__controls flex items-center ml-4\">\n            @if (badgeConfig) {\n                <s-badge\n                    [color]=\"badgeConfig.color\"\n                    [text]=\"badgeConfig.text\"\n                ></s-badge>\n            }\n\n            @for (button of buttons; track button.icon) {\n                <button\n                    class=\"icon-button text-base ml-3 p-1 border-0 bg-transparent\"\n                    [class.text-grayscale-90]=\"!disabled\"\n                    [class.text-grayscale-30]=\"disabled\"\n                    [class.cursor-pointer]=\"!disabled\"\n                    [class.cursor-auto]=\"disabled\"\n                    [ngClass]=\"button.icon\"\n                    [attr.aria-label]=\"button.label\"\n                    (click)=\"onIconButtonsClick($event, button.onClick)\"\n                ></button>\n            }\n\n            @if (switchControl) {\n                <s-switch\n                    class=\"switch pl-4\"\n                    [formControl]=\"switchControl\"\n                    (click)=\"$event.stopPropagation()\"\n                >\n                </s-switch>\n            }\n        </div>\n    </div>\n\n    @if (cache) {\n        <div\n            class=\"content bg-grayscale-0 overflow-hidden\"\n            role=\"region\"\n            [attr.aria-labelledby]=\"'accordion-panel-header-' + panelId\"\n            [id]=\"'accordion-panel-content-' + panelId\"\n            [@cacheAnimation]=\"isOpen\"\n            [@.disabled]=\"isContentAnimationDisabled\"\n            (@cacheAnimation.start)=\"onContentAnimationStart()\"\n            (@cacheAnimation.done)=\"onContentAnimationDone()\"\n        >\n            <div class=\"content-container m-5\">\n                <ng-container [ngTemplateOutlet]=\"panelContent\"></ng-container>\n            </div>\n        </div>\n    } @else {\n        @if (isOpen) {\n            <div\n                class=\"content bg-grayscale-0 overflow-hidden\"\n                role=\"region\"\n                [attr.aria-labelledby]=\"'accordion-panel-header-' + panelId\"\n                [id]=\"'accordion-panel-content-' + panelId\"\n                @cachelessAnimation\n                [@.disabled]=\"isContentAnimationDisabled\"\n                (@cachelessAnimation.start)=\"onContentAnimationStart()\"\n                (@cachelessAnimation.done)=\"onContentAnimationDone()\"\n            >\n                <div class=\"content-container m-5\">\n                    <ng-container [ngTemplateOutlet]=\"panelContent\"></ng-container>\n                </div>\n            </div>\n        }\n    }\n</div>\n\n<ng-template #panelContent>\n    <ng-content></ng-content>\n</ng-template>\n", dependencies: [{ kind: "directive", type: TooltipDirective, selector: "[sTooltip]", inputs: ["sTooltip", "tooltipPosition", "showDelay", "displayTime", "tooltipEvent", "escape", "visible", "mobileBehavior", "focusedInputRef", "checkTruncatedText"] }, { kind: "component", type: BadgeComponent, selector: "s-badge", inputs: ["type", "color", "title", "text", "selectable", "iconClass", "iconPosition", "infoSign", "enableTruncateText"], outputs: ["selected"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: SwitchComponent, selector: "s-switch", inputs: ["readonly", "trueLabel", "falseLabel", "inputId", "label", "inputName", "disabled", "value", "showStatusLabel"], outputs: ["valueChanged"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], animations: [
            trigger('cachelessAnimation', [
                transition(':enter', [style({ height: '0' }), animate('200ms linear', style({ height: '*' }))]),
                transition(':leave', [style({ height: '*' }), animate('200ms linear', style({ height: '0' }))]),
            ]),
            trigger('cacheAnimation', [
                state('true', style({ height: '*' })),
                state('false', style({ height: '0px' })),
                transition('* => *', animate('200ms')),
            ]),
        ] });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AccordionPanelComponent, decorators: [{
            type: Component,
            args: [{ selector: 's-accordion-panel', animations: [
                        trigger('cachelessAnimation', [
                            transition(':enter', [style({ height: '0' }), animate('200ms linear', style({ height: '*' }))]),
                            transition(':leave', [style({ height: '*' }), animate('200ms linear', style({ height: '0' }))]),
                        ]),
                        trigger('cacheAnimation', [
                            state('true', style({ height: '*' })),
                            state('false', style({ height: '0px' })),
                            transition('* => *', animate('200ms')),
                        ]),
                    ], standalone: true, imports: [
                        TooltipDirective,
                        BadgeComponent,
                        NgClass,
                        SwitchComponent,
                        FormsModule,
                        ReactiveFormsModule,
                        NgTemplateOutlet,
                    ], template: "<div\n    class=\"accordion-panel border-b border-grayscale-30\"\n    [class.accordion-panel--open]=\"isOpen\"\n    [class.accordion-panel--disabled]=\"disabled\"\n>\n    <div\n        class=\"header flex select-none items-center justify-between border-grayscale-30 bg-grayscale-0 p-4\"\n        [class.bg-grayscale-10]=\"isOpen\"\n        [class.border-b]=\"isOpen\"\n        [class.cursor-pointer]=\"!disabled\"\n        [class.cursor-auto]=\"disabled\"\n    >\n        <div\n            class=\"header__trigger flex items-center flex-1 flex-nowrap focus-visible:outline focus-visible:outline-2 focus-visible:outline-primary focus-visible:[outline-offset:-2px]\"\n            [class.cursor-pointer]=\"!disabled\"\n            [class.cursor-auto]=\"disabled\"\n            role=\"button\"\n            [tabindex]=\"disabled ? -1 : 0\"\n            [attr.aria-expanded]=\"isOpen\"\n            [attr.aria-controls]=\"'accordion-panel-content-' + panelId\"\n            [attr.aria-disabled]=\"disabled\"\n            (click)=\"onTabClick()\"\n            (keydown)=\"onHeaderKeydown($event)\"\n        >\n            <span\n                class=\"icon fas text-base mr-3\"\n                [class.fa-minus]=\"isOpen\"\n                [class.fa-plus]=\"!isOpen\"\n                [class.text-grayscale-90]=\"!disabled\"\n                [class.text-grayscale-30]=\"disabled\"\n                aria-hidden=\"true\"\n            >\n            </span>\n            @if (validationMessage) {\n                <span\n                    class=\"exclamation-icon text-base mr-3\"\n                    [class]=\"validationMessageIcon\"\n                    [sTooltip]=\"validationMessage\"\n                    [class.exclamation-icon-red]=\"validationMessageIconColor === 'Red'\"\n                    [class.text-criticality-red]=\"validationMessageIconColor === 'Red'\"\n                    [class.exclamation-icon-orange]=\"validationMessageIconColor === 'Orange'\"\n                    [class.text-criticality-orange]=\"validationMessageIconColor === 'Orange'\"\n                    [class.exclamation-icon-yellow]=\"validationMessageIconColor === 'Yellow'\"\n                    [class.text-criticality-yellow]=\"validationMessageIconColor === 'Yellow'\"\n                    [class.exclamation-icon-green]=\"validationMessageIconColor === 'Green'\"\n                    [class.text-criticality-green]=\"validationMessageIconColor === 'Green'\"\n                    [class.exclamation-icon-blue]=\"validationMessageIconColor === 'Blue'\"\n                    [class.text-primary]=\"validationMessageIconColor === 'Blue'\"\n                    [class.opacity-50]=\"disabled\"\n                    aria-hidden=\"true\"\n                >\n                </span>\n            }\n            <span\n                class=\"title font-open-sans text-sm font-bold uppercase leading-normal\"\n                [class.text-grayscale-30]=\"disabled\"\n                [id]=\"'accordion-panel-header-' + panelId\"\n                >{{ header }}</span\n            >\n        </div>\n        <div class=\"header__controls flex items-center ml-4\">\n            @if (badgeConfig) {\n                <s-badge\n                    [color]=\"badgeConfig.color\"\n                    [text]=\"badgeConfig.text\"\n                ></s-badge>\n            }\n\n            @for (button of buttons; track button.icon) {\n                <button\n                    class=\"icon-button text-base ml-3 p-1 border-0 bg-transparent\"\n                    [class.text-grayscale-90]=\"!disabled\"\n                    [class.text-grayscale-30]=\"disabled\"\n                    [class.cursor-pointer]=\"!disabled\"\n                    [class.cursor-auto]=\"disabled\"\n                    [ngClass]=\"button.icon\"\n                    [attr.aria-label]=\"button.label\"\n                    (click)=\"onIconButtonsClick($event, button.onClick)\"\n                ></button>\n            }\n\n            @if (switchControl) {\n                <s-switch\n                    class=\"switch pl-4\"\n                    [formControl]=\"switchControl\"\n                    (click)=\"$event.stopPropagation()\"\n                >\n                </s-switch>\n            }\n        </div>\n    </div>\n\n    @if (cache) {\n        <div\n            class=\"content bg-grayscale-0 overflow-hidden\"\n            role=\"region\"\n            [attr.aria-labelledby]=\"'accordion-panel-header-' + panelId\"\n            [id]=\"'accordion-panel-content-' + panelId\"\n            [@cacheAnimation]=\"isOpen\"\n            [@.disabled]=\"isContentAnimationDisabled\"\n            (@cacheAnimation.start)=\"onContentAnimationStart()\"\n            (@cacheAnimation.done)=\"onContentAnimationDone()\"\n        >\n            <div class=\"content-container m-5\">\n                <ng-container [ngTemplateOutlet]=\"panelContent\"></ng-container>\n            </div>\n        </div>\n    } @else {\n        @if (isOpen) {\n            <div\n                class=\"content bg-grayscale-0 overflow-hidden\"\n                role=\"region\"\n                [attr.aria-labelledby]=\"'accordion-panel-header-' + panelId\"\n                [id]=\"'accordion-panel-content-' + panelId\"\n                @cachelessAnimation\n                [@.disabled]=\"isContentAnimationDisabled\"\n                (@cachelessAnimation.start)=\"onContentAnimationStart()\"\n                (@cachelessAnimation.done)=\"onContentAnimationDone()\"\n            >\n                <div class=\"content-container m-5\">\n                    <ng-container [ngTemplateOutlet]=\"panelContent\"></ng-container>\n                </div>\n            </div>\n        }\n    }\n</div>\n\n<ng-template #panelContent>\n    <ng-content></ng-content>\n</ng-template>\n" }]
        }], propDecorators: { header: [{
                type: Input,
                args: [{ required: true }]
            }], badgeConfig: [{
                type: Input
            }], buttons: [{
                type: Input
            }], disabled: [{
                type: Input
            }], switchControl: [{
                type: Input
            }], validationMessage: [{
                type: Input
            }], cache: [{
                type: Input
            }], validationMessageIcon: [{
                type: Input
            }], validationMessageIconColor: [{
                type: Input
            }], panelOpened: [{
                type: Output
            }], panelClosed: [{
                type: Output
            }] } });

/**
 * @description Componente de acordeão que gerencia a abertura e o fechamento de painéis
 * {@link AccordionPanelComponent}. Suporta modo de painel único (apenas um aberto por vez)
 * ou modo múltiplo (vários painéis abertos simultaneamente), configurável via input `multiple`.
 *
 * @example
 * ```html
 * <s-accordion [multiple]="false" [activeIndex]="0">
 *   <s-accordion-panel header="Seção 1">Conteúdo 1</s-accordion-panel>
 *   <s-accordion-panel header="Seção 2">Conteúdo 2</s-accordion-panel>
 * </s-accordion>
 * ```
 *
 * @category Inputs
 */
class AccordionComponent {
    /**
     * @description Índice (ou lista de índices) do(s) painel(is) que devem iniciar abertos.
     * Aceita um número para painel único ou um array de números para o modo múltiplo.
     */
    activeIndex;
    /**
     * @description Permite que múltiplos painéis estejam abertos ao mesmo tempo.
     * Quando `false`, abrir um painel fecha automaticamente o anterior.
     *
     * @default false
     */
    multiple = false;
    panelsComponents;
    _unsubscribe$ = new Subject();
    _panels = [];
    _openSubs = [];
    ngAfterContentInit() {
        if (this.panelsComponents) {
            this._panels = this.panelsComponents?.toArray();
        }
        this._openSubs = Array.from({ length: this._panels.length });
        this._setBehavior(this.multiple);
        this._setupTabs();
    }
    ngOnChanges(changes) {
        if (changes['multiple']) {
            this._setBehavior(changes['multiple'].currentValue);
        }
    }
    ngOnDestroy() {
        this._unsubscribe$.next();
        this._unsubscribe$.complete();
    }
    _setupTabs() {
        if (this._panels?.length) {
            if (this.activeIndex !== undefined && this.activeIndex !== null) {
                const activeTabs = Array.isArray(this.activeIndex)
                    ? this._panels.filter((_, index) => this.activeIndex.includes(index))
                    : [this._panels[this.activeIndex]];
                if (activeTabs.length === 0) {
                    throw new Error('activeIndex does not represent any panel.');
                }
                for (const activeTab of activeTabs) {
                    if (!activeTab.disabled) {
                        activeTab.isOpen = true;
                    }
                }
            }
        }
    }
    _closeOtherTabs(exception) {
        this._panels.forEach((panel, index) => {
            if (index !== exception) {
                panel.isOpen = false;
            }
        });
    }
    _setBehavior(multiple) {
        if (multiple) {
            this._enableMultiplePanelBehavior();
        }
        else {
            this._enableSinglePanelBehavior();
        }
    }
    _enableSinglePanelBehavior() {
        this._panels.forEach((panel, index) => {
            this._openSubs[index] = panel.panelOpened.pipe(takeUntil(this._unsubscribe$)).subscribe(() => {
                this._closeOtherTabs(index);
            });
        });
    }
    _enableMultiplePanelBehavior() {
        this._panels.forEach((_, index) => {
            if (this._openSubs[index]) {
                this._openSubs[index].unsubscribe();
            }
        });
    }
    static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AccordionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
    static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: AccordionComponent, isStandalone: true, selector: "s-accordion", inputs: { activeIndex: "activeIndex", multiple: "multiple" }, queries: [{ propertyName: "panelsComponents", predicate: AccordionPanelComponent }], usesOnChanges: true, ngImport: i0, template: "<div class=\"accordion border border-grayscale-30 rounded-xbig overflow-hidden\">\n    <ng-content></ng-content>\n</div>\n" });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AccordionComponent, decorators: [{
            type: Component,
            args: [{ selector: 's-accordion', standalone: true, template: "<div class=\"accordion border border-grayscale-30 rounded-xbig overflow-hidden\">\n    <ng-content></ng-content>\n</div>\n" }]
        }], propDecorators: { activeIndex: [{
                type: Input
            }], multiple: [{
                type: Input
            }], panelsComponents: [{
                type: ContentChildren,
                args: [AccordionPanelComponent]
            }] } });

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

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

export { AccordionComponent, AccordionModule, AccordionPanelComponent };
//# sourceMappingURL=seniorsistemas-angular-components-accordion.mjs.map
