@pega/angular-sdk-components 0.242.5 → 0.242.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/_components/field/user-reference/user-reference.component.mjs +30 -13
- package/esm2022/lib/_components/infra/Containers/flow-container/flow-container.component.mjs +10 -37
- package/esm2022/lib/_components/infra/Containers/flow-container/helpers.mjs +2 -2
- package/esm2022/lib/_components/infra/Containers/modal-view-container/modal-view-container.component.mjs +2 -8
- package/esm2022/lib/_components/infra/assignment/assignment.component.mjs +75 -47
- package/esm2022/lib/_components/infra/assignment-card/assignment-card.component.mjs +30 -10
- package/esm2022/lib/_components/infra/root-container/root-container.component.mjs +3 -13
- package/esm2022/lib/_components/infra/view/view.component.mjs +15 -2
- package/esm2022/lib/_components/template/base/form-template-base.mjs +4 -1
- package/esm2022/lib/_components/template/default-form/default-form.component.mjs +33 -8
- package/esm2022/lib/_components/template/simple-table-manual/helpers.mjs +7 -6
- package/esm2022/lib/_components/widget/todo/todo.component.mjs +3 -3
- package/esm2022/lib/_services/banner.service.mjs +35 -0
- package/esm2022/lib/_services/endpoints.mjs +1 -2
- package/esm2022/lib/_services/idle-detection.service.mjs +26 -0
- package/esm2022/public-api.mjs +3 -1
- package/fesm2022/pega-angular-sdk-components.mjs +372 -257
- package/fesm2022/pega-angular-sdk-components.mjs.map +1 -1
- package/lib/_components/field/user-reference/user-reference.component.d.ts +5 -0
- package/lib/_components/infra/Containers/flow-container/flow-container.component.d.ts +0 -1
- package/lib/_components/infra/Containers/flow-container/helpers.d.ts +1 -0
- package/lib/_components/infra/Containers/modal-view-container/modal-view-container.component.d.ts +1 -2
- package/lib/_components/infra/assignment/assignment.component.d.ts +6 -3
- package/lib/_components/infra/assignment-card/assignment-card.component.d.ts +10 -2
- package/lib/_components/infra/root-container/root-container.component.d.ts +0 -1
- package/lib/_components/template/base/form-template-base.d.ts +2 -0
- package/lib/_components/template/default-form/default-form.component.d.ts +8 -3
- package/lib/_components/template/simple-table-manual/helpers.d.ts +1 -0
- package/lib/_services/banner.service.d.ts +8 -0
- package/lib/_services/endpoints.d.ts +0 -1
- package/lib/_services/idle-detection.service.d.ts +9 -0
- package/lib/doc/KeyReleaseUpdates.md +23 -6
- package/package.json +1 -1
- package/public-api.d.ts +2 -0
|
@@ -88,16 +88,6 @@ export class RootContainerComponent {
|
|
|
88
88
|
this.updateSelf();
|
|
89
89
|
}
|
|
90
90
|
}
|
|
91
|
-
modalVisibleChanged(isVisible) {
|
|
92
|
-
if (this.displayOnlyFA$) {
|
|
93
|
-
if (isVisible) {
|
|
94
|
-
this.bShowRoot$ = false;
|
|
95
|
-
}
|
|
96
|
-
else {
|
|
97
|
-
this.bShowRoot$ = true;
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
91
|
updateSelf() {
|
|
102
92
|
// need to call this.getCurrentCompleteProps (not this.thePConn.getConfigProps)
|
|
103
93
|
// to get full set of props that affect this component in Redux
|
|
@@ -206,7 +196,7 @@ export class RootContainerComponent {
|
|
|
206
196
|
}
|
|
207
197
|
}
|
|
208
198
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: RootContainerComponent, deps: [{ token: i1.AngularPConnectService }, { token: i2.ProgressSpinnerService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
209
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: RootContainerComponent, isStandalone: true, selector: "app-root-container", inputs: { pConn$: "pConn$", displayOnlyFA$: "displayOnlyFA$", isMashup$: "isMashup$" }, ngImport: i0, template: "<div class=\"progress-box\" *ngIf=\"bIsProgress$\">\n <mat-spinner class=\"progress-spinner\"></mat-spinner>\n</div>\n\n<div *ngIf=\"bShowRoot$\">\n <div [ngSwitch]=\"componentName$\">\n <component-mapper *ngSwitchCase=\"'View'\" name=\"View\" [props]=\"{ pConn$, displayOnlyFA$ }\"></component-mapper>\n
|
|
199
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: RootContainerComponent, isStandalone: true, selector: "app-root-container", inputs: { pConn$: "pConn$", displayOnlyFA$: "displayOnlyFA$", isMashup$: "isMashup$" }, ngImport: i0, template: "<div class=\"progress-box\" *ngIf=\"bIsProgress$\">\n <mat-spinner class=\"progress-spinner\"></mat-spinner>\n</div>\n\n<div *ngIf=\"bShowRoot$\">\n <div [ngSwitch]=\"componentName$\">\n <component-mapper *ngSwitchCase=\"'View'\" name=\"View\" [props]=\"{ pConn$, displayOnlyFA$ }\"></component-mapper>\n <component-mapper\n *ngSwitchCase=\"'ViewContainer'\"\n name=\"ViewContainer\"\n [props]=\"{ pConn$: viewContainerPConn$, displayOnlyFA$ }\"\n ></component-mapper>\n <div *ngSwitchDefault>{{ localizedVal('RootContainer Missing: ' + componentName$, localeCategory) }}.</div>\n </div>\n</div>\n\n<div *ngIf=\"pvConn$ != null\">\n <app-preview-view-container [pConn$]=\"pvConn$\"></app-preview-view-container>\n</div>\n\n<div *ngIf=\"mConn$ != null\">\n <app-modal-view-container [pConn$]=\"mConn$\"></app-modal-view-container>\n</div>\n", styles: [".progress-box{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;width:100%;background-color:var(--app-background-color);position:fixed;z-index:99999;top:0rem;left:0rem;opacity:.5}.progress-spinner{text-align:center}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CommonModule) }, { kind: "directive", type: i0.forwardRef(() => i3.NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(() => i3.NgSwitch), selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i0.forwardRef(() => i3.NgSwitchCase), selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i0.forwardRef(() => i3.NgSwitchDefault), selector: "[ngSwitchDefault]" }, { kind: "ngmodule", type: i0.forwardRef(() => MatProgressSpinnerModule) }, { kind: "component", type: i0.forwardRef(() => i4.MatProgressSpinner), selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i0.forwardRef(() => ModalViewContainerComponent), selector: "app-modal-view-container", inputs: ["pConn$"], outputs: ["modalVisibleChange"] }, { kind: "component", type: i0.forwardRef(() => PreviewViewContainerComponent), selector: "app-preview-view-container", inputs: ["pConn$"] }, { kind: "component", type: i0.forwardRef(() => ComponentMapperComponent), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
|
|
210
200
|
}
|
|
211
201
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: RootContainerComponent, decorators: [{
|
|
212
202
|
type: Component,
|
|
@@ -217,7 +207,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
217
207
|
ModalViewContainerComponent,
|
|
218
208
|
PreviewViewContainerComponent,
|
|
219
209
|
forwardRef(() => ComponentMapperComponent)
|
|
220
|
-
], template: "<div class=\"progress-box\" *ngIf=\"bIsProgress$\">\n <mat-spinner class=\"progress-spinner\"></mat-spinner>\n</div>\n\n<div *ngIf=\"bShowRoot$\">\n <div [ngSwitch]=\"componentName$\">\n <component-mapper *ngSwitchCase=\"'View'\" name=\"View\" [props]=\"{ pConn$, displayOnlyFA$ }\"></component-mapper>\n
|
|
210
|
+
], template: "<div class=\"progress-box\" *ngIf=\"bIsProgress$\">\n <mat-spinner class=\"progress-spinner\"></mat-spinner>\n</div>\n\n<div *ngIf=\"bShowRoot$\">\n <div [ngSwitch]=\"componentName$\">\n <component-mapper *ngSwitchCase=\"'View'\" name=\"View\" [props]=\"{ pConn$, displayOnlyFA$ }\"></component-mapper>\n <component-mapper\n *ngSwitchCase=\"'ViewContainer'\"\n name=\"ViewContainer\"\n [props]=\"{ pConn$: viewContainerPConn$, displayOnlyFA$ }\"\n ></component-mapper>\n <div *ngSwitchDefault>{{ localizedVal('RootContainer Missing: ' + componentName$, localeCategory) }}.</div>\n </div>\n</div>\n\n<div *ngIf=\"pvConn$ != null\">\n <app-preview-view-container [pConn$]=\"pvConn$\"></app-preview-view-container>\n</div>\n\n<div *ngIf=\"mConn$ != null\">\n <app-modal-view-container [pConn$]=\"mConn$\"></app-modal-view-container>\n</div>\n", styles: [".progress-box{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;width:100%;background-color:var(--app-background-color);position:fixed;z-index:99999;top:0rem;left:0rem;opacity:.5}.progress-spinner{text-align:center}\n"] }]
|
|
221
211
|
}], ctorParameters: () => [{ type: i1.AngularPConnectService }, { type: i2.ProgressSpinnerService }, { type: i0.NgZone }], propDecorators: { pConn$: [{
|
|
222
212
|
type: Input
|
|
223
213
|
}], displayOnlyFA$: [{
|
|
@@ -225,4 +215,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
225
215
|
}], isMashup$: [{
|
|
226
216
|
type: Input
|
|
227
217
|
}] } });
|
|
228
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vdC1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZGstY29tcG9uZW50cy9zcmMvbGliL19jb21wb25lbnRzL2luZnJhL3Jvb3QtY29udGFpbmVyL3Jvb3QtY29udGFpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy9pbmZyYS9yb290LWNvbnRhaW5lci9yb290LWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBVSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDeEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxRQUFRLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBRzlDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHVFQUF1RSxDQUFDO0FBQ3RILE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG1FQUFtRSxDQUFDO0FBQ2hILE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHFFQUFxRSxDQUFDO0FBQ25ILE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhEQUE4RCxDQUFDOzs7Ozs7QUFFeEc7Ozs7R0FJRztBQUVILE1BQU0sT0FBTyxHQUFHLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDO0FBZ0JuQyxNQUFNLE9BQU8sc0JBQXNCO0lBdUJqQyxZQUNVLGVBQXVDLEVBQ3ZDLFNBQWlDLEVBQ2pDLE1BQWM7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R2hDLHNCQUFzQjtrQkFkbEMsU0FBUzsrQkFDRSxvQkFBb0IsY0FHbEIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osd0JBQXdCO3dCQUN4Qiw0QkFBNEI7d0JBQzVCLDJCQUEyQjt3QkFDM0IsNkJBQTZCO3dCQUM3QixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsd0JBQXdCLENBQUM7cUJBQzNDO3FKQUdRLE1BQU07c0JBQWQsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE5nWm9uZSwgZm9yd2FyZFJlZiwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XG5pbXBvcnQgeyBpbnRlcnZhbCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBbmd1bGFyUENvbm5lY3REYXRhLCBBbmd1bGFyUENvbm5lY3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vX2JyaWRnZS9hbmd1bGFyLXBjb25uZWN0JztcbmltcG9ydCB7IFByb2dyZXNzU3Bpbm5lclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9fbWVzc2FnZXMvcHJvZ3Jlc3Mtc3Bpbm5lci5zZXJ2aWNlJztcbmltcG9ydCB7IFJlZmVyZW5jZUNvbXBvbmVudCB9IGZyb20gJy4uL3JlZmVyZW5jZS9yZWZlcmVuY2UuY29tcG9uZW50JztcbmltcG9ydCB7IFByZXZpZXdWaWV3Q29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vQ29udGFpbmVycy9wcmV2aWV3LXZpZXctY29udGFpbmVyL3ByZXZpZXctdmlldy1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7IE1vZGFsVmlld0NvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4uL0NvbnRhaW5lcnMvbW9kYWwtdmlldy1jb250YWluZXIvbW9kYWwtdmlldy1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEh5YnJpZFZpZXdDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuLi9Db250YWluZXJzL2h5YnJpZC12aWV3LWNvbnRhaW5lci9oeWJyaWQtdmlldy1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7IENvbXBvbmVudE1hcHBlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL19icmlkZ2UvY29tcG9uZW50LW1hcHBlci9jb21wb25lbnQtbWFwcGVyLmNvbXBvbmVudCc7XG5cbi8qKlxuICogV0FSTklORzogIEl0IGlzIG5vdCBleHBlY3RlZCB0aGF0IHRoaXMgZmlsZSBzaG91bGQgYmUgbW9kaWZpZWQuICBJdCBpcyBwYXJ0IG9mIGluZnJhc3RydWN0dXJlIGNvZGUgdGhhdCB3b3JrcyB3aXRoXG4gKiBSZWR1eCBhbmQgY3JlYXRpb24vdXBkYXRlIG9mIFJlZHV4IGNvbnRhaW5lcnMgYW5kIFBDb25uZWN0LiAgTW9kaWZ5aW5nIHRoaXMgY29kZSBjb3VsZCBoYXZlIHVuZGVzaXJlYWJsZSByZXN1bHRzIGFuZFxuICogaXMgdG90YWxseSBhdCB5b3VyIG93biByaXNrLlxuICovXG5cbmNvbnN0IG9wdGlvbnMgPSB7IGNvbnRleHQ6ICdhcHAnIH07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1yb290LWNvbnRhaW5lcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9yb290LWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Jvb3QtY29udGFpbmVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlLFxuICAgIEh5YnJpZFZpZXdDb250YWluZXJDb21wb25lbnQsXG4gICAgTW9kYWxWaWV3Q29udGFpbmVyQ29tcG9uZW50LFxuICAgIFByZXZpZXdWaWV3Q29udGFpbmVyQ29tcG9uZW50LFxuICAgIGZvcndhcmRSZWYoKCkgPT4gQ29tcG9uZW50TWFwcGVyQ29tcG9uZW50KVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFJvb3RDb250YWluZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHBDb25uJDogdHlwZW9mIFBDb25uZWN0O1xuICBASW5wdXQoKSBkaXNwbGF5T25seUZBJDogYm9vbGVhbjtcbiAgQElucHV0KCkgaXNNYXNodXAkOiBib29sZWFuO1xuXG4gIC8vIEZvciBpbnRlcmFjdGlvbiB3aXRoIEFuZ3VsYXJQQ29ubmVjdFxuICBhbmd1bGFyUENvbm5lY3REYXRhOiBBbmd1bGFyUENvbm5lY3REYXRhID0ge307XG5cbiAgY29tcG9uZW50TmFtZSQgPSAnJztcbiAgYklzUHJvZ3Jlc3MkID0gZmFsc2U7XG5cbiAgLy8gcHJldmlldyBhbmQgbW9kYWx2aWV3IHBDb25uXG4gIHB2Q29ubiQ6IGFueSA9IG51bGw7XG4gIG1Db25uJDogYW55ID0gbnVsbDtcblxuICBiU2hvd1Jvb3QkID0gdHJ1ZTtcblxuICBwcm9ncmVzc1NwaW5uZXJTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgc3Bpbm5lclRpbWVyOiBhbnkgPSBudWxsO1xuICB2aWV3Q29udGFpbmVyUENvbm4kOiBhbnkgPSBudWxsO1xuICBsb2NhbGl6ZWRWYWw6IGFueTtcbiAgbG9jYWxlQ2F0ZWdvcnkgPSAnTWVzc2FnZXMnO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYW5ndWxhclBDb25uZWN0OiBBbmd1bGFyUENvbm5lY3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgcHNTZXJ2aWNlOiBQcm9ncmVzc1NwaW5uZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmVcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IG15Q29udGV4dCA9ICdhcHAnO1xuXG4gICAgY29uc3QgeyBjb250YWluZXJzIH0gPSBQQ29yZS5nZXRTdG9yZSgpLmdldFN0YXRlKCk7XG4gICAgY29uc3QgaXRlbXMgPSBPYmplY3Qua2V5cyhjb250YWluZXJzKS5maWx0ZXIoaXRlbSA9PiBpdGVtLmluY2x1ZGVzKCdyb290JykpO1xuXG4gICAgUENvcmUuZ2V0Q29udGFpbmVyVXRpbHMoKS5nZXRDb250YWluZXJBUEkoKS5hZGRDb250YWluZXJJdGVtcyhpdGVtcyk7XG5cbiAgICAvLyBhZGQgcHJldmlldyBhbmQgbW9kYWx2aWV3IGNvbnRhaW5lcnMgdG8gcmVkdXhcbiAgICAvLyBrZWVwIGxvY2FsIGNvcGllcyBvZiB0aGUgdGhlIHBDb25uZWN0IHRoYXQgaXMgcmVsYXRlZFxuXG4gICAgY29uc3QgY29uZmlnT2JqUHJldmlldyA9IFBDb3JlLmNyZWF0ZVBDb25uZWN0KHtcbiAgICAgIG1ldGE6IHtcbiAgICAgICAgdHlwZTogJ1ByZXZpZXdWaWV3Q29udGFpbmVyJyxcbiAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgbmFtZTogJ3ByZXZpZXcnXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBvcHRpb25zXG4gICAgfSk7XG5cbiAgICB0aGlzLnB2Q29ubiQgPSBjb25maWdPYmpQcmV2aWV3LmdldFBDb25uZWN0KCk7XG5cbiAgICBjb25zdCBjb25maWdPYmpNb2RhbCA9IFBDb3JlLmNyZWF0ZVBDb25uZWN0KHtcbiAgICAgIG1ldGE6IHtcbiAgICAgICAgdHlwZTogJ01vZGFsVmlld0NvbnRhaW5lcicsXG4gICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgIG5hbWU6ICdtb2RhbCdcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgcGFnZVJlZmVyZW5jZTogJ3B5UG9ydGFsJyxcbiAgICAgICAgY29udGV4dDogbXlDb250ZXh0XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBjbGVhciBvdXQgaGFzVmlld0NvbnRhaW5lclxuICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ2hhc1ZpZXdDb250YWluZXInLCAnZmFsc2UnKTtcblxuICAgIHRoaXMubUNvbm4kID0gY29uZmlnT2JqTW9kYWwuZ2V0UENvbm5lY3QoKTtcblxuICAgIC8vIEZpcnN0IHRoaW5nIGluIGluaXRpYWxpemF0aW9uIGlzIHJlZ2lzdGVyaW5nIGFuZCBzdWJzY3JpYmluZyB0byB0aGUgQW5ndWxhclBDb25uZWN0IHNlcnZpY2VcbiAgICB0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEgPSB0aGlzLmFuZ3VsYXJQQ29ubmVjdC5yZWdpc3RlckFuZFN1YnNjcmliZUNvbXBvbmVudCh0aGlzLCB0aGlzLm9uU3RhdGVDaGFuZ2UpO1xuXG4gICAgLy8gaGFuZGxlIHNob3dpbmcgYW5kIGhpZGluZyB0aGUgcHJvZ3Jlc3Mgc3Bpbm5lclxuICAgIHRoaXMucHJvZ3Jlc3NTcGlubmVyU3Vic2NyaXB0aW9uID0gdGhpcy5wc1NlcnZpY2UuZ2V0TWVzc2FnZSgpLnN1YnNjcmliZShtZXNzYWdlID0+IHtcbiAgICAgIHRoaXMuc2hvd0hpZGVQcm9ncmVzcyhtZXNzYWdlLnNob3cpO1xuICAgIH0pO1xuICAgIHRoaXMubG9jYWxpemVkVmFsID0gUENvcmUuZ2V0TG9jYWxlVXRpbHMoKS5nZXRMb2NhbGVWYWx1ZTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEudW5zdWJzY3JpYmVGbikge1xuICAgICAgdGhpcy5hbmd1bGFyUENvbm5lY3REYXRhLnVuc3Vic2NyaWJlRm4oKTtcbiAgICB9XG4gIH1cblxuICAvLyBDYWxsYmFjayBwYXNzZWQgd2hlbiBzdWJzY3JpYmluZyB0byBzdG9yZSBjaGFuZ2VcbiAgb25TdGF0ZUNoYW5nZSgpIHtcbiAgICAvLyBTaG91bGQgYWx3YXlzIGNoZWNrIHRoZSBicmlkZ2UgdG8gc2VlIGlmIHRoZSBjb21wb25lbnQgc2hvdWxkIHVwZGF0ZSBpdHNlbGYgKHJlLXJlbmRlcilcbiAgICBjb25zdCBiVXBkYXRlU2VsZiA9IHRoaXMuYW5ndWxhclBDb25uZWN0LnNob3VsZENvbXBvbmVudFVwZGF0ZSh0aGlzKTtcblxuICAgIGlmIChiVXBkYXRlU2VsZikge1xuICAgICAgdGhpcy51cGRhdGVTZWxmKCk7XG4gICAgfVxuICB9XG5cbiAgbW9kYWxWaXNpYmxlQ2hhbmdlZChpc1Zpc2libGUpIHtcbiAgICBpZiAodGhpcy5kaXNwbGF5T25seUZBJCkge1xuICAgICAgaWYgKGlzVmlzaWJsZSkge1xuICAgICAgICB0aGlzLmJTaG93Um9vdCQgPSBmYWxzZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuYlNob3dSb290JCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlU2VsZigpIHtcbiAgICAvLyBuZWVkIHRvIGNhbGwgdGhpcy5nZXRDdXJyZW50Q29tcGxldGVQcm9wcyAobm90IHRoaXMudGhlUENvbm4uZ2V0Q29uZmlnUHJvcHMpXG4gICAgLy8gIHRvIGdldCBmdWxsIHNldCBvZiBwcm9wcyB0aGF0IGFmZmVjdCB0aGlzIGNvbXBvbmVudCBpbiBSZWR1eFxuICAgIGNvbnN0IG15UHJvcHM6IGFueSA9IHRoaXMuYW5ndWxhclBDb25uZWN0LmdldEN1cnJlbnRDb21wbGV0ZVByb3BzKHRoaXMpO1xuXG4gICAgY29uc3QgcmVuZGVyaW5nTW9kZXMgPSBbJ3BvcnRhbCcsICd2aWV3J107XG4gICAgY29uc3Qgbm9Qb3J0YWxNb2RlID0gJ25vUG9ydGFsJztcblxuICAgIGNvbnN0IHsgcmVuZGVyaW5nTW9kZSwgY2hpbGRyZW4sIHNrZWxldG9uLCByb3V0aW5nSW5mbyB9ID0gbXlQcm9wcztcblxuICAgIGlmIChyb3V0aW5nSW5mbyAmJiByZW5kZXJpbmdNb2Rlcy5pbmNsdWRlcyhyZW5kZXJpbmdNb2RlKSkge1xuICAgICAgY29uc3QgeyBhY2Nlc3NlZE9yZGVyLCBpdGVtcyB9ID0gcm91dGluZ0luZm87XG4gICAgICBpZiAoYWNjZXNzZWRPcmRlciAmJiBpdGVtcykge1xuICAgICAgICAvLyBib290c3RyYXAgbG9hZFBvcnRhbCByZXNvbHZlcyB0byBoZXJlXG4gICAgICAgIGNvbnN0IGtleSA9IGFjY2Vzc2VkT3JkZXJbYWNjZXNzZWRPcmRlci5sZW5ndGggLSAxXTtcbiAgICAgICAgaWYgKGl0ZW1zW2tleV0gJiYgaXRlbXNba2V5XS52aWV3ICYmIE9iamVjdC5rZXlzKGl0ZW1zW2tleV0udmlldykubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGNvbnN0IGl0ZW1WaWV3ID0gaXRlbXNba2V5XS52aWV3O1xuXG4gICAgICAgICAgY29uc3Qgcm9vdE9iamVjdCA9IFBDb3JlLmNyZWF0ZVBDb25uZWN0KHtcbiAgICAgICAgICAgIG1ldGE6IGl0ZW1WaWV3LFxuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICBjb250ZXh0OiBpdGVtc1trZXldLmNvbnRleHRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgLy8gbWFrZXMgc3VyZSBBbmd1bGFyIHRyYWNrcyB0aGVzZSBjaGFuZ2VzXG4gICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICAvLyB0aGUgbmV3IHJvb3RPYmplY3QgbWF5IGJlIGEgJ3JlZmVyZW5jZScuIFNvLFxuICAgICAgICAgICAgICAvLyAgbm9ybWFsaXplIGl0IHRvIGdldCB0aGUgcmVmZXJlbmNlZFZpZXcgaWYgdGhhdCdzIHRoZSBjYXNlXG4gICAgICAgICAgICAgIGNvbnN0IHRoZU5ld1BDb25uID0gUmVmZXJlbmNlQ29tcG9uZW50Lm5vcm1hbGl6ZVBDb25uKHJvb3RPYmplY3QuZ2V0UENvbm5lY3QoKSk7XG4gICAgICAgICAgICAgIC8vIHVwZGF0ZSBDb21wb25lbnROYW1lJCBiZWZvcmUgd2UgdXBkYXRlIHBDb25uJCB0byBtYWtlIHN1cmUgdGhleSdyZSBpbiBzeW5jXG4gICAgICAgICAgICAgIC8vICB3aGVuIHJlbmRlcmluZy4uLlxuICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudE5hbWUkID0gdGhlTmV3UENvbm4uZ2V0Q29tcG9uZW50TmFtZSgpO1xuXG4gICAgICAgICAgICAgIHRoaXMucENvbm4kID0gdGhlTmV3UENvbm47XG4gICAgICAgICAgICAgIC8vIHRoaXMucENvbm4kID0gcm9vdE9iamVjdC5nZXRQQ29ubmVjdCgpO1xuXG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKGBSb290Q29udGFpbmVyIHVwZGF0ZWQgcENvbm4kIHRvIGJlOiAke3RoaXMuY29tcG9uZW50TmFtZSR9YCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAocmVuZGVyaW5nTW9kZSA9PT0gbm9Qb3J0YWxNb2RlKSB7XG4gICAgICAvLyBjb25zb2xlLmxvZyhgUm9vdENvbnRhaW5lcjogcmVuZGVyaW5nTW9kZSA9PT0gbm9Qb3J0YWxNb2RlOiAke25vUG9ydGFsTW9kZX1gKTtcbiAgICAgIHRoaXMuZ2VuZXJhdGVWaWV3Q29udGFpbmVyRm9yTm9Qb3J0YWwoKTtcbiAgICB9IGVsc2UgaWYgKGNoaWxkcmVuICYmIGNoaWxkcmVuLmxlbmd0aCA+IDApIHtcbiAgICAgIC8vIGhhdmVuJ3QgcmVzb2x2ZWQgdG8gaGVyZVxuICAgIH0gZWxzZSBpZiAoc2tlbGV0b24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gVE9ETzogbmVlZCB0byB1cGRhdGUgb25jZSBza2VsZXRvbnMgYXJlIGF2YWlsYWJsZTtcbiAgICB9XG4gIH1cblxuICBnZW5lcmF0ZVZpZXdDb250YWluZXJGb3JOb1BvcnRhbCgpIHtcbiAgICAvLyBib290c3RyYXAgbG9hZE1hc2h1cCByZXNvbHZlcyB0byBoZXJlXG4gICAgY29uc3QgYXJDaGlsZHJlbiA9IHRoaXMucENvbm4kLmdldENoaWxkcmVuKCkgYXMgYW55W107XG4gICAgaWYgKGFyQ2hpbGRyZW4gJiYgYXJDaGlsZHJlbi5sZW5ndGggPT0gMSkge1xuICAgICAgLy8gaGF2ZSB0byBoYXZlIGEgcXVpY2sgdGltZW91dCBvciBnZXQgYW4gXCJleHByZXNzaW9ucyBjaGFuZ2VkXCIgYW5ndWxhciBlcnJvclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgY29uc3QgbG9jYWxQQ29ubiA9IGFyQ2hpbGRyZW5bMF0uZ2V0UENvbm5lY3QoKTtcblxuICAgICAgICAgIHRoaXMuY29tcG9uZW50TmFtZSQgPSBsb2NhbFBDb25uLmdldENvbXBvbmVudE5hbWUoKTtcbiAgICAgICAgICBpZiAodGhpcy5jb21wb25lbnROYW1lJCA9PT0gJ1ZpZXdDb250YWluZXInKSB7XG4gICAgICAgICAgICBjb25zdCBjb25maWdQcm9wcyA9IHRoaXMucENvbm4kLmdldENvbmZpZ1Byb3BzKCk7XG4gICAgICAgICAgICBjb25zdCB2aWV3Q29udENvbmZpZyA9IHtcbiAgICAgICAgICAgICAgbWV0YToge1xuICAgICAgICAgICAgICAgIHR5cGU6ICdWaWV3Q29udGFpbmVyJyxcbiAgICAgICAgICAgICAgICBjb25maWc6IGNvbmZpZ1Byb3BzXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIG9wdGlvbnNcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHRoaXMudmlld0NvbnRhaW5lclBDb25uJCA9IFBDb3JlLmNyZWF0ZVBDb25uZWN0KHZpZXdDb250Q29uZmlnKS5nZXRQQ29ubmVjdCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmJTaG93Um9vdCQgPSB0cnVlO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHNob3dIaWRlUHJvZ3Jlc3MoYlNob3c6IGJvb2xlYW4pIHtcbiAgICAvLyBvbmx5IHNob3cgc3Bpbm5lciBhZnRlciA1MDBtcyB3YWl0LCBzbyBpZiBzZXJ2ZXIgZmFzdCwgd29uJ3Qgc2VlXG4gICAgaWYgKGJTaG93KSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc29uYXJqcy9uby1jb2xsYXBzaWJsZS1pZlxuICAgICAgaWYgKCF0aGlzLmJJc1Byb2dyZXNzJCkge1xuICAgICAgICAvLyBtYWtlcyBzdXJlIEFuZ3VsYXIgdHJhY2tzIHRoZXNlIGNoYW5nZXNcbiAgICAgICAgaWYgKCF0aGlzLnNwaW5uZXJUaW1lciB8fCB0aGlzLnNwaW5uZXJUaW1lci5pc1N0b3BwZWQpIHtcbiAgICAgICAgICB0aGlzLnNwaW5uZXJUaW1lciA9IGludGVydmFsKDUwMCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIHRoaXMuc3Bpbm5lclRpbWVyLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB9IGNhdGNoIChleCkge1xuICAgICAgICAgICAgICAvKiBlbXB0eSAqL1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmJJc1Byb2dyZXNzJCA9IHRydWU7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5zcGlubmVyVGltZXIgJiYgIXRoaXMuc3Bpbm5lclRpbWVyLmlzU3RvcHBlZCkge1xuICAgICAgICB0aGlzLnNwaW5uZXJUaW1lci51bnN1YnNjcmliZSgpO1xuICAgICAgfVxuXG4gICAgICAvLyBkb24ndCB0b3VjaCBiSXNQcm9ncmVzcyQgdW5sZXNzIGRpZmZlcm5lbnRcbiAgICAgIGlmIChiU2hvdyAhPSB0aGlzLmJJc1Byb2dyZXNzJCkge1xuICAgICAgICAvLyBtYWtlcyBzdXJlIEFuZ3VsYXIgdHJhY2tzIHRoZXNlIGNoYW5nZXNcbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmJJc1Byb2dyZXNzJCA9IGJTaG93O1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJwcm9ncmVzcy1ib3hcIiAqbmdJZj1cImJJc1Byb2dyZXNzJFwiPlxuICA8bWF0LXNwaW5uZXIgY2xhc3M9XCJwcm9ncmVzcy1zcGlubmVyXCI+PC9tYXQtc3Bpbm5lcj5cbjwvZGl2PlxuXG48ZGl2ICpuZ0lmPVwiYlNob3dSb290JFwiPlxuICA8ZGl2IFtuZ1N3aXRjaF09XCJjb21wb25lbnROYW1lJFwiPlxuICAgIDxjb21wb25lbnQtbWFwcGVyICpuZ1N3aXRjaENhc2U9XCInVmlldydcIiBuYW1lPVwiVmlld1wiIFtwcm9wc109XCJ7IHBDb25uJCwgZGlzcGxheU9ubHlGQSQgfVwiPjwvY29tcG9uZW50LW1hcHBlcj5cbiAgICA8IS0tIDxhcHAtcmVmZXJlbmNlICpuZ1N3aXRjaENhc2U9XCIncmVmZXJlbmNlJ1wiIFtwQ29ubiRdPVwicENvbm4kXCIgW2Rpc3BsYXlPbmx5RkEkXT1cImRpc3BsYXlPbmx5RkEkXCI+PC9hcHAtcmVmZXJlbmNlPiAtLT5cbiAgICA8Y29tcG9uZW50LW1hcHBlclxuICAgICAgKm5nU3dpdGNoQ2FzZT1cIidWaWV3Q29udGFpbmVyJ1wiXG4gICAgICBuYW1lPVwiVmlld0NvbnRhaW5lclwiXG4gICAgICBbcHJvcHNdPVwieyBwQ29ubiQ6IGRpc3BsYXlPbmx5RkEkID8gdmlld0NvbnRhaW5lclBDb25uJCA6IHBDb25uJCwgZGlzcGxheU9ubHlGQSQgfVwiXG4gICAgPjwvY29tcG9uZW50LW1hcHBlcj5cbiAgICA8YXBwLWh5YnJpZC12aWV3LWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ0h5YnJpZFZpZXdDb250YWluZXInXCIgW3BDb25uJF09XCJwQ29ubiRcIiBbZGlzcGxheU9ubHlGQSRdPVwiZGlzcGxheU9ubHlGQSRcIj48L2FwcC1oeWJyaWQtdmlldy1jb250YWluZXI+XG4gICAgPGFwcC1tb2RhbC12aWV3LWNvbnRhaW5lclxuICAgICAgKm5nU3dpdGNoQ2FzZT1cIidNb2RhbFZpZXdDb250YWluZXInXCJcbiAgICAgIFtwQ29ubiRdPVwicENvbm4kXCJcbiAgICAgIFtkaXNwbGF5T25seUZBJF09XCJkaXNwbGF5T25seUZBJFwiXG4gICAgICAobW9kYWxWaXNpYmxlQ2hhbmdlKT1cIm1vZGFsVmlzaWJsZUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgPjwvYXBwLW1vZGFsLXZpZXctY29udGFpbmVyPlxuICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIicnXCI+PC9kaXY+XG4gICAgPGRpdiAqbmdTd2l0Y2hEZWZhdWx0Pnt7IGxvY2FsaXplZFZhbCgnUm9vdENvbnRhaW5lciBNaXNzaW5nOiAnICsgY29tcG9uZW50TmFtZSQsIGxvY2FsZUNhdGVnb3J5KSB9fS48L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdiAqbmdJZj1cInB2Q29ubiQgIT0gbnVsbFwiPlxuICA8YXBwLXByZXZpZXctdmlldy1jb250YWluZXIgW3BDb25uJF09XCJwdkNvbm4kXCI+PC9hcHAtcHJldmlldy12aWV3LWNvbnRhaW5lcj5cbjwvZGl2PlxuXG48ZGl2ICpuZ0lmPVwibUNvbm4kICE9IG51bGxcIj5cbiAgPGFwcC1tb2RhbC12aWV3LWNvbnRhaW5lclxuICAgIFtwQ29ubiRdPVwibUNvbm4kXCJcbiAgICBbZGlzcGxheU9ubHlGQSRdPVwiZGlzcGxheU9ubHlGQSRcIlxuICAgIChtb2RhbFZpc2libGVDaGFuZ2UpPVwibW9kYWxWaXNpYmxlQ2hhbmdlZCgkZXZlbnQpXCJcbiAgPjwvYXBwLW1vZGFsLXZpZXctY29udGFpbmVyPlxuPC9kaXY+XG4iXX0=
|
|
218
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vdC1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZGstY29tcG9uZW50cy9zcmMvbGliL19jb21wb25lbnRzL2luZnJhL3Jvb3QtY29udGFpbmVyL3Jvb3QtY29udGFpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy9pbmZyYS9yb290LWNvbnRhaW5lci9yb290LWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBVSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDeEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxRQUFRLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBRzlDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHVFQUF1RSxDQUFDO0FBQ3RILE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG1FQUFtRSxDQUFDO0FBQ2hILE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHFFQUFxRSxDQUFDO0FBQ25ILE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhEQUE4RCxDQUFDOzs7Ozs7QUFFeEc7Ozs7R0FJRztBQUVILE1BQU0sT0FBTyxHQUFHLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDO0FBZ0JuQyxNQUFNLE9BQU8sc0JBQXNCO0lBdUJqQyxZQUNVLGVBQXVDLEVBQ3ZDLFNBQWlDLEVBQ2pDLE1BQWM7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UztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgTmdab25lLCBmb3J3YXJkUmVmLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcbmltcG9ydCB7IGludGVydmFsLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFuZ3VsYXJQQ29ubmVjdERhdGEsIEFuZ3VsYXJQQ29ubmVjdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9fYnJpZGdlL2FuZ3VsYXItcGNvbm5lY3QnO1xuaW1wb3J0IHsgUHJvZ3Jlc3NTcGlubmVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19tZXNzYWdlcy9wcm9ncmVzcy1zcGlubmVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVmZXJlbmNlQ29tcG9uZW50IH0gZnJvbSAnLi4vcmVmZXJlbmNlL3JlZmVyZW5jZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJldmlld1ZpZXdDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuLi9Db250YWluZXJzL3ByZXZpZXctdmlldy1jb250YWluZXIvcHJldmlldy12aWV3LWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTW9kYWxWaWV3Q29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vQ29udGFpbmVycy9tb2RhbC12aWV3LWNvbnRhaW5lci9tb2RhbC12aWV3LWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSHlicmlkVmlld0NvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4uL0NvbnRhaW5lcnMvaHlicmlkLXZpZXctY29udGFpbmVyL2h5YnJpZC12aWV3LWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tcG9uZW50TWFwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vX2JyaWRnZS9jb21wb25lbnQtbWFwcGVyL2NvbXBvbmVudC1tYXBwZXIuY29tcG9uZW50JztcblxuLyoqXG4gKiBXQVJOSU5HOiAgSXQgaXMgbm90IGV4cGVjdGVkIHRoYXQgdGhpcyBmaWxlIHNob3VsZCBiZSBtb2RpZmllZC4gIEl0IGlzIHBhcnQgb2YgaW5mcmFzdHJ1Y3R1cmUgY29kZSB0aGF0IHdvcmtzIHdpdGhcbiAqIFJlZHV4IGFuZCBjcmVhdGlvbi91cGRhdGUgb2YgUmVkdXggY29udGFpbmVycyBhbmQgUENvbm5lY3QuICBNb2RpZnlpbmcgdGhpcyBjb2RlIGNvdWxkIGhhdmUgdW5kZXNpcmVhYmxlIHJlc3VsdHMgYW5kXG4gKiBpcyB0b3RhbGx5IGF0IHlvdXIgb3duIHJpc2suXG4gKi9cblxuY29uc3Qgb3B0aW9ucyA9IHsgY29udGV4dDogJ2FwcCcgfTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXJvb3QtY29udGFpbmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Jvb3QtY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcm9vdC1jb250YWluZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUsXG4gICAgSHlicmlkVmlld0NvbnRhaW5lckNvbXBvbmVudCxcbiAgICBNb2RhbFZpZXdDb250YWluZXJDb21wb25lbnQsXG4gICAgUHJldmlld1ZpZXdDb250YWluZXJDb21wb25lbnQsXG4gICAgZm9yd2FyZFJlZigoKSA9PiBDb21wb25lbnRNYXBwZXJDb21wb25lbnQpXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgUm9vdENvbnRhaW5lckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgcENvbm4kOiB0eXBlb2YgUENvbm5lY3Q7XG4gIEBJbnB1dCgpIGRpc3BsYXlPbmx5RkEkOiBib29sZWFuO1xuICBASW5wdXQoKSBpc01hc2h1cCQ6IGJvb2xlYW47XG5cbiAgLy8gRm9yIGludGVyYWN0aW9uIHdpdGggQW5ndWxhclBDb25uZWN0XG4gIGFuZ3VsYXJQQ29ubmVjdERhdGE6IEFuZ3VsYXJQQ29ubmVjdERhdGEgPSB7fTtcblxuICBjb21wb25lbnROYW1lJCA9ICcnO1xuICBiSXNQcm9ncmVzcyQgPSBmYWxzZTtcblxuICAvLyBwcmV2aWV3IGFuZCBtb2RhbHZpZXcgcENvbm5cbiAgcHZDb25uJDogYW55ID0gbnVsbDtcbiAgbUNvbm4kOiBhbnkgPSBudWxsO1xuXG4gIGJTaG93Um9vdCQgPSB0cnVlO1xuXG4gIHByb2dyZXNzU3Bpbm5lclN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBzcGlubmVyVGltZXI6IGFueSA9IG51bGw7XG4gIHZpZXdDb250YWluZXJQQ29ubiQ6IGFueSA9IG51bGw7XG4gIGxvY2FsaXplZFZhbDogYW55O1xuICBsb2NhbGVDYXRlZ29yeSA9ICdNZXNzYWdlcyc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhbmd1bGFyUENvbm5lY3Q6IEFuZ3VsYXJQQ29ubmVjdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwc1NlcnZpY2U6IFByb2dyZXNzU3Bpbm5lclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgY29uc3QgbXlDb250ZXh0ID0gJ2FwcCc7XG5cbiAgICBjb25zdCB7IGNvbnRhaW5lcnMgfSA9IFBDb3JlLmdldFN0b3JlKCkuZ2V0U3RhdGUoKTtcbiAgICBjb25zdCBpdGVtcyA9IE9iamVjdC5rZXlzKGNvbnRhaW5lcnMpLmZpbHRlcihpdGVtID0+IGl0ZW0uaW5jbHVkZXMoJ3Jvb3QnKSk7XG5cbiAgICBQQ29yZS5nZXRDb250YWluZXJVdGlscygpLmdldENvbnRhaW5lckFQSSgpLmFkZENvbnRhaW5lckl0ZW1zKGl0ZW1zKTtcblxuICAgIC8vIGFkZCBwcmV2aWV3IGFuZCBtb2RhbHZpZXcgY29udGFpbmVycyB0byByZWR1eFxuICAgIC8vIGtlZXAgbG9jYWwgY29waWVzIG9mIHRoZSB0aGUgcENvbm5lY3QgdGhhdCBpcyByZWxhdGVkXG5cbiAgICBjb25zdCBjb25maWdPYmpQcmV2aWV3ID0gUENvcmUuY3JlYXRlUENvbm5lY3Qoe1xuICAgICAgbWV0YToge1xuICAgICAgICB0eXBlOiAnUHJldmlld1ZpZXdDb250YWluZXInLFxuICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICBuYW1lOiAncHJldmlldydcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIG9wdGlvbnNcbiAgICB9KTtcblxuICAgIHRoaXMucHZDb25uJCA9IGNvbmZpZ09ialByZXZpZXcuZ2V0UENvbm5lY3QoKTtcblxuICAgIGNvbnN0IGNvbmZpZ09iak1vZGFsID0gUENvcmUuY3JlYXRlUENvbm5lY3Qoe1xuICAgICAgbWV0YToge1xuICAgICAgICB0eXBlOiAnTW9kYWxWaWV3Q29udGFpbmVyJyxcbiAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgbmFtZTogJ21vZGFsJ1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgb3B0aW9uczoge1xuICAgICAgICBwYWdlUmVmZXJlbmNlOiAncHlQb3J0YWwnLFxuICAgICAgICBjb250ZXh0OiBteUNvbnRleHRcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIGNsZWFyIG91dCBoYXNWaWV3Q29udGFpbmVyXG4gICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnaGFzVmlld0NvbnRhaW5lcicsICdmYWxzZScpO1xuXG4gICAgdGhpcy5tQ29ubiQgPSBjb25maWdPYmpNb2RhbC5nZXRQQ29ubmVjdCgpO1xuXG4gICAgLy8gRmlyc3QgdGhpbmcgaW4gaW5pdGlhbGl6YXRpb24gaXMgcmVnaXN0ZXJpbmcgYW5kIHN1YnNjcmliaW5nIHRvIHRoZSBBbmd1bGFyUENvbm5lY3Qgc2VydmljZVxuICAgIHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YSA9IHRoaXMuYW5ndWxhclBDb25uZWN0LnJlZ2lzdGVyQW5kU3Vic2NyaWJlQ29tcG9uZW50KHRoaXMsIHRoaXMub25TdGF0ZUNoYW5nZSk7XG5cbiAgICAvLyBoYW5kbGUgc2hvd2luZyBhbmQgaGlkaW5nIHRoZSBwcm9ncmVzcyBzcGlubmVyXG4gICAgdGhpcy5wcm9ncmVzc1NwaW5uZXJTdWJzY3JpcHRpb24gPSB0aGlzLnBzU2VydmljZS5nZXRNZXNzYWdlKCkuc3Vic2NyaWJlKG1lc3NhZ2UgPT4ge1xuICAgICAgdGhpcy5zaG93SGlkZVByb2dyZXNzKG1lc3NhZ2Uuc2hvdyk7XG4gICAgfSk7XG4gICAgdGhpcy5sb2NhbGl6ZWRWYWwgPSBQQ29yZS5nZXRMb2NhbGVVdGlscygpLmdldExvY2FsZVZhbHVlO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YS51bnN1YnNjcmliZUZuKSB7XG4gICAgICB0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEudW5zdWJzY3JpYmVGbigpO1xuICAgIH1cbiAgfVxuXG4gIC8vIENhbGxiYWNrIHBhc3NlZCB3aGVuIHN1YnNjcmliaW5nIHRvIHN0b3JlIGNoYW5nZVxuICBvblN0YXRlQ2hhbmdlKCkge1xuICAgIC8vIFNob3VsZCBhbHdheXMgY2hlY2sgdGhlIGJyaWRnZSB0byBzZWUgaWYgdGhlIGNvbXBvbmVudCBzaG91bGQgdXBkYXRlIGl0c2VsZiAocmUtcmVuZGVyKVxuICAgIGNvbnN0IGJVcGRhdGVTZWxmID0gdGhpcy5hbmd1bGFyUENvbm5lY3Quc2hvdWxkQ29tcG9uZW50VXBkYXRlKHRoaXMpO1xuXG4gICAgaWYgKGJVcGRhdGVTZWxmKSB7XG4gICAgICB0aGlzLnVwZGF0ZVNlbGYoKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVTZWxmKCkge1xuICAgIC8vIG5lZWQgdG8gY2FsbCB0aGlzLmdldEN1cnJlbnRDb21wbGV0ZVByb3BzIChub3QgdGhpcy50aGVQQ29ubi5nZXRDb25maWdQcm9wcylcbiAgICAvLyAgdG8gZ2V0IGZ1bGwgc2V0IG9mIHByb3BzIHRoYXQgYWZmZWN0IHRoaXMgY29tcG9uZW50IGluIFJlZHV4XG4gICAgY29uc3QgbXlQcm9wczogYW55ID0gdGhpcy5hbmd1bGFyUENvbm5lY3QuZ2V0Q3VycmVudENvbXBsZXRlUHJvcHModGhpcyk7XG5cbiAgICBjb25zdCByZW5kZXJpbmdNb2RlcyA9IFsncG9ydGFsJywgJ3ZpZXcnXTtcbiAgICBjb25zdCBub1BvcnRhbE1vZGUgPSAnbm9Qb3J0YWwnO1xuXG4gICAgY29uc3QgeyByZW5kZXJpbmdNb2RlLCBjaGlsZHJlbiwgc2tlbGV0b24sIHJvdXRpbmdJbmZvIH0gPSBteVByb3BzO1xuXG4gICAgaWYgKHJvdXRpbmdJbmZvICYmIHJlbmRlcmluZ01vZGVzLmluY2x1ZGVzKHJlbmRlcmluZ01vZGUpKSB7XG4gICAgICBjb25zdCB7IGFjY2Vzc2VkT3JkZXIsIGl0ZW1zIH0gPSByb3V0aW5nSW5mbztcbiAgICAgIGlmIChhY2Nlc3NlZE9yZGVyICYmIGl0ZW1zKSB7XG4gICAgICAgIC8vIGJvb3RzdHJhcCBsb2FkUG9ydGFsIHJlc29sdmVzIHRvIGhlcmVcbiAgICAgICAgY29uc3Qga2V5ID0gYWNjZXNzZWRPcmRlclthY2Nlc3NlZE9yZGVyLmxlbmd0aCAtIDFdO1xuICAgICAgICBpZiAoaXRlbXNba2V5XSAmJiBpdGVtc1trZXldLnZpZXcgJiYgT2JqZWN0LmtleXMoaXRlbXNba2V5XS52aWV3KS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgY29uc3QgaXRlbVZpZXcgPSBpdGVtc1trZXldLnZpZXc7XG5cbiAgICAgICAgICBjb25zdCByb290T2JqZWN0ID0gUENvcmUuY3JlYXRlUENvbm5lY3Qoe1xuICAgICAgICAgICAgbWV0YTogaXRlbVZpZXcsXG4gICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgIGNvbnRleHQ6IGl0ZW1zW2tleV0uY29udGV4dFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAvLyBtYWtlcyBzdXJlIEFuZ3VsYXIgdHJhY2tzIHRoZXNlIGNoYW5nZXNcbiAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgIC8vIHRoZSBuZXcgcm9vdE9iamVjdCBtYXkgYmUgYSAncmVmZXJlbmNlJy4gU28sXG4gICAgICAgICAgICAgIC8vICBub3JtYWxpemUgaXQgdG8gZ2V0IHRoZSByZWZlcmVuY2VkVmlldyBpZiB0aGF0J3MgdGhlIGNhc2VcbiAgICAgICAgICAgICAgY29uc3QgdGhlTmV3UENvbm4gPSBSZWZlcmVuY2VDb21wb25lbnQubm9ybWFsaXplUENvbm4ocm9vdE9iamVjdC5nZXRQQ29ubmVjdCgpKTtcbiAgICAgICAgICAgICAgLy8gdXBkYXRlIENvbXBvbmVudE5hbWUkIGJlZm9yZSB3ZSB1cGRhdGUgcENvbm4kIHRvIG1ha2Ugc3VyZSB0aGV5J3JlIGluIHN5bmNcbiAgICAgICAgICAgICAgLy8gIHdoZW4gcmVuZGVyaW5nLi4uXG4gICAgICAgICAgICAgIHRoaXMuY29tcG9uZW50TmFtZSQgPSB0aGVOZXdQQ29ubi5nZXRDb21wb25lbnROYW1lKCk7XG5cbiAgICAgICAgICAgICAgdGhpcy5wQ29ubiQgPSB0aGVOZXdQQ29ubjtcbiAgICAgICAgICAgICAgLy8gdGhpcy5wQ29ubiQgPSByb290T2JqZWN0LmdldFBDb25uZWN0KCk7XG5cbiAgICAgICAgICAgICAgY29uc29sZS5sb2coYFJvb3RDb250YWluZXIgdXBkYXRlZCBwQ29ubiQgdG8gYmU6ICR7dGhpcy5jb21wb25lbnROYW1lJH1gKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChyZW5kZXJpbmdNb2RlID09PSBub1BvcnRhbE1vZGUpIHtcbiAgICAgIC8vIGNvbnNvbGUubG9nKGBSb290Q29udGFpbmVyOiByZW5kZXJpbmdNb2RlID09PSBub1BvcnRhbE1vZGU6ICR7bm9Qb3J0YWxNb2RlfWApO1xuICAgICAgdGhpcy5nZW5lcmF0ZVZpZXdDb250YWluZXJGb3JOb1BvcnRhbCgpO1xuICAgIH0gZWxzZSBpZiAoY2hpbGRyZW4gJiYgY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgLy8gaGF2ZW4ndCByZXNvbHZlZCB0byBoZXJlXG4gICAgfSBlbHNlIGlmIChza2VsZXRvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyBUT0RPOiBuZWVkIHRvIHVwZGF0ZSBvbmNlIHNrZWxldG9ucyBhcmUgYXZhaWxhYmxlO1xuICAgIH1cbiAgfVxuXG4gIGdlbmVyYXRlVmlld0NvbnRhaW5lckZvck5vUG9ydGFsKCkge1xuICAgIC8vIGJvb3RzdHJhcCBsb2FkTWFzaHVwIHJlc29sdmVzIHRvIGhlcmVcbiAgICBjb25zdCBhckNoaWxkcmVuID0gdGhpcy5wQ29ubiQuZ2V0Q2hpbGRyZW4oKSBhcyBhbnlbXTtcbiAgICBpZiAoYXJDaGlsZHJlbiAmJiBhckNoaWxkcmVuLmxlbmd0aCA9PSAxKSB7XG4gICAgICAvLyBoYXZlIHRvIGhhdmUgYSBxdWljayB0aW1lb3V0IG9yIGdldCBhbiBcImV4cHJlc3Npb25zIGNoYW5nZWRcIiBhbmd1bGFyIGVycm9yXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICBjb25zdCBsb2NhbFBDb25uID0gYXJDaGlsZHJlblswXS5nZXRQQ29ubmVjdCgpO1xuXG4gICAgICAgICAgdGhpcy5jb21wb25lbnROYW1lJCA9IGxvY2FsUENvbm4uZ2V0Q29tcG9uZW50TmFtZSgpO1xuICAgICAgICAgIGlmICh0aGlzLmNvbXBvbmVudE5hbWUkID09PSAnVmlld0NvbnRhaW5lcicpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbmZpZ1Byb3BzID0gdGhpcy5wQ29ubiQuZ2V0Q29uZmlnUHJvcHMoKTtcbiAgICAgICAgICAgIGNvbnN0IHZpZXdDb250Q29uZmlnID0ge1xuICAgICAgICAgICAgICBtZXRhOiB7XG4gICAgICAgICAgICAgICAgdHlwZTogJ1ZpZXdDb250YWluZXInLFxuICAgICAgICAgICAgICAgIGNvbmZpZzogY29uZmlnUHJvcHNcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgb3B0aW9uc1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyUENvbm4kID0gUENvcmUuY3JlYXRlUENvbm5lY3Qodmlld0NvbnRDb25maWcpLmdldFBDb25uZWN0KCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuYlNob3dSb290JCA9IHRydWU7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgc2hvd0hpZGVQcm9ncmVzcyhiU2hvdzogYm9vbGVhbikge1xuICAgIC8vIG9ubHkgc2hvdyBzcGlubmVyIGFmdGVyIDUwMG1zIHdhaXQsIHNvIGlmIHNlcnZlciBmYXN0LCB3b24ndCBzZWVcbiAgICBpZiAoYlNob3cpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBzb25hcmpzL25vLWNvbGxhcHNpYmxlLWlmXG4gICAgICBpZiAoIXRoaXMuYklzUHJvZ3Jlc3MkKSB7XG4gICAgICAgIC8vIG1ha2VzIHN1cmUgQW5ndWxhciB0cmFja3MgdGhlc2UgY2hhbmdlc1xuICAgICAgICBpZiAoIXRoaXMuc3Bpbm5lclRpbWVyIHx8IHRoaXMuc3Bpbm5lclRpbWVyLmlzU3RvcHBlZCkge1xuICAgICAgICAgIHRoaXMuc3Bpbm5lclRpbWVyID0gaW50ZXJ2YWwoNTAwKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgdGhpcy5zcGlubmVyVGltZXIudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICAgICAgICAgIC8qIGVtcHR5ICovXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuYklzUHJvZ3Jlc3MkID0gdHJ1ZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLnNwaW5uZXJUaW1lciAmJiAhdGhpcy5zcGlubmVyVGltZXIuaXNTdG9wcGVkKSB7XG4gICAgICAgIHRoaXMuc3Bpbm5lclRpbWVyLnVuc3Vic2NyaWJlKCk7XG4gICAgICB9XG5cbiAgICAgIC8vIGRvbid0IHRvdWNoIGJJc1Byb2dyZXNzJCB1bmxlc3MgZGlmZmVybmVudFxuICAgICAgaWYgKGJTaG93ICE9IHRoaXMuYklzUHJvZ3Jlc3MkKSB7XG4gICAgICAgIC8vIG1ha2VzIHN1cmUgQW5ndWxhciB0cmFja3MgdGhlc2UgY2hhbmdlc1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgIHRoaXMuYklzUHJvZ3Jlc3MkID0gYlNob3c7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInByb2dyZXNzLWJveFwiICpuZ0lmPVwiYklzUHJvZ3Jlc3MkXCI+XG4gIDxtYXQtc3Bpbm5lciBjbGFzcz1cInByb2dyZXNzLXNwaW5uZXJcIj48L21hdC1zcGlubmVyPlxuPC9kaXY+XG5cbjxkaXYgKm5nSWY9XCJiU2hvd1Jvb3QkXCI+XG4gIDxkaXYgW25nU3dpdGNoXT1cImNvbXBvbmVudE5hbWUkXCI+XG4gICAgPGNvbXBvbmVudC1tYXBwZXIgKm5nU3dpdGNoQ2FzZT1cIidWaWV3J1wiIG5hbWU9XCJWaWV3XCIgW3Byb3BzXT1cInsgcENvbm4kLCBkaXNwbGF5T25seUZBJCB9XCI+PC9jb21wb25lbnQtbWFwcGVyPlxuICAgIDxjb21wb25lbnQtbWFwcGVyXG4gICAgICAqbmdTd2l0Y2hDYXNlPVwiJ1ZpZXdDb250YWluZXInXCJcbiAgICAgIG5hbWU9XCJWaWV3Q29udGFpbmVyXCJcbiAgICAgIFtwcm9wc109XCJ7IHBDb25uJDogdmlld0NvbnRhaW5lclBDb25uJCwgZGlzcGxheU9ubHlGQSQgfVwiXG4gICAgPjwvY29tcG9uZW50LW1hcHBlcj5cbiAgICA8ZGl2ICpuZ1N3aXRjaERlZmF1bHQ+e3sgbG9jYWxpemVkVmFsKCdSb290Q29udGFpbmVyIE1pc3Npbmc6ICcgKyBjb21wb25lbnROYW1lJCwgbG9jYWxlQ2F0ZWdvcnkpIH19LjwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2ICpuZ0lmPVwicHZDb25uJCAhPSBudWxsXCI+XG4gIDxhcHAtcHJldmlldy12aWV3LWNvbnRhaW5lciBbcENvbm4kXT1cInB2Q29ubiRcIj48L2FwcC1wcmV2aWV3LXZpZXctY29udGFpbmVyPlxuPC9kaXY+XG5cbjxkaXYgKm5nSWY9XCJtQ29ubiQgIT0gbnVsbFwiPlxuICA8YXBwLW1vZGFsLXZpZXctY29udGFpbmVyIFtwQ29ubiRdPVwibUNvbm4kXCI+PC9hcHAtbW9kYWwtdmlldy1jb250YWluZXI+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -8,6 +8,19 @@ import * as i1 from "../../../_bridge/angular-pconnect";
|
|
|
8
8
|
import * as i2 from "../../../_helpers/utils";
|
|
9
9
|
import * as i3 from "@angular/common";
|
|
10
10
|
const NO_HEADER_TEMPLATES = ['SubTabs', 'SimpleTable', 'Confirmation', 'DynamicTabs', 'DetailsSubTabs'];
|
|
11
|
+
const DETAILS_TEMPLATES = [
|
|
12
|
+
'Details',
|
|
13
|
+
'DetailsFields',
|
|
14
|
+
'DetailsOneColumn',
|
|
15
|
+
'DetailsSubTabs',
|
|
16
|
+
'DetailsThreeColumn',
|
|
17
|
+
'DetailsTwoColumn',
|
|
18
|
+
'NarrowWideDetails',
|
|
19
|
+
'WideNarrowDetails'
|
|
20
|
+
];
|
|
21
|
+
function isDetailsTemplate(template) {
|
|
22
|
+
return DETAILS_TEMPLATES.includes(template);
|
|
23
|
+
}
|
|
11
24
|
/**
|
|
12
25
|
* WARNING: It is not expected that this file should be modified. It is part of infrastructure code that works with
|
|
13
26
|
* Redux and creation/update of Redux containers and PConnect. Modifying this code could have undesireable results and
|
|
@@ -100,7 +113,7 @@ export class ViewComponent {
|
|
|
100
113
|
this.templateName$ = this.configProps$.template || '';
|
|
101
114
|
this.title$ = this.configProps$.title || '';
|
|
102
115
|
this.label$ = this.configProps$.label || '';
|
|
103
|
-
this.showLabel$ = this.configProps$.showLabel || this.showLabel$;
|
|
116
|
+
this.showLabel$ = this.configProps$.showLabel || isDetailsTemplate(this.templateName$) || this.showLabel$;
|
|
104
117
|
// label & showLabel within inheritedProps takes precedence over configProps
|
|
105
118
|
this.label$ = this.inheritedProps$.label || this.label$;
|
|
106
119
|
this.showLabel$ = this.inheritedProps$.showLabel || this.showLabel$;
|
|
@@ -172,4 +185,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
172
185
|
}], displayOnlyFA$: [{
|
|
173
186
|
type: Input
|
|
174
187
|
}] } });
|
|
175
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXNkay1jb21wb25lbnRzL3NyYy9saWIvX2NvbXBvbmVudHMvaW5mcmEvdmlldy92aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy9pbmZyYS92aWV3L3ZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsVUFBVSxFQUF1QyxNQUFNLGVBQWUsQ0FBQztBQUMxRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFJL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhEQUE4RCxDQUFDOzs7OztBQUV4RyxNQUFNLG1CQUFtQixHQUFHLENBQUMsU0FBUyxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixDQUFDLENBQUM7QUFFeEc7Ozs7R0FJRztBQUVIOzs7O0dBSUc7QUFDSCxTQUFTLGtCQUFrQixDQUFDLE1BQU07SUFDaEMsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQztJQUNsRCxJQUFJLFdBQVcsSUFBSSxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDdEMsd0dBQXdHO1FBQ3hHLE1BQU0sV0FBVyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUMsaUdBQWlH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b0JBQ3RDLGdEQUFnRDtvQkFDaEQsTUFBTSxXQUFXLEdBQUc7d0JBQ2xCLGFBQWEsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO3dCQUMzQixlQUFlLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztxQkFDOUIsQ0FBQztvQkFDRixPQUFPLEdBQUcsV0FBVyxDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxDQUFDO29CQUN0RCxNQUFNO2dCQUVSLEtBQUssU0FBUztvQkFDWixTQUFTLEdBQUcsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDO29CQUN0QyxPQUFPLEdBQUcsRUFBRSxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQ25DLE1BQU07Z0JBQ1I7b0JBQ0UsTUFBTTtZQUNWLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUMzQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDM0MsQ0FBQztJQUNILENBQUM7K0dBL0lVLGFBQWE7bUdBQWIsYUFBYSxtTEN6RTFCLG81QkF5QkEscVFEOENZLFlBQVksK1RBQW1CLHdCQUF3Qjs7NEZBRXRELGFBQWE7a0JBUHpCLFNBQVM7K0JBQ0UsVUFBVSxjQUdSLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsd0JBQXdCLENBQUMsQ0FBQzsrR0FHMUQsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgZm9yd2FyZFJlZiwgU2ltcGxlQ2hhbmdlcywgT25EZXN0cm95LCBPbkNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBbmd1bGFyUENvbm5lY3REYXRhLCBBbmd1bGFyUENvbm5lY3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vX2JyaWRnZS9hbmd1bGFyLXBjb25uZWN0JztcbmltcG9ydCB7IFV0aWxzIH0gZnJvbSAnLi4vLi4vLi4vX2hlbHBlcnMvdXRpbHMnO1xuaW1wb3J0IHsgZ2V0QWxsRmllbGRzIH0gZnJvbSAnLi4vLi4vdGVtcGxhdGUvdXRpbHMnO1xuaW1wb3J0IHsgUmVmZXJlbmNlQ29tcG9uZW50IH0gZnJvbSAnLi4vcmVmZXJlbmNlL3JlZmVyZW5jZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tcG9uZW50TWFwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vX2JyaWRnZS9jb21wb25lbnQtbWFwcGVyL2NvbXBvbmVudC1tYXBwZXIuY29tcG9uZW50JztcblxuY29uc3QgTk9fSEVBREVSX1RFTVBMQVRFUyA9IFsnU3ViVGFicycsICdTaW1wbGVUYWJsZScsICdDb25maXJtYXRpb24nLCAnRHluYW1pY1RhYnMnLCAnRGV0YWlsc1N1YlRhYnMnXTtcblxuLyoqXG4gKiBXQVJOSU5HOiAgSXQgaXMgbm90IGV4cGVjdGVkIHRoYXQgdGhpcyBmaWxlIHNob3VsZCBiZSBtb2RpZmllZC4gIEl0IGlzIHBhcnQgb2YgaW5mcmFzdHJ1Y3R1cmUgY29kZSB0aGF0IHdvcmtzIHdpdGhcbiAqIFJlZHV4IGFuZCBjcmVhdGlvbi91cGRhdGUgb2YgUmVkdXggY29udGFpbmVycyBhbmQgUENvbm5lY3QuICBNb2RpZnlpbmcgdGhpcyBjb2RlIGNvdWxkIGhhdmUgdW5kZXNpcmVhYmxlIHJlc3VsdHMgYW5kXG4gKiBpcyB0b3RhbGx5IGF0IHlvdXIgb3duIHJpc2suXG4gKi9cblxuLyoqXG4gKlxuICogQHBhcmFtIHBDb25ubiAtIFBDb25uZWN0IE9iamVjdFxuICogQHJldHVybnMgdmlzaWJpbGl0eSBleHByZXNzaW9uIHJlc3VsdCBpZiBleGlzdHMsIG90aGVyd2lzZSB0cnVlXG4gKi9cbmZ1bmN0aW9uIGV2YWx1YXRlVmlzaWJpbGl0eShwQ29ubm4pIHtcbiAgbGV0IGJWaXNpYmlsaXR5ID0gdHJ1ZTtcbiAgY29uc3Qgc1Zpc2liaWxpdHkgPSBwQ29ubm4ubWV0YS5jb25maWcudmlzaWJpbGl0eTtcbiAgaWYgKHNWaXNpYmlsaXR5ICYmIHNWaXNpYmlsaXR5Lmxlbmd0aCkge1xuICAgIC8vIGUuZy4gXCJARSAuRW1iZWRkZWREYXRhX1NlbGVjdGVkVGVzdE5hbWUgPT0gJ1JlYWRvbmx5JyAmJiAuRW1iZWRkZWREYXRhX1NlbGVjdGVkU3ViQ2F0ZWdvcnkgPT0gJ01vZGUnXCJcbiAgICBjb25zdCBhVmlzaWJpbGl0eSA9IHNWaXNpYmlsaXR5LnNwbGl0KCcmJicpO1xuICAgIC8vIGUuZy4gW1wiRW1iZWRkZWREYXRhX1NlbGVjdGVkVGVzdE5hbWVcIjogXCJSZWFkb25seVwiLCBcIkVtYmVkZGVkRGF0YV9TZWxlY3RlZFN1YkNhdGVnb3J5XCI6IFwiTW9kZVwiXVxuICAgIGNvbnN0IGNvbnRleHQgPSBwQ29ubm4uZ2V0Q29udGV4dE5hbWUoKTtcbiAgICAvLyBSZWFkaW5nIHZhbHVlcyBmcm9tIHRoZSBTdG9yZSB0byBldmFsdWF0ZSB0aGUgdmlzaWJpbGl0eSBleHByZXNzaW9uc1xuICAgIGNvbnN0IHN0b3JlRGF0YSA9IFBDb3JlLmdldFN0b3JlKCkuZ2V0U3RhdGUoKT8uZGF0YVtjb250ZXh0XS5jYXNlSW5mby5jb250ZW50O1xuXG4gICAgY29uc3QgaW5pdGlhbFZhbCA9IHt9O1xuICAgIGNvbnN0IG9Qcm9wZXJ0aWVzID0gYVZpc2liaWxpdHkucmVkdWNlKChwcm9wZXJ0aWVzLCBwcm9wZXJ0eSkgPT4ge1xuICAgICAgY29uc3Qga2V5U3RhcnRJbmRleCA9IHByb3BlcnR5LmluZGV4T2YoJy4nKTtcbiAgICAgIGNvbnN0IGtleUVuZEluZGV4ID0gcHJvcGVydHkuaW5kZXhPZignPScpIC0gMTtcbiAgICAgIGNvbnN0IHZhbHVlU3RhcnRJbmRleCA9IHByb3BlcnR5LmluZGV4T2YoXCInXCIpO1xuICAgICAgY29uc3QgdmFsdWVFbmRJbmRleCA9IHByb3BlcnR5Lmxhc3RJbmRleE9mKFwiJ1wiKSAtIDE7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5wcm9wZXJ0aWVzLFxuICAgICAgICBbcHJvcGVydHkuc3Vic3RyKGtleVN0YXJ0SW5kZXggKyAxLCBrZXlFbmRJbmRleCAtIGtleVN0YXJ0SW5kZXggLSAxKV06IHByb3BlcnR5LnN1YnN0cih2YWx1ZVN0YXJ0SW5kZXggKyAxLCB2YWx1ZUVuZEluZGV4IC0gdmFsdWVTdGFydEluZGV4KVxuICAgICAgfTtcbiAgICB9LCBpbml0aWFsVmFsKTtcblxuICAgIGNvbnN0IHByb3BlcnR5S2V5cyA9IE9iamVjdC5rZXlzKG9Qcm9wZXJ0aWVzKTtcbiAgICBjb25zdCBwcm9wZXJ0eVZhbHVlcyA9IE9iamVjdC52YWx1ZXMob1Byb3BlcnRpZXMpO1xuXG4gICAgZm9yIChsZXQgcHJvcGVydHlJbmRleCA9IDA7IHByb3BlcnR5SW5kZXggPCBwcm9wZXJ0eUtleXMubGVuZ3RoOyBwcm9wZXJ0eUluZGV4KyspIHtcbiAgICAgIGlmIChzdG9yZURhdGFbcHJvcGVydHlLZXlzW3Byb3BlcnR5SW5kZXhdXSAhPT0gcHJvcGVydHlWYWx1ZXNbcHJvcGVydHlJbmRleF0pIHtcbiAgICAgICAgYlZpc2liaWxpdHkgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIGJWaXNpYmlsaXR5O1xufVxuXG5pbnRlcmZhY2UgVmlld1Byb3BzIHtcbiAgLy8gSWYgYW55LCBlbnRlciBhZGRpdGlvbmFsIHByb3BzIHRoYXQgb25seSBleGlzdCBvbiB0aGlzIGNvbXBvbmVudFxuICB0ZW1wbGF0ZT86IHN0cmluZztcbiAgbGFiZWw/OiBzdHJpbmc7XG4gIHNob3dMYWJlbDogYm9vbGVhbjtcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIHZpc2liaWxpdHk/OiBib29sZWFuO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtdmlldycsXG4gIHRlbXBsYXRlVXJsOiAnLi92aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdmlldy5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBmb3J3YXJkUmVmKCgpID0+IENvbXBvbmVudE1hcHBlckNvbXBvbmVudCldXG59KVxuZXhwb3J0IGNsYXNzIFZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgcENvbm4kOiB0eXBlb2YgUENvbm5lY3Q7XG4gIEBJbnB1dCgpIGZvcm1Hcm91cCQ6IEZvcm1Hcm91cDtcbiAgQElucHV0KCkgZGlzcGxheU9ubHlGQSQ6IGJvb2xlYW47XG4gIC8vIEBJbnB1dCgpIHVwZGF0ZVRva2VuJDogbnVtYmVyO1xuXG4gIGFuZ3VsYXJQQ29ubmVjdERhdGE6IEFuZ3VsYXJQQ29ubmVjdERhdGEgPSB7fTtcblxuICBub0hlYWRlclRlbXBsYXRlcyA9IE5PX0hFQURFUl9URU1QTEFURVM7XG5cbiAgY29uZmlnUHJvcHMkOiBWaWV3UHJvcHM7XG4gIGluaGVyaXRlZFByb3BzJDogYW55O1xuICBhckNoaWxkcmVuJDogYW55W107XG4gIHRlbXBsYXRlTmFtZSQ6IHN0cmluZztcbiAgdGl0bGUkID0gJyc7XG4gIGxhYmVsJCA9ICcnO1xuICBzaG93TGFiZWwkID0gZmFsc2U7XG4gIHZpc2liaWxpdHkkID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGFuZ3VsYXJQQ29ubmVjdDogQW5ndWxhclBDb25uZWN0U2VydmljZSxcbiAgICBwcml2YXRlIHV0aWxzOiBVdGlsc1xuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgLy8gRmlyc3QgdGhpbmcgaW4gaW5pdGlhbGl6YXRpb24gaXMgcmVnaXN0ZXJpbmcgYW5kIHN1YnNjcmliaW5nIHRvIHRoZSBBbmd1bGFyUENvbm5lY3Qgc2VydmljZVxuICAgIHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YSA9IHRoaXMuYW5ndWxhclBDb25uZWN0LnJlZ2lzdGVyQW5kU3Vic2NyaWJlQ29tcG9uZW50KHRoaXMsIHRoaXMub25TdGF0ZUNoYW5nZSk7XG5cbiAgICB0aGlzLmNoZWNrQW5kVXBkYXRlKCk7XG4gIH1cblxuICAvLyBDYWxsYmFjayBwYXNzZWQgd2hlbiBzdWJzY3JpYmluZyB0byBzdG9yZSBjaGFuZ2VcbiAgb25TdGF0ZUNoYW5nZSgpIHtcbiAgICB0aGlzLmNoZWNrQW5kVXBkYXRlKCk7XG4gIH1cblxuICBjaGVja0FuZFVwZGF0ZSgpIHtcbiAgICAvLyBTaG91bGQgYWx3YXlzIGNoZWNrIHRoZSBicmlkZ2UgdG8gc2VlIGlmIHRoZSBjb21wb25lbnQgc2hvdWxkXG4gICAgLy8gdXBkYXRlIGl0c2VsZiAocmUtcmVuZGVyKVxuICAgIGNvbnN0IGJVcGRhdGVTZWxmID0gdGhpcy5hbmd1bGFyUENvbm5lY3Quc2hvdWxkQ29tcG9uZW50VXBkYXRlKHRoaXMpO1xuXG4gICAgLy8gT05MWSBjYWxsIHVwZGF0ZVNlbGYgd2hlbiB0aGUgY29tcG9uZW50IHNob3VsZCB1cGRhdGVcbiAgICBpZiAoYlVwZGF0ZVNlbGYpIHtcbiAgICAgIHRoaXMudXBkYXRlU2VsZigpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBjb25zdCB7IHBDb25uJCB9ID0gY2hhbmdlcztcblxuICAgIGlmIChwQ29ubiQucHJldmlvdXNWYWx1ZSAmJiBwQ29ubiQucHJldmlvdXNWYWx1ZSAhPT0gcENvbm4kLmN1cnJlbnRWYWx1ZSkge1xuICAgICAgdGhpcy5jaGVja0FuZFVwZGF0ZSgpO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZVNlbGYoKSB7XG4gICAgaWYgKHRoaXMuYW5ndWxhclBDb25uZWN0LmdldENvbXBvbmVudElEKHRoaXMpID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBkZWJ1Z2dlcjtcblxuICAgIC8vIG5vcm1hbGl6ZSB0aGlzLnBDb25uJCBpbiBjYXNlIGl0IGNvbnRhaW5zIGEgJ3JlZmVyZW5jZSdcbiAgICB0aGlzLnBDb25uJCA9IFJlZmVyZW5jZUNvbXBvbmVudC5ub3JtYWxpemVQQ29ubih0aGlzLnBDb25uJCk7XG5cbiAgICB0aGlzLmNvbmZpZ1Byb3BzJCA9IHRoaXMucENvbm4kLnJlc29sdmVDb25maWdQcm9wcyh0aGlzLnBDb25uJC5nZXRDb25maWdQcm9wcygpKSBhcyBWaWV3UHJvcHM7XG4gICAgdGhpcy5pbmhlcml0ZWRQcm9wcyQgPSB0aGlzLnBDb25uJC5nZXRJbmhlcml0ZWRQcm9wcygpO1xuXG4gICAgLy8gTk9URTogdGhpcy5jb25maWdQcm9wcyQudmlzaWJpbGl0eSddIGlzIHVzZWQgaW4gdmlldy5jb21wb25lbnQudHMgc3VjaCB0aGF0XG4gICAgLy8gIHRoZSBWaWV3IHdpbGwgb25seSBiZSByZW5kZXJlZCB3aGVuIHRoaXMuY29uZmlnUHJvcHMkLnZpc2liaWxpdHknXSBpcyBmYWxzZS5cbiAgICAvLyAgSXQgV0lMTCByZW5kZXIgaWYgdHJ1ZSBvciB1bmRlZmluZWQuXG5cbiAgICB0aGlzLnRlbXBsYXRlTmFtZSQgPSB0aGlzLmNvbmZpZ1Byb3BzJC50ZW1wbGF0ZSB8fCAnJztcbiAgICB0aGlzLnRpdGxlJCA9IHRoaXMuY29uZmlnUHJvcHMkLnRpdGxlIHx8ICcnO1xuICAgIHRoaXMubGFiZWwkID0gdGhpcy5jb25maWdQcm9wcyQubGFiZWwgfHwgJyc7XG4gICAgdGhpcy5zaG93TGFiZWwkID0gdGhpcy5jb25maWdQcm9wcyQuc2hvd0xhYmVsIHx8IHRoaXMuc2hvd0xhYmVsJDtcbiAgICAvLyBsYWJlbCAmIHNob3dMYWJlbCB3aXRoaW4gaW5oZXJpdGVkUHJvcHMgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIGNvbmZpZ1Byb3BzXG4gICAgdGhpcy5sYWJlbCQgPSB0aGlzLmluaGVyaXRlZFByb3BzJC5sYWJlbCB8fCB0aGlzLmxhYmVsJDtcbiAgICB0aGlzLnNob3dMYWJlbCQgPSB0aGlzLmluaGVyaXRlZFByb3BzJC5zaG93TGFiZWwgfHwgdGhpcy5zaG93TGFiZWwkO1xuICAgIC8vIGNoaWxkcmVuIG1heSBoYXZlIGEgJ3JlZmVyZW5jZScgc28gbm9ybWFsaXplIHRoZSBjaGlsZHJlbiBhcnJheVxuICAgIHRoaXMuYXJDaGlsZHJlbiQgPSBSZWZlcmVuY2VDb21wb25lbnQubm9ybWFsaXplUENvbm5BcnJheSh0aGlzLnBDb25uJC5nZXRDaGlsZHJlbigpKTtcblxuICAgIHRoaXMudmlzaWJpbGl0eSQgPSB0aGlzLmNvbmZpZ1Byb3BzJC52aXNpYmlsaXR5ID8/IHRoaXMudmlzaWJpbGl0eSQ7XG5cbiAgICAvKipcbiAgICAgKiBJbiBpbnN0YW5jZXMgd2hlcmUgdGhlcmUgaXMgY29udGV4dCwgbGlrZSB3aXRoIFwic2hpcHBpbmdBZGRyZXNzLFwiIHRoZSBwYWdlUmVmZXJlbmNlIGJlY29tZXMgXCJjYXNlSW5mby5jb250ZW50LnNoaXBwaW5nQWRkcmVzcy5cIlxuICAgICAqIFRoaXMgbGVhZHMgdG8gcHJvYmxlbXMgaW4gdGhlIGdldFByb3BlcnR5IEFQSSwgYXMgaXQgaW5jb3JyZWN0bHkgYXNzZXNzZXMgdGhlIHZpc2liaWxpdHkgY29uZGl0aW9uIGJ5IGxvb2tpbmcgaW4gdGhlIHdyb25nIGxvY2F0aW9uXG4gICAgICogaW4gdGhlIFN0b3JlIGZvciB0aGUgcHJvcGVydHkgdmFsdWVzLiBSZWZlcmVuY2UgY29tcG9uZW50IHNob3VsZCBiZSBhYmxlIHRvIGhhbmRsZSBzdWNoIHNjZW5hcmlvcyhhcyBkb25lIGluIFNESy1SKSBzaW5jZSBpdCBoYXMgdGhlXG4gICAgICogZXhwZWN0ZWQgcGFnZVJlZmVyZW5jZSB2YWx1ZXMsIHRoZSBWaWV3IGNvbXBvbmVudCBjdXJyZW50bHkgY2Fubm90IGhhbmRsZSB0aGlzLlxuICAgICAqIFRoZSByZXNvbHV0aW9uIGxpZXMgaW4gdHJhbnNmZXJyaW5nIHRoaXMgcmVzcG9uc2liaWxpdHkgdG8gdGhlIFJlZmVyZW5jZSBjb21wb25lbnQsIGVsaW1pbmF0aW5nIHRoZSBuZWVkIGZvciB0aGlzIGNvZGUgd2hlbiBSZWZlcmVuY2VcbiAgICAgKiBjb21wb25lbnQgaXMgYWJsZSB0byBoYW5kbGUgaXQuXG4gICAgICovXG4gICAgaWYgKCF0aGlzLmNvbmZpZ1Byb3BzJC52aXNpYmlsaXR5ICYmIHRoaXMucENvbm4kLmdldFBhZ2VSZWZlcmVuY2UoKS5sZW5ndGggPiAnY2FzZUluZm8uY29udGVudCcubGVuZ3RoKSB7XG4gICAgICB0aGlzLnZpc2liaWxpdHkkID0gZXZhbHVhdGVWaXNpYmlsaXR5KHRoaXMucENvbm4kKTtcbiAgICB9XG5cbiAgICAvLyB3YXM6ICB0aGlzLmFyQ2hpbGRyZW4kID0gdGhpcy5wQ29ubiQuZ2V0Q2hpbGRyZW4oKSBhcyBBcnJheTxhbnk+O1xuXG4gICAgLy8gZGVidWdcbiAgICAvLyBsZXQgIGtpZExpc3Q6IHN0cmluZyA9IFwiXCI7XG4gICAgLy8gZm9yIChsZXQgaSBpbiB0aGlzLmFyQ2hpbGRyZW4kKSB7XG4gICAgLy8gICBraWRMaXN0ID0ga2lkTGlzdC5jb25jYXQodGhpcy5hckNoaWxkcmVuJFtpXS5nZXRQQ29ubmVjdCgpLmdldENvbXBvbmVudE5hbWUoKSkuY29uY2F0KFwiLFwiKTtcbiAgICAvLyB9XG4gICAgLy8gY29uc29sZS5sb2coXCItLT52aWV3IHVwZGF0ZTogXCIgKyB0aGlzLmFuZ3VsYXJQQ29ubmVjdC5nZXRDb21wb25lbnRJRCh0aGlzKSArIFwiLCB0ZW1wbGF0ZTogXCIgKyB0aGlzLnRlbXBsYXRlTmFtZSQgKyBcIiwga2lkczogXCIgKyBraWRMaXN0KTtcbiAgfVxuXG4gIC8vIEpBIC0gYWRhcHRpbmcgYWRkaXRpb25hbFByb3BzIGZyb20gTmVidWxhL0NvbnN0ZWxsYXRpb24gdmVyc2lvbiB3aGljaCB1c2VzIHN0YXRpYyBtZXRob2RzXG4gIC8vICAgIG9uIHRoZSBjb21wb25lbnQgY2xhc3NlcyBzdG9yZWQgaW4gUENvbXBvbmVudHMgKHRoYXQgQW5ndWxhciBkb2Vzbid0IGhhdmUpLi4uXG4gIGFkZGl0aW9uYWxQcm9wcyhzdGF0ZTogYW55LCBnZXRQQ29ubmVjdDogYW55KSB7XG4gICAgbGV0IHByb3BPYmogPSB7fTtcblxuICAgIC8vIFdlIGFscmVhZHkgaGF2ZSB0aGUgdGVtcGxhdGUgbmFtZSBpbiB0aGlzLnRlbXBsYXRlTmFtZSRcbiAgICBpZiAodGhpcy50ZW1wbGF0ZU5hbWUkICE9PSAnJykge1xuICAgICAgbGV0IGFsbEZpZWxkcyA9IHt9O1xuXG4gICAgICAvLyBUaGVzZSB1c2VzIGFyZSBhZGFwdGVkIGZyb20gTmVidWxhL0NvbnN0ZWxsYXRpb24gQ2FzZVN1bW1hcnkuYWRkaXRpb25hbFByb3BzXG4gICAgICBzd2l0Y2ggKHRoaXMudGVtcGxhdGVOYW1lJCkge1xuICAgICAgICBjYXNlICdDYXNlU3VtbWFyeSc6XG4gICAgICAgICAgYWxsRmllbGRzID0gZ2V0QWxsRmllbGRzKGdldFBDb25uZWN0KTtcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY2FzZS1kZWNsYXJhdGlvbnNcbiAgICAgICAgICBjb25zdCB1bnJlc0ZpZWxkcyA9IHtcbiAgICAgICAgICAgIHByaW1hcnlGaWVsZHM6IGFsbEZpZWxkc1swXSxcbiAgICAgICAgICAgIHNlY29uZGFyeUZpZWxkczogYWxsRmllbGRzWzFdXG4gICAgICAgICAgfTtcbiAgICAgICAgICBwcm9wT2JqID0gZ2V0UENvbm5lY3QucmVzb2x2ZUNvbmZpZ1Byb3BzKHVucmVzRmllbGRzKTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICdEZXRhaWxzJzpcbiAgICAgICAgICBhbGxGaWVsZHMgPSBnZXRBbGxGaWVsZHMoZ2V0UENvbm5lY3QpO1xuICAgICAgICAgIHByb3BPYmogPSB7IGZpZWxkczogYWxsRmllbGRzWzBdIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHByb3BPYmo7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hbmd1bGFyUENvbm5lY3REYXRhLnVuc3Vic2NyaWJlRm4pIHtcbiAgICAgIHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YS51bnN1YnNjcmliZUZuKCk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwidmlzaWJpbGl0eSQgIT09IGZhbHNlXCIgY2xhc3M9XCJuZy12aWV3LXRvcFwiPlxuICA8ZGl2ICpuZ0lmPVwic2hvd0xhYmVsJCAmJiBsYWJlbCQgJiYgIW5vSGVhZGVyVGVtcGxhdGVzLmluY2x1ZGVzKHRlbXBsYXRlTmFtZSQpXCIgY2xhc3M9XCJ0ZW1wbGF0ZS10aXRsZS1jb250YWluZXJcIj5cbiAgICA8c3Bhbj57eyBsYWJlbCQgfX08L3NwYW4+XG4gIDwvZGl2PlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0ZW1wbGF0ZU5hbWUkOyBlbHNlIG5vVGVtcGxhdGVcIj5cbiAgICA8ZGl2PlxuICAgICAgPGNvbXBvbmVudC1tYXBwZXJcbiAgICAgICAgW25hbWVdPVwidGVtcGxhdGVOYW1lJFwiXG4gICAgICAgIFtwcm9wc109XCJ7IGZvcm1Hcm91cCQsIHBDb25uJCwgZGlzcGxheU9ubHlGQSQgfVwiXG4gICAgICAgIGVycm9yTXNnPVwiVmlldyB0ZW1wbGF0ZSBub3QgcmVjb2duaXplZDogW3t7IHRlbXBsYXRlTmFtZSQgfX1dXCJcbiAgICAgID48L2NvbXBvbmVudC1tYXBwZXI+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy10ZW1wbGF0ZSAjbm9UZW1wbGF0ZT5cbiAgICA8ZGl2ICpuZ0Zvcj1cImxldCBraWQgb2YgYXJDaGlsZHJlbiRcIj5cbiAgICAgIDxjb21wb25lbnQtbWFwcGVyXG4gICAgICAgIFtuYW1lXT1cImtpZC5nZXRQQ29ubmVjdCgpLmdldENvbXBvbmVudE5hbWUoKVwiXG4gICAgICAgIFtwcm9wc109XCJ7IHBDb25uJDoga2lkLmdldFBDb25uZWN0KCkgfVwiXG4gICAgICAgIGVycm9yTXNnPVwiVmlldyBNaXNzaW5nIChkaXNwbGF5QWxsKToge3sga2lkLmdldFBDb25uZWN0KCkuZ2V0Q29tcG9uZW50TmFtZSgpIH19XCJcbiAgICAgID48L2NvbXBvbmVudC1tYXBwZXI+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cbiJdfQ==
|
|
188
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXNkay1jb21wb25lbnRzL3NyYy9saWIvX2NvbXBvbmVudHMvaW5mcmEvdmlldy92aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy9pbmZyYS92aWV3L3ZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsVUFBVSxFQUF1QyxNQUFNLGVBQWUsQ0FBQztBQUMxRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFJL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhEQUE4RCxDQUFDOzs7OztBQUV4RyxNQUFNLG1CQUFtQixHQUFHLENBQUMsU0FBUyxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixDQUFDLENBQUM7QUFDeEcsTUFBTSxpQkFBaUIsR0FBRztJQUN4QixTQUFTO0lBQ1QsZUFBZTtJQUNmLGtCQUFrQjtJQUNsQixnQkFBZ0I7SUFDaEIsb0JBQW9CO0lBQ3BCLGtCQUFrQjtJQUNsQixtQkFBbUI7SUFDbkIsbUJBQW1CO0NBQ3BCLENBQUM7QUFFRixTQUFTLGlCQUFpQixDQUFDLFFBQVE7SUFDakMsT0FBTyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDOUMsQ0FBQztBQUVEOzs7O0dBSUc7QUFFSDs7OztHQUlHO0FBQ0gsU0FBUyxrQkFBa0IsQ0FBQyxNQUFNO0lB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QyxHQUFHLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDOytHQUcxRCxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBmb3J3YXJkUmVmLCBTaW1wbGVDaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFuZ3VsYXJQQ29ubmVjdERhdGEsIEFuZ3VsYXJQQ29ubmVjdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9fYnJpZGdlL2FuZ3VsYXItcGNvbm5lY3QnO1xuaW1wb3J0IHsgVXRpbHMgfSBmcm9tICcuLi8uLi8uLi9faGVscGVycy91dGlscyc7XG5pbXBvcnQgeyBnZXRBbGxGaWVsZHMgfSBmcm9tICcuLi8uLi90ZW1wbGF0ZS91dGlscyc7XG5pbXBvcnQgeyBSZWZlcmVuY2VDb21wb25lbnQgfSBmcm9tICcuLi9yZWZlcmVuY2UvcmVmZXJlbmNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21wb25lbnRNYXBwZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9fYnJpZGdlL2NvbXBvbmVudC1tYXBwZXIvY29tcG9uZW50LW1hcHBlci5jb21wb25lbnQnO1xuXG5jb25zdCBOT19IRUFERVJfVEVNUExBVEVTID0gWydTdWJUYWJzJywgJ1NpbXBsZVRhYmxlJywgJ0NvbmZpcm1hdGlvbicsICdEeW5hbWljVGFicycsICdEZXRhaWxzU3ViVGFicyddO1xuY29uc3QgREVUQUlMU19URU1QTEFURVMgPSBbXG4gICdEZXRhaWxzJyxcbiAgJ0RldGFpbHNGaWVsZHMnLFxuICAnRGV0YWlsc09uZUNvbHVtbicsXG4gICdEZXRhaWxzU3ViVGFicycsXG4gICdEZXRhaWxzVGhyZWVDb2x1bW4nLFxuICAnRGV0YWlsc1R3b0NvbHVtbicsXG4gICdOYXJyb3dXaWRlRGV0YWlscycsXG4gICdXaWRlTmFycm93RGV0YWlscydcbl07XG5cbmZ1bmN0aW9uIGlzRGV0YWlsc1RlbXBsYXRlKHRlbXBsYXRlKSB7XG4gIHJldHVybiBERVRBSUxTX1RFTVBMQVRFUy5pbmNsdWRlcyh0ZW1wbGF0ZSk7XG59XG5cbi8qKlxuICogV0FSTklORzogIEl0IGlzIG5vdCBleHBlY3RlZCB0aGF0IHRoaXMgZmlsZSBzaG91bGQgYmUgbW9kaWZpZWQuICBJdCBpcyBwYXJ0IG9mIGluZnJhc3RydWN0dXJlIGNvZGUgdGhhdCB3b3JrcyB3aXRoXG4gKiBSZWR1eCBhbmQgY3JlYXRpb24vdXBkYXRlIG9mIFJlZHV4IGNvbnRhaW5lcnMgYW5kIFBDb25uZWN0LiAgTW9kaWZ5aW5nIHRoaXMgY29kZSBjb3VsZCBoYXZlIHVuZGVzaXJlYWJsZSByZXN1bHRzIGFuZFxuICogaXMgdG90YWxseSBhdCB5b3VyIG93biByaXNrLlxuICovXG5cbi8qKlxuICpcbiAqIEBwYXJhbSBwQ29ubm4gLSBQQ29ubmVjdCBPYmplY3RcbiAqIEByZXR1cm5zIHZpc2liaWxpdHkgZXhwcmVzc2lvbiByZXN1bHQgaWYgZXhpc3RzLCBvdGhlcndpc2UgdHJ1ZVxuICovXG5mdW5jdGlvbiBldmFsdWF0ZVZpc2liaWxpdHkocENvbm5uKSB7XG4gIGxldCBiVmlzaWJpbGl0eSA9IHRydWU7XG4gIGNvbnN0IHNWaXNpYmlsaXR5ID0gcENvbm5uLm1ldGEuY29uZmlnLnZpc2liaWxpdHk7XG4gIGlmIChzVmlzaWJpbGl0eSAmJiBzVmlzaWJpbGl0eS5sZW5ndGgpIHtcbiAgICAvLyBlLmcuIFwiQEUgLkVtYmVkZGVkRGF0YV9TZWxlY3RlZFRlc3ROYW1lID09ICdSZWFkb25seScgJiYgLkVtYmVkZGVkRGF0YV9TZWxlY3RlZFN1YkNhdGVnb3J5ID09ICdNb2RlJ1wiXG4gICAgY29uc3QgYVZpc2liaWxpdHkgPSBzVmlzaWJpbGl0eS5zcGxpdCgnJiYnKTtcbiAgICAvLyBlLmcuIFtcIkVtYmVkZGVkRGF0YV9TZWxlY3RlZFRlc3ROYW1lXCI6IFwiUmVhZG9ubHlcIiwgXCJFbWJlZGRlZERhdGFfU2VsZWN0ZWRTdWJDYXRlZ29yeVwiOiBcIk1vZGVcIl1cbiAgICBjb25zdCBjb250ZXh0ID0gcENvbm5uLmdldENvbnRleHROYW1lKCk7XG4gICAgLy8gUmVhZGluZyB2YWx1ZXMgZnJvbSB0aGUgU3RvcmUgdG8gZXZhbHVhdGUgdGhlIHZpc2liaWxpdHkgZXhwcmVzc2lvbnNcbiAgICBjb25zdCBzdG9yZURhdGEgPSBQQ29yZS5nZXRTdG9yZSgpLmdldFN0YXRlKCk/LmRhdGFbY29udGV4dF0uY2FzZUluZm8uY29udGVudDtcblxuICAgIGNvbnN0IGluaXRpYWxWYWwgPSB7fTtcbiAgICBjb25zdCBvUHJvcGVydGllcyA9IGFWaXNpYmlsaXR5LnJlZHVjZSgocHJvcGVydGllcywgcHJvcGVydHkpID0+IHtcbiAgICAgIGNvbnN0IGtleVN0YXJ0SW5kZXggPSBwcm9wZXJ0eS5pbmRleE9mKCcuJyk7XG4gICAgICBjb25zdCBrZXlFbmRJbmRleCA9IHByb3BlcnR5LmluZGV4T2YoJz0nKSAtIDE7XG4gICAgICBjb25zdCB2YWx1ZVN0YXJ0SW5kZXggPSBwcm9wZXJ0eS5pbmRleE9mKFwiJ1wiKTtcbiAgICAgIGNvbnN0IHZhbHVlRW5kSW5kZXggPSBwcm9wZXJ0eS5sYXN0SW5kZXhPZihcIidcIikgLSAxO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ucHJvcGVydGllcyxcbiAgICAgICAgW3Byb3BlcnR5LnN1YnN0cihrZXlTdGFydEluZGV4ICsgMSwga2V5RW5kSW5kZXggLSBrZXlTdGFydEluZGV4IC0gMSldOiBwcm9wZXJ0eS5zdWJzdHIodmFsdWVTdGFydEluZGV4ICsgMSwgdmFsdWVFbmRJbmRleCAtIHZhbHVlU3RhcnRJbmRleClcbiAgICAgIH07XG4gICAgfSwgaW5pdGlhbFZhbCk7XG5cbiAgICBjb25zdCBwcm9wZXJ0eUtleXMgPSBPYmplY3Qua2V5cyhvUHJvcGVydGllcyk7XG4gICAgY29uc3QgcHJvcGVydHlWYWx1ZXMgPSBPYmplY3QudmFsdWVzKG9Qcm9wZXJ0aWVzKTtcblxuICAgIGZvciAobGV0IHByb3BlcnR5SW5kZXggPSAwOyBwcm9wZXJ0eUluZGV4IDwgcHJvcGVydHlLZXlzLmxlbmd0aDsgcHJvcGVydHlJbmRleCsrKSB7XG4gICAgICBpZiAoc3RvcmVEYXRhW3Byb3BlcnR5S2V5c1twcm9wZXJ0eUluZGV4XV0gIT09IHByb3BlcnR5VmFsdWVzW3Byb3BlcnR5SW5kZXhdKSB7XG4gICAgICAgIGJWaXNpYmlsaXR5ID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBiVmlzaWJpbGl0eTtcbn1cblxuaW50ZXJmYWNlIFZpZXdQcm9wcyB7XG4gIC8vIElmIGFueSwgZW50ZXIgYWRkaXRpb25hbCBwcm9wcyB0aGF0IG9ubHkgZXhpc3Qgb24gdGhpcyBjb21wb25lbnRcbiAgdGVtcGxhdGU/OiBzdHJpbmc7XG4gIGxhYmVsPzogc3RyaW5nO1xuICBzaG93TGFiZWw6IGJvb2xlYW47XG4gIHRpdGxlPzogc3RyaW5nO1xuICB2aXNpYmlsaXR5PzogYm9vbGVhbjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXZpZXcnLFxuICB0ZW1wbGF0ZVVybDogJy4vdmlldy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3ZpZXcuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgZm9yd2FyZFJlZigoKSA9PiBDb21wb25lbnRNYXBwZXJDb21wb25lbnQpXVxufSlcbmV4cG9ydCBjbGFzcyBWaWV3Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIHBDb25uJDogdHlwZW9mIFBDb25uZWN0O1xuICBASW5wdXQoKSBmb3JtR3JvdXAkOiBGb3JtR3JvdXA7XG4gIEBJbnB1dCgpIGRpc3BsYXlPbmx5RkEkOiBib29sZWFuO1xuICAvLyBASW5wdXQoKSB1cGRhdGVUb2tlbiQ6IG51bWJlcjtcblxuICBhbmd1bGFyUENvbm5lY3REYXRhOiBBbmd1bGFyUENvbm5lY3REYXRhID0ge307XG5cbiAgbm9IZWFkZXJUZW1wbGF0ZXMgPSBOT19IRUFERVJfVEVNUExBVEVTO1xuXG4gIGNvbmZpZ1Byb3BzJDogVmlld1Byb3BzO1xuICBpbmhlcml0ZWRQcm9wcyQ6IGFueTtcbiAgYXJDaGlsZHJlbiQ6IGFueVtdO1xuICB0ZW1wbGF0ZU5hbWUkOiBzdHJpbmc7XG4gIHRpdGxlJCA9ICcnO1xuICBsYWJlbCQgPSAnJztcbiAgc2hvd0xhYmVsJCA9IGZhbHNlO1xuICB2aXNpYmlsaXR5JCA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhbmd1bGFyUENvbm5lY3Q6IEFuZ3VsYXJQQ29ubmVjdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB1dGlsczogVXRpbHNcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIC8vIEZpcnN0IHRoaW5nIGluIGluaXRpYWxpemF0aW9uIGlzIHJlZ2lzdGVyaW5nIGFuZCBzdWJzY3JpYmluZyB0byB0aGUgQW5ndWxhclBDb25uZWN0IHNlcnZpY2VcbiAgICB0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEgPSB0aGlzLmFuZ3VsYXJQQ29ubmVjdC5yZWdpc3RlckFuZFN1YnNjcmliZUNvbXBvbmVudCh0aGlzLCB0aGlzLm9uU3RhdGVDaGFuZ2UpO1xuXG4gICAgdGhpcy5jaGVja0FuZFVwZGF0ZSgpO1xuICB9XG5cbiAgLy8gQ2FsbGJhY2sgcGFzc2VkIHdoZW4gc3Vic2NyaWJpbmcgdG8gc3RvcmUgY2hhbmdlXG4gIG9uU3RhdGVDaGFuZ2UoKSB7XG4gICAgdGhpcy5jaGVja0FuZFVwZGF0ZSgpO1xuICB9XG5cbiAgY2hlY2tBbmRVcGRhdGUoKSB7XG4gICAgLy8gU2hvdWxkIGFsd2F5cyBjaGVjayB0aGUgYnJpZGdlIHRvIHNlZSBpZiB0aGUgY29tcG9uZW50IHNob3VsZFxuICAgIC8vIHVwZGF0ZSBpdHNlbGYgKHJlLXJlbmRlcilcbiAgICBjb25zdCBiVXBkYXRlU2VsZiA9IHRoaXMuYW5ndWxhclBDb25uZWN0LnNob3VsZENvbXBvbmVudFVwZGF0ZSh0aGlzKTtcblxuICAgIC8vIE9OTFkgY2FsbCB1cGRhdGVTZWxmIHdoZW4gdGhlIGNvbXBvbmVudCBzaG91bGQgdXBkYXRlXG4gICAgaWYgKGJVcGRhdGVTZWxmKSB7XG4gICAgICB0aGlzLnVwZGF0ZVNlbGYoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgY29uc3QgeyBwQ29ubiQgfSA9IGNoYW5nZXM7XG5cbiAgICBpZiAocENvbm4kLnByZXZpb3VzVmFsdWUgJiYgcENvbm4kLnByZXZpb3VzVmFsdWUgIT09IHBDb25uJC5jdXJyZW50VmFsdWUpIHtcbiAgICAgIHRoaXMuY2hlY2tBbmRVcGRhdGUoKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVTZWxmKCkge1xuICAgIGlmICh0aGlzLmFuZ3VsYXJQQ29ubmVjdC5nZXRDb21wb25lbnRJRCh0aGlzKSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gZGVidWdnZXI7XG5cbiAgICAvLyBub3JtYWxpemUgdGhpcy5wQ29ubiQgaW4gY2FzZSBpdCBjb250YWlucyBhICdyZWZlcmVuY2UnXG4gICAgdGhpcy5wQ29ubiQgPSBSZWZlcmVuY2VDb21wb25lbnQubm9ybWFsaXplUENvbm4odGhpcy5wQ29ubiQpO1xuXG4gICAgdGhpcy5jb25maWdQcm9wcyQgPSB0aGlzLnBDb25uJC5yZXNvbHZlQ29uZmlnUHJvcHModGhpcy5wQ29ubiQuZ2V0Q29uZmlnUHJvcHMoKSkgYXMgVmlld1Byb3BzO1xuICAgIHRoaXMuaW5oZXJpdGVkUHJvcHMkID0gdGhpcy5wQ29ubiQuZ2V0SW5oZXJpdGVkUHJvcHMoKTtcblxuICAgIC8vIE5PVEU6IHRoaXMuY29uZmlnUHJvcHMkLnZpc2liaWxpdHknXSBpcyB1c2VkIGluIHZpZXcuY29tcG9uZW50LnRzIHN1Y2ggdGhhdFxuICAgIC8vICB0aGUgVmlldyB3aWxsIG9ubHkgYmUgcmVuZGVyZWQgd2hlbiB0aGlzLmNvbmZpZ1Byb3BzJC52aXNpYmlsaXR5J10gaXMgZmFsc2UuXG4gICAgLy8gIEl0IFdJTEwgcmVuZGVyIGlmIHRydWUgb3IgdW5kZWZpbmVkLlxuXG4gICAgdGhpcy50ZW1wbGF0ZU5hbWUkID0gdGhpcy5jb25maWdQcm9wcyQudGVtcGxhdGUgfHwgJyc7XG4gICAgdGhpcy50aXRsZSQgPSB0aGlzLmNvbmZpZ1Byb3BzJC50aXRsZSB8fCAnJztcbiAgICB0aGlzLmxhYmVsJCA9IHRoaXMuY29uZmlnUHJvcHMkLmxhYmVsIHx8ICcnO1xuICAgIHRoaXMuc2hvd0xhYmVsJCA9IHRoaXMuY29uZmlnUHJvcHMkLnNob3dMYWJlbCB8fCBpc0RldGFpbHNUZW1wbGF0ZSh0aGlzLnRlbXBsYXRlTmFtZSQpIHx8IHRoaXMuc2hvd0xhYmVsJDtcbiAgICAvLyBsYWJlbCAmIHNob3dMYWJlbCB3aXRoaW4gaW5oZXJpdGVkUHJvcHMgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIGNvbmZpZ1Byb3BzXG4gICAgdGhpcy5sYWJlbCQgPSB0aGlzLmluaGVyaXRlZFByb3BzJC5sYWJlbCB8fCB0aGlzLmxhYmVsJDtcbiAgICB0aGlzLnNob3dMYWJlbCQgPSB0aGlzLmluaGVyaXRlZFByb3BzJC5zaG93TGFiZWwgfHwgdGhpcy5zaG93TGFiZWwkO1xuICAgIC8vIGNoaWxkcmVuIG1heSBoYXZlIGEgJ3JlZmVyZW5jZScgc28gbm9ybWFsaXplIHRoZSBjaGlsZHJlbiBhcnJheVxuICAgIHRoaXMuYXJDaGlsZHJlbiQgPSBSZWZlcmVuY2VDb21wb25lbnQubm9ybWFsaXplUENvbm5BcnJheSh0aGlzLnBDb25uJC5nZXRDaGlsZHJlbigpKTtcblxuICAgIHRoaXMudmlzaWJpbGl0eSQgPSB0aGlzLmNvbmZpZ1Byb3BzJC52aXNpYmlsaXR5ID8/IHRoaXMudmlzaWJpbGl0eSQ7XG5cbiAgICAvKipcbiAgICAgKiBJbiBpbnN0YW5jZXMgd2hlcmUgdGhlcmUgaXMgY29udGV4dCwgbGlrZSB3aXRoIFwic2hpcHBpbmdBZGRyZXNzLFwiIHRoZSBwYWdlUmVmZXJlbmNlIGJlY29tZXMgXCJjYXNlSW5mby5jb250ZW50LnNoaXBwaW5nQWRkcmVzcy5cIlxuICAgICAqIFRoaXMgbGVhZHMgdG8gcHJvYmxlbXMgaW4gdGhlIGdldFByb3BlcnR5IEFQSSwgYXMgaXQgaW5jb3JyZWN0bHkgYXNzZXNzZXMgdGhlIHZpc2liaWxpdHkgY29uZGl0aW9uIGJ5IGxvb2tpbmcgaW4gdGhlIHdyb25nIGxvY2F0aW9uXG4gICAgICogaW4gdGhlIFN0b3JlIGZvciB0aGUgcHJvcGVydHkgdmFsdWVzLiBSZWZlcmVuY2UgY29tcG9uZW50IHNob3VsZCBiZSBhYmxlIHRvIGhhbmRsZSBzdWNoIHNjZW5hcmlvcyhhcyBkb25lIGluIFNESy1SKSBzaW5jZSBpdCBoYXMgdGhlXG4gICAgICogZXhwZWN0ZWQgcGFnZVJlZmVyZW5jZSB2YWx1ZXMsIHRoZSBWaWV3IGNvbXBvbmVudCBjdXJyZW50bHkgY2Fubm90IGhhbmRsZSB0aGlzLlxuICAgICAqIFRoZSByZXNvbHV0aW9uIGxpZXMgaW4gdHJhbnNmZXJyaW5nIHRoaXMgcmVzcG9uc2liaWxpdHkgdG8gdGhlIFJlZmVyZW5jZSBjb21wb25lbnQsIGVsaW1pbmF0aW5nIHRoZSBuZWVkIGZvciB0aGlzIGNvZGUgd2hlbiBSZWZlcmVuY2VcbiAgICAgKiBjb21wb25lbnQgaXMgYWJsZSB0byBoYW5kbGUgaXQuXG4gICAgICovXG4gICAgaWYgKCF0aGlzLmNvbmZpZ1Byb3BzJC52aXNpYmlsaXR5ICYmIHRoaXMucENvbm4kLmdldFBhZ2VSZWZlcmVuY2UoKS5sZW5ndGggPiAnY2FzZUluZm8uY29udGVudCcubGVuZ3RoKSB7XG4gICAgICB0aGlzLnZpc2liaWxpdHkkID0gZXZhbHVhdGVWaXNpYmlsaXR5KHRoaXMucENvbm4kKTtcbiAgICB9XG5cbiAgICAvLyB3YXM6ICB0aGlzLmFyQ2hpbGRyZW4kID0gdGhpcy5wQ29ubiQuZ2V0Q2hpbGRyZW4oKSBhcyBBcnJheTxhbnk+O1xuXG4gICAgLy8gZGVidWdcbiAgICAvLyBsZXQgIGtpZExpc3Q6IHN0cmluZyA9IFwiXCI7XG4gICAgLy8gZm9yIChsZXQgaSBpbiB0aGlzLmFyQ2hpbGRyZW4kKSB7XG4gICAgLy8gICBraWRMaXN0ID0ga2lkTGlzdC5jb25jYXQodGhpcy5hckNoaWxkcmVuJFtpXS5nZXRQQ29ubmVjdCgpLmdldENvbXBvbmVudE5hbWUoKSkuY29uY2F0KFwiLFwiKTtcbiAgICAvLyB9XG4gICAgLy8gY29uc29sZS5sb2coXCItLT52aWV3IHVwZGF0ZTogXCIgKyB0aGlzLmFuZ3VsYXJQQ29ubmVjdC5nZXRDb21wb25lbnRJRCh0aGlzKSArIFwiLCB0ZW1wbGF0ZTogXCIgKyB0aGlzLnRlbXBsYXRlTmFtZSQgKyBcIiwga2lkczogXCIgKyBraWRMaXN0KTtcbiAgfVxuXG4gIC8vIEpBIC0gYWRhcHRpbmcgYWRkaXRpb25hbFByb3BzIGZyb20gTmVidWxhL0NvbnN0ZWxsYXRpb24gdmVyc2lvbiB3aGljaCB1c2VzIHN0YXRpYyBtZXRob2RzXG4gIC8vICAgIG9uIHRoZSBjb21wb25lbnQgY2xhc3NlcyBzdG9yZWQgaW4gUENvbXBvbmVudHMgKHRoYXQgQW5ndWxhciBkb2Vzbid0IGhhdmUpLi4uXG4gIGFkZGl0aW9uYWxQcm9wcyhzdGF0ZTogYW55LCBnZXRQQ29ubmVjdDogYW55KSB7XG4gICAgbGV0IHByb3BPYmogPSB7fTtcblxuICAgIC8vIFdlIGFscmVhZHkgaGF2ZSB0aGUgdGVtcGxhdGUgbmFtZSBpbiB0aGlzLnRlbXBsYXRlTmFtZSRcbiAgICBpZiAodGhpcy50ZW1wbGF0ZU5hbWUkICE9PSAnJykge1xuICAgICAgbGV0IGFsbEZpZWxkcyA9IHt9O1xuXG4gICAgICAvLyBUaGVzZSB1c2VzIGFyZSBhZGFwdGVkIGZyb20gTmVidWxhL0NvbnN0ZWxsYXRpb24gQ2FzZVN1bW1hcnkuYWRkaXRpb25hbFByb3BzXG4gICAgICBzd2l0Y2ggKHRoaXMudGVtcGxhdGVOYW1lJCkge1xuICAgICAgICBjYXNlICdDYXNlU3VtbWFyeSc6XG4gICAgICAgICAgYWxsRmllbGRzID0gZ2V0QWxsRmllbGRzKGdldFBDb25uZWN0KTtcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY2FzZS1kZWNsYXJhdGlvbnNcbiAgICAgICAgICBjb25zdCB1bnJlc0ZpZWxkcyA9IHtcbiAgICAgICAgICAgIHByaW1hcnlGaWVsZHM6IGFsbEZpZWxkc1swXSxcbiAgICAgICAgICAgIHNlY29uZGFyeUZpZWxkczogYWxsRmllbGRzWzFdXG4gICAgICAgICAgfTtcbiAgICAgICAgICBwcm9wT2JqID0gZ2V0UENvbm5lY3QucmVzb2x2ZUNvbmZpZ1Byb3BzKHVucmVzRmllbGRzKTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICdEZXRhaWxzJzpcbiAgICAgICAgICBhbGxGaWVsZHMgPSBnZXRBbGxGaWVsZHMoZ2V0UENvbm5lY3QpO1xuICAgICAgICAgIHByb3BPYmogPSB7IGZpZWxkczogYWxsRmllbGRzWzBdIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHByb3BPYmo7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hbmd1bGFyUENvbm5lY3REYXRhLnVuc3Vic2NyaWJlRm4pIHtcbiAgICAgIHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YS51bnN1YnNjcmliZUZuKCk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwidmlzaWJpbGl0eSQgIT09IGZhbHNlXCIgY2xhc3M9XCJuZy12aWV3LXRvcFwiPlxuICA8ZGl2ICpuZ0lmPVwic2hvd0xhYmVsJCAmJiBsYWJlbCQgJiYgIW5vSGVhZGVyVGVtcGxhdGVzLmluY2x1ZGVzKHRlbXBsYXRlTmFtZSQpXCIgY2xhc3M9XCJ0ZW1wbGF0ZS10aXRsZS1jb250YWluZXJcIj5cbiAgICA8c3Bhbj57eyBsYWJlbCQgfX08L3NwYW4+XG4gIDwvZGl2PlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0ZW1wbGF0ZU5hbWUkOyBlbHNlIG5vVGVtcGxhdGVcIj5cbiAgICA8ZGl2PlxuICAgICAgPGNvbXBvbmVudC1tYXBwZXJcbiAgICAgICAgW25hbWVdPVwidGVtcGxhdGVOYW1lJFwiXG4gICAgICAgIFtwcm9wc109XCJ7IGZvcm1Hcm91cCQsIHBDb25uJCwgZGlzcGxheU9ubHlGQSQgfVwiXG4gICAgICAgIGVycm9yTXNnPVwiVmlldyB0ZW1wbGF0ZSBub3QgcmVjb2duaXplZDogW3t7IHRlbXBsYXRlTmFtZSQgfX1dXCJcbiAgICAgID48L2NvbXBvbmVudC1tYXBwZXI+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy10ZW1wbGF0ZSAjbm9UZW1wbGF0ZT5cbiAgICA8ZGl2ICpuZ0Zvcj1cImxldCBraWQgb2YgYXJDaGlsZHJlbiRcIj5cbiAgICAgIDxjb21wb25lbnQtbWFwcGVyXG4gICAgICAgIFtuYW1lXT1cImtpZC5nZXRQQ29ubmVjdCgpLmdldENvbXBvbmVudE5hbWUoKVwiXG4gICAgICAgIFtwcm9wc109XCJ7IHBDb25uJDoga2lkLmdldFBDb25uZWN0KCkgfVwiXG4gICAgICAgIGVycm9yTXNnPVwiVmlldyBNaXNzaW5nIChkaXNwbGF5QWxsKToge3sga2lkLmdldFBDb25uZWN0KCkuZ2V0Q29tcG9uZW50TmFtZSgpIH19XCJcbiAgICAgID48L2NvbXBvbmVudC1tYXBwZXI+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -3,6 +3,9 @@ import * as i0 from "@angular/core";
|
|
|
3
3
|
export class FormTemplateBase {
|
|
4
4
|
ngOnDestroy() {
|
|
5
5
|
PCore.getContextTreeManager().removeContextTreeNode(this.pConn$.getContextName());
|
|
6
|
+
if (this.angularPConnectData.unsubscribeFn) {
|
|
7
|
+
this.angularPConnectData.unsubscribeFn();
|
|
8
|
+
}
|
|
6
9
|
}
|
|
7
10
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: FormTemplateBase, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
8
11
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.12", type: FormTemplateBase, ngImport: i0 }); }
|
|
@@ -10,4 +13,4 @@ export class FormTemplateBase {
|
|
|
10
13
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: FormTemplateBase, decorators: [{
|
|
11
14
|
type: Directive
|
|
12
15
|
}] });
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS10ZW1wbGF0ZS1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZGstY29tcG9uZW50cy9zcmMvbGliL19jb21wb25lbnRzL3RlbXBsYXRlL2Jhc2UvZm9ybS10ZW1wbGF0ZS1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWEsTUFBTSxlQUFlLENBQUM7O0FBSXJELE1BQU0sT0FBTyxnQkFBZ0I7SUFJM0IsV0FBVztRQUNULEtBQUssQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztRQUVsRixJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUMzQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDM0MsQ0FBQztJQUNILENBQUM7K0dBVlUsZ0JBQWdCO21HQUFoQixnQkFBZ0I7OzRGQUFoQixnQkFBZ0I7a0JBRDVCLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQW5ndWxhclBDb25uZWN0RGF0YSB9IGZyb20gJ3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL3B1YmxpYy1hcGknO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBjbGFzcyBGb3JtVGVtcGxhdGVCYXNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcENvbm4kOiBhbnk7XG4gIGFuZ3VsYXJQQ29ubmVjdERhdGE6IEFuZ3VsYXJQQ29ubmVjdERhdGE7XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgUENvcmUuZ2V0Q29udGV4dFRyZWVNYW5hZ2VyKCkucmVtb3ZlQ29udGV4dFRyZWVOb2RlKHRoaXMucENvbm4kLmdldENvbnRleHROYW1lKCkpO1xuXG4gICAgaWYgKHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YS51bnN1YnNjcmliZUZuKSB7XG4gICAgICB0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEudW5zdWJzY3JpYmVGbigpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -4,14 +4,35 @@ import { ReferenceComponent } from '../../infra/reference/reference.component';
|
|
|
4
4
|
import { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';
|
|
5
5
|
import { FormTemplateBase } from '../base/form-template-base';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "../../../
|
|
8
|
-
import * as i2 from "
|
|
7
|
+
import * as i1 from "../../../_bridge/angular-pconnect";
|
|
8
|
+
import * as i2 from "../../../_helpers/template-utils";
|
|
9
|
+
import * as i3 from "@angular/common";
|
|
10
|
+
function areViewsChanged(oldViews, newViews) {
|
|
11
|
+
if (oldViews?.length !== newViews?.length) {
|
|
12
|
+
return true;
|
|
13
|
+
}
|
|
14
|
+
return !oldViews?.every((oldView, index) => {
|
|
15
|
+
const newView = newViews[index];
|
|
16
|
+
return oldView.getPConnect().viewName === newView.getPConnect().viewName;
|
|
17
|
+
});
|
|
18
|
+
}
|
|
9
19
|
export class DefaultFormComponent extends FormTemplateBase {
|
|
10
|
-
constructor(templateUtils) {
|
|
20
|
+
constructor(angularPConnect, templateUtils) {
|
|
11
21
|
super();
|
|
22
|
+
this.angularPConnect = angularPConnect;
|
|
12
23
|
this.templateUtils = templateUtils;
|
|
24
|
+
// Used with AngularPConnect
|
|
25
|
+
this.angularPConnectData = {};
|
|
13
26
|
}
|
|
14
27
|
ngOnInit() {
|
|
28
|
+
// First thing in initialization is registering and subscribing to the AngularPConnect service
|
|
29
|
+
this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);
|
|
30
|
+
this.updateSelf();
|
|
31
|
+
}
|
|
32
|
+
onStateChange() {
|
|
33
|
+
this.updateSelf();
|
|
34
|
+
}
|
|
35
|
+
updateSelf() {
|
|
15
36
|
const configProps = this.pConn$.getConfigProps();
|
|
16
37
|
const kids = this.pConn$.getChildren();
|
|
17
38
|
this.instructions = this.templateUtils.getInstructions(this.pConn$, configProps?.instructions);
|
|
@@ -33,17 +54,21 @@ export class DefaultFormComponent extends FormTemplateBase {
|
|
|
33
54
|
// repoint children before getting templateArray
|
|
34
55
|
// Children may contain 'reference' component, so we need to
|
|
35
56
|
// normalize them
|
|
36
|
-
|
|
57
|
+
const children = ReferenceComponent.normalizePConnArray(kids[0].getPConnect().getChildren());
|
|
58
|
+
const visibleChildren = children?.filter(child => child !== undefined) || [];
|
|
59
|
+
if (areViewsChanged(this.arChildren$, visibleChildren)) {
|
|
60
|
+
this.arChildren$ = visibleChildren;
|
|
61
|
+
}
|
|
37
62
|
}
|
|
38
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: DefaultFormComponent, deps: [{ token: i1.TemplateUtils }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
39
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: DefaultFormComponent, isStandalone: true, selector: "app-default-form", inputs: { pConn$: "pConn$", formGroup$: "formGroup$" }, usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"instructions\" class=\"psdk-default-form-instruction-text\">\n <div key=\"instructions\" id=\"instruction-text\" [innerHTML]=\"instructions\"></div>\n</div>\n<div [className]=\"divClass$\">\n <div *ngFor=\"let kid of arChildren$\" [ngClass]=\"{ 'grid-column': kid.getPConnect().getComponentName() === 'View' }\">\n <component-mapper\n [name]=\"kid.getPConnect().getComponentName()\"\n [props]=\"{\n pConn$: kid.getPConnect(),\n formGroup$: formGroup$\n }\"\n errorMsg=\"DefaultForm wants component not yet available: {{ kid.getPConnect().getComponentName() }}\"\n ></component-mapper>\n </div>\n</div>\n", styles: [".psdk-default-form-one-column{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));column-gap:1rem}.psdk-default-form-two-column{display:grid;grid-template-columns:repeat(2,1fr);column-gap:1rem}.psdk-default-form-three-column{display:grid;grid-template-columns:repeat(3,1fr);column-gap:1rem}.psdk-default-form-three-column .grid-column{grid-column:1/span 3}.psdk-default-form-two-column .grid-column{grid-column:1/span 2}.psdk-default-form-one-column .grid-column{grid-column:1}.template-title-container{font-size:.9375rem;font-weight:600;margin:10px 0}.psdk-default-form-instruction-text{padding-top:.625rem;padding-bottom:.625rem}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CommonModule) }, { kind: "directive", type: i0.forwardRef(() =>
|
|
63
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: DefaultFormComponent, deps: [{ token: i1.AngularPConnectService }, { token: i2.TemplateUtils }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
64
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: DefaultFormComponent, isStandalone: true, selector: "app-default-form", inputs: { pConn$: "pConn$", formGroup$: "formGroup$" }, usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"instructions\" class=\"psdk-default-form-instruction-text\">\n <div key=\"instructions\" id=\"instruction-text\" [innerHTML]=\"instructions\"></div>\n</div>\n<div [className]=\"divClass$\">\n <div *ngFor=\"let kid of arChildren$\" [ngClass]=\"{ 'grid-column': kid.getPConnect().getComponentName() === 'View' }\">\n <component-mapper\n [name]=\"kid.getPConnect().getComponentName()\"\n [props]=\"{\n pConn$: kid.getPConnect(),\n formGroup$: formGroup$\n }\"\n errorMsg=\"DefaultForm wants component not yet available: {{ kid.getPConnect().getComponentName() }}\"\n ></component-mapper>\n </div>\n</div>\n", styles: [".psdk-default-form-one-column{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));column-gap:1rem}.psdk-default-form-two-column{display:grid;grid-template-columns:repeat(2,1fr);column-gap:1rem}.psdk-default-form-three-column{display:grid;grid-template-columns:repeat(3,1fr);column-gap:1rem}.psdk-default-form-three-column .grid-column{grid-column:1/span 3}.psdk-default-form-two-column .grid-column{grid-column:1/span 2}.psdk-default-form-one-column .grid-column{grid-column:1}.template-title-container{font-size:.9375rem;font-weight:600;margin:10px 0}.psdk-default-form-instruction-text{padding-top:.625rem;padding-bottom:.625rem}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CommonModule) }, { kind: "directive", type: i0.forwardRef(() => i3.NgClass), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(() => i3.NgForOf), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(() => i3.NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i0.forwardRef(() => ComponentMapperComponent), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
|
|
40
65
|
}
|
|
41
66
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: DefaultFormComponent, decorators: [{
|
|
42
67
|
type: Component,
|
|
43
68
|
args: [{ selector: 'app-default-form', standalone: true, imports: [CommonModule, forwardRef(() => ComponentMapperComponent)], template: "<div *ngIf=\"instructions\" class=\"psdk-default-form-instruction-text\">\n <div key=\"instructions\" id=\"instruction-text\" [innerHTML]=\"instructions\"></div>\n</div>\n<div [className]=\"divClass$\">\n <div *ngFor=\"let kid of arChildren$\" [ngClass]=\"{ 'grid-column': kid.getPConnect().getComponentName() === 'View' }\">\n <component-mapper\n [name]=\"kid.getPConnect().getComponentName()\"\n [props]=\"{\n pConn$: kid.getPConnect(),\n formGroup$: formGroup$\n }\"\n errorMsg=\"DefaultForm wants component not yet available: {{ kid.getPConnect().getComponentName() }}\"\n ></component-mapper>\n </div>\n</div>\n", styles: [".psdk-default-form-one-column{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));column-gap:1rem}.psdk-default-form-two-column{display:grid;grid-template-columns:repeat(2,1fr);column-gap:1rem}.psdk-default-form-three-column{display:grid;grid-template-columns:repeat(3,1fr);column-gap:1rem}.psdk-default-form-three-column .grid-column{grid-column:1/span 3}.psdk-default-form-two-column .grid-column{grid-column:1/span 2}.psdk-default-form-one-column .grid-column{grid-column:1}.template-title-container{font-size:.9375rem;font-weight:600;margin:10px 0}.psdk-default-form-instruction-text{padding-top:.625rem;padding-bottom:.625rem}\n"] }]
|
|
44
|
-
}], ctorParameters: () => [{ type: i1.TemplateUtils }], propDecorators: { pConn$: [{
|
|
69
|
+
}], ctorParameters: () => [{ type: i1.AngularPConnectService }, { type: i2.TemplateUtils }], propDecorators: { pConn$: [{
|
|
45
70
|
type: Input
|
|
46
71
|
}], formGroup$: [{
|
|
47
72
|
type: Input
|
|
48
73
|
}] } });
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9kZWZhdWx0LWZvcm0vZGVmYXVsdC1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9kZWZhdWx0LWZvcm0vZGVmYXVsdC1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFFL0UsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOERBQThELENBQUM7QUFFeEcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7O0FBRTlELFNBQVMsZUFBZSxDQUFDLFFBQWUsRUFBRSxRQUFlO0lBQ3ZELElBQUksUUFBUSxFQUFFLE1BQU0sS0FBSyxRQUFRLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDMUMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsT0FBTyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDekMsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLE9BQU8sT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsS0FBSyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDO0lBQzNFLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQWVELE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxnQkFBZ0I7SUFXeEQsWUFDVSxlQUF1QyxFQUN2QyxhQUE0QjtRQUVwQyxLQUFLLEVBQUUsQ0FBQztRQUhBLG9CQUFlLEdBQWYsZUFBZSxDQUF3QjtRQUN2QyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQVR0Qyw0QkFBNEI7UUFDbkIsd0JBQW1CLEdBQXdCLEVBQUUsQ0FBQztJQVd2RCxDQUFDO0lBRUQsUUFBUTtRQUNOLDhGQUE4RjtRQUM5RixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRXhHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsVUFBVTtRQUNSLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFzQixDQUFDO1FBQ3JFLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDdkMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUUvRixNQUFNLE9BQU8sR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFDaEUsUUFBUSxPQUFPLEVBQUUsQ0FBQztZQUNoQixLQUFLLEdBQUc7Z0JBQ04sSUFBSSxDQUFDLFNBQVMsR0FBRyw4QkFBOEIsQ0FBQztnQkFDaEQsTUFBTTtZQUNSLEtBQUssR0FBRztnQkFDTixJQUFJLENBQUMsU0FBUyxHQUFHLDhCQUE4QixDQUFDO2dCQUNoRCxNQUFNO1lBQ1IsS0FBSyxHQUFHO2dCQUNOLElBQUksQ0FBQyxTQUFTLEdBQUcsZ0NBQWdDLENBQUM7Z0JBQ2xELE1BQU07WUFDUjtnQkFDRSxJQUFJLENBQUMsU0FBUyxHQUFHLDhCQUE4QixDQUFDO2dCQUNoRCxNQUFNO1FBQ1YsQ0FBQztRQUVELGdEQUFnRDtRQUNoRCw0REFBNEQ7UUFDNUQsa0JBQWtCO1FBQ2xCLE1BQU0sUUFBUSxHQUFHLGtCQUFrQixDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBRTdGLE1BQU0sZUFBZSxHQUFHLFFBQVEsRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1FBRTdFLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsZUFBZSxDQUFDLEVBQUUsQ0FBQztZQUN2RCxJQUFJLENBQUMsV0FBVyxHQUFHLGVBQWUsQ0FBQztRQUNyQyxDQUFDO0lBQ0gsQ0FBQzsrR0E1RFUsb0JBQW9CO21HQUFwQixvQkFBb0IsMkpDakNqQyxxcEJBZUEsNnNCRGdCWSxZQUFZLGtiQUFtQix3QkFBd0I7OzRGQUV0RCxvQkFBb0I7a0JBUGhDLFNBQVM7K0JBQ0Usa0JBQWtCLGNBR2hCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsd0JBQXdCLENBQUMsQ0FBQzt1SEFHakQsTUFBTTtzQkFBdkIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBmb3J3YXJkUmVmLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBSZWZlcmVuY2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9pbmZyYS9yZWZlcmVuY2UvcmVmZXJlbmNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBbmd1bGFyUENvbm5lY3REYXRhLCBBbmd1bGFyUENvbm5lY3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vX2JyaWRnZS9hbmd1bGFyLXBjb25uZWN0JztcbmltcG9ydCB7IENvbXBvbmVudE1hcHBlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL19icmlkZ2UvY29tcG9uZW50LW1hcHBlci9jb21wb25lbnQtbWFwcGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZW1wbGF0ZVV0aWxzIH0gZnJvbSAnLi4vLi4vLi4vX2hlbHBlcnMvdGVtcGxhdGUtdXRpbHMnO1xuaW1wb3J0IHsgRm9ybVRlbXBsYXRlQmFzZSB9IGZyb20gJy4uL2Jhc2UvZm9ybS10ZW1wbGF0ZS1iYXNlJztcblxuZnVuY3Rpb24gYXJlVmlld3NDaGFuZ2VkKG9sZFZpZXdzOiBhbnlbXSwgbmV3Vmlld3M6IGFueVtdKTogYm9vbGVhbiB7XG4gIGlmIChvbGRWaWV3cz8ubGVuZ3RoICE9PSBuZXdWaWV3cz8ubGVuZ3RoKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICByZXR1cm4gIW9sZFZpZXdzPy5ldmVyeSgob2xkVmlldywgaW5kZXgpID0+IHtcbiAgICBjb25zdCBuZXdWaWV3ID0gbmV3Vmlld3NbaW5kZXhdO1xuICAgIHJldHVybiBvbGRWaWV3LmdldFBDb25uZWN0KCkudmlld05hbWUgPT09IG5ld1ZpZXcuZ2V0UENvbm5lY3QoKS52aWV3TmFtZTtcbiAgfSk7XG59XG5cbmludGVyZmFjZSBEZWZhdWx0Rm9ybVByb3BzIHtcbiAgLy8gSWYgYW55LCBlbnRlciBhZGRpdGlvbmFsIHByb3BzIHRoYXQgb25seSBleGlzdCBvbiB0aGlzIGNvbXBvbmVudFxuICBOdW1Db2xzOiBzdHJpbmc7XG4gIGluc3RydWN0aW9uczogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZGVmYXVsdC1mb3JtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RlZmF1bHQtZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RlZmF1bHQtZm9ybS5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBmb3J3YXJkUmVmKCgpID0+IENvbXBvbmVudE1hcHBlckNvbXBvbmVudCldXG59KVxuZXhwb3J0IGNsYXNzIERlZmF1bHRGb3JtQ29tcG9uZW50IGV4dGVuZHMgRm9ybVRlbXBsYXRlQmFzZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgb3ZlcnJpZGUgcENvbm4kOiB0eXBlb2YgUENvbm5lY3Q7XG4gIEBJbnB1dCgpIGZvcm1Hcm91cCQ6IEZvcm1Hcm91cDtcblxuICAvLyBVc2VkIHdpdGggQW5ndWxhclBDb25uZWN0XG4gIG92ZXJyaWRlIGFuZ3VsYXJQQ29ubmVjdERhdGE6IEFuZ3VsYXJQQ29ubmVjdERhdGEgPSB7fTtcblxuICBhckNoaWxkcmVuJDogYW55W107XG4gIGRpdkNsYXNzJDogc3RyaW5nO1xuICBpbnN0cnVjdGlvbnM6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGFuZ3VsYXJQQ29ubmVjdDogQW5ndWxhclBDb25uZWN0U2VydmljZSxcbiAgICBwcml2YXRlIHRlbXBsYXRlVXRpbHM6IFRlbXBsYXRlVXRpbHNcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIEZpcnN0IHRoaW5nIGluIGluaXRpYWxpemF0aW9uIGlzIHJlZ2lzdGVyaW5nIGFuZCBzdWJzY3JpYmluZyB0byB0aGUgQW5ndWxhclBDb25uZWN0IHNlcnZpY2VcbiAgICB0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEgPSB0aGlzLmFuZ3VsYXJQQ29ubmVjdC5yZWdpc3RlckFuZFN1YnNjcmliZUNvbXBvbmVudCh0aGlzLCB0aGlzLm9uU3RhdGVDaGFuZ2UpO1xuXG4gICAgdGhpcy51cGRhdGVTZWxmKCk7XG4gIH1cblxuICBvblN0YXRlQ2hhbmdlKCkge1xuICAgIHRoaXMudXBkYXRlU2VsZigpO1xuICB9XG5cbiAgdXBkYXRlU2VsZigpIHtcbiAgICBjb25zdCBjb25maWdQcm9wcyA9IHRoaXMucENvbm4kLmdldENvbmZpZ1Byb3BzKCkgYXMgRGVmYXVsdEZvcm1Qcm9wcztcbiAgICBjb25zdCBraWRzID0gdGhpcy5wQ29ubiQuZ2V0Q2hpbGRyZW4oKTtcbiAgICB0aGlzLmluc3RydWN0aW9ucyA9IHRoaXMudGVtcGxhdGVVdGlscy5nZXRJbnN0cnVjdGlvbnModGhpcy5wQ29ubiQsIGNvbmZpZ1Byb3BzPy5pbnN0cnVjdGlvbnMpO1xuXG4gICAgY29uc3QgbnVtQ29scyA9IGNvbmZpZ1Byb3BzLk51bUNvbHMgPyBjb25maWdQcm9wcy5OdW1Db2xzIDogJzEnO1xuICAgIHN3aXRjaCAobnVtQ29scykge1xuICAgICAgY2FzZSAnMSc6XG4gICAgICAgIHRoaXMuZGl2Q2xhc3MkID0gJ3BzZGstZGVmYXVsdC1mb3JtLW9uZS1jb2x1bW4nO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJzInOlxuICAgICAgICB0aGlzLmRpdkNsYXNzJCA9ICdwc2RrLWRlZmF1bHQtZm9ybS10d28tY29sdW1uJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICczJzpcbiAgICAgICAgdGhpcy5kaXZDbGFzcyQgPSAncHNkay1kZWZhdWx0LWZvcm0tdGhyZWUtY29sdW1uJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aGlzLmRpdkNsYXNzJCA9ICdwc2RrLWRlZmF1bHQtZm9ybS1vbmUtY29sdW1uJztcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgLy8gcmVwb2ludCBjaGlsZHJlbiBiZWZvcmUgZ2V0dGluZyB0ZW1wbGF0ZUFycmF5XG4gICAgLy8gQ2hpbGRyZW4gbWF5IGNvbnRhaW4gJ3JlZmVyZW5jZScgY29tcG9uZW50LCBzbyB3ZSBuZWVkIHRvXG4gICAgLy8gIG5vcm1hbGl6ZSB0aGVtXG4gICAgY29uc3QgY2hpbGRyZW4gPSBSZWZlcmVuY2VDb21wb25lbnQubm9ybWFsaXplUENvbm5BcnJheShraWRzWzBdLmdldFBDb25uZWN0KCkuZ2V0Q2hpbGRyZW4oKSk7XG5cbiAgICBjb25zdCB2aXNpYmxlQ2hpbGRyZW4gPSBjaGlsZHJlbj8uZmlsdGVyKGNoaWxkID0+IGNoaWxkICE9PSB1bmRlZmluZWQpIHx8IFtdO1xuXG4gICAgaWYgKGFyZVZpZXdzQ2hhbmdlZCh0aGlzLmFyQ2hpbGRyZW4kLCB2aXNpYmxlQ2hpbGRyZW4pKSB7XG4gICAgICB0aGlzLmFyQ2hpbGRyZW4kID0gdmlzaWJsZUNoaWxkcmVuO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cImluc3RydWN0aW9uc1wiIGNsYXNzPVwicHNkay1kZWZhdWx0LWZvcm0taW5zdHJ1Y3Rpb24tdGV4dFwiPlxuICA8ZGl2IGtleT1cImluc3RydWN0aW9uc1wiIGlkPVwiaW5zdHJ1Y3Rpb24tdGV4dFwiIFtpbm5lckhUTUxdPVwiaW5zdHJ1Y3Rpb25zXCI+PC9kaXY+XG48L2Rpdj5cbjxkaXYgW2NsYXNzTmFtZV09XCJkaXZDbGFzcyRcIj5cbiAgPGRpdiAqbmdGb3I9XCJsZXQga2lkIG9mIGFyQ2hpbGRyZW4kXCIgW25nQ2xhc3NdPVwieyAnZ3JpZC1jb2x1bW4nOiBraWQuZ2V0UENvbm5lY3QoKS5nZXRDb21wb25lbnROYW1lKCkgPT09ICdWaWV3JyB9XCI+XG4gICAgPGNvbXBvbmVudC1tYXBwZXJcbiAgICAgIFtuYW1lXT1cImtpZC5nZXRQQ29ubmVjdCgpLmdldENvbXBvbmVudE5hbWUoKVwiXG4gICAgICBbcHJvcHNdPVwie1xuICAgICAgICBwQ29ubiQ6IGtpZC5nZXRQQ29ubmVjdCgpLFxuICAgICAgICBmb3JtR3JvdXAkOiBmb3JtR3JvdXAkXG4gICAgICB9XCJcbiAgICAgIGVycm9yTXNnPVwiRGVmYXVsdEZvcm0gd2FudHMgY29tcG9uZW50IG5vdCB5ZXQgYXZhaWxhYmxlOiB7eyBraWQuZ2V0UENvbm5lY3QoKS5nZXRDb21wb25lbnROYW1lKCkgfX1cIlxuICAgID48L2NvbXBvbmVudC1tYXBwZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -41,16 +41,17 @@ function getFieldWidth(field, label) {
|
|
|
41
41
|
export const getContext = thePConn => {
|
|
42
42
|
const contextName = thePConn.getContextName();
|
|
43
43
|
const pageReference = thePConn.getPageReference();
|
|
44
|
-
|
|
45
|
-
// not always in config of state props
|
|
46
|
-
let { referenceList } = thePConn.getStateProps()?.config || thePConn.getStateProps();
|
|
44
|
+
const { readonlyContextList, referenceList = readonlyContextList } = thePConn.getStateProps()?.config || thePConn.getStateProps();
|
|
47
45
|
const pageReferenceForRows = referenceList.startsWith('.') ? `${pageReference}.${referenceList.substring(1)}` : referenceList;
|
|
46
|
+
const viewName = thePConn.viewName;
|
|
48
47
|
// removing "caseInfo.content" prefix to avoid setting it as a target while preparing pageInstructions
|
|
49
|
-
|
|
48
|
+
// skipping the removal as StateMachine itself is removing this case info prefix while preparing pageInstructions
|
|
49
|
+
// referenceList = pageReferenceForRows.replace(PCore.getConstants().CASE_INFO.CASE_INFO_CONTENT, '');
|
|
50
50
|
return {
|
|
51
51
|
contextName,
|
|
52
52
|
referenceListStr: referenceList,
|
|
53
|
-
pageReferenceForRows
|
|
53
|
+
pageReferenceForRows,
|
|
54
|
+
viewName
|
|
54
55
|
};
|
|
55
56
|
};
|
|
56
57
|
export const populateRowKey = rawData => {
|
|
@@ -267,4 +268,4 @@ export const createPConnect = (contextName, referenceList, pageReference) => {
|
|
|
267
268
|
const { getPConnect } = PCore.createPConnect(config);
|
|
268
269
|
return getPConnect();
|
|
269
270
|
};
|
|
270
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9zaW1wbGUtdGFibGUtbWFudWFsL2hlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXRELE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUM7QUFDeEMsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLFlBQVksQ0FBQztBQUV4Qyw0RUFBNEU7QUFDNUUsMEJBQTBCO0FBQzFCLFNBQVMsYUFBYSxDQUFDLEtBQUssRUFBRSxLQUFLO0lBQ2pDLElBQUksS0FBSyxDQUFDO0lBQ1YsUUFBUSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbkIsS0FBSyxNQUFNO1lBQ1QsS0FBSyxHQUFHLEdBQUcsQ0FBQztZQUNaLE1BQU07UUFDUixLQUFLLE1BQU07WUFDVCxLQUFLLEdBQUcsR0FBRyxDQUFDO1lBQ1osTUFBTTtRQUNSLEtBQUssVUFBVTtZQUNiLEtBQUssR0FBRyxHQUFHLENBQUM7WUFDWixNQUFNO1FBQ1IsS0FBSyxjQUFjLENBQUM7UUFDcEIsS0FBSyxVQUFVO1lBQ2IsS0FBSyxHQUFHLEdBQUcsQ0FBQztZQUNaLE1BQU07UUFDUixLQUFLLFVBQVUsQ0FBQztRQUNoQixLQUFLLFdBQVc7WUFDZCxLQUFLLEdBQUcsR0FBRyxDQUFDO1lBQ1osTUFBTTtRQUNSLEtBQUssVUFBVTtZQUNiLGdEQUFnRDtZQUNoRCxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzVDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQztZQUM3QixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7WUFDakMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDdkIsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUN6QyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNoQyxNQUFNO1FBQ1I7WUFDRSxLQUFLLEdBQUcsR0FBRyxDQUFDO0lBQ2hCLENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLEVBQUU7SUFDbkMsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzlDLE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQ2xELHFFQUFxRTtJQUNyRSx1Q0FBdUM7SUFDdkMsSUFBSSxFQUFFLGFBQWEsRUFBRSxHQUFHLFFBQVEsQ0FBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLElBQUksUUFBUSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3JGLE1BQU0sb0JBQW9CLEdBQUcsYUFBYSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxhQUFhLElBQUksYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFFOUgsc0dBQXNHO0lBQ3RHLGFBQWEsR0FBRyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUVuRyxPQUFPO1FBQ0wsV0FBVztRQUNYLGdCQUFnQixFQUFFLGFBQWE7UUFDL0Isb0JBQW9CO0tBQ3JCLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLEVBQUU7SUFDdEMsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFO1FBQ2hDLE9BQU8sRUFBRSxHQUFHLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUMzQixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLGFBQWEsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLEVBQUU7SUFDbEUsT0FBTztRQUNMLFNBQVMsRUFBRSxHQUFHLEVBQUU7WUFDZCxPQUFPLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUMzQixPQUFPLENBQUM7b0JBQ04sSUFBSSxFQUFFLGFBQWE7b0JBQ25CLG1CQUFtQixFQUFFLGFBQWEsQ0FBQyxNQUFNO29CQUN6QyxnQkFBZ0IsRUFBRSxhQUFhLENBQUMsTUFBTTtpQkFDdkMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QscUJBQXFCLEVBQUUsR0FBRyxFQUFFO1lBQzFCLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM3QixDQUFDO1FBQ0QsZUFBZSxFQUFFLENBQUMsU0FBUyxFQUFFLGNBQWMsRUFBRSxFQUFFO1lBQzdDLHdEQUF3RDtZQUN4RCxTQUFTLEVBQUUsQ0FBQztZQUNaLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsY0FBYyxFQUFFLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLEVBQUUsUUFBUSxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkgsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLGFBQWEsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsRUFBRTtJQUM1SCxPQUFPO1FBQ0wsSUFBSTtRQUNKLE1BQU0sRUFBRTtZQUNOLElBQUk7WUFDSixhQUFhLEVBQUUsYUFBYSxDQUFDLFVBQVUsQ0FBQyxJQUFJO1lBQzVDLFVBQVUsRUFBRSxVQUFVLElBQUksYUFBYSxDQUFDLFVBQVUsQ0FBQyxVQUFVO1lBQzdELGVBQWUsRUFBRSxLQUFLO1lBQ3RCLFlBQVk7WUFDWixRQUFRLEVBQUUsSUFBSTtZQUNkLFlBQVksRUFBRSxJQUFJO1lBQ2xCLGFBQWEsRUFBRSxJQUFJO1lBQ25CLHFCQUFxQixFQUFFLElBQUk7WUFDM0IsS0FBSyxFQUFFLGFBQWE7WUFDcEIsaUJBQWlCLEVBQUUsRUFBRSxDQUFDLFVBQVU7WUFDaEMsUUFBUSxFQUFFLFVBQVU7WUFDcEIsT0FBTyxFQUFFO2dCQUNQO29CQUNFLElBQUksRUFBRSxTQUFTO29CQUNmLFFBQVEsRUFBRSxPQUFPO29CQUNqQixNQUFNLEVBQUUsRUFBRTtvQkFDVixRQUFRLEVBQUU7d0JBQ1I7NEJBQ0UsSUFBSSxFQUFFLFNBQVM7NEJBQ2YsSUFBSSxFQUFFLFFBQVE7NEJBQ2QsUUFBUSxFQUFFLE1BQU07eUJBQ2pCO3FCQUNGO29CQUNELEtBQUssRUFBRSxhQUFhO29CQUNwQixFQUFFLEVBQUUsSUFBSSxDQUFDLFVBQVU7aUJBQ3BCO2FBQ0Y7WUFDRCxTQUFTO1NBQ1Y7S0FDRixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxZQUFZLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixFQUFFLEVBQUU7SUFDNUUsTUFBTSxTQUFTLEdBQUcsWUFBWSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUNuRCxPQUFPO1lBQ0wsSUFBSSxFQUFFLE1BQU07WUFDWixLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPO1lBQ2pFLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGtCQUFrQjtZQUNyRCxFQUFFLEVBQUUsR0FBRyxLQUFLLEVBQUU7WUFDZCxJQUFJLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUNsQyxZQUFZLEVBQUUsVUFBVTtZQUN4QixJQUFJLEVBQUUsS0FBSztZQUNYLGFBQWEsRUFBRSxJQUFJO1lBQ25CLFFBQVEsRUFBRSxLQUFLO1lBQ2YsSUFBSSxFQUFFO2dCQUNKLEdBQUcsS0FBSzthQUNUO1lBQ0QsNEVBQTRFO1lBQzVFLEtBQUssRUFBRSxhQUFhLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1NBQ3hELENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztJQUVILHlFQUF5RTtJQUN6RSxJQUFJLGdCQUFnQixFQUFFLENBQUM7UUFDckIsU0FBUyxDQUFDLElBQUksQ0FBQztZQUNiLElBQUksRUFBRSxNQUFNO1lBQ1osS0FBSyxFQUFFLEVBQUU7WUFDVCxJQUFJLEVBQUUsV0FBVztZQUNqQixFQUFFLEVBQUUsU0FBUyxDQUFDLE1BQU07WUFDcEIsWUFBWSxFQUFFLFdBQVc7WUFDekIsSUFBSSxFQUFFLEtBQUs7WUFDWCxhQUFhLEVBQUUsSUFBSTtZQUNuQixRQUFRLEVBQUUsS0FBSztZQUNmLDRFQUE0RTtZQUM1RSxLQUFLLEVBQUUsRUFBRTtTQUNWLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsRUFBRTtJQUN2RCxPQUFPO1FBQ0wsTUFBTSxFQUFFO1lBQ04sU0FBUyxFQUFFLE1BQU07WUFDakIsa0JBQWtCLEVBQUUsb0JBQW9CO1lBQ3hDLGVBQWUsRUFBRSxpQkFBaUI7WUFDbEMsUUFBUSxFQUFFLElBQUk7U0FDZjtRQUNELFNBQVMsRUFBRSxNQUFNO1FBQ2pCLE9BQU8sRUFBRSxPQUFPO1FBQ2hCLFFBQVEsRUFBRSxLQUFLO1FBQ2YsYUFBYSxFQUFFLEtBQUs7UUFDcEIsWUFBWSxFQUFFLFVBQVUsS0FBSyxVQUFVO1FBQ3ZDLFVBQVUsRUFBRSxVQUFVLEtBQUssVUFBVTtRQUNyQyxZQUFZLEVBQUUsS0FBSztRQUNuQixlQUFlLEVBQUUsS0FBSztRQUN0QixxQkFBcUIsRUFBRSxLQUFLO1FBQzVCLE9BQU8sRUFBRSxLQUFLO1FBQ2QsTUFBTSxFQUFFLEtBQUs7UUFDYixnQkFBZ0IsRUFBRSxJQUFJO1FBQ3RCLE9BQU8sRUFBRSxLQUFLO1FBQ2QsUUFBUSxFQUFFLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLFdBQVcsRUFBRTtLQUNuRCxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLEVBQUU7SUFDbEQsSUFBSSxLQUFLLENBQUM7SUFDVixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzlHLElBQUksV0FBVyxHQUFHLFNBQVMsQ0FBQyxtQkFBbUIsSUFBSSxJQUFJLElBQUksU0FBUyxDQUFDLG1CQUFtQixJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFFbEosUUFBUSxTQUFTLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDakMsS0FBSyxVQUFVO1lBQ2IsaUZBQWlGO1lBRWpGLElBQUksS0FBSyxJQUFJLElBQUksSUFBSSxXQUFXLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ3pDLHlCQUF5QjtnQkFDekIsS0FBSyxJQUFJLElBQUksQ0FBQztnQkFDZCxXQUFXLElBQUksSUFBSSxDQUFDO2dCQUVwQixNQUFNLElBQUksR0FBRyxLQUFLLEdBQUcsV0FBVyxDQUFDO2dCQUNqQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxHQUFHLEVBQUUsRUFBRSxDQUFDO29CQUMzQixLQUFLLEdBQUcsS0FBSyxDQUFDO2dCQUNoQixDQUFDO1lBQ0gsQ0FBQztZQUVELE1BQU07UUFDUixLQUFLLE9BQU87WUFDVixJQUFJLEtBQUssR0FBRyxXQUFXLEVBQUUsQ0FBQztnQkFDeEIsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUNoQixDQUFDO1lBQ0QsTUFBTTtRQUNSLEtBQUssUUFBUTtZQUNYLElBQUksS0FBSyxHQUFHLFdBQVcsRUFBRSxDQUFDO2dCQUN4QixLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ2hCLENBQUM7WUFDRCxNQUFNO1FBQ1IsS0FBSyxNQUFNO1lBQ1QsSUFBSSxLQUFLLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ2xCLEtBQUssR0FBRyxLQUFLLENBQUM7WUFDaEIsQ0FBQztZQUNELE1BQU07UUFDUixLQUFLLFNBQVM7WUFDWixJQUFJLEtBQUssSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDbEIsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUNoQixDQUFDO1lBQ0QsTUFBTTtRQUNSO1lBQ0UsTUFBTTtJQUNWLENBQUM7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxFQUFFO0lBQzFELElBQUksS0FBSyxDQUFDO0lBQ1YsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNoRCxNQUFNLFdBQVcsR0FBRyxTQUFTLENBQUMsbUJBQW1CLENBQUMsV0FBVyxFQUFFLENBQUM7SUFFaEUsUUFBUSxTQUFTLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDakMsS0FBSyxVQUFVO1lBQ2IsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNuQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ2hCLENBQUM7WUFDRCxNQUFNO1FBQ1IsS0FBSyxRQUFRO1lBQ1gsSUFBSSxLQUFLLElBQUksV0FBVyxFQUFFLENBQUM7Z0JBQ3pCLEtBQUssR0FBRyxLQUFLLENBQUM7WUFDaEIsQ0FBQztZQUNELE1BQU07UUFDUixLQUFLLFlBQVk7WUFDZixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ3BDLEtBQUssR0FBRyxLQUFLLENBQUM7WUFDaEIsQ0FBQztZQUNELE1BQU07UUFDUjtZQUNFLE1BQU07SUFDVixDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDLENBQUM7QUFFRjs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUU7SUFDbkQsT0FBTyxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsY0FBYyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUMzRCxDQUFDLENBQUM7QUFFRjs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFDLFdBQVcsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLEVBQUU7SUFDMUUsTUFBTSxPQUFPLEdBQUc7UUFDZCxPQUFPLEVBQUUsV0FBVztRQUNwQixhQUFhO1FBQ2IsYUFBYTtLQUNkLENBQUM7SUFFRix5QkFBeUI7SUFDekIsTUFBTSxNQUFNLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDO0lBQ3JDLE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FBRyxLQUFLLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXJELE9BQU8sV0FBVyxFQUFFLENBQUM7QUFDdkIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0U2Vjb25kcyB9IGZyb20gJy4uLy4uLy4uL19oZWxwZXJzL2NvbW1vbic7XG5cbmV4cG9ydCBjb25zdCBUQUJMRV9DRUxMID0gJ1Nka1JlbmRlcmVyJztcbmV4cG9ydCBjb25zdCBERUxFVEVfSUNPTiA9ICdEZWxldGVJY29uJztcblxuLy8gQlVHLTYxNTI1MzogV29ya2Fyb3VuZCBmb3IgYXV0b3NpemUgaW4gdGFibGUgd2l0aCBsYXp5IGxvYWRpbmcgY29tcG9uZW50c1xuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbmZ1bmN0aW9uIGdldEZpZWxkV2lkdGgoZmllbGQsIGxhYmVsKSB7XG4gIGxldCB3aWR0aDtcbiAgc3dpdGNoIChmaWVsZC50eXBlKSB7XG4gICAgY2FzZSAnVGltZSc6XG4gICAgICB3aWR0aCA9IDE1MDtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ0RhdGUnOlxuICAgICAgd2lkdGggPSAxNjA7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdEYXRlVGltZSc6XG4gICAgICB3aWR0aCA9IDIwNTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ0F1dG9Db21wbGV0ZSc6XG4gICAgY2FzZSAnVGV4dEFyZWEnOlxuICAgICAgd2lkdGggPSAxOTA7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdDdXJyZW5jeSc6XG4gICAgY2FzZSAnVGV4dElucHV0JzpcbiAgICAgIHdpZHRoID0gMTgyO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnQ2hlY2tib3gnOlxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNhc2UtZGVjbGFyYXRpb25zXG4gICAgICBjb25zdCB0ZXh0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0ZXh0KTtcbiAgICAgIHRleHQuc3R5bGUuZm9udFNpemUgPSAnMTNweCc7XG4gICAgICB0ZXh0LnN0eWxlLnBvc2l0aW9uID0gJ2Fic29sdXRlJztcbiAgICAgIHRleHQuaW5uZXJIVE1MID0gbGFiZWw7XG4gICAgICB3aWR0aCA9IE1hdGguY2VpbCh0ZXh0LmNsaWVudFdpZHRoKSArIDMwO1xuICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0ZXh0KTtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICB3aWR0aCA9IDE4MDtcbiAgfVxuICByZXR1cm4gd2lkdGg7XG59XG5cbmV4cG9ydCBjb25zdCBnZXRDb250ZXh0ID0gdGhlUENvbm4gPT4ge1xuICBjb25zdCBjb250ZXh0TmFtZSA9IHRoZVBDb25uLmdldENvbnRleHROYW1lKCk7XG4gIGNvbnN0IHBhZ2VSZWZlcmVuY2UgPSB0aGVQQ29ubi5nZXRQYWdlUmVmZXJlbmNlKCk7XG4gIC8vIDguNyBjaGFuZ2UgPSByZWZlcmVuY2VMaXN0IG1heSBub3cgYmUgaW4gdG9wLWxldmVsIG9mIHN0YXRlIHByb3BzLFxuICAvLyAgbm90IGFsd2F5cyBpbiBjb25maWcgb2Ygc3RhdGUgcHJvcHNcbiAgbGV0IHsgcmVmZXJlbmNlTGlzdCB9ID0gdGhlUENvbm4uZ2V0U3RhdGVQcm9wcygpPy5jb25maWcgfHwgdGhlUENvbm4uZ2V0U3RhdGVQcm9wcygpO1xuICBjb25zdCBwYWdlUmVmZXJlbmNlRm9yUm93cyA9IHJlZmVyZW5jZUxpc3Quc3RhcnRzV2l0aCgnLicpID8gYCR7cGFnZVJlZmVyZW5jZX0uJHtyZWZlcmVuY2VMaXN0LnN1YnN0cmluZygxKX1gIDogcmVmZXJlbmNlTGlzdDtcblxuICAvLyByZW1vdmluZyBcImNhc2VJbmZvLmNvbnRlbnRcIiBwcmVmaXggdG8gYXZvaWQgc2V0dGluZyBpdCBhcyBhIHRhcmdldCB3aGlsZSBwcmVwYXJpbmcgcGFnZUluc3RydWN0aW9uc1xuICByZWZlcmVuY2VMaXN0ID0gcGFnZVJlZmVyZW5jZUZvclJvd3MucmVwbGFjZShQQ29yZS5nZXRDb25zdGFudHMoKS5DQVNFX0lORk8uQ0FTRV9JTkZPX0NPTlRFTlQsICcnKTtcblxuICByZXR1cm4ge1xuICAgIGNvbnRleHROYW1lLFxuICAgIHJlZmVyZW5jZUxpc3RTdHI6IHJlZmVyZW5jZUxpc3QsXG4gICAgcGFnZVJlZmVyZW5jZUZvclJvd3NcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBwb3B1bGF0ZVJvd0tleSA9IHJhd0RhdGEgPT4ge1xuICByZXR1cm4gcmF3RGF0YS5tYXAoKHJvdywgaW5kZXgpID0+IHtcbiAgICByZXR1cm4geyAuLi5yb3csIGluZGV4IH07XG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEFwaUNvbnRleHQgPSAocHJvY2Vzc2VkRGF0YSwgcENvbm5lY3QsIHJlb3JkZXJDQikgPT4ge1xuICByZXR1cm4ge1xuICAgIGZldGNoRGF0YTogKCkgPT4ge1xuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xuICAgICAgICByZXNvbHZlKHtcbiAgICAgICAgICBkYXRhOiBwcm9jZXNzZWREYXRhLFxuICAgICAgICAgIGZpbHRlcmVkUmVjb3JkQ291bnQ6IHByb2Nlc3NlZERhdGEubGVuZ3RoLFxuICAgICAgICAgIHRvdGFsUmVjb3JkQ291bnQ6IHByb2Nlc3NlZERhdGEubGVuZ3RoXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSxcbiAgICBmZXRjaFBlcnNvbmFsaXphdGlvbnM6ICgpID0+IHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe30pO1xuICAgIH0sXG4gICAgYXBwbHlSb3dSZW9yZGVyOiAoc291cmNlS2V5LCBkZXN0aW5hdGlvbktleSkgPT4ge1xuICAgICAgLy8gaW5kZXhlcyBhcmUga2V5cyBmb3Igc2ltcGxlIHRhYmxlIHNvLCBpdCBzaG91bGQgd29yay5cbiAgICAgIHJlb3JkZXJDQigpO1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShwQ29ubmVjdC5nZXRMaXN0QWN0aW9ucygpLnJlb3JkZXIocGFyc2VJbnQoc291cmNlS2V5LCAxMCksIHBhcnNlSW50KGRlc3RpbmF0aW9uS2V5LCAxMCkpKTtcbiAgICB9XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgYnVpbGRNZXRhRm9yTGlzdFZpZXcgPSAoZmllbGRNZXRhZGF0YSwgZmllbGRzLCB0eXBlLCBydWxlQ2xhc3MsIG5hbWUsIHByb3BlcnR5TGFiZWwsIGlzRGF0YU9iamVjdCwgcGFyYW1ldGVycykgPT4ge1xuICByZXR1cm4ge1xuICAgIG5hbWUsXG4gICAgY29uZmlnOiB7XG4gICAgICB0eXBlLFxuICAgICAgcmVmZXJlbmNlTGlzdDogZmllbGRNZXRhZGF0YS5kYXRhc291cmNlLm5hbWUsXG4gICAgICBwYXJhbWV0ZXJzOiBwYXJhbWV0ZXJzID8/IGZpZWxkTWV0YWRhdGEuZGF0YXNvdXJjZS5wYXJhbWV0ZXJzLFxuICAgICAgcGVyc29uYWxpemF0aW9uOiBmYWxzZSxcbiAgICAgIGlzRGF0YU9iamVjdCxcbiAgICAgIGdyb3VwaW5nOiB0cnVlLFxuICAgICAgZ2xvYmFsU2VhcmNoOiB0cnVlLFxuICAgICAgcmVvcmRlckZpZWxkczogdHJ1ZSxcbiAgICAgIHRvZ2dsZUZpZWxkVmlzaWJpbGl0eTogdHJ1ZSxcbiAgICAgIHRpdGxlOiBwcm9wZXJ0eUxhYmVsLFxuICAgICAgcGVyc29uYWxpemF0aW9uSWQ6ICcnIC8qIFRPRE8gKi8sXG4gICAgICB0ZW1wbGF0ZTogJ0xpc3RWaWV3JyxcbiAgICAgIHByZXNldHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdwcmVzZXRzJyxcbiAgICAgICAgICB0ZW1wbGF0ZTogJ1RhYmxlJyxcbiAgICAgICAgICBjb25maWc6IHt9LFxuICAgICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICdDb2x1bW5zJyxcbiAgICAgICAgICAgICAgdHlwZTogJ1JlZ2lvbicsXG4gICAgICAgICAgICAgIGNoaWxkcmVuOiBmaWVsZHNcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdLFxuICAgICAgICAgIGxhYmVsOiBwcm9wZXJ0eUxhYmVsLFxuICAgICAgICAgIGlkOiAnUF8nIC8qIFRPRE8gKi9cbiAgICAgICAgfVxuICAgICAgXSxcbiAgICAgIHJ1bGVDbGFzc1xuICAgIH1cbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBidWlsZEZpZWxkc0ZvclRhYmxlID0gKGNvbmZpZ0ZpZWxkcywgZmllbGRzLCBzaG93RGVsZXRlQnV0dG9uKSA9PiB7XG4gIGNvbnN0IGZpZWxkRGVmcyA9IGNvbmZpZ0ZpZWxkcz8ubWFwKChmaWVsZCwgaW5kZXgpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgbGFiZWw6IGZpZWxkc1tpbmRleF0uY29uZmlnLmxhYmVsIHx8IGZpZWxkc1tpbmRleF0uY29uZmlnLmNhcHRpb24sXG4gICAgICBmaWxsQXZhaWxhYmxlU3BhY2U6ICEhZmllbGQuY29uZmlnLmZpbGxBdmFpbGFibGVTcGFjZSxcbiAgICAgIGlkOiBgJHtpbmRleH1gLFxuICAgICAgbmFtZTogZmllbGQuY29uZmlnLnZhbHVlLnN1YnN0cig0KSxcbiAgICAgIGNlbGxSZW5kZXJlcjogVEFCTEVfQ0VMTCxcbiAgICAgIHNvcnQ6IGZhbHNlLFxuICAgICAgbm9Db250ZXh0TWVudTogdHJ1ZSxcbiAgICAgIHNob3dNZW51OiBmYWxzZSxcbiAgICAgIG1ldGE6IHtcbiAgICAgICAgLi4uZmllbGRcbiAgICAgIH0sXG4gICAgICAvLyBCVUctNjE1MjUzOiBXb3JrYXJvdW5kIGZvciBhdXRvc2l6ZSBpbiB0YWJsZSB3aXRoIGxhenkgbG9hZGluZyBjb21wb25lbnRzXG4gICAgICB3aWR0aDogZ2V0RmllbGRXaWR0aChmaWVsZCwgZmllbGRzW2luZGV4XS5jb25maWcubGFiZWwpXG4gICAgfTtcbiAgfSk7XG5cbiAgLy8gT05MWSBhZGQgREVMRVRFX0lDT04gdG8gZmllbGRzIHdoZW4gdGhlIHRhYmxlIGlzIHJlcXVlc3RlZCBhcyBFRElUQUJMRVxuICBpZiAoc2hvd0RlbGV0ZUJ1dHRvbikge1xuICAgIGZpZWxkRGVmcy5wdXNoKHtcbiAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgIGxhYmVsOiAnJyxcbiAgICAgIG5hbWU6IERFTEVURV9JQ09OLFxuICAgICAgaWQ6IGZpZWxkRGVmcy5sZW5ndGgsXG4gICAgICBjZWxsUmVuZGVyZXI6IERFTEVURV9JQ09OLFxuICAgICAgc29ydDogZmFsc2UsXG4gICAgICBub0NvbnRleHRNZW51OiB0cnVlLFxuICAgICAgc2hvd01lbnU6IGZhbHNlLFxuICAgICAgLy8gQlVHLTYxNTI1MzogV29ya2Fyb3VuZCBmb3IgYXV0b3NpemUgaW4gdGFibGUgd2l0aCBsYXp5IGxvYWRpbmcgY29tcG9uZW50c1xuICAgICAgd2lkdGg6IDQ2XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gZmllbGREZWZzO1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZU1ldGFGb3JUYWJsZSA9IChmaWVsZHMsIHJlbmRlck1vZGUpID0+IHtcbiAgcmV0dXJuIHtcbiAgICBoZWlnaHQ6IHtcbiAgICAgIG1pbkhlaWdodDogJ2F1dG8nLFxuICAgICAgZml0SGVpZ2h0VG9FbGVtZW50OiAnZml0SGVpZ2h0VG9FbGVtZW50JyxcbiAgICAgIGRlbHRhQWRqdXN0bWVudDogJ2RlbHRhQWRqdXN0bWVudCcsXG4gICAgICBhdXRvU2l6ZTogdHJ1ZVxuICAgIH0sXG4gICAgZmllbGREZWZzOiBmaWVsZHMsXG4gICAgaXRlbUtleTogJ2luZGV4JyxcbiAgICBncm91cGluZzogZmFsc2UsXG4gICAgcmVvcmRlckZpZWxkczogZmFsc2UsXG4gICAgcmVvcmRlckl0ZW1zOiByZW5kZXJNb2RlID09PSAnRWRpdGFibGUnLFxuICAgIGRyYWdIYW5kbGU6IHJlbmRlck1vZGUgPT09ICdFZGl0YWJsZScsXG4gICAgZ2xvYmFsU2VhcmNoOiBmYWxzZSxcbiAgICBwZXJzb25hbGl6YXRpb246IGZhbHNlLFxuICAgIHRvZ2dsZUZpZWxkVmlzaWJpbGl0eTogZmFsc2UsXG4gICAgdG9vbGJhcjogZmFsc2UsXG4gICAgZm9vdGVyOiBmYWxzZSxcbiAgICBmaWx0ZXJFeHByZXNzaW9uOiBudWxsLFxuICAgIGVkaXRpbmc6IGZhbHNlLFxuICAgIHRpbWV6b25lOiBQQ29yZS5nZXRFbnZpcm9ubWVudEluZm8oKS5nZXRUaW1lWm9uZSgpXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZmlsdGVyRGF0YUJ5RGF0ZSA9IChpdGVtLCBmaWx0ZXJPYmopID0+IHtcbiAgbGV0IGJLZWVwO1xuICBsZXQgdmFsdWUgPSBpdGVtW2ZpbHRlck9iai5yZWZdICE9IG51bGwgfHwgaXRlbVtmaWx0ZXJPYmoucmVmXSAhPSAnJyA/IGdldFNlY29uZHMoaXRlbVtmaWx0ZXJPYmoucmVmXSkgOiBudWxsO1xuICBsZXQgZmlsdGVyVmFsdWUgPSBmaWx0ZXJPYmouY29udGFpbnNGaWx0ZXJWYWx1ZSAhPSBudWxsICYmIGZpbHRlck9iai5jb250YWluc0ZpbHRlclZhbHVlICE9ICcnID8gZ2V0U2Vjb25kcyhmaWx0ZXJPYmouY29udGFpbnNGaWx0ZXJWYWx1ZSkgOiBudWxsO1xuXG4gIHN3aXRjaCAoZmlsdGVyT2JqLmNvbnRhaW5zRmlsdGVyKSB7XG4gICAgY2FzZSAnbm90ZXF1YWwnOlxuICAgICAgLy8gYmVjYXN1ZSBmaWx0ZXJWYWx1ZSBpcyBpbiBtaW51dGVzLCBuZWVkIHRvIGhhdmUgYSByYW5nZSBvZiBsZXNzIHRoYW4gNjAgc2Vjb25zXG5cbiAgICAgIGlmICh2YWx1ZSAhPSBudWxsICYmIGZpbHRlclZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgLy8gZ2V0IHJpZCBvZiBtaWxsaXNlY29uc1xuICAgICAgICB2YWx1ZSAvPSAxMDAwO1xuICAgICAgICBmaWx0ZXJWYWx1ZSAvPSAxMDAwO1xuXG4gICAgICAgIGNvbnN0IGRpZmYgPSB2YWx1ZSAtIGZpbHRlclZhbHVlO1xuICAgICAgICBpZiAoZGlmZiA+PSAwICYmIGRpZmYgPCA2MCkge1xuICAgICAgICAgIGJLZWVwID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnYWZ0ZXInOlxuICAgICAgaWYgKHZhbHVlIDwgZmlsdGVyVmFsdWUpIHtcbiAgICAgICAgYktlZXAgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2JlZm9yZSc6XG4gICAgICBpZiAodmFsdWUgPiBmaWx0ZXJWYWx1ZSkge1xuICAgICAgICBiS2VlcCA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnbnVsbCc6XG4gICAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgICBiS2VlcCA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnbm90bnVsbCc6XG4gICAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgICBiS2VlcCA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIGJyZWFrO1xuICB9XG5cbiAgcmV0dXJuIGJLZWVwO1xufTtcblxuZXhwb3J0IGNvbnN0IGZpbHRlckRhdGFCeUNvbW1vbkZpZWxkcyA9IChpdGVtLCBmaWx0ZXJPYmopID0+IHtcbiAgbGV0IGJLZWVwO1xuICBjb25zdCB2YWx1ZSA9IGl0ZW1bZmlsdGVyT2JqLnJlZl0udG9Mb3dlckNhc2UoKTtcbiAgY29uc3QgZmlsdGVyVmFsdWUgPSBmaWx0ZXJPYmouY29udGFpbnNGaWx0ZXJWYWx1ZS50b0xvd2VyQ2FzZSgpO1xuXG4gIHN3aXRjaCAoZmlsdGVyT2JqLmNvbnRhaW5zRmlsdGVyKSB7XG4gICAgY2FzZSAnY29udGFpbnMnOlxuICAgICAgaWYgKHZhbHVlLmluZGV4T2YoZmlsdGVyVmFsdWUpIDwgMCkge1xuICAgICAgICBiS2VlcCA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnZXF1YWxzJzpcbiAgICAgIGlmICh2YWx1ZSAhPSBmaWx0ZXJWYWx1ZSkge1xuICAgICAgICBiS2VlcCA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnc3RhcnRzd2l0aCc6XG4gICAgICBpZiAodmFsdWUuaW5kZXhPZihmaWx0ZXJWYWx1ZSkgIT0gMCkge1xuICAgICAgICBiS2VlcCA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIGJyZWFrO1xuICB9XG5cbiAgcmV0dXJuIGJLZWVwO1xufTtcblxuLyoqXG4gKiBUaGlzIG1ldGhvZCByZXR1cm5zIGEgY2FsbEJhY2sgZnVuY3Rpb24gZm9yIEFkZCBhY3Rpb24uXG4gKiBAcGFyYW0ge29iamVjdH0gcENvbm5lY3QgLSBQQ29ubmVjdCBvYmplY3RcbiAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleCAtIGluZGV4IG9mIHRoZSBwYWdlIGxpc3QgdG8gYWRkXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRBZGRSb3dDYWxsYmFjayA9IChwQ29ubmVjdCwgaW5kZXgpID0+IHtcbiAgcmV0dXJuICgpID0+IHBDb25uZWN0LmdldExpc3RBY3Rpb25zKCkuaW5zZXJ0KHt9LCBpbmRleCk7XG59O1xuXG4vKipcbiAqIFRoaXMgbWV0aG9kIGNyZWF0ZXMgYSBQQ29ubmVjdCBvYmplY3Qgd2l0aCBwcm9wZXIgb3B0aW9ucyBmb3IgQWRkIGFuZCBEZWxldGUgYWN0aW9uc1xuICogQHBhcmFtIHtzdHJpbmd9IGNvbnRleHROYW1lIC0gY29udGV4dE5hbWVcbiAqIEBwYXJhbSB7c3RyaW5nfSByZWZlcmVuY2VMaXN0IC0gcmVmZXJlbmNlTGlzdFxuICogQHBhcmFtIHtzdHJpbmd9IHBhZ2VSZWZlcmVuY2UgLSBwYWdlUmVmZXJlbmNlXG4gKi9cbmV4cG9ydCBjb25zdCBjcmVhdGVQQ29ubmVjdCA9IChjb250ZXh0TmFtZSwgcmVmZXJlbmNlTGlzdCwgcGFnZVJlZmVyZW5jZSkgPT4ge1xuICBjb25zdCBvcHRpb25zID0ge1xuICAgIGNvbnRleHQ6IGNvbnRleHROYW1lLFxuICAgIHBhZ2VSZWZlcmVuY2UsXG4gICAgcmVmZXJlbmNlTGlzdFxuICB9O1xuXG4gIC8vIGNyZWF0ZSBQQ29ubmVjdCBvYmplY3RcbiAgY29uc3QgY29uZmlnID0geyBtZXRhOiB7fSwgb3B0aW9ucyB9O1xuICBjb25zdCB7IGdldFBDb25uZWN0IH0gPSBQQ29yZS5jcmVhdGVQQ29ubmVjdChjb25maWcpO1xuXG4gIHJldHVybiBnZXRQQ29ubmVjdCgpO1xufTtcbiJdfQ==
|
|
271
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9zaW1wbGUtdGFibGUtbWFudWFsL2hlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXRELE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUM7QUFDeEMsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLFlBQVksQ0FBQztBQUV4Qyw0RUFBNEU7QUFDNUUsMEJBQTBCO0FBQzFCLFNBQVMsYUFBYSxDQUFDLEtBQUssRUFBRSxLQUFLO0lBQ2pDLElBQUksS0FBSyxDQUFDO0lBQ1YsUUFBUSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbkIsS0FBSyxNQUFNO1lBQ1QsS0FBSyxHQUFHLEdBQUcsQ0FBQztZQUNaLE1BQU07UUFDUixLQUFLLE1BQU07WUFDVCxLQUFLLEdBQUcsR0FBRyxDQUFDO1lBQ1osTUFBTTtRQUNSLEtBQUssVUFBVTtZQUNiLEtBQUssR0FBRyxHQUFHLENBQUM7WUFDWixNQUFNO1FBQ1IsS0FBSyxjQUFjLENBQUM7UUFDcEIsS0FBSyxVQUFVO1lBQ2IsS0FBSyxHQUFHLEdBQUcsQ0FBQztZQUNaLE1BQU07UUFDUixLQUFLLFVBQVUsQ0FBQztRQUNoQixLQUFLLFdBQVc7WUFDZCxLQUFLLEdBQUcsR0FBRyxDQUFDO1lBQ1osTUFBTTtRQUNSLEtBQUssVUFBVTtZQUNiLGdEQUFnRDtZQUNoRCxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzVDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxH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RSxHQUFHLEtBQUssQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFckQsT0FBTyxXQUFXLEVBQUUsQ0FBQztBQUN2QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRTZWNvbmRzIH0gZnJvbSAnLi4vLi4vLi4vX2hlbHBlcnMvY29tbW9uJztcblxuZXhwb3J0IGNvbnN0IFRBQkxFX0NFTEwgPSAnU2RrUmVuZGVyZXInO1xuZXhwb3J0IGNvbnN0IERFTEVURV9JQ09OID0gJ0RlbGV0ZUljb24nO1xuXG4vLyBCVUctNjE1MjUzOiBXb3JrYXJvdW5kIGZvciBhdXRvc2l6ZSBpbiB0YWJsZSB3aXRoIGxhenkgbG9hZGluZyBjb21wb25lbnRzXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuZnVuY3Rpb24gZ2V0RmllbGRXaWR0aChmaWVsZCwgbGFiZWwpIHtcbiAgbGV0IHdpZHRoO1xuICBzd2l0Y2ggKGZpZWxkLnR5cGUpIHtcbiAgICBjYXNlICdUaW1lJzpcbiAgICAgIHdpZHRoID0gMTUwO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnRGF0ZSc6XG4gICAgICB3aWR0aCA9IDE2MDtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ0RhdGVUaW1lJzpcbiAgICAgIHdpZHRoID0gMjA1O1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnQXV0b0NvbXBsZXRlJzpcbiAgICBjYXNlICdUZXh0QXJlYSc6XG4gICAgICB3aWR0aCA9IDE5MDtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ0N1cnJlbmN5JzpcbiAgICBjYXNlICdUZXh0SW5wdXQnOlxuICAgICAgd2lkdGggPSAxODI7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdDaGVja2JveCc6XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY2FzZS1kZWNsYXJhdGlvbnNcbiAgICAgIGNvbnN0IHRleHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRleHQpO1xuICAgICAgdGV4dC5zdHlsZS5mb250U2l6ZSA9ICcxM3B4JztcbiAgICAgIHRleHQuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xuICAgICAgdGV4dC5pbm5lckhUTUwgPSBsYWJlbDtcbiAgICAgIHdpZHRoID0gTWF0aC5jZWlsKHRleHQuY2xpZW50V2lkdGgpICsgMzA7XG4gICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHRleHQpO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIHdpZHRoID0gMTgwO1xuICB9XG4gIHJldHVybiB3aWR0aDtcbn1cblxuZXhwb3J0IGNvbnN0IGdldENvbnRleHQgPSB0aGVQQ29ubiA9PiB7XG4gIGNvbnN0IGNvbnRleHROYW1lID0gdGhlUENvbm4uZ2V0Q29udGV4dE5hbWUoKTtcbiAgY29uc3QgcGFnZVJlZmVyZW5jZSA9IHRoZVBDb25uLmdldFBhZ2VSZWZlcmVuY2UoKTtcbiAgY29uc3QgeyByZWFkb25seUNvbnRleHRMaXN0LCByZWZlcmVuY2VMaXN0ID0gcmVhZG9ubHlDb250ZXh0TGlzdCB9ID0gdGhlUENvbm4uZ2V0U3RhdGVQcm9wcygpPy5jb25maWcgfHwgdGhlUENvbm4uZ2V0U3RhdGVQcm9wcygpO1xuXG4gIGNvbnN0IHBhZ2VSZWZlcmVuY2VGb3JSb3dzID0gcmVmZXJlbmNlTGlzdC5zdGFydHNXaXRoKCcuJykgPyBgJHtwYWdlUmVmZXJlbmNlfS4ke3JlZmVyZW5jZUxpc3Quc3Vic3RyaW5nKDEpfWAgOiByZWZlcmVuY2VMaXN0O1xuICBjb25zdCB2aWV3TmFtZSA9IHRoZVBDb25uLnZpZXdOYW1lO1xuXG4gIC8vIHJlbW92aW5nIFwiY2FzZUluZm8uY29udGVudFwiIHByZWZpeCB0byBhdm9pZCBzZXR0aW5nIGl0IGFzIGEgdGFyZ2V0IHdoaWxlIHByZXBhcmluZyBwYWdlSW5zdHJ1Y3Rpb25zXG4gIC8vIHNraXBwaW5nIHRoZSByZW1vdmFsIGFzIFN0YXRlTWFjaGluZSBpdHNlbGYgaXMgcmVtb3ZpbmcgdGhpcyBjYXNlIGluZm8gcHJlZml4IHdoaWxlIHByZXBhcmluZyBwYWdlSW5zdHJ1Y3Rpb25zXG4gIC8vIHJlZmVyZW5jZUxpc3QgPSBwYWdlUmVmZXJlbmNlRm9yUm93cy5yZXBsYWNlKFBDb3JlLmdldENvbnN0YW50cygpLkNBU0VfSU5GTy5DQVNFX0lORk9fQ09OVEVOVCwgJycpO1xuXG4gIHJldHVybiB7XG4gICAgY29udGV4dE5hbWUsXG4gICAgcmVmZXJlbmNlTGlzdFN0cjogcmVmZXJlbmNlTGlzdCxcbiAgICBwYWdlUmVmZXJlbmNlRm9yUm93cyxcbiAgICB2aWV3TmFtZVxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IHBvcHVsYXRlUm93S2V5ID0gcmF3RGF0YSA9PiB7XG4gIHJldHVybiByYXdEYXRhLm1hcCgocm93LCBpbmRleCkgPT4ge1xuICAgIHJldHVybiB7IC4uLnJvdywgaW5kZXggfTtcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0QXBpQ29udGV4dCA9IChwcm9jZXNzZWREYXRhLCBwQ29ubmVjdCwgcmVvcmRlckNCKSA9PiB7XG4gIHJldHVybiB7XG4gICAgZmV0Y2hEYXRhOiAoKSA9PiB7XG4gICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XG4gICAgICAgIHJlc29sdmUoe1xuICAgICAgICAgIGRhdGE6IHByb2Nlc3NlZERhdGEsXG4gICAgICAgICAgZmlsdGVyZWRSZWNvcmRDb3VudDogcHJvY2Vzc2VkRGF0YS5sZW5ndGgsXG4gICAgICAgICAgdG90YWxSZWNvcmRDb3VudDogcHJvY2Vzc2VkRGF0YS5sZW5ndGhcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9LFxuICAgIGZldGNoUGVyc29uYWxpemF0aW9uczogKCkgPT4ge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7fSk7XG4gICAgfSxcbiAgICBhcHBseVJvd1Jlb3JkZXI6IChzb3VyY2VLZXksIGRlc3RpbmF0aW9uS2V5KSA9PiB7XG4gICAgICAvLyBpbmRleGVzIGFyZSBrZXlzIGZvciBzaW1wbGUgdGFibGUgc28sIGl0IHNob3VsZCB3b3JrLlxuICAgICAgcmVvcmRlckNCKCk7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHBDb25uZWN0LmdldExpc3RBY3Rpb25zKCkucmVvcmRlcihwYXJzZUludChzb3VyY2VLZXksIDEwKSwgcGFyc2VJbnQoZGVzdGluYXRpb25LZXksIDEwKSkpO1xuICAgIH1cbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBidWlsZE1ldGFGb3JMaXN0VmlldyA9IChmaWVsZE1ldGFkYXRhLCBmaWVsZHMsIHR5cGUsIHJ1bGVDbGFzcywgbmFtZSwgcHJvcGVydHlMYWJlbCwgaXNEYXRhT2JqZWN0LCBwYXJhbWV0ZXJzKSA9PiB7XG4gIHJldHVybiB7XG4gICAgbmFtZSxcbiAgICBjb25maWc6IHtcbiAgICAgIHR5cGUsXG4gICAgICByZWZlcmVuY2VMaXN0OiBmaWVsZE1ldGFkYXRhLmRhdGFzb3VyY2UubmFtZSxcbiAgICAgIHBhcmFtZXRlcnM6IHBhcmFtZXRlcnMgPz8gZmllbGRNZXRhZGF0YS5kYXRhc291cmNlLnBhcmFtZXRlcnMsXG4gICAgICBwZXJzb25hbGl6YXRpb246IGZhbHNlLFxuICAgICAgaXNEYXRhT2JqZWN0LFxuICAgICAgZ3JvdXBpbmc6IHRydWUsXG4gICAgICBnbG9iYWxTZWFyY2g6IHRydWUsXG4gICAgICByZW9yZGVyRmllbGRzOiB0cnVlLFxuICAgICAgdG9nZ2xlRmllbGRWaXNpYmlsaXR5OiB0cnVlLFxuICAgICAgdGl0bGU6IHByb3BlcnR5TGFiZWwsXG4gICAgICBwZXJzb25hbGl6YXRpb25JZDogJycgLyogVE9ETyAqLyxcbiAgICAgIHRlbXBsYXRlOiAnTGlzdFZpZXcnLFxuICAgICAgcHJlc2V0czogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ3ByZXNldHMnLFxuICAgICAgICAgIHRlbXBsYXRlOiAnVGFibGUnLFxuICAgICAgICAgIGNvbmZpZzoge30sXG4gICAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ0NvbHVtbnMnLFxuICAgICAgICAgICAgICB0eXBlOiAnUmVnaW9uJyxcbiAgICAgICAgICAgICAgY2hpbGRyZW46IGZpZWxkc1xuICAgICAgICAgICAgfVxuICAgICAgICAgIF0sXG4gICAgICAgICAgbGFiZWw6IHByb3BlcnR5TGFiZWwsXG4gICAgICAgICAgaWQ6ICdQXycgLyogVE9ETyAqL1xuICAgICAgICB9XG4gICAgICBdLFxuICAgICAgcnVsZUNsYXNzXG4gICAgfVxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGJ1aWxkRmllbGRzRm9yVGFibGUgPSAoY29uZmlnRmllbGRzLCBmaWVsZHMsIHNob3dEZWxldGVCdXR0b24pID0+IHtcbiAgY29uc3QgZmllbGREZWZzID0gY29uZmlnRmllbGRzPy5tYXAoKGZpZWxkLCBpbmRleCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAndGV4dCcsXG4gICAgICBsYWJlbDogZmllbGRzW2luZGV4XS5jb25maWcubGFiZWwgfHwgZmllbGRzW2luZGV4XS5jb25maWcuY2FwdGlvbixcbiAgICAgIGZpbGxBdmFpbGFibGVTcGFjZTogISFmaWVsZC5jb25maWcuZmlsbEF2YWlsYWJsZVNwYWNlLFxuICAgICAgaWQ6IGAke2luZGV4fWAsXG4gICAgICBuYW1lOiBmaWVsZC5jb25maWcudmFsdWUuc3Vic3RyKDQpLFxuICAgICAgY2VsbFJlbmRlcmVyOiBUQUJMRV9DRUxMLFxuICAgICAgc29ydDogZmFsc2UsXG4gICAgICBub0NvbnRleHRNZW51OiB0cnVlLFxuICAgICAgc2hvd01lbnU6IGZhbHNlLFxuICAgICAgbWV0YToge1xuICAgICAgICAuLi5maWVsZFxuICAgICAgfSxcbiAgICAgIC8vIEJVRy02MTUyNTM6IFdvcmthcm91bmQgZm9yIGF1dG9zaXplIGluIHRhYmxlIHdpdGggbGF6eSBsb2FkaW5nIGNvbXBvbmVudHNcbiAgICAgIHdpZHRoOiBnZXRGaWVsZFdpZHRoKGZpZWxkLCBmaWVsZHNbaW5kZXhdLmNvbmZpZy5sYWJlbClcbiAgICB9O1xuICB9KTtcblxuICAvLyBPTkxZIGFkZCBERUxFVEVfSUNPTiB0byBmaWVsZHMgd2hlbiB0aGUgdGFibGUgaXMgcmVxdWVzdGVkIGFzIEVESVRBQkxFXG4gIGlmIChzaG93RGVsZXRlQnV0dG9uKSB7XG4gICAgZmllbGREZWZzLnB1c2goe1xuICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgbGFiZWw6ICcnLFxuICAgICAgbmFtZTogREVMRVRFX0lDT04sXG4gICAgICBpZDogZmllbGREZWZzLmxlbmd0aCxcbiAgICAgIGNlbGxSZW5kZXJlcjogREVMRVRFX0lDT04sXG4gICAgICBzb3J0OiBmYWxzZSxcbiAgICAgIG5vQ29udGV4dE1lbnU6IHRydWUsXG4gICAgICBzaG93TWVudTogZmFsc2UsXG4gICAgICAvLyBCVUctNjE1MjUzOiBXb3JrYXJvdW5kIGZvciBhdXRvc2l6ZSBpbiB0YWJsZSB3aXRoIGxhenkgbG9hZGluZyBjb21wb25lbnRzXG4gICAgICB3aWR0aDogNDZcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBmaWVsZERlZnM7XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlTWV0YUZvclRhYmxlID0gKGZpZWxkcywgcmVuZGVyTW9kZSkgPT4ge1xuICByZXR1cm4ge1xuICAgIGhlaWdodDoge1xuICAgICAgbWluSGVpZ2h0OiAnYXV0bycsXG4gICAgICBmaXRIZWlnaHRUb0VsZW1lbnQ6ICdmaXRIZWlnaHRUb0VsZW1lbnQnLFxuICAgICAgZGVsdGFBZGp1c3RtZW50OiAnZGVsdGFBZGp1c3RtZW50JyxcbiAgICAgIGF1dG9TaXplOiB0cnVlXG4gICAgfSxcbiAgICBmaWVsZERlZnM6IGZpZWxkcyxcbiAgICBpdGVtS2V5OiAnaW5kZXgnLFxuICAgIGdyb3VwaW5nOiBmYWxzZSxcbiAgICByZW9yZGVyRmllbGRzOiBmYWxzZSxcbiAgICByZW9yZGVySXRlbXM6IHJlbmRlck1vZGUgPT09ICdFZGl0YWJsZScsXG4gICAgZHJhZ0hhbmRsZTogcmVuZGVyTW9kZSA9PT0gJ0VkaXRhYmxlJyxcbiAgICBnbG9iYWxTZWFyY2g6IGZhbHNlLFxuICAgIHBlcnNvbmFsaXphdGlvbjogZmFsc2UsXG4gICAgdG9nZ2xlRmllbGRWaXNpYmlsaXR5OiBmYWxzZSxcbiAgICB0b29sYmFyOiBmYWxzZSxcbiAgICBmb290ZXI6IGZhbHNlLFxuICAgIGZpbHRlckV4cHJlc3Npb246IG51bGwsXG4gICAgZWRpdGluZzogZmFsc2UsXG4gICAgdGltZXpvbmU6IFBDb3JlLmdldEVudmlyb25tZW50SW5mbygpLmdldFRpbWVab25lKClcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBmaWx0ZXJEYXRhQnlEYXRlID0gKGl0ZW0sIGZpbHRlck9iaikgPT4ge1xuICBsZXQgYktlZXA7XG4gIGxldCB2YWx1ZSA9IGl0ZW1bZmlsdGVyT2JqLnJlZl0gIT0gbnVsbCB8fCBpdGVtW2ZpbHRlck9iai5yZWZdICE9ICcnID8gZ2V0U2Vjb25kcyhpdGVtW2ZpbHRlck9iai5yZWZdKSA6IG51bGw7XG4gIGxldCBmaWx0ZXJWYWx1ZSA9IGZpbHRlck9iai5jb250YWluc0ZpbHRlclZhbHVlICE9IG51bGwgJiYgZmlsdGVyT2JqLmNvbnRhaW5zRmlsdGVyVmFsdWUgIT0gJycgPyBnZXRTZWNvbmRzKGZpbHRlck9iai5jb250YWluc0ZpbHRlclZhbHVlKSA6IG51bGw7XG5cbiAgc3dpdGNoIChmaWx0ZXJPYmouY29udGFpbnNGaWx0ZXIpIHtcbiAgICBjYXNlICdub3RlcXVhbCc6XG4gICAgICAvLyBiZWNhc3VlIGZpbHRlclZhbHVlIGlzIGluIG1pbnV0ZXMsIG5lZWQgdG8gaGF2ZSBhIHJhbmdlIG9mIGxlc3MgdGhhbiA2MCBzZWNvbnNcblxuICAgICAgaWYgKHZhbHVlICE9IG51bGwgJiYgZmlsdGVyVmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAvLyBnZXQgcmlkIG9mIG1pbGxpc2Vjb25zXG4gICAgICAgIHZhbHVlIC89IDEwMDA7XG4gICAgICAgIGZpbHRlclZhbHVlIC89IDEwMDA7XG5cbiAgICAgICAgY29uc3QgZGlmZiA9IHZhbHVlIC0gZmlsdGVyVmFsdWU7XG4gICAgICAgIGlmIChkaWZmID49IDAgJiYgZGlmZiA8IDYwKSB7XG4gICAgICAgICAgYktlZXAgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBicmVhaztcbiAgICBjYXNlICdhZnRlcic6XG4gICAgICBpZiAodmFsdWUgPCBmaWx0ZXJWYWx1ZSkge1xuICAgICAgICBiS2VlcCA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnYmVmb3JlJzpcbiAgICAgIGlmICh2YWx1ZSA+IGZpbHRlclZhbHVlKSB7XG4gICAgICAgIGJLZWVwID0gZmFsc2U7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlICdudWxsJzpcbiAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICAgIGJLZWVwID0gZmFsc2U7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlICdub3RudWxsJzpcbiAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICAgIGJLZWVwID0gZmFsc2U7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgYnJlYWs7XG4gIH1cblxuICByZXR1cm4gYktlZXA7XG59O1xuXG5leHBvcnQgY29uc3QgZmlsdGVyRGF0YUJ5Q29tbW9uRmllbGRzID0gKGl0ZW0sIGZpbHRlck9iaikgPT4ge1xuICBsZXQgYktlZXA7XG4gIGNvbnN0IHZhbHVlID0gaXRlbVtmaWx0ZXJPYmoucmVmXS50b0xvd2VyQ2FzZSgpO1xuICBjb25zdCBmaWx0ZXJWYWx1ZSA9IGZpbHRlck9iai5jb250YWluc0ZpbHRlclZhbHVlLnRvTG93ZXJDYXNlKCk7XG5cbiAgc3dpdGNoIChmaWx0ZXJPYmouY29udGFpbnNGaWx0ZXIpIHtcbiAgICBjYXNlICdjb250YWlucyc6XG4gICAgICBpZiAodmFsdWUuaW5kZXhPZihmaWx0ZXJWYWx1ZSkgPCAwKSB7XG4gICAgICAgIGJLZWVwID0gZmFsc2U7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlICdlcXVhbHMnOlxuICAgICAgaWYgKHZhbHVlICE9IGZpbHRlclZhbHVlKSB7XG4gICAgICAgIGJLZWVwID0gZmFsc2U7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlICdzdGFydHN3aXRoJzpcbiAgICAgIGlmICh2YWx1ZS5pbmRleE9mKGZpbHRlclZhbHVlKSAhPSAwKSB7XG4gICAgICAgIGJLZWVwID0gZmFsc2U7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgYnJlYWs7XG4gIH1cblxuICByZXR1cm4gYktlZXA7XG59O1xuXG4vKipcbiAqIFRoaXMgbWV0aG9kIHJldHVybnMgYSBjYWxsQmFjayBmdW5jdGlvbiBmb3IgQWRkIGFjdGlvbi5cbiAqIEBwYXJhbSB7b2JqZWN0fSBwQ29ubmVjdCAtIFBDb25uZWN0IG9iamVjdFxuICogQHBhcmFtIHtudW1iZXJ9IGluZGV4IC0gaW5kZXggb2YgdGhlIHBhZ2UgbGlzdCB0byBhZGRcbiAqL1xuZXhwb3J0IGNvbnN0IGdldEFkZFJvd0NhbGxiYWNrID0gKHBDb25uZWN0LCBpbmRleCkgPT4ge1xuICByZXR1cm4gKCkgPT4gcENvbm5lY3QuZ2V0TGlzdEFjdGlvbnMoKS5pbnNlcnQoe30sIGluZGV4KTtcbn07XG5cbi8qKlxuICogVGhpcyBtZXRob2QgY3JlYXRlcyBhIFBDb25uZWN0IG9iamVjdCB3aXRoIHByb3BlciBvcHRpb25zIGZvciBBZGQgYW5kIERlbGV0ZSBhY3Rpb25zXG4gKiBAcGFyYW0ge3N0cmluZ30gY29udGV4dE5hbWUgLSBjb250ZXh0TmFtZVxuICogQHBhcmFtIHtzdHJpbmd9IHJlZmVyZW5jZUxpc3QgLSByZWZlcmVuY2VMaXN0XG4gKiBAcGFyYW0ge3N0cmluZ30gcGFnZVJlZmVyZW5jZSAtIHBhZ2VSZWZlcmVuY2VcbiAqL1xuZXhwb3J0IGNvbnN0IGNyZWF0ZVBDb25uZWN0ID0gKGNvbnRleHROYW1lLCByZWZlcmVuY2VMaXN0LCBwYWdlUmVmZXJlbmNlKSA9PiB7XG4gIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgY29udGV4dDogY29udGV4dE5hbWUsXG4gICAgcGFnZVJlZmVyZW5jZSxcbiAgICByZWZlcmVuY2VMaXN0XG4gIH07XG5cbiAgLy8gY3JlYXRlIFBDb25uZWN0IG9iamVjdFxuICBjb25zdCBjb25maWcgPSB7IG1ldGE6IHt9LCBvcHRpb25zIH07XG4gIGNvbnN0IHsgZ2V0UENvbm5lY3QgfSA9IFBDb3JlLmNyZWF0ZVBDb25uZWN0KGNvbmZpZyk7XG5cbiAgcmV0dXJuIGdldFBDb25uZWN0KCk7XG59O1xuIl19
|