@seniorsistemas/angular-components 14.5.0 → 14.7.1
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.
- package/bundles/seniorsistemas-angular-components.umd.js +140 -76
- package/bundles/seniorsistemas-angular-components.umd.js.map +1 -1
- package/bundles/seniorsistemas-angular-components.umd.min.js +2 -2
- package/bundles/seniorsistemas-angular-components.umd.min.js.map +1 -1
- package/components/dynamic-form/components/lookup/lookup.component.d.ts +3 -0
- package/components/locale/pipes/localized-bignumber-impure.pipe.d.ts +6 -0
- package/components/locale/pipes/localized-bignumber.pipe.d.ts +9 -0
- package/components/locale/pipes/localized-currency-impure.pipe.d.ts +3 -0
- package/components/locale/pipes/localized-currency.pipe.d.ts +3 -0
- package/components/locale/pipes/localized-number.pipe.d.ts +3 -0
- package/components/stats-card/stats-card.component.d.ts +2 -1
- package/components/table/table-column/table-columns.component.d.ts +1 -1
- package/esm2015/components/dynamic-form/components/lookup/lookup.component.js +13 -3
- package/esm2015/components/dynamic-form/configurations/fields/bignumber-field.js +3 -2
- package/esm2015/components/locale/locale.module.js +9 -1
- package/esm2015/components/locale/pipes/localized-bignumber-impure.pipe.js +16 -0
- package/esm2015/components/locale/pipes/localized-bignumber.pipe.js +38 -0
- package/esm2015/components/locale/pipes/localized-currency-impure.pipe.js +4 -1
- package/esm2015/components/locale/pipes/localized-currency.pipe.js +4 -1
- package/esm2015/components/locale/pipes/localized-number.pipe.js +4 -1
- package/esm2015/components/stats-card/stats-card.component.js +21 -19
- package/esm2015/components/table/table-column/table-columns.component.js +11 -20
- package/esm2015/seniorsistemas-angular-components.js +34 -32
- package/esm5/components/dynamic-form/components/lookup/lookup.component.js +13 -3
- package/esm5/components/dynamic-form/configurations/fields/bignumber-field.js +3 -2
- package/esm5/components/locale/locale.module.js +9 -1
- package/esm5/components/locale/pipes/localized-bignumber-impure.pipe.js +21 -0
- package/esm5/components/locale/pipes/localized-bignumber.pipe.js +39 -0
- package/esm5/components/locale/pipes/localized-currency-impure.pipe.js +4 -1
- package/esm5/components/locale/pipes/localized-currency.pipe.js +4 -1
- package/esm5/components/locale/pipes/localized-number.pipe.js +4 -1
- package/esm5/components/stats-card/stats-card.component.js +20 -19
- package/esm5/components/table/table-column/table-columns.component.js +11 -21
- package/esm5/seniorsistemas-angular-components.js +34 -32
- package/fesm2015/seniorsistemas-angular-components.js +100 -42
- package/fesm2015/seniorsistemas-angular-components.js.map +1 -1
- package/fesm5/seniorsistemas-angular-components.js +105 -43
- package/fesm5/seniorsistemas-angular-components.js.map +1 -1
- package/package.json +2 -2
- package/seniorsistemas-angular-components.d.ts +33 -31
- package/seniorsistemas-angular-components.metadata.json +1 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { __decorate } from "tslib";
|
|
2
2
|
import { Component, Input, ViewEncapsulation, Output, EventEmitter } from "@angular/core";
|
|
3
|
+
import { BigNumber } from "bignumber.js";
|
|
3
4
|
var StatsCardComponent = /** @class */ (function () {
|
|
4
5
|
function StatsCardComponent() {
|
|
5
6
|
this.id = "s-stats-card-" + StatsCardComponent_1.nextId++;
|
|
@@ -34,43 +35,43 @@ var StatsCardComponent = /** @class */ (function () {
|
|
|
34
35
|
});
|
|
35
36
|
StatsCardComponent.prototype.updateDisplayValue = function () {
|
|
36
37
|
var _this = this;
|
|
37
|
-
var previousRawValue =
|
|
38
|
-
var rawValue =
|
|
39
|
-
var
|
|
40
|
-
var
|
|
38
|
+
var previousRawValue = new BigNumber(this.previousValue.replace(/\D/g, ""));
|
|
39
|
+
var rawValue = new BigNumber(this.value.replace(/\D/g, ""));
|
|
40
|
+
var eachAnimationDuration = new BigNumber(this.ANIMATION_DURATION_MS).dividedBy(new BigNumber(this.STEP_DURATION_MS));
|
|
41
|
+
var incrementValue = rawValue.minus(previousRawValue).absoluteValue().dividedBy(eachAnimationDuration).dp(0, 7);
|
|
42
|
+
var incremental = previousRawValue.isLessThan(rawValue);
|
|
41
43
|
clearInterval(this.intervalId);
|
|
42
44
|
this.displayValue = this.replaceNumericPositions(this.value);
|
|
43
45
|
var counter = previousRawValue;
|
|
44
46
|
this.intervalId = setInterval(function () {
|
|
45
|
-
if (incremental && counter
|
|
46
|
-
_this.displayValue = _this.replaceNumericPositions(_this.displayValue,
|
|
47
|
-
counter
|
|
47
|
+
if (incremental && counter.isLessThan(rawValue)) {
|
|
48
|
+
_this.displayValue = _this.replaceNumericPositions(_this.displayValue, counter);
|
|
49
|
+
counter = counter.plus(incrementValue);
|
|
48
50
|
}
|
|
49
|
-
else if (incremental) {
|
|
50
|
-
_this.displayValue = _this.
|
|
51
|
-
|
|
52
|
-
}
|
|
53
|
-
else if (!incremental && counter > rawValue) {
|
|
54
|
-
_this.displayValue = _this.replaceNumericPositions(_this.displayValue, String(counter));
|
|
55
|
-
counter -= incrementValue;
|
|
51
|
+
else if (!incremental && counter.isGreaterThan(rawValue)) {
|
|
52
|
+
_this.displayValue = _this.replaceNumericPositions(_this.displayValue, counter);
|
|
53
|
+
counter = counter.minus(incrementValue);
|
|
56
54
|
}
|
|
57
|
-
else
|
|
55
|
+
else {
|
|
58
56
|
_this.displayValue = _this.value;
|
|
59
57
|
clearInterval(_this.intervalId);
|
|
60
58
|
}
|
|
61
59
|
}, this.STEP_DURATION_MS);
|
|
62
60
|
};
|
|
63
61
|
StatsCardComponent.prototype.replaceNumericPositions = function (value, newValue) {
|
|
64
|
-
if (newValue === void 0) { newValue = ""; }
|
|
65
62
|
var rawValue = value.replace(/[^\d]/g, "");
|
|
66
|
-
var newValueString = newValue.
|
|
63
|
+
var newValueString = newValue ? newValue.toString() : "";
|
|
64
|
+
var formattedNewValue = newValueString
|
|
65
|
+
.toString()
|
|
66
|
+
.replace(/\D/g, "")
|
|
67
|
+
.padStart(rawValue.length, "0");
|
|
67
68
|
var newValueIndex = 0;
|
|
68
69
|
return value
|
|
69
70
|
.split("")
|
|
70
71
|
.map(function (char) {
|
|
71
72
|
var number = Number(char);
|
|
72
73
|
if (number || char === "0")
|
|
73
|
-
return
|
|
74
|
+
return formattedNewValue[newValueIndex++];
|
|
74
75
|
return char;
|
|
75
76
|
})
|
|
76
77
|
.join("");
|
|
@@ -121,4 +122,4 @@ var StatsCardComponent = /** @class */ (function () {
|
|
|
121
122
|
return StatsCardComponent;
|
|
122
123
|
}());
|
|
123
124
|
export { StatsCardComponent };
|
|
124
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
125
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHMtY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9zdGF0cy1jYXJkL3N0YXRzLWNhcmQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFRekM7SUFBQTtRQUlXLE9BQUUsR0FBRyxrQkFBZ0Isb0JBQWtCLENBQUMsTUFBTSxFQUFJLENBQUM7UUFNbkQsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFHckIsY0FBUyxHQUFHLElBQUksQ0FBQztRQUdqQixjQUFTLEdBQUcsaUJBQWlCLENBQUM7UUFHOUIsVUFBSyxHQUFHLFNBQVMsQ0FBQztRQUdsQixtQkFBYyxHQUFHLElBQUksQ0FBQztRQUd0QixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBV2xCLFlBQU8sR0FBRyxFQUFFLENBQUM7UUFPYixZQUFPLEdBQTZCLElBQUksWUFBWSxFQUFFLENBQUM7UUFJdEQsMEJBQXFCLEdBQUcsR0FBRyxDQUFDO1FBQzVCLHFCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUN0QixrQkFBYSxHQUFHLEdBQUcsQ0FBQztRQUVwQixXQUFNLEdBQUcsR0FBRyxDQUFDO0lBNkN6QixDQUFDOzJCQWhHWSxrQkFBa0I7SUE0QjNCLHNCQUFXLHFDQUFLO2FBVWhCO1lBQ0ksT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ3ZCLENBQUM7YUFaRCxVQUFpQixLQUFhO1lBQzFCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUNqQyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM1QixJQUFJLElBQUksQ0FBQyxjQUFjO2dCQUFFLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDOztnQkFDOUMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3hDLENBQUM7OztPQUFBO0lBb0JPLCtDQUFrQixHQUExQjtRQUFBLGlCQXVCQztRQXRCRyxJQUFNLGdCQUFnQixHQUFHLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzlFLElBQU0sUUFBUSxHQUFHLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzlELElBQU0scUJBQXFCLEdBQUcsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7UUFDeEgsSUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLGFBQWEsRUFBRSxDQUFDLFNBQVMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbEgsSUFBTSxXQUFXLEdBQUcsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTFELGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdELElBQUksT0FBTyxHQUFHLGdCQUFnQixDQUFDO1FBRS9CLElBQUksQ0FBQyxVQUFVLEdBQUcsV0FBVyxDQUFDO1lBQzFCLElBQUksV0FBVyxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQzdDLEtBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSSxDQUFDLHVCQUF1QixDQUFDLEtBQUksQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQzdFLE9BQU8sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2FBQzFDO2lCQUFNLElBQUksQ0FBQyxXQUFXLElBQUksT0FBTyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDeEQsS0FBSSxDQUFDLFlBQVksR0FBRyxLQUFJLENBQUMsdUJBQXVCLENBQUMsS0FBSSxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFDN0UsT0FBTyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7YUFDM0M7aUJBQU07Z0JBQ0gsS0FBSSxDQUFDLFlBQVksR0FBRyxLQUFJLENBQUMsS0FBSyxDQUFDO2dCQUMvQixhQUFhLENBQUMsS0FBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ2xDO1FBQ0wsQ0FBQyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFTSxvREFBdUIsR0FBOUIsVUFBK0IsS0FBYSxFQUFFLFFBQW9CO1FBQzlELElBQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzdDLElBQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDM0QsSUFBTSxpQkFBaUIsR0FBRyxjQUFjO2FBQ25DLFFBQVEsRUFBRTthQUNWLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDO2FBQ2xCLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3BDLElBQUksYUFBYSxHQUFHLENBQUMsQ0FBQztRQUV0QixPQUFPLEtBQUs7YUFDUCxLQUFLLENBQUMsRUFBRSxDQUFDO2FBQ1QsR0FBRyxDQUFDLFVBQUEsSUFBSTtZQUNMLElBQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM1QixJQUFJLE1BQU0sSUFBSSxJQUFJLEtBQUssR0FBRztnQkFBRSxPQUFPLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7WUFDdEUsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQyxDQUFDO2FBQ0QsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7O0lBOUZhLHlCQUFNLEdBQUcsQ0FBQyxDQUFDO0lBR3pCO1FBREMsS0FBSyxFQUFFO2tEQUNrRDtJQUcxRDtRQURDLEtBQUssRUFBRTtxREFDYTtJQUdyQjtRQURDLEtBQUssRUFBRTs0REFDb0I7SUFHNUI7UUFEQyxLQUFLLEVBQUU7eURBQ2dCO0lBR3hCO1FBREMsS0FBSyxFQUFFO3lEQUM2QjtJQUdyQztRQURDLEtBQUssRUFBRTtxREFDaUI7SUFHekI7UUFEQyxLQUFLLEVBQUU7OERBQ3FCO0lBRzdCO1FBREMsS0FBSyxFQUFFO3lEQUNpQjtJQUd6QjtRQURDLEtBQUssRUFBRTttREFNUDtJQUdEO1FBREMsS0FBSyxFQUFFO3VEQUNZO0lBT3BCO1FBREMsTUFBTSxFQUFFO3VEQUNxRDtJQTNDckQsa0JBQWtCO1FBTjlCLFNBQVMsQ0FBQztZQUNQLFFBQVEsRUFBRSxjQUFjO1lBQ3hCLDhnRUFBMEM7WUFFMUMsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7O1NBQ3hDLENBQUM7T0FDVyxrQkFBa0IsQ0FnRzlCO0lBQUQseUJBQUM7Q0FBQSxBQWhHRCxJQWdHQztTQWhHWSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBWaWV3RW5jYXBzdWxhdGlvbiwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQmlnTnVtYmVyIH0gZnJvbSBcImJpZ251bWJlci5qc1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogXCJzLXN0YXRzLWNhcmRcIixcbiAgICB0ZW1wbGF0ZVVybDogXCIuL3N0YXRzLWNhcmQuY29tcG9uZW50Lmh0bWxcIixcbiAgICBzdHlsZVVybHM6IFtcIi4vc3RhdHMtY2FyZC5jb21wb25lbnQuc2Nzc1wiXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBTdGF0c0NhcmRDb21wb25lbnQge1xuICAgIHB1YmxpYyBzdGF0aWMgbmV4dElkID0gMDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGlkID0gYHMtc3RhdHMtY2FyZC0ke1N0YXRzQ2FyZENvbXBvbmVudC5uZXh0SWQrK31gO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbGFiZWw6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxpZ2h0VmVyc2lvbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbGlnaHRNb2RlID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGljb25DbGFzcyA9IFwiZmEgZmEtYmFyLWNoYXJ0XCI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjb2xvciA9IFwiIzMzOTk2NlwiO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYW5pbWF0ZU51bWJlcnMgPSB0cnVlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY2xpY2thYmxlID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLnByZXZpb3VzVmFsdWUgPSB0aGlzLl92YWx1ZTtcbiAgICAgICAgdGhpcy5fdmFsdWUgPSBTdHJpbmcodmFsdWUpO1xuICAgICAgICBpZiAodGhpcy5hbmltYXRlTnVtYmVycykgdGhpcy51cGRhdGVEaXNwbGF5VmFsdWUoKTtcbiAgICAgICAgZWxzZSB0aGlzLmRpc3BsYXlWYWx1ZSA9IHRoaXMudmFsdWU7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdG9vbHRpcCA9IFwiXCI7XG5cbiAgICBwdWJsaWMgZ2V0IHZhbHVlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gICAgfVxuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIG9uQ2xpY2s6IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHB1YmxpYyBkaXNwbGF5VmFsdWU6IHN0cmluZztcblxuICAgIHByaXZhdGUgQU5JTUFUSU9OX0RVUkFUSU9OX01TID0gMjAwO1xuICAgIHByaXZhdGUgU1RFUF9EVVJBVElPTl9NUyA9IDIwO1xuICAgIHByaXZhdGUgcHJldmlvdXNWYWx1ZSA9IFwiMFwiO1xuICAgIHByaXZhdGUgaW50ZXJ2YWxJZDogYW55O1xuICAgIHByaXZhdGUgX3ZhbHVlID0gXCIwXCI7XG5cbiAgICBwcml2YXRlIHVwZGF0ZURpc3BsYXlWYWx1ZSgpIHtcbiAgICAgICAgY29uc3QgcHJldmlvdXNSYXdWYWx1ZSA9IG5ldyBCaWdOdW1iZXIodGhpcy5wcmV2aW91c1ZhbHVlLnJlcGxhY2UoL1xcRC9nLCBcIlwiKSk7XG4gICAgICAgIGNvbnN0IHJhd1ZhbHVlID0gbmV3IEJpZ051bWJlcih0aGlzLnZhbHVlLnJlcGxhY2UoL1xcRC9nLCBcIlwiKSk7XG4gICAgICAgIGNvbnN0IGVhY2hBbmltYXRpb25EdXJhdGlvbiA9IG5ldyBCaWdOdW1iZXIodGhpcy5BTklNQVRJT05fRFVSQVRJT05fTVMpLmRpdmlkZWRCeShuZXcgQmlnTnVtYmVyKHRoaXMuU1RFUF9EVVJBVElPTl9NUykpO1xuICAgICAgICBjb25zdCBpbmNyZW1lbnRWYWx1ZSA9IHJhd1ZhbHVlLm1pbnVzKHByZXZpb3VzUmF3VmFsdWUpLmFic29sdXRlVmFsdWUoKS5kaXZpZGVkQnkoZWFjaEFuaW1hdGlvbkR1cmF0aW9uKS5kcCgwLCA3KTtcbiAgICAgICAgY29uc3QgaW5jcmVtZW50YWwgPSBwcmV2aW91c1Jhd1ZhbHVlLmlzTGVzc1RoYW4ocmF3VmFsdWUpO1xuXG4gICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbElkKTtcbiAgICAgICAgdGhpcy5kaXNwbGF5VmFsdWUgPSB0aGlzLnJlcGxhY2VOdW1lcmljUG9zaXRpb25zKHRoaXMudmFsdWUpO1xuICAgICAgICBsZXQgY291bnRlciA9IHByZXZpb3VzUmF3VmFsdWU7XG5cbiAgICAgICAgdGhpcy5pbnRlcnZhbElkID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKGluY3JlbWVudGFsICYmIGNvdW50ZXIuaXNMZXNzVGhhbihyYXdWYWx1ZSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9IHRoaXMucmVwbGFjZU51bWVyaWNQb3NpdGlvbnModGhpcy5kaXNwbGF5VmFsdWUsIGNvdW50ZXIpO1xuICAgICAgICAgICAgICAgIGNvdW50ZXIgPSBjb3VudGVyLnBsdXMoaW5jcmVtZW50VmFsdWUpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICghaW5jcmVtZW50YWwgJiYgY291bnRlci5pc0dyZWF0ZXJUaGFuKHJhd1ZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gdGhpcy5yZXBsYWNlTnVtZXJpY1Bvc2l0aW9ucyh0aGlzLmRpc3BsYXlWYWx1ZSwgY291bnRlcik7XG4gICAgICAgICAgICAgICAgY291bnRlciA9IGNvdW50ZXIubWludXMoaW5jcmVtZW50VmFsdWUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9IHRoaXMudmFsdWU7XG4gICAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLmludGVydmFsSWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCB0aGlzLlNURVBfRFVSQVRJT05fTVMpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZXBsYWNlTnVtZXJpY1Bvc2l0aW9ucyh2YWx1ZTogc3RyaW5nLCBuZXdWYWx1ZT86IEJpZ051bWJlcikge1xuICAgICAgICBjb25zdCByYXdWYWx1ZSA9IHZhbHVlLnJlcGxhY2UoL1teXFxkXS9nLCBcIlwiKTtcbiAgICAgICAgY29uc3QgbmV3VmFsdWVTdHJpbmcgPSBuZXdWYWx1ZSA/IG5ld1ZhbHVlLnRvU3RyaW5nKCkgOiBcIlwiO1xuICAgICAgICBjb25zdCBmb3JtYXR0ZWROZXdWYWx1ZSA9IG5ld1ZhbHVlU3RyaW5nXG4gICAgICAgICAgICAudG9TdHJpbmcoKVxuICAgICAgICAgICAgLnJlcGxhY2UoL1xcRC9nLCBcIlwiKVxuICAgICAgICAgICAgLnBhZFN0YXJ0KHJhd1ZhbHVlLmxlbmd0aCwgXCIwXCIpO1xuICAgICAgICBsZXQgbmV3VmFsdWVJbmRleCA9IDA7XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlXG4gICAgICAgICAgICAuc3BsaXQoXCJcIilcbiAgICAgICAgICAgIC5tYXAoY2hhciA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbnVtYmVyID0gTnVtYmVyKGNoYXIpO1xuICAgICAgICAgICAgICAgIGlmIChudW1iZXIgfHwgY2hhciA9PT0gXCIwXCIpIHJldHVybiBmb3JtYXR0ZWROZXdWYWx1ZVtuZXdWYWx1ZUluZGV4KytdO1xuICAgICAgICAgICAgICAgIHJldHVybiBjaGFyO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5qb2luKFwiXCIpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -3,6 +3,8 @@ import { Inject, OnChanges, SimpleChanges, TemplateRef, ViewContainerRef } from
|
|
|
3
3
|
import { Component, Input, ViewChild } from "@angular/core";
|
|
4
4
|
import { TranslateService } from "@ngx-translate/core";
|
|
5
5
|
import * as moment from "moment";
|
|
6
|
+
import { applyMask } from "@seniorsistemas/ng2-currency-mask";
|
|
7
|
+
import BigNumber from "bignumber.js";
|
|
6
8
|
import { EnumColumnFieldType } from "./models";
|
|
7
9
|
var TableColumnsComponent = /** @class */ (function () {
|
|
8
10
|
function TableColumnsComponent(viewContainerRef, translate, hostProjectConfigs) {
|
|
@@ -71,7 +73,7 @@ var TableColumnsComponent = /** @class */ (function () {
|
|
|
71
73
|
return uninformed;
|
|
72
74
|
}
|
|
73
75
|
else {
|
|
74
|
-
var numberConfigs = __assign(__assign({}, locale.number), { scale: column.scale ? _this.getColumnScale(column.scale) : locale.number.scale });
|
|
76
|
+
var numberConfigs = __assign(__assign({}, locale.number), { scale: column.scale ? _this.getColumnScale(column.scale) : locale.number.scale, prefix: locale.number.currencySymbol + " " });
|
|
75
77
|
switch (column.type) {
|
|
76
78
|
case EnumColumnFieldType.ENUM:
|
|
77
79
|
if (column.badgeConfigs && column.badgeConfigs.length) {
|
|
@@ -79,7 +81,7 @@ var TableColumnsComponent = /** @class */ (function () {
|
|
|
79
81
|
}
|
|
80
82
|
return _this.translate.instant(column.enumPrefix + attributeValue.toString().toLowerCase());
|
|
81
83
|
case EnumColumnFieldType.CURRENCY:
|
|
82
|
-
return
|
|
84
|
+
return applyMask(attributeValue, numberConfigs, _this.isNumber(attributeValue));
|
|
83
85
|
case EnumColumnFieldType.DATE:
|
|
84
86
|
var dateFormat = column.dateFormat ? column.dateFormat : locale.calendar.dateFormat;
|
|
85
87
|
return moment(attributeValue).format(dateFormat);
|
|
@@ -90,7 +92,8 @@ var TableColumnsComponent = /** @class */ (function () {
|
|
|
90
92
|
case EnumColumnFieldType.STRING:
|
|
91
93
|
return attributeValue;
|
|
92
94
|
case EnumColumnFieldType.NUMBER:
|
|
93
|
-
|
|
95
|
+
numberConfigs.prefix = "";
|
|
96
|
+
return applyMask(attributeValue, numberConfigs, _this.isNumber(attributeValue));
|
|
94
97
|
case EnumColumnFieldType.TOKENS:
|
|
95
98
|
return _this.getTokens(attributeValue);
|
|
96
99
|
}
|
|
@@ -145,21 +148,8 @@ var TableColumnsComponent = /** @class */ (function () {
|
|
|
145
148
|
return tooltip;
|
|
146
149
|
}
|
|
147
150
|
};
|
|
148
|
-
TableColumnsComponent.prototype.
|
|
149
|
-
|
|
150
|
-
var scale = options.scale, thousandsSeparator = options.thousandsSeparator, decimalSeparator = options.decimalSeparator;
|
|
151
|
-
var currencySymbol = useCurrencySymbol ? options.currencySymbol : "";
|
|
152
|
-
var rawValue = Number(value ? value : 0).toFixed(scale);
|
|
153
|
-
var onlyNumbers = rawValue.replace(/[^0-9]/g, "");
|
|
154
|
-
var integerPart = onlyNumbers
|
|
155
|
-
.slice(0, onlyNumbers.length - scale)
|
|
156
|
-
.replace(/^0*/g, "")
|
|
157
|
-
.replace(/\B(?=(\d{3})+(?!\d))/g, thousandsSeparator) || "0";
|
|
158
|
-
var decimalPart = onlyNumbers.slice(onlyNumbers.length - scale);
|
|
159
|
-
var newValue = scale ? integerPart + decimalSeparator + decimalPart : integerPart;
|
|
160
|
-
var isZero = !Number(onlyNumbers);
|
|
161
|
-
var operator = rawValue.includes("-") && !isZero ? "-" : "";
|
|
162
|
-
return "" + operator + currencySymbol + " " + newValue;
|
|
151
|
+
TableColumnsComponent.prototype.isNumber = function (value) {
|
|
152
|
+
return !(new BigNumber(value).isNaN());
|
|
163
153
|
};
|
|
164
154
|
TableColumnsComponent.prototype.getTokens = function (values) {
|
|
165
155
|
if (!this.isArray(values))
|
|
@@ -223,13 +213,13 @@ var TableColumnsComponent = /** @class */ (function () {
|
|
|
223
213
|
], TableColumnsComponent.prototype, "locale", void 0);
|
|
224
214
|
TableColumnsComponent = __decorate([
|
|
225
215
|
Component({
|
|
226
|
-
template: "\n<ng-template #columnsTemplate>\n <td *ngFor=\"let column of formattedColumns\" [ngStyle]=\"column.style\" (click)=\"column.onColumnClick ? column.onColumnClick(rowValue) : null\">\n\n <div *ngIf=\"column.type !== 'TOKENS' || !isArray(column.columnValue); else tokensTemplate\">\n\n <span *ngIf=\"column.type !== 'LINK'\" [pTooltip]=\"column.tooltip\" [escape]=\"false\" [ngClass]=\"column.badgeClass\">\n <ng-container *ngTemplateOutlet=\"columnValueTemplate\"></ng-container> \n </span>\n\n <a *ngIf=\"column.type === 'LINK'\" [pTooltip]=\"column.tooltip\" [escape]=\"false\" (click)=\"column.onLinkClick ? column.onLinkClick(rowValue) : null\">\n <ng-container *ngTemplateOutlet=\"columnValueTemplate\"></ng-container> \n </a>\n\n <ng-template #columnValueTemplate>\n <span *ngFor=\"let value of getSplittedString(column)\">\n <span [ngClass]=\"{ 'sds-
|
|
216
|
+
template: "\n<ng-template #columnsTemplate>\n <td *ngFor=\"let column of formattedColumns\" [ngStyle]=\"column.style\" (click)=\"column.onColumnClick ? column.onColumnClick(rowValue) : null\">\n\n <div *ngIf=\"column.type !== 'TOKENS' || !isArray(column.columnValue); else tokensTemplate\">\n\n <span *ngIf=\"column.type !== 'LINK'\" [pTooltip]=\"column.tooltip\" [escape]=\"false\" [ngClass]=\"column.badgeClass\">\n <ng-container *ngTemplateOutlet=\"columnValueTemplate\"></ng-container> \n </span>\n\n <a *ngIf=\"column.type === 'LINK'\" [pTooltip]=\"column.tooltip\" [escape]=\"false\" (click)=\"column.onLinkClick ? column.onLinkClick(rowValue) : null\">\n <ng-container *ngTemplateOutlet=\"columnValueTemplate\"></ng-container> \n </a>\n\n <ng-template #columnValueTemplate>\n <span *ngFor=\"let value of getSplittedString(column)\">\n <span [ngClass]=\"{ 'sds-empty-value': value.isUninformed }\">{{value.value}}</span>\n <span>{{value.separator}}</span>\n </span>\n </ng-template>\n\n </div>\n\n <ng-template #tokensTemplate>\n <s-token-list\n [tokens]=\"column.columnValue\"\n [hidePointerEvents]=\"true\"\n >\n </s-token-list>\n </ng-template>\n\n </td>\n</ng-template>\n",
|
|
227
217
|
selector: "s-table-columns",
|
|
228
|
-
styles: ["
|
|
218
|
+
styles: [":host{display:none}"]
|
|
229
219
|
}),
|
|
230
220
|
__param(2, Inject("hostProjectConfigs"))
|
|
231
221
|
], TableColumnsComponent);
|
|
232
222
|
return TableColumnsComponent;
|
|
233
223
|
}());
|
|
234
224
|
export { TableColumnsComponent };
|
|
235
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy90YWJsZS90YWJsZS1jb2x1bW4vdGFibGUtY29sdW1ucy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEcsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXZELE9BQU8sS0FBSyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBR2pDLE9BQU8sRUFLSCxtQkFBbUIsRUFHdEIsTUFBTSxVQUFVLENBQUM7QUFPbEI7SUFVSSwrQkFDWSxnQkFBa0MsRUFDbEMsU0FBMkIsRUFDRyxrQkFBc0M7UUFGcEUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUNHLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFMekUscUJBQWdCLEdBQW1CLEVBQUUsQ0FBQztJQU0xQyxDQUFDO0lBRUosMkNBQVcsR0FBWCxVQUFZLE9BQXNCO1FBQzlCLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVPLDJEQUEyQixHQUFuQyxVQUFvQyxPQUFzQjs7UUFDdEQsSUFBSSxRQUFDLE9BQU8sQ0FBQyxPQUFPLDBDQUFFLFlBQVksQ0FBQTtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsMkNBQTJDLENBQUMsQ0FBQztRQUNqRyxJQUFJ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OzBEQUFvQjtJQUNuQjtRQUFSLEtBQUssRUFBRTsyREFBZ0I7SUFDZjtRQUFSLEtBQUssRUFBRTt5REFBbUM7SUFObEMscUJBQXFCO1FBTGpDLFNBQVMsQ0FBQztZQUNQLGk2Q0FBNkM7WUFFN0MsUUFBUSxFQUFFLGlCQUFpQjs7U0FDOUIsQ0FBQztRQWNPLFdBQUEsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUE7T0FieEIscUJBQXFCLENBd09qQztJQUFELDRCQUFDO0NBQUEsQUF4T0QsSUF3T0M7U0F4T1kscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIFZpZXdDaGlsZCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcbmltcG9ydCB7IElUb2tlbiB9IGZyb20gXCIuLi8uLi90b2tlbi1saXN0XCI7XG5pbXBvcnQgKiBhcyBtb21lbnQgZnJvbSBcIm1vbWVudFwiO1xuXG5pbXBvcnQgeyBIb3N0UHJvamVjdENvbmZpZ3MgfSBmcm9tIFwiLi4vLi4vLi4vYW5ndWxhci1jb21wb25lbnRzLm1vZHVsZVwiO1xuaW1wb3J0IHtcbiAgICBCYWRnZUNvbHVtbixcbiAgICBCYWRnZUNvbmZpZ3MsXG4gICAgQ29sdW1uLFxuICAgIENvbHVtblZhbHVlcyxcbiAgICBFbnVtQ29sdW1uRmllbGRUeXBlLFxuICAgIFRhYmxlQ29sdW1uTG9jYWxlT3B0aW9ucyxcbiAgICBUYWJsZUNvbHVtbk51bWJlckxvY2FsZU9wdGlvbnNcbn0gZnJvbSBcIi4vbW9kZWxzXCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHRlbXBsYXRlVXJsOiBcIi4vdGFibGUtY29sdW1ucy5jb21wb25lbnQuaHRtbFwiLFxuICAgIHN0eWxlVXJsczogW1wiLi90YWJsZS1jb2x1bW5zLmNvbXBvbmVudC5zY3NzXCJdLFxuICAgIHNlbGVjdG9yOiBcInMtdGFibGUtY29sdW1uc1wiLFxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUNvbHVtbnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuXG4gICAgQFZpZXdDaGlsZChcImNvbHVtbnNUZW1wbGF0ZVwiLCB7IHN0YXRpYzogdHJ1ZSB9KSBjb2x1bW5zVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBASW5wdXQoKSBjb2x1bW5zITogQ29sdW1uW107XG4gICAgQElucHV0KCkgcm93VmFsdWUhOiBhbnk7XG4gICAgQElucHV0KCkgbG9jYWxlITogVGFibGVDb2x1bW5Mb2NhbGVPcHRpb25zO1xuXG4gICAgcHVibGljIGZvcm1hdHRlZENvbHVtbnM6IENvbHVtblZhbHVlc1tdID0gW107XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgICAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgQEluamVjdChcImhvc3RQcm9qZWN0Q29uZmlnc1wiKSBwcml2YXRlIGhvc3RQcm9qZWN0Q29uZmlnczogSG9zdFByb2plY3RDb25maWdzXG4gICAgKSB7fVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbGlkYXRlQ29tcG9uZW50QXR0cmlidXRlcyhjaGFuZ2VzKTtcbiAgICAgICAgdGhpcy5jcmVhdGVDb2x1bW5zVGVtcGxhdGUoY2hhbmdlcyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB2YWxpZGF0ZUNvbXBvbmVudEF0dHJpYnV0ZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoIWNoYW5nZXMuY29sdW1ucz8uY3VycmVudFZhbHVlKSB0aHJvdyBuZXcgRXJyb3IoXCJUaGUgJ2NvbHVtbnMnIGF0dHJpYnV0ZSBtdXN0IGJlIGluZm9ybWVkIVwiKTtcbiAgICAgICAgaWYgKCFjaGFuZ2VzLnJvd1ZhbHVlPy5jdXJyZW50VmFsdWUpIHRocm93IG5ldyBFcnJvcihcIlRoZSAncm93VmFsdWUnIGF0dHJpYnV0ZSBtdXN0IGJlIGluZm9ybWVkIVwiKTtcbiAgICAgICAgaWYgKCFjaGFuZ2VzLmxvY2FsZT8uY3VycmVudFZhbHVlKSB0aHJvdyBuZXcgRXJyb3IoXCJUaGUgJ2xvY2FsZScgYXR0cmlidXRlIG11c3QgYmUgaW5mb3JtZWQhXCIpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlQ29sdW1uc1RlbXBsYXRlKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG5cbiAgICAgICAgY29uc3QgY29sdW1uczogQ29sdW1uW10gPSBjaGFuZ2VzLmNvbHVtbnMuY3VycmVudFZhbHVlO1xuICAgICAgICBjb25zdCByb3dWYWx1ZTogb2JqZWN0ID0gY2hhbmdlcy5yb3dWYWx1ZS5jdXJyZW50VmFsdWU7XG4gICAgICAgIGNvbnN0IGxvY2FsZTogVGFibGVDb2x1bW5Mb2NhbGVPcHRpb25zID0gY2hhbmdlcy5sb2NhbGUuY3VycmVudFZhbHVlO1xuXG4gICAgICAgIGNvbHVtbnMuZm9yRWFjaCgoY29sdW1uKSA9PiB0aGlzLmZvcm1hdHRlZENvbHVtbnMucHVzaCh0aGlzLmdldENvbHVtblZhbHVlKGNvbHVtbiwgcm93VmFsdWUsIGxvY2FsZSkpKTtcbiAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLmNvbHVtbnNUZW1wbGF0ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDb2x1bW5WYWx1ZShjb2x1bW46IENvbHVtbiwgcm93VmFsdWU6IG9iamVjdCwgbG9jYWxlOiBUYWJsZUNvbHVtbkxvY2FsZU9wdGlvbnMpOiBDb2x1bW5WYWx1ZXMge1xuICAgICAgICBjb25zdCBwcmVmaXggPSBjb2x1bW4ucHJlZml4XG4gICAgICAgICAgICA/IGNvbHVtbi5wcmVmaXhcbiAgICAgICAgICAgIDogYCR7dGhpcy5ob3N0UHJvamVjdENvbmZpZ3MuZG9tYWlufS4ke3RoaXMuaG9zdFByb2plY3RDb25maWdzLnNlcnZpY2V9LmA7XG4gICAgICAgIGNvbnN0IHNlcGFyYXRvciA9IGNvbHVtbi5zZXBhcmF0b3JcbiAgICAgICAgICAgID8gY29sdW1uLnNlcGFyYXRvclxuICAgICAgICAgICAgOiBcIiAtIFwiO1xuICAgICAgICBjb25zdCB1bmluZm9ybWVkOiBzdHJpbmcgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KHByZWZpeCArIFwiZW1wdHlfbGFiZWxcIik7XG4gICAgICAgIGNvbnN0IHN0eWxlID0gY29sdW1uLnN0eWxlO1xuICAgICAgICBsZXQgYmFkZ2VDbGFzczogQmFkZ2VDb2x1bW4gPSB7XG4gICAgICAgICAgICBcInNkcy1iYWRnZVwiOiBmYWxzZVxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IGNvbHVtblZhbHVlOiBhbnlbXSA9IGNvbHVtbi5hdHRyaWJ1dGVzXG4gICAgICAgICAgICAubWFwKChhdHRyaWJ1dGU6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBhdHRyaWJ1dGVWYWx1ZSE6IGFueTtcblxuICAgICAgICAgICAgICAgIGF0dHJpYnV0ZVxuICAgICAgICAgICAgICAgICAgICAuc3BsaXQoXCIvXCIpXG4gICAgICAgICAgICAgICAgICAgIC5mb3JFYWNoKCh2YWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWF0dHJpYnV0ZVZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnNwbGl0KFwiLlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZm9yRWFjaCgodmFsOiBzdHJpbmcsIGkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyb3dWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZVZhbHVlID0gcm93VmFsdWVbdmFsXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGF0dHJpYnV0ZVZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZVZhbHVlID0gYXR0cmlidXRlVmFsdWVbdmFsXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgaWYgKGF0dHJpYnV0ZVZhbHVlID09PSBudWxsIHx8IGF0dHJpYnV0ZVZhbHVlID09PSB1bmRlZmluZWQgfHwgKHRoaXMuaXNBcnJheShhdHRyaWJ1dGVWYWx1ZSkgJiYgIWF0dHJpYnV0ZVZhbHVlLmxlbmd0aCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVuaW5mb3JtZWQ7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbnVtYmVyQ29uZmlnczogVGFibGVDb2x1bW5OdW1iZXJMb2NhbGVPcHRpb25zID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4ubG9jYWxlLm51bWJlcixcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlOiBjb2x1bW4uc2NhbGUgPyB0aGlzLmdldENvbHVtblNjYWxlKGNvbHVtbi5zY2FsZSkgOiBsb2NhbGUubnVtYmVyLnNjYWxlXG4gICAgICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChjb2x1bW4udHlwZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBFbnVtQ29sdW1uRmllbGRUeXBlLkVOVU06XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbHVtbi5iYWRnZUNvbmZpZ3MgJiYgY29sdW1uLmJhZGdlQ29uZmlncy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFkZ2VDbGFzcyA9IHRoaXMuZ2V0QmFkZ2VDbGFzcyhhdHRyaWJ1dGVWYWx1ZSwgY29sdW1uLmJhZGdlQ29uZmlncyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGNvbHVtbi5lbnVtUHJlZml4ICsgYXR0cmlidXRlVmFsdWUudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBFbnVtQ29sdW1uRmllbGRUeXBlLkNVUlJFTkNZOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmFwcGx5TWFzayhhdHRyaWJ1dGVWYWx1ZSwgbnVtYmVyQ29uZmlncyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgRW51bUNvbHVtbkZpZWxkVHlwZS5EQVRFOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGVGb3JtYXQgPSBjb2x1bW4uZGF0ZUZvcm1hdCA/IGNvbHVtbi5kYXRlRm9ybWF0IDogbG9jYWxlLmNhbGVuZGFyLmRhdGVGb3JtYXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1vbWVudChhdHRyaWJ1dGVWYWx1ZSkuZm9ybWF0KGRhdGVGb3JtYXQpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIEVudW1Db2x1bW5GaWVsZFR5cGUuQk9PTEVBTjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGF0dHJpYnV0ZVZhbHVlID8gXCJ5ZXNcIiA6IFwibm9cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuaW5zdGFudChwcmVmaXggKyB2YWx1ZSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgRW51bUNvbHVtbkZpZWxkVHlwZS5MSU5LOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBFbnVtQ29sdW1uRmllbGRUeXBlLlNUUklORzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYXR0cmlidXRlVmFsdWU7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgRW51bUNvbHVtbkZpZWxkVHlwZS5OVU1CRVI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuYXBwbHlNYXNrKGF0dHJpYnV0ZVZhbHVlLCBudW1iZXJDb25maWdzLCBmYWxzZSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgRW51bUNvbHVtbkZpZWxkVHlwZS5UT0tFTlM6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VG9rZW5zKGF0dHJpYnV0ZVZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IHVuaWZpZWRDb2x1bW5WYWx1ZXMgPSBjb2x1bW5WYWx1ZS5qb2luKHNlcGFyYXRvcik7XG4gICAgICAgIGNvbnN0IHVuaW5mb3JtZWROdW1iZXIgPSB1bmlmaWVkQ29sdW1uVmFsdWVzXG4gICAgICAgICAgICAuc3BsaXQoc2VwYXJhdG9yKVxuICAgICAgICAgICAgLmZpbHRlcih2YWx1ZSA9PiB2YWx1ZSA9PT0gdW5pbmZvcm1lZCkubGVuZ3RoO1xuXG4gICAgICAgIGxldCBmb3JtYXR0ZWRDb2x1bW5WYWx1ZTogc3RyaW5nIHwgSVRva2VuW107XG4gICAgICAgIGlmICh1bmluZm9ybWVkTnVtYmVyID09PSBjb2x1bW4uYXR0cmlidXRlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGZvcm1hdHRlZENvbHVtblZhbHVlID0gdW5pbmZvcm1lZDtcbiAgICAgICAgfSBlbHNlIGlmIChjb2x1bW4udHlwZSA9PT0gRW51bUNvbHVtbkZpZWxkVHlwZS5UT0tFTlMpIHtcbiAgICAgICAgICAgIGZvcm1hdHRlZENvbHVtblZhbHVlID0gW10uY29uY2F0LmFwcGx5KFtdLCBjb2x1bW5WYWx1ZS5maWx0ZXIodmFsdWVzID0+IHZhbHVlcyAhPT0gdW5pbmZvcm1lZCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZm9ybWF0dGVkQ29sdW1uVmFsdWUgPSB1bmlmaWVkQ29sdW1uVmFsdWVzO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHN0eWxlLFxuICAgICAgICAgICAgY29sdW1uVmFsdWU6IGZvcm1hdHRlZENvbHVtblZhbHVlLFxuICAgICAgICAgICAgYmFkZ2VDbGFzcyxcbiAgICAgICAgICAgIHNlcGFyYXRvcixcbiAgICAgICAgICAgIHVuaW5mb3JtZWQsXG4gICAgICAgICAgICB0eXBlOiBjb2x1bW4udHlwZSxcbiAgICAgICAgICAgIHRvb2x0aXA6IHRoaXMuZ2V0Q29sdW1uVG9vbHRpcChjb2x1bW4udG9vbHRpcCksXG4gICAgICAgICAgICBvbkxpbmtDbGljazogY29sdW1uLm9uTGlua0NsaWNrLFxuICAgICAgICAgICAgb25Db2x1bW5DbGljazogY29sdW1uLm9uQ29sdW1uQ2xpY2tcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEJhZGdlQ2xhc3ModmFsdWU6IHN0cmluZywgYmFkZ2VDb25maWdzOiBCYWRnZUNvbmZpZ3NbXSk6IEJhZGdlQ29sdW1uIHtcbiAgICAgICAgY29uc3QgYmFkZ2VDb2x1bW4gPSB7XG4gICAgICAgICAgICBcInNkcy1iYWRnZVwiOiB0cnVlXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGNvbG9yID0gIGJhZGdlQ29uZmlncy5maW5kKGJhZGdlQ29uZmlnID0+IGJhZGdlQ29uZmlnLmVudW1WYWx1ZSA9PT0gdmFsdWUpPy5jb2xvci52YWx1ZU9mKCk7XG4gICAgICAgIGJhZGdlQ29sdW1uW2NvbG9yXSA9IHRydWU7XG5cbiAgICAgICAgcmV0dXJuIGJhZGdlQ29sdW1uO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Q29sdW1uU2NhbGUoc2NhbGU6IG51bWJlciB8ICgocm93VmFsdWU6IGFueSkgPT4gbnVtYmVyKSk6IG51bWJlciB7XG4gICAgICAgIGlmICh0eXBlb2Ygc2NhbGUgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgcmV0dXJuIHNjYWxlKHRoaXMucm93VmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzY2FsZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENvbHVtblRvb2x0aXAodG9vbHRpcDogc3RyaW5nIHwgKChyb3dWYWx1ZTogYW55KSA9PiBzdHJpbmcpKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRvb2x0aXAgIT09IHVuZGVmaW5lZCAmJiB0b29sdGlwICE9PSBudWxsKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHRvb2x0aXAgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgIHJldHVybiB0b29sdGlwKHRoaXMucm93VmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRvb2x0aXA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGFwcGx5TWFzayh2YWx1ZTogYW55LCBvcHRpb25zOiBUYWJsZUNvbHVtbk51bWJlckxvY2FsZU9wdGlvbnMsIHVzZUN1cnJlbmN5U3ltYm9sID0gdHJ1ZSkge1xuICAgICAgICBjb25zdCB7IHNjYWxlLCB0aG91c2FuZHNTZXBhcmF0b3IsIGRlY2ltYWxTZXBhcmF0b3IgfSA9IG9wdGlvbnM7XG5cbiAgICAgICAgY29uc3QgY3VycmVuY3lTeW1ib2wgPSB1c2VDdXJyZW5jeVN5bWJvbCA/IG9wdGlvbnMuY3VycmVuY3lTeW1ib2wgOiBcIlwiO1xuICAgICAgICBjb25zdCByYXdWYWx1ZSA9IE51bWJlcih2YWx1ZSA/IHZhbHVlIDogMCkudG9GaXhlZChzY2FsZSk7XG4gICAgICAgIGNvbnN0IG9ubHlOdW1iZXJzID0gcmF3VmFsdWUucmVwbGFjZSgvW14wLTldL2csIGBgKTtcbiAgICAgICAgY29uc3QgaW50ZWdlclBhcnQgPVxuICAgICAgICAgICAgb25seU51bWJlcnNcbiAgICAgICAgICAgICAgICAuc2xpY2UoMCwgb25seU51bWJlcnMubGVuZ3RoIC0gc2NhbGUpXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL14wKi9nLCBgYClcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvXFxCKD89KFxcZHszfSkrKD8hXFxkKSkvZywgdGhvdXNhbmRzU2VwYXJhdG9yKSB8fCBgMGA7XG4gICAgICAgIGNvbnN0IGRlY2ltYWxQYXJ0ID0gb25seU51bWJlcnMuc2xpY2Uob25seU51bWJlcnMubGVuZ3RoIC0gc2NhbGUpO1xuICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IHNjYWxlID8gaW50ZWdlclBhcnQgKyBkZWNpbWFsU2VwYXJhdG9yICsgZGVjaW1hbFBhcnQgOiBpbnRlZ2VyUGFydDtcbiAgICAgICAgY29uc3QgaXNaZXJvID0gIU51bWJlcihvbmx5TnVtYmVycyk7XG4gICAgICAgIGNvbnN0IG9wZXJhdG9yID0gcmF3VmFsdWUuaW5jbHVkZXMoXCItXCIpICYmICFpc1plcm8gPyBcIi1cIiA6IFwiXCI7XG5cbiAgICAgICAgcmV0dXJuIGAke29wZXJhdG9yfSR7Y3VycmVuY3lTeW1ib2x9ICR7bmV3VmFsdWV9YDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFRva2Vucyh2YWx1ZXM6IGFueSk6IElUb2tlbltdIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzQXJyYXkodmFsdWVzKSkgdGhyb3cgbmV3IEVycm9yKFwiVG8gdXNlIHRva2VucyBhbiBhcnJheSBtdXN0IGJlIGluZm9ybWVkXCIpO1xuICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG1heC1saW5lLWxlbmd0aFxuICAgICAgICBpZiAoIXRoaXMuaXNWYWxpZFRva2VuQXJyYXkodmFsdWVzKSkgdGhyb3cgbmV3IEVycm9yKFwiTm90IGEgdmFsaWQgdG9rZW4gYXJyYXkuIFRva2VuIGFycmF5IG11c3QgYmUgYSBwcmltaXRpdmUgdmFsdWVzIGFycmF5IG9yIGFuIG9iamVjdHMgd2l0aCBsYWJlbCBhdHRyaWJ1dGUgYXJyYXlcIik7XG5cbiAgICAgICAgaWYgKHRoaXMuaXNMYWJlbE9iamVjdEFycmF5KHZhbHVlcykpIHJldHVybiB2YWx1ZXM7XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlc1xuICAgICAgICAgICAgLmZpbHRlcigodmFsdWU6IGFueSkgPT4gdmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZSAhPT0gbnVsbClcbiAgICAgICAgICAgIC5tYXAoKHZhbHVlOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBsYWJlbCA9IHR5cGVvZiB2YWx1ZSA9PT0gXCJzeW1ib2xcIiA/IHZhbHVlLnRvU3RyaW5nKCkgOiBgJHt2YWx1ZX1gO1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGxhYmVsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNWYWxpZFRva2VuQXJyYXkodmFsdWVzOiBhbnlbXSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1ByaW1pdGl2ZVZhbHVlc0FycmF5KHZhbHVlcykgfHwgdGhpcy5pc0xhYmVsT2JqZWN0QXJyYXkodmFsdWVzKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzUHJpbWl0aXZlVmFsdWVzQXJyYXkodmFsdWVzOiBhbnlbXSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdmFsdWVzLmZpbHRlcih2YWx1ZSA9PiB2YWx1ZSAhPT0gT2JqZWN0KHZhbHVlKSkubGVuZ3RoID09PSB2YWx1ZXMubGVuZ3RoO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNMYWJlbE9iamVjdEFycmF5KHZhbHVlczogYW55W10pOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlcy5maWx0ZXIodmFsdWUgPT4gdmFsdWU/LmxhYmVsICE9PSBudWxsICYmIHZhbHVlPy5sYWJlbCAhPT0gdW5kZWZpbmVkKS5sZW5ndGggPT09IHZhbHVlcy5sZW5ndGg7XG4gICAgfVxuXG4gICAgcHVibGljIGlzQXJyYXkodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFNwbGl0dGVkU3RyaW5nKGNvbHVtbjogQ29sdW1uVmFsdWVzKTogeyB2YWx1ZTogc3RyaW5nLCBpc1VuaW5mb3JtZWQ6IGJvb2xlYW4sIHNlcGFyYXRvcjogc3RyaW5nIH1bXSB7XG4gICAgICAgIGNvbnN0IHsgY29sdW1uVmFsdWUsIHNlcGFyYXRvciwgdW5pbmZvcm1lZCB9ID0gY29sdW1uO1xuICAgICAgICBpZiAodHlwZW9mIGNvbHVtblZhbHVlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICBjb25zdCBzcGxpdHRlZFN0cmluZyA9IGNvbHVtblZhbHVlLnNwbGl0KHNlcGFyYXRvcik7XG4gICAgICAgICAgICByZXR1cm4gc3BsaXR0ZWRTdHJpbmcubWFwKChzdHJpbmcsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNMYXN0SW5kZXggPSBzcGxpdHRlZFN0cmluZy5sZW5ndGggLSAxID09PSBpbmRleDtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICBpc1VuaW5mb3JtZWQ6IHN0cmluZyA9PT0gdW5pbmZvcm1lZCxcbiAgICAgICAgICAgICAgICAgICAgc2VwYXJhdG9yOiAhaXNMYXN0SW5kZXggPyBzZXBhcmF0b3IgOiBcIlwiXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG59XG4iXX0=
|
|
225
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy90YWJsZS90YWJsZS1jb2x1bW4vdGFibGUtY29sdW1ucy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEcsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sS0FBSyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxTQUFTLEVBQWMsTUFBTSxtQ0FBbUMsQ0FBQztBQUMxRSxPQUFPLFNBQVMsTUFBTSxjQUFjLENBQUM7QUFJckMsT0FBTyxFQUtILG1CQUFtQixFQUV0QixNQUFNLFVBQVUsQ0FBQztBQU9sQjtJQVVJLCtCQUNZLGdCQUFrQyxFQUNsQyxTQUEyQixFQUNHLGtCQUFzQztRQUZwRSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQ0csdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUx6RSxxQkFBZ0IsR0FBbUIsRUFBRSxDQUFDO0lBTTFDLENBQUM7SUFFSiwyQ0FBVyxHQUFYLFVBQVksT0FBc0I7UUFDOUIsSUFBSSxDQUFDLDJCQUEyQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRU8sMkRBQTJCLEdBQW5DLFVBQW9DLE9BQXNCOztRQUN0RCxJQUFJLFFBQUMsT0FBTyxDQUFD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LFVBQVU7b0JBQ25DLFNBQVMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO2lCQUMzQyxDQUFDO1lBQ04sQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNMLENBQUM7O2dCQTlNNkIsZ0JBQWdCO2dCQUN2QixnQkFBZ0I7Z0RBQ2xDLE1BQU0sU0FBQyxvQkFBb0I7O0lBWGdCO1FBQS9DLFNBQVMsQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQztrRUFBbUM7SUFFekU7UUFBUixLQUFLLEVBQUU7MERBQW9CO0lBQ25CO1FBQVIsS0FBSyxFQUFFOzJEQUFnQjtJQUNmO1FBQVIsS0FBSyxFQUFFO3lEQUFtQztJQU5sQyxxQkFBcUI7UUFMakMsU0FBUyxDQUFDO1lBQ1AsbTZDQUE2QztZQUU3QyxRQUFRLEVBQUUsaUJBQWlCOztTQUM5QixDQUFDO1FBY08sV0FBQSxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQTtPQWJ4QixxQkFBcUIsQ0EyTmpDO0lBQUQsNEJBQUM7Q0FBQSxBQTNORCxJQTJOQztTQTNOWSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgVGVtcGxhdGVSZWYsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgVmlld0NoaWxkIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xuaW1wb3J0ICogYXMgbW9tZW50IGZyb20gXCJtb21lbnRcIjtcbmltcG9ydCB7IGFwcGx5TWFzaywgTWFza0NvbmZpZyB9IGZyb20gXCJAc2VuaW9yc2lzdGVtYXMvbmcyLWN1cnJlbmN5LW1hc2tcIjtcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSBcImJpZ251bWJlci5qc1wiO1xuXG5pbXBvcnQgeyBIb3N0UHJvamVjdENvbmZpZ3MgfSBmcm9tIFwiLi4vLi4vLi4vYW5ndWxhci1jb21wb25lbnRzLm1vZHVsZVwiO1xuaW1wb3J0IHsgSVRva2VuIH0gZnJvbSBcIi4uLy4uL3Rva2VuLWxpc3RcIjtcbmltcG9ydCB7XG4gICAgQmFkZ2VDb2x1bW4sXG4gICAgQmFkZ2VDb25maWdzLFxuICAgIENvbHVtbixcbiAgICBDb2x1bW5WYWx1ZXMsXG4gICAgRW51bUNvbHVtbkZpZWxkVHlwZSxcbiAgICBUYWJsZUNvbHVtbkxvY2FsZU9wdGlvbnNcbn0gZnJvbSBcIi4vbW9kZWxzXCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHRlbXBsYXRlVXJsOiBcIi4vdGFibGUtY29sdW1ucy5jb21wb25lbnQuaHRtbFwiLFxuICAgIHN0eWxlVXJsczogW1wiLi90YWJsZS1jb2x1bW5zLmNvbXBvbmVudC5zY3NzXCJdLFxuICAgIHNlbGVjdG9yOiBcInMtdGFibGUtY29sdW1uc1wiLFxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUNvbHVtbnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuXG4gICAgQFZpZXdDaGlsZChcImNvbHVtbnNUZW1wbGF0ZVwiLCB7IHN0YXRpYzogdHJ1ZSB9KSBjb2x1bW5zVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBASW5wdXQoKSBjb2x1bW5zITogQ29sdW1uW107XG4gICAgQElucHV0KCkgcm93VmFsdWUhOiBhbnk7XG4gICAgQElucHV0KCkgbG9jYWxlITogVGFibGVDb2x1bW5Mb2NhbGVPcHRpb25zO1xuXG4gICAgcHVibGljIGZvcm1hdHRlZENvbHVtbnM6IENvbHVtblZhbHVlc1tdID0gW107XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgICAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgQEluamVjdChcImhvc3RQcm9qZWN0Q29uZmlnc1wiKSBwcml2YXRlIGhvc3RQcm9qZWN0Q29uZmlnczogSG9zdFByb2plY3RDb25maWdzXG4gICAgKSB7fVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbGlkYXRlQ29tcG9uZW50QXR0cmlidXRlcyhjaGFuZ2VzKTtcbiAgICAgICAgdGhpcy5jcmVhdGVDb2x1bW5zVGVtcGxhdGUoY2hhbmdlcyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB2YWxpZGF0ZUNvbXBvbmVudEF0dHJpYnV0ZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoIWNoYW5nZXMuY29sdW1ucz8uY3VycmVudFZhbHVlKSB0aHJvdyBuZXcgRXJyb3IoXCJUaGUgJ2NvbHVtbnMnIGF0dHJpYnV0ZSBtdXN0IGJlIGluZm9ybWVkIVwiKTtcbiAgICAgICAgaWYgKCFjaGFuZ2VzLnJvd1ZhbHVlPy5jdXJyZW50VmFsdWUpIHRocm93IG5ldyBFcnJvcihcIlRoZSAncm93VmFsdWUnIGF0dHJpYnV0ZSBtdXN0IGJlIGluZm9ybWVkIVwiKTtcbiAgICAgICAgaWYgKCFjaGFuZ2VzLmxvY2FsZT8uY3VycmVudFZhbHVlKSB0aHJvdyBuZXcgRXJyb3IoXCJUaGUgJ2xvY2FsZScgYXR0cmlidXRlIG11c3QgYmUgaW5mb3JtZWQhXCIpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlQ29sdW1uc1RlbXBsYXRlKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG5cbiAgICAgICAgY29uc3QgY29sdW1uczogQ29sdW1uW10gPSBjaGFuZ2VzLmNvbHVtbnMuY3VycmVudFZhbHVlO1xuICAgICAgICBjb25zdCByb3dWYWx1ZTogb2JqZWN0ID0gY2hhbmdlcy5yb3dWYWx1ZS5jdXJyZW50VmFsdWU7XG4gICAgICAgIGNvbnN0IGxvY2FsZTogVGFibGVDb2x1bW5Mb2NhbGVPcHRpb25zID0gY2hhbmdlcy5sb2NhbGUuY3VycmVudFZhbHVlO1xuXG4gICAgICAgIGNvbHVtbnMuZm9yRWFjaCgoY29sdW1uKSA9PiB0aGlzLmZvcm1hdHRlZENvbHVtbnMucHVzaCh0aGlzLmdldENvbHVtblZhbHVlKGNvbHVtbiwgcm93VmFsdWUsIGxvY2FsZSkpKTtcbiAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLmNvbHVtbnNUZW1wbGF0ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDb2x1bW5WYWx1ZShjb2x1bW46IENvbHVtbiwgcm93VmFsdWU6IG9iamVjdCwgbG9jYWxlOiBUYWJsZUNvbHVtbkxvY2FsZU9wdGlvbnMpOiBDb2x1bW5WYWx1ZXMge1xuICAgICAgICBjb25zdCBwcmVmaXggPSBjb2x1bW4ucHJlZml4XG4gICAgICAgICAgICA/IGNvbHVtbi5wcmVmaXhcbiAgICAgICAgICAgIDogYCR7dGhpcy5ob3N0UHJvamVjdENvbmZpZ3MuZG9tYWlufS4ke3RoaXMuaG9zdFByb2plY3RDb25maWdzLnNlcnZpY2V9LmA7XG4gICAgICAgIGNvbnN0IHNlcGFyYXRvciA9IGNvbHVtbi5zZXBhcmF0b3JcbiAgICAgICAgICAgID8gY29sdW1uLnNlcGFyYXRvclxuICAgICAgICAgICAgOiBcIiAtIFwiO1xuICAgICAgICBjb25zdCB1bmluZm9ybWVkOiBzdHJpbmcgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KHByZWZpeCArIFwiZW1wdHlfbGFiZWxcIik7XG4gICAgICAgIGNvbnN0IHN0eWxlID0gY29sdW1uLnN0eWxlO1xuICAgICAgICBsZXQgYmFkZ2VDbGFzczogQmFkZ2VDb2x1bW4gPSB7XG4gICAgICAgICAgICBcInNkcy1iYWRnZVwiOiBmYWxzZVxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IGNvbHVtblZhbHVlOiBhbnlbXSA9IGNvbHVtbi5hdHRyaWJ1dGVzXG4gICAgICAgICAgICAubWFwKChhdHRyaWJ1dGU6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBhdHRyaWJ1dGVWYWx1ZSE6IGFueTtcblxuICAgICAgICAgICAgICAgIGF0dHJpYnV0ZVxuICAgICAgICAgICAgICAgICAgICAuc3BsaXQoXCIvXCIpXG4gICAgICAgICAgICAgICAgICAgIC5mb3JFYWNoKCh2YWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWF0dHJpYnV0ZVZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnNwbGl0KFwiLlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZm9yRWFjaCgodmFsOiBzdHJpbmcsIGkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyb3dWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZVZhbHVlID0gcm93VmFsdWVbdmFsXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGF0dHJpYnV0ZVZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZVZhbHVlID0gYXR0cmlidXRlVmFsdWVbdmFsXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgaWYgKGF0dHJpYnV0ZVZhbHVlID09PSBudWxsIHx8IGF0dHJpYnV0ZVZhbHVlID09PSB1bmRlZmluZWQgfHwgKHRoaXMuaXNBcnJheShhdHRyaWJ1dGVWYWx1ZSkgJiYgIWF0dHJpYnV0ZVZhbHVlLmxlbmd0aCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVuaW5mb3JtZWQ7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbnVtYmVyQ29uZmlnczogTWFza0NvbmZpZyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLmxvY2FsZS5udW1iZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICBzY2FsZTogY29sdW1uLnNjYWxlID8gdGhpcy5nZXRDb2x1bW5TY2FsZShjb2x1bW4uc2NhbGUpIDogbG9jYWxlLm51bWJlci5zY2FsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHByZWZpeDogYCR7bG9jYWxlLm51bWJlci5jdXJyZW5jeVN5bWJvbH0gYFxuICAgICAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoY29sdW1uLnR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgRW51bUNvbHVtbkZpZWxkVHlwZS5FTlVNOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb2x1bW4uYmFkZ2VDb25maWdzICYmIGNvbHVtbi5iYWRnZUNvbmZpZ3MubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhZGdlQ2xhc3MgPSB0aGlzLmdldEJhZGdlQ2xhc3MoYXR0cmlidXRlVmFsdWUsIGNvbHVtbi5iYWRnZUNvbmZpZ3MpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuaW5zdGFudChjb2x1bW4uZW51bVByZWZpeCArIGF0dHJpYnV0ZVZhbHVlLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgRW51bUNvbHVtbkZpZWxkVHlwZS5DVVJSRU5DWTpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYXBwbHlNYXNrKGF0dHJpYnV0ZVZhbHVlLCBudW1iZXJDb25maWdzLCB0aGlzLmlzTnVtYmVyKGF0dHJpYnV0ZVZhbHVlKSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgRW51bUNvbHVtbkZpZWxkVHlwZS5EQVRFOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGVGb3JtYXQgPSBjb2x1bW4uZGF0ZUZvcm1hdCA/IGNvbHVtbi5kYXRlRm9ybWF0IDogbG9jYWxlLmNhbGVuZGFyLmRhdGVGb3JtYXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1vbWVudChhdHRyaWJ1dGVWYWx1ZSkuZm9ybWF0KGRhdGVGb3JtYXQpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIEVudW1Db2x1bW5GaWVsZFR5cGUuQk9PTEVBTjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGF0dHJpYnV0ZVZhbHVlID8gXCJ5ZXNcIiA6IFwibm9cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuaW5zdGFudChwcmVmaXggKyB2YWx1ZSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgRW51bUNvbHVtbkZpZWxkVHlwZS5MSU5LOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBFbnVtQ29sdW1uRmllbGRUeXBlLlNUUklORzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYXR0cmlidXRlVmFsdWU7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgRW51bUNvbHVtbkZpZWxkVHlwZS5OVU1CRVI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyQ29uZmlncy5wcmVmaXggPSBcIlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBhcHBseU1hc2soYXR0cmlidXRlVmFsdWUsIG51bWJlckNvbmZpZ3MsIHRoaXMuaXNOdW1iZXIoYXR0cmlidXRlVmFsdWUpKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBFbnVtQ29sdW1uRmllbGRUeXBlLlRPS0VOUzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRUb2tlbnMoYXR0cmlidXRlVmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgdW5pZmllZENvbHVtblZhbHVlcyA9IGNvbHVtblZhbHVlLmpvaW4oc2VwYXJhdG9yKTtcbiAgICAgICAgY29uc3QgdW5pbmZvcm1lZE51bWJlciA9IHVuaWZpZWRDb2x1bW5WYWx1ZXNcbiAgICAgICAgICAgIC5zcGxpdChzZXBhcmF0b3IpXG4gICAgICAgICAgICAuZmlsdGVyKHZhbHVlID0+IHZhbHVlID09PSB1bmluZm9ybWVkKS5sZW5ndGg7XG5cbiAgICAgICAgbGV0IGZvcm1hdHRlZENvbHVtblZhbHVlOiBzdHJpbmcgfCBJVG9rZW5bXTtcbiAgICAgICAgaWYgKHVuaW5mb3JtZWROdW1iZXIgPT09IGNvbHVtbi5hdHRyaWJ1dGVzLmxlbmd0aCkge1xuICAgICAgICAgICAgZm9ybWF0dGVkQ29sdW1uVmFsdWUgPSB1bmluZm9ybWVkO1xuICAgICAgICB9IGVsc2UgaWYgKGNvbHVtbi50eXBlID09PSBFbnVtQ29sdW1uRmllbGRUeXBlLlRPS0VOUykge1xuICAgICAgICAgICAgZm9ybWF0dGVkQ29sdW1uVmFsdWUgPSBbXS5jb25jYXQuYXBwbHkoW10sIGNvbHVtblZhbHVlLmZpbHRlcih2YWx1ZXMgPT4gdmFsdWVzICE9PSB1bmluZm9ybWVkKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBmb3JtYXR0ZWRDb2x1bW5WYWx1ZSA9IHVuaWZpZWRDb2x1bW5WYWx1ZXM7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgc3R5bGUsXG4gICAgICAgICAgICBjb2x1bW5WYWx1ZTogZm9ybWF0dGVkQ29sdW1uVmFsdWUsXG4gICAgICAgICAgICBiYWRnZUNsYXNzLFxuICAgICAgICAgICAgc2VwYXJhdG9yLFxuICAgICAgICAgICAgdW5pbmZvcm1lZCxcbiAgICAgICAgICAgIHR5cGU6IGNvbHVtbi50eXBlLFxuICAgICAgICAgICAgdG9vbHRpcDogdGhpcy5nZXRDb2x1bW5Ub29sdGlwKGNvbHVtbi50b29sdGlwKSxcbiAgICAgICAgICAgIG9uTGlua0NsaWNrOiBjb2x1bW4ub25MaW5rQ2xpY2ssXG4gICAgICAgICAgICBvbkNvbHVtbkNsaWNrOiBjb2x1bW4ub25Db2x1bW5DbGlja1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0QmFkZ2VDbGFzcyh2YWx1ZTogc3RyaW5nLCBiYWRnZUNvbmZpZ3M6IEJhZGdlQ29uZmlnc1tdKTogQmFkZ2VDb2x1bW4ge1xuICAgICAgICBjb25zdCBiYWRnZUNvbHVtbiA9IHtcbiAgICAgICAgICAgIFwic2RzLWJhZGdlXCI6IHRydWVcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgY29sb3IgPSAgYmFkZ2VDb25maWdzLmZpbmQoYmFkZ2VDb25maWcgPT4gYmFkZ2VDb25maWcuZW51bVZhbHVlID09PSB2YWx1ZSk/LmNvbG9yLnZhbHVlT2YoKTtcbiAgICAgICAgYmFkZ2VDb2x1bW5bY29sb3JdID0gdHJ1ZTtcblxuICAgICAgICByZXR1cm4gYmFkZ2VDb2x1bW47XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDb2x1bW5TY2FsZShzY2FsZTogbnVtYmVyIHwgKChyb3dWYWx1ZTogYW55KSA9PiBudW1iZXIpKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKHR5cGVvZiBzY2FsZSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICByZXR1cm4gc2NhbGUodGhpcy5yb3dWYWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHNjYWxlO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Q29sdW1uVG9vbHRpcCh0b29sdGlwOiBzdHJpbmcgfCAoKHJvd1ZhbHVlOiBhbnkpID0+IHN0cmluZykpOiBzdHJpbmcge1xuICAgICAgICBpZiAodG9vbHRpcCAhPT0gdW5kZWZpbmVkICYmIHRvb2x0aXAgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdG9vbHRpcCA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRvb2x0aXAodGhpcy5yb3dWYWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdG9vbHRpcDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaXNOdW1iZXIodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIShuZXcgQmlnTnVtYmVyKHZhbHVlKS5pc05hTigpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFRva2Vucyh2YWx1ZXM6IGFueSk6IElUb2tlbltdIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzQXJyYXkodmFsdWVzKSkgdGhyb3cgbmV3IEVycm9yKFwiVG8gdXNlIHRva2VucyBhbiBhcnJheSBtdXN0IGJlIGluZm9ybWVkXCIpO1xuICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG1heC1saW5lLWxlbmd0aFxuICAgICAgICBpZiAoIXRoaXMuaXNWYWxpZFRva2VuQXJyYXkodmFsdWVzKSkgdGhyb3cgbmV3IEVycm9yKFwiTm90IGEgdmFsaWQgdG9rZW4gYXJyYXkuIFRva2VuIGFycmF5IG11c3QgYmUgYSBwcmltaXRpdmUgdmFsdWVzIGFycmF5IG9yIGFuIG9iamVjdHMgd2l0aCBsYWJlbCBhdHRyaWJ1dGUgYXJyYXlcIik7XG5cbiAgICAgICAgaWYgKHRoaXMuaXNMYWJlbE9iamVjdEFycmF5KHZhbHVlcykpIHJldHVybiB2YWx1ZXM7XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlc1xuICAgICAgICAgICAgLmZpbHRlcigodmFsdWU6IGFueSkgPT4gdmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZSAhPT0gbnVsbClcbiAgICAgICAgICAgIC5tYXAoKHZhbHVlOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBsYWJlbCA9IHR5cGVvZiB2YWx1ZSA9PT0gXCJzeW1ib2xcIiA/IHZhbHVlLnRvU3RyaW5nKCkgOiBgJHt2YWx1ZX1gO1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGxhYmVsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNWYWxpZFRva2VuQXJyYXkodmFsdWVzOiBhbnlbXSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1ByaW1pdGl2ZVZhbHVlc0FycmF5KHZhbHVlcykgfHwgdGhpcy5pc0xhYmVsT2JqZWN0QXJyYXkodmFsdWVzKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzUHJpbWl0aXZlVmFsdWVzQXJyYXkodmFsdWVzOiBhbnlbXSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdmFsdWVzLmZpbHRlcih2YWx1ZSA9PiB2YWx1ZSAhPT0gT2JqZWN0KHZhbHVlKSkubGVuZ3RoID09PSB2YWx1ZXMubGVuZ3RoO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNMYWJlbE9iamVjdEFycmF5KHZhbHVlczogYW55W10pOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlcy5maWx0ZXIodmFsdWUgPT4gdmFsdWU/LmxhYmVsICE9PSBudWxsICYmIHZhbHVlPy5sYWJlbCAhPT0gdW5kZWZpbmVkKS5sZW5ndGggPT09IHZhbHVlcy5sZW5ndGg7XG4gICAgfVxuXG4gICAgcHVibGljIGlzQXJyYXkodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFNwbGl0dGVkU3RyaW5nKGNvbHVtbjogQ29sdW1uVmFsdWVzKTogeyB2YWx1ZTogc3RyaW5nLCBpc1VuaW5mb3JtZWQ6IGJvb2xlYW4sIHNlcGFyYXRvcjogc3RyaW5nIH1bXSB7XG4gICAgICAgIGNvbnN0IHsgY29sdW1uVmFsdWUsIHNlcGFyYXRvciwgdW5pbmZvcm1lZCB9ID0gY29sdW1uO1xuICAgICAgICBpZiAodHlwZW9mIGNvbHVtblZhbHVlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICBjb25zdCBzcGxpdHRlZFN0cmluZyA9IGNvbHVtblZhbHVlLnNwbGl0KHNlcGFyYXRvcik7XG4gICAgICAgICAgICByZXR1cm4gc3BsaXR0ZWRTdHJpbmcubWFwKChzdHJpbmcsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNMYXN0SW5kZXggPSBzcGxpdHRlZFN0cmluZy5sZW5ndGggLSAxID09PSBpbmRleDtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICBpc1VuaW5mb3JtZWQ6IHN0cmluZyA9PT0gdW5pbmZvcm1lZCxcbiAgICAgICAgICAgICAgICAgICAgc2VwYXJhdG9yOiAhaXNMYXN0SW5kZXggPyBzZXBhcmF0b3IgOiBcIlwiXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG59XG4iXX0=
|
|
@@ -2,36 +2,38 @@
|
|
|
2
2
|
* Generated bundle index. Do not edit.
|
|
3
3
|
*/
|
|
4
4
|
export * from './public-api';
|
|
5
|
-
export { AutocompleteFieldComponent as
|
|
6
|
-
export { BaseFieldComponent as
|
|
7
|
-
export { BignumberFieldComponent as
|
|
8
|
-
export { BooleanFieldComponent as
|
|
9
|
-
export { CalendarFieldComponent as
|
|
10
|
-
export { ChipsFieldComponent as
|
|
11
|
-
export { CurrencyFieldComponent as
|
|
12
|
-
export { FileUploadComponent as
|
|
13
|
-
export { LookupFieldComponent as
|
|
14
|
-
export { NumberFieldComponent as
|
|
15
|
-
export { RadioButtonComponent as
|
|
16
|
-
export { SelectFieldComponent as
|
|
17
|
-
export { TextAreaFieldComponent as
|
|
18
|
-
export { TextFieldComponent as
|
|
19
|
-
export { RowComponent as
|
|
20
|
-
export { FieldsetComponent as
|
|
21
|
-
export { SectionComponent as
|
|
22
|
-
export { DecimalField as
|
|
23
|
-
export { DynamicFieldComponent as
|
|
24
|
-
export { DynamicFormDirective as
|
|
25
|
-
export { InfiniteScrollDirective as
|
|
26
|
-
export { InfiniteScrollModule as
|
|
27
|
-
export { InfoSignModule as
|
|
28
|
-
export { InfoSignComponent as
|
|
29
|
-
export { NumberLocaleOptions as
|
|
5
|
+
export { AutocompleteFieldComponent as ɵg } from './components/dynamic-form/components/fields/autocomplete/autocomplete-field.component';
|
|
6
|
+
export { BaseFieldComponent as ɵl } from './components/dynamic-form/components/fields/base-field-component';
|
|
7
|
+
export { BignumberFieldComponent as ɵs } from './components/dynamic-form/components/fields/bignumber/number-field.component';
|
|
8
|
+
export { BooleanFieldComponent as ɵh } from './components/dynamic-form/components/fields/boolean/boolean-field.component';
|
|
9
|
+
export { CalendarFieldComponent as ɵi } from './components/dynamic-form/components/fields/calendar/calendar-field.component';
|
|
10
|
+
export { ChipsFieldComponent as ɵj } from './components/dynamic-form/components/fields/chips/chips-field.component';
|
|
11
|
+
export { CurrencyFieldComponent as ɵk } from './components/dynamic-form/components/fields/currency/currency-field.component';
|
|
12
|
+
export { FileUploadComponent as ɵp } from './components/dynamic-form/components/fields/file-upload/file-upload.component';
|
|
13
|
+
export { LookupFieldComponent as ɵq } from './components/dynamic-form/components/fields/lookup/lookup-field.component';
|
|
14
|
+
export { NumberFieldComponent as ɵr } from './components/dynamic-form/components/fields/number/number-field.component';
|
|
15
|
+
export { RadioButtonComponent as ɵt } from './components/dynamic-form/components/fields/radio-button/radio-button-field.component';
|
|
16
|
+
export { SelectFieldComponent as ɵw } from './components/dynamic-form/components/fields/select/select-field.component';
|
|
17
|
+
export { TextAreaFieldComponent as ɵx } from './components/dynamic-form/components/fields/text-area/text-area-field.component';
|
|
18
|
+
export { TextFieldComponent as ɵy } from './components/dynamic-form/components/fields/text/text-field.component';
|
|
19
|
+
export { RowComponent as ɵu } from './components/dynamic-form/components/grid/row/row.component';
|
|
20
|
+
export { FieldsetComponent as ɵo } from './components/dynamic-form/components/structure/fieldset/fieldset.component';
|
|
21
|
+
export { SectionComponent as ɵv } from './components/dynamic-form/components/structure/section/section.component';
|
|
22
|
+
export { DecimalField as ɵba } from './components/dynamic-form/configurations/fields/decimal-field';
|
|
23
|
+
export { DynamicFieldComponent as ɵm } from './components/dynamic-form/dynamic-field.component';
|
|
24
|
+
export { DynamicFormDirective as ɵn } from './components/dynamic-form/dynamic-form.directive';
|
|
25
|
+
export { InfiniteScrollDirective as ɵbi } from './components/infinite-scroll/infinite-scroll.directive';
|
|
26
|
+
export { InfiniteScrollModule as ɵbh } from './components/infinite-scroll/infinite-scroll.module';
|
|
27
|
+
export { InfoSignModule as ɵf } from './components/info-sign';
|
|
28
|
+
export { InfoSignComponent as ɵbe } from './components/info-sign/info-sign.component';
|
|
29
|
+
export { NumberLocaleOptions as ɵbf } from './components/locale/options';
|
|
30
|
+
export { LocalizedBignumberImpurePipe as ɵc } from './components/locale/pipes/localized-bignumber-impure.pipe';
|
|
31
|
+
export { LocalizedBignumberPipe as ɵb } from './components/locale/pipes/localized-bignumber.pipe';
|
|
30
32
|
export { LocalizedCurrencyImpurePipe as ɵa } from './components/locale/pipes/localized-currency-impure.pipe';
|
|
31
|
-
export { FooterComponent as
|
|
32
|
-
export { HeaderComponent as
|
|
33
|
-
export { StructureModule as
|
|
34
|
-
export { TableColumnsComponent as
|
|
35
|
-
export { ThumbnailService as
|
|
36
|
-
export { TokenListModule as
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
export { FooterComponent as ɵbd } from './components/structure/footer.component';
|
|
34
|
+
export { HeaderComponent as ɵbc } from './components/structure/header.component';
|
|
35
|
+
export { StructureModule as ɵbb } from './components/structure/structure.module';
|
|
36
|
+
export { TableColumnsComponent as ɵe } from './components/table/table-column/table-columns.component';
|
|
37
|
+
export { ThumbnailService as ɵbg } from './components/thumbnail/thumbnail.service';
|
|
38
|
+
export { TokenListModule as ɵd } from './components/token-list';
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuaW9yc2lzdGVtYXMtYW5ndWxhci1jb21wb25lbnRzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbInNlbmlvcnNpc3RlbWFzLWFuZ3VsYXItY29tcG9uZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQywwQkFBMEIsSUFBSSxFQUFFLEVBQUMsTUFBTSx1RkFBdUYsQ0FBQztBQUN2SSxPQUFPLEVBQUMsa0JBQWtCLElBQUksRUFBRSxFQUFDLE1BQU0sa0VBQWtFLENBQUM7QUFDMUcsT0FBTyxFQUFDLHVCQUF1QixJQUFJLEVBQUUsRUFBQyxNQUFNLDhFQUE4RSxDQUFDO0FBQzNILE9BQU8sRUFBQyxxQkFBcUIsSUFBSSxFQUFFLEVBQUMsTUFBTSw2RUFBNkUsQ0FBQztBQUN4SCxPQUFPLEVBQUMsc0JBQXNCLElBQUksRUFBRSxFQUFDLE1BQU0sK0VBQStFLENBQUM7QUFDM0gsT0FBTyxFQUFDLG1CQUFtQixJQUFJLEVBQUUsRUFBQyxNQUFNLHlFQUF5RSxDQUFDO0FBQ2xILE9BQU8sRUFBQyxzQkFBc0IsSUFBSSxFQUFFLEVBQUMsTUFBTSwrRUFBK0UsQ0FBQztBQUMzSCxPQUFPLEVBQUMsbUJBQW1CLElBQUksRUFBRSxFQUFDLE1BQU0sK0VBQStFLENBQUM7QUFDeEgsT0FBTyxFQUFDLG9CQUFvQixJQUFJLEVBQUUsRUFBQyxNQUFNLDJFQUEyRSxDQUFDO0FBQ3JILE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQUMsTUFBTSwyRUFBMkUsQ0FBQztBQUNySCxPQUFPLEVBQUMsb0JBQW9CLElBQUksRUFBRSxFQUFDLE1BQU0sdUZBQXVGLENBQUM7QUFDakksT0FBTyxFQUFDLG9CQUFvQixJQUFJLEVBQUUsRUFBQyxNQUFNLDJFQUEyRSxDQUFDO0FBQ3JILE9BQU8sRUFBQyxzQkFBc0IsSUFBSSxFQUFFLEVBQUMsTUFBTSxpRkFBaUYsQ0FBQztBQUM3SCxPQUFPLEVBQUMsa0JBQWtCLElBQUksRUFBRSxFQUFDLE1BQU0sdUVBQXVFLENBQUM7QUFDL0csT0FBTyxFQUFDLFlBQVksSUFBSSxFQUFFLEVBQUMsTUFBTSw2REFBNkQsQ0FBQztBQUMvRixPQUFPLEVBQUMsaUJBQWlCLElBQUksRUFBRSxFQUFDLE1BQU0sNEVBQTRFLENBQUM7QUFDbkgsT0FBTyxFQUFDLGdCQUFnQixJQUFJLEVBQUUsRUFBQyxNQUFNLDBFQUEwRSxDQUFDO0FBQ2hILE9BQU8sRUFBQyxZQUFZLElBQUksR0FBRyxFQUEwQixNQUFNLCtEQUErRCxDQUFDO0FBQzNILE9BQU8sRUFBQyxxQkFBcUIsSUFBSSxFQUFFLEVBQUMsTUFBTSxtREFBbUQsQ0FBQztBQUM5RixPQUFPLEVBQUMsb0JBQW9CLElBQUksRUFBRSxFQUFDLE1BQU0sa0RBQWtELENBQUM7QUFDNUYsT0FBTyxFQUFDLHVCQUF1QixJQUFJLEdBQUcsRUFBQyxNQUFNLHdEQUF3RCxDQUFDO0FBQ3RHLE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxHQUFHLEVBQUMsTUFBTSxxREFBcUQsQ0FBQztBQUNoRyxPQUFPLEVBQUMsY0FBYyxJQUFJLEVBQUUsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBQyxpQkFBaUIsSUFBSSxHQUFHLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUNwRixPQUFPLEVBQUMsbUJBQW1CLElBQUksR0FBRyxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDdkUsT0FBTyxFQUFDLDRCQUE0QixJQUFJLEVBQUUsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBQzdHLE9BQU8sRUFBQyxzQkFBc0IsSUFBSSxFQUFFLEVBQUMsTUFBTSxvREFBb0QsQ0FBQztBQUNoRyxPQUFPLEVBQUMsMkJBQTJCLElBQUksRUFBRSxFQUFDLE1BQU0sMERBQTBELENBQUM7QUFDM0csT0FBTyxFQUFDLGVBQWUsSUFBSSxHQUFHLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUMvRSxPQUFPLEVBQUMsZUFBZSxJQUFJLEdBQUcsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQy9FLE9BQU8sRUFBQyxlQUFlLElBQUksR0FBRyxFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDL0UsT0FBTyxFQUFDLHFCQUFxQixJQUFJLEVBQUUsRUFBQyxNQUFNLHlEQUF5RCxDQUFDO0FBQ3BHLE9BQU8sRUFBQyxnQkFBZ0IsSUFBSSxHQUFHLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUNqRixPQUFPLEVBQUMsZUFBZSxJQUFJLEVBQUUsRUFBQyxNQUFNLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuXG5leHBvcnQge0F1dG9jb21wbGV0ZUZpZWxkQ29tcG9uZW50IGFzIMm1Z30gZnJvbSAnLi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2ZpZWxkcy9hdXRvY29tcGxldGUvYXV0b2NvbXBsZXRlLWZpZWxkLmNvbXBvbmVudCc7XG5leHBvcnQge0Jhc2VGaWVsZENvbXBvbmVudCBhcyDJtWx9IGZyb20gJy4vY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9maWVsZHMvYmFzZS1maWVsZC1jb21wb25lbnQnO1xuZXhwb3J0IHtCaWdudW1iZXJGaWVsZENvbXBvbmVudCBhcyDJtXN9IGZyb20gJy4vY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9maWVsZHMvYmlnbnVtYmVyL251bWJlci1maWVsZC5jb21wb25lbnQnO1xuZXhwb3J0IHtCb29sZWFuRmllbGRDb21wb25lbnQgYXMgybVofSBmcm9tICcuL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvZmllbGRzL2Jvb2xlYW4vYm9vbGVhbi1maWVsZC5jb21wb25lbnQnO1xuZXhwb3J0IHtDYWxlbmRhckZpZWxkQ29tcG9uZW50IGFzIMm1aX0gZnJvbSAnLi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2ZpZWxkcy9jYWxlbmRhci9jYWxlbmRhci1maWVsZC5jb21wb25lbnQnO1xuZXhwb3J0IHtDaGlwc0ZpZWxkQ29tcG9uZW50IGFzIMm1an0gZnJvbSAnLi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2ZpZWxkcy9jaGlwcy9jaGlwcy1maWVsZC5jb21wb25lbnQnO1xuZXhwb3J0IHtDdXJyZW5jeUZpZWxkQ29tcG9uZW50IGFzIMm1a30gZnJvbSAnLi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2ZpZWxkcy9jdXJyZW5jeS9jdXJyZW5jeS1maWVsZC5jb21wb25lbnQnO1xuZXhwb3J0IHtGaWxlVXBsb2FkQ29tcG9uZW50IGFzIMm1cH0gZnJvbSAnLi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2ZpZWxkcy9maWxlLXVwbG9hZC9maWxlLXVwbG9hZC5jb21wb25lbnQnO1xuZXhwb3J0IHtMb29rdXBGaWVsZENvbXBvbmVudCBhcyDJtXF9IGZyb20gJy4vY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9maWVsZHMvbG9va3VwL2xvb2t1cC1maWVsZC5jb21wb25lbnQnO1xuZXhwb3J0IHtOdW1iZXJGaWVsZENvbXBvbmVudCBhcyDJtXJ9IGZyb20gJy4vY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9maWVsZHMvbnVtYmVyL251bWJlci1maWVsZC5jb21wb25lbnQnO1xuZXhwb3J0IHtSYWRpb0J1dHRvbkNvbXBvbmVudCBhcyDJtXR9IGZyb20gJy4vY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9maWVsZHMvcmFkaW8tYnV0dG9uL3JhZGlvLWJ1dHRvbi1maWVsZC5jb21wb25lbnQnO1xuZXhwb3J0IHtTZWxlY3RGaWVsZENvbXBvbmVudCBhcyDJtXd9IGZyb20gJy4vY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9maWVsZHMvc2VsZWN0L3NlbGVjdC1maWVsZC5jb21wb25lbnQnO1xuZXhwb3J0IHtUZXh0QXJlYUZpZWxkQ29tcG9uZW50IGFzIMm1eH0gZnJvbSAnLi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2ZpZWxkcy90ZXh0LWFyZWEvdGV4dC1hcmVhLWZpZWxkLmNvbXBvbmVudCc7XG5leHBvcnQge1RleHRGaWVsZENvbXBvbmVudCBhcyDJtXl9IGZyb20gJy4vY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9maWVsZHMvdGV4dC90ZXh0LWZpZWxkLmNvbXBvbmVudCc7XG5leHBvcnQge1Jvd0NvbXBvbmVudCBhcyDJtXV9IGZyb20gJy4vY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9ncmlkL3Jvdy9yb3cuY29tcG9uZW50JztcbmV4cG9ydCB7RmllbGRzZXRDb21wb25lbnQgYXMgybVvfSBmcm9tICcuL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvc3RydWN0dXJlL2ZpZWxkc2V0L2ZpZWxkc2V0LmNvbXBvbmVudCc7XG5leHBvcnQge1NlY3Rpb25Db21wb25lbnQgYXMgybV2fSBmcm9tICcuL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvc3RydWN0dXJlL3NlY3Rpb24vc2VjdGlvbi5jb21wb25lbnQnO1xuZXhwb3J0IHtEZWNpbWFsRmllbGQgYXMgybViYSxEZWNpbWFsRmllbGRDb25maWcgYXMgybV6fSBmcm9tICcuL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbmZpZ3VyYXRpb25zL2ZpZWxkcy9kZWNpbWFsLWZpZWxkJztcbmV4cG9ydCB7RHluYW1pY0ZpZWxkQ29tcG9uZW50IGFzIMm1bX0gZnJvbSAnLi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9keW5hbWljLWZpZWxkLmNvbXBvbmVudCc7XG5leHBvcnQge0R5bmFtaWNGb3JtRGlyZWN0aXZlIGFzIMm1bn0gZnJvbSAnLi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9keW5hbWljLWZvcm0uZGlyZWN0aXZlJztcbmV4cG9ydCB7SW5maW5pdGVTY3JvbGxEaXJlY3RpdmUgYXMgybViaX0gZnJvbSAnLi9jb21wb25lbnRzL2luZmluaXRlLXNjcm9sbC9pbmZpbml0ZS1zY3JvbGwuZGlyZWN0aXZlJztcbmV4cG9ydCB7SW5maW5pdGVTY3JvbGxNb2R1bGUgYXMgybViaH0gZnJvbSAnLi9jb21wb25lbnRzL2luZmluaXRlLXNjcm9sbC9pbmZpbml0ZS1zY3JvbGwubW9kdWxlJztcbmV4cG9ydCB7SW5mb1NpZ25Nb2R1bGUgYXMgybVmfSBmcm9tICcuL2NvbXBvbmVudHMvaW5mby1zaWduJztcbmV4cG9ydCB7SW5mb1NpZ25Db21wb25lbnQgYXMgybViZX0gZnJvbSAnLi9jb21wb25lbnRzL2luZm8tc2lnbi9pbmZvLXNpZ24uY29tcG9uZW50JztcbmV4cG9ydCB7TnVtYmVyTG9jYWxlT3B0aW9ucyBhcyDJtWJmfSBmcm9tICcuL2NvbXBvbmVudHMvbG9jYWxlL29wdGlvbnMnO1xuZXhwb3J0IHtMb2NhbGl6ZWRCaWdudW1iZXJJbXB1cmVQaXBlIGFzIMm1Y30gZnJvbSAnLi9jb21wb25lbnRzL2xvY2FsZS9waXBlcy9sb2NhbGl6ZWQtYmlnbnVtYmVyLWltcHVyZS5waXBlJztcbmV4cG9ydCB7TG9jYWxpemVkQmlnbnVtYmVyUGlwZSBhcyDJtWJ9IGZyb20gJy4vY29tcG9uZW50cy9sb2NhbGUvcGlwZXMvbG9jYWxpemVkLWJpZ251bWJlci5waXBlJztcbmV4cG9ydCB7TG9jYWxpemVkQ3VycmVuY3lJbXB1cmVQaXBlIGFzIMm1YX0gZnJvbSAnLi9jb21wb25lbnRzL2xvY2FsZS9waXBlcy9sb2NhbGl6ZWQtY3VycmVuY3ktaW1wdXJlLnBpcGUnO1xuZXhwb3J0IHtGb290ZXJDb21wb25lbnQgYXMgybViZH0gZnJvbSAnLi9jb21wb25lbnRzL3N0cnVjdHVyZS9mb290ZXIuY29tcG9uZW50JztcbmV4cG9ydCB7SGVhZGVyQ29tcG9uZW50IGFzIMm1YmN9IGZyb20gJy4vY29tcG9uZW50cy9zdHJ1Y3R1cmUvaGVhZGVyLmNvbXBvbmVudCc7XG5leHBvcnQge1N0cnVjdHVyZU1vZHVsZSBhcyDJtWJifSBmcm9tICcuL2NvbXBvbmVudHMvc3RydWN0dXJlL3N0cnVjdHVyZS5tb2R1bGUnO1xuZXhwb3J0IHtUYWJsZUNvbHVtbnNDb21wb25lbnQgYXMgybVlfSBmcm9tICcuL2NvbXBvbmVudHMvdGFibGUvdGFibGUtY29sdW1uL3RhYmxlLWNvbHVtbnMuY29tcG9uZW50JztcbmV4cG9ydCB7VGh1bWJuYWlsU2VydmljZSBhcyDJtWJnfSBmcm9tICcuL2NvbXBvbmVudHMvdGh1bWJuYWlsL3RodW1ibmFpbC5zZXJ2aWNlJztcbmV4cG9ydCB7VG9rZW5MaXN0TW9kdWxlIGFzIMm1ZH0gZnJvbSAnLi9jb21wb25lbnRzL3Rva2VuLWxpc3QnOyJdfQ==
|