@abp/ng.components 8.3.1 → 9.0.0-rc.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.
- package/esm2022/extensible/lib/components/extensible-table/extensible-table.component.mjs +16 -9
- package/esm2022/extensible/lib/models/internal/object-extensions.mjs +1 -1
- package/esm2022/extensible/lib/utils/form-props.util.mjs +8 -2
- package/esm2022/extensible/lib/utils/props.util.mjs +35 -1
- package/esm2022/extensible/lib/utils/state.util.mjs +8 -5
- package/extensible/lib/components/extensible-table/extensible-table.component.d.ts +24 -22
- package/extensible/lib/models/internal/object-extensions.d.ts +15 -0
- package/extensible/lib/utils/props.util.d.ts +3 -0
- package/extensible/lib/utils/state.util.d.ts +2 -2
- package/fesm2022/abp-ng.components-extensible.mjs +66 -16
- package/fesm2022/abp-ng.components-extensible.mjs.map +1 -1
- package/package.json +3 -3
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, inject, Injector, Input, LOCALE_ID, Output, TemplateRef, } from '@angular/core';
|
|
1
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, inject, Injector, Input, LOCALE_ID, Output, TemplateRef, } from '@angular/core';
|
|
2
2
|
import { AsyncPipe, formatDate, NgComponentOutlet, NgTemplateOutlet } from '@angular/common';
|
|
3
|
-
import { map } from 'rxjs
|
|
3
|
+
import { filter, map } from 'rxjs';
|
|
4
4
|
import { NgbTooltip } from '@ng-bootstrap/ng-bootstrap';
|
|
5
5
|
import { NgxDatatableModule } from '@swimlane/ngx-datatable';
|
|
6
6
|
import { ConfigStateService, getShortDateFormat, getShortDateShortTimeFormat, getShortTimeFormat, ListService, LocalizationModule, PermissionDirective, PermissionService, } from '@abp/ng.core';
|
|
@@ -13,6 +13,7 @@ import * as i1 from "@swimlane/ngx-datatable";
|
|
|
13
13
|
import * as i2 from "@abp/ng.core";
|
|
14
14
|
const DEFAULT_ACTIONS_COLUMN_WIDTH = 150;
|
|
15
15
|
export class ExtensibleTableComponent {
|
|
16
|
+
#injector;
|
|
16
17
|
set actionsText(value) {
|
|
17
18
|
this._actionsText = value;
|
|
18
19
|
}
|
|
@@ -22,16 +23,16 @@ export class ExtensibleTableComponent {
|
|
|
22
23
|
set actionsColumnWidth(width) {
|
|
23
24
|
this.setColumnWidths(width ? Number(width) : undefined);
|
|
24
25
|
}
|
|
25
|
-
#injector;
|
|
26
26
|
constructor() {
|
|
27
|
-
this
|
|
28
|
-
this.
|
|
27
|
+
this.#injector = inject(Injector);
|
|
28
|
+
this.getInjected = this.#injector.get.bind(this.#injector);
|
|
29
|
+
this.cdr = inject(ChangeDetectorRef);
|
|
29
30
|
this.locale = inject(LOCALE_ID);
|
|
30
31
|
this.config = inject(ConfigStateService);
|
|
31
32
|
this.entityPropTypeClasses = inject(ENTITY_PROP_TYPE_CLASSES);
|
|
32
|
-
this
|
|
33
|
-
this.
|
|
34
|
-
this.
|
|
33
|
+
this.permissionService = inject(PermissionService);
|
|
34
|
+
this.tableActivate = new EventEmitter();
|
|
35
|
+
this.trackByFn = (_, item) => item.name;
|
|
35
36
|
const extensions = this.#injector.get(ExtensionsService);
|
|
36
37
|
const name = this.#injector.get(EXTENSIONS_IDENTIFIER);
|
|
37
38
|
this.propList = extensions.entityProps.get(name).props;
|
|
@@ -128,6 +129,12 @@ export class ExtensibleTableComponent {
|
|
|
128
129
|
});
|
|
129
130
|
return visibleActions.length > 0;
|
|
130
131
|
}
|
|
132
|
+
ngAfterViewInit() {
|
|
133
|
+
this.list?.requestStatus$?.pipe(filter(status => status === 'loading')).subscribe(() => {
|
|
134
|
+
this.data = [];
|
|
135
|
+
this.cdr.markForCheck();
|
|
136
|
+
});
|
|
137
|
+
}
|
|
131
138
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: ExtensibleTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
132
139
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.5", type: ExtensibleTableComponent, isStandalone: true, selector: "abp-extensible-table", inputs: { actionsText: "actionsText", data: "data", list: "list", recordsTotal: "recordsTotal", actionsColumnWidth: "actionsColumnWidth", actionsTemplate: "actionsTemplate" }, outputs: { tableActivate: "tableActivate" }, exportAs: ["abpExtensibleTable"], usesOnChanges: true, ngImport: i0, template: "<ngx-datatable\r\n default\r\n [rows]=\"data\"\r\n [count]=\"recordsTotal\"\r\n [list]=\"list\"\r\n (activate)=\"tableActivate.emit($event)\"\r\n>\r\n @if (actionsTemplate || (actionList.length && hasAtLeastOnePermittedAction)) {\r\n <ngx-datatable-column\r\n [name]=\"actionsText | abpLocalization\"\r\n [maxWidth]=\"columnWidths[0]\"\r\n [width]=\"columnWidths[0]\"\r\n [sortable]=\"false\"\r\n >\r\n <ng-template let-row=\"row\" let-i=\"rowIndex\" ngx-datatable-cell-template>\r\n <ng-container\r\n *ngTemplateOutlet=\"actionsTemplate || gridActions; context: { $implicit: row, index: i }\"\r\n ></ng-container>\r\n <ng-template #gridActions>\r\n @if (isVisibleActions(row)) {\r\n <abp-grid-actions [index]=\"i\" [record]=\"row\" text=\"AbpUi::Actions\"></abp-grid-actions>\r\n }\r\n </ng-template>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n }\r\n @for (prop of propList; track prop.name; let i = $index) {\r\n <ngx-datatable-column\r\n *abpVisible=\"prop.columnVisible(getInjected)\"\r\n [width]=\"columnWidths[i + 1] || 200\"\r\n [name]=\"prop.displayName | abpLocalization\"\r\n [prop]=\"prop.name\"\r\n [sortable]=\"prop.sortable\"\r\n >\r\n <ng-template ngx-datatable-header-template let-column=\"column\">\r\n @if (prop.tooltip) {\r\n <span\r\n [ngbTooltip]=\"prop.tooltip.text | abpLocalization\"\r\n [placement]=\"prop.tooltip.placement || 'auto'\"\r\n container=\"body\"\r\n >\r\n {{ column.name }} <i class=\"fa fa-info-circle\" aria-hidden=\"true\"></i>\r\n </span>\r\n } @else {\r\n {{ column.name }}\r\n }\r\n </ng-template>\r\n <ng-template let-row=\"row\" let-i=\"index\" ngx-datatable-cell-template>\r\n <ng-container *abpPermission=\"prop.permission; runChangeDetection: false\">\r\n <ng-container *abpVisible=\"row['_' + prop.name]?.visible\">\r\n @if (!row['_' + prop.name].component) {\r\n <div\r\n [innerHTML]=\"\r\n !prop.isExtra\r\n ? (row['_' + prop.name]?.value | async)\r\n : ('::' + (row['_' + prop.name]?.value | async) | abpLocalization)\r\n \"\r\n (click)=\"\r\n prop.action && prop.action({ getInjected: getInjected, record: row, index: i })\r\n \"\r\n [ngClass]=\"entityPropTypeClasses[prop.type]\"\r\n [class.pointer]=\"prop.action\"\r\n ></div>\r\n } @else {\r\n <ng-container\r\n *ngComponentOutlet=\"\r\n row['_' + prop.name].component;\r\n injector: row['_' + prop.name].injector\r\n \"\r\n ></ng-container>\r\n }\r\n </ng-container>\r\n </ng-container>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n }\r\n</ngx-datatable>\r\n", dependencies: [{ kind: "directive", type: AbpVisibleDirective, selector: "[abpVisible]", inputs: ["abpVisible"] }, { kind: "ngmodule", type: NgxDatatableModule }, { kind: "component", type: i1.DatatableComponent, selector: "ngx-datatable", inputs: ["targetMarkerTemplate", "rows", "groupRowsBy", "groupedRows", "columns", "selected", "scrollbarV", "scrollbarH", "rowHeight", "columnMode", "headerHeight", "footerHeight", "externalPaging", "externalSorting", "limit", "count", "offset", "loadingIndicator", "selectionType", "reorderable", "swapColumns", "sortType", "sorts", "cssClasses", "messages", "rowClass", "selectCheck", "displayCheck", "groupExpansionDefault", "trackByProp", "selectAllRowsOnPage", "virtualization", "treeFromRelation", "treeToRelation", "summaryRow", "summaryHeight", "summaryPosition", "rowIdentity"], outputs: ["scroll", "activate", "select", "sort", "page", "reorder", "resize", "tableContextmenu", "treeAction"] }, { kind: "directive", type: i1.DataTableColumnDirective, selector: "ngx-datatable-column", inputs: ["name", "prop", "frozenLeft", "frozenRight", "flexGrow", "resizeable", "comparator", "pipe", "sortable", "draggable", "canAutoResize", "minWidth", "width", "maxWidth", "checkboxable", "headerCheckboxable", "headerClass", "cellClass", "isTreeColumn", "treeLevelIndent", "summaryFunc", "summaryTemplate", "cellTemplate", "headerTemplate", "treeToggleTemplate"] }, { kind: "directive", type: i1.DataTableColumnHeaderDirective, selector: "[ngx-datatable-header-template]" }, { kind: "directive", type: i1.DataTableColumnCellDirective, selector: "[ngx-datatable-cell-template]" }, { kind: "component", type: GridActionsComponent, selector: "abp-grid-actions", inputs: ["icon", "index", "text"], exportAs: ["abpGridActions"] }, { kind: "directive", type: NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "directive", type: NgxDatatableDefaultDirective, selector: "ngx-datatable[default]", inputs: ["class"], exportAs: ["ngxDatatableDefault"] }, { kind: "directive", type: NgxDatatableListDirective, selector: "ngx-datatable[list]", inputs: ["list"], exportAs: ["ngxDatatableList"] }, { kind: "directive", type: PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission", "abpPermissionRunChangeDetection"] }, { kind: "ngmodule", type: LocalizationModule }, { kind: "pipe", type: i2.LocalizationPipe, name: "abpLocalization" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
133
140
|
}
|
|
@@ -161,4 +168,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImpor
|
|
|
161
168
|
}], tableActivate: [{
|
|
162
169
|
type: Output
|
|
163
170
|
}] } });
|
|
164
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaWJsZS10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2V4dGVuc2libGUvc3JjL2xpYi9jb21wb25lbnRzL2V4dGVuc2libGUtdGFibGUvZXh0ZW5zaWJsZS10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2V4dGVuc2libGUvc3JjL2xpYi9jb21wb25lbnRzL2V4dGVuc2libGUtdGFibGUvZXh0ZW5zaWJsZS10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUNOLFFBQVEsRUFDUixLQUFLLEVBQ0wsU0FBUyxFQUVULE1BQU0sRUFFTixXQUFXLEdBRVosTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUc3RixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTdELE9BQU8sRUFFTCxrQkFBa0IsRUFDbEIsa0JBQWtCLEVBQ2xCLDJCQUEyQixFQUMzQixrQkFBa0IsRUFDbEIsV0FBVyxFQUNYLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsaUJBQWlCLEdBQ2xCLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsNEJBQTRCLEVBQzVCLHlCQUF5QixHQUMxQixNQUFNLHNCQUFzQixDQUFDO0FBTTlCLE9BQU8sRUFB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QUMsQ0FBQztZQUN0RSxDQUFDO1lBRUQsT0FBTyxTQUFTLElBQUksYUFBYSxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUNuQyxDQUFDOzhHQTNKVSx3QkFBd0I7a0dBQXhCLHdCQUF3QixvV0N6RXJDLG9oR0E2RUEsNENEbkJJLG1CQUFtQixnRkFDbkIsa0JBQWtCLCs4Q0FDbEIsb0JBQW9CLDhIQUNwQixVQUFVLDJUQUNWLDRCQUE0Qix5SEFDNUIseUJBQXlCLGtIQUN6QixtQkFBbUIseUhBQ25CLGtCQUFrQixnR0FDbEIsU0FBUyw4Q0FDVCxnQkFBZ0Isb0pBQ2hCLGlCQUFpQjs7MkZBS1Isd0JBQXdCO2tCQXBCcEMsU0FBUzsrQkFDRSxvQkFBb0IsWUFDcEIsc0JBQXNCLGNBQ3BCLElBQUksV0FDUDt3QkFDUCxtQkFBbUI7d0JBQ25CLGtCQUFrQjt3QkFDbEIsb0JBQW9CO3dCQUNwQixVQUFVO3dCQUNWLDRCQUE0Qjt3QkFDNUIseUJBQXlCO3dCQUN6QixtQkFBbUI7d0JBQ25CLGtCQUFrQjt3QkFDbEIsU0FBUzt3QkFDVCxnQkFBZ0I7d0JBQ2hCLGlCQUFpQjtxQkFDbEIsbUJBRWdCLHVCQUF1QixDQUFDLE1BQU07d0RBSzNDLFdBQVc7c0JBRGQsS0FBSztnQkFTRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRU8sa0JBQWtCO3NCQUE5QixLQUFLO2dCQUlHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBRUksYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBpbmplY3QsXHJcbiAgSW5qZWN0b3IsXHJcbiAgSW5wdXQsXHJcbiAgTE9DQUxFX0lELFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPdXRwdXQsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBUZW1wbGF0ZVJlZixcclxuICBUcmFja0J5RnVuY3Rpb24sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFzeW5jUGlwZSwgZm9ybWF0RGF0ZSwgTmdDb21wb25lbnRPdXRsZXQsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBOZ2JUb29sdGlwIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBOZ3hEYXRhdGFibGVNb2R1bGUgfSBmcm9tICdAc3dpbWxhbmUvbmd4LWRhdGF0YWJsZSc7XHJcblxyXG5pbXBvcnQge1xyXG4gIEFCUCxcclxuICBDb25maWdTdGF0ZVNlcnZpY2UsXHJcbiAgZ2V0U2hvcnREYXRlRm9ybWF0LFxyXG4gIGdldFNob3J0RGF0ZVNob3J0VGltZUZvcm1hdCxcclxuICBnZXRTaG9ydFRpbWVGb3JtYXQsXHJcbiAgTGlzdFNlcnZpY2UsXHJcbiAgTG9jYWxpemF0aW9uTW9kdWxlLFxyXG4gIFBlcm1pc3Npb25EaXJlY3RpdmUsXHJcbiAgUGVybWlzc2lvblNlcnZpY2UsXHJcbn0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHtcclxuICBBYnBWaXNpYmxlRGlyZWN0aXZlLFxyXG4gIE5neERhdGF0YWJsZURlZmF1bHREaXJlY3RpdmUsXHJcbiAgTmd4RGF0YXRhYmxlTGlzdERpcmVjdGl2ZSxcclxufSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XHJcblxyXG5pbXBvcnQgeyBlUHJvcFR5cGUgfSBmcm9tICcuLi8uLi9lbnVtcy9wcm9wcy5lbnVtJztcclxuaW1wb3J0IHsgRW50aXR5QWN0aW9uTGlzdCB9IGZyb20gJy4uLy4uL21vZGVscy9lbnRpdHktYWN0aW9ucyc7XHJcbmltcG9ydCB7IEVudGl0eVByb3AsIEVudGl0eVByb3BMaXN0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VudGl0eS1wcm9wcyc7XHJcbmltcG9ydCB7IFByb3BEYXRhIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3Byb3BzJztcclxuaW1wb3J0IHsgRXh0ZW5zaW9uc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9leHRlbnNpb25zLnNlcnZpY2UnO1xyXG5pbXBvcnQge1xyXG4gIEVOVElUWV9QUk9QX1RZUEVfQ0xBU1NFUyxcclxuICBFWFRFTlNJT05TX0lERU5USUZJRVIsXHJcbiAgUFJPUF9EQVRBX1NUUkVBTSxcclxufSBmcm9tICcuLi8uLi90b2tlbnMvZXh0ZW5zaW9ucy50b2tlbic7XHJcbmltcG9ydCB7IEdyaWRBY3Rpb25zQ29tcG9uZW50IH0gZnJvbSAnLi4vZ3JpZC1hY3Rpb25zL2dyaWQtYWN0aW9ucy5jb21wb25lbnQnO1xyXG5cclxuY29uc3QgREVGQVVMVF9BQ1RJT05TX0NPTFVNTl9XSURUSCA9IDE1MDtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIGV4cG9ydEFzOiAnYWJwRXh0ZW5zaWJsZVRhYmxlJyxcclxuICBzZWxlY3RvcjogJ2FicC1leHRlbnNpYmxlLXRhYmxlJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIEFicFZpc2libGVEaXJlY3RpdmUsXHJcbiAgICBOZ3hEYXRhdGFibGVNb2R1bGUsXHJcbiAgICBHcmlkQWN0aW9uc0NvbXBvbmVudCxcclxuICAgIE5nYlRvb2x0aXAsXHJcbiAgICBOZ3hEYXRhdGFibGVEZWZhdWx0RGlyZWN0aXZlLFxyXG4gICAgTmd4RGF0YXRhYmxlTGlzdERpcmVjdGl2ZSxcclxuICAgIFBlcm1pc3Npb25EaXJlY3RpdmUsXHJcbiAgICBMb2NhbGl6YXRpb25Nb2R1bGUsXHJcbiAgICBBc3luY1BpcGUsXHJcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxyXG4gICAgTmdDb21wb25lbnRPdXRsZXQsXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vZXh0ZW5zaWJsZS10YWJsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFeHRlbnNpYmxlVGFibGVDb21wb25lbnQ8UiA9IGFueT4gaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG4gIHByb3RlY3RlZCBfYWN0aW9uc1RleHQhOiBzdHJpbmc7XHJcbiAgQElucHV0KClcclxuICBzZXQgYWN0aW9uc1RleHQodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fYWN0aW9uc1RleHQgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIGdldCBhY3Rpb25zVGV4dCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FjdGlvbnNUZXh0ID8/ICh0aGlzLmFjdGlvbkxpc3QubGVuZ3RoID4gMSA/ICdBYnBVaTo6QWN0aW9ucycgOiAnJyk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBkYXRhITogUltdO1xyXG4gIEBJbnB1dCgpIGxpc3QhOiBMaXN0U2VydmljZTtcclxuICBASW5wdXQoKSByZWNvcmRzVG90YWwhOiBudW1iZXI7XHJcblxyXG4gIEBJbnB1dCgpIHNldCBhY3Rpb25zQ29sdW1uV2lkdGgod2lkdGg6IG51bWJlcikge1xyXG4gICAgdGhpcy5zZXRDb2x1bW5XaWR0aHMod2lkdGggPyBOdW1iZXIod2lkdGgpIDogdW5kZWZpbmVkKTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIGFjdGlvbnNUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gIEBPdXRwdXQoKSB0YWJsZUFjdGl2YXRlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBoYXNBdExlYXN0T25lUGVybWl0dGVkQWN0aW9uOiBib29sZWFuO1xyXG5cclxuICByZWFkb25seSBjb2x1bW5XaWR0aHMhOiBudW1iZXJbXTtcclxuXHJcbiAgcmVhZG9ubHkgcHJvcExpc3Q6IEVudGl0eVByb3BMaXN0PFI+O1xyXG5cclxuICByZWFkb25seSBhY3Rpb25MaXN0OiBFbnRpdHlBY3Rpb25MaXN0PFI+O1xyXG5cclxuICByZWFkb25seSB0cmFja0J5Rm46IFRyYWNrQnlGdW5jdGlvbjxFbnRpdHlQcm9wPFI+PiA9IChfLCBpdGVtKSA9PiBpdGVtLm5hbWU7XHJcblxyXG4gIGxvY2FsZSA9IGluamVjdChMT0NBTEVfSUQpO1xyXG4gIHByaXZhdGUgY29uZmlnID0gaW5qZWN0KENvbmZpZ1N0YXRlU2VydmljZSk7XHJcbiAgZW50aXR5UHJvcFR5cGVDbGFzc2VzID0gaW5qZWN0KEVOVElUWV9QUk9QX1RZUEVfQ0xBU1NFUyk7XHJcbiAgI2luamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcclxuICBnZXRJbmplY3RlZCA9IHRoaXMuI2luamVjdG9yLmdldC5iaW5kKHRoaXMuI2luamVjdG9yKTtcclxuICBwZXJtaXNzaW9uU2VydmljZSA9IHRoaXMuI2luamVjdG9yLmdldChQZXJtaXNzaW9uU2VydmljZSk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgY29uc3QgZXh0ZW5zaW9ucyA9IHRoaXMuI2luamVjdG9yLmdldChFeHRlbnNpb25zU2VydmljZSk7XHJcbiAgICBjb25zdCBuYW1lID0gdGhpcy4jaW5qZWN0b3IuZ2V0KEVYVEVOU0lPTlNfSURFTlRJRklFUik7XHJcbiAgICB0aGlzLnByb3BMaXN0ID0gZXh0ZW5zaW9ucy5lbnRpdHlQcm9wcy5nZXQobmFtZSkucHJvcHM7XHJcbiAgICB0aGlzLmFjdGlvbkxpc3QgPSBleHRlbnNpb25zWydlbnRpdHlBY3Rpb25zJ10uZ2V0KG5hbWUpXHJcbiAgICAgIC5hY3Rpb25zIGFzIHVua25vd24gYXMgRW50aXR5QWN0aW9uTGlzdDxSPjtcclxuXHJcbiAgICB0aGlzLmhhc0F0TGVhc3RPbmVQZXJtaXR0ZWRBY3Rpb24gPVxyXG4gICAgICB0aGlzLnBlcm1pc3Npb25TZXJ2aWNlLmZpbHRlckl0ZW1zQnlQb2xpY3koXHJcbiAgICAgICAgdGhpcy5hY3Rpb25MaXN0LnRvQXJyYXkoKS5tYXAoYWN0aW9uID0+ICh7IHJlcXVpcmVkUG9saWN5OiBhY3Rpb24ucGVybWlzc2lvbiB9KSksXHJcbiAgICAgICkubGVuZ3RoID4gMDtcclxuICAgIHRoaXMuc2V0Q29sdW1uV2lkdGhzKERFRkFVTFRfQUNUSU9OU19DT0xVTU5fV0lEVEgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRDb2x1bW5XaWR0aHMoYWN0aW9uc0NvbHVtbjogbnVtYmVyIHwgdW5kZWZpbmVkKSB7XHJcbiAgICBjb25zdCB3aWR0aHMgPSBbYWN0aW9uc0NvbHVtbl07XHJcbiAgICB0aGlzLnByb3BMaXN0LmZvckVhY2goKHsgdmFsdWU6IHByb3AgfSkgPT4ge1xyXG4gICAgICB3aWR0aHMucHVzaChwcm9wLmNvbHVtbldpZHRoKTtcclxuICAgIH0pO1xyXG4gICAgKHRoaXMuY29sdW1uV2lkdGhzIGFzIGFueSkgPSB3aWR0aHM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldERhdGUodmFsdWU6IERhdGUgfCB1bmRlZmluZWQsIGZvcm1hdDogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XHJcbiAgICByZXR1cm4gdmFsdWUgJiYgZm9ybWF0ID8gZm9ybWF0RGF0ZSh2YWx1ZSwgZm9ybWF0LCB0aGlzLmxvY2FsZSkgOiAnJztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0SWNvbih2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgcmV0dXJuIHZhbHVlXHJcbiAgICAgID8gJzxkaXYgY2xhc3M9XCJ0ZXh0LXN1Y2Nlc3NcIj48aSBjbGFzcz1cImZhIGZhLWNoZWNrXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPjwvZGl2PidcclxuICAgICAgOiAnPGRpdiBjbGFzcz1cInRleHQtZGFuZ2VyXCI+PGkgY2xhc3M9XCJmYSBmYS10aW1lc1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT48L2Rpdj4nO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRFbnVtKHJvd1ZhbHVlOiBhbnksIGxpc3Q6IEFycmF5PEFCUC5PcHRpb248YW55Pj4pIHtcclxuICAgIGlmICghbGlzdCB8fCBsaXN0Lmxlbmd0aCA8IDEpIHJldHVybiByb3dWYWx1ZTtcclxuICAgIGNvbnN0IHsga2V5IH0gPSBsaXN0LmZpbmQoKHsgdmFsdWUgfSkgPT4gdmFsdWUgPT09IHJvd1ZhbHVlKSB8fCB7fTtcclxuICAgIHJldHVybiBrZXk7XHJcbiAgfVxyXG5cclxuICBnZXRDb250ZW50KHByb3A6IEVudGl0eVByb3A8Uj4sIGRhdGE6IFByb3BEYXRhKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcclxuICAgIHJldHVybiBwcm9wLnZhbHVlUmVzb2x2ZXIoZGF0YSkucGlwZShcclxuICAgICAgbWFwKHZhbHVlID0+IHtcclxuICAgICAgICBzd2l0Y2ggKHByb3AudHlwZSkge1xyXG4gICAgICAgICAgY2FzZSBlUHJvcFR5cGUuQm9vbGVhbjpcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0SWNvbih2YWx1ZSk7XHJcbiAgICAgICAgICBjYXNlIGVQcm9wVHlwZS5EYXRlOlxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXREYXRlKHZhbHVlLCBnZXRTaG9ydERhdGVGb3JtYXQodGhpcy5jb25maWcpKTtcclxuICAgICAgICAgIGNhc2UgZVByb3BUeXBlLlRpbWU6XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldERhdGUodmFsdWUsIGdldFNob3J0VGltZUZvcm1hdCh0aGlzLmNvbmZpZykpO1xyXG4gICAgICAgICAgY2FzZSBlUHJvcFR5cGUuRGF0ZVRpbWU6XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldERhdGUodmFsdWUsIGdldFNob3J0RGF0ZVNob3J0VGltZUZvcm1hdCh0aGlzLmNvbmZpZykpO1xyXG4gICAgICAgICAgY2FzZSBlUHJvcFR5cGUuRW51bTpcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RW51bSh2YWx1ZSwgcHJvcC5lbnVtTGlzdCB8fCBbXSk7XHJcbiAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICAgICAgICAvLyBNb3JlIHR5cGVzIGNhbiBiZSBoYW5kbGVkIGluIHRoZSBmdXR1cmVcclxuICAgICAgICB9XHJcbiAgICAgIH0pLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKHsgZGF0YSB9OiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICBpZiAoIWRhdGE/LmN1cnJlbnRWYWx1ZSkgcmV0dXJuO1xyXG5cclxuICAgIGlmIChkYXRhLmN1cnJlbnRWYWx1ZS5sZW5ndGggPCAxKSB7XHJcbiAgICAgIHRoaXMubGlzdC50b3RhbENvdW50ID0gdGhpcy5yZWNvcmRzVG90YWw7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5kYXRhID0gZGF0YS5jdXJyZW50VmFsdWUubWFwKChyZWNvcmQ6IGFueSwgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICB0aGlzLnByb3BMaXN0LmZvckVhY2gocHJvcCA9PiB7XHJcbiAgICAgICAgY29uc3QgcHJvcERhdGEgPSB7IGdldEluamVjdGVkOiB0aGlzLmdldEluamVjdGVkLCByZWNvcmQsIGluZGV4IH0gYXMgYW55O1xyXG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXRDb250ZW50KHByb3AudmFsdWUsIHByb3BEYXRhKTtcclxuXHJcbiAgICAgICAgY29uc3QgcHJvcEtleSA9IGBfJHtwcm9wLnZhbHVlLm5hbWV9YDtcclxuICAgICAgICByZWNvcmRbcHJvcEtleV0gPSB7XHJcbiAgICAgICAgICB2aXNpYmxlOiBwcm9wLnZhbHVlLnZpc2libGUocHJvcERhdGEpLFxyXG4gICAgICAgICAgdmFsdWUsXHJcbiAgICAgICAgfTtcclxuICAgICAgICBpZiAocHJvcC52YWx1ZS5jb21wb25lbnQpIHtcclxuICAgICAgICAgIHJlY29yZFtwcm9wS2V5XS5pbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZSh7XHJcbiAgICAgICAgICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHByb3ZpZGU6IFBST1BfREFUQV9TVFJFQU0sXHJcbiAgICAgICAgICAgICAgICB1c2VWYWx1ZTogdmFsdWUsXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgcGFyZW50OiB0aGlzLiNpbmplY3RvcixcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgcmVjb3JkW3Byb3BLZXldLmNvbXBvbmVudCA9IHByb3AudmFsdWUuY29tcG9uZW50O1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICByZXR1cm4gcmVjb3JkO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBpc1Zpc2libGVBY3Rpb25zKHJvd0RhdGE6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgYWN0aW9ucyA9IHRoaXMuYWN0aW9uTGlzdC50b0FycmF5KCk7XHJcbiAgICBjb25zdCB2aXNpYmxlQWN0aW9ucyA9IGFjdGlvbnMuZmlsdGVyKGFjdGlvbiA9PiB7XHJcbiAgICAgIGNvbnN0IHsgdmlzaWJsZSwgcGVybWlzc2lvbiB9ID0gYWN0aW9uO1xyXG5cclxuICAgICAgbGV0IGlzVmlzaWJsZSA9IHRydWU7XHJcbiAgICAgIGxldCBoYXNQZXJtaXNzaW9uID0gdHJ1ZTtcclxuXHJcbiAgICAgIGlmICh2aXNpYmxlKSB7XHJcbiAgICAgICAgaXNWaXNpYmxlID0gdmlzaWJsZSh7IHJlY29yZDogcm93RGF0YSwgZ2V0SW5qZWN0ZWQ6IHRoaXMuZ2V0SW5qZWN0ZWQgfSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChwZXJtaXNzaW9uKSB7XHJcbiAgICAgICAgaGFzUGVybWlzc2lvbiA9IHRoaXMucGVybWlzc2lvblNlcnZpY2UuZ2V0R3JhbnRlZFBvbGljeShwZXJtaXNzaW9uKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIGlzVmlzaWJsZSAmJiBoYXNQZXJtaXNzaW9uO1xyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIHZpc2libGVBY3Rpb25zLmxlbmd0aCA+IDA7XHJcbiAgfVxyXG59XHJcbiIsIjxuZ3gtZGF0YXRhYmxlXHJcbiAgZGVmYXVsdFxyXG4gIFtyb3dzXT1cImRhdGFcIlxyXG4gIFtjb3VudF09XCJyZWNvcmRzVG90YWxcIlxyXG4gIFtsaXN0XT1cImxpc3RcIlxyXG4gIChhY3RpdmF0ZSk9XCJ0YWJsZUFjdGl2YXRlLmVtaXQoJGV2ZW50KVwiXHJcbj5cclxuICBAaWYgKGFjdGlvbnNUZW1wbGF0ZSB8fCAoYWN0aW9uTGlzdC5sZW5ndGggJiYgaGFzQXRMZWFzdE9uZVBlcm1pdHRlZEFjdGlvbikpIHtcclxuICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxyXG4gICAgICBbbmFtZV09XCJhY3Rpb25zVGV4dCB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgIFttYXhXaWR0aF09XCJjb2x1bW5XaWR0aHNbMF1cIlxyXG4gICAgICBbd2lkdGhdPVwiY29sdW1uV2lkdGhzWzBdXCJcclxuICAgICAgW3NvcnRhYmxlXT1cImZhbHNlXCJcclxuICAgID5cclxuICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBsZXQtaT1cInJvd0luZGV4XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiYWN0aW9uc1RlbXBsYXRlIHx8IGdyaWRBY3Rpb25zOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogcm93LCBpbmRleDogaSB9XCJcclxuICAgICAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNncmlkQWN0aW9ucz5cclxuICAgICAgICAgIEBpZiAoaXNWaXNpYmxlQWN0aW9ucyhyb3cpKSB7XHJcbiAgICAgICAgICAgIDxhYnAtZ3JpZC1hY3Rpb25zIFtpbmRleF09XCJpXCIgW3JlY29yZF09XCJyb3dcIiB0ZXh0PVwiQWJwVWk6OkFjdGlvbnNcIj48L2FicC1ncmlkLWFjdGlvbnM+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcbiAgfVxyXG4gIEBmb3IgKHByb3Agb2YgcHJvcExpc3Q7IHRyYWNrIHByb3AubmFtZTsgbGV0IGkgPSAkaW5kZXgpIHtcclxuICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxyXG4gICAgICAqYWJwVmlzaWJsZT1cInByb3AuY29sdW1uVmlzaWJsZShnZXRJbmplY3RlZClcIlxyXG4gICAgICBbd2lkdGhdPVwiY29sdW1uV2lkdGhzW2kgKyAxXSB8fCAyMDBcIlxyXG4gICAgICBbbmFtZV09XCJwcm9wLmRpc3BsYXlOYW1lIHwgYWJwTG9jYWxpemF0aW9uXCJcclxuICAgICAgW3Byb3BdPVwicHJvcC5uYW1lXCJcclxuICAgICAgW3NvcnRhYmxlXT1cInByb3Auc29ydGFibGVcIlxyXG4gICAgPlxyXG4gICAgICA8bmctdGVtcGxhdGUgbmd4LWRhdGF0YWJsZS1oZWFkZXItdGVtcGxhdGUgbGV0LWNvbHVtbj1cImNvbHVtblwiPlxyXG4gICAgICAgIEBpZiAocHJvcC50b29sdGlwKSB7XHJcbiAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICBbbmdiVG9vbHRpcF09XCJwcm9wLnRvb2x0aXAudGV4dCB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICAgIFtwbGFjZW1lbnRdPVwicHJvcC50b29sdGlwLnBsYWNlbWVudCB8fCAnYXV0bydcIlxyXG4gICAgICAgICAgICBjb250YWluZXI9XCJib2R5XCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge3sgY29sdW1uLm5hbWUgfX0gPGkgY2xhc3M9XCJmYSBmYS1pbmZvLWNpcmNsZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgIHt7IGNvbHVtbi5uYW1lIH19XHJcbiAgICAgICAgfVxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIGxldC1pPVwiaW5kZXhcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqYWJwUGVybWlzc2lvbj1cInByb3AucGVybWlzc2lvbjsgcnVuQ2hhbmdlRGV0ZWN0aW9uOiBmYWxzZVwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqYWJwVmlzaWJsZT1cInJvd1snXycgKyBwcm9wLm5hbWVdPy52aXNpYmxlXCI+XHJcbiAgICAgICAgICAgIEBpZiAoIXJvd1snXycgKyBwcm9wLm5hbWVdLmNvbXBvbmVudCkge1xyXG4gICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiXHJcbiAgICAgICAgICAgICAgICAgICFwcm9wLmlzRXh0cmFcclxuICAgICAgICAgICAgICAgICAgICA/IChyb3dbJ18nICsgcHJvcC5uYW1lXT8udmFsdWUgfCBhc3luYylcclxuICAgICAgICAgICAgICAgICAgICA6ICgnOjonICsgKHJvd1snXycgKyBwcm9wLm5hbWVdPy52YWx1ZSB8IGFzeW5jKSB8IGFicExvY2FsaXphdGlvbilcclxuICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICAgIHByb3AuYWN0aW9uICYmIHByb3AuYWN0aW9uKHsgZ2V0SW5qZWN0ZWQ6IGdldEluamVjdGVkLCByZWNvcmQ6IHJvdywgaW5kZXg6IGkgfSlcclxuICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJlbnRpdHlQcm9wVHlwZUNsYXNzZXNbcHJvcC50eXBlXVwiXHJcbiAgICAgICAgICAgICAgICBbY2xhc3MucG9pbnRlcl09XCJwcm9wLmFjdGlvblwiXHJcbiAgICAgICAgICAgICAgPjwvZGl2PlxyXG4gICAgICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAqbmdDb21wb25lbnRPdXRsZXQ9XCJcclxuICAgICAgICAgICAgICAgICAgcm93WydfJyArIHByb3AubmFtZV0uY29tcG9uZW50O1xyXG4gICAgICAgICAgICAgICAgICBpbmplY3Rvcjogcm93WydfJyArIHByb3AubmFtZV0uaW5qZWN0b3JcclxuICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcbiAgfVxyXG48L25neC1kYXRhdGFibGU+XHJcbiJdfQ==
|
|
171
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaWJsZS10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2V4dGVuc2libGUvc3JjL2xpYi9jb21wb25lbnRzL2V4dGVuc2libGUtdGFibGUvZXh0ZW5zaWJsZS10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2V4dGVuc2libGUvc3JjL2xpYi9jb21wb25lbnRzL2V4dGVuc2libGUtdGFibGUvZXh0ZW5zaWJsZS10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUNMLFNBQVMsRUFFVCxNQUFNLEVBRU4sV0FBVyxHQUVaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFN0YsT0FBTyxFQUFjLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTdELE9BQU8sRUFFTCxrQkFBa0IsRUFDbEIsa0JBQWtCLEVBQ2xCLDJCQUEyQixFQUMzQixrQkFBa0IsRUFDbEIsV0FBVyxFQUNYLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsaUJBQWlCLEdBQ2xCLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsNEJBQTRCLEVBQzVCLHlCQUF5QixHQUMxQixNQUFNLHNCQUFz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QUFJO3NCQUFaLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFFTyxrQkFBa0I7c0JBQTlCLEtBQUs7Z0JBSUcsZUFBZTtzQkFBdkIsS0FBSztnQkFFSSxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgaW5qZWN0LFxyXG4gIEluamVjdG9yLFxyXG4gIElucHV0LFxyXG4gIExPQ0FMRV9JRCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT3V0cHV0LFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgVHJhY2tCeUZ1bmN0aW9uLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBc3luY1BpcGUsIGZvcm1hdERhdGUsIE5nQ29tcG9uZW50T3V0bGV0LCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbmltcG9ydCB7IE9ic2VydmFibGUsIGZpbHRlciwgbWFwIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBOZ2JUb29sdGlwIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBOZ3hEYXRhdGFibGVNb2R1bGUgfSBmcm9tICdAc3dpbWxhbmUvbmd4LWRhdGF0YWJsZSc7XHJcblxyXG5pbXBvcnQge1xyXG4gIEFCUCxcclxuICBDb25maWdTdGF0ZVNlcnZpY2UsXHJcbiAgZ2V0U2hvcnREYXRlRm9ybWF0LFxyXG4gIGdldFNob3J0RGF0ZVNob3J0VGltZUZvcm1hdCxcclxuICBnZXRTaG9ydFRpbWVGb3JtYXQsXHJcbiAgTGlzdFNlcnZpY2UsXHJcbiAgTG9jYWxpemF0aW9uTW9kdWxlLFxyXG4gIFBlcm1pc3Npb25EaXJlY3RpdmUsXHJcbiAgUGVybWlzc2lvblNlcnZpY2UsXHJcbn0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHtcclxuICBBYnBWaXNpYmxlRGlyZWN0aXZlLFxyXG4gIE5neERhdGF0YWJsZURlZmF1bHREaXJlY3RpdmUsXHJcbiAgTmd4RGF0YXRhYmxlTGlzdERpcmVjdGl2ZSxcclxufSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XHJcblxyXG5pbXBvcnQgeyBlUHJvcFR5cGUgfSBmcm9tICcuLi8uLi9lbnVtcy9wcm9wcy5lbnVtJztcclxuaW1wb3J0IHsgRW50aXR5QWN0aW9uTGlzdCB9IGZyb20gJy4uLy4uL21vZGVscy9lbnRpdHktYWN0aW9ucyc7XHJcbmltcG9ydCB7IEVudGl0eVByb3AsIEVudGl0eVByb3BMaXN0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VudGl0eS1wcm9wcyc7XHJcbmltcG9ydCB7IFByb3BEYXRhIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3Byb3BzJztcclxuaW1wb3J0IHsgRXh0ZW5zaW9uc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9leHRlbnNpb25zLnNlcnZpY2UnO1xyXG5pbXBvcnQge1xyXG4gIEVOVElUWV9QUk9QX1RZUEVfQ0xBU1NFUyxcclxuICBFWFRFTlNJT05TX0lERU5USUZJRVIsXHJcbiAgUFJPUF9EQVRBX1NUUkVBTSxcclxufSBmcm9tICcuLi8uLi90b2tlbnMvZXh0ZW5zaW9ucy50b2tlbic7XHJcbmltcG9ydCB7IEdyaWRBY3Rpb25zQ29tcG9uZW50IH0gZnJvbSAnLi4vZ3JpZC1hY3Rpb25zL2dyaWQtYWN0aW9ucy5jb21wb25lbnQnO1xyXG5cclxuY29uc3QgREVGQVVMVF9BQ1RJT05TX0NPTFVNTl9XSURUSCA9IDE1MDtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIGV4cG9ydEFzOiAnYWJwRXh0ZW5zaWJsZVRhYmxlJyxcclxuICBzZWxlY3RvcjogJ2FicC1leHRlbnNpYmxlLXRhYmxlJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIEFicFZpc2libGVEaXJlY3RpdmUsXHJcbiAgICBOZ3hEYXRhdGFibGVNb2R1bGUsXHJcbiAgICBHcmlkQWN0aW9uc0NvbXBvbmVudCxcclxuICAgIE5nYlRvb2x0aXAsXHJcbiAgICBOZ3hEYXRhdGFibGVEZWZhdWx0RGlyZWN0aXZlLFxyXG4gICAgTmd4RGF0YXRhYmxlTGlzdERpcmVjdGl2ZSxcclxuICAgIFBlcm1pc3Npb25EaXJlY3RpdmUsXHJcbiAgICBMb2NhbGl6YXRpb25Nb2R1bGUsXHJcbiAgICBBc3luY1BpcGUsXHJcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxyXG4gICAgTmdDb21wb25lbnRPdXRsZXQsXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vZXh0ZW5zaWJsZS10YWJsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFeHRlbnNpYmxlVGFibGVDb21wb25lbnQ8UiA9IGFueT4gaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQge1xyXG4gIHJlYWRvbmx5ICNpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XHJcbiAgcmVhZG9ubHkgZ2V0SW5qZWN0ZWQgPSB0aGlzLiNpbmplY3Rvci5nZXQuYmluZCh0aGlzLiNpbmplY3Rvcik7XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGxvY2FsZSA9IGluamVjdChMT0NBTEVfSUQpO1xyXG4gIHByb3RlY3RlZCByZWFkb25seSBjb25maWcgPSBpbmplY3QoQ29uZmlnU3RhdGVTZXJ2aWNlKTtcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZW50aXR5UHJvcFR5cGVDbGFzc2VzID0gaW5qZWN0KEVOVElUWV9QUk9QX1RZUEVfQ0xBU1NFUyk7XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHBlcm1pc3Npb25TZXJ2aWNlID0gaW5qZWN0KFBlcm1pc3Npb25TZXJ2aWNlKTtcclxuXHJcbiAgcHJvdGVjdGVkIF9hY3Rpb25zVGV4dCE6IHN0cmluZztcclxuICBASW5wdXQoKVxyXG4gIHNldCBhY3Rpb25zVGV4dCh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9hY3Rpb25zVGV4dCA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGFjdGlvbnNUZXh0KCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fYWN0aW9uc1RleHQgPz8gKHRoaXMuYWN0aW9uTGlzdC5sZW5ndGggPiAxID8gJ0FicFVpOjpBY3Rpb25zJyA6ICcnKTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIGRhdGEhOiBSW107XHJcbiAgQElucHV0KCkgbGlzdCE6IExpc3RTZXJ2aWNlO1xyXG4gIEBJbnB1dCgpIHJlY29yZHNUb3RhbCE6IG51bWJlcjtcclxuXHJcbiAgQElucHV0KCkgc2V0IGFjdGlvbnNDb2x1bW5XaWR0aCh3aWR0aDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnNldENvbHVtbldpZHRocyh3aWR0aCA/IE51bWJlcih3aWR0aCkgOiB1bmRlZmluZWQpO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgYWN0aW9uc1RlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgQE91dHB1dCgpIHRhYmxlQWN0aXZhdGUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIGhhc0F0TGVhc3RPbmVQZXJtaXR0ZWRBY3Rpb246IGJvb2xlYW47XHJcblxyXG4gIHJlYWRvbmx5IGNvbHVtbldpZHRocyE6IG51bWJlcltdO1xyXG5cclxuICByZWFkb25seSBwcm9wTGlzdDogRW50aXR5UHJvcExpc3Q8Uj47XHJcblxyXG4gIHJlYWRvbmx5IGFjdGlvbkxpc3Q6IEVudGl0eUFjdGlvbkxpc3Q8Uj47XHJcblxyXG4gIHJlYWRvbmx5IHRyYWNrQnlGbjogVHJhY2tCeUZ1bmN0aW9uPEVudGl0eVByb3A8Uj4+ID0gKF8sIGl0ZW0pID0+IGl0ZW0ubmFtZTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBjb25zdCBleHRlbnNpb25zID0gdGhpcy4jaW5qZWN0b3IuZ2V0KEV4dGVuc2lvbnNTZXJ2aWNlKTtcclxuICAgIGNvbnN0IG5hbWUgPSB0aGlzLiNpbmplY3Rvci5nZXQoRVhURU5TSU9OU19JREVOVElGSUVSKTtcclxuICAgIHRoaXMucHJvcExpc3QgPSBleHRlbnNpb25zLmVudGl0eVByb3BzLmdldChuYW1lKS5wcm9wcztcclxuICAgIHRoaXMuYWN0aW9uTGlzdCA9IGV4dGVuc2lvbnNbJ2VudGl0eUFjdGlvbnMnXS5nZXQobmFtZSlcclxuICAgICAgLmFjdGlvbnMgYXMgdW5rbm93biBhcyBFbnRpdHlBY3Rpb25MaXN0PFI+O1xyXG5cclxuICAgIHRoaXMuaGFzQXRMZWFzdE9uZVBlcm1pdHRlZEFjdGlvbiA9XHJcbiAgICAgIHRoaXMucGVybWlzc2lvblNlcnZpY2UuZmlsdGVySXRlbXNCeVBvbGljeShcclxuICAgICAgICB0aGlzLmFjdGlvbkxpc3QudG9BcnJheSgpLm1hcChhY3Rpb24gPT4gKHsgcmVxdWlyZWRQb2xpY3k6IGFjdGlvbi5wZXJtaXNzaW9uIH0pKSxcclxuICAgICAgKS5sZW5ndGggPiAwO1xyXG4gICAgdGhpcy5zZXRDb2x1bW5XaWR0aHMoREVGQVVMVF9BQ1RJT05TX0NPTFVNTl9XSURUSCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldENvbHVtbldpZHRocyhhY3Rpb25zQ29sdW1uOiBudW1iZXIgfCB1bmRlZmluZWQpIHtcclxuICAgIGNvbnN0IHdpZHRocyA9IFthY3Rpb25zQ29sdW1uXTtcclxuICAgIHRoaXMucHJvcExpc3QuZm9yRWFjaCgoeyB2YWx1ZTogcHJvcCB9KSA9PiB7XHJcbiAgICAgIHdpZHRocy5wdXNoKHByb3AuY29sdW1uV2lkdGgpO1xyXG4gICAgfSk7XHJcbiAgICAodGhpcy5jb2x1bW5XaWR0aHMgYXMgYW55KSA9IHdpZHRocztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0RGF0ZSh2YWx1ZTogRGF0ZSB8IHVuZGVmaW5lZCwgZm9ybWF0OiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcclxuICAgIHJldHVybiB2YWx1ZSAmJiBmb3JtYXQgPyBmb3JtYXREYXRlKHZhbHVlLCBmb3JtYXQsIHRoaXMubG9jYWxlKSA6ICcnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRJY29uKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICByZXR1cm4gdmFsdWVcclxuICAgICAgPyAnPGRpdiBjbGFzcz1cInRleHQtc3VjY2Vzc1wiPjxpIGNsYXNzPVwiZmEgZmEtY2hlY2tcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+PC9kaXY+J1xyXG4gICAgICA6ICc8ZGl2IGNsYXNzPVwidGV4dC1kYW5nZXJcIj48aSBjbGFzcz1cImZhIGZhLXRpbWVzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPjwvZGl2Pic7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEVudW0ocm93VmFsdWU6IGFueSwgbGlzdDogQXJyYXk8QUJQLk9wdGlvbjxhbnk+Pikge1xyXG4gICAgaWYgKCFsaXN0IHx8IGxpc3QubGVuZ3RoIDwgMSkgcmV0dXJuIHJvd1ZhbHVlO1xyXG4gICAgY29uc3QgeyBrZXkgfSA9IGxpc3QuZmluZCgoeyB2YWx1ZSB9KSA9PiB2YWx1ZSA9PT0gcm93VmFsdWUpIHx8IHt9O1xyXG4gICAgcmV0dXJuIGtleTtcclxuICB9XHJcblxyXG4gIGdldENvbnRlbnQocHJvcDogRW50aXR5UHJvcDxSPiwgZGF0YTogUHJvcERhdGEpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xyXG4gICAgcmV0dXJuIHByb3AudmFsdWVSZXNvbHZlcihkYXRhKS5waXBlKFxyXG4gICAgICBtYXAodmFsdWUgPT4ge1xyXG4gICAgICAgIHN3aXRjaCAocHJvcC50eXBlKSB7XHJcbiAgICAgICAgICBjYXNlIGVQcm9wVHlwZS5Cb29sZWFuOlxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRJY29uKHZhbHVlKTtcclxuICAgICAgICAgIGNhc2UgZVByb3BUeXBlLkRhdGU6XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldERhdGUodmFsdWUsIGdldFNob3J0RGF0ZUZvcm1hdCh0aGlzLmNvbmZpZykpO1xyXG4gICAgICAgICAgY2FzZSBlUHJvcFR5cGUuVGltZTpcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RGF0ZSh2YWx1ZSwgZ2V0U2hvcnRUaW1lRm9ybWF0KHRoaXMuY29uZmlnKSk7XHJcbiAgICAgICAgICBjYXNlIGVQcm9wVHlwZS5EYXRlVGltZTpcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RGF0ZSh2YWx1ZSwgZ2V0U2hvcnREYXRlU2hvcnRUaW1lRm9ybWF0KHRoaXMuY29uZmlnKSk7XHJcbiAgICAgICAgICBjYXNlIGVQcm9wVHlwZS5FbnVtOlxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRFbnVtKHZhbHVlLCBwcm9wLmVudW1MaXN0IHx8IFtdKTtcclxuICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgICAgICAgIC8vIE1vcmUgdHlwZXMgY2FuIGJlIGhhbmRsZWQgaW4gdGhlIGZ1dHVyZVxyXG4gICAgICAgIH1cclxuICAgICAgfSksXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoeyBkYXRhIH06IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGlmICghZGF0YT8uY3VycmVudFZhbHVlKSByZXR1cm47XHJcblxyXG4gICAgaWYgKGRhdGEuY3VycmVudFZhbHVlLmxlbmd0aCA8IDEpIHtcclxuICAgICAgdGhpcy5saXN0LnRvdGFsQ291bnQgPSB0aGlzLnJlY29yZHNUb3RhbDtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmRhdGEgPSBkYXRhLmN1cnJlbnRWYWx1ZS5tYXAoKHJlY29yZDogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgIHRoaXMucHJvcExpc3QuZm9yRWFjaChwcm9wID0+IHtcclxuICAgICAgICBjb25zdCBwcm9wRGF0YSA9IHsgZ2V0SW5qZWN0ZWQ6IHRoaXMuZ2V0SW5qZWN0ZWQsIHJlY29yZCwgaW5kZXggfSBhcyBhbnk7XHJcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldENvbnRlbnQocHJvcC52YWx1ZSwgcHJvcERhdGEpO1xyXG5cclxuICAgICAgICBjb25zdCBwcm9wS2V5ID0gYF8ke3Byb3AudmFsdWUubmFtZX1gO1xyXG4gICAgICAgIHJlY29yZFtwcm9wS2V5XSA9IHtcclxuICAgICAgICAgIHZpc2libGU6IHByb3AudmFsdWUudmlzaWJsZShwcm9wRGF0YSksXHJcbiAgICAgICAgICB2YWx1ZSxcclxuICAgICAgICB9O1xyXG4gICAgICAgIGlmIChwcm9wLnZhbHVlLmNvbXBvbmVudCkge1xyXG4gICAgICAgICAgcmVjb3JkW3Byb3BLZXldLmluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHtcclxuICAgICAgICAgICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgcHJvdmlkZTogUFJPUF9EQVRBX1NUUkVBTSxcclxuICAgICAgICAgICAgICAgIHVzZVZhbHVlOiB2YWx1ZSxcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICBwYXJlbnQ6IHRoaXMuI2luamVjdG9yLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICByZWNvcmRbcHJvcEtleV0uY29tcG9uZW50ID0gcHJvcC52YWx1ZS5jb21wb25lbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHJldHVybiByZWNvcmQ7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGlzVmlzaWJsZUFjdGlvbnMocm93RGF0YTogYW55KTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBhY3Rpb25zID0gdGhpcy5hY3Rpb25MaXN0LnRvQXJyYXkoKTtcclxuICAgIGNvbnN0IHZpc2libGVBY3Rpb25zID0gYWN0aW9ucy5maWx0ZXIoYWN0aW9uID0+IHtcclxuICAgICAgY29uc3QgeyB2aXNpYmxlLCBwZXJtaXNzaW9uIH0gPSBhY3Rpb247XHJcblxyXG4gICAgICBsZXQgaXNWaXNpYmxlID0gdHJ1ZTtcclxuICAgICAgbGV0IGhhc1Blcm1pc3Npb24gPSB0cnVlO1xyXG5cclxuICAgICAgaWYgKHZpc2libGUpIHtcclxuICAgICAgICBpc1Zpc2libGUgPSB2aXNpYmxlKHsgcmVjb3JkOiByb3dEYXRhLCBnZXRJbmplY3RlZDogdGhpcy5nZXRJbmplY3RlZCB9KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHBlcm1pc3Npb24pIHtcclxuICAgICAgICBoYXNQZXJtaXNzaW9uID0gdGhpcy5wZXJtaXNzaW9uU2VydmljZS5nZXRHcmFudGVkUG9saWN5KHBlcm1pc3Npb24pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gaXNWaXNpYmxlICYmIGhhc1Blcm1pc3Npb247XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gdmlzaWJsZUFjdGlvbnMubGVuZ3RoID4gMDtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMubGlzdD8ucmVxdWVzdFN0YXR1cyQ/LnBpcGUoZmlsdGVyKHN0YXR1cyA9PiBzdGF0dXMgPT09ICdsb2FkaW5nJykpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuZGF0YSA9IFtdO1xyXG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8bmd4LWRhdGF0YWJsZVxyXG4gIGRlZmF1bHRcclxuICBbcm93c109XCJkYXRhXCJcclxuICBbY291bnRdPVwicmVjb3Jkc1RvdGFsXCJcclxuICBbbGlzdF09XCJsaXN0XCJcclxuICAoYWN0aXZhdGUpPVwidGFibGVBY3RpdmF0ZS5lbWl0KCRldmVudClcIlxyXG4+XHJcbiAgQGlmIChhY3Rpb25zVGVtcGxhdGUgfHwgKGFjdGlvbkxpc3QubGVuZ3RoICYmIGhhc0F0TGVhc3RPbmVQZXJtaXR0ZWRBY3Rpb24pKSB7XHJcbiAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW5cclxuICAgICAgW25hbWVdPVwiYWN0aW9uc1RleHQgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICBbbWF4V2lkdGhdPVwiY29sdW1uV2lkdGhzWzBdXCJcclxuICAgICAgW3dpZHRoXT1cImNvbHVtbldpZHRoc1swXVwiXHJcbiAgICAgIFtzb3J0YWJsZV09XCJmYWxzZVwiXHJcbiAgICA+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbGV0LWk9XCJyb3dJbmRleFwiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImFjdGlvbnNUZW1wbGF0ZSB8fCBncmlkQWN0aW9uczsgY29udGV4dDogeyAkaW1wbGljaXQ6IHJvdywgaW5kZXg6IGkgfVwiXHJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZ3JpZEFjdGlvbnM+XHJcbiAgICAgICAgICBAaWYgKGlzVmlzaWJsZUFjdGlvbnMocm93KSkge1xyXG4gICAgICAgICAgICA8YWJwLWdyaWQtYWN0aW9ucyBbaW5kZXhdPVwiaVwiIFtyZWNvcmRdPVwicm93XCIgdGV4dD1cIkFicFVpOjpBY3Rpb25zXCI+PC9hYnAtZ3JpZC1hY3Rpb25zPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG4gIH1cclxuICBAZm9yIChwcm9wIG9mIHByb3BMaXN0OyB0cmFjayBwcm9wLm5hbWU7IGxldCBpID0gJGluZGV4KSB7XHJcbiAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW5cclxuICAgICAgKmFicFZpc2libGU9XCJwcm9wLmNvbHVtblZpc2libGUoZ2V0SW5qZWN0ZWQpXCJcclxuICAgICAgW3dpZHRoXT1cImNvbHVtbldpZHRoc1tpICsgMV0gfHwgMjAwXCJcclxuICAgICAgW25hbWVdPVwicHJvcC5kaXNwbGF5TmFtZSB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgIFtwcm9wXT1cInByb3AubmFtZVwiXHJcbiAgICAgIFtzb3J0YWJsZV09XCJwcm9wLnNvcnRhYmxlXCJcclxuICAgID5cclxuICAgICAgPG5nLXRlbXBsYXRlIG5neC1kYXRhdGFibGUtaGVhZGVyLXRlbXBsYXRlIGxldC1jb2x1bW49XCJjb2x1bW5cIj5cclxuICAgICAgICBAaWYgKHByb3AudG9vbHRpcCkge1xyXG4gICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgW25nYlRvb2x0aXBdPVwicHJvcC50b29sdGlwLnRleHQgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICAgICAgICBbcGxhY2VtZW50XT1cInByb3AudG9vbHRpcC5wbGFjZW1lbnQgfHwgJ2F1dG8nXCJcclxuICAgICAgICAgICAgY29udGFpbmVyPVwiYm9keVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHt7IGNvbHVtbi5uYW1lIH19IDxpIGNsYXNzPVwiZmEgZmEtaW5mby1jaXJjbGVcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICB7eyBjb2x1bW4ubmFtZSB9fVxyXG4gICAgICAgIH1cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBsZXQtaT1cImluZGV4XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKmFicFBlcm1pc3Npb249XCJwcm9wLnBlcm1pc3Npb247IHJ1bkNoYW5nZURldGVjdGlvbjogZmFsc2VcIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKmFicFZpc2libGU9XCJyb3dbJ18nICsgcHJvcC5uYW1lXT8udmlzaWJsZVwiPlxyXG4gICAgICAgICAgICBAaWYgKCFyb3dbJ18nICsgcHJvcC5uYW1lXS5jb21wb25lbnQpIHtcclxuICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cIlxyXG4gICAgICAgICAgICAgICAgICAhcHJvcC5pc0V4dHJhXHJcbiAgICAgICAgICAgICAgICAgICAgPyAocm93WydfJyArIHByb3AubmFtZV0/LnZhbHVlIHwgYXN5bmMpXHJcbiAgICAgICAgICAgICAgICAgICAgOiAoJzo6JyArIChyb3dbJ18nICsgcHJvcC5uYW1lXT8udmFsdWUgfCBhc3luYykgfCBhYnBMb2NhbGl6YXRpb24pXHJcbiAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxyXG4gICAgICAgICAgICAgICAgICBwcm9wLmFjdGlvbiAmJiBwcm9wLmFjdGlvbih7IGdldEluamVjdGVkOiBnZXRJbmplY3RlZCwgcmVjb3JkOiByb3csIGluZGV4OiBpIH0pXHJcbiAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiZW50aXR5UHJvcFR5cGVDbGFzc2VzW3Byb3AudHlwZV1cIlxyXG4gICAgICAgICAgICAgICAgW2NsYXNzLnBvaW50ZXJdPVwicHJvcC5hY3Rpb25cIlxyXG4gICAgICAgICAgICAgID48L2Rpdj5cclxuICAgICAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgKm5nQ29tcG9uZW50T3V0bGV0PVwiXHJcbiAgICAgICAgICAgICAgICAgIHJvd1snXycgKyBwcm9wLm5hbWVdLmNvbXBvbmVudDtcclxuICAgICAgICAgICAgICAgICAgaW5qZWN0b3I6IHJvd1snXycgKyBwcm9wLm5hbWVdLmluamVjdG9yXHJcbiAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG4gIH1cclxuPC9uZ3gtZGF0YXRhYmxlPlxyXG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWV4dGVuc2lvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2V4dGVuc2libGUvc3JjL2xpYi9tb2RlbHMvaW50ZXJuYWwvb2JqZWN0LWV4dGVuc2lvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVQcm9wVHlwZSB9IGZyb20gJy4uLy4uL2VudW1zL3Byb3BzLmVudW0nO1xyXG5pbXBvcnQgeyBFbnRpdHlQcm9wTGlzdCB9IGZyb20gJy4uL2VudGl0eS1wcm9wcyc7XHJcbmltcG9ydCB7IEZvcm1Qcm9wTGlzdCB9IGZyb20gJy4uL2Zvcm0tcHJvcHMnO1xyXG5pbXBvcnQgeyBQcm9wQ29udHJpYnV0b3JDYWxsYmFja3MgfSBmcm9tICcuLi9wcm9wcyc7XHJcblxyXG5leHBvcnQgdHlwZSBEaXNwbGF5TmFtZUdlbmVyYXRvckZuID0gKFxyXG4gIGRpc3BsYXlOYW1lOiBMb2NhbGl6YWJsZVN0cmluZ0R0byxcclxuICBmYWxsYmFjazogTG9jYWxpemFibGVTdHJpbmdEdG8sXHJcbikgPT4gc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG5cclxuZXhwb3J0IHR5cGUgRW50aXR5RXh0ZW5zaW9ucyA9IFJlY29yZDxzdHJpbmcsIEVudGl0eUV4dGVuc2lvbkR0bz47XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eUV4dGVuc2lvbkR0byB7XHJcbiAgcHJvcGVydGllczogRW50aXR5RXh0ZW5zaW9uUHJvcGVydGllcztcclxuICBjb25maWd1cmF0aW9uOiBSZWNvcmQ8c3RyaW5nLCBvYmplY3Q+O1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBFbnRpdHlFeHRlbnNpb25Qcm9wZXJ0aWVzID0gUmVjb3JkPHN0cmluZywgRXh0ZW5zaW9uUHJvcGVydHlEdG8+O1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBFeHRlbnNpb25FbnVtRHRvIHtcclxuICBmaWVsZHM6IEV4dGVuc2lvbkVudW1GaWVsZER0b1tdO1xyXG4gIGxvY2FsaXphdGlvblJlc291cmNlPzogc3RyaW5nO1xyXG4gIHRyYW5zZm9ybWVkPzogYW55O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEV4dGVuc2lvbkVudW1GaWVsZER0byB7XHJcbiAgbmFtZT86IHN0cmluZztcclxuICB2YWx1ZTogYW55O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEV4dGVuc2lvblByb3BlcnR5QXBpQ3JlYXRlRHRvIHtcclxuICBpc0F2YWlsYWJsZTogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBFeHRlbnNpb25Qcm9wZXJ0eUFwaUR0byB7XHJcbiAgb25HZXQ6IEV4dGVuc2lvblByb3BlcnR5QXBpR2V0RHRvO1xyXG4gIG9uQ3JlYXRlOiBFeHRlbnNpb25Qcm9wZXJ0eUFwaUNyZWF0ZUR0bztcclxuICBvblVwZGF0ZTogRXh0ZW5zaW9uUHJvcGVydHlBcGlVcGRhdGVEdG87XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRXh0ZW5zaW9uUHJvcGVydHlBcGlHZXREdG8ge1xyXG4gIGlzQXZhaWxhYmxlOiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEV4dGVuc2lvblByb3BlcnR5QXBpVXBkYXRlRHRvIHtcclxuICBpc0F2YWlsYWJsZTogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBFeHRlbnNpb25Qcm9wZXJ0eUF0dHJpYnV0ZUR0byB7XHJcbiAgdHlwZVNpbXBsZT86IHN0cmluZztcclxuICBjb25maWc6IFJlY29yZDxzdHJpbmcsIGFueT47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRXh0ZW5zaW9uUHJvcGVydHlEdG8ge1xyXG4gIHR5cGU/OiBzdHJpbmc7XHJcbiAgdHlwZVNpbXBsZT86IGVQcm9wVHlwZTtcclxuICBkaXNwbGF5TmFtZTogTG9jYWxpemFibGVTdHJpbmdEdG87XHJcbiAgYXBpOiBFeHRlbnNpb25Qcm9wZXJ0eUFwaUR0bztcclxuICB1aTogRXh0ZW5zaW9uUHJvcGVydHlVaUR0bztcclxuICBhdHRyaWJ1dGVzOiBFeHRlbnNpb25Qcm9wZXJ0eUF0dHJpYnV0ZUR0b1tdO1xyXG4gIGNvbmZpZ3VyYXRpb246IFJlY29yZDxzdHJpbmcsIGFueT47XHJcbiAgZGVmYXVsdFZhbHVlOiBhbnk7XHJcbiAgZm9ybVRleHQ/
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWV4dGVuc2lvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2V4dGVuc2libGUvc3JjL2xpYi9tb2RlbHMvaW50ZXJuYWwvb2JqZWN0LWV4dGVuc2lvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVQcm9wVHlwZSB9IGZyb20gJy4uLy4uL2VudW1zL3Byb3BzLmVudW0nO1xyXG5pbXBvcnQgeyBFbnRpdHlQcm9wTGlzdCB9IGZyb20gJy4uL2VudGl0eS1wcm9wcyc7XHJcbmltcG9ydCB7IEZvcm1Qcm9wTGlzdCB9IGZyb20gJy4uL2Zvcm0tcHJvcHMnO1xyXG5pbXBvcnQgeyBQcm9wQ29udHJpYnV0b3JDYWxsYmFja3MgfSBmcm9tICcuLi9wcm9wcyc7XHJcblxyXG5leHBvcnQgdHlwZSBEaXNwbGF5TmFtZUdlbmVyYXRvckZuID0gKFxyXG4gIGRpc3BsYXlOYW1lOiBMb2NhbGl6YWJsZVN0cmluZ0R0byxcclxuICBmYWxsYmFjazogTG9jYWxpemFibGVTdHJpbmdEdG8sXHJcbikgPT4gc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG5cclxuZXhwb3J0IHR5cGUgRW50aXR5RXh0ZW5zaW9ucyA9IFJlY29yZDxzdHJpbmcsIEVudGl0eUV4dGVuc2lvbkR0bz47XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eUV4dGVuc2lvbkR0byB7XHJcbiAgcHJvcGVydGllczogRW50aXR5RXh0ZW5zaW9uUHJvcGVydGllcztcclxuICBjb25maWd1cmF0aW9uOiBSZWNvcmQ8c3RyaW5nLCBvYmplY3Q+O1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBFbnRpdHlFeHRlbnNpb25Qcm9wZXJ0aWVzID0gUmVjb3JkPHN0cmluZywgRXh0ZW5zaW9uUHJvcGVydHlEdG8+O1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBFeHRlbnNpb25FbnVtRHRvIHtcclxuICBmaWVsZHM6IEV4dGVuc2lvbkVudW1GaWVsZER0b1tdO1xyXG4gIGxvY2FsaXphdGlvblJlc291cmNlPzogc3RyaW5nO1xyXG4gIHRyYW5zZm9ybWVkPzogYW55O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEV4dGVuc2lvbkVudW1GaWVsZER0byB7XHJcbiAgbmFtZT86IHN0cmluZztcclxuICB2YWx1ZTogYW55O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEV4dGVuc2lvblByb3BlcnR5QXBpQ3JlYXRlRHRvIHtcclxuICBpc0F2YWlsYWJsZTogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBFeHRlbnNpb25Qcm9wZXJ0eUFwaUR0byB7XHJcbiAgb25HZXQ6IEV4dGVuc2lvblByb3BlcnR5QXBpR2V0RHRvO1xyXG4gIG9uQ3JlYXRlOiBFeHRlbnNpb25Qcm9wZXJ0eUFwaUNyZWF0ZUR0bztcclxuICBvblVwZGF0ZTogRXh0ZW5zaW9uUHJvcGVydHlBcGlVcGRhdGVEdG87XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRXh0ZW5zaW9uUHJvcGVydHlBcGlHZXREdG8ge1xyXG4gIGlzQXZhaWxhYmxlOiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEV4dGVuc2lvblByb3BlcnR5QXBpVXBkYXRlRHRvIHtcclxuICBpc0F2YWlsYWJsZTogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBFeHRlbnNpb25Qcm9wZXJ0eUF0dHJpYnV0ZUR0byB7XHJcbiAgdHlwZVNpbXBsZT86IHN0cmluZztcclxuICBjb25maWc6IFJlY29yZDxzdHJpbmcsIGFueT47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRXh0ZW5zaW9uUHJvcGVydHlEdG8ge1xyXG4gIHR5cGU/OiBzdHJpbmc7XHJcbiAgdHlwZVNpbXBsZT86IGVQcm9wVHlwZTtcclxuICBkaXNwbGF5TmFtZTogTG9jYWxpemFibGVTdHJpbmdEdG87XHJcbiAgYXBpOiBFeHRlbnNpb25Qcm9wZXJ0eUFwaUR0bztcclxuICB1aTogRXh0ZW5zaW9uUHJvcGVydHlVaUR0bztcclxuICBhdHRyaWJ1dGVzOiBFeHRlbnNpb25Qcm9wZXJ0eUF0dHJpYnV0ZUR0b1tdO1xyXG4gIGNvbmZpZ3VyYXRpb246IFJlY29yZDxzdHJpbmcsIGFueT47XHJcbiAgZGVmYXVsdFZhbHVlOiBhbnk7XHJcbiAgZm9ybVRleHQ/OiBzdHJpbmc7XHJcbiAgcG9saWN5PzogUG9saWN5O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VEZWZpbml0aW9uIHtcclxuICByZXF1aXJlc0FsbDogYm9vbGVhbjtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEZlYXR1cmVEZWZpbml0aW9uIGV4dGVuZHMgQmFzZURlZmluaXRpb24ge1xyXG4gIGZlYXR1cmVzPzogc3RyaW5nW107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBQZXJtaXNzaW9uRGVmaW5pdGlvbiBleHRlbmRzIEJhc2VEZWZpbml0aW9uIHtcclxuICBwZXJtaXNzaW9uTmFtZXM/OiBzdHJpbmdbXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQb2xpY3kge1xyXG4gIGdsb2JhbEZlYXR1cmVzOiBGZWF0dXJlRGVmaW5pdGlvbjtcclxuICBmZWF0dXJlczogRmVhdHVyZURlZmluaXRpb247XHJcbiAgcGVybWlzc2lvbnM6IFBlcm1pc3Npb25EZWZpbml0aW9uO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEV4dGVuc2lvblByb3BlcnR5VWlEdG8ge1xyXG4gIG9uVGFibGU6IEV4dGVuc2lvblByb3BlcnR5VWlUYWJsZUR0bztcclxuICBvbkNyZWF0ZUZvcm06IEV4dGVuc2lvblByb3BlcnR5VWlGb3JtRHRvO1xyXG4gIG9uRWRpdEZvcm06IEV4dGVuc2lvblByb3BlcnR5VWlGb3JtRHRvO1xyXG4gIGxvb2t1cD86IEV4dGVuc2lvblByb3BlcnR5VWlMb29rdXBEdG87XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRXh0ZW5zaW9uUHJvcGVydHlVaUZvcm1EdG8ge1xyXG4gIGlzVmlzaWJsZTogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBFeHRlbnNpb25Qcm9wZXJ0eVVpTG9va3VwRHRvIHtcclxuICB1cmw/OiBzdHJpbmc7XHJcbiAgcmVzdWx0TGlzdFByb3BlcnR5TmFtZT86IHN0cmluZztcclxuICBkaXNwbGF5UHJvcGVydHlOYW1lPzogc3RyaW5nO1xyXG4gIHZhbHVlUHJvcGVydHlOYW1lPzogc3RyaW5nO1xyXG4gIGZpbHRlclBhcmFtTmFtZT86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBFeHRlbnNpb25Qcm9wZXJ0eVVpVGFibGVEdG8ge1xyXG4gIGlzU29ydGFibGU/OiBib29sZWFuO1xyXG4gIGlzVmlzaWJsZTogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBMb2NhbGl6YWJsZVN0cmluZ0R0byB7XHJcbiAgbmFtZT86IHN0cmluZztcclxuICByZXNvdXJjZT86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBNb2R1bGVFeHRlbnNpb25EdG8ge1xyXG4gIGVudGl0aWVzOiBSZWNvcmQ8c3RyaW5nLCBFbnRpdHlFeHRlbnNpb25EdG8+O1xyXG4gIGNvbmZpZ3VyYXRpb246IFJlY29yZDxzdHJpbmcsIG9iamVjdD47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgT2JqZWN0RXh0ZW5zaW9uc0R0byB7XHJcbiAgbW9kdWxlczogUmVjb3JkPHN0cmluZywgTW9kdWxlRXh0ZW5zaW9uRHRvPjtcclxuICBlbnVtczogUmVjb3JkPHN0cmluZywgRXh0ZW5zaW9uRW51bUR0bz47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUHJvcENvbnRyaWJ1dG9yczxUID0gYW55PiB7XHJcbiAgcHJvcDogUHJvcENvbnRyaWJ1dG9yQ2FsbGJhY2tzPEVudGl0eVByb3BMaXN0PFQ+PjtcclxuICBjcmVhdGVGb3JtOiBQcm9wQ29udHJpYnV0b3JDYWxsYmFja3M8Rm9ybVByb3BMaXN0PFQ+PjtcclxuICBlZGl0Rm9ybTogUHJvcENvbnRyaWJ1dG9yQ2FsbGJhY2tzPEZvcm1Qcm9wTGlzdDxUPj47XHJcbn1cclxuIl19
|
|
@@ -16,7 +16,13 @@ export function generateFormFromProps(data) {
|
|
|
16
16
|
props.forEach(({ value: prop }) => {
|
|
17
17
|
const name = prop.name;
|
|
18
18
|
const isExtraProperty = prop.isExtra || name in extraProperties;
|
|
19
|
-
let value =
|
|
19
|
+
let value = undefined;
|
|
20
|
+
if (isExtraProperty) {
|
|
21
|
+
value = extraProperties[name];
|
|
22
|
+
}
|
|
23
|
+
else if (name in record) {
|
|
24
|
+
value = record[name];
|
|
25
|
+
}
|
|
20
26
|
if (typeof value === 'undefined')
|
|
21
27
|
value = prop.defaultValue;
|
|
22
28
|
if (value) {
|
|
@@ -46,4 +52,4 @@ export function generateFormFromProps(data) {
|
|
|
46
52
|
});
|
|
47
53
|
return form;
|
|
48
54
|
}
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1wcm9wcy51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9leHRlbnNpYmxlL3NyYy9saWIvdXRpbHMvZm9ybS1wcm9wcy51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWpGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBSXJFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRW5FLE1BQU0sVUFBVSxxQkFBcUIsQ0FBVSxJQUFpQjtJQUM5RCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUEsaUJBQW9CLENBQUEsQ0FBQyxDQUFDO0lBQzFELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUUzRCxNQUFNLElBQUksR0FBRyxJQUFJLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3RDLE1BQU0sU0FBUyxHQUFHLElBQUksZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDM0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxvQkFBb0IsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUVqRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQztJQUNqQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDakUsTUFBTSxLQUFLLEdBQW9CLFVBQVUsQ0FBQyxHQUFHLElBQUksV0FBVyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNwRixNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLENBQUM7SUFFM0QsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUU7UUFDaEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN2QixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksSUFBSSxlQUFlLENBQUM7UUFFaEUsSUFBSSxLQUFLLEdBQUcsU0FBUyxDQUFDO1FBRXRCLElBQUksZUFBZSxFQUFFLENBQUM7WUFDcEIsS0FBSyxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoQyxDQUFDO2FBQU0sSUFBSSxJQUFJLElBQUksTUFBTSxFQUFFLENBQUM7WUFDMUIsS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2QixDQUFDO1FBRUQsSUFBSSxPQUFPLEtBQUssS0FBSyxXQUFXO1lBQUUsS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFFNUQsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLElBQUksT0FBb0QsQ0FBQztZQUN6RCxRQUFRLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDbEI7b0JBQ0UsT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7b0JBQzVCLEtBQUssR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztvQkFDbEQsTUFBTTtnQkFDUjtvQkFDRSxPQUFPLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztvQkFDNUIsS0FBSyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO29CQUNsRCxNQUFNO2dCQUNSO29CQUNFLE9BQU8sR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO29CQUNoQyxLQUFLLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBUSxDQUFDLENBQUM7b0JBQ3pELE1BQU07Z0JBQ1I7b0JBQ0UsTUFBTTtZQUNWLENBQUM7UUFDSCxDQUFDO1FBRUQsTUFBTSxXQUFXLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxLQUFLLEVBQUU7WUFDaEQsZUFBZSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDO1lBQzNDLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztTQUNsQyxDQUFDLENBQUM7UUFFSCxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3JFLENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVW50eXBlZEZvcm1Db250cm9sLCBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBEYXRlVGltZUFkYXB0ZXIsIERhdGVBZGFwdGVyLCBUaW1lQWRhcHRlciB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcclxuXHJcbmltcG9ydCB7IEVYVFJBX1BST1BFUlRJRVNfS0VZIH0gZnJvbSAnLi4vY29uc3RhbnRzL2V4dHJhLXByb3BlcnRpZXMnO1xyXG5pbXBvcnQgeyBlUHJvcFR5cGUgfSBmcm9tICcuLi9lbnVtcy9wcm9wcy5lbnVtJztcclxuaW1wb3J0IHsgRm9ybVByb3BMaXN0IH0gZnJvbSAnLi4vbW9kZWxzL2Zvcm0tcHJvcHMnO1xyXG5pbXBvcnQgeyBQcm9wRGF0YSB9IGZyb20gJy4uL21vZGVscy9wcm9wcyc7XHJcbmltcG9ydCB7IEV4dGVuc2lvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZXh0ZW5zaW9ucy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRVhURU5TSU9OU19JREVOVElGSUVSIH0gZnJvbSAnLi4vdG9rZW5zL2V4dGVuc2lvbnMudG9rZW4nO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlRm9ybUZyb21Qcm9wczxSID0gYW55PihkYXRhOiBQcm9wRGF0YTxSPikge1xyXG4gIGNvbnN0IGV4dGVuc2lvbnMgPSBkYXRhLmdldEluamVjdGVkKEV4dGVuc2lvbnNTZXJ2aWNlPFI+KTtcclxuICBjb25zdCBpZGVudGlmaWVyID0gZGF0YS5nZXRJbmplY3RlZChFWFRFTlNJT05TX0lERU5USUZJRVIpO1xyXG5cclxuICBjb25zdCBmb3JtID0gbmV3IFVudHlwZWRGb3JtR3JvdXAoe30pO1xyXG4gIGNvbnN0IGV4dHJhRm9ybSA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHt9KTtcclxuICBmb3JtLmFkZENvbnRyb2woRVhUUkFfUFJPUEVSVElFU19LRVksIGV4dHJhRm9ybSk7XHJcblxyXG4gIGNvbnN0IHJlY29yZCA9IGRhdGEucmVjb3JkIHx8IHt9O1xyXG4gIGNvbnN0IHR5cGUgPSBKU09OLnN0cmluZ2lmeShyZWNvcmQpID09PSAne30nID8gJ2NyZWF0ZScgOiAnZWRpdCc7XHJcbiAgY29uc3QgcHJvcHM6IEZvcm1Qcm9wTGlzdDxSPiA9IGV4dGVuc2lvbnNbYCR7dHlwZX1Gb3JtUHJvcHNgXS5nZXQoaWRlbnRpZmllcikucHJvcHM7XHJcbiAgY29uc3QgZXh0cmFQcm9wZXJ0aWVzID0gcmVjb3JkW0VYVFJBX1BST1BFUlRJRVNfS0VZXSB8fCB7fTtcclxuXHJcbiAgcHJvcHMuZm9yRWFjaCgoeyB2YWx1ZTogcHJvcCB9KSA9PiB7XHJcbiAgICBjb25zdCBuYW1lID0gcHJvcC5uYW1lO1xyXG4gICAgY29uc3QgaXNFeHRyYVByb3BlcnR5ID0gcHJvcC5pc0V4dHJhIHx8IG5hbWUgaW4gZXh0cmFQcm9wZXJ0aWVzO1xyXG5cclxuICAgIGxldCB2YWx1ZSA9IHVuZGVmaW5lZDtcclxuXHJcbiAgICBpZiAoaXNFeHRyYVByb3BlcnR5KSB7XHJcbiAgICAgIHZhbHVlID0gZXh0cmFQcm9wZXJ0aWVzW25hbWVdO1xyXG4gICAgfSBlbHNlIGlmIChuYW1lIGluIHJlY29yZCkge1xyXG4gICAgICB2YWx1ZSA9IHJlY29yZFtuYW1lXTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJykgdmFsdWUgPSBwcm9wLmRlZmF1bHRWYWx1ZTtcclxuXHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgbGV0IGFkYXB0ZXI6IERhdGVBZGFwdGVyIHwgVGltZUFkYXB0ZXIgfCBEYXRlVGltZUFkYXB0ZXI7XHJcbiAgICAgIHN3aXRjaCAocHJvcC50eXBlKSB7XHJcbiAgICAgICAgY2FzZSBlUHJvcFR5cGUuRGF0ZTpcclxuICAgICAgICAgIGFkYXB0ZXIgPSBuZXcgRGF0ZUFkYXB0ZXIoKTtcclxuICAgICAgICAgIHZhbHVlID0gYWRhcHRlci50b01vZGVsKGFkYXB0ZXIuZnJvbU1vZGVsKHZhbHVlKSk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIGVQcm9wVHlwZS5UaW1lOlxyXG4gICAgICAgICAgYWRhcHRlciA9IG5ldyBUaW1lQWRhcHRlcigpO1xyXG4gICAgICAgICAgdmFsdWUgPSBhZGFwdGVyLnRvTW9kZWwoYWRhcHRlci5mcm9tTW9kZWwodmFsdWUpKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgZVByb3BUeXBlLkRhdGVUaW1lOlxyXG4gICAgICAgICAgYWRhcHRlciA9IG5ldyBEYXRlVGltZUFkYXB0ZXIoKTtcclxuICAgICAgICAgIHZhbHVlID0gYWRhcHRlci50b01vZGVsKGFkYXB0ZXIuZnJvbU1vZGVsKHZhbHVlKSBhcyBhbnkpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZm9ybUNvbnRyb2wgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHZhbHVlLCB7XHJcbiAgICAgIGFzeW5jVmFsaWRhdG9yczogcHJvcC5hc3luY1ZhbGlkYXRvcnMoZGF0YSksXHJcbiAgICAgIHZhbGlkYXRvcnM6IHByb3AudmFsaWRhdG9ycyhkYXRhKSxcclxuICAgIH0pO1xyXG5cclxuICAgIChpc0V4dHJhUHJvcGVydHkgPyBleHRyYUZvcm0gOiBmb3JtKS5hZGRDb250cm9sKG5hbWUsIGZvcm1Db250cm9sKTtcclxuICB9KTtcclxuXHJcbiAgcmV0dXJuIGZvcm07XHJcbn1cclxuIl19
|
|
@@ -11,4 +11,38 @@ export function mergeWithDefaultProps(extension, defaultProps, ...contributors)
|
|
|
11
11
|
contributors.forEach(contributor => (contributor[name] || []).forEach((callback) => props.addContributor(callback)));
|
|
12
12
|
});
|
|
13
13
|
}
|
|
14
|
-
|
|
14
|
+
export function checkPolicies(properties, configState, permissionService) {
|
|
15
|
+
const props = Object.entries(properties);
|
|
16
|
+
const checkPolicy = (policy) => {
|
|
17
|
+
const { permissions, globalFeatures, features } = policy;
|
|
18
|
+
const checks = [
|
|
19
|
+
{
|
|
20
|
+
items: permissions?.permissionNames,
|
|
21
|
+
requiresAll: permissions?.requiresAll,
|
|
22
|
+
check: (item) => permissionService.getGrantedPolicy(item),
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
items: globalFeatures?.features,
|
|
26
|
+
requiresAll: globalFeatures?.requiresAll,
|
|
27
|
+
check: (item) => configState.getGlobalFeatureIsEnabled(item),
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
items: features?.features,
|
|
31
|
+
requiresAll: features?.requiresAll,
|
|
32
|
+
check: (item) => configState.getFeatureIsEnabled(item),
|
|
33
|
+
},
|
|
34
|
+
];
|
|
35
|
+
return checks.every(({ items, requiresAll, check }) => {
|
|
36
|
+
if (!items?.length) {
|
|
37
|
+
return true;
|
|
38
|
+
}
|
|
39
|
+
return requiresAll ? items.every(check) : items.some(check);
|
|
40
|
+
});
|
|
41
|
+
};
|
|
42
|
+
props.forEach(([name, property]) => {
|
|
43
|
+
if (property.policy && !checkPolicy(property.policy)) {
|
|
44
|
+
delete properties[name];
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcHMudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS9zcmMvbGliL3V0aWxzL3Byb3BzLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQTBCckUsTUFBTSxVQUFVLGdDQUFnQyxDQUM5QyxJQUFZO0lBRVosT0FBTyxDQUFDLElBQUssRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFFLElBQUksQ0FBQyxNQUFpQyxDQUFDLG9CQUFvQixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUM1RixDQUFDO0FBRUQsTUFBTSxVQUFVLHFCQUFxQixDQUNuQyxTQUFZLEVBQ1osWUFBcUMsRUFDckMsR0FBRyxZQUFtRDtJQUV0RCxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQVksRUFBRSxFQUFFO1FBQ2pELE1BQU0sS0FBSyxHQUFxQixTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BELEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQzFCLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQyxRQUEwQyxFQUFFLEVBQUUsQ0FDbEUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDekMsQ0FBQztRQUNGLFlBQVksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FDakMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBc0MsRUFBRSxFQUFFLENBQzNFLEtBQUssQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQy9CLENBQ0YsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhLENBQzNCLFVBQXNELEVBQ3RELFdBQStCLEVBQy9CLGlCQUFvQztJQUVwQyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRXpDLE1BQU0sV0FBVyxHQUFHLENBQUMsTUFBYyxFQUFXLEVBQUU7UUFDOUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxDQUFDO1FBRXpELE1BQU0sTUFBTSxHQUFHO1lBQ2I7Z0JBQ0UsS0FBSyxFQUFFLFdBQVcsRUFBRSxlQUFlO2dCQUNuQyxXQUFXLEVBQUUsV0FBVyxFQUFFLFdBQVc7Z0JBQ3JDLEtBQUssRUFBRSxDQUFDLElBQVksRUFBRSxFQUFFLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDO2FBQ2xFO1lBQ0Q7Z0JBQ0UsS0FBSyxFQUFFLGNBQWMsRUFBRSxRQUFRO2dCQUMvQixXQUFXLEVBQUUsY0FBYyxFQUFFLFdBQVc7Z0JBQ3hDLEtBQUssRUFBRSxDQUFDLElBQVksRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQzthQUNyRTtZQUNEO2dCQUNFLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUTtnQkFDekIsV0FBVyxFQUFFLFFBQVEsRUFBRSxXQUFXO2dCQUNsQyxLQUFLLEVBQUUsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUM7YUFDL0Q7U0FDRixDQUFDO1FBRUYsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDcEQsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztnQkFDbkIsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDO1lBRUQsT0FBTyxXQUFXLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7SUFFRixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRTtRQUNqQyxJQUFJLFFBQVEsQ0FBQyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDckQsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUIsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbmZpZ1N0YXRlU2VydmljZSwgUGVybWlzc2lvblNlcnZpY2UgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBFWFRSQV9QUk9QRVJUSUVTX0tFWSB9IGZyb20gJy4uL2NvbnN0YW50cy9leHRyYS1wcm9wZXJ0aWVzJztcclxuaW1wb3J0IHtcclxuICBFbnRpdHlQcm9wQ29udHJpYnV0b3JDYWxsYmFja3MsXHJcbiAgRW50aXR5UHJvcERlZmF1bHRzLFxyXG4gIEVudGl0eVByb3BzLFxyXG4gIEVudGl0eVByb3BzRmFjdG9yeSxcclxufSBmcm9tICcuLi9tb2RlbHMvZW50aXR5LXByb3BzJztcclxuaW1wb3J0IHtcclxuICBDcmVhdGVGb3JtUHJvcENvbnRyaWJ1dG9yQ2FsbGJhY2tzLFxyXG4gIENyZWF0ZUZvcm1Qcm9wRGVmYXVsdHMsXHJcbiAgQ3JlYXRlRm9ybVByb3BzRmFjdG9yeSxcclxuICBFZGl0Rm9ybVByb3BDb250cmlidXRvckNhbGxiYWNrcyxcclxuICBFZGl0Rm9ybVByb3BEZWZhdWx0cyxcclxuICBFZGl0Rm9ybVByb3BzRmFjdG9yeSxcclxuICBGb3JtUHJvcHMsXHJcbn0gZnJvbSAnLi4vbW9kZWxzL2Zvcm0tcHJvcHMnO1xyXG5pbXBvcnQge1xyXG4gIEluZmVycmVkUHJvcCxcclxuICBQcm9wQ2FsbGJhY2ssXHJcbiAgUHJvcENvbnRyaWJ1dG9yQ2FsbGJhY2ssXHJcbiAgUHJvcExpc3QsXHJcbiAgUHJvcHNGYWN0b3J5LFxyXG59IGZyb20gJy4uL21vZGVscy9wcm9wcyc7XHJcbmltcG9ydCB7IFBvbGljeSB9IGZyb20gJy4uL21vZGVscy9pbnRlcm5hbC9vYmplY3QtZXh0ZW5zaW9ucyc7XHJcbmltcG9ydCB7IE9iamVjdEV4dGVuc2lvbnMgfSBmcm9tICcuLi9tb2RlbHMvb2JqZWN0LWV4dGVuc2lvbnMnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUV4dHJhUHJvcGVydHlWYWx1ZVJlc29sdmVyPFQ+KFxyXG4gIG5hbWU6IHN0cmluZyxcclxuKTogUHJvcENhbGxiYWNrPFQsIE9ic2VydmFibGU8YW55Pj4ge1xyXG4gIHJldHVybiAoZGF0YT8pID0+IG9mKChkYXRhLnJlY29yZCBhcyB7IFtrZXk6IHN0cmluZ106IGFueSB9KVtFWFRSQV9QUk9QRVJUSUVTX0tFWV1bbmFtZV0pO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbWVyZ2VXaXRoRGVmYXVsdFByb3BzPEYgZXh0ZW5kcyBQcm9wc0ZhY3Rvcnk8YW55Pj4oXHJcbiAgZXh0ZW5zaW9uOiBGLFxyXG4gIGRlZmF1bHRQcm9wczogSW5mZXJyZWRQcm9wRGVmYXVsdHM8Rj4sXHJcbiAgLi4uY29udHJpYnV0b3JzOiBJbmZlcnJlZFByb3BDb250cmlidXRvckNhbGxiYWNrczxGPltdXHJcbikge1xyXG4gIE9iamVjdC5rZXlzKGRlZmF1bHRQcm9wcykuZm9yRWFjaCgobmFtZTogc3RyaW5nKSA9PiB7XHJcbiAgICBjb25zdCBwcm9wczogSW5mZXJyZWRQcm9wczxGPiA9IGV4dGVuc2lvbi5nZXQobmFtZSk7XHJcbiAgICBwcm9wcy5jbGVhckNvbnRyaWJ1dG9ycygpO1xyXG4gICAgcHJvcHMuYWRkQ29udHJpYnV0b3IoKHByb3BMaXN0OiBQcm9wTGlzdDxhbnksIEluZmVycmVkUHJvcDxhbnk+PikgPT5cclxuICAgICAgcHJvcExpc3QuYWRkTWFueVRhaWwoZGVmYXVsdFByb3BzW25hbWVdKSxcclxuICAgICk7XHJcbiAgICBjb250cmlidXRvcnMuZm9yRWFjaChjb250cmlidXRvciA9PlxyXG4gICAgICAoY29udHJpYnV0b3JbbmFtZV0gfHwgW10pLmZvckVhY2goKGNhbGxiYWNrOiBQcm9wQ29udHJpYnV0b3JDYWxsYmFjazxhbnk+KSA9PlxyXG4gICAgICAgIHByb3BzLmFkZENvbnRyaWJ1dG9yKGNhbGxiYWNrKSxcclxuICAgICAgKSxcclxuICAgICk7XHJcbiAgfSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjaGVja1BvbGljaWVzKFxyXG4gIHByb3BlcnRpZXM6IE9iamVjdEV4dGVuc2lvbnMuRW50aXR5RXh0ZW5zaW9uUHJvcGVydGllcyxcclxuICBjb25maWdTdGF0ZTogQ29uZmlnU3RhdGVTZXJ2aWNlLFxyXG4gIHBlcm1pc3Npb25TZXJ2aWNlOiBQZXJtaXNzaW9uU2VydmljZSxcclxuKSB7XHJcbiAgY29uc3QgcHJvcHMgPSBPYmplY3QuZW50cmllcyhwcm9wZXJ0aWVzKTtcclxuXHJcbiAgY29uc3QgY2hlY2tQb2xpY3kgPSAocG9saWN5OiBQb2xpY3kpOiBib29sZWFuID0+IHtcclxuICAgIGNvbnN0IHsgcGVybWlzc2lvbnMsIGdsb2JhbEZlYXR1cmVzLCBmZWF0dXJlcyB9ID0gcG9saWN5O1xyXG5cclxuICAgIGNvbnN0IGNoZWNrcyA9IFtcclxuICAgICAge1xyXG4gICAgICAgIGl0ZW1zOiBwZXJtaXNzaW9ucz8ucGVybWlzc2lvbk5hbWVzLFxyXG4gICAgICAgIHJlcXVpcmVzQWxsOiBwZXJtaXNzaW9ucz8ucmVxdWlyZXNBbGwsXHJcbiAgICAgICAgY2hlY2s6IChpdGVtOiBzdHJpbmcpID0+IHBlcm1pc3Npb25TZXJ2aWNlLmdldEdyYW50ZWRQb2xpY3koaXRlbSksXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpdGVtczogZ2xvYmFsRmVhdHVyZXM/LmZlYXR1cmVzLFxyXG4gICAgICAgIHJlcXVpcmVzQWxsOiBnbG9iYWxGZWF0dXJlcz8ucmVxdWlyZXNBbGwsXHJcbiAgICAgICAgY2hlY2s6IChpdGVtOiBzdHJpbmcpID0+IGNvbmZpZ1N0YXRlLmdldEdsb2JhbEZlYXR1cmVJc0VuYWJsZWQoaXRlbSksXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpdGVtczogZmVhdHVyZXM/LmZlYXR1cmVzLFxyXG4gICAgICAgIHJlcXVpcmVzQWxsOiBmZWF0dXJlcz8ucmVxdWlyZXNBbGwsXHJcbiAgICAgICAgY2hlY2s6IChpdGVtOiBzdHJpbmcpID0+IGNvbmZpZ1N0YXRlLmdldEZlYXR1cmVJc0VuYWJsZWQoaXRlbSksXHJcbiAgICAgIH0sXHJcbiAgICBdO1xyXG5cclxuICAgIHJldHVybiBjaGVja3MuZXZlcnkoKHsgaXRlbXMsIHJlcXVpcmVzQWxsLCBjaGVjayB9KSA9PiB7XHJcbiAgICAgIGlmICghaXRlbXM/Lmxlbmd0aCkge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gcmVxdWlyZXNBbGwgPyBpdGVtcy5ldmVyeShjaGVjaykgOiBpdGVtcy5zb21lKGNoZWNrKTtcclxuICAgIH0pO1xyXG4gIH07XHJcblxyXG4gIHByb3BzLmZvckVhY2goKFtuYW1lLCBwcm9wZXJ0eV0pID0+IHtcclxuICAgIGlmIChwcm9wZXJ0eS5wb2xpY3kgJiYgIWNoZWNrUG9saWN5KHByb3BlcnR5LnBvbGljeSkpIHtcclxuICAgICAgZGVsZXRlIHByb3BlcnRpZXNbbmFtZV07XHJcbiAgICB9XHJcbiAgfSk7XHJcbn1cclxuXHJcbnR5cGUgSW5mZXJyZWRQcm9wRGVmYXVsdHM8Rj4gPVxyXG4gIEYgZXh0ZW5kcyBFbnRpdHlQcm9wc0ZhY3Rvcnk8aW5mZXIgUkU+XHJcbiAgICA/IEVudGl0eVByb3BEZWZhdWx0czxSRT5cclxuICAgIDogRiBleHRlbmRzIENyZWF0ZUZvcm1Qcm9wc0ZhY3Rvcnk8aW5mZXIgUkNGPlxyXG4gICAgICA/IENyZWF0ZUZvcm1Qcm9wRGVmYXVsdHM8UkNGPlxyXG4gICAgICA6IEYgZXh0ZW5kcyBFZGl0Rm9ybVByb3BzRmFjdG9yeTxpbmZlciBSRUY+XHJcbiAgICAgICAgPyBFZGl0Rm9ybVByb3BEZWZhdWx0czxSRUY+XHJcbiAgICAgICAgOiBuZXZlcjtcclxuXHJcbnR5cGUgSW5mZXJyZWRQcm9wQ29udHJpYnV0b3JDYWxsYmFja3M8Rj4gPVxyXG4gIEYgZXh0ZW5kcyBFbnRpdHlQcm9wc0ZhY3Rvcnk8aW5mZXIgUkU+XHJcbiAgICA/IEVudGl0eVByb3BDb250cmlidXRvckNhbGxiYWNrczxSRT5cclxuICAgIDogRiBleHRlbmRzIENyZWF0ZUZvcm1Qcm9wc0ZhY3Rvcnk8aW5mZXIgUkNGPlxyXG4gICAgICA/IENyZWF0ZUZvcm1Qcm9wQ29udHJpYnV0b3JDYWxsYmFja3M8UkNGPlxyXG4gICAgICA6IEYgZXh0ZW5kcyBFZGl0Rm9ybVByb3BzRmFjdG9yeTxpbmZlciBSRUY+XHJcbiAgICAgICAgPyBFZGl0Rm9ybVByb3BDb250cmlidXRvckNhbGxiYWNrczxSRUY+XHJcbiAgICAgICAgOiBuZXZlcjtcclxuXHJcbnR5cGUgSW5mZXJyZWRQcm9wczxGPiA9XHJcbiAgRiBleHRlbmRzIEVudGl0eVByb3BzRmFjdG9yeTxpbmZlciBSRT5cclxuICAgID8gRW50aXR5UHJvcHM8UkU+XHJcbiAgICA6IEYgZXh0ZW5kcyBDcmVhdGVGb3JtUHJvcHNGYWN0b3J5PGluZmVyIFJDRj5cclxuICAgICAgPyBGb3JtUHJvcHM8UkNGPlxyXG4gICAgICA6IEYgZXh0ZW5kcyBFZGl0Rm9ybVByb3BzRmFjdG9yeTxpbmZlciBSRUY+XHJcbiAgICAgICAgPyBGb3JtUHJvcHM8UkVGPlxyXG4gICAgICAgIDogbmV2ZXI7XHJcbiJdfQ==
|
|
@@ -4,7 +4,7 @@ import { EntityProp } from '../models/entity-props';
|
|
|
4
4
|
import { FormProp } from '../models/form-props';
|
|
5
5
|
import { createEnum, createEnumOptions, createEnumValueResolver } from './enum.util';
|
|
6
6
|
import { createDisplayNameLocalizationPipeKeyGenerator } from './localization.util';
|
|
7
|
-
import { createExtraPropertyValueResolver } from './props.util';
|
|
7
|
+
import { checkPolicies, createExtraPropertyValueResolver } from './props.util';
|
|
8
8
|
import { createTypeaheadDisplayNameGenerator, createTypeaheadOptions, getTypeaheadType, hasTypeaheadTextSuffix, } from './typeahead.util';
|
|
9
9
|
import { getValidatorsFromProperty } from './validation.util';
|
|
10
10
|
function selectObjectExtensions(configState) {
|
|
@@ -32,7 +32,7 @@ export function getObjectExtensionEntitiesFromStore(configState, moduleKey) {
|
|
|
32
32
|
.entities;
|
|
33
33
|
}), map(entities => (isUndefined(entities) ? {} : entities)), filter(Boolean), take(1));
|
|
34
34
|
}
|
|
35
|
-
export function mapEntitiesToContributors(configState, resource) {
|
|
35
|
+
export function mapEntitiesToContributors(configState, permissionService, resource) {
|
|
36
36
|
return pipe(switchMap((entities) => zip(selectLocalization(configState), selectEnums(configState)).pipe(map(([localization, enums]) => {
|
|
37
37
|
const generateDisplayName = createDisplayNameLocalizationPipeKeyGenerator(localization);
|
|
38
38
|
return Object.keys(entities).reduce((acc, key) => {
|
|
@@ -40,11 +40,14 @@ export function mapEntitiesToContributors(configState, resource) {
|
|
|
40
40
|
acc.createForm[key] = [];
|
|
41
41
|
acc.editForm[key] = [];
|
|
42
42
|
const entity = entities[key];
|
|
43
|
-
if (!entity)
|
|
43
|
+
if (!entity) {
|
|
44
44
|
return acc;
|
|
45
|
+
}
|
|
45
46
|
const properties = entity.properties;
|
|
46
|
-
if (!properties)
|
|
47
|
+
if (!properties) {
|
|
47
48
|
return acc;
|
|
49
|
+
}
|
|
50
|
+
checkPolicies(properties, configState, permissionService);
|
|
48
51
|
const mapPropertiesToContributors = createPropertiesToContributorsMapper(generateDisplayName, resource, enums);
|
|
49
52
|
return mapPropertiesToContributors(properties, acc, key);
|
|
50
53
|
}, {
|
|
@@ -123,4 +126,4 @@ function getTypeFromProperty(property) {
|
|
|
123
126
|
function isUndefined(obj) {
|
|
124
127
|
return typeof obj === 'undefined';
|
|
125
128
|
}
|
|
126
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS9zcmMvbGliL3V0aWxzL3N0YXRlLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUEsT0FBTyxFQUFjLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTlELE9BQU8sRUFBRSxVQUFVLEVBQWtCLE1BQU0sd0JBQXdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFFBQVEsRUFBZ0IsTUFBTSxzQkFBc0IsQ0FBQztBQUc5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3JGLE9BQU8sRUFBRSw2Q0FBNkMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNoRSxPQUFPLEVBQ0wsbUNBQW1DLEVBQ25DLHNCQUFzQixFQUN0QixnQkFBZ0IsRUFDaEIsc0JBQXNCLEdBQ3ZCLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFOUQsU0FBUyxzQkFBc0IsQ0FBQyxXQUErQjtJQUM3RCxPQUFPLFdBQVcsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQztBQUNqRCxDQUFDO0FBRUQsU0FBUyxrQkFBa0IsQ0FDekIsV0FBK0I7SUFFL0IsT0FBTyxXQUFXLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBQzdDLENBQUM7QUFFRCxTQUFTLFdBQVcsQ0FDbEIsV0FBK0I7SUFFL0IsT0FBTyxzQkFBc0IsQ0FBQyxXQUFXLENBQUMsQ0FB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LENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7cUJBQy9ELElBQUksSUFBSSwwQ0FBd0I7b0JBQUUsT0FBTyxHQUFHLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUVoRixNQUFNLFFBQVEsR0FBRyxJQUFJLFFBQVEsQ0FBQztvQkFDNUIsSUFBSTtvQkFDSixJQUFJLEVBQUUsUUFBUTtvQkFDZCxXQUFXO29CQUNYLE9BQU87b0JBQ1AsWUFBWTtvQkFDWixVQUFVO29CQUNWLE9BQU87b0JBQ1AsUUFBUTtpQkFDVCxDQUFDLENBQUM7Z0JBRUgsTUFBTSxlQUFlLEdBQUcsQ0FBQyxRQUF5QixFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUVsRixJQUFJLGNBQWM7b0JBQUUsWUFBWSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7Z0JBQ3ZFLElBQUksWUFBWTtvQkFBRSxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUNyRSxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLFlBQVksQ0FBQztJQUN0QixDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxtQkFBbUIsQ0FBQyxRQUErQztJQUMxRSxPQUFPLFFBQVEsRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQXdCLENBQUM7QUFDekUsQ0FBQztBQUVELFNBQVMsV0FBVyxDQUFDLEdBQVE7SUFDM0IsT0FBTyxPQUFPLEdBQUcsS0FBSyxXQUFXLENBQUM7QUFDcEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQUJQLFxyXG4gIEFwcGxpY2F0aW9uTG9jYWxpemF0aW9uQ29uZmlndXJhdGlvbkR0byxcclxuICBDb25maWdTdGF0ZVNlcnZpY2UsXHJcbiAgRXh0ZW5zaW9uRW51bUR0byxcclxuICBFeHRlbnNpb25Qcm9wZXJ0eVVpTG9va3VwRHRvLFxyXG4gIE9iamVjdEV4dGVuc2lvbnNEdG8sXHJcbn0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgcGlwZSwgemlwIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGZpbHRlciwgbWFwLCBzd2l0Y2hNYXAsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IGVQcm9wVHlwZSB9IGZyb20gJy4uL2VudW1zL3Byb3BzLmVudW0nO1xyXG5pbXBvcnQgeyBFbnRpdHlQcm9wLCBFbnRpdHlQcm9wTGlzdCB9IGZyb20gJy4uL21vZGVscy9lbnRpdHktcHJvcHMnO1xyXG5pbXBvcnQgeyBGb3JtUHJvcCwgRm9ybVByb3BMaXN0IH0gZnJvbSAnLi4vbW9kZWxzL2Zvcm0tcHJvcHMnO1xyXG5pbXBvcnQgeyBPYmplY3RFeHRlbnNpb25zIH0gZnJvbSAnLi4vbW9kZWxzL29iamVjdC1leHRlbnNpb25zJztcclxuaW1wb3J0IHsgUHJvcENhbGxiYWNrIH0gZnJvbSAnLi4vbW9kZWxzL3Byb3BzJztcclxuaW1wb3J0IHsgY3JlYXRlRW51bSwgY3JlYXRlRW51bU9wdGlvbnMsIGNyZWF0ZUVudW1WYWx1ZVJlc29sdmVyIH0gZnJvbSAnLi9lbnVtLnV0aWwnO1xyXG5pbXBvcnQgeyBjcmVhdGVEaXNwbGF5TmFtZUxvY2FsaXphdGlvblBpcGVLZXlHZW5lcmF0b3IgfSBmcm9tICcuL2xvY2FsaXphdGlvbi51dGlsJztcclxuaW1wb3J0IHsgY3JlYXRlRXh0cmFQcm9wZXJ0eVZhbHVlUmVzb2x2ZXIgfSBmcm9tICcuL3Byb3BzLnV0aWwnO1xyXG5pbXBvcnQge1xyXG4gIGNyZWF0ZVR5cGVhaGVhZERpc3BsYXlOYW1lR2VuZXJhdG9yLFxyXG4gIGNyZWF0ZVR5cGVhaGVhZE9wdGlvbnMsXHJcbiAgZ2V0VHlwZWFoZWFkVHlwZSxcclxuICBoYXNUeXBlYWhlYWRUZXh0U3VmZml4LFxyXG59IGZyb20gJy4vdHlwZWFoZWFkLnV0aWwnO1xyXG5pbXBvcnQgeyBnZXRWYWxpZGF0b3JzRnJvbVByb3BlcnR5IH0gZnJvbSAnLi92YWxpZGF0aW9uLnV0aWwnO1xyXG5cclxuZnVuY3Rpb24gc2VsZWN0T2JqZWN0RXh0ZW5zaW9ucyhjb25maWdTdGF0ZTogQ29uZmlnU3RhdGVTZXJ2aWNlKTogT2JzZXJ2YWJsZTxPYmplY3RFeHRlbnNpb25zRHRvPiB7XHJcbiAgcmV0dXJuIGNvbmZpZ1N0YXRlLmdldE9uZSQoJ29iamVjdEV4dGVuc2lvbnMnKTtcclxufVxyXG5cclxuZnVuY3Rpb24gc2VsZWN0TG9jYWxpemF0aW9uKFxyXG4gIGNvbmZpZ1N0YXRlOiBDb25maWdTdGF0ZVNlcnZpY2UsXHJcbik6IE9ic2VydmFibGU8QXBwbGljYXRpb25Mb2NhbGl6YXRpb25Db25maWd1cmF0aW9uRHRvPiB7XHJcbiAgcmV0dXJuIGNvbmZpZ1N0YXRlLmdldE9uZSQoJ2xvY2FsaXphdGlvbicpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBzZWxlY3RFbnVtcyhcclxuICBjb25maWdTdGF0ZTogQ29uZmlnU3RhdGVTZXJ2aWNlLFxyXG4pOiBPYnNlcnZhYmxlPFJlY29yZDxzdHJpbmcsIEV4dGVuc2lvbkVudW1EdG8+PiB7XHJcbiAgcmV0dXJuIHNlbGVjdE9iamVjdEV4dGVuc2lvbnMoY29uZmlnU3RhdGUpLnBpcGUoXHJcbiAgICBtYXAoKGV4dGVuc2lvbnM6IE9iamVjdEV4dGVuc2lvbnNEdG8pID0+XHJcbiAgICAgIE9iamVjdC5rZXlzKGV4dGVuc2lvbnMuZW51bXMpLnJlZHVjZSgoYWNjLCBrZXkpID0+IHtcclxuICAgICAgICBjb25zdCB7IGZpZWxkcywgbG9jYWxpemF0aW9uUmVzb3VyY2UgfSA9IGV4dGVuc2lvbnMuZW51bXNba2V5XTtcclxuICAgICAgICBhY2Nba2V5XSA9IHtcclxuICAgICAgICAgIGZpZWxkcyxcclxuICAgICAgICAgIGxvY2FsaXphdGlvblJlc291cmNlLFxyXG4gICAgICAgICAgdHJhbnNmb3JtZWQ6IGNyZWF0ZUVudW0oZmllbGRzKSxcclxuICAgICAgICB9O1xyXG4gICAgICAgIHJldHVybiBhY2M7XHJcbiAgICAgIH0sIHt9IGFzIFJlY29yZDxzdHJpbmcsIE9iamVjdEV4dGVuc2lvbnMuRXh0ZW5zaW9uRW51bUR0bz4pLFxyXG4gICAgKSxcclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0T2JqZWN0RXh0ZW5zaW9uRW50aXRpZXNGcm9tU3RvcmUoXHJcbiAgY29uZmlnU3RhdGU6IENvbmZpZ1N0YXRlU2VydmljZSxcclxuICBtb2R1bGVLZXk6IHN0cmluZyxcclxuKSB7XHJcbiAgcmV0dXJuIHNlbGVjdE9iamVjdEV4dGVuc2lvbnMoY29uZmlnU3RhdGUpLnBpcGUoXHJcbiAgICBtYXAoZXh0ZW5zaW9ucyA9PiB7XHJcbiAgICAgIGlmICghZXh0ZW5zaW9ucykgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgICByZXR1cm4gKGV4dGVuc2lvbnMubW9kdWxlc1ttb2R1bGVLZXldIHx8ICh7fSBhcyBPYmplY3RFeHRlbnNpb25zLk1vZHVsZUV4dGVuc2lvbkR0bykpXHJcbiAgICAgICAgLmVudGl0aWVzO1xyXG4gICAgfSksXHJcbiAgICBtYXAoZW50aXRpZXMgPT4gKGlzVW5kZWZpbmVkKGVudGl0aWVzKSA/ICh7fSBhcyBhbnkpIDogZW50aXRpZXMpKSxcclxuICAgIGZpbHRlcjxPYmplY3RFeHRlbnNpb25zLkVudGl0eUV4dGVuc2lvbnM+KEJvb2xlYW4pLFxyXG4gICAgdGFrZSgxKSxcclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbWFwRW50aXRpZXNUb0NvbnRyaWJ1dG9yczxUID0gYW55PihcclxuICBjb25maWdTdGF0ZTogQ29uZmlnU3RhdGVTZXJ2aWNlLFxyXG4gIHJlc291cmNlOiBzdHJpbmcsXHJcbikge1xyXG4gIHJldHVybiBwaXBlKFxyXG4gICAgc3dpdGNoTWFwKChlbnRpdGllczogYW55KSA9PlxyXG4gICAgICB6aXAoc2VsZWN0TG9jYWxpemF0aW9uKGNvbmZpZ1N0YXRlKSwgc2VsZWN0RW51bXMoY29uZmlnU3RhdGUpKS5waXBlKFxyXG4gICAgICAgIG1hcCgoW2xvY2FsaXphdGlvbiwgZW51bXNdKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBnZW5lcmF0ZURpc3BsYXlOYW1lID0gY3JlYXRlRGlzcGxheU5hbWVMb2NhbGl6YXRpb25QaXBlS2V5R2VuZXJhdG9yKGxvY2FsaXphdGlvbik7XHJcblxyXG4gICAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKGVudGl0aWVzKS5yZWR1Y2UoXHJcbiAgICAgICAgICAgIChhY2MsIGtleToga2V5b2YgT2JqZWN0RXh0ZW5zaW9ucy5FbnRpdHlFeHRlbnNpb25zKSA9PiB7XHJcbiAgICAgICAgICAgICAgYWNjLnByb3Bba2V5XSA9IFtdO1xyXG4gICAgICAgICAgICAgIGFjYy5jcmVhdGVGb3JtW2tleV0gPSBbXTtcclxuICAgICAgICAgICAgICBhY2MuZWRpdEZvcm1ba2V5XSA9IFtdO1xyXG5cclxuICAgICAgICAgICAgICBjb25zdCBlbnRpdHk6IE9iamVjdEV4dGVuc2lvbnMuRW50aXR5RXh0ZW5zaW9uRHRvID0gZW50aXRpZXNba2V5XTtcclxuICAgICAgICAgICAgICBpZiAoIWVudGl0eSkgcmV0dXJuIGFjYztcclxuXHJcbiAgICAgICAgICAgICAgY29uc3QgcHJvcGVydGllcyA9IGVudGl0eS5wcm9wZXJ0aWVzO1xyXG4gICAgICAgICAgICAgIGlmICghcHJvcGVydGllcykgcmV0dXJuIGFjYztcclxuXHJcbiAgICAgICAgICAgICAgY29uc3QgbWFwUHJvcGVydGllc1RvQ29udHJpYnV0b3JzID0gY3JlYXRlUHJvcGVydGllc1RvQ29udHJpYnV0b3JzTWFwcGVyPFQ+KFxyXG4gICAgICAgICAgICAgICAgZ2VuZXJhdGVEaXNwbGF5TmFtZSxcclxuICAgICAgICAgICAgICAgIHJlc291cmNlLFxyXG4gICAgICAgICAgICAgICAgZW51bXMsXHJcbiAgICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgICAgcmV0dXJuIG1hcFByb3BlcnRpZXNUb0NvbnRyaWJ1dG9ycyhwcm9wZXJ0aWVzLCBhY2MsIGtleSk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBwcm9wOiB7fSxcclxuICAgICAgICAgICAgICBjcmVhdGVGb3JtOiB7fSxcclxuICAgICAgICAgICAgICBlZGl0Rm9ybToge30sXHJcbiAgICAgICAgICAgIH0gYXMgT2JqZWN0RXh0ZW5zaW9ucy5Qcm9wQ29udHJpYnV0b3JzLFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9KSxcclxuICAgICAgKSxcclxuICAgICksXHJcbiAgICB0YWtlKDEpLFxyXG4gICk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNyZWF0ZVByb3BlcnRpZXNUb0NvbnRyaWJ1dG9yc01hcHBlcjxUID0gYW55PihcclxuICBnZW5lcmF0ZURpc3BsYXlOYW1lOiBPYmplY3RFeHRlbnNpb25zLkRpc3BsYXlOYW1lR2VuZXJhdG9yRm4sXHJcbiAgcmVzb3VyY2U6IHN0cmluZyxcclxuICBlbnVtczogUmVjb3JkPHN0cmluZywgT2JqZWN0RXh0ZW5zaW9ucy5FeHRlbnNpb25FbnVtRHRvPixcclxuKSB7XHJcbiAgcmV0dXJuIChcclxuICAgIHByb3BlcnRpZXM6IE9iamVjdEV4dGVuc2lvbnMuRW50aXR5RXh0ZW5zaW9uUHJvcGVydGllcyxcclxuICAgIGNvbnRyaWJ1dG9yczogT2JqZWN0RXh0ZW5zaW9ucy5Qcm9wQ29udHJpYnV0b3JzPFQ+LFxyXG4gICAga2V5OiBzdHJpbmcsXHJcbiAgKSA9PiB7XHJcbiAgICBjb25zdCBpc0V4dHJhID0gdHJ1ZTtcclxuICAgIGNvbnN0IGdlbmVyYXRlVHlwZWFoZWFkRGlzcGxheU5hbWUgPSBjcmVhdGVUeXBlYWhlYWREaXNwbGF5TmFtZUdlbmVyYXRvcihcclxuICAgICAgZ2VuZXJhdGVEaXNwbGF5TmFtZSxcclxuICAgICAgcHJvcGVydGllcyxcclxuICAgICk7XHJcblxyXG4gICAgT2JqZWN0LmtleXMocHJvcGVydGllcykuZm9yRWFjaCgobmFtZTogc3RyaW5nKSA9PiB7XHJcbiAgICAgIGNvbnN0IHByb3BlcnR5ID0gcHJvcGVydGllc1tuYW1lXTtcclxuICAgICAgY29uc3QgcHJvcE5hbWUgPSBuYW1lO1xyXG4gICAgICBjb25zdCBsb29rdXAgPSBwcm9wZXJ0eS51aS5sb29rdXAgfHwgKHt9IGFzIEV4dGVuc2lvblByb3BlcnR5VWlMb29rdXBEdG8pO1xyXG4gICAgICBjb25zdCB0eXBlID0gZ2V0VHlwZWFoZWFkVHlwZShsb29rdXAsIG5hbWUpIHx8IGdldFR5cGVGcm9tUHJvcGVydHkocHJvcGVydHkpO1xyXG4gICAgICBjb25zdCBnZW5lcmF0ZUROID0gaGFzVHlwZWFoZWFkVGV4dFN1ZmZpeChuYW1lKVxyXG4gICAgICAgID8gZ2VuZXJhdGVUeXBlYWhlYWREaXNwbGF5TmFtZVxyXG4gICAgICAgIDogZ2VuZXJhdGVEaXNwbGF5TmFtZTtcclxuICAgICAgY29uc3QgZGlzcGxheU5hbWUgPSBnZW5lcmF0ZUROKHByb3BlcnR5LmRpc3BsYXlOYW1lLCB7IG5hbWUsIHJlc291cmNlIH0pO1xyXG5cclxuICAgICAgaWYgKHByb3BlcnR5LnVpLm9uVGFibGUuaXNWaXNpYmxlKSB7XHJcbiAgICAgICAgY29uc3Qgc29ydGFibGUgPSBCb29sZWFuKHByb3BlcnR5LnVpLm9uVGFibGUuaXNTb3J0YWJsZSk7XHJcbiAgICAgICAgY29uc3QgY29sdW1uV2lkdGggPSB0eXBlID09PSBlUHJvcFR5cGUuQm9vbGVhbiA/IDE1MCA6IDI1MDtcclxuICAgICAgICBjb25zdCB2YWx1ZVJlc29sdmVyOiBQcm9wQ2FsbGJhY2s8VCwgT2JzZXJ2YWJsZTxhbnk+PiA9IHR5cGUgPT09IGVQcm9wVHlwZS5FbnVtICYmXHJcbiAgICAgICAgcHJvcGVydHkudHlwZVxyXG4gICAgICAgICAgPyBjcmVhdGVFbnVtVmFsdWVSZXNvbHZlcihwcm9wZXJ0eS50eXBlLCBlbnVtc1twcm9wZXJ0eS50eXBlXSwgcHJvcE5hbWUpXHJcbiAgICAgICAgICA6IGNyZWF0ZUV4dHJhUHJvcGVydHlWYWx1ZVJlc29sdmVyPFQ+KHByb3BOYW1lKTtcclxuXHJcbiAgICAgICAgY29uc3QgZW50aXR5UHJvcCA9IG5ldyBFbnRpdHlQcm9wPFQ+KHtcclxuICAgICAgICAgIHR5cGUsXHJcbiAgICAgICAgICBuYW1lOiBwcm9wTmFtZSxcclxuICAgICAgICAgIGRpc3BsYXlOYW1lLFxyXG4gICAgICAgICAgc29ydGFibGUsXHJcbiAgICAgICAgICBjb2x1bW5XaWR0aCxcclxuICAgICAgICAgIHZhbHVlUmVzb2x2ZXIsXHJcbiAgICAgICAgICBpc0V4dHJhLFxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBjb25zdCBjb250cmlidXRvciA9IChwcm9wTGlzdDogRW50aXR5UHJvcExpc3Q8VD4pID0+IHByb3BMaXN0LmFkZFRhaWwoZW50aXR5UHJvcCk7XHJcbiAgICAgICAgY29udHJpYnV0b3JzLnByb3Bba2V5XS5wdXNoKGNvbnRyaWJ1dG9yKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgY29uc3QgaXNPbkNyZWF0ZUZvcm0gPSBwcm9wZXJ0eS51aS5vbkNyZWF0ZUZvcm0uaXNWaXNpYmxlO1xyXG4gICAgICBjb25zdCBpc09uRWRpdEZvcm0gPSBwcm9wZXJ0eS51aS5vbkVkaXRGb3JtLmlzVmlzaWJsZTtcclxuXHJcbiAgICAgIGlmIChpc09uQ3JlYXRlRm9ybSB8fCBpc09uRWRpdEZvcm0pIHtcclxuICAgICAgICBjb25zdCBkZWZhdWx0VmFsdWUgPSBwcm9wZXJ0eS5kZWZhdWx0VmFsdWU7XHJcbiAgICAgICAgY29uc3QgZm9ybVRleHQgPSBwcm9wZXJ0eS5mb3JtVGV4dDtcclxuICAgICAgICBjb25zdCB2YWxpZGF0b3JzID0gKCkgPT4gZ2V0VmFsaWRhdG9yc0Zyb21Qcm9wZXJ0eShwcm9wZXJ0eSk7XHJcbiAgICAgICAgbGV0IG9wdGlvbnM6IFByb3BDYWxsYmFjazxhbnksIE9ic2VydmFibGU8QUJQLk9wdGlvbjxhbnk+W10+PiB8IHVuZGVmaW5lZDtcclxuICAgICAgICBpZiAodHlwZSA9PT0gZVByb3BUeXBlLkVudW0pXHJcbiAgICAgICAgICBvcHRpb25zID0gY3JlYXRlRW51bU9wdGlvbnMocHJvcE5hbWUsIGVudW1zW3Byb3BlcnR5LnR5cGUgfHwgJyddKTtcclxuICAgICAgICBlbHNlIGlmICh0eXBlID09PSBlUHJvcFR5cGUuVHlwZWFoZWFkKSBvcHRpb25zID0gY3JlYXRlVHlwZWFoZWFkT3B0aW9ucyhsb29rdXApO1xyXG5cclxuICAgICAgICBjb25zdCBmb3JtUHJvcCA9IG5ldyBGb3JtUHJvcCh7XHJcbiAgICAgICAgICB0eXBlLFxyXG4gICAgICAgICAgbmFtZTogcHJvcE5hbWUsXHJcbiAgICAgICAgICBkaXNwbGF5TmFtZSxcclxuICAgICAgICAgIG9wdGlvbnMsXHJcbiAgICAgICAgICBkZWZhdWx0VmFsdWUsXHJcbiAgICAgICAgICB2YWxpZGF0b3JzLFxyXG4gICAgICAgICAgaXNFeHRyYSxcclxuICAgICAgICAgIGZvcm1UZXh0LFxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBjb25zdCBmb3JtQ29udHJpYnV0b3IgPSAocHJvcExpc3Q6IEZvcm1Qcm9wTGlzdDxUPikgPT4gcHJvcExpc3QuYWRkVGFpbChmb3JtUHJvcCk7XHJcblxyXG4gICAgICAgIGlmIChpc09uQ3JlYXRlRm9ybSkgY29udHJpYnV0b3JzLmNyZWF0ZUZvcm1ba2V5XS5wdXNoKGZvcm1Db250cmlidXRvcik7XHJcbiAgICAgICAgaWYgKGlzT25FZGl0Rm9ybSkgY29udHJpYnV0b3JzLmVkaXRGb3JtW2tleV0ucHVzaChmb3JtQ29udHJpYnV0b3IpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gY29udHJpYnV0b3JzO1xyXG4gIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFR5cGVGcm9tUHJvcGVydHkocHJvcGVydHk6IE9iamVjdEV4dGVuc2lvbnMuRXh0ZW5zaW9uUHJvcGVydHlEdG8pOiBlUHJvcFR5cGUge1xyXG4gIHJldHVybiBwcm9wZXJ0eT8udHlwZVNpbXBsZT8ucmVwbGFjZSgvXFw/JC8sICcnKSBhcyBzdHJpbmcgYXMgZVByb3BUeXBlO1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc1VuZGVmaW5lZChvYmo6IGFueSk6IG9iaiBpcyB1bmRlZmluZWQge1xyXG4gIHJldHVybiB0eXBlb2Ygb2JqID09PSAndW5kZWZpbmVkJztcclxufVxyXG4iXX0=
|
|
129
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS9zcmMvbGliL3V0aWxzL3N0YXRlLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBU0EsT0FBTyxFQUFjLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTlELE9BQU8sRUFBRSxVQUFVLEVBQWtCLE1BQU0sd0JBQXdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFFBQVEsRUFBZ0IsTUFBTSxzQkFBc0IsQ0FBQztBQUc5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3JGLE9BQU8sRUFBRSw2Q0FBNkMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxhQUFhLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDL0UsT0FBTyxFQUNMLG1DQUFtQyxFQUNuQyxzQkFBc0IsRUFDdEIsZ0JBQWdCLEVBQ2hCLHNCQUFzQixHQUN2QixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTlELFNBQVMsc0JBQXNCLENBQUMsV0FBK0I7SUFDN0QsT0FBTyxXQUFXLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUM7QUFDakQsQ0FBQztBQUVELFNBQVMsa0JBQWtCLENBQ3pCLFdBQStCO0lBRS9CLE9BQU8sV0FBVyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztBQUM3QyxDQUFDO0FBRUQsU0FBUyxXQUFXLENBQ2xCLFdBQStCO0lBRS9CLE9BQU8sc0JBQXNCLENBQUMsV0FB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e1xyXG4gIEFCUCxcclxuICBBcHBsaWNhdGlvbkxvY2FsaXphdGlvbkNvbmZpZ3VyYXRpb25EdG8sXHJcbiAgQ29uZmlnU3RhdGVTZXJ2aWNlLFxyXG4gIEV4dGVuc2lvbkVudW1EdG8sXHJcbiAgRXh0ZW5zaW9uUHJvcGVydHlVaUxvb2t1cER0byxcclxuICBPYmplY3RFeHRlbnNpb25zRHRvLFxyXG4gIFBlcm1pc3Npb25TZXJ2aWNlLFxyXG59IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIHBpcGUsIHppcCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCwgc3dpdGNoTWFwLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBlUHJvcFR5cGUgfSBmcm9tICcuLi9lbnVtcy9wcm9wcy5lbnVtJztcclxuaW1wb3J0IHsgRW50aXR5UHJvcCwgRW50aXR5UHJvcExpc3QgfSBmcm9tICcuLi9tb2RlbHMvZW50aXR5LXByb3BzJztcclxuaW1wb3J0IHsgRm9ybVByb3AsIEZvcm1Qcm9wTGlzdCB9IGZyb20gJy4uL21vZGVscy9mb3JtLXByb3BzJztcclxuaW1wb3J0IHsgT2JqZWN0RXh0ZW5zaW9ucyB9IGZyb20gJy4uL21vZGVscy9vYmplY3QtZXh0ZW5zaW9ucyc7XHJcbmltcG9ydCB7IFByb3BDYWxsYmFjayB9IGZyb20gJy4uL21vZGVscy9wcm9wcyc7XHJcbmltcG9ydCB7IGNyZWF0ZUVudW0sIGNyZWF0ZUVudW1PcHRpb25zLCBjcmVhdGVFbnVtVmFsdWVSZXNvbHZlciB9IGZyb20gJy4vZW51bS51dGlsJztcclxuaW1wb3J0IHsgY3JlYXRlRGlzcGxheU5hbWVMb2NhbGl6YXRpb25QaXBlS2V5R2VuZXJhdG9yIH0gZnJvbSAnLi9sb2NhbGl6YXRpb24udXRpbCc7XHJcbmltcG9ydCB7IGNoZWNrUG9saWNpZXMsIGNyZWF0ZUV4dHJhUHJvcGVydHlWYWx1ZVJlc29sdmVyIH0gZnJvbSAnLi9wcm9wcy51dGlsJztcclxuaW1wb3J0IHtcclxuICBjcmVhdGVUeXBlYWhlYWREaXNwbGF5TmFtZUdlbmVyYXRvcixcclxuICBjcmVhdGVUeXBlYWhlYWRPcHRpb25zLFxyXG4gIGdldFR5cGVhaGVhZFR5cGUsXHJcbiAgaGFzVHlwZWFoZWFkVGV4dFN1ZmZpeCxcclxufSBmcm9tICcuL3R5cGVhaGVhZC51dGlsJztcclxuaW1wb3J0IHsgZ2V0VmFsaWRhdG9yc0Zyb21Qcm9wZXJ0eSB9IGZyb20gJy4vdmFsaWRhdGlvbi51dGlsJztcclxuXHJcbmZ1bmN0aW9uIHNlbGVjdE9iamVjdEV4dGVuc2lvbnMoY29uZmlnU3RhdGU6IENvbmZpZ1N0YXRlU2VydmljZSk6IE9ic2VydmFibGU8T2JqZWN0RXh0ZW5zaW9uc0R0bz4ge1xyXG4gIHJldHVybiBjb25maWdTdGF0ZS5nZXRPbmUkKCdvYmplY3RFeHRlbnNpb25zJyk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHNlbGVjdExvY2FsaXphdGlvbihcclxuICBjb25maWdTdGF0ZTogQ29uZmlnU3RhdGVTZXJ2aWNlLFxyXG4pOiBPYnNlcnZhYmxlPEFwcGxpY2F0aW9uTG9jYWxpemF0aW9uQ29uZmlndXJhdGlvbkR0bz4ge1xyXG4gIHJldHVybiBjb25maWdTdGF0ZS5nZXRPbmUkKCdsb2NhbGl6YXRpb24nKTtcclxufVxyXG5cclxuZnVuY3Rpb24gc2VsZWN0RW51bXMoXHJcbiAgY29uZmlnU3RhdGU6IENvbmZpZ1N0YXRlU2VydmljZSxcclxuKTogT2JzZXJ2YWJsZTxSZWNvcmQ8c3RyaW5nLCBFeHRlbnNpb25FbnVtRHRvPj4ge1xyXG4gIHJldHVybiBzZWxlY3RPYmplY3RFeHRlbnNpb25zKGNvbmZpZ1N0YXRlKS5waXBlKFxyXG4gICAgbWFwKChleHRlbnNpb25zOiBPYmplY3RFeHRlbnNpb25zRHRvKSA9PlxyXG4gICAgICBPYmplY3Qua2V5cyhleHRlbnNpb25zLmVudW1zKS5yZWR1Y2UoXHJcbiAgICAgICAgKGFjYywga2V5KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCB7IGZpZWxkcywgbG9jYWxpemF0aW9uUmVzb3VyY2UgfSA9IGV4dGVuc2lvbnMuZW51bXNba2V5XTtcclxuICAgICAgICAgIGFjY1trZXldID0ge1xyXG4gICAgICAgICAgICBmaWVsZHMsXHJcbiAgICAgICAgICAgIGxvY2FsaXphdGlvblJlc291cmNlLFxyXG4gICAgICAgICAgICB0cmFuc2Zvcm1lZDogY3JlYXRlRW51bShmaWVsZHMpLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICAgIHJldHVybiBhY2M7XHJcbiAgICAgICAgfSxcclxuICAgICAgICB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBPYmplY3RFeHRlbnNpb25zLkV4dGVuc2lvbkVudW1EdG8+LFxyXG4gICAgICApLFxyXG4gICAgKSxcclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0T2JqZWN0RXh0ZW5zaW9uRW50aXRpZXNGcm9tU3RvcmUoXHJcbiAgY29uZmlnU3RhdGU6IENvbmZpZ1N0YXRlU2VydmljZSxcclxuICBtb2R1bGVLZXk6IHN0cmluZyxcclxuKSB7XHJcbiAgcmV0dXJuIHNlbGVjdE9iamVjdEV4dGVuc2lvbnMoY29uZmlnU3RhdGUpLnBpcGUoXHJcbiAgICBtYXAoZXh0ZW5zaW9ucyA9PiB7XHJcbiAgICAgIGlmICghZXh0ZW5zaW9ucykgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgICByZXR1cm4gKGV4dGVuc2lvbnMubW9kdWxlc1ttb2R1bGVLZXldIHx8ICh7fSBhcyBPYmplY3RFeHRlbnNpb25zLk1vZHVsZUV4dGVuc2lvbkR0bykpXHJcbiAgICAgICAgLmVudGl0aWVzO1xyXG4gICAgfSksXHJcbiAgICBtYXAoZW50aXRpZXMgPT4gKGlzVW5kZWZpbmVkKGVudGl0aWVzKSA/ICh7fSBhcyBhbnkpIDogZW50aXRpZXMpKSxcclxuICAgIGZpbHRlcjxPYmplY3RFeHRlbnNpb25zLkVudGl0eUV4dGVuc2lvbnM+KEJvb2xlYW4pLFxyXG4gICAgdGFrZSgxKSxcclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbWFwRW50aXRpZXNUb0NvbnRyaWJ1dG9yczxUID0gYW55PihcclxuICBjb25maWdTdGF0ZTogQ29uZmlnU3RhdGVTZXJ2aWNlLFxyXG4gIHBlcm1pc3Npb25TZXJ2aWNlOiBQZXJtaXNzaW9uU2VydmljZSxcclxuICByZXNvdXJjZTogc3RyaW5nLFxyXG4pIHtcclxuICByZXR1cm4gcGlwZShcclxuICAgIHN3aXRjaE1hcCgoZW50aXRpZXM6IGFueSkgPT5cclxuICAgICAgemlwKHNlbGVjdExvY2FsaXphdGlvbihjb25maWdTdGF0ZSksIHNlbGVjdEVudW1zKGNvbmZpZ1N0YXRlKSkucGlwZShcclxuICAgICAgICBtYXAoKFtsb2NhbGl6YXRpb24sIGVudW1zXSkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgZ2VuZXJhdGVEaXNwbGF5TmFtZSA9IGNyZWF0ZURpc3BsYXlOYW1lTG9jYWxpemF0aW9uUGlwZUtleUdlbmVyYXRvcihsb2NhbGl6YXRpb24pO1xyXG5cclxuICAgICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhlbnRpdGllcykucmVkdWNlKFxyXG4gICAgICAgICAgICAoYWNjLCBrZXk6IGtleW9mIE9iamVjdEV4dGVuc2lvbnMuRW50aXR5RXh0ZW5zaW9ucykgPT4ge1xyXG4gICAgICAgICAgICAgIGFjYy5wcm9wW2tleV0gPSBbXTtcclxuICAgICAgICAgICAgICBhY2MuY3JlYXRlRm9ybVtrZXldID0gW107XHJcbiAgICAgICAgICAgICAgYWNjLmVkaXRGb3JtW2tleV0gPSBbXTtcclxuXHJcbiAgICAgICAgICAgICAgY29uc3QgZW50aXR5OiBPYmplY3RFeHRlbnNpb25zLkVudGl0eUV4dGVuc2lvbkR0byA9IGVudGl0aWVzW2tleV07XHJcbiAgICAgICAgICAgICAgaWYgKCFlbnRpdHkpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBhY2M7XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICBjb25zdCBwcm9wZXJ0aWVzID0gZW50aXR5LnByb3BlcnRpZXM7XHJcbiAgICAgICAgICAgICAgaWYgKCFwcm9wZXJ0aWVzKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYWNjO1xyXG4gICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgY2hlY2tQb2xpY2llcyhwcm9wZXJ0aWVzLCBjb25maWdTdGF0ZSwgcGVybWlzc2lvblNlcnZpY2UpO1xyXG5cclxuICAgICAgICAgICAgICBjb25zdCBtYXBQcm9wZXJ0aWVzVG9Db250cmlidXRvcnMgPSBjcmVhdGVQcm9wZXJ0aWVzVG9Db250cmlidXRvcnNNYXBwZXI8VD4oXHJcbiAgICAgICAgICAgICAgICBnZW5lcmF0ZURpc3BsYXlOYW1lLFxyXG4gICAgICAgICAgICAgICAgcmVzb3VyY2UsXHJcbiAgICAgICAgICAgICAgICBlbnVtcyxcclxuICAgICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgICByZXR1cm4gbWFwUHJvcGVydGllc1RvQ29udHJpYnV0b3JzKHByb3BlcnRpZXMsIGFjYywga2V5KTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHByb3A6IHt9LFxyXG4gICAgICAgICAgICAgIGNyZWF0ZUZvcm06IHt9LFxyXG4gICAgICAgICAgICAgIGVkaXRGb3JtOiB7fSxcclxuICAgICAgICAgICAgfSBhcyBPYmplY3RFeHRlbnNpb25zLlByb3BDb250cmlidXRvcnMsXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApLFxyXG4gICAgKSxcclxuICAgIHRha2UoMSksXHJcbiAgKTtcclxufVxyXG5cclxuZnVuY3Rpb24gY3JlYXRlUHJvcGVydGllc1RvQ29udHJpYnV0b3JzTWFwcGVyPFQgPSBhbnk+KFxyXG4gIGdlbmVyYXRlRGlzcGxheU5hbWU6IE9iamVjdEV4dGVuc2lvbnMuRGlzcGxheU5hbWVHZW5lcmF0b3JGbixcclxuICByZXNvdXJjZTogc3RyaW5nLFxyXG4gIGVudW1zOiBSZWNvcmQ8c3RyaW5nLCBPYmplY3RFeHRlbnNpb25zLkV4dGVuc2lvbkVudW1EdG8+LFxyXG4pIHtcclxuICByZXR1cm4gKFxyXG4gICAgcHJvcGVydGllczogT2JqZWN0RXh0ZW5zaW9ucy5FbnRpdHlFeHRlbnNpb25Qcm9wZXJ0aWVzLFxyXG4gICAgY29udHJpYnV0b3JzOiBPYmplY3RFeHRlbnNpb25zLlByb3BDb250cmlidXRvcnM8VD4sXHJcbiAgICBrZXk6IHN0cmluZyxcclxuICApID0+IHtcclxuICAgIGNvbnN0IGlzRXh0cmEgPSB0cnVlO1xyXG4gICAgY29uc3QgZ2VuZXJhdGVUeXBlYWhlYWREaXNwbGF5TmFtZSA9IGNyZWF0ZVR5cGVhaGVhZERpc3BsYXlOYW1lR2VuZXJhdG9yKFxyXG4gICAgICBnZW5lcmF0ZURpc3BsYXlOYW1lLFxyXG4gICAgICBwcm9wZXJ0aWVzLFxyXG4gICAgKTtcclxuXHJcbiAgICBPYmplY3Qua2V5cyhwcm9wZXJ0aWVzKS5mb3JFYWNoKChuYW1lOiBzdHJpbmcpID0+IHtcclxuICAgICAgY29uc3QgcHJvcGVydHkgPSBwcm9wZXJ0aWVzW25hbWVdO1xyXG4gICAgICBjb25zdCBwcm9wTmFtZSA9IG5hbWU7XHJcbiAgICAgIGNvbnN0IGxvb2t1cCA9IHByb3BlcnR5LnVpLmxvb2t1cCB8fCAoe30gYXMgRXh0ZW5zaW9uUHJvcGVydHlVaUxvb2t1cER0byk7XHJcbiAgICAgIGNvbnN0IHR5cGUgPSBnZXRUeXBlYWhlYWRUeXBlKGxvb2t1cCwgbmFtZSkgfHwgZ2V0VHlwZUZyb21Qcm9wZXJ0eShwcm9wZXJ0eSk7XHJcbiAgICAgIGNvbnN0IGdlbmVyYXRlRE4gPSBoYXNUeXBlYWhlYWRUZXh0U3VmZml4KG5hbWUpXHJcbiAgICAgICAgPyBnZW5lcmF0ZVR5cGVhaGVhZERpc3BsYXlOYW1lXHJcbiAgICAgICAgOiBnZW5lcmF0ZURpc3BsYXlOYW1lO1xyXG4gICAgICBjb25zdCBkaXNwbGF5TmFtZSA9IGdlbmVyYXRlRE4ocHJvcGVydHkuZGlzcGxheU5hbWUsIHsgbmFtZSwgcmVzb3VyY2UgfSk7XHJcblxyXG4gICAgICBpZiAocHJvcGVydHkudWkub25UYWJsZS5pc1Zpc2libGUpIHtcclxuICAgICAgICBjb25zdCBzb3J0YWJsZSA9IEJvb2xlYW4ocHJvcGVydHkudWkub25UYWJsZS5pc1NvcnRhYmxlKTtcclxuICAgICAgICBjb25zdCBjb2x1bW5XaWR0aCA9IHR5cGUgPT09IGVQcm9wVHlwZS5Cb29sZWFuID8gMTUwIDogMjUwO1xyXG4gICAgICAgIGNvbnN0IHZhbHVlUmVzb2x2ZXI6IFByb3BDYWxsYmFjazxULCBPYnNlcnZhYmxlPGFueT4+ID0gdHlwZSA9PT0gZVByb3BUeXBlLkVudW0gJiZcclxuICAgICAgICBwcm9wZXJ0eS50eXBlXHJcbiAgICAgICAgICA/IGNyZWF0ZUVudW1WYWx1ZVJlc29sdmVyKHByb3BlcnR5LnR5cGUsIGVudW1zW3Byb3BlcnR5LnR5cGVdLCBwcm9wTmFtZSlcclxuICAgICAgICAgIDogY3JlYXRlRXh0cmFQcm9wZXJ0eVZhbHVlUmVzb2x2ZXI8VD4ocHJvcE5hbWUpO1xyXG5cclxuICAgICAgICBjb25zdCBlbnRpdHlQcm9wID0gbmV3IEVudGl0eVByb3A8VD4oe1xyXG4gICAgICAgICAgdHlwZSxcclxuICAgICAgICAgIG5hbWU6IHByb3BOYW1lLFxyXG4gICAgICAgICAgZGlzcGxheU5hbWUsXHJcbiAgICAgICAgICBzb3J0YWJsZSxcclxuICAgICAgICAgIGNvbHVtbldpZHRoLFxyXG4gICAgICAgICAgdmFsdWVSZXNvbHZlcixcclxuICAgICAgICAgIGlzRXh0cmEsXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGNvbnN0IGNvbnRyaWJ1dG9yID0gKHByb3BMaXN0OiBFbnRpdHlQcm9wTGlzdDxUPikgPT4gcHJvcExpc3QuYWRkVGFpbChlbnRpdHlQcm9wKTtcclxuICAgICAgICBjb250cmlidXRvcnMucHJvcFtrZXldLnB1c2goY29udHJpYnV0b3IpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCBpc09uQ3JlYXRlRm9ybSA9IHByb3BlcnR5LnVpLm9uQ3JlYXRlRm9ybS5pc1Zpc2libGU7XHJcbiAgICAgIGNvbnN0IGlzT25FZGl0Rm9ybSA9IHByb3BlcnR5LnVpLm9uRWRpdEZvcm0uaXNWaXNpYmxlO1xyXG5cclxuICAgICAgaWYgKGlzT25DcmVhdGVGb3JtIHx8IGlzT25FZGl0Rm9ybSkge1xyXG4gICAgICAgIGNvbnN0IGRlZmF1bHRWYWx1ZSA9IHByb3BlcnR5LmRlZmF1bHRWYWx1ZTtcclxuICAgICAgICBjb25zdCBmb3JtVGV4dCA9IHByb3BlcnR5LmZvcm1UZXh0O1xyXG4gICAgICAgIGNvbnN0IHZhbGlkYXRvcnMgPSAoKSA9PiBnZXRWYWxpZGF0b3JzRnJvbVByb3BlcnR5KHByb3BlcnR5KTtcclxuICAgICAgICBsZXQgb3B0aW9uczogUHJvcENhbGxiYWNrPGFueSwgT2JzZXJ2YWJsZTxBQlAuT3B0aW9uPGFueT5bXT4+IHwgdW5kZWZpbmVkO1xyXG4gICAgICAgIGlmICh0eXBlID09PSBlUHJvcFR5cGUuRW51bSlcclxuICAgICAgICAgIG9wdGlvbnMgPSBjcmVhdGVFbnVtT3B0aW9ucyhwcm9wTmFtZSwgZW51bXNbcHJvcGVydHkudHlwZSB8fCAnJ10pO1xyXG4gICAgICAgIGVsc2UgaWYgKHR5cGUgPT09IGVQcm9wVHlwZS5UeXBlYWhlYWQpIG9wdGlvbnMgPSBjcmVhdGVUeXBlYWhlYWRPcHRpb25zKGxvb2t1cCk7XHJcblxyXG4gICAgICAgIGNvbnN0IGZvcm1Qcm9wID0gbmV3IEZvcm1Qcm9wKHtcclxuICAgICAgICAgIHR5cGUsXHJcbiAgICAgICAgICBuYW1lOiBwcm9wTmFtZSxcclxuICAgICAgICAgIGRpc3BsYXlOYW1lLFxyXG4gICAgICAgICAgb3B0aW9ucyxcclxuICAgICAgICAgIGRlZmF1bHRWYWx1ZSxcclxuICAgICAgICAgIHZhbGlkYXRvcnMsXHJcbiAgICAgICAgICBpc0V4dHJhLFxyXG4gICAgICAgICAgZm9ybVRleHQsXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGNvbnN0IGZvcm1Db250cmlidXRvciA9IChwcm9wTGlzdDogRm9ybVByb3BMaXN0PFQ+KSA9PiBwcm9wTGlzdC5hZGRUYWlsKGZvcm1Qcm9wKTtcclxuXHJcbiAgICAgICAgaWYgKGlzT25DcmVhdGVGb3JtKSBjb250cmlidXRvcnMuY3JlYXRlRm9ybVtrZXldLnB1c2goZm9ybUNvbnRyaWJ1dG9yKTtcclxuICAgICAgICBpZiAoaXNPbkVkaXRGb3JtKSBjb250cmlidXRvcnMuZWRpdEZvcm1ba2V5XS5wdXNoKGZvcm1Db250cmlidXRvcik7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBjb250cmlidXRvcnM7XHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0VHlwZUZyb21Qcm9wZXJ0eShwcm9wZXJ0eTogT2JqZWN0RXh0ZW5zaW9ucy5FeHRlbnNpb25Qcm9wZXJ0eUR0byk6IGVQcm9wVHlwZSB7XHJcbiAgcmV0dXJuIHByb3BlcnR5Py50eXBlU2ltcGxlPy5yZXBsYWNlKC9cXD8kLywgJycpIGFzIHN0cmluZyBhcyBlUHJvcFR5cGU7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzVW5kZWZpbmVkKG9iajogYW55KTogb2JqIGlzIHVuZGVmaW5lZCB7XHJcbiAgcmV0dXJuIHR5cGVvZiBvYmogPT09ICd1bmRlZmluZWQnO1xyXG59XHJcbiJdfQ==
|
|
@@ -1,29 +1,17 @@
|
|
|
1
|
-
import { EventEmitter, OnChanges, SimpleChanges, TemplateRef, TrackByFunction } from '@angular/core';
|
|
1
|
+
import { AfterViewInit, ChangeDetectorRef, EventEmitter, OnChanges, SimpleChanges, TemplateRef, TrackByFunction } from '@angular/core';
|
|
2
2
|
import { Observable } from 'rxjs';
|
|
3
|
-
import { ListService, PermissionService } from '@abp/ng.core';
|
|
3
|
+
import { ConfigStateService, ListService, PermissionService } from '@abp/ng.core';
|
|
4
4
|
import { EntityActionList } from '../../models/entity-actions';
|
|
5
5
|
import { EntityProp, EntityPropList } from '../../models/entity-props';
|
|
6
6
|
import { PropData } from '../../models/props';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
|
-
export declare class ExtensibleTableComponent<R = any> implements OnChanges {
|
|
8
|
+
export declare class ExtensibleTableComponent<R = any> implements OnChanges, AfterViewInit {
|
|
9
9
|
#private;
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
recordsTotal: number;
|
|
16
|
-
set actionsColumnWidth(width: number);
|
|
17
|
-
actionsTemplate?: TemplateRef<any>;
|
|
18
|
-
tableActivate: EventEmitter<any>;
|
|
19
|
-
hasAtLeastOnePermittedAction: boolean;
|
|
20
|
-
readonly columnWidths: number[];
|
|
21
|
-
readonly propList: EntityPropList<R>;
|
|
22
|
-
readonly actionList: EntityActionList<R>;
|
|
23
|
-
readonly trackByFn: TrackByFunction<EntityProp<R>>;
|
|
24
|
-
locale: string;
|
|
25
|
-
private config;
|
|
26
|
-
entityPropTypeClasses: Partial<{
|
|
10
|
+
readonly getInjected: any;
|
|
11
|
+
protected readonly cdr: ChangeDetectorRef;
|
|
12
|
+
protected readonly locale: string;
|
|
13
|
+
protected readonly config: ConfigStateService;
|
|
14
|
+
protected readonly entityPropTypeClasses: Partial<{
|
|
27
15
|
boolean: string;
|
|
28
16
|
date: string;
|
|
29
17
|
datetime: string;
|
|
@@ -39,8 +27,21 @@ export declare class ExtensibleTableComponent<R = any> implements OnChanges {
|
|
|
39
27
|
time: string;
|
|
40
28
|
typeahead: string;
|
|
41
29
|
}>;
|
|
42
|
-
|
|
43
|
-
|
|
30
|
+
protected readonly permissionService: PermissionService;
|
|
31
|
+
protected _actionsText: string;
|
|
32
|
+
set actionsText(value: string);
|
|
33
|
+
get actionsText(): string;
|
|
34
|
+
data: R[];
|
|
35
|
+
list: ListService;
|
|
36
|
+
recordsTotal: number;
|
|
37
|
+
set actionsColumnWidth(width: number);
|
|
38
|
+
actionsTemplate?: TemplateRef<any>;
|
|
39
|
+
tableActivate: EventEmitter<any>;
|
|
40
|
+
hasAtLeastOnePermittedAction: boolean;
|
|
41
|
+
readonly columnWidths: number[];
|
|
42
|
+
readonly propList: EntityPropList<R>;
|
|
43
|
+
readonly actionList: EntityActionList<R>;
|
|
44
|
+
readonly trackByFn: TrackByFunction<EntityProp<R>>;
|
|
44
45
|
constructor();
|
|
45
46
|
private setColumnWidths;
|
|
46
47
|
private getDate;
|
|
@@ -49,6 +50,7 @@ export declare class ExtensibleTableComponent<R = any> implements OnChanges {
|
|
|
49
50
|
getContent(prop: EntityProp<R>, data: PropData): Observable<string>;
|
|
50
51
|
ngOnChanges({ data }: SimpleChanges): void;
|
|
51
52
|
isVisibleActions(rowData: any): boolean;
|
|
53
|
+
ngAfterViewInit(): void;
|
|
52
54
|
static ɵfac: i0.ɵɵFactoryDeclaration<ExtensibleTableComponent<any>, never>;
|
|
53
55
|
static ɵcmp: i0.ɵɵComponentDeclaration<ExtensibleTableComponent<any>, "abp-extensible-table", ["abpExtensibleTable"], { "actionsText": { "alias": "actionsText"; "required": false; }; "data": { "alias": "data"; "required": false; }; "list": { "alias": "list"; "required": false; }; "recordsTotal": { "alias": "recordsTotal"; "required": false; }; "actionsColumnWidth": { "alias": "actionsColumnWidth"; "required": false; }; "actionsTemplate": { "alias": "actionsTemplate"; "required": false; }; }, { "tableActivate": "tableActivate"; }, never, never, true, never>;
|
|
54
56
|
}
|
|
@@ -46,6 +46,21 @@ export interface ExtensionPropertyDto {
|
|
|
46
46
|
configuration: Record<string, any>;
|
|
47
47
|
defaultValue: any;
|
|
48
48
|
formText?: string;
|
|
49
|
+
policy?: Policy;
|
|
50
|
+
}
|
|
51
|
+
export interface BaseDefinition {
|
|
52
|
+
requiresAll: boolean;
|
|
53
|
+
}
|
|
54
|
+
export interface FeatureDefinition extends BaseDefinition {
|
|
55
|
+
features?: string[];
|
|
56
|
+
}
|
|
57
|
+
export interface PermissionDefinition extends BaseDefinition {
|
|
58
|
+
permissionNames?: string[];
|
|
59
|
+
}
|
|
60
|
+
export interface Policy {
|
|
61
|
+
globalFeatures: FeatureDefinition;
|
|
62
|
+
features: FeatureDefinition;
|
|
63
|
+
permissions: PermissionDefinition;
|
|
49
64
|
}
|
|
50
65
|
export interface ExtensionPropertyUiDto {
|
|
51
66
|
onTable: ExtensionPropertyUiTableDto;
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
+
import { ConfigStateService, PermissionService } from '@abp/ng.core';
|
|
1
2
|
import { Observable } from 'rxjs';
|
|
2
3
|
import { EntityPropContributorCallbacks, EntityPropDefaults, EntityPropsFactory } from '../models/entity-props';
|
|
3
4
|
import { CreateFormPropContributorCallbacks, CreateFormPropDefaults, CreateFormPropsFactory, EditFormPropContributorCallbacks, EditFormPropDefaults, EditFormPropsFactory } from '../models/form-props';
|
|
4
5
|
import { PropCallback, PropsFactory } from '../models/props';
|
|
6
|
+
import { ObjectExtensions } from '../models/object-extensions';
|
|
5
7
|
export declare function createExtraPropertyValueResolver<T>(name: string): PropCallback<T, Observable<any>>;
|
|
6
8
|
export declare function mergeWithDefaultProps<F extends PropsFactory<any>>(extension: F, defaultProps: InferredPropDefaults<F>, ...contributors: InferredPropContributorCallbacks<F>[]): void;
|
|
9
|
+
export declare function checkPolicies(properties: ObjectExtensions.EntityExtensionProperties, configState: ConfigStateService, permissionService: PermissionService): void;
|
|
7
10
|
type InferredPropDefaults<F> = F extends EntityPropsFactory<infer RE> ? EntityPropDefaults<RE> : F extends CreateFormPropsFactory<infer RCF> ? CreateFormPropDefaults<RCF> : F extends EditFormPropsFactory<infer REF> ? EditFormPropDefaults<REF> : never;
|
|
8
11
|
type InferredPropContributorCallbacks<F> = F extends EntityPropsFactory<infer RE> ? EntityPropContributorCallbacks<RE> : F extends CreateFormPropsFactory<infer RCF> ? CreateFormPropContributorCallbacks<RCF> : F extends EditFormPropsFactory<infer REF> ? EditFormPropContributorCallbacks<REF> : never;
|
|
9
12
|
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ConfigStateService } from '@abp/ng.core';
|
|
1
|
+
import { ConfigStateService, PermissionService } from '@abp/ng.core';
|
|
2
2
|
import { Observable } from 'rxjs';
|
|
3
3
|
import { ObjectExtensions } from '../models/object-extensions';
|
|
4
4
|
export declare function getObjectExtensionEntitiesFromStore(configState: ConfigStateService, moduleKey: string): Observable<ObjectExtensions.EntityExtensions>;
|
|
5
|
-
export declare function mapEntitiesToContributors<T = any>(configState: ConfigStateService, resource: string): import("rxjs").UnaryFunction<Observable<any>, Observable<ObjectExtensions.PropContributors<any>>>;
|
|
5
|
+
export declare function mapEntitiesToContributors<T = any>(configState: ConfigStateService, permissionService: PermissionService, resource: string): import("rxjs").UnaryFunction<Observable<any>, Observable<ObjectExtensions.PropContributors<any>>>;
|