@meshmakers/shared-ui 3.1.115-0 → 3.1.117-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/esm2022/lib/breadcrumb/breadcrumb.module.mjs +8 -8
- package/esm2022/lib/breadcrumb/mat-breadcrumb/mm-breadcrumb.component.mjs +109 -0
- package/esm2022/lib/breadcrumb/services/breadcrumb.service.mjs +3 -3
- package/esm2022/lib/confirmation-dialog/confirmation-dialog.module.mjs +7 -7
- package/esm2022/lib/confirmation-dialog/confirmation-window/mm-confirmation-window.component.mjs +75 -0
- package/esm2022/lib/confirmation-dialog/services/confirmation.service.mjs +9 -9
- package/esm2022/lib/mm-shared-ui/mm-autocomplete-input/mm-autocomplete-input.component.mjs +302 -0
- package/esm2022/lib/mm-shared-ui/mm-entity-select-input/mm-entity-select-input.component.mjs +293 -0
- package/esm2022/lib/mm-shared-ui/mm-message-details/mm-message-details.component.mjs +26 -0
- package/esm2022/lib/mm-shared-ui/mm-multiple-entity-select-input/mm-multiple-entity-select-input.component.mjs +316 -0
- package/esm2022/lib/mm-shared-ui/mm-notification-bar/mm-notification-bar.component.mjs +40 -0
- package/esm2022/lib/mm-shared-ui/mm-shared-ui.module.mjs +74 -0
- package/esm2022/lib/progress-notifier/progress-notifier.module.mjs +7 -7
- package/esm2022/lib/progress-notifier/progress-window/mm-progress-window.component.mjs +35 -0
- package/esm2022/lib/progress-notifier/services/progress-notifier.service.mjs +6 -6
- package/esm2022/lib/shared/commonValidators.mjs +1 -1
- package/esm2022/public-api.mjs +7 -7
- package/fesm2022/meshmakers-shared-ui.mjs +150 -133
- package/fesm2022/meshmakers-shared-ui.mjs.map +1 -1
- package/lib/breadcrumb/breadcrumb.module.d.ts +2 -2
- package/lib/breadcrumb/mat-breadcrumb/{mat-breadcrumb.component.d.ts → mm-breadcrumb.component.d.ts} +3 -3
- package/lib/confirmation-dialog/confirmation-dialog.module.d.ts +2 -2
- package/lib/confirmation-dialog/confirmation-window/{confirmation-window.component.d.ts → mm-confirmation-window.component.d.ts} +4 -4
- package/lib/{ia-shared-ui/ia-autocomplete-input/ia-autocomplete-input.d.ts → mm-shared-ui/mm-autocomplete-input/mm-autocomplete-input.component.d.ts} +10 -10
- package/lib/{ia-shared-ui/ia-entity-select-input/ia-entity-select-input.component.d.ts → mm-shared-ui/mm-entity-select-input/mm-entity-select-input.component.d.ts} +3 -3
- package/lib/mm-shared-ui/mm-message-details/mm-message-details.component.d.ts +13 -0
- package/lib/{ia-shared-ui/ia-multiple-entity-select-input/ia-multiple-entity-select-input.component.d.ts → mm-shared-ui/mm-multiple-entity-select-input/mm-multiple-entity-select-input.component.d.ts} +3 -3
- package/lib/{ia-shared-ui/ia-notification-bar/ia-notification-bar.component.d.ts → mm-shared-ui/mm-notification-bar/mm-notification-bar.component.d.ts} +3 -3
- package/lib/mm-shared-ui/mm-shared-ui.module.d.ts +22 -0
- package/lib/progress-notifier/progress-notifier.module.d.ts +2 -2
- package/lib/progress-notifier/progress-window/{progress-window.component.d.ts → mm-progress-window.component.d.ts} +4 -5
- package/package.json +1 -1
- package/public-api.d.ts +6 -6
- package/esm2022/lib/breadcrumb/mat-breadcrumb/mat-breadcrumb.component.mjs +0 -109
- package/esm2022/lib/confirmation-dialog/confirmation-window/confirmation-window.component.mjs +0 -75
- package/esm2022/lib/ia-shared-ui/ia-autocomplete-input/ia-autocomplete-input.mjs +0 -295
- package/esm2022/lib/ia-shared-ui/ia-entity-select-input/ia-entity-select-input.component.mjs +0 -288
- package/esm2022/lib/ia-shared-ui/ia-multiple-entity-select-input/ia-multiple-entity-select-input.component.mjs +0 -311
- package/esm2022/lib/ia-shared-ui/ia-notification-bar/ia-notification-bar.component.mjs +0 -39
- package/esm2022/lib/ia-shared-ui/ia-shared-ui.module.mjs +0 -74
- package/esm2022/lib/ia-shared-ui/message-details/message-details.component.mjs +0 -26
- package/esm2022/lib/progress-notifier/progress-window/progress-window.component.mjs +0 -35
- package/lib/ia-shared-ui/ia-shared-ui.module.d.ts +0 -22
- package/lib/ia-shared-ui/message-details/message-details.component.d.ts +0 -13
|
@@ -0,0 +1,316 @@
|
|
|
1
|
+
import { Component, EventEmitter, forwardRef, HostBinding, Input, ViewChild } from '@angular/core';
|
|
2
|
+
import { FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, NgControl } from '@angular/forms';
|
|
3
|
+
import { of, Subject } from 'rxjs';
|
|
4
|
+
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
5
|
+
import { debounceTime, filter, switchMap, tap } from 'rxjs/operators';
|
|
6
|
+
import { MatFormFieldControl } from '@angular/material/form-field';
|
|
7
|
+
import { COMMA, ENTER } from '@angular/cdk/keycodes';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "@angular/cdk/a11y";
|
|
10
|
+
import * as i2 from "@angular/common";
|
|
11
|
+
import * as i3 from "@angular/material/autocomplete";
|
|
12
|
+
import * as i4 from "@angular/material/core";
|
|
13
|
+
import * as i5 from "@angular/material/input";
|
|
14
|
+
import * as i6 from "@angular/material/progress-spinner";
|
|
15
|
+
import * as i7 from "@angular/material/chips";
|
|
16
|
+
import * as i8 from "@angular/material/icon";
|
|
17
|
+
import * as i9 from "@angular/forms";
|
|
18
|
+
export class MmMultipleEntitySelectInputComponent {
|
|
19
|
+
elRef;
|
|
20
|
+
injector;
|
|
21
|
+
fm;
|
|
22
|
+
static nextId = 0;
|
|
23
|
+
valuesFormControl;
|
|
24
|
+
searchFormControl;
|
|
25
|
+
isLoading;
|
|
26
|
+
filteredEntities = [];
|
|
27
|
+
ngControl;
|
|
28
|
+
errorState;
|
|
29
|
+
focused;
|
|
30
|
+
stateChanges = new Subject();
|
|
31
|
+
id = `ia-multiple-entity-select-${MmMultipleEntitySelectInputComponent.nextId++}`;
|
|
32
|
+
valuesChange = new EventEmitter();
|
|
33
|
+
_selectedEntities;
|
|
34
|
+
inputField;
|
|
35
|
+
describedBy = '';
|
|
36
|
+
activatedValue;
|
|
37
|
+
separatorKeysCodes = [ENTER, COMMA];
|
|
38
|
+
constructor(elRef, injector, fm) {
|
|
39
|
+
this.elRef = elRef;
|
|
40
|
+
this.injector = injector;
|
|
41
|
+
this.fm = fm;
|
|
42
|
+
this.ngControl = null;
|
|
43
|
+
this.errorState = false;
|
|
44
|
+
this.inputField = null;
|
|
45
|
+
this._dataSource = null;
|
|
46
|
+
this._placeholder = '';
|
|
47
|
+
this._prefix = '';
|
|
48
|
+
this._selectedEntities = null;
|
|
49
|
+
this.valuesFormControl = new FormControl();
|
|
50
|
+
this.searchFormControl = new FormControl();
|
|
51
|
+
this.isLoading = false;
|
|
52
|
+
this._disabled = false;
|
|
53
|
+
this.focused = false;
|
|
54
|
+
fm.monitor(elRef.nativeElement, true).subscribe((origin) => {
|
|
55
|
+
this.focused = !!origin;
|
|
56
|
+
this.stateChanges.next();
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
_dataSource;
|
|
60
|
+
get dataSource() {
|
|
61
|
+
return this._dataSource;
|
|
62
|
+
}
|
|
63
|
+
set dataSource(value) {
|
|
64
|
+
this._dataSource = value;
|
|
65
|
+
}
|
|
66
|
+
_disabled = false;
|
|
67
|
+
get disabled() {
|
|
68
|
+
return this._disabled;
|
|
69
|
+
}
|
|
70
|
+
set disabled(dis) {
|
|
71
|
+
this._disabled = coerceBooleanProperty(dis);
|
|
72
|
+
if (this._disabled) {
|
|
73
|
+
this.searchFormControl.disable();
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
this.searchFormControl.enable();
|
|
77
|
+
}
|
|
78
|
+
this.stateChanges.next();
|
|
79
|
+
}
|
|
80
|
+
_placeholder;
|
|
81
|
+
get placeholder() {
|
|
82
|
+
return this._placeholder;
|
|
83
|
+
}
|
|
84
|
+
set placeholder(plh) {
|
|
85
|
+
this._placeholder = plh;
|
|
86
|
+
this.stateChanges.next();
|
|
87
|
+
}
|
|
88
|
+
_required = false;
|
|
89
|
+
get required() {
|
|
90
|
+
return this._required;
|
|
91
|
+
}
|
|
92
|
+
set required(req) {
|
|
93
|
+
this._required = coerceBooleanProperty(req);
|
|
94
|
+
if (this.inputField != null) {
|
|
95
|
+
this.inputField.required = this._required;
|
|
96
|
+
}
|
|
97
|
+
this.stateChanges.next();
|
|
98
|
+
}
|
|
99
|
+
_prefix;
|
|
100
|
+
get prefix() {
|
|
101
|
+
return this._prefix;
|
|
102
|
+
}
|
|
103
|
+
set prefix(value) {
|
|
104
|
+
if (value !== this._prefix) {
|
|
105
|
+
this._prefix = value;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
get value() {
|
|
109
|
+
return this._selectedEntities;
|
|
110
|
+
}
|
|
111
|
+
set value(value) {
|
|
112
|
+
if (value !== this._selectedEntities) {
|
|
113
|
+
this.valuesFormControl.setValue(value);
|
|
114
|
+
this.setValue(value);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
get empty() {
|
|
118
|
+
const n = this.valuesFormControl.value;
|
|
119
|
+
return !n;
|
|
120
|
+
}
|
|
121
|
+
get shouldLabelFloat() {
|
|
122
|
+
return this.focused || !this.empty;
|
|
123
|
+
}
|
|
124
|
+
ngOnInit() {
|
|
125
|
+
this.ngControl = this.injector.get(NgControl, null);
|
|
126
|
+
if (this.ngControl != null) {
|
|
127
|
+
this.ngControl.valueAccessor = this;
|
|
128
|
+
}
|
|
129
|
+
// If prefix defined, usually this is used for a code scanner.
|
|
130
|
+
// The goal is to select the entity in direct way.
|
|
131
|
+
if (this._prefix) {
|
|
132
|
+
this.searchFormControl.valueChanges
|
|
133
|
+
.pipe(debounceTime(300), filter((value) => typeof value === 'string'), filter((value) => value.startsWith(this._prefix)), tap(() => (this.isLoading = true)), switchMap((value) => this._dataSource?.onFilter(value.replace(this._prefix, '').trim()) ?? of(null)))
|
|
134
|
+
.subscribe((resultSet) => {
|
|
135
|
+
if (resultSet?.list) {
|
|
136
|
+
this.filteredEntities = resultSet.list;
|
|
137
|
+
}
|
|
138
|
+
this.isLoading = false;
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
// This is the search functionality when search by human.
|
|
142
|
+
this.searchFormControl.valueChanges
|
|
143
|
+
.pipe(debounceTime(300), tap(() => (this.filteredEntities = [])), filter((value) => typeof value === 'string'), filter((value) => value.toString().length >= 3), tap(() => (this.isLoading = true)), switchMap((value) => this._dataSource?.onFilter(value) ?? of(null)))
|
|
144
|
+
.subscribe((resultSet) => {
|
|
145
|
+
const resultList = new Array();
|
|
146
|
+
if (resultSet?.list) {
|
|
147
|
+
resultSet.list.forEach((value1) => {
|
|
148
|
+
if (!this.value?.find((value2) => this._dataSource?.getIdEntity(value2) === this._dataSource?.getIdEntity(value1))) {
|
|
149
|
+
resultList.push(value1);
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
this.filteredEntities = resultList;
|
|
154
|
+
this.isLoading = false;
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
ngOnDestroy() {
|
|
158
|
+
this.stateChanges.complete();
|
|
159
|
+
this.fm.stopMonitoring(this.elRef.nativeElement);
|
|
160
|
+
}
|
|
161
|
+
ngDoCheck() {
|
|
162
|
+
if (this.ngControl != null) {
|
|
163
|
+
this.errorState = (this.ngControl.invalid && this.ngControl.touched) ?? false;
|
|
164
|
+
this.stateChanges.next();
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
clear() {
|
|
168
|
+
this.filteredEntities = [];
|
|
169
|
+
this.searchFormControl.reset(null);
|
|
170
|
+
}
|
|
171
|
+
focus() {
|
|
172
|
+
this.elRef.nativeElement.querySelector('input')?.focus();
|
|
173
|
+
}
|
|
174
|
+
onEntitySelected(event) {
|
|
175
|
+
let list = this.value;
|
|
176
|
+
if (list == null) {
|
|
177
|
+
list = new Array();
|
|
178
|
+
}
|
|
179
|
+
list.push(event.option.value);
|
|
180
|
+
this.value = list;
|
|
181
|
+
this.filteredEntities = [];
|
|
182
|
+
this.searchFormControl.setValue(null);
|
|
183
|
+
this.valuesFormControl.updateValueAndValidity();
|
|
184
|
+
}
|
|
185
|
+
onEntityActivated(event) {
|
|
186
|
+
this.activatedValue = event.option?.value;
|
|
187
|
+
}
|
|
188
|
+
onEntityClosed() {
|
|
189
|
+
if (this.activatedValue) {
|
|
190
|
+
this.value = this.activatedValue;
|
|
191
|
+
this.activatedValue = null;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
reset() {
|
|
195
|
+
this.value = new Array();
|
|
196
|
+
}
|
|
197
|
+
onFocusOut() {
|
|
198
|
+
// if (this.filteredEntities.length === 1) {
|
|
199
|
+
// this.activatedValue = this.filteredEntities[0];
|
|
200
|
+
// this.value = this.filteredEntities[0];
|
|
201
|
+
// }
|
|
202
|
+
}
|
|
203
|
+
onTouched() {
|
|
204
|
+
this._onTouched();
|
|
205
|
+
this.stateChanges.next();
|
|
206
|
+
}
|
|
207
|
+
registerOnChange(fn) {
|
|
208
|
+
this._propagateChange = fn;
|
|
209
|
+
}
|
|
210
|
+
registerOnTouched(fn) {
|
|
211
|
+
this.onTouched = fn;
|
|
212
|
+
}
|
|
213
|
+
writeValue(obj) {
|
|
214
|
+
this.clear();
|
|
215
|
+
this.value = obj;
|
|
216
|
+
}
|
|
217
|
+
setDisabledState(isDisabled) {
|
|
218
|
+
this.disabled = isDisabled;
|
|
219
|
+
}
|
|
220
|
+
onContainerClick(event) {
|
|
221
|
+
if (event.target.tagName.toLowerCase() !== 'input') {
|
|
222
|
+
this.focus();
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
setDescribedByIds(ids) {
|
|
226
|
+
this.describedBy = ids.join(' ');
|
|
227
|
+
}
|
|
228
|
+
validate(control) {
|
|
229
|
+
const selection = control.value;
|
|
230
|
+
if (typeof selection === 'string') {
|
|
231
|
+
return { incorrect: true };
|
|
232
|
+
}
|
|
233
|
+
return null;
|
|
234
|
+
}
|
|
235
|
+
remove(value) {
|
|
236
|
+
const list = this.value;
|
|
237
|
+
if (list != null) {
|
|
238
|
+
const index = list.indexOf(value);
|
|
239
|
+
if (index !== -1) {
|
|
240
|
+
list.splice(index, 1);
|
|
241
|
+
}
|
|
242
|
+
this.valuesFormControl.updateValueAndValidity();
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
_propagateChange = (_) => { };
|
|
246
|
+
_onTouched = () => { };
|
|
247
|
+
setValue(values) {
|
|
248
|
+
if (values !== this._selectedEntities) {
|
|
249
|
+
this._selectedEntities = values;
|
|
250
|
+
this.valuesChange.emit(values ?? []);
|
|
251
|
+
this._propagateChange(this._selectedEntities ?? []);
|
|
252
|
+
this.stateChanges.next();
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.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.0.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: [
|
|
257
|
+
{
|
|
258
|
+
provide: NG_VALUE_ACCESSOR,
|
|
259
|
+
useExisting: forwardRef(() => MmMultipleEntitySelectInputComponent),
|
|
260
|
+
multi: true
|
|
261
|
+
},
|
|
262
|
+
{
|
|
263
|
+
provide: MatFormFieldControl,
|
|
264
|
+
useExisting: MmMultipleEntitySelectInputComponent
|
|
265
|
+
},
|
|
266
|
+
{
|
|
267
|
+
provide: NG_VALIDATORS,
|
|
268
|
+
useExisting: forwardRef(() => MmMultipleEntitySelectInputComponent),
|
|
269
|
+
multi: true
|
|
270
|
+
}
|
|
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>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
|
+
}
|
|
273
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: MmMultipleEntitySelectInputComponent, decorators: [{
|
|
274
|
+
type: Component,
|
|
275
|
+
args: [{ selector: 'mm-multiple-entity-select', host: {
|
|
276
|
+
'[id]': 'id',
|
|
277
|
+
'[attr.aria-describedby]': 'describedBy'
|
|
278
|
+
}, providers: [
|
|
279
|
+
{
|
|
280
|
+
provide: NG_VALUE_ACCESSOR,
|
|
281
|
+
useExisting: forwardRef(() => MmMultipleEntitySelectInputComponent),
|
|
282
|
+
multi: true
|
|
283
|
+
},
|
|
284
|
+
{
|
|
285
|
+
provide: MatFormFieldControl,
|
|
286
|
+
useExisting: MmMultipleEntitySelectInputComponent
|
|
287
|
+
},
|
|
288
|
+
{
|
|
289
|
+
provide: NG_VALIDATORS,
|
|
290
|
+
useExisting: forwardRef(() => MmMultipleEntitySelectInputComponent),
|
|
291
|
+
multi: true
|
|
292
|
+
}
|
|
293
|
+
], 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>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" }]
|
|
294
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Injector }, { type: i1.FocusMonitor }], propDecorators: { id: [{
|
|
295
|
+
type: HostBinding
|
|
296
|
+
}], inputField: [{
|
|
297
|
+
type: ViewChild,
|
|
298
|
+
args: ['input']
|
|
299
|
+
}], describedBy: [{
|
|
300
|
+
type: HostBinding,
|
|
301
|
+
args: ['attr.aria-describedby']
|
|
302
|
+
}], dataSource: [{
|
|
303
|
+
type: Input
|
|
304
|
+
}], disabled: [{
|
|
305
|
+
type: Input
|
|
306
|
+
}], placeholder: [{
|
|
307
|
+
type: Input
|
|
308
|
+
}], required: [{
|
|
309
|
+
type: Input
|
|
310
|
+
}], prefix: [{
|
|
311
|
+
type: Input
|
|
312
|
+
}], shouldLabelFloat: [{
|
|
313
|
+
type: HostBinding,
|
|
314
|
+
args: ['class.floating']
|
|
315
|
+
}] } });
|
|
316
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW0tbXVsdGlwbGUtZW50aXR5LXNlbGVjdC1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZXNobWFrZXJzL3NoYXJlZC11aS9zcmMvbGliL21tLXNoYXJlZC11aS9tbS1tdWx0aXBsZS1lbnRpdHktc2VsZWN0LWlucHV0L21tLW11bHRpcGxlLWVudGl0eS1zZWxlY3QtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVzaG1ha2Vycy9zaGFyZWQtdWkvc3JjL2xpYi9tbS1zaGFyZWQtdWkvbW0tbXVsdGlwbGUtZW50aXR5LXNlbGVjdC1pbnB1dC9tbS1tdWx0aXBsZS1lbnRpdHktc2VsZWN0LWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBR1QsWUFBWSxFQUNaLFVBQVUsRUFDVixXQUFXLEVBRVgsS0FBSyxFQUdMLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBR0wsV0FBVyxFQUNYLGFBQWEsRUFDYixpQkFBaUIsRUFDakIsU0FBUyxFQUdWLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHbkMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7Ozs7O0FBMkJyRCxNQUFNLE9BQU8sb0NBQW9DO0lBdUJ0QztJQUNV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QyxhQUNVO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHFDQUFxQyxDQUFDOzRCQUNuRSxLQUFLLEVBQUUsSUFBSTt5QkFDWjt3QkFDRDs0QkFDRSxPQUFPLEVBQUUsbUJBQW1COzRCQUM1QixXQUFXLHNDQUFzQzt5QkFDbEQ7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLGFBQWE7NEJBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHFDQUFxQyxDQUFDOzRCQUNuRSxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtpSUFlZSxFQUFFO3NCQURqQixXQUFXO2dCQUt5QixVQUFVO3NCQUE5QyxTQUFTO3VCQUFDLE9BQU87Z0JBQzRCLFdBQVc7c0JBQXhELFdBQVc7dUJBQUMsdUJBQXVCO2dCQW1DekIsVUFBVTtzQkFEcEIsS0FBSztnQkFRSyxRQUFRO3NCQURsQixLQUFLO2dCQWtCSyxXQUFXO3NCQURyQixLQUFLO2dCQWFLLFFBQVE7c0JBRGxCLEtBQUs7Z0JBZ0JLLE1BQU07c0JBRGhCLEtBQUs7Z0JBNEJLLGdCQUFnQjtzQkFEMUIsV0FBVzt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIERvQ2hlY2ssXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIEluamVjdG9yLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVudGl0eVNlbGVjdERhdGFTb3VyY2UgfSBmcm9tICdAbWVzaG1ha2Vycy9zaGFyZWQtc2VydmljZXMnO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgRm9ybUNvbnRyb2wsXG4gIE5HX1ZBTElEQVRPUlMsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBOZ0NvbnRyb2wsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBvZiwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTWF0SW5wdXQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBGb2N1c01vbml0b3IgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBmaWx0ZXIsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlQWN0aXZhdGVkRXZlbnQsIE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgQ09NTUEsIEVOVEVSIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbW0tbXVsdGlwbGUtZW50aXR5LXNlbGVjdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9tbS1tdWx0aXBsZS1lbnRpdHktc2VsZWN0LWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbW0tbXVsdGlwbGUtZW50aXR5LXNlbGVjdC1pbnB1dC5jb21wb25lbnQuY3NzJ10sXG4gIGhvc3Q6IHtcbiAgICAnW2lkXSc6ICdpZCcsXG4gICAgJ1thdHRyLmFyaWEtZGVzY3JpYmVkYnldJzogJ2Rlc2NyaWJlZEJ5J1xuICB9LFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE1tTXVsdGlwbGVFbnRpdHlTZWxlY3RJbnB1dENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTWF0Rm9ybUZpZWxkQ29udHJvbCxcbiAgICAgIHVzZUV4aXN0aW5nOiBNbU11bHRpcGxlRW50aXR5U2VsZWN0SW5wdXRDb21wb25lbnRcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBNbU11bHRpcGxlRW50aXR5U2VsZWN0SW5wdXRDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgTW1NdWx0aXBsZUVudGl0eVNlbGVjdElucHV0Q29tcG9uZW50XG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIERvQ2hlY2ssIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBNYXRGb3JtRmllbGRDb250cm9sPGFueVtdPiwgVmFsaWRhdG9yXG57XG4gIHByaXZhdGUgc3RhdGljIG5leHRJZCA9IDA7XG4gIHB1YmxpYyByZWFkb25seSB2YWx1ZXNGb3JtQ29udHJvbDogRm9ybUNvbnRyb2w7XG4gIHB1YmxpYyByZWFkb25seSBzZWFyY2hGb3JtQ29udHJvbDogRm9ybUNvbnRyb2w7XG4gIHB1YmxpYyBpc0xvYWRpbmc6IGJvb2xlYW47XG4gIHB1YmxpYyBmaWx0ZXJlZEVudGl0aWVzOiBhbnlbXSA9IFtdO1xuICBwdWJsaWMgbmdDb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsO1xuICBwdWJsaWMgZXJyb3JTdGF0ZTogYm9vbGVhbjtcbiAgcHVibGljIGZvY3VzZWQ6IGJvb2xlYW47XG4gIHB1YmxpYyByZWFkb25seSBzdGF0ZUNoYW5nZXMgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBASG9zdEJpbmRpbmcoKVxuICBwdWJsaWMgcmVhZG9ubHkgaWQgPSBgaWEtbXVsdGlwbGUtZW50aXR5LXNlbGVjdC0ke01tTXVsdGlwbGVFbnRpdHlTZWxlY3RJbnB1dENvbXBvbmVudC5uZXh0SWQrK31gO1xuXG4gIHB1YmxpYyB2YWx1ZXNDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnlbXT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueVtdPigpO1xuICBwcml2YXRlIF9zZWxlY3RlZEVudGl0aWVzOiBhbnlbXSB8IG51bGw7XG4gIEBWaWV3Q2hpbGQoJ2lucHV0JykgcHJpdmF0ZSByZWFkb25seSBpbnB1dEZpZWxkOiBNYXRJbnB1dCB8IG51bGw7XG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWRlc2NyaWJlZGJ5JykgcHJpdmF0ZSBkZXNjcmliZWRCeSA9ICcnO1xuICBwcml2YXRlIGFjdGl2YXRlZFZhbHVlOiBhbnk7XG4gIHJlYWRvbmx5IHNlcGFyYXRvcktleXNDb2RlcyA9IFtFTlRFUiwgQ09NTUFdIGFzIGNvbnN0O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBlbFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSByZWFkb25seSBmbTogRm9jdXNNb25pdG9yXG4gICkge1xuICAgIHRoaXMubmdDb250cm9sID0gbnVsbDtcbiAgICB0aGlzLmVycm9yU3RhdGUgPSBmYWxzZTtcbiAgICB0aGlzLmlucHV0RmllbGQgPSBudWxsO1xuICAgIHRoaXMuX2RhdGFTb3VyY2UgPSBudWxsO1xuICAgIHRoaXMuX3BsYWNlaG9sZGVyID0gJyc7XG4gICAgdGhpcy5fcHJlZml4ID0gJyc7XG4gICAgdGhpcy5fc2VsZWN0ZWRFbnRpdGllcyA9IG51bGw7XG5cbiAgICB0aGlzLnZhbHVlc0Zvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XG4gICAgdGhpcy5zZWFyY2hGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xuICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgdGhpcy5fZGlzYWJsZWQgPSBmYWxzZTtcbiAgICB0aGlzLmZvY3VzZWQgPSBmYWxzZTtcbiAgICBmbS5tb25pdG9yKGVsUmVmLm5hdGl2ZUVsZW1lbnQsIHRydWUpLnN1YnNjcmliZSgob3JpZ2luKSA9PiB7XG4gICAgICB0aGlzLmZvY3VzZWQgPSAhIW9yaWdpbjtcbiAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2RhdGFTb3VyY2U6IEVudGl0eVNlbGVjdERhdGFTb3VyY2U8YW55PiB8IG51bGw7XG5cbiAgcHVibGljIGdldCBkYXRhU291cmNlKCk6IEVudGl0eVNlbGVjdERhdGFTb3VyY2U8YW55PiB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9kYXRhU291cmNlO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBkYXRhU291cmNlKHZhbHVlOiBFbnRpdHlTZWxlY3REYXRhU291cmNlPGFueT4gfCBudWxsKSB7XG4gICAgdGhpcy5fZGF0YVNvdXJjZSA9IHZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGlzYWJsZWQgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgZGlzYWJsZWQoZGlzKSB7XG4gICAgdGhpcy5fZGlzYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkoZGlzKTtcbiAgICBpZiAodGhpcy5fZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuc2VhcmNoRm9ybUNvbnRyb2wuZGlzYWJsZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlYXJjaEZvcm1Db250cm9sLmVuYWJsZSgpO1xuICAgIH1cbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gIH1cblxuICBwcml2YXRlIF9wbGFjZWhvbGRlcjogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgcGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fcGxhY2Vob2xkZXI7XG4gIH1cblxuICBwdWJsaWMgc2V0IHBsYWNlaG9sZGVyKHBsaCkge1xuICAgIHRoaXMuX3BsYWNlaG9sZGVyID0gcGxoO1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3JlcXVpcmVkID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGdldCByZXF1aXJlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcmVxdWlyZWQ7XG4gIH1cblxuICBwdWJsaWMgc2V0IHJlcXVpcmVkKHJlcSkge1xuICAgIHRoaXMuX3JlcXVpcmVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHJlcSk7XG4gICAgaWYgKHRoaXMuaW5wdXRGaWVsZCAhPSBudWxsKSB7XG4gICAgICB0aGlzLmlucHV0RmllbGQucmVxdWlyZWQgPSB0aGlzLl9yZXF1aXJlZDtcbiAgICB9XG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcHJlZml4OiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGdldCBwcmVmaXgoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fcHJlZml4O1xuICB9XG5cbiAgcHVibGljIHNldCBwcmVmaXgodmFsdWU6IHN0cmluZykge1xuICAgIGlmICh2YWx1ZSAhPT0gdGhpcy5fcHJlZml4KSB7XG4gICAgICB0aGlzLl9wcmVmaXggPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IGFueVtdIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkRW50aXRpZXM7XG4gIH1cblxuICBwdWJsaWMgc2V0IHZhbHVlKHZhbHVlOiBhbnlbXSB8IG51bGwpIHtcbiAgICBpZiAodmFsdWUgIT09IHRoaXMuX3NlbGVjdGVkRW50aXRpZXMpIHtcbiAgICAgIHRoaXMudmFsdWVzRm9ybUNvbnRyb2wuc2V0VmFsdWUodmFsdWUpO1xuICAgICAgdGhpcy5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBlbXB0eSgpOiBib29sZWFuIHtcbiAgICBjb25zdCBuID0gdGhpcy52YWx1ZXNGb3JtQ29udHJvbC52YWx1ZTtcbiAgICByZXR1cm4gIW47XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZsb2F0aW5nJylcbiAgcHVibGljIGdldCBzaG91bGRMYWJlbEZsb2F0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmZvY3VzZWQgfHwgIXRoaXMuZW1wdHk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm5nQ29udHJvbCA9IHRoaXMuaW5qZWN0b3IuZ2V0KE5nQ29udHJvbCwgbnVsbCk7XG4gICAgaWYgKHRoaXMubmdDb250cm9sICE9IG51bGwpIHtcbiAgICAgIHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuICAgIH1cblxuICAgIC8vIElmIHByZWZpeCBkZWZpbmVkLCB1c3VhbGx5IHRoaXMgaXMgdXNlZCBmb3IgYSBjb2RlIHNjYW5uZXIuXG4gICAgLy8gVGhlIGdvYWwgaXMgdG8gc2VsZWN0IHRoZSBlbnRpdHkgaW4gZGlyZWN0IHdheS5cbiAgICBpZiAodGhpcy5fcHJlZml4KSB7XG4gICAgICB0aGlzLnNlYXJjaEZvcm1Db250cm9sLnZhbHVlQ2hhbmdlc1xuICAgICAgICAucGlwZShcbiAgICAgICAgICBkZWJvdW5jZVRpbWUoMzAwKSxcbiAgICAgICAgICBmaWx0ZXIoKHZhbHVlKSA9PiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSxcbiAgICAgICAgICBmaWx0ZXIoKHZhbHVlOiBzdHJpbmcpID0+IHZhbHVlLnN0YXJ0c1dpdGgodGhpcy5fcHJlZml4KSksXG4gICAgICAgICAgdGFwKCgpID0+ICh0aGlzLmlzTG9hZGluZyA9IHRydWUpKSxcbiAgICAgICAgICBzd2l0Y2hNYXAoKHZhbHVlKSA9PiB0aGlzLl9kYXRhU291cmNlPy5vbkZpbHRlcih2YWx1ZS5yZXBsYWNlKHRoaXMuX3ByZWZpeCwgJycpLnRyaW0oKSkgPz8gb2YobnVsbCkpXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgocmVzdWx0U2V0KSA9PiB7XG4gICAgICAgICAgaWYgKHJlc3VsdFNldD8ubGlzdCkge1xuICAgICAgICAgICAgdGhpcy5maWx0ZXJlZEVudGl0aWVzID0gcmVzdWx0U2V0Lmxpc3Q7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIFRoaXMgaXMgdGhlIHNlYXJjaCBmdW5jdGlvbmFsaXR5IHdoZW4gc2VhcmNoIGJ5IGh1bWFuLlxuICAgIHRoaXMuc2VhcmNoRm9ybUNvbnRyb2wudmFsdWVDaGFuZ2VzXG4gICAgICAucGlwZShcbiAgICAgICAgZGVib3VuY2VUaW1lKDMwMCksXG4gICAgICAgIHRhcCgoKSA9PiAodGhpcy5maWx0ZXJlZEVudGl0aWVzID0gW10pKSxcbiAgICAgICAgZmlsdGVyKCh2YWx1ZSkgPT4gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyksXG4gICAgICAgIGZpbHRlcigodmFsdWUpID0+IHZhbHVlLnRvU3RyaW5nKCkubGVuZ3RoID49IDMpLFxuICAgICAgICB0YXAoKCkgPT4gKHRoaXMuaXNMb2FkaW5nID0gdHJ1ZSkpLFxuICAgICAgICBzd2l0Y2hNYXAoKHZhbHVlOiBzdHJpbmcpID0+IHRoaXMuX2RhdGFTb3VyY2U/Lm9uRmlsdGVyKHZhbHVlKSA/PyBvZihudWxsKSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdFNldCkgPT4ge1xuICAgICAgICBjb25zdCByZXN1bHRMaXN0ID0gbmV3IEFycmF5PGFueT4oKTtcblxuICAgICAgICBpZiAocmVzdWx0U2V0Py5saXN0KSB7XG4gICAgICAgICAgcmVzdWx0U2V0Lmxpc3QuZm9yRWFjaCgodmFsdWUxKSA9PiB7XG4gICAgICAgICAgICBpZiAoIXRoaXMudmFsdWU/LmZpbmQoKHZhbHVlMikgPT4gdGhpcy5fZGF0YVNvdXJjZT8uZ2V0SWRFbnRpdHkodmFsdWUyKSA9PT0gdGhpcy5fZGF0YVNvdXJjZT8uZ2V0SWRFbnRpdHkodmFsdWUxKSkpIHtcbiAgICAgICAgICAgICAgcmVzdWx0TGlzdC5wdXNoKHZhbHVlMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmZpbHRlcmVkRW50aXRpZXMgPSByZXN1bHRMaXN0O1xuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5jb21wbGV0ZSgpO1xuICAgIHRoaXMuZm0uc3RvcE1vbml0b3JpbmcodGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgfVxuXG4gIG5nRG9DaGVjaygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wgIT0gbnVsbCkge1xuICAgICAgdGhpcy5lcnJvclN0YXRlID0gKHRoaXMubmdDb250cm9sLmludmFsaWQgJiYgdGhpcy5uZ0NvbnRyb2wudG91Y2hlZCkgPz8gZmFsc2U7XG4gICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNsZWFyKCk6IHZvaWQge1xuICAgIHRoaXMuZmlsdGVyZWRFbnRpdGllcyA9IFtdO1xuICAgIHRoaXMuc2VhcmNoRm9ybUNvbnRyb2wucmVzZXQobnVsbCk7XG4gIH1cblxuICBwdWJsaWMgZm9jdXMoKTogdm9pZCB7XG4gICAgdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0Jyk/LmZvY3VzKCk7XG4gIH1cblxuICBwdWJsaWMgb25FbnRpdHlTZWxlY3RlZChldmVudDogTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCk6IHZvaWQge1xuICAgIGxldCBsaXN0ID0gdGhpcy52YWx1ZTtcbiAgICBpZiAobGlzdCA9PSBudWxsKSB7XG4gICAgICBsaXN0ID0gbmV3IEFycmF5PGFueT4oKTtcbiAgICB9XG4gICAgbGlzdC5wdXNoKGV2ZW50Lm9wdGlvbi52YWx1ZSk7XG4gICAgdGhpcy52YWx1ZSA9IGxpc3Q7XG5cbiAgICB0aGlzLmZpbHRlcmVkRW50aXRpZXMgPSBbXTtcbiAgICB0aGlzLnNlYXJjaEZvcm1Db250cm9sLnNldFZhbHVlKG51bGwpO1xuICAgIHRoaXMudmFsdWVzRm9ybUNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICB9XG5cbiAgcHVibGljIG9uRW50aXR5QWN0aXZhdGVkKGV2ZW50OiBNYXRBdXRvY29tcGxldGVBY3RpdmF0ZWRFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuYWN0aXZhdGVkVmFsdWUgPSBldmVudC5vcHRpb24/LnZhbHVlO1xuICB9XG5cbiAgcHVibGljIG9uRW50aXR5Q2xvc2VkKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmFjdGl2YXRlZFZhbHVlKSB7XG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5hY3RpdmF0ZWRWYWx1ZTtcbiAgICAgIHRoaXMuYWN0aXZhdGVkVmFsdWUgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZXNldCgpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gbmV3IEFycmF5PGFueT4oKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkZvY3VzT3V0KCk6IHZvaWQge1xuICAgIC8vIGlmICh0aGlzLmZpbHRlcmVkRW50aXRpZXMubGVuZ3RoID09PSAxKSB7XG4gICAgLy8gICB0aGlzLmFjdGl2YXRlZFZhbHVlID0gdGhpcy5maWx0ZXJlZEVudGl0aWVzWzBdO1xuICAgIC8vICAgdGhpcy52YWx1ZSA9IHRoaXMuZmlsdGVyZWRFbnRpdGllc1swXTtcbiAgICAvLyB9XG4gIH1cblxuICBwdWJsaWMgb25Ub3VjaGVkKCk6IHZvaWQge1xuICAgIHRoaXMuX29uVG91Y2hlZCgpO1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLl9wcm9wYWdhdGVDaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHB1YmxpYyB3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZCB7XG4gICAgdGhpcy5jbGVhcigpO1xuICAgIHRoaXMudmFsdWUgPSBvYmo7XG4gIH1cblxuICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cblxuICBwdWJsaWMgb25Db250YWluZXJDbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGlmICgoZXZlbnQudGFyZ2V0IGFzIEVsZW1lbnQpLnRhZ05hbWUudG9Mb3dlckNhc2UoKSAhPT0gJ2lucHV0Jykge1xuICAgICAgdGhpcy5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXREZXNjcmliZWRCeUlkcyhpZHM6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgdGhpcy5kZXNjcmliZWRCeSA9IGlkcy5qb2luKCcgJyk7XG4gIH1cblxuICB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgY29uc3Qgc2VsZWN0aW9uOiBhbnkgPSBjb250cm9sLnZhbHVlO1xuICAgIGlmICh0eXBlb2Ygc2VsZWN0aW9uID09PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIHsgaW5jb3JyZWN0OiB0cnVlIH07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmVtb3ZlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBsaXN0ID0gdGhpcy52YWx1ZTtcbiAgICBpZiAobGlzdCAhPSBudWxsKSB7XG4gICAgICBjb25zdCBpbmRleCA9IGxpc3QuaW5kZXhPZih2YWx1ZSk7XG4gICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgIGxpc3Quc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgIH1cbiAgICAgIHRoaXMudmFsdWVzRm9ybUNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3Byb3BhZ2F0ZUNoYW5nZSA9IChfOiBhbnlbXSk6IHZvaWQgPT4ge307XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfb25Ub3VjaGVkID0gKCk6IHZvaWQgPT4ge307XG5cbiAgcHJpdmF0ZSBzZXRWYWx1ZSh2YWx1ZXM6IGFueVtdIHwgbnVsbCk6IHZvaWQge1xuICAgIGlmICh2YWx1ZXMgIT09IHRoaXMuX3NlbGVjdGVkRW50aXRpZXMpIHtcbiAgICAgIHRoaXMuX3NlbGVjdGVkRW50aXRpZXMgPSB2YWx1ZXM7XG4gICAgICB0aGlzLnZhbHVlc0NoYW5nZS5lbWl0KHZhbHVlcyA/PyBbXSk7XG4gICAgICB0aGlzLl9wcm9wYWdhdGVDaGFuZ2UodGhpcy5fc2VsZWN0ZWRFbnRpdGllcyA/PyBbXSk7XG4gICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gICAgfVxuICB9XG59XG4iLCI8bWF0LWNoaXAtZ3JpZCAjbGlzdD5cbiAgPG1hdC1jaGlwLXJvdyAqbmdGb3I9XCJsZXQgZW50aXR5IG9mIHZhbHVlc0Zvcm1Db250cm9sLnZhbHVlXCJcbiAgICAgICAgICAgICAgICAocmVtb3ZlZCk9XCJyZW1vdmUoZW50aXR5KVwiXG4gICAgICAgICAgICAgICAgW2VkaXRhYmxlXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICBbYXJpYS1kZXNjcmlwdGlvbl09XCIncHJlc3MgZW50ZXIgdG8gZWRpdCAnICsgZGF0YVNvdXJjZT8ub25EaXNwbGF5RW50aXR5KGVudGl0eSkgPz8gbnVsbFwiPlxuICAgIHt7ZGF0YVNvdXJjZT8ub25EaXNwbGF5RW50aXR5KGVudGl0eSkgPz8gbnVsbH19XG4gICAgPGJ1dHRvbiBtYXRDaGlwUmVtb3ZlIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3JlbW92ZSAnICsgZGF0YVNvdXJjZT8ub25EaXNwbGF5RW50aXR5KGVudGl0eSkgPz8gbnVsbFwiPlxuICAgICAgPG1hdC1pY29uPmNhbmNlbDwvbWF0LWljb24+XG4gICAgPC9idXR0b24+XG4gIDwvbWF0LWNoaXAtcm93PlxuICA8aW5wdXQgI2lucHV0IChibHVyKT1cIm9uVG91Y2hlZCgpXCIgKGZvY3Vzb3V0KT1cIm9uRm9jdXNPdXQoKVwiIFtmb3JtQ29udHJvbF09XCJzZWFyY2hGb3JtQ29udHJvbFwiXG4gICAgICAgICBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9cIlxuICAgICAgICAgW21hdENoaXBJbnB1dEZvcl09XCJsaXN0XCJcbiAgICAgICAgIG1hdENoaXBJbnB1dEFkZE9uQmx1cj1cInRydWVcIlxuICAgICAgICAgW21hdENoaXBJbnB1dFNlcGFyYXRvcktleUNvZGVzXT1cInNlcGFyYXRvcktleXNDb2Rlc1wiXG4gICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIiBtYXRJbnB1dD5cbiAgPG1hdC1hdXRvY29tcGxldGUgI2F1dG89XCJtYXRBdXRvY29tcGxldGVcIiAoY2xvc2VkKT1cIm9uRW50aXR5Q2xvc2VkKClcIlxuICAgICAgICAgICAgICAgICAgICAob3B0aW9uQWN0aXZhdGVkKT1cIm9uRW50aXR5QWN0aXZhdGVkKCRldmVudClcIiAob3B0aW9uU2VsZWN0ZWQpPVwib25FbnRpdHlTZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc3BsYXlXaXRoXT1cImRhdGFTb3VyY2U/Lm9uRGlzcGxheUVudGl0eSA/PyBudWxsXCI+XG4gICAgPG1hdC1vcHRpb24gKm5nSWY9XCJpc0xvYWRpbmdcIiBjbGFzcz1cImlzLWxvYWRpbmdcIj5cbiAgICAgIDxtYXQtc3Bpbm5lciBkaWFtZXRlcj1cIjUwXCI+PC9tYXQtc3Bpbm5lcj5cbiAgICA8L21hdC1vcHRpb24+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0xvYWRpbmdcIj5cbiAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBlbnRpdHkgb2YgZmlsdGVyZWRFbnRpdGllc1wiIFt2YWx1ZV09XCJlbnRpdHlcIj5cbiAgICAgICAge3tkYXRhU291cmNlPy5vbkRpc3BsYXlFbnRpdHkoZW50aXR5KSA/PyBudWxsfX1cbiAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9tYXQtYXV0b2NvbXBsZXRlPlxuPC9tYXQtY2hpcC1ncmlkPlxuIl19
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { MmMessageDetailsComponent } from '../mm-message-details/mm-message-details.component';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@meshmakers/shared-services";
|
|
5
|
+
import * as i2 from "@angular/material/dialog";
|
|
6
|
+
import * as i3 from "@angular/material/toolbar";
|
|
7
|
+
import * as i4 from "@angular/material/button";
|
|
8
|
+
import * as i5 from "@angular/material/icon";
|
|
9
|
+
export class MmNotificationBarComponent {
|
|
10
|
+
messageService;
|
|
11
|
+
dialog;
|
|
12
|
+
errorMessage;
|
|
13
|
+
constructor(messageService, dialog) {
|
|
14
|
+
this.messageService = messageService;
|
|
15
|
+
this.dialog = dialog;
|
|
16
|
+
this.errorMessage = null;
|
|
17
|
+
}
|
|
18
|
+
ngOnInit() {
|
|
19
|
+
this.messageService.getLatestErrorMessage().subscribe((value) => {
|
|
20
|
+
this.errorMessage = value;
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
onHide() {
|
|
24
|
+
this.errorMessage = null;
|
|
25
|
+
}
|
|
26
|
+
onShowDetails() {
|
|
27
|
+
this.dialog.open(MmMessageDetailsComponent, {
|
|
28
|
+
data: {
|
|
29
|
+
errorMessage: this.errorMessage
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.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.0.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>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
|
+
}
|
|
36
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: MmNotificationBarComponent, decorators: [{
|
|
37
|
+
type: Component,
|
|
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>close</mat-icon></button>\n</mat-toolbar>\n", styles: [".notification-fill-remaining-space{flex:1 1 auto}\n"] }]
|
|
39
|
+
}], ctorParameters: () => [{ type: i1.MessageService }, { type: i2.MatDialog }] });
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW0tbm90aWZpY2F0aW9uLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZXNobWFrZXJzL3NoYXJlZC11aS9zcmMvbGliL21tLXNoYXJlZC11aS9tbS1ub3RpZmljYXRpb24tYmFyL21tLW5vdGlmaWNhdGlvbi1iYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVzaG1ha2Vycy9zaGFyZWQtdWkvc3JjL2xpYi9tbS1zaGFyZWQtdWkvbW0tbm90aWZpY2F0aW9uLWJhci9tbS1ub3RpZmljYXRpb24tYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFHbEQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sb0RBQW9ELENBQUM7Ozs7Ozs7QUFPL0YsTUFBTSxPQUFPLDBCQUEwQjtJQUlsQjtJQUNBO0lBSlosWUFBWSxDQUFzQjtJQUV6QyxZQUNtQixjQUE4QixFQUM5QixNQUFpQjtRQURqQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUVsQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztJQUMzQixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxjQUFjLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUM5RCxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7SUFDM0IsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsRUFBRTtZQUMxQyxJQUFJLEVBQUU7Z0JBQ0osWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO2FBQ2hDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt1R0ExQlUsMEJBQTBCOzJGQUExQiwwQkFBMEIsMkRDVnZDLDZiQVFBOzsyRkRFYSwwQkFBMEI7a0JBTHRDLFNBQVM7K0JBQ0UscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVycm9yTWVzc2FnZSwgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdAbWVzaG1ha2Vycy9zaGFyZWQtc2VydmljZXMnO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE1tTWVzc2FnZURldGFpbHNDb21wb25lbnQgfSBmcm9tICcuLi9tbS1tZXNzYWdlLWRldGFpbHMvbW0tbWVzc2FnZS1kZXRhaWxzLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21tLW5vdGlmaWNhdGlvbi1iYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vbW0tbm90aWZpY2F0aW9uLWJhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21tLW5vdGlmaWNhdGlvbi1iYXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBNbU5vdGlmaWNhdGlvbkJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHB1YmxpYyBlcnJvck1lc3NhZ2U6IEVycm9yTWVzc2FnZSB8IG51bGw7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBkaWFsb2c6IE1hdERpYWxvZ1xuICApIHtcbiAgICB0aGlzLmVycm9yTWVzc2FnZSA9IG51bGw7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmdldExhdGVzdEVycm9yTWVzc2FnZSgpLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gdmFsdWU7XG4gICAgfSk7XG4gIH1cblxuICBvbkhpZGUoKTogdm9pZCB7XG4gICAgdGhpcy5lcnJvck1lc3NhZ2UgPSBudWxsO1xuICB9XG5cbiAgb25TaG93RGV0YWlscygpOiB2b2lkIHtcbiAgICB0aGlzLmRpYWxvZy5vcGVuKE1tTWVzc2FnZURldGFpbHNDb21wb25lbnQsIHtcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgZXJyb3JNZXNzYWdlOiB0aGlzLmVycm9yTWVzc2FnZVxuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iLCI8bWF0LXRvb2xiYXIgW2hpZGRlbl09XCIhZXJyb3JNZXNzYWdlXCIgY2xhc3M9XCJtbS1ub3RpZmljYXRpb24tYmFyLWJhY2tncm91bmRcIj5cbiAgPGEgKGNsaWNrKT1cIm9uU2hvd0RldGFpbHMoKVwiPjxzcGFuIGNsYXNzPVwibWF0LXNtYWxsXCI+PHU+e3sgZXJyb3JNZXNzYWdlPy50aXRsZSB9fTwvdT48L3NwYW4+PC9hPlxuXG4gIDwhLS0gVGhpcyBmaWxscyB0aGUgcmVtYWluaW5nIHNwYWNlIG9mIHRoZSBjdXJyZW50IHJvdyAtLT5cbiAgPHNwYW4gY2xhc3M9XCJub3RpZmljYXRpb24tZmlsbC1yZW1haW5pbmctc3BhY2VcIj48L3NwYW4+XG5cbiAgPGJ1dHRvbiAoY2xpY2spPVwib25IaWRlKClcIiBjbGFzcz1cIm1tLW5vdGlmaWNhdGlvbi1iYXItYnV0dG9uXCIgbWF0LWZhYj48bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPjwvYnV0dG9uPlxuPC9tYXQtdG9vbGJhcj5cbiJdfQ==
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { MmNotificationBarComponent } from './mm-notification-bar/mm-notification-bar.component';
|
|
4
|
+
import { MatToolbarModule } from '@angular/material/toolbar';
|
|
5
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
6
|
+
import { MatSnackBarModule } from '@angular/material/snack-bar';
|
|
7
|
+
import { MatDialogModule } from '@angular/material/dialog';
|
|
8
|
+
import { MmMessageDetailsComponent } from './mm-message-details/mm-message-details.component';
|
|
9
|
+
import { MmAutocompleteInputComponent } from './mm-autocomplete-input/mm-autocomplete-input.component';
|
|
10
|
+
import { MatAutocompleteModule } from '@angular/material/autocomplete';
|
|
11
|
+
import { MatInputModule } from '@angular/material/input';
|
|
12
|
+
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
13
|
+
import { ReactiveFormsModule } from '@angular/forms';
|
|
14
|
+
import { MmEntitySelectInputComponent } from './mm-entity-select-input/mm-entity-select-input.component';
|
|
15
|
+
import { MmMultipleEntitySelectInputComponent } from './mm-multiple-entity-select-input/mm-multiple-entity-select-input.component';
|
|
16
|
+
import { MatChipsModule } from '@angular/material/chips';
|
|
17
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
18
|
+
import * as i0 from "@angular/core";
|
|
19
|
+
export class MmSharedUiModule {
|
|
20
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: MmSharedUiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
21
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.4", ngImport: i0, type: MmSharedUiModule, declarations: [MmNotificationBarComponent,
|
|
22
|
+
MmMessageDetailsComponent,
|
|
23
|
+
MmAutocompleteInputComponent,
|
|
24
|
+
MmEntitySelectInputComponent,
|
|
25
|
+
MmMultipleEntitySelectInputComponent], imports: [CommonModule,
|
|
26
|
+
MatToolbarModule,
|
|
27
|
+
MatButtonModule,
|
|
28
|
+
MatSnackBarModule,
|
|
29
|
+
MatDialogModule,
|
|
30
|
+
MatAutocompleteModule,
|
|
31
|
+
MatInputModule,
|
|
32
|
+
MatProgressSpinnerModule,
|
|
33
|
+
MatChipsModule,
|
|
34
|
+
MatIconModule,
|
|
35
|
+
ReactiveFormsModule], exports: [MmNotificationBarComponent, MmAutocompleteInputComponent, MmEntitySelectInputComponent, MmMultipleEntitySelectInputComponent] });
|
|
36
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: MmSharedUiModule, imports: [CommonModule,
|
|
37
|
+
MatToolbarModule,
|
|
38
|
+
MatButtonModule,
|
|
39
|
+
MatSnackBarModule,
|
|
40
|
+
MatDialogModule,
|
|
41
|
+
MatAutocompleteModule,
|
|
42
|
+
MatInputModule,
|
|
43
|
+
MatProgressSpinnerModule,
|
|
44
|
+
MatChipsModule,
|
|
45
|
+
MatIconModule,
|
|
46
|
+
ReactiveFormsModule] });
|
|
47
|
+
}
|
|
48
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: MmSharedUiModule, decorators: [{
|
|
49
|
+
type: NgModule,
|
|
50
|
+
args: [{
|
|
51
|
+
declarations: [
|
|
52
|
+
MmNotificationBarComponent,
|
|
53
|
+
MmMessageDetailsComponent,
|
|
54
|
+
MmAutocompleteInputComponent,
|
|
55
|
+
MmEntitySelectInputComponent,
|
|
56
|
+
MmMultipleEntitySelectInputComponent
|
|
57
|
+
],
|
|
58
|
+
exports: [MmNotificationBarComponent, MmAutocompleteInputComponent, MmEntitySelectInputComponent, MmMultipleEntitySelectInputComponent],
|
|
59
|
+
imports: [
|
|
60
|
+
CommonModule,
|
|
61
|
+
MatToolbarModule,
|
|
62
|
+
MatButtonModule,
|
|
63
|
+
MatSnackBarModule,
|
|
64
|
+
MatDialogModule,
|
|
65
|
+
MatAutocompleteModule,
|
|
66
|
+
MatInputModule,
|
|
67
|
+
MatProgressSpinnerModule,
|
|
68
|
+
MatChipsModule,
|
|
69
|
+
MatIconModule,
|
|
70
|
+
ReactiveFormsModule
|
|
71
|
+
]
|
|
72
|
+
}]
|
|
73
|
+
}] });
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW0tc2hhcmVkLXVpLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lc2htYWtlcnMvc2hhcmVkLXVpL3NyYy9saWIvbW0tc2hhcmVkLXVpL21tLXNoYXJlZC11aS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDakcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUM5RixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUN2RyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDOUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDekcsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sNkVBQTZFLENBQUM7QUFDbkksT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUF5QnZELE1BQU0sT0FBTyxnQkFBZ0I7dUdBQWhCLGdCQUFnQjt3R0FBaEIsZ0JBQWdCLGlCQXJCekIsMEJBQTBCO1lBQzFCLHlCQUF5QjtZQUN6Qiw0QkFBNEI7WUFDNUIsNEJBQTRCO1lBQzVCLG9DQUFvQyxhQUlwQyxZQUFZO1lBQ1osZ0JBQWdCO1lBQ2hCLGVBQWU7WUFDZixpQkFBaUI7WUFDakIsZUFBZTtZQUNmLHFCQUFxQjtZQUNyQixjQUFjO1lBQ2Qsd0JBQXdCO1lBQ3hCLGNBQWM7WUFDZCxhQUFhO1lBQ2IsbUJBQW1CLGFBWlgsMEJBQTBCLEVBQUUsNEJBQTRCLEVBQUUsNEJBQTRCLEVBQUUsb0NBQW9DO3dHQWUzSCxnQkFBZ0IsWUFiekIsWUFBWTtZQUNaLGdCQUFnQjtZQUNoQixlQUFlO1lBQ2YsaUJBQWlCO1lBQ2pCLGVBQWU7WUFDZixxQkFBcUI7WUFDckIsY0FBYztZQUNkLHdCQUF3QjtZQUN4QixjQUFjO1lBQ2QsYUFBYTtZQUNiLG1CQUFtQjs7MkZBR1YsZ0JBQWdCO2tCQXZCNUIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osMEJBQTBCO3dCQUMxQix5QkFBeUI7d0JBQ3pCLDRCQUE0Qjt3QkFDNUIsNEJBQTRCO3dCQUM1QixvQ0FBb0M7cUJBQ3JDO29CQUNELE9BQU8sRUFBRSxDQUFDLDBCQUEwQixFQUFFLDRCQUE0QixFQUFFLDRCQUE0QixFQUFFLG9DQUFvQyxDQUFDO29CQUN2SSxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2YsaUJBQWlCO3dCQUNqQixlQUFlO3dCQUNmLHFCQUFxQjt3QkFDckIsY0FBYzt3QkFDZCx3QkFBd0I7d0JBQ3hCLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixtQkFBbUI7cUJBQ3BCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNbU5vdGlmaWNhdGlvbkJhckNvbXBvbmVudCB9IGZyb20gJy4vbW0tbm90aWZpY2F0aW9uLWJhci9tbS1ub3RpZmljYXRpb24tYmFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXRUb29sYmFyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbGJhcic7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0U25hY2tCYXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xuaW1wb3J0IHsgTWF0RGlhbG9nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE1tTWVzc2FnZURldGFpbHNDb21wb25lbnQgfSBmcm9tICcuL21tLW1lc3NhZ2UtZGV0YWlscy9tbS1tZXNzYWdlLWRldGFpbHMuY29tcG9uZW50JztcbmltcG9ydCB7IE1tQXV0b2NvbXBsZXRlSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL21tLWF1dG9jb21wbGV0ZS1pbnB1dC9tbS1hdXRvY29tcGxldGUtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXInO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1tRW50aXR5U2VsZWN0SW5wdXRDb21wb25lbnQgfSBmcm9tICcuL21tLWVudGl0eS1zZWxlY3QtaW5wdXQvbW0tZW50aXR5LXNlbGVjdC1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTW1NdWx0aXBsZUVudGl0eVNlbGVjdElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9tbS1tdWx0aXBsZS1lbnRpdHktc2VsZWN0LWlucHV0L21tLW11bHRpcGxlLWVudGl0eS1zZWxlY3QtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IE1hdENoaXBzTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hpcHMnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBNbU5vdGlmaWNhdGlvbkJhckNvbXBvbmVudCxcbiAgICBNbU1lc3NhZ2VEZXRhaWxzQ29tcG9uZW50LFxuICAgIE1tQXV0b2NvbXBsZXRlSW5wdXRDb21wb25lbnQsXG4gICAgTW1FbnRpdHlTZWxlY3RJbnB1dENvbXBvbmVudCxcbiAgICBNbU11bHRpcGxlRW50aXR5U2VsZWN0SW5wdXRDb21wb25lbnRcbiAgXSxcbiAgZXhwb3J0czogW01tTm90aWZpY2F0aW9uQmFyQ29tcG9uZW50LCBNbUF1dG9jb21wbGV0ZUlucHV0Q29tcG9uZW50LCBNbUVudGl0eVNlbGVjdElucHV0Q29tcG9uZW50LCBNbU11bHRpcGxlRW50aXR5U2VsZWN0SW5wdXRDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE1hdFRvb2xiYXJNb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdFNuYWNrQmFyTW9kdWxlLFxuICAgIE1hdERpYWxvZ01vZHVsZSxcbiAgICBNYXRBdXRvY29tcGxldGVNb2R1bGUsXG4gICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlLFxuICAgIE1hdENoaXBzTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIE1tU2hhcmVkVWlNb2R1bGUge31cbiJdfQ==
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { NgModule } from '@angular/core';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
|
-
import {
|
|
3
|
+
import { MmProgressWindowComponent } from './progress-window/mm-progress-window.component';
|
|
4
4
|
import { MatDialogModule } from '@angular/material/dialog';
|
|
5
5
|
import { MatButtonModule } from '@angular/material/button';
|
|
6
6
|
import { MatProgressBarModule } from '@angular/material/progress-bar';
|
|
@@ -13,15 +13,15 @@ export class ProgressNotifierModule {
|
|
|
13
13
|
providers: [ProgressNotifierService]
|
|
14
14
|
};
|
|
15
15
|
}
|
|
16
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
17
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.
|
|
18
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.
|
|
16
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ProgressNotifierModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
17
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.4", ngImport: i0, type: ProgressNotifierModule, declarations: [MmProgressWindowComponent], imports: [CommonModule, MatDialogModule, MatButtonModule, MatProgressBarModule] });
|
|
18
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ProgressNotifierModule, imports: [CommonModule, MatDialogModule, MatButtonModule, MatProgressBarModule] });
|
|
19
19
|
}
|
|
20
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ProgressNotifierModule, decorators: [{
|
|
21
21
|
type: NgModule,
|
|
22
22
|
args: [{
|
|
23
|
-
declarations: [
|
|
23
|
+
declarations: [MmProgressWindowComponent],
|
|
24
24
|
imports: [CommonModule, MatDialogModule, MatButtonModule, MatProgressBarModule]
|
|
25
25
|
}]
|
|
26
26
|
}] });
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3Mtbm90aWZpZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVzaG1ha2Vycy9zaGFyZWQtdWkvc3JjL2xpYi9wcm9ncmVzcy1ub3RpZmllci9wcm9ncmVzcy1ub3RpZmllci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7O0FBTS9FLE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsTUFBTSxDQUFDLE9BQU87UUFDWixPQUFPO1lBQ0wsUUFBUSxFQUFFLHNCQUFzQjtZQUNoQyxTQUFTLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztTQUNyQyxDQUFDO0lBQ0osQ0FBQzt1R0FOVSxzQkFBc0I7d0dBQXRCLHNCQUFzQixpQkFIbEIseUJBQXlCLGFBQzlCLFlBQVksRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLG9CQUFvQjt3R0FFbkUsc0JBQXNCLFlBRnZCLFlBQVksRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLG9CQUFvQjs7MkZBRW5FLHNCQUFzQjtrQkFKbEMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQztvQkFDekMsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsb0JBQW9CLENBQUM7aUJBQ2hGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNbVByb2dyZXNzV2luZG93Q29tcG9uZW50IH0gZnJvbSAnLi9wcm9ncmVzcy13aW5kb3cvbW0tcHJvZ3Jlc3Mtd2luZG93LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXREaWFsb2dNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdFByb2dyZXNzQmFyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3MtYmFyJztcbmltcG9ydCB7IFByb2dyZXNzTm90aWZpZXJTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9wcm9ncmVzcy1ub3RpZmllci5zZXJ2aWNlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbTW1Qcm9ncmVzc1dpbmRvd0NvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE1hdERpYWxvZ01vZHVsZSwgTWF0QnV0dG9uTW9kdWxlLCBNYXRQcm9ncmVzc0Jhck1vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgUHJvZ3Jlc3NOb3RpZmllck1vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8UHJvZ3Jlc3NOb3RpZmllck1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogUHJvZ3Jlc3NOb3RpZmllck1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1Byb2dyZXNzTm90aWZpZXJTZXJ2aWNlXVxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Component, Inject } from '@angular/core';
|
|
2
|
+
import { MAT_DIALOG_DATA } from '@angular/material/dialog';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common";
|
|
5
|
+
import * as i2 from "@angular/material/dialog";
|
|
6
|
+
import * as i3 from "@angular/material/button";
|
|
7
|
+
import * as i4 from "@angular/material/progress-bar";
|
|
8
|
+
export class MmProgressWindowComponent {
|
|
9
|
+
data;
|
|
10
|
+
statusText;
|
|
11
|
+
progressValue;
|
|
12
|
+
constructor(data) {
|
|
13
|
+
this.data = data;
|
|
14
|
+
this.statusText = null;
|
|
15
|
+
this.progressValue = 0;
|
|
16
|
+
data.progress.subscribe((value) => {
|
|
17
|
+
this.statusText = value.statusText;
|
|
18
|
+
this.progressValue = value.progressValue;
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
ngOnInit() { }
|
|
22
|
+
onCancelClick() {
|
|
23
|
+
this.data.cancelOperation();
|
|
24
|
+
}
|
|
25
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: MmProgressWindowComponent, deps: [{ token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
26
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.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: "directive", type: i2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i4.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }] });
|
|
27
|
+
}
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: MmProgressWindowComponent, decorators: [{
|
|
29
|
+
type: Component,
|
|
30
|
+
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" }]
|
|
31
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
32
|
+
type: Inject,
|
|
33
|
+
args: [MAT_DIALOG_DATA]
|
|
34
|
+
}] }] });
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW0tcHJvZ3Jlc3Mtd2luZG93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lc2htYWtlcnMvc2hhcmVkLXVpL3NyYy9saWIvcHJvZ3Jlc3Mtbm90aWZpZXIvcHJvZ3Jlc3Mtd2luZG93L21tLXByb2dyZXNzLXdpbmRvdy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZXNobWFrZXJzL3NoYXJlZC11aS9zcmMvbGliL3Byb2dyZXNzLW5vdGlmaWVyL3Byb2dyZXNzLXdpbmRvdy9tbS1wcm9ncmVzcy13aW5kb3cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7QUFtQjNELE1BQU0sT0FBTyx5QkFBeUI7SUFJUTtJQUhyQyxVQUFVLENBQWdCO0lBQzFCLGFBQWEsQ0FBUztJQUU3QixZQUE0QyxJQUF3QjtRQUF4QixTQUFJLEdBQUosSUFBSSxDQUFvQjtRQUNsRSxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQztRQUV2QixJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2hDLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQztZQUNuQyxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUM7UUFDM0MsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsUUFBUSxLQUFVLENBQUM7SUFFbkIsYUFBYTtRQUNYLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDOUIsQ0FBQzt1R0FsQlUseUJBQXlCLGtCQUloQixlQUFlOzJGQUp4Qix5QkFBeUIsMERDcEJ0QywwaEJBV0E7OzJGRFNhLHlCQUF5QjtrQkFMckMsU0FBUzsrQkFDRSxvQkFBb0I7OzBCQVFqQixNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUHJvZ3Jlc3NWYWx1ZSB9IGZyb20gJy4uL3NoYXJlZC9wcm9ncmVzc1ZhbHVlJztcblxuZXhwb3J0IGludGVyZmFjZSBQcm9ncmVzc1dpbmRvd0RhdGEge1xuICB0aXRsZTogc3RyaW5nO1xuICBpc0RldGVybWluYXRlOiBib29sZWFuO1xuICBwcm9ncmVzczogT2JzZXJ2YWJsZTxQcm9ncmVzc1ZhbHVlPjtcbiAgaXNDYW5jZWxPcGVyYXRpb25BdmFpbGFibGU6IGJvb2xlYW47XG4gIGNhbmNlbE9wZXJhdGlvbjogKCkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IHR5cGUgUHJvZ3Jlc3NXaW5kb3dSZXN1bHQgPSBvYmplY3RcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbW0tcHJvZ3Jlc3Mtd2luZG93JyxcbiAgdGVtcGxhdGVVcmw6ICcuL21tLXByb2dyZXNzLXdpbmRvdy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21tLXByb2dyZXNzLXdpbmRvdy5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTW1Qcm9ncmVzc1dpbmRvd0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHB1YmxpYyBzdGF0dXNUZXh0OiBzdHJpbmcgfCBudWxsO1xuICBwdWJsaWMgcHJvZ3Jlc3NWYWx1ZTogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogUHJvZ3Jlc3NXaW5kb3dEYXRhKSB7XG4gICAgdGhpcy5zdGF0dXNUZXh0ID0gbnVsbDtcbiAgICB0aGlzLnByb2dyZXNzVmFsdWUgPSAwO1xuXG4gICAgZGF0YS5wcm9ncmVzcy5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICB0aGlzLnN0YXR1c1RleHQgPSB2YWx1ZS5zdGF0dXNUZXh0O1xuICAgICAgdGhpcy5wcm9ncmVzc1ZhbHVlID0gdmFsdWUucHJvZ3Jlc3NWYWx1ZTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge31cblxuICBvbkNhbmNlbENsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMuZGF0YS5jYW5jZWxPcGVyYXRpb24oKTtcbiAgfVxufVxuIiwiPGgxIG1hdC1kaWFsb2ctdGl0bGU+e3tkYXRhLnRpdGxlfX08L2gxPlxuPGRpdiBtYXQtZGlhbG9nLWNvbnRlbnQ+XG4gIDxkaXYgZnhMYXlvdXQ9XCJjb2x1bW5cIj5cbiAgICA8bWF0LXByb2dyZXNzLWJhciAqbmdJZj1cImRhdGEuaXNEZXRlcm1pbmF0ZVwiIFt2YWx1ZV09XCJwcm9ncmVzc1ZhbHVlXCIgbW9kZT1cImRldGVybWluYXRlXCI+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxuICAgIDxtYXQtcHJvZ3Jlc3MtYmFyICpuZ0lmPVwiIWRhdGEuaXNEZXRlcm1pbmF0ZVwiIG1vZGU9XCJpbmRldGVybWluYXRlXCI+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxuICAgIDxwPnt7c3RhdHVzVGV4dH19PC9wPlxuICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBzdHlsZT1cImp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XCIgbWF0LWRpYWxvZy1hY3Rpb25zPlxuICA8YnV0dG9uIChjbGljayk9XCJvbkNhbmNlbENsaWNrKClcIiAqbmdJZj1cImRhdGEuaXNDYW5jZWxPcGVyYXRpb25BdmFpbGFibGVcIiBtYXQtYnV0dG9uPkNhbmNlbDwvYnV0dG9uPlxuPC9kaXY+XG4iXX0=
|