@meshmakers/shared-ui 0.0.0-0 → 0.0.2304-15002

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 (27) hide show
  1. package/esm2020/lib/confirmation-dialog/confirmation-dialog.module.mjs +4 -4
  2. package/esm2020/lib/confirmation-dialog/confirmation-window/confirmation-window.component.mjs +3 -3
  3. package/esm2020/lib/confirmation-dialog/services/confirmation.service.mjs +3 -3
  4. package/esm2020/lib/ia-shared-ui/ia-autocomplete-input/ia-autocomplete-input.mjs +5 -5
  5. package/esm2020/lib/ia-shared-ui/ia-entity-select-input/ia-entity-select-input.component.mjs +5 -5
  6. package/esm2020/lib/ia-shared-ui/ia-multiple-entity-select-input/ia-multiple-entity-select-input.component.mjs +285 -0
  7. package/esm2020/lib/ia-shared-ui/ia-notification-bar/ia-notification-bar.component.mjs +3 -3
  8. package/esm2020/lib/ia-shared-ui/ia-shared-ui.module.mjs +31 -9
  9. package/esm2020/lib/ia-shared-ui/message-details/message-details.component.mjs +3 -3
  10. package/esm2020/lib/progress-notifier/progress-notifier.module.mjs +4 -4
  11. package/esm2020/lib/progress-notifier/progress-window/progress-window.component.mjs +3 -3
  12. package/esm2020/lib/progress-notifier/services/progress-notifier.service.mjs +3 -3
  13. package/esm2020/public-api.mjs +2 -1
  14. package/fesm2015/meshmakers-shared-ui.mjs +336 -43
  15. package/fesm2015/meshmakers-shared-ui.mjs.map +1 -1
  16. package/fesm2020/meshmakers-shared-ui.mjs +335 -43
  17. package/fesm2020/meshmakers-shared-ui.mjs.map +1 -1
  18. package/lib/confirmation-dialog/confirmation-window/confirmation-window.component.d.ts +1 -1
  19. package/lib/ia-shared-ui/ia-autocomplete-input/ia-autocomplete-input.d.ts +1 -1
  20. package/lib/ia-shared-ui/ia-entity-select-input/ia-entity-select-input.component.d.ts +1 -1
  21. package/lib/ia-shared-ui/ia-multiple-entity-select-input/ia-multiple-entity-select-input.component.d.ts +73 -0
  22. package/lib/ia-shared-ui/ia-notification-bar/ia-notification-bar.component.d.ts +1 -1
  23. package/lib/ia-shared-ui/ia-shared-ui.module.d.ts +13 -10
  24. package/lib/ia-shared-ui/message-details/message-details.component.d.ts +1 -1
  25. package/lib/progress-notifier/progress-window/progress-window.component.d.ts +1 -1
  26. package/package.json +2 -2
  27. package/public-api.d.ts +1 -0
@@ -0,0 +1,285 @@
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 { 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 IaMultipleEntitySelectInput {
19
+ constructor(elRef, injector, fm) {
20
+ this.elRef = elRef;
21
+ this.injector = injector;
22
+ this.fm = fm;
23
+ this.filteredEntities = [];
24
+ this.stateChanges = new Subject();
25
+ this.id = `ia-multiple-entity-select-${IaMultipleEntitySelectInput.nextId++}`;
26
+ this.valuesChange = new EventEmitter();
27
+ this.describedBy = '';
28
+ this.separatorKeysCodes = [ENTER, COMMA];
29
+ this._disabled = false;
30
+ this._required = false;
31
+ this._propagateChange = (_) => {
32
+ };
33
+ this._onTouched = () => {
34
+ };
35
+ this.valuesFormControl = new FormControl();
36
+ this.searchFormControl = new FormControl();
37
+ this.isLoading = false;
38
+ this._disabled = false;
39
+ this.focused = false;
40
+ fm.monitor(elRef.nativeElement, true).subscribe(origin => {
41
+ this.focused = !!origin;
42
+ this.stateChanges.next();
43
+ });
44
+ }
45
+ get dataSource() {
46
+ return this._dataSource;
47
+ }
48
+ set dataSource(value) {
49
+ this._dataSource = value;
50
+ }
51
+ get disabled() {
52
+ return this._disabled;
53
+ }
54
+ set disabled(dis) {
55
+ this._disabled = coerceBooleanProperty(dis);
56
+ this._disabled ? this.searchFormControl.disable() : this.searchFormControl.enable();
57
+ this.stateChanges.next();
58
+ }
59
+ get placeholder() {
60
+ return this._placeholder;
61
+ }
62
+ set placeholder(plh) {
63
+ this._placeholder = plh;
64
+ this.stateChanges.next();
65
+ }
66
+ get required() {
67
+ return this._required;
68
+ }
69
+ set required(req) {
70
+ this._required = coerceBooleanProperty(req);
71
+ this.inputField.required = this._required;
72
+ this.stateChanges.next();
73
+ }
74
+ get prefix() {
75
+ return this._prefix;
76
+ }
77
+ set prefix(value) {
78
+ if (value !== this._prefix) {
79
+ this._prefix = value;
80
+ }
81
+ }
82
+ get value() {
83
+ return this._selectedEntities;
84
+ }
85
+ set value(value) {
86
+ if (value !== this._selectedEntities) {
87
+ this.valuesFormControl.setValue(value);
88
+ this.setValue(value);
89
+ }
90
+ }
91
+ get empty() {
92
+ let n = this.valuesFormControl.value;
93
+ return !!!n;
94
+ }
95
+ get shouldLabelFloat() {
96
+ return this.focused || !this.empty;
97
+ }
98
+ ngOnInit() {
99
+ this.ngControl = this.injector.get(NgControl, null);
100
+ if (this.ngControl != null) {
101
+ this.ngControl.valueAccessor = this;
102
+ }
103
+ // If prefix defined, usually this is used for a code scanner.
104
+ // The goal is to select the entity in direct way.
105
+ if (this._prefix) {
106
+ this.searchFormControl
107
+ .valueChanges
108
+ .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())))
109
+ .subscribe(resultSet => {
110
+ this.filteredEntities = resultSet.list;
111
+ this.isLoading = false;
112
+ });
113
+ }
114
+ // This is the search functionality when search by human.
115
+ this.searchFormControl
116
+ .valueChanges
117
+ .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)))
118
+ .subscribe(resultSet => {
119
+ const resultList = new Array();
120
+ resultSet.list.forEach(value1 => {
121
+ if (!this.value.find(value2 => this._dataSource.getIdEntity(value2) === this._dataSource.getIdEntity(value1))) {
122
+ resultList.push(value1);
123
+ }
124
+ });
125
+ this.filteredEntities = resultList;
126
+ this.isLoading = false;
127
+ });
128
+ }
129
+ ngOnDestroy() {
130
+ this.stateChanges.complete();
131
+ this.fm.stopMonitoring(this.elRef.nativeElement);
132
+ }
133
+ ngDoCheck() {
134
+ if (this.ngControl) {
135
+ this.errorState = this.ngControl.invalid && this.ngControl.touched;
136
+ this.stateChanges.next();
137
+ }
138
+ }
139
+ clear() {
140
+ this.filteredEntities = [];
141
+ this.searchFormControl.reset(null);
142
+ }
143
+ focus() {
144
+ this.elRef.nativeElement.querySelector('input').focus();
145
+ }
146
+ onEntitySelected(event) {
147
+ let list = this.value;
148
+ if (!list) {
149
+ list = new Array();
150
+ }
151
+ list.push(event.option.value);
152
+ this.value = list;
153
+ this.filteredEntities = [];
154
+ this.searchFormControl.setValue(null);
155
+ this.valuesFormControl.updateValueAndValidity();
156
+ }
157
+ onEntityActivated(event) {
158
+ this.activatedValue = event.option?.value;
159
+ }
160
+ onEntityClosed() {
161
+ if (this.activatedValue) {
162
+ this.value = this.activatedValue;
163
+ this.activatedValue = null;
164
+ }
165
+ }
166
+ reset() {
167
+ this.value = new Array();
168
+ }
169
+ onFocusOut() {
170
+ // if (this.filteredEntities.length === 1) {
171
+ // this.activatedValue = this.filteredEntities[0];
172
+ // this.value = this.filteredEntities[0];
173
+ // }
174
+ }
175
+ onTouched() {
176
+ this._onTouched();
177
+ this.stateChanges.next();
178
+ }
179
+ registerOnChange(fn) {
180
+ this._propagateChange = fn;
181
+ }
182
+ registerOnTouched(fn) {
183
+ this.onTouched = fn;
184
+ }
185
+ writeValue(obj) {
186
+ this.clear();
187
+ this.value = obj;
188
+ }
189
+ setDisabledState(isDisabled) {
190
+ this.disabled = isDisabled;
191
+ }
192
+ onContainerClick(event) {
193
+ if (event.target.tagName.toLowerCase() != 'input') {
194
+ this.focus();
195
+ }
196
+ }
197
+ setDescribedByIds(ids) {
198
+ this.describedBy = ids.join(' ');
199
+ }
200
+ validate(control) {
201
+ const selection = control.value;
202
+ if (typeof selection === 'string') {
203
+ return { incorrect: true };
204
+ }
205
+ return null;
206
+ }
207
+ remove(value) {
208
+ const list = this.value;
209
+ const index = list.indexOf(value);
210
+ if (index !== -1) {
211
+ list.splice(index, 1);
212
+ }
213
+ this.valuesFormControl.updateValueAndValidity();
214
+ }
215
+ setValue(values) {
216
+ if (values !== this._selectedEntities) {
217
+ this._selectedEntities = values;
218
+ this.valuesChange.emit(values);
219
+ this._propagateChange(this._selectedEntities);
220
+ this.stateChanges.next();
221
+ }
222
+ }
223
+ }
224
+ IaMultipleEntitySelectInput.nextId = 0;
225
+ IaMultipleEntitySelectInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: IaMultipleEntitySelectInput, deps: [{ token: i0.ElementRef }, { token: i0.Injector }, { token: i1.FocusMonitor }], target: i0.ɵɵFactoryTarget.Component });
226
+ IaMultipleEntitySelectInput.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.3", type: IaMultipleEntitySelectInput, selector: "ia-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: [
227
+ {
228
+ provide: NG_VALUE_ACCESSOR,
229
+ useExisting: forwardRef(() => IaMultipleEntitySelectInput),
230
+ multi: true
231
+ },
232
+ {
233
+ provide: MatFormFieldControl,
234
+ useExisting: IaMultipleEntitySelectInput
235
+ },
236
+ {
237
+ provide: NG_VALIDATORS,
238
+ useExisting: forwardRef(() => IaMultipleEntitySelectInput),
239
+ multi: true
240
+ }
241
+ ], 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)\">\n {{dataSource.onDisplayEntity(entity)}}\n <button matChipRemove [attr.aria-label]=\"'remove ' + dataSource.onDisplayEntity(entity)\">\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\">\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)}}\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: ["disableRipple", "hideSingleSelectionIndicator"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i3.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", 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: ["tabIndex", "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: ["color", "disabled", "disableRipple", "tabIndex", "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"] }] });
242
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: IaMultipleEntitySelectInput, decorators: [{
243
+ type: Component,
244
+ args: [{ selector: 'ia-multiple-entity-select', host: {
245
+ '[id]': 'id',
246
+ '[attr.aria-describedby]': 'describedBy'
247
+ }, providers: [
248
+ {
249
+ provide: NG_VALUE_ACCESSOR,
250
+ useExisting: forwardRef(() => IaMultipleEntitySelectInput),
251
+ multi: true
252
+ },
253
+ {
254
+ provide: MatFormFieldControl,
255
+ useExisting: IaMultipleEntitySelectInput
256
+ },
257
+ {
258
+ provide: NG_VALIDATORS,
259
+ useExisting: forwardRef(() => IaMultipleEntitySelectInput),
260
+ multi: true
261
+ }
262
+ ], 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)\">\n {{dataSource.onDisplayEntity(entity)}}\n <button matChipRemove [attr.aria-label]=\"'remove ' + dataSource.onDisplayEntity(entity)\">\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\">\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)}}\n </mat-option>\n </ng-container>\n </mat-autocomplete>\n</mat-chip-grid>\n" }]
263
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Injector }, { type: i1.FocusMonitor }]; }, propDecorators: { id: [{
264
+ type: HostBinding
265
+ }], inputField: [{
266
+ type: ViewChild,
267
+ args: ['input']
268
+ }], describedBy: [{
269
+ type: HostBinding,
270
+ args: ['attr.aria-describedby']
271
+ }], dataSource: [{
272
+ type: Input
273
+ }], disabled: [{
274
+ type: Input
275
+ }], placeholder: [{
276
+ type: Input
277
+ }], required: [{
278
+ type: Input
279
+ }], prefix: [{
280
+ type: Input
281
+ }], shouldLabelFloat: [{
282
+ type: HostBinding,
283
+ args: ['class.floating']
284
+ }] } });
285
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWEtbXVsdGlwbGUtZW50aXR5LXNlbGVjdC1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZXNobWFrZXJzL3NoYXJlZC11aS9zcmMvbGliL2lhLXNoYXJlZC11aS9pYS1tdWx0aXBsZS1lbnRpdHktc2VsZWN0LWlucHV0L2lhLW11bHRpcGxlLWVudGl0eS1zZWxlY3QtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVzaG1ha2Vycy9zaGFyZWQtdWkvc3JjL2xpYi9pYS1zaGFyZWQtdWkvaWEtbXVsdGlwbGUtZW50aXR5LXNlbGVjdC1pbnB1dC9pYS1tdWx0aXBsZS1lbnRpdHktc2VsZWN0LWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBR1QsWUFBWSxFQUNaLFVBQVUsRUFDVixXQUFXLEVBRVgsS0FBSyxFQUdMLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBR0wsV0FBVyxFQUFFLGFBQWEsRUFDMUIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFHVixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFHN0IsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDNUQsT0FBTyxFQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXBFLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ2pFLE9BQU8sRUFBQyxLQUFLLEVBQUUsS0FBSyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7Ozs7O0FBMkJuRCxNQUFNLE9BQU8sMkJBQTJCO0lBbUJ0QyxZQUFtQixLQUFpQixF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Q0UsT0FBTyxFQUFFLG1CQUFtQjs0QkFDNUIsV0FBVyw2QkFBNkI7eUJBQ3pDO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSxhQUFhOzRCQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSw0QkFBNEIsQ0FBQzs0QkFDMUQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7bUpBYThCLEVBQUU7c0JBQWhDLFdBQVc7Z0JBR2dCLFVBQVU7c0JBQXJDLFNBQVM7dUJBQUMsT0FBTztnQkFDNEIsV0FBVztzQkFBeEQsV0FBVzt1QkFBQyx1QkFBdUI7Z0JBd0J6QixVQUFVO3NCQURwQixLQUFLO2dCQVFLLFFBQVE7c0JBRGxCLEtBQUs7Z0JBY0ssV0FBVztzQkFEckIsS0FBSztnQkFhSyxRQUFRO3NCQURsQixLQUFLO2dCQWNLLE1BQU07c0JBRGhCLEtBQUs7Z0JBNEJLLGdCQUFnQjtzQkFEMUIsV0FBVzt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIERvQ2hlY2ssXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIEluamVjdG9yLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RW50aXR5U2VsZWN0RGF0YVNvdXJjZX0gZnJvbSBcIkBtZXNobWFrZXJzL3NoYXJlZC1zZXJ2aWNlc1wiO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgRm9ybUNvbnRyb2wsIE5HX1ZBTElEQVRPUlMsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBOZ0NvbnRyb2wsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvclxufSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7U3ViamVjdH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7TWF0SW5wdXR9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9pbnB1dFwiO1xuaW1wb3J0IHtGb2N1c01vbml0b3J9IGZyb20gXCJAYW5ndWxhci9jZGsvYTExeVwiO1xuaW1wb3J0IHtjb2VyY2VCb29sZWFuUHJvcGVydHl9IGZyb20gXCJAYW5ndWxhci9jZGsvY29lcmNpb25cIjtcbmltcG9ydCB7ZGVib3VuY2VUaW1lLCBmaWx0ZXIsIHN3aXRjaE1hcCwgdGFwfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB7TWF0QXV0b2NvbXBsZXRlQWN0aXZhdGVkRXZlbnQsIE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnR9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGVcIjtcbmltcG9ydCB7TWF0Rm9ybUZpZWxkQ29udHJvbH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGRcIjtcbmltcG9ydCB7Q09NTUEsIEVOVEVSfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2tleWNvZGVzXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lhLW11bHRpcGxlLWVudGl0eS1zZWxlY3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vaWEtbXVsdGlwbGUtZW50aXR5LXNlbGVjdC1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2lhLW11bHRpcGxlLWVudGl0eS1zZWxlY3QtaW5wdXQuY29tcG9uZW50LmNzcyddLFxuICBob3N0OiB7XG4gICAgJ1tpZF0nOiAnaWQnLFxuICAgICdbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XSc6ICdkZXNjcmliZWRCeSdcbiAgfSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBJYU11bHRpcGxlRW50aXR5U2VsZWN0SW5wdXQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE1hdEZvcm1GaWVsZENvbnRyb2wsXG4gICAgICB1c2VFeGlzdGluZzogSWFNdWx0aXBsZUVudGl0eVNlbGVjdElucHV0XG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gSWFNdWx0aXBsZUVudGl0eVNlbGVjdElucHV0KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIElhTXVsdGlwbGVFbnRpdHlTZWxlY3RJbnB1dCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBEb0NoZWNrLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgTWF0Rm9ybUZpZWxkQ29udHJvbDxBcnJheTxhbnk+PiwgVmFsaWRhdG9yIHtcblxuICBwcml2YXRlIHN0YXRpYyBuZXh0SWQgPSAwO1xuICBwdWJsaWMgcmVhZG9ubHkgdmFsdWVzRm9ybUNvbnRyb2w6IEZvcm1Db250cm9sO1xuICBwdWJsaWMgcmVhZG9ubHkgc2VhcmNoRm9ybUNvbnRyb2w6IEZvcm1Db250cm9sO1xuICBwdWJsaWMgaXNMb2FkaW5nOiBib29sZWFuO1xuICBwdWJsaWMgZmlsdGVyZWRFbnRpdGllczogYW55W10gPSBbXTtcbiAgcHVibGljIG5nQ29udHJvbDogTmdDb250cm9sO1xuICBwdWJsaWMgZXJyb3JTdGF0ZTogYm9vbGVhbjtcbiAgcHVibGljIGZvY3VzZWQ6IGJvb2xlYW47XG4gIHB1YmxpYyByZWFkb25seSBzdGF0ZUNoYW5nZXMgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBASG9zdEJpbmRpbmcoKSBwdWJsaWMgcmVhZG9ubHkgaWQgPSBgaWEtbXVsdGlwbGUtZW50aXR5LXNlbGVjdC0ke0lhTXVsdGlwbGVFbnRpdHlTZWxlY3RJbnB1dC5uZXh0SWQrK31gO1xuICBwdWJsaWMgdmFsdWVzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8QXJyYXk8YW55Pj4gPSBuZXcgRXZlbnRFbWl0dGVyPEFycmF5PGFueT4+KCk7XG4gIHByaXZhdGUgX3NlbGVjdGVkRW50aXRpZXM6IEFycmF5PGFueT47XG4gIEBWaWV3Q2hpbGQoJ2lucHV0JykgcHJpdmF0ZSBpbnB1dEZpZWxkOiBNYXRJbnB1dDtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtZGVzY3JpYmVkYnknKSBwcml2YXRlIGRlc2NyaWJlZEJ5ID0gJyc7XG4gIHByaXZhdGUgYWN0aXZhdGVkVmFsdWU6IGFueTtcbiAgcmVhZG9ubHkgc2VwYXJhdG9yS2V5c0NvZGVzID0gW0VOVEVSLCBDT01NQV0gYXMgY29uc3Q7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGVsUmVmOiBFbGVtZW50UmVmLCBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvciwgcHJpdmF0ZSBmbTogRm9jdXNNb25pdG9yKSB7XG5cbiAgICB0aGlzLnZhbHVlc0Zvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XG4gICAgdGhpcy5zZWFyY2hGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xuICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgdGhpcy5fZGlzYWJsZWQgPSBmYWxzZTtcbiAgICB0aGlzLmZvY3VzZWQgPSBmYWxzZTtcbiAgICBmbS5tb25pdG9yKGVsUmVmLm5hdGl2ZUVsZW1lbnQsIHRydWUpLnN1YnNjcmliZShvcmlnaW4gPT4ge1xuICAgICAgdGhpcy5mb2N1c2VkID0gISFvcmlnaW47XG4gICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9kYXRhU291cmNlOiBFbnRpdHlTZWxlY3REYXRhU291cmNlPGFueT47XG5cbiAgcHVibGljIGdldCBkYXRhU291cmNlKCkge1xuICAgIHJldHVybiB0aGlzLl9kYXRhU291cmNlO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBkYXRhU291cmNlKHZhbHVlOiBFbnRpdHlTZWxlY3REYXRhU291cmNlPGFueT4pIHtcbiAgICB0aGlzLl9kYXRhU291cmNlID0gdmFsdWU7XG4gIH1cblxuICBwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgZGlzYWJsZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICB9XG5cbiAgcHVibGljIHNldCBkaXNhYmxlZChkaXMpIHtcbiAgICB0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShkaXMpO1xuICAgIHRoaXMuX2Rpc2FibGVkID8gdGhpcy5zZWFyY2hGb3JtQ29udHJvbC5kaXNhYmxlKCkgOiB0aGlzLnNlYXJjaEZvcm1Db250cm9sLmVuYWJsZSgpO1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3BsYWNlaG9sZGVyOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGdldCBwbGFjZWhvbGRlcigpIHtcbiAgICByZXR1cm4gdGhpcy5fcGxhY2Vob2xkZXI7XG4gIH1cblxuICBwdWJsaWMgc2V0IHBsYWNlaG9sZGVyKHBsaCkge1xuICAgIHRoaXMuX3BsYWNlaG9sZGVyID0gcGxoO1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3JlcXVpcmVkID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGdldCByZXF1aXJlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fcmVxdWlyZWQ7XG4gIH1cblxuICBwdWJsaWMgc2V0IHJlcXVpcmVkKHJlcSkge1xuICAgIHRoaXMuX3JlcXVpcmVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHJlcSk7XG4gICAgdGhpcy5pbnB1dEZpZWxkLnJlcXVpcmVkID0gdGhpcy5fcmVxdWlyZWQ7XG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcHJlZml4OiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGdldCBwcmVmaXgoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fcHJlZml4O1xuICB9XG5cbiAgcHVibGljIHNldCBwcmVmaXgodmFsdWU6IHN0cmluZykge1xuICAgIGlmICh2YWx1ZSAhPT0gdGhpcy5fcHJlZml4KSB7XG4gICAgICB0aGlzLl9wcmVmaXggPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IEFycmF5PGFueT4ge1xuICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZEVudGl0aWVzO1xuICB9XG5cbiAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogQXJyYXk8YW55Pikge1xuICAgIGlmICh2YWx1ZSAhPT0gdGhpcy5fc2VsZWN0ZWRFbnRpdGllcykge1xuICAgICAgdGhpcy52YWx1ZXNGb3JtQ29udHJvbC5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgICB0aGlzLnNldFZhbHVlKHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGVtcHR5KCkge1xuICAgIGxldCBuID0gdGhpcy52YWx1ZXNGb3JtQ29udHJvbC52YWx1ZTtcbiAgICByZXR1cm4gISEhbjtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZmxvYXRpbmcnKVxuICBwdWJsaWMgZ2V0IHNob3VsZExhYmVsRmxvYXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZm9jdXNlZCB8fCAhdGhpcy5lbXB0eTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMubmdDb250cm9sID0gdGhpcy5pbmplY3Rvci5nZXQoTmdDb250cm9sLCBudWxsKTtcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wgIT0gbnVsbCkge1xuICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gICAgfVxuXG4gICAgLy8gSWYgcHJlZml4IGRlZmluZWQsIHVzdWFsbHkgdGhpcyBpcyB1c2VkIGZvciBhIGNvZGUgc2Nhbm5lci5cbiAgICAvLyBUaGUgZ29hbCBpcyB0byBzZWxlY3QgdGhlIGVudGl0eSBpbiBkaXJlY3Qgd2F5LlxuICAgIGlmICh0aGlzLl9wcmVmaXgpIHtcbiAgICAgIHRoaXMuc2VhcmNoRm9ybUNvbnRyb2xcbiAgICAgICAgLnZhbHVlQ2hhbmdlc1xuICAgICAgICAucGlwZShcbiAgICAgICAgICBkZWJvdW5jZVRpbWUoMzAwKSxcbiAgICAgICAgICBmaWx0ZXIodmFsdWUgPT4gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyksXG4gICAgICAgICAgZmlsdGVyKHZhbHVlID0+IHZhbHVlLnN0YXJ0c1dpdGgodGhpcy5fcHJlZml4KSksXG4gICAgICAgICAgdGFwKCgpID0+IHRoaXMuaXNMb2FkaW5nID0gdHJ1ZSksXG4gICAgICAgICAgc3dpdGNoTWFwKHZhbHVlID0+IHRoaXMuX2RhdGFTb3VyY2Uub25GaWx0ZXIodmFsdWUucmVwbGFjZSh0aGlzLl9wcmVmaXgsIFwiXCIpLnRyaW0oKSkpXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZShyZXN1bHRTZXQgPT4ge1xuXG4gICAgICAgICAgdGhpcy5maWx0ZXJlZEVudGl0aWVzID0gcmVzdWx0U2V0Lmxpc3Q7XG4gICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gVGhpcyBpcyB0aGUgc2VhcmNoIGZ1bmN0aW9uYWxpdHkgd2hlbiBzZWFyY2ggYnkgaHVtYW4uXG4gICAgdGhpcy5zZWFyY2hGb3JtQ29udHJvbFxuICAgICAgLnZhbHVlQ2hhbmdlc1xuICAgICAgLnBpcGUoXG4gICAgICAgIGRlYm91bmNlVGltZSgzMDApLFxuICAgICAgICB0YXAoKCkgPT4gdGhpcy5maWx0ZXJlZEVudGl0aWVzID0gW10pLFxuICAgICAgICBmaWx0ZXIodmFsdWUgPT4gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyksXG4gICAgICAgIGZpbHRlcih2YWx1ZSA9PiB2YWx1ZS50b1N0cmluZygpLmxlbmd0aCA+PSAzKSxcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuaXNMb2FkaW5nID0gdHJ1ZSksXG4gICAgICAgIHN3aXRjaE1hcCh2YWx1ZSA9PiB0aGlzLl9kYXRhU291cmNlLm9uRmlsdGVyKHZhbHVlKSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUocmVzdWx0U2V0ID0+IHtcblxuICAgICAgICBjb25zdCByZXN1bHRMaXN0ID0gbmV3IEFycmF5PGFueT4oKTtcbiAgICAgICAgcmVzdWx0U2V0Lmxpc3QuZm9yRWFjaCh2YWx1ZTEgPT4ge1xuICAgICAgICAgIGlmICghdGhpcy52YWx1ZS5maW5kKHZhbHVlMiA9PlxuICAgICAgICAgICAgdGhpcy5fZGF0YVNvdXJjZS5nZXRJZEVudGl0eSh2YWx1ZTIpID09PSB0aGlzLl9kYXRhU291cmNlLmdldElkRW50aXR5KHZhbHVlMSkpKVxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHJlc3VsdExpc3QucHVzaCh2YWx1ZTEpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcblxuICAgICAgICAgIHRoaXMuZmlsdGVyZWRFbnRpdGllcyA9IHJlc3VsdExpc3Q7XG4gICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5mbS5zdG9wTW9uaXRvcmluZyh0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQpO1xuICB9XG5cbiAgbmdEb0NoZWNrKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgdGhpcy5lcnJvclN0YXRlID0gdGhpcy5uZ0NvbnRyb2wuaW52YWxpZCAmJiB0aGlzLm5nQ29udHJvbC50b3VjaGVkO1xuICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjbGVhcigpIHtcbiAgICB0aGlzLmZpbHRlcmVkRW50aXRpZXMgPSBbXTtcbiAgICB0aGlzLnNlYXJjaEZvcm1Db250cm9sLnJlc2V0KG51bGwpO1xuICB9XG5cbiAgcHVibGljIGZvY3VzKCkge1xuICAgIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpLmZvY3VzKCk7XG4gIH1cblxuICBwdWJsaWMgb25FbnRpdHlTZWxlY3RlZChldmVudDogTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCkge1xuXG4gICAgbGV0IGxpc3QgPSB0aGlzLnZhbHVlO1xuICAgIGlmICghbGlzdCkge1xuICAgICAgbGlzdCA9IG5ldyBBcnJheTxhbnk+KCk7XG4gICAgfVxuICAgIGxpc3QucHVzaChldmVudC5vcHRpb24udmFsdWUpO1xuICAgIHRoaXMudmFsdWUgPSBsaXN0O1xuXG4gICAgdGhpcy5maWx0ZXJlZEVudGl0aWVzID0gW107XG4gICAgdGhpcy5zZWFyY2hGb3JtQ29udHJvbC5zZXRWYWx1ZShudWxsKTtcbiAgICB0aGlzLnZhbHVlc0Zvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkVudGl0eUFjdGl2YXRlZChldmVudDogTWF0QXV0b2NvbXBsZXRlQWN0aXZhdGVkRXZlbnQpIHtcbiAgICB0aGlzLmFjdGl2YXRlZFZhbHVlID0gZXZlbnQub3B0aW9uPy52YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBvbkVudGl0eUNsb3NlZCgpIHtcblxuICAgIGlmICh0aGlzLmFjdGl2YXRlZFZhbHVlKSB7XG5cbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmFjdGl2YXRlZFZhbHVlO1xuICAgICAgdGhpcy5hY3RpdmF0ZWRWYWx1ZSA9IG51bGw7XG5cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVzZXQoKSB7XG4gICAgdGhpcy52YWx1ZSA9IG5ldyBBcnJheTxhbnk+KCk7XG4gIH1cblxuICBwdWJsaWMgb25Gb2N1c091dCgpIHtcblxuICAgIC8vIGlmICh0aGlzLmZpbHRlcmVkRW50aXRpZXMubGVuZ3RoID09PSAxKSB7XG4gICAgLy8gICB0aGlzLmFjdGl2YXRlZFZhbHVlID0gdGhpcy5maWx0ZXJlZEVudGl0aWVzWzBdO1xuICAgIC8vICAgdGhpcy52YWx1ZSA9IHRoaXMuZmlsdGVyZWRFbnRpdGllc1swXTtcbiAgICAvLyB9XG4gIH1cblxuICBwdWJsaWMgb25Ub3VjaGVkKCkge1xuXG4gICAgdGhpcy5fb25Ub3VjaGVkKCk7XG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMuX3Byb3BhZ2F0ZUNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgcHVibGljIHdyaXRlVmFsdWUob2JqOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFyKCk7XG4gICAgdGhpcy52YWx1ZSA9IG9iajtcbiAgfVxuXG4gIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIHB1YmxpYyBvbkNvbnRhaW5lckNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKChldmVudC50YXJnZXQgYXMgRWxlbWVudCkudGFnTmFtZS50b0xvd2VyQ2FzZSgpICE9ICdpbnB1dCcpIHtcbiAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2V0RGVzY3JpYmVkQnlJZHMoaWRzOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgIHRoaXMuZGVzY3JpYmVkQnkgPSBpZHMuam9pbignICcpO1xuICB9XG5cbiAgdmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIGNvbnN0IHNlbGVjdGlvbjogYW55ID0gY29udHJvbC52YWx1ZTtcbiAgICBpZiAodHlwZW9mIHNlbGVjdGlvbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiB7aW5jb3JyZWN0OiB0cnVlfTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZW1vdmUodmFsdWU6IGFueSkge1xuICAgIGNvbnN0IGxpc3QgPSB0aGlzLnZhbHVlO1xuICAgIGNvbnN0IGluZGV4ID0gbGlzdC5pbmRleE9mKHZhbHVlKTtcbiAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICBsaXN0LnNwbGljZShpbmRleCwgMSk7XG4gICAgfVxuICAgIHRoaXMudmFsdWVzRm9ybUNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcHJvcGFnYXRlQ2hhbmdlID0gKF86IEFycmF5PGFueT4pID0+IHtcbiAgfTtcblxuICBwcml2YXRlIF9vblRvdWNoZWQgPSAoKSA9PiB7XG4gIH07XG5cbiAgcHJpdmF0ZSBzZXRWYWx1ZSh2YWx1ZXM6IEFycmF5PGFueT4pIHtcbiAgICBpZiAodmFsdWVzICE9PSB0aGlzLl9zZWxlY3RlZEVudGl0aWVzKSB7XG4gICAgICB0aGlzLl9zZWxlY3RlZEVudGl0aWVzID0gdmFsdWVzO1xuICAgICAgdGhpcy52YWx1ZXNDaGFuZ2UuZW1pdCh2YWx1ZXMpO1xuICAgICAgdGhpcy5fcHJvcGFnYXRlQ2hhbmdlKHRoaXMuX3NlbGVjdGVkRW50aXRpZXMpO1xuICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICAgIH1cbiAgfVxufVxuIiwiPG1hdC1jaGlwLWdyaWQgI2xpc3Q+XG4gIDxtYXQtY2hpcC1yb3cgKm5nRm9yPVwibGV0IGVudGl0eSBvZiB2YWx1ZXNGb3JtQ29udHJvbC52YWx1ZVwiXG4gICAgICAgICAgICAgICAgKHJlbW92ZWQpPVwicmVtb3ZlKGVudGl0eSlcIlxuICAgICAgICAgICAgICAgIFtlZGl0YWJsZV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgW2FyaWEtZGVzY3JpcHRpb25dPVwiJ3ByZXNzIGVudGVyIHRvIGVkaXQgJyArIGRhdGFTb3VyY2Uub25EaXNwbGF5RW50aXR5KGVudGl0eSlcIj5cbiAgICB7e2RhdGFTb3VyY2Uub25EaXNwbGF5RW50aXR5KGVudGl0eSl9fVxuICAgIDxidXR0b24gbWF0Q2hpcFJlbW92ZSBbYXR0ci5hcmlhLWxhYmVsXT1cIidyZW1vdmUgJyArIGRhdGFTb3VyY2Uub25EaXNwbGF5RW50aXR5KGVudGl0eSlcIj5cbiAgICAgIDxtYXQtaWNvbj5jYW5jZWw8L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICA8L21hdC1jaGlwLXJvdz5cbiAgPGlucHV0ICNpbnB1dCAoYmx1cik9XCJvblRvdWNoZWQoKVwiIChmb2N1c291dCk9XCJvbkZvY3VzT3V0KClcIiBbZm9ybUNvbnRyb2xdPVwic2VhcmNoRm9ybUNvbnRyb2xcIlxuICAgICAgICAgW21hdEF1dG9jb21wbGV0ZV09XCJhdXRvXCJcbiAgICAgICAgIFttYXRDaGlwSW5wdXRGb3JdPVwibGlzdFwiXG4gICAgICAgICBtYXRDaGlwSW5wdXRBZGRPbkJsdXI9XCJ0cnVlXCJcbiAgICAgICAgIFttYXRDaGlwSW5wdXRTZXBhcmF0b3JLZXlDb2Rlc109XCJzZXBhcmF0b3JLZXlzQ29kZXNcIlxuICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCIgbWF0SW5wdXQ+XG4gIDxtYXQtYXV0b2NvbXBsZXRlICNhdXRvPVwibWF0QXV0b2NvbXBsZXRlXCIgKGNsb3NlZCk9XCJvbkVudGl0eUNsb3NlZCgpXCJcbiAgICAgICAgICAgICAgICAgICAgKG9wdGlvbkFjdGl2YXRlZCk9XCJvbkVudGl0eUFjdGl2YXRlZCgkZXZlbnQpXCIgKG9wdGlvblNlbGVjdGVkKT1cIm9uRW50aXR5U2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNwbGF5V2l0aF09XCJkYXRhU291cmNlLm9uRGlzcGxheUVudGl0eVwiPlxuICAgIDxtYXQtb3B0aW9uICpuZ0lmPVwiaXNMb2FkaW5nXCIgY2xhc3M9XCJpcy1sb2FkaW5nXCI+XG4gICAgICA8bWF0LXNwaW5uZXIgZGlhbWV0ZXI9XCI1MFwiPjwvbWF0LXNwaW5uZXI+XG4gICAgPC9tYXQtb3B0aW9uPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNMb2FkaW5nXCI+XG4gICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgZW50aXR5IG9mIGZpbHRlcmVkRW50aXRpZXNcIiBbdmFsdWVdPVwiZW50aXR5XCI+XG4gICAgICAgIHt7ZGF0YVNvdXJjZS5vbkRpc3BsYXlFbnRpdHkoZW50aXR5KX19XG4gICAgICA8L21hdC1vcHRpb24+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbWF0LWF1dG9jb21wbGV0ZT5cbjwvbWF0LWNoaXAtZ3JpZD5cbiJdfQ==
@@ -26,9 +26,9 @@ export class IaNotificationBarComponent {
26
26
  });
27
27
  }
28
28
  }
29
- IaNotificationBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: IaNotificationBarComponent, deps: [{ token: i1.MessageService }, { token: i2.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
30
- IaNotificationBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.2", type: IaNotificationBarComponent, selector: "ia-notification-bar", ngImport: i0, template: "<mat-toolbar [hidden]=\"!errorMessage\" color=\"warn\">\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()\" color=\"warn\" mat-raised-button><i class=\"pi pi-angle-double-up\"></i></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.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }] });
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: IaNotificationBarComponent, decorators: [{
29
+ IaNotificationBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: IaNotificationBarComponent, deps: [{ token: i1.MessageService }, { token: i2.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
30
+ IaNotificationBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.3", type: IaNotificationBarComponent, selector: "ia-notification-bar", ngImport: i0, template: "<mat-toolbar [hidden]=\"!errorMessage\" color=\"warn\">\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()\" color=\"warn\" mat-raised-button><i class=\"pi pi-angle-double-up\"></i></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.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }] });
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: IaNotificationBarComponent, decorators: [{
32
32
  type: Component,
33
33
  args: [{ selector: 'ia-notification-bar', template: "<mat-toolbar [hidden]=\"!errorMessage\" color=\"warn\">\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()\" color=\"warn\" mat-raised-button><i class=\"pi pi-angle-double-up\"></i></button>\n</mat-toolbar>\n", styles: [".notification-fill-remaining-space{flex:1 1 auto}\n"] }]
34
34
  }], ctorParameters: function () { return [{ type: i1.MessageService }, { type: i2.MatDialog }]; } });
@@ -12,11 +12,18 @@ import { MatInputModule } from "@angular/material/input";
12
12
  import { MatProgressSpinnerModule } from "@angular/material/progress-spinner";
13
13
  import { ReactiveFormsModule } from "@angular/forms";
14
14
  import { IaEntitySelectInput } from './ia-entity-select-input/ia-entity-select-input.component';
15
+ import { IaMultipleEntitySelectInput } from './ia-multiple-entity-select-input/ia-multiple-entity-select-input.component';
16
+ import { MatChipsModule } from "@angular/material/chips";
17
+ import { MatIconModule } from "@angular/material/icon";
15
18
  import * as i0 from "@angular/core";
16
19
  export class IaSharedUIModule {
17
20
  }
18
- IaSharedUIModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: IaSharedUIModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
19
- IaSharedUIModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.2", ngImport: i0, type: IaSharedUIModule, declarations: [IaNotificationBarComponent, MessageDetailsComponent, IaAutocompleteInput, IaEntitySelectInput], imports: [CommonModule,
21
+ IaSharedUIModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: IaSharedUIModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
22
+ IaSharedUIModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.3", ngImport: i0, type: IaSharedUIModule, declarations: [IaNotificationBarComponent,
23
+ MessageDetailsComponent,
24
+ IaAutocompleteInput,
25
+ IaEntitySelectInput,
26
+ IaMultipleEntitySelectInput], imports: [CommonModule,
20
27
  MatToolbarModule,
21
28
  MatButtonModule,
22
29
  MatSnackBarModule,
@@ -24,10 +31,13 @@ IaSharedUIModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", versio
24
31
  MatAutocompleteModule,
25
32
  MatInputModule,
26
33
  MatProgressSpinnerModule,
34
+ MatChipsModule,
35
+ MatIconModule,
27
36
  ReactiveFormsModule], exports: [IaNotificationBarComponent,
28
37
  IaAutocompleteInput,
29
- IaEntitySelectInput] });
30
- IaSharedUIModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: IaSharedUIModule, imports: [CommonModule,
38
+ IaEntitySelectInput,
39
+ IaMultipleEntitySelectInput] });
40
+ IaSharedUIModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: IaSharedUIModule, imports: [CommonModule,
31
41
  MatToolbarModule,
32
42
  MatButtonModule,
33
43
  MatSnackBarModule,
@@ -35,20 +45,30 @@ IaSharedUIModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", versio
35
45
  MatAutocompleteModule,
36
46
  MatInputModule,
37
47
  MatProgressSpinnerModule,
48
+ MatChipsModule,
49
+ MatIconModule,
38
50
  ReactiveFormsModule] });
39
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: IaSharedUIModule, decorators: [{
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: IaSharedUIModule, decorators: [{
40
52
  type: NgModule,
41
53
  args: [{
42
- declarations: [IaNotificationBarComponent, MessageDetailsComponent, IaAutocompleteInput, IaEntitySelectInput],
54
+ declarations: [
55
+ IaNotificationBarComponent,
56
+ MessageDetailsComponent,
57
+ IaAutocompleteInput,
58
+ IaEntitySelectInput,
59
+ IaMultipleEntitySelectInput
60
+ ],
43
61
  exports: [
44
62
  IaNotificationBarComponent,
45
63
  IaAutocompleteInput,
46
- IaEntitySelectInput
64
+ IaEntitySelectInput,
65
+ IaMultipleEntitySelectInput
47
66
  ],
48
67
  entryComponents: [
49
68
  MessageDetailsComponent,
50
69
  IaAutocompleteInput,
51
- IaEntitySelectInput
70
+ IaEntitySelectInput,
71
+ IaMultipleEntitySelectInput
52
72
  ],
53
73
  imports: [
54
74
  CommonModule,
@@ -59,8 +79,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImpor
59
79
  MatAutocompleteModule,
60
80
  MatInputModule,
61
81
  MatProgressSpinnerModule,
82
+ MatChipsModule,
83
+ MatIconModule,
62
84
  ReactiveFormsModule
63
85
  ]
64
86
  }]
65
87
  }] });
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWEtc2hhcmVkLXVpLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lc2htYWtlcnMvc2hhcmVkLXVpL3NyYy9saWIvaWEtc2hhcmVkLXVpL2lhLXNoYXJlZC11aS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0scURBQXFELENBQUM7QUFDL0YsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQzlELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw2Q0FBNkMsQ0FBQztBQUNwRixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSwrQ0FBK0MsQ0FBQztBQUNsRixPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNyRSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDNUUsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sMkRBQTJELENBQUM7O0FBMkI5RixNQUFNLE9BQU8sZ0JBQWdCOzs2R0FBaEIsZ0JBQWdCOzhHQUFoQixnQkFBZ0IsaUJBdkJaLDBCQUEwQixFQUFFLHVCQUF1QixFQUFFLG1CQUFtQixFQUFFLG1CQUFtQixhQVkxRyxZQUFZO1FBQ1osZ0JBQWdCO1FBQ2hCLGVBQWU7UUFDZixpQkFBaUI7UUFDakIsZUFBZTtRQUNmLHFCQUFxQjtRQUNyQixjQUFjO1FBQ2Qsd0JBQXdCO1FBQ3hCLG1CQUFtQixhQWxCbkIsMEJBQTBCO1FBQzFCLG1CQUFtQjtRQUNuQixtQkFBbUI7OEdBbUJWLGdCQUFnQixZQVh6QixZQUFZO1FBQ1osZ0JBQWdCO1FBQ2hCLGVBQWU7UUFDZixpQkFBaUI7UUFDakIsZUFBZTtRQUNmLHFCQUFxQjtRQUNyQixjQUFjO1FBQ2Qsd0JBQXdCO1FBQ3hCLG1CQUFtQjsyRkFHVixnQkFBZ0I7a0JBeEI1QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLDBCQUEwQixFQUFFLHVCQUF1QixFQUFFLG1CQUFtQixFQUFFLG1CQUFtQixDQUFDO29CQUM3RyxPQUFPLEVBQUU7d0JBQ1AsMEJBQTBCO3dCQUMxQixtQkFBbUI7d0JBQ25CLG1CQUFtQjtxQkFDcEI7b0JBQ0QsZUFBZSxFQUFFO3dCQUNmLHVCQUF1Qjt3QkFDdkIsbUJBQW1CO3dCQUNuQixtQkFBbUI7cUJBQ3BCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixpQkFBaUI7d0JBQ2pCLGVBQWU7d0JBQ2YscUJBQXFCO3dCQUNyQixjQUFjO3dCQUNkLHdCQUF3Qjt3QkFDeEIsbUJBQW1CO3FCQUNwQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0lhTm90aWZpY2F0aW9uQmFyQ29tcG9uZW50fSBmcm9tICcuL2lhLW5vdGlmaWNhdGlvbi1iYXIvaWEtbm90aWZpY2F0aW9uLWJhci5jb21wb25lbnQnO1xuaW1wb3J0IHtNYXRUb29sYmFyTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbGJhclwiO1xuaW1wb3J0IHtNYXRCdXR0b25Nb2R1bGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9idXR0b25cIjtcbmltcG9ydCB7TWF0U25hY2tCYXJNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXJcIjtcbmltcG9ydCB7TWF0RGlhbG9nTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nXCI7XG5pbXBvcnQge01lc3NhZ2VEZXRhaWxzQ29tcG9uZW50fSBmcm9tIFwiLi9tZXNzYWdlLWRldGFpbHMvbWVzc2FnZS1kZXRhaWxzLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtJYUF1dG9jb21wbGV0ZUlucHV0fSBmcm9tIFwiLi9pYS1hdXRvY29tcGxldGUtaW5wdXQvaWEtYXV0b2NvbXBsZXRlLWlucHV0XCI7XG5pbXBvcnQge01hdEF1dG9jb21wbGV0ZU1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZVwiO1xuaW1wb3J0IHtNYXRJbnB1dE1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2lucHV0XCI7XG5pbXBvcnQge01hdFByb2dyZXNzU3Bpbm5lck1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXJcIjtcbmltcG9ydCB7UmVhY3RpdmVGb3Jtc01vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQge0lhRW50aXR5U2VsZWN0SW5wdXR9IGZyb20gJy4vaWEtZW50aXR5LXNlbGVjdC1pbnB1dC9pYS1lbnRpdHktc2VsZWN0LWlucHV0LmNvbXBvbmVudCc7XG5cblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbSWFOb3RpZmljYXRpb25CYXJDb21wb25lbnQsIE1lc3NhZ2VEZXRhaWxzQ29tcG9uZW50LCBJYUF1dG9jb21wbGV0ZUlucHV0LCBJYUVudGl0eVNlbGVjdElucHV0XSxcbiAgZXhwb3J0czogW1xuICAgIElhTm90aWZpY2F0aW9uQmFyQ29tcG9uZW50LFxuICAgIElhQXV0b2NvbXBsZXRlSW5wdXQsXG4gICAgSWFFbnRpdHlTZWxlY3RJbnB1dFxuICBdLFxuICBlbnRyeUNvbXBvbmVudHM6IFtcbiAgICBNZXNzYWdlRGV0YWlsc0NvbXBvbmVudCxcbiAgICBJYUF1dG9jb21wbGV0ZUlucHV0LFxuICAgIElhRW50aXR5U2VsZWN0SW5wdXRcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBNYXRUb29sYmFyTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRTbmFja0Jhck1vZHVsZSxcbiAgICBNYXREaWFsb2dNb2R1bGUsXG4gICAgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgSWFTaGFyZWRVSU1vZHVsZSB7XG59XG4iXX0=
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWEtc2hhcmVkLXVpLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lc2htYWtlcnMvc2hhcmVkLXVpL3NyYy9saWIvaWEtc2hhcmVkLXVpL2lhLXNoYXJlZC11aS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0scURBQXFELENBQUM7QUFDL0YsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQzlELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw2Q0FBNkMsQ0FBQztBQUNwRixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSwrQ0FBK0MsQ0FBQztBQUNsRixPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNyRSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDNUUsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFDOUYsT0FBTyxFQUNMLDJCQUEyQixFQUM1QixNQUFNLDZFQUE2RSxDQUFDO0FBQ3JGLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7O0FBcUNyRCxNQUFNLE9BQU8sZ0JBQWdCOzs2R0FBaEIsZ0JBQWdCOzhHQUFoQixnQkFBZ0IsaUJBaEN6QiwwQkFBMEI7UUFDMUIsdUJBQXVCO1FBQ3ZCLG1CQUFtQjtRQUNuQixtQkFBbUI7UUFDbkIsMkJBQTJCLGFBZTNCLFlBQVk7UUFDWixnQkFBZ0I7UUFDaEIsZUFBZTtRQUNmLGlCQUFpQjtRQUNqQixlQUFlO1FBQ2YscUJBQXFCO1FBQ3JCLGNBQWM7UUFDZCx3QkFBd0I7UUFDeEIsY0FBYztRQUNkLGFBQWE7UUFDYixtQkFBbUIsYUF0Qm5CLDBCQUEwQjtRQUMxQixtQkFBbUI7UUFDbkIsbUJBQW1CO1FBQ25CLDJCQUEyQjs4R0FzQmxCLGdCQUFnQixZQWJ6QixZQUFZO1FBQ1osZ0JBQWdCO1FBQ2hCLGVBQWU7UUFDZixpQkFBaUI7UUFDakIsZUFBZTtRQUNmLHFCQUFxQjtRQUNyQixjQUFjO1FBQ2Qsd0JBQXdCO1FBQ3hCLGNBQWM7UUFDZCxhQUFhO1FBQ2IsbUJBQW1COzJGQUdWLGdCQUFnQjtrQkFsQzVCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLDBCQUEwQjt3QkFDMUIsdUJBQXVCO3dCQUN2QixtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsMkJBQTJCO3FCQUM1QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsMEJBQTBCO3dCQUMxQixtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsMkJBQTJCO3FCQUM1QjtvQkFDRCxlQUFlLEVBQUU7d0JBQ2YsdUJBQXVCO3dCQUN2QixtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsMkJBQTJCO3FCQUM1QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2YsaUJBQWlCO3dCQUNqQixlQUFlO3dCQUNmLHFCQUFxQjt3QkFDckIsY0FBYzt3QkFDZCx3QkFBd0I7d0JBQ3hCLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixtQkFBbUI7cUJBQ3BCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7SWFOb3RpZmljYXRpb25CYXJDb21wb25lbnR9IGZyb20gJy4vaWEtbm90aWZpY2F0aW9uLWJhci9pYS1ub3RpZmljYXRpb24tYmFyLmNvbXBvbmVudCc7XG5pbXBvcnQge01hdFRvb2xiYXJNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC90b29sYmFyXCI7XG5pbXBvcnQge01hdEJ1dHRvbk1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2J1dHRvblwiO1xuaW1wb3J0IHtNYXRTbmFja0Jhck1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhclwiO1xuaW1wb3J0IHtNYXREaWFsb2dNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2dcIjtcbmltcG9ydCB7TWVzc2FnZURldGFpbHNDb21wb25lbnR9IGZyb20gXCIuL21lc3NhZ2UtZGV0YWlscy9tZXNzYWdlLWRldGFpbHMuY29tcG9uZW50XCI7XG5pbXBvcnQge0lhQXV0b2NvbXBsZXRlSW5wdXR9IGZyb20gXCIuL2lhLWF1dG9jb21wbGV0ZS1pbnB1dC9pYS1hdXRvY29tcGxldGUtaW5wdXRcIjtcbmltcG9ydCB7TWF0QXV0b2NvbXBsZXRlTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlXCI7XG5pbXBvcnQge01hdElucHV0TW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXRcIjtcbmltcG9ydCB7TWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lclwiO1xuaW1wb3J0IHtSZWFjdGl2ZUZvcm1zTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7SWFFbnRpdHlTZWxlY3RJbnB1dH0gZnJvbSAnLi9pYS1lbnRpdHktc2VsZWN0LWlucHV0L2lhLWVudGl0eS1zZWxlY3QtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIElhTXVsdGlwbGVFbnRpdHlTZWxlY3RJbnB1dFxufSBmcm9tICcuL2lhLW11bHRpcGxlLWVudGl0eS1zZWxlY3QtaW5wdXQvaWEtbXVsdGlwbGUtZW50aXR5LXNlbGVjdC1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHtNYXRDaGlwc01vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2NoaXBzXCI7XG5pbXBvcnQge01hdEljb25Nb2R1bGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9pY29uXCI7XG5cblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgSWFOb3RpZmljYXRpb25CYXJDb21wb25lbnQsXG4gICAgTWVzc2FnZURldGFpbHNDb21wb25lbnQsXG4gICAgSWFBdXRvY29tcGxldGVJbnB1dCxcbiAgICBJYUVudGl0eVNlbGVjdElucHV0LFxuICAgIElhTXVsdGlwbGVFbnRpdHlTZWxlY3RJbnB1dFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgSWFOb3RpZmljYXRpb25CYXJDb21wb25lbnQsXG4gICAgSWFBdXRvY29tcGxldGVJbnB1dCxcbiAgICBJYUVudGl0eVNlbGVjdElucHV0LFxuICAgIElhTXVsdGlwbGVFbnRpdHlTZWxlY3RJbnB1dFxuICBdLFxuICBlbnRyeUNvbXBvbmVudHM6IFtcbiAgICBNZXNzYWdlRGV0YWlsc0NvbXBvbmVudCxcbiAgICBJYUF1dG9jb21wbGV0ZUlucHV0LFxuICAgIElhRW50aXR5U2VsZWN0SW5wdXQsXG4gICAgSWFNdWx0aXBsZUVudGl0eVNlbGVjdElucHV0XG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTWF0VG9vbGJhck1vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0U25hY2tCYXJNb2R1bGUsXG4gICAgTWF0RGlhbG9nTW9kdWxlLFxuICAgIE1hdEF1dG9jb21wbGV0ZU1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUsXG4gICAgTWF0Q2hpcHNNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgSWFTaGFyZWRVSU1vZHVsZSB7XG59XG4iXX0=
@@ -12,9 +12,9 @@ export class MessageDetailsComponent {
12
12
  ngOnInit() {
13
13
  }
14
14
  }
15
- MessageDetailsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: MessageDetailsComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
16
- MessageDetailsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.2", type: MessageDetailsComponent, selector: "app-message-details", ngImport: i0, template: "<mat-dialog-content>\n\n <h2>{{errorMessage.title}}</h2>\n <p>{{errorMessage.message}}</p>\n\n\n</mat-dialog-content>\n<mat-dialog-actions align=\"end\">\n <button color=\"primary\" mat-dialog-close mat-raised-button>OK</button>\n</mat-dialog-actions>\n", styles: [""], dependencies: [{ kind: "component", type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }] });
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: MessageDetailsComponent, decorators: [{
15
+ MessageDetailsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: MessageDetailsComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
16
+ MessageDetailsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.3", type: MessageDetailsComponent, selector: "app-message-details", ngImport: i0, template: "<mat-dialog-content>\n\n <h2>{{errorMessage.title}}</h2>\n <p>{{errorMessage.message}}</p>\n\n\n</mat-dialog-content>\n<mat-dialog-actions align=\"end\">\n <button color=\"primary\" mat-dialog-close mat-raised-button>OK</button>\n</mat-dialog-actions>\n", styles: [""], dependencies: [{ kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }] });
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: MessageDetailsComponent, decorators: [{
18
18
  type: Component,
19
19
  args: [{ selector: 'app-message-details', template: "<mat-dialog-content>\n\n <h2>{{errorMessage.title}}</h2>\n <p>{{errorMessage.message}}</p>\n\n\n</mat-dialog-content>\n<mat-dialog-actions align=\"end\">\n <button color=\"primary\" mat-dialog-close mat-raised-button>OK</button>\n</mat-dialog-actions>\n" }]
20
20
  }], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
@@ -17,18 +17,18 @@ export class ProgressNotifierModule {
17
17
  };
18
18
  }
19
19
  }
20
- ProgressNotifierModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: ProgressNotifierModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
21
- ProgressNotifierModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.2", ngImport: i0, type: ProgressNotifierModule, declarations: [ProgressWindowComponent], imports: [CommonModule,
20
+ ProgressNotifierModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: ProgressNotifierModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
21
+ ProgressNotifierModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.3", ngImport: i0, type: ProgressNotifierModule, declarations: [ProgressWindowComponent], imports: [CommonModule,
22
22
  MatDialogModule,
23
23
  FlexLayoutModule,
24
24
  MatButtonModule,
25
25
  MatProgressBarModule] });
26
- ProgressNotifierModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: ProgressNotifierModule, imports: [CommonModule,
26
+ ProgressNotifierModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: ProgressNotifierModule, imports: [CommonModule,
27
27
  MatDialogModule,
28
28
  FlexLayoutModule,
29
29
  MatButtonModule,
30
30
  MatProgressBarModule] });
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: ProgressNotifierModule, decorators: [{
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: ProgressNotifierModule, decorators: [{
32
32
  type: NgModule,
33
33
  args: [{
34
34
  declarations: [ProgressWindowComponent],
@@ -21,9 +21,9 @@ export class ProgressWindowComponent {
21
21
  this.data.cancelOperation();
22
22
  }
23
23
  }
24
- ProgressWindowComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: ProgressWindowComponent, deps: [{ token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
25
- ProgressWindowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.2", type: ProgressWindowComponent, selector: "lib-progress-window", ngImport: i0, template: "<h1 mat-dialog-title>{{data.title}}</h1>\n<div mat-dialog-content>\n <div fxLayout=\"column\">\n <mat-progress-bar *ngIf=\"data.isDeterminate\" [value]=\"progressValue\" mode=\"determinate\"></mat-progress-bar>\n <mat-progress-bar *ngIf=\"!data.isDeterminate\" mode=\"indeterminate\"></mat-progress-bar>\n <p>{{statusText}}</p>\n </div>\n</div>\n<div fxLayoutAlign=\"end\" mat-dialog-actions>\n <button (click)=\"onCancelClick()\" *ngIf=\"data.isCancelOperationAvailable\" mat-button>Cancel</button>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i3.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i3.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "component", type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }] });
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: ProgressWindowComponent, decorators: [{
24
+ ProgressWindowComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: ProgressWindowComponent, deps: [{ token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
25
+ ProgressWindowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.3", type: ProgressWindowComponent, selector: "lib-progress-window", ngImport: i0, template: "<h1 mat-dialog-title>{{data.title}}</h1>\n<div mat-dialog-content>\n <div fxLayout=\"column\">\n <mat-progress-bar *ngIf=\"data.isDeterminate\" [value]=\"progressValue\" mode=\"determinate\"></mat-progress-bar>\n <mat-progress-bar *ngIf=\"!data.isDeterminate\" mode=\"indeterminate\"></mat-progress-bar>\n <p>{{statusText}}</p>\n </div>\n</div>\n<div fxLayoutAlign=\"end\" mat-dialog-actions>\n <button (click)=\"onCancelClick()\" *ngIf=\"data.isCancelOperationAvailable\" mat-button>Cancel</button>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i3.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i3.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }] });
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: ProgressWindowComponent, decorators: [{
27
27
  type: Component,
28
28
  args: [{ selector: 'lib-progress-window', template: "<h1 mat-dialog-title>{{data.title}}</h1>\n<div mat-dialog-content>\n <div fxLayout=\"column\">\n <mat-progress-bar *ngIf=\"data.isDeterminate\" [value]=\"progressValue\" mode=\"determinate\"></mat-progress-bar>\n <mat-progress-bar *ngIf=\"!data.isDeterminate\" mode=\"indeterminate\"></mat-progress-bar>\n <p>{{statusText}}</p>\n </div>\n</div>\n<div fxLayoutAlign=\"end\" mat-dialog-actions>\n <button (click)=\"onCancelClick()\" *ngIf=\"data.isCancelOperationAvailable\" mat-button>Cancel</button>\n</div>\n" }]
29
29
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
@@ -50,9 +50,9 @@ export class ProgressNotifierService {
50
50
  this.currentDialogRef.close();
51
51
  }
52
52
  }
53
- ProgressNotifierService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: ProgressNotifierService, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Injectable });
54
- ProgressNotifierService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: ProgressNotifierService });
55
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: ProgressNotifierService, decorators: [{
53
+ ProgressNotifierService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: ProgressNotifierService, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Injectable });
54
+ ProgressNotifierService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: ProgressNotifierService });
55
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: ProgressNotifierService, decorators: [{
56
56
  type: Injectable
57
57
  }], ctorParameters: function () { return [{ type: i1.MatDialog }]; } });
58
58
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3Mtbm90aWZpZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lc2htYWtlcnMvc2hhcmVkLXVpL3NyYy9saWIvcHJvZ3Jlc3Mtbm90aWZpZXIvc2VydmljZXMvcHJvZ3Jlc3Mtbm90aWZpZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFHckMsT0FBTyxFQUNMLHVCQUF1QixFQUd4QixNQUFNLDhDQUE4QyxDQUFDOzs7QUFHdEQsTUFBTSxPQUFPLHVCQUF1QjtJQUtsQyxZQUFvQixNQUFpQjtRQUFqQixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ25DLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLGVBQWUsQ0FBZ0IsSUFBSSxDQUFDLENBQUM7UUFDdEUsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDMUIsQ0FBQztJQUlELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSxVQUFVLENBQUMsS0FBSztRQUNsQixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztJQUMzQixDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQWEsRUFBRSxhQUFzQixFQUFFLDBCQUFtQztRQUU5RSxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUN4QixJQUFJLENBQUMseUJBQXlCLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUVyRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQW9FLHVCQUF1QixFQUFFO1lBQ25JLEtBQUssRUFBRSxNQUFNO1lBQ2IsUUFBUSxFQUFFLE1BQU07WUFDaEIsSUFBSSxFQUFzQjtnQkFDeEIsS0FBSyxFQUFFLEtBQUs7Z0JBQ1osYUFBYSxFQUFFLGFBQWE7Z0JBQzVCLFFBQVEsRUFBRSxJQUFJLENBQUMscUJBQXFCLENBQUMsWUFBWSxFQUFFO2dCQUNuRCwwQkFBMEIsRUFBRSwwQkFBMEI7Z0JBQ3RELGVBQWUsRUFBRSxHQUFHLEVBQUU7b0JBQ3BCLElBQUksQ0FBQywyQkFBMkIsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO29CQUMzRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztnQkFDekIsQ0FBQzthQUNGO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELHlCQUF5QixDQUFDLGVBQXVCLEVBQUUsV0FBbUIsRUFBRSxVQUFrQjtRQUV4RixNQUFNLGtCQUFrQixHQUFHLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQyxHQUFHLGVBQWUsQ0FBQztRQUVqRSxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFnQjtZQUM3QyxVQUFVLEVBQUUsVUFBVTtZQUN0QixhQUFhLEVBQUUsa0JBQWtCO1NBQ2xDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCwyQkFBMkIsQ0FBQyxVQUFrQjtRQUM1QyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFnQjtZQUM3QyxVQUFVLEVBQUUsVUFBVTtZQUN0QixhQUFhLEVBQUUsQ0FBQztTQUNqQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNoQyxDQUFDOztvSEE1RFUsdUJBQXVCO3dIQUF2Qix1QkFBdUI7MkZBQXZCLHVCQUF1QjtrQkFEbkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7UHJvZ3Jlc3NWYWx1ZX0gZnJvbSBcIi4uL3NoYXJlZC9wcm9ncmVzc1ZhbHVlXCI7XG5pbXBvcnQge01hdERpYWxvZywgTWF0RGlhbG9nUmVmfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nXCI7XG5pbXBvcnQge1xuICBQcm9ncmVzc1dpbmRvd0NvbXBvbmVudCxcbiAgUHJvZ3Jlc3NXaW5kb3dEYXRhLFxuICBQcm9ncmVzc1dpbmRvd1Jlc3VsdFxufSBmcm9tIFwiLi4vcHJvZ3Jlc3Mtd2luZG93L3Byb2dyZXNzLXdpbmRvdy5jb21wb25lbnRcIjtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFByb2dyZXNzTm90aWZpZXJTZXJ2aWNlIHtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9jdXJyZW50UHJvZ3Jlc3NWYWx1ZTogQmVoYXZpb3JTdWJqZWN0PFByb2dyZXNzVmFsdWU+O1xuICBwcml2YXRlIGN1cnJlbnREaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxQcm9ncmVzc1dpbmRvd0NvbXBvbmVudCwgUHJvZ3Jlc3NXaW5kb3dSZXN1bHQ+O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2cpIHtcbiAgICB0aGlzLl9jdXJyZW50UHJvZ3Jlc3NWYWx1ZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UHJvZ3Jlc3NWYWx1ZT4obnVsbCk7XG4gICAgdGhpcy5pc0NhbmNlbGVkID0gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIF9pc0NhbmNlbGVkOiBib29sZWFuO1xuXG4gIGdldCBpc0NhbmNlbGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9pc0NhbmNlbGVkO1xuICB9XG5cbiAgc2V0IGlzQ2FuY2VsZWQodmFsdWUpIHtcbiAgICB0aGlzLl9pc0NhbmNlbGVkID0gdmFsdWU7XG4gIH1cblxuICBzdGFydCh0aXRsZTogc3RyaW5nLCBpc0RldGVybWluYXRlOiBib29sZWFuLCBpc0NhbmNlbE9wZXJhdGlvbkF2YWlsYWJsZTogYm9vbGVhbikge1xuXG4gICAgdGhpcy5pc0NhbmNlbGVkID0gZmFsc2U7XG4gICAgdGhpcy5yZXBvcnRQcm9ncmVzc0RldGVybWluYXRlKDAsIDEwMCwgXCJXb3JraW5nLi4uXCIpO1xuXG4gICAgdGhpcy5jdXJyZW50RGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbjxQcm9ncmVzc1dpbmRvd0NvbXBvbmVudCwgUHJvZ3Jlc3NXaW5kb3dEYXRhLCBQcm9ncmVzc1dpbmRvd1Jlc3VsdD4oUHJvZ3Jlc3NXaW5kb3dDb21wb25lbnQsIHtcbiAgICAgIHdpZHRoOiAnNTB2dycsXG4gICAgICBtYXhXaWR0aDogJzUwdncnLFxuICAgICAgZGF0YTogPFByb2dyZXNzV2luZG93RGF0YT57XG4gICAgICAgIHRpdGxlOiB0aXRsZSxcbiAgICAgICAgaXNEZXRlcm1pbmF0ZTogaXNEZXRlcm1pbmF0ZSxcbiAgICAgICAgcHJvZ3Jlc3M6IHRoaXMuX2N1cnJlbnRQcm9ncmVzc1ZhbHVlLmFzT2JzZXJ2YWJsZSgpLFxuICAgICAgICBpc0NhbmNlbE9wZXJhdGlvbkF2YWlsYWJsZTogaXNDYW5jZWxPcGVyYXRpb25BdmFpbGFibGUsXG4gICAgICAgIGNhbmNlbE9wZXJhdGlvbjogKCkgPT4ge1xuICAgICAgICAgIHRoaXMucmVwb3J0UHJvZ3Jlc3NJbmRldGVybWluYXRlKFwiQ2FuY2VsaW5nIG9wZXJhdGlvbi4uLlwiKTtcbiAgICAgICAgICB0aGlzLmlzQ2FuY2VsZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICByZXBvcnRQcm9ncmVzc0RldGVybWluYXRlKHByb2dyZXNzQ3VycmVudDogbnVtYmVyLCBwcm9ncmVzc01heDogbnVtYmVyLCBzdGF0dXNUZXh0OiBzdHJpbmcpIHtcblxuICAgIGNvbnN0IHByb2dyZXNzUGVyY2VudGFnZSA9IChwcm9ncmVzc01heCAvIDEwMCkgKiBwcm9ncmVzc0N1cnJlbnQ7XG5cbiAgICB0aGlzLl9jdXJyZW50UHJvZ3Jlc3NWYWx1ZS5uZXh0KDxQcm9ncmVzc1ZhbHVlPntcbiAgICAgIHN0YXR1c1RleHQ6IHN0YXR1c1RleHQsXG4gICAgICBwcm9ncmVzc1ZhbHVlOiBwcm9ncmVzc1BlcmNlbnRhZ2VcbiAgICB9KTtcbiAgfVxuXG4gIHJlcG9ydFByb2dyZXNzSW5kZXRlcm1pbmF0ZShzdGF0dXNUZXh0OiBzdHJpbmcpIHtcbiAgICB0aGlzLl9jdXJyZW50UHJvZ3Jlc3NWYWx1ZS5uZXh0KDxQcm9ncmVzc1ZhbHVlPntcbiAgICAgIHN0YXR1c1RleHQ6IHN0YXR1c1RleHQsXG4gICAgICBwcm9ncmVzc1ZhbHVlOiAwXG4gICAgfSk7XG4gIH1cblxuICBjb21wbGV0ZSgpIHtcbiAgICB0aGlzLmN1cnJlbnREaWFsb2dSZWYuY2xvc2UoKTtcbiAgfVxufVxuIl19
@@ -5,6 +5,7 @@ export * from './lib/ia-shared-ui/ia-shared-ui.module';
5
5
  export * from './lib/ia-shared-ui/ia-notification-bar/ia-notification-bar.component';
6
6
  export * from './lib/ia-shared-ui/ia-autocomplete-input/ia-autocomplete-input';
7
7
  export * from './lib/ia-shared-ui/ia-entity-select-input/ia-entity-select-input.component';
8
+ export * from './lib/ia-shared-ui/ia-multiple-entity-select-input/ia-multiple-entity-select-input.component';
8
9
  export * from './lib/progress-notifier/progress-notifier.module';
9
10
  export * from './lib/progress-notifier/services/progress-notifier.service';
10
11
  export * from './lib/confirmation-dialog/confirmation-dialog.module';
@@ -12,4 +13,4 @@ export * from './lib/confirmation-dialog/services/confirmation.service';
12
13
  export * from './lib/confirmation-dialog/shared/confirmation';
13
14
  export * from './lib/shared/commonValidators';
14
15
  export * from './lib/shared/abstractDetailsComponent';
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21lc2htYWtlcnMvc2hhcmVkLXVpL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLHNFQUFzRSxDQUFDO0FBQ3JGLGNBQWMsZ0VBQWdFLENBQUM7QUFDL0UsY0FBYyw0RUFBNEUsQ0FBQztBQUUzRixjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsNERBQTRELENBQUM7QUFFM0UsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLHlEQUF5RCxDQUFDO0FBQ3hFLGNBQWMsK0NBQStDLENBQUM7QUFFOUQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLHVDQUF1QyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBzaGFyZWQtdWlcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9pYS1zaGFyZWQtdWkvaWEtc2hhcmVkLXVpLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pYS1zaGFyZWQtdWkvaWEtbm90aWZpY2F0aW9uLWJhci9pYS1ub3RpZmljYXRpb24tYmFyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pYS1zaGFyZWQtdWkvaWEtYXV0b2NvbXBsZXRlLWlucHV0L2lhLWF1dG9jb21wbGV0ZS1pbnB1dCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pYS1zaGFyZWQtdWkvaWEtZW50aXR5LXNlbGVjdC1pbnB1dC9pYS1lbnRpdHktc2VsZWN0LWlucHV0LmNvbXBvbmVudCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3Byb2dyZXNzLW5vdGlmaWVyL3Byb2dyZXNzLW5vdGlmaWVyLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wcm9ncmVzcy1ub3RpZmllci9zZXJ2aWNlcy9wcm9ncmVzcy1ub3RpZmllci5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29uZmlybWF0aW9uLWRpYWxvZy9jb25maXJtYXRpb24tZGlhbG9nLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb25maXJtYXRpb24tZGlhbG9nL3NlcnZpY2VzL2NvbmZpcm1hdGlvbi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbmZpcm1hdGlvbi1kaWFsb2cvc2hhcmVkL2NvbmZpcm1hdGlvbic7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9jb21tb25WYWxpZGF0b3JzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9hYnN0cmFjdERldGFpbHNDb21wb25lbnQnXG4iXX0=
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21lc2htYWtlcnMvc2hhcmVkLXVpL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLHNFQUFzRSxDQUFDO0FBQ3JGLGNBQWMsZ0VBQWdFLENBQUM7QUFDL0UsY0FBYyw0RUFBNEUsQ0FBQztBQUMzRixjQUFjLDhGQUE4RixDQUFDO0FBRTdHLGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyw0REFBNEQsQ0FBQztBQUUzRSxjQUFjLHNEQUFzRCxDQUFDO0FBQ3JFLGNBQWMseURBQXlELENBQUM7QUFDeEUsY0FBYywrQ0FBK0MsQ0FBQztBQUU5RCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsdUNBQXVDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIHNoYXJlZC11aVxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2lhLXNoYXJlZC11aS9pYS1zaGFyZWQtdWkubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2lhLXNoYXJlZC11aS9pYS1ub3RpZmljYXRpb24tYmFyL2lhLW5vdGlmaWNhdGlvbi1iYXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2lhLXNoYXJlZC11aS9pYS1hdXRvY29tcGxldGUtaW5wdXQvaWEtYXV0b2NvbXBsZXRlLWlucHV0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2lhLXNoYXJlZC11aS9pYS1lbnRpdHktc2VsZWN0LWlucHV0L2lhLWVudGl0eS1zZWxlY3QtaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2lhLXNoYXJlZC11aS9pYS1tdWx0aXBsZS1lbnRpdHktc2VsZWN0LWlucHV0L2lhLW11bHRpcGxlLWVudGl0eS1zZWxlY3QtaW5wdXQuY29tcG9uZW50JztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvcHJvZ3Jlc3Mtbm90aWZpZXIvcHJvZ3Jlc3Mtbm90aWZpZXIubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Byb2dyZXNzLW5vdGlmaWVyL3NlcnZpY2VzL3Byb2dyZXNzLW5vdGlmaWVyLnNlcnZpY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb25maXJtYXRpb24tZGlhbG9nL2NvbmZpcm1hdGlvbi1kaWFsb2cubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbmZpcm1hdGlvbi1kaWFsb2cvc2VydmljZXMvY29uZmlybWF0aW9uLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29uZmlybWF0aW9uLWRpYWxvZy9zaGFyZWQvY29uZmlybWF0aW9uJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2NvbW1vblZhbGlkYXRvcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2Fic3RyYWN0RGV0YWlsc0NvbXBvbmVudCdcbiJdfQ==