tuain-ng-forms-lib 12.0.5 → 12.0.6

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.
@@ -7,15 +7,29 @@ export class LibTableComponent {
7
7
  this.hasActions = false;
8
8
  }
9
9
  ngOnInit() {
10
- var _a;
11
- this.formConfig = (_a = this.tableObject) === null || _a === void 0 ? void 0 : _a._formConfig;
12
- this.tableFieldStyles = this.formConfig.tableFieldStyles;
13
- this.selectable = this.tableObject.selectable;
14
- this.hasActions = this.tableObject.hasActions;
15
- this.tableObject.widget = this;
16
- this.inlineActions = this.tableObject.getActions(this.formConfig.tableActions.inline);
17
- this.globalActions = this.tableObject.getActions(this.formConfig.tableActions.global);
18
- this.selectionActions = this.tableObject.getActions(this.formConfig.tableActions.selection);
10
+ var _a, _b;
11
+ if (this.tableObject) {
12
+ this.formConfig = (_a = this.tableObject) === null || _a === void 0 ? void 0 : _a._formConfig;
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);
20
+ // Inicialización de campos mapeados del objeto
21
+ const mapping = Object.entries(this.formConfig.componentTableAttrMap);
22
+ for (let index = 0; index < mapping.length; index++) {
23
+ const [tableAttr, compAttr] = mapping[index];
24
+ this[compAttr.toString()] = (_b = this.tableObject) === null || _b === void 0 ? void 0 : _b[tableAttr.toString()];
25
+ }
26
+ // Subscripción a cambios en atributos
27
+ this.tableObject.attributeChange.subscribe(event => {
28
+ const { name: tableAttr, value } = event;
29
+ const compAttr = this.formConfig.componentTableAttrMap[tableAttr];
30
+ this.hasOwnProperty(compAttr) && (this[compAttr] = value);
31
+ });
32
+ }
19
33
  this.start();
20
34
  }
21
35
  start() { }
@@ -30,22 +44,22 @@ export class LibTableComponent {
30
44
  }
31
45
  tableColumnSort(columnFieldCode) {
32
46
  this.tableObject.setRequiredOrder(columnFieldCode);
33
- if (this.tableObject.clientPaging) {
47
+ if (this.clientPaging) {
34
48
  return this.tableObject.localSortData();
35
49
  }
36
50
  this.tableObject.notifyGetDataAction();
37
51
  }
38
52
  changePage(requestedPage) {
39
- if (!this.tableObject.clientPaging) {
53
+ if (!this.clientPaging) {
40
54
  this.tableObject.notifyGetDataAction(requestedPage);
41
55
  }
42
56
  }
43
57
  get records() {
44
- const currentPageRecords = this.tableObject.records;
45
- if (this.tableObject.clientPaging && currentPageRecords && currentPageRecords.length > 0) {
46
- this.tableObject.totalRecordsNumber = currentPageRecords.length;
58
+ const currentPageRecords = this.visibleRecords;
59
+ if (this.clientPaging && currentPageRecords && currentPageRecords.length > 0) {
60
+ this.totalRecordsNumber = currentPageRecords.length;
47
61
  return currentPageRecords.map((record, i) => (Object.assign({ id: i + 1 }, record)))
48
- .slice((this.tableObject.currentPage - 1) * this.tableObject.recordsPerPage, (this.tableObject.currentPage - 1) * this.tableObject.recordsPerPage + this.tableObject.recordsPerPage);
62
+ .slice((this.currentPage - 1) * this.recordsPerPage, (this.currentPage - 1) * this.recordsPerPage + this.recordsPerPage);
49
63
  }
50
64
  return currentPageRecords;
51
65
  }
@@ -54,8 +68,8 @@ export class LibTableComponent {
54
68
  let triggerDataUpdate = false;
55
69
  if (eventType === TABLE_FILTER_TYPES.simpleFilterChange || eventType === TABLE_FILTER_TYPES.simpleFilterFinish) {
56
70
  this.tableObject.simpleFilterText = tableFilterEvent.simpleFilterString.trim();
57
- if (this.tableObject.clientPaging) {
58
- this.tableObject.currentPage = 1;
71
+ if (this.clientPaging) {
72
+ this.tableObject.setAttr('currentPage', 1);
59
73
  this.tableObject.updateVisibleRecords();
60
74
  }
61
75
  else if (eventType === TABLE_FILTER_TYPES.simpleFilterFinish) {
@@ -80,13 +94,19 @@ export class LibTableComponent {
80
94
  this.tableObject.notifyRecordSelection(recordId);
81
95
  }
82
96
  toggleSelectAll() {
83
- if (this.tableObject.allSelected) {
97
+ if (this.allSelected) {
84
98
  this.tableObject.unSelectAll();
85
99
  }
86
100
  else {
87
101
  this.tableObject.selectAll();
88
102
  }
89
103
  }
104
+ get availableFilters() {
105
+ return this.tableObject.availableFilters;
106
+ }
107
+ get selectedRecords() {
108
+ return this.tableObject.selectedRecords;
109
+ }
90
110
  }
91
111
  LibTableComponent.decorators = [
92
112
  { type: Component, args: [{
@@ -102,4 +122,4 @@ LibTableComponent.propDecorators = {
102
122
  currentState: [{ type: Input }],
103
123
  waiting: [{ type: Input }]
104
124
  };
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVhaW4tbmctZm9ybXMtbGliL3NyYy9saWIvY29tcG9uZW50cy9lbGVtZW50cy90YWJsZXMvdGFibGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFhLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTdGLE9BQU8sRUFBNkMsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQVFuSCxNQUFNLE9BQU8saUJBQWlCO0lBTjlCO1FBU0UsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUNmLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsZUFBVSxHQUFHLEtBQUssQ0FBQztJQW9HckIsQ0FBQztJQXpGQyxRQUFROztRQUNOLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBQSxJQUFJLENBQUMsV0FBVywwQ0FBRSxXQUFXLENBQUM7UUFDaEQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUM7UUFDekQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQztRQUM5QyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDO1FBQzlDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUMvQixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RGLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMs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WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIFZpZXdDaGlsZCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRhYmxlUmVjb3JkRGF0YSB9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvZm9ybXMvdGFibGUvcm93LWRhdGEnO1xuaW1wb3J0IHsgVGFibGVBY3Rpb25FdmVudCB9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvZm9ybXMvdGFibGUvdGFibGUnO1xuXG5pbXBvcnQgeyBSZWNvcmRUYWJsZSwgVGFibGVFdmVudCwgVGFibGVGaWx0ZXJFdmVudCwgVEFCTEVfRklMVEVSX1RZUEVTIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9mb3Jtcy90YWJsZS90YWJsZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi10YWJsZScsXG4gIHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PmAsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuXG5leHBvcnQgY2xhc3MgTGliVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBmb3JtQ29uZmlnOiBhbnk7XG4gIHRhYmxlRmllbGRTdHlsZXM6IGFueTtcbiAgbG9hZGVkID0gZmFsc2U7XG4gIHNlbGVjdGFibGUgPSBmYWxzZTtcbiAgaGFzQWN0aW9ucyA9IGZhbHNlO1xuICBpbmxpbmVBY3Rpb25zOiBhbnk7XG4gIGdsb2JhbEFjdGlvbnM6IGFueTtcbiAgc2VsZWN0aW9uQWN0aW9uczogYW55O1xuXG4gIEBJbnB1dCgpIHRhYmxlT2JqZWN0OiBSZWNvcmRUYWJsZTtcbiAgQElucHV0KCkgdGFibGVSZWNvcmRzOiBUYWJsZVJlY29yZERhdGFbXTtcbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGN1cnJlbnRTdGF0ZTogc3RyaW5nO1xuICBASW5wdXQoKSB3YWl0aW5nOiBib29sZWFuO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZm9ybUNvbmZpZyA9IHRoaXMudGFibGVPYmplY3Q/Ll9mb3JtQ29uZmlnO1xuICAgIHRoaXMudGFibGVGaWVsZFN0eWxlcyA9IHRoaXMuZm9ybUNvbmZpZy50YWJsZUZpZWxkU3R5bGVzO1xuICAgIHRoaXMuc2VsZWN0YWJsZSA9IHRoaXMudGFibGVPYmplY3Quc2VsZWN0YWJsZTtcbiAgICB0aGlzLmhhc0FjdGlvbnMgPSB0aGlzLnRhYmxlT2JqZWN0Lmhhc0FjdGlvbnM7XG4gICAgdGhpcy50YWJsZU9iamVjdC53aWRnZXQgPSB0aGlzO1xuICAgIHRoaXMuaW5saW5lQWN0aW9ucyA9IHRoaXMudGFibGVPYmplY3QuZ2V0QWN0aW9ucyh0aGlzLmZvcm1Db25maWcudGFibGVBY3Rpb25zLmlubGluZSk7XG4gICAgdGhpcy5nbG9iYWxBY3Rpb25zID0gdGhpcy50YWJsZU9iamVjdC5nZXRBY3Rpb25zKHRoaXMuZm9ybUNvbmZpZy50YWJsZUFjdGlvbnMuZ2xvYmFsKTtcbiAgICB0aGlzLnNlbGVjdGlvbkFjdGlvbnMgPSB0aGlzLnRhYmxlT2JqZWN0LmdldEFjdGlvbnModGhpcy5mb3JtQ29uZmlnLnRhYmxlQWN0aW9ucy5zZWxlY3Rpb24pO1xuICAgIHRoaXMuc3RhcnQoKTtcbiAgfVxuXG4gIHN0YXJ0KCkgeyB9XG5cbiAgdGFibGVHbG9iYWxBY3Rpb24oYWN0aW9uQ29kZTogc3RyaW5nKSB7XG4gICAgdGhpcy50YWJsZU9iamVjdC5ub3RpZnlHbG9iYWxBY3Rpb24oYWN0aW9uQ29kZSk7XG4gIH1cblxuICB0YWJsZVNlbGVjdGlvbkFjdGlvbihhY3Rpb25Db2RlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnRhYmxlT2JqZWN0Lm5vdGlmeVNlbGVjdGlvbkFjdGlvbihhY3Rpb25Db2RlKTtcbiAgfVxuXG4gIHRhYmxlQWN0aW9uU2VsZWN0ZWQoYWN0aW9uRXZlbnQ6IFRhYmxlQWN0aW9uRXZlbnQpIHtcbiAgICB0aGlzLnRhYmxlT2JqZWN0Lm5vdGlmeUlubGluZUFjdGlvbihhY3Rpb25FdmVudCk7XG4gIH1cblxuICB0YWJsZUNvbHVtblNvcnQoY29sdW1uRmllbGRDb2RlKSB7XG4gICAgdGhpcy50YWJsZU9iamVjdC5zZXRSZXF1aXJlZE9yZGVyKGNvbHVtbkZpZWxkQ29kZSk7XG4gICAgaWYgKHRoaXMudGFibGVPYmplY3QuY2xpZW50UGFnaW5nKSB7XG4gICAgICByZXR1cm4gdGhpcy50YWJsZU9iamVjdC5sb2NhbFNvcnREYXRhKCk7XG4gICAgfVxuICAgIHRoaXMudGFibGVPYmplY3Qubm90aWZ5R2V0RGF0YUFjdGlvbigpO1xuICB9XG5cbiAgY2hhbmdlUGFnZShyZXF1ZXN0ZWRQYWdlKSB7XG4gICAgaWYgKCF0aGlzLnRhYmxlT2JqZWN0LmNsaWVudFBhZ2luZykge1xuICAgICAgdGhpcy50YWJsZU9iamVjdC5ub3RpZnlHZXREYXRhQWN0aW9uKHJlcXVlc3RlZFBhZ2UpO1xuICAgIH1cbiAgfVxuXG4gIGdldCByZWNvcmRzKCkge1xuICAgIGNvbnN0IGN1cnJlbnRQYWdlUmVjb3JkcyA9IHRoaXMudGFibGVPYmplY3QucmVjb3JkcztcbiAgICBpZiAodGhpcy50YWJsZU9iamVjdC5jbGllbnRQYWdpbmcgJiYgY3VycmVudFBhZ2VSZWNvcmRzICYmIGN1cnJlbnRQYWdlUmVjb3Jkcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnRhYmxlT2JqZWN0LnRvdGFsUmVjb3Jkc051bWJlciA9IGN1cnJlbnRQYWdlUmVjb3Jkcy5sZW5ndGg7XG4gICAgICByZXR1cm4gY3VycmVudFBhZ2VSZWNvcmRzLm1hcCgocmVjb3JkLCBpKSA9PiAoeyBpZDogaSArIDEsIC4uLnJlY29yZCB9KSlcbiAgICAgICAgLnNsaWNlKCh0aGlzLnRhYmxlT2JqZWN0LmN1cnJlbnRQYWdlIC0gMSkgKiB0aGlzLnRhYmxlT2JqZWN0LnJlY29yZHNQZXJQYWdlLFxuICAgICAgICAgICh0aGlzLnRhYmxlT2JqZWN0LmN1cnJlbnRQYWdlIC0gMSkgKiB0aGlzLnRhYmxlT2JqZWN0LnJlY29yZHNQZXJQYWdlICsgdGhpcy50YWJsZU9iamVjdC5yZWNvcmRzUGVyUGFnZSk7XG4gICAgfVxuICAgIHJldHVybiBjdXJyZW50UGFnZVJlY29yZHM7XG4gIH1cblxuICBhcHBseUN1cnJlbnRGaWx0ZXIodGFibGVGaWx0ZXJFdmVudDogVGFibGVGaWx0ZXJFdmVudCkge1xuICAgIGNvbnN0IHsgZXZlbnRUeXBlIH0gPSB0YWJsZUZpbHRlckV2ZW50O1xuICAgIGxldCB0cmlnZ2VyRGF0YVVwZGF0ZSA9IGZhbHNlO1xuICAgIGlmIChldmVudFR5cGUgPT09IFRBQkxFX0ZJTFRFUl9UWVBFUy5zaW1wbGVGaWx0ZXJDaGFuZ2UgfHwgZXZlbnRUeXBlID09PSBUQUJMRV9GSUxURVJfVFlQRVMuc2ltcGxlRmlsdGVyRmluaXNoKSB7XG4gICAgICB0aGlzLnRhYmxlT2JqZWN0LnNpbXBsZUZpbHRlclRleHQgPSB0YWJsZUZpbHRlckV2ZW50LnNpbXBsZUZpbHRlclN0cmluZy50cmltKCk7XG4gICAgICBpZiAodGhpcy50YWJsZU9iamVjdC5jbGllbnRQYWdpbmcpIHtcbiAgICAgICAgdGhpcy50YWJsZU9iamVjdC5jdXJyZW50UGFnZSA9IDE7XG4gICAgICAgIHRoaXMudGFibGVPYmplY3QudXBkYXRlVmlzaWJsZVJlY29yZHMoKTtcbiAgICAgIH0gZWxzZSBpZiAoZXZlbnRUeXBlID09PSBUQUJMRV9GSUxURVJfVFlQRVMuc2ltcGxlRmlsdGVyRmluaXNoKSB7XG4gICAgICAgIHRyaWdnZXJEYXRhVXBkYXRlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGV2ZW50VHlwZSA9PT0gVEFCTEVfRklMVEVSX1RZUEVTLmNvbXBsZXhGaWx0ZXJBZGQpIHtcbiAgICAgIHRoaXMudGFibGVPYmplY3QuYWRkRmlsdGVyUmVzdHJpY3Rpb24odGFibGVGaWx0ZXJFdmVudC5jb21wbGV4RmlsdGVySXRlbSk7XG4gICAgfVxuICAgIGlmIChldmVudFR5cGUgPT09IFRBQkxFX0ZJTFRFUl9UWVBFUy5jb21wbGV4RmlsdGVyUmVtb3ZlKSB7XG4gICAgICB0aGlzLnRhYmxlT2JqZWN0LnJlbW92ZUZpbHRlclJlc3RyaWN0aW9uKHRhYmxlRmlsdGVyRXZlbnQuaXRlbU5hbWUpO1xuICAgIH1cbiAgICBpZiAodHJpZ2dlckRhdGFVcGRhdGUpIHtcbiAgICAgIGNvbnN0IHRhYmxlR2V0RGF0YUV2ZW50ID0ge1xuICAgICAgICB0YWJsZUNvZGU6IHRoaXMudGFibGVPYmplY3QudGFibGVDb2RlLFxuICAgICAgICByZXF1ZXN0ZWRQYWdlOiAxLFxuICAgICAgfTtcbiAgICAgIHRoaXMudGFibGVPYmplY3Qubm90aWZ5R2V0RGF0YUFjdGlvbih0YWJsZUdldERhdGFFdmVudCk7XG4gICAgfVxuICB9XG5cbiAgdGFibGVTZWxlY3Rpb25Ub2dnbGUocmVjb3JkSWQpIHtcbiAgICB0aGlzLnRhYmxlT2JqZWN0Lm5vdGlmeVJlY29yZFNlbGVjdGlvbihyZWNvcmRJZCk7XG4gIH1cblxuICB0b2dnbGVTZWxlY3RBbGwoKSB7XG4gICAgaWYgKHRoaXMudGFibGVPYmplY3QuYWxsU2VsZWN0ZWQpIHtcbiAgICAgIHRoaXMudGFibGVPYmplY3QudW5TZWxlY3RBbGwoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy50YWJsZU9iamVjdC5zZWxlY3RBbGwoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVhaW4tbmctZm9ybXMtbGliL3NyYy9saWIvY29tcG9uZW50cy9lbGVtZW50cy90YWJsZXMvdGFibGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFhLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTdGLE9BQU8sRUFBNkMsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQVFuSCxNQUFNLE9BQU8saUJBQWlCO0lBTjlCO1FBMkJFLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFDZixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGVBQVUsR0FBRyxLQUFLLENBQUM7SUEwSHJCLENBQUM7SUEvR0MsUUFBUTs7UUFDTixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFBLElBQUksQ0FBQyxXQUFXLDBDQUFFLFdBQVcsQ0FBQztZQUNoRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQztZQUN6RCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDO1lBQzlDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUM7WUFDOUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQy9CLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdEYsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FB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QkFBaUIsRUFBRTtZQUNyQixNQUFNLGlCQUFpQixHQUFHO2dCQUN4QixTQUFTLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTO2dCQUNyQyxhQUFhLEVBQUUsQ0FBQzthQUNqQixDQUFDO1lBQ0YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1NBQ3pEO0lBQ0gsQ0FBQztJQUVELG9CQUFvQixDQUFDLFFBQVE7UUFDM0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNwQixJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ2hDO2FBQU07WUFDTCxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxDQUFDO1NBQzlCO0lBQ0gsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQztJQUMzQyxDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUM7SUFDMUMsQ0FBQzs7O1lBdEpGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsV0FBVztnQkFDckIsUUFBUSxFQUFFLDJCQUEyQjtnQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07YUFDaEQ7OzswQkE4QkUsS0FBSzsyQkFDTCxLQUFLO3VCQUNMLEtBQUs7MkJBQ0wsS0FBSztzQkFDTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBWaWV3Q2hpbGQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUYWJsZVJlY29yZERhdGEgfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2Zvcm1zL3RhYmxlL3Jvdy1kYXRhJztcbmltcG9ydCB7IFRhYmxlQWN0aW9uRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2Zvcm1zL3RhYmxlL3RhYmxlJztcblxuaW1wb3J0IHsgUmVjb3JkVGFibGUsIFRhYmxlRXZlbnQsIFRhYmxlRmlsdGVyRXZlbnQsIFRBQkxFX0ZJTFRFUl9UWVBFUyB9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvZm9ybXMvdGFibGUvdGFibGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItdGFibGUnLFxuICB0ZW1wbGF0ZTogYDxuZy1jb250ZW50PjwvbmctY29udGVudD5gLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcblxuZXhwb3J0IGNsYXNzIExpYlRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgZm9ybUNvbmZpZzogYW55O1xuXG4gIC8vIEF0cmlidXRvcyBzaW5jcm9uaXphZG9zIGRlbCBvYmpldG9cbiAgY29kZTogYW55O1xuICBzZWxlY3Rpb25CYWNrZW5kOiBhbnk7XG4gIHNpbXBsZUZpbHRlcjogYW55O1xuICBjb21wbGV4RmlsdGVyOiBhbnk7XG4gIGFsbFNlbGVjdGVkOiBhbnk7XG4gIGN1cnJlbnRQYWdlOiBhbnk7XG4gIHZpc2libGVSZWNvcmRzOiBhbnk7XG4gIHJlY29yZHNQZXJQYWdlOiBhbnk7XG4gIGNsaWVudFBhZ2luZzogYW55O1xuICBjb2x1bW5zOiBhbnk7XG4gIHNvcnRhYmxlOiBhbnk7XG4gIHNvcnRpbmc6IGFueTtcbiAgdG90YWxSZWNvcmRzTnVtYmVyOiBhbnk7XG4gIGZpbHRlckNvbmZpZzogYW55O1xuICBmaWx0ZXJPYmplY3Q6IGFueTtcblxuICB0YWJsZUZpZWxkU3R5bGVzOiBhbnk7XG4gIGxvYWRlZCA9IGZhbHNlO1xuICBzZWxlY3RhYmxlID0gZmFsc2U7XG4gIGhhc0FjdGlvbnMgPSBmYWxzZTtcbiAgaW5saW5lQWN0aW9uczogYW55O1xuICBnbG9iYWxBY3Rpb25zOiBhbnk7XG4gIHNlbGVjdGlvbkFjdGlvbnM6IGFueTtcblxuICBASW5wdXQoKSB0YWJsZU9iamVjdDogUmVjb3JkVGFibGU7XG4gIEBJbnB1dCgpIHRhYmxlUmVjb3JkczogVGFibGVSZWNvcmREYXRhW107XG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuO1xuICBASW5wdXQoKSBjdXJyZW50U3RhdGU6IHN0cmluZztcbiAgQElucHV0KCkgd2FpdGluZzogYm9vbGVhbjtcblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy50YWJsZU9iamVjdCkge1xuICAgICAgdGhpcy5mb3JtQ29uZmlnID0gdGhpcy50YWJsZU9iamVjdD8uX2Zvcm1Db25maWc7XG4gICAgICB0aGlzLnRhYmxlRmllbGRTdHlsZXMgPSB0aGlzLmZvcm1Db25maWcudGFibGVGaWVsZFN0eWxlcztcbiAgICAgIHRoaXMuc2VsZWN0YWJsZSA9IHRoaXMudGFibGVPYmplY3Quc2VsZWN0YWJsZTtcbiAgICAgIHRoaXMuaGFzQWN0aW9ucyA9IHRoaXMudGFibGVPYmplY3QuaGFzQWN0aW9ucztcbiAgICAgIHRoaXMudGFibGVPYmplY3Qud2lkZ2V0ID0gdGhpcztcbiAgICAgIHRoaXMuaW5saW5lQWN0aW9ucyA9IHRoaXMudGFibGVPYmplY3QuZ2V0QWN0aW9ucyh0aGlzLmZvcm1Db25maWcudGFibGVBY3Rpb25zLmlubGluZSk7XG4gICAgICB0aGlzLmdsb2JhbEFjdGlvbnMgPSB0aGlzLnRhYmxlT2JqZWN0LmdldEFjdGlvbnModGhpcy5mb3JtQ29uZmlnLnRhYmxlQWN0aW9ucy5nbG9iYWwpO1xuICAgICAgdGhpcy5zZWxlY3Rpb25BY3Rpb25zID0gdGhpcy50YWJsZU9iamVjdC5nZXRBY3Rpb25zKHRoaXMuZm9ybUNvbmZpZy50YWJsZUFjdGlvbnMuc2VsZWN0aW9uKTtcbiAgICAgIC8vIEluaWNpYWxpemFjacOzbiBkZSBjYW1wb3MgbWFwZWFkb3MgZGVsIG9iamV0b1xuICAgICAgY29uc3QgbWFwcGluZyA9IE9iamVjdC5lbnRyaWVzKHRoaXMuZm9ybUNvbmZpZy5jb21wb25lbnRUYWJsZUF0dHJNYXApO1xuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IG1hcHBpbmcubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgIGNvbnN0IFt0YWJsZUF0dHIsIGNvbXBBdHRyXSA9IG1hcHBpbmdbaW5kZXhdO1xuICAgICAgICB0aGlzW2NvbXBBdHRyLnRvU3RyaW5nKCldID0gdGhpcy50YWJsZU9iamVjdD8uW3RhYmxlQXR0ci50b1N0cmluZygpXTtcbiAgICAgIH1cbiAgICAgIC8vIFN1YnNjcmlwY2nDs24gYSBjYW1iaW9zIGVuIGF0cmlidXRvc1xuICAgICAgdGhpcy50YWJsZU9iamVjdC5hdHRyaWJ1dGVDaGFuZ2Uuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgICAgY29uc3QgeyBuYW1lOiB0YWJsZUF0dHIsIHZhbHVlIH0gPSBldmVudDtcbiAgICAgICAgY29uc3QgY29tcEF0dHIgPSB0aGlzLmZvcm1Db25maWcuY29tcG9uZW50VGFibGVBdHRyTWFwW3RhYmxlQXR0cl07XG4gICAgICAgIHRoaXMuaGFzT3duUHJvcGVydHkoY29tcEF0dHIpICYmICh0aGlzW2NvbXBBdHRyXSA9IHZhbHVlKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLnN0YXJ0KCk7XG4gIH1cblxuICBzdGFydCgpIHsgfVxuXG4gIHRhYmxlR2xvYmFsQWN0aW9uKGFjdGlvbkNvZGU6IHN0cmluZykge1xuICAgIHRoaXMudGFibGVPYmplY3Qubm90aWZ5R2xvYmFsQWN0aW9uKGFjdGlvbkNvZGUpO1xuICB9XG5cbiAgdGFibGVTZWxlY3Rpb25BY3Rpb24oYWN0aW9uQ29kZTogc3RyaW5nKSB7XG4gICAgdGhpcy50YWJsZU9iamVjdC5ub3RpZnlTZWxlY3Rpb25BY3Rpb24oYWN0aW9uQ29kZSk7XG4gIH1cblxuICB0YWJsZUFjdGlvblNlbGVjdGVkKGFjdGlvbkV2ZW50OiBUYWJsZUFjdGlvbkV2ZW50KSB7XG4gICAgdGhpcy50YWJsZU9iamVjdC5ub3RpZnlJbmxpbmVBY3Rpb24oYWN0aW9uRXZlbnQpO1xuICB9XG5cbiAgdGFibGVDb2x1bW5Tb3J0KGNvbHVtbkZpZWxkQ29kZSkge1xuICAgIHRoaXMudGFibGVPYmplY3Quc2V0UmVxdWlyZWRPcmRlcihjb2x1bW5GaWVsZENvZGUpO1xuICAgIGlmICh0aGlzLmNsaWVudFBhZ2luZykge1xuICAgICAgcmV0dXJuIHRoaXMudGFibGVPYmplY3QubG9jYWxTb3J0RGF0YSgpO1xuICAgIH1cbiAgICB0aGlzLnRhYmxlT2JqZWN0Lm5vdGlmeUdldERhdGFBY3Rpb24oKTtcbiAgfVxuXG4gIGNoYW5nZVBhZ2UocmVxdWVzdGVkUGFnZSkge1xuICAgIGlmICghdGhpcy5jbGllbnRQYWdpbmcpIHtcbiAgICAgIHRoaXMudGFibGVPYmplY3Qubm90aWZ5R2V0RGF0YUFjdGlvbihyZXF1ZXN0ZWRQYWdlKTtcbiAgICB9XG4gIH1cblxuICBnZXQgcmVjb3JkcygpIHtcbiAgICBjb25zdCBjdXJyZW50UGFnZVJlY29yZHMgPSB0aGlzLnZpc2libGVSZWNvcmRzO1xuICAgIGlmICh0aGlzLmNsaWVudFBhZ2luZyAmJiBjdXJyZW50UGFnZVJlY29yZHMgJiYgY3VycmVudFBhZ2VSZWNvcmRzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMudG90YWxSZWNvcmRzTnVtYmVyID0gY3VycmVudFBhZ2VSZWNvcmRzLmxlbmd0aDtcbiAgICAgIHJldHVybiBjdXJyZW50UGFnZVJlY29yZHMubWFwKChyZWNvcmQsIGkpID0+ICh7IGlkOiBpICsgMSwgLi4ucmVjb3JkIH0pKVxuICAgICAgICAuc2xpY2UoKHRoaXMuY3VycmVudFBhZ2UgLSAxKSAqIHRoaXMucmVjb3Jkc1BlclBhZ2UsXG4gICAgICAgICAgKHRoaXMuY3VycmVudFBhZ2UgLSAxKSAqIHRoaXMucmVjb3Jkc1BlclBhZ2UgKyB0aGlzLnJlY29yZHNQZXJQYWdlKTtcbiAgICB9XG4gICAgcmV0dXJuIGN1cnJlbnRQYWdlUmVjb3JkcztcbiAgfVxuXG4gIGFwcGx5Q3VycmVudEZpbHRlcih0YWJsZUZpbHRlckV2ZW50OiBUYWJsZUZpbHRlckV2ZW50KSB7XG4gICAgY29uc3QgeyBldmVudFR5cGUgfSA9IHRhYmxlRmlsdGVyRXZlbnQ7XG4gICAgbGV0IHRyaWdnZXJEYXRhVXBkYXRlID0gZmFsc2U7XG4gICAgaWYgKGV2ZW50VHlwZSA9PT0gVEFCTEVfRklMVEVSX1RZUEVTLnNpbXBsZUZpbHRlckNoYW5nZSB8fCBldmVudFR5cGUgPT09IFRBQkxFX0ZJTFRFUl9UWVBFUy5zaW1wbGVGaWx0ZXJGaW5pc2gpIHtcbiAgICAgIHRoaXMudGFibGVPYmplY3Quc2ltcGxlRmlsdGVyVGV4dCA9IHRhYmxlRmlsdGVyRXZlbnQuc2ltcGxlRmlsdGVyU3RyaW5nLnRyaW0oKTtcbiAgICAgIGlmICh0aGlzLmNsaWVudFBhZ2luZykge1xuICAgICAgICB0aGlzLnRhYmxlT2JqZWN0LnNldEF0dHIoJ2N1cnJlbnRQYWdlJywgMSk7XG4gICAgICAgIHRoaXMudGFibGVPYmplY3QudXBkYXRlVmlzaWJsZVJlY29yZHMoKTtcbiAgICAgIH0gZWxzZSBpZiAoZXZlbnRUeXBlID09PSBUQUJMRV9GSUxURVJfVFlQRVMuc2ltcGxlRmlsdGVyRmluaXNoKSB7XG4gICAgICAgIHRyaWdnZXJEYXRhVXBkYXRlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGV2ZW50VHlwZSA9PT0gVEFCTEVfRklMVEVSX1RZUEVTLmNvbXBsZXhGaWx0ZXJBZGQpIHtcbiAgICAgIHRoaXMudGFibGVPYmplY3QuYWRkRmlsdGVyUmVzdHJpY3Rpb24odGFibGVGaWx0ZXJFdmVudC5jb21wbGV4RmlsdGVySXRlbSk7XG4gICAgfVxuICAgIGlmIChldmVudFR5cGUgPT09IFRBQkxFX0ZJTFRFUl9UWVBFUy5jb21wbGV4RmlsdGVyUmVtb3ZlKSB7XG4gICAgICB0aGlzLnRhYmxlT2JqZWN0LnJlbW92ZUZpbHRlclJlc3RyaWN0aW9uKHRhYmxlRmlsdGVyRXZlbnQuaXRlbU5hbWUpO1xuICAgIH1cbiAgICBpZiAodHJpZ2dlckRhdGFVcGRhdGUpIHtcbiAgICAgIGNvbnN0IHRhYmxlR2V0RGF0YUV2ZW50ID0ge1xuICAgICAgICB0YWJsZUNvZGU6IHRoaXMudGFibGVPYmplY3QudGFibGVDb2RlLFxuICAgICAgICByZXF1ZXN0ZWRQYWdlOiAxLFxuICAgICAgfTtcbiAgICAgIHRoaXMudGFibGVPYmplY3Qubm90aWZ5R2V0RGF0YUFjdGlvbih0YWJsZUdldERhdGFFdmVudCk7XG4gICAgfVxuICB9XG5cbiAgdGFibGVTZWxlY3Rpb25Ub2dnbGUocmVjb3JkSWQpIHtcbiAgICB0aGlzLnRhYmxlT2JqZWN0Lm5vdGlmeVJlY29yZFNlbGVjdGlvbihyZWNvcmRJZCk7XG4gIH1cblxuICB0b2dnbGVTZWxlY3RBbGwoKSB7XG4gICAgaWYgKHRoaXMuYWxsU2VsZWN0ZWQpIHtcbiAgICAgIHRoaXMudGFibGVPYmplY3QudW5TZWxlY3RBbGwoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy50YWJsZU9iamVjdC5zZWxlY3RBbGwoKTtcbiAgICB9XG4gIH1cblxuICBnZXQgYXZhaWxhYmxlRmlsdGVycygpIHtcbiAgICByZXR1cm4gdGhpcy50YWJsZU9iamVjdC5hdmFpbGFibGVGaWx0ZXJzO1xuICB9XG5cbiAgZ2V0IHNlbGVjdGVkUmVjb3JkcygpIHtcbiAgICByZXR1cm4gdGhpcy50YWJsZU9iamVjdC5zZWxlY3RlZFJlY29yZHM7XG4gIH1cbn1cbiJdfQ==