UNPKG

@clr/angular

Version:

Angular components for Clarity

177 lines 15.4 kB
/* * Copyright (c) 2016-2025 Broadcom. All Rights Reserved. * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries. * 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 clrCompact(value) { this._compact = isBooleanAttributeSet(value); } get compactClass() { return this._compact; } 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; } get warningClass() { return this.color === 'warning'; } get successClass() { return this.color === 'success'; } get dangerClass() { return this.color === '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"], color: ["clrColor", "color"], value: ["clrValue", "value"], id: "id", clrCompact: "clrCompact", clrLabeled: "clrLabeled", clrFade: "clrFade", clrLoop: "clrLoop", clrFlash: "clrFlash", clrFlashDanger: "clrFlashDanger" }, host: { properties: { "attr.id": "this.externalId", "class.progress": "this.progressClass", "class.compact": "this.compactClass", "class.labeled": "this.labeledClass", "class.progress-fade": "this.fadeClass", "class.loop": "this.loopClass", "class.warning": "this.warningClass", "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'] }], color: [{ type: Input, args: ['clrColor'] }], value: [{ type: Input, args: ['clrValue'] }], externalId: [{ type: HostBinding, args: ['attr.id'] }], id: [{ type: Input }], progressClass: [{ type: HostBinding, args: ['class.progress'] }], clrCompact: [{ type: Input, args: ['clrCompact'] }], compactClass: [{ type: HostBinding, args: ['class.compact'] }], 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'] }], warningClass: [{ type: HostBinding, args: ['class.warning'] }], successClass: [{ type: HostBinding, args: ['class.success'] }], 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MtYmFyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvcHJvZ3Jlc3MvcHJvZ3Jlc3MtYmFycy9wcm9ncmVzcy1iYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFOUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7OztBQVN2RixNQUFNLE9BQU8sY0FBYztJQVAzQjtRQVFtQixRQUFHLEdBQW9CLEdBQUcsQ0FBQztRQUk1Qzs7Ozs7O1dBTUc7UUFDZ0IsVUFBSyxHQUFvQixDQUFDLENBQUM7UUFFdEIsZUFBVSxHQUFHLEVBQUUsQ0FBQztLQXFIekM7SUEzR0MsSUFDSSxFQUFFO1FBQ0osT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ2xCLENBQUM7SUFDRCxJQUFJLEVBQUUsQ0FBQyxLQUFhO1FBQ2xCLElBQUksQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUNJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxJQUNJLFVBQVUsQ0FBQyxLQUF1QjtRQUNwQyxJQUFJLENBQUMsUUFBUSxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxJQUNJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQ0ksVUFBVSxDQUFDLEtBQXVCO1FBQ3BDLElBQUksQ0FBQyxRQUFRLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELElBQ0ksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLFFB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QUFVO3NCQURiLFdBQVc7dUJBQUMsYUFBYTtnQkFPdEIsY0FBYztzQkFEakIsS0FBSzt1QkFBQyxnQkFBZ0I7Z0JBTW5CLGdCQUFnQjtzQkFEbkIsV0FBVzt1QkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjUgQnJvYWRjb20uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGUgdGVybSBcIkJyb2FkY29tXCIgcmVmZXJzIHRvIEJyb2FkY29tIEluYy4gYW5kL29yIGl0cyBzdWJzaWRpYXJpZXMuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IGlzQm9vbGVhbkF0dHJpYnV0ZVNldCB9IGZyb20gJy4uLy4uL3V0aWxzL2NvbXBvbmVudC9pcy1ib29sZWFuLWF0dHJpYnV0ZS1zZXQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjbHItcHJvZ3Jlc3MtYmFyJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8cHJvZ3Jlc3MgW2lkXT1cImlkXCIgW2F0dHIubWF4XT1cIm1heFwiIFthdHRyLnZhbHVlXT1cInZhbHVlXCIgW2F0dHIuZGF0YS1kaXNwbGF5dmFsXT1cImRpc3BsYXlWYWx1ZVwiPjwvcHJvZ3Jlc3M+XG4gICAgPHNwYW4gKm5nSWY9XCJkaXNwbGF5U3RyaW5nVmFsdWUoKVwiPnt7IGRpc3BsYXlWYWx1ZSB9fTwvc3Bhbj5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgQ2xyUHJvZ3Jlc3NCYXIge1xuICBASW5wdXQoJ2Nsck1heCcpIG1heDogbnVtYmVyIHwgc3RyaW5nID0gMTAwO1xuICBASW5wdXQoJ2NsckRpc3BsYXl2YWwnKSBkaXNwbGF5dmFsOiBzdHJpbmc7XG4gIEBJbnB1dCgnY2xyQ29sb3InKSBjb2xvcjogc3RyaW5nO1xuXG4gIC8qXG4gICAqIE5vIG5lZWQgdG8gY29udmVydCB0byBgbnVtYmVyYCBjYXVzZSB3ZSBjb3VsZCBoYXZlXG4gICAqIGZsb2F0aW5nIHBvaW50IGFuZCBwYXJzZUludCB3aWxsIHJvdW5kIHRoZSBudW1iZXJzXG4gICAqXG4gICAqIHdvcmtpbmcgd2l0aCBzdHJpbmcgd29uJ3QgaGF2ZSBhbnkgc2lkZS1lZmZlY3RzLFxuICAgKiB3ZSBkb24ndCBkbyBhbnkgbWF0aCBzbyBzdHJpbmcgd2lsbCBkbyB0aGUgam9iLlxuICAgKi9cbiAgQElucHV0KCdjbHJWYWx1ZScpIHZhbHVlOiBudW1iZXIgfCBzdHJpbmcgPSAwO1xuXG4gIEBIb3N0QmluZGluZygnYXR0ci5pZCcpIGV4dGVybmFsSWQgPSAnJztcblxuICBwcml2YXRlIF9JRDogc3RyaW5nO1xuICBwcml2YXRlIF9sYWJlbGVkOiBib29sZWFuO1xuICBwcml2YXRlIF9mYWRlOiBib29sZWFuO1xuICBwcml2YXRlIF9sb29wOiBib29sZWFuO1xuICBwcml2YXRlIF9mbGFzaDogYm9vbGVhbjtcbiAgcHJpdmF0ZSBfZmxhc2hEYW5nZXI6IGJvb2xlYW47XG4gIHByaXZhdGUgX2NvbXBhY3Q6IGJvb2xlYW47XG5cbiAgQElucHV0KClcbiAgZ2V0IGlkKCkge1xuICAgIHJldHVybiB0aGlzLl9JRDtcbiAgfVxuICBzZXQgaWQodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX0lEID0gdmFsdWU7XG4gICAgdGhpcy5leHRlcm5hbElkID0gbnVsbDtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MucHJvZ3Jlc3MnKVxuICBnZXQgcHJvZ3Jlc3NDbGFzcygpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIEBJbnB1dCgnY2xyQ29tcGFjdCcpXG4gIHNldCBjbHJDb21wYWN0KHZhbHVlOiBib29sZWFuIHwgc3RyaW5nKSB7XG4gICAgdGhpcy5fY29tcGFjdCA9IGlzQm9vbGVhbkF0dHJpYnV0ZVNldCh2YWx1ZSk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNvbXBhY3QnKVxuICBnZXQgY29tcGFjdENsYXNzKCkge1xuICAgIHJldHVybiB0aGlzLl9jb21wYWN0O1xuICB9XG5cbiAgQElucHV0KCdjbHJMYWJlbGVkJylcbiAgc2V0IGNsckxhYmVsZWQodmFsdWU6IGJvb2xlYW4gfCBzdHJpbmcpIHtcbiAgICB0aGlzLl9sYWJlbGVkID0gaXNCb29sZWFuQXR0cmlidXRlU2V0KHZhbHVlKTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MubGFiZWxlZCcpXG4gIGdldCBsYWJlbGVkQ2xhc3MoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2xhYmVsZWQ7XG4gIH1cblxuICBASW5wdXQoJ2NsckZhZGUnKVxuICBzZXQgY2xyRmFkZSh2YWx1ZTogYm9vbGVhbiB8IHN0cmluZykge1xuICAgIHRoaXMuX2ZhZGUgPSBpc0Jvb2xlYW5BdHRyaWJ1dGVTZXQodmFsdWUpO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5wcm9ncmVzcy1mYWRlJylcbiAgZ2V0IGZhZGVDbGFzcygpIHtcbiAgICByZXR1cm4gdGhpcy5fZmFkZTtcbiAgfVxuXG4gIEBJbnB1dCgnY2xyTG9vcCcpXG4gIHNldCBjbHJMb29wKHZhbHVlOiBib29sZWFuIHwgc3RyaW5nKSB7XG4gICAgdGhpcy5fbG9vcCA9IGlzQm9vbGVhbkF0dHJpYnV0ZVNldCh2YWx1ZSk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmxvb3AnKVxuICBnZXQgbG9vcENsYXNzKCkge1xuICAgIHJldHVybiB0aGlzLl9sb29wO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy53YXJuaW5nJylcbiAgZ2V0IHdhcm5pbmdDbGFzcygpIHtcbiAgICByZXR1cm4gdGhpcy5jb2xvciA9PT0gJ3dhcm5pbmcnO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zdWNjZXNzJylcbiAgZ2V0IHN1Y2Nlc3NDbGFzcygpIHtcbiAgICByZXR1cm4gdGhpcy5jb2xvciA9PT0gJ3N1Y2Nlc3MnO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5kYW5nZXInKVxuICBnZXQgZGFuZ2VyQ2xhc3MoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29sb3IgPT09ICdkYW5nZXInO1xuICB9XG5cbiAgQElucHV0KCdjbHJGbGFzaCcpXG4gIHNldCBjbHJGbGFzaCh2YWx1ZTogYm9vbGVhbiB8IHN0cmluZykge1xuICAgIHRoaXMuX2ZsYXNoID0gaXNCb29sZWFuQXR0cmlidXRlU2V0KHZhbHVlKTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZmxhc2gnKVxuICBnZXQgZmxhc2hDbGFzcygpIHtcbiAgICByZXR1cm4gdGhpcy5fZmxhc2g7XG4gIH1cblxuICAvKiogQGRlcHJlY2F0ZWQgc2luY2UgMi4wLCByZW1vdmUgaW4gNC4wICovXG4gIEBJbnB1dCgnY2xyRmxhc2hEYW5nZXInKVxuICBzZXQgY2xyRmxhc2hEYW5nZXIodmFsdWU6IGJvb2xlYW4gfCBzdHJpbmcpIHtcbiAgICB0aGlzLl9mbGFzaERhbmdlciA9IGlzQm9vbGVhbkF0dHJpYnV0ZVNldCh2YWx1ZSk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZsYXNoLWRhbmdlcicpXG4gIGdldCBmbGFzaERhbmdlckNsYXNzKCkge1xuICAgIHJldHVybiB0aGlzLl9mbGFzaERhbmdlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYWtlIHN1cmUgdGhhdCB3ZSBhbHdheXMgd2lsbCBoYXZlIHNvbWV0aGluZyB0aGF0IGlzIHJlYWRhYmxlXG4gICAqIGZvciB0aGUgc2NyZWVuIHJlYWRlclxuICAgKi9cbiAgZ2V0IGRpc3BsYXlWYWx1ZSgpIHtcbiAgICBpZiAodGhpcy5kaXNwbGF5dmFsKSB7XG4gICAgICByZXR1cm4gdGhpcy5kaXNwbGF5dmFsO1xuICAgIH1cbiAgICByZXR1cm4gYCR7dGhpcy52YWx1ZSB8fCAwfSVgO1xuICB9XG5cbiAgLyoqXG4gICAqIERpc3BsYXkgb3B0aW9uYWwgdGV4dCBvbmx5IHdoZW4gbGFiZWxlZCBpcyBlbmVhYmxlZFxuICAgKi9cbiAgZGlzcGxheVN0cmluZ1ZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLl9sYWJlbGVkO1xuICB9XG59XG4iXX0=