@smartbit4all/ng-client 1.0.12 → 1.0.14

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.
@@ -1,6 +1,6 @@
1
- import { Component, Input } from "@angular/core";
2
- import { UiActionButtonIconPos, UiActionButtonType } from "../api";
3
- import { Subject, takeUntil } from "rxjs";
1
+ import { Component, Input } from '@angular/core';
2
+ import { UiActionButtonIconPos, UiActionButtonType } from '../api';
3
+ import { Subject, takeUntil } from 'rxjs';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "./ui-action.service";
6
6
  import * as i2 from "./ui-action.descriptor.service";
@@ -20,7 +20,7 @@ export class UiActionToolbarComponent {
20
20
  this.setUp();
21
21
  }
22
22
  ngOnChanges(changes) {
23
- let uiActionModels = changes["uiActionModels"].currentValue;
23
+ let uiActionModels = changes['uiActionModels'].currentValue;
24
24
  if (uiActionModels) {
25
25
  this.uiActionModels = uiActionModels;
26
26
  this.setUp();
@@ -43,19 +43,19 @@ export class UiActionToolbarComponent {
43
43
  getType(uiActionModel) {
44
44
  switch (uiActionModel.descriptor?.type) {
45
45
  case UiActionButtonType.Normal:
46
- return "mat-button";
46
+ return 'mat-button';
47
47
  case UiActionButtonType.Flat:
48
- return "mat-flat-button";
48
+ return 'mat-flat-button';
49
49
  case UiActionButtonType.Raised:
50
- return "mat-raised-button";
50
+ return 'mat-raised-button';
51
51
  case UiActionButtonType.Stroked:
52
- return "mat-stroked-button";
52
+ return 'mat-stroked-button';
53
53
  case UiActionButtonType.Icon:
54
- return "mat-icon-button";
54
+ return 'mat-icon-button';
55
55
  case UiActionButtonType.MiniFab:
56
- return "mat-mini-fab";
56
+ return 'mat-mini-fab';
57
57
  case UiActionButtonType.Fab:
58
- return "mat-fab";
58
+ return 'mat-fab';
59
59
  default:
60
60
  console.log(`Unhandled action button type case: ${uiActionModel.descriptor?.type}`);
61
61
  return `mat-button`;
@@ -74,8 +74,8 @@ UiActionToolbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0",
74
74
  UiActionToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: UiActionToolbarComponent, selector: "smart-ui-action-toolbar", inputs: { uiActionModels: "uiActionModels" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"uiActionButtonsContainer\">\n <button\n *ngFor=\"let uiActionModel of uiActionModelsWithDescriptions\"\n mat-button\n [ngClass]=\"getType(uiActionModel)\"\n class=\"{{ uiActionModel.cssClass }}\"\n [color]=\"uiActionModel.descriptor?.color\"\n (click)=\"onActionClicked($event, uiActionModel)\"\n >\n <div *ngIf=\"isOnlyIcon(uiActionModel); then iconOnly; else text\"></div>\n <ng-template #iconOnly>\n <smart-icon\n *ngIf=\"uiActionModel.descriptor?.icon\"\n [icon]=\"uiActionModel.descriptor!.icon!\"\n [color]=\"uiActionModel.descriptor?.iconColor ?? uiActionModel.descriptor?.color\"\n ></smart-icon>\n </ng-template>\n <ng-template #text>\n <smart-icon\n *ngIf=\"\n uiActionModel.descriptor?.icon &&\n uiActionModel.descriptor?.iconPosition === iconPosition().Pre\n \"\n [icon]=\"uiActionModel.descriptor!.icon!\"\n [color]=\"uiActionModel.descriptor?.iconColor ?? uiActionModel.descriptor?.color\"\n ></smart-icon>\n {{ uiActionModel.descriptor?.title }}\n <smart-icon\n *ngIf=\"\n uiActionModel.descriptor?.icon &&\n uiActionModel.descriptor?.iconPosition === iconPosition().Post\n \"\n [icon]=\"uiActionModel.descriptor!.icon!\"\n [color]=\"uiActionModel.descriptor?.iconColor ?? uiActionModel.descriptor?.color\"\n ></smart-icon>\n </ng-template>\n </button>\n</div>\n", styles: [".uiActionButtonsContainer{display:flex;flex-direction:row;gap:1rem;flex-wrap:wrap;min-height:2.25rem}\n"], components: [{ type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i4.SmartIconComponent, selector: "smart-icon", inputs: ["icon", "color"] }], directives: [{ type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
75
75
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UiActionToolbarComponent, decorators: [{
76
76
  type: Component,
77
- args: [{ selector: "smart-ui-action-toolbar", template: "<div class=\"uiActionButtonsContainer\">\n <button\n *ngFor=\"let uiActionModel of uiActionModelsWithDescriptions\"\n mat-button\n [ngClass]=\"getType(uiActionModel)\"\n class=\"{{ uiActionModel.cssClass }}\"\n [color]=\"uiActionModel.descriptor?.color\"\n (click)=\"onActionClicked($event, uiActionModel)\"\n >\n <div *ngIf=\"isOnlyIcon(uiActionModel); then iconOnly; else text\"></div>\n <ng-template #iconOnly>\n <smart-icon\n *ngIf=\"uiActionModel.descriptor?.icon\"\n [icon]=\"uiActionModel.descriptor!.icon!\"\n [color]=\"uiActionModel.descriptor?.iconColor ?? uiActionModel.descriptor?.color\"\n ></smart-icon>\n </ng-template>\n <ng-template #text>\n <smart-icon\n *ngIf=\"\n uiActionModel.descriptor?.icon &&\n uiActionModel.descriptor?.iconPosition === iconPosition().Pre\n \"\n [icon]=\"uiActionModel.descriptor!.icon!\"\n [color]=\"uiActionModel.descriptor?.iconColor ?? uiActionModel.descriptor?.color\"\n ></smart-icon>\n {{ uiActionModel.descriptor?.title }}\n <smart-icon\n *ngIf=\"\n uiActionModel.descriptor?.icon &&\n uiActionModel.descriptor?.iconPosition === iconPosition().Post\n \"\n [icon]=\"uiActionModel.descriptor!.icon!\"\n [color]=\"uiActionModel.descriptor?.iconColor ?? uiActionModel.descriptor?.color\"\n ></smart-icon>\n </ng-template>\n </button>\n</div>\n", styles: [".uiActionButtonsContainer{display:flex;flex-direction:row;gap:1rem;flex-wrap:wrap;min-height:2.25rem}\n"] }]
77
+ args: [{ selector: 'smart-ui-action-toolbar', template: "<div class=\"uiActionButtonsContainer\">\n <button\n *ngFor=\"let uiActionModel of uiActionModelsWithDescriptions\"\n mat-button\n [ngClass]=\"getType(uiActionModel)\"\n class=\"{{ uiActionModel.cssClass }}\"\n [color]=\"uiActionModel.descriptor?.color\"\n (click)=\"onActionClicked($event, uiActionModel)\"\n >\n <div *ngIf=\"isOnlyIcon(uiActionModel); then iconOnly; else text\"></div>\n <ng-template #iconOnly>\n <smart-icon\n *ngIf=\"uiActionModel.descriptor?.icon\"\n [icon]=\"uiActionModel.descriptor!.icon!\"\n [color]=\"uiActionModel.descriptor?.iconColor ?? uiActionModel.descriptor?.color\"\n ></smart-icon>\n </ng-template>\n <ng-template #text>\n <smart-icon\n *ngIf=\"\n uiActionModel.descriptor?.icon &&\n uiActionModel.descriptor?.iconPosition === iconPosition().Pre\n \"\n [icon]=\"uiActionModel.descriptor!.icon!\"\n [color]=\"uiActionModel.descriptor?.iconColor ?? uiActionModel.descriptor?.color\"\n ></smart-icon>\n {{ uiActionModel.descriptor?.title }}\n <smart-icon\n *ngIf=\"\n uiActionModel.descriptor?.icon &&\n uiActionModel.descriptor?.iconPosition === iconPosition().Post\n \"\n [icon]=\"uiActionModel.descriptor!.icon!\"\n [color]=\"uiActionModel.descriptor?.iconColor ?? uiActionModel.descriptor?.color\"\n ></smart-icon>\n </ng-template>\n </button>\n</div>\n", styles: [".uiActionButtonsContainer{display:flex;flex-direction:row;gap:1rem;flex-wrap:wrap;min-height:2.25rem}\n"] }]
78
78
  }], ctorParameters: function () { return [{ type: i1.UiActionService }, { type: i2.UiActionDescriptorService }]; }, propDecorators: { uiActionModels: [{
79
79
  type: Input
80
80
  }] } });
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktYWN0aW9uLXRvb2xiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvdmlldy1jb250ZXh0L3NtYXJ0LXVpLWFjdGlvbi91aS1hY3Rpb24tdG9vbGJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi92aWV3LWNvbnRleHQvc21hcnQtdWktYWN0aW9uL3VpLWFjdGlvbi10b29sYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUErQyxNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFJbkUsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7QUFPMUMsTUFBTSxPQUFPLHdCQUF3QjtJQU9qQyxZQUFvQixPQUF3QixFQUFVLE9BQWtDO1FBQXBFLFlBQU8sR0FBUCxPQUFPLENBQWlCO1FBQVUsWUFBTyxHQUFQLE9BQU8sQ0FBMkI7UUFOaEYsY0FBUyxHQUFrQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBTzdDLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUN4RSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDakIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBQ0QsV0FBVyxDQUFDLE9BQXNCO1FBQzlCLElBQUksY0FBYyxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLFlBQVksQ0FBQztRQUM1RCxJQUFJLGNBQWMsRUFBRTtZQUNoQixJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztZQUNyQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDaEI7SUFDTCxDQUFDO0lBQ0QsV0FBVztRQUNQLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELEtBQUssQ0FBQyxLQUFLO1FBQ1AsSUFBSSxDQUFDLDhCQUE4QixHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDbkQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLGFBQTRCLEVBQUUsRUFBRTtZQUMzRCxhQUFhLENBQUMsVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FDN0QsYUFBYSxDQUFDLFFBQVEsQ0FDekIsQ0FBQztZQUVGLE9BQU8sYUFBYSxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQVUsRUFBRSxhQUE0QjtRQUNwRCxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1FBQzNDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsT0FBTyxDQUFDLGFBQTRCO1FBQ2hDLFFBQVEsYUFBYSxDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUU7WUFDcEMsS0FBSyxrQkFBa0IsQ0FBQyxNQUFNO2dCQUMxQixPQUFPLFlBQVksQ0FBQztZQUN4QixLQUFLLGtCQUFrQixDQUFDLElBQUk7Z0JBQ3hCLE9BQU8saUJBQWlCLENBQUM7WUFDN0IsS0FBSyxrQkFBa0IsQ0FBQyxNQUFNO2dCQUMxQixPQUFPLG1CQUFtQixDQUFDO1lBQy9CLEtBQUssa0JBQWtCLENBQUMsT0FBTztnQkFDM0IsT0FBTyxvQkFBb0IsQ0FBQztZQUNoQyxLQUFLLGtCQUFrQixDQUFDLElBQUk7Z0JBQ3hCLE9BQU8saUJBQWlCLENBQUM7WUFDN0IsS0FBSyxrQkFBa0IsQ0FBQyxPQUFPO2dCQUMzQixPQUFPLGNBQWMsQ0FBQztZQUMxQixLQUFLLGtCQUFrQixDQUFDLEdBQUc7Z0JBQ3ZCLE9BQU8sU0FBUyxDQUFDO1lBQ3JCO2dCQUNJLE9BQU8sQ0FBQyxHQUFHLENBQUMsc0NBQXNDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDcEYsT0FBTyxZQUFZLENBQUM7U0FDM0I7SUFDTCxDQUFDO0lBRUQsWUFBWTtRQUNSLE9BQU8scUJBQXFCLENBQUM7SUFDakMsQ0FBQztJQUVELFVBQVUsQ0FBQyxhQUE0QjtRQUNuQyxPQUFPLENBQ0gsYUFBYSxDQUFDLFVBQVUsRUFBRSxJQUFJLEtBQUssa0JBQWtCLENBQUMsSUFBSTtZQUMxRCxhQUFhLENBQUMsVUFBVSxFQUFFLElBQUksS0FBSyxrQkFBa0IsQ0FBQyxPQUFPO1lBQzdELGFBQWEsQ0FBQyxVQUFVLEVBQUUsSUFBSSxLQUFLLGtCQUFrQixDQUFDLEdBQUcsQ0FDNUQsQ0FBQztJQUNOLENBQUM7O3NIQTlFUSx3QkFBd0I7MEdBQXhCLHdCQUF3QixrSUNackMsZ3FEQXNDQTs0RkQxQmEsd0JBQXdCO2tCQUxwQyxTQUFTOytCQUNJLHlCQUF5Qjs4SUFPMUIsY0FBYztzQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgVWlBY3Rpb25CdXR0b25JY29uUG9zLCBVaUFjdGlvbkJ1dHRvblR5cGUgfSBmcm9tIFwiLi4vYXBpXCI7XG5pbXBvcnQgeyBVaUFjdGlvbkRlc2NyaXB0b3JTZXJ2aWNlIH0gZnJvbSBcIi4vdWktYWN0aW9uLmRlc2NyaXB0b3Iuc2VydmljZVwiO1xuaW1wb3J0IHsgVWlBY3Rpb25Nb2RlbCB9IGZyb20gXCIuL3VpLWFjdGlvbi5tb2RlbFwiO1xuaW1wb3J0IHsgVWlBY3Rpb25TZXJ2aWNlIH0gZnJvbSBcIi4vdWktYWN0aW9uLnNlcnZpY2VcIjtcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gXCJyeGpzXCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcInNtYXJ0LXVpLWFjdGlvbi10b29sYmFyXCIsXG4gICAgdGVtcGxhdGVVcmw6IFwiLi91aS1hY3Rpb24tdG9vbGJhci5jb21wb25lbnQuaHRtbFwiLFxuICAgIHN0eWxlVXJsczogW1wiLi91aS1hY3Rpb24tdG9vbGJhci5jb21wb25lbnQuY3NzXCJdLFxufSlcbmV4cG9ydCBjbGFzcyBVaUFjdGlvblRvb2xiYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgICBwcml2YXRlIF9kZXN0cm95JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICBASW5wdXQoKSB1aUFjdGlvbk1vZGVscyE6IFVpQWN0aW9uTW9kZWxbXTtcblxuICAgIHVpQWN0aW9uTW9kZWxzV2l0aERlc2NyaXB0aW9ucz86IFVpQWN0aW9uTW9kZWxbXTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgc2VydmljZTogVWlBY3Rpb25TZXJ2aWNlLCBwcml2YXRlIG1hbmFnZXI6IFVpQWN0aW9uRGVzY3JpcHRvclNlcnZpY2UpIHtcbiAgICAgICAgdGhpcy5tYW5hZ2VyLmxhbmd1YWdlQ2hhbmdlZC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNldFVwKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldFVwKCk7XG4gICAgfVxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgbGV0IHVpQWN0aW9uTW9kZWxzID0gY2hhbmdlc1tcInVpQWN0aW9uTW9kZWxzXCJdLmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgaWYgKHVpQWN0aW9uTW9kZWxzKSB7XG4gICAgICAgICAgICB0aGlzLnVpQWN0aW9uTW9kZWxzID0gdWlBY3Rpb25Nb2RlbHM7XG4gICAgICAgICAgICB0aGlzLnNldFVwKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQoKTtcbiAgICB9XG5cbiAgICBhc3luYyBzZXRVcCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy51aUFjdGlvbk1vZGVsc1dpdGhEZXNjcmlwdGlvbnMgPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgICAgICAgIHRoaXMudWlBY3Rpb25Nb2RlbHMubWFwKGFzeW5jICh1aUFjdGlvbk1vZGVsOiBVaUFjdGlvbk1vZGVsKSA9PiB7XG4gICAgICAgICAgICAgICAgdWlBY3Rpb25Nb2RlbC5kZXNjcmlwdG9yID0gYXdhaXQgdGhpcy5tYW5hZ2VyLmdldEFjdGlvbkRlc2NyaXB0b3IoXG4gICAgICAgICAgICAgICAgICAgIHVpQWN0aW9uTW9kZWwudWlBY3Rpb25cbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHVpQWN0aW9uTW9kZWw7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIG9uQWN0aW9uQ2xpY2tlZChldmVudDogYW55LCB1aUFjdGlvbk1vZGVsOiBVaUFjdGlvbk1vZGVsKTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgIHRoaXMuc2VydmljZS51aUFjdGlvbk1vZGVsID0gdWlBY3Rpb25Nb2RlbDtcbiAgICAgICAgdGhpcy5zZXJ2aWNlLmV4ZWN1dGUodWlBY3Rpb25Nb2RlbC51aUFjdGlvbik7XG4gICAgfVxuXG4gICAgZ2V0VHlwZSh1aUFjdGlvbk1vZGVsOiBVaUFjdGlvbk1vZGVsKTogc3RyaW5nIHtcbiAgICAgICAgc3dpdGNoICh1aUFjdGlvbk1vZGVsLmRlc2NyaXB0b3I/LnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgVWlBY3Rpb25CdXR0b25UeXBlLk5vcm1hbDpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJtYXQtYnV0dG9uXCI7XG4gICAgICAgICAgICBjYXNlIFVpQWN0aW9uQnV0dG9uVHlwZS5GbGF0OlxuICAgICAgICAgICAgICAgIHJldHVybiBcIm1hdC1mbGF0LWJ1dHRvblwiO1xuICAgICAgICAgICAgY2FzZSBVaUFjdGlvbkJ1dHRvblR5cGUuUmFpc2VkOlxuICAgICAgICAgICAgICAgIHJldHVybiBcIm1hdC1yYWlzZWQtYnV0dG9uXCI7XG4gICAgICAgICAgICBjYXNlIFVpQWN0aW9uQnV0dG9uVHlwZS5TdHJva2VkOlxuICAgICAgICAgICAgICAgIHJldHVybiBcIm1hdC1zdHJva2VkLWJ1dHRvblwiO1xuICAgICAgICAgICAgY2FzZSBVaUFjdGlvbkJ1dHRvblR5cGUuSWNvbjpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJtYXQtaWNvbi1idXR0b25cIjtcbiAgICAgICAgICAgIGNhc2UgVWlBY3Rpb25CdXR0b25UeXBlLk1pbmlGYWI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwibWF0LW1pbmktZmFiXCI7XG4gICAgICAgICAgICBjYXNlIFVpQWN0aW9uQnV0dG9uVHlwZS5GYWI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwibWF0LWZhYlwiO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgVW5oYW5kbGVkIGFjdGlvbiBidXR0b24gdHlwZSBjYXNlOiAke3VpQWN0aW9uTW9kZWwuZGVzY3JpcHRvcj8udHlwZX1gKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gYG1hdC1idXR0b25gO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaWNvblBvc2l0aW9uKCk6IHR5cGVvZiBVaUFjdGlvbkJ1dHRvbkljb25Qb3Mge1xuICAgICAgICByZXR1cm4gVWlBY3Rpb25CdXR0b25JY29uUG9zO1xuICAgIH1cblxuICAgIGlzT25seUljb24odWlBY3Rpb25Nb2RlbDogVWlBY3Rpb25Nb2RlbCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdWlBY3Rpb25Nb2RlbC5kZXNjcmlwdG9yPy50eXBlID09PSBVaUFjdGlvbkJ1dHRvblR5cGUuSWNvbiB8fFxuICAgICAgICAgICAgdWlBY3Rpb25Nb2RlbC5kZXNjcmlwdG9yPy50eXBlID09PSBVaUFjdGlvbkJ1dHRvblR5cGUuTWluaUZhYiB8fFxuICAgICAgICAgICAgdWlBY3Rpb25Nb2RlbC5kZXNjcmlwdG9yPy50eXBlID09PSBVaUFjdGlvbkJ1dHRvblR5cGUuRmFiXG4gICAgICAgICk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInVpQWN0aW9uQnV0dG9uc0NvbnRhaW5lclwiPlxuICAgIDxidXR0b25cbiAgICAgICAgKm5nRm9yPVwibGV0IHVpQWN0aW9uTW9kZWwgb2YgdWlBY3Rpb25Nb2RlbHNXaXRoRGVzY3JpcHRpb25zXCJcbiAgICAgICAgbWF0LWJ1dHRvblxuICAgICAgICBbbmdDbGFzc109XCJnZXRUeXBlKHVpQWN0aW9uTW9kZWwpXCJcbiAgICAgICAgY2xhc3M9XCJ7eyB1aUFjdGlvbk1vZGVsLmNzc0NsYXNzIH19XCJcbiAgICAgICAgW2NvbG9yXT1cInVpQWN0aW9uTW9kZWwuZGVzY3JpcHRvcj8uY29sb3JcIlxuICAgICAgICAoY2xpY2spPVwib25BY3Rpb25DbGlja2VkKCRldmVudCwgdWlBY3Rpb25Nb2RlbClcIlxuICAgID5cbiAgICAgICAgPGRpdiAqbmdJZj1cImlzT25seUljb24odWlBY3Rpb25Nb2RlbCk7IHRoZW4gaWNvbk9ubHk7IGVsc2UgdGV4dFwiPjwvZGl2PlxuICAgICAgICA8bmctdGVtcGxhdGUgI2ljb25Pbmx5PlxuICAgICAgICAgICAgPHNtYXJ0LWljb25cbiAgICAgICAgICAgICAgICAqbmdJZj1cInVpQWN0aW9uTW9kZWwuZGVzY3JpcHRvcj8uaWNvblwiXG4gICAgICAgICAgICAgICAgW2ljb25dPVwidWlBY3Rpb25Nb2RlbC5kZXNjcmlwdG9yIS5pY29uIVwiXG4gICAgICAgICAgICAgICAgW2NvbG9yXT1cInVpQWN0aW9uTW9kZWwuZGVzY3JpcHRvcj8uaWNvbkNvbG9yID8/IHVpQWN0aW9uTW9kZWwuZGVzY3JpcHRvcj8uY29sb3JcIlxuICAgICAgICAgICAgPjwvc21hcnQtaWNvbj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPG5nLXRlbXBsYXRlICN0ZXh0PlxuICAgICAgICAgICAgPHNtYXJ0LWljb25cbiAgICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgICB1aUFjdGlvbk1vZGVsLmRlc2NyaXB0b3I/Lmljb24gJiZcbiAgICAgICAgICAgICAgICAgICAgdWlBY3Rpb25Nb2RlbC5kZXNjcmlwdG9yPy5pY29uUG9zaXRpb24gPT09IGljb25Qb3NpdGlvbigpLlByZVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgW2ljb25dPVwidWlBY3Rpb25Nb2RlbC5kZXNjcmlwdG9yIS5pY29uIVwiXG4gICAgICAgICAgICAgICAgW2NvbG9yXT1cInVpQWN0aW9uTW9kZWwuZGVzY3JpcHRvcj8uaWNvbkNvbG9yID8/IHVpQWN0aW9uTW9kZWwuZGVzY3JpcHRvcj8uY29sb3JcIlxuICAgICAgICAgICAgPjwvc21hcnQtaWNvbj5cbiAgICAgICAgICAgIHt7IHVpQWN0aW9uTW9kZWwuZGVzY3JpcHRvcj8udGl0bGUgfX1cbiAgICAgICAgICAgIDxzbWFydC1pY29uXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICAgdWlBY3Rpb25Nb2RlbC5kZXNjcmlwdG9yPy5pY29uICYmXG4gICAgICAgICAgICAgICAgICAgIHVpQWN0aW9uTW9kZWwuZGVzY3JpcHRvcj8uaWNvblBvc2l0aW9uID09PSBpY29uUG9zaXRpb24oKS5Qb3N0XG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICBbaWNvbl09XCJ1aUFjdGlvbk1vZGVsLmRlc2NyaXB0b3IhLmljb24hXCJcbiAgICAgICAgICAgICAgICBbY29sb3JdPVwidWlBY3Rpb25Nb2RlbC5kZXNjcmlwdG9yPy5pY29uQ29sb3IgPz8gdWlBY3Rpb25Nb2RlbC5kZXNjcmlwdG9yPy5jb2xvclwiXG4gICAgICAgICAgICA+PC9zbWFydC1pY29uPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvYnV0dG9uPlxuPC9kaXY+XG4iXX0=
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktYWN0aW9uLXRvb2xiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvdmlldy1jb250ZXh0L3NtYXJ0LXVpLWFjdGlvbi91aS1hY3Rpb24tdG9vbGJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi92aWV3LWNvbnRleHQvc21hcnQtdWktYWN0aW9uL3VpLWFjdGlvbi10b29sYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUErQyxNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFJbkUsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7QUFPMUMsTUFBTSxPQUFPLHdCQUF3QjtJQU9wQyxZQUFvQixPQUF3QixFQUFVLE9BQWtDO1FBQXBFLFlBQU8sR0FBUCxPQUFPLENBQWlCO1FBQVUsWUFBTyxHQUFQLE9BQU8sQ0FBMkI7UUFOaEYsY0FBUyxHQUFrQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBT2hELElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUMzRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxRQUFRO1FBQ1AsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUNELFdBQVcsQ0FBQyxPQUFzQjtRQUNqQyxJQUFJLGNBQWMsR0FBRyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxZQUFZLENBQUM7UUFDNUQsSUFBSSxjQUFjLEVBQUU7WUFDbkIsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7WUFDckMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ2I7SUFDRixDQUFDO0lBQ0QsV0FBVztRQUNWLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELEtBQUssQ0FBQyxLQUFLO1FBQ1YsSUFBSSxDQUFDLDhCQUE4QixHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDdEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLGFBQTRCLEVBQUUsRUFBRTtZQUM5RCxhQUFhLENBQUMsVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFMUYsT0FBTyxhQUFhLENBQUM7UUFDdEIsQ0FBQyxDQUFDLENBQ0YsQ0FBQztJQUNILENBQUM7SUFFRCxlQUFlLENBQUMsS0FBVSxFQUFFLGFBQTRCO1FBQ3ZELEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUV4QixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7UUFDM0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxPQUFPLENBQUMsYUFBNEI7UUFDbkMsUUFBUSxhQUFhLENBQUMsVUFBVSxFQUFFLElBQUksRUFBRTtZQUN2QyxLQUFLLGtCQUFrQixDQUFDLE1BQU07Z0JBQzdCLE9BQU8sWUFBWSxDQUFDO1lBQ3JCLEtBQUssa0JBQWtCLENBQUMsSUFBSTtnQkFDM0IsT0FBTyxpQkFBaUIsQ0FBQztZQUMxQixLQUFLLGtCQUFrQixDQUFDLE1BQU07Z0JBQzdCLE9BQU8sbUJBQW1CLENBQUM7WUFDNUIsS0FBSyxrQkFBa0IsQ0FBQyxPQUFPO2dCQUM5QixPQUFPLG9CQUFvQixDQUFDO1lBQzdCLEtBQUssa0JBQWtCLENBQUMsSUFBSTtnQkFDM0IsT0FBTyxpQkFBaUIsQ0FBQztZQUMxQixLQUFLLGtCQUFrQixDQUFDLE9BQU87Z0JBQzlCLE9BQU8sY0FBYyxDQUFDO1lBQ3ZCLEtBQUssa0JBQWtCLENBQUMsR0FBRztnQkFDMUIsT0FBTyxTQUFTLENBQUM7WUFDbEI7Z0JBQ0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxzQ0FBc0MsYUFBYSxDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUNwRixPQUFPLFlBQVksQ0FBQztTQUNyQjtJQUNGLENBQUM7SUFFRCxZQUFZO1FBQ1gsT0FBTyxxQkFBcUIsQ0FBQztJQUM5QixDQUFDO0lBRUQsVUFBVSxDQUFDLGFBQTRCO1FBQ3RDLE9BQU8sQ0FDTixhQUFhLENBQUMsVUFBVSxFQUFFLElBQUksS0FBSyxrQkFBa0IsQ0FBQyxJQUFJO1lBQzFELGFBQWEsQ0FBQyxVQUFVLEVBQUUsSUFBSSxLQUFLLGtCQUFrQixDQUFDLE9BQU87WUFDN0QsYUFBYSxDQUFDLFVBQVUsRUFBRSxJQUFJLEtBQUssa0JBQWtCLENBQUMsR0FBRyxDQUN6RCxDQUFDO0lBQ0gsQ0FBQzs7c0hBNUVXLHdCQUF3QjswR0FBeEIsd0JBQXdCLGtJQ1pyQyxncURBc0NBOzRGRDFCYSx3QkFBd0I7a0JBTHBDLFNBQVM7K0JBQ0MseUJBQXlCOzhJQU8xQixjQUFjO3NCQUF0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVWlBY3Rpb25CdXR0b25JY29uUG9zLCBVaUFjdGlvbkJ1dHRvblR5cGUgfSBmcm9tICcuLi9hcGknO1xuaW1wb3J0IHsgVWlBY3Rpb25EZXNjcmlwdG9yU2VydmljZSB9IGZyb20gJy4vdWktYWN0aW9uLmRlc2NyaXB0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBVaUFjdGlvbk1vZGVsIH0gZnJvbSAnLi91aS1hY3Rpb24ubW9kZWwnO1xuaW1wb3J0IHsgVWlBY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi91aS1hY3Rpb24uc2VydmljZSc7XG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnc21hcnQtdWktYWN0aW9uLXRvb2xiYXInLFxuXHR0ZW1wbGF0ZVVybDogJy4vdWktYWN0aW9uLXRvb2xiYXIuY29tcG9uZW50Lmh0bWwnLFxuXHRzdHlsZVVybHM6IFsnLi91aS1hY3Rpb24tdG9vbGJhci5jb21wb25lbnQuY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFVpQWN0aW9uVG9vbGJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuXHRwcml2YXRlIF9kZXN0cm95JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG5cblx0QElucHV0KCkgdWlBY3Rpb25Nb2RlbHMhOiBVaUFjdGlvbk1vZGVsW107XG5cblx0dWlBY3Rpb25Nb2RlbHNXaXRoRGVzY3JpcHRpb25zPzogVWlBY3Rpb25Nb2RlbFtdO1xuXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgc2VydmljZTogVWlBY3Rpb25TZXJ2aWNlLCBwcml2YXRlIG1hbmFnZXI6IFVpQWN0aW9uRGVzY3JpcHRvclNlcnZpY2UpIHtcblx0XHR0aGlzLm1hbmFnZXIubGFuZ3VhZ2VDaGFuZ2VkLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHtcblx0XHRcdHRoaXMuc2V0VXAoKTtcblx0XHR9KTtcblx0fVxuXG5cdG5nT25Jbml0KCk6IHZvaWQge1xuXHRcdHRoaXMuc2V0VXAoKTtcblx0fVxuXHRuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG5cdFx0bGV0IHVpQWN0aW9uTW9kZWxzID0gY2hhbmdlc1sndWlBY3Rpb25Nb2RlbHMnXS5jdXJyZW50VmFsdWU7XG5cdFx0aWYgKHVpQWN0aW9uTW9kZWxzKSB7XG5cdFx0XHR0aGlzLnVpQWN0aW9uTW9kZWxzID0gdWlBY3Rpb25Nb2RlbHM7XG5cdFx0XHR0aGlzLnNldFVwKCk7XG5cdFx0fVxuXHR9XG5cdG5nT25EZXN0cm95KCk6IHZvaWQge1xuXHRcdHRoaXMuX2Rlc3Ryb3kkLm5leHQoKTtcblx0fVxuXG5cdGFzeW5jIHNldFVwKCk6IFByb21pc2U8dm9pZD4ge1xuXHRcdHRoaXMudWlBY3Rpb25Nb2RlbHNXaXRoRGVzY3JpcHRpb25zID0gYXdhaXQgUHJvbWlzZS5hbGwoXG5cdFx0XHR0aGlzLnVpQWN0aW9uTW9kZWxzLm1hcChhc3luYyAodWlBY3Rpb25Nb2RlbDogVWlBY3Rpb25Nb2RlbCkgPT4ge1xuXHRcdFx0XHR1aUFjdGlvbk1vZGVsLmRlc2NyaXB0b3IgPSBhd2FpdCB0aGlzLm1hbmFnZXIuZ2V0QWN0aW9uRGVzY3JpcHRvcih1aUFjdGlvbk1vZGVsLnVpQWN0aW9uKTtcblxuXHRcdFx0XHRyZXR1cm4gdWlBY3Rpb25Nb2RlbDtcblx0XHRcdH0pXG5cdFx0KTtcblx0fVxuXG5cdG9uQWN0aW9uQ2xpY2tlZChldmVudDogYW55LCB1aUFjdGlvbk1vZGVsOiBVaUFjdGlvbk1vZGVsKTogdm9pZCB7XG5cdFx0ZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cblx0XHR0aGlzLnNlcnZpY2UudWlBY3Rpb25Nb2RlbCA9IHVpQWN0aW9uTW9kZWw7XG5cdFx0dGhpcy5zZXJ2aWNlLmV4ZWN1dGUodWlBY3Rpb25Nb2RlbC51aUFjdGlvbik7XG5cdH1cblxuXHRnZXRUeXBlKHVpQWN0aW9uTW9kZWw6IFVpQWN0aW9uTW9kZWwpOiBzdHJpbmcge1xuXHRcdHN3aXRjaCAodWlBY3Rpb25Nb2RlbC5kZXNjcmlwdG9yPy50eXBlKSB7XG5cdFx0XHRjYXNlIFVpQWN0aW9uQnV0dG9uVHlwZS5Ob3JtYWw6XG5cdFx0XHRcdHJldHVybiAnbWF0LWJ1dHRvbic7XG5cdFx0XHRjYXNlIFVpQWN0aW9uQnV0dG9uVHlwZS5GbGF0OlxuXHRcdFx0XHRyZXR1cm4gJ21hdC1mbGF0LWJ1dHRvbic7XG5cdFx0XHRjYXNlIFVpQWN0aW9uQnV0dG9uVHlwZS5SYWlzZWQ6XG5cdFx0XHRcdHJldHVybiAnbWF0LXJhaXNlZC1idXR0b24nO1xuXHRcdFx0Y2FzZSBVaUFjdGlvbkJ1dHRvblR5cGUuU3Ryb2tlZDpcblx0XHRcdFx0cmV0dXJuICdtYXQtc3Ryb2tlZC1idXR0b24nO1xuXHRcdFx0Y2FzZSBVaUFjdGlvbkJ1dHRvblR5cGUuSWNvbjpcblx0XHRcdFx0cmV0dXJuICdtYXQtaWNvbi1idXR0b24nO1xuXHRcdFx0Y2FzZSBVaUFjdGlvbkJ1dHRvblR5cGUuTWluaUZhYjpcblx0XHRcdFx0cmV0dXJuICdtYXQtbWluaS1mYWInO1xuXHRcdFx0Y2FzZSBVaUFjdGlvbkJ1dHRvblR5cGUuRmFiOlxuXHRcdFx0XHRyZXR1cm4gJ21hdC1mYWInO1xuXHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0Y29uc29sZS5sb2coYFVuaGFuZGxlZCBhY3Rpb24gYnV0dG9uIHR5cGUgY2FzZTogJHt1aUFjdGlvbk1vZGVsLmRlc2NyaXB0b3I/LnR5cGV9YCk7XG5cdFx0XHRcdHJldHVybiBgbWF0LWJ1dHRvbmA7XG5cdFx0fVxuXHR9XG5cblx0aWNvblBvc2l0aW9uKCk6IHR5cGVvZiBVaUFjdGlvbkJ1dHRvbkljb25Qb3Mge1xuXHRcdHJldHVybiBVaUFjdGlvbkJ1dHRvbkljb25Qb3M7XG5cdH1cblxuXHRpc09ubHlJY29uKHVpQWN0aW9uTW9kZWw6IFVpQWN0aW9uTW9kZWwpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gKFxuXHRcdFx0dWlBY3Rpb25Nb2RlbC5kZXNjcmlwdG9yPy50eXBlID09PSBVaUFjdGlvbkJ1dHRvblR5cGUuSWNvbiB8fFxuXHRcdFx0dWlBY3Rpb25Nb2RlbC5kZXNjcmlwdG9yPy50eXBlID09PSBVaUFjdGlvbkJ1dHRvblR5cGUuTWluaUZhYiB8fFxuXHRcdFx0dWlBY3Rpb25Nb2RlbC5kZXNjcmlwdG9yPy50eXBlID09PSBVaUFjdGlvbkJ1dHRvblR5cGUuRmFiXG5cdFx0KTtcblx0fVxufVxuIiwiPGRpdiBjbGFzcz1cInVpQWN0aW9uQnV0dG9uc0NvbnRhaW5lclwiPlxuICAgIDxidXR0b25cbiAgICAgICAgKm5nRm9yPVwibGV0IHVpQWN0aW9uTW9kZWwgb2YgdWlBY3Rpb25Nb2RlbHNXaXRoRGVzY3JpcHRpb25zXCJcbiAgICAgICAgbWF0LWJ1dHRvblxuICAgICAgICBbbmdDbGFzc109XCJnZXRUeXBlKHVpQWN0aW9uTW9kZWwpXCJcbiAgICAgICAgY2xhc3M9XCJ7eyB1aUFjdGlvbk1vZGVsLmNzc0NsYXNzIH19XCJcbiAgICAgICAgW2NvbG9yXT1cInVpQWN0aW9uTW9kZWwuZGVzY3JpcHRvcj8uY29sb3JcIlxuICAgICAgICAoY2xpY2spPVwib25BY3Rpb25DbGlja2VkKCRldmVudCwgdWlBY3Rpb25Nb2RlbClcIlxuICAgID5cbiAgICAgICAgPGRpdiAqbmdJZj1cImlzT25seUljb24odWlBY3Rpb25Nb2RlbCk7IHRoZW4gaWNvbk9ubHk7IGVsc2UgdGV4dFwiPjwvZGl2PlxuICAgICAgICA8bmctdGVtcGxhdGUgI2ljb25Pbmx5PlxuICAgICAgICAgICAgPHNtYXJ0LWljb25cbiAgICAgICAgICAgICAgICAqbmdJZj1cInVpQWN0aW9uTW9kZWwuZGVzY3JpcHRvcj8uaWNvblwiXG4gICAgICAgICAgICAgICAgW2ljb25dPVwidWlBY3Rpb25Nb2RlbC5kZXNjcmlwdG9yIS5pY29uIVwiXG4gICAgICAgICAgICAgICAgW2NvbG9yXT1cInVpQWN0aW9uTW9kZWwuZGVzY3JpcHRvcj8uaWNvbkNvbG9yID8/IHVpQWN0aW9uTW9kZWwuZGVzY3JpcHRvcj8uY29sb3JcIlxuICAgICAgICAgICAgPjwvc21hcnQtaWNvbj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPG5nLXRlbXBsYXRlICN0ZXh0PlxuICAgICAgICAgICAgPHNtYXJ0LWljb25cbiAgICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgICB1aUFjdGlvbk1vZGVsLmRlc2NyaXB0b3I/Lmljb24gJiZcbiAgICAgICAgICAgICAgICAgICAgdWlBY3Rpb25Nb2RlbC5kZXNjcmlwdG9yPy5pY29uUG9zaXRpb24gPT09IGljb25Qb3NpdGlvbigpLlByZVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgW2ljb25dPVwidWlBY3Rpb25Nb2RlbC5kZXNjcmlwdG9yIS5pY29uIVwiXG4gICAgICAgICAgICAgICAgW2NvbG9yXT1cInVpQWN0aW9uTW9kZWwuZGVzY3JpcHRvcj8uaWNvbkNvbG9yID8/IHVpQWN0aW9uTW9kZWwuZGVzY3JpcHRvcj8uY29sb3JcIlxuICAgICAgICAgICAgPjwvc21hcnQtaWNvbj5cbiAgICAgICAgICAgIHt7IHVpQWN0aW9uTW9kZWwuZGVzY3JpcHRvcj8udGl0bGUgfX1cbiAgICAgICAgICAgIDxzbWFydC1pY29uXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICAgdWlBY3Rpb25Nb2RlbC5kZXNjcmlwdG9yPy5pY29uICYmXG4gICAgICAgICAgICAgICAgICAgIHVpQWN0aW9uTW9kZWwuZGVzY3JpcHRvcj8uaWNvblBvc2l0aW9uID09PSBpY29uUG9zaXRpb24oKS5Qb3N0XG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICBbaWNvbl09XCJ1aUFjdGlvbk1vZGVsLmRlc2NyaXB0b3IhLmljb24hXCJcbiAgICAgICAgICAgICAgICBbY29sb3JdPVwidWlBY3Rpb25Nb2RlbC5kZXNjcmlwdG9yPy5pY29uQ29sb3IgPz8gdWlBY3Rpb25Nb2RlbC5kZXNjcmlwdG9yPy5jb2xvclwiXG4gICAgICAgICAgICA+PC9zbWFydC1pY29uPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvYnV0dG9uPlxuPC9kaXY+XG4iXX0=
@@ -4,4 +4,4 @@ export var UiActionDialogType;
4
4
  UiActionDialogType["confirmDialog"] = "confirmDialog";
5
5
  UiActionDialogType["dialog"] = "dialog";
6
6
  })(UiActionDialogType || (UiActionDialogType = {}));
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktYWN0aW9uLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvdmlldy1jb250ZXh0L3NtYXJ0LXVpLWFjdGlvbi91aS1hY3Rpb24ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBaUNBLE1BQU0sQ0FBTixJQUFZLGtCQUlYO0FBSkQsV0FBWSxrQkFBa0I7SUFDMUIsaURBQTJCLENBQUE7SUFDM0IscURBQStCLENBQUE7SUFDL0IsdUNBQWlCLENBQUE7QUFDckIsQ0FBQyxFQUpXLGtCQUFrQixLQUFsQixrQkFBa0IsUUFJN0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IFVpQWN0aW9uLCBVaUFjdGlvbkRlc2NyaXB0b3IsIFVpQWN0aW9uUmVxdWVzdCB9IGZyb20gXCIuLi9hcGlcIjtcblxuZXhwb3J0IGludGVyZmFjZSBVaUFjdGlvbk1vZGVsIHtcbiAgICB1aUFjdGlvbjogVWlBY3Rpb247XG4gICAgc2VydmljZVRvVXNlOiBVc2VVaUFjdGlvbjtcbiAgICBleGNlcHRpb24/OiBib29sZWFuO1xuICAgIGRlc2NyaXB0b3I/OiBVaUFjdGlvbkRlc2NyaXB0b3I7XG4gICAgY3NzQ2xhc3M/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlVWlBY3Rpb24ge1xuICAgIHN1Ym1pdDogU3ViamVjdDx2b2lkPjtcbiAgICByZVN1YnNjcmliZVRvQ2hhbmdlOiBTdWJqZWN0PHZvaWQ+O1xuICAgIGdldEFkZGl0aW9uYWxQYXJhbXModWlBY3Rpb246IFVpQWN0aW9uKTogVWlBY3Rpb25BZGRpdGlvbmFsUGFyYW1zO1xuICAgIGdldE1vZGVsKCk6IGFueTtcbiAgICBwZXJmb3JtVWlBY3Rpb25SZXF1ZXN0KHVpQWN0aW9uUmVxdWVzdDogVWlBY3Rpb25SZXF1ZXN0KTogUHJvbWlzZTxhbnk+O1xuICAgIGhhbmRsZVNwZWNpZmljRGVtYW5kc0FzeW5jaHJvbm91c2x5KFxuICAgICAgICB1aUFjdGlvbjogVWlBY3Rpb24sXG4gICAgICAgIHVpQWN0aW9uUmVxdWVzdDogVWlBY3Rpb25SZXF1ZXN0XG4gICAgKTogUHJvbWlzZTxVaUFjdGlvblNwZWNpZmljRGVtYW5kUmVzcG9uc2U+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVpQWN0aW9uU3BlY2lmaWNEZW1hbmRSZXNwb25zZSB7XG4gICAgc2hvdWxkUGVyZm9ybUFjdGlvbjogYm9vbGVhbjtcbiAgICB1aUFjdGlvblJlcXVlc3Q/OiBVaUFjdGlvblJlcXVlc3Q7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVWlBY3Rpb25BZGRpdGlvbmFsUGFyYW1zIHtcbiAgICBmb3JUZXh0RmllbGQ/OiBzdHJpbmc7XG4gICAgZm9yVGV4dEFyZWE/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBlbnVtIFVpQWN0aW9uRGlhbG9nVHlwZSB7XG4gICAgaW5wdXREaWFsb2cgPSBcImlucHV0RGlhbG9nXCIsXG4gICAgY29uZmlybURpYWxvZyA9IFwiY29uZmlybURpYWxvZ1wiLFxuICAgIGRpYWxvZyA9IFwiZGlhbG9nXCIsXG59XG4iXX0=
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktYWN0aW9uLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvdmlldy1jb250ZXh0L3NtYXJ0LXVpLWFjdGlvbi91aS1hY3Rpb24ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBaUNBLE1BQU0sQ0FBTixJQUFZLGtCQUlYO0FBSkQsV0FBWSxrQkFBa0I7SUFDN0IsaURBQTJCLENBQUE7SUFDM0IscURBQStCLENBQUE7SUFDL0IsdUNBQWlCLENBQUE7QUFDbEIsQ0FBQyxFQUpXLGtCQUFrQixLQUFsQixrQkFBa0IsUUFJN0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBVaUFjdGlvbiwgVWlBY3Rpb25EZXNjcmlwdG9yLCBVaUFjdGlvblJlcXVlc3QgfSBmcm9tICcuLi9hcGknO1xuXG5leHBvcnQgaW50ZXJmYWNlIFVpQWN0aW9uTW9kZWwge1xuXHR1aUFjdGlvbjogVWlBY3Rpb247XG5cdHNlcnZpY2VUb1VzZTogVXNlVWlBY3Rpb247XG5cdGV4Y2VwdGlvbj86IGJvb2xlYW47XG5cdGRlc2NyaXB0b3I/OiBVaUFjdGlvbkRlc2NyaXB0b3I7XG5cdGNzc0NsYXNzPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVzZVVpQWN0aW9uIHtcblx0c3VibWl0OiBTdWJqZWN0PHZvaWQ+O1xuXHRyZVN1YnNjcmliZVRvQ2hhbmdlOiBTdWJqZWN0PHZvaWQ+O1xuXHRnZXRBZGRpdGlvbmFsUGFyYW1zKHVpQWN0aW9uOiBVaUFjdGlvbik6IFVpQWN0aW9uQWRkaXRpb25hbFBhcmFtcztcblx0Z2V0TW9kZWwoKTogYW55O1xuXHRwZXJmb3JtVWlBY3Rpb25SZXF1ZXN0KHVpQWN0aW9uUmVxdWVzdDogVWlBY3Rpb25SZXF1ZXN0LCB3aWRnZXRJZD86IHN0cmluZywgbm9kZUlkPzogc3RyaW5nKTogUHJvbWlzZTxhbnk+O1xuXHRoYW5kbGVTcGVjaWZpY0RlbWFuZHNBc3luY2hyb25vdXNseShcblx0XHR1aUFjdGlvbjogVWlBY3Rpb24sXG5cdFx0dWlBY3Rpb25SZXF1ZXN0OiBVaUFjdGlvblJlcXVlc3Rcblx0KTogUHJvbWlzZTxVaUFjdGlvblNwZWNpZmljRGVtYW5kUmVzcG9uc2U+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVpQWN0aW9uU3BlY2lmaWNEZW1hbmRSZXNwb25zZSB7XG5cdHNob3VsZFBlcmZvcm1BY3Rpb246IGJvb2xlYW47XG5cdHVpQWN0aW9uUmVxdWVzdD86IFVpQWN0aW9uUmVxdWVzdDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVaUFjdGlvbkFkZGl0aW9uYWxQYXJhbXMge1xuXHRmb3JUZXh0RmllbGQ/OiBzdHJpbmc7XG5cdGZvclRleHRBcmVhPzogc3RyaW5nO1xufVxuXG5leHBvcnQgZW51bSBVaUFjdGlvbkRpYWxvZ1R5cGUge1xuXHRpbnB1dERpYWxvZyA9ICdpbnB1dERpYWxvZycsXG5cdGNvbmZpcm1EaWFsb2cgPSAnY29uZmlybURpYWxvZycsXG5cdGRpYWxvZyA9ICdkaWFsb2cnLFxufVxuIl19
@@ -1,7 +1,7 @@
1
- import { Injectable } from "@angular/core";
2
- import { Subject } from "rxjs";
3
- import { UiActionFeedbackType, UiActionInputType } from "../api";
4
- import { SuccessSnackBarComponent } from "./components/success-snack-bar/success-snack-bar.component";
1
+ import { Injectable } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import { UiActionFeedbackType, UiActionInputType } from '../api';
4
+ import { SuccessSnackBarComponent } from './components/success-snack-bar/success-snack-bar.component';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "./dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.service";
7
7
  import * as i2 from "./dialogs/ui-action-input-dialog/ui-action-input-dialog.service";
@@ -12,7 +12,7 @@ export class UiActionService {
12
12
  this.textFieldDialogService = textFieldDialogService;
13
13
  this._snackBar = _snackBar;
14
14
  }
15
- async execute(uiAction) {
15
+ async execute(uiAction, options) {
16
16
  let uiActionRequest;
17
17
  uiActionRequest = {
18
18
  code: uiAction.code,
@@ -43,7 +43,7 @@ export class UiActionService {
43
43
  }
44
44
  // InputType
45
45
  if (uiAction.inputType) {
46
- uiActionRequest = await this.handleInputType(uiAction.inputType, uiAction, uiActionRequest, "inputDialog");
46
+ uiActionRequest = await this.handleInputType(uiAction.inputType, uiAction, uiActionRequest, 'inputDialog');
47
47
  if (!uiActionRequest) {
48
48
  return;
49
49
  }
@@ -51,7 +51,7 @@ export class UiActionService {
51
51
  }
52
52
  // Input2Type
53
53
  if (uiAction.input2Type) {
54
- uiActionRequest = await this.handleInputType(uiAction.input2Type, uiAction, uiActionRequest, "input2Dialog");
54
+ uiActionRequest = await this.handleInputType(uiAction.input2Type, uiAction, uiActionRequest, 'input2Dialog');
55
55
  if (!uiActionRequest) {
56
56
  return;
57
57
  }
@@ -63,7 +63,7 @@ export class UiActionService {
63
63
  }
64
64
  uiActionRequest = response.uiActionRequest;
65
65
  }
66
- this.performAction(uiAction, uiActionRequest);
66
+ this.performAction(uiAction, uiActionRequest, options);
67
67
  }
68
68
  async handleInputType(inputType, uiAction, uiActionRequest, inputTypeName) {
69
69
  switch (inputType) {
@@ -80,7 +80,7 @@ export class UiActionService {
80
80
  }
81
81
  async handleInputTypeTextField(inputTypeName, uiAction, uiActionRequest) {
82
82
  let additionalParams = this.uiActionModel.serviceToUse.getAdditionalParams(uiAction);
83
- let inputType = inputTypeName === "inputDialog" ? "inputType" : "input2Type";
83
+ let inputType = inputTypeName === 'inputDialog' ? 'inputType' : 'input2Type';
84
84
  if (uiAction[inputType] === UiActionInputType.Textfield) {
85
85
  this.textFieldDialogService.nodeName = additionalParams.forTextField;
86
86
  }
@@ -93,7 +93,7 @@ export class UiActionService {
93
93
  await this.textFieldDialogService.onAction.toPromise();
94
94
  let params = this.textFieldDialogService.params;
95
95
  if (!params) {
96
- console.error("There was no response from InputDialog");
96
+ console.error('There was no response from InputDialog');
97
97
  return;
98
98
  }
99
99
  uiActionRequest.params = {
@@ -110,18 +110,17 @@ export class UiActionService {
110
110
  uiActionRequest = response.uiActionRequest;
111
111
  return uiActionRequest;
112
112
  }
113
- async performAction(uiAction, uiActionRequest) {
114
- if (!uiActionRequest.params ||
115
- (uiActionRequest.params && !Object.keys(uiActionRequest.params).length)) {
113
+ async performAction(uiAction, uiActionRequest, options) {
114
+ if (!uiActionRequest.params || (uiActionRequest.params && !Object.keys(uiActionRequest.params).length)) {
116
115
  uiActionRequest.params = {
117
116
  model: this.uiActionModel.serviceToUse.getModel(),
118
117
  };
119
118
  }
120
119
  else if (uiAction.submit) {
121
- uiActionRequest.params["model"] = this.uiActionModel.serviceToUse.getModel();
120
+ uiActionRequest.params['model'] = this.uiActionModel.serviceToUse.getModel();
122
121
  }
123
122
  try {
124
- await this.uiActionModel.serviceToUse.performUiActionRequest(uiActionRequest);
123
+ await this.uiActionModel.serviceToUse.performUiActionRequest(uiActionRequest, options?.widgetId, options?.nodeId);
125
124
  if (this.uiActionModel.descriptor?.feedbackType === UiActionFeedbackType.Snackbar) {
126
125
  this.showSavedSnackbar(uiAction);
127
126
  }
@@ -133,17 +132,17 @@ export class UiActionService {
133
132
  showSavedSnackbar(uiAction) {
134
133
  this._snackBar.openFromComponent(SuccessSnackBarComponent, {
135
134
  duration: 5 * 1000,
136
- panelClass: ["backgroundColor-accent"],
135
+ panelClass: ['backgroundColor-accent'],
137
136
  data: uiAction,
138
137
  });
139
138
  }
140
139
  }
141
140
  UiActionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UiActionService, deps: [{ token: i1.UiActionConfirmDialogService }, { token: i2.UiActionInputDialogService }, { token: i3.MatSnackBar }], target: i0.ɵɵFactoryTarget.Injectable });
142
- UiActionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UiActionService, providedIn: "root" });
141
+ UiActionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UiActionService, providedIn: 'root' });
143
142
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: UiActionService, decorators: [{
144
143
  type: Injectable,
145
144
  args: [{
146
- providedIn: "root",
145
+ providedIn: 'root',
147
146
  }]
148
147
  }], ctorParameters: function () { return [{ type: i1.UiActionConfirmDialogService }, { type: i2.UiActionInputDialogService }, { type: i3.MatSnackBar }]; } });
149
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktYWN0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi92aWV3LWNvbnRleHQvc21hcnQtdWktYWN0aW9uL3VpLWFjdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQVksb0JBQW9CLEVBQUUsaUJBQWlCLEVBQW1CLE1BQU0sUUFBUSxDQUFDO0FBQzVGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDREQUE0RCxDQUFDOzs7OztBQVV0RyxNQUFNLE9BQU8sZUFBZTtJQUd4QixZQUNZLG9CQUFrRCxFQUNsRCxzQkFBa0QsRUFDbEQsU0FBc0I7UUFGdEIseUJBQW9CLEdBQXBCLG9CQUFvQixDQUE4QjtRQUNsRCwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQTRCO1FBQ2xELGNBQVMsR0FBVCxTQUFTLENBQWE7SUFDL0IsQ0FBQztJQUVKLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBa0I7UUFDNUIsSUFBSSxlQUE0QyxDQUFDO1FBRWpELGVBQWUsR0FBRztZQUNkLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSztZQUNwQixVQUFVLEVBQUUsUUFBUSxDQUFDLFVBQVU7WUFDL0IsTUFBTSxFQUFFLFFBQVEsQ0FBQyxNQUFNLElBQUksRUFBRTtTQUNoQyxDQUFDO1FBRUYsSUFBSSxRQUFRLENBQUMsTUFBTSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUM5QyxJQUFJO2dCQUNBLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dC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UUFBQyxPQUFPLEtBQVUsRUFBRTtZQUNqQixPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3hCO0lBQ0wsQ0FBQztJQUVELGlCQUFpQixDQUFDLFFBQWtCO1FBQ2hDLElBQUksQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsd0JBQXdCLEVBQUU7WUFDdkQsUUFBUSxFQUFFLENBQUMsR0FBRyxJQUFJO1lBQ2xCLFVBQVUsRUFBRSxDQUFDLHdCQUF3QixDQUFDO1lBQ3RDLElBQUksRUFBRSxRQUFRO1NBQ2pCLENBQUMsQ0FBQztJQUNQLENBQUM7OzZHQWpNUSxlQUFlO2lIQUFmLGVBQWUsY0FGWixNQUFNOzRGQUVULGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBNYXRTbmFja0JhciB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXJcIjtcblxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBVaUFjdGlvbiwgVWlBY3Rpb25GZWVkYmFja1R5cGUsIFVpQWN0aW9uSW5wdXRUeXBlLCBVaUFjdGlvblJlcXVlc3QgfSBmcm9tIFwiLi4vYXBpXCI7XG5pbXBvcnQgeyBTdWNjZXNzU25hY2tCYXJDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL3N1Y2Nlc3Mtc25hY2stYmFyL3N1Y2Nlc3Mtc25hY2stYmFyLmNvbXBvbmVudFwiO1xuXG5pbXBvcnQgeyBVaUFjdGlvbklucHV0RGlhbG9nU2VydmljZSB9IGZyb20gXCIuL2RpYWxvZ3MvdWktYWN0aW9uLWlucHV0LWRpYWxvZy91aS1hY3Rpb24taW5wdXQtZGlhbG9nLnNlcnZpY2VcIjtcbmltcG9ydCB7IFVpQWN0aW9uQ29uZmlybURpYWxvZ1NlcnZpY2UgfSBmcm9tIFwiLi9kaWFsb2dzL3VpLWFjdGlvbi1jb25maXJtLWRpYWxvZy91aS1hY3Rpb24tY29uZmlybS1kaWFsb2cuc2VydmljZVwiO1xuaW1wb3J0IHsgVWlBY3Rpb25Nb2RlbCB9IGZyb20gXCIuL3VpLWFjdGlvbi5tb2RlbFwiO1xuaW1wb3J0IHsgTCB9IGZyb20gXCJAYW5ndWxhci9jZGsva2V5Y29kZXNcIjtcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46IFwicm9vdFwiLFxufSlcbmV4cG9ydCBjbGFzcyBVaUFjdGlvblNlcnZpY2Uge1xuICAgIHVpQWN0aW9uTW9kZWwhOiBVaUFjdGlvbk1vZGVsO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgY29uZmlybURpYWxvZ1NlcnZpY2U6IFVpQWN0aW9uQ29uZmlybURpYWxvZ1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgdGV4dEZpZWxkRGlhbG9nU2VydmljZTogVWlBY3Rpb25JbnB1dERpYWxvZ1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgX3NuYWNrQmFyOiBNYXRTbmFja0JhclxuICAgICkge31cblxuICAgIGFzeW5jIGV4ZWN1dGUodWlBY3Rpb246IFVpQWN0aW9uKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGxldCB1aUFjdGlvblJlcXVlc3Q6IFVpQWN0aW9uUmVxdWVzdCB8IHVuZGVmaW5lZDtcblxuICAgICAgICB1aUFjdGlvblJlcXVlc3QgPSB7XG4gICAgICAgICAgICBjb2RlOiB1aUFjdGlvbi5jb2RlISxcbiAgICAgICAgICAgIGlkZW50aWZpZXI6IHVpQWN0aW9uLmlkZW50aWZpZXIsXG4gICAgICAgICAgICBwYXJhbXM6IHVpQWN0aW9uLnBhcmFtcyA/PyB7fSxcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAodWlBY3Rpb24uc3VibWl0KSB7XG4gICAgICAgICAgICB0aGlzLnVpQWN0aW9uTW9kZWwuc2VydmljZVRvVXNlLnN1Ym1pdC5uZXh0KCk7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMudWlBY3Rpb25Nb2RlbC5zZXJ2aWNlVG9Vc2Uuc3VibWl0LnRvUHJvbWlzZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMudWlBY3Rpb25Nb2RlbC5zZXJ2aWNlVG9Vc2Uuc3VibWl0ID0gbmV3IFN1YmplY3QoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnVpQWN0aW9uTW9kZWwuc2VydmljZVRvVXNlLnJlU3Vic2NyaWJlVG9DaGFuZ2UubmV4dCgpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgICAgICAgICAgICAgIHRoaXMudWlBY3Rpb25Nb2RlbC5zZXJ2aWNlVG9Vc2Uuc3VibWl0ID0gbmV3IFN1YmplY3QoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnVpQWN0aW9uTW9kZWwuc2VydmljZVRvVXNlLnJlU3Vic2NyaWJlVG9DaGFuZ2UubmV4dCgpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh1aUFjdGlvbi5jb25maXJtKSB7XG4gICAgICAgICAgICB0aGlzLmNvbmZpcm1EaWFsb2dTZXJ2aWNlLmFjdGlvbiA9IHVpQWN0aW9uO1xuICAgICAgICAgICAgdGhpcy5jb25maXJtRGlhbG9nU2VydmljZS5vcGVuRGlhbG9nKCk7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmNvbmZpcm1EaWFsb2dTZXJ2aWNlLm9uQWN0aW9uLnRvUHJvbWlzZSgpO1xuICAgICAgICAgICAgaWYgKCF0aGlzLmNvbmZpcm1EaWFsb2dTZXJ2aWNlLnNob3VsZERvQWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gSW5wdXRUeXBlXG4gICAgICAgIGlmICh1aUFjdGlvbi5pbnB1dFR5cGUpIHtcbiAgICAgICAgICAgIHVpQWN0aW9uUmVxdWVzdCA9IGF3YWl0IHRoaXMuaGFuZGxlSW5wdXRUeXBlKFxuICAgICAgICAgICAgICAgIHVpQWN0aW9uLmlucHV0VHlwZSxcbiAgICAgICAgICAgICAgICB1aUFjdGlvbixcbiAgICAgICAgICAgICAgICB1aUFjdGlvblJlcXVlc3QsXG4gICAgICAgICAgICAgICAgXCJpbnB1dERpYWxvZ1wiXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaWYgKCF1aUFjdGlvblJlcXVlc3QpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZlLCAyNTApKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBJbnB1dDJUeXBlXG4gICAgICAgIGlmICh1aUFjdGlvbi5pbnB1dDJUeXBlKSB7XG4gICAgICAgICAgICB1aUFjdGlvblJlcXVlc3QgPSBhd2FpdCB0aGlzLmhhbmRsZUlucHV0VHlwZShcbiAgICAgICAgICAgICAgICB1aUFjdGlvbi5pbnB1dDJUeXBlLFxuICAgICAgICAgICAgICAgIHVpQWN0aW9uLFxuICAgICAgICAgICAgICAgIHVpQWN0aW9uUmVxdWVzdCxcbiAgICAgICAgICAgICAgICBcImlucHV0MkRpYWxvZ1wiXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaWYgKCF1aUFjdGlvblJlcXVlc3QpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy51aUFjdGlvbk1vZGVsLmV4Y2VwdGlvbikge1xuICAgICAgICAgICAgbGV0IHJlc3BvbnNlID1cbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnVpQWN0aW9uTW9kZWwuc2VydmljZVRvVXNlLmhhbmRsZVNwZWNpZmljRGVtYW5kc0FzeW5jaHJvbm91c2x5KFxuICAgICAgICAgICAgICAgICAgICB1aUFjdGlvbixcbiAgICAgICAgICAgICAgICAgICAgdWlBY3Rpb25SZXF1ZXN0XG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgaWYgKCFyZXNwb25zZS5zaG91bGRQZXJmb3JtQWN0aW9uIHx8ICFyZXNwb25zZS51aUFjdGlvblJlcXVlc3QpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB1aUFjdGlvblJlcXVlc3QgPSByZXNwb25zZS51aUFjdGlvblJlcXVlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnBlcmZvcm1BY3Rpb24odWlBY3Rpb24sIHVpQWN0aW9uUmVxdWVzdCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBoYW5kbGVJbnB1dFR5cGUoXG4gICAgICAgIGlucHV0VHlwZTogVWlBY3Rpb25JbnB1dFR5cGUsXG4gICAgICAgIHVpQWN0aW9uOiBVaUFjdGlvbixcbiAgICAgICAgdWlBY3Rpb25SZXF1ZXN0OiBVaUFjdGlvblJlcXVlc3QsXG4gICAgICAgIGlucHV0VHlwZU5hbWU6IFwiaW5wdXREaWFsb2dcIiB8IFwiaW5wdXQyRGlhbG9nXCJcbiAgICApOiBQcm9taXNlPFVpQWN0aW9uUmVxdWVzdCB8IHVuZGVmaW5lZD4ge1xuICAgICAgICBzd2l0Y2ggKGlucHV0VHlwZSkge1xuICAgICAgICAgICAgY2FzZSBVaUFjdGlvbklucHV0VHlwZS5Ob25lOlxuICAgICAgICAgICAgICAgIHJldHVybiB1aUFjdGlvblJlcXVlc3Q7XG4gICAgICAgICAgICBjYXNlIFVpQWN0aW9uSW5wdXRUeXBlLlRleHRhcmVhOlxuICAgICAgICAgICAgY2FzZSBVaUFjdGlvbklucHV0VHlwZS5UZXh0ZmllbGQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuaGFuZGxlSW5wdXRUeXBlVGV4dEZpZWxkKFxuICAgICAgICAgICAgICAgICAgICBpbnB1dFR5cGVOYW1lLFxuICAgICAgICAgICAgICAgICAgICB1aUFjdGlvbixcbiAgICAgICAgICAgICAgICAgICAgdWlBY3Rpb25SZXF1ZXN0XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNhc2UgVWlBY3Rpb25JbnB1dFR5cGUuVXNlclNlbGVjdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5oYW5kbGVJbnB1dFR5cGVVc2VyU2VsZWN0KFxuICAgICAgICAgICAgICAgICAgICBpbnB1dFR5cGVOYW1lLFxuICAgICAgICAgICAgICAgICAgICB1aUFjdGlvbixcbiAgICAgICAgICAgICAgICAgICAgdWlBY3Rpb25SZXF1ZXN0XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHVpQWN0aW9uUmVxdWVzdDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgaGFuZGxlSW5wdXRUeXBlVGV4dEZpZWxkKFxuICAgICAgICBpbnB1dFR5cGVOYW1lOiBcImlucHV0RGlhbG9nXCIgfCBcImlucHV0MkRpYWxvZ1wiLFxuICAgICAgICB1aUFjdGlvbjogVWlBY3Rpb24sXG4gICAgICAgIHVpQWN0aW9uUmVxdWVzdDogVWlBY3Rpb25SZXF1ZXN0XG4gICAgKTogUHJvbWlzZTxVaUFjdGlvblJlcXVlc3QgfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgbGV0IGFkZGl0aW9uYWxQYXJhbXMgPSB0aGlzLnVpQWN0aW9uTW9kZWwuc2VydmljZVRvVXNlLmdldEFkZGl0aW9uYWxQYXJhbXModWlBY3Rpb24pO1xuICAgICAgICBsZXQgaW5wdXRUeXBlOiBcImlucHV0VHlwZVwiIHwgXCJpbnB1dDJUeXBlXCIgPVxuICAgICAgICAgICAgaW5wdXRUeXBlTmFtZSA9PT0gXCJpbnB1dERpYWxvZ1wiID8gXCJpbnB1dFR5cGVcIiA6IFwiaW5wdXQyVHlwZVwiO1xuXG4gICAgICAgIGlmICh1aUFjdGlvbltpbnB1dFR5cGVdID09PSBVaUFjdGlvbklucHV0VHlwZS5UZXh0ZmllbGQpIHtcbiAgICAgICAgICAgIHRoaXMudGV4dEZpZWxkRGlhbG9nU2VydmljZS5ub2RlTmFtZSA9IGFkZGl0aW9uYWxQYXJhbXMuZm9yVGV4dEZpZWxkO1xuICAgICAgICB9IGVsc2UgaWYgKHVpQWN0aW9uW2lucHV0VHlwZV0gPT09IFVpQWN0aW9uSW5wdXRUeXBlLlRleHRhcmVhKSB7XG4gICAgICAgICAgICB0aGlzLnRleHRGaWVsZERpYWxvZ1NlcnZpY2Uubm9kZU5hbWUgPSBhZGRpdGlvbmFsUGFyYW1zLmZvclRleHRBcmVhO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy50ZXh0RmllbGREaWFsb2dTZXJ2aWNlLmlucHV0VHlwZU5hbWUgPSBpbnB1dFR5cGVOYW1lO1xuICAgICAgICB0aGlzLnRleHRGaWVsZERpYWxvZ1NlcnZpY2UuYWN0aW9uID0gdWlBY3Rpb247XG5cbiAgICAgICAgdGhpcy50ZXh0RmllbGREaWFsb2dTZXJ2aWNlLm9wZW5EaWFsb2coKTtcblxuICAgICAgICBhd2FpdCB0aGlzLnRleHRGaWVsZERpYWxvZ1NlcnZpY2Uub25BY3Rpb24udG9Qcm9taXNlKCk7XG4gICAgICAgIGxldCBwYXJhbXMgPSB0aGlzLnRleHRGaWVsZERpYWxvZ1NlcnZpY2UucGFyYW1zO1xuXG4gICAgICAgIGlmICghcGFyYW1zKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiVGhlcmUgd2FzIG5vIHJlc3BvbnNlIGZyb20gSW5wdXREaWFsb2dcIik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdWlBY3Rpb25SZXF1ZXN0LnBhcmFtcyA9IHtcbiAgICAgICAgICAgIC4uLnVpQWN0aW9uUmVxdWVzdC5wYXJhbXMsXG4gICAgICAgICAgICAuLi5wYXJhbXMsXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiB1aUFjdGlvblJlcXVlc3Q7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBoYW5kbGVJbnB1dFR5cGVVc2VyU2VsZWN0KFxuICAgICAgICBpbnB1dFR5cGVOYW1lOiBcImlucHV0RGlhbG9nXCIgfCBcImlucHV0MkRpYWxvZ1wiLFxuICAgICAgICB1aUFjdGlvbjogVWlBY3Rpb24sXG4gICAgICAgIHVpQWN0aW9uUmVxdWVzdDogVWlBY3Rpb25SZXF1ZXN0XG4gICAgKTogUHJvbWlzZTxVaUFjdGlvblJlcXVlc3QgfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgbGV0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy51aUFjdGlvbk1vZGVsLnNlcnZpY2VUb1VzZS5oYW5kbGVTcGVjaWZpY0RlbWFuZHNBc3luY2hyb25vdXNseShcbiAgICAgICAgICAgIHVpQWN0aW9uLFxuICAgICAgICAgICAgdWlBY3Rpb25SZXF1ZXN0XG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKCFyZXNwb25zZS5zaG91bGRQZXJmb3JtQWN0aW9uIHx8ICFyZXNwb25zZS51aUFjdGlvblJlcXVlc3QpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB1aUFjdGlvblJlcXVlc3QgPSByZXNwb25zZS51aUFjdGlvblJlcXVlc3Q7XG4gICAgICAgIHJldHVybiB1aUFjdGlvblJlcXVlc3Q7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBwZXJmb3JtQWN0aW9uKFxuICAgICAgICB1aUFjdGlvbjogVWlBY3Rpb24sXG4gICAgICAgIHVpQWN0aW9uUmVxdWVzdDogVWlBY3Rpb25SZXF1ZXN0XG4gICAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICF1aUFjdGlvblJlcXVlc3QucGFyYW1zIHx8XG4gICAgICAgICAgICAodWlBY3Rpb25SZXF1ZXN0LnBhcmFtcyAmJiAhT2JqZWN0LmtleXModWlBY3Rpb25SZXF1ZXN0LnBhcmFtcykubGVuZ3RoKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHVpQWN0aW9uUmVxdWVzdC5wYXJhbXMgPSB7XG4gICAgICAgICAgICAgICAgbW9kZWw6IHRoaXMudWlBY3Rpb25Nb2RlbC5zZXJ2aWNlVG9Vc2UuZ2V0TW9kZWwoKSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSBpZiAodWlBY3Rpb24uc3VibWl0KSB7XG4gICAgICAgICAgICB1aUFjdGlvblJlcXVlc3QucGFyYW1zW1wibW9kZWxcIl0gPSB0aGlzLnVpQWN0aW9uTW9kZWwuc2VydmljZVRvVXNlLmdldE1vZGVsKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy51aUFjdGlvbk1vZGVsLnNlcnZpY2VUb1VzZS5wZXJmb3JtVWlBY3Rpb25SZXF1ZXN0KHVpQWN0aW9uUmVxdWVzdCk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLnVpQWN0aW9uTW9kZWwuZGVzY3JpcHRvcj8uZmVlZGJhY2tUeXBlID09PSBVaUFjdGlvbkZlZWRiYWNrVHlwZS5TbmFja2Jhcikge1xuICAgICAgICAgICAgICAgIHRoaXMuc2hvd1NhdmVkU25hY2tiYXIodWlBY3Rpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNob3dTYXZlZFNuYWNrYmFyKHVpQWN0aW9uOiBVaUFjdGlvbik6IHZvaWQge1xuICAgICAgICB0aGlzLl9zbmFja0Jhci5vcGVuRnJvbUNvbXBvbmVudChTdWNjZXNzU25hY2tCYXJDb21wb25lbnQsIHtcbiAgICAgICAgICAgIGR1cmF0aW9uOiA1ICogMTAwMCxcbiAgICAgICAgICAgIHBhbmVsQ2xhc3M6IFtcImJhY2tncm91bmRDb2xvci1hY2NlbnRcIl0sXG4gICAgICAgICAgICBkYXRhOiB1aUFjdGlvbixcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktYWN0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi92aWV3LWNvbnRleHQvc21hcnQtdWktYWN0aW9uL3VpLWFjdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQVksb0JBQW9CLEVBQUUsaUJBQWlCLEVBQW1CLE1BQU0sUUFBUSxDQUFDO0FBQzVGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDREQUE0RCxDQUFDOzs7OztBQW9CdEcsTUFBTSxPQUFPLGVBQWU7SUFHM0IsWUFDUyxvQkFBa0QsRUFDbEQsc0JBQWtELEVBQ2xELFNBQXNCO1FBRnRCLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBOEI7UUFDbEQsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUE0QjtRQUNsRCxjQUFTLEdBQVQsU0FBUyxDQUFhO0lBQzVCLENBQUM7SUFFSixLQUFLLENBQUMsT0FBTyxDQUFDLFFBQWtCLEVBQUUsT0FBZ0M7UUFDakUsSUFBSSxlQUE0QyxDQUFDO1FBRWpELGVBQWUsR0FBRztZQUNqQixJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUs7WUFDcEIsVUFBVSxFQUFFLFFBQVEsQ0FBQyxVQUFVO1lBQy9CLE1BQU0sRUFBRSxRQUFRLENBQUMsTUFBTSxJQUFJLEVBQUU7U0FDN0IsQ0FBQztRQUVGLElBQUksUUFBUSxDQUFDLE1BQU0sRUFBRTtZQUNwQixJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDOUMsSUFBSTtnQkFDSCxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxTQUFT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Q0FBQyxRQUFRLEVBQUU7Z0JBQ2xGLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUNqQztTQUNEO1FBQUMsT0FBTyxLQUFVLEVBQUU7WUFDcEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNyQjtJQUNGLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxRQUFrQjtRQUNuQyxJQUFJLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLHdCQUF3QixFQUFFO1lBQzFELFFBQVEsRUFBRSxDQUFDLEdBQUcsSUFBSTtZQUNsQixVQUFVLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQztZQUN0QyxJQUFJLEVBQUUsUUFBUTtTQUNkLENBQUMsQ0FBQztJQUNKLENBQUM7OzZHQXBMVyxlQUFlO2lIQUFmLGVBQWUsY0FGZixNQUFNOzRGQUVOLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1gsVUFBVSxFQUFFLE1BQU07aUJBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0U25hY2tCYXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBVaUFjdGlvbiwgVWlBY3Rpb25GZWVkYmFja1R5cGUsIFVpQWN0aW9uSW5wdXRUeXBlLCBVaUFjdGlvblJlcXVlc3QgfSBmcm9tICcuLi9hcGknO1xuaW1wb3J0IHsgU3VjY2Vzc1NuYWNrQmFyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3N1Y2Nlc3Mtc25hY2stYmFyL3N1Y2Nlc3Mtc25hY2stYmFyLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IFVpQWN0aW9uQ29uZmlybURpYWxvZ1NlcnZpY2UgfSBmcm9tICcuL2RpYWxvZ3MvdWktYWN0aW9uLWNvbmZpcm0tZGlhbG9nL3VpLWFjdGlvbi1jb25maXJtLWRpYWxvZy5zZXJ2aWNlJztcbmltcG9ydCB7IFVpQWN0aW9uSW5wdXREaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi9kaWFsb2dzL3VpLWFjdGlvbi1pbnB1dC1kaWFsb2cvdWktYWN0aW9uLWlucHV0LWRpYWxvZy5zZXJ2aWNlJztcbmltcG9ydCB7IFVpQWN0aW9uTW9kZWwgfSBmcm9tICcuL3VpLWFjdGlvbi5tb2RlbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXhlY3V0ZVVpQWN0aW9uT3B0aW9ucyB7XG5cdC8qKlxuXHQgKiBJbiBjYXNlIG9mIHVzaW5nIGEgZ3JpZDogZ3JpZC5pZGVudGlmaWVyXG5cdCAqL1xuXHR3aWRnZXRJZD86IHN0cmluZztcblx0LyoqXG5cdCAqIEluIGNhc2Ugb2YgdXNpbmcgYSBncmlkOiBncmlkUm93LmlkXG5cdCAqL1xuXHRub2RlSWQ/OiBzdHJpbmc7XG59XG5cbkBJbmplY3RhYmxlKHtcblx0cHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBVaUFjdGlvblNlcnZpY2Uge1xuXHR1aUFjdGlvbk1vZGVsITogVWlBY3Rpb25Nb2RlbDtcblxuXHRjb25zdHJ1Y3Rvcihcblx0XHRwcml2YXRlIGNvbmZpcm1EaWFsb2dTZXJ2aWNlOiBVaUFjdGlvbkNvbmZpcm1EaWFsb2dTZXJ2aWNlLFxuXHRcdHByaXZhdGUgdGV4dEZpZWxkRGlhbG9nU2VydmljZTogVWlBY3Rpb25JbnB1dERpYWxvZ1NlcnZpY2UsXG5cdFx0cHJpdmF0ZSBfc25hY2tCYXI6IE1hdFNuYWNrQmFyXG5cdCkge31cblxuXHRhc3luYyBleGVjdXRlKHVpQWN0aW9uOiBVaUFjdGlvbiwgb3B0aW9ucz86IEV4ZWN1dGVVaUFjdGlvbk9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+IHtcblx0XHRsZXQgdWlBY3Rpb25SZXF1ZXN0OiBVaUFjdGlvblJlcXVlc3QgfCB1bmRlZmluZWQ7XG5cblx0XHR1aUFjdGlvblJlcXVlc3QgPSB7XG5cdFx0XHRjb2RlOiB1aUFjdGlvbi5jb2RlISxcblx0XHRcdGlkZW50aWZpZXI6IHVpQWN0aW9uLmlkZW50aWZpZXIsXG5cdFx0XHRwYXJhbXM6IHVpQWN0aW9uLnBhcmFtcyA/PyB7fSxcblx0XHR9O1xuXG5cdFx0aWYgKHVpQWN0aW9uLnN1Ym1pdCkge1xuXHRcdFx0dGhpcy51aUFjdGlvbk1vZGVsLnNlcnZpY2VUb1VzZS5zdWJtaXQubmV4dCgpO1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0YXdhaXQgdGhpcy51aUFjdGlvbk1vZGVsLnNlcnZpY2VUb1VzZS5zdWJtaXQudG9Qcm9taXNlKCk7XG5cdFx0XHRcdHRoaXMudWlBY3Rpb25Nb2RlbC5zZXJ2aWNlVG9Vc2Uuc3VibWl0ID0gbmV3IFN1YmplY3QoKTtcblx0XHRcdFx0dGhpcy51aUFjdGlvbk1vZGVsLnNlcnZpY2VUb1VzZS5yZVN1YnNjcmliZVRvQ2hhbmdlLm5leHQoKTtcblx0XHRcdH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcblx0XHRcdFx0Y29uc29sZS5lcnJvcihlcnJvcik7XG5cdFx0XHRcdHRoaXMudWlBY3Rpb25Nb2RlbC5zZXJ2aWNlVG9Vc2Uuc3VibWl0ID0gbmV3IFN1YmplY3QoKTtcblx0XHRcdFx0dGhpcy51aUFjdGlvbk1vZGVsLnNlcnZpY2VUb1VzZS5yZVN1YnNjcmliZVRvQ2hhbmdlLm5leHQoKTtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGlmICh1aUFjdGlvbi5jb25maXJtKSB7XG5cdFx0XHR0aGlzLmNvbmZpcm1EaWFsb2dTZXJ2aWNlLmFjdGlvbiA9IHVpQWN0aW9uO1xuXHRcdFx0dGhpcy5jb25maXJtRGlhbG9nU2VydmljZS5vcGVuRGlhbG9nKCk7XG5cdFx0XHRhd2FpdCB0aGlzLmNvbmZpcm1EaWFsb2dTZXJ2aWNlLm9uQWN0aW9uLnRvUHJvbWlzZSgpO1xuXHRcdFx0aWYgKCF0aGlzLmNvbmZpcm1EaWFsb2dTZXJ2aWNlLnNob3VsZERvQWN0aW9uKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBJbnB1dFR5cGVcblx0XHRpZiAodWlBY3Rpb24uaW5wdXRUeXBlKSB7XG5cdFx0XHR1aUFjdGlvblJlcXVlc3QgPSBhd2FpdCB0aGlzLmhhbmRsZUlucHV0VHlwZSh1aUFjdGlvbi5pbnB1dFR5cGUsIHVpQWN0aW9uLCB1aUFjdGlvblJlcXVlc3QsICdpbnB1dERpYWxvZycpO1xuXHRcdFx0aWYgKCF1aUFjdGlvblJlcXVlc3QpIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0YXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgMjUwKSk7XG5cdFx0fVxuXHRcdC8vIElucHV0MlR5cGVcblx0XHRpZiAodWlBY3Rpb24uaW5wdXQyVHlwZSkge1xuXHRcdFx0dWlBY3Rpb25SZXF1ZXN0ID0gYXdhaXQgdGhpcy5oYW5kbGVJbnB1dFR5cGUoXG5cdFx0XHRcdHVpQWN0aW9uLmlucHV0MlR5cGUsXG5cdFx0XHRcdHVpQWN0aW9uLFxuXHRcdFx0XHR1aUFjdGlvblJlcXVlc3QsXG5cdFx0XHRcdCdpbnB1dDJEaWFsb2cnXG5cdFx0XHQpO1xuXHRcdFx0aWYgKCF1aUFjdGlvblJlcXVlc3QpIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGlmICh0aGlzLnVpQWN0aW9uTW9kZWwuZXhjZXB0aW9uKSB7XG5cdFx0XHRsZXQgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLnVpQWN0aW9uTW9kZWwuc2VydmljZVRvVXNlLmhhbmRsZVNwZWNpZmljRGVtYW5kc0FzeW5jaHJvbm91c2x5KFxuXHRcdFx0XHR1aUFjdGlvbixcblx0XHRcdFx0dWlBY3Rpb25SZXF1ZXN0XG5cdFx0XHQpO1xuXG5cdFx0XHRpZiAoIXJlc3BvbnNlLnNob3VsZFBlcmZvcm1BY3Rpb24gfHwgIXJlc3BvbnNlLnVpQWN0aW9uUmVxdWVzdCkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHR1aUFjdGlvblJlcXVlc3QgPSByZXNwb25zZS51aUFjdGlvblJlcXVlc3Q7XG5cdFx0fVxuXG5cdFx0dGhpcy5wZXJmb3JtQWN0aW9uKHVpQWN0aW9uLCB1aUFjdGlvblJlcXVlc3QsIG9wdGlvbnMpO1xuXHR9XG5cblx0cHJpdmF0ZSBhc3luYyBoYW5kbGVJbnB1dFR5cGUoXG5cdFx0aW5wdXRUeXBlOiBVaUFjdGlvbklucHV0VHlwZSxcblx0XHR1aUFjdGlvbjogVWlBY3Rpb24sXG5cdFx0dWlBY3Rpb25SZXF1ZXN0OiBVaUFjdGlvblJlcXVlc3QsXG5cdFx0aW5wdXRUeXBlTmFtZTogJ2lucHV0RGlhbG9nJyB8ICdpbnB1dDJEaWFsb2cnXG5cdCk6IFByb21pc2U8VWlBY3Rpb25SZXF1ZXN0IHwgdW5kZWZpbmVkPiB7XG5cdFx0c3dpdGNoIChpbnB1dFR5cGUpIHtcblx0XHRcdGNhc2UgVWlBY3Rpb25JbnB1dFR5cGUuTm9uZTpcblx0XHRcdFx0cmV0dXJuIHVpQWN0aW9uUmVxdWVzdDtcblx0XHRcdGNhc2UgVWlBY3Rpb25JbnB1dFR5cGUuVGV4dGFyZWE6XG5cdFx0XHRjYXNlIFVpQWN0aW9uSW5wdXRUeXBlLlRleHRmaWVsZDpcblx0XHRcdFx0cmV0dXJuIGF3YWl0IHRoaXMuaGFuZGxlSW5wdXRUeXBlVGV4dEZpZWxkKGlucHV0VHlwZU5hbWUsIHVpQWN0aW9uLCB1aUFjdGlvblJlcXVlc3QpO1xuXHRcdFx0Y2FzZSBVaUFjdGlvbklucHV0VHlwZS5Vc2VyU2VsZWN0OlxuXHRcdFx0XHRyZXR1cm4gYXdhaXQgdGhpcy5oYW5kbGVJbnB1dFR5cGVVc2VyU2VsZWN0KGlucHV0VHlwZU5hbWUsIHVpQWN0aW9uLCB1aUFjdGlvblJlcXVlc3QpO1xuXHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0cmV0dXJuIHVpQWN0aW9uUmVxdWVzdDtcblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIGFzeW5jIGhhbmRsZUlucHV0VHlwZVRleHRGaWVsZChcblx0XHRpbnB1dFR5cGVOYW1lOiAnaW5wdXREaWFsb2cnIHwgJ2lucHV0MkRpYWxvZycsXG5cdFx0dWlBY3Rpb246IFVpQWN0aW9uLFxuXHRcdHVpQWN0aW9uUmVxdWVzdDogVWlBY3Rpb25SZXF1ZXN0XG5cdCk6IFByb21pc2U8VWlBY3Rpb25SZXF1ZXN0IHwgdW5kZWZpbmVkPiB7XG5cdFx0bGV0IGFkZGl0aW9uYWxQYXJhbXMgPSB0aGlzLnVpQWN0aW9uTW9kZWwuc2VydmljZVRvVXNlLmdldEFkZGl0aW9uYWxQYXJhbXModWlBY3Rpb24pO1xuXHRcdGxldCBpbnB1dFR5cGU6ICdpbnB1dFR5cGUnIHwgJ2lucHV0MlR5cGUnID0gaW5wdXRUeXBlTmFtZSA9PT0gJ2lucHV0RGlhbG9nJyA/ICdpbnB1dFR5cGUnIDogJ2lucHV0MlR5cGUnO1xuXG5cdFx0aWYgKHVpQWN0aW9uW2lucHV0VHlwZV0gPT09IFVpQWN0aW9uSW5wdXRUeXBlLlRleHRmaWVsZCkge1xuXHRcdFx0dGhpcy50ZXh0RmllbGREaWFsb2dTZXJ2aWNlLm5vZGVOYW1lID0gYWRkaXRpb25hbFBhcmFtcy5mb3JUZXh0RmllbGQ7XG5cdFx0fSBlbHNlIGlmICh1aUFjdGlvbltpbnB1dFR5cGVdID09PSBVaUFjdGlvbklucHV0VHlwZS5UZXh0YXJlYSkge1xuXHRcdFx0dGhpcy50ZXh0RmllbGREaWFsb2dTZXJ2aWNlLm5vZGVOYW1lID0gYWRkaXRpb25hbFBhcmFtcy5mb3JUZXh0QXJlYTtcblx0XHR9XG5cblx0XHR0aGlzLnRleHRGaWVsZERpYWxvZ1NlcnZpY2UuaW5wdXRUeXBlTmFtZSA9IGlucHV0VHlwZU5hbWU7XG5cdFx0dGhpcy50ZXh0RmllbGREaWFsb2dTZXJ2aWNlLmFjdGlvbiA9IHVpQWN0aW9uO1xuXG5cdFx0dGhpcy50ZXh0RmllbGREaWFsb2dTZXJ2aWNlLm9wZW5EaWFsb2coKTtcblxuXHRcdGF3YWl0IHRoaXMudGV4dEZpZWxkRGlhbG9nU2VydmljZS5vbkFjdGlvbi50b1Byb21pc2UoKTtcblx0XHRsZXQgcGFyYW1zID0gdGhpcy50ZXh0RmllbGREaWFsb2dTZXJ2aWNlLnBhcmFtcztcblxuXHRcdGlmICghcGFyYW1zKSB7XG5cdFx0XHRjb25zb2xlLmVycm9yKCdUaGVyZSB3YXMgbm8gcmVzcG9uc2UgZnJvbSBJbnB1dERpYWxvZycpO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHR1aUFjdGlvblJlcXVlc3QucGFyYW1zID0ge1xuXHRcdFx0Li4udWlBY3Rpb25SZXF1ZXN0LnBhcmFtcyxcblx0XHRcdC4uLnBhcmFtcyxcblx0XHR9O1xuXHRcdHJldHVybiB1aUFjdGlvblJlcXVlc3Q7XG5cdH1cblxuXHRwcml2YXRlIGFzeW5jIGhhbmRsZUlucHV0VHlwZVVzZXJTZWxlY3QoXG5cdFx0aW5wdXRUeXBlTmFtZTogJ2lucHV0RGlhbG9nJyB8ICdpbnB1dDJEaWFsb2cnLFxuXHRcdHVpQWN0aW9uOiBVaUFjdGlvbixcblx0XHR1aUFjdGlvblJlcXVlc3Q6IFVpQWN0aW9uUmVxdWVzdFxuXHQpOiBQcm9taXNlPFVpQWN0aW9uUmVxdWVzdCB8IHVuZGVmaW5lZD4ge1xuXHRcdGxldCByZXNwb25zZSA9IGF3YWl0IHRoaXMudWlBY3Rpb25Nb2RlbC5zZXJ2aWNlVG9Vc2UuaGFuZGxlU3BlY2lmaWNEZW1hbmRzQXN5bmNocm9ub3VzbHkoXG5cdFx0XHR1aUFjdGlvbixcblx0XHRcdHVpQWN0aW9uUmVxdWVzdFxuXHRcdCk7XG5cblx0XHRpZiAoIXJlc3BvbnNlLnNob3VsZFBlcmZvcm1BY3Rpb24gfHwgIXJlc3BvbnNlLnVpQWN0aW9uUmVxdWVzdCkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHR1aUFjdGlvblJlcXVlc3QgPSByZXNwb25zZS51aUFjdGlvblJlcXVlc3Q7XG5cdFx0cmV0dXJuIHVpQWN0aW9uUmVxdWVzdDtcblx0fVxuXG5cdHByaXZhdGUgYXN5bmMgcGVyZm9ybUFjdGlvbihcblx0XHR1aUFjdGlvbjogVWlBY3Rpb24sXG5cdFx0dWlBY3Rpb25SZXF1ZXN0OiBVaUFjdGlvblJlcXVlc3QsXG5cdFx0b3B0aW9ucz86IEV4ZWN1dGVVaUFjdGlvbk9wdGlvbnNcblx0KTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0aWYgKCF1aUFjdGlvblJlcXVlc3QucGFyYW1zIHx8ICh1aUFjdGlvblJlcXVlc3QucGFyYW1zICYmICFPYmplY3Qua2V5cyh1aUFjdGlvblJlcXVlc3QucGFyYW1zKS5sZW5ndGgpKSB7XG5cdFx0XHR1aUFjdGlvblJlcXVlc3QucGFyYW1zID0ge1xuXHRcdFx0XHRtb2RlbDogdGhpcy51aUFjdGlvbk1vZGVsLnNlcnZpY2VUb1VzZS5nZXRNb2RlbCgpLFxuXHRcdFx0fTtcblx0XHR9IGVsc2UgaWYgKHVpQWN0aW9uLnN1Ym1pdCkge1xuXHRcdFx0dWlBY3Rpb25SZXF1ZXN0LnBhcmFtc1snbW9kZWwnXSA9IHRoaXMudWlBY3Rpb25Nb2RlbC5zZXJ2aWNlVG9Vc2UuZ2V0TW9kZWwoKTtcblx0XHR9XG5cblx0XHR0cnkge1xuXHRcdFx0YXdhaXQgdGhpcy51aUFjdGlvbk1vZGVsLnNlcnZpY2VUb1VzZS5wZXJmb3JtVWlBY3Rpb25SZXF1ZXN0KFxuXHRcdFx0XHR1aUFjdGlvblJlcXVlc3QsXG5cdFx0XHRcdG9wdGlvbnM/LndpZGdldElkLFxuXHRcdFx0XHRvcHRpb25zPy5ub2RlSWRcblx0XHRcdCk7XG5cblx0XHRcdGlmICh0aGlzLnVpQWN0aW9uTW9kZWwuZGVzY3JpcHRvcj8uZmVlZGJhY2tUeXBlID09PSBVaUFjdGlvbkZlZWRiYWNrVHlwZS5TbmFja2Jhcikge1xuXHRcdFx0XHR0aGlzLnNob3dTYXZlZFNuYWNrYmFyKHVpQWN0aW9uKTtcblx0XHRcdH1cblx0XHR9IGNhdGNoIChlcnJvcjogYW55KSB7XG5cdFx0XHRjb25zb2xlLmVycm9yKGVycm9yKTtcblx0XHR9XG5cdH1cblxuXHRzaG93U2F2ZWRTbmFja2Jhcih1aUFjdGlvbjogVWlBY3Rpb24pOiB2b2lkIHtcblx0XHR0aGlzLl9zbmFja0Jhci5vcGVuRnJvbUNvbXBvbmVudChTdWNjZXNzU25hY2tCYXJDb21wb25lbnQsIHtcblx0XHRcdGR1cmF0aW9uOiA1ICogMTAwMCxcblx0XHRcdHBhbmVsQ2xhc3M6IFsnYmFja2dyb3VuZENvbG9yLWFjY2VudCddLFxuXHRcdFx0ZGF0YTogdWlBY3Rpb24sXG5cdFx0fSk7XG5cdH1cbn1cbiJdfQ==