@resolveio/client-lib-core 15.1.7 → 15.1.9
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/esm2020/lib/models/dialog.model.mjs +1 -1
- package/esm2020/lib/widgets/dialog/dialog.input.content.mjs +82 -8
- package/fesm2015/resolveio-client-lib-core.mjs +81 -7
- package/fesm2015/resolveio-client-lib-core.mjs.map +1 -1
- package/fesm2020/resolveio-client-lib-core.mjs +81 -7
- package/fesm2020/resolveio-client-lib-core.mjs.map +1 -1
- package/lib/models/dialog.model.d.ts +1 -1
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL21vZGVscy9kaWFsb2cubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgRGlhbG9nSW5wdXRGaWVsZE1vZGVsIHtcblx0bGFiZWw6IHN0cmluZztcblx0Zm9ybTogc3RyaW5nO1xuXHRkYXRhOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgYW55W107IFxuXHR2YWxpZGF0b3JzOiBhbnlbXTtcblx0dmFsaWRhdG9yRXJyb3JzPzogc3RyaW5nW107XG5cdHZhbGlkYXRvck1zZz86IHN0cmluZ1tdO1xuXHRwbGFjZWhvbGRlcj86IHN0cmluZztcblx0cmVxdWlyZWQ/
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL21vZGVscy9kaWFsb2cubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgRGlhbG9nSW5wdXRGaWVsZE1vZGVsIHtcblx0bGFiZWw6IHN0cmluZztcblx0Zm9ybTogc3RyaW5nO1xuXHRkYXRhOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgYW55W107IFxuXHR2YWxpZGF0b3JzOiBhbnlbXTtcblx0dmFsaWRhdG9yRXJyb3JzPzogc3RyaW5nW107XG5cdHZhbGlkYXRvck1zZz86IHN0cmluZ1tdO1xuXHRwbGFjZWhvbGRlcj86IHN0cmluZztcblx0cmVxdWlyZWQ/OiBib29sZWFuO1xuXHR0eXBlPzogRGlhbG9nSW5wdXRGaWVsZFR5cGVzO1xuXHRvcHRpb25zPzogRGlhbG9nSW5wdXRGaWVsZFNlbGVjdE9wdGlvbnNbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEaWFsb2dJbnB1dEZpZWxkU2VsZWN0T3B0aW9ucyB7XG5cdHZhbHVlOiBzdHJpbmcgfCBudW1iZXI7XG5cdHRleHQ6IHN0cmluZztcbn1cblxudHlwZSBEaWFsb2dJbnB1dEZpZWxkVHlwZXMgPSAndGV4dCcgfCAnbnVtYmVyJyB8ICdzZWxlY3QnIHwgJ25nLXNlbGVjdCcgfCAnc3RhdGUnIHwgJ2VtYWlsJyB8ICdwYXNzd29yZCcgfCAndGV4dGFyZWEnIHwgJ2Jvb2xlYW4nIHwgJ2RhdGUnIHwgJ2RhdGV0aW1lJztcblxuZXhwb3J0IGludGVyZmFjZSBEaWFsb2dTZWxlY3RXaXRoQnV0dG9uc09wdGlvbk1vZGVsIHtcblx0dmFsdWU6IHN0cmluZyB8IG51bWJlcjtcblx0dGV4dDogc3RyaW5nO1xuXHRzZWxlY3RlZD86IGJvb2xlYW47XG59Il19
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Component, Input } from '@angular/core';
|
|
2
2
|
import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';
|
|
3
|
-
import {
|
|
3
|
+
import { FormBuilder, UntypedFormControl } from '@angular/forms';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "@ng-bootstrap/ng-bootstrap";
|
|
6
6
|
import * as i2 from "@angular/forms";
|
|
@@ -24,11 +24,27 @@ export class DialogInputContent {
|
|
|
24
24
|
ngOnInit() {
|
|
25
25
|
this.formInput = this._fb.group({});
|
|
26
26
|
for (let i = 0; i < this.inputFields.length; i++) {
|
|
27
|
-
if (this.inputFields[i].
|
|
28
|
-
|
|
27
|
+
if (this.inputFields[i].type !== 'datetime') {
|
|
28
|
+
if (this.inputFields[i].validators === null) {
|
|
29
|
+
this.formInput.addControl(this.inputFields[i].form, new UntypedFormControl({ value: this.inputFields[i].data, disabled: this.inputFields[i].disabled }));
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
this.formInput.addControl(this.inputFields[i].form, new UntypedFormControl({ value: this.inputFields[i].data, disabled: this.inputFields[i].disabled }, this.inputFields[i].validators));
|
|
33
|
+
}
|
|
29
34
|
}
|
|
30
35
|
else {
|
|
31
|
-
|
|
36
|
+
if (this.inputFields[i].validators === null) {
|
|
37
|
+
this.formInput.addControl(this.inputFields[i].form, new UntypedFormControl({ value: this.inputFields[i].data[0], disabled: this.inputFields[i].disabled }));
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
this.formInput.addControl(this.inputFields[i].form, new UntypedFormControl({ value: this.inputFields[i].data[0], disabled: this.inputFields[i].disabled }, this.inputFields[i].validators));
|
|
41
|
+
}
|
|
42
|
+
if (this.inputFields[i].validators === null) {
|
|
43
|
+
this.formInput.addControl(this.inputFields[i].form + '_time', new UntypedFormControl({ value: this.inputFields[i].data[1], disabled: this.inputFields[i].disabled }));
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
this.formInput.addControl(this.inputFields[i].form + '_time', new UntypedFormControl({ value: this.inputFields[i].data[1], disabled: this.inputFields[i].disabled }, this.inputFields[i].validators));
|
|
47
|
+
}
|
|
32
48
|
}
|
|
33
49
|
}
|
|
34
50
|
}
|
|
@@ -75,7 +91,7 @@ DialogInputContent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ver
|
|
|
75
91
|
<label class="form-control-label">{{inputField.label}}</label>
|
|
76
92
|
<em *ngIf="formInput.controls[inputField.form].hasError('required') && inputField.required">- Required</em>
|
|
77
93
|
<em *ngIf="!formInput.controls[inputField.form].hasError('required') && formInput.controls[inputField.form].invalid">- Invalid</em>
|
|
78
|
-
<div *ngIf="inputField.type !== 'state' && inputField.type !== 'textarea' && inputField.type !== 'number' && inputField.type !== 'select' && inputField.type !== 'boolean'">
|
|
94
|
+
<div *ngIf="inputField.type !== 'date' && inputField.type !== 'datetime' && inputField.type !== 'state' && inputField.type !== 'textarea' && inputField.type !== 'number' && inputField.type !== 'select' && inputField.type !== 'boolean'">
|
|
79
95
|
<input [autofocus]="i === 0 ? true : false" [focus]="i === 0 ? true : false" [formControlName]="inputField.form" [ngClass]="['form-control', validateInput(inputField, formInput)]" [type]="(inputField.type ? inputField.type : 'text')">
|
|
80
96
|
<ng-container *ngFor="let errorMsg of getErrorMessages(inputField, formInput);">
|
|
81
97
|
<div class="invalid-feedback">{{errorMsg}}</div>
|
|
@@ -110,6 +126,35 @@ DialogInputContent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ver
|
|
|
110
126
|
<div class="invalid-feedback">{{errorMsg}}</div>
|
|
111
127
|
</ng-container>
|
|
112
128
|
</div>
|
|
129
|
+
<div *ngIf="inputField.type === 'date'">
|
|
130
|
+
<div class="input-group">
|
|
131
|
+
<input [formControlName]="inputField.form" placeholder="yyyy-mm-dd" ngbDatepicker [firstDayOfWeek]="7" #d="ngbDatepicker" [ngClass]="['form-control', validateInput(inputField, formInput)]" (click)="d.toggle()">
|
|
132
|
+
<div class="input-group-append" (click)="d.toggle()">
|
|
133
|
+
<div class="input-group-text">
|
|
134
|
+
<i class="fa fa-calendar" aria-hidden="true"></i>
|
|
135
|
+
</div>
|
|
136
|
+
</div>
|
|
137
|
+
</div>
|
|
138
|
+
</div>
|
|
139
|
+
<div *ngIf="inputField.type === 'datetime'">
|
|
140
|
+
<div class="row" style="align-items: center;">
|
|
141
|
+
<div class="col-sm-8">
|
|
142
|
+
<label class="form-control-label" style="align-items: top;">Date/Time</label>
|
|
143
|
+
<div class="input-group">
|
|
144
|
+
<input [formControlName]="inputField.form" placeholder="yyyy-mm-dd" ngbDatepicker [firstDayOfWeek]="7" #d="ngbDatepicker" [ngClass]="['form-control', validateInput(inputField, formInput)]" (click)="d.toggle()">
|
|
145
|
+
<div class="input-group-append" (click)="d.toggle()">
|
|
146
|
+
<div class="input-group-text">
|
|
147
|
+
<i class="fa fa-calendar" aria-hidden="true"></i>
|
|
148
|
+
</div>
|
|
149
|
+
</div>
|
|
150
|
+
</div>
|
|
151
|
+
</div>
|
|
152
|
+
<div class="col-sm-4">
|
|
153
|
+
<label class="form-control-label" style="align-items: top;"> </label>
|
|
154
|
+
<ngb-timepicker [formControlName]="inputField.form + '_time'" meridian="ON" [ngClass]="[validateInput(inputField, formInput)]"></ngb-timepicker>
|
|
155
|
+
</div>
|
|
156
|
+
</div>
|
|
157
|
+
</div>
|
|
113
158
|
<div *ngIf="inputField.type === 'boolean'" (click)="formInput.controls[inputField.form].setValue(!formInput.controls[inputField.form].value)">
|
|
114
159
|
<i *ngIf="formInput.controls[inputField.form].value" class="fa fa-check" style="color: green; font-size: 24px;" aria-hidden="true"></i>
|
|
115
160
|
<i *ngIf="!formInput.controls[inputField.form].value" class="fa fa-times" style="color: red; font-size: 24px;" aria-hidden="true"></i>
|
|
@@ -122,7 +167,7 @@ DialogInputContent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ver
|
|
|
122
167
|
<button type="button" class="btn btn-secondary" (click)="_activeModal.dismiss()">Cancel</button>
|
|
123
168
|
</div>
|
|
124
169
|
</form>
|
|
125
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.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: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i3.FormButtonComponent, selector: "form-button", inputs: ["form", "disabled", "type"] }, { kind: "component", type: i4.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "component", type: i4.NgOptionComponent, selector: "ng-option", inputs: ["value", "disabled"] }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.FocusDirective, selector: "[focus]", inputs: ["focus"] }] });
|
|
170
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.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: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.NgbInputDatepicker, selector: "input[ngbDatepicker]", inputs: ["autoClose", "datepickerClass", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "minDate", "maxDate", "navigation", "outsideDays", "placement", "restoreFocus", "showWeekNumbers", "startDate", "container", "positionTarget", "weekdays", "disabled"], outputs: ["dateSelect", "navigate", "closed"], exportAs: ["ngbDatepicker"] }, { kind: "component", type: i1.NgbTimepicker, selector: "ngb-timepicker", inputs: ["meridian", "spinners", "seconds", "hourStep", "minuteStep", "secondStep", "readonlyInputs", "size"] }, { kind: "component", type: i3.FormButtonComponent, selector: "form-button", inputs: ["form", "disabled", "type"] }, { kind: "component", type: i4.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "component", type: i4.NgOptionComponent, selector: "ng-option", inputs: ["value", "disabled"] }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.FocusDirective, selector: "[focus]", inputs: ["focus"] }] });
|
|
126
171
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DialogInputContent, decorators: [{
|
|
127
172
|
type: Component,
|
|
128
173
|
args: [{
|
|
@@ -140,7 +185,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
140
185
|
<label class="form-control-label">{{inputField.label}}</label>
|
|
141
186
|
<em *ngIf="formInput.controls[inputField.form].hasError('required') && inputField.required">- Required</em>
|
|
142
187
|
<em *ngIf="!formInput.controls[inputField.form].hasError('required') && formInput.controls[inputField.form].invalid">- Invalid</em>
|
|
143
|
-
<div *ngIf="inputField.type !== 'state' && inputField.type !== 'textarea' && inputField.type !== 'number' && inputField.type !== 'select' && inputField.type !== 'boolean'">
|
|
188
|
+
<div *ngIf="inputField.type !== 'date' && inputField.type !== 'datetime' && inputField.type !== 'state' && inputField.type !== 'textarea' && inputField.type !== 'number' && inputField.type !== 'select' && inputField.type !== 'boolean'">
|
|
144
189
|
<input [autofocus]="i === 0 ? true : false" [focus]="i === 0 ? true : false" [formControlName]="inputField.form" [ngClass]="['form-control', validateInput(inputField, formInput)]" [type]="(inputField.type ? inputField.type : 'text')">
|
|
145
190
|
<ng-container *ngFor="let errorMsg of getErrorMessages(inputField, formInput);">
|
|
146
191
|
<div class="invalid-feedback">{{errorMsg}}</div>
|
|
@@ -175,6 +220,35 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
175
220
|
<div class="invalid-feedback">{{errorMsg}}</div>
|
|
176
221
|
</ng-container>
|
|
177
222
|
</div>
|
|
223
|
+
<div *ngIf="inputField.type === 'date'">
|
|
224
|
+
<div class="input-group">
|
|
225
|
+
<input [formControlName]="inputField.form" placeholder="yyyy-mm-dd" ngbDatepicker [firstDayOfWeek]="7" #d="ngbDatepicker" [ngClass]="['form-control', validateInput(inputField, formInput)]" (click)="d.toggle()">
|
|
226
|
+
<div class="input-group-append" (click)="d.toggle()">
|
|
227
|
+
<div class="input-group-text">
|
|
228
|
+
<i class="fa fa-calendar" aria-hidden="true"></i>
|
|
229
|
+
</div>
|
|
230
|
+
</div>
|
|
231
|
+
</div>
|
|
232
|
+
</div>
|
|
233
|
+
<div *ngIf="inputField.type === 'datetime'">
|
|
234
|
+
<div class="row" style="align-items: center;">
|
|
235
|
+
<div class="col-sm-8">
|
|
236
|
+
<label class="form-control-label" style="align-items: top;">Date/Time</label>
|
|
237
|
+
<div class="input-group">
|
|
238
|
+
<input [formControlName]="inputField.form" placeholder="yyyy-mm-dd" ngbDatepicker [firstDayOfWeek]="7" #d="ngbDatepicker" [ngClass]="['form-control', validateInput(inputField, formInput)]" (click)="d.toggle()">
|
|
239
|
+
<div class="input-group-append" (click)="d.toggle()">
|
|
240
|
+
<div class="input-group-text">
|
|
241
|
+
<i class="fa fa-calendar" aria-hidden="true"></i>
|
|
242
|
+
</div>
|
|
243
|
+
</div>
|
|
244
|
+
</div>
|
|
245
|
+
</div>
|
|
246
|
+
<div class="col-sm-4">
|
|
247
|
+
<label class="form-control-label" style="align-items: top;"> </label>
|
|
248
|
+
<ngb-timepicker [formControlName]="inputField.form + '_time'" meridian="ON" [ngClass]="[validateInput(inputField, formInput)]"></ngb-timepicker>
|
|
249
|
+
</div>
|
|
250
|
+
</div>
|
|
251
|
+
</div>
|
|
178
252
|
<div *ngIf="inputField.type === 'boolean'" (click)="formInput.controls[inputField.form].setValue(!formInput.controls[inputField.form].value)">
|
|
179
253
|
<i *ngIf="formInput.controls[inputField.form].value" class="fa fa-check" style="color: green; font-size: 24px;" aria-hidden="true"></i>
|
|
180
254
|
<i *ngIf="!formInput.controls[inputField.form].value" class="fa fa-times" style="color: red; font-size: 24px;" aria-hidden="true"></i>
|
|
@@ -194,4 +268,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
194
268
|
}], inputFields: [{
|
|
195
269
|
type: Input
|
|
196
270
|
}] } });
|
|
197
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmlucHV0LmNvbnRlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvd2lkZ2V0cy9kaWFsb2cvZGlhbG9nLmlucHV0LmNvbnRlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFZLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RFLE9BQU8sRUFBeUIsV0FBVyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7OztBQWtFakYsa0RBQWtEO0FBQ2xELE1BQU0sT0FBTyxrQkFBa0I7SUFXOUIsWUFBbUIsWUFBNEIsRUFBVSxHQUFnQjtRQUF0RCxpQkFBWSxHQUFaLFlBQVksQ0FBZ0I7UUFBVSxRQUFHLEdBQUgsR0FBRyxDQUFhO1FBVmhFLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxnQkFBVyxHQUFVLEVBQUUsQ0FBQztRQUlqQyxXQUFNLEdBQWE7WUFDbEIsU0FBUyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsT0FBTztZQUNuTixVQUFVLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxFQUFFLE1BQU07WUFDbk4sVUFBVSxFQUFFLFFBQVEsRUFBRSxj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RUFBRTtnQkFDbEYsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDckM7U0FDRDtRQUVELE9BQU8sR0FBRyxDQUFDO0lBQ1osQ0FBQzs7Z0hBNURXLGtCQUFrQjtvR0FBbEIsa0JBQWtCLDRHQWhFcEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUE2RFQ7NEZBR1csa0JBQWtCO2tCQWpFOUIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUE2RFQ7aUJBQ0Q7K0hBR1MsS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nYk1vZGFsLCBOZ2JBY3RpdmVNb2RhbCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcbmltcG9ydCB7IFZhbGlkYXRvcnMsIEZvcm1Hcm91cCwgRm9ybUNvbnRyb2wsIEZvcm1CdWlsZGVyIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcblx0dGVtcGxhdGU6IGBcblx0XHQ8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1JbnB1dFwiIG5vdmFsaWRhdGUgKG5nU3VibWl0KT1cIl9hY3RpdmVNb2RhbC5jbG9zZSh0aGlzLmZvcm1JbnB1dC5jb250cm9scylcIj5cblx0XHRcdDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXJcIj5cblx0XHRcdFx0PGg0IGNsYXNzPVwibW9kYWwtdGl0bGVcIj48aSBjbGFzcz1cImZhIGZhLXBsdXMtY2lyY2xlXCIgc3R5bGU9XCJjb2xvcjogZ3JlZW47IGZvbnQtc2l6ZTogMC44NWVtXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPiB7eyB0aXRsZSB9fTwvaDQ+XG5cdFx0XHRcdDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2xvc2VcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiAoY2xpY2spPVwiX2FjdGl2ZU1vZGFsLmRpc21pc3MoKVwiPlxuXHRcdFx0XHRcdDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPiZ0aW1lczs8L3NwYW4+XG5cdFx0XHRcdDwvYnV0dG9uPlxuXHRcdFx0PC9kaXY+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiPlxuXHRcdFx0XHQ8ZGl2ICpuZ0Zvcj1cImxldCBpbnB1dEZpZWxkIG9mIGlucHV0RmllbGRzOyBsZXQgaSA9IGluZGV4XCI+XG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cblx0XHRcdFx0XHRcdDxsYWJlbCBjbGFzcz1cImZvcm0tY29udHJvbC1sYWJlbFwiPnt7aW5wdXRGaWVsZC5sYWJlbH19PC9sYWJlbD5cblx0XHRcdFx0XHRcdDxlbSAqbmdJZj1cImZvcm1JbnB1dC5jb250cm9sc1tpbnB1dEZpZWxkLmZvcm1dLmhhc0Vycm9yKCdyZXF1aXJlZCcpICYmIGlucHV0RmllbGQucmVxdWlyZWRcIj4tIFJlcXVpcmVkPC9lbT5cblx0XHRcdFx0XHRcdDxlbSAqbmdJZj1cIiFmb3JtSW5wdXQuY29udHJvbHNbaW5wdXRGaWVsZC5mb3JtXS5oYXNFcnJvcigncmVxdWlyZWQnKSAmJiBmb3JtSW5wdXQuY29udHJvbHNbaW5wdXRGaWVsZC5mb3JtXS5pbnZhbGlkXCI+LSBJbnZhbGlkPC9lbT5cblx0XHRcdFx0XHRcdDxkaXYgKm5nSWY9XCJpbnB1dEZpZWxkLnR5cGUgIT09ICdzdGF0ZScgJiYgaW5wdXRGaWVsZC50eXBlICE9PSAndGV4dGFyZWEnICYmIGlucHV0RmllbGQudHlwZSAhPT0gJ251bWJlcicgJiYgaW5wdXRGaWVsZC50eXBlICE9PSAnc2VsZWN0JyAmJiBpbnB1dEZpZWxkLnR5cGUgIT09ICdib29sZWFuJ1wiPlxuXHRcdFx0XHRcdFx0PGlucHV0IFthdXRvZm9jdXNdPVwiaSA9PT0gMCA/IHRydWUgOiBmYWxzZVwiIFtmb2N1c109XCJpID09PSAwID8gdHJ1ZSA6IGZhbHNlXCIgW2Zvcm1Db250cm9sTmFtZV09XCJpbnB1dEZpZWxkLmZvcm1cIiBbbmdDbGFzc109XCJbJ2Zvcm0tY29udHJvbCcsIHZhbGlkYXRlSW5wdXQoaW5wdXRGaWVsZCwgZm9ybUlucHV0KV1cIiBbdHlwZV09XCIoaW5wdXRGaWVsZC50eXBlID8gaW5wdXRGaWVsZC50eXBlIDogJ3RleHQnKVwiPlxuXHRcdFx0XHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBlcnJvck1zZyBvZiBnZXRFcnJvck1lc3NhZ2VzKGlucHV0RmllbGQsIGZvcm1JbnB1dCk7XCI+XG5cdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImludmFsaWQtZmVlZGJhY2tcIj57e2Vycm9yTXNnfX08L2Rpdj5cblx0XHRcdFx0XHRcdFx0PC9uZy1jb250YWluZXI+XG5cdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdDxkaXYgKm5nSWY9XCJpbnB1dEZpZWxkLnR5cGUgPT09ICdzZWxlY3QnXCI+XG5cdFx0XHRcdFx0XHRcdDxuZy1zZWxlY3QgW2Zvcm1Db250cm9sTmFtZV09XCJpbnB1dEZpZWxkLmZvcm1cIiBbbmdDbGFzc109XCJbdmFsaWRhdGVJbnB1dChpbnB1dEZpZWxkLCBmb3JtSW5wdXQpXVwiIFtwbGFjZWhvbGRlcl09XCJpbnB1dEZpZWxkLnBsYWNlaG9sZGVyXCI+XG5cdFx0XHRcdFx0XHRcdFx0PG5nLW9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0IG9mIGlucHV0RmllbGQub3B0aW9uc1wiIFt2YWx1ZV09XCJvcHQudmFsdWVcIiBbZGlzYWJsZWRdPVwib3B0LnZhbHVlID09PSAnZGlzYWJsZWQnXCI+e3tvcHQudGV4dH19PC9uZy1vcHRpb24+XG5cdFx0XHRcdFx0XHRcdDwvbmctc2VsZWN0PlxuXHRcdFx0XHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBlcnJvck1zZyBvZiBnZXRFcnJvck1lc3NhZ2VzKGlucHV0RmllbGQsIGZvcm1JbnB1dCk7XCI+XG5cdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImludmFsaWQtZmVlZGJhY2tcIj57e2Vycm9yTXNnfX08L2Rpdj5cblx0XHRcdFx0XHRcdFx0PC9uZy1jb250YWluZXI+XG5cdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdDxkaXYgKm5nSWY9XCJpbnB1dEZpZWxkLnR5cGUgPT09ICdzdGF0ZSdcIj5cblx0XHRcdFx0XHRcdFx0PHNlbGVjdCBbZm9ybUNvbnRyb2xOYW1lXT1cImlucHV0RmllbGQuZm9ybVwiIFtuZ0NsYXNzXT1cIlsnZm9ybS1jb250cm9sJywgdmFsaWRhdGVJbnB1dChpbnB1dEZpZWxkLCBmb3JtSW5wdXQpXVwiPlxuXHRcdFx0XHRcdFx0XHRcdDxvcHRpb24gdmFsdWU9XCJcIj5TZWxlY3QgU3RhdGU8L29wdGlvbj5cblx0XHRcdFx0XHRcdFx0XHQ8b3B0aW9uICpuZ0Zvcj1cImxldCBzdGF0ZSBvZiBzdGF0ZXNcIiBbdmFsdWVdPVwic3RhdGVcIj57e3N0YXRlfX08L29wdGlvbj5cblx0XHRcdFx0XHRcdFx0PC9zZWxlY3Q+XG5cdFx0XHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGVycm9yTXNnIG9mIGdldEVycm9yTWVzc2FnZXMoaW5wdXRGaWVsZCwgZm9ybUlucHV0KTtcIj5cblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiPnt7ZXJyb3JNc2d9fTwvZGl2PlxuXHRcdFx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cblx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0PGRpdiAqbmdJZj1cImlucHV0RmllbGQudHlwZSA9PT0gJ3RleHRhcmVhJ1wiPlxuXHRcdFx0XHRcdFx0XHQ8dGV4dGFyZWEgcm93cz1cIjRcIiBbZm9ybUNvbnRyb2xOYW1lXT1cImlucHV0RmllbGQuZm9ybVwiIFtuZ0NsYXNzXT1cIlsnZm9ybS1jb250cm9sJywgdmFsaWRhdGVJbnB1dChpbnB1dEZpZWxkLCBmb3JtSW5wdXQpXVwiPjwvdGV4dGFyZWE+XG5cdFx0XHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGVycm9yTXNnIG9mIGdldEVycm9yTWVzc2FnZXMoaW5wdXRGaWVsZCwgZm9ybUlucHV0KTtcIj5cblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiPnt7ZXJyb3JNc2d9fTwvZGl2PlxuXHRcdFx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cblx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0PGRpdiAqbmdJZj1cImlucHV0RmllbGQudHlwZSA9PT0gJ251bWJlcidcIj5cblx0XHRcdFx0XHRcdFx0PGlucHV0IFtmb3JtQ29udHJvbE5hbWVdPVwiaW5wdXRGaWVsZC5mb3JtXCIgdHlwZT1cIm51bWJlclwiIFtuZ0NsYXNzXT1cIlsnZm9ybS1jb250cm9sJywgdmFsaWRhdGVJbnB1dChpbnB1dEZpZWxkLCBmb3JtSW5wdXQpXVwiPlxuXHRcdFx0XHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBlcnJvck1zZyBvZiBnZXRFcnJvck1lc3NhZ2VzKGlucHV0RmllbGQsIGZvcm1JbnB1dCk7XCI+XG5cdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImludmFsaWQtZmVlZGJhY2tcIj57e2Vycm9yTXNnfX08L2Rpdj5cblx0XHRcdFx0XHRcdFx0PC9uZy1jb250YWluZXI+XG5cdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdDxkaXYgKm5nSWY9XCJpbnB1dEZpZWxkLnR5cGUgPT09ICdib29sZWFuJ1wiIChjbGljayk9XCJmb3JtSW5wdXQuY29udHJvbHNbaW5wdXRGaWVsZC5mb3JtXS5zZXRWYWx1ZSghZm9ybUlucHV0LmNvbnRyb2xzW2lucHV0RmllbGQuZm9ybV0udmFsdWUpXCI+XG5cdFx0XHRcdFx0XHRcdDxpICpuZ0lmPVwiZm9ybUlucHV0LmNvbnRyb2xzW2lucHV0RmllbGQuZm9ybV0udmFsdWVcIiBjbGFzcz1cImZhIGZhLWNoZWNrXCIgc3R5bGU9XCJjb2xvcjogZ3JlZW47IGZvbnQtc2l6ZTogMjRweDtcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG5cdFx0XHRcdFx0XHRcdDxpICpuZ0lmPVwiIWZvcm1JbnB1dC5jb250cm9sc1tpbnB1dEZpZWxkLmZvcm1dLnZhbHVlXCIgY2xhc3M9XCJmYSBmYS10aW1lc1wiIHN0eWxlPVwiY29sb3I6IHJlZDsgZm9udC1zaXplOiAyNHB4O1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cblx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdDwvZGl2PlxuXHRcdFx0PGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlclwiPlxuXHRcdFx0XHQ8Zm9ybS1idXR0b24gW2Zvcm1dPVwiZm9ybUlucHV0XCI+PC9mb3JtLWJ1dHRvbj5cblx0XHRcdFx0PGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiIChjbGljayk9XCJfYWN0aXZlTW9kYWwuZGlzbWlzcygpXCI+Q2FuY2VsPC9idXR0b24+XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L2Zvcm0+XG5cdGBcbn0pXG4vLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Y29tcG9uZW50LWNsYXNzLXN1ZmZpeFxuZXhwb3J0IGNsYXNzIERpYWxvZ0lucHV0Q29udGVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cdEBJbnB1dCgpIHRpdGxlID0gJyc7XG5cdEBJbnB1dCgpIGlucHV0RmllbGRzOiBhbnlbXSA9IFtdO1xuXG5cdGZvcm1JbnB1dDogRm9ybUdyb3VwO1xuXG5cdHN0YXRlczogc3RyaW5nW10gPSBbXG5cdFx0J0FsYWJhbWEnLCAnQWxhc2thJywgJ0FyaXpvbmEnLCAnQXJrYW5zYXMnLCAnQ2FsaWZvcm5pYScsICdDb2xvcmFkbycsICdDb25uZWN0aWN1dCcsICdEZWxhd2FyZScsICdGbG9yaWRhJywgJ0dlb3JnaWEnLCAnSGF3YWlpJywgJ0lkYWhvJywgJ0lsbGlub2lzJywgJ0luZGlhbmEnLCAnSW93YScsICdLYW5zYXMnLCAnS2VudHVja3knLCAnTG91aXNpYW5hJywgJ01haW5lJyxcblx0XHQnTWFyeWxhbmQnLCAnTWFzc2FjaHVzZXR0cycsICdNaWNoaWdhbicsICdNaW5uZXNvdGEnLCAnTWlzc2lzc2lwcGknLCAnTWlzc291cmknLCAnTW9udGFuYScsICdOZWJyYXNrYScsICdOZXZhZGEnLCAnTmV3IEhhbXBzaGlyZScsICdOZXcgSmVyc2V5JywgJ05ldyBNZXhpY28nLCAnTmV3IFlvcmsnLCAnTm9ydGggQ2Fyb2xpbmEnLCAnTm9ydGggRGFrb3RhJywgJ09oaW8nLFxuXHRcdCdPa2xhaG9tYScsICdPcmVnb24nLCAnUGVubnN5bHZhbmlhJywgJ1Job2RlIElzbGFuZCcsICdTb3V0aCBDYXJvbGluYScsICdTb3V0aCBEYWtvdGEnLCAnVGVubmVzc2VlJywgJ1RleGFzJywgJ1V0YWgnLCAnVmVybW9udCcsICdWaXJnaW5pYScsICdXYXNoaW5ndG9uJywgJ1dlc3QgVmlyZ2luaWEnLCAnV2lzY29uc2luJywgJ1d5b21pbmcnXTtcblxuXHRjb25zdHJ1Y3RvcihwdWJsaWMgX2FjdGl2ZU1vZGFsOiBOZ2JBY3RpdmVNb2RhbCwgcHJpdmF0ZSBfZmI6IEZvcm1CdWlsZGVyKSB7fVxuXG5cdG5nT25Jbml0KCkge1xuXHRcdHRoaXMuZm9ybUlucHV0ID0gdGhpcy5fZmIuZ3JvdXAoe30pO1xuXG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmlucHV0RmllbGRzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRpZiAodGhpcy5pbnB1dEZpZWxkc1tpXS52YWxpZGF0b3JzID09PSBudWxsKSB7XG5cdFx0XHRcdHRoaXMuZm9ybUlucHV0LmFkZENvbnRyb2wodGhpcy5pbnB1dEZpZWxkc1tpXS5mb3JtLCBuZXcgRm9ybUNvbnRyb2woe3ZhbHVlOiB0aGlzLmlucHV0RmllbGRzW2ldLmRhdGEsIGRpc2FibGVkOiB0aGlzLmlucHV0RmllbGRzW2ldLmRpc2FibGVkfSkpO1xuXHRcdFx0fVxuXHRcdFx0ZWxzZSB7XG5cdFx0XHRcdHRoaXMuZm9ybUlucHV0LmFkZENvbnRyb2wodGhpcy5pbnB1dEZpZWxkc1tpXS5mb3JtLCBuZXcgRm9ybUNvbnRyb2woe3ZhbHVlOiB0aGlzLmlucHV0RmllbGRzW2ldLmRhdGEsIGRpc2FibGVkOiB0aGlzLmlucHV0RmllbGRzW2ldLmRpc2FibGVkfSwgdGhpcy5pbnB1dEZpZWxkc1tpXS52YWxpZGF0b3JzKSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0dmFsaWRhdGVJbnB1dChpbnB1dEZpZWxkLCBmb3JtSW5wdXQpIHtcblxuXHRcdGlmIChpbnB1dEZpZWxkLmRpc2FibGVkKSB7XG5cdFx0XHRyZXR1cm4gJyc7XG5cdFx0fVxuXG5cdFx0bGV0IHZhbGlkID0gdHJ1ZTtcblxuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRGaWVsZC52YWxpZGF0b3JzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRpZiAoZm9ybUlucHV0LmNvbnRyb2xzW2lucHV0RmllbGQuZm9ybV0uaGFzRXJyb3IoW2lucHV0RmllbGQudmFsaWRhdG9yRXJyb3JzW2ldXSkpIHtcblx0XHRcdFx0dmFsaWQgPSBmYWxzZTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAodmFsaWQgJiYgZm9ybUlucHV0LmNvbnRyb2xzW2lucHV0RmllbGQuZm9ybV0udmFsdWUgIT09IG51bGwpIHtcblx0XHRcdHJldHVybiAnaXMtdmFsaWQnO1xuXHRcdH1cblx0XHRlbHNlIGlmICghaW5wdXRGaWVsZC52YWxpZGF0b3JzLmxlbmd0aCB8fCAoIWlucHV0RmllbGQucmVxdWlyZWQgJiYgdmFsaWQpKSB7XG5cdFx0XHRyZXR1cm4gJyc7XG5cdFx0fVxuXHRcdFxuXHRcdHJldHVybiAnaXMtaW52YWxpZCc7XG5cdH1cblxuXHRnZXRFcnJvck1lc3NhZ2VzKGlucHV0RmllbGQsIGZvcm1JbnB1dCkge1xuXHRcdGxldCByZXMgPSBbXTtcblxuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRGaWVsZC52YWxpZGF0b3JzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRpZiAoZm9ybUlucHV0LmNvbnRyb2xzW2lucHV0RmllbGQuZm9ybV0uaGFzRXJyb3IoW2lucHV0RmllbGQudmFsaWRhdG9yRXJyb3JzW2ldXSkpIHtcblx0XHRcdFx0cmVzLnB1c2goaW5wdXRGaWVsZC52YWxpZGF0b3JNc2dbaV0pO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiByZXM7XG5cdH1cbn1cbiJdfQ==
|
|
271
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmlucHV0LmNvbnRlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvd2lkZ2V0cy9kaWFsb2cvZGlhbG9nLmlucHV0LmNvbnRlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFZLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RFLE9BQU8sRUFBYSxXQUFXLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7QUErRjVFLGtEQUFrRDtBQUNsRCxNQUFNLE9BQU8sa0JBQWtCO0lBVzlCLFlBQW1CLFlBQTRCLEVBQVUsR0FBZ0I7UUFBdEQsaUJBQVksR0FBWixZQUFZLENBQWdCO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBYTtRQVZoRSxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1gsZ0JBQVcsR0FBVSxFQUFFLENBQUM7UUFJakMsV0FBTSxHQUFhO1lBQ2xCLFNBQVMsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE9BQU87WUFDbk4sVUFBVSxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxNQUFNO1lBQ25OLFVBQVUsRUFBRSxRQUFRLEVBQUUs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dCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nYk1vZGFsLCBOZ2JBY3RpdmVNb2RhbCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybUJ1aWxkZXIsIFVudHlwZWRGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG5cdHRlbXBsYXRlOiBgXG5cdFx0PGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtSW5wdXRcIiBub3ZhbGlkYXRlIChuZ1N1Ym1pdCk9XCJfYWN0aXZlTW9kYWwuY2xvc2UodGhpcy5mb3JtSW5wdXQuY29udHJvbHMpXCI+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyXCI+XG5cdFx0XHRcdDxoNCBjbGFzcz1cIm1vZGFsLXRpdGxlXCI+PGkgY2xhc3M9XCJmYSBmYS1wbHVzLWNpcmNsZVwiIHN0eWxlPVwiY29sb3I6IGdyZWVuOyBmb250LXNpemU6IDAuODVlbVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT4ge3sgdGl0bGUgfX08L2g0PlxuXHRcdFx0XHQ8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNsb3NlXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgKGNsaWNrKT1cIl9hY3RpdmVNb2RhbC5kaXNtaXNzKClcIj5cblx0XHRcdFx0XHQ8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj4mdGltZXM7PC9zcGFuPlxuXHRcdFx0XHQ8L2J1dHRvbj5cblx0XHRcdDwvZGl2PlxuXHRcdFx0PGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIj5cblx0XHRcdFx0PGRpdiAqbmdGb3I9XCJsZXQgaW5wdXRGaWVsZCBvZiBpbnB1dEZpZWxkczsgbGV0IGkgPSBpbmRleFwiPlxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG5cdFx0XHRcdFx0XHQ8bGFiZWwgY2xhc3M9XCJmb3JtLWNvbnRyb2wtbGFiZWxcIj57e2lucHV0RmllbGQubGFiZWx9fTwvbGFiZWw+XG5cdFx0XHRcdFx0XHQ8ZW0gKm5nSWY9XCJmb3JtSW5wdXQuY29udHJvbHNbaW5wdXRGaWVsZC5mb3JtXS5oYXNFcnJvcigncmVxdWlyZWQnKSAmJiBpbnB1dEZpZWxkLnJlcXVpcmVkXCI+LSBSZXF1aXJlZDwvZW0+XG5cdFx0XHRcdFx0XHQ8ZW0gKm5nSWY9XCIhZm9ybUlucHV0LmNvbnRyb2xzW2lucHV0RmllbGQuZm9ybV0uaGFzRXJyb3IoJ3JlcXVpcmVkJykgJiYgZm9ybUlucHV0LmNvbnRyb2xzW2lucHV0RmllbGQuZm9ybV0uaW52YWxpZFwiPi0gSW52YWxpZDwvZW0+XG5cdFx0XHRcdFx0XHQ8ZGl2ICpuZ0lmPVwiaW5wdXRGaWVsZC50eXBlICE9PSAnZGF0ZScgJiYgaW5wdXRGaWVsZC50eXBlICE9PSAnZGF0ZXRpbWUnICYmIGlucHV0RmllbGQudHlwZSAhPT0gJ3N0YXRlJyAmJiBpbnB1dEZpZWxkLnR5cGUgIT09ICd0ZXh0YXJlYScgJiYgaW5wdXRGaWVsZC50eXBlICE9PSAnbnVtYmVyJyAmJiBpbnB1dEZpZWxkLnR5cGUgIT09ICdzZWxlY3QnICYmIGlucHV0RmllbGQudHlwZSAhPT0gJ2Jvb2xlYW4nXCI+XG5cdFx0XHRcdFx0XHQ8aW5wdXQgW2F1dG9mb2N1c109XCJpID09PSAwID8gdHJ1ZSA6IGZhbHNlXCIgW2ZvY3VzXT1cImkgPT09IDAgPyB0cnVlIDogZmFsc2VcIiBbZm9ybUNvbnRyb2xOYW1lXT1cImlucHV0RmllbGQuZm9ybVwiIFtuZ0NsYXNzXT1cIlsnZm9ybS1jb250cm9sJywgdmFsaWRhdGVJbnB1dChpbnB1dEZpZWxkLCBmb3JtSW5wdXQpXVwiIFt0eXBlXT1cIihpbnB1dEZpZWxkLnR5cGUgPyBpbnB1dEZpZWxkLnR5cGUgOiAndGV4dCcpXCI+XG5cdFx0XHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGVycm9yTXNnIG9mIGdldEVycm9yTWVzc2FnZXMoaW5wdXRGaWVsZCwgZm9ybUlucHV0KTtcIj5cblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiPnt7ZXJyb3JNc2d9fTwvZGl2PlxuXHRcdFx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cblx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0PGRpdiAqbmdJZj1cImlucHV0RmllbGQudHlwZSA9PT0gJ3NlbGVjdCdcIj5cblx0XHRcdFx0XHRcdFx0PG5nLXNlbGVjdCBbZm9ybUNvbnRyb2xOYW1lXT1cImlucHV0RmllbGQuZm9ybVwiIFtuZ0NsYXNzXT1cIlt2YWxpZGF0ZUlucHV0KGlucHV0RmllbGQsIGZvcm1JbnB1dCldXCIgW3BsYWNlaG9sZGVyXT1cImlucHV0RmllbGQucGxhY2Vob2xkZXJcIj5cblx0XHRcdFx0XHRcdFx0XHQ8bmctb3B0aW9uICpuZ0Zvcj1cImxldCBvcHQgb2YgaW5wdXRGaWVsZC5vcHRpb25zXCIgW3ZhbHVlXT1cIm9wdC52YWx1ZVwiIFtkaXNhYmxlZF09XCJvcHQudmFsdWUgPT09ICdkaXNhYmxlZCdcIj57e29wdC50ZXh0fX08L25nLW9wdGlvbj5cblx0XHRcdFx0XHRcdFx0PC9uZy1zZWxlY3Q+XG5cdFx0XHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGVycm9yTXNnIG9mIGdldEVycm9yTWVzc2FnZXMoaW5wdXRGaWVsZCwgZm9ybUlucHV0KTtcIj5cblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiPnt7ZXJyb3JNc2d9fTwvZGl2PlxuXHRcdFx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cblx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0PGRpdiAqbmdJZj1cImlucHV0RmllbGQudHlwZSA9PT0gJ3N0YXRlJ1wiPlxuXHRcdFx0XHRcdFx0XHQ8c2VsZWN0IFtmb3JtQ29udHJvbE5hbWVdPVwiaW5wdXRGaWVsZC5mb3JtXCIgW25nQ2xhc3NdPVwiWydmb3JtLWNvbnRyb2wnLCB2YWxpZGF0ZUlucHV0KGlucHV0RmllbGQsIGZvcm1JbnB1dCldXCI+XG5cdFx0XHRcdFx0XHRcdFx0PG9wdGlvbiB2YWx1ZT1cIlwiPlNlbGVjdCBTdGF0ZTwvb3B0aW9uPlxuXHRcdFx0XHRcdFx0XHRcdDxvcHRpb24gKm5nRm9yPVwibGV0IHN0YXRlIG9mIHN0YXRlc1wiIFt2YWx1ZV09XCJzdGF0ZVwiPnt7c3RhdGV9fTwvb3B0aW9uPlxuXHRcdFx0XHRcdFx0XHQ8L3NlbGVjdD5cblx0XHRcdFx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZXJyb3JNc2cgb2YgZ2V0RXJyb3JNZXNzYWdlcyhpbnB1dEZpZWxkLCBmb3JtSW5wdXQpO1wiPlxuXHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrXCI+e3tlcnJvck1zZ319PC9kaXY+XG5cdFx0XHRcdFx0XHRcdDwvbmctY29udGFpbmVyPlxuXHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHQ8ZGl2ICpuZ0lmPVwiaW5wdXRGaWVsZC50eXBlID09PSAndGV4dGFyZWEnXCI+XG5cdFx0XHRcdFx0XHRcdDx0ZXh0YXJlYSByb3dzPVwiNFwiIFtmb3JtQ29udHJvbE5hbWVdPVwiaW5wdXRGaWVsZC5mb3JtXCIgW25nQ2xhc3NdPVwiWydmb3JtLWNvbnRyb2wnLCB2YWxpZGF0ZUlucHV0KGlucHV0RmllbGQsIGZvcm1JbnB1dCldXCI+PC90ZXh0YXJlYT5cblx0XHRcdFx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZXJyb3JNc2cgb2YgZ2V0RXJyb3JNZXNzYWdlcyhpbnB1dEZpZWxkLCBmb3JtSW5wdXQpO1wiPlxuXHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrXCI+e3tlcnJvck1zZ319PC9kaXY+XG5cdFx0XHRcdFx0XHRcdDwvbmctY29udGFpbmVyPlxuXHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHQ8ZGl2ICpuZ0lmPVwiaW5wdXRGaWVsZC50eXBlID09PSAnbnVtYmVyJ1wiPlxuXHRcdFx0XHRcdFx0XHQ8aW5wdXQgW2Zvcm1Db250cm9sTmFtZV09XCJpbnB1dEZpZWxkLmZvcm1cIiB0eXBlPVwibnVtYmVyXCIgW25nQ2xhc3NdPVwiWydmb3JtLWNvbnRyb2wnLCB2YWxpZGF0ZUlucHV0KGlucHV0RmllbGQsIGZvcm1JbnB1dCldXCI+XG5cdFx0XHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGVycm9yTXNnIG9mIGdldEVycm9yTWVzc2FnZXMoaW5wdXRGaWVsZCwgZm9ybUlucHV0KTtcIj5cblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiPnt7ZXJyb3JNc2d9fTwvZGl2PlxuXHRcdFx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cblx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0PGRpdiAqbmdJZj1cImlucHV0RmllbGQudHlwZSA9PT0gJ2RhdGUnXCI+XG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiPlxuXHRcdFx0XHRcdFx0XHRcdDxpbnB1dCBbZm9ybUNvbnRyb2xOYW1lXT1cImlucHV0RmllbGQuZm9ybVwiIHBsYWNlaG9sZGVyPVwieXl5eS1tbS1kZFwiIG5nYkRhdGVwaWNrZXIgW2ZpcnN0RGF5T2ZXZWVrXT1cIjdcIiAjZD1cIm5nYkRhdGVwaWNrZXJcIiBbbmdDbGFzc109XCJbJ2Zvcm0tY29udHJvbCcsIHZhbGlkYXRlSW5wdXQoaW5wdXRGaWVsZCwgZm9ybUlucHV0KV1cIiAoY2xpY2spPVwiZC50b2dnbGUoKVwiPlxuXHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cC1hcHBlbmRcIiAoY2xpY2spPVwiZC50b2dnbGUoKVwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImlucHV0LWdyb3VwLXRleHRcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PGkgY2xhc3M9XCJmYSBmYS1jYWxlbmRhclwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cblx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0PGRpdiAqbmdJZj1cImlucHV0RmllbGQudHlwZSA9PT0gJ2RhdGV0aW1lJ1wiPlxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwicm93XCIgc3R5bGU9XCJhbGlnbi1pdGVtczogY2VudGVyO1wiPlxuXHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjb2wtc20tOFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0PGxhYmVsIGNsYXNzPVwiZm9ybS1jb250cm9sLWxhYmVsXCIgc3R5bGU9XCJhbGlnbi1pdGVtczogdG9wO1wiPkRhdGUvVGltZTwvbGFiZWw+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PGlucHV0IFtmb3JtQ29udHJvbE5hbWVdPVwiaW5wdXRGaWVsZC5mb3JtXCIgcGxhY2Vob2xkZXI9XCJ5eXl5LW1tLWRkXCIgbmdiRGF0ZXBpY2tlciBbZmlyc3REYXlPZldlZWtdPVwiN1wiICNkPVwibmdiRGF0ZXBpY2tlclwiIFtuZ0NsYXNzXT1cIlsnZm9ybS1jb250cm9sJywgdmFsaWRhdGVJbnB1dChpbnB1dEZpZWxkLCBmb3JtSW5wdXQpXVwiIChjbGljayk9XCJkLnRvZ2dsZSgpXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cC1hcHBlbmRcIiAoY2xpY2spPVwiZC50b2dnbGUoKVwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cC10ZXh0XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8aSBjbGFzcz1cImZhIGZhLWNhbGVuZGFyXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjb2wtc20tNFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0PGxhYmVsIGNsYXNzPVwiZm9ybS1jb250cm9sLWxhYmVsXCIgc3R5bGU9XCJhbGlnbi1pdGVtczogdG9wO1wiPiZuYnNwOzwvbGFiZWw+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8bmdiLXRpbWVwaWNrZXIgW2Zvcm1Db250cm9sTmFtZV09XCJpbnB1dEZpZWxkLmZvcm0gKyAnX3RpbWUnXCIgbWVyaWRpYW49XCJPTlwiIFtuZ0NsYXNzXT1cIlt2YWxpZGF0ZUlucHV0KGlucHV0RmllbGQsIGZvcm1JbnB1dCldXCI+PC9uZ2ItdGltZXBpY2tlcj5cblx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdDxkaXYgKm5nSWY9XCJpbnB1dEZpZWxkLnR5cGUgPT09ICdib29sZWFuJ1wiIChjbGljayk9XCJmb3JtSW5wdXQuY29udHJvbHNbaW5wdXRGaWVsZC5mb3JtXS5zZXRWYWx1ZSghZm9ybUlucHV0LmNvbnRyb2xzW2lucHV0RmllbGQuZm9ybV0udmFsdWUpXCI+XG5cdFx0XHRcdFx0XHRcdDxpICpuZ0lmPVwiZm9ybUlucHV0LmNvbnRyb2xzW2lucHV0RmllbGQuZm9ybV0udmFsdWVcIiBjbGFzcz1cImZhIGZhLWNoZWNrXCIgc3R5bGU9XCJjb2xvcjogZ3JlZW47IGZvbnQtc2l6ZTogMjRweDtcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG5cdFx0XHRcdFx0XHRcdDxpICpuZ0lmPVwiIWZvcm1JbnB1dC5jb250cm9sc1tpbnB1dEZpZWxkLmZvcm1dLnZhbHVlXCIgY2xhc3M9XCJmYSBmYS10aW1lc1wiIHN0eWxlPVwiY29sb3I6IHJlZDsgZm9udC1zaXplOiAyNHB4O1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cblx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdDwvZGl2PlxuXHRcdFx0PGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlclwiPlxuXHRcdFx0XHQ8Zm9ybS1idXR0b24gW2Zvcm1dPVwiZm9ybUlucHV0XCI+PC9mb3JtLWJ1dHRvbj5cblx0XHRcdFx0PGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiIChjbGljayk9XCJfYWN0aXZlTW9kYWwuZGlzbWlzcygpXCI+Q2FuY2VsPC9idXR0b24+XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L2Zvcm0+XG5cdGBcbn0pXG4vLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Y29tcG9uZW50LWNsYXNzLXN1ZmZpeFxuZXhwb3J0IGNsYXNzIERpYWxvZ0lucHV0Q29udGVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cdEBJbnB1dCgpIHRpdGxlID0gJyc7XG5cdEBJbnB1dCgpIGlucHV0RmllbGRzOiBhbnlbXSA9IFtdO1xuXG5cdGZvcm1JbnB1dDogRm9ybUdyb3VwO1xuXG5cdHN0YXRlczogc3RyaW5nW10gPSBbXG5cdFx0J0FsYWJhbWEnLCAnQWxhc2thJywgJ0FyaXpvbmEnLCAnQXJrYW5zYXMnLCAnQ2FsaWZvcm5pYScsICdDb2xvcmFkbycsICdDb25uZWN0aWN1dCcsICdEZWxhd2FyZScsICdGbG9yaWRhJywgJ0dlb3JnaWEnLCAnSGF3YWlpJywgJ0lkYWhvJywgJ0lsbGlub2lzJywgJ0luZGlhbmEnLCAnSW93YScsICdLYW5zYXMnLCAnS2VudHVja3knLCAnTG91aXNpYW5hJywgJ01haW5lJyxcblx0XHQnTWFyeWxhbmQnLCAnTWFzc2FjaHVzZXR0cycsICdNaWNoaWdhbicsICdNaW5uZXNvdGEnLCAnTWlzc2lzc2lwcGknLCAnTWlzc291cmknLCAnTW9udGFuYScsICdOZWJyYXNrYScsICdOZXZhZGEnLCAnTmV3IEhhbXBzaGlyZScsICdOZXcgSmVyc2V5JywgJ05ldyBNZXhpY28nLCAnTmV3IFlvcmsnLCAnTm9ydGggQ2Fyb2xpbmEnLCAnTm9ydGggRGFrb3RhJywgJ09oaW8nLFxuXHRcdCdPa2xhaG9tYScsICdPcmVnb24nLCAnUGVubnN5bHZhbmlhJywgJ1Job2RlIElzbGFuZCcsICdTb3V0aCBDYXJvbGluYScsICdTb3V0aCBEYWtvdGEnLCAnVGVubmVzc2VlJywgJ1RleGFzJywgJ1V0YWgnLCAnVmVybW9udCcsICdWaXJnaW5pYScsICdXYXNoaW5ndG9uJywgJ1dlc3QgVmlyZ2luaWEnLCAnV2lzY29uc2luJywgJ1d5b21pbmcnXTtcblxuXHRjb25zdHJ1Y3RvcihwdWJsaWMgX2FjdGl2ZU1vZGFsOiBOZ2JBY3RpdmVNb2RhbCwgcHJpdmF0ZSBfZmI6IEZvcm1CdWlsZGVyKSB7fVxuXG5cdG5nT25Jbml0KCkge1xuXHRcdHRoaXMuZm9ybUlucHV0ID0gdGhpcy5fZmIuZ3JvdXAoe30pO1xuXG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmlucHV0RmllbGRzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRpZiAodGhpcy5pbnB1dEZpZWxkc1tpXS50eXBlICE9PSAnZGF0ZXRpbWUnKSB7XG5cdFx0XHRcdGlmICh0aGlzLmlucHV0RmllbGRzW2ldLnZhbGlkYXRvcnMgPT09IG51bGwpIHtcblx0XHRcdFx0XHR0aGlzLmZvcm1JbnB1dC5hZGRDb250cm9sKHRoaXMuaW5wdXRGaWVsZHNbaV0uZm9ybSwgbmV3IFVudHlwZWRGb3JtQ29udHJvbCh7dmFsdWU6IHRoaXMuaW5wdXRGaWVsZHNbaV0uZGF0YSwgZGlzYWJsZWQ6IHRoaXMuaW5wdXRGaWVsZHNbaV0uZGlzYWJsZWR9KSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0dGhpcy5mb3JtSW5wdXQuYWRkQ29udHJvbCh0aGlzLmlucHV0RmllbGRzW2ldLmZvcm0sIG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woe3ZhbHVlOiB0aGlzLmlucHV0RmllbGRzW2ldLmRhdGEsIGRpc2FibGVkOiB0aGlzLmlucHV0RmllbGRzW2ldLmRpc2FibGVkfSwgdGhpcy5pbnB1dEZpZWxkc1tpXS52YWxpZGF0b3JzKSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdGVsc2Uge1xuXHRcdFx0XHRpZiAodGhpcy5pbnB1dEZpZWxkc1tpXS52YWxpZGF0b3JzID09PSBudWxsKSB7XG5cdFx0XHRcdFx0dGhpcy5mb3JtSW5wdXQuYWRkQ29udHJvbCh0aGlzLmlucHV0RmllbGRzW2ldLmZvcm0sIG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woe3ZhbHVlOiB0aGlzLmlucHV0RmllbGRzW2ldLmRhdGFbMF0sIGRpc2FibGVkOiB0aGlzLmlucHV0RmllbGRzW2ldLmRpc2FibGVkfSkpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdHRoaXMuZm9ybUlucHV0LmFkZENvbnRyb2wodGhpcy5pbnB1dEZpZWxkc1tpXS5mb3JtLCBuZXcgVW50eXBlZEZvcm1Db250cm9sKHt2YWx1ZTogdGhpcy5pbnB1dEZpZWxkc1tpXS5kYXRhWzBdLCBkaXNhYmxlZDogdGhpcy5pbnB1dEZpZWxkc1tpXS5kaXNhYmxlZH0sIHRoaXMuaW5wdXRGaWVsZHNbaV0udmFsaWRhdG9ycykpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0aWYgKHRoaXMuaW5wdXRGaWVsZHNbaV0udmFsaWRhdG9ycyA9PT0gbnVsbCkge1xuXHRcdFx0XHRcdHRoaXMuZm9ybUlucHV0LmFkZENvbnRyb2wodGhpcy5pbnB1dEZpZWxkc1tpXS5mb3JtICsgJ190aW1lJywgbmV3IFVudHlwZWRGb3JtQ29udHJvbCh7dmFsdWU6IHRoaXMuaW5wdXRGaWVsZHNbaV0uZGF0YVsxXSwgZGlzYWJsZWQ6IHRoaXMuaW5wdXRGaWVsZHNbaV0uZGlzYWJsZWR9KSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0dGhpcy5mb3JtSW5wdXQuYWRkQ29udHJvbCh0aGlzLmlucHV0RmllbGRzW2ldLmZvcm0gKyAnX3RpbWUnLCBuZXcgVW50eXBlZEZvcm1Db250cm9sKHt2YWx1ZTogdGhpcy5pbnB1dEZpZWxkc1tpXS5kYXRhWzFdLCBkaXNhYmxlZDogdGhpcy5pbnB1dEZpZWxkc1tpXS5kaXNhYmxlZH0sIHRoaXMuaW5wdXRGaWVsZHNbaV0udmFsaWRhdG9ycykpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0dmFsaWRhdGVJbnB1dChpbnB1dEZpZWxkLCBmb3JtSW5wdXQpIHtcblxuXHRcdGlmIChpbnB1dEZpZWxkLmRpc2FibGVkKSB7XG5cdFx0XHRyZXR1cm4gJyc7XG5cdFx0fVxuXG5cdFx0bGV0IHZhbGlkID0gdHJ1ZTtcblxuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRGaWVsZC52YWxpZGF0b3JzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRpZiAoZm9ybUlucHV0LmNvbnRyb2xzW2lucHV0RmllbGQuZm9ybV0uaGFzRXJyb3IoW2lucHV0RmllbGQudmFsaWRhdG9yRXJyb3JzW2ldXSkpIHtcblx0XHRcdFx0dmFsaWQgPSBmYWxzZTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAodmFsaWQgJiYgZm9ybUlucHV0LmNvbnRyb2xzW2lucHV0RmllbGQuZm9ybV0udmFsdWUgIT09IG51bGwpIHtcblx0XHRcdHJldHVybiAnaXMtdmFsaWQnO1xuXHRcdH1cblx0XHRlbHNlIGlmICghaW5wdXRGaWVsZC52YWxpZGF0b3JzLmxlbmd0aCB8fCAoIWlucHV0RmllbGQucmVxdWlyZWQgJiYgdmFsaWQpKSB7XG5cdFx0XHRyZXR1cm4gJyc7XG5cdFx0fVxuXHRcdFxuXHRcdHJldHVybiAnaXMtaW52YWxpZCc7XG5cdH1cblxuXHRnZXRFcnJvck1lc3NhZ2VzKGlucHV0RmllbGQsIGZvcm1JbnB1dCkge1xuXHRcdGxldCByZXMgPSBbXTtcblxuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRGaWVsZC52YWxpZGF0b3JzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRpZiAoZm9ybUlucHV0LmNvbnRyb2xzW2lucHV0RmllbGQuZm9ybV0uaGFzRXJyb3IoW2lucHV0RmllbGQudmFsaWRhdG9yRXJyb3JzW2ldXSkpIHtcblx0XHRcdFx0cmVzLnB1c2goaW5wdXRGaWVsZC52YWxpZGF0b3JNc2dbaV0pO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiByZXM7XG5cdH1cbn1cbiJdfQ==
|
|
@@ -13,7 +13,7 @@ import { ToastrModule } from 'ngx-toastr';
|
|
|
13
13
|
import * as i4 from '@angular/common/http';
|
|
14
14
|
import { HttpClientModule } from '@angular/common/http';
|
|
15
15
|
import * as i2 from '@angular/forms';
|
|
16
|
-
import {
|
|
16
|
+
import { UntypedFormControl, Validators, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
17
17
|
import * as i1$5 from 'ngx-device-detector';
|
|
18
18
|
import { DeviceDetectorService } from 'ngx-device-detector';
|
|
19
19
|
import * as i1$3 from '@ng-bootstrap/ng-bootstrap';
|
|
@@ -2188,11 +2188,27 @@ class DialogInputContent {
|
|
|
2188
2188
|
ngOnInit() {
|
|
2189
2189
|
this.formInput = this._fb.group({});
|
|
2190
2190
|
for (let i = 0; i < this.inputFields.length; i++) {
|
|
2191
|
-
if (this.inputFields[i].
|
|
2192
|
-
|
|
2191
|
+
if (this.inputFields[i].type !== 'datetime') {
|
|
2192
|
+
if (this.inputFields[i].validators === null) {
|
|
2193
|
+
this.formInput.addControl(this.inputFields[i].form, new UntypedFormControl({ value: this.inputFields[i].data, disabled: this.inputFields[i].disabled }));
|
|
2194
|
+
}
|
|
2195
|
+
else {
|
|
2196
|
+
this.formInput.addControl(this.inputFields[i].form, new UntypedFormControl({ value: this.inputFields[i].data, disabled: this.inputFields[i].disabled }, this.inputFields[i].validators));
|
|
2197
|
+
}
|
|
2193
2198
|
}
|
|
2194
2199
|
else {
|
|
2195
|
-
|
|
2200
|
+
if (this.inputFields[i].validators === null) {
|
|
2201
|
+
this.formInput.addControl(this.inputFields[i].form, new UntypedFormControl({ value: this.inputFields[i].data[0], disabled: this.inputFields[i].disabled }));
|
|
2202
|
+
}
|
|
2203
|
+
else {
|
|
2204
|
+
this.formInput.addControl(this.inputFields[i].form, new UntypedFormControl({ value: this.inputFields[i].data[0], disabled: this.inputFields[i].disabled }, this.inputFields[i].validators));
|
|
2205
|
+
}
|
|
2206
|
+
if (this.inputFields[i].validators === null) {
|
|
2207
|
+
this.formInput.addControl(this.inputFields[i].form + '_time', new UntypedFormControl({ value: this.inputFields[i].data[1], disabled: this.inputFields[i].disabled }));
|
|
2208
|
+
}
|
|
2209
|
+
else {
|
|
2210
|
+
this.formInput.addControl(this.inputFields[i].form + '_time', new UntypedFormControl({ value: this.inputFields[i].data[1], disabled: this.inputFields[i].disabled }, this.inputFields[i].validators));
|
|
2211
|
+
}
|
|
2196
2212
|
}
|
|
2197
2213
|
}
|
|
2198
2214
|
}
|
|
@@ -2239,7 +2255,7 @@ DialogInputContent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ver
|
|
|
2239
2255
|
<label class="form-control-label">{{inputField.label}}</label>
|
|
2240
2256
|
<em *ngIf="formInput.controls[inputField.form].hasError('required') && inputField.required">- Required</em>
|
|
2241
2257
|
<em *ngIf="!formInput.controls[inputField.form].hasError('required') && formInput.controls[inputField.form].invalid">- Invalid</em>
|
|
2242
|
-
<div *ngIf="inputField.type !== 'state' && inputField.type !== 'textarea' && inputField.type !== 'number' && inputField.type !== 'select' && inputField.type !== 'boolean'">
|
|
2258
|
+
<div *ngIf="inputField.type !== 'date' && inputField.type !== 'datetime' && inputField.type !== 'state' && inputField.type !== 'textarea' && inputField.type !== 'number' && inputField.type !== 'select' && inputField.type !== 'boolean'">
|
|
2243
2259
|
<input [autofocus]="i === 0 ? true : false" [focus]="i === 0 ? true : false" [formControlName]="inputField.form" [ngClass]="['form-control', validateInput(inputField, formInput)]" [type]="(inputField.type ? inputField.type : 'text')">
|
|
2244
2260
|
<ng-container *ngFor="let errorMsg of getErrorMessages(inputField, formInput);">
|
|
2245
2261
|
<div class="invalid-feedback">{{errorMsg}}</div>
|
|
@@ -2274,6 +2290,35 @@ DialogInputContent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ver
|
|
|
2274
2290
|
<div class="invalid-feedback">{{errorMsg}}</div>
|
|
2275
2291
|
</ng-container>
|
|
2276
2292
|
</div>
|
|
2293
|
+
<div *ngIf="inputField.type === 'date'">
|
|
2294
|
+
<div class="input-group">
|
|
2295
|
+
<input [formControlName]="inputField.form" placeholder="yyyy-mm-dd" ngbDatepicker [firstDayOfWeek]="7" #d="ngbDatepicker" [ngClass]="['form-control', validateInput(inputField, formInput)]" (click)="d.toggle()">
|
|
2296
|
+
<div class="input-group-append" (click)="d.toggle()">
|
|
2297
|
+
<div class="input-group-text">
|
|
2298
|
+
<i class="fa fa-calendar" aria-hidden="true"></i>
|
|
2299
|
+
</div>
|
|
2300
|
+
</div>
|
|
2301
|
+
</div>
|
|
2302
|
+
</div>
|
|
2303
|
+
<div *ngIf="inputField.type === 'datetime'">
|
|
2304
|
+
<div class="row" style="align-items: center;">
|
|
2305
|
+
<div class="col-sm-8">
|
|
2306
|
+
<label class="form-control-label" style="align-items: top;">Date/Time</label>
|
|
2307
|
+
<div class="input-group">
|
|
2308
|
+
<input [formControlName]="inputField.form" placeholder="yyyy-mm-dd" ngbDatepicker [firstDayOfWeek]="7" #d="ngbDatepicker" [ngClass]="['form-control', validateInput(inputField, formInput)]" (click)="d.toggle()">
|
|
2309
|
+
<div class="input-group-append" (click)="d.toggle()">
|
|
2310
|
+
<div class="input-group-text">
|
|
2311
|
+
<i class="fa fa-calendar" aria-hidden="true"></i>
|
|
2312
|
+
</div>
|
|
2313
|
+
</div>
|
|
2314
|
+
</div>
|
|
2315
|
+
</div>
|
|
2316
|
+
<div class="col-sm-4">
|
|
2317
|
+
<label class="form-control-label" style="align-items: top;"> </label>
|
|
2318
|
+
<ngb-timepicker [formControlName]="inputField.form + '_time'" meridian="ON" [ngClass]="[validateInput(inputField, formInput)]"></ngb-timepicker>
|
|
2319
|
+
</div>
|
|
2320
|
+
</div>
|
|
2321
|
+
</div>
|
|
2277
2322
|
<div *ngIf="inputField.type === 'boolean'" (click)="formInput.controls[inputField.form].setValue(!formInput.controls[inputField.form].value)">
|
|
2278
2323
|
<i *ngIf="formInput.controls[inputField.form].value" class="fa fa-check" style="color: green; font-size: 24px;" aria-hidden="true"></i>
|
|
2279
2324
|
<i *ngIf="!formInput.controls[inputField.form].value" class="fa fa-times" style="color: red; font-size: 24px;" aria-hidden="true"></i>
|
|
@@ -2286,7 +2331,7 @@ DialogInputContent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ver
|
|
|
2286
2331
|
<button type="button" class="btn btn-secondary" (click)="_activeModal.dismiss()">Cancel</button>
|
|
2287
2332
|
</div>
|
|
2288
2333
|
</form>
|
|
2289
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.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: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: FormButtonComponent, selector: "form-button", inputs: ["form", "disabled", "type"] }, { kind: "component", type: i4$1.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "component", type: i4$1.NgOptionComponent, selector: "ng-option", inputs: ["value", "disabled"] }, { kind: "directive", type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: FocusDirective, selector: "[focus]", inputs: ["focus"] }] });
|
|
2334
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.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: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$3.NgbInputDatepicker, selector: "input[ngbDatepicker]", inputs: ["autoClose", "datepickerClass", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "minDate", "maxDate", "navigation", "outsideDays", "placement", "restoreFocus", "showWeekNumbers", "startDate", "container", "positionTarget", "weekdays", "disabled"], outputs: ["dateSelect", "navigate", "closed"], exportAs: ["ngbDatepicker"] }, { kind: "component", type: i1$3.NgbTimepicker, selector: "ngb-timepicker", inputs: ["meridian", "spinners", "seconds", "hourStep", "minuteStep", "secondStep", "readonlyInputs", "size"] }, { kind: "component", type: FormButtonComponent, selector: "form-button", inputs: ["form", "disabled", "type"] }, { kind: "component", type: i4$1.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "component", type: i4$1.NgOptionComponent, selector: "ng-option", inputs: ["value", "disabled"] }, { kind: "directive", type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: FocusDirective, selector: "[focus]", inputs: ["focus"] }] });
|
|
2290
2335
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DialogInputContent, decorators: [{
|
|
2291
2336
|
type: Component,
|
|
2292
2337
|
args: [{
|
|
@@ -2304,7 +2349,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
2304
2349
|
<label class="form-control-label">{{inputField.label}}</label>
|
|
2305
2350
|
<em *ngIf="formInput.controls[inputField.form].hasError('required') && inputField.required">- Required</em>
|
|
2306
2351
|
<em *ngIf="!formInput.controls[inputField.form].hasError('required') && formInput.controls[inputField.form].invalid">- Invalid</em>
|
|
2307
|
-
<div *ngIf="inputField.type !== 'state' && inputField.type !== 'textarea' && inputField.type !== 'number' && inputField.type !== 'select' && inputField.type !== 'boolean'">
|
|
2352
|
+
<div *ngIf="inputField.type !== 'date' && inputField.type !== 'datetime' && inputField.type !== 'state' && inputField.type !== 'textarea' && inputField.type !== 'number' && inputField.type !== 'select' && inputField.type !== 'boolean'">
|
|
2308
2353
|
<input [autofocus]="i === 0 ? true : false" [focus]="i === 0 ? true : false" [formControlName]="inputField.form" [ngClass]="['form-control', validateInput(inputField, formInput)]" [type]="(inputField.type ? inputField.type : 'text')">
|
|
2309
2354
|
<ng-container *ngFor="let errorMsg of getErrorMessages(inputField, formInput);">
|
|
2310
2355
|
<div class="invalid-feedback">{{errorMsg}}</div>
|
|
@@ -2339,6 +2384,35 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
2339
2384
|
<div class="invalid-feedback">{{errorMsg}}</div>
|
|
2340
2385
|
</ng-container>
|
|
2341
2386
|
</div>
|
|
2387
|
+
<div *ngIf="inputField.type === 'date'">
|
|
2388
|
+
<div class="input-group">
|
|
2389
|
+
<input [formControlName]="inputField.form" placeholder="yyyy-mm-dd" ngbDatepicker [firstDayOfWeek]="7" #d="ngbDatepicker" [ngClass]="['form-control', validateInput(inputField, formInput)]" (click)="d.toggle()">
|
|
2390
|
+
<div class="input-group-append" (click)="d.toggle()">
|
|
2391
|
+
<div class="input-group-text">
|
|
2392
|
+
<i class="fa fa-calendar" aria-hidden="true"></i>
|
|
2393
|
+
</div>
|
|
2394
|
+
</div>
|
|
2395
|
+
</div>
|
|
2396
|
+
</div>
|
|
2397
|
+
<div *ngIf="inputField.type === 'datetime'">
|
|
2398
|
+
<div class="row" style="align-items: center;">
|
|
2399
|
+
<div class="col-sm-8">
|
|
2400
|
+
<label class="form-control-label" style="align-items: top;">Date/Time</label>
|
|
2401
|
+
<div class="input-group">
|
|
2402
|
+
<input [formControlName]="inputField.form" placeholder="yyyy-mm-dd" ngbDatepicker [firstDayOfWeek]="7" #d="ngbDatepicker" [ngClass]="['form-control', validateInput(inputField, formInput)]" (click)="d.toggle()">
|
|
2403
|
+
<div class="input-group-append" (click)="d.toggle()">
|
|
2404
|
+
<div class="input-group-text">
|
|
2405
|
+
<i class="fa fa-calendar" aria-hidden="true"></i>
|
|
2406
|
+
</div>
|
|
2407
|
+
</div>
|
|
2408
|
+
</div>
|
|
2409
|
+
</div>
|
|
2410
|
+
<div class="col-sm-4">
|
|
2411
|
+
<label class="form-control-label" style="align-items: top;"> </label>
|
|
2412
|
+
<ngb-timepicker [formControlName]="inputField.form + '_time'" meridian="ON" [ngClass]="[validateInput(inputField, formInput)]"></ngb-timepicker>
|
|
2413
|
+
</div>
|
|
2414
|
+
</div>
|
|
2415
|
+
</div>
|
|
2342
2416
|
<div *ngIf="inputField.type === 'boolean'" (click)="formInput.controls[inputField.form].setValue(!formInput.controls[inputField.form].value)">
|
|
2343
2417
|
<i *ngIf="formInput.controls[inputField.form].value" class="fa fa-check" style="color: green; font-size: 24px;" aria-hidden="true"></i>
|
|
2344
2418
|
<i *ngIf="!formInput.controls[inputField.form].value" class="fa fa-times" style="color: red; font-size: 24px;" aria-hidden="true"></i>
|