@pega/angular-sdk-components 0.23.4 → 0.23.5

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 (29) hide show
  1. package/esm2022/lib/_bridge/helpers/sdk-pega-component-map.mjs +61 -52
  2. package/esm2022/lib/_components/designSystemExtension/field-group/field-group.component.mjs +31 -0
  3. package/esm2022/lib/_components/designSystemExtension/material-details-fields/material-details-fields.component.mjs +3 -3
  4. package/esm2022/lib/_components/field/check-box/check-box.component.mjs +5 -3
  5. package/esm2022/lib/_components/field/date/date.component.mjs +9 -3
  6. package/esm2022/lib/_components/field/group/group.component.mjs +61 -0
  7. package/esm2022/lib/_components/template/app-shell/app-shell.component.mjs +3 -3
  8. package/esm2022/lib/_components/template/default-form/default-form.component.mjs +3 -3
  9. package/esm2022/lib/_components/template/details/details.component.mjs +3 -2
  10. package/esm2022/lib/_helpers/formatters/boolean.mjs +20 -0
  11. package/esm2022/lib/_helpers/formatters/common.mjs +16 -0
  12. package/esm2022/lib/_helpers/formatters/currency.mjs +68 -0
  13. package/esm2022/lib/_helpers/formatters/date.mjs +69 -0
  14. package/esm2022/lib/_helpers/formatters/index.mjs +110 -0
  15. package/esm2022/public-api.mjs +2 -1
  16. package/fesm2022/pega-angular-sdk-components.mjs +14007 -13644
  17. package/fesm2022/pega-angular-sdk-components.mjs.map +1 -1
  18. package/lib/_bridge/helpers/sdk-pega-component-map.d.ts +55 -51
  19. package/lib/_components/designSystemExtension/field-group/field-group.component.d.ts +12 -0
  20. package/lib/_components/field/check-box/check-box.component.d.ts +4 -0
  21. package/lib/_components/field/date/date.component.d.ts +1 -0
  22. package/lib/_components/field/group/group.component.d.ts +33 -0
  23. package/lib/_helpers/formatters/boolean.d.ts +4 -0
  24. package/lib/_helpers/formatters/common.d.ts +2 -0
  25. package/lib/_helpers/formatters/currency.d.ts +9 -0
  26. package/lib/_helpers/formatters/date.d.ts +10 -0
  27. package/lib/_helpers/formatters/index.d.ts +18 -0
  28. package/package.json +1 -1
  29. package/public-api.d.ts +1 -0
@@ -85,6 +85,8 @@ export class CheckBoxComponent {
85
85
  this.displayMode$ = this.configProps$.displayMode;
86
86
  this.caption$ = this.configProps$.caption;
87
87
  this.helperText = this.configProps$.helperText;
88
+ this.trueLabel$ = this.configProps$.trueLabel;
89
+ this.falseLabel$ = this.configProps$.falseLabel;
88
90
  // timeout and detectChanges to avoid ExpressionChangedAfterItHasBeenCheckedError
89
91
  setTimeout(() => {
90
92
  if (this.configProps$.required != null) {
@@ -144,14 +146,14 @@ export class CheckBoxComponent {
144
146
  return errMessage;
145
147
  }
146
148
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CheckBoxComponent, deps: [{ token: i1.AngularPConnectService }, { token: i0.ChangeDetectorRef }, { token: i2.Utils }], target: i0.ɵɵFactoryTarget.Component }); }
147
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CheckBoxComponent, isStandalone: true, selector: "app-check-box", inputs: { pConn$: "pConn$", formGroup$: "formGroup$" }, ngImport: i0, template: "<div *ngIf=\"displayMode$; else noDisplayMode\">\n <component-mapper *ngIf=\"bVisible$ !== false\" name=\"FieldValueList\" [props]=\"{ label$, value$, displayMode$ }\"></component-mapper>\n</div>\n<ng-template #noDisplayMode>\n <div *ngIf=\"!bReadonly$ && bHasForm$; else noEdit\">\n <div [formGroup]=\"formGroup$\" *ngIf=\"bVisible$\">\n <div class=\"mat-form-field-infix\" *ngIf=\"showLabel$\">\n <span>\n <label class=\"mat-form-field-label psdk-label-readonly\">{{ label$ }}</label>\n </span>\n <mat-checkbox\n [labelPosition]=\"'after'\"\n [checked]=\"isChecked$\"\n [disabled]=\"bDisabled$\"\n [attr.data-test-id]=\"testId\"\n [formControl]=\"fieldControl\"\n (change)=\"fieldOnChange($event)\"\n (blur)=\"fieldOnBlur($event)\"\n >{{ caption$ }}</mat-checkbox\n >\n </div>\n <div class=\"mat-form-field-infix\" *ngIf=\"!bReadonly$ && !showLabel$\">\n <mat-checkbox\n [labelPosition]=\"'after'\"\n [checked]=\"isChecked$\"\n [disabled]=\"bDisabled$\"\n [attr.data-test-id]=\"testId\"\n [formControl]=\"fieldControl\"\n (change)=\"fieldOnChange($event)\"\n (blur)=\"fieldOnBlur($event)\"\n >{{ caption$ }}</mat-checkbox\n >\n </div>\n <mat-hint *ngIf=\"helperText\">{{ helperText }}</mat-hint>\n <mat-error *ngIf=\"fieldControl.invalid\">{{ getErrorMessage() }}</mat-error>\n </div>\n </div>\n</ng-template>\n<ng-template #noEdit>\n <component-mapper *ngIf=\"bVisible$ !== false\" name=\"Text\" [props]=\"{ pConn$, formatAs$: 'text' }\"></component-mapper>\n</ng-template>\n", styles: [".psdk-full-width{min-width:9.375rem;width:100%;text-align:left}.psdk-label-readonly{top:0rem;margin-top:.625rem;font-size:.875rem;display:block;transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.001px);-ms-transform:translateY(-1.28125em) scale(.75);width:133.33333%}.psdk-data-readonly{padding-top:.625rem;width:100%}::ng-deep .mat-mdc-form-field-infix{width:auto}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(function () { return CommonModule; }) }, { kind: "directive", type: i0.forwardRef(function () { return i3.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: i0.forwardRef(function () { return ReactiveFormsModule; }) }, { kind: "directive", type: i0.forwardRef(function () { return i4.NgControlStatus; }), selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i0.forwardRef(function () { return i4.NgControlStatusGroup; }), selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i0.forwardRef(function () { return i4.FormControlDirective; }), selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i0.forwardRef(function () { return i4.FormGroupDirective; }), selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: i0.forwardRef(function () { return MatCheckboxModule; }) }, { kind: "component", type: i0.forwardRef(function () { return i5.MatCheckbox; }), selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: i0.forwardRef(function () { return MatFormFieldModule; }) }, { kind: "directive", type: i0.forwardRef(function () { return i6.MatHint; }), selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i0.forwardRef(function () { return i6.MatError; }), selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i0.forwardRef(function () { return ComponentMapperComponent; }), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
149
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CheckBoxComponent, isStandalone: true, selector: "app-check-box", inputs: { pConn$: "pConn$", formGroup$: "formGroup$" }, ngImport: i0, template: "<div *ngIf=\"displayMode$; else noDisplayMode\">\n <component-mapper\n *ngIf=\"bVisible$ !== false\"\n name=\"FieldValueList\"\n [props]=\"{ label$: caption$, value$: value$ ? trueLabel$ : falseLabel$, displayMode$ }\"\n ></component-mapper>\n</div>\n<ng-template #noDisplayMode>\n <div *ngIf=\"!bReadonly$ && bHasForm$; else noEdit\">\n <div [formGroup]=\"formGroup$\" *ngIf=\"bVisible$\">\n <div class=\"mat-form-field-infix\" *ngIf=\"showLabel$\">\n <span>\n <label class=\"mat-form-field-label psdk-label-readonly\">{{ label$ }}</label>\n </span>\n <mat-checkbox\n [labelPosition]=\"'after'\"\n [checked]=\"isChecked$\"\n [disabled]=\"bDisabled$\"\n [attr.data-test-id]=\"testId\"\n [formControl]=\"fieldControl\"\n (change)=\"fieldOnChange($event)\"\n (blur)=\"fieldOnBlur($event)\"\n >{{ caption$ }}</mat-checkbox\n >\n </div>\n <div class=\"mat-form-field-infix\" *ngIf=\"!bReadonly$ && !showLabel$\">\n <mat-checkbox\n [labelPosition]=\"'after'\"\n [checked]=\"isChecked$\"\n [disabled]=\"bDisabled$\"\n [attr.data-test-id]=\"testId\"\n [formControl]=\"fieldControl\"\n (change)=\"fieldOnChange($event)\"\n (blur)=\"fieldOnBlur($event)\"\n >{{ caption$ }}</mat-checkbox\n >\n </div>\n <mat-hint *ngIf=\"helperText\">{{ helperText }}</mat-hint>\n <mat-error *ngIf=\"fieldControl.invalid\">{{ getErrorMessage() }}</mat-error>\n </div>\n </div>\n</ng-template>\n<ng-template #noEdit>\n <component-mapper *ngIf=\"bVisible$ !== false\" name=\"Text\" [props]=\"{ pConn$, formatAs$: 'text' }\"></component-mapper>\n</ng-template>\n", styles: [".psdk-full-width{min-width:9.375rem;width:100%;text-align:left}.psdk-label-readonly{top:0rem;margin-top:.625rem;font-size:.875rem;display:block;transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.001px);-ms-transform:translateY(-1.28125em) scale(.75);width:133.33333%}.psdk-data-readonly{padding-top:.625rem;width:100%}::ng-deep .mat-mdc-form-field-infix{width:auto}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(function () { return CommonModule; }) }, { kind: "directive", type: i0.forwardRef(function () { return i3.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: i0.forwardRef(function () { return ReactiveFormsModule; }) }, { kind: "directive", type: i0.forwardRef(function () { return i4.NgControlStatus; }), selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i0.forwardRef(function () { return i4.NgControlStatusGroup; }), selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i0.forwardRef(function () { return i4.FormControlDirective; }), selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i0.forwardRef(function () { return i4.FormGroupDirective; }), selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: i0.forwardRef(function () { return MatCheckboxModule; }) }, { kind: "component", type: i0.forwardRef(function () { return i5.MatCheckbox; }), selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: i0.forwardRef(function () { return MatFormFieldModule; }) }, { kind: "directive", type: i0.forwardRef(function () { return i6.MatHint; }), selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i0.forwardRef(function () { return i6.MatError; }), selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i0.forwardRef(function () { return ComponentMapperComponent; }), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
148
150
  }
149
151
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CheckBoxComponent, decorators: [{
150
152
  type: Component,
151
- args: [{ selector: 'app-check-box', standalone: true, imports: [CommonModule, ReactiveFormsModule, MatCheckboxModule, MatFormFieldModule, forwardRef(() => ComponentMapperComponent)], template: "<div *ngIf=\"displayMode$; else noDisplayMode\">\n <component-mapper *ngIf=\"bVisible$ !== false\" name=\"FieldValueList\" [props]=\"{ label$, value$, displayMode$ }\"></component-mapper>\n</div>\n<ng-template #noDisplayMode>\n <div *ngIf=\"!bReadonly$ && bHasForm$; else noEdit\">\n <div [formGroup]=\"formGroup$\" *ngIf=\"bVisible$\">\n <div class=\"mat-form-field-infix\" *ngIf=\"showLabel$\">\n <span>\n <label class=\"mat-form-field-label psdk-label-readonly\">{{ label$ }}</label>\n </span>\n <mat-checkbox\n [labelPosition]=\"'after'\"\n [checked]=\"isChecked$\"\n [disabled]=\"bDisabled$\"\n [attr.data-test-id]=\"testId\"\n [formControl]=\"fieldControl\"\n (change)=\"fieldOnChange($event)\"\n (blur)=\"fieldOnBlur($event)\"\n >{{ caption$ }}</mat-checkbox\n >\n </div>\n <div class=\"mat-form-field-infix\" *ngIf=\"!bReadonly$ && !showLabel$\">\n <mat-checkbox\n [labelPosition]=\"'after'\"\n [checked]=\"isChecked$\"\n [disabled]=\"bDisabled$\"\n [attr.data-test-id]=\"testId\"\n [formControl]=\"fieldControl\"\n (change)=\"fieldOnChange($event)\"\n (blur)=\"fieldOnBlur($event)\"\n >{{ caption$ }}</mat-checkbox\n >\n </div>\n <mat-hint *ngIf=\"helperText\">{{ helperText }}</mat-hint>\n <mat-error *ngIf=\"fieldControl.invalid\">{{ getErrorMessage() }}</mat-error>\n </div>\n </div>\n</ng-template>\n<ng-template #noEdit>\n <component-mapper *ngIf=\"bVisible$ !== false\" name=\"Text\" [props]=\"{ pConn$, formatAs$: 'text' }\"></component-mapper>\n</ng-template>\n", styles: [".psdk-full-width{min-width:9.375rem;width:100%;text-align:left}.psdk-label-readonly{top:0rem;margin-top:.625rem;font-size:.875rem;display:block;transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.001px);-ms-transform:translateY(-1.28125em) scale(.75);width:133.33333%}.psdk-data-readonly{padding-top:.625rem;width:100%}::ng-deep .mat-mdc-form-field-infix{width:auto}\n"] }]
153
+ args: [{ selector: 'app-check-box', standalone: true, imports: [CommonModule, ReactiveFormsModule, MatCheckboxModule, MatFormFieldModule, forwardRef(() => ComponentMapperComponent)], template: "<div *ngIf=\"displayMode$; else noDisplayMode\">\n <component-mapper\n *ngIf=\"bVisible$ !== false\"\n name=\"FieldValueList\"\n [props]=\"{ label$: caption$, value$: value$ ? trueLabel$ : falseLabel$, displayMode$ }\"\n ></component-mapper>\n</div>\n<ng-template #noDisplayMode>\n <div *ngIf=\"!bReadonly$ && bHasForm$; else noEdit\">\n <div [formGroup]=\"formGroup$\" *ngIf=\"bVisible$\">\n <div class=\"mat-form-field-infix\" *ngIf=\"showLabel$\">\n <span>\n <label class=\"mat-form-field-label psdk-label-readonly\">{{ label$ }}</label>\n </span>\n <mat-checkbox\n [labelPosition]=\"'after'\"\n [checked]=\"isChecked$\"\n [disabled]=\"bDisabled$\"\n [attr.data-test-id]=\"testId\"\n [formControl]=\"fieldControl\"\n (change)=\"fieldOnChange($event)\"\n (blur)=\"fieldOnBlur($event)\"\n >{{ caption$ }}</mat-checkbox\n >\n </div>\n <div class=\"mat-form-field-infix\" *ngIf=\"!bReadonly$ && !showLabel$\">\n <mat-checkbox\n [labelPosition]=\"'after'\"\n [checked]=\"isChecked$\"\n [disabled]=\"bDisabled$\"\n [attr.data-test-id]=\"testId\"\n [formControl]=\"fieldControl\"\n (change)=\"fieldOnChange($event)\"\n (blur)=\"fieldOnBlur($event)\"\n >{{ caption$ }}</mat-checkbox\n >\n </div>\n <mat-hint *ngIf=\"helperText\">{{ helperText }}</mat-hint>\n <mat-error *ngIf=\"fieldControl.invalid\">{{ getErrorMessage() }}</mat-error>\n </div>\n </div>\n</ng-template>\n<ng-template #noEdit>\n <component-mapper *ngIf=\"bVisible$ !== false\" name=\"Text\" [props]=\"{ pConn$, formatAs$: 'text' }\"></component-mapper>\n</ng-template>\n", styles: [".psdk-full-width{min-width:9.375rem;width:100%;text-align:left}.psdk-label-readonly{top:0rem;margin-top:.625rem;font-size:.875rem;display:block;transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.001px);-ms-transform:translateY(-1.28125em) scale(.75);width:133.33333%}.psdk-data-readonly{padding-top:.625rem;width:100%}::ng-deep .mat-mdc-form-field-infix{width:auto}\n"] }]
152
154
  }], ctorParameters: function () { return [{ type: i1.AngularPConnectService }, { type: i0.ChangeDetectorRef }, { type: i2.Utils }]; }, propDecorators: { pConn$: [{
153
155
  type: Input
154
156
  }], formGroup$: [{
155
157
  type: Input
156
158
  }] } });
157
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2stYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy9maWVsZC9jaGVjay1ib3gvY2hlY2stYm94LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy9maWVsZC9jaGVjay1ib3gvY2hlY2stYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFxQixVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQWEsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUdsRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQzs7Ozs7Ozs7QUFpQnhHLE1BQU0sT0FBTyxpQkFBaUI7SUEwQjVCLFlBQ1UsZUFBdUMsRUFDdkMsS0FBd0IsRUFDeEIsS0FBWTtRQUZaLG9CQUFlLEdBQWYsZUFBZSxDQUF3QjtRQUN2QyxVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQUN4QixVQUFLLEdBQUwsS0FBSyxDQUFPO1FBekJ0Qiw0QkFBNEI7UUFDNUIsd0JBQW1CLEdBQXdCLEVBQUUsQ0FBQztRQUc5QyxXQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ1osV0FBTSxHQUFRLEVBQUUsQ0FBQztRQUNqQixhQUFRLEdBQVksRUFBRSxDQUFDO1FBQ3ZCLFdBQU0sR0FBRyxFQUFFLENBQUM7UUFDWixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsY0FBUyxHQUFHLElBQUksQ0FBQztRQUNqQixpQkFBWSxHQUFZLEVBQUUsQ0FBQztRQUUzQixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLHVCQUFrQixHQUFHLEVBQUUsQ0FBQztRQUd4QixpQkFBWSxHQUFHLElBQUksV0FBVyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQU10QyxDQUFDO0lBRUosUUFBUTtRQUNOLDhGQUE4RjtRQUM5RixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3hHLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFOUQsOENBQThDO1FBRTlDLG9DQUFvQztRQUNwQyxxQkFBcUI7UUFDckIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBRXRCLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQiwyQkFBMkI7WUFDM0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDakUsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3hDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1NBQ3ZCO2FBQU07WUFDTCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztZQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztTQUN4QjtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUNsRDtRQUVELElBQUksSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsRUFBRTtZQUMxQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDMUM7SUFDSCxDQUFDO0lBRUQsbURBQW1EO0lBQ25ELGFBQWE7UUFDWCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELGNBQWM7UUFDWixnRUFBZ0U7UUFDaEUsNEJBQTRCO1FBQzVCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFckUsd0RBQXdEO1FBQ3hELElBQUksV0FBVyxFQUFFO1lBQ2YsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1NBQ25CO0lBQ0gsQ0FBQztJQUVELGFBQWE7SUFDYixVQUFVO1FBQ1IsaUVBQWlFO1FBQ2pFLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFrQixDQUFDO1FBRWxHLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLElBQUksU0FBUyxFQUFFO1lBQ3hDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUM7U0FDdkM7UUFDRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUM7UUFDdEMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQztRQUVsRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDO1FBQzFDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUM7UUFFL0MsaUZBQWlGO1FBQ2pGLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxJQUFJLElBQUksRUFBRTtnQkFDdEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQzFFO1lBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLElBQUksSUFBSSxFQUFFO1lBQ3hDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUMzRTtRQUVELFdBQVc7UUFDWCxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxJQUFJLFNBQVMsRUFBRTtZQUMzQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDMUU7UUFFRCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUM3QjthQUFNO1lBQ0wsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUM1QjtRQUVELElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLElBQUksSUFBSSxFQUFFO1lBQ3RDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUMxRTtRQUVELElBQUksQ0FBQyxrQkFBa0IsR0FBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBVSxDQUFDLEtBQUssQ0FBQztRQUVyRSxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksRUFBRSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1NBQ3hCO1FBRUQsd0RBQXdEO1FBQ3hELElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLEVBQUU7WUFDakQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7U0FDeEI7YUFBTTtZQUNMLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFVO1FBQ3RCLEtBQUssQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztRQUU1QixJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFVO1FBQ3BCLEtBQUssQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztRQUM1QixJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFFcEIsaUdBQWlHO1FBQ2pHLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDekMsVUFBVSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLElBQUksRUFBRSxDQUFDO1lBQzVELE9BQU8sVUFBVSxDQUFDO1NBQ25CO1FBQ0QsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUMxQyxVQUFVLEdBQUcsd0JBQXdCLENBQUM7U0FDdkM7YUFBTSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFO1lBQ25DLFVBQVUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUNsRDtRQUVELE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7K0dBbEtVLGlCQUFpQjttR0FBakIsaUJBQWlCLGlJQ3hCOUIsbXJEQXlDQSxtZURuQlksWUFBWSxnTkFBRSxtQkFBbUIseXlCQUFFLGlCQUFpQiw4UEFBRSxrQkFBa0IseVVBQW1CLHdCQUF3Qjs7NEZBRWxILGlCQUFpQjtrQkFQN0IsU0FBUzsrQkFDRSxlQUFlLGNBR2IsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLGtCQUFrQixFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO2lLQUd0SCxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIGZvcndhcmRSZWYsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgQW5ndWxhclBDb25uZWN0RGF0YSwgQW5ndWxhclBDb25uZWN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19icmlkZ2UvYW5ndWxhci1wY29ubmVjdCc7XG5pbXBvcnQgeyBVdGlscyB9IGZyb20gJy4uLy4uLy4uL19oZWxwZXJzL3V0aWxzJztcbmltcG9ydCB7IENvbXBvbmVudE1hcHBlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL19icmlkZ2UvY29tcG9uZW50LW1hcHBlci9jb21wb25lbnQtbWFwcGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQQ29ubkZpZWxkUHJvcHMgfSBmcm9tICcuLi8uLi8uLi9fdHlwZXMvUENvbm5Qcm9wcy5pbnRlcmZhY2UnO1xuXG5pbnRlcmZhY2UgQ2hlY2tib3hQcm9wcyBleHRlbmRzIE9taXQ8UENvbm5GaWVsZFByb3BzLCAndmFsdWUnPiB7XG4gIC8vIElmIGFueSwgZW50ZXIgYWRkaXRpb25hbCBwcm9wcyB0aGF0IG9ubHkgZXhpc3Qgb24gQ2hlY2tib3ggaGVyZVxuICAvLyBFdmVyeXRoaW5nIGZyb20gUENvbm5GaWVsZFByb3BzIGV4Y2VwdCB2YWx1ZSBhbmQgY2hhbmdlIHR5cGUgb2YgdmFsdWUgdG8gYm9vbGVhblxuICB2YWx1ZTogYm9vbGVhbjtcbiAgY2FwdGlvbj86IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWNoZWNrLWJveCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGVjay1ib3guY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jaGVjay1ib3guY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgTWF0Q2hlY2tib3hNb2R1bGUsIE1hdEZvcm1GaWVsZE1vZHVsZSwgZm9yd2FyZFJlZigoKSA9PiBDb21wb25lbnRNYXBwZXJDb21wb25lbnQpXVxufSlcbmV4cG9ydCBjbGFzcyBDaGVja0JveENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgcENvbm4kOiB0eXBlb2YgUENvbm5lY3Q7XG4gIEBJbnB1dCgpIGZvcm1Hcm91cCQ6IEZvcm1Hcm91cDtcblxuICAvLyBVc2VkIHdpdGggQW5ndWxhclBDb25uZWN0XG4gIGFuZ3VsYXJQQ29ubmVjdERhdGE6IEFuZ3VsYXJQQ29ubmVjdERhdGEgPSB7fTtcbiAgY29uZmlnUHJvcHMkOiBDaGVja2JveFByb3BzO1xuXG4gIGxhYmVsJCA9ICcnO1xuICB2YWx1ZSQ6IGFueSA9ICcnO1xuICBjYXB0aW9uJD86IHN0cmluZyA9ICcnO1xuICB0ZXN0SWQgPSAnJztcbiAgc2hvd0xhYmVsJCA9IGZhbHNlO1xuICBpc0NoZWNrZWQkID0gZmFsc2U7XG4gIGJSZXF1aXJlZCQgPSBmYWxzZTtcbiAgYlJlYWRvbmx5JCA9IGZhbHNlO1xuICBiRGlzYWJsZWQkID0gZmFsc2U7XG4gIGJWaXNpYmxlJCA9IHRydWU7XG4gIGRpc3BsYXlNb2RlJD86IHN0cmluZyA9ICcnO1xuICBjb250cm9sTmFtZSQ6IHN0cmluZztcbiAgYkhhc0Zvcm0kID0gdHJ1ZTtcbiAgY29tcG9uZW50UmVmZXJlbmNlID0gJyc7XG4gIGhlbHBlclRleHQ6IHN0cmluZztcblxuICBmaWVsZENvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woJycsIG51bGwpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYW5ndWxhclBDb25uZWN0OiBBbmd1bGFyUENvbm5lY3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgdXRpbHM6IFV0aWxzXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBGaXJzdCB0aGluZyBpbiBpbml0aWFsaXphdGlvbiBpcyByZWdpc3RlcmluZyBhbmQgc3Vic2NyaWJpbmcgdG8gdGhlIEFuZ3VsYXJQQ29ubmVjdCBzZXJ2aWNlXG4gICAgdGhpcy5hbmd1bGFyUENvbm5lY3REYXRhID0gdGhpcy5hbmd1bGFyUENvbm5lY3QucmVnaXN0ZXJBbmRTdWJzY3JpYmVDb21wb25lbnQodGhpcywgdGhpcy5vblN0YXRlQ2hhbmdlKTtcbiAgICB0aGlzLmNvbnRyb2xOYW1lJCA9IHRoaXMuYW5ndWxhclBDb25uZWN0LmdldENvbXBvbmVudElEKHRoaXMpO1xuXG4gICAgLy8gVGhlbiwgY29udGludWUgb24gd2l0aCBvdGhlciBpbml0aWFsaXphdGlvblxuXG4gICAgLy8gY2FsbCB1cGRhdGVTZWxmIHdoZW4gaW5pdGlhbGl6aW5nXG4gICAgLy8gdGhpcy51cGRhdGVTZWxmKCk7XG4gICAgdGhpcy5jaGVja0FuZFVwZGF0ZSgpO1xuXG4gICAgaWYgKHRoaXMuZm9ybUdyb3VwJCkge1xuICAgICAgLy8gYWRkIGNvbnRyb2wgdG8gZm9ybUdyb3VwXG4gICAgICB0aGlzLmZvcm1Hcm91cCQuYWRkQ29udHJvbCh0aGlzLmNvbnRyb2xOYW1lJCwgdGhpcy5maWVsZENvbnRyb2wpO1xuICAgICAgdGhpcy5maWVsZENvbnRyb2wuc2V0VmFsdWUodGhpcy52YWx1ZSQpO1xuICAgICAgdGhpcy5iSGFzRm9ybSQgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmJSZWFkb25seSQgPSB0cnVlO1xuICAgICAgdGhpcy5iSGFzRm9ybSQgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5mb3JtR3JvdXAkKSB7XG4gICAgICB0aGlzLmZvcm1Hcm91cCQucmVtb3ZlQ29udHJvbCh0aGlzLmNvbnRyb2xOYW1lJCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YS51bnN1YnNjcmliZUZuKSB7XG4gICAgICB0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEudW5zdWJzY3JpYmVGbigpO1xuICAgIH1cbiAgfVxuXG4gIC8vIENhbGxiYWNrIHBhc3NlZCB3aGVuIHN1YnNjcmliaW5nIHRvIHN0b3JlIGNoYW5nZVxuICBvblN0YXRlQ2hhbmdlKCkge1xuICAgIHRoaXMuY2hlY2tBbmRVcGRhdGUoKTtcbiAgfVxuXG4gIGNoZWNrQW5kVXBkYXRlKCkge1xuICAgIC8vIFNob3VsZCBhbHdheXMgY2hlY2sgdGhlIGJyaWRnZSB0byBzZWUgaWYgdGhlIGNvbXBvbmVudCBzaG91bGRcbiAgICAvLyB1cGRhdGUgaXRzZWxmIChyZS1yZW5kZXIpXG4gICAgY29uc3QgYlVwZGF0ZVNlbGYgPSB0aGlzLmFuZ3VsYXJQQ29ubmVjdC5zaG91bGRDb21wb25lbnRVcGRhdGUodGhpcyk7XG5cbiAgICAvLyBPTkxZIGNhbGwgdXBkYXRlU2VsZiB3aGVuIHRoZSBjb21wb25lbnQgc2hvdWxkIHVwZGF0ZVxuICAgIGlmIChiVXBkYXRlU2VsZikge1xuICAgICAgdGhpcy51cGRhdGVTZWxmKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gdXBkYXRlU2VsZlxuICB1cGRhdGVTZWxmKCk6IHZvaWQge1xuICAgIC8vIG1vdmVkIHRoaXMgZnJvbSBuZ09uSW5pdCgpIGFuZCBjYWxsIHRoaXMgZnJvbSB0aGVyZSBpbnN0ZWFkLi4uXG4gICAgdGhpcy5jb25maWdQcm9wcyQgPSB0aGlzLnBDb25uJC5yZXNvbHZlQ29uZmlnUHJvcHModGhpcy5wQ29ubiQuZ2V0Q29uZmlnUHJvcHMoKSkgYXMgQ2hlY2tib3hQcm9wcztcblxuICAgIGlmICh0aGlzLmNvbmZpZ1Byb3BzJC52YWx1ZSAhPSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMudmFsdWUkID0gdGhpcy5jb25maWdQcm9wcyQudmFsdWU7XG4gICAgfVxuICAgIHRoaXMudGVzdElkID0gdGhpcy5jb25maWdQcm9wcyQudGVzdElkO1xuICAgIHRoaXMubGFiZWwkID0gdGhpcy5jb25maWdQcm9wcyQubGFiZWw7XG4gICAgdGhpcy5kaXNwbGF5TW9kZSQgPSB0aGlzLmNvbmZpZ1Byb3BzJC5kaXNwbGF5TW9kZTtcblxuICAgIHRoaXMuY2FwdGlvbiQgPSB0aGlzLmNvbmZpZ1Byb3BzJC5jYXB0aW9uO1xuICAgIHRoaXMuaGVscGVyVGV4dCA9IHRoaXMuY29uZmlnUHJvcHMkLmhlbHBlclRleHQ7XG5cbiAgICAvLyB0aW1lb3V0IGFuZCBkZXRlY3RDaGFuZ2VzIHRvIGF2b2lkIEV4cHJlc3Npb25DaGFuZ2VkQWZ0ZXJJdEhhc0JlZW5DaGVja2VkRXJyb3JcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmNvbmZpZ1Byb3BzJC5yZXF1aXJlZCAhPSBudWxsKSB7XG4gICAgICAgIHRoaXMuYlJlcXVpcmVkJCA9IHRoaXMudXRpbHMuZ2V0Qm9vbGVhblZhbHVlKHRoaXMuY29uZmlnUHJvcHMkLnJlcXVpcmVkKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuY29uZmlnUHJvcHMkLnZpc2liaWxpdHkgIT0gbnVsbCkge1xuICAgICAgdGhpcy5iVmlzaWJsZSQgPSB0aGlzLnV0aWxzLmdldEJvb2xlYW5WYWx1ZSh0aGlzLmNvbmZpZ1Byb3BzJC52aXNpYmlsaXR5KTtcbiAgICB9XG5cbiAgICAvLyBkaXNhYmxlZFxuICAgIGlmICh0aGlzLmNvbmZpZ1Byb3BzJC5kaXNhYmxlZCAhPSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuYkRpc2FibGVkJCA9IHRoaXMudXRpbHMuZ2V0Qm9vbGVhblZhbHVlKHRoaXMuY29uZmlnUHJvcHMkLmRpc2FibGVkKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5iRGlzYWJsZWQkKSB7XG4gICAgICB0aGlzLmZpZWxkQ29udHJvbC5kaXNhYmxlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZmllbGRDb250cm9sLmVuYWJsZSgpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNvbmZpZ1Byb3BzJC5yZWFkT25seSAhPSBudWxsKSB7XG4gICAgICB0aGlzLmJSZWFkb25seSQgPSB0aGlzLnV0aWxzLmdldEJvb2xlYW5WYWx1ZSh0aGlzLmNvbmZpZ1Byb3BzJC5yZWFkT25seSk7XG4gICAgfVxuXG4gICAgdGhpcy5jb21wb25lbnRSZWZlcmVuY2UgPSAodGhpcy5wQ29ubiQuZ2V0U3RhdGVQcm9wcygpIGFzIGFueSkudmFsdWU7XG5cbiAgICBpZiAodGhpcy5sYWJlbCQgIT0gJycpIHtcbiAgICAgIHRoaXMuc2hvd0xhYmVsJCA9IHRydWU7XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHNvbmFyanMvbm8tcmVkdW5kYW50LWJvb2xlYW5cbiAgICBpZiAodGhpcy52YWx1ZSQgPT09ICd0cnVlJyB8fCB0aGlzLnZhbHVlJCA9PSB0cnVlKSB7XG4gICAgICB0aGlzLmlzQ2hlY2tlZCQgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmlzQ2hlY2tlZCQgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBmaWVsZE9uQ2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICBldmVudC52YWx1ZSA9IGV2ZW50LmNoZWNrZWQ7XG5cbiAgICB0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEuYWN0aW9ucz8ub25DaGFuZ2UodGhpcywgZXZlbnQpO1xuICB9XG5cbiAgZmllbGRPbkJsdXIoZXZlbnQ6IGFueSkge1xuICAgIGV2ZW50LnZhbHVlID0gZXZlbnQuY2hlY2tlZDtcbiAgICB0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEuYWN0aW9ucz8ub25CbHVyKHRoaXMsIGV2ZW50KTtcbiAgfVxuXG4gIGdldEVycm9yTWVzc2FnZSgpIHtcbiAgICBsZXQgZXJyTWVzc2FnZSA9ICcnO1xuXG4gICAgLy8gbG9vayBmb3IgdmFsaWRhdGlvbiBtZXNzYWdlcyBmb3IganNvbiwgcHJlLWRlZmluZWQgb3IganVzdCBhbiBlcnJvciBwdXNoZWQgZnJvbSB3b3JraXRlbSAoNDAwKVxuICAgIGlmICh0aGlzLmZpZWxkQ29udHJvbC5oYXNFcnJvcignbWVzc2FnZScpKSB7XG4gICAgICBlcnJNZXNzYWdlID0gdGhpcy5hbmd1bGFyUENvbm5lY3REYXRhLnZhbGlkYXRlTWVzc2FnZSA/PyAnJztcbiAgICAgIHJldHVybiBlcnJNZXNzYWdlO1xuICAgIH1cbiAgICBpZiAodGhpcy5maWVsZENvbnRyb2wuaGFzRXJyb3IoJ3JlcXVpcmVkJykpIHtcbiAgICAgIGVyck1lc3NhZ2UgPSAnWW91IG11c3QgZW50ZXIgYSB2YWx1ZSc7XG4gICAgfSBlbHNlIGlmICh0aGlzLmZpZWxkQ29udHJvbC5lcnJvcnMpIHtcbiAgICAgIGVyck1lc3NhZ2UgPSB0aGlzLmZpZWxkQ29udHJvbC5lcnJvcnMudG9TdHJpbmcoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZXJyTWVzc2FnZTtcbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cImRpc3BsYXlNb2RlJDsgZWxzZSBub0Rpc3BsYXlNb2RlXCI+XG4gIDxjb21wb25lbnQtbWFwcGVyICpuZ0lmPVwiYlZpc2libGUkICE9PSBmYWxzZVwiIG5hbWU9XCJGaWVsZFZhbHVlTGlzdFwiIFtwcm9wc109XCJ7IGxhYmVsJCwgdmFsdWUkLCBkaXNwbGF5TW9kZSQgfVwiPjwvY29tcG9uZW50LW1hcHBlcj5cbjwvZGl2PlxuPG5nLXRlbXBsYXRlICNub0Rpc3BsYXlNb2RlPlxuICA8ZGl2ICpuZ0lmPVwiIWJSZWFkb25seSQgJiYgYkhhc0Zvcm0kOyBlbHNlIG5vRWRpdFwiPlxuICAgIDxkaXYgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXAkXCIgKm5nSWY9XCJiVmlzaWJsZSRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtYXQtZm9ybS1maWVsZC1pbmZpeFwiICpuZ0lmPVwic2hvd0xhYmVsJFwiPlxuICAgICAgICA8c3Bhbj5cbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJtYXQtZm9ybS1maWVsZC1sYWJlbCBwc2RrLWxhYmVsLXJlYWRvbmx5XCI+e3sgbGFiZWwkIH19PC9sYWJlbD5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8bWF0LWNoZWNrYm94XG4gICAgICAgICAgW2xhYmVsUG9zaXRpb25dPVwiJ2FmdGVyJ1wiXG4gICAgICAgICAgW2NoZWNrZWRdPVwiaXNDaGVja2VkJFwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImJEaXNhYmxlZCRcIlxuICAgICAgICAgIFthdHRyLmRhdGEtdGVzdC1pZF09XCJ0ZXN0SWRcIlxuICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJmaWVsZENvbnRyb2xcIlxuICAgICAgICAgIChjaGFuZ2UpPVwiZmllbGRPbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAoYmx1cik9XCJmaWVsZE9uQmx1cigkZXZlbnQpXCJcbiAgICAgICAgICA+e3sgY2FwdGlvbiQgfX08L21hdC1jaGVja2JveFxuICAgICAgICA+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtYXQtZm9ybS1maWVsZC1pbmZpeFwiICpuZ0lmPVwiIWJSZWFkb25seSQgJiYgIXNob3dMYWJlbCRcIj5cbiAgICAgICAgPG1hdC1jaGVja2JveFxuICAgICAgICAgIFtsYWJlbFBvc2l0aW9uXT1cIidhZnRlcidcIlxuICAgICAgICAgIFtjaGVja2VkXT1cImlzQ2hlY2tlZCRcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJiRGlzYWJsZWQkXCJcbiAgICAgICAgICBbYXR0ci5kYXRhLXRlc3QtaWRdPVwidGVzdElkXCJcbiAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZmllbGRDb250cm9sXCJcbiAgICAgICAgICAoY2hhbmdlKT1cImZpZWxkT25DaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgKGJsdXIpPVwiZmllbGRPbkJsdXIoJGV2ZW50KVwiXG4gICAgICAgICAgPnt7IGNhcHRpb24kIH19PC9tYXQtY2hlY2tib3hcbiAgICAgICAgPlxuICAgICAgPC9kaXY+XG4gICAgICA8bWF0LWhpbnQgKm5nSWY9XCJoZWxwZXJUZXh0XCI+e3sgaGVscGVyVGV4dCB9fTwvbWF0LWhpbnQ+XG4gICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZmllbGRDb250cm9sLmludmFsaWRcIj57eyBnZXRFcnJvck1lc3NhZ2UoKSB9fTwvbWF0LWVycm9yPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI25vRWRpdD5cbiAgPGNvbXBvbmVudC1tYXBwZXIgKm5nSWY9XCJiVmlzaWJsZSQgIT09IGZhbHNlXCIgbmFtZT1cIlRleHRcIiBbcHJvcHNdPVwieyBwQ29ubiQsIGZvcm1hdEFzJDogJ3RleHQnIH1cIj48L2NvbXBvbmVudC1tYXBwZXI+XG48L25nLXRlbXBsYXRlPlxuIl19
159
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2stYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy9maWVsZC9jaGVjay1ib3gvY2hlY2stYm94LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy9maWVsZC9jaGVjay1ib3gvY2hlY2stYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFxQixVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQWEsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUdsRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQzs7Ozs7Ozs7QUFtQnhHLE1BQU0sT0FBTyxpQkFBaUI7SUE0QjVCLFlBQ1UsZUFBdUMsRUFDdkMsS0FBd0IsRUFDeEIsS0FBWTtRQUZaLG9CQUFlLEdBQWYsZUFBZSxDQUF3QjtRQUN2QyxVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQUN4QixVQUFLLEdBQUwsS0FBSyxDQUFPO1FBM0J0Qiw0QkFBNEI7UUFDNUIsd0JBQW1CLEdBQXdCLEVBQUUsQ0FBQztRQUc5QyxXQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ1osV0FBTSxHQUFRLEVBQUUsQ0FBQztRQUNqQixhQUFRLEdBQVksRUFBRSxDQUFDO1FBQ3ZCLFdB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ZUFBZSxJQUFJLEVBQUUsQ0FBQztZQUM1RCxPQUFPLFVBQVUsQ0FBQztTQUNuQjtRQUNELElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDMUMsVUFBVSxHQUFHLHdCQUF3QixDQUFDO1NBQ3ZDO2FBQU0sSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRTtZQUNuQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDbEQ7UUFFRCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDOytHQXRLVSxpQkFBaUI7bUdBQWpCLGlCQUFpQixpSUMxQjlCLG12REE2Q0EsbWVEckJZLFlBQVksZ05BQUUsbUJBQW1CLHl5QkFBRSxpQkFBaUIsOFBBQUUsa0JBQWtCLHlVQUFtQix3QkFBd0I7OzRGQUVsSCxpQkFBaUI7a0JBUDdCLFNBQVM7K0JBQ0UsZUFBZSxjQUdiLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0IsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsd0JBQXdCLENBQUMsQ0FBQztpS0FHdEgsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIENoYW5nZURldGVjdG9yUmVmLCBmb3J3YXJkUmVmLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IEFuZ3VsYXJQQ29ubmVjdERhdGEsIEFuZ3VsYXJQQ29ubmVjdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9fYnJpZGdlL2FuZ3VsYXItcGNvbm5lY3QnO1xuaW1wb3J0IHsgVXRpbHMgfSBmcm9tICcuLi8uLi8uLi9faGVscGVycy91dGlscyc7XG5pbXBvcnQgeyBDb21wb25lbnRNYXBwZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9fYnJpZGdlL2NvbXBvbmVudC1tYXBwZXIvY29tcG9uZW50LW1hcHBlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUENvbm5GaWVsZFByb3BzIH0gZnJvbSAnLi4vLi4vLi4vX3R5cGVzL1BDb25uUHJvcHMuaW50ZXJmYWNlJztcblxuaW50ZXJmYWNlIENoZWNrYm94UHJvcHMgZXh0ZW5kcyBPbWl0PFBDb25uRmllbGRQcm9wcywgJ3ZhbHVlJz4ge1xuICAvLyBJZiBhbnksIGVudGVyIGFkZGl0aW9uYWwgcHJvcHMgdGhhdCBvbmx5IGV4aXN0IG9uIENoZWNrYm94IGhlcmVcbiAgLy8gRXZlcnl0aGluZyBmcm9tIFBDb25uRmllbGRQcm9wcyBleGNlcHQgdmFsdWUgYW5kIGNoYW5nZSB0eXBlIG9mIHZhbHVlIHRvIGJvb2xlYW5cbiAgdmFsdWU6IGJvb2xlYW47XG4gIGNhcHRpb24/OiBzdHJpbmc7XG4gIHRydWVMYWJlbD86IHN0cmluZztcbiAgZmFsc2VMYWJlbD86IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWNoZWNrLWJveCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGVjay1ib3guY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jaGVjay1ib3guY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgTWF0Q2hlY2tib3hNb2R1bGUsIE1hdEZvcm1GaWVsZE1vZHVsZSwgZm9yd2FyZFJlZigoKSA9PiBDb21wb25lbnRNYXBwZXJDb21wb25lbnQpXVxufSlcbmV4cG9ydCBjbGFzcyBDaGVja0JveENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgcENvbm4kOiB0eXBlb2YgUENvbm5lY3Q7XG4gIEBJbnB1dCgpIGZvcm1Hcm91cCQ6IEZvcm1Hcm91cDtcblxuICAvLyBVc2VkIHdpdGggQW5ndWxhclBDb25uZWN0XG4gIGFuZ3VsYXJQQ29ubmVjdERhdGE6IEFuZ3VsYXJQQ29ubmVjdERhdGEgPSB7fTtcbiAgY29uZmlnUHJvcHMkOiBDaGVja2JveFByb3BzO1xuXG4gIGxhYmVsJCA9ICcnO1xuICB2YWx1ZSQ6IGFueSA9ICcnO1xuICBjYXB0aW9uJD86IHN0cmluZyA9ICcnO1xuICB0ZXN0SWQgPSAnJztcbiAgc2hvd0xhYmVsJCA9IGZhbHNlO1xuICBpc0NoZWNrZWQkID0gZmFsc2U7XG4gIGJSZXF1aXJlZCQgPSBmYWxzZTtcbiAgYlJlYWRvbmx5JCA9IGZhbHNlO1xuICBiRGlzYWJsZWQkID0gZmFsc2U7XG4gIGJWaXNpYmxlJCA9IHRydWU7XG4gIGRpc3BsYXlNb2RlJD86IHN0cmluZyA9ICcnO1xuICBjb250cm9sTmFtZSQ6IHN0cmluZztcbiAgYkhhc0Zvcm0kID0gdHJ1ZTtcbiAgY29tcG9uZW50UmVmZXJlbmNlID0gJyc7XG4gIGhlbHBlclRleHQ6IHN0cmluZztcbiAgdHJ1ZUxhYmVsJD86IHN0cmluZztcbiAgZmFsc2VMYWJlbCQ/OiBzdHJpbmc7XG5cbiAgZmllbGRDb250cm9sID0gbmV3IEZvcm1Db250cm9sKCcnLCBudWxsKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGFuZ3VsYXJQQ29ubmVjdDogQW5ndWxhclBDb25uZWN0U2VydmljZSxcbiAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHV0aWxzOiBVdGlsc1xuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gRmlyc3QgdGhpbmcgaW4gaW5pdGlhbGl6YXRpb24gaXMgcmVnaXN0ZXJpbmcgYW5kIHN1YnNjcmliaW5nIHRvIHRoZSBBbmd1bGFyUENvbm5lY3Qgc2VydmljZVxuICAgIHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YSA9IHRoaXMuYW5ndWxhclBDb25uZWN0LnJlZ2lzdGVyQW5kU3Vic2NyaWJlQ29tcG9uZW50KHRoaXMsIHRoaXMub25TdGF0ZUNoYW5nZSk7XG4gICAgdGhpcy5jb250cm9sTmFtZSQgPSB0aGlzLmFuZ3VsYXJQQ29ubmVjdC5nZXRDb21wb25lbnRJRCh0aGlzKTtcblxuICAgIC8vIFRoZW4sIGNvbnRpbnVlIG9uIHdpdGggb3RoZXIgaW5pdGlhbGl6YXRpb25cblxuICAgIC8vIGNhbGwgdXBkYXRlU2VsZiB3aGVuIGluaXRpYWxpemluZ1xuICAgIC8vIHRoaXMudXBkYXRlU2VsZigpO1xuICAgIHRoaXMuY2hlY2tBbmRVcGRhdGUoKTtcblxuICAgIGlmICh0aGlzLmZvcm1Hcm91cCQpIHtcbiAgICAgIC8vIGFkZCBjb250cm9sIHRvIGZvcm1Hcm91cFxuICAgICAgdGhpcy5mb3JtR3JvdXAkLmFkZENvbnRyb2wodGhpcy5jb250cm9sTmFtZSQsIHRoaXMuZmllbGRDb250cm9sKTtcbiAgICAgIHRoaXMuZmllbGRDb250cm9sLnNldFZhbHVlKHRoaXMudmFsdWUkKTtcbiAgICAgIHRoaXMuYkhhc0Zvcm0kID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5iUmVhZG9ubHkkID0gdHJ1ZTtcbiAgICAgIHRoaXMuYkhhc0Zvcm0kID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZm9ybUdyb3VwJCkge1xuICAgICAgdGhpcy5mb3JtR3JvdXAkLnJlbW92ZUNvbnRyb2wodGhpcy5jb250cm9sTmFtZSQpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEudW5zdWJzY3JpYmVGbikge1xuICAgICAgdGhpcy5hbmd1bGFyUENvbm5lY3REYXRhLnVuc3Vic2NyaWJlRm4oKTtcbiAgICB9XG4gIH1cblxuICAvLyBDYWxsYmFjayBwYXNzZWQgd2hlbiBzdWJzY3JpYmluZyB0byBzdG9yZSBjaGFuZ2VcbiAgb25TdGF0ZUNoYW5nZSgpIHtcbiAgICB0aGlzLmNoZWNrQW5kVXBkYXRlKCk7XG4gIH1cblxuICBjaGVja0FuZFVwZGF0ZSgpIHtcbiAgICAvLyBTaG91bGQgYWx3YXlzIGNoZWNrIHRoZSBicmlkZ2UgdG8gc2VlIGlmIHRoZSBjb21wb25lbnQgc2hvdWxkXG4gICAgLy8gdXBkYXRlIGl0c2VsZiAocmUtcmVuZGVyKVxuICAgIGNvbnN0IGJVcGRhdGVTZWxmID0gdGhpcy5hbmd1bGFyUENvbm5lY3Quc2hvdWxkQ29tcG9uZW50VXBkYXRlKHRoaXMpO1xuXG4gICAgLy8gT05MWSBjYWxsIHVwZGF0ZVNlbGYgd2hlbiB0aGUgY29tcG9uZW50IHNob3VsZCB1cGRhdGVcbiAgICBpZiAoYlVwZGF0ZVNlbGYpIHtcbiAgICAgIHRoaXMudXBkYXRlU2VsZigpO1xuICAgIH1cbiAgfVxuXG4gIC8vIHVwZGF0ZVNlbGZcbiAgdXBkYXRlU2VsZigpOiB2b2lkIHtcbiAgICAvLyBtb3ZlZCB0aGlzIGZyb20gbmdPbkluaXQoKSBhbmQgY2FsbCB0aGlzIGZyb20gdGhlcmUgaW5zdGVhZC4uLlxuICAgIHRoaXMuY29uZmlnUHJvcHMkID0gdGhpcy5wQ29ubiQucmVzb2x2ZUNvbmZpZ1Byb3BzKHRoaXMucENvbm4kLmdldENvbmZpZ1Byb3BzKCkpIGFzIENoZWNrYm94UHJvcHM7XG5cbiAgICBpZiAodGhpcy5jb25maWdQcm9wcyQudmFsdWUgIT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnZhbHVlJCA9IHRoaXMuY29uZmlnUHJvcHMkLnZhbHVlO1xuICAgIH1cbiAgICB0aGlzLnRlc3RJZCA9IHRoaXMuY29uZmlnUHJvcHMkLnRlc3RJZDtcbiAgICB0aGlzLmxhYmVsJCA9IHRoaXMuY29uZmlnUHJvcHMkLmxhYmVsO1xuICAgIHRoaXMuZGlzcGxheU1vZGUkID0gdGhpcy5jb25maWdQcm9wcyQuZGlzcGxheU1vZGU7XG5cbiAgICB0aGlzLmNhcHRpb24kID0gdGhpcy5jb25maWdQcm9wcyQuY2FwdGlvbjtcbiAgICB0aGlzLmhlbHBlclRleHQgPSB0aGlzLmNvbmZpZ1Byb3BzJC5oZWxwZXJUZXh0O1xuICAgIHRoaXMudHJ1ZUxhYmVsJCA9IHRoaXMuY29uZmlnUHJvcHMkLnRydWVMYWJlbDtcbiAgICB0aGlzLmZhbHNlTGFiZWwkID0gdGhpcy5jb25maWdQcm9wcyQuZmFsc2VMYWJlbDtcblxuICAgIC8vIHRpbWVvdXQgYW5kIGRldGVjdENoYW5nZXMgdG8gYXZvaWQgRXhwcmVzc2lvbkNoYW5nZWRBZnRlckl0SGFzQmVlbkNoZWNrZWRFcnJvclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuY29uZmlnUHJvcHMkLnJlcXVpcmVkICE9IG51bGwpIHtcbiAgICAgICAgdGhpcy5iUmVxdWlyZWQkID0gdGhpcy51dGlscy5nZXRCb29sZWFuVmFsdWUodGhpcy5jb25maWdQcm9wcyQucmVxdWlyZWQpO1xuICAgICAgfVxuICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5jb25maWdQcm9wcyQudmlzaWJpbGl0eSAhPSBudWxsKSB7XG4gICAgICB0aGlzLmJWaXNpYmxlJCA9IHRoaXMudXRpbHMuZ2V0Qm9vbGVhblZhbHVlKHRoaXMuY29uZmlnUHJvcHMkLnZpc2liaWxpdHkpO1xuICAgIH1cblxuICAgIC8vIGRpc2FibGVkXG4gICAgaWYgKHRoaXMuY29uZmlnUHJvcHMkLmRpc2FibGVkICE9IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5iRGlzYWJsZWQkID0gdGhpcy51dGlscy5nZXRCb29sZWFuVmFsdWUodGhpcy5jb25maWdQcm9wcyQuZGlzYWJsZWQpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmJEaXNhYmxlZCQpIHtcbiAgICAgIHRoaXMuZmllbGRDb250cm9sLmRpc2FibGUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5maWVsZENvbnRyb2wuZW5hYmxlKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY29uZmlnUHJvcHMkLnJlYWRPbmx5ICE9IG51bGwpIHtcbiAgICAgIHRoaXMuYlJlYWRvbmx5JCA9IHRoaXMudXRpbHMuZ2V0Qm9vbGVhblZhbHVlKHRoaXMuY29uZmlnUHJvcHMkLnJlYWRPbmx5KTtcbiAgICB9XG5cbiAgICB0aGlzLmNvbXBvbmVudFJlZmVyZW5jZSA9ICh0aGlzLnBDb25uJC5nZXRTdGF0ZVByb3BzKCkgYXMgYW55KS52YWx1ZTtcblxuICAgIGlmICh0aGlzLmxhYmVsJCAhPSAnJykge1xuICAgICAgdGhpcy5zaG93TGFiZWwkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc29uYXJqcy9uby1yZWR1bmRhbnQtYm9vbGVhblxuICAgIGlmICh0aGlzLnZhbHVlJCA9PT0gJ3RydWUnIHx8IHRoaXMudmFsdWUkID09IHRydWUpIHtcbiAgICAgIHRoaXMuaXNDaGVja2VkJCA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaXNDaGVja2VkJCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGZpZWxkT25DaGFuZ2UoZXZlbnQ6IGFueSkge1xuICAgIGV2ZW50LnZhbHVlID0gZXZlbnQuY2hlY2tlZDtcblxuICAgIHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YS5hY3Rpb25zPy5vbkNoYW5nZSh0aGlzLCBldmVudCk7XG4gIH1cblxuICBmaWVsZE9uQmx1cihldmVudDogYW55KSB7XG4gICAgZXZlbnQudmFsdWUgPSBldmVudC5jaGVja2VkO1xuICAgIHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YS5hY3Rpb25zPy5vbkJsdXIodGhpcywgZXZlbnQpO1xuICB9XG5cbiAgZ2V0RXJyb3JNZXNzYWdlKCkge1xuICAgIGxldCBlcnJNZXNzYWdlID0gJyc7XG5cbiAgICAvLyBsb29rIGZvciB2YWxpZGF0aW9uIG1lc3NhZ2VzIGZvciBqc29uLCBwcmUtZGVmaW5lZCBvciBqdXN0IGFuIGVycm9yIHB1c2hlZCBmcm9tIHdvcmtpdGVtICg0MDApXG4gICAgaWYgKHRoaXMuZmllbGRDb250cm9sLmhhc0Vycm9yKCdtZXNzYWdlJykpIHtcbiAgICAgIGVyck1lc3NhZ2UgPSB0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEudmFsaWRhdGVNZXNzYWdlID8/ICcnO1xuICAgICAgcmV0dXJuIGVyck1lc3NhZ2U7XG4gICAgfVxuICAgIGlmICh0aGlzLmZpZWxkQ29udHJvbC5oYXNFcnJvcigncmVxdWlyZWQnKSkge1xuICAgICAgZXJyTWVzc2FnZSA9ICdZb3UgbXVzdCBlbnRlciBhIHZhbHVlJztcbiAgICB9IGVsc2UgaWYgKHRoaXMuZmllbGRDb250cm9sLmVycm9ycykge1xuICAgICAgZXJyTWVzc2FnZSA9IHRoaXMuZmllbGRDb250cm9sLmVycm9ycy50b1N0cmluZygpO1xuICAgIH1cblxuICAgIHJldHVybiBlcnJNZXNzYWdlO1xuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiZGlzcGxheU1vZGUkOyBlbHNlIG5vRGlzcGxheU1vZGVcIj5cbiAgPGNvbXBvbmVudC1tYXBwZXJcbiAgICAqbmdJZj1cImJWaXNpYmxlJCAhPT0gZmFsc2VcIlxuICAgIG5hbWU9XCJGaWVsZFZhbHVlTGlzdFwiXG4gICAgW3Byb3BzXT1cInsgbGFiZWwkOiBjYXB0aW9uJCwgdmFsdWUkOiB2YWx1ZSQgPyB0cnVlTGFiZWwkIDogZmFsc2VMYWJlbCQsIGRpc3BsYXlNb2RlJCB9XCJcbiAgPjwvY29tcG9uZW50LW1hcHBlcj5cbjwvZGl2PlxuPG5nLXRlbXBsYXRlICNub0Rpc3BsYXlNb2RlPlxuICA8ZGl2ICpuZ0lmPVwiIWJSZWFkb25seSQgJiYgYkhhc0Zvcm0kOyBlbHNlIG5vRWRpdFwiPlxuICAgIDxkaXYgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXAkXCIgKm5nSWY9XCJiVmlzaWJsZSRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtYXQtZm9ybS1maWVsZC1pbmZpeFwiICpuZ0lmPVwic2hvd0xhYmVsJFwiPlxuICAgICAgICA8c3Bhbj5cbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJtYXQtZm9ybS1maWVsZC1sYWJlbCBwc2RrLWxhYmVsLXJlYWRvbmx5XCI+e3sgbGFiZWwkIH19PC9sYWJlbD5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8bWF0LWNoZWNrYm94XG4gICAgICAgICAgW2xhYmVsUG9zaXRpb25dPVwiJ2FmdGVyJ1wiXG4gICAgICAgICAgW2NoZWNrZWRdPVwiaXNDaGVja2VkJFwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImJEaXNhYmxlZCRcIlxuICAgICAgICAgIFthdHRyLmRhdGEtdGVzdC1pZF09XCJ0ZXN0SWRcIlxuICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJmaWVsZENvbnRyb2xcIlxuICAgICAgICAgIChjaGFuZ2UpPVwiZmllbGRPbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAoYmx1cik9XCJmaWVsZE9uQmx1cigkZXZlbnQpXCJcbiAgICAgICAgICA+e3sgY2FwdGlvbiQgfX08L21hdC1jaGVja2JveFxuICAgICAgICA+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtYXQtZm9ybS1maWVsZC1pbmZpeFwiICpuZ0lmPVwiIWJSZWFkb25seSQgJiYgIXNob3dMYWJlbCRcIj5cbiAgICAgICAgPG1hdC1jaGVja2JveFxuICAgICAgICAgIFtsYWJlbFBvc2l0aW9uXT1cIidhZnRlcidcIlxuICAgICAgICAgIFtjaGVja2VkXT1cImlzQ2hlY2tlZCRcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJiRGlzYWJsZWQkXCJcbiAgICAgICAgICBbYXR0ci5kYXRhLXRlc3QtaWRdPVwidGVzdElkXCJcbiAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZmllbGRDb250cm9sXCJcbiAgICAgICAgICAoY2hhbmdlKT1cImZpZWxkT25DaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgKGJsdXIpPVwiZmllbGRPbkJsdXIoJGV2ZW50KVwiXG4gICAgICAgICAgPnt7IGNhcHRpb24kIH19PC9tYXQtY2hlY2tib3hcbiAgICAgICAgPlxuICAgICAgPC9kaXY+XG4gICAgICA8bWF0LWhpbnQgKm5nSWY9XCJoZWxwZXJUZXh0XCI+e3sgaGVscGVyVGV4dCB9fTwvbWF0LWhpbnQ+XG4gICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZmllbGRDb250cm9sLmludmFsaWRcIj57eyBnZXRFcnJvck1lc3NhZ2UoKSB9fTwvbWF0LWVycm9yPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI25vRWRpdD5cbiAgPGNvbXBvbmVudC1tYXBwZXIgKm5nSWY9XCJiVmlzaWJsZSQgIT09IGZhbHNlXCIgbmFtZT1cIlRleHRcIiBbcHJvcHNdPVwieyBwQ29ubiQsIGZvcm1hdEFzJDogJ3RleHQnIH1cIj48L2NvbXBvbmVudC1tYXBwZXI+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -11,6 +11,7 @@ import { MomentDateModule } from '@angular/material-moment-adapter';
11
11
  import { interval } from 'rxjs';
12
12
  import { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';
13
13
  import { dateFormatInfoDefault, getDateFormatInfo } from '../../../_helpers/date-format-utils';
14
+ import { format } from '../../../_helpers/formatters';
14
15
  import * as i0 from "@angular/core";
15
16
  import * as i1 from "../../../_bridge/angular-pconnect";
16
17
  import * as i2 from "../../../_helpers/utils";
@@ -193,8 +194,13 @@ export class DateComponent {
193
194
  }
194
195
  return errMessage;
195
196
  }
197
+ getFormattedValue() {
198
+ return format(this.value$, 'date', {
199
+ format: this.theDateFormat.dateFormatString
200
+ });
201
+ }
196
202
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DateComponent, deps: [{ token: i1.AngularPConnectService }, { token: i0.ChangeDetectorRef }, { token: i2.Utils }, { token: MAT_DATE_FORMATS }], target: i0.ɵɵFactoryTarget.Component }); }
197
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DateComponent, isStandalone: true, selector: "app-date", inputs: { pConn$: "pConn$", formGroup$: "formGroup$" }, providers: [{ provide: MAT_DATE_FORMATS, useClass: MyFormat }], ngImport: i0, template: "<div *ngIf=\"displayMode$; else noDisplayMode\">\n <component-mapper *ngIf=\"bVisible$ !== false\" name=\"FieldValueList\" [props]=\"{ label$, value$, displayMode$ }\"></component-mapper>\n</div>\n<ng-template #noDisplayMode>\n <div *ngIf=\"!bReadonly$ && bHasForm$; else noEdit\">\n <div [formGroup]=\"formGroup$\" *ngIf=\"bVisible$\">\n <mat-form-field class=\"psdk-full-width\" subscriptSizing=\"dynamic\" [hintLabel]=\"helperText\">\n <mat-label>{{ label$ }}</mat-label>\n <input\n matInput\n #dateInput\n [attr.data-test-id]=\"testId\"\n [matDatepicker]=\"pegadate\"\n [placeholder]=\"dateFormatInfo.dateFormatStringLC\"\n type=\"text\"\n [value]=\"value$\"\n [required]=\"bRequired$\"\n [formControl]=\"fieldControl\"\n (dateChange)=\"fieldOnDateChange($event)\"\n (blur)=\"fieldOnBlur($event)\"\n />\n <mat-datepicker-toggle matSuffix [for]=\"pegadate\"></mat-datepicker-toggle>\n <mat-datepicker #pegadate [startAt]=\"value$\"></mat-datepicker>\n <mat-error *ngIf=\"fieldControl.invalid\">{{ getErrorMessage() }}</mat-error>\n </mat-form-field>\n </div>\n </div>\n</ng-template>\n<ng-template #noEdit>\n <component-mapper *ngIf=\"bVisible$ !== false\" name=\"Text\" [props]=\"{ pConn$, formatAs$: 'date' }\"></component-mapper>\n</ng-template>\n", styles: [".psdk-full-width{width:100%}.psdk-label-readonly{font-size:1rem;display:block;transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.001px);-ms-transform:translateY(-1.28125em) scale(.75);width:133.33333%}.psdk-data-readonly{padding-top:.625rem;width:100%}::ng-deep .mat-mdc-form-field-infix{width:auto}::ng-deep .mat-mdc-form-field-hint-wrapper{padding:0}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(function () { return CommonModule; }) }, { kind: "directive", type: i0.forwardRef(function () { return i3.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: i0.forwardRef(function () { return ReactiveFormsModule; }) }, { kind: "directive", type: i0.forwardRef(function () { return i4.DefaultValueAccessor; }), selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i0.forwardRef(function () { return i4.NgControlStatus; }), selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i0.forwardRef(function () { return i4.NgControlStatusGroup; }), selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i0.forwardRef(function () { return i4.RequiredValidator; }), selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i0.forwardRef(function () { return i4.FormControlDirective; }), selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i0.forwardRef(function () { return i4.FormGroupDirective; }), selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: i0.forwardRef(function () { return MatFormFieldModule; }) }, { kind: "component", type: i0.forwardRef(function () { return i5.MatFormField; }), selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i0.forwardRef(function () { return i5.MatLabel; }), selector: "mat-label" }, { kind: "directive", type: i0.forwardRef(function () { return i5.MatError; }), selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i0.forwardRef(function () { return i5.MatSuffix; }), selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: i0.forwardRef(function () { return MatInputModule; }) }, { kind: "directive", type: i0.forwardRef(function () { return i6.MatInput; }), selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: i0.forwardRef(function () { return MatDatepickerModule; }) }, { kind: "component", type: i0.forwardRef(function () { return i7.MatDatepicker; }), selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i0.forwardRef(function () { return i7.MatDatepickerInput; }), selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i0.forwardRef(function () { return i7.MatDatepickerToggle; }), selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "ngmodule", type: i0.forwardRef(function () { return MatNativeDateModule; }) }, { kind: "ngmodule", type: i0.forwardRef(function () { return MomentDateModule; }) }, { kind: "component", type: i0.forwardRef(function () { return ComponentMapperComponent; }), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
203
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DateComponent, isStandalone: true, selector: "app-date", inputs: { pConn$: "pConn$", formGroup$: "formGroup$" }, providers: [{ provide: MAT_DATE_FORMATS, useClass: MyFormat }], ngImport: i0, template: "<div *ngIf=\"displayMode$; else noDisplayMode\">\n <component-mapper\n *ngIf=\"bVisible$ !== false\"\n name=\"FieldValueList\"\n [props]=\"{ label$, value$: getFormattedValue(), displayMode$ }\"\n ></component-mapper>\n</div>\n<ng-template #noDisplayMode>\n <div *ngIf=\"!bReadonly$ && bHasForm$; else noEdit\">\n <div [formGroup]=\"formGroup$\" *ngIf=\"bVisible$\">\n <mat-form-field class=\"psdk-full-width\" subscriptSizing=\"dynamic\" [hintLabel]=\"helperText\">\n <mat-label>{{ label$ }}</mat-label>\n <input\n matInput\n #dateInput\n [attr.data-test-id]=\"testId\"\n [matDatepicker]=\"pegadate\"\n [placeholder]=\"dateFormatInfo.dateFormatStringLC\"\n type=\"text\"\n [value]=\"value$\"\n [required]=\"bRequired$\"\n [formControl]=\"fieldControl\"\n (dateChange)=\"fieldOnDateChange($event)\"\n (blur)=\"fieldOnBlur($event)\"\n />\n <mat-datepicker-toggle matSuffix [for]=\"pegadate\"></mat-datepicker-toggle>\n <mat-datepicker #pegadate [startAt]=\"value$\"></mat-datepicker>\n <mat-error *ngIf=\"fieldControl.invalid\">{{ getErrorMessage() }}</mat-error>\n </mat-form-field>\n </div>\n </div>\n</ng-template>\n<ng-template #noEdit>\n <component-mapper *ngIf=\"bVisible$ !== false\" name=\"Text\" [props]=\"{ pConn$, formatAs$: 'date' }\"></component-mapper>\n</ng-template>\n", styles: [".psdk-full-width{width:100%}.psdk-label-readonly{font-size:1rem;display:block;transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.001px);-ms-transform:translateY(-1.28125em) scale(.75);width:133.33333%}.psdk-data-readonly{padding-top:.625rem;width:100%}::ng-deep .mat-mdc-form-field-infix{width:auto}::ng-deep .mat-mdc-form-field-hint-wrapper{padding:0}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(function () { return CommonModule; }) }, { kind: "directive", type: i0.forwardRef(function () { return i3.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: i0.forwardRef(function () { return ReactiveFormsModule; }) }, { kind: "directive", type: i0.forwardRef(function () { return i4.DefaultValueAccessor; }), selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i0.forwardRef(function () { return i4.NgControlStatus; }), selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i0.forwardRef(function () { return i4.NgControlStatusGroup; }), selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i0.forwardRef(function () { return i4.RequiredValidator; }), selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i0.forwardRef(function () { return i4.FormControlDirective; }), selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i0.forwardRef(function () { return i4.FormGroupDirective; }), selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: i0.forwardRef(function () { return MatFormFieldModule; }) }, { kind: "component", type: i0.forwardRef(function () { return i5.MatFormField; }), selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i0.forwardRef(function () { return i5.MatLabel; }), selector: "mat-label" }, { kind: "directive", type: i0.forwardRef(function () { return i5.MatError; }), selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i0.forwardRef(function () { return i5.MatSuffix; }), selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: i0.forwardRef(function () { return MatInputModule; }) }, { kind: "directive", type: i0.forwardRef(function () { return i6.MatInput; }), selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: i0.forwardRef(function () { return MatDatepickerModule; }) }, { kind: "component", type: i0.forwardRef(function () { return i7.MatDatepicker; }), selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i0.forwardRef(function () { return i7.MatDatepickerInput; }), selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i0.forwardRef(function () { return i7.MatDatepickerToggle; }), selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "ngmodule", type: i0.forwardRef(function () { return MatNativeDateModule; }) }, { kind: "ngmodule", type: i0.forwardRef(function () { return MomentDateModule; }) }, { kind: "component", type: i0.forwardRef(function () { return ComponentMapperComponent; }), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
198
204
  }
199
205
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DateComponent, decorators: [{
200
206
  type: Component,
@@ -207,7 +213,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
207
213
  MatNativeDateModule,
208
214
  MomentDateModule,
209
215
  forwardRef(() => ComponentMapperComponent)
210
- ], providers: [{ provide: MAT_DATE_FORMATS, useClass: MyFormat }], template: "<div *ngIf=\"displayMode$; else noDisplayMode\">\n <component-mapper *ngIf=\"bVisible$ !== false\" name=\"FieldValueList\" [props]=\"{ label$, value$, displayMode$ }\"></component-mapper>\n</div>\n<ng-template #noDisplayMode>\n <div *ngIf=\"!bReadonly$ && bHasForm$; else noEdit\">\n <div [formGroup]=\"formGroup$\" *ngIf=\"bVisible$\">\n <mat-form-field class=\"psdk-full-width\" subscriptSizing=\"dynamic\" [hintLabel]=\"helperText\">\n <mat-label>{{ label$ }}</mat-label>\n <input\n matInput\n #dateInput\n [attr.data-test-id]=\"testId\"\n [matDatepicker]=\"pegadate\"\n [placeholder]=\"dateFormatInfo.dateFormatStringLC\"\n type=\"text\"\n [value]=\"value$\"\n [required]=\"bRequired$\"\n [formControl]=\"fieldControl\"\n (dateChange)=\"fieldOnDateChange($event)\"\n (blur)=\"fieldOnBlur($event)\"\n />\n <mat-datepicker-toggle matSuffix [for]=\"pegadate\"></mat-datepicker-toggle>\n <mat-datepicker #pegadate [startAt]=\"value$\"></mat-datepicker>\n <mat-error *ngIf=\"fieldControl.invalid\">{{ getErrorMessage() }}</mat-error>\n </mat-form-field>\n </div>\n </div>\n</ng-template>\n<ng-template #noEdit>\n <component-mapper *ngIf=\"bVisible$ !== false\" name=\"Text\" [props]=\"{ pConn$, formatAs$: 'date' }\"></component-mapper>\n</ng-template>\n", styles: [".psdk-full-width{width:100%}.psdk-label-readonly{font-size:1rem;display:block;transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.001px);-ms-transform:translateY(-1.28125em) scale(.75);width:133.33333%}.psdk-data-readonly{padding-top:.625rem;width:100%}::ng-deep .mat-mdc-form-field-infix{width:auto}::ng-deep .mat-mdc-form-field-hint-wrapper{padding:0}\n"] }]
216
+ ], providers: [{ provide: MAT_DATE_FORMATS, useClass: MyFormat }], template: "<div *ngIf=\"displayMode$; else noDisplayMode\">\n <component-mapper\n *ngIf=\"bVisible$ !== false\"\n name=\"FieldValueList\"\n [props]=\"{ label$, value$: getFormattedValue(), displayMode$ }\"\n ></component-mapper>\n</div>\n<ng-template #noDisplayMode>\n <div *ngIf=\"!bReadonly$ && bHasForm$; else noEdit\">\n <div [formGroup]=\"formGroup$\" *ngIf=\"bVisible$\">\n <mat-form-field class=\"psdk-full-width\" subscriptSizing=\"dynamic\" [hintLabel]=\"helperText\">\n <mat-label>{{ label$ }}</mat-label>\n <input\n matInput\n #dateInput\n [attr.data-test-id]=\"testId\"\n [matDatepicker]=\"pegadate\"\n [placeholder]=\"dateFormatInfo.dateFormatStringLC\"\n type=\"text\"\n [value]=\"value$\"\n [required]=\"bRequired$\"\n [formControl]=\"fieldControl\"\n (dateChange)=\"fieldOnDateChange($event)\"\n (blur)=\"fieldOnBlur($event)\"\n />\n <mat-datepicker-toggle matSuffix [for]=\"pegadate\"></mat-datepicker-toggle>\n <mat-datepicker #pegadate [startAt]=\"value$\"></mat-datepicker>\n <mat-error *ngIf=\"fieldControl.invalid\">{{ getErrorMessage() }}</mat-error>\n </mat-form-field>\n </div>\n </div>\n</ng-template>\n<ng-template #noEdit>\n <component-mapper *ngIf=\"bVisible$ !== false\" name=\"Text\" [props]=\"{ pConn$, formatAs$: 'date' }\"></component-mapper>\n</ng-template>\n", styles: [".psdk-full-width{width:100%}.psdk-label-readonly{font-size:1rem;display:block;transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.001px);-ms-transform:translateY(-1.28125em) scale(.75);width:133.33333%}.psdk-data-readonly{padding-top:.625rem;width:100%}::ng-deep .mat-mdc-form-field-infix{width:auto}::ng-deep .mat-mdc-form-field-hint-wrapper{padding:0}\n"] }]
211
217
  }], ctorParameters: function () { return [{ type: i1.AngularPConnectService }, { type: i0.ChangeDetectorRef }, { type: i2.Utils }, { type: MyFormat, decorators: [{
212
218
  type: Inject,
213
219
  args: [MAT_DATE_FORMATS]
@@ -216,4 +222,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
216
222
  }], formGroup$: [{
217
223
  type: Input
218
224
  }] } });
219
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXNkay1jb21wb25lbnRzL3NyYy9saWIvX2NvbXBvbmVudHMvZmllbGQvZGF0ZS9kYXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy9maWVsZC9kYXRlL2RhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEseUNBQXlDO0FBQ3pDLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFxQixVQUFVLEVBQUUsTUFBTSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQzNHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFhLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHaEMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDeEcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGlCQUFpQixFQUFFLE1BQU0scUNBQXFDLENBQUM7Ozs7Ozs7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Yyx3YkFDZCxtQkFBbUIsNnBCQUNuQixtQkFBbUIscUVBQ25CLGdCQUFnQixzRUFDQyx3QkFBd0I7OzRGQUloQyxhQUFhO2tCQWpCekIsU0FBUzsrQkFDRSxVQUFVLGNBR1IsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLGNBQWM7d0JBQ2QsbUJBQW1CO3dCQUNuQixtQkFBbUI7d0JBQ25CLGdCQUFnQjt3QkFDaEIsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHdCQUF3QixDQUFDO3FCQUMzQyxhQUNVLENBQUMsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDOzswQkFtQzNELE1BQU07MkJBQUMsZ0JBQWdCOzRDQWhDakIsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBtYXgtY2xhc3Nlcy1wZXItZmlsZSAqL1xuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBDaGFuZ2VEZXRlY3RvclJlZiwgZm9yd2FyZFJlZiwgSW5qZWN0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0RGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xuaW1wb3J0IHsgTWF0TmF0aXZlRGF0ZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1BVF9EQVRFX0ZPUk1BVFMgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IE1vbWVudERhdGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC1tb21lbnQtYWRhcHRlcic7XG5pbXBvcnQgeyBpbnRlcnZhbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQW5ndWxhclBDb25uZWN0RGF0YSwgQW5ndWxhclBDb25uZWN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19icmlkZ2UvYW5ndWxhci1wY29ubmVjdCc7XG5pbXBvcnQgeyBVdGlscyB9IGZyb20gJy4uLy4uLy4uL19oZWxwZXJzL3V0aWxzJztcbmltcG9ydCB7IENvbXBvbmVudE1hcHBlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL19icmlkZ2UvY29tcG9uZW50LW1hcHBlci9jb21wb25lbnQtbWFwcGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBkYXRlRm9ybWF0SW5mb0RlZmF1bHQsIGdldERhdGVGb3JtYXRJbmZvIH0gZnJvbSAnLi4vLi4vLi4vX2hlbHBlcnMvZGF0ZS1mb3JtYXQtdXRpbHMnO1xuaW1wb3J0IHsgUENvbm5GaWVsZFByb3BzIH0gZnJvbSAnLi4vLi4vLi4vX3R5cGVzL1BDb25uUHJvcHMuaW50ZXJmYWNlJztcblxuaW50ZXJmYWNlIERhdGVQcm9wcyBleHRlbmRzIFBDb25uRmllbGRQcm9wcyB7XG4gIC8vIElmIGFueSwgZW50ZXIgYWRkaXRpb25hbCBwcm9wcyB0aGF0IG9ubHkgZXhpc3Qgb24gRGF0ZSBoZXJlXG59XG5cbmNsYXNzIE15Rm9ybWF0IHtcbiAgdGhlRGF0ZUZvcm1hdDogYW55ID0gZ2V0RGF0ZUZvcm1hdEluZm8oKTtcblxuICBnZXQgZGlzcGxheSgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZGF0ZUlucHV0OiB0aGlzLnRoZURhdGVGb3JtYXQuZGF0ZUZvcm1hdFN0cmluZyxcbiAgICAgIG1vbnRoWWVhckxhYmVsOiAnTU1NIFlZWVknLFxuICAgICAgZGF0ZUExMXlMYWJlbDogJ0xMJyxcbiAgICAgIG1vbnRoWWVhckExMXlMYWJlbDogJ01NTU0gWVlZWSdcbiAgICB9O1xuICB9XG5cbiAgZ2V0IHBhcnNlKCkge1xuICAgIHJldHVybiB7XG4gICAgICBkYXRlSW5wdXQ6IHRoaXMudGhlRGF0ZUZvcm1hdC5kYXRlRm9ybWF0U3RyaW5nXG4gICAgfTtcbiAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZGF0ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGF0ZS5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIE1hdERhdGVwaWNrZXJNb2R1bGUsXG4gICAgTWF0TmF0aXZlRGF0ZU1vZHVsZSxcbiAgICBNb21lbnREYXRlTW9kdWxlLFxuICAgIGZvcndhcmRSZWYoKCkgPT4gQ29tcG9uZW50TWFwcGVyQ29tcG9uZW50KVxuICBdLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IE1BVF9EQVRFX0ZPUk1BVFMsIHVzZUNsYXNzOiBNeUZvcm1hdCB9XVxufSlcbmV4cG9ydCBjbGFzcyBEYXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBwQ29ubiQ6IHR5cGVvZiBQQ29ubmVjdDtcbiAgQElucHV0KCkgZm9ybUdyb3VwJDogRm9ybUdyb3VwO1xuXG4gIC8vIFVzZWQgd2l0aCBBbmd1bGFyUENvbm5lY3RcbiAgYW5ndWxhclBDb25uZWN0RGF0YTogQW5ndWxhclBDb25uZWN0RGF0YSA9IHt9O1xuICBjb25maWdQcm9wcyQ6IERhdGVQcm9wcztcblxuICBsYWJlbCQgPSAnJztcbiAgdmFsdWUkOiBhbnk7XG4gIGJSZXF1aXJlZCQgPSBmYWxzZTtcbiAgYlJlYWRvbmx5JCA9IGZhbHNlO1xuICBiRGlzYWJsZWQkID0gZmFsc2U7XG4gIGJWaXNpYmxlJCA9IHRydWU7XG4gIGRpc3BsYXlNb2RlJD86IHN0cmluZyA9ICcnO1xuICBjb250cm9sTmFtZSQ6IHN0cmluZztcbiAgYkhhc0Zvcm0kID0gdHJ1ZTtcbiAgY29tcG9uZW50UmVmZXJlbmNlID0gJyc7XG4gIHRlc3RJZCA9ICcnO1xuICBoZWxwZXJUZXh0OiBzdHJpbmc7XG4gIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG5cbiAgZmllbGRDb250cm9sID0gbmV3IEZvcm1Db250cm9sKCcnLCBudWxsKTtcblxuICAvLyBTdGFydCB3aXRoIGRlZmF1bHQgZGF0ZUZvcm1hdEluZm9cbiAgZGF0ZUZvcm1hdEluZm8gPSBkYXRlRm9ybWF0SW5mb0RlZmF1bHQ7XG4gIC8vIGFuZCB0aGVuIHVwZGF0ZSwgYXMgbmVlZGVkLCBiYXNlZCBvbiBsb2NhbGUsIGV0Yy5cbiAgdGhlRGF0ZUZvcm1hdDogYW55ID0gZ2V0RGF0ZUZvcm1hdEluZm8oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGFuZ3VsYXJQQ29ubmVjdDogQW5ndWxhclBDb25uZWN0U2VydmljZSxcbiAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHV0aWxzOiBVdGlscyxcbiAgICBASW5qZWN0KE1BVF9EQVRFX0ZPUk1BVFMpIHByaXZhdGUgY29uZmlnOiBNeUZvcm1hdFxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5kYXRlRm9ybWF0SW5mbyA9IHRoaXMudGhlRGF0ZUZvcm1hdDtcbiAgICAvLyBGaXJzdCB0aGluZyBpbiBpbml0aWFsaXphdGlvbiBpcyByZWdpc3RlcmluZyBhbmQgc3Vic2NyaWJpbmcgdG8gdGhlIEFuZ3VsYXJQQ29ubmVjdCBzZXJ2aWNlXG4gICAgdGhpcy5hbmd1bGFyUENvbm5lY3REYXRhID0gdGhpcy5hbmd1bGFyUENvbm5lY3QucmVnaXN0ZXJBbmRTdWJzY3JpYmVDb21wb25lbnQodGhpcywgdGhpcy5vblN0YXRlQ2hhbmdlKTtcbiAgICB0aGlzLmNvbnRyb2xOYW1lJCA9IHRoaXMuYW5ndWxhclBDb25uZWN0LmdldENvbXBvbmVudElEKHRoaXMpO1xuXG4gICAgLy8gVGhlbiwgY29udGludWUgb24gd2l0aCBvdGhlciBpbml0aWFsaXphdGlvblxuICAgIC8vIGNhbGwgdXBkYXRlU2VsZiB3aGVuIGluaXRpYWxpemluZ1xuICAgIC8vIHRoaXMudXBkYXRlU2VsZigpO1xuICAgIHRoaXMuY2hlY2tBbmRVcGRhdGUoKTtcblxuICAgIGlmICh0aGlzLmZvcm1Hcm91cCQpIHtcbiAgICAgIC8vIGFkZCBjb250cm9sIHRvIGZvcm1Hcm91cFxuICAgICAgdGhpcy5mb3JtR3JvdXAkLmFkZENvbnRyb2wodGhpcy5jb250cm9sTmFtZSQsIHRoaXMuZmllbGRDb250cm9sKTtcbiAgICAgIHRoaXMuZmllbGRDb250cm9sLnNldFZhbHVlKHRoaXMudmFsdWUkKTtcbiAgICAgIHRoaXMuYkhhc0Zvcm0kID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5iUmVhZG9ubHkkID0gdHJ1ZTtcbiAgICAgIHRoaXMuYkhhc0Zvcm0kID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZm9ybUdyb3VwJCkge1xuICAgICAgdGhpcy5mb3JtR3JvdXAkLnJlbW92ZUNvbnRyb2wodGhpcy5jb250cm9sTmFtZSQpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEudW5zdWJzY3JpYmVGbikge1xuICAgICAgdGhpcy5hbmd1bGFyUENvbm5lY3REYXRhLnVuc3Vic2NyaWJlRm4oKTtcbiAgICB9XG4gIH1cblxuICAvLyBDYWxsYmFjayBwYXNzZWQgd2hlbiBzdWJzY3JpYmluZyB0byBzdG9yZSBjaGFuZ2VcbiAgb25TdGF0ZUNoYW5nZSgpIHtcbiAgICB0aGlzLmNoZWNrQW5kVXBkYXRlKCk7XG4gIH1cblxuICBjaGVja0FuZFVwZGF0ZSgpIHtcbiAgICAvLyBTaG91bGQgYWx3YXlzIGNoZWNrIHRoZSBicmlkZ2UgdG8gc2VlIGlmIHRoZSBjb21wb25lbnQgc2hvdWxkXG4gICAgLy8gdXBkYXRlIGl0c2VsZiAocmUtcmVuZGVyKVxuICAgIGNvbnN0IGJVcGRhdGVTZWxmID0gdGhpcy5hbmd1bGFyUENvbm5lY3Quc2hvdWxkQ29tcG9uZW50VXBkYXRlKHRoaXMpO1xuXG4gICAgLy8gT05MWSBjYWxsIHVwZGF0ZVNlbGYgd2hlbiB0aGUgY29tcG9uZW50IHNob3VsZCB1cGRhdGVcbiAgICBpZiAoYlVwZGF0ZVNlbGYpIHtcbiAgICAgIHRoaXMudXBkYXRlU2VsZigpO1xuICAgIH1cbiAgfVxuXG4gIC8vIHVwZGF0ZVNlbGZcbiAgdXBkYXRlU2VsZigpOiB2b2lkIHtcbiAgICAvLyBzdGFydGluZyB2ZXJ5IHNpbXBsZS4uLlxuICAgIC8vIG1vdmVkIHRoaXMgZnJvbSBuZ09uSW5pdCgpIGFuZCBjYWxsIHRoaXMgZnJvbSB0aGVyZSBpbnN0ZWFkLi4uXG4gICAgdGhpcy5jb25maWdQcm9wcyQgPSB0aGlzLnBDb25uJC5yZXNvbHZlQ29uZmlnUHJvcHModGhpcy5wQ29ubiQuZ2V0Q29uZmlnUHJvcHMoKSkgYXMgRGF0ZVByb3BzO1xuXG4gICAgaWYgKHRoaXMuY29uZmlnUHJvcHMkLnZhbHVlICE9IHVuZGVmaW5lZCkge1xuICAgICAgbGV0IHNEYXRlVmFsdWU6IGFueSA9ICcnO1xuICAgICAgc0RhdGVWYWx1ZSA9IHRoaXMuY29uZmlnUHJvcHMkLnZhbHVlO1xuXG4gICAgICBpZiAoc0RhdGVWYWx1ZSAhPSAnJykge1xuICAgICAgICBpZiAodHlwZW9mIHNEYXRlVmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgc0RhdGVWYWx1ZSA9IHNEYXRlVmFsdWUudG9JU09TdHJpbmcoKTtcbiAgICAgICAgfSBlbHNlIGlmIChzRGF0ZVZhbHVlLmluZGV4T2YoJy8nKSA8IDApIHtcbiAgICAgICAgICAvLyBpZiB3ZSBoYXZlIHRoZSBcInBlZ2FcIiBmb3JtYXQsIHRoZW4gZm9yIGRpc3BsYXksIGNvbnZlcnQgdG8gc3RhbmRhcmQgZm9ybWF0IChVUylcbiAgICAgICAgICAvLyBzRGF0ZVZhbHVlID0gdGhpcy5mb3JtYXREYXRlKHNEYXRlVmFsdWUpO1xuICAgICAgICAgIHNEYXRlVmFsdWUgPSB0aGlzLnV0aWxzLmdlbmVyYXRlRGF0ZShzRGF0ZVZhbHVlLCAnRGF0ZS1Mb25nLUN1c3RvbS1ZWVlZJyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy52YWx1ZSQgPSBuZXcgRGF0ZShzRGF0ZVZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy50ZXN0SWQgPSB0aGlzLmNvbmZpZ1Byb3BzJC50ZXN0SWQ7XG4gICAgdGhpcy5sYWJlbCQgPSB0aGlzLmNvbmZpZ1Byb3BzJC5sYWJlbDtcbiAgICB0aGlzLmRpc3BsYXlNb2RlJCA9IHRoaXMuY29uZmlnUHJvcHMkLmRpc3BsYXlNb2RlO1xuICAgIHRoaXMuaGVscGVyVGV4dCA9IHRoaXMuY29uZmlnUHJvcHMkLmhlbHBlclRleHQ7XG4gICAgdGhpcy5wbGFjZWhvbGRlciA9IHRoaXMuY29uZmlnUHJvcHMkLnBsYWNlaG9sZGVyIHx8ICcnO1xuXG4gICAgLy8gdGltZW91dCBhbmQgZGV0ZWN0Q2hhbmdlcyB0byBhdm9pZCBFeHByZXNzaW9uQ2hhbmdlZEFmdGVySXRIYXNCZWVuQ2hlY2tlZEVycm9yXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5jb25maWdQcm9wcyQucmVxdWlyZWQgIT0gbnVsbCkge1xuICAgICAgICB0aGlzLmJSZXF1aXJlZCQgPSB0aGlzLnV0aWxzLmdldEJvb2xlYW5WYWx1ZSh0aGlzLmNvbmZpZ1Byb3BzJC5yZXF1aXJlZCk7XG4gICAgICB9XG4gICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLmNvbmZpZ1Byb3BzJC52aXNpYmlsaXR5ICE9IG51bGwpIHtcbiAgICAgIHRoaXMuYlZpc2libGUkID0gdGhpcy51dGlscy5nZXRCb29sZWFuVmFsdWUodGhpcy5jb25maWdQcm9wcyQudmlzaWJpbGl0eSk7XG4gICAgfVxuXG4gICAgLy8gZGlzYWJsZWRcbiAgICBpZiAodGhpcy5jb25maWdQcm9wcyQuZGlzYWJsZWQgIT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmJEaXNhYmxlZCQgPSB0aGlzLnV0aWxzLmdldEJvb2xlYW5WYWx1ZSh0aGlzLmNvbmZpZ1Byb3BzJC5kaXNhYmxlZCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuYkRpc2FibGVkJCkge1xuICAgICAgdGhpcy5maWVsZENvbnRyb2wuZGlzYWJsZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZpZWxkQ29udHJvbC5lbmFibGUoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jb25maWdQcm9wcyQucmVhZE9ubHkgIT0gbnVsbCkge1xuICAgICAgdGhpcy5iUmVhZG9ubHkkID0gdGhpcy51dGlscy5nZXRCb29sZWFuVmFsdWUodGhpcy5jb25maWdQcm9wcyQucmVhZE9ubHkpO1xuICAgIH1cblxuICAgIHRoaXMuY29tcG9uZW50UmVmZXJlbmNlID0gKHRoaXMucENvbm4kLmdldFN0YXRlUHJvcHMoKSBhcyBhbnkpLnZhbHVlO1xuXG4gICAgLy8gdHJpZ2dlciBkaXNwbGF5IG9mIGVycm9yIG1lc3NhZ2Ugd2l0aCBmaWVsZCBjb250cm9sXG4gICAgaWYgKHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YS52YWxpZGF0ZU1lc3NhZ2UgIT0gbnVsbCAmJiB0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEudmFsaWRhdGVNZXNzYWdlICE9ICcnKSB7XG4gICAgICBjb25zdCB0aW1lciA9IGludGVydmFsKDEwMCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5maWVsZENvbnRyb2wuc2V0RXJyb3JzKHsgbWVzc2FnZTogdHJ1ZSB9KTtcbiAgICAgICAgdGhpcy5maWVsZENvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuXG4gICAgICAgIHRpbWVyLnVuc3Vic2NyaWJlKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBmaWVsZE9uRGF0ZUNoYW5nZShldmVudDogYW55KSB7XG4gICAgLy8gdGhpcyBjb21lcyBmcm9tIHRoZSBkYXRlIHBvcCB1cFxuICAgIGlmICh0eXBlb2YgZXZlbnQudmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICAvLyBjb252ZXJ0IGRhdGUgdG8gcGVnYSBcImRhdGVcIiBmb3JtYXRcbiAgICAgIGV2ZW50LnZhbHVlID0gZXZlbnQudmFsdWU/LnRvSVNPU3RyaW5nKCk7XG4gICAgfVxuICAgIHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YS5hY3Rpb25zPy5vbkNoYW5nZSh0aGlzLCB7IHZhbHVlOiBldmVudC52YWx1ZSB9KTtcbiAgfVxuXG4gIGZpZWxkT25CbHVyKGV2ZW50OiBhbnkpIHtcbiAgICAvLyBQQ29ubmVjdCB3YW50cyB0byB1c2UgZXZlbnRIYW5kbGVyIGZvciBvbkJsdXJcbiAgICBpZiAodHlwZW9mIGV2ZW50LnZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgICAgLy8gY29udmVydCBkYXRlIHRvIHBlZ2EgXCJkYXRlXCIgZm9ybWF0XG4gICAgICBldmVudC52YWx1ZSA9IGV2ZW50LnZhbHVlPy50b0lTT1N0cmluZygpO1xuICAgIH1cbiAgICB0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEuYWN0aW9ucz8ub25CbHVyKHRoaXMsIHsgdmFsdWU6IGV2ZW50LnZhbHVlIH0pO1xuICB9XG5cbiAgaGFzRXJyb3JzKCkge1xuICAgIHJldHVybiB0aGlzLmZpZWxkQ29udHJvbC5zdGF0dXMgPT09ICdJTlZBTElEJztcbiAgfVxuXG4gIGdldEVycm9yTWVzc2FnZSgpIHtcbiAgICBsZXQgZXJyTWVzc2FnZSA9ICcnO1xuICAgIC8vIGxvb2sgZm9yIHZhbGlkYXRpb24gbWVzc2FnZXMgZm9yIGpzb24sIHByZS1kZWZpbmVkIG9yIGp1c3QgYW4gZXJyb3IgcHVzaGVkIGZyb20gd29ya2l0ZW0gKDQwMClcbiAgICBpZiAodGhpcy5maWVsZENvbnRyb2wuaGFzRXJyb3IoJ21lc3NhZ2UnKSkge1xuICAgICAgZXJyTWVzc2FnZSA9IHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YS52YWxpZGF0ZU1lc3NhZ2UgPz8gJyc7XG4gICAgICByZXR1cm4gZXJyTWVzc2FnZTtcbiAgICB9XG4gICAgaWYgKHRoaXMuZmllbGRDb250cm9sLmhhc0Vycm9yKCdyZXF1aXJlZCcpKSB7XG4gICAgICBlcnJNZXNzYWdlID0gJ1lvdSBtdXN0IGVudGVyIGEgdmFsdWUnO1xuICAgIH0gZWxzZSBpZiAodGhpcy5maWVsZENvbnRyb2wuZXJyb3JzKSB7XG4gICAgICBlcnJNZXNzYWdlID0gYCR7dGhpcy5maWVsZENvbnRyb2wuZXJyb3JzWydtYXREYXRlcGlja2VyUGFyc2UnXS50ZXh0fSBpcyBub3QgYSB2YWxpZCBkYXRlIHZhbHVlYDtcbiAgICB9XG4gICAgcmV0dXJuIGVyck1lc3NhZ2U7XG4gIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCJkaXNwbGF5TW9kZSQ7IGVsc2Ugbm9EaXNwbGF5TW9kZVwiPlxuICA8Y29tcG9uZW50LW1hcHBlciAqbmdJZj1cImJWaXNpYmxlJCAhPT0gZmFsc2VcIiBuYW1lPVwiRmllbGRWYWx1ZUxpc3RcIiBbcHJvcHNdPVwieyBsYWJlbCQsIHZhbHVlJCwgZGlzcGxheU1vZGUkIH1cIj48L2NvbXBvbmVudC1tYXBwZXI+XG48L2Rpdj5cbjxuZy10ZW1wbGF0ZSAjbm9EaXNwbGF5TW9kZT5cbiAgPGRpdiAqbmdJZj1cIiFiUmVhZG9ubHkkICYmIGJIYXNGb3JtJDsgZWxzZSBub0VkaXRcIj5cbiAgICA8ZGl2IFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwJFwiICpuZ0lmPVwiYlZpc2libGUkXCI+XG4gICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJwc2RrLWZ1bGwtd2lkdGhcIiBzdWJzY3JpcHRTaXppbmc9XCJkeW5hbWljXCIgW2hpbnRMYWJlbF09XCJoZWxwZXJUZXh0XCI+XG4gICAgICAgIDxtYXQtbGFiZWw+e3sgbGFiZWwkIH19PC9tYXQtbGFiZWw+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgI2RhdGVJbnB1dFxuICAgICAgICAgIFthdHRyLmRhdGEtdGVzdC1pZF09XCJ0ZXN0SWRcIlxuICAgICAgICAgIFttYXREYXRlcGlja2VyXT1cInBlZ2FkYXRlXCJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiZGF0ZUZvcm1hdEluZm8uZGF0ZUZvcm1hdFN0cmluZ0xDXCJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgW3ZhbHVlXT1cInZhbHVlJFwiXG4gICAgICAgICAgW3JlcXVpcmVkXT1cImJSZXF1aXJlZCRcIlxuICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJmaWVsZENvbnRyb2xcIlxuICAgICAgICAgIChkYXRlQ2hhbmdlKT1cImZpZWxkT25EYXRlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgIChibHVyKT1cImZpZWxkT25CbHVyKCRldmVudClcIlxuICAgICAgICAvPlxuICAgICAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIG1hdFN1ZmZpeCBbZm9yXT1cInBlZ2FkYXRlXCI+PC9tYXQtZGF0ZXBpY2tlci10b2dnbGU+XG4gICAgICAgIDxtYXQtZGF0ZXBpY2tlciAjcGVnYWRhdGUgW3N0YXJ0QXRdPVwidmFsdWUkXCI+PC9tYXQtZGF0ZXBpY2tlcj5cbiAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImZpZWxkQ29udHJvbC5pbnZhbGlkXCI+e3sgZ2V0RXJyb3JNZXNzYWdlKCkgfX08L21hdC1lcnJvcj5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjbm9FZGl0PlxuICA8Y29tcG9uZW50LW1hcHBlciAqbmdJZj1cImJWaXNpYmxlJCAhPT0gZmFsc2VcIiBuYW1lPVwiVGV4dFwiIFtwcm9wc109XCJ7IHBDb25uJCwgZm9ybWF0QXMkOiAnZGF0ZScgfVwiPjwvY29tcG9uZW50LW1hcHBlcj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
225
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXNkay1jb21wb25lbnRzL3NyYy9saWIvX2NvbXBvbmVudHMvZmllbGQvZGF0ZS9kYXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy9maWVsZC9kYXRlL2RhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEseUNBQXlDO0FBQ3pDLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFxQixVQUFVLEVBQUUsTUFBTSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQzNHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFhLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHaEMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDeEcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGlCQUFpQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFL0Ys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TCxDQUFDOytHQWhNVSxhQUFhLDhHQWlDZCxnQkFBZ0I7bUdBakNmLGFBQWEsK0dBRmIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLENBQUMsMEJDeERoRSxnN0NBbUNBLHNkRFlJLFlBQVksZ05BQ1osbUJBQW1CLG8yQ0FDbkIsa0JBQWtCLDJzQkFDbEIsY0FBYyx3YkFDZCxtQkFBbUIsNnBCQUNuQixtQkFBbUIscUVBQ25CLGdCQUFnQixzRUFDQyx3QkFBd0I7OzRGQUloQyxhQUFhO2tCQWpCekIsU0FBUzsrQkFDRSxVQUFVLGNBR1IsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLGNBQWM7d0JBQ2QsbUJBQW1CO3dCQUNuQixtQkFBbUI7d0JBQ25CLGdCQUFnQjt3QkFDaEIsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHdCQUF3QixDQUFDO3FCQUMzQyxhQUNVLENBQUMsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDOzswQkFtQzNELE1BQU07MkJBQUMsZ0JBQWdCOzRDQWhDakIsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBtYXgtY2xhc3Nlcy1wZXItZmlsZSAqL1xuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBDaGFuZ2VEZXRlY3RvclJlZiwgZm9yd2FyZFJlZiwgSW5qZWN0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0RGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xuaW1wb3J0IHsgTWF0TmF0aXZlRGF0ZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1BVF9EQVRFX0ZPUk1BVFMgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IE1vbWVudERhdGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC1tb21lbnQtYWRhcHRlcic7XG5pbXBvcnQgeyBpbnRlcnZhbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQW5ndWxhclBDb25uZWN0RGF0YSwgQW5ndWxhclBDb25uZWN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19icmlkZ2UvYW5ndWxhci1wY29ubmVjdCc7XG5pbXBvcnQgeyBVdGlscyB9IGZyb20gJy4uLy4uLy4uL19oZWxwZXJzL3V0aWxzJztcbmltcG9ydCB7IENvbXBvbmVudE1hcHBlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL19icmlkZ2UvY29tcG9uZW50LW1hcHBlci9jb21wb25lbnQtbWFwcGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBkYXRlRm9ybWF0SW5mb0RlZmF1bHQsIGdldERhdGVGb3JtYXRJbmZvIH0gZnJvbSAnLi4vLi4vLi4vX2hlbHBlcnMvZGF0ZS1mb3JtYXQtdXRpbHMnO1xuaW1wb3J0IHsgUENvbm5GaWVsZFByb3BzIH0gZnJvbSAnLi4vLi4vLi4vX3R5cGVzL1BDb25uUHJvcHMuaW50ZXJmYWNlJztcbmltcG9ydCB7IGZvcm1hdCB9IGZyb20gJy4uLy4uLy4uL19oZWxwZXJzL2Zvcm1hdHRlcnMnO1xuXG5pbnRlcmZhY2UgRGF0ZVByb3BzIGV4dGVuZHMgUENvbm5GaWVsZFByb3BzIHtcbiAgLy8gSWYgYW55LCBlbnRlciBhZGRpdGlvbmFsIHByb3BzIHRoYXQgb25seSBleGlzdCBvbiBEYXRlIGhlcmVcbn1cblxuY2xhc3MgTXlGb3JtYXQge1xuICB0aGVEYXRlRm9ybWF0OiBhbnkgPSBnZXREYXRlRm9ybWF0SW5mbygpO1xuXG4gIGdldCBkaXNwbGF5KCkge1xuICAgIHJldHVybiB7XG4gICAgICBkYXRlSW5wdXQ6IHRoaXMudGhlRGF0ZUZvcm1hdC5kYXRlRm9ybWF0U3RyaW5nLFxuICAgICAgbW9udGhZZWFyTGFiZWw6ICdNTU0gWVlZWScsXG4gICAgICBkYXRlQTExeUxhYmVsOiAnTEwnLFxuICAgICAgbW9udGhZZWFyQTExeUxhYmVsOiAnTU1NTSBZWVlZJ1xuICAgIH07XG4gIH1cblxuICBnZXQgcGFyc2UoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRhdGVJbnB1dDogdGhpcy50aGVEYXRlRm9ybWF0LmRhdGVGb3JtYXRTdHJpbmdcbiAgICB9O1xuICB9XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1kYXRlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kYXRlLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgTWF0RGF0ZXBpY2tlck1vZHVsZSxcbiAgICBNYXROYXRpdmVEYXRlTW9kdWxlLFxuICAgIE1vbWVudERhdGVNb2R1bGUsXG4gICAgZm9yd2FyZFJlZigoKSA9PiBDb21wb25lbnRNYXBwZXJDb21wb25lbnQpXG4gIF0sXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTUFUX0RBVEVfRk9STUFUUywgdXNlQ2xhc3M6IE15Rm9ybWF0IH1dXG59KVxuZXhwb3J0IGNsYXNzIERhdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHBDb25uJDogdHlwZW9mIFBDb25uZWN0O1xuICBASW5wdXQoKSBmb3JtR3JvdXAkOiBGb3JtR3JvdXA7XG5cbiAgLy8gVXNlZCB3aXRoIEFuZ3VsYXJQQ29ubmVjdFxuICBhbmd1bGFyUENvbm5lY3REYXRhOiBBbmd1bGFyUENvbm5lY3REYXRhID0ge307XG4gIGNvbmZpZ1Byb3BzJDogRGF0ZVByb3BzO1xuXG4gIGxhYmVsJCA9ICcnO1xuICB2YWx1ZSQ6IGFueTtcbiAgYlJlcXVpcmVkJCA9IGZhbHNlO1xuICBiUmVhZG9ubHkkID0gZmFsc2U7XG4gIGJEaXNhYmxlZCQgPSBmYWxzZTtcbiAgYlZpc2libGUkID0gdHJ1ZTtcbiAgZGlzcGxheU1vZGUkPzogc3RyaW5nID0gJyc7XG4gIGNvbnRyb2xOYW1lJDogc3RyaW5nO1xuICBiSGFzRm9ybSQgPSB0cnVlO1xuICBjb21wb25lbnRSZWZlcmVuY2UgPSAnJztcbiAgdGVzdElkID0gJyc7XG4gIGhlbHBlclRleHQ6IHN0cmluZztcbiAgcGxhY2Vob2xkZXI6IHN0cmluZztcblxuICBmaWVsZENvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woJycsIG51bGwpO1xuXG4gIC8vIFN0YXJ0IHdpdGggZGVmYXVsdCBkYXRlRm9ybWF0SW5mb1xuICBkYXRlRm9ybWF0SW5mbyA9IGRhdGVGb3JtYXRJbmZvRGVmYXVsdDtcbiAgLy8gYW5kIHRoZW4gdXBkYXRlLCBhcyBuZWVkZWQsIGJhc2VkIG9uIGxvY2FsZSwgZXRjLlxuICB0aGVEYXRlRm9ybWF0OiBhbnkgPSBnZXREYXRlRm9ybWF0SW5mbygpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYW5ndWxhclBDb25uZWN0OiBBbmd1bGFyUENvbm5lY3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgdXRpbHM6IFV0aWxzLFxuICAgIEBJbmplY3QoTUFUX0RBVEVfRk9STUFUUykgcHJpdmF0ZSBjb25maWc6IE15Rm9ybWF0XG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGVGb3JtYXRJbmZvID0gdGhpcy50aGVEYXRlRm9ybWF0O1xuICAgIC8vIEZpcnN0IHRoaW5nIGluIGluaXRpYWxpemF0aW9uIGlzIHJlZ2lzdGVyaW5nIGFuZCBzdWJzY3JpYmluZyB0byB0aGUgQW5ndWxhclBDb25uZWN0IHNlcnZpY2VcbiAgICB0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEgPSB0aGlzLmFuZ3VsYXJQQ29ubmVjdC5yZWdpc3RlckFuZFN1YnNjcmliZUNvbXBvbmVudCh0aGlzLCB0aGlzLm9uU3RhdGVDaGFuZ2UpO1xuICAgIHRoaXMuY29udHJvbE5hbWUkID0gdGhpcy5hbmd1bGFyUENvbm5lY3QuZ2V0Q29tcG9uZW50SUQodGhpcyk7XG5cbiAgICAvLyBUaGVuLCBjb250aW51ZSBvbiB3aXRoIG90aGVyIGluaXRpYWxpemF0aW9uXG4gICAgLy8gY2FsbCB1cGRhdGVTZWxmIHdoZW4gaW5pdGlhbGl6aW5nXG4gICAgLy8gdGhpcy51cGRhdGVTZWxmKCk7XG4gICAgdGhpcy5jaGVja0FuZFVwZGF0ZSgpO1xuXG4gICAgaWYgKHRoaXMuZm9ybUdyb3VwJCkge1xuICAgICAgLy8gYWRkIGNvbnRyb2wgdG8gZm9ybUdyb3VwXG4gICAgICB0aGlzLmZvcm1Hcm91cCQuYWRkQ29udHJvbCh0aGlzLmNvbnRyb2xOYW1lJCwgdGhpcy5maWVsZENvbnRyb2wpO1xuICAgICAgdGhpcy5maWVsZENvbnRyb2wuc2V0VmFsdWUodGhpcy52YWx1ZSQpO1xuICAgICAgdGhpcy5iSGFzRm9ybSQgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmJSZWFkb25seSQgPSB0cnVlO1xuICAgICAgdGhpcy5iSGFzRm9ybSQgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5mb3JtR3JvdXAkKSB7XG4gICAgICB0aGlzLmZvcm1Hcm91cCQucmVtb3ZlQ29udHJvbCh0aGlzLmNvbnRyb2xOYW1lJCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YS51bnN1YnNjcmliZUZuKSB7XG4gICAgICB0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEudW5zdWJzY3JpYmVGbigpO1xuICAgIH1cbiAgfVxuXG4gIC8vIENhbGxiYWNrIHBhc3NlZCB3aGVuIHN1YnNjcmliaW5nIHRvIHN0b3JlIGNoYW5nZVxuICBvblN0YXRlQ2hhbmdlKCkge1xuICAgIHRoaXMuY2hlY2tBbmRVcGRhdGUoKTtcbiAgfVxuXG4gIGNoZWNrQW5kVXBkYXRlKCkge1xuICAgIC8vIFNob3VsZCBhbHdheXMgY2hlY2sgdGhlIGJyaWRnZSB0byBzZWUgaWYgdGhlIGNvbXBvbmVudCBzaG91bGRcbiAgICAvLyB1cGRhdGUgaXRzZWxmIChyZS1yZW5kZXIpXG4gICAgY29uc3QgYlVwZGF0ZVNlbGYgPSB0aGlzLmFuZ3VsYXJQQ29ubmVjdC5zaG91bGRDb21wb25lbnRVcGRhdGUodGhpcyk7XG5cbiAgICAvLyBPTkxZIGNhbGwgdXBkYXRlU2VsZiB3aGVuIHRoZSBjb21wb25lbnQgc2hvdWxkIHVwZGF0ZVxuICAgIGlmIChiVXBkYXRlU2VsZikge1xuICAgICAgdGhpcy51cGRhdGVTZWxmKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gdXBkYXRlU2VsZlxuICB1cGRhdGVTZWxmKCk6IHZvaWQge1xuICAgIC8vIHN0YXJ0aW5nIHZlcnkgc2ltcGxlLi4uXG4gICAgLy8gbW92ZWQgdGhpcyBmcm9tIG5nT25Jbml0KCkgYW5kIGNhbGwgdGhpcyBmcm9tIHRoZXJlIGluc3RlYWQuLi5cbiAgICB0aGlzLmNvbmZpZ1Byb3BzJCA9IHRoaXMucENvbm4kLnJlc29sdmVDb25maWdQcm9wcyh0aGlzLnBDb25uJC5nZXRDb25maWdQcm9wcygpKSBhcyBEYXRlUHJvcHM7XG5cbiAgICBpZiAodGhpcy5jb25maWdQcm9wcyQudmFsdWUgIT0gdW5kZWZpbmVkKSB7XG4gICAgICBsZXQgc0RhdGVWYWx1ZTogYW55ID0gJyc7XG4gICAgICBzRGF0ZVZhbHVlID0gdGhpcy5jb25maWdQcm9wcyQudmFsdWU7XG5cbiAgICAgIGlmIChzRGF0ZVZhbHVlICE9ICcnKSB7XG4gICAgICAgIGlmICh0eXBlb2Ygc0RhdGVWYWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICBzRGF0ZVZhbHVlID0gc0RhdGVWYWx1ZS50b0lTT1N0cmluZygpO1xuICAgICAgICB9IGVsc2UgaWYgKHNEYXRlVmFsdWUuaW5kZXhPZignLycpIDwgMCkge1xuICAgICAgICAgIC8vIGlmIHdlIGhhdmUgdGhlIFwicGVnYVwiIGZvcm1hdCwgdGhlbiBmb3IgZGlzcGxheSwgY29udmVydCB0byBzdGFuZGFyZCBmb3JtYXQgKFVTKVxuICAgICAgICAgIC8vIHNEYXRlVmFsdWUgPSB0aGlzLmZvcm1hdERhdGUoc0RhdGVWYWx1ZSk7XG4gICAgICAgICAgc0RhdGVWYWx1ZSA9IHRoaXMudXRpbHMuZ2VuZXJhdGVEYXRlKHNEYXRlVmFsdWUsICdEYXRlLUxvbmctQ3VzdG9tLVlZWVknKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnZhbHVlJCA9IG5ldyBEYXRlKHNEYXRlVmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnRlc3RJZCA9IHRoaXMuY29uZmlnUHJvcHMkLnRlc3RJZDtcbiAgICB0aGlzLmxhYmVsJCA9IHRoaXMuY29uZmlnUHJvcHMkLmxhYmVsO1xuICAgIHRoaXMuZGlzcGxheU1vZGUkID0gdGhpcy5jb25maWdQcm9wcyQuZGlzcGxheU1vZGU7XG4gICAgdGhpcy5oZWxwZXJUZXh0ID0gdGhpcy5jb25maWdQcm9wcyQuaGVscGVyVGV4dDtcbiAgICB0aGlzLnBsYWNlaG9sZGVyID0gdGhpcy5jb25maWdQcm9wcyQucGxhY2Vob2xkZXIgfHwgJyc7XG5cbiAgICAvLyB0aW1lb3V0IGFuZCBkZXRlY3RDaGFuZ2VzIHRvIGF2b2lkIEV4cHJlc3Npb25DaGFuZ2VkQWZ0ZXJJdEhhc0JlZW5DaGVja2VkRXJyb3JcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmNvbmZpZ1Byb3BzJC5yZXF1aXJlZCAhPSBudWxsKSB7XG4gICAgICAgIHRoaXMuYlJlcXVpcmVkJCA9IHRoaXMudXRpbHMuZ2V0Qm9vbGVhblZhbHVlKHRoaXMuY29uZmlnUHJvcHMkLnJlcXVpcmVkKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuY29uZmlnUHJvcHMkLnZpc2liaWxpdHkgIT0gbnVsbCkge1xuICAgICAgdGhpcy5iVmlzaWJsZSQgPSB0aGlzLnV0aWxzLmdldEJvb2xlYW5WYWx1ZSh0aGlzLmNvbmZpZ1Byb3BzJC52aXNpYmlsaXR5KTtcbiAgICB9XG5cbiAgICAvLyBkaXNhYmxlZFxuICAgIGlmICh0aGlzLmNvbmZpZ1Byb3BzJC5kaXNhYmxlZCAhPSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuYkRpc2FibGVkJCA9IHRoaXMudXRpbHMuZ2V0Qm9vbGVhblZhbHVlKHRoaXMuY29uZmlnUHJvcHMkLmRpc2FibGVkKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5iRGlzYWJsZWQkKSB7XG4gICAgICB0aGlzLmZpZWxkQ29udHJvbC5kaXNhYmxlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZmllbGRDb250cm9sLmVuYWJsZSgpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNvbmZpZ1Byb3BzJC5yZWFkT25seSAhPSBudWxsKSB7XG4gICAgICB0aGlzLmJSZWFkb25seSQgPSB0aGlzLnV0aWxzLmdldEJvb2xlYW5WYWx1ZSh0aGlzLmNvbmZpZ1Byb3BzJC5yZWFkT25seSk7XG4gICAgfVxuXG4gICAgdGhpcy5jb21wb25lbnRSZWZlcmVuY2UgPSAodGhpcy5wQ29ubiQuZ2V0U3RhdGVQcm9wcygpIGFzIGFueSkudmFsdWU7XG5cbiAgICAvLyB0cmlnZ2VyIGRpc3BsYXkgb2YgZXJyb3IgbWVzc2FnZSB3aXRoIGZpZWxkIGNvbnRyb2xcbiAgICBpZiAodGhpcy5hbmd1bGFyUENvbm5lY3REYXRhLnZhbGlkYXRlTWVzc2FnZSAhPSBudWxsICYmIHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YS52YWxpZGF0ZU1lc3NhZ2UgIT0gJycpIHtcbiAgICAgIGNvbnN0IHRpbWVyID0gaW50ZXJ2YWwoMTAwKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmZpZWxkQ29udHJvbC5zZXRFcnJvcnMoeyBtZXNzYWdlOiB0cnVlIH0pO1xuICAgICAgICB0aGlzLmZpZWxkQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG5cbiAgICAgICAgdGltZXIudW5zdWJzY3JpYmUoKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGZpZWxkT25EYXRlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICAvLyB0aGlzIGNvbWVzIGZyb20gdGhlIGRhdGUgcG9wIHVwXG4gICAgaWYgKHR5cGVvZiBldmVudC52YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIC8vIGNvbnZlcnQgZGF0ZSB0byBwZWdhIFwiZGF0ZVwiIGZvcm1hdFxuICAgICAgZXZlbnQudmFsdWUgPSBldmVudC52YWx1ZT8udG9JU09TdHJpbmcoKTtcbiAgICB9XG4gICAgdGhpcy5hbmd1bGFyUENvbm5lY3REYXRhLmFjdGlvbnM/Lm9uQ2hhbmdlKHRoaXMsIHsgdmFsdWU6IGV2ZW50LnZhbHVlIH0pO1xuICB9XG5cbiAgZmllbGRPbkJsdXIoZXZlbnQ6IGFueSkge1xuICAgIC8vIFBDb25uZWN0IHdhbnRzIHRvIHVzZSBldmVudEhhbmRsZXIgZm9yIG9uQmx1clxuICAgIGlmICh0eXBlb2YgZXZlbnQudmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICAvLyBjb252ZXJ0IGRhdGUgdG8gcGVnYSBcImRhdGVcIiBmb3JtYXRcbiAgICAgIGV2ZW50LnZhbHVlID0gZXZlbnQudmFsdWU/LnRvSVNPU3RyaW5nKCk7XG4gICAgfVxuICAgIHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YS5hY3Rpb25zPy5vbkJsdXIodGhpcywgeyB2YWx1ZTogZXZlbnQudmFsdWUgfSk7XG4gIH1cblxuICBoYXNFcnJvcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGRDb250cm9sLnN0YXR1cyA9PT0gJ0lOVkFMSUQnO1xuICB9XG5cbiAgZ2V0RXJyb3JNZXNzYWdlKCkge1xuICAgIGxldCBlcnJNZXNzYWdlID0gJyc7XG4gICAgLy8gbG9vayBmb3IgdmFsaWRhdGlvbiBtZXNzYWdlcyBmb3IganNvbiwgcHJlLWRlZmluZWQgb3IganVzdCBhbiBlcnJvciBwdXNoZWQgZnJvbSB3b3JraXRlbSAoNDAwKVxuICAgIGlmICh0aGlzLmZpZWxkQ29udHJvbC5oYXNFcnJvcignbWVzc2FnZScpKSB7XG4gICAgICBlcnJNZXNzYWdlID0gdGhpcy5hbmd1bGFyUENvbm5lY3REYXRhLnZhbGlkYXRlTWVzc2FnZSA/PyAnJztcbiAgICAgIHJldHVybiBlcnJNZXNzYWdlO1xuICAgIH1cbiAgICBpZiAodGhpcy5maWVsZENvbnRyb2wuaGFzRXJyb3IoJ3JlcXVpcmVkJykpIHtcbiAgICAgIGVyck1lc3NhZ2UgPSAnWW91IG11c3QgZW50ZXIgYSB2YWx1ZSc7XG4gICAgfSBlbHNlIGlmICh0aGlzLmZpZWxkQ29udHJvbC5lcnJvcnMpIHtcbiAgICAgIGVyck1lc3NhZ2UgPSBgJHt0aGlzLmZpZWxkQ29udHJvbC5lcnJvcnNbJ21hdERhdGVwaWNrZXJQYXJzZSddLnRleHR9IGlzIG5vdCBhIHZhbGlkIGRhdGUgdmFsdWVgO1xuICAgIH1cbiAgICByZXR1cm4gZXJyTWVzc2FnZTtcbiAgfVxuXG4gIGdldEZvcm1hdHRlZFZhbHVlKCkge1xuICAgIHJldHVybiBmb3JtYXQodGhpcy52YWx1ZSQsICdkYXRlJywge1xuICAgICAgZm9ybWF0OiB0aGlzLnRoZURhdGVGb3JtYXQuZGF0ZUZvcm1hdFN0cmluZ1xuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiZGlzcGxheU1vZGUkOyBlbHNlIG5vRGlzcGxheU1vZGVcIj5cbiAgPGNvbXBvbmVudC1tYXBwZXJcbiAgICAqbmdJZj1cImJWaXNpYmxlJCAhPT0gZmFsc2VcIlxuICAgIG5hbWU9XCJGaWVsZFZhbHVlTGlzdFwiXG4gICAgW3Byb3BzXT1cInsgbGFiZWwkLCB2YWx1ZSQ6IGdldEZvcm1hdHRlZFZhbHVlKCksIGRpc3BsYXlNb2RlJCB9XCJcbiAgPjwvY29tcG9uZW50LW1hcHBlcj5cbjwvZGl2PlxuPG5nLXRlbXBsYXRlICNub0Rpc3BsYXlNb2RlPlxuICA8ZGl2ICpuZ0lmPVwiIWJSZWFkb25seSQgJiYgYkhhc0Zvcm0kOyBlbHNlIG5vRWRpdFwiPlxuICAgIDxkaXYgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXAkXCIgKm5nSWY9XCJiVmlzaWJsZSRcIj5cbiAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInBzZGstZnVsbC13aWR0aFwiIHN1YnNjcmlwdFNpemluZz1cImR5bmFtaWNcIiBbaGludExhYmVsXT1cImhlbHBlclRleHRcIj5cbiAgICAgICAgPG1hdC1sYWJlbD57eyBsYWJlbCQgfX08L21hdC1sYWJlbD5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAjZGF0ZUlucHV0XG4gICAgICAgICAgW2F0dHIuZGF0YS10ZXN0LWlkXT1cInRlc3RJZFwiXG4gICAgICAgICAgW21hdERhdGVwaWNrZXJdPVwicGVnYWRhdGVcIlxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJkYXRlRm9ybWF0SW5mby5kYXRlRm9ybWF0U3RyaW5nTENcIlxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICBbdmFsdWVdPVwidmFsdWUkXCJcbiAgICAgICAgICBbcmVxdWlyZWRdPVwiYlJlcXVpcmVkJFwiXG4gICAgICAgICAgW2Zvcm1Db250cm9sXT1cImZpZWxkQ29udHJvbFwiXG4gICAgICAgICAgKGRhdGVDaGFuZ2UpPVwiZmllbGRPbkRhdGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgKGJsdXIpPVwiZmllbGRPbkJsdXIoJGV2ZW50KVwiXG4gICAgICAgIC8+XG4gICAgICAgIDxtYXQtZGF0ZXBpY2tlci10b2dnbGUgbWF0U3VmZml4IFtmb3JdPVwicGVnYWRhdGVcIj48L21hdC1kYXRlcGlja2VyLXRvZ2dsZT5cbiAgICAgICAgPG1hdC1kYXRlcGlja2VyICNwZWdhZGF0ZSBbc3RhcnRBdF09XCJ2YWx1ZSRcIj48L21hdC1kYXRlcGlja2VyPlxuICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZmllbGRDb250cm9sLmludmFsaWRcIj57eyBnZXRFcnJvck1lc3NhZ2UoKSB9fTwvbWF0LWVycm9yPlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNub0VkaXQ+XG4gIDxjb21wb25lbnQtbWFwcGVyICpuZ0lmPVwiYlZpc2libGUkICE9PSBmYWxzZVwiIG5hbWU9XCJUZXh0XCIgW3Byb3BzXT1cInsgcENvbm4kLCBmb3JtYXRBcyQ6ICdkYXRlJyB9XCI+PC9jb21wb25lbnQtbWFwcGVyPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -0,0 +1,61 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { Component, forwardRef, Input } from '@angular/core';
3
+ import { ReferenceComponent } from '../../infra/reference/reference.component';
4
+ import { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../../../_bridge/angular-pconnect";
7
+ import * as i2 from "@angular/common";
8
+ export class GroupComponent {
9
+ constructor(angularPConnect) {
10
+ this.angularPConnect = angularPConnect;
11
+ // Used with AngularPConnect
12
+ this.angularPConnectData = {};
13
+ }
14
+ ngOnInit() {
15
+ this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);
16
+ this.checkAndUpdate();
17
+ }
18
+ // Callback passed when subscribing to store change
19
+ onStateChange() {
20
+ this.checkAndUpdate();
21
+ }
22
+ checkAndUpdate() {
23
+ // Should always check the bridge to see if the component should
24
+ // update itself (re-render)
25
+ const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);
26
+ // ONLY call updateSelf when the component should update
27
+ if (bUpdateSelf) {
28
+ this.updateSelf();
29
+ }
30
+ }
31
+ updateSelf() {
32
+ this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps());
33
+ this.arChildren$ = ReferenceComponent.normalizePConnArray(this.pConn$.getChildren());
34
+ this.visibility$ = this.configProps$.visibility;
35
+ this.showHeading$ = this.configProps$.showHeading;
36
+ this.heading$ = this.configProps$.heading;
37
+ this.instructions$ = this.configProps$.instructions;
38
+ this.collapsible$ = this.configProps$.collapsible;
39
+ if (this.configProps$.displayMode === 'LABELS_LEFT') {
40
+ if (this.configProps$.visibility === undefined)
41
+ this.visibility$ = true;
42
+ this.arChildren$.forEach(child => {
43
+ const pConn = child.getPConnect();
44
+ pConn.setInheritedProp('displayMode', 'LABELS_LEFT');
45
+ pConn.setInheritedProp('readOnly', true);
46
+ return child;
47
+ });
48
+ }
49
+ }
50
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GroupComponent, deps: [{ token: i1.AngularPConnectService }], target: i0.ɵɵFactoryTarget.Component }); }
51
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GroupComponent, isStandalone: true, selector: "app-group", inputs: { pConn$: "pConn$", formGroup$: "formGroup$" }, ngImport: i0, template: "<ng-container *ngIf=\"visibility$\">\n <component-mapper\n name=\"FieldGroup\"\n [props]=\"{\n name: showHeading$ ? heading$ : undefined,\n collapsible: collapsible$,\n instructions: instructions$,\n childrenTemplate: childrenTemplate\n }\"\n >\n </component-mapper>\n\n <ng-template #childrenTemplate>\n <div *ngFor=\"let kid of arChildren$\">\n <component-mapper\n [name]=\"kid.getPConnect().getComponentName()\"\n [props]=\"{\n pConn$: kid.getPConnect(),\n formGroup$: formGroup$\n }\"\n errorMsg=\"Field Group wants component not yet available: {{ kid.getPConnect().getComponentName() }}\"\n ></component-mapper>\n </div>\n </ng-template>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(function () { return CommonModule; }) }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgForOf; }), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i0.forwardRef(function () { return ComponentMapperComponent; }), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
52
+ }
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GroupComponent, decorators: [{
54
+ type: Component,
55
+ args: [{ selector: 'app-group', standalone: true, imports: [CommonModule, forwardRef(() => ComponentMapperComponent)], template: "<ng-container *ngIf=\"visibility$\">\n <component-mapper\n name=\"FieldGroup\"\n [props]=\"{\n name: showHeading$ ? heading$ : undefined,\n collapsible: collapsible$,\n instructions: instructions$,\n childrenTemplate: childrenTemplate\n }\"\n >\n </component-mapper>\n\n <ng-template #childrenTemplate>\n <div *ngFor=\"let kid of arChildren$\">\n <component-mapper\n [name]=\"kid.getPConnect().getComponentName()\"\n [props]=\"{\n pConn$: kid.getPConnect(),\n formGroup$: formGroup$\n }\"\n errorMsg=\"Field Group wants component not yet available: {{ kid.getPConnect().getComponentName() }}\"\n ></component-mapper>\n </div>\n </ng-template>\n</ng-container>\n" }]
56
+ }], ctorParameters: function () { return [{ type: i1.AngularPConnectService }]; }, propDecorators: { pConn$: [{
57
+ type: Input
58
+ }], formGroup$: [{
59
+ type: Input
60
+ }] } });
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZGstY29tcG9uZW50cy9zcmMvbGliL19jb21wb25lbnRzL2ZpZWxkL2dyb3VwL2dyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy9maWVsZC9ncm91cC9ncm91cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRXJFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBRS9FLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhEQUE4RCxDQUFDOzs7O0FBa0J4RyxNQUFNLE9BQU8sY0FBYztJQWV6QixZQUFvQixlQUF1QztRQUF2QyxvQkFBZSxHQUFmLGVBQWUsQ0FBd0I7UUFKM0QsNEJBQTRCO1FBQzVCLHdCQUFtQixHQUF3QixFQUFFLENBQUM7SUFHZ0IsQ0FBQztJQUUvRCxRQUFRO1FBQ04sSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsNkJBQTZCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUV4RyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELG1EQUFtRDtJQUNuRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxjQUFjO1FBQ1osZ0VBQWdFO1FBQ2hFLDRCQUE0QjtRQUM1QixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXJFLHdEQUF3RDtRQUN4RCxJQUFJLFdBQVcsRUFBRTtZQUNmLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztTQUNuQjtJQUNILENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLENBQWUsQ0FBQztRQUMvRixJQUFJLENBQUMsV0FBVyxHQUFHLGtCQUFrQixDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUNyRixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDO1FBQ2hELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUM7UUFDbEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQztRQUMxQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDO1FBQ3BELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUM7UUFFbEQsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsS0FBSyxhQUFhLEVBQUU7WUFDbkQsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsS0FBSyxTQUFTO2dCQUFFLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1lBRXhFLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUMvQixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ2xDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsYUFBYSxDQUFDLENBQUM7Z0JBQ3JELEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBRXpDLE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7K0dBM0RVLGNBQWM7bUdBQWQsY0FBYyw2SEN2QjNCLHV2QkF5QkEsNEZESlksWUFBWSxxWEFBbUIsd0JBQXdCOzs0RkFFdEQsY0FBYztrQkFQMUIsU0FBUzsrQkFDRSxXQUFXLGNBR1QsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDOzZHQUcxRCxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGZvcndhcmRSZWYsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFJlZmVyZW5jZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2luZnJhL3JlZmVyZW5jZS9yZWZlcmVuY2UuY29tcG9uZW50JztcbmltcG9ydCB7IEFuZ3VsYXJQQ29ubmVjdERhdGEsIEFuZ3VsYXJQQ29ubmVjdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9fYnJpZGdlL2FuZ3VsYXItcGNvbm5lY3QnO1xuaW1wb3J0IHsgQ29tcG9uZW50TWFwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vX2JyaWRnZS9jb21wb25lbnQtbWFwcGVyL2NvbXBvbmVudC1tYXBwZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFBDb25uRmllbGRQcm9wcyB9IGZyb20gJy4uLy4uLy4uL190eXBlcy9QQ29ublByb3BzLmludGVyZmFjZSc7XG5cbmludGVyZmFjZSBHcm91cFByb3BzIGV4dGVuZHMgUENvbm5GaWVsZFByb3BzIHtcbiAgLy8gSWYgYW55LCBlbnRlciBhZGRpdGlvbmFsIHByb3BzIHRoYXQgb25seSBleGlzdCBvbiBHcm91cCBoZXJlXG4gIHNob3dIZWFkaW5nOiBib29sZWFuO1xuICBoZWFkaW5nOiBzdHJpbmc7XG4gIGluc3RydWN0aW9uczogc3RyaW5nO1xuICBjb2xsYXBzaWJsZTogYm9vbGVhbjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWdyb3VwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2dyb3VwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZ3JvdXAuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgZm9yd2FyZFJlZigoKSA9PiBDb21wb25lbnRNYXBwZXJDb21wb25lbnQpXVxufSlcbmV4cG9ydCBjbGFzcyBHcm91cENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHBDb25uJDogdHlwZW9mIFBDb25uZWN0O1xuICBASW5wdXQoKSBmb3JtR3JvdXAkOiBGb3JtR3JvdXA7XG5cbiAgYXJDaGlsZHJlbiQ6IGFueVtdO1xuICB2aXNpYmlsaXR5JD86IGJvb2xlYW47XG4gIHNob3dIZWFkaW5nJD86IGJvb2xlYW47XG4gIGhlYWRpbmckOiBzdHJpbmc7XG4gIGluc3RydWN0aW9ucyQ6IHN0cmluZztcbiAgY29sbGFwc2libGUkOiBib29sZWFuO1xuXG4gIC8vIFVzZWQgd2l0aCBBbmd1bGFyUENvbm5lY3RcbiAgYW5ndWxhclBDb25uZWN0RGF0YTogQW5ndWxhclBDb25uZWN0RGF0YSA9IHt9O1xuICBjb25maWdQcm9wcyQ6IEdyb3VwUHJvcHM7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhbmd1bGFyUENvbm5lY3Q6IEFuZ3VsYXJQQ29ubmVjdFNlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5hbmd1bGFyUENvbm5lY3REYXRhID0gdGhpcy5hbmd1bGFyUENvbm5lY3QucmVnaXN0ZXJBbmRTdWJzY3JpYmVDb21wb25lbnQodGhpcywgdGhpcy5vblN0YXRlQ2hhbmdlKTtcblxuICAgIHRoaXMuY2hlY2tBbmRVcGRhdGUoKTtcbiAgfVxuXG4gIC8vIENhbGxiYWNrIHBhc3NlZCB3aGVuIHN1YnNjcmliaW5nIHRvIHN0b3JlIGNoYW5nZVxuICBvblN0YXRlQ2hhbmdlKCkge1xuICAgIHRoaXMuY2hlY2tBbmRVcGRhdGUoKTtcbiAgfVxuXG4gIGNoZWNrQW5kVXBkYXRlKCkge1xuICAgIC8vIFNob3VsZCBhbHdheXMgY2hlY2sgdGhlIGJyaWRnZSB0byBzZWUgaWYgdGhlIGNvbXBvbmVudCBzaG91bGRcbiAgICAvLyB1cGRhdGUgaXRzZWxmIChyZS1yZW5kZXIpXG4gICAgY29uc3QgYlVwZGF0ZVNlbGYgPSB0aGlzLmFuZ3VsYXJQQ29ubmVjdC5zaG91bGRDb21wb25lbnRVcGRhdGUodGhpcyk7XG5cbiAgICAvLyBPTkxZIGNhbGwgdXBkYXRlU2VsZiB3aGVuIHRoZSBjb21wb25lbnQgc2hvdWxkIHVwZGF0ZVxuICAgIGlmIChiVXBkYXRlU2VsZikge1xuICAgICAgdGhpcy51cGRhdGVTZWxmKCk7XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlU2VsZigpOiB2b2lkIHtcbiAgICB0aGlzLmNvbmZpZ1Byb3BzJCA9IHRoaXMucENvbm4kLnJlc29sdmVDb25maWdQcm9wcyh0aGlzLnBDb25uJC5nZXRDb25maWdQcm9wcygpKSBhcyBHcm91cFByb3BzO1xuICAgIHRoaXMuYXJDaGlsZHJlbiQgPSBSZWZlcmVuY2VDb21wb25lbnQubm9ybWFsaXplUENvbm5BcnJheSh0aGlzLnBDb25uJC5nZXRDaGlsZHJlbigpKTtcbiAgICB0aGlzLnZpc2liaWxpdHkkID0gdGhpcy5jb25maWdQcm9wcyQudmlzaWJpbGl0eTtcbiAgICB0aGlzLnNob3dIZWFkaW5nJCA9IHRoaXMuY29uZmlnUHJvcHMkLnNob3dIZWFkaW5nO1xuICAgIHRoaXMuaGVhZGluZyQgPSB0aGlzLmNvbmZpZ1Byb3BzJC5oZWFkaW5nO1xuICAgIHRoaXMuaW5zdHJ1Y3Rpb25zJCA9IHRoaXMuY29uZmlnUHJvcHMkLmluc3RydWN0aW9ucztcbiAgICB0aGlzLmNvbGxhcHNpYmxlJCA9IHRoaXMuY29uZmlnUHJvcHMkLmNvbGxhcHNpYmxlO1xuXG4gICAgaWYgKHRoaXMuY29uZmlnUHJvcHMkLmRpc3BsYXlNb2RlID09PSAnTEFCRUxTX0xFRlQnKSB7XG4gICAgICBpZiAodGhpcy5jb25maWdQcm9wcyQudmlzaWJpbGl0eSA9PT0gdW5kZWZpbmVkKSB0aGlzLnZpc2liaWxpdHkkID0gdHJ1ZTtcblxuICAgICAgdGhpcy5hckNoaWxkcmVuJC5mb3JFYWNoKGNoaWxkID0+IHtcbiAgICAgICAgY29uc3QgcENvbm4gPSBjaGlsZC5nZXRQQ29ubmVjdCgpO1xuICAgICAgICBwQ29ubi5zZXRJbmhlcml0ZWRQcm9wKCdkaXNwbGF5TW9kZScsICdMQUJFTFNfTEVGVCcpO1xuICAgICAgICBwQ29ubi5zZXRJbmhlcml0ZWRQcm9wKCdyZWFkT25seScsIHRydWUpO1xuXG4gICAgICAgIHJldHVybiBjaGlsZDtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cInZpc2liaWxpdHkkXCI+XG4gIDxjb21wb25lbnQtbWFwcGVyXG4gICAgbmFtZT1cIkZpZWxkR3JvdXBcIlxuICAgIFtwcm9wc109XCJ7XG4gICAgICBuYW1lOiBzaG93SGVhZGluZyQgPyBoZWFkaW5nJCA6IHVuZGVmaW5lZCxcbiAgICAgIGNvbGxhcHNpYmxlOiBjb2xsYXBzaWJsZSQsXG4gICAgICBpbnN0cnVjdGlvbnM6IGluc3RydWN0aW9ucyQsXG4gICAgICBjaGlsZHJlblRlbXBsYXRlOiBjaGlsZHJlblRlbXBsYXRlXG4gICAgfVwiXG4gID5cbiAgPC9jb21wb25lbnQtbWFwcGVyPlxuXG4gIDxuZy10ZW1wbGF0ZSAjY2hpbGRyZW5UZW1wbGF0ZT5cbiAgICA8ZGl2ICpuZ0Zvcj1cImxldCBraWQgb2YgYXJDaGlsZHJlbiRcIj5cbiAgICAgIDxjb21wb25lbnQtbWFwcGVyXG4gICAgICAgIFtuYW1lXT1cImtpZC5nZXRQQ29ubmVjdCgpLmdldENvbXBvbmVudE5hbWUoKVwiXG4gICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgcENvbm4kOiBraWQuZ2V0UENvbm5lY3QoKSxcbiAgICAgICAgICBmb3JtR3JvdXAkOiBmb3JtR3JvdXAkXG4gICAgICAgIH1cIlxuICAgICAgICBlcnJvck1zZz1cIkZpZWxkIEdyb3VwIHdhbnRzIGNvbXBvbmVudCBub3QgeWV0IGF2YWlsYWJsZToge3sga2lkLmdldFBDb25uZWN0KCkuZ2V0Q29tcG9uZW50TmFtZSgpIH19XCJcbiAgICAgID48L2NvbXBvbmVudC1tYXBwZXI+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -85,7 +85,7 @@ export class AppShellComponent {
85
85
  if (this.sErrorMessages.indexOf(errorMessages.actionMessage) < 0) {
86
86
  this.sErrorMessages = this.sErrorMessages.concat(errorMessages.actionMessage).concat('\n');
87
87
  if (this.bOkDisplayError) {
88
- const config = { panelClass: ['snackbar-newline'] };
88
+ const config = { panelClass: ['snackbar-newline'], duration: 5000 };
89
89
  this.snackBarRef = this.snackBar.open(this.sErrorMessages, 'Ok', config);
90
90
  }
91
91
  }
@@ -99,7 +99,7 @@ export class AppShellComponent {
99
99
  }
100
100
  this.bOkDisplayError = true;
101
101
  if (this.bOkDisplayError) {
102
- const config = { panelClass: ['snackbar-newline'] };
102
+ const config = { panelClass: ['snackbar-newline'], duration: 5000 };
103
103
  this.snackBarRef = this.snackBar.open(this.sErrorMessages, 'Ok', config);
104
104
  }
105
105
  // this.snackBarRef.afterDismissed().subscribe( info => {
@@ -137,4 +137,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
137
137
  }], ctorParameters: function () { return [{ type: i1.AngularPConnectService }, { type: i2.ErrorMessagesService }, { type: i3.MatSnackBar }, { type: i0.NgZone }]; }, propDecorators: { pConn$: [{
138
138
  type: Input
139
139
  }] } });
140
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLXNoZWxsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9hcHAtc2hlbGwvYXBwLXNoZWxsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9hcHAtc2hlbGwvYXBwLXNoZWxsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFVLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN4RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFlLE1BQU0sNkJBQTZCLENBQUM7QUFJN0UsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOERBQThELENBQUM7Ozs7OztBQThCeEcsTUFBTSxPQUFPLGlCQUFpQjtJQW1CNUIsWUFDVSxlQUF1QyxFQUN2QyxTQUErQixFQUMvQixRQUFxQixFQUNyQixNQUFjO1FBSGQsb0JBQWUsR0FBZixlQUFlLENBQXdCO1FBQ3ZDLGNBQVMsR0FBVCxTQUFTLENBQXNCO1FBQy9CLGFBQVEsR0FBUixRQUFRLENBQWE7UUFDckIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQXBCeEIsdUNBQXVDO1FBQ3ZDLHdCQUFtQixHQUF3QixFQUFFLENBQUM7UUFNOUMsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFDdkIsYUFBUSxHQUFHLE1BQU0sQ0FBQztRQUVsQixtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQUVwQixvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUV4QixVQUFLLEdBQVEsRUFBRSxDQUFDO0lBT2IsQ0FBQztJ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QUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO2lCQUMxRTtnQkFDRCx5REFBeUQ7Z0JBQ3pELGdDQUFnQztnQkFDaEMsTUFBTTtnQkFDTixJQUFJO2dCQUNKLE1BQU07WUFDUixLQUFLLFNBQVM7Z0JBQ1osbUJBQW1CO2dCQUNuQixvQkFBb0I7Z0JBQ3BCLG9CQUFvQjtnQkFDcEIsNkNBQTZDO2dCQUM3QyxJQUFJLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxFQUFFO29CQUM1QixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDO29CQUMzQixJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQztvQkFDekIsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7aUJBQzlCO2dCQUNELE1BQU07WUFDUixLQUFLLFNBQVM7Z0JBQ1osc0RBQXNEO2dCQUN0RCwyRUFBMkU7Z0JBRTNFLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO2dCQUM1QixJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQztnQkFDekIsTUFBTTtZQUNSO2dCQUNFLE1BQU07U0FDVDtJQUNILENBQUM7K0dBMUpVLGlCQUFpQjttR0FBakIsaUJBQWlCLHVHQ3BDOUIsMnpCQWVBLDJzQkRtQlksWUFBWSx5ZkFBRSxpQkFBaUIsc0VBQW1CLHdCQUF3Qjs7NEZBRXpFLGlCQUFpQjtrQkFQN0IsU0FBUzsrQkFDRSxlQUFlLGNBR2IsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGlCQUFpQixFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDOytMQUc3RSxNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE5nWm9uZSwgZm9yd2FyZFJlZiwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0U25hY2tCYXJNb2R1bGUsIE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQW5ndWxhclBDb25uZWN0RGF0YSwgQW5ndWxhclBDb25uZWN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19icmlkZ2UvYW5ndWxhci1wY29ubmVjdCc7XG5pbXBvcnQgeyBFcnJvck1lc3NhZ2VzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19tZXNzYWdlcy9lcnJvci1tZXNzYWdlcy5zZXJ2aWNlJztcbmltcG9ydCB7IENvbXBvbmVudE1hcHBlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL19icmlkZ2UvY29tcG9uZW50LW1hcHBlci9jb21wb25lbnQtbWFwcGVyLmNvbXBvbmVudCc7XG5cbmludGVyZmFjZSBJUGFnZSB7XG4gIGNsYXNzSUQ6IHN0cmluZztcbiAgcHhQYWdlVmlld0ljb246IHN0cmluZztcbiAgcHlDbGFzc05hbWU6IHN0cmluZztcbiAgcHlMYWJlbDogc3RyaW5nO1xuICBweVJ1bGVOYW1lOiBzdHJpbmc7XG4gIHB5VVJMQ29udGVudDogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgQXBwU2hlbGxQcm9wcyB7XG4gIC8vIElmIGFueSwgZW50ZXIgYWRkaXRpb25hbCBwcm9wcyB0aGF0IG9ubHkgZXhpc3Qgb24gdGhpcyBjb21wb25lbnRcbiAgcGFnZXM6IElQYWdlW107XG4gIGNhc2VUeXBlcz86IG9iamVjdFtdO1xuICBwb3J0YWxMb2dvOiBzdHJpbmc7XG4gIHBvcnRhbE5hbWU6IHN0cmluZztcbiAgcG9ydGFsVGVtcGxhdGU6IHN0cmluZztcbiAgcmVhZE9ubHk/OiBib29sZWFuO1xuICBzaG93QXBwSGVhZGVyQmFyOiBib29sZWFuO1xuICBzaG93QXBwTmFtZTogYm9vbGVhbjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWFwcC1zaGVsbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9hcHAtc2hlbGwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hcHAtc2hlbGwuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTWF0U25hY2tCYXJNb2R1bGUsIGZvcndhcmRSZWYoKCkgPT4gQ29tcG9uZW50TWFwcGVyQ29tcG9uZW50KV1cbn0pXG5leHBvcnQgY2xhc3MgQXBwU2hlbGxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHBDb25uJDogdHlwZW9mIFBDb25uZWN0O1xuXG4gIC8vIEZvciBpbnRlcmFjdGlvbiB3aXRoIEFuZ3VsYXJQQ29ubmVjdFxuICBhbmd1bGFyUENvbm5lY3REYXRhOiBBbmd1bGFyUENvbm5lY3REYXRhID0ge307XG4gIGNvbmZpZ1Byb3BzJDogQXBwU2hlbGxQcm9wcztcblxuICBwYWdlcyQ6IElQYWdlW107XG4gIGNhc2VUeXBlcyQ/OiBvYmplY3RbXTtcbiAgYXJDaGlsZHJlbiQ6IGFueVtdO1xuICBiU2hvd0FwcFNoZWxsJCA9IGZhbHNlO1xuICBhcHBOYW1lJCA9ICdQRUdBJztcbiAgZXJyb3JNZXNzYWdlc1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBzRXJyb3JNZXNzYWdlcyA9ICcnO1xuICBzbmFja0JhclJlZjogYW55O1xuICBiT2tEaXNwbGF5RXJyb3IgPSBmYWxzZTtcbiAgcG9ydGFsVGVtcGxhdGU6IHN0cmluZztcbiAgbGlua3M6IGFueSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYW5ndWxhclBDb25uZWN0OiBBbmd1bGFyUENvbm5lY3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgZXJTZXJ2aWNlOiBFcnJvck1lc3NhZ2VzU2VydmljZSxcbiAgICBwcml2YXRlIHNuYWNrQmFyOiBNYXRTbmFja0JhcixcbiAgICBwcml2YXRlIG5nWm9uZTogTmdab25lXG4gICkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICAvLyBGaXJzdCB0aGluZyBpbiBpbml0aWFsaXphdGlvbiBpcyByZWdpc3RlcmluZyBhbmQgc3Vic2NyaWJpbmcgdG8gdGhlIEFuZ3VsYXJQQ29ubmVjdCBzZXJ2aWNlXG4gICAgdGhpcy5hbmd1bGFyUENvbm5lY3REYXRhID0gdGhpcy5hbmd1bGFyUENvbm5lY3QucmVnaXN0ZXJBbmRTdWJzY3JpYmVDb21wb25lbnQodGhpcywgdGhpcy5vblN0YXRlQ2hhbmdlKTtcblxuICAgIC8vIFRoZW4sIGNvbnRpbnVlIG9uIHdpdGggb3RoZXIgaW5pdGlhbGl6YXRpb25cblxuICAgIHRoaXMuY29uZmlnUHJvcHMkID0gdGhpcy5wQ29ubiQucmVzb2x2ZUNvbmZpZ1Byb3BzKHRoaXMucENvbm4kLmdldENvbmZpZ1Byb3BzKCkpIGFzIEFwcFNoZWxsUHJvcHM7XG5cbiAgICAvLyBtYWtpbmcgYSBjb3B5LCBzbyBjYW4gYWRkIGluZm9cbiAgICB0aGlzLnBhZ2VzJCA9IHRoaXMuY29uZmlnUHJvcHMkLnBhZ2VzO1xuXG4gICAgdGhpcy5saW5rcyA9IHRoaXMucGFnZXMkLmZpbHRlcigocGFnZSwgaW5kZXgpID0+IHtcbiAgICAgIHJldHVybiBpbmRleCAhPT0gMDtcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLnBhZ2VzJCkge1xuICAgICAgdGhpcy5iU2hvd0FwcFNoZWxsJCA9IHRydWU7XG4gICAgfVxuICAgIHRoaXMuY2FzZVR5cGVzJCA9IHRoaXMuY29uZmlnUHJvcHMkLmNhc2VUeXBlcztcblxuICAgIHRoaXMuYXJDaGlsZHJlbiQgPSB0aGlzLnBDb25uJC5nZXRDaGlsZHJlbigpIGFzIGFueVtdO1xuXG4gICAgdGhpcy5wb3J0YWxUZW1wbGF0ZSA9IHRoaXMuY29uZmlnUHJvcHMkLnBvcnRhbFRlbXBsYXRlO1xuXG4gICAgLy8gaGFuZGxlIHNob3dpbmcgYW5kIGhpZGluZyB0aGUgcHJvZ3Jlc3Mgc3Bpbm5lclxuICAgIHRoaXMuZXJyb3JNZXNzYWdlc1N1YnNjcmlwdGlvbiA9IHRoaXMuZXJTZXJ2aWNlLmdldE1lc3NhZ2UoKS5zdWJzY3JpYmUobWVzc2FnZSA9PiB7XG4gICAgICB0aGlzLnNob3dEaXNtaXNzRXJyb3JNZXNzYWdlcyhtZXNzYWdlKTtcbiAgICB9KTtcblxuICAgIC8vIGNhbm5vdCBjYWxsIGNoZWNrQW5kVXBkYXRlIGJlY2FzdWUgZmlyc3QgdGltZSB0aHJvdWdoLCB3aWxsIGNhbGwgdXBkYXRlU2VsZiBhbmQgdGhhdCBpcyBpbmNvcnJlY3QgKGNhdXNlcyBpc3N1ZXMpLlxuICAgIC8vIGhvd2V2ZXIsIG5lZWQgYW5ndWxhclBDb25uZWN0IHRvIGJlIGluaXRpYWxpemVkIHdpdGggY3VycmVudFByb3BzIGZvciBmdXR1cmUgdXBkYXRlcywgc28gY2FsbGluZyBzaG91bGRDb21wb25lbnRVcGRhdGUgZGlyZWN0bHlcbiAgICAvLyB3aXRob3V0IGNoZWNraW5nIHRvIHVwZGF0ZSBoZXJlIGluIGluaXQsIHdpbGwgaW5pdGlhbGl6ZSBhbmQgdGhpcyBpcyBjb3JyZWN0XG4gICAgdGhpcy5hbmd1bGFyUENvbm5lY3Quc2hvdWxkQ29tcG9uZW50VXBkYXRlKHRoaXMpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YS51bnN1YnNjcmliZUZuKSB7XG4gICAgICB0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEudW5zdWJzY3JpYmVGbigpO1xuICAgIH1cbiAgfVxuXG4gIC8vIENhbGxiYWNrIHBhc3NlZCB3aGVuIHN1YnNjcmliaW5nIHRvIHN0b3JlIGNoYW5nZVxuICBvblN0YXRlQ2hhbmdlKCkge1xuICAgIHRoaXMuY2hlY2tBbmRVcGRhdGUoKTtcbiAgfVxuXG4gIGNoZWNrQW5kVXBkYXRlKCkge1xuICAgIC8vIFNob3VsZCBhbHdheXMgY2hlY2sgdGhlIGJyaWRnZSB0byBzZWUgaWYgdGhlIGNvbXBvbmVudCBzaG91bGRcbiAgICAvLyB1cGRhdGUgaXRzZWxmIChyZS1yZW5kZXIpXG4gICAgY29uc3QgYlVwZGF0ZVNlbGYgPSB0aGlzLmFuZ3VsYXJQQ29ubmVjdC5zaG91bGRDb21wb25lbnRVcGRhdGUodGhpcyk7XG5cbiAgICAvLyBPTkxZIGNhbGwgdXBkYXRlU2VsZiB3aGVuIHRoZSBjb21wb25lbnQgc2hvdWxkIHVwZGF0ZVxuICAgIGlmIChiVXBkYXRlU2VsZikge1xuICAgICAgdGhpcy51cGRhdGVTZWxmKCk7XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlU2VsZigpIHtcbiAgICB0aGlzLmNvbmZpZ1Byb3BzJCA9IHRoaXMucENvbm4kLnJlc29sdmVDb25maWdQcm9wcyh0aGlzLnBDb25uJC5nZXRDb25maWdQcm9wcygpKSBhcyBBcHBTaGVsbFByb3BzO1xuXG4gICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgIC8vIG1ha2luZyBhIGNvcHksIHNvIGNhbiBhZGQgaW5mb1xuICAgICAgdGhpcy5wYWdlcyQgPSB0aGlzLmNvbmZpZ1Byb3BzJC5wYWdlcztcblxuICAgICAgaWYgKHRoaXMucGFnZXMkKSB7XG4gICAgICAgIHRoaXMuYlNob3dBcHBTaGVsbCQgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmNhc2VUeXBlcyQgPSB0aGlzLmNvbmZpZ1Byb3BzJC5jYXNlVHlwZXM7XG4gICAgICB0aGlzLmFyQ2hpbGRyZW4kID0gdGhpcy5wQ29ubiQuZ2V0Q2hpbGRyZW4oKSBhcyBhbnlbXTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIGZwciBzaG93L2hpZGluZyBlcnJvciBtZXNzYWdlcyBpbiB0aGUgU25hY2tCYXIgY29tcG9uZW50XG4gIHNob3dEaXNtaXNzRXJyb3JNZXNzYWdlcyhlcnJvck1lc3NhZ2VzOiBhbnkpIHtcbiAgICBzd2l0Y2ggKGVycm9yTWVzc2FnZXMuYWN0aW9uKSB7XG4gICAgICBjYXNlICd1cGRhdGUnOlxuICAgICAgICAvLyB3b24ndCBzaG93IHVubGVzcyBwdWJsaXNoIGlzIHR1cm5lZCBvblxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1pbmNsdWRlc1xuICAgICAgICBpZiAodGhpcy5zRXJyb3JNZXNzYWdlcy5pbmRleE9mKGVycm9yTWVzc2FnZXMuYWN0aW9uTWVzc2FnZSkgPCAwKSB7XG4gICAgICAgICAgdGhpcy5zRXJyb3JNZXNzYWdlcyA9IHRoaXMuc0Vycm9yTWVzc2FnZXMuY29uY2F0KGVycm9yTWVzc2FnZXMuYWN0aW9uTWVzc2FnZSkuY29uY2F0KCdcXG4nKTtcblxuICAgICAgICAgIGlmICh0aGlzLmJPa0Rpc3BsYXlFcnJvcikge1xuICAgICAgICAgICAgY29uc3QgY29uZmlnID0geyBwYW5lbENsYXNzOiBbJ3NuYWNrYmFyLW5ld2xpbmUnXSB9O1xuICAgICAgICAgICAgdGhpcy5zbmFja0JhclJlZiA9IHRoaXMuc25hY2tCYXIub3Blbih0aGlzLnNFcnJvck1lc3NhZ2VzLCAnT2snLCBjb25maWcpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3Nob3cnOlxuICAgICAgICAvLyBhZGQgZXJyb3IgbWVzc2FnZSBpZiBub3QgaW4gdGhlIGxpc3RcbiAgICAgICAgLy8gd29uJ3Qgc2hvdyB1bmxlc3MgcHVibGlzaCBpcyB0dXJuZWQgb25cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9wcmVmZXItaW5jbHVkZXNcbiAgICAgICAgaWYgKHRoaXMuc0Vycm9yTWVzc2FnZXMuaW5kZXhPZihlcnJvck1lc3NhZ2VzLmFjdGlvbk1lc3NhZ2UpIDwgMCkge1xuICAgICAgICAgIHRoaXMuc0Vycm9yTWVzc2FnZXMgPSB0aGlzLnNFcnJvck1lc3NhZ2VzLmNvbmNhdChlcnJvck1lc3NhZ2VzLmFjdGlvbk1lc3NhZ2UpLmNvbmNhdCgnXFxuJyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmJPa0Rpc3BsYXlFcnJvciA9IHRydWU7XG5cbiAgICAgICAgaWYgKHRoaXMuYk9rRGlzcGxheUVycm9yKSB7XG4gICAgICAgICAgY29uc3QgY29uZmlnID0geyBwYW5lbENsYXNzOiBbJ3NuYWNrYmFyLW5ld2xpbmUnXSB9O1xuICAgICAgICAgIHRoaXMuc25hY2tCYXJSZWYgPSB0aGlzLnNuYWNrQmFyLm9wZW4odGhpcy5zRXJyb3JNZXNzYWdlcywgJ09rJywgY29uZmlnKTtcbiAgICAgICAgfVxuICAgICAgICAvLyB0aGlzLnNuYWNrQmFyUmVmLmFmdGVyRGlzbWlzc2VkKCkuc3Vic2NyaWJlKCBpbmZvID0+IHtcbiAgICAgICAgLy8gICAgIHRoaXMuc0Vycm9yTWVzc2FnZXMgPSBcIlwiO1xuICAgICAgICAvLyAgIH1cbiAgICAgICAgLy8gKVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2Rpc21pc3MnOlxuICAgICAgICAvLyBjbG9zZXMgc25hY2sgYmFyXG4gICAgICAgIC8vIHR1cm5zIHB1Ymxpc2ggb2ZmXG4gICAgICAgIC8vIGNsZWFycyBvdXQgZXJyb3JzXG4gICAgICAgIC8vIHNob3VsZCBiZSBjYWxsZWQgdG8gZGltaXNzIGFuZCBhdCBcImNhbmNlbFwiXG4gICAgICAgIGlmICh0aGlzLnNuYWNrQmFyUmVmICE9IG51bGwpIHtcbiAgICAgICAgICB0aGlzLnNuYWNrQmFyUmVmLmRpc21pc3MoKTtcbiAgICAgICAgICB0aGlzLnNFcnJvck1lc3NhZ2VzID0gJyc7XG4gICAgICAgICAgdGhpcy5iT2tEaXNwbGF5RXJyb3IgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3B1Ymxpc2gnOlxuICAgICAgICAvLyBhbGxvd3MgZXJyb3JzIHRvIGJlIHNob3duLCBjbGVhcnMgb3V0IGV4aXN0aW5nIG9uZXNcbiAgICAgICAgLy8gc2hvdWxkIGJlIHR1cm5lZCBvbiBhdCBcInN1Ym1pdFwiIChmaW5pc2hBc3NpZ25tZW50LCBuZXh0QXNzaWdubWVudCwgZXRjLilcblxuICAgICAgICB0aGlzLmJPa0Rpc3BsYXlFcnJvciA9IHRydWU7XG4gICAgICAgIHRoaXMuc0Vycm9yTWVzc2FnZXMgPSAnJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJhcHBzaGVsbC10b3BcIj5cbiAgPGRpdiAqbmdJZj1cImJTaG93QXBwU2hlbGwkICYmIHBvcnRhbFRlbXBsYXRlICE9PSAnd3NzJ1wiPlxuICAgIDxjb21wb25lbnQtbWFwcGVyIG5hbWU9XCJOYXZCYXJcIiBbcHJvcHNdPVwieyBwQ29ubiQsIGFwcE5hbWUkLCBwYWdlcyQsIGNhc2VUeXBlcyQgfVwiPjwvY29tcG9uZW50LW1hcHBlcj5cbiAgPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJiU2hvd0FwcFNoZWxsJCAmJiBwb3J0YWxUZW1wbGF0ZSA9PT0gJ3dzcydcIj5cbiAgICA8Y29tcG9uZW50LW1hcHBlciBuYW1lPVwiV3NzTmF2QmFyXCIgW3Byb3BzXT1cInsgcENvbm4kLCBhcHBOYW1lJCwgaG9tZVBhZ2U6IHBhZ2VzJFswXSwgcGFnZXMkOiBsaW5rcywgY2FzZVR5cGVzJCB9XCI+PC9jb21wb25lbnQtbWFwcGVyPlxuICA8L2Rpdj5cbiAgPGRpdiBbbmdDbGFzc109XCJ7ICdhcHBzaGVsbC1tYWluJzogcG9ydGFsVGVtcGxhdGUgIT09ICd3c3MnLCAnYXBwc2hlbGwtbWFpbi13c3MnOiBwb3J0YWxUZW1wbGF0ZSA9PT0gJ3dzcycgfVwiPlxuICAgIDxkaXYgKm5nRm9yPVwibGV0IGtpZCBvZiBhckNoaWxkcmVuJFwiPlxuICAgICAgPGRpdiAqbmdJZj1cImtpZC5nZXRQQ29ubmVjdCgpLmdldENvbXBvbmVudE5hbWUoKSA9PSAnVmlld0NvbnRhaW5lcidcIj5cbiAgICAgICAgPGNvbXBvbmVudC1tYXBwZXIgbmFtZT1cIlZpZXdDb250YWluZXJcIiBbcHJvcHNdPVwieyBwQ29ubiQ6IGtpZC5nZXRQQ29ubmVjdCgpIH1cIj48L2NvbXBvbmVudC1tYXBwZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
140
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLXNoZWxsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9hcHAtc2hlbGwvYXBwLXNoZWxsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9hcHAtc2hlbGwvYXBwLXNoZWxsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFVLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN4RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFlLE1BQU0sNkJBQTZCLENBQUM7QUFJN0UsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOERBQThELENBQUM7Ozs7OztBQThCeEcsTUFBTSxPQUFPLGlCQUFpQjtJQW1CNUIsWUFDVSxlQUF1QyxFQUN2QyxTQUErQixFQUMvQixRQUFxQixFQUNyQixNQUFjO1FBSGQsb0JBQWUsR0FBZixlQUFlLENBQXdCO1FBQ3ZDLGNBQVMsR0FBVCxTQUFTLENBQXNCO1FBQy9CLGFBQVEsR0FBUixRQUFRLENBQWE7UUFDckIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQXBCeEIsdUNBQXVDO1FBQ3ZDLHdCQUFtQixHQUF3QixFQUFFLENBQUM7UUFNOUMsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFDdkIsYUFBUSxHQUFHLE1BQU0sQ0FBQztRQUVsQixtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQUVwQixvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUV4QixVQUFLLEdBQVEsRUFBRSxDQUFDO0lBT2IsQ0FBQztJ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QVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztpQkFDMUU7Z0JBQ0QseURBQXlEO2dCQUN6RCxnQ0FBZ0M7Z0JBQ2hDLE1BQU07Z0JBQ04sSUFBSTtnQkFDSixNQUFNO1lBQ1IsS0FBSyxTQUFTO2dCQUNaLG1CQUFtQjtnQkFDbkIsb0JBQW9CO2dCQUNwQixvQkFBb0I7Z0JBQ3BCLDZDQUE2QztnQkFDN0MsSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksRUFBRTtvQkFDNUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFDM0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7b0JBQ3pCLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO2lCQUM5QjtnQkFDRCxNQUFNO1lBQ1IsS0FBSyxTQUFTO2dCQUNaLHNEQUFzRDtnQkFDdEQsMkVBQTJFO2dCQUUzRSxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztnQkFDNUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7Z0JBQ3pCLE1BQU07WUFDUjtnQkFDRSxNQUFNO1NBQ1Q7SUFDSCxDQUFDOytHQTFKVSxpQkFBaUI7bUdBQWpCLGlCQUFpQix1R0NwQzlCLDJ6QkFlQSwyc0JEbUJZLFlBQVkseWZBQUUsaUJBQWlCLHNFQUFtQix3QkFBd0I7OzRGQUV6RSxpQkFBaUI7a0JBUDdCLFNBQVM7K0JBQ0UsZUFBZSxjQUdiLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsd0JBQXdCLENBQUMsQ0FBQzsrTEFHN0UsTUFBTTtzQkFBZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBOZ1pvbmUsIGZvcndhcmRSZWYsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdFNuYWNrQmFyTW9kdWxlLCBNYXRTbmFja0JhciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFuZ3VsYXJQQ29ubmVjdERhdGEsIEFuZ3VsYXJQQ29ubmVjdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9fYnJpZGdlL2FuZ3VsYXItcGNvbm5lY3QnO1xuaW1wb3J0IHsgRXJyb3JNZXNzYWdlc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9fbWVzc2FnZXMvZXJyb3ItbWVzc2FnZXMuc2VydmljZSc7XG5pbXBvcnQgeyBDb21wb25lbnRNYXBwZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9fYnJpZGdlL2NvbXBvbmVudC1tYXBwZXIvY29tcG9uZW50LW1hcHBlci5jb21wb25lbnQnO1xuXG5pbnRlcmZhY2UgSVBhZ2Uge1xuICBjbGFzc0lEOiBzdHJpbmc7XG4gIHB4UGFnZVZpZXdJY29uOiBzdHJpbmc7XG4gIHB5Q2xhc3NOYW1lOiBzdHJpbmc7XG4gIHB5TGFiZWw6IHN0cmluZztcbiAgcHlSdWxlTmFtZTogc3RyaW5nO1xuICBweVVSTENvbnRlbnQ6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIEFwcFNoZWxsUHJvcHMge1xuICAvLyBJZiBhbnksIGVudGVyIGFkZGl0aW9uYWwgcHJvcHMgdGhhdCBvbmx5IGV4aXN0IG9uIHRoaXMgY29tcG9uZW50XG4gIHBhZ2VzOiBJUGFnZVtdO1xuICBjYXNlVHlwZXM/OiBvYmplY3RbXTtcbiAgcG9ydGFsTG9nbzogc3RyaW5nO1xuICBwb3J0YWxOYW1lOiBzdHJpbmc7XG4gIHBvcnRhbFRlbXBsYXRlOiBzdHJpbmc7XG4gIHJlYWRPbmx5PzogYm9vbGVhbjtcbiAgc2hvd0FwcEhlYWRlckJhcjogYm9vbGVhbjtcbiAgc2hvd0FwcE5hbWU6IGJvb2xlYW47XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1hcHAtc2hlbGwnLFxuICB0ZW1wbGF0ZVVybDogJy4vYXBwLXNoZWxsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXBwLXNoZWxsLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE1hdFNuYWNrQmFyTW9kdWxlLCBmb3J3YXJkUmVmKCgpID0+IENvbXBvbmVudE1hcHBlckNvbXBvbmVudCldXG59KVxuZXhwb3J0IGNsYXNzIEFwcFNoZWxsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBwQ29ubiQ6IHR5cGVvZiBQQ29ubmVjdDtcblxuICAvLyBGb3IgaW50ZXJhY3Rpb24gd2l0aCBBbmd1bGFyUENvbm5lY3RcbiAgYW5ndWxhclBDb25uZWN0RGF0YTogQW5ndWxhclBDb25uZWN0RGF0YSA9IHt9O1xuICBjb25maWdQcm9wcyQ6IEFwcFNoZWxsUHJvcHM7XG5cbiAgcGFnZXMkOiBJUGFnZVtdO1xuICBjYXNlVHlwZXMkPzogb2JqZWN0W107XG4gIGFyQ2hpbGRyZW4kOiBhbnlbXTtcbiAgYlNob3dBcHBTaGVsbCQgPSBmYWxzZTtcbiAgYXBwTmFtZSQgPSAnUEVHQSc7XG4gIGVycm9yTWVzc2FnZXNTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgc0Vycm9yTWVzc2FnZXMgPSAnJztcbiAgc25hY2tCYXJSZWY6IGFueTtcbiAgYk9rRGlzcGxheUVycm9yID0gZmFsc2U7XG4gIHBvcnRhbFRlbXBsYXRlOiBzdHJpbmc7XG4gIGxpbmtzOiBhbnkgPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGFuZ3VsYXJQQ29ubmVjdDogQW5ndWxhclBDb25uZWN0U2VydmljZSxcbiAgICBwcml2YXRlIGVyU2VydmljZTogRXJyb3JNZXNzYWdlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBzbmFja0JhcjogTWF0U25hY2tCYXIsXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgLy8gRmlyc3QgdGhpbmcgaW4gaW5pdGlhbGl6YXRpb24gaXMgcmVnaXN0ZXJpbmcgYW5kIHN1YnNjcmliaW5nIHRvIHRoZSBBbmd1bGFyUENvbm5lY3Qgc2VydmljZVxuICAgIHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YSA9IHRoaXMuYW5ndWxhclBDb25uZWN0LnJlZ2lzdGVyQW5kU3Vic2NyaWJlQ29tcG9uZW50KHRoaXMsIHRoaXMub25TdGF0ZUNoYW5nZSk7XG5cbiAgICAvLyBUaGVuLCBjb250aW51ZSBvbiB3aXRoIG90aGVyIGluaXRpYWxpemF0aW9uXG5cbiAgICB0aGlzLmNvbmZpZ1Byb3BzJCA9IHRoaXMucENvbm4kLnJlc29sdmVDb25maWdQcm9wcyh0aGlzLnBDb25uJC5nZXRDb25maWdQcm9wcygpKSBhcyBBcHBTaGVsbFByb3BzO1xuXG4gICAgLy8gbWFraW5nIGEgY29weSwgc28gY2FuIGFkZCBpbmZvXG4gICAgdGhpcy5wYWdlcyQgPSB0aGlzLmNvbmZpZ1Byb3BzJC5wYWdlcztcblxuICAgIHRoaXMubGlua3MgPSB0aGlzLnBhZ2VzJC5maWx0ZXIoKHBhZ2UsIGluZGV4KSA9PiB7XG4gICAgICByZXR1cm4gaW5kZXggIT09IDA7XG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5wYWdlcyQpIHtcbiAgICAgIHRoaXMuYlNob3dBcHBTaGVsbCQgPSB0cnVlO1xuICAgIH1cbiAgICB0aGlzLmNhc2VUeXBlcyQgPSB0aGlzLmNvbmZpZ1Byb3BzJC5jYXNlVHlwZXM7XG5cbiAgICB0aGlzLmFyQ2hpbGRyZW4kID0gdGhpcy5wQ29ubiQuZ2V0Q2hpbGRyZW4oKSBhcyBhbnlbXTtcblxuICAgIHRoaXMucG9ydGFsVGVtcGxhdGUgPSB0aGlzLmNvbmZpZ1Byb3BzJC5wb3J0YWxUZW1wbGF0ZTtcblxuICAgIC8vIGhhbmRsZSBzaG93aW5nIGFuZCBoaWRpbmcgdGhlIHByb2dyZXNzIHNwaW5uZXJcbiAgICB0aGlzLmVycm9yTWVzc2FnZXNTdWJzY3JpcHRpb24gPSB0aGlzLmVyU2VydmljZS5nZXRNZXNzYWdlKCkuc3Vic2NyaWJlKG1lc3NhZ2UgPT4ge1xuICAgICAgdGhpcy5zaG93RGlzbWlzc0Vycm9yTWVzc2FnZXMobWVzc2FnZSk7XG4gICAgfSk7XG5cbiAgICAvLyBjYW5ub3QgY2FsbCBjaGVja0FuZFVwZGF0ZSBiZWNhc3VlIGZpcnN0IHRpbWUgdGhyb3VnaCwgd2lsbCBjYWxsIHVwZGF0ZVNlbGYgYW5kIHRoYXQgaXMgaW5jb3JyZWN0IChjYXVzZXMgaXNzdWVzKS5cbiAgICAvLyBob3dldmVyLCBuZWVkIGFuZ3VsYXJQQ29ubmVjdCB0byBiZSBpbml0aWFsaXplZCB3aXRoIGN1cnJlbnRQcm9wcyBmb3IgZnV0dXJlIHVwZGF0ZXMsIHNvIGNhbGxpbmcgc2hvdWxkQ29tcG9uZW50VXBkYXRlIGRpcmVjdGx5XG4gICAgLy8gd2l0aG91dCBjaGVja2luZyB0byB1cGRhdGUgaGVyZSBpbiBpbml0LCB3aWxsIGluaXRpYWxpemUgYW5kIHRoaXMgaXMgY29ycmVjdFxuICAgIHRoaXMuYW5ndWxhclBDb25uZWN0LnNob3VsZENvbXBvbmVudFVwZGF0ZSh0aGlzKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEudW5zdWJzY3JpYmVGbikge1xuICAgICAgdGhpcy5hbmd1bGFyUENvbm5lY3REYXRhLnVuc3Vic2NyaWJlRm4oKTtcbiAgICB9XG4gIH1cblxuICAvLyBDYWxsYmFjayBwYXNzZWQgd2hlbiBzdWJzY3JpYmluZyB0byBzdG9yZSBjaGFuZ2VcbiAgb25TdGF0ZUNoYW5nZSgpIHtcbiAgICB0aGlzLmNoZWNrQW5kVXBkYXRlKCk7XG4gIH1cblxuICBjaGVja0FuZFVwZGF0ZSgpIHtcbiAgICAvLyBTaG91bGQgYWx3YXlzIGNoZWNrIHRoZSBicmlkZ2UgdG8gc2VlIGlmIHRoZSBjb21wb25lbnQgc2hvdWxkXG4gICAgLy8gdXBkYXRlIGl0c2VsZiAocmUtcmVuZGVyKVxuICAgIGNvbnN0IGJVcGRhdGVTZWxmID0gdGhpcy5hbmd1bGFyUENvbm5lY3Quc2hvdWxkQ29tcG9uZW50VXBkYXRlKHRoaXMpO1xuXG4gICAgLy8gT05MWSBjYWxsIHVwZGF0ZVNlbGYgd2hlbiB0aGUgY29tcG9uZW50IHNob3VsZCB1cGRhdGVcbiAgICBpZiAoYlVwZGF0ZVNlbGYpIHtcbiAgICAgIHRoaXMudXBkYXRlU2VsZigpO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZVNlbGYoKSB7XG4gICAgdGhpcy5jb25maWdQcm9wcyQgPSB0aGlzLnBDb25uJC5yZXNvbHZlQ29uZmlnUHJvcHModGhpcy5wQ29ubiQuZ2V0Q29uZmlnUHJvcHMoKSkgYXMgQXBwU2hlbGxQcm9wcztcblxuICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAvLyBtYWtpbmcgYSBjb3B5LCBzbyBjYW4gYWRkIGluZm9cbiAgICAgIHRoaXMucGFnZXMkID0gdGhpcy5jb25maWdQcm9wcyQucGFnZXM7XG5cbiAgICAgIGlmICh0aGlzLnBhZ2VzJCkge1xuICAgICAgICB0aGlzLmJTaG93QXBwU2hlbGwkID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5jYXNlVHlwZXMkID0gdGhpcy5jb25maWdQcm9wcyQuY2FzZVR5cGVzO1xuICAgICAgdGhpcy5hckNoaWxkcmVuJCA9IHRoaXMucENvbm4kLmdldENoaWxkcmVuKCkgYXMgYW55W107XG4gICAgfSk7XG4gIH1cblxuICAvLyBmcHIgc2hvdy9oaWRpbmcgZXJyb3IgbWVzc2FnZXMgaW4gdGhlIFNuYWNrQmFyIGNvbXBvbmVudFxuICBzaG93RGlzbWlzc0Vycm9yTWVzc2FnZXMoZXJyb3JNZXNzYWdlczogYW55KSB7XG4gICAgc3dpdGNoIChlcnJvck1lc3NhZ2VzLmFjdGlvbikge1xuICAgICAgY2FzZSAndXBkYXRlJzpcbiAgICAgICAgLy8gd29uJ3Qgc2hvdyB1bmxlc3MgcHVibGlzaCBpcyB0dXJuZWQgb25cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9wcmVmZXItaW5jbHVkZXNcbiAgICAgICAgaWYgKHRoaXMuc0Vycm9yTWVzc2FnZXMuaW5kZXhPZihlcnJvck1lc3NhZ2VzLmFjdGlvbk1lc3NhZ2UpIDwgMCkge1xuICAgICAgICAgIHRoaXMuc0Vycm9yTWVzc2FnZXMgPSB0aGlzLnNFcnJvck1lc3NhZ2VzLmNvbmNhdChlcnJvck1lc3NhZ2VzLmFjdGlvbk1lc3NhZ2UpLmNvbmNhdCgnXFxuJyk7XG5cbiAgICAgICAgICBpZiAodGhpcy5iT2tEaXNwbGF5RXJyb3IpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHsgcGFuZWxDbGFzczogWydzbmFja2Jhci1uZXdsaW5lJ10sIGR1cmF0aW9uOiA1MDAwIH07XG4gICAgICAgICAgICB0aGlzLnNuYWNrQmFyUmVmID0gdGhpcy5zbmFja0Jhci5vcGVuKHRoaXMuc0Vycm9yTWVzc2FnZXMsICdPaycsIGNvbmZpZyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc2hvdyc6XG4gICAgICAgIC8vIGFkZCBlcnJvciBtZXNzYWdlIGlmIG5vdCBpbiB0aGUgbGlzdFxuICAgICAgICAvLyB3b24ndCBzaG93IHVubGVzcyBwdWJsaXNoIGlzIHR1cm5lZCBvblxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1pbmNsdWRlc1xuICAgICAgICBpZiAodGhpcy5zRXJyb3JNZXNzYWdlcy5pbmRleE9mKGVycm9yTWVzc2FnZXMuYWN0aW9uTWVzc2FnZSkgPCAwKSB7XG4gICAgICAgICAgdGhpcy5zRXJyb3JNZXNzYWdlcyA9IHRoaXMuc0Vycm9yTWVzc2FnZXMuY29uY2F0KGVycm9yTWVzc2FnZXMuYWN0aW9uTWVzc2FnZSkuY29uY2F0KCdcXG4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYk9rRGlzcGxheUVycm9yID0gdHJ1ZTtcblxuICAgICAgICBpZiAodGhpcy5iT2tEaXNwbGF5RXJyb3IpIHtcbiAgICAgICAgICBjb25zdCBjb25maWcgPSB7IHBhbmVsQ2xhc3M6IFsnc25hY2tiYXItbmV3bGluZSddLCBkdXJhdGlvbjogNTAwMCB9O1xuICAgICAgICAgIHRoaXMuc25hY2tCYXJSZWYgPSB0aGlzLnNuYWNrQmFyLm9wZW4odGhpcy5zRXJyb3JNZXNzYWdlcywgJ09rJywgY29uZmlnKTtcbiAgICAgICAgfVxuICAgICAgICAvLyB0aGlzLnNuYWNrQmFyUmVmLmFmdGVyRGlzbWlzc2VkKCkuc3Vic2NyaWJlKCBpbmZvID0+IHtcbiAgICAgICAgLy8gICAgIHRoaXMuc0Vycm9yTWVzc2FnZXMgPSBcIlwiO1xuICAgICAgICAvLyAgIH1cbiAgICAgICAgLy8gKVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2Rpc21pc3MnOlxuICAgICAgICAvLyBjbG9zZXMgc25hY2sgYmFyXG4gICAgICAgIC8vIHR1cm5zIHB1Ymxpc2ggb2ZmXG4gICAgICAgIC8vIGNsZWFycyBvdXQgZXJyb3JzXG4gICAgICAgIC8vIHNob3VsZCBiZSBjYWxsZWQgdG8gZGltaXNzIGFuZCBhdCBcImNhbmNlbFwiXG4gICAgICAgIGlmICh0aGlzLnNuYWNrQmFyUmVmICE9IG51bGwpIHtcbiAgICAgICAgICB0aGlzLnNuYWNrQmFyUmVmLmRpc21pc3MoKTtcbiAgICAgICAgICB0aGlzLnNFcnJvck1lc3NhZ2VzID0gJyc7XG4gICAgICAgICAgdGhpcy5iT2tEaXNwbGF5RXJyb3IgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3B1Ymxpc2gnOlxuICAgICAgICAvLyBhbGxvd3MgZXJyb3JzIHRvIGJlIHNob3duLCBjbGVhcnMgb3V0IGV4aXN0aW5nIG9uZXNcbiAgICAgICAgLy8gc2hvdWxkIGJlIHR1cm5lZCBvbiBhdCBcInN1Ym1pdFwiIChmaW5pc2hBc3NpZ25tZW50LCBuZXh0QXNzaWdubWVudCwgZXRjLilcblxuICAgICAgICB0aGlzLmJPa0Rpc3BsYXlFcnJvciA9IHRydWU7XG4gICAgICAgIHRoaXMuc0Vycm9yTWVzc2FnZXMgPSAnJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJhcHBzaGVsbC10b3BcIj5cbiAgPGRpdiAqbmdJZj1cImJTaG93QXBwU2hlbGwkICYmIHBvcnRhbFRlbXBsYXRlICE9PSAnd3NzJ1wiPlxuICAgIDxjb21wb25lbnQtbWFwcGVyIG5hbWU9XCJOYXZCYXJcIiBbcHJvcHNdPVwieyBwQ29ubiQsIGFwcE5hbWUkLCBwYWdlcyQsIGNhc2VUeXBlcyQgfVwiPjwvY29tcG9uZW50LW1hcHBlcj5cbiAgPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJiU2hvd0FwcFNoZWxsJCAmJiBwb3J0YWxUZW1wbGF0ZSA9PT0gJ3dzcydcIj5cbiAgICA8Y29tcG9uZW50LW1hcHBlciBuYW1lPVwiV3NzTmF2QmFyXCIgW3Byb3BzXT1cInsgcENvbm4kLCBhcHBOYW1lJCwgaG9tZVBhZ2U6IHBhZ2VzJFswXSwgcGFnZXMkOiBsaW5rcywgY2FzZVR5cGVzJCB9XCI+PC9jb21wb25lbnQtbWFwcGVyPlxuICA8L2Rpdj5cbiAgPGRpdiBbbmdDbGFzc109XCJ7ICdhcHBzaGVsbC1tYWluJzogcG9ydGFsVGVtcGxhdGUgIT09ICd3c3MnLCAnYXBwc2hlbGwtbWFpbi13c3MnOiBwb3J0YWxUZW1wbGF0ZSA9PT0gJ3dzcycgfVwiPlxuICAgIDxkaXYgKm5nRm9yPVwibGV0IGtpZCBvZiBhckNoaWxkcmVuJFwiPlxuICAgICAgPGRpdiAqbmdJZj1cImtpZC5nZXRQQ29ubmVjdCgpLmdldENvbXBvbmVudE5hbWUoKSA9PSAnVmlld0NvbnRhaW5lcidcIj5cbiAgICAgICAgPGNvbXBvbmVudC1tYXBwZXIgbmFtZT1cIlZpZXdDb250YWluZXJcIiBbcHJvcHNdPVwieyBwQ29ubiQ6IGtpZC5nZXRQQ29ubmVjdCgpIH1cIj48L2NvbXBvbmVudC1tYXBwZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -48,14 +48,14 @@ export class DefaultFormComponent {
48
48
  this.arChildren$ = ReferenceComponent.normalizePConnArray(kids[0].getPConnect().getChildren());
49
49
  }
50
50
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DefaultFormComponent, deps: [{ token: i1.TemplateUtils }], target: i0.ɵɵFactoryTarget.Component }); }
51
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DefaultFormComponent, isStandalone: true, selector: "app-default-form", inputs: { pConn$: "pConn$", formGroup$: "formGroup$" }, ngImport: i0, template: "<!-- When adding a component here, add the same component in 'region' template as well -->\n<div *ngIf=\"!NO_HEADER_TEMPLATES.includes(template) && showLabel\">\n <div class=\"template-title-container\">{{ label }}</div>\n</div>\n<div *ngIf=\"instructions\" class=\"psdk-default-form-instruction-text\">\n <div key=\"instructions\" id=\"instruction-text\" [innerHTML]=\"instructions\"></div>\n</div>\n<div [className]=\"divClass$\">\n <div *ngFor=\"let kid of arChildren$\" [ngClass]=\"{ 'grid-column': kid.getPConnect().getComponentName() === 'View' }\">\n <component-mapper\n [name]=\"kid.getPConnect().getComponentName()\"\n [props]=\"{\n pConn$: kid.getPConnect(),\n formGroup$: formGroup$\n }\"\n errorMsg=\"DefaultForm wants component not yet available: {{ kid.getPConnect().getComponentName() }}\"\n ></component-mapper>\n </div>\n</div>\n", styles: [".psdk-default-form-one-column{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));gap:1rem}.psdk-default-form-two-column{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.psdk-default-form-three-column{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.psdk-default-form-two-column .grid-column{grid-column:1/span 2}.psdk-default-form-three-column .grid-column{grid-column:1/span 3}.template-title-container{font-size:.9375rem;font-weight:600;margin:10px 0}.psdk-default-form-instruction-text{padding-top:.625rem;padding-bottom:.625rem}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(function () { return CommonModule; }) }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgClass; }), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgForOf; }), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i0.forwardRef(function () { return ComponentMapperComponent; }), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
51
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DefaultFormComponent, isStandalone: true, selector: "app-default-form", inputs: { pConn$: "pConn$", formGroup$: "formGroup$" }, ngImport: i0, template: "<!-- When adding a component here, add the same component in 'region' template as well -->\n<div *ngIf=\"!NO_HEADER_TEMPLATES.includes(template) && showLabel\">\n <div class=\"template-title-container\">{{ label }}</div>\n</div>\n<div *ngIf=\"instructions\" class=\"psdk-default-form-instruction-text\">\n <div key=\"instructions\" id=\"instruction-text\" [innerHTML]=\"instructions\"></div>\n</div>\n<div [className]=\"divClass$\">\n <div *ngFor=\"let kid of arChildren$\" [ngClass]=\"{ 'grid-column': kid.getPConnect().getComponentName() === 'View' }\">\n <component-mapper\n [name]=\"kid.getPConnect().getComponentName()\"\n [props]=\"{\n pConn$: kid.getPConnect(),\n formGroup$: formGroup$\n }\"\n errorMsg=\"DefaultForm wants component not yet available: {{ kid.getPConnect().getComponentName() }}\"\n ></component-mapper>\n </div>\n</div>\n", styles: [".psdk-default-form-one-column{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));column-gap:1rem}.psdk-default-form-two-column{display:grid;grid-template-columns:repeat(2,1fr);column-gap:1rem}.psdk-default-form-three-column{display:grid;grid-template-columns:repeat(3,1fr);column-gap:1rem}.psdk-default-form-three-column .grid-column{grid-column:1/span 3}.psdk-default-form-two-column .grid-column{grid-column:1/span 2}.psdk-default-form-one-column .grid-column{grid-column:1}.template-title-container{font-size:.9375rem;font-weight:600;margin:10px 0}.psdk-default-form-instruction-text{padding-top:.625rem;padding-bottom:.625rem}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(function () { return CommonModule; }) }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgClass; }), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgForOf; }), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i0.forwardRef(function () { return ComponentMapperComponent; }), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
52
52
  }
53
53
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DefaultFormComponent, decorators: [{
54
54
  type: Component,
55
- args: [{ selector: 'app-default-form', standalone: true, imports: [CommonModule, forwardRef(() => ComponentMapperComponent)], template: "<!-- When adding a component here, add the same component in 'region' template as well -->\n<div *ngIf=\"!NO_HEADER_TEMPLATES.includes(template) && showLabel\">\n <div class=\"template-title-container\">{{ label }}</div>\n</div>\n<div *ngIf=\"instructions\" class=\"psdk-default-form-instruction-text\">\n <div key=\"instructions\" id=\"instruction-text\" [innerHTML]=\"instructions\"></div>\n</div>\n<div [className]=\"divClass$\">\n <div *ngFor=\"let kid of arChildren$\" [ngClass]=\"{ 'grid-column': kid.getPConnect().getComponentName() === 'View' }\">\n <component-mapper\n [name]=\"kid.getPConnect().getComponentName()\"\n [props]=\"{\n pConn$: kid.getPConnect(),\n formGroup$: formGroup$\n }\"\n errorMsg=\"DefaultForm wants component not yet available: {{ kid.getPConnect().getComponentName() }}\"\n ></component-mapper>\n </div>\n</div>\n", styles: [".psdk-default-form-one-column{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));gap:1rem}.psdk-default-form-two-column{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.psdk-default-form-three-column{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.psdk-default-form-two-column .grid-column{grid-column:1/span 2}.psdk-default-form-three-column .grid-column{grid-column:1/span 3}.template-title-container{font-size:.9375rem;font-weight:600;margin:10px 0}.psdk-default-form-instruction-text{padding-top:.625rem;padding-bottom:.625rem}\n"] }]
55
+ args: [{ selector: 'app-default-form', standalone: true, imports: [CommonModule, forwardRef(() => ComponentMapperComponent)], template: "<!-- When adding a component here, add the same component in 'region' template as well -->\n<div *ngIf=\"!NO_HEADER_TEMPLATES.includes(template) && showLabel\">\n <div class=\"template-title-container\">{{ label }}</div>\n</div>\n<div *ngIf=\"instructions\" class=\"psdk-default-form-instruction-text\">\n <div key=\"instructions\" id=\"instruction-text\" [innerHTML]=\"instructions\"></div>\n</div>\n<div [className]=\"divClass$\">\n <div *ngFor=\"let kid of arChildren$\" [ngClass]=\"{ 'grid-column': kid.getPConnect().getComponentName() === 'View' }\">\n <component-mapper\n [name]=\"kid.getPConnect().getComponentName()\"\n [props]=\"{\n pConn$: kid.getPConnect(),\n formGroup$: formGroup$\n }\"\n errorMsg=\"DefaultForm wants component not yet available: {{ kid.getPConnect().getComponentName() }}\"\n ></component-mapper>\n </div>\n</div>\n", styles: [".psdk-default-form-one-column{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));column-gap:1rem}.psdk-default-form-two-column{display:grid;grid-template-columns:repeat(2,1fr);column-gap:1rem}.psdk-default-form-three-column{display:grid;grid-template-columns:repeat(3,1fr);column-gap:1rem}.psdk-default-form-three-column .grid-column{grid-column:1/span 3}.psdk-default-form-two-column .grid-column{grid-column:1/span 2}.psdk-default-form-one-column .grid-column{grid-column:1}.template-title-container{font-size:.9375rem;font-weight:600;margin:10px 0}.psdk-default-form-instruction-text{padding-top:.625rem;padding-bottom:.625rem}\n"] }]
56
56
  }], ctorParameters: function () { return [{ type: i1.TemplateUtils }]; }, propDecorators: { pConn$: [{
57
57
  type: Input
58
58
  }], formGroup$: [{
59
59
  type: Input
60
60
  }] } });
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9kZWZhdWx0LWZvcm0vZGVmYXVsdC1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9kZWZhdWx0LWZvcm0vZGVmYXVsdC1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOERBQThELENBQUM7Ozs7QUFpQnhHLE1BQU0sT0FBTyxvQkFBb0I7SUFzQi9CLFlBQW9CLGFBQTRCO1FBQTVCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBWGhELHdCQUFtQixHQUFHO1lBQ3BCLFNBQVM7WUFDVCxhQUFhO1lBQ2IsU0FBUztZQUNULGtCQUFrQjtZQUNsQixvQkFBb0I7WUFDcEIsbUJBQW1CO1lBQ25CLG1CQUFtQjtZQUNuQixjQUFjO1NBQ2YsQ0FBQztJQUVpRCxDQUFDO0lBRXBELFFBQVE7UUFDTixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBc0IsQ0FBQztRQUNyRSxJQUFJLENBQUMsUUFBUSxHQUFHLFdBQVcsRUFBRSxRQUFRLENBQUM7UUFDdEMsTUFBTSxTQUFTLEdBQVEsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxDQUFDO1FBQzlELElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxFQUFFLFNBQVMsQ0FBQztRQUN0QyxJQUFJLENBQUMsS0FBSyxHQUFHLFNBQVMsRUFBRSxLQUFLLENBQUM7UUFDOUIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQVcsQ0FBQztRQUNoRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBRS9GLE1BQU0sT0FBTyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUNoRSxRQUFRLE9BQU8sRUFBRTtZQUNmLEtBQUssR0FBRztnQkFDTixJQUFJLENBQUMsU0FBUyxHQUFHLDhCQUE4QixDQUFDO2dCQUNoRCxNQUFNO1lBQ1IsS0FBSyxHQUFHO2dCQUNOLElBQUksQ0FBQyxTQUFTLEdBQUcsOEJBQThCLENBQUM7Z0JBQ2hELE1BQU07WUFDUixLQUFLLEdBQUc7Z0JBQ04sSUFBSSxDQUFDLFNBQVMsR0FBRyxnQ0FBZ0MsQ0FBQztnQkFDbEQsTUFBTTtZQUNSO2dCQUNFLElBQUksQ0FBQyxTQUFTLEdBQUcsOEJBQThCLENBQUM7Z0JBQ2hELE1BQU07U0FDVDtRQUVELGdEQUFnRDtRQUNoRCw0REFBNEQ7UUFDNUQsa0JBQWtCO1FBQ2xCLElBQUksQ0FBQyxXQUFXLEdBQUcsa0JBQWtCLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDakcsQ0FBQzsrR0FyRFUsb0JBQW9CO21HQUFwQixvQkFBb0Isb0lDckJqQyw0M0JBbUJBLDhvQkRBWSxZQUFZLDBmQUFtQix3QkFBd0I7OzRGQUV0RCxvQkFBb0I7a0JBUGhDLFNBQVM7K0JBQ0Usa0JBQWtCLGNBR2hCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsd0JBQXdCLENBQUMsQ0FBQztvR0FHMUQsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBSZWZlcmVuY2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9pbmZyYS9yZWZlcmVuY2UvcmVmZXJlbmNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21wb25lbnRNYXBwZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9fYnJpZGdlL2NvbXBvbmVudC1tYXBwZXIvY29tcG9uZW50LW1hcHBlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGVtcGxhdGVVdGlscyB9IGZyb20gJy4uLy4uLy4uL19oZWxwZXJzL3RlbXBsYXRlLXV0aWxzJztcblxuaW50ZXJmYWNlIERlZmF1bHRGb3JtUHJvcHMge1xuICAvLyBJZiBhbnksIGVudGVyIGFkZGl0aW9uYWwgcHJvcHMgdGhhdCBvbmx5IGV4aXN0IG9uIHRoaXMgY29tcG9uZW50XG4gIE51bUNvbHM6IHN0cmluZztcbiAgdGVtcGxhdGU6IHN0cmluZztcbiAgaW5zdHJ1Y3Rpb25zOiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1kZWZhdWx0LWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vZGVmYXVsdC1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGVmYXVsdC1mb3JtLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIGZvcndhcmRSZWYoKCkgPT4gQ29tcG9uZW50TWFwcGVyQ29tcG9uZW50KV1cbn0pXG5leHBvcnQgY2xhc3MgRGVmYXVsdEZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBwQ29ubiQ6IHR5cGVvZiBQQ29ubmVjdDtcbiAgQElucHV0KCkgZm9ybUdyb3VwJDogRm9ybUdyb3VwO1xuXG4gIGFyQ2hpbGRyZW4kOiBhbnlbXTtcbiAgZGl2Q2xhc3MkOiBzdHJpbmc7XG4gIHRlbXBsYXRlOiBhbnk7XG4gIHNob3dMYWJlbDogYW55O1xuICBsYWJlbDogYW55O1xuICBpbnN0cnVjdGlvbnM6IHN0cmluZztcblxuICBOT19IRUFERVJfVEVNUExBVEVTID0gW1xuICAgICdTdWJUYWJzJyxcbiAgICAnU2ltcGxlVGFibGUnLFxuICAgICdEZXRhaWxzJyxcbiAgICAnRGV0YWlsc1R3b0NvbHVtbicsXG4gICAgJ0RldGFpbHNUaHJlZUNvbHVtbicsXG4gICAgJ05hcnJvd1dpZGVEZXRhaWxzJyxcbiAgICAnV2lkZU5hcnJvd0RldGFpbHMnLFxuICAgICdDb25maXJtYXRpb24nXG4gIF07XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0ZW1wbGF0ZVV0aWxzOiBUZW1wbGF0ZVV0aWxzKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IGNvbmZpZ1Byb3BzID0gdGhpcy5wQ29ubiQuZ2V0Q29uZmlnUHJvcHMoKSBhcyBEZWZhdWx0Rm9ybVByb3BzO1xuICAgIHRoaXMudGVtcGxhdGUgPSBjb25maWdQcm9wcz8udGVtcGxhdGU7XG4gICAgY29uc3QgcHJvcFRvVXNlOiBhbnkgPSB7IC4uLnRoaXMucENvbm4kLmdldEluaGVyaXRlZFByb3BzKCkgfTtcbiAgICB0aGlzLnNob3dMYWJlbCA9IHByb3BUb1VzZT8uc2hvd0xhYmVsO1xuICAgIHRoaXMubGFiZWwgPSBwcm9wVG9Vc2U/LmxhYmVsO1xuICAgIGNvbnN0IGtpZHMgPSB0aGlzLnBDb25uJC5nZXRDaGlsZHJlbigpIGFzIGFueVtdO1xuICAgIHRoaXMuaW5zdHJ1Y3Rpb25zID0gdGhpcy50ZW1wbGF0ZVV0aWxzLmdldEluc3RydWN0aW9ucyh0aGlzLnBDb25uJCwgY29uZmlnUHJvcHM/Lmluc3RydWN0aW9ucyk7XG5cbiAgICBjb25zdCBudW1Db2xzID0gY29uZmlnUHJvcHMuTnVtQ29scyA/IGNvbmZpZ1Byb3BzLk51bUNvbHMgOiAnMSc7XG4gICAgc3dpdGNoIChudW1Db2xzKSB7XG4gICAgICBjYXNlICcxJzpcbiAgICAgICAgdGhpcy5kaXZDbGFzcyQgPSAncHNkay1kZWZhdWx0LWZvcm0tb25lLWNvbHVtbic7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnMic6XG4gICAgICAgIHRoaXMuZGl2Q2xhc3MkID0gJ3BzZGstZGVmYXVsdC1mb3JtLXR3by1jb2x1bW4nO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJzMnOlxuICAgICAgICB0aGlzLmRpdkNsYXNzJCA9ICdwc2RrLWRlZmF1bHQtZm9ybS10aHJlZS1jb2x1bW4nO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRoaXMuZGl2Q2xhc3MkID0gJ3BzZGstZGVmYXVsdC1mb3JtLW9uZS1jb2x1bW4nO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICAvLyByZXBvaW50IGNoaWxkcmVuIGJlZm9yZSBnZXR0aW5nIHRlbXBsYXRlQXJyYXlcbiAgICAvLyBDaGlsZHJlbiBtYXkgY29udGFpbiAncmVmZXJlbmNlJyBjb21wb25lbnQsIHNvIHdlIG5lZWQgdG9cbiAgICAvLyAgbm9ybWFsaXplIHRoZW1cbiAgICB0aGlzLmFyQ2hpbGRyZW4kID0gUmVmZXJlbmNlQ29tcG9uZW50Lm5vcm1hbGl6ZVBDb25uQXJyYXkoa2lkc1swXS5nZXRQQ29ubmVjdCgpLmdldENoaWxkcmVuKCkpO1xuICB9XG59XG4iLCI8IS0tIFdoZW4gYWRkaW5nIGEgY29tcG9uZW50IGhlcmUsIGFkZCB0aGUgc2FtZSBjb21wb25lbnQgaW4gJ3JlZ2lvbicgdGVtcGxhdGUgYXMgd2VsbCAtLT5cbjxkaXYgKm5nSWY9XCIhTk9fSEVBREVSX1RFTVBMQVRFUy5pbmNsdWRlcyh0ZW1wbGF0ZSkgJiYgc2hvd0xhYmVsXCI+XG4gIDxkaXYgY2xhc3M9XCJ0ZW1wbGF0ZS10aXRsZS1jb250YWluZXJcIj57eyBsYWJlbCB9fTwvZGl2PlxuPC9kaXY+XG48ZGl2ICpuZ0lmPVwiaW5zdHJ1Y3Rpb25zXCIgY2xhc3M9XCJwc2RrLWRlZmF1bHQtZm9ybS1pbnN0cnVjdGlvbi10ZXh0XCI+XG4gIDxkaXYga2V5PVwiaW5zdHJ1Y3Rpb25zXCIgaWQ9XCJpbnN0cnVjdGlvbi10ZXh0XCIgW2lubmVySFRNTF09XCJpbnN0cnVjdGlvbnNcIj48L2Rpdj5cbjwvZGl2PlxuPGRpdiBbY2xhc3NOYW1lXT1cImRpdkNsYXNzJFwiPlxuICA8ZGl2ICpuZ0Zvcj1cImxldCBraWQgb2YgYXJDaGlsZHJlbiRcIiBbbmdDbGFzc109XCJ7ICdncmlkLWNvbHVtbic6IGtpZC5nZXRQQ29ubmVjdCgpLmdldENvbXBvbmVudE5hbWUoKSA9PT0gJ1ZpZXcnIH1cIj5cbiAgICA8Y29tcG9uZW50LW1hcHBlclxuICAgICAgW25hbWVdPVwia2lkLmdldFBDb25uZWN0KCkuZ2V0Q29tcG9uZW50TmFtZSgpXCJcbiAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgIHBDb25uJDoga2lkLmdldFBDb25uZWN0KCksXG4gICAgICAgIGZvcm1Hcm91cCQ6IGZvcm1Hcm91cCRcbiAgICAgIH1cIlxuICAgICAgZXJyb3JNc2c9XCJEZWZhdWx0Rm9ybSB3YW50cyBjb21wb25lbnQgbm90IHlldCBhdmFpbGFibGU6IHt7IGtpZC5nZXRQQ29ubmVjdCgpLmdldENvbXBvbmVudE5hbWUoKSB9fVwiXG4gICAgPjwvY29tcG9uZW50LW1hcHBlcj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9kZWZhdWx0LWZvcm0vZGVmYXVsdC1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9kZWZhdWx0LWZvcm0vZGVmYXVsdC1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOERBQThELENBQUM7Ozs7QUFpQnhHLE1BQU0sT0FBTyxvQkFBb0I7SUFzQi9CLFlBQW9CLGFBQTRCO1FBQTVCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBWGhELHdCQUFtQixHQUFHO1lBQ3BCLFNBQVM7WUFDVCxhQUFhO1lBQ2IsU0FBUztZQUNULGtCQUFrQjtZQUNsQixvQkFBb0I7WUFDcEIsbUJBQW1CO1lBQ25CLG1CQUFtQjtZQUNuQixjQUFjO1NBQ2YsQ0FBQztJQUVpRCxDQUFDO0lBRXBELFFBQVE7UUFDTixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBc0IsQ0FBQztRQUNyRSxJQUFJLENBQUMsUUFBUSxHQUFHLFdBQVcsRUFBRSxRQUFRLENBQUM7UUFDdEMsTUFBTSxTQUFTLEdBQVEsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxDQUFDO1FBQzlELElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxFQUFFLFNBQVMsQ0FBQztRQUN0QyxJQUFJLENBQUMsS0FBSyxHQUFHLFNBQVMsRUFBRSxLQUFLLENBQUM7UUFDOUIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQVcsQ0FBQztRQUNoRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBRS9GLE1BQU0sT0FBTyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUNoRSxRQUFRLE9BQU8sRUFBRTtZQUNmLEtBQUssR0FBRztnQkFDTixJQUFJLENBQUMsU0FBUyxHQUFHLDhCQUE4QixDQUFDO2dCQUNoRCxNQUFNO1lBQ1IsS0FBSyxHQUFHO2dCQUNOLElBQUksQ0FBQyxTQUFTLEdBQUcsOEJBQThCLENBQUM7Z0JBQ2hELE1BQU07WUFDUixLQUFLLEdBQUc7Z0JBQ04sSUFBSSxDQUFDLFNBQVMsR0FBRyxnQ0FBZ0MsQ0FBQztnQkFDbEQsTUFBTTtZQUNSO2dCQUNFLElBQUksQ0FBQyxTQUFTLEdBQUcsOEJBQThCLENBQUM7Z0JBQ2hELE1BQU07U0FDVDtRQUVELGdEQUFnRDtRQUNoRCw0REFBNEQ7UUFDNUQsa0JBQWtCO1FBQ2xCLElBQUksQ0FBQyxXQUFXLEdBQUcsa0JBQWtCLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDakcsQ0FBQzsrR0FyRFUsb0JBQW9CO21HQUFwQixvQkFBb0Isb0lDckJqQyw0M0JBbUJBLDR0QkRBWSxZQUFZLDBmQUFtQix3QkFBd0I7OzRGQUV0RCxvQkFBb0I7a0JBUGhDLFNBQVM7K0JBQ0Usa0JBQWtCLGNBR2hCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsd0JBQXdCLENBQUMsQ0FBQztvR0FHMUQsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBSZWZlcmVuY2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9pbmZyYS9yZWZlcmVuY2UvcmVmZXJlbmNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21wb25lbnRNYXBwZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9fYnJpZGdlL2NvbXBvbmVudC1tYXBwZXIvY29tcG9uZW50LW1hcHBlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGVtcGxhdGVVdGlscyB9IGZyb20gJy4uLy4uLy4uL19oZWxwZXJzL3RlbXBsYXRlLXV0aWxzJztcblxuaW50ZXJmYWNlIERlZmF1bHRGb3JtUHJvcHMge1xuICAvLyBJZiBhbnksIGVudGVyIGFkZGl0aW9uYWwgcHJvcHMgdGhhdCBvbmx5IGV4aXN0IG9uIHRoaXMgY29tcG9uZW50XG4gIE51bUNvbHM6IHN0cmluZztcbiAgdGVtcGxhdGU6IHN0cmluZztcbiAgaW5zdHJ1Y3Rpb25zOiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1kZWZhdWx0LWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vZGVmYXVsdC1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGVmYXVsdC1mb3JtLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIGZvcndhcmRSZWYoKCkgPT4gQ29tcG9uZW50TWFwcGVyQ29tcG9uZW50KV1cbn0pXG5leHBvcnQgY2xhc3MgRGVmYXVsdEZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBwQ29ubiQ6IHR5cGVvZiBQQ29ubmVjdDtcbiAgQElucHV0KCkgZm9ybUdyb3VwJDogRm9ybUdyb3VwO1xuXG4gIGFyQ2hpbGRyZW4kOiBhbnlbXTtcbiAgZGl2Q2xhc3MkOiBzdHJpbmc7XG4gIHRlbXBsYXRlOiBhbnk7XG4gIHNob3dMYWJlbDogYW55O1xuICBsYWJlbDogYW55O1xuICBpbnN0cnVjdGlvbnM6IHN0cmluZztcblxuICBOT19IRUFERVJfVEVNUExBVEVTID0gW1xuICAgICdTdWJUYWJzJyxcbiAgICAnU2ltcGxlVGFibGUnLFxuICAgICdEZXRhaWxzJyxcbiAgICAnRGV0YWlsc1R3b0NvbHVtbicsXG4gICAgJ0RldGFpbHNUaHJlZUNvbHVtbicsXG4gICAgJ05hcnJvd1dpZGVEZXRhaWxzJyxcbiAgICAnV2lkZU5hcnJvd0RldGFpbHMnLFxuICAgICdDb25maXJtYXRpb24nXG4gIF07XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0ZW1wbGF0ZVV0aWxzOiBUZW1wbGF0ZVV0aWxzKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IGNvbmZpZ1Byb3BzID0gdGhpcy5wQ29ubiQuZ2V0Q29uZmlnUHJvcHMoKSBhcyBEZWZhdWx0Rm9ybVByb3BzO1xuICAgIHRoaXMudGVtcGxhdGUgPSBjb25maWdQcm9wcz8udGVtcGxhdGU7XG4gICAgY29uc3QgcHJvcFRvVXNlOiBhbnkgPSB7IC4uLnRoaXMucENvbm4kLmdldEluaGVyaXRlZFByb3BzKCkgfTtcbiAgICB0aGlzLnNob3dMYWJlbCA9IHByb3BUb1VzZT8uc2hvd0xhYmVsO1xuICAgIHRoaXMubGFiZWwgPSBwcm9wVG9Vc2U/LmxhYmVsO1xuICAgIGNvbnN0IGtpZHMgPSB0aGlzLnBDb25uJC5nZXRDaGlsZHJlbigpIGFzIGFueVtdO1xuICAgIHRoaXMuaW5zdHJ1Y3Rpb25zID0gdGhpcy50ZW1wbGF0ZVV0aWxzLmdldEluc3RydWN0aW9ucyh0aGlzLnBDb25uJCwgY29uZmlnUHJvcHM/Lmluc3RydWN0aW9ucyk7XG5cbiAgICBjb25zdCBudW1Db2xzID0gY29uZmlnUHJvcHMuTnVtQ29scyA/IGNvbmZpZ1Byb3BzLk51bUNvbHMgOiAnMSc7XG4gICAgc3dpdGNoIChudW1Db2xzKSB7XG4gICAgICBjYXNlICcxJzpcbiAgICAgICAgdGhpcy5kaXZDbGFzcyQgPSAncHNkay1kZWZhdWx0LWZvcm0tb25lLWNvbHVtbic7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnMic6XG4gICAgICAgIHRoaXMuZGl2Q2xhc3MkID0gJ3BzZGstZGVmYXVsdC1mb3JtLXR3by1jb2x1bW4nO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJzMnOlxuICAgICAgICB0aGlzLmRpdkNsYXNzJCA9ICdwc2RrLWRlZmF1bHQtZm9ybS10aHJlZS1jb2x1bW4nO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRoaXMuZGl2Q2xhc3MkID0gJ3BzZGstZGVmYXVsdC1mb3JtLW9uZS1jb2x1bW4nO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICAvLyByZXBvaW50IGNoaWxkcmVuIGJlZm9yZSBnZXR0aW5nIHRlbXBsYXRlQXJyYXlcbiAgICAvLyBDaGlsZHJlbiBtYXkgY29udGFpbiAncmVmZXJlbmNlJyBjb21wb25lbnQsIHNvIHdlIG5lZWQgdG9cbiAgICAvLyAgbm9ybWFsaXplIHRoZW1cbiAgICB0aGlzLmFyQ2hpbGRyZW4kID0gUmVmZXJlbmNlQ29tcG9uZW50Lm5vcm1hbGl6ZVBDb25uQXJyYXkoa2lkc1swXS5nZXRQQ29ubmVjdCgpLmdldENoaWxkcmVuKCkpO1xuICB9XG59XG4iLCI8IS0tIFdoZW4gYWRkaW5nIGEgY29tcG9uZW50IGhlcmUsIGFkZCB0aGUgc2FtZSBjb21wb25lbnQgaW4gJ3JlZ2lvbicgdGVtcGxhdGUgYXMgd2VsbCAtLT5cbjxkaXYgKm5nSWY9XCIhTk9fSEVBREVSX1RFTVBMQVRFUy5pbmNsdWRlcyh0ZW1wbGF0ZSkgJiYgc2hvd0xhYmVsXCI+XG4gIDxkaXYgY2xhc3M9XCJ0ZW1wbGF0ZS10aXRsZS1jb250YWluZXJcIj57eyBsYWJlbCB9fTwvZGl2PlxuPC9kaXY+XG48ZGl2ICpuZ0lmPVwiaW5zdHJ1Y3Rpb25zXCIgY2xhc3M9XCJwc2RrLWRlZmF1bHQtZm9ybS1pbnN0cnVjdGlvbi10ZXh0XCI+XG4gIDxkaXYga2V5PVwiaW5zdHJ1Y3Rpb25zXCIgaWQ9XCJpbnN0cnVjdGlvbi10ZXh0XCIgW2lubmVySFRNTF09XCJpbnN0cnVjdGlvbnNcIj48L2Rpdj5cbjwvZGl2PlxuPGRpdiBbY2xhc3NOYW1lXT1cImRpdkNsYXNzJFwiPlxuICA8ZGl2ICpuZ0Zvcj1cImxldCBraWQgb2YgYXJDaGlsZHJlbiRcIiBbbmdDbGFzc109XCJ7ICdncmlkLWNvbHVtbic6IGtpZC5nZXRQQ29ubmVjdCgpLmdldENvbXBvbmVudE5hbWUoKSA9PT0gJ1ZpZXcnIH1cIj5cbiAgICA8Y29tcG9uZW50LW1hcHBlclxuICAgICAgW25hbWVdPVwia2lkLmdldFBDb25uZWN0KCkuZ2V0Q29tcG9uZW50TmFtZSgpXCJcbiAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgIHBDb25uJDoga2lkLmdldFBDb25uZWN0KCksXG4gICAgICAgIGZvcm1Hcm91cCQ6IGZvcm1Hcm91cCRcbiAgICAgIH1cIlxuICAgICAgZXJyb3JNc2c9XCJEZWZhdWx0Rm9ybSB3YW50cyBjb21wb25lbnQgbm90IHlldCBhdmFpbGFibGU6IHt7IGtpZC5nZXRQQ29ubmVjdCgpLmdldENvbXBvbmVudE5hbWUoKSB9fVwiXG4gICAgPjwvY29tcG9uZW50LW1hcHBlcj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==