import { Component, Input } from '@angular/core';
import * as i0 from "@angular/core";
import * as i1 from "@angular/common";
export class ProgressBarIndicatorComponent {
    /**
     * @description Modo de exibição da barra.
     * - `'percentage'`: exibe o preenchimento proporcional ao `value` (0–100).
     * - `'intermittent'`: anima a barra indo e voltando indefinidamente.
     * @default 'intermittent'
     */
    mode = 'intermittent';
    /**
     * @description Valor de progresso (0–100). Usado apenas no modo `'percentage'`.
     * @default 0
     */
    value = 0;
    /**
     * @description Texto exibido abaixo da barra.
     * Quando omitido, usa `'{value}%'` no modo `'percentage'` ou `'Carregando...'` no modo `'intermittent'`.
     */
    label;
    get displayLabel() {
        if (this.label) {
            return this.label;
        }
        return this.mode === 'percentage' ? `${this.value}%` : 'Carregando...';
    }
    static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ProgressBarIndicatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
    static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ProgressBarIndicatorComponent, selector: "s-progress-bar-indicator", inputs: { mode: "mode", value: "value", label: "label" }, ngImport: i0, template: "<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", styles: [".progress-bar-indicator{display:flex;flex-direction:column;gap:4px;width:100%}.progress-bar-indicator .progress-bar-track{background-color:#dedce5;border-radius:3px;height:6px;overflow:hidden;position:relative;width:100%}.progress-bar-indicator .progress-bar-fill{background-color:#428bca;height:100%;position:absolute;top:0}.progress-bar-indicator .progress-bar-fill--percentage{border-radius:3px 0 0 3px;left:0;transition:width .3s ease}.progress-bar-indicator .progress-bar-fill--intermittent{border-radius:3px;width:28%;animation:loading-state-progress-slide 1.5s ease-in-out infinite alternate}.progress-bar-indicator .progress-bar-label{color:#212533;font-family:Open Sans,sans-serif;font-size:12px;line-height:1.5;text-align:center}@keyframes loading-state-progress-slide{0%{left:-28%}to{left:100%}}\n"], dependencies: [{ kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ProgressBarIndicatorComponent, decorators: [{
            type: Component,
            args: [{ selector: 's-progress-bar-indicator', template: "<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", styles: [".progress-bar-indicator{display:flex;flex-direction:column;gap:4px;width:100%}.progress-bar-indicator .progress-bar-track{background-color:#dedce5;border-radius:3px;height:6px;overflow:hidden;position:relative;width:100%}.progress-bar-indicator .progress-bar-fill{background-color:#428bca;height:100%;position:absolute;top:0}.progress-bar-indicator .progress-bar-fill--percentage{border-radius:3px 0 0 3px;left:0;transition:width .3s ease}.progress-bar-indicator .progress-bar-fill--intermittent{border-radius:3px;width:28%;animation:loading-state-progress-slide 1.5s ease-in-out infinite alternate}.progress-bar-indicator .progress-bar-label{color:#212533;font-family:Open Sans,sans-serif;font-size:12px;line-height:1.5;text-align:center}@keyframes loading-state-progress-slide{0%{left:-28%}to{left:100%}}\n"] }]
        }], propDecorators: { mode: [{
                type: Input
            }], value: [{
                type: Input
            }], label: [{
                type: Input
            }] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MtYmFyLWluZGljYXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvbG9hZGluZy1zdGF0ZS9zcmMvbGliL2xvYWRpbmctc3RhdGUvY29tcG9uZW50cy9wcm9ncmVzcy1iYXItaW5kaWNhdG9yL3Byb2dyZXNzLWJhci1pbmRpY2F0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL2xvYWRpbmctc3RhdGUvc3JjL2xpYi9sb2FkaW5nLXN0YXRlL2NvbXBvbmVudHMvcHJvZ3Jlc3MtYmFyLWluZGljYXRvci9wcm9ncmVzcy1iYXItaW5kaWNhdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFTakQsTUFBTSxPQUFPLDZCQUE2QjtJQUN0Qzs7Ozs7T0FLRztJQUVJLElBQUksR0FBNkIsY0FBYyxDQUFDO0lBRXZEOzs7T0FHRztJQUVJLEtBQUssR0FBRyxDQUFDLENBQUM7SUFFakI7OztPQUdHO0lBRUksS0FBSyxDQUFVO0lBRXRCLElBQVcsWUFBWTtRQUNuQixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN0QixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQztJQUMzRSxDQUFDO3dHQTdCUSw2QkFBNkI7NEZBQTdCLDZCQUE2QiwwSENUMUMsNmRBV0E7OzRGREZhLDZCQUE2QjtrQkFMekMsU0FBUzsrQkFDSSwwQkFBMEI7OEJBWTdCLElBQUk7c0JBRFYsS0FBSztnQkFRQyxLQUFLO3NCQURYLEtBQUs7Z0JBUUMsS0FBSztzQkFEWCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgdHlwZSBQcm9ncmVzc0JhckluZGljYXRvck1vZGUgPSAncGVyY2VudGFnZScgfCAnaW50ZXJtaXR0ZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdzLXByb2dyZXNzLWJhci1pbmRpY2F0b3InLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9wcm9ncmVzcy1iYXItaW5kaWNhdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9wcm9ncmVzcy1iYXItaW5kaWNhdG9yLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFByb2dyZXNzQmFySW5kaWNhdG9yQ29tcG9uZW50IHtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gTW9kbyBkZSBleGliacOnw6NvIGRhIGJhcnJhLlxuICAgICAqIC0gYCdwZXJjZW50YWdlJ2A6IGV4aWJlIG8gcHJlZW5jaGltZW50byBwcm9wb3JjaW9uYWwgYW8gYHZhbHVlYCAoMOKAkzEwMCkuXG4gICAgICogLSBgJ2ludGVybWl0dGVudCdgOiBhbmltYSBhIGJhcnJhIGluZG8gZSB2b2x0YW5kbyBpbmRlZmluaWRhbWVudGUuXG4gICAgICogQGRlZmF1bHQgJ2ludGVybWl0dGVudCdcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtb2RlOiBQcm9ncmVzc0JhckluZGljYXRvck1vZGUgPSAnaW50ZXJtaXR0ZW50JztcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBWYWxvciBkZSBwcm9ncmVzc28gKDDigJMxMDApLiBVc2FkbyBhcGVuYXMgbm8gbW9kbyBgJ3BlcmNlbnRhZ2UnYC5cbiAgICAgKiBAZGVmYXVsdCAwXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdmFsdWUgPSAwO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRleHRvIGV4aWJpZG8gYWJhaXhvIGRhIGJhcnJhLlxuICAgICAqIFF1YW5kbyBvbWl0aWRvLCB1c2EgYCd7dmFsdWV9JSdgIG5vIG1vZG8gYCdwZXJjZW50YWdlJ2Agb3UgYCdDYXJyZWdhbmRvLi4uJ2Agbm8gbW9kbyBgJ2ludGVybWl0dGVudCdgLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxhYmVsPzogc3RyaW5nO1xuXG4gICAgcHVibGljIGdldCBkaXNwbGF5TGFiZWwoKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMubGFiZWwpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxhYmVsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLm1vZGUgPT09ICdwZXJjZW50YWdlJyA/IGAke3RoaXMudmFsdWV9JWAgOiAnQ2FycmVnYW5kby4uLic7XG4gICAgfVxufVxuXG4iLCI8ZGl2IGNsYXNzPVwicHJvZ3Jlc3MtYmFyLWluZGljYXRvclwiPlxuICAgIDxkaXYgY2xhc3M9XCJwcm9ncmVzcy1iYXItdHJhY2tcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJwcm9ncmVzcy1iYXItZmlsbFwiXG4gICAgICAgICAgICBbY2xhc3MucHJvZ3Jlc3MtYmFyLWZpbGwtLXBlcmNlbnRhZ2VdPVwibW9kZSA9PT0gJ3BlcmNlbnRhZ2UnXCJcbiAgICAgICAgICAgIFtjbGFzcy5wcm9ncmVzcy1iYXItZmlsbC0taW50ZXJtaXR0ZW50XT1cIm1vZGUgPT09ICdpbnRlcm1pdHRlbnQnXCJcbiAgICAgICAgICAgIFtuZ1N0eWxlXT1cIm1vZGUgPT09ICdwZXJjZW50YWdlJyA/IHsgd2lkdGg6IHZhbHVlICsgJyUnIH0gOiB7fVwiXG4gICAgICAgID48L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8c3BhbiBjbGFzcz1cInByb2dyZXNzLWJhci1sYWJlbFwiPnt7IGRpc3BsYXlMYWJlbCB9fTwvc3Bhbj5cbjwvZGl2PlxuIl19