kwikid-forms 0.1.5 → 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 -4224
  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 -278
  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 -3027
  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 -36
  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,44 +1,44 @@
1
- import { CommonModule } from "@angular/common";
2
- import { NgModule } from "@angular/core";
3
- import { FormsModule, ReactiveFormsModule } from "@angular/forms";
4
- import { TuiLabelModule, TuiSvgModule } from "@taiga-ui/core";
5
- import { TuiPushModule } from "@taiga-ui/kit";
6
- import { KwikUIModule } from "kwikui";
7
- import { KwikIDFormViewComponent } from "./form-view.component";
8
- import * as i0 from "@angular/core";
9
- export class KwikIDFormViewModule {
10
- }
11
- /** @nocollapse */ KwikIDFormViewModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: KwikIDFormViewModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
- /** @nocollapse */ KwikIDFormViewModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: KwikIDFormViewModule, declarations: [KwikIDFormViewComponent], imports: [CommonModule,
13
- FormsModule,
14
- ReactiveFormsModule,
15
- TuiLabelModule,
16
- TuiPushModule,
17
- TuiSvgModule,
18
- KwikUIModule], exports: [KwikIDFormViewComponent] });
19
- /** @nocollapse */ KwikIDFormViewModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: KwikIDFormViewModule, imports: [[
20
- CommonModule,
21
- FormsModule,
22
- ReactiveFormsModule,
23
- TuiLabelModule,
24
- TuiPushModule,
25
- TuiSvgModule,
26
- KwikUIModule
27
- ]] });
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: KwikIDFormViewModule, decorators: [{
29
- type: NgModule,
30
- args: [{
31
- declarations: [KwikIDFormViewComponent],
32
- imports: [
33
- CommonModule,
34
- FormsModule,
35
- ReactiveFormsModule,
36
- TuiLabelModule,
37
- TuiPushModule,
38
- TuiSvgModule,
39
- KwikUIModule
40
- ],
41
- exports: [KwikIDFormViewComponent]
42
- }]
43
- }] });
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12aWV3Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2t3aWtpZC1mb3Jtcy9zcmMvbGliL3JlbmRlcmVyL2Zvcm0tdmlldy9mb3JtLXZpZXcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUN0QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFlaEUsTUFBTSxPQUFPLG9CQUFvQjs7cUlBQXBCLG9CQUFvQjtzSUFBcEIsb0JBQW9CLGlCQVpoQix1QkFBdUIsYUFFcEMsWUFBWTtRQUNaLFdBQVc7UUFDWCxtQkFBbUI7UUFDbkIsY0FBYztRQUNkLGFBQWE7UUFDYixZQUFZO1FBQ1osWUFBWSxhQUVKLHVCQUF1QjtzSUFFdEIsb0JBQW9CLFlBWHRCO1lBQ1AsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsY0FBYztZQUNkLGFBQWE7WUFDYixZQUFZO1lBQ1osWUFBWTtTQUNiOzRGQUdVLG9CQUFvQjtrQkFiaEMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztvQkFDdkMsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixZQUFZO3dCQUNaLFlBQVk7cUJBQ2I7b0JBQ0QsT0FBTyxFQUFFLENBQUMsdUJBQXVCLENBQUM7aUJBQ25DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IFR1aUxhYmVsTW9kdWxlLCBUdWlTdmdNb2R1bGUgfSBmcm9tIFwiQHRhaWdhLXVpL2NvcmVcIjtcclxuaW1wb3J0IHsgVHVpUHVzaE1vZHVsZSB9IGZyb20gXCJAdGFpZ2EtdWkva2l0XCI7XHJcbmltcG9ydCB7IEt3aWtVSU1vZHVsZSB9IGZyb20gXCJrd2lrdWlcIjtcclxuaW1wb3J0IHsgS3dpa0lERm9ybVZpZXdDb21wb25lbnQgfSBmcm9tIFwiLi9mb3JtLXZpZXcuY29tcG9uZW50XCI7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW0t3aWtJREZvcm1WaWV3Q29tcG9uZW50XSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBUdWlMYWJlbE1vZHVsZSxcclxuICAgIFR1aVB1c2hNb2R1bGUsXHJcbiAgICBUdWlTdmdNb2R1bGUsXHJcbiAgICBLd2lrVUlNb2R1bGVcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtLd2lrSURGb3JtVmlld0NvbXBvbmVudF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEt3aWtJREZvcm1WaWV3TW9kdWxlIHt9XHJcbiJdfQ==
1
+ import { CommonModule } from "@angular/common";
2
+ import { NgModule } from "@angular/core";
3
+ import { FormsModule, ReactiveFormsModule } from "@angular/forms";
4
+ import { TuiLabelModule, TuiSvgModule } from "@taiga-ui/core";
5
+ import { TuiPushModule } from "@taiga-ui/kit";
6
+ import { KwikUIModule } from "kwikui";
7
+ import { KwikIDFormViewComponent } from "./form-view.component";
8
+ import * as i0 from "@angular/core";
9
+ export class KwikIDFormViewModule {
10
+ }
11
+ /** @nocollapse */ KwikIDFormViewModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDFormViewModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
+ /** @nocollapse */ KwikIDFormViewModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDFormViewModule, declarations: [KwikIDFormViewComponent], imports: [CommonModule,
13
+ FormsModule,
14
+ ReactiveFormsModule,
15
+ TuiLabelModule,
16
+ TuiPushModule,
17
+ TuiSvgModule,
18
+ KwikUIModule], exports: [KwikIDFormViewComponent] });
19
+ /** @nocollapse */ KwikIDFormViewModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDFormViewModule, imports: [[
20
+ CommonModule,
21
+ FormsModule,
22
+ ReactiveFormsModule,
23
+ TuiLabelModule,
24
+ TuiPushModule,
25
+ TuiSvgModule,
26
+ KwikUIModule
27
+ ]] });
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDFormViewModule, decorators: [{
29
+ type: NgModule,
30
+ args: [{
31
+ declarations: [KwikIDFormViewComponent],
32
+ imports: [
33
+ CommonModule,
34
+ FormsModule,
35
+ ReactiveFormsModule,
36
+ TuiLabelModule,
37
+ TuiPushModule,
38
+ TuiSvgModule,
39
+ KwikUIModule
40
+ ],
41
+ exports: [KwikIDFormViewComponent]
42
+ }]
43
+ }] });
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12aWV3Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2t3aWtpZC1mb3Jtcy9zcmMvbGliL3JlbmRlcmVyL2Zvcm0tdmlldy9mb3JtLXZpZXcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUN0QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFlaEUsTUFBTSxPQUFPLG9CQUFvQjs7cUlBQXBCLG9CQUFvQjtzSUFBcEIsb0JBQW9CLGlCQVpoQix1QkFBdUIsYUFFcEMsWUFBWTtRQUNaLFdBQVc7UUFDWCxtQkFBbUI7UUFDbkIsY0FBYztRQUNkLGFBQWE7UUFDYixZQUFZO1FBQ1osWUFBWSxhQUVKLHVCQUF1QjtzSUFFdEIsb0JBQW9CLFlBWHRCO1lBQ1AsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsY0FBYztZQUNkLGFBQWE7WUFDYixZQUFZO1lBQ1osWUFBWTtTQUNiOzRGQUdVLG9CQUFvQjtrQkFiaEMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztvQkFDdkMsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixZQUFZO3dCQUNaLFlBQVk7cUJBQ2I7b0JBQ0QsT0FBTyxFQUFFLENBQUMsdUJBQXVCLENBQUM7aUJBQ25DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IFR1aUxhYmVsTW9kdWxlLCBUdWlTdmdNb2R1bGUgfSBmcm9tIFwiQHRhaWdhLXVpL2NvcmVcIjtcbmltcG9ydCB7IFR1aVB1c2hNb2R1bGUgfSBmcm9tIFwiQHRhaWdhLXVpL2tpdFwiO1xuaW1wb3J0IHsgS3dpa1VJTW9kdWxlIH0gZnJvbSBcImt3aWt1aVwiO1xuaW1wb3J0IHsgS3dpa0lERm9ybVZpZXdDb21wb25lbnQgfSBmcm9tIFwiLi9mb3JtLXZpZXcuY29tcG9uZW50XCI7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW0t3aWtJREZvcm1WaWV3Q29tcG9uZW50XSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFR1aUxhYmVsTW9kdWxlLFxuICAgIFR1aVB1c2hNb2R1bGUsXG4gICAgVHVpU3ZnTW9kdWxlLFxuICAgIEt3aWtVSU1vZHVsZVxuICBdLFxuICBleHBvcnRzOiBbS3dpa0lERm9ybVZpZXdDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIEt3aWtJREZvcm1WaWV3TW9kdWxlIHt9XG4iXX0=
@@ -1,29 +1,29 @@
1
- import { __awaiter, __decorate } from "tslib";
2
- import { FormControl, FormGroup } from "@angular/forms";
3
- import { logMethod } from "kwikid-toolkit";
4
- import { Defaults } from "./helpers/form-view.defaults.helper";
5
- import { convertValueFromBasicFormatToKwikUIFormat } from "./helpers/form-view.fields.helper";
6
- import { Validations } from "./helpers/form-view.validations.helper";
7
- export class KwikIDFormViewService {
8
- constructor() { }
9
- // 'init' stage of the form
10
- createFormGroup(fields, formData, previousFormData, allFormsData, takeAction) {
11
- return __awaiter(this, void 0, void 0, function* () {
12
- let formGroup = new FormGroup({});
13
- for (let field of fields) {
14
- if (field.type !== "title") {
15
- const defaults = new Defaults(field, allFormsData, formData, previousFormData, takeAction);
16
- let value = yield defaults.getDefaultValue();
17
- value = convertValueFromBasicFormatToKwikUIFormat(field, value);
18
- const validators = new Validations(field, formData, previousFormData, allFormsData, takeAction).getFieldValidators(field);
19
- formGroup.addControl(field.key, new FormControl({ value: value, disabled: field.disabled }, { validators: validators }));
20
- }
21
- }
22
- return formGroup;
23
- });
24
- }
25
- }
26
- __decorate([
27
- logMethod
28
- ], KwikIDFormViewService.prototype, "createFormGroup", null);
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12aWV3LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtZm9ybXMvc3JjL2xpYi9yZW5kZXJlci9mb3JtLXZpZXcvZm9ybS12aWV3LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMvRCxPQUFPLEVBQUUseUNBQXlDLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUM5RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFckUsTUFBTSxPQUFPLHFCQUFxQjtJQUNoQyxnQkFBZSxDQUFDO0lBRWhCLDJCQUEyQjtJQUVyQixlQUFlLENBQ25CLE1BQVcsRUFDWCxRQUFhLEVBQ2IsZ0JBQXFCLEVBQ3JCLFlBQWlCLEVBQ2pCLFVBQW9COztZQUVwQixJQUFJLFNBQVMsR0FBRyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUVsQyxLQUFLLElBQUksS0FBSyxJQUFJLE1BQU0sRUFBRTtnQkFDeEIsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRTtvQkFDMUIsTUFBTSxRQUFRLEdBQUcsSUFBSSxRQUFRLENBQzNCLEtBQUssRUFDTCxZQUFZLEVBQ1osUUFBUSxFQUNSLGdCQUFnQixFQUNoQixVQUFVLENBQ1gsQ0FBQztvQkFDRixJQUFJLEtBQUssR0FBRyxNQUFNLFFBQVEsQ0FBQyxlQUFlLEVBQUUsQ0FBQztvQkFDN0MsS0FBSyxHQUFHLHlDQUF5QyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztvQkFFaEUsTUFBTSxVQUFVLEdBQUcsSUFBSSxXQUFXLENBQ2hDLEtBQUssRUFDTCxRQUFRLEVBQ1IsZ0JBQWdCLEVBQ2hCLFlBQVksRUFDWixVQUFVLENBQ1gsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFFNUIsU0FBUyxDQUFDLFVBQVUsQ0FDbEIsS0FBSyxDQUFDLEdBQUcsRUFDVCxJQUFJLFdBQVcsQ0FDYixFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFDMUMsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLENBQzNCLENBQ0YsQ0FBQztpQkFDSDthQUNGO1lBRUQsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztLQUFBO0NBQ0Y7QUF6Q0M7SUFEQyxTQUFTOzREQXlDVCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgbG9nTWV0aG9kIH0gZnJvbSBcImt3aWtpZC10b29sa2l0XCI7XHJcbmltcG9ydCB7IERlZmF1bHRzIH0gZnJvbSBcIi4vaGVscGVycy9mb3JtLXZpZXcuZGVmYXVsdHMuaGVscGVyXCI7XHJcbmltcG9ydCB7IGNvbnZlcnRWYWx1ZUZyb21CYXNpY0Zvcm1hdFRvS3dpa1VJRm9ybWF0IH0gZnJvbSBcIi4vaGVscGVycy9mb3JtLXZpZXcuZmllbGRzLmhlbHBlclwiO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9ucyB9IGZyb20gXCIuL2hlbHBlcnMvZm9ybS12aWV3LnZhbGlkYXRpb25zLmhlbHBlclwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIEt3aWtJREZvcm1WaWV3U2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG5cclxuICAvLyAnaW5pdCcgc3RhZ2Ugb2YgdGhlIGZvcm1cclxuICBAbG9nTWV0aG9kXHJcbiAgYXN5bmMgY3JlYXRlRm9ybUdyb3VwKFxyXG4gICAgZmllbGRzOiBhbnksXHJcbiAgICBmb3JtRGF0YTogYW55LFxyXG4gICAgcHJldmlvdXNGb3JtRGF0YTogYW55LFxyXG4gICAgYWxsRm9ybXNEYXRhOiBhbnksXHJcbiAgICB0YWtlQWN0aW9uOiBGdW5jdGlvblxyXG4gICkge1xyXG4gICAgbGV0IGZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG5cclxuICAgIGZvciAobGV0IGZpZWxkIG9mIGZpZWxkcykge1xyXG4gICAgICBpZiAoZmllbGQudHlwZSAhPT0gXCJ0aXRsZVwiKSB7XHJcbiAgICAgICAgY29uc3QgZGVmYXVsdHMgPSBuZXcgRGVmYXVsdHMoXHJcbiAgICAgICAgICBmaWVsZCxcclxuICAgICAgICAgIGFsbEZvcm1zRGF0YSxcclxuICAgICAgICAgIGZvcm1EYXRhLFxyXG4gICAgICAgICAgcHJldmlvdXNGb3JtRGF0YSxcclxuICAgICAgICAgIHRha2VBY3Rpb25cclxuICAgICAgICApO1xyXG4gICAgICAgIGxldCB2YWx1ZSA9IGF3YWl0IGRlZmF1bHRzLmdldERlZmF1bHRWYWx1ZSgpO1xyXG4gICAgICAgIHZhbHVlID0gY29udmVydFZhbHVlRnJvbUJhc2ljRm9ybWF0VG9Ld2lrVUlGb3JtYXQoZmllbGQsIHZhbHVlKTtcclxuXHJcbiAgICAgICAgY29uc3QgdmFsaWRhdG9ycyA9IG5ldyBWYWxpZGF0aW9ucyhcclxuICAgICAgICAgIGZpZWxkLFxyXG4gICAgICAgICAgZm9ybURhdGEsXHJcbiAgICAgICAgICBwcmV2aW91c0Zvcm1EYXRhLFxyXG4gICAgICAgICAgYWxsRm9ybXNEYXRhLFxyXG4gICAgICAgICAgdGFrZUFjdGlvblxyXG4gICAgICAgICkuZ2V0RmllbGRWYWxpZGF0b3JzKGZpZWxkKTtcclxuXHJcbiAgICAgICAgZm9ybUdyb3VwLmFkZENvbnRyb2woXHJcbiAgICAgICAgICBmaWVsZC5rZXksXHJcbiAgICAgICAgICBuZXcgRm9ybUNvbnRyb2woXHJcbiAgICAgICAgICAgIHsgdmFsdWU6IHZhbHVlLCBkaXNhYmxlZDogZmllbGQuZGlzYWJsZWQgfSxcclxuICAgICAgICAgICAgeyB2YWxpZGF0b3JzOiB2YWxpZGF0b3JzIH1cclxuICAgICAgICAgIClcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZvcm1Hcm91cDtcclxuICB9XHJcbn1cclxuIl19
1
+ import { __awaiter, __decorate } from "tslib";
2
+ import { FormControl, FormGroup } from "@angular/forms";
3
+ import { logMethod } from "kwikid-toolkit";
4
+ import { Defaults } from "./helpers/form-view.defaults.helper";
5
+ import { convertValueFromBasicFormatToKwikUIFormat } from "./helpers/form-view.fields.helper";
6
+ import { Validations } from "./helpers/form-view.validations.helper";
7
+ export class KwikIDFormViewService {
8
+ constructor() { }
9
+ // 'init' stage of the form
10
+ createFormGroup(fields, formData, previousFormData, allFormsData, takeAction) {
11
+ return __awaiter(this, void 0, void 0, function* () {
12
+ let formGroup = new FormGroup({});
13
+ for (let field of fields) {
14
+ if (field.type !== "title") {
15
+ const defaults = new Defaults(field, allFormsData, formData, previousFormData, takeAction);
16
+ let value = yield defaults.getDefaultValue();
17
+ value = convertValueFromBasicFormatToKwikUIFormat(field, value);
18
+ const validators = new Validations(field, formData, previousFormData, allFormsData, takeAction).getFieldValidators(field);
19
+ formGroup.addControl(field.key, new FormControl({ value: value, disabled: field.disabled }, { validators: validators }));
20
+ }
21
+ }
22
+ return formGroup;
23
+ });
24
+ }
25
+ }
26
+ __decorate([
27
+ logMethod
28
+ ], KwikIDFormViewService.prototype, "createFormGroup", null);
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12aWV3LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtZm9ybXMvc3JjL2xpYi9yZW5kZXJlci9mb3JtLXZpZXcvZm9ybS12aWV3LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMvRCxPQUFPLEVBQUUseUNBQXlDLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUM5RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFckUsTUFBTSxPQUFPLHFCQUFxQjtJQUNoQyxnQkFBZSxDQUFDO0lBRWhCLDJCQUEyQjtJQUVyQixlQUFlLENBQ25CLE1BQVcsRUFDWCxRQUFhLEVBQ2IsZ0JBQXFCLEVBQ3JCLFlBQWlCLEVBQ2pCLFVBQW9COztZQUVwQixJQUFJLFNBQVMsR0FBRyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUVsQyxLQUFLLElBQUksS0FBSyxJQUFJLE1BQU0sRUFBRTtnQkFDeEIsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRTtvQkFDMUIsTUFBTSxRQUFRLEdBQUcsSUFBSSxRQUFRLENBQzNCLEtBQUssRUFDTCxZQUFZLEVBQ1osUUFBUSxFQUNSLGdCQUFnQixFQUNoQixVQUFVLENBQ1gsQ0FBQztvQkFDRixJQUFJLEtBQUssR0FBRyxNQUFNLFFBQVEsQ0FBQyxlQUFlLEVBQUUsQ0FBQztvQkFDN0MsS0FBSyxHQUFHLHlDQUF5QyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztvQkFFaEUsTUFBTSxVQUFVLEdBQUcsSUFBSSxXQUFXLENBQ2hDLEtBQUssRUFDTCxRQUFRLEVBQ1IsZ0JBQWdCLEVBQ2hCLFlBQVksRUFDWixVQUFVLENBQ1gsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFFNUIsU0FBUyxDQUFDLFVBQVUsQ0FDbEIsS0FBSyxDQUFDLEdBQUcsRUFDVCxJQUFJLFdBQVcsQ0FDYixFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFDMUMsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLENBQzNCLENBQ0YsQ0FBQztpQkFDSDthQUNGO1lBRUQsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztLQUFBO0NBQ0Y7QUF6Q0M7SUFEQyxTQUFTOzREQXlDVCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IGxvZ01ldGhvZCB9IGZyb20gXCJrd2lraWQtdG9vbGtpdFwiO1xuaW1wb3J0IHsgRGVmYXVsdHMgfSBmcm9tIFwiLi9oZWxwZXJzL2Zvcm0tdmlldy5kZWZhdWx0cy5oZWxwZXJcIjtcbmltcG9ydCB7IGNvbnZlcnRWYWx1ZUZyb21CYXNpY0Zvcm1hdFRvS3dpa1VJRm9ybWF0IH0gZnJvbSBcIi4vaGVscGVycy9mb3JtLXZpZXcuZmllbGRzLmhlbHBlclwiO1xuaW1wb3J0IHsgVmFsaWRhdGlvbnMgfSBmcm9tIFwiLi9oZWxwZXJzL2Zvcm0tdmlldy52YWxpZGF0aW9ucy5oZWxwZXJcIjtcblxuZXhwb3J0IGNsYXNzIEt3aWtJREZvcm1WaWV3U2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKCkge31cblxuICAvLyAnaW5pdCcgc3RhZ2Ugb2YgdGhlIGZvcm1cbiAgQGxvZ01ldGhvZFxuICBhc3luYyBjcmVhdGVGb3JtR3JvdXAoXG4gICAgZmllbGRzOiBhbnksXG4gICAgZm9ybURhdGE6IGFueSxcbiAgICBwcmV2aW91c0Zvcm1EYXRhOiBhbnksXG4gICAgYWxsRm9ybXNEYXRhOiBhbnksXG4gICAgdGFrZUFjdGlvbjogRnVuY3Rpb25cbiAgKSB7XG4gICAgbGV0IGZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe30pO1xuXG4gICAgZm9yIChsZXQgZmllbGQgb2YgZmllbGRzKSB7XG4gICAgICBpZiAoZmllbGQudHlwZSAhPT0gXCJ0aXRsZVwiKSB7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRzID0gbmV3IERlZmF1bHRzKFxuICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgIGFsbEZvcm1zRGF0YSxcbiAgICAgICAgICBmb3JtRGF0YSxcbiAgICAgICAgICBwcmV2aW91c0Zvcm1EYXRhLFxuICAgICAgICAgIHRha2VBY3Rpb25cbiAgICAgICAgKTtcbiAgICAgICAgbGV0IHZhbHVlID0gYXdhaXQgZGVmYXVsdHMuZ2V0RGVmYXVsdFZhbHVlKCk7XG4gICAgICAgIHZhbHVlID0gY29udmVydFZhbHVlRnJvbUJhc2ljRm9ybWF0VG9Ld2lrVUlGb3JtYXQoZmllbGQsIHZhbHVlKTtcblxuICAgICAgICBjb25zdCB2YWxpZGF0b3JzID0gbmV3IFZhbGlkYXRpb25zKFxuICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgIGZvcm1EYXRhLFxuICAgICAgICAgIHByZXZpb3VzRm9ybURhdGEsXG4gICAgICAgICAgYWxsRm9ybXNEYXRhLFxuICAgICAgICAgIHRha2VBY3Rpb25cbiAgICAgICAgKS5nZXRGaWVsZFZhbGlkYXRvcnMoZmllbGQpO1xuXG4gICAgICAgIGZvcm1Hcm91cC5hZGRDb250cm9sKFxuICAgICAgICAgIGZpZWxkLmtleSxcbiAgICAgICAgICBuZXcgRm9ybUNvbnRyb2woXG4gICAgICAgICAgICB7IHZhbHVlOiB2YWx1ZSwgZGlzYWJsZWQ6IGZpZWxkLmRpc2FibGVkIH0sXG4gICAgICAgICAgICB7IHZhbGlkYXRvcnM6IHZhbGlkYXRvcnMgfVxuICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZm9ybUdyb3VwO1xuICB9XG59XG4iXX0=
@@ -1,137 +1,137 @@
1
- import { __awaiter, __decorate } from "tslib";
2
- import { Actions, Condition, logMethod, Rules, Sources } from "kwikid-toolkit";
3
- import { setValueToObject } from "./form-view.common.helper";
4
- export class Apis {
5
- constructor(field, formData, previousFormData, allFormsData, takeAction) {
6
- this._field = field;
7
- this._formData = formData;
8
- this._previousFormData = previousFormData;
9
- this._allFormsData = allFormsData;
10
- this._takeAction = takeAction;
11
- this._api = field.api;
12
- this._request = field.api.request;
13
- this._response = field.api.response;
14
- this._status = field.api.status;
15
- }
16
- setRequestBodyParams() {
17
- var _a, _b, _c, _d;
18
- return __awaiter(this, void 0, void 0, function* () {
19
- let params = this._request.body.params;
20
- let paramIndex = 0;
21
- for (let param of params) {
22
- let sources = param.sources;
23
- let sourceIndex = 0;
24
- for (let source of sources) {
25
- const sources = new Sources({
26
- FIELD_CONFIG: this._field,
27
- FORM_DATA: this._formData,
28
- PREVIOUS_FORM_DATA: this._previousFormData,
29
- ALL_FORMS_DATA: this._allFormsData
30
- });
31
- const value = sources.getValueFromSource(source);
32
- // Set the Value of current source.
33
- this._field = setValueToObject(this._field, `api.request.body.params[${paramIndex}].sources[${sourceIndex}].value`, value);
34
- const validation = source.validation;
35
- const triggers = (_a = validation === null || validation === void 0 ? void 0 : validation.triggers) !== null && _a !== void 0 ? _a : [];
36
- const rules = (_b = validation === null || validation === void 0 ? void 0 : validation.rules) !== null && _b !== void 0 ? _b : [];
37
- const actions = (_d = (_c = validation) === null || _c === void 0 ? void 0 : _c.actions) !== null && _d !== void 0 ? _d : [];
38
- const rulesMapping = new Rules(rules, {
39
- FIELD_CONFIG: this._field,
40
- FORM_DATA: this._formData,
41
- PREVIOUS_FORM_DATA: this._previousFormData,
42
- ALL_FORMS_DATA: this._allFormsData
43
- }).mapping();
44
- for (let action of actions) {
45
- const conditionEvaluation = new Condition(action.condition, rulesMapping).evaluate();
46
- if (conditionEvaluation) {
47
- const actions = new Actions(action, rulesMapping, {
48
- FIELD_CONFIG: this._field,
49
- FORM_DATA: this._formData,
50
- PREVIOUS_FORM_DATA: this._previousFormData,
51
- ALL_FORMS_DATA: this._allFormsData
52
- }, this._takeAction);
53
- yield actions.execute();
54
- }
55
- }
56
- sourceIndex++;
57
- }
58
- paramIndex++;
59
- }
60
- return this._field;
61
- });
62
- }
63
- validateRequestBody() {
64
- var _a;
65
- return __awaiter(this, void 0, void 0, function* () {
66
- const body = this._request.body;
67
- const validation = body.validation;
68
- const triggers = validation.triggers;
69
- const rules = validation.rules;
70
- const actions = (_a = validation) === null || _a === void 0 ? void 0 : _a.actions;
71
- const rulesMapping = new Rules(rules, {
72
- FIELD_CONFIG: this._field,
73
- FORM_DATA: this._formData,
74
- PREVIOUS_FORM_DATA: this._previousFormData,
75
- ALL_FORMS_DATA: this._allFormsData
76
- }).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, rulesMapping, {
81
- FIELD_CONFIG: this._field,
82
- FORM_DATA: this._formData,
83
- PREVIOUS_FORM_DATA: this._previousFormData,
84
- ALL_FORMS_DATA: this._allFormsData
85
- }, this._takeAction);
86
- yield actions.execute();
87
- }
88
- }
89
- return this._field;
90
- });
91
- }
92
- validateApiCallResponse() {
93
- return __awaiter(this, void 0, void 0, function* () {
94
- const validation = this._response.validation;
95
- const triggers = validation.triggers;
96
- const rules = validation.rules;
97
- const actions = validation.actions;
98
- const rulesMapping = new Rules(rules, {
99
- FIELD_CONFIG: this._field,
100
- FORM_DATA: this._formData,
101
- PREVIOUS_FORM_DATA: this._previousFormData,
102
- ALL_FORMS_DATA: this._allFormsData
103
- }).mapping();
104
- for (let action of actions) {
105
- const conditionSuccess = new Condition(action.condition, rulesMapping).evaluate();
106
- if (conditionSuccess) {
107
- const actions = new Actions(action, rulesMapping, {
108
- FIELD_CONFIG: this._field,
109
- FORM_DATA: this._formData,
110
- PREVIOUS_FORM_DATA: this._previousFormData,
111
- ALL_FORMS_DATA: this._allFormsData
112
- }, this._takeAction);
113
- yield actions.execute();
114
- }
115
- }
116
- return this._field;
117
- });
118
- }
119
- getPropsValues() {
120
- return {
121
- field: this._field,
122
- formData: this._formData,
123
- previousFormData: this._previousFormData,
124
- allFormsData: this._allFormsData
125
- };
126
- }
127
- }
128
- __decorate([
129
- logMethod
130
- ], Apis.prototype, "setRequestBodyParams", null);
131
- __decorate([
132
- logMethod
133
- ], Apis.prototype, "validateRequestBody", null);
134
- __decorate([
135
- logMethod
136
- ], Apis.prototype, "validateApiCallResponse", null);
137
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12aWV3LmFwaXMuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva3dpa2lkLWZvcm1zL3NyYy9saWIvcmVuZGVyZXIvZm9ybS12aWV3L2hlbHBlcnMvZm9ybS12aWV3LmFwaXMuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsT0FBTyxFQUNQLFNBQVMsRUFDVCxTQUFTLEVBQ1QsS0FBSyxFQUNMLE9BQU8sRUFHUixNQUFNLGdCQUFnQixDQUFDO0FBYXhCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTdELE1BQU0sT0FBTyxJQUFJO0lBWWYsWUFDRSxLQUFvQixFQUNwQixRQUFhLEVBQ2IsZ0JBQXFCLEVBQ3JCLFlBQWlCLEVBQ2pCLFVBQW9CO1FBRXBCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO1FBQzFCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxnQkFBZ0IsQ0FBQztRQUMxQyxJQUFJLENBQUMsYUFBYSxHQUFHLFlBQVksQ0FBQztRQUNsQyxJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQztRQUU5QixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUM7UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQztRQUNsQyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUM7SUFDbEMsQ0FBQztJQUdZLG9CQUFvQjs7O1lBQy9CLElBQUksTUFBTSxHQUFnQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7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b25zLFxyXG4gIENvbmRpdGlvbixcclxuICBsb2dNZXRob2QsXHJcbiAgUnVsZXMsXHJcbiAgU291cmNlcyxcclxuICBUUnVsZSxcclxuICBUU291cmNlXHJcbn0gZnJvbSBcImt3aWtpZC10b29sa2l0XCI7XHJcbmltcG9ydCB7IFRBY3Rpb24gfSBmcm9tIFwiLi4vZGVmaW5pdGlvbnMvYWN0aW9ucy9mb3JtLXZpZXcuYWN0aW9ucy50eXBlLmRlZmluaXRpb25zXCI7XHJcbmltcG9ydCB7XHJcbiAgVEFwaSxcclxuICBUQXBpUmVxdWVzdCxcclxuICBUQXBpUmVxdWVzdEJvZHksXHJcbiAgVEFwaVJlcXVlc3RCb2R5UGFyYW0sXHJcbiAgVEFwaVJlc3BvbnNlLFxyXG4gIFRBcGlTdGF0dXNcclxufSBmcm9tIFwiLi4vZGVmaW5pdGlvbnMvYXBpcy9mb3JtLXZpZXcuYXBpcy50eXBlLmRlZmluaXRpb25zXCI7XHJcbmltcG9ydCB7IFRGaWVsZEFwaUNhbGwgfSBmcm9tIFwiLi4vZGVmaW5pdGlvbnMvZmllbGRzL2Zvcm0tdmlldy5maWVsZHMudHlwZS5kZWZpbml0aW9uc1wiO1xyXG5pbXBvcnQgeyBUVHJpZ2dlciB9IGZyb20gXCIuLi9kZWZpbml0aW9ucy90cmlnZ2Vycy9mb3JtLXZpZXcudHJpZ2dlcnMudHlwZS5kZWZpbml0aW9uc1wiO1xyXG5pbXBvcnQgeyBUVmFsaWRhdGlvbiB9IGZyb20gXCIuLi9kZWZpbml0aW9ucy92YWxpZGF0aW9ucy9mb3JtLXZpZXcudmFsaWRhdGlvbnMudHlwZS5kZWZpbml0aW9uc1wiO1xyXG5pbXBvcnQgeyBzZXRWYWx1ZVRvT2JqZWN0IH0gZnJvbSBcIi4vZm9ybS12aWV3LmNvbW1vbi5oZWxwZXJcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBBcGlzIHtcclxuICBwcml2YXRlIF9mb3JtRGF0YTogYW55O1xyXG4gIHByaXZhdGUgX3ByZXZpb3VzRm9ybURhdGE6IGFueTtcclxuICBwcml2YXRlIF9hbGxGb3Jtc0RhdGE6IGFueTtcclxuICBwcml2YXRlIF9maWVsZDogVEZpZWxkQXBpQ2FsbDtcclxuICBwcml2YXRlIF90YWtlQWN0aW9uOiBGdW5jdGlvbjtcclxuXHJcbiAgcHJpdmF0ZSBfYXBpOiBUQXBpO1xyXG4gIHByaXZhdGUgX3JlcXVlc3Q6IFRBcGlSZXF1ZXN0O1xyXG4gIHByaXZhdGUgX3Jlc3BvbnNlOiBUQXBpUmVzcG9uc2U7XHJcbiAgcHJpdmF0ZSBfc3RhdHVzOiBUQXBpU3RhdHVzO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIGZpZWxkOiBURmllbGRBcGlDYWxsLFxyXG4gICAgZm9ybURhdGE6IGFueSxcclxuICAgIHByZXZpb3VzRm9ybURhdGE6IGFueSxcclxuICAgIGFsbEZvcm1zRGF0YTogYW55LFxyXG4gICAgdGFrZUFjdGlvbjogRnVuY3Rpb25cclxuICApIHtcclxuICAgIHRoaXMuX2ZpZWxkID0gZmllbGQ7XHJcbiAgICB0aGlzLl9mb3JtRGF0YSA9IGZvcm1EYXRhO1xyXG4gICAgdGhpcy5fcHJldmlvdXNGb3JtRGF0YSA9IHByZXZpb3VzRm9ybURhdGE7XHJcbiAgICB0aGlzLl9hbGxGb3Jtc0RhdGEgPSBhbGxGb3Jtc0RhdGE7XHJcbiAgICB0aGlzLl90YWtlQWN0aW9uID0gdGFrZUFjdGlvbjtcclxuXHJcbiAgICB0aGlzLl9hcGkgPSBmaWVsZC5hcGk7XHJcbiAgICB0aGlzLl9yZXF1ZXN0ID0gZmllbGQuYXBpLnJlcXVlc3Q7XHJcbiAgICB0aGlzLl9yZXNwb25zZSA9IGZpZWxkLmFwaS5yZXNwb25zZTtcclxuICAgIHRoaXMuX3N0YXR1cyA9IGZpZWxkLmFwaS5zdGF0dXM7XHJcbiAgfVxyXG5cclxuICBAbG9nTWV0aG9kXHJcbiAgcHVibGljIGFzeW5jIHNldFJlcXVlc3RCb2R5UGFyYW1zKCk6IFByb21pc2U8VEZpZWxkQXBpQ2FsbD4ge1xyXG4gICAgbGV0IHBhcmFtczogQXJyYXk8VEFwaVJlcXVlc3RCb2R5UGFyYW0+ID0gdGhpcy5fcmVxdWVzdC5ib2R5LnBhcmFtcztcclxuXHJcbiAgICBsZXQgcGFyYW1JbmRleCA9IDA7XHJcbiAgICBmb3IgKGxldCBwYXJhbSBvZiBwYXJhbXMpIHtcclxuICAgICAgbGV0IHNvdXJjZXM6IEFycmF5PFRTb3VyY2U+ID0gcGFyYW0uc291cmNlcztcclxuXHJcbiAgICAgIGxldCBzb3VyY2VJbmRleCA9IDA7XHJcbiAgICAgIGZvciAobGV0IHNvdXJjZSBvZiBzb3VyY2VzKSB7XHJcbiAgICAgICAgY29uc3Qgc291cmNlcyA9IG5ldyBTb3VyY2VzKHtcclxuICAgICAgICAgIEZJRUxEX0NPTkZJRzogdGhpcy5fZmllbGQsXHJcbiAgICAgICAgICBGT1JNX0RBVEE6IHRoaXMuX2Zvcm1EYXRhLFxyXG4gICAgICAgICAgUFJFVklPVVNfRk9STV9EQVRBOiB0aGlzLl9wcmV2aW91c0Zvcm1EYXRhLFxyXG4gICAgICAgICAgQUxMX0ZPUk1TX0RBVEE6IHRoaXMuX2FsbEZvcm1zRGF0YVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBjb25zdCB2YWx1ZSA9IHNvdXJjZXMuZ2V0VmFsdWVGcm9tU291cmNlKHNvdXJjZSk7XHJcbiAgICAgICAgLy8gU2V0IHRoZSBWYWx1ZSBvZiBjdXJyZW50IHNvdXJjZS5cclxuICAgICAgICB0aGlzLl9maWVsZCA9IHNldFZhbHVlVG9PYmplY3QoXHJcbiAgICAgICAgICB0aGlzLl9maWVsZCxcclxuICAgICAgICAgIGBhcGkucmVxdWVzdC5ib2R5LnBhcmFtc1ske3BhcmFtSW5kZXh9XS5zb3VyY2VzWyR7c291cmNlSW5kZXh9XS52YWx1ZWAsXHJcbiAgICAgICAgICB2YWx1ZVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIGNvbnN0IHZhbGlkYXRpb246IFRWYWxpZGF0aW9uID0gKHNvdXJjZSBhcyBhbnkpLnZhbGlkYXRpb247XHJcblxyXG4gICAgICAgIGNvbnN0IHRyaWdnZXJzOiBBcnJheTxUVHJpZ2dlcj4gPSB2YWxpZGF0aW9uPy50cmlnZ2VycyA/PyBbXTtcclxuICAgICAgICBjb25zdCBydWxlczogQXJyYXk8VFJ1bGU+ID0gdmFsaWRhdGlvbj8ucnVsZXMgPz8gW107XHJcbiAgICAgICAgY29uc3QgYWN0aW9uczogQXJyYXk8VEFjdGlvbj4gPSAodmFsaWRhdGlvbiBhcyBhbnkpPy5hY3Rpb25zID8/IFtdO1xyXG5cclxuICAgICAgICBjb25zdCBydWxlc01hcHBpbmcgPSBuZXcgUnVsZXMocnVsZXMsIHtcclxuICAgICAgICAgIEZJRUxEX0NPTkZJRzogdGhpcy5fZmllbGQsXHJcbiAgICAgICAgICBGT1JNX0RBVEE6IHRoaXMuX2Zvcm1EYXRhLFxyXG4gICAgICAgICAgUFJFVklPVVNfRk9STV9EQVRBOiB0aGlzLl9wcmV2aW91c0Zvcm1EYXRhLFxyXG4gICAgICAgICAgQUxMX0ZPUk1TX0RBVEE6IHRoaXMuX2FsbEZvcm1zRGF0YVxyXG4gICAgICAgIH0pLm1hcHBpbmcoKTtcclxuXHJcbiAgICAgICAgZm9yIChsZXQgYWN0aW9uIG9mIGFjdGlvbnMpIHtcclxuICAgICAgICAgIGNvbnN0IGNvbmRpdGlvbkV2YWx1YXRpb24gPSBuZXcgQ29uZGl0aW9uKFxyXG4gICAgICAgICAgICBhY3Rpb24uY29uZGl0aW9uLFxyXG4gICAgICAgICAgICBydWxlc01hcHBpbmdcclxuICAgICAgICAgICkuZXZhbHVhdGUoKTtcclxuXHJcbiAgICAgICAgICBpZiAoY29uZGl0aW9uRXZhbHVhdGlvbikge1xyXG4gICAgICAgICAgICBjb25zdCBhY3Rpb25zID0gbmV3IEFjdGlvbnMoXHJcbiAgICAgICAgICAgICAgYWN0aW9uLFxyXG4gICAgICAgICAgICAgIHJ1bGVzTWFwcGluZyxcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBGSUVMRF9DT05GSUc6IHRoaXMuX2ZpZWxkLFxyXG4gICAgICAgICAgICAgICAgRk9STV9EQVRBOiB0aGlzLl9mb3JtRGF0YSxcclxuICAgICAgICAgICAgICAgIFBSRVZJT1VTX0ZPUk1fREFUQTogdGhpcy5fcHJldmlvdXNGb3JtRGF0YSxcclxuICAgICAgICAgICAgICAgIEFMTF9GT1JNU19EQVRBOiB0aGlzLl9hbGxGb3Jtc0RhdGFcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIHRoaXMuX3Rha2VBY3Rpb25cclxuICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgIGF3YWl0IGFjdGlvbnMuZXhlY3V0ZSgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc291cmNlSW5kZXgrKztcclxuICAgICAgfVxyXG5cclxuICAgICAgcGFyYW1JbmRleCsrO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLl9maWVsZDtcclxuICB9XHJcblxyXG4gIEBsb2dNZXRob2RcclxuICBwdWJsaWMgYXN5bmMgdmFsaWRhdGVSZXF1ZXN0Qm9keSgpOiBQcm9taXNlPFRGaWVsZEFwaUNhbGw+IHtcclxuICAgIGNvbnN0IGJvZHk6IFRBcGlSZXF1ZXN0Qm9keSA9IHRoaXMuX3JlcXVlc3QuYm9keTtcclxuXHJcbiAgICBjb25zdCB2YWxpZGF0aW9uOiBUVmFsaWRhdGlvbiA9IGJvZHkudmFsaWRhdGlvbjtcclxuXHJcbiAgICBjb25zdCB0cmlnZ2VyczogQXJyYXk8VFRyaWdnZXI+ID0gdmFsaWRhdGlvbi50cmlnZ2VycztcclxuICAgIGNvbnN0IHJ1bGVzOiBBcnJheTxUUnVsZT4gPSB2YWxpZGF0aW9uLnJ1bGVzO1xyXG4gICAgY29uc3QgYWN0aW9uczogQXJyYXk8VEFjdGlvbj4gPSAodmFsaWRhdGlvbiBhcyBhbnkpPy5hY3Rpb25zO1xyXG5cclxuICAgIGNvbnN0IHJ1bGVzTWFwcGluZyA9IG5ldyBSdWxlcyhydWxlcywge1xyXG4gICAgICBGSUVMRF9DT05GSUc6IHRoaXMuX2ZpZWxkLFxyXG4gICAgICBGT1JNX0RBVEE6IHRoaXMuX2Zvcm1EYXRhLFxyXG4gICAgICBQUkVWSU9VU19GT1JNX0RBVEE6IHRoaXMuX3ByZXZpb3VzRm9ybURhdGEsXHJcbiAgICAgIEFMTF9GT1JNU19EQVRBOiB0aGlzLl9hbGxGb3Jtc0RhdGFcclxuICAgIH0pLm1hcHBpbmcoKTtcclxuXHJcbiAgICBmb3IgKGxldCBhY3Rpb24gb2YgYWN0aW9ucykge1xyXG4gICAgICBjb25zdCBjb25kaXRpb25TdWNjZXNzID0gbmV3IENvbmRpdGlvbihcclxuICAgICAgICBhY3Rpb24uY29uZGl0aW9uLFxyXG4gICAgICAgIHJ1bGVzTWFwcGluZ1xyXG4gICAgICApLmV2YWx1YXRlKCk7XHJcblxyXG4gICAgICBpZiAoY29uZGl0aW9uU3VjY2Vzcykge1xyXG4gICAgICAgIGNvbnN0IGFjdGlvbnMgPSBuZXcgQWN0aW9ucyhcclxuICAgICAgICAgIGFjdGlvbixcclxuICAgICAgICAgIHJ1bGVzTWFwcGluZyxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgRklFTERfQ09ORklHOiB0aGlzLl9maWVsZCxcclxuICAgICAgICAgICAgRk9STV9EQVRBOiB0aGlzLl9mb3JtRGF0YSxcclxuICAgICAgICAgICAgUFJFVklPVVNfRk9STV9EQVRBOiB0aGlzLl9wcmV2aW91c0Zvcm1EYXRhLFxyXG4gICAgICAgICAgICBBTExfRk9STVNfREFUQTogdGhpcy5fYWxsRm9ybXNEYXRhXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgdGhpcy5fdGFrZUFjdGlvblxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIGF3YWl0IGFjdGlvbnMuZXhlY3V0ZSgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuX2ZpZWxkO1xyXG4gIH1cclxuXHJcbiAgQGxvZ01ldGhvZFxyXG4gIHB1YmxpYyBhc3luYyB2YWxpZGF0ZUFwaUNhbGxSZXNwb25zZSgpOiBQcm9taXNlPFRGaWVsZEFwaUNhbGw+IHtcclxuICAgIGNvbnN0IHZhbGlkYXRpb246IFRWYWxpZGF0aW9uID0gdGhpcy5fcmVzcG9uc2UudmFsaWRhdGlvbjtcclxuXHJcbiAgICBjb25zdCB0cmlnZ2VyczogQXJyYXk8VFRyaWdnZXI+ID0gdmFsaWRhdGlvbi50cmlnZ2VycztcclxuICAgIGNvbnN0IHJ1bGVzOiBBcnJheTxUUnVsZT4gPSB2YWxpZGF0aW9uLnJ1bGVzO1xyXG4gICAgY29uc3QgYWN0aW9uczogQXJyYXk8VEFjdGlvbj4gPSAodmFsaWRhdGlvbiBhcyBhbnkpLmFjdGlvbnM7XHJcblxyXG4gICAgY29uc3QgcnVsZXNNYXBwaW5nID0gbmV3IFJ1bGVzKHJ1bGVzLCB7XHJcbiAgICAgIEZJRUxEX0NPTkZJRzogdGhpcy5fZmllbGQsXHJcbiAgICAgIEZPUk1fREFUQTogdGhpcy5fZm9ybURhdGEsXHJcbiAgICAgIFBSRVZJT1VTX0ZPUk1fREFUQTogdGhpcy5fcHJldmlvdXNGb3JtRGF0YSxcclxuICAgICAgQUxMX0ZPUk1TX0RBVEE6IHRoaXMuX2FsbEZvcm1zRGF0YVxyXG4gICAgfSkubWFwcGluZygpO1xyXG5cclxuICAgIGZvciAobGV0IGFjdGlvbiBvZiBhY3Rpb25zKSB7XHJcbiAgICAgIGNvbnN0IGNvbmRpdGlvblN1Y2Nlc3MgPSBuZXcgQ29uZGl0aW9uKFxyXG4gICAgICAgIGFjdGlvbi5jb25kaXRpb24sXHJcbiAgICAgICAgcnVsZXNNYXBwaW5nXHJcbiAgICAgICkuZXZhbHVhdGUoKTtcclxuXHJcbiAgICAgIGlmIChjb25kaXRpb25TdWNjZXNzKSB7XHJcbiAgICAgICAgY29uc3QgYWN0aW9ucyA9IG5ldyBBY3Rpb25zKFxyXG4gICAgICAgICAgYWN0aW9uLFxyXG4gICAgICAgICAgcnVsZXNNYXBwaW5nLFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBGSUVMRF9DT05GSUc6IHRoaXMuX2ZpZWxkLFxyXG4gICAgICAgICAgICBGT1JNX0RBVEE6IHRoaXMuX2Zvcm1EYXRhLFxyXG4gICAgICAgICAgICBQUkVWSU9VU19GT1JNX0RBVEE6IHRoaXMuX3ByZXZpb3VzRm9ybURhdGEsXHJcbiAgICAgICAgICAgIEFMTF9GT1JNU19EQVRBOiB0aGlzLl9hbGxGb3Jtc0RhdGFcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB0aGlzLl90YWtlQWN0aW9uXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgYXdhaXQgYWN0aW9ucy5leGVjdXRlKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5fZmllbGQ7XHJcbiAgfVxyXG5cclxuICBnZXRQcm9wc1ZhbHVlcygpOiBhbnkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgZmllbGQ6IHRoaXMuX2ZpZWxkLFxyXG4gICAgICBmb3JtRGF0YTogdGhpcy5fZm9ybURhdGEsXHJcbiAgICAgIHByZXZpb3VzRm9ybURhdGE6IHRoaXMuX3ByZXZpb3VzRm9ybURhdGEsXHJcbiAgICAgIGFsbEZvcm1zRGF0YTogdGhpcy5fYWxsRm9ybXNEYXRhXHJcbiAgICB9O1xyXG4gIH1cclxufVxyXG4iXX0=
1
+ import { __awaiter, __decorate } from "tslib";
2
+ import { Actions, Condition, logMethod, Rules, Sources } from "kwikid-toolkit";
3
+ import { setValueToObject } from "./form-view.common.helper";
4
+ export class Apis {
5
+ constructor(field, formData, previousFormData, allFormsData, takeAction) {
6
+ this._field = field;
7
+ this._formData = formData;
8
+ this._previousFormData = previousFormData;
9
+ this._allFormsData = allFormsData;
10
+ this._takeAction = takeAction;
11
+ this._api = field.api;
12
+ this._request = field.api.request;
13
+ this._response = field.api.response;
14
+ this._status = field.api.status;
15
+ }
16
+ setRequestBodyParams() {
17
+ var _a, _b, _c, _d;
18
+ return __awaiter(this, void 0, void 0, function* () {
19
+ let params = this._request.body.params;
20
+ let paramIndex = 0;
21
+ for (let param of params) {
22
+ let sources = param.sources;
23
+ let sourceIndex = 0;
24
+ for (let source of sources) {
25
+ const sources = new Sources({
26
+ FIELD_CONFIG: this._field,
27
+ FORM_DATA: this._formData,
28
+ PREVIOUS_FORM_DATA: this._previousFormData,
29
+ ALL_FORMS_DATA: this._allFormsData
30
+ });
31
+ const value = sources.getValueFromSource(source);
32
+ // Set the Value of current source.
33
+ this._field = setValueToObject(this._field, `api.request.body.params[${paramIndex}].sources[${sourceIndex}].value`, value);
34
+ const validation = source.validation;
35
+ const triggers = (_a = validation === null || validation === void 0 ? void 0 : validation.triggers) !== null && _a !== void 0 ? _a : [];
36
+ const rules = (_b = validation === null || validation === void 0 ? void 0 : validation.rules) !== null && _b !== void 0 ? _b : [];
37
+ const actions = (_d = (_c = validation) === null || _c === void 0 ? void 0 : _c.actions) !== null && _d !== void 0 ? _d : [];
38
+ const rulesMapping = new Rules(rules, {
39
+ FIELD_CONFIG: this._field,
40
+ FORM_DATA: this._formData,
41
+ PREVIOUS_FORM_DATA: this._previousFormData,
42
+ ALL_FORMS_DATA: this._allFormsData
43
+ }).mapping();
44
+ for (let action of actions) {
45
+ const conditionEvaluation = new Condition(action.condition, rulesMapping).evaluate();
46
+ if (conditionEvaluation) {
47
+ const actions = new Actions(action, rulesMapping, {
48
+ FIELD_CONFIG: this._field,
49
+ FORM_DATA: this._formData,
50
+ PREVIOUS_FORM_DATA: this._previousFormData,
51
+ ALL_FORMS_DATA: this._allFormsData
52
+ }, this._takeAction);
53
+ yield actions.execute();
54
+ }
55
+ }
56
+ sourceIndex++;
57
+ }
58
+ paramIndex++;
59
+ }
60
+ return this._field;
61
+ });
62
+ }
63
+ validateRequestBody() {
64
+ var _a;
65
+ return __awaiter(this, void 0, void 0, function* () {
66
+ const body = this._request.body;
67
+ const validation = body.validation;
68
+ const triggers = validation.triggers;
69
+ const rules = validation.rules;
70
+ const actions = (_a = validation) === null || _a === void 0 ? void 0 : _a.actions;
71
+ const rulesMapping = new Rules(rules, {
72
+ FIELD_CONFIG: this._field,
73
+ FORM_DATA: this._formData,
74
+ PREVIOUS_FORM_DATA: this._previousFormData,
75
+ ALL_FORMS_DATA: this._allFormsData
76
+ }).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, rulesMapping, {
81
+ FIELD_CONFIG: this._field,
82
+ FORM_DATA: this._formData,
83
+ PREVIOUS_FORM_DATA: this._previousFormData,
84
+ ALL_FORMS_DATA: this._allFormsData
85
+ }, this._takeAction);
86
+ yield actions.execute();
87
+ }
88
+ }
89
+ return this._field;
90
+ });
91
+ }
92
+ validateApiCallResponse() {
93
+ return __awaiter(this, void 0, void 0, function* () {
94
+ const validation = this._response.validation;
95
+ const triggers = validation.triggers;
96
+ const rules = validation.rules;
97
+ const actions = validation.actions;
98
+ const rulesMapping = new Rules(rules, {
99
+ FIELD_CONFIG: this._field,
100
+ FORM_DATA: this._formData,
101
+ PREVIOUS_FORM_DATA: this._previousFormData,
102
+ ALL_FORMS_DATA: this._allFormsData
103
+ }).mapping();
104
+ for (let action of actions) {
105
+ const conditionSuccess = new Condition(action.condition, rulesMapping).evaluate();
106
+ if (conditionSuccess) {
107
+ const actions = new Actions(action, rulesMapping, {
108
+ FIELD_CONFIG: this._field,
109
+ FORM_DATA: this._formData,
110
+ PREVIOUS_FORM_DATA: this._previousFormData,
111
+ ALL_FORMS_DATA: this._allFormsData
112
+ }, this._takeAction);
113
+ yield actions.execute();
114
+ }
115
+ }
116
+ return this._field;
117
+ });
118
+ }
119
+ getPropsValues() {
120
+ return {
121
+ field: this._field,
122
+ formData: this._formData,
123
+ previousFormData: this._previousFormData,
124
+ allFormsData: this._allFormsData
125
+ };
126
+ }
127
+ }
128
+ __decorate([
129
+ logMethod
130
+ ], Apis.prototype, "setRequestBodyParams", null);
131
+ __decorate([
132
+ logMethod
133
+ ], Apis.prototype, "validateRequestBody", null);
134
+ __decorate([
135
+ logMethod
136
+ ], Apis.prototype, "validateApiCallResponse", null);
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12aWV3LmFwaXMuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva3dpa2lkLWZvcm1zL3NyYy9saWIvcmVuZGVyZXIvZm9ybS12aWV3L2hlbHBlcnMvZm9ybS12aWV3LmFwaXMuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsT0FBTyxFQUNQLFNBQVMsRUFDVCxTQUFTLEVBQ1QsS0FBSyxFQUNMLE9BQU8sRUFHUixNQUFNLGdCQUFnQixDQUFDO0FBYXhCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTdELE1BQU0sT0FBTyxJQUFJO0lBWWYsWUFDRSxLQUFvQixFQUNwQixRQUFhLEVBQ2IsZ0JBQXFCLEVBQ3JCLFlBQWlCLEVBQ2pCLFVBQW9CO1FBRXBCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO1FBQzFCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxnQkFBZ0IsQ0FBQztRQUMxQyxJQUFJLENBQUMsYUFBYSxHQUFHLFlBQVksQ0FBQztRQUNsQyxJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQztRQUU5QixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUM7UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQztRQUNsQyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUM7SUFDbEMsQ0FBQztJQUdZLG9CQUFvQjs7O1lBQy9CLElBQUksTUFBTSxHQUFnQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7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cyxcbiAgQ29uZGl0aW9uLFxuICBsb2dNZXRob2QsXG4gIFJ1bGVzLFxuICBTb3VyY2VzLFxuICBUUnVsZSxcbiAgVFNvdXJjZVxufSBmcm9tIFwia3dpa2lkLXRvb2xraXRcIjtcbmltcG9ydCB7IFRBY3Rpb24gfSBmcm9tIFwiLi4vZGVmaW5pdGlvbnMvYWN0aW9ucy9mb3JtLXZpZXcuYWN0aW9ucy50eXBlLmRlZmluaXRpb25zXCI7XG5pbXBvcnQge1xuICBUQXBpLFxuICBUQXBpUmVxdWVzdCxcbiAgVEFwaVJlcXVlc3RCb2R5LFxuICBUQXBpUmVxdWVzdEJvZHlQYXJhbSxcbiAgVEFwaVJlc3BvbnNlLFxuICBUQXBpU3RhdHVzXG59IGZyb20gXCIuLi9kZWZpbml0aW9ucy9hcGlzL2Zvcm0tdmlldy5hcGlzLnR5cGUuZGVmaW5pdGlvbnNcIjtcbmltcG9ydCB7IFRGaWVsZEFwaUNhbGwgfSBmcm9tIFwiLi4vZGVmaW5pdGlvbnMvZmllbGRzL2Zvcm0tdmlldy5maWVsZHMudHlwZS5kZWZpbml0aW9uc1wiO1xuaW1wb3J0IHsgVFRyaWdnZXIgfSBmcm9tIFwiLi4vZGVmaW5pdGlvbnMvdHJpZ2dlcnMvZm9ybS12aWV3LnRyaWdnZXJzLnR5cGUuZGVmaW5pdGlvbnNcIjtcbmltcG9ydCB7IFRWYWxpZGF0aW9uIH0gZnJvbSBcIi4uL2RlZmluaXRpb25zL3ZhbGlkYXRpb25zL2Zvcm0tdmlldy52YWxpZGF0aW9ucy50eXBlLmRlZmluaXRpb25zXCI7XG5pbXBvcnQgeyBzZXRWYWx1ZVRvT2JqZWN0IH0gZnJvbSBcIi4vZm9ybS12aWV3LmNvbW1vbi5oZWxwZXJcIjtcblxuZXhwb3J0IGNsYXNzIEFwaXMge1xuICBwcml2YXRlIF9mb3JtRGF0YTogYW55O1xuICBwcml2YXRlIF9wcmV2aW91c0Zvcm1EYXRhOiBhbnk7XG4gIHByaXZhdGUgX2FsbEZvcm1zRGF0YTogYW55O1xuICBwcml2YXRlIF9maWVsZDogVEZpZWxkQXBpQ2FsbDtcbiAgcHJpdmF0ZSBfdGFrZUFjdGlvbjogRnVuY3Rpb247XG5cbiAgcHJpdmF0ZSBfYXBpOiBUQXBpO1xuICBwcml2YXRlIF9yZXF1ZXN0OiBUQXBpUmVxdWVzdDtcbiAgcHJpdmF0ZSBfcmVzcG9uc2U6IFRBcGlSZXNwb25zZTtcbiAgcHJpdmF0ZSBfc3RhdHVzOiBUQXBpU3RhdHVzO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGZpZWxkOiBURmllbGRBcGlDYWxsLFxuICAgIGZvcm1EYXRhOiBhbnksXG4gICAgcHJldmlvdXNGb3JtRGF0YTogYW55LFxuICAgIGFsbEZvcm1zRGF0YTogYW55LFxuICAgIHRha2VBY3Rpb246IEZ1bmN0aW9uXG4gICkge1xuICAgIHRoaXMuX2ZpZWxkID0gZmllbGQ7XG4gICAgdGhpcy5fZm9ybURhdGEgPSBmb3JtRGF0YTtcbiAgICB0aGlzLl9wcmV2aW91c0Zvcm1EYXRhID0gcHJldmlvdXNGb3JtRGF0YTtcbiAgICB0aGlzLl9hbGxGb3Jtc0RhdGEgPSBhbGxGb3Jtc0RhdGE7XG4gICAgdGhpcy5fdGFrZUFjdGlvbiA9IHRha2VBY3Rpb247XG5cbiAgICB0aGlzLl9hcGkgPSBmaWVsZC5hcGk7XG4gICAgdGhpcy5fcmVxdWVzdCA9IGZpZWxkLmFwaS5yZXF1ZXN0O1xuICAgIHRoaXMuX3Jlc3BvbnNlID0gZmllbGQuYXBpLnJlc3BvbnNlO1xuICAgIHRoaXMuX3N0YXR1cyA9IGZpZWxkLmFwaS5zdGF0dXM7XG4gIH1cblxuICBAbG9nTWV0aG9kXG4gIHB1YmxpYyBhc3luYyBzZXRSZXF1ZXN0Qm9keVBhcmFtcygpOiBQcm9taXNlPFRGaWVsZEFwaUNhbGw+IHtcbiAgICBsZXQgcGFyYW1zOiBBcnJheTxUQXBpUmVxdWVzdEJvZHlQYXJhbT4gPSB0aGlzLl9yZXF1ZXN0LmJvZHkucGFyYW1zO1xuXG4gICAgbGV0IHBhcmFtSW5kZXggPSAwO1xuICAgIGZvciAobGV0IHBhcmFtIG9mIHBhcmFtcykge1xuICAgICAgbGV0IHNvdXJjZXM6IEFycmF5PFRTb3VyY2U+ID0gcGFyYW0uc291cmNlcztcblxuICAgICAgbGV0IHNvdXJjZUluZGV4ID0gMDtcbiAgICAgIGZvciAobGV0IHNvdXJjZSBvZiBzb3VyY2VzKSB7XG4gICAgICAgIGNvbnN0IHNvdXJjZXMgPSBuZXcgU291cmNlcyh7XG4gICAgICAgICAgRklFTERfQ09ORklHOiB0aGlzLl9maWVsZCxcbiAgICAgICAgICBGT1JNX0RBVEE6IHRoaXMuX2Zvcm1EYXRhLFxuICAgICAgICAgIFBSRVZJT1VTX0ZPUk1fREFUQTogdGhpcy5fcHJldmlvdXNGb3JtRGF0YSxcbiAgICAgICAgICBBTExfRk9STVNfREFUQTogdGhpcy5fYWxsRm9ybXNEYXRhXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IHZhbHVlID0gc291cmNlcy5nZXRWYWx1ZUZyb21Tb3VyY2Uoc291cmNlKTtcbiAgICAgICAgLy8gU2V0IHRoZSBWYWx1ZSBvZiBjdXJyZW50IHNvdXJjZS5cbiAgICAgICAgdGhpcy5fZmllbGQgPSBzZXRWYWx1ZVRvT2JqZWN0KFxuICAgICAgICAgIHRoaXMuX2ZpZWxkLFxuICAgICAgICAgIGBhcGkucmVxdWVzdC5ib2R5LnBhcmFtc1ske3BhcmFtSW5kZXh9XS5zb3VyY2VzWyR7c291cmNlSW5kZXh9XS52YWx1ZWAsXG4gICAgICAgICAgdmFsdWVcbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCB2YWxpZGF0aW9uOiBUVmFsaWRhdGlvbiA9IChzb3VyY2UgYXMgYW55KS52YWxpZGF0aW9uO1xuXG4gICAgICAgIGNvbnN0IHRyaWdnZXJzOiBBcnJheTxUVHJpZ2dlcj4gPSB2YWxpZGF0aW9uPy50cmlnZ2VycyA/PyBbXTtcbiAgICAgICAgY29uc3QgcnVsZXM6IEFycmF5PFRSdWxlPiA9IHZhbGlkYXRpb24/LnJ1bGVzID8/IFtdO1xuICAgICAgICBjb25zdCBhY3Rpb25zOiBBcnJheTxUQWN0aW9uPiA9ICh2YWxpZGF0aW9uIGFzIGFueSk/LmFjdGlvbnMgPz8gW107XG5cbiAgICAgICAgY29uc3QgcnVsZXNNYXBwaW5nID0gbmV3IFJ1bGVzKHJ1bGVzLCB7XG4gICAgICAgICAgRklFTERfQ09ORklHOiB0aGlzLl9maWVsZCxcbiAgICAgICAgICBGT1JNX0RBVEE6IHRoaXMuX2Zvcm1EYXRhLFxuICAgICAgICAgIFBSRVZJT1VTX0ZPUk1fREFUQTogdGhpcy5fcHJldmlvdXNGb3JtRGF0YSxcbiAgICAgICAgICBBTExfRk9STVNfREFUQTogdGhpcy5fYWxsRm9ybXNEYXRhXG4gICAgICAgIH0pLm1hcHBpbmcoKTtcblxuICAgICAgICBmb3IgKGxldCBhY3Rpb24gb2YgYWN0aW9ucykge1xuICAgICAgICAgIGNvbnN0IGNvbmRpdGlvbkV2YWx1YXRpb24gPSBuZXcgQ29uZGl0aW9uKFxuICAgICAgICAgICAgYWN0aW9uLmNvbmRpdGlvbixcbiAgICAgICAgICAgIHJ1bGVzTWFwcGluZ1xuICAgICAgICAgICkuZXZhbHVhdGUoKTtcblxuICAgICAgICAgIGlmIChjb25kaXRpb25FdmFsdWF0aW9uKSB7XG4gICAgICAgICAgICBjb25zdCBhY3Rpb25zID0gbmV3IEFjdGlvbnMoXG4gICAgICAgICAgICAgIGFjdGlvbixcbiAgICAgICAgICAgICAgcnVsZXNNYXBwaW5nLFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgRklFTERfQ09ORklHOiB0aGlzLl9maWVsZCxcbiAgICAgICAgICAgICAgICBGT1JNX0RBVEE6IHRoaXMuX2Zvcm1EYXRhLFxuICAgICAgICAgICAgICAgIFBSRVZJT1VTX0ZPUk1fREFUQTogdGhpcy5fcHJldmlvdXNGb3JtRGF0YSxcbiAgICAgICAgICAgICAgICBBTExfRk9STVNfREFUQTogdGhpcy5fYWxsRm9ybXNEYXRhXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHRoaXMuX3Rha2VBY3Rpb25cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGF3YWl0IGFjdGlvbnMuZXhlY3V0ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHNvdXJjZUluZGV4Kys7XG4gICAgICB9XG5cbiAgICAgIHBhcmFtSW5kZXgrKztcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fZmllbGQ7XG4gIH1cblxuICBAbG9nTWV0aG9kXG4gIHB1YmxpYyBhc3luYyB2YWxpZGF0ZVJlcXVlc3RCb2R5KCk6IFByb21pc2U8VEZpZWxkQXBpQ2FsbD4ge1xuICAgIGNvbnN0IGJvZHk6IFRBcGlSZXF1ZXN0Qm9keSA9IHRoaXMuX3JlcXVlc3QuYm9keTtcblxuICAgIGNvbnN0IHZhbGlkYXRpb246IFRWYWxpZGF0aW9uID0gYm9keS52YWxpZGF0aW9uO1xuXG4gICAgY29uc3QgdHJpZ2dlcnM6IEFycmF5PFRUcmlnZ2VyPiA9IHZhbGlkYXRpb24udHJpZ2dlcnM7XG4gICAgY29uc3QgcnVsZXM6IEFycmF5PFRSdWxlPiA9IHZhbGlkYXRpb24ucnVsZXM7XG4gICAgY29uc3QgYWN0aW9uczogQXJyYXk8VEFjdGlvbj4gPSAodmFsaWRhdGlvbiBhcyBhbnkpPy5hY3Rpb25zO1xuXG4gICAgY29uc3QgcnVsZXNNYXBwaW5nID0gbmV3IFJ1bGVzKHJ1bGVzLCB7XG4gICAgICBGSUVMRF9DT05GSUc6IHRoaXMuX2ZpZWxkLFxuICAgICAgRk9STV9EQVRBOiB0aGlzLl9mb3JtRGF0YSxcbiAgICAgIFBSRVZJT1VTX0ZPUk1fREFUQTogdGhpcy5fcHJldmlvdXNGb3JtRGF0YSxcbiAgICAgIEFMTF9GT1JNU19EQVRBOiB0aGlzLl9hbGxGb3Jtc0RhdGFcbiAgICB9KS5tYXBwaW5nKCk7XG5cbiAgICBmb3IgKGxldCBhY3Rpb24gb2YgYWN0aW9ucykge1xuICAgICAgY29uc3QgY29uZGl0aW9uU3VjY2VzcyA9IG5ldyBDb25kaXRpb24oXG4gICAgICAgIGFjdGlvbi5jb25kaXRpb24sXG4gICAgICAgIHJ1bGVzTWFwcGluZ1xuICAgICAgKS5ldmFsdWF0ZSgpO1xuXG4gICAgICBpZiAoY29uZGl0aW9uU3VjY2Vzcykge1xuICAgICAgICBjb25zdCBhY3Rpb25zID0gbmV3IEFjdGlvbnMoXG4gICAgICAgICAgYWN0aW9uLFxuICAgICAgICAgIHJ1bGVzTWFwcGluZyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBGSUVMRF9DT05GSUc6IHRoaXMuX2ZpZWxkLFxuICAgICAgICAgICAgRk9STV9EQVRBOiB0aGlzLl9mb3JtRGF0YSxcbiAgICAgICAgICAgIFBSRVZJT1VTX0ZPUk1fREFUQTogdGhpcy5fcHJldmlvdXNGb3JtRGF0YSxcbiAgICAgICAgICAgIEFMTF9GT1JNU19EQVRBOiB0aGlzLl9hbGxGb3Jtc0RhdGFcbiAgICAgICAgICB9LFxuICAgICAgICAgIHRoaXMuX3Rha2VBY3Rpb25cbiAgICAgICAgKTtcblxuICAgICAgICBhd2FpdCBhY3Rpb25zLmV4ZWN1dGUoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fZmllbGQ7XG4gIH1cblxuICBAbG9nTWV0aG9kXG4gIHB1YmxpYyBhc3luYyB2YWxpZGF0ZUFwaUNhbGxSZXNwb25zZSgpOiBQcm9taXNlPFRGaWVsZEFwaUNhbGw+IHtcbiAgICBjb25zdCB2YWxpZGF0aW9uOiBUVmFsaWRhdGlvbiA9IHRoaXMuX3Jlc3BvbnNlLnZhbGlkYXRpb247XG5cbiAgICBjb25zdCB0cmlnZ2VyczogQXJyYXk8VFRyaWdnZXI+ID0gdmFsaWRhdGlvbi50cmlnZ2VycztcbiAgICBjb25zdCBydWxlczogQXJyYXk8VFJ1bGU+ID0gdmFsaWRhdGlvbi5ydWxlcztcbiAgICBjb25zdCBhY3Rpb25zOiBBcnJheTxUQWN0aW9uPiA9ICh2YWxpZGF0aW9uIGFzIGFueSkuYWN0aW9ucztcblxuICAgIGNvbnN0IHJ1bGVzTWFwcGluZyA9IG5ldyBSdWxlcyhydWxlcywge1xuICAgICAgRklFTERfQ09ORklHOiB0aGlzLl9maWVsZCxcbiAgICAgIEZPUk1fREFUQTogdGhpcy5fZm9ybURhdGEsXG4gICAgICBQUkVWSU9VU19GT1JNX0RBVEE6IHRoaXMuX3ByZXZpb3VzRm9ybURhdGEsXG4gICAgICBBTExfRk9STVNfREFUQTogdGhpcy5fYWxsRm9ybXNEYXRhXG4gICAgfSkubWFwcGluZygpO1xuXG4gICAgZm9yIChsZXQgYWN0aW9uIG9mIGFjdGlvbnMpIHtcbiAgICAgIGNvbnN0IGNvbmRpdGlvblN1Y2Nlc3MgPSBuZXcgQ29uZGl0aW9uKFxuICAgICAgICBhY3Rpb24uY29uZGl0aW9uLFxuICAgICAgICBydWxlc01hcHBpbmdcbiAgICAgICkuZXZhbHVhdGUoKTtcblxuICAgICAgaWYgKGNvbmRpdGlvblN1Y2Nlc3MpIHtcbiAgICAgICAgY29uc3QgYWN0aW9ucyA9IG5ldyBBY3Rpb25zKFxuICAgICAgICAgIGFjdGlvbixcbiAgICAgICAgICBydWxlc01hcHBpbmcsXG4gICAgICAgICAge1xuICAgICAgICAgICAgRklFTERfQ09ORklHOiB0aGlzLl9maWVsZCxcbiAgICAgICAgICAgIEZPUk1fREFUQTogdGhpcy5fZm9ybURhdGEsXG4gICAgICAgICAgICBQUkVWSU9VU19GT1JNX0RBVEE6IHRoaXMuX3ByZXZpb3VzRm9ybURhdGEsXG4gICAgICAgICAgICBBTExfRk9STVNfREFUQTogdGhpcy5fYWxsRm9ybXNEYXRhXG4gICAgICAgICAgfSxcbiAgICAgICAgICB0aGlzLl90YWtlQWN0aW9uXG4gICAgICAgICk7XG5cbiAgICAgICAgYXdhaXQgYWN0aW9ucy5leGVjdXRlKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX2ZpZWxkO1xuICB9XG5cbiAgZ2V0UHJvcHNWYWx1ZXMoKTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgZmllbGQ6IHRoaXMuX2ZpZWxkLFxuICAgICAgZm9ybURhdGE6IHRoaXMuX2Zvcm1EYXRhLFxuICAgICAgcHJldmlvdXNGb3JtRGF0YTogdGhpcy5fcHJldmlvdXNGb3JtRGF0YSxcbiAgICAgIGFsbEZvcm1zRGF0YTogdGhpcy5fYWxsRm9ybXNEYXRhXG4gICAgfTtcbiAgfVxufVxuIl19