mmhglobal-dynamicform 2.0.0-beta.63 → 2.0.0-beta.65

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/README.md CHANGED
@@ -3,6 +3,17 @@
3
3
  This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 11.2.13.
4
4
 
5
5
  ## Changelog
6
+ `2.65beta`<br/>
7
+ [zudf error handler] - fix error handling. <br/>
8
+ [inputfieldbase] - rename variable.<br/>
9
+ [zudf] - added getValidatedFormZModel function.
10
+
11
+ `2.64beta`<br/>
12
+ [zgrid] - change gridCustomResetCommand icon. <br/>
13
+ [zudf] - enhance ui display.<br/>
14
+ [zudf] - fix field not removed from preview create new form.<br/>
15
+ [inputfieldbase zudf] - add more param for triggerValidation when trigger to pass back.<br/>
16
+
6
17
  `2.63beta`<br/>
7
18
  [zudf] - enhancement for ChildFields feature which will be auto populate value related base on configuration. <br/>
8
19
  [inputfieldbase zudf] - enhancement to support event triggering by async when onchange. <br/>
@@ -20,11 +20,11 @@ export class InputFieldBase extends FieldBase {
20
20
  onChange(event, fieldValue) {
21
21
  if (this.data.SubType && this.data.SubType === 'zudf') {
22
22
  const zudfFieldValue = this.getFieldValue(event, fieldValue);
23
- const zudfContainerScope = ZComponentHelper.getZudfContainerScope(this.group, this.data.Value);
24
- if (!zudfContainerScope) {
23
+ const getZudfScope = ZComponentHelper.getZudfScope(this.group, this.data.Value);
24
+ if (!getZudfScope) {
25
25
  console.log('zudf scope is null for field onchange.');
26
26
  }
27
- zudfContainerScope.zModel[this.data.Value] = zudfFieldValue;
27
+ getZudfScope.zModel[this.data.Value] = zudfFieldValue;
28
28
  of({}).pipe(switchMap(res => {
29
29
  const eventName = 'TriggerDependentFiltering';
30
30
  if (this.group) {
@@ -36,35 +36,47 @@ export class InputFieldBase extends FieldBase {
36
36
  }), tap(res => {
37
37
  if (this.data['AutoPopulateChildFieldValue']) {
38
38
  // ZUDF. Auto Populate child field value
39
- if (this.data['ChildFields']) {
40
- // get the selected data full info
41
- const dataOption = this.group.zData[this.data['ZDataOptionName']];
39
+ const childFields = this.data['ChildFields'];
40
+ if (childFields) {
42
41
  let selectedDataOption = null;
43
- dataOption.forEach(option => {
44
- if (option.Id === fieldValue) {
45
- selectedDataOption = Object.assign({}, option);
46
- return;
42
+ if (fieldValue) {
43
+ // get the selected data full info
44
+ const dataOption = this.group.zData[this.data['ZDataOptionName']];
45
+ if (dataOption) {
46
+ dataOption.forEach(option => {
47
+ if (option.Id === fieldValue) {
48
+ selectedDataOption = Object.assign({}, option);
49
+ return;
50
+ }
51
+ });
47
52
  }
48
- });
49
- // set to all related zMode of the dropdown
50
- let fg = zudfContainerScope.form;
51
- if (selectedDataOption) {
52
- this.data['ChildFields'].forEach(childField => {
53
- // remove symbol.
54
- let childFieldName = encodeURI(childField.replace(/[^a-z0-9]/gi, ""));
55
- const fieldModelName = this.data.Name + childFieldName;
56
- const zModels = zudfContainerScope.zModel;
57
- zModels[fieldModelName] = selectedDataOption[childFieldName];
58
- fg.patchValue(zModels);
59
- });
60
53
  }
54
+ // set to all related zMode of the dropdown
55
+ let fg = getZudfScope.form;
56
+ childFields.forEach(childField => {
57
+ // remove symbol.
58
+ let childFieldName = encodeURI(childField.replace(/[^a-z0-9]/gi, ""));
59
+ const fieldModelName = this.data.Name + childFieldName;
60
+ const zModels = getZudfScope.zModel;
61
+ const childComponent = ZComponentHelper.getComponent(this.group, 'text_' + fieldModelName);
62
+ if (childComponent['data']['ReadOnly'] && !fieldValue) {
63
+ // clear child field if only readonly is true.
64
+ zModels[fieldModelName] = !fieldValue ? null : selectedDataOption ? selectedDataOption[childFieldName] : null;
65
+ }
66
+ else {
67
+ if (selectedDataOption) {
68
+ zModels[fieldModelName] = selectedDataOption[childFieldName];
69
+ }
70
+ }
71
+ fg.patchValue(zModels);
72
+ });
61
73
  }
62
74
  }
63
75
  }), switchMap(res => {
64
76
  const eventName = 'triggerValidation';
65
77
  if (this.group) {
66
78
  if (this.group[eventName]) {
67
- return this.group[eventName](this.group);
79
+ return this.group[eventName](this.group, event, fieldValue);
68
80
  }
69
81
  }
70
82
  return of({});
@@ -133,4 +145,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
133
145
  type: Output,
134
146
  args: ['triggerContainerEvent']
135
147
  }] } });
136
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXRmaWVsZGJhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvY29tcG9uZW50cy9pbnB1dGZpZWxkYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBeUIsTUFBTSxpQkFBaUIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFbEQsT0FBTyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7QUFPMUMsMklBQTJJO0FBQzNJLE1BQU0sT0FBTyxjQUFlLFNBQVEsU0FBUztJQUUzQyxZQUFZLFdBQThCO1FBQ3hDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUZZLDBCQUFxQixHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBRy9GLENBQUM7SUFFTSxPQUFPLENBQUMsS0FBVSxFQUFFLFVBQWdCO1FBQ3pDLElBQUksQ0FBQyxZQUFZLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsSUFBSSxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNwRyxDQUFDO0lBRU0sVUFBVSxDQUFDLEtBQVUsRUFBRSxVQUFnQjtRQUM1QyxnQkFBZ0IsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0RyxJQUFJLENBQUMsWUFBWSxDQUFDLHVCQUF1QixFQUFFLElB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RVMsWUFBWSxDQUFDLElBQVksRUFBRSxNQUFXLEVBQUUsS0FBVSxFQUFFLFVBQWdCO1FBQzVFLElBQUksTUFBTSxFQUFFO1lBQ1YsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO2dCQUN0QixJQUFJLEVBQUUsSUFBSTtnQkFDVixNQUFNLEVBQUUsTUFBTTtnQkFDZCxLQUFLO2dCQUNMLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFO2FBQzVELENBQUMsQ0FBQztTQUM3QjtJQUNILENBQUM7SUFFTyxhQUFhLENBQUMsS0FBVSxFQUFFLFVBQWdCO1FBQ2hELElBQUksVUFBVSxJQUFJLElBQUksSUFBSSxVQUFVLElBQUksU0FBUyxFQUFFO1lBQ2pELE9BQU8sS0FBSyxFQUFFLEtBQUssSUFBSSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQTtTQUM1QztRQUNELE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7OzRHQXhJVSxjQUFjO2dHQUFkLGNBQWMsd0lBSmYsRUFBRTs0RkFJRCxjQUFjO2tCQUwxQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxFQUFFO2lCQUNiO3dHQUlrQyxxQkFBcUI7c0JBQXJELE1BQU07dUJBQUMsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIE91dHB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFpDb21wb25lbnRIZWxwZXIsIFpDb21wb25lbnRPdXRwdXRFdmVudCB9IGZyb20gXCJtbWhnbG9iYWwtemNvcmVcIjtcclxuaW1wb3J0IHsgRmllbGRCYXNlIH0gZnJvbSBcIi4vZmllbGRiYXNlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBaQ29tcG9uZW50U2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy96Y29tcG9uZW50LnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgb2YsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICB0ZW1wbGF0ZTogYGAsXHJcbn0pXHJcblxyXG4vLyBGb3I6IHpjaGVja2JveCwgemNoaXAsIHpkYXRldGltZSwgemltZywgemlucHV0LWNvbnRhaW5lciwgemxhYmVsLCB6bnVtZXJpYywgenBvc3RzZWxlY3RpbnB1dCwgenNlbGVjdG11bHRpcGxlLCB6dGV4dCwgenRleHRhcmVhLCB6dXBsb2FkXHJcbmV4cG9ydCBjbGFzcyBJbnB1dEZpZWxkQmFzZSBleHRlbmRzIEZpZWxkQmFzZSB7XHJcbiAgQE91dHB1dCgndHJpZ2dlckNvbnRhaW5lckV2ZW50JykgdHJpZ2dlckNvbnRhaW5lckV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBjb25zdHJ1Y3Rvcihjb21wU2VydmljZTogWkNvbXBvbmVudFNlcnZpY2UpIHtcclxuICAgIHN1cGVyKGNvbXBTZXJ2aWNlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkNsaWNrKGV2ZW50OiBhbnksIGZpZWxkVmFsdWU/OiBhbnkpIHtcclxuICAgIHRoaXMudHJpZ2dlckV2ZW50KFwiaW5wdXRmaWVsZC1vbkNsaWNrXCIsIHRoaXMuZGF0YS5PbkNsaWNrLCBldmVudCwgZmllbGRWYWx1ZSB8fCBldmVudFsnT25DbGljayddKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkNoYW5nZUNDKGV2ZW50OiBhbnksIGZpZWxkVmFsdWU/OiBhbnkpIHtcclxuICAgIFpDb21wb25lbnRIZWxwZXIuc2V0Q29tcG9uZW50TW9kZWxWYWx1ZSh0aGlzLmRhdGEsIHRoaXMuZ2V0RmllbGRWYWx1ZShldmVudCwgZmllbGRWYWx1ZSksIHRoaXMuZ3JvdXApO1xyXG4gICAgdGhpcy50cmlnZ2VyRXZlbnQoXCJpbnB1dGZpZWxkLW9uQ2hhbmdlQ0NcIiwgdGhpcy5kYXRhLkNDT25DaGFuZ2UsIGV2ZW50LCBmaWVsZFZhbHVlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkNoYW5nZShldmVudDogYW55LCBmaWVsZFZhbHVlPzogYW55KSB7XHJcbiAgICBpZiAodGhpcy5kYXRhLlN1YlR5cGUgJiYgdGhpcy5kYXRhLlN1YlR5cGUgPT09ICd6dWRmJykge1xyXG4gICAgICBjb25zdCB6dWRmRmllbGRWYWx1ZSA9IHRoaXMuZ2V0RmllbGRWYWx1ZShldmVudCwgZmllbGRWYWx1ZSk7XHJcbiAgICAgIGNvbnN0IHp1ZGZDb250YWluZXJTY29wZSA9IFpDb21wb25lbnRIZWxwZXIuZ2V0WnVkZkNvbnRhaW5lclNjb3BlKHRoaXMuZ3JvdXAsIHRoaXMuZGF0YS5WYWx1ZSk7XHJcblxyXG4gICAgICBpZiAoIXp1ZGZDb250YWluZXJTY29wZSkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCd6dWRmIHNjb3BlIGlzIG51bGwgZm9yIGZpZWxkIG9uY2hhbmdlLicpO1xyXG4gICAgICB9XHJcbiAgICAgIHp1ZGZDb250YWluZXJTY29wZS56TW9kZWxbdGhpcy5kYXRhLlZhbHVlXSA9IHp1ZGZGaWVsZFZhbHVlO1xyXG4gICAgICBvZih7fSkucGlwZShcclxuICAgICAgICBzd2l0Y2hNYXAocmVzID0+IHtcclxuICAgICAgICAgIGNvbnN0IGV2ZW50TmFtZSA9ICdUcmlnZ2VyRGVwZW5kZW50RmlsdGVyaW5nJztcclxuICAgICAgICAgIGlmICh0aGlzLmdyb3VwKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmdyb3VwW2V2ZW50TmFtZV0pIHtcclxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5ncm91cFtldmVudE5hbWVdKHRoaXMuZ3JvdXApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gb2Yoe30pO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIHRhcChyZXMgPT4geyBcclxuICAgICAgICAgIGlmICh0aGlzLmRhdGFbJ0F1dG9Qb3B1bGF0ZUNoaWxkRmllbGRWYWx1ZSddKSB7IFxyXG4gICAgICAgICAgICAvLyBaVURGLiBBdXRvIFBvcHVsYXRlIGNoaWxkIGZpZWxkIHZhbHVlXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmRhdGFbJ0NoaWxkRmllbGRzJ10pIHtcclxuICAgICAgICAgICAgICAvLyBnZXQgdGhlIHNlbGVjdGVkIGRhdGEgZnVsbCBpbmZvIFxyXG4gICAgICAgICAgICAgIGNvbnN0IGRhdGFPcHRpb24gPSB0aGlzLmdyb3VwLnpEYXRhW3RoaXMuZGF0YVsnWkRhdGFPcHRpb25OYW1lJ11dO1xyXG4gICAgICAgICAgICAgIGxldCBzZWxlY3RlZERhdGFPcHRpb24gPSBudWxsO1xyXG5cclxuICAgICAgICAgICAgICBkYXRhT3B0aW9uLmZvckVhY2gob3B0aW9uID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChvcHRpb24uSWQgPT09IGZpZWxkVmFsdWUpIHtcclxuICAgICAgICAgICAgICAgICAgc2VsZWN0ZWREYXRhT3B0aW9uID0gT2JqZWN0LmFzc2lnbih7fSwgb3B0aW9uKTtcclxuICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICAvLyBzZXQgdG8gYWxsIHJlbGF0ZWQgek1vZGUgb2YgdGhlIGRyb3Bkb3duXHJcbiAgICAgICAgICAgICAgbGV0IGZnOiBGb3JtR3JvdXAgPSB6dWRmQ29udGFpbmVyU2NvcGUuZm9ybSBhcyBGb3JtR3JvdXA7XHJcbiAgICAgICAgICAgICAgaWYgKHNlbGVjdGVkRGF0YU9wdGlvbikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhWydDaGlsZEZpZWxkcyddLmZvckVhY2goY2hpbGRGaWVsZCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIC8vIHJlbW92ZSBzeW1ib2wuIFxyXG4gICAgICAgICAgICAgICAgICBsZXQgY2hpbGRGaWVsZE5hbWUgPSBlbmNvZGVVUkkoY2hpbGRGaWVsZC5yZXBsYWNlKC9bXmEtejAtOV0vZ2ksIFwiXCIpKTsgXHJcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGZpZWxkTW9kZWxOYW1lID0gdGhpcy5kYXRhLk5hbWUgKyBjaGlsZEZpZWxkTmFtZTsgXHJcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHpNb2RlbHMgPSB6dWRmQ29udGFpbmVyU2NvcGUuek1vZGVsO1xyXG4gICAgICAgICAgICAgICAgICB6TW9kZWxzW2ZpZWxkTW9kZWxOYW1lXSA9IHNlbGVjdGVkRGF0YU9wdGlvbltjaGlsZEZpZWxkTmFtZV07XHJcblxyXG4gICAgICAgICAgICAgICAgICBmZy5wYXRjaFZhbHVlKHpNb2RlbHMpO1xyXG5cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIHN3aXRjaE1hcChyZXMgPT4ge1xyXG4gICAgICAgICAgY29uc3QgZXZlbnROYW1lID0gJ3RyaWdnZXJWYWxpZGF0aW9uJztcclxuICAgICAgICAgIGlmICh0aGlzLmdyb3VwKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmdyb3VwW2V2ZW50TmFtZV0pIHtcclxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5ncm91cFtldmVudE5hbWVdKHRoaXMuZ3JvdXApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gb2Yoe30pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgICAgdGhpcy50cmlnZ2VyRXZlbnQoXCJpbnB1dGZpZWxkLW9uQ2hhbmdlXCIsIHRoaXMuZGF0YS5PbkNoYW5nZSwgZXZlbnQsIGZpZWxkVmFsdWUpO1xyXG4gICAgICB9KTtcclxuICAgIH0gIFxyXG4gICAgZWxzZSB7XHJcbiAgICAgIFpDb21wb25lbnRIZWxwZXIuc2V0Q29tcG9uZW50TW9kZWxWYWx1ZSh0aGlzLmRhdGEsIHRoaXMuZ2V0RmllbGRWYWx1ZShldmVudCwgZmllbGRWYWx1ZSksIHRoaXMuZ3JvdXApO1xyXG4gICAgICB0aGlzLnRyaWdnZXJFdmVudChcImlucHV0ZmllbGQtb25DaGFuZ2VcIiwgdGhpcy5kYXRhLk9uQ2hhbmdlLCBldmVudCwgZmllbGRWYWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25JdGVtQ2xpY2soZXZlbnQ6IGFueSwgZmllbGRWYWx1ZT86IGFueSkge1xyXG4gICAgdGhpcy50cmlnZ2VyRXZlbnQoXCJpbnB1dGZpZWxkLW9uSXRlbUNsaWNrXCIsIHRoaXMuZGF0YS5Pbkl0ZW1DbGljaywgZXZlbnQsIGZpZWxkVmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uSWNvbkNsaWNrKGNsaWNrQWN0aW9uRXhwcjogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnRyaWdnZXJFdmVudChcImlucHV0ZmllbGQtb25JY29uQ2xpY2tcIiwgY2xpY2tBY3Rpb25FeHByLCBudWxsLCB0aGlzLmdyb3VwLnpNb2RlbFt0aGlzLmRhdGEuVmFsdWVdKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRSZWFkT25seVZhbHVlKCkge1xyXG4gICAgY29uc3QgcmVhZE9ubHlWYWx1ZSA9IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBFdmFsVmFsdWUuY2FsbCh0aGlzLCB0aGlzLmRhdGEuUmVhZE9ubHkpO1xyXG4gICAgaWYgKHR5cGVvZiByZWFkT25seVZhbHVlID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgIGNvbnN0IGNhbGxGdW5jID0gcmVhZE9ubHlWYWx1ZS5iaW5kKHRoaXMuZ3JvdXAuY3RybFNjb3BlKTtcclxuICAgICAgcmV0dXJuIGNhbGxGdW5jKHRoaXMuZ3JvdXApO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlYWRPbmx5VmFsdWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0SXNSZXF1aXJlZFZhbHVlKCkge1xyXG4gICAgY29uc3QgSXNSZXF1aXJlZFZhbHVlID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKHRoaXMsIHRoaXMuZGF0YS5Jc1JlcXVpcmVkKTtcclxuICAgIGlmICh0eXBlb2YgSXNSZXF1aXJlZFZhbHVlID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgIGNvbnN0IGNhbGxGdW5jID0gSXNSZXF1aXJlZFZhbHVlLmJpbmQodGhpcy5ncm91cC5jdHJsU2NvcGUpO1xyXG4gICAgICByZXR1cm4gY2FsbEZ1bmModGhpcy5ncm91cCk7XHJcblxyXG4gICAgfVxyXG4gICAgcmV0dXJuIElzUmVxdWlyZWRWYWx1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICBaQ29tcG9uZW50SGVscGVyLnNldENvbXBvbmVudE1vZGVsVmFsdWUodGhpcy5kYXRhLCB2YWx1ZSwgdGhpcy5ncm91cCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0QWRkT25WYWx1ZShhZGRPbnM/OiBhbnkpIHtcclxuICAgIHRoaXMudHJpZ2dlckNvbnRhaW5lckV2ZW50LmVtaXQoeyB0eXBlOiAnc2V0QWRkT25WYWx1ZScsIGRhdGE6IGFkZE9ucyB9KTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCB0cmlnZ2VyRXZlbnQodHlwZTogc3RyaW5nLCB0YXJnZXQ6IGFueSwgZXZlbnQ6IGFueSwgZmllbGRWYWx1ZT86IGFueSkge1xyXG4gICAgaWYgKHRhcmdldCkge1xyXG4gICAgICB0aGlzLmdyb3VwLnN1YmplY3QubmV4dCh7XHJcbiAgICAgICAgdHlwZTogdHlwZSxcclxuICAgICAgICB0YXJnZXQ6IHRhcmdldCxcclxuICAgICAgICBldmVudCxcclxuICAgICAgICBkYXRhOiB7IHZhbHVlOiB0aGlzLmdldEZpZWxkVmFsdWUoZXZlbnQsIGZpZWxkVmFsdWUpLCBmaWVsZDogdGhpcy5kYXRhLCBjb21wOiB0aGlzIH1cclxuICAgICAgfSBhcyBaQ29tcG9uZW50T3V0cHV0RXZlbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRGaWVsZFZhbHVlKGV2ZW50OiBhbnksIGZpZWxkVmFsdWU/OiBhbnkpIHtcclxuICAgIGlmIChmaWVsZFZhbHVlID09IG51bGwgfHwgZmllbGRWYWx1ZSA9PSB1bmRlZmluZWQpIHtcclxuICAgICAgcmV0dXJuIGV2ZW50Py52YWx1ZSB8fCBldmVudD8udGFyZ2V0Py52YWx1ZVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZpZWxkVmFsdWU7XHJcbiAgfSBcclxufVxyXG4iXX0=
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXRmaWVsZGJhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvY29tcG9uZW50cy9pbnB1dGZpZWxkYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBeUIsTUFBTSxpQkFBaUIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFbEQsT0FBTyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7QUFPMUMsMklBQTJJO0FBQzNJLE1BQU0sT0FBTyxjQUFlLFNBQVEsU0FBUztJQUUzQyxZQUFZLFdBQThCO1FBQ3hDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUZZLDBCQUFxQixHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBRy9GLENBQUM7SUFFTSxPQUFPLENBQUMsS0FBVSxFQUFFLFVBQWdCO1FBQ3pDLElBQUksQ0FBQyxZQUFZLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsSUFBSSxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNwRyxDQUFDO0lBRU0sVUFBVSxDQUFDLEtBQVUsRUFBRSxVQUFnQjtRQUM1QyxnQkFBZ0IsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0RyxJQUFJLENBQUMsWUFBWSxDQUFDLHVCQUF1QixFQUFFLElB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Q3BCLENBQUM7OzRHQW5KVSxjQUFjO2dHQUFkLGNBQWMsd0lBSmYsRUFBRTs0RkFJRCxjQUFjO2tCQUwxQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxFQUFFO2lCQUNiO3dHQUlrQyxxQkFBcUI7c0JBQXJELE1BQU07dUJBQUMsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIE91dHB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFpDb21wb25lbnRIZWxwZXIsIFpDb21wb25lbnRPdXRwdXRFdmVudCB9IGZyb20gXCJtbWhnbG9iYWwtemNvcmVcIjtcclxuaW1wb3J0IHsgRmllbGRCYXNlIH0gZnJvbSBcIi4vZmllbGRiYXNlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBaQ29tcG9uZW50U2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy96Y29tcG9uZW50LnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgb2YsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICB0ZW1wbGF0ZTogYGAsXHJcbn0pXHJcblxyXG4vLyBGb3I6IHpjaGVja2JveCwgemNoaXAsIHpkYXRldGltZSwgemltZywgemlucHV0LWNvbnRhaW5lciwgemxhYmVsLCB6bnVtZXJpYywgenBvc3RzZWxlY3RpbnB1dCwgenNlbGVjdG11bHRpcGxlLCB6dGV4dCwgenRleHRhcmVhLCB6dXBsb2FkXHJcbmV4cG9ydCBjbGFzcyBJbnB1dEZpZWxkQmFzZSBleHRlbmRzIEZpZWxkQmFzZSB7XHJcbiAgQE91dHB1dCgndHJpZ2dlckNvbnRhaW5lckV2ZW50JykgdHJpZ2dlckNvbnRhaW5lckV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBjb25zdHJ1Y3Rvcihjb21wU2VydmljZTogWkNvbXBvbmVudFNlcnZpY2UpIHtcclxuICAgIHN1cGVyKGNvbXBTZXJ2aWNlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkNsaWNrKGV2ZW50OiBhbnksIGZpZWxkVmFsdWU/OiBhbnkpIHtcclxuICAgIHRoaXMudHJpZ2dlckV2ZW50KFwiaW5wdXRmaWVsZC1vbkNsaWNrXCIsIHRoaXMuZGF0YS5PbkNsaWNrLCBldmVudCwgZmllbGRWYWx1ZSB8fCBldmVudFsnT25DbGljayddKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkNoYW5nZUNDKGV2ZW50OiBhbnksIGZpZWxkVmFsdWU/OiBhbnkpIHtcclxuICAgIFpDb21wb25lbnRIZWxwZXIuc2V0Q29tcG9uZW50TW9kZWxWYWx1ZSh0aGlzLmRhdGEsIHRoaXMuZ2V0RmllbGRWYWx1ZShldmVudCwgZmllbGRWYWx1ZSksIHRoaXMuZ3JvdXApO1xyXG4gICAgdGhpcy50cmlnZ2VyRXZlbnQoXCJpbnB1dGZpZWxkLW9uQ2hhbmdlQ0NcIiwgdGhpcy5kYXRhLkNDT25DaGFuZ2UsIGV2ZW50LCBmaWVsZFZhbHVlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkNoYW5nZShldmVudDogYW55LCBmaWVsZFZhbHVlPzogYW55KSB7XHJcbiAgICBpZiAodGhpcy5kYXRhLlN1YlR5cGUgJiYgdGhpcy5kYXRhLlN1YlR5cGUgPT09ICd6dWRmJykge1xyXG4gICAgICBjb25zdCB6dWRmRmllbGRWYWx1ZSA9IHRoaXMuZ2V0RmllbGRWYWx1ZShldmVudCwgZmllbGRWYWx1ZSk7XHJcbiAgICAgIGNvbnN0IGdldFp1ZGZTY29wZSA9IFpDb21wb25lbnRIZWxwZXIuZ2V0WnVkZlNjb3BlKHRoaXMuZ3JvdXAsIHRoaXMuZGF0YS5WYWx1ZSk7XHJcblxyXG4gICAgICBpZiAoIWdldFp1ZGZTY29wZSkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCd6dWRmIHNjb3BlIGlzIG51bGwgZm9yIGZpZWxkIG9uY2hhbmdlLicpO1xyXG4gICAgICB9XHJcbiAgICAgIGdldFp1ZGZTY29wZS56TW9kZWxbdGhpcy5kYXRhLlZhbHVlXSA9IHp1ZGZGaWVsZFZhbHVlO1xyXG4gICAgICBvZih7fSkucGlwZShcclxuICAgICAgICBzd2l0Y2hNYXAocmVzID0+IHtcclxuICAgICAgICAgIGNvbnN0IGV2ZW50TmFtZSA9ICdUcmlnZ2VyRGVwZW5kZW50RmlsdGVyaW5nJztcclxuICAgICAgICAgIGlmICh0aGlzLmdyb3VwKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmdyb3VwW2V2ZW50TmFtZV0pIHtcclxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5ncm91cFtldmVudE5hbWVdKHRoaXMuZ3JvdXApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gb2Yoe30pO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIHRhcChyZXMgPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMuZGF0YVsnQXV0b1BvcHVsYXRlQ2hpbGRGaWVsZFZhbHVlJ10pIHtcclxuICAgICAgICAgICAgLy8gWlVERi4gQXV0byBQb3B1bGF0ZSBjaGlsZCBmaWVsZCB2YWx1ZVxyXG4gICAgICAgICAgICBjb25zdCBjaGlsZEZpZWxkcyA9IHRoaXMuZGF0YVsnQ2hpbGRGaWVsZHMnXTtcclxuICAgICAgICAgICAgaWYgKGNoaWxkRmllbGRzKSB7XHJcbiAgICAgICAgICAgICAgbGV0IHNlbGVjdGVkRGF0YU9wdGlvbiA9IG51bGw7XHJcbiAgICAgICAgICAgICAgaWYgKGZpZWxkVmFsdWUpIHtcclxuICAgICAgICAgICAgICAgIC8vIGdldCB0aGUgc2VsZWN0ZWQgZGF0YSBmdWxsIGluZm8gXHJcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhT3B0aW9uID0gdGhpcy5ncm91cC56RGF0YVt0aGlzLmRhdGFbJ1pEYXRhT3B0aW9uTmFtZSddXTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoZGF0YU9wdGlvbikge1xyXG4gICAgICAgICAgICAgICAgICBkYXRhT3B0aW9uLmZvckVhY2gob3B0aW9uID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAob3B0aW9uLklkID09PSBmaWVsZFZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZERhdGFPcHRpb24gPSBPYmplY3QuYXNzaWduKHt9LCBvcHRpb24pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAvLyBzZXQgdG8gYWxsIHJlbGF0ZWQgek1vZGUgb2YgdGhlIGRyb3Bkb3duXHJcbiAgICAgICAgICAgICAgbGV0IGZnOiBGb3JtR3JvdXAgPSBnZXRadWRmU2NvcGUuZm9ybSBhcyBGb3JtR3JvdXA7XHJcbiAgICAgICAgICAgICAgY2hpbGRGaWVsZHMuZm9yRWFjaChjaGlsZEZpZWxkID0+IHtcclxuICAgICAgICAgICAgICAgIC8vIHJlbW92ZSBzeW1ib2wuIFxyXG4gICAgICAgICAgICAgICAgbGV0IGNoaWxkRmllbGROYW1lID0gZW5jb2RlVVJJKGNoaWxkRmllbGQucmVwbGFjZSgvW15hLXowLTldL2dpLCBcIlwiKSk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBmaWVsZE1vZGVsTmFtZSA9IHRoaXMuZGF0YS5OYW1lICsgY2hpbGRGaWVsZE5hbWU7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB6TW9kZWxzID0gZ2V0WnVkZlNjb3BlLnpNb2RlbDtcclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCBjaGlsZENvbXBvbmVudCA9IFpDb21wb25lbnRIZWxwZXIuZ2V0Q29tcG9uZW50KHRoaXMuZ3JvdXAsICd0ZXh0XycgKyBmaWVsZE1vZGVsTmFtZSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoY2hpbGRDb21wb25lbnRbJ2RhdGEnXVsnUmVhZE9ubHknXSAmJiAhZmllbGRWYWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAvLyBjbGVhciBjaGlsZCBmaWVsZCBpZiBvbmx5IHJlYWRvbmx5IGlzIHRydWUuIFxyXG4gICAgICAgICAgICAgICAgICB6TW9kZWxzW2ZpZWxkTW9kZWxOYW1lXSA9ICFmaWVsZFZhbHVlID8gbnVsbCA6IHNlbGVjdGVkRGF0YU9wdGlvbiA/IHNlbGVjdGVkRGF0YU9wdGlvbltjaGlsZEZpZWxkTmFtZV0gOiBudWxsO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgIGlmIChzZWxlY3RlZERhdGFPcHRpb24pIHtcclxuICAgICAgICAgICAgICAgICAgICB6TW9kZWxzW2ZpZWxkTW9kZWxOYW1lXSA9IHNlbGVjdGVkRGF0YU9wdGlvbltjaGlsZEZpZWxkTmFtZV07XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGZnLnBhdGNoVmFsdWUoek1vZGVscyk7XHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KSxcclxuICAgICAgICBzd2l0Y2hNYXAocmVzID0+IHtcclxuICAgICAgICAgIGNvbnN0IGV2ZW50TmFtZSA9ICd0cmlnZ2VyVmFsaWRhdGlvbic7XHJcbiAgICAgICAgICBpZiAodGhpcy5ncm91cCkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5ncm91cFtldmVudE5hbWVdKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ3JvdXBbZXZlbnROYW1lXSh0aGlzLmdyb3VwLCBldmVudCwgZmllbGRWYWx1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybiBvZih7fSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKS5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgICB0aGlzLnRyaWdnZXJFdmVudChcImlucHV0ZmllbGQtb25DaGFuZ2VcIiwgdGhpcy5kYXRhLk9uQ2hhbmdlLCBldmVudCwgZmllbGRWYWx1ZSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIFpDb21wb25lbnRIZWxwZXIuc2V0Q29tcG9uZW50TW9kZWxWYWx1ZSh0aGlzLmRhdGEsIHRoaXMuZ2V0RmllbGRWYWx1ZShldmVudCwgZmllbGRWYWx1ZSksIHRoaXMuZ3JvdXApO1xyXG4gICAgICB0aGlzLnRyaWdnZXJFdmVudChcImlucHV0ZmllbGQtb25DaGFuZ2VcIiwgdGhpcy5kYXRhLk9uQ2hhbmdlLCBldmVudCwgZmllbGRWYWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25JdGVtQ2xpY2soZXZlbnQ6IGFueSwgZmllbGRWYWx1ZT86IGFueSkge1xyXG4gICAgdGhpcy50cmlnZ2VyRXZlbnQoXCJpbnB1dGZpZWxkLW9uSXRlbUNsaWNrXCIsIHRoaXMuZGF0YS5Pbkl0ZW1DbGljaywgZXZlbnQsIGZpZWxkVmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uSWNvbkNsaWNrKGNsaWNrQWN0aW9uRXhwcjogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnRyaWdnZXJFdmVudChcImlucHV0ZmllbGQtb25JY29uQ2xpY2tcIiwgY2xpY2tBY3Rpb25FeHByLCBudWxsLCB0aGlzLmdyb3VwLnpNb2RlbFt0aGlzLmRhdGEuVmFsdWVdKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRSZWFkT25seVZhbHVlKCkge1xyXG4gICAgY29uc3QgcmVhZE9ubHlWYWx1ZSA9IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBFdmFsVmFsdWUuY2FsbCh0aGlzLCB0aGlzLmRhdGEuUmVhZE9ubHkpO1xyXG4gICAgaWYgKHR5cGVvZiByZWFkT25seVZhbHVlID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgIGNvbnN0IGNhbGxGdW5jID0gcmVhZE9ubHlWYWx1ZS5iaW5kKHRoaXMuZ3JvdXAuY3RybFNjb3BlKTtcclxuICAgICAgcmV0dXJuIGNhbGxGdW5jKHRoaXMuZ3JvdXApO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlYWRPbmx5VmFsdWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0SXNSZXF1aXJlZFZhbHVlKCkge1xyXG4gICAgY29uc3QgSXNSZXF1aXJlZFZhbHVlID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKHRoaXMsIHRoaXMuZGF0YS5Jc1JlcXVpcmVkKTtcclxuICAgIGlmICh0eXBlb2YgSXNSZXF1aXJlZFZhbHVlID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgIGNvbnN0IGNhbGxGdW5jID0gSXNSZXF1aXJlZFZhbHVlLmJpbmQodGhpcy5ncm91cC5jdHJsU2NvcGUpO1xyXG4gICAgICByZXR1cm4gY2FsbEZ1bmModGhpcy5ncm91cCk7XHJcblxyXG4gICAgfVxyXG4gICAgcmV0dXJuIElzUmVxdWlyZWRWYWx1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICBaQ29tcG9uZW50SGVscGVyLnNldENvbXBvbmVudE1vZGVsVmFsdWUodGhpcy5kYXRhLCB2YWx1ZSwgdGhpcy5ncm91cCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0QWRkT25WYWx1ZShhZGRPbnM/OiBhbnkpIHtcclxuICAgIHRoaXMudHJpZ2dlckNvbnRhaW5lckV2ZW50LmVtaXQoeyB0eXBlOiAnc2V0QWRkT25WYWx1ZScsIGRhdGE6IGFkZE9ucyB9KTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCB0cmlnZ2VyRXZlbnQodHlwZTogc3RyaW5nLCB0YXJnZXQ6IGFueSwgZXZlbnQ6IGFueSwgZmllbGRWYWx1ZT86IGFueSkge1xyXG4gICAgaWYgKHRhcmdldCkge1xyXG4gICAgICB0aGlzLmdyb3VwLnN1YmplY3QubmV4dCh7XHJcbiAgICAgICAgdHlwZTogdHlwZSxcclxuICAgICAgICB0YXJnZXQ6IHRhcmdldCxcclxuICAgICAgICBldmVudCxcclxuICAgICAgICBkYXRhOiB7IHZhbHVlOiB0aGlzLmdldEZpZWxkVmFsdWUoZXZlbnQsIGZpZWxkVmFsdWUpLCBmaWVsZDogdGhpcy5kYXRhLCBjb21wOiB0aGlzIH1cclxuICAgICAgfSBhcyBaQ29tcG9uZW50T3V0cHV0RXZlbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRGaWVsZFZhbHVlKGV2ZW50OiBhbnksIGZpZWxkVmFsdWU/OiBhbnkpIHtcclxuICAgIGlmIChmaWVsZFZhbHVlID09IG51bGwgfHwgZmllbGRWYWx1ZSA9PSB1bmRlZmluZWQpIHtcclxuICAgICAgcmV0dXJuIGV2ZW50Py52YWx1ZSB8fCBldmVudD8udGFyZ2V0Py52YWx1ZVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZpZWxkVmFsdWU7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -44,8 +44,8 @@ export class ComponentErrorHandlerService {
44
44
  for (const errorType of errorTypes) {
45
45
  let errMessage = null;
46
46
  if (key.includes('zudf_')) {
47
- const zudfContainerScope = ZComponentHelper.getZudfContainerScope(group, key);
48
- errMessage = this.getErrorMessageByErrorType(errorType, key, zudfContainerScope.fields, controlErrors);
47
+ const zudf = ZComponentHelper.getZudfByComponent(group, key);
48
+ errMessage = this.getErrorMessageByErrorType(errorType, key, zudf['formFields'], controlErrors);
49
49
  }
50
50
  else {
51
51
  errMessage = this.getErrorMessageByErrorType(errorType, key, group.fields, controlErrors);
@@ -118,4 +118,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
118
118
  providedIn: 'root',
119
119
  }]
120
120
  }], ctorParameters: function () { return [{ type: i1.AlertService }, { type: i1.TranslationService }]; } });
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LWVycm9yLWhhbmRsZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21taGdsb2JhbC1keW5hbWljZm9ybS9zcmMvbGliL3NlcnZpY2VzL2NvbXBvbmVudC1lcnJvci1oYW5kbGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQStCO0FBQy9CLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFvRCxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JHLE9BQU8sRUFBRSxRQUFRLEVBQWMsRUFBRSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7OztBQUtoRSxNQUFNLE9BQU8sNEJBQTRCO0lBRXZDLFlBQW9CLFlBQTBCLEVBQVUsa0JBQXNDO1FBQTFFLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQVUsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtJQUFJLENBQUM7SUFFNUYseUJBQXlCLENBQUMsS0FBYSxFQUFFLFNBQXFCO1FBQ25FLFNBQVMsR0FBRyxTQUFTLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQztRQUVwQyxFQUFFLENBQUMsSUFBSSxDQUFDLDhCQUE4QixDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDNUQsU0FBUyxDQUFDLENBQUMsMEJBQTBCLEVBQUUsRUFBRTtZQUN2QyxNQUFNLEdBQUcsR0FBRyxJQUFJLEtBQUssRUFBbUIsQ0FBQztZQUN6QywwQkFBMEIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3hDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMs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QVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7Z0JBQ3JGLE1BQUs7WUFDUDtnQkFDRSxPQUFPLENBQUMsSUFBSSxDQUFDLHlDQUF5QyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDN0csWUFBWSxHQUFHLGdDQUFnQyxDQUFDO2dCQUNoRCxNQUFNO1NBQ1Q7UUFFRCxPQUFPO1lBQ0wsWUFBWTtZQUNaLG9CQUFvQjtTQUNELENBQUM7SUFDeEIsQ0FBQztJQUVPLDBCQUEwQixDQUFDLElBQVk7UUFDN0MsUUFBUSxJQUFJLEVBQUU7WUFDWixLQUFLLG1CQUFtQixDQUFDO1lBQ3pCLEtBQUssMEJBQTBCLENBQUM7WUFDaEMsS0FBSyxRQUFRO2dCQUNYLE9BQU8sUUFBUSxDQUFDO1lBQ2xCO2dCQUNFLE9BQU8sT0FBTyxDQUFDO1NBQ2xCO0lBQ0gsQ0FBQzs7MEhBcEhVLDRCQUE0Qjs4SEFBNUIsNEJBQTRCLGNBRjNCLE1BQU07NEZBRVAsNEJBQTRCO2tCQUh4QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqIEFuZ3VsYXIgKioqKioqKioqKi9cclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEFsZXJ0U2VydmljZSwgVHJhbnNsYXRpb25TZXJ2aWNlLCBaRmllbGQsIFpHcm91cCwgWkNvbXBvbmVudEhlbHBlciB9IGZyb20gJ21taGdsb2JhbC16Y29yZSc7XHJcbmltcG9ydCB7IGZvcmtKb2luLCBPYnNlcnZhYmxlLCBvZiwgdGFwLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb21wb25lbnRFcnJvckhhbmRsZXJTZXJ2aWNlIHtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSwgcHJpdmF0ZSB0cmFuc2xhdGlvblNlcnZpY2U6IFRyYW5zbGF0aW9uU2VydmljZSkgeyB9XHJcblxyXG4gIHB1YmxpYyBzaG93Rm9ybUdyb3VwRXJyb3JNZXNzYWdlKGdyb3VwOiBaR3JvdXAsIGZvcm1Hcm91cD86IEZvcm1Hcm91cCkge1xyXG4gICAgZm9ybUdyb3VwID0gZm9ybUdyb3VwIHx8IGdyb3VwLmZvcm07XHJcblxyXG4gICAgb2YodGhpcy5nZXRFcnJvck1lc3NhZ2VGb3JJbnZhbGlkSW5wdXQoZ3JvdXAsIGZvcm1Hcm91cCkpLnBpcGUoXHJcbiAgICAgIHN3aXRjaE1hcCgoZXJyTWVzc2FnZVRyYW5zbGF0aW9uSW5wdXQpID0+IHtcclxuICAgICAgICBjb25zdCBvYnMgPSBuZXcgQXJyYXk8T2JzZXJ2YWJsZTxhbnk+PigpO1xyXG4gICAgICAgIGVyck1lc3NhZ2VUcmFuc2xhdGlvbklucHV0LmZvckVhY2goZGF0YSA9PiB7XHJcbiAgICAgICAgICBvYnMucHVzaCh0aGlzLnRyYW5zbGF0aW9uU2VydmljZS4kdHJhbnNsYXRlVGV4dChkYXRhLmVycm9yTWVzc2FnZSwgeyB0cmFuc2xhdGlvblZhcmlhYmxlczogZGF0YS50cmFuc2xhdGlvblZhcmlhYmxlcyB9KSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICByZXR1cm4gZm9ya0pvaW4ob2JzKTtcclxuICAgICAgfSksXHJcbiAgICAgIHRhcChmaWVsZEVycm9yTWVzc2FnZXMgPT4ge1xyXG4gICAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IGZpZWxkRXJyb3JNZXNzYWdlcy5qb2luKFwiPGJyLz5cIik7XHJcbiAgICAgICAgdGhpcy5hbGVydFNlcnZpY2Uuc2hvd09rYXkoJ0Zvcm0gdmFsaWRhdGlvbiBmYWlsZWQnLCBlcnJvck1lc3NhZ2UsIFsnY29sLTQnXSk7XHJcbiAgICAgICAgY29uc29sZS53YXJuKFwiRm9ybSBWYWxpZGF0aW9uIGdvdCBlcnJvcihzKTpcIiwgZXJyb3JNZXNzYWdlKTtcclxuICAgICAgfSlcclxuICAgICkuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0RXJyb3JNZXNzYWdlRm9ySW52YWxpZElucHV0KGdyb3VwOiBaR3JvdXAsIGZvcm1Hcm91cD86IEZvcm1Hcm91cCwgY29udHJvbE5hbWU/OiBzdHJpbmcpOiBBcnJheTxUcmFuc2xhdGlvbklucHV0PiB7XHJcbiAgICBmb3JtR3JvdXAgPSBmb3JtR3JvdXAgfHwgZ3JvdXAuZm9ybTtcclxuXHJcbiAgICBpZiAoY29udHJvbE5hbWUpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZXh0cmFjdEVycm9yTWVzc2FnZUZyb21Db250cm9sKGZvcm1Hcm91cCwgY29udHJvbE5hbWUsIGdyb3VwKTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgYWxsRm9ybUNvbnRyb2xFcnJvck1lc3NhZ2VzID0gbmV3IEFycmF5PFRyYW5zbGF0aW9uSW5wdXQ+KCk7XHJcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhmb3JtR3JvdXAuY29udHJvbHMpKSB7XHJcbiAgICAgIGNvbnN0IGZvcm1Db250cm9sRXJyb3JNZXNzYWdlcyA9IHRoaXMuZXh0cmFjdEVycm9yTWVzc2FnZUZyb21Db250cm9sKGZvcm1Hcm91cCwga2V5LCBncm91cCk7XHJcbiAgICAgIGFsbEZvcm1Db250cm9sRXJyb3JNZXNzYWdlcyA9IGFsbEZvcm1Db250cm9sRXJyb3JNZXNzYWdlcy5jb25jYXQoZm9ybUNvbnRyb2xFcnJvck1lc3NhZ2VzKTtcclxuICAgIH1cclxuICAgIHJldHVybiBhbGxGb3JtQ29udHJvbEVycm9yTWVzc2FnZXM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGV4dHJhY3RFcnJvck1lc3NhZ2VGcm9tQ29udHJvbChmb3JtR3JvdXA6IEZvcm1Hcm91cCwga2V5OiBzdHJpbmcsIGdyb3VwOiBaR3JvdXApOiBBcnJheTxUcmFuc2xhdGlvbklucHV0PiB7XHJcbiAgICBjb25zdCBlcnJvck1zZ0FyciA9IG5ldyBBcnJheTxUcmFuc2xhdGlvbklucHV0PigpO1xyXG4gICAgY29uc3QgY29udHJvbCA9IGZvcm1Hcm91cC5nZXQoa2V5KTtcclxuICAgIGNvbnN0IGNvbnRyb2xFcnJvcnMgPSBjb250cm9sPy5lcnJvcnM7XHJcblxyXG4gICAgaWYgKGNvbnRyb2wgJiYgY29udHJvbEVycm9ycykge1xyXG4gICAgICBjb25zdCBlcnJvclR5cGVzID0gT2JqZWN0LmtleXMoY29udHJvbEVycm9ycyk7XHJcbiAgICAgIGZvciAoY29uc3QgZXJyb3JUeXBlIG9mIGVycm9yVHlwZXMpIHtcclxuICAgICAgICBsZXQgZXJyTWVzc2FnZSA9IG51bGw7XHJcbiAgICAgICAgaWYgKGtleS5pbmNsdWRlcygnenVkZl8nKSkge1xyXG4gICAgICAgICAgY29uc3QgenVkZkNvbnRhaW5lclNjb3BlID0gWkNvbXBvbmVudEhlbHBlci5nZXRadWRmQ29udGFpbmVyU2NvcGUoZ3JvdXAsIGtleSk7XHJcbiAgICAgICAgICBlcnJNZXNzYWdlID0gdGhpcy5nZXRFcnJvck1lc3NhZ2VCeUVycm9yVHlwZShlcnJvclR5cGUsIGtleSwgenVkZkNvbnRhaW5lclNjb3BlLmZpZWxkcywgY29udHJvbEVycm9ycyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgZXJyTWVzc2FnZSA9IHRoaXMuZ2V0RXJyb3JNZXNzYWdlQnlFcnJvclR5cGUoZXJyb3JUeXBlLCBrZXksIGdyb3VwLmZpZWxkcywgY29udHJvbEVycm9ycyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoZXJyTWVzc2FnZS5lcnJvck1lc3NhZ2UpIHtcclxuICAgICAgICAgIGVycm9yTXNnQXJyLnB1c2goZXJyTWVzc2FnZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBlcnJvck1zZ0FycjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0RXJyb3JNZXNzYWdlQnlFcnJvclR5cGUoZXJyb3JUeXBlOiBhbnksIGNvbnRyb2xOYW1lOiBzdHJpbmcsIGZpZWxkczogWkZpZWxkW10sIGVycm9yRGV0YWlsOiBhbnkpOiBUcmFuc2xhdGlvbklucHV0IHtcclxuICAgIGNvbnN0IGZpZWxkID0gWkNvbXBvbmVudEhlbHBlci5nZXRGaWVsZEZyb21GaWVsZHNCeVZhbHVlKGZpZWxkcywgY29udHJvbE5hbWUpO1xyXG4gICAgbGV0IGVycm9yTWVzc2FnZSA9IFwiXCI7XHJcbiAgICBjb25zdCB0cmFuc2xhdGlvblZhcmlhYmxlcyA9IHsgVF9GaWVsZE5hbWU6IFpDb21wb25lbnRIZWxwZXIuZ2V0RmllbGRMYWJlbChmaWVsZHMsIGNvbnRyb2xOYW1lKSB9O1xyXG4gICAgc3dpdGNoIChlcnJvclR5cGUpIHtcclxuICAgICAgY2FzZSAncmVxdWlyZWQnOlxyXG4gICAgICAgIGVycm9yTWVzc2FnZSA9IGAke3RoaXMuZ2V0RXJyb3JNc2dBY3Rpb25fUmVxdWlyZWQoZmllbGQuVHlwZSl9IHRoZSB7e1RfRmllbGROYW1lfX1gO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdtaW5sZW5ndGgnOlxyXG4gICAgICAgIGVycm9yTWVzc2FnZSA9IGB7e1RfRmllbGROYW1lfX0gbXVzdCBiZSBtb3JlIHRoYW4ge3tUX01pbkxlbmd0aH19IGNoYXJhY3RlcnNgO1xyXG4gICAgICAgIE9iamVjdC5hc3NpZ24odHJhbnNsYXRpb25WYXJpYWJsZXMsIHsgVF9NaW5MZW5ndGg6IGVycm9yRGV0YWlsW2Vycm9yVHlwZV0ucmVxdWlyZWRMZW5ndGggfSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ21heGxlbmd0aCc6XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlID0gYHt7VF9GaWVsZE5hbWV9fSBtdXN0IGJlIGxlc3MgdGhhbiB7e1RfTWF4TGVuZ3RofX0gY2hhcmFjdGVyc2A7XHJcbiAgICAgICAgT2JqZWN0LmFzc2lnbih0cmFuc2xhdGlvblZhcmlhYmxlcywgeyBUX01heExlbmd0aDogZXJyb3JEZXRhaWxbZXJyb3JUeXBlXS5yZXF1aXJlZExlbmd0aCB9KTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnZW1haWwnOlxyXG4gICAgICAgIGVycm9yTWVzc2FnZSA9IGBFbnRlciBhIHZhbGlkIGVtYWlsIGFkZHJlc3MgZm9yIHt7VF9GaWVsZE5hbWV9fWA7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ21pbic6XHJcbiAgICAgIGNhc2UgJ21heCc6XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlID0gJyc7XHJcbiAgICAgICAgYnJlYWtcclxuICAgICAgY2FzZSAnbWluRXJyb3InOlxyXG4gICAgICAgIGVycm9yTWVzc2FnZSA9IGB7e1RfRmllbGROYW1lfX0gbXVzdCBiZSBlcXVhbCBvciBtb3JlIHRoYW4ge3tUX01pblZhbHVlfX1gO1xyXG4gICAgICAgIE9iamVjdC5hc3NpZ24odHJhbnNsYXRpb25WYXJpYWJsZXMsIHsgVF9NaW5WYWx1ZTogZXJyb3JEZXRhaWxbZXJyb3JUeXBlXS5taW5WYWx1ZSB9KTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnbWF4RXJyb3InOlxyXG4gICAgICAgIGVycm9yTWVzc2FnZSA9IGB7e1RfRmllbGROYW1lfX0gbXVzdCBiZSBlcXVhbCBvciBsZXNzIHRoYW4ge3tUX01heFZhbHVlfX1gO1xyXG4gICAgICAgIE9iamVjdC5hc3NpZ24odHJhbnNsYXRpb25WYXJpYWJsZXMsIHsgVF9NYXhWYWx1ZTogZXJyb3JEZXRhaWxbZXJyb3JUeXBlXS5tYXhWYWx1ZSB9KTtcclxuICAgICAgICBicmVha1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGNvbnNvbGUud2FybihgRmllbGQgRXJyb3IgaXMgbm90IHByb3Blcmx5IGhhbmRsZWQgOiAke1pDb21wb25lbnRIZWxwZXIuZ2V0RmllbGRMYWJlbChmaWVsZHMsIGNvbnRyb2xOYW1lKX1gKTtcclxuICAgICAgICBlcnJvck1lc3NhZ2UgPSBgSW52YWxpZCBGaWVsZDoge3tUX0ZpZWxkTmFtZX19YDtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBlcnJvck1lc3NhZ2UsXHJcbiAgICAgIHRyYW5zbGF0aW9uVmFyaWFibGVzXHJcbiAgICB9IGFzIFRyYW5zbGF0aW9uSW5wdXQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEVycm9yTXNnQWN0aW9uX1JlcXVpcmVkKHR5cGU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgY2FzZSAnenVpc2VsZWN0bXVsdGlwbGUnOlxyXG4gICAgICBjYXNlICd6dWlzZWxlY3RtdWx0aXBsZV9idXR0b24nOlxyXG4gICAgICBjYXNlICdzZWxlY3QnOlxyXG4gICAgICAgIHJldHVybiBcIkNob29zZVwiO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBcIkVudGVyXCI7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zbGF0aW9uSW5wdXQge1xyXG4gIGVycm9yTWVzc2FnZTogc3RyaW5nO1xyXG4gIHRyYW5zbGF0aW9uVmFyaWFibGVzPzogYW55O1xyXG59XHJcbiJdfQ==
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LWVycm9yLWhhbmRsZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21taGdsb2JhbC1keW5hbWljZm9ybS9zcmMvbGliL3NlcnZpY2VzL2NvbXBvbmVudC1lcnJvci1oYW5kbGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQStCO0FBQy9CLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFvRCxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JHLE9BQU8sRUFBRSxRQUFRLEVBQWMsRUFBRSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7OztBQUtoRSxNQUFNLE9BQU8sNEJBQTRCO0lBRXZDLFlBQW9CLFlBQTBCLEVBQVUsa0JBQXNDO1FBQTFFLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQVUsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtJQUFJLENBQUM7SUFFNUYseUJBQXlCLENBQUMsS0FBYSxFQUFFLFNBQXFCO1FBQ25FLFNBQVMsR0FBRyxTQUFTLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQztRQUVwQyxFQUFFLENBQUMsSUFBSSxDQUFDLDhCQUE4QixDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDNUQsU0FBUyxDQUFDLENBQUMsMEJBQTBCLEVBQUUsRUFBRTtZQUN2QyxNQUFNLEdBQUcsR0FBRyxJQUFJLEtBQUssRUFBbUIsQ0FBQztZQUN6QywwQkFBMEIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3hDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMs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QUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO2dCQUNyRixNQUFLO1lBQ1A7Z0JBQ0UsT0FBTyxDQUFDLElBQUksQ0FBQyx5Q0FBeUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzdHLFlBQVksR0FBRyxnQ0FBZ0MsQ0FBQztnQkFDaEQsTUFBTTtTQUNUO1FBRUQsT0FBTztZQUNMLFlBQVk7WUFDWixvQkFBb0I7U0FDRCxDQUFDO0lBQ3hCLENBQUM7SUFFTywwQkFBMEIsQ0FBQyxJQUFZO1FBQzdDLFFBQVEsSUFBSSxFQUFFO1lBQ1osS0FBSyxtQkFBbUIsQ0FBQztZQUN6QixLQUFLLDBCQUEwQixDQUFDO1lBQ2hDLEtBQUssUUFBUTtnQkFDWCxPQUFPLFFBQVEsQ0FBQztZQUNsQjtnQkFDRSxPQUFPLE9BQU8sQ0FBQztTQUNsQjtJQUNILENBQUM7OzBIQXBIVSw0QkFBNEI7OEhBQTVCLDRCQUE0QixjQUYzQixNQUFNOzRGQUVQLDRCQUE0QjtrQkFIeEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKiBBbmd1bGFyICoqKioqKioqKiovXHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBBbGVydFNlcnZpY2UsIFRyYW5zbGF0aW9uU2VydmljZSwgWkZpZWxkLCBaR3JvdXAsIFpDb21wb25lbnRIZWxwZXIgfSBmcm9tICdtbWhnbG9iYWwtemNvcmUnO1xyXG5pbXBvcnQgeyBmb3JrSm9pbiwgT2JzZXJ2YWJsZSwgb2YsIHRhcCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29tcG9uZW50RXJyb3JIYW5kbGVyU2VydmljZSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsIHByaXZhdGUgdHJhbnNsYXRpb25TZXJ2aWNlOiBUcmFuc2xhdGlvblNlcnZpY2UpIHsgfVxyXG5cclxuICBwdWJsaWMgc2hvd0Zvcm1Hcm91cEVycm9yTWVzc2FnZShncm91cDogWkdyb3VwLCBmb3JtR3JvdXA/OiBGb3JtR3JvdXApIHtcclxuICAgIGZvcm1Hcm91cCA9IGZvcm1Hcm91cCB8fCBncm91cC5mb3JtO1xyXG5cclxuICAgIG9mKHRoaXMuZ2V0RXJyb3JNZXNzYWdlRm9ySW52YWxpZElucHV0KGdyb3VwLCBmb3JtR3JvdXApKS5waXBlKFxyXG4gICAgICBzd2l0Y2hNYXAoKGVyck1lc3NhZ2VUcmFuc2xhdGlvbklucHV0KSA9PiB7XHJcbiAgICAgICAgY29uc3Qgb2JzID0gbmV3IEFycmF5PE9ic2VydmFibGU8YW55Pj4oKTtcclxuICAgICAgICBlcnJNZXNzYWdlVHJhbnNsYXRpb25JbnB1dC5mb3JFYWNoKGRhdGEgPT4ge1xyXG4gICAgICAgICAgb2JzLnB1c2godGhpcy50cmFuc2xhdGlvblNlcnZpY2UuJHRyYW5zbGF0ZVRleHQoZGF0YS5lcnJvck1lc3NhZ2UsIHsgdHJhbnNsYXRpb25WYXJpYWJsZXM6IGRhdGEudHJhbnNsYXRpb25WYXJpYWJsZXMgfSkpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgcmV0dXJuIGZvcmtKb2luKG9icyk7XHJcbiAgICAgIH0pLFxyXG4gICAgICB0YXAoZmllbGRFcnJvck1lc3NhZ2VzID0+IHtcclxuICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBmaWVsZEVycm9yTWVzc2FnZXMuam9pbihcIjxici8+XCIpO1xyXG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLnNob3dPa2F5KCdGb3JtIHZhbGlkYXRpb24gZmFpbGVkJywgZXJyb3JNZXNzYWdlLCBbJ2NvbC00J10pO1xyXG4gICAgICAgIGNvbnNvbGUud2FybihcIkZvcm0gVmFsaWRhdGlvbiBnb3QgZXJyb3Iocyk6XCIsIGVycm9yTWVzc2FnZSk7XHJcbiAgICAgIH0pXHJcbiAgICApLnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEVycm9yTWVzc2FnZUZvckludmFsaWRJbnB1dChncm91cDogWkdyb3VwLCBmb3JtR3JvdXA/OiBGb3JtR3JvdXAsIGNvbnRyb2xOYW1lPzogc3RyaW5nKTogQXJyYXk8VHJhbnNsYXRpb25JbnB1dD4ge1xyXG4gICAgZm9ybUdyb3VwID0gZm9ybUdyb3VwIHx8IGdyb3VwLmZvcm07XHJcblxyXG4gICAgaWYgKGNvbnRyb2xOYW1lKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmV4dHJhY3RFcnJvck1lc3NhZ2VGcm9tQ29udHJvbChmb3JtR3JvdXAsIGNvbnRyb2xOYW1lLCBncm91cCk7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGFsbEZvcm1Db250cm9sRXJyb3JNZXNzYWdlcyA9IG5ldyBBcnJheTxUcmFuc2xhdGlvbklucHV0PigpO1xyXG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoZm9ybUdyb3VwLmNvbnRyb2xzKSkge1xyXG4gICAgICBjb25zdCBmb3JtQ29udHJvbEVycm9yTWVzc2FnZXMgPSB0aGlzLmV4dHJhY3RFcnJvck1lc3NhZ2VGcm9tQ29udHJvbChmb3JtR3JvdXAsIGtleSwgZ3JvdXApO1xyXG4gICAgICBhbGxGb3JtQ29udHJvbEVycm9yTWVzc2FnZXMgPSBhbGxGb3JtQ29udHJvbEVycm9yTWVzc2FnZXMuY29uY2F0KGZvcm1Db250cm9sRXJyb3JNZXNzYWdlcyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYWxsRm9ybUNvbnRyb2xFcnJvck1lc3NhZ2VzO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBleHRyYWN0RXJyb3JNZXNzYWdlRnJvbUNvbnRyb2woZm9ybUdyb3VwOiBGb3JtR3JvdXAsIGtleTogc3RyaW5nLCBncm91cDogWkdyb3VwKTogQXJyYXk8VHJhbnNsYXRpb25JbnB1dD4ge1xyXG4gICAgY29uc3QgZXJyb3JNc2dBcnIgPSBuZXcgQXJyYXk8VHJhbnNsYXRpb25JbnB1dD4oKTtcclxuICAgIGNvbnN0IGNvbnRyb2wgPSBmb3JtR3JvdXAuZ2V0KGtleSk7XHJcbiAgICBjb25zdCBjb250cm9sRXJyb3JzID0gY29udHJvbD8uZXJyb3JzO1xyXG5cclxuICAgIGlmIChjb250cm9sICYmIGNvbnRyb2xFcnJvcnMpIHtcclxuICAgICAgY29uc3QgZXJyb3JUeXBlcyA9IE9iamVjdC5rZXlzKGNvbnRyb2xFcnJvcnMpO1xyXG4gICAgICBmb3IgKGNvbnN0IGVycm9yVHlwZSBvZiBlcnJvclR5cGVzKSB7XHJcbiAgICAgICAgbGV0IGVyck1lc3NhZ2UgPSBudWxsO1xyXG4gICAgICAgIGlmIChrZXkuaW5jbHVkZXMoJ3p1ZGZfJykpIHsgXHJcbiAgICAgICAgICBjb25zdCB6dWRmID0gWkNvbXBvbmVudEhlbHBlci5nZXRadWRmQnlDb21wb25lbnQoZ3JvdXAsIGtleSk7IFxyXG4gICAgICAgICAgZXJyTWVzc2FnZSA9IHRoaXMuZ2V0RXJyb3JNZXNzYWdlQnlFcnJvclR5cGUoZXJyb3JUeXBlLCBrZXksIHp1ZGZbJ2Zvcm1GaWVsZHMnXSwgY29udHJvbEVycm9ycyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgZXJyTWVzc2FnZSA9IHRoaXMuZ2V0RXJyb3JNZXNzYWdlQnlFcnJvclR5cGUoZXJyb3JUeXBlLCBrZXksIGdyb3VwLmZpZWxkcywgY29udHJvbEVycm9ycyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoZXJyTWVzc2FnZS5lcnJvck1lc3NhZ2UpIHtcclxuICAgICAgICAgIGVycm9yTXNnQXJyLnB1c2goZXJyTWVzc2FnZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBlcnJvck1zZ0FycjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0RXJyb3JNZXNzYWdlQnlFcnJvclR5cGUoZXJyb3JUeXBlOiBhbnksIGNvbnRyb2xOYW1lOiBzdHJpbmcsIGZpZWxkczogWkZpZWxkW10sIGVycm9yRGV0YWlsOiBhbnkpOiBUcmFuc2xhdGlvbklucHV0IHtcclxuICAgIGNvbnN0IGZpZWxkID0gWkNvbXBvbmVudEhlbHBlci5nZXRGaWVsZEZyb21GaWVsZHNCeVZhbHVlKGZpZWxkcywgY29udHJvbE5hbWUpO1xyXG4gICAgbGV0IGVycm9yTWVzc2FnZSA9IFwiXCI7XHJcbiAgICBjb25zdCB0cmFuc2xhdGlvblZhcmlhYmxlcyA9IHsgVF9GaWVsZE5hbWU6IFpDb21wb25lbnRIZWxwZXIuZ2V0RmllbGRMYWJlbChmaWVsZHMsIGNvbnRyb2xOYW1lKSB9O1xyXG4gICAgc3dpdGNoIChlcnJvclR5cGUpIHtcclxuICAgICAgY2FzZSAncmVxdWlyZWQnOlxyXG4gICAgICAgIGVycm9yTWVzc2FnZSA9IGAke3RoaXMuZ2V0RXJyb3JNc2dBY3Rpb25fUmVxdWlyZWQoZmllbGQuVHlwZSl9IHRoZSB7e1RfRmllbGROYW1lfX1gO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdtaW5sZW5ndGgnOlxyXG4gICAgICAgIGVycm9yTWVzc2FnZSA9IGB7e1RfRmllbGROYW1lfX0gbXVzdCBiZSBtb3JlIHRoYW4ge3tUX01pbkxlbmd0aH19IGNoYXJhY3RlcnNgO1xyXG4gICAgICAgIE9iamVjdC5hc3NpZ24odHJhbnNsYXRpb25WYXJpYWJsZXMsIHsgVF9NaW5MZW5ndGg6IGVycm9yRGV0YWlsW2Vycm9yVHlwZV0ucmVxdWlyZWRMZW5ndGggfSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ21heGxlbmd0aCc6XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlID0gYHt7VF9GaWVsZE5hbWV9fSBtdXN0IGJlIGxlc3MgdGhhbiB7e1RfTWF4TGVuZ3RofX0gY2hhcmFjdGVyc2A7XHJcbiAgICAgICAgT2JqZWN0LmFzc2lnbih0cmFuc2xhdGlvblZhcmlhYmxlcywgeyBUX01heExlbmd0aDogZXJyb3JEZXRhaWxbZXJyb3JUeXBlXS5yZXF1aXJlZExlbmd0aCB9KTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnZW1haWwnOlxyXG4gICAgICAgIGVycm9yTWVzc2FnZSA9IGBFbnRlciBhIHZhbGlkIGVtYWlsIGFkZHJlc3MgZm9yIHt7VF9GaWVsZE5hbWV9fWA7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ21pbic6XHJcbiAgICAgIGNhc2UgJ21heCc6XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlID0gJyc7XHJcbiAgICAgICAgYnJlYWtcclxuICAgICAgY2FzZSAnbWluRXJyb3InOlxyXG4gICAgICAgIGVycm9yTWVzc2FnZSA9IGB7e1RfRmllbGROYW1lfX0gbXVzdCBiZSBlcXVhbCBvciBtb3JlIHRoYW4ge3tUX01pblZhbHVlfX1gO1xyXG4gICAgICAgIE9iamVjdC5hc3NpZ24odHJhbnNsYXRpb25WYXJpYWJsZXMsIHsgVF9NaW5WYWx1ZTogZXJyb3JEZXRhaWxbZXJyb3JUeXBlXS5taW5WYWx1ZSB9KTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnbWF4RXJyb3InOlxyXG4gICAgICAgIGVycm9yTWVzc2FnZSA9IGB7e1RfRmllbGROYW1lfX0gbXVzdCBiZSBlcXVhbCBvciBsZXNzIHRoYW4ge3tUX01heFZhbHVlfX1gO1xyXG4gICAgICAgIE9iamVjdC5hc3NpZ24odHJhbnNsYXRpb25WYXJpYWJsZXMsIHsgVF9NYXhWYWx1ZTogZXJyb3JEZXRhaWxbZXJyb3JUeXBlXS5tYXhWYWx1ZSB9KTtcclxuICAgICAgICBicmVha1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGNvbnNvbGUud2FybihgRmllbGQgRXJyb3IgaXMgbm90IHByb3Blcmx5IGhhbmRsZWQgOiAke1pDb21wb25lbnRIZWxwZXIuZ2V0RmllbGRMYWJlbChmaWVsZHMsIGNvbnRyb2xOYW1lKX1gKTtcclxuICAgICAgICBlcnJvck1lc3NhZ2UgPSBgSW52YWxpZCBGaWVsZDoge3tUX0ZpZWxkTmFtZX19YDtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBlcnJvck1lc3NhZ2UsXHJcbiAgICAgIHRyYW5zbGF0aW9uVmFyaWFibGVzXHJcbiAgICB9IGFzIFRyYW5zbGF0aW9uSW5wdXQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEVycm9yTXNnQWN0aW9uX1JlcXVpcmVkKHR5cGU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgY2FzZSAnenVpc2VsZWN0bXVsdGlwbGUnOlxyXG4gICAgICBjYXNlICd6dWlzZWxlY3RtdWx0aXBsZV9idXR0b24nOlxyXG4gICAgICBjYXNlICdzZWxlY3QnOlxyXG4gICAgICAgIHJldHVybiBcIkNob29zZVwiO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBcIkVudGVyXCI7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zbGF0aW9uSW5wdXQge1xyXG4gIGVycm9yTWVzc2FnZTogc3RyaW5nO1xyXG4gIHRyYW5zbGF0aW9uVmFyaWFibGVzPzogYW55O1xyXG59XHJcbiJdfQ==