@meshmakers/shared-ui 3.1.140-0 → 3.1.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.
Files changed (58) hide show
  1. package/esm2022/lib/mm-autocomplete-input/mm-autocomplete-input.component.mjs +302 -0
  2. package/esm2022/lib/mm-breadcrumb/mm-breadcrumb.component.mjs +108 -0
  3. package/esm2022/lib/mm-confirmation-window/mm-confirmation-window.component.mjs +75 -0
  4. package/esm2022/lib/mm-entity-select-input/mm-entity-select-input.component.mjs +293 -0
  5. package/esm2022/lib/{mm-shared-ui/mm-message-details → mm-message-details}/mm-message-details.component.mjs +4 -4
  6. package/esm2022/lib/mm-multiple-entity-select-input/mm-multiple-entity-select-input.component.mjs +316 -0
  7. package/esm2022/lib/mm-notification-bar/mm-notification-bar.component.mjs +40 -0
  8. package/esm2022/lib/mm-progress-window/mm-progress-window.component.mjs +34 -0
  9. package/esm2022/lib/mm-shared-ui.module.mjs +83 -0
  10. package/esm2022/lib/{shared → models}/abstractDetailsComponent.mjs +1 -1
  11. package/esm2022/lib/{shared → models}/commonValidators.mjs +1 -1
  12. package/esm2022/lib/models/confirmation.mjs +15 -0
  13. package/esm2022/lib/models/progressValue.mjs +9 -0
  14. package/esm2022/lib/services/confirmation.service.mjs +69 -0
  15. package/esm2022/lib/services/progress-notifier.service.mjs +63 -0
  16. package/esm2022/public-api.mjs +13 -16
  17. package/fesm2022/meshmakers-shared-ui.mjs +267 -337
  18. package/fesm2022/meshmakers-shared-ui.mjs.map +1 -1
  19. package/lib/{breadcrumb/mat-breadcrumb → mm-breadcrumb}/mm-breadcrumb.component.d.ts +1 -2
  20. package/lib/{confirmation-dialog/confirmation-window → mm-confirmation-window}/mm-confirmation-window.component.d.ts +1 -1
  21. package/lib/{progress-notifier/progress-window → mm-progress-window}/mm-progress-window.component.d.ts +1 -1
  22. package/lib/mm-shared-ui.module.d.ts +25 -0
  23. package/lib/{confirmation-dialog/services → services}/confirmation.service.d.ts +1 -1
  24. package/package.json +3 -3
  25. package/public-api.d.ts +12 -15
  26. package/esm2022/lib/breadcrumb/breadcrumb.module.mjs +0 -22
  27. package/esm2022/lib/breadcrumb/mat-breadcrumb/mm-breadcrumb.component.mjs +0 -109
  28. package/esm2022/lib/breadcrumb/model/breadcrumb.mjs +0 -2
  29. package/esm2022/lib/breadcrumb/services/breadcrumb.service.mjs +0 -22
  30. package/esm2022/lib/confirmation-dialog/confirmation-dialog.module.mjs +0 -26
  31. package/esm2022/lib/confirmation-dialog/confirmation-window/mm-confirmation-window.component.mjs +0 -75
  32. package/esm2022/lib/confirmation-dialog/services/confirmation.service.mjs +0 -69
  33. package/esm2022/lib/confirmation-dialog/shared/confirmation.mjs +0 -15
  34. package/esm2022/lib/mm-shared-ui/mm-autocomplete-input/mm-autocomplete-input.component.mjs +0 -302
  35. package/esm2022/lib/mm-shared-ui/mm-entity-select-input/mm-entity-select-input.component.mjs +0 -293
  36. package/esm2022/lib/mm-shared-ui/mm-multiple-entity-select-input/mm-multiple-entity-select-input.component.mjs +0 -316
  37. package/esm2022/lib/mm-shared-ui/mm-notification-bar/mm-notification-bar.component.mjs +0 -40
  38. package/esm2022/lib/mm-shared-ui/mm-shared-ui.module.mjs +0 -74
  39. package/esm2022/lib/progress-notifier/progress-notifier.module.mjs +0 -27
  40. package/esm2022/lib/progress-notifier/progress-window/mm-progress-window.component.mjs +0 -35
  41. package/esm2022/lib/progress-notifier/services/progress-notifier.service.mjs +0 -63
  42. package/esm2022/lib/progress-notifier/shared/progressValue.mjs +0 -9
  43. package/lib/breadcrumb/breadcrumb.module.d.ts +0 -12
  44. package/lib/breadcrumb/model/breadcrumb.d.ts +0 -4
  45. package/lib/breadcrumb/services/breadcrumb.service.d.ts +0 -11
  46. package/lib/confirmation-dialog/confirmation-dialog.module.d.ts +0 -12
  47. package/lib/mm-shared-ui/mm-shared-ui.module.d.ts +0 -22
  48. package/lib/progress-notifier/progress-notifier.module.d.ts +0 -13
  49. /package/lib/{mm-shared-ui/mm-autocomplete-input → mm-autocomplete-input}/mm-autocomplete-input.component.d.ts +0 -0
  50. /package/lib/{mm-shared-ui/mm-entity-select-input → mm-entity-select-input}/mm-entity-select-input.component.d.ts +0 -0
  51. /package/lib/{mm-shared-ui/mm-message-details → mm-message-details}/mm-message-details.component.d.ts +0 -0
  52. /package/lib/{mm-shared-ui/mm-multiple-entity-select-input → mm-multiple-entity-select-input}/mm-multiple-entity-select-input.component.d.ts +0 -0
  53. /package/lib/{mm-shared-ui/mm-notification-bar → mm-notification-bar}/mm-notification-bar.component.d.ts +0 -0
  54. /package/lib/{shared → models}/abstractDetailsComponent.d.ts +0 -0
  55. /package/lib/{shared → models}/commonValidators.d.ts +0 -0
  56. /package/lib/{confirmation-dialog/shared → models}/confirmation.d.ts +0 -0
  57. /package/lib/{progress-notifier/shared → models}/progressValue.d.ts +0 -0
  58. /package/lib/{progress-notifier/services → services}/progress-notifier.service.d.ts +0 -0
@@ -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.1.2", 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.1.2", 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.1.2", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW0tbXVsdGlwbGUtZW50aXR5LXNlbGVjdC1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZXNobWFrZXJzL3NoYXJlZC11aS9zcmMvbGliL21tLW11bHRpcGxlLWVudGl0eS1zZWxlY3QtaW5wdXQvbW0tbXVsdGlwbGUtZW50aXR5LXNlbGVjdC1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZXNobWFrZXJzL3NoYXJlZC11aS9zcmMvbGliL21tLW11bHRpcGxlLWVudGl0eS1zZWxlY3QtaW5wdXQvbW0tbXVsdGlwbGUtZW50aXR5LXNlbGVjdC1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUdULFlBQVksRUFDWixVQUFVLEVBQ1YsV0FBVyxFQUVYLEtBQUssRUFHTCxTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUdMLFdBQVcsRUFDWCxhQUFhLEVBQ2IsaUJBQWlCLEVBQ2pCLFNBQVMsRUFHVixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR25DLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7Ozs7OztBQTJCckQsTUFBTSxPQUFPLG9DQUFvQztJQXVCdEM7SUFDVTtJQUNBO0lBdEJYLE1BQU0sQ0FBQyxNQUFNLEdBQUcs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QWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxxQ0FBcUMsQ0FBQzs0QkFDbkUsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLG1CQUFtQjs0QkFDNUIsV0FBVyxzQ0FBc0M7eUJBQ2xEO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSxhQUFhOzRCQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxxQ0FBcUMsQ0FBQzs0QkFDbkUsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7aUlBZWUsRUFBRTtzQkFEakIsV0FBVztnQkFLeUIsVUFBVTtzQkFBOUMsU0FBUzt1QkFBQyxPQUFPO2dCQUM0QixXQUFXO3NCQUF4RCxXQUFXO3VCQUFDLHVCQUF1QjtnQkFtQ3pCLFVBQVU7c0JBRHBCLEtBQUs7Z0JBUUssUUFBUTtzQkFEbEIsS0FBSztnQkFrQkssV0FBVztzQkFEckIsS0FBSztnQkFhSyxRQUFRO3NCQURsQixLQUFLO2dCQWdCSyxNQUFNO3NCQURoQixLQUFLO2dCQTRCSyxnQkFBZ0I7c0JBRDFCLFdBQVc7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBEb0NoZWNrLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBJbmplY3RvcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFbnRpdHlTZWxlY3REYXRhU291cmNlIH0gZnJvbSAnQG1lc2htYWtlcnMvc2hhcmVkLXNlcnZpY2VzJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIEZvcm1Db250cm9sLFxuICBOR19WQUxJREFUT1JTLFxuICBOR19WQUxVRV9BQ0NFU1NPUixcbiAgTmdDb250cm9sLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBWYWxpZGF0b3Jcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE1hdElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgRm9jdXNNb25pdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZmlsdGVyLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZUFjdGl2YXRlZEV2ZW50LCBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZENvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IENPTU1BLCBFTlRFUiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21tLW11bHRpcGxlLWVudGl0eS1zZWxlY3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vbW0tbXVsdGlwbGUtZW50aXR5LXNlbGVjdC1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21tLW11bHRpcGxlLWVudGl0eS1zZWxlY3QtaW5wdXQuY29tcG9uZW50LmNzcyddLFxuICBob3N0OiB7XG4gICAgJ1tpZF0nOiAnaWQnLFxuICAgICdbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XSc6ICdkZXNjcmliZWRCeSdcbiAgfSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBNbU11bHRpcGxlRW50aXR5U2VsZWN0SW5wdXRDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE1hdEZvcm1GaWVsZENvbnRyb2wsXG4gICAgICB1c2VFeGlzdGluZzogTW1NdWx0aXBsZUVudGl0eVNlbGVjdElucHV0Q29tcG9uZW50XG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTW1NdWx0aXBsZUVudGl0eVNlbGVjdElucHV0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIE1tTXVsdGlwbGVFbnRpdHlTZWxlY3RJbnB1dENvbXBvbmVudFxuICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBEb0NoZWNrLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgTWF0Rm9ybUZpZWxkQ29udHJvbDxhbnlbXT4sIFZhbGlkYXRvclxue1xuICBwcml2YXRlIHN0YXRpYyBuZXh0SWQgPSAwO1xuICBwdWJsaWMgcmVhZG9ubHkgdmFsdWVzRm9ybUNvbnRyb2w6IEZvcm1Db250cm9sO1xuICBwdWJsaWMgcmVhZG9ubHkgc2VhcmNoRm9ybUNvbnRyb2w6IEZvcm1Db250cm9sO1xuICBwdWJsaWMgaXNMb2FkaW5nOiBib29sZWFuO1xuICBwdWJsaWMgZmlsdGVyZWRFbnRpdGllczogYW55W10gPSBbXTtcbiAgcHVibGljIG5nQ29udHJvbDogTmdDb250cm9sIHwgbnVsbDtcbiAgcHVibGljIGVycm9yU3RhdGU6IGJvb2xlYW47XG4gIHB1YmxpYyBmb2N1c2VkOiBib29sZWFuO1xuICBwdWJsaWMgcmVhZG9ubHkgc3RhdGVDaGFuZ2VzID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgQEhvc3RCaW5kaW5nKClcbiAgcHVibGljIHJlYWRvbmx5IGlkID0gYGlhLW11bHRpcGxlLWVudGl0eS1zZWxlY3QtJHtNbU11bHRpcGxlRW50aXR5U2VsZWN0SW5wdXRDb21wb25lbnQubmV4dElkKyt9YDtcblxuICBwdWJsaWMgdmFsdWVzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55W10+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnlbXT4oKTtcbiAgcHJpdmF0ZSBfc2VsZWN0ZWRFbnRpdGllczogYW55W10gfCBudWxsO1xuICBAVmlld0NoaWxkKCdpbnB1dCcpIHByaXZhdGUgcmVhZG9ubHkgaW5wdXRGaWVsZDogTWF0SW5wdXQgfCBudWxsO1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1kZXNjcmliZWRieScpIHByaXZhdGUgZGVzY3JpYmVkQnkgPSAnJztcbiAgcHJpdmF0ZSBhY3RpdmF0ZWRWYWx1ZTogYW55O1xuICByZWFkb25seSBzZXBhcmF0b3JLZXlzQ29kZXMgPSBbRU5URVIsIENPTU1BXSBhcyBjb25zdDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZWxSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZm06IEZvY3VzTW9uaXRvclxuICApIHtcbiAgICB0aGlzLm5nQ29udHJvbCA9IG51bGw7XG4gICAgdGhpcy5lcnJvclN0YXRlID0gZmFsc2U7XG4gICAgdGhpcy5pbnB1dEZpZWxkID0gbnVsbDtcbiAgICB0aGlzLl9kYXRhU291cmNlID0gbnVsbDtcbiAgICB0aGlzLl9wbGFjZWhvbGRlciA9ICcnO1xuICAgIHRoaXMuX3ByZWZpeCA9ICcnO1xuICAgIHRoaXMuX3NlbGVjdGVkRW50aXRpZXMgPSBudWxsO1xuXG4gICAgdGhpcy52YWx1ZXNGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xuICAgIHRoaXMuc2VhcmNoRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgIHRoaXMuX2Rpc2FibGVkID0gZmFsc2U7XG4gICAgdGhpcy5mb2N1c2VkID0gZmFsc2U7XG4gICAgZm0ubW9uaXRvcihlbFJlZi5uYXRpdmVFbGVtZW50LCB0cnVlKS5zdWJzY3JpYmUoKG9yaWdpbikgPT4ge1xuICAgICAgdGhpcy5mb2N1c2VkID0gISFvcmlnaW47XG4gICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9kYXRhU291cmNlOiBFbnRpdHlTZWxlY3REYXRhU291cmNlPGFueT4gfCBudWxsO1xuXG4gIHB1YmxpYyBnZXQgZGF0YVNvdXJjZSgpOiBFbnRpdHlTZWxlY3REYXRhU291cmNlPGFueT4gfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YVNvdXJjZTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZGF0YVNvdXJjZSh2YWx1ZTogRW50aXR5U2VsZWN0RGF0YVNvdXJjZTxhbnk+IHwgbnVsbCkge1xuICAgIHRoaXMuX2RhdGFTb3VyY2UgPSB2YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgX2Rpc2FibGVkID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XG4gIH1cblxuICBwdWJsaWMgc2V0IGRpc2FibGVkKGRpcykge1xuICAgIHRoaXMuX2Rpc2FibGVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KGRpcyk7XG4gICAgaWYgKHRoaXMuX2Rpc2FibGVkKSB7XG4gICAgICB0aGlzLnNlYXJjaEZvcm1Db250cm9sLmRpc2FibGUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWFyY2hGb3JtQ29udHJvbC5lbmFibGUoKTtcbiAgICB9XG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcGxhY2Vob2xkZXI6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IHBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3BsYWNlaG9sZGVyO1xuICB9XG5cbiAgcHVibGljIHNldCBwbGFjZWhvbGRlcihwbGgpIHtcbiAgICB0aGlzLl9wbGFjZWhvbGRlciA9IHBsaDtcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gIH1cblxuICBwcml2YXRlIF9yZXF1aXJlZCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgcmVxdWlyZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3JlcXVpcmVkO1xuICB9XG5cbiAgcHVibGljIHNldCByZXF1aXJlZChyZXEpIHtcbiAgICB0aGlzLl9yZXF1aXJlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShyZXEpO1xuICAgIGlmICh0aGlzLmlucHV0RmllbGQgIT0gbnVsbCkge1xuICAgICAgdGhpcy5pbnB1dEZpZWxkLnJlcXVpcmVkID0gdGhpcy5fcmVxdWlyZWQ7XG4gICAgfVxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3ByZWZpeDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgcHJlZml4KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3ByZWZpeDtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgcHJlZml4KHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAodmFsdWUgIT09IHRoaXMuX3ByZWZpeCkge1xuICAgICAgdGhpcy5fcHJlZml4ID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCB2YWx1ZSgpOiBhbnlbXSB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZEVudGl0aWVzO1xuICB9XG5cbiAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogYW55W10gfCBudWxsKSB7XG4gICAgaWYgKHZhbHVlICE9PSB0aGlzLl9zZWxlY3RlZEVudGl0aWVzKSB7XG4gICAgICB0aGlzLnZhbHVlc0Zvcm1Db250cm9sLnNldFZhbHVlKHZhbHVlKTtcbiAgICAgIHRoaXMuc2V0VmFsdWUodmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgZW1wdHkoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgbiA9IHRoaXMudmFsdWVzRm9ybUNvbnRyb2wudmFsdWU7XG4gICAgcmV0dXJuICFuO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mbG9hdGluZycpXG4gIHB1YmxpYyBnZXQgc2hvdWxkTGFiZWxGbG9hdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5mb2N1c2VkIHx8ICF0aGlzLmVtcHR5O1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5uZ0NvbnRyb2wgPSB0aGlzLmluamVjdG9yLmdldChOZ0NvbnRyb2wsIG51bGwpO1xuICAgIGlmICh0aGlzLm5nQ29udHJvbCAhPSBudWxsKSB7XG4gICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICB9XG5cbiAgICAvLyBJZiBwcmVmaXggZGVmaW5lZCwgdXN1YWxseSB0aGlzIGlzIHVzZWQgZm9yIGEgY29kZSBzY2FubmVyLlxuICAgIC8vIFRoZSBnb2FsIGlzIHRvIHNlbGVjdCB0aGUgZW50aXR5IGluIGRpcmVjdCB3YXkuXG4gICAgaWYgKHRoaXMuX3ByZWZpeCkge1xuICAgICAgdGhpcy5zZWFyY2hGb3JtQ29udHJvbC52YWx1ZUNoYW5nZXNcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgZGVib3VuY2VUaW1lKDMwMCksXG4gICAgICAgICAgZmlsdGVyKCh2YWx1ZSkgPT4gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyksXG4gICAgICAgICAgZmlsdGVyKCh2YWx1ZTogc3RyaW5nKSA9PiB2YWx1ZS5zdGFydHNXaXRoKHRoaXMuX3ByZWZpeCkpLFxuICAgICAgICAgIHRhcCgoKSA9PiAodGhpcy5pc0xvYWRpbmcgPSB0cnVlKSksXG4gICAgICAgICAgc3dpdGNoTWFwKCh2YWx1ZSkgPT4gdGhpcy5fZGF0YVNvdXJjZT8ub25GaWx0ZXIodmFsdWUucmVwbGFjZSh0aGlzLl9wcmVmaXgsICcnKS50cmltKCkpID8/IG9mKG51bGwpKVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdFNldCkgPT4ge1xuICAgICAgICAgIGlmIChyZXN1bHRTZXQ/Lmxpc3QpIHtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyZWRFbnRpdGllcyA9IHJlc3VsdFNldC5saXN0O1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBUaGlzIGlzIHRoZSBzZWFyY2ggZnVuY3Rpb25hbGl0eSB3aGVuIHNlYXJjaCBieSBodW1hbi5cbiAgICB0aGlzLnNlYXJjaEZvcm1Db250cm9sLnZhbHVlQ2hhbmdlc1xuICAgICAgLnBpcGUoXG4gICAgICAgIGRlYm91bmNlVGltZSgzMDApLFxuICAgICAgICB0YXAoKCkgPT4gKHRoaXMuZmlsdGVyZWRFbnRpdGllcyA9IFtdKSksXG4gICAgICAgIGZpbHRlcigodmFsdWUpID0+IHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpLFxuICAgICAgICBmaWx0ZXIoKHZhbHVlKSA9PiB2YWx1ZS50b1N0cmluZygpLmxlbmd0aCA+PSAzKSxcbiAgICAgICAgdGFwKCgpID0+ICh0aGlzLmlzTG9hZGluZyA9IHRydWUpKSxcbiAgICAgICAgc3dpdGNoTWFwKCh2YWx1ZTogc3RyaW5nKSA9PiB0aGlzLl9kYXRhU291cmNlPy5vbkZpbHRlcih2YWx1ZSkgPz8gb2YobnVsbCkpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChyZXN1bHRTZXQpID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0TGlzdCA9IG5ldyBBcnJheTxhbnk+KCk7XG5cbiAgICAgICAgaWYgKHJlc3VsdFNldD8ubGlzdCkge1xuICAgICAgICAgIHJlc3VsdFNldC5saXN0LmZvckVhY2goKHZhbHVlMSkgPT4ge1xuICAgICAgICAgICAgaWYgKCF0aGlzLnZhbHVlPy5maW5kKCh2YWx1ZTIpID0+IHRoaXMuX2RhdGFTb3VyY2U/LmdldElkRW50aXR5KHZhbHVlMikgPT09IHRoaXMuX2RhdGFTb3VyY2U/LmdldElkRW50aXR5KHZhbHVlMSkpKSB7XG4gICAgICAgICAgICAgIHJlc3VsdExpc3QucHVzaCh2YWx1ZTEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5maWx0ZXJlZEVudGl0aWVzID0gcmVzdWx0TGlzdDtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMuY29tcGxldGUoKTtcbiAgICB0aGlzLmZtLnN0b3BNb25pdG9yaW5nKHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCk7XG4gIH1cblxuICBuZ0RvQ2hlY2soKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubmdDb250cm9sICE9IG51bGwpIHtcbiAgICAgIHRoaXMuZXJyb3JTdGF0ZSA9ICh0aGlzLm5nQ29udHJvbC5pbnZhbGlkICYmIHRoaXMubmdDb250cm9sLnRvdWNoZWQpID8/IGZhbHNlO1xuICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjbGVhcigpOiB2b2lkIHtcbiAgICB0aGlzLmZpbHRlcmVkRW50aXRpZXMgPSBbXTtcbiAgICB0aGlzLnNlYXJjaEZvcm1Db250cm9sLnJlc2V0KG51bGwpO1xuICB9XG5cbiAgcHVibGljIGZvY3VzKCk6IHZvaWQge1xuICAgIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpPy5mb2N1cygpO1xuICB9XG5cbiAgcHVibGljIG9uRW50aXR5U2VsZWN0ZWQoZXZlbnQ6IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQpOiB2b2lkIHtcbiAgICBsZXQgbGlzdCA9IHRoaXMudmFsdWU7XG4gICAgaWYgKGxpc3QgPT0gbnVsbCkge1xuICAgICAgbGlzdCA9IG5ldyBBcnJheTxhbnk+KCk7XG4gICAgfVxuICAgIGxpc3QucHVzaChldmVudC5vcHRpb24udmFsdWUpO1xuICAgIHRoaXMudmFsdWUgPSBsaXN0O1xuXG4gICAgdGhpcy5maWx0ZXJlZEVudGl0aWVzID0gW107XG4gICAgdGhpcy5zZWFyY2hGb3JtQ29udHJvbC5zZXRWYWx1ZShudWxsKTtcbiAgICB0aGlzLnZhbHVlc0Zvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkVudGl0eUFjdGl2YXRlZChldmVudDogTWF0QXV0b2NvbXBsZXRlQWN0aXZhdGVkRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmFjdGl2YXRlZFZhbHVlID0gZXZlbnQub3B0aW9uPy52YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBvbkVudGl0eUNsb3NlZCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hY3RpdmF0ZWRWYWx1ZSkge1xuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuYWN0aXZhdGVkVmFsdWU7XG4gICAgICB0aGlzLmFjdGl2YXRlZFZhbHVlID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVzZXQoKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IG5ldyBBcnJheTxhbnk+KCk7XG4gIH1cblxuICBwdWJsaWMgb25Gb2N1c091dCgpOiB2b2lkIHtcbiAgICAvLyBpZiAodGhpcy5maWx0ZXJlZEVudGl0aWVzLmxlbmd0aCA9PT0gMSkge1xuICAgIC8vICAgdGhpcy5hY3RpdmF0ZWRWYWx1ZSA9IHRoaXMuZmlsdGVyZWRFbnRpdGllc1swXTtcbiAgICAvLyAgIHRoaXMudmFsdWUgPSB0aGlzLmZpbHRlcmVkRW50aXRpZXNbMF07XG4gICAgLy8gfVxuICB9XG5cbiAgcHVibGljIG9uVG91Y2hlZCgpOiB2b2lkIHtcbiAgICB0aGlzLl9vblRvdWNoZWQoKTtcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5fcHJvcGFnYXRlQ2hhbmdlID0gZm47XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBwdWJsaWMgd3JpdGVWYWx1ZShvYmo6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuY2xlYXIoKTtcbiAgICB0aGlzLnZhbHVlID0gb2JqO1xuICB9XG5cbiAgcHVibGljIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG5cbiAgcHVibGljIG9uQ29udGFpbmVyQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoKGV2ZW50LnRhcmdldCBhcyBFbGVtZW50KS50YWdOYW1lLnRvTG93ZXJDYXNlKCkgIT09ICdpbnB1dCcpIHtcbiAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2V0RGVzY3JpYmVkQnlJZHMoaWRzOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgIHRoaXMuZGVzY3JpYmVkQnkgPSBpZHMuam9pbignICcpO1xuICB9XG5cbiAgdmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIGNvbnN0IHNlbGVjdGlvbjogYW55ID0gY29udHJvbC52YWx1ZTtcbiAgICBpZiAodHlwZW9mIHNlbGVjdGlvbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiB7IGluY29ycmVjdDogdHJ1ZSB9O1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJlbW92ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgY29uc3QgbGlzdCA9IHRoaXMudmFsdWU7XG4gICAgaWYgKGxpc3QgIT0gbnVsbCkge1xuICAgICAgY29uc3QgaW5kZXggPSBsaXN0LmluZGV4T2YodmFsdWUpO1xuICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICBsaXN0LnNwbGljZShpbmRleCwgMSk7XG4gICAgICB9XG4gICAgICB0aGlzLnZhbHVlc0Zvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9wcm9wYWdhdGVDaGFuZ2UgPSAoXzogYW55W10pOiB2b2lkID0+IHt9O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX29uVG91Y2hlZCA9ICgpOiB2b2lkID0+IHt9O1xuXG4gIHByaXZhdGUgc2V0VmFsdWUodmFsdWVzOiBhbnlbXSB8IG51bGwpOiB2b2lkIHtcbiAgICBpZiAodmFsdWVzICE9PSB0aGlzLl9zZWxlY3RlZEVudGl0aWVzKSB7XG4gICAgICB0aGlzLl9zZWxlY3RlZEVudGl0aWVzID0gdmFsdWVzO1xuICAgICAgdGhpcy52YWx1ZXNDaGFuZ2UuZW1pdCh2YWx1ZXMgPz8gW10pO1xuICAgICAgdGhpcy5fcHJvcGFnYXRlQ2hhbmdlKHRoaXMuX3NlbGVjdGVkRW50aXRpZXMgPz8gW10pO1xuICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICAgIH1cbiAgfVxufVxuIiwiPG1hdC1jaGlwLWdyaWQgI2xpc3Q+XG4gIDxtYXQtY2hpcC1yb3cgKm5nRm9yPVwibGV0IGVudGl0eSBvZiB2YWx1ZXNGb3JtQ29udHJvbC52YWx1ZVwiXG4gICAgICAgICAgICAgICAgKHJlbW92ZWQpPVwicmVtb3ZlKGVudGl0eSlcIlxuICAgICAgICAgICAgICAgIFtlZGl0YWJsZV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgW2FyaWEtZGVzY3JpcHRpb25dPVwiJ3ByZXNzIGVudGVyIHRvIGVkaXQgJyArIGRhdGFTb3VyY2U/Lm9uRGlzcGxheUVudGl0eShlbnRpdHkpID8/IG51bGxcIj5cbiAgICB7e2RhdGFTb3VyY2U/Lm9uRGlzcGxheUVudGl0eShlbnRpdHkpID8/IG51bGx9fVxuICAgIDxidXR0b24gbWF0Q2hpcFJlbW92ZSBbYXR0ci5hcmlhLWxhYmVsXT1cIidyZW1vdmUgJyArIGRhdGFTb3VyY2U/Lm9uRGlzcGxheUVudGl0eShlbnRpdHkpID8/IG51bGxcIj5cbiAgICAgIDxtYXQtaWNvbj5jYW5jZWw8L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICA8L21hdC1jaGlwLXJvdz5cbiAgPGlucHV0ICNpbnB1dCAoYmx1cik9XCJvblRvdWNoZWQoKVwiIChmb2N1c291dCk9XCJvbkZvY3VzT3V0KClcIiBbZm9ybUNvbnRyb2xdPVwic2VhcmNoRm9ybUNvbnRyb2xcIlxuICAgICAgICAgW21hdEF1dG9jb21wbGV0ZV09XCJhdXRvXCJcbiAgICAgICAgIFttYXRDaGlwSW5wdXRGb3JdPVwibGlzdFwiXG4gICAgICAgICBtYXRDaGlwSW5wdXRBZGRPbkJsdXI9XCJ0cnVlXCJcbiAgICAgICAgIFttYXRDaGlwSW5wdXRTZXBhcmF0b3JLZXlDb2Rlc109XCJzZXBhcmF0b3JLZXlzQ29kZXNcIlxuICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCIgbWF0SW5wdXQ+XG4gIDxtYXQtYXV0b2NvbXBsZXRlICNhdXRvPVwibWF0QXV0b2NvbXBsZXRlXCIgKGNsb3NlZCk9XCJvbkVudGl0eUNsb3NlZCgpXCJcbiAgICAgICAgICAgICAgICAgICAgKG9wdGlvbkFjdGl2YXRlZCk9XCJvbkVudGl0eUFjdGl2YXRlZCgkZXZlbnQpXCIgKG9wdGlvblNlbGVjdGVkKT1cIm9uRW50aXR5U2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNwbGF5V2l0aF09XCJkYXRhU291cmNlPy5vbkRpc3BsYXlFbnRpdHkgPz8gbnVsbFwiPlxuICAgIDxtYXQtb3B0aW9uICpuZ0lmPVwiaXNMb2FkaW5nXCIgY2xhc3M9XCJpcy1sb2FkaW5nXCI+XG4gICAgICA8bWF0LXNwaW5uZXIgZGlhbWV0ZXI9XCI1MFwiPjwvbWF0LXNwaW5uZXI+XG4gICAgPC9tYXQtb3B0aW9uPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNMb2FkaW5nXCI+XG4gICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgZW50aXR5IG9mIGZpbHRlcmVkRW50aXRpZXNcIiBbdmFsdWVdPVwiZW50aXR5XCI+XG4gICAgICAgIHt7ZGF0YVNvdXJjZT8ub25EaXNwbGF5RW50aXR5KGVudGl0eSkgPz8gbnVsbH19XG4gICAgICA8L21hdC1vcHRpb24+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbWF0LWF1dG9jb21wbGV0ZT5cbjwvbWF0LWNoaXAtZ3JpZD5cbiJdfQ==
@@ -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.1.2", 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.1.2", 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.1.2", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW0tbm90aWZpY2F0aW9uLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZXNobWFrZXJzL3NoYXJlZC11aS9zcmMvbGliL21tLW5vdGlmaWNhdGlvbi1iYXIvbW0tbm90aWZpY2F0aW9uLWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZXNobWFrZXJzL3NoYXJlZC11aS9zcmMvbGliL21tLW5vdGlmaWNhdGlvbi1iYXIvbW0tbm90aWZpY2F0aW9uLWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBR2xELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDOzs7Ozs7O0FBTy9GLE1BQU0sT0FBTywwQkFBMEI7SUFJbEI7SUFDQTtJQUpaLFlBQVksQ0FBc0I7SUFFekMsWUFDbUIsY0FBOEIsRUFDOUIsTUFBaUI7UUFEakIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLFdBQU0sR0FBTixNQUFNLENBQVc7UUFFbEMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7SUFDM0IsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsY0FBYyxDQUFDLHFCQUFxQixFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDOUQsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO0lBQzNCLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMseUJBQXlCLEVBQUU7WUFDMUMsSUFBSSxFQUFFO2dCQUNKLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTthQUNoQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7dUdBMUJVLDBCQUEwQjsyRkFBMUIsMEJBQTBCLDJEQ1Z2Qyw2YkFRQTs7MkZERWEsMEJBQTBCO2tCQUx0QyxTQUFTOytCQUNFLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFcnJvck1lc3NhZ2UsIE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnQG1lc2htYWtlcnMvc2hhcmVkLXNlcnZpY2VzJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBNbU1lc3NhZ2VEZXRhaWxzQ29tcG9uZW50IH0gZnJvbSAnLi4vbW0tbWVzc2FnZS1kZXRhaWxzL21tLW1lc3NhZ2UtZGV0YWlscy5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtbS1ub3RpZmljYXRpb24tYmFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21tLW5vdGlmaWNhdGlvbi1iYXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tbS1ub3RpZmljYXRpb24tYmFyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTW1Ob3RpZmljYXRpb25CYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwdWJsaWMgZXJyb3JNZXNzYWdlOiBFcnJvck1lc3NhZ2UgfCBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nOiBNYXREaWFsb2dcbiAgKSB7XG4gICAgdGhpcy5lcnJvck1lc3NhZ2UgPSBudWxsO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5tZXNzYWdlU2VydmljZS5nZXRMYXRlc3RFcnJvck1lc3NhZ2UoKS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHZhbHVlO1xuICAgIH0pO1xuICB9XG5cbiAgb25IaWRlKCk6IHZvaWQge1xuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gbnVsbDtcbiAgfVxuXG4gIG9uU2hvd0RldGFpbHMoKTogdm9pZCB7XG4gICAgdGhpcy5kaWFsb2cub3BlbihNbU1lc3NhZ2VEZXRhaWxzQ29tcG9uZW50LCB7XG4gICAgICBkYXRhOiB7XG4gICAgICAgIGVycm9yTWVzc2FnZTogdGhpcy5lcnJvck1lc3NhZ2VcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIiwiPG1hdC10b29sYmFyIFtoaWRkZW5dPVwiIWVycm9yTWVzc2FnZVwiIGNsYXNzPVwibW0tbm90aWZpY2F0aW9uLWJhci1iYWNrZ3JvdW5kXCI+XG4gIDxhIChjbGljayk9XCJvblNob3dEZXRhaWxzKClcIj48c3BhbiBjbGFzcz1cIm1hdC1zbWFsbFwiPjx1Pnt7IGVycm9yTWVzc2FnZT8udGl0bGUgfX08L3U+PC9zcGFuPjwvYT5cblxuICA8IS0tIFRoaXMgZmlsbHMgdGhlIHJlbWFpbmluZyBzcGFjZSBvZiB0aGUgY3VycmVudCByb3cgLS0+XG4gIDxzcGFuIGNsYXNzPVwibm90aWZpY2F0aW9uLWZpbGwtcmVtYWluaW5nLXNwYWNlXCI+PC9zcGFuPlxuXG4gIDxidXR0b24gKGNsaWNrKT1cIm9uSGlkZSgpXCIgY2xhc3M9XCJtbS1ub3RpZmljYXRpb24tYmFyLWJ1dHRvblwiIG1hdC1mYWI+PG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj48L2J1dHRvbj5cbjwvbWF0LXRvb2xiYXI+XG4iXX0=
@@ -0,0 +1,34 @@
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/button";
6
+ import * as i3 from "@angular/material/dialog";
7
+ export class MmProgressWindowComponent {
8
+ data;
9
+ statusText;
10
+ progressValue;
11
+ constructor(data) {
12
+ this.data = data;
13
+ this.statusText = null;
14
+ this.progressValue = 0;
15
+ data.progress.subscribe((value) => {
16
+ this.statusText = value.statusText;
17
+ this.progressValue = value.progressValue;
18
+ });
19
+ }
20
+ ngOnInit() { }
21
+ onCancelClick() {
22
+ this.data.cancelOperation();
23
+ }
24
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: MmProgressWindowComponent, deps: [{ token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
25
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.2", type: MmProgressWindowComponent, selector: "mm-progress-window", ngImport: i0, template: "<h1 mat-dialog-title>{{data.title}}</h1>\n<div mat-dialog-content>\n <div fxLayout=\"column\">\n <mat-progress-bar *ngIf=\"data.isDeterminate\" [value]=\"progressValue\" mode=\"determinate\"></mat-progress-bar>\n <mat-progress-bar *ngIf=\"!data.isDeterminate\" mode=\"indeterminate\"></mat-progress-bar>\n <p>{{statusText}}</p>\n </div>\n</div>\n<div style=\"justify-content: flex-end;\" mat-dialog-actions>\n <button (click)=\"onCancelClick()\" *ngIf=\"data.isCancelOperationAvailable\" mat-button>Cancel</button>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i3.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i3.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i3.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }] });
26
+ }
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: MmProgressWindowComponent, decorators: [{
28
+ type: Component,
29
+ args: [{ selector: 'mm-progress-window', template: "<h1 mat-dialog-title>{{data.title}}</h1>\n<div mat-dialog-content>\n <div fxLayout=\"column\">\n <mat-progress-bar *ngIf=\"data.isDeterminate\" [value]=\"progressValue\" mode=\"determinate\"></mat-progress-bar>\n <mat-progress-bar *ngIf=\"!data.isDeterminate\" mode=\"indeterminate\"></mat-progress-bar>\n <p>{{statusText}}</p>\n </div>\n</div>\n<div style=\"justify-content: flex-end;\" mat-dialog-actions>\n <button (click)=\"onCancelClick()\" *ngIf=\"data.isCancelOperationAvailable\" mat-button>Cancel</button>\n</div>\n" }]
30
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
31
+ type: Inject,
32
+ args: [MAT_DIALOG_DATA]
33
+ }] }] });
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW0tcHJvZ3Jlc3Mtd2luZG93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lc2htYWtlcnMvc2hhcmVkLXVpL3NyYy9saWIvbW0tcHJvZ3Jlc3Mtd2luZG93L21tLXByb2dyZXNzLXdpbmRvdy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZXNobWFrZXJzL3NoYXJlZC11aS9zcmMvbGliL21tLXByb2dyZXNzLXdpbmRvdy9tbS1wcm9ncmVzcy13aW5kb3cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7OztBQW1CM0QsTUFBTSxPQUFPLHlCQUF5QjtJQUlRO0lBSHJDLFVBQVUsQ0FBZ0I7SUFDMUIsYUFBYSxDQUFTO0lBRTdCLFlBQTRDLElBQXdCO1FBQXhCLFNBQUksR0FBSixJQUFJLENBQW9CO1FBQ2xFLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDO1FBRXZCLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDaEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDO1lBQ25DLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQztRQUMzQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRLEtBQVUsQ0FBQztJQUVuQixhQUFhO1FBQ1gsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUM5QixDQUFDO3VHQWxCVSx5QkFBeUIsa0JBSWhCLGVBQWU7MkZBSnhCLHlCQUF5QiwwRENwQnRDLDBoQkFXQTs7MkZEU2EseUJBQXlCO2tCQUxyQyxTQUFTOytCQUNFLG9CQUFvQjs7MEJBUWpCLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBQcm9ncmVzc1ZhbHVlIH0gZnJvbSAnLi4vbW9kZWxzL3Byb2dyZXNzVmFsdWUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFByb2dyZXNzV2luZG93RGF0YSB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGlzRGV0ZXJtaW5hdGU6IGJvb2xlYW47XG4gIHByb2dyZXNzOiBPYnNlcnZhYmxlPFByb2dyZXNzVmFsdWU+O1xuICBpc0NhbmNlbE9wZXJhdGlvbkF2YWlsYWJsZTogYm9vbGVhbjtcbiAgY2FuY2VsT3BlcmF0aW9uOiAoKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgdHlwZSBQcm9ncmVzc1dpbmRvd1Jlc3VsdCA9IG9iamVjdFxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtbS1wcm9ncmVzcy13aW5kb3cnLFxuICB0ZW1wbGF0ZVVybDogJy4vbW0tcHJvZ3Jlc3Mtd2luZG93LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbW0tcHJvZ3Jlc3Mtd2luZG93LmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBNbVByb2dyZXNzV2luZG93Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHVibGljIHN0YXR1c1RleHQ6IHN0cmluZyB8IG51bGw7XG4gIHB1YmxpYyBwcm9ncmVzc1ZhbHVlOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiBQcm9ncmVzc1dpbmRvd0RhdGEpIHtcbiAgICB0aGlzLnN0YXR1c1RleHQgPSBudWxsO1xuICAgIHRoaXMucHJvZ3Jlc3NWYWx1ZSA9IDA7XG5cbiAgICBkYXRhLnByb2dyZXNzLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgIHRoaXMuc3RhdHVzVGV4dCA9IHZhbHVlLnN0YXR1c1RleHQ7XG4gICAgICB0aGlzLnByb2dyZXNzVmFsdWUgPSB2YWx1ZS5wcm9ncmVzc1ZhbHVlO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7fVxuXG4gIG9uQ2FuY2VsQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5kYXRhLmNhbmNlbE9wZXJhdGlvbigpO1xuICB9XG59XG4iLCI8aDEgbWF0LWRpYWxvZy10aXRsZT57e2RhdGEudGl0bGV9fTwvaDE+XG48ZGl2IG1hdC1kaWFsb2ctY29udGVudD5cbiAgPGRpdiBmeExheW91dD1cImNvbHVtblwiPlxuICAgIDxtYXQtcHJvZ3Jlc3MtYmFyICpuZ0lmPVwiZGF0YS5pc0RldGVybWluYXRlXCIgW3ZhbHVlXT1cInByb2dyZXNzVmFsdWVcIiBtb2RlPVwiZGV0ZXJtaW5hdGVcIj48L21hdC1wcm9ncmVzcy1iYXI+XG4gICAgPG1hdC1wcm9ncmVzcy1iYXIgKm5nSWY9XCIhZGF0YS5pc0RldGVybWluYXRlXCIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIj48L21hdC1wcm9ncmVzcy1iYXI+XG4gICAgPHA+e3tzdGF0dXNUZXh0fX08L3A+XG4gIDwvZGl2PlxuPC9kaXY+XG48ZGl2IHN0eWxlPVwianVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcIiBtYXQtZGlhbG9nLWFjdGlvbnM+XG4gIDxidXR0b24gKGNsaWNrKT1cIm9uQ2FuY2VsQ2xpY2soKVwiICpuZ0lmPVwiZGF0YS5pc0NhbmNlbE9wZXJhdGlvbkF2YWlsYWJsZVwiIG1hdC1idXR0b24+Q2FuY2VsPC9idXR0b24+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,83 @@
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 { MmBreadcrumbComponent } from "./mm-breadcrumb/mm-breadcrumb.component";
19
+ import { MmConfirmationWindowComponent } from "./mm-confirmation-window/mm-confirmation-window.component";
20
+ import { MmProgressWindowComponent } from "./mm-progress-window/mm-progress-window.component";
21
+ import * as i0 from "@angular/core";
22
+ export class MmSharedUiModule {
23
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: MmSharedUiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
24
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.2", ngImport: i0, type: MmSharedUiModule, declarations: [MmBreadcrumbComponent,
25
+ MmConfirmationWindowComponent,
26
+ MmProgressWindowComponent,
27
+ MmNotificationBarComponent,
28
+ MmMessageDetailsComponent,
29
+ MmAutocompleteInputComponent,
30
+ MmEntitySelectInputComponent,
31
+ MmMultipleEntitySelectInputComponent], imports: [CommonModule,
32
+ MatToolbarModule,
33
+ MatButtonModule,
34
+ MatSnackBarModule,
35
+ MatDialogModule,
36
+ MatAutocompleteModule,
37
+ MatInputModule,
38
+ MatProgressSpinnerModule,
39
+ MatChipsModule,
40
+ MatIconModule,
41
+ ReactiveFormsModule], exports: [MmBreadcrumbComponent, MmConfirmationWindowComponent, MmNotificationBarComponent, MmAutocompleteInputComponent, MmEntitySelectInputComponent, MmMultipleEntitySelectInputComponent] });
42
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: MmSharedUiModule, imports: [CommonModule,
43
+ MatToolbarModule,
44
+ MatButtonModule,
45
+ MatSnackBarModule,
46
+ MatDialogModule,
47
+ MatAutocompleteModule,
48
+ MatInputModule,
49
+ MatProgressSpinnerModule,
50
+ MatChipsModule,
51
+ MatIconModule,
52
+ ReactiveFormsModule] });
53
+ }
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: MmSharedUiModule, decorators: [{
55
+ type: NgModule,
56
+ args: [{
57
+ declarations: [
58
+ MmBreadcrumbComponent,
59
+ MmConfirmationWindowComponent,
60
+ MmProgressWindowComponent,
61
+ MmNotificationBarComponent,
62
+ MmMessageDetailsComponent,
63
+ MmAutocompleteInputComponent,
64
+ MmEntitySelectInputComponent,
65
+ MmMultipleEntitySelectInputComponent,
66
+ ],
67
+ exports: [MmBreadcrumbComponent, MmConfirmationWindowComponent, MmNotificationBarComponent, MmAutocompleteInputComponent, MmEntitySelectInputComponent, MmMultipleEntitySelectInputComponent],
68
+ imports: [
69
+ CommonModule,
70
+ MatToolbarModule,
71
+ MatButtonModule,
72
+ MatSnackBarModule,
73
+ MatDialogModule,
74
+ MatAutocompleteModule,
75
+ MatInputModule,
76
+ MatProgressSpinnerModule,
77
+ MatChipsModule,
78
+ MatIconModule,
79
+ ReactiveFormsModule
80
+ ]
81
+ }]
82
+ }] });
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW0tc2hhcmVkLXVpLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lc2htYWtlcnMvc2hhcmVkLXVpL3NyYy9saWIvbW0tc2hhcmVkLXVpLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUNqRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUN6RyxPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSw2RUFBNkUsQ0FBQztBQUNuSSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQzlFLE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBQ3hHLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLG1EQUFtRCxDQUFDOztBQTRCNUYsTUFBTSxPQUFPLGdCQUFnQjt1R0FBaEIsZ0JBQWdCO3dHQUFoQixnQkFBZ0IsaUJBeEJ6QixxQkFBcUI7WUFDckIsNkJBQTZCO1lBQzdCLHlCQUF5QjtZQUN6QiwwQkFBMEI7WUFDMUIseUJBQXlCO1lBQ3pCLDRCQUE0QjtZQUM1Qiw0QkFBNEI7WUFDNUIsb0NBQW9DLGFBSXBDLFlBQVk7WUFDWixnQkFBZ0I7WUFDaEIsZUFBZTtZQUNmLGlCQUFpQjtZQUNqQixlQUFlO1lBQ2YscUJBQXFCO1lBQ3JCLGNBQWM7WUFDZCx3QkFBd0I7WUFDeEIsY0FBYztZQUNkLGFBQWE7WUFDYixtQkFBbUIsYUFaWCxxQkFBcUIsRUFBRSw2QkFBNkIsRUFBRSwwQkFBMEIsRUFBRSw0QkFBNEIsRUFBRSw0QkFBNEIsRUFBRSxvQ0FBb0M7d0dBZWpMLGdCQUFnQixZQWJ6QixZQUFZO1lBQ1osZ0JBQWdCO1lBQ2hCLGVBQWU7WUFDZixpQkFBaUI7WUFDakIsZUFBZTtZQUNmLHFCQUFxQjtZQUNyQixjQUFjO1lBQ2Qsd0JBQXdCO1lBQ3hCLGNBQWM7WUFDZCxhQUFhO1lBQ2IsbUJBQW1COzsyRkFHVixnQkFBZ0I7a0JBMUI1QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixxQkFBcUI7d0JBQ3JCLDZCQUE2Qjt3QkFDN0IseUJBQXlCO3dCQUN6QiwwQkFBMEI7d0JBQzFCLHlCQUF5Qjt3QkFDekIsNEJBQTRCO3dCQUM1Qiw0QkFBNEI7d0JBQzVCLG9DQUFvQztxQkFDckM7b0JBQ0QsT0FBTyxFQUFFLENBQUMscUJBQXFCLEVBQUUsNkJBQTZCLEVBQUUsMEJBQTBCLEVBQUUsNEJBQTRCLEVBQUUsNEJBQTRCLEVBQUUsb0NBQW9DLENBQUM7b0JBQzdMLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixpQkFBaUI7d0JBQ2pCLGVBQWU7d0JBQ2YscUJBQXFCO3dCQUNyQixjQUFjO3dCQUNkLHdCQUF3Qjt3QkFDeEIsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLG1CQUFtQjtxQkFDcEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1tTm90aWZpY2F0aW9uQmFyQ29tcG9uZW50IH0gZnJvbSAnLi9tbS1ub3RpZmljYXRpb24tYmFyL21tLW5vdGlmaWNhdGlvbi1iYXIuY29tcG9uZW50JztcbmltcG9ydCB7IE1hdFRvb2xiYXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sYmFyJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRTbmFja0Jhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XG5pbXBvcnQgeyBNYXREaWFsb2dNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgTW1NZXNzYWdlRGV0YWlsc0NvbXBvbmVudCB9IGZyb20gJy4vbW0tbWVzc2FnZS1kZXRhaWxzL21tLW1lc3NhZ2UtZGV0YWlscy5jb21wb25lbnQnO1xuaW1wb3J0IHsgTW1BdXRvY29tcGxldGVJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vbW0tYXV0b2NvbXBsZXRlLWlucHV0L21tLWF1dG9jb21wbGV0ZS1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTW1FbnRpdHlTZWxlY3RJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vbW0tZW50aXR5LXNlbGVjdC1pbnB1dC9tbS1lbnRpdHktc2VsZWN0LWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNbU11bHRpcGxlRW50aXR5U2VsZWN0SW5wdXRDb21wb25lbnQgfSBmcm9tICcuL21tLW11bHRpcGxlLWVudGl0eS1zZWxlY3QtaW5wdXQvbW0tbXVsdGlwbGUtZW50aXR5LXNlbGVjdC1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0Q2hpcHNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGlwcyc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQge01tQnJlYWRjcnVtYkNvbXBvbmVudH0gZnJvbSBcIi4vbW0tYnJlYWRjcnVtYi9tbS1icmVhZGNydW1iLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtNbUNvbmZpcm1hdGlvbldpbmRvd0NvbXBvbmVudH0gZnJvbSBcIi4vbW0tY29uZmlybWF0aW9uLXdpbmRvdy9tbS1jb25maXJtYXRpb24td2luZG93LmNvbXBvbmVudFwiO1xuaW1wb3J0IHtNbVByb2dyZXNzV2luZG93Q29tcG9uZW50fSBmcm9tIFwiLi9tbS1wcm9ncmVzcy13aW5kb3cvbW0tcHJvZ3Jlc3Mtd2luZG93LmNvbXBvbmVudFwiO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBNbUJyZWFkY3J1bWJDb21wb25lbnQsXG4gICAgTW1Db25maXJtYXRpb25XaW5kb3dDb21wb25lbnQsXG4gICAgTW1Qcm9ncmVzc1dpbmRvd0NvbXBvbmVudCxcbiAgICBNbU5vdGlmaWNhdGlvbkJhckNvbXBvbmVudCxcbiAgICBNbU1lc3NhZ2VEZXRhaWxzQ29tcG9uZW50LFxuICAgIE1tQXV0b2NvbXBsZXRlSW5wdXRDb21wb25lbnQsXG4gICAgTW1FbnRpdHlTZWxlY3RJbnB1dENvbXBvbmVudCxcbiAgICBNbU11bHRpcGxlRW50aXR5U2VsZWN0SW5wdXRDb21wb25lbnQsXG4gIF0sXG4gIGV4cG9ydHM6IFtNbUJyZWFkY3J1bWJDb21wb25lbnQsIE1tQ29uZmlybWF0aW9uV2luZG93Q29tcG9uZW50LCBNbU5vdGlmaWNhdGlvbkJhckNvbXBvbmVudCwgTW1BdXRvY29tcGxldGVJbnB1dENvbXBvbmVudCwgTW1FbnRpdHlTZWxlY3RJbnB1dENvbXBvbmVudCwgTW1NdWx0aXBsZUVudGl0eVNlbGVjdElucHV0Q29tcG9uZW50XSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBNYXRUb29sYmFyTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRTbmFja0Jhck1vZHVsZSxcbiAgICBNYXREaWFsb2dNb2R1bGUsXG4gICAgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSxcbiAgICBNYXRDaGlwc01vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBNbVNoYXJlZFVpTW9kdWxlIHt9XG4iXX0=
@@ -50,4 +50,4 @@ export class AbstractDetailsComponent {
50
50
  this._loading = false;
51
51
  }
52
52
  }
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3REZXRhaWxzQ29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVzaG1ha2Vycy9zaGFyZWQtdWkvc3JjL2xpYi9zaGFyZWQvYWJzdHJhY3REZXRhaWxzQ29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUUxRCxNQUFNLE9BQWdCLHdCQUF3QjtJQUNwQyxRQUFRLENBQVU7SUFDVCxVQUFVLENBQVk7SUFDL0IsT0FBTyxDQUFpQjtJQUVoQyxZQUFzQixTQUFvQjtRQUN4QyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNyQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBVyxPQUFPLENBQUMsS0FBYztRQUMvQixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBVyxNQUFNO1FBQ2YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFXLE1BQU0sQ0FBQyxLQUFxQjtRQUNyQyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUM7SUFDL0IsQ0FBQztJQUVNLFFBQVEsR0FBRyxDQUFDLFdBQW1CLEVBQUUsU0FBaUIsRUFBVyxFQUFFO1FBQ3BFLE9BQU8sSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ25FLENBQUMsQ0FBQztJQUVLLFlBQVksR0FBRyxDQUFDLFNBQWlCLEVBQVcsRUFBRTtRQUNuRCxPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzdDLENBQUMsQ0FBQztJQUVLLGNBQWMsQ0FBQyxXQUFtQjtRQUN2QyxJQUFJLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRSxRQUFRLENBQUMsV0FBVyxDQUFDLHFCQUFxQixDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNySCxDQUFDO0lBRU0sZ0JBQWdCLENBQUMsWUFBaUI7UUFDdkMsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3RCLFFBQVEsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0IsWUFBWSxDQUFDLGlCQUFpQixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRVMsa0JBQWtCO1FBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFFUyxtQkFBbUI7UUFDM0IsSUFBSSxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUN4QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJc29EYXRlVGltZSB9IGZyb20gJ0BtZXNobWFrZXJzL3NoYXJlZC1zZXJ2aWNlcyc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdERldGFpbHNDb21wb25lbnQ8VEVudGl0eT4ge1xuICBwcml2YXRlIF9sb2FkaW5nOiBib29sZWFuO1xuICBwcml2YXRlIHJlYWRvbmx5IF9vd25lckZvcm06IEZvcm1Hcm91cDtcbiAgcHJpdmF0ZSBfZW50aXR5OiBURW50aXR5IHwgbnVsbDtcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoZm9ybUdyb3VwOiBGb3JtR3JvdXApIHtcbiAgICB0aGlzLl9sb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLl9lbnRpdHkgPSBudWxsO1xuICAgIHRoaXMuX293bmVyRm9ybSA9IGZvcm1Hcm91cDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbG9hZGluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fbG9hZGluZztcbiAgfVxuXG4gIHB1YmxpYyBzZXQgbG9hZGluZyh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2xvYWRpbmcgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZW50aXR5KCk6IFRFbnRpdHkgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fZW50aXR5O1xuICB9XG5cbiAgcHVibGljIHNldCBlbnRpdHkodmFsdWU6IFRFbnRpdHkgfCBudWxsKSB7XG4gICAgdGhpcy5fZW50aXR5ID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG93bmVyRm9ybSgpOiBGb3JtR3JvdXAge1xuICAgIHJldHVybiB0aGlzLl9vd25lckZvcm07XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzTG9hZGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9lbnRpdHkgIT09IG51bGw7XG4gIH1cblxuICBwdWJsaWMgaGFzRXJyb3IgPSAoY29udHJvbE5hbWU6IHN0cmluZywgZXJyb3JOYW1lOiBzdHJpbmcpOiBib29sZWFuID0+IHtcbiAgICByZXR1cm4gdGhpcy5vd25lckZvcm0/LmNvbnRyb2xzW2NvbnRyb2xOYW1lXS5oYXNFcnJvcihlcnJvck5hbWUpO1xuICB9O1xuXG4gIHB1YmxpYyBoYXNGb3JtRXJyb3IgPSAoZXJyb3JOYW1lOiBzdHJpbmcpOiBib29sZWFuID0+IHtcbiAgICByZXR1cm4gdGhpcy5vd25lckZvcm0/Lmhhc0Vycm9yKGVycm9yTmFtZSk7XG4gIH07XG5cbiAgcHVibGljIHVwZGF0ZURhdGVUaW1lKGNvbnRyb2xOYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLm93bmVyRm9ybT8uZ2V0KGNvbnRyb2xOYW1lKT8uc2V0VmFsdWUoSXNvRGF0ZVRpbWUudXRjVG9Mb2NhbERhdGVUaW1lSXNvKElzb0RhdGVUaW1lLmN1cnJlbnRVdGNEYXRlVGltZUlzbygpKSk7XG4gIH1cblxuICBwdWJsaWMgY29weUlucHV0TWVzc2FnZShpbnB1dEVsZW1lbnQ6IGFueSk6IHZvaWQge1xuICAgIGlucHV0RWxlbWVudC5zZWxlY3QoKTtcbiAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgnY29weScpO1xuICAgIGlucHV0RWxlbWVudC5zZXRTZWxlY3Rpb25SYW5nZSgwLCAwKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvblByb2dyZXNzU3RhcnRpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5fbG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5vd25lckZvcm0/LmRpc2FibGUoKTtcbiAgICB0aGlzLm93bmVyRm9ybT8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uUHJvZ3Jlc3NDb21wbGV0ZWQoKTogdm9pZCB7XG4gICAgdGhpcy5vd25lckZvcm0/LmVuYWJsZSgpO1xuICAgIHRoaXMuX2xvYWRpbmcgPSBmYWxzZTtcbiAgfVxufVxuIl19
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3REZXRhaWxzQ29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVzaG1ha2Vycy9zaGFyZWQtdWkvc3JjL2xpYi9tb2RlbHMvYWJzdHJhY3REZXRhaWxzQ29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUUxRCxNQUFNLE9BQWdCLHdCQUF3QjtJQUNwQyxRQUFRLENBQVU7SUFDVCxVQUFVLENBQVk7SUFDL0IsT0FBTyxDQUFpQjtJQUVoQyxZQUFzQixTQUFvQjtRQUN4QyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNyQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBVyxPQUFPLENBQUMsS0FBYztRQUMvQixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBVyxNQUFNO1FBQ2YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFXLE1BQU0sQ0FBQyxLQUFxQjtRQUNyQyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUM7SUFDL0IsQ0FBQztJQUVNLFFBQVEsR0FBRyxDQUFDLFdBQW1CLEVBQUUsU0FBaUIsRUFBVyxFQUFFO1FBQ3BFLE9BQU8sSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ25FLENBQUMsQ0FBQztJQUVLLFlBQVksR0FBRyxDQUFDLFNBQWlCLEVBQVcsRUFBRTtRQUNuRCxPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzdDLENBQUMsQ0FBQztJQUVLLGNBQWMsQ0FBQyxXQUFtQjtRQUN2QyxJQUFJLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRSxRQUFRLENBQUMsV0FBVyxDQUFDLHFCQUFxQixDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNySCxDQUFDO0lBRU0sZ0JBQWdCLENBQUMsWUFBaUI7UUFDdkMsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3RCLFFBQVEsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0IsWUFBWSxDQUFDLGlCQUFpQixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRVMsa0JBQWtCO1FBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFFUyxtQkFBbUI7UUFDM0IsSUFBSSxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUN4QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJc29EYXRlVGltZSB9IGZyb20gJ0BtZXNobWFrZXJzL3NoYXJlZC1zZXJ2aWNlcyc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdERldGFpbHNDb21wb25lbnQ8VEVudGl0eT4ge1xuICBwcml2YXRlIF9sb2FkaW5nOiBib29sZWFuO1xuICBwcml2YXRlIHJlYWRvbmx5IF9vd25lckZvcm06IEZvcm1Hcm91cDtcbiAgcHJpdmF0ZSBfZW50aXR5OiBURW50aXR5IHwgbnVsbDtcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoZm9ybUdyb3VwOiBGb3JtR3JvdXApIHtcbiAgICB0aGlzLl9sb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLl9lbnRpdHkgPSBudWxsO1xuICAgIHRoaXMuX293bmVyRm9ybSA9IGZvcm1Hcm91cDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbG9hZGluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fbG9hZGluZztcbiAgfVxuXG4gIHB1YmxpYyBzZXQgbG9hZGluZyh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2xvYWRpbmcgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZW50aXR5KCk6IFRFbnRpdHkgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fZW50aXR5O1xuICB9XG5cbiAgcHVibGljIHNldCBlbnRpdHkodmFsdWU6IFRFbnRpdHkgfCBudWxsKSB7XG4gICAgdGhpcy5fZW50aXR5ID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG93bmVyRm9ybSgpOiBGb3JtR3JvdXAge1xuICAgIHJldHVybiB0aGlzLl9vd25lckZvcm07XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzTG9hZGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9lbnRpdHkgIT09IG51bGw7XG4gIH1cblxuICBwdWJsaWMgaGFzRXJyb3IgPSAoY29udHJvbE5hbWU6IHN0cmluZywgZXJyb3JOYW1lOiBzdHJpbmcpOiBib29sZWFuID0+IHtcbiAgICByZXR1cm4gdGhpcy5vd25lckZvcm0/LmNvbnRyb2xzW2NvbnRyb2xOYW1lXS5oYXNFcnJvcihlcnJvck5hbWUpO1xuICB9O1xuXG4gIHB1YmxpYyBoYXNGb3JtRXJyb3IgPSAoZXJyb3JOYW1lOiBzdHJpbmcpOiBib29sZWFuID0+IHtcbiAgICByZXR1cm4gdGhpcy5vd25lckZvcm0/Lmhhc0Vycm9yKGVycm9yTmFtZSk7XG4gIH07XG5cbiAgcHVibGljIHVwZGF0ZURhdGVUaW1lKGNvbnRyb2xOYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLm93bmVyRm9ybT8uZ2V0KGNvbnRyb2xOYW1lKT8uc2V0VmFsdWUoSXNvRGF0ZVRpbWUudXRjVG9Mb2NhbERhdGVUaW1lSXNvKElzb0RhdGVUaW1lLmN1cnJlbnRVdGNEYXRlVGltZUlzbygpKSk7XG4gIH1cblxuICBwdWJsaWMgY29weUlucHV0TWVzc2FnZShpbnB1dEVsZW1lbnQ6IGFueSk6IHZvaWQge1xuICAgIGlucHV0RWxlbWVudC5zZWxlY3QoKTtcbiAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgnY29weScpO1xuICAgIGlucHV0RWxlbWVudC5zZXRTZWxlY3Rpb25SYW5nZSgwLCAwKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvblByb2dyZXNzU3RhcnRpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5fbG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5vd25lckZvcm0/LmRpc2FibGUoKTtcbiAgICB0aGlzLm93bmVyRm9ybT8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uUHJvZ3Jlc3NDb21wbGV0ZWQoKTogdm9pZCB7XG4gICAgdGhpcy5vd25lckZvcm0/LmVuYWJsZSgpO1xuICAgIHRoaXMuX2xvYWRpbmcgPSBmYWxzZTtcbiAgfVxufVxuIl19
@@ -33,4 +33,4 @@ export class CommonValidators {
33
33
  };
34
34
  }
35
35
  }
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uVmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lc2htYWtlcnMvc2hhcmVkLXVpL3NyYy9saWIvc2hhcmVkL2NvbW1vblZhbGlkYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQyxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUkxRSxTQUFTLGlCQUFpQixDQUFDLEtBQVU7SUFDbkMsOERBQThEO0lBQzlELE9BQU8sS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztBQUM3QyxDQUFDO0FBRUQsTUFBTSxPQUFPLGdCQUFnQjtJQUNwQixNQUFNLENBQUMsV0FBVztRQUN2QixPQUFPLFVBQVUsQ0FBQyxPQUFPLENBQUMsZ0RBQWdELENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRU0sTUFBTSxDQUFDLE9BQU87UUFDbkIsT0FBTyxVQUFVLENBQUMsT0FBTyxDQUN2QiwwSEFBMEgsQ0FDM0gsQ0FBQztJQUNKLENBQUM7SUFFTSxNQUFNLENBQUMsZUFBZSxDQUFDLGlCQUF5QjtRQUNyRCxPQUFPLENBQUMsT0FBd0IsRUFBRSxFQUFFO1lBQ2xDLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFDNUIsT0FBTyxLQUFLLEtBQUssT0FBTyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsaUJBQWlCLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDNUYsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVNLE1BQU0sQ0FBQyxtQkFBbUIsQ0FDL0IsaUJBQXlCLEVBQ3pCLDRCQUEyRDtRQUUzRCxPQUFPLENBQUMsT0FBd0IsRUFBRSxFQUFFO1lBQ2xDLElBQUksT0FBTyxDQUFDLE1BQU0sSUFBSSxJQUFJLElBQUksNEJBQTRCLENBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsRUFBRSxLQUF1QixDQUFDLEVBQUUsQ0FBQztnQkFDNUgsT0FBTyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDdEUsQ0FBQztZQUNELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVNLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxZQUFzQjtRQUNwRCxPQUFPLENBQUMsT0FBd0IsRUFBRSxFQUFFO1lBQ2xDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRTtnQkFDbkMsT0FBTyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsV0FBVyxDQUFDLEVBQUUsc0JBQXNCLEVBQUUsQ0FBQztZQUM3RCxDQUFDLENBQUMsQ0FBQztZQUNILE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0b3JGbiwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuZXhwb3J0IHR5cGUgQ29tcGFyZVZhbHVlRm48VFZhbHVlPiA9ICh2YWx1ZTogVFZhbHVlKSA9PiBib29sZWFuO1xuXG5mdW5jdGlvbiBpc0VtcHR5SW5wdXRWYWx1ZSh2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gIC8vIHdlIGRvbid0IGNoZWNrIGZvciBzdHJpbmcgaGVyZSBzbyBpdCBhbHNvIHdvcmtzIHdpdGggYXJyYXlzXG4gIHJldHVybiB2YWx1ZSA9PSBudWxsIHx8IHZhbHVlLmxlbmd0aCA9PT0gMDtcbn1cblxuZXhwb3J0IGNsYXNzIENvbW1vblZhbGlkYXRvcnMge1xuICBwdWJsaWMgc3RhdGljIHBob25lTnVtYmVyKCk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gVmFsaWRhdG9ycy5wYXR0ZXJuKCdeWytdKlsoXXswLDF9WzAtOV17MSw0fVspXXswLDF9Wy1cXFxcc1xcXFwuLzAtOV0qJCcpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBodHRwVXJpKCk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gVmFsaWRhdG9ycy5wYXR0ZXJuKFxuICAgICAgJ14oaHR0cDpcXFxcL1xcXFwvfGh0dHBzOlxcXFwvXFxcXC8pKFthLXpBLVowLTktX10rXFxcXC4pKlthLXpBLVowLTldW2EtekEtWjAtOS1fXSsoXFxcXC5bYS16QS1aXXsyLDExfT8pKig6WzAtOV17Miw1fSl7MCwxfVxcXFwvezAsMX0kJ1xuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGVuc3VyZVNhbWVWYWx1ZShzb3VyY2VDb250cm9sTmFtZTogc3RyaW5nKTogVmFsaWRhdG9yRm4ge1xuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSA9PiB7XG4gICAgICBjb25zdCB2YWx1ZSA9IGNvbnRyb2wudmFsdWU7XG4gICAgICByZXR1cm4gdmFsdWUgPT09IGNvbnRyb2wucGFyZW50Py5nZXQoc291cmNlQ29udHJvbE5hbWUpPy52YWx1ZSA/IG51bGwgOiB7IG5vdFNhbWU6IHRydWUgfTtcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBjb25kaXRpb25hbFJlcXVpcmVkPFRDb21wYXJlVmFsdWU+KFxuICAgIHNvdXJjZUNvbnRyb2xOYW1lOiBzdHJpbmcsXG4gICAgc291cmNlVmFsdWVDb21wYXJlRXhwcmVzc2lvbjogQ29tcGFyZVZhbHVlRm48VENvbXBhcmVWYWx1ZT5cbiAgKTogVmFsaWRhdG9yRm4ge1xuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSA9PiB7XG4gICAgICBpZiAoY29udHJvbC5wYXJlbnQgIT0gbnVsbCAmJiBzb3VyY2VWYWx1ZUNvbXBhcmVFeHByZXNzaW9uKChjb250cm9sLnBhcmVudC5nZXQoc291cmNlQ29udHJvbE5hbWUpPy52YWx1ZSBhcyBUQ29tcGFyZVZhbHVlKSkpIHtcbiAgICAgICAgcmV0dXJuIGlzRW1wdHlJbnB1dFZhbHVlKGNvbnRyb2wudmFsdWUpID8geyByZXF1aXJlZDogdHJ1ZSB9IDogbnVsbDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH07XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGRlcGVuZGVudENvbnRyb2xzKGNvbnRyb2xOYW1lczogc3RyaW5nW10pOiBWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpID0+IHtcbiAgICAgIGNvbnRyb2xOYW1lcy5mb3JFYWNoKChjb250cm9sTmFtZSkgPT4ge1xuICAgICAgICBjb250cm9sLnBhcmVudD8uZ2V0KGNvbnRyb2xOYW1lKT8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9O1xuICB9XG59XG4iXX0=
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uVmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lc2htYWtlcnMvc2hhcmVkLXVpL3NyYy9saWIvbW9kZWxzL2NvbW1vblZhbGlkYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQyxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUkxRSxTQUFTLGlCQUFpQixDQUFDLEtBQVU7SUFDbkMsOERBQThEO0lBQzlELE9BQU8sS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztBQUM3QyxDQUFDO0FBRUQsTUFBTSxPQUFPLGdCQUFnQjtJQUNwQixNQUFNLENBQUMsV0FBVztRQUN2QixPQUFPLFVBQVUsQ0FBQyxPQUFPLENBQUMsZ0RBQWdELENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRU0sTUFBTSxDQUFDLE9BQU87UUFDbkIsT0FBTyxVQUFVLENBQUMsT0FBTyxDQUN2QiwwSEFBMEgsQ0FDM0gsQ0FBQztJQUNKLENBQUM7SUFFTSxNQUFNLENBQUMsZUFBZSxDQUFDLGlCQUF5QjtRQUNyRCxPQUFPLENBQUMsT0FBd0IsRUFBRSxFQUFFO1lBQ2xDLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFDNUIsT0FBTyxLQUFLLEtBQUssT0FBTyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsaUJBQWlCLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDNUYsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVNLE1BQU0sQ0FBQyxtQkFBbUIsQ0FDL0IsaUJBQXlCLEVBQ3pCLDRCQUEyRDtRQUUzRCxPQUFPLENBQUMsT0FBd0IsRUFBRSxFQUFFO1lBQ2xDLElBQUksT0FBTyxDQUFDLE1BQU0sSUFBSSxJQUFJLElBQUksNEJBQTRCLENBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsRUFBRSxLQUF1QixDQUFDLEVBQUUsQ0FBQztnQkFDNUgsT0FBTyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDdEUsQ0FBQztZQUNELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVNLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxZQUFzQjtRQUNwRCxPQUFPLENBQUMsT0FBd0IsRUFBRSxFQUFFO1lBQ2xDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRTtnQkFDbkMsT0FBTyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsV0FBVyxDQUFDLEVBQUUsc0JBQXNCLEVBQUUsQ0FBQztZQUM3RCxDQUFDLENBQUMsQ0FBQztZQUNILE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0b3JGbiwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuZXhwb3J0IHR5cGUgQ29tcGFyZVZhbHVlRm48VFZhbHVlPiA9ICh2YWx1ZTogVFZhbHVlKSA9PiBib29sZWFuO1xuXG5mdW5jdGlvbiBpc0VtcHR5SW5wdXRWYWx1ZSh2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gIC8vIHdlIGRvbid0IGNoZWNrIGZvciBzdHJpbmcgaGVyZSBzbyBpdCBhbHNvIHdvcmtzIHdpdGggYXJyYXlzXG4gIHJldHVybiB2YWx1ZSA9PSBudWxsIHx8IHZhbHVlLmxlbmd0aCA9PT0gMDtcbn1cblxuZXhwb3J0IGNsYXNzIENvbW1vblZhbGlkYXRvcnMge1xuICBwdWJsaWMgc3RhdGljIHBob25lTnVtYmVyKCk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gVmFsaWRhdG9ycy5wYXR0ZXJuKCdeWytdKlsoXXswLDF9WzAtOV17MSw0fVspXXswLDF9Wy1cXFxcc1xcXFwuLzAtOV0qJCcpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBodHRwVXJpKCk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gVmFsaWRhdG9ycy5wYXR0ZXJuKFxuICAgICAgJ14oaHR0cDpcXFxcL1xcXFwvfGh0dHBzOlxcXFwvXFxcXC8pKFthLXpBLVowLTktX10rXFxcXC4pKlthLXpBLVowLTldW2EtekEtWjAtOS1fXSsoXFxcXC5bYS16QS1aXXsyLDExfT8pKig6WzAtOV17Miw1fSl7MCwxfVxcXFwvezAsMX0kJ1xuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGVuc3VyZVNhbWVWYWx1ZShzb3VyY2VDb250cm9sTmFtZTogc3RyaW5nKTogVmFsaWRhdG9yRm4ge1xuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSA9PiB7XG4gICAgICBjb25zdCB2YWx1ZSA9IGNvbnRyb2wudmFsdWU7XG4gICAgICByZXR1cm4gdmFsdWUgPT09IGNvbnRyb2wucGFyZW50Py5nZXQoc291cmNlQ29udHJvbE5hbWUpPy52YWx1ZSA/IG51bGwgOiB7IG5vdFNhbWU6IHRydWUgfTtcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBjb25kaXRpb25hbFJlcXVpcmVkPFRDb21wYXJlVmFsdWU+KFxuICAgIHNvdXJjZUNvbnRyb2xOYW1lOiBzdHJpbmcsXG4gICAgc291cmNlVmFsdWVDb21wYXJlRXhwcmVzc2lvbjogQ29tcGFyZVZhbHVlRm48VENvbXBhcmVWYWx1ZT5cbiAgKTogVmFsaWRhdG9yRm4ge1xuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSA9PiB7XG4gICAgICBpZiAoY29udHJvbC5wYXJlbnQgIT0gbnVsbCAmJiBzb3VyY2VWYWx1ZUNvbXBhcmVFeHByZXNzaW9uKChjb250cm9sLnBhcmVudC5nZXQoc291cmNlQ29udHJvbE5hbWUpPy52YWx1ZSBhcyBUQ29tcGFyZVZhbHVlKSkpIHtcbiAgICAgICAgcmV0dXJuIGlzRW1wdHlJbnB1dFZhbHVlKGNvbnRyb2wudmFsdWUpID8geyByZXF1aXJlZDogdHJ1ZSB9IDogbnVsbDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH07XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGRlcGVuZGVudENvbnRyb2xzKGNvbnRyb2xOYW1lczogc3RyaW5nW10pOiBWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpID0+IHtcbiAgICAgIGNvbnRyb2xOYW1lcy5mb3JFYWNoKChjb250cm9sTmFtZSkgPT4ge1xuICAgICAgICBjb250cm9sLnBhcmVudD8uZ2V0KGNvbnRyb2xOYW1lKT8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9O1xuICB9XG59XG4iXX0=