UNPKG

ngx-bootstrap

Version:
165 lines (158 loc) 10 kB
import * as i0 from '@angular/core'; import { Component, ChangeDetectionStrategy, Input, Injectable, NgModule } from '@angular/core'; import { NgIf, NgFor } from '@angular/common'; class BarComponent { constructor(el, renderer) { this.el = el; this.renderer = renderer; /** maximum total value of progress element */ this.max = 100; /** current value of progress bar */ this.value = 0; /** if `true` changing value of progress bar will be animated */ this.animate = false; /** If `true`, striped classes are applied */ this.striped = false; /** provide one of the four supported contextual classes: `success`, `info`, `warning`, `danger` */ this.type = 'info'; this.percent = 100; } ngOnChanges(changes) { if (changes["value"] || changes["max"]) { this.percent = 100 * (Number(changes["value"]?.currentValue || this.value) / Number((changes["max"]?.currentValue || this.max) || 100)); } if (changes["type"]) { this.applyTypeClasses(); } } applyTypeClasses() { if (this._prevType) { const barTypeClass = `progress-bar-${this._prevType}`; const bgClass = `bg-${this._prevType}`; this.renderer.removeClass(this.el.nativeElement, barTypeClass); this.renderer.removeClass(this.el.nativeElement, bgClass); this._prevType = void 0; } if (this.type) { const barTypeClass = `progress-bar-${this.type}`; const bgClass = `bg-${this.type}`; this.renderer.addClass(this.el.nativeElement, barTypeClass); this.renderer.addClass(this.el.nativeElement, bgClass); this._prevType = this.type; } } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: BarComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.1", type: BarComponent, isStandalone: true, selector: "bar", inputs: { max: "max", value: "value", animate: "animate", striped: "striped", type: "type" }, host: { attributes: { "role": "progressbar", "aria-valuemin": "0" }, properties: { "class.progress-bar": "true", "class.progress-bar-animated": "animate", "class.progress-bar-striped": "striped", "attr.aria-valuenow": "value", "attr.aria-valuetext": "percent ? percent.toFixed(0) + \"%\" : \"\"", "attr.aria-valuemax": "max", "style.height.%": "\"100\"", "style.width.%": "percent" } }, usesOnChanges: true, ngImport: i0, template: "<ng-content></ng-content>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: BarComponent, decorators: [{ type: Component, args: [{ selector: 'bar', changeDetection: ChangeDetectionStrategy.OnPush, host: { role: 'progressbar', 'aria-valuemin': '0', '[class.progress-bar]': 'true', '[class.progress-bar-animated]': 'animate', '[class.progress-bar-striped]': 'striped', '[attr.aria-valuenow]': 'value', '[attr.aria-valuetext]': 'percent ? percent.toFixed(0) + "%" : ""', '[attr.aria-valuemax]': 'max', '[style.height.%]': '"100"', '[style.width.%]': 'percent' }, standalone: true, template: "<ng-content></ng-content>\n" }] }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { max: [{ type: Input }], value: [{ type: Input }], animate: [{ type: Input }], striped: [{ type: Input }], type: [{ type: Input }] } }); class ProgressbarConfig { constructor() { /** if `true` changing value of progress bar will be animated */ this.animate = false; /** maximum total value of progress element */ this.max = 100; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: ProgressbarConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: ProgressbarConfig, providedIn: 'root' }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: ProgressbarConfig, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }] }); class ProgressbarComponent { /** current value of progress bar. Could be a number or array of objects * like {"value":15,"type":"info","label":"15 %"} */ set value(value) { this.isStacked = Array.isArray(value); if (typeof value === 'number') { this._value = value; this._values = void 0; } else { this._value = void 0; this._values = value; } } constructor(config) { /** maximum total value of progress element */ this.max = 100; /** if `true` changing value of progress bar will be animated */ this.animate = false; /** If `true`, striped classes are applied */ this.striped = false; this.isStacked = false; this._value = 0; Object.assign(this, config); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: ProgressbarComponent, deps: [{ token: ProgressbarConfig }], target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.1", type: ProgressbarComponent, isStandalone: true, selector: "progressbar", inputs: { max: "max", animate: "animate", striped: "striped", type: "type", value: "value" }, host: { properties: { "class.progress": "true", "attr.max": "max" } }, ngImport: i0, template: "<ng-container *ngIf=\"!isStacked then NotStacked else Stacked\"></ng-container>\n\n<ng-template #NotStacked>\n <bar [type]=\"type\" [value]=\"_value\" [max]=\"max\" [animate]=\"animate\" [striped]=\"striped\">\n <ng-content></ng-content>\n </bar>\n</ng-template>\n\n<ng-template #Stacked>\n <bar *ngFor=\"let item of _values\"\n [type]=\"item.type\" [value]=\"item.value\" [max]=\"item.max || max\" [animate]=\"animate\" [striped]=\"striped\">{{ item.label }}</bar>\n</ng-template>\n", styles: [":host{width:100%;display:flex}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: BarComponent, selector: "bar", inputs: ["max", "value", "animate", "striped", "type"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: ProgressbarComponent, decorators: [{ type: Component, args: [{ selector: 'progressbar', changeDetection: ChangeDetectionStrategy.OnPush, host: { '[class.progress]': 'true', '[attr.max]': 'max' }, standalone: true, imports: [NgIf, BarComponent, NgFor], template: "<ng-container *ngIf=\"!isStacked then NotStacked else Stacked\"></ng-container>\n\n<ng-template #NotStacked>\n <bar [type]=\"type\" [value]=\"_value\" [max]=\"max\" [animate]=\"animate\" [striped]=\"striped\">\n <ng-content></ng-content>\n </bar>\n</ng-template>\n\n<ng-template #Stacked>\n <bar *ngFor=\"let item of _values\"\n [type]=\"item.type\" [value]=\"item.value\" [max]=\"item.max || max\" [animate]=\"animate\" [striped]=\"striped\">{{ item.label }}</bar>\n</ng-template>\n", styles: [":host{width:100%;display:flex}\n"] }] }], ctorParameters: () => [{ type: ProgressbarConfig }], propDecorators: { max: [{ type: Input }], animate: [{ type: Input }], striped: [{ type: Input }], type: [{ type: Input }], value: [{ type: Input }] } }); class ProgressbarModule { // @deprecated method not required anymore, will be deleted in v19.0.0 static forRoot() { return { ngModule: ProgressbarModule, providers: [] }; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: ProgressbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); } static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.1", ngImport: i0, type: ProgressbarModule, imports: [BarComponent, ProgressbarComponent], exports: [BarComponent, ProgressbarComponent] }); } static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: ProgressbarModule }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: ProgressbarModule, decorators: [{ type: NgModule, args: [{ imports: [BarComponent, ProgressbarComponent], exports: [BarComponent, ProgressbarComponent] }] }] }); /** * Generated bundle index. Do not edit. */ export { BarComponent, ProgressbarComponent, ProgressbarConfig, ProgressbarModule }; //# sourceMappingURL=ngx-bootstrap-progressbar.mjs.map