kwikid-forms 0.0.0-watch
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 +44 -0
- package/assets/done1.png +0 -0
- package/assets/edit.png +0 -0
- package/assets/lock.png +0 -0
- package/esm2015/kwikid-forms.js +5 -0
- package/esm2015/lib/builder/builder.component.js +138 -0
- package/esm2015/lib/builder/builder.module.js +21 -0
- package/esm2015/lib/kwikid-forms.module.js +53 -0
- package/esm2015/lib/renderer/form-view/definitions/actions/form-view.actions.enum.definitions.js +16 -0
- package/esm2015/lib/renderer/form-view/definitions/actions/form-view.actions.type.definitions.js +2 -0
- package/esm2015/lib/renderer/form-view/definitions/apis/form-view.apis.enum.definitions.js +8 -0
- package/esm2015/lib/renderer/form-view/definitions/apis/form-view.apis.type.definitions.js +2 -0
- package/esm2015/lib/renderer/form-view/definitions/common/form-view.common.enum.definitions.js +47 -0
- package/esm2015/lib/renderer/form-view/definitions/common/form-view.common.type.definitions.js +2 -0
- package/esm2015/lib/renderer/form-view/definitions/fields/form-view.fields.enum.definitions.js +15 -0
- package/esm2015/lib/renderer/form-view/definitions/fields/form-view.fields.type.definitions.js +2 -0
- package/esm2015/lib/renderer/form-view/definitions/rules/form-view.rules.enum.definitions.js +7 -0
- package/esm2015/lib/renderer/form-view/definitions/rules/form-view.rules.type.definitions.js +2 -0
- package/esm2015/lib/renderer/form-view/definitions/sources/form-view.sources.enum.definitions.js +16 -0
- package/esm2015/lib/renderer/form-view/definitions/sources/form-view.sources.type.definitions.js +2 -0
- package/esm2015/lib/renderer/form-view/definitions/triggers/form-view.triggers.type.definitions.js +2 -0
- package/esm2015/lib/renderer/form-view/definitions/validations/form-view.validations.type.definitions.js +2 -0
- package/esm2015/lib/renderer/form-view/form-view.component.js +654 -0
- package/esm2015/lib/renderer/form-view/form-view.decorators.js +93 -0
- package/esm2015/lib/renderer/form-view/form-view.module.js +37 -0
- package/esm2015/lib/renderer/form-view/form-view.service.js +27 -0
- package/esm2015/lib/renderer/form-view/helpers/form-view.actions.helper.js +27 -0
- package/esm2015/lib/renderer/form-view/helpers/form-view.apis.helper.js +105 -0
- package/esm2015/lib/renderer/form-view/helpers/form-view.common.helper.js +136 -0
- package/esm2015/lib/renderer/form-view/helpers/form-view.condition.helper.js +46 -0
- package/esm2015/lib/renderer/form-view/helpers/form-view.defaults.helper.js +52 -0
- package/esm2015/lib/renderer/form-view/helpers/form-view.fields.helper.js +146 -0
- package/esm2015/lib/renderer/form-view/helpers/form-view.rules.helper.js +86 -0
- package/esm2015/lib/renderer/form-view/helpers/form-view.sources.helper.js +161 -0
- package/esm2015/lib/renderer/form-view/helpers/form-view.validations.helper.js +156 -0
- package/esm2015/lib/renderer/forms-list/forms-list.component.js +61 -0
- package/esm2015/lib/renderer/forms-list/forms-list.helper.js +4 -0
- package/esm2015/lib/renderer/forms-list/forms-list.module.js +37 -0
- package/esm2015/lib/renderer/renderer.component.js +201 -0
- package/esm2015/lib/renderer/renderer.config-converter.helper.js +530 -0
- package/esm2015/lib/renderer/renderer.helper.js +50 -0
- package/esm2015/lib/renderer/renderer.module.js +39 -0
- package/esm2015/lib/renderer/renderer.service.js +115 -0
- package/esm2015/public_api.js +17 -0
- package/fesm2015/kwikid-forms.js +2970 -0
- package/fesm2015/kwikid-forms.js.map +1 -0
- package/kwikid-forms.d.ts +5 -0
- package/lib/builder/builder.component.d.ts +68 -0
- package/lib/builder/builder.module.d.ts +10 -0
- package/lib/kwikid-forms.module.d.ts +13 -0
- package/lib/renderer/form-view/definitions/actions/form-view.actions.enum.definitions.d.ts +14 -0
- package/lib/renderer/form-view/definitions/actions/form-view.actions.type.definitions.d.ts +91 -0
- package/lib/renderer/form-view/definitions/apis/form-view.apis.enum.definitions.d.ts +6 -0
- package/lib/renderer/form-view/definitions/apis/form-view.apis.type.definitions.d.ts +40 -0
- package/lib/renderer/form-view/definitions/common/form-view.common.enum.definitions.d.ts +43 -0
- package/lib/renderer/form-view/definitions/common/form-view.common.type.definitions.d.ts +7 -0
- package/lib/renderer/form-view/definitions/fields/form-view.fields.enum.definitions.d.ts +13 -0
- package/lib/renderer/form-view/definitions/fields/form-view.fields.type.definitions.d.ts +137 -0
- package/lib/renderer/form-view/definitions/rules/form-view.rules.enum.definitions.d.ts +5 -0
- package/lib/renderer/form-view/definitions/rules/form-view.rules.type.definitions.d.ts +41 -0
- package/lib/renderer/form-view/definitions/sources/form-view.sources.enum.definitions.d.ts +13 -0
- package/lib/renderer/form-view/definitions/sources/form-view.sources.type.definitions.d.ts +16 -0
- package/lib/renderer/form-view/definitions/triggers/form-view.triggers.type.definitions.d.ts +1 -0
- package/lib/renderer/form-view/definitions/validations/form-view.validations.type.definitions.d.ts +17 -0
- package/lib/renderer/form-view/form-view.component.d.ts +66 -0
- package/lib/renderer/form-view/form-view.decorators.d.ts +7 -0
- package/lib/renderer/form-view/form-view.module.d.ts +11 -0
- package/lib/renderer/form-view/form-view.service.d.ts +5 -0
- package/lib/renderer/form-view/helpers/form-view.actions.helper.d.ts +13 -0
- package/lib/renderer/form-view/helpers/form-view.apis.helper.d.ts +17 -0
- package/lib/renderer/form-view/helpers/form-view.common.helper.d.ts +19 -0
- package/lib/renderer/form-view/helpers/form-view.condition.helper.d.ts +8 -0
- package/lib/renderer/form-view/helpers/form-view.defaults.helper.d.ts +10 -0
- package/lib/renderer/form-view/helpers/form-view.fields.helper.d.ts +20 -0
- package/lib/renderer/form-view/helpers/form-view.rules.helper.d.ts +12 -0
- package/lib/renderer/form-view/helpers/form-view.sources.helper.d.ts +29 -0
- package/lib/renderer/form-view/helpers/form-view.validations.helper.d.ts +25 -0
- package/lib/renderer/forms-list/forms-list.component.d.ts +18 -0
- package/lib/renderer/forms-list/forms-list.helper.d.ts +1 -0
- package/lib/renderer/forms-list/forms-list.module.d.ts +11 -0
- package/lib/renderer/renderer.component.d.ts +30 -0
- package/lib/renderer/renderer.config-converter.helper.d.ts +7 -0
- package/lib/renderer/renderer.helper.d.ts +6 -0
- package/lib/renderer/renderer.module.d.ts +12 -0
- package/lib/renderer/renderer.service.d.ts +27 -0
- package/package.json +47 -0
- package/public_api.d.ts +9 -0
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
import { hasKey, isNotEmpty } from "./form-view.common.helper";
|
|
3
|
+
export const findFieldFromKey = (fields, key) => {
|
|
4
|
+
const field = fields.find((field) => {
|
|
5
|
+
if (field.key === key) {
|
|
6
|
+
return field;
|
|
7
|
+
}
|
|
8
|
+
});
|
|
9
|
+
return field;
|
|
10
|
+
};
|
|
11
|
+
export const findFieldIndexFromKey = (fields, key) => {
|
|
12
|
+
let fieldIndex;
|
|
13
|
+
fieldIndex = fields.findIndex((_) => {
|
|
14
|
+
return key === _.key;
|
|
15
|
+
});
|
|
16
|
+
return fieldIndex;
|
|
17
|
+
};
|
|
18
|
+
export const getSearchTextOptionsFromRemoteFile = (field, childField, formGroup) => __awaiter(void 0, void 0, void 0, function* () {
|
|
19
|
+
const parentFieldValue = formGroup.controls[field.key].value;
|
|
20
|
+
// Determine the URL of the remote file to fetch
|
|
21
|
+
let fileUrl;
|
|
22
|
+
if (childField.regexToGetJsonRemoteUrlKey) {
|
|
23
|
+
const fileKey = parentFieldValue.match(childField.regexToGetJsonRemoteUrlKey)[0];
|
|
24
|
+
fileUrl = childField.jsonRemoteUrlMapping[fileKey];
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
fileUrl = childField.fileUrl;
|
|
28
|
+
}
|
|
29
|
+
// Return early if there is no file URL
|
|
30
|
+
if (!fileUrl)
|
|
31
|
+
return;
|
|
32
|
+
// Fetch the remote file and parse its JSON data
|
|
33
|
+
const response = yield fetch(fileUrl);
|
|
34
|
+
const data = yield response.json();
|
|
35
|
+
// Return the data for the given parent field value
|
|
36
|
+
return data[parentFieldValue];
|
|
37
|
+
});
|
|
38
|
+
export const getSearchTextOptionsFromFieldConfig = (field, childField, formGroup) => {
|
|
39
|
+
let options;
|
|
40
|
+
const fieldValue = formGroup.controls[field.key].value;
|
|
41
|
+
if (isNotEmpty(childField["json"])) {
|
|
42
|
+
options = childField["json"][fieldValue];
|
|
43
|
+
}
|
|
44
|
+
return options;
|
|
45
|
+
};
|
|
46
|
+
export const formatSearchTextOptions = (options) => {
|
|
47
|
+
return options.map(({ title }) => title);
|
|
48
|
+
};
|
|
49
|
+
export const formatDateToStandardFormat = (date) => {
|
|
50
|
+
let formattedDate;
|
|
51
|
+
let year = date.year;
|
|
52
|
+
let month = date.month;
|
|
53
|
+
let day = date.day;
|
|
54
|
+
formattedDate = `${day}-${month + 1}-${year}`;
|
|
55
|
+
return formattedDate;
|
|
56
|
+
};
|
|
57
|
+
export function highlightFieldError(field, error) {
|
|
58
|
+
field.invalid = error;
|
|
59
|
+
field.focus = error;
|
|
60
|
+
// if (!error) {
|
|
61
|
+
// field["messages"] = field["messages"].filter(function (fieldMessage: {
|
|
62
|
+
// type: string;
|
|
63
|
+
// message: string;
|
|
64
|
+
// }) {
|
|
65
|
+
// return fieldMessage.type === "error";
|
|
66
|
+
// });
|
|
67
|
+
// }
|
|
68
|
+
return field;
|
|
69
|
+
}
|
|
70
|
+
export const addMessage = (field, message) => {
|
|
71
|
+
const isDuplicateMessage = (messages, message) => {
|
|
72
|
+
return messages.some((fieldMessage) => {
|
|
73
|
+
return (fieldMessage.type === message.type &&
|
|
74
|
+
fieldMessage.message === message.message);
|
|
75
|
+
});
|
|
76
|
+
};
|
|
77
|
+
field["messages"] = [];
|
|
78
|
+
if (hasKey(field, "messages")) {
|
|
79
|
+
if (!isDuplicateMessage(field["messages"], message)) {
|
|
80
|
+
field["messages"].push({
|
|
81
|
+
type: message.type,
|
|
82
|
+
message: message.message
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
field["messages"] = [{ type: message.type, message: message.message }];
|
|
88
|
+
}
|
|
89
|
+
return field;
|
|
90
|
+
};
|
|
91
|
+
export const removeMessage = (field, message) => {
|
|
92
|
+
field["messages"] = field["messages"].filter(function (fieldMessage) {
|
|
93
|
+
return fieldMessage.type !== message.type;
|
|
94
|
+
});
|
|
95
|
+
return field;
|
|
96
|
+
};
|
|
97
|
+
export function setFieldError(fields, errors, key, error) {
|
|
98
|
+
const fieldIndex = fields.findIndex((field) => {
|
|
99
|
+
return field.key === key;
|
|
100
|
+
});
|
|
101
|
+
const setErrorMessages = (field, errors) => {
|
|
102
|
+
const getErrorMessage = (fieldLabel, errorType) => {
|
|
103
|
+
let errorMessage = "";
|
|
104
|
+
switch (errorType) {
|
|
105
|
+
case "required":
|
|
106
|
+
errorMessage = `${fieldLabel} is required!`;
|
|
107
|
+
break;
|
|
108
|
+
case "pattern":
|
|
109
|
+
errorMessage = `${fieldLabel} has wrong pattern!`;
|
|
110
|
+
break;
|
|
111
|
+
case "email":
|
|
112
|
+
errorMessage = `${fieldLabel} has wrong email format!`;
|
|
113
|
+
break;
|
|
114
|
+
case "minlength":
|
|
115
|
+
errorMessage = `${fieldLabel} has wrong length! Required minimum length: ${field.validators.minLength}`;
|
|
116
|
+
break;
|
|
117
|
+
case "maxlength":
|
|
118
|
+
errorMessage = `${fieldLabel} has wrong length! Required maximum length: ${field.validators.maxLength}`;
|
|
119
|
+
break;
|
|
120
|
+
case "areEqual":
|
|
121
|
+
errorMessage = `${fieldLabel} must be equal!`;
|
|
122
|
+
break;
|
|
123
|
+
default:
|
|
124
|
+
errorMessage = `${fieldLabel}: ${"error.error_name"}: ${"error.error_value"}`;
|
|
125
|
+
break;
|
|
126
|
+
}
|
|
127
|
+
return errorMessage;
|
|
128
|
+
};
|
|
129
|
+
Object.keys(errors).forEach((error) => {
|
|
130
|
+
field = addMessage(field, {
|
|
131
|
+
type: "error",
|
|
132
|
+
message: getErrorMessage(field.label, error)
|
|
133
|
+
});
|
|
134
|
+
});
|
|
135
|
+
return field;
|
|
136
|
+
};
|
|
137
|
+
if (error) {
|
|
138
|
+
fields[fieldIndex] = setErrorMessages(fields[fieldIndex], errors);
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
fields[fieldIndex]["messages"] = [];
|
|
142
|
+
}
|
|
143
|
+
fields[fieldIndex] = highlightFieldError(fields[fieldIndex], error);
|
|
144
|
+
return fields;
|
|
145
|
+
}
|
|
146
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12aWV3LmZpZWxkcy5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtZm9ybXMvc3JjL2xpYi9yZW5kZXJlci9mb3JtLXZpZXcvaGVscGVycy9mb3JtLXZpZXcuZmllbGRzLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUUvRCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLE1BQWEsRUFBRSxHQUFXLEVBQUUsRUFBRTtJQUM3RCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7UUFDbEMsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLEdBQUcsRUFBRTtZQUNyQixPQUFPLEtBQUssQ0FBQztTQUNkO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLENBQUMsTUFBYSxFQUFFLEdBQVcsRUFBRSxFQUFFO0lBQ2xFLElBQUksVUFBa0IsQ0FBQztJQUV2QixVQUFVLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFO1FBQ3ZDLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDdkIsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLFVBQVUsQ0FBQztBQUNwQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxrQ0FBa0MsR0FBRyxDQUNoRCxLQUFVLEVBQ1YsVUFBZSxFQUNmLFNBQWMsRUFDQSxFQUFFO0lBQ2hCLE1BQU0sZ0JBQWdCLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBRTdE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QUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQyxDQUFDO0lBRUYsSUFBSSxLQUFLLEVBQUU7UUFDVCxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0tBQ25FO1NBQU07UUFDTCxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDO0tBQ3JDO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUVwRSxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHVpRGF5IH0gZnJvbSBcIkB0YWlnYS11aS9jZGtcIjtcclxuaW1wb3J0IHsgaGFzS2V5LCBpc05vdEVtcHR5IH0gZnJvbSBcIi4vZm9ybS12aWV3LmNvbW1vbi5oZWxwZXJcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBmaW5kRmllbGRGcm9tS2V5ID0gKGZpZWxkczogYW55W10sIGtleTogc3RyaW5nKSA9PiB7XHJcbiAgY29uc3QgZmllbGQgPSBmaWVsZHMuZmluZCgoZmllbGQpID0+IHtcclxuICAgIGlmIChmaWVsZC5rZXkgPT09IGtleSkge1xyXG4gICAgICByZXR1cm4gZmllbGQ7XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG4gIHJldHVybiBmaWVsZDtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBmaW5kRmllbGRJbmRleEZyb21LZXkgPSAoZmllbGRzOiBhbnlbXSwga2V5OiBzdHJpbmcpID0+IHtcclxuICBsZXQgZmllbGRJbmRleDogbnVtYmVyO1xyXG5cclxuICBmaWVsZEluZGV4ID0gZmllbGRzLmZpbmRJbmRleCgoXzogYW55KSA9PiB7XHJcbiAgICByZXR1cm4ga2V5ID09PSBfLmtleTtcclxuICB9KTtcclxuXHJcbiAgcmV0dXJuIGZpZWxkSW5kZXg7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgZ2V0U2VhcmNoVGV4dE9wdGlvbnNGcm9tUmVtb3RlRmlsZSA9IGFzeW5jIChcclxuICBmaWVsZDogYW55LFxyXG4gIGNoaWxkRmllbGQ6IGFueSxcclxuICBmb3JtR3JvdXA6IGFueVxyXG4pOiBQcm9taXNlPGFueT4gPT4ge1xyXG4gIGNvbnN0IHBhcmVudEZpZWxkVmFsdWUgPSBmb3JtR3JvdXAuY29udHJvbHNbZmllbGQua2V5XS52YWx1ZTtcclxuXHJcbiAgLy8gRGV0ZXJtaW5lIHRoZSBVUkwgb2YgdGhlIHJlbW90ZSBmaWxlIHRvIGZldGNoXHJcbiAgbGV0IGZpbGVVcmw6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBpZiAoY2hpbGRGaWVsZC5yZWdleFRvR2V0SnNvblJlbW90ZVVybEtleSkge1xyXG4gICAgY29uc3QgZmlsZUtleSA9IHBhcmVudEZpZWxkVmFsdWUubWF0Y2goXHJcbiAgICAgIGNoaWxkRmllbGQucmVnZXhUb0dldEpzb25SZW1vdGVVcmxLZXlcclxuICAgIClbMF07XHJcbiAgICBmaWxlVXJsID0gY2hpbGRGaWVsZC5qc29uUmVtb3RlVXJsTWFwcGluZ1tmaWxlS2V5XTtcclxuICB9IGVsc2Uge1xyXG4gICAgZmlsZVVybCA9IGNoaWxkRmllbGQuZmlsZVVybDtcclxuICB9XHJcblxyXG4gIC8vIFJldHVybiBlYXJseSBpZiB0aGVyZSBpcyBubyBmaWxlIFVSTFxyXG4gIGlmICghZmlsZVVybCkgcmV0dXJuO1xyXG5cclxuICAvLyBGZXRjaCB0aGUgcmVtb3RlIGZpbGUgYW5kIHBhcnNlIGl0cyBKU09OIGRhdGFcclxuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKGZpbGVVcmwpO1xyXG4gIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XHJcblxyXG4gIC8vIFJldHVybiB0aGUgZGF0YSBmb3IgdGhlIGdpdmVuIHBhcmVudCBmaWVsZCB2YWx1ZVxyXG4gIHJldHVybiBkYXRhW3BhcmVudEZpZWxkVmFsdWVdO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGdldFNlYXJjaFRleHRPcHRpb25zRnJvbUZpZWxkQ29uZmlnID0gKFxyXG4gIGZpZWxkOiBhbnksXHJcbiAgY2hpbGRGaWVsZDogYW55LFxyXG4gIGZvcm1Hcm91cDogYW55XHJcbik6IGFueSA9PiB7XHJcbiAgbGV0IG9wdGlvbnM6IGFueTtcclxuXHJcbiAgY29uc3QgZmllbGRWYWx1ZSA9IGZvcm1Hcm91cC5jb250cm9sc1tmaWVsZC5rZXldLnZhbHVlO1xyXG5cclxuICBpZiAoaXNOb3RFbXB0eShjaGlsZEZpZWxkW1wianNvblwiXSkpIHtcclxuICAgIG9wdGlvbnMgPSBjaGlsZEZpZWxkW1wianNvblwiXVtmaWVsZFZhbHVlXTtcclxuICB9XHJcblxyXG4gIHJldHVybiBvcHRpb25zO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGZvcm1hdFNlYXJjaFRleHRPcHRpb25zID0gKFxyXG4gIG9wdGlvbnM6IHsgdGl0bGU6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9W11cclxuKTogc3RyaW5nW10gPT4ge1xyXG4gIHJldHVybiBvcHRpb25zLm1hcCgoeyB0aXRsZSB9KSA9PiB0aXRsZSk7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgZm9ybWF0RGF0ZVRvU3RhbmRhcmRGb3JtYXQgPSAoZGF0ZTogVHVpRGF5KTogc3RyaW5nID0+IHtcclxuICBsZXQgZm9ybWF0dGVkRGF0ZTogc3RyaW5nO1xyXG4gIGxldCB5ZWFyID0gZGF0ZS55ZWFyO1xyXG4gIGxldCBtb250aCA9IGRhdGUubW9udGg7XHJcbiAgbGV0IGRheSA9IGRhdGUuZGF5O1xyXG5cclxuICBmb3JtYXR0ZWREYXRlID0gYCR7ZGF5fS0ke21vbnRoICsgMX0tJHt5ZWFyfWA7XHJcblxyXG4gIHJldHVybiBmb3JtYXR0ZWREYXRlO1xyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGhpZ2hsaWdodEZpZWxkRXJyb3IoZmllbGQ6IGFueSwgZXJyb3I6IGFueSk6IGFueSB7XHJcbiAgZmllbGQuaW52YWxpZCA9IGVycm9yO1xyXG4gIGZpZWxkLmZvY3VzID0gZXJyb3I7XHJcblxyXG4gIC8vIGlmICghZXJyb3IpIHtcclxuICAvLyAgIGZpZWxkW1wibWVzc2FnZXNcIl0gPSBmaWVsZFtcIm1lc3NhZ2VzXCJdLmZpbHRlcihmdW5jdGlvbiAoZmllbGRNZXNzYWdlOiB7XHJcbiAgLy8gICAgIHR5cGU6IHN0cmluZztcclxuICAvLyAgICAgbWVzc2FnZTogc3RyaW5nO1xyXG4gIC8vICAgfSkge1xyXG4gIC8vICAgICByZXR1cm4gZmllbGRNZXNzYWdlLnR5cGUgPT09IFwiZXJyb3JcIjtcclxuICAvLyAgIH0pO1xyXG4gIC8vIH1cclxuXHJcbiAgcmV0dXJuIGZpZWxkO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgYWRkTWVzc2FnZSA9IChcclxuICBmaWVsZDogYW55LFxyXG4gIG1lc3NhZ2U6IHsgdHlwZTogc3RyaW5nOyBtZXNzYWdlOiBzdHJpbmcgfVxyXG4pOiBhbnkgPT4ge1xyXG4gIGNvbnN0IGlzRHVwbGljYXRlTWVzc2FnZSA9IChcclxuICAgIG1lc3NhZ2VzOiB7IHR5cGU6IHN0cmluZzsgbWVzc2FnZTogc3RyaW5nIH1bXSxcclxuICAgIG1lc3NhZ2U6IHsgdHlwZTogc3RyaW5nOyBtZXNzYWdlOiBzdHJpbmcgfVxyXG4gICkgPT4ge1xyXG4gICAgcmV0dXJuIG1lc3NhZ2VzLnNvbWUoKGZpZWxkTWVzc2FnZTogeyB0eXBlOiBzdHJpbmc7IG1lc3NhZ2U6IHN0cmluZyB9KSA9PiB7XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgZmllbGRNZXNzYWdlLnR5cGUgPT09IG1lc3NhZ2UudHlwZSAmJlxyXG4gICAgICAgIGZpZWxkTWVzc2FnZS5tZXNzYWdlID09PSBtZXNzYWdlLm1lc3NhZ2VcclxuICAgICAgKTtcclxuICAgIH0pO1xyXG4gIH07XHJcblxyXG4gIGZpZWxkW1wibWVzc2FnZXNcIl0gPSBbXTtcclxuXHJcbiAgaWYgKGhhc0tleShmaWVsZCwgXCJtZXNzYWdlc1wiKSkge1xyXG4gICAgaWYgKCFpc0R1cGxpY2F0ZU1lc3NhZ2UoZmllbGRbXCJtZXNzYWdlc1wiXSwgbWVzc2FnZSkpIHtcclxuICAgICAgZmllbGRbXCJtZXNzYWdlc1wiXS5wdXNoKHtcclxuICAgICAgICB0eXBlOiBtZXNzYWdlLnR5cGUsXHJcbiAgICAgICAgbWVzc2FnZTogbWVzc2FnZS5tZXNzYWdlXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH0gZWxzZSB7XHJcbiAgICBmaWVsZFtcIm1lc3NhZ2VzXCJdID0gW3sgdHlwZTogbWVzc2FnZS50eXBlLCBtZXNzYWdlOiBtZXNzYWdlLm1lc3NhZ2UgfV07XHJcbiAgfVxyXG5cclxuICByZXR1cm4gZmllbGQ7XHJcbn07XHJcbmV4cG9ydCBjb25zdCByZW1vdmVNZXNzYWdlID0gKFxyXG4gIGZpZWxkOiBhbnksXHJcbiAgbWVzc2FnZTogeyB0eXBlOiBzdHJpbmc7IG1lc3NhZ2U6IHN0cmluZyB9XHJcbik6IGFueSA9PiB7XHJcbiAgZmllbGRbXCJtZXNzYWdlc1wiXSA9IGZpZWxkW1wibWVzc2FnZXNcIl0uZmlsdGVyKGZ1bmN0aW9uIChmaWVsZE1lc3NhZ2UpIHtcclxuICAgIHJldHVybiBmaWVsZE1lc3NhZ2UudHlwZSAhPT0gbWVzc2FnZS50eXBlO1xyXG4gIH0pO1xyXG5cclxuICByZXR1cm4gZmllbGQ7XHJcbn07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc2V0RmllbGRFcnJvcihcclxuICBmaWVsZHM6IGFueSxcclxuICBlcnJvcnM6IGFueSxcclxuICBrZXk6IHN0cmluZyxcclxuICBlcnJvcjogYm9vbGVhblxyXG4pIHtcclxuICBjb25zdCBmaWVsZEluZGV4ID0gZmllbGRzLmZpbmRJbmRleCgoZmllbGQ6IGFueSkgPT4ge1xyXG4gICAgcmV0dXJuIGZpZWxkLmtleSA9PT0ga2V5O1xyXG4gIH0pO1xyXG5cclxuICBjb25zdCBzZXRFcnJvck1lc3NhZ2VzID0gKGZpZWxkOiBhbnksIGVycm9yczogYW55KSA9PiB7XHJcbiAgICBjb25zdCBnZXRFcnJvck1lc3NhZ2UgPSAoZmllbGRMYWJlbDogc3RyaW5nLCBlcnJvclR5cGU6IHN0cmluZykgPT4ge1xyXG4gICAgICBsZXQgZXJyb3JNZXNzYWdlOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICAgICAgc3dpdGNoIChlcnJvclR5cGUpIHtcclxuICAgICAgICBjYXNlIFwicmVxdWlyZWRcIjpcclxuICAgICAgICAgIGVycm9yTWVzc2FnZSA9IGAke2ZpZWxkTGFiZWx9IGlzIHJlcXVpcmVkIWA7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIFwicGF0dGVyblwiOlxyXG4gICAgICAgICAgZXJyb3JNZXNzYWdlID0gYCR7ZmllbGRMYWJlbH0gaGFzIHdyb25nIHBhdHRlcm4hYDtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgXCJlbWFpbFwiOlxyXG4gICAgICAgICAgZXJyb3JNZXNzYWdlID0gYCR7ZmllbGRMYWJlbH0gaGFzIHdyb25nIGVtYWlsIGZvcm1hdCFgO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBcIm1pbmxlbmd0aFwiOlxyXG4gICAgICAgICAgZXJyb3JNZXNzYWdlID0gYCR7ZmllbGRMYWJlbH0gaGFzIHdyb25nIGxlbmd0aCEgUmVxdWlyZWQgbWluaW11bSBsZW5ndGg6ICR7ZmllbGQudmFsaWRhdG9ycy5taW5MZW5ndGh9YDtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgXCJtYXhsZW5ndGhcIjpcclxuICAgICAgICAgIGVycm9yTWVzc2FnZSA9IGAke2ZpZWxkTGFiZWx9IGhhcyB3cm9uZyBsZW5ndGghIFJlcXVpcmVkIG1heGltdW0gbGVuZ3RoOiAke2ZpZWxkLnZhbGlkYXRvcnMubWF4TGVuZ3RofWA7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIFwiYXJlRXF1YWxcIjpcclxuICAgICAgICAgIGVycm9yTWVzc2FnZSA9IGAke2ZpZWxkTGFiZWx9IG11c3QgYmUgZXF1YWwhYDtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBgJHtmaWVsZExhYmVsfTogJHtcImVycm9yLmVycm9yX25hbWVcIn06ICR7XCJlcnJvci5lcnJvcl92YWx1ZVwifWA7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIGVycm9yTWVzc2FnZTtcclxuICAgIH07XHJcblxyXG4gICAgT2JqZWN0LmtleXMoZXJyb3JzKS5mb3JFYWNoKChlcnJvcikgPT4ge1xyXG4gICAgICBmaWVsZCA9IGFkZE1lc3NhZ2UoZmllbGQsIHtcclxuICAgICAgICB0eXBlOiBcImVycm9yXCIsXHJcbiAgICAgICAgbWVzc2FnZTogZ2V0RXJyb3JNZXNzYWdlKGZpZWxkLmxhYmVsLCBlcnJvcilcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gZmllbGQ7XHJcbiAgfTtcclxuXHJcbiAgaWYgKGVycm9yKSB7XHJcbiAgICBmaWVsZHNbZmllbGRJbmRleF0gPSBzZXRFcnJvck1lc3NhZ2VzKGZpZWxkc1tmaWVsZEluZGV4XSwgZXJyb3JzKTtcclxuICB9IGVsc2Uge1xyXG4gICAgZmllbGRzW2ZpZWxkSW5kZXhdW1wibWVzc2FnZXNcIl0gPSBbXTtcclxuICB9XHJcblxyXG4gIGZpZWxkc1tmaWVsZEluZGV4XSA9IGhpZ2hsaWdodEZpZWxkRXJyb3IoZmllbGRzW2ZpZWxkSW5kZXhdLCBlcnJvcik7XHJcblxyXG4gIHJldHVybiBmaWVsZHM7XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { EPattern, EPatternKey } from "../definitions/common/form-view.common.enum.definitions";
|
|
3
|
+
import { ERuleKey } from "../definitions/rules/form-view.rules.enum.definitions";
|
|
4
|
+
import { ESourceKey } from "../definitions/sources/form-view.sources.enum.definitions";
|
|
5
|
+
import { log } from "../form-view.decorators";
|
|
6
|
+
import { hasPath } from "./form-view.common.helper";
|
|
7
|
+
import { Sources } from "./form-view.sources.helper";
|
|
8
|
+
export class Rules {
|
|
9
|
+
constructor(rules, field, formData, previousFormData, allFormsData) {
|
|
10
|
+
this._field = field;
|
|
11
|
+
this._formData = formData;
|
|
12
|
+
this._previousFormData = previousFormData;
|
|
13
|
+
this._allFormsData = allFormsData;
|
|
14
|
+
this._rules = rules;
|
|
15
|
+
}
|
|
16
|
+
evaluate(rule) {
|
|
17
|
+
let ruleType = rule.key;
|
|
18
|
+
let ruleEvaluationStatus = false;
|
|
19
|
+
if (this._field.type === "radio") {
|
|
20
|
+
this._formData[this._field.key] = this._formData[this._field.key].label;
|
|
21
|
+
}
|
|
22
|
+
const source = new Sources(this._field, this._formData, this._previousFormData, this._allFormsData);
|
|
23
|
+
switch (ruleType) {
|
|
24
|
+
case ERuleKey.OBJECT_PATH_EXISTS:
|
|
25
|
+
const ruleObjectPathExists = rule;
|
|
26
|
+
const ruleObjectPathExistsObject = ruleObjectPathExists.props.object;
|
|
27
|
+
const ruleObjectPathExistsPath = ruleObjectPathExists.props.path;
|
|
28
|
+
switch (ruleObjectPathExistsObject) {
|
|
29
|
+
case ESourceKey.ALL_FORMS_DATA:
|
|
30
|
+
ruleEvaluationStatus = hasPath(this._allFormsData, ruleObjectPathExistsPath);
|
|
31
|
+
break;
|
|
32
|
+
case ESourceKey.FORM_DATA:
|
|
33
|
+
ruleEvaluationStatus = hasPath(this._formData, ruleObjectPathExistsPath);
|
|
34
|
+
break;
|
|
35
|
+
case ESourceKey.PREVIOUS_FORM_DATA:
|
|
36
|
+
ruleEvaluationStatus = hasPath(this._previousFormData, ruleObjectPathExistsPath);
|
|
37
|
+
break;
|
|
38
|
+
case ESourceKey.FIELD_CONFIG:
|
|
39
|
+
ruleEvaluationStatus = hasPath(this._field, ruleObjectPathExistsPath);
|
|
40
|
+
break;
|
|
41
|
+
default:
|
|
42
|
+
ruleEvaluationStatus = false;
|
|
43
|
+
break;
|
|
44
|
+
}
|
|
45
|
+
break;
|
|
46
|
+
case ERuleKey.VALUE_CHECK:
|
|
47
|
+
const ruleValueCheck = rule;
|
|
48
|
+
const ruleValueCheckSource = ruleValueCheck.props.value.source;
|
|
49
|
+
const ruleValueCheckValue = source.getValueFromSource(ruleValueCheckSource);
|
|
50
|
+
if (ruleValueCheck.props.pattern.key === EPatternKey.CUSTOM) {
|
|
51
|
+
var re = new RegExp(ruleValueCheck.props.pattern.pattern);
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
var re = new RegExp(EPattern[ruleValueCheck.props.pattern.key]);
|
|
55
|
+
}
|
|
56
|
+
ruleEvaluationStatus = re.test(ruleValueCheckValue);
|
|
57
|
+
break;
|
|
58
|
+
case ERuleKey.VALUE_CHANGE:
|
|
59
|
+
const ruleValueChange = rule;
|
|
60
|
+
const ruleValueChangeCurrentSource = ruleValueChange.props.value.current.source;
|
|
61
|
+
const ruleValueChangePreviousSource = ruleValueChange.props.value.previous.source;
|
|
62
|
+
const previousValue = source.getValueFromSource(ruleValueChangePreviousSource);
|
|
63
|
+
const currentValue = source.getValueFromSource(ruleValueChangeCurrentSource);
|
|
64
|
+
ruleEvaluationStatus = previousValue === currentValue;
|
|
65
|
+
break;
|
|
66
|
+
default:
|
|
67
|
+
break;
|
|
68
|
+
}
|
|
69
|
+
return ruleEvaluationStatus;
|
|
70
|
+
}
|
|
71
|
+
mapping() {
|
|
72
|
+
let rulesEvaluationMapping = {};
|
|
73
|
+
for (const rule of this._rules) {
|
|
74
|
+
const ruleEvaluationStatus = this.evaluate(rule);
|
|
75
|
+
rulesEvaluationMapping = Object.assign(Object.assign({}, rulesEvaluationMapping), { [rule.id]: ruleEvaluationStatus });
|
|
76
|
+
}
|
|
77
|
+
return rulesEvaluationMapping;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
__decorate([
|
|
81
|
+
log
|
|
82
|
+
], Rules.prototype, "evaluate", null);
|
|
83
|
+
__decorate([
|
|
84
|
+
log
|
|
85
|
+
], Rules.prototype, "mapping", null);
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12aWV3LnJ1bGVzLmhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2t3aWtpZC1mb3Jtcy9zcmMvbGliL3JlbmRlcmVyL2Zvcm0tdmlldy9oZWxwZXJzL2Zvcm0tdmlldy5ydWxlcy5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxRQUFRLEVBQ1IsV0FBVyxFQUNaLE1BQU0seURBQXlELENBQUM7QUFFakUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBUWpGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUV2RixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVyRCxNQUFNLE9BQU8sS0FBSztJQU9oQixZQUNFLEtBQW1CLEVBQ25CLEtBQWEsRUFDYixRQUFhLEVBQ2IsZ0JBQXFCLEVBQ3JCLFlBQWlCO1FBRWpCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO1FBQzFCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxnQkFBZ0IsQ0FBQztRQUMxQyxJQUFJLENBQUMsYUFBYSxHQUFHLFlBQVksQ0FBQztRQUNsQyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBR08sUUFBUSxDQUFDLElBQVc7UUFDMUIsSUFBSSxRQUFRLEdBQWMsSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUNuQyxJQUFJLG9CQUFvQixHQUFZLEtBQUssQ0FBQztRQUUxQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRTtZQUNo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NEJBQTRCLENBQzdCLENBQUM7Z0JBRUYsb0JBQW9CLEdBQUcsYUFBYSxLQUFLLFlBQVksQ0FBQztnQkFDdEQsTUFBTTtZQUNSO2dCQUNFLE1BQU07U0FDVDtRQUVELE9BQU8sb0JBQW9CLENBQUM7SUFDOUIsQ0FBQztJQUdNLE9BQU87UUFDWixJQUFJLHNCQUFzQixHQUFHLEVBQUUsQ0FBQztRQUVoQyxLQUFLLE1BQU0sSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDOUIsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRWpELHNCQUFzQixtQ0FDakIsc0JBQXNCLEtBQ3pCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLG9CQUFvQixHQUNoQyxDQUFDO1NBQ0g7UUFFRCxPQUFPLHNCQUFzQixDQUFDO0lBQ2hDLENBQUM7Q0FDRjtBQXZHQztJQURDLEdBQUc7cUNBdUZIO0FBR0Q7SUFEQyxHQUFHO29DQWNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBFUGF0dGVybixcclxuICBFUGF0dGVybktleVxyXG59IGZyb20gXCIuLi9kZWZpbml0aW9ucy9jb21tb24vZm9ybS12aWV3LmNvbW1vbi5lbnVtLmRlZmluaXRpb25zXCI7XHJcbmltcG9ydCB7IFRGaWVsZCB9IGZyb20gXCIuLi9kZWZpbml0aW9ucy9maWVsZHMvZm9ybS12aWV3LmZpZWxkcy50eXBlLmRlZmluaXRpb25zXCI7XHJcbmltcG9ydCB7IEVSdWxlS2V5IH0gZnJvbSBcIi4uL2RlZmluaXRpb25zL3J1bGVzL2Zvcm0tdmlldy5ydWxlcy5lbnVtLmRlZmluaXRpb25zXCI7XHJcbmltcG9ydCB7XHJcbiAgVFJ1bGUsXHJcbiAgVFJ1bGVPYmplY3RQYXRoRXhpc3RzLFxyXG4gIFRSdWxlVHlwZSxcclxuICBUUnVsZVZhbHVlQ2hhbmdlLFxyXG4gIFRSdWxlVmFsdWVDaGVja1xyXG59IGZyb20gXCIuLi9kZWZpbml0aW9ucy9ydWxlcy9mb3JtLXZpZXcucnVsZXMudHlwZS5kZWZpbml0aW9uc1wiO1xyXG5pbXBvcnQgeyBFU291cmNlS2V5IH0gZnJvbSBcIi4uL2RlZmluaXRpb25zL3NvdXJjZXMvZm9ybS12aWV3LnNvdXJjZXMuZW51bS5kZWZpbml0aW9uc1wiO1xyXG5pbXBvcnQgeyBUU291cmNlIH0gZnJvbSBcIi4uL2RlZmluaXRpb25zL3NvdXJjZXMvZm9ybS12aWV3LnNvdXJjZXMudHlwZS5kZWZpbml0aW9uc1wiO1xyXG5pbXBvcnQgeyBsb2cgfSBmcm9tIFwiLi4vZm9ybS12aWV3LmRlY29yYXRvcnNcIjtcclxuaW1wb3J0IHsgaGFzUGF0aCB9IGZyb20gXCIuL2Zvcm0tdmlldy5jb21tb24uaGVscGVyXCI7XHJcbmltcG9ydCB7IFNvdXJjZXMgfSBmcm9tIFwiLi9mb3JtLXZpZXcuc291cmNlcy5oZWxwZXJcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBSdWxlcyB7XHJcbiAgcHJpdmF0ZSBfZm9ybURhdGE6IGFueTtcclxuICBwcml2YXRlIF9wcmV2aW91c0Zvcm1EYXRhOiBhbnk7XHJcbiAgcHJpdmF0ZSBfYWxsRm9ybXNEYXRhOiBhbnk7XHJcbiAgcHJpdmF0ZSBfZmllbGQ6IFRGaWVsZDtcclxuICBwcml2YXRlIF9ydWxlczogQXJyYXk8VFJ1bGU+O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHJ1bGVzOiBBcnJheTxUUnVsZT4sXHJcbiAgICBmaWVsZDogVEZpZWxkLFxyXG4gICAgZm9ybURhdGE6IGFueSxcclxuICAgIHByZXZpb3VzRm9ybURhdGE6IGFueSxcclxuICAgIGFsbEZvcm1zRGF0YTogYW55XHJcbiAgKSB7XHJcbiAgICB0aGlzLl9maWVsZCA9IGZpZWxkO1xyXG4gICAgdGhpcy5fZm9ybURhdGEgPSBmb3JtRGF0YTtcclxuICAgIHRoaXMuX3ByZXZpb3VzRm9ybURhdGEgPSBwcmV2aW91c0Zvcm1EYXRhO1xyXG4gICAgdGhpcy5fYWxsRm9ybXNEYXRhID0gYWxsRm9ybXNEYXRhO1xyXG4gICAgdGhpcy5fcnVsZXMgPSBydWxlcztcclxuICB9XHJcblxyXG4gIEBsb2dcclxuICBwcml2YXRlIGV2YWx1YXRlKHJ1bGU6IFRSdWxlKTogYm9vbGVhbiB7XHJcbiAgICBsZXQgcnVsZVR5cGU6IFRSdWxlVHlwZSA9IHJ1bGUua2V5O1xyXG4gICAgbGV0IHJ1bGVFdmFsdWF0aW9uU3RhdHVzOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgaWYgKHRoaXMuX2ZpZWxkLnR5cGUgPT09IFwicmFkaW9cIikge1xyXG4gICAgICB0aGlzLl9mb3JtRGF0YVt0aGlzLl9maWVsZC5rZXldID0gdGhpcy5fZm9ybURhdGFbdGhpcy5fZmllbGQua2V5XS5sYWJlbDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBzb3VyY2UgPSBuZXcgU291cmNlcyhcclxuICAgICAgdGhpcy5fZmllbGQsXHJcbiAgICAgIHRoaXMuX2Zvcm1EYXRhLFxyXG4gICAgICB0aGlzLl9wcmV2aW91c0Zvcm1EYXRhLFxyXG4gICAgICB0aGlzLl9hbGxGb3Jtc0RhdGFcclxuICAgICk7XHJcblxyXG4gICAgc3dpdGNoIChydWxlVHlwZSkge1xyXG4gICAgICBjYXNlIEVSdWxlS2V5Lk9CSkVDVF9QQVRIX0VYSVNUUzpcclxuICAgICAgICBjb25zdCBydWxlT2JqZWN0UGF0aEV4aXN0cyA9IHJ1bGUgYXMgVFJ1bGVPYmplY3RQYXRoRXhpc3RzO1xyXG4gICAgICAgIGNvbnN0IHJ1bGVPYmplY3RQYXRoRXhpc3RzT2JqZWN0ID0gcnVsZU9iamVjdFBhdGhFeGlzdHMucHJvcHMub2JqZWN0O1xyXG4gICAgICAgIGNvbnN0IHJ1bGVPYmplY3RQYXRoRXhpc3RzUGF0aCA9IHJ1bGVPYmplY3RQYXRoRXhpc3RzLnByb3BzLnBhdGg7XHJcblxyXG4gICAgICAgIHN3aXRjaCAocnVsZU9iamVjdFBhdGhFeGlzdHNPYmplY3QpIHtcclxuICAgICAgICAgIGNhc2UgRVNvdXJjZUtleS5BTExfRk9STVNfREFUQTpcclxuICAgICAgICAgICAgcnVsZUV2YWx1YXRpb25TdGF0dXMgPSBoYXNQYXRoKFxyXG4gICAgICAgICAgICAgIHRoaXMuX2FsbEZvcm1zRGF0YSxcclxuICAgICAgICAgICAgICBydWxlT2JqZWN0UGF0aEV4aXN0c1BhdGhcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlIEVTb3VyY2VLZXkuRk9STV9EQVRBOlxyXG4gICAgICAgICAgICBydWxlRXZhbHVhdGlvblN0YXR1cyA9IGhhc1BhdGgoXHJcbiAgICAgICAgICAgICAgdGhpcy5fZm9ybURhdGEsXHJcbiAgICAgICAgICAgICAgcnVsZU9iamVjdFBhdGhFeGlzdHNQYXRoXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSBFU291cmNlS2V5LlBSRVZJT1VTX0ZPUk1fREFUQTpcclxuICAgICAgICAgICAgcnVsZUV2YWx1YXRpb25TdGF0dXMgPSBoYXNQYXRoKFxyXG4gICAgICAgICAgICAgIHRoaXMuX3ByZXZpb3VzRm9ybURhdGEsXHJcbiAgICAgICAgICAgICAgcnVsZU9iamVjdFBhdGhFeGlzdHNQYXRoXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSBFU291cmNlS2V5LkZJRUxEX0NPTkZJRzpcclxuICAgICAgICAgICAgcnVsZUV2YWx1YXRpb25TdGF0dXMgPSBoYXNQYXRoKFxyXG4gICAgICAgICAgICAgIHRoaXMuX2ZpZWxkLFxyXG4gICAgICAgICAgICAgIHJ1bGVPYmplY3RQYXRoRXhpc3RzUGF0aFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIHJ1bGVFdmFsdWF0aW9uU3RhdHVzID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBFUnVsZUtleS5WQUxVRV9DSEVDSzpcclxuICAgICAgICBjb25zdCBydWxlVmFsdWVDaGVjayA9IHJ1bGUgYXMgVFJ1bGVWYWx1ZUNoZWNrO1xyXG4gICAgICAgIGNvbnN0IHJ1bGVWYWx1ZUNoZWNrU291cmNlOiBUU291cmNlID0gcnVsZVZhbHVlQ2hlY2sucHJvcHMudmFsdWUuc291cmNlO1xyXG4gICAgICAgIGNvbnN0IHJ1bGVWYWx1ZUNoZWNrVmFsdWUgPVxyXG4gICAgICAgICAgc291cmNlLmdldFZhbHVlRnJvbVNvdXJjZShydWxlVmFsdWVDaGVja1NvdXJjZSk7XHJcblxyXG4gICAgICAgIGlmIChydWxlVmFsdWVDaGVjay5wcm9wcy5wYXR0ZXJuLmtleSA9PT0gRVBhdHRlcm5LZXkuQ1VTVE9NKSB7XHJcbiAgICAgICAgICB2YXIgcmUgPSBuZXcgUmVnRXhwKHJ1bGVWYWx1ZUNoZWNrLnByb3BzLnBhdHRlcm4ucGF0dGVybik7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHZhciByZSA9IG5ldyBSZWdFeHAoRVBhdHRlcm5bcnVsZVZhbHVlQ2hlY2sucHJvcHMucGF0dGVybi5rZXldKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJ1bGVFdmFsdWF0aW9uU3RhdHVzID0gcmUudGVzdChydWxlVmFsdWVDaGVja1ZhbHVlKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBFUnVsZUtleS5WQUxVRV9DSEFOR0U6XHJcbiAgICAgICAgY29uc3QgcnVsZVZhbHVlQ2hhbmdlID0gcnVsZSBhcyBUUnVsZVZhbHVlQ2hhbmdlO1xyXG4gICAgICAgIGNvbnN0IHJ1bGVWYWx1ZUNoYW5nZUN1cnJlbnRTb3VyY2U6IFRTb3VyY2UgPVxyXG4gICAgICAgICAgcnVsZVZhbHVlQ2hhbmdlLnByb3BzLnZhbHVlLmN1cnJlbnQuc291cmNlO1xyXG4gICAgICAgIGNvbnN0IHJ1bGVWYWx1ZUNoYW5nZVByZXZpb3VzU291cmNlOiBUU291cmNlID1cclxuICAgICAgICAgIHJ1bGVWYWx1ZUNoYW5nZS5wcm9wcy52YWx1ZS5wcmV2aW91cy5zb3VyY2U7XHJcblxyXG4gICAgICAgIGNvbnN0IHByZXZpb3VzVmFsdWUgPSBzb3VyY2UuZ2V0VmFsdWVGcm9tU291cmNlKFxyXG4gICAgICAgICAgcnVsZVZhbHVlQ2hhbmdlUHJldmlvdXNTb3VyY2VcclxuICAgICAgICApO1xyXG4gICAgICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IHNvdXJjZS5nZXRWYWx1ZUZyb21Tb3VyY2UoXHJcbiAgICAgICAgICBydWxlVmFsdWVDaGFuZ2VDdXJyZW50U291cmNlXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgcnVsZUV2YWx1YXRpb25TdGF0dXMgPSBwcmV2aW91c1ZhbHVlID09PSBjdXJyZW50VmFsdWU7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHJ1bGVFdmFsdWF0aW9uU3RhdHVzO1xyXG4gIH1cclxuXHJcbiAgQGxvZ1xyXG4gIHB1YmxpYyBtYXBwaW5nKCk6IGFueSB7XHJcbiAgICBsZXQgcnVsZXNFdmFsdWF0aW9uTWFwcGluZyA9IHt9O1xyXG5cclxuICAgIGZvciAoY29uc3QgcnVsZSBvZiB0aGlzLl9ydWxlcykge1xyXG4gICAgICBjb25zdCBydWxlRXZhbHVhdGlvblN0YXR1cyA9IHRoaXMuZXZhbHVhdGUocnVsZSk7XHJcblxyXG4gICAgICBydWxlc0V2YWx1YXRpb25NYXBwaW5nID0ge1xyXG4gICAgICAgIC4uLnJ1bGVzRXZhbHVhdGlvbk1hcHBpbmcsXHJcbiAgICAgICAgW3J1bGUuaWRdOiBydWxlRXZhbHVhdGlvblN0YXR1c1xyXG4gICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBydWxlc0V2YWx1YXRpb25NYXBwaW5nO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import { __awaiter, __decorate } from "tslib";
|
|
2
|
+
import { EBrowserStorageType, ESourceKey } from "../definitions/sources/form-view.sources.enum.definitions";
|
|
3
|
+
import { log } from "../form-view.decorators";
|
|
4
|
+
import { isNotEmpty, isNotEmptyBrowserStorageValue, jpQueryWrapper, setEmptyValue, setValueToObject } from "./form-view.common.helper";
|
|
5
|
+
export class Sources {
|
|
6
|
+
constructor(field, formData, previousFormData, allFormsData) {
|
|
7
|
+
this._field = field;
|
|
8
|
+
this._formData = formData;
|
|
9
|
+
this._previousFormData = previousFormData;
|
|
10
|
+
this._allFormsData = allFormsData;
|
|
11
|
+
}
|
|
12
|
+
get formData() {
|
|
13
|
+
return this._formData;
|
|
14
|
+
}
|
|
15
|
+
set formData(value) {
|
|
16
|
+
this._formData = value;
|
|
17
|
+
}
|
|
18
|
+
get previousFormData() {
|
|
19
|
+
return this._previousFormData;
|
|
20
|
+
}
|
|
21
|
+
set previousFormData(value) {
|
|
22
|
+
this._previousFormData = value;
|
|
23
|
+
}
|
|
24
|
+
get allFormsData() {
|
|
25
|
+
return this._allFormsData;
|
|
26
|
+
}
|
|
27
|
+
set allFormsData(value) {
|
|
28
|
+
this._allFormsData = value;
|
|
29
|
+
}
|
|
30
|
+
get field() {
|
|
31
|
+
return this._field;
|
|
32
|
+
}
|
|
33
|
+
set field(value) {
|
|
34
|
+
this._field = value;
|
|
35
|
+
}
|
|
36
|
+
getValueFromFieldConfig(path) {
|
|
37
|
+
let value = "";
|
|
38
|
+
if (isNotEmpty(path)) {
|
|
39
|
+
value = jpQueryWrapper(this._field, path);
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
value = setEmptyValue(this._field);
|
|
43
|
+
}
|
|
44
|
+
return value;
|
|
45
|
+
}
|
|
46
|
+
getValueFromFormData(path) {
|
|
47
|
+
let value;
|
|
48
|
+
value = jpQueryWrapper(this._formData, path);
|
|
49
|
+
return value;
|
|
50
|
+
}
|
|
51
|
+
getValueFromPreviousFormData(path) {
|
|
52
|
+
let value;
|
|
53
|
+
value = jpQueryWrapper(this._previousFormData, path);
|
|
54
|
+
return value;
|
|
55
|
+
}
|
|
56
|
+
getValueFromAllFormsData(path) {
|
|
57
|
+
let value;
|
|
58
|
+
value = jpQueryWrapper(this._allFormsData, path);
|
|
59
|
+
return value;
|
|
60
|
+
}
|
|
61
|
+
getValueFromBrowserStorage(type, key) {
|
|
62
|
+
let value = "";
|
|
63
|
+
switch (type) {
|
|
64
|
+
case EBrowserStorageType.LOCAL_STORAGE:
|
|
65
|
+
value = isNotEmptyBrowserStorageValue(localStorage.getItem(key))
|
|
66
|
+
? localStorage.getItem(key)
|
|
67
|
+
: "";
|
|
68
|
+
break;
|
|
69
|
+
case EBrowserStorageType.SESSION_STORAGE:
|
|
70
|
+
value = isNotEmptyBrowserStorageValue(sessionStorage.getItem(key))
|
|
71
|
+
? sessionStorage.getItem(key)
|
|
72
|
+
: "";
|
|
73
|
+
break;
|
|
74
|
+
default:
|
|
75
|
+
value = "";
|
|
76
|
+
break;
|
|
77
|
+
}
|
|
78
|
+
return value;
|
|
79
|
+
}
|
|
80
|
+
getValueFromSource(source) {
|
|
81
|
+
let value = "";
|
|
82
|
+
switch (source.key) {
|
|
83
|
+
case ESourceKey.FIELD_CONFIG:
|
|
84
|
+
value = this.getValueFromFieldConfig(source.props.path);
|
|
85
|
+
break;
|
|
86
|
+
case ESourceKey.FORM_DATA:
|
|
87
|
+
value = this.getValueFromFormData(source.props.path);
|
|
88
|
+
break;
|
|
89
|
+
case ESourceKey.ALL_FORMS_DATA:
|
|
90
|
+
value = this.getValueFromAllFormsData(source.props.path);
|
|
91
|
+
break;
|
|
92
|
+
case ESourceKey.PREVIOUS_FORM_DATA:
|
|
93
|
+
value = this.getValueFromPreviousFormData(source.props.path);
|
|
94
|
+
break;
|
|
95
|
+
case ESourceKey.BROWSER_STORAGE:
|
|
96
|
+
value = this.getValueFromBrowserStorage(source.props.browserStorage.type, source.props.browserStorage.key);
|
|
97
|
+
break;
|
|
98
|
+
case ESourceKey.PREDEFINED:
|
|
99
|
+
value = source.value;
|
|
100
|
+
break;
|
|
101
|
+
default:
|
|
102
|
+
value = "";
|
|
103
|
+
break;
|
|
104
|
+
}
|
|
105
|
+
return value;
|
|
106
|
+
}
|
|
107
|
+
setValueToFieldConfig(path, value) {
|
|
108
|
+
this._field = setValueToObject(this._field, path, value);
|
|
109
|
+
}
|
|
110
|
+
setValueToFormData(path, value) {
|
|
111
|
+
this._formData = setValueToObject(this._formData, path, value);
|
|
112
|
+
}
|
|
113
|
+
setValueToAllFormsData(path, value) {
|
|
114
|
+
this._allFormsData = setValueToObject(this._allFormsData, path, value);
|
|
115
|
+
}
|
|
116
|
+
setValueToPreviousFromData(path, value) {
|
|
117
|
+
this._previousFormData = setValueToObject(this._previousFormData, path, value);
|
|
118
|
+
}
|
|
119
|
+
setValueToBrowserStorage(type, key, value) {
|
|
120
|
+
switch (type) {
|
|
121
|
+
case EBrowserStorageType.LOCAL_STORAGE:
|
|
122
|
+
localStorage.setItem(key, value);
|
|
123
|
+
break;
|
|
124
|
+
case EBrowserStorageType.SESSION_STORAGE:
|
|
125
|
+
sessionStorage.setItem(key, value);
|
|
126
|
+
break;
|
|
127
|
+
default:
|
|
128
|
+
break;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
setValueToSource(source, value) {
|
|
132
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
133
|
+
switch (source.key) {
|
|
134
|
+
case ESourceKey.FIELD_CONFIG:
|
|
135
|
+
this._field = this.setValueToFieldConfig(source.props.path, value);
|
|
136
|
+
break;
|
|
137
|
+
case ESourceKey.FORM_DATA:
|
|
138
|
+
this._formData = this.setValueToFormData(source.props.path, value);
|
|
139
|
+
break;
|
|
140
|
+
case ESourceKey.ALL_FORMS_DATA:
|
|
141
|
+
this._allFormsData = this.setValueToAllFormsData(source.props.path, value);
|
|
142
|
+
break;
|
|
143
|
+
case ESourceKey.PREVIOUS_FORM_DATA:
|
|
144
|
+
this._previousFormData = this.setValueToPreviousFromData(source.props.path, value);
|
|
145
|
+
break;
|
|
146
|
+
case ESourceKey.BROWSER_STORAGE:
|
|
147
|
+
yield this.setValueToBrowserStorage(source.props.browserStorage.type, source.props.browserStorage.key, value);
|
|
148
|
+
break;
|
|
149
|
+
default:
|
|
150
|
+
break;
|
|
151
|
+
}
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
__decorate([
|
|
156
|
+
log
|
|
157
|
+
], Sources.prototype, "getValueFromSource", null);
|
|
158
|
+
__decorate([
|
|
159
|
+
log
|
|
160
|
+
], Sources.prototype, "setValueToSource", null);
|
|
161
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12aWV3LnNvdXJjZXMuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva3dpa2lkLWZvcm1zL3NyYy9saWIvcmVuZGVyZXIvZm9ybS12aWV3L2hlbHBlcnMvZm9ybS12aWV3LnNvdXJjZXMuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLFVBQVUsRUFDWCxNQUFNLDJEQUEyRCxDQUFDO0FBS25FLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5QyxPQUFPLEVBQ0wsVUFBVSxFQUNWLDZCQUE2QixFQUM3QixjQUFjLEVBQ2QsYUFBYSxFQUNiLGdCQUFnQixFQUNqQixNQUFNLDJCQUEyQixDQUFDO0FBRW5DLE1BQU0sT0FBTyxPQUFPO0lBaUNsQixZQUNFLEtBQWEsRUFDYixRQUFhLEVBQ2IsZ0JBQXFCLEVBQ3JCLFlBQWlCO1FBRWpCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO1FBQzFCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxnQkFBZ0IsQ0FBQztRQUMxQyxJQUFJLENBQUMsYUFBYSxHQUFHLFlBQVksQ0FBQztJQUNwQyxDQUFDO0lBekNELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBQ0QsSUFBSSxRQUFRLENBQUMsS0FBVTtRQUNyQixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUN6QixDQUFDO0lBR0QsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDaEMsQ0FBQztJQUNELElBQUksZ0JBQWdCLENBQUMsS0FBVTtRQUM3QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO0lBQ2pDLENBQUM7SUFHRCxJ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QUssQ0FBQyxJQUFJLEVBQ2pCLEtBQUssQ0FDTixDQUFDO29CQUNGLE1BQU07Z0JBQ1IsS0FBSyxVQUFVLENBQUMsZUFBZTtvQkFDN0IsTUFBTSxJQUFJLENBQUMsd0JBQXdCLENBQ2pDLE1BQU0sQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLElBQUksRUFDaEMsTUFBTSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUMvQixLQUFLLENBQ04sQ0FBQztvQkFDRixNQUFNO2dCQUNSO29CQUNFLE1BQU07YUFDVDtRQUNILENBQUM7S0FBQTtDQUNGO0FBOUZDO0lBREMsR0FBRztpREFnQ0g7QUFnQ0Q7SUFEQyxHQUFHOytDQStCSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRGaWVsZCB9IGZyb20gXCIuLi9kZWZpbml0aW9ucy9maWVsZHMvZm9ybS12aWV3LmZpZWxkcy50eXBlLmRlZmluaXRpb25zXCI7XHJcbmltcG9ydCB7XHJcbiAgRUJyb3dzZXJTdG9yYWdlVHlwZSxcclxuICBFU291cmNlS2V5XHJcbn0gZnJvbSBcIi4uL2RlZmluaXRpb25zL3NvdXJjZXMvZm9ybS12aWV3LnNvdXJjZXMuZW51bS5kZWZpbml0aW9uc1wiO1xyXG5pbXBvcnQge1xyXG4gIFRCcm93c2VyU3RvcmFnZVR5cGUsXHJcbiAgVFNvdXJjZVxyXG59IGZyb20gXCIuLi9kZWZpbml0aW9ucy9zb3VyY2VzL2Zvcm0tdmlldy5zb3VyY2VzLnR5cGUuZGVmaW5pdGlvbnNcIjtcclxuaW1wb3J0IHsgbG9nIH0gZnJvbSBcIi4uL2Zvcm0tdmlldy5kZWNvcmF0b3JzXCI7XHJcbmltcG9ydCB7XHJcbiAgaXNOb3RFbXB0eSxcclxuICBpc05vdEVtcHR5QnJvd3NlclN0b3JhZ2VWYWx1ZSxcclxuICBqcFF1ZXJ5V3JhcHBlcixcclxuICBzZXRFbXB0eVZhbHVlLFxyXG4gIHNldFZhbHVlVG9PYmplY3RcclxufSBmcm9tIFwiLi9mb3JtLXZpZXcuY29tbW9uLmhlbHBlclwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIFNvdXJjZXMge1xyXG4gIHByaXZhdGUgX2Zvcm1EYXRhOiBhbnk7XHJcbiAgZ2V0IGZvcm1EYXRhKCk6IGFueSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZm9ybURhdGE7XHJcbiAgfVxyXG4gIHNldCBmb3JtRGF0YSh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLl9mb3JtRGF0YSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcHJldmlvdXNGb3JtRGF0YTogYW55O1xyXG4gIGdldCBwcmV2aW91c0Zvcm1EYXRhKCk6IGFueSB7XHJcbiAgICByZXR1cm4gdGhpcy5fcHJldmlvdXNGb3JtRGF0YTtcclxuICB9XHJcbiAgc2V0IHByZXZpb3VzRm9ybURhdGEodmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy5fcHJldmlvdXNGb3JtRGF0YSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfYWxsRm9ybXNEYXRhOiBhbnk7XHJcbiAgZ2V0IGFsbEZvcm1zRGF0YSgpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FsbEZvcm1zRGF0YTtcclxuICB9XHJcbiAgc2V0IGFsbEZvcm1zRGF0YSh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLl9hbGxGb3Jtc0RhdGEgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2ZpZWxkOiBURmllbGQ7XHJcbiAgZ2V0IGZpZWxkKCk6IFRGaWVsZCB7XHJcbiAgICByZXR1cm4gdGhpcy5fZmllbGQ7XHJcbiAgfVxyXG4gIHNldCBmaWVsZCh2YWx1ZTogVEZpZWxkKSB7XHJcbiAgICB0aGlzLl9maWVsZCA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBmaWVsZDogVEZpZWxkLFxyXG4gICAgZm9ybURhdGE6IGFueSxcclxuICAgIHByZXZpb3VzRm9ybURhdGE6IGFueSxcclxuICAgIGFsbEZvcm1zRGF0YTogYW55XHJcbiAgKSB7XHJcbiAgICB0aGlzLl9maWVsZCA9IGZpZWxkO1xyXG4gICAgdGhpcy5fZm9ybURhdGEgPSBmb3JtRGF0YTtcclxuICAgIHRoaXMuX3ByZXZpb3VzRm9ybURhdGEgPSBwcmV2aW91c0Zvcm1EYXRhO1xyXG4gICAgdGhpcy5fYWxsRm9ybXNEYXRhID0gYWxsRm9ybXNEYXRhO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRWYWx1ZUZyb21GaWVsZENvbmZpZyhwYXRoOiBzdHJpbmcpOiBhbnkge1xyXG4gICAgbGV0IHZhbHVlOiBhbnkgPSBcIlwiO1xyXG4gICAgaWYgKGlzTm90RW1wdHkocGF0aCkpIHtcclxuICAgICAgdmFsdWUgPSBqcFF1ZXJ5V3JhcHBlcih0aGlzLl9maWVsZCwgcGF0aCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB2YWx1ZSA9IHNldEVtcHR5VmFsdWUodGhpcy5fZmllbGQpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRWYWx1ZUZyb21Gb3JtRGF0YShwYXRoOiBzdHJpbmcpOiBhbnkge1xyXG4gICAgbGV0IHZhbHVlOiBhbnk7XHJcbiAgICB2YWx1ZSA9IGpwUXVlcnlXcmFwcGVyKHRoaXMuX2Zvcm1EYXRhLCBwYXRoKTtcclxuICAgIHJldHVybiB2YWx1ZTtcclxuICB9XHJcbiAgcHJpdmF0ZSBnZXRWYWx1ZUZyb21QcmV2aW91c0Zvcm1EYXRhKHBhdGg6IHN0cmluZyk6IGFueSB7XHJcbiAgICBsZXQgdmFsdWU6IGFueTtcclxuICAgIHZhbHVlID0ganBRdWVyeVdyYXBwZXIodGhpcy5fcHJldmlvdXNGb3JtRGF0YSwgcGF0aCk7XHJcbiAgICByZXR1cm4gdmFsdWU7XHJcbiAgfVxyXG4gIHByaXZhdGUgZ2V0VmFsdWVGcm9tQWxsRm9ybXNEYXRhKHBhdGg6IHN0cmluZyk6IGFueSB7XHJcbiAgICBsZXQgdmFsdWU6IGFueTtcclxuICAgIHZhbHVlID0ganBRdWVyeVdyYXBwZXIodGhpcy5fYWxsRm9ybXNEYXRhLCBwYXRoKTtcclxuICAgIHJldHVybiB2YWx1ZTtcclxuICB9XHJcbiAgcHJpdmF0ZSBnZXRWYWx1ZUZyb21Ccm93c2VyU3RvcmFnZShcclxuICAgIHR5cGU6IFRCcm93c2VyU3RvcmFnZVR5cGUsXHJcbiAgICBrZXk6IHN0cmluZ1xyXG4gICk6IGFueSB7XHJcbiAgICBsZXQgdmFsdWU6IGFueSA9IFwiXCI7XHJcbiAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgY2FzZSBFQnJvd3NlclN0b3JhZ2VUeXBlLkxPQ0FMX1NUT1JBR0U6XHJcbiAgICAgICAgdmFsdWUgPSBpc05vdEVtcHR5QnJvd3NlclN0b3JhZ2VWYWx1ZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShrZXkpKVxyXG4gICAgICAgICAgPyBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShrZXkpXHJcbiAgICAgICAgICA6IFwiXCI7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgRUJyb3dzZXJTdG9yYWdlVHlwZS5TRVNTSU9OX1NUT1JBR0U6XHJcbiAgICAgICAgdmFsdWUgPSBpc05vdEVtcHR5QnJvd3NlclN0b3JhZ2VWYWx1ZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKGtleSkpXHJcbiAgICAgICAgICA/IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oa2V5KVxyXG4gICAgICAgICAgOiBcIlwiO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHZhbHVlID0gXCJcIjtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIHJldHVybiB2YWx1ZTtcclxuICB9XHJcblxyXG4gIEBsb2dcclxuICBnZXRWYWx1ZUZyb21Tb3VyY2Uoc291cmNlOiBUU291cmNlKTogYW55IHtcclxuICAgIGxldCB2YWx1ZTogYW55ID0gXCJcIjtcclxuXHJcbiAgICBzd2l0Y2ggKHNvdXJjZS5rZXkpIHtcclxuICAgICAgY2FzZSBFU291cmNlS2V5LkZJRUxEX0NPTkZJRzpcclxuICAgICAgICB2YWx1ZSA9IHRoaXMuZ2V0VmFsdWVGcm9tRmllbGRDb25maWcoc291cmNlLnByb3BzLnBhdGgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIEVTb3VyY2VLZXkuRk9STV9EQVRBOlxyXG4gICAgICAgIHZhbHVlID0gdGhpcy5nZXRWYWx1ZUZyb21Gb3JtRGF0YShzb3VyY2UucHJvcHMucGF0aCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgRVNvdXJjZUtleS5BTExfRk9STVNfREFUQTpcclxuICAgICAgICB2YWx1ZSA9IHRoaXMuZ2V0VmFsdWVGcm9tQWxsRm9ybXNEYXRhKHNvdXJjZS5wcm9wcy5wYXRoKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBFU291cmNlS2V5LlBSRVZJT1VTX0ZPUk1fREFUQTpcclxuICAgICAgICB2YWx1ZSA9IHRoaXMuZ2V0VmFsdWVGcm9tUHJldmlvdXNGb3JtRGF0YShzb3VyY2UucHJvcHMucGF0aCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgRVNvdXJjZUtleS5CUk9XU0VSX1NUT1JBR0U6XHJcbiAgICAgICAgdmFsdWUgPSB0aGlzLmdldFZhbHVlRnJvbUJyb3dzZXJTdG9yYWdlKFxyXG4gICAgICAgICAgc291cmNlLnByb3BzLmJyb3dzZXJTdG9yYWdlLnR5cGUsXHJcbiAgICAgICAgICBzb3VyY2UucHJvcHMuYnJvd3NlclN0b3JhZ2Uua2V5XHJcbiAgICAgICAgKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBFU291cmNlS2V5LlBSRURFRklORUQ6XHJcbiAgICAgICAgdmFsdWUgPSBzb3VyY2UudmFsdWU7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgdmFsdWUgPSBcIlwiO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0VmFsdWVUb0ZpZWxkQ29uZmlnKHBhdGg6IHN0cmluZywgdmFsdWU6IGFueSk6IGFueSB7XHJcbiAgICB0aGlzLl9maWVsZCA9IHNldFZhbHVlVG9PYmplY3QodGhpcy5fZmllbGQsIHBhdGgsIHZhbHVlKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBzZXRWYWx1ZVRvRm9ybURhdGEocGF0aDogc3RyaW5nLCB2YWx1ZTogYW55KTogYW55IHtcclxuICAgIHRoaXMuX2Zvcm1EYXRhID0gc2V0VmFsdWVUb09iamVjdCh0aGlzLl9mb3JtRGF0YSwgcGF0aCwgdmFsdWUpO1xyXG4gIH1cclxuICBwcml2YXRlIHNldFZhbHVlVG9BbGxGb3Jtc0RhdGEocGF0aDogc3RyaW5nLCB2YWx1ZTogYW55KTogYW55IHtcclxuICAgIHRoaXMuX2FsbEZvcm1zRGF0YSA9IHNldFZhbHVlVG9PYmplY3QodGhpcy5fYWxsRm9ybXNEYXRhLCBwYXRoLCB2YWx1ZSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgc2V0VmFsdWVUb1ByZXZpb3VzRnJvbURhdGEocGF0aDogc3RyaW5nLCB2YWx1ZTogYW55KTogYW55IHtcclxuICAgIHRoaXMuX3ByZXZpb3VzRm9ybURhdGEgPSBzZXRWYWx1ZVRvT2JqZWN0KFxyXG4gICAgICB0aGlzLl9wcmV2aW91c0Zvcm1EYXRhLFxyXG4gICAgICBwYXRoLFxyXG4gICAgICB2YWx1ZVxyXG4gICAgKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBzZXRWYWx1ZVRvQnJvd3NlclN0b3JhZ2UodHlwZTogc3RyaW5nLCBrZXk6IHN0cmluZywgdmFsdWU6IGFueSk6IGFueSB7XHJcbiAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgY2FzZSBFQnJvd3NlclN0b3JhZ2VUeXBlLkxPQ0FMX1NUT1JBR0U6XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oa2V5LCB2YWx1ZSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgRUJyb3dzZXJTdG9yYWdlVHlwZS5TRVNTSU9OX1NUT1JBR0U6XHJcbiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShrZXksIHZhbHVlKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBsb2dcclxuICBhc3luYyBzZXRWYWx1ZVRvU291cmNlKHNvdXJjZTogVFNvdXJjZSwgdmFsdWU6IGFueSkge1xyXG4gICAgc3dpdGNoIChzb3VyY2Uua2V5KSB7XHJcbiAgICAgIGNhc2UgRVNvdXJjZUtleS5GSUVMRF9DT05GSUc6XHJcbiAgICAgICAgdGhpcy5fZmllbGQgPSB0aGlzLnNldFZhbHVlVG9GaWVsZENvbmZpZyhzb3VyY2UucHJvcHMucGF0aCwgdmFsdWUpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIEVTb3VyY2VLZXkuRk9STV9EQVRBOlxyXG4gICAgICAgIHRoaXMuX2Zvcm1EYXRhID0gdGhpcy5zZXRWYWx1ZVRvRm9ybURhdGEoc291cmNlLnByb3BzLnBhdGgsIHZhbHVlKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBFU291cmNlS2V5LkFMTF9GT1JNU19EQVRBOlxyXG4gICAgICAgIHRoaXMuX2FsbEZvcm1zRGF0YSA9IHRoaXMuc2V0VmFsdWVUb0FsbEZvcm1zRGF0YShcclxuICAgICAgICAgIHNvdXJjZS5wcm9wcy5wYXRoLFxyXG4gICAgICAgICAgdmFsdWVcclxuICAgICAgICApO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIEVTb3VyY2VLZXkuUFJFVklPVVNfRk9STV9EQVRBOlxyXG4gICAgICAgIHRoaXMuX3ByZXZpb3VzRm9ybURhdGEgPSB0aGlzLnNldFZhbHVlVG9QcmV2aW91c0Zyb21EYXRhKFxyXG4gICAgICAgICAgc291cmNlLnByb3BzLnBhdGgsXHJcbiAgICAgICAgICB2YWx1ZVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgRVNvdXJjZUtleS5CUk9XU0VSX1NUT1JBR0U6XHJcbiAgICAgICAgYXdhaXQgdGhpcy5zZXRWYWx1ZVRvQnJvd3NlclN0b3JhZ2UoXHJcbiAgICAgICAgICBzb3VyY2UucHJvcHMuYnJvd3NlclN0b3JhZ2UudHlwZSxcclxuICAgICAgICAgIHNvdXJjZS5wcm9wcy5icm93c2VyU3RvcmFnZS5rZXksXHJcbiAgICAgICAgICB2YWx1ZVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import { __awaiter, __decorate } from "tslib";
|
|
2
|
+
import { FormArray, FormGroup, Validators } from "@angular/forms";
|
|
3
|
+
import { EPattern, EPatternKey } from "../definitions/common/form-view.common.enum.definitions";
|
|
4
|
+
import { log } from "../form-view.decorators";
|
|
5
|
+
import { Actions } from "./form-view.actions.helper";
|
|
6
|
+
import { hasKey, isNotEmpty } from "./form-view.common.helper";
|
|
7
|
+
import { Condition } from "./form-view.condition.helper";
|
|
8
|
+
import { Rules } from "./form-view.rules.helper";
|
|
9
|
+
export class Validations {
|
|
10
|
+
constructor(field, formData, previousFormData, allFormsData, takeAction) {
|
|
11
|
+
this._field = field;
|
|
12
|
+
this._formData = formData;
|
|
13
|
+
this._previousFormData = previousFormData;
|
|
14
|
+
this._allFormsData = allFormsData;
|
|
15
|
+
this._takeAction = takeAction;
|
|
16
|
+
}
|
|
17
|
+
get formData() {
|
|
18
|
+
return this._formData;
|
|
19
|
+
}
|
|
20
|
+
set formData(value) {
|
|
21
|
+
this._formData = value;
|
|
22
|
+
}
|
|
23
|
+
get previousFormData() {
|
|
24
|
+
return this._previousFormData;
|
|
25
|
+
}
|
|
26
|
+
set previousFormData(value) {
|
|
27
|
+
this._previousFormData = value;
|
|
28
|
+
}
|
|
29
|
+
get allFormsData() {
|
|
30
|
+
return this._allFormsData;
|
|
31
|
+
}
|
|
32
|
+
set allFormsData(value) {
|
|
33
|
+
this._allFormsData = value;
|
|
34
|
+
}
|
|
35
|
+
get field() {
|
|
36
|
+
return this._field;
|
|
37
|
+
}
|
|
38
|
+
set field(value) {
|
|
39
|
+
this._field = value;
|
|
40
|
+
}
|
|
41
|
+
getFieldValidators(field) {
|
|
42
|
+
let validators = [];
|
|
43
|
+
if (hasKey(field, "validators") &&
|
|
44
|
+
hasKey(field.validators, "min") &&
|
|
45
|
+
isNotEmpty(field.validators.min)) {
|
|
46
|
+
validators.push(Validators.min(field.validators.min));
|
|
47
|
+
}
|
|
48
|
+
if (hasKey(field, "validators") &&
|
|
49
|
+
hasKey(field.validators, "max") &&
|
|
50
|
+
isNotEmpty(field.validators.max)) {
|
|
51
|
+
validators.push(Validators.max(field.validators.max));
|
|
52
|
+
}
|
|
53
|
+
if (hasKey(field, "required") ||
|
|
54
|
+
(hasKey(field, "validators") && hasKey(field.validators, "required"))) {
|
|
55
|
+
validators.push(Validators.required);
|
|
56
|
+
}
|
|
57
|
+
if (hasKey(field, "validators") &&
|
|
58
|
+
hasKey(field.validators, "minLength") &&
|
|
59
|
+
isNotEmpty(field.validators.minLength)) {
|
|
60
|
+
validators.push(Validators.minLength(field.validators.minLength));
|
|
61
|
+
}
|
|
62
|
+
if (hasKey(field, "validators") &&
|
|
63
|
+
hasKey(field.validators, "maxLength") &&
|
|
64
|
+
isNotEmpty(field.validators.maxLength)) {
|
|
65
|
+
validators.push(Validators.maxLength(field.validators.maxLength));
|
|
66
|
+
}
|
|
67
|
+
if (hasKey(field, "validators") &&
|
|
68
|
+
hasKey(field.validators, "pattern") &&
|
|
69
|
+
isNotEmpty(field.validators.pattern)) {
|
|
70
|
+
if (field.validators.pattern.key === EPatternKey.CUSTOM) {
|
|
71
|
+
validators.push(Validators.pattern(field.validators.pattern.pattern));
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
validators.push(Validators.pattern(EPattern[field.validators.pattern.key]));
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
if (hasKey(field, "validators") &&
|
|
78
|
+
hasKey(field.validators, "nullValidator") &&
|
|
79
|
+
isNotEmpty(field.validators.nullValidator)) {
|
|
80
|
+
validators.push(Validators.nullValidator(field.validators.nullValidator));
|
|
81
|
+
}
|
|
82
|
+
return validators;
|
|
83
|
+
}
|
|
84
|
+
getFormValidationErrors(control) {
|
|
85
|
+
let errors = [];
|
|
86
|
+
for (const key in control.controls) {
|
|
87
|
+
const controlErrors = control.controls[key].errors;
|
|
88
|
+
if (controlErrors !== null && controlErrors !== undefined) {
|
|
89
|
+
Object.keys(controlErrors).forEach((keyError) => {
|
|
90
|
+
errors.push({
|
|
91
|
+
name: keyError,
|
|
92
|
+
value: controlErrors[keyError]
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
return errors;
|
|
98
|
+
}
|
|
99
|
+
findInvalidControlsRecursive(formToInvestigate) {
|
|
100
|
+
var controls = [];
|
|
101
|
+
let recursiveFunc = (form) => {
|
|
102
|
+
Object.keys(form.controls).forEach((field) => {
|
|
103
|
+
const control = form.get(field);
|
|
104
|
+
if (control.invalid) {
|
|
105
|
+
controls.push({
|
|
106
|
+
key: field,
|
|
107
|
+
invalid: true
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
controls.push({
|
|
112
|
+
key: field,
|
|
113
|
+
invalid: false
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
if (control instanceof FormGroup) {
|
|
117
|
+
recursiveFunc(control);
|
|
118
|
+
}
|
|
119
|
+
else if (control instanceof FormArray) {
|
|
120
|
+
recursiveFunc(control);
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
};
|
|
124
|
+
recursiveFunc(formToInvestigate);
|
|
125
|
+
return controls;
|
|
126
|
+
}
|
|
127
|
+
validateField() {
|
|
128
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
129
|
+
const validations = this._field.validation;
|
|
130
|
+
const triggers = validations.triggers;
|
|
131
|
+
const rules = validations.rules;
|
|
132
|
+
const actions = validations.actions;
|
|
133
|
+
const rulesMapping = new Rules(rules, this._field, this._formData, this._previousFormData, this._allFormsData).mapping();
|
|
134
|
+
for (let action of actions) {
|
|
135
|
+
const conditionEvaluation = new Condition(action.condition, rulesMapping).evaluate();
|
|
136
|
+
if (conditionEvaluation) {
|
|
137
|
+
const actions = new Actions(action, this._field, rulesMapping, this._allFormsData, this._formData, this._previousFormData, this._takeAction);
|
|
138
|
+
yield actions.execute();
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
__decorate([
|
|
145
|
+
log
|
|
146
|
+
], Validations.prototype, "getFieldValidators", null);
|
|
147
|
+
__decorate([
|
|
148
|
+
log
|
|
149
|
+
], Validations.prototype, "getFormValidationErrors", null);
|
|
150
|
+
__decorate([
|
|
151
|
+
log
|
|
152
|
+
], Validations.prototype, "findInvalidControlsRecursive", null);
|
|
153
|
+
__decorate([
|
|
154
|
+
log
|
|
155
|
+
], Validations.prototype, "validateField", null);
|
|
156
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12aWV3LnZhbGlkYXRpb25zLmhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2t3aWtpZC1mb3Jtcy9zcmMvbGliL3JlbmRlcmVyL2Zvcm0tdmlldy9oZWxwZXJzL2Zvcm0tdmlldy52YWxpZGF0aW9ucy5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsU0FBUyxFQUVULFVBQVUsRUFDWCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFDTCxRQUFRLEVBQ1IsV0FBVyxFQUNaLE1BQU0seURBQXlELENBQUM7QUFFakUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFakQsTUFBTSxPQUFPLFdBQVc7SUFtQ3RCLFlBQ0UsS0FBYSxFQUNiLFFBQWEsRUFDYixnQkFBcUIsRUFDckIsWUFBaUIsRUFDakIsVUFBZTtRQUVmLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO1FBQzFCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxnQkFBZ0IsQ0FBQztRQUMxQyxJQUFJLENBQUMsYUFBYSxHQUFHLFlBQVksQ0FBQztRQUNsQyxJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQztJQUNoQyxDQUFDO0lBN0NELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBQ0QsSUFB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QyxLQUFLLENBQUM7WUFDaEMsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQztZQUVwQyxNQUFNLFlBQVksR0FBRyxJQUFJLEtBQUssQ0FDNUIsS0FBSyxFQUNMLElBQUksQ0FBQyxNQUFNLEVBQ1gsSUFBSSxDQUFDLFNBQVMsRUFDZCxJQUFJLENBQUMsaUJBQWlCLEVBQ3RCLElBQUksQ0FBQyxhQUFhLENBQ25CLENBQUMsT0FBTyxFQUFFLENBQUM7WUFFWixLQUFLLElBQUksTUFBTSxJQUFJLE9BQU8sRUFBRTtnQkFDMUIsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLFNBQVMsQ0FDdkMsTUFBTSxDQUFDLFNBQVMsRUFDaEIsWUFBWSxDQUNiLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBRWIsSUFBSSxtQkFBbUIsRUFBRTtvQkFDdkIsTUFBTSxPQUFPLEdBQUcsSUFBSSxPQUFPLENBQ3pCLE1BQU0sRUFDTixJQUFJLENBQUMsTUFBTSxFQUNYLFlBQVksRUFDWixJQUFJLENBQUMsYUFBYSxFQUNsQixJQUFJLENBQUMsU0FBUyxFQUNkLElBQUksQ0FBQyxpQkFBaUIsRUFDdEIsSUFBSSxDQUFDLFdBQVcsQ0FDakIsQ0FBQztvQkFFRixNQUFNLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztpQkFDekI7YUFDRjtRQUNILENBQUM7S0FBQTtDQUNGO0FBdEpDO0lBREMsR0FBRztxREE0REg7QUFHRDtJQURDLEdBQUc7MERBbUJIO0FBR0Q7SUFEQyxHQUFHOytEQTZCSDtBQUdEO0lBREMsR0FBRztnREFvQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEZvcm1BcnJheSxcclxuICBGb3JtR3JvdXAsXHJcbiAgVmFsaWRhdGlvbkVycm9ycyxcclxuICBWYWxpZGF0b3JzXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7XHJcbiAgRVBhdHRlcm4sXHJcbiAgRVBhdHRlcm5LZXlcclxufSBmcm9tIFwiLi4vZGVmaW5pdGlvbnMvY29tbW9uL2Zvcm0tdmlldy5jb21tb24uZW51bS5kZWZpbml0aW9uc1wiO1xyXG5pbXBvcnQgeyBURmllbGQgfSBmcm9tIFwiLi4vZGVmaW5pdGlvbnMvZmllbGRzL2Zvcm0tdmlldy5maWVsZHMudHlwZS5kZWZpbml0aW9uc1wiO1xyXG5pbXBvcnQgeyBsb2cgfSBmcm9tIFwiLi4vZm9ybS12aWV3LmRlY29yYXRvcnNcIjtcclxuaW1wb3J0IHsgQWN0aW9ucyB9IGZyb20gXCIuL2Zvcm0tdmlldy5hY3Rpb25zLmhlbHBlclwiO1xyXG5pbXBvcnQgeyBoYXNLZXksIGlzTm90RW1wdHkgfSBmcm9tIFwiLi9mb3JtLXZpZXcuY29tbW9uLmhlbHBlclwiO1xyXG5pbXBvcnQgeyBDb25kaXRpb24gfSBmcm9tIFwiLi9mb3JtLXZpZXcuY29uZGl0aW9uLmhlbHBlclwiO1xyXG5pbXBvcnQgeyBSdWxlcyB9IGZyb20gXCIuL2Zvcm0tdmlldy5ydWxlcy5oZWxwZXJcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBWYWxpZGF0aW9ucyB7XHJcbiAgcHJpdmF0ZSBfZm9ybURhdGE6IGFueTtcclxuICBnZXQgZm9ybURhdGEoKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLl9mb3JtRGF0YTtcclxuICB9XHJcbiAgc2V0IGZvcm1EYXRhKHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMuX2Zvcm1EYXRhID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9wcmV2aW91c0Zvcm1EYXRhOiBhbnk7XHJcbiAgZ2V0IHByZXZpb3VzRm9ybURhdGEoKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLl9wcmV2aW91c0Zvcm1EYXRhO1xyXG4gIH1cclxuICBzZXQgcHJldmlvdXNGb3JtRGF0YSh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLl9wcmV2aW91c0Zvcm1EYXRhID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9hbGxGb3Jtc0RhdGE6IGFueTtcclxuICBnZXQgYWxsRm9ybXNEYXRhKCk6IGFueSB7XHJcbiAgICByZXR1cm4gdGhpcy5fYWxsRm9ybXNEYXRhO1xyXG4gIH1cclxuICBzZXQgYWxsRm9ybXNEYXRhKHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMuX2FsbEZvcm1zRGF0YSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZmllbGQ6IFRGaWVsZDtcclxuICBnZXQgZmllbGQoKTogVEZpZWxkIHtcclxuICAgIHJldHVybiB0aGlzLl9maWVsZDtcclxuICB9XHJcbiAgc2V0IGZpZWxkKHZhbHVlOiBURmllbGQpIHtcclxuICAgIHRoaXMuX2ZpZWxkID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF90YWtlQWN0aW9uOiBGdW5jdGlvbjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBmaWVsZDogVEZpZWxkLFxyXG4gICAgZm9ybURhdGE6IGFueSxcclxuICAgIHByZXZpb3VzRm9ybURhdGE6IGFueSxcclxuICAgIGFsbEZvcm1zRGF0YTogYW55LFxyXG4gICAgdGFrZUFjdGlvbjogYW55XHJcbiAgKSB7XHJcbiAgICB0aGlzLl9maWVsZCA9IGZpZWxkO1xyXG4gICAgdGhpcy5fZm9ybURhdGEgPSBmb3JtRGF0YTtcclxuICAgIHRoaXMuX3ByZXZpb3VzRm9ybURhdGEgPSBwcmV2aW91c0Zvcm1EYXRhO1xyXG4gICAgdGhpcy5fYWxsRm9ybXNEYXRhID0gYWxsRm9ybXNEYXRhO1xyXG4gICAgdGhpcy5fdGFrZUFjdGlvbiA9IHRha2VBY3Rpb247XHJcbiAgfVxyXG5cclxuICBAbG9nXHJcbiAgZ2V0RmllbGRWYWxpZGF0b3JzKGZpZWxkOiBhbnkpIHtcclxuICAgIGxldCB2YWxpZGF0b3JzID0gW107XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICBoYXNLZXkoZmllbGQsIFwidmFsaWRhdG9yc1wiKSAmJlxyXG4gICAgICBoYXNLZXkoZmllbGQudmFsaWRhdG9ycywgXCJtaW5cIikgJiZcclxuICAgICAgaXNOb3RFbXB0eShmaWVsZC52YWxpZGF0b3JzLm1pbilcclxuICAgICkge1xyXG4gICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5taW4oZmllbGQudmFsaWRhdG9ycy5taW4pKTtcclxuICAgIH1cclxuICAgIGlmIChcclxuICAgICAgaGFzS2V5KGZpZWxkLCBcInZhbGlkYXRvcnNcIikgJiZcclxuICAgICAgaGFzS2V5KGZpZWxkLnZhbGlkYXRvcnMsIFwibWF4XCIpICYmXHJcbiAgICAgIGlzTm90RW1wdHkoZmllbGQudmFsaWRhdG9ycy5tYXgpXHJcbiAgICApIHtcclxuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWF4KGZpZWxkLnZhbGlkYXRvcnMubWF4KSk7XHJcbiAgICB9XHJcbiAgICBpZiAoXHJcbiAgICAgIGhhc0tleShmaWVsZCwgXCJyZXF1aXJlZFwiKSB8fFxyXG4gICAgICAoaGFzS2V5KGZpZWxkLCBcInZhbGlkYXRvcnNcIikgJiYgaGFzS2V5KGZpZWxkLnZhbGlkYXRvcnMsIFwicmVxdWlyZWRcIikpXHJcbiAgICApIHtcclxuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gICAgfVxyXG4gICAgaWYgKFxyXG4gICAgICBoYXNLZXkoZmllbGQsIFwidmFsaWRhdG9yc1wiKSAmJlxyXG4gICAgICBoYXNLZXkoZmllbGQudmFsaWRhdG9ycywgXCJtaW5MZW5ndGhcIikgJiZcclxuICAgICAgaXNOb3RFbXB0eShmaWVsZC52YWxpZGF0b3JzLm1pbkxlbmd0aClcclxuICAgICkge1xyXG4gICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5taW5MZW5ndGgoZmllbGQudmFsaWRhdG9ycy5taW5MZW5ndGgpKTtcclxuICAgIH1cclxuICAgIGlmIChcclxuICAgICAgaGFzS2V5KGZpZWxkLCBcInZhbGlkYXRvcnNcIikgJiZcclxuICAgICAgaGFzS2V5KGZpZWxkLnZhbGlkYXRvcnMsIFwibWF4TGVuZ3RoXCIpICYmXHJcbiAgICAgIGlzTm90RW1wdHkoZmllbGQudmFsaWRhdG9ycy5tYXhMZW5ndGgpXHJcbiAgICApIHtcclxuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWF4TGVuZ3RoKGZpZWxkLnZhbGlkYXRvcnMubWF4TGVuZ3RoKSk7XHJcbiAgICB9XHJcbiAgICBpZiAoXHJcbiAgICAgIGhhc0tleShmaWVsZCwgXCJ2YWxpZGF0b3JzXCIpICYmXHJcbiAgICAgIGhhc0tleShmaWVsZC52YWxpZGF0b3JzLCBcInBhdHRlcm5cIikgJiZcclxuICAgICAgaXNOb3RFbXB0eShmaWVsZC52YWxpZGF0b3JzLnBhdHRlcm4pXHJcbiAgICApIHtcclxuICAgICAgaWYgKGZpZWxkLnZhbGlkYXRvcnMucGF0dGVybi5rZXkgPT09IEVQYXR0ZXJuS2V5LkNVU1RPTSkge1xyXG4gICAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLnBhdHRlcm4oZmllbGQudmFsaWRhdG9ycy5wYXR0ZXJuLnBhdHRlcm4pKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB2YWxpZGF0b3JzLnB1c2goXHJcbiAgICAgICAgICBWYWxpZGF0b3JzLnBhdHRlcm4oRVBhdHRlcm5bZmllbGQudmFsaWRhdG9ycy5wYXR0ZXJuLmtleV0pXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKFxyXG4gICAgICBoYXNLZXkoZmllbGQsIFwidmFsaWRhdG9yc1wiKSAmJlxyXG4gICAgICBoYXNLZXkoZmllbGQudmFsaWRhdG9ycywgXCJudWxsVmFsaWRhdG9yXCIpICYmXHJcbiAgICAgIGlzTm90RW1wdHkoZmllbGQudmFsaWRhdG9ycy5udWxsVmFsaWRhdG9yKVxyXG4gICAgKSB7XHJcbiAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLm51bGxWYWxpZGF0b3IoZmllbGQudmFsaWRhdG9ycy5udWxsVmFsaWRhdG9yKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHZhbGlkYXRvcnM7XHJcbiAgfVxyXG5cclxuICBAbG9nXHJcbiAgZ2V0Rm9ybVZhbGlkYXRpb25FcnJvcnMoXHJcbiAgICBjb250cm9sOiBGb3JtR3JvdXBcclxuICApOiB7IG5hbWU6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9W10ge1xyXG4gICAgbGV0IGVycm9yczogeyBuYW1lOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfVtdID0gW107XHJcblxyXG4gICAgZm9yIChjb25zdCBrZXkgaW4gY29udHJvbC5jb250cm9scykge1xyXG4gICAgICBjb25zdCBjb250cm9sRXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzID0gY29udHJvbC5jb250cm9sc1trZXldLmVycm9ycztcclxuICAgICAgaWYgKGNvbnRyb2xFcnJvcnMgIT09IG51bGwgJiYgY29udHJvbEVycm9ycyAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgT2JqZWN0LmtleXMoY29udHJvbEVycm9ycykuZm9yRWFjaCgoa2V5RXJyb3IpID0+IHtcclxuICAgICAgICAgIGVycm9ycy5wdXNoKHtcclxuICAgICAgICAgICAgbmFtZToga2V5RXJyb3IsXHJcbiAgICAgICAgICAgIHZhbHVlOiBjb250cm9sRXJyb3JzW2tleUVycm9yXVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZXJyb3JzO1xyXG4gIH1cclxuXHJcbiAgQGxvZ1xyXG4gIGZpbmRJbnZhbGlkQ29udHJvbHNSZWN1cnNpdmUoZm9ybVRvSW52ZXN0aWdhdGU6IEZvcm1Hcm91cCB8IEZvcm1BcnJheSkge1xyXG4gICAgdmFyIGNvbnRyb2xzOiBhbnlbXSA9IFtdO1xyXG5cclxuICAgIGxldCByZWN1cnNpdmVGdW5jID0gKGZvcm06IEZvcm1Hcm91cCB8IEZvcm1BcnJheSkgPT4ge1xyXG4gICAgICBPYmplY3Qua2V5cyhmb3JtLmNvbnRyb2xzKS5mb3JFYWNoKChmaWVsZDogYW55KSA9PiB7XHJcbiAgICAgICAgY29uc3QgY29udHJvbCA9IGZvcm0uZ2V0KGZpZWxkKTtcclxuICAgICAgICBpZiAoY29udHJvbC5pbnZhbGlkKSB7XHJcbiAgICAgICAgICBjb250cm9scy5wdXNoKHtcclxuICAgICAgICAgICAga2V5OiBmaWVsZCxcclxuICAgICAgICAgICAgaW52YWxpZDogdHJ1ZVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnRyb2xzLnB1c2goe1xyXG4gICAgICAgICAgICBrZXk6IGZpZWxkLFxyXG4gICAgICAgICAgICBpbnZhbGlkOiBmYWxzZVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUdyb3VwKSB7XHJcbiAgICAgICAgICByZWN1cnNpdmVGdW5jKGNvbnRyb2wpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1BcnJheSkge1xyXG4gICAgICAgICAgcmVjdXJzaXZlRnVuYyhjb250cm9sKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfTtcclxuXHJcbiAgICByZWN1cnNpdmVGdW5jKGZvcm1Ub0ludmVzdGlnYXRlKTtcclxuXHJcbiAgICByZXR1cm4gY29udHJvbHM7XHJcbiAgfVxyXG5cclxuICBAbG9nXHJcbiAgYXN5bmMgdmFsaWRhdGVGaWVsZCgpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgY29uc3QgdmFsaWRhdGlvbnMgPSB0aGlzLl9maWVsZC52YWxpZGF0aW9uO1xyXG5cclxuICAgIGNvbnN0IHRyaWdnZXJzID0gdmFsaWRhdGlvbnMudHJpZ2dlcnM7XHJcbiAgICBjb25zdCBydWxlcyA9IHZhbGlkYXRpb25zLnJ1bGVzO1xyXG4gICAgY29uc3QgYWN0aW9ucyA9IHZhbGlkYXRpb25zLmFjdGlvbnM7XHJcblxyXG4gICAgY29uc3QgcnVsZXNNYXBwaW5nID0gbmV3IFJ1bGVzKFxyXG4gICAgICBydWxlcyxcclxuICAgICAgdGhpcy5fZmllbGQsXHJcbiAgICAgIHRoaXMuX2Zvcm1EYXRhLFxyXG4gICAgICB0aGlzLl9wcmV2aW91c0Zvcm1EYXRhLFxyXG4gICAgICB0aGlzLl9hbGxGb3Jtc0RhdGFcclxuICAgICkubWFwcGluZygpO1xyXG5cclxuICAgIGZvciAobGV0IGFjdGlvbiBvZiBhY3Rpb25zKSB7XHJcbiAgICAgIGNvbnN0IGNvbmRpdGlvbkV2YWx1YXRpb24gPSBuZXcgQ29uZGl0aW9uKFxyXG4gICAgICAgIGFjdGlvbi5jb25kaXRpb24sXHJcbiAgICAgICAgcnVsZXNNYXBwaW5nXHJcbiAgICAgICkuZXZhbHVhdGUoKTtcclxuXHJcbiAgICAgIGlmIChjb25kaXRpb25FdmFsdWF0aW9uKSB7XHJcbiAgICAgICAgY29uc3QgYWN0aW9ucyA9IG5ldyBBY3Rpb25zKFxyXG4gICAgICAgICAgYWN0aW9uLFxyXG4gICAgICAgICAgdGhpcy5fZmllbGQsXHJcbiAgICAgICAgICBydWxlc01hcHBpbmcsXHJcbiAgICAgICAgICB0aGlzLl9hbGxGb3Jtc0RhdGEsXHJcbiAgICAgICAgICB0aGlzLl9mb3JtRGF0YSxcclxuICAgICAgICAgIHRoaXMuX3ByZXZpb3VzRm9ybURhdGEsXHJcbiAgICAgICAgICB0aGlzLl90YWtlQWN0aW9uXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgYXdhaXQgYWN0aW9ucy5leGVjdXRlKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|