{"version":3,"file":"seniorsistemas-angular-components-loading-state.mjs","sources":["../../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/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/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/loading-state-indicators.ts","../../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":["import { Component } from '@angular/core';\n\n@Component({\n    selector: 's-dots-indicator',\n    templateUrl: './dots-indicator.component.html',\n    styleUrls: ['./dots-indicator.component.scss'],\n})\nexport class DotsIndicatorComponent {}\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 } from '@angular/core';\n\n@Component({\n    selector: 's-logo-indicator',\n    templateUrl: './logo-indicator.component.html',\n    styleUrls: ['./logo-indicator.component.scss'],\n})\nexport class LoadingIndicatorComponent {}\n","<div class=\"logo-indicator\">\n    <span *sSVGFactory=\"'senior'\"></span>\n</div>\n","import { Component, Input } from '@angular/core';\n\nexport type ProgressBarIndicatorMode = 'percentage' | 'intermittent';\n\n@Component({\n    selector: 's-progress-bar-indicator',\n    templateUrl: './progress-bar-indicator.component.html',\n    styleUrls: ['./progress-bar-indicator.component.scss'],\n})\nexport class ProgressBarIndicatorComponent {\n    /**\n     * @description Modo de exibição da barra.\n     * - `'percentage'`: exibe o preenchimento proporcional ao `value` (0–100).\n     * - `'intermittent'`: anima a barra indo e voltando indefinidamente.\n     * @default 'intermittent'\n     */\n    @Input()\n    public mode: ProgressBarIndicatorMode = 'intermittent';\n\n    /**\n     * @description Valor de progresso (0–100). Usado apenas no modo `'percentage'`.\n     * @default 0\n     */\n    @Input()\n    public value = 0;\n\n    /**\n     * @description Texto exibido abaixo da barra.\n     * Quando omitido, usa `'{value}%'` no modo `'percentage'` ou `'Carregando...'` no modo `'intermittent'`.\n     */\n    @Input()\n    public label?: string;\n\n    public get displayLabel(): string {\n        if (this.label) {\n            return this.label;\n        }\n        return this.mode === 'percentage' ? `${this.value}%` : 'Carregando...';\n    }\n}\n\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","export enum LoadingStateIndicators {\n    Dots = 'dots',\n    Logo = 'logo',\n    ProgressBar = 'progress-bar',\n}\n","import { Component, Input, OnDestroy, TemplateRef, ViewEncapsulation } from '@angular/core';\n\nimport { LoadingStateIndicators } from './components/loading-state-indicators';\nimport { ProgressBarIndicatorMode } from './components/progress-bar-indicator/progress-bar-indicator.component';\n\n/**\n * @description Componente de estado de carregamento que exibe um indicador animado enquanto\n * um processo assíncrono está em andamento. Suporta bloqueio da janela inteira\n * e diferentes tipos de indicadores visuais.\n * Também pode ser usado como diretiva estrutural `[sLoadingState]`.\n *\n * @example\n * ```html\n * <s-loading-state [loading]=\"isLoading\" [blockWindow]=\"true\">\n *   <p>Conteúdo carregado!</p>\n * </s-loading-state>\n * ```\n *\n * @category Feedback\n */\n@Component({\n    selector: 's-loading-state',\n    templateUrl: './loading-state.component.html',\n    styleUrls: ['./loading-state.component.scss'],\n    encapsulation: ViewEncapsulation.None,\n})\nexport class LoadingStateComponent implements OnDestroy {\n    public static nextId = 0;\n\n    /**\n     * @description Tipo de indicador visual exibido durante o carregamento.\n     * - `LoadingStateIndicators.Dots`: indicador de pontos animados (padrão).\n     * - `LoadingStateIndicators.Logo`: indicador com logotipo animado.\n     *\n     * @default LoadingStateIndicators.Dots\n     */\n    @Input()\n    public indicator: LoadingStateIndicators = LoadingStateIndicators.Dots;\n\n    /**\n     * @description Identificador único do componente. Gerado automaticamente se não informado.\n     */\n    @Input()\n    public id = `s-loading-state-${LoadingStateComponent.nextId++}`;\n\n    /**\n     * @description Quando `true`, bloqueia a janela inteira durante o carregamento,\n     * sobrepondo todo o conteúdo da página com o indicador.\n     *\n     * @default false\n     */\n    @Input()\n    public blockWindow = false;\n\n    /**\n     * @description Controla o estado de carregamento do componente. Campo obrigatório.\n     * Quando `true`, exibe o indicador de carregamento após um breve delay.\n     * Quando `false`, remove o indicador após um breve delay (evita flash).\n     */\n    @Input({ required: true })\n    public set loading(loading: boolean) {\n        this._loading = loading;\n        loading ? this.block() : this.unblock();\n    }\n\n    public get loading() {\n        return this._loading;\n    }\n\n    /**\n     * @description Modo da barra de progresso. Usado quando `indicator` é `LoadingStateIndicators.ProgressBar`.\n     * - `'percentage'`: exibe o preenchimento proporcional ao `progressBarValue`.\n     * - `'intermittent'`: anima a barra indo e voltando.\n     *\n     * @default 'intermittent'\n     */\n    @Input()\n    public progressBarMode: ProgressBarIndicatorMode = 'intermittent';\n\n    /**\n     * @description Valor de progresso (0–100). Usado quando `indicator` é `LoadingStateIndicators.ProgressBar`\n     * e `progressBarMode` é `'percentage'`.\n     *\n     * @default 0\n     */\n    @Input()\n    public progressBarValue = 0;\n\n    /**\n     * @description Texto exibido abaixo da barra de progresso.\n     * Quando omitido, usa `'{value}%'` no modo `'percentage'` ou `'Carregando...'` no modo `'intermittent'`.\n     */\n    @Input()\n    public progressBarLabel?: string;\n\n    public contents: TemplateRef<any> | null = null;\n    public blocking = false;\n\n    private _loading = false;\n    private BLOCK_TIMEOUT_VALUE = 300;\n    private UNBLOCK_TIMEOUT_VALUE = 200;\n    private blockTimeoutId: any;\n    private unblockTimeoutId: any;\n\n    public ngOnDestroy(): void {\n        if (this.blockTimeoutId) {\n            clearTimeout(this.blockTimeoutId);\n        }\n\n        if (this.unblockTimeoutId) {\n            clearTimeout(this.unblockTimeoutId);\n        }\n    }\n\n    public block(): void {\n        if (this.unblockTimeoutId) {\n            clearTimeout(this.unblockTimeoutId);\n            this.unblockTimeoutId = undefined;\n        }\n\n        if (!this.blockTimeoutId) {\n            this.blockTimeoutId = setTimeout(() => {\n                this.blocking = true;\n                this.blockTimeoutId = undefined;\n            }, this.BLOCK_TIMEOUT_VALUE);\n        }\n    }\n\n    public unblock(): void {\n        if (this.blockTimeoutId) {\n            clearTimeout(this.blockTimeoutId);\n            this.blockTimeoutId = undefined;\n        }\n\n        if (!this.unblockTimeoutId) {\n            this.unblockTimeoutId = setTimeout(() => {\n                this.blocking = false;\n                this.unblockTimeoutId = undefined;\n            }, this.UNBLOCK_TIMEOUT_VALUE);\n        }\n    }\n}\n\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 {\n    AfterViewInit,\n    ChangeDetectorRef,\n    // NOSONAR - 'ComponentFactoryResolver' is deprecated.\n    ComponentFactoryResolver,\n    ComponentRef,\n    Directive,\n    Input,\n    OnDestroy,\n    TemplateRef,\n    ViewContainerRef,\n    inject,\n} from '@angular/core';\n\nimport { LoadingStateComponent } from './loading-state.component';\nimport { LoadingStateIndicators } from './components/loading-state-indicators';\nimport { ProgressBarIndicatorMode } from './components/progress-bar-indicator/progress-bar-indicator.component';\n\n/**\n * @description Diretiva estrutural que envolve o conteúdo da view com um indicador de carregamento.\n * É uma alternativa inline ao `LoadingStateComponent`, podendo ser aplicada diretamente\n * em containers existentes sem a necessidade de criar um wrapper explícito no template.\n *\n * @example\n * ```html\n * <!-- Forma simples (boolean) -->\n * <div *sLoadingState=\"isLoading\">Conteúdo</div>\n *\n * <!-- Forma com configuração -->\n * <div *sLoadingState=\"{ loading: isLoading, indicator: 'logo' }\">Conteúdo</div>\n * ```\n *\n * @category Feedback\n */\n@Directive({\n    selector: '[sLoadingState]',\n})\nexport class LoadingStateDirective implements AfterViewInit, OnDestroy {\n    private readonly target = inject(ViewContainerRef);\n    private readonly template = inject<TemplateRef<any>>(TemplateRef);\n    private readonly componentFactoryResolver = inject(ComponentFactoryResolver);\n    private readonly cdr = inject(ChangeDetectorRef);\n\n    /**\n     * @description Controla o estado de carregamento da diretiva.\n     * Aceita:\n     * - `boolean`: ativa/desativa o carregamento com o indicador padrão (`dots`).\n     * - objeto de configuração: permite definir indicador, modo e valor da barra de progresso.\n     */\n    @Input()\n    public set sLoadingState(\n        value:\n            | boolean\n            | {\n                  loading: boolean;\n                  indicator?: LoadingStateIndicators;\n                  progressBarMode?: ProgressBarIndicatorMode;\n                  progressBarValue?: number;\n                  progressBarLabel?: string;\n              },\n    ) {\n        if (typeof value === 'boolean') {\n            this._loading = value;\n            this.indicator = LoadingStateIndicators.Dots;\n        } else if (typeof value === 'object') {\n            this._loading = value.loading;\n            this.indicator = value.indicator ?? LoadingStateIndicators.Dots;\n            this.progressBarMode = value.progressBarMode ?? 'intermittent';\n            this.progressBarValue = value.progressBarValue ?? 0;\n            this.progressBarLabel = value.progressBarLabel;\n        }\n\n        if (this.loaderComponent) {\n            this.loaderComponent.instance.loading = this._loading;\n            this.loaderComponent.instance.indicator = this.indicator;\n            this.loaderComponent.instance.progressBarMode = this.progressBarMode;\n            this.loaderComponent.instance.progressBarValue = this.progressBarValue;\n            this.loaderComponent.instance.progressBarLabel = this.progressBarLabel;\n        }\n    }\n\n    private _loading = false;\n    private indicator = LoadingStateIndicators.Dots;\n    private progressBarMode: ProgressBarIndicatorMode = 'intermittent';\n    private progressBarValue = 0;\n    private progressBarLabel?: string;\n    private loaderComponent: ComponentRef<LoadingStateComponent> | null = null;\n\n    public ngAfterViewInit() {\n        this.createComponent();\n    }\n\n    private createComponent() {\n        const factory = this.componentFactoryResolver.resolveComponentFactory(LoadingStateComponent);\n        this.loaderComponent = this.target.createComponent(factory);\n        this.loaderComponent.instance.contents = this.template;\n        this.loaderComponent.instance.loading = this._loading;\n        this.loaderComponent.instance.indicator = this.indicator;\n        this.loaderComponent.instance.progressBarMode = this.progressBarMode;\n        this.loaderComponent.instance.progressBarValue = this.progressBarValue;\n        this.loaderComponent.instance.progressBarLabel = this.progressBarLabel;\n        this.cdr.detectChanges();\n    }\n\n    public ngOnDestroy() {\n        if (this.loaderComponent) {\n            this.loaderComponent.destroy();\n        }\n    }\n}\n\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { DotsIndicatorComponent } from './components/dots-indicator/dots-indicator.components';\nimport { LoadingIndicatorComponent } from './components/logo-indicator/logo-indicator.component';\nimport { ProgressBarIndicatorComponent } from './components/progress-bar-indicator/progress-bar-indicator.component';\nimport { LoadingStateComponent } from './loading-state.component';\nimport { LoadingStateDirective } from './loading-state.directive';\nimport { SVGFactoryModule } from '@seniorsistemas/angular-components/common';\n\n@NgModule({\n    imports: [CommonModule, SVGFactoryModule],\n    declarations: [\n        LoadingStateComponent,\n        LoadingStateDirective,\n        DotsIndicatorComponent,\n        LoadingIndicatorComponent,\n        ProgressBarIndicatorComponent,\n    ],\n    exports: [LoadingStateComponent, LoadingStateDirective],\n})\nexport class LoadingStateModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2.DotsIndicatorComponent","i3.LoadingIndicatorComponent","i4.ProgressBarIndicatorComponent"],"mappings":";;;;;;;MAOa,sBAAsB,CAAA;wGAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,wDCPnC,8KAKA,EAAA,MAAA,EAAA,CAAA,qcAAA,CAAA,EAAA,CAAA,CAAA;;4FDEa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;+BACI,kBAAkB,EAAA,QAAA,EAAA,8KAAA,EAAA,MAAA,EAAA,CAAA,qcAAA,CAAA,EAAA,CAAA;;;MEInB,yBAAyB,CAAA;wGAAzB,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,wDCPtC,uFAGA,EAAA,MAAA,EAAA,CAAA,mXAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDIa,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,SAAS;+BACI,kBAAkB,EAAA,QAAA,EAAA,uFAAA,EAAA,MAAA,EAAA,CAAA,mXAAA,CAAA,EAAA,CAAA;;;MEMnB,6BAA6B,CAAA;AACtC;;;;;AAKG;IAEI,IAAI,GAA6B,cAAc,CAAC;AAEvD;;;AAGG;IAEI,KAAK,GAAG,CAAC,CAAC;AAEjB;;;AAGG;AAEI,IAAA,KAAK,CAAU;AAEtB,IAAA,IAAW,YAAY,GAAA;AACnB,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;YACZ,OAAO,IAAI,CAAC,KAAK,CAAC;SACrB;AACD,QAAA,OAAO,IAAI,CAAC,IAAI,KAAK,YAAY,GAAG,CAAG,EAAA,IAAI,CAAC,KAAK,CAAA,CAAA,CAAG,GAAG,eAAe,CAAC;KAC1E;wGA7BQ,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA7B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,6BAA6B,0HCT1C,6dAWA,EAAA,MAAA,EAAA,CAAA,0yBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDFa,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBALzC,SAAS;+BACI,0BAA0B,EAAA,QAAA,EAAA,6dAAA,EAAA,MAAA,EAAA,CAAA,0yBAAA,CAAA,EAAA,CAAA;8BAY7B,IAAI,EAAA,CAAA;sBADV,KAAK;gBAQC,KAAK,EAAA,CAAA;sBADX,KAAK;gBAQC,KAAK,EAAA,CAAA;sBADX,KAAK;;;IE9BE,uBAIX;AAJD,CAAA,UAAY,sBAAsB,EAAA;AAC9B,IAAA,sBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,sBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,sBAAA,CAAA,aAAA,CAAA,GAAA,cAA4B,CAAA;AAChC,CAAC,EAJW,sBAAsB,KAAtB,sBAAsB,GAIjC,EAAA,CAAA,CAAA;;ACCD;;;;;;;;;;;;;;AAcG;MAOU,qBAAqB,CAAA;AACvB,IAAA,OAAO,MAAM,GAAG,CAAC,CAAC;AAEzB;;;;;;AAMG;AAEI,IAAA,SAAS,GAA2B,sBAAsB,CAAC,IAAI,CAAC;AAEvE;;AAEG;AAEI,IAAA,EAAE,GAAG,CAAmB,gBAAA,EAAA,qBAAqB,CAAC,MAAM,EAAE,EAAE,CAAC;AAEhE;;;;;AAKG;IAEI,WAAW,GAAG,KAAK,CAAC;AAE3B;;;;AAIG;IACH,IACW,OAAO,CAAC,OAAgB,EAAA;AAC/B,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;AACxB,QAAA,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;KAC3C;AAED,IAAA,IAAW,OAAO,GAAA;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC;KACxB;AAED;;;;;;AAMG;IAEI,eAAe,GAA6B,cAAc,CAAC;AAElE;;;;;AAKG;IAEI,gBAAgB,GAAG,CAAC,CAAC;AAE5B;;;AAGG;AAEI,IAAA,gBAAgB,CAAU;IAE1B,QAAQ,GAA4B,IAAI,CAAC;IACzC,QAAQ,GAAG,KAAK,CAAC;IAEhB,QAAQ,GAAG,KAAK,CAAC;IACjB,mBAAmB,GAAG,GAAG,CAAC;IAC1B,qBAAqB,GAAG,GAAG,CAAC;AAC5B,IAAA,cAAc,CAAM;AACpB,IAAA,gBAAgB,CAAM;IAEvB,WAAW,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACrB,YAAA,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;SACrC;AAED,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACvB,YAAA,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;SACvC;KACJ;IAEM,KAAK,GAAA;AACR,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACvB,YAAA,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACpC,YAAA,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;SACrC;AAED,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;AACtB,YAAA,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,MAAK;AAClC,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACrB,gBAAA,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;AACpC,aAAC,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;SAChC;KACJ;IAEM,OAAO,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACrB,YAAA,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAClC,YAAA,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;SACnC;AAED,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;AACxB,YAAA,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC,MAAK;AACpC,gBAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACtB,gBAAA,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;AACtC,aAAC,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;SAClC;KACJ;wGAlHQ,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,qQC1BlC,kgDAmDA,EAAA,MAAA,EAAA,CAAA,4qDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,yBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,6BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FDzBa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBANjC,SAAS;+BACI,iBAAiB,EAAA,aAAA,EAGZ,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,kgDAAA,EAAA,MAAA,EAAA,CAAA,4qDAAA,CAAA,EAAA,CAAA;8BAa9B,SAAS,EAAA,CAAA;sBADf,KAAK;gBAOC,EAAE,EAAA,CAAA;sBADR,KAAK;gBAUC,WAAW,EAAA,CAAA;sBADjB,KAAK;gBASK,OAAO,EAAA,CAAA;sBADjB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAkBlB,eAAe,EAAA,CAAA;sBADrB,KAAK;gBAUC,gBAAgB,EAAA,CAAA;sBADtB,KAAK;gBAQC,gBAAgB,EAAA,CAAA;sBADtB,KAAK;;;AE1EV;;;;;;;;;;;;;;;AAeG;MAIU,qBAAqB,CAAA;AACb,IAAA,MAAM,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAClC,IAAA,QAAQ,GAAG,MAAM,CAAmB,WAAW,CAAC,CAAC;AACjD,IAAA,wBAAwB,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC;AAC5D,IAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAEjD;;;;;AAKG;IACH,IACW,aAAa,CACpB,KAQO,EAAA;AAEP,QAAA,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE;AAC5B,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACtB,YAAA,IAAI,CAAC,SAAS,GAAG,sBAAsB,CAAC,IAAI,CAAC;SAChD;AAAM,aAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAClC,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC;YAC9B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,sBAAsB,CAAC,IAAI,CAAC;YAChE,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,eAAe,IAAI,cAAc,CAAC;YAC/D,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,IAAI,CAAC,CAAC;AACpD,YAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC;SAClD;AAED,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;YACtD,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACzD,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YACrE,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;YACvE,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;SAC1E;KACJ;IAEO,QAAQ,GAAG,KAAK,CAAC;AACjB,IAAA,SAAS,GAAG,sBAAsB,CAAC,IAAI,CAAC;IACxC,eAAe,GAA6B,cAAc,CAAC;IAC3D,gBAAgB,GAAG,CAAC,CAAC;AACrB,IAAA,gBAAgB,CAAU;IAC1B,eAAe,GAA+C,IAAI,CAAC;IAEpE,eAAe,GAAA;QAClB,IAAI,CAAC,eAAe,EAAE,CAAC;KAC1B;IAEO,eAAe,GAAA;QACnB,MAAM,OAAO,GAAG,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,qBAAqB,CAAC,CAAC;QAC7F,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAC5D,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QACvD,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;QACtD,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACzD,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QACrE,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QACvE,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;AACvE,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;KAC5B;IAEM,WAAW,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACtB,YAAA,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;SAClC;KACJ;wGAvEQ,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;4FAArB,qBAAqB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,iBAAiB;AAC9B,iBAAA,CAAA;8BAcc,aAAa,EAAA,CAAA;sBADvB,KAAK;;;MC5BG,kBAAkB,CAAA;wGAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,iBARvB,qBAAqB;YACrB,qBAAqB;YACrB,sBAAsB;YACtB,yBAAyB;AACzB,YAAA,6BAA6B,aANvB,YAAY,EAAE,gBAAgB,CAQ9B,EAAA,OAAA,EAAA,CAAA,qBAAqB,EAAE,qBAAqB,CAAA,EAAA,CAAA,CAAA;yGAE7C,kBAAkB,EAAA,OAAA,EAAA,CAVjB,YAAY,EAAE,gBAAgB,CAAA,EAAA,CAAA,CAAA;;4FAU/B,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAX9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,gBAAgB,CAAC;AACzC,oBAAA,YAAY,EAAE;wBACV,qBAAqB;wBACrB,qBAAqB;wBACrB,sBAAsB;wBACtB,yBAAyB;wBACzB,6BAA6B;AAChC,qBAAA;AACD,oBAAA,OAAO,EAAE,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;AAC1D,iBAAA,CAAA;;;ACpBD;;AAEG;;;;"}