{"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';\r\nimport { SVGFactoryDirective } from '@seniorsistemas/angular-components/common';\r\nimport { TranslatePipe } from '@ngx-translate/core';\r\n\r\n@Component({\r\n    selector: 's-insights-card-loader',\r\n    templateUrl: './insights-card-loader.component.html',\r\n    styleUrls: ['./insights-card-loader.component.scss'],\r\n    standalone: true,\r\n    imports: [SVGFactoryDirective, TranslatePipe],\r\n})\r\nexport class InsightsCardLoaderComponent {}\r\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';\r\nimport { Component, DestroyRef, Input, inject } from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\nimport { TranslateService, TranslatePipe } from '@ngx-translate/core';\r\nimport { ToastService } from '@seniorsistemas/angular-components/toast';\r\nimport { finalize, first } from 'rxjs/operators';\r\n\r\nimport { marked } from 'marked';\r\nimport { InsightsItem } from '../../models/insights-item';\r\nimport { NgClass } from '@angular/common';\r\nimport { BadgeComponent } from '@seniorsistemas/angular-components/badge';\r\nimport { InsightsCardLoaderComponent } from './components/insights-card-loader/insights-card-loader.component';\r\n\r\n/**\r\n * @description Ícones customizáveis do `s-insights-card`. Chaves não informadas mantêm o ícone padrão.\r\n */\r\nexport interface InsightsCardIcons {\r\n    /** Ícone do badge \"Insight\" no cabeçalho. Padrão: `fal fa-lightbulb`. */\r\n    lightbulb?: string;\r\n    /** Ícone do botão de copiar conteúdo. Padrão: `fal fa-copy`. */\r\n    copy?: string;\r\n    /** Ícone do botão de recarregar conteúdo. Padrão: `fal fa-redo`. */\r\n    redo?: string;\r\n    /** Ícone do botão de like. Padrão: `fal fa-thumbs-up` (não selecionado) / `fas fa-thumbs-up` (selecionado). */\r\n    thumbsUp?: string;\r\n    /** Ícone do botão de dislike. Padrão: `fal fa-thumbs-down` (não selecionado) / `fas fa-thumbs-down` (selecionado). */\r\n    thumbsDown?: string;\r\n}\r\n\r\n@Component({\r\n    selector: 's-insights-card',\r\n    templateUrl: './insights-card.component.html',\r\n    styleUrls: ['./insights-card.component.scss'],\r\n    standalone: true,\r\n    imports: [NgClass, BadgeComponent, InsightsCardLoaderComponent, TranslatePipe],\r\n})\r\nexport class InsightsCardComponent {\r\n    private readonly clipboard = inject(Clipboard);\r\n    private readonly toastService = inject(ToastService);\r\n    private readonly translateService = inject(TranslateService);\r\n    private readonly _destroyRef = inject(DestroyRef);\r\n\r\n    @Input({ required: true })\r\n    public insight!: InsightsItem;\r\n\r\n    @Input()\r\n    public icons?: InsightsCardIcons;\r\n\r\n    public open = false;\r\n    public isLoading = false;\r\n    public content?: string;\r\n\r\n    public likeSelected = false;\r\n    public dislikeSelected = false;\r\n\r\n    public get lightbulbIconClass(): string {\r\n        return this.icons?.lightbulb ?? 'fal fa-lightbulb';\r\n    }\r\n\r\n    public get copyIconClass(): string {\r\n        return this.icons?.copy ?? 'fal fa-copy';\r\n    }\r\n\r\n    public get redoIconClass(): string {\r\n        return this.icons?.redo ?? 'fal fa-redo';\r\n    }\r\n\r\n    public get thumbsUpIconClass(): string {\r\n        return this.icons?.thumbsUp ?? (this.likeSelected ? 'fas fa-thumbs-up' : 'fal fa-thumbs-up');\r\n    }\r\n\r\n    public get thumbsDownIconClass(): string {\r\n        return this.icons?.thumbsDown ?? (this.dislikeSelected ? 'fas fa-thumbs-down' : 'fal fa-thumbs-down');\r\n    }\r\n\r\n    public toggle(): void {\r\n        const newOpenState = !this.open;\r\n        this.open = newOpenState;\r\n        if (newOpenState === true && this.insight.onOpenSidebar) {\r\n            this.insight.onOpenSidebar();\r\n        } else if (newOpenState === false && this.insight.onCloseSideBar) {\r\n            this.insight.onCloseSideBar();\r\n        }\r\n        if (newOpenState === true) {\r\n            this._requestInsight();\r\n        }\r\n    }\r\n\r\n    public onLikeSelected(): void {\r\n        if (this.likeSelected) {\r\n            this.likeSelected = false;\r\n        } else {\r\n            this.likeSelected = true;\r\n            this.dislikeSelected = false;\r\n            this.insight.onLikeSelected?.();\r\n        }\r\n    }\r\n\r\n    public onDislikeSelected(): void {\r\n        if (this.dislikeSelected) {\r\n            this.dislikeSelected = false;\r\n        } else {\r\n            this.dislikeSelected = true;\r\n            this.likeSelected = false;\r\n            this.insight.onDislikeSelected?.();\r\n        }\r\n    }\r\n\r\n    public copyContent(): void {\r\n        if (!this.content) return;\r\n\r\n        this.insight.onCopy?.(this.content);\r\n\r\n        if (this.clipboard.copy(this.content)) {\r\n            this.toastService.show({\r\n                severity: 'info',\r\n                title: this.translateService.instant('platform.angular_components.copied_to_clipboard'),\r\n            });\r\n        }\r\n    }\r\n\r\n    public reloadContent(): void {\r\n        this._requestInsight();\r\n    }\r\n\r\n    private _requestInsight(): void {\r\n        this.isLoading = true;\r\n\r\n        this.insight.request$\r\n            .pipe(\r\n                first(),\r\n                finalize(() => (this.isLoading = false)),\r\n                takeUntilDestroyed(this._destroyRef),\r\n            )\r\n            .subscribe(async (content: string) => {\r\n                this.content = await marked(content);\r\n                if (this.insight.onContentLoaded) {\r\n                    this.insight.onContentLoaded();\r\n                }\r\n            });\r\n    }\r\n}\r\n","<div\r\n    class=\"insights-card\"\r\n    [ngClass]=\"{ 'insights-card--close': !open }\"\r\n>\r\n    <div\r\n        class=\"header\"\r\n        (click)=\"toggle()\"\r\n    >\r\n        <s-badge\r\n            text=\"Insight\"\r\n            [iconClass]=\"lightbulbIconClass\"\r\n        ></s-badge>\r\n        <span class=\"insight-title\">{{ insight.title }}</span>\r\n        <span class=\"toggle-icon\">\r\n            <i\r\n                class=\"fas\"\r\n                [ngClass]=\"{\r\n                    'fa-angle-down': !open,\r\n                    'fa-angle-up': open,\r\n                }\"\r\n            >\r\n            </i>\r\n        </span>\r\n    </div>\r\n    <div class=\"content\">\r\n        @if (isLoading) {\r\n            <s-insights-card-loader></s-insights-card-loader>\r\n        } @else {\r\n            @if (content) {\r\n                <span\r\n                    class=\"text\"\r\n                    [innerHTML]=\"content\"\r\n                ></span>\r\n                <span class=\"insight-footer\">{{ 'platform.angular_components.insight_footer' | translate }}</span>\r\n            } @else {\r\n                <span class=\"text text--error\">{{\r\n                    'platform.angular_components.error_loading_insight_alt' | translate\r\n                }}</span>\r\n            }\r\n            <div class=\"options\">\r\n                <button\r\n                    [disabled]=\"!content\"\r\n                    (click)=\"copyContent()\"\r\n                    class=\"option\"\r\n                >\r\n                    <i [class]=\"copyIconClass\"></i>\r\n                </button>\r\n                <button\r\n                    (click)=\"reloadContent()\"\r\n                    class=\"option\"\r\n                >\r\n                    <i [class]=\"redoIconClass\"></i>\r\n                </button>\r\n                @if (insight.onLikeSelected) {\r\n                    <button\r\n                        [disabled]=\"!content\"\r\n                        (click)=\"onLikeSelected()\"\r\n                        class=\"option\"\r\n                    >\r\n                        <i [class]=\"thumbsUpIconClass\"></i>\r\n                    </button>\r\n                }\r\n                @if (insight.onDislikeSelected) {\r\n                    <button\r\n                        [disabled]=\"!content\"\r\n                        (click)=\"onDislikeSelected()\"\r\n                        class=\"option\"\r\n                    >\r\n                        <i [class]=\"thumbsDownIconClass\"></i>\r\n                    </button>\r\n                }\r\n            </div>\r\n        }\r\n    </div>\r\n</div>\r\n","import { Component, Input, output, TemplateRef } from '@angular/core';\r\n\r\nimport { InsightsItem } from '../../models/index';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\nimport { InsightsCardComponent, InsightsCardIcons } from '../insights-card/insights-card.component';\r\nimport { SVGFactoryDirective } from '@seniorsistemas/angular-components/common';\r\nimport { TranslatePipe } from '@ngx-translate/core';\r\n\r\n@Component({\r\n    selector: 's-insights-sidebar',\r\n    templateUrl: './insights-sidebar.component.html',\r\n    styleUrls: ['./insights-sidebar.component.scss'],\r\n    standalone: true,\r\n    imports: [NgTemplateOutlet, InsightsCardComponent, SVGFactoryDirective, TranslatePipe],\r\n})\r\nexport class InsightsSidebarComponent {\r\n    @Input()\r\n    public insights: InsightsItem[] = [];\r\n\r\n    @Input()\r\n    public hasPermission = false;\r\n\r\n    @Input()\r\n    public introText?: string;\r\n\r\n    @Input()\r\n    public introTemplate: TemplateRef<any> | null = null;\r\n\r\n    @Input()\r\n    public emptyText?: string;\r\n\r\n    @Input()\r\n    public emptyTemplate: TemplateRef<any> | null = null;\r\n\r\n    @Input()\r\n    public noPermissionText?: string;\r\n\r\n    @Input()\r\n    public noPermissionTemplate: TemplateRef<any> | null = null;\r\n\r\n    /**\r\n     * @description Ícone do botão de fechar o sidebar.\r\n     * @default 'far fa-chevron-double-right'\r\n     */\r\n    @Input()\r\n    public closeIconClass = 'far fa-chevron-double-right';\r\n\r\n    /** @description Ícones customizáveis de cada `s-insights-card` renderizado no sidebar. */\r\n    @Input()\r\n    public icons?: InsightsCardIcons;\r\n\r\n    public closedSidebar = output<void>();\r\n\r\n    public openedSidebar = output<void>();\r\n\r\n    public opened = false;\r\n\r\n    public toggle(): void {\r\n        const newState = !this.opened;\r\n        if (newState) {\r\n            this.open();\r\n        } else {\r\n            this.close();\r\n        }\r\n    }\r\n\r\n    public open(): void {\r\n        this.opened = true;\r\n        this.openedSidebar.emit();\r\n    }\r\n\r\n    public close(): void {\r\n        this.opened = false;\r\n        this.closedSidebar.emit();\r\n    }\r\n}\r\n","<div\r\n    class=\"sidebar\"\r\n    [class.opened]=\"opened\"\r\n>\r\n    <div class=\"header\">\r\n        <button\r\n            (click)=\"close()\"\r\n            class=\"option\"\r\n        >\r\n            <span [class]=\"closeIconClass\"></span>\r\n        </button>\r\n        <div class=\"title\">\r\n            <span><ng-container [ngTemplateOutlet]=\"iassistIcon\"></ng-container></span>\r\n            <span>IAssist Insights</span>\r\n        </div>\r\n    </div>\r\n    <div class=\"intro\">\r\n        @if (hasPermission) {\r\n            @if (insights.length) {\r\n                @if (introTemplate) {\r\n                    <ng-container *ngTemplateOutlet=\"introTemplate\"></ng-container>\r\n                } @else {\r\n                    <span class=\"text\">{{ introText || 'platform.angular_components.insight_intro' | translate }}</span>\r\n                }\r\n            } @else {\r\n                @if (emptyTemplate) {\r\n                    <ng-container *ngTemplateOutlet=\"emptyTemplate\"></ng-container>\r\n                } @else {\r\n                    <span class=\"text\">{{ emptyText || 'platform.angular_components.insight_empty' | translate }}</span>\r\n                }\r\n            }\r\n        } @else {\r\n            @if (noPermissionTemplate) {\r\n                <ng-container *ngTemplateOutlet=\"noPermissionTemplate\"></ng-container>\r\n            } @else {\r\n                <span>{{ noPermissionText || 'platform.angular_components.insight_no_permission' | translate }}</span>\r\n            }\r\n        }\r\n    </div>\r\n    <div class=\"insights\">\r\n        @if (insights.length) {\r\n            @for (insight of insights; track insight) {\r\n                <s-insights-card\r\n                    [insight]=\"insight\"\r\n                    [icons]=\"icons\"\r\n                >\r\n                </s-insights-card>\r\n            }\r\n        }\r\n    </div>\r\n</div>\r\n\r\n<ng-template #iassistIcon>\r\n    <div style=\"width: 28px; height: 28px\">\r\n        <span *sSVGFactory=\"'iassist'\"></span>\r\n    </div>\r\n</ng-template>\r\n","import {\r\n    AfterContentInit,\r\n    Component,\r\n    ContentChildren,\r\n    Input,\r\n    output,\r\n    QueryList,\r\n    TemplateRef,\r\n    ViewChild,\r\n} from '@angular/core';\r\n\r\nimport { DEPRECATED_CONFIG } from '@seniorsistemas/angular-components/common/deprecated-selector';\r\nimport { DeprecatedSelectorDirective } from '@seniorsistemas/angular-components/common/deprecated-selector';\r\nimport { TemplateDirective } from '@seniorsistemas/angular-components/template';\r\n\r\nimport { InsightsSidebarComponent } from './components/insights-sidebar/insights-sidebar.component';\r\nimport { InsightsCardIcons } from './components/insights-card/insights-card.component';\r\nimport { InsightsItem } from './models/insights-item';\r\nimport { InsightsTemplateTypes } from './models/insights-template-types';\r\n/**\r\n * @description Componente de painel lateral de insights com IA. Exibe uma lista de itens\r\n * de insights em um sidebar, suportando templates customizáveis para o conteúdo de\r\n * introdução, estado vazio e sem permissão. Também exporta como seletor legado `s-ia-insight`.\r\n *\r\n * @example\r\n * ```html\r\n * <s-insights\r\n *   [insights]=\"listaInsights\"\r\n *   [hasPermission]=\"true\"\r\n *   (openInsights)=\"onAbrir()\" />\r\n * ```\r\n *\r\n * @category Structure\r\n */\r\n@Component({\r\n    selector: 's-insights, s-ia-insight',\r\n    templateUrl: './insights.component.html',\r\n    hostDirectives: [DeprecatedSelectorDirective],\r\n    providers: [\r\n        {\r\n            provide: DEPRECATED_CONFIG,\r\n            useValue: {\r\n                oldSelector: 's-ia-insight',\r\n                newSelector: 's-insights',\r\n                removalVersion: '20.0.0',\r\n            },\r\n        },\r\n    ],\r\n    standalone: true,\r\n    imports: [InsightsSidebarComponent],\r\n})\r\nexport class InsightsComponent implements AfterContentInit {\r\n    /** @description Lista de itens de insight a serem exibidos no painel. @default [] */\r\n    @Input()\r\n    public insights: InsightsItem[] = [];\r\n\r\n    /** @description Indica se o usuário tem permissão para ver os insights. @default true */\r\n    @Input()\r\n    public hasPermission = true;\r\n\r\n    /** @description Texto de introdução exibido no topo do painel (quando sem template customizado). */\r\n    @Input()\r\n    public introText?: string;\r\n\r\n    /** @description Texto exibido quando não há insights disponíveis. */\r\n    @Input()\r\n    public emptyText?: string;\r\n\r\n    /** @description Texto exibido quando o usuário não tem permissão. */\r\n    @Input()\r\n    public noPermissionText?: string;\r\n\r\n    /**\r\n     * @description Ícone do botão de fechar o sidebar.\r\n     * @default 'far fa-chevron-double-right'\r\n     */\r\n    @Input()\r\n    public closeIconClass = 'far fa-chevron-double-right';\r\n\r\n    /** @description Ícones customizáveis de cada card de insight exibido no sidebar. */\r\n    @Input()\r\n    public icons?: InsightsCardIcons;\r\n\r\n    @ViewChild(InsightsSidebarComponent)\r\n    public sidebar: InsightsSidebarComponent | null = null;\r\n\r\n    @ContentChildren(TemplateDirective)\r\n    public templates: QueryList<TemplateDirective> | null = null;\r\n\r\n    /** @description Emitido quando o painel de insights é aberto. */\r\n    public openInsights = output<void>();\r\n\r\n    /** @description Emitido quando o painel de insights é fechado. */\r\n    public closedInsights = output<void>();\r\n\r\n    public introTemplate: TemplateRef<any> | null = null;\r\n    public emptyTemplate: TemplateRef<any> | null = null;\r\n    public noPermissionTemplate: TemplateRef<any> | null = null;\r\n\r\n    public ngAfterContentInit(): void {\r\n        this._getTemplates();\r\n    }\r\n\r\n    public open(): void {\r\n        this.sidebar?.open();\r\n    }\r\n\r\n    public close(): void {\r\n        this.sidebar?.close();\r\n    }\r\n\r\n    public getIntroTemplate(): TemplateRef<any> | null {\r\n        return this._getCustomTemplate('intro');\r\n    }\r\n\r\n    public getNoPermissionTemplate(): TemplateRef<any> | null {\r\n        return this._getCustomTemplate('no-permission');\r\n    }\r\n\r\n    public getEmptyTemplate(): TemplateRef<any> | null {\r\n        return this._getCustomTemplate('empty');\r\n    }\r\n\r\n    private _getCustomTemplate(type: InsightsTemplateTypes): TemplateRef<any> | null {\r\n        return this.templates?.find((template: TemplateDirective) => template.type === type)?.template ?? null;\r\n    }\r\n\r\n    private _getTemplates(): void {\r\n        this.introTemplate = this.getIntroTemplate();\r\n        this.emptyTemplate = this.getEmptyTemplate();\r\n        this.noPermissionTemplate = this.getNoPermissionTemplate();\r\n    }\r\n}\r\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    [closeIconClass]=\"closeIconClass\"\n    [icons]=\"icons\"\n    (openedSidebar)=\"openInsights.emit()\"\n    (closedSidebar)=\"closedInsights.emit()\"\n>\n</s-insights-sidebar>\n","import { NgModule } from '@angular/core';\r\n\r\nimport { TemplateModule } from '@seniorsistemas/angular-components/template';\r\n\r\nimport { InsightsComponent } from './insights.component';\r\n\r\n@NgModule({\r\n    imports: [TemplateModule, InsightsComponent],\r\n    exports: [InsightsComponent, TemplateModule],\r\n})\r\nexport class InsightsModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}