@pega/angular-sdk-components 0.24.2 → 0.24.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/esm2022/lib/_components/field/cancel-alert/cancel-alert.component.mjs +1 -3
  2. package/esm2022/lib/_components/field/currency/currency.component.mjs +6 -4
  3. package/esm2022/lib/_components/field/decimal/decimal.component.mjs +4 -3
  4. package/esm2022/lib/_components/field/dropdown/dropdown.component.mjs +3 -8
  5. package/esm2022/lib/_components/field/percentage/percentage.component.mjs +6 -4
  6. package/esm2022/lib/_components/field/radio-buttons/radio-buttons.component.mjs +3 -8
  7. package/esm2022/lib/_components/field/scalar-list/scalar-list.component.mjs +3 -2
  8. package/esm2022/lib/_components/field/text-area/text-area.component.mjs +1 -3
  9. package/esm2022/lib/_components/infra/Containers/flow-container/flow-container.component.mjs +3 -15
  10. package/esm2022/lib/_components/infra/Containers/modal-view-container/modal-view-container.component.mjs +1 -2
  11. package/esm2022/lib/_components/infra/Containers/view-container/view-container.component.mjs +1 -2
  12. package/esm2022/lib/_components/infra/assignment/assignment.component.mjs +3 -9
  13. package/esm2022/lib/_components/infra/dashboard-filter/dashboard-filter.component.mjs +1 -2
  14. package/esm2022/lib/_components/infra/defer-load/defer-load.component.mjs +6 -9
  15. package/esm2022/lib/_components/infra/navbar/navbar.component.mjs +1 -2
  16. package/esm2022/lib/_components/template/case-view/case-view.component.mjs +3 -9
  17. package/esm2022/lib/_components/template/data-reference/data-reference.component.mjs +2 -4
  18. package/esm2022/lib/_components/template/dynamic-tabs/dynamic-tabs.component.mjs +1 -2
  19. package/esm2022/lib/_components/template/field-group-template/field-group-template.component.mjs +5 -15
  20. package/esm2022/lib/_components/template/list-view/list-view.component.mjs +12 -6
  21. package/esm2022/lib/_components/template/list-view/listViewHelpers.mjs +1 -2
  22. package/esm2022/lib/_components/template/repeating-structures/repeating-structures.component.mjs +1 -2
  23. package/esm2022/lib/_components/template/simple-table/simple-table.component.mjs +1 -3
  24. package/esm2022/lib/_components/template/simple-table-manual/simple-table-manual.component.mjs +6 -12
  25. package/esm2022/lib/_components/template/simple-table-select/simple-table-select.component.mjs +3 -5
  26. package/esm2022/lib/_components/widget/attachment/attachment.component.mjs +224 -421
  27. package/esm2022/lib/_components/widget/case-history/case-history.component.mjs +1 -2
  28. package/esm2022/lib/_components/widget/feed-container/feed-container.component.mjs +1 -5
  29. package/esm2022/lib/_components/widget/file-utility/file-utility.component.mjs +1 -5
  30. package/esm2022/lib/_components/widget/quick-create/quick-create.component.mjs +1 -1
  31. package/esm2022/lib/_components/widget/todo/todo.component.mjs +4 -3
  32. package/fesm2022/pega-angular-sdk-components.mjs +272 -539
  33. package/fesm2022/pega-angular-sdk-components.mjs.map +1 -1
  34. package/lib/_components/designSystemExtension/material-case-summary/material-case-summary.component.d.ts +1 -1
  35. package/lib/_components/field/currency/currency.component.d.ts +3 -0
  36. package/lib/_components/field/list-view-action-buttons/list-view-action-buttons.component.d.ts +1 -1
  37. package/lib/_components/field/percentage/percentage.component.d.ts +2 -0
  38. package/lib/_components/infra/Containers/flow-container/flow-container.component.d.ts +1 -1
  39. package/lib/_components/infra/Containers/modal-view-container/modal-view-container.component.d.ts +1 -1
  40. package/lib/_components/infra/action-buttons/action-buttons.component.d.ts +1 -1
  41. package/lib/_components/infra/error-boundary/error-boundary.component.d.ts +1 -1
  42. package/lib/_components/template/list-view/list-view.component.d.ts +8 -2
  43. package/lib/_components/template/simple-table-manual/helpers.d.ts +1 -1
  44. package/lib/_components/template/wss-nav-bar/wss-nav-bar.component.d.ts +1 -1
  45. package/lib/_components/widget/attachment/attachment.component.d.ts +29 -57
  46. package/lib/_components/widget/file-utility/file-utility.component.d.ts +2 -2
  47. package/lib/_components/widget/todo/todo.component.d.ts +4 -3
  48. package/lib/_helpers/common.d.ts +1 -1
  49. package/lib/_helpers/field-group-utils.d.ts +1 -1
  50. package/lib/_helpers/filter-utils.d.ts +1 -1
  51. package/lib/_helpers/formatters/common.d.ts +2 -2
  52. package/package.json +3 -3
@@ -101,22 +101,12 @@ export class FieldGroupTemplateComponent {
101
101
  this.prevRefLength = this.referenceList.length;
102
102
  }
103
103
  addFieldGroupItem() {
104
- if (PCore.getPCoreVersion()?.includes('8.7')) {
105
- this.pConn$.getListActions().insert({ classID: this.contextClass }, this.referenceList.length, this.pageReference);
106
- }
107
- else {
108
- // @ts-ignore - second parameter "pageRef" is optional for insert method
109
- this.pConn$.getListActions().insert({ classID: this.contextClass }, this.referenceList.length);
110
- }
104
+ // @ts-ignore - second parameter "pageRef" is optional for insert method
105
+ this.pConn$.getListActions().insert({ classID: this.contextClass }, this.referenceList.length);
111
106
  }
112
107
  deleteFieldGroupItem(index) {
113
- if (PCore.getPCoreVersion()?.includes('8.7')) {
114
- this.pConn$.getListActions().deleteEntry(index, this.pageReference);
115
- }
116
- else {
117
- // @ts-ignore - second parameter "pageRef" is optional for deleteEntry method
118
- this.pConn$.getListActions().deleteEntry(index);
119
- }
108
+ // @ts-ignore - second parameter "pageRef" is optional for deleteEntry method
109
+ this.pConn$.getListActions().deleteEntry(index);
120
110
  }
121
111
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FieldGroupTemplateComponent, deps: [{ token: i1.AngularPConnectService }, { token: i2.Utils }], target: i0.ɵɵFactoryTarget.Component }); }
122
112
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FieldGroupTemplateComponent, isStandalone: true, selector: "app-field-group-template", inputs: { configProps$: "configProps$", pConn$: "pConn$", formGroup$: "formGroup$" }, usesOnChanges: true, ngImport: i0, template: "<div id=\"field-group\">\n <h3 *ngIf=\"showLabel$\" className=\"label\" style=\"font-weight: bold\">\n {{ label$ }}\n </h3>\n <div *ngIf=\"readonlyMode; else editable\">\n <div *ngIf=\"children && children.length > 0\">\n <div *ngFor=\"let item of children; let i = index\">\n <component-mapper name=\"FieldGroupList\" [props]=\"{ heading: item.name, formGroup$, item }\"></component-mapper>\n </div>\n </div>\n </div>\n <ng-template #editable>\n <div *ngIf=\"children && children.length > 0\">\n <div *ngFor=\"let kid of children; let i = index\">\n <div class=\"header-div\">\n <div style=\"width: 80%\">\n <b>{{ kid.name }}</b>\n </div>\n <div *ngIf=\"allowAddEdit !== false\" style=\"width: 20%; text-align: right\">\n <button id=\"delete-button\" mat-icon-button (click)=\"deleteFieldGroupItem(i)\">\n <img class=\"psdk-utility-card-action-svg-icon\" src=\"{{ menuIconOverride$ }}\" />\n </button>\n </div>\n </div>\n\n <div *ngIf=\"kid.children.getPConnect().getRawMetadata().type.toLowerCase() == 'region'\">\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.children.getPConnect(), formGroup$ }\"></component-mapper>\n </div>\n </div>\n <button *ngIf=\"allowAddEdit !== false\" mat-button color=\"primary\" style=\"font-size: 16px\" (click)=\"addFieldGroupItem()\">+ Add</button>\n </div>\n </ng-template>\n</div>\n", styles: [".psdk-utility-card-action-svg-icon{width:1.4rem}.header-div{display:flex;align-items:center}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CommonModule) }, { 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: "ngmodule", type: i0.forwardRef(() => MatButtonModule) }, { kind: "component", type: i0.forwardRef(() => i4.MatButton), selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i0.forwardRef(() => i4.MatIconButton), selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i0.forwardRef(() => ComponentMapperComponent), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
@@ -131,4 +121,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
131
121
  }], formGroup$: [{
132
122
  type: Input
133
123
  }] } });
134
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtZ3JvdXAtdGVtcGxhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZGstY29tcG9uZW50cy9zcmMvbGliL19jb21wb25lbnRzL3RlbXBsYXRlL2ZpZWxkLWdyb3VwLXRlbXBsYXRlL2ZpZWxkLWdyb3VwLXRlbXBsYXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9maWVsZC1ncm91cC10ZW1wbGF0ZS9maWVsZC1ncm91cC10ZW1wbGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxVQUFVLEVBQXdCLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFM0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRWxGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhEQUE4RCxDQUFDOzs7Ozs7QUF1QnhHLE1BQU0sT0FBTywyQkFBMkI7SUFvQnRDLFlBQ1UsZUFBdUMsRUFDdkMsS0FBWTtRQURaLG9CQUFlLEdBQWYsZUFBZSxDQUF3QjtRQUN2QyxVQUFLLEdBQUwsS0FBSyxDQUFPO1FBakJ0Qix3QkFBbUIsR0FBd0IsRUFBRSxDQUFDO1FBRTlDLGVBQVUsR0FBYSxJQUFJLENBQUM7UUFzRzVCLG9CQUFlLEdBQUcsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDbkMsT0FBTyxHQUFHLE9BQU8sSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUM7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LElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2pHLENBQUM7SUFDSCxDQUFDO0lBRUQsb0JBQW9CLENBQUMsS0FBSztRQUN4QixJQUFJLEtBQUssQ0FBQyxlQUFlLEVBQUUsRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM3QyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3RFLENBQUM7YUFBTSxDQUFDO1lBQ04sNkVBQTZFO1lBQzdFLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xELENBQUM7SUFDSCxDQUFDOytHQXhJVSwyQkFBMkI7bUdBQTNCLDJCQUEyQiwrTEM5QnhDLG0rQ0FpQ0EsMktETFksWUFBWSw4VEFBRSxlQUFlLHdZQUFtQix3QkFBd0I7OzRGQUV2RSwyQkFBMkI7a0JBUHZDLFNBQVM7K0JBQ0UsMEJBQTBCLGNBR3hCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxlQUFlLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHdCQUF3QixDQUFDLENBQUM7K0dBRzNFLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIGZvcndhcmRSZWYsIE9uRGVzdHJveSwgT25DaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IEFuZ3VsYXJQQ29ubmVjdERhdGEsIEFuZ3VsYXJQQ29ubmVjdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9fYnJpZGdlL2FuZ3VsYXItcGNvbm5lY3QnO1xuaW1wb3J0IHsgYnVpbGRWaWV3LCBnZXRSZWZlcmVuY2VMaXN0IH0gZnJvbSAnLi4vLi4vLi4vX2hlbHBlcnMvZmllbGQtZ3JvdXAtdXRpbHMnO1xuaW1wb3J0IHsgVXRpbHMgfSBmcm9tICcuLi8uLi8uLi9faGVscGVycy91dGlscyc7XG5pbXBvcnQgeyBDb21wb25lbnRNYXBwZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9fYnJpZGdlL2NvbXBvbmVudC1tYXBwZXIvY29tcG9uZW50LW1hcHBlci5jb21wb25lbnQnO1xuXG5pbnRlcmZhY2UgRmllbGRHcm91cFRlbXBsYXRlUHJvcHMge1xuICAvLyBJZiBhbnksIGVudGVyIGFkZGl0aW9uYWwgcHJvcHMgdGhhdCBvbmx5IGV4aXN0IG9uIHRoaXMgY29tcG9uZW50XG4gIGxhYmVsPzogc3RyaW5nO1xuICBzaG93TGFiZWw/OiBib29sZWFuO1xuICByZWZlcmVuY2VMaXN0PzogYW55W107XG4gIGNvbnRleHRDbGFzczogc3RyaW5nO1xuICByZW5kZXJNb2RlPzogc3RyaW5nO1xuICBoZWFkaW5nPzogc3RyaW5nO1xuICBsb29rRm9yQ2hpbGRJbkNvbmZpZz86IGJvb2xlYW47XG4gIGRpc3BsYXlNb2RlPzogc3RyaW5nO1xuICBmaWVsZEhlYWRlcj86IHN0cmluZztcbiAgYWxsb3dUYWJsZUVkaXQ6IGJvb2xlYW47XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1maWVsZC1ncm91cC10ZW1wbGF0ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9maWVsZC1ncm91cC10ZW1wbGF0ZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZpZWxkLWdyb3VwLXRlbXBsYXRlLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE1hdEJ1dHRvbk1vZHVsZSwgZm9yd2FyZFJlZigoKSA9PiBDb21wb25lbnRNYXBwZXJDb21wb25lbnQpXVxufSlcbmV4cG9ydCBjbGFzcyBGaWVsZEdyb3VwVGVtcGxhdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgY29uZmlnUHJvcHMkOiBGaWVsZEdyb3VwVGVtcGxhdGVQcm9wcztcbiAgQElucHV0KCkgcENvbm4kOiB0eXBlb2YgUENvbm5lY3Q7XG4gIEBJbnB1dCgpIGZvcm1Hcm91cCQ6IEZvcm1Hcm91cDtcblxuICBhbmd1bGFyUENvbm5lY3REYXRhOiBBbmd1bGFyUENvbm5lY3REYXRhID0ge307XG4gIGluaGVyaXRlZFByb3BzJDogb2JqZWN0O1xuICBzaG93TGFiZWwkPzogYm9vbGVhbiA9IHRydWU7XG4gIGxhYmVsJD86IHN0cmluZztcbiAgcmVhZG9ubHlNb2RlOiBib29sZWFuO1xuICBjb250ZXh0Q2xhc3M6IGFueTtcbiAgcmVmZXJlbmNlTGlzdDogYW55O1xuICBwYWdlUmVmZXJlbmNlOiBhbnk7XG4gIGhlYWRpbmc6IGFueTtcbiAgY2hpbGRyZW46IGFueTtcbiAgbWVudUljb25PdmVycmlkZSQ6IGFueTtcbiAgcHJldlJlZkxlbmd0aDogbnVtYmVyO1xuICBhbGxvd0FkZEVkaXQ6IGJvb2xlYW47XG4gIGZpZWxkSGVhZGVyOiBhbnk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhbmd1bGFyUENvbm5lY3Q6IEFuZ3VsYXJQQ29ubmVjdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB1dGlsczogVXRpbHNcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIEZpcnN0IHRoaW5nIGluIGluaXRpYWxpemF0aW9uIGlzIHJlZ2lzdGVyaW5nIGFuZCBzdWJzY3JpYmluZyB0byB0aGUgQW5ndWxhclBDb25uZWN0IHNlcnZpY2VcbiAgICB0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEgPSB0aGlzLmFuZ3VsYXJQQ29ubmVjdC5yZWdpc3RlckFuZFN1YnNjcmliZUNvbXBvbmVudCh0aGlzLCB0aGlzLm9uU3RhdGVDaGFuZ2UpO1xuICAgIHRoaXMudXBkYXRlU2VsZigpO1xuXG4gICAgY29uc3QgbWVudUljb25PdmVycmlkZSQgPSAndHJhc2gnO1xuICAgIGlmIChtZW51SWNvbk92ZXJyaWRlJCkge1xuICAgICAgdGhpcy5tZW51SWNvbk92ZXJyaWRlJCA9IHRoaXMudXRpbHMuZ2V0SW1hZ2VTcmMobWVudUljb25PdmVycmlkZSQsIHRoaXMudXRpbHMuZ2V0U0RLU3RhdGljQ29udGVudFVybCgpKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hbmd1bGFyUENvbm5lY3REYXRhLnVuc3Vic2NyaWJlRm4pIHtcbiAgICAgIHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YS51bnN1YnNjcmliZUZuKCk7XG4gICAgfVxuICB9XG5cbiAgb25TdGF0ZUNoYW5nZSgpIHtcbiAgICAvLyBTaG91bGQgYWx3YXlzIGNoZWNrIHRoZSBicmlkZ2UgdG8gc2VlIGlmIHRoZSBjb21wb25lbnQgc2hvdWxkXG4gICAgLy8gdXBkYXRlIGl0c2VsZiAocmUtcmVuZGVyKVxuICAgIGNvbnN0IGJVcGRhdGVTZWxmID0gdGhpcy5hbmd1bGFyUENvbm5lY3Quc2hvdWxkQ29tcG9uZW50VXBkYXRlKHRoaXMpO1xuICAgIC8vIE9OTFkgY2FsbCB1cGRhdGVTZWxmIHdoZW4gdGhlIGNvbXBvbmVudCBzaG91bGQgdXBkYXRlXG4gICAgaWYgKGJVcGRhdGVTZWxmKSB7XG4gICAgICB0aGlzLnVwZGF0ZVNlbGYoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXMgJiYgY2hhbmdlcy5jb25maWdQcm9wcyQpIHtcbiAgICAgIGNvbnN0IHByb3BzID0gY2hhbmdlcy5jb25maWdQcm9wcyQ7XG4gICAgICBpZiAocHJvcHMuY3VycmVudFZhbHVlICE9PSBwcm9wcy5wcmV2aW91c1ZhbHVlKSB7XG4gICAgICAgIHRoaXMuY29uZmlnUHJvcHMkID0gcHJvcHMuY3VycmVudFZhbHVlO1xuICAgICAgICBpZiAoY2hhbmdlcz8ucENvbm4kPy5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgICB0aGlzLnBDb25uJCA9IGNoYW5nZXM/LnBDb25uJD8uY3VycmVudFZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudXBkYXRlU2VsZigpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZVNlbGYoKSB7XG4gICAgdGhpcy5pbmhlcml0ZWRQcm9wcyQgPSB0aGlzLnBDb25uJC5nZXRJbmhlcml0ZWRQcm9wcygpO1xuICAgIHRoaXMubGFiZWwkID0gdGhpcy5jb25maWdQcm9wcyQubGFiZWw7XG4gICAgdGhpcy5zaG93TGFiZWwkID0gdGhpcy5jb25maWdQcm9wcyQuc2hvd0xhYmVsO1xuICAgIC8vIGxhYmVsICYgc2hvd0xhYmVsIHdpdGhpbiBpbmhlcml0ZWRQcm9wcyB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgY29uZmlnUHJvcHNcbiAgICB0aGlzLmxhYmVsJCA9ICh0aGlzLmluaGVyaXRlZFByb3BzJCBhcyBhbnkpLmxhYmVsIHx8IHRoaXMubGFiZWwkO1xuICAgIHRoaXMuc2hvd0xhYmVsJCA9ICh0aGlzLmluaGVyaXRlZFByb3BzJCBhcyBhbnkpLnNob3dMYWJlbCB8fCB0aGlzLnNob3dMYWJlbCQ7XG5cbiAgICB0aGlzLmFsbG93QWRkRWRpdCA9IHRoaXMuY29uZmlnUHJvcHMkLmFsbG93VGFibGVFZGl0O1xuXG4gICAgY29uc3QgcmVuZGVyTW9kZSA9IHRoaXMuY29uZmlnUHJvcHMkLnJlbmRlck1vZGU7XG4gICAgY29uc3QgZGlzcGxheU1vZGUgPSB0aGlzLmNvbmZpZ1Byb3BzJC5kaXNwbGF5TW9kZTtcbiAgICB0aGlzLnJlYWRvbmx5TW9kZSA9IHJlbmRlck1vZGUgPT09ICdSZWFkT25seScgfHwgZGlzcGxheU1vZGUgPT09ICdMQUJFTFNfTEVGVCc7XG4gICAgdGhpcy5jb250ZXh0Q2xhc3MgPSB0aGlzLmNvbmZpZ1Byb3BzJC5jb250ZXh0Q2xhc3M7XG4gICAgY29uc3QgbG9va0ZvckNoaWxkSW5Db25maWcgPSB0aGlzLmNvbmZpZ1Byb3BzJC5sb29rRm9yQ2hpbGRJbkNvbmZpZztcbiAgICB0aGlzLmhlYWRpbmcgPSB0aGlzLmNvbmZpZ1Byb3BzJC5oZWFkaW5nID8/ICdSb3cnO1xuICAgIHRoaXMuZmllbGRIZWFkZXIgPSB0aGlzLmNvbmZpZ1Byb3BzJC5maWVsZEhlYWRlcjtcbiAgICBjb25zdCByZXNvbHZlZExpc3QgPSBnZXRSZWZlcmVuY2VMaXN0KHRoaXMucENvbm4kKTtcbiAgICB0aGlzLnBhZ2VSZWZlcmVuY2UgPSBgJHt0aGlzLnBDb25uJC5nZXRQYWdlUmVmZXJlbmNlKCl9JHtyZXNvbHZlZExpc3R9YDtcbiAgICB0aGlzLnBDb25uJC5zZXRSZWZlcmVuY2VMaXN0KHJlc29sdmVkTGlzdCk7XG4gICAgaWYgKHRoaXMucmVhZG9ubHlNb2RlKSB7XG4gICAgICB0aGlzLnBDb25uJC5zZXRJbmhlcml0ZWRQcm9wKCdkaXNwbGF5TW9kZScsICdMQUJFTFNfTEVGVCcpO1xuICAgIH1cbiAgICB0aGlzLnJlZmVyZW5jZUxpc3QgPSB0aGlzLmNvbmZpZ1Byb3BzJC5yZWZlcmVuY2VMaXN0O1xuICAgIGlmICh0aGlzLnByZXZSZWZMZW5ndGggIT0gdGhpcy5yZWZlcmVuY2VMaXN0Lmxlbmd0aCkge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHNvbmFyanMvbm8tY29sbGFwc2libGUtaWZcbiAgICAgIGlmICghdGhpcy5yZWFkb25seU1vZGUpIHtcbiAgICAgICAgaWYgKHRoaXMucmVmZXJlbmNlTGlzdD8ubGVuZ3RoID09PSAwICYmIHRoaXMuYWxsb3dBZGRFZGl0ICE9PSBmYWxzZSkge1xuICAgICAgICAgIHRoaXMuYWRkRmllbGRHcm91cEl0ZW0oKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgY29uc3QgY2hpbGRyZW46IGFueSA9IFtdO1xuICAgICAgdGhpcy5yZWZlcmVuY2VMaXN0Py5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICBjaGlsZHJlbi5wdXNoKHtcbiAgICAgICAgICBpZDogaW5kZXgsXG4gICAgICAgICAgbmFtZTogdGhpcy5maWVsZEhlYWRlciA9PT0gJ3Byb3BlcnR5UmVmJyA/IHRoaXMuZ2V0RHluYW1pY0hlYWRlcihpdGVtLCBpbmRleCkgOiB0aGlzLmdldFN0YXRpY0hlYWRlcih0aGlzLmhlYWRpbmcsIGluZGV4KSxcbiAgICAgICAgICBjaGlsZHJlbjogYnVpbGRWaWV3KHRoaXMucENvbm4kLCBpbmRleCwgbG9va0ZvckNoaWxkSW5Db25maWcpXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgICB0aGlzLmNoaWxkcmVuID0gY2hpbGRyZW47XG4gICAgfVxuICAgIHRoaXMucHJldlJlZkxlbmd0aCA9IHRoaXMucmVmZXJlbmNlTGlzdC5sZW5ndGg7XG4gIH1cblxuICBnZXRTdGF0aWNIZWFkZXIgPSAoaGVhZGluZywgaW5kZXgpID0+IHtcbiAgICByZXR1cm4gYCR7aGVhZGluZ30gJHtpbmRleCArIDF9YDtcbiAgfTtcblxuICBnZXREeW5hbWljSGVhZGVyID0gKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgaWYgKHRoaXMuZmllbGRIZWFkZXIgPT09ICdwcm9wZXJ0eVJlZicgJiYgdGhpcy5oZWFkaW5nICYmIGl0ZW1bdGhpcy5oZWFkaW5nLnN1YnN0cmluZygxKV0pIHtcbiAgICAgIHJldHVybiBpdGVtW3RoaXMuaGVhZGluZy5zdWJzdHJpbmcoMSldO1xuICAgIH1cbiAgICByZXR1cm4gYFJvdyAke2luZGV4ICsgMX1gO1xuICB9O1xuXG4gIGFkZEZpZWxkR3JvdXBJdGVtKCkge1xuICAgIGlmIChQQ29yZS5nZXRQQ29yZVZlcnNpb24oKT8uaW5jbHVkZXMoJzguNycpKSB7XG4gICAgICB0aGlzLnBDb25uJC5nZXRMaXN0QWN0aW9ucygpLmluc2VydCh7IGNsYXNzSUQ6IHRoaXMuY29udGV4dENsYXNzIH0sIHRoaXMucmVmZXJlbmNlTGlzdC5sZW5ndGgsIHRoaXMucGFnZVJlZmVyZW5jZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEB0cy1pZ25vcmUgLSBzZWNvbmQgcGFyYW1ldGVyIFwicGFnZVJlZlwiIGlzIG9wdGlvbmFsIGZvciBpbnNlcnQgbWV0aG9kXG4gICAgICB0aGlzLnBDb25uJC5nZXRMaXN0QWN0aW9ucygpLmluc2VydCh7IGNsYXNzSUQ6IHRoaXMuY29udGV4dENsYXNzIH0sIHRoaXMucmVmZXJlbmNlTGlzdC5sZW5ndGgpO1xuICAgIH1cbiAgfVxuXG4gIGRlbGV0ZUZpZWxkR3JvdXBJdGVtKGluZGV4KSB7XG4gICAgaWYgKFBDb3JlLmdldFBDb3JlVmVyc2lvbigpPy5pbmNsdWRlcygnOC43JykpIHtcbiAgICAgIHRoaXMucENvbm4kLmdldExpc3RBY3Rpb25zKCkuZGVsZXRlRW50cnkoaW5kZXgsIHRoaXMucGFnZVJlZmVyZW5jZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEB0cy1pZ25vcmUgLSBzZWNvbmQgcGFyYW1ldGVyIFwicGFnZVJlZlwiIGlzIG9wdGlvbmFsIGZvciBkZWxldGVFbnRyeSBtZXRob2RcbiAgICAgIHRoaXMucENvbm4kLmdldExpc3RBY3Rpb25zKCkuZGVsZXRlRW50cnkoaW5kZXgpO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBpZD1cImZpZWxkLWdyb3VwXCI+XG4gIDxoMyAqbmdJZj1cInNob3dMYWJlbCRcIiBjbGFzc05hbWU9XCJsYWJlbFwiIHN0eWxlPVwiZm9udC13ZWlnaHQ6IGJvbGRcIj5cbiAgICB7eyBsYWJlbCQgfX1cbiAgPC9oMz5cbiAgPGRpdiAqbmdJZj1cInJlYWRvbmx5TW9kZTsgZWxzZSBlZGl0YWJsZVwiPlxuICAgIDxkaXYgKm5nSWY9XCJjaGlsZHJlbiAmJiBjaGlsZHJlbi5sZW5ndGggPiAwXCI+XG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNoaWxkcmVuOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgIDxjb21wb25lbnQtbWFwcGVyIG5hbWU9XCJGaWVsZEdyb3VwTGlzdFwiIFtwcm9wc109XCJ7IGhlYWRpbmc6IGl0ZW0ubmFtZSwgZm9ybUdyb3VwJCwgaXRlbSB9XCI+PC9jb21wb25lbnQtbWFwcGVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8bmctdGVtcGxhdGUgI2VkaXRhYmxlPlxuICAgIDxkaXYgKm5nSWY9XCJjaGlsZHJlbiAmJiBjaGlsZHJlbi5sZW5ndGggPiAwXCI+XG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBraWQgb2YgY2hpbGRyZW47IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1kaXZcIj5cbiAgICAgICAgICA8ZGl2IHN0eWxlPVwid2lkdGg6IDgwJVwiPlxuICAgICAgICAgICAgPGI+e3sga2lkLm5hbWUgfX08L2I+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cImFsbG93QWRkRWRpdCAhPT0gZmFsc2VcIiBzdHlsZT1cIndpZHRoOiAyMCU7IHRleHQtYWxpZ246IHJpZ2h0XCI+XG4gICAgICAgICAgICA8YnV0dG9uIGlkPVwiZGVsZXRlLWJ1dHRvblwiIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiZGVsZXRlRmllbGRHcm91cEl0ZW0oaSlcIj5cbiAgICAgICAgICAgICAgPGltZyBjbGFzcz1cInBzZGstdXRpbGl0eS1jYXJkLWFjdGlvbi1zdmctaWNvblwiIHNyYz1cInt7IG1lbnVJY29uT3ZlcnJpZGUkIH19XCIgLz5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2ICpuZ0lmPVwia2lkLmNoaWxkcmVuLmdldFBDb25uZWN0KCkuZ2V0UmF3TWV0YWRhdGEoKS50eXBlLnRvTG93ZXJDYXNlKCkgPT0gJ3JlZ2lvbidcIj5cbiAgICAgICAgICA8Y29tcG9uZW50LW1hcHBlciBuYW1lPVwiUmVnaW9uXCIgW3Byb3BzXT1cInsgcENvbm4kOiBraWQuY2hpbGRyZW4uZ2V0UENvbm5lY3QoKSwgZm9ybUdyb3VwJCB9XCI+PC9jb21wb25lbnQtbWFwcGVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGJ1dHRvbiAqbmdJZj1cImFsbG93QWRkRWRpdCAhPT0gZmFsc2VcIiBtYXQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIHN0eWxlPVwiZm9udC1zaXplOiAxNnB4XCIgKGNsaWNrKT1cImFkZEZpZWxkR3JvdXBJdGVtKClcIj4rIEFkZDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuPC9kaXY+XG4iXX0=
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtZ3JvdXAtdGVtcGxhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZGstY29tcG9uZW50cy9zcmMvbGliL19jb21wb25lbnRzL3RlbXBsYXRlL2ZpZWxkLWdyb3VwLXRlbXBsYXRlL2ZpZWxkLWdyb3VwLXRlbXBsYXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9maWVsZC1ncm91cC10ZW1wbGF0ZS9maWVsZC1ncm91cC10ZW1wbGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxVQUFVLEVBQXdCLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFM0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRWxGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhEQUE4RCxDQUFDOzs7Ozs7QUF1QnhHLE1BQU0sT0FBTywyQkFBMkI7SUFvQnRDLFlBQ1UsZUFBdUMsRUFDdkMsS0FBWTtRQURaLG9CQUFlLEdBQWYsZUFBZSxDQUF3QjtRQUN2QyxVQUFLLEdBQUwsS0FBSyxDQUFPO1FBakJ0Qix3QkFBbUIsR0FBd0IsRUFBRSxDQUFDO1FBRTlDLGVBQVUsR0FBYSxJQUFJLENBQUM7UUFzRzVCLG9CQUFlLEdBQUcsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDbkMsT0FBTyxHQUFHLE9BQU8sSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUM7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O0lBQ2xELENBQUM7K0dBaElVLDJCQUEyQjttR0FBM0IsMkJBQTJCLCtMQzlCeEMsbStDQWlDQSwyS0RMWSxZQUFZLDhUQUFFLGVBQWUsd1lBQW1CLHdCQUF3Qjs7NEZBRXZFLDJCQUEyQjtrQkFQdkMsU0FBUzsrQkFDRSwwQkFBMEIsY0FHeEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGVBQWUsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsd0JBQXdCLENBQUMsQ0FBQzsrR0FHM0UsWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgZm9yd2FyZFJlZiwgT25EZXN0cm95LCBPbkNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgQW5ndWxhclBDb25uZWN0RGF0YSwgQW5ndWxhclBDb25uZWN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19icmlkZ2UvYW5ndWxhci1wY29ubmVjdCc7XG5pbXBvcnQgeyBidWlsZFZpZXcsIGdldFJlZmVyZW5jZUxpc3QgfSBmcm9tICcuLi8uLi8uLi9faGVscGVycy9maWVsZC1ncm91cC11dGlscyc7XG5pbXBvcnQgeyBVdGlscyB9IGZyb20gJy4uLy4uLy4uL19oZWxwZXJzL3V0aWxzJztcbmltcG9ydCB7IENvbXBvbmVudE1hcHBlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL19icmlkZ2UvY29tcG9uZW50LW1hcHBlci9jb21wb25lbnQtbWFwcGVyLmNvbXBvbmVudCc7XG5cbmludGVyZmFjZSBGaWVsZEdyb3VwVGVtcGxhdGVQcm9wcyB7XG4gIC8vIElmIGFueSwgZW50ZXIgYWRkaXRpb25hbCBwcm9wcyB0aGF0IG9ubHkgZXhpc3Qgb24gdGhpcyBjb21wb25lbnRcbiAgbGFiZWw/OiBzdHJpbmc7XG4gIHNob3dMYWJlbD86IGJvb2xlYW47XG4gIHJlZmVyZW5jZUxpc3Q/OiBhbnlbXTtcbiAgY29udGV4dENsYXNzOiBzdHJpbmc7XG4gIHJlbmRlck1vZGU/OiBzdHJpbmc7XG4gIGhlYWRpbmc/OiBzdHJpbmc7XG4gIGxvb2tGb3JDaGlsZEluQ29uZmlnPzogYm9vbGVhbjtcbiAgZGlzcGxheU1vZGU/OiBzdHJpbmc7XG4gIGZpZWxkSGVhZGVyPzogc3RyaW5nO1xuICBhbGxvd1RhYmxlRWRpdDogYm9vbGVhbjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWZpZWxkLWdyb3VwLXRlbXBsYXRlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpZWxkLWdyb3VwLXRlbXBsYXRlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmllbGQtZ3JvdXAtdGVtcGxhdGUuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTWF0QnV0dG9uTW9kdWxlLCBmb3J3YXJkUmVmKCgpID0+IENvbXBvbmVudE1hcHBlckNvbXBvbmVudCldXG59KVxuZXhwb3J0IGNsYXNzIEZpZWxkR3JvdXBUZW1wbGF0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBjb25maWdQcm9wcyQ6IEZpZWxkR3JvdXBUZW1wbGF0ZVByb3BzO1xuICBASW5wdXQoKSBwQ29ubiQ6IHR5cGVvZiBQQ29ubmVjdDtcbiAgQElucHV0KCkgZm9ybUdyb3VwJDogRm9ybUdyb3VwO1xuXG4gIGFuZ3VsYXJQQ29ubmVjdERhdGE6IEFuZ3VsYXJQQ29ubmVjdERhdGEgPSB7fTtcbiAgaW5oZXJpdGVkUHJvcHMkOiBvYmplY3Q7XG4gIHNob3dMYWJlbCQ/OiBib29sZWFuID0gdHJ1ZTtcbiAgbGFiZWwkPzogc3RyaW5nO1xuICByZWFkb25seU1vZGU6IGJvb2xlYW47XG4gIGNvbnRleHRDbGFzczogYW55O1xuICByZWZlcmVuY2VMaXN0OiBhbnk7XG4gIHBhZ2VSZWZlcmVuY2U6IGFueTtcbiAgaGVhZGluZzogYW55O1xuICBjaGlsZHJlbjogYW55O1xuICBtZW51SWNvbk92ZXJyaWRlJDogYW55O1xuICBwcmV2UmVmTGVuZ3RoOiBudW1iZXI7XG4gIGFsbG93QWRkRWRpdDogYm9vbGVhbjtcbiAgZmllbGRIZWFkZXI6IGFueTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGFuZ3VsYXJQQ29ubmVjdDogQW5ndWxhclBDb25uZWN0U2VydmljZSxcbiAgICBwcml2YXRlIHV0aWxzOiBVdGlsc1xuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gRmlyc3QgdGhpbmcgaW4gaW5pdGlhbGl6YXRpb24gaXMgcmVnaXN0ZXJpbmcgYW5kIHN1YnNjcmliaW5nIHRvIHRoZSBBbmd1bGFyUENvbm5lY3Qgc2VydmljZVxuICAgIHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YSA9IHRoaXMuYW5ndWxhclBDb25uZWN0LnJlZ2lzdGVyQW5kU3Vic2NyaWJlQ29tcG9uZW50KHRoaXMsIHRoaXMub25TdGF0ZUNoYW5nZSk7XG4gICAgdGhpcy51cGRhdGVTZWxmKCk7XG5cbiAgICBjb25zdCBtZW51SWNvbk92ZXJyaWRlJCA9ICd0cmFzaCc7XG4gICAgaWYgKG1lbnVJY29uT3ZlcnJpZGUkKSB7XG4gICAgICB0aGlzLm1lbnVJY29uT3ZlcnJpZGUkID0gdGhpcy51dGlscy5nZXRJbWFnZVNyYyhtZW51SWNvbk92ZXJyaWRlJCwgdGhpcy51dGlscy5nZXRTREtTdGF0aWNDb250ZW50VXJsKCkpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEudW5zdWJzY3JpYmVGbikge1xuICAgICAgdGhpcy5hbmd1bGFyUENvbm5lY3REYXRhLnVuc3Vic2NyaWJlRm4oKTtcbiAgICB9XG4gIH1cblxuICBvblN0YXRlQ2hhbmdlKCkge1xuICAgIC8vIFNob3VsZCBhbHdheXMgY2hlY2sgdGhlIGJyaWRnZSB0byBzZWUgaWYgdGhlIGNvbXBvbmVudCBzaG91bGRcbiAgICAvLyB1cGRhdGUgaXRzZWxmIChyZS1yZW5kZXIpXG4gICAgY29uc3QgYlVwZGF0ZVNlbGYgPSB0aGlzLmFuZ3VsYXJQQ29ubmVjdC5zaG91bGRDb21wb25lbnRVcGRhdGUodGhpcyk7XG4gICAgLy8gT05MWSBjYWxsIHVwZGF0ZVNlbGYgd2hlbiB0aGUgY29tcG9uZW50IHNob3VsZCB1cGRhdGVcbiAgICBpZiAoYlVwZGF0ZVNlbGYpIHtcbiAgICAgIHRoaXMudXBkYXRlU2VsZigpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlcyAmJiBjaGFuZ2VzLmNvbmZpZ1Byb3BzJCkge1xuICAgICAgY29uc3QgcHJvcHMgPSBjaGFuZ2VzLmNvbmZpZ1Byb3BzJDtcbiAgICAgIGlmIChwcm9wcy5jdXJyZW50VmFsdWUgIT09IHByb3BzLnByZXZpb3VzVmFsdWUpIHtcbiAgICAgICAgdGhpcy5jb25maWdQcm9wcyQgPSBwcm9wcy5jdXJyZW50VmFsdWU7XG4gICAgICAgIGlmIChjaGFuZ2VzPy5wQ29ubiQ/LmN1cnJlbnRWYWx1ZSkge1xuICAgICAgICAgIHRoaXMucENvbm4kID0gY2hhbmdlcz8ucENvbm4kPy5jdXJyZW50VmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy51cGRhdGVTZWxmKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlU2VsZigpIHtcbiAgICB0aGlzLmluaGVyaXRlZFByb3BzJCA9IHRoaXMucENvbm4kLmdldEluaGVyaXRlZFByb3BzKCk7XG4gICAgdGhpcy5sYWJlbCQgPSB0aGlzLmNvbmZpZ1Byb3BzJC5sYWJlbDtcbiAgICB0aGlzLnNob3dMYWJlbCQgPSB0aGlzLmNvbmZpZ1Byb3BzJC5zaG93TGFiZWw7XG4gICAgLy8gbGFiZWwgJiBzaG93TGFiZWwgd2l0aGluIGluaGVyaXRlZFByb3BzIHRha2VzIHByZWNlZGVuY2Ugb3ZlciBjb25maWdQcm9wc1xuICAgIHRoaXMubGFiZWwkID0gKHRoaXMuaW5oZXJpdGVkUHJvcHMkIGFzIGFueSkubGFiZWwgfHwgdGhpcy5sYWJlbCQ7XG4gICAgdGhpcy5zaG93TGFiZWwkID0gKHRoaXMuaW5oZXJpdGVkUHJvcHMkIGFzIGFueSkuc2hvd0xhYmVsIHx8IHRoaXMuc2hvd0xhYmVsJDtcblxuICAgIHRoaXMuYWxsb3dBZGRFZGl0ID0gdGhpcy5jb25maWdQcm9wcyQuYWxsb3dUYWJsZUVkaXQ7XG5cbiAgICBjb25zdCByZW5kZXJNb2RlID0gdGhpcy5jb25maWdQcm9wcyQucmVuZGVyTW9kZTtcbiAgICBjb25zdCBkaXNwbGF5TW9kZSA9IHRoaXMuY29uZmlnUHJvcHMkLmRpc3BsYXlNb2RlO1xuICAgIHRoaXMucmVhZG9ubHlNb2RlID0gcmVuZGVyTW9kZSA9PT0gJ1JlYWRPbmx5JyB8fCBkaXNwbGF5TW9kZSA9PT0gJ0xBQkVMU19MRUZUJztcbiAgICB0aGlzLmNvbnRleHRDbGFzcyA9IHRoaXMuY29uZmlnUHJvcHMkLmNvbnRleHRDbGFzcztcbiAgICBjb25zdCBsb29rRm9yQ2hpbGRJbkNvbmZpZyA9IHRoaXMuY29uZmlnUHJvcHMkLmxvb2tGb3JDaGlsZEluQ29uZmlnO1xuICAgIHRoaXMuaGVhZGluZyA9IHRoaXMuY29uZmlnUHJvcHMkLmhlYWRpbmcgPz8gJ1Jvdyc7XG4gICAgdGhpcy5maWVsZEhlYWRlciA9IHRoaXMuY29uZmlnUHJvcHMkLmZpZWxkSGVhZGVyO1xuICAgIGNvbnN0IHJlc29sdmVkTGlzdCA9IGdldFJlZmVyZW5jZUxpc3QodGhpcy5wQ29ubiQpO1xuICAgIHRoaXMucGFnZVJlZmVyZW5jZSA9IGAke3RoaXMucENvbm4kLmdldFBhZ2VSZWZlcmVuY2UoKX0ke3Jlc29sdmVkTGlzdH1gO1xuICAgIHRoaXMucENvbm4kLnNldFJlZmVyZW5jZUxpc3QocmVzb2x2ZWRMaXN0KTtcbiAgICBpZiAodGhpcy5yZWFkb25seU1vZGUpIHtcbiAgICAgIHRoaXMucENvbm4kLnNldEluaGVyaXRlZFByb3AoJ2Rpc3BsYXlNb2RlJywgJ0xBQkVMU19MRUZUJyk7XG4gICAgfVxuICAgIHRoaXMucmVmZXJlbmNlTGlzdCA9IHRoaXMuY29uZmlnUHJvcHMkLnJlZmVyZW5jZUxpc3Q7XG4gICAgaWYgKHRoaXMucHJldlJlZkxlbmd0aCAhPSB0aGlzLnJlZmVyZW5jZUxpc3QubGVuZ3RoKSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc29uYXJqcy9uby1jb2xsYXBzaWJsZS1pZlxuICAgICAgaWYgKCF0aGlzLnJlYWRvbmx5TW9kZSkge1xuICAgICAgICBpZiAodGhpcy5yZWZlcmVuY2VMaXN0Py5sZW5ndGggPT09IDAgJiYgdGhpcy5hbGxvd0FkZEVkaXQgIT09IGZhbHNlKSB7XG4gICAgICAgICAgdGhpcy5hZGRGaWVsZEdyb3VwSXRlbSgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBjb25zdCBjaGlsZHJlbjogYW55ID0gW107XG4gICAgICB0aGlzLnJlZmVyZW5jZUxpc3Q/LmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgIGNoaWxkcmVuLnB1c2goe1xuICAgICAgICAgIGlkOiBpbmRleCxcbiAgICAgICAgICBuYW1lOiB0aGlzLmZpZWxkSGVhZGVyID09PSAncHJvcGVydHlSZWYnID8gdGhpcy5nZXREeW5hbWljSGVhZGVyKGl0ZW0sIGluZGV4KSA6IHRoaXMuZ2V0U3RhdGljSGVhZGVyKHRoaXMuaGVhZGluZywgaW5kZXgpLFxuICAgICAgICAgIGNoaWxkcmVuOiBidWlsZFZpZXcodGhpcy5wQ29ubiQsIGluZGV4LCBsb29rRm9yQ2hpbGRJbkNvbmZpZylcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMuY2hpbGRyZW4gPSBjaGlsZHJlbjtcbiAgICB9XG4gICAgdGhpcy5wcmV2UmVmTGVuZ3RoID0gdGhpcy5yZWZlcmVuY2VMaXN0Lmxlbmd0aDtcbiAgfVxuXG4gIGdldFN0YXRpY0hlYWRlciA9IChoZWFkaW5nLCBpbmRleCkgPT4ge1xuICAgIHJldHVybiBgJHtoZWFkaW5nfSAke2luZGV4ICsgMX1gO1xuICB9O1xuXG4gIGdldER5bmFtaWNIZWFkZXIgPSAoaXRlbSwgaW5kZXgpID0+IHtcbiAgICBpZiAodGhpcy5maWVsZEhlYWRlciA9PT0gJ3Byb3BlcnR5UmVmJyAmJiB0aGlzLmhlYWRpbmcgJiYgaXRlbVt0aGlzLmhlYWRpbmcuc3Vic3RyaW5nKDEpXSkge1xuICAgICAgcmV0dXJuIGl0ZW1bdGhpcy5oZWFkaW5nLnN1YnN0cmluZygxKV07XG4gICAgfVxuICAgIHJldHVybiBgUm93ICR7aW5kZXggKyAxfWA7XG4gIH07XG5cbiAgYWRkRmllbGRHcm91cEl0ZW0oKSB7XG4gICAgLy8gQHRzLWlnbm9yZSAtIHNlY29uZCBwYXJhbWV0ZXIgXCJwYWdlUmVmXCIgaXMgb3B0aW9uYWwgZm9yIGluc2VydCBtZXRob2RcbiAgICB0aGlzLnBDb25uJC5nZXRMaXN0QWN0aW9ucygpLmluc2VydCh7IGNsYXNzSUQ6IHRoaXMuY29udGV4dENsYXNzIH0sIHRoaXMucmVmZXJlbmNlTGlzdC5sZW5ndGgpO1xuICB9XG5cbiAgZGVsZXRlRmllbGRHcm91cEl0ZW0oaW5kZXgpIHtcbiAgICAvLyBAdHMtaWdub3JlIC0gc2Vjb25kIHBhcmFtZXRlciBcInBhZ2VSZWZcIiBpcyBvcHRpb25hbCBmb3IgZGVsZXRlRW50cnkgbWV0aG9kXG4gICAgdGhpcy5wQ29ubiQuZ2V0TGlzdEFjdGlvbnMoKS5kZWxldGVFbnRyeShpbmRleCk7XG4gIH1cbn1cbiIsIjxkaXYgaWQ9XCJmaWVsZC1ncm91cFwiPlxuICA8aDMgKm5nSWY9XCJzaG93TGFiZWwkXCIgY2xhc3NOYW1lPVwibGFiZWxcIiBzdHlsZT1cImZvbnQtd2VpZ2h0OiBib2xkXCI+XG4gICAge3sgbGFiZWwkIH19XG4gIDwvaDM+XG4gIDxkaXYgKm5nSWY9XCJyZWFkb25seU1vZGU7IGVsc2UgZWRpdGFibGVcIj5cbiAgICA8ZGl2ICpuZ0lmPVwiY2hpbGRyZW4gJiYgY2hpbGRyZW4ubGVuZ3RoID4gMFwiPlxuICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBjaGlsZHJlbjsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICA8Y29tcG9uZW50LW1hcHBlciBuYW1lPVwiRmllbGRHcm91cExpc3RcIiBbcHJvcHNdPVwieyBoZWFkaW5nOiBpdGVtLm5hbWUsIGZvcm1Hcm91cCQsIGl0ZW0gfVwiPjwvY29tcG9uZW50LW1hcHBlcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPG5nLXRlbXBsYXRlICNlZGl0YWJsZT5cbiAgICA8ZGl2ICpuZ0lmPVwiY2hpbGRyZW4gJiYgY2hpbGRyZW4ubGVuZ3RoID4gMFwiPlxuICAgICAgPGRpdiAqbmdGb3I9XCJsZXQga2lkIG9mIGNoaWxkcmVuOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItZGl2XCI+XG4gICAgICAgICAgPGRpdiBzdHlsZT1cIndpZHRoOiA4MCVcIj5cbiAgICAgICAgICAgIDxiPnt7IGtpZC5uYW1lIH19PC9iPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJhbGxvd0FkZEVkaXQgIT09IGZhbHNlXCIgc3R5bGU9XCJ3aWR0aDogMjAlOyB0ZXh0LWFsaWduOiByaWdodFwiPlxuICAgICAgICAgICAgPGJ1dHRvbiBpZD1cImRlbGV0ZS1idXR0b25cIiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImRlbGV0ZUZpZWxkR3JvdXBJdGVtKGkpXCI+XG4gICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJwc2RrLXV0aWxpdHktY2FyZC1hY3Rpb24tc3ZnLWljb25cIiBzcmM9XCJ7eyBtZW51SWNvbk92ZXJyaWRlJCB9fVwiIC8+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiAqbmdJZj1cImtpZC5jaGlsZHJlbi5nZXRQQ29ubmVjdCgpLmdldFJhd01ldGFkYXRhKCkudHlwZS50b0xvd2VyQ2FzZSgpID09ICdyZWdpb24nXCI+XG4gICAgICAgICAgPGNvbXBvbmVudC1tYXBwZXIgbmFtZT1cIlJlZ2lvblwiIFtwcm9wc109XCJ7IHBDb25uJDoga2lkLmNoaWxkcmVuLmdldFBDb25uZWN0KCksIGZvcm1Hcm91cCQgfVwiPjwvY29tcG9uZW50LW1hcHBlcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxidXR0b24gKm5nSWY9XCJhbGxvd0FkZEVkaXQgIT09IGZhbHNlXCIgbWF0LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBzdHlsZT1cImZvbnQtc2l6ZTogMTZweFwiIChjbGljayk9XCJhZGRGaWVsZEdyb3VwSXRlbSgpXCI+KyBBZGQ8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19