tuain-ng-forms-lib 17.4.0 → 19.0.3
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/fesm2022/tuain-ng-forms-lib.mjs +87 -53
- package/fesm2022/tuain-ng-forms-lib.mjs.map +1 -1
- package/lib/interfaces/sse-live-connection.interface.d.ts +8 -0
- package/lib/services/sse-live-connection.service.d.ts +8 -0
- package/package.json +1 -3
- package/esm2022/lib/classes/forms/action.mjs +0 -112
- package/esm2022/lib/classes/forms/element.mjs +0 -25
- package/esm2022/lib/classes/forms/field.mjs +0 -481
- package/esm2022/lib/classes/forms/form.constants.mjs +0 -55
- package/esm2022/lib/classes/forms/form.mjs +0 -587
- package/esm2022/lib/classes/forms/piece-propagate.mjs +0 -36
- package/esm2022/lib/classes/forms/piece.mjs +0 -139
- package/esm2022/lib/classes/forms/section.mjs +0 -150
- package/esm2022/lib/classes/forms/subsection.mjs +0 -96
- package/esm2022/lib/classes/forms/table/action.mjs +0 -49
- package/esm2022/lib/classes/forms/table/column.mjs +0 -74
- package/esm2022/lib/classes/forms/table/row-data.mjs +0 -114
- package/esm2022/lib/classes/forms/table/table.mjs +0 -537
- package/esm2022/lib/components/elements/action.component.mjs +0 -71
- package/esm2022/lib/components/elements/field.component.mjs +0 -113
- package/esm2022/lib/components/elements/layout/element.component.mjs +0 -23
- package/esm2022/lib/components/elements/layout/form-error.component.mjs +0 -25
- package/esm2022/lib/components/elements/layout/form-header.component.mjs +0 -25
- package/esm2022/lib/components/elements/layout/piece.component.mjs +0 -59
- package/esm2022/lib/components/elements/layout/section.component.mjs +0 -57
- package/esm2022/lib/components/elements/layout/sub-section.component.mjs +0 -57
- package/esm2022/lib/components/elements/tables/table-record-action.component.mjs +0 -71
- package/esm2022/lib/components/elements/tables/table-record-field.component.mjs +0 -32
- package/esm2022/lib/components/elements/tables/table.component.mjs +0 -109
- package/esm2022/lib/components/forms/basic-form.mjs +0 -1407
- package/esm2022/lib/components/shared/constants.mjs +0 -2
- package/esm2022/lib/interfaces/action.interface.mjs +0 -2
- package/esm2022/lib/interfaces/field.interface.mjs +0 -2
- package/esm2022/lib/interfaces/form-config.interface.mjs +0 -2
- package/esm2022/lib/interfaces/form.interface.mjs +0 -2
- package/esm2022/lib/interfaces/icon-resolver.interface.mjs +0 -2
- package/esm2022/lib/interfaces/index.mjs +0 -11
- package/esm2022/lib/interfaces/piece.interface.mjs +0 -2
- package/esm2022/lib/interfaces/section.interface.mjs +0 -2
- package/esm2022/lib/interfaces/sse-live-connection.interface.mjs +0 -2
- package/esm2022/lib/interfaces/table.interface.mjs +0 -2
- package/esm2022/lib/services/base-icon-resolver.service.mjs +0 -40
- package/esm2022/lib/services/event-manager.service.mjs +0 -55
- package/esm2022/lib/services/file-manager.service.mjs +0 -14
- package/esm2022/lib/services/form-manager.service.mjs +0 -88
- package/esm2022/lib/services/icon-dictionary.service.mjs +0 -162
- package/esm2022/lib/services/sse-live-connection.service.mjs +0 -165
- package/esm2022/lib/tokens/icon-resolver.token.mjs +0 -3
- package/esm2022/lib/tokens/sse-live-connection.token.mjs +0 -7
- package/esm2022/lib/tuain-ng-forms-lib.module.mjs +0 -54
- package/esm2022/public-api.mjs +0 -45
- package/esm2022/tuain-ng-forms-lib.mjs +0 -5
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
import { Component, signal, Input, ChangeDetectionStrategy, inject, DestroyRef } from '@angular/core';
|
|
2
|
-
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
3
|
-
import { ElementComponent } from '../layout/element.component';
|
|
4
|
-
import { CUSTOM_ATTRIBUTES } from '../../shared/constants';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
const signaledAttributes = [
|
|
7
|
-
'allSelected', 'code', 'globalSearch', 'restrictedId', 'recordsPerPage', 'layout',
|
|
8
|
-
'columns', 'selectedRecords', 'currentPage', 'totalRecordsNumber', 'visibleRecords',
|
|
9
|
-
'waiting', 'visible', 'disabled',
|
|
10
|
-
];
|
|
11
|
-
export class LibTableComponent extends ElementComponent {
|
|
12
|
-
destroyRef = inject(DestroyRef);
|
|
13
|
-
allSelected = signal(false);
|
|
14
|
-
code = signal('');
|
|
15
|
-
globalSearch = signal(false);
|
|
16
|
-
restrictedId = signal(null);
|
|
17
|
-
recordsPerPage = signal(10);
|
|
18
|
-
layout = signal(null);
|
|
19
|
-
columns = signal([]);
|
|
20
|
-
selectedRecords = signal([]);
|
|
21
|
-
currentPage = signal(1);
|
|
22
|
-
totalRecordsNumber = signal(0);
|
|
23
|
-
visibleRecords = signal([]);
|
|
24
|
-
waiting = signal(false);
|
|
25
|
-
globalFilterString = '';
|
|
26
|
-
tableFieldStyles;
|
|
27
|
-
loaded = false;
|
|
28
|
-
selectable = false;
|
|
29
|
-
hasActions = false;
|
|
30
|
-
inlineActions;
|
|
31
|
-
globalActions;
|
|
32
|
-
selectionActions;
|
|
33
|
-
table = null;
|
|
34
|
-
ngOnInit() {
|
|
35
|
-
if (!this.table) {
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
this.table.setWidget(this);
|
|
39
|
-
this.formConfig = this.table?.formConfig;
|
|
40
|
-
this.tableFieldStyles = this.formConfig?.tableFieldStyles;
|
|
41
|
-
this.selectable = this.table?.selectable;
|
|
42
|
-
this.hasActions = this.table?.hasActions();
|
|
43
|
-
this.inlineActions = this.table?.getActions(this.formConfig?.tableActions.inline);
|
|
44
|
-
this.globalActions = this.table?.getActions(this.formConfig?.tableActions.global);
|
|
45
|
-
this.selectionActions = this.table?.getActions(this.formConfig?.tableActions.selection);
|
|
46
|
-
this.globalFilterString = this.table?.globalFilterString;
|
|
47
|
-
this.updatePropagatedAttributes();
|
|
48
|
-
this.replaceCustomAttributes(this.table?.customAttributes);
|
|
49
|
-
this.table?.attributeChange
|
|
50
|
-
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
51
|
-
.subscribe({
|
|
52
|
-
next: (event) => {
|
|
53
|
-
const { name: attribute, value = null } = event ?? {};
|
|
54
|
-
const attributeParts = attribute?.split('.') ?? [];
|
|
55
|
-
if (attribute === 'visibleRecords') {
|
|
56
|
-
this.visibleRecords.set(value ?? []);
|
|
57
|
-
this.updateTableData();
|
|
58
|
-
}
|
|
59
|
-
else if (attribute === 'globalFilterString') {
|
|
60
|
-
this.globalFilterString = value;
|
|
61
|
-
}
|
|
62
|
-
else if (signaledAttributes.includes(attribute)) {
|
|
63
|
-
this.updatePieceAttribute(signaledAttributes, attribute, value);
|
|
64
|
-
}
|
|
65
|
-
else if (attributeParts?.length > 1 && attributeParts?.[0] === CUSTOM_ATTRIBUTES) {
|
|
66
|
-
const subAttribute = attributeParts?.[1] ?? null;
|
|
67
|
-
this.updateCustomAttribute(subAttribute, value);
|
|
68
|
-
}
|
|
69
|
-
},
|
|
70
|
-
error: (err) => console.error(`Error en propagación de atributos de tabla: ${err}`)
|
|
71
|
-
});
|
|
72
|
-
this.start();
|
|
73
|
-
}
|
|
74
|
-
updatePropagatedAttributes() {
|
|
75
|
-
this.updatePieceAttributes(this.table, signaledAttributes);
|
|
76
|
-
}
|
|
77
|
-
updateTableData() { }
|
|
78
|
-
tableGlobalAction(actionCode) { this.table?.notifyGlobalAction(actionCode); }
|
|
79
|
-
tableSelectionAction(actionCode) { this.table?.notifySelectionAction(actionCode); }
|
|
80
|
-
tableActionSelected(actionEvent) { this.table?.notifyInlineAction(actionEvent); }
|
|
81
|
-
tableSelectionToggle(recordId) { this.table?.notifyRecordSelection(recordId); }
|
|
82
|
-
toggleSelectAll() { return (this.table?.allSelected) ? this.table?.unSelectAll() : this.table?.selectAll(); }
|
|
83
|
-
globalFilterCompleted() { this.changePage(1); }
|
|
84
|
-
changePage(requestedPage) { this.table?.changePage(requestedPage); }
|
|
85
|
-
tableColumnSort(columnName, direction = null) { this.table?.sort(columnName, direction ?? 'ascend'); }
|
|
86
|
-
globalFilterChanged() { this.table?.setGlobalFilterString(this.globalFilterString?.trim() ?? '', false); }
|
|
87
|
-
filterHasChanged(column, values) {
|
|
88
|
-
if (!values || values.length === 0) {
|
|
89
|
-
this.table?.removeColumnFilter(column.fieldCode);
|
|
90
|
-
}
|
|
91
|
-
else {
|
|
92
|
-
this.table?.addColumnFilter(column.fieldCode, values);
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LibTableComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
96
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: LibTableComponent, isStandalone: true, selector: "lib-table", inputs: { table: "table" }, usesInheritance: true, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
97
|
-
}
|
|
98
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LibTableComponent, decorators: [{
|
|
99
|
-
type: Component,
|
|
100
|
-
args: [{
|
|
101
|
-
standalone: true,
|
|
102
|
-
selector: 'lib-table',
|
|
103
|
-
template: `<ng-content></ng-content>`,
|
|
104
|
-
changeDetection: ChangeDetectionStrategy.OnPush
|
|
105
|
-
}]
|
|
106
|
-
}], propDecorators: { table: [{
|
|
107
|
-
type: Input
|
|
108
|
-
}] } });
|
|
109
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVhaW4tbmctZm9ybXMtbGliL3NyYy9saWIvY29tcG9uZW50cy9lbGVtZW50cy90YWJsZXMvdGFibGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLEtBQUssRUFBRSx1QkFBdUIsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBSWhFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQUUzRCxNQUFNLGtCQUFrQixHQUFHO0lBQ3pCLGFBQWEsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxnQkFBZ0IsRUFBRSxRQUFRO0lBQ2pGLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsb0JBQW9CLEVBQUUsZ0JBQWdCO0lBQ25GLFNBQVMsRUFBRSxTQUFTLEVBQUUsVUFBVTtDQUNqQyxDQUFDO0FBU0YsTUFBTSxPQUFPLGlCQUFrQixTQUFRLGdCQUFnQjtJQUM3QyxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRXhDLFdBQVcsR0FBRyxNQUFNLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDckMsSUFBSSxHQUFHLE1BQU0sQ0FBUyxFQUFFLENBQUMsQ0FBQztJQUMxQixZQUFZLEdBQUcsTUFBTSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQ3RDLFlBQVksR0FBRyxNQUFNLENBQU0sSUFBSSxDQUFDLENBQUM7SUFDakMsY0FBYyxHQUFHLE1BQU0sQ0FBUyxFQUFFLENBQUMsQ0FBQztJQUNwQyxNQUFN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QWlCLHdIQUpsQiwyQkFBMkI7OzRGQUkxQixpQkFBaUI7a0JBUDdCLFNBQVM7bUJBQUM7b0JBQ1QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxXQUFXO29CQUNyQixRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQ7OEJBNEJVLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgc2lnbmFsLCBPbkluaXQsIElucHV0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgaW5qZWN0LCBEZXN0cm95UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBUYWJsZVJlY29yZERhdGEgfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2Zvcm1zL3RhYmxlL3Jvdy1kYXRhJztcbmltcG9ydCB7IFRhYmxlQWN0aW9uRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2Zvcm1zL3RhYmxlL3RhYmxlJztcbmltcG9ydCB7IFJlY29yZFRhYmxlIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9mb3Jtcy90YWJsZS90YWJsZSc7XG5pbXBvcnQgeyBFbGVtZW50Q29tcG9uZW50IH0gZnJvbSAnLi4vbGF5b3V0L2VsZW1lbnQuY29tcG9uZW50JztcbmltcG9ydCB7IENVU1RPTV9BVFRSSUJVVEVTIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2NvbnN0YW50cyc7XG5cbmNvbnN0IHNpZ25hbGVkQXR0cmlidXRlcyA9IFtcbiAgJ2FsbFNlbGVjdGVkJywgJ2NvZGUnLCAnZ2xvYmFsU2VhcmNoJywgJ3Jlc3RyaWN0ZWRJZCcsICdyZWNvcmRzUGVyUGFnZScsICdsYXlvdXQnLFxuICAnY29sdW1ucycsICdzZWxlY3RlZFJlY29yZHMnLCAnY3VycmVudFBhZ2UnLCAndG90YWxSZWNvcmRzTnVtYmVyJywgJ3Zpc2libGVSZWNvcmRzJyxcbiAgJ3dhaXRpbmcnLCAndmlzaWJsZScsICdkaXNhYmxlZCcsXG5dO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdsaWItdGFibGUnLFxuICB0ZW1wbGF0ZTogYDxuZy1jb250ZW50PjwvbmctY29udGVudD5gLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcblxuZXhwb3J0IGNsYXNzIExpYlRhYmxlQ29tcG9uZW50IGV4dGVuZHMgRWxlbWVudENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByaXZhdGUgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICBhbGxTZWxlY3RlZCA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG4gIGNvZGUgPSBzaWduYWw8c3RyaW5nPignJyk7XG4gIGdsb2JhbFNlYXJjaCA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG4gIHJlc3RyaWN0ZWRJZCA9IHNpZ25hbDxhbnk+KG51bGwpO1xuICByZWNvcmRzUGVyUGFnZSA9IHNpZ25hbDxudW1iZXI+KDEwKTtcbiAgbGF5b3V0ID0gc2lnbmFsPHN0cmluZyB8IG51bGw+KG51bGwpO1xuICBjb2x1bW5zID0gc2lnbmFsPGFueVtdPihbXSk7XG4gIHNlbGVjdGVkUmVjb3JkcyA9IHNpZ25hbDxzdHJpbmdbXT4oW10pO1xuICBjdXJyZW50UGFnZSA9IHNpZ25hbDxudW1iZXI+KDEpO1xuICB0b3RhbFJlY29yZHNOdW1iZXIgPSBzaWduYWw8bnVtYmVyPigwKTtcbiAgdmlzaWJsZVJlY29yZHMgPSBzaWduYWw8VGFibGVSZWNvcmREYXRhW10+KFtdKTtcbiAgd2FpdGluZyA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG5cbiAgZ2xvYmFsRmlsdGVyU3RyaW5nOiBzdHJpbmcgPSAnJztcblxuICB0YWJsZUZpZWxkU3R5bGVzOiBhbnk7XG4gIGxvYWRlZCA9IGZhbHNlO1xuICBzZWxlY3RhYmxlID0gZmFsc2U7XG4gIGhhc0FjdGlvbnMgPSBmYWxzZTtcbiAgaW5saW5lQWN0aW9uczogYW55O1xuICBnbG9iYWxBY3Rpb25zOiBhbnk7XG4gIHNlbGVjdGlvbkFjdGlvbnM6IGFueTtcblxuICBASW5wdXQoKSB0YWJsZTogUmVjb3JkVGFibGUgfCBudWxsID0gbnVsbDtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMudGFibGUpIHsgcmV0dXJuOyB9XG4gICAgdGhpcy50YWJsZS5zZXRXaWRnZXQodGhpcyk7XG4gICAgdGhpcy5mb3JtQ29uZmlnID0gdGhpcy50YWJsZT8uZm9ybUNvbmZpZztcblxuICAgIHRoaXMudGFibGVGaWVsZFN0eWxlcyA9IHRoaXMuZm9ybUNvbmZpZz8udGFibGVGaWVsZFN0eWxlcztcbiAgICB0aGlzLnNlbGVjdGFibGUgPSB0aGlzLnRhYmxlPy5zZWxlY3RhYmxlO1xuICAgIHRoaXMuaGFzQWN0aW9ucyA9IHRoaXMudGFibGU/Lmhhc0FjdGlvbnMoKTtcbiAgICB0aGlzLmlubGluZUFjdGlvbnMgPSB0aGlzLnRhYmxlPy5nZXRBY3Rpb25zKHRoaXMuZm9ybUNvbmZpZz8udGFibGVBY3Rpb25zLmlubGluZSk7XG4gICAgdGhpcy5nbG9iYWxBY3Rpb25zID0gdGhpcy50YWJsZT8uZ2V0QWN0aW9ucyh0aGlzLmZvcm1Db25maWc/LnRhYmxlQWN0aW9ucy5nbG9iYWwpO1xuICAgIHRoaXMuc2VsZWN0aW9uQWN0aW9ucyA9IHRoaXMudGFibGU/LmdldEFjdGlvbnModGhpcy5mb3JtQ29uZmlnPy50YWJsZUFjdGlvbnMuc2VsZWN0aW9uKTtcbiAgICB0aGlzLmdsb2JhbEZpbHRlclN0cmluZyA9IHRoaXMudGFibGU/Lmdsb2JhbEZpbHRlclN0cmluZztcbiAgICB0aGlzLnVwZGF0ZVByb3BhZ2F0ZWRBdHRyaWJ1dGVzKCk7XG4gICAgdGhpcy5yZXBsYWNlQ3VzdG9tQXR0cmlidXRlcyh0aGlzLnRhYmxlPy5jdXN0b21BdHRyaWJ1dGVzKTtcblxuICAgIHRoaXMudGFibGU/LmF0dHJpYnV0ZUNoYW5nZVxuICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKGV2ZW50KSA9PiB7XG4gICAgICAgICAgY29uc3QgeyBuYW1lOiBhdHRyaWJ1dGUsIHZhbHVlID0gbnVsbCB9ID0gZXZlbnQgPz8ge307XG4gICAgICAgICAgY29uc3QgYXR0cmlidXRlUGFydHMgPSBhdHRyaWJ1dGU/LnNwbGl0KCcuJykgPz8gW107XG4gICAgICAgICAgaWYgKGF0dHJpYnV0ZSA9PT0gJ3Zpc2libGVSZWNvcmRzJykge1xuICAgICAgICAgICAgdGhpcy52aXNpYmxlUmVjb3Jkcy5zZXQodmFsdWUgPz8gW10pO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVUYWJsZURhdGEoKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGF0dHJpYnV0ZSA9PT0gJ2dsb2JhbEZpbHRlclN0cmluZycpIHtcbiAgICAgICAgICAgIHRoaXMuZ2xvYmFsRmlsdGVyU3RyaW5nID0gdmFsdWU7XG4gICAgICAgICAgfSBlbHNlIGlmIChzaWduYWxlZEF0dHJpYnV0ZXMuaW5jbHVkZXMoYXR0cmlidXRlKSkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVQaWVjZUF0dHJpYnV0ZShzaWduYWxlZEF0dHJpYnV0ZXMsIGF0dHJpYnV0ZSwgdmFsdWUpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoYXR0cmlidXRlUGFydHM/Lmxlbmd0aCA+IDEgJiYgYXR0cmlidXRlUGFydHM/LlswXSA9PT0gQ1VTVE9NX0FUVFJJQlVURVMpIHtcbiAgICAgICAgICAgIGNvbnN0IHN1YkF0dHJpYnV0ZSA9IGF0dHJpYnV0ZVBhcnRzPy5bMV0gPz8gbnVsbDtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQ3VzdG9tQXR0cmlidXRlKHN1YkF0dHJpYnV0ZSwgdmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IChlcnIpID0+IGNvbnNvbGUuZXJyb3IoYEVycm9yIGVuIHByb3BhZ2FjacOzbiBkZSBhdHJpYnV0b3MgZGUgdGFibGE6ICR7ZXJyfWApXG4gICAgICB9KTtcbiAgICB0aGlzLnN0YXJ0KCk7XG4gIH1cblxuICB1cGRhdGVQcm9wYWdhdGVkQXR0cmlidXRlcygpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZVBpZWNlQXR0cmlidXRlcyh0aGlzLnRhYmxlLCBzaWduYWxlZEF0dHJpYnV0ZXMpXG4gIH1cblxuICB1cGRhdGVUYWJsZURhdGEoKTogdm9pZCB7IH1cbiAgdGFibGVHbG9iYWxBY3Rpb24oYWN0aW9uQ29kZTogc3RyaW5nKTogdm9pZCB7IHRoaXMudGFibGU/Lm5vdGlmeUdsb2JhbEFjdGlvbihhY3Rpb25Db2RlKTsgfVxuICB0YWJsZVNlbGVjdGlvbkFjdGlvbihhY3Rpb25Db2RlOiBzdHJpbmcpOiB2b2lkIHsgdGhpcy50YWJsZT8ubm90aWZ5U2VsZWN0aW9uQWN0aW9uKGFjdGlvbkNvZGUpOyB9XG4gIHRhYmxlQWN0aW9uU2VsZWN0ZWQoYWN0aW9uRXZlbnQ6IFRhYmxlQWN0aW9uRXZlbnQpOiB2b2lkIHsgdGhpcy50YWJsZT8ubm90aWZ5SW5saW5lQWN0aW9uKGFjdGlvbkV2ZW50KTsgfVxuICB0YWJsZVNlbGVjdGlvblRvZ2dsZShyZWNvcmRJZDogYW55KTogdm9pZCB7IHRoaXMudGFibGU/Lm5vdGlmeVJlY29yZFNlbGVjdGlvbihyZWNvcmRJZCk7IH1cbiAgdG9nZ2xlU2VsZWN0QWxsKCk6IGJvb2xlYW4geyByZXR1cm4gKHRoaXMudGFibGU/LmFsbFNlbGVjdGVkKSA/IHRoaXMudGFibGU/LnVuU2VsZWN0QWxsKCkgOiB0aGlzLnRhYmxlPy5zZWxlY3RBbGwoKTsgfVxuICBnbG9iYWxGaWx0ZXJDb21wbGV0ZWQoKTogdm9pZCB7IHRoaXMuY2hhbmdlUGFnZSgxKTsgfVxuICBjaGFuZ2VQYWdlKHJlcXVlc3RlZFBhZ2U6IG51bWJlcik6IHZvaWQgeyB0aGlzLnRhYmxlPy5jaGFuZ2VQYWdlKHJlcXVlc3RlZFBhZ2UpOyB9XG4gIHRhYmxlQ29sdW1uU29ydChjb2x1bW5OYW1lOiBzdHJpbmcsIGRpcmVjdGlvbjogc3RyaW5nIHwgbnVsbCA9IG51bGwpOiB2b2lkIHsgdGhpcy50YWJsZT8uc29ydChjb2x1bW5OYW1lLCBkaXJlY3Rpb24gPz8gJ2FzY2VuZCcpOyB9XG4gIGdsb2JhbEZpbHRlckNoYW5nZWQoKTogdm9pZCB7IHRoaXMudGFibGU/LnNldEdsb2JhbEZpbHRlclN0cmluZyh0aGlzLmdsb2JhbEZpbHRlclN0cmluZz8udHJpbSgpID8/ICcnLCBmYWxzZSk7IH1cblxuICBmaWx0ZXJIYXNDaGFuZ2VkKGNvbHVtbjogYW55LCB2YWx1ZXM6IGFueVtdKTogdm9pZCB7XG4gICAgaWYgKCF2YWx1ZXMgfHwgdmFsdWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy50YWJsZT8ucmVtb3ZlQ29sdW1uRmlsdGVyKGNvbHVtbi5maWVsZENvZGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRhYmxlPy5hZGRDb2x1bW5GaWx0ZXIoY29sdW1uLmZpZWxkQ29kZSwgdmFsdWVzKTtcbiAgICB9XG4gIH1cblxufVxuIl19
|