{"version":3,"file":"seniorsistemas-angular-components-empty-state.mjs","sources":["../../projects/angular-components/empty-state/src/lib/empty-state/empty-state.component.ts","../../projects/angular-components/empty-state/src/lib/empty-state/empty-state.component.html","../../projects/angular-components/empty-state/src/lib/empty-state/go-back/go-back.component.ts","../../projects/angular-components/empty-state/src/lib/empty-state/go-back/go-back.component.html","../../projects/angular-components/empty-state/src/lib/empty-state/empty-state.module.ts","../../projects/angular-components/empty-state/src/seniorsistemas-angular-components-empty-state.ts"],"sourcesContent":["import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { TieredMenuItemData } from '@seniorsistemas/angular-components/tiered-menu';\r\nimport { ButtonComponent } from '@seniorsistemas/angular-components/button';\r\n\r\n/**\r\n * @description Componente de estado vazio exibido quando não há conteúdo para mostrar.\r\n * Apresenta um ícone, título, descrição e até duas ações configuráveis\r\n * (primária com suporte a tiered menu e secundária simples).\r\n *\r\n * @example\r\n * ```html\r\n * <s-empty-state\r\n *   title=\"Nenhum resultado encontrado\"\r\n *   description=\"Tente ajustar os filtros da busca.\"\r\n *   primaryActionLabel=\"Criar novo\"\r\n *   (primaryAction)=\"onCreate()\"\r\n * />\r\n * ```\r\n *\r\n * @category Feedback\r\n */\r\n@Component({\r\n    selector: 's-empty-state',\r\n    templateUrl: './empty-state.component.html',\r\n    standalone: true,\r\n    imports: [ButtonComponent],\r\n})\r\nexport class EmptyStateComponent {\r\n    public static readonly nextIdSeed = 0;\r\n    private static _nextId = EmptyStateComponent.nextIdSeed;\r\n\r\n    public static getNextId(): number {\r\n        return this._nextId++;\r\n    }\r\n\r\n    /**\r\n     * @description Identificador único do componente. Gerado automaticamente se não informado.\r\n     */\r\n    @Input()\r\n    public id = `s-empty-state-${EmptyStateComponent.getNextId()}`;\r\n\r\n    /**\r\n     * @description Título principal exibido no estado vazio. Campo obrigatório.\r\n     */\r\n    @Input({ required: true })\r\n    public title!: string;\r\n\r\n    /**\r\n     * @description Classe CSS do ícone exibido no estado vazio.\r\n     * Aceita classes de bibliotecas de ícones como Font Awesome.\r\n     *\r\n     * @default 'fa fa-inbox'\r\n     */\r\n    @Input()\r\n    public iconClass = 'fa fa-inbox';\r\n\r\n    /**\r\n     * @description Texto descritivo exibido abaixo do título, explicando o motivo do estado vazio\r\n     * ou orientando o usuário sobre as próximas ações.\r\n     */\r\n    @Input()\r\n    public description?: string;\r\n\r\n    /**\r\n     * @description Controla a visibilidade do botão de ação primária.\r\n     *\r\n     * @default true\r\n     */\r\n    @Input()\r\n    public showPrimaryAction = true;\r\n\r\n    /**\r\n     * @description Controla a visibilidade do botão de ação secundária.\r\n     *\r\n     * @default true\r\n     */\r\n    @Input()\r\n    public showSecondaryAction = true;\r\n\r\n    /**\r\n     * @description Texto do botão de ação primária.\r\n     * Quando `primaryModel` possui itens, o botão exibe um tiered menu ao clicar.\r\n     */\r\n    @Input()\r\n    public primaryActionLabel?: string;\r\n\r\n    /** @description Texto do botão de ação secundária. */\r\n    @Input()\r\n    public secondaryActionLabel?: string;\r\n\r\n    /**\r\n     * @description Lista de itens para o tiered menu da ação primária.\r\n     * Quando informado com itens, o botão primário exibe um menu de opções\r\n     * ao invés de emitir o evento `primaryAction` diretamente.\r\n     */\r\n    @Input()\r\n    public primaryModel: TieredMenuItemData[] = [];\r\n\r\n    /**\r\n     * @description Emitido quando o usuário clica no botão de ação primária e `primaryModel` está vazio.\r\n     */\r\n    @Output()\r\n    public primaryAction = new EventEmitter<void>();\r\n\r\n    /**\r\n     * @description Emitido quando o usuário clica no botão de ação secundária.\r\n     */\r\n    @Output()\r\n    public secondaryAction = new EventEmitter<void>();\r\n}\r\n","<div\n    [id]=\"id\"\n    class=\"w-full text-center\"\n>\n    <div\n        [id]=\"id + '-icon'\"\n        class=\"text-[#d8d8d8] text-[6em]\"\n    >\n        <i\n            [attr.class]=\"iconClass ? iconClass : 'fa fa-cogs'\"\n            aria-hidden=\"true\"\n        ></i>\n    </div>\n    <div\n        [id]=\"id + '-title'\"\n        class=\"font-bold mb-[10px]\"\n    >\n        {{ title }}\n    </div>\n\n    @if (description) {\n        <div\n            [id]=\"id + '-description'\"\n            class=\"mb-[15px] text-[#999999] px-5 text-center\"\n        >\n            <p class=\"mx-auto max-w-[400px] max-h-[80px] overflow-hidden\">{{ description }}</p>\n        </div>\n    }\n    @if (showPrimaryAction && primaryActionLabel) {\n        <div\n            [id]=\"id + '-actions'\"\n            class=\"text-center w-full\"\n        >\n            <s-button\n                [id]=\"id + '-primary-action'\"\n                type=\"button\"\n                [label]=\"primaryActionLabel\"\n                [menuOptions]=\"primaryModel\"\n                (clicked)=\"primaryAction.next()\"\n            ></s-button>\n            @if (showSecondaryAction && secondaryActionLabel) {\n                <s-button\n                    [id]=\"id + '-secondary-action'\"\n                    id=\"secondaryAction\"\n                    type=\"button\"\n                    [label]=\"secondaryActionLabel\"\n                    priority=\"link\"\n                    (clicked)=\"secondaryAction.next()\"\n                ></s-button>\n            }\n        </div>\n    }\n</div>\n","import { Component, Input, inject } from '@angular/core';\r\n\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { EmptyStateComponent } from '../empty-state.component';\r\n\r\n@Component({\r\n    selector: 's-empty-state-go-back',\r\n    templateUrl: './go-back.component.html',\r\n    styleUrls: [],\r\n    standalone: true,\r\n    imports: [EmptyStateComponent],\r\n})\r\nexport class EmptyStateGoBackComponent {\r\n    private readonly _cookieService = inject(CookieService);\r\n\r\n    @Input()\r\n    public iconClass = 'fa fa-exclamation-triangle';\r\n\r\n    @Input({ required: true })\r\n    public title!: string;\r\n\r\n    @Input()\r\n    public description?: string;\r\n\r\n    @Input()\r\n    public primaryActionLabel?: string;\r\n\r\n    public goBack() {\r\n        const portalUrl = this._cookieService.get('com.senior.portal.url');\r\n        window.open(portalUrl, '_top');\r\n    }\r\n}\r\n","<s-empty-state \n    [iconClass]=\"iconClass\" \n    [title]=\"title\" \n    [description]=\"description\" \n    (primaryAction)=\"goBack()\"\n    [primaryActionLabel]=\"primaryActionLabel\">\n</s-empty-state>","import { NgModule } from '@angular/core';\r\n\r\nimport { CookieService } from 'ngx-cookie-service';\r\n\r\nimport { EmptyStateComponent } from './empty-state.component';\r\nimport { EmptyStateGoBackComponent } from './go-back/go-back.component';\r\n\r\n@NgModule({\r\n    imports: [EmptyStateComponent, EmptyStateGoBackComponent],\r\n    providers: [CookieService],\r\n    exports: [EmptyStateComponent, EmptyStateGoBackComponent],\r\n})\r\nexport class EmptyStateModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}