onshore-forms 0.0.49 → 0.0.51

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5tb2RlbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnNob3JlLWZvcm1zL3NyYy9saWIvbW9kZWxzL2Zvcm0ubW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPbnNob3JlRm9ybVRlbXBsYXRlTGF5b3V0LCBPbnNob3JlRm9ybVRlbXBsYXRlVHlwZSB9IGZyb20gJy4uL2VudW1zL2Zvcm0uZW51bXMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBPbnNob3JlQ291bnRyeUNvZGUge1xyXG4gIGlkOiBudW1iZXI7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGFscGhhMjogc3RyaW5nO1xyXG4gIGFscGhhMzogc3RyaW5nO1xyXG4gIGN1cnJlbmN5Pzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIE9uc2hvcmVMYW5ndWFnZUxvY2FsZSB7XHJcbiAgaWQ6IG51bWJlcjtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgY29kZTogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIE9uc2hvcmVGb3JtVGVtcGxhdGVJdGVtIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgbGFiZWxTdHlsZT86IHN0cmluZztcclxuICB0eXBlPzogT25zaG9yZUZvcm1UZW1wbGF0ZVR5cGU7XHJcbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xyXG4gIGxhYmVsPzogc3RyaW5nO1xyXG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xyXG4gIHRvb2x0aXA/OiBzdHJpbmc7XHJcbiAgZW5hYmxlZD86IGJvb2xlYW47XHJcbiAgbG9ja2VkPzogYm9vbGVhbjtcclxuICBsYXlvdXQ/OiBPbnNob3JlRm9ybVRlbXBsYXRlTGF5b3V0O1xyXG4gIG9wdGlvbnM/OiBhbnlbXSB8IHZvaWRbXTtcclxuICBpbnB1dEFkZG9uPzogc3RyaW5nO1xyXG4gIGFjdGlvbkJ1dHRvbj86IGJvb2xlYW47XHJcbiAgYWN0aW9uQnV0dG9uSWNvbj86IHN0cmluZztcclxuICBub0dhcD86IGJvb2xlYW47XHJcbiAgZGVmYXVsdD86IGFueTtcclxuICBkZXNjcmlwdGlvbj86IHN0cmluZztcclxuICB2YWxpZGF0aW9uSXRlbXM/OiBzdHJpbmdbXTtcclxuICB2YWxpZGF0b3JzPzogYW55W107XHJcbiAgc3ViZm9ybUFycmF5PzogT25zaG9yZUZvcm1UZW1wbGF0ZUl0ZW1bXTtcclxuICBzdWJmb3JtT2JqZWN0PzogT25zaG9yZUZvcm1UZW1wbGF0ZUl0ZW1bXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBPbnNob3JlRm9ybVRlbXBsYXRlT3B0aW9ucyB7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICB2YWx1ZTogYW55O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIE9uc2hvcmVGb3JtQXV0b2NvbXBsZXRlSXRlbSB7XHJcbiAgZmlyc3RMaW5lTGFiZWw6IHN0cmluZztcclxuICBzZWNvbmRMaW5lTGFiZWw/OiBzdHJpbmc7XHJcbiAgdGhpcmRMaW5lTGFiZWw/OiBzdHJpbmc7XHJcbiAgZGF0YTogYW55O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIE9uc2hvcmVGb3JtSW1hZ2VTZXR0aW5ncyB7XHJcbiAgaW1hZ2VXaWR0aD86IG51bWJlcjtcclxuICBpbWFnZUhlaWdodD86IG51bWJlcjtcclxuICBjb250YWluV2l0aGluQXNwZWN0UmF0aW8/OiBib29sZWFuO1xyXG4gIGFzcGVjdFJhdGlvPzogbnVtYmVyO1xyXG4gIGltYWdlU2VsZWN0aW9uRW5hYmxlZD86IGJvb2xlYW47XHJcbiAgd2ViY2FtU2VsZWN0aW9uRW5hYmxlZD86IGJvb2xlYW47XHJcbiAgbWVkaWFTZWxlY3Rpb25FbmFibGVkPzogYm9vbGVhbjtcclxuICBkZWxldGVFbmFibGVkPzogYm9vbGVhbjtcclxuICBwbGFjZWhvbGRlckltYWdlPzogc3RyaW5nO1xyXG4gIHBsYWNlaG9sZGVySWNvbj86IHN0cmluZztcclxuICBjb250YWluZXJXaWR0aD86IG51bWJlcjtcclxuICBjb250YWluZXJIZWlnaHQ/OiBudW1iZXI7XHJcbiAgaW1hZ2VRdWFsaXR5PzogbnVtYmVyO1xyXG4gIG1heEZpbGVTaXplPzogbnVtYmVyO1xyXG4gIGZvcm1hdD86ICdwbmcnIHwgJ2pwZWcnIHwgJ2JtcCcgfCAnd2VicCcgfCAnaWNvJztcclxuICBhbGlnbkltYWdlPzogJ2xlZnQnIHwgJ2NlbnRlcic7XHJcbiAgY3JvcHBlclByZXZpZXdIZWlnaHQ/OiBudW1iZXI7XHJcbiAgY3JvcHBlclByZXZpZXdXaWR0aD86IG51bWJlcjtcclxuICB3ZWJjYW1IZWlnaHQ/OiBudW1iZXI7XHJcbiAgd2ViY2FtV2lkdGg/OiBudW1iZXI7XHJcbiAgY2lyY2xlQ3JvcHBlcj86IGJvb2xlYW47XHJcbiAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xyXG59XHJcblxyXG5cclxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5tb2RlbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnNob3JlLWZvcm1zL3NyYy9saWIvbW9kZWxzL2Zvcm0ubW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPbnNob3JlRm9ybVRlbXBsYXRlTGF5b3V0LCBPbnNob3JlRm9ybVRlbXBsYXRlVHlwZSB9IGZyb20gJy4uL2VudW1zL2Zvcm0uZW51bXMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBPbnNob3JlQ291bnRyeUNvZGUge1xyXG4gIGlkOiBudW1iZXI7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGFscGhhMjogc3RyaW5nO1xyXG4gIGFscGhhMzogc3RyaW5nO1xyXG4gIGN1cnJlbmN5Pzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIE9uc2hvcmVMYW5ndWFnZUxvY2FsZSB7XHJcbiAgaWQ6IG51bWJlcjtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgY29kZTogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIE9uc2hvcmVGb3JtVGVtcGxhdGVJdGVtIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgbGFiZWxTdHlsZT86IHN0cmluZztcclxuICB0eXBlPzogT25zaG9yZUZvcm1UZW1wbGF0ZVR5cGU7XHJcbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xyXG4gIGxhYmVsPzogc3RyaW5nO1xyXG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xyXG4gIHRvb2x0aXA/OiBzdHJpbmc7XHJcbiAgZW5hYmxlZD86IGJvb2xlYW47XHJcbiAgbG9ja2VkPzogYm9vbGVhbjtcclxuICBsYXlvdXQ/OiBPbnNob3JlRm9ybVRlbXBsYXRlTGF5b3V0O1xyXG4gIG9wdGlvbnM/OiBhbnlbXSB8IHZvaWRbXTtcclxuICBpbnB1dEFkZG9uPzogc3RyaW5nO1xyXG4gIGFjdGlvbkJ1dHRvbj86IGJvb2xlYW47XHJcbiAgYWN0aW9uQnV0dG9uSWNvbj86IHN0cmluZztcclxuICBub0dhcD86IGJvb2xlYW47XHJcbiAgZGVmYXVsdD86IGFueTtcclxuICBkZXNjcmlwdGlvbj86IHN0cmluZztcclxuICB2YWxpZGF0aW9uSXRlbXM/OiBzdHJpbmdbXTtcclxuICB2YWxpZGF0b3JzPzogYW55W107XHJcbiAgc3ViZm9ybUFycmF5PzogT25zaG9yZUZvcm1UZW1wbGF0ZUl0ZW1bXTtcclxuICBzdWJmb3JtT2JqZWN0PzogT25zaG9yZUZvcm1UZW1wbGF0ZUl0ZW1bXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBPbnNob3JlRm9ybVRlbXBsYXRlT3B0aW9ucyB7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICB2YWx1ZTogYW55O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIE9uc2hvcmVGb3JtQXJyYXlEZWZhdWx0IHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdmFsdWU6IGFueTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBPbnNob3JlRm9ybUF1dG9jb21wbGV0ZUl0ZW0ge1xyXG4gIGZpcnN0TGluZUxhYmVsOiBzdHJpbmc7XHJcbiAgc2Vjb25kTGluZUxhYmVsPzogc3RyaW5nO1xyXG4gIHRoaXJkTGluZUxhYmVsPzogc3RyaW5nO1xyXG4gIGRhdGE6IGFueTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBPbnNob3JlRm9ybUltYWdlU2V0dGluZ3Mge1xyXG4gIGltYWdlV2lkdGg/OiBudW1iZXI7XHJcbiAgaW1hZ2VIZWlnaHQ/OiBudW1iZXI7XHJcbiAgY29udGFpbldpdGhpbkFzcGVjdFJhdGlvPzogYm9vbGVhbjtcclxuICBhc3BlY3RSYXRpbz86IG51bWJlcjtcclxuICBpbWFnZVNlbGVjdGlvbkVuYWJsZWQ/OiBib29sZWFuO1xyXG4gIHdlYmNhbVNlbGVjdGlvbkVuYWJsZWQ/OiBib29sZWFuO1xyXG4gIG1lZGlhU2VsZWN0aW9uRW5hYmxlZD86IGJvb2xlYW47XHJcbiAgZGVsZXRlRW5hYmxlZD86IGJvb2xlYW47XHJcbiAgcGxhY2Vob2xkZXJJbWFnZT86IHN0cmluZztcclxuICBwbGFjZWhvbGRlckljb24/OiBzdHJpbmc7XHJcbiAgY29udGFpbmVyV2lkdGg/OiBudW1iZXI7XHJcbiAgY29udGFpbmVySGVpZ2h0PzogbnVtYmVyO1xyXG4gIGltYWdlUXVhbGl0eT86IG51bWJlcjtcclxuICBtYXhGaWxlU2l6ZT86IG51bWJlcjtcclxuICBmb3JtYXQ/OiAncG5nJyB8ICdqcGVnJyB8ICdibXAnIHwgJ3dlYnAnIHwgJ2ljbyc7XHJcbiAgYWxpZ25JbWFnZT86ICdsZWZ0JyB8ICdjZW50ZXInO1xyXG4gIGNyb3BwZXJQcmV2aWV3SGVpZ2h0PzogbnVtYmVyO1xyXG4gIGNyb3BwZXJQcmV2aWV3V2lkdGg/OiBudW1iZXI7XHJcbiAgd2ViY2FtSGVpZ2h0PzogbnVtYmVyO1xyXG4gIHdlYmNhbVdpZHRoPzogbnVtYmVyO1xyXG4gIGNpcmNsZUNyb3BwZXI/OiBib29sZWFuO1xyXG4gIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcclxufVxyXG5cclxuXHJcbiJdfQ==
@@ -75,23 +75,30 @@ export class OnshoreFormsService {
75
75
  formGroup(form, name) {
76
76
  return form.get(name);
77
77
  }
78
- addFormArrayItem(formArray, item, value = null) {
78
+ addFormArrayItem(formArray, item, defaultValues = null) {
79
79
  let formControls = {};
80
80
  if (item) {
81
81
  item.subformArray?.forEach((subitem) => {
82
82
  if (subitem.type == OnshoreFormTemplateType.subform) {
83
83
  if (item.subformArray) {
84
84
  formControls[subitem.name] = new FormArray([]);
85
+ formControls[subitem.name].setParent(formControls[subitem.name]);
86
+ this.subscribeNestedFormArray(formControls[subitem.name]);
85
87
  }
86
88
  if (item.subformObject) {
87
89
  formControls[subitem.name] = new FormGroup({});
90
+ this.subscribeNestedFormGroup(formControls[subitem.name]);
88
91
  }
89
92
  }
90
93
  else {
91
- formControls[subitem.name] = new FormControl(value ?? (subitem.default !== undefined ? subitem.default : ''), {
94
+ const defaultValue = defaultValues?.find(value => value.name === subitem.name)?.value;
95
+ console.log("OSF - SET DEFAULT", defaultValue);
96
+ formControls[subitem.name] = new FormControl(defaultValue ?? (subitem.default !== undefined ? subitem.default : ''), {
92
97
  validators: subitem.validators || [],
93
98
  updateOn: 'change'
94
99
  });
100
+ formControls[subitem.name].updateValueAndValidity({ onlySelf: false, emitEvent: true });
101
+ console.log("OSF - FORM CONTROL VAL", formControls[subitem.name], formControls[subitem.name].value);
95
102
  }
96
103
  });
97
104
  }
@@ -202,4 +209,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
202
209
  providedIn: 'root'
203
210
  }]
204
211
  }], ctorParameters: function () { return []; } });
205
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25zaG9yZS1mb3Jtcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvb25zaG9yZS1mb3Jtcy9zcmMvbGliL29uc2hvcmUtZm9ybXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQU03RCxNQUFNLE9BQU8sbUJBQW1CO0lBVTlCO1FBTkEscUJBQWdCLEdBQWEsRUFBRSxDQUFDO1FBRWhDLGtCQUFhLEdBQXdCLEVBQUUsQ0FBQztRQUVqQyxlQUFVLEdBQXFCLElBQUksT0FBTyxFQUFXLENBQUM7UUFHM0QsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLFNBQVMsQ0FBQyxFQUFFLEVBQUUsRUFBQyxRQUFRLEVBQUUsUUFBUSxFQUFDLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBVyxJQUFJO1FBQ2IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQztJQUMzQixDQUFDO0lBRU0sU0FBUyxDQUFDLEtBQVU7UUFDekIsSUFBSSxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVNLFNBQVM7UUFDZCxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxLQUFLLEVBQUUsc0JBQXNC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QUFDO1FBQ0osSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2xFLElBQUksQ0FBQyxJQUFJLEVBQUUsc0JBQXNCLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQzFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDOztnSEExTlUsbUJBQW1CO29IQUFuQixtQkFBbUIsY0FGbEIsTUFBTTsyRkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUFycmF5LCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBPbnNob3JlRm9ybVRlbXBsYXRlVHlwZSB9IGZyb20gJy4vZW51bXMvZm9ybS5lbnVtcyc7XG5pbXBvcnQgeyBPbnNob3JlRm9ybVRlbXBsYXRlSXRlbSB9IGZyb20gJy4vbW9kZWxzL2Zvcm0ubW9kZWxzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgT25zaG9yZUZvcm1zU2VydmljZSB7XG5cbiAgX2Zvcm06IEZvcm1Hcm91cDtcbiAgX2Zvcm1UZW1wbGF0ZTogT25zaG9yZUZvcm1UZW1wbGF0ZUl0ZW1bXTtcbiAgX2Zvcm1WYWxpZGF0aW9uczogc3RyaW5nW10gPSBbXTtcblxuICBzdWJzY3JpcHRpb25zOiBBcnJheTxTdWJzY3JpcHRpb24+ID0gW107XG5cbiAgcHVibGljIGlzTG9hZGluZyQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuX2Zvcm0gPSBuZXcgRm9ybUdyb3VwKHt9LCB7dXBkYXRlT246ICdjaGFuZ2UnfSk7XG4gICAgdGhpcy5fZm9ybVRlbXBsYXRlID0gW107XG4gIH1cblxuICBwdWJsaWMgZ2V0IGZvcm0oKTogRm9ybUdyb3VwIHtcbiAgICByZXR1cm4gdGhpcy5fZm9ybTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZm9ybVZhbHVlcygpIHtcbiAgICByZXR1cm4gdGhpcy5fZm9ybT8udmFsdWU7XG4gIH1cblxuICBwdWJsaWMgcGF0Y2hGb3JtKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLl9mb3JtPy5wYXRjaFZhbHVlKHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyByZXNldEZvcm0oKSB7XG4gICAgdGhpcy5fZm9ybT8ucmVzZXQoKTtcbiAgICB0aGlzLl9mb3JtPy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgb25seVNlbGY6IGZhbHNlLCBlbWl0RXZlbnQ6IHRydWUgfSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goKHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uKSA9PiB7XG4gICAgICBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9KTtcblxuICAgIHRoaXMuX2Zvcm0gPSBudWxsITtcbiAgICB0aGlzLl9mb3JtVGVtcGxhdGUgPSBudWxsITtcbiAgfVxuXG4gIHB1YmxpYyByZXNldEZvcm1Db250cm9sKG5hbWU6IHN0cmluZywgdG91Y2hlZDogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgdGhpcy5fZm9ybT8uZ2V0KG5hbWUpLnJlc2V0KCk7XG4gICAgaWYodG91Y2hlZCkge1xuICAgICAgdGhpcy5fZm9ybT8uZ2V0KG5hbWUpLm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgIHRoaXMuX2Zvcm0/LmdldChuYW1lKS5tYXJrQXNEaXJ0eSgpO1xuICAgIH1cbiAgICB0aGlzLl9mb3JtPy5nZXQobmFtZSkudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7IG9ubHlTZWxmOiBmYWxzZSwgZW1pdEV2ZW50OiB0cnVlIH0pO1xuICB9XG5cbiAgcHVibGljIGdlbmVyYXRlRm9ybShmb3JtVGVtcGxhdGU6IE9uc2hvcmVGb3JtVGVtcGxhdGVJdGVtW10pOiBGb3JtR3JvdXAgfCBudWxsIHtcbiAgICB0aGlzLl9mb3JtVGVtcGxhdGUgPSBmb3JtVGVtcGxhdGU7XG4gICAgdGhpcy5fZm9ybSA9IG5ldyBGb3JtR3JvdXAoe30sIHt1cGRhdGVPbjogJ2NoYW5nZSd9KTtcbiAgICB0aGlzLl9mb3JtID0gdGhpcy5pdGVyYXRlTmVzdGVkRm9ybSh0aGlzLl9mb3JtLCBmb3JtVGVtcGxhdGUpO1xuICAgIHJldHVybiB0aGlzLl9mb3JtO1xuICB9XG5cbiAgcHVibGljIGZvcm1UZW1wbGF0ZShuYW1lOiBzdHJpbmcsIGZvcm1UZW1wbGF0ZTogT25zaG9yZUZvcm1UZW1wbGF0ZUl0ZW1bXSA9IHRoaXMuX2Zvcm1UZW1wbGF0ZSk6IE9uc2hvcmVGb3JtVGVtcGxhdGVJdGVtIHtcbiAgICBsZXQgdGVtcGxhdGU6IE9uc2hvcmVGb3JtVGVtcGxhdGVJdGVtO1xuXG4gICAgaWYoZm9ybVRlbXBsYXRlKSB7XG4gICAgICBmb3IobGV0IGkgPSAwOyBpIDwgZm9ybVRlbXBsYXRlPy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBpdGVtID0gZm9ybVRlbXBsYXRlW2ldO1xuICAgICAgICBpZihpdGVtLm5hbWUgPT09IG5hbWUpIHtcbiAgICAgICAgICB0ZW1wbGF0ZSA9IGl0ZW07XG4gICAgICAgICAgaSA9IGZvcm1UZW1wbGF0ZS5sZW5ndGg7XG4gICAgICAgIH1lbHNlIGlmKGl0ZW0uc3ViZm9ybUFycmF5KSB7XG4gICAgICAgICAgY29uc3QgYXJyYXlUZW1wbGF0ZSA9IHRoaXMuZm9ybVRlbXBsYXRlKG5hbWUsIGl0ZW0uc3ViZm9ybUFycmF5KTtcbiAgICAgICAgICBpZihhcnJheVRlbXBsYXRlKSB0ZW1wbGF0ZSA9IGFycmF5VGVtcGxhdGU7XG4gICAgICAgIH1lbHNlIGlmKGl0ZW0uc3ViZm9ybU9iamVjdCkge1xuICAgICAgICAgIGNvbnN0IG9iamVjdFRlbXBsYXRlID0gdGhpcy5mb3JtVGVtcGxhdGUobmFtZSwgaXRlbS5zdWJmb3JtT2JqZWN0KTtcbiAgICAgICAgICBpZihvYmplY3RUZW1wbGF0ZSkgdGVtcGxhdGUgPSBvYmplY3RUZW1wbGF0ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0ZW1wbGF0ZSE7XG4gIH1cblxuICBwdWJsaWMgZm9ybUNvbnRyb2wobmFtZTogc3RyaW5nLCBmb3JtR3JvdXA6IEZvcm1Hcm91cCB8IG51bGwgPSB0aGlzLl9mb3JtKTogRm9ybUNvbnRyb2wge1xuICAgIHJldHVybiBmb3JtR3JvdXA/LmdldChuYW1lKSBhcyBGb3JtQ29udHJvbDtcbiAgfVxuXG4gIHB1YmxpYyBmb3JtQXJyYXkobmFtZTogc3RyaW5nKTogRm9ybUFycmF5IHtcbiAgICByZXR1cm4gdGhpcy5fZm9ybT8uZ2V0KG5hbWUpIGFzIEZvcm1BcnJheTtcbiAgfVxuXG4gIHB1YmxpYyBmb3JtR3JvdXAoZm9ybTogRm9ybUdyb3VwLCBuYW1lOiBzdHJpbmcpOiBGb3JtR3JvdXAgIHtcbiAgICByZXR1cm4gZm9ybS5nZXQobmFtZSkgYXMgRm9ybUdyb3VwO1xuICB9XG5cbiAgcHVibGljIGFkZEZvcm1BcnJheUl0ZW0oZm9ybUFycmF5OiBGb3JtQXJyYXksIGl0ZW06IE9uc2hvcmVGb3JtVGVtcGxhdGVJdGVtLCB2YWx1ZTogYW55ID0gbnVsbCkge1xuICAgIGxldCBmb3JtQ29udHJvbHMgPSA8YW55Pnt9O1xuXG4gICAgaWYoaXRlbSkge1xuICAgICAgaXRlbS5zdWJmb3JtQXJyYXk/LmZvckVhY2goKHN1Yml0ZW06IE9uc2hvcmVGb3JtVGVtcGxhdGVJdGVtKSA9PiB7XG4gICAgICAgIGlmKHN1Yml0ZW0udHlwZSA9PSBPbnNob3JlRm9ybVRlbXBsYXRlVHlwZS5zdWJmb3JtKSB7XG4gICAgICAgICAgaWYgKGl0ZW0uc3ViZm9ybUFycmF5KSB7XG4gICAgICAgICAgICBmb3JtQ29udHJvbHNbc3ViaXRlbS5uYW1lXSA9IG5ldyBGb3JtQXJyYXkoW10pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaXRlbS5zdWJmb3JtT2JqZWN0KSB7XG4gICAgICAgICAgICBmb3JtQ29udHJvbHNbc3ViaXRlbS5uYW1lXSA9IG5ldyBGb3JtR3JvdXAoe30pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBmb3JtQ29udHJvbHNbc3ViaXRlbS5uYW1lXSA9IG5ldyBGb3JtQ29udHJvbCh2YWx1ZSA/PyAoc3ViaXRlbS5kZWZhdWx0ICE9PSB1bmRlZmluZWQgPyBzdWJpdGVtLmRlZmF1bHQgOiAnJyksIHtcbiAgICAgICAgICAgIHZhbGlkYXRvcnM6IHN1Yml0ZW0udmFsaWRhdG9ycyB8fCBbXSxcbiAgICAgICAgICAgIHVwZGF0ZU9uOiAnY2hhbmdlJ1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdCBmb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKGZvcm1Db250cm9scyk7XG4gICAgZm9ybUdyb3VwLnNldFBhcmVudChmb3JtQXJyYXkpO1xuXG4gICAgZm9ybUFycmF5LnB1c2goZm9ybUdyb3VwKTtcblxuICAgIHRoaXMuc3Vic2NyaWJlTmVzdGVkRm9ybUdyb3VwKGZvcm1Hcm91cCk7XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlRm9ybUFycmF5SXRlbShmb3JtOiBGb3JtQXJyYXksIGluZGV4OiBudW1iZXIpIHtcbiAgICBmb3JtLnJlbW92ZUF0KGluZGV4KTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRGb3JtVmFsaWRhdGlvbnModmFsaWRhdGlvbnM6IHN0cmluZ1tdID0gW10pIHtcbiAgICB0aGlzLl9mb3JtVmFsaWRhdGlvbnMgPSB2YWxpZGF0aW9ucztcbiAgfVxuXG4gIHB1YmxpYyBlbmFibGUoKSB7XG4gICAgdGhpcy5fZm9ybVRlbXBsYXRlLmZvckVhY2goKGl0ZW06IE9uc2hvcmVGb3JtVGVtcGxhdGVJdGVtKSA9PiB7XG4gICAgICBpdGVtLmVuYWJsZWQgPSB0cnVlO1xuICAgIH0pO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5fZm9ybT8uZW5hYmxlKHtvbmx5U2VsZjogdHJ1ZSwgZW1pdEV2ZW50OiBmYWxzZX0pO1xuICAgIH0sIDEwMCk7XG4gIH1cblxuICBwdWJsaWMgZGlzYWJsZSgpIHtcbiAgICB0aGlzLl9mb3JtVGVtcGxhdGUuZm9yRWFjaCgoaXRlbTogT25zaG9yZUZvcm1UZW1wbGF0ZUl0ZW0pID0+IHtcbiAgICAgIGl0ZW0uZW5hYmxlZCA9IGZhbHNlO1xuICAgIH0pO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5fZm9ybT8uZGlzYWJsZSh7b25seVNlbGY6IHRydWUsIGVtaXRFdmVudDogZmFsc2V9KTtcbiAgICB9LCAxMDApO1xuICB9XG5cbiAgcHVibGljIHNldEVycm9yKGNvbnRyb2w6IHN0cmluZywgZXJyb3I6IE9iamVjdCkge1xuICAgIGNvbnN0IGVycm9ycyA9IHsuLi50aGlzLmZvcm1Db250cm9sKGNvbnRyb2wpLmVycm9ycyA/PyB7fSwgLi4uZXJyb3J9IDtcbiAgICB0aGlzLmZvcm1Db250cm9sKGNvbnRyb2wpLnNldEVycm9ycyhlcnJvcnMpO1xuICB9XG5cbiAgcHVibGljIHNldExvYWRlcihsb2FkZXJzJDogU3ViamVjdDxib29sZWFuPltdKSB7XG4gICAgbG9hZGVycyQuZm9yRWFjaCgkbG9hZGVyID0+IHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKCRsb2FkZXIuc3Vic2NyaWJlKGlzTG9hZGluZyA9PiB7XG4gICAgICAgIGlzTG9hZGluZyA/IHRoaXMuZGlzYWJsZSgpIDogdGhpcy5lbmFibGUoKTtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmckLm5leHQoaXNMb2FkaW5nKTtcbiAgICAgIH0pKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBsb2NrKGxvY2tTdWJmaWVsZHM6IGJvb2xlYW4gPSB0cnVlKSB7XG4gICAgdGhpcy5fZm9ybVRlbXBsYXRlLmZvckVhY2goKGl0ZW06IE9uc2hvcmVGb3JtVGVtcGxhdGVJdGVtKSA9PiB7XG4gICAgICBpdGVtLmxvY2tlZCA9IHRydWU7XG4gICAgICBpZihpdGVtLnN1YmZvcm1BcnJheSAmJiBsb2NrU3ViZmllbGRzKSB7XG4gICAgICAgIGl0ZW0uc3ViZm9ybUFycmF5LmZvckVhY2goIHN1Yml0ZW0gPT4ge1xuICAgICAgICAgIHN1Yml0ZW0ubG9ja2VkID0gdHJ1ZTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgdW5sb2NrKCkge1xuICAgIHRoaXMuX2Zvcm1UZW1wbGF0ZS5mb3JFYWNoKChpdGVtOiBPbnNob3JlRm9ybVRlbXBsYXRlSXRlbSkgPT4ge1xuICAgICAgaXRlbS5sb2NrZWQgPSBmYWxzZTtcbiAgICAgIGlmKGl0ZW0uc3ViZm9ybUFycmF5KSB7XG4gICAgICAgIGl0ZW0uc3ViZm9ybUFycmF5LmZvckVhY2goIHN1Yml0ZW0gPT4ge1xuICAgICAgICAgIHN1Yml0ZW0ubG9ja2VkID0gZmFsc2U7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgaXRlcmF0ZU5lc3RlZEZvcm0oZm9ybTogRm9ybUdyb3VwLCBmb3JtVGVtcGxhdGU6IE9uc2hvcmVGb3JtVGVtcGxhdGVJdGVtW10pOiBhbnkge1xuICAgIGZvcm1UZW1wbGF0ZS5mb3JFYWNoKChpdGVtOiBPbnNob3JlRm9ybVRlbXBsYXRlSXRlbSkgPT4ge1xuICAgICAgaWYoaXRlbS50eXBlID09PSBPbnNob3JlRm9ybVRlbXBsYXRlVHlwZS5zdWJmb3JtKSB7XG4gICAgICAgIGlmKGl0ZW0uc3ViZm9ybUFycmF5KSB7XG4gICAgICAgICAgZm9ybS5jb250cm9sc1tpdGVtLm5hbWVdID0gbmV3IEZvcm1BcnJheShbXSk7XG4gICAgICAgICAgZm9ybS5jb250cm9sc1tpdGVtLm5hbWVdLnNldFBhcmVudChmb3JtKTtcbiAgICAgICAgICB0aGlzLnN1YnNjcmliZU5lc3RlZEZvcm1BcnJheShmb3JtLmNvbnRyb2xzW2l0ZW0ubmFtZV0gYXMgRm9ybUFycmF5KTtcbiAgICAgICAgfVxuICAgICAgICBpZihpdGVtLnN1YmZvcm1PYmplY3QpIHtcbiAgICAgICAgICBmb3JtLmNvbnRyb2xzW2l0ZW0ubmFtZV0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcbiAgICAgICAgICBmb3JtLmNvbnRyb2xzW2l0ZW0ubmFtZV0gPSB0aGlzLml0ZXJhdGVOZXN0ZWRGb3JtKGZvcm0uY29udHJvbHNbaXRlbS5uYW1lXSBhcyBGb3JtR3JvdXAsIGl0ZW0uc3ViZm9ybU9iamVjdCkgYXMgRm9ybUdyb3VwO1xuICAgICAgICAgIHRoaXMuc3Vic2NyaWJlTmVzdGVkRm9ybUdyb3VwKGZvcm0uY29udHJvbHNbaXRlbS5uYW1lXSBhcyBGb3JtR3JvdXApO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmb3JtLmFkZENvbnRyb2woaXRlbS5uYW1lLCBuZXcgRm9ybUNvbnRyb2woaXRlbS5kZWZhdWx0ICE9PSB1bmRlZmluZWQgPyBpdGVtLmRlZmF1bHQgOiAnJywge1xuICAgICAgICAgIHZhbGlkYXRvcnM6IGl0ZW0udmFsaWRhdG9ycyB8fCBbXSxcbiAgICAgICAgICB1cGRhdGVPbjogJ2NoYW5nZSdcbiAgICAgICAgfSkpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBmb3JtO1xuICB9XG5cbiAgc3Vic2NyaWJlTmVzdGVkRm9ybUFycmF5KG5lc3RlZEZvcm1JdGVtOiBGb3JtQXJyYXkpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChuZXN0ZWRGb3JtSXRlbS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuZm9ybT8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7IG9ubHlTZWxmOiB0cnVlLCBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgIH0pKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChuZXN0ZWRGb3JtSXRlbS5zdGF0dXNDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmZvcm0/LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoeyBvbmx5U2VsZjogdHJ1ZSwgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICB9KSk7XG4gIH1cblxuICBzdWJzY3JpYmVOZXN0ZWRGb3JtR3JvdXAobmVzdGVkRm9ybUl0ZW06IEZvcm1Hcm91cCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKG5lc3RlZEZvcm1JdGVtLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5mb3JtPy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgb25seVNlbGY6IHRydWUsIGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgfSkpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKG5lc3RlZEZvcm1JdGVtLnN0YXR1c0NoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuZm9ybT8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7IG9ubHlTZWxmOiB0cnVlLCBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgIH0pKTtcbiAgfVxuXG59XG4iXX0=
212
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25zaG9yZS1mb3Jtcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvb25zaG9yZS1mb3Jtcy9zcmMvbGliL29uc2hvcmUtZm9ybXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQU03RCxNQUFNLE9BQU8sbUJBQW1CO0lBVTlCO1FBTkEscUJBQWdCLEdBQWEsRUFBRSxDQUFDO1FBRWhDLGtCQUFhLEdBQXdCLEVBQUUsQ0FBQztRQUVqQyxlQUFVLEdBQXFCLElBQUksT0FBTyxFQUFXLENBQUM7UUFHM0QsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLFNBQVMsQ0FBQyxFQUFFLEVBQUUsRUFBQyxRQUFRLEVBQUUsUUFBUSxFQUFDLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBVyxJQUFJO1FBQ2IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQztJQUMzQixDQUFDO0lBRU0sU0FBUyxDQUFDLEtBQVU7UUFDekIsSUFBSSxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVNLFNBQVM7UUFDZCxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxLQUFLLEVBQUUsc0JBQXNC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SC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUFycmF5LCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBPbnNob3JlRm9ybVRlbXBsYXRlVHlwZSB9IGZyb20gJy4vZW51bXMvZm9ybS5lbnVtcyc7XG5pbXBvcnQgeyBPbnNob3JlRm9ybUFycmF5RGVmYXVsdCwgT25zaG9yZUZvcm1UZW1wbGF0ZUl0ZW0gfSBmcm9tICcuL21vZGVscy9mb3JtLm1vZGVscyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIE9uc2hvcmVGb3Jtc1NlcnZpY2Uge1xuXG4gIF9mb3JtOiBGb3JtR3JvdXA7XG4gIF9mb3JtVGVtcGxhdGU6IE9uc2hvcmVGb3JtVGVtcGxhdGVJdGVtW107XG4gIF9mb3JtVmFsaWRhdGlvbnM6IHN0cmluZ1tdID0gW107XG5cbiAgc3Vic2NyaXB0aW9uczogQXJyYXk8U3Vic2NyaXB0aW9uPiA9IFtdO1xuXG4gIHB1YmxpYyBpc0xvYWRpbmckOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLl9mb3JtID0gbmV3IEZvcm1Hcm91cCh7fSwge3VwZGF0ZU9uOiAnY2hhbmdlJ30pO1xuICAgIHRoaXMuX2Zvcm1UZW1wbGF0ZSA9IFtdO1xuICB9XG5cbiAgcHVibGljIGdldCBmb3JtKCk6IEZvcm1Hcm91cCB7XG4gICAgcmV0dXJuIHRoaXMuX2Zvcm07XG4gIH1cblxuICBwdWJsaWMgZ2V0IGZvcm1WYWx1ZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2Zvcm0/LnZhbHVlO1xuICB9XG5cbiAgcHVibGljIHBhdGNoRm9ybSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5fZm9ybT8ucGF0Y2hWYWx1ZSh2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgcmVzZXRGb3JtKCkge1xuICAgIHRoaXMuX2Zvcm0/LnJlc2V0KCk7XG4gICAgdGhpcy5fZm9ybT8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7IG9ubHlTZWxmOiBmYWxzZSwgZW1pdEV2ZW50OiB0cnVlIH0pO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKChzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbikgPT4ge1xuICAgICAgc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLl9mb3JtID0gbnVsbCE7XG4gICAgdGhpcy5fZm9ybVRlbXBsYXRlID0gbnVsbCE7XG4gIH1cblxuICBwdWJsaWMgcmVzZXRGb3JtQ29udHJvbChuYW1lOiBzdHJpbmcsIHRvdWNoZWQ6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgIHRoaXMuX2Zvcm0/LmdldChuYW1lKS5yZXNldCgpO1xuICAgIGlmKHRvdWNoZWQpIHtcbiAgICAgIHRoaXMuX2Zvcm0/LmdldChuYW1lKS5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICB0aGlzLl9mb3JtPy5nZXQobmFtZSkubWFya0FzRGlydHkoKTtcbiAgICB9XG4gICAgdGhpcy5fZm9ybT8uZ2V0KG5hbWUpLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoeyBvbmx5U2VsZjogZmFsc2UsIGVtaXRFdmVudDogdHJ1ZSB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZW5lcmF0ZUZvcm0oZm9ybVRlbXBsYXRlOiBPbnNob3JlRm9ybVRlbXBsYXRlSXRlbVtdKTogRm9ybUdyb3VwIHwgbnVsbCB7XG4gICAgdGhpcy5fZm9ybVRlbXBsYXRlID0gZm9ybVRlbXBsYXRlO1xuICAgIHRoaXMuX2Zvcm0gPSBuZXcgRm9ybUdyb3VwKHt9LCB7dXBkYXRlT246ICdjaGFuZ2UnfSk7XG4gICAgdGhpcy5fZm9ybSA9IHRoaXMuaXRlcmF0ZU5lc3RlZEZvcm0odGhpcy5fZm9ybSwgZm9ybVRlbXBsYXRlKTtcbiAgICByZXR1cm4gdGhpcy5fZm9ybTtcbiAgfVxuXG4gIHB1YmxpYyBmb3JtVGVtcGxhdGUobmFtZTogc3RyaW5nLCBmb3JtVGVtcGxhdGU6IE9uc2hvcmVGb3JtVGVtcGxhdGVJdGVtW10gPSB0aGlzLl9mb3JtVGVtcGxhdGUpOiBPbnNob3JlRm9ybVRlbXBsYXRlSXRlbSB7XG4gICAgbGV0IHRlbXBsYXRlOiBPbnNob3JlRm9ybVRlbXBsYXRlSXRlbTtcblxuICAgIGlmKGZvcm1UZW1wbGF0ZSkge1xuICAgICAgZm9yKGxldCBpID0gMDsgaSA8IGZvcm1UZW1wbGF0ZT8ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgaXRlbSA9IGZvcm1UZW1wbGF0ZVtpXTtcbiAgICAgICAgaWYoaXRlbS5uYW1lID09PSBuYW1lKSB7XG4gICAgICAgICAgdGVtcGxhdGUgPSBpdGVtO1xuICAgICAgICAgIGkgPSBmb3JtVGVtcGxhdGUubGVuZ3RoO1xuICAgICAgICB9ZWxzZSBpZihpdGVtLnN1YmZvcm1BcnJheSkge1xuICAgICAgICAgIGNvbnN0IGFycmF5VGVtcGxhdGUgPSB0aGlzLmZvcm1UZW1wbGF0ZShuYW1lLCBpdGVtLnN1YmZvcm1BcnJheSk7XG4gICAgICAgICAgaWYoYXJyYXlUZW1wbGF0ZSkgdGVtcGxhdGUgPSBhcnJheVRlbXBsYXRlO1xuICAgICAgICB9ZWxzZSBpZihpdGVtLnN1YmZvcm1PYmplY3QpIHtcbiAgICAgICAgICBjb25zdCBvYmplY3RUZW1wbGF0ZSA9IHRoaXMuZm9ybVRlbXBsYXRlKG5hbWUsIGl0ZW0uc3ViZm9ybU9iamVjdCk7XG4gICAgICAgICAgaWYob2JqZWN0VGVtcGxhdGUpIHRlbXBsYXRlID0gb2JqZWN0VGVtcGxhdGU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGVtcGxhdGUhO1xuICB9XG5cbiAgcHVibGljIGZvcm1Db250cm9sKG5hbWU6IHN0cmluZywgZm9ybUdyb3VwOiBGb3JtR3JvdXAgfCBudWxsID0gdGhpcy5fZm9ybSk6IEZvcm1Db250cm9sIHtcbiAgICByZXR1cm4gZm9ybUdyb3VwPy5nZXQobmFtZSkgYXMgRm9ybUNvbnRyb2w7XG4gIH1cblxuICBwdWJsaWMgZm9ybUFycmF5KG5hbWU6IHN0cmluZyk6IEZvcm1BcnJheSB7XG4gICAgcmV0dXJuIHRoaXMuX2Zvcm0/LmdldChuYW1lKSBhcyBGb3JtQXJyYXk7XG4gIH1cblxuICBwdWJsaWMgZm9ybUdyb3VwKGZvcm06IEZvcm1Hcm91cCwgbmFtZTogc3RyaW5nKTogRm9ybUdyb3VwICB7XG4gICAgcmV0dXJuIGZvcm0uZ2V0KG5hbWUpIGFzIEZvcm1Hcm91cDtcbiAgfVxuXG4gIHB1YmxpYyBhZGRGb3JtQXJyYXlJdGVtKGZvcm1BcnJheTogRm9ybUFycmF5LCBpdGVtOiBPbnNob3JlRm9ybVRlbXBsYXRlSXRlbSwgZGVmYXVsdFZhbHVlczogT25zaG9yZUZvcm1BcnJheURlZmF1bHRbXSA9IG51bGwpIHtcbiAgICBsZXQgZm9ybUNvbnRyb2xzID0gPGFueT57fTtcblxuICAgIGlmKGl0ZW0pIHtcbiAgICAgIGl0ZW0uc3ViZm9ybUFycmF5Py5mb3JFYWNoKChzdWJpdGVtOiBPbnNob3JlRm9ybVRlbXBsYXRlSXRlbSkgPT4ge1xuICAgICAgICBpZihzdWJpdGVtLnR5cGUgPT0gT25zaG9yZUZvcm1UZW1wbGF0ZVR5cGUuc3ViZm9ybSkge1xuICAgICAgICAgIGlmIChpdGVtLnN1YmZvcm1BcnJheSkge1xuICAgICAgICAgICAgZm9ybUNvbnRyb2xzW3N1Yml0ZW0ubmFtZV0gPSBuZXcgRm9ybUFycmF5KFtdKTtcbiAgICAgICAgICAgIGZvcm1Db250cm9sc1tzdWJpdGVtLm5hbWVdLnNldFBhcmVudChmb3JtQ29udHJvbHNbc3ViaXRlbS5uYW1lXSk7XG4gICAgICAgICAgICB0aGlzLnN1YnNjcmliZU5lc3RlZEZvcm1BcnJheShmb3JtQ29udHJvbHNbc3ViaXRlbS5uYW1lXSBhcyBGb3JtQXJyYXkpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaXRlbS5zdWJmb3JtT2JqZWN0KSB7XG4gICAgICAgICAgICBmb3JtQ29udHJvbHNbc3ViaXRlbS5uYW1lXSA9IG5ldyBGb3JtR3JvdXAoe30pO1xuICAgICAgICAgICAgdGhpcy5zdWJzY3JpYmVOZXN0ZWRGb3JtR3JvdXAoZm9ybUNvbnRyb2xzW3N1Yml0ZW0ubmFtZV0gYXMgRm9ybUdyb3VwKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgZGVmYXVsdFZhbHVlID0gZGVmYXVsdFZhbHVlcz8uZmluZCh2YWx1ZSA9PiB2YWx1ZS5uYW1lID09PSBzdWJpdGVtLm5hbWUpPy52YWx1ZTtcbmNvbnNvbGUubG9nKFwiT1NGIC0gU0VUIERFRkFVTFRcIiwgZGVmYXVsdFZhbHVlKTtcbiAgICAgICAgICBmb3JtQ29udHJvbHNbc3ViaXRlbS5uYW1lXSA9IG5ldyBGb3JtQ29udHJvbChkZWZhdWx0VmFsdWUgPz8gKHN1Yml0ZW0uZGVmYXVsdCAhPT0gdW5kZWZpbmVkID8gc3ViaXRlbS5kZWZhdWx0IDogJycpLCB7XG4gICAgICAgICAgICB2YWxpZGF0b3JzOiBzdWJpdGVtLnZhbGlkYXRvcnMgfHwgW10sXG4gICAgICAgICAgICB1cGRhdGVPbjogJ2NoYW5nZSdcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBmb3JtQ29udHJvbHNbc3ViaXRlbS5uYW1lXS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgb25seVNlbGY6IGZhbHNlLCBlbWl0RXZlbnQ6IHRydWUgfSk7XG4gICAgICAgICAgY29uc29sZS5sb2coXCJPU0YgLSBGT1JNIENPTlRST0wgVkFMXCIsIGZvcm1Db250cm9sc1tzdWJpdGVtLm5hbWVdLCBmb3JtQ29udHJvbHNbc3ViaXRlbS5uYW1lXS52YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IGZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoZm9ybUNvbnRyb2xzKTtcbiAgICBmb3JtR3JvdXAuc2V0UGFyZW50KGZvcm1BcnJheSk7XG5cbiAgICBmb3JtQXJyYXkucHVzaChmb3JtR3JvdXApO1xuXG4gICAgdGhpcy5zdWJzY3JpYmVOZXN0ZWRGb3JtR3JvdXAoZm9ybUdyb3VwKTtcbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVGb3JtQXJyYXlJdGVtKGZvcm06IEZvcm1BcnJheSwgaW5kZXg6IG51bWJlcikge1xuICAgIGZvcm0ucmVtb3ZlQXQoaW5kZXgpO1xuICB9XG5cbiAgcHVibGljIHNldEZvcm1WYWxpZGF0aW9ucyh2YWxpZGF0aW9uczogc3RyaW5nW10gPSBbXSkge1xuICAgIHRoaXMuX2Zvcm1WYWxpZGF0aW9ucyA9IHZhbGlkYXRpb25zO1xuICB9XG5cbiAgcHVibGljIGVuYWJsZSgpIHtcbiAgICB0aGlzLl9mb3JtVGVtcGxhdGUuZm9yRWFjaCgoaXRlbTogT25zaG9yZUZvcm1UZW1wbGF0ZUl0ZW0pID0+IHtcbiAgICAgIGl0ZW0uZW5hYmxlZCA9IHRydWU7XG4gICAgfSk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLl9mb3JtPy5lbmFibGUoe29ubHlTZWxmOiB0cnVlLCBlbWl0RXZlbnQ6IGZhbHNlfSk7XG4gICAgfSwgMTAwKTtcbiAgfVxuXG4gIHB1YmxpYyBkaXNhYmxlKCkge1xuICAgIHRoaXMuX2Zvcm1UZW1wbGF0ZS5mb3JFYWNoKChpdGVtOiBPbnNob3JlRm9ybVRlbXBsYXRlSXRlbSkgPT4ge1xuICAgICAgaXRlbS5lbmFibGVkID0gZmFsc2U7XG4gICAgfSk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLl9mb3JtPy5kaXNhYmxlKHtvbmx5U2VsZjogdHJ1ZSwgZW1pdEV2ZW50OiBmYWxzZX0pO1xuICAgIH0sIDEwMCk7XG4gIH1cblxuICBwdWJsaWMgc2V0RXJyb3IoY29udHJvbDogc3RyaW5nLCBlcnJvcjogT2JqZWN0KSB7XG4gICAgY29uc3QgZXJyb3JzID0gey4uLnRoaXMuZm9ybUNvbnRyb2woY29udHJvbCkuZXJyb3JzID8/IHt9LCAuLi5lcnJvcn0gO1xuICAgIHRoaXMuZm9ybUNvbnRyb2woY29udHJvbCkuc2V0RXJyb3JzKGVycm9ycyk7XG4gIH1cblxuICBwdWJsaWMgc2V0TG9hZGVyKGxvYWRlcnMkOiBTdWJqZWN0PGJvb2xlYW4+W10pIHtcbiAgICBsb2FkZXJzJC5mb3JFYWNoKCRsb2FkZXIgPT4ge1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goJGxvYWRlci5zdWJzY3JpYmUoaXNMb2FkaW5nID0+IHtcbiAgICAgICAgaXNMb2FkaW5nID8gdGhpcy5kaXNhYmxlKCkgOiB0aGlzLmVuYWJsZSgpO1xuICAgICAgICB0aGlzLmlzTG9hZGluZyQubmV4dChpc0xvYWRpbmcpO1xuICAgICAgfSkpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGxvY2sobG9ja1N1YmZpZWxkczogYm9vbGVhbiA9IHRydWUpIHtcbiAgICB0aGlzLl9mb3JtVGVtcGxhdGUuZm9yRWFjaCgoaXRlbTogT25zaG9yZUZvcm1UZW1wbGF0ZUl0ZW0pID0+IHtcbiAgICAgIGl0ZW0ubG9ja2VkID0gdHJ1ZTtcbiAgICAgIGlmKGl0ZW0uc3ViZm9ybUFycmF5ICYmIGxvY2tTdWJmaWVsZHMpIHtcbiAgICAgICAgaXRlbS5zdWJmb3JtQXJyYXkuZm9yRWFjaCggc3ViaXRlbSA9PiB7XG4gICAgICAgICAgc3ViaXRlbS5sb2NrZWQgPSB0cnVlO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyB1bmxvY2soKSB7XG4gICAgdGhpcy5fZm9ybVRlbXBsYXRlLmZvckVhY2goKGl0ZW06IE9uc2hvcmVGb3JtVGVtcGxhdGVJdGVtKSA9PiB7XG4gICAgICBpdGVtLmxvY2tlZCA9IGZhbHNlO1xuICAgICAgaWYoaXRlbS5zdWJmb3JtQXJyYXkpIHtcbiAgICAgICAgaXRlbS5zdWJmb3JtQXJyYXkuZm9yRWFjaCggc3ViaXRlbSA9PiB7XG4gICAgICAgICAgc3ViaXRlbS5sb2NrZWQgPSBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBpdGVyYXRlTmVzdGVkRm9ybShmb3JtOiBGb3JtR3JvdXAsIGZvcm1UZW1wbGF0ZTogT25zaG9yZUZvcm1UZW1wbGF0ZUl0ZW1bXSk6IGFueSB7XG4gICAgZm9ybVRlbXBsYXRlLmZvckVhY2goKGl0ZW06IE9uc2hvcmVGb3JtVGVtcGxhdGVJdGVtKSA9PiB7XG4gICAgICBpZihpdGVtLnR5cGUgPT09IE9uc2hvcmVGb3JtVGVtcGxhdGVUeXBlLnN1YmZvcm0pIHtcbiAgICAgICAgaWYoaXRlbS5zdWJmb3JtQXJyYXkpIHtcbiAgICAgICAgICBmb3JtLmNvbnRyb2xzW2l0ZW0ubmFtZV0gPSBuZXcgRm9ybUFycmF5KFtdKTtcbiAgICAgICAgICBmb3JtLmNvbnRyb2xzW2l0ZW0ubmFtZV0uc2V0UGFyZW50KGZvcm0pO1xuICAgICAgICAgIHRoaXMuc3Vic2NyaWJlTmVzdGVkRm9ybUFycmF5KGZvcm0uY29udHJvbHNbaXRlbS5uYW1lXSBhcyBGb3JtQXJyYXkpO1xuICAgICAgICB9XG4gICAgICAgIGlmKGl0ZW0uc3ViZm9ybU9iamVjdCkge1xuICAgICAgICAgIGZvcm0uY29udHJvbHNbaXRlbS5uYW1lXSA9IG5ldyBGb3JtR3JvdXAoe30pO1xuICAgICAgICAgIGZvcm0uY29udHJvbHNbaXRlbS5uYW1lXSA9IHRoaXMuaXRlcmF0ZU5lc3RlZEZvcm0oZm9ybS5jb250cm9sc1tpdGVtLm5hbWVdIGFzIEZvcm1Hcm91cCwgaXRlbS5zdWJmb3JtT2JqZWN0KSBhcyBGb3JtR3JvdXA7XG4gICAgICAgICAgdGhpcy5zdWJzY3JpYmVOZXN0ZWRGb3JtR3JvdXAoZm9ybS5jb250cm9sc1tpdGVtLm5hbWVdIGFzIEZvcm1Hcm91cCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZvcm0uYWRkQ29udHJvbChpdGVtLm5hbWUsIG5ldyBGb3JtQ29udHJvbChpdGVtLmRlZmF1bHQgIT09IHVuZGVmaW5lZCA/IGl0ZW0uZGVmYXVsdCA6ICcnLCB7XG4gICAgICAgICAgdmFsaWRhdG9yczogaXRlbS52YWxpZGF0b3JzIHx8IFtdLFxuICAgICAgICAgIHVwZGF0ZU9uOiAnY2hhbmdlJ1xuICAgICAgICB9KSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGZvcm07XG4gIH1cblxuICBzdWJzY3JpYmVOZXN0ZWRGb3JtQXJyYXkobmVzdGVkRm9ybUl0ZW06IEZvcm1BcnJheSkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKG5lc3RlZEZvcm1JdGVtLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5mb3JtPy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgb25seVNlbGY6IHRydWUsIGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgfSkpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKG5lc3RlZEZvcm1JdGVtLnN0YXR1c0NoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuZm9ybT8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7IG9ubHlTZWxmOiB0cnVlLCBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgIH0pKTtcbiAgfVxuXG4gIHN1YnNjcmliZU5lc3RlZEZvcm1Hcm91cChuZXN0ZWRGb3JtSXRlbTogRm9ybUdyb3VwKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2gobmVzdGVkRm9ybUl0ZW0udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmZvcm0/LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoeyBvbmx5U2VsZjogdHJ1ZSwgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICB9KSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2gobmVzdGVkRm9ybUl0ZW0uc3RhdHVzQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5mb3JtPy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgb25seVNlbGY6IHRydWUsIGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgfSkpO1xuICB9XG5cbn1cbiJdfQ==
@@ -162,24 +162,32 @@ class OnshoreFormsService {
162
162
  formGroup(form, name) {
163
163
  return form.get(name);
164
164
  }
165
- addFormArrayItem(formArray, item, value = null) {
165
+ addFormArrayItem(formArray, item, defaultValues = null) {
166
166
  var _a;
167
167
  let formControls = {};
168
168
  if (item) {
169
169
  (_a = item.subformArray) === null || _a === void 0 ? void 0 : _a.forEach((subitem) => {
170
+ var _a;
170
171
  if (subitem.type == OnshoreFormTemplateType.subform) {
171
172
  if (item.subformArray) {
172
173
  formControls[subitem.name] = new FormArray([]);
174
+ formControls[subitem.name].setParent(formControls[subitem.name]);
175
+ this.subscribeNestedFormArray(formControls[subitem.name]);
173
176
  }
174
177
  if (item.subformObject) {
175
178
  formControls[subitem.name] = new FormGroup({});
179
+ this.subscribeNestedFormGroup(formControls[subitem.name]);
176
180
  }
177
181
  }
178
182
  else {
179
- formControls[subitem.name] = new FormControl(value !== null && value !== void 0 ? value : (subitem.default !== undefined ? subitem.default : ''), {
183
+ const defaultValue = (_a = defaultValues === null || defaultValues === void 0 ? void 0 : defaultValues.find(value => value.name === subitem.name)) === null || _a === void 0 ? void 0 : _a.value;
184
+ console.log("OSF - SET DEFAULT", defaultValue);
185
+ formControls[subitem.name] = new FormControl(defaultValue !== null && defaultValue !== void 0 ? defaultValue : (subitem.default !== undefined ? subitem.default : ''), {
180
186
  validators: subitem.validators || [],
181
187
  updateOn: 'change'
182
188
  });
189
+ formControls[subitem.name].updateValueAndValidity({ onlySelf: false, emitEvent: true });
190
+ console.log("OSF - FORM CONTROL VAL", formControls[subitem.name], formControls[subitem.name].value);
183
191
  }
184
192
  });
185
193
  }