@testgorilla/tgo-ui 3.13.0 → 3.13.3
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/components/multi-input/multi-input.component.d.ts +23 -43
- package/components/multi-input/multi-input.model.d.ts +4 -1
- package/components/multi-input/required-multi-input.validator.d.ts +3 -0
- package/components/side-panel/side-panel.component.d.ts +1 -1
- package/components/side-panel/side-panel.model.d.ts +25 -0
- package/components/side-panel/side-panel.service.d.ts +5 -4
- package/esm2022/components/autocomplete/autocomplete.component.mjs +3 -3
- package/esm2022/components/multi-input/multi-input.component.mjs +80 -148
- package/esm2022/components/multi-input/multi-input.model.mjs +1 -1
- package/esm2022/components/multi-input/required-multi-input.validator.mjs +14 -0
- package/esm2022/components/side-panel/side-panel.component.mjs +3 -3
- package/esm2022/components/side-panel/side-panel.model.mjs +31 -1
- package/esm2022/components/side-panel/side-panel.service.mjs +19 -7
- package/fesm2022/testgorilla-tgo-ui.mjs +141 -156
- package/fesm2022/testgorilla-tgo-ui.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-inferrable-types */
|
|
2
|
+
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
|
|
3
|
+
/* eslint-disable no-underscore-dangle */
|
|
4
|
+
/* eslint-disable @typescript-eslint/unbound-method */
|
|
5
|
+
import { booleanAttribute, Component, effect, EventEmitter, HostBinding, input, Input, Optional, Output, Self, } from '@angular/core';
|
|
2
6
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
3
7
|
import { FormControl, Validators, } from '@angular/forms';
|
|
8
|
+
import { requiredMultiInput } from './required-multi-input.validator';
|
|
4
9
|
import * as i0 from "@angular/core";
|
|
5
10
|
import * as i1 from "@angular/forms";
|
|
6
11
|
import * as i2 from "@angular/common";
|
|
@@ -11,20 +16,8 @@ import * as i6 from "../validation-error/validation-error.component";
|
|
|
11
16
|
import * as i7 from "../field/field.component";
|
|
12
17
|
import * as i8 from "../../pipes/has-validation-error.pipe";
|
|
13
18
|
export class MultiInputComponent {
|
|
14
|
-
|
|
15
|
-
*
|
|
16
|
-
* @description The Value of the multi input
|
|
17
|
-
* @type {MultiInputValue}
|
|
18
|
-
* @memberof MultiInputComponent
|
|
19
|
-
*/
|
|
20
|
-
set value(v) {
|
|
21
|
-
this._value = v;
|
|
22
|
-
this.addDropdownControl();
|
|
23
|
-
this.multiInputForm.patchValue(v);
|
|
24
|
-
}
|
|
25
|
-
constructor(ngControl, defaultAppTheme, fb) {
|
|
19
|
+
constructor(ngControl, fb) {
|
|
26
20
|
this.ngControl = ngControl;
|
|
27
|
-
this.defaultAppTheme = defaultAppTheme;
|
|
28
21
|
this.fb = fb;
|
|
29
22
|
/**
|
|
30
23
|
*
|
|
@@ -32,105 +25,105 @@ export class MultiInputComponent {
|
|
|
32
25
|
* @type {Record<string, string | null | number>[]}
|
|
33
26
|
* @memberof MultiInputComponent
|
|
34
27
|
*/
|
|
35
|
-
this.itemsList =
|
|
28
|
+
this.itemsList = input.required();
|
|
36
29
|
/**
|
|
37
30
|
*
|
|
38
31
|
* @description The field to be displayed in the dropdown
|
|
39
32
|
* @type {string}
|
|
40
33
|
* @memberof MultiInputComponent
|
|
41
34
|
*/
|
|
42
|
-
this.itemTextField =
|
|
35
|
+
this.itemTextField = input.required();
|
|
43
36
|
/**
|
|
44
37
|
*
|
|
45
38
|
* @description The value to be displayed in the droddown
|
|
46
39
|
* @type {string}
|
|
47
40
|
* @memberof MultiInputComponent
|
|
48
41
|
*/
|
|
49
|
-
this.itemValueField =
|
|
42
|
+
this.itemValueField = input.required();
|
|
43
|
+
/**
|
|
44
|
+
*
|
|
45
|
+
* @description The Value of the multi input
|
|
46
|
+
* @type {MultiInputValue}
|
|
47
|
+
* @memberof MultiInputComponent
|
|
48
|
+
*/
|
|
49
|
+
this.value = input();
|
|
50
50
|
/**
|
|
51
51
|
*
|
|
52
52
|
* @description Disables the multi input
|
|
53
53
|
* @type {boolean}
|
|
54
54
|
* @memberof MultiInputComponent
|
|
55
55
|
*/
|
|
56
|
-
this.disabled = false;
|
|
56
|
+
this.disabled = input(false, { transform: booleanAttribute });
|
|
57
57
|
/**
|
|
58
58
|
*
|
|
59
59
|
* @description Defines if the multi input is required
|
|
60
60
|
* @type {boolean}
|
|
61
61
|
* @memberof MultiInputComponent
|
|
62
62
|
*/
|
|
63
|
-
this.required = false;
|
|
63
|
+
this.required = input(false, { transform: booleanAttribute });
|
|
64
64
|
/**
|
|
65
65
|
*
|
|
66
66
|
* @description Defines the label of the multi input
|
|
67
67
|
* @type {string}
|
|
68
68
|
* @memberof MultiInputComponent
|
|
69
69
|
*/
|
|
70
|
-
this.label = '';
|
|
70
|
+
this.label = input('');
|
|
71
71
|
/**
|
|
72
72
|
*
|
|
73
73
|
* @description Defines the placeholder of the multi input
|
|
74
74
|
* @type {string}
|
|
75
75
|
* @memberof MultiInputComponent
|
|
76
76
|
*/
|
|
77
|
-
this.placeholder = '';
|
|
77
|
+
this.placeholder = input('');
|
|
78
78
|
/**
|
|
79
79
|
*
|
|
80
80
|
* @description Allow decimal values in the multi input
|
|
81
81
|
* @type {boolean}
|
|
82
82
|
* @memberof MultiInputComponent
|
|
83
83
|
*/
|
|
84
|
-
this.allowDecimal = true;
|
|
84
|
+
this.allowDecimal = input(true, { transform: booleanAttribute });
|
|
85
85
|
/**
|
|
86
86
|
*
|
|
87
87
|
* @description Allow negative values in the multi input
|
|
88
88
|
* @type {boolean}
|
|
89
89
|
* @memberof MultiInputComponent
|
|
90
90
|
*/
|
|
91
|
-
this.allowNegative = true;
|
|
92
|
-
/**
|
|
93
|
-
*
|
|
94
|
-
* @description The theme of the application
|
|
95
|
-
* @type {ApplicationTheme}
|
|
96
|
-
* @memberof MultiInputComponent
|
|
97
|
-
*/
|
|
98
|
-
this.applicationTheme = 'light';
|
|
91
|
+
this.allowNegative = input(true, { transform: booleanAttribute });
|
|
99
92
|
/**
|
|
100
93
|
*
|
|
101
94
|
* @description The errors of the multi input
|
|
102
95
|
* @type {string[]}
|
|
103
96
|
* @memberof MultiInputComponent
|
|
104
97
|
*/
|
|
105
|
-
this.errors = [];
|
|
98
|
+
this.errors = input([]);
|
|
106
99
|
/**
|
|
107
100
|
*
|
|
108
101
|
* @description Hide built in errors for Reactive Forms
|
|
109
102
|
* @type {boolean}
|
|
110
103
|
* @memberof MultiInputComponent
|
|
111
104
|
*/
|
|
112
|
-
this.hideBuiltInErrors = false;
|
|
105
|
+
this.hideBuiltInErrors = input(false, { transform: booleanAttribute });
|
|
113
106
|
/**
|
|
114
107
|
*
|
|
115
108
|
* @description Hide label in errors
|
|
116
109
|
* @type {boolean}
|
|
117
110
|
* @memberof MultiInputComponent
|
|
118
111
|
*/
|
|
119
|
-
this.hideLabelInErrors = false;
|
|
112
|
+
this.hideLabelInErrors = input(false, { transform: booleanAttribute });
|
|
120
113
|
/**
|
|
121
114
|
*
|
|
122
115
|
* @description The maximum characters allowed in the multi input
|
|
123
116
|
* @type {number}
|
|
124
117
|
* @memberof MultiInputComponent
|
|
125
118
|
*/
|
|
126
|
-
this.maxCharacters = 0;
|
|
119
|
+
this.maxCharacters = input(0);
|
|
127
120
|
/**
|
|
128
121
|
*
|
|
129
122
|
* @description The validators to apply to input field
|
|
130
123
|
* @type {Validators[]}
|
|
131
124
|
* @memberof MultiInputComponent
|
|
132
125
|
*/
|
|
133
|
-
this.validators = [];
|
|
126
|
+
this.validators = input([]);
|
|
134
127
|
/**
|
|
135
128
|
*
|
|
136
129
|
* @description The width of the multi input
|
|
@@ -148,44 +141,60 @@ export class MultiInputComponent {
|
|
|
148
141
|
* @ignore
|
|
149
142
|
*/
|
|
150
143
|
this.onTouch = () => { };
|
|
151
|
-
this.showError = false;
|
|
152
144
|
this.multiInputForm = this.fb.group({
|
|
153
145
|
value: null,
|
|
154
146
|
});
|
|
147
|
+
effect(() => {
|
|
148
|
+
this.updateDisableState(this.disabled());
|
|
149
|
+
});
|
|
150
|
+
effect(() => {
|
|
151
|
+
const maxCharacters = this.maxCharacters();
|
|
152
|
+
if (maxCharacters) {
|
|
153
|
+
this.inputControl?.addValidators(Validators.maxLength(maxCharacters));
|
|
154
|
+
this.inputControl?.updateValueAndValidity();
|
|
155
|
+
}
|
|
156
|
+
});
|
|
157
|
+
effect(() => {
|
|
158
|
+
const inputValidators = this.validators();
|
|
159
|
+
if (inputValidators?.length) {
|
|
160
|
+
this.inputControl?.addValidators(inputValidators);
|
|
161
|
+
this.inputControl?.updateValueAndValidity();
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
effect(() => {
|
|
165
|
+
const value = this.value();
|
|
166
|
+
// skip in the context of angular Forms
|
|
167
|
+
if (!this.ngControl) {
|
|
168
|
+
this.addDropdownControl();
|
|
169
|
+
this.patchForm(value);
|
|
170
|
+
}
|
|
171
|
+
});
|
|
155
172
|
if (this.ngControl) {
|
|
156
173
|
this.ngControl.valueAccessor = this;
|
|
157
174
|
}
|
|
158
|
-
if (this.defaultAppTheme) {
|
|
159
|
-
this.applicationTheme = this.defaultAppTheme;
|
|
160
|
-
}
|
|
161
175
|
this.multiInputForm.valueChanges.pipe(takeUntilDestroyed()).subscribe(formValue => {
|
|
162
176
|
this.valueChanged(formValue);
|
|
163
|
-
this.checkFormErrors();
|
|
164
|
-
if (!formValue.value && !formValue[this.itemValueField]) {
|
|
165
|
-
this.showError = true;
|
|
166
|
-
}
|
|
167
177
|
});
|
|
168
178
|
}
|
|
169
179
|
ngOnInit() {
|
|
170
180
|
this.addDropdownControl();
|
|
171
|
-
this.
|
|
172
|
-
|
|
173
|
-
this.inputControl?.addValidators(Validators.required);
|
|
174
|
-
this.dropdownControl?.addValidators(Validators.required);
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
ngOnChanges(changes) {
|
|
178
|
-
if (changes['disabled']) {
|
|
179
|
-
this.updateDisableState(this.disabled);
|
|
181
|
+
if (this.ngControl) {
|
|
182
|
+
this.ngControl.control?.addValidators(requiredMultiInput);
|
|
180
183
|
}
|
|
181
184
|
}
|
|
182
185
|
writeValue(value) {
|
|
183
|
-
this.value = value;
|
|
184
186
|
this.addDropdownControl();
|
|
185
|
-
this.
|
|
187
|
+
this.patchForm(value);
|
|
188
|
+
}
|
|
189
|
+
patchForm(value) {
|
|
190
|
+
if (value) {
|
|
191
|
+
this.multiInputForm.patchValue(value);
|
|
192
|
+
}
|
|
193
|
+
else {
|
|
194
|
+
this.multiInputForm.reset();
|
|
195
|
+
}
|
|
186
196
|
}
|
|
187
197
|
setDisabledState(isDisabled) {
|
|
188
|
-
this.disabled = isDisabled;
|
|
189
198
|
this.updateDisableState(isDisabled);
|
|
190
199
|
}
|
|
191
200
|
registerOnChange(fn) {
|
|
@@ -198,60 +207,32 @@ export class MultiInputComponent {
|
|
|
198
207
|
this.valueChange.emit(value);
|
|
199
208
|
this.onChange(value);
|
|
200
209
|
}
|
|
201
|
-
get value() {
|
|
202
|
-
return this._value;
|
|
203
|
-
}
|
|
204
|
-
get hasRequiredValidator() {
|
|
205
|
-
return !!this.ngControl.control?.hasValidator(Validators.required);
|
|
206
|
-
}
|
|
207
210
|
get dropdownControl() {
|
|
208
|
-
return this.multiInputForm.
|
|
211
|
+
return this.multiInputForm.controls[this.itemValueField()];
|
|
209
212
|
}
|
|
210
213
|
get inputControl() {
|
|
211
|
-
return this.multiInputForm.
|
|
212
|
-
}
|
|
213
|
-
checkFormErrors() {
|
|
214
|
-
const hasErrors = this.inputControl?.errors || this.dropdownControl?.errors;
|
|
215
|
-
if (this.ngControl) {
|
|
216
|
-
this.ngControl.control?.setErrors(!!hasErrors ? { ...this.inputControl?.errors, ...this.dropdownControl?.errors } : null);
|
|
217
|
-
}
|
|
218
|
-
this.showError = !!hasErrors;
|
|
214
|
+
return this.multiInputForm.controls.value;
|
|
219
215
|
}
|
|
220
216
|
markAsTouched() {
|
|
221
217
|
this.onTouch();
|
|
222
|
-
if (this.ngControl &&
|
|
223
|
-
((this.inputControl?.touched && this.dropdownControl?.touched) ||
|
|
224
|
-
(!this.inputControl?.value && !this.dropdownControl?.value))) {
|
|
225
|
-
this.ngControl.control?.markAsTouched();
|
|
226
|
-
}
|
|
227
218
|
}
|
|
228
219
|
addDropdownControl() {
|
|
229
|
-
if (!this.multiInputForm.value[this.itemValueField]) {
|
|
230
|
-
this.multiInputForm.addControl(this.itemValueField, new FormControl(null), { emitEvent: false });
|
|
231
|
-
this.updateDisableState(this.disabled);
|
|
220
|
+
if (!this.multiInputForm.value[this.itemValueField()]) {
|
|
221
|
+
this.multiInputForm.addControl(this.itemValueField(), new FormControl(null), { emitEvent: false });
|
|
222
|
+
this.updateDisableState(this.disabled());
|
|
232
223
|
}
|
|
233
224
|
}
|
|
234
225
|
get controlHasError() {
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
(!this.inputControl?.valid && !!this.inputControl?.touched) ||
|
|
242
|
-
(!this.dropdownControl?.valid && !!this.dropdownControl?.touched);
|
|
226
|
+
if (this.ngControl) {
|
|
227
|
+
return !!(this.ngControl.errors && this.ngControl.touched);
|
|
228
|
+
}
|
|
229
|
+
else {
|
|
230
|
+
return this.errors()?.length > 0;
|
|
231
|
+
}
|
|
243
232
|
}
|
|
244
233
|
getValueLength() {
|
|
245
234
|
return this.inputControl?.value?.toString().length || 0;
|
|
246
235
|
}
|
|
247
|
-
addValidation() {
|
|
248
|
-
if (this.maxCharacters) {
|
|
249
|
-
this.inputControl?.addValidators(Validators.maxLength(this.maxCharacters));
|
|
250
|
-
}
|
|
251
|
-
if (this.validators?.length) {
|
|
252
|
-
this.inputControl?.addValidators(this.validators);
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
236
|
updateDisableState(state) {
|
|
256
237
|
if (state) {
|
|
257
238
|
this.multiInputForm.disable({ emitEvent: false });
|
|
@@ -260,66 +241,17 @@ export class MultiInputComponent {
|
|
|
260
241
|
this.multiInputForm.enable({ emitEvent: false });
|
|
261
242
|
}
|
|
262
243
|
}
|
|
263
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MultiInputComponent, deps: [{ token: i1.NgControl, optional: true, self: true }, { token:
|
|
264
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: MultiInputComponent, selector: "ui-multi-input", inputs: { itemsList: "itemsList", itemTextField: "itemTextField", itemValueField: "itemValueField", value: "value", disabled: ["disabled", "disabled", booleanAttribute], required: ["required", "required", booleanAttribute], label: "label", placeholder: "placeholder", allowDecimal: ["allowDecimal", "allowDecimal", booleanAttribute], allowNegative: ["allowNegative", "allowNegative", booleanAttribute], applicationTheme: "applicationTheme", errors: "errors", hideBuiltInErrors: ["hideBuiltInErrors", "hideBuiltInErrors", booleanAttribute], hideLabelInErrors: ["hideLabelInErrors", "hideLabelInErrors", booleanAttribute], maxCharacters: "maxCharacters", validators: "validators", fullWidth: "fullWidth" }, outputs: { valueChange: "valueChange" }, host: { properties: { "attr.theme": "this.applicationTheme", "class.full-width": "this.fullWidth", "class": "this.class" } }, usesOnChanges: true, ngImport: i0, template: "<div [formGroup]=\"multiInputForm\">\n <div class=\"controls-wrapper\">\n <ui-dropdown\n [hasError]=\"controlHasError\"\n [formControlName]=\"itemValueField\"\n [valueList]=\"itemsList\"\n [textField]=\"itemTextField\"\n [valueField]=\"itemValueField\"\n [showBottomContent]=\"false\"\n [allowClear]=\"false\"\n (closed)=\"markAsTouched(); checkFormErrors()\"\n ></ui-dropdown>\n\n <ui-field\n [hasError]=\"controlHasError\"\n [formControlName]=\"'value'\"\n [label]=\"label\"\n [placeholder]=\"placeholder\"\n [required]=\"required\"\n [hideBuiltInErrors]=\"true\"\n [showBottomContent]=\"false\"\n [allowOnlyDigits]=\"true\"\n [fullWidth]=\"fullWidth\"\n [allowNegative]=\"allowNegative\"\n (focusout)=\"markAsTouched(); checkFormErrors()\"\n ></ui-field>\n </div>\n\n <mat-hint class=\"info\" *ngIf=\"!controlHasError && maxCharacters && !errors?.length\">{{ getValueLength() }} / {{ maxCharacters }}</mat-hint>\n\n @if (errors?.length || (ngControl?.errors | hasValidationError)) {\n <mat-hint class=\"error\">\n @for (error of errors; track error) {\n <ui-icon\n [applicationTheme]=\"applicationTheme\"\n [name]=\"applicationTheme === 'classic' ? 'Error' : 'Error-in-line'\"\n ></ui-icon>{{ error }}\n }\n @if ((ngControl?.errors | hasValidationError) && !hideBuiltInErrors) {\n <ui-validation-error\n [touchedOn]=\"!controlHasError\"\n [ngControl]=\"ngControl\"\n [label]=\"hideLabelInErrors ? null : label\"\n ></ui-validation-error>\n }\n </mat-hint>\n }\n\n</div>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}:host.ui-multi-input{position:relative!important}:host.ui-multi-input .ng-untouched,:host.ui-multi-input .ng-touched{width:fit-content}:host.ui-multi-input.full-width .ng-untouched{width:100%}:host.ui-multi-input .controls-wrapper{display:flex}:host.ui-multi-input ::ng-deep ui-validation-error .errors{display:flex}:host.ui-multi-input ::ng-deep .ui-dropdown{max-width:120px}:host.ui-multi-input ::ng-deep .ui-dropdown .mdc-notched-outline__trailing,:host.ui-multi-input ::ng-deep .ui-dropdown .mat-mdc-text-field-wrapper,:host.ui-multi-input ::ng-deep .ui-dropdown .mat-mdc-form-field.mat-form-field-appearance-outline.mat-form-field-disabled .mdc-notched-outline__trailing{border-right-color:transparent!important;border-top-right-radius:0!important;border-bottom-right-radius:0!important}:host.ui-multi-input ::ng-deep .ui-dropdown:hover .mdc-notched-outline__trailing,:host.ui-multi-input ::ng-deep .ui-dropdown .mat-mdc-form-field-focused .mdc-notched-outline__trailing{border-right-color:#242424}:host.ui-multi-input ::ng-deep .ui-field .mdc-notched-outline__leading,:host.ui-multi-input ::ng-deep .ui-field .mat-mdc-text-field-wrapper{border-top-left-radius:0!important;border-bottom-left-radius:0!important}:host.ui-multi-input ::ng-deep .ui-field .mat-mdc-form-field-subscript-wrapper{position:absolute!important;left:0!important;top:48px!important}:host.ui-multi-input ::ng-deep .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mat-mdc-form-field-infix{padding-top:0!important;padding-bottom:0!important;min-height:48px!important;align-items:center!important;display:flex!important}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint.info{display:block;color:#888;width:100%;text-align:right}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint.error{display:flex;gap:4px;color:#e02800;align-items:center;padding:4px 0 10px}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint.error svg{color:#e02800}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint:before{display:none}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint ui-validation-error{color:#e02800;font-size:12px;line-height:16px;letter-spacing:.4px}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint ui-validation-error .errors{display:flex;align-items:center;padding:4px 0 10px}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint ui-validation-error svg{margin-right:4px;color:#e02800;row-gap:0}:host.ui-multi-input .separator-line{border-left:1px solid var(--mdc-outlined-text-field-outline-color);height:40px;margin:0 12px -7px 8px}:host.ui-multi-input ::ng-deep .mat-mdc-select .mat-mdc-select-arrow-wrapper{display:none}:host.ui-multi-input ::ng-deep .mdc-text-field--outlined{padding-left:12px!important}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "component", type: i4.IconComponent, selector: "ui-icon", inputs: ["size", "cssClass", "name", "color", "filled", "toggleIconStyle", "applicationTheme", "useFullIconName"] }, { kind: "component", type: i5.DropdownComponent, selector: "ui-dropdown", inputs: ["label", "labelIcon", "isAIVariant", "name", "placeholder", "id", "value", "errors", "disabled", "valueList", "allowClear", "allowMultipleSelection", "required", "showBottomContent", "applicationTheme", "hideBuiltInErrors", "hideLabelInErrors", "textField", "valueField", "hasError", "companyColor", "panelClass"], outputs: ["closed", "opened"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i6.ValidationErrorComponent, selector: "ui-validation-error", inputs: ["ngControl", "touchedOn", "errorMessage", "label", "applicationTheme"] }, { kind: "component", type: i7.FieldComponent, selector: "ui-field", inputs: ["fullWidth", "fullHeight", "label", "labelHtml", "labelIcon", "fieldName", "placeholder", "id", "value", "badgeVariant", "errors", "disabled", "required", "readOnly", "hintMessage", "type", "updateOnBlur", "allowOnlyDigits", "isAutocompleteOff", "allowNegative", "showBottomContent", "applicationTheme", "ariaLabel", "loading", "isValid", "maxCharacters", "trimOnBlur", "trimOnSubmit", "maxRows", "hasTextAreaCounter", "hideBuiltInErrors", "hideLabelInErrors", "max", "min", "textareaHeight", "borderless", "isAIVariant", "ariaLabelledby", "ariaDescribedby", "hasError"], outputs: ["validateEvent", "fieldBlur"] }, { kind: "pipe", type: i8.HasValidationErrorPipe, name: "hasValidationError" }] }); }
|
|
244
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MultiInputComponent, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
245
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: MultiInputComponent, selector: "ui-multi-input", inputs: { itemsList: { classPropertyName: "itemsList", publicName: "itemsList", isSignal: true, isRequired: true, transformFunction: null }, itemTextField: { classPropertyName: "itemTextField", publicName: "itemTextField", isSignal: true, isRequired: true, transformFunction: null }, itemValueField: { classPropertyName: "itemValueField", publicName: "itemValueField", isSignal: true, isRequired: true, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, allowDecimal: { classPropertyName: "allowDecimal", publicName: "allowDecimal", isSignal: true, isRequired: false, transformFunction: null }, allowNegative: { classPropertyName: "allowNegative", publicName: "allowNegative", isSignal: true, isRequired: false, transformFunction: null }, errors: { classPropertyName: "errors", publicName: "errors", isSignal: true, isRequired: false, transformFunction: null }, hideBuiltInErrors: { classPropertyName: "hideBuiltInErrors", publicName: "hideBuiltInErrors", isSignal: true, isRequired: false, transformFunction: null }, hideLabelInErrors: { classPropertyName: "hideLabelInErrors", publicName: "hideLabelInErrors", isSignal: true, isRequired: false, transformFunction: null }, maxCharacters: { classPropertyName: "maxCharacters", publicName: "maxCharacters", isSignal: true, isRequired: false, transformFunction: null }, validators: { classPropertyName: "validators", publicName: "validators", isSignal: true, isRequired: false, transformFunction: null }, fullWidth: { classPropertyName: "fullWidth", publicName: "fullWidth", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, host: { properties: { "class.full-width": "this.fullWidth", "class": "this.class" } }, ngImport: i0, template: "<div [formGroup]=\"multiInputForm\">\n <div class=\"controls-wrapper\">\n <ui-dropdown\n [hasError]=\"controlHasError\"\n [formControlName]=\"itemValueField()\"\n [valueList]=\"itemsList()\"\n [textField]=\"itemTextField()\"\n [valueField]=\"itemValueField()\"\n [showBottomContent]=\"false\"\n [allowClear]=\"false\"\n (closed)=\"markAsTouched()\"\n ></ui-dropdown>\n\n <ui-field\n [hasError]=\"controlHasError\"\n formControlName=\"value\"\n [label]=\"label()\"\n [placeholder]=\"placeholder()\"\n [required]=\"required()\"\n [hideBuiltInErrors]=\"true\"\n [showBottomContent]=\"false\"\n [allowOnlyDigits]=\"true\"\n [fullWidth]=\"fullWidth\"\n [allowNegative]=\"allowNegative()\"\n (focusout)=\"markAsTouched()\"\n ></ui-field>\n </div>\n\n <mat-hint class=\"info\" *ngIf=\"!controlHasError && maxCharacters() && !errors()?.length\"\n >{{ getValueLength() }} / {{ maxCharacters() }}</mat-hint\n >\n\n @if (errors()?.length || (ngControl?.errors | hasValidationError)) {\n <mat-hint class=\"error\">\n @for (error of errors(); track error) {\n <ui-icon name=\"Error-in-line\"></ui-icon>{{ error }}\n }\n @if ((ngControl?.errors | hasValidationError) && !hideBuiltInErrors()) {\n <ui-validation-error\n [touchedOn]=\"!controlHasError\"\n [ngControl]=\"ngControl\"\n [label]=\"hideLabelInErrors() ? null : label()\"\n ></ui-validation-error>\n }\n </mat-hint>\n }\n <ng-content select=\"[custom-errors]\"></ng-content>\n</div>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}:host.ui-multi-input{position:relative!important}:host.ui-multi-input .ng-untouched,:host.ui-multi-input .ng-touched{width:fit-content}:host.ui-multi-input.full-width .ng-untouched{width:100%}:host.ui-multi-input .controls-wrapper{display:flex}:host.ui-multi-input ::ng-deep ui-validation-error .errors{display:flex}:host.ui-multi-input ::ng-deep .ui-dropdown{max-width:120px}:host.ui-multi-input ::ng-deep .ui-dropdown .mdc-notched-outline__trailing,:host.ui-multi-input ::ng-deep .ui-dropdown .mat-mdc-text-field-wrapper,:host.ui-multi-input ::ng-deep .ui-dropdown .mat-mdc-form-field.mat-form-field-appearance-outline.mat-form-field-disabled .mdc-notched-outline__trailing{border-right-color:transparent!important;border-top-right-radius:0!important;border-bottom-right-radius:0!important}:host.ui-multi-input ::ng-deep .ui-dropdown:hover .mdc-notched-outline__trailing,:host.ui-multi-input ::ng-deep .ui-dropdown .mat-mdc-form-field-focused .mdc-notched-outline__trailing{border-right-color:#242424}:host.ui-multi-input ::ng-deep .ui-field .mdc-notched-outline__leading,:host.ui-multi-input ::ng-deep .ui-field .mat-mdc-text-field-wrapper{border-top-left-radius:0!important;border-bottom-left-radius:0!important}:host.ui-multi-input ::ng-deep .ui-field .mat-mdc-form-field-subscript-wrapper{position:absolute!important;left:0!important;top:48px!important}:host.ui-multi-input ::ng-deep .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mat-mdc-form-field-infix{padding-top:0!important;padding-bottom:0!important;min-height:48px!important;align-items:center!important;display:flex!important}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint.info{display:block;color:#888;width:100%;text-align:right}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint.error{display:flex;gap:4px;color:#e02800;align-items:center;padding:4px 0 10px}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint.error svg{color:#e02800}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint:before{display:none}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint ui-validation-error{color:#e02800;font-size:12px;line-height:16px;letter-spacing:.4px}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint ui-validation-error .errors{display:flex;align-items:center;padding:4px 0 10px}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint ui-validation-error svg{margin-right:4px;color:#e02800;row-gap:0}:host.ui-multi-input .separator-line{border-left:1px solid var(--mdc-outlined-text-field-outline-color);height:40px;margin:0 12px -7px 8px}:host.ui-multi-input ::ng-deep .mat-mdc-select .mat-mdc-select-arrow-wrapper{display:none}:host.ui-multi-input ::ng-deep .mdc-text-field--outlined{padding-left:12px!important}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "component", type: i4.IconComponent, selector: "ui-icon", inputs: ["size", "cssClass", "name", "color", "filled", "toggleIconStyle", "applicationTheme", "useFullIconName"] }, { kind: "component", type: i5.DropdownComponent, selector: "ui-dropdown", inputs: ["label", "labelIcon", "isAIVariant", "name", "placeholder", "id", "value", "errors", "disabled", "valueList", "allowClear", "allowMultipleSelection", "required", "showBottomContent", "applicationTheme", "hideBuiltInErrors", "hideLabelInErrors", "textField", "valueField", "hasError", "companyColor", "panelClass"], outputs: ["closed", "opened"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i6.ValidationErrorComponent, selector: "ui-validation-error", inputs: ["ngControl", "touchedOn", "errorMessage", "label", "applicationTheme"] }, { kind: "component", type: i7.FieldComponent, selector: "ui-field", inputs: ["fullWidth", "fullHeight", "label", "labelHtml", "labelIcon", "fieldName", "placeholder", "id", "value", "badgeVariant", "errors", "disabled", "required", "readOnly", "hintMessage", "type", "updateOnBlur", "allowOnlyDigits", "isAutocompleteOff", "allowNegative", "showBottomContent", "applicationTheme", "ariaLabel", "loading", "isValid", "maxCharacters", "trimOnBlur", "trimOnSubmit", "maxRows", "hasTextAreaCounter", "hideBuiltInErrors", "hideLabelInErrors", "max", "min", "textareaHeight", "borderless", "isAIVariant", "ariaLabelledby", "ariaDescribedby", "hasError"], outputs: ["validateEvent", "fieldBlur"] }, { kind: "pipe", type: i8.HasValidationErrorPipe, name: "hasValidationError" }] }); }
|
|
265
246
|
}
|
|
266
247
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MultiInputComponent, decorators: [{
|
|
267
248
|
type: Component,
|
|
268
|
-
args: [{ selector: 'ui-multi-input', template: "<div [formGroup]=\"multiInputForm\">\n <div class=\"controls-wrapper\">\n <ui-dropdown\n [hasError]=\"controlHasError\"\n [formControlName]=\"itemValueField\"\n [valueList]=\"itemsList\"\n [textField]=\"itemTextField\"\n [valueField]=\"itemValueField\"\n [showBottomContent]=\"false\"\n [allowClear]=\"false\"\n (closed)=\"markAsTouched()
|
|
249
|
+
args: [{ selector: 'ui-multi-input', template: "<div [formGroup]=\"multiInputForm\">\n <div class=\"controls-wrapper\">\n <ui-dropdown\n [hasError]=\"controlHasError\"\n [formControlName]=\"itemValueField()\"\n [valueList]=\"itemsList()\"\n [textField]=\"itemTextField()\"\n [valueField]=\"itemValueField()\"\n [showBottomContent]=\"false\"\n [allowClear]=\"false\"\n (closed)=\"markAsTouched()\"\n ></ui-dropdown>\n\n <ui-field\n [hasError]=\"controlHasError\"\n formControlName=\"value\"\n [label]=\"label()\"\n [placeholder]=\"placeholder()\"\n [required]=\"required()\"\n [hideBuiltInErrors]=\"true\"\n [showBottomContent]=\"false\"\n [allowOnlyDigits]=\"true\"\n [fullWidth]=\"fullWidth\"\n [allowNegative]=\"allowNegative()\"\n (focusout)=\"markAsTouched()\"\n ></ui-field>\n </div>\n\n <mat-hint class=\"info\" *ngIf=\"!controlHasError && maxCharacters() && !errors()?.length\"\n >{{ getValueLength() }} / {{ maxCharacters() }}</mat-hint\n >\n\n @if (errors()?.length || (ngControl?.errors | hasValidationError)) {\n <mat-hint class=\"error\">\n @for (error of errors(); track error) {\n <ui-icon name=\"Error-in-line\"></ui-icon>{{ error }}\n }\n @if ((ngControl?.errors | hasValidationError) && !hideBuiltInErrors()) {\n <ui-validation-error\n [touchedOn]=\"!controlHasError\"\n [ngControl]=\"ngControl\"\n [label]=\"hideLabelInErrors() ? null : label()\"\n ></ui-validation-error>\n }\n </mat-hint>\n }\n <ng-content select=\"[custom-errors]\"></ng-content>\n</div>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}:host.ui-multi-input{position:relative!important}:host.ui-multi-input .ng-untouched,:host.ui-multi-input .ng-touched{width:fit-content}:host.ui-multi-input.full-width .ng-untouched{width:100%}:host.ui-multi-input .controls-wrapper{display:flex}:host.ui-multi-input ::ng-deep ui-validation-error .errors{display:flex}:host.ui-multi-input ::ng-deep .ui-dropdown{max-width:120px}:host.ui-multi-input ::ng-deep .ui-dropdown .mdc-notched-outline__trailing,:host.ui-multi-input ::ng-deep .ui-dropdown .mat-mdc-text-field-wrapper,:host.ui-multi-input ::ng-deep .ui-dropdown .mat-mdc-form-field.mat-form-field-appearance-outline.mat-form-field-disabled .mdc-notched-outline__trailing{border-right-color:transparent!important;border-top-right-radius:0!important;border-bottom-right-radius:0!important}:host.ui-multi-input ::ng-deep .ui-dropdown:hover .mdc-notched-outline__trailing,:host.ui-multi-input ::ng-deep .ui-dropdown .mat-mdc-form-field-focused .mdc-notched-outline__trailing{border-right-color:#242424}:host.ui-multi-input ::ng-deep .ui-field .mdc-notched-outline__leading,:host.ui-multi-input ::ng-deep .ui-field .mat-mdc-text-field-wrapper{border-top-left-radius:0!important;border-bottom-left-radius:0!important}:host.ui-multi-input ::ng-deep .ui-field .mat-mdc-form-field-subscript-wrapper{position:absolute!important;left:0!important;top:48px!important}:host.ui-multi-input ::ng-deep .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mat-mdc-form-field-infix{padding-top:0!important;padding-bottom:0!important;min-height:48px!important;align-items:center!important;display:flex!important}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint.info{display:block;color:#888;width:100%;text-align:right}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint.error{display:flex;gap:4px;color:#e02800;align-items:center;padding:4px 0 10px}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint.error svg{color:#e02800}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint:before{display:none}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint ui-validation-error{color:#e02800;font-size:12px;line-height:16px;letter-spacing:.4px}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint ui-validation-error .errors{display:flex;align-items:center;padding:4px 0 10px}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint ui-validation-error svg{margin-right:4px;color:#e02800;row-gap:0}:host.ui-multi-input .separator-line{border-left:1px solid var(--mdc-outlined-text-field-outline-color);height:40px;margin:0 12px -7px 8px}:host.ui-multi-input ::ng-deep .mat-mdc-select .mat-mdc-select-arrow-wrapper{display:none}:host.ui-multi-input ::ng-deep .mdc-text-field--outlined{padding-left:12px!important}\n"] }]
|
|
269
250
|
}], ctorParameters: () => [{ type: i1.NgControl, decorators: [{
|
|
270
251
|
type: Optional
|
|
271
252
|
}, {
|
|
272
253
|
type: Self
|
|
273
|
-
}] }, { type:
|
|
274
|
-
type: Optional
|
|
275
|
-
}, {
|
|
276
|
-
type: Inject,
|
|
277
|
-
args: ['CANOPYUI_DEFAULT_APPLICATION_THEME']
|
|
278
|
-
}] }, { type: i1.FormBuilder }], propDecorators: { itemsList: [{
|
|
279
|
-
type: Input,
|
|
280
|
-
args: [{ required: true }]
|
|
281
|
-
}], itemTextField: [{
|
|
282
|
-
type: Input,
|
|
283
|
-
args: [{ required: true }]
|
|
284
|
-
}], itemValueField: [{
|
|
285
|
-
type: Input,
|
|
286
|
-
args: [{ required: true }]
|
|
287
|
-
}], value: [{
|
|
288
|
-
type: Input
|
|
289
|
-
}], disabled: [{
|
|
290
|
-
type: Input,
|
|
291
|
-
args: [{ transform: booleanAttribute }]
|
|
292
|
-
}], required: [{
|
|
293
|
-
type: Input,
|
|
294
|
-
args: [{ transform: booleanAttribute }]
|
|
295
|
-
}], label: [{
|
|
296
|
-
type: Input
|
|
297
|
-
}], placeholder: [{
|
|
298
|
-
type: Input
|
|
299
|
-
}], allowDecimal: [{
|
|
300
|
-
type: Input,
|
|
301
|
-
args: [{ transform: booleanAttribute }]
|
|
302
|
-
}], allowNegative: [{
|
|
303
|
-
type: Input,
|
|
304
|
-
args: [{ transform: booleanAttribute }]
|
|
305
|
-
}], applicationTheme: [{
|
|
306
|
-
type: HostBinding,
|
|
307
|
-
args: ['attr.theme']
|
|
308
|
-
}, {
|
|
309
|
-
type: Input
|
|
310
|
-
}], errors: [{
|
|
311
|
-
type: Input
|
|
312
|
-
}], hideBuiltInErrors: [{
|
|
313
|
-
type: Input,
|
|
314
|
-
args: [{ transform: booleanAttribute }]
|
|
315
|
-
}], hideLabelInErrors: [{
|
|
316
|
-
type: Input,
|
|
317
|
-
args: [{ transform: booleanAttribute }]
|
|
318
|
-
}], maxCharacters: [{
|
|
319
|
-
type: Input
|
|
320
|
-
}], validators: [{
|
|
321
|
-
type: Input
|
|
322
|
-
}], fullWidth: [{
|
|
254
|
+
}] }, { type: i1.FormBuilder }], propDecorators: { fullWidth: [{
|
|
323
255
|
type: HostBinding,
|
|
324
256
|
args: ['class.full-width']
|
|
325
257
|
}, {
|
|
@@ -329,4 +261,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
329
261
|
}], class: [{
|
|
330
262
|
type: HostBinding
|
|
331
263
|
}] } });
|
|
332
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGdvLWNhbm9weS11aS9jb21wb25lbnRzL211bHRpLWlucHV0L211bHRpLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rnby1jYW5vcHktdWkvY29tcG9uZW50cy9tdWx0aS1pbnB1dC9tdWx0aS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNYLE1BQU0sRUFDTixLQUFLLEVBRUwsUUFBUSxFQUNSLE1BQU0sRUFDTixJQUFJLEdBRUwsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUlMLFdBQVcsRUFHWCxVQUFVLEdBQ1gsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7OztBQVN4QixNQUFNLE9BQU8sbUJBQW1CO0lBeUI5Qjs7Ozs7T0FLRztJQUNILElBQWEsS0FBSyxDQUFDLENBQWtCO1FBQ25DLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFtSUQsWUFDZ0MsU0FBb0IsRUFDeUIsZUFBaUMsRUFDM0YsRUFBZTtRQUZGLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDeUIsb0JBQWUsR0FBZixlQUFlLENBQWtCO1FBQzNGLE9BQUUsR0FBRixFQUFFLENBQWE7UUF4S2xDOzs7OztXQUtHO1FBQ3dCLGNBQVMsR0FBNkMsRUFBRSxDQUFDO1FBRXBGOzs7OztXQUtHO1FBQ3dCLGtCQUFhLEdBQUcsRUFB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UWtDLFlBQVk7c0JBQW5ELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBUUUsYUFBYTtzQkFBcEQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFVdEMsZ0JBQWdCO3NCQUZmLFdBQVc7dUJBQUMsWUFBWTs7c0JBQ3hCLEtBQUs7Z0JBU0csTUFBTTtzQkFBZCxLQUFLO2dCQVFrQyxpQkFBaUI7c0JBQXhELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBUUUsaUJBQWlCO3NCQUF4RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQVE3QixhQUFhO3NCQUFyQixLQUFLO2dCQVFHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBVU4sU0FBUztzQkFGUixXQUFXO3VCQUFDLGtCQUFrQjs7c0JBQzlCLEtBQUs7Z0JBR0ksV0FBVztzQkFBcEIsTUFBTTtnQkFFUSxLQUFLO3NCQUFuQixXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RCaW5kaW5nLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFNlbGYsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgRm9ybUJ1aWxkZXIsXG4gIEZvcm1Db250cm9sLFxuICBOZ0NvbnRyb2wsXG4gIFZhbGlkYXRvckZuLFxuICBWYWxpZGF0b3JzLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvblRoZW1lIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2FwcGxpY2F0aW9uLXRoZW1lLm1vZGVsJztcbmltcG9ydCB7IE11bHRpSW5wdXRWYWx1ZSB9IGZyb20gJy4vbXVsdGktaW5wdXQubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd1aS1tdWx0aS1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9tdWx0aS1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9tdWx0aS1pbnB1dC5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIE11bHRpSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0IHtcbiAgLyoqXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvbiBMaXN0IG9mIGl0ZW1zIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgZHJvcGRvd24gbGlzdFxuICAgKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVsbCB8IG51bWJlcj5bXX1cbiAgICogQG1lbWJlcm9mIE11bHRpSW5wdXRDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIGl0ZW1zTGlzdDogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVsbCB8IG51bWJlcj5bXSA9IFtdO1xuXG4gIC8qKlxuICAgKlxuICAgKiBAZGVzY3JpcHRpb24gVGhlIGZpZWxkIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgZHJvcGRvd25cbiAgICogQHR5cGUge3N0cmluZ31cbiAgICogQG1lbWJlcm9mIE11bHRpSW5wdXRDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIGl0ZW1UZXh0RmllbGQgPSAnJztcblxuICAvKipcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uIFRoZSB2YWx1ZSB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIGRyb2Rkb3duXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqIEBtZW1iZXJvZiBNdWx0aUlucHV0Q29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBpdGVtVmFsdWVGaWVsZCA9ICcnO1xuXG4gIC8qKlxuICAgKlxuICAgKiBAZGVzY3JpcHRpb24gVGhlIFZhbHVlIG9mIHRoZSBtdWx0aSBpbnB1dFxuICAgKiBAdHlwZSB7TXVsdGlJbnB1dFZhbHVlfVxuICAgKiBAbWVtYmVyb2YgTXVsdGlJbnB1dENvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgc2V0IHZhbHVlKHY6IE11bHRpSW5wdXRWYWx1ZSkge1xuICAgIHRoaXMuX3ZhbHVlID0gdjtcbiAgICB0aGlzLmFkZERyb3Bkb3duQ29udHJvbCgpO1xuICAgIHRoaXMubXVsdGlJbnB1dEZvcm0ucGF0Y2hWYWx1ZSh2KTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAZGVzY3JpcHRpb24gRGlzYWJsZXMgdGhlIG11bHRpIGlucHV0XG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKiBAbWVtYmVyb2YgTXVsdGlJbnB1dENvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvbiBEZWZpbmVzIGlmIHRoZSBtdWx0aSBpbnB1dCBpcyByZXF1aXJlZFxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQG1lbWJlcm9mIE11bHRpSW5wdXRDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSByZXF1aXJlZCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKlxuICAgKiBAZGVzY3JpcHRpb24gRGVmaW5lcyB0aGUgbGFiZWwgb2YgdGhlIG11bHRpIGlucHV0XG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqIEBtZW1iZXJvZiBNdWx0aUlucHV0Q29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBsYWJlbCA9ICcnO1xuXG4gIC8qKlxuICAgKlxuICAgKiBAZGVzY3JpcHRpb24gRGVmaW5lcyB0aGUgcGxhY2Vob2xkZXIgb2YgdGhlIG11bHRpIGlucHV0XG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqIEBtZW1iZXJvZiBNdWx0aUlucHV0Q29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICcnO1xuXG4gIC8qKlxuICAgKlxuICAgKiBAZGVzY3JpcHRpb24gQWxsb3cgZGVjaW1hbCB2YWx1ZXMgaW4gdGhlIG11bHRpIGlucHV0XG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKiBAbWVtYmVyb2YgTXVsdGlJbnB1dENvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGFsbG93RGVjaW1hbCA9IHRydWU7XG5cbiAgLyoqXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvbiBBbGxvdyBuZWdhdGl2ZSB2YWx1ZXMgaW4gdGhlIG11bHRpIGlucHV0XG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKiBAbWVtYmVyb2YgTXVsdGlJbnB1dENvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGFsbG93TmVnYXRpdmUgPSB0cnVlO1xuXG4gIC8qKlxuICAgKlxuICAgKiBAZGVzY3JpcHRpb24gVGhlIHRoZW1lIG9mIHRoZSBhcHBsaWNhdGlvblxuICAgKiBAdHlwZSB7QXBwbGljYXRpb25UaGVtZX1cbiAgICogQG1lbWJlcm9mIE11bHRpSW5wdXRDb21wb25lbnRcbiAgICovXG4gIEBIb3N0QmluZGluZygnYXR0ci50aGVtZScpXG4gIEBJbnB1dCgpXG4gIGFwcGxpY2F0aW9uVGhlbWU6IEFwcGxpY2F0aW9uVGhlbWUgPSAnbGlnaHQnO1xuXG4gIC8qKlxuICAgKlxuICAgKiBAZGVzY3JpcHRpb24gVGhlIGVycm9ycyBvZiB0aGUgbXVsdGkgaW5wdXRcbiAgICogQHR5cGUge3N0cmluZ1tdfVxuICAgKiBAbWVtYmVyb2YgTXVsdGlJbnB1dENvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgZXJyb3JzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIC8qKlxuICAgKlxuICAgKiBAZGVzY3JpcHRpb24gSGlkZSBidWlsdCBpbiBlcnJvcnMgZm9yIFJlYWN0aXZlIEZvcm1zXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKiBAbWVtYmVyb2YgTXVsdGlJbnB1dENvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGhpZGVCdWlsdEluRXJyb3JzID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvbiBIaWRlIGxhYmVsIGluIGVycm9yc1xuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQG1lbWJlcm9mIE11bHRpSW5wdXRDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBoaWRlTGFiZWxJbkVycm9ycyA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKlxuICAgKiBAZGVzY3JpcHRpb24gVGhlIG1heGltdW0gY2hhcmFjdGVycyBhbGxvd2VkIGluIHRoZSBtdWx0aSBpbnB1dFxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKiBAbWVtYmVyb2YgTXVsdGlJbnB1dENvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgbWF4Q2hhcmFjdGVycyA9IDA7XG5cbiAgLyoqXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvbiBUaGUgdmFsaWRhdG9ycyB0byBhcHBseSB0byBpbnB1dCBmaWVsZFxuICAgKiBAdHlwZSB7VmFsaWRhdG9yc1tdfVxuICAgKiBAbWVtYmVyb2YgTXVsdGlJbnB1dENvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgdmFsaWRhdG9yczogVmFsaWRhdG9yRm5bXSA9IFtdO1xuXG4gIC8qKlxuICAgKlxuICAgKiBAZGVzY3JpcHRpb24gVGhlIHdpZHRoIG9mIHRoZSBtdWx0aSBpbnB1dFxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQG1lbWJlcm9mIE11bHRpSW5wdXRDb21wb25lbnRcbiAgICovXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZnVsbC13aWR0aCcpXG4gIEBJbnB1dCgpXG4gIGZ1bGxXaWR0aDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8TXVsdGlJbnB1dFZhbHVlPigpO1xuXG4gIEBIb3N0QmluZGluZygpIGNsYXNzID0gJ3VpLW11bHRpLWlucHV0JztcblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgb25DaGFuZ2UgPSAoXzogYW55KTogdm9pZCA9PiB7fTtcblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgb25Ub3VjaCA9ICgpOiB2b2lkID0+IHt9O1xuXG4gIHByaXZhdGUgX3ZhbHVlOiBNdWx0aUlucHV0VmFsdWUgfCB1bmRlZmluZWQ7XG4gIHByb3RlY3RlZCBzaG93RXJyb3IgPSBmYWxzZTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbXVsdGlJbnB1dEZvcm0gPSB0aGlzLmZiLmdyb3VwPE11bHRpSW5wdXRWYWx1ZT4oe1xuICAgIHZhbHVlOiBudWxsLFxuICB9KTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBAU2VsZigpIHByb3RlY3RlZCBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KCdDQU5PUFlVSV9ERUZBVUxUX0FQUExJQ0FUSU9OX1RIRU1FJykgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0QXBwVGhlbWU6IEFwcGxpY2F0aW9uVGhlbWUsXG4gICAgcHJpdmF0ZSByZWFkb25seSBmYjogRm9ybUJ1aWxkZXJcbiAgKSB7XG4gICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICB9XG5cbiAgICBpZiAodGhpcy5kZWZhdWx0QXBwVGhlbWUpIHtcbiAgICAgIHRoaXMuYXBwbGljYXRpb25UaGVtZSA9IHRoaXMuZGVmYXVsdEFwcFRoZW1lO1xuICAgIH1cblxuICAgIHRoaXMubXVsdGlJbnB1dEZvcm0udmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpLnN1YnNjcmliZShmb3JtVmFsdWUgPT4ge1xuICAgICAgdGhpcy52YWx1ZUNoYW5nZWQoZm9ybVZhbHVlIGFzIE11bHRpSW5wdXRWYWx1ZSk7XG4gICAgICB0aGlzLmNoZWNrRm9ybUVycm9ycygpO1xuXG4gICAgICBpZiAoIShmb3JtVmFsdWUgYXMgYW55KS52YWx1ZSAmJiAhKGZvcm1WYWx1ZSBhcyBhbnkpW3RoaXMuaXRlbVZhbHVlRmllbGRdKSB7XG4gICAgICAgIHRoaXMuc2hvd0Vycm9yID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYWRkRHJvcGRvd25Db250cm9sKCk7XG4gICAgdGhpcy5hZGRWYWxpZGF0aW9uKCk7XG5cbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wgJiYgdGhpcy5oYXNSZXF1aXJlZFZhbGlkYXRvcikge1xuICAgICAgdGhpcy5pbnB1dENvbnRyb2w/LmFkZFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgICB0aGlzLmRyb3Bkb3duQ29udHJvbD8uYWRkVmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ2Rpc2FibGVkJ10pIHtcbiAgICAgIHRoaXMudXBkYXRlRGlzYWJsZVN0YXRlKHRoaXMuZGlzYWJsZWQpO1xuICAgIH1cbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IE11bHRpSW5wdXRWYWx1ZSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLmFkZERyb3Bkb3duQ29udHJvbCgpO1xuICAgIHRoaXMubXVsdGlJbnB1dEZvcm0ucGF0Y2hWYWx1ZSh2YWx1ZSk7XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB0aGlzLnVwZGF0ZURpc2FibGVTdGF0ZShpc0Rpc2FibGVkKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2ggPSBmbjtcbiAgfVxuXG4gIHByb3RlY3RlZCB2YWx1ZUNoYW5nZWQodmFsdWU6IE11bHRpSW5wdXRWYWx1ZSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XG4gIH1cblxuICBnZXQgdmFsdWUoKTogTXVsdGlJbnB1dFZhbHVlIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IGhhc1JlcXVpcmVkVmFsaWRhdG9yKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMubmdDb250cm9sLmNvbnRyb2w/Lmhhc1ZhbGlkYXRvcihWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgZHJvcGRvd25Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbDxzdHJpbmcgfCBudWxsPiB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLm11bHRpSW5wdXRGb3JtLmdldCh0aGlzLml0ZW1WYWx1ZUZpZWxkKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgaW5wdXRDb250cm9sKCk6IEFic3RyYWN0Q29udHJvbDxudW1iZXIgfCBudWxsPiB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLm11bHRpSW5wdXRGb3JtLmdldCgndmFsdWUnKSBhcyBhbnk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2hlY2tGb3JtRXJyb3JzKCk6IHZvaWQge1xuICAgIGNvbnN0IGhhc0Vycm9ycyA9IHRoaXMuaW5wdXRDb250cm9sPy5lcnJvcnMgfHwgdGhpcy5kcm9wZG93bkNvbnRyb2w/LmVycm9ycztcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgIHRoaXMubmdDb250cm9sLmNvbnRyb2w/LnNldEVycm9ycyhcbiAgICAgICAgISFoYXNFcnJvcnMgPyB7IC4uLnRoaXMuaW5wdXRDb250cm9sPy5lcnJvcnMsIC4uLnRoaXMuZHJvcGRvd25Db250cm9sPy5lcnJvcnMgfSA6IG51bGxcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMuc2hvd0Vycm9yID0gISFoYXNFcnJvcnM7XG4gIH1cblxuICBwcm90ZWN0ZWQgbWFya0FzVG91Y2hlZCgpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2goKTtcblxuICAgIGlmIChcbiAgICAgIHRoaXMubmdDb250cm9sICYmXG4gICAgICAoKHRoaXMuaW5wdXRDb250cm9sPy50b3VjaGVkICYmIHRoaXMuZHJvcGRvd25Db250cm9sPy50b3VjaGVkKSB8fFxuICAgICAgICAoIXRoaXMuaW5wdXRDb250cm9sPy52YWx1ZSAmJiAhdGhpcy5kcm9wZG93bkNvbnRyb2w/LnZhbHVlKSlcbiAgICApIHtcbiAgICAgIHRoaXMubmdDb250cm9sLmNvbnRyb2w/Lm1hcmtBc1RvdWNoZWQoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgYWRkRHJvcGRvd25Db250cm9sKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5tdWx0aUlucHV0Rm9ybS52YWx1ZVt0aGlzLml0ZW1WYWx1ZUZpZWxkXSkge1xuICAgICAgdGhpcy5tdWx0aUlucHV0Rm9ybS5hZGRDb250cm9sKHRoaXMuaXRlbVZhbHVlRmllbGQsIG5ldyBGb3JtQ29udHJvbChudWxsKSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgdGhpcy51cGRhdGVEaXNhYmxlU3RhdGUodGhpcy5kaXNhYmxlZCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBjb250cm9sSGFzRXJyb3IoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubmdDb250cm9sXG4gICAgICA/ICh0aGlzLnNob3dFcnJvciAmJiAhIXRoaXMubmdDb250cm9sLmNvbnRyb2w/LnRvdWNoZWQpIHx8XG4gICAgICAgICAgKCF0aGlzLmlucHV0Q29udHJvbD8udmFsaWQgJiYgISF0aGlzLmlucHV0Q29udHJvbD8udG91Y2hlZCkgfHxcbiAgICAgICAgICAoIXRoaXMuZHJvcGRvd25Db250cm9sPy52YWxpZCAmJiAhIXRoaXMuZHJvcGRvd25Db250cm9sPy50b3VjaGVkKVxuICAgICAgOiB0aGlzLnNob3dFcnJvciB8fFxuICAgICAgICAgICEhdGhpcy5lcnJvcnMubGVuZ3RoIHx8XG4gICAgICAgICAgKCF0aGlzLmlucHV0Q29udHJvbD8udmFsaWQgJiYgISF0aGlzLmlucHV0Q29udHJvbD8udG91Y2hlZCkgfHxcbiAgICAgICAgICAoIXRoaXMuZHJvcGRvd25Db250cm9sPy52YWxpZCAmJiAhIXRoaXMuZHJvcGRvd25Db250cm9sPy50b3VjaGVkKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRWYWx1ZUxlbmd0aCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmlucHV0Q29udHJvbD8udmFsdWU/LnRvU3RyaW5nKCkubGVuZ3RoIHx8IDA7XG4gIH1cblxuICBwcml2YXRlIGFkZFZhbGlkYXRpb24oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubWF4Q2hhcmFjdGVycykge1xuICAgICAgdGhpcy5pbnB1dENvbnRyb2w/LmFkZFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5tYXhMZW5ndGgodGhpcy5tYXhDaGFyYWN0ZXJzKSk7XG4gICAgfVxuICAgIGlmICh0aGlzLnZhbGlkYXRvcnM/Lmxlbmd0aCkge1xuICAgICAgdGhpcy5pbnB1dENvbnRyb2w/LmFkZFZhbGlkYXRvcnModGhpcy52YWxpZGF0b3JzKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZURpc2FibGVTdGF0ZShzdGF0ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmIChzdGF0ZSkge1xuICAgICAgdGhpcy5tdWx0aUlucHV0Rm9ybS5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5tdWx0aUlucHV0Rm9ybS5lbmFibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBbZm9ybUdyb3VwXT1cIm11bHRpSW5wdXRGb3JtXCI+XG4gIDxkaXYgY2xhc3M9XCJjb250cm9scy13cmFwcGVyXCI+XG4gICAgPHVpLWRyb3Bkb3duXG4gICAgICBbaGFzRXJyb3JdPVwiY29udHJvbEhhc0Vycm9yXCJcbiAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiaXRlbVZhbHVlRmllbGRcIlxuICAgICAgW3ZhbHVlTGlzdF09XCJpdGVtc0xpc3RcIlxuICAgICAgW3RleHRGaWVsZF09XCJpdGVtVGV4dEZpZWxkXCJcbiAgICAgIFt2YWx1ZUZpZWxkXT1cIml0ZW1WYWx1ZUZpZWxkXCJcbiAgICAgIFtzaG93Qm90dG9tQ29udGVudF09XCJmYWxzZVwiXG4gICAgICBbYWxsb3dDbGVhcl09XCJmYWxzZVwiXG4gICAgICAoY2xvc2VkKT1cIm1hcmtBc1RvdWNoZWQoKTsgY2hlY2tGb3JtRXJyb3JzKClcIlxuICAgID48L3VpLWRyb3Bkb3duPlxuXG4gICAgPHVpLWZpZWxkXG4gICAgICBbaGFzRXJyb3JdPVwiY29udHJvbEhhc0Vycm9yXCJcbiAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiJ3ZhbHVlJ1wiXG4gICAgICBbbGFiZWxdPVwibGFiZWxcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICBbaGlkZUJ1aWx0SW5FcnJvcnNdPVwidHJ1ZVwiXG4gICAgICBbc2hvd0JvdHRvbUNvbnRlbnRdPVwiZmFsc2VcIlxuICAgICAgW2FsbG93T25seURpZ2l0c109XCJ0cnVlXCJcbiAgICAgIFtmdWxsV2lkdGhdPVwiZnVsbFdpZHRoXCJcbiAgICAgIFthbGxvd05lZ2F0aXZlXT1cImFsbG93TmVnYXRpdmVcIlxuICAgICAgKGZvY3Vzb3V0KT1cIm1hcmtBc1RvdWNoZWQoKTsgY2hlY2tGb3JtRXJyb3JzKClcIlxuICAgID48L3VpLWZpZWxkPlxuICA8L2Rpdj5cblxuICA8bWF0LWhpbnQgY2xhc3M9XCJpbmZvXCIgKm5nSWY9XCIhY29udHJvbEhhc0Vycm9yICYmIG1heENoYXJhY3RlcnMgJiYgIWVycm9ycz8ubGVuZ3RoXCI+e3sgZ2V0VmFsdWVMZW5ndGgoKSB9fSAvIHt7IG1heENoYXJhY3RlcnMgfX08L21hdC1oaW50PlxuXG4gIEBpZiAoZXJyb3JzPy5sZW5ndGggfHwgKG5nQ29udHJvbD8uZXJyb3JzIHwgaGFzVmFsaWRhdGlvbkVycm9yKSkge1xuICAgIDxtYXQtaGludCBjbGFzcz1cImVycm9yXCI+XG4gICAgICBAZm9yIChlcnJvciBvZiBlcnJvcnM7IHRyYWNrIGVycm9yKSB7XG4gICAgICAgIDx1aS1pY29uXG4gICAgICAgICAgW2FwcGxpY2F0aW9uVGhlbWVdPVwiYXBwbGljYXRpb25UaGVtZVwiXG4gICAgICAgICAgW25hbWVdPVwiYXBwbGljYXRpb25UaGVtZSA9PT0gJ2NsYXNzaWMnID8gJ0Vycm9yJyA6ICdFcnJvci1pbi1saW5lJ1wiXG4gICAgICAgID48L3VpLWljb24+e3sgZXJyb3IgfX1cbiAgICAgIH1cbiAgICAgIEBpZiAoKG5nQ29udHJvbD8uZXJyb3JzIHwgaGFzVmFsaWRhdGlvbkVycm9yKSAmJiAhaGlkZUJ1aWx0SW5FcnJvcnMpIHtcbiAgICAgICAgPHVpLXZhbGlkYXRpb24tZXJyb3JcbiAgICAgICAgICBbdG91Y2hlZE9uXT1cIiFjb250cm9sSGFzRXJyb3JcIlxuICAgICAgICAgIFtuZ0NvbnRyb2xdPVwibmdDb250cm9sXCJcbiAgICAgICAgICBbbGFiZWxdPVwiaGlkZUxhYmVsSW5FcnJvcnMgPyBudWxsIDogbGFiZWxcIlxuICAgICAgICA+PC91aS12YWxpZGF0aW9uLWVycm9yPlxuICAgICAgfVxuICAgIDwvbWF0LWhpbnQ+XG4gIH1cblxuPC9kaXY+XG4iXX0=
|
|
264
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGdvLWNhbm9weS11aS9jb21wb25lbnRzL211bHRpLWlucHV0L211bHRpLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rnby1jYW5vcHktdWkvY29tcG9uZW50cy9tdWx0aS1pbnB1dC9tdWx0aS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyREFBMkQ7QUFDM0QsNERBQTREO0FBQzVELHlDQUF5QztBQUN6QyxzREFBc0Q7QUFDdEQsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixTQUFTLEVBQ1QsTUFBTSxFQUNOLFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUNMLEtBQUssRUFFTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLElBQUksR0FDTCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBSUwsV0FBVyxFQUdYLFVBQVUsR0FDWCxNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7Ozs7O0FBT3RFLE1BQU0sT0FBTyxtQkFBbUI7SUFxSjlCLFlBQ2dDLFNBQW9CLEVBQ2pDLEVBQWU7UUFERixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ2pDLE9BQUUsR0FBRixFQUFFLENBQWE7UUF0SmxDOzs7OztXQUtHO1FBQ0gsY0FBUyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQTRDLENBQUM7UUFFdkU7Ozs7O1dBS0c7UUFDSCxrQkFBYSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztRQUV6Qzs7Ozs7V0FLRztRQUNILG1CQUFjLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDO1FBRTFDOzs7OztXQUtH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SUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM3RCxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDbkMsQ0FBQztJQUNILENBQUM7SUFFUyxjQUFjO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRU8sa0JBQWtCLENBQUMsS0FBYztRQUN2QyxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNwRCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDbkQsQ0FBQztJQUNILENBQUM7K0dBelFVLG1CQUFtQjttR0FBbkIsbUJBQW1CLDgwRUNuQ2hDLHNsREFnREE7OzRGRGJhLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxnQkFBZ0I7OzBCQTBKdkIsUUFBUTs7MEJBQUksSUFBSTttRUFyQm5CLFNBQVM7c0JBRlIsV0FBVzt1QkFBQyxrQkFBa0I7O3NCQUM5QixLQUFLO2dCQUdJLFdBQVc7c0JBQXBCLE1BQU07Z0JBRVEsS0FBSztzQkFBbkIsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1pbmZlcnJhYmxlLXR5cGVzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWFzc2lnbm1lbnQgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLXVuZGVyc2NvcmUtZGFuZ2xlICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvdW5ib3VuZC1tZXRob2QgKi9cbmltcG9ydCB7XG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIENvbXBvbmVudCxcbiAgZWZmZWN0LFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RCaW5kaW5nLFxuICBpbnB1dCxcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgU2VsZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBGb3JtQnVpbGRlcixcbiAgRm9ybUNvbnRyb2wsXG4gIE5nQ29udHJvbCxcbiAgVmFsaWRhdG9yRm4sXG4gIFZhbGlkYXRvcnMsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE11bHRpSW5wdXRWYWx1ZSB9IGZyb20gJy4vbXVsdGktaW5wdXQubW9kZWwnO1xuaW1wb3J0IHsgcmVxdWlyZWRNdWx0aUlucHV0IH0gZnJvbSAnLi9yZXF1aXJlZC1tdWx0aS1pbnB1dC52YWxpZGF0b3InO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd1aS1tdWx0aS1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9tdWx0aS1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9tdWx0aS1pbnB1dC5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIE11bHRpSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0IHtcbiAgLyoqXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvbiBMaXN0IG9mIGl0ZW1zIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgZHJvcGRvd24gbGlzdFxuICAgKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVsbCB8IG51bWJlcj5bXX1cbiAgICogQG1lbWJlcm9mIE11bHRpSW5wdXRDb21wb25lbnRcbiAgICovXG4gIGl0ZW1zTGlzdCA9IGlucHV0LnJlcXVpcmVkPFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bGwgfCBudW1iZXI+W10+KCk7XG5cbiAgLyoqXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvbiBUaGUgZmllbGQgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBkcm9wZG93blxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKiBAbWVtYmVyb2YgTXVsdGlJbnB1dENvbXBvbmVudFxuICAgKi9cbiAgaXRlbVRleHRGaWVsZCA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcblxuICAvKipcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uIFRoZSB2YWx1ZSB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIGRyb2Rkb3duXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqIEBtZW1iZXJvZiBNdWx0aUlucHV0Q29tcG9uZW50XG4gICAqL1xuICBpdGVtVmFsdWVGaWVsZCA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcblxuICAvKipcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uIFRoZSBWYWx1ZSBvZiB0aGUgbXVsdGkgaW5wdXRcbiAgICogQHR5cGUge011bHRpSW5wdXRWYWx1ZX1cbiAgICogQG1lbWJlcm9mIE11bHRpSW5wdXRDb21wb25lbnRcbiAgICovXG4gIHZhbHVlID0gaW5wdXQ8TXVsdGlJbnB1dFZhbHVlPigpO1xuXG4gIC8qKlxuICAgKlxuICAgKiBAZGVzY3JpcHRpb24gRGlzYWJsZXMgdGhlIG11bHRpIGlucHV0XG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKiBAbWVtYmVyb2YgTXVsdGlJbnB1dENvbXBvbmVudFxuICAgKi9cbiAgZGlzYWJsZWQgPSBpbnB1dChmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG5cbiAgLyoqXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvbiBEZWZpbmVzIGlmIHRoZSBtdWx0aSBpbnB1dCBpcyByZXF1aXJlZFxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQG1lbWJlcm9mIE11bHRpSW5wdXRDb21wb25lbnRcbiAgICovXG4gIHJlcXVpcmVkID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuXG4gIC8qKlxuICAgKlxuICAgKiBAZGVzY3JpcHRpb24gRGVmaW5lcyB0aGUgbGFiZWwgb2YgdGhlIG11bHRpIGlucHV0XG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqIEBtZW1iZXJvZiBNdWx0aUlucHV0Q29tcG9uZW50XG4gICAqL1xuICBsYWJlbCA9IGlucHV0KCcnKTtcblxuICAvKipcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uIERlZmluZXMgdGhlIHBsYWNlaG9sZGVyIG9mIHRoZSBtdWx0aSBpbnB1dFxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKiBAbWVtYmVyb2YgTXVsdGlJbnB1dENvbXBvbmVudFxuICAgKi9cbiAgcGxhY2Vob2xkZXIgPSBpbnB1dCgnJyk7XG5cbiAgLyoqXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvbiBBbGxvdyBkZWNpbWFsIHZhbHVlcyBpbiB0aGUgbXVsdGkgaW5wdXRcbiAgICogQHR5cGUge2Jvb2xlYW59XG4gICAqIEBtZW1iZXJvZiBNdWx0aUlucHV0Q29tcG9uZW50XG4gICAqL1xuICBhbGxvd0RlY2ltYWwgPSBpbnB1dCh0cnVlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcblxuICAvKipcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uIEFsbG93IG5lZ2F0aXZlIHZhbHVlcyBpbiB0aGUgbXVsdGkgaW5wdXRcbiAgICogQHR5cGUge2Jvb2xlYW59XG4gICAqIEBtZW1iZXJvZiBNdWx0aUlucHV0Q29tcG9uZW50XG4gICAqL1xuICBhbGxvd05lZ2F0aXZlID0gaW5wdXQodHJ1ZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG5cbiAgLyoqXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvbiBUaGUgZXJyb3JzIG9mIHRoZSBtdWx0aSBpbnB1dFxuICAgKiBAdHlwZSB7c3RyaW5nW119XG4gICAqIEBtZW1iZXJvZiBNdWx0aUlucHV0Q29tcG9uZW50XG4gICAqL1xuICBlcnJvcnMgPSBpbnB1dDxzdHJpbmdbXT4oW10pO1xuXG4gIC8qKlxuICAgKlxuICAgKiBAZGVzY3JpcHRpb24gSGlkZSBidWlsdCBpbiBlcnJvcnMgZm9yIFJlYWN0aXZlIEZvcm1zXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKiBAbWVtYmVyb2YgTXVsdGlJbnB1dENvbXBvbmVudFxuICAgKi9cbiAgaGlkZUJ1aWx0SW5FcnJvcnMgPSBpbnB1dChmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG5cbiAgLyoqXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvbiBIaWRlIGxhYmVsIGluIGVycm9yc1xuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQG1lbWJlcm9mIE11bHRpSW5wdXRDb21wb25lbnRcbiAgICovXG4gIGhpZGVMYWJlbEluRXJyb3JzID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuXG4gIC8qKlxuICAgKlxuICAgKiBAZGVzY3JpcHRpb24gVGhlIG1heGltdW0gY2hhcmFjdGVycyBhbGxvd2VkIGluIHRoZSBtdWx0aSBpbnB1dFxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKiBAbWVtYmVyb2YgTXVsdGlJbnB1dENvbXBvbmVudFxuICAgKi9cbiAgbWF4Q2hhcmFjdGVycyA9IGlucHV0KDApO1xuXG4gIC8qKlxuICAgKlxuICAgKiBAZGVzY3JpcHRpb24gVGhlIHZhbGlkYXRvcnMgdG8gYXBwbHkgdG8gaW5wdXQgZmllbGRcbiAgICogQHR5cGUge1ZhbGlkYXRvcnNbXX1cbiAgICogQG1lbWJlcm9mIE11bHRpSW5wdXRDb21wb25lbnRcbiAgICovXG4gIHZhbGlkYXRvcnMgPSBpbnB1dDxWYWxpZGF0b3JGbltdPihbXSk7XG5cbiAgLyoqXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvbiBUaGUgd2lkdGggb2YgdGhlIG11bHRpIGlucHV0XG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKiBAbWVtYmVyb2YgTXVsdGlJbnB1dENvbXBvbmVudFxuICAgKi9cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mdWxsLXdpZHRoJylcbiAgQElucHV0KClcbiAgZnVsbFdpZHRoOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxNdWx0aUlucHV0VmFsdWU+KCk7XG5cbiAgQEhvc3RCaW5kaW5nKCkgY2xhc3MgPSAndWktbXVsdGktaW5wdXQnO1xuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBvbkNoYW5nZSA9IChfOiBhbnkpOiB2b2lkID0+IHt9O1xuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBvblRvdWNoID0gKCk6IHZvaWQgPT4ge307XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG11bHRpSW5wdXRGb3JtID0gdGhpcy5mYi5ncm91cDxNdWx0aUlucHV0VmFsdWU+KHtcbiAgICB2YWx1ZTogbnVsbCxcbiAgfSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBwcm90ZWN0ZWQgbmdDb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgcHJpdmF0ZSByZWFkb25seSBmYjogRm9ybUJ1aWxkZXJcbiAgKSB7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIHRoaXMudXBkYXRlRGlzYWJsZVN0YXRlKHRoaXMuZGlzYWJsZWQoKSk7XG4gICAgfSk7XG5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgbWF4Q2hhcmFjdGVycyA9IHRoaXMubWF4Q2hhcmFjdGVycygpO1xuICAgICAgaWYgKG1heENoYXJhY3RlcnMpIHtcbiAgICAgICAgdGhpcy5pbnB1dENvbnRyb2w/LmFkZFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5tYXhMZW5ndGgobWF4Q2hhcmFjdGVycykpO1xuICAgICAgICB0aGlzLmlucHV0Q29udHJvbD8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGlucHV0VmFsaWRhdG9ycyA9IHRoaXMudmFsaWRhdG9ycygpO1xuICAgICAgaWYgKGlucHV0VmFsaWRhdG9ycz8ubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuaW5wdXRDb250cm9sPy5hZGRWYWxpZGF0b3JzKGlucHV0VmFsaWRhdG9ycyk7XG4gICAgICAgIHRoaXMuaW5wdXRDb250cm9sPy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnZhbHVlKCk7XG4gICAgICAvLyBza2lwIGluIHRoZSBjb250ZXh0IG9mIGFuZ3VsYXIgRm9ybXNcbiAgICAgIGlmICghdGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgICAgdGhpcy5hZGREcm9wZG93bkNvbnRyb2woKTtcbiAgICAgICAgdGhpcy5wYXRjaEZvcm0odmFsdWUpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICB9XG5cbiAgICB0aGlzLm11bHRpSW5wdXRGb3JtLnZhbHVlQ2hhbmdlcy5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKS5zdWJzY3JpYmUoZm9ybVZhbHVlID0+IHtcbiAgICAgIHRoaXMudmFsdWVDaGFuZ2VkKGZvcm1WYWx1ZSBhcyBNdWx0aUlucHV0VmFsdWUpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5hZGREcm9wZG93bkNvbnRyb2woKTtcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgIHRoaXMubmdDb250cm9sLmNvbnRyb2w/LmFkZFZhbGlkYXRvcnMocmVxdWlyZWRNdWx0aUlucHV0KTtcbiAgICB9XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBNdWx0aUlucHV0VmFsdWUpOiB2b2lkIHtcbiAgICB0aGlzLmFkZERyb3Bkb3duQ29udHJvbCgpO1xuICAgIHRoaXMucGF0Y2hGb3JtKHZhbHVlKTtcbiAgfVxuXG4gIHBhdGNoRm9ybSh2YWx1ZTogTXVsdGlJbnB1dFZhbHVlIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLm11bHRpSW5wdXRGb3JtLnBhdGNoVmFsdWUodmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm11bHRpSW5wdXRGb3JtLnJlc2V0KCk7XG4gICAgfVxuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVEaXNhYmxlU3RhdGUoaXNEaXNhYmxlZCk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoID0gZm47XG4gIH1cblxuICBwcm90ZWN0ZWQgdmFsdWVDaGFuZ2VkKHZhbHVlOiBNdWx0aUlucHV0VmFsdWUpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodmFsdWUpO1xuICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBkcm9wZG93bkNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sPHVua25vd24+IHtcbiAgICByZXR1cm4gdGhpcy5tdWx0aUlucHV0Rm9ybS5jb250cm9sc1t0aGlzLml0ZW1WYWx1ZUZpZWxkKCldO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBpbnB1dENvbnRyb2woKTogQWJzdHJhY3RDb250cm9sPHVua25vd24+IHtcbiAgICByZXR1cm4gdGhpcy5tdWx0aUlucHV0Rm9ybS5jb250cm9scy52YWx1ZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBtYXJrQXNUb3VjaGVkKCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFkZERyb3Bkb3duQ29udHJvbCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMubXVsdGlJbnB1dEZvcm0udmFsdWVbdGhpcy5pdGVtVmFsdWVGaWVsZCgpXSkge1xuICAgICAgdGhpcy5tdWx0aUlucHV0Rm9ybS5hZGRDb250cm9sKHRoaXMuaXRlbVZhbHVlRmllbGQoKSwgbmV3IEZvcm1Db250cm9sKG51bGwpLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICB0aGlzLnVwZGF0ZURpc2FibGVTdGF0ZSh0aGlzLmRpc2FibGVkKCkpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgY29udHJvbEhhc0Vycm9yKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgcmV0dXJuICEhKHRoaXMubmdDb250cm9sLmVycm9ycyAmJiB0aGlzLm5nQ29udHJvbC50b3VjaGVkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuZXJyb3JzKCk/Lmxlbmd0aCA+IDA7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGdldFZhbHVlTGVuZ3RoKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuaW5wdXRDb250cm9sPy52YWx1ZT8udG9TdHJpbmcoKS5sZW5ndGggfHwgMDtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlRGlzYWJsZVN0YXRlKHN0YXRlOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKHN0YXRlKSB7XG4gICAgICB0aGlzLm11bHRpSW5wdXRGb3JtLmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm11bHRpSW5wdXRGb3JtLmVuYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IFtmb3JtR3JvdXBdPVwibXVsdGlJbnB1dEZvcm1cIj5cbiAgPGRpdiBjbGFzcz1cImNvbnRyb2xzLXdyYXBwZXJcIj5cbiAgICA8dWktZHJvcGRvd25cbiAgICAgIFtoYXNFcnJvcl09XCJjb250cm9sSGFzRXJyb3JcIlxuICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJpdGVtVmFsdWVGaWVsZCgpXCJcbiAgICAgIFt2YWx1ZUxpc3RdPVwiaXRlbXNMaXN0KClcIlxuICAgICAgW3RleHRGaWVsZF09XCJpdGVtVGV4dEZpZWxkKClcIlxuICAgICAgW3ZhbHVlRmllbGRdPVwiaXRlbVZhbHVlRmllbGQoKVwiXG4gICAgICBbc2hvd0JvdHRvbUNvbnRlbnRdPVwiZmFsc2VcIlxuICAgICAgW2FsbG93Q2xlYXJdPVwiZmFsc2VcIlxuICAgICAgKGNsb3NlZCk9XCJtYXJrQXNUb3VjaGVkKClcIlxuICAgID48L3VpLWRyb3Bkb3duPlxuXG4gICAgPHVpLWZpZWxkXG4gICAgICBbaGFzRXJyb3JdPVwiY29udHJvbEhhc0Vycm9yXCJcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cInZhbHVlXCJcbiAgICAgIFtsYWJlbF09XCJsYWJlbCgpXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlcigpXCJcbiAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZCgpXCJcbiAgICAgIFtoaWRlQnVpbHRJbkVycm9yc109XCJ0cnVlXCJcbiAgICAgIFtzaG93Qm90dG9tQ29udGVudF09XCJmYWxzZVwiXG4gICAgICBbYWxsb3dPbmx5RGlnaXRzXT1cInRydWVcIlxuICAgICAgW2Z1bGxXaWR0aF09XCJmdWxsV2lkdGhcIlxuICAgICAgW2FsbG93TmVnYXRpdmVdPVwiYWxsb3dOZWdhdGl2ZSgpXCJcbiAgICAgIChmb2N1c291dCk9XCJtYXJrQXNUb3VjaGVkKClcIlxuICAgID48L3VpLWZpZWxkPlxuICA8L2Rpdj5cblxuICA8bWF0LWhpbnQgY2xhc3M9XCJpbmZvXCIgKm5nSWY9XCIhY29udHJvbEhhc0Vycm9yICYmIG1heENoYXJhY3RlcnMoKSAmJiAhZXJyb3JzKCk/Lmxlbmd0aFwiXG4gICAgPnt7IGdldFZhbHVlTGVuZ3RoKCkgfX0gLyB7eyBtYXhDaGFyYWN0ZXJzKCkgfX08L21hdC1oaW50XG4gID5cblxuICBAaWYgKGVycm9ycygpPy5sZW5ndGggfHwgKG5nQ29udHJvbD8uZXJyb3JzIHwgaGFzVmFsaWRhdGlvbkVycm9yKSkge1xuICAgIDxtYXQtaGludCBjbGFzcz1cImVycm9yXCI+XG4gICAgICBAZm9yIChlcnJvciBvZiBlcnJvcnMoKTsgdHJhY2sgZXJyb3IpIHtcbiAgICAgICAgPHVpLWljb24gbmFtZT1cIkVycm9yLWluLWxpbmVcIj48L3VpLWljb24+e3sgZXJyb3IgfX1cbiAgICAgIH1cbiAgICAgIEBpZiAoKG5nQ29udHJvbD8uZXJyb3JzIHwgaGFzVmFsaWRhdGlvbkVycm9yKSAmJiAhaGlkZUJ1aWx0SW5FcnJvcnMoKSkge1xuICAgICAgICA8dWktdmFsaWRhdGlvbi1lcnJvclxuICAgICAgICAgIFt0b3VjaGVkT25dPVwiIWNvbnRyb2xIYXNFcnJvclwiXG4gICAgICAgICAgW25nQ29udHJvbF09XCJuZ0NvbnRyb2xcIlxuICAgICAgICAgIFtsYWJlbF09XCJoaWRlTGFiZWxJbkVycm9ycygpID8gbnVsbCA6IGxhYmVsKClcIlxuICAgICAgICA+PC91aS12YWxpZGF0aW9uLWVycm9yPlxuICAgICAgfVxuICAgIDwvbWF0LWhpbnQ+XG4gIH1cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2N1c3RvbS1lcnJvcnNdXCI+PC9uZy1jb250ZW50PlxuPC9kaXY+XG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktaW5wdXQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90Z28tY2Fub3B5LXVpL2NvbXBvbmVudHMvbXVsdGktaW5wdXQvbXVsdGktaW5wdXQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIE11bHRpSW5wdXRWYWx1ZTxUID0gYW55PiA9IHtcbiAgdmFsdWU6IFQ7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn07XG4iXX0=
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/unbound-method */
|
|
2
|
+
import { Validators } from '@angular/forms';
|
|
3
|
+
export const requiredMultiInput = (control) => {
|
|
4
|
+
const controlValue = control.value;
|
|
5
|
+
const hasRequired = control.hasValidator(Validators.required);
|
|
6
|
+
if (hasRequired && controlValue) {
|
|
7
|
+
const anyFalsy = Object.values(controlValue).some(v => !v);
|
|
8
|
+
if (anyFalsy) {
|
|
9
|
+
return { required: true };
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
return null;
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWlyZWQtbXVsdGktaW5wdXQudmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGdvLWNhbm9weS11aS9jb21wb25lbnRzL211bHRpLWlucHV0L3JlcXVpcmVkLW11bHRpLWlucHV0LnZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxzREFBc0Q7QUFDdEQsT0FBTyxFQUFxQyxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUcvRSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLE9BQXlDLEVBQTJCLEVBQUU7SUFDdkcsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUVuQyxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUU5RCxJQUFJLFdBQVcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNoQyxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0QsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNiLE9BQU8sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDNUIsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC91bmJvdW5kLW1ldGhvZCAqL1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0aW9uRXJyb3JzLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTXVsdGlJbnB1dFZhbHVlIH0gZnJvbSAnLi9tdWx0aS1pbnB1dC5tb2RlbCc7XG5cbmV4cG9ydCBjb25zdCByZXF1aXJlZE11bHRpSW5wdXQgPSAoY29udHJvbDogQWJzdHJhY3RDb250cm9sPE11bHRpSW5wdXRWYWx1ZT4pOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gIGNvbnN0IGNvbnRyb2xWYWx1ZSA9IGNvbnRyb2wudmFsdWU7XG5cbiAgY29uc3QgaGFzUmVxdWlyZWQgPSBjb250cm9sLmhhc1ZhbGlkYXRvcihWYWxpZGF0b3JzLnJlcXVpcmVkKTtcblxuICBpZiAoaGFzUmVxdWlyZWQgJiYgY29udHJvbFZhbHVlKSB7XG4gICAgY29uc3QgYW55RmFsc3kgPSBPYmplY3QudmFsdWVzKGNvbnRyb2xWYWx1ZSkuc29tZSh2ID0+ICF2KTtcbiAgICBpZiAoYW55RmFsc3kpIHtcbiAgICAgIHJldHVybiB7IHJlcXVpcmVkOiB0cnVlIH07XG4gICAgfVxuICB9XG4gIHJldHVybiBudWxsO1xufTtcbiJdfQ==
|