@quadrel-enterprise-ui/framework 18.34.0 → 18.35.0
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/page/shared/services/form-group-manager.service.mjs +16 -10
- package/fesm2022/quadrel-enterprise-ui-framework.mjs +15 -9
- package/fesm2022/quadrel-enterprise-ui-framework.mjs.map +1 -1
- package/lib/page/shared/services/form-group-manager.service.d.ts +1 -0
- package/lib/page/shared/services/form-group-manager.service.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -123,18 +123,24 @@ export class QdFormGroupManagerService {
|
|
|
123
123
|
const snapshot = this._formGroupsSnapshot.get(key);
|
|
124
124
|
if (!snapshot)
|
|
125
125
|
return;
|
|
126
|
-
|
|
127
|
-
const newValue = snapshot[ctrlKey];
|
|
128
|
-
if (ctrl instanceof FormArray && Array.isArray(newValue)) {
|
|
129
|
-
this.resetFormArrayToValues(ctrl, newValue);
|
|
130
|
-
}
|
|
131
|
-
else {
|
|
132
|
-
ctrl.reset(newValue);
|
|
133
|
-
}
|
|
134
|
-
});
|
|
126
|
+
this.restoreFormGroup(fg, snapshot);
|
|
135
127
|
});
|
|
136
128
|
this.cancelPendingAsyncValidation();
|
|
137
129
|
}
|
|
130
|
+
restoreFormGroup(fg, snapshot) {
|
|
131
|
+
Object.entries(fg.controls).forEach(([ctrlKey, ctrl]) => {
|
|
132
|
+
const newValue = snapshot[ctrlKey];
|
|
133
|
+
if (ctrl instanceof FormArray && Array.isArray(newValue)) {
|
|
134
|
+
this.resetFormArrayToValues(ctrl, newValue);
|
|
135
|
+
}
|
|
136
|
+
else if (ctrl instanceof FormGroup && newValue && typeof newValue === 'object') {
|
|
137
|
+
this.restoreFormGroup(ctrl, newValue);
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
ctrl.reset(newValue);
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
}
|
|
138
144
|
/**
|
|
139
145
|
* Cancels any in-flight async validators on all registered form groups.
|
|
140
146
|
*
|
|
@@ -222,4 +228,4 @@ export class QdFormGroupManagerService {
|
|
|
222
228
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdFormGroupManagerService, decorators: [{
|
|
223
229
|
type: Injectable
|
|
224
230
|
}] });
|
|
225
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1ncm91cC1tYW5hZ2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3FkLXVpL3NyYy9saWIvcGFnZS9zaGFyZWQvc2VydmljZXMvZm9ybS1ncm91cC1tYW5hZ2VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQW1CLFNBQVMsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEYsT0FBTyxPQUFPLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQWMsRUFBRSxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0RixPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBRXRFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNkRHO0FBRUgsTUFBTSxPQUFPLHlCQUF5QjtJQUM1QixXQUFXLEdBQUcsSUFBSSxHQUFHLEVBQXFCLENBQUM7SUFDM0MsbUJBQW1CLEdBQUcsSUFBSSxHQUFHLEVBQW1DLENBQUM7SUFDakUsbUJBQW1CLEdBQUcsSUFBSSxlQUFlLENBQU8sU0FBUyxDQUFDLENBQUM7SUFFbkUsWUFBWSxDQUFDLEdBQVcsRUFBRSxTQUFvQjtRQUM1QyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxZQUFZLENBQUMsR0FBVztRQUN0QixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxD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LEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFOUcsT0FBTyxJQUFJLFNBQVMsQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDakYsQ0FBQztRQUVELElBQUksT0FBTyxZQUFZLFNBQVMsRUFBRSxDQUFDO1lBQ2pDLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFeEUsT0FBTyxJQUFJLFNBQVMsQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDL0UsQ0FBQztRQUVELE1BQU0sSUFBSSxLQUFLLENBQUMsdURBQXVELENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRU8sa0JBQWtCLENBQUMsRUFBYTtRQUN0QyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ25ILENBQUM7dUdBdk1VLHlCQUF5QjsyR0FBekIseUJBQXlCOzsyRkFBekIseUJBQXlCO2tCQURyQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQXJyYXksIEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgaXNFcXVhbCBmcm9tICdsb2Rhc2gvaXNFcXVhbCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIG9mLCBxdWV1ZVNjaGVkdWxlciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBvYnNlcnZlT24sIHN0YXJ0V2l0aCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG4vKipcbiAqIFRoZSBRZEZvcm1Hcm91cE1hbmFnZXJTZXJ2aWNlIHByb3ZpZGVzIGNlbnRyYWxpemVkIHJlZ2lzdHJhdGlvbiwgc25hcHNob3R0aW5nLCBhbmQgdmFsdWUgdHJhY2tpbmdcbiAqIGZvciBtdWx0aXBsZSBBbmd1bGFyIGBGb3JtR3JvdXBgIGluc3RhbmNlcy4gSXQgc3VwcG9ydHMgZWZmaWNpZW50IHN0YXRlIHJlc3RvcmF0aW9uLCBpbmNsdWRpbmcgZHluYW1pY1xuICogcmVzaXppbmcgb2YgZW1iZWRkZWQgYEZvcm1BcnJheWAgY29udHJvbHMsIHdoaWxlIGF2b2lkaW5nIGFueSBzdHJ1Y3R1cmFsIGNsb25pbmcgaW4gc25hcHNob3RzLlxuICpcbiAqICMjIyMgUHVycG9zZTpcbiAqIFRoaXMgc2VydmljZSBpcyB1c2VmdWwgd2hlbiBtYW5hZ2luZyBtdWx0aXBsZSByZWFjdGl2ZSBmb3JtcyB0aGF0IG11c3QgYmU6XG4gKiAtIE9ic2VydmVkIGZvciBjaGFuZ2VzXG4gKiAtIENoZWNrZWQgZm9yIHZhbGlkaXR5XG4gKiAtIENvbXBhcmVkIGFnYWluc3QgYSBwcmV2aW91cyBzdGF0ZSAoc25hcHNob3QpXG4gKiAtIFJlc2V0IHRvIGEgcHJldmlvdXMgc3RhdGUsIGluY2x1ZGluZyBkeW5hbWljIGZvcm0gYXJyYXlzXG4gKlxuICogIyMjIyBWYWx1ZSBTbmFwc2hvdFxuICogU25hcHNob3RzIHN0b3JlIG9ubHkgKipyYXcgdmFsdWVzKiogKHZpYSBgZ2V0UmF3VmFsdWUoKWApLCBub3QgYW55IGNvbnRyb2wgaW5zdGFuY2VzLlxuICogVGhpcyBhbGxvd3MgZm9yIG1pbmltYWwgbWVtb3J5IHVzYWdlIGFuZCBlYXN5IGNvbXBhcmlzb24gdXNpbmcgZGVlcCBlcXVhbGl0eSBjaGVja3MuXG4gKlxuICogIyMjIyBTbWFydCBGb3JtQXJyYXkgUmVzZXRcbiAqIFdoZW4gcmVzdG9yaW5nIGEgYEZvcm1BcnJheWAsIHRoZSBzZXJ2aWNlIGVuc3VyZXMgdGhhdCB0aGUgbnVtYmVyIGFuZCBzdHJ1Y3R1cmUgb2YgY29udHJvbHNcbiAqIG1hdGNoZXMgdGhlIHNuYXBzaG90IHZhbHVlcy4gQ29udHJvbHMgYXJlIGNsb25lZCBkeW5hbWljYWxseSBmcm9tIGFuIGV4aXN0aW5nIHByb3RvdHlwZS5cbiAqIElmIGEgYEZvcm1BcnJheWAgd2FzIGVtcHRpZWQgKGUuZy4gdmlhIGByZW1vdmVBdCgpYCksIGEgbWluaW1hbCBjb250cm9sIHN0cnVjdHVyZSBpcyBpbmZlcnJlZFxuICogZnJvbSB0aGUgc25hcHNob3QgZGF0YS5cbiAqXG4gKiAjIyMjIEV4YW1wbGUgVXNhZ2U6XG4gKlxuICogKipSZWdpc3RlciBhIEZvcm1Hcm91cCoqXG4gKiBgYGB0c1xuICogc2VydmljZS5zZXRGb3JtR3JvdXAoJ3VzZXJGb3JtJywgZm9ybUdyb3VwKTtcbiAqIGBgYFxuICpcbiAqICoqVGFrZSBhIFNuYXBzaG90KipcbiAqIGBgYHRzXG4gKiBzZXJ2aWNlLnRha2VGb3JtR3JvdXBzU25hcHNob3QoKTtcbiAqIGBgYFxuICpcbiAqICoqRGV0ZWN0IENoYW5nZXMqKlxuICogYGBgdHNcbiAqIHNlcnZpY2UuJGhhc1ZhbHVlc0NoYW5nZWQoKS5zdWJzY3JpYmUoY2hhbmdlZCA9PiB7XG4gKiAgIGlmIChjaGFuZ2VkKSB7XG4gKiAgICAgY29uc29sZS5sb2coJ0Zvcm0gZGF0YSBoYXMgY2hhbmdlZCcpO1xuICogICB9XG4gKiB9KTtcbiAqIGBgYFxuICpcbiAqICoqUmVzdG9yZSBmcm9tIFNuYXBzaG90KipcbiAqIGBgYHRzXG4gKiBzZXJ2aWNlLnJlc3RvcmVGb3JtR3JvdXBzRnJvbVNuYXBzaG90KCk7XG4gKiBgYGBcbiAqXG4gKiAqKkNoZWNrIGlmIEFsbCBGb3JtcyBBcmUgVmFsaWQqKlxuICogYGBgdHNcbiAqIHNlcnZpY2UuJGFyZUZvcm1Hcm91cHNWYWxpZCgpLnN1YnNjcmliZSh2YWxpZCA9PiB7XG4gKiAgIGlmICh2YWxpZCkge1xuICogICAgIGNvbnNvbGUubG9nKCdBbGwgZm9ybXMgdmFsaWQhJyk7XG4gKiAgIH1cbiAqIH0pO1xuICogYGBgXG4gKlxuICogIyMjIyBOb3RlczpcbiAqIC0gRm9ybUFycmF5cyBhcmUgbm90IHJlcGxhY2VkIGR1cmluZyByZXN0b3JlLiBUaGVpciBsZW5ndGggaXMgYWRqdXN0ZWQgYW5kIHRoZWlyIGNvbnRlbnQgcmVzZXQuXG4gKiAtIENvbnRyb2wgY2xvbmluZyBpcyByZWN1cnNpdmUgYW5kIHN0cnVjdHVyZS1wcmVzZXJ2aW5nLlxuICogLSBObyBzdHJ1Y3R1cmFsIGluZm9ybWF0aW9uIGlzIHN0b3JlZCBpbiB0aGUgc25hcHNob3Q7IG9ubHkgZGF0YS5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFFkRm9ybUdyb3VwTWFuYWdlclNlcnZpY2Uge1xuICBwcml2YXRlIF9mb3JtR3JvdXBzID0gbmV3IE1hcDxzdHJpbmcsIEZvcm1Hcm91cD4oKTtcbiAgcHJpdmF0ZSBfZm9ybUdyb3Vwc1NuYXBzaG90ID0gbmV3IE1hcDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHVua25vd24+PigpO1xuICBwcml2YXRlIF9mb3JtR3JvdXBzQ2hhbmdlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHZvaWQ+KHVuZGVmaW5lZCk7XG5cbiAgc2V0Rm9ybUdyb3VwKGtleTogc3RyaW5nLCBmb3JtR3JvdXA6IEZvcm1Hcm91cCk6IHZvaWQge1xuICAgIHRoaXMuX2Zvcm1Hcm91cHMuc2V0KGtleSwgZm9ybUdyb3VwKTtcbiAgICB0aGlzLl9mb3JtR3JvdXBzQ2hhbmdlZCQubmV4dCgpO1xuICB9XG5cbiAgZ2V0Rm9ybUdyb3VwKGtleTogc3RyaW5nKTogRm9ybUdyb3VwIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fZm9ybUdyb3Vwcy5nZXQoa2V5KTtcbiAgfVxuXG4gIGdldEFsbEZvcm1Hcm91cHMoKTogTWFwPHN0cmluZywgRm9ybUdyb3VwPiB7XG4gICAgcmV0dXJuIHRoaXMuX2Zvcm1Hcm91cHM7XG4gIH1cblxuICB0cnlSZW1vdmVGb3JtR3JvdXAoa2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLl9mb3JtR3JvdXBzLmRlbGV0ZShrZXkpO1xuICAgIHRoaXMuX2Zvcm1Hcm91cHNDaGFuZ2VkJC5uZXh0KCk7XG4gIH1cblxuICBoYXNGb3JtR3JvdXBzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9mb3JtR3JvdXBzLnNpemUgPiAwO1xuICB9XG5cbiAgZ2V0QWxsVmFsdWVzKCk6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgICBjb25zdCBhbGxWYWx1ZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge307XG5cbiAgICB0aGlzLl9mb3JtR3JvdXBzLmZvckVhY2goKGZvcm1Hcm91cCwga2V5KSA9PiAoYWxsVmFsdWVzW2tleV0gPSBmb3JtR3JvdXAudmFsdWUpKTtcblxuICAgIHJldHVybiBhbGxWYWx1ZXM7XG4gIH1cblxuICBpc0Zvcm1Hcm91cEtleVVuaXF1ZShrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5fZm9ybUdyb3Vwcy5oYXMoa2V5KTtcbiAgfVxuXG4gICRhcmVGb3JtR3JvdXBzVmFsaWQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuX2Zvcm1Hcm91cHNDaGFuZ2VkJC5waXBlKFxuICAgICAgb2JzZXJ2ZU9uKHF1ZXVlU2NoZWR1bGVyKSxcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5oYXNGb3JtR3JvdXBzKCkpIHJldHVybiBvZihmYWxzZSk7XG5cbiAgICAgICAgY29uc3Qgb2JzID0gQXJyYXkuZnJvbSh0aGlzLl9mb3JtR3JvdXBzLnZhbHVlcygpKS5tYXAoZmcgPT5cbiAgICAgICAgICBmZy5zdGF0dXNDaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICBzdGFydFdpdGgoZmcuc3RhdHVzKSxcbiAgICAgICAgICAgIG1hcCgoKSA9PiB0aGlzLmFyZUZvcm1Hcm91cHNWYWxpZChmZykpXG4gICAgICAgICAgKVxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KG9icykucGlwZShtYXAodmFsaWRzID0+IHZhbGlkcy5ldmVyeShCb29sZWFuKSkpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgJGhhc1ZhbHVlc0NoYW5nZWQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuX2Zvcm1Hcm91cHNDaGFuZ2VkJC5waXBlKFxuICAgICAgb2JzZXJ2ZU9uKHF1ZXVlU2NoZWR1bGVyKSxcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5oYXNGb3JtR3JvdXBzKCkpIHJldHVybiBvZihmYWxzZSk7XG5cbiAgICAgICAgY29uc3Qgb2JzID0gQXJyYXkuZnJvbSh0aGlzLl9mb3JtR3JvdXBzLmVudHJpZXMoKSkubWFwKChba2V5LCBmZ10pID0+XG4gICAgICAgICAgZmcudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICBzdGFydFdpdGgoZmcuZ2V0UmF3VmFsdWUoKSksXG4gICAgICAgICAgICBtYXAoKCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBjdXJyZW50VmFsdWVzID0gZmcuZ2V0UmF3VmFsdWUoKTtcbiAgICAgICAgICAgICAgY29uc3Qgc25hcHNob3QgPSB0aGlzLl9mb3JtR3JvdXBzU25hcHNob3QuZ2V0KGtleSk7XG4gICAgICAgICAgICAgIHJldHVybiBzbmFwc2hvdCA/ICFpc0VxdWFsKGN1cnJlbnRWYWx1ZXMsIHNuYXBzaG90KSA6IHRydWU7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgIClcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gY29tYmluZUxhdGVzdChvYnMpLnBpcGUobWFwKGNoYW5nZXMgPT4gY2hhbmdlcy5zb21lKEJvb2xlYW4pKSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICB0YWtlRm9ybUdyb3Vwc1NuYXBzaG90KCk6IHZvaWQge1xuICAgIHRoaXMuX2Zvcm1Hcm91cHMuZm9yRWFjaCgoZmcsIGtleSkgPT4gdGhpcy5fZm9ybUdyb3Vwc1NuYXBzaG90LnNldChrZXksIGZnLmdldFJhd1ZhbHVlKCkpKTtcbiAgfVxuXG4gIHJlc3RvcmVGb3JtR3JvdXBzRnJvbVNuYXBzaG90KCk6IHZvaWQge1xuICAgIHRoaXMuX2Zvcm1Hcm91cHMuZm9yRWFjaCgoZmcsIGtleSkgPT4ge1xuICAgICAgY29uc3Qgc25hcHNob3QgPSB0aGlzLl9mb3JtR3JvdXBzU25hcHNob3QuZ2V0KGtleSk7XG4gICAgICBpZiAoIXNuYXBzaG90KSByZXR1cm47XG5cbiAgICAgIE9iamVjdC5lbnRyaWVzKGZnLmNvbnRyb2xzKS5mb3JFYWNoKChbY3RybEtleSwgY3RybF0pID0+IHtcbiAgICAgICAgY29uc3QgbmV3VmFsdWUgPSAoc25hcHNob3QgYXMgYW55KVtjdHJsS2V5XTtcbiAgICAgICAgaWYgKGN0cmwgaW5zdGFuY2VvZiBGb3JtQXJyYXkgJiYgQXJyYXkuaXNBcnJheShuZXdWYWx1ZSkpIHtcbiAgICAgICAgICB0aGlzLnJlc2V0Rm9ybUFycmF5VG9WYWx1ZXMoY3RybCwgbmV3VmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGN0cmwucmVzZXQobmV3VmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIHRoaXMuY2FuY2VsUGVuZGluZ0FzeW5jVmFsaWRhdGlvbigpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbmNlbHMgYW55IGluLWZsaWdodCBhc3luYyB2YWxpZGF0b3JzIG9uIGFsbCByZWdpc3RlcmVkIGZvcm0gZ3JvdXBzLlxuICAgKlxuICAgKiAxLiBDb2xsZWN0IGFsbCBQRU5ESU5HIGNvbnRyb2xzIGFuZCB0aGVpciBhc3luYyB2YWxpZGF0b3JzXG4gICAqIDIuIENsZWFyIGFsbCBhc3luYyB2YWxpZGF0b3JzLCB0aGVuIHVwZGF0ZSB2YWxpZGl0eSAoc3luYy1vbmx5LCBubyBjYXNjYWRlKVxuICAgKiAzLiBSZS1hdHRhY2ggYXN5bmMgdmFsaWRhdG9ycyBmb3IgZnV0dXJlIHVzZVxuICAgKi9cbiAgY2FuY2VsUGVuZGluZ0FzeW5jVmFsaWRhdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLl9mb3JtR3JvdXBzLmZvckVhY2goZmcgPT4ge1xuICAgICAgY29uc3QgcGVuZGluZ0NvbnRyb2xzID0gdGhpcy5jb2xsZWN0UGVuZGluZ0NvbnRyb2xzKGZnKTtcbiAgICAgIGlmIChwZW5kaW5nQ29udHJvbHMubGVuZ3RoID09PSAwKSByZXR1cm47XG5cbiAgICAgIGZvciAoY29uc3QgeyBjb250cm9sIH0gb2YgcGVuZGluZ0NvbnRyb2xzKSB7XG4gICAgICAgIGNvbnRyb2wuY2xlYXJBc3luY1ZhbGlkYXRvcnMoKTtcbiAgICAgIH1cblxuICAgICAgZm9yIChjb25zdCB7IGNvbnRyb2wgfSBvZiBwZW5kaW5nQ29udHJvbHMpIHtcbiAgICAgICAgY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgb25seVNlbGY6IHRydWUgfSk7XG4gICAgICB9XG5cbiAgICAgIGZvciAoY29uc3QgeyBjb250cm9sLCBhc3luY1ZhbGlkYXRvciB9IG9mIHBlbmRpbmdDb250cm9scykge1xuICAgICAgICBjb250cm9sLnNldEFzeW5jVmFsaWRhdG9ycyhhc3luY1ZhbGlkYXRvcik7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNvbGxlY3RQZW5kaW5nQ29udHJvbHMoXG4gICAgY29udHJvbDogQWJzdHJhY3RDb250cm9sXG4gICk6IHsgY29udHJvbDogQWJzdHJhY3RDb250cm9sOyBhc3luY1ZhbGlkYXRvcjogQWJzdHJhY3RDb250cm9sWydhc3luY1ZhbGlkYXRvciddIH1bXSB7XG4gICAgY29uc3QgcmVzdWx0OiB7IGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDsgYXN5bmNWYWxpZGF0b3I6IEFic3RyYWN0Q29udHJvbFsnYXN5bmNWYWxpZGF0b3InXSB9W10gPSBbXTtcblxuICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUdyb3VwKSB7XG4gICAgICBPYmplY3QudmFsdWVzKGNvbnRyb2wuY29udHJvbHMpLmZvckVhY2goYyA9PiByZXN1bHQucHVzaCguLi50aGlzLmNvbGxlY3RQZW5kaW5nQ29udHJvbHMoYykpKTtcbiAgICB9IGVsc2UgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQXJyYXkpIHtcbiAgICAgIGNvbnRyb2wuY29udHJvbHMuZm9yRWFjaChjID0+IHJlc3VsdC5wdXNoKC4uLnRoaXMuY29sbGVjdFBlbmRpbmdDb250cm9scyhjKSkpO1xuICAgIH1cblxuICAgIGlmIChjb250cm9sLnN0YXR1cyA9PT0gJ1BFTkRJTkcnKSB7XG4gICAgICByZXN1bHQucHVzaCh7IGNvbnRyb2wsIGFzeW5jVmFsaWRhdG9yOiBjb250cm9sLmFzeW5jVmFsaWRhdG9yIH0pO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIHJlc2V0Rm9ybUFycmF5VG9WYWx1ZXMoYXJyYXk6IEZvcm1BcnJheSwgbmV3VmFsdWVzOiB1bmtub3duW10pOiB2b2lkIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkobmV3VmFsdWVzKSkgcmV0dXJuO1xuXG4gICAgY29uc3Qgb2xkTGVuID0gYXJyYXkubGVuZ3RoO1xuICAgIGNvbnN0IG5ld0xlbiA9IG5ld1ZhbHVlcy5sZW5ndGg7XG5cbiAgICBpZiAob2xkTGVuID09PSAwICYmIG5ld0xlbiA9PT0gMCkgcmV0dXJuO1xuICAgIGlmIChvbGRMZW4gPT09IDAgJiYgbmV3TGVuID4gMCkgcmV0dXJuIHRoaXMuaW5pdEZvcm1BcnJheUZyb21WYWx1ZXMoYXJyYXksIG5ld1ZhbHVlcyk7XG5cbiAgICB3aGlsZSAoYXJyYXkubGVuZ3RoIDwgbmV3TGVuKSBhcnJheS5wdXNoKHRoaXMuZGVlcENsb25lQ29udHJvbChhcnJheS5hdCgwKSkpO1xuICAgIHdoaWxlIChhcnJheS5sZW5ndGggPiBuZXdMZW4pIGFycmF5LnJlbW92ZUF0KGFycmF5Lmxlbmd0aCAtIDEpO1xuXG4gICAgYXJyYXkucmVzZXQobmV3VmFsdWVzKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdEZvcm1BcnJheUZyb21WYWx1ZXMoYXJyYXk6IEZvcm1BcnJheSwgdmFsdWVzOiB1bmtub3duW10pOiB2b2lkIHtcbiAgICBjb25zdCBwcm90b1ZhbHVlID0gdmFsdWVzWzBdO1xuXG4gICAgaWYgKCFwcm90b1ZhbHVlIHx8IHR5cGVvZiBwcm90b1ZhbHVlICE9PSAnb2JqZWN0Jykge1xuICAgICAgY29uc29sZS53YXJuKCdRRC1VSSB8IFFkRm9ybUdyb3VwTWFuYWdlciAtIENhbm5vdCByZXN0b3JlIEZvcm1BcnJheTogbm8gcHJvdG90eXBlIGFuZCB2YWx1ZSBpcyBub3Qgb2JqZWN0LWxpa2UuJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGNvbnRyb2xzOiBSZWNvcmQ8c3RyaW5nLCBBYnN0cmFjdENvbnRyb2w+ID0ge307XG4gICAgICBPYmplY3Qua2V5cyhwcm90b1ZhbHVlKS5mb3JFYWNoKGtleSA9PiAoY29udHJvbHNba2V5XSA9IG5ldyBGb3JtQ29udHJvbCgpKSk7XG4gICAgICBhcnJheS5wdXNoKG5ldyBGb3JtR3JvdXAoeyAuLi5jb250cm9scyB9KSk7XG4gICAgfVxuXG4gICAgYXJyYXkucmVzZXQodmFsdWVzKTtcbiAgfVxuXG4gIHByaXZhdGUgZGVlcENsb25lQ29udHJvbChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUNvbnRyb2wpIHJldHVybiBuZXcgRm9ybUNvbnRyb2wodW5kZWZpbmVkLCBjb250cm9sLnZhbGlkYXRvciwgY29udHJvbC5hc3luY1ZhbGlkYXRvcik7XG5cbiAgICBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xuICAgICAgY29uc3QgZ3JvdXBDb250cm9sczogUmVjb3JkPHN0cmluZywgQWJzdHJhY3RDb250cm9sPiA9IHt9O1xuXG4gICAgICBPYmplY3QuZW50cmllcyhjb250cm9sLmNvbnRyb2xzKS5mb3JFYWNoKChba2V5LCBjdHJsXSkgPT4gKGdyb3VwQ29udHJvbHNba2V5XSA9IHRoaXMuZGVlcENsb25lQ29udHJvbChjdHJsKSkpO1xuXG4gICAgICByZXR1cm4gbmV3IEZvcm1Hcm91cChncm91cENvbnRyb2xzLCBjb250cm9sLnZhbGlkYXRvciwgY29udHJvbC5hc3luY1ZhbGlkYXRvcik7XG4gICAgfVxuXG4gICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQXJyYXkpIHtcbiAgICAgIGNvbnN0IGFyckNvbnRyb2xzID0gY29udHJvbC5jb250cm9scy5tYXAoYyA9PiB0aGlzLmRlZXBDbG9uZUNvbnRyb2woYykpO1xuXG4gICAgICByZXR1cm4gbmV3IEZvcm1BcnJheShhcnJDb250cm9scywgY29udHJvbC52YWxpZGF0b3IsIGNvbnRyb2wuYXN5bmNWYWxpZGF0b3IpO1xuICAgIH1cblxuICAgIHRocm93IG5ldyBFcnJvcignUUQtVUkgfCBRZEZvcm1Hcm91cE1hbmFnZXIgLSBVbnN1cHBvcnRlZCBjb250cm9sIHR5cGUnKTtcbiAgfVxuXG4gIHByaXZhdGUgYXJlRm9ybUdyb3Vwc1ZhbGlkKGZnOiBGb3JtR3JvdXApOiBib29sZWFuIHtcbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyhmZy5jb250cm9scykuZXZlcnkoYyA9PiAoYy5kaXNhYmxlZCAmJiAhYy52YWxpZGF0b3IgJiYgIWMuYXN5bmNWYWxpZGF0b3IgPyB0cnVlIDogYy52YWxpZCkpO1xuICB9XG59XG4iXX0=
|
|
231
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1ncm91cC1tYW5hZ2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3FkLXVpL3NyYy9saWIvcGFnZS9zaGFyZWQvc2VydmljZXMvZm9ybS1ncm91cC1tYW5hZ2VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQW1CLFNBQVMsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEYsT0FBTyxPQUFPLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQWMsRUFBRSxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0RixPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBRXRFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNkRHO0FBRUgsTUFBTSxPQUFPLHlCQUF5QjtJQUM1QixXQUFXLEdBQUcsSUFBSSxHQUFHLEVBQXFCLENBQUM7SUFDM0MsbUJBQW1CLEdBQUcsSUFBSSxHQUFHLEVBQW1DLENBQUM7SUFDakUsbUJBQW1CLEdBQUcsSUFBSSxlQUFlLENBQU8sU0FBUyxDQUFDLENBQUM7SUFFbkUsWUFBWSxDQUFDLEdBQVcsRUFBRSxTQUFvQjtRQUM1QyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxZQUFZLENBQUMsR0FBVztRQUN0QixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxD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LEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbkgsQ0FBQzt1R0E5TVUseUJBQXlCOzJHQUF6Qix5QkFBeUI7OzJGQUF6Qix5QkFBeUI7a0JBRHJDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1BcnJheSwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCBpc0VxdWFsIGZyb20gJ2xvZGFzaC9pc0VxdWFsJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSwgb2YsIHF1ZXVlU2NoZWR1bGVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIG9ic2VydmVPbiwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbi8qKlxuICogVGhlIFFkRm9ybUdyb3VwTWFuYWdlclNlcnZpY2UgcHJvdmlkZXMgY2VudHJhbGl6ZWQgcmVnaXN0cmF0aW9uLCBzbmFwc2hvdHRpbmcsIGFuZCB2YWx1ZSB0cmFja2luZ1xuICogZm9yIG11bHRpcGxlIEFuZ3VsYXIgYEZvcm1Hcm91cGAgaW5zdGFuY2VzLiBJdCBzdXBwb3J0cyBlZmZpY2llbnQgc3RhdGUgcmVzdG9yYXRpb24sIGluY2x1ZGluZyBkeW5hbWljXG4gKiByZXNpemluZyBvZiBlbWJlZGRlZCBgRm9ybUFycmF5YCBjb250cm9scywgd2hpbGUgYXZvaWRpbmcgYW55IHN0cnVjdHVyYWwgY2xvbmluZyBpbiBzbmFwc2hvdHMuXG4gKlxuICogIyMjIyBQdXJwb3NlOlxuICogVGhpcyBzZXJ2aWNlIGlzIHVzZWZ1bCB3aGVuIG1hbmFnaW5nIG11bHRpcGxlIHJlYWN0aXZlIGZvcm1zIHRoYXQgbXVzdCBiZTpcbiAqIC0gT2JzZXJ2ZWQgZm9yIGNoYW5nZXNcbiAqIC0gQ2hlY2tlZCBmb3IgdmFsaWRpdHlcbiAqIC0gQ29tcGFyZWQgYWdhaW5zdCBhIHByZXZpb3VzIHN0YXRlIChzbmFwc2hvdClcbiAqIC0gUmVzZXQgdG8gYSBwcmV2aW91cyBzdGF0ZSwgaW5jbHVkaW5nIGR5bmFtaWMgZm9ybSBhcnJheXNcbiAqXG4gKiAjIyMjIFZhbHVlIFNuYXBzaG90XG4gKiBTbmFwc2hvdHMgc3RvcmUgb25seSAqKnJhdyB2YWx1ZXMqKiAodmlhIGBnZXRSYXdWYWx1ZSgpYCksIG5vdCBhbnkgY29udHJvbCBpbnN0YW5jZXMuXG4gKiBUaGlzIGFsbG93cyBmb3IgbWluaW1hbCBtZW1vcnkgdXNhZ2UgYW5kIGVhc3kgY29tcGFyaXNvbiB1c2luZyBkZWVwIGVxdWFsaXR5IGNoZWNrcy5cbiAqXG4gKiAjIyMjIFNtYXJ0IEZvcm1BcnJheSBSZXNldFxuICogV2hlbiByZXN0b3JpbmcgYSBgRm9ybUFycmF5YCwgdGhlIHNlcnZpY2UgZW5zdXJlcyB0aGF0IHRoZSBudW1iZXIgYW5kIHN0cnVjdHVyZSBvZiBjb250cm9sc1xuICogbWF0Y2hlcyB0aGUgc25hcHNob3QgdmFsdWVzLiBDb250cm9scyBhcmUgY2xvbmVkIGR5bmFtaWNhbGx5IGZyb20gYW4gZXhpc3RpbmcgcHJvdG90eXBlLlxuICogSWYgYSBgRm9ybUFycmF5YCB3YXMgZW1wdGllZCAoZS5nLiB2aWEgYHJlbW92ZUF0KClgKSwgYSBtaW5pbWFsIGNvbnRyb2wgc3RydWN0dXJlIGlzIGluZmVycmVkXG4gKiBmcm9tIHRoZSBzbmFwc2hvdCBkYXRhLlxuICpcbiAqICMjIyMgRXhhbXBsZSBVc2FnZTpcbiAqXG4gKiAqKlJlZ2lzdGVyIGEgRm9ybUdyb3VwKipcbiAqIGBgYHRzXG4gKiBzZXJ2aWNlLnNldEZvcm1Hcm91cCgndXNlckZvcm0nLCBmb3JtR3JvdXApO1xuICogYGBgXG4gKlxuICogKipUYWtlIGEgU25hcHNob3QqKlxuICogYGBgdHNcbiAqIHNlcnZpY2UudGFrZUZvcm1Hcm91cHNTbmFwc2hvdCgpO1xuICogYGBgXG4gKlxuICogKipEZXRlY3QgQ2hhbmdlcyoqXG4gKiBgYGB0c1xuICogc2VydmljZS4kaGFzVmFsdWVzQ2hhbmdlZCgpLnN1YnNjcmliZShjaGFuZ2VkID0+IHtcbiAqICAgaWYgKGNoYW5nZWQpIHtcbiAqICAgICBjb25zb2xlLmxvZygnRm9ybSBkYXRhIGhhcyBjaGFuZ2VkJyk7XG4gKiAgIH1cbiAqIH0pO1xuICogYGBgXG4gKlxuICogKipSZXN0b3JlIGZyb20gU25hcHNob3QqKlxuICogYGBgdHNcbiAqIHNlcnZpY2UucmVzdG9yZUZvcm1Hcm91cHNGcm9tU25hcHNob3QoKTtcbiAqIGBgYFxuICpcbiAqICoqQ2hlY2sgaWYgQWxsIEZvcm1zIEFyZSBWYWxpZCoqXG4gKiBgYGB0c1xuICogc2VydmljZS4kYXJlRm9ybUdyb3Vwc1ZhbGlkKCkuc3Vic2NyaWJlKHZhbGlkID0+IHtcbiAqICAgaWYgKHZhbGlkKSB7XG4gKiAgICAgY29uc29sZS5sb2coJ0FsbCBmb3JtcyB2YWxpZCEnKTtcbiAqICAgfVxuICogfSk7XG4gKiBgYGBcbiAqXG4gKiAjIyMjIE5vdGVzOlxuICogLSBGb3JtQXJyYXlzIGFyZSBub3QgcmVwbGFjZWQgZHVyaW5nIHJlc3RvcmUuIFRoZWlyIGxlbmd0aCBpcyBhZGp1c3RlZCBhbmQgdGhlaXIgY29udGVudCByZXNldC5cbiAqIC0gQ29udHJvbCBjbG9uaW5nIGlzIHJlY3Vyc2l2ZSBhbmQgc3RydWN0dXJlLXByZXNlcnZpbmcuXG4gKiAtIE5vIHN0cnVjdHVyYWwgaW5mb3JtYXRpb24gaXMgc3RvcmVkIGluIHRoZSBzbmFwc2hvdDsgb25seSBkYXRhLlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUWRGb3JtR3JvdXBNYW5hZ2VyU2VydmljZSB7XG4gIHByaXZhdGUgX2Zvcm1Hcm91cHMgPSBuZXcgTWFwPHN0cmluZywgRm9ybUdyb3VwPigpO1xuICBwcml2YXRlIF9mb3JtR3JvdXBzU25hcHNob3QgPSBuZXcgTWFwPHN0cmluZywgUmVjb3JkPHN0cmluZywgdW5rbm93bj4+KCk7XG4gIHByaXZhdGUgX2Zvcm1Hcm91cHNDaGFuZ2VkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8dm9pZD4odW5kZWZpbmVkKTtcblxuICBzZXRGb3JtR3JvdXAoa2V5OiBzdHJpbmcsIGZvcm1Hcm91cDogRm9ybUdyb3VwKTogdm9pZCB7XG4gICAgdGhpcy5fZm9ybUdyb3Vwcy5zZXQoa2V5LCBmb3JtR3JvdXApO1xuICAgIHRoaXMuX2Zvcm1Hcm91cHNDaGFuZ2VkJC5uZXh0KCk7XG4gIH1cblxuICBnZXRGb3JtR3JvdXAoa2V5OiBzdHJpbmcpOiBGb3JtR3JvdXAgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9mb3JtR3JvdXBzLmdldChrZXkpO1xuICB9XG5cbiAgZ2V0QWxsRm9ybUdyb3VwcygpOiBNYXA8c3RyaW5nLCBGb3JtR3JvdXA+IHtcbiAgICByZXR1cm4gdGhpcy5fZm9ybUdyb3VwcztcbiAgfVxuXG4gIHRyeVJlbW92ZUZvcm1Hcm91cChrZXk6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuX2Zvcm1Hcm91cHMuZGVsZXRlKGtleSk7XG4gICAgdGhpcy5fZm9ybUdyb3Vwc0NoYW5nZWQkLm5leHQoKTtcbiAgfVxuXG4gIGhhc0Zvcm1Hcm91cHMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2Zvcm1Hcm91cHMuc2l6ZSA+IDA7XG4gIH1cblxuICBnZXRBbGxWYWx1ZXMoKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4ge1xuICAgIGNvbnN0IGFsbFZhbHVlczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fTtcblxuICAgIHRoaXMuX2Zvcm1Hcm91cHMuZm9yRWFjaCgoZm9ybUdyb3VwLCBrZXkpID0+IChhbGxWYWx1ZXNba2V5XSA9IGZvcm1Hcm91cC52YWx1ZSkpO1xuXG4gICAgcmV0dXJuIGFsbFZhbHVlcztcbiAgfVxuXG4gIGlzRm9ybUdyb3VwS2V5VW5pcXVlKGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLl9mb3JtR3JvdXBzLmhhcyhrZXkpO1xuICB9XG5cbiAgJGFyZUZvcm1Hcm91cHNWYWxpZCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5fZm9ybUdyb3Vwc0NoYW5nZWQkLnBpcGUoXG4gICAgICBvYnNlcnZlT24ocXVldWVTY2hlZHVsZXIpLFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmhhc0Zvcm1Hcm91cHMoKSkgcmV0dXJuIG9mKGZhbHNlKTtcblxuICAgICAgICBjb25zdCBvYnMgPSBBcnJheS5mcm9tKHRoaXMuX2Zvcm1Hcm91cHMudmFsdWVzKCkpLm1hcChmZyA9PlxuICAgICAgICAgIGZnLnN0YXR1c0NoYW5nZXMucGlwZShcbiAgICAgICAgICAgIHN0YXJ0V2l0aChmZy5zdGF0dXMpLFxuICAgICAgICAgICAgbWFwKCgpID0+IHRoaXMuYXJlRm9ybUdyb3Vwc1ZhbGlkKGZnKSlcbiAgICAgICAgICApXG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIGNvbWJpbmVMYXRlc3Qob2JzKS5waXBlKG1hcCh2YWxpZHMgPT4gdmFsaWRzLmV2ZXJ5KEJvb2xlYW4pKSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAkaGFzVmFsdWVzQ2hhbmdlZCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5fZm9ybUdyb3Vwc0NoYW5nZWQkLnBpcGUoXG4gICAgICBvYnNlcnZlT24ocXVldWVTY2hlZHVsZXIpLFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmhhc0Zvcm1Hcm91cHMoKSkgcmV0dXJuIG9mKGZhbHNlKTtcblxuICAgICAgICBjb25zdCBvYnMgPSBBcnJheS5mcm9tKHRoaXMuX2Zvcm1Hcm91cHMuZW50cmllcygpKS5tYXAoKFtrZXksIGZnXSkgPT5cbiAgICAgICAgICBmZy52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgICAgICAgIHN0YXJ0V2l0aChmZy5nZXRSYXdWYWx1ZSgpKSxcbiAgICAgICAgICAgIG1hcCgoKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRWYWx1ZXMgPSBmZy5nZXRSYXdWYWx1ZSgpO1xuICAgICAgICAgICAgICBjb25zdCBzbmFwc2hvdCA9IHRoaXMuX2Zvcm1Hcm91cHNTbmFwc2hvdC5nZXQoa2V5KTtcbiAgICAgICAgICAgICAgcmV0dXJuIHNuYXBzaG90ID8gIWlzRXF1YWwoY3VycmVudFZhbHVlcywgc25hcHNob3QpIDogdHJ1ZTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKVxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KG9icykucGlwZShtYXAoY2hhbmdlcyA9PiBjaGFuZ2VzLnNvbWUoQm9vbGVhbikpKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHRha2VGb3JtR3JvdXBzU25hcHNob3QoKTogdm9pZCB7XG4gICAgdGhpcy5fZm9ybUdyb3Vwcy5mb3JFYWNoKChmZywga2V5KSA9PiB0aGlzLl9mb3JtR3JvdXBzU25hcHNob3Quc2V0KGtleSwgZmcuZ2V0UmF3VmFsdWUoKSkpO1xuICB9XG5cbiAgcmVzdG9yZUZvcm1Hcm91cHNGcm9tU25hcHNob3QoKTogdm9pZCB7XG4gICAgdGhpcy5fZm9ybUdyb3Vwcy5mb3JFYWNoKChmZywga2V5KSA9PiB7XG4gICAgICBjb25zdCBzbmFwc2hvdCA9IHRoaXMuX2Zvcm1Hcm91cHNTbmFwc2hvdC5nZXQoa2V5KTtcbiAgICAgIGlmICghc25hcHNob3QpIHJldHVybjtcblxuICAgICAgdGhpcy5yZXN0b3JlRm9ybUdyb3VwKGZnLCBzbmFwc2hvdCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmNhbmNlbFBlbmRpbmdBc3luY1ZhbGlkYXRpb24oKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzdG9yZUZvcm1Hcm91cChmZzogRm9ybUdyb3VwLCBzbmFwc2hvdDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiB2b2lkIHtcbiAgICBPYmplY3QuZW50cmllcyhmZy5jb250cm9scykuZm9yRWFjaCgoW2N0cmxLZXksIGN0cmxdKSA9PiB7XG4gICAgICBjb25zdCBuZXdWYWx1ZSA9IChzbmFwc2hvdCBhcyBhbnkpW2N0cmxLZXldO1xuXG4gICAgICBpZiAoY3RybCBpbnN0YW5jZW9mIEZvcm1BcnJheSAmJiBBcnJheS5pc0FycmF5KG5ld1ZhbHVlKSkge1xuICAgICAgICB0aGlzLnJlc2V0Rm9ybUFycmF5VG9WYWx1ZXMoY3RybCwgbmV3VmFsdWUpO1xuICAgICAgfSBlbHNlIGlmIChjdHJsIGluc3RhbmNlb2YgRm9ybUdyb3VwICYmIG5ld1ZhbHVlICYmIHR5cGVvZiBuZXdWYWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgdGhpcy5yZXN0b3JlRm9ybUdyb3VwKGN0cmwsIG5ld1ZhbHVlIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGN0cmwucmVzZXQobmV3VmFsdWUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbmNlbHMgYW55IGluLWZsaWdodCBhc3luYyB2YWxpZGF0b3JzIG9uIGFsbCByZWdpc3RlcmVkIGZvcm0gZ3JvdXBzLlxuICAgKlxuICAgKiAxLiBDb2xsZWN0IGFsbCBQRU5ESU5HIGNvbnRyb2xzIGFuZCB0aGVpciBhc3luYyB2YWxpZGF0b3JzXG4gICAqIDIuIENsZWFyIGFsbCBhc3luYyB2YWxpZGF0b3JzLCB0aGVuIHVwZGF0ZSB2YWxpZGl0eSAoc3luYy1vbmx5LCBubyBjYXNjYWRlKVxuICAgKiAzLiBSZS1hdHRhY2ggYXN5bmMgdmFsaWRhdG9ycyBmb3IgZnV0dXJlIHVzZVxuICAgKi9cbiAgY2FuY2VsUGVuZGluZ0FzeW5jVmFsaWRhdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLl9mb3JtR3JvdXBzLmZvckVhY2goZmcgPT4ge1xuICAgICAgY29uc3QgcGVuZGluZ0NvbnRyb2xzID0gdGhpcy5jb2xsZWN0UGVuZGluZ0NvbnRyb2xzKGZnKTtcbiAgICAgIGlmIChwZW5kaW5nQ29udHJvbHMubGVuZ3RoID09PSAwKSByZXR1cm47XG5cbiAgICAgIGZvciAoY29uc3QgeyBjb250cm9sIH0gb2YgcGVuZGluZ0NvbnRyb2xzKSB7XG4gICAgICAgIGNvbnRyb2wuY2xlYXJBc3luY1ZhbGlkYXRvcnMoKTtcbiAgICAgIH1cblxuICAgICAgZm9yIChjb25zdCB7IGNvbnRyb2wgfSBvZiBwZW5kaW5nQ29udHJvbHMpIHtcbiAgICAgICAgY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgb25seVNlbGY6IHRydWUgfSk7XG4gICAgICB9XG5cbiAgICAgIGZvciAoY29uc3QgeyBjb250cm9sLCBhc3luY1ZhbGlkYXRvciB9IG9mIHBlbmRpbmdDb250cm9scykge1xuICAgICAgICBjb250cm9sLnNldEFzeW5jVmFsaWRhdG9ycyhhc3luY1ZhbGlkYXRvcik7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNvbGxlY3RQZW5kaW5nQ29udHJvbHMoXG4gICAgY29udHJvbDogQWJzdHJhY3RDb250cm9sXG4gICk6IHsgY29udHJvbDogQWJzdHJhY3RDb250cm9sOyBhc3luY1ZhbGlkYXRvcjogQWJzdHJhY3RDb250cm9sWydhc3luY1ZhbGlkYXRvciddIH1bXSB7XG4gICAgY29uc3QgcmVzdWx0OiB7IGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDsgYXN5bmNWYWxpZGF0b3I6IEFic3RyYWN0Q29udHJvbFsnYXN5bmNWYWxpZGF0b3InXSB9W10gPSBbXTtcblxuICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUdyb3VwKSB7XG4gICAgICBPYmplY3QudmFsdWVzKGNvbnRyb2wuY29udHJvbHMpLmZvckVhY2goYyA9PiByZXN1bHQucHVzaCguLi50aGlzLmNvbGxlY3RQZW5kaW5nQ29udHJvbHMoYykpKTtcbiAgICB9IGVsc2UgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQXJyYXkpIHtcbiAgICAgIGNvbnRyb2wuY29udHJvbHMuZm9yRWFjaChjID0+IHJlc3VsdC5wdXNoKC4uLnRoaXMuY29sbGVjdFBlbmRpbmdDb250cm9scyhjKSkpO1xuICAgIH1cblxuICAgIGlmIChjb250cm9sLnN0YXR1cyA9PT0gJ1BFTkRJTkcnKSB7XG4gICAgICByZXN1bHQucHVzaCh7IGNvbnRyb2wsIGFzeW5jVmFsaWRhdG9yOiBjb250cm9sLmFzeW5jVmFsaWRhdG9yIH0pO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIHJlc2V0Rm9ybUFycmF5VG9WYWx1ZXMoYXJyYXk6IEZvcm1BcnJheSwgbmV3VmFsdWVzOiB1bmtub3duW10pOiB2b2lkIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkobmV3VmFsdWVzKSkgcmV0dXJuO1xuXG4gICAgY29uc3Qgb2xkTGVuID0gYXJyYXkubGVuZ3RoO1xuICAgIGNvbnN0IG5ld0xlbiA9IG5ld1ZhbHVlcy5sZW5ndGg7XG5cbiAgICBpZiAob2xkTGVuID09PSAwICYmIG5ld0xlbiA9PT0gMCkgcmV0dXJuO1xuICAgIGlmIChvbGRMZW4gPT09IDAgJiYgbmV3TGVuID4gMCkgcmV0dXJuIHRoaXMuaW5pdEZvcm1BcnJheUZyb21WYWx1ZXMoYXJyYXksIG5ld1ZhbHVlcyk7XG5cbiAgICB3aGlsZSAoYXJyYXkubGVuZ3RoIDwgbmV3TGVuKSBhcnJheS5wdXNoKHRoaXMuZGVlcENsb25lQ29udHJvbChhcnJheS5hdCgwKSkpO1xuICAgIHdoaWxlIChhcnJheS5sZW5ndGggPiBuZXdMZW4pIGFycmF5LnJlbW92ZUF0KGFycmF5Lmxlbmd0aCAtIDEpO1xuXG4gICAgYXJyYXkucmVzZXQobmV3VmFsdWVzKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdEZvcm1BcnJheUZyb21WYWx1ZXMoYXJyYXk6IEZvcm1BcnJheSwgdmFsdWVzOiB1bmtub3duW10pOiB2b2lkIHtcbiAgICBjb25zdCBwcm90b1ZhbHVlID0gdmFsdWVzWzBdO1xuXG4gICAgaWYgKCFwcm90b1ZhbHVlIHx8IHR5cGVvZiBwcm90b1ZhbHVlICE9PSAnb2JqZWN0Jykge1xuICAgICAgY29uc29sZS53YXJuKCdRRC1VSSB8IFFkRm9ybUdyb3VwTWFuYWdlciAtIENhbm5vdCByZXN0b3JlIEZvcm1BcnJheTogbm8gcHJvdG90eXBlIGFuZCB2YWx1ZSBpcyBub3Qgb2JqZWN0LWxpa2UuJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGNvbnRyb2xzOiBSZWNvcmQ8c3RyaW5nLCBBYnN0cmFjdENvbnRyb2w+ID0ge307XG4gICAgICBPYmplY3Qua2V5cyhwcm90b1ZhbHVlKS5mb3JFYWNoKGtleSA9PiAoY29udHJvbHNba2V5XSA9IG5ldyBGb3JtQ29udHJvbCgpKSk7XG4gICAgICBhcnJheS5wdXNoKG5ldyBGb3JtR3JvdXAoeyAuLi5jb250cm9scyB9KSk7XG4gICAgfVxuXG4gICAgYXJyYXkucmVzZXQodmFsdWVzKTtcbiAgfVxuXG4gIHByaXZhdGUgZGVlcENsb25lQ29udHJvbChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUNvbnRyb2wpIHJldHVybiBuZXcgRm9ybUNvbnRyb2wodW5kZWZpbmVkLCBjb250cm9sLnZhbGlkYXRvciwgY29udHJvbC5hc3luY1ZhbGlkYXRvcik7XG5cbiAgICBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xuICAgICAgY29uc3QgZ3JvdXBDb250cm9sczogUmVjb3JkPHN0cmluZywgQWJzdHJhY3RDb250cm9sPiA9IHt9O1xuXG4gICAgICBPYmplY3QuZW50cmllcyhjb250cm9sLmNvbnRyb2xzKS5mb3JFYWNoKChba2V5LCBjdHJsXSkgPT4gKGdyb3VwQ29udHJvbHNba2V5XSA9IHRoaXMuZGVlcENsb25lQ29udHJvbChjdHJsKSkpO1xuXG4gICAgICByZXR1cm4gbmV3IEZvcm1Hcm91cChncm91cENvbnRyb2xzLCBjb250cm9sLnZhbGlkYXRvciwgY29udHJvbC5hc3luY1ZhbGlkYXRvcik7XG4gICAgfVxuXG4gICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQXJyYXkpIHtcbiAgICAgIGNvbnN0IGFyckNvbnRyb2xzID0gY29udHJvbC5jb250cm9scy5tYXAoYyA9PiB0aGlzLmRlZXBDbG9uZUNvbnRyb2woYykpO1xuXG4gICAgICByZXR1cm4gbmV3IEZvcm1BcnJheShhcnJDb250cm9scywgY29udHJvbC52YWxpZGF0b3IsIGNvbnRyb2wuYXN5bmNWYWxpZGF0b3IpO1xuICAgIH1cblxuICAgIHRocm93IG5ldyBFcnJvcignUUQtVUkgfCBRZEZvcm1Hcm91cE1hbmFnZXIgLSBVbnN1cHBvcnRlZCBjb250cm9sIHR5cGUnKTtcbiAgfVxuXG4gIHByaXZhdGUgYXJlRm9ybUdyb3Vwc1ZhbGlkKGZnOiBGb3JtR3JvdXApOiBib29sZWFuIHtcbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyhmZy5jb250cm9scykuZXZlcnkoYyA9PiAoYy5kaXNhYmxlZCAmJiAhYy52YWxpZGF0b3IgJiYgIWMuYXN5bmNWYWxpZGF0b3IgPyB0cnVlIDogYy52YWxpZCkpO1xuICB9XG59XG4iXX0=
|
|
@@ -33372,18 +33372,24 @@ class QdFormGroupManagerService {
|
|
|
33372
33372
|
const snapshot = this._formGroupsSnapshot.get(key);
|
|
33373
33373
|
if (!snapshot)
|
|
33374
33374
|
return;
|
|
33375
|
-
|
|
33376
|
-
const newValue = snapshot[ctrlKey];
|
|
33377
|
-
if (ctrl instanceof FormArray && Array.isArray(newValue)) {
|
|
33378
|
-
this.resetFormArrayToValues(ctrl, newValue);
|
|
33379
|
-
}
|
|
33380
|
-
else {
|
|
33381
|
-
ctrl.reset(newValue);
|
|
33382
|
-
}
|
|
33383
|
-
});
|
|
33375
|
+
this.restoreFormGroup(fg, snapshot);
|
|
33384
33376
|
});
|
|
33385
33377
|
this.cancelPendingAsyncValidation();
|
|
33386
33378
|
}
|
|
33379
|
+
restoreFormGroup(fg, snapshot) {
|
|
33380
|
+
Object.entries(fg.controls).forEach(([ctrlKey, ctrl]) => {
|
|
33381
|
+
const newValue = snapshot[ctrlKey];
|
|
33382
|
+
if (ctrl instanceof FormArray && Array.isArray(newValue)) {
|
|
33383
|
+
this.resetFormArrayToValues(ctrl, newValue);
|
|
33384
|
+
}
|
|
33385
|
+
else if (ctrl instanceof FormGroup && newValue && typeof newValue === 'object') {
|
|
33386
|
+
this.restoreFormGroup(ctrl, newValue);
|
|
33387
|
+
}
|
|
33388
|
+
else {
|
|
33389
|
+
ctrl.reset(newValue);
|
|
33390
|
+
}
|
|
33391
|
+
});
|
|
33392
|
+
}
|
|
33387
33393
|
/**
|
|
33388
33394
|
* Cancels any in-flight async validators on all registered form groups.
|
|
33389
33395
|
*
|