import { Component, Input } from '@angular/core';
import { NgStyle } from '@angular/common';
import * as i0 from "@angular/core";
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, isStandalone: true, 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: 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', standalone: true, imports: [NgStyle], 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MtYmFyLWluZGljYXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvbG9hZGluZy1zdGF0ZS9zcmMvbGliL2xvYWRpbmctc3RhdGUvY29tcG9uZW50cy9wcm9ncmVzcy1iYXItaW5kaWNhdG9yL3Byb2dyZXNzLWJhci1pbmRpY2F0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL2xvYWRpbmctc3RhdGUvc3JjL2xpYi9sb2FkaW5nLXN0YXRlL2NvbXBvbmVudHMvcHJvZ3Jlc3MtYmFyLWluZGljYXRvci9wcm9ncmVzcy1iYXItaW5kaWNhdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFXMUMsTUFBTSxPQUFPLDZCQUE2QjtJQUN0Qzs7Ozs7T0FLRztJQUVJLElBQUksR0FBNkIsY0FBYyxDQUFDO0lBRXZEOzs7T0FHRztJQUVJLEtBQUssR0FBRyxDQUFDLENBQUM7SUFFakI7OztPQUdHO0lBRUksS0FBSyxDQUFVO0lBRXRCLElBQVcsWUFBWTtRQUNuQixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN0QixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQztJQUMzRSxDQUFDO3dHQTdCUSw2QkFBNkI7NEZBQTdCLDZCQUE2Qiw4SUNaMUMsNmRBV0EsazJCRERjLE9BQU87OzRGQUVSLDZCQUE2QjtrQkFQekMsU0FBUzsrQkFDSSwwQkFBMEIsY0FHeEIsSUFBSSxXQUNQLENBQUMsT0FBTyxDQUFDOzhCQVVYLElBQUk7c0JBRFYsS0FBSztnQkFRQyxLQUFLO3NCQURYLEtBQUs7Z0JBUUMsS0FBSztzQkFEWCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ1N0eWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbmV4cG9ydCB0eXBlIFByb2dyZXNzQmFySW5kaWNhdG9yTW9kZSA9ICdwZXJjZW50YWdlJyB8ICdpbnRlcm1pdHRlbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3MtcHJvZ3Jlc3MtYmFyLWluZGljYXRvcicsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vcHJvZ3Jlc3MtYmFyLWluZGljYXRvci5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9wcm9ncmVzcy1iYXItaW5kaWNhdG9yLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgaW1wb3J0czogW05nU3R5bGVdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJvZ3Jlc3NCYXJJbmRpY2F0b3JDb21wb25lbnQge1xyXG4gICAgLyoqXHJcbiAgICAgKiBAZGVzY3JpcHRpb24gTW9kbyBkZSBleGliacOnw6NvIGRhIGJhcnJhLlxyXG4gICAgICogLSBgJ3BlcmNlbnRhZ2UnYDogZXhpYmUgbyBwcmVlbmNoaW1lbnRvIHByb3BvcmNpb25hbCBhbyBgdmFsdWVgICgw4oCTMTAwKS5cclxuICAgICAqIC0gYCdpbnRlcm1pdHRlbnQnYDogYW5pbWEgYSBiYXJyYSBpbmRvIGUgdm9sdGFuZG8gaW5kZWZpbmlkYW1lbnRlLlxyXG4gICAgICogQGRlZmF1bHQgJ2ludGVybWl0dGVudCdcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBtb2RlOiBQcm9ncmVzc0JhckluZGljYXRvck1vZGUgPSAnaW50ZXJtaXR0ZW50JztcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBkZXNjcmlwdGlvbiBWYWxvciBkZSBwcm9ncmVzc28gKDDigJMxMDApLiBVc2FkbyBhcGVuYXMgbm8gbW9kbyBgJ3BlcmNlbnRhZ2UnYC5cclxuICAgICAqIEBkZWZhdWx0IDBcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyB2YWx1ZSA9IDA7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAZGVzY3JpcHRpb24gVGV4dG8gZXhpYmlkbyBhYmFpeG8gZGEgYmFycmEuXHJcbiAgICAgKiBRdWFuZG8gb21pdGlkbywgdXNhIGAne3ZhbHVlfSUnYCBubyBtb2RvIGAncGVyY2VudGFnZSdgIG91IGAnQ2FycmVnYW5kby4uLidgIG5vIG1vZG8gYCdpbnRlcm1pdHRlbnQnYC5cclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBsYWJlbD86IHN0cmluZztcclxuXHJcbiAgICBwdWJsaWMgZ2V0IGRpc3BsYXlMYWJlbCgpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICh0aGlzLmxhYmVsKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxhYmVsO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy5tb2RlID09PSAncGVyY2VudGFnZScgPyBgJHt0aGlzLnZhbHVlfSVgIDogJ0NhcnJlZ2FuZG8uLi4nO1xyXG4gICAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJwcm9ncmVzcy1iYXItaW5kaWNhdG9yXCI+XG4gICAgPGRpdiBjbGFzcz1cInByb2dyZXNzLWJhci10cmFja1wiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInByb2dyZXNzLWJhci1maWxsXCJcbiAgICAgICAgICAgIFtjbGFzcy5wcm9ncmVzcy1iYXItZmlsbC0tcGVyY2VudGFnZV09XCJtb2RlID09PSAncGVyY2VudGFnZSdcIlxuICAgICAgICAgICAgW2NsYXNzLnByb2dyZXNzLWJhci1maWxsLS1pbnRlcm1pdHRlbnRdPVwibW9kZSA9PT0gJ2ludGVybWl0dGVudCdcIlxuICAgICAgICAgICAgW25nU3R5bGVdPVwibW9kZSA9PT0gJ3BlcmNlbnRhZ2UnID8geyB3aWR0aDogdmFsdWUgKyAnJScgfSA6IHt9XCJcbiAgICAgICAgPjwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxzcGFuIGNsYXNzPVwicHJvZ3Jlc3MtYmFyLWxhYmVsXCI+e3sgZGlzcGxheUxhYmVsIH19PC9zcGFuPlxuPC9kaXY+XG4iXX0=