@meshmakers/shared-ui 3.2.136-0 → 3.2.144-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.
- package/fesm2022/meshmakers-shared-ui.mjs +156 -67
- package/fesm2022/meshmakers-shared-ui.mjs.map +1 -1
- package/index.d.ts +19 -2
- package/package.json +3 -3
|
@@ -1,37 +1,38 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject, Component, ElementRef, Injector, EventEmitter, forwardRef, HostBinding, Input, ViewChild, Injectable, signal, Output, NgModule } from '@angular/core';
|
|
2
|
+
import { inject, Component, NgZone, ElementRef, Injector, EventEmitter, forwardRef, HostBinding, Input, ViewChild, Injectable, signal, Output, NgModule } from '@angular/core';
|
|
3
3
|
import * as i1 from '@angular/common';
|
|
4
4
|
import { NgForOf, CommonModule } from '@angular/common';
|
|
5
5
|
import { MessageService, BreadcrumbService, QrCodeScannerService, IsoDateTime } from '@meshmakers/shared-services';
|
|
6
|
-
import { MAT_SNACK_BAR_DATA, MatSnackBarRef, MatSnackBarActions, MatSnackBarAction,
|
|
6
|
+
import { MatSnackBar, MAT_SNACK_BAR_DATA, MatSnackBarRef, MatSnackBarActions, MatSnackBarAction, MatSnackBarModule } from '@angular/material/snack-bar';
|
|
7
7
|
import * as i2 from '@angular/material/button';
|
|
8
8
|
import { MatButton, MatButtonModule } from '@angular/material/button';
|
|
9
9
|
import * as i3 from '@angular/material/dialog';
|
|
10
10
|
import { MatDialogRef, MAT_DIALOG_DATA, MatDialog, MatDialogModule } from '@angular/material/dialog';
|
|
11
|
-
import
|
|
11
|
+
import { Clipboard } from '@angular/cdk/clipboard';
|
|
12
|
+
import * as i3$1 from '@angular/material/input';
|
|
13
|
+
import { MatInputModule } from '@angular/material/input';
|
|
14
|
+
import * as i4 from '@angular/material/icon';
|
|
12
15
|
import { MatIcon, MatIconModule } from '@angular/material/icon';
|
|
16
|
+
import * as i3$2 from '@angular/router';
|
|
17
|
+
import { Router, NavigationEnd, ActivatedRoute, PRIMARY_OUTLET, RouterLink } from '@angular/router';
|
|
18
|
+
import { fromEvent, Subject, of, BehaviorSubject, firstValueFrom } from 'rxjs';
|
|
19
|
+
import { filter, debounceTime, tap, map, switchMap } from 'rxjs/operators';
|
|
13
20
|
import { MatToolbarModule } from '@angular/material/toolbar';
|
|
14
21
|
import { MatFormFieldControl, MatFormFieldModule } from '@angular/material/form-field';
|
|
15
22
|
import * as i5 from '@angular/forms';
|
|
16
23
|
import { FormControl, NgControl, NG_VALUE_ACCESSOR, NG_VALIDATORS, ReactiveFormsModule, Validators } from '@angular/forms';
|
|
17
24
|
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
18
|
-
import { debounceTime, filter, tap, map, switchMap } from 'rxjs/operators';
|
|
19
|
-
import { Subject, of, BehaviorSubject, firstValueFrom } from 'rxjs';
|
|
20
25
|
import { FocusMonitor } from '@angular/cdk/a11y';
|
|
21
26
|
import * as i2$1 from '@angular/material/autocomplete';
|
|
22
27
|
import { MatAutocompleteModule } from '@angular/material/autocomplete';
|
|
23
|
-
import * as
|
|
24
|
-
import { MatInputModule } from '@angular/material/input';
|
|
25
|
-
import * as i4 from '@angular/material/progress-spinner';
|
|
28
|
+
import * as i4$1 from '@angular/material/progress-spinner';
|
|
26
29
|
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
27
30
|
import { ENTER, COMMA } from '@angular/cdk/keycodes';
|
|
28
31
|
import * as i5$1 from '@angular/material/chips';
|
|
29
32
|
import { MatChipsModule } from '@angular/material/chips';
|
|
30
|
-
import * as i3$2 from '@angular/router';
|
|
31
|
-
import { ActivatedRoute, Router, NavigationEnd, PRIMARY_OUTLET, RouterLink } from '@angular/router';
|
|
32
33
|
import * as i2$2 from '@angular/material/list';
|
|
33
34
|
import { MatListModule } from '@angular/material/list';
|
|
34
|
-
import * as i4$
|
|
35
|
+
import * as i4$2 from '@angular/material/progress-bar';
|
|
35
36
|
import { MatProgressBar } from '@angular/material/progress-bar';
|
|
36
37
|
import { MatTable, MatColumnDef, MatHeaderCell, MatCell, MatHeaderRow, MatRow, MatHeaderRowDef, MatRowDef, MatHeaderCellDef, MatCellDef } from '@angular/material/table';
|
|
37
38
|
import { MatSort, MatSortHeader } from '@angular/material/sort';
|
|
@@ -39,18 +40,28 @@ import { MatSort, MatSortHeader } from '@angular/material/sort';
|
|
|
39
40
|
class MmMessageDetailsComponent {
|
|
40
41
|
dialogRef = inject(MatDialogRef);
|
|
41
42
|
data = inject(MAT_DIALOG_DATA);
|
|
43
|
+
clipboard = inject(Clipboard);
|
|
44
|
+
snackBar = inject(MatSnackBar);
|
|
42
45
|
errorMessage;
|
|
43
46
|
constructor() {
|
|
44
47
|
const data = this.data;
|
|
45
48
|
this.errorMessage = data.errorMessage;
|
|
46
49
|
}
|
|
47
50
|
ngOnInit() { }
|
|
48
|
-
|
|
49
|
-
|
|
51
|
+
copyToClipboard() {
|
|
52
|
+
const success = this.clipboard.copy(this.errorMessage.message || '');
|
|
53
|
+
if (success) {
|
|
54
|
+
this.snackBar.open('Copied to clipboard', 'Close', {
|
|
55
|
+
duration: 2000,
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: MmMessageDetailsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
60
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.4", type: MmMessageDetailsComponent, isStandalone: false, selector: "mm-message-details", ngImport: i0, template: "<mat-dialog-content>\n\n <h2>{{errorMessage.title}}</h2>\n <mat-form-field appearance=\"outline\" class=\"message-field\">\n <textarea\n matInput\n [value]=\"errorMessage.message\"\n readonly\n rows=\"8\"\n class=\"message-textarea\">\n </textarea>\n </mat-form-field>\n\n\n</mat-dialog-content>\n<mat-dialog-actions align=\"end\">\n <button mat-flat-button (click)=\"copyToClipboard()\">\n <mat-icon class=\"material-symbols-outlined\">content_copy</mat-icon>\n Copy\n </button>\n <button class=\"primary-button\" mat-dialog-close mat-flat-button>OK</button>\n</mat-dialog-actions>\n", styles: [".message-field{width:100%;margin-top:16px}.message-textarea{font-family:monospace;font-size:14px;line-height:1.5;resize:none;overflow-y:auto}::ng-deep .message-field .mat-mdc-form-field-wrapper{height:100%}::ng-deep .message-field .mat-mdc-text-field-wrapper{height:100%}::ng-deep .message-field textarea{height:100%;min-height:200px;max-height:400px}mat-dialog-actions button{margin-left:8px}mat-dialog-actions mat-icon{margin-right:4px;font-size:18px;height:18px;width:18px}\n"], dependencies: [{ kind: "component", type: i2.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: i3.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { 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]" }, { kind: "directive", type: i3$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
|
|
50
61
|
}
|
|
51
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.
|
|
62
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: MmMessageDetailsComponent, decorators: [{
|
|
52
63
|
type: Component,
|
|
53
|
-
args: [{ selector: 'mm-message-details', standalone: false, template: "<mat-dialog-content>\n\n <h2>{{errorMessage.title}}</h2>\n <
|
|
64
|
+
args: [{ selector: 'mm-message-details', standalone: false, template: "<mat-dialog-content>\n\n <h2>{{errorMessage.title}}</h2>\n <mat-form-field appearance=\"outline\" class=\"message-field\">\n <textarea\n matInput\n [value]=\"errorMessage.message\"\n readonly\n rows=\"8\"\n class=\"message-textarea\">\n </textarea>\n </mat-form-field>\n\n\n</mat-dialog-content>\n<mat-dialog-actions align=\"end\">\n <button mat-flat-button (click)=\"copyToClipboard()\">\n <mat-icon class=\"material-symbols-outlined\">content_copy</mat-icon>\n Copy\n </button>\n <button class=\"primary-button\" mat-dialog-close mat-flat-button>OK</button>\n</mat-dialog-actions>\n", styles: [".message-field{width:100%;margin-top:16px}.message-textarea{font-family:monospace;font-size:14px;line-height:1.5;resize:none;overflow-y:auto}::ng-deep .message-field .mat-mdc-form-field-wrapper{height:100%}::ng-deep .message-field .mat-mdc-text-field-wrapper{height:100%}::ng-deep .message-field textarea{height:100%;min-height:200px;max-height:400px}mat-dialog-actions button{margin-left:8px}mat-dialog-actions mat-icon{margin-right:4px;font-size:18px;height:18px;width:18px}\n"] }]
|
|
54
65
|
}], ctorParameters: () => [] });
|
|
55
66
|
|
|
56
67
|
class NotificationSnackBar {
|
|
@@ -61,13 +72,16 @@ class NotificationSnackBar {
|
|
|
61
72
|
this.dialog.open(MmMessageDetailsComponent, {
|
|
62
73
|
data: {
|
|
63
74
|
errorMessage: this.errorMessage
|
|
64
|
-
}
|
|
75
|
+
},
|
|
76
|
+
width: '50vw',
|
|
77
|
+
maxWidth: '90vw',
|
|
78
|
+
maxHeight: '80vh'
|
|
65
79
|
});
|
|
66
80
|
}
|
|
67
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.
|
|
68
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.
|
|
81
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: NotificationSnackBar, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
82
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.4", type: NotificationSnackBar, isStandalone: true, selector: "mm-notification-snack-bar", ngImport: i0, template: " <a (click)=\"onShowDetails()\" class=\"notification-text\">\n <span>\n {{ errorMessage?.title }}\n </span>\n </a>\n <span matSnackBarActions>\n <button matButton matSnackBarAction (click)=\"onShowDetails()\"><mat-icon class=\"material-symbols-outlined\">bug_report</mat-icon>Details</button>\n <button matButton matSnackBarAction (click)=\"snackBarRef.dismissWithAction()\"><mat-icon class=\"material-symbols-outlined\">close</mat-icon>Close</button>\n </span>\n", styles: [":host{display:flex;flex-direction:row;width:100%;max-width:600px;margin:auto}::ng-deep .mat-mdc-snack-bar-container{background-color:red!important}::ng-deep .mdc-snackbar__surface{background-color:red!important}::ng-deep .mat-mdc-snack-bar-action{color:#fff!important}.notification-text{flex:1 1 auto;display:flex;align-items:center;cursor:pointer}\n"], dependencies: [{ kind: "directive", type: MatSnackBarActions, selector: "[matSnackBarActions]" }, { kind: "component", type: MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: MatSnackBarAction, selector: "[matSnackBarAction]" }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
|
|
69
83
|
}
|
|
70
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.
|
|
84
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: NotificationSnackBar, decorators: [{
|
|
71
85
|
type: Component,
|
|
72
86
|
args: [{ selector: 'mm-notification-snack-bar', imports: [
|
|
73
87
|
MatSnackBarActions,
|
|
@@ -80,26 +94,101 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.2", ngImpor
|
|
|
80
94
|
class MmNotificationBarComponent {
|
|
81
95
|
snackBar = inject(MatSnackBar);
|
|
82
96
|
messageService = inject(MessageService);
|
|
97
|
+
router = inject(Router);
|
|
98
|
+
ngZone = inject(NgZone);
|
|
83
99
|
errorMessage;
|
|
100
|
+
currentSnackBarRef = null;
|
|
101
|
+
subscriptions = [];
|
|
102
|
+
autoCloseOnInteraction = true;
|
|
103
|
+
interactionDebounceTime = 500; // ms
|
|
104
|
+
snackBarOpenTime = 0;
|
|
105
|
+
gracePeriod = 1000; // ms - prevent immediate closure after opening
|
|
84
106
|
constructor() {
|
|
85
107
|
this.errorMessage = null;
|
|
86
108
|
}
|
|
87
109
|
ngOnInit() {
|
|
88
|
-
|
|
110
|
+
// Subscribe to error messages
|
|
111
|
+
const errorSubscription = this.messageService.getLatestErrorMessage().subscribe((value) => {
|
|
89
112
|
this.errorMessage = value;
|
|
90
113
|
if (this.errorMessage) {
|
|
91
|
-
|
|
114
|
+
// Close previous snack bar if exists
|
|
115
|
+
this.closeCurrentSnackBar();
|
|
116
|
+
// Open new snack bar
|
|
117
|
+
this.currentSnackBarRef = this.snackBar.openFromComponent(NotificationSnackBar, {
|
|
92
118
|
data: this.errorMessage,
|
|
93
119
|
horizontalPosition: "center",
|
|
94
120
|
verticalPosition: "top"
|
|
95
121
|
});
|
|
122
|
+
// Record when the snack bar was opened
|
|
123
|
+
this.snackBarOpenTime = Date.now();
|
|
96
124
|
}
|
|
97
125
|
});
|
|
126
|
+
// Subscribe to navigation events to auto-close snack bar
|
|
127
|
+
const navigationSubscription = this.router.events
|
|
128
|
+
.pipe(filter(event => event instanceof NavigationEnd))
|
|
129
|
+
.subscribe(() => {
|
|
130
|
+
this.closeCurrentSnackBar();
|
|
131
|
+
});
|
|
132
|
+
// Subscribe to global user interactions to auto-close snack bar
|
|
133
|
+
this.setupGlobalInteractionListeners();
|
|
134
|
+
this.subscriptions.push(errorSubscription, navigationSubscription);
|
|
135
|
+
}
|
|
136
|
+
ngOnDestroy() {
|
|
137
|
+
// Clean up subscriptions
|
|
138
|
+
this.subscriptions.forEach(sub => sub.unsubscribe());
|
|
139
|
+
this.closeCurrentSnackBar();
|
|
140
|
+
}
|
|
141
|
+
closeCurrentSnackBar() {
|
|
142
|
+
if (this.currentSnackBarRef) {
|
|
143
|
+
this.currentSnackBarRef.dismiss();
|
|
144
|
+
this.currentSnackBarRef = null;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
setupGlobalInteractionListeners() {
|
|
148
|
+
if (!this.autoCloseOnInteraction)
|
|
149
|
+
return;
|
|
150
|
+
this.ngZone.runOutsideAngular(() => {
|
|
151
|
+
// Listen for various user interaction events
|
|
152
|
+
const events = ['click', 'keydown', 'scroll', 'touchstart'];
|
|
153
|
+
events.forEach(eventType => {
|
|
154
|
+
const subscription = fromEvent(document, eventType)
|
|
155
|
+
.pipe(debounceTime(this.interactionDebounceTime), filter(() => this.currentSnackBarRef !== null), filter((event) => this.shouldCloseOnInteraction(event)))
|
|
156
|
+
.subscribe(() => {
|
|
157
|
+
this.ngZone.run(() => {
|
|
158
|
+
this.closeCurrentSnackBar();
|
|
159
|
+
});
|
|
160
|
+
});
|
|
161
|
+
this.subscriptions.push(subscription);
|
|
162
|
+
});
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
shouldCloseOnInteraction(event) {
|
|
166
|
+
if (!this.currentSnackBarRef)
|
|
167
|
+
return false;
|
|
168
|
+
// Don't close if we're still in the grace period after opening
|
|
169
|
+
const timeSinceOpen = Date.now() - this.snackBarOpenTime;
|
|
170
|
+
if (timeSinceOpen < this.gracePeriod) {
|
|
171
|
+
return false;
|
|
172
|
+
}
|
|
173
|
+
const target = event.target;
|
|
174
|
+
// Don't close if the interaction is within the snack bar itself
|
|
175
|
+
const snackBarElement = document.querySelector('mm-notification-snack-bar') ||
|
|
176
|
+
document.querySelector('.mat-mdc-snack-bar-container');
|
|
177
|
+
if (snackBarElement && snackBarElement.contains(target)) {
|
|
178
|
+
return false;
|
|
179
|
+
}
|
|
180
|
+
// Don't close on certain key presses (like Tab for accessibility)
|
|
181
|
+
if (event.type === 'keydown') {
|
|
182
|
+
const keyEvent = event;
|
|
183
|
+
const excludedKeys = ['Tab', 'Shift', 'Control', 'Alt', 'Meta'];
|
|
184
|
+
return !excludedKeys.includes(keyEvent.key);
|
|
185
|
+
}
|
|
186
|
+
return true;
|
|
98
187
|
}
|
|
99
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.
|
|
100
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.
|
|
188
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: MmNotificationBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
189
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.4", type: MmNotificationBarComponent, isStandalone: false, selector: "mm-notification-bar", ngImport: i0, template: "<div></div>\n", styles: [""] });
|
|
101
190
|
}
|
|
102
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.
|
|
191
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: MmNotificationBarComponent, decorators: [{
|
|
103
192
|
type: Component,
|
|
104
193
|
args: [{ selector: 'mm-notification-bar', standalone: false, template: "<div></div>\n" }]
|
|
105
194
|
}], ctorParameters: () => [] });
|
|
@@ -329,8 +418,8 @@ class MmAutocompleteInputComponent {
|
|
|
329
418
|
};
|
|
330
419
|
_onTouched = () => {
|
|
331
420
|
};
|
|
332
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.
|
|
333
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.
|
|
421
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: MmAutocompleteInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
422
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.4", type: MmAutocompleteInputComponent, isStandalone: false, 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: [
|
|
334
423
|
{
|
|
335
424
|
provide: NG_VALUE_ACCESSOR,
|
|
336
425
|
useExisting: forwardRef(() => MmAutocompleteInputComponent),
|
|
@@ -345,9 +434,9 @@ class MmAutocompleteInputComponent {
|
|
|
345
434
|
useExisting: forwardRef(() => MmAutocompleteInputComponent),
|
|
346
435
|
multi: true
|
|
347
436
|
}
|
|
348
|
-
], 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: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$1.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: i2$1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i2$1.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "directive", type: i3$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i4.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
|
|
437
|
+
], 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: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$1.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: i2$1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i2$1.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "directive", type: i3$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i4$1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
|
|
349
438
|
}
|
|
350
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.
|
|
439
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: MmAutocompleteInputComponent, decorators: [{
|
|
351
440
|
type: Component,
|
|
352
441
|
args: [{ selector: "mm-autocomplete", standalone: false, host: {
|
|
353
442
|
"[id]": "id",
|
|
@@ -619,8 +708,8 @@ class MmEntitySelectInputComponent {
|
|
|
619
708
|
this.stateChanges.next();
|
|
620
709
|
}
|
|
621
710
|
}
|
|
622
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.
|
|
623
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.
|
|
711
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: MmEntitySelectInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
712
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.4", type: MmEntitySelectInputComponent, isStandalone: false, 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: [
|
|
624
713
|
{
|
|
625
714
|
provide: NG_VALUE_ACCESSOR,
|
|
626
715
|
useExisting: forwardRef(() => MmEntitySelectInputComponent),
|
|
@@ -635,9 +724,9 @@ class MmEntitySelectInputComponent {
|
|
|
635
724
|
useExisting: forwardRef(() => MmEntitySelectInputComponent),
|
|
636
725
|
multi: true
|
|
637
726
|
}
|
|
638
|
-
], 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: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$1.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: i2$1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i2$1.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "directive", type: i3$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i4.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
|
|
727
|
+
], 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: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$1.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: i2$1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i2$1.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "directive", type: i3$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i4$1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
|
|
639
728
|
}
|
|
640
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.
|
|
729
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: MmEntitySelectInputComponent, decorators: [{
|
|
641
730
|
type: Component,
|
|
642
731
|
args: [{ selector: "mm-entity-select", standalone: false, host: {
|
|
643
732
|
"[id]": "id",
|
|
@@ -917,8 +1006,8 @@ class MmMultipleEntitySelectInputComponent {
|
|
|
917
1006
|
this.stateChanges.next();
|
|
918
1007
|
}
|
|
919
1008
|
}
|
|
920
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.
|
|
921
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.
|
|
1009
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: MmMultipleEntitySelectInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1010
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.4", type: MmMultipleEntitySelectInputComponent, isStandalone: false, 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: [
|
|
922
1011
|
{
|
|
923
1012
|
provide: NG_VALUE_ACCESSOR,
|
|
924
1013
|
useExisting: forwardRef(() => MmMultipleEntitySelectInputComponent),
|
|
@@ -933,9 +1022,9 @@ class MmMultipleEntitySelectInputComponent {
|
|
|
933
1022
|
useExisting: forwardRef(() => MmMultipleEntitySelectInputComponent),
|
|
934
1023
|
multi: true
|
|
935
1024
|
}
|
|
936
|
-
], 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: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$1.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: i2$1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i2$1.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "directive", type: i3$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i4.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i5$1.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i5$1.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled", "readonly", "matChipInputDisabledInteractive"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i5$1.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i5$1.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "component", type:
|
|
1025
|
+
], 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: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$1.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: i2$1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i2$1.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "directive", type: i3$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i4$1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i5$1.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i5$1.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled", "readonly", "matChipInputDisabledInteractive"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i5$1.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i5$1.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
|
|
937
1026
|
}
|
|
938
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.
|
|
1027
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: MmMultipleEntitySelectInputComponent, decorators: [{
|
|
939
1028
|
type: Component,
|
|
940
1029
|
args: [{ selector: 'mm-multiple-entity-select', standalone: false, host: {
|
|
941
1030
|
'[id]': 'id',
|
|
@@ -1075,10 +1164,10 @@ class MmBreadcrumbComponent {
|
|
|
1075
1164
|
this.breadcrumbData = [];
|
|
1076
1165
|
}
|
|
1077
1166
|
}
|
|
1078
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.
|
|
1079
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.
|
|
1167
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: MmBreadcrumbComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1168
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.4", type: MmBreadcrumbComponent, isStandalone: false, 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: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$2.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i2$2.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i3$2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] });
|
|
1080
1169
|
}
|
|
1081
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.
|
|
1170
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: MmBreadcrumbComponent, decorators: [{
|
|
1082
1171
|
type: Component,
|
|
1083
1172
|
args: [{ selector: 'mm-breadcrumb', standalone: false, 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"] }]
|
|
1084
1173
|
}], ctorParameters: () => [], propDecorators: { fontSize: [{
|
|
@@ -1163,10 +1252,10 @@ class MmConfirmationWindowComponent {
|
|
|
1163
1252
|
result: this.button3Result
|
|
1164
1253
|
});
|
|
1165
1254
|
}
|
|
1166
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.
|
|
1167
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.
|
|
1255
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: MmConfirmationWindowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1256
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.4", type: MmConfirmationWindowComponent, isStandalone: false, 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: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { 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]" }] });
|
|
1168
1257
|
}
|
|
1169
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.
|
|
1258
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: MmConfirmationWindowComponent, decorators: [{
|
|
1170
1259
|
type: Component,
|
|
1171
1260
|
args: [{ selector: 'mm-confirmation-window', standalone: false, 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" }]
|
|
1172
1261
|
}], ctorParameters: () => [] });
|
|
@@ -1188,10 +1277,10 @@ class MmProgressWindowComponent {
|
|
|
1188
1277
|
onCancelClick() {
|
|
1189
1278
|
this.data.cancelOperation();
|
|
1190
1279
|
}
|
|
1191
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.
|
|
1192
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.
|
|
1280
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: MmProgressWindowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1281
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.4", type: MmProgressWindowComponent, isStandalone: false, selector: "mm-progress-window", ngImport: i0, template: "<h1 mat-dialog-title>{{data.title}}</h1>\n<div mat-dialog-content>\n <div>\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[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { 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]" }, { kind: "component", type: i4$2.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }] });
|
|
1193
1282
|
}
|
|
1194
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.
|
|
1283
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: MmProgressWindowComponent, decorators: [{
|
|
1195
1284
|
type: Component,
|
|
1196
1285
|
args: [{ selector: 'mm-progress-window', standalone: false, template: "<h1 mat-dialog-title>{{data.title}}</h1>\n<div mat-dialog-content>\n <div>\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" }]
|
|
1197
1286
|
}], ctorParameters: () => [] });
|
|
@@ -1255,10 +1344,10 @@ class ConfirmationService {
|
|
|
1255
1344
|
});
|
|
1256
1345
|
return dialogRef.afterClosed().pipe(map((value) => value?.result === ButtonTypes.Ok));
|
|
1257
1346
|
}
|
|
1258
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.
|
|
1259
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.
|
|
1347
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: ConfirmationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1348
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: ConfirmationService, providedIn: 'root' });
|
|
1260
1349
|
}
|
|
1261
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.
|
|
1350
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: ConfirmationService, decorators: [{
|
|
1262
1351
|
type: Injectable,
|
|
1263
1352
|
args: [{
|
|
1264
1353
|
providedIn: 'root'
|
|
@@ -1315,10 +1404,10 @@ class ProgressNotifierService {
|
|
|
1315
1404
|
complete() {
|
|
1316
1405
|
this.currentDialogRef?.close();
|
|
1317
1406
|
}
|
|
1318
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.
|
|
1319
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.
|
|
1407
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: ProgressNotifierService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1408
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: ProgressNotifierService });
|
|
1320
1409
|
}
|
|
1321
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.
|
|
1410
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: ProgressNotifierService, decorators: [{
|
|
1322
1411
|
type: Injectable
|
|
1323
1412
|
}], ctorParameters: () => [] });
|
|
1324
1413
|
|
|
@@ -1400,10 +1489,10 @@ class MmFileUploadComponent {
|
|
|
1400
1489
|
selectedFile: null
|
|
1401
1490
|
});
|
|
1402
1491
|
}
|
|
1403
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.
|
|
1404
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.
|
|
1492
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: MmFileUploadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1493
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.4", type: MmFileUploadComponent, isStandalone: false, 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: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { 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: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
|
|
1405
1494
|
}
|
|
1406
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.
|
|
1495
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: MmFileUploadComponent, decorators: [{
|
|
1407
1496
|
type: Component,
|
|
1408
1497
|
args: [{ selector: 'mm-mm-file-upload', standalone: false, 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"] }]
|
|
1409
1498
|
}], ctorParameters: () => [], propDecorators: { fileInput: [{
|
|
@@ -1431,10 +1520,10 @@ class FileUploadService {
|
|
|
1431
1520
|
}
|
|
1432
1521
|
return null;
|
|
1433
1522
|
}
|
|
1434
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.
|
|
1435
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.
|
|
1523
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: FileUploadService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1524
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: FileUploadService, providedIn: 'root' });
|
|
1436
1525
|
}
|
|
1437
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.
|
|
1526
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: FileUploadService, decorators: [{
|
|
1438
1527
|
type: Injectable,
|
|
1439
1528
|
args: [{
|
|
1440
1529
|
providedIn: 'root'
|
|
@@ -1448,10 +1537,10 @@ class MmTableSimpleComponent {
|
|
|
1448
1537
|
get displayedColumns() {
|
|
1449
1538
|
return this.columns.map(col => col.key);
|
|
1450
1539
|
}
|
|
1451
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.
|
|
1452
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.
|
|
1540
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: MmTableSimpleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1541
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.4", 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 }] });
|
|
1453
1542
|
}
|
|
1454
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.
|
|
1543
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: MmTableSimpleComponent, decorators: [{
|
|
1455
1544
|
type: Component,
|
|
1456
1545
|
args: [{ selector: 'mm-table-simple', standalone: true, imports: [
|
|
1457
1546
|
MatTable,
|
|
@@ -1552,10 +1641,10 @@ class MmQrCodeScannerComponent {
|
|
|
1552
1641
|
ngOnDestroy() {
|
|
1553
1642
|
this.scannerService.stop();
|
|
1554
1643
|
}
|
|
1555
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.
|
|
1556
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.
|
|
1644
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: MmQrCodeScannerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1645
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.4", type: MmQrCodeScannerComponent, isStandalone: true, selector: "mm-qr-code-scanner", outputs: { scanComplete: "scanComplete" }, viewQueries: [{ propertyName: "videoRef", first: true, predicate: ["video"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"scanner-container\">\n <video #video autoplay muted playsinline></video>\n <button class=\"close-btn\" (click)=\"onCancel()\">\u00D7</button>\n</div>\n", styles: [".scanner-container{position:fixed;inset:0;background:#000;display:flex;justify-content:center;align-items:center}video{width:100%;height:100%;object-fit:cover}.close-btn{position:absolute;top:1rem;right:1rem;font-size:2rem;background:#00000080;color:#fff;border:none;border-radius:50%;width:3rem;height:3rem}\n"] });
|
|
1557
1646
|
}
|
|
1558
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.
|
|
1647
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: MmQrCodeScannerComponent, decorators: [{
|
|
1559
1648
|
type: Component,
|
|
1560
1649
|
args: [{ selector: 'mm-qr-code-scanner', template: "<div class=\"scanner-container\">\n <video #video autoplay muted playsinline></video>\n <button class=\"close-btn\" (click)=\"onCancel()\">\u00D7</button>\n</div>\n", styles: [".scanner-container{position:fixed;inset:0;background:#000;display:flex;justify-content:center;align-items:center}video{width:100%;height:100%;object-fit:cover}.close-btn{position:absolute;top:1rem;right:1rem;font-size:2rem;background:#00000080;color:#fff;border:none;border-radius:50%;width:3rem;height:3rem}\n"] }]
|
|
1561
1650
|
}], propDecorators: { videoRef: [{
|
|
@@ -1576,8 +1665,8 @@ class MmSharedUiModule {
|
|
|
1576
1665
|
]
|
|
1577
1666
|
};
|
|
1578
1667
|
}
|
|
1579
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.
|
|
1580
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.2.
|
|
1668
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: MmSharedUiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
1669
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.2.4", ngImport: i0, type: MmSharedUiModule, declarations: [MmBreadcrumbComponent,
|
|
1581
1670
|
MmConfirmationWindowComponent,
|
|
1582
1671
|
MmProgressWindowComponent,
|
|
1583
1672
|
MmNotificationBarComponent,
|
|
@@ -1610,7 +1699,7 @@ class MmSharedUiModule {
|
|
|
1610
1699
|
MmFileUploadComponent,
|
|
1611
1700
|
MmTableSimpleComponent,
|
|
1612
1701
|
MmQrCodeScannerComponent] });
|
|
1613
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.2.
|
|
1702
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: MmSharedUiModule, imports: [CommonModule,
|
|
1614
1703
|
MatToolbarModule,
|
|
1615
1704
|
MatButtonModule,
|
|
1616
1705
|
MatSnackBarModule,
|
|
@@ -1626,7 +1715,7 @@ class MmSharedUiModule {
|
|
|
1626
1715
|
MmTableSimpleComponent,
|
|
1627
1716
|
MatProgressBar] });
|
|
1628
1717
|
}
|
|
1629
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.
|
|
1718
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: MmSharedUiModule, decorators: [{
|
|
1630
1719
|
type: NgModule,
|
|
1631
1720
|
args: [{
|
|
1632
1721
|
declarations: [
|