@meshmakers/shared-ui 3.1.177-0 → 3.1.181-0

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 (24) hide show
  1. package/esm2022/lib/mm-autocomplete-input/mm-autocomplete-input.component.mjs +3 -3
  2. package/esm2022/lib/mm-breadcrumb/mm-breadcrumb.component.mjs +3 -3
  3. package/esm2022/lib/mm-confirmation-window/mm-confirmation-window.component.mjs +3 -3
  4. package/esm2022/lib/mm-entity-select-input/mm-entity-select-input.component.mjs +3 -3
  5. package/esm2022/lib/mm-file-upload/mm-file-upload.component.mjs +12 -8
  6. package/esm2022/lib/mm-message-details/mm-message-details.component.mjs +3 -3
  7. package/esm2022/lib/mm-multiple-entity-select-input/mm-multiple-entity-select-input.component.mjs +3 -3
  8. package/esm2022/lib/mm-notification-bar/mm-notification-bar.component.mjs +3 -3
  9. package/esm2022/lib/mm-progress-window/mm-progress-window.component.mjs +3 -3
  10. package/esm2022/lib/mm-shared-ui.module.mjs +16 -10
  11. package/esm2022/lib/mm-table-simple/mm-table-simple.component.mjs +42 -0
  12. package/esm2022/lib/models/confirmation.mjs +1 -1
  13. package/esm2022/lib/services/confirmation.service.mjs +3 -3
  14. package/esm2022/lib/services/file-upload.service.mjs +7 -6
  15. package/esm2022/lib/services/progress-notifier.service.mjs +3 -3
  16. package/esm2022/public-api.mjs +2 -1
  17. package/fesm2022/meshmakers-shared-ui.mjs +102 -54
  18. package/fesm2022/meshmakers-shared-ui.mjs.map +1 -1
  19. package/lib/mm-shared-ui.module.d.ts +2 -1
  20. package/lib/mm-table-simple/mm-table-simple.component.d.ts +12 -0
  21. package/lib/models/confirmation.d.ts +1 -0
  22. package/lib/services/file-upload.service.d.ts +1 -1
  23. package/package.json +1 -1
  24. package/public-api.d.ts +1 -0
@@ -238,8 +238,8 @@ export class MmAutocompleteInputComponent {
238
238
  };
239
239
  _onTouched = () => {
240
240
  };
241
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: MmAutocompleteInputComponent, deps: [{ token: i0.ElementRef }, { token: i0.Injector }, { token: i1.FocusMonitor }], target: i0.ɵɵFactoryTarget.Component });
242
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: MmAutocompleteInputComponent, selector: "mm-autocomplete", inputs: { dataSource: "dataSource", disabled: "disabled", placeholder: "placeholder", required: "required", prefix: "prefix" }, host: { properties: { "id": "this.id", "attr.aria-describedby": "this.describedBy", "class.floating": "this.shouldLabelFloat" } }, providers: [
241
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: MmAutocompleteInputComponent, deps: [{ token: i0.ElementRef }, { token: i0.Injector }, { token: i1.FocusMonitor }], target: i0.ɵɵFactoryTarget.Component });
242
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: MmAutocompleteInputComponent, selector: "mm-autocomplete", inputs: { dataSource: "dataSource", disabled: "disabled", placeholder: "placeholder", required: "required", prefix: "prefix" }, host: { properties: { "id": "this.id", "attr.aria-describedby": "this.describedBy", "class.floating": "this.shouldLabelFloat" } }, providers: [
243
243
  {
244
244
  provide: NG_VALUE_ACCESSOR,
245
245
  useExisting: forwardRef(() => MmAutocompleteInputComponent),
@@ -256,7 +256,7 @@ export class MmAutocompleteInputComponent {
256
256
  }
257
257
  ], viewQueries: [{ propertyName: "inputField", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "<input #input (blur)=\"onTouched()\" (focusout)=\"onFocusOut()\" [formControl]=\"searchFormControl\" [matAutocomplete]=\"auto\"\n [placeholder]=\"placeholder\" matInput>\n<mat-autocomplete #auto=\"matAutocomplete\"\n (closed)=\"onAutoCompleteClosed()\" (optionActivated)=\"onOptionActivated($event)\"\n (optionSelected)=\"onOptionSelected($event)\">\n <mat-option *ngIf=\"isLoading\" class=\"is-loading\">\n <mat-spinner diameter=\"50\"></mat-spinner>\n </mat-option>\n <ng-container *ngIf=\"!isLoading\">\n <mat-option *ngFor=\"let str of filteredStrings\" [value]=\"str\">\n {{str}}\n </mat-option>\n </ng-container>\n</mat-autocomplete>\n", styles: ["span{opacity:0;transition:opacity .2s}:host.floating span{opacity:1}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i3.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { 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.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { 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.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
258
258
  }
259
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: MmAutocompleteInputComponent, decorators: [{
259
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: MmAutocompleteInputComponent, decorators: [{
260
260
  type: Component,
261
261
  args: [{ selector: "mm-autocomplete", host: {
262
262
  "[id]": "id",
@@ -95,10 +95,10 @@ export class MmBreadcrumbComponent {
95
95
  this.breadcrumbData = [];
96
96
  }
97
97
  }
98
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: MmBreadcrumbComponent, deps: [{ token: i1.ActivatedRoute }, { token: i1.Router }, { token: i2.BreadcrumbService }], target: i0.ɵɵFactoryTarget.Component });
99
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: MmBreadcrumbComponent, selector: "mm-breadcrumb", inputs: { fontSize: "fontSize", fontColor: "fontColor", lastLinkColor: "lastLinkColor", symbol: "symbol" }, ngImport: i0, template: "<mat-list class=\"mat-bread-crumb-list\" *ngIf=\"breadcrumbData.length\">\n <mat-list-item>\n <span class=\"mat-bread-crumb-spacer\">\n <span *ngFor=\"let item of breadcrumbData; let i = index\">\n <a *ngIf=\"item?.url\" [routerLink]=\"item?.url\"\n class=\"mat-bread-crumb-list-item\">{{ item.label }}</a>\n <span *ngIf=\"!item?.url\" class=\"mat-bread-crumb-list-item\">{{ item.label }}</span>\n <span *ngIf=\"breadcrumbData.length !== i+1\" class=\"mat-bread-crumb-list-item\">{{symbol}}</span>\n </span>\n </span>\n </mat-list-item>\n</mat-list>\n", styles: [".mat-bread-crumb{height:30px}.mat-bread-crumb-list{padding-bottom:10px}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i4.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] });
98
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: MmBreadcrumbComponent, deps: [{ token: i1.ActivatedRoute }, { token: i1.Router }, { token: i2.BreadcrumbService }], target: i0.ɵɵFactoryTarget.Component });
99
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: MmBreadcrumbComponent, selector: "mm-breadcrumb", inputs: { fontSize: "fontSize", fontColor: "fontColor", lastLinkColor: "lastLinkColor", symbol: "symbol" }, ngImport: i0, template: "<mat-list class=\"mat-bread-crumb-list\" *ngIf=\"breadcrumbData.length\">\n <mat-list-item>\n <span class=\"mat-bread-crumb-spacer\">\n <span *ngFor=\"let item of breadcrumbData; let i = index\">\n <a *ngIf=\"item?.url\" [routerLink]=\"item?.url\"\n class=\"mat-bread-crumb-list-item\">{{ item.label }}</a>\n <span *ngIf=\"!item?.url\" class=\"mat-bread-crumb-list-item\">{{ item.label }}</span>\n <span *ngIf=\"breadcrumbData.length !== i+1\" class=\"mat-bread-crumb-list-item\">{{symbol}}</span>\n </span>\n </span>\n </mat-list-item>\n</mat-list>\n", styles: [".mat-bread-crumb{height:30px}.mat-bread-crumb-list{padding-bottom:10px}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i4.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] });
100
100
  }
101
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: MmBreadcrumbComponent, decorators: [{
101
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: MmBreadcrumbComponent, decorators: [{
102
102
  type: Component,
103
103
  args: [{ selector: 'mm-breadcrumb', template: "<mat-list class=\"mat-bread-crumb-list\" *ngIf=\"breadcrumbData.length\">\n <mat-list-item>\n <span class=\"mat-bread-crumb-spacer\">\n <span *ngFor=\"let item of breadcrumbData; let i = index\">\n <a *ngIf=\"item?.url\" [routerLink]=\"item?.url\"\n class=\"mat-bread-crumb-list-item\">{{ item.label }}</a>\n <span *ngIf=\"!item?.url\" class=\"mat-bread-crumb-list-item\">{{ item.label }}</span>\n <span *ngIf=\"breadcrumbData.length !== i+1\" class=\"mat-bread-crumb-list-item\">{{symbol}}</span>\n </span>\n </span>\n </mat-list-item>\n</mat-list>\n", styles: [".mat-bread-crumb{height:30px}.mat-bread-crumb-list{padding-bottom:10px}\n"] }]
104
104
  }], ctorParameters: () => [{ type: i1.ActivatedRoute }, { type: i1.Router }, { type: i2.BreadcrumbService }], propDecorators: { fontSize: [{
@@ -62,10 +62,10 @@ export class MmConfirmationWindowComponent {
62
62
  result: this.button3Result
63
63
  });
64
64
  }
65
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: MmConfirmationWindowComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
66
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: MmConfirmationWindowComponent, selector: "mm-confirmation-window", ngImport: i0, template: "<h1 mat-dialog-title>{{data.title}}</h1>\n<div mat-dialog-content>{{data.message}}</div>\n<div style=\"justify-content: flex-end;\" mat-dialog-actions>\n <button (click)=\"onButton1()\" class=\"primary-button\" mat-flat-button>{{button1Text}}</button>\n <button (click)=\"onButton2()\" *ngIf=\"button2Text\" mat-flat-button>{{button2Text}}</button>\n <button (click)=\"onButton3()\" *ngIf=\"button3Text\" mat-flat-button>{{button3Text}}</button>\n</div>\n", styles: [""], 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: "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]" }] });
65
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: MmConfirmationWindowComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
66
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: MmConfirmationWindowComponent, selector: "mm-confirmation-window", ngImport: i0, template: "<h1 mat-dialog-title>{{data.title}}</h1>\n<div mat-dialog-content>{{data.message}}</div>\n<div style=\"justify-content: flex-end;\" mat-dialog-actions>\n <button (click)=\"onButton1()\" class=\"primary-button\" mat-flat-button>{{button1Text}}</button>\n <button (click)=\"onButton2()\" *ngIf=\"button2Text\" mat-flat-button>{{button2Text}}</button>\n <button (click)=\"onButton3()\" *ngIf=\"button3Text\" mat-flat-button>{{button3Text}}</button>\n</div>\n", styles: [""], 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: "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]" }] });
67
67
  }
68
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: MmConfirmationWindowComponent, decorators: [{
68
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: MmConfirmationWindowComponent, decorators: [{
69
69
  type: Component,
70
70
  args: [{ selector: 'mm-confirmation-window', template: "<h1 mat-dialog-title>{{data.title}}</h1>\n<div mat-dialog-content>{{data.message}}</div>\n<div style=\"justify-content: flex-end;\" mat-dialog-actions>\n <button (click)=\"onButton1()\" class=\"primary-button\" mat-flat-button>{{button1Text}}</button>\n <button (click)=\"onButton2()\" *ngIf=\"button2Text\" mat-flat-button>{{button2Text}}</button>\n <button (click)=\"onButton3()\" *ngIf=\"button3Text\" mat-flat-button>{{button3Text}}</button>\n</div>\n" }]
71
71
  }], ctorParameters: () => [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
@@ -229,8 +229,8 @@ export class MmEntitySelectInputComponent {
229
229
  this.stateChanges.next();
230
230
  }
231
231
  }
232
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: MmEntitySelectInputComponent, deps: [{ token: i0.ElementRef }, { token: i0.Injector }, { token: i1.FocusMonitor }], target: i0.ɵɵFactoryTarget.Component });
233
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: MmEntitySelectInputComponent, selector: "mm-entity-select", inputs: { dataSource: "dataSource", disabled: "disabled", placeholder: "placeholder", required: "required", prefix: "prefix" }, host: { properties: { "id": "this.id", "attr.aria-describedby": "this.describedBy", "class.floating": "this.shouldLabelFloat" } }, providers: [
232
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: MmEntitySelectInputComponent, deps: [{ token: i0.ElementRef }, { token: i0.Injector }, { token: i1.FocusMonitor }], target: i0.ɵɵFactoryTarget.Component });
233
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: MmEntitySelectInputComponent, selector: "mm-entity-select", inputs: { dataSource: "dataSource", disabled: "disabled", placeholder: "placeholder", required: "required", prefix: "prefix" }, host: { properties: { "id": "this.id", "attr.aria-describedby": "this.describedBy", "class.floating": "this.shouldLabelFloat" } }, providers: [
234
234
  {
235
235
  provide: NG_VALUE_ACCESSOR,
236
236
  useExisting: forwardRef(() => MmEntitySelectInputComponent),
@@ -247,7 +247,7 @@ export class MmEntitySelectInputComponent {
247
247
  }
248
248
  ], viewQueries: [{ propertyName: "inputField", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "<input #input (blur)=\"onTouched()\" (focusout)=\"onFocusOut()\" [formControl]=\"searchFormControl\" [matAutocomplete]=\"auto\"\n [placeholder]=\"placeholder\" matInput>\n<mat-autocomplete #auto=\"matAutocomplete\" (closed)=\"onEntityClosed()\"\n (optionActivated)=\"onEntityActivated($event)\" (optionSelected)=\"onEntitySelected($event)\"\n [displayWith]=\"dataSource?.onDisplayEntity ?? null\">\n <mat-option *ngIf=\"isLoading\" class=\"is-loading\">\n <mat-spinner diameter=\"50\"></mat-spinner>\n </mat-option>\n <ng-container *ngIf=\"!isLoading\">\n <mat-option *ngFor=\"let entity of filteredEntities\" [value]=\"entity\">\n {{dataSource?.onDisplayEntity(entity) ?? null}}\n </mat-option>\n </ng-container>\n</mat-autocomplete>\n", styles: ["span{opacity:0;transition:opacity .2s}:host.floating span{opacity:1}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i3.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { 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.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { 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.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
249
249
  }
250
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: MmEntitySelectInputComponent, decorators: [{
250
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: MmEntitySelectInputComponent, decorators: [{
251
251
  type: Component,
252
252
  args: [{ selector: 'mm-entity-select', host: {
253
253
  '[id]': 'id',
@@ -29,7 +29,7 @@ export class MmFileUploadComponent {
29
29
  const file = event.target.files[0];
30
30
  this.uploadFile(file);
31
31
  }
32
- // Handler for file drop
32
+ // Handler for the file drop
33
33
  onFileDrop(event) {
34
34
  event.preventDefault();
35
35
  const file = event.dataTransfer?.files[0];
@@ -42,11 +42,15 @@ export class MmFileUploadComponent {
42
42
  // Method to handle file upload
43
43
  uploadFile(file) {
44
44
  const allowedMimeTypes = this.data.mimeTypes.split(',').map((mimeType) => mimeType.trim());
45
+ const allowedFileExtensions = this.data.fileExtensions?.split(',').map((mimeType) => mimeType.trim()) ?? [];
45
46
  if (!file) {
46
47
  return;
47
48
  }
48
- console.log(file.type);
49
- if (allowedMimeTypes.length > 0 && allowedMimeTypes.includes(file.type)) {
49
+ console.log("type: " + file.type);
50
+ console.log("name: " + file.name);
51
+ const extension = file.name.substring(file.name.lastIndexOf('.')).toLowerCase();
52
+ console.log("extension: " + extension);
53
+ if (allowedFileExtensions.includes(extension) || allowedMimeTypes.includes(file.type)) {
50
54
  this.selectedFile = file;
51
55
  this.fileSize.set(Math.round(file.size / 1024)); // Set file size in KB
52
56
  this.uploadSuccess = true;
@@ -83,12 +87,12 @@ export class MmFileUploadComponent {
83
87
  selectedFile: null
84
88
  });
85
89
  }
86
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: MmFileUploadComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: i2.MatSnackBar }], target: i0.ɵɵFactoryTarget.Component });
87
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: MmFileUploadComponent, selector: "mm-mm-file-upload", viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], ngImport: i0, template: "<h1 mat-dialog-title>{{data.title}}</h1>\n<div\n class=\"file-upload-wrapper\"\n [class.success]=\"uploadSuccess\"\n [class.error]=\"uploadError\"\n (drop)=\"onFileDrop($event)\"\n (dragover)=\"onDragOver($event)\"\n>\n <input\n type=\"file\"\n accept=\"{{data.mimeTypes}}\"\n (change)=\"onFileChange($event)\"\n hidden\n #fileInput\n />\n <div class=\"file-dropper\" (click)=\"fileInput.click()\">\n <mat-icon class=\"material-symbols-outlined\">upload</mat-icon>\n <p>{{data.message}}</p>\n <div *ngIf=\"fileName()\">\n <div *ngIf=\"selectedFile\">\n <p>\n <span class=\"image-name\">{{ fileName() }}</span> ({{\n fileSize()\n }} KB)\n </p>\n <mat-icon class=\"material-symbols-outlined delete-icon\" (click)=\"removeFile()\">delete</mat-icon>\n </div>\n </div>\n </div>\n</div>\n<div style=\"justify-content: flex-end;\" mat-dialog-actions>\n <button (click)=\"onOk()\" [disabled]=\"!selectedFile\" mat-flat-button>Upload</button>\n <button (click)=\"onCancel()\" mat-button>Cancel</button>\n</div>\n\n", styles: [".file-upload-wrapper{display:flex;justify-content:center;align-items:center;flex-direction:column;border:2px dashed #ccc;padding:1rem;margin-bottom:1rem;margin-left:1rem;margin-right:1rem;border-radius:10px;cursor:pointer}.file-upload-wrapper.success{border-color:green}.file-upload-wrapper.error{border-color:red}.file-dropper{display:flex;flex-direction:column;align-items:center}.image-name{font-weight:700}.image-preview{max-width:100%;height:auto;margin-bottom:.5rem;border-radius:10px}.delete-icon{cursor:pointer;color:red}\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: "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: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
90
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: MmFileUploadComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: i2.MatSnackBar }], target: i0.ɵɵFactoryTarget.Component });
91
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: MmFileUploadComponent, selector: "mm-mm-file-upload", viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], ngImport: i0, template: "<h1 mat-dialog-title>{{data.title}}</h1>\n<div\n class=\"file-upload-wrapper\"\n [class.success]=\"uploadSuccess\"\n [class.error]=\"uploadError\"\n (drop)=\"onFileDrop($event)\"\n (dragover)=\"onDragOver($event)\"\n>\n <input\n type=\"file\"\n accept=\"{{data.fileExtensions}}\"\n (change)=\"onFileChange($event)\"\n hidden\n #fileInput\n />\n <div class=\"file-dropper\" (click)=\"fileInput.click()\">\n <mat-icon class=\"material-symbols-outlined\">upload</mat-icon>\n <p>{{data.message}}</p>\n <div *ngIf=\"fileName()\">\n <div *ngIf=\"selectedFile\">\n <p>\n <span class=\"image-name\">{{ fileName() }}</span> ({{\n fileSize()\n }} KB)\n </p>\n <mat-icon class=\"material-symbols-outlined delete-icon\" (click)=\"removeFile()\">delete</mat-icon>\n </div>\n </div>\n </div>\n</div>\n<div style=\"justify-content: flex-end;\" mat-dialog-actions>\n <button (click)=\"onOk()\" [disabled]=\"!selectedFile\" mat-flat-button>Upload</button>\n <button (click)=\"onCancel()\" mat-button>Cancel</button>\n</div>\n\n", styles: [".file-upload-wrapper{display:flex;justify-content:center;align-items:center;flex-direction:column;border:2px dashed #ccc;padding:1rem;margin-bottom:1rem;margin-left:1rem;margin-right:1rem;border-radius:10px;cursor:pointer}.file-upload-wrapper.success{border-color:green}.file-upload-wrapper.error{border-color:red}.file-dropper{display:flex;flex-direction:column;align-items:center}.image-name{font-weight:700}.image-preview{max-width:100%;height:auto;margin-bottom:.5rem;border-radius:10px}.delete-icon{cursor:pointer;color:red}\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: "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: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
88
92
  }
89
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: MmFileUploadComponent, decorators: [{
93
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: MmFileUploadComponent, decorators: [{
90
94
  type: Component,
91
- args: [{ selector: 'mm-mm-file-upload', template: "<h1 mat-dialog-title>{{data.title}}</h1>\n<div\n class=\"file-upload-wrapper\"\n [class.success]=\"uploadSuccess\"\n [class.error]=\"uploadError\"\n (drop)=\"onFileDrop($event)\"\n (dragover)=\"onDragOver($event)\"\n>\n <input\n type=\"file\"\n accept=\"{{data.mimeTypes}}\"\n (change)=\"onFileChange($event)\"\n hidden\n #fileInput\n />\n <div class=\"file-dropper\" (click)=\"fileInput.click()\">\n <mat-icon class=\"material-symbols-outlined\">upload</mat-icon>\n <p>{{data.message}}</p>\n <div *ngIf=\"fileName()\">\n <div *ngIf=\"selectedFile\">\n <p>\n <span class=\"image-name\">{{ fileName() }}</span> ({{\n fileSize()\n }} KB)\n </p>\n <mat-icon class=\"material-symbols-outlined delete-icon\" (click)=\"removeFile()\">delete</mat-icon>\n </div>\n </div>\n </div>\n</div>\n<div style=\"justify-content: flex-end;\" mat-dialog-actions>\n <button (click)=\"onOk()\" [disabled]=\"!selectedFile\" mat-flat-button>Upload</button>\n <button (click)=\"onCancel()\" mat-button>Cancel</button>\n</div>\n\n", styles: [".file-upload-wrapper{display:flex;justify-content:center;align-items:center;flex-direction:column;border:2px dashed #ccc;padding:1rem;margin-bottom:1rem;margin-left:1rem;margin-right:1rem;border-radius:10px;cursor:pointer}.file-upload-wrapper.success{border-color:green}.file-upload-wrapper.error{border-color:red}.file-dropper{display:flex;flex-direction:column;align-items:center}.image-name{font-weight:700}.image-preview{max-width:100%;height:auto;margin-bottom:.5rem;border-radius:10px}.delete-icon{cursor:pointer;color:red}\n"] }]
95
+ args: [{ selector: 'mm-mm-file-upload', template: "<h1 mat-dialog-title>{{data.title}}</h1>\n<div\n class=\"file-upload-wrapper\"\n [class.success]=\"uploadSuccess\"\n [class.error]=\"uploadError\"\n (drop)=\"onFileDrop($event)\"\n (dragover)=\"onDragOver($event)\"\n>\n <input\n type=\"file\"\n accept=\"{{data.fileExtensions}}\"\n (change)=\"onFileChange($event)\"\n hidden\n #fileInput\n />\n <div class=\"file-dropper\" (click)=\"fileInput.click()\">\n <mat-icon class=\"material-symbols-outlined\">upload</mat-icon>\n <p>{{data.message}}</p>\n <div *ngIf=\"fileName()\">\n <div *ngIf=\"selectedFile\">\n <p>\n <span class=\"image-name\">{{ fileName() }}</span> ({{\n fileSize()\n }} KB)\n </p>\n <mat-icon class=\"material-symbols-outlined delete-icon\" (click)=\"removeFile()\">delete</mat-icon>\n </div>\n </div>\n </div>\n</div>\n<div style=\"justify-content: flex-end;\" mat-dialog-actions>\n <button (click)=\"onOk()\" [disabled]=\"!selectedFile\" mat-flat-button>Upload</button>\n <button (click)=\"onCancel()\" mat-button>Cancel</button>\n</div>\n\n", styles: [".file-upload-wrapper{display:flex;justify-content:center;align-items:center;flex-direction:column;border:2px dashed #ccc;padding:1rem;margin-bottom:1rem;margin-left:1rem;margin-right:1rem;border-radius:10px;cursor:pointer}.file-upload-wrapper.success{border-color:green}.file-upload-wrapper.error{border-color:red}.file-dropper{display:flex;flex-direction:column;align-items:center}.image-name{font-weight:700}.image-preview{max-width:100%;height:auto;margin-bottom:.5rem;border-radius:10px}.delete-icon{cursor:pointer;color:red}\n"] }]
92
96
  }], ctorParameters: () => [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
93
97
  type: Inject,
94
98
  args: [MAT_DIALOG_DATA]
@@ -96,4 +100,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
96
100
  type: ViewChild,
97
101
  args: ['fileInput']
98
102
  }] } });
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW0tZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVzaG1ha2Vycy9zaGFyZWQtdWkvc3JjL2xpYi9tbS1maWxlLXVwbG9hZC9tbS1maWxlLXVwbG9hZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZXNobWFrZXJzL3NoYXJlZC11aS9zcmMvbGliL21tLWZpbGUtdXBsb2FkL21tLWZpbGUtdXBsb2FkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakYsT0FBTyxFQUFFLGVBQWUsRUFBZ0IsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7OztBQVN6RSxNQUFNLE9BQU8scUJBQXFCO0lBV2I7SUFDa0I7SUFDM0I7SUFaQSxRQUFRLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3RCLFFBQVEsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckIsY0FBYyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNILFNBQVMsQ0FBeUI7SUFDMUQsWUFBWSxHQUFnQixJQUFJLENBQUM7SUFDakMsYUFBYSxDQUFVO0lBQ3ZCLFdBQVcsQ0FBVTtJQUcvQixZQUNtQixTQUE4QyxFQUM1QixJQUFvQixFQUMvQyxRQUFxQjtRQUZaLGNBQVMsR0FBVCxTQUFTLENBQXFDO1FBQzVCLFNBQUksR0FBSixJQUFJLENBQWdCO1FBQy9DLGFBQVEsR0FBUixRQUFRLENBQWE7UUFFN0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7SUFDN0IsQ0FBQztJQUVELGdDQUFnQztJQUNoQyxZQUFZLENBQUMsS0FBVTtR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bkZVLHFCQUFxQiw4Q0FZdEIsZUFBZTsyRkFaZCxxQkFBcUIsaUtDVmxDLGlsQ0FtQ0E7OzJGRHpCYSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0UsbUJBQW1COzswQkFnQjFCLE1BQU07MkJBQUMsZUFBZTttRUFSUyxTQUFTO3NCQUExQyxTQUFTO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEluamVjdCwgc2lnbmFsLCBWaWV3Q2hpbGQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nXCI7XG5pbXBvcnQgeyBGaWxlVXBsb2FkRGF0YSwgRmlsZVVwbG9hZFJlc3VsdCB9IGZyb20gXCIuLi9tb2RlbHMvY29uZmlybWF0aW9uXCI7XG5pbXBvcnQgeyBNYXRTbmFja0JhciB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXJcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbW0tbW0tZmlsZS11cGxvYWQnLFxuICB0ZW1wbGF0ZVVybDogJy4vbW0tZmlsZS11cGxvYWQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vbW0tZmlsZS11cGxvYWQuY29tcG9uZW50LmNzcydcbn0pXG5leHBvcnQgY2xhc3MgTW1GaWxlVXBsb2FkQ29tcG9uZW50ICB7XG4gIHByb3RlY3RlZCBmaWxlTmFtZSA9IHNpZ25hbCgnJyk7XG4gIHByb3RlY3RlZCBmaWxlU2l6ZSA9IHNpZ25hbCgwKTtcbiAgcHJvdGVjdGVkIHVwbG9hZFByb2dyZXNzID0gc2lnbmFsKDApO1xuICBAVmlld0NoaWxkKCdmaWxlSW5wdXQnKSBwcm90ZWN0ZWQgZmlsZUlucHV0OiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuICBwcm90ZWN0ZWQgc2VsZWN0ZWRGaWxlOiBGaWxlIHwgbnVsbCA9IG51bGw7XG4gIHByb3RlY3RlZCB1cGxvYWRTdWNjZXNzOiBib29sZWFuO1xuICBwcm90ZWN0ZWQgdXBsb2FkRXJyb3I6IGJvb2xlYW47XG5cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPE1tRmlsZVVwbG9hZENvbXBvbmVudD4sXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHByb3RlY3RlZCBkYXRhOiBGaWxlVXBsb2FkRGF0YSxcbiAgICBwcml2YXRlIHNuYWNrQmFyOiBNYXRTbmFja0JhclxuICApIHtcbiAgICB0aGlzLnVwbG9hZEVycm9yID0gZmFsc2U7XG4gICAgdGhpcy51cGxvYWRTdWNjZXNzID0gZmFsc2U7XG4gIH1cblxuICAvLyBIYW5kbGVyIGZvciBmaWxlIGlucHV0IGNoYW5nZVxuICBvbkZpbGVDaGFuZ2UoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IGZpbGUgPSBldmVudC50YXJnZXQuZmlsZXNbMF0gYXMgRmlsZSB8IG51bGw7XG4gICAgdGhpcy51cGxvYWRGaWxlKGZpbGUpO1xuICB9XG5cbiAgLy8gSGFuZGxlciBmb3IgZmlsZSBkcm9wXG4gIG9uRmlsZURyb3AoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgY29uc3QgZmlsZSA9IGV2ZW50LmRhdGFUcmFuc2Zlcj8uZmlsZXNbMF0gYXMgRmlsZSB8IG51bGw7XG4gICAgdGhpcy51cGxvYWRGaWxlKGZpbGUpO1xuICB9XG5cbiAgLy8gUHJldmVudCBkZWZhdWx0IGRyYWdvdmVyIGJlaGF2aW9yXG4gIG9uRHJhZ092ZXIoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cblxuICAvLyBNZXRob2QgdG8gaGFuZGxlIGZpbGUgdXBsb2FkXG4gIHVwbG9hZEZpbGUoZmlsZTogRmlsZSB8IG51bGwpOiB2b2lkIHtcbiAgICBjb25zdCBhbGxvd2VkTWltZVR5cGVzID0gdGhpcy5kYXRhLm1pbWVUeXBlcy5zcGxpdCgnLCcpLm1hcCgobWltZVR5cGUpID0+IG1pbWVUeXBlLnRyaW0oKSk7XG4gICAgaWYgKCFmaWxlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnNvbGUubG9nKGZpbGUudHlwZSk7XG4gICAgaWYgKGFsbG93ZWRNaW1lVHlwZXMubGVuZ3RoID4gMCAmJiBhbGxvd2VkTWltZVR5cGVzLmluY2x1ZGVzKGZpbGUudHlwZSkpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRGaWxlID0gZmlsZTtcbiAgICAgIHRoaXMuZmlsZVNpemUuc2V0KE1hdGgucm91bmQoZmlsZS5zaXplIC8gMTAyNCkpOyAvLyBTZXQgZmlsZSBzaXplIGluIEtCXG5cbiAgICAgIHRoaXMudXBsb2FkU3VjY2VzcyA9IHRydWU7XG4gICAgICB0aGlzLnVwbG9hZEVycm9yID0gZmFsc2U7XG4gICAgICB0aGlzLmZpbGVOYW1lLnNldChmaWxlLm5hbWUpOyAvLyBTZXQgaW1hZ2UgbmFtZVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnVwbG9hZFN1Y2Nlc3MgPSBmYWxzZTtcbiAgICAgIHRoaXMudXBsb2FkRXJyb3IgPSB0cnVlO1xuICAgICAgdGhpcy5zbmFja0Jhci5vcGVuKCdGaWxlIHR5cGUgbm90IHN1cHBvcnRlZCEnLCAnQ2xvc2UnLCB7XG4gICAgICAgIGR1cmF0aW9uOiAzMDAwLFxuICAgICAgICBwYW5lbENsYXNzOiAnZXJyb3InLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLy8gTWV0aG9kIHRvIHJlbW92ZSBhIGZpbGVcbiAgcmVtb3ZlRmlsZSgpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkRmlsZSA9IG51bGw7XG4gICAgdGhpcy5maWxlTmFtZS5zZXQoJycpO1xuICAgIHRoaXMuZmlsZVNpemUuc2V0KDApO1xuICAgIHRoaXMudXBsb2FkU3VjY2VzcyA9IGZhbHNlO1xuICAgIHRoaXMudXBsb2FkRXJyb3IgPSBmYWxzZTtcbiAgICB0aGlzLnVwbG9hZFByb2dyZXNzLnNldCgwKTtcbiAgfVxuXG4gIG9uT2soKTogdm9pZCB7XG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKHtcbiAgICAgIHN1Y2Nlc3M6IHRydWUsXG4gICAgICBzZWxlY3RlZEZpbGU6IHRoaXMuc2VsZWN0ZWRGaWxlXG4gICAgfSBhcyBGaWxlVXBsb2FkUmVzdWx0KSk7XG4gIH1cblxuICBvbkNhbmNlbCgpOiB2b2lkIHtcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgoe1xuICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICBzZWxlY3RlZEZpbGU6IG51bGxcbiAgICB9IGFzIEZpbGVVcGxvYWRSZXN1bHQpKTtcbiAgfVxufVxuIiwiPGgxIG1hdC1kaWFsb2ctdGl0bGU+e3tkYXRhLnRpdGxlfX08L2gxPlxuPGRpdlxuICBjbGFzcz1cImZpbGUtdXBsb2FkLXdyYXBwZXJcIlxuICBbY2xhc3Muc3VjY2Vzc109XCJ1cGxvYWRTdWNjZXNzXCJcbiAgW2NsYXNzLmVycm9yXT1cInVwbG9hZEVycm9yXCJcbiAgKGRyb3ApPVwib25GaWxlRHJvcCgkZXZlbnQpXCJcbiAgKGRyYWdvdmVyKT1cIm9uRHJhZ092ZXIoJGV2ZW50KVwiXG4+XG4gIDxpbnB1dFxuICAgIHR5cGU9XCJmaWxlXCJcbiAgICBhY2NlcHQ9XCJ7e2RhdGEubWltZVR5cGVzfX1cIlxuICAgIChjaGFuZ2UpPVwib25GaWxlQ2hhbmdlKCRldmVudClcIlxuICAgIGhpZGRlblxuICAgICNmaWxlSW5wdXRcbiAgLz5cbiAgPGRpdiBjbGFzcz1cImZpbGUtZHJvcHBlclwiIChjbGljayk9XCJmaWxlSW5wdXQuY2xpY2soKVwiPlxuICAgIDxtYXQtaWNvbiBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWRcIj51cGxvYWQ8L21hdC1pY29uPlxuICAgIDxwPnt7ZGF0YS5tZXNzYWdlfX08L3A+XG4gICAgPGRpdiAqbmdJZj1cImZpbGVOYW1lKClcIj5cbiAgICAgIDxkaXYgKm5nSWY9XCJzZWxlY3RlZEZpbGVcIj5cbiAgICAgICAgPHA+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJpbWFnZS1uYW1lXCI+e3sgZmlsZU5hbWUoKSB9fTwvc3Bhbj4gKHt7XG4gICAgICAgICAgICBmaWxlU2l6ZSgpXG4gICAgICAgICAgfX0gS0IpXG4gICAgICAgIDwvcD5cbiAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCBkZWxldGUtaWNvblwiIChjbGljayk9XCJyZW1vdmVGaWxlKClcIj5kZWxldGU8L21hdC1pY29uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG48ZGl2IHN0eWxlPVwianVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcIiBtYXQtZGlhbG9nLWFjdGlvbnM+XG4gIDxidXR0b24gKGNsaWNrKT1cIm9uT2soKVwiIFtkaXNhYmxlZF09XCIhc2VsZWN0ZWRGaWxlXCIgbWF0LWZsYXQtYnV0dG9uPlVwbG9hZDwvYnV0dG9uPlxuICA8YnV0dG9uIChjbGljayk9XCJvbkNhbmNlbCgpXCIgbWF0LWJ1dHRvbj5DYW5jZWw8L2J1dHRvbj5cbjwvZGl2PlxuXG4iXX0=
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW0tZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVzaG1ha2Vycy9zaGFyZWQtdWkvc3JjL2xpYi9tbS1maWxlLXVwbG9hZC9tbS1maWxlLXVwbG9hZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZXNobWFrZXJzL3NoYXJlZC11aS9zcmMvbGliL21tLWZpbGUtdXBsb2FkL21tLWZpbGUtdXBsb2FkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakYsT0FBTyxFQUFFLGVBQWUsRUFBZ0IsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7OztBQVN6RSxNQUFNLE9BQU8scUJBQXFCO0lBV2I7SUFDa0I7SUFDM0I7SUFaQSxRQUFRLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3RCLFFBQVEsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckIsY0FBYyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNILFNBQVMsQ0FBeUI7SUFDMUQsWUFBWSxHQUFnQixJQUFJLENBQUM7SUFDakMsYUFBYSxDQUFVO0lBQ3ZCLFdBQVcsQ0FBVTtJQUcvQixZQUNtQixTQUE4QyxFQUM1QixJQUFvQixFQUMvQyxRQUFxQjtRQUZaLGNBQVMsR0FBVCxTQUFTLENBQXFDO1FBQzVCLFNBQUksR0FBSixJQUFJLENBQWdCO1FBQy9DLGFBQVEsR0FBUixRQUFRLENBQWE7UUFFN0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7SUFDN0IsQ0FBQztJQUVELGdDQUFnQztJQUNoQyxZQUFZLENBQUMsS0FBVTtR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R0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1FBQzNCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUU7WUFDcEIsT0FBTyxFQUFFLElBQUk7WUFDYixZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7U0FDWCxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBRTtZQUNwQixPQUFPLEVBQUUsS0FBSztZQUNkLFlBQVksRUFBRSxJQUFJO1NBQ0UsQ0FBQyxDQUFDO0lBQzFCLENBQUM7dUdBeEZVLHFCQUFxQiw4Q0FZdEIsZUFBZTsyRkFaZCxxQkFBcUIsaUtDVmxDLHNsQ0FtQ0E7OzJGRHpCYSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0UsbUJBQW1COzswQkFnQjFCLE1BQU07MkJBQUMsZUFBZTttRUFSUyxTQUFTO3NCQUExQyxTQUFTO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEluamVjdCwgc2lnbmFsLCBWaWV3Q2hpbGQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nXCI7XG5pbXBvcnQgeyBGaWxlVXBsb2FkRGF0YSwgRmlsZVVwbG9hZFJlc3VsdCB9IGZyb20gXCIuLi9tb2RlbHMvY29uZmlybWF0aW9uXCI7XG5pbXBvcnQgeyBNYXRTbmFja0JhciB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXJcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbW0tbW0tZmlsZS11cGxvYWQnLFxuICB0ZW1wbGF0ZVVybDogJy4vbW0tZmlsZS11cGxvYWQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vbW0tZmlsZS11cGxvYWQuY29tcG9uZW50LmNzcydcbn0pXG5leHBvcnQgY2xhc3MgTW1GaWxlVXBsb2FkQ29tcG9uZW50ICB7XG4gIHByb3RlY3RlZCBmaWxlTmFtZSA9IHNpZ25hbCgnJyk7XG4gIHByb3RlY3RlZCBmaWxlU2l6ZSA9IHNpZ25hbCgwKTtcbiAgcHJvdGVjdGVkIHVwbG9hZFByb2dyZXNzID0gc2lnbmFsKDApO1xuICBAVmlld0NoaWxkKCdmaWxlSW5wdXQnKSBwcm90ZWN0ZWQgZmlsZUlucHV0OiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuICBwcm90ZWN0ZWQgc2VsZWN0ZWRGaWxlOiBGaWxlIHwgbnVsbCA9IG51bGw7XG4gIHByb3RlY3RlZCB1cGxvYWRTdWNjZXNzOiBib29sZWFuO1xuICBwcm90ZWN0ZWQgdXBsb2FkRXJyb3I6IGJvb2xlYW47XG5cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPE1tRmlsZVVwbG9hZENvbXBvbmVudD4sXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHByb3RlY3RlZCBkYXRhOiBGaWxlVXBsb2FkRGF0YSxcbiAgICBwcml2YXRlIHNuYWNrQmFyOiBNYXRTbmFja0JhclxuICApIHtcbiAgICB0aGlzLnVwbG9hZEVycm9yID0gZmFsc2U7XG4gICAgdGhpcy51cGxvYWRTdWNjZXNzID0gZmFsc2U7XG4gIH1cblxuICAvLyBIYW5kbGVyIGZvciBmaWxlIGlucHV0IGNoYW5nZVxuICBvbkZpbGVDaGFuZ2UoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IGZpbGUgPSBldmVudC50YXJnZXQuZmlsZXNbMF0gYXMgRmlsZSB8IG51bGw7XG4gICAgdGhpcy51cGxvYWRGaWxlKGZpbGUpO1xuICB9XG5cbiAgLy8gSGFuZGxlciBmb3IgdGhlIGZpbGUgZHJvcFxuICBvbkZpbGVEcm9wKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGNvbnN0IGZpbGUgPSBldmVudC5kYXRhVHJhbnNmZXI/LmZpbGVzWzBdIGFzIEZpbGUgfCBudWxsO1xuICAgIHRoaXMudXBsb2FkRmlsZShmaWxlKTtcbiAgfVxuXG4gIC8vIFByZXZlbnQgZGVmYXVsdCBkcmFnb3ZlciBiZWhhdmlvclxuICBvbkRyYWdPdmVyKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG5cbiAgLy8gTWV0aG9kIHRvIGhhbmRsZSBmaWxlIHVwbG9hZFxuICB1cGxvYWRGaWxlKGZpbGU6IEZpbGUgfCBudWxsKTogdm9pZCB7XG4gICAgY29uc3QgYWxsb3dlZE1pbWVUeXBlcyA9IHRoaXMuZGF0YS5taW1lVHlwZXMuc3BsaXQoJywnKS5tYXAoKG1pbWVUeXBlKSA9PiBtaW1lVHlwZS50cmltKCkpO1xuICAgIGNvbnN0IGFsbG93ZWRGaWxlRXh0ZW5zaW9ucyA9IHRoaXMuZGF0YS5maWxlRXh0ZW5zaW9ucz8uc3BsaXQoJywnKS5tYXAoKG1pbWVUeXBlKSA9PiBtaW1lVHlwZS50cmltKCkpID8/IFtdO1xuICAgIGlmICghZmlsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zb2xlLmxvZyhcInR5cGU6IFwiICsgZmlsZS50eXBlKTtcbiAgICBjb25zb2xlLmxvZyhcIm5hbWU6IFwiICsgZmlsZS5uYW1lKTtcbiAgICBjb25zdCBleHRlbnNpb24gPSBmaWxlLm5hbWUuc3Vic3RyaW5nKGZpbGUubmFtZS5sYXN0SW5kZXhPZignLicpKS50b0xvd2VyQ2FzZSgpO1xuICAgIGNvbnNvbGUubG9nKFwiZXh0ZW5zaW9uOiBcIiArIGV4dGVuc2lvbik7XG5cbiAgICBpZiAoYWxsb3dlZEZpbGVFeHRlbnNpb25zLmluY2x1ZGVzKGV4dGVuc2lvbikgfHwgYWxsb3dlZE1pbWVUeXBlcy5pbmNsdWRlcyhmaWxlLnR5cGUpKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkRmlsZSA9IGZpbGU7XG4gICAgICB0aGlzLmZpbGVTaXplLnNldChNYXRoLnJvdW5kKGZpbGUuc2l6ZSAvIDEwMjQpKTsgLy8gU2V0IGZpbGUgc2l6ZSBpbiBLQlxuXG4gICAgICB0aGlzLnVwbG9hZFN1Y2Nlc3MgPSB0cnVlO1xuICAgICAgdGhpcy51cGxvYWRFcnJvciA9IGZhbHNlO1xuICAgICAgdGhpcy5maWxlTmFtZS5zZXQoZmlsZS5uYW1lKTsgLy8gU2V0IGltYWdlIG5hbWVcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy51cGxvYWRTdWNjZXNzID0gZmFsc2U7XG4gICAgICB0aGlzLnVwbG9hZEVycm9yID0gdHJ1ZTtcbiAgICAgIHRoaXMuc25hY2tCYXIub3BlbignRmlsZSB0eXBlIG5vdCBzdXBwb3J0ZWQhJywgJ0Nsb3NlJywge1xuICAgICAgICBkdXJhdGlvbjogMzAwMCxcbiAgICAgICAgcGFuZWxDbGFzczogJ2Vycm9yJyxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8vIE1ldGhvZCB0byByZW1vdmUgYSBmaWxlXG4gIHJlbW92ZUZpbGUoKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZEZpbGUgPSBudWxsO1xuICAgIHRoaXMuZmlsZU5hbWUuc2V0KCcnKTtcbiAgICB0aGlzLmZpbGVTaXplLnNldCgwKTtcbiAgICB0aGlzLnVwbG9hZFN1Y2Nlc3MgPSBmYWxzZTtcbiAgICB0aGlzLnVwbG9hZEVycm9yID0gZmFsc2U7XG4gICAgdGhpcy51cGxvYWRQcm9ncmVzcy5zZXQoMCk7XG4gIH1cblxuICBvbk9rKCk6IHZvaWQge1xuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCh7XG4gICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgc2VsZWN0ZWRGaWxlOiB0aGlzLnNlbGVjdGVkRmlsZVxuICAgIH0gYXMgRmlsZVVwbG9hZFJlc3VsdCkpO1xuICB9XG5cbiAgb25DYW5jZWwoKTogdm9pZCB7XG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKHtcbiAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgc2VsZWN0ZWRGaWxlOiBudWxsXG4gICAgfSBhcyBGaWxlVXBsb2FkUmVzdWx0KSk7XG4gIH1cbn1cbiIsIjxoMSBtYXQtZGlhbG9nLXRpdGxlPnt7ZGF0YS50aXRsZX19PC9oMT5cbjxkaXZcbiAgY2xhc3M9XCJmaWxlLXVwbG9hZC13cmFwcGVyXCJcbiAgW2NsYXNzLnN1Y2Nlc3NdPVwidXBsb2FkU3VjY2Vzc1wiXG4gIFtjbGFzcy5lcnJvcl09XCJ1cGxvYWRFcnJvclwiXG4gIChkcm9wKT1cIm9uRmlsZURyb3AoJGV2ZW50KVwiXG4gIChkcmFnb3Zlcik9XCJvbkRyYWdPdmVyKCRldmVudClcIlxuPlxuICA8aW5wdXRcbiAgICB0eXBlPVwiZmlsZVwiXG4gICAgYWNjZXB0PVwie3tkYXRhLmZpbGVFeHRlbnNpb25zfX1cIlxuICAgIChjaGFuZ2UpPVwib25GaWxlQ2hhbmdlKCRldmVudClcIlxuICAgIGhpZGRlblxuICAgICNmaWxlSW5wdXRcbiAgLz5cbiAgPGRpdiBjbGFzcz1cImZpbGUtZHJvcHBlclwiIChjbGljayk9XCJmaWxlSW5wdXQuY2xpY2soKVwiPlxuICAgIDxtYXQtaWNvbiBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWRcIj51cGxvYWQ8L21hdC1pY29uPlxuICAgIDxwPnt7ZGF0YS5tZXNzYWdlfX08L3A+XG4gICAgPGRpdiAqbmdJZj1cImZpbGVOYW1lKClcIj5cbiAgICAgIDxkaXYgKm5nSWY9XCJzZWxlY3RlZEZpbGVcIj5cbiAgICAgICAgPHA+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJpbWFnZS1uYW1lXCI+e3sgZmlsZU5hbWUoKSB9fTwvc3Bhbj4gKHt7XG4gICAgICAgICAgICBmaWxlU2l6ZSgpXG4gICAgICAgICAgfX0gS0IpXG4gICAgICAgIDwvcD5cbiAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCBkZWxldGUtaWNvblwiIChjbGljayk9XCJyZW1vdmVGaWxlKClcIj5kZWxldGU8L21hdC1pY29uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG48ZGl2IHN0eWxlPVwianVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcIiBtYXQtZGlhbG9nLWFjdGlvbnM+XG4gIDxidXR0b24gKGNsaWNrKT1cIm9uT2soKVwiIFtkaXNhYmxlZF09XCIhc2VsZWN0ZWRGaWxlXCIgbWF0LWZsYXQtYnV0dG9uPlVwbG9hZDwvYnV0dG9uPlxuICA8YnV0dG9uIChjbGljayk9XCJvbkNhbmNlbCgpXCIgbWF0LWJ1dHRvbj5DYW5jZWw8L2J1dHRvbj5cbjwvZGl2PlxuXG4iXX0=
@@ -13,10 +13,10 @@ export class MmMessageDetailsComponent {
13
13
  this.errorMessage = data.errorMessage;
14
14
  }
15
15
  ngOnInit() { }
16
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: MmMessageDetailsComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
17
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: MmMessageDetailsComponent, selector: "mm-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 class=\"primary-button\" mat-dialog-close mat-flat-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] ", 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.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }] });
16
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: MmMessageDetailsComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
17
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: MmMessageDetailsComponent, selector: "mm-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 class=\"primary-button\" mat-dialog-close mat-flat-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] ", 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.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }] });
18
18
  }
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: MmMessageDetailsComponent, decorators: [{
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: MmMessageDetailsComponent, decorators: [{
20
20
  type: Component,
21
21
  args: [{ selector: 'mm-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 class=\"primary-button\" mat-dialog-close mat-flat-button>OK</button>\n</mat-dialog-actions>\n" }]
22
22
  }], ctorParameters: () => [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
@@ -252,8 +252,8 @@ export class MmMultipleEntitySelectInputComponent {
252
252
  this.stateChanges.next();
253
253
  }
254
254
  }
255
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: MmMultipleEntitySelectInputComponent, deps: [{ token: i0.ElementRef }, { token: i0.Injector }, { token: i1.FocusMonitor }], target: i0.ɵɵFactoryTarget.Component });
256
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: MmMultipleEntitySelectInputComponent, selector: "mm-multiple-entity-select", inputs: { dataSource: "dataSource", disabled: "disabled", placeholder: "placeholder", required: "required", prefix: "prefix" }, host: { properties: { "id": "this.id", "attr.aria-describedby": "this.describedBy", "class.floating": "this.shouldLabelFloat" } }, providers: [
255
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: MmMultipleEntitySelectInputComponent, deps: [{ token: i0.ElementRef }, { token: i0.Injector }, { token: i1.FocusMonitor }], target: i0.ɵɵFactoryTarget.Component });
256
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: MmMultipleEntitySelectInputComponent, selector: "mm-multiple-entity-select", inputs: { dataSource: "dataSource", disabled: "disabled", placeholder: "placeholder", required: "required", prefix: "prefix" }, host: { properties: { "id": "this.id", "attr.aria-describedby": "this.describedBy", "class.floating": "this.shouldLabelFloat" } }, providers: [
257
257
  {
258
258
  provide: NG_VALUE_ACCESSOR,
259
259
  useExisting: forwardRef(() => MmMultipleEntitySelectInputComponent),
@@ -270,7 +270,7 @@ export class MmMultipleEntitySelectInputComponent {
270
270
  }
271
271
  ], viewQueries: [{ propertyName: "inputField", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "<mat-chip-grid #list>\n <mat-chip-row *ngFor=\"let entity of valuesFormControl.value\"\n (removed)=\"remove(entity)\"\n [editable]=\"false\"\n [aria-description]=\"'press enter to edit ' + dataSource?.onDisplayEntity(entity) ?? null\">\n {{dataSource?.onDisplayEntity(entity) ?? null}}\n <button matChipRemove [attr.aria-label]=\"'remove ' + dataSource?.onDisplayEntity(entity) ?? null\">\n <mat-icon class=\"material-symbols-outlined\">cancel</mat-icon>\n </button>\n </mat-chip-row>\n <input #input (blur)=\"onTouched()\" (focusout)=\"onFocusOut()\" [formControl]=\"searchFormControl\"\n [matAutocomplete]=\"auto\"\n [matChipInputFor]=\"list\"\n matChipInputAddOnBlur=\"true\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\n [placeholder]=\"placeholder\" matInput>\n <mat-autocomplete #auto=\"matAutocomplete\" (closed)=\"onEntityClosed()\"\n (optionActivated)=\"onEntityActivated($event)\" (optionSelected)=\"onEntitySelected($event)\"\n [displayWith]=\"dataSource?.onDisplayEntity ?? null\">\n <mat-option *ngIf=\"isLoading\" class=\"is-loading\">\n <mat-spinner diameter=\"50\"></mat-spinner>\n </mat-option>\n <ng-container *ngIf=\"!isLoading\">\n <mat-option *ngFor=\"let entity of filteredEntities\" [value]=\"entity\">\n {{dataSource?.onDisplayEntity(entity) ?? null}}\n </mat-option>\n </ng-container>\n </mat-autocomplete>\n</mat-chip-grid>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i3.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { 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.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i7.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i7.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i7.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i7.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i9.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: i9.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i9.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
272
272
  }
273
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: MmMultipleEntitySelectInputComponent, decorators: [{
273
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: MmMultipleEntitySelectInputComponent, decorators: [{
274
274
  type: Component,
275
275
  args: [{ selector: 'mm-multiple-entity-select', host: {
276
276
  '[id]': 'id',
@@ -30,10 +30,10 @@ export class MmNotificationBarComponent {
30
30
  }
31
31
  });
32
32
  }
33
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: MmNotificationBarComponent, deps: [{ token: i1.MessageService }, { token: i2.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
34
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: MmNotificationBarComponent, selector: "mm-notification-bar", ngImport: i0, template: "<mat-toolbar [hidden]=\"!errorMessage\" class=\"mm-notification-bar-background\">\n <a (click)=\"onShowDetails()\"><span class=\"mat-small\"><u>{{ errorMessage?.title }}</u></span></a>\n\n <!-- This fills the remaining space of the current row -->\n <span class=\"notification-fill-remaining-space\"></span>\n\n <button (click)=\"onHide()\" class=\"mm-notification-bar-button\" mat-fab><mat-icon class=\"material-symbols-outlined\">close</mat-icon></button>\n</mat-toolbar>\n", styles: [".notification-fill-remaining-space{flex:1 1 auto}\n"], dependencies: [{ kind: "component", type: i3.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i4.MatFabButton, selector: "button[mat-fab]", inputs: ["extended"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
33
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: MmNotificationBarComponent, deps: [{ token: i1.MessageService }, { token: i2.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
34
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: MmNotificationBarComponent, selector: "mm-notification-bar", ngImport: i0, template: "<mat-toolbar [hidden]=\"!errorMessage\" class=\"mm-notification-bar-background\">\n <a (click)=\"onShowDetails()\"><span class=\"mat-small\"><u>{{ errorMessage?.title }}</u></span></a>\n\n <!-- This fills the remaining space of the current row -->\n <span class=\"notification-fill-remaining-space\"></span>\n\n <button (click)=\"onHide()\" class=\"mm-notification-bar-button\" mat-fab><mat-icon class=\"material-symbols-outlined\">close</mat-icon></button>\n</mat-toolbar>\n", styles: [".notification-fill-remaining-space{flex:1 1 auto}\n"], dependencies: [{ kind: "component", type: i3.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i4.MatFabButton, selector: "button[mat-fab]", inputs: ["extended"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
35
35
  }
36
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: MmNotificationBarComponent, decorators: [{
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: MmNotificationBarComponent, decorators: [{
37
37
  type: Component,
38
38
  args: [{ selector: 'mm-notification-bar', template: "<mat-toolbar [hidden]=\"!errorMessage\" class=\"mm-notification-bar-background\">\n <a (click)=\"onShowDetails()\"><span class=\"mat-small\"><u>{{ errorMessage?.title }}</u></span></a>\n\n <!-- This fills the remaining space of the current row -->\n <span class=\"notification-fill-remaining-space\"></span>\n\n <button (click)=\"onHide()\" class=\"mm-notification-bar-button\" mat-fab><mat-icon class=\"material-symbols-outlined\">close</mat-icon></button>\n</mat-toolbar>\n", styles: [".notification-fill-remaining-space{flex:1 1 auto}\n"] }]
39
39
  }], ctorParameters: () => [{ type: i1.MessageService }, { type: i2.MatDialog }] });
@@ -21,10 +21,10 @@ export class MmProgressWindowComponent {
21
21
  onCancelClick() {
22
22
  this.data.cancelOperation();
23
23
  }
24
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: MmProgressWindowComponent, deps: [{ token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
25
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: MmProgressWindowComponent, selector: "mm-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 style=\"justify-content: flex-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: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i3.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i3.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i3.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }] });
24
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: MmProgressWindowComponent, deps: [{ token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
25
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: MmProgressWindowComponent, selector: "mm-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 style=\"justify-content: flex-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: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i3.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i3.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i3.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }] });
26
26
  }
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: MmProgressWindowComponent, decorators: [{
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: MmProgressWindowComponent, decorators: [{
28
28
  type: Component,
29
29
  args: [{ selector: 'mm-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 style=\"justify-content: flex-end;\" mat-dialog-actions>\n <button (click)=\"onCancelClick()\" *ngIf=\"data.isCancelOperationAvailable\" mat-button>Cancel</button>\n</div>\n" }]
30
30
  }], ctorParameters: () => [{ type: undefined, decorators: [{
@@ -24,6 +24,7 @@ import { FileUploadService } from "./services/file-upload.service";
24
24
  import { MmFileUploadComponent } from "./mm-file-upload/mm-file-upload.component";
25
25
  import { MatListModule } from "@angular/material/list";
26
26
  import { RouterLink } from "@angular/router";
27
+ import { MmTableSimpleComponent } from "./mm-table-simple/mm-table-simple.component";
27
28
  import * as i0 from "@angular/core";
28
29
  export class MmSharedUiModule {
29
30
  static forRoot() {
@@ -36,8 +37,8 @@ export class MmSharedUiModule {
36
37
  ]
37
38
  };
38
39
  }
39
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: MmSharedUiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
40
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.4", ngImport: i0, type: MmSharedUiModule, declarations: [MmBreadcrumbComponent,
40
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: MmSharedUiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
41
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.5", ngImport: i0, type: MmSharedUiModule, declarations: [MmBreadcrumbComponent,
41
42
  MmConfirmationWindowComponent,
42
43
  MmProgressWindowComponent,
43
44
  MmNotificationBarComponent,
@@ -58,14 +59,16 @@ export class MmSharedUiModule {
58
59
  ReactiveFormsModule,
59
60
  MatIcon,
60
61
  MatListModule,
61
- RouterLink], exports: [MmBreadcrumbComponent,
62
+ RouterLink,
63
+ MmTableSimpleComponent], exports: [MmBreadcrumbComponent,
62
64
  MmConfirmationWindowComponent,
63
65
  MmNotificationBarComponent,
64
66
  MmAutocompleteInputComponent,
65
67
  MmEntitySelectInputComponent,
66
68
  MmMultipleEntitySelectInputComponent,
67
- MmFileUploadComponent] });
68
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: MmSharedUiModule, imports: [CommonModule,
69
+ MmFileUploadComponent,
70
+ MmTableSimpleComponent] });
71
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: MmSharedUiModule, imports: [CommonModule,
69
72
  MatToolbarModule,
70
73
  MatButtonModule,
71
74
  MatSnackBarModule,
@@ -77,9 +80,10 @@ export class MmSharedUiModule {
77
80
  MatIconModule,
78
81
  ReactiveFormsModule,
79
82
  MatIcon,
80
- MatListModule] });
83
+ MatListModule,
84
+ MmTableSimpleComponent] });
81
85
  }
82
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: MmSharedUiModule, decorators: [{
86
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: MmSharedUiModule, decorators: [{
83
87
  type: NgModule,
84
88
  args: [{
85
89
  declarations: [
@@ -100,7 +104,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
100
104
  MmAutocompleteInputComponent,
101
105
  MmEntitySelectInputComponent,
102
106
  MmMultipleEntitySelectInputComponent,
103
- MmFileUploadComponent
107
+ MmFileUploadComponent,
108
+ MmTableSimpleComponent
104
109
  ],
105
110
  imports: [
106
111
  CommonModule,
@@ -116,8 +121,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
116
121
  ReactiveFormsModule,
117
122
  MatIcon,
118
123
  MatListModule,
119
- RouterLink
124
+ RouterLink,
125
+ MmTableSimpleComponent
120
126
  ]
121
127
  }]
122
128
  }] });
123
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW0tc2hhcmVkLXVpLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lc2htYWtlcnMvc2hhcmVkLXVpL3NyYy9saWIvbW0tc2hhcmVkLXVpLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDakcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUM5RixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUN2RyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDOUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDekcsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sNkVBQTZFLENBQUM7QUFDbkksT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDaEUsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDOUUsT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFDeEcsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFDNUYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbkUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUF3QzdDLE1BQU0sT0FBTyxnQkFBZ0I7SUFDM0IsTUFBTSxDQUFDLE9BQU87UUFDWixPQUFPO1lBQ0wsUUFBUSxFQUFFLGdCQUFnQjtZQUMxQixTQUFTLEVBQUU7Z0JBQ1QsaUJBQWlCO2dCQUNqQixtQkFBbUI7Z0JBQ25CLHVCQUF1QjthQUN4QjtTQUNGLENBQUM7SUFDSixDQUFDO3VHQVZVLGdCQUFnQjt3R0FBaEIsZ0JBQWdCLGlCQXBDekIscUJBQXFCO1lBQ3JCLDZCQUE2QjtZQUM3Qix5QkFBeUI7WUFDekIsMEJBQTBCO1lBQzFCLHlCQUF5QjtZQUN6Qiw0QkFBNEI7WUFDNUIsNEJBQTRCO1lBQzVCLG9DQUFvQztZQUNwQyxxQkFBcUIsYUFZckIsWUFBWTtZQUNaLGdCQUFnQjtZQUNoQixlQUFlO1lBQ2YsaUJBQWlCO1lBQ2pCLGVBQWU7WUFDZixxQkFBcUI7WUFDckIsY0FBYztZQUNkLHdCQUF3QjtZQUN4QixjQUFjO1lBQ2QsYUFBYTtZQUNiLG1CQUFtQjtZQUNuQixPQUFPO1lBQ1AsYUFBYTtZQUNiLFVBQVUsYUF0QlYscUJBQXFCO1lBQ3JCLDZCQUE2QjtZQUM3QiwwQkFBMEI7WUFDMUIsNEJBQTRCO1lBQzVCLDRCQUE0QjtZQUM1QixvQ0FBb0M7WUFDcEMscUJBQXFCO3dHQW1CWixnQkFBZ0IsWUFoQnpCLFlBQVk7WUFDWixnQkFBZ0I7WUFDaEIsZUFBZTtZQUNmLGlCQUFpQjtZQUNqQixlQUFlO1lBQ2YscUJBQXFCO1lBQ3JCLGNBQWM7WUFDZCx3QkFBd0I7WUFDeEIsY0FBYztZQUNkLGFBQWE7WUFDYixtQkFBbUI7WUFDbkIsT0FBTztZQUNQLGFBQWE7OzJGQUlKLGdCQUFnQjtrQkF0QzVCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLHFCQUFxQjt3QkFDckIsNkJBQTZCO3dCQUM3Qix5QkFBeUI7d0JBQ3pCLDBCQUEwQjt3QkFDMUIseUJBQXlCO3dCQUN6Qiw0QkFBNEI7d0JBQzVCLDRCQUE0Qjt3QkFDNUIsb0NBQW9DO3dCQUNwQyxxQkFBcUI7cUJBQ3RCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxxQkFBcUI7d0JBQ3JCLDZCQUE2Qjt3QkFDN0IsMEJBQTBCO3dCQUMxQiw0QkFBNEI7d0JBQzVCLDRCQUE0Qjt3QkFDNUIsb0NBQW9DO3dCQUNwQyxxQkFBcUI7cUJBQ3RCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixpQkFBaUI7d0JBQ2pCLGVBQWU7d0JBQ2YscUJBQXFCO3dCQUNyQixjQUFjO3dCQUNkLHdCQUF3Qjt3QkFDeEIsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLG1CQUFtQjt3QkFDbkIsT0FBTzt3QkFDUCxhQUFhO3dCQUNiLFVBQVU7cUJBQ1g7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTW1Ob3RpZmljYXRpb25CYXJDb21wb25lbnQgfSBmcm9tICcuL21tLW5vdGlmaWNhdGlvbi1iYXIvbW0tbm90aWZpY2F0aW9uLWJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0VG9vbGJhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2xiYXInO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdFNuYWNrQmFyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcbmltcG9ydCB7IE1hdERpYWxvZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBNbU1lc3NhZ2VEZXRhaWxzQ29tcG9uZW50IH0gZnJvbSAnLi9tbS1tZXNzYWdlLWRldGFpbHMvbW0tbWVzc2FnZS1kZXRhaWxzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNbUF1dG9jb21wbGV0ZUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9tbS1hdXRvY29tcGxldGUtaW5wdXQvbW0tYXV0b2NvbXBsZXRlLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNbUVudGl0eVNlbGVjdElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9tbS1lbnRpdHktc2VsZWN0LWlucHV0L21tLWVudGl0eS1zZWxlY3QtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IE1tTXVsdGlwbGVFbnRpdHlTZWxlY3RJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vbW0tbXVsdGlwbGUtZW50aXR5LXNlbGVjdC1pbnB1dC9tbS1tdWx0aXBsZS1lbnRpdHktc2VsZWN0LWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXRDaGlwc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoaXBzJztcbmltcG9ydCB7IE1hdEljb24sIE1hdEljb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvblwiO1xuaW1wb3J0IHtNbUJyZWFkY3J1bWJDb21wb25lbnR9IGZyb20gXCIuL21tLWJyZWFkY3J1bWIvbW0tYnJlYWRjcnVtYi5jb21wb25lbnRcIjtcbmltcG9ydCB7TW1Db25maXJtYXRpb25XaW5kb3dDb21wb25lbnR9IGZyb20gXCIuL21tLWNvbmZpcm1hdGlvbi13aW5kb3cvbW0tY29uZmlybWF0aW9uLXdpbmRvdy5jb21wb25lbnRcIjtcbmltcG9ydCB7TW1Qcm9ncmVzc1dpbmRvd0NvbXBvbmVudH0gZnJvbSBcIi4vbW0tcHJvZ3Jlc3Mtd2luZG93L21tLXByb2dyZXNzLXdpbmRvdy5jb21wb25lbnRcIjtcbmltcG9ydCB7IENvbmZpcm1hdGlvblNlcnZpY2UgfSBmcm9tIFwiLi9zZXJ2aWNlcy9jb25maXJtYXRpb24uc2VydmljZVwiO1xuaW1wb3J0IHsgUHJvZ3Jlc3NOb3RpZmllclNlcnZpY2UgfSBmcm9tIFwiLi9zZXJ2aWNlcy9wcm9ncmVzcy1ub3RpZmllci5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBGaWxlVXBsb2FkU2VydmljZSB9IGZyb20gXCIuL3NlcnZpY2VzL2ZpbGUtdXBsb2FkLnNlcnZpY2VcIjtcbmltcG9ydCB7IE1tRmlsZVVwbG9hZENvbXBvbmVudCB9IGZyb20gXCIuL21tLWZpbGUtdXBsb2FkL21tLWZpbGUtdXBsb2FkLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgTWF0TGlzdE1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9saXN0XCI7XG5pbXBvcnQgeyBSb3V0ZXJMaW5rIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBNbUJyZWFkY3J1bWJDb21wb25lbnQsXG4gICAgTW1Db25maXJtYXRpb25XaW5kb3dDb21wb25lbnQsXG4gICAgTW1Qcm9ncmVzc1dpbmRvd0NvbXBvbmVudCxcbiAgICBNbU5vdGlmaWNhdGlvbkJhckNvbXBvbmVudCxcbiAgICBNbU1lc3NhZ2VEZXRhaWxzQ29tcG9uZW50LFxuICAgIE1tQXV0b2NvbXBsZXRlSW5wdXRDb21wb25lbnQsXG4gICAgTW1FbnRpdHlTZWxlY3RJbnB1dENvbXBvbmVudCxcbiAgICBNbU11bHRpcGxlRW50aXR5U2VsZWN0SW5wdXRDb21wb25lbnQsXG4gICAgTW1GaWxlVXBsb2FkQ29tcG9uZW50XG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBNbUJyZWFkY3J1bWJDb21wb25lbnQsXG4gICAgTW1Db25maXJtYXRpb25XaW5kb3dDb21wb25lbnQsXG4gICAgTW1Ob3RpZmljYXRpb25CYXJDb21wb25lbnQsXG4gICAgTW1BdXRvY29tcGxldGVJbnB1dENvbXBvbmVudCxcbiAgICBNbUVudGl0eVNlbGVjdElucHV0Q29tcG9uZW50LFxuICAgIE1tTXVsdGlwbGVFbnRpdHlTZWxlY3RJbnB1dENvbXBvbmVudCxcbiAgICBNbUZpbGVVcGxvYWRDb21wb25lbnRcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBNYXRUb29sYmFyTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRTbmFja0Jhck1vZHVsZSxcbiAgICBNYXREaWFsb2dNb2R1bGUsXG4gICAgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSxcbiAgICBNYXRDaGlwc01vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgTWF0SWNvbixcbiAgICBNYXRMaXN0TW9kdWxlLFxuICAgIFJvdXRlckxpbmtcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBNbVNoYXJlZFVpTW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxNbVNoYXJlZFVpTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBNbVNoYXJlZFVpTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIEZpbGVVcGxvYWRTZXJ2aWNlLFxuICAgICAgICBDb25maXJtYXRpb25TZXJ2aWNlLFxuICAgICAgICBQcm9ncmVzc05vdGlmaWVyU2VydmljZVxuICAgICAgXVxuICAgIH07XG4gIH1cbn1cbiJdfQ==
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW0tc2hhcmVkLXVpLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lc2htYWtlcnMvc2hhcmVkLXVpL3NyYy9saWIvbW0tc2hhcmVkLXVpLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDakcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUM5RixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUN2RyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDOUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDekcsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sNkVBQTZFLENBQUM7QUFDbkksT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxPQUFP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dmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTW1Ob3RpZmljYXRpb25CYXJDb21wb25lbnQgfSBmcm9tICcuL21tLW5vdGlmaWNhdGlvbi1iYXIvbW0tbm90aWZpY2F0aW9uLWJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0VG9vbGJhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2xiYXInO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdFNuYWNrQmFyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcbmltcG9ydCB7IE1hdERpYWxvZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBNbU1lc3NhZ2VEZXRhaWxzQ29tcG9uZW50IH0gZnJvbSAnLi9tbS1tZXNzYWdlLWRldGFpbHMvbW0tbWVzc2FnZS1kZXRhaWxzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNbUF1dG9jb21wbGV0ZUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9tbS1hdXRvY29tcGxldGUtaW5wdXQvbW0tYXV0b2NvbXBsZXRlLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNbUVudGl0eVNlbGVjdElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9tbS1lbnRpdHktc2VsZWN0LWlucHV0L21tLWVudGl0eS1zZWxlY3QtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IE1tTXVsdGlwbGVFbnRpdHlTZWxlY3RJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vbW0tbXVsdGlwbGUtZW50aXR5LXNlbGVjdC1pbnB1dC9tbS1tdWx0aXBsZS1lbnRpdHktc2VsZWN0LWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXRDaGlwc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoaXBzJztcbmltcG9ydCB7IE1hdEljb24sIE1hdEljb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvblwiO1xuaW1wb3J0IHtNbUJyZWFkY3J1bWJDb21wb25lbnR9IGZyb20gXCIuL21tLWJyZWFkY3J1bWIvbW0tYnJlYWRjcnVtYi5jb21wb25lbnRcIjtcbmltcG9ydCB7TW1Db25maXJtYXRpb25XaW5kb3dDb21wb25lbnR9IGZyb20gXCIuL21tLWNvbmZpcm1hdGlvbi13aW5kb3cvbW0tY29uZmlybWF0aW9uLXdpbmRvdy5jb21wb25lbnRcIjtcbmltcG9ydCB7TW1Qcm9ncmVzc1dpbmRvd0NvbXBvbmVudH0gZnJvbSBcIi4vbW0tcHJvZ3Jlc3Mtd2luZG93L21tLXByb2dyZXNzLXdpbmRvdy5jb21wb25lbnRcIjtcbmltcG9ydCB7IENvbmZpcm1hdGlvblNlcnZpY2UgfSBmcm9tIFwiLi9zZXJ2aWNlcy9jb25maXJtYXRpb24uc2VydmljZVwiO1xuaW1wb3J0IHsgUHJvZ3Jlc3NOb3RpZmllclNlcnZpY2UgfSBmcm9tIFwiLi9zZXJ2aWNlcy9wcm9ncmVzcy1ub3RpZmllci5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBGaWxlVXBsb2FkU2VydmljZSB9IGZyb20gXCIuL3NlcnZpY2VzL2ZpbGUtdXBsb2FkLnNlcnZpY2VcIjtcbmltcG9ydCB7IE1tRmlsZVVwbG9hZENvbXBvbmVudCB9IGZyb20gXCIuL21tLWZpbGUtdXBsb2FkL21tLWZpbGUtdXBsb2FkLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgTWF0TGlzdE1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9saXN0XCI7XG5pbXBvcnQgeyBSb3V0ZXJMaW5rIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuaW1wb3J0IHsgTW1UYWJsZVNpbXBsZUNvbXBvbmVudCB9IGZyb20gXCIuL21tLXRhYmxlLXNpbXBsZS9tbS10YWJsZS1zaW1wbGUuY29tcG9uZW50XCI7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIE1tQnJlYWRjcnVtYkNvbXBvbmVudCxcbiAgICBNbUNvbmZpcm1hdGlvbldpbmRvd0NvbXBvbmVudCxcbiAgICBNbVByb2dyZXNzV2luZG93Q29tcG9uZW50LFxuICAgIE1tTm90aWZpY2F0aW9uQmFyQ29tcG9uZW50LFxuICAgIE1tTWVzc2FnZURldGFpbHNDb21wb25lbnQsXG4gICAgTW1BdXRvY29tcGxldGVJbnB1dENvbXBvbmVudCxcbiAgICBNbUVudGl0eVNlbGVjdElucHV0Q29tcG9uZW50LFxuICAgIE1tTXVsdGlwbGVFbnRpdHlTZWxlY3RJbnB1dENvbXBvbmVudCxcbiAgICBNbUZpbGVVcGxvYWRDb21wb25lbnRcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIE1tQnJlYWRjcnVtYkNvbXBvbmVudCxcbiAgICBNbUNvbmZpcm1hdGlvbldpbmRvd0NvbXBvbmVudCxcbiAgICBNbU5vdGlmaWNhdGlvbkJhckNvbXBvbmVudCxcbiAgICBNbUF1dG9jb21wbGV0ZUlucHV0Q29tcG9uZW50LFxuICAgIE1tRW50aXR5U2VsZWN0SW5wdXRDb21wb25lbnQsXG4gICAgTW1NdWx0aXBsZUVudGl0eVNlbGVjdElucHV0Q29tcG9uZW50LFxuICAgIE1tRmlsZVVwbG9hZENvbXBvbmVudCxcbiAgICBNbVRhYmxlU2ltcGxlQ29tcG9uZW50XG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTWF0VG9vbGJhck1vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0U25hY2tCYXJNb2R1bGUsXG4gICAgTWF0RGlhbG9nTW9kdWxlLFxuICAgIE1hdEF1dG9jb21wbGV0ZU1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUsXG4gICAgTWF0Q2hpcHNNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIE1hdEljb24sXG4gICAgTWF0TGlzdE1vZHVsZSxcbiAgICBSb3V0ZXJMaW5rLFxuICAgIE1tVGFibGVTaW1wbGVDb21wb25lbnRcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBNbVNoYXJlZFVpTW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxNbVNoYXJlZFVpTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBNbVNoYXJlZFVpTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIEZpbGVVcGxvYWRTZXJ2aWNlLFxuICAgICAgICBDb25maXJtYXRpb25TZXJ2aWNlLFxuICAgICAgICBQcm9ncmVzc05vdGlmaWVyU2VydmljZVxuICAgICAgXVxuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,42 @@
1
+ import { Component, Input } from "@angular/core";
2
+ import { MatCell, MatCellDef, MatColumnDef, MatHeaderCell, MatHeaderCellDef, MatHeaderRow, MatHeaderRowDef, MatRow, MatRowDef, MatTable } from "@angular/material/table";
3
+ import { NgForOf } from "@angular/common";
4
+ import { MatSort, MatSortHeader } from '@angular/material/sort';
5
+ import { MatFormFieldModule } from '@angular/material/form-field';
6
+ import * as i0 from "@angular/core";
7
+ export class MmTableSimpleComponent {
8
+ sortColumn = '';
9
+ items = [];
10
+ columns = [];
11
+ get displayedColumns() {
12
+ return this.columns.map(col => col.key);
13
+ }
14
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: MmTableSimpleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
15
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: MmTableSimpleComponent, isStandalone: true, selector: "mm-table-simple", inputs: { sortColumn: "sortColumn", items: "items", columns: "columns" }, ngImport: i0, template: "<div>\n <table mat-table [dataSource]=\"items\" matSort matSortActive=\"{{sortColumn}}\" matSortDirection=\"asc\" matSortDisableClear>\n\n <!-- Dynamic Column Definitions -->\n <ng-container *ngFor=\"let column of columns\" [matColumnDef]=\"column.key\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>{{ column.header }}</th>\n <td mat-cell *matCellDef=\"let element\">{{ element[column.key] }}</td>\n </ng-container>\n\n <!-- Header Row -->\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <!-- Data Rows -->\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "ngmodule", type: MatFormFieldModule }] });
16
+ }
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: MmTableSimpleComponent, decorators: [{
18
+ type: Component,
19
+ args: [{ selector: 'mm-table-simple', standalone: true, imports: [
20
+ MatTable,
21
+ MatColumnDef,
22
+ MatHeaderCell,
23
+ MatCell,
24
+ MatHeaderRow,
25
+ MatRow,
26
+ MatHeaderRowDef,
27
+ MatRowDef,
28
+ MatHeaderCellDef,
29
+ MatCellDef,
30
+ NgForOf,
31
+ MatSort,
32
+ MatSortHeader,
33
+ MatFormFieldModule
34
+ ], template: "<div>\n <table mat-table [dataSource]=\"items\" matSort matSortActive=\"{{sortColumn}}\" matSortDirection=\"asc\" matSortDisableClear>\n\n <!-- Dynamic Column Definitions -->\n <ng-container *ngFor=\"let column of columns\" [matColumnDef]=\"column.key\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>{{ column.header }}</th>\n <td mat-cell *matCellDef=\"let element\">{{ element[column.key] }}</td>\n </ng-container>\n\n <!-- Header Row -->\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <!-- Data Rows -->\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n</div>\n" }]
35
+ }], propDecorators: { sortColumn: [{
36
+ type: Input
37
+ }], items: [{
38
+ type: Input
39
+ }], columns: [{
40
+ type: Input
41
+ }] } });
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW0tdGFibGUtc2ltcGxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lc2htYWtlcnMvc2hhcmVkLXVpL3NyYy9saWIvbW0tdGFibGUtc2ltcGxlL21tLXRhYmxlLXNpbXBsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZXNobWFrZXJzL3NoYXJlZC11aS9zcmMvbGliL21tLXRhYmxlLXNpbXBsZS9tbS10YWJsZS1zaW1wbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUNMLE9BQU8sRUFBRSxVQUFVLEVBQ25CLFlBQVksRUFDWixhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2hCLFlBQVksRUFDWixlQUFlLEVBQ2YsTUFBTSxFQUNOLFNBQVMsRUFDVCxRQUFRLEVBQ1QsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQzs7QUF3QmhFLE1BQU0sT0FBTyxzQkFBc0I7SUFDeEIsVUFBVSxHQUFJLEVBQUUsQ0FBQztJQUNqQixLQUFLLEdBQVUsRUFBRSxDQUFDO0lBQ2xCLE9BQU8sR0FBc0MsRUFBRSxDQUFDO0lBRXpELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUMsQ0FBQzt1R0FQVSxzQkFBc0I7MkZBQXRCLHNCQUFzQixxSkN0Q25DLHdwQkFlQSwwRERLSSxRQUFRLGdHQUNSLFlBQVkscUZBQ1osYUFBYSxpRkFDYixPQUFPLG1FQUNQLFlBQVksMkdBQ1osTUFBTSx1RkFDTixlQUFlLG9IQUNmLFNBQVMsdUdBQ1QsZ0JBQWdCLCtEQUNoQixVQUFVLHlEQUNWLE9BQU8sbUhBQ1AsT0FBTyxrTkFDUCxhQUFhLHNNQUNiLGtCQUFrQjs7MkZBS1Qsc0JBQXNCO2tCQXRCbEMsU0FBUzsrQkFDRSxpQkFBaUIsY0FDZixJQUFJLFdBQ1A7d0JBQ1AsUUFBUTt3QkFDUixZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsT0FBTzt3QkFDUCxZQUFZO3dCQUNaLE1BQU07d0JBQ04sZUFBZTt3QkFDZixTQUFTO3dCQUNULGdCQUFnQjt3QkFDaEIsVUFBVTt3QkFDVixPQUFPO3dCQUNQLE9BQU87d0JBQ1AsYUFBYTt3QkFDYixrQkFBa0I7cUJBQ25COzhCQUtRLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtcbiAgTWF0Q2VsbCwgTWF0Q2VsbERlZixcbiAgTWF0Q29sdW1uRGVmLFxuICBNYXRIZWFkZXJDZWxsLFxuICBNYXRIZWFkZXJDZWxsRGVmLFxuICBNYXRIZWFkZXJSb3csXG4gIE1hdEhlYWRlclJvd0RlZixcbiAgTWF0Um93LFxuICBNYXRSb3dEZWYsXG4gIE1hdFRhYmxlXG59IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC90YWJsZVwiO1xuaW1wb3J0IHsgTmdGb3JPZiB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbiBpbXBvcnQgeyBNYXRTb3J0LCBNYXRTb3J0SGVhZGVyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XG5pbXBvcnQge01hdEZvcm1GaWVsZE1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21tLXRhYmxlLXNpbXBsZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBNYXRUYWJsZSxcbiAgICBNYXRDb2x1bW5EZWYsXG4gICAgTWF0SGVhZGVyQ2VsbCxcbiAgICBNYXRDZWxsLFxuICAgIE1hdEhlYWRlclJvdyxcbiAgICBNYXRSb3csXG4gICAgTWF0SGVhZGVyUm93RGVmLFxuICAgIE1hdFJvd0RlZixcbiAgICBNYXRIZWFkZXJDZWxsRGVmLFxuICAgIE1hdENlbGxEZWYsXG4gICAgTmdGb3JPZixcbiAgICBNYXRTb3J0LFxuICAgIE1hdFNvcnRIZWFkZXIsXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9tbS10YWJsZS1zaW1wbGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vbW0tdGFibGUtc2ltcGxlLmNvbXBvbmVudC5zY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBNbVRhYmxlU2ltcGxlQ29tcG9uZW50IHtcbiAgQElucHV0KCkgc29ydENvbHVtbiAgPSAnJztcbiAgQElucHV0KCkgaXRlbXM6IGFueVtdID0gW107XG4gIEBJbnB1dCgpIGNvbHVtbnM6IHsga2V5OiBzdHJpbmcsIGhlYWRlcjogc3RyaW5nIH1bXSA9IFtdO1xuXG4gIGdldCBkaXNwbGF5ZWRDb2x1bW5zKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5jb2x1bW5zLm1hcChjb2wgPT4gY29sLmtleSk7XG4gIH1cblxufVxuIiwiPGRpdj5cbiAgPHRhYmxlIG1hdC10YWJsZSBbZGF0YVNvdXJjZV09XCJpdGVtc1wiIG1hdFNvcnQgbWF0U29ydEFjdGl2ZT1cInt7c29ydENvbHVtbn19XCIgbWF0U29ydERpcmVjdGlvbj1cImFzY1wiIG1hdFNvcnREaXNhYmxlQ2xlYXI+XG5cbiAgICA8IS0tIER5bmFtaWMgQ29sdW1uIERlZmluaXRpb25zIC0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb2x1bW5zXCIgW21hdENvbHVtbkRlZl09XCJjb2x1bW4ua2V5XCI+XG4gICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIG1hdC1zb3J0LWhlYWRlcj57eyBjb2x1bW4uaGVhZGVyIH19PC90aD5cbiAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+e3sgZWxlbWVudFtjb2x1bW4ua2V5XSB9fTwvdGQ+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8IS0tIEhlYWRlciBSb3cgLS0+XG4gICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJkaXNwbGF5ZWRDb2x1bW5zXCI+PC90cj5cbiAgICA8IS0tIERhdGEgUm93cyAtLT5cbiAgICA8dHIgbWF0LXJvdyAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogZGlzcGxheWVkQ29sdW1ucztcIj48L3RyPlxuICA8L3RhYmxlPlxuPC9kaXY+XG4iXX0=
@@ -12,4 +12,4 @@ export var DialogType;
12
12
  DialogType[DialogType["OkCancel"] = 2] = "OkCancel";
13
13
  DialogType[DialogType["Ok"] = 3] = "Ok";
14
14
  })(DialogType || (DialogType = {}));
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybWF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVzaG1ha2Vycy9zaGFyZWQtdWkvc3JjL2xpYi9tb2RlbHMvY29uZmlybWF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLFdBS1g7QUFMRCxXQUFZLFdBQVc7SUFDckIseUNBQUUsQ0FBQTtJQUNGLGlEQUFNLENBQUE7SUFDTiwyQ0FBRyxDQUFBO0lBQ0gseUNBQUUsQ0FBQTtBQUNKLENBQUMsRUFMVyxXQUFXLEtBQVgsV0FBVyxRQUt0QjtBQUVELE1BQU0sQ0FBTixJQUFZLFVBS1g7QUFMRCxXQUFZLFVBQVU7SUFDcEIsNkNBQVMsQ0FBQTtJQUNULHlEQUFlLENBQUE7SUFDZixtREFBWSxDQUFBO0lBQ1osdUNBQU0sQ0FBQTtBQUNSLENBQUMsRUFMVyxVQUFVLEtBQVYsVUFBVSxRQUtyQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIEJ1dHRvblR5cGVzIHtcbiAgT2ssXG4gIENhbmNlbCxcbiAgWWVzLFxuICBOb1xufVxuXG5leHBvcnQgZW51bSBEaWFsb2dUeXBlIHtcbiAgWWVzTm8gPSAwLFxuICBZZXNOb0NhbmNlbCA9IDEsXG4gIE9rQ2FuY2VsID0gMixcbiAgT2sgPSAzXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlybWF0aW9uV2luZG93RGF0YSB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgZGlhbG9nVHlwZTogRGlhbG9nVHlwZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb25maXJtYXRpb25XaW5kb3dSZXN1bHQge1xuICByZXN1bHQ6IEJ1dHRvblR5cGVzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVVcGxvYWREYXRhe1xuICB0aXRsZTogc3RyaW5nO1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIG1pbWVUeXBlczogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVVcGxvYWRSZXN1bHQge1xuICBzdWNjZXNzOiBib29sZWFuO1xuICBzZWxlY3RlZEZpbGU6IEZpbGUgfCBudWxsO1xufVxuIl19
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybWF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVzaG1ha2Vycy9zaGFyZWQtdWkvc3JjL2xpYi9tb2RlbHMvY29uZmlybWF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLFdBS1g7QUFMRCxXQUFZLFdBQVc7SUFDckIseUNBQUUsQ0FBQTtJQUNGLGlEQUFNLENBQUE7SUFDTiwyQ0FBRyxDQUFBO0lBQ0gseUNBQUUsQ0FBQTtBQUNKLENBQUMsRUFMVyxXQUFXLEtBQVgsV0FBVyxRQUt0QjtBQUVELE1BQU0sQ0FBTixJQUFZLFVBS1g7QUFMRCxXQUFZLFVBQVU7SUFDcEIsNkNBQVMsQ0FBQTtJQUNULHlEQUFlLENBQUE7SUFDZixtREFBWSxDQUFBO0lBQ1osdUNBQU0sQ0FBQTtBQUNSLENBQUMsRUFMVyxVQUFVLEtBQVYsVUFBVSxRQUtyQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIEJ1dHRvblR5cGVzIHtcbiAgT2ssXG4gIENhbmNlbCxcbiAgWWVzLFxuICBOb1xufVxuXG5leHBvcnQgZW51bSBEaWFsb2dUeXBlIHtcbiAgWWVzTm8gPSAwLFxuICBZZXNOb0NhbmNlbCA9IDEsXG4gIE9rQ2FuY2VsID0gMixcbiAgT2sgPSAzXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlybWF0aW9uV2luZG93RGF0YSB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgZGlhbG9nVHlwZTogRGlhbG9nVHlwZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb25maXJtYXRpb25XaW5kb3dSZXN1bHQge1xuICByZXN1bHQ6IEJ1dHRvblR5cGVzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVVcGxvYWREYXRhe1xuICB0aXRsZTogc3RyaW5nO1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIG1pbWVUeXBlczogc3RyaW5nO1xuICBmaWxlRXh0ZW5zaW9uczogc3RyaW5nIHwgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaWxlVXBsb2FkUmVzdWx0IHtcbiAgc3VjY2VzczogYm9vbGVhbjtcbiAgc2VsZWN0ZWRGaWxlOiBGaWxlIHwgbnVsbDtcbn1cbiJdfQ==
@@ -57,10 +57,10 @@ export class ConfirmationService {
57
57
  });
58
58
  return dialogRef.afterClosed().pipe(map((value) => value?.result === ButtonTypes.Ok));
59
59
  }
60
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: ConfirmationService, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Injectable });
61
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: ConfirmationService, providedIn: 'root' });
60
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ConfirmationService, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Injectable });
61
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ConfirmationService, providedIn: 'root' });
62
62
  }
63
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: ConfirmationService, decorators: [{
63
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ConfirmationService, decorators: [{
64
64
  type: Injectable,
65
65
  args: [{
66
66
  providedIn: 'root'
@@ -8,14 +8,15 @@ export class FileUploadService {
8
8
  constructor(dialog) {
9
9
  this.dialog = dialog;
10
10
  }
11
- async showUploadDialog(title, message, mimeTypes) {
11
+ async showUploadDialog(title, message, mimeTypes, fileExtensions = null) {
12
12
  const dialogRef = this.dialog.open(MmFileUploadComponent, {
13
13
  width: '50vw',
14
14
  maxWidth: '50vw',
15
15
  data: {
16
16
  title,
17
17
  message,
18
- mimeTypes
18
+ mimeTypes,
19
+ fileExtensions
19
20
  }
20
21
  });
21
22
  const r = await firstValueFrom(dialogRef.afterClosed());
@@ -25,13 +26,13 @@ export class FileUploadService {
25
26
  }
26
27
  return null;
27
28
  }
28
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FileUploadService, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Injectable });
29
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FileUploadService, providedIn: 'root' });
29
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: FileUploadService, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Injectable });
30
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: FileUploadService, providedIn: 'root' });
30
31
  }
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FileUploadService, decorators: [{
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: FileUploadService, decorators: [{
32
33
  type: Injectable,
33
34
  args: [{
34
35
  providedIn: 'root'
35
36
  }]
36
37
  }], ctorParameters: () => [{ type: i1.MatDialog }] });
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lc2htYWtlcnMvc2hhcmVkLXVpL3NyYy9saWIvc2VydmljZXMvZmlsZS11cGxvYWQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFNdEMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNENBQTRDLENBQUM7OztBQUtuRixNQUFNLE9BQU8saUJBQWlCO0lBRUM7SUFBN0IsWUFBNkIsTUFBaUI7UUFBakIsV0FBTSxHQUFOLE1BQU0sQ0FBVztJQUFJLENBQUM7SUFHbkQsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEtBQWEsRUFBRSxPQUFlLEVBQUUsU0FBaUI7UUFDdEUsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ2hDLHFCQUFxQixFQUNyQjtZQUNFLEtBQUssRUFBRSxNQUFNO1lBQ2IsUUFBUSxFQUFFLE1BQU07WUFDaEIsSUFBSSxFQUFFO2dCQUNKLEtBQUs7Z0JBQ0wsT0FBTztnQkFDUCxTQUFTO2FBQ1E7U0FDcEIsQ0FDRixDQUFDO1FBRUYsTUFBTSxDQUFDLEdBQUcsTUFBTSxjQUFjLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDeEQsTUFBTSxPQUFPLEdBQUksQ0FBQyxFQUFFLE9BQU8sSUFBSSxLQUFLLENBQUM7UUFDckMsSUFBSSxPQUFPLEVBQUMsQ0FBQztZQUNYLE9BQU8sQ0FBQyxFQUFFLFlBQVksSUFBSSxJQUFJLENBQUM7UUFDakMsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzt1R0F6QlUsaUJBQWlCOzJHQUFqQixpQkFBaUIsY0FGaEIsTUFBTTs7MkZBRVAsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7XG4gIEZpbGVVcGxvYWREYXRhLFxuICBGaWxlVXBsb2FkUmVzdWx0XG59IGZyb20gXCIuLi9tb2RlbHMvY29uZmlybWF0aW9uXCI7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nXCI7XG5pbXBvcnQgeyBNbUZpbGVVcGxvYWRDb21wb25lbnQgfSBmcm9tIFwiLi4vbW0tZmlsZS11cGxvYWQvbW0tZmlsZS11cGxvYWQuY29tcG9uZW50XCI7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVVcGxvYWRTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGRpYWxvZzogTWF0RGlhbG9nKSB7IH1cblxuXG4gIGFzeW5jIHNob3dVcGxvYWREaWFsb2codGl0bGU6IHN0cmluZywgbWVzc2FnZTogc3RyaW5nLCBtaW1lVHlwZXM6IHN0cmluZyk6IFByb21pc2U8RmlsZSB8IG51bGw+IHtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuPE1tRmlsZVVwbG9hZENvbXBvbmVudCwgRmlsZVVwbG9hZERhdGEsIEZpbGVVcGxvYWRSZXN1bHQ+KFxuICAgICAgTW1GaWxlVXBsb2FkQ29tcG9uZW50LFxuICAgICAge1xuICAgICAgICB3aWR0aDogJzUwdncnLFxuICAgICAgICBtYXhXaWR0aDogJzUwdncnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGl0bGUsXG4gICAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgICBtaW1lVHlwZXNcbiAgICAgICAgfSBhcyBGaWxlVXBsb2FkRGF0YVxuICAgICAgfVxuICAgICk7XG5cbiAgICBjb25zdCByID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20oZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkpO1xuICAgIGNvbnN0IHN1Y2Nlc3MgPSAgcj8uc3VjY2VzcyA/PyBmYWxzZTtcbiAgICBpZiAoc3VjY2Vzcyl7XG4gICAgICByZXR1cm4gcj8uc2VsZWN0ZWRGaWxlID8/IG51bGw7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG59XG4iXX0=
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lc2htYWtlcnMvc2hhcmVkLXVpL3NyYy9saWIvc2VydmljZXMvZmlsZS11cGxvYWQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFNdEMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNENBQTRDLENBQUM7OztBQUtuRixNQUFNLE9BQU8saUJBQWlCO0lBRUM7SUFBN0IsWUFBNkIsTUFBaUI7UUFBakIsV0FBTSxHQUFOLE1BQU0sQ0FBVztJQUFJLENBQUM7SUFHbkQsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEtBQWEsRUFBRSxPQUFlLEVBQUUsU0FBaUIsRUFBRSxpQkFBZ0MsSUFBSTtRQUM1RyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDaEMscUJBQXFCLEVBQ3JCO1lBQ0UsS0FBSyxFQUFFLE1BQU07WUFDYixRQUFRLEVBQUUsTUFBTTtZQUNoQixJQUFJLEVBQUU7Z0JBQ0osS0FBSztnQkFDTCxPQUFPO2dCQUNQLFNBQVM7Z0JBQ1QsY0FBYzthQUNHO1NBQ3BCLENBQ0YsQ0FBQztRQUVGLE1BQU0sQ0FBQyxHQUFHLE1BQU0sY0FBYyxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ3hELE1BQU0sT0FBTyxHQUFJLENBQUMsRUFBRSxPQUFPLElBQUksS0FBSyxDQUFDO1FBQ3JDLElBQUksT0FBTyxFQUFDLENBQUM7WUFDWCxPQUFPLENBQUMsRUFBRSxZQUFZLElBQUksSUFBSSxDQUFDO1FBQ2pDLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7dUdBMUJVLGlCQUFpQjsyR0FBakIsaUJBQWlCLGNBRmhCLE1BQU07OzJGQUVQLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQge1xuICBGaWxlVXBsb2FkRGF0YSxcbiAgRmlsZVVwbG9hZFJlc3VsdFxufSBmcm9tIFwiLi4vbW9kZWxzL2NvbmZpcm1hdGlvblwiO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RpYWxvZ1wiO1xuaW1wb3J0IHsgTW1GaWxlVXBsb2FkQ29tcG9uZW50IH0gZnJvbSBcIi4uL21tLWZpbGUtdXBsb2FkL21tLWZpbGUtdXBsb2FkLmNvbXBvbmVudFwiO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBGaWxlVXBsb2FkU2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBkaWFsb2c6IE1hdERpYWxvZykgeyB9XG5cblxuICBhc3luYyBzaG93VXBsb2FkRGlhbG9nKHRpdGxlOiBzdHJpbmcsIG1lc3NhZ2U6IHN0cmluZywgbWltZVR5cGVzOiBzdHJpbmcsIGZpbGVFeHRlbnNpb25zOiBzdHJpbmcgfCBudWxsID0gbnVsbCk6IFByb21pc2U8RmlsZSB8IG51bGw+IHtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuPE1tRmlsZVVwbG9hZENvbXBvbmVudCwgRmlsZVVwbG9hZERhdGEsIEZpbGVVcGxvYWRSZXN1bHQ+KFxuICAgICAgTW1GaWxlVXBsb2FkQ29tcG9uZW50LFxuICAgICAge1xuICAgICAgICB3aWR0aDogJzUwdncnLFxuICAgICAgICBtYXhXaWR0aDogJzUwdncnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGl0bGUsXG4gICAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgICBtaW1lVHlwZXMsXG4gICAgICAgICAgZmlsZUV4dGVuc2lvbnNcbiAgICAgICAgfSBhcyBGaWxlVXBsb2FkRGF0YVxuICAgICAgfVxuICAgICk7XG5cbiAgICBjb25zdCByID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20oZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkpO1xuICAgIGNvbnN0IHN1Y2Nlc3MgPSAgcj8uc3VjY2VzcyA/PyBmYWxzZTtcbiAgICBpZiAoc3VjY2Vzcyl7XG4gICAgICByZXR1cm4gcj8uc2VsZWN0ZWRGaWxlID8/IG51bGw7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG59XG4iXX0=