tuain-ng-forms-lib 12.0.20 → 12.0.24

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.
Files changed (29) hide show
  1. package/README.md +3 -3
  2. package/bundles/tuain-ng-forms-lib.umd.js +484 -632
  3. package/bundles/tuain-ng-forms-lib.umd.js.map +1 -1
  4. package/esm2015/lib/classes/forms/action.js +3 -4
  5. package/esm2015/lib/classes/forms/element.js +12 -2
  6. package/esm2015/lib/classes/forms/field.js +9 -21
  7. package/esm2015/lib/classes/forms/form.js +153 -236
  8. package/esm2015/lib/classes/forms/section.js +7 -1
  9. package/esm2015/lib/classes/forms/table/row-data.js +6 -26
  10. package/esm2015/lib/classes/forms/table/table.js +3 -4
  11. package/esm2015/lib/components/elements/layout/element.component.js +9 -8
  12. package/esm2015/lib/components/elements/tables/table.component.js +31 -31
  13. package/esm2015/lib/components/forms/basic-form.js +141 -138
  14. package/fesm2015/tuain-ng-forms-lib.js +363 -512
  15. package/fesm2015/tuain-ng-forms-lib.js.map +1 -1
  16. package/lib/classes/forms/action.d.ts +0 -2
  17. package/lib/classes/forms/element.d.ts +10 -0
  18. package/lib/classes/forms/field.d.ts +0 -3
  19. package/lib/classes/forms/form.d.ts +53 -55
  20. package/lib/classes/forms/section.d.ts +5 -0
  21. package/lib/classes/forms/table/row-data.d.ts +0 -1
  22. package/lib/classes/forms/table/table.d.ts +0 -1
  23. package/lib/components/elements/layout/element.component.d.ts +3 -2
  24. package/lib/components/elements/tables/table.component.d.ts +1 -1
  25. package/lib/components/forms/basic-form.d.ts +130 -93
  26. package/package.json +1 -1
  27. package/tuain-ng-forms-lib.metadata.json +1 -1
  28. package/esm2015/lib/classes/utilities.js +0 -54
  29. package/lib/classes/utilities.d.ts +0 -1
@@ -8,23 +8,23 @@ export class LibTableComponent {
8
8
  }
9
9
  ngOnInit() {
10
10
  var _a, _b;
11
- if (this.tableObject) {
12
- this.formConfig = (_a = this.tableObject) === null || _a === void 0 ? void 0 : _a._formConfig;
11
+ if (this.table) {
12
+ this.formConfig = (_a = this.table) === null || _a === void 0 ? void 0 : _a._formConfig;
13
13
  this.tableFieldStyles = this.formConfig.tableFieldStyles;
14
- this.selectable = this.tableObject.selectable;
15
- this.hasActions = this.tableObject.hasActions;
16
- this.tableObject.widget = this;
17
- this.inlineActions = this.tableObject.getActions(this.formConfig.tableActions.inline);
18
- this.globalActions = this.tableObject.getActions(this.formConfig.tableActions.global);
19
- this.selectionActions = this.tableObject.getActions(this.formConfig.tableActions.selection);
14
+ this.selectable = this.table.selectable;
15
+ this.hasActions = this.table.hasActions;
16
+ this.table.widget = this;
17
+ this.inlineActions = this.table.getActions(this.formConfig.tableActions.inline);
18
+ this.globalActions = this.table.getActions(this.formConfig.tableActions.global);
19
+ this.selectionActions = this.table.getActions(this.formConfig.tableActions.selection);
20
20
  // Inicialización de campos mapeados del objeto
21
21
  const mapping = Object.entries(this.formConfig.componentTableAttrMap);
22
22
  for (let index = 0; index < mapping.length; index++) {
23
23
  const [tableAttr, compAttr] = mapping[index];
24
- this[compAttr.toString()] = (_b = this.tableObject) === null || _b === void 0 ? void 0 : _b[tableAttr.toString()];
24
+ this[compAttr.toString()] = (_b = this.table) === null || _b === void 0 ? void 0 : _b[tableAttr.toString()];
25
25
  }
26
26
  // Subscripción a cambios en atributos
27
- this.tableObject.attributeChange.subscribe(event => {
27
+ this.table.attributeChange.subscribe(event => {
28
28
  const { name: tableAttr, value } = event;
29
29
  const compAttr = this.formConfig.componentTableAttrMap[tableAttr];
30
30
  this.hasOwnProperty(compAttr) && (this[compAttr] = value);
@@ -34,24 +34,24 @@ export class LibTableComponent {
34
34
  }
35
35
  start() { }
36
36
  tableGlobalAction(actionCode) {
37
- this.tableObject.notifyGlobalAction(actionCode);
37
+ this.table.notifyGlobalAction(actionCode);
38
38
  }
39
39
  tableSelectionAction(actionCode) {
40
- this.tableObject.notifySelectionAction(actionCode);
40
+ this.table.notifySelectionAction(actionCode);
41
41
  }
42
42
  tableActionSelected(actionEvent) {
43
- this.tableObject.notifyInlineAction(actionEvent);
43
+ this.table.notifyInlineAction(actionEvent);
44
44
  }
45
45
  tableColumnSort(columnFieldCode) {
46
- this.tableObject.setRequiredOrder(columnFieldCode);
46
+ this.table.setRequiredOrder(columnFieldCode);
47
47
  if (this.clientPaging) {
48
- return this.tableObject.localSortData();
48
+ return this.table.localSortData();
49
49
  }
50
- this.tableObject.notifyGetDataAction();
50
+ this.table.notifyGetDataAction();
51
51
  }
52
52
  changePage(requestedPage) {
53
53
  if (!this.clientPaging) {
54
- this.tableObject.notifyGetDataAction(requestedPage);
54
+ this.table.notifyGetDataAction(requestedPage);
55
55
  }
56
56
  }
57
57
  get records() {
@@ -67,45 +67,45 @@ export class LibTableComponent {
67
67
  const { eventType } = tableFilterEvent;
68
68
  let triggerDataUpdate = false;
69
69
  if (eventType === TABLE_FILTER_TYPES.simpleFilterChange || eventType === TABLE_FILTER_TYPES.simpleFilterFinish) {
70
- this.tableObject.simpleFilterText = tableFilterEvent.simpleFilterString.trim();
70
+ this.table.simpleFilterText = tableFilterEvent.simpleFilterString.trim();
71
71
  if (this.clientPaging) {
72
- this.tableObject.setAttr('currentPage', 1);
73
- this.tableObject.updateVisibleRecords();
72
+ this.table.setAttr('currentPage', 1);
73
+ this.table.updateVisibleRecords();
74
74
  }
75
75
  else if (eventType === TABLE_FILTER_TYPES.simpleFilterFinish) {
76
76
  triggerDataUpdate = true;
77
77
  }
78
78
  }
79
79
  if (eventType === TABLE_FILTER_TYPES.complexFilterAdd) {
80
- this.tableObject.addFilterRestriction(tableFilterEvent.complexFilterItem);
80
+ this.table.addFilterRestriction(tableFilterEvent.complexFilterItem);
81
81
  }
82
82
  if (eventType === TABLE_FILTER_TYPES.complexFilterRemove) {
83
- this.tableObject.removeFilterRestriction(tableFilterEvent.itemName);
83
+ this.table.removeFilterRestriction(tableFilterEvent.itemName);
84
84
  }
85
85
  if (triggerDataUpdate) {
86
86
  const tableGetDataEvent = {
87
- tableCode: this.tableObject.tableCode,
87
+ tableCode: this.table.tableCode,
88
88
  requestedPage: 1,
89
89
  };
90
- this.tableObject.notifyGetDataAction(tableGetDataEvent);
90
+ this.table.notifyGetDataAction(tableGetDataEvent);
91
91
  }
92
92
  }
93
93
  tableSelectionToggle(recordId) {
94
- this.tableObject.notifyRecordSelection(recordId);
94
+ this.table.notifyRecordSelection(recordId);
95
95
  }
96
96
  toggleSelectAll() {
97
97
  if (this.allSelected) {
98
- this.tableObject.unSelectAll();
98
+ this.table.unSelectAll();
99
99
  }
100
100
  else {
101
- this.tableObject.selectAll();
101
+ this.table.selectAll();
102
102
  }
103
103
  }
104
104
  get availableFilters() {
105
- return this.tableObject.availableFilters;
105
+ return this.table.availableFilters;
106
106
  }
107
107
  get selectedRecords() {
108
- return this.tableObject.selectedRecords;
108
+ return this.table.selectedRecords;
109
109
  }
110
110
  }
111
111
  LibTableComponent.decorators = [
@@ -116,10 +116,10 @@ LibTableComponent.decorators = [
116
116
  },] }
117
117
  ];
118
118
  LibTableComponent.propDecorators = {
119
- tableObject: [{ type: Input }],
119
+ table: [{ type: Input }],
120
120
  tableRecords: [{ type: Input }],
121
121
  disabled: [{ type: Input }],
122
122
  currentState: [{ type: Input }],
123
123
  waiting: [{ type: Input }]
124
124
  };
125
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVhaW4tbmctZm9ybXMtbGliL3NyYy9saWIvY29tcG9uZW50cy9lbGVtZW50cy90YWJsZXMvdGFibGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFhLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTdGLE9BQU8sRUFBNkMsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQVFuSCxNQUFNLE9BQU8saUJBQWlCO0lBTjlCO1FBMkJFLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFDZixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGVBQVUsR0FBRyxLQUFLLENBQUM7SUEwSHJCLENBQUM7SUEvR0MsUUFBUTs7UUFDTixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFBLElBQUksQ0FBQyxXQUFXLDBDQUFFLFdBQVcsQ0FBQztZQUNoRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQztZQUN6RCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDO1lBQzlDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUM7WUFDOUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQy9CLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdEYsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FB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QkFBaUIsRUFBRTtZQUNyQixNQUFNLGlCQUFpQixHQUFHO2dCQUN4QixTQUFTLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTO2dCQUNyQyxhQUFhLEVBQUUsQ0FBQzthQUNqQixDQUFDO1lBQ0YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1NBQ3pEO0lBQ0gsQ0FBQztJQUVELG9CQUFvQixDQUFDLFFBQVE7UUFDM0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNwQixJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ2hDO2FBQU07WUFDTCxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxDQUFDO1NBQzlCO0lBQ0gsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQztJQUMzQyxDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUM7SUFDMUMsQ0FBQzs7O1lBdEpGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsV0FBVztnQkFDckIsUUFBUSxFQUFFLDJCQUEyQjtnQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07YUFDaEQ7OzswQkE4QkUsS0FBSzsyQkFDTCxLQUFLO3VCQUNMLEtBQUs7MkJBQ0wsS0FBSztzQkFDTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBWaWV3Q2hpbGQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUYWJsZVJlY29yZERhdGEgfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2Zvcm1zL3RhYmxlL3Jvdy1kYXRhJztcbmltcG9ydCB7IFRhYmxlQWN0aW9uRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2Zvcm1zL3RhYmxlL3RhYmxlJztcblxuaW1wb3J0IHsgUmVjb3JkVGFibGUsIFRhYmxlRXZlbnQsIFRhYmxlRmlsdGVyRXZlbnQsIFRBQkxFX0ZJTFRFUl9UWVBFUyB9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvZm9ybXMvdGFibGUvdGFibGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItdGFibGUnLFxuICB0ZW1wbGF0ZTogYDxuZy1jb250ZW50PjwvbmctY29udGVudD5gLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcblxuZXhwb3J0IGNsYXNzIExpYlRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgZm9ybUNvbmZpZzogYW55O1xuXG4gIC8vIEF0cmlidXRvcyBzaW5jcm9uaXphZG9zIGRlbCBvYmpldG9cbiAgY29kZTogYW55O1xuICBzZWxlY3Rpb25CYWNrZW5kOiBhbnk7XG4gIHNpbXBsZUZpbHRlcjogYW55O1xuICBjb21wbGV4RmlsdGVyOiBhbnk7XG4gIGFsbFNlbGVjdGVkOiBhbnk7XG4gIGN1cnJlbnRQYWdlOiBhbnk7XG4gIHZpc2libGVSZWNvcmRzOiBhbnk7XG4gIHJlY29yZHNQZXJQYWdlOiBhbnk7XG4gIGNsaWVudFBhZ2luZzogYW55O1xuICBjb2x1bW5zOiBhbnk7XG4gIHNvcnRhYmxlOiBhbnk7XG4gIHNvcnRpbmc6IGFueTtcbiAgdG90YWxSZWNvcmRzTnVtYmVyOiBhbnk7XG4gIGZpbHRlckNvbmZpZzogYW55O1xuICBmaWx0ZXJPYmplY3Q6IGFueTtcblxuICB0YWJsZUZpZWxkU3R5bGVzOiBhbnk7XG4gIGxvYWRlZCA9IGZhbHNlO1xuICBzZWxlY3RhYmxlID0gZmFsc2U7XG4gIGhhc0FjdGlvbnMgPSBmYWxzZTtcbiAgaW5saW5lQWN0aW9uczogYW55O1xuICBnbG9iYWxBY3Rpb25zOiBhbnk7XG4gIHNlbGVjdGlvbkFjdGlvbnM6IGFueTtcblxuICBASW5wdXQoKSB0YWJsZU9iamVjdDogUmVjb3JkVGFibGU7XG4gIEBJbnB1dCgpIHRhYmxlUmVjb3JkczogVGFibGVSZWNvcmREYXRhW107XG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuO1xuICBASW5wdXQoKSBjdXJyZW50U3RhdGU6IHN0cmluZztcbiAgQElucHV0KCkgd2FpdGluZzogYm9vbGVhbjtcblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy50YWJsZU9iamVjdCkge1xuICAgICAgdGhpcy5mb3JtQ29uZmlnID0gdGhpcy50YWJsZU9iamVjdD8uX2Zvcm1Db25maWc7XG4gICAgICB0aGlzLnRhYmxlRmllbGRTdHlsZXMgPSB0aGlzLmZvcm1Db25maWcudGFibGVGaWVsZFN0eWxlcztcbiAgICAgIHRoaXMuc2VsZWN0YWJsZSA9IHRoaXMudGFibGVPYmplY3Quc2VsZWN0YWJsZTtcbiAgICAgIHRoaXMuaGFzQWN0aW9ucyA9IHRoaXMudGFibGVPYmplY3QuaGFzQWN0aW9ucztcbiAgICAgIHRoaXMudGFibGVPYmplY3Qud2lkZ2V0ID0gdGhpcztcbiAgICAgIHRoaXMuaW5saW5lQWN0aW9ucyA9IHRoaXMudGFibGVPYmplY3QuZ2V0QWN0aW9ucyh0aGlzLmZvcm1Db25maWcudGFibGVBY3Rpb25zLmlubGluZSk7XG4gICAgICB0aGlzLmdsb2JhbEFjdGlvbnMgPSB0aGlzLnRhYmxlT2JqZWN0LmdldEFjdGlvbnModGhpcy5mb3JtQ29uZmlnLnRhYmxlQWN0aW9ucy5nbG9iYWwpO1xuICAgICAgdGhpcy5zZWxlY3Rpb25BY3Rpb25zID0gdGhpcy50YWJsZU9iamVjdC5nZXRBY3Rpb25zKHRoaXMuZm9ybUNvbmZpZy50YWJsZUFjdGlvbnMuc2VsZWN0aW9uKTtcbiAgICAgIC8vIEluaWNpYWxpemFjacOzbiBkZSBjYW1wb3MgbWFwZWFkb3MgZGVsIG9iamV0b1xuICAgICAgY29uc3QgbWFwcGluZyA9IE9iamVjdC5lbnRyaWVzKHRoaXMuZm9ybUNvbmZpZy5jb21wb25lbnRUYWJsZUF0dHJNYXApO1xuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IG1hcHBpbmcubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgIGNvbnN0IFt0YWJsZUF0dHIsIGNvbXBBdHRyXSA9IG1hcHBpbmdbaW5kZXhdO1xuICAgICAgICB0aGlzW2NvbXBBdHRyLnRvU3RyaW5nKCldID0gdGhpcy50YWJsZU9iamVjdD8uW3RhYmxlQXR0ci50b1N0cmluZygpXTtcbiAgICAgIH1cbiAgICAgIC8vIFN1YnNjcmlwY2nDs24gYSBjYW1iaW9zIGVuIGF0cmlidXRvc1xuICAgICAgdGhpcy50YWJsZU9iamVjdC5hdHRyaWJ1dGVDaGFuZ2Uuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgICAgY29uc3QgeyBuYW1lOiB0YWJsZUF0dHIsIHZhbHVlIH0gPSBldmVudDtcbiAgICAgICAgY29uc3QgY29tcEF0dHIgPSB0aGlzLmZvcm1Db25maWcuY29tcG9uZW50VGFibGVBdHRyTWFwW3RhYmxlQXR0cl07XG4gICAgICAgIHRoaXMuaGFzT3duUHJvcGVydHkoY29tcEF0dHIpICYmICh0aGlzW2NvbXBBdHRyXSA9IHZhbHVlKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLnN0YXJ0KCk7XG4gIH1cblxuICBzdGFydCgpIHsgfVxuXG4gIHRhYmxlR2xvYmFsQWN0aW9uKGFjdGlvbkNvZGU6IHN0cmluZykge1xuICAgIHRoaXMudGFibGVPYmplY3Qubm90aWZ5R2xvYmFsQWN0aW9uKGFjdGlvbkNvZGUpO1xuICB9XG5cbiAgdGFibGVTZWxlY3Rpb25BY3Rpb24oYWN0aW9uQ29kZTogc3RyaW5nKSB7XG4gICAgdGhpcy50YWJsZU9iamVjdC5ub3RpZnlTZWxlY3Rpb25BY3Rpb24oYWN0aW9uQ29kZSk7XG4gIH1cblxuICB0YWJsZUFjdGlvblNlbGVjdGVkKGFjdGlvbkV2ZW50OiBUYWJsZUFjdGlvbkV2ZW50KSB7XG4gICAgdGhpcy50YWJsZU9iamVjdC5ub3RpZnlJbmxpbmVBY3Rpb24oYWN0aW9uRXZlbnQpO1xuICB9XG5cbiAgdGFibGVDb2x1bW5Tb3J0KGNvbHVtbkZpZWxkQ29kZSkge1xuICAgIHRoaXMudGFibGVPYmplY3Quc2V0UmVxdWlyZWRPcmRlcihjb2x1bW5GaWVsZENvZGUpO1xuICAgIGlmICh0aGlzLmNsaWVudFBhZ2luZykge1xuICAgICAgcmV0dXJuIHRoaXMudGFibGVPYmplY3QubG9jYWxTb3J0RGF0YSgpO1xuICAgIH1cbiAgICB0aGlzLnRhYmxlT2JqZWN0Lm5vdGlmeUdldERhdGFBY3Rpb24oKTtcbiAgfVxuXG4gIGNoYW5nZVBhZ2UocmVxdWVzdGVkUGFnZSkge1xuICAgIGlmICghdGhpcy5jbGllbnRQYWdpbmcpIHtcbiAgICAgIHRoaXMudGFibGVPYmplY3Qubm90aWZ5R2V0RGF0YUFjdGlvbihyZXF1ZXN0ZWRQYWdlKTtcbiAgICB9XG4gIH1cblxuICBnZXQgcmVjb3JkcygpIHtcbiAgICBjb25zdCBjdXJyZW50UGFnZVJlY29yZHMgPSB0aGlzLnZpc2libGVSZWNvcmRzO1xuICAgIGlmICh0aGlzLmNsaWVudFBhZ2luZyAmJiBjdXJyZW50UGFnZVJlY29yZHMgJiYgY3VycmVudFBhZ2VSZWNvcmRzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMudG90YWxSZWNvcmRzTnVtYmVyID0gY3VycmVudFBhZ2VSZWNvcmRzLmxlbmd0aDtcbiAgICAgIHJldHVybiBjdXJyZW50UGFnZVJlY29yZHMubWFwKChyZWNvcmQsIGkpID0+ICh7IGlkOiBpICsgMSwgLi4ucmVjb3JkIH0pKVxuICAgICAgICAuc2xpY2UoKHRoaXMuY3VycmVudFBhZ2UgLSAxKSAqIHRoaXMucmVjb3Jkc1BlclBhZ2UsXG4gICAgICAgICAgKHRoaXMuY3VycmVudFBhZ2UgLSAxKSAqIHRoaXMucmVjb3Jkc1BlclBhZ2UgKyB0aGlzLnJlY29yZHNQZXJQYWdlKTtcbiAgICB9XG4gICAgcmV0dXJuIGN1cnJlbnRQYWdlUmVjb3JkcztcbiAgfVxuXG4gIGFwcGx5Q3VycmVudEZpbHRlcih0YWJsZUZpbHRlckV2ZW50OiBUYWJsZUZpbHRlckV2ZW50KSB7XG4gICAgY29uc3QgeyBldmVudFR5cGUgfSA9IHRhYmxlRmlsdGVyRXZlbnQ7XG4gICAgbGV0IHRyaWdnZXJEYXRhVXBkYXRlID0gZmFsc2U7XG4gICAgaWYgKGV2ZW50VHlwZSA9PT0gVEFCTEVfRklMVEVSX1RZUEVTLnNpbXBsZUZpbHRlckNoYW5nZSB8fCBldmVudFR5cGUgPT09IFRBQkxFX0ZJTFRFUl9UWVBFUy5zaW1wbGVGaWx0ZXJGaW5pc2gpIHtcbiAgICAgIHRoaXMudGFibGVPYmplY3Quc2ltcGxlRmlsdGVyVGV4dCA9IHRhYmxlRmlsdGVyRXZlbnQuc2ltcGxlRmlsdGVyU3RyaW5nLnRyaW0oKTtcbiAgICAgIGlmICh0aGlzLmNsaWVudFBhZ2luZykge1xuICAgICAgICB0aGlzLnRhYmxlT2JqZWN0LnNldEF0dHIoJ2N1cnJlbnRQYWdlJywgMSk7XG4gICAgICAgIHRoaXMudGFibGVPYmplY3QudXBkYXRlVmlzaWJsZVJlY29yZHMoKTtcbiAgICAgIH0gZWxzZSBpZiAoZXZlbnRUeXBlID09PSBUQUJMRV9GSUxURVJfVFlQRVMuc2ltcGxlRmlsdGVyRmluaXNoKSB7XG4gICAgICAgIHRyaWdnZXJEYXRhVXBkYXRlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGV2ZW50VHlwZSA9PT0gVEFCTEVfRklMVEVSX1RZUEVTLmNvbXBsZXhGaWx0ZXJBZGQpIHtcbiAgICAgIHRoaXMudGFibGVPYmplY3QuYWRkRmlsdGVyUmVzdHJpY3Rpb24odGFibGVGaWx0ZXJFdmVudC5jb21wbGV4RmlsdGVySXRlbSk7XG4gICAgfVxuICAgIGlmIChldmVudFR5cGUgPT09IFRBQkxFX0ZJTFRFUl9UWVBFUy5jb21wbGV4RmlsdGVyUmVtb3ZlKSB7XG4gICAgICB0aGlzLnRhYmxlT2JqZWN0LnJlbW92ZUZpbHRlclJlc3RyaWN0aW9uKHRhYmxlRmlsdGVyRXZlbnQuaXRlbU5hbWUpO1xuICAgIH1cbiAgICBpZiAodHJpZ2dlckRhdGFVcGRhdGUpIHtcbiAgICAgIGNvbnN0IHRhYmxlR2V0RGF0YUV2ZW50ID0ge1xuICAgICAgICB0YWJsZUNvZGU6IHRoaXMudGFibGVPYmplY3QudGFibGVDb2RlLFxuICAgICAgICByZXF1ZXN0ZWRQYWdlOiAxLFxuICAgICAgfTtcbiAgICAgIHRoaXMudGFibGVPYmplY3Qubm90aWZ5R2V0RGF0YUFjdGlvbih0YWJsZUdldERhdGFFdmVudCk7XG4gICAgfVxuICB9XG5cbiAgdGFibGVTZWxlY3Rpb25Ub2dnbGUocmVjb3JkSWQpIHtcbiAgICB0aGlzLnRhYmxlT2JqZWN0Lm5vdGlmeVJlY29yZFNlbGVjdGlvbihyZWNvcmRJZCk7XG4gIH1cblxuICB0b2dnbGVTZWxlY3RBbGwoKSB7XG4gICAgaWYgKHRoaXMuYWxsU2VsZWN0ZWQpIHtcbiAgICAgIHRoaXMudGFibGVPYmplY3QudW5TZWxlY3RBbGwoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy50YWJsZU9iamVjdC5zZWxlY3RBbGwoKTtcbiAgICB9XG4gIH1cblxuICBnZXQgYXZhaWxhYmxlRmlsdGVycygpIHtcbiAgICByZXR1cm4gdGhpcy50YWJsZU9iamVjdC5hdmFpbGFibGVGaWx0ZXJzO1xuICB9XG5cbiAgZ2V0IHNlbGVjdGVkUmVjb3JkcygpIHtcbiAgICByZXR1cm4gdGhpcy50YWJsZU9iamVjdC5zZWxlY3RlZFJlY29yZHM7XG4gIH1cbn1cbiJdfQ==
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVhaW4tbmctZm9ybXMtbGliL3NyYy9saWIvY29tcG9uZW50cy9lbGVtZW50cy90YWJsZXMvdGFibGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFhLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTdGLE9BQU8sRUFBNkMsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQVFuSCxNQUFNLE9BQU8saUJBQWlCO0lBTjlCO1FBMkJFLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFDZixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGVBQVUsR0FBRyxLQUFLLENBQUM7SUEwSHJCLENBQUM7SUEvR0MsUUFBUTs7UUFDTixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZCxJQUFJLENBQUMsVUFBVSxHQUFHLE1BQUEsSUFBSSxDQUFDLEtBQUssMENBQUUsV0FBVyxDQUFDO1lBQzFDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDO1lBQ3pELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7WUFDeEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQztZQUN4QyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDekIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNoRixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFD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QUFpQixFQUFFO1lBQ3JCLE1BQU0saUJBQWlCLEdBQUc7Z0JBQ3hCLFNBQVMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVM7Z0JBQy9CLGFBQWEsRUFBRSxDQUFDO2FBQ2pCLENBQUM7WUFDRixJQUFJLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLGlCQUFpQixDQUFDLENBQUM7U0FDbkQ7SUFDSCxDQUFDO0lBRUQsb0JBQW9CLENBQUMsUUFBUTtRQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDMUI7YUFBTTtZQUNMLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7U0FDeEI7SUFDSCxDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFJLGVBQWU7UUFDakIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQztJQUNwQyxDQUFDOzs7WUF0SkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxXQUFXO2dCQUNyQixRQUFRLEVBQUUsMkJBQTJCO2dCQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTthQUNoRDs7O29CQThCRSxLQUFLOzJCQUNMLEtBQUs7dUJBQ0wsS0FBSzsyQkFDTCxLQUFLO3NCQUNMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIFZpZXdDaGlsZCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRhYmxlUmVjb3JkRGF0YSB9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvZm9ybXMvdGFibGUvcm93LWRhdGEnO1xuaW1wb3J0IHsgVGFibGVBY3Rpb25FdmVudCB9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvZm9ybXMvdGFibGUvdGFibGUnO1xuXG5pbXBvcnQgeyBSZWNvcmRUYWJsZSwgVGFibGVFdmVudCwgVGFibGVGaWx0ZXJFdmVudCwgVEFCTEVfRklMVEVSX1RZUEVTIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9mb3Jtcy90YWJsZS90YWJsZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi10YWJsZScsXG4gIHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PmAsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuXG5leHBvcnQgY2xhc3MgTGliVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBmb3JtQ29uZmlnOiBhbnk7XG5cbiAgLy8gQXRyaWJ1dG9zIHNpbmNyb25pemFkb3MgZGVsIG9iamV0b1xuICBjb2RlOiBhbnk7XG4gIHNlbGVjdGlvbkJhY2tlbmQ6IGFueTtcbiAgc2ltcGxlRmlsdGVyOiBhbnk7XG4gIGNvbXBsZXhGaWx0ZXI6IGFueTtcbiAgYWxsU2VsZWN0ZWQ6IGFueTtcbiAgY3VycmVudFBhZ2U6IGFueTtcbiAgdmlzaWJsZVJlY29yZHM6IGFueTtcbiAgcmVjb3Jkc1BlclBhZ2U6IGFueTtcbiAgY2xpZW50UGFnaW5nOiBhbnk7XG4gIGNvbHVtbnM6IGFueTtcbiAgc29ydGFibGU6IGFueTtcbiAgc29ydGluZzogYW55O1xuICB0b3RhbFJlY29yZHNOdW1iZXI6IGFueTtcbiAgZmlsdGVyQ29uZmlnOiBhbnk7XG4gIGZpbHRlck9iamVjdDogYW55O1xuXG4gIHRhYmxlRmllbGRTdHlsZXM6IGFueTtcbiAgbG9hZGVkID0gZmFsc2U7XG4gIHNlbGVjdGFibGUgPSBmYWxzZTtcbiAgaGFzQWN0aW9ucyA9IGZhbHNlO1xuICBpbmxpbmVBY3Rpb25zOiBhbnk7XG4gIGdsb2JhbEFjdGlvbnM6IGFueTtcbiAgc2VsZWN0aW9uQWN0aW9uczogYW55O1xuXG4gIEBJbnB1dCgpIHRhYmxlOiBSZWNvcmRUYWJsZTtcbiAgQElucHV0KCkgdGFibGVSZWNvcmRzOiBUYWJsZVJlY29yZERhdGFbXTtcbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGN1cnJlbnRTdGF0ZTogc3RyaW5nO1xuICBASW5wdXQoKSB3YWl0aW5nOiBib29sZWFuO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLnRhYmxlKSB7XG4gICAgICB0aGlzLmZvcm1Db25maWcgPSB0aGlzLnRhYmxlPy5fZm9ybUNvbmZpZztcbiAgICAgIHRoaXMudGFibGVGaWVsZFN0eWxlcyA9IHRoaXMuZm9ybUNvbmZpZy50YWJsZUZpZWxkU3R5bGVzO1xuICAgICAgdGhpcy5zZWxlY3RhYmxlID0gdGhpcy50YWJsZS5zZWxlY3RhYmxlO1xuICAgICAgdGhpcy5oYXNBY3Rpb25zID0gdGhpcy50YWJsZS5oYXNBY3Rpb25zO1xuICAgICAgdGhpcy50YWJsZS53aWRnZXQgPSB0aGlzO1xuICAgICAgdGhpcy5pbmxpbmVBY3Rpb25zID0gdGhpcy50YWJsZS5nZXRBY3Rpb25zKHRoaXMuZm9ybUNvbmZpZy50YWJsZUFjdGlvbnMuaW5saW5lKTtcbiAgICAgIHRoaXMuZ2xvYmFsQWN0aW9ucyA9IHRoaXMudGFibGUuZ2V0QWN0aW9ucyh0aGlzLmZvcm1Db25maWcudGFibGVBY3Rpb25zLmdsb2JhbCk7XG4gICAgICB0aGlzLnNlbGVjdGlvbkFjdGlvbnMgPSB0aGlzLnRhYmxlLmdldEFjdGlvbnModGhpcy5mb3JtQ29uZmlnLnRhYmxlQWN0aW9ucy5zZWxlY3Rpb24pO1xuICAgICAgLy8gSW5pY2lhbGl6YWNpw7NuIGRlIGNhbXBvcyBtYXBlYWRvcyBkZWwgb2JqZXRvXG4gICAgICBjb25zdCBtYXBwaW5nID0gT2JqZWN0LmVudHJpZXModGhpcy5mb3JtQ29uZmlnLmNvbXBvbmVudFRhYmxlQXR0ck1hcCk7XG4gICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgbWFwcGluZy5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgY29uc3QgW3RhYmxlQXR0ciwgY29tcEF0dHJdID0gbWFwcGluZ1tpbmRleF07XG4gICAgICAgIHRoaXNbY29tcEF0dHIudG9TdHJpbmcoKV0gPSB0aGlzLnRhYmxlPy5bdGFibGVBdHRyLnRvU3RyaW5nKCldO1xuICAgICAgfVxuICAgICAgLy8gU3Vic2NyaXBjacOzbiBhIGNhbWJpb3MgZW4gYXRyaWJ1dG9zXG4gICAgICB0aGlzLnRhYmxlLmF0dHJpYnV0ZUNoYW5nZS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICBjb25zdCB7IG5hbWU6IHRhYmxlQXR0ciwgdmFsdWUgfSA9IGV2ZW50O1xuICAgICAgICBjb25zdCBjb21wQXR0ciA9IHRoaXMuZm9ybUNvbmZpZy5jb21wb25lbnRUYWJsZUF0dHJNYXBbdGFibGVBdHRyXTtcbiAgICAgICAgdGhpcy5oYXNPd25Qcm9wZXJ0eShjb21wQXR0cikgJiYgKHRoaXNbY29tcEF0dHJdID0gdmFsdWUpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMuc3RhcnQoKTtcbiAgfVxuXG4gIHN0YXJ0KCkgeyB9XG5cbiAgdGFibGVHbG9iYWxBY3Rpb24oYWN0aW9uQ29kZTogc3RyaW5nKSB7XG4gICAgdGhpcy50YWJsZS5ub3RpZnlHbG9iYWxBY3Rpb24oYWN0aW9uQ29kZSk7XG4gIH1cblxuICB0YWJsZVNlbGVjdGlvbkFjdGlvbihhY3Rpb25Db2RlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnRhYmxlLm5vdGlmeVNlbGVjdGlvbkFjdGlvbihhY3Rpb25Db2RlKTtcbiAgfVxuXG4gIHRhYmxlQWN0aW9uU2VsZWN0ZWQoYWN0aW9uRXZlbnQ6IFRhYmxlQWN0aW9uRXZlbnQpIHtcbiAgICB0aGlzLnRhYmxlLm5vdGlmeUlubGluZUFjdGlvbihhY3Rpb25FdmVudCk7XG4gIH1cblxuICB0YWJsZUNvbHVtblNvcnQoY29sdW1uRmllbGRDb2RlKSB7XG4gICAgdGhpcy50YWJsZS5zZXRSZXF1aXJlZE9yZGVyKGNvbHVtbkZpZWxkQ29kZSk7XG4gICAgaWYgKHRoaXMuY2xpZW50UGFnaW5nKSB7XG4gICAgICByZXR1cm4gdGhpcy50YWJsZS5sb2NhbFNvcnREYXRhKCk7XG4gICAgfVxuICAgIHRoaXMudGFibGUubm90aWZ5R2V0RGF0YUFjdGlvbigpO1xuICB9XG5cbiAgY2hhbmdlUGFnZShyZXF1ZXN0ZWRQYWdlKSB7XG4gICAgaWYgKCF0aGlzLmNsaWVudFBhZ2luZykge1xuICAgICAgdGhpcy50YWJsZS5ub3RpZnlHZXREYXRhQWN0aW9uKHJlcXVlc3RlZFBhZ2UpO1xuICAgIH1cbiAgfVxuXG4gIGdldCByZWNvcmRzKCkge1xuICAgIGNvbnN0IGN1cnJlbnRQYWdlUmVjb3JkcyA9IHRoaXMudmlzaWJsZVJlY29yZHM7XG4gICAgaWYgKHRoaXMuY2xpZW50UGFnaW5nICYmIGN1cnJlbnRQYWdlUmVjb3JkcyAmJiBjdXJyZW50UGFnZVJlY29yZHMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy50b3RhbFJlY29yZHNOdW1iZXIgPSBjdXJyZW50UGFnZVJlY29yZHMubGVuZ3RoO1xuICAgICAgcmV0dXJuIGN1cnJlbnRQYWdlUmVjb3Jkcy5tYXAoKHJlY29yZCwgaSkgPT4gKHsgaWQ6IGkgKyAxLCAuLi5yZWNvcmQgfSkpXG4gICAgICAgIC5zbGljZSgodGhpcy5jdXJyZW50UGFnZSAtIDEpICogdGhpcy5yZWNvcmRzUGVyUGFnZSxcbiAgICAgICAgICAodGhpcy5jdXJyZW50UGFnZSAtIDEpICogdGhpcy5yZWNvcmRzUGVyUGFnZSArIHRoaXMucmVjb3Jkc1BlclBhZ2UpO1xuICAgIH1cbiAgICByZXR1cm4gY3VycmVudFBhZ2VSZWNvcmRzO1xuICB9XG5cbiAgYXBwbHlDdXJyZW50RmlsdGVyKHRhYmxlRmlsdGVyRXZlbnQ6IFRhYmxlRmlsdGVyRXZlbnQpIHtcbiAgICBjb25zdCB7IGV2ZW50VHlwZSB9ID0gdGFibGVGaWx0ZXJFdmVudDtcbiAgICBsZXQgdHJpZ2dlckRhdGFVcGRhdGUgPSBmYWxzZTtcbiAgICBpZiAoZXZlbnRUeXBlID09PSBUQUJMRV9GSUxURVJfVFlQRVMuc2ltcGxlRmlsdGVyQ2hhbmdlIHx8IGV2ZW50VHlwZSA9PT0gVEFCTEVfRklMVEVSX1RZUEVTLnNpbXBsZUZpbHRlckZpbmlzaCkge1xuICAgICAgdGhpcy50YWJsZS5zaW1wbGVGaWx0ZXJUZXh0ID0gdGFibGVGaWx0ZXJFdmVudC5zaW1wbGVGaWx0ZXJTdHJpbmcudHJpbSgpO1xuICAgICAgaWYgKHRoaXMuY2xpZW50UGFnaW5nKSB7XG4gICAgICAgIHRoaXMudGFibGUuc2V0QXR0cignY3VycmVudFBhZ2UnLCAxKTtcbiAgICAgICAgdGhpcy50YWJsZS51cGRhdGVWaXNpYmxlUmVjb3JkcygpO1xuICAgICAgfSBlbHNlIGlmIChldmVudFR5cGUgPT09IFRBQkxFX0ZJTFRFUl9UWVBFUy5zaW1wbGVGaWx0ZXJGaW5pc2gpIHtcbiAgICAgICAgdHJpZ2dlckRhdGFVcGRhdGUgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoZXZlbnRUeXBlID09PSBUQUJMRV9GSUxURVJfVFlQRVMuY29tcGxleEZpbHRlckFkZCkge1xuICAgICAgdGhpcy50YWJsZS5hZGRGaWx0ZXJSZXN0cmljdGlvbih0YWJsZUZpbHRlckV2ZW50LmNvbXBsZXhGaWx0ZXJJdGVtKTtcbiAgICB9XG4gICAgaWYgKGV2ZW50VHlwZSA9PT0gVEFCTEVfRklMVEVSX1RZUEVTLmNvbXBsZXhGaWx0ZXJSZW1vdmUpIHtcbiAgICAgIHRoaXMudGFibGUucmVtb3ZlRmlsdGVyUmVzdHJpY3Rpb24odGFibGVGaWx0ZXJFdmVudC5pdGVtTmFtZSk7XG4gICAgfVxuICAgIGlmICh0cmlnZ2VyRGF0YVVwZGF0ZSkge1xuICAgICAgY29uc3QgdGFibGVHZXREYXRhRXZlbnQgPSB7XG4gICAgICAgIHRhYmxlQ29kZTogdGhpcy50YWJsZS50YWJsZUNvZGUsXG4gICAgICAgIHJlcXVlc3RlZFBhZ2U6IDEsXG4gICAgICB9O1xuICAgICAgdGhpcy50YWJsZS5ub3RpZnlHZXREYXRhQWN0aW9uKHRhYmxlR2V0RGF0YUV2ZW50KTtcbiAgICB9XG4gIH1cblxuICB0YWJsZVNlbGVjdGlvblRvZ2dsZShyZWNvcmRJZCkge1xuICAgIHRoaXMudGFibGUubm90aWZ5UmVjb3JkU2VsZWN0aW9uKHJlY29yZElkKTtcbiAgfVxuXG4gIHRvZ2dsZVNlbGVjdEFsbCgpIHtcbiAgICBpZiAodGhpcy5hbGxTZWxlY3RlZCkge1xuICAgICAgdGhpcy50YWJsZS51blNlbGVjdEFsbCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRhYmxlLnNlbGVjdEFsbCgpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBhdmFpbGFibGVGaWx0ZXJzKCkge1xuICAgIHJldHVybiB0aGlzLnRhYmxlLmF2YWlsYWJsZUZpbHRlcnM7XG4gIH1cblxuICBnZXQgc2VsZWN0ZWRSZWNvcmRzKCkge1xuICAgIHJldHVybiB0aGlzLnRhYmxlLnNlbGVjdGVkUmVjb3JkcztcbiAgfVxufVxuIl19