tuain-ng-forms-lib 17.4.0 → 19.0.1

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 (52) hide show
  1. package/fesm2022/tuain-ng-forms-lib.mjs +87 -53
  2. package/fesm2022/tuain-ng-forms-lib.mjs.map +1 -1
  3. package/lib/interfaces/sse-live-connection.interface.d.ts +8 -0
  4. package/lib/services/sse-live-connection.service.d.ts +8 -0
  5. package/package.json +5 -7
  6. package/esm2022/lib/classes/forms/action.mjs +0 -112
  7. package/esm2022/lib/classes/forms/element.mjs +0 -25
  8. package/esm2022/lib/classes/forms/field.mjs +0 -481
  9. package/esm2022/lib/classes/forms/form.constants.mjs +0 -55
  10. package/esm2022/lib/classes/forms/form.mjs +0 -587
  11. package/esm2022/lib/classes/forms/piece-propagate.mjs +0 -36
  12. package/esm2022/lib/classes/forms/piece.mjs +0 -139
  13. package/esm2022/lib/classes/forms/section.mjs +0 -150
  14. package/esm2022/lib/classes/forms/subsection.mjs +0 -96
  15. package/esm2022/lib/classes/forms/table/action.mjs +0 -49
  16. package/esm2022/lib/classes/forms/table/column.mjs +0 -74
  17. package/esm2022/lib/classes/forms/table/row-data.mjs +0 -114
  18. package/esm2022/lib/classes/forms/table/table.mjs +0 -537
  19. package/esm2022/lib/components/elements/action.component.mjs +0 -71
  20. package/esm2022/lib/components/elements/field.component.mjs +0 -113
  21. package/esm2022/lib/components/elements/layout/element.component.mjs +0 -23
  22. package/esm2022/lib/components/elements/layout/form-error.component.mjs +0 -25
  23. package/esm2022/lib/components/elements/layout/form-header.component.mjs +0 -25
  24. package/esm2022/lib/components/elements/layout/piece.component.mjs +0 -59
  25. package/esm2022/lib/components/elements/layout/section.component.mjs +0 -57
  26. package/esm2022/lib/components/elements/layout/sub-section.component.mjs +0 -57
  27. package/esm2022/lib/components/elements/tables/table-record-action.component.mjs +0 -71
  28. package/esm2022/lib/components/elements/tables/table-record-field.component.mjs +0 -32
  29. package/esm2022/lib/components/elements/tables/table.component.mjs +0 -109
  30. package/esm2022/lib/components/forms/basic-form.mjs +0 -1407
  31. package/esm2022/lib/components/shared/constants.mjs +0 -2
  32. package/esm2022/lib/interfaces/action.interface.mjs +0 -2
  33. package/esm2022/lib/interfaces/field.interface.mjs +0 -2
  34. package/esm2022/lib/interfaces/form-config.interface.mjs +0 -2
  35. package/esm2022/lib/interfaces/form.interface.mjs +0 -2
  36. package/esm2022/lib/interfaces/icon-resolver.interface.mjs +0 -2
  37. package/esm2022/lib/interfaces/index.mjs +0 -11
  38. package/esm2022/lib/interfaces/piece.interface.mjs +0 -2
  39. package/esm2022/lib/interfaces/section.interface.mjs +0 -2
  40. package/esm2022/lib/interfaces/sse-live-connection.interface.mjs +0 -2
  41. package/esm2022/lib/interfaces/table.interface.mjs +0 -2
  42. package/esm2022/lib/services/base-icon-resolver.service.mjs +0 -40
  43. package/esm2022/lib/services/event-manager.service.mjs +0 -55
  44. package/esm2022/lib/services/file-manager.service.mjs +0 -14
  45. package/esm2022/lib/services/form-manager.service.mjs +0 -88
  46. package/esm2022/lib/services/icon-dictionary.service.mjs +0 -162
  47. package/esm2022/lib/services/sse-live-connection.service.mjs +0 -165
  48. package/esm2022/lib/tokens/icon-resolver.token.mjs +0 -3
  49. package/esm2022/lib/tokens/sse-live-connection.token.mjs +0 -7
  50. package/esm2022/lib/tuain-ng-forms-lib.module.mjs +0 -54
  51. package/esm2022/public-api.mjs +0 -45
  52. 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