{"version":3,"file":"seniorsistemas-angular-components-insights.mjs","sources":["../../projects/angular-components/insights/src/lib/insights/components/insights-card/components/insights-card-loader/insights-card-loader.component.ts","../../projects/angular-components/insights/src/lib/insights/components/insights-card/components/insights-card-loader/insights-card-loader.component.html","../../projects/angular-components/insights/src/lib/insights/components/insights-card/insights-card.component.ts","../../projects/angular-components/insights/src/lib/insights/components/insights-card/insights-card.component.html","../../projects/angular-components/insights/src/lib/insights/components/insights-sidebar/insights-sidebar.component.ts","../../projects/angular-components/insights/src/lib/insights/components/insights-sidebar/insights-sidebar.component.html","../../projects/angular-components/insights/src/lib/insights/insights.component.ts","../../projects/angular-components/insights/src/lib/insights/insights.component.html","../../projects/angular-components/insights/src/lib/insights/insights.module.ts","../../projects/angular-components/insights/src/seniorsistemas-angular-components-insights.ts"],"sourcesContent":["import { Component } from \"@angular/core\";\n\n@Component({\n    selector: \"s-insights-card-loader\",\n    templateUrl: \"./insights-card-loader.component.html\",\n    styleUrls: [\"./insights-card-loader.component.scss\"],\n})\nexport class InsightsCardLoaderComponent {}\n","<div class=\"insights-card-loader\">\n    <div class=\"loader\">\n        <div class=\"loader-icon\">\n                <div *sSVGFactory=\"'iassist'\"></div>\n        </div>\n    </div>\n    \n    <span class=\"loader-label\">{{ \"platform.angular_components.loading_insight\" | translate }}</span>\n</div>\n","import { Clipboard } from '@angular/cdk/clipboard';\nimport { Component, Input, inject } from '@angular/core';\n\nimport { TranslateService } from '@ngx-translate/core';\nimport { ToastService } from '@seniorsistemas/angular-components/toast';\nimport { finalize, first } from 'rxjs/operators';\n\nimport { marked } from 'marked';\nimport { InsightsItem } from '../../models/insights-item';\n\n@Component({\n    selector: 's-insights-card',\n    templateUrl: './insights-card.component.html',\n    styleUrls: ['./insights-card.component.scss'],\n})\nexport class InsightsCardComponent {\n    private readonly clipboard = inject(Clipboard);\n    private readonly toastService = inject(ToastService);\n    private readonly translateService = inject(TranslateService);\n\n    @Input({ required: true })\n    public insight!: InsightsItem;\n\n    public open = false;\n    public isLoading = false;\n    public content?: string;\n\n    public likeSelected = false;\n    public dislikeSelected = false;\n\n    public toggle(): void {\n        const newOpenState = !this.open;\n        this.open = newOpenState;\n        if (newOpenState === true && this.insight.onOpenSidebar) {\n            this.insight.onOpenSidebar();\n        } else if (newOpenState === false && this.insight.onCloseSideBar) {\n            this.insight.onCloseSideBar();\n        }\n        if (newOpenState === true) {\n            this._requestInsight();\n        }\n    }\n\n    public onLikeSelected(): void {\n        if (this.likeSelected) {\n            this.likeSelected = false;\n        } else {\n            this.likeSelected = true;\n            this.dislikeSelected = false;\n            this.insight.onLikeSelected?.();\n        }\n    }\n\n    public onDislikeSelected(): void {\n        if (this.dislikeSelected) {\n            this.dislikeSelected = false;\n        } else {\n            this.dislikeSelected = true;\n            this.likeSelected = false;\n            this.insight.onDislikeSelected?.();\n        }\n    }\n\n    public copyContent(): void {\n        if (!this.content) return;\n\n        this.insight.onCopy?.(this.content);\n\n        if (this.clipboard.copy(this.content)) {\n            this.toastService.show({\n                severity: 'info',\n                title: this.translateService.instant('platform.angular_components.copied_to_clipboard'),\n            });\n        }\n    }\n\n    public reloadContent(): void {\n        this._requestInsight();\n    }\n\n    private _requestInsight(): void {\n        this.isLoading = true;\n\n        this.insight.request$\n            .pipe(\n                first(),\n                finalize(() => (this.isLoading = false)),\n            )\n            .subscribe(async (content: string) => {\n                this.content = await marked(content);\n                if (this.insight.onContentLoaded) {\n                    this.insight.onContentLoaded();\n                }\n            });\n    }\n}\n","<div\n    class=\"insights-card\"\n    [ngClass]=\"{ 'insights-card--close': !open }\"\n>\n    <div\n        class=\"header\"\n        (click)=\"toggle()\"\n    >\n        <s-badge\n            text=\"Insight\"\n            iconClass=\"fal fa-lightbulb\"\n        ></s-badge>\n        <span class=\"insight-title\">{{ insight.title }}</span>\n        <span class=\"toggle-icon\">\n            <i\n                class=\"fas\"\n                [ngClass]=\"{\n                    'fa-angle-down': !open,\n                    'fa-angle-up': open,\n                }\"\n            >\n            </i>\n        </span>\n    </div>\n    <div class=\"content\">\n        <ng-container *ngIf=\"isLoading; then loadingBlock; else contentBlock\"></ng-container>\n        <ng-template #loadingBlock>\n            <s-insights-card-loader></s-insights-card-loader>\n        </ng-template>\n        <ng-template #contentBlock>\n            <ng-container *ngIf=\"content; then successBlock; else errorBlock\"></ng-container>\n\n            <ng-template #successBlock>\n                <span\n                    class=\"text\"\n                    [innerHTML]=\"content\"\n                ></span>\n                <span class=\"insight-footer\">{{ \"platform.angular_components.insight_footer\" | translate }}</span>\n\n            </ng-template>\n            <ng-template #errorBlock>\n                <span class=\"text text--error\">{{\n                    'platform.angular_components.error_loading_insight_alt' | translate\n                }}</span>\n            </ng-template>\n\n            <div class=\"options\">\n                <button\n                    [disabled]=\"!content\"\n                    (click)=\"copyContent()\"\n                    class=\"option\"\n                >\n                    <i class=\"fal fa-copy\"></i>\n                </button>\n                <button\n                    (click)=\"reloadContent()\"\n                    class=\"option\"\n                >\n                    <i class=\"fal fa-redo\"></i>\n                </button>\n                <button\n                    *ngIf=\"insight.onLikeSelected\"\n                    [disabled]=\"!content\"\n                    (click)=\"onLikeSelected()\"\n                    class=\"option\"\n                >\n                    <i\n                        [ngClass]=\"{\n                            fal: !likeSelected,\n                            fas: likeSelected,\n                            'fa-thumbs-up': true,\n                        }\"\n                    >\n                    </i>\n                </button>\n                <button\n                    *ngIf=\"insight.onDislikeSelected\"\n                    [disabled]=\"!content\"\n                    (click)=\"onDislikeSelected()\"\n                    class=\"option\"\n                >\n                    <i\n                        [ngClass]=\"{\n                            fal: !dislikeSelected,\n                            fas: dislikeSelected,\n                            'fa-thumbs-down': true,\n                        }\"\n                    ></i>\n                </button>\n            </div>\n        </ng-template>\n    </div>\n</div>\n","import { Component, Input, output, TemplateRef } from '@angular/core';\n\nimport { InsightsItem } from '../../models/index';\n\n@Component({\n    selector: 's-insights-sidebar',\n    templateUrl: './insights-sidebar.component.html',\n    styleUrls: ['./insights-sidebar.component.scss'],\n})\nexport class InsightsSidebarComponent {\n    @Input()\n    public insights: InsightsItem[] = [];\n\n    @Input()\n    public hasPermission = false;\n\n    @Input()\n    public introText?: string;\n\n    @Input()\n    public introTemplate: TemplateRef<any> | null = null;\n\n    @Input()\n    public emptyText?: string;\n\n    @Input()\n    public emptyTemplate: TemplateRef<any> | null = null;\n\n    @Input()\n    public noPermissionText?: string;\n\n    @Input()\n    public noPermissionTemplate: TemplateRef<any> | null = null;\n\n    public closedSidebar = output<void>();\n\n    public openedSidebar = output<void>();\n\n    public opened = false;\n\n    public toggle(): void {\n        const newState = !this.opened;\n        if (newState) {\n            this.open();\n        } else {\n            this.close();\n        }\n    }\n\n    public open(): void {\n        this.opened = true;\n        this.openedSidebar.emit();\n    }\n\n    public close(): void {\n        this.opened = false;\n        this.closedSidebar.emit();\n    }\n}\n","<div\n    class=\"sidebar\"\n    [class.opened]=\"opened\">\n    <div class=\"header\">\n        <button (click)=\"close()\" class=\"option\">\n            <span class=\"far fa-chevron-double-right\"></span>\n        </button>\n        <div class=\"title\">\n            <span><ng-container [ngTemplateOutlet]=\"iassistIcon\"></ng-container></span>\n            <span>IAssist Insights</span>\n        </div>\n    </div>\n    <div class=\"intro\">\n        <ng-container *ngIf=\"hasPermission; then permissionBlock; else noPermissionBlock\"></ng-container>\n\n        <ng-template #permissionBlock>\n            <ng-container *ngIf=\"insights.length; then introBlock; else emptyBlock\"></ng-container>\n\n            <ng-template #introBlock>\n                <ng-container *ngIf=\"introTemplate; then introCustomBlock; else introTextBlock\"></ng-container>\n\n                <ng-template #introCustomBlock>\n                    <ng-container *ngTemplateOutlet=\"introTemplate\"></ng-container>\n                </ng-template>\n\n                <ng-template #introTextBlock>\n                    <span class=\"text\">{{ introText || \"platform.angular_components.insight_intro\" | translate }}</span>\n                </ng-template>\n            </ng-template>\n\n            <ng-template #emptyBlock>\n                <ng-container *ngIf=\"emptyTemplate; then emptyCustomBlock; else emptyTextBlock\"></ng-container>\n\n                <ng-template #emptyCustomBlock>\n                    <ng-container *ngTemplateOutlet=\"emptyTemplate\"></ng-container>\n                </ng-template>\n\n                <ng-template #emptyTextBlock>\n                    <span class=\"text\">{{ emptyText || \"platform.angular_components.insight_empty\" | translate }}</span>\n                </ng-template>\n            </ng-template>\n        </ng-template>\n\n        <ng-template #noPermissionBlock>\n            <ng-container *ngIf=\"noPermissionTemplate; then noPermissionCustomBlock; else noPermissionTextBlock\"></ng-container>\n\n            <ng-template #noPermissionCustomBlock>\n                <ng-container *ngTemplateOutlet=\"noPermissionTemplate\"></ng-container>\n            </ng-template>\n\n            <ng-template #noPermissionTextBlock>\n                <span>{{ noPermissionText || \"platform.angular_components.insight_no_permission\" | translate }}</span>\n            </ng-template>\n        </ng-template>\n    </div>\n    <div class=\"insights\">\n        <ng-container *ngIf=\"insights.length\">\n            <s-insights-card\n                *ngFor=\"let insight of insights\"\n                [insight]=\"insight\">\n            </s-insights-card>\n        </ng-container>\n    </div>\n</div>\n\n<ng-template #iassistIcon>\n    <div style=\"width: 28px; height: 28px;\">\n        <span *sSVGFactory=\"'iassist'\"></span>\n    </div>\n</ng-template>\n","import {\n    AfterContentInit,\n    Component,\n    ContentChildren,\n    Input,\n    output,\n    QueryList,\n    TemplateRef,\n    ViewChild,\n} from '@angular/core';\n\nimport { DEPRECATED_CONFIG } from '@seniorsistemas/angular-components/common/deprecated-selector';\nimport { DeprecatedSelectorDirective } from '@seniorsistemas/angular-components/common/deprecated-selector';\nimport { TemplateDirective } from '@seniorsistemas/angular-components/template';\n\nimport { InsightsSidebarComponent } from './components/insights-sidebar/insights-sidebar.component';\nimport { InsightsItem } from './models/insights-item';\nimport { InsightsTemplateTypes } from './models/insights-template-types';\n/**\n * @description Componente de painel lateral de insights com IA. Exibe uma lista de itens\n * de insights em um sidebar, suportando templates customizáveis para o conteúdo de\n * introdução, estado vazio e sem permissão. Também exporta como seletor legado `s-ia-insight`.\n *\n * @example\n * ```html\n * <s-insights\n *   [insights]=\"listaInsights\"\n *   [hasPermission]=\"true\"\n *   (openInsights)=\"onAbrir()\" />\n * ```\n *\n * @category Structure\n */\n@Component({\n    selector: 's-insights, s-ia-insight',\n    templateUrl: './insights.component.html',\n    hostDirectives: [DeprecatedSelectorDirective],\n    providers: [\n        {\n            provide: DEPRECATED_CONFIG,\n            useValue: {\n                oldSelector: 's-ia-insight',\n                newSelector: 's-insights',\n                removalVersion: '20.0.0',\n            },\n        },\n    ],\n})\nexport class InsightsComponent implements AfterContentInit {\n    /** @description Lista de itens de insight a serem exibidos no painel. @default [] */\n    @Input()\n    public insights: InsightsItem[] = [];\n\n    /** @description Indica se o usuário tem permissão para ver os insights. @default true */\n    @Input()\n    public hasPermission = true;\n\n    /** @description Texto de introdução exibido no topo do painel (quando sem template customizado). */\n    @Input()\n    public introText?: string;\n\n    /** @description Texto exibido quando não há insights disponíveis. */\n    @Input()\n    public emptyText?: string;\n\n    /** @description Texto exibido quando o usuário não tem permissão. */\n    @Input()\n    public noPermissionText?: string;\n\n    @ViewChild(InsightsSidebarComponent)\n    public sidebar: InsightsSidebarComponent | null = null;\n\n    @ContentChildren(TemplateDirective)\n    public templates: QueryList<TemplateDirective> | null = null;\n\n    /** @description Emitido quando o painel de insights é aberto. */\n    public openInsights = output<void>();\n\n    /** @description Emitido quando o painel de insights é fechado. */\n    public closedInsights = output<void>();\n\n    public introTemplate: TemplateRef<any> | null = null;\n    public emptyTemplate: TemplateRef<any> | null = null;\n    public noPermissionTemplate: TemplateRef<any> | null = null;\n\n    public ngAfterContentInit(): void {\n        this._getTemplates();\n    }\n\n    public open(): void {\n        this.sidebar?.open();\n    }\n\n    public close(): void {\n        this.sidebar?.close();\n    }\n\n    public getIntroTemplate(): TemplateRef<any> | null {\n        return this._getCustomTemplate('intro');\n    }\n\n    public getNoPermissionTemplate(): TemplateRef<any> | null {\n        return this._getCustomTemplate('no-permission');\n    }\n\n    public getEmptyTemplate(): TemplateRef<any> | null {\n        return this._getCustomTemplate('empty');\n    }\n\n    private _getCustomTemplate(type: InsightsTemplateTypes): TemplateRef<any> | null {\n        return this.templates?.find((template: TemplateDirective) => template.type === type)?.template ?? null;\n    }\n\n    private _getTemplates(): void {\n        this.introTemplate = this.getIntroTemplate();\n        this.emptyTemplate = this.getEmptyTemplate();\n        this.noPermissionTemplate = this.getNoPermissionTemplate();\n    }\n}\n\n","<s-insights-sidebar\n    #sidebar\n    [insights]=\"insights\"\n    [hasPermission]=\"hasPermission\"\n    [introText]=\"introText\"\n    [introTemplate]=\"introTemplate\"\n    [emptyText]=\"emptyText\"\n    [emptyTemplate]=\"emptyTemplate\"\n    [noPermissionText]=\"noPermissionText\"\n    [noPermissionTemplate]=\"noPermissionTemplate\"\n    (openedSidebar)=\"openInsights.emit()\"\n    (closedSidebar)=\"closedInsights.emit()\"\n>\n</s-insights-sidebar>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { TranslateModule } from '@ngx-translate/core';\nimport { BadgeModule } from '@seniorsistemas/angular-components/badge';\nimport { ButtonModule } from '@seniorsistemas/angular-components/button';\nimport { TemplateModule } from '@seniorsistemas/angular-components/template';\nimport { TooltipModule } from '@seniorsistemas/angular-components/tooltip';\n\nimport { InsightsCardComponent } from './components/insights-card/insights-card.component';\nimport { InsightsSidebarComponent } from './components/insights-sidebar/insights-sidebar.component';\nimport { InsightsComponent } from './insights.component';\nimport { SVGFactoryModule } from '@seniorsistemas/angular-components/common';\nimport { InsightsCardLoaderComponent } from './components/insights-card/components';\n\n@NgModule({\n    imports: [\n        CommonModule,\n        TranslateModule,\n        BadgeModule,\n        ButtonModule,\n        TooltipModule,\n        TemplateModule,\n        SVGFactoryModule,\n    ],\n    declarations: [InsightsComponent, InsightsCardComponent, InsightsSidebarComponent, InsightsCardLoaderComponent],\n    exports: [InsightsComponent, TemplateModule],\n})\nexport class InsightsModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i1","i3.InsightsCardLoaderComponent","i3.InsightsCardComponent","i2.InsightsSidebarComponent"],"mappings":"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"}