kwikid-forms 0.6.43 → 0.6.45
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/bundles/kwikid-forms.umd.js +1020 -835
- package/bundles/kwikid-forms.umd.js.map +1 -1
- package/esm2015/lib/builder/builder-form-editor/builder-form-editor.component.js +22 -32
- package/esm2015/lib/builder/builder-form-editor/builder-form-editor.definitions.js +2 -1
- package/esm2015/lib/builder/builder-form-editor/builder-form-editor.helper.js +2 -4
- package/esm2015/lib/builder/builder-form-editor/builder.form-editor.constants.js +5 -5
- package/esm2015/lib/builder/builder-form-editor/builder.form-editor.service.js +6 -5
- package/esm2015/lib/builder/builder-form-list/builder-forms-list.component.js +4 -6
- package/esm2015/lib/builder/builder.component.js +43 -53
- package/esm2015/lib/builder/builder.helper.js +11 -13
- package/esm2015/lib/renderer/config-converter/config-converter.constants.js +22 -7
- package/esm2015/lib/renderer/config-converter/config-converter.helper.js +9 -10
- package/esm2015/lib/renderer/config-converter/config-converter.js +61 -37
- package/esm2015/lib/renderer/form-view/definitions/form-view.actions.definition.js +1 -1
- package/esm2015/lib/renderer/form-view/definitions/form-view.apis.definition.js +1 -1
- package/esm2015/lib/renderer/form-view/definitions/form-view.commons.definition.js +2 -1
- package/esm2015/lib/renderer/form-view/definitions/form-view.fields.definition.js +2 -1
- package/esm2015/lib/renderer/form-view/definitions/form-view.logs.definition.js +2 -1
- package/esm2015/lib/renderer/form-view/form-view.api.service.js +25 -24
- package/esm2015/lib/renderer/form-view/form-view.component.js +456 -292
- package/esm2015/lib/renderer/form-view/form-view.constants.js +17 -0
- package/esm2015/lib/renderer/form-view/form-view.module.js +15 -3
- package/esm2015/lib/renderer/form-view/form-view.service.js +6 -7
- package/esm2015/lib/renderer/form-view/helpers/form-view.apis.helper.js +44 -58
- package/esm2015/lib/renderer/form-view/helpers/form-view.camera.helper.js +16 -20
- package/esm2015/lib/renderer/form-view/helpers/form-view.defaults.helper.js +36 -97
- package/esm2015/lib/renderer/form-view/helpers/form-view.fields.helper.js +95 -92
- package/esm2015/lib/renderer/form-view/helpers/form-view.form-validations.helper.js +23 -22
- package/esm2015/lib/renderer/form-view/helpers/form-view.tasks.helper.js +5 -5
- package/esm2015/lib/renderer/form-view/pipes/filter-image-url-or-base64-from-object.pipe.js +34 -0
- package/esm2015/lib/renderer/form-view/pipes/filter-video-url-or-base64-from-object.pipe.js +30 -0
- package/esm2015/lib/renderer/forms-list/forms-list.component.js +31 -39
- package/esm2015/lib/renderer/forms-list/forms-list.definitions.js +2 -1
- package/esm2015/lib/renderer/renderer.actions.definitions.js +1 -1
- package/esm2015/lib/renderer/renderer.component.js +87 -113
- package/esm2015/lib/renderer/renderer.definitions.js +2 -1
- package/esm2015/lib/renderer/renderer.helper.js +2 -4
- package/fesm2015/kwikid-forms.js +1063 -922
- package/fesm2015/kwikid-forms.js.map +1 -1
- package/lib/builder/builder-form-editor/builder-form-editor.component.d.ts +4 -5
- package/lib/builder/builder-form-editor/builder.form-editor.service.d.ts +0 -1
- package/lib/builder/builder-form-list/builder-forms-list.component.d.ts +3 -5
- package/lib/renderer/config-converter/config-converter.constants.d.ts +21 -6
- package/lib/renderer/config-converter/config-converter.helper.d.ts +1 -0
- package/lib/renderer/form-view/definitions/form-view.fields.definition.d.ts +45 -25
- package/lib/renderer/form-view/form-view.api.service.d.ts +0 -1
- package/lib/renderer/form-view/form-view.component.d.ts +13 -13
- package/lib/renderer/form-view/form-view.constants.d.ts +16 -0
- package/lib/renderer/form-view/form-view.module.d.ts +10 -8
- package/lib/renderer/form-view/form-view.service.d.ts +1 -2
- package/lib/renderer/form-view/helpers/form-view.camera.helper.d.ts +5 -7
- package/lib/renderer/form-view/helpers/form-view.defaults.helper.d.ts +4 -6
- package/lib/renderer/form-view/helpers/form-view.fields.helper.d.ts +1 -1
- package/lib/renderer/form-view/helpers/form-view.form-validations.helper.d.ts +1 -2
- package/lib/renderer/form-view/helpers/form-view.tasks.helper.d.ts +1 -1
- package/lib/renderer/form-view/pipes/filter-image-url-or-base64-from-object.pipe.d.ts +7 -0
- package/lib/renderer/form-view/pipes/filter-video-url-or-base64-from-object.pipe.d.ts +7 -0
- package/lib/renderer/forms-list/forms-list.component.d.ts +1 -2
- package/package.json +1 -1
|
@@ -1,17 +1,11 @@
|
|
|
1
1
|
import { TuiDay, TuiTime } from "@taiga-ui/cdk";
|
|
2
|
-
import { checkObjectKeyExists,
|
|
2
|
+
import { checkObjectKeyExists, isEmptyValue, isNotEmptyValue, isObject, setMissingKeyValue } from "kwikid-toolkit";
|
|
3
3
|
import { EFieldType } from "../definitions/form-view.fields.definition";
|
|
4
4
|
export const getFormFieldByKey = (fields, key) => {
|
|
5
|
-
|
|
6
|
-
if (field.key === key) {
|
|
7
|
-
return field;
|
|
8
|
-
}
|
|
9
|
-
});
|
|
10
|
-
return field;
|
|
5
|
+
return fields.find((field) => field.key === key);
|
|
11
6
|
};
|
|
12
7
|
export const getFormFieldIndexByKey = (fields, key) => {
|
|
13
|
-
|
|
14
|
-
fieldIndex = fields.findIndex((_) => {
|
|
8
|
+
const fieldIndex = fields.findIndex((_) => {
|
|
15
9
|
return key === _.key;
|
|
16
10
|
});
|
|
17
11
|
return fieldIndex;
|
|
@@ -37,17 +31,17 @@ export const appendFormFieldMessage = (field, message) => {
|
|
|
37
31
|
fieldMessage.message === message.message);
|
|
38
32
|
});
|
|
39
33
|
};
|
|
40
|
-
field
|
|
34
|
+
field.messages = [];
|
|
41
35
|
if (checkObjectKeyExists(field, "messages")) {
|
|
42
|
-
if (!hasDuplicateMessage(field
|
|
43
|
-
field
|
|
36
|
+
if (!hasDuplicateMessage(field.messages, message)) {
|
|
37
|
+
field.messages.push({
|
|
44
38
|
type: message.type,
|
|
45
39
|
message: message.message
|
|
46
40
|
});
|
|
47
41
|
}
|
|
48
42
|
}
|
|
49
43
|
else {
|
|
50
|
-
field
|
|
44
|
+
field.messages = [{ type: message.type, message: message.message }];
|
|
51
45
|
}
|
|
52
46
|
return field;
|
|
53
47
|
};
|
|
@@ -74,21 +68,21 @@ export const filterDuplicatesFiles = (array) => {
|
|
|
74
68
|
};
|
|
75
69
|
export const removeFormFieldMessage = (field, message) => {
|
|
76
70
|
if (isNotEmptyValue(field === null || field === void 0 ? void 0 : field.messages)) {
|
|
77
|
-
field
|
|
71
|
+
field.messages = field.messages.filter((fieldMessage) => {
|
|
78
72
|
return fieldMessage.type !== message.type;
|
|
79
73
|
});
|
|
80
74
|
}
|
|
81
75
|
else {
|
|
82
|
-
field
|
|
76
|
+
field.messages = [];
|
|
83
77
|
}
|
|
84
78
|
return field;
|
|
85
79
|
};
|
|
86
80
|
export const setApiTimerMessage = (field, timer = {}) => {
|
|
87
81
|
if (checkObjectKeyExists(field, "api")) {
|
|
88
|
-
field
|
|
82
|
+
field.api.timer = timer;
|
|
89
83
|
}
|
|
90
84
|
else {
|
|
91
|
-
setMissingKeyValue(field, "api", { timer
|
|
85
|
+
setMissingKeyValue(field, "api", { timer });
|
|
92
86
|
}
|
|
93
87
|
return field;
|
|
94
88
|
};
|
|
@@ -145,7 +139,7 @@ export function showFormFieldError(fields, errors, key, error) {
|
|
|
145
139
|
fields[fieldIndex] = setErrorMessages(fields[fieldIndex], errors);
|
|
146
140
|
}
|
|
147
141
|
else {
|
|
148
|
-
fields[fieldIndex]
|
|
142
|
+
fields[fieldIndex].messages = [];
|
|
149
143
|
}
|
|
150
144
|
fields[fieldIndex] = highlightFormFieldError(fields[fieldIndex], error);
|
|
151
145
|
return fields;
|
|
@@ -160,37 +154,35 @@ export const convertFormFieldTypeDateToKwikUIFormat = (date) => {
|
|
|
160
154
|
};
|
|
161
155
|
export const convertFormFieldTypeTimeToKwikUIFormat = (time) => {
|
|
162
156
|
const timeParts = time.split(/[.:]/);
|
|
163
|
-
let hours = 0
|
|
157
|
+
let hours = 0;
|
|
158
|
+
let minutes = 0;
|
|
159
|
+
let seconds = 0;
|
|
160
|
+
let milliseconds = 0;
|
|
164
161
|
if (timeParts.length >= 2) {
|
|
165
|
-
hours = parseInt(timeParts[0]);
|
|
166
|
-
minutes = parseInt(timeParts[1]);
|
|
162
|
+
hours = parseInt(timeParts[0], 10);
|
|
163
|
+
minutes = parseInt(timeParts[1], 10);
|
|
167
164
|
if (timeParts.length >= 3) {
|
|
168
|
-
seconds = parseInt(timeParts[2]);
|
|
165
|
+
seconds = parseInt(timeParts[2], 10);
|
|
169
166
|
if (timeParts.length === 4) {
|
|
170
|
-
milliseconds = parseInt(timeParts[3]);
|
|
167
|
+
milliseconds = parseInt(timeParts[3], 10);
|
|
171
168
|
}
|
|
172
169
|
}
|
|
173
170
|
}
|
|
174
|
-
|
|
171
|
+
const tuiTime = new TuiTime(hours, minutes, seconds, milliseconds);
|
|
175
172
|
return tuiTime;
|
|
176
173
|
};
|
|
177
174
|
export const convertFormFieldTypeDateToStandardFormat = (date) => {
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
let month = date.month;
|
|
181
|
-
let day = date.day;
|
|
182
|
-
formattedDate = `${day.toString().padStart(2, "0")}-${(month + 1)
|
|
175
|
+
const { day, month, year } = date;
|
|
176
|
+
const formattedDate = `${day.toString().padStart(2, "0")}-${(month + 1)
|
|
183
177
|
.toString()
|
|
184
178
|
.padStart(2, "0")}-${year}`;
|
|
185
179
|
return formattedDate;
|
|
186
180
|
};
|
|
187
181
|
export const convertFormFieldTypeTimeToStandardFormat = (time) => {
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
let milliseconds = time.ms;
|
|
193
|
-
formattedDate = `${hour.toString().padStart(2, "0")}:${minutes
|
|
182
|
+
const hour = time.hours;
|
|
183
|
+
const { seconds, minutes } = time;
|
|
184
|
+
const milliseconds = time.ms;
|
|
185
|
+
const formattedDate = `${hour.toString().padStart(2, "0")}:${minutes
|
|
194
186
|
.toString()
|
|
195
187
|
.padStart(2, "0")}${seconds > 0 ? `:${seconds.toString().padStart(2, "0")}` : ""}${seconds > 0 && milliseconds > 0
|
|
196
188
|
? `:${milliseconds.toString().padStart(2, "0")}`
|
|
@@ -216,23 +208,23 @@ export const convertFormFieldValueToStandardFormat = (field, value) => {
|
|
|
216
208
|
break;
|
|
217
209
|
case EFieldType.SELECT:
|
|
218
210
|
if (Array.isArray(field.options)) {
|
|
219
|
-
field.options.find((item) => {
|
|
220
|
-
|
|
221
|
-
if (item.title == value) {
|
|
222
|
-
convertedValue = item.value;
|
|
223
|
-
}
|
|
224
|
-
}
|
|
211
|
+
const foundItem = field.options.find((item) => {
|
|
212
|
+
return isObject(item) && item.title === value;
|
|
225
213
|
});
|
|
214
|
+
if (foundItem) {
|
|
215
|
+
convertedValue = foundItem.value;
|
|
216
|
+
}
|
|
226
217
|
}
|
|
227
218
|
break;
|
|
228
|
-
case EFieldType.PHONE:
|
|
229
|
-
|
|
219
|
+
case EFieldType.PHONE: {
|
|
220
|
+
const phoneField = field;
|
|
230
221
|
if (phoneField.properties.removeCountryCodeFromValue) {
|
|
231
222
|
convertedValue = value
|
|
232
223
|
.toString()
|
|
233
224
|
.replace(phoneField.properties.countryCode, "");
|
|
234
225
|
}
|
|
235
226
|
break;
|
|
227
|
+
}
|
|
236
228
|
case EFieldType.CAPTURE:
|
|
237
229
|
if (Array.isArray(value) && isNotEmptyValue(value[0])) {
|
|
238
230
|
convertedValue = value[0];
|
|
@@ -260,6 +252,40 @@ export const convertFormFieldValueToStandardFormat = (field, value) => {
|
|
|
260
252
|
}
|
|
261
253
|
return convertedValue;
|
|
262
254
|
};
|
|
255
|
+
export const convertFormFieldEmptyValueToKwikUIFormat = (field) => {
|
|
256
|
+
const fieldType = field.type;
|
|
257
|
+
let value;
|
|
258
|
+
switch (fieldType) {
|
|
259
|
+
case EFieldType.CHECKBOX:
|
|
260
|
+
value = false;
|
|
261
|
+
break;
|
|
262
|
+
case EFieldType.NUMBER:
|
|
263
|
+
value = null;
|
|
264
|
+
break;
|
|
265
|
+
case EFieldType.DATE:
|
|
266
|
+
value = null;
|
|
267
|
+
break;
|
|
268
|
+
case EFieldType.FILE:
|
|
269
|
+
value = [];
|
|
270
|
+
break;
|
|
271
|
+
case EFieldType.CAPTURE:
|
|
272
|
+
value = [];
|
|
273
|
+
break;
|
|
274
|
+
case EFieldType.RECORD:
|
|
275
|
+
value = [];
|
|
276
|
+
break;
|
|
277
|
+
case EFieldType.SELECT:
|
|
278
|
+
value = null;
|
|
279
|
+
break;
|
|
280
|
+
case EFieldType.DROPDOWN_WITH_SEARCH:
|
|
281
|
+
value = null;
|
|
282
|
+
break;
|
|
283
|
+
default:
|
|
284
|
+
value = "";
|
|
285
|
+
break;
|
|
286
|
+
}
|
|
287
|
+
return value;
|
|
288
|
+
};
|
|
263
289
|
export const convertFormFieldValueToKwikUIFormat = (field, value) => {
|
|
264
290
|
let convertedValue = value;
|
|
265
291
|
if (isNotEmptyValue(value)) {
|
|
@@ -275,13 +301,12 @@ export const convertFormFieldValueToKwikUIFormat = (field, value) => {
|
|
|
275
301
|
break;
|
|
276
302
|
case EFieldType.SELECT:
|
|
277
303
|
if (Array.isArray(field.options)) {
|
|
278
|
-
field.options.find((item) => {
|
|
279
|
-
|
|
280
|
-
if (item.value == value) {
|
|
281
|
-
convertedValue = item.title;
|
|
282
|
-
}
|
|
283
|
-
}
|
|
304
|
+
const foundItem = field.options.find((item) => {
|
|
305
|
+
return isObject(item) && item.value === value;
|
|
284
306
|
});
|
|
307
|
+
if (foundItem) {
|
|
308
|
+
convertedValue = foundItem.title;
|
|
309
|
+
}
|
|
285
310
|
}
|
|
286
311
|
break;
|
|
287
312
|
case EFieldType.DATE:
|
|
@@ -294,25 +319,37 @@ export const convertFormFieldValueToKwikUIFormat = (field, value) => {
|
|
|
294
319
|
convertedValue = value;
|
|
295
320
|
break;
|
|
296
321
|
case EFieldType.CAPTURE:
|
|
297
|
-
if (
|
|
322
|
+
if (Array.isArray(value)) {
|
|
323
|
+
convertedValue = value.filter((item) => {
|
|
324
|
+
return (typeof item === "string" ||
|
|
325
|
+
(isObject(item) && checkObjectKeyExists(item, "image")));
|
|
326
|
+
});
|
|
327
|
+
}
|
|
328
|
+
else if (typeof value === "string") {
|
|
298
329
|
convertedValue = [value];
|
|
299
330
|
}
|
|
300
|
-
else if (
|
|
301
|
-
convertedValue = [];
|
|
331
|
+
else if (isObject(value) && checkObjectKeyExists(value, "image")) {
|
|
332
|
+
convertedValue = [value];
|
|
302
333
|
}
|
|
303
334
|
else {
|
|
304
|
-
convertedValue =
|
|
335
|
+
convertedValue = [];
|
|
305
336
|
}
|
|
306
337
|
break;
|
|
307
338
|
case EFieldType.RECORD:
|
|
308
|
-
if (
|
|
339
|
+
if (Array.isArray(value)) {
|
|
340
|
+
convertedValue = value.filter((item) => {
|
|
341
|
+
return (typeof item === "string" ||
|
|
342
|
+
(isObject(item) && checkObjectKeyExists(item, "video")));
|
|
343
|
+
});
|
|
344
|
+
}
|
|
345
|
+
else if (typeof value === "string") {
|
|
309
346
|
convertedValue = [value];
|
|
310
347
|
}
|
|
311
|
-
else if (
|
|
312
|
-
convertedValue = [];
|
|
348
|
+
else if (isObject(value) && checkObjectKeyExists(value, "video")) {
|
|
349
|
+
convertedValue = [value];
|
|
313
350
|
}
|
|
314
351
|
else {
|
|
315
|
-
convertedValue =
|
|
352
|
+
convertedValue = [];
|
|
316
353
|
}
|
|
317
354
|
break;
|
|
318
355
|
default:
|
|
@@ -324,38 +361,4 @@ export const convertFormFieldValueToKwikUIFormat = (field, value) => {
|
|
|
324
361
|
}
|
|
325
362
|
return convertedValue;
|
|
326
363
|
};
|
|
327
|
-
export const convertFormFieldEmptyValueToKwikUIFormat = (field) => {
|
|
328
|
-
const fieldType = field.type;
|
|
329
|
-
let value;
|
|
330
|
-
switch (fieldType) {
|
|
331
|
-
case EFieldType.CHECKBOX:
|
|
332
|
-
value = false;
|
|
333
|
-
break;
|
|
334
|
-
case EFieldType.NUMBER:
|
|
335
|
-
value = null;
|
|
336
|
-
break;
|
|
337
|
-
case EFieldType.DATE:
|
|
338
|
-
value = null;
|
|
339
|
-
break;
|
|
340
|
-
case EFieldType.FILE:
|
|
341
|
-
value = [];
|
|
342
|
-
break;
|
|
343
|
-
case EFieldType.CAPTURE:
|
|
344
|
-
value = [];
|
|
345
|
-
break;
|
|
346
|
-
case EFieldType.RECORD:
|
|
347
|
-
value = [];
|
|
348
|
-
break;
|
|
349
|
-
case EFieldType.SELECT:
|
|
350
|
-
value = null;
|
|
351
|
-
break;
|
|
352
|
-
case EFieldType.DROPDOWN_WITH_SEARCH:
|
|
353
|
-
value = null;
|
|
354
|
-
break;
|
|
355
|
-
default:
|
|
356
|
-
value = "";
|
|
357
|
-
break;
|
|
358
|
-
}
|
|
359
|
-
return value;
|
|
360
|
-
};
|
|
361
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12aWV3LmZpZWxkcy5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtZm9ybXMvc3JjL2xpYi9yZW5kZXJlci9mb3JtLXZpZXcvaGVscGVycy9mb3JtLXZpZXcuZmllbGRzLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRCxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLGVBQWUsRUFDZixZQUFZLEVBQ1osUUFBUSxFQUNSLGtCQUFrQixFQUNuQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFDTCxVQUFVLEVBSVgsTUFBTSw0Q0FBNEMsQ0FBQztBQUVwRCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLE1BQWEsRUFBRSxHQUFXLEVBQUUsRUFBRTtJQUM5RCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7UUFDbEMsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLEdBQUcsRUFBRTtZQUNyQixPQUFPLEtBQUssQ0FBQztTQUNkO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLENBQUMsTUFBYSxFQUFFLEdBQVcsRUFBRSxFQUFFO0lBQ25FLElBQUksVUFBa0IsQ0FBQztJQUV2QixVQUFVLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFO1FBQ3ZDLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDdkIsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLFVBQVUsQ0FBQztBQUNwQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx1QkFBdUIs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S0FBSyxHQUFHLEtBQUssQ0FBQztZQUNkLE1BQU07UUFDUixLQUFLLFVBQVUsQ0FBQyxNQUFNO1lBQ3BCLEtBQUssR0FBRyxJQUFJLENBQUM7WUFDYixNQUFNO1FBQ1IsS0FBSyxVQUFVLENBQUMsSUFBSTtZQUNsQixLQUFLLEdBQUcsSUFBSSxDQUFDO1lBQ2IsTUFBTTtRQUNSLEtBQUssVUFBVSxDQUFDLElBQUk7WUFDbEIsS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUNYLE1BQU07UUFDUixLQUFLLFVBQVUsQ0FBQyxPQUFPO1lBQ3JCLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDWCxNQUFNO1FBQ1IsS0FBSyxVQUFVLENBQUMsTUFBTTtZQUNwQixLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQ1gsTUFBTTtRQUNSLEtBQUssVUFBVSxDQUFDLE1BQU07WUFDcEIsS0FBSyxHQUFHLElBQUksQ0FBQztZQUNiLE1BQU07UUFDUixLQUFLLFVBQVUsQ0FBQyxvQkFBb0I7WUFDbEMsS0FBSyxHQUFHLElBQUksQ0FBQztZQUNiLE1BQU07UUFDUjtZQUNFLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDWCxNQUFNO0tBQ1Q7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR1aURheSwgVHVpVGltZSB9IGZyb20gXCJAdGFpZ2EtdWkvY2RrXCI7XG5pbXBvcnQge1xuICBjaGVja09iamVjdEtleUV4aXN0cyxcbiAgaXNOb3RFbXB0eVZhbHVlLFxuICBpc0VtcHR5VmFsdWUsXG4gIGlzT2JqZWN0LFxuICBzZXRNaXNzaW5nS2V5VmFsdWVcbn0gZnJvbSBcImt3aWtpZC10b29sa2l0XCI7XG5pbXBvcnQge1xuICBFRmllbGRUeXBlLFxuICBURmllbGQsXG4gIFRGaWVsZFBob25lLFxuICBURmllbGRUeXBlXG59IGZyb20gXCIuLi9kZWZpbml0aW9ucy9mb3JtLXZpZXcuZmllbGRzLmRlZmluaXRpb25cIjtcblxuZXhwb3J0IGNvbnN0IGdldEZvcm1GaWVsZEJ5S2V5ID0gKGZpZWxkczogYW55W10sIGtleTogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IGZpZWxkID0gZmllbGRzLmZpbmQoKGZpZWxkKSA9PiB7XG4gICAgaWYgKGZpZWxkLmtleSA9PT0ga2V5KSB7XG4gICAgICByZXR1cm4gZmllbGQ7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gZmllbGQ7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Rm9ybUZpZWxkSW5kZXhCeUtleSA9IChmaWVsZHM6IGFueVtdLCBrZXk6IHN0cmluZykgPT4ge1xuICBsZXQgZmllbGRJbmRleDogbnVtYmVyO1xuXG4gIGZpZWxkSW5kZXggPSBmaWVsZHMuZmluZEluZGV4KChfOiBhbnkpID0+IHtcbiAgICByZXR1cm4ga2V5ID09PSBfLmtleTtcbiAgfSk7XG5cbiAgcmV0dXJuIGZpZWxkSW5kZXg7XG59O1xuXG5leHBvcnQgY29uc3QgaGlnaGxpZ2h0Rm9ybUZpZWxkRXJyb3IgPSAoZmllbGQ6IGFueSwgZXJyb3I6IGFueSk6IGFueSA9PiB7XG4gIGZpZWxkLmludmFsaWQgPSBlcnJvcjtcbiAgZmllbGQuZm9jdXMgPSBlcnJvcjtcblxuICByZXR1cm4gZmllbGQ7XG59O1xuXG5leHBvcnQgY29uc3QgYXBwZW5kSHRtbE1lc3NhZ2UgPSAoXG4gIGZpZWxkOiBhbnksXG4gIG1lc3NhZ2U6IHsgbWVzc2FnZTogc3RyaW5nIH1cbik6IGFueSA9PiB7XG4gIGlmIChjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJodG1sXCIpKSB7XG4gICAgaWYgKGlzTm90RW1wdHlWYWx1ZShmaWVsZC5odG1sKSkge1xuICAgICAgY29uc3QgaHRtbCA9IGZpZWxkLmh0bWwucmVwbGFjZShcInt7bWVzc2FnZX19XCIsIG1lc3NhZ2UubWVzc2FnZSk7XG4gICAgICBmaWVsZC5odG1sID0gaHRtbDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZmllbGQ7XG59O1xuXG5leHBvcnQgY29uc3QgYXBwZW5kRm9ybUZpZWxkTWVzc2FnZSA9IChcbiAgZmllbGQ6IGFueSxcbiAgbWVzc2FnZTogeyB0eXBlOiBzdHJpbmc7IG1lc3NhZ2U6IHN0cmluZyB9XG4pOiBhbnkgPT4ge1xuICBjb25zdCBoYXNEdXBsaWNhdGVNZXNzYWdlID0gKFxuICAgIG1lc3NhZ2VzOiB7IHR5cGU6IHN0cmluZzsgbWVzc2FnZTogc3RyaW5nIH1bXSxcbiAgICBtZXNzYWdlOiB7IHR5cGU6IHN0cmluZzsgbWVzc2FnZTogc3RyaW5nIH1cbiAgKSA9PiB7XG4gICAgcmV0dXJuIG1lc3NhZ2VzLnNvbWUoKGZpZWxkTWVzc2FnZTogeyB0eXBlOiBzdHJpbmc7IG1lc3NhZ2U6IHN0cmluZyB9KSA9PiB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICBmaWVsZE1lc3NhZ2UudHlwZSA9PT0gbWVzc2FnZS50eXBlICYmXG4gICAgICAgIGZpZWxkTWVzc2FnZS5tZXNzYWdlID09PSBtZXNzYWdlLm1lc3NhZ2VcbiAgICAgICk7XG4gICAgfSk7XG4gIH07XG5cbiAgZmllbGRbXCJtZXNzYWdlc1wiXSA9IFtdO1xuXG4gIGlmIChjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJtZXNzYWdlc1wiKSkge1xuICAgIGlmICghaGFzRHVwbGljYXRlTWVzc2FnZShmaWVsZFtcIm1lc3NhZ2VzXCJdLCBtZXNzYWdlKSkge1xuICAgICAgZmllbGRbXCJtZXNzYWdlc1wiXS5wdXNoKHtcbiAgICAgICAgdHlwZTogbWVzc2FnZS50eXBlLFxuICAgICAgICBtZXNzYWdlOiBtZXNzYWdlLm1lc3NhZ2VcbiAgICAgIH0pO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBmaWVsZFtcIm1lc3NhZ2VzXCJdID0gW3sgdHlwZTogbWVzc2FnZS50eXBlLCBtZXNzYWdlOiBtZXNzYWdlLm1lc3NhZ2UgfV07XG4gIH1cblxuICByZXR1cm4gZmllbGQ7XG59O1xuXG5leHBvcnQgY29uc3QgZmlsdGVyRHVwbGljYXRlc01lZGlhRmlsZXMgPSAoYXJyYXk6IHN0cmluZ1tdKTogc3RyaW5nW10gPT4ge1xuICBjb25zdCB1bmlxdWVGaWxlcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gIHJldHVybiBhcnJheS5maWx0ZXIoKG1lZGlhRmlsZSkgPT4ge1xuICAgIGlmICghdW5pcXVlRmlsZXMuaGFzKG1lZGlhRmlsZSkpIHtcbiAgICAgIHVuaXF1ZUZpbGVzLmFkZChtZWRpYUZpbGUpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZmlsdGVyRHVwbGljYXRlc0ZpbGVzID0gKGFycmF5OiBhbnlbXSk6IGFueVtdID0+IHtcbiAgY29uc3QgdW5pcXVlRmlsZXMgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgcmV0dXJuIGFycmF5LmZpbHRlcigoZmlsZSkgPT4ge1xuICAgIGNvbnN0IGZpbGVLZXkgPSBgJHtmaWxlLm5hbWV9LSR7ZmlsZS5zaXplfWA7XG4gICAgaWYgKCF1bmlxdWVGaWxlcy5oYXMoZmlsZUtleSkpIHtcbiAgICAgIHVuaXF1ZUZpbGVzLmFkZChmaWxlS2V5KTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IHJlbW92ZUZvcm1GaWVsZE1lc3NhZ2UgPSAoXG4gIGZpZWxkOiBhbnksXG4gIG1lc3NhZ2U6IHsgdHlwZTogc3RyaW5nOyBtZXNzYWdlOiBzdHJpbmcgfVxuKTogYW55ID0+IHtcbiAgaWYgKGlzTm90RW1wdHlWYWx1ZShmaWVsZD8ubWVzc2FnZXMpKSB7XG4gICAgZmllbGRbXCJtZXNzYWdlc1wiXSA9IGZpZWxkW1wibWVzc2FnZXNcIl0uZmlsdGVyKGZ1bmN0aW9uIChmaWVsZE1lc3NhZ2UpIHtcbiAgICAgIHJldHVybiBmaWVsZE1lc3NhZ2UudHlwZSAhPT0gbWVzc2FnZS50eXBlO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIGZpZWxkW1wibWVzc2FnZXNcIl0gPSBbXTtcbiAgfVxuXG4gIHJldHVybiBmaWVsZDtcbn07XG5cbmV4cG9ydCBjb25zdCBzZXRBcGlUaW1lck1lc3NhZ2UgPSAoZmllbGQsIHRpbWVyID0ge30pID0+IHtcbiAgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcImFwaVwiKSkge1xuICAgIGZpZWxkW1wiYXBpXCJdW1widGltZXJcIl0gPSB0aW1lcjtcbiAgfSBlbHNlIHtcbiAgICBzZXRNaXNzaW5nS2V5VmFsdWUoZmllbGQsIFwiYXBpXCIsIHsgdGltZXI6IHRpbWVyIH0pO1xuICB9XG4gIHJldHVybiBmaWVsZDtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBzaG93Rm9ybUZpZWxkRXJyb3IoXG4gIGZpZWxkczogYW55LFxuICBlcnJvcnM6IGFueSxcbiAga2V5OiBzdHJpbmcsXG4gIGVycm9yOiBib29sZWFuXG4pIHtcbiAgY29uc3QgZmllbGRJbmRleCA9IGZpZWxkcy5maW5kSW5kZXgoKGZpZWxkOiBhbnkpID0+IHtcbiAgICByZXR1cm4gZmllbGQua2V5ID09PSBrZXk7XG4gIH0pO1xuXG4gIGNvbnN0IHNldEVycm9yTWVzc2FnZXMgPSAoZmllbGQ6IGFueSwgZXJyb3JzOiBhbnkpID0+IHtcbiAgICBjb25zdCBnZXRFcnJvck1lc3NhZ2UgPSAoZmllbGRMYWJlbDogc3RyaW5nLCBlcnJvclR5cGU6IHN0cmluZykgPT4ge1xuICAgICAgbGV0IGVycm9yTWVzc2FnZTogc3RyaW5nID0gXCJcIjtcblxuICAgICAgc3dpdGNoIChlcnJvclR5cGUpIHtcbiAgICAgICAgY2FzZSBcInJlcXVpcmVkXCI6XG4gICAgICAgICAgZXJyb3JNZXNzYWdlID0gYCR7ZmllbGRMYWJlbH0gaXMgcmVxdWlyZWQhYDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcImVtYWlsXCI6XG4gICAgICAgICAgZXJyb3JNZXNzYWdlID0gYCR7ZmllbGRMYWJlbH0gaGFzIHdyb25nIGVtYWlsIGZvcm1hdCFgO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwibWluXCI6XG4gICAgICAgICAgZXJyb3JNZXNzYWdlID0gYCR7ZmllbGRMYWJlbH0gaGFzIHdyb25nIHZhbHVlISBNaW5pbXVtIHZhbHVlOiAke2ZpZWxkLnZhbGlkYXRvcnMubWlufWA7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJtaW5sZW5ndGhcIjpcbiAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBgJHtmaWVsZExhYmVsfSBoYXMgd3JvbmcgbGVuZ3RoISBSZXF1aXJlZCBtaW5pbXVtIGxlbmd0aDogJHtmaWVsZC52YWxpZGF0b3JzLm1pbkxlbmd0aH1gO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwibWF4XCI6XG4gICAgICAgICAgZXJyb3JNZXNzYWdlID0gYCR7ZmllbGRMYWJlbH0gaGFzIHdyb25nIHZhbHVlISBNYXhpbXVtIHZhbHVlOiAke2ZpZWxkLnZhbGlkYXRvcnMubWF4TGVuZ3RofWA7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJtYXhsZW5ndGhcIjpcbiAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBgJHtmaWVsZExhYmVsfSBoYXMgd3JvbmcgbGVuZ3RoISBSZXF1aXJlZCBtYXhpbXVtIGxlbmd0aDogJHtmaWVsZC52YWxpZGF0b3JzLm1heExlbmd0aH1gO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwiYXJlRXF1YWxcIjpcbiAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBgJHtmaWVsZExhYmVsfSBtdXN0IGJlIGVxdWFsIWA7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJwYXR0ZXJuXCI6XG4gICAgICAgICAgZXJyb3JNZXNzYWdlID0gYCR7ZmllbGRMYWJlbH0gaXMgaW4gaW5jb3JyZWN0IGZvcm1hdCFgO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwib25seVdoaXRlc3BhY2VzXCI6XG4gICAgICAgICAgZXJyb3JNZXNzYWdlID0gYCR7ZmllbGRMYWJlbH0gY2FuJ3QgY29udGFpbiBvbmx5IGVtcHR5IHNwYWNlcyFgO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGVycm9yTWVzc2FnZSA9IGAke2ZpZWxkTGFiZWx9OiAke2Vycm9yVHlwZX1gO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZXJyb3JNZXNzYWdlO1xuICAgIH07XG5cbiAgICBPYmplY3Qua2V5cyhlcnJvcnMpLmZvckVhY2goKGVycm9yKSA9PiB7XG4gICAgICBmaWVsZCA9IGFwcGVuZEZvcm1GaWVsZE1lc3NhZ2UoZmllbGQsIHtcbiAgICAgICAgdHlwZTogXCJlcnJvclwiLFxuICAgICAgICBtZXNzYWdlOiBnZXRFcnJvck1lc3NhZ2UoZmllbGQubGFiZWwsIGVycm9yKVxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZmllbGQ7XG4gIH07XG5cbiAgaWYgKGVycm9yKSB7XG4gICAgZmllbGRzW2ZpZWxkSW5kZXhdID0gc2V0RXJyb3JNZXNzYWdlcyhmaWVsZHNbZmllbGRJbmRleF0sIGVycm9ycyk7XG4gIH0gZWxzZSB7XG4gICAgZmllbGRzW2ZpZWxkSW5kZXhdW1wibWVzc2FnZXNcIl0gPSBbXTtcbiAgfVxuXG4gIGZpZWxkc1tmaWVsZEluZGV4XSA9IGhpZ2hsaWdodEZvcm1GaWVsZEVycm9yKGZpZWxkc1tmaWVsZEluZGV4XSwgZXJyb3IpO1xuXG4gIHJldHVybiBmaWVsZHM7XG59XG5cbmV4cG9ydCBjb25zdCBjb252ZXJ0Rm9ybUZpZWxkVHlwZURhdGVUb0t3aWtVSUZvcm1hdCA9IChcbiAgZGF0ZTogc3RyaW5nXG4pOiBUdWlEYXkgPT4ge1xuICBjb25zdCBzcGxpdERhdGUgPSBkYXRlLnNwbGl0KFwiLVwiKTtcbiAgY29uc3QgdHVpRGF5ID0gbmV3IFR1aURheShcbiAgICBOdW1iZXIoc3BsaXREYXRlWzJdKSwgLy8gWWVhclxuICAgIE51bWJlcihzcGxpdERhdGVbMV0pIC0gMSwgLy8gTW9udGgsIFdoeSAnLTEnID0+IEJlY2F1c2UgVGFpZ2EtVUkgUmVxdWlyZWQgSXQsIFNvLi4uXG4gICAgTnVtYmVyKHNwbGl0RGF0ZVswXSkgLy8gRGF5XG4gICk7XG5cbiAgcmV0dXJuIHR1aURheTtcbn07XG5cbmV4cG9ydCBjb25zdCBjb252ZXJ0Rm9ybUZpZWxkVHlwZVRpbWVUb0t3aWtVSUZvcm1hdCA9IChcbiAgdGltZTogc3RyaW5nXG4pOiBUdWlUaW1lID0+IHtcbiAgY29uc3QgdGltZVBhcnRzID0gdGltZS5zcGxpdCgvWy46XS8pO1xuICBsZXQgaG91cnMgPSAwLFxuICAgIG1pbnV0ZXMgPSAwLFxuICAgIHNlY29uZHMgPSAwLFxuICAgIG1pbGxpc2Vjb25kcyA9IDA7XG5cbiAgaWYgKHRpbWVQYXJ0cy5sZW5ndGggPj0gMikge1xuICAgIGhvdXJzID0gcGFyc2VJbnQodGltZVBhcnRzWzBdKTtcbiAgICBtaW51dGVzID0gcGFyc2VJbnQodGltZVBhcnRzWzFdKTtcblxuICAgIGlmICh0aW1lUGFydHMubGVuZ3RoID49IDMpIHtcbiAgICAgIHNlY29uZHMgPSBwYXJzZUludCh0aW1lUGFydHNbMl0pO1xuICAgICAgaWYgKHRpbWVQYXJ0cy5sZW5ndGggPT09IDQpIHtcbiAgICAgICAgbWlsbGlzZWNvbmRzID0gcGFyc2VJbnQodGltZVBhcnRzWzNdKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBsZXQgdHVpVGltZSA9IG5ldyBUdWlUaW1lKGhvdXJzLCBtaW51dGVzLCBzZWNvbmRzLCBtaWxsaXNlY29uZHMpO1xuICByZXR1cm4gdHVpVGltZTtcbn07XG5cbmV4cG9ydCBjb25zdCBjb252ZXJ0Rm9ybUZpZWxkVHlwZURhdGVUb1N0YW5kYXJkRm9ybWF0ID0gKFxuICBkYXRlOiBUdWlEYXlcbik6IHN0cmluZyA9PiB7XG4gIGxldCBmb3JtYXR0ZWREYXRlOiBzdHJpbmc7XG4gIGxldCB5ZWFyID0gZGF0ZS55ZWFyO1xuICBsZXQgbW9udGggPSBkYXRlLm1vbnRoO1xuICBsZXQgZGF5ID0gZGF0ZS5kYXk7XG5cbiAgZm9ybWF0dGVkRGF0ZSA9IGAke2RheS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIFwiMFwiKX0tJHsobW9udGggKyAxKVxuICAgIC50b1N0cmluZygpXG4gICAgLnBhZFN0YXJ0KDIsIFwiMFwiKX0tJHt5ZWFyfWA7XG5cbiAgcmV0dXJuIGZvcm1hdHRlZERhdGU7XG59O1xuXG5leHBvcnQgY29uc3QgY29udmVydEZvcm1GaWVsZFR5cGVUaW1lVG9TdGFuZGFyZEZvcm1hdCA9IChcbiAgdGltZTogVHVpVGltZVxuKTogc3RyaW5nID0+IHtcbiAgbGV0IGZvcm1hdHRlZERhdGU6IHN0cmluZztcbiAgbGV0IGhvdXIgPSB0aW1lLmhvdXJzO1xuICBsZXQgbWludXRlcyA9IHRpbWUubWludXRlcztcbiAgbGV0IHNlY29uZHMgPSB0aW1lLnNlY29uZHM7XG4gIGxldCBtaWxsaXNlY29uZHMgPSB0aW1lLm1zO1xuXG4gIGZvcm1hdHRlZERhdGUgPSBgJHtob3VyLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgXCIwXCIpfToke21pbnV0ZXNcbiAgICAudG9TdHJpbmcoKVxuICAgIC5wYWRTdGFydCgyLCBcIjBcIil9JHtcbiAgICBzZWNvbmRzID4gMCA/IGA6JHtzZWNvbmRzLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgXCIwXCIpfWAgOiBcIlwiXG4gIH0ke1xuICAgIHNlY29uZHMgPiAwICYmIG1pbGxpc2Vjb25kcyA+IDBcbiAgICAgID8gYDoke21pbGxpc2Vjb25kcy50b1N0cmluZygpLnBhZFN0YXJ0KDIsIFwiMFwiKX1gXG4gICAgICA6IFwiXCJcbiAgfWA7XG5cbiAgcmV0dXJuIGZvcm1hdHRlZERhdGU7XG59O1xuXG5leHBvcnQgY29uc3QgY29udmVydEZvcm1GaWVsZFZhbHVlVG9TdGFuZGFyZEZvcm1hdCA9IChcbiAgZmllbGQ6IFRGaWVsZCxcbiAgdmFsdWU6IGFueVxuKSA9PiB7XG4gIGxldCBjb252ZXJ0ZWRWYWx1ZTogYW55ID0gdmFsdWU7XG5cbiAgaWYgKGlzTm90RW1wdHlWYWx1ZSh2YWx1ZSkpIHtcbiAgICBzd2l0Y2ggKGZpZWxkLnR5cGUpIHtcbiAgICAgIGNhc2UgRUZpZWxkVHlwZS5EQVRFOlxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgY29udmVydGVkVmFsdWUgPSBjb252ZXJ0Rm9ybUZpZWxkVHlwZURhdGVUb1N0YW5kYXJkRm9ybWF0KHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRUZpZWxkVHlwZS5USU1FOlxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgY29udmVydGVkVmFsdWUgPSBjb252ZXJ0Rm9ybUZpZWxkVHlwZVRpbWVUb1N0YW5kYXJkRm9ybWF0KHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRUZpZWxkVHlwZS5SQURJTzpcbiAgICAgICAgY29udmVydGVkVmFsdWUgPSB2YWx1ZS5sYWJlbDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEVGaWVsZFR5cGUuU0VMRUNUOlxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShmaWVsZC5vcHRpb25zKSkge1xuICAgICAgICAgIGZpZWxkLm9wdGlvbnMuZmluZCgoaXRlbTogYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAoaXNPYmplY3QoaXRlbSkpIHtcbiAgICAgICAgICAgICAgaWYgKGl0ZW0udGl0bGUgPT0gdmFsdWUpIHtcbiAgICAgICAgICAgICAgICBjb252ZXJ0ZWRWYWx1ZSA9IGl0ZW0udmFsdWU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRUZpZWxkVHlwZS5QSE9ORTpcbiAgICAgICAgbGV0IHBob25lRmllbGQgPSBmaWVsZCBhcyBURmllbGRQaG9uZTtcbiAgICAgICAgaWYgKHBob25lRmllbGQucHJvcGVydGllcy5yZW1vdmVDb3VudHJ5Q29kZUZyb21WYWx1ZSkge1xuICAgICAgICAgIGNvbnZlcnRlZFZhbHVlID0gdmFsdWVcbiAgICAgICAgICAgIC50b1N0cmluZygpXG4gICAgICAgICAgICAucmVwbGFjZShwaG9uZUZpZWxkLnByb3BlcnRpZXMuY291bnRyeUNvZGUsIFwiXCIpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBFRmllbGRUeXBlLkNBUFRVUkU6XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSAmJiBpc05vdEVtcHR5VmFsdWUodmFsdWVbMF0pKSB7XG4gICAgICAgICAgY29udmVydGVkVmFsdWUgPSB2YWx1ZVswXTtcbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICB0eXBlb2YgdmFsdWUgIT09IFwic3RyaW5nXCIgfHxcbiAgICAgICAgICAodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiICYmIGlzRW1wdHlWYWx1ZSh2YWx1ZSkpXG4gICAgICAgICkge1xuICAgICAgICAgIGNvbnZlcnRlZFZhbHVlID0gXCJcIjtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRUZpZWxkVHlwZS5SRUNPUkQ6XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSAmJiBpc05vdEVtcHR5VmFsdWUodmFsdWVbMF0pKSB7XG4gICAgICAgICAgY29udmVydGVkVmFsdWUgPSB2YWx1ZVswXTtcbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICB0eXBlb2YgdmFsdWUgIT09IFwic3RyaW5nXCIgfHxcbiAgICAgICAgICAodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiICYmIGlzRW1wdHlWYWx1ZSh2YWx1ZSkpXG4gICAgICAgICkge1xuICAgICAgICAgIGNvbnZlcnRlZFZhbHVlID0gXCJcIjtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBjb252ZXJ0ZWRWYWx1ZSA9IFwiXCI7XG4gIH1cblxuICByZXR1cm4gY29udmVydGVkVmFsdWU7XG59O1xuXG5leHBvcnQgY29uc3QgY29udmVydEZvcm1GaWVsZFZhbHVlVG9Ld2lrVUlGb3JtYXQgPSAoXG4gIGZpZWxkOiBURmllbGQsXG4gIHZhbHVlOiBhbnlcbikgPT4ge1xuICBsZXQgY29udmVydGVkVmFsdWU6IGFueSA9IHZhbHVlO1xuXG4gIGlmIChpc05vdEVtcHR5VmFsdWUodmFsdWUpKSB7XG4gICAgc3dpdGNoIChmaWVsZC50eXBlKSB7XG4gICAgICBjYXNlIEVGaWVsZFR5cGUuUkFESU86XG4gICAgICAgIGlmICghY2hlY2tPYmplY3RLZXlFeGlzdHModmFsdWUsIFwibGFiZWxcIikpIHtcbiAgICAgICAgICBjb25zdCByYWRpb0ZpZWxkID0gZmllbGQgYXMgYW55O1xuICAgICAgICAgIGNvbnN0IGNvbnZlcnRlZExhYmVsVmFsdWUgPSByYWRpb0ZpZWxkLm9wdGlvbnMuZmluZCgoaXRlbTogYW55KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gaXRlbS5sYWJlbCA9PT0gdmFsdWU7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgY29udmVydGVkVmFsdWUgPSBjb252ZXJ0ZWRMYWJlbFZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBFRmllbGRUeXBlLlNFTEVDVDpcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZmllbGQub3B0aW9ucykpIHtcbiAgICAgICAgICBmaWVsZC5vcHRpb25zLmZpbmQoKGl0ZW06IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKGlzT2JqZWN0KGl0ZW0pKSB7XG4gICAgICAgICAgICAgIGlmIChpdGVtLnZhbHVlID09IHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgY29udmVydGVkVmFsdWUgPSBpdGVtLnRpdGxlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEVGaWVsZFR5cGUuREFURTpcbiAgICAgICAgY29udmVydGVkVmFsdWUgPSBjb252ZXJ0Rm9ybUZpZWxkVHlwZURhdGVUb0t3aWtVSUZvcm1hdCh2YWx1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBFRmllbGRUeXBlLlRJTUU6XG4gICAgICAgIGNvbnZlcnRlZFZhbHVlID0gY29udmVydEZvcm1GaWVsZFR5cGVUaW1lVG9Ld2lrVUlGb3JtYXQodmFsdWUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRUZpZWxkVHlwZS5GSUxFOlxuICAgICAgICBjb252ZXJ0ZWRWYWx1ZSA9IHZhbHVlO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRUZpZWxkVHlwZS5DQVBUVVJFOlxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgY29udmVydGVkVmFsdWUgPSBbdmFsdWVdO1xuICAgICAgICB9IGVsc2UgaWYgKCFBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgIGNvbnZlcnRlZFZhbHVlID0gW107XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29udmVydGVkVmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRUZpZWxkVHlwZS5SRUNPUkQ6XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICBjb252ZXJ0ZWRWYWx1ZSA9IFt2YWx1ZV07XG4gICAgICAgIH0gZWxzZSBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgY29udmVydGVkVmFsdWUgPSBbXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb252ZXJ0ZWRWYWx1ZSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGNvbnZlcnRlZFZhbHVlID0gY29udmVydEZvcm1GaWVsZEVtcHR5VmFsdWVUb0t3aWtVSUZvcm1hdChmaWVsZCk7XG4gIH1cblxuICByZXR1cm4gY29udmVydGVkVmFsdWU7XG59O1xuXG5leHBvcnQgY29uc3QgY29udmVydEZvcm1GaWVsZEVtcHR5VmFsdWVUb0t3aWtVSUZvcm1hdCA9IChcbiAgZmllbGQ6IFRGaWVsZFxuKTogYW55ID0+IHtcbiAgY29uc3QgZmllbGRUeXBlOiBURmllbGRUeXBlID0gZmllbGQudHlwZTtcbiAgbGV0IHZhbHVlOiBhbnk7XG5cbiAgc3dpdGNoIChmaWVsZFR5cGUpIHtcbiAgICBjYXNlIEVGaWVsZFR5cGUuQ0hFQ0tCT1g6XG4gICAgICB2YWx1ZSA9IGZhbHNlO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBFRmllbGRUeXBlLk5VTUJFUjpcbiAgICAgIHZhbHVlID0gbnVsbDtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgRUZpZWxkVHlwZS5EQVRFOlxuICAgICAgdmFsdWUgPSBudWxsO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBFRmllbGRUeXBlLkZJTEU6XG4gICAgICB2YWx1ZSA9IFtdO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBFRmllbGRUeXBlLkNBUFRVUkU6XG4gICAgICB2YWx1ZSA9IFtdO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBFRmllbGRUeXBlLlJFQ09SRDpcbiAgICAgIHZhbHVlID0gW107XG4gICAgICBicmVhaztcbiAgICBjYXNlIEVGaWVsZFR5cGUuU0VMRUNUOlxuICAgICAgdmFsdWUgPSBudWxsO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBFRmllbGRUeXBlLkRST1BET1dOX1dJVEhfU0VBUkNIOlxuICAgICAgdmFsdWUgPSBudWxsO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIHZhbHVlID0gXCJcIjtcbiAgICAgIGJyZWFrO1xuICB9XG5cbiAgcmV0dXJuIHZhbHVlO1xufTtcbiJdfQ==
|
|
364
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12aWV3LmZpZWxkcy5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtZm9ybXMvc3JjL2xpYi9yZW5kZXJlci9mb3JtLXZpZXcvaGVscGVycy9mb3JtLXZpZXcuZmllbGRzLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRCxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLFlBQVksRUFDWixlQUFlLEVBQ2YsUUFBUSxFQUNSLGtCQUFrQixFQUNuQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFDTCxVQUFVLEVBSVgsTUFBTSw0Q0FBNEMsQ0FBQztBQUVwRCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLE1BQWEsRUFBRSxHQUFXLEVBQUUsRUFBRTtJQUM5RCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUM7QUFDbkQsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxNQUFhLEVBQUUsR0FBVyxFQUFFLEVBQUU7SUFDbkUsTUFBTSxVQUFVLEdBQVcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFO1FBQ3JELE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDdkIsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLFVBQVUsQ0FBQztBQUNwQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLEtBQVUsRUFBRSxLQUFVLEVBQU8sRUFBRTtJQUNyRSxLQUFLLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUN0QixLQUFLLENBQUMsS0FBSyxH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QUMsS0FBSyxDQUFDLENBQUM7S0FDbEU7SUFFRCxPQUFPLGNBQWMsQ0FBQztBQUN4QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUdWlEYXksIFR1aVRpbWUgfSBmcm9tIFwiQHRhaWdhLXVpL2Nka1wiO1xuaW1wb3J0IHtcbiAgY2hlY2tPYmplY3RLZXlFeGlzdHMsXG4gIGlzRW1wdHlWYWx1ZSxcbiAgaXNOb3RFbXB0eVZhbHVlLFxuICBpc09iamVjdCxcbiAgc2V0TWlzc2luZ0tleVZhbHVlXG59IGZyb20gXCJrd2lraWQtdG9vbGtpdFwiO1xuaW1wb3J0IHtcbiAgRUZpZWxkVHlwZSxcbiAgVEZpZWxkLFxuICBURmllbGRQaG9uZSxcbiAgVEZpZWxkVHlwZVxufSBmcm9tIFwiLi4vZGVmaW5pdGlvbnMvZm9ybS12aWV3LmZpZWxkcy5kZWZpbml0aW9uXCI7XG5cbmV4cG9ydCBjb25zdCBnZXRGb3JtRmllbGRCeUtleSA9IChmaWVsZHM6IGFueVtdLCBrZXk6IHN0cmluZykgPT4ge1xuICByZXR1cm4gZmllbGRzLmZpbmQoKGZpZWxkKSA9PiBmaWVsZC5rZXkgPT09IGtleSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Rm9ybUZpZWxkSW5kZXhCeUtleSA9IChmaWVsZHM6IGFueVtdLCBrZXk6IHN0cmluZykgPT4ge1xuICBjb25zdCBmaWVsZEluZGV4OiBudW1iZXIgPSBmaWVsZHMuZmluZEluZGV4KChfOiBhbnkpID0+IHtcbiAgICByZXR1cm4ga2V5ID09PSBfLmtleTtcbiAgfSk7XG5cbiAgcmV0dXJuIGZpZWxkSW5kZXg7XG59O1xuXG5leHBvcnQgY29uc3QgaGlnaGxpZ2h0Rm9ybUZpZWxkRXJyb3IgPSAoZmllbGQ6IGFueSwgZXJyb3I6IGFueSk6IGFueSA9PiB7XG4gIGZpZWxkLmludmFsaWQgPSBlcnJvcjtcbiAgZmllbGQuZm9jdXMgPSBlcnJvcjtcblxuICByZXR1cm4gZmllbGQ7XG59O1xuXG5leHBvcnQgY29uc3QgYXBwZW5kSHRtbE1lc3NhZ2UgPSAoXG4gIGZpZWxkOiBhbnksXG4gIG1lc3NhZ2U6IHsgbWVzc2FnZTogc3RyaW5nIH1cbik6IGFueSA9PiB7XG4gIGlmIChjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJodG1sXCIpKSB7XG4gICAgaWYgKGlzTm90RW1wdHlWYWx1ZShmaWVsZC5odG1sKSkge1xuICAgICAgY29uc3QgaHRtbCA9IGZpZWxkLmh0bWwucmVwbGFjZShcInt7bWVzc2FnZX19XCIsIG1lc3NhZ2UubWVzc2FnZSk7XG4gICAgICBmaWVsZC5odG1sID0gaHRtbDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZmllbGQ7XG59O1xuXG5leHBvcnQgY29uc3QgYXBwZW5kRm9ybUZpZWxkTWVzc2FnZSA9IChcbiAgZmllbGQ6IGFueSxcbiAgbWVzc2FnZTogeyB0eXBlOiBzdHJpbmc7IG1lc3NhZ2U6IHN0cmluZyB9XG4pOiBhbnkgPT4ge1xuICBjb25zdCBoYXNEdXBsaWNhdGVNZXNzYWdlID0gKFxuICAgIG1lc3NhZ2VzOiB7IHR5cGU6IHN0cmluZzsgbWVzc2FnZTogc3RyaW5nIH1bXSxcbiAgICBtZXNzYWdlOiB7IHR5cGU6IHN0cmluZzsgbWVzc2FnZTogc3RyaW5nIH1cbiAgKSA9PiB7XG4gICAgcmV0dXJuIG1lc3NhZ2VzLnNvbWUoKGZpZWxkTWVzc2FnZTogeyB0eXBlOiBzdHJpbmc7IG1lc3NhZ2U6IHN0cmluZyB9KSA9PiB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICBmaWVsZE1lc3NhZ2UudHlwZSA9PT0gbWVzc2FnZS50eXBlICYmXG4gICAgICAgIGZpZWxkTWVzc2FnZS5tZXNzYWdlID09PSBtZXNzYWdlLm1lc3NhZ2VcbiAgICAgICk7XG4gICAgfSk7XG4gIH07XG5cbiAgZmllbGQubWVzc2FnZXMgPSBbXTtcblxuICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIFwibWVzc2FnZXNcIikpIHtcbiAgICBpZiAoIWhhc0R1cGxpY2F0ZU1lc3NhZ2UoZmllbGQubWVzc2FnZXMsIG1lc3NhZ2UpKSB7XG4gICAgICBmaWVsZC5tZXNzYWdlcy5wdXNoKHtcbiAgICAgICAgdHlwZTogbWVzc2FnZS50eXBlLFxuICAgICAgICBtZXNzYWdlOiBtZXNzYWdlLm1lc3NhZ2VcbiAgICAgIH0pO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBmaWVsZC5tZXNzYWdlcyA9IFt7IHR5cGU6IG1lc3NhZ2UudHlwZSwgbWVzc2FnZTogbWVzc2FnZS5tZXNzYWdlIH1dO1xuICB9XG5cbiAgcmV0dXJuIGZpZWxkO1xufTtcblxuZXhwb3J0IGNvbnN0IGZpbHRlckR1cGxpY2F0ZXNNZWRpYUZpbGVzID0gKGFycmF5OiBzdHJpbmdbXSk6IHN0cmluZ1tdID0+IHtcbiAgY29uc3QgdW5pcXVlRmlsZXMgPSBuZXcgU2V0PHN0cmluZz4oKTtcblxuICByZXR1cm4gYXJyYXkuZmlsdGVyKChtZWRpYUZpbGUpID0+IHtcbiAgICBpZiAoIXVuaXF1ZUZpbGVzLmhhcyhtZWRpYUZpbGUpKSB7XG4gICAgICB1bmlxdWVGaWxlcy5hZGQobWVkaWFGaWxlKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGZpbHRlckR1cGxpY2F0ZXNGaWxlcyA9IChhcnJheTogYW55W10pOiBhbnlbXSA9PiB7XG4gIGNvbnN0IHVuaXF1ZUZpbGVzID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIHJldHVybiBhcnJheS5maWx0ZXIoKGZpbGUpID0+IHtcbiAgICBjb25zdCBmaWxlS2V5ID0gYCR7ZmlsZS5uYW1lfS0ke2ZpbGUuc2l6ZX1gO1xuICAgIGlmICghdW5pcXVlRmlsZXMuaGFzKGZpbGVLZXkpKSB7XG4gICAgICB1bmlxdWVGaWxlcy5hZGQoZmlsZUtleSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCByZW1vdmVGb3JtRmllbGRNZXNzYWdlID0gKFxuICBmaWVsZDogYW55LFxuICBtZXNzYWdlOiB7IHR5cGU6IHN0cmluZzsgbWVzc2FnZTogc3RyaW5nIH1cbik6IGFueSA9PiB7XG4gIGlmIChpc05vdEVtcHR5VmFsdWUoZmllbGQ/Lm1lc3NhZ2VzKSkge1xuICAgIGZpZWxkLm1lc3NhZ2VzID0gZmllbGQubWVzc2FnZXMuZmlsdGVyKChmaWVsZE1lc3NhZ2UpID0+IHtcbiAgICAgIHJldHVybiBmaWVsZE1lc3NhZ2UudHlwZSAhPT0gbWVzc2FnZS50eXBlO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIGZpZWxkLm1lc3NhZ2VzID0gW107XG4gIH1cblxuICByZXR1cm4gZmllbGQ7XG59O1xuXG5leHBvcnQgY29uc3Qgc2V0QXBpVGltZXJNZXNzYWdlID0gKGZpZWxkLCB0aW1lciA9IHt9KSA9PiB7XG4gIGlmIChjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJhcGlcIikpIHtcbiAgICBmaWVsZC5hcGkudGltZXIgPSB0aW1lcjtcbiAgfSBlbHNlIHtcbiAgICBzZXRNaXNzaW5nS2V5VmFsdWUoZmllbGQsIFwiYXBpXCIsIHsgdGltZXIgfSk7XG4gIH1cbiAgcmV0dXJuIGZpZWxkO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHNob3dGb3JtRmllbGRFcnJvcihcbiAgZmllbGRzOiBhbnksXG4gIGVycm9yczogYW55LFxuICBrZXk6IHN0cmluZyxcbiAgZXJyb3I6IGJvb2xlYW5cbikge1xuICBjb25zdCBmaWVsZEluZGV4ID0gZmllbGRzLmZpbmRJbmRleCgoZmllbGQ6IGFueSkgPT4ge1xuICAgIHJldHVybiBmaWVsZC5rZXkgPT09IGtleTtcbiAgfSk7XG5cbiAgY29uc3Qgc2V0RXJyb3JNZXNzYWdlcyA9IChmaWVsZDogYW55LCBlcnJvcnM6IGFueSkgPT4ge1xuICAgIGNvbnN0IGdldEVycm9yTWVzc2FnZSA9IChmaWVsZExhYmVsOiBzdHJpbmcsIGVycm9yVHlwZTogc3RyaW5nKSA9PiB7XG4gICAgICBsZXQgZXJyb3JNZXNzYWdlID0gXCJcIjtcblxuICAgICAgc3dpdGNoIChlcnJvclR5cGUpIHtcbiAgICAgICAgY2FzZSBcInJlcXVpcmVkXCI6XG4gICAgICAgICAgZXJyb3JNZXNzYWdlID0gYCR7ZmllbGRMYWJlbH0gaXMgcmVxdWlyZWQhYDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcImVtYWlsXCI6XG4gICAgICAgICAgZXJyb3JNZXNzYWdlID0gYCR7ZmllbGRMYWJlbH0gaGFzIHdyb25nIGVtYWlsIGZvcm1hdCFgO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwibWluXCI6XG4gICAgICAgICAgZXJyb3JNZXNzYWdlID0gYCR7ZmllbGRMYWJlbH0gaGFzIHdyb25nIHZhbHVlISBNaW5pbXVtIHZhbHVlOiAke2ZpZWxkLnZhbGlkYXRvcnMubWlufWA7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJtaW5sZW5ndGhcIjpcbiAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBgJHtmaWVsZExhYmVsfSBoYXMgd3JvbmcgbGVuZ3RoISBSZXF1aXJlZCBtaW5pbXVtIGxlbmd0aDogJHtmaWVsZC52YWxpZGF0b3JzLm1pbkxlbmd0aH1gO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwibWF4XCI6XG4gICAgICAgICAgZXJyb3JNZXNzYWdlID0gYCR7ZmllbGRMYWJlbH0gaGFzIHdyb25nIHZhbHVlISBNYXhpbXVtIHZhbHVlOiAke2ZpZWxkLnZhbGlkYXRvcnMubWF4TGVuZ3RofWA7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJtYXhsZW5ndGhcIjpcbiAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBgJHtmaWVsZExhYmVsfSBoYXMgd3JvbmcgbGVuZ3RoISBSZXF1aXJlZCBtYXhpbXVtIGxlbmd0aDogJHtmaWVsZC52YWxpZGF0b3JzLm1heExlbmd0aH1gO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwiYXJlRXF1YWxcIjpcbiAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBgJHtmaWVsZExhYmVsfSBtdXN0IGJlIGVxdWFsIWA7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJwYXR0ZXJuXCI6XG4gICAgICAgICAgZXJyb3JNZXNzYWdlID0gYCR7ZmllbGRMYWJlbH0gaXMgaW4gaW5jb3JyZWN0IGZvcm1hdCFgO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwib25seVdoaXRlc3BhY2VzXCI6XG4gICAgICAgICAgZXJyb3JNZXNzYWdlID0gYCR7ZmllbGRMYWJlbH0gY2FuJ3QgY29udGFpbiBvbmx5IGVtcHR5IHNwYWNlcyFgO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGVycm9yTWVzc2FnZSA9IGAke2ZpZWxkTGFiZWx9OiAke2Vycm9yVHlwZX1gO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZXJyb3JNZXNzYWdlO1xuICAgIH07XG5cbiAgICBPYmplY3Qua2V5cyhlcnJvcnMpLmZvckVhY2goKGVycm9yKSA9PiB7XG4gICAgICBmaWVsZCA9IGFwcGVuZEZvcm1GaWVsZE1lc3NhZ2UoZmllbGQsIHtcbiAgICAgICAgdHlwZTogXCJlcnJvclwiLFxuICAgICAgICBtZXNzYWdlOiBnZXRFcnJvck1lc3NhZ2UoZmllbGQubGFiZWwsIGVycm9yKVxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZmllbGQ7XG4gIH07XG5cbiAgaWYgKGVycm9yKSB7XG4gICAgZmllbGRzW2ZpZWxkSW5kZXhdID0gc2V0RXJyb3JNZXNzYWdlcyhmaWVsZHNbZmllbGRJbmRleF0sIGVycm9ycyk7XG4gIH0gZWxzZSB7XG4gICAgZmllbGRzW2ZpZWxkSW5kZXhdLm1lc3NhZ2VzID0gW107XG4gIH1cblxuICBmaWVsZHNbZmllbGRJbmRleF0gPSBoaWdobGlnaHRGb3JtRmllbGRFcnJvcihmaWVsZHNbZmllbGRJbmRleF0sIGVycm9yKTtcblxuICByZXR1cm4gZmllbGRzO1xufVxuXG5leHBvcnQgY29uc3QgY29udmVydEZvcm1GaWVsZFR5cGVEYXRlVG9Ld2lrVUlGb3JtYXQgPSAoXG4gIGRhdGU6IHN0cmluZ1xuKTogVHVpRGF5ID0+IHtcbiAgY29uc3Qgc3BsaXREYXRlID0gZGF0ZS5zcGxpdChcIi1cIik7XG4gIGNvbnN0IHR1aURheSA9IG5ldyBUdWlEYXkoXG4gICAgTnVtYmVyKHNwbGl0RGF0ZVsyXSksIC8vIFllYXJcbiAgICBOdW1iZXIoc3BsaXREYXRlWzFdKSAtIDEsIC8vIE1vbnRoLCBXaHkgJy0xJyA9PiBCZWNhdXNlIFRhaWdhLVVJIFJlcXVpcmVkIEl0LCBTby4uLlxuICAgIE51bWJlcihzcGxpdERhdGVbMF0pIC8vIERheVxuICApO1xuXG4gIHJldHVybiB0dWlEYXk7XG59O1xuXG5leHBvcnQgY29uc3QgY29udmVydEZvcm1GaWVsZFR5cGVUaW1lVG9Ld2lrVUlGb3JtYXQgPSAoXG4gIHRpbWU6IHN0cmluZ1xuKTogVHVpVGltZSA9PiB7XG4gIGNvbnN0IHRpbWVQYXJ0cyA9IHRpbWUuc3BsaXQoL1suOl0vKTtcbiAgbGV0IGhvdXJzID0gMDtcbiAgbGV0IG1pbnV0ZXMgPSAwO1xuICBsZXQgc2Vjb25kcyA9IDA7XG4gIGxldCBtaWxsaXNlY29uZHMgPSAwO1xuXG4gIGlmICh0aW1lUGFydHMubGVuZ3RoID49IDIpIHtcbiAgICBob3VycyA9IHBhcnNlSW50KHRpbWVQYXJ0c1swXSwgMTApO1xuICAgIG1pbnV0ZXMgPSBwYXJzZUludCh0aW1lUGFydHNbMV0sIDEwKTtcblxuICAgIGlmICh0aW1lUGFydHMubGVuZ3RoID49IDMpIHtcbiAgICAgIHNlY29uZHMgPSBwYXJzZUludCh0aW1lUGFydHNbMl0sIDEwKTtcbiAgICAgIGlmICh0aW1lUGFydHMubGVuZ3RoID09PSA0KSB7XG4gICAgICAgIG1pbGxpc2Vjb25kcyA9IHBhcnNlSW50KHRpbWVQYXJ0c1szXSwgMTApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHR1aVRpbWUgPSBuZXcgVHVpVGltZShob3VycywgbWludXRlcywgc2Vjb25kcywgbWlsbGlzZWNvbmRzKTtcbiAgcmV0dXJuIHR1aVRpbWU7XG59O1xuXG5leHBvcnQgY29uc3QgY29udmVydEZvcm1GaWVsZFR5cGVEYXRlVG9TdGFuZGFyZEZvcm1hdCA9IChcbiAgZGF0ZTogVHVpRGF5XG4pOiBzdHJpbmcgPT4ge1xuICBjb25zdCB7IGRheSwgbW9udGgsIHllYXIgfSA9IGRhdGU7XG5cbiAgY29uc3QgZm9ybWF0dGVkRGF0ZSA9IGAke2RheS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIFwiMFwiKX0tJHsobW9udGggKyAxKVxuICAgIC50b1N0cmluZygpXG4gICAgLnBhZFN0YXJ0KDIsIFwiMFwiKX0tJHt5ZWFyfWA7XG5cbiAgcmV0dXJuIGZvcm1hdHRlZERhdGU7XG59O1xuXG5leHBvcnQgY29uc3QgY29udmVydEZvcm1GaWVsZFR5cGVUaW1lVG9TdGFuZGFyZEZvcm1hdCA9IChcbiAgdGltZTogVHVpVGltZVxuKTogc3RyaW5nID0+IHtcbiAgY29uc3QgaG91ciA9IHRpbWUuaG91cnM7XG4gIGNvbnN0IHsgc2Vjb25kcywgbWludXRlcyB9ID0gdGltZTtcbiAgY29uc3QgbWlsbGlzZWNvbmRzID0gdGltZS5tcztcblxuICBjb25zdCBmb3JtYXR0ZWREYXRlID0gYCR7aG91ci50b1N0cmluZygpLnBhZFN0YXJ0KDIsIFwiMFwiKX06JHttaW51dGVzXG4gICAgLnRvU3RyaW5nKClcbiAgICAucGFkU3RhcnQoMiwgXCIwXCIpfSR7XG4gICAgc2Vjb25kcyA+IDAgPyBgOiR7c2Vjb25kcy50b1N0cmluZygpLnBhZFN0YXJ0KDIsIFwiMFwiKX1gIDogXCJcIlxuICB9JHtcbiAgICBzZWNvbmRzID4gMCAmJiBtaWxsaXNlY29uZHMgPiAwXG4gICAgICA/IGA6JHttaWxsaXNlY29uZHMudG9TdHJpbmcoKS5wYWRTdGFydCgyLCBcIjBcIil9YFxuICAgICAgOiBcIlwiXG4gIH1gO1xuXG4gIHJldHVybiBmb3JtYXR0ZWREYXRlO1xufTtcblxuZXhwb3J0IGNvbnN0IGNvbnZlcnRGb3JtRmllbGRWYWx1ZVRvU3RhbmRhcmRGb3JtYXQgPSAoXG4gIGZpZWxkOiBURmllbGQsXG4gIHZhbHVlOiBhbnlcbikgPT4ge1xuICBsZXQgY29udmVydGVkVmFsdWU6IGFueSA9IHZhbHVlO1xuXG4gIGlmIChpc05vdEVtcHR5VmFsdWUodmFsdWUpKSB7XG4gICAgc3dpdGNoIChmaWVsZC50eXBlKSB7XG4gICAgICBjYXNlIEVGaWVsZFR5cGUuREFURTpcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgIGNvbnZlcnRlZFZhbHVlID0gY29udmVydEZvcm1GaWVsZFR5cGVEYXRlVG9TdGFuZGFyZEZvcm1hdCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEVGaWVsZFR5cGUuVElNRTpcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgIGNvbnZlcnRlZFZhbHVlID0gY29udmVydEZvcm1GaWVsZFR5cGVUaW1lVG9TdGFuZGFyZEZvcm1hdCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEVGaWVsZFR5cGUuUkFESU86XG4gICAgICAgIGNvbnZlcnRlZFZhbHVlID0gdmFsdWUubGFiZWw7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBFRmllbGRUeXBlLlNFTEVDVDpcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZmllbGQub3B0aW9ucykpIHtcbiAgICAgICAgICBjb25zdCBmb3VuZEl0ZW0gPSBmaWVsZC5vcHRpb25zLmZpbmQoKGl0ZW06IGFueSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGlzT2JqZWN0KGl0ZW0pICYmIGl0ZW0udGl0bGUgPT09IHZhbHVlO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgaWYgKGZvdW5kSXRlbSkge1xuICAgICAgICAgICAgY29udmVydGVkVmFsdWUgPSBmb3VuZEl0ZW0udmFsdWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBFRmllbGRUeXBlLlBIT05FOiB7XG4gICAgICAgIGNvbnN0IHBob25lRmllbGQgPSBmaWVsZCBhcyBURmllbGRQaG9uZTtcbiAgICAgICAgaWYgKHBob25lRmllbGQucHJvcGVydGllcy5yZW1vdmVDb3VudHJ5Q29kZUZyb21WYWx1ZSkge1xuICAgICAgICAgIGNvbnZlcnRlZFZhbHVlID0gdmFsdWVcbiAgICAgICAgICAgIC50b1N0cmluZygpXG4gICAgICAgICAgICAucmVwbGFjZShwaG9uZUZpZWxkLnByb3BlcnRpZXMuY291bnRyeUNvZGUsIFwiXCIpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBFRmllbGRUeXBlLkNBUFRVUkU6XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSAmJiBpc05vdEVtcHR5VmFsdWUodmFsdWVbMF0pKSB7XG4gICAgICAgICAgY29udmVydGVkVmFsdWUgPSB2YWx1ZVswXTtcbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICB0eXBlb2YgdmFsdWUgIT09IFwic3RyaW5nXCIgfHxcbiAgICAgICAgICAodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiICYmIGlzRW1wdHlWYWx1ZSh2YWx1ZSkpXG4gICAgICAgICkge1xuICAgICAgICAgIGNvbnZlcnRlZFZhbHVlID0gXCJcIjtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRUZpZWxkVHlwZS5SRUNPUkQ6XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSAmJiBpc05vdEVtcHR5VmFsdWUodmFsdWVbMF0pKSB7XG4gICAgICAgICAgY29udmVydGVkVmFsdWUgPSB2YWx1ZVswXTtcbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICB0eXBlb2YgdmFsdWUgIT09IFwic3RyaW5nXCIgfHxcbiAgICAgICAgICAodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiICYmIGlzRW1wdHlWYWx1ZSh2YWx1ZSkpXG4gICAgICAgICkge1xuICAgICAgICAgIGNvbnZlcnRlZFZhbHVlID0gXCJcIjtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBjb252ZXJ0ZWRWYWx1ZSA9IFwiXCI7XG4gIH1cblxuICByZXR1cm4gY29udmVydGVkVmFsdWU7XG59O1xuXG5leHBvcnQgY29uc3QgY29udmVydEZvcm1GaWVsZEVtcHR5VmFsdWVUb0t3aWtVSUZvcm1hdCA9IChcbiAgZmllbGQ6IFRGaWVsZFxuKTogYW55ID0+IHtcbiAgY29uc3QgZmllbGRUeXBlOiBURmllbGRUeXBlID0gZmllbGQudHlwZTtcbiAgbGV0IHZhbHVlOiBhbnk7XG5cbiAgc3dpdGNoIChmaWVsZFR5cGUpIHtcbiAgICBjYXNlIEVGaWVsZFR5cGUuQ0hFQ0tCT1g6XG4gICAgICB2YWx1ZSA9IGZhbHNlO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBFRmllbGRUeXBlLk5VTUJFUjpcbiAgICAgIHZhbHVlID0gbnVsbDtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgRUZpZWxkVHlwZS5EQVRFOlxuICAgICAgdmFsdWUgPSBudWxsO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBFRmllbGRUeXBlLkZJTEU6XG4gICAgICB2YWx1ZSA9IFtdO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBFRmllbGRUeXBlLkNBUFRVUkU6XG4gICAgICB2YWx1ZSA9IFtdO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBFRmllbGRUeXBlLlJFQ09SRDpcbiAgICAgIHZhbHVlID0gW107XG4gICAgICBicmVhaztcbiAgICBjYXNlIEVGaWVsZFR5cGUuU0VMRUNUOlxuICAgICAgdmFsdWUgPSBudWxsO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBFRmllbGRUeXBlLkRST1BET1dOX1dJVEhfU0VBUkNIOlxuICAgICAgdmFsdWUgPSBudWxsO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIHZhbHVlID0gXCJcIjtcbiAgICAgIGJyZWFrO1xuICB9XG5cbiAgcmV0dXJuIHZhbHVlO1xufTtcblxuZXhwb3J0IGNvbnN0IGNvbnZlcnRGb3JtRmllbGRWYWx1ZVRvS3dpa1VJRm9ybWF0ID0gKFxuICBmaWVsZDogVEZpZWxkLFxuICB2YWx1ZTogYW55XG4pID0+IHtcbiAgbGV0IGNvbnZlcnRlZFZhbHVlOiBhbnkgPSB2YWx1ZTtcblxuICBpZiAoaXNOb3RFbXB0eVZhbHVlKHZhbHVlKSkge1xuICAgIHN3aXRjaCAoZmllbGQudHlwZSkge1xuICAgICAgY2FzZSBFRmllbGRUeXBlLlJBRElPOlxuICAgICAgICBpZiAoIWNoZWNrT2JqZWN0S2V5RXhpc3RzKHZhbHVlLCBcImxhYmVsXCIpKSB7XG4gICAgICAgICAgY29uc3QgcmFkaW9GaWVsZCA9IGZpZWxkIGFzIGFueTtcbiAgICAgICAgICBjb25zdCBjb252ZXJ0ZWRMYWJlbFZhbHVlID0gcmFkaW9GaWVsZC5vcHRpb25zLmZpbmQoKGl0ZW06IGFueSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW0ubGFiZWwgPT09IHZhbHVlO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIGNvbnZlcnRlZFZhbHVlID0gY29udmVydGVkTGFiZWxWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRUZpZWxkVHlwZS5TRUxFQ1Q6XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGZpZWxkLm9wdGlvbnMpKSB7XG4gICAgICAgICAgY29uc3QgZm91bmRJdGVtID0gZmllbGQub3B0aW9ucy5maW5kKChpdGVtOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBpc09iamVjdChpdGVtKSAmJiBpdGVtLnZhbHVlID09PSB2YWx1ZTtcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGlmIChmb3VuZEl0ZW0pIHtcbiAgICAgICAgICAgIGNvbnZlcnRlZFZhbHVlID0gZm91bmRJdGVtLnRpdGxlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRUZpZWxkVHlwZS5EQVRFOlxuICAgICAgICBjb252ZXJ0ZWRWYWx1ZSA9IGNvbnZlcnRGb3JtRmllbGRUeXBlRGF0ZVRvS3dpa1VJRm9ybWF0KHZhbHVlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEVGaWVsZFR5cGUuVElNRTpcbiAgICAgICAgY29udmVydGVkVmFsdWUgPSBjb252ZXJ0Rm9ybUZpZWxkVHlwZVRpbWVUb0t3aWtVSUZvcm1hdCh2YWx1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBFRmllbGRUeXBlLkZJTEU6XG4gICAgICAgIGNvbnZlcnRlZFZhbHVlID0gdmFsdWU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBFRmllbGRUeXBlLkNBUFRVUkU6XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgIGNvbnZlcnRlZFZhbHVlID0gdmFsdWUuZmlsdGVyKChpdGVtKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICB0eXBlb2YgaXRlbSA9PT0gXCJzdHJpbmdcIiB8fFxuICAgICAgICAgICAgICAoaXNPYmplY3QoaXRlbSkgJiYgY2hlY2tPYmplY3RLZXlFeGlzdHMoaXRlbSwgXCJpbWFnZVwiKSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgY29udmVydGVkVmFsdWUgPSBbdmFsdWVdO1xuICAgICAgICB9IGVsc2UgaWYgKGlzT2JqZWN0KHZhbHVlKSAmJiBjaGVja09iamVjdEtleUV4aXN0cyh2YWx1ZSwgXCJpbWFnZVwiKSkge1xuICAgICAgICAgIGNvbnZlcnRlZFZhbHVlID0gW3ZhbHVlXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb252ZXJ0ZWRWYWx1ZSA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBFRmllbGRUeXBlLlJFQ09SRDpcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgY29udmVydGVkVmFsdWUgPSB2YWx1ZS5maWx0ZXIoKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIHR5cGVvZiBpdGVtID09PSBcInN0cmluZ1wiIHx8XG4gICAgICAgICAgICAgIChpc09iamVjdChpdGVtKSAmJiBjaGVja09iamVjdEtleUV4aXN0cyhpdGVtLCBcInZpZGVvXCIpKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICBjb252ZXJ0ZWRWYWx1ZSA9IFt2YWx1ZV07XG4gICAgICAgIH0gZWxzZSBpZiAoaXNPYmplY3QodmFsdWUpICYmIGNoZWNrT2JqZWN0S2V5RXhpc3RzKHZhbHVlLCBcInZpZGVvXCIpKSB7XG4gICAgICAgICAgY29udmVydGVkVmFsdWUgPSBbdmFsdWVdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnZlcnRlZFZhbHVlID0gW107XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgY29udmVydGVkVmFsdWUgPSBjb252ZXJ0Rm9ybUZpZWxkRW1wdHlWYWx1ZVRvS3dpa1VJRm9ybWF0KGZpZWxkKTtcbiAgfVxuXG4gIHJldHVybiBjb252ZXJ0ZWRWYWx1ZTtcbn07XG4iXX0=
|
|
@@ -1,10 +1,18 @@
|
|
|
1
1
|
import { __decorate } from "tslib";
|
|
2
2
|
import { FormArray, FormGroup, Validators } from "@angular/forms";
|
|
3
3
|
import { PATTERNS, checkObjectKeyExists, hasWhitespacesOnly, isNotEmptyValue, logMethod } from "kwikid-toolkit";
|
|
4
|
+
export function NoWhitespacesValidator() {
|
|
5
|
+
return (control) => {
|
|
6
|
+
const { value } = control;
|
|
7
|
+
if (!value || typeof value !== "string") {
|
|
8
|
+
return null;
|
|
9
|
+
}
|
|
10
|
+
return hasWhitespacesOnly(value) ? { onlyWhitespaces: true } : null;
|
|
11
|
+
};
|
|
12
|
+
}
|
|
4
13
|
export class FormValidation {
|
|
5
|
-
constructor() { }
|
|
6
14
|
getFormFieldValidators(field) {
|
|
7
|
-
|
|
15
|
+
const validators = [];
|
|
8
16
|
if (checkObjectKeyExists(field, "validators") &&
|
|
9
17
|
checkObjectKeyExists(field.validators, "min") &&
|
|
10
18
|
isNotEmptyValue(field.validators.min)) {
|
|
@@ -51,23 +59,25 @@ export class FormValidation {
|
|
|
51
59
|
return validators;
|
|
52
60
|
}
|
|
53
61
|
getFormFieldsValidationErrors(formGroup) {
|
|
54
|
-
|
|
62
|
+
const errors = [];
|
|
55
63
|
for (const key in formGroup.controls) {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
64
|
+
if (isNotEmptyValue(key)) {
|
|
65
|
+
const controlErrors = formGroup.controls[key].errors;
|
|
66
|
+
if (controlErrors !== null && controlErrors !== undefined) {
|
|
67
|
+
Object.keys(controlErrors).forEach((keyError) => {
|
|
68
|
+
errors.push({
|
|
69
|
+
name: keyError,
|
|
70
|
+
value: controlErrors[keyError]
|
|
71
|
+
});
|
|
62
72
|
});
|
|
63
|
-
}
|
|
73
|
+
}
|
|
64
74
|
}
|
|
65
75
|
}
|
|
66
76
|
return errors;
|
|
67
77
|
}
|
|
68
78
|
getFormFieldsInvalidControls(formToInvestigate) {
|
|
69
|
-
|
|
70
|
-
|
|
79
|
+
const controls = [];
|
|
80
|
+
const recursiveFunc = (form) => {
|
|
71
81
|
Object.keys(form.controls).forEach((field) => {
|
|
72
82
|
const control = form.get(field);
|
|
73
83
|
if (control.invalid) {
|
|
@@ -103,13 +113,4 @@ __decorate([
|
|
|
103
113
|
__decorate([
|
|
104
114
|
logMethod
|
|
105
115
|
], FormValidation.prototype, "getFormFieldsInvalidControls", null);
|
|
106
|
-
export function NoWhitespacesValidator() {
|
|
107
|
-
return (control) => {
|
|
108
|
-
const value = control.value;
|
|
109
|
-
if (!value || typeof value !== "string") {
|
|
110
|
-
return null;
|
|
111
|
-
}
|
|
112
|
-
return hasWhitespacesOnly(value) ? { onlyWhitespaces: true } : null;
|
|
113
|
-
};
|
|
114
|
-
}
|
|
115
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12aWV3LmZvcm0tdmFsaWRhdGlvbnMuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva3dpa2lkLWZvcm1zL3NyYy9saWIvcmVuZGVyZXIvZm9ybS12aWV3L2hlbHBlcnMvZm9ybS12aWV3LmZvcm0tdmFsaWRhdGlvbnMuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFNBQVMsRUFHVCxVQUFVLEVBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQ0wsUUFBUSxFQUNSLG9CQUFvQixFQUNwQixrQkFBa0IsRUFDbEIsZUFBZSxFQUNmLFNBQVMsRUFDVixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE1BQU0sT0FBTyxjQUFjO0lBQ3pCLGdCQUFlLENBQUM7SUFHaEIsc0JBQXNCLENBQUMsS0FBVTtRQUMvQixJQUFJLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFFcEIsSUFDRSxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsWUFBWSxDQUFDO1lBQ3pDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDO1lBQzdDLGVBQWUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUNyQztZQUNBLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDdkQ7UUFDRCxJQUNFLG9CQUFvQixDQUFDLEtBQUssRUFBRSxZQUFZLENBQUM7WUFDekMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUM7WUFDN0MsZUFBZSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQ3JDO1lBQ0EsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FB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VDtBQUdEO0lBREMsU0FBUztrRUE2QlQ7QUFHSCxNQUFNLFVBQVUsc0JBQXNCO0lBQ3BDLE9BQU8sQ0FBQyxPQUF3QixFQUEyQixFQUFFO1FBQzNELE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFFNUIsSUFBSSxDQUFDLEtBQUssSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7WUFDdkMsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELE9BQU8sa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDdEUsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgRm9ybUFycmF5LFxuICBGb3JtR3JvdXAsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvckZuLFxuICBWYWxpZGF0b3JzXG59IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHtcbiAgUEFUVEVSTlMsXG4gIGNoZWNrT2JqZWN0S2V5RXhpc3RzLFxuICBoYXNXaGl0ZXNwYWNlc09ubHksXG4gIGlzTm90RW1wdHlWYWx1ZSxcbiAgbG9nTWV0aG9kXG59IGZyb20gXCJrd2lraWQtdG9vbGtpdFwiO1xuXG5leHBvcnQgY2xhc3MgRm9ybVZhbGlkYXRpb24ge1xuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgQGxvZ01ldGhvZFxuICBnZXRGb3JtRmllbGRWYWxpZGF0b3JzKGZpZWxkOiBhbnkpIHtcbiAgICBsZXQgdmFsaWRhdG9ycyA9IFtdO1xuXG4gICAgaWYgKFxuICAgICAgY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIFwidmFsaWRhdG9yc1wiKSAmJlxuICAgICAgY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQudmFsaWRhdG9ycywgXCJtaW5cIikgJiZcbiAgICAgIGlzTm90RW1wdHlWYWx1ZShmaWVsZC52YWxpZGF0b3JzLm1pbilcbiAgICApIHtcbiAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLm1pbihmaWVsZC52YWxpZGF0b3JzLm1pbikpO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICBjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJ2YWxpZGF0b3JzXCIpICYmXG4gICAgICBjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZC52YWxpZGF0b3JzLCBcIm1heFwiKSAmJlxuICAgICAgaXNOb3RFbXB0eVZhbHVlKGZpZWxkLnZhbGlkYXRvcnMubWF4KVxuICAgICkge1xuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWF4KGZpZWxkLnZhbGlkYXRvcnMubWF4KSk7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIChjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJyZXF1aXJlZFwiKSAmJiBmaWVsZC5yZXF1aXJlZCkgfHxcbiAgICAgIChjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJ2YWxpZGF0b3JzXCIpICYmXG4gICAgICAgIGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLnZhbGlkYXRvcnMsIFwicmVxdWlyZWRcIikgJiZcbiAgICAgICAgZmllbGQudmFsaWRhdG9ycy5yZXF1aXJlZClcbiAgICApIHtcbiAgICAgIHZhbGlkYXRvcnMucHVzaChOb1doaXRlc3BhY2VzVmFsaWRhdG9yKCkpO1xuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICBjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJ2YWxpZGF0b3JzXCIpICYmXG4gICAgICBjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZC52YWxpZGF0b3JzLCBcIm1pbkxlbmd0aFwiKSAmJlxuICAgICAgaXNOb3RFbXB0eVZhbHVlKGZpZWxkLnZhbGlkYXRvcnMubWluTGVuZ3RoKVxuICAgICkge1xuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWluTGVuZ3RoKGZpZWxkLnZhbGlkYXRvcnMubWluTGVuZ3RoKSk7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcInZhbGlkYXRvcnNcIikgJiZcbiAgICAgIGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLnZhbGlkYXRvcnMsIFwibWF4TGVuZ3RoXCIpICYmXG4gICAgICBpc05vdEVtcHR5VmFsdWUoZmllbGQudmFsaWRhdG9ycy5tYXhMZW5ndGgpXG4gICAgKSB7XG4gICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5tYXhMZW5ndGgoZmllbGQudmFsaWRhdG9ycy5tYXhMZW5ndGgpKTtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIFwidmFsaWRhdG9yc1wiKSAmJlxuICAgICAgY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQudmFsaWRhdG9ycywgXCJwYXR0ZXJuXCIpICYmXG4gICAgICBpc05vdEVtcHR5VmFsdWUoZmllbGQudmFsaWRhdG9ycy5wYXR0ZXJuKVxuICAgICkge1xuICAgICAgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLnZhbGlkYXRvcnMucGF0dGVybiwgXCJrZXlcIikpIHtcbiAgICAgICAgaWYgKGZpZWxkLnZhbGlkYXRvcnMucGF0dGVybi5rZXkgPT09IFwiQ1VTVE9NXCIpIHtcbiAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5wYXR0ZXJuKGZpZWxkLnZhbGlkYXRvcnMucGF0dGVybi5wYXR0ZXJuKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKFxuICAgICAgICAgICAgVmFsaWRhdG9ycy5wYXR0ZXJuKFBBVFRFUk5TW2ZpZWxkLnZhbGlkYXRvcnMucGF0dGVybi5rZXldKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKFxuICAgICAgY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIFwidmFsaWRhdG9yc1wiKSAmJlxuICAgICAgY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQudmFsaWRhdG9ycywgXCJ3aGl0ZXNwYWNlXCIpXG4gICAgKSB7XG4gICAgICB2YWxpZGF0b3JzLnB1c2goTm9XaGl0ZXNwYWNlc1ZhbGlkYXRvcigpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsaWRhdG9ycztcbiAgfVxuXG4gIEBsb2dNZXRob2RcbiAgZ2V0Rm9ybUZpZWxkc1ZhbGlkYXRpb25FcnJvcnMoXG4gICAgZm9ybUdyb3VwOiBGb3JtR3JvdXBcbiAgKTogeyBuYW1lOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfVtdIHtcbiAgICBsZXQgZXJyb3JzOiB7IG5hbWU6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9W10gPSBbXTtcblxuICAgIGZvciAoY29uc3Qga2V5IGluIGZvcm1Hcm91cC5jb250cm9scykge1xuICAgICAgY29uc3QgY29udHJvbEVycm9yczogVmFsaWRhdGlvbkVycm9ycyA9IGZvcm1Hcm91cC5jb250cm9sc1trZXldLmVycm9ycztcbiAgICAgIGlmIChjb250cm9sRXJyb3JzICE9PSBudWxsICYmIGNvbnRyb2xFcnJvcnMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBPYmplY3Qua2V5cyhjb250cm9sRXJyb3JzKS5mb3JFYWNoKChrZXlFcnJvcikgPT4ge1xuICAgICAgICAgIGVycm9ycy5wdXNoKHtcbiAgICAgICAgICAgIG5hbWU6IGtleUVycm9yLFxuICAgICAgICAgICAgdmFsdWU6IGNvbnRyb2xFcnJvcnNba2V5RXJyb3JdXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBlcnJvcnM7XG4gIH1cblxuICBAbG9nTWV0aG9kXG4gIGdldEZvcm1GaWVsZHNJbnZhbGlkQ29udHJvbHMoZm9ybVRvSW52ZXN0aWdhdGU6IEZvcm1Hcm91cCB8IEZvcm1BcnJheSkge1xuICAgIHZhciBjb250cm9sczogYW55W10gPSBbXTtcblxuICAgIGxldCByZWN1cnNpdmVGdW5jID0gKGZvcm06IEZvcm1Hcm91cCB8IEZvcm1BcnJheSkgPT4ge1xuICAgICAgT2JqZWN0LmtleXMoZm9ybS5jb250cm9scykuZm9yRWFjaCgoZmllbGQ6IGFueSkgPT4ge1xuICAgICAgICBjb25zdCBjb250cm9sID0gZm9ybS5nZXQoZmllbGQpO1xuICAgICAgICBpZiAoY29udHJvbC5pbnZhbGlkKSB7XG4gICAgICAgICAgY29udHJvbHMucHVzaCh7XG4gICAgICAgICAgICBrZXk6IGZpZWxkLFxuICAgICAgICAgICAgaW52YWxpZDogdHJ1ZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnRyb2xzLnB1c2goe1xuICAgICAgICAgICAga2V5OiBmaWVsZCxcbiAgICAgICAgICAgIGludmFsaWQ6IGZhbHNlXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtR3JvdXApIHtcbiAgICAgICAgICByZWN1cnNpdmVGdW5jKGNvbnRyb2wpO1xuICAgICAgICB9IGVsc2UgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQXJyYXkpIHtcbiAgICAgICAgICByZWN1cnNpdmVGdW5jKGNvbnRyb2wpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgcmVjdXJzaXZlRnVuYyhmb3JtVG9JbnZlc3RpZ2F0ZSk7XG5cbiAgICByZXR1cm4gY29udHJvbHM7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIE5vV2hpdGVzcGFjZXNWYWxpZGF0b3IoKTogVmFsaWRhdG9yRm4ge1xuICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgICBjb25zdCB2YWx1ZSA9IGNvbnRyb2wudmFsdWU7XG5cbiAgICBpZiAoIXZhbHVlIHx8IHR5cGVvZiB2YWx1ZSAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIGhhc1doaXRlc3BhY2VzT25seSh2YWx1ZSkgPyB7IG9ubHlXaGl0ZXNwYWNlczogdHJ1ZSB9IDogbnVsbDtcbiAgfTtcbn1cbiJdfQ==
|
|
116
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12aWV3LmZvcm0tdmFsaWRhdGlvbnMuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva3dpa2lkLWZvcm1zL3NyYy9saWIvcmVuZGVyZXIvZm9ybS12aWV3L2hlbHBlcnMvZm9ybS12aWV3LmZvcm0tdmFsaWRhdGlvbnMuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFNBQVMsRUFHVCxVQUFVLEVBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQ0wsUUFBUSxFQUNSLG9CQUFvQixFQUNwQixrQkFBa0IsRUFDbEIsZUFBZSxFQUNmLFNBQVMsRUFDVixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE1BQU0sVUFBVSxzQkFBc0I7SUFDcEMsT0FBTyxDQUFDLE9BQXdCLEVBQTJCLEVBQUU7UUFDM0QsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUUxQixJQUFJLENBQUMsS0FBSyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtZQUN2QyxPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsT0FBTyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUN0RSxDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxPQUFPLGNBQWM7SUFFekIsc0JBQXNCLENBQUMsS0FBVTtRQUMvQixNQUFNLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFFdEIsSUFDRSxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsWUFBWSxDQUFDO1lBQ3pDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDO1lBQzdDLGVBQWUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUNyQztZQUNBLFVB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QUFPLEVBQUUsS0FBSztxQkFDZixDQUFDLENBQUM7aUJBQ0o7Z0JBQ0QsSUFBSSxPQUFPLFlBQVksU0FBUyxFQUFFO29CQUNoQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7aUJBQ3hCO3FCQUFNLElBQUksT0FBTyxZQUFZLFNBQVMsRUFBRTtvQkFDdkMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2lCQUN4QjtZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDO1FBRUYsYUFBYSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFakMsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztDQUNGO0FBdEhDO0lBREMsU0FBUzs0REFnRVQ7QUFHRDtJQURDLFNBQVM7bUVBcUJUO0FBR0Q7SUFEQyxTQUFTO2tFQTZCVCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgRm9ybUFycmF5LFxuICBGb3JtR3JvdXAsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvckZuLFxuICBWYWxpZGF0b3JzXG59IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHtcbiAgUEFUVEVSTlMsXG4gIGNoZWNrT2JqZWN0S2V5RXhpc3RzLFxuICBoYXNXaGl0ZXNwYWNlc09ubHksXG4gIGlzTm90RW1wdHlWYWx1ZSxcbiAgbG9nTWV0aG9kXG59IGZyb20gXCJrd2lraWQtdG9vbGtpdFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gTm9XaGl0ZXNwYWNlc1ZhbGlkYXRvcigpOiBWYWxpZGF0b3JGbiB7XG4gIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xuICAgIGNvbnN0IHsgdmFsdWUgfSA9IGNvbnRyb2w7XG5cbiAgICBpZiAoIXZhbHVlIHx8IHR5cGVvZiB2YWx1ZSAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIGhhc1doaXRlc3BhY2VzT25seSh2YWx1ZSkgPyB7IG9ubHlXaGl0ZXNwYWNlczogdHJ1ZSB9IDogbnVsbDtcbiAgfTtcbn1cblxuZXhwb3J0IGNsYXNzIEZvcm1WYWxpZGF0aW9uIHtcbiAgQGxvZ01ldGhvZFxuICBnZXRGb3JtRmllbGRWYWxpZGF0b3JzKGZpZWxkOiBhbnkpIHtcbiAgICBjb25zdCB2YWxpZGF0b3JzID0gW107XG5cbiAgICBpZiAoXG4gICAgICBjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJ2YWxpZGF0b3JzXCIpICYmXG4gICAgICBjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZC52YWxpZGF0b3JzLCBcIm1pblwiKSAmJlxuICAgICAgaXNOb3RFbXB0eVZhbHVlKGZpZWxkLnZhbGlkYXRvcnMubWluKVxuICAgICkge1xuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWluKGZpZWxkLnZhbGlkYXRvcnMubWluKSk7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcInZhbGlkYXRvcnNcIikgJiZcbiAgICAgIGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLnZhbGlkYXRvcnMsIFwibWF4XCIpICYmXG4gICAgICBpc05vdEVtcHR5VmFsdWUoZmllbGQudmFsaWRhdG9ycy5tYXgpXG4gICAgKSB7XG4gICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5tYXgoZmllbGQudmFsaWRhdG9ycy5tYXgpKTtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcInJlcXVpcmVkXCIpICYmIGZpZWxkLnJlcXVpcmVkKSB8fFxuICAgICAgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcInZhbGlkYXRvcnNcIikgJiZcbiAgICAgICAgY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQudmFsaWRhdG9ycywgXCJyZXF1aXJlZFwiKSAmJlxuICAgICAgICBmaWVsZC52YWxpZGF0b3JzLnJlcXVpcmVkKVxuICAgICkge1xuICAgICAgdmFsaWRhdG9ycy5wdXNoKE5vV2hpdGVzcGFjZXNWYWxpZGF0b3IoKSk7XG4gICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcInZhbGlkYXRvcnNcIikgJiZcbiAgICAgIGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLnZhbGlkYXRvcnMsIFwibWluTGVuZ3RoXCIpICYmXG4gICAgICBpc05vdEVtcHR5VmFsdWUoZmllbGQudmFsaWRhdG9ycy5taW5MZW5ndGgpXG4gICAgKSB7XG4gICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5taW5MZW5ndGgoZmllbGQudmFsaWRhdG9ycy5taW5MZW5ndGgpKTtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIFwidmFsaWRhdG9yc1wiKSAmJlxuICAgICAgY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQudmFsaWRhdG9ycywgXCJtYXhMZW5ndGhcIikgJiZcbiAgICAgIGlzTm90RW1wdHlWYWx1ZShmaWVsZC52YWxpZGF0b3JzLm1heExlbmd0aClcbiAgICApIHtcbiAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLm1heExlbmd0aChmaWVsZC52YWxpZGF0b3JzLm1heExlbmd0aCkpO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICBjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJ2YWxpZGF0b3JzXCIpICYmXG4gICAgICBjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZC52YWxpZGF0b3JzLCBcInBhdHRlcm5cIikgJiZcbiAgICAgIGlzTm90RW1wdHlWYWx1ZShmaWVsZC52YWxpZGF0b3JzLnBhdHRlcm4pXG4gICAgKSB7XG4gICAgICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQudmFsaWRhdG9ycy5wYXR0ZXJuLCBcImtleVwiKSkge1xuICAgICAgICBpZiAoZmllbGQudmFsaWRhdG9ycy5wYXR0ZXJuLmtleSA9PT0gXCJDVVNUT01cIikge1xuICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLnBhdHRlcm4oZmllbGQudmFsaWRhdG9ycy5wYXR0ZXJuLnBhdHRlcm4pKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goXG4gICAgICAgICAgICBWYWxpZGF0b3JzLnBhdHRlcm4oUEFUVEVSTlNbZmllbGQudmFsaWRhdG9ycy5wYXR0ZXJuLmtleV0pXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoXG4gICAgICBjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJ2YWxpZGF0b3JzXCIpICYmXG4gICAgICBjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZC52YWxpZGF0b3JzLCBcIndoaXRlc3BhY2VcIilcbiAgICApIHtcbiAgICAgIHZhbGlkYXRvcnMucHVzaChOb1doaXRlc3BhY2VzVmFsaWRhdG9yKCkpO1xuICAgIH1cblxuICAgIHJldHVybiB2YWxpZGF0b3JzO1xuICB9XG5cbiAgQGxvZ01ldGhvZFxuICBnZXRGb3JtRmllbGRzVmFsaWRhdGlvbkVycm9ycyhcbiAgICBmb3JtR3JvdXA6IEZvcm1Hcm91cFxuICApOiB7IG5hbWU6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9W10ge1xuICAgIGNvbnN0IGVycm9yczogeyBuYW1lOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfVtdID0gW107XG5cbiAgICBmb3IgKGNvbnN0IGtleSBpbiBmb3JtR3JvdXAuY29udHJvbHMpIHtcbiAgICAgIGlmIChpc05vdEVtcHR5VmFsdWUoa2V5KSkge1xuICAgICAgICBjb25zdCBjb250cm9sRXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzID0gZm9ybUdyb3VwLmNvbnRyb2xzW2tleV0uZXJyb3JzO1xuICAgICAgICBpZiAoY29udHJvbEVycm9ycyAhPT0gbnVsbCAmJiBjb250cm9sRXJyb3JzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBPYmplY3Qua2V5cyhjb250cm9sRXJyb3JzKS5mb3JFYWNoKChrZXlFcnJvcikgPT4ge1xuICAgICAgICAgICAgZXJyb3JzLnB1c2goe1xuICAgICAgICAgICAgICBuYW1lOiBrZXlFcnJvcixcbiAgICAgICAgICAgICAgdmFsdWU6IGNvbnRyb2xFcnJvcnNba2V5RXJyb3JdXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBlcnJvcnM7XG4gIH1cblxuICBAbG9nTWV0aG9kXG4gIGdldEZvcm1GaWVsZHNJbnZhbGlkQ29udHJvbHMoZm9ybVRvSW52ZXN0aWdhdGU6IEZvcm1Hcm91cCB8IEZvcm1BcnJheSkge1xuICAgIGNvbnN0IGNvbnRyb2xzOiBhbnlbXSA9IFtdO1xuXG4gICAgY29uc3QgcmVjdXJzaXZlRnVuYyA9IChmb3JtOiBGb3JtR3JvdXAgfCBGb3JtQXJyYXkpID0+IHtcbiAgICAgIE9iamVjdC5rZXlzKGZvcm0uY29udHJvbHMpLmZvckVhY2goKGZpZWxkOiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgY29udHJvbCA9IGZvcm0uZ2V0KGZpZWxkKTtcbiAgICAgICAgaWYgKGNvbnRyb2wuaW52YWxpZCkge1xuICAgICAgICAgIGNvbnRyb2xzLnB1c2goe1xuICAgICAgICAgICAga2V5OiBmaWVsZCxcbiAgICAgICAgICAgIGludmFsaWQ6IHRydWVcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb250cm9scy5wdXNoKHtcbiAgICAgICAgICAgIGtleTogZmllbGQsXG4gICAgICAgICAgICBpbnZhbGlkOiBmYWxzZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUdyb3VwKSB7XG4gICAgICAgICAgcmVjdXJzaXZlRnVuYyhjb250cm9sKTtcbiAgICAgICAgfSBlbHNlIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUFycmF5KSB7XG4gICAgICAgICAgcmVjdXJzaXZlRnVuYyhjb250cm9sKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfTtcblxuICAgIHJlY3Vyc2l2ZUZ1bmMoZm9ybVRvSW52ZXN0aWdhdGUpO1xuXG4gICAgcmV0dXJuIGNvbnRyb2xzO1xuICB9XG59XG4iXX0=
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { __awaiter, __decorate } from "tslib";
|
|
2
|
+
/* eslint-disable no-unused-vars */
|
|
3
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
2
4
|
import { Action, Condition, logMethod, Rule } from "kwikid-toolkit";
|
|
3
5
|
export class Tasks {
|
|
4
6
|
constructor(task, object, takeAction) {
|
|
@@ -8,11 +10,9 @@ export class Tasks {
|
|
|
8
10
|
}
|
|
9
11
|
execute() {
|
|
10
12
|
return __awaiter(this, void 0, void 0, function* () {
|
|
11
|
-
const triggers = this._task
|
|
12
|
-
const rules = this._task.rules;
|
|
13
|
-
const actions = this._task.actions;
|
|
13
|
+
const { triggers, rules, actions } = this._task;
|
|
14
14
|
const rulesMapping = new Rule(rules, this._object).mapping();
|
|
15
|
-
for (
|
|
15
|
+
for (const action of actions) {
|
|
16
16
|
const conditionEvaluation = new Condition(action.condition, rulesMapping).evaluate();
|
|
17
17
|
if (conditionEvaluation) {
|
|
18
18
|
const actions = new Action(action, rulesMapping, this._object, this._takeAction);
|
|
@@ -25,4 +25,4 @@ export class Tasks {
|
|
|
25
25
|
__decorate([
|
|
26
26
|
logMethod
|
|
27
27
|
], Tasks.prototype, "execute", null);
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12aWV3LnRhc2tzLmhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2t3aWtpZC1mb3Jtcy9zcmMvbGliL3JlbmRlcmVyL2Zvcm0tdmlldy9oZWxwZXJzL2Zvcm0tdmlldy50YXNrcy5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLG1DQUFtQztBQUNuQyxzREFBc0Q7QUFDdEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXBFLE1BQU0sT0FBTyxLQUFLO0lBT2hCLFlBQVksSUFBUyxFQUFFLE1BQVcsRUFBRSxVQUFlO1FBQ2pELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDO0lBQ2hDLENBQUM7SUFHSyxPQUFPOztZQUNYLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7WUFFaEQsTUFBTSxZQUFZLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUU3RCxLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sRUFBRTtnQkFDNUIsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLFNBQVMsQ0FDdkMsTUFBTSxDQUFDLFNBQVMsRUFDaEIsWUFBWSxDQUNiLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBRWIsSUFBSSxtQkFBbUIsRUFBRTtvQkFDdkIsTUFBTSxPQUFPLEdBQUcsSUFBSSxNQUFNLENBQ3hCLE1BQU0sRUFDTixZQUFZLEVBQ1osSUFBSSxDQUFDLE9BQU8sRUFDWixJQUFJLENBQUMsV0FBVyxDQUNqQixDQUFDO29CQUVGLE1BQU0sT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO2lCQUN6QjthQUNGO1FBQ0gsQ0FBQztLQUFBO0NBQ0Y7QUF2QkM7SUFEQyxTQUFTO29DQXVCVCIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC12YXJzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMgKi9cbmltcG9ydCB7IEFjdGlvbiwgQ29uZGl0aW9uLCBsb2dNZXRob2QsIFJ1bGUgfSBmcm9tIFwia3dpa2lkLXRvb2xraXRcIjtcblxuZXhwb3J0IGNsYXNzIFRhc2tzIHtcbiAgcHJpdmF0ZSBfb2JqZWN0OiBhbnk7XG5cbiAgcHJpdmF0ZSBfdGFzazogYW55O1xuXG4gIHByaXZhdGUgX3Rha2VBY3Rpb246IGFueTtcblxuICBjb25zdHJ1Y3Rvcih0YXNrOiBhbnksIG9iamVjdDogYW55LCB0YWtlQWN0aW9uOiBhbnkpIHtcbiAgICB0aGlzLl90YXNrID0gdGFzaztcbiAgICB0aGlzLl9vYmplY3QgPSBvYmplY3Q7XG4gICAgdGhpcy5fdGFrZUFjdGlvbiA9IHRha2VBY3Rpb247XG4gIH1cblxuICBAbG9nTWV0aG9kXG4gIGFzeW5jIGV4ZWN1dGUoKSB7XG4gICAgY29uc3QgeyB0cmlnZ2VycywgcnVsZXMsIGFjdGlvbnMgfSA9IHRoaXMuX3Rhc2s7XG5cbiAgICBjb25zdCBydWxlc01hcHBpbmcgPSBuZXcgUnVsZShydWxlcywgdGhpcy5fb2JqZWN0KS5tYXBwaW5nKCk7XG5cbiAgICBmb3IgKGNvbnN0IGFjdGlvbiBvZiBhY3Rpb25zKSB7XG4gICAgICBjb25zdCBjb25kaXRpb25FdmFsdWF0aW9uID0gbmV3IENvbmRpdGlvbihcbiAgICAgICAgYWN0aW9uLmNvbmRpdGlvbixcbiAgICAgICAgcnVsZXNNYXBwaW5nXG4gICAgICApLmV2YWx1YXRlKCk7XG5cbiAgICAgIGlmIChjb25kaXRpb25FdmFsdWF0aW9uKSB7XG4gICAgICAgIGNvbnN0IGFjdGlvbnMgPSBuZXcgQWN0aW9uKFxuICAgICAgICAgIGFjdGlvbixcbiAgICAgICAgICBydWxlc01hcHBpbmcsXG4gICAgICAgICAgdGhpcy5fb2JqZWN0LFxuICAgICAgICAgIHRoaXMuX3Rha2VBY3Rpb25cbiAgICAgICAgKTtcblxuICAgICAgICBhd2FpdCBhY3Rpb25zLmV4ZWN1dGUoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
|