@meshmakers/shared-ui 0.0.0-0 → 0.0.2304-23001
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -7
- package/esm2020/lib/confirmation-dialog/confirmation-dialog.module.mjs +4 -4
- package/esm2020/lib/confirmation-dialog/confirmation-window/confirmation-window.component.mjs +8 -4
- package/esm2020/lib/confirmation-dialog/services/confirmation.service.mjs +7 -7
- package/esm2020/lib/ia-shared-ui/ia-autocomplete-input/ia-autocomplete-input.mjs +33 -20
- package/esm2020/lib/ia-shared-ui/ia-entity-select-input/ia-entity-select-input.component.mjs +30 -18
- package/esm2020/lib/ia-shared-ui/ia-multiple-entity-select-input/ia-multiple-entity-select-input.component.mjs +300 -0
- package/esm2020/lib/ia-shared-ui/ia-notification-bar/ia-notification-bar.component.mjs +5 -4
- package/esm2020/lib/ia-shared-ui/ia-shared-ui.module.mjs +31 -9
- package/esm2020/lib/ia-shared-ui/message-details/message-details.component.mjs +3 -3
- package/esm2020/lib/progress-notifier/progress-notifier.module.mjs +4 -4
- package/esm2020/lib/progress-notifier/progress-window/progress-window.component.mjs +5 -4
- package/esm2020/lib/progress-notifier/services/progress-notifier.service.mjs +7 -6
- package/esm2020/lib/progress-notifier/shared/progressValue.mjs +5 -1
- package/esm2020/lib/shared/abstractDetailsComponent.mjs +8 -7
- package/esm2020/lib/shared/commonValidators.mjs +4 -3
- package/esm2020/public-api.mjs +2 -1
- package/fesm2015/meshmakers-shared-ui.mjs +438 -84
- package/fesm2015/meshmakers-shared-ui.mjs.map +1 -1
- package/fesm2020/meshmakers-shared-ui.mjs +424 -83
- package/fesm2020/meshmakers-shared-ui.mjs.map +1 -1
- package/lib/confirmation-dialog/confirmation-window/confirmation-window.component.d.ts +5 -5
- package/lib/confirmation-dialog/services/confirmation.service.d.ts +1 -1
- package/lib/ia-shared-ui/ia-autocomplete-input/ia-autocomplete-input.d.ts +4 -4
- package/lib/ia-shared-ui/ia-entity-select-input/ia-entity-select-input.component.d.ts +5 -5
- package/lib/ia-shared-ui/ia-multiple-entity-select-input/ia-multiple-entity-select-input.component.d.ts +73 -0
- package/lib/ia-shared-ui/ia-notification-bar/ia-notification-bar.component.d.ts +2 -2
- package/lib/ia-shared-ui/ia-shared-ui.module.d.ts +13 -10
- package/lib/ia-shared-ui/message-details/message-details.component.d.ts +1 -1
- package/lib/progress-notifier/progress-window/progress-window.component.d.ts +2 -2
- package/lib/progress-notifier/shared/progressValue.d.ts +2 -1
- package/lib/shared/abstractDetailsComponent.d.ts +5 -5
- package/package.json +8 -4
- package/public-api.d.ts +1 -0
|
@@ -16,7 +16,7 @@ import * as i7 from '@angular/forms';
|
|
|
16
16
|
import { FormControl, NgControl, NG_VALUE_ACCESSOR, NG_VALIDATORS, ReactiveFormsModule, Validators } from '@angular/forms';
|
|
17
17
|
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
18
18
|
import { debounceTime, filter, tap, map, switchMap } from 'rxjs/operators';
|
|
19
|
-
import { Subject, BehaviorSubject } from 'rxjs';
|
|
19
|
+
import { Subject, of, BehaviorSubject } from 'rxjs';
|
|
20
20
|
import * as i1$2 from '@angular/cdk/a11y';
|
|
21
21
|
import * as i3$1 from '@angular/material/autocomplete';
|
|
22
22
|
import { MatAutocompleteModule } from '@angular/material/autocomplete';
|
|
@@ -25,6 +25,11 @@ import * as i5 from '@angular/material/input';
|
|
|
25
25
|
import { MatInputModule } from '@angular/material/input';
|
|
26
26
|
import * as i6 from '@angular/material/progress-spinner';
|
|
27
27
|
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
28
|
+
import { ENTER, COMMA } from '@angular/cdk/keycodes';
|
|
29
|
+
import * as i7$1 from '@angular/material/chips';
|
|
30
|
+
import { MatChipsModule } from '@angular/material/chips';
|
|
31
|
+
import * as i8 from '@angular/material/icon';
|
|
32
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
28
33
|
import * as i3$2 from '@angular/flex-layout/flex';
|
|
29
34
|
import * as i5$1 from '@angular/material/progress-bar';
|
|
30
35
|
import { MatProgressBarModule } from '@angular/material/progress-bar';
|
|
@@ -39,9 +44,9 @@ class MessageDetailsComponent {
|
|
|
39
44
|
ngOnInit() {
|
|
40
45
|
}
|
|
41
46
|
}
|
|
42
|
-
MessageDetailsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
43
|
-
MessageDetailsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
44
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
47
|
+
MessageDetailsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: MessageDetailsComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
48
|
+
MessageDetailsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", 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: 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: "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"] }] });
|
|
49
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: MessageDetailsComponent, decorators: [{
|
|
45
50
|
type: Component,
|
|
46
51
|
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" }]
|
|
47
52
|
}], ctorParameters: function () {
|
|
@@ -55,6 +60,7 @@ class IaNotificationBarComponent {
|
|
|
55
60
|
constructor(messageService, dialog) {
|
|
56
61
|
this.messageService = messageService;
|
|
57
62
|
this.dialog = dialog;
|
|
63
|
+
this.errorMessage = null;
|
|
58
64
|
}
|
|
59
65
|
ngOnInit() {
|
|
60
66
|
this.messageService.getLatestErrorMessage().subscribe(value => {
|
|
@@ -72,9 +78,9 @@ class IaNotificationBarComponent {
|
|
|
72
78
|
});
|
|
73
79
|
}
|
|
74
80
|
}
|
|
75
|
-
IaNotificationBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
76
|
-
IaNotificationBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
77
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
81
|
+
IaNotificationBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: IaNotificationBarComponent, deps: [{ token: i1$1.MessageService }, { token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
|
|
82
|
+
IaNotificationBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", 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"] }] });
|
|
83
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: IaNotificationBarComponent, decorators: [{
|
|
78
84
|
type: Component,
|
|
79
85
|
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"] }]
|
|
80
86
|
}], ctorParameters: function () { return [{ type: i1$1.MessageService }, { type: i1.MatDialog }]; } });
|
|
@@ -95,6 +101,13 @@ class IaAutocompleteInput {
|
|
|
95
101
|
};
|
|
96
102
|
this._onTouched = () => {
|
|
97
103
|
};
|
|
104
|
+
this.ngControl = null;
|
|
105
|
+
this.errorState = false;
|
|
106
|
+
this._selectedString = null;
|
|
107
|
+
this.inputField = null;
|
|
108
|
+
this._dataSource = null;
|
|
109
|
+
this._placeholder = "";
|
|
110
|
+
this._prefix = "";
|
|
98
111
|
this.searchFormControl = new FormControl();
|
|
99
112
|
this.isLoading = false;
|
|
100
113
|
this._disabled = false;
|
|
@@ -130,7 +143,9 @@ class IaAutocompleteInput {
|
|
|
130
143
|
}
|
|
131
144
|
set required(req) {
|
|
132
145
|
this._required = coerceBooleanProperty(req);
|
|
133
|
-
this.inputField
|
|
146
|
+
if (this.inputField) {
|
|
147
|
+
this.inputField.required = this._required;
|
|
148
|
+
}
|
|
134
149
|
this.stateChanges.next();
|
|
135
150
|
}
|
|
136
151
|
get prefix() {
|
|
@@ -155,7 +170,7 @@ class IaAutocompleteInput {
|
|
|
155
170
|
}
|
|
156
171
|
get empty() {
|
|
157
172
|
let n = this.searchFormControl.value;
|
|
158
|
-
return
|
|
173
|
+
return !n;
|
|
159
174
|
}
|
|
160
175
|
get shouldLabelFloat() {
|
|
161
176
|
return this.focused || !this.empty;
|
|
@@ -170,14 +185,16 @@ class IaAutocompleteInput {
|
|
|
170
185
|
if (this._prefix) {
|
|
171
186
|
this.searchFormControl
|
|
172
187
|
.valueChanges
|
|
173
|
-
.pipe(debounceTime(300), filter(value => typeof value === 'string'), filter(value => value.startsWith(this._prefix)), tap(() => this.value = null), tap(() => this.isLoading = true), map(value => this._dataSource.onPreprocessSearchString(value)), switchMap(value => this._dataSource.onFilter(value)))
|
|
188
|
+
.pipe(debounceTime(300), filter(value => typeof value === 'string'), filter(value => value.startsWith(this._prefix)), tap(() => this.value = null), tap(() => this.isLoading = true), map(value => { var _a, _b; return (_b = (_a = this._dataSource) === null || _a === void 0 ? void 0 : _a.onPreprocessSearchString(value)) !== null && _b !== void 0 ? _b : ""; }), switchMap(value => { var _a, _b; return (_b = (_a = this._dataSource) === null || _a === void 0 ? void 0 : _a.onFilter(value)) !== null && _b !== void 0 ? _b : of(null); }))
|
|
174
189
|
.subscribe(resultSet => {
|
|
175
|
-
if (resultSet.list
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
190
|
+
if (resultSet && resultSet.list) {
|
|
191
|
+
if (resultSet.list.length === 1) {
|
|
192
|
+
this.value = resultSet.list[0];
|
|
193
|
+
}
|
|
194
|
+
else {
|
|
195
|
+
this.filteredStrings = resultSet.list;
|
|
196
|
+
this.searchFormControl.patchValue(resultSet.searchTerm, { emitEvent: false });
|
|
197
|
+
}
|
|
181
198
|
}
|
|
182
199
|
this.isLoading = false;
|
|
183
200
|
});
|
|
@@ -185,12 +202,14 @@ class IaAutocompleteInput {
|
|
|
185
202
|
// This is the search functionality when search by human.
|
|
186
203
|
this.searchFormControl
|
|
187
204
|
.valueChanges
|
|
188
|
-
.pipe(debounceTime(300), tap(
|
|
205
|
+
.pipe(debounceTime(300), tap(_ => {
|
|
189
206
|
this.filteredStrings = [];
|
|
190
|
-
}), filter(value => value != null && value.toString().length >= 1), tap(() => this.isLoading = true), map(value => this._dataSource.onPreprocessSearchString(value)), tap(value => this.value = value), switchMap(value => this._dataSource.onFilter(value)))
|
|
207
|
+
}), filter(value => value != null && value.toString().length >= 1), tap(() => this.isLoading = true), map(value => { var _a; return (_a = this._dataSource) === null || _a === void 0 ? void 0 : _a.onPreprocessSearchString(value); }), tap(value => this.value = value), switchMap(value => { var _a, _b; return (_b = (_a = this._dataSource) === null || _a === void 0 ? void 0 : _a.onFilter(value)) !== null && _b !== void 0 ? _b : of(null); }))
|
|
191
208
|
.subscribe(resultSet => {
|
|
192
|
-
|
|
193
|
-
|
|
209
|
+
if (resultSet && resultSet.list) {
|
|
210
|
+
this.filteredStrings = resultSet.list;
|
|
211
|
+
this.searchFormControl.patchValue(resultSet.searchTerm, { emitEvent: false });
|
|
212
|
+
}
|
|
194
213
|
this.isLoading = false;
|
|
195
214
|
});
|
|
196
215
|
}
|
|
@@ -199,8 +218,9 @@ class IaAutocompleteInput {
|
|
|
199
218
|
this.fm.stopMonitoring(this.elRef.nativeElement);
|
|
200
219
|
}
|
|
201
220
|
ngDoCheck() {
|
|
221
|
+
var _a;
|
|
202
222
|
if (this.ngControl) {
|
|
203
|
-
this.errorState = this.ngControl.invalid && this.ngControl.touched;
|
|
223
|
+
this.errorState = (_a = (this.ngControl.invalid && this.ngControl.touched)) !== null && _a !== void 0 ? _a : false;
|
|
204
224
|
this.stateChanges.next();
|
|
205
225
|
}
|
|
206
226
|
}
|
|
@@ -268,8 +288,8 @@ class IaAutocompleteInput {
|
|
|
268
288
|
}
|
|
269
289
|
}
|
|
270
290
|
IaAutocompleteInput.nextId = 0;
|
|
271
|
-
IaAutocompleteInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
272
|
-
IaAutocompleteInput.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
291
|
+
IaAutocompleteInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: IaAutocompleteInput, deps: [{ token: i0.ElementRef }, { token: i0.Injector }, { token: i1$2.FocusMonitor }], target: i0.ɵɵFactoryTarget.Component });
|
|
292
|
+
IaAutocompleteInput.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: IaAutocompleteInput, selector: "ia-autocomplete", inputs: { dataSource: "dataSource", disabled: "disabled", placeholder: "placeholder", required: "required", prefix: "prefix" }, host: { properties: { "id": "this.id", "attr.aria-describedby": "this.describedBy", "class.floating": "this.shouldLabelFloat" } }, providers: [
|
|
273
293
|
{
|
|
274
294
|
provide: NG_VALUE_ACCESSOR,
|
|
275
295
|
useExisting: forwardRef(() => IaAutocompleteInput),
|
|
@@ -284,8 +304,8 @@ IaAutocompleteInput.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ve
|
|
|
284
304
|
useExisting: forwardRef(() => IaAutocompleteInput),
|
|
285
305
|
multi: true
|
|
286
306
|
}
|
|
287
|
-
], viewQueries: [{ propertyName: "inputField", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "<input #input (blur)=\"onTouched()\" (focusout)=\"onFocusOut()\" [formControl]=\"searchFormControl\" [matAutocomplete]=\"auto\"\n [placeholder]=\"placeholder\" matInput>\n<mat-autocomplete #auto=\"matAutocomplete\"\n (closed)=\"onAutoCompleteClosed()\" (optionActivated)=\"onOptionActivated($event)\"\n (optionSelected)=\"onOptionSelected($event)\">\n <mat-option *ngIf=\"isLoading\" class=\"is-loading\">\n <mat-spinner diameter=\"50\"></mat-spinner>\n </mat-option>\n <ng-container *ngIf=\"!isLoading\">\n <mat-option *ngFor=\"let str of filteredStrings\" [value]=\"str\">\n {{str}}\n </mat-option>\n </ng-container>\n</mat-autocomplete>\n", styles: ["span{opacity:0;transition:opacity .2s}:host.floating span{opacity:1}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3$1.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { kind: "
|
|
288
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
307
|
+
], viewQueries: [{ propertyName: "inputField", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "<input #input (blur)=\"onTouched()\" (focusout)=\"onFocusOut()\" [formControl]=\"searchFormControl\" [matAutocomplete]=\"auto\"\n [placeholder]=\"placeholder\" matInput>\n<mat-autocomplete #auto=\"matAutocomplete\"\n (closed)=\"onAutoCompleteClosed()\" (optionActivated)=\"onOptionActivated($event)\"\n (optionSelected)=\"onOptionSelected($event)\">\n <mat-option *ngIf=\"isLoading\" class=\"is-loading\">\n <mat-spinner diameter=\"50\"></mat-spinner>\n </mat-option>\n <ng-container *ngIf=\"!isLoading\">\n <mat-option *ngFor=\"let str of filteredStrings\" [value]=\"str\">\n {{str}}\n </mat-option>\n </ng-container>\n</mat-autocomplete>\n", styles: ["span{opacity:0;transition:opacity .2s}:host.floating span{opacity:1}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3$1.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple", "hideSingleSelectionIndicator"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i4$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i3$1.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: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
|
|
308
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: IaAutocompleteInput, decorators: [{
|
|
289
309
|
type: Component,
|
|
290
310
|
args: [{ selector: 'ia-autocomplete', host: {
|
|
291
311
|
'[id]': 'id',
|
|
@@ -345,6 +365,12 @@ class IaEntitySelectInput {
|
|
|
345
365
|
};
|
|
346
366
|
this._onTouched = () => {
|
|
347
367
|
};
|
|
368
|
+
this.ngControl = null;
|
|
369
|
+
this.errorState = false;
|
|
370
|
+
this.inputField = null;
|
|
371
|
+
this._dataSource = null;
|
|
372
|
+
this._placeholder = "";
|
|
373
|
+
this._prefix = "";
|
|
348
374
|
this.searchFormControl = new FormControl();
|
|
349
375
|
this.isLoading = false;
|
|
350
376
|
this._disabled = false;
|
|
@@ -380,7 +406,9 @@ class IaEntitySelectInput {
|
|
|
380
406
|
}
|
|
381
407
|
set required(req) {
|
|
382
408
|
this._required = coerceBooleanProperty(req);
|
|
383
|
-
this.inputField
|
|
409
|
+
if (this.inputField) {
|
|
410
|
+
this.inputField.required = this._required;
|
|
411
|
+
}
|
|
384
412
|
this.stateChanges.next();
|
|
385
413
|
}
|
|
386
414
|
get prefix() {
|
|
@@ -402,7 +430,7 @@ class IaEntitySelectInput {
|
|
|
402
430
|
}
|
|
403
431
|
get empty() {
|
|
404
432
|
let n = this.searchFormControl.value;
|
|
405
|
-
return
|
|
433
|
+
return !n;
|
|
406
434
|
}
|
|
407
435
|
get shouldLabelFloat() {
|
|
408
436
|
return this.focused || !this.empty;
|
|
@@ -417,13 +445,15 @@ class IaEntitySelectInput {
|
|
|
417
445
|
if (this._prefix) {
|
|
418
446
|
this.searchFormControl
|
|
419
447
|
.valueChanges
|
|
420
|
-
.pipe(debounceTime(300), filter(value => typeof value === 'string'), filter(value => value.startsWith(this._prefix)), tap(() => this.value = null), tap(() => this.isLoading = true), switchMap(value => this._dataSource.onFilter(value.replace(this._prefix, "").trim())))
|
|
448
|
+
.pipe(debounceTime(300), filter(value => typeof value === 'string'), filter(value => value.startsWith(this._prefix)), tap(() => this.value = null), tap(() => this.isLoading = true), switchMap(value => { var _a, _b; return (_b = (_a = this._dataSource) === null || _a === void 0 ? void 0 : _a.onFilter(value.replace(this._prefix, "").trim())) !== null && _b !== void 0 ? _b : of(null); }))
|
|
421
449
|
.subscribe(resultSet => {
|
|
422
|
-
if (resultSet.list
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
450
|
+
if (resultSet && resultSet.list) {
|
|
451
|
+
if (resultSet.list.length === 1) {
|
|
452
|
+
this.value = resultSet.list[0];
|
|
453
|
+
}
|
|
454
|
+
else {
|
|
455
|
+
this.filteredEntities = resultSet.list;
|
|
456
|
+
}
|
|
427
457
|
}
|
|
428
458
|
this.isLoading = false;
|
|
429
459
|
});
|
|
@@ -431,9 +461,11 @@ class IaEntitySelectInput {
|
|
|
431
461
|
// This is the search functionality when search by human.
|
|
432
462
|
this.searchFormControl
|
|
433
463
|
.valueChanges
|
|
434
|
-
.pipe(debounceTime(300), tap(() => this.filteredEntities = []), filter(value => typeof value === 'string'), tap(() => this.setValue(null)), filter(value => value.toString().length >= 3), tap(() => this.isLoading = true), switchMap(value => this._dataSource.onFilter(value)))
|
|
464
|
+
.pipe(debounceTime(300), tap(() => this.filteredEntities = []), filter(value => typeof value === 'string'), tap(() => this.setValue(null)), filter(value => value.toString().length >= 3), tap(() => this.isLoading = true), switchMap(value => { var _a, _b; return (_b = (_a = this._dataSource) === null || _a === void 0 ? void 0 : _a.onFilter(value)) !== null && _b !== void 0 ? _b : of(null); }))
|
|
435
465
|
.subscribe(resultSet => {
|
|
436
|
-
|
|
466
|
+
if (resultSet && resultSet.list) {
|
|
467
|
+
this.filteredEntities = resultSet.list;
|
|
468
|
+
}
|
|
437
469
|
this.isLoading = false;
|
|
438
470
|
});
|
|
439
471
|
}
|
|
@@ -442,8 +474,9 @@ class IaEntitySelectInput {
|
|
|
442
474
|
this.fm.stopMonitoring(this.elRef.nativeElement);
|
|
443
475
|
}
|
|
444
476
|
ngDoCheck() {
|
|
477
|
+
var _a;
|
|
445
478
|
if (this.ngControl) {
|
|
446
|
-
this.errorState = this.ngControl.invalid && this.ngControl.touched;
|
|
479
|
+
this.errorState = (_a = (this.ngControl.invalid && this.ngControl.touched)) !== null && _a !== void 0 ? _a : false;
|
|
447
480
|
this.stateChanges.next();
|
|
448
481
|
}
|
|
449
482
|
}
|
|
@@ -519,8 +552,8 @@ class IaEntitySelectInput {
|
|
|
519
552
|
}
|
|
520
553
|
}
|
|
521
554
|
IaEntitySelectInput.nextId = 0;
|
|
522
|
-
IaEntitySelectInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
523
|
-
IaEntitySelectInput.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
555
|
+
IaEntitySelectInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: IaEntitySelectInput, deps: [{ token: i0.ElementRef }, { token: i0.Injector }, { token: i1$2.FocusMonitor }], target: i0.ɵɵFactoryTarget.Component });
|
|
556
|
+
IaEntitySelectInput.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: IaEntitySelectInput, selector: "ia-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: [
|
|
524
557
|
{
|
|
525
558
|
provide: NG_VALUE_ACCESSOR,
|
|
526
559
|
useExisting: forwardRef(() => IaEntitySelectInput),
|
|
@@ -535,8 +568,8 @@ IaEntitySelectInput.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ve
|
|
|
535
568
|
useExisting: forwardRef(() => IaEntitySelectInput),
|
|
536
569
|
multi: true
|
|
537
570
|
}
|
|
538
|
-
], viewQueries: [{ propertyName: "inputField", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "<input #input (blur)=\"onTouched()\" (focusout)=\"onFocusOut()\" [formControl]=\"searchFormControl\" [matAutocomplete]=\"auto\"\n [placeholder]=\"placeholder\" matInput>\n<mat-autocomplete #auto=\"matAutocomplete\" (closed)=\"onEntityClosed()\"\n (optionActivated)=\"onEntityActivated($event)\" (optionSelected)=\"onEntitySelected($event)\"\n [displayWith]=\"dataSource
|
|
539
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
571
|
+
], viewQueries: [{ propertyName: "inputField", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "<input #input (blur)=\"onTouched()\" (focusout)=\"onFocusOut()\" [formControl]=\"searchFormControl\" [matAutocomplete]=\"auto\"\n [placeholder]=\"placeholder\" matInput>\n<mat-autocomplete #auto=\"matAutocomplete\" (closed)=\"onEntityClosed()\"\n (optionActivated)=\"onEntityActivated($event)\" (optionSelected)=\"onEntitySelected($event)\"\n [displayWith]=\"dataSource?.onDisplayEntity ?? null\">\n <mat-option *ngIf=\"isLoading\" class=\"is-loading\">\n <mat-spinner diameter=\"50\"></mat-spinner>\n </mat-option>\n <ng-container *ngIf=\"!isLoading\">\n <mat-option *ngFor=\"let entity of filteredEntities\" [value]=\"entity\">\n {{dataSource?.onDisplayEntity(entity) ?? null}}\n </mat-option>\n </ng-container>\n</mat-autocomplete>\n", styles: ["span{opacity:0;transition:opacity .2s}:host.floating span{opacity:1}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3$1.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple", "hideSingleSelectionIndicator"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i4$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i3$1.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: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
|
|
572
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: IaEntitySelectInput, decorators: [{
|
|
540
573
|
type: Component,
|
|
541
574
|
args: [{ selector: 'ia-entity-select', host: {
|
|
542
575
|
'[id]': 'id',
|
|
@@ -556,7 +589,294 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImpor
|
|
|
556
589
|
useExisting: forwardRef(() => IaEntitySelectInput),
|
|
557
590
|
multi: true
|
|
558
591
|
}
|
|
559
|
-
], template: "<input #input (blur)=\"onTouched()\" (focusout)=\"onFocusOut()\" [formControl]=\"searchFormControl\" [matAutocomplete]=\"auto\"\n [placeholder]=\"placeholder\" matInput>\n<mat-autocomplete #auto=\"matAutocomplete\" (closed)=\"onEntityClosed()\"\n (optionActivated)=\"onEntityActivated($event)\" (optionSelected)=\"onEntitySelected($event)\"\n [displayWith]=\"dataSource
|
|
592
|
+
], template: "<input #input (blur)=\"onTouched()\" (focusout)=\"onFocusOut()\" [formControl]=\"searchFormControl\" [matAutocomplete]=\"auto\"\n [placeholder]=\"placeholder\" matInput>\n<mat-autocomplete #auto=\"matAutocomplete\" (closed)=\"onEntityClosed()\"\n (optionActivated)=\"onEntityActivated($event)\" (optionSelected)=\"onEntitySelected($event)\"\n [displayWith]=\"dataSource?.onDisplayEntity ?? null\">\n <mat-option *ngIf=\"isLoading\" class=\"is-loading\">\n <mat-spinner diameter=\"50\"></mat-spinner>\n </mat-option>\n <ng-container *ngIf=\"!isLoading\">\n <mat-option *ngFor=\"let entity of filteredEntities\" [value]=\"entity\">\n {{dataSource?.onDisplayEntity(entity) ?? null}}\n </mat-option>\n </ng-container>\n</mat-autocomplete>\n", styles: ["span{opacity:0;transition:opacity .2s}:host.floating span{opacity:1}\n"] }]
|
|
593
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Injector }, { type: i1$2.FocusMonitor }]; }, propDecorators: { id: [{
|
|
594
|
+
type: HostBinding
|
|
595
|
+
}], inputField: [{
|
|
596
|
+
type: ViewChild,
|
|
597
|
+
args: ['input']
|
|
598
|
+
}], describedBy: [{
|
|
599
|
+
type: HostBinding,
|
|
600
|
+
args: ['attr.aria-describedby']
|
|
601
|
+
}], dataSource: [{
|
|
602
|
+
type: Input
|
|
603
|
+
}], disabled: [{
|
|
604
|
+
type: Input
|
|
605
|
+
}], placeholder: [{
|
|
606
|
+
type: Input
|
|
607
|
+
}], required: [{
|
|
608
|
+
type: Input
|
|
609
|
+
}], prefix: [{
|
|
610
|
+
type: Input
|
|
611
|
+
}], shouldLabelFloat: [{
|
|
612
|
+
type: HostBinding,
|
|
613
|
+
args: ['class.floating']
|
|
614
|
+
}] } });
|
|
615
|
+
|
|
616
|
+
class IaMultipleEntitySelectInput {
|
|
617
|
+
constructor(elRef, injector, fm) {
|
|
618
|
+
this.elRef = elRef;
|
|
619
|
+
this.injector = injector;
|
|
620
|
+
this.fm = fm;
|
|
621
|
+
this.filteredEntities = [];
|
|
622
|
+
this.stateChanges = new Subject();
|
|
623
|
+
this.id = `ia-multiple-entity-select-${IaMultipleEntitySelectInput.nextId++}`;
|
|
624
|
+
this.valuesChange = new EventEmitter();
|
|
625
|
+
this.describedBy = '';
|
|
626
|
+
this.separatorKeysCodes = [ENTER, COMMA];
|
|
627
|
+
this._disabled = false;
|
|
628
|
+
this._required = false;
|
|
629
|
+
this._propagateChange = (_) => {
|
|
630
|
+
};
|
|
631
|
+
this._onTouched = () => {
|
|
632
|
+
};
|
|
633
|
+
this.ngControl = null;
|
|
634
|
+
this.errorState = false;
|
|
635
|
+
this.inputField = null;
|
|
636
|
+
this._dataSource = null;
|
|
637
|
+
this._placeholder = "";
|
|
638
|
+
this._prefix = "";
|
|
639
|
+
this._selectedEntities = null;
|
|
640
|
+
this.valuesFormControl = new FormControl();
|
|
641
|
+
this.searchFormControl = new FormControl();
|
|
642
|
+
this.isLoading = false;
|
|
643
|
+
this._disabled = false;
|
|
644
|
+
this.focused = false;
|
|
645
|
+
fm.monitor(elRef.nativeElement, true).subscribe(origin => {
|
|
646
|
+
this.focused = !!origin;
|
|
647
|
+
this.stateChanges.next();
|
|
648
|
+
});
|
|
649
|
+
}
|
|
650
|
+
get dataSource() {
|
|
651
|
+
return this._dataSource;
|
|
652
|
+
}
|
|
653
|
+
set dataSource(value) {
|
|
654
|
+
this._dataSource = value;
|
|
655
|
+
}
|
|
656
|
+
get disabled() {
|
|
657
|
+
return this._disabled;
|
|
658
|
+
}
|
|
659
|
+
set disabled(dis) {
|
|
660
|
+
this._disabled = coerceBooleanProperty(dis);
|
|
661
|
+
this._disabled ? this.searchFormControl.disable() : this.searchFormControl.enable();
|
|
662
|
+
this.stateChanges.next();
|
|
663
|
+
}
|
|
664
|
+
get placeholder() {
|
|
665
|
+
return this._placeholder;
|
|
666
|
+
}
|
|
667
|
+
set placeholder(plh) {
|
|
668
|
+
this._placeholder = plh;
|
|
669
|
+
this.stateChanges.next();
|
|
670
|
+
}
|
|
671
|
+
get required() {
|
|
672
|
+
return this._required;
|
|
673
|
+
}
|
|
674
|
+
set required(req) {
|
|
675
|
+
this._required = coerceBooleanProperty(req);
|
|
676
|
+
if (this.inputField) {
|
|
677
|
+
this.inputField.required = this._required;
|
|
678
|
+
}
|
|
679
|
+
this.stateChanges.next();
|
|
680
|
+
}
|
|
681
|
+
get prefix() {
|
|
682
|
+
return this._prefix;
|
|
683
|
+
}
|
|
684
|
+
set prefix(value) {
|
|
685
|
+
if (value !== this._prefix) {
|
|
686
|
+
this._prefix = value;
|
|
687
|
+
}
|
|
688
|
+
}
|
|
689
|
+
get value() {
|
|
690
|
+
return this._selectedEntities;
|
|
691
|
+
}
|
|
692
|
+
set value(value) {
|
|
693
|
+
if (value !== this._selectedEntities) {
|
|
694
|
+
this.valuesFormControl.setValue(value);
|
|
695
|
+
this.setValue(value);
|
|
696
|
+
}
|
|
697
|
+
}
|
|
698
|
+
get empty() {
|
|
699
|
+
let n = this.valuesFormControl.value;
|
|
700
|
+
return !n;
|
|
701
|
+
}
|
|
702
|
+
get shouldLabelFloat() {
|
|
703
|
+
return this.focused || !this.empty;
|
|
704
|
+
}
|
|
705
|
+
ngOnInit() {
|
|
706
|
+
this.ngControl = this.injector.get(NgControl, null);
|
|
707
|
+
if (this.ngControl != null) {
|
|
708
|
+
this.ngControl.valueAccessor = this;
|
|
709
|
+
}
|
|
710
|
+
// If prefix defined, usually this is used for a code scanner.
|
|
711
|
+
// The goal is to select the entity in direct way.
|
|
712
|
+
if (this._prefix) {
|
|
713
|
+
this.searchFormControl
|
|
714
|
+
.valueChanges
|
|
715
|
+
.pipe(debounceTime(300), filter(value => typeof value === 'string'), filter(value => value.startsWith(this._prefix)), tap(() => this.isLoading = true), switchMap(value => { var _a, _b; return (_b = (_a = this._dataSource) === null || _a === void 0 ? void 0 : _a.onFilter(value.replace(this._prefix, "").trim())) !== null && _b !== void 0 ? _b : of(null); }))
|
|
716
|
+
.subscribe(resultSet => {
|
|
717
|
+
if (resultSet && resultSet.list) {
|
|
718
|
+
this.filteredEntities = resultSet.list;
|
|
719
|
+
}
|
|
720
|
+
this.isLoading = false;
|
|
721
|
+
});
|
|
722
|
+
}
|
|
723
|
+
// This is the search functionality when search by human.
|
|
724
|
+
this.searchFormControl
|
|
725
|
+
.valueChanges
|
|
726
|
+
.pipe(debounceTime(300), tap(() => this.filteredEntities = []), filter(value => typeof value === 'string'), filter(value => value.toString().length >= 3), tap(() => this.isLoading = true), switchMap(value => { var _a, _b; return (_b = (_a = this._dataSource) === null || _a === void 0 ? void 0 : _a.onFilter(value)) !== null && _b !== void 0 ? _b : of(null); }))
|
|
727
|
+
.subscribe(resultSet => {
|
|
728
|
+
const resultList = new Array();
|
|
729
|
+
if (resultSet && resultSet.list) {
|
|
730
|
+
resultSet.list.forEach(value1 => {
|
|
731
|
+
var _a;
|
|
732
|
+
if (!((_a = this.value) === null || _a === void 0 ? void 0 : _a.find(value2 => { var _a, _b; return ((_a = this._dataSource) === null || _a === void 0 ? void 0 : _a.getIdEntity(value2)) === ((_b = this._dataSource) === null || _b === void 0 ? void 0 : _b.getIdEntity(value1)); }))) {
|
|
733
|
+
resultList.push(value1);
|
|
734
|
+
}
|
|
735
|
+
});
|
|
736
|
+
}
|
|
737
|
+
this.filteredEntities = resultList;
|
|
738
|
+
this.isLoading = false;
|
|
739
|
+
});
|
|
740
|
+
}
|
|
741
|
+
ngOnDestroy() {
|
|
742
|
+
this.stateChanges.complete();
|
|
743
|
+
this.fm.stopMonitoring(this.elRef.nativeElement);
|
|
744
|
+
}
|
|
745
|
+
ngDoCheck() {
|
|
746
|
+
var _a;
|
|
747
|
+
if (this.ngControl) {
|
|
748
|
+
this.errorState = (_a = (this.ngControl.invalid && this.ngControl.touched)) !== null && _a !== void 0 ? _a : false;
|
|
749
|
+
this.stateChanges.next();
|
|
750
|
+
}
|
|
751
|
+
}
|
|
752
|
+
clear() {
|
|
753
|
+
this.filteredEntities = [];
|
|
754
|
+
this.searchFormControl.reset(null);
|
|
755
|
+
}
|
|
756
|
+
focus() {
|
|
757
|
+
this.elRef.nativeElement.querySelector('input').focus();
|
|
758
|
+
}
|
|
759
|
+
onEntitySelected(event) {
|
|
760
|
+
let list = this.value;
|
|
761
|
+
if (!list) {
|
|
762
|
+
list = new Array();
|
|
763
|
+
}
|
|
764
|
+
list.push(event.option.value);
|
|
765
|
+
this.value = list;
|
|
766
|
+
this.filteredEntities = [];
|
|
767
|
+
this.searchFormControl.setValue(null);
|
|
768
|
+
this.valuesFormControl.updateValueAndValidity();
|
|
769
|
+
}
|
|
770
|
+
onEntityActivated(event) {
|
|
771
|
+
var _a;
|
|
772
|
+
this.activatedValue = (_a = event.option) === null || _a === void 0 ? void 0 : _a.value;
|
|
773
|
+
}
|
|
774
|
+
onEntityClosed() {
|
|
775
|
+
if (this.activatedValue) {
|
|
776
|
+
this.value = this.activatedValue;
|
|
777
|
+
this.activatedValue = null;
|
|
778
|
+
}
|
|
779
|
+
}
|
|
780
|
+
reset() {
|
|
781
|
+
this.value = new Array();
|
|
782
|
+
}
|
|
783
|
+
onFocusOut() {
|
|
784
|
+
// if (this.filteredEntities.length === 1) {
|
|
785
|
+
// this.activatedValue = this.filteredEntities[0];
|
|
786
|
+
// this.value = this.filteredEntities[0];
|
|
787
|
+
// }
|
|
788
|
+
}
|
|
789
|
+
onTouched() {
|
|
790
|
+
this._onTouched();
|
|
791
|
+
this.stateChanges.next();
|
|
792
|
+
}
|
|
793
|
+
registerOnChange(fn) {
|
|
794
|
+
this._propagateChange = fn;
|
|
795
|
+
}
|
|
796
|
+
registerOnTouched(fn) {
|
|
797
|
+
this.onTouched = fn;
|
|
798
|
+
}
|
|
799
|
+
writeValue(obj) {
|
|
800
|
+
this.clear();
|
|
801
|
+
this.value = obj;
|
|
802
|
+
}
|
|
803
|
+
setDisabledState(isDisabled) {
|
|
804
|
+
this.disabled = isDisabled;
|
|
805
|
+
}
|
|
806
|
+
onContainerClick(event) {
|
|
807
|
+
if (event.target.tagName.toLowerCase() != 'input') {
|
|
808
|
+
this.focus();
|
|
809
|
+
}
|
|
810
|
+
}
|
|
811
|
+
setDescribedByIds(ids) {
|
|
812
|
+
this.describedBy = ids.join(' ');
|
|
813
|
+
}
|
|
814
|
+
validate(control) {
|
|
815
|
+
const selection = control.value;
|
|
816
|
+
if (typeof selection === 'string') {
|
|
817
|
+
return { incorrect: true };
|
|
818
|
+
}
|
|
819
|
+
return null;
|
|
820
|
+
}
|
|
821
|
+
remove(value) {
|
|
822
|
+
const list = this.value;
|
|
823
|
+
if (list) {
|
|
824
|
+
const index = list.indexOf(value);
|
|
825
|
+
if (index !== -1) {
|
|
826
|
+
list.splice(index, 1);
|
|
827
|
+
}
|
|
828
|
+
this.valuesFormControl.updateValueAndValidity();
|
|
829
|
+
}
|
|
830
|
+
}
|
|
831
|
+
setValue(values) {
|
|
832
|
+
var _a;
|
|
833
|
+
if (values !== this._selectedEntities) {
|
|
834
|
+
this._selectedEntities = values;
|
|
835
|
+
this.valuesChange.emit(values !== null && values !== void 0 ? values : []);
|
|
836
|
+
this._propagateChange((_a = this._selectedEntities) !== null && _a !== void 0 ? _a : []);
|
|
837
|
+
this.stateChanges.next();
|
|
838
|
+
}
|
|
839
|
+
}
|
|
840
|
+
}
|
|
841
|
+
IaMultipleEntitySelectInput.nextId = 0;
|
|
842
|
+
IaMultipleEntitySelectInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: IaMultipleEntitySelectInput, deps: [{ token: i0.ElementRef }, { token: i0.Injector }, { token: i1$2.FocusMonitor }], target: i0.ɵɵFactoryTarget.Component });
|
|
843
|
+
IaMultipleEntitySelectInput.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", 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: [
|
|
844
|
+
{
|
|
845
|
+
provide: NG_VALUE_ACCESSOR,
|
|
846
|
+
useExisting: forwardRef(() => IaMultipleEntitySelectInput),
|
|
847
|
+
multi: true
|
|
848
|
+
},
|
|
849
|
+
{
|
|
850
|
+
provide: MatFormFieldControl,
|
|
851
|
+
useExisting: IaMultipleEntitySelectInput
|
|
852
|
+
},
|
|
853
|
+
{
|
|
854
|
+
provide: NG_VALIDATORS,
|
|
855
|
+
useExisting: forwardRef(() => IaMultipleEntitySelectInput),
|
|
856
|
+
multi: true
|
|
857
|
+
}
|
|
858
|
+
], 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$1.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple", "hideSingleSelectionIndicator"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i4$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i3$1.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$1.MatChipGrid, selector: "mat-chip-grid", inputs: ["tabIndex", "disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i7$1.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i7$1.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i7$1.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: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
|
|
859
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: IaMultipleEntitySelectInput, decorators: [{
|
|
860
|
+
type: Component,
|
|
861
|
+
args: [{ selector: 'ia-multiple-entity-select', host: {
|
|
862
|
+
'[id]': 'id',
|
|
863
|
+
'[attr.aria-describedby]': 'describedBy'
|
|
864
|
+
}, providers: [
|
|
865
|
+
{
|
|
866
|
+
provide: NG_VALUE_ACCESSOR,
|
|
867
|
+
useExisting: forwardRef(() => IaMultipleEntitySelectInput),
|
|
868
|
+
multi: true
|
|
869
|
+
},
|
|
870
|
+
{
|
|
871
|
+
provide: MatFormFieldControl,
|
|
872
|
+
useExisting: IaMultipleEntitySelectInput
|
|
873
|
+
},
|
|
874
|
+
{
|
|
875
|
+
provide: NG_VALIDATORS,
|
|
876
|
+
useExisting: forwardRef(() => IaMultipleEntitySelectInput),
|
|
877
|
+
multi: true
|
|
878
|
+
}
|
|
879
|
+
], 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" }]
|
|
560
880
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Injector }, { type: i1$2.FocusMonitor }]; }, propDecorators: { id: [{
|
|
561
881
|
type: HostBinding
|
|
562
882
|
}], inputField: [{
|
|
@@ -582,8 +902,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImpor
|
|
|
582
902
|
|
|
583
903
|
class IaSharedUIModule {
|
|
584
904
|
}
|
|
585
|
-
IaSharedUIModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
586
|
-
IaSharedUIModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
905
|
+
IaSharedUIModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: IaSharedUIModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
906
|
+
IaSharedUIModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.8", ngImport: i0, type: IaSharedUIModule, declarations: [IaNotificationBarComponent,
|
|
907
|
+
MessageDetailsComponent,
|
|
908
|
+
IaAutocompleteInput,
|
|
909
|
+
IaEntitySelectInput,
|
|
910
|
+
IaMultipleEntitySelectInput], imports: [CommonModule,
|
|
587
911
|
MatToolbarModule,
|
|
588
912
|
MatButtonModule,
|
|
589
913
|
MatSnackBarModule,
|
|
@@ -591,10 +915,13 @@ IaSharedUIModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", versio
|
|
|
591
915
|
MatAutocompleteModule,
|
|
592
916
|
MatInputModule,
|
|
593
917
|
MatProgressSpinnerModule,
|
|
918
|
+
MatChipsModule,
|
|
919
|
+
MatIconModule,
|
|
594
920
|
ReactiveFormsModule], exports: [IaNotificationBarComponent,
|
|
595
921
|
IaAutocompleteInput,
|
|
596
|
-
IaEntitySelectInput
|
|
597
|
-
|
|
922
|
+
IaEntitySelectInput,
|
|
923
|
+
IaMultipleEntitySelectInput] });
|
|
924
|
+
IaSharedUIModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: IaSharedUIModule, imports: [CommonModule,
|
|
598
925
|
MatToolbarModule,
|
|
599
926
|
MatButtonModule,
|
|
600
927
|
MatSnackBarModule,
|
|
@@ -602,20 +929,30 @@ IaSharedUIModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", versio
|
|
|
602
929
|
MatAutocompleteModule,
|
|
603
930
|
MatInputModule,
|
|
604
931
|
MatProgressSpinnerModule,
|
|
932
|
+
MatChipsModule,
|
|
933
|
+
MatIconModule,
|
|
605
934
|
ReactiveFormsModule] });
|
|
606
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
935
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: IaSharedUIModule, decorators: [{
|
|
607
936
|
type: NgModule,
|
|
608
937
|
args: [{
|
|
609
|
-
declarations: [
|
|
938
|
+
declarations: [
|
|
939
|
+
IaNotificationBarComponent,
|
|
940
|
+
MessageDetailsComponent,
|
|
941
|
+
IaAutocompleteInput,
|
|
942
|
+
IaEntitySelectInput,
|
|
943
|
+
IaMultipleEntitySelectInput
|
|
944
|
+
],
|
|
610
945
|
exports: [
|
|
611
946
|
IaNotificationBarComponent,
|
|
612
947
|
IaAutocompleteInput,
|
|
613
|
-
IaEntitySelectInput
|
|
948
|
+
IaEntitySelectInput,
|
|
949
|
+
IaMultipleEntitySelectInput
|
|
614
950
|
],
|
|
615
951
|
entryComponents: [
|
|
616
952
|
MessageDetailsComponent,
|
|
617
953
|
IaAutocompleteInput,
|
|
618
|
-
IaEntitySelectInput
|
|
954
|
+
IaEntitySelectInput,
|
|
955
|
+
IaMultipleEntitySelectInput
|
|
619
956
|
],
|
|
620
957
|
imports: [
|
|
621
958
|
CommonModule,
|
|
@@ -626,6 +963,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImpor
|
|
|
626
963
|
MatAutocompleteModule,
|
|
627
964
|
MatInputModule,
|
|
628
965
|
MatProgressSpinnerModule,
|
|
966
|
+
MatChipsModule,
|
|
967
|
+
MatIconModule,
|
|
629
968
|
ReactiveFormsModule
|
|
630
969
|
]
|
|
631
970
|
}]
|
|
@@ -635,6 +974,7 @@ class ProgressWindowComponent {
|
|
|
635
974
|
constructor(data) {
|
|
636
975
|
this.data = data;
|
|
637
976
|
this.statusText = null;
|
|
977
|
+
this.progressValue = 0;
|
|
638
978
|
data.progress.subscribe(value => {
|
|
639
979
|
this.statusText = value.statusText;
|
|
640
980
|
this.progressValue = value.progressValue;
|
|
@@ -646,9 +986,9 @@ class ProgressWindowComponent {
|
|
|
646
986
|
this.data.cancelOperation();
|
|
647
987
|
}
|
|
648
988
|
}
|
|
649
|
-
ProgressWindowComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
650
|
-
ProgressWindowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
651
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
989
|
+
ProgressWindowComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ProgressWindowComponent, deps: [{ token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
990
|
+
ProgressWindowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", 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: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { 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"] }, { kind: "directive", type: i3$2.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$2.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$1.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }] });
|
|
991
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ProgressWindowComponent, decorators: [{
|
|
652
992
|
type: Component,
|
|
653
993
|
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" }]
|
|
654
994
|
}], ctorParameters: function () {
|
|
@@ -662,7 +1002,8 @@ class ProgressNotifierService {
|
|
|
662
1002
|
constructor(dialog) {
|
|
663
1003
|
this.dialog = dialog;
|
|
664
1004
|
this._currentProgressValue = new BehaviorSubject(null);
|
|
665
|
-
this.
|
|
1005
|
+
this.currentDialogRef = null;
|
|
1006
|
+
this._isCanceled = false;
|
|
666
1007
|
}
|
|
667
1008
|
get isCanceled() {
|
|
668
1009
|
return this._isCanceled;
|
|
@@ -702,12 +1043,13 @@ class ProgressNotifierService {
|
|
|
702
1043
|
});
|
|
703
1044
|
}
|
|
704
1045
|
complete() {
|
|
705
|
-
|
|
1046
|
+
var _a;
|
|
1047
|
+
(_a = this.currentDialogRef) === null || _a === void 0 ? void 0 : _a.close();
|
|
706
1048
|
}
|
|
707
1049
|
}
|
|
708
|
-
ProgressNotifierService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
709
|
-
ProgressNotifierService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
710
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1050
|
+
ProgressNotifierService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ProgressNotifierService, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1051
|
+
ProgressNotifierService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ProgressNotifierService });
|
|
1052
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ProgressNotifierService, decorators: [{
|
|
711
1053
|
type: Injectable
|
|
712
1054
|
}], ctorParameters: function () { return [{ type: i1.MatDialog }]; } });
|
|
713
1055
|
|
|
@@ -721,18 +1063,18 @@ class ProgressNotifierModule {
|
|
|
721
1063
|
};
|
|
722
1064
|
}
|
|
723
1065
|
}
|
|
724
|
-
ProgressNotifierModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
725
|
-
ProgressNotifierModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
1066
|
+
ProgressNotifierModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ProgressNotifierModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
1067
|
+
ProgressNotifierModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.8", ngImport: i0, type: ProgressNotifierModule, declarations: [ProgressWindowComponent], imports: [CommonModule,
|
|
726
1068
|
MatDialogModule,
|
|
727
1069
|
FlexLayoutModule,
|
|
728
1070
|
MatButtonModule,
|
|
729
1071
|
MatProgressBarModule] });
|
|
730
|
-
ProgressNotifierModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
1072
|
+
ProgressNotifierModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ProgressNotifierModule, imports: [CommonModule,
|
|
731
1073
|
MatDialogModule,
|
|
732
1074
|
FlexLayoutModule,
|
|
733
1075
|
MatButtonModule,
|
|
734
1076
|
MatProgressBarModule] });
|
|
735
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1077
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ProgressNotifierModule, decorators: [{
|
|
736
1078
|
type: NgModule,
|
|
737
1079
|
args: [{
|
|
738
1080
|
declarations: [ProgressWindowComponent],
|
|
@@ -765,6 +1107,10 @@ class ConfirmationWindowComponent {
|
|
|
765
1107
|
constructor(dialogRef, data) {
|
|
766
1108
|
this.dialogRef = dialogRef;
|
|
767
1109
|
this.data = data;
|
|
1110
|
+
this.button2Text = null;
|
|
1111
|
+
this.button2Result = null;
|
|
1112
|
+
this.button3Text = null;
|
|
1113
|
+
this.button3Result = null;
|
|
768
1114
|
if (data.dialogType === DialogType.OkCancel) {
|
|
769
1115
|
this.button1Text = "OK";
|
|
770
1116
|
this.button1Result = ButtonTypes.Ok;
|
|
@@ -808,9 +1154,9 @@ class ConfirmationWindowComponent {
|
|
|
808
1154
|
});
|
|
809
1155
|
}
|
|
810
1156
|
}
|
|
811
|
-
ConfirmationWindowComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
812
|
-
ConfirmationWindowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
813
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1157
|
+
ConfirmationWindowComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ConfirmationWindowComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
1158
|
+
ConfirmationWindowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: ConfirmationWindowComponent, selector: "lib-shared-ui-confirmation-window", ngImport: i0, template: "<h1 mat-dialog-title>{{data.title}}</h1>\n<div mat-dialog-content>{{data.message}}</div>\n<div fxLayoutAlign=\"end\" mat-dialog-actions>\n <button (click)=\"onButton1()\" color=\"primary\" mat-button>{{button1Text}}</button>\n <button (click)=\"onButton2()\" *ngIf=\"button2Text\" mat-button>{{button2Text}}</button>\n <button (click)=\"onButton3()\" *ngIf=\"button3Text\" mat-button>{{button3Text}}</button>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { 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"] }, { kind: "directive", type: i3$2.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"] }] });
|
|
1159
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ConfirmationWindowComponent, decorators: [{
|
|
814
1160
|
type: Component,
|
|
815
1161
|
args: [{ selector: 'lib-shared-ui-confirmation-window', template: "<h1 mat-dialog-title>{{data.title}}</h1>\n<div mat-dialog-content>{{data.message}}</div>\n<div fxLayoutAlign=\"end\" mat-dialog-actions>\n <button (click)=\"onButton1()\" color=\"primary\" mat-button>{{button1Text}}</button>\n <button (click)=\"onButton2()\" *ngIf=\"button2Text\" mat-button>{{button2Text}}</button>\n <button (click)=\"onButton3()\" *ngIf=\"button3Text\" mat-button>{{button3Text}}</button>\n</div>\n" }]
|
|
816
1162
|
}], ctorParameters: function () {
|
|
@@ -834,7 +1180,7 @@ class ConfirmationService {
|
|
|
834
1180
|
dialogType: DialogType.YesNo
|
|
835
1181
|
}
|
|
836
1182
|
});
|
|
837
|
-
return dialogRef.afterClosed().pipe(map(value => value.result == ButtonTypes.Yes));
|
|
1183
|
+
return dialogRef.afterClosed().pipe(map(value => (value === null || value === void 0 ? void 0 : value.result) == ButtonTypes.Yes));
|
|
838
1184
|
}
|
|
839
1185
|
showYesNoCancelConfirmationDialog(title, message) {
|
|
840
1186
|
const dialogRef = this.dialog.open(ConfirmationWindowComponent, {
|
|
@@ -858,7 +1204,7 @@ class ConfirmationService {
|
|
|
858
1204
|
dialogType: DialogType.OkCancel
|
|
859
1205
|
}
|
|
860
1206
|
});
|
|
861
|
-
return dialogRef.afterClosed().pipe(map(value => value.result == ButtonTypes.Ok));
|
|
1207
|
+
return dialogRef.afterClosed().pipe(map(value => (value === null || value === void 0 ? void 0 : value.result) == ButtonTypes.Ok));
|
|
862
1208
|
}
|
|
863
1209
|
showOkDialog(title, message) {
|
|
864
1210
|
const dialogRef = this.dialog.open(ConfirmationWindowComponent, {
|
|
@@ -870,12 +1216,12 @@ class ConfirmationService {
|
|
|
870
1216
|
dialogType: DialogType.Ok
|
|
871
1217
|
}
|
|
872
1218
|
});
|
|
873
|
-
return dialogRef.afterClosed().pipe(map(value => value.result == ButtonTypes.Ok));
|
|
1219
|
+
return dialogRef.afterClosed().pipe(map(value => (value === null || value === void 0 ? void 0 : value.result) == ButtonTypes.Ok));
|
|
874
1220
|
}
|
|
875
1221
|
}
|
|
876
|
-
ConfirmationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
877
|
-
ConfirmationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
878
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1222
|
+
ConfirmationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ConfirmationService, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1223
|
+
ConfirmationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ConfirmationService, providedIn: 'root' });
|
|
1224
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ConfirmationService, decorators: [{
|
|
879
1225
|
type: Injectable,
|
|
880
1226
|
args: [{
|
|
881
1227
|
providedIn: 'root'
|
|
@@ -892,16 +1238,16 @@ class ConfirmationDialogModule {
|
|
|
892
1238
|
};
|
|
893
1239
|
}
|
|
894
1240
|
}
|
|
895
|
-
ConfirmationDialogModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
896
|
-
ConfirmationDialogModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
1241
|
+
ConfirmationDialogModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ConfirmationDialogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
1242
|
+
ConfirmationDialogModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.8", ngImport: i0, type: ConfirmationDialogModule, declarations: [ConfirmationWindowComponent], imports: [CommonModule,
|
|
897
1243
|
MatDialogModule,
|
|
898
1244
|
FlexLayoutModule,
|
|
899
1245
|
MatButtonModule] });
|
|
900
|
-
ConfirmationDialogModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
1246
|
+
ConfirmationDialogModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ConfirmationDialogModule, imports: [CommonModule,
|
|
901
1247
|
MatDialogModule,
|
|
902
1248
|
FlexLayoutModule,
|
|
903
1249
|
MatButtonModule] });
|
|
904
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1250
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ConfirmationDialogModule, decorators: [{
|
|
905
1251
|
type: NgModule,
|
|
906
1252
|
args: [{
|
|
907
1253
|
declarations: [ConfirmationWindowComponent],
|
|
@@ -927,16 +1273,18 @@ class CommonValidators {
|
|
|
927
1273
|
}
|
|
928
1274
|
static conditionalRequired(sourceControlName, sourceValueCompareExpression) {
|
|
929
1275
|
return (control) => {
|
|
930
|
-
|
|
1276
|
+
var _a;
|
|
1277
|
+
if (control.parent && sourceValueCompareExpression((_a = control.parent.get(sourceControlName)) === null || _a === void 0 ? void 0 : _a.value)) {
|
|
931
1278
|
return isEmptyInputValue(control.value) ? { 'required': true } : null;
|
|
932
1279
|
}
|
|
1280
|
+
return null;
|
|
933
1281
|
};
|
|
934
1282
|
}
|
|
935
1283
|
static dependentControls(controlNames) {
|
|
936
1284
|
return (control) => {
|
|
937
1285
|
controlNames.forEach(controlName => {
|
|
938
|
-
var _a;
|
|
939
|
-
(_a = control.parent) === null || _a === void 0 ? void 0 : _a.get(controlName).updateValueAndValidity();
|
|
1286
|
+
var _a, _b;
|
|
1287
|
+
(_b = (_a = control.parent) === null || _a === void 0 ? void 0 : _a.get(controlName)) === null || _b === void 0 ? void 0 : _b.updateValueAndValidity();
|
|
940
1288
|
});
|
|
941
1289
|
return null;
|
|
942
1290
|
};
|
|
@@ -946,13 +1294,16 @@ class CommonValidators {
|
|
|
946
1294
|
class AbstractDetailsComponent {
|
|
947
1295
|
constructor() {
|
|
948
1296
|
this.hasError = (controlName, errorName) => {
|
|
949
|
-
|
|
1297
|
+
var _a;
|
|
1298
|
+
return (_a = this.ownerForm) === null || _a === void 0 ? void 0 : _a.controls[controlName].hasError(errorName);
|
|
950
1299
|
};
|
|
951
1300
|
this.hasFormError = (errorName) => {
|
|
952
|
-
|
|
1301
|
+
var _a;
|
|
1302
|
+
return (_a = this.ownerForm) === null || _a === void 0 ? void 0 : _a.hasError(errorName);
|
|
953
1303
|
};
|
|
954
1304
|
this.loading = true;
|
|
955
1305
|
this.entity = null;
|
|
1306
|
+
this._ownerForm = null;
|
|
956
1307
|
}
|
|
957
1308
|
get ownerForm() {
|
|
958
1309
|
return this._ownerForm;
|
|
@@ -961,7 +1312,8 @@ class AbstractDetailsComponent {
|
|
|
961
1312
|
return this.entity !== null;
|
|
962
1313
|
}
|
|
963
1314
|
updateDateTime(controlName) {
|
|
964
|
-
|
|
1315
|
+
var _a, _b;
|
|
1316
|
+
(_b = (_a = this.ownerForm) === null || _a === void 0 ? void 0 : _a.get(controlName)) === null || _b === void 0 ? void 0 : _b.setValue(IsoDateTime.utcToLocalDateTimeIso(IsoDateTime.currentUtcDateTimeIso()));
|
|
965
1317
|
}
|
|
966
1318
|
copyInputMessage(inputElement) {
|
|
967
1319
|
inputElement.select();
|
|
@@ -969,12 +1321,14 @@ class AbstractDetailsComponent {
|
|
|
969
1321
|
inputElement.setSelectionRange(0, 0);
|
|
970
1322
|
}
|
|
971
1323
|
onProgressStarting() {
|
|
1324
|
+
var _a, _b;
|
|
972
1325
|
this.loading = true;
|
|
973
|
-
this.ownerForm.disable();
|
|
974
|
-
this.ownerForm.updateValueAndValidity();
|
|
1326
|
+
(_a = this.ownerForm) === null || _a === void 0 ? void 0 : _a.disable();
|
|
1327
|
+
(_b = this.ownerForm) === null || _b === void 0 ? void 0 : _b.updateValueAndValidity();
|
|
975
1328
|
}
|
|
976
1329
|
onProgressCompleted() {
|
|
977
|
-
|
|
1330
|
+
var _a;
|
|
1331
|
+
(_a = this.ownerForm) === null || _a === void 0 ? void 0 : _a.enable();
|
|
978
1332
|
this.loading = false;
|
|
979
1333
|
}
|
|
980
1334
|
}
|
|
@@ -987,5 +1341,5 @@ class AbstractDetailsComponent {
|
|
|
987
1341
|
* Generated bundle index. Do not edit.
|
|
988
1342
|
*/
|
|
989
1343
|
|
|
990
|
-
export { AbstractDetailsComponent, ButtonTypes, CommonValidators, ConfirmationDialogModule, ConfirmationService, DialogType, IaAutocompleteInput, IaEntitySelectInput, IaNotificationBarComponent, IaSharedUIModule, ProgressNotifierModule, ProgressNotifierService };
|
|
1344
|
+
export { AbstractDetailsComponent, ButtonTypes, CommonValidators, ConfirmationDialogModule, ConfirmationService, DialogType, IaAutocompleteInput, IaEntitySelectInput, IaMultipleEntitySelectInput, IaNotificationBarComponent, IaSharedUIModule, ProgressNotifierModule, ProgressNotifierService };
|
|
991
1345
|
//# sourceMappingURL=meshmakers-shared-ui.mjs.map
|