@meshmakers/shared-ui 0.0.2304-15002 → 0.0.2304-26001

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/README.md +4 -7
  2. package/esm2020/lib/confirmation-dialog/confirmation-dialog.module.mjs +4 -4
  3. package/esm2020/lib/confirmation-dialog/confirmation-window/confirmation-window.component.mjs +8 -4
  4. package/esm2020/lib/confirmation-dialog/services/confirmation.service.mjs +7 -7
  5. package/esm2020/lib/ia-shared-ui/ia-autocomplete-input/ia-autocomplete-input.mjs +32 -19
  6. package/esm2020/lib/ia-shared-ui/ia-entity-select-input/ia-entity-select-input.component.mjs +30 -18
  7. package/esm2020/lib/ia-shared-ui/ia-multiple-entity-select-input/ia-multiple-entity-select-input.component.mjs +39 -24
  8. package/esm2020/lib/ia-shared-ui/ia-notification-bar/ia-notification-bar.component.mjs +5 -4
  9. package/esm2020/lib/ia-shared-ui/ia-shared-ui.module.mjs +4 -4
  10. package/esm2020/lib/ia-shared-ui/message-details/message-details.component.mjs +3 -3
  11. package/esm2020/lib/progress-notifier/progress-notifier.module.mjs +4 -4
  12. package/esm2020/lib/progress-notifier/progress-window/progress-window.component.mjs +5 -4
  13. package/esm2020/lib/progress-notifier/services/progress-notifier.service.mjs +7 -6
  14. package/esm2020/lib/progress-notifier/shared/progressValue.mjs +5 -1
  15. package/esm2020/lib/shared/abstractDetailsComponent.mjs +9 -8
  16. package/esm2020/lib/shared/commonValidators.mjs +10 -3
  17. package/fesm2015/meshmakers-shared-ui.mjs +169 -101
  18. package/fesm2015/meshmakers-shared-ui.mjs.map +1 -1
  19. package/fesm2020/meshmakers-shared-ui.mjs +155 -100
  20. package/fesm2020/meshmakers-shared-ui.mjs.map +1 -1
  21. package/lib/confirmation-dialog/confirmation-window/confirmation-window.component.d.ts +4 -4
  22. package/lib/confirmation-dialog/services/confirmation.service.d.ts +1 -1
  23. package/lib/ia-shared-ui/ia-autocomplete-input/ia-autocomplete-input.d.ts +3 -3
  24. package/lib/ia-shared-ui/ia-entity-select-input/ia-entity-select-input.component.d.ts +4 -4
  25. package/lib/ia-shared-ui/ia-multiple-entity-select-input/ia-multiple-entity-select-input.component.d.ts +6 -6
  26. package/lib/ia-shared-ui/ia-notification-bar/ia-notification-bar.component.d.ts +1 -1
  27. package/lib/progress-notifier/progress-window/progress-window.component.d.ts +1 -1
  28. package/lib/progress-notifier/shared/progressValue.d.ts +2 -1
  29. package/lib/shared/abstractDetailsComponent.d.ts +3 -3
  30. package/lib/shared/commonValidators.d.ts +1 -0
  31. package/package.json +8 -4
@@ -18,8 +18,8 @@ import { MatIconModule } from "@angular/material/icon";
18
18
  import * as i0 from "@angular/core";
19
19
  export class IaSharedUIModule {
20
20
  }
21
- IaSharedUIModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: IaSharedUIModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
22
- IaSharedUIModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.3", ngImport: i0, type: IaSharedUIModule, declarations: [IaNotificationBarComponent,
21
+ IaSharedUIModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: IaSharedUIModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
22
+ IaSharedUIModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.8", ngImport: i0, type: IaSharedUIModule, declarations: [IaNotificationBarComponent,
23
23
  MessageDetailsComponent,
24
24
  IaAutocompleteInput,
25
25
  IaEntitySelectInput,
@@ -37,7 +37,7 @@ IaSharedUIModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", versio
37
37
  IaAutocompleteInput,
38
38
  IaEntitySelectInput,
39
39
  IaMultipleEntitySelectInput] });
40
- IaSharedUIModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: IaSharedUIModule, imports: [CommonModule,
40
+ IaSharedUIModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: IaSharedUIModule, imports: [CommonModule,
41
41
  MatToolbarModule,
42
42
  MatButtonModule,
43
43
  MatSnackBarModule,
@@ -48,7 +48,7 @@ IaSharedUIModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", versio
48
48
  MatChipsModule,
49
49
  MatIconModule,
50
50
  ReactiveFormsModule] });
51
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: IaSharedUIModule, decorators: [{
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: IaSharedUIModule, decorators: [{
52
52
  type: NgModule,
53
53
  args: [{
54
54
  declarations: [
@@ -12,9 +12,9 @@ export class MessageDetailsComponent {
12
12
  ngOnInit() {
13
13
  }
14
14
  }
15
- MessageDetailsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: MessageDetailsComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
16
- MessageDetailsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.3", type: MessageDetailsComponent, selector: "app-message-details", ngImport: i0, template: "<mat-dialog-content>\n\n <h2>{{errorMessage.title}}</h2>\n <p>{{errorMessage.message}}</p>\n\n\n</mat-dialog-content>\n<mat-dialog-actions align=\"end\">\n <button color=\"primary\" mat-dialog-close mat-raised-button>OK</button>\n</mat-dialog-actions>\n", styles: [""], dependencies: [{ kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }] });
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: MessageDetailsComponent, decorators: [{
15
+ MessageDetailsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: MessageDetailsComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
16
+ MessageDetailsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: MessageDetailsComponent, selector: "app-message-details", ngImport: i0, template: "<mat-dialog-content>\n\n <h2>{{errorMessage.title}}</h2>\n <p>{{errorMessage.message}}</p>\n\n\n</mat-dialog-content>\n<mat-dialog-actions align=\"end\">\n <button color=\"primary\" mat-dialog-close mat-raised-button>OK</button>\n</mat-dialog-actions>\n", styles: [""], dependencies: [{ kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }] });
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: MessageDetailsComponent, decorators: [{
18
18
  type: Component,
19
19
  args: [{ selector: 'app-message-details', template: "<mat-dialog-content>\n\n <h2>{{errorMessage.title}}</h2>\n <p>{{errorMessage.message}}</p>\n\n\n</mat-dialog-content>\n<mat-dialog-actions align=\"end\">\n <button color=\"primary\" mat-dialog-close mat-raised-button>OK</button>\n</mat-dialog-actions>\n" }]
20
20
  }], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
@@ -17,18 +17,18 @@ export class ProgressNotifierModule {
17
17
  };
18
18
  }
19
19
  }
20
- ProgressNotifierModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: ProgressNotifierModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
21
- ProgressNotifierModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.3", ngImport: i0, type: ProgressNotifierModule, declarations: [ProgressWindowComponent], imports: [CommonModule,
20
+ ProgressNotifierModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ProgressNotifierModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
21
+ ProgressNotifierModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.8", ngImport: i0, type: ProgressNotifierModule, declarations: [ProgressWindowComponent], imports: [CommonModule,
22
22
  MatDialogModule,
23
23
  FlexLayoutModule,
24
24
  MatButtonModule,
25
25
  MatProgressBarModule] });
26
- ProgressNotifierModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: ProgressNotifierModule, imports: [CommonModule,
26
+ ProgressNotifierModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ProgressNotifierModule, imports: [CommonModule,
27
27
  MatDialogModule,
28
28
  FlexLayoutModule,
29
29
  MatButtonModule,
30
30
  MatProgressBarModule] });
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: ProgressNotifierModule, decorators: [{
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ProgressNotifierModule, decorators: [{
32
32
  type: NgModule,
33
33
  args: [{
34
34
  declarations: [ProgressWindowComponent],
@@ -10,6 +10,7 @@ export class ProgressWindowComponent {
10
10
  constructor(data) {
11
11
  this.data = data;
12
12
  this.statusText = null;
13
+ this.progressValue = 0;
13
14
  data.progress.subscribe(value => {
14
15
  this.statusText = value.statusText;
15
16
  this.progressValue = value.progressValue;
@@ -21,13 +22,13 @@ export class ProgressWindowComponent {
21
22
  this.data.cancelOperation();
22
23
  }
23
24
  }
24
- ProgressWindowComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: ProgressWindowComponent, deps: [{ token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
25
- ProgressWindowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.3", type: ProgressWindowComponent, selector: "lib-progress-window", ngImport: i0, template: "<h1 mat-dialog-title>{{data.title}}</h1>\n<div mat-dialog-content>\n <div fxLayout=\"column\">\n <mat-progress-bar *ngIf=\"data.isDeterminate\" [value]=\"progressValue\" mode=\"determinate\"></mat-progress-bar>\n <mat-progress-bar *ngIf=\"!data.isDeterminate\" mode=\"indeterminate\"></mat-progress-bar>\n <p>{{statusText}}</p>\n </div>\n</div>\n<div fxLayoutAlign=\"end\" mat-dialog-actions>\n <button (click)=\"onCancelClick()\" *ngIf=\"data.isCancelOperationAvailable\" mat-button>Cancel</button>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i3.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i3.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }] });
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: ProgressWindowComponent, decorators: [{
25
+ ProgressWindowComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ProgressWindowComponent, deps: [{ token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
26
+ ProgressWindowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: ProgressWindowComponent, selector: "lib-progress-window", ngImport: i0, template: "<h1 mat-dialog-title>{{data.title}}</h1>\n<div mat-dialog-content>\n <div fxLayout=\"column\">\n <mat-progress-bar *ngIf=\"data.isDeterminate\" [value]=\"progressValue\" mode=\"determinate\"></mat-progress-bar>\n <mat-progress-bar *ngIf=\"!data.isDeterminate\" mode=\"indeterminate\"></mat-progress-bar>\n <p>{{statusText}}</p>\n </div>\n</div>\n<div fxLayoutAlign=\"end\" mat-dialog-actions>\n <button (click)=\"onCancelClick()\" *ngIf=\"data.isCancelOperationAvailable\" mat-button>Cancel</button>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i3.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i3.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }] });
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ProgressWindowComponent, decorators: [{
27
28
  type: Component,
28
29
  args: [{ selector: 'lib-progress-window', template: "<h1 mat-dialog-title>{{data.title}}</h1>\n<div mat-dialog-content>\n <div fxLayout=\"column\">\n <mat-progress-bar *ngIf=\"data.isDeterminate\" [value]=\"progressValue\" mode=\"determinate\"></mat-progress-bar>\n <mat-progress-bar *ngIf=\"!data.isDeterminate\" mode=\"indeterminate\"></mat-progress-bar>\n <p>{{statusText}}</p>\n </div>\n</div>\n<div fxLayoutAlign=\"end\" mat-dialog-actions>\n <button (click)=\"onCancelClick()\" *ngIf=\"data.isCancelOperationAvailable\" mat-button>Cancel</button>\n</div>\n" }]
29
30
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
30
31
  type: Inject,
31
32
  args: [MAT_DIALOG_DATA]
32
33
  }] }]; } });
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3Mtd2luZG93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lc2htYWtlcnMvc2hhcmVkLXVpL3NyYy9saWIvcHJvZ3Jlc3Mtbm90aWZpZXIvcHJvZ3Jlc3Mtd2luZG93L3Byb2dyZXNzLXdpbmRvdy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZXNobWFrZXJzL3NoYXJlZC11aS9zcmMvbGliL3Byb2dyZXNzLW5vdGlmaWVyL3Byb2dyZXNzLXdpbmRvdy9wcm9ncmVzcy13aW5kb3cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxNQUFNLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFDeEQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7O0FBb0J6RCxNQUFNLE9BQU8sdUJBQXVCO0lBS2xDLFlBQTRDLElBQXdCO1FBQXhCLFNBQUksR0FBSixJQUFJLENBQW9CO1FBRWxFLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBRXZCLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzlCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQztZQUNuQyxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUM7UUFDM0MsQ0FBQyxDQUFDLENBQUE7SUFFSixDQUFDO0lBRUQsUUFBUTtJQUNSLENBQUM7SUFFRCxhQUFhO1FBRVgsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUU5QixDQUFDOztvSEF2QlUsdUJBQXVCLGtCQUtkLGVBQWU7d0dBTHhCLHVCQUF1QiwyRENyQnBDLDJnQkFXQTsyRkRVYSx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0UscUJBQXFCOzswQkFTbEIsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEluamVjdCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TUFUX0RJQUxPR19EQVRBfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nXCI7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQge1Byb2dyZXNzVmFsdWV9IGZyb20gXCIuLi9zaGFyZWQvcHJvZ3Jlc3NWYWx1ZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFByb2dyZXNzV2luZG93RGF0YSB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGlzRGV0ZXJtaW5hdGU6IGJvb2xlYW47XG4gIHByb2dyZXNzOiBPYnNlcnZhYmxlPFByb2dyZXNzVmFsdWU+O1xuICBpc0NhbmNlbE9wZXJhdGlvbkF2YWlsYWJsZTogYm9vbGVhbjtcbiAgY2FuY2VsT3BlcmF0aW9uOiAoKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb2dyZXNzV2luZG93UmVzdWx0IHtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLXByb2dyZXNzLXdpbmRvdycsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9ncmVzcy13aW5kb3cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wcm9ncmVzcy13aW5kb3cuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIFByb2dyZXNzV2luZG93Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBwdWJsaWMgc3RhdHVzVGV4dDogc3RyaW5nO1xuICBwdWJsaWMgcHJvZ3Jlc3NWYWx1ZTogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogUHJvZ3Jlc3NXaW5kb3dEYXRhKSB7XG5cbiAgICB0aGlzLnN0YXR1c1RleHQgPSBudWxsO1xuXG4gICAgZGF0YS5wcm9ncmVzcy5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgICAgdGhpcy5zdGF0dXNUZXh0ID0gdmFsdWUuc3RhdHVzVGV4dDtcbiAgICAgIHRoaXMucHJvZ3Jlc3NWYWx1ZSA9IHZhbHVlLnByb2dyZXNzVmFsdWU7XG4gICAgfSlcblxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gIH1cblxuICBvbkNhbmNlbENsaWNrKCkge1xuXG4gICAgdGhpcy5kYXRhLmNhbmNlbE9wZXJhdGlvbigpO1xuXG4gIH1cbn1cbiIsIjxoMSBtYXQtZGlhbG9nLXRpdGxlPnt7ZGF0YS50aXRsZX19PC9oMT5cbjxkaXYgbWF0LWRpYWxvZy1jb250ZW50PlxuICA8ZGl2IGZ4TGF5b3V0PVwiY29sdW1uXCI+XG4gICAgPG1hdC1wcm9ncmVzcy1iYXIgKm5nSWY9XCJkYXRhLmlzRGV0ZXJtaW5hdGVcIiBbdmFsdWVdPVwicHJvZ3Jlc3NWYWx1ZVwiIG1vZGU9XCJkZXRlcm1pbmF0ZVwiPjwvbWF0LXByb2dyZXNzLWJhcj5cbiAgICA8bWF0LXByb2dyZXNzLWJhciAqbmdJZj1cIiFkYXRhLmlzRGV0ZXJtaW5hdGVcIiBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiPjwvbWF0LXByb2dyZXNzLWJhcj5cbiAgICA8cD57e3N0YXR1c1RleHR9fTwvcD5cbiAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgZnhMYXlvdXRBbGlnbj1cImVuZFwiIG1hdC1kaWFsb2ctYWN0aW9ucz5cbiAgPGJ1dHRvbiAoY2xpY2spPVwib25DYW5jZWxDbGljaygpXCIgKm5nSWY9XCJkYXRhLmlzQ2FuY2VsT3BlcmF0aW9uQXZhaWxhYmxlXCIgbWF0LWJ1dHRvbj5DYW5jZWw8L2J1dHRvbj5cbjwvZGl2PlxuIl19
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3Mtd2luZG93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lc2htYWtlcnMvc2hhcmVkLXVpL3NyYy9saWIvcHJvZ3Jlc3Mtbm90aWZpZXIvcHJvZ3Jlc3Mtd2luZG93L3Byb2dyZXNzLXdpbmRvdy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZXNobWFrZXJzL3NoYXJlZC11aS9zcmMvbGliL3Byb2dyZXNzLW5vdGlmaWVyL3Byb2dyZXNzLXdpbmRvdy9wcm9ncmVzcy13aW5kb3cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxNQUFNLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFDeEQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7O0FBb0J6RCxNQUFNLE9BQU8sdUJBQXVCO0lBS2xDLFlBQTRDLElBQXdCO1FBQXhCLFNBQUksR0FBSixJQUFJLENBQW9CO1FBRWxFLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDO1FBRXZCLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzlCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQztZQUNuQyxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUM7UUFDM0MsQ0FBQyxDQUFDLENBQUE7SUFFSixDQUFDO0lBRUQsUUFBUTtJQUNSLENBQUM7SUFFRCxhQUFhO1FBRVgsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUU5QixDQUFDOztvSEF4QlUsdUJBQXVCLGtCQUtkLGVBQWU7d0dBTHhCLHVCQUF1QiwyRENyQnBDLDJnQkFXQTsyRkRVYSx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0UscUJBQXFCOzswQkFTbEIsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEluamVjdCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TUFUX0RJQUxPR19EQVRBfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nXCI7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQge1Byb2dyZXNzVmFsdWV9IGZyb20gXCIuLi9zaGFyZWQvcHJvZ3Jlc3NWYWx1ZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFByb2dyZXNzV2luZG93RGF0YSB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGlzRGV0ZXJtaW5hdGU6IGJvb2xlYW47XG4gIHByb2dyZXNzOiBPYnNlcnZhYmxlPFByb2dyZXNzVmFsdWU+O1xuICBpc0NhbmNlbE9wZXJhdGlvbkF2YWlsYWJsZTogYm9vbGVhbjtcbiAgY2FuY2VsT3BlcmF0aW9uOiAoKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb2dyZXNzV2luZG93UmVzdWx0IHtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLXByb2dyZXNzLXdpbmRvdycsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9ncmVzcy13aW5kb3cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wcm9ncmVzcy13aW5kb3cuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIFByb2dyZXNzV2luZG93Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBwdWJsaWMgc3RhdHVzVGV4dDogc3RyaW5nIHwgbnVsbDtcbiAgcHVibGljIHByb2dyZXNzVmFsdWU6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IFByb2dyZXNzV2luZG93RGF0YSkge1xuXG4gICAgdGhpcy5zdGF0dXNUZXh0ID0gbnVsbDtcbiAgICB0aGlzLnByb2dyZXNzVmFsdWUgPSAwO1xuXG4gICAgZGF0YS5wcm9ncmVzcy5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgICAgdGhpcy5zdGF0dXNUZXh0ID0gdmFsdWUuc3RhdHVzVGV4dDtcbiAgICAgIHRoaXMucHJvZ3Jlc3NWYWx1ZSA9IHZhbHVlLnByb2dyZXNzVmFsdWU7XG4gICAgfSlcblxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gIH1cblxuICBvbkNhbmNlbENsaWNrKCkge1xuXG4gICAgdGhpcy5kYXRhLmNhbmNlbE9wZXJhdGlvbigpO1xuXG4gIH1cbn1cbiIsIjxoMSBtYXQtZGlhbG9nLXRpdGxlPnt7ZGF0YS50aXRsZX19PC9oMT5cbjxkaXYgbWF0LWRpYWxvZy1jb250ZW50PlxuICA8ZGl2IGZ4TGF5b3V0PVwiY29sdW1uXCI+XG4gICAgPG1hdC1wcm9ncmVzcy1iYXIgKm5nSWY9XCJkYXRhLmlzRGV0ZXJtaW5hdGVcIiBbdmFsdWVdPVwicHJvZ3Jlc3NWYWx1ZVwiIG1vZGU9XCJkZXRlcm1pbmF0ZVwiPjwvbWF0LXByb2dyZXNzLWJhcj5cbiAgICA8bWF0LXByb2dyZXNzLWJhciAqbmdJZj1cIiFkYXRhLmlzRGV0ZXJtaW5hdGVcIiBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiPjwvbWF0LXByb2dyZXNzLWJhcj5cbiAgICA8cD57e3N0YXR1c1RleHR9fTwvcD5cbiAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgZnhMYXlvdXRBbGlnbj1cImVuZFwiIG1hdC1kaWFsb2ctYWN0aW9ucz5cbiAgPGJ1dHRvbiAoY2xpY2spPVwib25DYW5jZWxDbGljaygpXCIgKm5nSWY9XCJkYXRhLmlzQ2FuY2VsT3BlcmF0aW9uQXZhaWxhYmxlXCIgbWF0LWJ1dHRvbj5DYW5jZWw8L2J1dHRvbj5cbjwvZGl2PlxuIl19
@@ -7,7 +7,8 @@ export class ProgressNotifierService {
7
7
  constructor(dialog) {
8
8
  this.dialog = dialog;
9
9
  this._currentProgressValue = new BehaviorSubject(null);
10
- this.isCanceled = false;
10
+ this.currentDialogRef = null;
11
+ this._isCanceled = false;
11
12
  }
12
13
  get isCanceled() {
13
14
  return this._isCanceled;
@@ -47,12 +48,12 @@ export class ProgressNotifierService {
47
48
  });
48
49
  }
49
50
  complete() {
50
- this.currentDialogRef.close();
51
+ this.currentDialogRef?.close();
51
52
  }
52
53
  }
53
- ProgressNotifierService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: ProgressNotifierService, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Injectable });
54
- ProgressNotifierService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: ProgressNotifierService });
55
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: ProgressNotifierService, decorators: [{
54
+ ProgressNotifierService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ProgressNotifierService, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Injectable });
55
+ ProgressNotifierService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ProgressNotifierService });
56
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ProgressNotifierService, decorators: [{
56
57
  type: Injectable
57
58
  }], ctorParameters: function () { return [{ type: i1.MatDialog }]; } });
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3Mtbm90aWZpZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lc2htYWtlcnMvc2hhcmVkLXVpL3NyYy9saWIvcHJvZ3Jlc3Mtbm90aWZpZXIvc2VydmljZXMvcHJvZ3Jlc3Mtbm90aWZpZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFHckMsT0FBTyxFQUNMLHVCQUF1QixFQUd4QixNQUFNLDhDQUE4QyxDQUFDOzs7QUFHdEQsTUFBTSxPQUFPLHVCQUF1QjtJQUtsQyxZQUFvQixNQUFpQjtRQUFqQixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ25DLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLGVBQWUsQ0FBZ0IsSUFBSSxDQUFDLENBQUM7UUFDdEUsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDMUIsQ0FBQztJQUlELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSxVQUFVLENBQUMsS0FBSztRQUNsQixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztJQUMzQixDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQWEsRUFBRSxhQUFzQixFQUFFLDBCQUFtQztRQUU5RSxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUN4QixJQUFJLENBQUMseUJBQXlCLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUVyRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQW9FLHVCQUF1QixFQUFFO1lBQ25JLEtBQUssRUFBRSxNQUFNO1lBQ2IsUUFBUSxFQUFFLE1BQU07WUFDaEIsSUFBSSxFQUFzQjtnQkFDeEIsS0FBSyxFQUFFLEtBQUs7Z0JBQ1osYUFBYSxFQUFFLGFBQWE7Z0JBQzVCLFFBQVEsRUFBRSxJQUFJLENBQUMscUJBQXFCLENBQUMsWUFBWSxFQUFFO2dCQUNuRCwwQkFBMEIsRUFBRSwwQkFBMEI7Z0JBQ3RELGVBQWUsRUFBRSxHQUFHLEVBQUU7b0JBQ3BCLElBQUksQ0FBQywyQkFBMkIsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO29CQUMzRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztnQkFDekIsQ0FBQzthQUNGO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELHlCQUF5QixDQUFDLGVBQXVCLEVBQUUsV0FBbUIsRUFBRSxVQUFrQjtRQUV4RixNQUFNLGtCQUFrQixHQUFHLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQyxHQUFHLGVBQWUsQ0FBQztRQUVqRSxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFnQjtZQUM3QyxVQUFVLEVBQUUsVUFBVTtZQUN0QixhQUFhLEVBQUUsa0JBQWtCO1NBQ2xDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCwyQkFBMkIsQ0FBQyxVQUFrQjtRQUM1QyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFnQjtZQUM3QyxVQUFVLEVBQUUsVUFBVTtZQUN0QixhQUFhLEVBQUUsQ0FBQztTQUNqQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNoQyxDQUFDOztvSEE1RFUsdUJBQXVCO3dIQUF2Qix1QkFBdUI7MkZBQXZCLHVCQUF1QjtrQkFEbkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7UHJvZ3Jlc3NWYWx1ZX0gZnJvbSBcIi4uL3NoYXJlZC9wcm9ncmVzc1ZhbHVlXCI7XG5pbXBvcnQge01hdERpYWxvZywgTWF0RGlhbG9nUmVmfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nXCI7XG5pbXBvcnQge1xuICBQcm9ncmVzc1dpbmRvd0NvbXBvbmVudCxcbiAgUHJvZ3Jlc3NXaW5kb3dEYXRhLFxuICBQcm9ncmVzc1dpbmRvd1Jlc3VsdFxufSBmcm9tIFwiLi4vcHJvZ3Jlc3Mtd2luZG93L3Byb2dyZXNzLXdpbmRvdy5jb21wb25lbnRcIjtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFByb2dyZXNzTm90aWZpZXJTZXJ2aWNlIHtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9jdXJyZW50UHJvZ3Jlc3NWYWx1ZTogQmVoYXZpb3JTdWJqZWN0PFByb2dyZXNzVmFsdWU+O1xuICBwcml2YXRlIGN1cnJlbnREaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxQcm9ncmVzc1dpbmRvd0NvbXBvbmVudCwgUHJvZ3Jlc3NXaW5kb3dSZXN1bHQ+O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2cpIHtcbiAgICB0aGlzLl9jdXJyZW50UHJvZ3Jlc3NWYWx1ZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UHJvZ3Jlc3NWYWx1ZT4obnVsbCk7XG4gICAgdGhpcy5pc0NhbmNlbGVkID0gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIF9pc0NhbmNlbGVkOiBib29sZWFuO1xuXG4gIGdldCBpc0NhbmNlbGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9pc0NhbmNlbGVkO1xuICB9XG5cbiAgc2V0IGlzQ2FuY2VsZWQodmFsdWUpIHtcbiAgICB0aGlzLl9pc0NhbmNlbGVkID0gdmFsdWU7XG4gIH1cblxuICBzdGFydCh0aXRsZTogc3RyaW5nLCBpc0RldGVybWluYXRlOiBib29sZWFuLCBpc0NhbmNlbE9wZXJhdGlvbkF2YWlsYWJsZTogYm9vbGVhbikge1xuXG4gICAgdGhpcy5pc0NhbmNlbGVkID0gZmFsc2U7XG4gICAgdGhpcy5yZXBvcnRQcm9ncmVzc0RldGVybWluYXRlKDAsIDEwMCwgXCJXb3JraW5nLi4uXCIpO1xuXG4gICAgdGhpcy5jdXJyZW50RGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbjxQcm9ncmVzc1dpbmRvd0NvbXBvbmVudCwgUHJvZ3Jlc3NXaW5kb3dEYXRhLCBQcm9ncmVzc1dpbmRvd1Jlc3VsdD4oUHJvZ3Jlc3NXaW5kb3dDb21wb25lbnQsIHtcbiAgICAgIHdpZHRoOiAnNTB2dycsXG4gICAgICBtYXhXaWR0aDogJzUwdncnLFxuICAgICAgZGF0YTogPFByb2dyZXNzV2luZG93RGF0YT57XG4gICAgICAgIHRpdGxlOiB0aXRsZSxcbiAgICAgICAgaXNEZXRlcm1pbmF0ZTogaXNEZXRlcm1pbmF0ZSxcbiAgICAgICAgcHJvZ3Jlc3M6IHRoaXMuX2N1cnJlbnRQcm9ncmVzc1ZhbHVlLmFzT2JzZXJ2YWJsZSgpLFxuICAgICAgICBpc0NhbmNlbE9wZXJhdGlvbkF2YWlsYWJsZTogaXNDYW5jZWxPcGVyYXRpb25BdmFpbGFibGUsXG4gICAgICAgIGNhbmNlbE9wZXJhdGlvbjogKCkgPT4ge1xuICAgICAgICAgIHRoaXMucmVwb3J0UHJvZ3Jlc3NJbmRldGVybWluYXRlKFwiQ2FuY2VsaW5nIG9wZXJhdGlvbi4uLlwiKTtcbiAgICAgICAgICB0aGlzLmlzQ2FuY2VsZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICByZXBvcnRQcm9ncmVzc0RldGVybWluYXRlKHByb2dyZXNzQ3VycmVudDogbnVtYmVyLCBwcm9ncmVzc01heDogbnVtYmVyLCBzdGF0dXNUZXh0OiBzdHJpbmcpIHtcblxuICAgIGNvbnN0IHByb2dyZXNzUGVyY2VudGFnZSA9IChwcm9ncmVzc01heCAvIDEwMCkgKiBwcm9ncmVzc0N1cnJlbnQ7XG5cbiAgICB0aGlzLl9jdXJyZW50UHJvZ3Jlc3NWYWx1ZS5uZXh0KDxQcm9ncmVzc1ZhbHVlPntcbiAgICAgIHN0YXR1c1RleHQ6IHN0YXR1c1RleHQsXG4gICAgICBwcm9ncmVzc1ZhbHVlOiBwcm9ncmVzc1BlcmNlbnRhZ2VcbiAgICB9KTtcbiAgfVxuXG4gIHJlcG9ydFByb2dyZXNzSW5kZXRlcm1pbmF0ZShzdGF0dXNUZXh0OiBzdHJpbmcpIHtcbiAgICB0aGlzLl9jdXJyZW50UHJvZ3Jlc3NWYWx1ZS5uZXh0KDxQcm9ncmVzc1ZhbHVlPntcbiAgICAgIHN0YXR1c1RleHQ6IHN0YXR1c1RleHQsXG4gICAgICBwcm9ncmVzc1ZhbHVlOiAwXG4gICAgfSk7XG4gIH1cblxuICBjb21wbGV0ZSgpIHtcbiAgICB0aGlzLmN1cnJlbnREaWFsb2dSZWYuY2xvc2UoKTtcbiAgfVxufVxuIl19
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3Mtbm90aWZpZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lc2htYWtlcnMvc2hhcmVkLXVpL3NyYy9saWIvcHJvZ3Jlc3Mtbm90aWZpZXIvc2VydmljZXMvcHJvZ3Jlc3Mtbm90aWZpZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFHckMsT0FBTyxFQUNMLHVCQUF1QixFQUd4QixNQUFNLDhDQUE4QyxDQUFDOzs7QUFHdEQsTUFBTSxPQUFPLHVCQUF1QjtJQUtsQyxZQUFvQixNQUFpQjtRQUFqQixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ25DLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLGVBQWUsQ0FBdUIsSUFBSSxDQUFDLENBQUM7UUFDN0UsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztRQUM3QixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztJQUMzQixDQUFDO0lBSUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLFVBQVUsQ0FBQyxLQUFLO1FBQ2xCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQzNCLENBQUM7SUFFRCxLQUFLLENBQUMsS0FBYSxFQUFFLGFBQXNCLEVBQUUsMEJBQW1DO1FBRTlFLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBRXJELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBb0UsdUJBQXVCLEVBQUU7WUFDbkksS0FBSyxFQUFFLE1BQU07WUFDYixRQUFRLEVBQUUsTUFBTTtZQUNoQixJQUFJLEVBQXNCO2dCQUN4QixLQUFLLEVBQUUsS0FBSztnQkFDWixhQUFhLEVBQUUsYUFBYTtnQkFDNUIsUUFBUSxFQUFFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxZQUFZLEVBQUU7Z0JBQ25ELDBCQUEwQixFQUFFLDBCQUEwQjtnQkFDdEQsZUFBZSxFQUFFLEdBQUcsRUFBRTtvQkFDcEIsSUFBSSxDQUFDLDJCQUEyQixDQUFDLHdCQUF3QixDQUFDLENBQUM7b0JBQzNELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO2dCQUN6QixDQUFDO2FBQ0Y7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQseUJBQXlCLENBQUMsZUFBdUIsRUFBRSxXQUFtQixFQUFFLFVBQWtCO1FBRXhGLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDLEdBQUcsZUFBZSxDQUFDO1FBRWpFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQWdCO1lBQzdDLFVBQVUsRUFBRSxVQUFVO1lBQ3RCLGFBQWEsRUFBRSxrQkFBa0I7U0FDbEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELDJCQUEyQixDQUFDLFVBQWtCO1FBQzVDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQWdCO1lBQzdDLFVBQVUsRUFBRSxVQUFVO1lBQ3RCLGFBQWEsRUFBRSxDQUFDO1NBQ2pCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGdCQUFnQixFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ2pDLENBQUM7O29IQTdEVSx1QkFBdUI7d0hBQXZCLHVCQUF1QjsyRkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0fSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHtQcm9ncmVzc1ZhbHVlfSBmcm9tIFwiLi4vc2hhcmVkL3Byb2dyZXNzVmFsdWVcIjtcbmltcG9ydCB7TWF0RGlhbG9nLCBNYXREaWFsb2dSZWZ9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2dcIjtcbmltcG9ydCB7XG4gIFByb2dyZXNzV2luZG93Q29tcG9uZW50LFxuICBQcm9ncmVzc1dpbmRvd0RhdGEsXG4gIFByb2dyZXNzV2luZG93UmVzdWx0XG59IGZyb20gXCIuLi9wcm9ncmVzcy13aW5kb3cvcHJvZ3Jlc3Mtd2luZG93LmNvbXBvbmVudFwiO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUHJvZ3Jlc3NOb3RpZmllclNlcnZpY2Uge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2N1cnJlbnRQcm9ncmVzc1ZhbHVlOiBCZWhhdmlvclN1YmplY3Q8UHJvZ3Jlc3NWYWx1ZSB8IG51bGw+O1xuICBwcml2YXRlIGN1cnJlbnREaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxQcm9ncmVzc1dpbmRvd0NvbXBvbmVudCwgUHJvZ3Jlc3NXaW5kb3dSZXN1bHQ+IHwgbnVsbDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nKSB7XG4gICAgdGhpcy5fY3VycmVudFByb2dyZXNzVmFsdWUgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFByb2dyZXNzVmFsdWUgfCBudWxsPihudWxsKTtcbiAgICB0aGlzLmN1cnJlbnREaWFsb2dSZWYgPSBudWxsO1xuICAgIHRoaXMuX2lzQ2FuY2VsZWQgPSBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgX2lzQ2FuY2VsZWQ6IGJvb2xlYW47XG5cbiAgZ2V0IGlzQ2FuY2VsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2lzQ2FuY2VsZWQ7XG4gIH1cblxuICBzZXQgaXNDYW5jZWxlZCh2YWx1ZSkge1xuICAgIHRoaXMuX2lzQ2FuY2VsZWQgPSB2YWx1ZTtcbiAgfVxuXG4gIHN0YXJ0KHRpdGxlOiBzdHJpbmcsIGlzRGV0ZXJtaW5hdGU6IGJvb2xlYW4sIGlzQ2FuY2VsT3BlcmF0aW9uQXZhaWxhYmxlOiBib29sZWFuKSB7XG5cbiAgICB0aGlzLmlzQ2FuY2VsZWQgPSBmYWxzZTtcbiAgICB0aGlzLnJlcG9ydFByb2dyZXNzRGV0ZXJtaW5hdGUoMCwgMTAwLCBcIldvcmtpbmcuLi5cIik7XG5cbiAgICB0aGlzLmN1cnJlbnREaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuPFByb2dyZXNzV2luZG93Q29tcG9uZW50LCBQcm9ncmVzc1dpbmRvd0RhdGEsIFByb2dyZXNzV2luZG93UmVzdWx0PihQcm9ncmVzc1dpbmRvd0NvbXBvbmVudCwge1xuICAgICAgd2lkdGg6ICc1MHZ3JyxcbiAgICAgIG1heFdpZHRoOiAnNTB2dycsXG4gICAgICBkYXRhOiA8UHJvZ3Jlc3NXaW5kb3dEYXRhPntcbiAgICAgICAgdGl0bGU6IHRpdGxlLFxuICAgICAgICBpc0RldGVybWluYXRlOiBpc0RldGVybWluYXRlLFxuICAgICAgICBwcm9ncmVzczogdGhpcy5fY3VycmVudFByb2dyZXNzVmFsdWUuYXNPYnNlcnZhYmxlKCksXG4gICAgICAgIGlzQ2FuY2VsT3BlcmF0aW9uQXZhaWxhYmxlOiBpc0NhbmNlbE9wZXJhdGlvbkF2YWlsYWJsZSxcbiAgICAgICAgY2FuY2VsT3BlcmF0aW9uOiAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5yZXBvcnRQcm9ncmVzc0luZGV0ZXJtaW5hdGUoXCJDYW5jZWxpbmcgb3BlcmF0aW9uLi4uXCIpO1xuICAgICAgICAgIHRoaXMuaXNDYW5jZWxlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHJlcG9ydFByb2dyZXNzRGV0ZXJtaW5hdGUocHJvZ3Jlc3NDdXJyZW50OiBudW1iZXIsIHByb2dyZXNzTWF4OiBudW1iZXIsIHN0YXR1c1RleHQ6IHN0cmluZykge1xuXG4gICAgY29uc3QgcHJvZ3Jlc3NQZXJjZW50YWdlID0gKHByb2dyZXNzTWF4IC8gMTAwKSAqIHByb2dyZXNzQ3VycmVudDtcblxuICAgIHRoaXMuX2N1cnJlbnRQcm9ncmVzc1ZhbHVlLm5leHQoPFByb2dyZXNzVmFsdWU+e1xuICAgICAgc3RhdHVzVGV4dDogc3RhdHVzVGV4dCxcbiAgICAgIHByb2dyZXNzVmFsdWU6IHByb2dyZXNzUGVyY2VudGFnZVxuICAgIH0pO1xuICB9XG5cbiAgcmVwb3J0UHJvZ3Jlc3NJbmRldGVybWluYXRlKHN0YXR1c1RleHQ6IHN0cmluZykge1xuICAgIHRoaXMuX2N1cnJlbnRQcm9ncmVzc1ZhbHVlLm5leHQoPFByb2dyZXNzVmFsdWU+e1xuICAgICAgc3RhdHVzVGV4dDogc3RhdHVzVGV4dCxcbiAgICAgIHByb2dyZXNzVmFsdWU6IDBcbiAgICB9KTtcbiAgfVxuXG4gIGNvbXBsZXRlKCkge1xuICAgIHRoaXMuY3VycmVudERpYWxvZ1JlZj8uY2xvc2UoKTtcbiAgfVxufVxuIl19
@@ -1,3 +1,7 @@
1
1
  export class ProgressValue {
2
+ constructor() {
3
+ this.statusText = null;
4
+ this.progressValue = 0;
5
+ }
2
6
  }
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3NWYWx1ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lc2htYWtlcnMvc2hhcmVkLXVpL3NyYy9saWIvcHJvZ3Jlc3Mtbm90aWZpZXIvc2hhcmVkL3Byb2dyZXNzVmFsdWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLGFBQWE7Q0FHekIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgUHJvZ3Jlc3NWYWx1ZSB7XG4gIHN0YXR1c1RleHQ6IHN0cmluZztcbiAgcHJvZ3Jlc3NWYWx1ZTogbnVtYmVyO1xufVxuIl19
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3NWYWx1ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lc2htYWtlcnMvc2hhcmVkLXVpL3NyYy9saWIvcHJvZ3Jlc3Mtbm90aWZpZXIvc2hhcmVkL3Byb2dyZXNzVmFsdWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLGFBQWE7SUFJeEI7UUFDRSxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQztJQUN6QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgUHJvZ3Jlc3NWYWx1ZSB7XG4gIHN0YXR1c1RleHQ6IHN0cmluZyB8IG51bGw7XG4gIHByb2dyZXNzVmFsdWU6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLnN0YXR1c1RleHQgPSBudWxsO1xuICAgIHRoaXMucHJvZ3Jlc3NWYWx1ZSA9IDA7XG4gIH1cbn1cbiJdfQ==
@@ -1,14 +1,15 @@
1
1
  import { IsoDateTime } from "@meshmakers/shared-services";
2
2
  export class AbstractDetailsComponent {
3
- constructor() {
3
+ constructor(formGroup) {
4
4
  this.hasError = (controlName, errorName) => {
5
- return this.ownerForm.controls[controlName].hasError(errorName);
5
+ return this.ownerForm?.controls[controlName].hasError(errorName);
6
6
  };
7
7
  this.hasFormError = (errorName) => {
8
- return this.ownerForm.hasError(errorName);
8
+ return this.ownerForm?.hasError(errorName);
9
9
  };
10
10
  this.loading = true;
11
11
  this.entity = null;
12
+ this._ownerForm = formGroup;
12
13
  }
13
14
  get ownerForm() {
14
15
  return this._ownerForm;
@@ -17,7 +18,7 @@ export class AbstractDetailsComponent {
17
18
  return this.entity !== null;
18
19
  }
19
20
  updateDateTime(controlName) {
20
- this.ownerForm.get(controlName).setValue(IsoDateTime.utcToLocalDateTimeIso(IsoDateTime.currentUtcDateTimeIso()));
21
+ this.ownerForm?.get(controlName)?.setValue(IsoDateTime.utcToLocalDateTimeIso(IsoDateTime.currentUtcDateTimeIso()));
21
22
  }
22
23
  copyInputMessage(inputElement) {
23
24
  inputElement.select();
@@ -26,12 +27,12 @@ export class AbstractDetailsComponent {
26
27
  }
27
28
  onProgressStarting() {
28
29
  this.loading = true;
29
- this.ownerForm.disable();
30
- this.ownerForm.updateValueAndValidity();
30
+ this.ownerForm?.disable();
31
+ this.ownerForm?.updateValueAndValidity();
31
32
  }
32
33
  onProgressCompleted() {
33
- this.ownerForm.enable();
34
+ this.ownerForm?.enable();
34
35
  this.loading = false;
35
36
  }
36
37
  }
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3REZXRhaWxzQ29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVzaG1ha2Vycy9zaGFyZWQtdWkvc3JjL2xpYi9zaGFyZWQvYWJzdHJhY3REZXRhaWxzQ29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUV4RCxNQUFNLE9BQWdCLHdCQUF3QjtJQUs1QztRQWVPLGFBQVEsR0FBRyxDQUFDLFdBQW1CLEVBQUUsU0FBaUIsRUFBRSxFQUFFO1lBQzNELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2xFLENBQUMsQ0FBQztRQUVLLGlCQUFZLEdBQUcsQ0FBQyxTQUFpQixFQUFFLEVBQUU7WUFDMUMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM1QyxDQUFDLENBQUM7UUFwQkEsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7SUFDckIsQ0FBQztJQUlELElBQVcsU0FBUztRQUNsQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDO0lBQzlCLENBQUM7SUFVTSxjQUFjLENBQUMsV0FBbUI7UUFDdkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbkgsQ0FBQztJQUVNLGdCQUFnQixDQUFDLFlBQVk7UUFDbEMsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3RCLFFBQVEsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0IsWUFBWSxDQUFDLGlCQUFpQixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRVMsa0JBQWtCO1FBQzFCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFFUyxtQkFBbUI7UUFDM0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUN2QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0Zvcm1Hcm91cH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQge0lzb0RhdGVUaW1lfSBmcm9tIFwiQG1lc2htYWtlcnMvc2hhcmVkLXNlcnZpY2VzXCI7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdERldGFpbHNDb21wb25lbnQ8VEVudGl0eT4ge1xuXG4gIHB1YmxpYyBsb2FkaW5nOiBib29sZWFuO1xuICBwcm90ZWN0ZWQgZW50aXR5OiBURW50aXR5O1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMuZW50aXR5ID0gbnVsbDtcbiAgfVxuXG4gIHByb3RlY3RlZCBfb3duZXJGb3JtOiBGb3JtR3JvdXA7XG5cbiAgcHVibGljIGdldCBvd25lckZvcm0oKTogRm9ybUdyb3VwIHtcbiAgICByZXR1cm4gdGhpcy5fb3duZXJGb3JtO1xuICB9XG5cbiAgcHVibGljIGdldCBpc0xvYWRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5lbnRpdHkgIT09IG51bGw7XG4gIH1cblxuICBwdWJsaWMgaGFzRXJyb3IgPSAoY29udHJvbE5hbWU6IHN0cmluZywgZXJyb3JOYW1lOiBzdHJpbmcpID0+IHtcbiAgICByZXR1cm4gdGhpcy5vd25lckZvcm0uY29udHJvbHNbY29udHJvbE5hbWVdLmhhc0Vycm9yKGVycm9yTmFtZSk7XG4gIH07XG5cbiAgcHVibGljIGhhc0Zvcm1FcnJvciA9IChlcnJvck5hbWU6IHN0cmluZykgPT4ge1xuICAgIHJldHVybiB0aGlzLm93bmVyRm9ybS5oYXNFcnJvcihlcnJvck5hbWUpO1xuICB9O1xuXG4gIHB1YmxpYyB1cGRhdGVEYXRlVGltZShjb250cm9sTmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5vd25lckZvcm0uZ2V0KGNvbnRyb2xOYW1lKS5zZXRWYWx1ZShJc29EYXRlVGltZS51dGNUb0xvY2FsRGF0ZVRpbWVJc28oSXNvRGF0ZVRpbWUuY3VycmVudFV0Y0RhdGVUaW1lSXNvKCkpKTtcbiAgfVxuXG4gIHB1YmxpYyBjb3B5SW5wdXRNZXNzYWdlKGlucHV0RWxlbWVudCkge1xuICAgIGlucHV0RWxlbWVudC5zZWxlY3QoKTtcbiAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgnY29weScpO1xuICAgIGlucHV0RWxlbWVudC5zZXRTZWxlY3Rpb25SYW5nZSgwLCAwKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvblByb2dyZXNzU3RhcnRpbmcoKSB7XG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLm93bmVyRm9ybS5kaXNhYmxlKCk7XG4gICAgdGhpcy5vd25lckZvcm0udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uUHJvZ3Jlc3NDb21wbGV0ZWQoKSB7XG4gICAgdGhpcy5vd25lckZvcm0uZW5hYmxlKCk7XG4gICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gIH1cbn1cbiJdfQ==
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3REZXRhaWxzQ29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVzaG1ha2Vycy9zaGFyZWQtdWkvc3JjL2xpYi9zaGFyZWQvYWJzdHJhY3REZXRhaWxzQ29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUV4RCxNQUFNLE9BQWdCLHdCQUF3QjtJQUs1QyxZQUFzQixTQUFvQjtRQWdCbkMsYUFBUSxHQUFHLENBQUMsV0FBbUIsRUFBRSxTQUFpQixFQUFFLEVBQUU7WUFDM0QsT0FBTyxJQUFJLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbkUsQ0FBQyxDQUFDO1FBRUssaUJBQVksR0FBRyxDQUFDLFNBQWlCLEVBQUUsRUFBRTtZQUMxQyxPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzdDLENBQUMsQ0FBQztRQXJCQSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNuQixJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztJQUM5QixDQUFDO0lBSUQsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUM7SUFDOUIsQ0FBQztJQVVNLGNBQWMsQ0FBQyxXQUFtQjtRQUN2QyxJQUFJLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRSxRQUFRLENBQUMsV0FBVyxDQUFDLHFCQUFxQixDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNySCxDQUFDO0lBRU0sZ0JBQWdCLENBQUMsWUFBa0I7UUFDeEMsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3RCLFFBQVEsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0IsWUFBWSxDQUFDLGlCQUFpQixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRVMsa0JBQWtCO1FBQzFCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFFUyxtQkFBbUI7UUFDM0IsSUFBSSxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUN2QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0Zvcm1Hcm91cH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQge0lzb0RhdGVUaW1lfSBmcm9tIFwiQG1lc2htYWtlcnMvc2hhcmVkLXNlcnZpY2VzXCI7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdERldGFpbHNDb21wb25lbnQ8VEVudGl0eT4ge1xuXG4gIHB1YmxpYyBsb2FkaW5nOiBib29sZWFuO1xuICBwcm90ZWN0ZWQgZW50aXR5OiBURW50aXR5IHwgbnVsbDtcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoZm9ybUdyb3VwOiBGb3JtR3JvdXApIHtcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMuZW50aXR5ID0gbnVsbDtcbiAgICB0aGlzLl9vd25lckZvcm0gPSBmb3JtR3JvdXA7XG4gIH1cblxuICBwcml2YXRlIF9vd25lckZvcm06IEZvcm1Hcm91cDtcblxuICBwdWJsaWMgZ2V0IG93bmVyRm9ybSgpOiBGb3JtR3JvdXAge1xuICAgIHJldHVybiB0aGlzLl9vd25lckZvcm07XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzTG9hZGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmVudGl0eSAhPT0gbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyBoYXNFcnJvciA9IChjb250cm9sTmFtZTogc3RyaW5nLCBlcnJvck5hbWU6IHN0cmluZykgPT4ge1xuICAgIHJldHVybiB0aGlzLm93bmVyRm9ybT8uY29udHJvbHNbY29udHJvbE5hbWVdLmhhc0Vycm9yKGVycm9yTmFtZSk7XG4gIH07XG5cbiAgcHVibGljIGhhc0Zvcm1FcnJvciA9IChlcnJvck5hbWU6IHN0cmluZykgPT4ge1xuICAgIHJldHVybiB0aGlzLm93bmVyRm9ybT8uaGFzRXJyb3IoZXJyb3JOYW1lKTtcbiAgfTtcblxuICBwdWJsaWMgdXBkYXRlRGF0ZVRpbWUoY29udHJvbE5hbWU6IHN0cmluZykge1xuICAgIHRoaXMub3duZXJGb3JtPy5nZXQoY29udHJvbE5hbWUpPy5zZXRWYWx1ZShJc29EYXRlVGltZS51dGNUb0xvY2FsRGF0ZVRpbWVJc28oSXNvRGF0ZVRpbWUuY3VycmVudFV0Y0RhdGVUaW1lSXNvKCkpKTtcbiAgfVxuXG4gIHB1YmxpYyBjb3B5SW5wdXRNZXNzYWdlKGlucHV0RWxlbWVudCA6IGFueSkge1xuICAgIGlucHV0RWxlbWVudC5zZWxlY3QoKTtcbiAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgnY29weScpO1xuICAgIGlucHV0RWxlbWVudC5zZXRTZWxlY3Rpb25SYW5nZSgwLCAwKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvblByb2dyZXNzU3RhcnRpbmcoKSB7XG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLm93bmVyRm9ybT8uZGlzYWJsZSgpO1xuICAgIHRoaXMub3duZXJGb3JtPy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25Qcm9ncmVzc0NvbXBsZXRlZCgpIHtcbiAgICB0aGlzLm93bmVyRm9ybT8uZW5hYmxlKCk7XG4gICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gIH1cbn1cbiJdfQ==
@@ -10,20 +10,27 @@ export class CommonValidators {
10
10
  static httpUri() {
11
11
  return Validators.pattern("^(http:\\/\\/|https:\\/\\/)([a-zA-Z0-9-_]+\\.)*[a-zA-Z0-9][a-zA-Z0-9-_]+(\\.[a-zA-Z]{2,11}?)*(:[0-9]{2,5}){0,1}\\/{0,1}$");
12
12
  }
13
+ static ensureSameValue(sourceControlName) {
14
+ return (control) => {
15
+ const value = control.value;
16
+ return value === control.parent?.get(sourceControlName)?.value ? null : { notSame: true };
17
+ };
18
+ }
13
19
  static conditionalRequired(sourceControlName, sourceValueCompareExpression) {
14
20
  return (control) => {
15
- if (control.parent && sourceValueCompareExpression(control.parent.get(sourceControlName).value)) {
21
+ if (control.parent && sourceValueCompareExpression(control.parent.get(sourceControlName)?.value)) {
16
22
  return isEmptyInputValue(control.value) ? { 'required': true } : null;
17
23
  }
24
+ return null;
18
25
  };
19
26
  }
20
27
  static dependentControls(controlNames) {
21
28
  return (control) => {
22
29
  controlNames.forEach(controlName => {
23
- control.parent?.get(controlName).updateValueAndValidity();
30
+ control.parent?.get(controlName)?.updateValueAndValidity();
24
31
  });
25
32
  return null;
26
33
  };
27
34
  }
28
35
  }
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uVmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lc2htYWtlcnMvc2hhcmVkLXVpL3NyYy9saWIvc2hhcmVkL2NvbW1vblZhbGlkYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUErQixVQUFVLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQU14RSxTQUFTLGlCQUFpQixDQUFDLEtBQVU7SUFDbkMsOERBQThEO0lBQzlELE9BQU8sS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztBQUM3QyxDQUFDO0FBRUQsTUFBTSxPQUFPLGdCQUFnQjtJQUNwQixNQUFNLENBQUMsV0FBVztRQUN2QixPQUFPLFVBQVUsQ0FBQyxPQUFPLENBQUMsZ0RBQWdELENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRU0sTUFBTSxDQUFDLE9BQU87UUFDbkIsT0FBTyxVQUFVLENBQUMsT0FBTyxDQUFDLDBIQUEwSCxDQUFDLENBQUM7SUFDeEosQ0FBQztJQUVNLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBZ0IsaUJBQXlCLEVBQUUsNEJBQTJEO1FBRXJJLE9BQU8sQ0FBQyxPQUF3QixFQUFFLEVBQUU7WUFDbEMsSUFBSSxPQUFPLENBQUMsTUFBTSxJQUFJLDRCQUE0QixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQy9GLE9BQU8saUJBQWlCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO2FBQ3JFO1FBQ0gsQ0FBQyxDQUFBO0lBQ0gsQ0FBQztJQUVNLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxZQUFzQjtRQUNwRCxPQUFPLENBQUMsT0FBd0IsRUFBRSxFQUFFO1lBQ2xDLFlBQVksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUU7Z0JBQ2pDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLHNCQUFzQixFQUFFLENBQUM7WUFDNUQsQ0FBQyxDQUFDLENBQUM7WUFDSCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQTtJQUNILENBQUM7Q0FHRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWJzdHJhY3RDb250cm9sLCBWYWxpZGF0b3JGbiwgVmFsaWRhdG9yc30gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBDb21wYXJlVmFsdWVGbjxUVmFsdWU+IHtcbiAgKHZhbHVlOiBUVmFsdWUpOiBib29sZWFuO1xufVxuXG5mdW5jdGlvbiBpc0VtcHR5SW5wdXRWYWx1ZSh2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gIC8vIHdlIGRvbid0IGNoZWNrIGZvciBzdHJpbmcgaGVyZSBzbyBpdCBhbHNvIHdvcmtzIHdpdGggYXJyYXlzXG4gIHJldHVybiB2YWx1ZSA9PSBudWxsIHx8IHZhbHVlLmxlbmd0aCA9PT0gMDtcbn1cblxuZXhwb3J0IGNsYXNzIENvbW1vblZhbGlkYXRvcnMge1xuICBwdWJsaWMgc3RhdGljIHBob25lTnVtYmVyKCk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gVmFsaWRhdG9ycy5wYXR0ZXJuKCdeWytdKlsoXXswLDF9WzAtOV17MSw0fVspXXswLDF9Wy1cXFxcc1xcXFwuLzAtOV0qJCcpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBodHRwVXJpKCk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gVmFsaWRhdG9ycy5wYXR0ZXJuKFwiXihodHRwOlxcXFwvXFxcXC98aHR0cHM6XFxcXC9cXFxcLykoW2EtekEtWjAtOS1fXStcXFxcLikqW2EtekEtWjAtOV1bYS16QS1aMC05LV9dKyhcXFxcLlthLXpBLVpdezIsMTF9PykqKDpbMC05XXsyLDV9KXswLDF9XFxcXC97MCwxfSRcIik7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGNvbmRpdGlvbmFsUmVxdWlyZWQ8VENvbXBhcmVWYWx1ZT4oc291cmNlQ29udHJvbE5hbWU6IHN0cmluZywgc291cmNlVmFsdWVDb21wYXJlRXhwcmVzc2lvbjogQ29tcGFyZVZhbHVlRm48VENvbXBhcmVWYWx1ZT4pOiBWYWxpZGF0b3JGbiB7XG5cbiAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkgPT4ge1xuICAgICAgaWYgKGNvbnRyb2wucGFyZW50ICYmIHNvdXJjZVZhbHVlQ29tcGFyZUV4cHJlc3Npb24oY29udHJvbC5wYXJlbnQuZ2V0KHNvdXJjZUNvbnRyb2xOYW1lKS52YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIGlzRW1wdHlJbnB1dFZhbHVlKGNvbnRyb2wudmFsdWUpID8geydyZXF1aXJlZCc6IHRydWV9IDogbnVsbDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGRlcGVuZGVudENvbnRyb2xzKGNvbnRyb2xOYW1lczogc3RyaW5nW10pOiBWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpID0+IHtcbiAgICAgIGNvbnRyb2xOYW1lcy5mb3JFYWNoKGNvbnRyb2xOYW1lID0+IHtcbiAgICAgICAgY29udHJvbC5wYXJlbnQ/LmdldChjb250cm9sTmFtZSkudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuXG59XG4iXX0=
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uVmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lc2htYWtlcnMvc2hhcmVkLXVpL3NyYy9saWIvc2hhcmVkL2NvbW1vblZhbGlkYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUErQixVQUFVLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQU14RSxTQUFTLGlCQUFpQixDQUFDLEtBQVU7SUFDbkMsOERBQThEO0lBQzlELE9BQU8sS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztBQUM3QyxDQUFDO0FBRUQsTUFBTSxPQUFPLGdCQUFnQjtJQUNwQixNQUFNLENBQUMsV0FBVztRQUN2QixPQUFPLFVBQVUsQ0FBQyxPQUFPLENBQUMsZ0RBQWdELENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRU0sTUFBTSxDQUFDLE9BQU87UUFDbkIsT0FBTyxVQUFVLENBQUMsT0FBTyxDQUFDLDBIQUEwSCxDQUFDLENBQUM7SUFDeEosQ0FBQztJQUVNLE1BQU0sQ0FBQyxlQUFlLENBQUMsaUJBQXlCO1FBRXJELE9BQU8sQ0FBQyxPQUF3QixFQUFFLEVBQUU7WUFDbEMsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztZQUM1QixPQUFPLEtBQUssS0FBSyxPQUFPLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUMsQ0FBQTtRQUN6RixDQUFDLENBQUE7SUFDSCxDQUFDO0lBRU0sTUFBTSxDQUFDLG1CQUFtQixDQUFnQixpQkFBeUIsRUFBRSw0QkFBMkQ7UUFFckksT0FBTyxDQUFDLE9BQXdCLEVBQUUsRUFBRTtZQUNsQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLElBQUksNEJBQTRCLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRTtnQkFDaEcsT0FBTyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsVUFBVSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7YUFDckU7WUFDRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQTtJQUNILENBQUM7SUFFTSxNQUFNLENBQUMsaUJBQWlCLENBQUMsWUFBc0I7UUFDcEQsT0FBTyxDQUFDLE9BQXdCLEVBQUUsRUFBRTtZQUNsQyxZQUFZLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFO2dCQUNqQyxPQUFPLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRSxzQkFBc0IsRUFBRSxDQUFDO1lBQzdELENBQUMsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUE7SUFDSCxDQUFDO0NBR0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0Fic3RyYWN0Q29udHJvbCwgVmFsaWRhdG9yRm4sIFZhbGlkYXRvcnN9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQ29tcGFyZVZhbHVlRm48VFZhbHVlPiB7XG4gICh2YWx1ZTogVFZhbHVlKTogYm9vbGVhbjtcbn1cblxuZnVuY3Rpb24gaXNFbXB0eUlucHV0VmFsdWUodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAvLyB3ZSBkb24ndCBjaGVjayBmb3Igc3RyaW5nIGhlcmUgc28gaXQgYWxzbyB3b3JrcyB3aXRoIGFycmF5c1xuICByZXR1cm4gdmFsdWUgPT0gbnVsbCB8fCB2YWx1ZS5sZW5ndGggPT09IDA7XG59XG5cbmV4cG9ydCBjbGFzcyBDb21tb25WYWxpZGF0b3JzIHtcbiAgcHVibGljIHN0YXRpYyBwaG9uZU51bWJlcigpOiBWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIFZhbGlkYXRvcnMucGF0dGVybignXlsrXSpbKF17MCwxfVswLTldezEsNH1bKV17MCwxfVstXFxcXHNcXFxcLi8wLTldKiQnKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgaHR0cFVyaSgpOiBWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIFZhbGlkYXRvcnMucGF0dGVybihcIl4oaHR0cDpcXFxcL1xcXFwvfGh0dHBzOlxcXFwvXFxcXC8pKFthLXpBLVowLTktX10rXFxcXC4pKlthLXpBLVowLTldW2EtekEtWjAtOS1fXSsoXFxcXC5bYS16QS1aXXsyLDExfT8pKig6WzAtOV17Miw1fSl7MCwxfVxcXFwvezAsMX0kXCIpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBlbnN1cmVTYW1lVmFsdWUoc291cmNlQ29udHJvbE5hbWU6IHN0cmluZyk6IFZhbGlkYXRvckZuIHtcblxuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSA9PiB7XG4gICAgICBjb25zdCB2YWx1ZSA9IGNvbnRyb2wudmFsdWU7XG4gICAgICByZXR1cm4gdmFsdWUgPT09IGNvbnRyb2wucGFyZW50Py5nZXQoc291cmNlQ29udHJvbE5hbWUpPy52YWx1ZSA/IG51bGwgOiB7bm90U2FtZTogdHJ1ZX1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGNvbmRpdGlvbmFsUmVxdWlyZWQ8VENvbXBhcmVWYWx1ZT4oc291cmNlQ29udHJvbE5hbWU6IHN0cmluZywgc291cmNlVmFsdWVDb21wYXJlRXhwcmVzc2lvbjogQ29tcGFyZVZhbHVlRm48VENvbXBhcmVWYWx1ZT4pOiBWYWxpZGF0b3JGbiB7XG5cbiAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkgPT4ge1xuICAgICAgaWYgKGNvbnRyb2wucGFyZW50ICYmIHNvdXJjZVZhbHVlQ29tcGFyZUV4cHJlc3Npb24oY29udHJvbC5wYXJlbnQuZ2V0KHNvdXJjZUNvbnRyb2xOYW1lKT8udmFsdWUpKSB7XG4gICAgICAgIHJldHVybiBpc0VtcHR5SW5wdXRWYWx1ZShjb250cm9sLnZhbHVlKSA/IHsncmVxdWlyZWQnOiB0cnVlfSA6IG51bGw7XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGRlcGVuZGVudENvbnRyb2xzKGNvbnRyb2xOYW1lczogc3RyaW5nW10pOiBWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpID0+IHtcbiAgICAgIGNvbnRyb2xOYW1lcy5mb3JFYWNoKGNvbnRyb2xOYW1lID0+IHtcbiAgICAgICAgY29udHJvbC5wYXJlbnQ/LmdldChjb250cm9sTmFtZSk/LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cblxufVxuIl19