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.
Files changed (87) hide show
  1. package/README.md +44 -0
  2. package/assets/done1.png +0 -0
  3. package/assets/edit.png +0 -0
  4. package/assets/lock.png +0 -0
  5. package/esm2015/kwikid-forms.js +5 -0
  6. package/esm2015/lib/builder/builder.component.js +138 -0
  7. package/esm2015/lib/builder/builder.module.js +21 -0
  8. package/esm2015/lib/kwikid-forms.module.js +53 -0
  9. package/esm2015/lib/renderer/form-view/definitions/actions/form-view.actions.enum.definitions.js +16 -0
  10. package/esm2015/lib/renderer/form-view/definitions/actions/form-view.actions.type.definitions.js +2 -0
  11. package/esm2015/lib/renderer/form-view/definitions/apis/form-view.apis.enum.definitions.js +8 -0
  12. package/esm2015/lib/renderer/form-view/definitions/apis/form-view.apis.type.definitions.js +2 -0
  13. package/esm2015/lib/renderer/form-view/definitions/common/form-view.common.enum.definitions.js +47 -0
  14. package/esm2015/lib/renderer/form-view/definitions/common/form-view.common.type.definitions.js +2 -0
  15. package/esm2015/lib/renderer/form-view/definitions/fields/form-view.fields.enum.definitions.js +15 -0
  16. package/esm2015/lib/renderer/form-view/definitions/fields/form-view.fields.type.definitions.js +2 -0
  17. package/esm2015/lib/renderer/form-view/definitions/rules/form-view.rules.enum.definitions.js +7 -0
  18. package/esm2015/lib/renderer/form-view/definitions/rules/form-view.rules.type.definitions.js +2 -0
  19. package/esm2015/lib/renderer/form-view/definitions/sources/form-view.sources.enum.definitions.js +16 -0
  20. package/esm2015/lib/renderer/form-view/definitions/sources/form-view.sources.type.definitions.js +2 -0
  21. package/esm2015/lib/renderer/form-view/definitions/triggers/form-view.triggers.type.definitions.js +2 -0
  22. package/esm2015/lib/renderer/form-view/definitions/validations/form-view.validations.type.definitions.js +2 -0
  23. package/esm2015/lib/renderer/form-view/form-view.component.js +654 -0
  24. package/esm2015/lib/renderer/form-view/form-view.decorators.js +93 -0
  25. package/esm2015/lib/renderer/form-view/form-view.module.js +37 -0
  26. package/esm2015/lib/renderer/form-view/form-view.service.js +27 -0
  27. package/esm2015/lib/renderer/form-view/helpers/form-view.actions.helper.js +27 -0
  28. package/esm2015/lib/renderer/form-view/helpers/form-view.apis.helper.js +105 -0
  29. package/esm2015/lib/renderer/form-view/helpers/form-view.common.helper.js +136 -0
  30. package/esm2015/lib/renderer/form-view/helpers/form-view.condition.helper.js +46 -0
  31. package/esm2015/lib/renderer/form-view/helpers/form-view.defaults.helper.js +52 -0
  32. package/esm2015/lib/renderer/form-view/helpers/form-view.fields.helper.js +146 -0
  33. package/esm2015/lib/renderer/form-view/helpers/form-view.rules.helper.js +86 -0
  34. package/esm2015/lib/renderer/form-view/helpers/form-view.sources.helper.js +161 -0
  35. package/esm2015/lib/renderer/form-view/helpers/form-view.validations.helper.js +156 -0
  36. package/esm2015/lib/renderer/forms-list/forms-list.component.js +61 -0
  37. package/esm2015/lib/renderer/forms-list/forms-list.helper.js +4 -0
  38. package/esm2015/lib/renderer/forms-list/forms-list.module.js +37 -0
  39. package/esm2015/lib/renderer/renderer.component.js +201 -0
  40. package/esm2015/lib/renderer/renderer.config-converter.helper.js +530 -0
  41. package/esm2015/lib/renderer/renderer.helper.js +50 -0
  42. package/esm2015/lib/renderer/renderer.module.js +39 -0
  43. package/esm2015/lib/renderer/renderer.service.js +115 -0
  44. package/esm2015/public_api.js +17 -0
  45. package/fesm2015/kwikid-forms.js +2970 -0
  46. package/fesm2015/kwikid-forms.js.map +1 -0
  47. package/kwikid-forms.d.ts +5 -0
  48. package/lib/builder/builder.component.d.ts +68 -0
  49. package/lib/builder/builder.module.d.ts +10 -0
  50. package/lib/kwikid-forms.module.d.ts +13 -0
  51. package/lib/renderer/form-view/definitions/actions/form-view.actions.enum.definitions.d.ts +14 -0
  52. package/lib/renderer/form-view/definitions/actions/form-view.actions.type.definitions.d.ts +91 -0
  53. package/lib/renderer/form-view/definitions/apis/form-view.apis.enum.definitions.d.ts +6 -0
  54. package/lib/renderer/form-view/definitions/apis/form-view.apis.type.definitions.d.ts +40 -0
  55. package/lib/renderer/form-view/definitions/common/form-view.common.enum.definitions.d.ts +43 -0
  56. package/lib/renderer/form-view/definitions/common/form-view.common.type.definitions.d.ts +7 -0
  57. package/lib/renderer/form-view/definitions/fields/form-view.fields.enum.definitions.d.ts +13 -0
  58. package/lib/renderer/form-view/definitions/fields/form-view.fields.type.definitions.d.ts +137 -0
  59. package/lib/renderer/form-view/definitions/rules/form-view.rules.enum.definitions.d.ts +5 -0
  60. package/lib/renderer/form-view/definitions/rules/form-view.rules.type.definitions.d.ts +41 -0
  61. package/lib/renderer/form-view/definitions/sources/form-view.sources.enum.definitions.d.ts +13 -0
  62. package/lib/renderer/form-view/definitions/sources/form-view.sources.type.definitions.d.ts +16 -0
  63. package/lib/renderer/form-view/definitions/triggers/form-view.triggers.type.definitions.d.ts +1 -0
  64. package/lib/renderer/form-view/definitions/validations/form-view.validations.type.definitions.d.ts +17 -0
  65. package/lib/renderer/form-view/form-view.component.d.ts +66 -0
  66. package/lib/renderer/form-view/form-view.decorators.d.ts +7 -0
  67. package/lib/renderer/form-view/form-view.module.d.ts +11 -0
  68. package/lib/renderer/form-view/form-view.service.d.ts +5 -0
  69. package/lib/renderer/form-view/helpers/form-view.actions.helper.d.ts +13 -0
  70. package/lib/renderer/form-view/helpers/form-view.apis.helper.d.ts +17 -0
  71. package/lib/renderer/form-view/helpers/form-view.common.helper.d.ts +19 -0
  72. package/lib/renderer/form-view/helpers/form-view.condition.helper.d.ts +8 -0
  73. package/lib/renderer/form-view/helpers/form-view.defaults.helper.d.ts +10 -0
  74. package/lib/renderer/form-view/helpers/form-view.fields.helper.d.ts +20 -0
  75. package/lib/renderer/form-view/helpers/form-view.rules.helper.d.ts +12 -0
  76. package/lib/renderer/form-view/helpers/form-view.sources.helper.d.ts +29 -0
  77. package/lib/renderer/form-view/helpers/form-view.validations.helper.d.ts +25 -0
  78. package/lib/renderer/forms-list/forms-list.component.d.ts +18 -0
  79. package/lib/renderer/forms-list/forms-list.helper.d.ts +1 -0
  80. package/lib/renderer/forms-list/forms-list.module.d.ts +11 -0
  81. package/lib/renderer/renderer.component.d.ts +30 -0
  82. package/lib/renderer/renderer.config-converter.helper.d.ts +7 -0
  83. package/lib/renderer/renderer.helper.d.ts +6 -0
  84. package/lib/renderer/renderer.module.d.ts +12 -0
  85. package/lib/renderer/renderer.service.d.ts +27 -0
  86. package/package.json +47 -0
  87. package/public_api.d.ts +9 -0
@@ -0,0 +1,93 @@
1
+ /**
2
+ * A function that logs the execution of a method.
3
+ * @param {any} target - The object the method belongs to.
4
+ * @param {string} propertyKey - The name of the method.
5
+ * @param {PropertyDescriptor} descriptor - The property descriptor for the method.
6
+ */
7
+ export function log(target, propertyKey, descriptor) {
8
+ // save a reference to the original method
9
+ const originalMethod = descriptor.value;
10
+ // update the descriptor value with a new function that will log and execute the original method
11
+ descriptor.value = function (...args) {
12
+ console.group("Logging Method"); // start a new logging group
13
+ console.time("Execution Time:"); // start a timer
14
+ let result; // declare result variable
15
+ try {
16
+ // execute the original method and save the result
17
+ result = originalMethod.apply(this, args);
18
+ }
19
+ catch (error) {
20
+ // if an error is thrown, log the error and throw it again
21
+ logSyncMethodError(target.constructor.name, propertyKey, args, error);
22
+ console.timeEnd(`Execution Time:`); // stop the timer
23
+ console.groupEnd(); // end the logging group
24
+ throw error;
25
+ }
26
+ // if the result is a Promise, handle it as an async method
27
+ if (result instanceof Promise) {
28
+ result = result
29
+ .then((resolvedValue) => {
30
+ // on success, log the resolved value and return it
31
+ logAsyncMethod(target.constructor.name, propertyKey, args, resolvedValue);
32
+ console.timeEnd(`Execution Time:`); // stop the timer
33
+ console.groupEnd(); // end the logging group
34
+ return resolvedValue;
35
+ })
36
+ .catch((error) => {
37
+ // on error, log the error and throw it again
38
+ logAsyncMethodError(target.constructor.name, propertyKey, args, error);
39
+ console.timeEnd(`Execution Time:`); // stop the timer
40
+ console.groupEnd(); // end the logging group
41
+ throw error;
42
+ });
43
+ }
44
+ else {
45
+ // if the result is not a Promise, handle it as a sync method
46
+ logSyncMethod(target.constructor.name, propertyKey, args, result);
47
+ console.timeEnd("Execution Time:");
48
+ console.groupEnd();
49
+ }
50
+ return result;
51
+ };
52
+ }
53
+ /**
54
+ * This function logs a sync method's information to the console.
55
+ * @param {string} className - The name of the class where the method belongs.
56
+ * @param {string} methodName - The name of the method being called.
57
+ * @param {any[]} args - An array of arguments passed to the method.
58
+ * @param {any} result - The result of the method.
59
+ */
60
+ function logSyncMethod(className, methodName, args, result) {
61
+ console.log("%cType: Sync Method -", "color: #0d47a1; font-weight: bold;", "\nClass:", className, "\nMethod:", methodName, "\nArgs:", args, "\nReturn:", result);
62
+ }
63
+ /**
64
+ * Logs an error that occurred during the execution of a synchronous method.
65
+ * @param {string} className - The name of the class the method belongs to.
66
+ * @param {string} methodName - The name of the method.
67
+ * @param {any[]} args - The arguments passed to the method.
68
+ * @param {Error} error - The error that occurred.
69
+ */
70
+ function logSyncMethodError(className, methodName, args, error) {
71
+ console.log("%cType: Sync Method -", "color: #0d47a1; font-weight: bold;", "\nClass:", className, "\nMethod:", methodName, "\nArgs:", args, "\nError:", error);
72
+ }
73
+ /**
74
+ * Logs the result of the execution of an asynchronous method.
75
+ * @param {string} className - The name of the class the method belongs to.
76
+ * @param {string} methodName - The name of the method.
77
+ * @param {any[]} args - The arguments passed to the method.
78
+ * @param {any} result - The result of the method execution.
79
+ */
80
+ function logAsyncMethod(className, methodName, args, result) {
81
+ console.log("%cType: Async Method -", "color: #1565c0; font-weight: bold;", "\nClass:", className, "\nMethod:", methodName, "\nArgs:", args, "\nReturn:", result);
82
+ }
83
+ /**
84
+ * Logs an error that occurred during the execution of an asynchronous method.
85
+ * @param {string} className - The name of the class the method belongs to.
86
+ * @param {string} methodName - The name of the method.
87
+ * @param {any[]} args - The arguments passed to the method.
88
+ * @param {Error} error - The error that occurred.
89
+ */
90
+ function logAsyncMethodError(className, methodName, args, error) {
91
+ console.log("%cType: Async Method -", "color: #1565c0; font-weight: bold;", "\nClass:", className, "\nMethod:", methodName, "\nArgs:", args, "\nError:", error);
92
+ }
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12aWV3LmRlY29yYXRvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtZm9ybXMvc3JjL2xpYi9yZW5kZXJlci9mb3JtLXZpZXcvZm9ybS12aWV3LmRlY29yYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsR0FBRyxDQUNqQixNQUFXLEVBQ1gsV0FBbUIsRUFDbkIsVUFBOEI7SUFFOUIsMENBQTBDO0lBQzFDLE1BQU0sY0FBYyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUM7SUFDeEMsZ0dBQWdHO0lBQ2hHLFVBQVUsQ0FBQyxLQUFLLEdBQUcsVUFBVSxHQUFHLElBQVc7UUFDekMsT0FBTyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsNEJBQTRCO1FBQzdELE9BQU8sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLGdCQUFnQjtRQUVqRCxJQUFJLE1BQU0sQ0FBQyxDQUFDLDBCQUEwQjtRQUN0QyxJQUFJO1lBQ0Ysa0RBQWtEO1lBQ2xELE1BQU0sR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztTQUMzQztRQUFDLE9BQU8sS0FBSyxFQUFFO1lBQ2QsMERBQTBEO1lBQzFELGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDdEUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsaUJBQWlCO1lBQ3JELE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLHdCQUF3QjtZQUM1QyxNQUFNLEtBQUssQ0FBQztTQUNiO1FBRUQsMkRBQTJEO1FBQzNELElBQUksTUFBTSxZQUFZLE9BQU8sRUFBRTtZQUM3QixNQUFNLEdBQUcsTUFBTTtpQkFDWixJQUFJLENBQUMsQ0FBQyxhQUFhLEVBQUUsRUFBRTtnQkFDdEIsbURBQW1EO2dCQUNuRCxjQUFjLENBQ1osTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQ3ZCLFdBQVcsRUFDWCxJQUFJLEVBQ0osYUFBYSxDQUNkLENBQUM7Z0JBQ0YsT0FBTyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsaUJBQWlCO2dCQUNyRCxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyx3QkFBd0I7Z0JBQzVDLE9BQU8sYUFBYSxDQUFDO1lBQ3ZCLENBQUMsQ0FBQztpQkFDRCxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDZiw2Q0FBNkM7Z0JBQzdDLG1CQUFtQixDQUNqQixNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksRUFDdkIsV0FBVyxFQUNYLElBQUksRUFDSixLQUFLLENBQ04sQ0FBQztnQkFDRixPQUFPLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxpQkFBaUI7Z0JBQ3JELE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLHdCQUF3QjtnQkFDNUMsTUFBTSxLQUFLLENBQUM7WUFDZCxDQUFDLENBQUMsQ0FBQztTQUNOO2FBQU07WUFDTCw2REFBNkQ7WUFDN0QsYUFBYSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDbEUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQ25DLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUNwQjtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxTQUFTLGFBQWEsQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxNQUFNO0lBQ3hELE9BQU8sQ0FBQyxHQUFHLENBQ1QsdUJBQXVCLEVBQ3ZCLG9DQUFvQyxFQUNwQyxVQUFVLEVBQ1YsU0FBUyxFQUNULFdBQVcsRUFDWCxVQUFVLEVBQ1YsU0FBUyxFQUNULElBQUksRUFDSixXQUFXLEVBQ1gsTUFBTSxDQUNQLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsU0FBUyxrQkFBa0IsQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxLQUFLO0lBQzVELE9BQU8sQ0FBQyxHQUFHLENBQ1QsdUJBQXVCLEVBQ3ZCLG9DQUFvQyxFQUNwQyxVQUFVLEVBQ1YsU0FBUyxFQUNULFdBQVcsRUFDWCxVQUFVLEVBQ1YsU0FBUyxFQUNULElBQUksRUFDSixVQUFVLEVBQ1YsS0FBSyxDQUNOLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsU0FBUyxjQUFjLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsTUFBTTtJQUN6RCxPQUFPLENBQUMsR0FBRyxDQUNULHdCQUF3QixFQUN4QixvQ0FBb0MsRUFDcEMsVUFBVSxFQUNWLFNBQVMsRUFDVCxXQUFXLEVBQ1gsVUFBVSxFQUNWLFNBQVMsRUFDVCxJQUFJLEVBQ0osV0FBVyxFQUNYLE1BQU0sQ0FDUCxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILFNBQVMsbUJBQW1CLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsS0FBSztJQUM3RCxPQUFPLENBQUMsR0FBRyxDQUNULHdCQUF3QixFQUN4QixvQ0FBb0MsRUFDcEMsVUFBVSxFQUNWLFNBQVMsRUFDVCxXQUFXLEVBQ1gsVUFBVSxFQUNWLFNBQVMsRUFDVCxJQUFJLEVBQ0osVUFBVSxFQUNWLEtBQUssQ0FDTixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBBIGZ1bmN0aW9uIHRoYXQgbG9ncyB0aGUgZXhlY3V0aW9uIG9mIGEgbWV0aG9kLlxyXG4gKiBAcGFyYW0ge2FueX0gdGFyZ2V0IC0gVGhlIG9iamVjdCB0aGUgbWV0aG9kIGJlbG9uZ3MgdG8uXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBwcm9wZXJ0eUtleSAtIFRoZSBuYW1lIG9mIHRoZSBtZXRob2QuXHJcbiAqIEBwYXJhbSB7UHJvcGVydHlEZXNjcmlwdG9yfSBkZXNjcmlwdG9yIC0gVGhlIHByb3BlcnR5IGRlc2NyaXB0b3IgZm9yIHRoZSBtZXRob2QuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gbG9nKFxyXG4gIHRhcmdldDogYW55LFxyXG4gIHByb3BlcnR5S2V5OiBzdHJpbmcsXHJcbiAgZGVzY3JpcHRvcjogUHJvcGVydHlEZXNjcmlwdG9yXHJcbikge1xyXG4gIC8vIHNhdmUgYSByZWZlcmVuY2UgdG8gdGhlIG9yaWdpbmFsIG1ldGhvZFxyXG4gIGNvbnN0IG9yaWdpbmFsTWV0aG9kID0gZGVzY3JpcHRvci52YWx1ZTtcclxuICAvLyB1cGRhdGUgdGhlIGRlc2NyaXB0b3IgdmFsdWUgd2l0aCBhIG5ldyBmdW5jdGlvbiB0aGF0IHdpbGwgbG9nIGFuZCBleGVjdXRlIHRoZSBvcmlnaW5hbCBtZXRob2RcclxuICBkZXNjcmlwdG9yLnZhbHVlID0gZnVuY3Rpb24gKC4uLmFyZ3M6IGFueVtdKSB7XHJcbiAgICBjb25zb2xlLmdyb3VwKFwiTG9nZ2luZyBNZXRob2RcIik7IC8vIHN0YXJ0IGEgbmV3IGxvZ2dpbmcgZ3JvdXBcclxuICAgIGNvbnNvbGUudGltZShcIkV4ZWN1dGlvbiBUaW1lOlwiKTsgLy8gc3RhcnQgYSB0aW1lclxyXG5cclxuICAgIGxldCByZXN1bHQ7IC8vIGRlY2xhcmUgcmVzdWx0IHZhcmlhYmxlXHJcbiAgICB0cnkge1xyXG4gICAgICAvLyBleGVjdXRlIHRoZSBvcmlnaW5hbCBtZXRob2QgYW5kIHNhdmUgdGhlIHJlc3VsdFxyXG4gICAgICByZXN1bHQgPSBvcmlnaW5hbE1ldGhvZC5hcHBseSh0aGlzLCBhcmdzKTtcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIC8vIGlmIGFuIGVycm9yIGlzIHRocm93biwgbG9nIHRoZSBlcnJvciBhbmQgdGhyb3cgaXQgYWdhaW5cclxuICAgICAgbG9nU3luY01ldGhvZEVycm9yKHRhcmdldC5jb25zdHJ1Y3Rvci5uYW1lLCBwcm9wZXJ0eUtleSwgYXJncywgZXJyb3IpO1xyXG4gICAgICBjb25zb2xlLnRpbWVFbmQoYEV4ZWN1dGlvbiBUaW1lOmApOyAvLyBzdG9wIHRoZSB0aW1lclxyXG4gICAgICBjb25zb2xlLmdyb3VwRW5kKCk7IC8vIGVuZCB0aGUgbG9nZ2luZyBncm91cFxyXG4gICAgICB0aHJvdyBlcnJvcjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBpZiB0aGUgcmVzdWx0IGlzIGEgUHJvbWlzZSwgaGFuZGxlIGl0IGFzIGFuIGFzeW5jIG1ldGhvZFxyXG4gICAgaWYgKHJlc3VsdCBpbnN0YW5jZW9mIFByb21pc2UpIHtcclxuICAgICAgcmVzdWx0ID0gcmVzdWx0XHJcbiAgICAgICAgLnRoZW4oKHJlc29sdmVkVmFsdWUpID0+IHtcclxuICAgICAgICAgIC8vIG9uIHN1Y2Nlc3MsIGxvZyB0aGUgcmVzb2x2ZWQgdmFsdWUgYW5kIHJldHVybiBpdFxyXG4gICAgICAgICAgbG9nQXN5bmNNZXRob2QoXHJcbiAgICAgICAgICAgIHRhcmdldC5jb25zdHJ1Y3Rvci5uYW1lLFxyXG4gICAgICAgICAgICBwcm9wZXJ0eUtleSxcclxuICAgICAgICAgICAgYXJncyxcclxuICAgICAgICAgICAgcmVzb2x2ZWRWYWx1ZVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIGNvbnNvbGUudGltZUVuZChgRXhlY3V0aW9uIFRpbWU6YCk7IC8vIHN0b3AgdGhlIHRpbWVyXHJcbiAgICAgICAgICBjb25zb2xlLmdyb3VwRW5kKCk7IC8vIGVuZCB0aGUgbG9nZ2luZyBncm91cFxyXG4gICAgICAgICAgcmV0dXJuIHJlc29sdmVkVmFsdWU7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICAvLyBvbiBlcnJvciwgbG9nIHRoZSBlcnJvciBhbmQgdGhyb3cgaXQgYWdhaW5cclxuICAgICAgICAgIGxvZ0FzeW5jTWV0aG9kRXJyb3IoXHJcbiAgICAgICAgICAgIHRhcmdldC5jb25zdHJ1Y3Rvci5uYW1lLFxyXG4gICAgICAgICAgICBwcm9wZXJ0eUtleSxcclxuICAgICAgICAgICAgYXJncyxcclxuICAgICAgICAgICAgZXJyb3JcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBjb25zb2xlLnRpbWVFbmQoYEV4ZWN1dGlvbiBUaW1lOmApOyAvLyBzdG9wIHRoZSB0aW1lclxyXG4gICAgICAgICAgY29uc29sZS5ncm91cEVuZCgpOyAvLyBlbmQgdGhlIGxvZ2dpbmcgZ3JvdXBcclxuICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gaWYgdGhlIHJlc3VsdCBpcyBub3QgYSBQcm9taXNlLCBoYW5kbGUgaXQgYXMgYSBzeW5jIG1ldGhvZFxyXG4gICAgICBsb2dTeW5jTWV0aG9kKHRhcmdldC5jb25zdHJ1Y3Rvci5uYW1lLCBwcm9wZXJ0eUtleSwgYXJncywgcmVzdWx0KTtcclxuICAgICAgY29uc29sZS50aW1lRW5kKFwiRXhlY3V0aW9uIFRpbWU6XCIpO1xyXG4gICAgICBjb25zb2xlLmdyb3VwRW5kKCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH07XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUaGlzIGZ1bmN0aW9uIGxvZ3MgYSBzeW5jIG1ldGhvZCdzIGluZm9ybWF0aW9uIHRvIHRoZSBjb25zb2xlLlxyXG4gKiBAcGFyYW0ge3N0cmluZ30gY2xhc3NOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIGNsYXNzIHdoZXJlIHRoZSBtZXRob2QgYmVsb25ncy5cclxuICogQHBhcmFtIHtzdHJpbmd9IG1ldGhvZE5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgbWV0aG9kIGJlaW5nIGNhbGxlZC5cclxuICogQHBhcmFtIHthbnlbXX0gYXJncyAtIEFuIGFycmF5IG9mIGFyZ3VtZW50cyBwYXNzZWQgdG8gdGhlIG1ldGhvZC5cclxuICogQHBhcmFtIHthbnl9IHJlc3VsdCAtIFRoZSByZXN1bHQgb2YgdGhlIG1ldGhvZC5cclxuICovXHJcbmZ1bmN0aW9uIGxvZ1N5bmNNZXRob2QoY2xhc3NOYW1lLCBtZXRob2ROYW1lLCBhcmdzLCByZXN1bHQpIHtcclxuICBjb25zb2xlLmxvZyhcclxuICAgIFwiJWNUeXBlOiBTeW5jIE1ldGhvZCAtXCIsXHJcbiAgICBcImNvbG9yOiAjMGQ0N2ExOyBmb250LXdlaWdodDogYm9sZDtcIixcclxuICAgIFwiXFxuQ2xhc3M6XCIsXHJcbiAgICBjbGFzc05hbWUsXHJcbiAgICBcIlxcbk1ldGhvZDpcIixcclxuICAgIG1ldGhvZE5hbWUsXHJcbiAgICBcIlxcbkFyZ3M6XCIsXHJcbiAgICBhcmdzLFxyXG4gICAgXCJcXG5SZXR1cm46XCIsXHJcbiAgICByZXN1bHRcclxuICApO1xyXG59XHJcblxyXG4vKipcclxuICogTG9ncyBhbiBlcnJvciB0aGF0IG9jY3VycmVkIGR1cmluZyB0aGUgZXhlY3V0aW9uIG9mIGEgc3luY2hyb25vdXMgbWV0aG9kLlxyXG4gKiBAcGFyYW0ge3N0cmluZ30gY2xhc3NOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIGNsYXNzIHRoZSBtZXRob2QgYmVsb25ncyB0by5cclxuICogQHBhcmFtIHtzdHJpbmd9IG1ldGhvZE5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgbWV0aG9kLlxyXG4gKiBAcGFyYW0ge2FueVtdfSBhcmdzIC0gVGhlIGFyZ3VtZW50cyBwYXNzZWQgdG8gdGhlIG1ldGhvZC5cclxuICogQHBhcmFtIHtFcnJvcn0gZXJyb3IgLSBUaGUgZXJyb3IgdGhhdCBvY2N1cnJlZC5cclxuICovXHJcbmZ1bmN0aW9uIGxvZ1N5bmNNZXRob2RFcnJvcihjbGFzc05hbWUsIG1ldGhvZE5hbWUsIGFyZ3MsIGVycm9yKSB7XHJcbiAgY29uc29sZS5sb2coXHJcbiAgICBcIiVjVHlwZTogU3luYyBNZXRob2QgLVwiLFxyXG4gICAgXCJjb2xvcjogIzBkNDdhMTsgZm9udC13ZWlnaHQ6IGJvbGQ7XCIsXHJcbiAgICBcIlxcbkNsYXNzOlwiLFxyXG4gICAgY2xhc3NOYW1lLFxyXG4gICAgXCJcXG5NZXRob2Q6XCIsXHJcbiAgICBtZXRob2ROYW1lLFxyXG4gICAgXCJcXG5BcmdzOlwiLFxyXG4gICAgYXJncyxcclxuICAgIFwiXFxuRXJyb3I6XCIsXHJcbiAgICBlcnJvclxyXG4gICk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBMb2dzIHRoZSByZXN1bHQgb2YgdGhlIGV4ZWN1dGlvbiBvZiBhbiBhc3luY2hyb25vdXMgbWV0aG9kLlxyXG4gKiBAcGFyYW0ge3N0cmluZ30gY2xhc3NOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIGNsYXNzIHRoZSBtZXRob2QgYmVsb25ncyB0by5cclxuICogQHBhcmFtIHtzdHJpbmd9IG1ldGhvZE5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgbWV0aG9kLlxyXG4gKiBAcGFyYW0ge2FueVtdfSBhcmdzIC0gVGhlIGFyZ3VtZW50cyBwYXNzZWQgdG8gdGhlIG1ldGhvZC5cclxuICogQHBhcmFtIHthbnl9IHJlc3VsdCAtIFRoZSByZXN1bHQgb2YgdGhlIG1ldGhvZCBleGVjdXRpb24uXHJcbiAqL1xyXG5mdW5jdGlvbiBsb2dBc3luY01ldGhvZChjbGFzc05hbWUsIG1ldGhvZE5hbWUsIGFyZ3MsIHJlc3VsdCkge1xyXG4gIGNvbnNvbGUubG9nKFxyXG4gICAgXCIlY1R5cGU6IEFzeW5jIE1ldGhvZCAtXCIsXHJcbiAgICBcImNvbG9yOiAjMTU2NWMwOyBmb250LXdlaWdodDogYm9sZDtcIixcclxuICAgIFwiXFxuQ2xhc3M6XCIsXHJcbiAgICBjbGFzc05hbWUsXHJcbiAgICBcIlxcbk1ldGhvZDpcIixcclxuICAgIG1ldGhvZE5hbWUsXHJcbiAgICBcIlxcbkFyZ3M6XCIsXHJcbiAgICBhcmdzLFxyXG4gICAgXCJcXG5SZXR1cm46XCIsXHJcbiAgICByZXN1bHRcclxuICApO1xyXG59XHJcblxyXG4vKipcclxuICogTG9ncyBhbiBlcnJvciB0aGF0IG9jY3VycmVkIGR1cmluZyB0aGUgZXhlY3V0aW9uIG9mIGFuIGFzeW5jaHJvbm91cyBtZXRob2QuXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBjbGFzc05hbWUgLSBUaGUgbmFtZSBvZiB0aGUgY2xhc3MgdGhlIG1ldGhvZCBiZWxvbmdzIHRvLlxyXG4gKiBAcGFyYW0ge3N0cmluZ30gbWV0aG9kTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBtZXRob2QuXHJcbiAqIEBwYXJhbSB7YW55W119IGFyZ3MgLSBUaGUgYXJndW1lbnRzIHBhc3NlZCB0byB0aGUgbWV0aG9kLlxyXG4gKiBAcGFyYW0ge0Vycm9yfSBlcnJvciAtIFRoZSBlcnJvciB0aGF0IG9jY3VycmVkLlxyXG4gKi9cclxuZnVuY3Rpb24gbG9nQXN5bmNNZXRob2RFcnJvcihjbGFzc05hbWUsIG1ldGhvZE5hbWUsIGFyZ3MsIGVycm9yKSB7XHJcbiAgY29uc29sZS5sb2coXHJcbiAgICBcIiVjVHlwZTogQXN5bmMgTWV0aG9kIC1cIixcclxuICAgIFwiY29sb3I6ICMxNTY1YzA7IGZvbnQtd2VpZ2h0OiBib2xkO1wiLFxyXG4gICAgXCJcXG5DbGFzczpcIixcclxuICAgIGNsYXNzTmFtZSxcclxuICAgIFwiXFxuTWV0aG9kOlwiLFxyXG4gICAgbWV0aG9kTmFtZSxcclxuICAgIFwiXFxuQXJnczpcIixcclxuICAgIGFyZ3MsXHJcbiAgICBcIlxcbkVycm9yOlwiLFxyXG4gICAgZXJyb3JcclxuICApO1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,37 @@
1
+ import { CommonModule } from "@angular/common";
2
+ import { NgModule } from "@angular/core";
3
+ import { FormsModule, ReactiveFormsModule } from "@angular/forms";
4
+ import { TuiLabelModule } from "@taiga-ui/core";
5
+ import { KwikUIModule } from "kwikui";
6
+ import { KwikIDFormViewComponent } from "./form-view.component";
7
+ import * as i0 from "@angular/core";
8
+ export class KwikIDFormViewModule {
9
+ }
10
+ /** @nocollapse */ KwikIDFormViewModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: KwikIDFormViewModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
+ /** @nocollapse */ KwikIDFormViewModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: KwikIDFormViewModule, declarations: [KwikIDFormViewComponent], imports: [CommonModule,
12
+ FormsModule,
13
+ ReactiveFormsModule,
14
+ TuiLabelModule,
15
+ KwikUIModule], exports: [KwikIDFormViewComponent] });
16
+ /** @nocollapse */ KwikIDFormViewModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: KwikIDFormViewModule, imports: [[
17
+ CommonModule,
18
+ FormsModule,
19
+ ReactiveFormsModule,
20
+ TuiLabelModule,
21
+ KwikUIModule
22
+ ]] });
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: KwikIDFormViewModule, decorators: [{
24
+ type: NgModule,
25
+ args: [{
26
+ declarations: [KwikIDFormViewComponent],
27
+ imports: [
28
+ CommonModule,
29
+ FormsModule,
30
+ ReactiveFormsModule,
31
+ TuiLabelModule,
32
+ KwikUIModule
33
+ ],
34
+ exports: [KwikIDFormViewComponent]
35
+ }]
36
+ }] });
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12aWV3Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2t3aWtpZC1mb3Jtcy9zcmMvbGliL3JlbmRlcmVyL2Zvcm0tdmlldy9mb3JtLXZpZXcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUN0QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFhaEUsTUFBTSxPQUFPLG9CQUFvQjs7cUlBQXBCLG9CQUFvQjtzSUFBcEIsb0JBQW9CLGlCQVZoQix1QkFBdUIsYUFFcEMsWUFBWTtRQUNaLFdBQVc7UUFDWCxtQkFBbUI7UUFDbkIsY0FBYztRQUNkLFlBQVksYUFFSix1QkFBdUI7c0lBRXRCLG9CQUFvQixZQVR0QjtZQUNQLFlBQVk7WUFDWixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLGNBQWM7WUFDZCxZQUFZO1NBQ2I7NEZBR1Usb0JBQW9CO2tCQVhoQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLHVCQUF1QixDQUFDO29CQUN2QyxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsY0FBYzt3QkFDZCxZQUFZO3FCQUNiO29CQUNELE9BQU8sRUFBRSxDQUFDLHVCQUF1QixDQUFDO2lCQUNuQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBUdWlMYWJlbE1vZHVsZSB9IGZyb20gXCJAdGFpZ2EtdWkvY29yZVwiO1xyXG5pbXBvcnQgeyBLd2lrVUlNb2R1bGUgfSBmcm9tIFwia3dpa3VpXCI7XHJcbmltcG9ydCB7IEt3aWtJREZvcm1WaWV3Q29tcG9uZW50IH0gZnJvbSBcIi4vZm9ybS12aWV3LmNvbXBvbmVudFwiO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtLd2lrSURGb3JtVmlld0NvbXBvbmVudF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgVHVpTGFiZWxNb2R1bGUsXHJcbiAgICBLd2lrVUlNb2R1bGVcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtLd2lrSURGb3JtVmlld0NvbXBvbmVudF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEt3aWtJREZvcm1WaWV3TW9kdWxlIHt9XHJcbiJdfQ==
@@ -0,0 +1,27 @@
1
+ import { __awaiter, __decorate } from "tslib";
2
+ import { FormControl, FormGroup } from "@angular/forms";
3
+ import { log } from "./form-view.decorators";
4
+ import { Defaults } from "./helpers/form-view.defaults.helper";
5
+ import { Validations } from "./helpers/form-view.validations.helper";
6
+ export class KwikIDFormViewService {
7
+ constructor() { }
8
+ // 'init' stage of the form
9
+ createFormGroup(fields, formData, previousFormData, allFormsData, takeAction) {
10
+ return __awaiter(this, void 0, void 0, function* () {
11
+ let formGroup = new FormGroup({});
12
+ for (let field of fields) {
13
+ if (field.type !== "title") {
14
+ const defaults = new Defaults(field, allFormsData, formData, previousFormData, takeAction);
15
+ const value = yield defaults.getDefaultValue();
16
+ const validators = new Validations(field, formData, previousFormData, allFormsData, takeAction).getFieldValidators(field);
17
+ formGroup.addControl(field.key, new FormControl({ value: value, disabled: field.disabled }, { validators: validators }));
18
+ }
19
+ }
20
+ return formGroup;
21
+ });
22
+ }
23
+ }
24
+ __decorate([
25
+ log
26
+ ], KwikIDFormViewService.prototype, "createFormGroup", null);
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12aWV3LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtZm9ybXMvc3JjL2xpYi9yZW5kZXJlci9mb3JtLXZpZXcvZm9ybS12aWV3LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFckUsTUFBTSxPQUFPLHFCQUFxQjtJQUNoQyxnQkFBZSxDQUFDO0lBRWhCLDJCQUEyQjtJQUVyQixlQUFlLENBQ25CLE1BQVcsRUFDWCxRQUFhLEVBQ2IsZ0JBQXFCLEVBQ3JCLFlBQWlCLEVBQ2pCLFVBQW9COztZQUVwQixJQUFJLFNBQVMsR0FBRyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUVsQyxLQUFLLElBQUksS0FBSyxJQUFJLE1BQU0sRUFBRTtnQkFDeEIsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRTtvQkFDMUIsTUFBTSxRQUFRLEdBQUcsSUFBSSxRQUFRLENBQzNCLEtBQUssRUFDTCxZQUFZLEVBQ1osUUFBUSxFQUNSLGdCQUFnQixFQUNoQixVQUFVLENBQ1gsQ0FBQztvQkFDRixNQUFNLEtBQUssR0FBRyxNQUFNLFFBQVEsQ0FBQyxlQUFlLEVBQUUsQ0FBQztvQkFFL0MsTUFBTSxVQUFVLEdBQUcsSUFBSSxXQUFXLENBQ2hDLEtBQUssRUFDTCxRQUFRLEVBQ1IsZ0JBQWdCLEVBQ2hCLFlBQVksRUFDWixVQUFVLENBQ1gsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFFNUIsU0FBUyxDQUFDLFVBQVUsQ0FDbEIsS0FBSyxDQUFDLEdBQUcsRUFDVCxJQUFJLFdBQVcsQ0FDYixFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFDMUMsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLENBQzNCLENBQ0YsQ0FBQztpQkFDSDthQUNGO1lBRUQsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztLQUFBO0NBQ0Y7QUF4Q0M7SUFEQyxHQUFHOzREQXdDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgbG9nIH0gZnJvbSBcIi4vZm9ybS12aWV3LmRlY29yYXRvcnNcIjtcclxuaW1wb3J0IHsgRGVmYXVsdHMgfSBmcm9tIFwiLi9oZWxwZXJzL2Zvcm0tdmlldy5kZWZhdWx0cy5oZWxwZXJcIjtcclxuaW1wb3J0IHsgVmFsaWRhdGlvbnMgfSBmcm9tIFwiLi9oZWxwZXJzL2Zvcm0tdmlldy52YWxpZGF0aW9ucy5oZWxwZXJcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBLd2lrSURGb3JtVmlld1NlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKCkge31cclxuXHJcbiAgLy8gJ2luaXQnIHN0YWdlIG9mIHRoZSBmb3JtXHJcbiAgQGxvZ1xyXG4gIGFzeW5jIGNyZWF0ZUZvcm1Hcm91cChcclxuICAgIGZpZWxkczogYW55LFxyXG4gICAgZm9ybURhdGE6IGFueSxcclxuICAgIHByZXZpb3VzRm9ybURhdGE6IGFueSxcclxuICAgIGFsbEZvcm1zRGF0YTogYW55LFxyXG4gICAgdGFrZUFjdGlvbjogRnVuY3Rpb25cclxuICApIHtcclxuICAgIGxldCBmb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuXHJcbiAgICBmb3IgKGxldCBmaWVsZCBvZiBmaWVsZHMpIHtcclxuICAgICAgaWYgKGZpZWxkLnR5cGUgIT09IFwidGl0bGVcIikge1xyXG4gICAgICAgIGNvbnN0IGRlZmF1bHRzID0gbmV3IERlZmF1bHRzKFxyXG4gICAgICAgICAgZmllbGQsXHJcbiAgICAgICAgICBhbGxGb3Jtc0RhdGEsXHJcbiAgICAgICAgICBmb3JtRGF0YSxcclxuICAgICAgICAgIHByZXZpb3VzRm9ybURhdGEsXHJcbiAgICAgICAgICB0YWtlQWN0aW9uXHJcbiAgICAgICAgKTtcclxuICAgICAgICBjb25zdCB2YWx1ZSA9IGF3YWl0IGRlZmF1bHRzLmdldERlZmF1bHRWYWx1ZSgpO1xyXG5cclxuICAgICAgICBjb25zdCB2YWxpZGF0b3JzID0gbmV3IFZhbGlkYXRpb25zKFxyXG4gICAgICAgICAgZmllbGQsXHJcbiAgICAgICAgICBmb3JtRGF0YSxcclxuICAgICAgICAgIHByZXZpb3VzRm9ybURhdGEsXHJcbiAgICAgICAgICBhbGxGb3Jtc0RhdGEsXHJcbiAgICAgICAgICB0YWtlQWN0aW9uXHJcbiAgICAgICAgKS5nZXRGaWVsZFZhbGlkYXRvcnMoZmllbGQpO1xyXG5cclxuICAgICAgICBmb3JtR3JvdXAuYWRkQ29udHJvbChcclxuICAgICAgICAgIGZpZWxkLmtleSxcclxuICAgICAgICAgIG5ldyBGb3JtQ29udHJvbChcclxuICAgICAgICAgICAgeyB2YWx1ZTogdmFsdWUsIGRpc2FibGVkOiBmaWVsZC5kaXNhYmxlZCB9LFxyXG4gICAgICAgICAgICB7IHZhbGlkYXRvcnM6IHZhbGlkYXRvcnMgfVxyXG4gICAgICAgICAgKVxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZm9ybUdyb3VwO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,27 @@
1
+ import { __awaiter, __decorate } from "tslib";
2
+ import { log } from "../form-view.decorators";
3
+ import { Condition } from "./form-view.condition.helper";
4
+ export class Actions {
5
+ constructor(action, field, ruleMapping, allFormsData, formData, previousFormData, takeAction) {
6
+ this._action = action;
7
+ this._field = field;
8
+ this._ruleMapping = ruleMapping;
9
+ this._allFormsData = allFormsData;
10
+ this._formData = formData;
11
+ this._previousFormData = previousFormData;
12
+ this._takeAction = takeAction;
13
+ }
14
+ execute() {
15
+ return __awaiter(this, void 0, void 0, function* () {
16
+ const condition = new Condition(this._action.condition, this._ruleMapping);
17
+ const actionSuccess = condition.evaluate();
18
+ if (actionSuccess) {
19
+ return this._takeAction(this._action, this._field, this._allFormsData, this._formData, this._previousFormData);
20
+ }
21
+ });
22
+ }
23
+ }
24
+ __decorate([
25
+ log
26
+ ], Actions.prototype, "execute", null);
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12aWV3LmFjdGlvbnMuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva3dpa2lkLWZvcm1zL3NyYy9saWIvcmVuZGVyZXIvZm9ybS12aWV3L2hlbHBlcnMvZm9ybS12aWV3LmFjdGlvbnMuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFFQSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRXpELE1BQU0sT0FBTyxPQUFPO0lBU2xCLFlBQ0UsTUFBZSxFQUNmLEtBQWEsRUFDYixXQUFnQixFQUNoQixZQUFpQixFQUNqQixRQUFhLEVBQ2IsZ0JBQXFCLEVBQ3JCLFVBQW9CO1FBRXBCLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxhQUFhLEdBQUcsWUFBWSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO1FBQzFCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxnQkFBZ0IsQ0FBQztRQUMxQyxJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQztJQUNoQyxDQUFDO0lBR0ssT0FBTzs7WUFDWCxNQUFNLFNBQVMsR0FBRyxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDM0UsTUFBTSxhQUFhLEdBQUcsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBRTNDLElBQUksYUFBYSxFQUFFO2dCQUNqQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQ3JCLElBQUksQ0FBQyxPQUFPLEVBQ1osSUFBSSxDQUFDLE1BQU0sRUFDWCxJQUFJLENBQUMsYUFBYSxFQUNsQixJQUFJLENBQUMsU0FBUyxFQUNkLElBQUksQ0FBQyxpQkFBaUIsQ0FDdkIsQ0FBQzthQUNIO1FBQ0gsQ0FBQztLQUFBO0NBQ0Y7QUFkQztJQURDLEdBQUc7c0NBY0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUQWN0aW9uIH0gZnJvbSBcIi4uL2RlZmluaXRpb25zL2FjdGlvbnMvZm9ybS12aWV3LmFjdGlvbnMudHlwZS5kZWZpbml0aW9uc1wiO1xyXG5pbXBvcnQgeyBURmllbGQgfSBmcm9tIFwiLi4vZGVmaW5pdGlvbnMvZmllbGRzL2Zvcm0tdmlldy5maWVsZHMudHlwZS5kZWZpbml0aW9uc1wiO1xyXG5pbXBvcnQgeyBsb2cgfSBmcm9tIFwiLi4vZm9ybS12aWV3LmRlY29yYXRvcnNcIjtcclxuaW1wb3J0IHsgQ29uZGl0aW9uIH0gZnJvbSBcIi4vZm9ybS12aWV3LmNvbmRpdGlvbi5oZWxwZXJcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBBY3Rpb25zIHtcclxuICBwcml2YXRlIF9hY3Rpb246IFRBY3Rpb247XHJcbiAgcHJpdmF0ZSBfYWxsRm9ybXNEYXRhOiBhbnk7XHJcbiAgcHJpdmF0ZSBfZmllbGQ6IFRGaWVsZDtcclxuICBwcml2YXRlIF9mb3JtRGF0YTogYW55O1xyXG4gIHByaXZhdGUgX3ByZXZpb3VzRm9ybURhdGE6IGFueTtcclxuICBwcml2YXRlIF9ydWxlTWFwcGluZzogYW55O1xyXG4gIHByaXZhdGUgX3Rha2VBY3Rpb246IEZ1bmN0aW9uO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIGFjdGlvbjogVEFjdGlvbixcclxuICAgIGZpZWxkOiBURmllbGQsXHJcbiAgICBydWxlTWFwcGluZzogYW55LFxyXG4gICAgYWxsRm9ybXNEYXRhOiBhbnksXHJcbiAgICBmb3JtRGF0YTogYW55LFxyXG4gICAgcHJldmlvdXNGb3JtRGF0YTogYW55LFxyXG4gICAgdGFrZUFjdGlvbjogRnVuY3Rpb25cclxuICApIHtcclxuICAgIHRoaXMuX2FjdGlvbiA9IGFjdGlvbjtcclxuICAgIHRoaXMuX2ZpZWxkID0gZmllbGQ7XHJcbiAgICB0aGlzLl9ydWxlTWFwcGluZyA9IHJ1bGVNYXBwaW5nO1xyXG4gICAgdGhpcy5fYWxsRm9ybXNEYXRhID0gYWxsRm9ybXNEYXRhO1xyXG4gICAgdGhpcy5fZm9ybURhdGEgPSBmb3JtRGF0YTtcclxuICAgIHRoaXMuX3ByZXZpb3VzRm9ybURhdGEgPSBwcmV2aW91c0Zvcm1EYXRhO1xyXG4gICAgdGhpcy5fdGFrZUFjdGlvbiA9IHRha2VBY3Rpb247XHJcbiAgfVxyXG5cclxuICBAbG9nXHJcbiAgYXN5bmMgZXhlY3V0ZSgpIHtcclxuICAgIGNvbnN0IGNvbmRpdGlvbiA9IG5ldyBDb25kaXRpb24odGhpcy5fYWN0aW9uLmNvbmRpdGlvbiwgdGhpcy5fcnVsZU1hcHBpbmcpO1xyXG4gICAgY29uc3QgYWN0aW9uU3VjY2VzcyA9IGNvbmRpdGlvbi5ldmFsdWF0ZSgpO1xyXG5cclxuICAgIGlmIChhY3Rpb25TdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl90YWtlQWN0aW9uKFxyXG4gICAgICAgIHRoaXMuX2FjdGlvbixcclxuICAgICAgICB0aGlzLl9maWVsZCxcclxuICAgICAgICB0aGlzLl9hbGxGb3Jtc0RhdGEsXHJcbiAgICAgICAgdGhpcy5fZm9ybURhdGEsXHJcbiAgICAgICAgdGhpcy5fcHJldmlvdXNGb3JtRGF0YVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,105 @@
1
+ import { __awaiter, __decorate } from "tslib";
2
+ import { log } from "../form-view.decorators";
3
+ import { Actions } from "./form-view.actions.helper";
4
+ import { setValueToObject } from "./form-view.common.helper";
5
+ import { Condition } from "./form-view.condition.helper";
6
+ import { Rules } from "./form-view.rules.helper";
7
+ import { Sources } from "./form-view.sources.helper";
8
+ export class Apis {
9
+ constructor(field, formData, previousFormData, allFormsData, takeAction) {
10
+ this._field = field;
11
+ this._formData = formData;
12
+ this._previousFormData = previousFormData;
13
+ this._allFormsData = allFormsData;
14
+ this._takeAction = takeAction;
15
+ this._api = field.api;
16
+ this._request = field.api.request;
17
+ this._response = field.api.response;
18
+ this._status = field.api.status;
19
+ }
20
+ setRequestBodyParams() {
21
+ var _a, _b, _c;
22
+ return __awaiter(this, void 0, void 0, function* () {
23
+ let params = this._request.body.params;
24
+ let paramIndex = 0;
25
+ for (let param of params) {
26
+ let sources = param.sources;
27
+ let sourceIndex = 0;
28
+ for (let source of sources) {
29
+ const sources = new Sources(this._field, this._formData, this._previousFormData, this._allFormsData);
30
+ const value = sources.getValueFromSource(source);
31
+ // Set the Value of current source.
32
+ this._field = setValueToObject(this._field, `api.request.body.params[${paramIndex}].sources[${sourceIndex}].value`, value);
33
+ const validation = source.validation;
34
+ const triggers = (_a = validation === null || validation === void 0 ? void 0 : validation.triggers) !== null && _a !== void 0 ? _a : [];
35
+ const rules = (_b = validation === null || validation === void 0 ? void 0 : validation.rules) !== null && _b !== void 0 ? _b : [];
36
+ const actions = (_c = validation === null || validation === void 0 ? void 0 : validation.actions) !== null && _c !== void 0 ? _c : [];
37
+ const rulesMapping = new Rules(rules, this._field, this._formData, this._previousFormData, this._allFormsData).mapping();
38
+ for (let action of actions) {
39
+ const conditionEvaluation = new Condition(action.condition, rulesMapping).evaluate();
40
+ if (conditionEvaluation) {
41
+ const actions = new Actions(action, this._field, rulesMapping, this._allFormsData, this._formData, this._previousFormData, this._takeAction);
42
+ yield actions.execute();
43
+ }
44
+ }
45
+ sourceIndex++;
46
+ }
47
+ paramIndex++;
48
+ }
49
+ return this._field;
50
+ });
51
+ }
52
+ validateRequestBody() {
53
+ return __awaiter(this, void 0, void 0, function* () {
54
+ const body = this._request.body;
55
+ const validation = body.validation;
56
+ const triggers = validation.triggers;
57
+ const rules = validation.rules;
58
+ const actions = validation.actions;
59
+ const rulesMapping = new Rules(rules, this._field, this._formData, this._previousFormData, this._allFormsData).mapping();
60
+ for (let action of actions) {
61
+ const conditionSuccess = new Condition(action.condition, rulesMapping).evaluate();
62
+ if (conditionSuccess) {
63
+ const actions = new Actions(action, this._field, rulesMapping, this._allFormsData, this._formData, this._previousFormData, this._takeAction);
64
+ yield actions.execute();
65
+ }
66
+ }
67
+ return this._field;
68
+ });
69
+ }
70
+ validateApiCallResponse() {
71
+ return __awaiter(this, void 0, void 0, function* () {
72
+ const validation = this._response.validation;
73
+ const triggers = validation.triggers;
74
+ const rules = validation.rules;
75
+ const actions = validation.actions;
76
+ const rulesMapping = new Rules(rules, this._field, this._formData, this._previousFormData, this._allFormsData).mapping();
77
+ for (let action of actions) {
78
+ const conditionSuccess = new Condition(action.condition, rulesMapping).evaluate();
79
+ if (conditionSuccess) {
80
+ const actions = new Actions(action, this._field, rulesMapping, this._allFormsData, this._formData, this._previousFormData, this._takeAction);
81
+ yield actions.execute();
82
+ }
83
+ }
84
+ return this._field;
85
+ });
86
+ }
87
+ getPropsValues() {
88
+ return {
89
+ field: this._field,
90
+ formData: this._formData,
91
+ previousFormData: this._previousFormData,
92
+ allFormsData: this._allFormsData
93
+ };
94
+ }
95
+ }
96
+ __decorate([
97
+ log
98
+ ], Apis.prototype, "setRequestBodyParams", null);
99
+ __decorate([
100
+ log
101
+ ], Apis.prototype, "validateRequestBody", null);
102
+ __decorate([
103
+ log
104
+ ], Apis.prototype, "validateApiCallResponse", null);
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12aWV3LmFwaXMuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva3dpa2lkLWZvcm1zL3NyYy9saWIvcmVuZGVyZXIvZm9ybS12aWV3L2hlbHBlcnMvZm9ybS12aWV3LmFwaXMuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFjQSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDakQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXJELE1BQU0sT0FBTyxJQUFJO0lBWWYsWUFDRSxLQUFvQixFQUNwQixRQUFhLEVBQ2IsZ0JBQXFCLEVBQ3JCLFlBQWlCLEVBQ2pCLFVBQW9CO1FBRXBCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO1FBQzFCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxnQkFBZ0IsQ0FBQztRQUMxQyxJQUFJLENBQUMsYUFBYSxHQUFHLFlBQVksQ0FBQztRQUNsQyxJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQztRQUU5QixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUM7UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQztRQUNsQyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO1FBQ3BDLElBQUks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R0FBRyxJQUFJLFNBQVMsQ0FDcEMsTUFBTSxDQUFDLFNBQVMsRUFDaEIsWUFBWSxDQUNiLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBRWIsSUFBSSxnQkFBZ0IsRUFBRTtvQkFDcEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxPQUFPLENBQ3pCLE1BQU0sRUFDTixJQUFJLENBQUMsTUFBTSxFQUNYLFlBQVksRUFDWixJQUFJLENBQUMsYUFBYSxFQUNsQixJQUFJLENBQUMsU0FBUyxFQUNkLElBQUksQ0FBQyxpQkFBaUIsRUFDdEIsSUFBSSxDQUFDLFdBQVcsQ0FDakIsQ0FBQztvQkFFRixNQUFNLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztpQkFDekI7YUFDRjtZQUVELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUNyQixDQUFDO0tBQUE7SUFFRCxjQUFjO1FBQ1osT0FBTztZQUNMLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNsQixRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDeEIsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQjtZQUN4QyxZQUFZLEVBQUUsSUFBSSxDQUFDLGFBQWE7U0FDakMsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQTdKQztJQURDLEdBQUc7Z0RBa0VIO0FBR0Q7SUFEQyxHQUFHOytDQXdDSDtBQUdEO0lBREMsR0FBRzttREFzQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUQWN0aW9uIH0gZnJvbSBcIi4uL2RlZmluaXRpb25zL2FjdGlvbnMvZm9ybS12aWV3LmFjdGlvbnMudHlwZS5kZWZpbml0aW9uc1wiO1xyXG5pbXBvcnQge1xyXG4gIFRBcGksXHJcbiAgVEFwaVJlcXVlc3QsXHJcbiAgVEFwaVJlcXVlc3RCb2R5LFxyXG4gIFRBcGlSZXF1ZXN0Qm9keVBhcmFtLFxyXG4gIFRBcGlSZXNwb25zZSxcclxuICBUQXBpU3RhdHVzXHJcbn0gZnJvbSBcIi4uL2RlZmluaXRpb25zL2FwaXMvZm9ybS12aWV3LmFwaXMudHlwZS5kZWZpbml0aW9uc1wiO1xyXG5pbXBvcnQgeyBURmllbGRBcGlDYWxsIH0gZnJvbSBcIi4uL2RlZmluaXRpb25zL2ZpZWxkcy9mb3JtLXZpZXcuZmllbGRzLnR5cGUuZGVmaW5pdGlvbnNcIjtcclxuaW1wb3J0IHsgVFJ1bGUgfSBmcm9tIFwiLi4vZGVmaW5pdGlvbnMvcnVsZXMvZm9ybS12aWV3LnJ1bGVzLnR5cGUuZGVmaW5pdGlvbnNcIjtcclxuaW1wb3J0IHsgVFNvdXJjZSB9IGZyb20gXCIuLi9kZWZpbml0aW9ucy9zb3VyY2VzL2Zvcm0tdmlldy5zb3VyY2VzLnR5cGUuZGVmaW5pdGlvbnNcIjtcclxuaW1wb3J0IHsgVFRyaWdnZXIgfSBmcm9tIFwiLi4vZGVmaW5pdGlvbnMvdHJpZ2dlcnMvZm9ybS12aWV3LnRyaWdnZXJzLnR5cGUuZGVmaW5pdGlvbnNcIjtcclxuaW1wb3J0IHsgVFZhbGlkYXRpb24gfSBmcm9tIFwiLi4vZGVmaW5pdGlvbnMvdmFsaWRhdGlvbnMvZm9ybS12aWV3LnZhbGlkYXRpb25zLnR5cGUuZGVmaW5pdGlvbnNcIjtcclxuaW1wb3J0IHsgbG9nIH0gZnJvbSBcIi4uL2Zvcm0tdmlldy5kZWNvcmF0b3JzXCI7XHJcbmltcG9ydCB7IEFjdGlvbnMgfSBmcm9tIFwiLi9mb3JtLXZpZXcuYWN0aW9ucy5oZWxwZXJcIjtcclxuaW1wb3J0IHsgc2V0VmFsdWVUb09iamVjdCB9IGZyb20gXCIuL2Zvcm0tdmlldy5jb21tb24uaGVscGVyXCI7XHJcbmltcG9ydCB7IENvbmRpdGlvbiB9IGZyb20gXCIuL2Zvcm0tdmlldy5jb25kaXRpb24uaGVscGVyXCI7XHJcbmltcG9ydCB7IFJ1bGVzIH0gZnJvbSBcIi4vZm9ybS12aWV3LnJ1bGVzLmhlbHBlclwiO1xyXG5pbXBvcnQgeyBTb3VyY2VzIH0gZnJvbSBcIi4vZm9ybS12aWV3LnNvdXJjZXMuaGVscGVyXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgQXBpcyB7XHJcbiAgcHJpdmF0ZSBfZm9ybURhdGE6IGFueTtcclxuICBwcml2YXRlIF9wcmV2aW91c0Zvcm1EYXRhOiBhbnk7XHJcbiAgcHJpdmF0ZSBfYWxsRm9ybXNEYXRhOiBhbnk7XHJcbiAgcHJpdmF0ZSBfZmllbGQ6IFRGaWVsZEFwaUNhbGw7XHJcbiAgcHJpdmF0ZSBfdGFrZUFjdGlvbjogRnVuY3Rpb247XHJcblxyXG4gIHByaXZhdGUgX2FwaTogVEFwaTtcclxuICBwcml2YXRlIF9yZXF1ZXN0OiBUQXBpUmVxdWVzdDtcclxuICBwcml2YXRlIF9yZXNwb25zZTogVEFwaVJlc3BvbnNlO1xyXG4gIHByaXZhdGUgX3N0YXR1czogVEFwaVN0YXR1cztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBmaWVsZDogVEZpZWxkQXBpQ2FsbCxcclxuICAgIGZvcm1EYXRhOiBhbnksXHJcbiAgICBwcmV2aW91c0Zvcm1EYXRhOiBhbnksXHJcbiAgICBhbGxGb3Jtc0RhdGE6IGFueSxcclxuICAgIHRha2VBY3Rpb246IEZ1bmN0aW9uXHJcbiAgKSB7XHJcbiAgICB0aGlzLl9maWVsZCA9IGZpZWxkO1xyXG4gICAgdGhpcy5fZm9ybURhdGEgPSBmb3JtRGF0YTtcclxuICAgIHRoaXMuX3ByZXZpb3VzRm9ybURhdGEgPSBwcmV2aW91c0Zvcm1EYXRhO1xyXG4gICAgdGhpcy5fYWxsRm9ybXNEYXRhID0gYWxsRm9ybXNEYXRhO1xyXG4gICAgdGhpcy5fdGFrZUFjdGlvbiA9IHRha2VBY3Rpb247XHJcblxyXG4gICAgdGhpcy5fYXBpID0gZmllbGQuYXBpO1xyXG4gICAgdGhpcy5fcmVxdWVzdCA9IGZpZWxkLmFwaS5yZXF1ZXN0O1xyXG4gICAgdGhpcy5fcmVzcG9uc2UgPSBmaWVsZC5hcGkucmVzcG9uc2U7XHJcbiAgICB0aGlzLl9zdGF0dXMgPSBmaWVsZC5hcGkuc3RhdHVzO1xyXG4gIH1cclxuXHJcbiAgQGxvZ1xyXG4gIHB1YmxpYyBhc3luYyBzZXRSZXF1ZXN0Qm9keVBhcmFtcygpOiBQcm9taXNlPFRGaWVsZEFwaUNhbGw+IHtcclxuICAgIGxldCBwYXJhbXM6IEFycmF5PFRBcGlSZXF1ZXN0Qm9keVBhcmFtPiA9IHRoaXMuX3JlcXVlc3QuYm9keS5wYXJhbXM7XHJcblxyXG4gICAgbGV0IHBhcmFtSW5kZXggPSAwO1xyXG4gICAgZm9yIChsZXQgcGFyYW0gb2YgcGFyYW1zKSB7XHJcbiAgICAgIGxldCBzb3VyY2VzOiBBcnJheTxUU291cmNlPiA9IHBhcmFtLnNvdXJjZXM7XHJcblxyXG4gICAgICBsZXQgc291cmNlSW5kZXggPSAwO1xyXG4gICAgICBmb3IgKGxldCBzb3VyY2Ugb2Ygc291cmNlcykge1xyXG4gICAgICAgIGNvbnN0IHNvdXJjZXMgPSBuZXcgU291cmNlcyhcclxuICAgICAgICAgIHRoaXMuX2ZpZWxkLFxyXG4gICAgICAgICAgdGhpcy5fZm9ybURhdGEsXHJcbiAgICAgICAgICB0aGlzLl9wcmV2aW91c0Zvcm1EYXRhLFxyXG4gICAgICAgICAgdGhpcy5fYWxsRm9ybXNEYXRhXHJcbiAgICAgICAgKTtcclxuICAgICAgICBjb25zdCB2YWx1ZSA9IHNvdXJjZXMuZ2V0VmFsdWVGcm9tU291cmNlKHNvdXJjZSk7XHJcbiAgICAgICAgLy8gU2V0IHRoZSBWYWx1ZSBvZiBjdXJyZW50IHNvdXJjZS5cclxuICAgICAgICB0aGlzLl9maWVsZCA9IHNldFZhbHVlVG9PYmplY3QoXHJcbiAgICAgICAgICB0aGlzLl9maWVsZCxcclxuICAgICAgICAgIGBhcGkucmVxdWVzdC5ib2R5LnBhcmFtc1ske3BhcmFtSW5kZXh9XS5zb3VyY2VzWyR7c291cmNlSW5kZXh9XS52YWx1ZWAsXHJcbiAgICAgICAgICB2YWx1ZVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIGNvbnN0IHZhbGlkYXRpb246IFRWYWxpZGF0aW9uID0gc291cmNlLnZhbGlkYXRpb247XHJcblxyXG4gICAgICAgIGNvbnN0IHRyaWdnZXJzOiBBcnJheTxUVHJpZ2dlcj4gPSB2YWxpZGF0aW9uPy50cmlnZ2VycyA/PyBbXTtcclxuICAgICAgICBjb25zdCBydWxlczogQXJyYXk8VFJ1bGU+ID0gdmFsaWRhdGlvbj8ucnVsZXMgPz8gW107XHJcbiAgICAgICAgY29uc3QgYWN0aW9uczogQXJyYXk8VEFjdGlvbj4gPSB2YWxpZGF0aW9uPy5hY3Rpb25zID8/IFtdO1xyXG5cclxuICAgICAgICBjb25zdCBydWxlc01hcHBpbmcgPSBuZXcgUnVsZXMoXHJcbiAgICAgICAgICBydWxlcyxcclxuICAgICAgICAgIHRoaXMuX2ZpZWxkLFxyXG4gICAgICAgICAgdGhpcy5fZm9ybURhdGEsXHJcbiAgICAgICAgICB0aGlzLl9wcmV2aW91c0Zvcm1EYXRhLFxyXG4gICAgICAgICAgdGhpcy5fYWxsRm9ybXNEYXRhXHJcbiAgICAgICAgKS5tYXBwaW5nKCk7XHJcblxyXG4gICAgICAgIGZvciAobGV0IGFjdGlvbiBvZiBhY3Rpb25zKSB7XHJcbiAgICAgICAgICBjb25zdCBjb25kaXRpb25FdmFsdWF0aW9uID0gbmV3IENvbmRpdGlvbihcclxuICAgICAgICAgICAgYWN0aW9uLmNvbmRpdGlvbixcclxuICAgICAgICAgICAgcnVsZXNNYXBwaW5nXHJcbiAgICAgICAgICApLmV2YWx1YXRlKCk7XHJcblxyXG4gICAgICAgICAgaWYgKGNvbmRpdGlvbkV2YWx1YXRpb24pIHtcclxuICAgICAgICAgICAgY29uc3QgYWN0aW9ucyA9IG5ldyBBY3Rpb25zKFxyXG4gICAgICAgICAgICAgIGFjdGlvbixcclxuICAgICAgICAgICAgICB0aGlzLl9maWVsZCxcclxuICAgICAgICAgICAgICBydWxlc01hcHBpbmcsXHJcbiAgICAgICAgICAgICAgdGhpcy5fYWxsRm9ybXNEYXRhLFxyXG4gICAgICAgICAgICAgIHRoaXMuX2Zvcm1EYXRhLFxyXG4gICAgICAgICAgICAgIHRoaXMuX3ByZXZpb3VzRm9ybURhdGEsXHJcbiAgICAgICAgICAgICAgdGhpcy5fdGFrZUFjdGlvblxyXG4gICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgYXdhaXQgYWN0aW9ucy5leGVjdXRlKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBzb3VyY2VJbmRleCsrO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBwYXJhbUluZGV4Kys7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuX2ZpZWxkO1xyXG4gIH1cclxuXHJcbiAgQGxvZ1xyXG4gIHB1YmxpYyBhc3luYyB2YWxpZGF0ZVJlcXVlc3RCb2R5KCk6IFByb21pc2U8VEZpZWxkQXBpQ2FsbD4ge1xyXG4gICAgY29uc3QgYm9keTogVEFwaVJlcXVlc3RCb2R5ID0gdGhpcy5fcmVxdWVzdC5ib2R5O1xyXG5cclxuICAgIGNvbnN0IHZhbGlkYXRpb246IFRWYWxpZGF0aW9uID0gYm9keS52YWxpZGF0aW9uO1xyXG5cclxuICAgIGNvbnN0IHRyaWdnZXJzOiBBcnJheTxUVHJpZ2dlcj4gPSB2YWxpZGF0aW9uLnRyaWdnZXJzO1xyXG4gICAgY29uc3QgcnVsZXM6IEFycmF5PFRSdWxlPiA9IHZhbGlkYXRpb24ucnVsZXM7XHJcbiAgICBjb25zdCBhY3Rpb25zOiBBcnJheTxUQWN0aW9uPiA9IHZhbGlkYXRpb24uYWN0aW9ucztcclxuXHJcbiAgICBjb25zdCBydWxlc01hcHBpbmcgPSBuZXcgUnVsZXMoXHJcbiAgICAgIHJ1bGVzLFxyXG4gICAgICB0aGlzLl9maWVsZCxcclxuICAgICAgdGhpcy5fZm9ybURhdGEsXHJcbiAgICAgIHRoaXMuX3ByZXZpb3VzRm9ybURhdGEsXHJcbiAgICAgIHRoaXMuX2FsbEZvcm1zRGF0YVxyXG4gICAgKS5tYXBwaW5nKCk7XHJcblxyXG4gICAgZm9yIChsZXQgYWN0aW9uIG9mIGFjdGlvbnMpIHtcclxuICAgICAgY29uc3QgY29uZGl0aW9uU3VjY2VzcyA9IG5ldyBDb25kaXRpb24oXHJcbiAgICAgICAgYWN0aW9uLmNvbmRpdGlvbixcclxuICAgICAgICBydWxlc01hcHBpbmdcclxuICAgICAgKS5ldmFsdWF0ZSgpO1xyXG5cclxuICAgICAgaWYgKGNvbmRpdGlvblN1Y2Nlc3MpIHtcclxuICAgICAgICBjb25zdCBhY3Rpb25zID0gbmV3IEFjdGlvbnMoXHJcbiAgICAgICAgICBhY3Rpb24sXHJcbiAgICAgICAgICB0aGlzLl9maWVsZCxcclxuICAgICAgICAgIHJ1bGVzTWFwcGluZyxcclxuICAgICAgICAgIHRoaXMuX2FsbEZvcm1zRGF0YSxcclxuICAgICAgICAgIHRoaXMuX2Zvcm1EYXRhLFxyXG4gICAgICAgICAgdGhpcy5fcHJldmlvdXNGb3JtRGF0YSxcclxuICAgICAgICAgIHRoaXMuX3Rha2VBY3Rpb25cclxuICAgICAgICApO1xyXG5cclxuICAgICAgICBhd2FpdCBhY3Rpb25zLmV4ZWN1dGUoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLl9maWVsZDtcclxuICB9XHJcblxyXG4gIEBsb2dcclxuICBwdWJsaWMgYXN5bmMgdmFsaWRhdGVBcGlDYWxsUmVzcG9uc2UoKTogUHJvbWlzZTxURmllbGRBcGlDYWxsPiB7XHJcbiAgICBjb25zdCB2YWxpZGF0aW9uOiBUVmFsaWRhdGlvbiA9IHRoaXMuX3Jlc3BvbnNlLnZhbGlkYXRpb247XHJcblxyXG4gICAgY29uc3QgdHJpZ2dlcnM6IEFycmF5PFRUcmlnZ2VyPiA9IHZhbGlkYXRpb24udHJpZ2dlcnM7XHJcbiAgICBjb25zdCBydWxlczogQXJyYXk8VFJ1bGU+ID0gdmFsaWRhdGlvbi5ydWxlcztcclxuICAgIGNvbnN0IGFjdGlvbnM6IEFycmF5PFRBY3Rpb24+ID0gdmFsaWRhdGlvbi5hY3Rpb25zO1xyXG5cclxuICAgIGNvbnN0IHJ1bGVzTWFwcGluZyA9IG5ldyBSdWxlcyhcclxuICAgICAgcnVsZXMsXHJcbiAgICAgIHRoaXMuX2ZpZWxkLFxyXG4gICAgICB0aGlzLl9mb3JtRGF0YSxcclxuICAgICAgdGhpcy5fcHJldmlvdXNGb3JtRGF0YSxcclxuICAgICAgdGhpcy5fYWxsRm9ybXNEYXRhXHJcbiAgICApLm1hcHBpbmcoKTtcclxuXHJcbiAgICBmb3IgKGxldCBhY3Rpb24gb2YgYWN0aW9ucykge1xyXG4gICAgICBjb25zdCBjb25kaXRpb25TdWNjZXNzID0gbmV3IENvbmRpdGlvbihcclxuICAgICAgICBhY3Rpb24uY29uZGl0aW9uLFxyXG4gICAgICAgIHJ1bGVzTWFwcGluZ1xyXG4gICAgICApLmV2YWx1YXRlKCk7XHJcblxyXG4gICAgICBpZiAoY29uZGl0aW9uU3VjY2Vzcykge1xyXG4gICAgICAgIGNvbnN0IGFjdGlvbnMgPSBuZXcgQWN0aW9ucyhcclxuICAgICAgICAgIGFjdGlvbixcclxuICAgICAgICAgIHRoaXMuX2ZpZWxkLFxyXG4gICAgICAgICAgcnVsZXNNYXBwaW5nLFxyXG4gICAgICAgICAgdGhpcy5fYWxsRm9ybXNEYXRhLFxyXG4gICAgICAgICAgdGhpcy5fZm9ybURhdGEsXHJcbiAgICAgICAgICB0aGlzLl9wcmV2aW91c0Zvcm1EYXRhLFxyXG4gICAgICAgICAgdGhpcy5fdGFrZUFjdGlvblxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIGF3YWl0IGFjdGlvbnMuZXhlY3V0ZSgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuX2ZpZWxkO1xyXG4gIH1cclxuXHJcbiAgZ2V0UHJvcHNWYWx1ZXMoKTogYW55IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGZpZWxkOiB0aGlzLl9maWVsZCxcclxuICAgICAgZm9ybURhdGE6IHRoaXMuX2Zvcm1EYXRhLFxyXG4gICAgICBwcmV2aW91c0Zvcm1EYXRhOiB0aGlzLl9wcmV2aW91c0Zvcm1EYXRhLFxyXG4gICAgICBhbGxGb3Jtc0RhdGE6IHRoaXMuX2FsbEZvcm1zRGF0YVxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,136 @@
1
+ import { TuiDay } from "@taiga-ui/cdk";
2
+ import jp from "jsonpath";
3
+ import _ from "lodash";
4
+ import { EFieldType } from "../definitions/fields/form-view.fields.enum.definitions";
5
+ export const hasKey = (object, key) => {
6
+ return object.hasOwnProperty(key);
7
+ };
8
+ export const hasPath = (object, path) => {
9
+ return _.has(object, path);
10
+ };
11
+ export const isEmptyString = (value) => {
12
+ return value === "";
13
+ };
14
+ export const isUndefined = (value) => {
15
+ return value === undefined;
16
+ };
17
+ export const isNull = (value) => {
18
+ return value === null;
19
+ };
20
+ export const isEmptyObject = (object) => {
21
+ return (object &&
22
+ Object.keys(object).length === 0 &&
23
+ Object.getPrototypeOf(object) === Object.prototype);
24
+ };
25
+ export const isEmptyArray = (arr) => {
26
+ return arr.length === 0;
27
+ };
28
+ export const isEmpty = (value) => {
29
+ if (isEmptyString(value) || isUndefined(value) || isNull(value)) {
30
+ return true;
31
+ }
32
+ else if (isEmptyObject(value)) {
33
+ return true;
34
+ }
35
+ else if (Array.isArray(value)) {
36
+ if (isEmptyArray(value)) {
37
+ return true;
38
+ }
39
+ else {
40
+ return false;
41
+ }
42
+ }
43
+ else {
44
+ return false;
45
+ }
46
+ };
47
+ export const isNotEmpty = (value) => {
48
+ return !isEmpty(value);
49
+ };
50
+ export const isEmptyBrowserStorageValue = (value) => {
51
+ return isNull(value) && isUndefined(value);
52
+ };
53
+ export const isNotEmptyBrowserStorageValue = (value) => {
54
+ return !isEmptyBrowserStorageValue(value);
55
+ };
56
+ export const handleJPQueryResponse = (value) => {
57
+ /**
58
+ * jp.query doesn't always return an array with one element
59
+ * so directly can't access with [0], need to check conditionally
60
+ */
61
+ if (Array.isArray(value)) {
62
+ if (value.length > 0) {
63
+ value = value[0];
64
+ }
65
+ else if (value.length === 0) {
66
+ value = "";
67
+ }
68
+ }
69
+ else {
70
+ value = "";
71
+ }
72
+ return value;
73
+ };
74
+ export const jpQueryWrapper = (obj, key) => {
75
+ return handleJPQueryResponse(jp.query(obj, key));
76
+ };
77
+ export const replaceString = (str, find, replace) => {
78
+ return str.replace(new RegExp(find, "g"), replace);
79
+ };
80
+ export const setFieldKeyValue = (field, path, value) => {
81
+ return _.set(field, path, value);
82
+ };
83
+ export const setValueToObject = (object, path, value) => {
84
+ return _.set(object, path, value);
85
+ };
86
+ export const formatValue = (field, fieldValue) => {
87
+ const fieldType = field.type;
88
+ let value;
89
+ if (isNotEmpty(fieldValue)) {
90
+ switch (fieldType) {
91
+ case EFieldType.DATE:
92
+ const splitDate = fieldValue.split("-");
93
+ value = new TuiDay(Number(splitDate[2]), // Year
94
+ Number(splitDate[1]) - 1, // Month, Why '-1' => Because Taiga-UI Required It, So...
95
+ Number(splitDate[0]) // Day
96
+ );
97
+ break;
98
+ case EFieldType.RADIO:
99
+ const fieldRadio = field;
100
+ value = fieldRadio.options.find((item) => {
101
+ return item.label === fieldValue;
102
+ });
103
+ break;
104
+ case EFieldType.CHECKBOX:
105
+ value = Boolean(fieldValue);
106
+ break;
107
+ default:
108
+ value = fieldValue;
109
+ break;
110
+ }
111
+ }
112
+ else {
113
+ value = fieldValue;
114
+ }
115
+ return value;
116
+ };
117
+ export const setEmptyValue = (field) => {
118
+ const fieldType = field.type;
119
+ let value;
120
+ switch (fieldType) {
121
+ case EFieldType.CHECKBOX:
122
+ value = false;
123
+ break;
124
+ case EFieldType.NUMBER:
125
+ value = null;
126
+ break;
127
+ case EFieldType.DATE:
128
+ value = null;
129
+ break;
130
+ default:
131
+ value = "";
132
+ break;
133
+ }
134
+ return value;
135
+ };
136
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12aWV3LmNvbW1vbi5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtZm9ybXMvc3JjL2xpYi9yZW5kZXJlci9mb3JtLXZpZXcvaGVscGVycy9mb3JtLXZpZXcuY29tbW9uLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUMxQixPQUFPLENBQUMsTUFBTSxRQUFRLENBQUM7QUFDdkIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBT3JGLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxDQUFDLE1BQVcsRUFBRSxHQUFXLEVBQVcsRUFBRTtJQUMxRCxPQUFPLE1BQU0sQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDcEMsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLENBQUMsTUFBVyxFQUFFLElBQVksRUFBVyxFQUFFO0lBQzVELE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDN0IsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQUMsS0FBYSxFQUFXLEVBQUU7SUFDdEQsT0FBTyxLQUFLLEtBQUssRUFBRSxDQUFDO0FBQ3RCLENBQUMsQ0FBQztBQUNGLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUFDLEtBQVUsRUFBVyxFQUFFO0lBQ2pELE9BQU8sS0FBSyxLQUFLLFNBQVMsQ0FBQztBQUM3QixDQUFDLENBQUM7QUFDRixNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUcsQ0FBQyxLQUFVLEVBQVcsRUFBRTtJQUM1QyxPQUFPLEtBQUssS0FBSyxJQUFJLENBQUM7QUFDeEIsQ0FBQyxDQUFDO0FBQ0YsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQUMsTUFBVyxFQUFXLEVBQUU7SUFDcEQsT0FBTyxDQUNMLE1BQU07UUFDTixNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDO1FBQ2hDLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEtBQUssTUFBTSxDQUFDLFNBQVMsQ0FDbkQsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUNGLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLEdBQVUsRUFBVyxFQUFFO0lBQ2xELE9BQU8sR0FBRyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7QUFDMUIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLENBQUMsS0FBVSxFQUFXLEVBQUU7SUFDN0MsSUFBSSxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUMvRCxPQUFPLElBQUksQ0FBQztLQUNiO1NBQU0sSUFBSSxhQUFhLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDL0IsT0FBTyxJQUFJLENBQUM7S0FDYjtTQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUMvQixJQUFJLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN2QixPQUFPLElBQUksQ0FBQztTQUNiO2FBQU07WUFDTCxPQUFPLEtBQUssQ0FBQztTQUNkO0tBQ0Y7U0FBTTtRQUNMLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7QUFDSCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxLQUFVLEVBQUUsRUFBRTtJQUN2QyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3pCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLENBQUMsS0FBVSxFQUFFLEVBQUU7SUFDdkQsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzdDLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHLENBQUMsS0FBVSxFQUFFLEVBQUU7SUFDMUQsT0FBTyxDQUFDLDBCQUEwQixDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzVDLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLENBQUMsS0FBVSxFQUFPLEVBQUU7SUFDdkQ7OztPQUdHO0lBQ0gsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQ3hCLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDcEIsS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNsQjthQUFNLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDN0IsS0FBSyxHQUFHLEVBQUUsQ0FBQztTQUNaO0tBQ0Y7U0FBTTtRQUNMLEtBQUssR0FBRyxFQUFFLENBQUM7S0FDWjtJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsR0FBUSxFQUFFLEdBQVcsRUFBRSxFQUFFO0lBQ3RELE9BQU8scUJBQXFCLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNuRCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FDM0IsR0FBVyxFQUNYLElBQVksRUFDWixPQUFlLEVBQ1AsRUFBRTtJQUNWLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDckQsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxLQUFVLEVBQUUsSUFBWSxFQUFFLEtBQVUsRUFBTyxFQUFFO0lBQzVFLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ25DLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQzlCLE1BQVcsRUFDWCxJQUFZLEVBQ1osS0FBVSxFQUNMLEVBQUU7SUFDUCxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztBQUNwQyxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxLQUFhLEVBQUUsVUFBZSxFQUFPLEVBQUU7SUFDakUsTUFBTSxTQUFTLEdBQWUsS0FBSyxDQUFDLElBQUksQ0FBQztJQUN6QyxJQUFJLEtBQVUsQ0FBQztJQUVmLElBQUksVUFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1FBQzFCLFFBQVEsU0FBUyxFQUFFO1lBQ2pCLEtBQUssVUFBVSxDQUFDLElBQUk7Z0JBQ2xCLE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3hDLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FDaEIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU87Z0JBQzdCLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUseURBQXlEO2dCQUNuRixNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTTtpQkFDNUIsQ0FBQztnQkFDRixNQUFNO1lBQ1IsS0FBSyxVQUFVLENBQUMsS0FBSztnQkFDbkIsTUFBTSxVQUFVLEdBQUcsS0FBb0IsQ0FBQztnQkFDeEMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7b0JBQzVDLE9BQU8sSUFBSSxDQUFDLEtBQUssS0FBSyxVQUFVLENBQUM7Z0JBQ25DLENBQUMsQ0FBQyxDQUFDO2dCQUNILE1BQU07WUFDUixLQUFLLFVBQVUsQ0FBQyxRQUFRO2dCQUN0QixLQUFLLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUM1QixNQUFNO1lBQ1I7Z0JBQ0UsS0FBSyxHQUFHLFVBQVUsQ0FBQztnQkFDbkIsTUFBTTtTQUNUO0tBQ0Y7U0FBTTtRQUNMLEtBQUssR0FBRyxVQUFVLENBQUM7S0FDcEI7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLEtBQWEsRUFBTyxFQUFFO0lBQ2xELE1BQU0sU0FBUyxHQUFlLEtBQUssQ0FBQyxJQUFJLENBQUM7SUFDekMsSUFBSSxLQUFVLENBQUM7SUFFZixRQUFRLFNBQVMsRUFBRTtRQUNqQixLQUFLLFVBQVUsQ0FBQyxRQUFRO1lBQ3RCLEtBQUssR0FBRyxLQUFLLENBQUM7WUFDZCxNQUFNO1FBQ1IsS0FBSyxVQUFVLENBQUMsTUFBTTtZQUNwQixLQUFLLEdBQUcsSUFBSSxDQUFDO1lBQ2IsTUFBTTtRQUNSLEtBQUssVUFBVSxDQUFDLElBQUk7WUFDbEIsS0FBSyxHQUFHLElBQUksQ0FBQztZQUNiLE1BQU07UUFDUjtZQUNFLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDWCxNQUFNO0tBQ1Q7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR1aURheSB9IGZyb20gXCJAdGFpZ2EtdWkvY2RrXCI7XHJcbmltcG9ydCBqcCBmcm9tIFwianNvbnBhdGhcIjtcclxuaW1wb3J0IF8gZnJvbSBcImxvZGFzaFwiO1xyXG5pbXBvcnQgeyBFRmllbGRUeXBlIH0gZnJvbSBcIi4uL2RlZmluaXRpb25zL2ZpZWxkcy9mb3JtLXZpZXcuZmllbGRzLmVudW0uZGVmaW5pdGlvbnNcIjtcclxuaW1wb3J0IHtcclxuICBURmllbGQsXHJcbiAgVEZpZWxkUmFkaW8sXHJcbiAgVEZpZWxkVHlwZVxyXG59IGZyb20gXCIuLi9kZWZpbml0aW9ucy9maWVsZHMvZm9ybS12aWV3LmZpZWxkcy50eXBlLmRlZmluaXRpb25zXCI7XHJcblxyXG5leHBvcnQgY29uc3QgaGFzS2V5ID0gKG9iamVjdDogYW55LCBrZXk6IHN0cmluZyk6IGJvb2xlYW4gPT4ge1xyXG4gIHJldHVybiBvYmplY3QuaGFzT3duUHJvcGVydHkoa2V5KTtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBoYXNQYXRoID0gKG9iamVjdDogYW55LCBwYXRoOiBzdHJpbmcpOiBib29sZWFuID0+IHtcclxuICByZXR1cm4gXy5oYXMob2JqZWN0LCBwYXRoKTtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBpc0VtcHR5U3RyaW5nID0gKHZhbHVlOiBzdHJpbmcpOiBib29sZWFuID0+IHtcclxuICByZXR1cm4gdmFsdWUgPT09IFwiXCI7XHJcbn07XHJcbmV4cG9ydCBjb25zdCBpc1VuZGVmaW5lZCA9ICh2YWx1ZTogYW55KTogYm9vbGVhbiA9PiB7XHJcbiAgcmV0dXJuIHZhbHVlID09PSB1bmRlZmluZWQ7XHJcbn07XHJcbmV4cG9ydCBjb25zdCBpc051bGwgPSAodmFsdWU6IGFueSk6IGJvb2xlYW4gPT4ge1xyXG4gIHJldHVybiB2YWx1ZSA9PT0gbnVsbDtcclxufTtcclxuZXhwb3J0IGNvbnN0IGlzRW1wdHlPYmplY3QgPSAob2JqZWN0OiBhbnkpOiBib29sZWFuID0+IHtcclxuICByZXR1cm4gKFxyXG4gICAgb2JqZWN0ICYmXHJcbiAgICBPYmplY3Qua2V5cyhvYmplY3QpLmxlbmd0aCA9PT0gMCAmJlxyXG4gICAgT2JqZWN0LmdldFByb3RvdHlwZU9mKG9iamVjdCkgPT09IE9iamVjdC5wcm90b3R5cGVcclxuICApO1xyXG59O1xyXG5leHBvcnQgY29uc3QgaXNFbXB0eUFycmF5ID0gKGFycjogYW55W10pOiBib29sZWFuID0+IHtcclxuICByZXR1cm4gYXJyLmxlbmd0aCA9PT0gMDtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBpc0VtcHR5ID0gKHZhbHVlOiBhbnkpOiBib29sZWFuID0+IHtcclxuICBpZiAoaXNFbXB0eVN0cmluZyh2YWx1ZSkgfHwgaXNVbmRlZmluZWQodmFsdWUpIHx8IGlzTnVsbCh2YWx1ZSkpIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH0gZWxzZSBpZiAoaXNFbXB0eU9iamVjdCh2YWx1ZSkpIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcclxuICAgIGlmIChpc0VtcHR5QXJyYXkodmFsdWUpKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH0gZWxzZSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGlzTm90RW1wdHkgPSAodmFsdWU6IGFueSkgPT4ge1xyXG4gIHJldHVybiAhaXNFbXB0eSh2YWx1ZSk7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgaXNFbXB0eUJyb3dzZXJTdG9yYWdlVmFsdWUgPSAodmFsdWU6IGFueSkgPT4ge1xyXG4gIHJldHVybiBpc051bGwodmFsdWUpICYmIGlzVW5kZWZpbmVkKHZhbHVlKTtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBpc05vdEVtcHR5QnJvd3NlclN0b3JhZ2VWYWx1ZSA9ICh2YWx1ZTogYW55KSA9PiB7XHJcbiAgcmV0dXJuICFpc0VtcHR5QnJvd3NlclN0b3JhZ2VWYWx1ZSh2YWx1ZSk7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgaGFuZGxlSlBRdWVyeVJlc3BvbnNlID0gKHZhbHVlOiBhbnkpOiBhbnkgPT4ge1xyXG4gIC8qKlxyXG4gICAqIGpwLnF1ZXJ5IGRvZXNuJ3QgYWx3YXlzIHJldHVybiBhbiBhcnJheSB3aXRoIG9uZSBlbGVtZW50XHJcbiAgICogc28gZGlyZWN0bHkgY2FuJ3QgYWNjZXNzIHdpdGggWzBdLCBuZWVkIHRvIGNoZWNrIGNvbmRpdGlvbmFsbHlcclxuICAgKi9cclxuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcclxuICAgIGlmICh2YWx1ZS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHZhbHVlID0gdmFsdWVbMF07XHJcbiAgICB9IGVsc2UgaWYgKHZhbHVlLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICB2YWx1ZSA9IFwiXCI7XHJcbiAgICB9XHJcbiAgfSBlbHNlIHtcclxuICAgIHZhbHVlID0gXCJcIjtcclxuICB9XHJcblxyXG4gIHJldHVybiB2YWx1ZTtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBqcFF1ZXJ5V3JhcHBlciA9IChvYmo6IGFueSwga2V5OiBzdHJpbmcpID0+IHtcclxuICByZXR1cm4gaGFuZGxlSlBRdWVyeVJlc3BvbnNlKGpwLnF1ZXJ5KG9iaiwga2V5KSk7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgcmVwbGFjZVN0cmluZyA9IChcclxuICBzdHI6IHN0cmluZyxcclxuICBmaW5kOiBzdHJpbmcsXHJcbiAgcmVwbGFjZTogc3RyaW5nXHJcbik6IHN0cmluZyA9PiB7XHJcbiAgcmV0dXJuIHN0ci5yZXBsYWNlKG5ldyBSZWdFeHAoZmluZCwgXCJnXCIpLCByZXBsYWNlKTtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBzZXRGaWVsZEtleVZhbHVlID0gKGZpZWxkOiBhbnksIHBhdGg6IHN0cmluZywgdmFsdWU6IGFueSk6IGFueSA9PiB7XHJcbiAgcmV0dXJuIF8uc2V0KGZpZWxkLCBwYXRoLCB2YWx1ZSk7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3Qgc2V0VmFsdWVUb09iamVjdCA9IChcclxuICBvYmplY3Q6IGFueSxcclxuICBwYXRoOiBzdHJpbmcsXHJcbiAgdmFsdWU6IGFueVxyXG4pOiBhbnkgPT4ge1xyXG4gIHJldHVybiBfLnNldChvYmplY3QsIHBhdGgsIHZhbHVlKTtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBmb3JtYXRWYWx1ZSA9IChmaWVsZDogVEZpZWxkLCBmaWVsZFZhbHVlOiBhbnkpOiBhbnkgPT4ge1xyXG4gIGNvbnN0IGZpZWxkVHlwZTogVEZpZWxkVHlwZSA9IGZpZWxkLnR5cGU7XHJcbiAgbGV0IHZhbHVlOiBhbnk7XHJcblxyXG4gIGlmIChpc05vdEVtcHR5KGZpZWxkVmFsdWUpKSB7XHJcbiAgICBzd2l0Y2ggKGZpZWxkVHlwZSkge1xyXG4gICAgICBjYXNlIEVGaWVsZFR5cGUuREFURTpcclxuICAgICAgICBjb25zdCBzcGxpdERhdGUgPSBmaWVsZFZhbHVlLnNwbGl0KFwiLVwiKTtcclxuICAgICAgICB2YWx1ZSA9IG5ldyBUdWlEYXkoXHJcbiAgICAgICAgICBOdW1iZXIoc3BsaXREYXRlWzJdKSwgLy8gWWVhclxyXG4gICAgICAgICAgTnVtYmVyKHNwbGl0RGF0ZVsxXSkgLSAxLCAvLyBNb250aCwgV2h5ICctMScgPT4gQmVjYXVzZSBUYWlnYS1VSSBSZXF1aXJlZCBJdCwgU28uLi5cclxuICAgICAgICAgIE51bWJlcihzcGxpdERhdGVbMF0pIC8vIERheVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgRUZpZWxkVHlwZS5SQURJTzpcclxuICAgICAgICBjb25zdCBmaWVsZFJhZGlvID0gZmllbGQgYXMgVEZpZWxkUmFkaW87XHJcbiAgICAgICAgdmFsdWUgPSBmaWVsZFJhZGlvLm9wdGlvbnMuZmluZCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gaXRlbS5sYWJlbCA9PT0gZmllbGRWYWx1ZTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBFRmllbGRUeXBlLkNIRUNLQk9YOlxyXG4gICAgICAgIHZhbHVlID0gQm9vbGVhbihmaWVsZFZhbHVlKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICB2YWx1ZSA9IGZpZWxkVmFsdWU7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfSBlbHNlIHtcclxuICAgIHZhbHVlID0gZmllbGRWYWx1ZTtcclxuICB9XHJcblxyXG4gIHJldHVybiB2YWx1ZTtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBzZXRFbXB0eVZhbHVlID0gKGZpZWxkOiBURmllbGQpOiBhbnkgPT4ge1xyXG4gIGNvbnN0IGZpZWxkVHlwZTogVEZpZWxkVHlwZSA9IGZpZWxkLnR5cGU7XHJcbiAgbGV0IHZhbHVlOiBhbnk7XHJcblxyXG4gIHN3aXRjaCAoZmllbGRUeXBlKSB7XHJcbiAgICBjYXNlIEVGaWVsZFR5cGUuQ0hFQ0tCT1g6XHJcbiAgICAgIHZhbHVlID0gZmFsc2U7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSBFRmllbGRUeXBlLk5VTUJFUjpcclxuICAgICAgdmFsdWUgPSBudWxsO1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgRUZpZWxkVHlwZS5EQVRFOlxyXG4gICAgICB2YWx1ZSA9IG51bGw7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgZGVmYXVsdDpcclxuICAgICAgdmFsdWUgPSBcIlwiO1xyXG4gICAgICBicmVhaztcclxuICB9XHJcblxyXG4gIHJldHVybiB2YWx1ZTtcclxufTtcclxuIl19
@@ -0,0 +1,46 @@
1
+ import { __decorate } from "tslib";
2
+ import { log } from "../form-view.decorators";
3
+ import { replaceString } from "./form-view.common.helper";
4
+ export class Condition {
5
+ constructor(condition, rulesMapping) {
6
+ this._condition = condition;
7
+ this._rulesMapping = rulesMapping;
8
+ }
9
+ parseKeys(condition, rulesEvaluationMapping) {
10
+ Object.keys(rulesEvaluationMapping).forEach((key) => {
11
+ condition = replaceString(condition, key, rulesEvaluationMapping[key]);
12
+ });
13
+ return condition;
14
+ }
15
+ parseOperators(condition) {
16
+ return condition.replace(/AND|OR|NOT|XOR|NAND|NOR|XNOR/g, (match) => {
17
+ switch (match) {
18
+ case "AND":
19
+ return "&&";
20
+ case "OR":
21
+ return "||";
22
+ case "NOT":
23
+ return "!";
24
+ case "XOR":
25
+ return "^";
26
+ case "NAND":
27
+ return "!&";
28
+ case "NOR":
29
+ return "!|";
30
+ case "XNOR":
31
+ return "!^";
32
+ default:
33
+ return match;
34
+ }
35
+ });
36
+ }
37
+ evaluate() {
38
+ this._condition = this.parseKeys(this._condition, this._rulesMapping);
39
+ this._condition = this.parseOperators(this._condition);
40
+ return eval(this._condition);
41
+ }
42
+ }
43
+ __decorate([
44
+ log
45
+ ], Condition.prototype, "evaluate", null);
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12aWV3LmNvbmRpdGlvbi5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtZm9ybXMvc3JjL2xpYi9yZW5kZXJlci9mb3JtLXZpZXcvaGVscGVycy9mb3JtLXZpZXcuY29uZGl0aW9uLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUUxRCxNQUFNLE9BQU8sU0FBUztJQUlwQixZQUFZLFNBQWlCLEVBQUUsWUFBaUI7UUFDOUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7UUFDNUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxZQUFZLENBQUM7SUFDcEMsQ0FBQztJQUVPLFNBQVMsQ0FBQyxTQUFpQixFQUFFLHNCQUE4QjtRQUNqRSxNQUFNLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDbEQsU0FBUyxHQUFHLGFBQWEsQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDekUsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRU8sY0FBYyxDQUFDLFNBQWlCO1FBQ3RDLE9BQU8sU0FBUyxDQUFDLE9BQU8sQ0FBQywrQkFBK0IsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2xFLFFBQVEsS0FBSyxFQUFFO2dCQUNiLEtBQUssS0FBSztvQkFDUixPQUFPLElBQUksQ0FBQztnQkFDZCxLQUFLLElBQUk7b0JBQ1AsT0FBTyxJQUFJLENBQUM7Z0JBQ2QsS0FBSyxLQUFLO29CQUNSLE9BQU8sR0FBRyxDQUFDO2dCQUNiLEtBQUssS0FBSztvQkFDUixPQUFPLEdBQUcsQ0FBQztnQkFDYixLQUFLLE1BQU07b0JBQ1QsT0FBTyxJQUFJLENBQUM7Z0JBQ2QsS0FBSyxLQUFLO29CQUNSLE9BQU8sSUFBSSxDQUFDO2dCQUNkLEtBQUssTUFBTTtvQkFDVCxPQUFPLElBQUksQ0FBQztnQkFDZDtvQkFDRSxPQUFPLEtBQUssQ0FBQzthQUNoQjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUdELFFBQVE7UUFDTixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDdEUsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUV2RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDL0IsQ0FBQztDQUNGO0FBTkM7SUFEQyxHQUFHO3lDQU1IIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbG9nIH0gZnJvbSBcIi4uL2Zvcm0tdmlldy5kZWNvcmF0b3JzXCI7XHJcbmltcG9ydCB7IHJlcGxhY2VTdHJpbmcgfSBmcm9tIFwiLi9mb3JtLXZpZXcuY29tbW9uLmhlbHBlclwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIENvbmRpdGlvbiB7XHJcbiAgcHJpdmF0ZSBfY29uZGl0aW9uOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfcnVsZXNNYXBwaW5nOiBhbnk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKGNvbmRpdGlvbjogc3RyaW5nLCBydWxlc01hcHBpbmc6IGFueSkge1xyXG4gICAgdGhpcy5fY29uZGl0aW9uID0gY29uZGl0aW9uO1xyXG4gICAgdGhpcy5fcnVsZXNNYXBwaW5nID0gcnVsZXNNYXBwaW5nO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwYXJzZUtleXMoY29uZGl0aW9uOiBzdHJpbmcsIHJ1bGVzRXZhbHVhdGlvbk1hcHBpbmc6IG9iamVjdCk6IHN0cmluZyB7XHJcbiAgICBPYmplY3Qua2V5cyhydWxlc0V2YWx1YXRpb25NYXBwaW5nKS5mb3JFYWNoKChrZXkpID0+IHtcclxuICAgICAgY29uZGl0aW9uID0gcmVwbGFjZVN0cmluZyhjb25kaXRpb24sIGtleSwgcnVsZXNFdmFsdWF0aW9uTWFwcGluZ1trZXldKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBjb25kaXRpb247XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHBhcnNlT3BlcmF0b3JzKGNvbmRpdGlvbjogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBjb25kaXRpb24ucmVwbGFjZSgvQU5EfE9SfE5PVHxYT1J8TkFORHxOT1J8WE5PUi9nLCAobWF0Y2gpID0+IHtcclxuICAgICAgc3dpdGNoIChtYXRjaCkge1xyXG4gICAgICAgIGNhc2UgXCJBTkRcIjpcclxuICAgICAgICAgIHJldHVybiBcIiYmXCI7XHJcbiAgICAgICAgY2FzZSBcIk9SXCI6XHJcbiAgICAgICAgICByZXR1cm4gXCJ8fFwiO1xyXG4gICAgICAgIGNhc2UgXCJOT1RcIjpcclxuICAgICAgICAgIHJldHVybiBcIiFcIjtcclxuICAgICAgICBjYXNlIFwiWE9SXCI6XHJcbiAgICAgICAgICByZXR1cm4gXCJeXCI7XHJcbiAgICAgICAgY2FzZSBcIk5BTkRcIjpcclxuICAgICAgICAgIHJldHVybiBcIiEmXCI7XHJcbiAgICAgICAgY2FzZSBcIk5PUlwiOlxyXG4gICAgICAgICAgcmV0dXJuIFwiIXxcIjtcclxuICAgICAgICBjYXNlIFwiWE5PUlwiOlxyXG4gICAgICAgICAgcmV0dXJuIFwiIV5cIjtcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgcmV0dXJuIG1hdGNoO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIEBsb2dcclxuICBldmFsdWF0ZSgpOiBib29sZWFuIHtcclxuICAgIHRoaXMuX2NvbmRpdGlvbiA9IHRoaXMucGFyc2VLZXlzKHRoaXMuX2NvbmRpdGlvbiwgdGhpcy5fcnVsZXNNYXBwaW5nKTtcclxuICAgIHRoaXMuX2NvbmRpdGlvbiA9IHRoaXMucGFyc2VPcGVyYXRvcnModGhpcy5fY29uZGl0aW9uKTtcclxuXHJcbiAgICByZXR1cm4gZXZhbCh0aGlzLl9jb25kaXRpb24pO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,52 @@
1
+ import { __awaiter, __decorate } from "tslib";
2
+ import { isEmpty } from "../../renderer.helper";
3
+ import { log } from "../form-view.decorators";
4
+ import { Actions } from "./form-view.actions.helper";
5
+ import { setEmptyValue, setValueToObject } from "./form-view.common.helper";
6
+ import { Condition } from "./form-view.condition.helper";
7
+ import { Rules } from "./form-view.rules.helper";
8
+ import { Sources } from "./form-view.sources.helper";
9
+ export class Defaults {
10
+ constructor(field, allFormsData, formData, previousFormData, takeAction) {
11
+ this._field = field;
12
+ this._allFormsData = allFormsData;
13
+ this._formData = formData;
14
+ this._previousFormData = previousFormData;
15
+ this._takeAction = takeAction;
16
+ }
17
+ getDefaultValue() {
18
+ return __awaiter(this, void 0, void 0, function* () {
19
+ let defaultValue;
20
+ const sources = this._field.default.value.sources;
21
+ let sourceIndex = 0;
22
+ for (let source of sources) {
23
+ const sources = new Sources(this._field, this._formData, this._previousFormData, this._allFormsData);
24
+ const value = sources.getValueFromSource(source);
25
+ // Set the Value of current source.
26
+ this._field = setValueToObject(this._field, `default.value.sources.[${sourceIndex}].value`, value);
27
+ const validation = source.validation;
28
+ const triggers = validation.triggers;
29
+ const rules = validation.rules;
30
+ const actions = validation.actions;
31
+ const rulesMapping = new Rules(rules, this._field, this._formData, this._previousFormData, this._allFormsData).mapping();
32
+ for (let action of actions) {
33
+ const conditionEvaluation = new Condition(action.condition, rulesMapping).evaluate();
34
+ if (conditionEvaluation) {
35
+ const actions = new Actions(action, this._field, rulesMapping, this._allFormsData, this._formData, this._previousFormData, this._takeAction);
36
+ yield actions.execute();
37
+ }
38
+ }
39
+ sourceIndex++;
40
+ }
41
+ defaultValue = this._field.default.value.value;
42
+ if (isEmpty(defaultValue)) {
43
+ defaultValue = setEmptyValue(this._field);
44
+ }
45
+ return defaultValue;
46
+ });
47
+ }
48
+ }
49
+ __decorate([
50
+ log
51
+ ], Defaults.prototype, "getDefaultValue", null);
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12aWV3LmRlZmF1bHRzLmhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2t3aWtpZC1mb3Jtcy9zcmMvbGliL3JlbmRlcmVyL2Zvcm0tdmlldy9oZWxwZXJzL2Zvcm0tdmlldy5kZWZhdWx0cy5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQU1oRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDekQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVyRCxNQUFNLE9BQU8sUUFBUTtJQU9uQixZQUNFLEtBQWEsRUFDYixZQUFpQixFQUNqQixRQUFhLEVBQ2IsZ0JBQXFCLEVBQ3JCLFVBQW9CO1FBRXBCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxhQUFhLEdBQUcsWUFBWSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO1FBQzFCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxnQkFBZ0IsQ0FBQztRQUMxQyxJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQztJQUNoQyxDQUFDO0lBR0ssZUFBZTs7WUFDbkIsSUFBSSxZQUFpQixDQUFDO1lBRXRCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7WUFFbEQsSUFBSSxXQUFXLEdBQUcsQ0FBQyxDQUFDO1lBQ3BCLEtBQUssSUFBSSxNQUFNLElBQUksT0FBTyxFQUFFO2dCQUMxQixNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FDekIsSUFBSSxDQUFDLE1BQU0sRUFDWCxJQUFJLENBQUMsU0FBUyxFQUNkLElBQUksQ0FBQyxpQkFBaUIsRUFDdEIsSUFBSSxDQUFDLGFBQWEsQ0FDbkIsQ0FBQztnQkFDRixNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ2pELG1DQUFtQztnQkFDbkMsSUFBSSxDQUFDLE1BQU0sR0FBRyxnQkFBZ0IsQ0FDNUIsSUFBSSxDQUFDLE1BQU0sRUFDWCwwQkFBMEIsV0FBVyxTQUFTLEVBQzlDLEtBQUssQ0FDTixDQUFDO2dCQUVGLE1BQU0sVUFBVSxHQUFnQixNQUFNLENBQUMsVUFBVSxDQUFDO2dCQUVsRCxNQUFNLFFBQVEsR0FBb0IsVUFBVSxDQUFDLFFBQVEsQ0FBQztnQkFDdEQsTUFBTSxLQUFLLEdBQWlCLFVBQVUsQ0FBQyxLQUFLLENBQUM7Z0JBQzdDLE1BQU0sT0FBTyxHQUFtQixVQUFVLENBQUMsT0FBTyxDQUFDO2dCQUVuRCxNQUFNLFlBQVksR0FBRyxJQUFJLEtBQUssQ0FDNUIsS0FBSyxFQUNMLElBQUksQ0FBQyxNQUFNLEVBQ1gsSUFBSSxDQUFDLFNBQVMsRUFDZCxJQUFJLENBQUMsaUJBQWlCLEVBQ3RCLElBQUksQ0FBQyxhQUFhLENBQ25CLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBRVosS0FBSyxJQUFJLE1BQU0sSUFBSSxPQUFPLEVBQUU7b0JBQzFCLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxTQUFTLENBQ3ZDLE1BQU0sQ0FBQyxTQUFTLEVBQ2hCLFlBQVksQ0FDYixDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUViLElBQUksbUJBQW1CLEVBQUU7d0JBQ3ZCLE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxDQUN6QixNQUFNLEVBQ04sSUFBSSxDQUFDLE1BQU0sRUFDWCxZQUFZLEVBQ1osSUFBSSxDQUFDLGFBQWEsRUFDbEIsSUFBSSxDQUFDLFNBQVMsRUFDZCxJQUFJLENBQUMsaUJBQWlCLEVBQ3RCLElBQUksQ0FBQyxXQUFXLENBQ2pCLENBQUM7d0JBRUYsTUFBTSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7cUJBQ3pCO2lCQUNGO2dCQUVELFdBQVcsRUFBRSxDQUFDO2FBQ2Y7WUFFRCxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztZQUUvQyxJQUFJLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRTtnQkFDekIsWUFBWSxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDM0M7WUFFRCxPQUFPLFlBQVksQ0FBQztRQUN0QixDQUFDO0tBQUE7Q0FDRjtBQW5FQztJQURDLEdBQUc7K0NBbUVIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNFbXB0eSB9IGZyb20gXCIuLi8uLi9yZW5kZXJlci5oZWxwZXJcIjtcclxuaW1wb3J0IHsgVEFjdGlvbiB9IGZyb20gXCIuLi9kZWZpbml0aW9ucy9hY3Rpb25zL2Zvcm0tdmlldy5hY3Rpb25zLnR5cGUuZGVmaW5pdGlvbnNcIjtcclxuaW1wb3J0IHsgVEZpZWxkIH0gZnJvbSBcIi4uL2RlZmluaXRpb25zL2ZpZWxkcy9mb3JtLXZpZXcuZmllbGRzLnR5cGUuZGVmaW5pdGlvbnNcIjtcclxuaW1wb3J0IHsgVFJ1bGUgfSBmcm9tIFwiLi4vZGVmaW5pdGlvbnMvcnVsZXMvZm9ybS12aWV3LnJ1bGVzLnR5cGUuZGVmaW5pdGlvbnNcIjtcclxuaW1wb3J0IHsgVFRyaWdnZXIgfSBmcm9tIFwiLi4vZGVmaW5pdGlvbnMvdHJpZ2dlcnMvZm9ybS12aWV3LnRyaWdnZXJzLnR5cGUuZGVmaW5pdGlvbnNcIjtcclxuaW1wb3J0IHsgVFZhbGlkYXRpb24gfSBmcm9tIFwiLi4vZGVmaW5pdGlvbnMvdmFsaWRhdGlvbnMvZm9ybS12aWV3LnZhbGlkYXRpb25zLnR5cGUuZGVmaW5pdGlvbnNcIjtcclxuaW1wb3J0IHsgbG9nIH0gZnJvbSBcIi4uL2Zvcm0tdmlldy5kZWNvcmF0b3JzXCI7XHJcbmltcG9ydCB7IEFjdGlvbnMgfSBmcm9tIFwiLi9mb3JtLXZpZXcuYWN0aW9ucy5oZWxwZXJcIjtcclxuaW1wb3J0IHsgc2V0RW1wdHlWYWx1ZSwgc2V0VmFsdWVUb09iamVjdCB9IGZyb20gXCIuL2Zvcm0tdmlldy5jb21tb24uaGVscGVyXCI7XHJcbmltcG9ydCB7IENvbmRpdGlvbiB9IGZyb20gXCIuL2Zvcm0tdmlldy5jb25kaXRpb24uaGVscGVyXCI7XHJcbmltcG9ydCB7IFJ1bGVzIH0gZnJvbSBcIi4vZm9ybS12aWV3LnJ1bGVzLmhlbHBlclwiO1xyXG5pbXBvcnQgeyBTb3VyY2VzIH0gZnJvbSBcIi4vZm9ybS12aWV3LnNvdXJjZXMuaGVscGVyXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgRGVmYXVsdHMge1xyXG4gIHByaXZhdGUgX2FsbEZvcm1zRGF0YTogYW55O1xyXG4gIHByaXZhdGUgX2ZpZWxkOiBURmllbGQ7XHJcbiAgcHJpdmF0ZSBfZm9ybURhdGE6IGFueTtcclxuICBwcml2YXRlIF9wcmV2aW91c0Zvcm1EYXRhOiBhbnk7XHJcbiAgcHJpdmF0ZSBfdGFrZUFjdGlvbjogRnVuY3Rpb247XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgZmllbGQ6IFRGaWVsZCxcclxuICAgIGFsbEZvcm1zRGF0YTogYW55LFxyXG4gICAgZm9ybURhdGE6IGFueSxcclxuICAgIHByZXZpb3VzRm9ybURhdGE6IGFueSxcclxuICAgIHRha2VBY3Rpb246IEZ1bmN0aW9uXHJcbiAgKSB7XHJcbiAgICB0aGlzLl9maWVsZCA9IGZpZWxkO1xyXG4gICAgdGhpcy5fYWxsRm9ybXNEYXRhID0gYWxsRm9ybXNEYXRhO1xyXG4gICAgdGhpcy5fZm9ybURhdGEgPSBmb3JtRGF0YTtcclxuICAgIHRoaXMuX3ByZXZpb3VzRm9ybURhdGEgPSBwcmV2aW91c0Zvcm1EYXRhO1xyXG4gICAgdGhpcy5fdGFrZUFjdGlvbiA9IHRha2VBY3Rpb247XHJcbiAgfVxyXG5cclxuICBAbG9nXHJcbiAgYXN5bmMgZ2V0RGVmYXVsdFZhbHVlKCkge1xyXG4gICAgbGV0IGRlZmF1bHRWYWx1ZTogYW55O1xyXG5cclxuICAgIGNvbnN0IHNvdXJjZXMgPSB0aGlzLl9maWVsZC5kZWZhdWx0LnZhbHVlLnNvdXJjZXM7XHJcblxyXG4gICAgbGV0IHNvdXJjZUluZGV4ID0gMDtcclxuICAgIGZvciAobGV0IHNvdXJjZSBvZiBzb3VyY2VzKSB7XHJcbiAgICAgIGNvbnN0IHNvdXJjZXMgPSBuZXcgU291cmNlcyhcclxuICAgICAgICB0aGlzLl9maWVsZCxcclxuICAgICAgICB0aGlzLl9mb3JtRGF0YSxcclxuICAgICAgICB0aGlzLl9wcmV2aW91c0Zvcm1EYXRhLFxyXG4gICAgICAgIHRoaXMuX2FsbEZvcm1zRGF0YVxyXG4gICAgICApO1xyXG4gICAgICBjb25zdCB2YWx1ZSA9IHNvdXJjZXMuZ2V0VmFsdWVGcm9tU291cmNlKHNvdXJjZSk7XHJcbiAgICAgIC8vIFNldCB0aGUgVmFsdWUgb2YgY3VycmVudCBzb3VyY2UuXHJcbiAgICAgIHRoaXMuX2ZpZWxkID0gc2V0VmFsdWVUb09iamVjdChcclxuICAgICAgICB0aGlzLl9maWVsZCxcclxuICAgICAgICBgZGVmYXVsdC52YWx1ZS5zb3VyY2VzLlske3NvdXJjZUluZGV4fV0udmFsdWVgLFxyXG4gICAgICAgIHZhbHVlXHJcbiAgICAgICk7XHJcblxyXG4gICAgICBjb25zdCB2YWxpZGF0aW9uOiBUVmFsaWRhdGlvbiA9IHNvdXJjZS52YWxpZGF0aW9uO1xyXG5cclxuICAgICAgY29uc3QgdHJpZ2dlcnM6IEFycmF5PFRUcmlnZ2VyPiA9IHZhbGlkYXRpb24udHJpZ2dlcnM7XHJcbiAgICAgIGNvbnN0IHJ1bGVzOiBBcnJheTxUUnVsZT4gPSB2YWxpZGF0aW9uLnJ1bGVzO1xyXG4gICAgICBjb25zdCBhY3Rpb25zOiBBcnJheTxUQWN0aW9uPiA9IHZhbGlkYXRpb24uYWN0aW9ucztcclxuXHJcbiAgICAgIGNvbnN0IHJ1bGVzTWFwcGluZyA9IG5ldyBSdWxlcyhcclxuICAgICAgICBydWxlcyxcclxuICAgICAgICB0aGlzLl9maWVsZCxcclxuICAgICAgICB0aGlzLl9mb3JtRGF0YSxcclxuICAgICAgICB0aGlzLl9wcmV2aW91c0Zvcm1EYXRhLFxyXG4gICAgICAgIHRoaXMuX2FsbEZvcm1zRGF0YVxyXG4gICAgICApLm1hcHBpbmcoKTtcclxuXHJcbiAgICAgIGZvciAobGV0IGFjdGlvbiBvZiBhY3Rpb25zKSB7XHJcbiAgICAgICAgY29uc3QgY29uZGl0aW9uRXZhbHVhdGlvbiA9IG5ldyBDb25kaXRpb24oXHJcbiAgICAgICAgICBhY3Rpb24uY29uZGl0aW9uLFxyXG4gICAgICAgICAgcnVsZXNNYXBwaW5nXHJcbiAgICAgICAgKS5ldmFsdWF0ZSgpO1xyXG5cclxuICAgICAgICBpZiAoY29uZGl0aW9uRXZhbHVhdGlvbikge1xyXG4gICAgICAgICAgY29uc3QgYWN0aW9ucyA9IG5ldyBBY3Rpb25zKFxyXG4gICAgICAgICAgICBhY3Rpb24sXHJcbiAgICAgICAgICAgIHRoaXMuX2ZpZWxkLFxyXG4gICAgICAgICAgICBydWxlc01hcHBpbmcsXHJcbiAgICAgICAgICAgIHRoaXMuX2FsbEZvcm1zRGF0YSxcclxuICAgICAgICAgICAgdGhpcy5fZm9ybURhdGEsXHJcbiAgICAgICAgICAgIHRoaXMuX3ByZXZpb3VzRm9ybURhdGEsXHJcbiAgICAgICAgICAgIHRoaXMuX3Rha2VBY3Rpb25cclxuICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgYXdhaXQgYWN0aW9ucy5leGVjdXRlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBzb3VyY2VJbmRleCsrO1xyXG4gICAgfVxyXG5cclxuICAgIGRlZmF1bHRWYWx1ZSA9IHRoaXMuX2ZpZWxkLmRlZmF1bHQudmFsdWUudmFsdWU7XHJcblxyXG4gICAgaWYgKGlzRW1wdHkoZGVmYXVsdFZhbHVlKSkge1xyXG4gICAgICBkZWZhdWx0VmFsdWUgPSBzZXRFbXB0eVZhbHVlKHRoaXMuX2ZpZWxkKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZGVmYXVsdFZhbHVlO1xyXG4gIH1cclxufVxyXG4iXX0=