tuain-ng-forms-lib 12.0.14 → 12.0.18
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/tuain-ng-forms-lib.umd.js +47 -29
- package/bundles/tuain-ng-forms-lib.umd.js.map +1 -1
- package/esm2015/lib/components/elements/action.component.js +12 -12
- package/esm2015/lib/components/elements/field.component.js +26 -13
- package/esm2015/lib/components/forms/basic-form.js +8 -7
- package/fesm2015/tuain-ng-forms-lib.js +43 -29
- package/fesm2015/tuain-ng-forms-lib.js.map +1 -1
- package/lib/components/elements/action.component.d.ts +1 -1
- package/lib/components/elements/field.component.d.ts +4 -2
- package/lib/components/forms/basic-form.d.ts +2 -1
- package/package.json +1 -1
- package/tuain-ng-forms-lib.metadata.json +1 -1
|
@@ -6,35 +6,35 @@ export class ActionComponent {
|
|
|
6
6
|
}
|
|
7
7
|
ngOnInit() {
|
|
8
8
|
var _a;
|
|
9
|
-
this.formConfig = (_a = this.
|
|
9
|
+
this.formConfig = (_a = this.action) === null || _a === void 0 ? void 0 : _a._formConfig;
|
|
10
10
|
this.start();
|
|
11
11
|
}
|
|
12
12
|
start() { }
|
|
13
13
|
activate() {
|
|
14
14
|
var _a;
|
|
15
|
-
if ((_a = this.
|
|
16
|
-
this.
|
|
15
|
+
if ((_a = this.action) === null || _a === void 0 ? void 0 : _a.notifyActivation) {
|
|
16
|
+
this.action.notifyActivation();
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
19
|
visibleOnRestriction() {
|
|
20
20
|
var _a, _b, _c, _d, _e;
|
|
21
|
-
if (!((_a = this.
|
|
21
|
+
if (!((_a = this.action) === null || _a === void 0 ? void 0 : _a.restrictedOnField)) {
|
|
22
22
|
return true;
|
|
23
23
|
}
|
|
24
|
-
if ((((_b = this.
|
|
25
|
-
&& this.relatedField === ((_c = this.
|
|
26
|
-
|| (((_d = this.
|
|
27
|
-
&& this.relatedField !== ((_e = this.
|
|
24
|
+
if ((((_b = this.action) === null || _b === void 0 ? void 0 : _b.restrictedOnOperator) === '=='
|
|
25
|
+
&& this.relatedField === ((_c = this.action) === null || _c === void 0 ? void 0 : _c.restrictedOnValue))
|
|
26
|
+
|| (((_d = this.action) === null || _d === void 0 ? void 0 : _d.restrictedOnOperator) === '!='
|
|
27
|
+
&& this.relatedField !== ((_e = this.action) === null || _e === void 0 ? void 0 : _e.restrictedOnValue))) {
|
|
28
28
|
return true;
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
31
|
get visible() {
|
|
32
32
|
var _a;
|
|
33
|
-
return ((_a = this.
|
|
33
|
+
return ((_a = this.action) === null || _a === void 0 ? void 0 : _a.visibleOn(this.currentState)) && this.visibleOnRestriction();
|
|
34
34
|
}
|
|
35
35
|
get disabled() {
|
|
36
36
|
var _a;
|
|
37
|
-
return !((_a = this.
|
|
37
|
+
return !((_a = this.action) === null || _a === void 0 ? void 0 : _a.enabledOn(this.currentState));
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
ActionComponent.decorators = [
|
|
@@ -44,11 +44,11 @@ ActionComponent.decorators = [
|
|
|
44
44
|
},] }
|
|
45
45
|
];
|
|
46
46
|
ActionComponent.propDecorators = {
|
|
47
|
-
|
|
47
|
+
action: [{ type: Input }],
|
|
48
48
|
busy: [{ type: Input }],
|
|
49
49
|
relatedField: [{ type: Input }],
|
|
50
50
|
currentState: [{ type: Input }],
|
|
51
51
|
style: [{ type: Input }],
|
|
52
52
|
showLabel: [{ type: Input }]
|
|
53
53
|
};
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1YWluLW5nLWZvcm1zLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZWxlbWVudHMvYWN0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQVF6RCxNQUFNLE9BQU8sZUFBZTtJQUw1QjtRQWFXLFVBQUssR0FBRyxTQUFTLENBQUM7UUFDbEIsY0FBUyxHQUFHLElBQUksQ0FBQztJQWtDNUIsQ0FBQztJQWhDQyxRQUFROztRQUNOLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxXQUFXLENBQUM7UUFDM0MsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2YsQ0FBQztJQUVELEtBQUssS0FBSyxDQUFDO0lBRVgsUUFBUTs7UUFDTixJQUFJLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsZ0JBQWdCLEVBQUU7WUFDakMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1NBQ2hDO0lBQ0gsQ0FBQztJQUVELG9CQUFvQjs7UUFDbEIsSUFBSSxDQUFDLENBQUEsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxpQkFBaUIsQ0FBQSxFQUFFO1lBQ25DLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxJQUFJLENBQUMsQ0FBQSxNQUFBLElBQUksQ0FBQyxNQUFNLDBDQUFFLG9CQUFvQixNQUFLLElBQUk7ZUFDMUMsSUFBSSxDQUFDLFlBQVksTUFBSyxNQUFBLElBQUksQ0FBQyxNQUFNLDBDQUFFLGlCQUFpQixDQUFBLENBQUM7ZUFDckQsQ0FBQyxDQUFBLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsb0JBQW9CLE1BQUssSUFBSTttQkFDekMsSUFBSSxDQUFDLFlBQVksTUFBSyxNQUFBLElBQUksQ0FBQyxNQUFNLDBDQUFFLGlCQUFpQixDQUFBLENBQUMsRUFBRTtZQUM1RCxPQUFPLElBQUksQ0FBQztTQUNiO0lBQ0gsQ0FBQztJQUVELElBQUksT0FBTzs7UUFDVCxPQUFPLENBQUEsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQ2xGLENBQUM7SUFFRCxJQUFJLFFBQVE7O1FBQ1YsT0FBTyxDQUFDLENBQUMsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQzs7O1lBL0NGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsWUFBWTtnQkFDdEIsUUFBUSxFQUFFLDJCQUEyQjthQUN0Qzs7O3FCQUtFLEtBQUs7bUJBQ0wsS0FBSzsyQkFDTCxLQUFLOzJCQUNMLEtBQUs7b0JBRUwsS0FBSzt3QkFDTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQWN0aW9uIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9mb3Jtcy9hY3Rpb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItYWN0aW9uJyxcbiAgdGVtcGxhdGU6IGA8bmctY29udGVudD48L25nLWNvbnRlbnQ+YFxufSlcblxuZXhwb3J0IGNsYXNzIEFjdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGZvcm1Db25maWc6IGFueTtcbiAgaW5Qcm9ncmVzczogYm9vbGVhbjtcbiAgQElucHV0KCkgYWN0aW9uOiBGb3JtQWN0aW9uO1xuICBASW5wdXQoKSBidXN5OiBhbnk7XG4gIEBJbnB1dCgpIHJlbGF0ZWRGaWVsZDogYW55O1xuICBASW5wdXQoKSBjdXJyZW50U3RhdGU6IGFueTtcblxuICBASW5wdXQoKSBzdHlsZSA9ICdwcmltYXJ5JztcbiAgQElucHV0KCkgc2hvd0xhYmVsID0gdHJ1ZTtcblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmZvcm1Db25maWcgPSB0aGlzLmFjdGlvbj8uX2Zvcm1Db25maWc7XG4gICAgdGhpcy5zdGFydCgpO1xuICB9XG5cbiAgc3RhcnQoKSB7IH1cblxuICBhY3RpdmF0ZSgpIHtcbiAgICBpZiAodGhpcy5hY3Rpb24/Lm5vdGlmeUFjdGl2YXRpb24pIHtcbiAgICAgIHRoaXMuYWN0aW9uLm5vdGlmeUFjdGl2YXRpb24oKTtcbiAgICB9XG4gIH1cblxuICB2aXNpYmxlT25SZXN0cmljdGlvbigpIHtcbiAgICBpZiAoIXRoaXMuYWN0aW9uPy5yZXN0cmljdGVkT25GaWVsZCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmICgodGhpcy5hY3Rpb24/LnJlc3RyaWN0ZWRPbk9wZXJhdG9yID09PSAnPT0nXG4gICAgICAmJiB0aGlzLnJlbGF0ZWRGaWVsZCA9PT0gdGhpcy5hY3Rpb24/LnJlc3RyaWN0ZWRPblZhbHVlKVxuICAgICAgfHwgKHRoaXMuYWN0aW9uPy5yZXN0cmljdGVkT25PcGVyYXRvciA9PT0gJyE9J1xuICAgICAgICAmJiB0aGlzLnJlbGF0ZWRGaWVsZCAhPT0gdGhpcy5hY3Rpb24/LnJlc3RyaWN0ZWRPblZhbHVlKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHZpc2libGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aW9uPy52aXNpYmxlT24odGhpcy5jdXJyZW50U3RhdGUpICYmIHRoaXMudmlzaWJsZU9uUmVzdHJpY3Rpb24oKTtcbiAgfVxuXG4gIGdldCBkaXNhYmxlZCgpIHtcbiAgICByZXR1cm4gISh0aGlzLmFjdGlvbj8uZW5hYmxlZE9uKHRoaXMuY3VycmVudFN0YXRlKSk7XG4gIH1cbn0iXX0=
|
|
@@ -3,8 +3,8 @@ const VALUE = '';
|
|
|
3
3
|
export class FieldComponent {
|
|
4
4
|
ngOnInit() {
|
|
5
5
|
var _a, _b;
|
|
6
|
-
if (this.
|
|
7
|
-
this.formConfig = (_a = this.
|
|
6
|
+
if (this.field) {
|
|
7
|
+
this.formConfig = (_a = this.field) === null || _a === void 0 ? void 0 : _a._formConfig;
|
|
8
8
|
// Inicialización
|
|
9
9
|
const mapping = Object.entries(this.formConfig.componentFieldAttrMap);
|
|
10
10
|
for (let index = 0; index < mapping.length; index++) {
|
|
@@ -14,11 +14,11 @@ export class FieldComponent {
|
|
|
14
14
|
this.updateValue();
|
|
15
15
|
}
|
|
16
16
|
else {
|
|
17
|
-
this[compAttr] = (_b = this.
|
|
17
|
+
this[compAttr] = (_b = this.field) === null || _b === void 0 ? void 0 : _b[fieldAttr.toString()];
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
20
|
// Subscripción a cambios en atributos
|
|
21
|
-
this.
|
|
21
|
+
this.field.attributeChange.subscribe(event => {
|
|
22
22
|
const { name: fieldAttr, value } = event;
|
|
23
23
|
const compAttr = this.formConfig.componentFieldAttrMap[fieldAttr];
|
|
24
24
|
if (compAttr === VALUE) {
|
|
@@ -33,16 +33,29 @@ export class FieldComponent {
|
|
|
33
33
|
}
|
|
34
34
|
start() { }
|
|
35
35
|
focus() { }
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
updateObject() {
|
|
37
|
+
this.field._fieldValue = this.value;
|
|
38
|
+
this.onChangeContent();
|
|
39
|
+
}
|
|
40
|
+
inputChanged() {
|
|
41
|
+
this.field._fieldValue = this.value;
|
|
42
|
+
this.onInputChange();
|
|
43
|
+
}
|
|
44
|
+
inputTyped() {
|
|
45
|
+
this.field._fieldValue = this.value;
|
|
46
|
+
this.onInputChange();
|
|
47
|
+
}
|
|
48
|
+
updateValue() {
|
|
49
|
+
this.value = this.field._fieldValue;
|
|
50
|
+
}
|
|
38
51
|
onInputChange() {
|
|
39
|
-
setTimeout(() => this.
|
|
52
|
+
setTimeout(() => this.field.notifyEditionPartial(), 50);
|
|
40
53
|
}
|
|
41
54
|
onChangeContent() {
|
|
42
|
-
setTimeout(() => this.
|
|
55
|
+
setTimeout(() => this.field.notifyEditionFinish(), 50);
|
|
43
56
|
}
|
|
44
57
|
onShowInfo() {
|
|
45
|
-
setTimeout(() => this.
|
|
58
|
+
setTimeout(() => this.field.notifyEditionDetailRequest(), 50);
|
|
46
59
|
}
|
|
47
60
|
numberInputValidation(event) {
|
|
48
61
|
const k = event.charCode;
|
|
@@ -50,11 +63,11 @@ export class FieldComponent {
|
|
|
50
63
|
}
|
|
51
64
|
get visible() {
|
|
52
65
|
var _a;
|
|
53
|
-
return (_a = this.
|
|
66
|
+
return (_a = this.field) === null || _a === void 0 ? void 0 : _a.visibleOn(this.currentState);
|
|
54
67
|
}
|
|
55
68
|
get disabled() {
|
|
56
69
|
var _a;
|
|
57
|
-
return !((_a = this.
|
|
70
|
+
return !((_a = this.field) === null || _a === void 0 ? void 0 : _a.enabledOn(this.currentState));
|
|
58
71
|
}
|
|
59
72
|
}
|
|
60
73
|
FieldComponent.decorators = [
|
|
@@ -64,7 +77,7 @@ FieldComponent.decorators = [
|
|
|
64
77
|
},] }
|
|
65
78
|
];
|
|
66
79
|
FieldComponent.propDecorators = {
|
|
67
|
-
|
|
80
|
+
field: [{ type: Input }],
|
|
68
81
|
currentState: [{ type: Input }]
|
|
69
82
|
};
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVhaW4tbmctZm9ybXMtbGliL3NyYy9saWIvY29tcG9uZW50cy9lbGVtZW50cy9maWVsZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHekQsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFBO0FBS2hCLE1BQU0sT0FBTyxjQUFjO0lBMEJ6QixRQUFROztRQUNOLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNkLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBQSxJQUFJLENBQUMsS0FBSywwQ0FBRSxXQUFXLENBQUM7WUFDMUMsaUJBQWlCO1lBQ2pCLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1lBQ3RFLEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFO2dCQUNuRCxNQUFNLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDOUMsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUN0QyxJQUFJLFFBQVEsS0FBSyxLQUFLLEVBQUU7b0JBQ3RCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztpQkFDcEI7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLE1BQUEsSUFBSSxDQUFDLEtBQUssMENBQUcsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7aUJBQ3JEO2FBQ0Y7WUFDRCxzQ0FBc0M7WUFDdEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUMzQyxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsR0FBRyxLQUFLLENBQUM7Z0JBQ3pDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ2xFLElBQUksUUFBUSxLQUFLLEtBQUssRUFBRTtvQkFDdEIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2lCQUNwQjtxQkFBTTtvQkFDTCxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsS0FBSyxDQUFBO2lCQUN2QjtZQUNILENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFDRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDZixDQUFDO0lBRUQsS0FBSyxLQUFLLENBQUM7SUFFWCxLQUFLLEtBQUssQ0FBQztJQUVYLFlBQVk7UUFDVixJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDcEMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNwQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxhQUFhO1FBQ1gsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsb0JBQW9CLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsZUFBZTtRQUNiLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLG1CQUFtQixFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELFVBQVU7UUFDUixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQywwQkFBMEIsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxLQUFLO1FBQ3pCLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUM7UUFDekIsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFJLE9BQU87O1FBQ1QsT0FBTyxNQUFBLElBQUksQ0FBQyxLQUFLLDBDQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELElBQUksUUFBUTs7UUFDVixPQUFPLENBQUMsQ0FBQSxNQUFBLElBQUksQ0FBQyxLQUFLLDBDQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUEsQ0FBQztJQUNuRCxDQUFDOzs7WUF4R0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxXQUFXO2dCQUNyQixRQUFRLEVBQUUsMkJBQTJCO2FBQ3RDOzs7b0JBd0JFLEtBQUs7MkJBQ0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmllbGREZXNjcmlwdG9yIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9mb3Jtcy9maWVsZCc7XG5cbmNvbnN0IFZBTFVFID0gJydcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1maWVsZCcsXG4gIHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PmBcbn0pXG5leHBvcnQgY2xhc3MgRmllbGRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBmb3JtQ29uZmlnOiBhbnk7XG4gIC8vIEF0cmlidXRvcyBvYnRlbmlkb3MgZXN0w6F0aWNhbWVudGVcbiAgY29kZTogc3RyaW5nO1xuICB2YWx1ZTogYW55O1xuICBmaWVsZEluZm86IHN0cmluZztcbiAgZmllbGRBbGlnbm1lbnQ6IHN0cmluZztcbiAgdG9vbHRpcFRleHQ6IHN0cmluZztcblxuICAvLyBBdHJpYnV0b3MgYWN0dWFsaXphZG9zIHBvciBzdWJzY3JpcGNpw7NuXG4gIG1heExlbmd0aDogYW55O1xuICBvblZhbGlkYXRpb246IGFueTtcbiAgY2FwdHVyZVR5cGU6IGFueTtcbiAgdGl0bGU6IGFueTtcbiAgdHlwZTogYW55O1xuICB2aXNpYmxlTGFiZWw6IGFueTtcbiAgcmVxdWlyZWQ6IGFueTtcbiAgb3B0aW9uczogYW55O1xuXG4gIGVycm9yVHlwZTogYW55O1xuICBlcnJvckNvZGU6IGFueTtcbiAgZXJyb3JNZXNzYWdlOiBhbnk7XG5cbiAgQElucHV0KCkgZmllbGQ6IEZpZWxkRGVzY3JpcHRvcjtcbiAgQElucHV0KCkgY3VycmVudFN0YXRlOiBhbnk7XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuZmllbGQpIHtcbiAgICAgIHRoaXMuZm9ybUNvbmZpZyA9IHRoaXMuZmllbGQ/Ll9mb3JtQ29uZmlnO1xuICAgICAgLy8gSW5pY2lhbGl6YWNpw7NuXG4gICAgICBjb25zdCBtYXBwaW5nID0gT2JqZWN0LmVudHJpZXModGhpcy5mb3JtQ29uZmlnLmNvbXBvbmVudEZpZWxkQXR0ck1hcCk7XG4gICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgbWFwcGluZy5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgY29uc3QgW2ZpZWxkQXR0ciwgY29tcEF0dHIxXSA9IG1hcHBpbmdbaW5kZXhdO1xuICAgICAgICBjb25zdCBjb21wQXR0ciA9IGNvbXBBdHRyMS50b1N0cmluZygpO1xuICAgICAgICBpZiAoY29tcEF0dHIgPT09IFZBTFVFKSB7XG4gICAgICAgICAgdGhpcy51cGRhdGVWYWx1ZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXNbY29tcEF0dHJdID0gdGhpcy5maWVsZD8uW2ZpZWxkQXR0ci50b1N0cmluZygpXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy8gU3Vic2NyaXBjacOzbiBhIGNhbWJpb3MgZW4gYXRyaWJ1dG9zXG4gICAgICB0aGlzLmZpZWxkLmF0dHJpYnV0ZUNoYW5nZS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICBjb25zdCB7IG5hbWU6IGZpZWxkQXR0ciwgdmFsdWUgfSA9IGV2ZW50O1xuICAgICAgICBjb25zdCBjb21wQXR0ciA9IHRoaXMuZm9ybUNvbmZpZy5jb21wb25lbnRGaWVsZEF0dHJNYXBbZmllbGRBdHRyXTtcbiAgICAgICAgaWYgKGNvbXBBdHRyID09PSBWQUxVRSkge1xuICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWUoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzW2NvbXBBdHRyXSA9IHZhbHVlXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLnN0YXJ0KCk7XG4gIH1cblxuICBzdGFydCgpIHsgfVxuXG4gIGZvY3VzKCkgeyB9XG5cbiAgdXBkYXRlT2JqZWN0KCkge1xuICAgIHRoaXMuZmllbGQuX2ZpZWxkVmFsdWUgPSB0aGlzLnZhbHVlO1xuICAgIHRoaXMub25DaGFuZ2VDb250ZW50KCk7XG4gIH1cblxuICBpbnB1dENoYW5nZWQoKSB7XG4gICAgdGhpcy5maWVsZC5fZmllbGRWYWx1ZSA9IHRoaXMudmFsdWU7XG4gICAgdGhpcy5vbklucHV0Q2hhbmdlKCk7XG4gIH1cblxuICBpbnB1dFR5cGVkKCkge1xuICAgIHRoaXMuZmllbGQuX2ZpZWxkVmFsdWUgPSB0aGlzLnZhbHVlO1xuICAgIHRoaXMub25JbnB1dENoYW5nZSgpO1xuICB9XG5cbiAgdXBkYXRlVmFsdWUoKSB7XG4gICAgdGhpcy52YWx1ZSA9IHRoaXMuZmllbGQuX2ZpZWxkVmFsdWU7XG4gIH1cblxuICBvbklucHV0Q2hhbmdlKCkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5maWVsZC5ub3RpZnlFZGl0aW9uUGFydGlhbCgpLCA1MCk7XG4gIH1cblxuICBvbkNoYW5nZUNvbnRlbnQoKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmZpZWxkLm5vdGlmeUVkaXRpb25GaW5pc2goKSwgNTApO1xuICB9XG5cbiAgb25TaG93SW5mbygpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuZmllbGQubm90aWZ5RWRpdGlvbkRldGFpbFJlcXVlc3QoKSwgNTApO1xuICB9XG5cbiAgbnVtYmVySW5wdXRWYWxpZGF0aW9uKGV2ZW50KSB7XG4gICAgY29uc3QgayA9IGV2ZW50LmNoYXJDb2RlO1xuICAgIHJldHVybiAoayA+IDQ3ICYmIGsgPCA1OCk7XG4gIH1cblxuICBnZXQgdmlzaWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5maWVsZD8udmlzaWJsZU9uKHRoaXMuY3VycmVudFN0YXRlKTtcbiAgfVxuXG4gIGdldCBkaXNhYmxlZCgpIHtcbiAgICByZXR1cm4gIXRoaXMuZmllbGQ/LmVuYWJsZWRPbih0aGlzLmN1cnJlbnRTdGF0ZSk7XG4gIH1cbn1cbiJdfQ==
|