@wemake4u/form-player-se 1.0.18 → 1.0.20
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/esm2022/lib/controls/chart.mjs +10 -0
- package/esm2022/lib/controls/checklist.mjs +4 -1
- package/esm2022/lib/controls/chipchecklist.mjs +4 -1
- package/esm2022/lib/controls/chipradio.mjs +4 -1
- package/esm2022/lib/controls/control.mjs +6 -27
- package/esm2022/lib/controls/factory.mjs +4 -1
- package/esm2022/lib/controls/radio.mjs +4 -1
- package/esm2022/lib/controls/select.mjs +4 -1
- package/esm2022/lib/controls/table.mjs +4 -1
- package/esm2022/lib/controls/taglist.mjs +4 -1
- package/esm2022/lib/dialog/dialog.component.mjs +15 -7
- package/esm2022/lib/directives/accordion.directive.mjs +2 -13
- package/esm2022/lib/directives/dropdown.directive.mjs +7 -7
- package/esm2022/lib/directives/grid.directive.mjs +7 -7
- package/esm2022/lib/directives/refresh.directive.mjs +25 -0
- package/esm2022/lib/dynamic-fields/dynamic-fields.component.mjs +66 -29
- package/esm2022/lib/dynamic-form/dynamic-form.component.mjs +72 -48
- package/esm2022/lib/services/chart.service.mjs +264 -0
- package/esm2022/lib/services/dialog.service.mjs +5 -7
- package/esm2022/lib/services/function.service.mjs +9 -6
- package/esm2022/lib/services/grid.service.mjs +73 -17
- package/esm2022/lib/services/programmability.service.mjs +6 -1
- package/esm2022/lib/services/register.service.mjs +60 -19
- package/esm2022/lib/services/weak.service.mjs +1 -11
- package/esm2022/lib/utils/gridCells.mjs +14 -14
- package/esm2022/lib/utils/patchForm.mjs +32 -13
- package/fesm2022/wemake4u-form-player-se.mjs +710 -250
- package/fesm2022/wemake4u-form-player-se.mjs.map +1 -1
- package/lib/controls/chart.d.ts +4 -0
- package/lib/controls/checklist.d.ts +1 -0
- package/lib/controls/chipchecklist.d.ts +1 -0
- package/lib/controls/chipradio.d.ts +1 -0
- package/lib/controls/control.d.ts +1 -4
- package/lib/controls/radio.d.ts +1 -0
- package/lib/controls/select.d.ts +1 -0
- package/lib/controls/table.d.ts +1 -0
- package/lib/controls/taglist.d.ts +1 -0
- package/lib/dialog/dialog.component.d.ts +3 -0
- package/lib/directives/refresh.directive.d.ts +10 -0
- package/lib/dynamic-fields/dynamic-fields.component.d.ts +14 -5
- package/lib/dynamic-form/dynamic-form.component.d.ts +11 -5
- package/lib/services/chart.service.d.ts +34 -0
- package/lib/services/dialog.service.d.ts +3 -1
- package/lib/services/function.service.d.ts +3 -1
- package/lib/services/grid.service.d.ts +10 -7
- package/lib/services/programmability.service.d.ts +1 -0
- package/lib/services/register.service.d.ts +5 -3
- package/lib/utils/patchForm.d.ts +1 -0
- package/package.json +4 -2
|
@@ -32,16 +32,6 @@ export class WeakService {
|
|
|
32
32
|
result = result.pipe(take(1), tap((res) => {
|
|
33
33
|
cachedObject[key] = of(res);
|
|
34
34
|
}), shareReplay(1));
|
|
35
|
-
//let subscription: Subscription;
|
|
36
|
-
//subscription = result
|
|
37
|
-
// .subscribe({
|
|
38
|
-
// next: (result: any) => {
|
|
39
|
-
// subscription.unsubscribe();
|
|
40
|
-
// cachedObject[key] = of(result);
|
|
41
|
-
// },
|
|
42
|
-
// error: (error : any) => console.error(error),
|
|
43
|
-
// complete: () => console.log('Observable complete')
|
|
44
|
-
// });
|
|
45
35
|
}
|
|
46
36
|
cachedObject[key] = result;
|
|
47
37
|
return result;
|
|
@@ -61,4 +51,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
61
51
|
providedIn: 'root'
|
|
62
52
|
}]
|
|
63
53
|
}], ctorParameters: () => [] });
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vhay5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNpcmlvL3NyYy9saWIvc2VydmljZXMvd2Vhay5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBSzdDLE1BQU0sT0FBTyxXQUFXO0lBRXRCLGdCQUFnQixDQUFDO0lBRVQsS0FBSyxHQUFHLElBQUksT0FBTyxFQUErQixDQUFDO0lBRTNELE1BQU0sQ0FBQyxNQUFjLEVBQUUsR0FBVztRQUNoQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDM0IsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFFLENBQUM7WUFDN0MsT0FBTyxDQUFDLEdBQUcsSUFBSSxZQUFZLENBQUMsQ0FBQztRQUMvQixDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsSUFBSSxDQUFJLE1BQWMsRUFBRSxHQUFXLEVBQUUsSUFBYSxFQUM5QyxXQUEyQyxJQUFJLEVBQy9DLFFBQW9DLElBQUk7UUFFMUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzdCLENBQUM7UUFFRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUUsQ0FBQztRQUU3QyxJQUFJLEdBQUcsSUFBSSxZQUFZO2VBQ2xCLENBQUMsUUFBUSxJQUFJLElBQUk7bUJBQ2YsUUFBUSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQ25DLENBQUM7WUFDQyxPQUFPLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMzQixDQUFDO1FBRUQsSUFBSSxNQUFNLEdBQVEsSUFBSSxFQUFFLENBQUM7UUFFekIsSUFBSSxLQUFLLElBQUksSUFBSSxFQUFFLENBQUM7WUFDbEIsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6QixDQUFDO1FBRUQsTUFBTSxVQUFVLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXhDLElBQUksVUFBVSxFQUFFLENBQUM7WUFDZixNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUVyQyxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FDbEIsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLEdBQUcsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO2dCQUNmLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDOUIsQ0FBQyxDQUFDLEVBQ0YsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7UUFDSixDQUFDO1FBRUQsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQztRQUUzQixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsVUFBVSxDQUFDLE1BQWMsRUFBRSxHQUFXO1FBQ3BDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUMzQixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUUsQ0FBQztZQUM3QyxPQUFPLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMzQixDQUFDO0lBQ0gsQ0FBQzt3R0E3RFUsV0FBVzs0R0FBWCxXQUFXLGNBRlYsTUFBTTs7NEZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGlzT2JzZXJ2YWJsZSwgb2YsIHRha2UsIHRhcCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBzaGFyZVJlcGxheSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFdlYWtTZXJ2aWNlIHtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgcHJpdmF0ZSBjYWNoZSA9IG5ldyBXZWFrTWFwPG9iamVjdCwgUmVjb3JkPHN0cmluZywgYW55Pj4oKTtcclxuXHJcbiAgZXhpc3RzKHNvdXJjZTogb2JqZWN0LCBrZXk6IHN0cmluZykge1xyXG4gICAgaWYgKHRoaXMuY2FjaGUuaGFzKHNvdXJjZSkpIHtcclxuICAgICAgY29uc3QgY2FjaGVkT2JqZWN0ID0gdGhpcy5jYWNoZS5nZXQoc291cmNlKSE7XHJcbiAgICAgIHJldHVybiAoa2V5IGluIGNhY2hlZE9iamVjdCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBjYWxsPFQ+KHNvdXJjZTogb2JqZWN0LCBrZXk6IHN0cmluZywgZnVuYzogKCkgPT4gVFxyXG4gICAgLCByZXVzYWJsZTogKCh2YWx1ZTogVCkgPT4gYm9vbGVhbikgfCBudWxsID0gbnVsbFxyXG4gICAgLCBzdG9yZTogKCh2YWx1ZTogVCkgPT4gYW55KSB8IG51bGwgPSBudWxsXHJcbiAgICApOiBUIHtcclxuICAgIGlmICghdGhpcy5jYWNoZS5oYXMoc291cmNlKSkge1xyXG4gICAgICB0aGlzLmNhY2hlLnNldChzb3VyY2UsIHt9KTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBjYWNoZWRPYmplY3QgPSB0aGlzLmNhY2hlLmdldChzb3VyY2UpITtcclxuXHJcbiAgICBpZiAoa2V5IGluIGNhY2hlZE9iamVjdFxyXG4gICAgICAmJiAocmV1c2FibGUgPT0gbnVsbFxyXG4gICAgICAgIHx8IHJldXNhYmxlKGNhY2hlZE9iamVjdFtrZXldKSkpXHJcbiAgICB7XHJcbiAgICAgIHJldHVybiBjYWNoZWRPYmplY3Rba2V5XTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgcmVzdWx0OiBhbnkgPSBmdW5jKCk7XHJcblxyXG4gICAgaWYgKHN0b3JlICE9IG51bGwpIHtcclxuICAgICAgcmVzdWx0ID0gc3RvcmUocmVzdWx0KTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBvYnNlcnZhYmxlID0gaXNPYnNlcnZhYmxlKHJlc3VsdCk7XHJcblxyXG4gICAgaWYgKG9ic2VydmFibGUpIHtcclxuICAgICAgcmVzdWx0ID0gcmVzdWx0LnBpcGUoc2hhcmVSZXBsYXkoMSkpO1xyXG5cclxuICAgICAgcmVzdWx0ID0gcmVzdWx0LnBpcGUoXHJcbiAgICAgICAgdGFrZSgxKSxcclxuICAgICAgICB0YXAoKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBjYWNoZWRPYmplY3Rba2V5XSA9IG9mKHJlcyk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgc2hhcmVSZXBsYXkoMSlcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBjYWNoZWRPYmplY3Rba2V5XSA9IHJlc3VsdDtcclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgaW52YWxpZGF0ZShzb3VyY2U6IG9iamVjdCwga2V5OiBzdHJpbmcpIHtcclxuICAgIGlmICh0aGlzLmNhY2hlLmhhcyhzb3VyY2UpKSB7XHJcbiAgICAgIGNvbnN0IGNhY2hlZE9iamVjdCA9IHRoaXMuY2FjaGUuZ2V0KHNvdXJjZSkhO1xyXG4gICAgICBkZWxldGUgY2FjaGVkT2JqZWN0W2tleV07XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -63,12 +63,12 @@ export class ActionsCellRenderer {
|
|
|
63
63
|
}
|
|
64
64
|
evaluateBoolean(value) {
|
|
65
65
|
const options = {
|
|
66
|
-
extendContext: () => {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
}
|
|
71
|
-
}
|
|
66
|
+
extendContext: () => ({
|
|
67
|
+
"event": {
|
|
68
|
+
params: this.params,
|
|
69
|
+
data: this.getData()
|
|
70
|
+
}
|
|
71
|
+
})
|
|
72
72
|
};
|
|
73
73
|
return this.programmability.evaluateBoolean(this.getFormGroup(), value, options);
|
|
74
74
|
}
|
|
@@ -79,13 +79,13 @@ export class ActionsCellRenderer {
|
|
|
79
79
|
if (action.click) {
|
|
80
80
|
const options = {
|
|
81
81
|
cacheable: false,
|
|
82
|
-
extendContext: () => {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
}
|
|
88
|
-
}
|
|
82
|
+
extendContext: () => ({
|
|
83
|
+
"event": {
|
|
84
|
+
params: this.params,
|
|
85
|
+
action: action,
|
|
86
|
+
data: this.getData()
|
|
87
|
+
}
|
|
88
|
+
})
|
|
89
89
|
};
|
|
90
90
|
return this.programmability.evaluate(this.getFormGroup(), action.click, options);
|
|
91
91
|
}
|
|
@@ -105,4 +105,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
105
105
|
CommonModule, SirioButtonComponent
|
|
106
106
|
], template: "<div class=\"btn-small-group\">\r\n <ng-container *ngFor=\"let action of params.component.actions\">\r\n <ngx-sirio-button class=\"btn-small\"\r\n [ariaLabel]=\"evaluateString(action.label)\"\r\n [title]=\"evaluateString(action.label)\"\r\n [color]=\"null\"\r\n [disabled]=\"evaluateBoolean(action.disabled)\"\r\n (clickEvent)=\"clickButton(action, $event)\"\r\n [icon]=\"evaluateString(action.icon)\">\r\n </ngx-sirio-button>\r\n </ng-container>\r\n</div>\r\n" }]
|
|
107
107
|
}], ctorParameters: () => [{ type: i1.ProgrammabilityService }] });
|
|
108
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZENlbGxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNpcmlvL3NyYy9saWIvdXRpbHMvZ3JpZENlbGxzLnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNpcmlvL3NyYy9saWIvdXRpbHMvY2VsbC10ZW1wbGF0ZXMvb2JqZWN0VXJsLmNvbXBvbmVudC5odG1sIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNpcmlvL3NyYy9saWIvdXRpbHMvY2VsbC10ZW1wbGF0ZXMvZGVsZXRlLmNvbXBvbmVudC5odG1sIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNpcmlvL3NyYy9saWIvdXRpbHMvY2VsbC10ZW1wbGF0ZXMvYWN0aW9ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUcvQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJckQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7O0FBTTVDLE1BQU0sT0FBTywwQkFBMEI7SUFDckMsTUFBTSxDQUF1QjtJQUU3QixLQUFLLEdBQUcsS0FBSyxDQUFDO0lBRWQsTUFBTSxDQUFDLE1BQTJCO1FBQ2hDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxPQUFPLENBQUMsS0FBWTtRQUNsQixNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEQsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDL0IsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLEdB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Qjs0RkFBbkIsbUJBQW1CLHdFR3BFaEMsb2xCQVlBLDJDSHFESSxZQUFZLDRKQUFFLG9CQUFvQjs7NEZBR3pCLG1CQUFtQjtrQkFQL0IsU0FBUztpQ0FFSSxJQUFJLFdBQ1A7d0JBQ1AsWUFBWSxFQUFFLG9CQUFvQjtxQkFDbkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSUNlbGxSZW5kZXJlckFuZ3VsYXJDb21wIH0gZnJvbSAnYWctZ3JpZC1hbmd1bGFyJztcclxuaW1wb3J0IHsgSUNlbGxSZW5kZXJlclBhcmFtcyB9IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcclxuaW1wb3J0IHsgU2lyaW9CdXR0b25Db21wb25lbnQgfSBmcm9tICduZ3gtc2lyaW8tbGliJztcclxuaW1wb3J0IHsgUHJvZ3JhbW1hYmlsaXR5U2VydmljZSwgRXZhbHVhdGVPcHRpb25zIH0gZnJvbSAnLi4vc2VydmljZXMvcHJvZ3JhbW1hYmlsaXR5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgeyBUZXh0cyB9IGZyb20gJy4uL2xvY2FsZS9sb2NhbGUtaXQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NlbGwtdGVtcGxhdGVzL29iamVjdFVybC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgT2JqZWN0VVJMUmVuZGVyZXJDb21wb25lbnQgaW1wbGVtZW50cyBJQ2VsbFJlbmRlcmVyQW5ndWxhckNvbXAge1xyXG4gIHBhcmFtcyE6IElDZWxsUmVuZGVyZXJQYXJhbXM7XHJcblxyXG4gIFRleHRzID0gVGV4dHM7XHJcblxyXG4gIGFnSW5pdChwYXJhbXM6IElDZWxsUmVuZGVyZXJQYXJhbXMpOiB2b2lkIHtcclxuICAgIHRoaXMucGFyYW1zID0gcGFyYW1zO1xyXG4gIH1cclxuXHJcbiAgb25DbGljayhldmVudDogRXZlbnQpIHtcclxuICAgIGNvbnN0IGZpbGVVUkwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKHRoaXMucGFyYW1zLmRhdGEpO1xyXG4gICAgd2luZG93Lm9wZW4oZmlsZVVSTCwgJ19ibGFuaycpO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIFVSTC5yZXZva2VPYmplY3RVUkwoZmlsZVVSTCk7XHJcbiAgICB9LCAxMDAwKTtcclxuICB9XHJcblxyXG4gIHJlZnJlc2goKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICB0ZW1wbGF0ZVVybDogJy4vY2VsbC10ZW1wbGF0ZXMvZGVsZXRlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdGFuZGFsb25lOiB0cnVlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEZWxldGVSb3dDZWxsUmVuZGVyZXIgaW1wbGVtZW50cyBJQ2VsbFJlbmRlcmVyQW5ndWxhckNvbXAge1xyXG4gIHBhcmFtczogYW55O1xyXG5cclxuICBUZXh0cyA9IFRleHRzO1xyXG5cclxuICBhZ0luaXQocGFyYW1zOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMucGFyYW1zID0gcGFyYW1zO1xyXG4gIH1cclxuXHJcbiAgb25DbGljayhldmVudDogRXZlbnQpIHtcclxuXHJcbiAgICBpZiAoJ3JlbW92ZScgaW4gdGhpcy5wYXJhbXMuZGF0YSAmJiB0eXBlb2YgdGhpcy5wYXJhbXMuZGF0YS5yZW1vdmUgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgdGhpcy5wYXJhbXMuZGF0YS5yZW1vdmUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlZnJlc2goKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICB0ZW1wbGF0ZVVybDogJy4vY2VsbC10ZW1wbGF0ZXMvYWN0aW9ucy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsIFNpcmlvQnV0dG9uQ29tcG9uZW50XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQWN0aW9uc0NlbGxSZW5kZXJlciBpbXBsZW1lbnRzIElDZWxsUmVuZGVyZXJBbmd1bGFyQ29tcCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcHJvZ3JhbW1hYmlsaXR5OiBQcm9ncmFtbWFiaWxpdHlTZXJ2aWNlKSB7IH1cclxuXHJcbiAgcGFyYW1zOiBhbnk7XHJcblxyXG4gIGFnSW5pdChwYXJhbXM6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5wYXJhbXMgPSBwYXJhbXM7XHJcbiAgfVxyXG5cclxuICByZWZyZXNoKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZXZhbHVhdGVCb29sZWFuKHZhbHVlOiBib29sZWFuIHwgc3RyaW5nIHwgbnVsbCk6IGJvb2xlYW4gfCBudWxsIHtcclxuXHJcbiAgICBjb25zdCBvcHRpb25zOiBFdmFsdWF0ZU9wdGlvbnMgPSB7XHJcbiAgICAgIGV4dGVuZENvbnRleHQ6ICgpID0+ICh7XHJcbiAgICAgICAgXCJldmVudFwiOiB7XHJcbiAgICAgICAgICBwYXJhbXM6IHRoaXMucGFyYW1zLFxyXG4gICAgICAgICAgZGF0YTogdGhpcy5nZXREYXRhKClcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMucHJvZ3JhbW1hYmlsaXR5LmV2YWx1YXRlQm9vbGVhbih0aGlzLmdldEZvcm1Hcm91cCgpLCB2YWx1ZSwgb3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBldmFsdWF0ZVN0cmluZyh2YWx1ZTogc3RyaW5nIHwgbnVsbCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5wcm9ncmFtbWFiaWxpdHkuZXZhbHVhdGVTdHJpbmcodGhpcy5nZXRGb3JtR3JvdXAoKSwgdmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgY2xpY2tCdXR0b24oYWN0aW9uOiBhbnksIGV2ZW50OiBhbnkpIHtcclxuICAgIGlmIChhY3Rpb24uY2xpY2spIHtcclxuXHJcbiAgICAgIGNvbnN0IG9wdGlvbnM6IEV2YWx1YXRlT3B0aW9ucyA9IHtcclxuICAgICAgICBjYWNoZWFibGU6IGZhbHNlLFxyXG4gICAgICAgIGV4dGVuZENvbnRleHQ6ICgpID0+ICh7XHJcbiAgICAgICAgICBcImV2ZW50XCI6IHtcclxuICAgICAgICAgICAgcGFyYW1zOiB0aGlzLnBhcmFtcyxcclxuICAgICAgICAgICAgYWN0aW9uOiBhY3Rpb24sXHJcbiAgICAgICAgICAgIGRhdGE6IHRoaXMuZ2V0RGF0YSgpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIHRoaXMucHJvZ3JhbW1hYmlsaXR5LmV2YWx1YXRlKHRoaXMuZ2V0Rm9ybUdyb3VwKCksIGFjdGlvbi5jbGljaywgb3B0aW9ucyk7XHJcbiAgICB9ICAgIFxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXREYXRhKCk6IGFueSB7XHJcbiAgICByZXR1cm4gdGhpcy5wYXJhbXMuZGF0YTtcclxuXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEZvcm1Hcm91cCgpOiBGb3JtR3JvdXAge1xyXG4gICAgcmV0dXJuIHRoaXMucGFyYW1zLmZvcm1Hcm91cCBhcyBGb3JtR3JvdXA7XHJcbiAgfVxyXG59XHJcblxyXG4iLCI8YSBbYXR0ci5hcmlhLWxhYmVsXT1cIlRleHRzLlNob3dcIiB0aXRsZT1cInt7IFRleHRzLlNob3cgfX1cIiBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCIgKGNsaWNrKT1cIm9uQ2xpY2soJGV2ZW50KVwiPlxyXG4gIDxzcGFuIGNsYXNzPVwiZmFzIGZhLXBhcGVyY2xpcFwiPjwvc3Bhbj5cclxuPC9hPlxyXG4iLCI8YSBbYXR0ci5hcmlhLWxhYmVsXT1cIlRleHRzLlJlbW92ZVwiIHRpdGxlPVwie3sgVGV4dHMuUmVtb3ZlIH19XCIgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIChjbGljayk9XCJvbkNsaWNrKCRldmVudClcIj5cclxuICA8c3BhbiBjbGFzcz1cImZhcyBmYS10cmFzaFwiPjwvc3Bhbj5cclxuPC9hPlxyXG4iLCI8ZGl2IGNsYXNzPVwiYnRuLXNtYWxsLWdyb3VwXCI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIHBhcmFtcy5jb21wb25lbnQuYWN0aW9uc1wiPlxyXG4gICAgPG5neC1zaXJpby1idXR0b24gY2xhc3M9XCJidG4tc21hbGxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2FyaWFMYWJlbF09XCJldmFsdWF0ZVN0cmluZyhhY3Rpb24ubGFiZWwpXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJldmFsdWF0ZVN0cmluZyhhY3Rpb24ubGFiZWwpXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCJudWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJldmFsdWF0ZUJvb2xlYW4oYWN0aW9uLmRpc2FibGVkKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2tFdmVudCk9XCJjbGlja0J1dHRvbihhY3Rpb24sICRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2ljb25dPVwiZXZhbHVhdGVTdHJpbmcoYWN0aW9uLmljb24pXCI+XHJcbiAgICA8L25neC1zaXJpby1idXR0b24+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -1,9 +1,22 @@
|
|
|
1
1
|
import { FormGroup, FormArray, FormControl } from '@angular/forms';
|
|
2
|
+
function createControlFromValue(value) {
|
|
3
|
+
if (value === null || typeof value !== 'object') {
|
|
4
|
+
return new FormControl(value);
|
|
5
|
+
}
|
|
6
|
+
if (Array.isArray(value)) {
|
|
7
|
+
return new FormArray(createControlFromArray(value));
|
|
8
|
+
}
|
|
9
|
+
return new FormGroup({});
|
|
10
|
+
}
|
|
11
|
+
function createControlFromArray(array) {
|
|
12
|
+
return array.map(item => createControlFromValue(item));
|
|
13
|
+
}
|
|
2
14
|
export function patchForm(control, value, options) {
|
|
3
15
|
const defaultOptions = {
|
|
4
16
|
emitEvent: true,
|
|
5
17
|
validateType: false,
|
|
6
|
-
fallbackValue: null
|
|
18
|
+
fallbackValue: null,
|
|
19
|
+
strict: true
|
|
7
20
|
};
|
|
8
21
|
const warn = (message) => {
|
|
9
22
|
if (options?.emitWarn)
|
|
@@ -13,7 +26,7 @@ export function patchForm(control, value, options) {
|
|
|
13
26
|
if (options?.emitError)
|
|
14
27
|
throw new Error(message);
|
|
15
28
|
};
|
|
16
|
-
const { emitEvent, validateType, fallbackValue } = { ...defaultOptions, ...options };
|
|
29
|
+
const { emitEvent, validateType, fallbackValue, strict } = { ...defaultOptions, ...options };
|
|
17
30
|
if (control instanceof FormControl) {
|
|
18
31
|
if (validateType && typeof value !== typeof control.value) {
|
|
19
32
|
warn(`Value type mismatch: expected ${typeof control.value}, but received ${typeof value}`);
|
|
@@ -31,26 +44,32 @@ export function patchForm(control, value, options) {
|
|
|
31
44
|
if (control.controls[key]) {
|
|
32
45
|
patchForm(control.controls[key], value[key], options);
|
|
33
46
|
}
|
|
47
|
+
else if (!strict) {
|
|
48
|
+
const newControl = createControlFromValue(value[key]);
|
|
49
|
+
control.addControl(key, newControl);
|
|
50
|
+
patchForm(newControl, value[key], options);
|
|
51
|
+
}
|
|
34
52
|
else {
|
|
35
53
|
warn(`Key "${key}" not found in the FormGroup.`);
|
|
36
54
|
}
|
|
37
55
|
});
|
|
38
56
|
}
|
|
39
57
|
else if (control instanceof FormArray) {
|
|
40
|
-
|
|
41
|
-
(
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
58
|
+
const valueArray = Array.isArray(value) ? value : [];
|
|
59
|
+
while (control.length < valueArray.length) {
|
|
60
|
+
const newItemValue = valueArray[control.length];
|
|
61
|
+
const newControl = createControlFromValue(newItemValue);
|
|
62
|
+
control.push(newControl);
|
|
63
|
+
}
|
|
64
|
+
while (control.length > valueArray.length) {
|
|
65
|
+
control.removeAt(control.length - 1);
|
|
66
|
+
}
|
|
67
|
+
valueArray.forEach((item, index) => {
|
|
68
|
+
patchForm(control.at(index), item, options);
|
|
50
69
|
});
|
|
51
70
|
}
|
|
52
71
|
else {
|
|
53
72
|
error('Unsupported AbstractControl type.');
|
|
54
73
|
}
|
|
55
74
|
}
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0Y2hGb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNpcmlvL3NyYy9saWIvdXRpbHMvcGF0Y2hGb3JtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBbUIsU0FBUyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVwRixTQUFTLHNCQUFzQixDQUFDLEtBQVU7SUFDeEMsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ2hELE9BQU8sSUFBSSxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3pCLE9BQU8sSUFBSSxTQUFTLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBQ0QsT0FBTyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUMzQixDQUFDO0FBRUQsU0FBUyxzQkFBc0IsQ0FBQyxLQUFZO0lBQzFDLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDekQsQ0FBQztBQUVELE1BQU0sVUFBVSxTQUFTLENBQ3ZCLE9BQXdCLEVBQ3hCLEtBQVUsRUFDVixPQU9DO0lBR0QsTUFBTSxjQUFjLEdBQUc7UUFDckIsU0FBUyxFQUFFLElBQUk7UUFDZixZQUFZLEVBQUUsS0FBSztRQUNuQixhQUFhLEVBQUUsSUFBSTtRQUNuQixNQUFNLEVBQUUsSUFBSTtLQUNiLENBQUM7SUFFRixNQUFNLElBQUksR0FBRyxDQUFDLE9BQWUsRUFBRSxFQUFFO1FBQy9CLElBQUksT0FBTyxFQUFFLFFBQVE7WUFDbkIsT0FBTyxDQUFDLElBQUksQ0FB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QUU7WUFDOUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzlDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztTQUNJLENBQUM7UUFDSixLQUFLLENBQUMsbUNBQW1DLENBQUMsQ0FBQztJQUM3QyxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUdyb3VwLCBGb3JtQXJyYXksIEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuZnVuY3Rpb24gY3JlYXRlQ29udHJvbEZyb21WYWx1ZSh2YWx1ZTogYW55KTogQWJzdHJhY3RDb250cm9sIHtcclxuICBpZiAodmFsdWUgPT09IG51bGwgfHwgdHlwZW9mIHZhbHVlICE9PSAnb2JqZWN0Jykge1xyXG4gICAgcmV0dXJuIG5ldyBGb3JtQ29udHJvbCh2YWx1ZSk7XHJcbiAgfVxyXG4gIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xyXG4gICAgcmV0dXJuIG5ldyBGb3JtQXJyYXkoY3JlYXRlQ29udHJvbEZyb21BcnJheSh2YWx1ZSkpO1xyXG4gIH1cclxuICByZXR1cm4gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNyZWF0ZUNvbnRyb2xGcm9tQXJyYXkoYXJyYXk6IGFueVtdKTogQWJzdHJhY3RDb250cm9sW10ge1xyXG4gIHJldHVybiBhcnJheS5tYXAoaXRlbSA9PiBjcmVhdGVDb250cm9sRnJvbVZhbHVlKGl0ZW0pKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHBhdGNoRm9ybShcclxuICBjb250cm9sOiBBYnN0cmFjdENvbnRyb2wsXHJcbiAgdmFsdWU6IGFueSxcclxuICBvcHRpb25zPzoge1xyXG4gICAgZW1pdEV2ZW50PzogYm9vbGVhbjtcclxuICAgIGVtaXRFcnJvcj86IGJvb2xlYW47XHJcbiAgICBlbWl0V2Fybj86IGJvb2xlYW47XHJcbiAgICB2YWxpZGF0ZVR5cGU/OiBib29sZWFuO1xyXG4gICAgZmFsbGJhY2tWYWx1ZT86IGFueTtcclxuICAgIHN0cmljdDogYm9vbGVhbjtcclxuICB9XHJcbik6IHZvaWQge1xyXG5cclxuICBjb25zdCBkZWZhdWx0T3B0aW9ucyA9IHtcclxuICAgIGVtaXRFdmVudDogdHJ1ZSxcclxuICAgIHZhbGlkYXRlVHlwZTogZmFsc2UsXHJcbiAgICBmYWxsYmFja1ZhbHVlOiBudWxsLFxyXG4gICAgc3RyaWN0OiB0cnVlXHJcbiAgfTtcclxuXHJcbiAgY29uc3Qgd2FybiA9IChtZXNzYWdlOiBzdHJpbmcpID0+IHtcclxuICAgIGlmIChvcHRpb25zPy5lbWl0V2FybilcclxuICAgICAgY29uc29sZS53YXJuKGBbcGF0Y2hGb3JtXSAke21lc3NhZ2V9YClcclxuICB9O1xyXG5cclxuICBjb25zdCBlcnJvciA9IChtZXNzYWdlOiBzdHJpbmcpID0+IHtcclxuICAgIGlmIChvcHRpb25zPy5lbWl0RXJyb3IpXHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTtcclxuICB9O1xyXG5cclxuICBjb25zdCB7IGVtaXRFdmVudCwgdmFsaWRhdGVUeXBlLCBmYWxsYmFja1ZhbHVlLCBzdHJpY3QgfVxyXG4gICAgPSB7IC4uLmRlZmF1bHRPcHRpb25zLCAuLi5vcHRpb25zIH07XHJcblxyXG4gIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUNvbnRyb2wpIHtcclxuICAgIGlmICh2YWxpZGF0ZVR5cGUgJiYgdHlwZW9mIHZhbHVlICE9PSB0eXBlb2YgY29udHJvbC52YWx1ZSkge1xyXG4gICAgICB3YXJuKGBWYWx1ZSB0eXBlIG1pc21hdGNoOiBleHBlY3RlZCAke3R5cGVvZiBjb250cm9sLnZhbHVlfSwgYnV0IHJlY2VpdmVkICR7dHlwZW9mIHZhbHVlfWApO1xyXG5cclxuICAgICAgaWYgKGZhbGxiYWNrVmFsdWUgIT09IG51bGwpIHtcclxuICAgICAgICBjb250cm9sLnBhdGNoVmFsdWUoZmFsbGJhY2tWYWx1ZSwgeyBlbWl0RXZlbnQgfSk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGVycm9yKCdJbnZhbGlkIHZhbHVlIHR5cGUgYW5kIG5vIGZhbGxiYWNrIHZhbHVlIHByb3ZpZGVkLicpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb250cm9sLnBhdGNoVmFsdWUodmFsdWUsIHsgZW1pdEV2ZW50IH0pO1xyXG4gIH1cclxuICBlbHNlIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUdyb3VwKSB7XHJcbiAgICBPYmplY3Qua2V5cyh2YWx1ZSB8fCB7fSkuZm9yRWFjaCgoa2V5KSA9PiB7XHJcbiAgICAgIGlmIChjb250cm9sLmNvbnRyb2xzW2tleV0pIHtcclxuICAgICAgICBwYXRjaEZvcm0oY29udHJvbC5jb250cm9sc1trZXldLCB2YWx1ZVtrZXldLCBvcHRpb25zKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmICghc3RyaWN0KSB7XHJcbiAgICAgICAgY29uc3QgbmV3Q29udHJvbCA9IGNyZWF0ZUNvbnRyb2xGcm9tVmFsdWUodmFsdWVba2V5XSk7XHJcbiAgICAgICAgY29udHJvbC5hZGRDb250cm9sKGtleSwgbmV3Q29udHJvbCk7XHJcbiAgICAgICAgcGF0Y2hGb3JtKG5ld0NvbnRyb2wsIHZhbHVlW2tleV0sIG9wdGlvbnMpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHdhcm4oYEtleSBcIiR7a2V5fVwiIG5vdCBmb3VuZCBpbiB0aGUgRm9ybUdyb3VwLmApO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgZWxzZSBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1BcnJheSkge1xyXG4gICAgY29uc3QgdmFsdWVBcnJheSA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbXTtcclxuICAgIHdoaWxlIChjb250cm9sLmxlbmd0aCA8IHZhbHVlQXJyYXkubGVuZ3RoKSB7XHJcbiAgICAgIGNvbnN0IG5ld0l0ZW1WYWx1ZSA9IHZhbHVlQXJyYXlbY29udHJvbC5sZW5ndGhdO1xyXG4gICAgICBjb25zdCBuZXdDb250cm9sID0gY3JlYXRlQ29udHJvbEZyb21WYWx1ZShuZXdJdGVtVmFsdWUpO1xyXG4gICAgICBjb250cm9sLnB1c2gobmV3Q29udHJvbCk7XHJcbiAgICB9XHJcbiAgICB3aGlsZSAoY29udHJvbC5sZW5ndGggPiB2YWx1ZUFycmF5Lmxlbmd0aCkge1xyXG4gICAgICBjb250cm9sLnJlbW92ZUF0KGNvbnRyb2wubGVuZ3RoIC0gMSk7XHJcbiAgICB9XHJcbiAgICB2YWx1ZUFycmF5LmZvckVhY2goKGl0ZW06IGFueSwgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICBwYXRjaEZvcm0oY29udHJvbC5hdChpbmRleCksIGl0ZW0sIG9wdGlvbnMpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGVsc2Uge1xyXG4gICAgZXJyb3IoJ1Vuc3VwcG9ydGVkIEFic3RyYWN0Q29udHJvbCB0eXBlLicpO1xyXG4gIH1cclxufVxyXG4iXX0=
|