UNPKG

@clr/angular

Version:

Angular components for Clarity

169 lines 14.8 kB
/* * Copyright (c) 2016-2023 VMware, Inc. All Rights Reserved. * This software is released under MIT license. * The full license information can be found in LICENSE in the root directory of this project. */ import { Component, HostBinding, Input } from '@angular/core'; import { isBooleanAttributeSet } from '../../utils/component/is-boolean-attribute-set'; import * as i0 from "@angular/core"; import * as i1 from "@angular/common"; export class ClrProgressBar { constructor() { this.max = 100; /* * No need to convert to `number` cause we could have * floating point and parseInt will round the numbers * * working with string won't have any side-effects, * we don't do any math so string will do the job. */ this.value = 0; this.externalId = ''; } get id() { return this._ID; } set id(value) { this._ID = value; this.externalId = null; } get progressClass() { return true; } set clrLabeled(value) { this._labeled = isBooleanAttributeSet(value); } get labeledClass() { return this._labeled; } set clrFade(value) { this._fade = isBooleanAttributeSet(value); } get fadeClass() { return this._fade; } set clrLoop(value) { this._loop = isBooleanAttributeSet(value); } get loopClass() { return this._loop; } /** @deprecated since 2.0, remove in 4.0 */ set clrSuccess(value) { this._success = isBooleanAttributeSet(value); } get successClass() { return this._success; } /** @deprecated since 2.0, remove in 4.0 */ set clrDanger(value) { this._danger = isBooleanAttributeSet(value); } get dangerClass() { return this._danger; } set clrFlash(value) { this._flash = isBooleanAttributeSet(value); } get flashClass() { return this._flash; } /** @deprecated since 2.0, remove in 4.0 */ set clrFlashDanger(value) { this._flashDanger = isBooleanAttributeSet(value); } get flashDangerClass() { return this._flashDanger; } /** * Make sure that we always will have something that is readable * for the screen reader */ get displayValue() { if (this.displayval) { return this.displayval; } return `${this.value || 0}%`; } /** * Display optional text only when labeled is eneabled */ displayStringValue() { return this._labeled; } } ClrProgressBar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrProgressBar, deps: [], target: i0.ɵɵFactoryTarget.Component }); ClrProgressBar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrProgressBar, selector: "clr-progress-bar", inputs: { max: ["clrMax", "max"], displayval: ["clrDisplayval", "displayval"], value: ["clrValue", "value"], id: "id", clrLabeled: "clrLabeled", clrFade: "clrFade", clrLoop: "clrLoop", clrSuccess: "clrSuccess", clrDanger: "clrDanger", clrFlash: "clrFlash", clrFlashDanger: "clrFlashDanger" }, host: { properties: { "attr.id": "this.externalId", "class.progress": "this.progressClass", "class.labeled": "this.labeledClass", "class.progress-fade": "this.fadeClass", "class.loop": "this.loopClass", "class.success": "this.successClass", "class.danger": "this.dangerClass", "class.flash": "this.flashClass", "class.flash-danger": "this.flashDangerClass" } }, ngImport: i0, template: ` <progress [id]="id" [attr.max]="max" [attr.value]="value" [attr.data-displayval]="displayValue"></progress> <span *ngIf="displayStringValue()">{{ displayValue }}</span> `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrProgressBar, decorators: [{ type: Component, args: [{ selector: 'clr-progress-bar', template: ` <progress [id]="id" [attr.max]="max" [attr.value]="value" [attr.data-displayval]="displayValue"></progress> <span *ngIf="displayStringValue()">{{ displayValue }}</span> `, }] }], propDecorators: { max: [{ type: Input, args: ['clrMax'] }], displayval: [{ type: Input, args: ['clrDisplayval'] }], value: [{ type: Input, args: ['clrValue'] }], externalId: [{ type: HostBinding, args: ['attr.id'] }], id: [{ type: Input }], progressClass: [{ type: HostBinding, args: ['class.progress'] }], clrLabeled: [{ type: Input, args: ['clrLabeled'] }], labeledClass: [{ type: HostBinding, args: ['class.labeled'] }], clrFade: [{ type: Input, args: ['clrFade'] }], fadeClass: [{ type: HostBinding, args: ['class.progress-fade'] }], clrLoop: [{ type: Input, args: ['clrLoop'] }], loopClass: [{ type: HostBinding, args: ['class.loop'] }], clrSuccess: [{ type: Input, args: ['clrSuccess'] }], successClass: [{ type: HostBinding, args: ['class.success'] }], clrDanger: [{ type: Input, args: ['clrDanger'] }], dangerClass: [{ type: HostBinding, args: ['class.danger'] }], clrFlash: [{ type: Input, args: ['clrFlash'] }], flashClass: [{ type: HostBinding, args: ['class.flash'] }], clrFlashDanger: [{ type: Input, args: ['clrFlashDanger'] }], flashDangerClass: [{ type: HostBinding, args: ['class.flash-danger'] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MtYmFyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvcHJvZ3Jlc3MvcHJvZ3Jlc3MtYmFycy9wcm9ncmVzcy1iYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQzs7O0FBU3ZGLE1BQU0sT0FBTyxjQUFjO0lBUDNCO1FBUW1CLFFBQUcsR0FBb0IsR0FBRyxDQUFDO1FBRzVDOzs7Ozs7V0FNRztRQUNnQixVQUFLLEdBQW9CLENBQUMsQ0FBQztRQUV0QixlQUFVLEdBQUcsRUFBRSxDQUFDO0tBbUh6QztJQXhHQyxJQUNJLEVBQUU7UUFDSixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDbEIsQ0FBQztJQUNELElBQUksRUFBRSxDQUFDLEtBQWE7UUFDbEIsSUFBSSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUM7UUFDakIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7SUFDekIsQ0FBQztJQUVELElBQ0ksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELElBQ0ksVUFBVSxDQUFDLEtBQXVCO1FBQ3BDLElBQUksQ0FBQyxRQUFRLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELElBQ0ksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFDSSxPQUFPLENBQUMsS0FBdUI7UUFDakMsSUFBSSxDQUFDLEtBQUssR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsSUFDSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsS0FB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QkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjMgVk13YXJlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IGlzQm9vbGVhbkF0dHJpYnV0ZVNldCB9IGZyb20gJy4uLy4uL3V0aWxzL2NvbXBvbmVudC9pcy1ib29sZWFuLWF0dHJpYnV0ZS1zZXQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjbHItcHJvZ3Jlc3MtYmFyJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8cHJvZ3Jlc3MgW2lkXT1cImlkXCIgW2F0dHIubWF4XT1cIm1heFwiIFthdHRyLnZhbHVlXT1cInZhbHVlXCIgW2F0dHIuZGF0YS1kaXNwbGF5dmFsXT1cImRpc3BsYXlWYWx1ZVwiPjwvcHJvZ3Jlc3M+XG4gICAgPHNwYW4gKm5nSWY9XCJkaXNwbGF5U3RyaW5nVmFsdWUoKVwiPnt7IGRpc3BsYXlWYWx1ZSB9fTwvc3Bhbj5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgQ2xyUHJvZ3Jlc3NCYXIge1xuICBASW5wdXQoJ2Nsck1heCcpIG1heDogbnVtYmVyIHwgc3RyaW5nID0gMTAwO1xuICBASW5wdXQoJ2NsckRpc3BsYXl2YWwnKSBkaXNwbGF5dmFsOiBzdHJpbmc7XG5cbiAgLypcbiAgICogTm8gbmVlZCB0byBjb252ZXJ0IHRvIGBudW1iZXJgIGNhdXNlIHdlIGNvdWxkIGhhdmVcbiAgICogZmxvYXRpbmcgcG9pbnQgYW5kIHBhcnNlSW50IHdpbGwgcm91bmQgdGhlIG51bWJlcnNcbiAgICpcbiAgICogd29ya2luZyB3aXRoIHN0cmluZyB3b24ndCBoYXZlIGFueSBzaWRlLWVmZmVjdHMsXG4gICAqIHdlIGRvbid0IGRvIGFueSBtYXRoIHNvIHN0cmluZyB3aWxsIGRvIHRoZSBqb2IuXG4gICAqL1xuICBASW5wdXQoJ2NsclZhbHVlJykgdmFsdWU6IG51bWJlciB8IHN0cmluZyA9IDA7XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmlkJykgZXh0ZXJuYWxJZCA9ICcnO1xuXG4gIHByaXZhdGUgX0lEOiBzdHJpbmc7XG4gIHByaXZhdGUgX2xhYmVsZWQ6IGJvb2xlYW47XG4gIHByaXZhdGUgX2ZhZGU6IGJvb2xlYW47XG4gIHByaXZhdGUgX2xvb3A6IGJvb2xlYW47XG4gIHByaXZhdGUgX3N1Y2Nlc3M6IGJvb2xlYW47XG4gIHByaXZhdGUgX2RhbmdlcjogYm9vbGVhbjtcbiAgcHJpdmF0ZSBfZmxhc2g6IGJvb2xlYW47XG4gIHByaXZhdGUgX2ZsYXNoRGFuZ2VyOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBpZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fSUQ7XG4gIH1cbiAgc2V0IGlkKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9JRCA9IHZhbHVlO1xuICAgIHRoaXMuZXh0ZXJuYWxJZCA9IG51bGw7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnByb2dyZXNzJylcbiAgZ2V0IHByb2dyZXNzQ2xhc3MoKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBASW5wdXQoJ2NsckxhYmVsZWQnKVxuICBzZXQgY2xyTGFiZWxlZCh2YWx1ZTogYm9vbGVhbiB8IHN0cmluZykge1xuICAgIHRoaXMuX2xhYmVsZWQgPSBpc0Jvb2xlYW5BdHRyaWJ1dGVTZXQodmFsdWUpO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5sYWJlbGVkJylcbiAgZ2V0IGxhYmVsZWRDbGFzcygpIHtcbiAgICByZXR1cm4gdGhpcy5fbGFiZWxlZDtcbiAgfVxuXG4gIEBJbnB1dCgnY2xyRmFkZScpXG4gIHNldCBjbHJGYWRlKHZhbHVlOiBib29sZWFuIHwgc3RyaW5nKSB7XG4gICAgdGhpcy5fZmFkZSA9IGlzQm9vbGVhbkF0dHJpYnV0ZVNldCh2YWx1ZSk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnByb2dyZXNzLWZhZGUnKVxuICBnZXQgZmFkZUNsYXNzKCkge1xuICAgIHJldHVybiB0aGlzLl9mYWRlO1xuICB9XG5cbiAgQElucHV0KCdjbHJMb29wJylcbiAgc2V0IGNsckxvb3AodmFsdWU6IGJvb2xlYW4gfCBzdHJpbmcpIHtcbiAgICB0aGlzLl9sb29wID0gaXNCb29sZWFuQXR0cmlidXRlU2V0KHZhbHVlKTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MubG9vcCcpXG4gIGdldCBsb29wQ2xhc3MoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2xvb3A7XG4gIH1cblxuICAvKiogQGRlcHJlY2F0ZWQgc2luY2UgMi4wLCByZW1vdmUgaW4gNC4wICovXG4gIEBJbnB1dCgnY2xyU3VjY2VzcycpXG4gIHNldCBjbHJTdWNjZXNzKHZhbHVlOiBib29sZWFuIHwgc3RyaW5nKSB7XG4gICAgdGhpcy5fc3VjY2VzcyA9IGlzQm9vbGVhbkF0dHJpYnV0ZVNldCh2YWx1ZSk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnN1Y2Nlc3MnKVxuICBnZXQgc3VjY2Vzc0NsYXNzKCkge1xuICAgIHJldHVybiB0aGlzLl9zdWNjZXNzO1xuICB9XG5cbiAgLyoqIEBkZXByZWNhdGVkIHNpbmNlIDIuMCwgcmVtb3ZlIGluIDQuMCAqL1xuICBASW5wdXQoJ2NsckRhbmdlcicpXG4gIHNldCBjbHJEYW5nZXIodmFsdWU6IGJvb2xlYW4gfCBzdHJpbmcpIHtcbiAgICB0aGlzLl9kYW5nZXIgPSBpc0Jvb2xlYW5BdHRyaWJ1dGVTZXQodmFsdWUpO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5kYW5nZXInKVxuICBnZXQgZGFuZ2VyQ2xhc3MoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2RhbmdlcjtcbiAgfVxuXG4gIEBJbnB1dCgnY2xyRmxhc2gnKVxuICBzZXQgY2xyRmxhc2godmFsdWU6IGJvb2xlYW4gfCBzdHJpbmcpIHtcbiAgICB0aGlzLl9mbGFzaCA9IGlzQm9vbGVhbkF0dHJpYnV0ZVNldCh2YWx1ZSk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZsYXNoJylcbiAgZ2V0IGZsYXNoQ2xhc3MoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZsYXNoO1xuICB9XG5cbiAgLyoqIEBkZXByZWNhdGVkIHNpbmNlIDIuMCwgcmVtb3ZlIGluIDQuMCAqL1xuICBASW5wdXQoJ2NsckZsYXNoRGFuZ2VyJylcbiAgc2V0IGNsckZsYXNoRGFuZ2VyKHZhbHVlOiBib29sZWFuIHwgc3RyaW5nKSB7XG4gICAgdGhpcy5fZmxhc2hEYW5nZXIgPSBpc0Jvb2xlYW5BdHRyaWJ1dGVTZXQodmFsdWUpO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mbGFzaC1kYW5nZXInKVxuICBnZXQgZmxhc2hEYW5nZXJDbGFzcygpIHtcbiAgICByZXR1cm4gdGhpcy5fZmxhc2hEYW5nZXI7XG4gIH1cblxuICAvKipcbiAgICogTWFrZSBzdXJlIHRoYXQgd2UgYWx3YXlzIHdpbGwgaGF2ZSBzb21ldGhpbmcgdGhhdCBpcyByZWFkYWJsZVxuICAgKiBmb3IgdGhlIHNjcmVlbiByZWFkZXJcbiAgICovXG4gIGdldCBkaXNwbGF5VmFsdWUoKSB7XG4gICAgaWYgKHRoaXMuZGlzcGxheXZhbCkge1xuICAgICAgcmV0dXJuIHRoaXMuZGlzcGxheXZhbDtcbiAgICB9XG4gICAgcmV0dXJuIGAke3RoaXMudmFsdWUgfHwgMH0lYDtcbiAgfVxuXG4gIC8qKlxuICAgKiBEaXNwbGF5IG9wdGlvbmFsIHRleHQgb25seSB3aGVuIGxhYmVsZWQgaXMgZW5lYWJsZWRcbiAgICovXG4gIGRpc3BsYXlTdHJpbmdWYWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fbGFiZWxlZDtcbiAgfVxufVxuIl19