@trudb/tru-common-lib 0.1.392 → 0.1.394

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.
@@ -10,25 +10,27 @@ export class TruAboutDialog {
10
10
  data;
11
11
  appEnvironment;
12
12
  appName;
13
+ appDescription;
13
14
  currentYear = new Date().getFullYear();
14
15
  constructor(dialogRef, data, appEnvironment) {
15
16
  this.dialogRef = dialogRef;
16
17
  this.data = data;
17
18
  this.appEnvironment = appEnvironment;
18
19
  this.appName = this.appEnvironment.appName;
20
+ this.appDescription = this.appEnvironment.appDescription;
19
21
  }
20
22
  ngOnInit() { }
21
23
  onDismiss() {
22
24
  this.dialogRef.close(false);
23
25
  }
24
26
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: TruAboutDialog, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: i2.TruAppEnvironment }], target: i0.ɵɵFactoryTarget.Component });
25
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: TruAboutDialog, selector: "tru-about-dialog", ngImport: i0, template: "<div mat-dialog-title class=\"mat-dialog-title\">\r\n <div class=\"mat-dialog-title-container\">\r\n <mat-icon [svgIcon]=\"'about-icon'\"\r\n title=\"Settings\">\r\n </mat-icon>\r\n About - {{appName}}\r\n </div>\r\n</div>\r\n\r\n<div mat-dialog-content class=\"mat-dialog-content\">\r\n <textarea></textarea>\r\n <p>\r\n Powered By TruDB\r\n Copyright {{currentYear}} TruDB LLC. All rights reserved.\r\n </p>\r\n</div>\r\n\r\n<div mat-dialog-actions class=\"mat-dialog-actions\">\r\n <button mat-raised-button (click)=\"onDismiss()\">Close</button>\r\n</div>\r\n", styles: ["::ng-deep .mat-mdc-dialog-surface{padding:20px}.mat-mdc-dialog-title:before{content:unset!important;height:unset!important;padding:0 0 10px!important}.mat-dialog-title-container mat-icon{vertical-align:sub;height:24px;width:24px}mat-nav-list{width:200px}mat-sidenav-content{height:calc(100vh - 400px)}mat-sidenav-content{padding-left:10px}.mat-dialog-title-container{display:inline}.mdc-dialog__title{padding:0 0 10px!important}.mdc-dialog__content{padding:10px 0 15px!important}.mat-mdc-dialog-content p{margin-bottom:0;font-size:14px;color:#545454}.mat-mdc-dialog-actions{padding:0!important}.mat-mdc-dialog-actions button{margin-right:10px}\n"], dependencies: [{ kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
27
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: TruAboutDialog, selector: "tru-about-dialog", ngImport: i0, template: "<div mat-dialog-title class=\"mat-dialog-title\">\r\n <div class=\"mat-dialog-title-container\">\r\n <mat-icon [svgIcon]=\"'about-icon'\"\r\n title=\"Settings\">\r\n </mat-icon>\r\n About - {{appName}}\r\n </div>\r\n</div>\r\n\r\n<div mat-dialog-content class=\"mat-dialog-content\">\r\n <div class=\"tru-about-description\">\r\n {{appDescription}}\r\n </div>\r\n <p>\r\n Powered By TruDB\r\n </p>\r\n <p>\r\n Copyright {{currentYear}} TruDB LLC. All rights reserved.\r\n </p>\r\n</div>\r\n\r\n<div mat-dialog-actions class=\"mat-dialog-actions\">\r\n <button mat-raised-button (click)=\"onDismiss()\">Close</button>\r\n</div>\r\n", styles: ["::ng-deep .mat-mdc-dialog-surface{padding:20px}.mat-mdc-dialog-title:before{content:unset!important;height:unset!important;padding:0 0 10px!important}.mat-dialog-title-container mat-icon{vertical-align:sub;height:24px;width:24px}.mat-dialog-title-container{display:inline}.mdc-dialog__title{padding:0 0 10px!important}.mdc-dialog__content{padding:10px 0 15px!important}.mat-mdc-dialog-content p{margin-bottom:0;font-size:14px;color:#545454}.mat-mdc-dialog-actions{padding:0!important}.mat-mdc-dialog-actions button{margin-right:10px}.tru-about-description{width:550px;height:200px;padding:5px;margin-bottom:5px;border:1px #cbcbcb solid}\n"], dependencies: [{ kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
26
28
  }
27
29
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: TruAboutDialog, decorators: [{
28
30
  type: Component,
29
- args: [{ selector: 'tru-about-dialog', template: "<div mat-dialog-title class=\"mat-dialog-title\">\r\n <div class=\"mat-dialog-title-container\">\r\n <mat-icon [svgIcon]=\"'about-icon'\"\r\n title=\"Settings\">\r\n </mat-icon>\r\n About - {{appName}}\r\n </div>\r\n</div>\r\n\r\n<div mat-dialog-content class=\"mat-dialog-content\">\r\n <textarea></textarea>\r\n <p>\r\n Powered By TruDB\r\n Copyright {{currentYear}} TruDB LLC. All rights reserved.\r\n </p>\r\n</div>\r\n\r\n<div mat-dialog-actions class=\"mat-dialog-actions\">\r\n <button mat-raised-button (click)=\"onDismiss()\">Close</button>\r\n</div>\r\n", styles: ["::ng-deep .mat-mdc-dialog-surface{padding:20px}.mat-mdc-dialog-title:before{content:unset!important;height:unset!important;padding:0 0 10px!important}.mat-dialog-title-container mat-icon{vertical-align:sub;height:24px;width:24px}mat-nav-list{width:200px}mat-sidenav-content{height:calc(100vh - 400px)}mat-sidenav-content{padding-left:10px}.mat-dialog-title-container{display:inline}.mdc-dialog__title{padding:0 0 10px!important}.mdc-dialog__content{padding:10px 0 15px!important}.mat-mdc-dialog-content p{margin-bottom:0;font-size:14px;color:#545454}.mat-mdc-dialog-actions{padding:0!important}.mat-mdc-dialog-actions button{margin-right:10px}\n"] }]
31
+ args: [{ selector: 'tru-about-dialog', template: "<div mat-dialog-title class=\"mat-dialog-title\">\r\n <div class=\"mat-dialog-title-container\">\r\n <mat-icon [svgIcon]=\"'about-icon'\"\r\n title=\"Settings\">\r\n </mat-icon>\r\n About - {{appName}}\r\n </div>\r\n</div>\r\n\r\n<div mat-dialog-content class=\"mat-dialog-content\">\r\n <div class=\"tru-about-description\">\r\n {{appDescription}}\r\n </div>\r\n <p>\r\n Powered By TruDB\r\n </p>\r\n <p>\r\n Copyright {{currentYear}} TruDB LLC. All rights reserved.\r\n </p>\r\n</div>\r\n\r\n<div mat-dialog-actions class=\"mat-dialog-actions\">\r\n <button mat-raised-button (click)=\"onDismiss()\">Close</button>\r\n</div>\r\n", styles: ["::ng-deep .mat-mdc-dialog-surface{padding:20px}.mat-mdc-dialog-title:before{content:unset!important;height:unset!important;padding:0 0 10px!important}.mat-dialog-title-container mat-icon{vertical-align:sub;height:24px;width:24px}.mat-dialog-title-container{display:inline}.mdc-dialog__title{padding:0 0 10px!important}.mdc-dialog__content{padding:10px 0 15px!important}.mat-mdc-dialog-content p{margin-bottom:0;font-size:14px;color:#545454}.mat-mdc-dialog-actions{padding:0!important}.mat-mdc-dialog-actions button{margin-right:10px}.tru-about-description{width:550px;height:200px;padding:5px;margin-bottom:5px;border:1px #cbcbcb solid}\n"] }]
30
32
  }], ctorParameters: () => [{ type: i1.MatDialogRef }, { type: TruAboutDialog, decorators: [{
31
33
  type: Inject,
32
34
  args: [MAT_DIALOG_DATA]
33
35
  }] }, { type: i2.TruAppEnvironment }] });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWFib3V0LWRpYWxvZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvY29tcG9uZW50cy9hYm91dC1kaWFsb2cvdHJ1LWFib3V0LWRpYWxvZy50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvY29tcG9uZW50cy9hYm91dC1kaWFsb2cvdHJ1LWFib3V0LWRpYWxvZy5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBMkIsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDcEYsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7OztBQVExRCxNQUFNLE9BQU8sY0FBYztJQUtoQjtJQUN5QjtJQUN4QjtJQU5WLE9BQU8sQ0FBUztJQUNoQixXQUFXLEdBQVcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUUvQyxZQUNTLFNBQXVDLEVBQ2QsSUFBb0IsRUFDNUMsY0FBaUM7UUFGbEMsY0FBUyxHQUFULFNBQVMsQ0FBOEI7UUFDZCxTQUFJLEdBQUosSUFBSSxDQUFnQjtRQUM1QyxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFDekMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQztJQUM3QyxDQUFDO0lBRUQsUUFBUSxLQUFJLENBQUM7SUFFYixTQUFTO1FBQ1AsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQzt1R0FmVSxjQUFjLDhDQU1mLGVBQWU7MkZBTmQsY0FBYyx3RENUM0IsdWxCQW9CQTs7MkZEWGEsY0FBYztrQkFMMUIsU0FBUzsrQkFDRSxrQkFBa0I7OzBCQVV6QixNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUcnVBcHBFbnZpcm9ubWVudCB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RydS1hcHAtZW52aXJvbm1lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0cnUtYWJvdXQtZGlhbG9nJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdHJ1LWFib3V0LWRpYWxvZy5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90cnUtYWJvdXQtZGlhbG9nLmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcnVBYm91dERpYWxvZyBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgYXBwTmFtZTogc3RyaW5nO1xyXG4gIGN1cnJlbnRZZWFyOiBudW1iZXIgPSBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFRydUFib3V0RGlhbG9nPixcclxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogVHJ1QWJvdXREaWFsb2csXHJcbiAgICBwcml2YXRlIGFwcEVudmlyb25tZW50OiBUcnVBcHBFbnZpcm9ubWVudCkge1xyXG4gICAgdGhpcy5hcHBOYW1lID0gdGhpcy5hcHBFbnZpcm9ubWVudC5hcHBOYW1lO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7fVxyXG5cclxuICBvbkRpc21pc3MoKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZShmYWxzZSk7XHJcbiAgfVxyXG59XHJcblxyXG4iLCI8ZGl2IG1hdC1kaWFsb2ctdGl0bGUgY2xhc3M9XCJtYXQtZGlhbG9nLXRpdGxlXCI+XHJcbiAgPGRpdiBjbGFzcz1cIm1hdC1kaWFsb2ctdGl0bGUtY29udGFpbmVyXCI+XHJcbiAgICA8bWF0LWljb24gW3N2Z0ljb25dPVwiJ2Fib3V0LWljb24nXCJcclxuICAgICAgICAgICAgICB0aXRsZT1cIlNldHRpbmdzXCI+XHJcbiAgICA8L21hdC1pY29uPlxyXG4gICAgQWJvdXQgLSB7e2FwcE5hbWV9fVxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgbWF0LWRpYWxvZy1jb250ZW50IGNsYXNzPVwibWF0LWRpYWxvZy1jb250ZW50XCI+XHJcbiAgPHRleHRhcmVhPjwvdGV4dGFyZWE+XHJcbiAgPHA+XHJcbiAgICBQb3dlcmVkIEJ5IFRydURCXHJcbiAgICBDb3B5cmlnaHQge3tjdXJyZW50WWVhcn19IFRydURCIExMQy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuICA8L3A+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiBtYXQtZGlhbG9nLWFjdGlvbnMgY2xhc3M9XCJtYXQtZGlhbG9nLWFjdGlvbnNcIj5cclxuICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJvbkRpc21pc3MoKVwiPkNsb3NlPC9idXR0b24+XHJcbjwvZGl2PlxyXG4iXX0=
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWFib3V0LWRpYWxvZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvY29tcG9uZW50cy9hYm91dC1kaWFsb2cvdHJ1LWFib3V0LWRpYWxvZy50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvY29tcG9uZW50cy9hYm91dC1kaWFsb2cvdHJ1LWFib3V0LWRpYWxvZy5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBMkIsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDcEYsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7OztBQVExRCxNQUFNLE9BQU8sY0FBYztJQU1oQjtJQUN5QjtJQUN4QjtJQVBWLE9BQU8sQ0FBUztJQUNoQixjQUFjLENBQVM7SUFDdkIsV0FBVyxHQUFXLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7SUFFL0MsWUFDUyxTQUF1QyxFQUNkLElBQW9CLEVBQzVDLGNBQWlDO1FBRmxDLGNBQVMsR0FBVCxTQUFTLENBQThCO1FBQ2QsU0FBSSxHQUFKLElBQUksQ0FBZ0I7UUFDNUMsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBQ3pDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUM7UUFDM0MsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsUUFBUSxLQUFJLENBQUM7SUFFYixTQUFTO1FBQ1AsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQzt1R0FqQlUsY0FBYyw4Q0FPZixlQUFlOzJGQVBkLGNBQWMsd0RDVDNCLGdxQkF3QkE7OzJGRGZhLGNBQWM7a0JBTDFCLFNBQVM7K0JBQ0Usa0JBQWtCOzswQkFXekIsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVHJ1QXBwRW52aXJvbm1lbnQgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cnUtYXBwLWVudmlyb25tZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndHJ1LWFib3V0LWRpYWxvZycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RydS1hYm91dC1kaWFsb2cuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdHJ1LWFib3V0LWRpYWxvZy5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJ1QWJvdXREaWFsb2cgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGFwcE5hbWU6IHN0cmluZztcclxuICBhcHBEZXNjcmlwdGlvbjogc3RyaW5nO1xyXG4gIGN1cnJlbnRZZWFyOiBudW1iZXIgPSBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFRydUFib3V0RGlhbG9nPixcclxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogVHJ1QWJvdXREaWFsb2csXHJcbiAgICBwcml2YXRlIGFwcEVudmlyb25tZW50OiBUcnVBcHBFbnZpcm9ubWVudCkge1xyXG4gICAgdGhpcy5hcHBOYW1lID0gdGhpcy5hcHBFbnZpcm9ubWVudC5hcHBOYW1lO1xyXG4gICAgdGhpcy5hcHBEZXNjcmlwdGlvbiA9IHRoaXMuYXBwRW52aXJvbm1lbnQuYXBwRGVzY3JpcHRpb247XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHt9XHJcblxyXG4gIG9uRGlzbWlzcygpOiB2b2lkIHtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKGZhbHNlKTtcclxuICB9XHJcbn1cclxuXHJcbiIsIjxkaXYgbWF0LWRpYWxvZy10aXRsZSBjbGFzcz1cIm1hdC1kaWFsb2ctdGl0bGVcIj5cclxuICA8ZGl2IGNsYXNzPVwibWF0LWRpYWxvZy10aXRsZS1jb250YWluZXJcIj5cclxuICAgIDxtYXQtaWNvbiBbc3ZnSWNvbl09XCInYWJvdXQtaWNvbidcIlxyXG4gICAgICAgICAgICAgIHRpdGxlPVwiU2V0dGluZ3NcIj5cclxuICAgIDwvbWF0LWljb24+XHJcbiAgICBBYm91dCAtIHt7YXBwTmFtZX19XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiBtYXQtZGlhbG9nLWNvbnRlbnQgY2xhc3M9XCJtYXQtZGlhbG9nLWNvbnRlbnRcIj5cclxuICA8ZGl2IGNsYXNzPVwidHJ1LWFib3V0LWRlc2NyaXB0aW9uXCI+XHJcbiAgICB7e2FwcERlc2NyaXB0aW9ufX1cclxuICA8L2Rpdj5cclxuICA8cD5cclxuICAgIFBvd2VyZWQgQnkgVHJ1REJcclxuICA8L3A+XHJcbiAgPHA+XHJcbiAgICBDb3B5cmlnaHQge3tjdXJyZW50WWVhcn19IFRydURCIExMQy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuICA8L3A+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiBtYXQtZGlhbG9nLWFjdGlvbnMgY2xhc3M9XCJtYXQtZGlhbG9nLWFjdGlvbnNcIj5cclxuICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJvbkRpc21pc3MoKVwiPkNsb3NlPC9idXR0b24+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -3,22 +3,27 @@ import { FormGroup, FormControl, Validators } from '@angular/forms';
3
3
  import { finalize } from 'rxjs';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "./services/tru-auth";
6
- import * as i2 from "@angular/common";
7
- import * as i3 from "@angular/material/button";
8
- import * as i4 from "@angular/material/card";
9
- import * as i5 from "@angular/material/input";
10
- import * as i6 from "@angular/material/form-field";
11
- import * as i7 from "@angular/forms";
6
+ import * as i2 from "../../services/tru-app-environment";
7
+ import * as i3 from "@angular/common";
8
+ import * as i4 from "@angular/material/button";
9
+ import * as i5 from "@angular/material/card";
10
+ import * as i6 from "@angular/material/input";
11
+ import * as i7 from "@angular/material/form-field";
12
+ import * as i8 from "@angular/forms";
12
13
  export class TruLogin {
13
14
  auth;
15
+ appEnvironment;
14
16
  loginForm = new FormGroup({
15
17
  username: new FormControl('', Validators.required),
16
18
  password: new FormControl('', Validators.required)
17
19
  });
18
20
  loginError = "";
19
21
  isLoggingIn = false;
20
- constructor(auth) {
22
+ title;
23
+ constructor(auth, appEnvironment) {
21
24
  this.auth = auth;
25
+ this.appEnvironment = appEnvironment;
26
+ this.title = appEnvironment.loginFormTitle;
22
27
  }
23
28
  get f() {
24
29
  return this.loginForm.controls;
@@ -49,11 +54,11 @@ export class TruLogin {
49
54
  });
50
55
  }
51
56
  }
52
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: TruLogin, deps: [{ token: i1.TruAuth }], target: i0.ɵɵFactoryTarget.Component });
53
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: TruLogin, selector: "tru-login", ngImport: i0, template: "<div class=\"login-wrapper\">\r\n <form [formGroup]=\"loginForm\" (ngSubmit)=\"onSubmit()\">\r\n <mat-card class=\"animate-login\">\r\n <mat-card-header>\r\n <mat-card-title> loginFormTitle </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <mat-form-field>\r\n <mat-label>Username</mat-label>\r\n <input matInput formControlName=\"username\" placeholder=\"Username\">\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>Password</mat-label>\r\n <input matInput type=\"password\" formControlName=\"password\" placeholder=\"Password\">\r\n </mat-form-field>\r\n <div *ngIf=\"loginError\" class=\"animate-login-error animated rubberBand\">\r\n <p style=\"color: red; font-weight: bold;\"> {{ loginError }}</p>\r\n </div>\r\n </mat-card-content>\r\n <mat-card-actions>\r\n <button mat-raised-button color=\"primary\" type=\"submit\" [disabled]=\"isDisabled()\">Login</button>\r\n </mat-card-actions>\r\n </mat-card>\r\n </form>\r\n</div>\r\n", styles: [".login-container{display:flex;justify-content:center;align-items:center;height:100vh;margin:0;padding:0}.login-input{margin-bottom:20px}.animate-login{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;margin-top:50px}.wrapper{display:flex;justify-content:center;align-items:center;height:100vh}mat-card{max-width:300px;width:100%;max-height:300px;padding:20px}.form-group{width:100%;max-width:400px;margin-bottom:20px}.login-wrapper{display:flex;justify-content:center;align-items:center;height:100vh}::ng-deep .login-wrapper .mat-mdc-text-field-wrapper{padding:0 16px!important}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i4.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i4.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i4.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i4.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i4.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "directive", type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i7.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i7.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
57
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: TruLogin, deps: [{ token: i1.TruAuth }, { token: i2.TruAppEnvironment }], target: i0.ɵɵFactoryTarget.Component });
58
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: TruLogin, selector: "tru-login", ngImport: i0, template: "<div class=\"login-wrapper\">\r\n <form [formGroup]=\"loginForm\" (ngSubmit)=\"onSubmit()\">\r\n <mat-card class=\"animate-login\">\r\n <mat-card-header>\r\n <mat-card-title> {{title}} </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <mat-form-field>\r\n <mat-label>Username</mat-label>\r\n <input matInput formControlName=\"username\" placeholder=\"Username\">\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>Password</mat-label>\r\n <input matInput type=\"password\" formControlName=\"password\" placeholder=\"Password\">\r\n </mat-form-field>\r\n <div *ngIf=\"loginError\" class=\"animate-login-error animated rubberBand\">\r\n <p style=\"color: red; font-weight: bold;\"> {{ loginError }}</p>\r\n </div>\r\n </mat-card-content>\r\n <mat-card-actions>\r\n <button mat-raised-button color=\"primary\" type=\"submit\" [disabled]=\"isDisabled()\">Login</button>\r\n </mat-card-actions>\r\n </mat-card>\r\n </form>\r\n</div>\r\n", styles: [".login-container{display:flex;justify-content:center;align-items:center;height:100vh;margin:0;padding:0}.login-input{margin-bottom:20px}.animate-login{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;margin-top:50px}.wrapper{display:flex;justify-content:center;align-items:center;height:100vh}mat-card{max-width:300px;width:100%;max-height:300px;padding:20px}.form-group{width:100%;max-width:400px;margin-bottom:20px}.login-wrapper{display:flex;justify-content:center;align-items:center;height:100vh}::ng-deep .login-wrapper .mat-mdc-text-field-wrapper{padding:0 16px!important}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i5.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i5.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i5.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i5.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i5.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatLabel, selector: "mat-label" }, { kind: "directive", type: i8.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i8.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i8.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i8.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
54
59
  }
55
60
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: TruLogin, decorators: [{
56
61
  type: Component,
57
- args: [{ selector: 'tru-login', template: "<div class=\"login-wrapper\">\r\n <form [formGroup]=\"loginForm\" (ngSubmit)=\"onSubmit()\">\r\n <mat-card class=\"animate-login\">\r\n <mat-card-header>\r\n <mat-card-title> loginFormTitle </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <mat-form-field>\r\n <mat-label>Username</mat-label>\r\n <input matInput formControlName=\"username\" placeholder=\"Username\">\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>Password</mat-label>\r\n <input matInput type=\"password\" formControlName=\"password\" placeholder=\"Password\">\r\n </mat-form-field>\r\n <div *ngIf=\"loginError\" class=\"animate-login-error animated rubberBand\">\r\n <p style=\"color: red; font-weight: bold;\"> {{ loginError }}</p>\r\n </div>\r\n </mat-card-content>\r\n <mat-card-actions>\r\n <button mat-raised-button color=\"primary\" type=\"submit\" [disabled]=\"isDisabled()\">Login</button>\r\n </mat-card-actions>\r\n </mat-card>\r\n </form>\r\n</div>\r\n", styles: [".login-container{display:flex;justify-content:center;align-items:center;height:100vh;margin:0;padding:0}.login-input{margin-bottom:20px}.animate-login{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;margin-top:50px}.wrapper{display:flex;justify-content:center;align-items:center;height:100vh}mat-card{max-width:300px;width:100%;max-height:300px;padding:20px}.form-group{width:100%;max-width:400px;margin-bottom:20px}.login-wrapper{display:flex;justify-content:center;align-items:center;height:100vh}::ng-deep .login-wrapper .mat-mdc-text-field-wrapper{padding:0 16px!important}\n"] }]
58
- }], ctorParameters: () => [{ type: i1.TruAuth }] });
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWxvZ2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJ1LWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL2xvZ2luL3RydS1sb2dpbi50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvY29tcG9uZW50cy9sb2dpbi90cnUtbG9naW4uaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSXBFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7OztBQU9oQyxNQUFNLE9BQU8sUUFBUTtJQVFDO0lBUHBCLFNBQVMsR0FBRyxJQUFJLFNBQVMsQ0FBQztRQUN4QixRQUFRLEVBQUUsSUFBSSxXQUFXLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7UUFDbEQsUUFBUSxFQUFFLElBQUksV0FBVyxDQUFDLEVBQUUsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO0tBQ25ELENBQUMsQ0FBQztJQUNILFVBQVUsR0FBVyxFQUFFLENBQUM7SUFDeEIsV0FBVyxHQUFZLEtBQUssQ0FBQztJQUU3QixZQUFvQixJQUFhO1FBQWIsU0FBSSxHQUFKLElBQUksQ0FBUztJQUFJLENBQUM7SUFFdEMsSUFBSSxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQztJQUNqQyxDQUFDO0lBRUQsVUFBVSxHQUFHLEdBQVksRUFBRTtRQUN6QixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDOUUsQ0FBQyxDQUFBO0lBRUQsUUFBUTtRQUNOLE1BQU0sWUFBWSxHQUF3QjtZQUN4QyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBTTtZQUNoQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBTTtTQUNqQyxDQUFDO1FBRUYsSUFBSSxZQUFZLENBQUMsUUFBUSxJQUFJLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNuRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztZQUN4QixJQUFJLENBQUMsSUFBSTtpQkFDTixLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUN2QixRQUFRLENBQUMsR0FBRyxFQUFFO2dCQUNaLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1lBQzNCLENBQUMsQ0FBQyxDQUNIO2lCQUNBLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7WUFDM0IsQ0FBQyxFQUNFLENBQUMsS0FBd0IsRUFBRSxFQUFFO2dCQUM1QixJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7b0JBQ3pCLElBQUksQ0FBQyxVQUFVLEdBQUcsb0NBQW9DLENBQUE7Z0JBQ3hELENBQUM7cUJBQ0ksQ0FBQztvQkFDSixJQUFJLENBQUMsVUFBVSxHQUFHLHlCQUF5QixHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7Z0JBQzdELENBQUM7WUFDSCxDQUFDLENBQ0YsQ0FBQztRQUNOLENBQUM7SUFDSCxDQUFDO3VHQTdDVSxRQUFROzJGQUFSLFFBQVEsaURDWnJCLDhrQ0F5QkE7OzJGRGJhLFFBQVE7a0JBTHBCLFNBQVM7K0JBQ0UsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1Db250cm9sLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBUcnVBdXRoIH0gZnJvbSAnLi9zZXJ2aWNlcy90cnUtYXV0aCc7XHJcbmltcG9ydCB7IFRydUF1dGhMb2dpblJlcXVlc3QgfSBmcm9tIFwiLi9jbGFzc2VzL3RydS1hdXRoLWxvZ2luLXJlcXVlc3RcIjtcclxuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuaW1wb3J0IHsgZmluYWxpemUgfSBmcm9tICdyeGpzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndHJ1LWxvZ2luJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdHJ1LWxvZ2luLmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RydS1sb2dpbi5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJ1TG9naW4ge1xyXG4gIGxvZ2luRm9ybSA9IG5ldyBGb3JtR3JvdXAoe1xyXG4gICAgdXNlcm5hbWU6IG5ldyBGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5yZXF1aXJlZCksXHJcbiAgICBwYXNzd29yZDogbmV3IEZvcm1Db250cm9sKCcnLCBWYWxpZGF0b3JzLnJlcXVpcmVkKVxyXG4gIH0pO1xyXG4gIGxvZ2luRXJyb3I6IHN0cmluZyA9IFwiXCI7XHJcbiAgaXNMb2dnaW5nSW46IGJvb2xlYW4gPSBmYWxzZTtcclxuICBcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGF1dGg6IFRydUF1dGgpIHsgfVxyXG5cclxuICBnZXQgZigpIHtcclxuICAgIHJldHVybiB0aGlzLmxvZ2luRm9ybS5jb250cm9scztcclxuICB9XHJcblxyXG4gIGlzRGlzYWJsZWQgPSAoKTogYm9vbGVhbiA9PiB7XHJcbiAgICByZXR1cm4gIXRoaXMuZi51c2VybmFtZS52YWx1ZSB8fCAhdGhpcy5mLnBhc3N3b3JkLnZhbHVlIHx8IHRoaXMuaXNMb2dnaW5nSW47XHJcbiAgfVxyXG5cclxuICBvblN1Ym1pdCgpIHtcclxuICAgIGNvbnN0IGxvZ2luUmVxdWVzdDogVHJ1QXV0aExvZ2luUmVxdWVzdCA9IHtcclxuICAgICAgdXNlcm5hbWU6IHRoaXMuZi51c2VybmFtZS52YWx1ZSEsXHJcbiAgICAgIHBhc3N3b3JkOiB0aGlzLmYucGFzc3dvcmQudmFsdWUhXHJcbiAgICB9O1xyXG5cclxuICAgIGlmIChsb2dpblJlcXVlc3QudXNlcm5hbWUgJiYgbG9naW5SZXF1ZXN0LnBhc3N3b3JkKSB7XHJcbiAgICAgIHRoaXMuaXNMb2dnaW5nSW4gPSB0cnVlO1xyXG4gICAgICB0aGlzLmF1dGhcclxuICAgICAgICAubG9naW4obG9naW5SZXF1ZXN0KS5waXBlKFxyXG4gICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmlzTG9nZ2luZ0luID0gZmFsc2U7IFxyXG4gICAgICAgICAgfSlcclxuICAgICAgICApXHJcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmlzTG9nZ2luZ0luID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICAgLChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PT0gNDAxKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5sb2dpbkVycm9yID0gXCJJbmNvcnJlY3QgdXNlcm5hbWUgYW5kL29yIHBhc3N3b3JkXCJcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLmxvZ2luRXJyb3IgPSBcIkludmFsaWQgTG9naW4gLSBFcnJvcjogXCIgKyBlcnJvci5zdGF0dXM7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwibG9naW4td3JhcHBlclwiPlxyXG4gIDxmb3JtIFtmb3JtR3JvdXBdPVwibG9naW5Gb3JtXCIgKG5nU3VibWl0KT1cIm9uU3VibWl0KClcIj5cclxuICAgIDxtYXQtY2FyZCBjbGFzcz1cImFuaW1hdGUtbG9naW5cIj5cclxuICAgICAgPG1hdC1jYXJkLWhlYWRlcj5cclxuICAgICAgICA8bWF0LWNhcmQtdGl0bGU+IGxvZ2luRm9ybVRpdGxlIDwvbWF0LWNhcmQtdGl0bGU+XHJcbiAgICAgIDwvbWF0LWNhcmQtaGVhZGVyPlxyXG4gICAgICA8bWF0LWNhcmQtY29udGVudD5cclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICA8bWF0LWxhYmVsPlVzZXJuYW1lPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwidXNlcm5hbWVcIiBwbGFjZWhvbGRlcj1cIlVzZXJuYW1lXCI+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICA8bWF0LWxhYmVsPlBhc3N3b3JkPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cInBhc3N3b3JkXCIgZm9ybUNvbnRyb2xOYW1lPVwicGFzc3dvcmRcIiBwbGFjZWhvbGRlcj1cIlBhc3N3b3JkXCI+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwibG9naW5FcnJvclwiIGNsYXNzPVwiYW5pbWF0ZS1sb2dpbi1lcnJvciBhbmltYXRlZCBydWJiZXJCYW5kXCI+XHJcbiAgICAgICAgICA8cCBzdHlsZT1cImNvbG9yOiByZWQ7IGZvbnQtd2VpZ2h0OiBib2xkO1wiPiB7eyBsb2dpbkVycm9yIH19PC9wPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgIDxtYXQtY2FyZC1hY3Rpb25zPlxyXG4gICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgdHlwZT1cInN1Ym1pdFwiIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkKClcIj5Mb2dpbjwvYnV0dG9uPlxyXG4gICAgICA8L21hdC1jYXJkLWFjdGlvbnM+XHJcbiAgICA8L21hdC1jYXJkPlxyXG4gIDwvZm9ybT5cclxuPC9kaXY+XHJcbiJdfQ==
62
+ args: [{ selector: 'tru-login', template: "<div class=\"login-wrapper\">\r\n <form [formGroup]=\"loginForm\" (ngSubmit)=\"onSubmit()\">\r\n <mat-card class=\"animate-login\">\r\n <mat-card-header>\r\n <mat-card-title> {{title}} </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <mat-form-field>\r\n <mat-label>Username</mat-label>\r\n <input matInput formControlName=\"username\" placeholder=\"Username\">\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>Password</mat-label>\r\n <input matInput type=\"password\" formControlName=\"password\" placeholder=\"Password\">\r\n </mat-form-field>\r\n <div *ngIf=\"loginError\" class=\"animate-login-error animated rubberBand\">\r\n <p style=\"color: red; font-weight: bold;\"> {{ loginError }}</p>\r\n </div>\r\n </mat-card-content>\r\n <mat-card-actions>\r\n <button mat-raised-button color=\"primary\" type=\"submit\" [disabled]=\"isDisabled()\">Login</button>\r\n </mat-card-actions>\r\n </mat-card>\r\n </form>\r\n</div>\r\n", styles: [".login-container{display:flex;justify-content:center;align-items:center;height:100vh;margin:0;padding:0}.login-input{margin-bottom:20px}.animate-login{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;margin-top:50px}.wrapper{display:flex;justify-content:center;align-items:center;height:100vh}mat-card{max-width:300px;width:100%;max-height:300px;padding:20px}.form-group{width:100%;max-width:400px;margin-bottom:20px}.login-wrapper{display:flex;justify-content:center;align-items:center;height:100vh}::ng-deep .login-wrapper .mat-mdc-text-field-wrapper{padding:0 16px!important}\n"] }]
63
+ }], ctorParameters: () => [{ type: i1.TruAuth }, { type: i2.TruAppEnvironment }] });
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWxvZ2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJ1LWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL2xvZ2luL3RydS1sb2dpbi50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvY29tcG9uZW50cy9sb2dpbi90cnUtbG9naW4uaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSXBFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7QUFRaEMsTUFBTSxPQUFPLFFBQVE7SUFVVDtJQUNBO0lBVlYsU0FBUyxHQUFHLElBQUksU0FBUyxDQUFDO1FBQ3hCLFFBQVEsRUFBRSxJQUFJLFdBQVcsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztRQUNsRCxRQUFRLEVBQUUsSUFBSSxXQUFXLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7S0FDbkQsQ0FBQyxDQUFDO0lBQ0gsVUFBVSxHQUFXLEVBQUUsQ0FBQztJQUN4QixXQUFXLEdBQVksS0FBSyxDQUFDO0lBQzdCLEtBQUssQ0FBUztJQUVkLFlBQ1UsSUFBYSxFQUNiLGNBQWlDO1FBRGpDLFNBQUksR0FBSixJQUFJLENBQVM7UUFDYixtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFDekMsSUFBSSxDQUFDLEtBQUssR0FBRyxjQUFjLENBQUMsY0FBYyxDQUFDO0lBQzdDLENBQUM7SUFFRCxJQUFJLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxVQUFVLEdBQUcsR0FBWSxFQUFFO1FBQ3pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM5RSxDQUFDLENBQUE7SUFFRCxRQUFRO1FBQ04sTUFBTSxZQUFZLEdBQXdCO1lBQ3hDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFNO1lBQ2hDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFNO1NBQ2pDLENBQUM7UUFFRixJQUFJLFlBQVksQ0FBQyxRQUFRLElBQUksWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ25ELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxJQUFJO2lCQUNOLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQ3ZCLFFBQVEsQ0FBQyxHQUFHLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7WUFDM0IsQ0FBQyxDQUFDLENBQ0g7aUJBQ0EsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztZQUMzQixDQUFDLEVBQ0UsQ0FBQyxLQUF3QixFQUFFLEVBQUU7Z0JBQzVCLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztvQkFDekIsSUFBSSxDQUFDLFVBQVUsR0FBRyxvQ0FBb0MsQ0FBQTtnQkFDeEQsQ0FBQztxQkFDSSxDQUFDO29CQUNKLElBQUksQ0FBQyxVQUFVLEdBQUcseUJBQXlCLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztnQkFDN0QsQ0FBQztZQUNILENBQUMsQ0FDRixDQUFDO1FBQ04sQ0FBQztJQUNILENBQUM7dUdBbERVLFFBQVE7MkZBQVIsUUFBUSxpRENickIseWtDQXlCQTs7MkZEWmEsUUFBUTtrQkFMcEIsU0FBUzsrQkFDRSxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybUNvbnRyb2wsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFRydUF1dGggfSBmcm9tICcuL3NlcnZpY2VzL3RydS1hdXRoJztcclxuaW1wb3J0IHsgVHJ1QXV0aExvZ2luUmVxdWVzdCB9IGZyb20gXCIuL2NsYXNzZXMvdHJ1LWF1dGgtbG9naW4tcmVxdWVzdFwiO1xyXG5pbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQgeyBmaW5hbGl6ZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBUcnVBcHBFbnZpcm9ubWVudCB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RydS1hcHAtZW52aXJvbm1lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0cnUtbG9naW4nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90cnUtbG9naW4uaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdHJ1LWxvZ2luLmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcnVMb2dpbiB7XHJcbiAgbG9naW5Gb3JtID0gbmV3IEZvcm1Hcm91cCh7XHJcbiAgICB1c2VybmFtZTogbmV3IEZvcm1Db250cm9sKCcnLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcclxuICAgIHBhc3N3b3JkOiBuZXcgRm9ybUNvbnRyb2woJycsIFZhbGlkYXRvcnMucmVxdWlyZWQpXHJcbiAgfSk7XHJcbiAgbG9naW5FcnJvcjogc3RyaW5nID0gXCJcIjtcclxuICBpc0xvZ2dpbmdJbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBhdXRoOiBUcnVBdXRoLFxyXG4gICAgcHJpdmF0ZSBhcHBFbnZpcm9ubWVudDogVHJ1QXBwRW52aXJvbm1lbnQpIHtcclxuICAgIHRoaXMudGl0bGUgPSBhcHBFbnZpcm9ubWVudC5sb2dpbkZvcm1UaXRsZTtcclxuICB9XHJcblxyXG4gIGdldCBmKCkge1xyXG4gICAgcmV0dXJuIHRoaXMubG9naW5Gb3JtLmNvbnRyb2xzO1xyXG4gIH1cclxuXHJcbiAgaXNEaXNhYmxlZCA9ICgpOiBib29sZWFuID0+IHtcclxuICAgIHJldHVybiAhdGhpcy5mLnVzZXJuYW1lLnZhbHVlIHx8ICF0aGlzLmYucGFzc3dvcmQudmFsdWUgfHwgdGhpcy5pc0xvZ2dpbmdJbjtcclxuICB9XHJcblxyXG4gIG9uU3VibWl0KCkge1xyXG4gICAgY29uc3QgbG9naW5SZXF1ZXN0OiBUcnVBdXRoTG9naW5SZXF1ZXN0ID0ge1xyXG4gICAgICB1c2VybmFtZTogdGhpcy5mLnVzZXJuYW1lLnZhbHVlISxcclxuICAgICAgcGFzc3dvcmQ6IHRoaXMuZi5wYXNzd29yZC52YWx1ZSFcclxuICAgIH07XHJcblxyXG4gICAgaWYgKGxvZ2luUmVxdWVzdC51c2VybmFtZSAmJiBsb2dpblJlcXVlc3QucGFzc3dvcmQpIHtcclxuICAgICAgdGhpcy5pc0xvZ2dpbmdJbiA9IHRydWU7XHJcbiAgICAgIHRoaXMuYXV0aFxyXG4gICAgICAgIC5sb2dpbihsb2dpblJlcXVlc3QpLnBpcGUoXHJcbiAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaXNMb2dnaW5nSW4gPSBmYWxzZTsgXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIClcclxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuaXNMb2dnaW5nSW4gPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgICAsKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZXJyb3Iuc3RhdHVzID09PSA0MDEpIHtcclxuICAgICAgICAgICAgICB0aGlzLmxvZ2luRXJyb3IgPSBcIkluY29ycmVjdCB1c2VybmFtZSBhbmQvb3IgcGFzc3dvcmRcIlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMubG9naW5FcnJvciA9IFwiSW52YWxpZCBMb2dpbiAtIEVycm9yOiBcIiArIGVycm9yLnN0YXR1cztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJsb2dpbi13cmFwcGVyXCI+XHJcbiAgPGZvcm0gW2Zvcm1Hcm91cF09XCJsb2dpbkZvcm1cIiAobmdTdWJtaXQpPVwib25TdWJtaXQoKVwiPlxyXG4gICAgPG1hdC1jYXJkIGNsYXNzPVwiYW5pbWF0ZS1sb2dpblwiPlxyXG4gICAgICA8bWF0LWNhcmQtaGVhZGVyPlxyXG4gICAgICAgIDxtYXQtY2FyZC10aXRsZT4ge3t0aXRsZX19IDwvbWF0LWNhcmQtdGl0bGU+XHJcbiAgICAgIDwvbWF0LWNhcmQtaGVhZGVyPlxyXG4gICAgICA8bWF0LWNhcmQtY29udGVudD5cclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICA8bWF0LWxhYmVsPlVzZXJuYW1lPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwidXNlcm5hbWVcIiBwbGFjZWhvbGRlcj1cIlVzZXJuYW1lXCI+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICA8bWF0LWxhYmVsPlBhc3N3b3JkPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cInBhc3N3b3JkXCIgZm9ybUNvbnRyb2xOYW1lPVwicGFzc3dvcmRcIiBwbGFjZWhvbGRlcj1cIlBhc3N3b3JkXCI+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwibG9naW5FcnJvclwiIGNsYXNzPVwiYW5pbWF0ZS1sb2dpbi1lcnJvciBhbmltYXRlZCBydWJiZXJCYW5kXCI+XHJcbiAgICAgICAgICA8cCBzdHlsZT1cImNvbG9yOiByZWQ7IGZvbnQtd2VpZ2h0OiBib2xkO1wiPiB7eyBsb2dpbkVycm9yIH19PC9wPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgIDxtYXQtY2FyZC1hY3Rpb25zPlxyXG4gICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgdHlwZT1cInN1Ym1pdFwiIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkKClcIj5Mb2dpbjwvYnV0dG9uPlxyXG4gICAgICA8L21hdC1jYXJkLWFjdGlvbnM+XHJcbiAgICA8L21hdC1jYXJkPlxyXG4gIDwvZm9ybT5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -7,6 +7,10 @@ export class TruAppEnvironment {
7
7
  _appName;
8
8
  _appDescription;
9
9
  _appUri;
10
+ _enablePasswordStrength;
11
+ _backgroundImageUrl;
12
+ _environmentWarning;
13
+ _loginFormTitle;
10
14
  _authType;
11
15
  _maxRecordCount;
12
16
  _isSaving = new BehaviorSubject(false);
@@ -38,6 +42,10 @@ export class TruAppEnvironment {
38
42
  this._appName = '';
39
43
  this._appDescription = '';
40
44
  this._appUri = '';
45
+ this._enablePasswordStrength = true;
46
+ this._backgroundImageUrl = '';
47
+ this._environmentWarning = '';
48
+ this._loginFormTitle = '';
41
49
  this._authType = 'jwt';
42
50
  this._maxRecordCount = 0;
43
51
  this.msgModifierKeyLabel = this.isMac ? 'Cmd' : 'Ctrl';
@@ -69,6 +77,34 @@ export class TruAppEnvironment {
69
77
  set appDescription(description) {
70
78
  this._appDescription = description;
71
79
  }
80
+ get enablePasswordStrength() {
81
+ return this._enablePasswordStrength;
82
+ }
83
+ ;
84
+ set enablePasswordStrength(enable) {
85
+ this._enablePasswordStrength = enable;
86
+ }
87
+ get backgroundImageUrl() {
88
+ return this._backgroundImageUrl;
89
+ }
90
+ ;
91
+ set backgroundImageUrl(description) {
92
+ this._backgroundImageUrl = description;
93
+ }
94
+ get environmentWarning() {
95
+ return this._environmentWarning;
96
+ }
97
+ ;
98
+ set environmentWarning(description) {
99
+ this._environmentWarning = description;
100
+ }
101
+ get loginFormTitle() {
102
+ return this._loginFormTitle;
103
+ }
104
+ ;
105
+ set loginFormTitle(description) {
106
+ this._loginFormTitle = description;
107
+ }
72
108
  get appUri() {
73
109
  return this._appUri;
74
110
  }
@@ -127,4 +163,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
127
163
  providedIn: 'root',
128
164
  }]
129
165
  }], ctorParameters: () => [{ type: i1.TruUser }] });
130
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWFwcC1lbnZpcm9ubWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvc2VydmljZXMvdHJ1LWFwcC1lbnZpcm9ubWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7OztBQVluRCxNQUFNLE9BQU8saUJBQWlCO0lBaUNSO0lBaENaLFFBQVEsQ0FBUztJQUNqQixlQUFlLENBQVM7SUFDeEIsT0FBTyxDQUFTO0lBQ2hCLFNBQVMsQ0FBb0I7SUFDN0IsZUFBZSxDQUFTO0lBQ3hCLFNBQVMsR0FBNkIsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDMUUsYUFBYSxHQUFpRCxJQUFJLGVBQWUsQ0FBOEIsSUFBSSxDQUFDLENBQUM7SUFDckgsZUFBZSxHQUFpRCxJQUFJLGVBQWUsQ0FBOEIsSUFBSSxDQUFDLENBQUM7SUFDdkgsZUFBZSxHQUFpRCxJQUFJLGVBQWUsQ0FBOEIsSUFBSSxDQUFDLENBQUM7SUFDdkgsa0JBQWtCLEdBQTBCLElBQUksQ0FBQztJQUVoRCxtQkFBbUIsQ0FBUztJQUM1QixnQ0FBZ0MsQ0FBUztJQUN6QyxtQkFBbUIsQ0FBUztJQUM1QixpQkFBaUIsQ0FBUztJQUMxQixrQkFBa0IsQ0FBUztJQUMzQixpQkFBaUIsQ0FBUztJQUMxQixjQUFjLENBQVM7SUFDdkIsd0JBQXdCLENBQVM7SUFDakMsd0JBQXdCLENBQVM7SUFDakMscUJBQXFCLENBQVM7SUFDOUIsb0NBQW9DLENBQVM7SUFDN0MsaUJBQWlCLENBQVM7SUFDMUIsb0NBQW9DLENBQVM7SUFDN0MsZ0NBQWdDLENBQVM7SUFDekMsb0JBQW9CLENBQVM7SUFFL0IsZ0JBQWdCLEdBQXdCLElBQUksQ0FBQyxTQUFTLENBQUMsWUFB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dklVLGlCQUFpQjsyR0FBakIsaUJBQWlCLGNBRmhCLE1BQU07OzJGQUVQLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRW50aXR5IH0gZnJvbSBcImJyZWV6ZS1jbGllbnRcIjtcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgVHJ1RGF0YUNvbnRleHQgfSBmcm9tIFwiLi90cnUtZGF0YS1jb250ZXh0XCI7XHJcbmltcG9ydCB7IFRydVVzZXIgfSBmcm9tIFwiLi90cnUtdXNlclwiO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBY3Rpb25FdmVudENvbXBsZXRlZCB7XHJcbiAgc3VjY2Vzc2Z1bDogYm9vbGVhbjtcclxuICBlbnRpdGllcz86IEFycmF5PEVudGl0eT47XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcnVBcHBFbnZpcm9ubWVudCB7XHJcbiAgcHJpdmF0ZSBfYXBwTmFtZTogc3RyaW5nO1xyXG4gIHByaXZhdGUgX2FwcERlc2NyaXB0aW9uOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfYXBwVXJpOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfYXV0aFR5cGU6ICdzZXNzaW9uJyB8ICdqd3QnO1xyXG4gIHByaXZhdGUgX21heFJlY29yZENvdW50OiBudW1iZXI7XHJcbiAgcHJpdmF0ZSBfaXNTYXZpbmc6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIHByaXZhdGUgX3NhdmVDb21wbGV0ZTogQmVoYXZpb3JTdWJqZWN0PEFjdGlvbkV2ZW50Q29tcGxldGVkIHwgbnVsbD4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEFjdGlvbkV2ZW50Q29tcGxldGVkIHwgbnVsbD4obnVsbCk7XHJcbiAgcHJpdmF0ZSBfcmV2ZXJ0Q29tcGxldGU6IEJlaGF2aW9yU3ViamVjdDxBY3Rpb25FdmVudENvbXBsZXRlZCB8IG51bGw+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBY3Rpb25FdmVudENvbXBsZXRlZCB8IG51bGw+KG51bGwpO1xyXG4gIHByaXZhdGUgX2RlbGV0ZUNvbXBsZXRlOiBCZWhhdmlvclN1YmplY3Q8QWN0aW9uRXZlbnRDb21wbGV0ZWQgfCBudWxsPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QWN0aW9uRXZlbnRDb21wbGV0ZWQgfCBudWxsPihudWxsKTtcclxuICBwcml2YXRlIF9nbG9iYWxEYXRhQ29udGV4dDogVHJ1RGF0YUNvbnRleHQgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgcmVhZG9ubHkgbXNnTW9kaWZpZXJLZXlMYWJlbDogc3RyaW5nO1xyXG4gIHJlYWRvbmx5IG1zZ0NvbmZpcm1FeGl0V2l0aENoYW5nZXNQZW5kaW5nOiBzdHJpbmc7XHJcbiAgcmVhZG9ubHkgbXNnRGVsZXRlU3VjY2Vzc2Z1bDogc3RyaW5nO1xyXG4gIHJlYWRvbmx5IG1zZ1NhdmVTdWNjZXNzZnVsOiBzdHJpbmc7XHJcbiAgcmVhZG9ubHkgbXNnTm9DaGFuZ2VzVG9TYXZlOiBzdHJpbmc7XHJcbiAgcmVhZG9ubHkgbXNnU2F2ZUluUHJvZ3Jlc3M6IHN0cmluZztcclxuICByZWFkb25seSBtc2dJbnZhbGlkRGF0YTogc3RyaW5nO1xyXG4gIHJlYWRvbmx5IG1zZ0RpcnR5UHJldmVudHNSZWFkT25seTogc3RyaW5nO1xyXG4gIHJlYWRvbmx5IG1zZ0RpcnR5UHJldmVudHNOYXZpZ2F0ZTogc3RyaW5nO1xyXG4gIHJlYWRvbmx5IG1zZ0RpcnR5UHJldmVudHNDbG9zZTogc3RyaW5nO1xyXG4gIHJlYWRvbmx5IG1zZ0RpcnR5UHJldmVudHNEZWxldGVFeGlzdGluZ1JlY29yZDogc3RyaW5nO1xyXG4gIHJlYWRvbmx5IG1zZ05vRGVsZXRlQWNjZXNzOiBzdHJpbmc7XHJcbiAgcmVhZG9ubHkgbXNnQ2Fubm90RGVsZXRlTmV3QW5kRXhpc3RpbmdSZWNvcmRzOiBzdHJpbmc7XHJcbiAgcmVhZG9ubHkgbXNnRGVsZXRlUmVmZXJlbmNpbmdSZWNvcmRzRmlyc3Q6IHN0cmluZztcclxuICByZWFkb25seSBtc2dOb1JlY29yZHNTZWxlY3RlZDogc3RyaW5nO1xyXG5cclxuICBwdWJsaWMgb25TYXZpbmdDaGFuZ2VkJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMuX2lzU2F2aW5nLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIHB1YmxpYyBvblNhdmVDb21wbGV0ZSQ6IE9ic2VydmFibGU8QWN0aW9uRXZlbnRDb21wbGV0ZWQgfCBudWxsPiA9IHRoaXMuX3NhdmVDb21wbGV0ZS5hc09ic2VydmFibGUoKTtcclxuICBwdWJsaWMgb25SZXZlcnRDb21wbGV0ZSQ6IE9ic2VydmFibGU8QWN0aW9uRXZlbnRDb21wbGV0ZWQgfCBudWxsPiA9IHRoaXMuX3JldmVydENvbXBsZXRlLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIHB1YmxpYyBvbkRlbGV0ZUNvbXBsZXRlJDogT2JzZXJ2YWJsZTxBY3Rpb25FdmVudENvbXBsZXRlZCB8IG51bGw+ID0gdGhpcy5fZGVsZXRlQ29tcGxldGUuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdHJ1VXNlcjogVHJ1VXNlcikge1xyXG4gICAgdGhpcy5fYXBwTmFtZSA9ICcnO1xyXG4gICAgdGhpcy5fYXBwRGVzY3JpcHRpb24gPSAnJztcclxuICAgIHRoaXMuX2FwcFVyaSA9ICcnO1xyXG4gICAgdGhpcy5fYXV0aFR5cGUgPSAnand0JztcclxuICAgIHRoaXMuX21heFJlY29yZENvdW50ID0gMDtcclxuICAgIFxyXG4gICAgdGhpcy5tc2dNb2RpZmllcktleUxhYmVsID0gdGhpcy5pc01hYyA/ICdDbWQnIDogJ0N0cmwnO1xyXG4gICAgdGhpcy5tc2dDb25maXJtRXhpdFdpdGhDaGFuZ2VzUGVuZGluZyA9ICdZb3UgaGF2ZSB1bnNhdmVkIGNoYW5nZXMgdGhhdCB3aWxsIGJlIGxvc3QuJztcclxuICAgIHRoaXMubXNnRGVsZXRlU3VjY2Vzc2Z1bCA9ICdEZWxldGUgc3VjY2VlZGVkJztcclxuICAgIHRoaXMubXNnU2F2ZVN1Y2Nlc3NmdWwgPSAnU2F2ZSBzdWNjZWVkZWQnO1xyXG4gICAgdGhpcy5tc2dOb0NoYW5nZXNUb1NhdmUgPSAnTm8gY2hhbmdlcyB0byBzYXZlJztcclxuICAgIHRoaXMubXNnU2F2ZUluUHJvZ3Jlc3MgPSAnU2F2ZSBpbiBwcm9ncmVzcyc7XHJcbiAgICB0aGlzLm1zZ0ludmFsaWREYXRhID0gJ0ludmFsaWQgZGF0YSc7XHJcbiAgICB0aGlzLm1zZ0RpcnR5UHJldmVudHNSZWFkT25seSA9ICdTYXZlIG9yIHJldmVydCBiZWZvcmUgZGlzYWJsaW5nIGVkaXRpbmcnO1xyXG4gICAgdGhpcy5tc2dEaXJ0eVByZXZlbnRzTmF2aWdhdGUgPSAnU2F2ZSBvciByZXZlcnQgYmVmb3JlIG5hdmlnYXRpbmcnO1xyXG4gICAgdGhpcy5tc2dEaXJ0eVByZXZlbnRzQ2xvc2UgPSAnU2F2ZSBvciByZXZlcnQgYmVmb3JlIGNsb3Npbmcgd2luZG93JztcclxuICAgIHRoaXMubXNnRGlydHlQcmV2ZW50c0RlbGV0ZUV4aXN0aW5nUmVjb3JkID0gJ1NhdmUgb3IgcmV2ZXJ0IGJlZm9yZSBkZWxldGluZyc7XHJcbiAgICB0aGlzLm1zZ05vRGVsZXRlQWNjZXNzID0gJ0NvbnRhY3QgYWRtaW5pc3RyYXRvciBhYm91dCBkZWxldGUgYWNjZXNzJztcclxuICAgIHRoaXMubXNnQ2Fubm90RGVsZXRlTmV3QW5kRXhpc3RpbmdSZWNvcmRzID0gJ0RlbGV0ZSBuZXcgb3IgZXhpc3RpbmcgcmVjb3JkcyAtIGJ1dCBub3QgYm90aCc7XHJcbiAgICB0aGlzLm1zZ0RlbGV0ZVJlZmVyZW5jaW5nUmVjb3Jkc0ZpcnN0ID0gJ0RlbGV0ZSBhbGwgcmVmZXJlbmNpbmcgcmVjb3JkcyBmaXJzdCc7XHJcbiAgICB0aGlzLm1zZ05vUmVjb3Jkc1NlbGVjdGVkID0gJ05vIFJlY29yZHMgc2VsZWN0ZWQnO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGFwcE5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9hcHBOYW1lO1xyXG4gIH1cclxuXHJcbiAgc2V0IGFwcE5hbWUobmFtZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9hcHBOYW1lID0gbmFtZTtcclxuICB9XHJcblxyXG4gIGdldCBhcHBEZXNjcmlwdGlvbigpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FwcERlc2NyaXB0aW9uO1xyXG4gIH07XHJcblxyXG4gIHNldCBhcHBEZXNjcmlwdGlvbihkZXNjcmlwdGlvbjogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9hcHBEZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGFwcFVyaSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FwcFVyaTtcclxuICB9XHJcblxyXG4gIHNldCBhcHBVcmkodXJpOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX2FwcFVyaSA9IHVyaTtcclxuICB9XHJcblxyXG4gIGdldCBhdXRoVHlwZSgpOiAnc2Vzc2lvbicgfCAnand0JyB7XHJcbiAgICByZXR1cm4gdGhpcy5fYXV0aFR5cGU7XHJcbiAgfVxyXG5cclxuICBzZXQgYXV0aFR5cGUodHlwZTogJ3Nlc3Npb24nIHwgJ2p3dCcpIHtcclxuICAgIHRoaXMuX2F1dGhUeXBlID0gdHlwZTtcclxuICB9XHJcblxyXG4gIGdldCBpc1NhdmluZygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9pc1NhdmluZy5nZXRWYWx1ZSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0IGlzU2F2aW5nKGlzU2F2aW5nOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9pc1NhdmluZy5uZXh0KGlzU2F2aW5nKTtcclxuICB9XHJcblxyXG4gIGdldCBtYXhSZWNvcmRDb3VudCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX21heFJlY29yZENvdW50O1xyXG4gIH1cclxuXHJcbiAgc2V0IG1heFJlY29yZENvdW50KG1heFJlY29yZENvdW50OiBudW1iZXIpIHtcclxuICAgIHRoaXMuX21heFJlY29yZENvdW50ID0gbWF4UmVjb3JkQ291bnQ7XHJcbiAgfVxyXG5cclxuICBnZXQgZ2xvYmFsRGF0YUNvbnRleHQoKTogVHJ1RGF0YUNvbnRleHQgfCBudWxsIHtcclxuICAgIHJldHVybiB0aGlzLl9nbG9iYWxEYXRhQ29udGV4dDtcclxuICB9XHJcblxyXG4gIHNldCBnbG9iYWxEYXRhQ29udGV4dChjb250ZXh0OiBUcnVEYXRhQ29udGV4dCB8IG51bGwpIHtcclxuICAgIHRoaXMuX2dsb2JhbERhdGFDb250ZXh0ID0gY29udGV4dCA7XHJcbiAgfVxyXG5cclxuICBnZXQgaXNNYWMoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gbmF2aWdhdG9yLnBsYXRmb3JtLnRvVXBwZXJDYXNlKCkuaW5kZXhPZignTUFDJykgPj0gMDtcclxuICB9XHJcblxyXG4gIHNhdmVDb21wbGV0ZSA9IChldmVudDogQWN0aW9uRXZlbnRDb21wbGV0ZWQpOiB2b2lkID0+IHtcclxuICAgIHRoaXMuX3NhdmVDb21wbGV0ZS5uZXh0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIHJldmVydENvbXBsZXRlID0gKGV2ZW50OiBBY3Rpb25FdmVudENvbXBsZXRlZCk6IHZvaWQgPT4ge1xyXG4gICAgdGhpcy5fcmV2ZXJ0Q29tcGxldGUubmV4dChldmVudCk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVDb21wbGV0ZSA9IChldmVudDogQWN0aW9uRXZlbnRDb21wbGV0ZWQpOiB2b2lkID0+IHtcclxuICAgIHRoaXMuX2RlbGV0ZUNvbXBsZXRlLm5leHQoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgZm9ybWF0RGVsZXRlQ29uZmlybWF0aW9uTWVzc2FnZSA9ICh0YWJsZU5hbWU6IHN0cmluZywgdGFibGVQbHVyYWxMYWJlbDogc3RyaW5nLCBjb3VudDogbnVtYmVyIHwgbnVsbCk6IHN0cmluZyA9PiB7XHJcbiAgICBpZiAoY291bnQgPT09IG51bGwpXHJcbiAgICAgIHJldHVybiAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzICcgKyB0YWJsZU5hbWUgKyAnPyc7XHJcbiAgICBpZiAoY291bnQgPT09IDEpXHJcbiAgICAgIHJldHVybiAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSAxICcgKyB0YWJsZU5hbWUgKyAnPyc7XHJcbiAgICByZXR1cm4gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgJyArIGNvdW50ICsgJyAnICsgdGFibGVQbHVyYWxMYWJlbCArICc/JztcclxuICB9XHJcbn1cclxuIl19
166
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWFwcC1lbnZpcm9ubWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvc2VydmljZXMvdHJ1LWFwcC1lbnZpcm9ubWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7OztBQVluRCxNQUFNLE9BQU8saUJBQWlCO0lBc0NSO0lBckNaLFFBQVEsQ0FBUztJQUNqQixlQUFlLENBQVM7SUFDeEIsT0FBTyxDQUFTO0lBQ2hCLHVCQUF1QixDQUFVO0lBQ2pDLG1CQUFtQixDQUFTO0lBQzVCLG1CQUFtQixDQUFTO0lBQzVCLGVBQWUsQ0FBUztJQUV4QixTQUFTLENBQW9CO0lBQzdCLGVBQWUsQ0FBUztJQUN4QixTQUFTLEdBQTZCLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQzFFLGFBQWEsR0FBaUQsSUFBSSxlQUFlLENBQThCLElBQUksQ0FBQyxDQUFDO0lBQ3JILGVBQWUsR0FBaUQsSUFBSSxlQUFlLENBQThCLElBQUksQ0FBQyxDQUFDO0lBQ3ZILGVBQWUsR0FBaUQsSUFBSSxlQUFlLENBQThCLElBQUksQ0FBQyxDQUFDO0lBQ3ZILGtCQUFrQixHQUEwQixJQUFJLENBQUM7SUFFaEQsbUJBQW1CLENBQVM7SUFDNUIsZ0NBQWdDLENBQVM7SUFDekMsbUJBQW1CLENBQVM7SUFDNUIsaUJBQWlCLENBQVM7SUFDMUIsa0JBQWtCLENBQVM7SUFDM0IsaUJBQWlCLENBQVM7SUFDMUIsY0FBYyxDQUFTO0lBQ3ZCLHdCQUF3QixDQUFTO0lBQ2pDLHdCQUF3QixDQUFTO0lBQ2pDLHFCQUFxQixDQUFTO0lBQzlCLG9DQUFvQyxDQUFTO0lBQzdDLGlCQUFpQixDQUFTO0lBQzFCLG9DQUFvQyxDQUFTO0lBQzdDLGdD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InNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBFbnRpdHkgfSBmcm9tIFwiYnJlZXplLWNsaWVudFwiO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBUcnVEYXRhQ29udGV4dCB9IGZyb20gXCIuL3RydS1kYXRhLWNvbnRleHRcIjtcclxuaW1wb3J0IHsgVHJ1VXNlciB9IGZyb20gXCIuL3RydS11c2VyXCI7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFjdGlvbkV2ZW50Q29tcGxldGVkIHtcclxuICBzdWNjZXNzZnVsOiBib29sZWFuO1xyXG4gIGVudGl0aWVzPzogQXJyYXk8RW50aXR5PjtcclxufVxyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRydUFwcEVudmlyb25tZW50IHtcclxuICBwcml2YXRlIF9hcHBOYW1lOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfYXBwRGVzY3JpcHRpb246IHN0cmluZztcclxuICBwcml2YXRlIF9hcHBVcmk6IHN0cmluZztcclxuICBwcml2YXRlIF9lbmFibGVQYXNzd29yZFN0cmVuZ3RoOiBib29sZWFuO1xyXG4gIHByaXZhdGUgX2JhY2tncm91bmRJbWFnZVVybDogc3RyaW5nO1xyXG4gIHByaXZhdGUgX2Vudmlyb25tZW50V2FybmluZzogc3RyaW5nO1xyXG4gIHByaXZhdGUgX2xvZ2luRm9ybVRpdGxlOiBzdHJpbmc7XHJcblxyXG4gIHByaXZhdGUgX2F1dGhUeXBlOiAnc2Vzc2lvbicgfCAnand0JztcclxuICBwcml2YXRlIF9tYXhSZWNvcmRDb3VudDogbnVtYmVyO1xyXG4gIHByaXZhdGUgX2lzU2F2aW5nOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcclxuICBwcml2YXRlIF9zYXZlQ29tcGxldGU6IEJlaGF2aW9yU3ViamVjdDxBY3Rpb25FdmVudENvbXBsZXRlZCB8IG51bGw+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBY3Rpb25FdmVudENvbXBsZXRlZCB8IG51bGw+KG51bGwpO1xyXG4gIHByaXZhdGUgX3JldmVydENvbXBsZXRlOiBCZWhhdmlvclN1YmplY3Q8QWN0aW9uRXZlbnRDb21wbGV0ZWQgfCBudWxsPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QWN0aW9uRXZlbnRDb21wbGV0ZWQgfCBudWxsPihudWxsKTtcclxuICBwcml2YXRlIF9kZWxldGVDb21wbGV0ZTogQmVoYXZpb3JTdWJqZWN0PEFjdGlvbkV2ZW50Q29tcGxldGVkIHwgbnVsbD4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEFjdGlvbkV2ZW50Q29tcGxldGVkIHwgbnVsbD4obnVsbCk7XHJcbiAgcHJpdmF0ZSBfZ2xvYmFsRGF0YUNvbnRleHQ6IFRydURhdGFDb250ZXh0IHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIHJlYWRvbmx5IG1zZ01vZGlmaWVyS2V5TGFiZWw6IHN0cmluZztcclxuICByZWFkb25seSBtc2dDb25maXJtRXhpdFdpdGhDaGFuZ2VzUGVuZGluZzogc3RyaW5nO1xyXG4gIHJlYWRvbmx5IG1zZ0RlbGV0ZVN1Y2Nlc3NmdWw6IHN0cmluZztcclxuICByZWFkb25seSBtc2dTYXZlU3VjY2Vzc2Z1bDogc3RyaW5nO1xyXG4gIHJlYWRvbmx5IG1zZ05vQ2hhbmdlc1RvU2F2ZTogc3RyaW5nO1xyXG4gIHJlYWRvbmx5IG1zZ1NhdmVJblByb2dyZXNzOiBzdHJpbmc7XHJcbiAgcmVhZG9ubHkgbXNnSW52YWxpZERhdGE6IHN0cmluZztcclxuICByZWFkb25seSBtc2dEaXJ0eVByZXZlbnRzUmVhZE9ubHk6IHN0cmluZztcclxuICByZWFkb25seSBtc2dEaXJ0eVByZXZlbnRzTmF2aWdhdGU6IHN0cmluZztcclxuICByZWFkb25seSBtc2dEaXJ0eVByZXZlbnRzQ2xvc2U6IHN0cmluZztcclxuICByZWFkb25seSBtc2dEaXJ0eVByZXZlbnRzRGVsZXRlRXhpc3RpbmdSZWNvcmQ6IHN0cmluZztcclxuICByZWFkb25seSBtc2dOb0RlbGV0ZUFjY2Vzczogc3RyaW5nO1xyXG4gIHJlYWRvbmx5IG1zZ0Nhbm5vdERlbGV0ZU5ld0FuZEV4aXN0aW5nUmVjb3Jkczogc3RyaW5nO1xyXG4gIHJlYWRvbmx5IG1zZ0RlbGV0ZVJlZmVyZW5jaW5nUmVjb3Jkc0ZpcnN0OiBzdHJpbmc7XHJcbiAgcmVhZG9ubHkgbXNnTm9SZWNvcmRzU2VsZWN0ZWQ6IHN0cmluZztcclxuXHJcbiAgcHVibGljIG9uU2F2aW5nQ2hhbmdlZCQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLl9pc1NhdmluZy5hc09ic2VydmFibGUoKTtcclxuICBwdWJsaWMgb25TYXZlQ29tcGxldGUkOiBPYnNlcnZhYmxlPEFjdGlvbkV2ZW50Q29tcGxldGVkIHwgbnVsbD4gPSB0aGlzLl9zYXZlQ29tcGxldGUuYXNPYnNlcnZhYmxlKCk7XHJcbiAgcHVibGljIG9uUmV2ZXJ0Q29tcGxldGUkOiBPYnNlcnZhYmxlPEFjdGlvbkV2ZW50Q29tcGxldGVkIHwgbnVsbD4gPSB0aGlzLl9yZXZlcnRDb21wbGV0ZS5hc09ic2VydmFibGUoKTtcclxuICBwdWJsaWMgb25EZWxldGVDb21wbGV0ZSQ6IE9ic2VydmFibGU8QWN0aW9uRXZlbnRDb21wbGV0ZWQgfCBudWxsPiA9IHRoaXMuX2RlbGV0ZUNvbXBsZXRlLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRydVVzZXI6IFRydVVzZXIpIHtcclxuICAgIHRoaXMuX2FwcE5hbWUgPSAnJztcclxuICAgIHRoaXMuX2FwcERlc2NyaXB0aW9uID0gJyc7XHJcbiAgICB0aGlzLl9hcHBVcmkgPSAnJztcclxuICAgIHRoaXMuX2VuYWJsZVBhc3N3b3JkU3RyZW5ndGggPSB0cnVlO1xyXG4gICAgdGhpcy5fYmFja2dyb3VuZEltYWdlVXJsID0gJyc7XHJcbiAgICB0aGlzLl9lbnZpcm9ubWVudFdhcm5pbmcgPSAnJztcclxuICAgIHRoaXMuX2xvZ2luRm9ybVRpdGxlID0gJyc7XHJcbiAgICB0aGlzLl9hdXRoVHlwZSA9ICdqd3QnO1xyXG4gICAgdGhpcy5fbWF4UmVjb3JkQ291bnQgPSAwO1xyXG4gICAgXHJcbiAgICB0aGlzLm1zZ01vZGlmaWVyS2V5TGFiZWwgPSB0aGlzLmlzTWFjID8gJ0NtZCcgOiAnQ3RybCc7XHJcbiAgICB0aGlzLm1zZ0NvbmZpcm1FeGl0V2l0aENoYW5nZXNQZW5kaW5nID0gJ1lvdSBoYXZlIHVuc2F2ZWQgY2hhbmdlcyB0aGF0IHdpbGwgYmUgbG9zdC4nO1xyXG4gICAgdGhpcy5tc2dEZWxldGVTdWNjZXNzZnVsID0gJ0RlbGV0ZSBzdWNjZWVkZWQnO1xyXG4gICAgdGhpcy5tc2dTYXZlU3VjY2Vzc2Z1bCA9ICdTYXZlIHN1Y2NlZWRlZCc7XHJcbiAgICB0aGlzLm1zZ05vQ2hhbmdlc1RvU2F2ZSA9ICdObyBjaGFuZ2VzIHRvIHNhdmUnO1xyXG4gICAgdGhpcy5tc2dTYXZlSW5Qcm9ncmVzcyA9ICdTYXZlIGluIHByb2dyZXNzJztcclxuICAgIHRoaXMubXNnSW52YWxpZERhdGEgPSAnSW52YWxpZCBkYXRhJztcclxuICAgIHRoaXMubXNnRGlydHlQcmV2ZW50c1JlYWRPbmx5ID0gJ1NhdmUgb3IgcmV2ZXJ0IGJlZm9yZSBkaXNhYmxpbmcgZWRpdGluZyc7XHJcbiAgICB0aGlzLm1zZ0RpcnR5UHJldmVudHNOYXZpZ2F0ZSA9ICdTYXZlIG9yIHJldmVydCBiZWZvcmUgbmF2aWdhdGluZyc7XHJcbiAgICB0aGlzLm1zZ0RpcnR5UHJldmVudHNDbG9zZSA9ICdTYXZlIG9yIHJldmVydCBiZWZvcmUgY2xvc2luZyB3aW5kb3cnO1xyXG4gICAgdGhpcy5tc2dEaXJ0eVByZXZlbnRzRGVsZXRlRXhpc3RpbmdSZWNvcmQgPSAnU2F2ZSBvciByZXZlcnQgYmVmb3JlIGRlbGV0aW5nJztcclxuICAgIHRoaXMubXNnTm9EZWxldGVBY2Nlc3MgPSAnQ29udGFjdCBhZG1pbmlzdHJhdG9yIGFib3V0IGRlbGV0ZSBhY2Nlc3MnO1xyXG4gICAgdGhpcy5tc2dDYW5ub3REZWxldGVOZXdBbmRFeGlzdGluZ1JlY29yZHMgPSAnRGVsZXRlIG5ldyBvciBleGlzdGluZyByZWNvcmRzIC0gYnV0IG5vdCBib3RoJztcclxuICAgIHRoaXMubXNnRGVsZXRlUmVmZXJlbmNpbmdSZWNvcmRzRmlyc3QgPSAnRGVsZXRlIGFsbCByZWZlcmVuY2luZyByZWNvcmRzIGZpcnN0JztcclxuICAgIHRoaXMubXNnTm9SZWNvcmRzU2VsZWN0ZWQgPSAnTm8gUmVjb3JkcyBzZWxlY3RlZCc7XHJcbiAgfVxyXG5cclxuICBnZXQgYXBwTmFtZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FwcE5hbWU7XHJcbiAgfVxyXG5cclxuICBzZXQgYXBwTmFtZShuYW1lOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX2FwcE5hbWUgPSBuYW1lO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGFwcERlc2NyaXB0aW9uKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fYXBwRGVzY3JpcHRpb247XHJcbiAgfTtcclxuXHJcbiAgc2V0IGFwcERlc2NyaXB0aW9uKGRlc2NyaXB0aW9uOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX2FwcERlc2NyaXB0aW9uID0gZGVzY3JpcHRpb247XHJcbiAgfVxyXG5cclxuICBnZXQgZW5hYmxlUGFzc3dvcmRTdHJlbmd0aCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9lbmFibGVQYXNzd29yZFN0cmVuZ3RoO1xyXG4gIH07XHJcblxyXG4gIHNldCBlbmFibGVQYXNzd29yZFN0cmVuZ3RoKGVuYWJsZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fZW5hYmxlUGFzc3dvcmRTdHJlbmd0aCA9IGVuYWJsZTtcclxuICB9XHJcblxyXG4gIGdldCBiYWNrZ3JvdW5kSW1hZ2VVcmwoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9iYWNrZ3JvdW5kSW1hZ2VVcmw7XHJcbiAgfTtcclxuXHJcbiAgc2V0IGJhY2tncm91bmRJbWFnZVVybChkZXNjcmlwdGlvbjogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9iYWNrZ3JvdW5kSW1hZ2VVcmwgPSBkZXNjcmlwdGlvbjtcclxuICB9XHJcblxyXG4gIGdldCBlbnZpcm9ubWVudFdhcm5pbmcoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9lbnZpcm9ubWVudFdhcm5pbmc7XHJcbiAgfTtcclxuXHJcbiAgc2V0IGVudmlyb25tZW50V2FybmluZyhkZXNjcmlwdGlvbjogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9lbnZpcm9ubWVudFdhcm5pbmcgPSBkZXNjcmlwdGlvbjtcclxuICB9XHJcblxyXG4gIGdldCBsb2dpbkZvcm1UaXRsZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2xvZ2luRm9ybVRpdGxlO1xyXG4gIH07XHJcblxyXG4gIHNldCBsb2dpbkZvcm1UaXRsZShkZXNjcmlwdGlvbjogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9sb2dpbkZvcm1UaXRsZSA9IGRlc2NyaXB0aW9uO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGFwcFVyaSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FwcFVyaTtcclxuICB9XHJcblxyXG4gIHNldCBhcHBVcmkodXJpOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX2FwcFVyaSA9IHVyaTtcclxuICB9XHJcblxyXG4gIGdldCBhdXRoVHlwZSgpOiAnc2Vzc2lvbicgfCAnand0JyB7XHJcbiAgICByZXR1cm4gdGhpcy5fYXV0aFR5cGU7XHJcbiAgfVxyXG5cclxuICBzZXQgYXV0aFR5cGUodHlwZTogJ3Nlc3Npb24nIHwgJ2p3dCcpIHtcclxuICAgIHRoaXMuX2F1dGhUeXBlID0gdHlwZTtcclxuICB9XHJcblxyXG4gIGdldCBpc1NhdmluZygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9pc1NhdmluZy5nZXRWYWx1ZSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0IGlzU2F2aW5nKGlzU2F2aW5nOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9pc1NhdmluZy5uZXh0KGlzU2F2aW5nKTtcclxuICB9XHJcblxyXG4gIGdldCBtYXhSZWNvcmRDb3VudCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX21heFJlY29yZENvdW50O1xyXG4gIH1cclxuXHJcbiAgc2V0IG1heFJlY29yZENvdW50KG1heFJlY29yZENvdW50OiBudW1iZXIpIHtcclxuICAgIHRoaXMuX21heFJlY29yZENvdW50ID0gbWF4UmVjb3JkQ291bnQ7XHJcbiAgfVxyXG5cclxuICBnZXQgZ2xvYmFsRGF0YUNvbnRleHQoKTogVHJ1RGF0YUNvbnRleHQgfCBudWxsIHtcclxuICAgIHJldHVybiB0aGlzLl9nbG9iYWxEYXRhQ29udGV4dDtcclxuICB9XHJcblxyXG4gIHNldCBnbG9iYWxEYXRhQ29udGV4dChjb250ZXh0OiBUcnVEYXRhQ29udGV4dCB8IG51bGwpIHtcclxuICAgIHRoaXMuX2dsb2JhbERhdGFDb250ZXh0ID0gY29udGV4dCA7XHJcbiAgfVxyXG5cclxuICBnZXQgaXNNYWMoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gbmF2aWdhdG9yLnBsYXRmb3JtLnRvVXBwZXJDYXNlKCkuaW5kZXhPZignTUFDJykgPj0gMDtcclxuICB9XHJcblxyXG4gIHNhdmVDb21wbGV0ZSA9IChldmVudDogQWN0aW9uRXZlbnRDb21wbGV0ZWQpOiB2b2lkID0+IHtcclxuICAgIHRoaXMuX3NhdmVDb21wbGV0ZS5uZXh0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIHJldmVydENvbXBsZXRlID0gKGV2ZW50OiBBY3Rpb25FdmVudENvbXBsZXRlZCk6IHZvaWQgPT4ge1xyXG4gICAgdGhpcy5fcmV2ZXJ0Q29tcGxldGUubmV4dChldmVudCk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVDb21wbGV0ZSA9IChldmVudDogQWN0aW9uRXZlbnRDb21wbGV0ZWQpOiB2b2lkID0+IHtcclxuICAgIHRoaXMuX2RlbGV0ZUNvbXBsZXRlLm5leHQoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgZm9ybWF0RGVsZXRlQ29uZmlybWF0aW9uTWVzc2FnZSA9ICh0YWJsZU5hbWU6IHN0cmluZywgdGFibGVQbHVyYWxMYWJlbDogc3RyaW5nLCBjb3VudDogbnVtYmVyIHwgbnVsbCk6IHN0cmluZyA9PiB7XHJcbiAgICBpZiAoY291bnQgPT09IG51bGwpXHJcbiAgICAgIHJldHVybiAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzICcgKyB0YWJsZU5hbWUgKyAnPyc7XHJcbiAgICBpZiAoY291bnQgPT09IDEpXHJcbiAgICAgIHJldHVybiAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSAxICcgKyB0YWJsZU5hbWUgKyAnPyc7XHJcbiAgICByZXR1cm4gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgJyArIGNvdW50ICsgJyAnICsgdGFibGVQbHVyYWxMYWJlbCArICc/JztcclxuICB9XHJcbn1cclxuIl19