zek 14.2.49 → 14.2.51

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,40 +1,25 @@
1
1
  import { Component, Input } from '@angular/core';
2
- import { Convert, MathHelper, ObjectHelper } from '../../utils';
2
+ import { Convert } from '../../utils';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "@angular/common";
5
- function toPercent(v) {
6
- let n = MathHelper.round(Convert.toNumber(v));
7
- if (n > 100) {
8
- return 100;
9
- }
10
- else if (n < 0) {
11
- return 0;
12
- }
13
- return n;
5
+ function clamp(v, min = 0, max = 100) {
6
+ return Math.max(min, Math.min(max, v));
14
7
  }
15
8
  export class ZekProgress {
16
9
  constructor() {
17
- this._max = 100;
18
10
  this._value = 0;
19
- this._normalizedValue = 0;
20
11
  this._showValue = false;
21
12
  this._striped = false;
22
13
  this._animated = false;
23
14
  this._label = null;
24
15
  this._height = null;
25
- }
26
- get max() {
27
- return this._max;
28
- }
29
- set max(v) {
30
- this._max = toPercent(v);
16
+ this._background = 'primary';
31
17
  }
32
18
  get value() {
33
19
  return this._value;
34
20
  }
35
21
  set value(v) {
36
- this._value = Convert.toNumber(v);
37
- this._normalizedValue = toPercent(this._value);
22
+ this._value = clamp(Convert.toNumber(v) || 0);
38
23
  }
39
24
  get showValue() {
40
25
  return this._showValue;
@@ -58,19 +43,14 @@ export class ZekProgress {
58
43
  return this._label;
59
44
  }
60
45
  set label(v) {
61
- if (this.label)
62
- this._label = v;
46
+ this._label = v ? v : null;
63
47
  }
64
48
  get height() {
65
49
  return this._height;
66
50
  }
67
51
  set height(v) {
68
- if (ObjectHelper.isDefined(v)) {
69
- this._height = Convert.toNumber(v);
70
- }
71
- else {
72
- this._height = null;
73
- }
52
+ let tmp = Convert.toNumber(v) || 0;
53
+ this._height = tmp > 0 ? tmp : null;
74
54
  }
75
55
  get background() {
76
56
  return this._background;
@@ -80,11 +60,13 @@ export class ZekProgress {
80
60
  }
81
61
  }
82
62
  ZekProgress.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: ZekProgress, deps: [], target: i0.ɵɵFactoryTarget.Component });
83
- ZekProgress.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: ZekProgress, selector: "zek-progress", inputs: { max: "max", striped: "striped", animated: "animated", label: "label", height: "height", background: "background" }, ngImport: i0, template: "<div class=\"progress\">\r\n <div class=\"progress-bar\" role=\"progressbar\"\r\n [class.progress-bar-striped]=\"striped || animated\"\r\n [class.progress-bar-animated]=\"animated\"\r\n [style.height.px]=\"height\"\r\n [style.width.%]=\"_normalizedValue\"\r\n [attr.aria-valuenow]=\"_normalizedValue\"\r\n aria-valuemin=\"0\"\r\n [attr.aria-valuemax]=\"max\">\r\n <ng-container *ngIf=\"showValue\">{{_normalizedValue}}%</ng-container>\r\n {{label}}\r\n </div>\r\n</div>", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
63
+ ZekProgress.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: ZekProgress, selector: "zek-progress", inputs: { value: "value", showValue: "showValue", striped: "striped", animated: "animated", label: "label", height: "height", background: "background" }, ngImport: i0, template: "<div class=\"progress\">\r\n <div class=\"progress-bar bg-{{background}}\" role=\"progressbar\"\r\n [class.progress-bar-striped]=\"striped || animated\"\r\n [class.progress-bar-animated]=\"animated\"\r\n [style.height.px]=\"height\"\r\n [style.width.%]=\"value\"\r\n [attr.aria-valuenow]=\"value\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\">\r\n <ng-container *ngIf=\"showValue\">{{value}}%</ng-container>\r\n {{label}}\r\n </div>\r\n</div>", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
84
64
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: ZekProgress, decorators: [{
85
65
  type: Component,
86
- args: [{ selector: 'zek-progress', template: "<div class=\"progress\">\r\n <div class=\"progress-bar\" role=\"progressbar\"\r\n [class.progress-bar-striped]=\"striped || animated\"\r\n [class.progress-bar-animated]=\"animated\"\r\n [style.height.px]=\"height\"\r\n [style.width.%]=\"_normalizedValue\"\r\n [attr.aria-valuenow]=\"_normalizedValue\"\r\n aria-valuemin=\"0\"\r\n [attr.aria-valuemax]=\"max\">\r\n <ng-container *ngIf=\"showValue\">{{_normalizedValue}}%</ng-container>\r\n {{label}}\r\n </div>\r\n</div>", styles: [":host{display:block}\n"] }]
87
- }], propDecorators: { max: [{
66
+ args: [{ selector: 'zek-progress', template: "<div class=\"progress\">\r\n <div class=\"progress-bar bg-{{background}}\" role=\"progressbar\"\r\n [class.progress-bar-striped]=\"striped || animated\"\r\n [class.progress-bar-animated]=\"animated\"\r\n [style.height.px]=\"height\"\r\n [style.width.%]=\"value\"\r\n [attr.aria-valuenow]=\"value\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\">\r\n <ng-container *ngIf=\"showValue\">{{value}}%</ng-container>\r\n {{label}}\r\n </div>\r\n</div>", styles: [":host{display:block}\n"] }]
67
+ }], propDecorators: { value: [{
68
+ type: Input
69
+ }], showValue: [{
88
70
  type: Input
89
71
  }], striped: [{
90
72
  type: Input
@@ -97,4 +79,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
97
79
  }], background: [{
98
80
  type: Input
99
81
  }] } });
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96ZWsvc3JjL2xpYi9tb2R1bGVzL3Byb2dyZXNzL3Byb2dyZXNzLnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvemVrL3NyYy9saWIvbW9kdWxlcy9wcm9ncmVzcy9wcm9ncmVzcy5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpELE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQzs7O0FBRWhFLFNBQVMsU0FBUyxDQUFDLENBQWM7SUFDN0IsSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxFQUFFO1FBQ1QsT0FBTyxHQUFHLENBQUM7S0FDZDtTQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUNkLE9BQU8sQ0FBQyxDQUFDO0tBQ1o7SUFDRCxPQUFPLENBQUMsQ0FBQTtBQUNaLENBQUM7QUFRRCxNQUFNLE9BQU8sV0FBVztJQUx4QjtRQU9ZLFNBQUksR0FBVyxHQUFHLENBQUM7UUFTbkIsV0FBTSxHQUFXLENBQUMsQ0FBQztRQVMzQixxQkFBZ0IsR0FBVyxDQUFDLENBQUM7UUFJckIsZUFBVSxHQUFZLEtBQUssQ0FBQztRQVM1QixhQUFRLEdBQVksS0FBSyxDQUFDO1FBUzFCLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFTM0IsV0FBTSxHQUE4QixJQUFJLENBQUM7UUFZekMsWUFBTyxHQUFrQixJQUFJLENBQUM7S0E0QnpDO0lBeEZHLElBQWEsR0FBRztRQUNaLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNyQixDQUFDO0lBQ0QsSUFBSSxHQUFHLENBQUMsQ0FBYztRQUNsQixJQUFJLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBSUQsSUFBSSxLQUFLO1FBQ0wsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFDRCxJQUFJLEtBQUssQ0FBQyxDQUFjO1FBQ3BCLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBT0QsSUFBSSxTQUFTO1FBQ1QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNCLENBQUM7SUFDRCxJQUFJLFNBQVMsQ0FBQyxDQUFlO1FBQ3pCLElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBSUQsSUFDSSxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3pCLENBQUM7SUFDRCxJQUFJLE9BQU8sQ0FBQyxDQUFlO1FBQ3ZCLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBR0QsSUFDSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxDQUFlO1FBQ3hCLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBR0QsSUFDSSxLQUFLO1FBQ0wsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFDRCxJQUFJLEtBQUssQ0FBQyxDQUE0QjtRQUNsQyxJQUFJLElBQUksQ0FBQyxLQUFLO1lBQ1YsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUtELElBQ0ksTUFBTTtRQUNOLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBQ0QsSUFBSSxNQUFNLENBQUMsQ0FBYztRQUNyQixJQUFJLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDM0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3RDO2FBQ0k7WUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztTQUN2QjtJQUNMLENBQUM7SUFTRCxJQUNJLFVBQVU7UUFDVixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDNUIsQ0FBQztJQUNELElBQUksVUFBVSxDQUFDLENBQStJO1FBQzFKLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7O3dHQTFGUSxXQUFXOzRGQUFYLFdBQVcsa0xDcEJ4Qiw0aEJBWU07MkZEUU8sV0FBVztrQkFMdkIsU0FBUzsrQkFDSSxjQUFjOzhCQU9YLEdBQUc7c0JBQWYsS0FBSztnQkFnQ0YsT0FBTztzQkFEVixLQUFLO2dCQVVGLFFBQVE7c0JBRFgsS0FBSztnQkFVRixLQUFLO3NCQURSLEtBQUs7Z0JBYUYsTUFBTTtzQkFEVCxLQUFLO2dCQXFCRixVQUFVO3NCQURiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgTnVtYmVySW5wdXQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzJztcclxuaW1wb3J0IHsgQ29udmVydCwgTWF0aEhlbHBlciwgT2JqZWN0SGVscGVyIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xyXG5cclxuZnVuY3Rpb24gdG9QZXJjZW50KHY6IE51bWJlcklucHV0KSB7XHJcbiAgICBsZXQgbiA9IE1hdGhIZWxwZXIucm91bmQoQ29udmVydC50b051bWJlcih2KSk7XHJcbiAgICBpZiAobiA+IDEwMCkge1xyXG4gICAgICAgIHJldHVybiAxMDA7XHJcbiAgICB9IGVsc2UgaWYgKG4gPCAwKSB7XHJcbiAgICAgICAgcmV0dXJuIDA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gblxyXG59XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3play1wcm9ncmVzcycsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vcHJvZ3Jlc3MuaHRtbCcsXHJcbiAgICBzdHlsZXM6IFsnOmhvc3QgeyBkaXNwbGF5OiBibG9jazsgfSddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBaZWtQcm9ncmVzcyB7XHJcblxyXG4gICAgcHJpdmF0ZSBfbWF4OiBudW1iZXIgPSAxMDA7XHJcbiAgICBASW5wdXQoKSBnZXQgbWF4KCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX21heDtcclxuICAgIH1cclxuICAgIHNldCBtYXgodjogTnVtYmVySW5wdXQpIHtcclxuICAgICAgICB0aGlzLl9tYXggPSB0b1BlcmNlbnQodik7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHByaXZhdGUgX3ZhbHVlOiBudW1iZXIgPSAwO1xyXG4gICAgZ2V0IHZhbHVlKCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xyXG4gICAgfVxyXG4gICAgc2V0IHZhbHVlKHY6IE51bWJlcklucHV0KSB7XHJcbiAgICAgICAgdGhpcy5fdmFsdWUgPSBDb252ZXJ0LnRvTnVtYmVyKHYpO1xyXG4gICAgICAgIHRoaXMuX25vcm1hbGl6ZWRWYWx1ZSA9IHRvUGVyY2VudCh0aGlzLl92YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgX25vcm1hbGl6ZWRWYWx1ZTogbnVtYmVyID0gMDtcclxuXHJcblxyXG5cclxuICAgIHByaXZhdGUgX3Nob3dWYWx1ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgZ2V0IHNob3dWYWx1ZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fc2hvd1ZhbHVlO1xyXG4gICAgfVxyXG4gICAgc2V0IHNob3dWYWx1ZSh2OiBCb29sZWFuSW5wdXQpIHtcclxuICAgICAgICB0aGlzLl9zaG93VmFsdWUgPSBDb252ZXJ0LnRvQm9vbGVhbih2KTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgcHJpdmF0ZSBfc3RyaXBlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgQElucHV0KClcclxuICAgIGdldCBzdHJpcGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9zdHJpcGVkO1xyXG4gICAgfVxyXG4gICAgc2V0IHN0cmlwZWQodjogQm9vbGVhbklucHV0KSB7XHJcbiAgICAgICAgdGhpcy5fc3RyaXBlZCA9IENvbnZlcnQudG9Cb29sZWFuKHYpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2FuaW1hdGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IGFuaW1hdGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9hbmltYXRlZDtcclxuICAgIH1cclxuICAgIHNldCBhbmltYXRlZCh2OiBCb29sZWFuSW5wdXQpIHtcclxuICAgICAgICB0aGlzLl9hbmltYXRlZCA9IENvbnZlcnQudG9Cb29sZWFuKHYpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2xhYmVsOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkID0gbnVsbDtcclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgbGFiZWwoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xhYmVsO1xyXG4gICAgfVxyXG4gICAgc2V0IGxhYmVsKHY6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpIHtcclxuICAgICAgICBpZiAodGhpcy5sYWJlbClcclxuICAgICAgICAgICAgdGhpcy5fbGFiZWwgPSB2O1xyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgcHJpdmF0ZSBfaGVpZ2h0OiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgaGVpZ2h0KCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9oZWlnaHQ7XHJcbiAgICB9XHJcbiAgICBzZXQgaGVpZ2h0KHY6IE51bWJlcklucHV0KSB7XHJcbiAgICAgICAgaWYgKE9iamVjdEhlbHBlci5pc0RlZmluZWQodikpIHtcclxuICAgICAgICAgICAgdGhpcy5faGVpZ2h0ID0gQ29udmVydC50b051bWJlcih2KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2hlaWdodCA9IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcblxyXG5cclxuICAgIHR5cGU6ICdwcmltYXJ5JyB8ICdzZWNvbmRhcnknIHwgJ3N1Y2Nlc3MnIHwgJ2RhbmdlcicgfCAnd2FybmluZycgfCAnaW5mbycgfCAnbGlnaHQnIHwgJ2RhcmsnIHwgJ2JvZHknIHwgJ3doaXRlJyB8ICd0cmFuc3BhcmVudCcgfCBudWxsIHwgdW5kZWZpbmVkO1xyXG5cclxuXHJcbiAgICBwcml2YXRlIF9iYWNrZ3JvdW5kOiAncHJpbWFyeScgfCAnc2Vjb25kYXJ5JyB8ICdzdWNjZXNzJyB8ICdkYW5nZXInIHwgJ3dhcm5pbmcnIHwgJ2luZm8nIHwgJ2xpZ2h0JyB8ICdkYXJrJyB8ICdib2R5JyB8ICd3aGl0ZScgfCAndHJhbnNwYXJlbnQnIHwgbnVsbCB8IHVuZGVmaW5lZDtcclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgYmFja2dyb3VuZCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fYmFja2dyb3VuZDtcclxuICAgIH1cclxuICAgIHNldCBiYWNrZ3JvdW5kKHY6ICdwcmltYXJ5JyB8ICdzZWNvbmRhcnknIHwgJ3N1Y2Nlc3MnIHwgJ2RhbmdlcicgfCAnd2FybmluZycgfCAnaW5mbycgfCAnbGlnaHQnIHwgJ2RhcmsnIHwgJ2JvZHknIHwgJ3doaXRlJyB8ICd0cmFuc3BhcmVudCcgfCBudWxsIHwgdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgdGhpcy5fYmFja2dyb3VuZCA9IHY7XHJcbiAgICB9XHJcbn0iLCI8ZGl2IGNsYXNzPVwicHJvZ3Jlc3NcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJwcm9ncmVzcy1iYXJcIiByb2xlPVwicHJvZ3Jlc3NiYXJcIlxyXG4gICAgICAgIFtjbGFzcy5wcm9ncmVzcy1iYXItc3RyaXBlZF09XCJzdHJpcGVkIHx8IGFuaW1hdGVkXCJcclxuICAgICAgICBbY2xhc3MucHJvZ3Jlc3MtYmFyLWFuaW1hdGVkXT1cImFuaW1hdGVkXCJcclxuICAgICAgICBbc3R5bGUuaGVpZ2h0LnB4XT1cImhlaWdodFwiXHJcbiAgICAgICAgW3N0eWxlLndpZHRoLiVdPVwiX25vcm1hbGl6ZWRWYWx1ZVwiXHJcbiAgICAgICAgW2F0dHIuYXJpYS12YWx1ZW5vd109XCJfbm9ybWFsaXplZFZhbHVlXCJcclxuICAgICAgICBhcmlhLXZhbHVlbWluPVwiMFwiXHJcbiAgICAgICAgW2F0dHIuYXJpYS12YWx1ZW1heF09XCJtYXhcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd1ZhbHVlXCI+e3tfbm9ybWFsaXplZFZhbHVlfX0lPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAge3tsYWJlbH19XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96ZWsvc3JjL2xpYi9tb2R1bGVzL3Byb2dyZXNzL3Byb2dyZXNzLnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvemVrL3NyYy9saWIvbW9kdWxlcy9wcm9ncmVzcy9wcm9ncmVzcy5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpELE9BQU8sRUFBRSxPQUFPLEVBQThCLE1BQU0sYUFBYSxDQUFDOzs7QUFFbEUsU0FBUyxLQUFLLENBQUMsQ0FBUyxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLEdBQUc7SUFDeEMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzNDLENBQUM7QUFTRCxNQUFNLE9BQU8sV0FBVztJQUx4QjtRQWNZLFdBQU0sR0FBVyxDQUFDLENBQUM7UUFVbkIsZUFBVSxHQUFZLEtBQUssQ0FBQztRQVU1QixhQUFRLEdBQVksS0FBSyxDQUFDO1FBVTFCLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFTM0IsV0FBTSxHQUFrQixJQUFJLENBQUM7UUFZN0IsWUFBTyxHQUFrQixJQUFJLENBQUM7UUFVOUIsZ0JBQVcsR0FBZSxTQUFTLENBQUM7S0FDL0M7SUFyRUcsSUFDSSxLQUFLO1FBQ0wsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFDRCxJQUFJLEtBQUssQ0FBQyxDQUFjO1FBQ3BCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUlELElBQ0ksU0FBUztRQUNULE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUMzQixDQUFDO0lBQ0QsSUFBSSxTQUFTLENBQUMsQ0FBZTtRQUN6QixJQUFJLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUlELElBQ0ksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBQ0QsSUFBSSxPQUFPLENBQUMsQ0FBZTtRQUN2QixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUlELElBQ0ksUUFBUTtRQUNSLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBQ0QsSUFBSSxRQUFRLENBQUMsQ0FBZTtRQUN4QixJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUdELElBQ0ksS0FBSztRQUNMLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsQ0FBNEI7UUFDbEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQy9CLENBQUM7SUFLRCxJQUNJLE1BQU07UUFDTixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQztJQUNELElBQUksTUFBTSxDQUFDLENBQWM7UUFDckIsSUFBSSxHQUFHLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUN4QyxDQUFDO0lBSUQsSUFDSSxVQUFVO1FBQ1YsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzVCLENBQUM7SUFDRCxJQUFJLFVBQVUsQ0FBQyxDQUFhO1FBQ3hCLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7O3dHQXJFUSxXQUFXOzRGQUFYLFdBQVcsOE1DZnhCLHNnQkFZTTsyRkRHTyxXQUFXO2tCQUx2QixTQUFTOytCQUNJLGNBQWM7OEJBT3BCLEtBQUs7c0JBRFIsS0FBSztnQkFXRixTQUFTO3NCQURaLEtBQUs7Z0JBV0YsT0FBTztzQkFEVixLQUFLO2dCQVdGLFFBQVE7c0JBRFgsS0FBSztnQkFVRixLQUFLO3NCQURSLEtBQUs7Z0JBWUYsTUFBTTtzQkFEVCxLQUFLO2dCQVlGLFVBQVU7c0JBRGIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBOdW1iZXJJbnB1dCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMnO1xyXG5pbXBvcnQgeyBDb252ZXJ0LCBPYmplY3RIZWxwZXIsIFN0cmluZ0hlbHBlciB9IGZyb20gJy4uLy4uL3V0aWxzJztcclxuXHJcbmZ1bmN0aW9uIGNsYW1wKHY6IG51bWJlciwgbWluID0gMCwgbWF4ID0gMTAwKSB7XHJcbiAgICByZXR1cm4gTWF0aC5tYXgobWluLCBNYXRoLm1pbihtYXgsIHYpKTtcclxufVxyXG5cclxudHlwZSBCYWNrZ3JvdW5kID0gJ3ByaW1hcnknIHwgJ3NlY29uZGFyeScgfCAnc3VjY2VzcycgfCAnZGFuZ2VyJyB8ICd3YXJuaW5nJyB8ICdpbmZvJyB8ICdsaWdodCcgfCAnZGFyaycgfCAnYm9keScgfCAnd2hpdGUnIHwgJ3RyYW5zcGFyZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICd6ZWstcHJvZ3Jlc3MnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Byb2dyZXNzLmh0bWwnLFxyXG4gICAgc3R5bGVzOiBbJzpob3N0IHsgZGlzcGxheTogYmxvY2s7IH0nXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgWmVrUHJvZ3Jlc3Mge1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgdmFsdWUoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWU7XHJcbiAgICB9XHJcbiAgICBzZXQgdmFsdWUodjogTnVtYmVySW5wdXQpIHtcclxuICAgICAgICB0aGlzLl92YWx1ZSA9IGNsYW1wKENvbnZlcnQudG9OdW1iZXIodikgfHwgMCk7XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIF92YWx1ZTogbnVtYmVyID0gMDtcclxuXHJcblxyXG4gICAgQElucHV0KClcclxuICAgIGdldCBzaG93VmFsdWUoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Nob3dWYWx1ZTtcclxuICAgIH1cclxuICAgIHNldCBzaG93VmFsdWUodjogQm9vbGVhbklucHV0KSB7XHJcbiAgICAgICAgdGhpcy5fc2hvd1ZhbHVlID0gQ29udmVydC50b0Jvb2xlYW4odik7XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIF9zaG93VmFsdWU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcblxyXG4gICAgQElucHV0KClcclxuICAgIGdldCBzdHJpcGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9zdHJpcGVkO1xyXG4gICAgfVxyXG4gICAgc2V0IHN0cmlwZWQodjogQm9vbGVhbklucHV0KSB7XHJcbiAgICAgICAgdGhpcy5fc3RyaXBlZCA9IENvbnZlcnQudG9Cb29sZWFuKHYpO1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBfc3RyaXBlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IGFuaW1hdGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9hbmltYXRlZDtcclxuICAgIH1cclxuICAgIHNldCBhbmltYXRlZCh2OiBCb29sZWFuSW5wdXQpIHtcclxuICAgICAgICB0aGlzLl9hbmltYXRlZCA9IENvbnZlcnQudG9Cb29sZWFuKHYpO1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBfYW5pbWF0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IGxhYmVsKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9sYWJlbDtcclxuICAgIH1cclxuICAgIHNldCBsYWJlbCh2OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgdGhpcy5fbGFiZWwgPSB2ID8gdiA6IG51bGw7XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIF9sYWJlbDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcblxyXG5cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IGhlaWdodCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5faGVpZ2h0O1xyXG4gICAgfVxyXG4gICAgc2V0IGhlaWdodCh2OiBOdW1iZXJJbnB1dCkge1xyXG4gICAgICAgIGxldCB0bXAgPSBDb252ZXJ0LnRvTnVtYmVyKHYpIHx8IDA7XHJcbiAgICAgICAgdGhpcy5faGVpZ2h0ID0gdG1wID4gMCA/IHRtcCA6IG51bGw7XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIF9oZWlnaHQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG5cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IGJhY2tncm91bmQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2JhY2tncm91bmQ7XHJcbiAgICB9XHJcbiAgICBzZXQgYmFja2dyb3VuZCh2OiBCYWNrZ3JvdW5kKSB7XHJcbiAgICAgICAgdGhpcy5fYmFja2dyb3VuZCA9IHY7XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIF9iYWNrZ3JvdW5kOiBCYWNrZ3JvdW5kID0gJ3ByaW1hcnknO1xyXG59IiwiPGRpdiBjbGFzcz1cInByb2dyZXNzXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3MtYmFyIGJnLXt7YmFja2dyb3VuZH19XCIgcm9sZT1cInByb2dyZXNzYmFyXCJcclxuICAgICAgICBbY2xhc3MucHJvZ3Jlc3MtYmFyLXN0cmlwZWRdPVwic3RyaXBlZCB8fCBhbmltYXRlZFwiXHJcbiAgICAgICAgW2NsYXNzLnByb2dyZXNzLWJhci1hbmltYXRlZF09XCJhbmltYXRlZFwiXHJcbiAgICAgICAgW3N0eWxlLmhlaWdodC5weF09XCJoZWlnaHRcIlxyXG4gICAgICAgIFtzdHlsZS53aWR0aC4lXT1cInZhbHVlXCJcclxuICAgICAgICBbYXR0ci5hcmlhLXZhbHVlbm93XT1cInZhbHVlXCJcclxuICAgICAgICBhcmlhLXZhbHVlbWluPVwiMFwiXHJcbiAgICAgICAgYXJpYS12YWx1ZW1heD1cIjEwMFwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93VmFsdWVcIj57e3ZhbHVlfX0lPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAge3tsYWJlbH19XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
@@ -13,11 +13,14 @@ export class Convert {
13
13
  }
14
14
  return false;
15
15
  }
16
- static toNumber(value) {
17
- if (typeof value !== 'undefined' && value !== null && value !== '') {
18
- return +value;
19
- }
20
- return 0;
16
+ static toNumber(value, defaultValue = 0) {
17
+ return this.isNumber(value) ? Number(value) : defaultValue;
18
+ }
19
+ static isNumber(value) {
20
+ // parseFloat(value) handles most of the cases we're interested in (it treats null, empty string,
21
+ // and other non-number values as NaN, where Number just uses 0) but it considers the string
22
+ // '123hello' to be a valid number. Therefore we also check if Number(value) is NaN.
23
+ return !isNaN(parseFloat(value)) && !isNaN(Number(value));
21
24
  }
22
25
  }
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3play9zcmMvbGliL3V0aWxzL2NvbnZlcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLE9BQU87SUFDaEIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFVO1FBQ3ZCLElBQUksT0FBTyxLQUFLLEtBQUssV0FBVyxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLEVBQUUsRUFBRTtZQUNoRSxRQUFRLEdBQUcsS0FBSyxFQUFFLENBQUMsV0FBVyxFQUFFLEVBQUU7Z0JBQzlCLEtBQUssTUFBTSxDQUFDO2dCQUNaLEtBQUssS0FBSyxDQUFDO2dCQUNYLEtBQUssR0FBRyxDQUFDO2dCQUNULEtBQUssSUFBSTtvQkFDTCxPQUFPLElBQUksQ0FBQztnQkFFaEI7b0JBQ0ksT0FBTyxLQUFLLENBQUM7YUFDcEI7U0FDSjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQVU7UUFDdEIsSUFBSSxPQUFPLEtBQUssS0FBSyxXQUFXLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssRUFBRSxFQUFFO1lBQ2hFLE9BQU8sQ0FBQyxLQUFLLENBQUM7U0FDakI7UUFFRCxPQUFPLENBQUMsQ0FBQztJQUNiLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBDb252ZXJ0IHtcclxuICAgIHN0YXRpYyB0b0Jvb2xlYW4odmFsdWU6IGFueSkge1xyXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICd1bmRlZmluZWQnICYmIHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSAnJykge1xyXG4gICAgICAgICAgICBzd2l0Y2ggKGAke3ZhbHVlfWAudG9VcHBlckNhc2UoKSkge1xyXG4gICAgICAgICAgICAgICAgY2FzZSBcIlRSVUVcIjpcclxuICAgICAgICAgICAgICAgIGNhc2UgXCJZRVNcIjpcclxuICAgICAgICAgICAgICAgIGNhc2UgXCIxXCI6XHJcbiAgICAgICAgICAgICAgICBjYXNlIFwiT05cIjpcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyB0b051bWJlcih2YWx1ZTogYW55KXtcclxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAndW5kZWZpbmVkJyAmJiB2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gJycpIHtcclxuICAgICAgICAgICAgcmV0dXJuICt2YWx1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiAwO1xyXG4gICAgfVxyXG59Il19
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3play9zcmMvbGliL3V0aWxzL2NvbnZlcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLE9BQU87SUFDaEIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFVO1FBQ3ZCLElBQUksT0FBTyxLQUFLLEtBQUssV0FBVyxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLEVBQUUsRUFBRTtZQUNoRSxRQUFRLEdBQUcsS0FBSyxFQUFFLENBQUMsV0FBVyxFQUFFLEVBQUU7Z0JBQzlCLEtBQUssTUFBTSxDQUFDO2dCQUNaLEtBQUssS0FBSyxDQUFDO2dCQUNYLEtBQUssR0FBRyxDQUFDO2dCQUNULEtBQUssSUFBSTtvQkFDTCxPQUFPLElBQUksQ0FBQztnQkFFaEI7b0JBQ0ksT0FBTyxLQUFLLENBQUM7YUFDcEI7U0FDSjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQVUsRUFBRSxZQUFZLEdBQUcsQ0FBQztRQUN4QyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO0lBQy9ELENBQUM7SUFFRCxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQVU7UUFDdEIsaUdBQWlHO1FBQ2pHLDRGQUE0RjtRQUM1RixvRkFBb0Y7UUFDcEYsT0FBTyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsS0FBWSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNyRSxDQUFDO0NBU0oiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgQ29udmVydCB7XHJcbiAgICBzdGF0aWMgdG9Cb29sZWFuKHZhbHVlOiBhbnkpIHtcclxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAndW5kZWZpbmVkJyAmJiB2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gJycpIHtcclxuICAgICAgICAgICAgc3dpdGNoIChgJHt2YWx1ZX1gLnRvVXBwZXJDYXNlKCkpIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgXCJUUlVFXCI6XHJcbiAgICAgICAgICAgICAgICBjYXNlIFwiWUVTXCI6XHJcbiAgICAgICAgICAgICAgICBjYXNlIFwiMVwiOlxyXG4gICAgICAgICAgICAgICAgY2FzZSBcIk9OXCI6XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcblxyXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgdG9OdW1iZXIodmFsdWU6IGFueSwgZGVmYXVsdFZhbHVlID0gMCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmlzTnVtYmVyKHZhbHVlKSA/IE51bWJlcih2YWx1ZSkgOiBkZWZhdWx0VmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGlzTnVtYmVyKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICAvLyBwYXJzZUZsb2F0KHZhbHVlKSBoYW5kbGVzIG1vc3Qgb2YgdGhlIGNhc2VzIHdlJ3JlIGludGVyZXN0ZWQgaW4gKGl0IHRyZWF0cyBudWxsLCBlbXB0eSBzdHJpbmcsXHJcbiAgICAgICAgLy8gYW5kIG90aGVyIG5vbi1udW1iZXIgdmFsdWVzIGFzIE5hTiwgd2hlcmUgTnVtYmVyIGp1c3QgdXNlcyAwKSBidXQgaXQgY29uc2lkZXJzIHRoZSBzdHJpbmdcclxuICAgICAgICAvLyAnMTIzaGVsbG8nIHRvIGJlIGEgdmFsaWQgbnVtYmVyLiBUaGVyZWZvcmUgd2UgYWxzbyBjaGVjayBpZiBOdW1iZXIodmFsdWUpIGlzIE5hTi5cclxuICAgICAgICByZXR1cm4gIWlzTmFOKHBhcnNlRmxvYXQodmFsdWUgYXMgYW55KSkgJiYgIWlzTmFOKE51bWJlcih2YWx1ZSkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIHN0YXRpYyB0b051bWJlcih2YWx1ZTogYW55KXtcclxuICAgIC8vICAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAndW5kZWZpbmVkJyAmJiB2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gJycpIHtcclxuICAgIC8vICAgICAgICAgcmV0dXJuICt2YWx1ZTtcclxuICAgIC8vICAgICB9XHJcblxyXG4gICAgLy8gICAgIHJldHVybiAwO1xyXG4gICAgLy8gfVxyXG59Il19
@@ -4,4 +4,4 @@ export class MathHelper {
4
4
  }
5
5
  ;
6
6
  }
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0aC1oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96ZWsvc3JjL2xpYi91dGlscy9tYXRoLWhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sVUFBVTtJQUNwQixNQUFNLENBQUMsS0FBSyxDQUFDLEtBQWEsRUFBRSxXQUFtQixDQUFDO1FBQzNDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDekYsQ0FBQztJQUFBLENBQUM7Q0FFTCIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBNYXRoSGVscGVyIHtcclxuICAgc3RhdGljIHJvdW5kKHZhbHVlOiBudW1iZXIsIGRlY2ltYWxzOiBudW1iZXIgPSAwKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gTWF0aC5yb3VuZChOdW1iZXIodmFsdWUpICogTWF0aC5wb3coMTAsIGRlY2ltYWxzKSkgLyAoTWF0aC5wb3coMTAsIGRlY2ltYWxzKSk7XHJcbiAgICB9O1xyXG5cclxufSJdfQ==
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0aC1oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96ZWsvc3JjL2xpYi91dGlscy9tYXRoLWhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sVUFBVTtJQUNuQixNQUFNLENBQUMsS0FBSyxDQUFDLEtBQWEsRUFBRSxXQUFtQixDQUFDO1FBQzVDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDekYsQ0FBQztJQUFBLENBQUM7Q0FDTCIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBNYXRoSGVscGVyIHtcclxuICAgIHN0YXRpYyByb3VuZCh2YWx1ZTogbnVtYmVyLCBkZWNpbWFsczogbnVtYmVyID0gMCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIE1hdGgucm91bmQoTnVtYmVyKHZhbHVlKSAqIE1hdGgucG93KDEwLCBkZWNpbWFscykpIC8gKE1hdGgucG93KDEwLCBkZWNpbWFscykpO1xyXG4gICAgfTtcclxufSJdfQ==
@@ -40,9 +40,6 @@ export class ObjectHelper {
40
40
  }
41
41
  }
42
42
  ;
43
- static isBoolean(val) {
44
- return val === false || val === true;
45
- }
46
43
  static deepCopy(value) {
47
44
  if (!this.isObject(value))
48
45
  return value;
@@ -64,4 +61,4 @@ export class ObjectHelper {
64
61
  return output;
65
62
  }
66
63
  }
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3play9zcmMvbGliL3V0aWxzL29iamVjdC1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsTUFBTSxPQUFPLFlBQVk7SUFDckIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFVO1FBQ3ZCLE9BQU8sT0FBTyxLQUFLLEtBQUssV0FBVyxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUM7SUFDMUQsQ0FBQztJQUVELE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBVTtRQUN0QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDO0lBQzlELENBQUM7SUFHRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFVO1FBQzFCLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDakgsQ0FBQztJQUdELE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBUTtRQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUM7WUFDcEIsT0FBTyxJQUFJLENBQUM7UUFDaEIsa0RBQWtEO1FBQ2xELG1CQUFtQjtRQUNuQixLQUFLLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRTtZQUNsQixJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO2dCQUNyQixPQUFPLEtBQUssQ0FBQztZQUNqQixvRkFBb0Y7WUFDcEYsb0JBQW9CO1lBQ3BCLElBQUk7U0FDUDtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsY0FBYyxDQUFDLEdBQVE7UUFDMUIsSUFBSSxDQUFDLEdBQUc7WUFBRSxPQUFPO1FBQ2pCLEtBQUssSUFBSSxHQUFHLElBQUksR0FBRyxFQUFFO1lBQ2pCLElBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNuQixJQUFJLEdBQUcsS0FBSyxTQUFTLElBQUksR0FBRyxLQUFLLElBQUksRUFBRTtnQkFDbkMsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2hCLE1BQU0sQ0FBQyxJQUFJLENBQUE7YUFDZDtTQUNKO0lBQ0wsQ0FBQztJQUFBLENBQUM7SUFHRixNQUFNLENBQUMsU0FBUyxDQUFDLEdBQVE7UUFDckIsT0FBTyxHQUFHLEtBQUssS0FBSyxJQUFJLEdBQUcsS0FBSyxJQUFJLENBQUM7SUFDekMsQ0FBQztJQU1ELE1BQU0sQ0FBQyxRQUFRLENBQVUsS0FBVTtRQUMvQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7WUFDckIsT0FBTyxLQUFLLENBQUM7UUFFakIsSUFBSSxNQUFNLEdBQVEsRUFBRSxDQUFDO1FBQ3JCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN0QixNQUFNLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM3QzthQUNJO1lBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtnQkFDcEMsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUVyQixJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQ2xCLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUVsQztxQkFBTTtvQkFDSCxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztpQkFDdkM7WUFDTCxDQUFDLENBQUMsQ0FBQztTQUNOO1FBRUQsT0FBTyxNQUFXLENBQUM7SUFDdkIsQ0FBQztDQUVKIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmV4cG9ydCBjbGFzcyBPYmplY3RIZWxwZXIge1xyXG4gICAgc3RhdGljIGlzRGVmaW5lZCh2YWx1ZTogYW55KSB7XHJcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSAhPT0gJ3VuZGVmaW5lZCcgJiYgdmFsdWUgIT09IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGlzT2JqZWN0KHZhbHVlOiBhbnkpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5pc0RlZmluZWQodmFsdWUpICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCc7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2hlY2sgaWYgdGhlIG9iamVjdCBpcyBhIHN0cmluZyBvciBhcnJheSBiZWZvcmUgZXZhbHVhdGluZyB0aGUgbGVuZ3RoIGF0dHJpYnV0ZS5cclxuICAgICAqIFRoaXMgYXZvaWRzIGZhbHNlbHkgcmVqZWN0aW5nIG9iamVjdHMgdGhhdCBjb250YWluIGEgY3VzdG9tIGxlbmd0aCBhdHRyaWJ1dGUuXHJcbiAgICAgKiBGb3IgZXhhbXBsZSwgdGhlIG9iamVjdCB7aWQ6IDEsIGxlbmd0aDogMCwgd2lkdGg6IDB9IHNob3VsZCBub3QgYmUgcmV0dXJuZWQgYXMgZW1wdHkuXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc0VtcHR5VmFsdWUodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAhdGhpcy5pc0RlZmluZWQodmFsdWUpIHx8ICgodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyB8fCBBcnJheS5pc0FycmF5KHZhbHVlKSkgJiYgdmFsdWUubGVuZ3RoID09PSAwKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgc3RhdGljIGlzRW1wdHkob2JqOiBhbnkpIHtcclxuICAgICAgICBpZiAoIXRoaXMuaXNEZWZpbmVkKG9iaikpXHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIC8vIGlmICh0eXBlb2Ygb2JqID09PSAndW5kZWZpbmVkJyB8fCBvYmogPT09IG51bGwpXHJcbiAgICAgICAgLy8gICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIGZvciAobGV0IHByb3AgaW4gb2JqKSB7XHJcbiAgICAgICAgICAgIGxldCB2ID0gb2JqW3Byb3BdO1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuaXNFbXB0eVZhbHVlKHYpKVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICAvLyBpZiAodHlwZW9mIChvYmpbcHJvcF0pICE9PSB1bmRlZmluZWQgJiYgb2JqW3Byb3BdICE9PSBudWxsICYmIG9ialtwcm9wXSAhPT0gJycpIHtcclxuICAgICAgICAgICAgLy8gICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgLy8gfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGRlbGV0ZU51bGxLZXlzKHZhbDogYW55KSB7XHJcbiAgICAgICAgaWYgKCF2YWwpIHJldHVybjtcclxuICAgICAgICBmb3IgKGxldCBrZXkgaW4gdmFsKSB7XHJcbiAgICAgICAgICAgIGxldCB0bXAgPSB2YWxba2V5XTtcclxuICAgICAgICAgICAgaWYgKHRtcCA9PT0gdW5kZWZpbmVkIHx8IHRtcCA9PT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgZGVsZXRlIHZhbFtrZXldO1xyXG4gICAgICAgICAgICAgICAgT2JqZWN0LmtleXNcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH07XHJcblxyXG5cclxuICAgIHN0YXRpYyBpc0Jvb2xlYW4odmFsOiBhbnkpIHtcclxuICAgICAgICByZXR1cm4gdmFsID09PSBmYWxzZSB8fCB2YWwgPT09IHRydWU7XHJcbiAgICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuICAgIHN0YXRpYyBkZWVwQ29weTxUID0gYW55Pih2YWx1ZTogYW55KTogVCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmlzT2JqZWN0KHZhbHVlKSlcclxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xyXG5cclxuICAgICAgICBsZXQgb3V0cHV0OiBhbnkgPSB7fTtcclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcclxuICAgICAgICAgICAgb3V0cHV0ID0gdmFsdWUubWFwKHggPT4gdGhpcy5kZWVwQ29weSh4KSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBPYmplY3Qua2V5cyh2YWx1ZSkuZm9yRWFjaCgoa2V5OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHYgPSB2YWx1ZVtrZXldO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzT2JqZWN0KHYpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgb3V0cHV0W2tleV0gPSB0aGlzLmRlZXBDb3B5KHYpO1xyXG5cclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihvdXRwdXQsIHsgW2tleV06IHYgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG91dHB1dCBhcyBUO1xyXG4gICAgfVxyXG5cclxufSJdfQ==
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3play9zcmMvbGliL3V0aWxzL29iamVjdC1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsTUFBTSxPQUFPLFlBQVk7SUFDckIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFVO1FBQ3ZCLE9BQU8sT0FBTyxLQUFLLEtBQUssV0FBVyxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUM7SUFDMUQsQ0FBQztJQUVELE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBVTtRQUN0QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDO0lBQzlELENBQUM7SUFHRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFVO1FBQzFCLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDakgsQ0FBQztJQUdELE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBUTtRQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUM7WUFDcEIsT0FBTyxJQUFJLENBQUM7UUFDaEIsa0RBQWtEO1FBQ2xELG1CQUFtQjtRQUNuQixLQUFLLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRTtZQUNsQixJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO2dCQUNyQixPQUFPLEtBQUssQ0FBQztZQUNqQixvRkFBb0Y7WUFDcEYsb0JBQW9CO1lBQ3BCLElBQUk7U0FDUDtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsY0FBYyxDQUFDLEdBQVE7UUFDMUIsSUFBSSxDQUFDLEdBQUc7WUFBRSxPQUFPO1FBQ2pCLEtBQUssSUFBSSxHQUFHLElBQUksR0FBRyxFQUFFO1lBQ2pCLElBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNuQixJQUFJLEdBQUcsS0FBSyxTQUFTLElBQUksR0FBRyxLQUFLLElBQUksRUFBRTtnQkFDbkMsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2hCLE1BQU0sQ0FBQyxJQUFJLENBQUE7YUFDZDtTQUNKO0lBQ0wsQ0FBQztJQUFBLENBQUM7SUFJRixNQUFNLENBQUMsUUFBUSxDQUFVLEtBQVU7UUFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO1lBQ3JCLE9BQU8sS0FBSyxDQUFDO1FBRWpCLElBQUksTUFBTSxHQUFRLEVBQUUsQ0FBQztRQUNyQixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDdEIsTUFBTSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDN0M7YUFDSTtZQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7Z0JBQ3BDLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFFckIsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFO29CQUNsQixNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFFbEM7cUJBQU07b0JBQ0gsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7aUJBQ3ZDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7U0FDTjtRQUVELE9BQU8sTUFBVyxDQUFDO0lBQ3ZCLENBQUM7Q0FFSiIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5leHBvcnQgY2xhc3MgT2JqZWN0SGVscGVyIHtcclxuICAgIHN0YXRpYyBpc0RlZmluZWQodmFsdWU6IGFueSkge1xyXG4gICAgICAgIHJldHVybiB0eXBlb2YgdmFsdWUgIT09ICd1bmRlZmluZWQnICYmIHZhbHVlICE9PSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBpc09iamVjdCh2YWx1ZTogYW55KSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNEZWZpbmVkKHZhbHVlKSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIENoZWNrIGlmIHRoZSBvYmplY3QgaXMgYSBzdHJpbmcgb3IgYXJyYXkgYmVmb3JlIGV2YWx1YXRpbmcgdGhlIGxlbmd0aCBhdHRyaWJ1dGUuXHJcbiAgICAgKiBUaGlzIGF2b2lkcyBmYWxzZWx5IHJlamVjdGluZyBvYmplY3RzIHRoYXQgY29udGFpbiBhIGN1c3RvbSBsZW5ndGggYXR0cmlidXRlLlxyXG4gICAgICogRm9yIGV4YW1wbGUsIHRoZSBvYmplY3Qge2lkOiAxLCBsZW5ndGg6IDAsIHdpZHRoOiAwfSBzaG91bGQgbm90IGJlIHJldHVybmVkIGFzIGVtcHR5LlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNFbXB0eVZhbHVlKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gIXRoaXMuaXNEZWZpbmVkKHZhbHVlKSB8fCAoKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgfHwgQXJyYXkuaXNBcnJheSh2YWx1ZSkpICYmIHZhbHVlLmxlbmd0aCA9PT0gMCk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHN0YXRpYyBpc0VtcHR5KG9iajogYW55KSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmlzRGVmaW5lZChvYmopKVxyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAvLyBpZiAodHlwZW9mIG9iaiA9PT0gJ3VuZGVmaW5lZCcgfHwgb2JqID09PSBudWxsKVxyXG4gICAgICAgIC8vICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICBmb3IgKGxldCBwcm9wIGluIG9iaikge1xyXG4gICAgICAgICAgICBsZXQgdiA9IG9ialtwcm9wXTtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLmlzRW1wdHlWYWx1ZSh2KSlcclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgLy8gaWYgKHR5cGVvZiAob2JqW3Byb3BdKSAhPT0gdW5kZWZpbmVkICYmIG9ialtwcm9wXSAhPT0gbnVsbCAmJiBvYmpbcHJvcF0gIT09ICcnKSB7XHJcbiAgICAgICAgICAgIC8vICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgIC8vIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBkZWxldGVOdWxsS2V5cyh2YWw6IGFueSkge1xyXG4gICAgICAgIGlmICghdmFsKSByZXR1cm47XHJcbiAgICAgICAgZm9yIChsZXQga2V5IGluIHZhbCkge1xyXG4gICAgICAgICAgICBsZXQgdG1wID0gdmFsW2tleV07XHJcbiAgICAgICAgICAgIGlmICh0bXAgPT09IHVuZGVmaW5lZCB8fCB0bXAgPT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIGRlbGV0ZSB2YWxba2V5XTtcclxuICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9O1xyXG5cclxuXHJcblxyXG4gICAgc3RhdGljIGRlZXBDb3B5PFQgPSBhbnk+KHZhbHVlOiBhbnkpOiBUIHtcclxuICAgICAgICBpZiAoIXRoaXMuaXNPYmplY3QodmFsdWUpKVxyXG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XHJcblxyXG4gICAgICAgIGxldCBvdXRwdXQ6IGFueSA9IHt9O1xyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xyXG4gICAgICAgICAgICBvdXRwdXQgPSB2YWx1ZS5tYXAoeCA9PiB0aGlzLmRlZXBDb3B5KHgpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKHZhbHVlKS5mb3JFYWNoKChrZXk6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdiA9IHZhbHVlW2tleV07XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNPYmplY3QodikpIHtcclxuICAgICAgICAgICAgICAgICAgICBvdXRwdXRba2V5XSA9IHRoaXMuZGVlcENvcHkodik7XHJcblxyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKG91dHB1dCwgeyBba2V5XTogdiB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gb3V0cHV0IGFzIFQ7XHJcbiAgICB9XHJcblxyXG59Il19
package/fesm2015/zek.mjs CHANGED
@@ -336,11 +336,14 @@ class Convert {
336
336
  }
337
337
  return false;
338
338
  }
339
- static toNumber(value) {
340
- if (typeof value !== 'undefined' && value !== null && value !== '') {
341
- return +value;
342
- }
343
- return 0;
339
+ static toNumber(value, defaultValue = 0) {
340
+ return this.isNumber(value) ? Number(value) : defaultValue;
341
+ }
342
+ static isNumber(value) {
343
+ // parseFloat(value) handles most of the cases we're interested in (it treats null, empty string,
344
+ // and other non-number values as NaN, where Number just uses 0) but it considers the string
345
+ // '123hello' to be a valid number. Therefore we also check if Number(value) is NaN.
346
+ return !isNaN(parseFloat(value)) && !isNaN(Number(value));
344
347
  }
345
348
  }
346
349
 
@@ -789,9 +792,6 @@ class ObjectHelper {
789
792
  }
790
793
  }
791
794
  ;
792
- static isBoolean(val) {
793
- return val === false || val === true;
794
- }
795
795
  static deepCopy(value) {
796
796
  if (!this.isObject(value))
797
797
  return value;
@@ -4907,39 +4907,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
4907
4907
  }]
4908
4908
  }] });
4909
4909
 
4910
- function toPercent(v) {
4911
- let n = MathHelper.round(Convert.toNumber(v));
4912
- if (n > 100) {
4913
- return 100;
4914
- }
4915
- else if (n < 0) {
4916
- return 0;
4917
- }
4918
- return n;
4910
+ function clamp(v, min = 0, max = 100) {
4911
+ return Math.max(min, Math.min(max, v));
4919
4912
  }
4920
4913
  class ZekProgress {
4921
4914
  constructor() {
4922
- this._max = 100;
4923
4915
  this._value = 0;
4924
- this._normalizedValue = 0;
4925
4916
  this._showValue = false;
4926
4917
  this._striped = false;
4927
4918
  this._animated = false;
4928
4919
  this._label = null;
4929
4920
  this._height = null;
4930
- }
4931
- get max() {
4932
- return this._max;
4933
- }
4934
- set max(v) {
4935
- this._max = toPercent(v);
4921
+ this._background = 'primary';
4936
4922
  }
4937
4923
  get value() {
4938
4924
  return this._value;
4939
4925
  }
4940
4926
  set value(v) {
4941
- this._value = Convert.toNumber(v);
4942
- this._normalizedValue = toPercent(this._value);
4927
+ this._value = clamp(Convert.toNumber(v) || 0);
4943
4928
  }
4944
4929
  get showValue() {
4945
4930
  return this._showValue;
@@ -4963,19 +4948,14 @@ class ZekProgress {
4963
4948
  return this._label;
4964
4949
  }
4965
4950
  set label(v) {
4966
- if (this.label)
4967
- this._label = v;
4951
+ this._label = v ? v : null;
4968
4952
  }
4969
4953
  get height() {
4970
4954
  return this._height;
4971
4955
  }
4972
4956
  set height(v) {
4973
- if (ObjectHelper.isDefined(v)) {
4974
- this._height = Convert.toNumber(v);
4975
- }
4976
- else {
4977
- this._height = null;
4978
- }
4957
+ let tmp = Convert.toNumber(v) || 0;
4958
+ this._height = tmp > 0 ? tmp : null;
4979
4959
  }
4980
4960
  get background() {
4981
4961
  return this._background;
@@ -4985,11 +4965,13 @@ class ZekProgress {
4985
4965
  }
4986
4966
  }
4987
4967
  ZekProgress.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: ZekProgress, deps: [], target: i0.ɵɵFactoryTarget.Component });
4988
- ZekProgress.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: ZekProgress, selector: "zek-progress", inputs: { max: "max", striped: "striped", animated: "animated", label: "label", height: "height", background: "background" }, ngImport: i0, template: "<div class=\"progress\">\r\n <div class=\"progress-bar\" role=\"progressbar\"\r\n [class.progress-bar-striped]=\"striped || animated\"\r\n [class.progress-bar-animated]=\"animated\"\r\n [style.height.px]=\"height\"\r\n [style.width.%]=\"_normalizedValue\"\r\n [attr.aria-valuenow]=\"_normalizedValue\"\r\n aria-valuemin=\"0\"\r\n [attr.aria-valuemax]=\"max\">\r\n <ng-container *ngIf=\"showValue\">{{_normalizedValue}}%</ng-container>\r\n {{label}}\r\n </div>\r\n</div>", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
4968
+ ZekProgress.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: ZekProgress, selector: "zek-progress", inputs: { value: "value", showValue: "showValue", striped: "striped", animated: "animated", label: "label", height: "height", background: "background" }, ngImport: i0, template: "<div class=\"progress\">\r\n <div class=\"progress-bar bg-{{background}}\" role=\"progressbar\"\r\n [class.progress-bar-striped]=\"striped || animated\"\r\n [class.progress-bar-animated]=\"animated\"\r\n [style.height.px]=\"height\"\r\n [style.width.%]=\"value\"\r\n [attr.aria-valuenow]=\"value\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\">\r\n <ng-container *ngIf=\"showValue\">{{value}}%</ng-container>\r\n {{label}}\r\n </div>\r\n</div>", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
4989
4969
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: ZekProgress, decorators: [{
4990
4970
  type: Component,
4991
- args: [{ selector: 'zek-progress', template: "<div class=\"progress\">\r\n <div class=\"progress-bar\" role=\"progressbar\"\r\n [class.progress-bar-striped]=\"striped || animated\"\r\n [class.progress-bar-animated]=\"animated\"\r\n [style.height.px]=\"height\"\r\n [style.width.%]=\"_normalizedValue\"\r\n [attr.aria-valuenow]=\"_normalizedValue\"\r\n aria-valuemin=\"0\"\r\n [attr.aria-valuemax]=\"max\">\r\n <ng-container *ngIf=\"showValue\">{{_normalizedValue}}%</ng-container>\r\n {{label}}\r\n </div>\r\n</div>", styles: [":host{display:block}\n"] }]
4992
- }], propDecorators: { max: [{
4971
+ args: [{ selector: 'zek-progress', template: "<div class=\"progress\">\r\n <div class=\"progress-bar bg-{{background}}\" role=\"progressbar\"\r\n [class.progress-bar-striped]=\"striped || animated\"\r\n [class.progress-bar-animated]=\"animated\"\r\n [style.height.px]=\"height\"\r\n [style.width.%]=\"value\"\r\n [attr.aria-valuenow]=\"value\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\">\r\n <ng-container *ngIf=\"showValue\">{{value}}%</ng-container>\r\n {{label}}\r\n </div>\r\n</div>", styles: [":host{display:block}\n"] }]
4972
+ }], propDecorators: { value: [{
4973
+ type: Input
4974
+ }], showValue: [{
4993
4975
  type: Input
4994
4976
  }], striped: [{
4995
4977
  type: Input