import * as i0 from '@angular/core';
import { inject, Injectable, Injector, viewChild, input, forwardRef, Component, ViewEncapsulation, Input, NgModule } from '@angular/core';
import * as i2 from '@angular/forms';
import { FormBuilder, FormGroup, NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule } from '@angular/forms';
import * as i10 from '@ngx-translate/core';
import { TranslateService, TranslateModule } from '@ngx-translate/core';
import * as i1 from '@seniorsistemas/angular-components/common/deprecated-selector';
import { DEPRECATED_CONFIG, DeprecatedSelectorDirective } from '@seniorsistemas/angular-components/common/deprecated-selector';
import { SpeechRecognitionService } from '@seniorsistemas/angular-components/speech-recognition';
import { throwError } from 'rxjs';
import { catchError } from 'rxjs/operators';
import { HttpClient } from '@angular/common/http';
import { ToastService } from '@seniorsistemas/angular-components/toast';
import * as i3 from '@seniorsistemas/angular-components/button';
import { ButtonModule } from '@seniorsistemas/angular-components/button';
import * as i4 from '@seniorsistemas/angular-components/loading-state';
import { LoadingStateModule } from '@seniorsistemas/angular-components/loading-state';
import * as i5 from '@angular/common';
import { NgTemplateOutlet } from '@angular/common';
import * as i6 from '@seniorsistemas/angular-components/text-area';
import { TextAreaModule } from '@seniorsistemas/angular-components/text-area';
import * as i7 from '@seniorsistemas/angular-components/dialog';
import { DialogComponent } from '@seniorsistemas/angular-components/dialog';
import * as i8 from '@seniorsistemas/angular-components/template';
import { TemplateModule } from '@seniorsistemas/angular-components/template';
import * as i9 from '@seniorsistemas/angular-components/common';
import { SVGFactoryModule } from '@seniorsistemas/angular-components/common';

/* eslint-disable max-len */
class IAssistService {
    http = inject(HttpClient);
    toastService = inject(ToastService);
    askIA(context, data) {
        const prompt = data.prompt
            ? this._replacePlaceholder(context, data)
            : this._createPrompt(context, data);
        return this.http
            .post('platform/iassist/api/latest/completions', {
            prompt,
            provider: 'OPEN_AI',
            parameters: {
                model: 'gpt-3.5-turbo',
                max_tokens: 700,
                temperature: 1,
            },
        })
            .pipe(catchError((err) => {
            this.toastService.show({
                severity: 'error',
                title: err.status ? String(err.status) : 'Error',
                text: (err.error && err.error.message) || err.statusText || err.message || 'Error',
            });
            return throwError(() => new Error(err.message));
        }));
    }
    _replacePlaceholder(context, data) {
        const values = { ...data, context };
        delete values.prompt;
        let result = data.prompt;
        for (const key in { ...values, context: context }) {
            const placeholder = new RegExp(`{{\\s*${key}\\s*}}`, 'g');
            result = result.replace(placeholder, values[key]);
        }
        console.log('prompt', result);
        return result;
    }
    _createPrompt(context, data) {
        return `Crie um texto genérico para preencher o campo de textarea.
        ${data.label ? `O campo tem o label ${data.label}.` : ''}
        ${data.id ? `O campo tem o id ${data.id}.` : ''}
        ${data.placeholder ? `Considere as instruções/sugestões do placeholder: ${data.placeholder}.` : ''}
        Baseie-se no contexto informado pelo usuário: '${context}'.
        O texto deve ser formal e conter informações pertinentes a um campo como este, como se um usuário real tivesse preenchido com as informações necessárias.
        O texto deve ser neutro com relação a generos, raças, religiões, etc.
        O texto deve ser impessoal e não deve conter informações pessoais do usuário.
        Não direcione o texto a ninguém, não use expressões como: caro, atenciosamente. gostaria, agradeço. O texto deve ser genérico.

        Exemplos de texto:
        Um campo de descrição de usuário: "Usuário com 20 anos, estudante de engenharia, gosta de jogar futebol e assistir filmes."
        Outro exemplo de descrição de usuário: "Usuário administrador, com acesso total ao sistema, responsável por gerenciar os usuários e os produtos."
        Um campo de descrição de um produto: "O produto é um celular, com tela de 6 polegadas, 128GB de armazenamento, 4GB de memória RAM, câmera de 12MP e bateria de 4000mAh."
        Outro exemplo de descrição de produto: "O produto é uma geladeira, com capacidade de 500 litros, 2 portas, cor branca, com freezer e gaveta de legumes."
        Outro exemplo de descrição de produto: "O produto é uma camiseta, tamanho M, cor azul, 100% algodão, com estampa de um gato."

        Em caso de contexto incompleto crie um texto genérico, como se fosse um exemplo de preenchimento do campo.
        O texto é para um campo de textarea, então escreva um texto sucinto.
        Exiba apenas o texto do output`;
    }
    static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: IAssistService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
    static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: IAssistService, providedIn: 'root' });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: IAssistService, decorators: [{
            type: Injectable,
            args: [{ providedIn: 'root' }]
        }] });

/**
 * @description Componente de área de texto com geração de conteúdo por inteligência artificial.
 * Integra-se ao serviço IAssist para sugerir e completar textos com base em um prompt configurável.
 * Suporta reconhecimento de voz opcional e mantém contexto entre gerações quando `keepContext` é `true`.
 * Implementa {@link ControlValueAccessor} para uso em formulários Angular.
 *
 * @example
 * ```html
 * <s-content-generator
 *   formControlName="descricao"
 *   label="Descrição"
 *   prompt="Gere uma descrição para o produto"
 *   [rows]="5"
 *   [speechRecognition]="true" />
 * ```
 *
 * @category Inputs
 */
class ContentGeneratorComponent {
    _iassistService = inject(IAssistService);
    _formBuilder = inject(FormBuilder);
    _translateService = inject(TranslateService);
    speechRecognitionService = inject(SpeechRecognitionService);
    injector = inject(Injector);
    textArea = viewChild('textAreaElement');
    static id = 0;
    /** @description Identificador único do componente no DOM. Gerado automaticamente se não informado. */
    id = `ContentGenerator_${ContentGeneratorComponent.id--}`;
    /** @description Label exibido acima da área de texto. */
    label;
    /** @description Texto de placeholder exibido na área de texto quando vazia. @default '' */
    placeholder = '';
    /** @description Instrução (prompt) enviada ao serviço de IA para gerar o conteúdo sugerido. */
    prompt;
    /** @description Torna a área de texto somente leitura. @default false */
    readonly = false;
    /** @description Número de linhas visíveis da área de texto. @default 10 */
    rows = 10;
    /** @description Número de colunas visíveis da área de texto. @default 10 */
    cols = 10;
    /** @description Habilita o botão de reconhecimento de voz para ditado de texto. @default false */
    speechRecognition = false;
    /** @description Quando `true`, o histórico de gerações anteriores é enviado ao serviço de IA como contexto. @default false */
    keepContext = false;
    /** @description Texto de placeholder exibido no campo de reconhecimento de voz. @default '' */
    speechRecognitionPlaceholder = '';
    /** @description Limite máximo de caracteres permitidos na área de texto. `null` desabilita o limite. @default null */
    maxLength = null;
    /** @description Estilos CSS inline aplicados à área de texto interna. */
    textAreaStyle = input({});
    formGroup = new FormGroup({});
    contextForm = new FormGroup({});
    isVisible = false;
    isLoading = false;
    value = '';
    _onChange;
    _onTouched;
    ngOnInit() {
        this._createDialogFormGroup();
    }
    writeValue(value) {
        this.value = value;
    }
    registerOnChange(onChange) {
        this._onChange = onChange;
    }
    registerOnTouched(onTouched) {
        this._onTouched = onTouched;
    }
    onValueChange(value) {
        this.value = value;
        this._onChange?.(value);
    }
    showDialog() {
        this.isVisible = true;
        if (this._onTouched) {
            this._onTouched();
        }
    }
    hideDialog() {
        this.isVisible = false;
    }
    onHideDialog() {
        if (this.isVisible === false) {
            this.formGroup.get('context')?.setValue('');
        }
    }
    submitContext() {
        const context = this.formGroup.get('context');
        if (!context) {
            return;
        }
        this.isLoading = true;
        this._iassistService
            .askIA(context.value, {
            id: this.id,
            label: this.label,
            placeholder: this.placeholder,
            prompt: this.prompt,
        })
            .pipe(catchError((err) => {
            this.isLoading = false;
            return throwError(() => new Error(err.message));
        }))
            .subscribe((res) => {
            this.value = res.text;
            this._onChange?.(this.value);
            this.isLoading = false;
        });
        this.hideDialog();
    }
    _createDialogFormGroup() {
        this.formGroup = this._formBuilder.group({
            context: [''],
        });
    }
    static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ContentGeneratorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
    static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.14", type: ContentGeneratorComponent, selector: "s-content-generator, s-text-area-ia", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: false, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: false, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: false, isRequired: false, transformFunction: null }, prompt: { classPropertyName: "prompt", publicName: "prompt", isSignal: false, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: false, isRequired: false, transformFunction: null }, rows: { classPropertyName: "rows", publicName: "rows", isSignal: false, isRequired: false, transformFunction: null }, cols: { classPropertyName: "cols", publicName: "cols", isSignal: false, isRequired: false, transformFunction: null }, speechRecognition: { classPropertyName: "speechRecognition", publicName: "speechRecognition", isSignal: false, isRequired: false, transformFunction: null }, keepContext: { classPropertyName: "keepContext", publicName: "keepContext", isSignal: false, isRequired: false, transformFunction: null }, speechRecognitionPlaceholder: { classPropertyName: "speechRecognitionPlaceholder", publicName: "speechRecognitionPlaceholder", isSignal: false, isRequired: false, transformFunction: null }, maxLength: { classPropertyName: "maxLength", publicName: "maxLength", isSignal: false, isRequired: false, transformFunction: null }, textAreaStyle: { classPropertyName: "textAreaStyle", publicName: "textAreaStyle", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
            {
                provide: NG_VALUE_ACCESSOR,
                useExisting: forwardRef(() => ContentGeneratorComponent),
                multi: true,
            },
            {
                provide: DEPRECATED_CONFIG,
                useValue: {
                    oldSelector: 's-text-area-ia',
                    newSelector: 's-content-generator',
                    removalVersion: '20.0.0',
                },
            },
        ], viewQueries: [{ propertyName: "textArea", first: true, predicate: ["textAreaElement"], descendants: true, isSignal: true }], hostDirectives: [{ directive: i1.DeprecatedSelectorDirective }], ngImport: i0, template: "<s-loading-state\n    [loading]=\"isLoading\"\n    [blockWindow]=\"true\"\n>\n</s-loading-state>\n\n<s-dialog\n    [(visible)]=\"isVisible\"\n    [escapeOnEsc]=\"false\"\n    [destroyClickOutside]=\"false\"\n    size=\"lg\"\n    (visibleChange)=\"onHideDialog()\"\n>\n    <ng-template sTemplate=\"header\">\n        <div class=\"dialog-header\">\n            <span class=\"iassist-icon\">\n                <ng-container [ngTemplateOutlet]=\"iassistIcon\"></ng-container>\n            </span>\n            IAssist - Content Generator\n        </div>\n    </ng-template>\n\n    <form [formGroup]=\"formGroup\">\n        <label for=\"context\">{{ 'platform.angular_components.context' | translate }}</label>\n        <s-textarea\n            inputId=\"context\"\n            formControlName=\"context\"\n            [speechRecognition]=\"speechRecognition\"\n            [keepContext]=\"keepContext\"\n        />\n    </form>\n\n    <ng-template sTemplate=\"footer\">\n        <div class=\"footer-content\">\n            <s-button\n                id=\"-submit-button\"\n                type=\"button\"\n                [label]=\"'platform.angular_components.generate_text' | translate\"\n                (clicked)=\"submitContext()\"\n                sTooltip=\"(ALT + SHIFT + S)\"\n                showDelay=\"500\"\n            >\n            </s-button>\n            <s-button\n                id=\"-cancel-button\"\n                type=\"button\"\n                priority=\"link\"\n                [label]=\"'platform.angular_components.cancel' | translate\"\n                (clicked)=\"hideDialog()\"\n                sTooltip=\"(ALT + SHIFT + C)\"\n                showDelay=\"500\"\n            >\n            </s-button>\n        </div>\n    </ng-template>\n</s-dialog>\n\n<div class=\"textarea-ia\">\n    <s-textarea\n        #textAreaElement\n        [inputId]=\"id\"\n        [(ngModel)]=\"value\"\n        (ngModelChange)=\"onValueChange($event)\"\n        [rows]=\"rows\"\n        [readOnly]=\"readonly\"\n        [placeholder]=\"placeholder\"\n        [keepContext]=\"keepContext\"\n        [speechRecognitionPlaceholder]=\"speechRecognitionPlaceholder\"\n        [maxLength]=\"maxLength\"\n        [speechRecognition]=\"speechRecognition\"\n    >\n    </s-textarea>\n    <!--TODO: Tooltip em propriedade-->\n    <button\n        class=\"iassist-button\"\n        [class.speech-recognition]=\"speechRecognition && speechRecognitionService.hasSupportSpeechRecognition\"\n        (click)=\"showDialog()\"\n        sTooltip=\"IAssist - Content Generator\"\n    >\n        <ng-container [ngTemplateOutlet]=\"iassistIcon\"></ng-container>\n    </button>\n</div>\n\n<ng-template #iassistIcon>\n    <div style=\"width: 100%; height: 100%;\">\n        <span *sSVGFactory=\"'iassist'\"></span>\n    </div>\n</ng-template>\n", styles: ["s-content-generator.ng-invalid.ng-dirty .textarea-ia textarea,s-text-area-ia.ng-invalid.ng-dirty .textarea-ia textarea{border-color:#c13018}.footer-content{display:flex;flex-grow:0}.textarea-ia{display:flex;align-items:flex-end;gap:8px}.iassist-button{display:flex;justify-content:center;align-items:center;border:none;border-radius:50%;box-shadow:none;cursor:pointer;height:32px;width:32px}.dialog-header{display:flex;gap:12px}.dialog-header .iassist-icon{display:block;height:24px;width:24px}s-textarea{width:100%}.speech-recognition{margin-bottom:12.5px}\n"], dependencies: [{ kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i3.ButtonComponent, selector: "s-button", inputs: ["id", "label", "tooltip", "tooltipPosition", "iconClass", "rightIconClass", "caret", "styleClass", "baseZIndex", "disabled", "auxiliary", "type", "priority", "menuOptions", "size", "slide", "animation", "badge", "iconColor", "menuAriaLabel"], outputs: ["clicked"] }, { kind: "component", type: i4.LoadingStateComponent, selector: "s-loading-state", inputs: ["indicator", "id", "blockWindow", "loading", "progressBarMode", "progressBarValue", "progressBarLabel"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i6.TextAreaComponent, selector: "s-textarea", inputs: ["inputId", "rows", "speechRecognition", "keyFilter", "keepContext", "speechRecognitionPlaceholder", "maxLength", "placeholder", "inputStyle", "readOnly"] }, { kind: "component", type: i7.DialogComponent, selector: "s-dialog", inputs: ["header", "visible", "size", "contentClassName", "escapeOnEsc", "destroyClickOutside", "closeAriaLabel"], outputs: ["visibleChange"] }, { kind: "directive", type: i8.TemplateDirective, selector: "[sTemplate]", inputs: ["sTemplate"] }, { kind: "directive", type: i9.SVGFactoryDirective, selector: "[sSVGFactory]", inputs: ["sSVGFactory"] }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ContentGeneratorComponent, decorators: [{
            type: Component,
            args: [{ selector: 's-content-generator, s-text-area-ia', providers: [
                        {
                            provide: NG_VALUE_ACCESSOR,
                            useExisting: forwardRef(() => ContentGeneratorComponent),
                            multi: true,
                        },
                        {
                            provide: DEPRECATED_CONFIG,
                            useValue: {
                                oldSelector: 's-text-area-ia',
                                newSelector: 's-content-generator',
                                removalVersion: '20.0.0',
                            },
                        },
                    ], hostDirectives: [DeprecatedSelectorDirective], encapsulation: ViewEncapsulation.None, template: "<s-loading-state\n    [loading]=\"isLoading\"\n    [blockWindow]=\"true\"\n>\n</s-loading-state>\n\n<s-dialog\n    [(visible)]=\"isVisible\"\n    [escapeOnEsc]=\"false\"\n    [destroyClickOutside]=\"false\"\n    size=\"lg\"\n    (visibleChange)=\"onHideDialog()\"\n>\n    <ng-template sTemplate=\"header\">\n        <div class=\"dialog-header\">\n            <span class=\"iassist-icon\">\n                <ng-container [ngTemplateOutlet]=\"iassistIcon\"></ng-container>\n            </span>\n            IAssist - Content Generator\n        </div>\n    </ng-template>\n\n    <form [formGroup]=\"formGroup\">\n        <label for=\"context\">{{ 'platform.angular_components.context' | translate }}</label>\n        <s-textarea\n            inputId=\"context\"\n            formControlName=\"context\"\n            [speechRecognition]=\"speechRecognition\"\n            [keepContext]=\"keepContext\"\n        />\n    </form>\n\n    <ng-template sTemplate=\"footer\">\n        <div class=\"footer-content\">\n            <s-button\n                id=\"-submit-button\"\n                type=\"button\"\n                [label]=\"'platform.angular_components.generate_text' | translate\"\n                (clicked)=\"submitContext()\"\n                sTooltip=\"(ALT + SHIFT + S)\"\n                showDelay=\"500\"\n            >\n            </s-button>\n            <s-button\n                id=\"-cancel-button\"\n                type=\"button\"\n                priority=\"link\"\n                [label]=\"'platform.angular_components.cancel' | translate\"\n                (clicked)=\"hideDialog()\"\n                sTooltip=\"(ALT + SHIFT + C)\"\n                showDelay=\"500\"\n            >\n            </s-button>\n        </div>\n    </ng-template>\n</s-dialog>\n\n<div class=\"textarea-ia\">\n    <s-textarea\n        #textAreaElement\n        [inputId]=\"id\"\n        [(ngModel)]=\"value\"\n        (ngModelChange)=\"onValueChange($event)\"\n        [rows]=\"rows\"\n        [readOnly]=\"readonly\"\n        [placeholder]=\"placeholder\"\n        [keepContext]=\"keepContext\"\n        [speechRecognitionPlaceholder]=\"speechRecognitionPlaceholder\"\n        [maxLength]=\"maxLength\"\n        [speechRecognition]=\"speechRecognition\"\n    >\n    </s-textarea>\n    <!--TODO: Tooltip em propriedade-->\n    <button\n        class=\"iassist-button\"\n        [class.speech-recognition]=\"speechRecognition && speechRecognitionService.hasSupportSpeechRecognition\"\n        (click)=\"showDialog()\"\n        sTooltip=\"IAssist - Content Generator\"\n    >\n        <ng-container [ngTemplateOutlet]=\"iassistIcon\"></ng-container>\n    </button>\n</div>\n\n<ng-template #iassistIcon>\n    <div style=\"width: 100%; height: 100%;\">\n        <span *sSVGFactory=\"'iassist'\"></span>\n    </div>\n</ng-template>\n", styles: ["s-content-generator.ng-invalid.ng-dirty .textarea-ia textarea,s-text-area-ia.ng-invalid.ng-dirty .textarea-ia textarea{border-color:#c13018}.footer-content{display:flex;flex-grow:0}.textarea-ia{display:flex;align-items:flex-end;gap:8px}.iassist-button{display:flex;justify-content:center;align-items:center;border:none;border-radius:50%;box-shadow:none;cursor:pointer;height:32px;width:32px}.dialog-header{display:flex;gap:12px}.dialog-header .iassist-icon{display:block;height:24px;width:24px}s-textarea{width:100%}.speech-recognition{margin-bottom:12.5px}\n"] }]
        }], propDecorators: { id: [{
                type: Input
            }], label: [{
                type: Input
            }], placeholder: [{
                type: Input
            }], prompt: [{
                type: Input
            }], readonly: [{
                type: Input
            }], rows: [{
                type: Input
            }], cols: [{
                type: Input
            }], speechRecognition: [{
                type: Input
            }], keepContext: [{
                type: Input
            }], speechRecognitionPlaceholder: [{
                type: Input
            }], maxLength: [{
                type: Input
            }] } });

class ContentGeneratorModule {
    static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ContentGeneratorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
    static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: ContentGeneratorModule, declarations: [ContentGeneratorComponent], imports: [FormsModule,
            ReactiveFormsModule,
            TranslateModule,
            ButtonModule,
            LoadingStateModule,
            NgTemplateOutlet,
            TextAreaModule,
            DialogComponent,
            TemplateModule,
            SVGFactoryModule], exports: [ContentGeneratorComponent] });
    static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ContentGeneratorModule, imports: [FormsModule,
            ReactiveFormsModule,
            TranslateModule,
            ButtonModule,
            LoadingStateModule,
            TextAreaModule,
            DialogComponent,
            TemplateModule,
            SVGFactoryModule] });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ContentGeneratorModule, decorators: [{
            type: NgModule,
            args: [{
                    imports: [
                        FormsModule,
                        ReactiveFormsModule,
                        TranslateModule,
                        ButtonModule,
                        LoadingStateModule,
                        NgTemplateOutlet,
                        TextAreaModule,
                        DialogComponent,
                        TemplateModule,
                        SVGFactoryModule,
                    ],
                    declarations: [ContentGeneratorComponent],
                    exports: [ContentGeneratorComponent],
                }]
        }] });

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

export { ContentGeneratorComponent, ContentGeneratorModule };
//# sourceMappingURL=seniorsistemas-angular-components-content-generator.mjs.map
