special-forms 18.0.1 → 20.0.0-SNAPSHOT
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +147 -147
- package/fesm2022/special-forms.mjs +143 -147
- package/fesm2022/special-forms.mjs.map +1 -1
- package/index.d.ts +586 -5
- package/lib/styles/final.scss +2 -2
- package/lib/styles/styles-config.scss +36 -36
- package/lib/styles/tailwind-final.scss +7 -7
- package/package.json +7 -9
- package/esm2022/lib/components/index.mjs +0 -14
- package/esm2022/lib/components/special-autocomplete/special-autocomplete.component.mjs +0 -75
- package/esm2022/lib/components/special-autocomplete/special-autocomplete.interface.mjs +0 -2
- package/esm2022/lib/components/special-checkbox/special-checkbox.component.mjs +0 -38
- package/esm2022/lib/components/special-checkbox/special-checkbox.interface.mjs +0 -3
- package/esm2022/lib/components/special-datepicker/special-datepicker.component.mjs +0 -42
- package/esm2022/lib/components/special-datepicker/special-datepicker.interface.mjs +0 -3
- package/esm2022/lib/components/special-dropdown/special-dropdown.component.mjs +0 -47
- package/esm2022/lib/components/special-dropdown/special-dropdown.interface.mjs +0 -3
- package/esm2022/lib/components/special-form/special-form.component.mjs +0 -99
- package/esm2022/lib/components/special-form/special-form.module.mjs +0 -79
- package/esm2022/lib/components/special-input/special-input.component.mjs +0 -55
- package/esm2022/lib/components/special-input/special-input.interface.mjs +0 -2
- package/esm2022/lib/components/special-label/special-label.component.mjs +0 -27
- package/esm2022/lib/components/special-label/special-label.interface.mjs +0 -2
- package/esm2022/lib/components/special-multiple-autocomplete/special-multiple-autocomplete.component.mjs +0 -97
- package/esm2022/lib/components/special-multiple-autocomplete/special-multiple-autocomplete.interface.mjs +0 -2
- package/esm2022/lib/components/special-richtext/special-richtext.component.mjs +0 -53
- package/esm2022/lib/components/special-richtext/special-richtext.interface.mjs +0 -3
- package/esm2022/lib/components/special-text-area/special-text-area.component.mjs +0 -43
- package/esm2022/lib/components/special-text-area/special-text-area.interface.mjs +0 -2
- package/esm2022/lib/components/special-upload/filename.pipe.mjs +0 -18
- package/esm2022/lib/components/special-upload/preview-image-pipe.mjs +0 -104
- package/esm2022/lib/components/special-upload/special-upload.component.mjs +0 -146
- package/esm2022/lib/components/special-upload/special-upload.interface.mjs +0 -2
- package/esm2022/lib/components/special-upload/truncate.pipe.mjs +0 -14
- package/esm2022/lib/core/aux-data/control-types.enum.mjs +0 -18
- package/esm2022/lib/core/aux-data/input-types.mjs +0 -16
- package/esm2022/lib/core/forms/special-forms.mjs +0 -240
- package/esm2022/lib/core/interfaces/field-basics.interfaces.mjs +0 -2
- package/esm2022/lib/core/interfaces/form.interfaces.mjs +0 -2
- package/esm2022/lib/core/interfaces/special-control.interface.mjs +0 -3
- package/esm2022/lib/core/masks/currency.mask.mjs +0 -11
- package/esm2022/lib/core/masks/index.mjs +0 -3
- package/esm2022/lib/core/masks/number.mask.mjs +0 -3
- package/esm2022/lib/core/pipes/controls-list-pipe/controls-list.pipe.mjs +0 -18
- package/esm2022/lib/core/pipes/error-message-pipe/error.pipe.mjs +0 -23
- package/esm2022/lib/core/pipes/index.mjs +0 -4
- package/esm2022/lib/core/pipes/text-by-function/text-by-function.pipe.mjs +0 -22
- package/esm2022/lib/core/services/error-state-matcher/error-matcher.mjs +0 -13
- package/esm2022/lib/core/services/index.mjs +0 -4
- package/esm2022/lib/core/services/special-form-builder/special-form-builder.service.mjs +0 -156
- package/esm2022/public-api.mjs +0 -13
- package/esm2022/special-forms.mjs +0 -5
- package/lib/components/index.d.ts +0 -23
- package/lib/components/special-autocomplete/special-autocomplete.component.d.ts +0 -19
- package/lib/components/special-autocomplete/special-autocomplete.interface.d.ts +0 -19
- package/lib/components/special-checkbox/special-checkbox.component.d.ts +0 -12
- package/lib/components/special-checkbox/special-checkbox.interface.d.ts +0 -13
- package/lib/components/special-datepicker/special-datepicker.component.d.ts +0 -13
- package/lib/components/special-datepicker/special-datepicker.interface.d.ts +0 -12
- package/lib/components/special-dropdown/special-dropdown.component.d.ts +0 -11
- package/lib/components/special-dropdown/special-dropdown.interface.d.ts +0 -17
- package/lib/components/special-form/special-form.component.d.ts +0 -31
- package/lib/components/special-form/special-form.module.d.ts +0 -20
- package/lib/components/special-input/special-input.component.d.ts +0 -15
- package/lib/components/special-input/special-input.interface.d.ts +0 -17
- package/lib/components/special-label/special-label.component.d.ts +0 -13
- package/lib/components/special-label/special-label.interface.d.ts +0 -13
- package/lib/components/special-multiple-autocomplete/special-multiple-autocomplete.component.d.ts +0 -22
- package/lib/components/special-multiple-autocomplete/special-multiple-autocomplete.interface.d.ts +0 -19
- package/lib/components/special-richtext/special-richtext.component.d.ts +0 -15
- package/lib/components/special-richtext/special-richtext.interface.d.ts +0 -11
- package/lib/components/special-text-area/special-text-area.component.d.ts +0 -13
- package/lib/components/special-text-area/special-text-area.interface.d.ts +0 -8
- package/lib/components/special-upload/filename.pipe.d.ts +0 -7
- package/lib/components/special-upload/preview-image-pipe.d.ts +0 -23
- package/lib/components/special-upload/special-upload.component.d.ts +0 -31
- package/lib/components/special-upload/special-upload.interface.d.ts +0 -15
- package/lib/components/special-upload/truncate.pipe.d.ts +0 -7
- package/lib/core/aux-data/control-types.enum.d.ts +0 -16
- package/lib/core/aux-data/input-types.d.ts +0 -2
- package/lib/core/forms/special-forms.d.ts +0 -108
- package/lib/core/interfaces/field-basics.interfaces.d.ts +0 -22
- package/lib/core/interfaces/form.interfaces.d.ts +0 -64
- package/lib/core/interfaces/special-control.interface.d.ts +0 -4
- package/lib/core/masks/currency.mask.d.ts +0 -1
- package/lib/core/masks/index.d.ts +0 -2
- package/lib/core/masks/number.mask.d.ts +0 -1
- package/lib/core/pipes/controls-list-pipe/controls-list.pipe.d.ts +0 -11
- package/lib/core/pipes/error-message-pipe/error.pipe.d.ts +0 -12
- package/lib/core/pipes/index.d.ts +0 -3
- package/lib/core/pipes/text-by-function/text-by-function.pipe.d.ts +0 -7
- package/lib/core/services/error-state-matcher/error-matcher.d.ts +0 -8
- package/lib/core/services/index.d.ts +0 -3
- package/lib/core/services/special-form-builder/special-form-builder.service.d.ts +0 -25
- package/public-api.d.ts +0 -9
|
@@ -1,240 +0,0 @@
|
|
|
1
|
-
import { FormArray, FormControl, FormGroup, } from '@angular/forms';
|
|
2
|
-
export class SpecialFormControl extends FormControl {
|
|
3
|
-
constructor({ name, settings, type, validators, asyncValidators, elementId, styleClasses, defaultValue, hidden, icon, label, length, placeholder, readOnly, required, tooltip, errorMessages, disabled, }) {
|
|
4
|
-
super(defaultValue, validators, asyncValidators);
|
|
5
|
-
this.name = name;
|
|
6
|
-
this.placeholder = placeholder;
|
|
7
|
-
this.label = label;
|
|
8
|
-
this.tooltip = tooltip;
|
|
9
|
-
this.icon = icon;
|
|
10
|
-
this.elementId = elementId;
|
|
11
|
-
this.settings = settings;
|
|
12
|
-
this.type = type;
|
|
13
|
-
this.styleClasses = styleClasses;
|
|
14
|
-
this.hidden = hidden;
|
|
15
|
-
this.length = length;
|
|
16
|
-
this.readOnly = readOnly;
|
|
17
|
-
this.required = required;
|
|
18
|
-
this.errorMessages = errorMessages;
|
|
19
|
-
disabled ? this.disable() : this.enable();
|
|
20
|
-
}
|
|
21
|
-
setReadOnly(status = true) {
|
|
22
|
-
this.readOnly = status;
|
|
23
|
-
}
|
|
24
|
-
setDisabled(status = true) {
|
|
25
|
-
status ? this.disable() : this.enable();
|
|
26
|
-
}
|
|
27
|
-
setHidden(status = true) {
|
|
28
|
-
this.hidden = status;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
export class SpecialFormGroup extends FormGroup {
|
|
32
|
-
constructor({ name, settings, type, validators, asyncValidators, elementId, styleClasses, defaultValue, hidden, icon, label, length, placeholder, readOnly, required, tooltip, disabled, }, controls) {
|
|
33
|
-
super(controls, validators, asyncValidators);
|
|
34
|
-
this.name = name;
|
|
35
|
-
this.placeholder = placeholder;
|
|
36
|
-
this.label = label;
|
|
37
|
-
this.tooltip = tooltip;
|
|
38
|
-
this.icon = icon;
|
|
39
|
-
this.elementId = elementId;
|
|
40
|
-
this.settings = settings;
|
|
41
|
-
this.type = type;
|
|
42
|
-
this.styleClasses = styleClasses;
|
|
43
|
-
this.hidden = hidden;
|
|
44
|
-
this.length = length;
|
|
45
|
-
this.readOnly = readOnly;
|
|
46
|
-
this.required = required;
|
|
47
|
-
this.defaultValue = defaultValue;
|
|
48
|
-
disabled ? this.disable() : this.enable();
|
|
49
|
-
}
|
|
50
|
-
getDirty() {
|
|
51
|
-
this.markAsDirty();
|
|
52
|
-
Object.values(this.controls).forEach((control) => {
|
|
53
|
-
if (control instanceof SpecialFormControl) {
|
|
54
|
-
control.markAsDirty();
|
|
55
|
-
}
|
|
56
|
-
else if (control instanceof SpecialFormGroup) {
|
|
57
|
-
control.getDirty();
|
|
58
|
-
}
|
|
59
|
-
else if (control instanceof SpecialFormArray) {
|
|
60
|
-
control.getDirty();
|
|
61
|
-
}
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
specialReset(value = {}) {
|
|
65
|
-
const aux = {};
|
|
66
|
-
Object.entries(this.controls).map(([key, control]) => {
|
|
67
|
-
if (control instanceof SpecialFormControl) {
|
|
68
|
-
aux[key] = control.defaultValue;
|
|
69
|
-
}
|
|
70
|
-
else if (control instanceof SpecialFormArray) {
|
|
71
|
-
control.clear();
|
|
72
|
-
}
|
|
73
|
-
});
|
|
74
|
-
this.reset({ ...aux, ...value });
|
|
75
|
-
}
|
|
76
|
-
setReadOnly(status = true) {
|
|
77
|
-
Object.values(this.controls).map((value) => {
|
|
78
|
-
if (value instanceof SpecialFormControl ||
|
|
79
|
-
value instanceof SpecialFormArray ||
|
|
80
|
-
value instanceof SpecialFormGroup) {
|
|
81
|
-
value.setReadOnly(status);
|
|
82
|
-
}
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
setReadOnlyByFields(fieldsObject) {
|
|
86
|
-
Object.entries(fieldsObject).map(([key, value]) => {
|
|
87
|
-
const control = this.controls[key];
|
|
88
|
-
if (control instanceof SpecialFormControl) {
|
|
89
|
-
control.readOnly = value;
|
|
90
|
-
}
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
|
-
setHiddenByFields(fields) {
|
|
94
|
-
Object.entries(fields).map(([key, value]) => {
|
|
95
|
-
const control = this.controls[key];
|
|
96
|
-
if (control instanceof SpecialFormControl) {
|
|
97
|
-
control.hidden = value;
|
|
98
|
-
}
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
setDisabled(status) {
|
|
102
|
-
Object.values(this.controls).map((value) => {
|
|
103
|
-
if (value instanceof SpecialFormControl ||
|
|
104
|
-
value instanceof SpecialFormArray ||
|
|
105
|
-
value instanceof SpecialFormGroup) {
|
|
106
|
-
value.setDisabled(status);
|
|
107
|
-
}
|
|
108
|
-
});
|
|
109
|
-
}
|
|
110
|
-
setDisabledByFields(fieldsObject) {
|
|
111
|
-
Object.entries(fieldsObject).map((entries) => {
|
|
112
|
-
if (this.controls[entries[0]] instanceof SpecialFormControl) {
|
|
113
|
-
entries[1]
|
|
114
|
-
? this.controls[entries[0]].enable()
|
|
115
|
-
: this.controls[entries[0]].disable();
|
|
116
|
-
}
|
|
117
|
-
});
|
|
118
|
-
}
|
|
119
|
-
/**
|
|
120
|
-
* donde value es el objeto semilla y detailForm es un arreglo de form key para dar un marco al formarray
|
|
121
|
-
*/
|
|
122
|
-
setFormValue(value) {
|
|
123
|
-
this.specialReset(value);
|
|
124
|
-
Object.entries(this.controls)
|
|
125
|
-
.filter(([_key, control]) => control instanceof SpecialFormArray)
|
|
126
|
-
.map(([key, control]) => {
|
|
127
|
-
control.fillFormArray(value[key]);
|
|
128
|
-
});
|
|
129
|
-
}
|
|
130
|
-
/**
|
|
131
|
-
* Método que retorna
|
|
132
|
-
*/
|
|
133
|
-
getIdPkey() {
|
|
134
|
-
return Object.values(this.controls).find((control) => control instanceof SpecialFormControl && control.type === 'PRIMARY-KEY');
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
export class SpecialFormArray extends FormArray {
|
|
138
|
-
constructor({ name, settings, type, validators, asyncValidators, elementId, styleClasses, defaultValue, hidden, icon, label, placeholder, readOnly, required, tooltip, errorMessages, disabled, }, formCreation, controls) {
|
|
139
|
-
super(controls, validators, asyncValidators);
|
|
140
|
-
this.formCreation = formCreation;
|
|
141
|
-
this.form = this.formCreation();
|
|
142
|
-
this.name = name;
|
|
143
|
-
this.placeholder = placeholder;
|
|
144
|
-
this.label = label;
|
|
145
|
-
this.tooltip = tooltip;
|
|
146
|
-
this.icon = icon;
|
|
147
|
-
this.elementId = elementId;
|
|
148
|
-
this.settings = settings;
|
|
149
|
-
this.type = type;
|
|
150
|
-
this.styleClasses = styleClasses;
|
|
151
|
-
this.hidden = hidden;
|
|
152
|
-
this.readOnly = readOnly;
|
|
153
|
-
this.required = required;
|
|
154
|
-
this.defaultValue = defaultValue;
|
|
155
|
-
this.errorMessages = errorMessages;
|
|
156
|
-
disabled ? this.disable() : this.enable();
|
|
157
|
-
}
|
|
158
|
-
fillFormArray(data) {
|
|
159
|
-
this.form.reset();
|
|
160
|
-
this.clear();
|
|
161
|
-
data.forEach((item) => {
|
|
162
|
-
const form = this.formCreation(item);
|
|
163
|
-
this.push(form);
|
|
164
|
-
});
|
|
165
|
-
}
|
|
166
|
-
addItem() {
|
|
167
|
-
const form = this.formCreation(this.form.value);
|
|
168
|
-
this.form.specialReset();
|
|
169
|
-
this.push(form);
|
|
170
|
-
this.markAsDirty();
|
|
171
|
-
}
|
|
172
|
-
specialPush(index) {
|
|
173
|
-
const form = this.formCreation(this.form.value);
|
|
174
|
-
if (!index)
|
|
175
|
-
this.push(form);
|
|
176
|
-
else
|
|
177
|
-
this.controls[index].reset(this.form.value);
|
|
178
|
-
}
|
|
179
|
-
specialInsert(index = 0) {
|
|
180
|
-
const form = this.formCreation(this.form.value);
|
|
181
|
-
this.insert(index, form);
|
|
182
|
-
}
|
|
183
|
-
specialEdit(index, newValue) {
|
|
184
|
-
this.controls[index].reset({ ...this.controls[index].value, ...newValue });
|
|
185
|
-
this.markAsDirty();
|
|
186
|
-
}
|
|
187
|
-
/**
|
|
188
|
-
* Vuelve todos los controles del formArray de lectura o de sololectura
|
|
189
|
-
* @param status
|
|
190
|
-
*/
|
|
191
|
-
setReadOnly(status) {
|
|
192
|
-
this.readOnly = status;
|
|
193
|
-
this.controls.forEach((control) => {
|
|
194
|
-
if (control instanceof SpecialFormGroup) {
|
|
195
|
-
control.setReadOnly(status);
|
|
196
|
-
}
|
|
197
|
-
});
|
|
198
|
-
}
|
|
199
|
-
/**
|
|
200
|
-
* Vuelve todos los controles del formArray habilitados o deshabilitados
|
|
201
|
-
* @param status
|
|
202
|
-
*/
|
|
203
|
-
setDisabled(status) {
|
|
204
|
-
status ? this.disable() : this.enable();
|
|
205
|
-
this.controls.forEach((control) => {
|
|
206
|
-
if (control instanceof SpecialFormGroup) {
|
|
207
|
-
control.setDisabled(status);
|
|
208
|
-
}
|
|
209
|
-
});
|
|
210
|
-
}
|
|
211
|
-
/**
|
|
212
|
-
* Permite editar un control especifico.
|
|
213
|
-
* @param index
|
|
214
|
-
*/
|
|
215
|
-
editControl(index) {
|
|
216
|
-
this.form.reset(this.controls[index].value);
|
|
217
|
-
}
|
|
218
|
-
getDirty() {
|
|
219
|
-
this.markAsDirty();
|
|
220
|
-
this.form.getDirty();
|
|
221
|
-
this.controls.forEach((item) => {
|
|
222
|
-
item.getDirty();
|
|
223
|
-
});
|
|
224
|
-
}
|
|
225
|
-
recursiveFillForm(form, data) {
|
|
226
|
-
Object.entries(form.controls).map(([key, control]) => {
|
|
227
|
-
if (control instanceof FormControl) {
|
|
228
|
-
control.setValue(data[key]);
|
|
229
|
-
}
|
|
230
|
-
else if (control instanceof FormArray) {
|
|
231
|
-
data[key].forEach(() => { });
|
|
232
|
-
}
|
|
233
|
-
else if (control instanceof FormGroup) {
|
|
234
|
-
control.reset(data[key]);
|
|
235
|
-
}
|
|
236
|
-
});
|
|
237
|
-
return form;
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlY2lhbC1mb3Jtcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwZWNpYWwtZm9ybXMvc3JjL2xpYi9jb3JlL2Zvcm1zL3NwZWNpYWwtZm9ybXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxXQUFXLEVBQ1gsU0FBUyxHQUNWLE1BQU0sZ0JBQWdCLENBQUM7QUFZeEIsTUFBTSxPQUFPLGtCQUF5QyxTQUFRLFdBQVc7SUFnQnZFLFlBQVksRUFDVixJQUFJLEVBQ0osUUFBUSxFQUNSLElBQUksRUFDSixVQUFVLEVBQ1YsZUFBZSxFQUNmLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLE1BQU0sRUFDTixJQUFJLEVBQ0osS0FBSyxFQUNMLE1BQU0sRUFDTixXQUFXLEVBQ1gsUUFBUSxFQUNSLFFBQVEsRUFDUixPQUFPLEVBQ1AsYUFBYSxFQUNiLFFBQVEsR0FDTztRQUNmLEtBQUssQ0FBQyxZQUFZLEVBQUUsVUFBVSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBRWpELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzNCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFB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LENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxJQUFlLEVBQUUsSUFBUztRQUMxQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFO1lBQ25ELElBQUksT0FBTyxZQUFZLFdBQVcsRUFBRSxDQUFDO2dCQUNuQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQzlCLENBQUM7aUJBQU0sSUFBSSxPQUFPLFlBQVksU0FBUyxFQUFFLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDLENBQUM7WUFDOUIsQ0FBQztpQkFBTSxJQUFJLE9BQU8sWUFBWSxTQUFTLEVBQUUsQ0FBQztnQkFDeEMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUMzQixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWJzdHJhY3RDb250cm9sLFxyXG4gIEZvcm1BcnJheSxcclxuICBGb3JtQ29udHJvbCxcclxuICBGb3JtR3JvdXAsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBFQ29udHJvbFR5cGVzIH0gZnJvbSAnLi4vYXV4LWRhdGEvY29udHJvbC10eXBlcy5lbnVtJztcclxuaW1wb3J0IHsgSUZpZWxkQmFzaWNEYXRhIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9maWVsZC1iYXNpY3MuaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7XHJcbiAgSUFycmF5U2V0dGluZ3MsXHJcbiAgSUZvcm1TZXR0aW5ncyxcclxuICBUU3BlY2lhbEZpZWxkcyxcclxuICBUU3BlY2lhbEZvcm0sXHJcbiAgVFNwZWNpYWxBcnJheSxcclxuICBUUmF3RmllbGRzLFxyXG59IGZyb20gJy4uL2ludGVyZmFjZXMvZm9ybS5pbnRlcmZhY2VzJztcclxuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xyXG5leHBvcnQgY2xhc3MgU3BlY2lhbEZvcm1Db250cm9sPFQgZXh0ZW5kcyBUUmF3RmllbGRzPiBleHRlbmRzIEZvcm1Db250cm9sIHtcclxuICBwdWJsaWMgbmFtZTogc3RyaW5nO1xyXG4gIHB1YmxpYyBwbGFjZWhvbGRlcjogVFsncGxhY2Vob2xkZXInXTtcclxuICBwdWJsaWMgbGFiZWw6IFRbJ2xhYmVsJ107XHJcbiAgcHVibGljIHRvb2x0aXA6IFRbJ3Rvb2x0aXAnXTtcclxuICBwdWJsaWMgaWNvbjogVFsnaWNvbiddO1xyXG4gIHB1YmxpYyBlbGVtZW50SWQ6IFRbJ2VsZW1lbnRJZCddO1xyXG4gIHB1YmxpYyBzdHlsZUNsYXNzZXM6IFRbJ3N0eWxlQ2xhc3NlcyddO1xyXG4gIHB1YmxpYyBsZW5ndGg6IFRbJ2xlbmd0aCddO1xyXG4gIHB1YmxpYyByZXF1aXJlZDogVFsncmVxdWlyZWQnXTtcclxuICBwdWJsaWMgaGlkZGVuOiBUWydoaWRkZW4nXTtcclxuICBwdWJsaWMgcmVhZE9ubHk6IFRbJ3JlYWRPbmx5J107XHJcbiAgcHVibGljIHNldHRpbmdzOiBUWydzZXR0aW5ncyddO1xyXG4gIHB1YmxpYyB0eXBlOiBUWyd0eXBlJ107XHJcbiAgcHVibGljIGVycm9yTWVzc2FnZXM6IFRbJ2Vycm9yTWVzc2FnZXMnXTtcclxuXHJcbiAgY29uc3RydWN0b3Ioe1xyXG4gICAgbmFtZSxcclxuICAgIHNldHRpbmdzLFxyXG4gICAgdHlwZSxcclxuICAgIHZhbGlkYXRvcnMsXHJcbiAgICBhc3luY1ZhbGlkYXRvcnMsXHJcbiAgICBlbGVtZW50SWQsXHJcbiAgICBzdHlsZUNsYXNzZXMsXHJcbiAgICBkZWZhdWx0VmFsdWUsXHJcbiAgICBoaWRkZW4sXHJcbiAgICBpY29uLFxyXG4gICAgbGFiZWwsXHJcbiAgICBsZW5ndGgsXHJcbiAgICBwbGFjZWhvbGRlcixcclxuICAgIHJlYWRPbmx5LFxyXG4gICAgcmVxdWlyZWQsXHJcbiAgICB0b29sdGlwLFxyXG4gICAgZXJyb3JNZXNzYWdlcyxcclxuICAgIGRpc2FibGVkLFxyXG4gIH06IFRTcGVjaWFsRmllbGRzKSB7XHJcbiAgICBzdXBlcihkZWZhdWx0VmFsdWUsIHZhbGlkYXRvcnMsIGFzeW5jVmFsaWRhdG9ycyk7XHJcblxyXG4gICAgdGhpcy5uYW1lID0gbmFtZTtcclxuICAgIHRoaXMucGxhY2Vob2xkZXIgPSBwbGFjZWhvbGRlcjtcclxuICAgIHRoaXMubGFiZWwgPSBsYWJlbDtcclxuICAgIHRoaXMudG9vbHRpcCA9IHRvb2x0aXA7XHJcbiAgICB0aGlzLmljb24gPSBpY29uO1xyXG4gICAgdGhpcy5lbGVtZW50SWQgPSBlbGVtZW50SWQ7XHJcbiAgICB0aGlzLnNldHRpbmdzID0gc2V0dGluZ3M7XHJcbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xyXG4gICAgdGhpcy5zdHlsZUNsYXNzZXMgPSBzdHlsZUNsYXNzZXM7XHJcbiAgICB0aGlzLmhpZGRlbiA9IGhpZGRlbjtcclxuICAgIHRoaXMubGVuZ3RoID0gbGVuZ3RoO1xyXG4gICAgdGhpcy5yZWFkT25seSA9IHJlYWRPbmx5O1xyXG4gICAgdGhpcy5yZXF1aXJlZCA9IHJlcXVpcmVkO1xyXG4gICAgdGhpcy5lcnJvck1lc3NhZ2VzID0gZXJyb3JNZXNzYWdlcztcclxuICAgIGRpc2FibGVkID8gdGhpcy5kaXNhYmxlKCkgOiB0aGlzLmVuYWJsZSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0UmVhZE9ubHkoc3RhdHVzOiBib29sZWFuID0gdHJ1ZSkge1xyXG4gICAgdGhpcy5yZWFkT25seSA9IHN0YXR1cztcclxuICB9XHJcblxyXG4gIHNldERpc2FibGVkKHN0YXR1czogYm9vbGVhbiA9IHRydWUpIHtcclxuICAgIHN0YXR1cyA/IHRoaXMuZGlzYWJsZSgpIDogdGhpcy5lbmFibGUoKTtcclxuICB9XHJcblxyXG4gIHNldEhpZGRlbihzdGF0dXMgPSB0cnVlKSB7XHJcbiAgICB0aGlzLmhpZGRlbiA9IHN0YXR1cztcclxuICB9XHJcbn1cclxuZXhwb3J0IGNsYXNzIFNwZWNpYWxGb3JtR3JvdXAgZXh0ZW5kcyBGb3JtR3JvdXB7XHJcbiAgcHVibGljIG5hbWU6IHN0cmluZztcclxuICBwdWJsaWMgcGxhY2Vob2xkZXI6IHN0cmluZztcclxuICBwdWJsaWMgbGFiZWw6IHN0cmluZztcclxuICBwdWJsaWMgdG9vbHRpcDogc3RyaW5nO1xyXG4gIHB1YmxpYyBpY29uOiBzdHJpbmc7XHJcbiAgcHVibGljIGVsZW1lbnRJZDogc3RyaW5nO1xyXG4gIHB1YmxpYyBzdHlsZUNsYXNzZXM6IHN0cmluZztcclxuICBwdWJsaWMgbGVuZ3RoOiBudW1iZXI7XHJcbiAgcHVibGljIHJlcXVpcmVkOiBib29sZWFuO1xyXG4gIHB1YmxpYyBoaWRkZW46IGJvb2xlYW47XHJcbiAgcHVibGljIHJlYWRPbmx5OiBib29sZWFuO1xyXG4gIHB1YmxpYyBzZXR0aW5nczogSUZvcm1TZXR0aW5ncztcclxuICBwdWJsaWMgdHlwZTogRUNvbnRyb2xUeXBlcy5mb3JtO1xyXG4gIHB1YmxpYyBkZWZhdWx0VmFsdWU6IGFueTtcclxuICBwdWJsaWMgZXJyb3JNZXNzYWdlczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICB7XHJcbiAgICAgIG5hbWUsXHJcbiAgICAgIHNldHRpbmdzLFxyXG4gICAgICB0eXBlLFxyXG4gICAgICB2YWxpZGF0b3JzLFxyXG4gICAgICBhc3luY1ZhbGlkYXRvcnMsXHJcbiAgICAgIGVsZW1lbnRJZCxcclxuICAgICAgc3R5bGVDbGFzc2VzLFxyXG4gICAgICBkZWZhdWx0VmFsdWUsXHJcbiAgICAgIGhpZGRlbixcclxuICAgICAgaWNvbixcclxuICAgICAgbGFiZWwsXHJcbiAgICAgIGxlbmd0aCxcclxuICAgICAgcGxhY2Vob2xkZXIsXHJcbiAgICAgIHJlYWRPbmx5LFxyXG4gICAgICByZXF1aXJlZCxcclxuICAgICAgdG9vbHRpcCxcclxuICAgICAgZGlzYWJsZWQsXHJcbiAgICB9OiBUU3BlY2lhbEZvcm0sXHJcbiAgICBjb250cm9sczoge1xyXG4gICAgICBba2V5OiBzdHJpbmddOiBTcGVjaWFsRm9ybUNvbnRyb2w8YW55PjtcclxuICAgIH1cclxuICApIHtcclxuICAgIHN1cGVyKGNvbnRyb2xzLCB2YWxpZGF0b3JzLCBhc3luY1ZhbGlkYXRvcnMpO1xyXG5cclxuICAgIHRoaXMubmFtZSA9IG5hbWU7XHJcbiAgICB0aGlzLnBsYWNlaG9sZGVyID0gcGxhY2Vob2xkZXI7XHJcbiAgICB0aGlzLmxhYmVsID0gbGFiZWw7XHJcbiAgICB0aGlzLnRvb2x0aXAgPSB0b29sdGlwO1xyXG4gICAgdGhpcy5pY29uID0gaWNvbjtcclxuICAgIHRoaXMuZWxlbWVudElkID0gZWxlbWVudElkO1xyXG4gICAgdGhpcy5zZXR0aW5ncyA9IHNldHRpbmdzO1xyXG4gICAgdGhpcy50eXBlID0gdHlwZTtcclxuICAgIHRoaXMuc3R5bGVDbGFzc2VzID0gc3R5bGVDbGFzc2VzO1xyXG4gICAgdGhpcy5oaWRkZW4gPSBoaWRkZW47XHJcbiAgICB0aGlzLmxlbmd0aCA9IGxlbmd0aDtcclxuICAgIHRoaXMucmVhZE9ubHkgPSByZWFkT25seTtcclxuICAgIHRoaXMucmVxdWlyZWQgPSByZXF1aXJlZDtcclxuICAgIHRoaXMuZGVmYXVsdFZhbHVlID0gZGVmYXVsdFZhbHVlO1xyXG4gICAgZGlzYWJsZWQgPyB0aGlzLmRpc2FibGUoKSA6IHRoaXMuZW5hYmxlKCk7XHJcbiAgfVxyXG5cclxuICBnZXREaXJ0eSgpIHtcclxuICAgIHRoaXMubWFya0FzRGlydHkoKTtcclxuICAgIE9iamVjdC52YWx1ZXModGhpcy5jb250cm9scykuZm9yRWFjaCgoY29udHJvbCkgPT4ge1xyXG4gICAgICBpZiAoY29udHJvbCBpbnN0YW5jZW9mIFNwZWNpYWxGb3JtQ29udHJvbCkge1xyXG4gICAgICAgIGNvbnRyb2wubWFya0FzRGlydHkoKTtcclxuICAgICAgfSBlbHNlIGlmIChjb250cm9sIGluc3RhbmNlb2YgU3BlY2lhbEZvcm1Hcm91cCkge1xyXG4gICAgICAgIGNvbnRyb2wuZ2V0RGlydHkoKTtcclxuICAgICAgfSBlbHNlIGlmIChjb250cm9sIGluc3RhbmNlb2YgU3BlY2lhbEZvcm1BcnJheSkge1xyXG4gICAgICAgIGNvbnRyb2wuZ2V0RGlydHkoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzcGVjaWFsUmVzZXQodmFsdWUgPSB7fSkge1xyXG4gICAgY29uc3QgYXV4OiBhbnkgPSB7fTtcclxuICAgIE9iamVjdC5lbnRyaWVzKHRoaXMuY29udHJvbHMpLm1hcCgoW2tleSwgY29udHJvbF0pID0+IHtcclxuICAgICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBTcGVjaWFsRm9ybUNvbnRyb2wpIHtcclxuICAgICAgICBhdXhba2V5XSA9IGNvbnRyb2wuZGVmYXVsdFZhbHVlO1xyXG4gICAgICB9IGVsc2UgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBTcGVjaWFsRm9ybUFycmF5KSB7XHJcbiAgICAgICAgY29udHJvbC5jbGVhcigpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnJlc2V0KHsgLi4uYXV4LCAuLi52YWx1ZSB9KTtcclxuICB9XHJcblxyXG4gIHNldFJlYWRPbmx5KHN0YXR1czogYm9vbGVhbiA9IHRydWUpIHtcclxuICAgIE9iamVjdC52YWx1ZXModGhpcy5jb250cm9scykubWFwKCh2YWx1ZSkgPT4ge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgdmFsdWUgaW5zdGFuY2VvZiBTcGVjaWFsRm9ybUNvbnRyb2wgfHxcclxuICAgICAgICB2YWx1ZSBpbnN0YW5jZW9mIFNwZWNpYWxGb3JtQXJyYXkgfHxcclxuICAgICAgICB2YWx1ZSBpbnN0YW5jZW9mIFNwZWNpYWxGb3JtR3JvdXBcclxuICAgICAgKSB7XHJcbiAgICAgICAgdmFsdWUuc2V0UmVhZE9ubHkoc3RhdHVzKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRSZWFkT25seUJ5RmllbGRzKGZpZWxkc09iamVjdDogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0pIHtcclxuICAgIE9iamVjdC5lbnRyaWVzKGZpZWxkc09iamVjdCkubWFwKChba2V5LCB2YWx1ZV0pID0+IHtcclxuICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuY29udHJvbHNba2V5XTtcclxuICAgICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBTcGVjaWFsRm9ybUNvbnRyb2wpIHtcclxuICAgICAgICBjb250cm9sLnJlYWRPbmx5ID0gdmFsdWU7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0SGlkZGVuQnlGaWVsZHMoZmllbGRzOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSkge1xyXG4gICAgT2JqZWN0LmVudHJpZXMoZmllbGRzKS5tYXAoKFtrZXksIHZhbHVlXSkgPT4ge1xyXG4gICAgICBjb25zdCBjb250cm9sID0gdGhpcy5jb250cm9sc1trZXldO1xyXG4gICAgICBpZiAoY29udHJvbCBpbnN0YW5jZW9mIFNwZWNpYWxGb3JtQ29udHJvbCkge1xyXG4gICAgICAgIGNvbnRyb2wuaGlkZGVuID0gdmFsdWU7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0RGlzYWJsZWQoc3RhdHVzOiBib29sZWFuKSB7XHJcbiAgICBPYmplY3QudmFsdWVzKHRoaXMuY29udHJvbHMpLm1hcCgodmFsdWUpID0+IHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIHZhbHVlIGluc3RhbmNlb2YgU3BlY2lhbEZvcm1Db250cm9sIHx8XHJcbiAgICAgICAgdmFsdWUgaW5zdGFuY2VvZiBTcGVjaWFsRm9ybUFycmF5IHx8XHJcbiAgICAgICAgdmFsdWUgaW5zdGFuY2VvZiBTcGVjaWFsRm9ybUdyb3VwXHJcbiAgICAgICkge1xyXG4gICAgICAgIHZhbHVlLnNldERpc2FibGVkKHN0YXR1cyk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0RGlzYWJsZWRCeUZpZWxkcyhmaWVsZHNPYmplY3Q6IGFueSkge1xyXG4gICAgT2JqZWN0LmVudHJpZXMoZmllbGRzT2JqZWN0KS5tYXAoKGVudHJpZXMpID0+IHtcclxuICAgICAgaWYgKHRoaXMuY29udHJvbHNbZW50cmllc1swXV0gaW5zdGFuY2VvZiBTcGVjaWFsRm9ybUNvbnRyb2wpIHtcclxuICAgICAgICBlbnRyaWVzWzFdXHJcbiAgICAgICAgICA/IHRoaXMuY29udHJvbHNbZW50cmllc1swXV0uZW5hYmxlKClcclxuICAgICAgICAgIDogdGhpcy5jb250cm9sc1tlbnRyaWVzWzBdXS5kaXNhYmxlKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogZG9uZGUgdmFsdWUgZXMgZWwgb2JqZXRvIHNlbWlsbGEgeSBkZXRhaWxGb3JtIGVzIHVuIGFycmVnbG8gZGUgZm9ybSBrZXkgcGFyYSBkYXIgdW4gbWFyY28gYWwgZm9ybWFycmF5XHJcbiAgICovXHJcblxyXG4gIHNldEZvcm1WYWx1ZSh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLnNwZWNpYWxSZXNldCh2YWx1ZSk7XHJcbiAgICBPYmplY3QuZW50cmllcyh0aGlzLmNvbnRyb2xzKVxyXG4gICAgICAuZmlsdGVyKChbX2tleSwgY29udHJvbF0pID0+IGNvbnRyb2wgaW5zdGFuY2VvZiBTcGVjaWFsRm9ybUFycmF5KVxyXG4gICAgICAubWFwKChba2V5LCBjb250cm9sXSkgPT4ge1xyXG4gICAgICAgIChjb250cm9sIGFzIFNwZWNpYWxGb3JtQXJyYXkpLmZpbGxGb3JtQXJyYXkodmFsdWVba2V5XSk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTcOpdG9kbyBxdWUgcmV0b3JuYVxyXG4gICAqL1xyXG5cclxuICBnZXRJZFBrZXkoKTogU3BlY2lhbEZvcm1Db250cm9sPGFueT4gfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIE9iamVjdC52YWx1ZXModGhpcy5jb250cm9scykuZmluZChcclxuICAgICAgKGNvbnRyb2wpID0+XHJcbiAgICAgICAgY29udHJvbCBpbnN0YW5jZW9mIFNwZWNpYWxGb3JtQ29udHJvbCAmJiBjb250cm9sLnR5cGUgPT09ICdQUklNQVJZLUtFWSdcclxuICAgICkgYXMgU3BlY2lhbEZvcm1Db250cm9sPGFueT4gfCB1bmRlZmluZWQ7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgU3BlY2lhbEZvcm1BcnJheSBleHRlbmRzIEZvcm1BcnJheSBpbXBsZW1lbnRzIElGaWVsZEJhc2ljRGF0YSB7XHJcbiAgcHVibGljIG5hbWU6IHN0cmluZztcclxuICBwdWJsaWMgcGxhY2Vob2xkZXI6IHN0cmluZztcclxuICBwdWJsaWMgbGFiZWw6IHN0cmluZztcclxuICBwdWJsaWMgdG9vbHRpcDogc3RyaW5nO1xyXG4gIHB1YmxpYyBpY29uOiBzdHJpbmc7XHJcbiAgcHVibGljIGVsZW1lbnRJZDogc3RyaW5nO1xyXG4gIHB1YmxpYyBzdHlsZUNsYXNzZXM6IHN0cmluZztcclxuICBwdWJsaWMgcmVxdWlyZWQ6IGJvb2xlYW47XHJcbiAgcHVibGljIGhpZGRlbjogYm9vbGVhbjtcclxuICBwdWJsaWMgcmVhZE9ubHk6IGJvb2xlYW47XHJcbiAgcHVibGljIHNldHRpbmdzOiBJQXJyYXlTZXR0aW5ncztcclxuICBwdWJsaWMgdHlwZTogRUNvbnRyb2xUeXBlcztcclxuICBwdWJsaWMgZGVmYXVsdFZhbHVlOiBhbnk7XHJcbiAgcHVibGljIGZvcm06IFNwZWNpYWxGb3JtR3JvdXA7XHJcbiAgcHJpdmF0ZSBmb3JtQ3JlYXRpb246ICh2YWx1ZT86IGFueSkgPT4gU3BlY2lhbEZvcm1Hcm91cDtcclxuICBwdWJsaWMgZXJyb3JNZXNzYWdlczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICB7XHJcbiAgICAgIG5hbWUsXHJcbiAgICAgIHNldHRpbmdzLFxyXG4gICAgICB0eXBlLFxyXG4gICAgICB2YWxpZGF0b3JzLFxyXG4gICAgICBhc3luY1ZhbGlkYXRvcnMsXHJcbiAgICAgIGVsZW1lbnRJZCxcclxuICAgICAgc3R5bGVDbGFzc2VzLFxyXG4gICAgICBkZWZhdWx0VmFsdWUsXHJcbiAgICAgIGhpZGRlbixcclxuICAgICAgaWNvbixcclxuICAgICAgbGFiZWwsXHJcbiAgICAgIHBsYWNlaG9sZGVyLFxyXG4gICAgICByZWFkT25seSxcclxuICAgICAgcmVxdWlyZWQsXHJcbiAgICAgIHRvb2x0aXAsXHJcbiAgICAgIGVycm9yTWVzc2FnZXMsXHJcbiAgICAgIGRpc2FibGVkLFxyXG4gICAgfTogVFNwZWNpYWxBcnJheSxcclxuICAgIGZvcm1DcmVhdGlvbjogKCkgPT4gU3BlY2lhbEZvcm1Hcm91cCxcclxuICAgIGNvbnRyb2xzOiBBYnN0cmFjdENvbnRyb2xbXVxyXG4gICkge1xyXG4gICAgc3VwZXIoY29udHJvbHMsIHZhbGlkYXRvcnMsIGFzeW5jVmFsaWRhdG9ycyk7XHJcbiAgICB0aGlzLmZvcm1DcmVhdGlvbiA9IGZvcm1DcmVhdGlvbjtcclxuICAgIHRoaXMuZm9ybSA9IHRoaXMuZm9ybUNyZWF0aW9uKCk7XHJcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xyXG4gICAgdGhpcy5wbGFjZWhvbGRlciA9IHBsYWNlaG9sZGVyO1xyXG4gICAgdGhpcy5sYWJlbCA9IGxhYmVsO1xyXG4gICAgdGhpcy50b29sdGlwID0gdG9vbHRpcDtcclxuICAgIHRoaXMuaWNvbiA9IGljb247XHJcbiAgICB0aGlzLmVsZW1lbnRJZCA9IGVsZW1lbnRJZDtcclxuICAgIHRoaXMuc2V0dGluZ3MgPSBzZXR0aW5ncztcclxuICAgIHRoaXMudHlwZSA9IHR5cGU7XHJcbiAgICB0aGlzLnN0eWxlQ2xhc3NlcyA9IHN0eWxlQ2xhc3NlcztcclxuICAgIHRoaXMuaGlkZGVuID0gaGlkZGVuO1xyXG4gICAgdGhpcy5yZWFkT25seSA9IHJlYWRPbmx5O1xyXG4gICAgdGhpcy5yZXF1aXJlZCA9IHJlcXVpcmVkO1xyXG4gICAgdGhpcy5kZWZhdWx0VmFsdWUgPSBkZWZhdWx0VmFsdWU7XHJcbiAgICB0aGlzLmVycm9yTWVzc2FnZXMgPSBlcnJvck1lc3NhZ2VzO1xyXG4gICAgZGlzYWJsZWQgPyB0aGlzLmRpc2FibGUoKSA6IHRoaXMuZW5hYmxlKCk7XHJcbiAgfVxyXG5cclxuICBmaWxsRm9ybUFycmF5KGRhdGE6IGFueVtdKSB7XHJcbiAgICB0aGlzLmZvcm0ucmVzZXQoKTtcclxuICAgIHRoaXMuY2xlYXIoKTtcclxuICAgIGRhdGEuZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG4gICAgICBjb25zdCBmb3JtID0gdGhpcy5mb3JtQ3JlYXRpb24oaXRlbSk7XHJcbiAgICAgIHRoaXMucHVzaChmb3JtKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgYWRkSXRlbSgpIHtcclxuICAgIGNvbnN0IGZvcm0gPSB0aGlzLmZvcm1DcmVhdGlvbih0aGlzLmZvcm0udmFsdWUpO1xyXG4gICAgdGhpcy5mb3JtLnNwZWNpYWxSZXNldCgpO1xyXG4gICAgdGhpcy5wdXNoKGZvcm0pO1xyXG4gICAgdGhpcy5tYXJrQXNEaXJ0eSgpO1xyXG4gIH1cclxuXHJcbiAgc3BlY2lhbFB1c2goaW5kZXg/OiBudW1iZXIpIHtcclxuICAgIGNvbnN0IGZvcm0gPSB0aGlzLmZvcm1DcmVhdGlvbih0aGlzLmZvcm0udmFsdWUpO1xyXG4gICAgaWYgKCFpbmRleCkgdGhpcy5wdXNoKGZvcm0pO1xyXG4gICAgZWxzZSB0aGlzLmNvbnRyb2xzW2luZGV4XS5yZXNldCh0aGlzLmZvcm0udmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgc3BlY2lhbEluc2VydChpbmRleCA9IDApIHtcclxuICAgIGNvbnN0IGZvcm0gPSB0aGlzLmZvcm1DcmVhdGlvbih0aGlzLmZvcm0udmFsdWUpO1xyXG4gICAgdGhpcy5pbnNlcnQoaW5kZXgsIGZvcm0pO1xyXG4gIH1cclxuXHJcbiAgc3BlY2lhbEVkaXQoaW5kZXg6IG51bWJlciwgbmV3VmFsdWU6IE9iamVjdCkge1xyXG4gICAgdGhpcy5jb250cm9sc1tpbmRleF0ucmVzZXQoeyAuLi50aGlzLmNvbnRyb2xzW2luZGV4XS52YWx1ZSwgLi4ubmV3VmFsdWUgfSk7XHJcbiAgICB0aGlzLm1hcmtBc0RpcnR5KCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBWdWVsdmUgdG9kb3MgbG9zIGNvbnRyb2xlcyBkZWwgZm9ybUFycmF5IGRlIGxlY3R1cmEgbyBkZSBzb2xvbGVjdHVyYVxyXG4gICAqIEBwYXJhbSBzdGF0dXNcclxuICAgKi9cclxuXHJcbiAgc2V0UmVhZE9ubHkoc3RhdHVzOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLnJlYWRPbmx5ID0gc3RhdHVzO1xyXG4gICAgdGhpcy5jb250cm9scy5mb3JFYWNoKChjb250cm9sKSA9PiB7XHJcbiAgICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgU3BlY2lhbEZvcm1Hcm91cCkge1xyXG4gICAgICAgIGNvbnRyb2wuc2V0UmVhZE9ubHkoc3RhdHVzKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBWdWVsdmUgdG9kb3MgbG9zIGNvbnRyb2xlcyBkZWwgZm9ybUFycmF5IGhhYmlsaXRhZG9zIG8gZGVzaGFiaWxpdGFkb3NcclxuICAgKiBAcGFyYW0gc3RhdHVzXHJcbiAgICovXHJcblxyXG4gIHNldERpc2FibGVkKHN0YXR1czogYm9vbGVhbikge1xyXG4gICAgc3RhdHVzID8gdGhpcy5kaXNhYmxlKCkgOiB0aGlzLmVuYWJsZSgpO1xyXG4gICAgdGhpcy5jb250cm9scy5mb3JFYWNoKChjb250cm9sKSA9PiB7XHJcbiAgICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgU3BlY2lhbEZvcm1Hcm91cCkge1xyXG4gICAgICAgIGNvbnRyb2wuc2V0RGlzYWJsZWQoc3RhdHVzKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQZXJtaXRlIGVkaXRhciB1biBjb250cm9sIGVzcGVjaWZpY28uXHJcbiAgICogQHBhcmFtIGluZGV4XHJcbiAgICovXHJcblxyXG4gIGVkaXRDb250cm9sKGluZGV4OiBudW1iZXIpIHtcclxuICAgIHRoaXMuZm9ybS5yZXNldCh0aGlzLmNvbnRyb2xzW2luZGV4XS52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBnZXREaXJ0eSgpIHtcclxuICAgIHRoaXMubWFya0FzRGlydHkoKTtcclxuICAgIHRoaXMuZm9ybS5nZXREaXJ0eSgpO1xyXG4gICAgdGhpcy5jb250cm9scy5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgICg8U3BlY2lhbEZvcm1Hcm91cD5pdGVtKS5nZXREaXJ0eSgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICByZWN1cnNpdmVGaWxsRm9ybShmb3JtOiBGb3JtR3JvdXAsIGRhdGE6IGFueSk6IEZvcm1Hcm91cCB7XHJcbiAgICBPYmplY3QuZW50cmllcyhmb3JtLmNvbnRyb2xzKS5tYXAoKFtrZXksIGNvbnRyb2xdKSA9PiB7XHJcbiAgICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUNvbnRyb2wpIHtcclxuICAgICAgICBjb250cm9sLnNldFZhbHVlKGRhdGFba2V5XSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1BcnJheSkge1xyXG4gICAgICAgIGRhdGFba2V5XS5mb3JFYWNoKCgpID0+IHt9KTtcclxuICAgICAgfSBlbHNlIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUdyb3VwKSB7XHJcbiAgICAgICAgY29udHJvbC5yZXNldChkYXRhW2tleV0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBmb3JtO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtYmFzaWNzLmludGVyZmFjZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGVjaWFsLWZvcm1zL3NyYy9saWIvY29yZS9pbnRlcmZhY2VzL2ZpZWxkLWJhc2ljcy5pbnRlcmZhY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1ZhbGlkYXRvckZuLCBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUZpZWxkQmFzaWNEYXRhIHtcclxuICBwbGFjZWhvbGRlcjogc3RyaW5nO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgdG9vbHRpcDogc3RyaW5nO1xyXG4gIGljb246IHN0cmluZztcclxuICBlbGVtZW50SWQ6IHN0cmluZztcclxuICBzdHlsZUNsYXNzZXM6IHN0cmluZztcclxuICBsZW5ndGg6IG51bWJlcjtcclxuICByZXF1aXJlZDogYm9vbGVhbjtcclxuICBoaWRkZW46IGJvb2xlYW47XHJcbiAgcmVhZE9ubHk6IGJvb2xlYW47XHJcbiAgZGlzYWJsZWQ6Ym9vbGVhbjtcclxuICBlcnJvck1lc3NhZ2VzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElGaWVsZERhdGEgZXh0ZW5kcyBJRmllbGRCYXNpY0RhdGEge1xyXG4gIHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuIHwgVmFsaWRhdG9yRm5bXSB8IG51bGw7XHJcbiAgYXN5bmNWYWxpZGF0b3JzOiBBc3luY1ZhbGlkYXRvckZuIHwgQXN5bmNWYWxpZGF0b3JGbltdIHwgbnVsbDtcclxuICBkZWZhdWx0VmFsdWU6IGFueTtcclxufVxyXG4iXX0=
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5pbnRlcmZhY2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlY2lhbC1mb3Jtcy9zcmMvbGliL2NvcmUvaW50ZXJmYWNlcy9mb3JtLmludGVyZmFjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElBdXRvY29tcGxldGVGaWVsZCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvc3BlY2lhbC1hdXRvY29tcGxldGUvc3BlY2lhbC1hdXRvY29tcGxldGUuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgSURhdGVQaWNrZXJGaWVsZCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvc3BlY2lhbC1kYXRlcGlja2VyL3NwZWNpYWwtZGF0ZXBpY2tlci5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBJRHJvcGRvd25GaWVsZCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvc3BlY2lhbC1kcm9wZG93bi9zcGVjaWFsLWRyb3Bkb3duLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IElJbnB1dEZpZWxkIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9zcGVjaWFsLWlucHV0L3NwZWNpYWwtaW5wdXQuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgSUNoZWNrYm94RmllbGQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL3NwZWNpYWwtY2hlY2tib3gvc3BlY2lhbC1jaGVja2JveC5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBJTXVsdGlwbGVBdXRvY29tcGxldGVGaWVsZCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvc3BlY2lhbC1tdWx0aXBsZS1hdXRvY29tcGxldGUvc3BlY2lhbC1tdWx0aXBsZS1hdXRvY29tcGxldGUuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgRUNvbnRyb2xUeXBlcyB9IGZyb20gJy4uL2F1eC1kYXRhL2NvbnRyb2wtdHlwZXMuZW51bSc7XHJcbmltcG9ydCB7IElGaWVsZERhdGEgfSBmcm9tICcuL2ZpZWxkLWJhc2ljcy5pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgSVRleHRBcmVhRmllbGQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL3NwZWNpYWwtdGV4dC1hcmVhL3NwZWNpYWwtdGV4dC1hcmVhLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IElVcGxvYWRGaWVsZCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvc3BlY2lhbC11cGxvYWQvc3BlY2lhbC11cGxvYWQuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgSUxhYmVsRmllbGQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL3NwZWNpYWwtbGFiZWwvc3BlY2lhbC1sYWJlbC5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBJUmljaFRleHRGaWVsZCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvc3BlY2lhbC1yaWNodGV4dC9zcGVjaWFsLXJpY2h0ZXh0LmludGVyZmFjZSc7XHJcblxyXG5pbnRlcmZhY2UgSWNvbnRyb2xOYW1lIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIElGb3JtU2V0dGluZ3MgPSB7XHJcbiAgZm9ybUZpZWxkczogSUZvcm1TdHJ1Y3R1cmU7XHJcbn07XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElGb3JtRmllbGQ8VCA9IGFueT4gZXh0ZW5kcyBJRmllbGREYXRhIHtcclxuICBzZXR0aW5nczogSUZvcm1TZXR0aW5ncztcclxuICB0eXBlOiBFQ29udHJvbFR5cGVzLmZvcm07XHJcbiAgZGVmYXVsdFZhbHVlOiBUO1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBJQXJyYXlTZXR0aW5ncyA9IHtcclxuICBhZGRBY3Rpb25MYWJlbD86IHN0cmluZztcclxuICByZW1vdmVBY3Rpb25MYWJlbD86IHN0cmluZztcclxuICBmb3JtRmllbGRzOiBJRm9ybVN0cnVjdHVyZTtcclxuICB3aXRoRm9ybUhlYWRlcj86IGJvb2xlYW47XHJcbiAgd2l0aEFjdGlvbkJ1dHRvbnM/OiBib29sZWFuO1xyXG59O1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJQXJyYXlGaWVsZDxUID0gYW55PiBleHRlbmRzIElGaWVsZERhdGEge1xyXG4gIHNldHRpbmdzOiBJQXJyYXlTZXR0aW5ncztcclxuICB0eXBlOiBFQ29udHJvbFR5cGVzLmFycmF5O1xyXG4gIGRlZmF1bHRWYWx1ZTogVFtdO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElQa2V5RmllbGQ8VCA9IGFueT4gZXh0ZW5kcyBJRmllbGREYXRhIHtcclxuICBzZXR0aW5nczogYW55O1xyXG4gIHR5cGU6IEVDb250cm9sVHlwZXMucGtleTtcclxuICBkZWZhdWx0VmFsdWU6IGFueTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJRGVmYXVsdEZpZWxkIGV4dGVuZHMgSUZpZWxkRGF0YSB7XHJcbiAgc2V0dGluZ3M6IGFueTtcclxuICB0eXBlOiBFQ29udHJvbFR5cGVzLmRlZmF1bHQ7XHJcbiAgZGVmYXVsdFZhbHVlOiBhbnk7XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFRSYXdGaWVsZHMgPVxyXG4gIHwgSURlZmF1bHRGaWVsZFxyXG4gIHwgSUlucHV0RmllbGRcclxuICB8IElSaWNoVGV4dEZpZWxkXHJcbiAgfCBJRHJvcGRvd25GaWVsZFxyXG4gIHwgSUFycmF5RmllbGRcclxuICB8IElGb3JtRmllbGRcclxuICB8IElBdXRvY29tcGxldGVGaWVsZFxyXG4gIHwgSU11bHRpcGxlQXV0b2NvbXBsZXRlRmllbGRcclxuICB8IElEYXRlUGlja2VyRmllbGRcclxuICB8IElUZXh0QXJlYUZpZWxkXHJcbiAgfCBJVXBsb2FkRmllbGRcclxuICB8IElMYWJlbEZpZWxkXHJcbiAgfCBJUGtleUZpZWxkXHJcbiAgfCBJQ2hlY2tib3hGaWVsZDtcclxuXHJcbmV4cG9ydCB0eXBlIFRTcGVjaWFsSW5wdXQgPSBJSW5wdXRGaWVsZCAmIEljb250cm9sTmFtZTtcclxuZXhwb3J0IHR5cGUgVFNwZWNpYWxEZWZhdWx0ID0gSURlZmF1bHRGaWVsZCAmIEljb250cm9sTmFtZTtcclxuZXhwb3J0IHR5cGUgVFNwZWNpYWxEcm9wZG93biA9IElEcm9wZG93bkZpZWxkICYgSWNvbnRyb2xOYW1lO1xyXG5leHBvcnQgdHlwZSBUU3BlY2lhbEFycmF5ID0gSUFycmF5RmllbGQgJiBJY29udHJvbE5hbWU7XHJcbmV4cG9ydCB0eXBlIFRTcGVjaWFsRm9ybSA9IElGb3JtRmllbGQgJiBJY29udHJvbE5hbWU7XHJcbmV4cG9ydCB0eXBlIFRTcGVjaWFsUmljaFRleHQgPSBJUmljaFRleHRGaWVsZCAmIEljb250cm9sTmFtZTtcclxuZXhwb3J0IHR5cGUgVFNwZWNpYWxBdXRvY29tcGxldGUgPSBJQXV0b2NvbXBsZXRlRmllbGQgJiBJY29udHJvbE5hbWU7XHJcbmV4cG9ydCB0eXBlIFRTcGVjaWFsRGF0ZXBpY2tlciA9IElEYXRlUGlja2VyRmllbGQgJiBJY29udHJvbE5hbWU7XHJcbmV4cG9ydCB0eXBlIElTcGVjaWFsQ2hlY2tib3ggPSBJQ2hlY2tib3hGaWVsZCAmIEljb250cm9sTmFtZTtcclxuZXhwb3J0IHR5cGUgSVNwZWNpYWxUZXh0QXJlYSA9IElUZXh0QXJlYUZpZWxkICYgSWNvbnRyb2xOYW1lO1xyXG5leHBvcnQgdHlwZSBJU3BlY2lhbExhYmVsID0gSUxhYmVsRmllbGQgJiBJY29udHJvbE5hbWU7XHJcbmV4cG9ydCB0eXBlIElTcGVjaWFsVXBsb2FkID0gSVVwbG9hZEZpZWxkICYgSWNvbnRyb2xOYW1lO1xyXG5leHBvcnQgdHlwZSBJU3BlY2lhbFBrZXkgPSBJUGtleUZpZWxkICYgSWNvbnRyb2xOYW1lO1xyXG5cclxuZXhwb3J0IHR5cGUgVFNwZWNpYWxGaWVsZHMgPVxyXG4gIHwgVFNwZWNpYWxEZWZhdWx0XHJcbiAgfCBUU3BlY2lhbElucHV0XHJcbiAgfCBUU3BlY2lhbERyb3Bkb3duXHJcbiAgfCBUU3BlY2lhbEFycmF5XHJcbiAgfCBUU3BlY2lhbEZvcm1cclxuICB8IFRTcGVjaWFsUmljaFRleHRcclxuICB8IFRTcGVjaWFsQXV0b2NvbXBsZXRlXHJcbiAgfCBJU3BlY2lhbENoZWNrYm94XHJcbiAgfCBJU3BlY2lhbFRleHRBcmVhXHJcbiAgfCBJU3BlY2lhbFVwbG9hZFxyXG4gIHwgSVNwZWNpYWxMYWJlbFxyXG4gIHwgSVNwZWNpYWxQa2V5XHJcbiAgfCBUU3BlY2lhbERhdGVwaWNrZXI7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElGb3JtU3RydWN0dXJlIHtcclxuICBbbmFtZTogc3RyaW5nXTogUGFydGlhbDxUUmF3RmllbGRzPjtcclxufVxyXG4iXX0=
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export class ISpecialControl {
|
|
2
|
-
}
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlY2lhbC1jb250cm9sLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwZWNpYWwtZm9ybXMvc3JjL2xpYi9jb3JlL2ludGVyZmFjZXMvc3BlY2lhbC1jb250cm9sLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxNQUFNLE9BQWdCLGVBQWU7Q0FFcEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIFNwZWNpYWxGb3JtQ29udHJvbCxcclxuICBTcGVjaWFsRm9ybUFycmF5LFxyXG4gIFNwZWNpYWxGb3JtR3JvdXAsXHJcbn0gZnJvbSAnLi4vZm9ybXMvc3BlY2lhbC1mb3Jtcyc7XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgSVNwZWNpYWxDb250cm9sIHtcclxuICBjb250cm9sOiBTcGVjaWFsRm9ybUNvbnRyb2w8YW55PiB8IFNwZWNpYWxGb3JtQXJyYXkgfCBTcGVjaWFsRm9ybUdyb3VwO1xyXG59XHJcbiJdfQ==
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { createMask } from '@ngneat/input-mask';
|
|
2
|
-
export const currencyInputMask = createMask({
|
|
3
|
-
alias: 'numeric',
|
|
4
|
-
groupSeparator: ',',
|
|
5
|
-
autoUnmask: true,
|
|
6
|
-
digits: 2,
|
|
7
|
-
digitsOptional: false,
|
|
8
|
-
prefix: '$ ',
|
|
9
|
-
placeholder: '0',
|
|
10
|
-
});
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3kubWFzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwZWNpYWwtZm9ybXMvc3JjL2xpYi9jb3JlL21hc2tzL2N1cnJlbmN5Lm1hc2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWhELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLFVBQVUsQ0FBQztJQUMxQyxLQUFLLEVBQUUsU0FBUztJQUNoQixjQUFjLEVBQUUsR0FBRztJQUNuQixVQUFVLEVBQUUsSUFBSTtJQUNoQixNQUFNLEVBQUUsQ0FBQztJQUNULGNBQWMsRUFBRSxLQUFLO0lBQ3JCLE1BQU0sRUFBRSxJQUFJO0lBQ1osV0FBVyxFQUFFLEdBQUc7Q0FDakIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlTWFzayB9IGZyb20gJ0BuZ25lYXQvaW5wdXQtbWFzayc7XHJcblxyXG5leHBvcnQgY29uc3QgY3VycmVuY3lJbnB1dE1hc2sgPSBjcmVhdGVNYXNrKHtcclxuICBhbGlhczogJ251bWVyaWMnLFxyXG4gIGdyb3VwU2VwYXJhdG9yOiAnLCcsXHJcbiAgYXV0b1VubWFzazogdHJ1ZSxcclxuICBkaWdpdHM6IDIsXHJcbiAgZGlnaXRzT3B0aW9uYWw6IGZhbHNlLFxyXG4gIHByZWZpeDogJyQgJyxcclxuICBwbGFjZWhvbGRlcjogJzAnLFxyXG59KTtcclxuIl19
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export { currencyInputMask } from './currency.mask';
|
|
2
|
-
export { numberMask } from './number.mask';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGVjaWFsLWZvcm1zL3NyYy9saWIvY29yZS9tYXNrcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgY3VycmVuY3lJbnB1dE1hc2sgfSBmcm9tICcuL2N1cnJlbmN5Lm1hc2snO1xyXG5leHBvcnQgeyBudW1iZXJNYXNrIH0gZnJvbSAnLi9udW1iZXIubWFzayc7XHJcbiJdfQ==
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { createMask } from '@ngneat/input-mask';
|
|
2
|
-
export const numberMask = (max = 1000) => createMask({ alias: 'numeric', min: 0, max });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLm1hc2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGVjaWFsLWZvcm1zL3NyYy9saWIvY29yZS9tYXNrcy9udW1iZXIubWFzay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFaEQsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQUMsR0FBRyxHQUFHLElBQUksRUFBRSxFQUFFLENBQ3ZDLFVBQVUsQ0FBQyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlTWFzayB9IGZyb20gJ0BuZ25lYXQvaW5wdXQtbWFzayc7XHJcblxyXG5leHBvcnQgY29uc3QgbnVtYmVyTWFzayA9IChtYXggPSAxMDAwKSA9PlxyXG4gIGNyZWF0ZU1hc2soeyBhbGlhczogJ251bWVyaWMnLCBtaW46IDAsIG1heCB9KTtcclxuIl19
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { Pipe } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class FormControlsListPipe {
|
|
4
|
-
transform(controls) {
|
|
5
|
-
if (!controls)
|
|
6
|
-
return [];
|
|
7
|
-
return Object.values(controls)
|
|
8
|
-
.filter((control) => !control.hidden)
|
|
9
|
-
.map((control) => control);
|
|
10
|
-
}
|
|
11
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: FormControlsListPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
12
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: FormControlsListPipe, isStandalone: true, name: "controlsList" }); }
|
|
13
|
-
}
|
|
14
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: FormControlsListPipe, decorators: [{
|
|
15
|
-
type: Pipe,
|
|
16
|
-
args: [{ name: 'controlsList', standalone: true }]
|
|
17
|
-
}] });
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbHMtbGlzdC5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlY2lhbC1mb3Jtcy9zcmMvbGliL2NvcmUvcGlwZXMvY29udHJvbHMtbGlzdC1waXBlL2NvbnRyb2xzLWxpc3QucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFLcEQsTUFBTSxPQUFPLG9CQUFvQjtJQUMvQixTQUFTLENBQUMsUUFFVDtRQUNDLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFDekIsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQzthQUMzQixNQUFNLENBQUMsQ0FBQyxPQUFnQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7YUFDN0QsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFrQyxDQUFDLENBQUM7SUFDMUQsQ0FBQzs4R0FSVSxvQkFBb0I7NEdBQXBCLG9CQUFvQjs7MkZBQXBCLG9CQUFvQjtrQkFEaEMsSUFBSTttQkFBQyxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTcGVjaWFsRm9ybUNvbnRyb2wgfSBmcm9tICcuLi8uLi9mb3Jtcy9zcGVjaWFsLWZvcm1zJztcclxuXHJcbkBQaXBlKHsgbmFtZTogJ2NvbnRyb2xzTGlzdCcsIHN0YW5kYWxvbmU6IHRydWUgfSlcclxuZXhwb3J0IGNsYXNzIEZvcm1Db250cm9sc0xpc3RQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgdHJhbnNmb3JtKGNvbnRyb2xzOiB7XHJcbiAgICBba2V5OiBzdHJpbmddOiBBYnN0cmFjdENvbnRyb2w7XHJcbiAgfSk6IFNwZWNpYWxGb3JtQ29udHJvbDxhbnk+W10ge1xyXG4gICAgaWYgKCFjb250cm9scykgcmV0dXJuIFtdO1xyXG4gICAgcmV0dXJuIE9iamVjdC52YWx1ZXMoY29udHJvbHMpXHJcbiAgICAgIC5maWx0ZXIoKGNvbnRyb2w6IFNwZWNpYWxGb3JtQ29udHJvbDxhbnk+KSA9PiAhY29udHJvbC5oaWRkZW4pXHJcbiAgICAgIC5tYXAoKGNvbnRyb2wpID0+IGNvbnRyb2wgYXMgU3BlY2lhbEZvcm1Db250cm9sPGFueT4pO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { Pipe } from "@angular/core";
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class ErrorMessagePipe {
|
|
4
|
-
transform(errorsObj, errorMessages, control) {
|
|
5
|
-
const errors = errorsObj ? Object.keys(errorsObj) : [];
|
|
6
|
-
const error = errors[0];
|
|
7
|
-
const message = errorMessages[error] || error;
|
|
8
|
-
if (control) {
|
|
9
|
-
control.setErrors(errorsObj);
|
|
10
|
-
}
|
|
11
|
-
return message;
|
|
12
|
-
}
|
|
13
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ErrorMessagePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
14
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: ErrorMessagePipe, isStandalone: true, name: "errorMessage" }); }
|
|
15
|
-
}
|
|
16
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ErrorMessagePipe, decorators: [{
|
|
17
|
-
type: Pipe,
|
|
18
|
-
args: [{
|
|
19
|
-
name: "errorMessage",
|
|
20
|
-
standalone: true
|
|
21
|
-
}]
|
|
22
|
-
}] });
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwZWNpYWwtZm9ybXMvc3JjL2xpYi9jb3JlL3BpcGVzL2Vycm9yLW1lc3NhZ2UtcGlwZS9lcnJvci5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQU9wRCxNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCLFNBQVMsQ0FDUCxTQUFpQyxFQUNqQyxhQUFxQyxFQUNyQyxPQUFxQjtRQUVyQixNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN2RCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEIsTUFBTSxPQUFPLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQztRQUM5QyxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osT0FBTyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMvQixDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQzs4R0FiVSxnQkFBZ0I7NEdBQWhCLGdCQUFnQjs7MkZBQWhCLGdCQUFnQjtrQkFKNUIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsY0FBYztvQkFDcEIsVUFBVSxFQUFDLElBQUk7aUJBQ2hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcblxyXG5AUGlwZSh7XHJcbiAgbmFtZTogXCJlcnJvck1lc3NhZ2VcIixcclxuICBzdGFuZGFsb25lOnRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIEVycm9yTWVzc2FnZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuICB0cmFuc2Zvcm0oXHJcbiAgICBlcnJvcnNPYmo6IHsgW2tleTogc3RyaW5nXTogYW55IH0sXHJcbiAgICBlcnJvck1lc3NhZ2VzOiB7IFtrZXk6IHN0cmluZ106IGFueSB9LFxyXG4gICAgY29udHJvbD86IEZvcm1Db250cm9sXHJcbiAgKTogYW55IHtcclxuICAgIGNvbnN0IGVycm9ycyA9IGVycm9yc09iaiA/IE9iamVjdC5rZXlzKGVycm9yc09iaikgOiBbXTtcclxuICAgIGNvbnN0IGVycm9yID0gZXJyb3JzWzBdO1xyXG4gICAgY29uc3QgbWVzc2FnZSA9IGVycm9yTWVzc2FnZXNbZXJyb3JdIHx8IGVycm9yO1xyXG4gICAgaWYgKGNvbnRyb2wpIHtcclxuICAgICAgY29udHJvbC5zZXRFcnJvcnMoZXJyb3JzT2JqKTtcclxuICAgIH1cclxuICAgIHJldHVybiBtZXNzYWdlO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export { ErrorMessagePipe } from './error-message-pipe/error.pipe';
|
|
2
|
-
export { TextByFunctionPipe } from './text-by-function/text-by-function.pipe';
|
|
3
|
-
export { FormControlsListPipe } from './controls-list-pipe/controls-list.pipe';
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGVjaWFsLWZvcm1zL3NyYy9saWIvY29yZS9waXBlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IEVycm9yTWVzc2FnZVBpcGUgfSBmcm9tICcuL2Vycm9yLW1lc3NhZ2UtcGlwZS9lcnJvci5waXBlJztcclxuZXhwb3J0IHsgVGV4dEJ5RnVuY3Rpb25QaXBlIH0gZnJvbSAnLi90ZXh0LWJ5LWZ1bmN0aW9uL3RleHQtYnktZnVuY3Rpb24ucGlwZSc7XHJcbmV4cG9ydCB7IEZvcm1Db250cm9sc0xpc3RQaXBlIH0gZnJvbSAnLi9jb250cm9scy1saXN0LXBpcGUvY29udHJvbHMtbGlzdC5waXBlJztcclxuIl19
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { Pipe } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class TextByFunctionPipe {
|
|
4
|
-
transform(value, field) {
|
|
5
|
-
if (field instanceof Function) {
|
|
6
|
-
return field(value);
|
|
7
|
-
}
|
|
8
|
-
else if (value instanceof Object) {
|
|
9
|
-
return value[field];
|
|
10
|
-
}
|
|
11
|
-
else {
|
|
12
|
-
return value;
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TextByFunctionPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
16
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: TextByFunctionPipe, isStandalone: true, name: "textByFunction" }); }
|
|
17
|
-
}
|
|
18
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TextByFunctionPipe, decorators: [{
|
|
19
|
-
type: Pipe,
|
|
20
|
-
args: [{ name: 'textByFunction', standalone: true }]
|
|
21
|
-
}] });
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1ieS1mdW5jdGlvbi5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlY2lhbC1mb3Jtcy9zcmMvbGliL2NvcmUvcGlwZXMvdGV4dC1ieS1mdW5jdGlvbi90ZXh0LWJ5LWZ1bmN0aW9uLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBR3BELE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsU0FBUyxDQUFDLEtBQVUsRUFBRSxLQUF3QztRQUM1RCxJQUFJLEtBQUssWUFBWSxRQUFRLEVBQUUsQ0FBQztZQUM5QixPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0QixDQUFDO2FBQU0sSUFBSSxLQUFLLFlBQVksTUFBTSxFQUFFLENBQUM7WUFDbkMsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEIsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7SUFDSCxDQUFDOzhHQVRVLGtCQUFrQjs0R0FBbEIsa0JBQWtCOzsyRkFBbEIsa0JBQWtCO2tCQUQ5QixJQUFJO21CQUFDLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AUGlwZSh7IG5hbWU6ICd0ZXh0QnlGdW5jdGlvbicsIHN0YW5kYWxvbmU6IHRydWUgfSlcclxuZXhwb3J0IGNsYXNzIFRleHRCeUZ1bmN0aW9uUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gIHRyYW5zZm9ybSh2YWx1ZTogYW55LCBmaWVsZDogc3RyaW5nIHwgKCh2YWx1ZTogYW55KSA9PiBzdHJpbmcpKTogYW55IHtcclxuICAgIGlmIChmaWVsZCBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XHJcbiAgICAgIHJldHVybiBmaWVsZCh2YWx1ZSk7XHJcbiAgICB9IGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgT2JqZWN0KSB7XHJcbiAgICAgIHJldHVybiB2YWx1ZVtmaWVsZF07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class ErrorStateMatcherService {
|
|
4
|
-
isErrorState(control) {
|
|
5
|
-
return control && control.invalid && control.dirty;
|
|
6
|
-
}
|
|
7
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ErrorStateMatcherService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
8
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ErrorStateMatcherService }); }
|
|
9
|
-
}
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ErrorStateMatcherService, decorators: [{
|
|
11
|
-
type: Injectable
|
|
12
|
-
}] });
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItbWF0Y2hlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwZWNpYWwtZm9ybXMvc3JjL2xpYi9jb3JlL3NlcnZpY2VzL2Vycm9yLXN0YXRlLW1hdGNoZXIvZXJyb3ItbWF0Y2hlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUczQyxNQUFNLE9BQU8sd0JBQXdCO0lBQ25DLFlBQVksQ0FBQyxPQUFvQjtRQUMvQixPQUFPLE9BQU8sSUFBSSxPQUFPLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDckQsQ0FBQzs4R0FIVSx3QkFBd0I7a0hBQXhCLHdCQUF3Qjs7MkZBQXhCLHdCQUF3QjtrQkFEcEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXBEaXJlY3RpdmUsIE5nRm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRXJyb3JTdGF0ZU1hdGNoZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgRXJyb3JTdGF0ZU1hdGNoZXJTZXJ2aWNlIGltcGxlbWVudHMgRXJyb3JTdGF0ZU1hdGNoZXIge1xyXG4gIGlzRXJyb3JTdGF0ZShjb250cm9sOiBGb3JtQ29udHJvbCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGNvbnRyb2wgJiYgY29udHJvbC5pbnZhbGlkICYmIGNvbnRyb2wuZGlydHk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { SpecialFormBuilderService } from './special-form-builder/special-form-builder.service';
|
|
2
|
-
import { ErrorStateMatcherService } from './error-state-matcher/error-matcher';
|
|
3
|
-
export { SpecialFormBuilderService, ErrorStateMatcherService };
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGVjaWFsLWZvcm1zL3NyYy9saWIvY29yZS9zZXJ2aWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUNoRyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUUvRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsd0JBQXdCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNwZWNpYWxGb3JtQnVpbGRlclNlcnZpY2UgfSBmcm9tICcuL3NwZWNpYWwtZm9ybS1idWlsZGVyL3NwZWNpYWwtZm9ybS1idWlsZGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBFcnJvclN0YXRlTWF0Y2hlclNlcnZpY2UgfSBmcm9tICcuL2Vycm9yLXN0YXRlLW1hdGNoZXIvZXJyb3ItbWF0Y2hlcic7XHJcblxyXG5leHBvcnQgeyBTcGVjaWFsRm9ybUJ1aWxkZXJTZXJ2aWNlLCBFcnJvclN0YXRlTWF0Y2hlclNlcnZpY2UgfTtcclxuIl19
|
|
@@ -1,156 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { Validators } from '@angular/forms';
|
|
3
|
-
import { EControlTypes } from '../../aux-data/control-types.enum';
|
|
4
|
-
import { SpecialFormArray, SpecialFormControl, SpecialFormGroup, } from '../../forms/special-forms';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
export class SpecialFormBuilderService {
|
|
7
|
-
constructor() {
|
|
8
|
-
this.defectField = {
|
|
9
|
-
asyncValidators: null,
|
|
10
|
-
validators: null,
|
|
11
|
-
defaultValue: null,
|
|
12
|
-
elementId: '',
|
|
13
|
-
hidden: false,
|
|
14
|
-
icon: '',
|
|
15
|
-
label: '',
|
|
16
|
-
disabled: false,
|
|
17
|
-
length: 0,
|
|
18
|
-
placeholder: '',
|
|
19
|
-
readOnly: false,
|
|
20
|
-
required: false,
|
|
21
|
-
styleClasses: '',
|
|
22
|
-
errorMessages: {},
|
|
23
|
-
tooltip: '',
|
|
24
|
-
};
|
|
25
|
-
this.inputDefectField = {
|
|
26
|
-
...this.defectField,
|
|
27
|
-
settings: {},
|
|
28
|
-
type: EControlTypes.input,
|
|
29
|
-
name: '',
|
|
30
|
-
};
|
|
31
|
-
this.formDefectField = {
|
|
32
|
-
...this.defectField,
|
|
33
|
-
settings: {
|
|
34
|
-
formFields: {},
|
|
35
|
-
},
|
|
36
|
-
type: EControlTypes.form,
|
|
37
|
-
name: '',
|
|
38
|
-
};
|
|
39
|
-
this.arrayDefectField = {
|
|
40
|
-
...this.defectField,
|
|
41
|
-
settings: {
|
|
42
|
-
formFields: {},
|
|
43
|
-
},
|
|
44
|
-
type: EControlTypes.array,
|
|
45
|
-
name: '',
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
control(field) {
|
|
49
|
-
const formField = {
|
|
50
|
-
...this.inputDefectField,
|
|
51
|
-
...field,
|
|
52
|
-
};
|
|
53
|
-
const { control } = this.setFormControl(formField);
|
|
54
|
-
return control;
|
|
55
|
-
}
|
|
56
|
-
group(fields, parentField = {}) {
|
|
57
|
-
return this.formGenerator(this.fieldDataToArray(fields), parentField);
|
|
58
|
-
}
|
|
59
|
-
array() { }
|
|
60
|
-
fieldDataToArray(fields) {
|
|
61
|
-
return Object.entries(fields).map(([name, field]) => this.setDefectFieldOptions(name, field));
|
|
62
|
-
}
|
|
63
|
-
setDefectFieldOptions(name, field) {
|
|
64
|
-
return {
|
|
65
|
-
...this.inputDefectField,
|
|
66
|
-
...field,
|
|
67
|
-
name,
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
formGenerator(fields, parentField = {}) {
|
|
71
|
-
const formField = {
|
|
72
|
-
...this.formDefectField,
|
|
73
|
-
...parentField,
|
|
74
|
-
};
|
|
75
|
-
const structure = fields
|
|
76
|
-
.map((field) => this.getControlAndNameByType(field))
|
|
77
|
-
.reduce((prev, { name, control }) => ({
|
|
78
|
-
...prev,
|
|
79
|
-
[name]: control,
|
|
80
|
-
}), {});
|
|
81
|
-
return new SpecialFormGroup(formField, structure);
|
|
82
|
-
}
|
|
83
|
-
getControlAndNameByType(field) {
|
|
84
|
-
switch (field.type) {
|
|
85
|
-
case EControlTypes.array:
|
|
86
|
-
return this.setFormArray(field);
|
|
87
|
-
case EControlTypes.form:
|
|
88
|
-
return this.setFormGroup(field);
|
|
89
|
-
default:
|
|
90
|
-
return this.setFormControl(field);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
setFormGroup(field) {
|
|
94
|
-
const control = this.formGenerator(this.fieldDataToArray(field.settings.formFields), field);
|
|
95
|
-
return { control, name: field.name };
|
|
96
|
-
}
|
|
97
|
-
setFormArray(field) {
|
|
98
|
-
const auxForm = (value = {}) => {
|
|
99
|
-
const auxForm = this.formGenerator(this.fieldDataToArray(field.settings.formFields), {});
|
|
100
|
-
auxForm.reset(value);
|
|
101
|
-
return auxForm;
|
|
102
|
-
};
|
|
103
|
-
if (field.required) {
|
|
104
|
-
field.validators = this.setValidatorsArray(field.validators, [
|
|
105
|
-
this.arrayLengthRequired,
|
|
106
|
-
]);
|
|
107
|
-
}
|
|
108
|
-
return {
|
|
109
|
-
name: field.name,
|
|
110
|
-
control: new SpecialFormArray(field, auxForm, []),
|
|
111
|
-
};
|
|
112
|
-
}
|
|
113
|
-
setFormControl(field) {
|
|
114
|
-
const validators = [];
|
|
115
|
-
if (field.required)
|
|
116
|
-
validators.push(this.setRequiredValidator(field));
|
|
117
|
-
if (field.length)
|
|
118
|
-
validators.push(Validators.maxLength(field.length));
|
|
119
|
-
field.validators = this.setValidatorsArray(field.validators, validators);
|
|
120
|
-
return {
|
|
121
|
-
name: field.name,
|
|
122
|
-
control: new SpecialFormControl(field),
|
|
123
|
-
};
|
|
124
|
-
}
|
|
125
|
-
setRequiredValidator(field) {
|
|
126
|
-
if (field.type !== EControlTypes.autocomplete) {
|
|
127
|
-
return Validators.required;
|
|
128
|
-
}
|
|
129
|
-
return (control) => !!control.value && control.value instanceof Object
|
|
130
|
-
? null
|
|
131
|
-
: { required: true };
|
|
132
|
-
}
|
|
133
|
-
setValidatorsArray(validators, newValidators) {
|
|
134
|
-
if (!validators) {
|
|
135
|
-
return newValidators;
|
|
136
|
-
}
|
|
137
|
-
return validators instanceof Array
|
|
138
|
-
? [...validators, ...newValidators]
|
|
139
|
-
: [validators, ...newValidators];
|
|
140
|
-
}
|
|
141
|
-
arrayLengthRequired(control) {
|
|
142
|
-
if (control.value.length) {
|
|
143
|
-
return {};
|
|
144
|
-
}
|
|
145
|
-
return { noItems: 'NO_SELECTED_ITEM' };
|
|
146
|
-
}
|
|
147
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: SpecialFormBuilderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
148
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: SpecialFormBuilderService, providedIn: 'root' }); }
|
|
149
|
-
}
|
|
150
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: SpecialFormBuilderService, decorators: [{
|
|
151
|
-
type: Injectable,
|
|
152
|
-
args: [{
|
|
153
|
-
providedIn: 'root',
|
|
154
|
-
}]
|
|
155
|
-
}], ctorParameters: () => [] });
|
|
156
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlY2lhbC1mb3JtLWJ1aWxkZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwZWNpYWwtZm9ybXMvc3JjL2xpYi9jb3JlL3NlcnZpY2VzL3NwZWNpYWwtZm9ybS1idWlsZGVyL3NwZWNpYWwtZm9ybS1idWlsZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWdDLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNsRSxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixnQkFBZ0IsR0FDakIsTUFBTSwyQkFBMkIsQ0FBQzs7QUFrQm5DLE1BQU0sT0FBTyx5QkFBeUI7SUE0Q3BDO1FBM0NpQixnQkFBVyxHQUFlO1lBQ3pDLGVBQWUsRUFBRSxJQUFJO1lBQ3JCLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLFlBQVksRUFBRSxJQUFJO1lBQ2xCLFNBQVMsRUFBRSxFQUFFO1lBQ2IsTUFBTSxFQUFFLEtBQUs7WUFDYixJQUFJLEVBQUUsRUFBRTtZQUNSLEtBQUssRUFBRSxFQUFFO1lBQ1QsUUFBUSxFQUFFLEtBQUs7WUFDZixNQUFNLEVBQUUsQ0FBQztZQUNULFdBQVcsRUFBRSxFQUFFO1lBQ2YsUUFBUSxFQUFFLEtBQUs7WUFDZixRQUFRLEVBQUUsS0FBSztZQUNmLFlBQVksRUFBRSxFQUFFO1lBQ2hCLGFBQWEsRUFBRSxFQUFFO1lBQ2pCLE9BQU8sRUFBRSxFQUFFO1NBQ1osQ0FBQztRQUVlLHFCQUFnQixHQUFrQjtZQUNqRCxHQUFHLElBQUksQ0FBQyxXQUFXO1lBQ25CLFFBQVEsRUFBRSxFQUFFO1lBQ1osSUFBSSxFQUFFLGFBQWEsQ0FBQyxLQUFLO1lBQ3pCLElBQUksRUFB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O2tCQUhyQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0b3JGbiwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgSUF1dG9jb21wbGV0ZUZpZWxkIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9zcGVjaWFsLWF1dG9jb21wbGV0ZS9zcGVjaWFsLWF1dG9jb21wbGV0ZS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBFQ29udHJvbFR5cGVzIH0gZnJvbSAnLi4vLi4vYXV4LWRhdGEvY29udHJvbC10eXBlcy5lbnVtJztcclxuaW1wb3J0IHtcclxuICBTcGVjaWFsRm9ybUFycmF5LFxyXG4gIFNwZWNpYWxGb3JtQ29udHJvbCxcclxuICBTcGVjaWFsRm9ybUdyb3VwLFxyXG59IGZyb20gJy4uLy4uL2Zvcm1zL3NwZWNpYWwtZm9ybXMnO1xyXG5pbXBvcnQgeyBJRmllbGREYXRhIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9maWVsZC1iYXNpY3MuaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7XHJcbiAgSUZvcm1TdHJ1Y3R1cmUsXHJcbiAgVFJhd0ZpZWxkcyxcclxuICBUU3BlY2lhbEFycmF5LFxyXG4gIFRTcGVjaWFsRmllbGRzLFxyXG4gIFRTcGVjaWFsRm9ybSxcclxuICBUU3BlY2lhbElucHV0LFxyXG59IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZm9ybS5pbnRlcmZhY2VzJztcclxuXHJcbmludGVyZmFjZSBJQ29udHJvbFBhcmFtcyB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGNvbnRyb2w6IFNwZWNpYWxGb3JtQXJyYXkgfCBTcGVjaWFsRm9ybUdyb3VwIHwgU3BlY2lhbEZvcm1Db250cm9sPGFueT47XHJcbn1cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNwZWNpYWxGb3JtQnVpbGRlclNlcnZpY2Uge1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVmZWN0RmllbGQ6IElGaWVsZERhdGEgPSB7XHJcbiAgICBhc3luY1ZhbGlkYXRvcnM6IG51bGwsXHJcbiAgICB2YWxpZGF0b3JzOiBudWxsLFxyXG4gICAgZGVmYXVsdFZhbHVlOiBudWxsLFxyXG4gICAgZWxlbWVudElkOiAnJyxcclxuICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICBpY29uOiAnJyxcclxuICAgIGxhYmVsOiAnJyxcclxuICAgIGRpc2FibGVkOiBmYWxzZSxcclxuICAgIGxlbmd0aDogMCxcclxuICAgIHBsYWNlaG9sZGVyOiAnJyxcclxuICAgIHJlYWRPbmx5OiBmYWxzZSxcclxuICAgIHJlcXVpcmVkOiBmYWxzZSxcclxuICAgIHN0eWxlQ2xhc3NlczogJycsXHJcbiAgICBlcnJvck1lc3NhZ2VzOiB7fSxcclxuICAgIHRvb2x0aXA6ICcnLFxyXG4gIH07XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgaW5wdXREZWZlY3RGaWVsZDogVFNwZWNpYWxJbnB1dCA9IHtcclxuICAgIC4uLnRoaXMuZGVmZWN0RmllbGQsXHJcbiAgICBzZXR0aW5nczoge30sXHJcbiAgICB0eXBlOiBFQ29udHJvbFR5cGVzLmlucHV0LFxyXG4gICAgbmFtZTogJycsXHJcbiAgfTtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBmb3JtRGVmZWN0RmllbGQ6IFRTcGVjaWFsRm9ybSA9IHtcclxuICAgIC4uLnRoaXMuZGVmZWN0RmllbGQsXHJcbiAgICBzZXR0aW5nczoge1xyXG4gICAgICBmb3JtRmllbGRzOiB7fSxcclxuICAgIH0sXHJcbiAgICB0eXBlOiBFQ29udHJvbFR5cGVzLmZvcm0sXHJcbiAgICBuYW1lOiAnJyxcclxuICB9O1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IGFycmF5RGVmZWN0RmllbGQ6IFRTcGVjaWFsQXJyYXkgPSB7XHJcbiAgICAuLi50aGlzLmRlZmVjdEZpZWxkLFxyXG4gICAgc2V0dGluZ3M6IHtcclxuICAgICAgZm9ybUZpZWxkczoge30sXHJcbiAgICB9LFxyXG4gICAgdHlwZTogRUNvbnRyb2xUeXBlcy5hcnJheSxcclxuICAgIG5hbWU6ICcnLFxyXG4gIH07XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge31cclxuXHJcbiAgcHVibGljIGNvbnRyb2woZmllbGQ6IFBhcnRpYWw8VFNwZWNpYWxGaWVsZHM+KTogU3BlY2lhbEZvcm1Db250cm9sPGFueT4ge1xyXG4gICAgY29uc3QgZm9ybUZpZWxkOiBUU3BlY2lhbEZpZWxkcyA9IHtcclxuICAgICAgLi4udGhpcy5pbnB1dERlZmVjdEZpZWxkLFxyXG4gICAgICAuLi5maWVsZCxcclxuICAgIH0gYXMgVFNwZWNpYWxGaWVsZHM7XHJcbiAgICBjb25zdCB7IGNvbnRyb2wgfSA9IHRoaXMuc2V0Rm9ybUNvbnRyb2woZm9ybUZpZWxkKTtcclxuICAgIHJldHVybiBjb250cm9sO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdyb3VwKFxyXG4gICAgZmllbGRzOiBJRm9ybVN0cnVjdHVyZSxcclxuICAgIHBhcmVudEZpZWxkOiBQYXJ0aWFsPFRTcGVjaWFsRm9ybT4gPSB7fVxyXG4gICkge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9ybUdlbmVyYXRvcih0aGlzLmZpZWxkRGF0YVRvQXJyYXkoZmllbGRzKSwgcGFyZW50RmllbGQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFycmF5KCkge31cclxuXHJcbiAgcHVibGljIGZpZWxkRGF0YVRvQXJyYXkoZmllbGRzOiBJRm9ybVN0cnVjdHVyZSk6IFRTcGVjaWFsRmllbGRzW10ge1xyXG4gICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKGZpZWxkcykubWFwKChbbmFtZSwgZmllbGRdKSA9PlxyXG4gICAgICB0aGlzLnNldERlZmVjdEZpZWxkT3B0aW9ucyhuYW1lLCBmaWVsZClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldERlZmVjdEZpZWxkT3B0aW9ucyhcclxuICAgIG5hbWU6IHN0cmluZyxcclxuICAgIGZpZWxkOiBQYXJ0aWFsPFRSYXdGaWVsZHM+XHJcbiAgKTogVFNwZWNpYWxGaWVsZHMge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgLi4udGhpcy5pbnB1dERlZmVjdEZpZWxkLFxyXG4gICAgICAuLi5maWVsZCxcclxuICAgICAgbmFtZSxcclxuICAgIH0gYXMgVFNwZWNpYWxGaWVsZHM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZvcm1HZW5lcmF0b3IoXHJcbiAgICBmaWVsZHM6IFRTcGVjaWFsRmllbGRzW10sXHJcbiAgICBwYXJlbnRGaWVsZDogUGFydGlhbDxUU3BlY2lhbEZvcm0+ID0ge31cclxuICApOiBTcGVjaWFsRm9ybUdyb3VwIHtcclxuICAgIGNvbnN0IGZvcm1GaWVsZDogVFNwZWNpYWxGb3JtID0ge1xyXG4gICAgICAuLi50aGlzLmZvcm1EZWZlY3RGaWVsZCxcclxuICAgICAgLi4ucGFyZW50RmllbGQsXHJcbiAgICB9O1xyXG4gICAgY29uc3Qgc3RydWN0dXJlID0gZmllbGRzXHJcbiAgICAgIC5tYXAoKGZpZWxkKSA9PiB0aGlzLmdldENvbnRyb2xBbmROYW1lQnlUeXBlKGZpZWxkKSlcclxuICAgICAgLnJlZHVjZShcclxuICAgICAgICAocHJldiwgeyBuYW1lLCBjb250cm9sIH06IElDb250cm9sUGFyYW1zKSA9PiAoe1xyXG4gICAgICAgICAgLi4ucHJldixcclxuICAgICAgICAgIFtuYW1lXTogY29udHJvbCxcclxuICAgICAgICB9KSxcclxuICAgICAgICB7fVxyXG4gICAgICApO1xyXG4gICAgcmV0dXJuIG5ldyBTcGVjaWFsRm9ybUdyb3VwKGZvcm1GaWVsZCwgc3RydWN0dXJlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0Q29udHJvbEFuZE5hbWVCeVR5cGUoZmllbGQ6IFRTcGVjaWFsRmllbGRzKSB7XHJcbiAgICBzd2l0Y2ggKGZpZWxkLnR5cGUpIHtcclxuICAgICAgY2FzZSBFQ29udHJvbFR5cGVzLmFycmF5OlxyXG4gICAgICAgIHJldHVybiB0aGlzLnNldEZvcm1BcnJheShmaWVsZCk7XHJcbiAgICAgIGNhc2UgRUNvbnRyb2xUeXBlcy5mb3JtOlxyXG4gICAgICAgIHJldHVybiB0aGlzLnNldEZvcm1Hcm91cChmaWVsZCk7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2V0Rm9ybUNvbnRyb2woZmllbGQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRGb3JtR3JvdXAoZmllbGQ6IFRTcGVjaWFsRm9ybSk6IHtcclxuICAgIG5hbWU6IHN0cmluZztcclxuICAgIGNvbnRyb2w6IFNwZWNpYWxGb3JtR3JvdXA7XHJcbiAgfSB7XHJcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5mb3JtR2VuZXJhdG9yKFxyXG4gICAgICB0aGlzLmZpZWxkRGF0YVRvQXJyYXkoZmllbGQuc2V0dGluZ3MuZm9ybUZpZWxkcyksXHJcbiAgICAgIGZpZWxkXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIHsgY29udHJvbCwgbmFtZTogZmllbGQubmFtZSB9O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRGb3JtQXJyYXkoZmllbGQ6IFRTcGVjaWFsQXJyYXkpOiB7XHJcbiAgICBuYW1lOiBzdHJpbmc7XHJcbiAgICBjb250cm9sOiBTcGVjaWFsRm9ybUFycmF5O1xyXG4gIH0ge1xyXG4gICAgY29uc3QgYXV4Rm9ybSA9ICh2YWx1ZSA9IHt9KSA9PiB7XHJcbiAgICAgIGNvbnN0IGF1eEZvcm0gPSB0aGlzLmZvcm1HZW5lcmF0b3IoXHJcbiAgICAgICAgdGhpcy5maWVsZERhdGFUb0FycmF5KGZpZWxkLnNldHRpbmdzLmZvcm1GaWVsZHMpLFxyXG4gICAgICAgIHt9XHJcbiAgICAgICk7XHJcbiAgICAgIGF1eEZvcm0ucmVzZXQodmFsdWUpO1xyXG4gICAgICByZXR1cm4gYXV4Rm9ybTtcclxuICAgIH07XHJcblxyXG4gICAgaWYgKGZpZWxkLnJlcXVpcmVkKSB7XHJcbiAgICAgIGZpZWxkLnZhbGlkYXRvcnMgPSB0aGlzLnNldFZhbGlkYXRvcnNBcnJheShmaWVsZC52YWxpZGF0b3JzLCBbXHJcbiAgICAgICAgdGhpcy5hcnJheUxlbmd0aFJlcXVpcmVkLFxyXG4gICAgICBdKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuYW1lOiBmaWVsZC5uYW1lLFxyXG4gICAgICBjb250cm9sOiBuZXcgU3BlY2lhbEZvcm1BcnJheShmaWVsZCwgYXV4Rm9ybSwgW10pLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0Rm9ybUNvbnRyb2woZmllbGQ6IFRTcGVjaWFsRmllbGRzKToge1xyXG4gICAgbmFtZTogc3RyaW5nO1xyXG4gICAgY29udHJvbDogU3BlY2lhbEZvcm1Db250cm9sPGFueT47XHJcbiAgfSB7XHJcbiAgICBjb25zdCB2YWxpZGF0b3JzOiBWYWxpZGF0b3JGbltdID0gW107XHJcblxyXG4gICAgaWYgKGZpZWxkLnJlcXVpcmVkKSB2YWxpZGF0b3JzLnB1c2godGhpcy5zZXRSZXF1aXJlZFZhbGlkYXRvcihmaWVsZCkpO1xyXG4gICAgaWYgKGZpZWxkLmxlbmd0aCkgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWF4TGVuZ3RoKGZpZWxkLmxlbmd0aCkpO1xyXG5cclxuICAgIGZpZWxkLnZhbGlkYXRvcnMgPSB0aGlzLnNldFZhbGlkYXRvcnNBcnJheShmaWVsZC52YWxpZGF0b3JzLCB2YWxpZGF0b3JzKTtcclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuYW1lOiBmaWVsZC5uYW1lLFxyXG4gICAgICBjb250cm9sOiBuZXcgU3BlY2lhbEZvcm1Db250cm9sKGZpZWxkKSxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFJlcXVpcmVkVmFsaWRhdG9yKGZpZWxkOiBUU3BlY2lhbEZpZWxkcyk6IFZhbGlkYXRvckZuIHtcclxuICAgIGlmIChmaWVsZC50eXBlICE9PSBFQ29udHJvbFR5cGVzLmF1dG9jb21wbGV0ZSkge1xyXG4gICAgICByZXR1cm4gVmFsaWRhdG9ycy5yZXF1aXJlZDtcclxuICAgIH1cclxuICAgIHJldHVybiAoY29udHJvbDogU3BlY2lhbEZvcm1Db250cm9sPElBdXRvY29tcGxldGVGaWVsZD4pID0+XHJcbiAgICAgICEhY29udHJvbC52YWx1ZSAmJiBjb250cm9sLnZhbHVlIGluc3RhbmNlb2YgT2JqZWN0XHJcbiAgICAgICAgPyBudWxsXHJcbiAgICAgICAgOiB7IHJlcXVpcmVkOiB0cnVlIH07XHJcbiAgfVxyXG4gIHByaXZhdGUgc2V0VmFsaWRhdG9yc0FycmF5KFxyXG4gICAgdmFsaWRhdG9yczogVmFsaWRhdG9yRm4gfCBWYWxpZGF0b3JGbltdIHwgbnVsbCxcclxuICAgIG5ld1ZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW11cclxuICApOiBWYWxpZGF0b3JGbltdIHtcclxuICAgIGlmICghdmFsaWRhdG9ycykge1xyXG4gICAgICByZXR1cm4gbmV3VmFsaWRhdG9ycztcclxuICAgIH1cclxuICAgIHJldHVybiB2YWxpZGF0b3JzIGluc3RhbmNlb2YgQXJyYXlcclxuICAgICAgPyBbLi4udmFsaWRhdG9ycywgLi4ubmV3VmFsaWRhdG9yc11cclxuICAgICAgOiBbdmFsaWRhdG9ycywgLi4ubmV3VmFsaWRhdG9yc107XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFycmF5TGVuZ3RoUmVxdWlyZWQoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSB7XHJcbiAgICBpZiAoY29udHJvbC52YWx1ZS5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuIHt9O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHsgbm9JdGVtczogJ05PX1NFTEVDVEVEX0lURU0nIH07XHJcbiAgfVxyXG59XHJcbiJdfQ==
|