{"version":3,"file":"seniorsistemas-angular-components-loading-state.mjs","sources":["../../projects/angular-components/loading-state/src/lib/loading-state/components/loading-state-indicators.ts","../../projects/angular-components/loading-state/src/lib/loading-state/components/progress-bar-indicator/progress-bar-indicator.component.ts","../../projects/angular-components/loading-state/src/lib/loading-state/components/progress-bar-indicator/progress-bar-indicator.component.html","../../projects/angular-components/loading-state/src/lib/loading-state/components/logo-indicator/logo-indicator.component.ts","../../projects/angular-components/loading-state/src/lib/loading-state/components/logo-indicator/logo-indicator.component.html","../../projects/angular-components/loading-state/src/lib/loading-state/components/dots-indicator/dots-indicator.components.ts","../../projects/angular-components/loading-state/src/lib/loading-state/components/dots-indicator/dots-indicator.component.html","../../projects/angular-components/loading-state/src/lib/loading-state/loading-state.component.ts","../../projects/angular-components/loading-state/src/lib/loading-state/loading-state.component.html","../../projects/angular-components/loading-state/src/lib/loading-state/loading-state.directive.ts","../../projects/angular-components/loading-state/src/lib/loading-state/loading-state.module.ts","../../projects/angular-components/loading-state/src/seniorsistemas-angular-components-loading-state.ts"],"sourcesContent":["export enum LoadingStateIndicators {\n    Dots = 'dots',\n    Logo = 'logo',\n    ProgressBar = 'progress-bar',\n}\n","import { Component, Input } from '@angular/core';\r\nimport { NgStyle } from '@angular/common';\r\n\r\nexport type ProgressBarIndicatorMode = 'percentage' | 'intermittent';\r\n\r\n@Component({\r\n    selector: 's-progress-bar-indicator',\r\n    templateUrl: './progress-bar-indicator.component.html',\r\n    styleUrls: ['./progress-bar-indicator.component.scss'],\r\n    standalone: true,\r\n    imports: [NgStyle],\r\n})\r\nexport class ProgressBarIndicatorComponent {\r\n    /**\r\n     * @description Modo de exibição da barra.\r\n     * - `'percentage'`: exibe o preenchimento proporcional ao `value` (0–100).\r\n     * - `'intermittent'`: anima a barra indo e voltando indefinidamente.\r\n     * @default 'intermittent'\r\n     */\r\n    @Input()\r\n    public mode: ProgressBarIndicatorMode = 'intermittent';\r\n\r\n    /**\r\n     * @description Valor de progresso (0–100). Usado apenas no modo `'percentage'`.\r\n     * @default 0\r\n     */\r\n    @Input()\r\n    public value = 0;\r\n\r\n    /**\r\n     * @description Texto exibido abaixo da barra.\r\n     * Quando omitido, usa `'{value}%'` no modo `'percentage'` ou `'Carregando...'` no modo `'intermittent'`.\r\n     */\r\n    @Input()\r\n    public label?: string;\r\n\r\n    public get displayLabel(): string {\r\n        if (this.label) {\r\n            return this.label;\r\n        }\r\n        return this.mode === 'percentage' ? `${this.value}%` : 'Carregando...';\r\n    }\r\n}\r\n","<div class=\"progress-bar-indicator\">\n    <div class=\"progress-bar-track\">\n        <div\n            class=\"progress-bar-fill\"\n            [class.progress-bar-fill--percentage]=\"mode === 'percentage'\"\n            [class.progress-bar-fill--intermittent]=\"mode === 'intermittent'\"\n            [ngStyle]=\"mode === 'percentage' ? { width: value + '%' } : {}\"\n        ></div>\n    </div>\n    <span class=\"progress-bar-label\">{{ displayLabel }}</span>\n</div>\n","import { Component } from '@angular/core';\r\nimport { SVGFactoryDirective } from '@seniorsistemas/angular-components/common';\r\n\r\n@Component({\r\n    selector: 's-logo-indicator',\r\n    templateUrl: './logo-indicator.component.html',\r\n    styleUrls: ['./logo-indicator.component.scss'],\r\n    standalone: true,\r\n    imports: [SVGFactoryDirective],\r\n})\r\nexport class LoadingIndicatorComponent {}\r\n","<div class=\"logo-indicator\">\n    <span *sSVGFactory=\"'senior'\"></span>\n</div>\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 's-dots-indicator',\r\n    templateUrl: './dots-indicator.component.html',\r\n    styleUrls: ['./dots-indicator.component.scss'],\r\n    standalone: true,\r\n})\r\nexport class DotsIndicatorComponent {}\r\n","<div class=\"dots-indicator\">\n    <div class=\"bounce bounce--1\"></div>\n    <div class=\"bounce bounce--2\"></div>\n    <div class=\"bounce bounce--3\"></div>\n</div>\n","import { Component, Input, OnDestroy, TemplateRef, ViewEncapsulation } from '@angular/core';\r\n\r\nimport { LoadingStateIndicators } from './components/loading-state-indicators';\r\nimport {\r\n    ProgressBarIndicatorMode,\r\n    ProgressBarIndicatorComponent,\r\n} from './components/progress-bar-indicator/progress-bar-indicator.component';\r\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\r\nimport { LoadingIndicatorComponent } from './components/logo-indicator/logo-indicator.component';\r\nimport { DotsIndicatorComponent } from './components/dots-indicator/dots-indicator.components';\r\n\r\n/**\r\n * @description Componente de estado de carregamento que exibe um indicador animado enquanto\r\n * um processo assíncrono está em andamento. Suporta bloqueio da janela inteira\r\n * e diferentes tipos de indicadores visuais.\r\n * Também pode ser usado como diretiva estrutural `[sLoadingState]`.\r\n *\r\n * @example\r\n * ```html\r\n * <s-loading-state [loading]=\"isLoading\" [blockWindow]=\"true\">\r\n *   <p>Conteúdo carregado!</p>\r\n * </s-loading-state>\r\n * ```\r\n *\r\n * @category Feedback\r\n */\r\n@Component({\r\n    selector: 's-loading-state',\r\n    templateUrl: './loading-state.component.html',\r\n    styleUrls: ['./loading-state.component.scss'],\r\n    encapsulation: ViewEncapsulation.None,\r\n    standalone: true,\r\n    imports: [\r\n        NgClass,\r\n        ProgressBarIndicatorComponent,\r\n        LoadingIndicatorComponent,\r\n        DotsIndicatorComponent,\r\n        NgTemplateOutlet,\r\n    ],\r\n})\r\nexport class LoadingStateComponent implements OnDestroy {\r\n    public static nextId = 0;\r\n\r\n    /**\r\n     * @description Tipo de indicador visual exibido durante o carregamento.\r\n     * - `LoadingStateIndicators.Dots`: indicador de pontos animados (padrão).\r\n     * - `LoadingStateIndicators.Logo`: indicador com logotipo animado.\r\n     *\r\n     * @default LoadingStateIndicators.Dots\r\n     */\r\n    @Input()\r\n    public indicator: LoadingStateIndicators = LoadingStateIndicators.Dots;\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-loading-state-${LoadingStateComponent.nextId++}`;\r\n\r\n    /**\r\n     * @description Quando `true`, bloqueia a janela inteira durante o carregamento,\r\n     * sobrepondo todo o conteúdo da página com o indicador.\r\n     *\r\n     * @default false\r\n     */\r\n    @Input()\r\n    public blockWindow = false;\r\n\r\n    /**\r\n     * @description Controla o estado de carregamento do componente. Campo obrigatório.\r\n     * Quando `true`, exibe o indicador de carregamento após um breve delay.\r\n     * Quando `false`, remove o indicador após um breve delay (evita flash).\r\n     */\r\n    @Input({ required: true })\r\n    public set loading(loading: boolean) {\r\n        this._loading = loading;\r\n        loading ? this.block() : this.unblock();\r\n    }\r\n\r\n    public get loading() {\r\n        return this._loading;\r\n    }\r\n\r\n    /**\r\n     * @description Modo da barra de progresso. Usado quando `indicator` é `LoadingStateIndicators.ProgressBar`.\r\n     * - `'percentage'`: exibe o preenchimento proporcional ao `progressBarValue`.\r\n     * - `'intermittent'`: anima a barra indo e voltando.\r\n     *\r\n     * @default 'intermittent'\r\n     */\r\n    @Input()\r\n    public progressBarMode: ProgressBarIndicatorMode = 'intermittent';\r\n\r\n    /**\r\n     * @description Valor de progresso (0–100). Usado quando `indicator` é `LoadingStateIndicators.ProgressBar`\r\n     * e `progressBarMode` é `'percentage'`.\r\n     *\r\n     * @default 0\r\n     */\r\n    @Input()\r\n    public progressBarValue = 0;\r\n\r\n    /**\r\n     * @description Texto exibido abaixo da barra de progresso.\r\n     * Quando omitido, usa `'{value}%'` no modo `'percentage'` ou `'Carregando...'` no modo `'intermittent'`.\r\n     */\r\n    @Input()\r\n    public progressBarLabel?: string;\r\n\r\n    public contents: TemplateRef<any> | null = null;\r\n    public blocking = false;\r\n\r\n    private _loading = false;\r\n    private BLOCK_TIMEOUT_VALUE = 300;\r\n    private UNBLOCK_TIMEOUT_VALUE = 200;\r\n    private blockTimeoutId: any;\r\n    private unblockTimeoutId: any;\r\n\r\n    public ngOnDestroy(): void {\r\n        if (this.blockTimeoutId) {\r\n            clearTimeout(this.blockTimeoutId);\r\n        }\r\n\r\n        if (this.unblockTimeoutId) {\r\n            clearTimeout(this.unblockTimeoutId);\r\n        }\r\n    }\r\n\r\n    public block(): void {\r\n        if (this.unblockTimeoutId) {\r\n            clearTimeout(this.unblockTimeoutId);\r\n            this.unblockTimeoutId = undefined;\r\n        }\r\n\r\n        if (!this.blockTimeoutId) {\r\n            this.blockTimeoutId = setTimeout(() => {\r\n                this.blocking = true;\r\n                this.blockTimeoutId = undefined;\r\n            }, this.BLOCK_TIMEOUT_VALUE);\r\n        }\r\n    }\r\n\r\n    public unblock(): void {\r\n        if (this.blockTimeoutId) {\r\n            clearTimeout(this.blockTimeoutId);\r\n            this.blockTimeoutId = undefined;\r\n        }\r\n\r\n        if (!this.unblockTimeoutId) {\r\n            this.unblockTimeoutId = setTimeout(() => {\r\n                this.blocking = false;\r\n                this.unblockTimeoutId = undefined;\r\n            }, this.UNBLOCK_TIMEOUT_VALUE);\r\n        }\r\n    }\r\n}\r\n","<div\n    [id]=\"id\"\n    class=\"s-loading-state\"\n    [ngClass]=\"{\n        's-loading-state--loading': loading,\n        's-loading-state--blocking': blocking,\n        's-loading-state--fullscreen': blockWindow\n    }\"\n>\n    <div\n        [id]=\"id + '-loader'\"\n        class=\"loader\"\n    >\n        @if (indicator === 'progress-bar') {\n            <div class=\"progress-bar-wrapper\">\n                <s-progress-bar-indicator\n                    [mode]=\"progressBarMode\"\n                    [value]=\"progressBarValue\"\n                    [label]=\"progressBarLabel\"\n                ></s-progress-bar-indicator>\n            </div>\n        } @else {\n            <div\n                [id]=\"id + '-spinner'\"\n                class=\"spinner\"\n            >\n                @switch (indicator) {\n                    @case ('logo') {\n                        <s-logo-indicator></s-logo-indicator>\n                    }\n                    @case ('dots') {\n                        <s-dots-indicator></s-dots-indicator>\n                    }\n                }\n            </div>\n        }\n        <div\n            [id]=\"id + '-overlay'\"\n            class=\"overlay\"\n        ></div>\n    </div>\n    <div\n        [id]=\"id + '-contents'\"\n        class=\"state-contents\"\n    >\n        <ng-container *ngTemplateOutlet=\"contents || originalContent\"></ng-container>\n        <ng-template #originalContent>\n            <ng-content></ng-content>\n        </ng-template>\n    </div>\n</div>\n","import {\r\n    AfterViewInit,\r\n    ChangeDetectorRef,\r\n    // NOSONAR - 'ComponentFactoryResolver' is deprecated.\r\n    ComponentFactoryResolver,\r\n    ComponentRef,\r\n    Directive,\r\n    Input,\r\n    OnDestroy,\r\n    TemplateRef,\r\n    ViewContainerRef,\r\n    inject,\r\n} from '@angular/core';\r\n\r\nimport { LoadingStateComponent } from './loading-state.component';\r\nimport { LoadingStateIndicators } from './components/loading-state-indicators';\r\nimport { ProgressBarIndicatorMode } from './components/progress-bar-indicator/progress-bar-indicator.component';\r\n\r\n/**\r\n * @description Diretiva estrutural que envolve o conteúdo da view com um indicador de carregamento.\r\n * É uma alternativa inline ao `LoadingStateComponent`, podendo ser aplicada diretamente\r\n * em containers existentes sem a necessidade de criar um wrapper explícito no template.\r\n *\r\n * @example\r\n * ```html\r\n * <!-- Forma simples (boolean) -->\r\n * <div *sLoadingState=\"isLoading\">Conteúdo</div>\r\n *\r\n * <!-- Forma com configuração -->\r\n * <div *sLoadingState=\"{ loading: isLoading, indicator: 'logo' }\">Conteúdo</div>\r\n * ```\r\n *\r\n * @category Feedback\r\n */\r\n@Directive({\r\n    selector: '[sLoadingState]',\r\n    standalone: true,\r\n})\r\nexport class LoadingStateDirective implements AfterViewInit, OnDestroy {\r\n    private readonly target = inject(ViewContainerRef);\r\n    private readonly template = inject<TemplateRef<any>>(TemplateRef);\r\n    private readonly componentFactoryResolver = inject(ComponentFactoryResolver);\r\n    private readonly cdr = inject(ChangeDetectorRef);\r\n\r\n    /**\r\n     * @description Controla o estado de carregamento da diretiva.\r\n     * Aceita:\r\n     * - `boolean`: ativa/desativa o carregamento com o indicador padrão (`dots`).\r\n     * - objeto de configuração: permite definir indicador, modo e valor da barra de progresso.\r\n     */\r\n    @Input()\r\n    public set sLoadingState(\r\n        value:\r\n            | boolean\r\n            | {\r\n                  loading: boolean;\r\n                  indicator?: LoadingStateIndicators;\r\n                  progressBarMode?: ProgressBarIndicatorMode;\r\n                  progressBarValue?: number;\r\n                  progressBarLabel?: string;\r\n              },\r\n    ) {\r\n        if (typeof value === 'boolean') {\r\n            this._loading = value;\r\n            this.indicator = LoadingStateIndicators.Dots;\r\n        } else if (typeof value === 'object') {\r\n            this._loading = value.loading;\r\n            this.indicator = value.indicator ?? LoadingStateIndicators.Dots;\r\n            this.progressBarMode = value.progressBarMode ?? 'intermittent';\r\n            this.progressBarValue = value.progressBarValue ?? 0;\r\n            this.progressBarLabel = value.progressBarLabel;\r\n        }\r\n\r\n        if (this.loaderComponent) {\r\n            this.loaderComponent.instance.loading = this._loading;\r\n            this.loaderComponent.instance.indicator = this.indicator;\r\n            this.loaderComponent.instance.progressBarMode = this.progressBarMode;\r\n            this.loaderComponent.instance.progressBarValue = this.progressBarValue;\r\n            this.loaderComponent.instance.progressBarLabel = this.progressBarLabel;\r\n        }\r\n    }\r\n\r\n    private _loading = false;\r\n    private indicator = LoadingStateIndicators.Dots;\r\n    private progressBarMode: ProgressBarIndicatorMode = 'intermittent';\r\n    private progressBarValue = 0;\r\n    private progressBarLabel?: string;\r\n    private loaderComponent: ComponentRef<LoadingStateComponent> | null = null;\r\n\r\n    public ngAfterViewInit() {\r\n        this.createComponent();\r\n    }\r\n\r\n    private createComponent() {\r\n        const factory = this.componentFactoryResolver.resolveComponentFactory(LoadingStateComponent);\r\n        this.loaderComponent = this.target.createComponent(factory);\r\n        this.loaderComponent.instance.contents = this.template;\r\n        this.loaderComponent.instance.loading = this._loading;\r\n        this.loaderComponent.instance.indicator = this.indicator;\r\n        this.loaderComponent.instance.progressBarMode = this.progressBarMode;\r\n        this.loaderComponent.instance.progressBarValue = this.progressBarValue;\r\n        this.loaderComponent.instance.progressBarLabel = this.progressBarLabel;\r\n        this.cdr.detectChanges();\r\n    }\r\n\r\n    public ngOnDestroy() {\r\n        if (this.loaderComponent) {\r\n            this.loaderComponent.destroy();\r\n        }\r\n    }\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { LoadingStateComponent } from './loading-state.component';\r\nimport { LoadingStateDirective } from './loading-state.directive';\r\n\r\n@NgModule({\r\n    imports: [LoadingStateComponent, LoadingStateDirective],\r\n    exports: [LoadingStateComponent, LoadingStateDirective],\r\n})\r\nexport class LoadingStateModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}