kwikid-forms 0.1.4 → 0.1.7

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.
Files changed (68) hide show
  1. package/README.md +43 -43
  2. package/bundles/kwikid-forms.umd.js +4286 -4213
  3. package/bundles/kwikid-forms.umd.js.map +1 -1
  4. package/esm2015/kwikid-forms.js +4 -4
  5. package/esm2015/lib/builder/builder.component.js +138 -138
  6. package/esm2015/lib/builder/builder.module.js +21 -21
  7. package/esm2015/lib/kwikid-forms.module.js +38 -38
  8. package/esm2015/lib/renderer/form-view/definitions/actions/form-view.actions.enum.definitions.js +20 -20
  9. package/esm2015/lib/renderer/form-view/definitions/actions/form-view.actions.type.definitions.js +2 -2
  10. package/esm2015/lib/renderer/form-view/definitions/apis/form-view.apis.enum.definitions.js +8 -8
  11. package/esm2015/lib/renderer/form-view/definitions/apis/form-view.apis.type.definitions.js +2 -2
  12. package/esm2015/lib/renderer/form-view/definitions/common/form-view.common.enum.definitions.js +101 -101
  13. package/esm2015/lib/renderer/form-view/definitions/common/form-view.common.type.definitions.js +2 -2
  14. package/esm2015/lib/renderer/form-view/definitions/fields/form-view.fields.enum.definitions.js +15 -15
  15. package/esm2015/lib/renderer/form-view/definitions/fields/form-view.fields.type.definitions.js +2 -2
  16. package/esm2015/lib/renderer/form-view/definitions/sources/form-view.sources.type.definitions.js +2 -2
  17. package/esm2015/lib/renderer/form-view/definitions/triggers/form-view.triggers.type.definitions.js +2 -2
  18. package/esm2015/lib/renderer/form-view/definitions/validations/form-view.validations.type.definitions.js +2 -2
  19. package/esm2015/lib/renderer/form-view/form-view.component.js +814 -814
  20. package/esm2015/lib/renderer/form-view/form-view.module.js +44 -44
  21. package/esm2015/lib/renderer/form-view/form-view.service.js +29 -29
  22. package/esm2015/lib/renderer/form-view/helpers/form-view.apis.helper.js +137 -137
  23. package/esm2015/lib/renderer/form-view/helpers/form-view.common.helper.js +136 -136
  24. package/esm2015/lib/renderer/form-view/helpers/form-view.defaults.helper.js +63 -63
  25. package/esm2015/lib/renderer/form-view/helpers/form-view.fields.helper.js +203 -203
  26. package/esm2015/lib/renderer/form-view/helpers/form-view.validations.helper.js +161 -161
  27. package/esm2015/lib/renderer/forms-list/forms-list.component.js +89 -89
  28. package/esm2015/lib/renderer/forms-list/forms-list.module.js +37 -37
  29. package/esm2015/lib/renderer/renderer.component.js +282 -267
  30. package/esm2015/lib/renderer/renderer.config-converter.helper.js +586 -586
  31. package/esm2015/lib/renderer/renderer.helper.js +50 -50
  32. package/esm2015/lib/renderer/renderer.module.js +50 -50
  33. package/esm2015/lib/renderer/renderer.service.js +172 -172
  34. package/esm2015/public_api.js +17 -17
  35. package/fesm2015/kwikid-forms.js +3031 -3016
  36. package/fesm2015/kwikid-forms.js.map +1 -1
  37. package/kwikid-forms.d.ts +5 -5
  38. package/lib/builder/builder.component.d.ts +68 -68
  39. package/lib/builder/builder.module.d.ts +10 -10
  40. package/lib/kwikid-forms.module.d.ts +10 -10
  41. package/lib/renderer/form-view/definitions/actions/form-view.actions.enum.definitions.d.ts +18 -18
  42. package/lib/renderer/form-view/definitions/actions/form-view.actions.type.definitions.d.ts +91 -91
  43. package/lib/renderer/form-view/definitions/apis/form-view.apis.enum.definitions.d.ts +6 -6
  44. package/lib/renderer/form-view/definitions/apis/form-view.apis.type.definitions.d.ts +40 -40
  45. package/lib/renderer/form-view/definitions/common/form-view.common.enum.definitions.d.ts +97 -97
  46. package/lib/renderer/form-view/definitions/common/form-view.common.type.definitions.d.ts +7 -7
  47. package/lib/renderer/form-view/definitions/fields/form-view.fields.enum.definitions.d.ts +13 -13
  48. package/lib/renderer/form-view/definitions/fields/form-view.fields.type.definitions.d.ts +136 -136
  49. package/lib/renderer/form-view/definitions/sources/form-view.sources.type.definitions.d.ts +16 -16
  50. package/lib/renderer/form-view/definitions/triggers/form-view.triggers.type.definitions.d.ts +1 -1
  51. package/lib/renderer/form-view/definitions/validations/form-view.validations.type.definitions.d.ts +16 -16
  52. package/lib/renderer/form-view/form-view.component.d.ts +80 -80
  53. package/lib/renderer/form-view/form-view.module.d.ts +12 -12
  54. package/lib/renderer/form-view/form-view.service.d.ts +5 -5
  55. package/lib/renderer/form-view/helpers/form-view.apis.helper.d.ts +17 -17
  56. package/lib/renderer/form-view/helpers/form-view.common.helper.d.ts +19 -19
  57. package/lib/renderer/form-view/helpers/form-view.defaults.helper.d.ts +10 -10
  58. package/lib/renderer/form-view/helpers/form-view.fields.helper.d.ts +24 -24
  59. package/lib/renderer/form-view/helpers/form-view.validations.helper.d.ts +25 -25
  60. package/lib/renderer/forms-list/forms-list.component.d.ts +22 -22
  61. package/lib/renderer/forms-list/forms-list.module.d.ts +11 -11
  62. package/lib/renderer/renderer.component.d.ts +36 -35
  63. package/lib/renderer/renderer.config-converter.helper.d.ts +7 -7
  64. package/lib/renderer/renderer.helper.d.ts +6 -6
  65. package/lib/renderer/renderer.module.d.ts +14 -14
  66. package/lib/renderer/renderer.service.d.ts +28 -28
  67. package/package.json +1 -1
  68. package/public_api.d.ts +9 -9
@@ -1,161 +1,161 @@
1
- import { __awaiter, __decorate } from "tslib";
2
- import { FormArray, FormGroup, Validators } from "@angular/forms";
3
- import { Actions, Condition, logMethod, Rules, checkObjectKeyExists, isNotEmptyValue } from "kwikid-toolkit";
4
- import { EPattern, EPatternKey } from "../definitions/common/form-view.common.enum.definitions";
5
- export class Validations {
6
- constructor(field, formData, previousFormData, allFormsData, takeAction) {
7
- this._field = field;
8
- this._formData = formData;
9
- this._previousFormData = previousFormData;
10
- this._allFormsData = allFormsData;
11
- this._takeAction = takeAction;
12
- }
13
- get formData() {
14
- return this._formData;
15
- }
16
- set formData(value) {
17
- this._formData = value;
18
- }
19
- get previousFormData() {
20
- return this._previousFormData;
21
- }
22
- set previousFormData(value) {
23
- this._previousFormData = value;
24
- }
25
- get allFormsData() {
26
- return this._allFormsData;
27
- }
28
- set allFormsData(value) {
29
- this._allFormsData = value;
30
- }
31
- get field() {
32
- return this._field;
33
- }
34
- set field(value) {
35
- this._field = value;
36
- }
37
- getFieldValidators(field) {
38
- let validators = [];
39
- if (checkObjectKeyExists(field, "validators") &&
40
- checkObjectKeyExists(field.validators, "min") &&
41
- isNotEmptyValue(field.validators.min)) {
42
- validators.push(Validators.min(field.validators.min));
43
- }
44
- if (checkObjectKeyExists(field, "validators") &&
45
- checkObjectKeyExists(field.validators, "max") &&
46
- isNotEmptyValue(field.validators.max)) {
47
- validators.push(Validators.max(field.validators.max));
48
- }
49
- if ((checkObjectKeyExists(field, "required") && field.required) ||
50
- (checkObjectKeyExists(field, "validators") &&
51
- checkObjectKeyExists(field.validators, "required") &&
52
- field.validators.required)) {
53
- validators.push(Validators.required);
54
- }
55
- if (checkObjectKeyExists(field, "validators") &&
56
- checkObjectKeyExists(field.validators, "minLength") &&
57
- isNotEmptyValue(field.validators.minLength)) {
58
- validators.push(Validators.minLength(field.validators.minLength));
59
- }
60
- if (checkObjectKeyExists(field, "validators") &&
61
- checkObjectKeyExists(field.validators, "maxLength") &&
62
- isNotEmptyValue(field.validators.maxLength)) {
63
- validators.push(Validators.maxLength(field.validators.maxLength));
64
- }
65
- if (checkObjectKeyExists(field, "validators") &&
66
- checkObjectKeyExists(field.validators, "pattern") &&
67
- isNotEmptyValue(field.validators.pattern)) {
68
- if (checkObjectKeyExists(field.validators.pattern, "key")) {
69
- if (field.validators.pattern.key === EPatternKey.CUSTOM) {
70
- validators.push(Validators.pattern(field.validators.pattern.pattern));
71
- }
72
- else {
73
- validators.push(Validators.pattern(EPattern[field.validators.pattern.key]));
74
- }
75
- }
76
- }
77
- return validators;
78
- }
79
- getFormValidationErrors(control) {
80
- let errors = [];
81
- for (const key in control.controls) {
82
- const controlErrors = control.controls[key].errors;
83
- if (controlErrors !== null && controlErrors !== undefined) {
84
- Object.keys(controlErrors).forEach((keyError) => {
85
- errors.push({
86
- name: keyError,
87
- value: controlErrors[keyError]
88
- });
89
- });
90
- }
91
- }
92
- return errors;
93
- }
94
- findInvalidControlsRecursive(formToInvestigate) {
95
- var controls = [];
96
- let recursiveFunc = (form) => {
97
- Object.keys(form.controls).forEach((field) => {
98
- const control = form.get(field);
99
- if (control.invalid) {
100
- controls.push({
101
- key: field,
102
- invalid: true
103
- });
104
- }
105
- else {
106
- controls.push({
107
- key: field,
108
- invalid: false
109
- });
110
- }
111
- if (control instanceof FormGroup) {
112
- recursiveFunc(control);
113
- }
114
- else if (control instanceof FormArray) {
115
- recursiveFunc(control);
116
- }
117
- });
118
- };
119
- recursiveFunc(formToInvestigate);
120
- return controls;
121
- }
122
- validateField() {
123
- return __awaiter(this, void 0, void 0, function* () {
124
- const validations = this._field.validation;
125
- const triggers = validations.triggers;
126
- const rules = validations.rules;
127
- const actions = validations.actions;
128
- const rulesMapping = new Rules(rules, {
129
- FIELD_CONFIG: this._field,
130
- FORM_DATA: this._formData,
131
- PREVIOUS_FORM_DATA: this._previousFormData,
132
- ALL_FORMS_DATA: this._allFormsData
133
- }).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, rulesMapping, {
138
- FIELD_CONFIG: this._field,
139
- FORM_DATA: this._formData,
140
- PREVIOUS_FORM_DATA: this._previousFormData,
141
- ALL_FORMS_DATA: this._allFormsData
142
- }, this._takeAction);
143
- yield actions.execute();
144
- }
145
- }
146
- });
147
- }
148
- }
149
- __decorate([
150
- logMethod
151
- ], Validations.prototype, "getFieldValidators", null);
152
- __decorate([
153
- logMethod
154
- ], Validations.prototype, "getFormValidationErrors", null);
155
- __decorate([
156
- logMethod
157
- ], Validations.prototype, "findInvalidControlsRecursive", null);
158
- __decorate([
159
- logMethod
160
- ], Validations.prototype, "validateField", null);
161
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12aWV3LnZhbGlkYXRpb25zLmhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2t3aWtpZC1mb3Jtcy9zcmMvbGliL3JlbmRlcmVyL2Zvcm0tdmlldy9oZWxwZXJzL2Zvcm0tdmlldy52YWxpZGF0aW9ucy5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsU0FBUyxFQUVULFVBQVUsRUFDWCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFDTCxPQUFPLEVBQ1AsU0FBUyxFQUNULFNBQVMsRUFDVCxLQUFLLEVBQ0wsb0JBQW9CLEVBQ3BCLGVBQWUsRUFDaEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQ0wsUUFBUSxFQUNSLFdBQVcsRUFDWixNQUFNLHlEQUF5RCxDQUFDO0FBR2pFLE1BQU0sT0FBTyxXQUFXO0lBbUN0QixZQUNFLEtBQWEsRUFDYixRQUFhLEVBQ2IsZ0JBQXFCLEVBQ3JCLFlBQWlCLEVBQ2pCLFVBQWU7UUFFZixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztRQUMxQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsZ0JBQWdCLENBQUM7UUFDMUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxZQUFZLENBQUM7UUFDbEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUM7SUFDaEMsQ0FBQztJQTdDRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUNELElBQUksUUFBUSxDQUFDLEtBQVU7UUFDckIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDekIsQ0FBQztJQUdELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ2hDLENBQUM7SUFD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LGlCQUFpQjtnQkFDMUMsY0FBYyxFQUFFLElBQUksQ0FBQyxhQUFhO2FBQ25DLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUViLEtBQUssSUFBSSxNQUFNLElBQUksT0FBTyxFQUFFO2dCQUMxQixNQUFNLG1CQUFtQixHQUFHLElBQUksU0FBUyxDQUN2QyxNQUFNLENBQUMsU0FBUyxFQUNoQixZQUFZLENBQ2IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFFYixJQUFJLG1CQUFtQixFQUFFO29CQUN2QixNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FDekIsTUFBTSxFQUNOLFlBQVksRUFDWjt3QkFDRSxZQUFZLEVBQUUsSUFBSSxDQUFDLE1BQU07d0JBQ3pCLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUzt3QkFDekIsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQjt3QkFDMUMsY0FBYyxFQUFFLElBQUksQ0FBQyxhQUFhO3FCQUNuQyxFQUNELElBQUksQ0FBQyxXQUFXLENBQ2pCLENBQUM7b0JBRUYsTUFBTSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7aUJBQ3pCO2FBQ0Y7UUFDSCxDQUFDO0tBQUE7Q0FDRjtBQXBKQztJQURDLFNBQVM7cURBeURUO0FBR0Q7SUFEQyxTQUFTOzBEQW1CVDtBQUdEO0lBREMsU0FBUzsrREE2QlQ7QUFHRDtJQURDLFNBQVM7Z0RBcUNUIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBGb3JtQXJyYXksXHJcbiAgRm9ybUdyb3VwLFxyXG4gIFZhbGlkYXRpb25FcnJvcnMsXHJcbiAgVmFsaWRhdG9yc1xyXG59IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQge1xyXG4gIEFjdGlvbnMsXHJcbiAgQ29uZGl0aW9uLFxyXG4gIGxvZ01ldGhvZCxcclxuICBSdWxlcyxcclxuICBjaGVja09iamVjdEtleUV4aXN0cyxcclxuICBpc05vdEVtcHR5VmFsdWVcclxufSBmcm9tIFwia3dpa2lkLXRvb2xraXRcIjtcclxuaW1wb3J0IHtcclxuICBFUGF0dGVybixcclxuICBFUGF0dGVybktleVxyXG59IGZyb20gXCIuLi9kZWZpbml0aW9ucy9jb21tb24vZm9ybS12aWV3LmNvbW1vbi5lbnVtLmRlZmluaXRpb25zXCI7XHJcbmltcG9ydCB7IFRGaWVsZCB9IGZyb20gXCIuLi9kZWZpbml0aW9ucy9maWVsZHMvZm9ybS12aWV3LmZpZWxkcy50eXBlLmRlZmluaXRpb25zXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgVmFsaWRhdGlvbnMge1xyXG4gIHByaXZhdGUgX2Zvcm1EYXRhOiBhbnk7XHJcbiAgZ2V0IGZvcm1EYXRhKCk6IGFueSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZm9ybURhdGE7XHJcbiAgfVxyXG4gIHNldCBmb3JtRGF0YSh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLl9mb3JtRGF0YSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcHJldmlvdXNGb3JtRGF0YTogYW55O1xyXG4gIGdldCBwcmV2aW91c0Zvcm1EYXRhKCk6IGFueSB7XHJcbiAgICByZXR1cm4gdGhpcy5fcHJldmlvdXNGb3JtRGF0YTtcclxuICB9XHJcbiAgc2V0IHByZXZpb3VzRm9ybURhdGEodmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy5fcHJldmlvdXNGb3JtRGF0YSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfYWxsRm9ybXNEYXRhOiBhbnk7XHJcbiAgZ2V0IGFsbEZvcm1zRGF0YSgpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FsbEZvcm1zRGF0YTtcclxuICB9XHJcbiAgc2V0IGFsbEZvcm1zRGF0YSh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLl9hbGxGb3Jtc0RhdGEgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2ZpZWxkOiBURmllbGQ7XHJcbiAgZ2V0IGZpZWxkKCk6IFRGaWVsZCB7XHJcbiAgICByZXR1cm4gdGhpcy5fZmllbGQ7XHJcbiAgfVxyXG4gIHNldCBmaWVsZCh2YWx1ZTogVEZpZWxkKSB7XHJcbiAgICB0aGlzLl9maWVsZCA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdGFrZUFjdGlvbjogRnVuY3Rpb247XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgZmllbGQ6IFRGaWVsZCxcclxuICAgIGZvcm1EYXRhOiBhbnksXHJcbiAgICBwcmV2aW91c0Zvcm1EYXRhOiBhbnksXHJcbiAgICBhbGxGb3Jtc0RhdGE6IGFueSxcclxuICAgIHRha2VBY3Rpb246IGFueVxyXG4gICkge1xyXG4gICAgdGhpcy5fZmllbGQgPSBmaWVsZDtcclxuICAgIHRoaXMuX2Zvcm1EYXRhID0gZm9ybURhdGE7XHJcbiAgICB0aGlzLl9wcmV2aW91c0Zvcm1EYXRhID0gcHJldmlvdXNGb3JtRGF0YTtcclxuICAgIHRoaXMuX2FsbEZvcm1zRGF0YSA9IGFsbEZvcm1zRGF0YTtcclxuICAgIHRoaXMuX3Rha2VBY3Rpb24gPSB0YWtlQWN0aW9uO1xyXG4gIH1cclxuXHJcbiAgQGxvZ01ldGhvZFxyXG4gIGdldEZpZWxkVmFsaWRhdG9ycyhmaWVsZDogYW55KSB7XHJcbiAgICBsZXQgdmFsaWRhdG9ycyA9IFtdO1xyXG5cclxuICAgIGlmIChcclxuICAgICAgY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIFwidmFsaWRhdG9yc1wiKSAmJlxyXG4gICAgICBjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZC52YWxpZGF0b3JzLCBcIm1pblwiKSAmJlxyXG4gICAgICBpc05vdEVtcHR5VmFsdWUoZmllbGQudmFsaWRhdG9ycy5taW4pXHJcbiAgICApIHtcclxuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWluKGZpZWxkLnZhbGlkYXRvcnMubWluKSk7XHJcbiAgICB9XHJcbiAgICBpZiAoXHJcbiAgICAgIGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcInZhbGlkYXRvcnNcIikgJiZcclxuICAgICAgY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQudmFsaWRhdG9ycywgXCJtYXhcIikgJiZcclxuICAgICAgaXNOb3RFbXB0eVZhbHVlKGZpZWxkLnZhbGlkYXRvcnMubWF4KVxyXG4gICAgKSB7XHJcbiAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLm1heChmaWVsZC52YWxpZGF0b3JzLm1heCkpO1xyXG4gICAgfVxyXG4gICAgaWYgKFxyXG4gICAgICAoY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIFwicmVxdWlyZWRcIikgJiYgZmllbGQucmVxdWlyZWQpIHx8XHJcbiAgICAgIChjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJ2YWxpZGF0b3JzXCIpICYmXHJcbiAgICAgICAgY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQudmFsaWRhdG9ycywgXCJyZXF1aXJlZFwiKSAmJlxyXG4gICAgICAgIGZpZWxkLnZhbGlkYXRvcnMucmVxdWlyZWQpXHJcbiAgICApIHtcclxuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gICAgfVxyXG4gICAgaWYgKFxyXG4gICAgICBjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJ2YWxpZGF0b3JzXCIpICYmXHJcbiAgICAgIGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLnZhbGlkYXRvcnMsIFwibWluTGVuZ3RoXCIpICYmXHJcbiAgICAgIGlzTm90RW1wdHlWYWx1ZShmaWVsZC52YWxpZGF0b3JzLm1pbkxlbmd0aClcclxuICAgICkge1xyXG4gICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5taW5MZW5ndGgoZmllbGQudmFsaWRhdG9ycy5taW5MZW5ndGgpKTtcclxuICAgIH1cclxuICAgIGlmIChcclxuICAgICAgY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIFwidmFsaWRhdG9yc1wiKSAmJlxyXG4gICAgICBjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZC52YWxpZGF0b3JzLCBcIm1heExlbmd0aFwiKSAmJlxyXG4gICAgICBpc05vdEVtcHR5VmFsdWUoZmllbGQudmFsaWRhdG9ycy5tYXhMZW5ndGgpXHJcbiAgICApIHtcclxuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWF4TGVuZ3RoKGZpZWxkLnZhbGlkYXRvcnMubWF4TGVuZ3RoKSk7XHJcbiAgICB9XHJcbiAgICBpZiAoXHJcbiAgICAgIGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcInZhbGlkYXRvcnNcIikgJiZcclxuICAgICAgY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQudmFsaWRhdG9ycywgXCJwYXR0ZXJuXCIpICYmXHJcbiAgICAgIGlzTm90RW1wdHlWYWx1ZShmaWVsZC52YWxpZGF0b3JzLnBhdHRlcm4pXHJcbiAgICApIHtcclxuICAgICAgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLnZhbGlkYXRvcnMucGF0dGVybiwgXCJrZXlcIikpIHtcclxuICAgICAgICBpZiAoZmllbGQudmFsaWRhdG9ycy5wYXR0ZXJuLmtleSA9PT0gRVBhdHRlcm5LZXkuQ1VTVE9NKSB7XHJcbiAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5wYXR0ZXJuKGZpZWxkLnZhbGlkYXRvcnMucGF0dGVybi5wYXR0ZXJuKSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChcclxuICAgICAgICAgICAgVmFsaWRhdG9ycy5wYXR0ZXJuKEVQYXR0ZXJuW2ZpZWxkLnZhbGlkYXRvcnMucGF0dGVybi5rZXldKVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdmFsaWRhdG9ycztcclxuICB9XHJcblxyXG4gIEBsb2dNZXRob2RcclxuICBnZXRGb3JtVmFsaWRhdGlvbkVycm9ycyhcclxuICAgIGNvbnRyb2w6IEZvcm1Hcm91cFxyXG4gICk6IHsgbmFtZTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH1bXSB7XHJcbiAgICBsZXQgZXJyb3JzOiB7IG5hbWU6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9W10gPSBbXTtcclxuXHJcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBjb250cm9sLmNvbnRyb2xzKSB7XHJcbiAgICAgIGNvbnN0IGNvbnRyb2xFcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMgPSBjb250cm9sLmNvbnRyb2xzW2tleV0uZXJyb3JzO1xyXG4gICAgICBpZiAoY29udHJvbEVycm9ycyAhPT0gbnVsbCAmJiBjb250cm9sRXJyb3JzICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICBPYmplY3Qua2V5cyhjb250cm9sRXJyb3JzKS5mb3JFYWNoKChrZXlFcnJvcikgPT4ge1xyXG4gICAgICAgICAgZXJyb3JzLnB1c2goe1xyXG4gICAgICAgICAgICBuYW1lOiBrZXlFcnJvcixcclxuICAgICAgICAgICAgdmFsdWU6IGNvbnRyb2xFcnJvcnNba2V5RXJyb3JdXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBlcnJvcnM7XHJcbiAgfVxyXG5cclxuICBAbG9nTWV0aG9kXHJcbiAgZmluZEludmFsaWRDb250cm9sc1JlY3Vyc2l2ZShmb3JtVG9JbnZlc3RpZ2F0ZTogRm9ybUdyb3VwIHwgRm9ybUFycmF5KSB7XHJcbiAgICB2YXIgY29udHJvbHM6IGFueVtdID0gW107XHJcblxyXG4gICAgbGV0IHJlY3Vyc2l2ZUZ1bmMgPSAoZm9ybTogRm9ybUdyb3VwIHwgRm9ybUFycmF5KSA9PiB7XHJcbiAgICAgIE9iamVjdC5rZXlzKGZvcm0uY29udHJvbHMpLmZvckVhY2goKGZpZWxkOiBhbnkpID0+IHtcclxuICAgICAgICBjb25zdCBjb250cm9sID0gZm9ybS5nZXQoZmllbGQpO1xyXG4gICAgICAgIGlmIChjb250cm9sLmludmFsaWQpIHtcclxuICAgICAgICAgIGNvbnRyb2xzLnB1c2goe1xyXG4gICAgICAgICAgICBrZXk6IGZpZWxkLFxyXG4gICAgICAgICAgICBpbnZhbGlkOiB0cnVlXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29udHJvbHMucHVzaCh7XHJcbiAgICAgICAgICAgIGtleTogZmllbGQsXHJcbiAgICAgICAgICAgIGludmFsaWQ6IGZhbHNlXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtR3JvdXApIHtcclxuICAgICAgICAgIHJlY3Vyc2l2ZUZ1bmMoY29udHJvbCk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUFycmF5KSB7XHJcbiAgICAgICAgICByZWN1cnNpdmVGdW5jKGNvbnRyb2wpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9O1xyXG5cclxuICAgIHJlY3Vyc2l2ZUZ1bmMoZm9ybVRvSW52ZXN0aWdhdGUpO1xyXG5cclxuICAgIHJldHVybiBjb250cm9scztcclxuICB9XHJcblxyXG4gIEBsb2dNZXRob2RcclxuICBhc3luYyB2YWxpZGF0ZUZpZWxkKCk6IFByb21pc2U8YW55PiB7XHJcbiAgICBjb25zdCB2YWxpZGF0aW9ucyA9IHRoaXMuX2ZpZWxkLnZhbGlkYXRpb247XHJcblxyXG4gICAgY29uc3QgdHJpZ2dlcnMgPSB2YWxpZGF0aW9ucy50cmlnZ2VycztcclxuICAgIGNvbnN0IHJ1bGVzID0gdmFsaWRhdGlvbnMucnVsZXM7XHJcbiAgICBjb25zdCBhY3Rpb25zID0gdmFsaWRhdGlvbnMuYWN0aW9ucztcclxuXHJcbiAgICBjb25zdCBydWxlc01hcHBpbmcgPSBuZXcgUnVsZXMocnVsZXMsIHtcclxuICAgICAgRklFTERfQ09ORklHOiB0aGlzLl9maWVsZCxcclxuICAgICAgRk9STV9EQVRBOiB0aGlzLl9mb3JtRGF0YSxcclxuICAgICAgUFJFVklPVVNfRk9STV9EQVRBOiB0aGlzLl9wcmV2aW91c0Zvcm1EYXRhLFxyXG4gICAgICBBTExfRk9STVNfREFUQTogdGhpcy5fYWxsRm9ybXNEYXRhXHJcbiAgICB9KS5tYXBwaW5nKCk7XHJcblxyXG4gICAgZm9yIChsZXQgYWN0aW9uIG9mIGFjdGlvbnMpIHtcclxuICAgICAgY29uc3QgY29uZGl0aW9uRXZhbHVhdGlvbiA9IG5ldyBDb25kaXRpb24oXHJcbiAgICAgICAgYWN0aW9uLmNvbmRpdGlvbixcclxuICAgICAgICBydWxlc01hcHBpbmdcclxuICAgICAgKS5ldmFsdWF0ZSgpO1xyXG5cclxuICAgICAgaWYgKGNvbmRpdGlvbkV2YWx1YXRpb24pIHtcclxuICAgICAgICBjb25zdCBhY3Rpb25zID0gbmV3IEFjdGlvbnMoXHJcbiAgICAgICAgICBhY3Rpb24sXHJcbiAgICAgICAgICBydWxlc01hcHBpbmcsXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIEZJRUxEX0NPTkZJRzogdGhpcy5fZmllbGQsXHJcbiAgICAgICAgICAgIEZPUk1fREFUQTogdGhpcy5fZm9ybURhdGEsXHJcbiAgICAgICAgICAgIFBSRVZJT1VTX0ZPUk1fREFUQTogdGhpcy5fcHJldmlvdXNGb3JtRGF0YSxcclxuICAgICAgICAgICAgQUxMX0ZPUk1TX0RBVEE6IHRoaXMuX2FsbEZvcm1zRGF0YVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHRoaXMuX3Rha2VBY3Rpb25cclxuICAgICAgICApO1xyXG5cclxuICAgICAgICBhd2FpdCBhY3Rpb25zLmV4ZWN1dGUoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
1
+ import { __awaiter, __decorate } from "tslib";
2
+ import { FormArray, FormGroup, Validators } from "@angular/forms";
3
+ import { Actions, Condition, logMethod, Rules, checkObjectKeyExists, isNotEmptyValue } from "kwikid-toolkit";
4
+ import { EPattern, EPatternKey } from "../definitions/common/form-view.common.enum.definitions";
5
+ export class Validations {
6
+ constructor(field, formData, previousFormData, allFormsData, takeAction) {
7
+ this._field = field;
8
+ this._formData = formData;
9
+ this._previousFormData = previousFormData;
10
+ this._allFormsData = allFormsData;
11
+ this._takeAction = takeAction;
12
+ }
13
+ get formData() {
14
+ return this._formData;
15
+ }
16
+ set formData(value) {
17
+ this._formData = value;
18
+ }
19
+ get previousFormData() {
20
+ return this._previousFormData;
21
+ }
22
+ set previousFormData(value) {
23
+ this._previousFormData = value;
24
+ }
25
+ get allFormsData() {
26
+ return this._allFormsData;
27
+ }
28
+ set allFormsData(value) {
29
+ this._allFormsData = value;
30
+ }
31
+ get field() {
32
+ return this._field;
33
+ }
34
+ set field(value) {
35
+ this._field = value;
36
+ }
37
+ getFieldValidators(field) {
38
+ let validators = [];
39
+ if (checkObjectKeyExists(field, "validators") &&
40
+ checkObjectKeyExists(field.validators, "min") &&
41
+ isNotEmptyValue(field.validators.min)) {
42
+ validators.push(Validators.min(field.validators.min));
43
+ }
44
+ if (checkObjectKeyExists(field, "validators") &&
45
+ checkObjectKeyExists(field.validators, "max") &&
46
+ isNotEmptyValue(field.validators.max)) {
47
+ validators.push(Validators.max(field.validators.max));
48
+ }
49
+ if ((checkObjectKeyExists(field, "required") && field.required) ||
50
+ (checkObjectKeyExists(field, "validators") &&
51
+ checkObjectKeyExists(field.validators, "required") &&
52
+ field.validators.required)) {
53
+ validators.push(Validators.required);
54
+ }
55
+ if (checkObjectKeyExists(field, "validators") &&
56
+ checkObjectKeyExists(field.validators, "minLength") &&
57
+ isNotEmptyValue(field.validators.minLength)) {
58
+ validators.push(Validators.minLength(field.validators.minLength));
59
+ }
60
+ if (checkObjectKeyExists(field, "validators") &&
61
+ checkObjectKeyExists(field.validators, "maxLength") &&
62
+ isNotEmptyValue(field.validators.maxLength)) {
63
+ validators.push(Validators.maxLength(field.validators.maxLength));
64
+ }
65
+ if (checkObjectKeyExists(field, "validators") &&
66
+ checkObjectKeyExists(field.validators, "pattern") &&
67
+ isNotEmptyValue(field.validators.pattern)) {
68
+ if (checkObjectKeyExists(field.validators.pattern, "key")) {
69
+ if (field.validators.pattern.key === EPatternKey.CUSTOM) {
70
+ validators.push(Validators.pattern(field.validators.pattern.pattern));
71
+ }
72
+ else {
73
+ validators.push(Validators.pattern(EPattern[field.validators.pattern.key]));
74
+ }
75
+ }
76
+ }
77
+ return validators;
78
+ }
79
+ getFormValidationErrors(control) {
80
+ let errors = [];
81
+ for (const key in control.controls) {
82
+ const controlErrors = control.controls[key].errors;
83
+ if (controlErrors !== null && controlErrors !== undefined) {
84
+ Object.keys(controlErrors).forEach((keyError) => {
85
+ errors.push({
86
+ name: keyError,
87
+ value: controlErrors[keyError]
88
+ });
89
+ });
90
+ }
91
+ }
92
+ return errors;
93
+ }
94
+ findInvalidControlsRecursive(formToInvestigate) {
95
+ var controls = [];
96
+ let recursiveFunc = (form) => {
97
+ Object.keys(form.controls).forEach((field) => {
98
+ const control = form.get(field);
99
+ if (control.invalid) {
100
+ controls.push({
101
+ key: field,
102
+ invalid: true
103
+ });
104
+ }
105
+ else {
106
+ controls.push({
107
+ key: field,
108
+ invalid: false
109
+ });
110
+ }
111
+ if (control instanceof FormGroup) {
112
+ recursiveFunc(control);
113
+ }
114
+ else if (control instanceof FormArray) {
115
+ recursiveFunc(control);
116
+ }
117
+ });
118
+ };
119
+ recursiveFunc(formToInvestigate);
120
+ return controls;
121
+ }
122
+ validateField() {
123
+ return __awaiter(this, void 0, void 0, function* () {
124
+ const validations = this._field.validation;
125
+ const triggers = validations.triggers;
126
+ const rules = validations.rules;
127
+ const actions = validations.actions;
128
+ const rulesMapping = new Rules(rules, {
129
+ FIELD_CONFIG: this._field,
130
+ FORM_DATA: this._formData,
131
+ PREVIOUS_FORM_DATA: this._previousFormData,
132
+ ALL_FORMS_DATA: this._allFormsData
133
+ }).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, rulesMapping, {
138
+ FIELD_CONFIG: this._field,
139
+ FORM_DATA: this._formData,
140
+ PREVIOUS_FORM_DATA: this._previousFormData,
141
+ ALL_FORMS_DATA: this._allFormsData
142
+ }, this._takeAction);
143
+ yield actions.execute();
144
+ }
145
+ }
146
+ });
147
+ }
148
+ }
149
+ __decorate([
150
+ logMethod
151
+ ], Validations.prototype, "getFieldValidators", null);
152
+ __decorate([
153
+ logMethod
154
+ ], Validations.prototype, "getFormValidationErrors", null);
155
+ __decorate([
156
+ logMethod
157
+ ], Validations.prototype, "findInvalidControlsRecursive", null);
158
+ __decorate([
159
+ logMethod
160
+ ], Validations.prototype, "validateField", null);
161
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12aWV3LnZhbGlkYXRpb25zLmhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2t3aWtpZC1mb3Jtcy9zcmMvbGliL3JlbmRlcmVyL2Zvcm0tdmlldy9oZWxwZXJzL2Zvcm0tdmlldy52YWxpZGF0aW9ucy5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsU0FBUyxFQUVULFVBQVUsRUFDWCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFDTCxPQUFPLEVBQ1AsU0FBUyxFQUNULFNBQVMsRUFDVCxLQUFLLEVBQ0wsb0JBQW9CLEVBQ3BCLGVBQWUsRUFDaEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQ0wsUUFBUSxFQUNSLFdBQVcsRUFDWixNQUFNLHlEQUF5RCxDQUFDO0FBR2pFLE1BQU0sT0FBTyxXQUFXO0lBbUN0QixZQUNFLEtBQWEsRUFDYixRQUFhLEVBQ2IsZ0JBQXFCLEVBQ3JCLFlBQWlCLEVBQ2pCLFVBQWU7UUFFZixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztRQUMxQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsZ0JBQWdCLENBQUM7UUFDMUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxZQUFZLENBQUM7UUFDbEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUM7SUFDaEMsQ0FBQztJQTdDRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUNELElBQUksUUFBUSxDQUFDLEtBQVU7UUFDckIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDekIsQ0FBQztJQUdELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ2hDLENBQUM7SUFD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LGlCQUFpQjtnQkFDMUMsY0FBYyxFQUFFLElBQUksQ0FBQyxhQUFhO2FBQ25DLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUViLEtBQUssSUFBSSxNQUFNLElBQUksT0FBTyxFQUFFO2dCQUMxQixNQUFNLG1CQUFtQixHQUFHLElBQUksU0FBUyxDQUN2QyxNQUFNLENBQUMsU0FBUyxFQUNoQixZQUFZLENBQ2IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFFYixJQUFJLG1CQUFtQixFQUFFO29CQUN2QixNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FDekIsTUFBTSxFQUNOLFlBQVksRUFDWjt3QkFDRSxZQUFZLEVBQUUsSUFBSSxDQUFDLE1BQU07d0JBQ3pCLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUzt3QkFDekIsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQjt3QkFDMUMsY0FBYyxFQUFFLElBQUksQ0FBQyxhQUFhO3FCQUNuQyxFQUNELElBQUksQ0FBQyxXQUFXLENBQ2pCLENBQUM7b0JBRUYsTUFBTSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7aUJBQ3pCO2FBQ0Y7UUFDSCxDQUFDO0tBQUE7Q0FDRjtBQXBKQztJQURDLFNBQVM7cURBeURUO0FBR0Q7SUFEQyxTQUFTOzBEQW1CVDtBQUdEO0lBREMsU0FBUzsrREE2QlQ7QUFHRDtJQURDLFNBQVM7Z0RBcUNUIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRm9ybUFycmF5LFxuICBGb3JtR3JvdXAsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvcnNcbn0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQge1xuICBBY3Rpb25zLFxuICBDb25kaXRpb24sXG4gIGxvZ01ldGhvZCxcbiAgUnVsZXMsXG4gIGNoZWNrT2JqZWN0S2V5RXhpc3RzLFxuICBpc05vdEVtcHR5VmFsdWVcbn0gZnJvbSBcImt3aWtpZC10b29sa2l0XCI7XG5pbXBvcnQge1xuICBFUGF0dGVybixcbiAgRVBhdHRlcm5LZXlcbn0gZnJvbSBcIi4uL2RlZmluaXRpb25zL2NvbW1vbi9mb3JtLXZpZXcuY29tbW9uLmVudW0uZGVmaW5pdGlvbnNcIjtcbmltcG9ydCB7IFRGaWVsZCB9IGZyb20gXCIuLi9kZWZpbml0aW9ucy9maWVsZHMvZm9ybS12aWV3LmZpZWxkcy50eXBlLmRlZmluaXRpb25zXCI7XG5cbmV4cG9ydCBjbGFzcyBWYWxpZGF0aW9ucyB7XG4gIHByaXZhdGUgX2Zvcm1EYXRhOiBhbnk7XG4gIGdldCBmb3JtRGF0YSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLl9mb3JtRGF0YTtcbiAgfVxuICBzZXQgZm9ybURhdGEodmFsdWU6IGFueSkge1xuICAgIHRoaXMuX2Zvcm1EYXRhID0gdmFsdWU7XG4gIH1cblxuICBwcml2YXRlIF9wcmV2aW91c0Zvcm1EYXRhOiBhbnk7XG4gIGdldCBwcmV2aW91c0Zvcm1EYXRhKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuX3ByZXZpb3VzRm9ybURhdGE7XG4gIH1cbiAgc2V0IHByZXZpb3VzRm9ybURhdGEodmFsdWU6IGFueSkge1xuICAgIHRoaXMuX3ByZXZpb3VzRm9ybURhdGEgPSB2YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgX2FsbEZvcm1zRGF0YTogYW55O1xuICBnZXQgYWxsRm9ybXNEYXRhKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuX2FsbEZvcm1zRGF0YTtcbiAgfVxuICBzZXQgYWxsRm9ybXNEYXRhKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLl9hbGxGb3Jtc0RhdGEgPSB2YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgX2ZpZWxkOiBURmllbGQ7XG4gIGdldCBmaWVsZCgpOiBURmllbGQge1xuICAgIHJldHVybiB0aGlzLl9maWVsZDtcbiAgfVxuICBzZXQgZmllbGQodmFsdWU6IFRGaWVsZCkge1xuICAgIHRoaXMuX2ZpZWxkID0gdmFsdWU7XG4gIH1cblxuICBwcml2YXRlIF90YWtlQWN0aW9uOiBGdW5jdGlvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBmaWVsZDogVEZpZWxkLFxuICAgIGZvcm1EYXRhOiBhbnksXG4gICAgcHJldmlvdXNGb3JtRGF0YTogYW55LFxuICAgIGFsbEZvcm1zRGF0YTogYW55LFxuICAgIHRha2VBY3Rpb246IGFueVxuICApIHtcbiAgICB0aGlzLl9maWVsZCA9IGZpZWxkO1xuICAgIHRoaXMuX2Zvcm1EYXRhID0gZm9ybURhdGE7XG4gICAgdGhpcy5fcHJldmlvdXNGb3JtRGF0YSA9IHByZXZpb3VzRm9ybURhdGE7XG4gICAgdGhpcy5fYWxsRm9ybXNEYXRhID0gYWxsRm9ybXNEYXRhO1xuICAgIHRoaXMuX3Rha2VBY3Rpb24gPSB0YWtlQWN0aW9uO1xuICB9XG5cbiAgQGxvZ01ldGhvZFxuICBnZXRGaWVsZFZhbGlkYXRvcnMoZmllbGQ6IGFueSkge1xuICAgIGxldCB2YWxpZGF0b3JzID0gW107XG5cbiAgICBpZiAoXG4gICAgICBjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJ2YWxpZGF0b3JzXCIpICYmXG4gICAgICBjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZC52YWxpZGF0b3JzLCBcIm1pblwiKSAmJlxuICAgICAgaXNOb3RFbXB0eVZhbHVlKGZpZWxkLnZhbGlkYXRvcnMubWluKVxuICAgICkge1xuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWluKGZpZWxkLnZhbGlkYXRvcnMubWluKSk7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcInZhbGlkYXRvcnNcIikgJiZcbiAgICAgIGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLnZhbGlkYXRvcnMsIFwibWF4XCIpICYmXG4gICAgICBpc05vdEVtcHR5VmFsdWUoZmllbGQudmFsaWRhdG9ycy5tYXgpXG4gICAgKSB7XG4gICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5tYXgoZmllbGQudmFsaWRhdG9ycy5tYXgpKTtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcInJlcXVpcmVkXCIpICYmIGZpZWxkLnJlcXVpcmVkKSB8fFxuICAgICAgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcInZhbGlkYXRvcnNcIikgJiZcbiAgICAgICAgY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQudmFsaWRhdG9ycywgXCJyZXF1aXJlZFwiKSAmJlxuICAgICAgICBmaWVsZC52YWxpZGF0b3JzLnJlcXVpcmVkKVxuICAgICkge1xuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICBjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJ2YWxpZGF0b3JzXCIpICYmXG4gICAgICBjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZC52YWxpZGF0b3JzLCBcIm1pbkxlbmd0aFwiKSAmJlxuICAgICAgaXNOb3RFbXB0eVZhbHVlKGZpZWxkLnZhbGlkYXRvcnMubWluTGVuZ3RoKVxuICAgICkge1xuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWluTGVuZ3RoKGZpZWxkLnZhbGlkYXRvcnMubWluTGVuZ3RoKSk7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcInZhbGlkYXRvcnNcIikgJiZcbiAgICAgIGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLnZhbGlkYXRvcnMsIFwibWF4TGVuZ3RoXCIpICYmXG4gICAgICBpc05vdEVtcHR5VmFsdWUoZmllbGQudmFsaWRhdG9ycy5tYXhMZW5ndGgpXG4gICAgKSB7XG4gICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5tYXhMZW5ndGgoZmllbGQudmFsaWRhdG9ycy5tYXhMZW5ndGgpKTtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIFwidmFsaWRhdG9yc1wiKSAmJlxuICAgICAgY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQudmFsaWRhdG9ycywgXCJwYXR0ZXJuXCIpICYmXG4gICAgICBpc05vdEVtcHR5VmFsdWUoZmllbGQudmFsaWRhdG9ycy5wYXR0ZXJuKVxuICAgICkge1xuICAgICAgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLnZhbGlkYXRvcnMucGF0dGVybiwgXCJrZXlcIikpIHtcbiAgICAgICAgaWYgKGZpZWxkLnZhbGlkYXRvcnMucGF0dGVybi5rZXkgPT09IEVQYXR0ZXJuS2V5LkNVU1RPTSkge1xuICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLnBhdHRlcm4oZmllbGQudmFsaWRhdG9ycy5wYXR0ZXJuLnBhdHRlcm4pKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goXG4gICAgICAgICAgICBWYWxpZGF0b3JzLnBhdHRlcm4oRVBhdHRlcm5bZmllbGQudmFsaWRhdG9ycy5wYXR0ZXJuLmtleV0pXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB2YWxpZGF0b3JzO1xuICB9XG5cbiAgQGxvZ01ldGhvZFxuICBnZXRGb3JtVmFsaWRhdGlvbkVycm9ycyhcbiAgICBjb250cm9sOiBGb3JtR3JvdXBcbiAgKTogeyBuYW1lOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfVtdIHtcbiAgICBsZXQgZXJyb3JzOiB7IG5hbWU6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9W10gPSBbXTtcblxuICAgIGZvciAoY29uc3Qga2V5IGluIGNvbnRyb2wuY29udHJvbHMpIHtcbiAgICAgIGNvbnN0IGNvbnRyb2xFcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMgPSBjb250cm9sLmNvbnRyb2xzW2tleV0uZXJyb3JzO1xuICAgICAgaWYgKGNvbnRyb2xFcnJvcnMgIT09IG51bGwgJiYgY29udHJvbEVycm9ycyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIE9iamVjdC5rZXlzKGNvbnRyb2xFcnJvcnMpLmZvckVhY2goKGtleUVycm9yKSA9PiB7XG4gICAgICAgICAgZXJyb3JzLnB1c2goe1xuICAgICAgICAgICAgbmFtZToga2V5RXJyb3IsXG4gICAgICAgICAgICB2YWx1ZTogY29udHJvbEVycm9yc1trZXlFcnJvcl1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGVycm9ycztcbiAgfVxuXG4gIEBsb2dNZXRob2RcbiAgZmluZEludmFsaWRDb250cm9sc1JlY3Vyc2l2ZShmb3JtVG9JbnZlc3RpZ2F0ZTogRm9ybUdyb3VwIHwgRm9ybUFycmF5KSB7XG4gICAgdmFyIGNvbnRyb2xzOiBhbnlbXSA9IFtdO1xuXG4gICAgbGV0IHJlY3Vyc2l2ZUZ1bmMgPSAoZm9ybTogRm9ybUdyb3VwIHwgRm9ybUFycmF5KSA9PiB7XG4gICAgICBPYmplY3Qua2V5cyhmb3JtLmNvbnRyb2xzKS5mb3JFYWNoKChmaWVsZDogYW55KSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbnRyb2wgPSBmb3JtLmdldChmaWVsZCk7XG4gICAgICAgIGlmIChjb250cm9sLmludmFsaWQpIHtcbiAgICAgICAgICBjb250cm9scy5wdXNoKHtcbiAgICAgICAgICAgIGtleTogZmllbGQsXG4gICAgICAgICAgICBpbnZhbGlkOiB0cnVlXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29udHJvbHMucHVzaCh7XG4gICAgICAgICAgICBrZXk6IGZpZWxkLFxuICAgICAgICAgICAgaW52YWxpZDogZmFsc2VcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xuICAgICAgICAgIHJlY3Vyc2l2ZUZ1bmMoY29udHJvbCk7XG4gICAgICAgIH0gZWxzZSBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1BcnJheSkge1xuICAgICAgICAgIHJlY3Vyc2l2ZUZ1bmMoY29udHJvbCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICByZWN1cnNpdmVGdW5jKGZvcm1Ub0ludmVzdGlnYXRlKTtcblxuICAgIHJldHVybiBjb250cm9scztcbiAgfVxuXG4gIEBsb2dNZXRob2RcbiAgYXN5bmMgdmFsaWRhdGVGaWVsZCgpOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IHZhbGlkYXRpb25zID0gdGhpcy5fZmllbGQudmFsaWRhdGlvbjtcblxuICAgIGNvbnN0IHRyaWdnZXJzID0gdmFsaWRhdGlvbnMudHJpZ2dlcnM7XG4gICAgY29uc3QgcnVsZXMgPSB2YWxpZGF0aW9ucy5ydWxlcztcbiAgICBjb25zdCBhY3Rpb25zID0gdmFsaWRhdGlvbnMuYWN0aW9ucztcblxuICAgIGNvbnN0IHJ1bGVzTWFwcGluZyA9IG5ldyBSdWxlcyhydWxlcywge1xuICAgICAgRklFTERfQ09ORklHOiB0aGlzLl9maWVsZCxcbiAgICAgIEZPUk1fREFUQTogdGhpcy5fZm9ybURhdGEsXG4gICAgICBQUkVWSU9VU19GT1JNX0RBVEE6IHRoaXMuX3ByZXZpb3VzRm9ybURhdGEsXG4gICAgICBBTExfRk9STVNfREFUQTogdGhpcy5fYWxsRm9ybXNEYXRhXG4gICAgfSkubWFwcGluZygpO1xuXG4gICAgZm9yIChsZXQgYWN0aW9uIG9mIGFjdGlvbnMpIHtcbiAgICAgIGNvbnN0IGNvbmRpdGlvbkV2YWx1YXRpb24gPSBuZXcgQ29uZGl0aW9uKFxuICAgICAgICBhY3Rpb24uY29uZGl0aW9uLFxuICAgICAgICBydWxlc01hcHBpbmdcbiAgICAgICkuZXZhbHVhdGUoKTtcblxuICAgICAgaWYgKGNvbmRpdGlvbkV2YWx1YXRpb24pIHtcbiAgICAgICAgY29uc3QgYWN0aW9ucyA9IG5ldyBBY3Rpb25zKFxuICAgICAgICAgIGFjdGlvbixcbiAgICAgICAgICBydWxlc01hcHBpbmcsXG4gICAgICAgICAge1xuICAgICAgICAgICAgRklFTERfQ09ORklHOiB0aGlzLl9maWVsZCxcbiAgICAgICAgICAgIEZPUk1fREFUQTogdGhpcy5fZm9ybURhdGEsXG4gICAgICAgICAgICBQUkVWSU9VU19GT1JNX0RBVEE6IHRoaXMuX3ByZXZpb3VzRm9ybURhdGEsXG4gICAgICAgICAgICBBTExfRk9STVNfREFUQTogdGhpcy5fYWxsRm9ybXNEYXRhXG4gICAgICAgICAgfSxcbiAgICAgICAgICB0aGlzLl90YWtlQWN0aW9uXG4gICAgICAgICk7XG5cbiAgICAgICAgYXdhaXQgYWN0aW9ucy5leGVjdXRlKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=