@ohioepa/oepa-ui-lib 2.0.14 → 2.0.16

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.
@@ -108,11 +108,11 @@ export class LynxImageUploadComponent {
108
108
  });
109
109
  }
110
110
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LynxImageUploadComponent, deps: [{ token: i1.OepaComponentIdService }, { token: i2.BsModalService }, { token: i1.OepaFileUtilService }], target: i0.ɵɵFactoryTarget.Component });
111
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: LynxImageUploadComponent, selector: "oepa-lynx-image-upload", inputs: { group: "group", field: "field", projectID: "projectID", label: "label", errorLabel: "errorLabel", image: "image", showValidation: "showValidation", required: "required", accept: "accept", imageBlobUrl: "imageBlobUrl" }, outputs: { onImageUpload: "onImageUpload", onImageRemove: "onImageRemove", onImageDownload: "onImageDownload" }, ngImport: i0, template: "<form [formGroup]=\"group\">\n <div *ngIf=\"!imageBlobUrl\">\n <label class=\"btn btn-primary btn-file\">\n Browse&hellip;\n <input type=\"file\" style=\"display: none;\" (change)=\"fileChange($event)\" \n [id]=\"componentId+'_BrowseBtn'\" [name]=\"componentId+'_BrowseBtn'\" class=\"form-control\"\n [attr.accept]=\"accept ? accept : null\"\n [disabled]=\"group.controls[field].status === 'DISABLED'\">\n </label>\n <span>&nbsp;Click the button on the left to upload an image from your computer.</span>\n </div>\n <div *ngIf=\"imageBlobUrl\">\n <div class=\"row\">\n <div class=\"col-sm-12\">\n <img [src]=\"imageBlobUrl\" [id]=\"componentId+'_Image'\" width=\"200\"\n [attr.alt]=\"image && image.userFilename ? image.userFilename : 'Uploaded image preview'\"\n [attr.aria-label]=\"image && image.userFilename ? image.userFilename : 'Uploaded image preview'\">\n </div>\n <br/>\n <div class=\"col-sm-12\">\n <span>{{image.userFilename}}</span>\n </div>\n <div class=\"col-sm-12\">\n <button type=\"button\" class=\"btn btn-primary\" [id]=\"componentId+'_RemoveImageBtn'\" [name]=\"componentId+'_RemoveImageBtn'\"\n (click)=\"removeImage()\" [disabled]=\"group.controls[field].status === 'DISABLED'\" aria-label=\"Remove Image\">\n Remove Image\n </button>\n </div>\n </div>\n </div>\n <div *ngIf=\"errorMessage\" class=\"alert alert-danger\" role=\"alert\">{{errorMessage}}</div>\n</form>", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] });
111
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: LynxImageUploadComponent, selector: "oepa-lynx-image-upload", inputs: { group: "group", field: "field", projectID: "projectID", label: "label", errorLabel: "errorLabel", image: "image", showValidation: "showValidation", required: "required", accept: "accept", imageBlobUrl: "imageBlobUrl" }, outputs: { onImageUpload: "onImageUpload", onImageRemove: "onImageRemove", onImageDownload: "onImageDownload" }, ngImport: i0, template: "<form [formGroup]=\"group\">\n <div *ngIf=\"!imageBlobUrl\">\n <label class=\"btn btn-primary btn-file\">\n Browse&hellip;\n <input type=\"file\" style=\"display: none;\" (change)=\"fileChange($event)\" \n [id]=\"componentId+'_BrowseBtn'\" [name]=\"componentId+'_BrowseBtn'\" class=\"form-control\"\n [attr.accept]=\"accept ? accept : null\"\n [disabled]=\"group.controls[field].status === 'DISABLED'\">\n </label>\n <span>&nbsp;Click the button on the left to upload an image from your computer.</span>\n </div>\n <div *ngIf=\"imageBlobUrl\">\n <div class=\"row\">\n <div class=\"col-sm-12\">\n <img [src]=\"imageBlobUrl\" [id]=\"componentId+'_Image'\" width=\"200\"\n alt=\"\"\n [attr.aria-label]=\"image && image.userFilename ? image.userFilename : 'Uploaded image preview'\">\n </div>\n <br/>\n <div class=\"col-sm-12\">\n <span>{{image.userFilename}}</span>\n </div>\n <div class=\"col-sm-12\">\n <button type=\"button\" class=\"btn btn-primary\" [id]=\"componentId+'_RemoveImageBtn'\" [name]=\"componentId+'_RemoveImageBtn'\"\n (click)=\"removeImage()\" [disabled]=\"group.controls[field].status === 'DISABLED'\" aria-label=\"Remove Image\">\n Remove Image\n </button>\n </div>\n </div>\n </div>\n <div *ngIf=\"errorMessage\" class=\"alert alert-danger\" role=\"alert\">{{errorMessage}}</div>\n</form>", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] });
112
112
  }
113
113
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LynxImageUploadComponent, decorators: [{
114
114
  type: Component,
115
- args: [{ selector: 'oepa-lynx-image-upload', template: "<form [formGroup]=\"group\">\n <div *ngIf=\"!imageBlobUrl\">\n <label class=\"btn btn-primary btn-file\">\n Browse&hellip;\n <input type=\"file\" style=\"display: none;\" (change)=\"fileChange($event)\" \n [id]=\"componentId+'_BrowseBtn'\" [name]=\"componentId+'_BrowseBtn'\" class=\"form-control\"\n [attr.accept]=\"accept ? accept : null\"\n [disabled]=\"group.controls[field].status === 'DISABLED'\">\n </label>\n <span>&nbsp;Click the button on the left to upload an image from your computer.</span>\n </div>\n <div *ngIf=\"imageBlobUrl\">\n <div class=\"row\">\n <div class=\"col-sm-12\">\n <img [src]=\"imageBlobUrl\" [id]=\"componentId+'_Image'\" width=\"200\"\n [attr.alt]=\"image && image.userFilename ? image.userFilename : 'Uploaded image preview'\"\n [attr.aria-label]=\"image && image.userFilename ? image.userFilename : 'Uploaded image preview'\">\n </div>\n <br/>\n <div class=\"col-sm-12\">\n <span>{{image.userFilename}}</span>\n </div>\n <div class=\"col-sm-12\">\n <button type=\"button\" class=\"btn btn-primary\" [id]=\"componentId+'_RemoveImageBtn'\" [name]=\"componentId+'_RemoveImageBtn'\"\n (click)=\"removeImage()\" [disabled]=\"group.controls[field].status === 'DISABLED'\" aria-label=\"Remove Image\">\n Remove Image\n </button>\n </div>\n </div>\n </div>\n <div *ngIf=\"errorMessage\" class=\"alert alert-danger\" role=\"alert\">{{errorMessage}}</div>\n</form>" }]
115
+ args: [{ selector: 'oepa-lynx-image-upload', template: "<form [formGroup]=\"group\">\n <div *ngIf=\"!imageBlobUrl\">\n <label class=\"btn btn-primary btn-file\">\n Browse&hellip;\n <input type=\"file\" style=\"display: none;\" (change)=\"fileChange($event)\" \n [id]=\"componentId+'_BrowseBtn'\" [name]=\"componentId+'_BrowseBtn'\" class=\"form-control\"\n [attr.accept]=\"accept ? accept : null\"\n [disabled]=\"group.controls[field].status === 'DISABLED'\">\n </label>\n <span>&nbsp;Click the button on the left to upload an image from your computer.</span>\n </div>\n <div *ngIf=\"imageBlobUrl\">\n <div class=\"row\">\n <div class=\"col-sm-12\">\n <img [src]=\"imageBlobUrl\" [id]=\"componentId+'_Image'\" width=\"200\"\n alt=\"\"\n [attr.aria-label]=\"image && image.userFilename ? image.userFilename : 'Uploaded image preview'\">\n </div>\n <br/>\n <div class=\"col-sm-12\">\n <span>{{image.userFilename}}</span>\n </div>\n <div class=\"col-sm-12\">\n <button type=\"button\" class=\"btn btn-primary\" [id]=\"componentId+'_RemoveImageBtn'\" [name]=\"componentId+'_RemoveImageBtn'\"\n (click)=\"removeImage()\" [disabled]=\"group.controls[field].status === 'DISABLED'\" aria-label=\"Remove Image\">\n Remove Image\n </button>\n </div>\n </div>\n </div>\n <div *ngIf=\"errorMessage\" class=\"alert alert-danger\" role=\"alert\">{{errorMessage}}</div>\n</form>" }]
116
116
  }], ctorParameters: () => [{ type: i1.OepaComponentIdService }, { type: i2.BsModalService }, { type: i1.OepaFileUtilService }], propDecorators: { group: [{
117
117
  type: Input
118
118
  }], field: [{
@@ -140,4 +140,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
140
140
  }], onImageDownload: [{
141
141
  type: Output
142
142
  }] } });
143
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHlueC1pbWFnZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb2VwYS11aS1saWIvc3JjL2xpYi9seW54LWltYWdlLXVwbG9hZC9seW54LWltYWdlLXVwbG9hZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2x5bngtaW1hZ2UtdXBsb2FkL2x5bngtaW1hZ2UtdXBsb2FkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFNL0UsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7Ozs7OztBQVFoRyxNQUFNLE9BQU8sd0JBQXdCO0lBb0JmO0lBQ1Y7SUFDQTtJQXJCVixXQUFXLEdBQUcsMEJBQTBCLENBQUM7SUFDekMsWUFBWSxHQUFZLEtBQUssQ0FBQztJQUM5QixZQUFZLEdBQVcsRUFBRSxDQUFDO0lBRWpCLEtBQUssQ0FBYTtJQUNsQixLQUFLLEdBQVcsRUFBRSxDQUFDO0lBQUEsQ0FBQztJQUNwQixTQUFTLEdBQVcsRUFBRSxDQUFDO0lBQUEsQ0FBQztJQUN4QixLQUFLLEdBQVcsaUJBQWlCLENBQUM7SUFDbEMsVUFBVSxHQUFXLFVBQVUsQ0FBQztJQUNoQyxLQUFLLEdBQW1CLEVBQUUsQ0FBQztJQUMzQixjQUFjLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLFFBQVEsR0FBRyxJQUFJLENBQUM7SUFDaEIsTUFBTSxHQUFXLEVBQUUsQ0FBQztJQUFBLENBQUM7SUFDckIsWUFBWSxHQUFnQyxJQUFJLENBQUM7SUFFaEQsYUFBYSxHQUFpQyxJQUFJLFlBQVksRUFBa0IsQ0FBQztJQUNqRixhQUFhLEdBQWlDLElBQUksWUFBWSxFQUFrQixDQUFDO0lBQ2pG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VSxHQUFHLGNBQWMsQ0FBQztRQUMzQyxLQUFLLENBQUMsT0FBUSxDQUFDLFFBQVEsR0FBRyxtQ0FBbUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksR0FBRyxHQUFHLENBQUM7UUFDOUYsS0FBSyxDQUFDLE9BQVEsQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ3ZDLEtBQUssQ0FBQyxPQUFRLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztRQUNyQyxLQUFLLENBQUMsT0FBUSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3hFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDcEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt3R0FwR1Usd0JBQXdCOzRGQUF4Qix3QkFBd0IscVpDZHJDLDZ1REErQk87OzRGRGpCTSx3QkFBd0I7a0JBTHBDLFNBQVM7K0JBQ0Usd0JBQXdCOzBKQVN6QixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFFSSxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEJzTW9kYWxTZXJ2aWNlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9tb2RhbCc7XG5pbXBvcnQgeyBCc01vZGFsUmVmIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9tb2RhbCc7XG5pbXBvcnQgeyBPZXBhQ29tcG9uZW50SWRTZXJ2aWNlIH0gZnJvbSAnQG9oaW9lcGEvb2VwYS1jb21tb24tbGliJztcbmltcG9ydCB7IEx5bnhBdHRhY2htZW50IH0gZnJvbSAnQG9oaW9lcGEvb2VwYS1lYml6LWxpYic7XG5pbXBvcnQgeyBDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudCB9IGZyb20gJy4uL2NvbmZpcm1hdGlvbi1tb2RhbC9jb25maXJtYXRpb24tbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IE9lcGFGaWxlVXRpbFNlcnZpY2UgfSBmcm9tICdAb2hpb2VwYS9vZXBhLWNvbW1vbi1saWInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvZXBhLWx5bngtaW1hZ2UtdXBsb2FkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2x5bngtaW1hZ2UtdXBsb2FkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbHlueC1pbWFnZS11cGxvYWQuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIEx5bnhJbWFnZVVwbG9hZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7ICBcbiAgY29tcG9uZW50SWQgPSAnTHlueEltYWdlVXBsb2FkQ29tcG9uZW50JztcbiAgZm9ybURpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gIGVycm9yTWVzc2FnZTogc3RyaW5nID0gJyc7XG4gIFxuICBASW5wdXQoKSBncm91cCE6IEZvcm1Hcm91cDtcbiAgQElucHV0KCkgZmllbGQ6IHN0cmluZyA9ICcnOztcbiAgQElucHV0KCkgcHJvamVjdElEOiBzdHJpbmcgPSAnJzs7XG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgPSAnVXBsb2FkIGFuIGltYWdlJztcbiAgQElucHV0KCkgZXJyb3JMYWJlbDogc3RyaW5nID0gJ0FuIGltYWdlJztcbiAgQElucHV0KCkgaW1hZ2U6IEx5bnhBdHRhY2htZW50ID0ge307XG4gIEBJbnB1dCgpIHNob3dWYWxpZGF0aW9uID0gZmFsc2U7XG4gIEBJbnB1dCgpIHJlcXVpcmVkID0gdHJ1ZTtcbiAgQElucHV0KCkgYWNjZXB0OiBzdHJpbmcgPSAnJzs7XG4gIEBJbnB1dCgpIGltYWdlQmxvYlVybDogc3RyaW5nIHwgQXJyYXlCdWZmZXIgfCBudWxsID0gbnVsbDtcblxuICBAT3V0cHV0KCkgb25JbWFnZVVwbG9hZDogRXZlbnRFbWl0dGVyPEx5bnhBdHRhY2htZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8THlueEF0dGFjaG1lbnQ+KCk7XG4gIEBPdXRwdXQoKSBvbkltYWdlUmVtb3ZlOiBFdmVudEVtaXR0ZXI8THlueEF0dGFjaG1lbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxMeW54QXR0YWNobWVudD4oKTtcbiAgQE91dHB1dCgpIG9uSW1hZ2VEb3dubG9hZDogRXZlbnRFbWl0dGVyPEx5bnhBdHRhY2htZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8THlueEF0dGFjaG1lbnQ+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpZFNlcnZpY2U6IE9lcGFDb21wb25lbnRJZFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IEJzTW9kYWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgZmlsZVV0aWw6IE9lcGFGaWxlVXRpbFNlcnZpY2UpIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLmdyb3VwKSB7XG4gICAgICB0aGlzLmNvbXBvbmVudElkID0gdGhpcy5pZFNlcnZpY2UuZ2V0Q29tcG9uZW50SWQodGhpcy5ncm91cCk7XG4gICAgICB0aGlzLmNvbXBvbmVudElkICs9ICh0aGlzLmNvbXBvbmVudElkLmxlbmd0aCA+IDAgPyAnXycgOiAnJykgKyB0aGlzLmZpZWxkO1xuICAgIH1cbiAgICBpZiAodGhpcy5pbWFnZSAmJiB0aGlzLmltYWdlLmlkKSB7XG4gICAgICB0aGlzLmRvd25sb2FkSW1hZ2UodGhpcy5pbWFnZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGZpbGVDaGFuZ2UoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJyc7XG4gICAgY29uc3QgZmlsZUxpc3Q6IEZpbGVMaXN0ID0gZXZlbnQudGFyZ2V0LmZpbGVzO1xuICAgIGlmIChmaWxlTGlzdC5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBmaWxlOiBGaWxlID0gZmlsZUxpc3RbMF07XG4gICAgICBpZiAodGhpcy5maWxlVHlwZUNhbkJlQWNjZXB0ZWQoZmlsZSkpIHtcbiAgICAgICAgdGhpcy5maWxlVXRpbC51cGxvYWRGaWxlKGZpbGUpLnN1YnNjcmliZSgoYXR0YWNobWVudDogTHlueEF0dGFjaG1lbnQpID0+IHtcbiAgICAgICAgICB0aGlzLmdyb3VwLmNvbnRyb2xzW3RoaXMuZmllbGRdLnNldFZhbHVlKGF0dGFjaG1lbnQudXNlckZpbGVuYW1lKTtcbiAgICAgICAgICB0aGlzLm9uSW1hZ2VVcGxvYWQuZW1pdChhdHRhY2htZW50KTtcbiAgICAgICAgfSwgZXJyID0+IHtcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdFcnJvciB1cGxvYWRpbmcgZmlsZSAnICsgZXJyIHx8ICcnO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ0Nhbm5vdCBhY2NlcHQgdGhpcyB0eXBlIG9mIGZpbGUuIFBsZWFzZSB1cGxvYWQgYSBmaWxlIG9mIHR5cGU6ICcgKyB0aGlzLmFjY2VwdDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgXG4gIHByaXZhdGUgZmlsZVR5cGVDYW5CZUFjY2VwdGVkKGZpbGU6YW55KTogYm9vbGVhbiB7XG4gICAgbGV0IG9rID0gdHJ1ZTtcbiAgICBpZiAodGhpcy5hY2NlcHQpIHtcbiAgICAgIGNvbnN0IG1pbWVUeXBlID0gdGhpcy5maWxlVXRpbC5taW1lVHlwZUZvckZpbGUoZmlsZS5uYW1lKTtcbiAgICAgIGlmICh0aGlzLmFjY2VwdC5pbmRleE9mKG1pbWVUeXBlKSA8IDApIHtcbiAgICAgICAgb2sgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG9rO1xuICB9XG4gIFxuICBkb3dubG9hZEltYWdlKGltYWdlOiBMeW54QXR0YWNobWVudCkge1xuICAgIGlmICghaW1hZ2Uuc3lzdGVtRmlsZW5hbWUgfHwgaW1hZ2Uuc3lzdGVtRmlsZW5hbWUubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLm9uSW1hZ2VEb3dubG9hZC5lbWl0KGltYWdlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5maWxlVXRpbC5kb3dubG9hZEF0dGFjaG1lbnQoaW1hZ2UpLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IGRvYyA9PiB7XG4gICAgICAgICAgY29uc3QgbWltZVR5cGUgPSB0aGlzLmZpbGVVdGlsLm1pbWVUeXBlRm9yRmlsZShpbWFnZS51c2VyRmlsZW5hbWUgfHwgJycpO1xuICAgICAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbZG9jXSwgeyB0eXBlOiBtaW1lVHlwZSB9KTtcbiAgICAgICAgICB0aGlzLmNyZWF0ZUltYWdlRnJvbUJsb2IoYmxvYik7XG4gICAgICAgIH0sIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ0Vycm9yIGRvd25sb2FkaW5nIGZpbGU6ICcgKyBpbWFnZS51c2VyRmlsZW5hbWUgKyAnOiAnICsgZXJyO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgfVxuICB9XG5cbiAgY3JlYXRlSW1hZ2VGcm9tQmxvYihpbWFnZTogQmxvYikge1xuICAgIGxldCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgIHJlYWRlci5hZGRFdmVudExpc3RlbmVyKFwibG9hZFwiLCAoKSA9PiB7XG4gICAgICB0aGlzLmltYWdlQmxvYlVybCA9IHJlYWRlci5yZXN1bHQ7XG4gICAgfSwgZmFsc2UpO1xuICAgIGlmIChpbWFnZSkge1xuICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoaW1hZ2UpO1xuICAgIH1cbiAgfVxuXG4gIHJlbW92ZUltYWdlKCkgeyAgICBcbiAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICcnO1xuICAgIGNvbnN0IG1vZGFsOiBCc01vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uuc2hvdyhDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudCwgeyBpZ25vcmVCYWNrZHJvcENsaWNrOiB0cnVlIH0pO1xuICAgICg8Q29uZmlybWF0aW9uTW9kYWxDb21wb25lbnQ+bW9kYWwuY29udGVudCkuaGVhZGVyVGV4dCA9ICdSZW1vdmUgSW1hZ2UnO1xuICAgICg8Q29uZmlybWF0aW9uTW9kYWxDb21wb25lbnQ+bW9kYWwuY29udGVudCkuYm9keVRleHQgPSAnRG8geW91IHdhbnQgdG8gcmVtb3ZlIHRoZSBpbWFnZTogJyArIHRoaXMuaW1hZ2UudXNlckZpbGVuYW1lICsgJz8nO1xuICAgICg8Q29uZmlybWF0aW9uTW9kYWxDb21wb25lbnQ+bW9kYWwuY29udGVudCkuY29uZmlybUJ0bkxhYmVsID0gJ1llcyc7XG4gICAgKDxDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudD5tb2RhbC5jb250ZW50KS5jYW5jZWxCdG5MYWJlbCA9ICdObyc7XG4gICAgKDxDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudD5tb2RhbC5jb250ZW50KS5jb25maXJtQ2xpY2tlZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5ncm91cC5jb250cm9sc1t0aGlzLmZpZWxkXS5zZXRWYWx1ZSh1bmRlZmluZWQpO1xuICAgICAgdGhpcy5vbkltYWdlUmVtb3ZlLmVtaXQodGhpcy5pbWFnZSk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwiZ3JvdXBcIj5cbiAgICA8ZGl2ICpuZ0lmPVwiIWltYWdlQmxvYlVybFwiPlxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1maWxlXCI+XG4gICAgICAgICAgICAgICAgICAgIEJyb3dzZSZoZWxsaXA7XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiZmlsZVwiIHN0eWxlPVwiZGlzcGxheTogbm9uZTtcIiAoY2hhbmdlKT1cImZpbGVDaGFuZ2UoJGV2ZW50KVwiIFxuICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCJjb21wb25lbnRJZCsnX0Jyb3dzZUJ0bidcIiBbbmFtZV09XCJjb21wb25lbnRJZCsnX0Jyb3dzZUJ0bidcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYWNjZXB0XT1cImFjY2VwdCA/IGFjY2VwdCA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJncm91cC5jb250cm9sc1tmaWVsZF0uc3RhdHVzID09PSAnRElTQUJMRUQnXCI+XG4gICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPHNwYW4+Jm5ic3A7Q2xpY2sgdGhlIGJ1dHRvbiBvbiB0aGUgbGVmdCB0byB1cGxvYWQgYW4gaW1hZ2UgZnJvbSB5b3VyIGNvbXB1dGVyLjwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiaW1hZ2VCbG9iVXJsXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tMTJcIj5cbiAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwiaW1hZ2VCbG9iVXJsXCIgW2lkXT1cImNvbXBvbmVudElkKydfSW1hZ2UnXCIgd2lkdGg9XCIyMDBcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hbHRdPVwiaW1hZ2UgJiYgaW1hZ2UudXNlckZpbGVuYW1lID8gaW1hZ2UudXNlckZpbGVuYW1lIDogJ1VwbG9hZGVkIGltYWdlIHByZXZpZXcnXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJpbWFnZSAmJiBpbWFnZS51c2VyRmlsZW5hbWUgPyBpbWFnZS51c2VyRmlsZW5hbWUgOiAnVXBsb2FkZWQgaW1hZ2UgcHJldmlldydcIj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGJyLz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tMTJcIj5cbiAgICAgICAgICAgICAgICA8c3Bhbj57e2ltYWdlLnVzZXJGaWxlbmFtZX19PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTEyXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiBbaWRdPVwiY29tcG9uZW50SWQrJ19SZW1vdmVJbWFnZUJ0bidcIiBbbmFtZV09XCJjb21wb25lbnRJZCsnX1JlbW92ZUltYWdlQnRuJ1wiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVJbWFnZSgpXCIgW2Rpc2FibGVkXT1cImdyb3VwLmNvbnRyb2xzW2ZpZWxkXS5zdGF0dXMgPT09ICdESVNBQkxFRCdcIiBhcmlhLWxhYmVsPVwiUmVtb3ZlIEltYWdlXCI+XG4gICAgICAgICAgICAgICAgICAgIFJlbW92ZSBJbWFnZVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJlcnJvck1lc3NhZ2VcIiBjbGFzcz1cImFsZXJ0IGFsZXJ0LWRhbmdlclwiIHJvbGU9XCJhbGVydFwiPnt7ZXJyb3JNZXNzYWdlfX08L2Rpdj5cbjwvZm9ybT4iXX0=
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHlueC1pbWFnZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb2VwYS11aS1saWIvc3JjL2xpYi9seW54LWltYWdlLXVwbG9hZC9seW54LWltYWdlLXVwbG9hZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2x5bngtaW1hZ2UtdXBsb2FkL2x5bngtaW1hZ2UtdXBsb2FkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFNL0UsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7Ozs7OztBQVFoRyxNQUFNLE9BQU8sd0JBQXdCO0lBb0JmO0lBQ1Y7SUFDQTtJQXJCVixXQUFXLEdBQUcsMEJBQTBCLENBQUM7SUFDekMsWUFBWSxHQUFZLEtBQUssQ0FBQztJQUM5QixZQUFZLEdBQVcsRUFBRSxDQUFDO0lBRWpCLEtBQUssQ0FBYTtJQUNsQixLQUFLLEdBQVcsRUFBRSxDQUFDO0lBQUEsQ0FBQztJQUNwQixTQUFTLEdBQVcsRUFBRSxDQUFDO0lBQUEsQ0FBQztJQUN4QixLQUFLLEdBQVcsaUJBQWlCLENBQUM7SUFDbEMsVUFBVSxHQUFXLFVBQVUsQ0FBQztJQUNoQyxLQUFLLEdBQW1CLEVBQUUsQ0FBQztJQUMzQixjQUFjLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLFFBQVEsR0FBRyxJQUFJLENBQUM7SUFDaEIsTUFBTSxHQUFXLEVBQUUsQ0FBQztJQUFBLENBQUM7SUFDckIsWUFBWSxHQUFnQyxJQUFJLENBQUM7SUFFaEQsYUFBYSxHQUFpQyxJQUFJLFlBQVksRUFBa0IsQ0FBQztJQUNqRixhQUFhLEdBQWlDLElBQUksWUFBWSxFQUFrQixDQUFDO0lBQ2pG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VSxHQUFHLGNBQWMsQ0FBQztRQUMzQyxLQUFLLENBQUMsT0FBUSxDQUFDLFFBQVEsR0FBRyxtQ0FBbUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksR0FBRyxHQUFHLENBQUM7UUFDOUYsS0FBSyxDQUFDLE9BQVEsQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ3ZDLEtBQUssQ0FBQyxPQUFRLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztRQUNyQyxLQUFLLENBQUMsT0FBUSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3hFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDcEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt3R0FwR1Usd0JBQXdCOzRGQUF4Qix3QkFBd0IscVpDZHJDLDJwREErQk87OzRGRGpCTSx3QkFBd0I7a0JBTHBDLFNBQVM7K0JBQ0Usd0JBQXdCOzBKQVN6QixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFFSSxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEJzTW9kYWxTZXJ2aWNlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9tb2RhbCc7XG5pbXBvcnQgeyBCc01vZGFsUmVmIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9tb2RhbCc7XG5pbXBvcnQgeyBPZXBhQ29tcG9uZW50SWRTZXJ2aWNlIH0gZnJvbSAnQG9oaW9lcGEvb2VwYS1jb21tb24tbGliJztcbmltcG9ydCB7IEx5bnhBdHRhY2htZW50IH0gZnJvbSAnQG9oaW9lcGEvb2VwYS1lYml6LWxpYic7XG5pbXBvcnQgeyBDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudCB9IGZyb20gJy4uL2NvbmZpcm1hdGlvbi1tb2RhbC9jb25maXJtYXRpb24tbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IE9lcGFGaWxlVXRpbFNlcnZpY2UgfSBmcm9tICdAb2hpb2VwYS9vZXBhLWNvbW1vbi1saWInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvZXBhLWx5bngtaW1hZ2UtdXBsb2FkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2x5bngtaW1hZ2UtdXBsb2FkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbHlueC1pbWFnZS11cGxvYWQuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIEx5bnhJbWFnZVVwbG9hZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7ICBcbiAgY29tcG9uZW50SWQgPSAnTHlueEltYWdlVXBsb2FkQ29tcG9uZW50JztcbiAgZm9ybURpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gIGVycm9yTWVzc2FnZTogc3RyaW5nID0gJyc7XG4gIFxuICBASW5wdXQoKSBncm91cCE6IEZvcm1Hcm91cDtcbiAgQElucHV0KCkgZmllbGQ6IHN0cmluZyA9ICcnOztcbiAgQElucHV0KCkgcHJvamVjdElEOiBzdHJpbmcgPSAnJzs7XG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgPSAnVXBsb2FkIGFuIGltYWdlJztcbiAgQElucHV0KCkgZXJyb3JMYWJlbDogc3RyaW5nID0gJ0FuIGltYWdlJztcbiAgQElucHV0KCkgaW1hZ2U6IEx5bnhBdHRhY2htZW50ID0ge307XG4gIEBJbnB1dCgpIHNob3dWYWxpZGF0aW9uID0gZmFsc2U7XG4gIEBJbnB1dCgpIHJlcXVpcmVkID0gdHJ1ZTtcbiAgQElucHV0KCkgYWNjZXB0OiBzdHJpbmcgPSAnJzs7XG4gIEBJbnB1dCgpIGltYWdlQmxvYlVybDogc3RyaW5nIHwgQXJyYXlCdWZmZXIgfCBudWxsID0gbnVsbDtcblxuICBAT3V0cHV0KCkgb25JbWFnZVVwbG9hZDogRXZlbnRFbWl0dGVyPEx5bnhBdHRhY2htZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8THlueEF0dGFjaG1lbnQ+KCk7XG4gIEBPdXRwdXQoKSBvbkltYWdlUmVtb3ZlOiBFdmVudEVtaXR0ZXI8THlueEF0dGFjaG1lbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxMeW54QXR0YWNobWVudD4oKTtcbiAgQE91dHB1dCgpIG9uSW1hZ2VEb3dubG9hZDogRXZlbnRFbWl0dGVyPEx5bnhBdHRhY2htZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8THlueEF0dGFjaG1lbnQ+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpZFNlcnZpY2U6IE9lcGFDb21wb25lbnRJZFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IEJzTW9kYWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgZmlsZVV0aWw6IE9lcGFGaWxlVXRpbFNlcnZpY2UpIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLmdyb3VwKSB7XG4gICAgICB0aGlzLmNvbXBvbmVudElkID0gdGhpcy5pZFNlcnZpY2UuZ2V0Q29tcG9uZW50SWQodGhpcy5ncm91cCk7XG4gICAgICB0aGlzLmNvbXBvbmVudElkICs9ICh0aGlzLmNvbXBvbmVudElkLmxlbmd0aCA+IDAgPyAnXycgOiAnJykgKyB0aGlzLmZpZWxkO1xuICAgIH1cbiAgICBpZiAodGhpcy5pbWFnZSAmJiB0aGlzLmltYWdlLmlkKSB7XG4gICAgICB0aGlzLmRvd25sb2FkSW1hZ2UodGhpcy5pbWFnZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGZpbGVDaGFuZ2UoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJyc7XG4gICAgY29uc3QgZmlsZUxpc3Q6IEZpbGVMaXN0ID0gZXZlbnQudGFyZ2V0LmZpbGVzO1xuICAgIGlmIChmaWxlTGlzdC5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBmaWxlOiBGaWxlID0gZmlsZUxpc3RbMF07XG4gICAgICBpZiAodGhpcy5maWxlVHlwZUNhbkJlQWNjZXB0ZWQoZmlsZSkpIHtcbiAgICAgICAgdGhpcy5maWxlVXRpbC51cGxvYWRGaWxlKGZpbGUpLnN1YnNjcmliZSgoYXR0YWNobWVudDogTHlueEF0dGFjaG1lbnQpID0+IHtcbiAgICAgICAgICB0aGlzLmdyb3VwLmNvbnRyb2xzW3RoaXMuZmllbGRdLnNldFZhbHVlKGF0dGFjaG1lbnQudXNlckZpbGVuYW1lKTtcbiAgICAgICAgICB0aGlzLm9uSW1hZ2VVcGxvYWQuZW1pdChhdHRhY2htZW50KTtcbiAgICAgICAgfSwgZXJyID0+IHtcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdFcnJvciB1cGxvYWRpbmcgZmlsZSAnICsgZXJyIHx8ICcnO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ0Nhbm5vdCBhY2NlcHQgdGhpcyB0eXBlIG9mIGZpbGUuIFBsZWFzZSB1cGxvYWQgYSBmaWxlIG9mIHR5cGU6ICcgKyB0aGlzLmFjY2VwdDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgXG4gIHByaXZhdGUgZmlsZVR5cGVDYW5CZUFjY2VwdGVkKGZpbGU6YW55KTogYm9vbGVhbiB7XG4gICAgbGV0IG9rID0gdHJ1ZTtcbiAgICBpZiAodGhpcy5hY2NlcHQpIHtcbiAgICAgIGNvbnN0IG1pbWVUeXBlID0gdGhpcy5maWxlVXRpbC5taW1lVHlwZUZvckZpbGUoZmlsZS5uYW1lKTtcbiAgICAgIGlmICh0aGlzLmFjY2VwdC5pbmRleE9mKG1pbWVUeXBlKSA8IDApIHtcbiAgICAgICAgb2sgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG9rO1xuICB9XG4gIFxuICBkb3dubG9hZEltYWdlKGltYWdlOiBMeW54QXR0YWNobWVudCkge1xuICAgIGlmICghaW1hZ2Uuc3lzdGVtRmlsZW5hbWUgfHwgaW1hZ2Uuc3lzdGVtRmlsZW5hbWUubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLm9uSW1hZ2VEb3dubG9hZC5lbWl0KGltYWdlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5maWxlVXRpbC5kb3dubG9hZEF0dGFjaG1lbnQoaW1hZ2UpLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IGRvYyA9PiB7XG4gICAgICAgICAgY29uc3QgbWltZVR5cGUgPSB0aGlzLmZpbGVVdGlsLm1pbWVUeXBlRm9yRmlsZShpbWFnZS51c2VyRmlsZW5hbWUgfHwgJycpO1xuICAgICAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbZG9jXSwgeyB0eXBlOiBtaW1lVHlwZSB9KTtcbiAgICAgICAgICB0aGlzLmNyZWF0ZUltYWdlRnJvbUJsb2IoYmxvYik7XG4gICAgICAgIH0sIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ0Vycm9yIGRvd25sb2FkaW5nIGZpbGU6ICcgKyBpbWFnZS51c2VyRmlsZW5hbWUgKyAnOiAnICsgZXJyO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgfVxuICB9XG5cbiAgY3JlYXRlSW1hZ2VGcm9tQmxvYihpbWFnZTogQmxvYikge1xuICAgIGxldCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgIHJlYWRlci5hZGRFdmVudExpc3RlbmVyKFwibG9hZFwiLCAoKSA9PiB7XG4gICAgICB0aGlzLmltYWdlQmxvYlVybCA9IHJlYWRlci5yZXN1bHQ7XG4gICAgfSwgZmFsc2UpO1xuICAgIGlmIChpbWFnZSkge1xuICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoaW1hZ2UpO1xuICAgIH1cbiAgfVxuXG4gIHJlbW92ZUltYWdlKCkgeyAgICBcbiAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICcnO1xuICAgIGNvbnN0IG1vZGFsOiBCc01vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uuc2hvdyhDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudCwgeyBpZ25vcmVCYWNrZHJvcENsaWNrOiB0cnVlIH0pO1xuICAgICg8Q29uZmlybWF0aW9uTW9kYWxDb21wb25lbnQ+bW9kYWwuY29udGVudCkuaGVhZGVyVGV4dCA9ICdSZW1vdmUgSW1hZ2UnO1xuICAgICg8Q29uZmlybWF0aW9uTW9kYWxDb21wb25lbnQ+bW9kYWwuY29udGVudCkuYm9keVRleHQgPSAnRG8geW91IHdhbnQgdG8gcmVtb3ZlIHRoZSBpbWFnZTogJyArIHRoaXMuaW1hZ2UudXNlckZpbGVuYW1lICsgJz8nO1xuICAgICg8Q29uZmlybWF0aW9uTW9kYWxDb21wb25lbnQ+bW9kYWwuY29udGVudCkuY29uZmlybUJ0bkxhYmVsID0gJ1llcyc7XG4gICAgKDxDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudD5tb2RhbC5jb250ZW50KS5jYW5jZWxCdG5MYWJlbCA9ICdObyc7XG4gICAgKDxDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudD5tb2RhbC5jb250ZW50KS5jb25maXJtQ2xpY2tlZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5ncm91cC5jb250cm9sc1t0aGlzLmZpZWxkXS5zZXRWYWx1ZSh1bmRlZmluZWQpO1xuICAgICAgdGhpcy5vbkltYWdlUmVtb3ZlLmVtaXQodGhpcy5pbWFnZSk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwiZ3JvdXBcIj5cbiAgICA8ZGl2ICpuZ0lmPVwiIWltYWdlQmxvYlVybFwiPlxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1maWxlXCI+XG4gICAgICAgICAgICAgICAgICAgIEJyb3dzZSZoZWxsaXA7XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiZmlsZVwiIHN0eWxlPVwiZGlzcGxheTogbm9uZTtcIiAoY2hhbmdlKT1cImZpbGVDaGFuZ2UoJGV2ZW50KVwiIFxuICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCJjb21wb25lbnRJZCsnX0Jyb3dzZUJ0bidcIiBbbmFtZV09XCJjb21wb25lbnRJZCsnX0Jyb3dzZUJ0bidcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYWNjZXB0XT1cImFjY2VwdCA/IGFjY2VwdCA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJncm91cC5jb250cm9sc1tmaWVsZF0uc3RhdHVzID09PSAnRElTQUJMRUQnXCI+XG4gICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPHNwYW4+Jm5ic3A7Q2xpY2sgdGhlIGJ1dHRvbiBvbiB0aGUgbGVmdCB0byB1cGxvYWQgYW4gaW1hZ2UgZnJvbSB5b3VyIGNvbXB1dGVyLjwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiaW1hZ2VCbG9iVXJsXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tMTJcIj5cbiAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwiaW1hZ2VCbG9iVXJsXCIgW2lkXT1cImNvbXBvbmVudElkKydfSW1hZ2UnXCIgd2lkdGg9XCIyMDBcIlxuICAgICAgICAgICAgICAgICAgICBhbHQ9XCJcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImltYWdlICYmIGltYWdlLnVzZXJGaWxlbmFtZSA/IGltYWdlLnVzZXJGaWxlbmFtZSA6ICdVcGxvYWRlZCBpbWFnZSBwcmV2aWV3J1wiPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8YnIvPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS0xMlwiPlxuICAgICAgICAgICAgICAgIDxzcGFuPnt7aW1hZ2UudXNlckZpbGVuYW1lfX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tMTJcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiIFtpZF09XCJjb21wb25lbnRJZCsnX1JlbW92ZUltYWdlQnRuJ1wiIFtuYW1lXT1cImNvbXBvbmVudElkKydfUmVtb3ZlSW1hZ2VCdG4nXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZUltYWdlKClcIiBbZGlzYWJsZWRdPVwiZ3JvdXAuY29udHJvbHNbZmllbGRdLnN0YXR1cyA9PT0gJ0RJU0FCTEVEJ1wiIGFyaWEtbGFiZWw9XCJSZW1vdmUgSW1hZ2VcIj5cbiAgICAgICAgICAgICAgICAgICAgUmVtb3ZlIEltYWdlXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cImVycm9yTWVzc2FnZVwiIGNsYXNzPVwiYWxlcnQgYWxlcnQtZGFuZ2VyXCIgcm9sZT1cImFsZXJ0XCI+e3tlcnJvck1lc3NhZ2V9fTwvZGl2PlxuPC9mb3JtPiJdfQ==
@@ -182,10 +182,10 @@ export class ShoppingCartViewComponent {
182
182
  }
183
183
  }
184
184
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ShoppingCartViewComponent, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }, { token: i2.BsModalService }, { token: i3.ShoppingCartService }], target: i0.ɵɵFactoryTarget.Component });
185
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ShoppingCartViewComponent, selector: "oepa-shopping-cart-view", ngImport: i0, template: "<div class=\"container-fluid\">\n <div class=\"row\">\n <div class=\" col-sm-12\">\n <h2><b>{{title}}</b></h2>\n </div>\n <div *ngIf=\"loading || empty\" class=\"col-sm-12 text-center\">\n <div class=\" alert alert-info \">\n <h3><em>{{ loading ? 'Loading...' : 'Cart is empty' }}</em></h3>\n <img *ngIf=\"loading\" class=\"oepa-icon\" src=\"{{imageRoot}}/blue-load.gif\" />\n </div>\n </div>\n <div *ngIf=\"!loading && !empty\" class=\"col-sm-12\">\n <oepa-table [config]=\"tblConfig\" [data]=\"tblData\" [header]=\"tblHeader\" tableId=\"ShoppingCartTable\" (cellClicked)=\"onCellClick($event)\"></oepa-table>\n </div>\n <div *ngIf=\"errorMessage\" class=\"col-sm-12\">\n <div class=\"alert alert-danger\">{{errorMessage}}</div>\n </div>\n <div *ngIf=\"!checkOutInProgress\" class=\"col-12 text-center\">\n <button class=\"btn btn-primary mr-2\" id=\"returnToPageButton\" (click)=\"goBack()\" [attr.aria-label]=\"returnLabel\">\n {{returnLabel}}</button>\n <button *ngIf=\"!empty\" class=\"btn btn-primary mr-2\" id=\"checkoutBtn\" (click)=\"onCheckout()\" aria-label=\"Checkout\">\n Checkout</button>\n </div>\n <div *ngIf=\"checkOutInProgress\" class=\"col-12 text-center\">\n <div class=\"alert alert-info\">\n <span class=\"spinner-border text-primary\" role=\"status\"></span>\n Checking out...\n </div>\n </div>\n </div>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.TableComponent, selector: "oepa-table", inputs: ["tableId", "config", "complexHeader", "header", "customBtnLabel", "customBtnVisible", "customBtnEnabled", "data", "totalRow"], outputs: ["actionDropdownOpenChange", "cellClicked", "actionClicked", "rowSelected", "customBtnClicked"] }] });
185
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ShoppingCartViewComponent, selector: "oepa-shopping-cart-view", ngImport: i0, template: "<div class=\"container-fluid\">\n <div class=\"row\">\n <div class=\" col-sm-12\">\n <h1><b>{{title}}</b></h1>\n </div>\n <div *ngIf=\"loading || empty\" class=\"col-sm-12 text-center\">\n <div class=\" alert alert-info \">\n <span class=\"\"><em>{{ loading ? 'Loading...' : 'Cart is empty' }}</em></span>\n <img *ngIf=\"loading\" class=\"oepa-icon\" alt=\"Loading\" src=\"{{imageRoot}}/blue-load.gif\" />\n </div>\n </div>\n <div *ngIf=\"!loading && !empty\" class=\"col-sm-12\">\n <oepa-table [config]=\"tblConfig\" [data]=\"tblData\" [header]=\"tblHeader\" tableId=\"ShoppingCartTable\" (cellClicked)=\"onCellClick($event)\"></oepa-table>\n </div>\n <div *ngIf=\"errorMessage\" class=\"col-sm-12\">\n <div class=\"alert alert-danger\">{{errorMessage}}</div>\n </div>\n <div *ngIf=\"!checkOutInProgress\" class=\"col-12 text-center\">\n <button class=\"btn btn-primary mr-2\" id=\"returnToPageButton\" (click)=\"goBack()\" [attr.aria-label]=\"returnLabel\">\n {{returnLabel}}</button>\n <button *ngIf=\"!empty\" class=\"btn btn-primary mr-2\" id=\"checkoutBtn\" (click)=\"onCheckout()\" aria-label=\"Checkout\">\n Checkout</button>\n </div>\n <div *ngIf=\"checkOutInProgress\" class=\"col-12 text-center\">\n <div class=\"alert alert-info\">\n <span class=\"spinner-border text-primary\" role=\"status\"></span>\n Checking out...\n </div>\n </div>\n </div>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.TableComponent, selector: "oepa-table", inputs: ["tableId", "config", "complexHeader", "header", "customBtnLabel", "customBtnVisible", "customBtnEnabled", "data", "totalRow"], outputs: ["actionDropdownOpenChange", "cellClicked", "actionClicked", "rowSelected", "customBtnClicked"] }] });
186
186
  }
187
187
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ShoppingCartViewComponent, decorators: [{
188
188
  type: Component,
189
- args: [{ selector: 'oepa-shopping-cart-view', template: "<div class=\"container-fluid\">\n <div class=\"row\">\n <div class=\" col-sm-12\">\n <h2><b>{{title}}</b></h2>\n </div>\n <div *ngIf=\"loading || empty\" class=\"col-sm-12 text-center\">\n <div class=\" alert alert-info \">\n <h3><em>{{ loading ? 'Loading...' : 'Cart is empty' }}</em></h3>\n <img *ngIf=\"loading\" class=\"oepa-icon\" src=\"{{imageRoot}}/blue-load.gif\" />\n </div>\n </div>\n <div *ngIf=\"!loading && !empty\" class=\"col-sm-12\">\n <oepa-table [config]=\"tblConfig\" [data]=\"tblData\" [header]=\"tblHeader\" tableId=\"ShoppingCartTable\" (cellClicked)=\"onCellClick($event)\"></oepa-table>\n </div>\n <div *ngIf=\"errorMessage\" class=\"col-sm-12\">\n <div class=\"alert alert-danger\">{{errorMessage}}</div>\n </div>\n <div *ngIf=\"!checkOutInProgress\" class=\"col-12 text-center\">\n <button class=\"btn btn-primary mr-2\" id=\"returnToPageButton\" (click)=\"goBack()\" [attr.aria-label]=\"returnLabel\">\n {{returnLabel}}</button>\n <button *ngIf=\"!empty\" class=\"btn btn-primary mr-2\" id=\"checkoutBtn\" (click)=\"onCheckout()\" aria-label=\"Checkout\">\n Checkout</button>\n </div>\n <div *ngIf=\"checkOutInProgress\" class=\"col-12 text-center\">\n <div class=\"alert alert-info\">\n <span class=\"spinner-border text-primary\" role=\"status\"></span>\n Checking out...\n </div>\n </div>\n </div>\n</div>" }]
189
+ args: [{ selector: 'oepa-shopping-cart-view', template: "<div class=\"container-fluid\">\n <div class=\"row\">\n <div class=\" col-sm-12\">\n <h1><b>{{title}}</b></h1>\n </div>\n <div *ngIf=\"loading || empty\" class=\"col-sm-12 text-center\">\n <div class=\" alert alert-info \">\n <span class=\"\"><em>{{ loading ? 'Loading...' : 'Cart is empty' }}</em></span>\n <img *ngIf=\"loading\" class=\"oepa-icon\" alt=\"Loading\" src=\"{{imageRoot}}/blue-load.gif\" />\n </div>\n </div>\n <div *ngIf=\"!loading && !empty\" class=\"col-sm-12\">\n <oepa-table [config]=\"tblConfig\" [data]=\"tblData\" [header]=\"tblHeader\" tableId=\"ShoppingCartTable\" (cellClicked)=\"onCellClick($event)\"></oepa-table>\n </div>\n <div *ngIf=\"errorMessage\" class=\"col-sm-12\">\n <div class=\"alert alert-danger\">{{errorMessage}}</div>\n </div>\n <div *ngIf=\"!checkOutInProgress\" class=\"col-12 text-center\">\n <button class=\"btn btn-primary mr-2\" id=\"returnToPageButton\" (click)=\"goBack()\" [attr.aria-label]=\"returnLabel\">\n {{returnLabel}}</button>\n <button *ngIf=\"!empty\" class=\"btn btn-primary mr-2\" id=\"checkoutBtn\" (click)=\"onCheckout()\" aria-label=\"Checkout\">\n Checkout</button>\n </div>\n <div *ngIf=\"checkOutInProgress\" class=\"col-12 text-center\">\n <div class=\"alert alert-info\">\n <span class=\"spinner-border text-primary\" role=\"status\"></span>\n Checking out...\n </div>\n </div>\n </div>\n</div>" }]
190
190
  }], ctorParameters: () => [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: i2.BsModalService }, { type: i3.ShoppingCartService }] });
191
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvcHBpbmctY2FydC12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29lcGEtdWktbGliL3NyYy9saWIvc2hvcHBpbmctY2FydC9zaG9wcGluZy1jYXJ0LXZpZXcvc2hvcHBpbmctY2FydC12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29lcGEtdWktbGliL3NyYy9saWIvc2hvcHBpbmctY2FydC9zaG9wcGluZy1jYXJ0LXZpZXcvc2hvcHBpbmctY2FydC12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFLbEQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sdURBQXVELENBQUM7Ozs7Ozs7QUFZbkcsTUFBTSxPQUFPLHlCQUF5QjtJQStCaEI7SUFDVjtJQUNBO0lBQ0E7SUFqQ1YsV0FBVyxDQUFTO0lBQ3BCLEtBQUssQ0FBUztJQUNkLFdBQVcsQ0FBUztJQUNwQixTQUFTLENBQVM7SUFDbEIsWUFBWSxDQUEyQjtJQUN2QyxLQUFLLEdBQUcsSUFBSSxDQUFDO0lBQ2IsT0FBTyxHQUFHLElBQUksQ0FBQztJQUNmLFlBQVksR0FBVyxFQUFFLENBQUM7SUFDMUIsU0FBUyxHQUFHLDhCQUE4QixDQUFDO0lBQzNDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztJQUMzQixXQUFXLEdBQVcsaUJBQWlCLENBQUM7SUFDeEMsZUFBZSxDQUFTO0lBQ3hCLHVCQUF1QixDQUFTO0lBQ2hDLGFBQWEsQ0FBUztJQUN0QixvQkFBb0IsR0FBVyxFQUFFLENBQUM7SUFFbEMsU0FBUyxHQUFvQjtRQUMzQixPQUFPLEVBQUU7WUFDUCxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFB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SSxDQUFDLFlBQVksR0FBRyxtQkFBbUIsR0FBRyxHQUFHLENBQUM7Z0JBQ2hELENBQUM7YUFBQyxDQUFDLENBQUM7UUFDTixDQUFDO0lBQ0gsQ0FBQzt3R0FyTFUseUJBQXlCOzRGQUF6Qix5QkFBeUIsK0RDakJ0QyxzOUNBOEJNOzs0RkRiTyx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0UseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciwgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgU2hvcHBpbmdDYXJ0U2VydmljZSB9IGZyb20gJy4uL3Nob3BwaW5nLWNhcnQuc2VydmljZSc7XG5pbXBvcnQgeyBTaG9wcGluZ0NhcnRJdGVtLCBTaG9wcGluZ0NhcnQgfSBmcm9tICdAb2hpb2VwYS9vZXBhLWViaXotbGliJztcbmltcG9ydCB7IEJzTW9kYWxSZWYsIEJzTW9kYWxTZXJ2aWNlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9tb2RhbCc7XG5pbXBvcnQgeyBDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbmZpcm1hdGlvbi1tb2RhbC9jb25maXJtYXRpb24tbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IFNob3BwaW5nQ2FydFZpZXdQYXJhbWV0ZXJzIH0gZnJvbSAnLi9zaG9wcGluZy1jYXJ0LXZpZXctcGFyYW1ldGVycyc7XG5pbXBvcnQgeyBPZXBhVGFibGVIZWFkZXIgfSBmcm9tICcuLi8uLi90YWJsZS9vZXBhLXRhYmxlLWhlYWRlcic7XG5pbXBvcnQgeyBPZXBhVGFibGVDZWxsQ2xpY2tFdmVudCB9IGZyb20gJy4uLy4uL3RhYmxlL29lcGEtdGFibGUtY2VsbC1jbGljay1ldmVudCc7XG5pbXBvcnQgeyBPZXBhVGFibGVDb25maWcgfSBmcm9tICcuLi8uLi90YWJsZS9vZXBhLXRhYmxlLWNvbmZpZyc7XG5pbXBvcnQgeyBPZXBhVGFibGVSb3cgfSBmcm9tICcuLi8uLi90YWJsZS9vZXBhLXRhYmxlLXJvdyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29lcGEtc2hvcHBpbmctY2FydC12aWV3JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Nob3BwaW5nLWNhcnQtdmlldy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Nob3BwaW5nLWNhcnQtdmlldy5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU2hvcHBpbmdDYXJ0Vmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHNlcnZpY2VOYW1lOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHJldHVybkxhYmVsOiBzdHJpbmc7XG4gIHJldHVyblVybDogc3RyaW5nO1xuICBzaG9wcGluZ0NhcnQ6IFNob3BwaW5nQ2FydCB8IHVuZGVmaW5lZDtcbiAgZW1wdHkgPSB0cnVlO1xuICBsb2FkaW5nID0gdHJ1ZTtcbiAgZXJyb3JNZXNzYWdlOiBzdHJpbmcgPSAnJztcbiAgaW1hZ2VSb290ID0gJy9Bbmd1bGFyV2ViQXBwL2Fzc2V0cy9pbWFnZXMnO1xuICBjaGVja091dEluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgdG90YWxDb2x1bW46IHN0cmluZyA9ICdpdGVtRGVzY3JpcHRpb24nO1xuICBpdGVtTnVtYmVyTGFiZWw6IHN0cmluZztcbiAgaXRlbUNsYXNzaWZpY2F0aW9uTGFiZWw6IHN0cmluZztcbiAgaXRlbU5hbWVMYWJlbDogc3RyaW5nO1xuICBpdGVtRGVzY3JpcHRpb25MYWJlbDogc3RyaW5nID0gJyc7XG5cbiAgdGJsSGVhZGVyOiBPZXBhVGFibGVIZWFkZXIgPSB7XG4gICAgY29sdW1uczogW1xuICAgICAgeyB0aXRsZTogJ1JlbW92ZSBJdGVtJywgaWQ6ICdkZWxldGVJdGVtJywgc29ydDogJ25vbmUnLCBoeXBlcmxpbms6IHRydWUsIGNsYXNzTmFtZTogJ29lcGEtdGFibGUtaGVhZGVyLWNlbnRlcicgfSxcbiAgICAgIHsgdGl0bGU6ICdGZWUnLCBpZDogJ2ZlZScsIHNvcnQ6ICdub25lJyB9LFxuICAgIF1cbiAgfTtcblxuICB0YmxDb25maWc6IE9lcGFUYWJsZUNvbmZpZyA9IHtcbiAgICBjbGFzc05hbWVzOiBbJ3RhYmxlLWJvcmRlcmVkJ10sXG4gICAgaGlkZUZvb3RlcjogdHJ1ZVxuICB9O1xuXG4gIHRibERhdGE6IEFycmF5PE9lcGFUYWJsZVJvdz4gPSBbXTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBCc01vZGFsU2VydmljZSwgXG4gICAgcHJpdmF0ZSBzaG9wcGluZ0NhcnRTZXJ2aWNlOiBTaG9wcGluZ0NhcnRTZXJ2aWNlKSB7XG4gICAgICBjb25zdCBwYXJhbXM6IFNob3BwaW5nQ2FydFZpZXdQYXJhbWV0ZXJzID0gPFNob3BwaW5nQ2FydFZpZXdQYXJhbWV0ZXJzPnJvdXRlLnNuYXBzaG90LmRhdGFbMF07XG4gICAgICB0aGlzLnNlcnZpY2VOYW1lID0gcGFyYW1zLnNlcnZpY2VOYW1lO1xuICAgICAgdGhpcy50aXRsZSA9IHBhcmFtcy50aXRsZTtcbiAgICAgIHRoaXMucmV0dXJuTGFiZWwgPSBwYXJhbXMucmV0dXJuTGFiZWw7XG4gICAgICB0aGlzLnJldHVyblVybCA9IHBhcmFtcy5yZXR1cm5Vcmw7XG4gICAgICB0aGlzLml0ZW1OdW1iZXJMYWJlbCA9IHBhcmFtcy5pdGVtTnVtYmVyTGFiZWw7XG4gICAgICB0aGlzLml0ZW1DbGFzc2lmaWNhdGlvbkxhYmVsID0gcGFyYW1zLml0ZW1DbGFzc2lmaWNhdGlvbkxhYmVsO1xuICAgICAgdGhpcy5pdGVtTmFtZUxhYmVsID0gcGFyYW1zLml0ZW1OYW1lTGFiZWw7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnVwZGF0ZUhlYWRlcnMoKTtcbiAgICB0aGlzLnJlZnJlc2goKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgaGVhZGVycyBiYXNlZCBvbiB0aGUgbGFiZWxzIGRlZmluZWQgZm9yIHRoaXMgc2hvcHBpbmcgY2FydFxuICAgKi9cbiAgcHJpdmF0ZSB1cGRhdGVIZWFkZXJzKCkge1xuICAgIC8vIHByb2Nlc3MgbGFiZWxzIGluIHJldmVyc2Ugb3JkZXIgc2luY2UgdW5zaGlmdCBwbGFjZXMgaXRlbSBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBhcnJheVxuICAgIGlmICh0aGlzLml0ZW1EZXNjcmlwdGlvbkxhYmVsKSB7XG4gICAgICB0aGlzLnRibEhlYWRlci5jb2x1bW5zLnVuc2hpZnQoeyB0aXRsZTogdGhpcy5pdGVtRGVzY3JpcHRpb25MYWJlbCwgaWQ6ICdpdGVtRGVzY3JpcHRpb24nLCBzb3J0OiAnbm9uZScgfSk7XG4gICAgICB0aGlzLnRvdGFsQ29sdW1uID0gJ2l0ZW1EZXNjcmlwdGlvbic7XG4gICAgfVxuICAgIGlmICh0aGlzLml0ZW1OYW1lTGFiZWwpIHtcbiAgICAgIHRoaXMudGJsSGVhZGVyLmNvbHVtbnMudW5zaGlmdCh7IHRpdGxlOiB0aGlzLml0ZW1OYW1lTGFiZWwsIGlkOiAnaXRlbU5hbWUnLCBzb3J0OiAnbm9uZScgfSk7XG4gICAgICB0aGlzLnRvdGFsQ29sdW1uID0gJ2l0ZW1OYW1lJztcbiAgICB9XG4gICAgaWYgKHRoaXMuaXRlbUNsYXNzaWZpY2F0aW9uTGFiZWwpIHtcbiAgICAgIHRoaXMudGJsSGVhZGVyLmNvbHVtbnMudW5zaGlmdCh7IHRpdGxlOiB0aGlzLml0ZW1DbGFzc2lmaWNhdGlvbkxhYmVsLCBpZDogJ2l0ZW1DbGFzc2lmaWNhdGlvbicsIHNvcnQ6ICdub25lJyB9KTtcbiAgICAgIHRoaXMudG90YWxDb2x1bW4gPSAnaXRlbUNsYXNzaWZpY2F0aW9uJztcbiAgICB9XG4gICAgaWYgKHRoaXMuaXRlbU51bWJlckxhYmVsKSB7XG4gICAgICB0aGlzLnRibEhlYWRlci5jb2x1bW5zLnVuc2hpZnQoeyB0aXRsZTogdGhpcy5pdGVtTnVtYmVyTGFiZWwsIGlkOiAnaXRlbU51bWJlcicsIHNvcnQ6ICdub25lJyB9KTtcbiAgICAgIHRoaXMudG90YWxDb2x1bW4gPSAnaXRlbU51bWJlcic7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZWZyZXNoKCkge1xuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnJztcbiAgICB0aGlzLnNob3BwaW5nQ2FydFNlcnZpY2UucmV0cmlldmVTaG9wcGluZ0NhcnQodGhpcy5zZXJ2aWNlTmFtZSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IHNob3BwaW5nQ2FydCA9PiB7XG4gICAgICB0aGlzLnNob3BwaW5nQ2FydCA9IHNob3BwaW5nQ2FydDtcbiAgICAgIHRoaXMubG9hZFRhYmxlKCk7XG4gICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICB9LCBlcnJvcjogZXJyID0+IHtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ0ZhaWxlZCByZXRyaWV2aW5nIHNob3BwaW5nIGNhcnQgZGF0YTogJyArIGVycjtcbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgIH19KTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZFRhYmxlKCkge1xuICAgIHRoaXMudGJsRGF0YSA9IFtdO1xuICAgIHRoaXMuZW1wdHkgPSB0cnVlO1xuICAgIGlmICh0aGlzLnNob3BwaW5nQ2FydCAmJiB0aGlzLnNob3BwaW5nQ2FydC5jYXJ0SXRlbXMpIHtcbiAgICAgIHRoaXMuc2hvcHBpbmdDYXJ0LmNhcnRJdGVtcy5mb3JFYWNoKGNhcnRJdGVtID0+IHtcbiAgICAgICAgdGhpcy5lbXB0eSA9IGZhbHNlO1xuICAgICAgICBsZXQgcm93ID0gdGhpcy5jb252ZXJ0Q2FydEl0ZW1Ub1RhYmxlUm93KGNhcnRJdGVtKTtcbiAgICAgICAgdGhpcy50YmxEYXRhLnB1c2gocm93KTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy50YmxEYXRhLnB1c2goeyBjZWxscyA6IFsgXG4gICAgICAgIHtpZDogJ2l0ZW1OdW1iZXInLCB2YWx1ZTogKHRoaXMudG90YWxDb2x1bW4gPT09ICdpdGVtTnVtYmVyJyA/ICdUb3RhbCBBbW91bnQgRHVlOicgOiAnJyksIGNsYXNzTmFtZTonb2VwYS10YWJsZS1ncmF5IG9lcGEtdGFibGUtYm9sZCcgfSxcbiAgICAgICAge2lkOiAnaXRlbUNsYXNzaWZpY2F0aW9uJywgdmFsdWU6ICh0aGlzLnRvdGFsQ29sdW1uID09PSAnaXRlbUNsYXNzaWZpY2F0aW9uJyA/ICdUb3RhbCBBbW91bnQgRHVlOicgOiAnJyksIGNsYXNzTmFtZTonb2VwYS10YWJsZS1ncmF5IG9lcGEtdGFibGUtYm9sZCcgfSxcbiAgICAgICAge2lkOiAnaXRlbU5hbWUnLCB2YWx1ZTogKHRoaXMudG90YWxDb2x1bW4gPT09ICdpdGVtTmFtZScgPyAnVG90YWwgQW1vdW50IER1ZTonIDogJycpLCBjbGFzc05hbWU6J29lcGEtdGFibGUtZ3JheSBvZXBhLXRhYmxlLWJvbGQnIH0sXG4gICAgICAgIHtpZDogJ2l0ZW1EZXNjcmlwdGlvbicsIHZhbHVlOiAodGhpcy50b3RhbENvbHVtbiA9PT0gJ2l0ZW1EZXNjcmlwdGlvbicgPyAnVG90YWwgQW1vdW50IER1ZTonIDogJycpLCBjbGFzc05hbWU6J29lcGEtdGFibGUtZ3JheSBvZXBhLXRhYmxlLWJvbGQnIH0sXG4gICAgICAgIHtpZDonZGVsZXRlSXRlbScsIHZhbHVlOicnLGNsYXNzTmFtZTonb2VwYS10YWJsZS1ncmF5JyB9LFxuICAgICAgICB7aWQ6ICdmZWUnLCAgdmFsdWU6IHRoaXMuc2hvcHBpbmdDYXJ0Py50b3RhbEFtb3VudD8uZm9ybWF0dGVkU3RyaW5nLCBzb3J0VmFsdWU6IHRoaXMuc2hvcHBpbmdDYXJ0Py50b3RhbEFtb3VudD8uY2VudHMsIGljb25DbGFzc05hbWU6J29lcGEtdW5kZWxpbmUtY2VsbCcsIGNsYXNzTmFtZTonb2VwYS10YWJsZS1ncmF5IG9lcGEtdGFibGUtYm9sZCd9XG4gICAgICBdfSk7XG4gICAgICB0aGlzLnRibERhdGEgPSB0aGlzLnRibERhdGEuc2xpY2UoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNvbnZlcnRDYXJ0SXRlbVRvVGFibGVSb3coY2FydEl0ZW06IFNob3BwaW5nQ2FydEl0ZW0pOiBPZXBhVGFibGVSb3cge1xuICAgIGxldCByb3c6IE9lcGFUYWJsZVJvdyA9IHtcbiAgICAgIGNlbGxzOiBbXG4gICAgICAgIHsgaWQ6ICdpdGVtTnVtYmVyJywgdmFsdWU6IGNhcnRJdGVtLml0ZW1OdW1iZXIgfSxcbiAgICAgICAgeyBpZDogJ2l0ZW1DbGFzc2lmaWNhdGlvbicsIHZhbHVlOiBjYXJ0SXRlbS5pdGVtQ2xhc3NpZmljYXRpb24gfSxcbiAgICAgICAgeyBpZDogJ2l0ZW1OYW1lJywgdmFsdWU6IGNhcnRJdGVtLml0ZW1OYW1lIH0sXG4gICAgICAgIHsgaWQ6ICdpdGVtRGVzY3JpcHRpb24nLCB2YWx1ZTogY2FydEl0ZW0uZGVzY3JpcHRpb24gfSxcbiAgICAgICAgeyBpZDogJ2RlbGV0ZUl0ZW0nLCB2YWx1ZTogJycsIGljb25DbGFzc05hbWU6ICdiaSBiaS1kYXNoLWNpcmNsZS1maWxsJywgY2xhc3NOYW1lOiAndGV4dC1jZW50ZXInIH0sXG4gICAgICAgIHsgaWQ6ICdmZWUnLCB2YWx1ZTogY2FydEl0ZW0udW5pdFByaWNlPy5mb3JtYXR0ZWRTdHJpbmcsIHNvcnRWYWx1ZTogY2FydEl0ZW0udW5pdFByaWNlPy5jZW50cyB9LFxuICAgICAgXSxcbiAgICAgIGRhdGFTb3VyY2U6IGNhcnRJdGVtXG4gICAgfVxuICAgIHJldHVybiByb3c7XG4gIH1cblxuICBvbkNlbGxDbGljayhldmVudDogT2VwYVRhYmxlQ2VsbENsaWNrRXZlbnQpIHtcbiAgICBpZiAoZXZlbnQuY29sdW1uSWQgPT09ICdkZWxldGVJdGVtJykge1xuICAgICAgdGhpcy5kZWxldGVGcm9tQ2FydChldmVudC5yb3cuZGF0YVNvdXJjZS50eXBlSUQsIGV2ZW50LnJvdy5kYXRhU291cmNlLmRlc2NyaXB0aW9uLCB0aGlzLnNob3BwaW5nQ2FydCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBkZWxldGVGcm9tQ2FydChpZDogc3RyaW5nLCBkZXNjcmlwdGlvbjogc3RyaW5nLCBjYXJ0OiBTaG9wcGluZ0NhcnQgfCB1bmRlZmluZWQpIHtcbiAgICBjb25zdCBtb2RhbDogQnNNb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLnNob3coQ29uZmlybWF0aW9uTW9kYWxDb21wb25lbnQsIHsgaWdub3JlQmFja2Ryb3BDbGljazogdHJ1ZSB9KTtcbiAgICAoPENvbmZpcm1hdGlvbk1vZGFsQ29tcG9uZW50Pm1vZGFsLmNvbnRlbnQpLmhlYWRlclRleHQgPSAnUmVtb3ZlIGl0ZW0gZnJvbSBjYXJ0Pyc7XG4gICAgKDxDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudD5tb2RhbC5jb250ZW50KS5ib2R5VGV4dCA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gcmVtb3ZlICcgKyBkZXNjcmlwdGlvbiArICAnIGZyb20gdGhlIHNob3BwaW5nIGNhcnQ/JztcbiAgICAoPENvbmZpcm1hdGlvbk1vZGFsQ29tcG9uZW50Pm1vZGFsLmNvbnRlbnQpLmNvbmZpcm1CdG5MYWJlbCA9ICdZZXMnO1xuICAgICg8Q29uZmlybWF0aW9uTW9kYWxDb21wb25lbnQ+bW9kYWwuY29udGVudCkuY2FuY2VsQnRuTGFiZWwgPSAnTm8nO1xuICAgICg8Q29uZmlybWF0aW9uTW9kYWxDb21wb25lbnQ+bW9kYWwuY29udGVudCkuY29uZmlybUNsaWNrZWQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuZGVsZXRlSXRlbUZyb21DYXJ0KGlkLCBjYXJ0KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZGVsZXRlSXRlbUZyb21DYXJ0KGlkOiBzdHJpbmcsIGNhcnQ6IFNob3BwaW5nQ2FydCB8IHVuZGVmaW5lZCkge1xuICAgIGlmIChjYXJ0KSB7XG4gICAgICB0aGlzLnNob3BwaW5nQ2FydFNlcnZpY2UucmVtb3ZlU2hvcHBpbmdDYXJ0SXRlbShpZCwgY2FydCkuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogdXBkYXRlZENhcnQgPT4ge1xuICAgICAgICB0aGlzLnNob3BwaW5nQ2FydCA9IHVwZGF0ZWRDYXJ0O1xuICAgICAgICB0aGlzLmxvYWRUYWJsZSgpO1xuICAgICAgfSwgZXJyb3I6IGVyciA9PiB7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ0ZhaWxlZCByZW1vdmluZyBpdGVtIGZyb20gY2FydDogJyArIGVycjtcbiAgICAgIH19KTtcbiAgICB9XG4gIH1cblxuICBnb0JhY2soKSB7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3RoaXMucmV0dXJuVXJsXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlLnBhcmVudCB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvbkNoZWNrb3V0KCkge1xuICAgIGNvbnN0IG1vZGFsOiBCc01vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uuc2hvdyhDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudCwgeyBpZ25vcmVCYWNrZHJvcENsaWNrOiB0cnVlIH0pO1xuICAgICg8Q29uZmlybWF0aW9uTW9kYWxDb21wb25lbnQ+bW9kYWwuY29udGVudCkuaGVhZGVyVGV4dCA9ICdDaGVja291dCc7XG4gICAgKDxDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudD5tb2RhbC5jb250ZW50KS5ib2R5VGV4dCA9ICdEbyB5b3Ugd2FudCB0byBzdWJtaXQgYWxsIG9mIHRoZSBhcHBsaWNhdGlvbnMgaW4gdGhlIHNob3BwaW5nIGNhcnQ/JztcbiAgICAoPENvbmZpcm1hdGlvbk1vZGFsQ29tcG9uZW50Pm1vZGFsLmNvbnRlbnQpLmNvbmZpcm1CdG5MYWJlbCA9ICdZZXMnO1xuICAgICg8Q29uZmlybWF0aW9uTW9kYWxDb21wb25lbnQ+bW9kYWwuY29udGVudCkuY2FuY2VsQnRuTGFiZWwgPSAnTm8nO1xuICAgICg8Q29uZmlybWF0aW9uTW9kYWxDb21wb25lbnQ+bW9kYWwuY29udGVudCkuY29uZmlybUNsaWNrZWQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuY2hlY2tvdXQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIGNoZWNrb3V0KCkge1xuICAgIGlmICh0aGlzLnNob3BwaW5nQ2FydCkge1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnJztcbiAgICAgIHRoaXMuY2hlY2tPdXRJblByb2dyZXNzID0gdHJ1ZTtcbiAgICAgIHRoaXMuc2hvcHBpbmdDYXJ0U2VydmljZS5jaGVja091dCh0aGlzLnNob3BwaW5nQ2FydCkuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogdHJhbnNhY3Rpb25JRCA9PiB7XG4gICAgICAgIC8vIG5hdmlnYXRlIHRvIENCT1NTIHBheW1lbnQgc2NyZWVuXG4gICAgICAgIGNvbnN0IGViaXpSb290VVJMID0gdGhpcy5zaG9wcGluZ0NhcnRTZXJ2aWNlLmdldEViaXpSb290VVJMKCk7XG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gZWJpelJvb3RVUkwgKyAnL3BvcnRhbC9wYXltZW50U3VibWlzc2lvbkFjdGlvbi5wbz90cmFuc2FjdGlvbklEPScgKyB0cmFuc2FjdGlvbklEO1xuICAgICAgfSwgZXJyb3I6IGVyciA9PiB7XG4gICAgICAgIHRoaXMuY2hlY2tPdXRJblByb2dyZXNzID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ0NoZWNrb3V0IGZhaWxlZDogJyArIGVycjtcbiAgICAgIH19KTtcbiAgICB9XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZFwiPlxuICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiIGNvbC1zbS0xMlwiPlxuICAgICAgICAgIDxoMj48Yj57e3RpdGxlfX08L2I+PC9oMj5cbiAgICAgICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cImxvYWRpbmcgfHwgZW1wdHlcIiBjbGFzcz1cImNvbC1zbS0xMiB0ZXh0LWNlbnRlclwiPlxuICAgICAgPGRpdiBjbGFzcz1cIiBhbGVydCBhbGVydC1pbmZvIFwiPlxuICAgICAgICA8aDM+PGVtPnt7IGxvYWRpbmcgPyAnTG9hZGluZy4uLicgOiAnQ2FydCBpcyBlbXB0eScgfX08L2VtPjwvaDM+XG4gICAgICAgIDxpbWcgKm5nSWY9XCJsb2FkaW5nXCIgY2xhc3M9XCJvZXBhLWljb25cIiBzcmM9XCJ7e2ltYWdlUm9vdH19L2JsdWUtbG9hZC5naWZcIiAvPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cIiFsb2FkaW5nICYmICFlbXB0eVwiIGNsYXNzPVwiY29sLXNtLTEyXCI+XG4gICAgICA8b2VwYS10YWJsZSBbY29uZmlnXT1cInRibENvbmZpZ1wiIFtkYXRhXT1cInRibERhdGFcIiBbaGVhZGVyXT1cInRibEhlYWRlclwiIHRhYmxlSWQ9XCJTaG9wcGluZ0NhcnRUYWJsZVwiIChjZWxsQ2xpY2tlZCk9XCJvbkNlbGxDbGljaygkZXZlbnQpXCI+PC9vZXBhLXRhYmxlPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJlcnJvck1lc3NhZ2VcIiBjbGFzcz1cImNvbC1zbS0xMlwiPlxuICAgICAgPGRpdiBjbGFzcz1cImFsZXJ0IGFsZXJ0LWRhbmdlclwiPnt7ZXJyb3JNZXNzYWdlfX08L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiIWNoZWNrT3V0SW5Qcm9ncmVzc1wiIGNsYXNzPVwiY29sLTEyIHRleHQtY2VudGVyXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgbXItMlwiIGlkPVwicmV0dXJuVG9QYWdlQnV0dG9uXCIgKGNsaWNrKT1cImdvQmFjaygpXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJyZXR1cm5MYWJlbFwiPlxuICAgICAgICAgIHt7cmV0dXJuTGFiZWx9fTwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uICpuZ0lmPVwiIWVtcHR5XCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgbXItMlwiIGlkPVwiY2hlY2tvdXRCdG5cIiAoY2xpY2spPVwib25DaGVja291dCgpXCIgYXJpYS1sYWJlbD1cIkNoZWNrb3V0XCI+XG4gICAgICAgICAgQ2hlY2tvdXQ8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImNoZWNrT3V0SW5Qcm9ncmVzc1wiIGNsYXNzPVwiY29sLTEyIHRleHQtY2VudGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhbGVydCBhbGVydC1pbmZvXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzcGlubmVyLWJvcmRlciB0ZXh0LXByaW1hcnlcIiByb2xlPVwic3RhdHVzXCI+PC9zcGFuPlxuICAgICAgICAgIENoZWNraW5nIG91dC4uLlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PiJdfQ==
191
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvcHBpbmctY2FydC12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29lcGEtdWktbGliL3NyYy9saWIvc2hvcHBpbmctY2FydC9zaG9wcGluZy1jYXJ0LXZpZXcvc2hvcHBpbmctY2FydC12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29lcGEtdWktbGliL3NyYy9saWIvc2hvcHBpbmctY2FydC9zaG9wcGluZy1jYXJ0LXZpZXcvc2hvcHBpbmctY2FydC12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFLbEQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sdURBQXVELENBQUM7Ozs7Ozs7QUFZbkcsTUFBTSxPQUFPLHlCQUF5QjtJQStCaEI7SUFDVjtJQUNBO0lBQ0E7SUFqQ1YsV0FBVyxDQUFTO0lBQ3BCLEtBQUssQ0FBUztJQUNkLFdBQVcsQ0FBUztJQUNwQixTQUFTLENBQVM7SUFDbEIsWUFBWSxDQUEyQjtJQUN2QyxLQUFLLEdBQUcsSUFBSSxDQUFDO0lBQ2IsT0FBTyxHQUFHLElBQUksQ0FBQztJQUNmLFlBQVksR0FBVyxFQUFFLENBQUM7SUFDMUIsU0FBUyxHQUFHLDhCQUE4QixDQUFDO0lBQzNDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztJQUMzQixXQUFXLEdBQVcsaUJBQWlCLENBQUM7SUFDeEMsZUFBZSxDQUFTO0lBQ3hCLHVCQUF1QixDQUFTO0lBQ2hDLGFBQWEsQ0FBUztJQUN0QixvQkFBb0IsR0FBVyxFQUFFLENBQUM7SUFFbEMsU0FBUyxHQUFvQjtRQUMzQixPQUFPLEVBQUU7WUFDUCxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLDBCQUEwQixFQUFFO1lBQ2hILEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUU7U0FDMUM7S0FDRixDQUFDO0lBRUYsU0FBUyxHQUFvQjtRQUMzQixVQUFVLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztRQUM5QixVQUFVLEVBQUUsSUFBSTtLQUNqQixDQUFDO0lBRUYsT0FBTyxHQUF3QixFQUFFLENBQUM7SUFFbEMsWUFBb0IsTUFBYyxFQUN4QixLQUFxQixFQUNyQixZQUE0QixFQUM1QixtQkFBd0M7UUFIOUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUN4QixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixpQkFBWSxHQUFaLFlBQVksQ0FBZ0I7UUFDNUIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUM5QyxNQUFNLE1BQU0sR0FBMkQsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUYsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUM7UUFDdEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxlQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQztRQUM5QyxJQUFJLENBQUMsdUJBQXVCLEdBQUcsTUFBTSxDQUFDLHVCQUF1QixDQUFDO1FBQzlELElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQztJQUM5QyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVEOztPQUVHO0lBQ0ssYUFBYTtRQUNuQiwwRkFBMEY7UUFDMUYsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixFQUFFLEVBQUUsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztZQUMxRyxJQUFJLENBQUMsV0FBVyxHQUFHLGlCQUFpQixDQUFDO1FBQ3ZDLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1lBQzVGLElBQUksQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDO1FBQ2hDLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsdUJBQXVCLEVBQUUsRUFBRSxFQUFFLG9CQUFvQixFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1lBQ2hILElBQUksQ0FBQyxXQUFXLEdBQUcsb0JBQW9CLENBQUM7UUFDMUMsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLEVBQUUsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7WUFDaEcsSUFBSSxDQUFDLFdBQVcsR0FBRyxZQUFZLENBQUM7UUFDbEMsQ0FBQztJQUNILENBQUM7SUFFTyxPQUFPO1FBQ2IsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDeEUsSUFBSSxFQUFFLFlBQVksQ0FBQyxFQUFFO2dCQUNyQixJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztnQkFDakMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUNqQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUN2QixDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFO2dCQUNkLElBQUksQ0FBQyxZQUFZLEdBQUcsd0NBQXdDLEdBQUcsR0FBRyxDQUFDO2dCQUNuRSxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUN2QixDQUFDO1NBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVPLFNBQVM7UUFDZixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNsQixJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNyRCxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQzdDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO2dCQUNuQixJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ25ELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3pCLENBQUMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUc7b0JBQzFCLEVBQUMsRUFBRSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxLQUFLLFlBQVksQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBQyxpQ0FBaUMsRUFBRTtvQkFDdkksRUFBQyxFQUFFLEVBQUUsb0JBQW9CLEVBQUUsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsS0FBSyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBQyxpQ0FBaUMsRUFBRTtvQkFDdkosRUFBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFDLGlDQUFpQyxFQUFFO29CQUNuSSxFQUFDLEVBQUUsRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxLQUFLLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFDLGlDQUFpQyxFQUFFO29CQUNqSixFQUFDLEVBQUUsRUFBQyxZQUFZLEVBQUUsS0FBSyxFQUFDLEVBQUUsRUFBQyxTQUFTLEVBQUMsaUJBQWlCLEVBQUU7b0JBQ3hELEVBQUMsRUFBRSxFQUFFLEtBQUssRUFBRyxLQUFLLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFDLG9CQUFvQixFQUFFLFNBQVMsRUFBQyxpQ0FBaUMsRUFBQztpQkFDeE0sRUFBQyxDQUFDLENBQUM7WUFDSixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdEMsQ0FBQztJQUNILENBQUM7SUFFTyx5QkFBeUIsQ0FBQyxRQUEwQjtRQUMxRCxJQUFJLEdBQUcsR0FBaUI7WUFDdEIsS0FBSyxFQUFFO2dCQUNMLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFDLFVBQVUsRUFBRTtnQkFDaEQsRUFBRSxFQUFFLEVBQUUsb0JBQW9CLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQyxrQkFBa0IsRUFBRTtnQkFDaEUsRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUMsUUFBUSxFQUFFO2dCQUM1QyxFQUFFLEVBQUUsRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFDLFdBQVcsRUFBRTtnQkFDdEQsRUFBRSxFQUFFLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsYUFBYSxFQUFFLHdCQUF3QixFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUU7Z0JBQ2xHLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFDLFNBQVMsRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLFFBQVEsQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFO2FBQ2hHO1lBQ0QsVUFBVSxFQUFFLFFBQVE7U0FDckIsQ0FBQTtRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUE4QjtRQUN4QyxJQUFJLEtBQUssQ0FBQyxRQUFRLEtBQUssWUFBWSxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN4RyxDQUFDO0lBQ0gsQ0FBQztJQUVPLGNBQWMsQ0FBQyxFQUFVLEVBQUUsV0FBbUIsRUFBRSxJQUE4QjtRQUNwRixNQUFNLEtBQUssR0FBZSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQywwQkFBMEIsRUFBRSxFQUFFLG1CQUFtQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDL0UsS0FBSyxDQUFDLE9BQVEsQ0FBQyxVQUFVLEdBQUcsd0JBQXdCLENBQUM7UUFDckQsS0FBSyxDQUFDLE9BQVEsQ0FBQyxRQUFRLEdBQUcsa0NBQWtDLEdBQUcsV0FBVyxHQUFJLDBCQUEwQixDQUFDO1FBQ3pHLEtBQUssQ0FBQyxPQUFRLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztRQUN2QyxLQUFLLENBQUMsT0FBUSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDckMsS0FBSyxDQUFDLE9BQVEsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUN4RSxJQUFJLENBQUMsa0JBQWtCLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGtCQUFrQixDQUFDLEVBQVUsRUFBRSxJQUE4QjtRQUNuRSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ1QsSUFBSSxDQUFDLG1CQUFtQixDQUFDLHNCQUFzQixDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUM7Z0JBQ2xFLElBQUksRUFBRSxXQUFXLENBQUMsRUFBRTtvQkFDcEIsSUFBSSxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUM7b0JBQ2hDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDbkIsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRTtvQkFDZCxJQUFJLENBQUMsWUFBWSxHQUFHLGtDQUFrQyxHQUFHLEdBQUcsQ0FBQztnQkFDL0QsQ0FBQzthQUFDLENBQUMsQ0FBQztRQUNOLENBQUM7SUFDSCxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRU0sVUFBVTtRQUNmLE1BQU0sS0FBSyxHQUFlLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLDBCQUEwQixFQUFFLEVBQUUsbUJBQW1CLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUMvRSxLQUFLLENBQUMsT0FBUSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDdkMsS0FBSyxDQUFDLE9BQVEsQ0FBQyxRQUFRLEdBQUcscUVBQXFFLENBQUM7UUFDaEcsS0FBSyxDQUFDLE9BQVEsQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ3ZDLEtBQUssQ0FBQyxPQUFRLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztRQUNyQyxLQUFLLENBQUMsT0FBUSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3hFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNsQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQztZQUMvQixJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxTQUFTLENBQUM7Z0JBQzdELElBQUksRUFBRSxhQUFhLENBQUMsRUFBRTtvQkFDdEIsbUNBQW1DO29CQUNuQyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsY0FBYyxFQUFFLENBQUM7b0JBQzlELE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLFdBQVcsR0FBRyxtREFBbUQsR0FBRyxhQUFhLENBQUM7Z0JBQzNHLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUU7b0JBQ2QsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztvQkFDaEMsSUFBSSxDQUFDLFlBQVksR0FBRyxtQkFBbUIsR0FBRyxHQUFHLENBQUM7Z0JBQ2hELENBQUM7YUFBQyxDQUFDLENBQUM7UUFDTixDQUFDO0lBQ0gsQ0FBQzt3R0FyTFUseUJBQXlCOzRGQUF6Qix5QkFBeUIsK0RDakJ0QyxxL0NBOEJNOzs0RkRiTyx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0UseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciwgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgU2hvcHBpbmdDYXJ0U2VydmljZSB9IGZyb20gJy4uL3Nob3BwaW5nLWNhcnQuc2VydmljZSc7XG5pbXBvcnQgeyBTaG9wcGluZ0NhcnRJdGVtLCBTaG9wcGluZ0NhcnQgfSBmcm9tICdAb2hpb2VwYS9vZXBhLWViaXotbGliJztcbmltcG9ydCB7IEJzTW9kYWxSZWYsIEJzTW9kYWxTZXJ2aWNlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9tb2RhbCc7XG5pbXBvcnQgeyBDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbmZpcm1hdGlvbi1tb2RhbC9jb25maXJtYXRpb24tbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IFNob3BwaW5nQ2FydFZpZXdQYXJhbWV0ZXJzIH0gZnJvbSAnLi9zaG9wcGluZy1jYXJ0LXZpZXctcGFyYW1ldGVycyc7XG5pbXBvcnQgeyBPZXBhVGFibGVIZWFkZXIgfSBmcm9tICcuLi8uLi90YWJsZS9vZXBhLXRhYmxlLWhlYWRlcic7XG5pbXBvcnQgeyBPZXBhVGFibGVDZWxsQ2xpY2tFdmVudCB9IGZyb20gJy4uLy4uL3RhYmxlL29lcGEtdGFibGUtY2VsbC1jbGljay1ldmVudCc7XG5pbXBvcnQgeyBPZXBhVGFibGVDb25maWcgfSBmcm9tICcuLi8uLi90YWJsZS9vZXBhLXRhYmxlLWNvbmZpZyc7XG5pbXBvcnQgeyBPZXBhVGFibGVSb3cgfSBmcm9tICcuLi8uLi90YWJsZS9vZXBhLXRhYmxlLXJvdyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29lcGEtc2hvcHBpbmctY2FydC12aWV3JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Nob3BwaW5nLWNhcnQtdmlldy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Nob3BwaW5nLWNhcnQtdmlldy5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU2hvcHBpbmdDYXJ0Vmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHNlcnZpY2VOYW1lOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHJldHVybkxhYmVsOiBzdHJpbmc7XG4gIHJldHVyblVybDogc3RyaW5nO1xuICBzaG9wcGluZ0NhcnQ6IFNob3BwaW5nQ2FydCB8IHVuZGVmaW5lZDtcbiAgZW1wdHkgPSB0cnVlO1xuICBsb2FkaW5nID0gdHJ1ZTtcbiAgZXJyb3JNZXNzYWdlOiBzdHJpbmcgPSAnJztcbiAgaW1hZ2VSb290ID0gJy9Bbmd1bGFyV2ViQXBwL2Fzc2V0cy9pbWFnZXMnO1xuICBjaGVja091dEluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgdG90YWxDb2x1bW46IHN0cmluZyA9ICdpdGVtRGVzY3JpcHRpb24nO1xuICBpdGVtTnVtYmVyTGFiZWw6IHN0cmluZztcbiAgaXRlbUNsYXNzaWZpY2F0aW9uTGFiZWw6IHN0cmluZztcbiAgaXRlbU5hbWVMYWJlbDogc3RyaW5nO1xuICBpdGVtRGVzY3JpcHRpb25MYWJlbDogc3RyaW5nID0gJyc7XG5cbiAgdGJsSGVhZGVyOiBPZXBhVGFibGVIZWFkZXIgPSB7XG4gICAgY29sdW1uczogW1xuICAgICAgeyB0aXRsZTogJ1JlbW92ZSBJdGVtJywgaWQ6ICdkZWxldGVJdGVtJywgc29ydDogJ25vbmUnLCBoeXBlcmxpbms6IHRydWUsIGNsYXNzTmFtZTogJ29lcGEtdGFibGUtaGVhZGVyLWNlbnRlcicgfSxcbiAgICAgIHsgdGl0bGU6ICdGZWUnLCBpZDogJ2ZlZScsIHNvcnQ6ICdub25lJyB9LFxuICAgIF1cbiAgfTtcblxuICB0YmxDb25maWc6IE9lcGFUYWJsZUNvbmZpZyA9IHtcbiAgICBjbGFzc05hbWVzOiBbJ3RhYmxlLWJvcmRlcmVkJ10sXG4gICAgaGlkZUZvb3RlcjogdHJ1ZVxuICB9O1xuXG4gIHRibERhdGE6IEFycmF5PE9lcGFUYWJsZVJvdz4gPSBbXTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBCc01vZGFsU2VydmljZSwgXG4gICAgcHJpdmF0ZSBzaG9wcGluZ0NhcnRTZXJ2aWNlOiBTaG9wcGluZ0NhcnRTZXJ2aWNlKSB7XG4gICAgICBjb25zdCBwYXJhbXM6IFNob3BwaW5nQ2FydFZpZXdQYXJhbWV0ZXJzID0gPFNob3BwaW5nQ2FydFZpZXdQYXJhbWV0ZXJzPnJvdXRlLnNuYXBzaG90LmRhdGFbMF07XG4gICAgICB0aGlzLnNlcnZpY2VOYW1lID0gcGFyYW1zLnNlcnZpY2VOYW1lO1xuICAgICAgdGhpcy50aXRsZSA9IHBhcmFtcy50aXRsZTtcbiAgICAgIHRoaXMucmV0dXJuTGFiZWwgPSBwYXJhbXMucmV0dXJuTGFiZWw7XG4gICAgICB0aGlzLnJldHVyblVybCA9IHBhcmFtcy5yZXR1cm5Vcmw7XG4gICAgICB0aGlzLml0ZW1OdW1iZXJMYWJlbCA9IHBhcmFtcy5pdGVtTnVtYmVyTGFiZWw7XG4gICAgICB0aGlzLml0ZW1DbGFzc2lmaWNhdGlvbkxhYmVsID0gcGFyYW1zLml0ZW1DbGFzc2lmaWNhdGlvbkxhYmVsO1xuICAgICAgdGhpcy5pdGVtTmFtZUxhYmVsID0gcGFyYW1zLml0ZW1OYW1lTGFiZWw7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnVwZGF0ZUhlYWRlcnMoKTtcbiAgICB0aGlzLnJlZnJlc2goKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgaGVhZGVycyBiYXNlZCBvbiB0aGUgbGFiZWxzIGRlZmluZWQgZm9yIHRoaXMgc2hvcHBpbmcgY2FydFxuICAgKi9cbiAgcHJpdmF0ZSB1cGRhdGVIZWFkZXJzKCkge1xuICAgIC8vIHByb2Nlc3MgbGFiZWxzIGluIHJldmVyc2Ugb3JkZXIgc2luY2UgdW5zaGlmdCBwbGFjZXMgaXRlbSBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBhcnJheVxuICAgIGlmICh0aGlzLml0ZW1EZXNjcmlwdGlvbkxhYmVsKSB7XG4gICAgICB0aGlzLnRibEhlYWRlci5jb2x1bW5zLnVuc2hpZnQoeyB0aXRsZTogdGhpcy5pdGVtRGVzY3JpcHRpb25MYWJlbCwgaWQ6ICdpdGVtRGVzY3JpcHRpb24nLCBzb3J0OiAnbm9uZScgfSk7XG4gICAgICB0aGlzLnRvdGFsQ29sdW1uID0gJ2l0ZW1EZXNjcmlwdGlvbic7XG4gICAgfVxuICAgIGlmICh0aGlzLml0ZW1OYW1lTGFiZWwpIHtcbiAgICAgIHRoaXMudGJsSGVhZGVyLmNvbHVtbnMudW5zaGlmdCh7IHRpdGxlOiB0aGlzLml0ZW1OYW1lTGFiZWwsIGlkOiAnaXRlbU5hbWUnLCBzb3J0OiAnbm9uZScgfSk7XG4gICAgICB0aGlzLnRvdGFsQ29sdW1uID0gJ2l0ZW1OYW1lJztcbiAgICB9XG4gICAgaWYgKHRoaXMuaXRlbUNsYXNzaWZpY2F0aW9uTGFiZWwpIHtcbiAgICAgIHRoaXMudGJsSGVhZGVyLmNvbHVtbnMudW5zaGlmdCh7IHRpdGxlOiB0aGlzLml0ZW1DbGFzc2lmaWNhdGlvbkxhYmVsLCBpZDogJ2l0ZW1DbGFzc2lmaWNhdGlvbicsIHNvcnQ6ICdub25lJyB9KTtcbiAgICAgIHRoaXMudG90YWxDb2x1bW4gPSAnaXRlbUNsYXNzaWZpY2F0aW9uJztcbiAgICB9XG4gICAgaWYgKHRoaXMuaXRlbU51bWJlckxhYmVsKSB7XG4gICAgICB0aGlzLnRibEhlYWRlci5jb2x1bW5zLnVuc2hpZnQoeyB0aXRsZTogdGhpcy5pdGVtTnVtYmVyTGFiZWwsIGlkOiAnaXRlbU51bWJlcicsIHNvcnQ6ICdub25lJyB9KTtcbiAgICAgIHRoaXMudG90YWxDb2x1bW4gPSAnaXRlbU51bWJlcic7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZWZyZXNoKCkge1xuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnJztcbiAgICB0aGlzLnNob3BwaW5nQ2FydFNlcnZpY2UucmV0cmlldmVTaG9wcGluZ0NhcnQodGhpcy5zZXJ2aWNlTmFtZSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IHNob3BwaW5nQ2FydCA9PiB7XG4gICAgICB0aGlzLnNob3BwaW5nQ2FydCA9IHNob3BwaW5nQ2FydDtcbiAgICAgIHRoaXMubG9hZFRhYmxlKCk7XG4gICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICB9LCBlcnJvcjogZXJyID0+IHtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ0ZhaWxlZCByZXRyaWV2aW5nIHNob3BwaW5nIGNhcnQgZGF0YTogJyArIGVycjtcbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgIH19KTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZFRhYmxlKCkge1xuICAgIHRoaXMudGJsRGF0YSA9IFtdO1xuICAgIHRoaXMuZW1wdHkgPSB0cnVlO1xuICAgIGlmICh0aGlzLnNob3BwaW5nQ2FydCAmJiB0aGlzLnNob3BwaW5nQ2FydC5jYXJ0SXRlbXMpIHtcbiAgICAgIHRoaXMuc2hvcHBpbmdDYXJ0LmNhcnRJdGVtcy5mb3JFYWNoKGNhcnRJdGVtID0+IHtcbiAgICAgICAgdGhpcy5lbXB0eSA9IGZhbHNlO1xuICAgICAgICBsZXQgcm93ID0gdGhpcy5jb252ZXJ0Q2FydEl0ZW1Ub1RhYmxlUm93KGNhcnRJdGVtKTtcbiAgICAgICAgdGhpcy50YmxEYXRhLnB1c2gocm93KTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy50YmxEYXRhLnB1c2goeyBjZWxscyA6IFsgXG4gICAgICAgIHtpZDogJ2l0ZW1OdW1iZXInLCB2YWx1ZTogKHRoaXMudG90YWxDb2x1bW4gPT09ICdpdGVtTnVtYmVyJyA/ICdUb3RhbCBBbW91bnQgRHVlOicgOiAnJyksIGNsYXNzTmFtZTonb2VwYS10YWJsZS1ncmF5IG9lcGEtdGFibGUtYm9sZCcgfSxcbiAgICAgICAge2lkOiAnaXRlbUNsYXNzaWZpY2F0aW9uJywgdmFsdWU6ICh0aGlzLnRvdGFsQ29sdW1uID09PSAnaXRlbUNsYXNzaWZpY2F0aW9uJyA/ICdUb3RhbCBBbW91bnQgRHVlOicgOiAnJyksIGNsYXNzTmFtZTonb2VwYS10YWJsZS1ncmF5IG9lcGEtdGFibGUtYm9sZCcgfSxcbiAgICAgICAge2lkOiAnaXRlbU5hbWUnLCB2YWx1ZTogKHRoaXMudG90YWxDb2x1bW4gPT09ICdpdGVtTmFtZScgPyAnVG90YWwgQW1vdW50IER1ZTonIDogJycpLCBjbGFzc05hbWU6J29lcGEtdGFibGUtZ3JheSBvZXBhLXRhYmxlLWJvbGQnIH0sXG4gICAgICAgIHtpZDogJ2l0ZW1EZXNjcmlwdGlvbicsIHZhbHVlOiAodGhpcy50b3RhbENvbHVtbiA9PT0gJ2l0ZW1EZXNjcmlwdGlvbicgPyAnVG90YWwgQW1vdW50IER1ZTonIDogJycpLCBjbGFzc05hbWU6J29lcGEtdGFibGUtZ3JheSBvZXBhLXRhYmxlLWJvbGQnIH0sXG4gICAgICAgIHtpZDonZGVsZXRlSXRlbScsIHZhbHVlOicnLGNsYXNzTmFtZTonb2VwYS10YWJsZS1ncmF5JyB9LFxuICAgICAgICB7aWQ6ICdmZWUnLCAgdmFsdWU6IHRoaXMuc2hvcHBpbmdDYXJ0Py50b3RhbEFtb3VudD8uZm9ybWF0dGVkU3RyaW5nLCBzb3J0VmFsdWU6IHRoaXMuc2hvcHBpbmdDYXJ0Py50b3RhbEFtb3VudD8uY2VudHMsIGljb25DbGFzc05hbWU6J29lcGEtdW5kZWxpbmUtY2VsbCcsIGNsYXNzTmFtZTonb2VwYS10YWJsZS1ncmF5IG9lcGEtdGFibGUtYm9sZCd9XG4gICAgICBdfSk7XG4gICAgICB0aGlzLnRibERhdGEgPSB0aGlzLnRibERhdGEuc2xpY2UoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNvbnZlcnRDYXJ0SXRlbVRvVGFibGVSb3coY2FydEl0ZW06IFNob3BwaW5nQ2FydEl0ZW0pOiBPZXBhVGFibGVSb3cge1xuICAgIGxldCByb3c6IE9lcGFUYWJsZVJvdyA9IHtcbiAgICAgIGNlbGxzOiBbXG4gICAgICAgIHsgaWQ6ICdpdGVtTnVtYmVyJywgdmFsdWU6IGNhcnRJdGVtLml0ZW1OdW1iZXIgfSxcbiAgICAgICAgeyBpZDogJ2l0ZW1DbGFzc2lmaWNhdGlvbicsIHZhbHVlOiBjYXJ0SXRlbS5pdGVtQ2xhc3NpZmljYXRpb24gfSxcbiAgICAgICAgeyBpZDogJ2l0ZW1OYW1lJywgdmFsdWU6IGNhcnRJdGVtLml0ZW1OYW1lIH0sXG4gICAgICAgIHsgaWQ6ICdpdGVtRGVzY3JpcHRpb24nLCB2YWx1ZTogY2FydEl0ZW0uZGVzY3JpcHRpb24gfSxcbiAgICAgICAgeyBpZDogJ2RlbGV0ZUl0ZW0nLCB2YWx1ZTogJycsIGljb25DbGFzc05hbWU6ICdiaSBiaS1kYXNoLWNpcmNsZS1maWxsJywgY2xhc3NOYW1lOiAndGV4dC1jZW50ZXInIH0sXG4gICAgICAgIHsgaWQ6ICdmZWUnLCB2YWx1ZTogY2FydEl0ZW0udW5pdFByaWNlPy5mb3JtYXR0ZWRTdHJpbmcsIHNvcnRWYWx1ZTogY2FydEl0ZW0udW5pdFByaWNlPy5jZW50cyB9LFxuICAgICAgXSxcbiAgICAgIGRhdGFTb3VyY2U6IGNhcnRJdGVtXG4gICAgfVxuICAgIHJldHVybiByb3c7XG4gIH1cblxuICBvbkNlbGxDbGljayhldmVudDogT2VwYVRhYmxlQ2VsbENsaWNrRXZlbnQpIHtcbiAgICBpZiAoZXZlbnQuY29sdW1uSWQgPT09ICdkZWxldGVJdGVtJykge1xuICAgICAgdGhpcy5kZWxldGVGcm9tQ2FydChldmVudC5yb3cuZGF0YVNvdXJjZS50eXBlSUQsIGV2ZW50LnJvdy5kYXRhU291cmNlLmRlc2NyaXB0aW9uLCB0aGlzLnNob3BwaW5nQ2FydCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBkZWxldGVGcm9tQ2FydChpZDogc3RyaW5nLCBkZXNjcmlwdGlvbjogc3RyaW5nLCBjYXJ0OiBTaG9wcGluZ0NhcnQgfCB1bmRlZmluZWQpIHtcbiAgICBjb25zdCBtb2RhbDogQnNNb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLnNob3coQ29uZmlybWF0aW9uTW9kYWxDb21wb25lbnQsIHsgaWdub3JlQmFja2Ryb3BDbGljazogdHJ1ZSB9KTtcbiAgICAoPENvbmZpcm1hdGlvbk1vZGFsQ29tcG9uZW50Pm1vZGFsLmNvbnRlbnQpLmhlYWRlclRleHQgPSAnUmVtb3ZlIGl0ZW0gZnJvbSBjYXJ0Pyc7XG4gICAgKDxDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudD5tb2RhbC5jb250ZW50KS5ib2R5VGV4dCA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gcmVtb3ZlICcgKyBkZXNjcmlwdGlvbiArICAnIGZyb20gdGhlIHNob3BwaW5nIGNhcnQ/JztcbiAgICAoPENvbmZpcm1hdGlvbk1vZGFsQ29tcG9uZW50Pm1vZGFsLmNvbnRlbnQpLmNvbmZpcm1CdG5MYWJlbCA9ICdZZXMnO1xuICAgICg8Q29uZmlybWF0aW9uTW9kYWxDb21wb25lbnQ+bW9kYWwuY29udGVudCkuY2FuY2VsQnRuTGFiZWwgPSAnTm8nO1xuICAgICg8Q29uZmlybWF0aW9uTW9kYWxDb21wb25lbnQ+bW9kYWwuY29udGVudCkuY29uZmlybUNsaWNrZWQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuZGVsZXRlSXRlbUZyb21DYXJ0KGlkLCBjYXJ0KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZGVsZXRlSXRlbUZyb21DYXJ0KGlkOiBzdHJpbmcsIGNhcnQ6IFNob3BwaW5nQ2FydCB8IHVuZGVmaW5lZCkge1xuICAgIGlmIChjYXJ0KSB7XG4gICAgICB0aGlzLnNob3BwaW5nQ2FydFNlcnZpY2UucmVtb3ZlU2hvcHBpbmdDYXJ0SXRlbShpZCwgY2FydCkuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogdXBkYXRlZENhcnQgPT4ge1xuICAgICAgICB0aGlzLnNob3BwaW5nQ2FydCA9IHVwZGF0ZWRDYXJ0O1xuICAgICAgICB0aGlzLmxvYWRUYWJsZSgpO1xuICAgICAgfSwgZXJyb3I6IGVyciA9PiB7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ0ZhaWxlZCByZW1vdmluZyBpdGVtIGZyb20gY2FydDogJyArIGVycjtcbiAgICAgIH19KTtcbiAgICB9XG4gIH1cblxuICBnb0JhY2soKSB7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3RoaXMucmV0dXJuVXJsXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlLnBhcmVudCB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvbkNoZWNrb3V0KCkge1xuICAgIGNvbnN0IG1vZGFsOiBCc01vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uuc2hvdyhDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudCwgeyBpZ25vcmVCYWNrZHJvcENsaWNrOiB0cnVlIH0pO1xuICAgICg8Q29uZmlybWF0aW9uTW9kYWxDb21wb25lbnQ+bW9kYWwuY29udGVudCkuaGVhZGVyVGV4dCA9ICdDaGVja291dCc7XG4gICAgKDxDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudD5tb2RhbC5jb250ZW50KS5ib2R5VGV4dCA9ICdEbyB5b3Ugd2FudCB0byBzdWJtaXQgYWxsIG9mIHRoZSBhcHBsaWNhdGlvbnMgaW4gdGhlIHNob3BwaW5nIGNhcnQ/JztcbiAgICAoPENvbmZpcm1hdGlvbk1vZGFsQ29tcG9uZW50Pm1vZGFsLmNvbnRlbnQpLmNvbmZpcm1CdG5MYWJlbCA9ICdZZXMnO1xuICAgICg8Q29uZmlybWF0aW9uTW9kYWxDb21wb25lbnQ+bW9kYWwuY29udGVudCkuY2FuY2VsQnRuTGFiZWwgPSAnTm8nO1xuICAgICg8Q29uZmlybWF0aW9uTW9kYWxDb21wb25lbnQ+bW9kYWwuY29udGVudCkuY29uZmlybUNsaWNrZWQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuY2hlY2tvdXQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIGNoZWNrb3V0KCkge1xuICAgIGlmICh0aGlzLnNob3BwaW5nQ2FydCkge1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnJztcbiAgICAgIHRoaXMuY2hlY2tPdXRJblByb2dyZXNzID0gdHJ1ZTtcbiAgICAgIHRoaXMuc2hvcHBpbmdDYXJ0U2VydmljZS5jaGVja091dCh0aGlzLnNob3BwaW5nQ2FydCkuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogdHJhbnNhY3Rpb25JRCA9PiB7XG4gICAgICAgIC8vIG5hdmlnYXRlIHRvIENCT1NTIHBheW1lbnQgc2NyZWVuXG4gICAgICAgIGNvbnN0IGViaXpSb290VVJMID0gdGhpcy5zaG9wcGluZ0NhcnRTZXJ2aWNlLmdldEViaXpSb290VVJMKCk7XG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gZWJpelJvb3RVUkwgKyAnL3BvcnRhbC9wYXltZW50U3VibWlzc2lvbkFjdGlvbi5wbz90cmFuc2FjdGlvbklEPScgKyB0cmFuc2FjdGlvbklEO1xuICAgICAgfSwgZXJyb3I6IGVyciA9PiB7XG4gICAgICAgIHRoaXMuY2hlY2tPdXRJblByb2dyZXNzID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ0NoZWNrb3V0IGZhaWxlZDogJyArIGVycjtcbiAgICAgIH19KTtcbiAgICB9XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZFwiPlxuICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiIGNvbC1zbS0xMlwiPlxuICAgICAgICAgIDxoMT48Yj57e3RpdGxlfX08L2I+PC9oMT5cbiAgICAgICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cImxvYWRpbmcgfHwgZW1wdHlcIiBjbGFzcz1cImNvbC1zbS0xMiB0ZXh0LWNlbnRlclwiPlxuICAgICAgPGRpdiBjbGFzcz1cIiBhbGVydCBhbGVydC1pbmZvIFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIlwiPjxlbT57eyBsb2FkaW5nID8gJ0xvYWRpbmcuLi4nIDogJ0NhcnQgaXMgZW1wdHknIH19PC9lbT48L3NwYW4+XG4gICAgICAgIDxpbWcgKm5nSWY9XCJsb2FkaW5nXCIgY2xhc3M9XCJvZXBhLWljb25cIiBhbHQ9XCJMb2FkaW5nXCIgc3JjPVwie3tpbWFnZVJvb3R9fS9ibHVlLWxvYWQuZ2lmXCIgLz5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCIhbG9hZGluZyAmJiAhZW1wdHlcIiBjbGFzcz1cImNvbC1zbS0xMlwiPlxuICAgICAgPG9lcGEtdGFibGUgW2NvbmZpZ109XCJ0YmxDb25maWdcIiBbZGF0YV09XCJ0YmxEYXRhXCIgW2hlYWRlcl09XCJ0YmxIZWFkZXJcIiB0YWJsZUlkPVwiU2hvcHBpbmdDYXJ0VGFibGVcIiAoY2VsbENsaWNrZWQpPVwib25DZWxsQ2xpY2soJGV2ZW50KVwiPjwvb2VwYS10YWJsZT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JNZXNzYWdlXCIgY2xhc3M9XCJjb2wtc20tMTJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJhbGVydCBhbGVydC1kYW5nZXJcIj57e2Vycm9yTWVzc2FnZX19PC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cIiFjaGVja091dEluUHJvZ3Jlc3NcIiBjbGFzcz1cImNvbC0xMiB0ZXh0LWNlbnRlclwiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IG1yLTJcIiBpZD1cInJldHVyblRvUGFnZUJ1dHRvblwiIChjbGljayk9XCJnb0JhY2soKVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicmV0dXJuTGFiZWxcIj5cbiAgICAgICAgICB7e3JldHVybkxhYmVsfX08L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiAqbmdJZj1cIiFlbXB0eVwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IG1yLTJcIiBpZD1cImNoZWNrb3V0QnRuXCIgKGNsaWNrKT1cIm9uQ2hlY2tvdXQoKVwiIGFyaWEtbGFiZWw9XCJDaGVja291dFwiPlxuICAgICAgICAgIENoZWNrb3V0PC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJjaGVja091dEluUHJvZ3Jlc3NcIiBjbGFzcz1cImNvbC0xMiB0ZXh0LWNlbnRlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWxlcnQgYWxlcnQtaW5mb1wiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Bpbm5lci1ib3JkZXIgdGV4dC1wcmltYXJ5XCIgcm9sZT1cInN0YXR1c1wiPjwvc3Bhbj5cbiAgICAgICAgICBDaGVja2luZyBvdXQuLi5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj4iXX0=
@@ -6853,11 +6853,11 @@ class LynxImageUploadComponent {
6853
6853
  });
6854
6854
  }
6855
6855
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LynxImageUploadComponent, deps: [{ token: i1$1.OepaComponentIdService }, { token: i2$1.BsModalService }, { token: i1$1.OepaFileUtilService }], target: i0.ɵɵFactoryTarget.Component });
6856
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: LynxImageUploadComponent, selector: "oepa-lynx-image-upload", inputs: { group: "group", field: "field", projectID: "projectID", label: "label", errorLabel: "errorLabel", image: "image", showValidation: "showValidation", required: "required", accept: "accept", imageBlobUrl: "imageBlobUrl" }, outputs: { onImageUpload: "onImageUpload", onImageRemove: "onImageRemove", onImageDownload: "onImageDownload" }, ngImport: i0, template: "<form [formGroup]=\"group\">\n <div *ngIf=\"!imageBlobUrl\">\n <label class=\"btn btn-primary btn-file\">\n Browse&hellip;\n <input type=\"file\" style=\"display: none;\" (change)=\"fileChange($event)\" \n [id]=\"componentId+'_BrowseBtn'\" [name]=\"componentId+'_BrowseBtn'\" class=\"form-control\"\n [attr.accept]=\"accept ? accept : null\"\n [disabled]=\"group.controls[field].status === 'DISABLED'\">\n </label>\n <span>&nbsp;Click the button on the left to upload an image from your computer.</span>\n </div>\n <div *ngIf=\"imageBlobUrl\">\n <div class=\"row\">\n <div class=\"col-sm-12\">\n <img [src]=\"imageBlobUrl\" [id]=\"componentId+'_Image'\" width=\"200\"\n [attr.alt]=\"image && image.userFilename ? image.userFilename : 'Uploaded image preview'\"\n [attr.aria-label]=\"image && image.userFilename ? image.userFilename : 'Uploaded image preview'\">\n </div>\n <br/>\n <div class=\"col-sm-12\">\n <span>{{image.userFilename}}</span>\n </div>\n <div class=\"col-sm-12\">\n <button type=\"button\" class=\"btn btn-primary\" [id]=\"componentId+'_RemoveImageBtn'\" [name]=\"componentId+'_RemoveImageBtn'\"\n (click)=\"removeImage()\" [disabled]=\"group.controls[field].status === 'DISABLED'\" aria-label=\"Remove Image\">\n Remove Image\n </button>\n </div>\n </div>\n </div>\n <div *ngIf=\"errorMessage\" class=\"alert alert-danger\" role=\"alert\">{{errorMessage}}</div>\n</form>", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] });
6856
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: LynxImageUploadComponent, selector: "oepa-lynx-image-upload", inputs: { group: "group", field: "field", projectID: "projectID", label: "label", errorLabel: "errorLabel", image: "image", showValidation: "showValidation", required: "required", accept: "accept", imageBlobUrl: "imageBlobUrl" }, outputs: { onImageUpload: "onImageUpload", onImageRemove: "onImageRemove", onImageDownload: "onImageDownload" }, ngImport: i0, template: "<form [formGroup]=\"group\">\n <div *ngIf=\"!imageBlobUrl\">\n <label class=\"btn btn-primary btn-file\">\n Browse&hellip;\n <input type=\"file\" style=\"display: none;\" (change)=\"fileChange($event)\" \n [id]=\"componentId+'_BrowseBtn'\" [name]=\"componentId+'_BrowseBtn'\" class=\"form-control\"\n [attr.accept]=\"accept ? accept : null\"\n [disabled]=\"group.controls[field].status === 'DISABLED'\">\n </label>\n <span>&nbsp;Click the button on the left to upload an image from your computer.</span>\n </div>\n <div *ngIf=\"imageBlobUrl\">\n <div class=\"row\">\n <div class=\"col-sm-12\">\n <img [src]=\"imageBlobUrl\" [id]=\"componentId+'_Image'\" width=\"200\"\n alt=\"\"\n [attr.aria-label]=\"image && image.userFilename ? image.userFilename : 'Uploaded image preview'\">\n </div>\n <br/>\n <div class=\"col-sm-12\">\n <span>{{image.userFilename}}</span>\n </div>\n <div class=\"col-sm-12\">\n <button type=\"button\" class=\"btn btn-primary\" [id]=\"componentId+'_RemoveImageBtn'\" [name]=\"componentId+'_RemoveImageBtn'\"\n (click)=\"removeImage()\" [disabled]=\"group.controls[field].status === 'DISABLED'\" aria-label=\"Remove Image\">\n Remove Image\n </button>\n </div>\n </div>\n </div>\n <div *ngIf=\"errorMessage\" class=\"alert alert-danger\" role=\"alert\">{{errorMessage}}</div>\n</form>", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] });
6857
6857
  }
6858
6858
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LynxImageUploadComponent, decorators: [{
6859
6859
  type: Component,
6860
- args: [{ selector: 'oepa-lynx-image-upload', template: "<form [formGroup]=\"group\">\n <div *ngIf=\"!imageBlobUrl\">\n <label class=\"btn btn-primary btn-file\">\n Browse&hellip;\n <input type=\"file\" style=\"display: none;\" (change)=\"fileChange($event)\" \n [id]=\"componentId+'_BrowseBtn'\" [name]=\"componentId+'_BrowseBtn'\" class=\"form-control\"\n [attr.accept]=\"accept ? accept : null\"\n [disabled]=\"group.controls[field].status === 'DISABLED'\">\n </label>\n <span>&nbsp;Click the button on the left to upload an image from your computer.</span>\n </div>\n <div *ngIf=\"imageBlobUrl\">\n <div class=\"row\">\n <div class=\"col-sm-12\">\n <img [src]=\"imageBlobUrl\" [id]=\"componentId+'_Image'\" width=\"200\"\n [attr.alt]=\"image && image.userFilename ? image.userFilename : 'Uploaded image preview'\"\n [attr.aria-label]=\"image && image.userFilename ? image.userFilename : 'Uploaded image preview'\">\n </div>\n <br/>\n <div class=\"col-sm-12\">\n <span>{{image.userFilename}}</span>\n </div>\n <div class=\"col-sm-12\">\n <button type=\"button\" class=\"btn btn-primary\" [id]=\"componentId+'_RemoveImageBtn'\" [name]=\"componentId+'_RemoveImageBtn'\"\n (click)=\"removeImage()\" [disabled]=\"group.controls[field].status === 'DISABLED'\" aria-label=\"Remove Image\">\n Remove Image\n </button>\n </div>\n </div>\n </div>\n <div *ngIf=\"errorMessage\" class=\"alert alert-danger\" role=\"alert\">{{errorMessage}}</div>\n</form>" }]
6860
+ args: [{ selector: 'oepa-lynx-image-upload', template: "<form [formGroup]=\"group\">\n <div *ngIf=\"!imageBlobUrl\">\n <label class=\"btn btn-primary btn-file\">\n Browse&hellip;\n <input type=\"file\" style=\"display: none;\" (change)=\"fileChange($event)\" \n [id]=\"componentId+'_BrowseBtn'\" [name]=\"componentId+'_BrowseBtn'\" class=\"form-control\"\n [attr.accept]=\"accept ? accept : null\"\n [disabled]=\"group.controls[field].status === 'DISABLED'\">\n </label>\n <span>&nbsp;Click the button on the left to upload an image from your computer.</span>\n </div>\n <div *ngIf=\"imageBlobUrl\">\n <div class=\"row\">\n <div class=\"col-sm-12\">\n <img [src]=\"imageBlobUrl\" [id]=\"componentId+'_Image'\" width=\"200\"\n alt=\"\"\n [attr.aria-label]=\"image && image.userFilename ? image.userFilename : 'Uploaded image preview'\">\n </div>\n <br/>\n <div class=\"col-sm-12\">\n <span>{{image.userFilename}}</span>\n </div>\n <div class=\"col-sm-12\">\n <button type=\"button\" class=\"btn btn-primary\" [id]=\"componentId+'_RemoveImageBtn'\" [name]=\"componentId+'_RemoveImageBtn'\"\n (click)=\"removeImage()\" [disabled]=\"group.controls[field].status === 'DISABLED'\" aria-label=\"Remove Image\">\n Remove Image\n </button>\n </div>\n </div>\n </div>\n <div *ngIf=\"errorMessage\" class=\"alert alert-danger\" role=\"alert\">{{errorMessage}}</div>\n</form>" }]
6861
6861
  }], ctorParameters: () => [{ type: i1$1.OepaComponentIdService }, { type: i2$1.BsModalService }, { type: i1$1.OepaFileUtilService }], propDecorators: { group: [{
6862
6862
  type: Input
6863
6863
  }], field: [{
@@ -8112,11 +8112,11 @@ class ShoppingCartViewComponent {
8112
8112
  }
8113
8113
  }
8114
8114
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ShoppingCartViewComponent, deps: [{ token: i1$4.Router }, { token: i1$4.ActivatedRoute }, { token: i2$1.BsModalService }, { token: ShoppingCartService }], target: i0.ɵɵFactoryTarget.Component });
8115
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ShoppingCartViewComponent, selector: "oepa-shopping-cart-view", ngImport: i0, template: "<div class=\"container-fluid\">\n <div class=\"row\">\n <div class=\" col-sm-12\">\n <h2><b>{{title}}</b></h2>\n </div>\n <div *ngIf=\"loading || empty\" class=\"col-sm-12 text-center\">\n <div class=\" alert alert-info \">\n <h3><em>{{ loading ? 'Loading...' : 'Cart is empty' }}</em></h3>\n <img *ngIf=\"loading\" class=\"oepa-icon\" src=\"{{imageRoot}}/blue-load.gif\" />\n </div>\n </div>\n <div *ngIf=\"!loading && !empty\" class=\"col-sm-12\">\n <oepa-table [config]=\"tblConfig\" [data]=\"tblData\" [header]=\"tblHeader\" tableId=\"ShoppingCartTable\" (cellClicked)=\"onCellClick($event)\"></oepa-table>\n </div>\n <div *ngIf=\"errorMessage\" class=\"col-sm-12\">\n <div class=\"alert alert-danger\">{{errorMessage}}</div>\n </div>\n <div *ngIf=\"!checkOutInProgress\" class=\"col-12 text-center\">\n <button class=\"btn btn-primary mr-2\" id=\"returnToPageButton\" (click)=\"goBack()\" [attr.aria-label]=\"returnLabel\">\n {{returnLabel}}</button>\n <button *ngIf=\"!empty\" class=\"btn btn-primary mr-2\" id=\"checkoutBtn\" (click)=\"onCheckout()\" aria-label=\"Checkout\">\n Checkout</button>\n </div>\n <div *ngIf=\"checkOutInProgress\" class=\"col-12 text-center\">\n <div class=\"alert alert-info\">\n <span class=\"spinner-border text-primary\" role=\"status\"></span>\n Checking out...\n </div>\n </div>\n </div>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: TableComponent, selector: "oepa-table", inputs: ["tableId", "config", "complexHeader", "header", "customBtnLabel", "customBtnVisible", "customBtnEnabled", "data", "totalRow"], outputs: ["actionDropdownOpenChange", "cellClicked", "actionClicked", "rowSelected", "customBtnClicked"] }] });
8115
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ShoppingCartViewComponent, selector: "oepa-shopping-cart-view", ngImport: i0, template: "<div class=\"container-fluid\">\n <div class=\"row\">\n <div class=\" col-sm-12\">\n <h1><b>{{title}}</b></h1>\n </div>\n <div *ngIf=\"loading || empty\" class=\"col-sm-12 text-center\">\n <div class=\" alert alert-info \">\n <span class=\"\"><em>{{ loading ? 'Loading...' : 'Cart is empty' }}</em></span>\n <img *ngIf=\"loading\" class=\"oepa-icon\" alt=\"Loading\" src=\"{{imageRoot}}/blue-load.gif\" />\n </div>\n </div>\n <div *ngIf=\"!loading && !empty\" class=\"col-sm-12\">\n <oepa-table [config]=\"tblConfig\" [data]=\"tblData\" [header]=\"tblHeader\" tableId=\"ShoppingCartTable\" (cellClicked)=\"onCellClick($event)\"></oepa-table>\n </div>\n <div *ngIf=\"errorMessage\" class=\"col-sm-12\">\n <div class=\"alert alert-danger\">{{errorMessage}}</div>\n </div>\n <div *ngIf=\"!checkOutInProgress\" class=\"col-12 text-center\">\n <button class=\"btn btn-primary mr-2\" id=\"returnToPageButton\" (click)=\"goBack()\" [attr.aria-label]=\"returnLabel\">\n {{returnLabel}}</button>\n <button *ngIf=\"!empty\" class=\"btn btn-primary mr-2\" id=\"checkoutBtn\" (click)=\"onCheckout()\" aria-label=\"Checkout\">\n Checkout</button>\n </div>\n <div *ngIf=\"checkOutInProgress\" class=\"col-12 text-center\">\n <div class=\"alert alert-info\">\n <span class=\"spinner-border text-primary\" role=\"status\"></span>\n Checking out...\n </div>\n </div>\n </div>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: TableComponent, selector: "oepa-table", inputs: ["tableId", "config", "complexHeader", "header", "customBtnLabel", "customBtnVisible", "customBtnEnabled", "data", "totalRow"], outputs: ["actionDropdownOpenChange", "cellClicked", "actionClicked", "rowSelected", "customBtnClicked"] }] });
8116
8116
  }
8117
8117
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ShoppingCartViewComponent, decorators: [{
8118
8118
  type: Component,
8119
- args: [{ selector: 'oepa-shopping-cart-view', template: "<div class=\"container-fluid\">\n <div class=\"row\">\n <div class=\" col-sm-12\">\n <h2><b>{{title}}</b></h2>\n </div>\n <div *ngIf=\"loading || empty\" class=\"col-sm-12 text-center\">\n <div class=\" alert alert-info \">\n <h3><em>{{ loading ? 'Loading...' : 'Cart is empty' }}</em></h3>\n <img *ngIf=\"loading\" class=\"oepa-icon\" src=\"{{imageRoot}}/blue-load.gif\" />\n </div>\n </div>\n <div *ngIf=\"!loading && !empty\" class=\"col-sm-12\">\n <oepa-table [config]=\"tblConfig\" [data]=\"tblData\" [header]=\"tblHeader\" tableId=\"ShoppingCartTable\" (cellClicked)=\"onCellClick($event)\"></oepa-table>\n </div>\n <div *ngIf=\"errorMessage\" class=\"col-sm-12\">\n <div class=\"alert alert-danger\">{{errorMessage}}</div>\n </div>\n <div *ngIf=\"!checkOutInProgress\" class=\"col-12 text-center\">\n <button class=\"btn btn-primary mr-2\" id=\"returnToPageButton\" (click)=\"goBack()\" [attr.aria-label]=\"returnLabel\">\n {{returnLabel}}</button>\n <button *ngIf=\"!empty\" class=\"btn btn-primary mr-2\" id=\"checkoutBtn\" (click)=\"onCheckout()\" aria-label=\"Checkout\">\n Checkout</button>\n </div>\n <div *ngIf=\"checkOutInProgress\" class=\"col-12 text-center\">\n <div class=\"alert alert-info\">\n <span class=\"spinner-border text-primary\" role=\"status\"></span>\n Checking out...\n </div>\n </div>\n </div>\n</div>" }]
8119
+ args: [{ selector: 'oepa-shopping-cart-view', template: "<div class=\"container-fluid\">\n <div class=\"row\">\n <div class=\" col-sm-12\">\n <h1><b>{{title}}</b></h1>\n </div>\n <div *ngIf=\"loading || empty\" class=\"col-sm-12 text-center\">\n <div class=\" alert alert-info \">\n <span class=\"\"><em>{{ loading ? 'Loading...' : 'Cart is empty' }}</em></span>\n <img *ngIf=\"loading\" class=\"oepa-icon\" alt=\"Loading\" src=\"{{imageRoot}}/blue-load.gif\" />\n </div>\n </div>\n <div *ngIf=\"!loading && !empty\" class=\"col-sm-12\">\n <oepa-table [config]=\"tblConfig\" [data]=\"tblData\" [header]=\"tblHeader\" tableId=\"ShoppingCartTable\" (cellClicked)=\"onCellClick($event)\"></oepa-table>\n </div>\n <div *ngIf=\"errorMessage\" class=\"col-sm-12\">\n <div class=\"alert alert-danger\">{{errorMessage}}</div>\n </div>\n <div *ngIf=\"!checkOutInProgress\" class=\"col-12 text-center\">\n <button class=\"btn btn-primary mr-2\" id=\"returnToPageButton\" (click)=\"goBack()\" [attr.aria-label]=\"returnLabel\">\n {{returnLabel}}</button>\n <button *ngIf=\"!empty\" class=\"btn btn-primary mr-2\" id=\"checkoutBtn\" (click)=\"onCheckout()\" aria-label=\"Checkout\">\n Checkout</button>\n </div>\n <div *ngIf=\"checkOutInProgress\" class=\"col-12 text-center\">\n <div class=\"alert alert-info\">\n <span class=\"spinner-border text-primary\" role=\"status\"></span>\n Checking out...\n </div>\n </div>\n </div>\n</div>" }]
8120
8120
  }], ctorParameters: () => [{ type: i1$4.Router }, { type: i1$4.ActivatedRoute }, { type: i2$1.BsModalService }, { type: ShoppingCartService }] });
8121
8121
 
8122
8122
  class ShoppingCartSummaryComponent {