kwikid-forms 0.2.10 → 0.2.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/kwikid-forms.umd.js +269 -93
- package/bundles/kwikid-forms.umd.js.map +1 -1
- package/esm2015/lib/renderer/config-converter.helper.js +22 -2
- package/esm2015/lib/renderer/form-view/definitions/form-view.actions.definition.js +3 -1
- package/esm2015/lib/renderer/form-view/definitions/form-view.apis.definition.js +6 -1
- package/esm2015/lib/renderer/form-view/form-view.component.js +104 -57
- package/esm2015/lib/renderer/form-view/helpers/form-view.apis.helper.js +107 -51
- package/fesm2015/kwikid-forms.js +232 -103
- package/fesm2015/kwikid-forms.js.map +1 -1
- package/lib/renderer/form-view/definitions/form-view.actions.definition.d.ts +17 -2
- package/lib/renderer/form-view/definitions/form-view.apis.definition.d.ts +20 -2
- package/lib/renderer/form-view/form-view.component.d.ts +5 -2
- package/lib/renderer/form-view/helpers/form-view.apis.helper.d.ts +3 -2
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kwikid-forms.js","sources":["../../../projects/kwikid-forms/src/lib/builder/shared/elements.ts","../../../projects/kwikid-forms/src/lib/builder/shared/helpers.ts","../../../projects/kwikid-forms/src/lib/builder/element-config-editor/editors/basic/text-config.editor.component.ts","../../../projects/kwikid-forms/src/lib/builder/element-config-editor/editors/basic/radio-config.editor.component.ts","../../../projects/kwikid-forms/src/lib/builder/element-config-editor/editors/basic-element-config.editor.component.ts","../../../projects/kwikid-forms/src/lib/builder/element-config-editor/element-config-editor.component.ts","../../../projects/kwikid-forms/src/lib/builder/element-config-editor/element-config-editor.component.html","../../../projects/kwikid-forms/src/lib/builder/builder.component.ts","../../../projects/kwikid-forms/src/lib/builder/builder.component.html","../../../projects/kwikid-forms/src/lib/renderer/form-view/definitions/form-view.fields.definition.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/helpers/form-view.fields.helper.ts","../../../projects/kwikid-forms/src/lib/renderer/config-converter.helper.ts","../../../projects/kwikid-forms/src/lib/renderer/forms-list/forms-list.definitions.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/definitions/form-view.actions.definition.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/definitions/form-view.apis.definition.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/definitions/form-view.commons.definition.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/helpers/form-view.defaults.helper.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/helpers/form-view.form-validations.helper.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/form-view.service.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/helpers/form-view.apis.helper.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/pipes/safe-html.pipe.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/form-view.component.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/form-view.component.html","../../../projects/kwikid-forms/src/lib/renderer/forms-list/pipes/safe-html.pipe.ts","../../../projects/kwikid-forms/src/lib/renderer/forms-list/forms-list.component.ts","../../../projects/kwikid-forms/src/lib/renderer/forms-list/forms-list.component.html","../../../projects/kwikid-forms/src/lib/renderer/renderer.actions.definitions.ts","../../../projects/kwikid-forms/src/lib/renderer/renderer.helper.ts","../../../projects/kwikid-forms/src/lib/renderer/renderer.component.ts","../../../projects/kwikid-forms/src/lib/renderer/renderer.component.html","../../../projects/kwikid-forms/src/lib/builder/builder.module.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/form-view.module.ts","../../../projects/kwikid-forms/src/lib/renderer/forms-list/forms-list.module.ts","../../../projects/kwikid-forms/src/lib/renderer/renderer.module.ts","../../../projects/kwikid-forms/src/lib/kwikid-forms.module.ts","../../../projects/kwikid-forms/src/public_api.ts","../../../projects/kwikid-forms/src/kwikid-forms.ts"],"sourcesContent":["export class Elements {\n commonValidators = {\n max: null,\n maxLength: null,\n min: null,\n minLength: null,\n required: true\n };\n commonProperties = {\n placeholder: \"\",\n readOnly: false\n };\n commonCore = {\n key: \"\",\n label: \"\",\n disabled: false,\n messages: [],\n default: {\n value: true\n }\n };\n basic: Array<any> = [\n {\n elementTitle: \"Text\",\n elementType: \"text\",\n isElement: true,\n elementCategory: \"basic\",\n ...this.commonCore,\n validators: {\n ...this.commonValidators\n },\n properties: {\n ...this.commonProperties,\n case: \"default\"\n }\n },\n {\n elementTitle: \"Radio\",\n elementType: \"radio\",\n isElement: true,\n elementCategory: \"basic\",\n ...this.commonCore,\n validators: {\n ...this.commonValidators\n },\n properties: {\n ...this.commonProperties,\n orientation: \"vertical\"\n }\n }\n ];\n documents: Array<any> = [\n {\n elementTitle: \"Aadhaar Number\",\n elementType: \"aadhaar-number\",\n isElement: true,\n elementCategory: \"document\",\n ...this.commonCore,\n validators: {\n ...this.commonValidators\n },\n properties: {\n ...this.commonProperties,\n mask: \"####-####-####\"\n }\n }\n ];\n others: Array<any> = [\n {\n elementTitle: \"Gender\",\n elementType: \"gender\",\n isElement: true,\n elementCategory: \"others\",\n ...this.commonCore,\n validators: {\n ...this.commonValidators\n },\n properties: {\n ...this.commonProperties\n }\n }\n ];\n templates: Array<any> = [\n {\n elementTitle: \"PAN with NSDL\",\n elementType: \"pan_with_nsdl\",\n isElement: true,\n elementCategory: \"template\",\n ...this.commonCore,\n validators: {\n ...this.commonValidators\n },\n properties: {\n ...this.commonProperties\n }\n }\n ];\n elementMapping = {\n basic: [\"text\", \"radio\"],\n documents: [\"aadhaar-number\"],\n others: [],\n templates: []\n };\n}\n","export function revisedRandId() {\n return Math.random()\n .toString(36)\n .replace(/[^a-z]+/g, \"\");\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n SimpleChanges\n} from \"@angular/core\";\nimport { FormControl, FormGroup } from \"@angular/forms\";\nimport { logMethod } from \"kwikid-toolkit\";\n\n@Component({\n selector: \"basic-text-config-editor\",\n template: `\n <form [formGroup]=\"basicTextFormGroup\">\n <fieldset formGroupName=\"properties\">\n <legend>Miscellaneous</legend>\n <div class=\"form-group\">\n <label for=\"basic-text-config-case\">Case</label>\n <select\n class=\"form-control\"\n formControlName=\"case\"\n id=\"basic-text-config-case\"\n >\n <option\n [ngValue]=\"null\"\n disabled\n >Select Case</option\n >\n <option\n *ngFor=\"let case of ['default', 'upper', 'lower']\"\n [ngValue]=\"case\"\n >\n {{ case }}\n </option>\n </select>\n </div>\n </fieldset>\n </form>\n `,\n styles: [``]\n})\nexport class BasicTextConfigEditor implements OnInit {\n @Input()\n saveBasicClickCounter: number = 0;\n\n @Input()\n elementConfig: any = {\n properties: {\n case: \"default\"\n }\n };\n\n @Output()\n updateElement = new EventEmitter<any>();\n\n basicTextFormGroup: FormGroup = undefined;\n\n constructor() {}\n\n @logMethod\n ngOnInit() {\n this.createBasicTextFormGroup();\n }\n\n @logMethod\n ngOnChanges(changes: SimpleChanges) {\n const verifyChange = (key: string) => {\n return changes.hasOwnProperty(key) && !changes[key].firstChange;\n };\n\n if (verifyChange(\"elementConfig\")) {\n this.elementConfig = changes.elementConfig.currentValue;\n\n this.createBasicTextFormGroup();\n }\n if (verifyChange(\"saveBasicClickCounter\")) {\n if (\n changes.saveBasicClickCounter.previousValue !==\n changes.saveBasicClickCounter.currentValue\n ) {\n this.saveBasicClickCounter = changes.saveBasicClickCounter.currentValue;\n\n this.handleOnSave();\n }\n }\n }\n\n @logMethod\n createBasicTextFormGroup(): void {\n this.basicTextFormGroup = new FormGroup({\n properties: new FormGroup({\n case: new FormControl(this.elementConfig.properties.case, {\n updateOn: \"change\"\n })\n })\n });\n this.basicTextFormGroup.updateValueAndValidity();\n }\n\n @logMethod\n handleOnSave() {\n let basicElementConfig = this.basicTextFormGroup.getRawValue();\n\n this.updateElement.emit({\n basicElementConfig: basicElementConfig\n });\n }\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n SimpleChanges\n} from \"@angular/core\";\nimport { FormArray, FormControl, FormGroup } from \"@angular/forms\";\nimport { logMethod, setMissingKeyValue } from \"kwikid-toolkit\";\n\n@Component({\n selector: \"basic-radio-config-editor\",\n template: `\n <form [formGroup]=\"basicRadioFormGroup\">\n <fieldset formArrayName=\"options\">\n <legend>Options</legend>\n <ng-container\n *ngFor=\"let option of optionsArray.controls; let i = index\"\n >\n <div [formGroupName]=\"i\">\n <div class=\"form-group\">\n <label for=\"basic-radio-config-placeholder\">label</label>\n <input\n class=\"form-control\"\n formControlName=\"label\"\n id=\"basic-radio-config-placeholder\"\n type=\"text\"\n />\n </div>\n <div class=\"form-group\">\n <label for=\"basic-radio-config-disabled\">disabled</label>\n <select\n class=\"form-control\"\n formControlName=\"disabled\"\n id=\"basic-radio-config-disabled\"\n >\n <option\n [ngValue]=\"null\"\n disabled\n >Select Disability</option\n >\n <option\n *ngFor=\"let disabled of [true, false]\"\n [ngValue]=\"disabled\"\n >\n {{ disabled }}\n </option>\n </select>\n </div>\n <div class=\"form-group\">\n <label for=\"basic-radio-config-description\">description</label>\n <input\n class=\"form-control\"\n formControlName=\"description\"\n id=\"basic-radio-config-description\"\n type=\"text\"\n />\n </div>\n </div>\n <div class=\"form-array-actions\">\n <button (click)=\"removeOption(i)\">Remove</button>\n <button (click)=\"addOption()\">Add</button>\n </div>\n </ng-container>\n </fieldset>\n <fieldset formGroupName=\"properties\">\n <legend>Miscellaneous</legend>\n <div class=\"form-group\">\n <label for=\"basic-radio-config-orientation\">Orientation</label>\n <select\n class=\"form-control\"\n formControlName=\"orientation\"\n id=\"basic-radio-config-orientation\"\n >\n <option\n [ngValue]=\"null\"\n disabled\n >Select Orientation</option\n >\n <option\n *ngFor=\"let orientation of ['horizontal', 'vertical']\"\n [ngValue]=\"orientation\"\n >\n {{ orientation }}\n </option>\n </select>\n </div>\n </fieldset>\n </form>\n `,\n styles: [\n `\n .form-array-actions {\n display: flex;\n flex-direction: row;\n align-content: center;\n justify-content: center;\n align-items: center;\n gap: 1rem;\n }\n `\n ]\n})\nexport class BasicRadioConfigEditor implements OnInit {\n readonly optionType = {\n label: \"\",\n disabled: false,\n description: \"\"\n };\n\n @Input()\n saveBasicClickCounter: number = 0;\n\n @Input()\n elementConfig: any = {\n properties: {\n orientation: \"horizontal\"\n },\n options: []\n };\n\n @Output()\n updateElement = new EventEmitter<any>();\n\n basicRadioFormGroup: FormGroup = undefined;\n\n constructor() {}\n\n @logMethod\n ngOnInit() {\n this.createBasicRadioFormGroup();\n }\n\n @logMethod\n ngOnChanges(changes: SimpleChanges) {\n const verifyChange = (key: string) => {\n return changes.hasOwnProperty(key) && !changes[key].firstChange;\n };\n\n if (verifyChange(\"elementConfig\")) {\n this.elementConfig = changes.elementConfig.currentValue;\n\n this.createBasicRadioFormGroup();\n }\n if (verifyChange(\"saveBasicClickCounter\")) {\n if (\n changes.saveBasicClickCounter.previousValue !==\n changes.saveBasicClickCounter.currentValue\n ) {\n this.saveBasicClickCounter = changes.saveBasicClickCounter.currentValue;\n\n this.handleOnSave();\n }\n }\n }\n\n @logMethod\n createBasicRadioFormGroup(): void {\n let optionsFormArray = [];\n\n this.elementConfig = setMissingKeyValue(this.elementConfig, \"options\", [\n this.optionType\n ]);\n\n for (let option of this.elementConfig.options) {\n optionsFormArray.push(this.createOptionConfigFormGroup(option));\n }\n\n this.basicRadioFormGroup = new FormGroup({\n properties: new FormGroup({\n orientation: new FormControl(\n this.elementConfig.properties.orientation,\n {\n updateOn: \"change\"\n }\n )\n }),\n options: new FormArray(optionsFormArray)\n });\n this.basicRadioFormGroup.updateValueAndValidity();\n }\n\n @logMethod\n handleOnSave() {\n let basicElementConfig = this.basicRadioFormGroup.getRawValue();\n\n this.updateElement.emit({\n basicElementConfig: basicElementConfig\n });\n }\n\n get optionsArray(): FormArray {\n return this.basicRadioFormGroup.get(\"options\") as FormArray;\n }\n\n @logMethod\n createOptionConfigFormGroup(optionConfig: any): FormGroup {\n const optionFormGroup = new FormGroup({\n label: new FormControl(optionConfig.label, {\n updateOn: \"change\"\n }),\n disabled: new FormControl(optionConfig.disabled, {\n updateOn: \"change\"\n }),\n description: new FormControl(optionConfig.description, {\n updateOn: \"change\"\n })\n });\n return optionFormGroup;\n }\n\n @logMethod\n addOption() {\n const options = this.basicRadioFormGroup.get(\"options\") as FormArray;\n options.push(this.createOptionConfigFormGroup(this.optionType));\n }\n\n @logMethod\n removeOption(optionIndex: number) {\n const options = this.basicRadioFormGroup.get(\"options\") as FormArray;\n if (options.length > 1) {\n options.removeAt(optionIndex);\n } else {\n this.addOption();\n // options.reset();\n }\n }\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n SimpleChanges\n} from \"@angular/core\";\nimport { FormControl, FormGroup } from \"@angular/forms\";\nimport { logMethod, mergeObjects } from \"kwikid-toolkit\";\n\n@Component({\n selector: \"basic-element-config-editor\",\n template: `\n <ng-container *ngIf=\"elementConfig !== undefined\">\n <table>\n <tr>\n <td>Id</td>\n <td>{{ elementConfig.elementId }}</td>\n </tr>\n <tr>\n <td>Type</td>\n <td>{{ elementConfig.elementType }}</td>\n </tr>\n <tr>\n <td>Category</td>\n <td>{{ elementConfig.elementCategory }}</td>\n </tr>\n </table>\n </ng-container>\n <form [formGroup]=\"basicFormGroup\">\n <fieldset>\n <legend>Standard</legend>\n <div class=\"form-group\">\n <label for=\"basic-field-label\">Label</label>\n <input\n type=\"text\"\n class=\"form-control\"\n id=\"basic-field-label\"\n formControlName=\"label\"\n required\n />\n </div>\n <div class=\"form-group\">\n <label for=\"basic-field-key\">Key</label>\n <input\n type=\"text\"\n class=\"form-control\"\n id=\"basic-field-key\"\n formControlName=\"key\"\n required\n />\n </div>\n <div class=\"form-group\">\n <label for=\"basic-input-property-disabled\">disabled</label>\n <select\n class=\"form-control\"\n formControlName=\"disabled\"\n id=\"basic-input-property-disabled\"\n >\n <option\n [ngValue]=\"null\"\n disabled\n >Select either true or false</option\n >\n <option\n *ngFor=\"let disabled of [true, false]\"\n [ngValue]=\"disabled\"\n >\n {{ disabled }}\n </option>\n </select>\n </div>\n </fieldset>\n <fieldset formGroupName=\"default\">\n <legend>Default</legend>\n <div class=\"form-group\">\n <label for=\"basic-input-property-value\">value</label>\n <select\n class=\"form-control\"\n formControlName=\"value\"\n id=\"basic-input-property-value\"\n >\n <option\n [ngValue]=\"null\"\n value\n >Select either true or false</option\n >\n <option\n *ngFor=\"let value of [true, false]\"\n [ngValue]=\"value\"\n >\n {{ value }}\n </option>\n </select>\n </div>\n </fieldset>\n <fieldset formGroupName=\"validators\">\n <legend>Validators</legend>\n <div class=\"form-group\">\n <label for=\"basic-input-validators-min\">min</label>\n <input\n class=\"form-control\"\n formControlName=\"min\"\n id=\"basic-input-validators-min\"\n type=\"number\"\n />\n </div>\n <div class=\"form-group\">\n <label for=\"basic-input-validators-max\">max</label>\n <input\n class=\"form-control\"\n formControlName=\"max\"\n id=\"basic-input-validators-max\"\n type=\"number\"\n />\n </div>\n <div class=\"form-group\">\n <label for=\"basic-input-validators-minLength\">minLength</label>\n <input\n class=\"form-control\"\n formControlName=\"minLength\"\n id=\"basic-input-validators-minLength\"\n type=\"number\"\n />\n </div>\n <div class=\"form-group\">\n <label for=\"basic-input-validators-maxLength\">maxLength</label>\n <input\n class=\"form-control\"\n formControlName=\"maxLength\"\n id=\"basic-input-validators-maxLength\"\n type=\"number\"\n />\n </div>\n <div class=\"form-group\">\n <label for=\"basic-input-property-required\">required</label>\n <select\n class=\"form-control\"\n formControlName=\"required\"\n id=\"basic-input-property-required\"\n >\n <option\n [ngValue]=\"null\"\n disabled\n >Select either true or false</option\n >\n <option\n *ngFor=\"let required of [true, false]\"\n [ngValue]=\"required\"\n >\n {{ required }}\n </option>\n </select>\n </div>\n </fieldset>\n <fieldset formGroupName=\"properties\">\n <legend>Properties</legend>\n <div class=\"form-group\">\n <label for=\"basic-input-property-placeholder\">Placeholder</label>\n <input\n class=\"form-control\"\n formControlName=\"placeholder\"\n id=\"basic-input-property-placeholder\"\n type=\"text\"\n />\n </div>\n <div class=\"form-group\">\n <label for=\"basic-input-property-readonly\">readOnly</label>\n <select\n class=\"form-control\"\n formControlName=\"readOnly\"\n id=\"basic-input-property-readonly\"\n >\n <option\n [ngValue]=\"null\"\n disabled\n >Select either true or false</option\n >\n <option\n *ngFor=\"let readonly of [true, false]\"\n [ngValue]=\"readonly\"\n >\n {{ readonly }}\n </option>\n </select>\n </div>\n </fieldset>\n <ng-container [ngSwitch]=\"elementType\">\n <ng-container *ngSwitchCase=\"'text'\">\n <basic-text-config-editor\n [saveBasicClickCounter]=\"saveBasicClickCounter\"\n [elementConfig]=\"elementConfig\"\n (updateElement)=\"handleOnSaveUpdateElement($event)\"\n ></basic-text-config-editor>\n </ng-container>\n <ng-container *ngSwitchCase=\"'radio'\">\n <basic-radio-config-editor\n [saveBasicClickCounter]=\"saveBasicClickCounter\"\n [elementConfig]=\"elementConfig\"\n (updateElement)=\"handleOnSaveUpdateElement($event)\"\n ></basic-radio-config-editor>\n </ng-container>\n </ng-container>\n </form>\n `,\n styles: [\n `\n :host {\n display: flex;\n flex-direction: column;\n align-content: center;\n justify-content: flex-start;\n align-items: stretch;\n gap: 1rem;\n }\n `\n ]\n})\nexport class BasicElementConfigEditor implements OnInit {\n @Input()\n saveClickCounter: number = 0;\n\n @Input()\n elementConfig: any = {\n label: \"\",\n key: \"\",\n disabled: false,\n default: {\n value: true\n },\n validators: {\n min: null,\n max: null,\n minLength: null,\n maxLength: null,\n required: true\n },\n properties: {\n placeholder: \"\",\n readOnly: false\n }\n };\n\n @Output()\n updateElement = new EventEmitter<any>();\n\n elementType: string = \"\";\n saveBasicClickCounter: number = 0;\n\n basicFormGroup: FormGroup = undefined;\n\n constructor() {}\n\n @logMethod\n ngOnInit() {\n this.assignVariables();\n this.createBasicFormGroup();\n }\n\n @logMethod\n ngOnChanges(changes: SimpleChanges) {\n const verifyChange = (key: string) => {\n return changes.hasOwnProperty(key) && !changes[key].firstChange;\n };\n\n if (verifyChange(\"elementConfig\")) {\n this.elementConfig = changes.elementConfig.currentValue;\n this.assignVariables();\n this.createBasicFormGroup();\n }\n\n if (verifyChange(\"saveClickCounter\")) {\n if (\n changes.saveClickCounter.previousValue !==\n changes.saveClickCounter.currentValue\n ) {\n this.saveClickCounter = changes.saveClickCounter.currentValue;\n\n this.handleOnSave();\n }\n }\n }\n\n @logMethod\n assignVariables() {\n this.elementType = this.elementConfig.elementType;\n }\n\n @logMethod\n createBasicFormGroup() {\n this.basicFormGroup = new FormGroup({\n label: new FormControl(this.elementConfig.label),\n key: new FormControl(this.elementConfig.key),\n disabled: new FormControl(this.elementConfig.disabled),\n default: new FormGroup({\n value: new FormControl(this.elementConfig.default.value, {\n updateOn: \"change\"\n })\n }),\n validators: new FormGroup({\n min: new FormControl(this.elementConfig.validators.min, {\n updateOn: \"change\"\n }),\n minLength: new FormControl(this.elementConfig.validators.minLength, {\n updateOn: \"change\"\n }),\n max: new FormControl(this.elementConfig.validators.max, {\n updateOn: \"change\"\n }),\n maxLength: new FormControl(this.elementConfig.validators.maxLength, {\n updateOn: \"change\"\n }),\n required: new FormControl(this.elementConfig.validators.required, {\n updateOn: \"change\"\n })\n }),\n properties: new FormGroup({\n placeholder: new FormControl(\n this.elementConfig.properties.placeholder,\n {\n updateOn: \"change\"\n }\n ),\n readOnly: new FormControl(this.elementConfig.properties.readOnly, {\n updateOn: \"change\"\n })\n })\n });\n this.basicFormGroup.updateValueAndValidity();\n }\n\n @logMethod\n handleOnSaveUpdateElement(event: any) {\n // Get Common Config\n let basicElementCommonConfig = this.basicFormGroup.getRawValue();\n basicElementCommonConfig.key = basicElementCommonConfig.key.replace(\n /\\s/g,\n \"_\"\n );\n\n // Get Basic Element Config\n const basicElementConfig = event.basicElementConfig;\n\n this.elementConfig = mergeObjects(\n this.elementConfig,\n basicElementCommonConfig,\n basicElementConfig\n );\n\n this.updateElement.emit({ elementConfig: this.elementConfig });\n }\n\n @logMethod\n handleOnSave() {\n this.saveBasicClickCounter++;\n }\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n ViewEncapsulation\n} from \"@angular/core\";\nimport { FormControl, FormGroup } from \"@angular/forms\";\nimport { logMethod } from \"kwikid-toolkit\";\n\n@Component({\n selector: \"element-config-editor\",\n templateUrl: \"./element-config-editor.component.html\",\n styleUrls: [\n \"./element-config-editor.component.scss\",\n \"../shared/shared.scss\"\n ],\n encapsulation: ViewEncapsulation.None\n})\nexport class ElementConfigEditor implements OnInit, OnChanges {\n @Input()\n formKey: string = \"\";\n\n @Input()\n elementConfig: any = undefined;\n\n @Output()\n updateElement = new EventEmitter<any>();\n\n elementType: string = \"\";\n elementCategory: string = \"\";\n elementEditorFormGroup: FormGroup = undefined;\n\n saveClickCounter: number = 0;\n\n constructor() {}\n\n @logMethod\n ngOnInit() {}\n\n @logMethod\n ngOnChanges(changes: SimpleChanges) {\n const verifyChange = (key: string) => {\n return changes.hasOwnProperty(key) && !changes[key].firstChange;\n };\n\n if (verifyChange(\"formKey\")) {\n this.formKey = changes.formKey.currentValue;\n }\n if (verifyChange(\"elementConfig\")) {\n this.elementConfig = changes.elementConfig.currentValue;\n\n if (this.elementConfig !== undefined) {\n this.elementType = this.elementConfig.elementType;\n this.elementCategory = this.elementConfig.elementCategory;\n } else {\n throw new Error(\"'elementConfig' doesn't have 'elementType'\");\n }\n }\n }\n\n @logMethod\n updateFormGroup() {\n this.elementEditorFormGroup = new FormGroup({\n properties: new FormGroup({\n orientation: new FormControl(\n this.elementConfig.properties.orientation,\n {\n updateOn: \"change\"\n }\n )\n })\n });\n this.elementEditorFormGroup.updateValueAndValidity();\n }\n\n @logMethod\n handleOnSaveUpdateElement(event: any): void {\n this.updateElement.emit(event);\n }\n\n @logMethod\n handleOnClickSave() {\n this.saveClickCounter++;\n }\n}\n","<div class=\"container\" *ngIf=\"elementConfig\">\n <div class=\"element-config-editor-header\">\n '{{ elementConfig.elementType }}' Element Config Editor\n </div>\n <div class=\"element-config-editor-body\"\n ><ng-container [ngSwitch]=\"elementCategory\">\n <!-- Basic -->\n <ng-container *ngSwitchCase=\"'basic'\">\n <basic-element-config-editor\n [saveClickCounter]=\"saveClickCounter\"\n [elementConfig]=\"elementConfig\"\n (updateElement)=\"handleOnSaveUpdateElement($event)\"\n ></basic-element-config-editor>\n </ng-container>\n </ng-container>\n </div>\n <div class=\"element-config-editor-footer\">\n <button\n class=\"save-button\"\n type=\"submit\"\n (click)=\"handleOnClickSave()\"\n >\n Save\n </button></div\n >\n</div>\n","import {\n CdkDrag,\n copyArrayItem,\n moveItemInArray\n} from \"@angular/cdk/drag-drop\";\nimport { Component, OnInit } from \"@angular/core\";\nimport { FormControl, FormGroup, Validators } from \"@angular/forms\";\nimport {\n getObjectFromLocalStorage,\n isEmptyValue,\n isNotEmptyValue,\n logMethod\n} from \"kwikid-toolkit\";\nimport { Elements } from \"./shared/elements\";\nimport { revisedRandId } from \"./shared/helpers\";\n\n@Component({\n selector: \"kwikid-forms-builder\",\n templateUrl: \"./builder.component.html\",\n styleUrls: [\"shared/shared.scss\", \"./builder.component.scss\"]\n})\nexport class KwikIDFormsBuilderComponent implements OnInit {\n formKey: string = \"\";\n formTitle: string = \"\";\n builderFormGroup: FormGroup = undefined;\n\n basicElements: Array<any> = new Elements().basic;\n documentElements: Array<any> = new Elements().documents;\n otherElements: Array<any> = new Elements().others;\n templateElements: Array<any> = new Elements().templates;\n\n elementsMapping: any = new Elements().elementMapping;\n\n formElementsDragList: Array<any> = [];\n formElementsDropList: Array<any> = [];\n\n elementEditorElementConfig: any = undefined;\n\n constructor() {\n this.builderFormGroup = new FormGroup({\n formKey: new FormControl(\"\", [Validators.required]),\n formTitle: new FormControl(\"\", [Validators.required])\n });\n\n const formDropConfig = getObjectFromLocalStorage(\"formDropConfig\");\n\n if (isNotEmptyValue(formDropConfig)) {\n this.formKey = formDropConfig.key;\n this.formTitle = formDropConfig.title;\n const formFields = formDropConfig.fields.map((item) => {\n item.elementId = revisedRandId();\n item.elementCategory = this.elementsMapping.basic.includes(item.type)\n ? \"basic\"\n : this.elementsMapping.documents.includes(item.type)\n ? \"document\"\n : \"others\";\n item.elementType =\n item.elementCategory === \"basic\" ||\n item.elementCategory === \"document\"\n ? item.type\n : String(`NA<>${item.type}`);\n item.isElement = true;\n const elementFiltered =\n item.elementCategory === \"basic\"\n ? this.basicElements.find(\n (element) => element.elementType === item.type\n )\n : item.elementCategory === \"document\"\n ? this.documentElements.find(\n (element) => element.elementType === item.type\n )\n : item.elementCategory === \"others\"\n ? this.otherElements.find(\n (element) => element.elementType === item.type\n )\n : undefined;\n item.elementTitle = isEmptyValue(elementFiltered)\n ? item.elementCategory + \"::\" + item.elementType\n : elementFiltered.elementTitle;\n\n return item;\n });\n\n this.formElementsDropList = formFields;\n }\n }\n\n ngOnInit() {\n this.formElementsDragList = [\n { isElement: false, elementTitle: \"Basic Elements\" },\n ...this.basicElements,\n { isElement: false, elementTitle: \"Document Elements\" },\n ...this.documentElements,\n { isElement: false, elementTitle: \"Other Elements\" },\n ...this.otherElements\n ];\n\n for (let formElementsDragItem of this.formElementsDragList) {\n formElementsDragItem.elementId = revisedRandId();\n }\n }\n\n handleOnChange(\n event: { target: { value: any } },\n id: string | number,\n key: string | number,\n idx: any\n ) {\n const _value = event.target.value;\n }\n\n // DOM Event Handlers\n @logMethod\n handleGetKeyValue(e: any) {\n this.builderFormGroup.patchValue(\n {\n [e.key]: e.value\n },\n { emitEvent: false }\n );\n }\n\n @logMethod\n drop(event: any, elementCategory: string) {\n // let item = JSON.parse(JSON.stringify(event));\n if (event.previousContainer !== event.container) {\n console.log(\"copying\");\n if (event.item.data.isElement) {\n // Clone the item that was dropped.\n const draggedItemIndex = this.formElementsDragList.findIndex((item) => {\n return item.elementId === event.item.data.elementId;\n });\n\n copyArrayItem(\n this.formElementsDragList,\n this.formElementsDropList,\n draggedItemIndex,\n event.currentIndex\n );\n\n this.formElementsDragList = JSON.parse(\n JSON.stringify(\n this.formElementsDragList.map((item) => {\n item.elementId = revisedRandId();\n return item;\n })\n )\n );\n }\n } else {\n console.log(\"moving\");\n moveItemInArray(\n event.container.data,\n event.previousIndex,\n event.currentIndex\n );\n }\n }\n\n @logMethod\n exit(event: any, elementCategory: string) {}\n\n @logMethod\n enter(event: any, elementCategory: string) {}\n\n /** Predicate function that only allows isElement: true items to be dropped into a list. */\n isElementPredicate(item: CdkDrag<any>) {\n return item.data.isElement;\n }\n\n @logMethod\n removeElement(idx: number, id: string) {\n this.formElementsDropList.splice(idx, 1);\n }\n\n @logMethod\n editElement(idx: number, item: any) {\n this.elementEditorElementConfig = item;\n }\n\n @logMethod\n handleOnSaveUpdateElement(event: any) {}\n\n handleOnClickSaveForms(event: any) {\n if (isEmptyValue(this.formKey)) {\n window.alert(\"Please provide Form Key\");\n return;\n } else {\n this.formKey = this.formKey.replace(/\\s/g, \"_\").toLocaleUpperCase();\n }\n if (isEmptyValue(this.formTitle)) {\n window.alert(\"Please provide Form Title\");\n return;\n }\n\n let finalFields = JSON.parse(JSON.stringify(this.formElementsDropList));\n finalFields = finalFields.map((item) => {\n if (item.elementType.startsWith(\"NA<>\", 0)) {\n delete item.elementId;\n delete item.elementType;\n delete item.elementTitle;\n delete item.elementCategory;\n delete item.isElement;\n\n return item;\n }\n delete item.elementId;\n delete item.elementType;\n delete item.elementTitle;\n delete item.elementCategory;\n delete item.isElement;\n\n if (item.default.value) {\n item.default = {\n value: {\n is_found: false,\n value: \"\",\n sources: [\n {\n key: \"OBJECT\",\n props: {\n object: {\n key: \"ALL_FORMS_DATA\",\n path: String(`$.${this.formKey}.${item.key}`)\n }\n },\n value: \"\",\n validation: {\n is_valid: false,\n triggers: [\"ON_INIT\"],\n rules: [\n {\n id: \"1\",\n key: \"VALUE_CHECK\",\n props: {\n value: {\n source: {\n key: \"OBJECT\",\n props: {\n object: {\n key: \"ALL_FORMS_DATA\",\n path: String(`$.${this.formKey}.${item.key}`)\n }\n }\n }\n },\n pattern: { key: \"IS_NOT_EMPTY\" }\n }\n }\n ],\n actions: [\n {\n id: \"1\",\n key: \"SET_FIELD_DEFAULT_VALUE\",\n condition: \"1\",\n props: {\n fieldKey: String(`${item.key}`),\n value: {\n source: {\n key: \"OBJECT\",\n props: {\n object: {\n key: \"ALL_FORMS_DATA\",\n path: String(`$.${this.formKey}.${item.key}`)\n }\n }\n }\n }\n }\n }\n ]\n }\n }\n ]\n }\n };\n } else {\n item.default = {\n value: {\n is_found: false,\n value: \"\",\n sources: []\n }\n };\n }\n\n return item;\n });\n const finalFormConfig = {\n key: this.formKey,\n title: this.formTitle,\n fields: finalFields\n };\n\n localStorage.setItem(\"rendererFormConfig\", JSON.stringify(finalFormConfig));\n localStorage.setItem(\n \"builderFormConfig\",\n JSON.stringify({\n key: this.formKey,\n title: this.formTitle,\n fields: this.formElementsDropList\n })\n );\n\n console.log(finalFormConfig);\n console.log(this.formElementsDropList);\n }\n}\n","<div class=\"container\">\n <div class=\"wrapper\">\n <div class=\"builder-header\">\n <div class=\"builder-title\">KwikID Form Builder</div>\n <form\n [formGroup]=\"builderFormGroup\"\n class=\"builder-form\"\n >\n <kwikui-input\n [label]=\"'Form Key'\"\n [id]=\"'form_key'\"\n [type]=\"'text'\"\n [formControlName]=\"'formKey'\"\n [formControl]=\"builderFormGroup.controls['formKey']\"\n [disabled]=\"false\"\n [placeholder]=\"'Please enter a Form Key'\"\n [focus]=\"false\"\n [invalid]=\"false\"\n [case]=\"'upper'\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input>\n <kwikui-input\n [label]=\"'Form Title'\"\n [id]=\"'form_title'\"\n [type]=\"'text'\"\n [formControlName]=\"'formTitle'\"\n [formControl]=\"builderFormGroup.controls['formTitle']\"\n [disabled]=\"false\"\n [placeholder]=\"'Please enter a Form Title'\"\n [focus]=\"false\"\n [invalid]=\"false\"\n [case]=\"'default'\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input>\n <kwikui-button\n [disabled]=\"builderFormGroup.valid\"\n id=\"save_form_btn\"\n label=\"Save Form\"\n [showLoader]=\"false\"\n styles=\"\"\n class=\"\"\n type=\"button\"\n appearance=\"primary\"\n icon=\"\"\n iconRight=\"\"\n [shape]=\"'rounded'\"\n size=\"m\"\n (onClick)=\"handleOnClickSaveForms($event)\"\n ></kwikui-button>\n </form>\n </div>\n <div class=\"builder-body\">\n <div class=\"form-elements-drag-wrapper\">\n <div\n class=\"form-elements-drag\"\n cdkDropList\n [cdkDropListData]=\"formElementsDragList\"\n cdkDropListSortingDisabled\n [cdkDropListConnectedTo]=\"[formElementsList]\"\n (cdkDropListExited)=\"exit($event, 'other')\"\n (cdkDropListEntered)=\"enter($event, 'other')\"\n >\n <ng-container\n *ngFor=\"let formElementDragItem of formElementsDragList\"\n >\n <ng-container *ngIf=\"formElementDragItem.isElement\">\n <div\n class=\"form-element-drag\"\n cdkDrag\n [cdkDragData]=\"formElementDragItem\"\n >\n ⋮⋮ {{ formElementDragItem.elementTitle }}\n <!-- <ng-container *ngComponentOutlet=\"formElementDragItem.component\"></ng-container> -->\n </div>\n <div\n class=\"form-element-drag\"\n *cdkDragPlaceholder\n >\n {{ formElementDragItem.elementTitle }}\n </div>\n </ng-container>\n <ng-container *ngIf=\"!formElementDragItem.isElement\">\n <div class=\"form-element-category\">\n {{ formElementDragItem.elementTitle }}\n </div>\n </ng-container>\n </ng-container>\n </div>\n </div>\n <div\n class=\"form-elements-drop-wrapper\"\n cdkDropList\n #formElementsList=\"cdkDropList\"\n [cdkDropListData]=\"formElementsDropList\"\n (cdkDropListDropped)=\"drop($event, '')\"\n [cdkDropListEnterPredicate]=\"isElementPredicate\"\n >\n <ng-container\n *ngFor=\"\n let formElementDropItem of formElementsDropList;\n let idx = index\n \"\n >\n <div\n class=\"form-drop-element\"\n cdkDrag\n >\n <div class=\"form-drop-element-grab-symbol\">⋮⋮</div>\n <div class=\"form-drop-element-main\">\n <div class=\"form-drop-element-header\">\n <div class=\"form-drop-element-title\">\n {{ formElementDropItem.elementTitle }}\n </div>\n <div class=\"form-drop-element-actions\">\n <kwikui-button-icon\n [disabled]=\"false\"\n [id]=\"'edit-element'\"\n [showLoader]=\"false\"\n [styles]=\"\"\n [class]=\"\"\n [type]=\"'button'\"\n [appearance]=\"'secondary'\"\n [icon]=\"'tuiIconEdit'\"\n [shape]=\"'rounded'\"\n [size]=\"'s'\"\n (onClick)=\"editElement(idx, formElementDropItem)\"\n ></kwikui-button-icon>\n <kwikui-button-icon\n [disabled]=\"false\"\n [id]=\"'remove-element'\"\n [showLoader]=\"false\"\n [styles]=\"\"\n [class]=\"\"\n [type]=\"'button'\"\n [appearance]=\"'accent'\"\n [icon]=\"'tuiIconCloseLarge'\"\n [shape]=\"'rounded'\"\n [size]=\"'s'\"\n (onClick)=\"removeElement(idx, formElementDropItem)\"\n ></kwikui-button-icon>\n <!-- <button\n (click)=\"editElement(idx, formElementDropItem)\"\n title=\"edit element properties\"\n >\n ✎\n </button>\n <button\n (click)=\"removeElement(idx, formElementDropItem)\"\n title=\"delete element\"\n >\n ✖\n </button> -->\n </div>\n </div>\n <div class=\"form-drop-element-body\"> </div>\n <div class=\"form-drop-element-footer\">\n <div class=\"form-drop-element-id\">\n {{ formElementDropItem.elementId }}\n </div>\n <div class=\"form-drop-element-category\">\n {{ formElementDropItem.elementCategory }}\n </div>\n <div class=\"form-drop-element-type\">\n {{ formElementDropItem.elementType }}\n </div>\n </div>\n <div\n class=\"example-custom-placeholder\"\n *cdkDragPlaceholder\n ></div>\n <!-- <ng-container *ngComponentOutlet=\"formElementDropItem.component\"> </ng-container> -->\n <!-- <ng-container *ngTemplateOutlet=\"formModal; context: formElementDropItem\"></ng-container> -->\n </div>\n </div>\n </ng-container>\n </div>\n <div class=\"element-property-editor-wrapper\">\n <element-config-editor\n [elementConfig]=\"elementEditorElementConfig\"\n (updateElement)=\"handleOnSaveUpdateElement($event)\"\n ></element-config-editor>\n </div>\n </div>\n <div class=\"builder-footer\"> © Baiju Dodhia, KwikID </div>\n </div>\n</div>\n","import { TAction, TRule, TSource, TValidation } from \"kwikid-toolkit\";\nimport { TApi } from \"./form-view.apis.definition\";\nimport { TMessage } from \"./form-view.commons.definition\";\nimport { TValidator } from \"./form-view.form-validations.definition\";\nimport { TTrigger } from \"./form-view.triggers.definition\";\n\nexport enum EFieldType {\n HTML = \"html\",\n TITLE = \"title\",\n TEXT = \"text\",\n CHECKBOX = \"checkbox\",\n NUMBER = \"number\",\n DATE = \"date\",\n PHONE = \"phone\",\n RADIO = \"radio\",\n DROPDOWN_WITH_SEARCH = \"dropdown-with-search\",\n API_CALL = \"api-call\",\n OTP = \"otp\",\n AADHAAR_NUMBER = \"aadhaar-number\",\n SLIDER = \"slider\"\n}\n\nexport type TFieldType =\n | EFieldType.HTML\n | EFieldType.TITLE\n | EFieldType.TEXT\n | EFieldType.CHECKBOX\n | EFieldType.NUMBER\n | EFieldType.DATE\n | EFieldType.PHONE\n | EFieldType.RADIO\n | EFieldType.DROPDOWN_WITH_SEARCH\n | EFieldType.API_CALL\n | EFieldType.OTP\n | EFieldType.AADHAAR_NUMBER\n | EFieldType.SLIDER;\n\nexport type TFieldDropdownWithSearchOption = {\n title: string;\n value: string;\n};\n\nexport type TFieldRadioOption = {\n label: string;\n disabled: boolean;\n};\n\nexport type TFieldDefaultValue = {\n is_found: boolean;\n value: any;\n sources: Array<TSource>;\n};\n\nexport type TFieldDefaultDropdownOptions = {\n triggers: TTrigger[];\n rules: TRule[];\n actions: TAction[];\n};\n\nexport type TFieldDefault = {\n value: TFieldDefaultValue;\n options: TFieldDefaultDropdownOptions;\n};\n\nexport type TFieldProperties = {\n // define the properties that are common to all fields\n};\n\nexport type TFieldTextProperties = TFieldProperties & {\n case: string;\n placeholder: string;\n readOnly: string;\n};\n\nexport type TFieldCheckboxProperties = TFieldProperties & {\n contentAlign: string;\n size: string;\n readOnly: string;\n};\n\nexport type TFieldNumberProperties = TFieldProperties & {\n min: number;\n max: number;\n prefix: number;\n postfix: number;\n precision: number;\n placeholder: string;\n decimal: string;\n readOnly: boolean;\n};\n\nexport type TFieldDateProperties = TFieldProperties & {\n placeholder: string;\n min: {\n year: number;\n month: number;\n day: number;\n };\n max: {\n year: number;\n month: number;\n day: number;\n };\n readOnly: boolean;\n};\n\nexport type TFieldPhoneProperties = TFieldProperties & {\n countryCode: string;\n phoneMaskAfterCountryCode: string;\n removeCountryCodeFromValue: boolean;\n placeholder: string;\n readOnly: boolean;\n};\n\nexport type TFieldSlider = TFieldProperties & {\n min: number;\n max: number;\n step: number;\n quantum: number;\n placeholder: string;\n readOnly: boolean;\n};\n\nexport type TFieldRadioProperties = TFieldProperties & {\n size: string;\n orientation: string;\n readOnly: string;\n};\n\nexport type TFieldDropdownWithSearchProperties = TFieldProperties & {\n placeholder: string;\n readOnly: boolean;\n};\n\nexport type TFieldApiCallProperties = TFieldProperties & {};\n\nexport type TFieldOtpProperties = TFieldProperties & {\n placeholder: string;\n mask: string;\n};\n\nexport type TFieldAadhaarNumberProperties = TFieldProperties & {\n mask: string;\n readOnly: string;\n};\n\nexport type TField = {\n label: string;\n type: TFieldType;\n key: string;\n disabled: boolean;\n messages: Array<TMessage>;\n default: TFieldDefault;\n validators: TValidator;\n validation: TValidation;\n properties: TFieldProperties;\n options?: any[];\n};\n\nexport type TFieldTitle = {\n type: TFieldType;\n label: string;\n key: string;\n reset?: {\n fields: Array<{\n fieldKey: string;\n actions: Array<TAction>;\n }>;\n };\n};\n\nexport type TFieldText = TField & {\n properties: TFieldTextProperties;\n};\n\nexport type TFieldCheckbox = TField & {\n properties: TFieldCheckboxProperties;\n};\n\nexport type TFieldNumber = TField & {\n properties: TFieldNumberProperties;\n};\n\nexport type TFieldDate = TField & {\n properties: TFieldDateProperties;\n};\n\nexport type TFieldPhone = TField & {\n properties: TFieldPhoneProperties;\n};\n\nexport type TFieldRadio = TField & {\n options: Array<TFieldRadioOption>;\n properties: TFieldRadioProperties;\n};\n\nexport type TFieldDropdownWithSearch = TField & {\n options: Array<TFieldDropdownWithSearchOption>;\n properties: TFieldDropdownWithSearchProperties;\n};\n\nexport type TFieldApiCall = TField & {\n api: TApi;\n properties: TFieldApiCallProperties;\n};\n\nexport type TFieldOtp = TField & {\n properties: TFieldOtpProperties;\n};\n\nexport type TFieldAadhaarNumber = TField & {\n properties: TFieldAadhaarNumberProperties;\n};\n","import { TuiDay } from \"@taiga-ui/cdk\";\nimport { checkObjectKeyExists, isNotEmptyValue } from \"kwikid-toolkit\";\nimport {\n EFieldType,\n TField,\n TFieldPhone,\n TFieldType\n} from \"../definitions/form-view.fields.definition\";\n\nexport const getFormFieldByKey = (fields: any[], key: string) => {\n const field = fields.find((field) => {\n if (field.key === key) {\n return field;\n }\n });\n\n return field;\n};\n\nexport const getFormFieldIndexByKey = (fields: any[], key: string) => {\n let fieldIndex: number;\n\n fieldIndex = fields.findIndex((_: any) => {\n return key === _.key;\n });\n\n return fieldIndex;\n};\n\nexport const highlightFormFieldError = (field: any, error: any): any => {\n field.invalid = error;\n field.focus = error;\n\n return field;\n};\n\nexport const appendFormFieldMessage = (\n field: any,\n message: { type: string; message: string }\n): any => {\n const hasDuplicateMessage = (\n messages: { type: string; message: string }[],\n message: { type: string; message: string }\n ) => {\n return messages.some((fieldMessage: { type: string; message: string }) => {\n return (\n fieldMessage.type === message.type &&\n fieldMessage.message === message.message\n );\n });\n };\n\n field[\"messages\"] = [];\n\n if (checkObjectKeyExists(field, \"messages\")) {\n if (!hasDuplicateMessage(field[\"messages\"], message)) {\n field[\"messages\"].push({\n type: message.type,\n message: message.message\n });\n }\n } else {\n field[\"messages\"] = [{ type: message.type, message: message.message }];\n }\n\n return field;\n};\n\nexport const removeFormFieldMessage = (\n field: any,\n message: { type: string; message: string }\n): any => {\n field[\"messages\"] = field[\"messages\"].filter(function (fieldMessage) {\n return fieldMessage.type !== message.type;\n });\n\n return field;\n};\n\nexport function showFormFieldError(\n fields: any,\n errors: any,\n key: string,\n error: boolean\n) {\n const fieldIndex = fields.findIndex((field: any) => {\n return field.key === key;\n });\n\n const setErrorMessages = (field: any, errors: any) => {\n const getErrorMessage = (fieldLabel: string, errorType: string) => {\n let errorMessage: string = \"\";\n\n switch (errorType) {\n case \"required\":\n errorMessage = `${fieldLabel} is required!`;\n break;\n case \"email\":\n errorMessage = `${fieldLabel} has wrong email format!`;\n break;\n case \"min\":\n errorMessage = `${fieldLabel} has wrong value! Minimum value: ${field.validators.min}`;\n break;\n case \"minlength\":\n errorMessage = `${fieldLabel} has wrong length! Required minimum length: ${field.validators.minLength}`;\n break;\n case \"max\":\n errorMessage = `${fieldLabel} has wrong value! Maximum value: ${field.validators.maxLength}`;\n break;\n case \"maxlength\":\n errorMessage = `${fieldLabel} has wrong length! Required maximum length: ${field.validators.maxLength}`;\n break;\n case \"areEqual\":\n errorMessage = `${fieldLabel} must be equal!`;\n break;\n case \"pattern\":\n errorMessage = `${fieldLabel} is in incorrect format!`;\n break;\n default:\n errorMessage = `${fieldLabel}: ${errorType}`;\n break;\n }\n\n return errorMessage;\n };\n\n Object.keys(errors).forEach((error) => {\n field = appendFormFieldMessage(field, {\n type: \"error\",\n message: getErrorMessage(field.label, error)\n });\n });\n\n return field;\n };\n\n if (error) {\n fields[fieldIndex] = setErrorMessages(fields[fieldIndex], errors);\n } else {\n fields[fieldIndex][\"messages\"] = [];\n }\n\n fields[fieldIndex] = highlightFormFieldError(fields[fieldIndex], error);\n\n return fields;\n}\n\nexport const convertFormFieldTypeDateToKwikUIFormat = (\n date: string\n): TuiDay => {\n const splitDate = date.split(\"-\");\n const tuiDay = new TuiDay(\n Number(splitDate[2]), // Year\n Number(splitDate[1]) - 1, // Month, Why '-1' => Because Taiga-UI Required It, So...\n Number(splitDate[0]) // Day\n );\n\n return tuiDay;\n};\n\nexport const convertFormFieldTypeDateToStandardFormat = (\n date: TuiDay\n): string => {\n let formattedDate: string;\n let year = date.year;\n let month = date.month;\n let day = date.day;\n\n formattedDate = `${day.toString().padStart(2, \"0\")}-${(month + 1)\n .toString()\n .padStart(2, \"0\")}-${year}`;\n\n return formattedDate;\n};\n\nexport const convertFormFieldValueToStandardFormat = (\n field: TField,\n value: any\n) => {\n let convertedValue: any = value;\n\n if (isNotEmptyValue(value)) {\n switch (field.type) {\n case EFieldType.DATE:\n if (typeof value !== \"string\") {\n convertedValue = convertFormFieldTypeDateToStandardFormat(value);\n }\n break;\n case EFieldType.RADIO:\n convertedValue = value.label;\n case EFieldType.PHONE:\n let phoneField = field as TFieldPhone;\n if (phoneField.properties.removeCountryCodeFromValue) {\n convertedValue = value.replace(phoneField.properties.countryCode, \"\");\n }\n default:\n break;\n }\n } else {\n convertedValue = \"\";\n }\n\n return convertedValue;\n};\n\nexport const convertFormFieldValueToKwikUIFormat = (\n field: TField,\n value: any\n) => {\n let convertedValue: any = value;\n\n if (isNotEmptyValue(value)) {\n switch (field.type) {\n case EFieldType.RADIO:\n if (!checkObjectKeyExists(value, \"label\")) {\n const radioField = field as any;\n const convertedLabelValue = radioField.options.find((item: any) => {\n return item.label === value;\n });\n convertedValue = convertedLabelValue;\n }\n break;\n case EFieldType.DATE:\n convertedValue = convertFormFieldTypeDateToKwikUIFormat(value);\n break;\n case EFieldType.TITLE:\n break;\n default:\n break;\n }\n } else {\n convertedValue = convertFormFieldEmptyValueToKwikUIFormat(field);\n }\n\n return convertedValue;\n};\n\nexport const convertFormFieldEmptyValueToKwikUIFormat = (\n field: TField\n): any => {\n const fieldType: TFieldType = field.type;\n let value: any;\n\n switch (fieldType) {\n case EFieldType.CHECKBOX:\n value = false;\n break;\n case EFieldType.NUMBER:\n value = null;\n break;\n case EFieldType.DATE:\n value = null;\n break;\n default:\n value = \"\";\n break;\n }\n\n return value;\n};\n","import { TuiDay } from \"@taiga-ui/cdk\";\nimport {\n checkObjectKeyExists,\n isEmptyValue,\n isNotEmptyValue,\n logMethod,\n setValueToObjectPath\n} from \"kwikid-toolkit\";\nimport { EFieldType } from \"./form-view/definitions/form-view.fields.definition\";\nimport { convertFormFieldTypeDateToKwikUIFormat } from \"./form-view/helpers/form-view.fields.helper\";\n\nexport class Converter {\n getFormFields = (formConfig: any): any[] => {\n let fields: any[];\n\n if (checkObjectKeyExists(formConfig, \"multiForm\")) {\n fields = formConfig.multiForm.fields;\n } else {\n fields = formConfig.fields;\n }\n\n return fields;\n };\n\n setMissingFieldKeyValue = (field: any, key: string, value: any): any => {\n if (!checkObjectKeyExists(field, key)) {\n field[key] = value;\n }\n return field;\n };\n\n setFieldKeyValue = (field: any, key: string, value: any): any => {\n field[key] = value;\n\n return field;\n };\n\n removeFieldKey = (field: any, key: string): any => {\n if (checkObjectKeyExists(field, key)) {\n delete field[key];\n }\n\n return field;\n };\n\n @logMethod\n updateFormConfigMiscellaneous(formConfig: any, args: any): any {\n if (checkObjectKeyExists(args, \"formsListLength\")) {\n formConfig = setValueToObjectPath(\n formConfig,\n \"formsListLength\",\n args.formsListLength\n );\n }\n\n return formConfig;\n }\n\n @logMethod\n updateFormConfigProperties(formConfig: any): any {\n const formViewProperties = {\n header: {\n title: {\n hidden: false,\n label: formConfig.title\n },\n steps: {\n hidden: false\n }\n },\n footer: {\n viewFormsButton: {\n hidden: false,\n label: \"View Forms\"\n },\n saveButton: {\n hidden: false,\n label: \"Save\"\n }\n }\n };\n\n if (checkObjectKeyExists(formConfig, \"properties\")) {\n const headerTitleHidden =\n formConfig.properties.header?.title?.hidden ??\n formViewProperties.header.title.hidden;\n const headerTitleLabel =\n formConfig.properties.header?.title?.label ?? formConfig.title;\n const headerStepsHidden =\n formConfig.properties.header?.steps?.hidden ??\n formViewProperties.header.steps.hidden;\n const viewFormsButtonHidden =\n formConfig.properties.footer?.viewFormsButton?.hidden ??\n formViewProperties.footer.viewFormsButton.hidden;\n const viewFormsButtonLabel =\n formConfig.properties.footer?.viewFormsButton?.label ??\n formViewProperties.footer.viewFormsButton.label;\n const saveButtonHidden =\n formConfig.properties.footer?.saveButton?.hidden ??\n formViewProperties.footer.saveButton.hidden;\n const saveButtonLabel =\n formConfig.properties.footer?.saveButton?.label ??\n formViewProperties.footer.saveButton.label;\n\n formConfig.properties = {\n header: {\n title: {\n hidden: headerTitleHidden,\n label: headerTitleLabel\n },\n steps: {\n hidden: headerStepsHidden\n }\n },\n footer: {\n viewFormsButton: {\n hidden: viewFormsButtonHidden,\n label: viewFormsButtonLabel\n },\n saveButton: {\n hidden: saveButtonHidden,\n label: saveButtonLabel\n }\n }\n };\n } else {\n formConfig.properties = formViewProperties;\n }\n\n return formConfig;\n }\n\n @logMethod\n convertFormConfig(formConfig: any): any {\n const updateOnFieldType = (field: any): any => {\n const formatFieldTypeHtml = (field: any): any => {\n field = this.setFieldKeyValue(field, \"isFormElement\", false);\n\n return field;\n };\n const formatFieldTypeTitle = (field: any): any => {\n field = this.setFieldKeyValue(field, \"hidden\", false);\n field = this.setFieldKeyValue(field, \"isFormElement\", false);\n\n return field;\n };\n const formatFieldTypeText = (field: any): any => {\n field = this.setFieldKeyValue(field, \"isFormElement\", true);\n field.properties = this.setMissingFieldKeyValue(\n field.properties,\n \"case\",\n \"default\"\n );\n return field;\n };\n const formatFieldTypeCheckbox = (field: any): any => {\n field = this.setFieldKeyValue(field, \"isFormElement\", true);\n return field;\n };\n const formatFieldTypeNumber = (field: any): any => {\n field = this.setFieldKeyValue(field, \"isFormElement\", true);\n if (checkObjectKeyExists(field, \"key\")) {\n if (field.key === \"aadhaar_number\") {\n field = this.setFieldKeyValue(field, \"type\", \"aadhaar_number\");\n }\n if (field.key === \"contact_number\") {\n field = this.setFieldKeyValue(field, \"type\", \"phone\");\n }\n\n if (field.type === \"phone\" || field.type === \"number\") {\n field.properties = this.setMissingFieldKeyValue(\n field.properties,\n \"countryCode\",\n \"+91\"\n );\n field.properties = this.setMissingFieldKeyValue(\n field.properties,\n \"phoneMaskAfterCountryCode\",\n \"####-######\"\n );\n field.properties = this.setMissingFieldKeyValue(\n field.properties,\n \"removeCountryCodeFromValue\",\n true\n );\n field.properties = this.setMissingFieldKeyValue(\n field.properties,\n \"decimal\",\n \"never\"\n );\n field.properties = this.setMissingFieldKeyValue(\n field.properties,\n \"prefix\",\n \"\"\n );\n field.properties = this.setMissingFieldKeyValue(\n field.properties,\n \"postfix\",\n \"\"\n );\n field.properties = this.setMissingFieldKeyValue(\n field.properties,\n \"min\",\n -Infinity\n );\n field.properties = this.setMissingFieldKeyValue(\n field.properties,\n \"max\",\n Infinity\n );\n field.properties = this.setMissingFieldKeyValue(\n field.properties,\n \"precision\",\n 2\n );\n }\n }\n\n field = this.setFieldKeyValue(field, \"hidden\", false);\n\n return field;\n };\n const formatFieldTypeDate = (field: any): any => {\n field = this.setFieldKeyValue(field, \"isFormElement\", true);\n if (checkObjectKeyExists(field, \"min\")) {\n const tuiDay = convertFormFieldTypeDateToKwikUIFormat(field[\"min\"]);\n field.properties = this.setFieldKeyValue(\n field.properties,\n \"min\",\n tuiDay\n );\n } else {\n field.properties = this.setMissingFieldKeyValue(\n field.properties,\n \"min\",\n new TuiDay(0, 0, 1)\n ); // Year - 0000, Month - 0 (0 Indexing), Day - 1\n }\n\n if (checkObjectKeyExists(field, \"max\")) {\n const tuiDay = convertFormFieldTypeDateToKwikUIFormat(field[\"max\"]);\n field.properties = this.setFieldKeyValue(\n field.properties,\n \"max\",\n tuiDay\n );\n } else {\n field.properties = this.setMissingFieldKeyValue(\n field.properties,\n \"max\",\n new TuiDay(\n new Date().getFullYear(), // Year - 9999\n new Date().getMonth(), // Month - 11 (0 Indexing)\n new Date().getDate() // Day - 31\n )\n );\n }\n\n field.properties = this.setMissingFieldKeyValue(\n field.properties,\n \"minCalculatedFromToday\",\n {\n year: new Date().getFullYear(),\n month: new Date().getMonth(),\n day: new Date().getDate()\n }\n );\n\n field.properties = this.setMissingFieldKeyValue(\n field.properties,\n \"maxCalculatedFromToday\",\n {\n year: 0,\n month: 0,\n day: 0\n }\n );\n\n field.properties = this.setMissingFieldKeyValue(\n field.properties,\n \"placeholder\",\n \"\"\n );\n\n field = this.setFieldKeyValue(field, \"hidden\", false);\n\n return field;\n };\n const formatFieldTypePhone = (field: any): any => {\n field = this.setFieldKeyValue(field, \"isFormElement\", true);\n return field;\n };\n const formatFieldTypeRadio = (field: any): any => {\n field = this.setFieldKeyValue(field, \"isFormElement\", true);\n field.properties = this.setMissingFieldKeyValue(\n field.properties,\n \"size\",\n \"m\"\n );\n field.properties = this.setMissingFieldKeyValue(\n field.properties,\n \"orientation\",\n \"vertical\"\n );\n field = this.setFieldKeyValue(field, \"hidden\", false);\n\n field.options = field.options.map((x: any): any => {\n if (typeof x === \"string\" || typeof x === \"number\") {\n return { label: x, disabled: false, description: \"\" };\n } else {\n if (\n checkObjectKeyExists(x, \"label\") &&\n checkObjectKeyExists(x, \"disabled\") &&\n checkObjectKeyExists(x, \"description\")\n ) {\n return x;\n }\n if (!checkObjectKeyExists(x, \"disabled\")) {\n x = { ...x, disabled: false };\n }\n if (!checkObjectKeyExists(x, \"description\")) {\n x = { ...x, description: false };\n }\n return x;\n }\n });\n\n return field;\n };\n const formatFieldTypeSlider = (field: any): any => {\n field = this.setFieldKeyValue(field, \"isFormElement\", true);\n field.properties = this.setMissingFieldKeyValue(\n field.properties,\n \"min\",\n 0\n );\n field.properties = this.setMissingFieldKeyValue(\n field.properties,\n \"max\",\n 100\n );\n field.properties = this.setMissingFieldKeyValue(\n field.properties,\n \"steps\",\n 0\n );\n field.properties = this.setMissingFieldKeyValue(\n field.properties,\n \"quantum\",\n 1\n );\n field.properties = this.setMissingFieldKeyValue(\n field.properties,\n \"size\",\n \"l\"\n );\n\n return field;\n };\n const formatFieldTypeSearchText = (field: any): any => {\n field = this.setFieldKeyValue(field, \"isFormElement\", true);\n if (checkObjectKeyExists(field, \"type\")) {\n if (field.type === \"search-text\") {\n field = this.setFieldKeyValue(\n field,\n \"type\",\n \"dropdown-with-search\"\n );\n }\n }\n\n return field;\n };\n const formatFieldTypeDropdownWithSearch = (field: any): any => {\n field = this.setFieldKeyValue(field, \"isFormElement\", true);\n return field;\n };\n const formatFieldTypeApiCall = (field: any): any => {\n field = this.setFieldKeyValue(field, \"isFormElement\", true);\n if (!checkObjectKeyExists(field.properties, \"shape\")) {\n field.properties = this.setFieldKeyValue(\n field.properties,\n \"shape\",\n null\n );\n }\n if (!checkObjectKeyExists(field, \"showLoader\")) {\n field = this.setFieldKeyValue(field, \"showLoader\", false);\n }\n if (!checkObjectKeyExists(field.properties, \"size\")) {\n field.properties = this.setFieldKeyValue(\n field.properties,\n \"size\",\n \"m\"\n );\n }\n if (!checkObjectKeyExists(field, \"api\")) {\n field = this.setFieldKeyValue(field, \"api\", {});\n\n field.api = this.setMissingFieldKeyValue(field.api, \"url\", \"\");\n field.api = this.setMissingFieldKeyValue(field.api, \"request\", \"\");\n field.api = this.setMissingFieldKeyValue(field.api, \"response\", \"\");\n field.api = this.setMissingFieldKeyValue(field.api, \"status\", \"\");\n\n field.api.status = this.setMissingFieldKeyValue(\n field.api.status,\n \"value\",\n \"default\"\n );\n field.api.status = this.setMissingFieldKeyValue(\n field.api.status,\n \"labels\",\n {\n default: \"Call API\",\n loading: \"Call API\",\n success: \"API Success\",\n failed: \"API Failed\"\n }\n );\n }\n return field;\n };\n const formatFieldTypeOtp = (field: any): any => {\n field = this.setFieldKeyValue(field, \"isFormElement\", true);\n field.properties = this.setMissingFieldKeyValue(\n field.properties,\n \"mask\",\n new Array(field.properties.otpLength).fill(\"#\").join(\" \")\n );\n field = this.setFieldKeyValue(field, \"hidden\", false);\n\n return field;\n };\n const formatFieldTypeAadhaarNumber = (field: any): any => {\n field = this.setFieldKeyValue(field, \"isFormElement\", true);\n return field;\n };\n\n switch (field.type) {\n case EFieldType.HTML:\n field = formatFieldTypeHtml(field);\n break;\n case EFieldType.TITLE:\n field = formatFieldTypeTitle(field);\n break;\n case EFieldType.TEXT:\n field = formatFieldTypeText(field);\n break;\n case EFieldType.CHECKBOX:\n field = formatFieldTypeCheckbox(field);\n break;\n case EFieldType.NUMBER:\n field = formatFieldTypeNumber(field);\n break;\n case EFieldType.DATE:\n field = formatFieldTypeDate(field);\n break;\n case EFieldType.PHONE:\n field = formatFieldTypePhone(field);\n break;\n case EFieldType.RADIO:\n field = formatFieldTypeRadio(field);\n break;\n case EFieldType.SLIDER:\n field = formatFieldTypeSlider(field);\n break;\n case \"search-text\":\n field = formatFieldTypeSearchText(field);\n break;\n case EFieldType.DROPDOWN_WITH_SEARCH:\n field = formatFieldTypeDropdownWithSearch(field);\n break;\n case EFieldType.API_CALL:\n field = formatFieldTypeApiCall(field);\n break;\n case EFieldType.OTP:\n field = formatFieldTypeOtp(field);\n break;\n case EFieldType.AADHAAR_NUMBER:\n field = formatFieldTypeAadhaarNumber(field);\n break;\n default:\n break;\n }\n\n return field;\n };\n\n const getConnectedElementTypeValueObject = (key: any): any => {\n const object = {\n key: key,\n conditions: { formula: \"\", rules: [] },\n actions: { success: [], failure: [] }\n };\n return object;\n };\n\n const formatFieldKeys = (field: any): any => {\n if (checkObjectKeyExists(field, \"connectedTo\")) {\n if (typeof field[\"connectedTo\"] === \"string\") {\n field[\"connectedElements\"] = [\n getConnectedElementTypeValueObject(field[\"connectedTo\"])\n ];\n } else {\n field[\"connectedTo\"] = field[\"connectedTo\"].map((key: string) => {\n return getConnectedElementTypeValueObject(key);\n });\n field[\"connectedElements\"] = field[\"connectedTo\"];\n }\n }\n this.removeFieldKey(field, \"connectedTo\");\n\n if (checkObjectKeyExists(field, \"connectedToParent\")) {\n if (typeof field[\"connectedToParent\"] === \"string\") {\n field[\"connectedParentFields\"] = [\n getConnectedElementTypeValueObject(field[\"connectedToParent\"])\n ];\n } else {\n field[\"connectedParentFields\"] = getConnectedElementTypeValueObject(\n field[\"connectedToParent\"]\n );\n }\n }\n this.removeFieldKey(field, \"connectedToParent\");\n\n this.removeFieldKey(field, \"sideEffect\");\n\n return field;\n };\n\n const updateFieldValidatorConfig = (field: any): any => {\n if (field.isFormElement) {\n const validators = checkObjectKeyExists(field, \"validators\")\n ? field.validators\n : {};\n\n field = this.setMissingFieldKeyValue(field, \"validators\", {});\n\n field = this.setFieldKeyValue(field, \"validators\", {\n ...field[\"validators\"],\n min: checkObjectKeyExists(validators, \"min\")\n ? isNotEmptyValue(validators.min)\n ? Number(validators.min)\n : null\n : checkObjectKeyExists(field, \"min\")\n ? Number(field.min)\n : null,\n max: checkObjectKeyExists(validators, \"max\")\n ? isNotEmptyValue(validators.max)\n ? Number(validators.max)\n : null\n : checkObjectKeyExists(field, \"max\")\n ? Number(field.max)\n : null,\n required: checkObjectKeyExists(validators, \"required\")\n ? Boolean(validators.required)\n : checkObjectKeyExists(field, \"required\")\n ? Boolean(field.required)\n : false,\n minLength: checkObjectKeyExists(validators, \"minLength\")\n ? isNotEmptyValue(validators.minLength)\n ? Number(validators.minLength)\n : null\n : checkObjectKeyExists(field, \"minLength\")\n ? Number(field.minLength)\n : null,\n maxLength: checkObjectKeyExists(validators, \"maxLength\")\n ? isNotEmptyValue(validators.maxLength)\n ? Number(validators.maxLength)\n : null\n : checkObjectKeyExists(field, \"length\")\n ? Number(field.length)\n : checkObjectKeyExists(field, \"maxLength\")\n ? Number(field.maxLength)\n : null,\n pattern: checkObjectKeyExists(validators, \"pattern\")\n ? isNotEmptyValue(validators.pattern)\n ? validators.pattern\n : undefined\n : checkObjectKeyExists(field, \"pattern\")\n ? { key: \"CUSTOM\", pattern: String(field.pattern) }\n : checkObjectKeyExists(field, \"regex\")\n ? { key: \"CUSTOM\", pattern: String(field.regex) }\n : undefined\n });\n\n delete field.min;\n delete field.max;\n delete field.required;\n delete field.minLength;\n delete field.length;\n delete field.maxLength;\n delete field.pattern;\n delete field.regex;\n\n switch (field.type) {\n case EFieldType.TEXT:\n delete field.validators.min;\n delete field.validators.max;\n break;\n case EFieldType.CHECKBOX:\n delete field.validators.min;\n delete field.validators.max;\n break;\n default:\n break;\n }\n\n if (isEmptyValue(field.validators?.min)) {\n delete field.validators.min;\n }\n if (isEmptyValue(field.validators?.max)) {\n delete field.validators.min;\n }\n if (isEmptyValue(field.validators?.minLength)) {\n delete field.validators.minLength;\n }\n if (isEmptyValue(field.validators?.maxLength)) {\n delete field.validators.maxLength;\n }\n if (isEmptyValue(field.validators?.pattern)) {\n delete field.validators.pattern;\n }\n\n field.focus = false;\n field.invalid = false;\n }\n\n return field;\n };\n\n const updateFieldDefaultValueConfig = (field: any): any => {\n if (field.isFormElement) {\n if (checkObjectKeyExists(field, \"defaultValue\")) {\n return field;\n } else if (checkObjectKeyExists(field, \"default\")) {\n return field;\n } else {\n if (checkObjectKeyExists(field, \"defaultVal\")) {\n // Currently below line is commented because it caused issues in setting Default Value.\n // field[\"defaultValue\"] = field[\"defaultVal\"];\n // delete field[\"defaultVal\"];\n }\n\n // TODO: Condition for all_forms_data is not considered yet.\n if (field.autoPopulateFromSummaryData) {\n field[\"defaultValue\"] = {\n is_found: false,\n value: \"\",\n sources: [\n {\n source: \"summary_data\",\n summary_data: {\n path: `$.${field.key}`,\n validation: {\n rules: [\n {\n key: \"1\",\n type: \"is_not_empty\",\n is_not_empty: {\n value: true\n }\n }\n ],\n actions: [\n {\n type: \"set_default_value_found\",\n condition: \"1\",\n set_default_value_found: {\n value: true\n }\n },\n {\n type: \"enable_field\",\n condition: \"1 OR NOT(1)\",\n enable_field: { value: true }\n }\n ]\n }\n }\n }\n ]\n };\n } else if (checkObjectKeyExists(field, \"autofill\")) {\n if (checkObjectKeyExists(field.autofill, \"type\")) {\n if (field.autofill.type === \"storage\") {\n field[\"defaultValue\"] = {\n is_found: false,\n value: \"\",\n sources: [\n {\n source: \"browser_storage\",\n browser_storage: {\n path: `$.${field.key}`,\n validation: {\n rules: [\n {\n key: \"1\",\n type: \"is_not_empty\",\n is_not_empty: {\n value: true\n }\n }\n ],\n actions: [\n {\n type: \"set_default_value_found\",\n condition: \"1\",\n set_default_value_found: {\n value: true\n }\n },\n {\n type: \"enable_field\",\n condition: \"1 OR NOT(1)\",\n enable_field: { value: true }\n }\n ]\n }\n }\n }\n ]\n };\n } else if (field.autofill.type === \"config\") {\n field[\"defaultValue\"] = {\n is_found: false,\n value: \"\",\n sources: [\n {\n source: \"field_config\",\n field_config: {\n path: `$.${field.key}`,\n validation: {\n rules: [\n {\n key: \"1\",\n type: \"is_not_empty\",\n is_not_empty: {\n value: true\n }\n }\n ],\n actions: [\n {\n type: \"set_default_value_found\",\n condition: \"1\",\n set_default_value_found: {\n value: true\n }\n },\n {\n type: \"enable_field\",\n condition: \"1 OR NOT(1)\",\n enable_field: { value: true }\n }\n ]\n }\n }\n }\n ]\n };\n }\n }\n } else {\n field[\"defaultValue\"] = {\n is_found: false,\n value: \"\",\n sources: [\n {\n source: \"form_data\",\n form_data: {\n path: `$.${field.key}`,\n validation: {\n rules: [\n {\n key: \"1\",\n type: \"is_not_empty\",\n is_not_empty: {\n value: true\n }\n }\n ],\n actions: [\n {\n type: \"set_default_value_found\",\n condition: \"1\",\n set_default_value_found: {\n value: true\n }\n },\n {\n type: \"enable_field\",\n condition: \"1 OR NOT(1)\",\n enable_field: { value: true }\n }\n ]\n }\n }\n }\n ]\n };\n }\n }\n\n delete field[\"defaultVal\"];\n }\n\n return field;\n };\n\n const updateFieldMessages = (field: any): any => {\n if (field.isFormElement) {\n field = this.setMissingFieldKeyValue(field, \"messages\", []);\n }\n\n return field;\n };\n\n const updateFieldResetButton = (field: any): any => {\n if (field.isFormElement) {\n if (\n checkObjectKeyExists(field, \"action\") &&\n field.action === \"reset\" &&\n checkObjectKeyExists(field, \"fields\")\n ) {\n field = this.setFieldKeyValue(field, \"reset\", {\n fields: field.fields\n });\n }\n }\n\n return field;\n };\n\n const setFormFields = (formConfig: any, fields: any[]): any => {\n if (checkObjectKeyExists(formConfig, \"multiForm\")) {\n formConfig.multiForm[\"fields\"] = fields;\n } else {\n formConfig[\"fields\"] = fields;\n }\n\n return formConfig;\n };\n\n const setFormFieldGroups = (formConfig: any, groups: any): any => {\n formConfig[\"fieldGroups\"] = groups;\n\n return formConfig;\n };\n\n const updateFormFieldGroups = (fieldGroups: any, field: any): any => {\n if (checkObjectKeyExists(field, \"groupKey\")) {\n if (checkObjectKeyExists(fieldGroups, field.groupKey)) {\n fieldGroups[field.groupKey].push(field.key);\n } else {\n fieldGroups[field.groupKey] = [field.key];\n }\n }\n\n return fieldGroups;\n };\n\n let fields: any[] = this.getFormFields(formConfig);\n\n let fieldGroups: any = {};\n\n for (let field of fields) {\n field = updateOnFieldType(field);\n\n console.log(\"FIELD\", field);\n field = formatFieldKeys(field);\n\n fieldGroups = updateFormFieldGroups(fieldGroups, field);\n\n field = updateFieldDefaultValueConfig(field);\n\n field = updateFieldValidatorConfig(field);\n\n field = updateFieldResetButton(field);\n\n field = updateFieldMessages(field);\n }\n\n formConfig = setFormFieldGroups(formConfig, fieldGroups);\n\n formConfig = setFormFields(formConfig, fields);\n\n return formConfig;\n }\n}\n","export enum EFormsListStatus {\n COMPLETED = \"completed\",\n EDITABLE = \"editable\",\n LOCKED = \"locked\"\n}\n\nexport type TFormsListStatus =\n | EFormsListStatus.COMPLETED\n | EFormsListStatus.EDITABLE\n | EFormsListStatus.LOCKED;\n","import { TAction, TSource } from \"kwikid-toolkit\";\nimport { TMessage } from \"./form-view.commons.definition\";\n\nexport enum EActionKey {\n SET_VALUE = \"SET_VALUE\",\n SET_FIELD_DEFAULT_VALUE = \"SET_FIELD_DEFAULT_VALUE\",\n FIELD_MESSAGE_SHOW = \"FIELD_MESSAGE_SHOW\",\n FIELD_MESSAGES_HIDE = \"FIELD_MESSAGES_HIDE\",\n FIELD_ERROR_SHOW = \"FIELD_ERROR_SHOW\",\n FIELD_ERROR_HIDE = \"FIELD_ERROR_HIDE\",\n FIELD_SHOW = \"FIELD_SHOW\",\n FIELD_HIDE = \"FIELD_HIDE\",\n FIELD_ENABLE = \"FIELD_ENABLE\",\n FIELD_DISABLE = \"FIELD_DISABLE\",\n FIELD_RESET = \"FIELD_RESET\",\n HANDLE_CONNECTED_ELEMENTS = \"HANDLE_CONNECTED_ELEMENTS\",\n CUSTOM = \"CUSTOM\",\n FIELD_GROUP_SHOW = \"FIELD_GROUP_SHOW\",\n FIELD_GROUP_HIDE = \"FIELD_GROUP_HIDE\",\n FIELD_GROUP_ENABLE = \"FIELD_GROUP_ENABLE\",\n FIELD_GROUP_DISABLE = \"FIELD_GROUP_DISABLE\",\n SET_DROPDOWN_OPTIONS = \"SET_DROPDOWN_OPTIONS\"\n}\n\nexport type TActionKey =\n | EActionKey.SET_VALUE\n | EActionKey.SET_FIELD_DEFAULT_VALUE\n | EActionKey.FIELD_MESSAGE_SHOW\n | EActionKey.FIELD_MESSAGES_HIDE\n | EActionKey.FIELD_ERROR_SHOW\n | EActionKey.FIELD_ERROR_HIDE\n | EActionKey.FIELD_SHOW\n | EActionKey.FIELD_HIDE\n | EActionKey.FIELD_ENABLE\n | EActionKey.FIELD_DISABLE\n | EActionKey.FIELD_RESET\n | EActionKey.HANDLE_CONNECTED_ELEMENTS\n | EActionKey.CUSTOM\n | EActionKey.FIELD_GROUP_SHOW\n | EActionKey.FIELD_GROUP_HIDE\n | EActionKey.FIELD_GROUP_ENABLE\n | EActionKey.FIELD_GROUP_DISABLE;\n\nexport type TActionSetValue = TAction & {\n key: EActionKey.SET_VALUE;\n props: {\n value: {\n source: TSource;\n destination: TSource;\n };\n };\n};\n\nexport type TActionSetFieldDefaultValue = TAction & {\n key: EActionKey.SET_FIELD_DEFAULT_VALUE;\n props: {\n fieldKey: string;\n source: TSource;\n };\n};\n\nexport type TActionFieldMessageShow = TAction & {\n key: EActionKey.FIELD_MESSAGE_SHOW;\n props: {\n fieldKey: string;\n message: TMessage;\n };\n};\n\nexport type TActionFieldMessageHide = TAction & {\n key: EActionKey.FIELD_MESSAGES_HIDE;\n props: {\n fieldKey: string;\n message: TMessage;\n };\n};\n\nexport type TActionFieldErrorShow = TAction & {\n key: EActionKey.FIELD_ERROR_SHOW;\n props: {\n fieldKey: string;\n message: TMessage;\n };\n};\n\nexport type IFieldErrorHide = TAction & {\n key: EActionKey.FIELD_ERROR_HIDE;\n props: {\n fieldKey: string;\n message: TMessage;\n };\n};\n\nexport type TActionFieldShow = TAction & {\n key: EActionKey.FIELD_SHOW;\n props: {\n fieldKey: string;\n };\n};\n\nexport type TActionFieldHide = TAction & {\n key: EActionKey.FIELD_HIDE;\n props: {\n fieldKey: string;\n };\n};\n\nexport type TActionFieldEnable = TAction & {\n key: EActionKey.FIELD_ENABLE;\n props: {\n fieldKey: string;\n };\n};\n\nexport type TActionFieldDisable = TAction & {\n key: EActionKey.FIELD_DISABLE;\n props: {\n fieldKey: string;\n };\n};\n\nexport type TActionFieldReset = TAction & {\n key: EActionKey.FIELD_RESET;\n props: {\n fieldKey: string;\n };\n};\n\nexport type TActionHandleConnectedElement = TAction & {\n key: EActionKey.HANDLE_CONNECTED_ELEMENTS;\n props: {\n fieldKey: string;\n };\n};\n","import { TSource, TValidation } from \"kwikid-toolkit\";\n\nexport enum EApiStatusType {\n DEFAULT = \"default\",\n LOADING = \"loading\",\n SUCCESS = \"success\",\n FAILED = \"failed\"\n}\n\nexport type TApiRequestBodyParam = {\n key: string;\n sources: Array<TSource>;\n value: any;\n};\n\nexport type TApiRequestBody = {\n value: any;\n params: Array<TApiRequestBodyParam>;\n validation: TValidation;\n};\n\nexport type TApiRequestHeadersParam = {\n key: string;\n sources: Array<TSource>;\n value: any;\n};\n\nexport type TApiRequestHeaders = {\n value: any;\n params: Array<any>;\n validation: TValidation;\n};\n\nexport type TApiRequest = {\n url: string | any;\n method?: string;\n headers?: TApiRequestHeaders;\n body: TApiRequestBody;\n};\n\nexport type TApiResponseBody = any;\n\nexport type TApiResponse = {\n is_valid: boolean;\n body: TApiResponseBody;\n validation: TValidation;\n};\n\nexport type TApiStatusType =\n | EApiStatusType.DEFAULT\n | EApiStatusType.LOADING\n | EApiStatusType.SUCCESS\n | EApiStatusType.FAILED;\n\nexport type TApiStatus = {\n value: TApiStatusType;\n labels: {\n default: EApiStatusType.DEFAULT;\n loading: EApiStatusType.LOADING;\n success: EApiStatusType.SUCCESS;\n failed: EApiStatusType.FAILED;\n };\n};\n\nexport type TApi = {\n request: TApiRequest;\n response: TApiResponse;\n status: TApiStatus;\n};\n","export enum EMessageType {\n DEFAULT = \"default\",\n ERROR = \"error\",\n SUCCESS = \"success\",\n WARNING = \"warning\"\n}\nexport type TMessageType =\n | EMessageType.DEFAULT\n | EMessageType.ERROR\n | EMessageType.SUCCESS\n | EMessageType.WARNING;\n\nexport type TMessage = {\n message: string;\n type: TMessageType;\n};\n","import {\n Action,\n Condition,\n isEmptyValue,\n logMethod,\n Rule,\n setValueToObjectPath,\n Source,\n TAction,\n TRule,\n TValidation\n} from \"kwikid-toolkit\";\nimport { TField } from \"../definitions/form-view.fields.definition\";\nimport { TTrigger } from \"../definitions/form-view.triggers.definition\";\nimport { convertFormFieldEmptyValueToKwikUIFormat } from \"./form-view.fields.helper\";\n\nexport class Defaults {\n private _allFormsData: any;\n private _field: TField;\n private _formFields: any[];\n private _formData: any;\n private _previousFormData: any;\n private _takeAction: Function;\n\n constructor(\n field: TField,\n formFields: any[],\n allFormsData: any,\n formData: any,\n previousFormData: any,\n takeAction: Function\n ) {\n this._field = field;\n this._formFields = formFields;\n this._allFormsData = allFormsData;\n this._formData = formData;\n this._previousFormData = previousFormData;\n this._takeAction = takeAction;\n }\n\n @logMethod\n async getFormFieldValue() {\n let defaultValue: any;\n\n const sources = this._field.default.value.sources;\n\n let sourceIndex = 0;\n for (let source of sources) {\n const sources = new Source({\n FIELD_CONFIG: this._field,\n FORM_FIELDS: this._formFields,\n FORM_DATA: this._formData,\n PREVIOUS_FORM_DATA: this._previousFormData,\n ALL_FORMS_DATA: this._allFormsData\n });\n const value = sources.getValueFromSource(source);\n\n // Set the Value of current source.\n this._field = setValueToObjectPath(\n this._field,\n `default.value.sources.[${sourceIndex}].value`,\n value\n );\n\n const validation: TValidation = (source as any).validation;\n\n const triggers: Array<TTrigger> = validation.triggers;\n const rules: Array<TRule> = validation.rules;\n const actions: Array<TAction> = validation.actions;\n\n const rulesMapping = new Rule(rules, {\n FIELD_CONFIG: this._field,\n FORM_FIELDS: this._formFields,\n FORM_DATA: this._formData,\n PREVIOUS_FORM_DATA: this._previousFormData,\n ALL_FORMS_DATA: this._allFormsData\n }).mapping();\n\n for (let action of actions) {\n const conditionEvaluation = new Condition(\n action.condition,\n rulesMapping\n ).evaluate();\n\n if (conditionEvaluation) {\n const actions = new Action(\n action,\n rulesMapping,\n {\n FIELD_CONFIG: this._field,\n FORM_FIELDS: this._formFields,\n FORM_DATA: this._formData,\n PREVIOUS_FORM_DATA: this._previousFormData,\n ALL_FORMS_DATA: this._allFormsData\n },\n this._takeAction\n );\n\n await actions.execute();\n }\n }\n\n sourceIndex++;\n }\n\n defaultValue = this._field.default.value.value;\n\n if (isEmptyValue(defaultValue)) {\n defaultValue = convertFormFieldEmptyValueToKwikUIFormat(this._field);\n }\n\n return defaultValue;\n }\n\n @logMethod\n async getFormFieldOptions() {\n const optionsConfig = this._field.default.options;\n\n const rules = optionsConfig.rules;\n const actions = optionsConfig.actions;\n\n const rulesMapping = new Rule(rules, {\n FIELD_CONFIG: this._field,\n FORM_FIELDS: this._formFields,\n FORM_DATA: this._formData,\n PREVIOUS_FORM_DATA: this._previousFormData,\n ALL_FORMS_DATA: this._allFormsData\n }).mapping();\n\n for (let action of actions) {\n const conditionEvaluation = new Condition(\n action.condition,\n rulesMapping\n ).evaluate();\n\n if (conditionEvaluation) {\n const actions = new Action(\n action,\n rulesMapping,\n {\n FIELD_CONFIG: this._field,\n FORM_FIELDS: this._formFields,\n FORM_DATA: this._formData,\n PREVIOUS_FORM_DATA: this._previousFormData,\n ALL_FORMS_DATA: this._allFormsData\n },\n this._takeAction\n );\n\n await actions.execute();\n }\n }\n }\n}\n","import {\n FormArray,\n FormGroup,\n ValidationErrors,\n Validators\n} from \"@angular/forms\";\nimport {\n checkObjectKeyExists,\n isNotEmptyValue,\n logMethod,\n PATTERNS\n} from \"kwikid-toolkit\";\n\nexport class FormValidation {\n constructor() {}\n\n @logMethod\n getFormFieldValidators(field: any) {\n let validators = [];\n\n if (\n checkObjectKeyExists(field, \"validators\") &&\n checkObjectKeyExists(field.validators, \"min\") &&\n isNotEmptyValue(field.validators.min)\n ) {\n validators.push(Validators.min(field.validators.min));\n }\n if (\n checkObjectKeyExists(field, \"validators\") &&\n checkObjectKeyExists(field.validators, \"max\") &&\n isNotEmptyValue(field.validators.max)\n ) {\n validators.push(Validators.max(field.validators.max));\n }\n if (\n (checkObjectKeyExists(field, \"required\") && field.required) ||\n (checkObjectKeyExists(field, \"validators\") &&\n checkObjectKeyExists(field.validators, \"required\") &&\n field.validators.required)\n ) {\n validators.push(Validators.required);\n }\n if (\n checkObjectKeyExists(field, \"validators\") &&\n checkObjectKeyExists(field.validators, \"minLength\") &&\n isNotEmptyValue(field.validators.minLength)\n ) {\n validators.push(Validators.minLength(field.validators.minLength));\n }\n if (\n checkObjectKeyExists(field, \"validators\") &&\n checkObjectKeyExists(field.validators, \"maxLength\") &&\n isNotEmptyValue(field.validators.maxLength)\n ) {\n validators.push(Validators.maxLength(field.validators.maxLength));\n }\n if (\n checkObjectKeyExists(field, \"validators\") &&\n checkObjectKeyExists(field.validators, \"pattern\") &&\n isNotEmptyValue(field.validators.pattern)\n ) {\n if (checkObjectKeyExists(field.validators.pattern, \"key\")) {\n if (field.validators.pattern.key === \"CUSTOM\") {\n validators.push(Validators.pattern(field.validators.pattern.pattern));\n } else {\n validators.push(\n Validators.pattern(PATTERNS[field.validators.pattern.key])\n );\n }\n }\n }\n\n return validators;\n }\n\n @logMethod\n getFormFieldsValidationErrors(\n formGroup: FormGroup\n ): { name: string; value: string }[] {\n let errors: { name: string; value: string }[] = [];\n\n for (const key in formGroup.controls) {\n const controlErrors: ValidationErrors = formGroup.controls[key].errors;\n if (controlErrors !== null && controlErrors !== undefined) {\n Object.keys(controlErrors).forEach((keyError) => {\n errors.push({\n name: keyError,\n value: controlErrors[keyError]\n });\n });\n }\n }\n\n return errors;\n }\n\n @logMethod\n getFormFieldsInvalidControls(formToInvestigate: FormGroup | FormArray) {\n var controls: any[] = [];\n\n let recursiveFunc = (form: FormGroup | FormArray) => {\n Object.keys(form.controls).forEach((field: any) => {\n const control = form.get(field);\n if (control.invalid) {\n controls.push({\n key: field,\n invalid: true\n });\n } else {\n controls.push({\n key: field,\n invalid: false\n });\n }\n if (control instanceof FormGroup) {\n recursiveFunc(control);\n } else if (control instanceof FormArray) {\n recursiveFunc(control);\n }\n });\n };\n\n recursiveFunc(formToInvestigate);\n\n return controls;\n }\n}\n","import { FormControl, FormGroup } from \"@angular/forms\";\nimport { checkObjectKeyExists, logMethod } from \"kwikid-toolkit\";\nimport { Defaults } from \"./helpers/form-view.defaults.helper\";\nimport { convertFormFieldValueToKwikUIFormat } from \"./helpers/form-view.fields.helper\";\nimport { FormValidation } from \"./helpers/form-view.form-validations.helper\";\n\nexport class KwikIDFormViewService {\n constructor() {}\n\n // 'init' stage of the form\n @logMethod\n async createFormGroup(\n fields: any,\n formData: any,\n previousFormData: any,\n allFormsData: any,\n takeAction: Function\n ) {\n let formGroup = new FormGroup({});\n\n for (let field of fields) {\n if (field.isFormElement) {\n const defaults = new Defaults(\n field,\n fields,\n allFormsData,\n formData,\n previousFormData,\n takeAction\n );\n let value = await defaults.getFormFieldValue();\n\n if (checkObjectKeyExists(field, \"default\")) {\n if (checkObjectKeyExists(field.default, \"options\")) {\n if (field.default.options.triggers.includes(\"ON_INIT\")) {\n await defaults.getFormFieldOptions();\n }\n }\n }\n\n value = convertFormFieldValueToKwikUIFormat(field, value);\n\n const validators = new FormValidation().getFormFieldValidators(field);\n\n formGroup.addControl(\n field.key,\n new FormControl(\n { value: value, disabled: field.disabled },\n { validators: validators }\n )\n );\n }\n }\n\n return formGroup;\n }\n}\n","import {\n Action,\n checkObjectKeyExists,\n Condition,\n logMethod,\n Rule,\n setValueToObjectPath,\n Source,\n TAction,\n TRule,\n TSource,\n TValidation\n} from \"kwikid-toolkit\";\nimport {\n TApi,\n TApiRequest,\n TApiRequestBody,\n TApiRequestBodyParam,\n TApiRequestHeaders,\n TApiRequestHeadersParam,\n TApiResponse,\n TApiStatus\n} from \"../definitions/form-view.apis.definition\";\nimport { TFieldApiCall } from \"../definitions/form-view.fields.definition\";\nimport { TTrigger } from \"../definitions/form-view.triggers.definition\";\n\nexport class Apis {\n private _object: any;\n get object(): any {\n return this._object;\n }\n set object(value: any) {\n this._object = value;\n }\n\n private _takeAction: Function;\n\n private _api: TApi;\n private _request: TApiRequest;\n private _response: TApiResponse;\n private _status: TApiStatus;\n\n constructor(object: any, takeAction: any) {\n this._object = object;\n this._takeAction = takeAction;\n\n this._api = this._object.FIELD_CONFIG.api;\n this._request = this._object.FIELD_CONFIG.api.request;\n this._response = this._object.FIELD_CONFIG.api.response;\n this._status = this._object.FIELD_CONFIG.api.status;\n }\n\n @logMethod\n public async setRequestBody(): Promise<TFieldApiCall> {\n let params: Array<TApiRequestBodyParam> = this._request.body.params;\n\n let paramIndex = 0;\n for (let param of params) {\n let sources: Array<TSource> = param.sources;\n\n let sourceIndex = 0;\n for (let source of sources) {\n const sources = new Source(this._object);\n\n const value = sources.getValueFromSource(source);\n // Set the Value of current source.\n this._object.FIELD_CONFIG = setValueToObjectPath(\n this._object.FIELD_CONFIG,\n `api.request.body.params[${paramIndex}].sources[${sourceIndex}].value`,\n value\n );\n\n const validation: TValidation = (source as any).validation;\n\n const triggers: Array<TTrigger> = validation?.triggers ?? [];\n const rules: Array<TRule> = validation?.rules ?? [];\n const actions: Array<TAction> = (validation as any)?.actions ?? [];\n\n const rulesMapping = new Rule(rules, this._object).mapping();\n\n for (let action of actions) {\n const conditionEvaluation = new Condition(\n action.condition,\n rulesMapping\n ).evaluate();\n\n if (conditionEvaluation) {\n const actions = new Action(\n action,\n rulesMapping,\n this._object,\n this._takeAction\n );\n\n await actions.execute();\n }\n }\n\n sourceIndex++;\n }\n\n paramIndex++;\n }\n\n return this._object.FIELD_CONFIG;\n }\n\n @logMethod\n public async validateRequestBody(): Promise<TFieldApiCall> {\n const body: TApiRequestBody = this._request.body;\n\n const validation: TValidation = body.validation;\n\n const triggers: Array<TTrigger> = validation.triggers;\n const rules: Array<TRule> = validation.rules;\n const actions: Array<TAction> = (validation as any)?.actions;\n\n const rulesMapping = new Rule(rules, this._object).mapping();\n\n for (let action of actions) {\n const conditionSuccess = new Condition(\n action.condition,\n rulesMapping\n ).evaluate();\n\n if (conditionSuccess) {\n const actions = new Action(\n action,\n rulesMapping,\n this._object,\n this._takeAction\n );\n\n await actions.execute();\n }\n }\n\n return this._object.FIELD_CONFIG;\n }\n\n @logMethod\n public async setRequestHeaders(): Promise<TFieldApiCall> {\n if (checkObjectKeyExists(this._request, \"headers\")) {\n if (checkObjectKeyExists(this._request.headers, \"params\")) {\n let params: Array<TApiRequestHeadersParam> =\n this._request.headers.params;\n let paramIndex = 0;\n for (let param of params) {\n let sources: Array<TSource> = param.sources;\n\n let sourceIndex = 0;\n for (let source of sources) {\n const sources = new Source(this._object);\n\n const value = sources.getValueFromSource(source);\n // Set the Value of current source.\n this._object.FIELD_CONFIG = setValueToObjectPath(\n this._object.FIELD_CONFIG,\n `api.request.headers.params[${paramIndex}].sources[${sourceIndex}].value`,\n value\n );\n\n const validation: TValidation = (source as any).validation;\n\n const triggers: Array<TTrigger> = validation?.triggers ?? [];\n const rules: Array<TRule> = validation?.rules ?? [];\n const actions: Array<TAction> = (validation as any)?.actions ?? [];\n\n const rulesMapping = new Rule(rules, this._object).mapping();\n\n for (let action of actions) {\n const conditionEvaluation = new Condition(\n action.condition,\n rulesMapping\n ).evaluate();\n\n if (conditionEvaluation) {\n const actions = new Action(\n action,\n rulesMapping,\n this._object,\n this._takeAction\n );\n\n await actions.execute();\n }\n }\n\n sourceIndex++;\n }\n\n paramIndex++;\n }\n\n return this._object.FIELD_CONFIG;\n } else {\n return this._object.FIELD_CONFIG;\n }\n } else {\n return this._object.FIELD_CONFIG;\n }\n }\n\n @logMethod\n public async validateRequestHeaders(): Promise<TFieldApiCall> {\n const headers: TApiRequestHeaders = this._request.headers;\n if (checkObjectKeyExists(this._request, \"headers\")) {\n if (checkObjectKeyExists(this._request.headers, \"validation\")) {\n const validation: TValidation = headers.validation;\n\n const triggers: Array<TTrigger> = validation.triggers;\n const rules: Array<TRule> = validation.rules;\n const actions: Array<TAction> = (validation as any)?.actions;\n\n const rulesMapping = new Rule(rules, this._object).mapping();\n\n for (let action of actions) {\n const conditionSuccess = new Condition(\n action.condition,\n rulesMapping\n ).evaluate();\n\n if (conditionSuccess) {\n const actions = new Action(\n action,\n rulesMapping,\n this._object,\n this._takeAction\n );\n\n await actions.execute();\n }\n }\n return this._object.FIELD_CONFIG;\n } else {\n return this._object.FIELD_CONFIG;\n }\n } else {\n return this._object.FIELD_CONFIG;\n }\n }\n\n @logMethod\n public async validateResponse(): Promise<TFieldApiCall> {\n const validation: TValidation = this._response.validation;\n\n const triggers: Array<TTrigger> = validation.triggers;\n const rules: Array<TRule> = validation.rules;\n const actions: Array<TAction> = (validation as any).actions;\n\n const rulesMapping = new Rule(rules, this._object).mapping();\n\n for (let action of actions) {\n const conditionSuccess = new Condition(\n action.condition,\n rulesMapping\n ).evaluate();\n\n if (conditionSuccess) {\n const actions = new Action(\n action,\n rulesMapping,\n this._object,\n this._takeAction\n );\n\n await actions.execute();\n }\n }\n\n return this._object.FIELD_CONFIG;\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { DomSanitizer } from \"@angular/platform-browser\";\n\n/**\n * Generated class for the SafeHtmlPipe pipe.\n *\n * See https://angular.io/api/core/Pipe for more info on Angular Pipes.\n */\n@Pipe({\n name: \"safeHtml\"\n})\nexport class SafeHtmlPipe implements PipeTransform {\n constructor(private sanitizer: DomSanitizer) {}\n\n transform(html) {\n return this.sanitizer.bypassSecurityTrustHtml(html);\n }\n}\n","import {\n AfterViewInit,\n Component,\n EventEmitter,\n Inject,\n Input,\n OnInit,\n Output,\n SimpleChanges\n} from \"@angular/core\";\nimport { FormGroup } from \"@angular/forms\";\nimport { TuiAlertService } from \"@taiga-ui/core\";\nimport { TuiPushService } from \"@taiga-ui/kit\";\nimport {\n Action,\n checkObjectKeyExists,\n Condition,\n ESourceKey,\n getObjectValueFromPath,\n isEmptyValue,\n isNotEmptyValue,\n isUndefined,\n logMethod,\n replaceString,\n Rule,\n Source,\n TAction,\n TValidation,\n Validation\n} from \"kwikid-toolkit\";\nimport { pairwise } from \"rxjs/operators\";\nimport { Converter } from \"../config-converter.helper\";\nimport { EFormsListStatus } from \"../forms-list/forms-list.definitions\";\nimport { EActionKey } from \"./definitions/form-view.actions.definition\";\nimport { EApiStatusType } from \"./definitions/form-view.apis.definition\";\nimport {\n EMessageType,\n TMessage\n} from \"./definitions/form-view.commons.definition\";\nimport {\n TFieldApiCall,\n TFieldTitle\n} from \"./definitions/form-view.fields.definition\";\nimport { KwikIDFormViewService } from \"./form-view.service\";\nimport { Apis } from \"./helpers/form-view.apis.helper\";\nimport {\n appendFormFieldMessage,\n convertFormFieldEmptyValueToKwikUIFormat,\n convertFormFieldValueToStandardFormat,\n getFormFieldByKey,\n getFormFieldIndexByKey,\n highlightFormFieldError,\n removeFormFieldMessage,\n showFormFieldError\n} from \"./helpers/form-view.fields.helper\";\nimport { FormValidation } from \"./helpers/form-view.form-validations.helper\";\n\n@Component({\n selector: \"kwikid-form-view\",\n templateUrl: \"./form-view.component.html\",\n styleUrls: [\"./form-view.component.scss\"],\n providers: [KwikIDFormViewService]\n})\nexport class KwikIDFormViewComponent implements OnInit, AfterViewInit {\n @Input()\n formConfig: any;\n\n @Input()\n formData: any;\n\n @Input()\n isMobileView: boolean = false;\n\n @Input()\n allFormsData: any;\n\n @Output()\n onClickViewForms: EventEmitter<any> = new EventEmitter<any>();\n\n @Output()\n onClickSaveForm: EventEmitter<any> = new EventEmitter<any>();\n\n @Output()\n onClickApiCall: EventEmitter<any> = new EventEmitter<any>();\n\n fieldGroups: any = {};\n formFields: any[] = [];\n previousFormData: any = {};\n\n loading: boolean = true;\n viewFormsButton = {\n disabled: false,\n showLoader: false\n };\n saveFormButton = {\n disabled: false,\n showLoader: false\n };\n\n formGroup: FormGroup = new FormGroup({});\n\n constructor(\n @Inject(TuiPushService) protected readonly push: TuiPushService,\n @Inject(TuiAlertService) protected readonly alert: TuiAlertService,\n private formViewService: KwikIDFormViewService\n ) {}\n\n @logMethod\n ngOnInit(): void {\n (async () => {\n await this.initFormConfig(this.formConfig);\n\n this.loading = false;\n })();\n }\n\n @logMethod\n ngAfterViewInit(): void {}\n\n @logMethod\n ngOnChanges(changes: SimpleChanges): void {\n const verifyChange = (key: string) => {\n return checkObjectKeyExists(changes, key) && !changes[key].firstChange;\n };\n if (verifyChange(\"formData\")) {\n this.formData = {\n ...this.formData,\n ...changes.formData.currentValue\n };\n }\n if (verifyChange(\"isMobileView\")) {\n this.isMobileView = changes.isMobileView.currentValue;\n }\n if (verifyChange(\"allFormsData\")) {\n this.allFormsData = changes.allFormsData.currentValue;\n }\n if (verifyChange(\"formConfig\")) {\n this.formConfig = changes.formConfig.currentValue;\n\n (async () => {\n await this.initFormConfig(this.formConfig);\n })();\n }\n }\n\n @logMethod\n async initFormConfig(formConfig: any) {\n formConfig = new Converter().convertFormConfig(formConfig);\n\n formConfig = new Converter().updateFormConfigProperties(formConfig);\n\n this.setFormFieldsFromFormConfig(formConfig);\n\n this.setFormFieldGroupsFromFormConfig(formConfig);\n\n this.setFormDataFromAllFormsData();\n\n this.formGroup = await this.formViewService.createFormGroup(\n this.formFields,\n this.formData,\n this.previousFormData,\n this.allFormsData,\n this.takeAction.bind(this)\n );\n\n for (let field of this.formFields) {\n if (field.isFormElement) {\n this.previousFormData = {\n ...this.previousFormData,\n [field.key]: this.formGroup.controls[field.key].value\n };\n\n this.formData = {\n ...this.formData,\n [field.key]: this.formGroup.controls[field.key].value\n };\n\n this.formGroup.controls[field.key].valueChanges\n .pipe(pairwise())\n .subscribe(([previousValue, currentValue]) => {\n this.previousFormData = {\n ...this.previousFormData,\n [field.key]: convertFormFieldValueToStandardFormat(\n field,\n previousValue\n )\n };\n\n this.formData = {\n ...this.formData,\n [field.key]: convertFormFieldValueToStandardFormat(\n field,\n currentValue\n )\n };\n });\n }\n }\n\n for (let field of this.formFields) {\n if (field.isFormElement) {\n if (checkObjectKeyExists(field, \"validation\")) {\n if (field.validation.triggers.includes(\"ON_INIT\")) {\n const validations = new Validation(\n {\n FIELD_CONFIG: field,\n FORM_FIELDS: this.formFields,\n FORM_DATA: this.formData,\n PREVIOUS_FORM_DATA: this.previousFormData,\n ALL_FORMS_DATA: this.allFormsData\n },\n this.takeAction.bind(this)\n );\n\n await validations.validate(field.validation);\n }\n }\n\n if (checkObjectKeyExists(field, \"connectedElements\")) {\n this.handleConnectedElements(\n {\n key: field.key,\n value: this.formGroup.controls[field.key].value\n },\n \"ON_INIT\"\n );\n }\n }\n }\n }\n\n @logMethod\n setFormFieldsFromFormConfig(formConfig: any) {\n if (checkObjectKeyExists(formConfig, \"fields\")) {\n this.formFields = formConfig.fields;\n } else if (\n checkObjectKeyExists(formConfig, \"multiForm\") &&\n checkObjectKeyExists(formConfig.multiForm, \"fields\")\n ) {\n this.formFields = formConfig.multiForm.fields;\n }\n }\n\n @logMethod\n setFormFieldGroupsFromFormConfig(formConfig: any) {\n this.fieldGroups = formConfig.fieldGroups;\n }\n\n @logMethod\n setFormDataFromAllFormsData() {\n if (checkObjectKeyExists(this.allFormsData, this.formConfig.key)) {\n this.formData = this.allFormsData[this.formConfig.key];\n } else {\n this.formData = {};\n }\n }\n\n @logMethod\n async handleConnectedElementFieldGroupActions(\n childFieldGroupConfig: any,\n parentField: any\n ) {\n if (checkObjectKeyExists(childFieldGroupConfig, \"rules\")) {\n const rulesMapping = new Rule(childFieldGroupConfig.rules, {\n FIELD_CONFIG: parentField,\n FORM_DATA: this.formData,\n PREVIOUS_FORM_DATA: this.previousFormData,\n ALL_FORMS_DATA: this.allFormsData\n }).mapping();\n\n for (let action of childFieldGroupConfig.actions) {\n const conditionSuccess = new Condition(\n action.condition,\n rulesMapping\n ).evaluate();\n\n if (conditionSuccess) {\n const actions = new Action(\n action,\n rulesMapping,\n {\n FIELD_CONFIG: parentField,\n FORM_FIELDS: this.formFields,\n FORM_DATA: this.formData,\n PREVIOUS_FORM_DATA: this.previousFormData,\n ALL_FORMS_DATA: this.allFormsData\n },\n this.takeActionOnFieldGroup.bind(this)\n );\n\n await actions.execute();\n }\n }\n }\n }\n\n @logMethod\n async handleConnectedElementFieldGroup(\n currentField: any,\n connectedFieldGroupConfig: any,\n eventType: string\n ) {\n if (checkObjectKeyExists(connectedFieldGroupConfig, \"triggers\")) {\n if (connectedFieldGroupConfig.triggers.includes(eventType)) {\n await this.handleConnectedElementFieldGroupActions(\n connectedFieldGroupConfig,\n currentField\n );\n }\n }\n }\n\n @logMethod\n async handleConnectedElementFieldActions(\n connectedFieldConfig: any,\n connectedField: any\n ) {\n if (checkObjectKeyExists(connectedFieldConfig, \"rules\")) {\n const rulesMapping = new Rule(connectedFieldConfig.rules, {\n FIELD_CONFIG: connectedField,\n FORM_DATA: this.formData,\n PREVIOUS_FORM_DATA: this.previousFormData,\n ALL_FORMS_DATA: this.allFormsData\n }).mapping();\n\n for (let action of connectedFieldConfig.actions) {\n const conditionSuccess = new Condition(\n action.condition,\n rulesMapping\n ).evaluate();\n\n if (conditionSuccess) {\n const actions = new Action(\n action,\n rulesMapping,\n {\n FORM_FIELDS: this.formFields,\n FIELD_CONFIG: connectedField,\n FORM_DATA: this.formData,\n PREVIOUS_FORM_DATA: this.previousFormData,\n ALL_FORMS_DATA: this.allFormsData\n },\n this.takeAction.bind(this)\n );\n\n await actions.execute();\n }\n }\n }\n\n return connectedField;\n }\n\n @logMethod\n async handleConnectedElementFields(\n currentField: any,\n connectedFieldConfig: any,\n eventType: string,\n nested: string\n ) {\n let connectedField = getFormFieldByKey(\n this.formFields,\n connectedFieldConfig[\"key\"]\n );\n\n if (checkObjectKeyExists(connectedFieldConfig, \"triggers\")) {\n if (connectedFieldConfig.triggers.includes(eventType)) {\n connectedField = await this.handleConnectedElementFieldActions(\n connectedFieldConfig,\n connectedField\n );\n }\n }\n if (checkObjectKeyExists(connectedFieldConfig, \"handleNestedFields\")) {\n if (connectedFieldConfig.handleNestedFields) {\n this.handleConnectedElements(\n { key: connectedFieldConfig.key },\n eventType\n );\n }\n }\n return currentField;\n }\n\n @logMethod\n async handleConnectedElements(e: any, eventType: string) {\n let currentField = getFormFieldByKey(this.formFields, e.key);\n\n if (currentField !== undefined) {\n if (checkObjectKeyExists(currentField, \"connectedElements\")) {\n if (\n checkObjectKeyExists(\n currentField.connectedElements,\n \"connectedFieldGroups\"\n )\n ) {\n let connectedFieldGroups =\n currentField.connectedElements.connectedFieldGroups;\n for (let connectedFieldGroupConfig of connectedFieldGroups) {\n await this.handleConnectedElementFieldGroup(\n currentField,\n connectedFieldGroupConfig,\n eventType\n );\n }\n }\n if (\n checkObjectKeyExists(\n currentField.connectedElements,\n \"connectedFields\"\n )\n ) {\n let connectedFields = currentField.connectedElements.connectedFields;\n for (let connectedFieldConfig of connectedFields) {\n currentField = await this.handleConnectedElementFields(\n currentField,\n connectedFieldConfig,\n eventType,\n eventType\n );\n }\n }\n }\n } else {\n throw new Error(\n `Field for the given key ['${e.key}'] is not found with eventType: '${eventType}'.`\n );\n }\n }\n\n // DOM Event Handlers\n @logMethod\n handleGetKeyValue(e: any) {\n this.formGroup.patchValue(\n {\n [e.key]: e.value\n },\n { emitEvent: false }\n );\n\n const field = getFormFieldByKey(this.formFields, e.key);\n this.formData[e.key] = convertFormFieldValueToStandardFormat(\n field,\n e.value\n );\n\n if (\n field.isFormElement &&\n checkObjectKeyExists(field, \"validation\") &&\n field.validation.triggers.includes(\"ON_CHANGE\")\n ) {\n const validations = new Validation(\n {\n FIELD_CONFIG: field,\n FORM_FIELDS: this.formFields,\n FORM_DATA: this.formData,\n PREVIOUS_FORM_DATA: this.previousFormData,\n ALL_FORMS_DATA: this.allFormsData\n },\n this.takeAction.bind(this)\n );\n\n (async () => {\n await validations.validate(field.validation);\n })();\n }\n\n if (\n field.isFormElement &&\n checkObjectKeyExists(field, \"connectedElements\")\n ) {\n this.handleConnectedElements(\n {\n key: field.key,\n value: this.formGroup.controls[field.key].value\n },\n \"ON_CHANGE\"\n );\n }\n }\n\n @logMethod\n async handleOnClickResetFormFields(e: any, field: TFieldTitle) {\n for (let f of field.reset.fields) {\n for (let action of f.actions) {\n const resetField = getFormFieldByKey(\n this.formFields,\n action.props.fieldKey\n );\n const actions = new Action(\n action,\n {},\n {\n FIELD_CONFIG: resetField,\n FORM_FIELDS: this.formFields,\n FORM_DATA: this.formData,\n PREVIOUS_FORM_DATA: this.previousFormData,\n ALL_FORMS_DATA: this.allFormsData\n },\n this.takeAction.bind(this)\n );\n await actions.execute();\n }\n }\n }\n\n @logMethod\n async handleOnClickApiCall(e: any) {\n let field: TFieldApiCall = getFormFieldByKey(this.formFields, e.key);\n\n if (field.type === \"api-call\") {\n // set button status to loading\n field[\"api\"][\"status\"][\"value\"] = EApiStatusType.LOADING;\n field[\"showLoader\"] = true;\n this.viewFormsButton[\"disabled\"] = true;\n this.viewFormsButton[\"showLoader\"] = true;\n this.saveFormButton[\"disabled\"] = true;\n this.saveFormButton[\"showLoader\"] = true;\n\n const apis = new Apis(\n {\n FIELD_CONFIG: field,\n FORM_FIELDS: this.formFields,\n FORM_DATA: this.formData,\n PREVIOUS_FORM_DATA: this.previousFormData,\n ALL_FORMS_DATA: this.allFormsData\n },\n this.takeAction.bind(this)\n );\n\n field = await apis.setRequestHeaders();\n\n field = await apis.validateRequestHeaders();\n\n field = await apis.setRequestBody();\n\n field = await apis.validateRequestBody();\n\n if (\n (\n field.api.request.body.validation as TValidation & {\n is_valid: boolean;\n }\n ).is_valid\n ) {\n // Call API Here\n let apiCallResponse: any = undefined;\n if (\n field.api.request.url.hasOwnProperty(\"type\") &&\n field.api.request.url.type === \"MOCK\"\n ) {\n apiCallResponse = field.api.request.url.data;\n } else {\n const url = field.api.request.url;\n const method = field.api.request?.method ?? \"POST\";\n const headers = {\n \"Content-Type\": \"application/json\",\n ...(field.api.request?.headers?.value || {})\n };\n const body = field.api.request?.body?.value ?? null;\n const response = await fetch(url, {\n method: method,\n headers: { ...headers },\n body: JSON.stringify(body)\n });\n apiCallResponse = await response.json();\n }\n\n this.formData = {\n ...this.formData,\n [field.key]: apiCallResponse\n };\n\n this.formGroup.patchValue(\n {\n [field.key]: apiCallResponse\n },\n { emitEvent: false }\n );\n\n const apis = new Apis(\n {\n FIELD_CONFIG: field,\n FORM_FIELDS: this.formFields,\n FORM_DATA: this.formData,\n PREVIOUS_FORM_DATA: this.previousFormData,\n ALL_FORMS_DATA: this.allFormsData\n },\n this.takeAction.bind(this)\n );\n\n (async () => {\n field = await apis.validateResponse();\n })();\n } else {\n // Request Body Validation Failed\n // Highlight Error in UI to User to Retry After Sometime.\n // Take Action based on Validation\n setTimeout(() => {\n field[\"api\"][\"status\"][\"value\"] = EApiStatusType.FAILED;\n field[\"showLoader\"] = false;\n }, 500);\n }\n\n this.viewFormsButton[\"disabled\"] = false;\n this.viewFormsButton[\"showLoader\"] = false;\n this.saveFormButton[\"disabled\"] = false;\n this.saveFormButton[\"showLoader\"] = false;\n }\n }\n\n /**\n * Method to optimize the DOM update by Angular for using *ngFor on large no. of items.\n * @param index number\n * @param item fieldConfig\n * @returns string\n */\n getUniqueIdentifier(index: number, item: any): string {\n return item.key;\n }\n\n @logMethod\n handleOnClickViewForms(e: any) {\n if (this.formConfig.status === EFormsListStatus.COMPLETED) {\n this.onClickViewForms.emit({\n clicked: true\n });\n } else if (\n window.confirm(\"Your data will be lost if you leave this page! Continue?\")\n ) {\n this.onClickViewForms.emit({\n clicked: true\n });\n }\n }\n\n @logMethod\n async handleOnClickSaveForm(e: any) {\n let formData = this.formGroup.getRawValue();\n\n for (let field of this.formFields) {\n if (field.isFormElement) {\n if (field.hidden) {\n delete formData[field.key];\n } else {\n formData[field.key] = convertFormFieldValueToStandardFormat(\n field,\n formData[field.key]\n );\n }\n }\n }\n\n if (this.formGroup.invalid) {\n const controls = new FormValidation().getFormFieldsInvalidControls(\n this.formGroup\n );\n\n let firstFieldWithError: string = \"\";\n\n for (let control of controls) {\n if (control.invalid && isEmptyValue(firstFieldWithError)) {\n firstFieldWithError = control.key;\n }\n this.formFields = showFormFieldError(\n this.formFields,\n this.formGroup.controls[control.key].errors,\n control.key,\n control.invalid\n );\n }\n\n this.toggleErrorNotification(true);\n setTimeout(() => {\n this.toggleErrorNotification(false);\n }, 3000);\n\n return;\n }\n\n for (let field of this.formFields) {\n if (\n field.isFormElement &&\n checkObjectKeyExists(field, \"validation\") &&\n field.validation.triggers.includes(\"ON_SAVE\")\n ) {\n const validations = new Validation(\n {\n FIELD_CONFIG: field,\n FORM_FIELDS: this.formFields,\n FORM_DATA: this.formData,\n PREVIOUS_FORM_DATA: this.previousFormData,\n ALL_FORMS_DATA: this.allFormsData\n },\n this.takeAction.bind(this)\n );\n\n await validations.validate(field.validation);\n\n if (!field.validation.is_valid) {\n this.toggleErrorNotification(true);\n setTimeout(() => {\n this.toggleErrorNotification(false);\n }, 3000);\n\n return;\n }\n }\n }\n\n Object.keys(formData).map((key) => {\n if (isEmptyValue(formData[key])) {\n formData[key] = \"\";\n }\n });\n\n this.onClickSaveForm.emit({ formConfig: this.formConfig, data: formData });\n }\n\n showErrorNotification: boolean = false;\n @logMethod\n toggleErrorNotification(show) {\n this.showErrorNotification = show;\n }\n\n // Component Helpers\n @logMethod\n fieldHide(fieldKey: string) {\n let field = getFormFieldByKey(this.formFields, fieldKey);\n let fieldIndex = this.formFields.findIndex((_: any) => {\n return field.key === _.key;\n });\n\n this.formFields[fieldIndex][\"hidden\"] = true;\n this.formGroup.updateValueAndValidity();\n }\n\n @logMethod\n fieldGroupHide(fieldGroup: string) {\n for (let fieldKey of this.fieldGroups[fieldGroup]) {\n this.fieldHide(fieldKey);\n }\n }\n\n @logMethod\n fieldShow(fieldKey: string) {\n let field = getFormFieldByKey(this.formFields, fieldKey);\n let fieldIndex = this.formFields.findIndex((_: any) => {\n return field.key === _.key;\n });\n\n this.formFields[fieldIndex][\"hidden\"] = false;\n this.formGroup.updateValueAndValidity();\n }\n\n @logMethod\n fieldGroupShow(fieldGroup: string) {\n for (let fieldKey of this.fieldGroups[fieldGroup]) {\n this.fieldShow(fieldKey);\n }\n }\n\n @logMethod\n fieldDisable(fieldKey: string) {\n let field = getFormFieldByKey(this.formFields, fieldKey);\n let fieldIndex = this.formFields.findIndex((_: any) => {\n return field.key === _.key;\n });\n\n if (field.isFormElement) {\n this.formFields[fieldIndex][\"disabled\"] = true;\n\n if (isNotEmptyValue(this.formGroup.controls)) {\n this.formGroup.controls[field.key].disable({\n emitEvent: false\n });\n }\n this.formGroup.updateValueAndValidity();\n }\n }\n\n @logMethod\n fieldGroupDisable(fieldGroup: string) {\n for (let fieldKey of this.fieldGroups[fieldGroup]) {\n this.fieldDisable(fieldKey);\n }\n }\n\n @logMethod\n fieldEnable(fieldKey: string) {\n let field = getFormFieldByKey(this.formFields, fieldKey);\n let fieldIndex = this.formFields.findIndex((_: any) => {\n return field.key === _.key;\n });\n\n if (field.isFormElement) {\n this.formFields[fieldIndex][\"disabled\"] = false;\n\n if (isNotEmptyValue(this.formGroup.controls)) {\n this.formGroup.controls[field.key].enable({\n emitEvent: false\n });\n }\n this.formGroup.updateValueAndValidity();\n }\n }\n\n @logMethod\n fieldGroupEnable(fieldGroup: string) {\n for (let fieldKey of this.fieldGroups[fieldGroup]) {\n this.fieldEnable(fieldKey);\n }\n }\n\n @logMethod\n fieldReset(fieldKey: string) {\n // Find the field and its index in the formFields array\n let field = getFormFieldByKey(this.formFields, fieldKey);\n let fieldIndex = getFormFieldIndexByKey(this.formFields, fieldKey);\n\n // Reset the value of the field in the formGroup\n const resetValue = convertFormFieldEmptyValueToKwikUIFormat(field);\n\n this.formData[fieldKey] = resetValue;\n\n this.formGroup.controls[field.key].reset(resetValue, {\n emitEvent: false,\n onlySelf: true\n });\n\n this.formGroup.patchValue(\n {\n [field.key]: resetValue\n },\n { emitEvent: false }\n );\n\n this.formGroup.controls[field.key].updateValueAndValidity({\n emitEvent: true\n });\n\n // Reset the messages and errors for the field\n field = removeFormFieldMessage(field, {\n type: EMessageType.WARNING,\n message: \"\"\n });\n field = removeFormFieldMessage(field, {\n type: EMessageType.SUCCESS,\n message: \"\"\n });\n this.fieldErrorHide(fieldKey, {\n type: EMessageType.ERROR,\n message: \"\"\n });\n\n // Reset the value of the field in the formFields array\n switch (field.type) {\n case \"api-call\":\n const fieldApiCall = field as TFieldApiCall;\n fieldApiCall.api.status.value = EApiStatusType.DEFAULT;\n this.formFields[fieldIndex] = fieldApiCall;\n break;\n default:\n field.focus = false;\n field.invalid = false;\n this.formFields[fieldIndex] = field;\n break;\n }\n }\n\n @logMethod\n fieldErrorShow(fieldKey: string, message: TMessage) {\n let field = getFormFieldByKey(this.formFields, fieldKey);\n let fieldIndex = this.formFields.findIndex((_: any) => {\n return field.key === _.key;\n });\n\n field = highlightFormFieldError(field, true);\n field = appendFormFieldMessage(field, message);\n\n this.formFields[fieldIndex] = field;\n }\n\n @logMethod\n fieldErrorHide(fieldKey: string, message: TMessage) {\n let field = getFormFieldByKey(this.formFields, fieldKey);\n let fieldIndex = this.formFields.findIndex((_: any) => {\n return field.key === _.key;\n });\n\n field = highlightFormFieldError(field, false);\n field = removeFormFieldMessage(field, message);\n\n this.formFields[fieldIndex] = field;\n }\n\n @logMethod\n fieldMessageShow(fieldKey: string, message: TMessage) {\n let field = getFormFieldByKey(this.formFields, fieldKey);\n let fieldIndex = this.formFields.findIndex((_: any) => {\n return field.key === _.key;\n });\n\n field = appendFormFieldMessage(field, message);\n\n this.formFields[fieldIndex] = field;\n }\n\n @logMethod\n fieldMessageHide(fieldKey: string, message: TMessage) {\n let field = getFormFieldByKey(this.formFields, fieldKey);\n let fieldIndex = this.formFields.findIndex((_: any) => {\n return field.key === _.key;\n });\n\n field = removeFormFieldMessage(field, message);\n\n this.formFields[fieldIndex] = field;\n }\n\n @logMethod\n setObjectValue(field: any, path: string, value: any) {}\n\n @logMethod\n patchFieldControlValue(key: string, value: any) {\n this.formGroup.patchValue(\n {\n [key]: value\n },\n { emitEvent: false }\n );\n }\n\n @logMethod\n patchFormGroup(formData: any) {\n if (isUndefined(this.formGroup) || isUndefined(formData)) {\n throw new Error(`formGroup or formData is 'undefined'.`);\n } else {\n this.formGroup.patchValue(formData, { emitEvent: false });\n }\n }\n\n @logMethod\n isFieldValid(fieldKey: string) {\n return this.formGroup.controls[fieldKey].valid;\n }\n\n @logMethod\n isFieldEnabled(fieldKey: string) {\n return this.formGroup.controls[fieldKey].enabled;\n }\n\n @logMethod\n getFormGroupRawValues() {\n return this.formGroup.getRawValue();\n }\n\n @logMethod\n async takeActionOnFieldGroup(action: TAction, object: any) {\n switch (action.key) {\n case EActionKey.FIELD_GROUP_HIDE:\n this.fieldGroupHide(action.props.groupKey);\n break;\n case EActionKey.FIELD_GROUP_SHOW:\n this.fieldGroupShow(action.props.groupKey);\n break;\n case EActionKey.FIELD_GROUP_ENABLE:\n this.fieldGroupEnable(action.props.groupKey);\n break;\n case EActionKey.FIELD_GROUP_DISABLE:\n this.fieldGroupDisable(action.props.groupKey);\n break;\n default:\n break;\n }\n }\n\n @logMethod\n async takeAction(action: TAction, object: any) {\n switch (action.key) {\n case EActionKey.FIELD_HIDE:\n this.fieldHide(action.props.fieldKey);\n break;\n case EActionKey.FIELD_SHOW:\n this.fieldShow(action.props.fieldKey);\n break;\n case EActionKey.FIELD_DISABLE:\n this.fieldDisable(action.props.fieldKey);\n break;\n case EActionKey.FIELD_ENABLE:\n this.fieldEnable(action.props.fieldKey);\n break;\n case EActionKey.FIELD_RESET:\n this.fieldReset(action.props.fieldKey);\n break;\n case EActionKey.FIELD_ERROR_SHOW:\n this.fieldErrorShow(action.props.fieldKey, action.props.message);\n break;\n case EActionKey.FIELD_ERROR_HIDE:\n this.fieldErrorHide(action.props.fieldKey, action.props.message);\n break;\n case EActionKey.FIELD_MESSAGE_SHOW:\n this.fieldMessageShow(action.props.fieldKey, action.props.message);\n break;\n case EActionKey.FIELD_MESSAGES_HIDE:\n this.fieldMessageHide(action.props.fieldKey, action.props.message);\n break;\n case EActionKey.SET_VALUE:\n const setValue_Source = new Source(object);\n\n const sourceValue = await setValue_Source.getValueFromSource(\n action.props.value.source\n );\n setValue_Source.setValueToSource(\n action.props.value.destination,\n sourceValue\n );\n\n object.FIELD_CONFIG = setValue_Source.object.FIELD_CONFIG;\n this.formData = setValue_Source.object.FORM_DATA;\n this.patchFormGroup(this.formData);\n this.allFormsData = setValue_Source.object.ALL_FORMS_DATA;\n this.previousFormData = setValue_Source.object.PREVIOUS_FORM_DATA;\n break;\n case EActionKey.SET_FIELD_DEFAULT_VALUE:\n const setDefaultValue_Source = new Source(object);\n\n const sourceDefaultValue =\n await setDefaultValue_Source.getValueFromSource(\n action.props.value.source\n );\n\n const destinationDefaultValue_FieldConfig_Config = {\n key: ESourceKey.OBJECT,\n props: {\n object: {\n key: \"FIELD_CONFIG\",\n path: \"default.value.value\"\n }\n }\n };\n setDefaultValue_Source.setValueToSource(\n destinationDefaultValue_FieldConfig_Config,\n sourceDefaultValue\n );\n\n const destinationDefaultValue_FormData_Config__Props__Object__Path =\n String(`${action.props.fieldKey}`);\n const destinationDefaultValue_FormData_Config = {\n key: ESourceKey.OBJECT,\n props: {\n object: {\n key: \"FORM_DATA\",\n path: String(action.props.fieldKey)\n }\n }\n };\n setDefaultValue_Source.setValueToSource(\n destinationDefaultValue_FormData_Config,\n sourceDefaultValue\n );\n\n object.FIELD_CONFIG = setDefaultValue_Source.object.FIELD_CONFIG;\n this.formData = setDefaultValue_Source.object.FORM_DATA;\n this.patchFormGroup(this.formData);\n this.allFormsData = setDefaultValue_Source.object.ALL_FORMS_DATA;\n this.previousFormData =\n setDefaultValue_Source.object.PREVIOUS_FORM_DATA;\n break;\n case EActionKey.SET_DROPDOWN_OPTIONS:\n const setDropdownValue_Sources = new Source(object);\n\n let dropdownValue = await setDropdownValue_Sources.getValueFromSource(\n action.props.value.source\n );\n if (checkObjectKeyExists(action.props, \"options\")) {\n if (checkObjectKeyExists(action.props.options, \"appendToPath\")) {\n let appendToPath =\n await setDropdownValue_Sources.getValueFromSource(\n action.props.options.appendToPath.source\n );\n if (isNotEmptyValue(appendToPath)) {\n const appendToPathStr = replaceString(\n appendToPath.match(\n `${action.props.options.appendToPath.filterSourceValue}`\n )[0],\n \"[^a-zA-Z0-9_]\",\n \"_\"\n );\n\n const optionsPath = `${action.props.options.path}${appendToPathStr}`;\n dropdownValue = getObjectValueFromPath(\n dropdownValue,\n optionsPath\n );\n }\n } else {\n dropdownValue = getObjectValueFromPath(\n dropdownValue,\n action.props.options.path\n );\n }\n }\n\n setDropdownValue_Sources.setValueToSource(\n action.props.value.destination,\n dropdownValue\n );\n\n object.FIELD_CONFIG = setDropdownValue_Sources.object.FIELD_CONFIG;\n this.formData = setDropdownValue_Sources.object.FORM_DATA;\n this.allFormsData = setDropdownValue_Sources.object.ALL_FORMS_DATA;\n this.previousFormData =\n setDropdownValue_Sources.object.PREVIOUS_FORM_DATA;\n break;\n case EActionKey.HANDLE_CONNECTED_ELEMENTS:\n this.handleConnectedElements(\n { key: action.props.fieldKey },\n \"ON_ACTION\"\n );\n break;\n case EActionKey.CUSTOM:\n break;\n default:\n break;\n }\n }\n}\n","<div\n class=\"kwikid-form-container\"\n *ngIf=\"!loading\"\n>\n <div\n id=\"uf-form-fields-header-container\"\n *ngIf=\"\n !formConfig.properties.header.title.hidden ||\n !formConfig.properties.header.steps.hidden\n \"\n >\n <div\n id=\"uf-form-fields-title\"\n *ngIf=\"!formConfig.properties.header.title.hidden\"\n >{{ formConfig.properties.header.title.label }}</div\n >\n <div\n id=\"uf-form-fields-steps\"\n *ngIf=\"!formConfig.properties.header.steps.hidden\"\n >Step {{ formConfig.sequenceNo }} of {{ formConfig.formsListLength }}</div\n >\n <hr\n *ngIf=\"\n !formConfig.properties.header.title.hidden &&\n !formConfig.properties.header.steps.hidden\n \"\n />\n </div>\n <form\n class=\"kwikid-form show\"\n [formGroup]=\"formGroup\"\n >\n <ng-container\n *ngFor=\"\n let field of formFields;\n let i = index;\n trackBy: getUniqueIdentifier\n \"\n >\n <ng-container [ngSwitch]=\"field.type\">\n <!-- HTML Content -->\n <ng-container *ngSwitchCase=\"'html'\">\n <div\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <div [innerHtml]=\"field.html | safeHtml\"></div>\n </div>\n </ng-container>\n <!-- Form Title -->\n <ng-container *ngSwitchCase=\"'title'\">\n <div\n class=\"title\"\n [class.hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <div>\n {{ field.label }}\n </div>\n <kwikui-button\n *ngIf=\"field?.reset\"\n appearance=\"whiteblock\"\n size=\"s\"\n label=\"Reset\"\n (onClick)=\"handleOnClickResetFormFields($event, field)\"\n ></kwikui-button>\n </div>\n </ng-container>\n <!-- Input Text -->\n <ng-container *ngSwitchCase=\"'text'\">\n <div\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-input\n [case]=\"field?.properties?.case\"\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field.label\"\n [placeholder]=\"field?.properties?.placeholder\"\n [type]=\"'text'\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Checkbox -->\n <ng-container *ngSwitchCase=\"'checkbox'\">\n <div\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-checkbox-block\n [contentAlign]=\"field?.properties?.contentAlign ?? 'left'\"\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field?.properties?.placeholder\"\n [placeholder]=\"field?.properties?.placeholder\"\n [properties]=\"field?.properties\"\n [size]=\"field?.properties?.size ?? 'l'\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-checkbox-block>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Input Number -->\n <ng-container *ngSwitchCase=\"'number'\">\n <div\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-input-number\n [decimal]=\"field?.properties?.decimal\"\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field?.label\"\n [max]=\"field?.properties?.max\"\n [min]=\"field?.properties?.min\"\n [placeholder]=\"field?.properties?.placeholder\"\n [postfix]=\"field?.properties?.postfix ?? ''\"\n [precision]=\"field?.properties?.precision\"\n [prefix]=\"field?.properties?.prefix ?? ''\"\n [properties]=\"field?.properties\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input-number>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Input Date -->\n <ng-container *ngSwitchCase=\"'date'\">\n <div\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-input-date\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field.label\"\n [min]=\"field?.properties?.min\"\n [minCalculatedFromToday]=\"\n field?.properties?.minCalculatedFromToday\n \"\n [max]=\"field?.properties?.max\"\n [maxCalculatedFromToday]=\"\n field?.properties?.maxCalculatedFromToday\n \"\n [placeholder]=\"field?.properties?.placeholder\"\n [properties]=\"field?.properties\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input-date>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Input Phone -->\n <ng-container *ngSwitchCase=\"'phone'\">\n <div\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-input-phone\n [countryCode]=\"field?.properties?.countryCode\"\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field?.label\"\n [phoneMaskAfterCountryCode]=\"\n field?.properties?.phoneMaskAfterCountryCode\n \"\n [removeCountryCodeFromValue]=\"\n field?.properties?.removeCountryCodeFromValue\n \"\n [placeholder]=\"field?.properties?.placeholder\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input-phone>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Input Radio -->\n <ng-container *ngSwitchCase=\"'radio'\">\n <div\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <label\n [tuiLabel]=\"labelTemplate\"\n style=\"min-height: auto; padding: 0px 0.5rem\"\n >\n <kwikui-radio-list\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [items]=\"field?.options\"\n [label]=\"field?.label\"\n [orientation]=\"field?.properties?.orientation\"\n [placeholder]=\"field?.properties?.placeholder\"\n [properties]=\"field?.properties\"\n [size]=\"field?.properties?.size\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-radio-list>\n </label>\n <ng-template #labelTemplate>\n <p\n class=\"tui-space_bottom-2\"\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <b>\n {{ field.label }}\n <span *ngIf=\"field.validators?.required\"></span>\n </b>\n </p>\n </ng-template>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Dropdown -->\n <ng-container *ngSwitchCase=\"'dropdown-with-search'\">\n <div\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-select-combobox\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field.label\"\n [options]=\"field.options\"\n [placeholder]=\"field?.properties?.placeholder\"\n [properties]=\"field?.properties\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-select-combobox>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Input Slider -->\n <ng-container *ngSwitchCase=\"'slider'\">\n <div\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-input-slider\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field.label\"\n [max]=\"field?.properties?.max\"\n [min]=\"field?.properties?.min\"\n [placeholder]=\"field?.properties?.placeholder\"\n [properties]=\"field?.properties\"\n [quantum]=\"field?.properties?.quantum\"\n [size]=\"field?.properties?.size\"\n [steps]=\"field?.properties?.steps\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input-slider>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- API Call -->\n <ng-container *ngSwitchCase=\"'api-call'\">\n <div\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-button-api-call\n [apiStatus]=\"field?.api?.status?.value\"\n [class]=\"field?.class\"\n [disabled]=\"field?.disabled\"\n [id]=\"field.key\"\n [label]=\"field?.api?.status?.labels[field?.api?.status?.value]\"\n [showLoader]=\"field?.disabled === 'loading'\"\n shape=\"null\"\n size=\"m\"\n styles=\"width: fit-content\"\n (onClick)=\"handleOnClickApiCall($event)\"\n ></kwikui-button-api-call>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Mobile OTP -->\n <ng-container *ngSwitchCase=\"'otp'\">\n <div\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-input-otp\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field?.label\"\n [mask]=\"field?.properties?.mask\"\n [placeholder]=\"field?.properties?.placeholder\"\n [properties]=\"field?.properties\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input-otp>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Aadhaar Number -->\n <ng-container *ngSwitchCase=\"'aadhaar-number'\">\n <div\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-input-aadhaar\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field?.label\"\n [placeholder]=\"field?.placeholder\"\n [properties]=\"field?.properties\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input-aadhaar>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n </ng-container>\n </ng-container>\n </form>\n <div class=\"kwikid-form-buttons\">\n <kwikui-button\n *ngIf=\"\n !formConfig.properties.footer.viewFormsButton.hidden && isMobileView\n \"\n [disabled]=\"viewFormsButton.disabled\"\n id=\"\"\n label=\"{{ formConfig.properties.footer.viewFormsButton.label }}\"\n [showLoader]=\"viewFormsButton.showLoader\"\n styles=\"\"\n class=\"\"\n type=\"button\"\n appearance=\"secondary\"\n icon=\"\"\n iconRight=\"\"\n [shape]=\"null\"\n size=\"m\"\n styles=\"width: 100%\"\n (onClick)=\"handleOnClickViewForms($event)\"\n ></kwikui-button>\n <kwikui-button\n *ngIf=\"!formConfig.properties.footer.saveButton.hidden\"\n [disabled]=\"saveFormButton.disabled\"\n id=\"\"\n label=\"{{ formConfig.properties.footer.saveButton.label }}\"\n [showLoader]=\"saveFormButton.showLoader\"\n styles=\"\"\n class=\"\"\n type=\"button\"\n appearance=\"primary\"\n icon=\"\"\n iconRight=\"\"\n [shape]=\"null\"\n size=\"m\"\n styles=\"width: 100%\"\n (onClick)=\"handleOnClickSaveForm($event)\"\n ></kwikui-button>\n </div>\n</div>\n<div\n class=\"kwikid-form-container-loading\"\n *ngIf=\"loading\"\n>\n <div\n class=\"large-wrapper\"\n [class.tui-skeleton]=\"loading\"\n [class.tui-skeleton_rounded]=\"loading\"\n ></div>\n <div\n class=\"large-wrapper\"\n [class.tui-skeleton]=\"loading\"\n [class.tui-skeleton_rounded]=\"loading\"\n ></div>\n <div\n class=\"large-wrapper\"\n [class.tui-skeleton]=\"loading\"\n [class.tui-skeleton_rounded]=\"loading\"\n ></div>\n <div\n class=\"large-wrapper\"\n [class.tui-skeleton]=\"loading\"\n [class.tui-skeleton_rounded]=\"loading\"\n ></div>\n <div\n class=\"large-wrapper\"\n [class.tui-skeleton]=\"loading\"\n [class.tui-skeleton_rounded]=\"loading\"\n ></div>\n <div\n class=\"large-wrapper\"\n [class.tui-skeleton]=\"loading\"\n [class.tui-skeleton_rounded]=\"loading\"\n ></div>\n <div\n class=\"large-wrapper\"\n [class.tui-skeleton]=\"loading\"\n [class.tui-skeleton_rounded]=\"loading\"\n ></div>\n</div>\n<tui-push\n id=\"field-error-notification\"\n *tuiPush=\"showErrorNotification\"\n heading=\"Missing/Incorrect Fields!\"\n type=\"Error\"\n (close)=\"toggleErrorNotification(false)\"\n>\n <tui-svg\n src=\"tuiIconXCircle\"\n style=\"color: #fff !important\"\n >\n </tui-svg>\n</tui-push>\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { DomSanitizer } from \"@angular/platform-browser\";\n\n/**\n * Generated class for the SafeHtmlPipe pipe.\n *\n * See https://angular.io/api/core/Pipe for more info on Angular Pipes.\n */\n@Pipe({\n name: \"safeHtml\"\n})\nexport class SafeHtmlPipe implements PipeTransform {\n constructor(private sanitizer: DomSanitizer) {}\n\n transform(html) {\n return this.sanitizer.bypassSecurityTrustHtml(html);\n }\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges\n} from \"@angular/core\";\nimport {\n checkObjectKeyExists,\n logMethod,\n mergeObjects,\n setValueToObjectPath,\n isNull,\n isUndefined\n} from \"kwikid-toolkit\";\n\n@Component({\n selector: \"kwikid-forms-list\",\n templateUrl: \"./forms-list.component.html\",\n styleUrls: [\"./forms-list.component.scss\"]\n})\nexport class KwikIDFormsListComponent implements OnInit, OnChanges {\n @Input()\n showFormFields: any = {};\n\n @Input()\n userConfig: any = {};\n\n @Input()\n stepConfig: any = {};\n\n @Input()\n activeFormConfig: any = {};\n\n @Input()\n formsList: any[] = [];\n\n @Input()\n formsListCompleted: any[] = [];\n\n @Input()\n isMobileView: boolean = false;\n\n @Output()\n onClickSetActiveForm: EventEmitter<any> = new EventEmitter<any>();\n\n @Output()\n onClickHideFormsList: EventEmitter<any> = new EventEmitter<any>();\n\n @Output()\n onClickSubmitForms = new EventEmitter<any>();\n\n selectedForm: string = \"\";\n setSelectedForm(selected_form: string): void {\n this.selectedForm = selected_form;\n }\n\n formsListLength: number = 0;\n\n isAllFormsCompleted: boolean = true;\n\n loading: boolean = false;\n\n constructor() {}\n\n ngOnInit(): void {\n this.loading = true;\n\n this.setSelectedForm(this.activeFormConfig?.key ?? \"\");\n\n this.stepConfig = this.formatStepConfig(this.stepConfig);\n\n this.formsList = this.filterHiddenForms(this.formsList);\n this.formsListLength = this.findFormsListLength(this.formsList);\n this.isAllFormsCompleted = this.checkIsAllFormsCompleted(this.formsList);\n\n this.loading = false;\n }\n\n @logMethod\n ngOnChanges(changes: SimpleChanges): void {\n const verifyChange = (key: string) => {\n return checkObjectKeyExists(changes, key) && !changes[key].firstChange;\n };\n if (verifyChange(\"showFormFields\")) {\n this.showFormFields = changes.showFormFields.currentValue;\n }\n if (verifyChange(\"stepConfig\")) {\n this.stepConfig = changes.stepConfig.currentValue;\n }\n if (verifyChange(\"formsList\")) {\n this.formsList = this.filterHiddenForms(this.formsList);\n this.formsListLength = this.findFormsListLength(this.formsList);\n this.isAllFormsCompleted = this.checkIsAllFormsCompleted(this.formsList);\n }\n if (verifyChange(\"isMobileView\")) {\n this.isMobileView = changes.isMobileView.currentValue;\n\n if (!this.isMobileView) {\n this.setSelectedForm(\"\");\n }\n }\n if (verifyChange(\"activeFormConfig\")) {\n this.activeFormConfig = changes.activeFormConfig.currentValue;\n\n this.setSelectedForm(this.activeFormConfig?.key ?? \"\");\n }\n }\n\n @logMethod\n formatStepConfig(stepConfig: any): any {\n let stepConfigProperties = {\n formListProperties: {\n footer: {\n submitFormButton: {\n hidden: false,\n label: \"Submit\"\n }\n }\n }\n };\n\n if (isNull(stepConfig) || isUndefined(stepConfig)) {\n stepConfig = setValueToObjectPath({}, \"props\", stepConfigProperties);\n } else {\n if (checkObjectKeyExists(stepConfig, \"props\")) {\n stepConfigProperties = mergeObjects(\n stepConfigProperties,\n stepConfig.props\n );\n\n stepConfig = setValueToObjectPath(\n stepConfig,\n \"props\",\n stepConfigProperties\n );\n } else {\n stepConfig = setValueToObjectPath(\n stepConfig,\n \"props\",\n stepConfigProperties\n );\n }\n }\n\n return stepConfig;\n }\n\n @logMethod\n filterHiddenForms(formsList: any[]): any[] {\n return formsList.filter((form) => {\n if (checkObjectKeyExists(form, \"hidden\")) {\n if (!form.hidden) {\n return form;\n }\n }\n });\n }\n\n @logMethod\n findFormsListLength(formsList: any[]): number {\n const _formsList = formsList.filter((form) => {\n if (checkObjectKeyExists(form, \"type\")) {\n if (form.type === \"form\") {\n if (checkObjectKeyExists(form, \"hidden\")) {\n if (!form.hidden) {\n return form;\n }\n }\n }\n } else if (checkObjectKeyExists(form, \"hidden\")) {\n if (!form.hidden) {\n return form;\n }\n }\n });\n\n return _formsList.length;\n }\n\n @logMethod\n checkIsAllFormsCompleted(formsList: any[]): boolean {\n let isAllFormsCompleted: boolean = true;\n\n for (let form of formsList) {\n if (checkObjectKeyExists(form, \"type\")) {\n if (form.type === \"form\") {\n if (form.status !== \"completed\") {\n isAllFormsCompleted = false;\n break;\n }\n }\n }\n }\n\n return isAllFormsCompleted;\n }\n\n @logMethod\n handleOnClickSetActiveForm(selectedForm: string) {\n if (\n this.isMobileView ||\n (!this.isMobileView && this.selectedForm !== selectedForm) ||\n (this.isAllFormsCompleted && !this.showFormFields)\n ) {\n this.selectedForm = selectedForm;\n this.onClickSetActiveForm.emit(selectedForm);\n }\n }\n\n @logMethod\n handleOnSubmitForms(e: any) {\n this.onClickSubmitForms.emit(e);\n }\n}\n","<div\n id=\"sidebar-container\"\n *ngIf=\"!loading\"\n>\n <div id=\"sidebar\">\n <div ngClass=\"kwikid-form-header\">\n <div id=\"uf-header\">\n <div id=\"uf-header-logo-container\">\n <img\n id=\"uf-header-logo\"\n src=\"{{ this.userConfig.theme.clientLogo }}\"\n [ngClass]=\"'large-icon'\"\n />\n </div>\n </div>\n <hr />\n </div>\n <div id=\"uf-progress\">\n <div id=\"uf-progress-steps\">\n {{ this.formsListCompleted.length }} / {{ this.formsListLength }} Steps\n Completed\n </div>\n <kwikui-progress-segmented\n [max]=\"this.formsListLength\"\n size=\"m\"\n [value]=\"this.formsListCompleted.length\"\n ></kwikui-progress-segmented>\n </div>\n <div id=\"uf-sections-container\">\n <ng-container *ngFor=\"let form of formsList; let i = index\">\n <ng-container [ngSwitch]=\"form.type\">\n <!-- HTML Content -->\n <ng-container *ngSwitchCase=\"'html'\">\n <div [innerHtml]=\"form.props.htmlContent | safeHtml\"></div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'form'\">\n <div\n [class]=\"'uf-section-item'\"\n [class.completed]=\"form.status === 'completed' && !form.disabled\"\n [class.edit]=\"form.status === 'editable' && !form.disabled\"\n [class.locked]=\"form.status === 'locked' && form.disabled\"\n [class.active]=\"\n activeFormConfig !== undefined &&\n form.key === activeFormConfig.key\n \"\n (click)=\"\n form.status === 'locked' && form.disabled\n ? undefined\n : handleOnClickSetActiveForm(form.key)\n \"\n >\n <div class=\"uf-form-section-card-title\">\n {{ form.props.title }} <span *ngIf=\"form?.required\"\n >*</span\n >\n </div>\n <div class=\"uf-form-section-card-status\">\n <div\n *ngIf=\"form.status === 'completed' && !form.disabled\"\n class=\"uf-form-section-card-status-img completed\"\n >\n <tui-svg src=\"tuiIconCheckLarge\"></tui-svg>\n </div>\n <div\n *ngIf=\"form.status !== 'completed' && !form.disabled\"\n class=\"uf-form-section-card-status-img edit\"\n >\n <tui-svg src=\"tuiIconEdit\"></tui-svg>\n </div>\n <div\n *ngIf=\"form.status !== 'completed' && form.disabled\"\n class=\"uf-form-section-card-status-img locked\"\n >\n <tui-svg src=\"tuiIconLock\"></tui-svg>\n </div>\n </div>\n </div>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n <div id=\"submit-sidebar-btn-container\">\n <kwikui-button\n *ngIf=\"\n !stepConfig.props.formListProperties.footer.submitFormButton.hidden\n \"\n [disabled]=\"false\"\n id=\"\"\n label=\"{{\n stepConfig.props.formListProperties.footer.submitFormButton.label\n }}\"\n [showLoader]=\"false\"\n styles=\"\"\n class=\"\"\n type=\"button\"\n appearance=\"primary\"\n icon=\"\"\n iconRight=\"\"\n [shape]=\"null\"\n size=\"m\"\n styles=\"width: 100%\"\n (onClick)=\"handleOnSubmitForms($event)\"\n ></kwikui-button>\n </div>\n </div>\n</div>\n","import { TAction, TSourceKey } from \"kwikid-toolkit\";\n\nexport enum ERendererActionKey {\n SET_VALUE = \"SET_VALUE\",\n FORM_HIDE = \"FORM_HIDE\",\n FORM_SHOW = \"FORM_SHOW\",\n FORM_DISABLE = \"FORM_DISABLE\",\n FORM_ENABLE = \"FORM_ENABLE\"\n}\n\nexport type TActionKey =\n | ERendererActionKey.SET_VALUE\n | ERendererActionKey.FORM_HIDE\n | ERendererActionKey.FORM_SHOW\n | ERendererActionKey.FORM_DISABLE\n | ERendererActionKey.FORM_ENABLE;\n\nexport type TActionSetValue = TAction & {\n key: ERendererActionKey.SET_VALUE;\n props: {\n value: {\n source: {\n key: TSourceKey;\n path?: string;\n value?: any;\n };\n destination: {\n key: TSourceKey;\n path?: string;\n value?: any;\n };\n };\n };\n};\n\nexport type TActionFormShow = TAction & {\n key: ERendererActionKey.FORM_SHOW;\n props: {\n fieldKey: string;\n };\n};\n\nexport type TActionFormHide = TAction & {\n key: ERendererActionKey.FORM_HIDE;\n props: {\n fieldKey: string;\n };\n};\n\nexport type TActionFormEnable = TAction & {\n key: ERendererActionKey.FORM_ENABLE;\n props: {\n fieldKey: string;\n };\n};\n\nexport type TActionFormDisable = TAction & {\n key: ERendererActionKey.FORM_DISABLE;\n props: {\n fieldKey: string;\n };\n};\n","export const getFormConfigByKey = (forms: any[], key: string) => {\n const form = forms.find((form) => {\n if (form.key === key) {\n return form;\n }\n });\n\n return form;\n};\n","import { animate, style, transition, trigger } from \"@angular/animations\";\nimport {\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges\n} from \"@angular/core\";\nimport {\n Action,\n checkObjectKeyExists,\n Condition,\n getObjectDeepCopy,\n isEmptyValue,\n isNotEmptyValue,\n logMethod,\n Rule,\n setValueToObjectPath,\n Source,\n TAction,\n TRule\n} from \"kwikid-toolkit\";\nimport { Converter } from \"./config-converter.helper\";\nimport { EActionKey } from \"./form-view/definitions/form-view.actions.definition\";\nimport { TTrigger } from \"./form-view/definitions/form-view.triggers.definition\";\nimport { EFormsListStatus } from \"./forms-list/forms-list.definitions\";\nimport { ERendererActionKey } from \"./renderer.actions.definitions\";\nimport { getFormConfigByKey } from \"./renderer.helper\";\n\n@Component({\n selector: \"kwikid-forms-renderer\",\n templateUrl: \"./renderer.component.html\",\n styleUrls: [\"./renderer.component.scss\"],\n animations: [\n trigger(\"panelInOut\", [\n transition(\":enter\", [\n style({ transform: \"translateY(100%)\" }),\n animate(150)\n ]),\n transition(\":leave\", [\n animate(100, style({ transform: \"translateY(100%)\" }))\n ])\n ])\n ]\n})\nexport class KwikIDFormsRendererComponent implements OnInit, OnChanges {\n // The final value should be provided to service, so that it can be used in all components\n @HostListener(\"window:resize\", [\"$event\"])\n windowResizeWatcher() {\n if (this.hostElement.nativeElement.offsetWidth < 600) {\n if (this.showForm) {\n this.showFormSections = false;\n this.showFormFields = true;\n } else {\n this.showFormSections = true;\n this.showFormFields = false;\n }\n this.isMobileView = true;\n } else {\n if (this.showForm) {\n this.showFormSections = true;\n this.showFormFields = true;\n } else {\n this.showFormSections = true;\n this.showFormFields = false;\n }\n this.isMobileView = false;\n }\n }\n\n @Input()\n stepConfig: any;\n\n @Input()\n userConfig: any;\n\n @Input()\n formsData: any = {};\n\n @Input()\n apiCallResponse: any = {};\n\n @Output()\n onClickSubmit: EventEmitter<any> = new EventEmitter<any>();\n\n @Output()\n getFormData: EventEmitter<any> = new EventEmitter<any>();\n\n @Output()\n onClickApiCall: EventEmitter<any> = new EventEmitter<any>();\n\n loading: boolean = false;\n loader: boolean = false;\n\n showErrorNotification: boolean = false;\n toggleErrorNotification(show) {\n this.showErrorNotification = show;\n }\n\n activeFormConfig: any;\n activeFormFields: any[];\n allFormsData: any = {};\n formsList: any[] = [];\n formsListCompleted: string[];\n isMobileView: boolean = false;\n\n // display forms and list conditionally\n showForm: boolean = false;\n showFormFields: boolean = true;\n showFormSections: boolean = true;\n\n constructor(\n private hostElement: ElementRef,\n private cdr: ChangeDetectorRef\n ) {}\n\n ngOnInit() {\n this.loader = true;\n this.loading = true;\n\n const formStepKey = this.stepConfig?.form?.key ?? undefined;\n\n if (\n formStepKey !== undefined &&\n checkObjectKeyExists(this.userConfig.userFormFields, formStepKey)\n ) {\n this.formsList = this.userConfig.userFormFields[formStepKey];\n } else if (Array.isArray(this.userConfig.userFormFields)) {\n this.formsList = this.userConfig.userFormFields;\n } else {\n throw new Error(\n `userFormFields doesn't have a form defined with key: ${formStepKey}`\n );\n }\n\n this.initializeForms(\"ON_INIT\");\n this.loader = false;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const verifyChange = (prop: string) => {\n return changes.hasOwnProperty(prop) && !changes[prop].firstChange;\n };\n if (verifyChange(\"userConfig\")) {\n this.userConfig = changes.userConfig.currentValue;\n this.loader = false;\n }\n if (verifyChange(\"formsData\")) {\n this.formsData = changes.formsData.currentValue;\n\n this.initializeForms(\"ON_CHANGE\");\n }\n if (verifyChange(\"apiCallResponse\")) {\n this.apiCallResponse = changes.apiCallResponse.currentValue;\n this.loader = false;\n }\n }\n\n async fetchFormConfig(url: string) {\n const response = await fetch(url, { method: \"GET\" });\n const data = await response.json();\n return data;\n }\n\n async initializeForms(eventType: string) {\n this.loader = true;\n\n this.allFormsData = this.formsData;\n\n await this.updateFormsList();\n\n if (\n eventType === \"ON_CHANGE\" &&\n this.findFormsListLength(this.formsList) === 1\n ) {\n this.handleOnClickSubmitForms(null);\n } else {\n this.handleResize(this.formsList);\n\n if (isNotEmptyValue(this.activeFormConfig)) {\n if (checkObjectKeyExists(this.activeFormConfig, \"type\")) {\n if (this.activeFormConfig.type === \"form\") {\n await this.handleOnClickSetActiveForm(this.activeFormConfig.key);\n }\n } else {\n await this.handleOnClickSetActiveForm(this.activeFormConfig.key);\n }\n } else {\n this.showForm = false;\n this.showFormFields = false;\n }\n\n this.loader = false;\n this.loading = false;\n }\n }\n\n @logMethod\n convertFormListConfig(formsList: any[]): any[] {\n return formsList.map((form) => {\n if (!checkObjectKeyExists(form, \"type\")) {\n form.type = \"form\";\n }\n if (checkObjectKeyExists(form, \"formContent\")) {\n form = setValueToObjectPath(form, \"props.url\", form.formContent.url);\n delete form[\"formContent\"][\"url\"];\n }\n if (isEmptyValue(form.formContent)) {\n delete form[\"formContent\"];\n }\n if (checkObjectKeyExists(form, \"title\")) {\n form = setValueToObjectPath(form, \"props.title\", form.title);\n delete form[\"title\"];\n }\n return form;\n });\n }\n\n /**\n * NOTE: To be deprecated.\n * Why ? Will be directly assigned while executing 'chakra' for default form config.\n * @param formsList any[]\n * @param formsListCompleted string[]\n * @returns any[]\n */\n @logMethod\n assignSequenceNoToForm(formsList: any[]): any[] {\n let sequenceNo = 1;\n for (let form of formsList) {\n if (checkObjectKeyExists(form, \"hidden\")) {\n if (!form.hidden && form.type === \"form\") {\n form.sequenceNo = sequenceNo++;\n } else {\n delete form[\"sequenceNo\"];\n }\n }\n }\n\n return formsList;\n }\n\n @logMethod\n findCompletedFormsList(allFormsData: any): string[] {\n let formsListCompleted: string[] = [];\n\n Object.keys(allFormsData).map((formKey) => {\n formsListCompleted.push(formKey);\n });\n\n return formsListCompleted;\n }\n\n /**\n * NOTE: To be deprecated. Why ? Will be replaced by 'chakra'.\n * @param formsList any[]\n * @param formsListCompleted string[]\n * @returns any[]\n */\n @logMethod\n markFormInFormsListAsCompleted(\n formsList: any[],\n formsListCompleted: string[]\n ): any[] {\n for (let form of formsList) {\n if (checkObjectKeyExists(form, \"hidden\")) {\n if (!form.hidden && form.type === \"form\") {\n if (formsListCompleted.includes(form.key)) {\n form = setValueToObjectPath(form, \"status\", \"completed\");\n form = setValueToObjectPath(form, \"disabled\", false);\n }\n }\n }\n }\n\n return formsList;\n }\n\n /**\n * NOTE: To be deprecated. Why ? Will be replaced by 'chakra'.\n * @param formsList any[]\n * @param formsListCompleted string[]\n * @returns any[]\n */\n @logMethod\n markFormInFormsListAsDisabled(\n formsList: any[],\n formsListCompleted: string[]\n ): any[] {\n for (let form of formsList) {\n if (checkObjectKeyExists(form, \"hidden\")) {\n if (!form.hidden && form.type === \"form\") {\n if (form.status !== \"completed\") {\n if (checkObjectKeyExists(form, \"dependentOn\")) {\n const isDependent = form.dependentOn.every((r: string) =>\n formsListCompleted.includes(r)\n );\n if (isDependent) {\n form = setValueToObjectPath(form, \"status\", \"editable\");\n form = setValueToObjectPath(form, \"disabled\", false);\n } else {\n form = setValueToObjectPath(form, \"status\", \"locked\");\n form = setValueToObjectPath(form, \"disabled\", true);\n }\n } else {\n form = setValueToObjectPath(form, \"dependentOn\", []);\n form = setValueToObjectPath(form, \"status\", \"editable\");\n form = setValueToObjectPath(form, \"disabled\", false);\n }\n }\n }\n }\n }\n\n return formsList;\n }\n\n @logMethod\n filterAllFormsData(allFormsData: any, formsList: any[]): any {\n let currentUserFormAllFormsData: any = {};\n\n for (let form of formsList) {\n if (\n checkObjectKeyExists(form, \"hidden\") &&\n !form.hidden &&\n form.type === \"form\"\n ) {\n if (checkObjectKeyExists(allFormsData, form.key)) {\n currentUserFormAllFormsData = {\n ...currentUserFormAllFormsData,\n [form.key]: allFormsData[form.key]\n };\n }\n }\n }\n\n return currentUserFormAllFormsData;\n }\n\n @logMethod\n checkIfFormsStatusCompleted(\n formsList: any,\n formsListCompleted: string[]\n ): any {\n let allFormsCompleted: boolean = true;\n\n for (const form of formsList) {\n if (checkObjectKeyExists(form, \"hidden\")) {\n if (!form.hidden && form.type === \"form\") {\n if (form.status !== \"completed\") {\n allFormsCompleted = false;\n break;\n }\n }\n }\n }\n\n return allFormsCompleted;\n }\n\n @logMethod\n findActiveFormConfig(formsList: any[]): any {\n const activeFormConfig = formsList.find((form) => {\n if (checkObjectKeyExists(form, \"hidden\")) {\n if (!form.hidden && form.type === \"form\") {\n return form.status === \"editable\" && !form.disabled;\n }\n }\n });\n return activeFormConfig;\n }\n\n @logMethod\n async updateFormsList() {\n this.formsList = this.convertFormListConfig(this.formsList);\n\n for (let form of this.formsList) {\n if (\n checkObjectKeyExists(form, \"default\") &&\n isNotEmptyValue(form.default)\n ) {\n const triggers: Array<TTrigger> = form.default.triggers;\n const rules: Array<TRule> = form.default.rules;\n const actions: Array<TAction> = form.default.actions;\n\n const rulesMapping = new Rule(rules, {\n USER_CONFIG: this.userConfig,\n FORMS_LIST: this.formsList,\n ALL_FORMS_DATA: this.allFormsData\n }).mapping();\n\n for (let action of actions) {\n const conditionEvaluation = new Condition(\n action.condition,\n rulesMapping\n ).evaluate();\n\n if (conditionEvaluation) {\n const actions = new Action(\n action,\n rulesMapping,\n {\n FORMS_LIST: this.formsList,\n ALL_FORMS_DATA: this.allFormsData\n },\n this.takeAction.bind(this)\n );\n\n await actions.execute();\n }\n }\n } else {\n if (!checkObjectKeyExists(form, \"hidden\")) {\n form.hidden = false;\n }\n }\n }\n\n this.formsList = this.assignSequenceNoToForm(this.formsList);\n\n /**\n * Below code identifies the allFormsData required for the current User Form.\n * Why? Because allFormsData will actually contain the whole journey's all\n * possible User Form steps. So, it is important to set the form data which\n * this particular User Form only has to LOCAL METHOD Variable.\n */\n const currentUserFormAllFormsData = this.filterAllFormsData(\n this.allFormsData,\n this.formsList\n );\n\n this.formsListCompleted = this.findCompletedFormsList(\n currentUserFormAllFormsData\n );\n\n this.formsList = this.markFormInFormsListAsCompleted(\n this.formsList,\n this.formsListCompleted\n );\n\n this.formsList = this.markFormInFormsListAsDisabled(\n this.formsList,\n this.formsListCompleted\n );\n\n this.formsList = getObjectDeepCopy(this.formsList);\n\n this.activeFormConfig = this.findActiveFormConfig(this.formsList);\n }\n\n @logMethod\n formHide(formKey: string): void {\n let form = getFormConfigByKey(this.formsList, formKey);\n\n form = setValueToObjectPath(form, \"hidden\", true);\n }\n\n @logMethod\n formShow(formKey: string): void {\n let form = getFormConfigByKey(this.formsList, formKey);\n\n form = setValueToObjectPath(form, \"hidden\", false);\n }\n\n async takeAction(action: any, object: any) {\n switch (action.key) {\n case ERendererActionKey.FORM_HIDE:\n this.formHide(action.props.formKey);\n break;\n case ERendererActionKey.FORM_SHOW:\n this.formShow(action.props.formKey);\n break;\n case EActionKey.SET_VALUE:\n const sources = new Source({\n USER_CONFIG: this.userConfig,\n ALL_FORMS_DATA: this.formsData\n });\n\n const sourceValue = await sources.getValueFromSource(\n action.props.value.source\n );\n sources.setValueToSource(action.props.value.destination, sourceValue);\n\n this.userConfig = sources.object.USER_CONFIG;\n this.formsData = sources.object.ALL_FORMS_DATA;\n break;\n default:\n break;\n }\n }\n\n @logMethod\n findFormsListLength(formsList: any[]): number {\n const _formsList = formsList.filter((form) => {\n if (checkObjectKeyExists(form, \"type\")) {\n if (form.type === \"form\") {\n if (checkObjectKeyExists(form, \"hidden\")) {\n if (!form.hidden) {\n return form;\n }\n }\n }\n } else if (checkObjectKeyExists(form, \"hidden\")) {\n if (!form.hidden) {\n return form;\n }\n }\n });\n\n return _formsList.length;\n }\n\n /**\n * Library Event Listeners\n */\n\n /**\n * FormList - Listens to event of opening the FormView of when any form is clicked in FormList\n * @param selectedForm string\n */\n @logMethod\n async handleOnClickSetActiveForm(selectedForm: string) {\n this.showForm = false;\n this.loader = true;\n\n const activeFormConfig = this.formsList.find((form) => {\n if (form.key === selectedForm) {\n return form;\n }\n });\n\n let formConfig: any = undefined;\n if (checkObjectKeyExists(activeFormConfig, \"props\")) {\n if (checkObjectKeyExists(activeFormConfig.props, \"url\")) {\n const formConfigFromUrl = await this.fetchFormConfig(\n activeFormConfig.props.url\n );\n formConfig = {\n ...activeFormConfig,\n ...formConfigFromUrl\n };\n } else {\n if (checkObjectKeyExists(activeFormConfig, \"fields\")) {\n formConfig = activeFormConfig;\n } else {\n console.error(\"No url or fields key in activeFormConfig\");\n }\n }\n } else {\n if (checkObjectKeyExists(activeFormConfig.formContent, \"url\")) {\n const formConfigFromUrl = await this.fetchFormConfig(\n activeFormConfig.formContent.url\n );\n formConfig = {\n ...activeFormConfig,\n ...formConfigFromUrl\n };\n } else {\n if (checkObjectKeyExists(activeFormConfig, \"fields\")) {\n formConfig = activeFormConfig;\n } else {\n console.error(\"No url or fields key in activeFormConfig\");\n }\n }\n }\n console.log(JSON.parse(JSON.stringify(formConfig)));\n\n formConfig = new Converter().updateFormConfigMiscellaneous(formConfig, {\n formsListLength: this.findFormsListLength(this.formsList)\n });\n\n this.activeFormConfig = {\n ...activeFormConfig,\n ...formConfig\n };\n\n this.activeFormConfig;\n\n if (this.hostElement.nativeElement.offsetWidth < 600) {\n this.showFormSections = false;\n this.showFormFields = true;\n } else if (this.hostElement.nativeElement.offsetWidth >= 600) {\n this.showFormSections = true;\n this.showFormFields = true;\n }\n\n this.showForm = true;\n this.loader = false;\n }\n\n /**\n * FormView - Listens to event of executing an API call from within the FormView and emits (read as passes) the same event to the library consumer.\n * @param e any\n */\n handleOnClickApiCall(e: any) {\n this.loader = true;\n this.onClickApiCall.emit(e);\n }\n\n /**\n * FormView - Listens to event of getting the Active Form's Data when the Form is Saved and emits (read as passes) the same event to the library consumer.\n * @param e any\n */\n handleOnClickSaveForm(e: any) {\n this.loader = true;\n\n this.getFormData.emit({\n [this.activeFormConfig.key]: e[\"data\"]\n });\n }\n\n /**\n * FormView - Listens to event of showing the Forms List in Mobile View.\n * @param e any\n */\n handleOnClickViewForms(e: any) {\n this.showFormSections = true;\n this.showForm = false;\n this.showFormFields = false;\n }\n\n /**\n * FormList - Listens to event of submitting all the forms and moving out of the library and also handles the validation of all the forms.\n * @param e any\n */\n @logMethod\n async handleOnClickSubmitForms(e: any) {\n const formsList: any[] = JSON.parse(JSON.stringify(this.formsList));\n\n for (let form of formsList) {\n if (\n !form.hidden &&\n form.required &&\n form.status !== EFormsListStatus.COMPLETED\n ) {\n this.toggleErrorNotification(true);\n setTimeout(() => {\n this.toggleErrorNotification(false);\n }, 3000);\n return;\n }\n }\n\n this.onClickSubmit.emit(e);\n }\n\n /**\n * Miscellaneous Methods\n */\n handleResize(formsList: any[]) {\n if (this.hostElement.nativeElement.offsetWidth < 600) {\n const isSingleForm = (formsList: any[]): boolean => {\n return formsList.length === 1;\n };\n if (!isSingleForm(formsList)) {\n this.showFormSections = true;\n this.showFormFields = false;\n this.showForm = false;\n } else {\n this.showFormSections = true;\n this.showFormFields = false;\n this.showForm = false;\n }\n this.isMobileView = true;\n } else {\n this.isMobileView = false;\n }\n }\n}\n","<div ngClass=\"kwikid-renderer\">\n <div\n ngClass=\"kwikid-layout-container\"\n *ngIf=\"!loading\"\n >\n <div\n ngClass=\"kwikid-sections-container\"\n *ngIf=\"showFormSections\"\n class=\"active\"\n [class.active]=\"showFormSections\"\n [class.mobile]=\"isMobileView\"\n >\n <kwikid-forms-list\n [showFormFields]=\"this.showFormFields\"\n [activeFormConfig]=\"this.activeFormConfig\"\n [userConfig]=\"this.userConfig\"\n [formsList]=\"this.formsList\"\n [stepConfig]=\"this.stepConfig\"\n [formsListCompleted]=\"this.formsListCompleted\"\n [isMobileView]=\"this.isMobileView\"\n (onClickSetActiveForm)=\"this.handleOnClickSetActiveForm($event)\"\n (onClickSubmitForms)=\"this.handleOnClickSubmitForms($event)\"\n ></kwikid-forms-list>\n </div>\n <div\n ngClass=\"kwikid-forms-container\"\n *ngIf=\"\n this.showForm &&\n this.showFormFields &&\n this.activeFormConfig !== undefined\n \"\n [class.active]=\"showFormFields\"\n [class.mobile]=\"isMobileView\"\n [@panelInOut]\n >\n <kwikid-form-view\n [formConfig]=\"this.activeFormConfig\"\n [allFormsData]=\"this.allFormsData\"\n [isMobileView]=\"this.isMobileView\"\n (onClickViewForms)=\"this.handleOnClickViewForms($event)\"\n (onClickSaveForm)=\"this.handleOnClickSaveForm($event)\"\n ></kwikid-form-view>\n </div>\n </div>\n</div>\n<div\n ngClass=\"kwikid-forms-renderer-loader\"\n *ngIf=\"loader\"\n>\n <span class=\"loader\"></span>\n</div>\n<tui-push\n id=\"error-notification\"\n *tuiPush=\"showErrorNotification\"\n heading=\"Please complete the required Forms!\"\n type=\"Error\"\n (close)=\"toggleErrorNotification(false)\"\n>\n <tui-svg\n src=\"tuiIconXCircle\"\n style=\"color: #fff !important\"\n >\n </tui-svg>\n</tui-push>\n","import { DragDropModule } from \"@angular/cdk/drag-drop\";\nimport { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport {\n KwikUIButtonIconModule,\n KwikUIButtonModule,\n KwikUIInputModule\n} from \"kwikui\";\nimport { KwikIDFormsBuilderComponent } from \"./builder.component\";\nimport { BasicElementConfigEditor } from \"./element-config-editor/editors/basic-element-config.editor.component\";\nimport { BasicRadioConfigEditor } from \"./element-config-editor/editors/basic/radio-config.editor.component\";\nimport { BasicTextConfigEditor } from \"./element-config-editor/editors/basic/text-config.editor.component\";\nimport { ElementConfigEditor } from \"./element-config-editor/element-config-editor.component\";\n\n@NgModule({\n declarations: [\n KwikIDFormsBuilderComponent,\n ElementConfigEditor,\n BasicElementConfigEditor,\n BasicTextConfigEditor,\n BasicRadioConfigEditor\n ],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n DragDropModule,\n KwikUIButtonModule,\n KwikUIInputModule,\n KwikUIButtonIconModule\n ],\n providers: [],\n exports: [KwikIDFormsBuilderComponent]\n})\nexport class KwikIDFormBuilderModule {}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { TuiLabelModule, TuiSvgModule } from \"@taiga-ui/core\";\nimport { TuiPushModule } from \"@taiga-ui/kit\";\nimport { KwikUIModule } from \"kwikui\";\nimport { KwikIDFormViewComponent } from \"./form-view.component\";\nimport { SafeHtmlPipe } from \"./pipes/safe-html.pipe\";\n\n@NgModule({\n declarations: [KwikIDFormViewComponent, SafeHtmlPipe],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n TuiLabelModule,\n TuiPushModule,\n TuiSvgModule,\n KwikUIModule\n ],\n exports: [KwikIDFormViewComponent]\n})\nexport class KwikIDFormViewModule {}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { TuiSvgModule } from \"@taiga-ui/core\";\nimport { KwikUIModule } from \"kwikui\";\nimport { KwikIDFormsListComponent } from \"./forms-list.component\";\nimport { SafeHtmlPipe } from \"./pipes/safe-html.pipe\";\n\n@NgModule({\n declarations: [KwikIDFormsListComponent, SafeHtmlPipe],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n KwikUIModule,\n TuiSvgModule\n ],\n exports: [KwikIDFormsListComponent]\n})\nexport class KwikIDFormsListModule {}\n","import { CommonModule } from \"@angular/common\";\nimport { HttpClientModule } from \"@angular/common/http\";\nimport { NgModule } from \"@angular/core\";\nimport { TuiLoaderModule, TuiSvgModule } from \"@taiga-ui/core\";\nimport { TuiPushModule } from \"@taiga-ui/kit\";\nimport { KwikUIModule } from \"kwikui\";\nimport { KwikIDFormViewModule } from \"./form-view/form-view.module\";\nimport { KwikIDFormsListModule } from \"./forms-list/forms-list.module\";\nimport { KwikIDFormsRendererComponent } from \"./renderer.component\";\n\n@NgModule({\n declarations: [KwikIDFormsRendererComponent],\n imports: [\n CommonModule,\n HttpClientModule,\n KwikIDFormViewModule,\n KwikIDFormsListModule,\n KwikUIModule,\n TuiLoaderModule,\n TuiPushModule,\n TuiSvgModule\n ],\n providers: [],\n exports: [KwikIDFormsRendererComponent]\n})\nexport class KwikIDFormRendererModule {}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { KwikIDFormBuilderModule } from \"./builder/builder.module\";\nimport { KwikIDFormRendererModule } from \"./renderer/renderer.module\";\n\n@NgModule({\n declarations: [],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n KwikIDFormBuilderModule,\n KwikIDFormRendererModule\n ],\n exports: [KwikIDFormBuilderModule, KwikIDFormRendererModule]\n})\nexport class KwikIDFormsModule {}\n","/*\n * Public API Surface of kwikid-forms\n */\n\n/* Builder Components */\nexport * from \"./lib/builder/builder.component\";\n\n/* Renderer Components */\nexport * from \"./lib/renderer/form-view/form-view.component\";\nexport * from \"./lib/renderer/forms-list/forms-list.component\";\nexport * from \"./lib/renderer/renderer.component\";\n\n/* KwikID Forms Component */\n\n/* All Modules in import order from bottom to top */\nexport * from \"./lib/builder/builder.module\";\nexport * from \"./lib/renderer/form-view/form-view.module\";\nexport * from \"./lib/renderer/forms-list/forms-list.module\";\nexport * from \"./lib/renderer/renderer.module\";\nexport * from \"./lib/kwikid-forms.module\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i2","i1.BasicTextConfigEditor","i2.BasicRadioConfigEditor","i4","i1.BasicElementConfigEditor","i1","i2.ElementConfigEditor","i3","i5","SafeHtmlPipe","i1.KwikIDFormViewService","i6","i7.SafeHtmlPipe","i4.SafeHtmlPipe","i1.KwikIDFormsListComponent","i2.KwikIDFormViewComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"kwikid-forms.js","sources":["../../../projects/kwikid-forms/src/lib/builder/shared/elements.ts","../../../projects/kwikid-forms/src/lib/builder/shared/helpers.ts","../../../projects/kwikid-forms/src/lib/builder/element-config-editor/editors/basic/text-config.editor.component.ts","../../../projects/kwikid-forms/src/lib/builder/element-config-editor/editors/basic/radio-config.editor.component.ts","../../../projects/kwikid-forms/src/lib/builder/element-config-editor/editors/basic-element-config.editor.component.ts","../../../projects/kwikid-forms/src/lib/builder/element-config-editor/element-config-editor.component.ts","../../../projects/kwikid-forms/src/lib/builder/element-config-editor/element-config-editor.component.html","../../../projects/kwikid-forms/src/lib/builder/builder.component.ts","../../../projects/kwikid-forms/src/lib/builder/builder.component.html","../../../projects/kwikid-forms/src/lib/renderer/form-view/definitions/form-view.fields.definition.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/helpers/form-view.fields.helper.ts","../../../projects/kwikid-forms/src/lib/renderer/config-converter.helper.ts","../../../projects/kwikid-forms/src/lib/renderer/forms-list/forms-list.definitions.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/definitions/form-view.actions.definition.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/definitions/form-view.apis.definition.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/definitions/form-view.commons.definition.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/helpers/form-view.defaults.helper.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/helpers/form-view.form-validations.helper.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/form-view.service.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/helpers/form-view.apis.helper.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/pipes/safe-html.pipe.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/form-view.component.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/form-view.component.html","../../../projects/kwikid-forms/src/lib/renderer/forms-list/pipes/safe-html.pipe.ts","../../../projects/kwikid-forms/src/lib/renderer/forms-list/forms-list.component.ts","../../../projects/kwikid-forms/src/lib/renderer/forms-list/forms-list.component.html","../../../projects/kwikid-forms/src/lib/renderer/renderer.actions.definitions.ts","../../../projects/kwikid-forms/src/lib/renderer/renderer.helper.ts","../../../projects/kwikid-forms/src/lib/renderer/renderer.component.ts","../../../projects/kwikid-forms/src/lib/renderer/renderer.component.html","../../../projects/kwikid-forms/src/lib/builder/builder.module.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/form-view.module.ts","../../../projects/kwikid-forms/src/lib/renderer/forms-list/forms-list.module.ts","../../../projects/kwikid-forms/src/lib/renderer/renderer.module.ts","../../../projects/kwikid-forms/src/lib/kwikid-forms.module.ts","../../../projects/kwikid-forms/src/public_api.ts","../../../projects/kwikid-forms/src/kwikid-forms.ts"],"sourcesContent":["export class Elements {\n commonValidators = {\n max: null,\n maxLength: null,\n min: null,\n minLength: null,\n required: true\n };\n commonProperties = {\n placeholder: \"\",\n readOnly: false\n };\n commonCore = {\n key: \"\",\n label: \"\",\n disabled: false,\n messages: [],\n default: {\n value: true\n }\n };\n basic: Array<any> = [\n {\n elementTitle: \"Text\",\n elementType: \"text\",\n isElement: true,\n elementCategory: \"basic\",\n ...this.commonCore,\n validators: {\n ...this.commonValidators\n },\n properties: {\n ...this.commonProperties,\n case: \"default\"\n }\n },\n {\n elementTitle: \"Radio\",\n elementType: \"radio\",\n isElement: true,\n elementCategory: \"basic\",\n ...this.commonCore,\n validators: {\n ...this.commonValidators\n },\n properties: {\n ...this.commonProperties,\n orientation: \"vertical\"\n }\n }\n ];\n documents: Array<any> = [\n {\n elementTitle: \"Aadhaar Number\",\n elementType: \"aadhaar-number\",\n isElement: true,\n elementCategory: \"document\",\n ...this.commonCore,\n validators: {\n ...this.commonValidators\n },\n properties: {\n ...this.commonProperties,\n mask: \"####-####-####\"\n }\n }\n ];\n others: Array<any> = [\n {\n elementTitle: \"Gender\",\n elementType: \"gender\",\n isElement: true,\n elementCategory: \"others\",\n ...this.commonCore,\n validators: {\n ...this.commonValidators\n },\n properties: {\n ...this.commonProperties\n }\n }\n ];\n templates: Array<any> = [\n {\n elementTitle: \"PAN with NSDL\",\n elementType: \"pan_with_nsdl\",\n isElement: true,\n elementCategory: \"template\",\n ...this.commonCore,\n validators: {\n ...this.commonValidators\n },\n properties: {\n ...this.commonProperties\n }\n }\n ];\n elementMapping = {\n basic: [\"text\", \"radio\"],\n documents: [\"aadhaar-number\"],\n others: [],\n templates: []\n };\n}\n","export function revisedRandId() {\n return Math.random()\n .toString(36)\n .replace(/[^a-z]+/g, \"\");\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n SimpleChanges\n} from \"@angular/core\";\nimport { FormControl, FormGroup } from \"@angular/forms\";\nimport { logMethod } from \"kwikid-toolkit\";\n\n@Component({\n selector: \"basic-text-config-editor\",\n template: `\n <form [formGroup]=\"basicTextFormGroup\">\n <fieldset formGroupName=\"properties\">\n <legend>Miscellaneous</legend>\n <div class=\"form-group\">\n <label for=\"basic-text-config-case\">Case</label>\n <select\n class=\"form-control\"\n formControlName=\"case\"\n id=\"basic-text-config-case\"\n >\n <option\n [ngValue]=\"null\"\n disabled\n >Select Case</option\n >\n <option\n *ngFor=\"let case of ['default', 'upper', 'lower']\"\n [ngValue]=\"case\"\n >\n {{ case }}\n </option>\n </select>\n </div>\n </fieldset>\n </form>\n `,\n styles: [``]\n})\nexport class BasicTextConfigEditor implements OnInit {\n @Input()\n saveBasicClickCounter: number = 0;\n\n @Input()\n elementConfig: any = {\n properties: {\n case: \"default\"\n }\n };\n\n @Output()\n updateElement = new EventEmitter<any>();\n\n basicTextFormGroup: FormGroup = undefined;\n\n constructor() {}\n\n @logMethod\n ngOnInit() {\n this.createBasicTextFormGroup();\n }\n\n @logMethod\n ngOnChanges(changes: SimpleChanges) {\n const verifyChange = (key: string) => {\n return changes.hasOwnProperty(key) && !changes[key].firstChange;\n };\n\n if (verifyChange(\"elementConfig\")) {\n this.elementConfig = changes.elementConfig.currentValue;\n\n this.createBasicTextFormGroup();\n }\n if (verifyChange(\"saveBasicClickCounter\")) {\n if (\n changes.saveBasicClickCounter.previousValue !==\n changes.saveBasicClickCounter.currentValue\n ) {\n this.saveBasicClickCounter = changes.saveBasicClickCounter.currentValue;\n\n this.handleOnSave();\n }\n }\n }\n\n @logMethod\n createBasicTextFormGroup(): void {\n this.basicTextFormGroup = new FormGroup({\n properties: new FormGroup({\n case: new FormControl(this.elementConfig.properties.case, {\n updateOn: \"change\"\n })\n })\n });\n this.basicTextFormGroup.updateValueAndValidity();\n }\n\n @logMethod\n handleOnSave() {\n let basicElementConfig = this.basicTextFormGroup.getRawValue();\n\n this.updateElement.emit({\n basicElementConfig: basicElementConfig\n });\n }\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n SimpleChanges\n} from \"@angular/core\";\nimport { FormArray, FormControl, FormGroup } from \"@angular/forms\";\nimport { logMethod, setMissingKeyValue } from \"kwikid-toolkit\";\n\n@Component({\n selector: \"basic-radio-config-editor\",\n template: `\n <form [formGroup]=\"basicRadioFormGroup\">\n <fieldset formArrayName=\"options\">\n <legend>Options</legend>\n <ng-container\n *ngFor=\"let option of optionsArray.controls; let i = index\"\n >\n <div [formGroupName]=\"i\">\n <div class=\"form-group\">\n <label for=\"basic-radio-config-placeholder\">label</label>\n <input\n class=\"form-control\"\n formControlName=\"label\"\n id=\"basic-radio-config-placeholder\"\n type=\"text\"\n />\n </div>\n <div class=\"form-group\">\n <label for=\"basic-radio-config-disabled\">disabled</label>\n <select\n class=\"form-control\"\n formControlName=\"disabled\"\n id=\"basic-radio-config-disabled\"\n >\n <option\n [ngValue]=\"null\"\n disabled\n >Select Disability</option\n >\n <option\n *ngFor=\"let disabled of [true, false]\"\n [ngValue]=\"disabled\"\n >\n {{ disabled }}\n </option>\n </select>\n </div>\n <div class=\"form-group\">\n <label for=\"basic-radio-config-description\">description</label>\n <input\n class=\"form-control\"\n formControlName=\"description\"\n id=\"basic-radio-config-description\"\n type=\"text\"\n />\n </div>\n </div>\n <div class=\"form-array-actions\">\n <button (click)=\"removeOption(i)\">Remove</button>\n <button (click)=\"addOption()\">Add</button>\n </div>\n </ng-container>\n </fieldset>\n <fieldset formGroupName=\"properties\">\n <legend>Miscellaneous</legend>\n <div class=\"form-group\">\n <label for=\"basic-radio-config-orientation\">Orientation</label>\n <select\n class=\"form-control\"\n formControlName=\"orientation\"\n id=\"basic-radio-config-orientation\"\n >\n <option\n [ngValue]=\"null\"\n disabled\n >Select Orientation</option\n >\n <option\n *ngFor=\"let orientation of ['horizontal', 'vertical']\"\n [ngValue]=\"orientation\"\n >\n {{ orientation }}\n </option>\n </select>\n </div>\n </fieldset>\n </form>\n `,\n styles: [\n `\n .form-array-actions {\n display: flex;\n flex-direction: row;\n align-content: center;\n justify-content: center;\n align-items: center;\n gap: 1rem;\n }\n `\n ]\n})\nexport class BasicRadioConfigEditor implements OnInit {\n readonly optionType = {\n label: \"\",\n disabled: false,\n description: \"\"\n };\n\n @Input()\n saveBasicClickCounter: number = 0;\n\n @Input()\n elementConfig: any = {\n properties: {\n orientation: \"horizontal\"\n },\n options: []\n };\n\n @Output()\n updateElement = new EventEmitter<any>();\n\n basicRadioFormGroup: FormGroup = undefined;\n\n constructor() {}\n\n @logMethod\n ngOnInit() {\n this.createBasicRadioFormGroup();\n }\n\n @logMethod\n ngOnChanges(changes: SimpleChanges) {\n const verifyChange = (key: string) => {\n return changes.hasOwnProperty(key) && !changes[key].firstChange;\n };\n\n if (verifyChange(\"elementConfig\")) {\n this.elementConfig = changes.elementConfig.currentValue;\n\n this.createBasicRadioFormGroup();\n }\n if (verifyChange(\"saveBasicClickCounter\")) {\n if (\n changes.saveBasicClickCounter.previousValue !==\n changes.saveBasicClickCounter.currentValue\n ) {\n this.saveBasicClickCounter = changes.saveBasicClickCounter.currentValue;\n\n this.handleOnSave();\n }\n }\n }\n\n @logMethod\n createBasicRadioFormGroup(): void {\n let optionsFormArray = [];\n\n this.elementConfig = setMissingKeyValue(this.elementConfig, \"options\", [\n this.optionType\n ]);\n\n for (let option of this.elementConfig.options) {\n optionsFormArray.push(this.createOptionConfigFormGroup(option));\n }\n\n this.basicRadioFormGroup = new FormGroup({\n properties: new FormGroup({\n orientation: new FormControl(\n this.elementConfig.properties.orientation,\n {\n updateOn: \"change\"\n }\n )\n }),\n options: new FormArray(optionsFormArray)\n });\n this.basicRadioFormGroup.updateValueAndValidity();\n }\n\n @logMethod\n handleOnSave() {\n let basicElementConfig = this.basicRadioFormGroup.getRawValue();\n\n this.updateElement.emit({\n basicElementConfig: basicElementConfig\n });\n }\n\n get optionsArray(): FormArray {\n return this.basicRadioFormGroup.get(\"options\") as FormArray;\n }\n\n @logMethod\n createOptionConfigFormGroup(optionConfig: any): FormGroup {\n const optionFormGroup = new FormGroup({\n label: new FormControl(optionConfig.label, {\n updateOn: \"change\"\n }),\n disabled: new FormControl(optionConfig.disabled, {\n updateOn: \"change\"\n }),\n description: new FormControl(optionConfig.description, {\n updateOn: \"change\"\n })\n });\n return optionFormGroup;\n }\n\n @logMethod\n addOption() {\n const options = this.basicRadioFormGroup.get(\"options\") as FormArray;\n options.push(this.createOptionConfigFormGroup(this.optionType));\n }\n\n @logMethod\n removeOption(optionIndex: number) {\n const options = this.basicRadioFormGroup.get(\"options\") as FormArray;\n if (options.length > 1) {\n options.removeAt(optionIndex);\n } else {\n this.addOption();\n // options.reset();\n }\n }\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n SimpleChanges\n} from \"@angular/core\";\nimport { FormControl, FormGroup } from \"@angular/forms\";\nimport { logMethod, mergeObjects } from \"kwikid-toolkit\";\n\n@Component({\n selector: \"basic-element-config-editor\",\n template: `\n <ng-container *ngIf=\"elementConfig !== undefined\">\n <table>\n <tr>\n <td>Id</td>\n <td>{{ elementConfig.elementId }}</td>\n </tr>\n <tr>\n <td>Type</td>\n <td>{{ elementConfig.elementType }}</td>\n </tr>\n <tr>\n <td>Category</td>\n <td>{{ elementConfig.elementCategory }}</td>\n </tr>\n </table>\n </ng-container>\n <form [formGroup]=\"basicFormGroup\">\n <fieldset>\n <legend>Standard</legend>\n <div class=\"form-group\">\n <label for=\"basic-field-label\">Label</label>\n <input\n type=\"text\"\n class=\"form-control\"\n id=\"basic-field-label\"\n formControlName=\"label\"\n required\n />\n </div>\n <div class=\"form-group\">\n <label for=\"basic-field-key\">Key</label>\n <input\n type=\"text\"\n class=\"form-control\"\n id=\"basic-field-key\"\n formControlName=\"key\"\n required\n />\n </div>\n <div class=\"form-group\">\n <label for=\"basic-input-property-disabled\">disabled</label>\n <select\n class=\"form-control\"\n formControlName=\"disabled\"\n id=\"basic-input-property-disabled\"\n >\n <option\n [ngValue]=\"null\"\n disabled\n >Select either true or false</option\n >\n <option\n *ngFor=\"let disabled of [true, false]\"\n [ngValue]=\"disabled\"\n >\n {{ disabled }}\n </option>\n </select>\n </div>\n </fieldset>\n <fieldset formGroupName=\"default\">\n <legend>Default</legend>\n <div class=\"form-group\">\n <label for=\"basic-input-property-value\">value</label>\n <select\n class=\"form-control\"\n formControlName=\"value\"\n id=\"basic-input-property-value\"\n >\n <option\n [ngValue]=\"null\"\n value\n >Select either true or false</option\n >\n <option\n *ngFor=\"let value of [true, false]\"\n [ngValue]=\"value\"\n >\n {{ value }}\n </option>\n </select>\n </div>\n </fieldset>\n <fieldset formGroupName=\"validators\">\n <legend>Validators</legend>\n <div class=\"form-group\">\n <label for=\"basic-input-validators-min\">min</label>\n <input\n class=\"form-control\"\n formControlName=\"min\"\n id=\"basic-input-validators-min\"\n type=\"number\"\n />\n </div>\n <div class=\"form-group\">\n <label for=\"basic-input-validators-max\">max</label>\n <input\n class=\"form-control\"\n formControlName=\"max\"\n id=\"basic-input-validators-max\"\n type=\"number\"\n />\n </div>\n <div class=\"form-group\">\n <label for=\"basic-input-validators-minLength\">minLength</label>\n <input\n class=\"form-control\"\n formControlName=\"minLength\"\n id=\"basic-input-validators-minLength\"\n type=\"number\"\n />\n </div>\n <div class=\"form-group\">\n <label for=\"basic-input-validators-maxLength\">maxLength</label>\n <input\n class=\"form-control\"\n formControlName=\"maxLength\"\n id=\"basic-input-validators-maxLength\"\n type=\"number\"\n />\n </div>\n <div class=\"form-group\">\n <label for=\"basic-input-property-required\">required</label>\n <select\n class=\"form-control\"\n formControlName=\"required\"\n id=\"basic-input-property-required\"\n >\n <option\n [ngValue]=\"null\"\n disabled\n >Select either true or false</option\n >\n <option\n *ngFor=\"let required of [true, false]\"\n [ngValue]=\"required\"\n >\n {{ required }}\n </option>\n </select>\n </div>\n </fieldset>\n <fieldset formGroupName=\"properties\">\n <legend>Properties</legend>\n <div class=\"form-group\">\n <label for=\"basic-input-property-placeholder\">Placeholder</label>\n <input\n class=\"form-control\"\n formControlName=\"placeholder\"\n id=\"basic-input-property-placeholder\"\n type=\"text\"\n />\n </div>\n <div class=\"form-group\">\n <label for=\"basic-input-property-readonly\">readOnly</label>\n <select\n class=\"form-control\"\n formControlName=\"readOnly\"\n id=\"basic-input-property-readonly\"\n >\n <option\n [ngValue]=\"null\"\n disabled\n >Select either true or false</option\n >\n <option\n *ngFor=\"let readonly of [true, false]\"\n [ngValue]=\"readonly\"\n >\n {{ readonly }}\n </option>\n </select>\n </div>\n </fieldset>\n <ng-container [ngSwitch]=\"elementType\">\n <ng-container *ngSwitchCase=\"'text'\">\n <basic-text-config-editor\n [saveBasicClickCounter]=\"saveBasicClickCounter\"\n [elementConfig]=\"elementConfig\"\n (updateElement)=\"handleOnSaveUpdateElement($event)\"\n ></basic-text-config-editor>\n </ng-container>\n <ng-container *ngSwitchCase=\"'radio'\">\n <basic-radio-config-editor\n [saveBasicClickCounter]=\"saveBasicClickCounter\"\n [elementConfig]=\"elementConfig\"\n (updateElement)=\"handleOnSaveUpdateElement($event)\"\n ></basic-radio-config-editor>\n </ng-container>\n </ng-container>\n </form>\n `,\n styles: [\n `\n :host {\n display: flex;\n flex-direction: column;\n align-content: center;\n justify-content: flex-start;\n align-items: stretch;\n gap: 1rem;\n }\n `\n ]\n})\nexport class BasicElementConfigEditor implements OnInit {\n @Input()\n saveClickCounter: number = 0;\n\n @Input()\n elementConfig: any = {\n label: \"\",\n key: \"\",\n disabled: false,\n default: {\n value: true\n },\n validators: {\n min: null,\n max: null,\n minLength: null,\n maxLength: null,\n required: true\n },\n properties: {\n placeholder: \"\",\n readOnly: false\n }\n };\n\n @Output()\n updateElement = new EventEmitter<any>();\n\n elementType: string = \"\";\n saveBasicClickCounter: number = 0;\n\n basicFormGroup: FormGroup = undefined;\n\n constructor() {}\n\n @logMethod\n ngOnInit() {\n this.assignVariables();\n this.createBasicFormGroup();\n }\n\n @logMethod\n ngOnChanges(changes: SimpleChanges) {\n const verifyChange = (key: string) => {\n return changes.hasOwnProperty(key) && !changes[key].firstChange;\n };\n\n if (verifyChange(\"elementConfig\")) {\n this.elementConfig = changes.elementConfig.currentValue;\n this.assignVariables();\n this.createBasicFormGroup();\n }\n\n if (verifyChange(\"saveClickCounter\")) {\n if (\n changes.saveClickCounter.previousValue !==\n changes.saveClickCounter.currentValue\n ) {\n this.saveClickCounter = changes.saveClickCounter.currentValue;\n\n this.handleOnSave();\n }\n }\n }\n\n @logMethod\n assignVariables() {\n this.elementType = this.elementConfig.elementType;\n }\n\n @logMethod\n createBasicFormGroup() {\n this.basicFormGroup = new FormGroup({\n label: new FormControl(this.elementConfig.label),\n key: new FormControl(this.elementConfig.key),\n disabled: new FormControl(this.elementConfig.disabled),\n default: new FormGroup({\n value: new FormControl(this.elementConfig.default.value, {\n updateOn: \"change\"\n })\n }),\n validators: new FormGroup({\n min: new FormControl(this.elementConfig.validators.min, {\n updateOn: \"change\"\n }),\n minLength: new FormControl(this.elementConfig.validators.minLength, {\n updateOn: \"change\"\n }),\n max: new FormControl(this.elementConfig.validators.max, {\n updateOn: \"change\"\n }),\n maxLength: new FormControl(this.elementConfig.validators.maxLength, {\n updateOn: \"change\"\n }),\n required: new FormControl(this.elementConfig.validators.required, {\n updateOn: \"change\"\n })\n }),\n properties: new FormGroup({\n placeholder: new FormControl(\n this.elementConfig.properties.placeholder,\n {\n updateOn: \"change\"\n }\n ),\n readOnly: new FormControl(this.elementConfig.properties.readOnly, {\n updateOn: \"change\"\n })\n })\n });\n this.basicFormGroup.updateValueAndValidity();\n }\n\n @logMethod\n handleOnSaveUpdateElement(event: any) {\n // Get Common Config\n let basicElementCommonConfig = this.basicFormGroup.getRawValue();\n basicElementCommonConfig.key = basicElementCommonConfig.key.replace(\n /\\s/g,\n \"_\"\n );\n\n // Get Basic Element Config\n const basicElementConfig = event.basicElementConfig;\n\n this.elementConfig = mergeObjects(\n this.elementConfig,\n basicElementCommonConfig,\n basicElementConfig\n );\n\n this.updateElement.emit({ elementConfig: this.elementConfig });\n }\n\n @logMethod\n handleOnSave() {\n this.saveBasicClickCounter++;\n }\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n ViewEncapsulation\n} from \"@angular/core\";\nimport { FormControl, FormGroup } from \"@angular/forms\";\nimport { logMethod } from \"kwikid-toolkit\";\n\n@Component({\n selector: \"element-config-editor\",\n templateUrl: \"./element-config-editor.component.html\",\n styleUrls: [\n \"./element-config-editor.component.scss\",\n \"../shared/shared.scss\"\n ],\n encapsulation: ViewEncapsulation.None\n})\nexport class ElementConfigEditor implements OnInit, OnChanges {\n @Input()\n formKey: string = \"\";\n\n @Input()\n elementConfig: any = undefined;\n\n @Output()\n updateElement = new EventEmitter<any>();\n\n elementType: string = \"\";\n elementCategory: string = \"\";\n elementEditorFormGroup: FormGroup = undefined;\n\n saveClickCounter: number = 0;\n\n constructor() {}\n\n @logMethod\n ngOnInit() {}\n\n @logMethod\n ngOnChanges(changes: SimpleChanges) {\n const verifyChange = (key: string) => {\n return changes.hasOwnProperty(key) && !changes[key].firstChange;\n };\n\n if (verifyChange(\"formKey\")) {\n this.formKey = changes.formKey.currentValue;\n }\n if (verifyChange(\"elementConfig\")) {\n this.elementConfig = changes.elementConfig.currentValue;\n\n if (this.elementConfig !== undefined) {\n this.elementType = this.elementConfig.elementType;\n this.elementCategory = this.elementConfig.elementCategory;\n } else {\n throw new Error(\"'elementConfig' doesn't have 'elementType'\");\n }\n }\n }\n\n @logMethod\n updateFormGroup() {\n this.elementEditorFormGroup = new FormGroup({\n properties: new FormGroup({\n orientation: new FormControl(\n this.elementConfig.properties.orientation,\n {\n updateOn: \"change\"\n }\n )\n })\n });\n this.elementEditorFormGroup.updateValueAndValidity();\n }\n\n @logMethod\n handleOnSaveUpdateElement(event: any): void {\n this.updateElement.emit(event);\n }\n\n @logMethod\n handleOnClickSave() {\n this.saveClickCounter++;\n }\n}\n","<div class=\"container\" *ngIf=\"elementConfig\">\n <div class=\"element-config-editor-header\">\n '{{ elementConfig.elementType }}' Element Config Editor\n </div>\n <div class=\"element-config-editor-body\"\n ><ng-container [ngSwitch]=\"elementCategory\">\n <!-- Basic -->\n <ng-container *ngSwitchCase=\"'basic'\">\n <basic-element-config-editor\n [saveClickCounter]=\"saveClickCounter\"\n [elementConfig]=\"elementConfig\"\n (updateElement)=\"handleOnSaveUpdateElement($event)\"\n ></basic-element-config-editor>\n </ng-container>\n </ng-container>\n </div>\n <div class=\"element-config-editor-footer\">\n <button\n class=\"save-button\"\n type=\"submit\"\n (click)=\"handleOnClickSave()\"\n >\n Save\n </button></div\n >\n</div>\n","import {\n CdkDrag,\n copyArrayItem,\n moveItemInArray\n} from \"@angular/cdk/drag-drop\";\nimport { Component, OnInit } from \"@angular/core\";\nimport { FormControl, FormGroup, Validators } from \"@angular/forms\";\nimport {\n getObjectFromLocalStorage,\n isEmptyValue,\n isNotEmptyValue,\n logMethod\n} from \"kwikid-toolkit\";\nimport { Elements } from \"./shared/elements\";\nimport { revisedRandId } from \"./shared/helpers\";\n\n@Component({\n selector: \"kwikid-forms-builder\",\n templateUrl: \"./builder.component.html\",\n styleUrls: [\"shared/shared.scss\", \"./builder.component.scss\"]\n})\nexport class KwikIDFormsBuilderComponent implements OnInit {\n formKey: string = \"\";\n formTitle: string = \"\";\n builderFormGroup: FormGroup = undefined;\n\n basicElements: Array<any> = new Elements().basic;\n documentElements: Array<any> = new Elements().documents;\n otherElements: Array<any> = new Elements().others;\n templateElements: Array<any> = new Elements().templates;\n\n elementsMapping: any = new Elements().elementMapping;\n\n formElementsDragList: Array<any> = [];\n formElementsDropList: Array<any> = [];\n\n elementEditorElementConfig: any = undefined;\n\n constructor() {\n this.builderFormGroup = new FormGroup({\n formKey: new FormControl(\"\", [Validators.required]),\n formTitle: new FormControl(\"\", [Validators.required])\n });\n\n const formDropConfig = getObjectFromLocalStorage(\"formDropConfig\");\n\n if (isNotEmptyValue(formDropConfig)) {\n this.formKey = formDropConfig.key;\n this.formTitle = formDropConfig.title;\n const formFields = formDropConfig.fields.map((item) => {\n item.elementId = revisedRandId();\n item.elementCategory = this.elementsMapping.basic.includes(item.type)\n ? \"basic\"\n : this.elementsMapping.documents.includes(item.type)\n ? \"document\"\n : \"others\";\n item.elementType =\n item.elementCategory === \"basic\" ||\n item.elementCategory === \"document\"\n ? item.type\n : String(`NA<>${item.type}`);\n item.isElement = true;\n const elementFiltered =\n item.elementCategory === \"basic\"\n ? this.basicElements.find(\n (element) => element.elementType === item.type\n )\n : item.elementCategory === \"document\"\n ? this.documentElements.find(\n (element) => element.elementType === item.type\n )\n : item.elementCategory === \"others\"\n ? this.otherElements.find(\n (element) => element.elementType === item.type\n )\n : undefined;\n item.elementTitle = isEmptyValue(elementFiltered)\n ? item.elementCategory + \"::\" + item.elementType\n : elementFiltered.elementTitle;\n\n return item;\n });\n\n this.formElementsDropList = formFields;\n }\n }\n\n ngOnInit() {\n this.formElementsDragList = [\n { isElement: false, elementTitle: \"Basic Elements\" },\n ...this.basicElements,\n { isElement: false, elementTitle: \"Document Elements\" },\n ...this.documentElements,\n { isElement: false, elementTitle: \"Other Elements\" },\n ...this.otherElements\n ];\n\n for (let formElementsDragItem of this.formElementsDragList) {\n formElementsDragItem.elementId = revisedRandId();\n }\n }\n\n handleOnChange(\n event: { target: { value: any } },\n id: string | number,\n key: string | number,\n idx: any\n ) {\n const _value = event.target.value;\n }\n\n // DOM Event Handlers\n @logMethod\n handleGetKeyValue(e: any) {\n this.builderFormGroup.patchValue(\n {\n [e.key]: e.value\n },\n { emitEvent: false }\n );\n }\n\n @logMethod\n drop(event: any, elementCategory: string) {\n // let item = JSON.parse(JSON.stringify(event));\n if (event.previousContainer !== event.container) {\n console.log(\"copying\");\n if (event.item.data.isElement) {\n // Clone the item that was dropped.\n const draggedItemIndex = this.formElementsDragList.findIndex((item) => {\n return item.elementId === event.item.data.elementId;\n });\n\n copyArrayItem(\n this.formElementsDragList,\n this.formElementsDropList,\n draggedItemIndex,\n event.currentIndex\n );\n\n this.formElementsDragList = JSON.parse(\n JSON.stringify(\n this.formElementsDragList.map((item) => {\n item.elementId = revisedRandId();\n return item;\n })\n )\n );\n }\n } else {\n console.log(\"moving\");\n moveItemInArray(\n event.container.data,\n event.previousIndex,\n event.currentIndex\n );\n }\n }\n\n @logMethod\n exit(event: any, elementCategory: string) {}\n\n @logMethod\n enter(event: any, elementCategory: string) {}\n\n /** Predicate function that only allows isElement: true items to be dropped into a list. */\n isElementPredicate(item: CdkDrag<any>) {\n return item.data.isElement;\n }\n\n @logMethod\n removeElement(idx: number, id: string) {\n this.formElementsDropList.splice(idx, 1);\n }\n\n @logMethod\n editElement(idx: number, item: any) {\n this.elementEditorElementConfig = item;\n }\n\n @logMethod\n handleOnSaveUpdateElement(event: any) {}\n\n handleOnClickSaveForms(event: any) {\n if (isEmptyValue(this.formKey)) {\n window.alert(\"Please provide Form Key\");\n return;\n } else {\n this.formKey = this.formKey.replace(/\\s/g, \"_\").toLocaleUpperCase();\n }\n if (isEmptyValue(this.formTitle)) {\n window.alert(\"Please provide Form Title\");\n return;\n }\n\n let finalFields = JSON.parse(JSON.stringify(this.formElementsDropList));\n finalFields = finalFields.map((item) => {\n if (item.elementType.startsWith(\"NA<>\", 0)) {\n delete item.elementId;\n delete item.elementType;\n delete item.elementTitle;\n delete item.elementCategory;\n delete item.isElement;\n\n return item;\n }\n delete item.elementId;\n delete item.elementType;\n delete item.elementTitle;\n delete item.elementCategory;\n delete item.isElement;\n\n if (item.default.value) {\n item.default = {\n value: {\n is_found: false,\n value: \"\",\n sources: [\n {\n key: \"OBJECT\",\n props: {\n object: {\n key: \"ALL_FORMS_DATA\",\n path: String(`$.${this.formKey}.${item.key}`)\n }\n },\n value: \"\",\n validation: {\n is_valid: false,\n triggers: [\"ON_INIT\"],\n rules: [\n {\n id: \"1\",\n key: \"VALUE_CHECK\",\n props: {\n value: {\n source: {\n key: \"OBJECT\",\n props: {\n object: {\n key: \"ALL_FORMS_DATA\",\n path: String(`$.${this.formKey}.${item.key}`)\n }\n }\n }\n },\n pattern: { key: \"IS_NOT_EMPTY\" }\n }\n }\n ],\n actions: [\n {\n id: \"1\",\n key: \"SET_FIELD_DEFAULT_VALUE\",\n condition: \"1\",\n props: {\n fieldKey: String(`${item.key}`),\n value: {\n source: {\n key: \"OBJECT\",\n props: {\n object: {\n key: \"ALL_FORMS_DATA\",\n path: String(`$.${this.formKey}.${item.key}`)\n }\n }\n }\n }\n }\n }\n ]\n }\n }\n ]\n }\n };\n } else {\n item.default = {\n value: {\n is_found: false,\n value: \"\",\n sources: []\n }\n };\n }\n\n return item;\n });\n const finalFormConfig = {\n key: this.formKey,\n title: this.formTitle,\n fields: finalFields\n };\n\n localStorage.setItem(\"rendererFormConfig\", JSON.stringify(finalFormConfig));\n localStorage.setItem(\n \"builderFormConfig\",\n JSON.stringify({\n key: this.formKey,\n title: this.formTitle,\n fields: this.formElementsDropList\n })\n );\n\n console.log(finalFormConfig);\n console.log(this.formElementsDropList);\n }\n}\n","<div class=\"container\">\n <div class=\"wrapper\">\n <div class=\"builder-header\">\n <div class=\"builder-title\">KwikID Form Builder</div>\n <form\n [formGroup]=\"builderFormGroup\"\n class=\"builder-form\"\n >\n <kwikui-input\n [label]=\"'Form Key'\"\n [id]=\"'form_key'\"\n [type]=\"'text'\"\n [formControlName]=\"'formKey'\"\n [formControl]=\"builderFormGroup.controls['formKey']\"\n [disabled]=\"false\"\n [placeholder]=\"'Please enter a Form Key'\"\n [focus]=\"false\"\n [invalid]=\"false\"\n [case]=\"'upper'\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input>\n <kwikui-input\n [label]=\"'Form Title'\"\n [id]=\"'form_title'\"\n [type]=\"'text'\"\n [formControlName]=\"'formTitle'\"\n [formControl]=\"builderFormGroup.controls['formTitle']\"\n [disabled]=\"false\"\n [placeholder]=\"'Please enter a Form Title'\"\n [focus]=\"false\"\n [invalid]=\"false\"\n [case]=\"'default'\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input>\n <kwikui-button\n [disabled]=\"builderFormGroup.valid\"\n id=\"save_form_btn\"\n label=\"Save Form\"\n [showLoader]=\"false\"\n styles=\"\"\n class=\"\"\n type=\"button\"\n appearance=\"primary\"\n icon=\"\"\n iconRight=\"\"\n [shape]=\"'rounded'\"\n size=\"m\"\n (onClick)=\"handleOnClickSaveForms($event)\"\n ></kwikui-button>\n </form>\n </div>\n <div class=\"builder-body\">\n <div class=\"form-elements-drag-wrapper\">\n <div\n class=\"form-elements-drag\"\n cdkDropList\n [cdkDropListData]=\"formElementsDragList\"\n cdkDropListSortingDisabled\n [cdkDropListConnectedTo]=\"[formElementsList]\"\n (cdkDropListExited)=\"exit($event, 'other')\"\n (cdkDropListEntered)=\"enter($event, 'other')\"\n >\n <ng-container\n *ngFor=\"let formElementDragItem of formElementsDragList\"\n >\n <ng-container *ngIf=\"formElementDragItem.isElement\">\n <div\n class=\"form-element-drag\"\n cdkDrag\n [cdkDragData]=\"formElementDragItem\"\n >\n ⋮⋮ {{ formElementDragItem.elementTitle }}\n <!-- <ng-container *ngComponentOutlet=\"formElementDragItem.component\"></ng-container> -->\n </div>\n <div\n class=\"form-element-drag\"\n *cdkDragPlaceholder\n >\n {{ formElementDragItem.elementTitle }}\n </div>\n </ng-container>\n <ng-container *ngIf=\"!formElementDragItem.isElement\">\n <div class=\"form-element-category\">\n {{ formElementDragItem.elementTitle }}\n </div>\n </ng-container>\n </ng-container>\n </div>\n </div>\n <div\n class=\"form-elements-drop-wrapper\"\n cdkDropList\n #formElementsList=\"cdkDropList\"\n [cdkDropListData]=\"formElementsDropList\"\n (cdkDropListDropped)=\"drop($event, '')\"\n [cdkDropListEnterPredicate]=\"isElementPredicate\"\n >\n <ng-container\n *ngFor=\"\n let formElementDropItem of formElementsDropList;\n let idx = index\n \"\n >\n <div\n class=\"form-drop-element\"\n cdkDrag\n >\n <div class=\"form-drop-element-grab-symbol\">⋮⋮</div>\n <div class=\"form-drop-element-main\">\n <div class=\"form-drop-element-header\">\n <div class=\"form-drop-element-title\">\n {{ formElementDropItem.elementTitle }}\n </div>\n <div class=\"form-drop-element-actions\">\n <kwikui-button-icon\n [disabled]=\"false\"\n [id]=\"'edit-element'\"\n [showLoader]=\"false\"\n [styles]=\"\"\n [class]=\"\"\n [type]=\"'button'\"\n [appearance]=\"'secondary'\"\n [icon]=\"'tuiIconEdit'\"\n [shape]=\"'rounded'\"\n [size]=\"'s'\"\n (onClick)=\"editElement(idx, formElementDropItem)\"\n ></kwikui-button-icon>\n <kwikui-button-icon\n [disabled]=\"false\"\n [id]=\"'remove-element'\"\n [showLoader]=\"false\"\n [styles]=\"\"\n [class]=\"\"\n [type]=\"'button'\"\n [appearance]=\"'accent'\"\n [icon]=\"'tuiIconCloseLarge'\"\n [shape]=\"'rounded'\"\n [size]=\"'s'\"\n (onClick)=\"removeElement(idx, formElementDropItem)\"\n ></kwikui-button-icon>\n <!-- <button\n (click)=\"editElement(idx, formElementDropItem)\"\n title=\"edit element properties\"\n >\n ✎\n </button>\n <button\n (click)=\"removeElement(idx, formElementDropItem)\"\n title=\"delete element\"\n >\n ✖\n </button> -->\n </div>\n </div>\n <div class=\"form-drop-element-body\"> </div>\n <div class=\"form-drop-element-footer\">\n <div class=\"form-drop-element-id\">\n {{ formElementDropItem.elementId }}\n </div>\n <div class=\"form-drop-element-category\">\n {{ formElementDropItem.elementCategory }}\n </div>\n <div class=\"form-drop-element-type\">\n {{ formElementDropItem.elementType }}\n </div>\n </div>\n <div\n class=\"example-custom-placeholder\"\n *cdkDragPlaceholder\n ></div>\n <!-- <ng-container *ngComponentOutlet=\"formElementDropItem.component\"> </ng-container> -->\n <!-- <ng-container *ngTemplateOutlet=\"formModal; context: formElementDropItem\"></ng-container> -->\n </div>\n </div>\n </ng-container>\n </div>\n <div class=\"element-property-editor-wrapper\">\n <element-config-editor\n [elementConfig]=\"elementEditorElementConfig\"\n (updateElement)=\"handleOnSaveUpdateElement($event)\"\n ></element-config-editor>\n </div>\n </div>\n <div class=\"builder-footer\"> © Baiju Dodhia, KwikID </div>\n </div>\n</div>\n","import { TAction, TRule, TSource, TValidation } from \"kwikid-toolkit\";\nimport { TApi } from \"./form-view.apis.definition\";\nimport { TMessage } from \"./form-view.commons.definition\";\nimport { TValidator } from \"./form-view.form-validations.definition\";\nimport { TTrigger } from \"./form-view.triggers.definition\";\n\nexport enum EFieldType {\n HTML = \"html\",\n TITLE = \"title\",\n TEXT = \"text\",\n CHECKBOX = \"checkbox\",\n NUMBER = \"number\",\n DATE = \"date\",\n PHONE = \"phone\",\n RADIO = \"radio\",\n DROPDOWN_WITH_SEARCH = \"dropdown-with-search\",\n API_CALL = \"api-call\",\n OTP = \"otp\",\n AADHAAR_NUMBER = \"aadhaar-number\",\n SLIDER = \"slider\"\n}\n\nexport type TFieldType =\n | EFieldType.HTML\n | EFieldType.TITLE\n | EFieldType.TEXT\n | EFieldType.CHECKBOX\n | EFieldType.NUMBER\n | EFieldType.DATE\n | EFieldType.PHONE\n | EFieldType.RADIO\n | EFieldType.DROPDOWN_WITH_SEARCH\n | EFieldType.API_CALL\n | EFieldType.OTP\n | EFieldType.AADHAAR_NUMBER\n | EFieldType.SLIDER;\n\nexport type TFieldDropdownWithSearchOption = {\n title: string;\n value: string;\n};\n\nexport type TFieldRadioOption = {\n label: string;\n disabled: boolean;\n};\n\nexport type TFieldDefaultValue = {\n is_found: boolean;\n value: any;\n sources: Array<TSource>;\n};\n\nexport type TFieldDefaultDropdownOptions = {\n triggers: TTrigger[];\n rules: TRule[];\n actions: TAction[];\n};\n\nexport type TFieldDefault = {\n value: TFieldDefaultValue;\n options: TFieldDefaultDropdownOptions;\n};\n\nexport type TFieldProperties = {\n // define the properties that are common to all fields\n};\n\nexport type TFieldTextProperties = TFieldProperties & {\n case: string;\n placeholder: string;\n readOnly: string;\n};\n\nexport type TFieldCheckboxProperties = TFieldProperties & {\n contentAlign: string;\n size: string;\n readOnly: string;\n};\n\nexport type TFieldNumberProperties = TFieldProperties & {\n min: number;\n max: number;\n prefix: number;\n postfix: number;\n precision: number;\n placeholder: string;\n decimal: string;\n readOnly: boolean;\n};\n\nexport type TFieldDateProperties = TFieldProperties & {\n placeholder: string;\n min: {\n year: number;\n month: number;\n day: number;\n };\n max: {\n year: number;\n month: number;\n day: number;\n };\n readOnly: boolean;\n};\n\nexport type TFieldPhoneProperties = TFieldProperties & {\n countryCode: string;\n phoneMaskAfterCountryCode: string;\n removeCountryCodeFromValue: boolean;\n placeholder: string;\n readOnly: boolean;\n};\n\nexport type TFieldSlider = TFieldProperties & {\n min: number;\n max: number;\n step: number;\n quantum: number;\n placeholder: string;\n readOnly: boolean;\n};\n\nexport type TFieldRadioProperties = TFieldProperties & {\n size: string;\n orientation: string;\n readOnly: string;\n};\n\nexport type TFieldDropdownWithSearchProperties = TFieldProperties & {\n placeholder: string;\n readOnly: boolean;\n};\n\nexport type TFieldApiCallProperties = TFieldProperties & {};\n\nexport type TFieldOtpProperties = TFieldProperties & {\n placeholder: string;\n mask: string;\n};\n\nexport type TFieldAadhaarNumberProperties = TFieldProperties & {\n mask: string;\n readOnly: string;\n};\n\nexport type TField = {\n label: string;\n type: TFieldType;\n key: string;\n disabled: boolean;\n messages: Array<TMessage>;\n default: TFieldDefault;\n validators: TValidator;\n validation: TValidation;\n properties: TFieldProperties;\n options?: any[];\n};\n\nexport type TFieldTitle = {\n type: TFieldType;\n label: string;\n key: string;\n reset?: {\n fields: Array<{\n fieldKey: string;\n actions: Array<TAction>;\n }>;\n };\n};\n\nexport type TFieldText = TField & {\n properties: TFieldTextProperties;\n};\n\nexport type TFieldCheckbox = TField & {\n properties: TFieldCheckboxProperties;\n};\n\nexport type TFieldNumber = TField & {\n properties: TFieldNumberProperties;\n};\n\nexport type TFieldDate = TField & {\n properties: TFieldDateProperties;\n};\n\nexport type TFieldPhone = TField & {\n properties: TFieldPhoneProperties;\n};\n\nexport type TFieldRadio = TField & {\n options: Array<TFieldRadioOption>;\n properties: TFieldRadioProperties;\n};\n\nexport type TFieldDropdownWithSearch = TField & {\n options: Array<TFieldDropdownWithSearchOption>;\n properties: TFieldDropdownWithSearchProperties;\n};\n\nexport type TFieldApiCall = TField & {\n api: TApi;\n properties: TFieldApiCallProperties;\n};\n\nexport type TFieldOtp = TField & {\n properties: TFieldOtpProperties;\n};\n\nexport type TFieldAadhaarNumber = TField & {\n properties: TFieldAadhaarNumberProperties;\n};\n","import { TuiDay } from \"@taiga-ui/cdk\";\nimport { checkObjectKeyExists, isNotEmptyValue } from \"kwikid-toolkit\";\nimport {\n EFieldType,\n TField,\n TFieldPhone,\n TFieldType\n} from \"../definitions/form-view.fields.definition\";\n\nexport const getFormFieldByKey = (fields: any[], key: string) => {\n const field = fields.find((field) => {\n if (field.key === key) {\n return field;\n }\n });\n\n return field;\n};\n\nexport const getFormFieldIndexByKey = (fields: any[], key: string) => {\n let fieldIndex: number;\n\n fieldIndex = fields.findIndex((_: any) => {\n return key === _.key;\n });\n\n return fieldIndex;\n};\n\nexport const highlightFormFieldError = (field: any, error: any): any => {\n field.invalid = error;\n field.focus = error;\n\n return field;\n};\n\nexport const appendFormFieldMessage = (\n field: any,\n message: { type: string; message: string }\n): any => {\n const hasDuplicateMessage = (\n messages: { type: string; message: string }[],\n message: { type: string; message: string }\n ) => {\n return messages.some((fieldMessage: { type: string; message: string }) => {\n return (\n fieldMessage.type === message.type &&\n fieldMessage.message === message.message\n );\n });\n };\n\n field[\"messages\"] = [];\n\n if (checkObjectKeyExists(field, \"messages\")) {\n if (!hasDuplicateMessage(field[\"messages\"], message)) {\n field[\"messages\"].push({\n type: message.type,\n message: message.message\n });\n }\n } else {\n field[\"messages\"] = [{ type: message.type, message: message.message }];\n }\n\n return field;\n};\n\nexport const removeFormFieldMessage = (\n field: any,\n message: { type: string; message: string }\n): any => {\n field[\"messages\"] = field[\"messages\"].filter(function (fieldMessage) {\n return fieldMessage.type !== message.type;\n });\n\n return field;\n};\n\nexport function showFormFieldError(\n fields: any,\n errors: any,\n key: string,\n error: boolean\n) {\n const fieldIndex = fields.findIndex((field: any) => {\n return field.key === key;\n });\n\n const setErrorMessages = (field: any, errors: any) => {\n const getErrorMessage = (fieldLabel: string, errorType: string) => {\n let errorMessage: string = \"\";\n\n switch (errorType) {\n case \"required\":\n errorMessage = `${fieldLabel} is required!`;\n break;\n case \"email\":\n errorMessage = `${fieldLabel} has wrong email format!`;\n break;\n case \"min\":\n errorMessage = `${fieldLabel} has wrong value! Minimum value: ${field.validators.min}`;\n break;\n case \"minlength\":\n errorMessage = `${fieldLabel} has wrong length! Required minimum length: ${field.validators.minLength}`;\n break;\n case \"max\":\n errorMessage = `${fieldLabel} has wrong value! Maximum value: ${field.validators.maxLength}`;\n break;\n case \"maxlength\":\n errorMessage = `${fieldLabel} has wrong length! Required maximum length: ${field.validators.maxLength}`;\n break;\n case \"areEqual\":\n errorMessage = `${fieldLabel} must be equal!`;\n break;\n case \"pattern\":\n errorMessage = `${fieldLabel} is in incorrect format!`;\n break;\n default:\n errorMessage = `${fieldLabel}: ${errorType}`;\n break;\n }\n\n return errorMessage;\n };\n\n Object.keys(errors).forEach((error) => {\n field = appendFormFieldMessage(field, {\n type: \"error\",\n message: getErrorMessage(field.label, error)\n });\n });\n\n return field;\n };\n\n if (error) {\n fields[fieldIndex] = setErrorMessages(fields[fieldIndex], errors);\n } else {\n fields[fieldIndex][\"messages\"] = [];\n }\n\n fields[fieldIndex] = highlightFormFieldError(fields[fieldIndex], error);\n\n return fields;\n}\n\nexport const convertFormFieldTypeDateToKwikUIFormat = (\n date: string\n): TuiDay => {\n const splitDate = date.split(\"-\");\n const tuiDay = new TuiDay(\n Number(splitDate[2]), // Year\n Number(splitDate[1]) - 1, // Month, Why '-1' => Because Taiga-UI Required It, So...\n Number(splitDate[0]) // Day\n );\n\n return tuiDay;\n};\n\nexport const convertFormFieldTypeDateToStandardFormat = (\n date: TuiDay\n): string => {\n let formattedDate: string;\n let year = date.year;\n let month = date.month;\n let day = date.day;\n\n formattedDate = `${day.toString().padStart(2, \"0\")}-${(month + 1)\n .toString()\n .padStart(2, \"0\")}-${year}`;\n\n return formattedDate;\n};\n\nexport const convertFormFieldValueToStandardFormat = (\n field: TField,\n value: any\n) => {\n let convertedValue: any = value;\n\n if (isNotEmptyValue(value)) {\n switch (field.type) {\n case EFieldType.DATE:\n if (typeof value !== \"string\") {\n convertedValue = convertFormFieldTypeDateToStandardFormat(value);\n }\n break;\n case EFieldType.RADIO:\n convertedValue = value.label;\n case EFieldType.PHONE:\n let phoneField = field as TFieldPhone;\n if (phoneField.properties.removeCountryCodeFromValue) {\n convertedValue = value.replace(phoneField.properties.countryCode, \"\");\n }\n default:\n break;\n }\n } else {\n convertedValue = \"\";\n }\n\n return convertedValue;\n};\n\nexport const convertFormFieldValueToKwikUIFormat = (\n field: TField,\n value: any\n) => {\n let convertedValue: any = value;\n\n if (isNotEmptyValue(value)) {\n switch (field.type) {\n case EFieldType.RADIO:\n if (!checkObjectKeyExists(value, \"label\")) {\n const radioField = field as any;\n const convertedLabelValue = radioField.options.find((item: any) => {\n return item.label === value;\n });\n convertedValue = convertedLabelValue;\n }\n break;\n case EFieldType.DATE:\n convertedValue = convertFormFieldTypeDateToKwikUIFormat(value);\n break;\n case EFieldType.TITLE:\n break;\n default:\n break;\n }\n } else {\n convertedValue = convertFormFieldEmptyValueToKwikUIFormat(field);\n }\n\n return convertedValue;\n};\n\nexport const convertFormFieldEmptyValueToKwikUIFormat = (\n field: TField\n): any => {\n const fieldType: TFieldType = field.type;\n let value: any;\n\n switch (fieldType) {\n case EFieldType.CHECKBOX:\n value = false;\n break;\n case EFieldType.NUMBER:\n value = null;\n break;\n case EFieldType.DATE:\n value = null;\n break;\n default:\n value = \"\";\n break;\n }\n\n return value;\n};\n","import { TuiDay } from \"@taiga-ui/cdk\";\nimport {\n checkObjectKeyExists,\n isEmptyValue,\n isNotEmptyValue,\n logMethod,\n setMissingKeyValue,\n setValueToObjectPath\n} from \"kwikid-toolkit\";\nimport { EFieldType } from \"./form-view/definitions/form-view.fields.definition\";\nimport { convertFormFieldTypeDateToKwikUIFormat } from \"./form-view/helpers/form-view.fields.helper\";\n\nexport class Converter {\n getFormFields = (formConfig: any): any[] => {\n let fields: any[];\n\n if (checkObjectKeyExists(formConfig, \"multiForm\")) {\n fields = formConfig.multiForm.fields;\n } else {\n fields = formConfig.fields;\n }\n\n return fields;\n };\n\n setMissingFieldKeyValue = (field: any, key: string, value: any): any => {\n if (!checkObjectKeyExists(field, key)) {\n field[key] = value;\n }\n return field;\n };\n\n setFieldKeyValue = (field: any, key: string, value: any): any => {\n field[key] = value;\n\n return field;\n };\n\n removeFieldKey = (field: any, key: string): any => {\n if (checkObjectKeyExists(field, key)) {\n delete field[key];\n }\n\n return field;\n };\n\n @logMethod\n updateFormConfigMiscellaneous(formConfig: any, args: any): any {\n if (checkObjectKeyExists(args, \"formsListLength\")) {\n formConfig = setValueToObjectPath(\n formConfig,\n \"formsListLength\",\n args.formsListLength\n );\n }\n\n return formConfig;\n }\n\n @logMethod\n updateFormConfigProperties(formConfig: any): any {\n const formViewProperties = {\n header: {\n title: {\n hidden: false,\n label: formConfig.title\n },\n steps: {\n hidden: false\n }\n },\n footer: {\n viewFormsButton: {\n hidden: false,\n label: \"View Forms\"\n },\n saveButton: {\n hidden: false,\n label: \"Save\"\n }\n }\n };\n\n if (checkObjectKeyExists(formConfig, \"properties\")) {\n const headerTitleHidden =\n formConfig.properties.header?.title?.hidden ??\n formViewProperties.header.title.hidden;\n const headerTitleLabel =\n formConfig.properties.header?.title?.label ?? formConfig.title;\n const headerStepsHidden =\n formConfig.properties.header?.steps?.hidden ??\n formViewProperties.header.steps.hidden;\n const viewFormsButtonHidden =\n formConfig.properties.footer?.viewFormsButton?.hidden ??\n formViewProperties.footer.viewFormsButton.hidden;\n const viewFormsButtonLabel =\n formConfig.properties.footer?.viewFormsButton?.label ??\n formViewProperties.footer.viewFormsButton.label;\n const saveButtonHidden =\n formConfig.properties.footer?.saveButton?.hidden ??\n formViewProperties.footer.saveButton.hidden;\n const saveButtonLabel =\n formConfig.properties.footer?.saveButton?.label ??\n formViewProperties.footer.saveButton.label;\n\n formConfig.properties = {\n header: {\n title: {\n hidden: headerTitleHidden,\n label: headerTitleLabel\n },\n steps: {\n hidden: headerStepsHidden\n }\n },\n footer: {\n viewFormsButton: {\n hidden: viewFormsButtonHidden,\n label: viewFormsButtonLabel\n },\n saveButton: {\n hidden: saveButtonHidden,\n label: saveButtonLabel\n }\n }\n };\n } else {\n formConfig.properties = formViewProperties;\n }\n\n return formConfig;\n }\n\n @logMethod\n convertFormConfig(formConfig: any): any {\n const updateOnFieldType = (field: any): any => {\n const formatFieldTypeHtml = (field: any): any => {\n field = this.setFieldKeyValue(field, \"isFormElement\", false);\n\n return field;\n };\n const formatFieldTypeTitle = (field: any): any => {\n field = this.setFieldKeyValue(field, \"hidden\", false);\n field = this.setFieldKeyValue(field, \"isFormElement\", false);\n\n return field;\n };\n const formatFieldTypeText = (field: any): any => {\n field = this.setFieldKeyValue(field, \"isFormElement\", true);\n field.properties = this.setMissingFieldKeyValue(\n field.properties,\n \"case\",\n \"default\"\n );\n return field;\n };\n const formatFieldTypeCheckbox = (field: any): any => {\n field = this.setFieldKeyValue(field, \"isFormElement\", true);\n return field;\n };\n const formatFieldTypeNumber = (field: any): any => {\n field = this.setFieldKeyValue(field, \"isFormElement\", true);\n if (checkObjectKeyExists(field, \"key\")) {\n if (field.key === \"aadhaar_number\") {\n field = this.setFieldKeyValue(field, \"type\", \"aadhaar_number\");\n }\n if (field.key === \"contact_number\") {\n field = this.setFieldKeyValue(field, \"type\", \"phone\");\n }\n\n if (field.type === \"phone\" || field.type === \"number\") {\n field.properties = this.setMissingFieldKeyValue(\n field.properties,\n \"countryCode\",\n \"+91\"\n );\n field.properties = this.setMissingFieldKeyValue(\n field.properties,\n \"phoneMaskAfterCountryCode\",\n \"####-######\"\n );\n field.properties = this.setMissingFieldKeyValue(\n field.properties,\n \"removeCountryCodeFromValue\",\n true\n );\n field.properties = this.setMissingFieldKeyValue(\n field.properties,\n \"decimal\",\n \"never\"\n );\n field.properties = this.setMissingFieldKeyValue(\n field.properties,\n \"prefix\",\n \"\"\n );\n field.properties = this.setMissingFieldKeyValue(\n field.properties,\n \"postfix\",\n \"\"\n );\n field.properties = this.setMissingFieldKeyValue(\n field.properties,\n \"min\",\n -Infinity\n );\n field.properties = this.setMissingFieldKeyValue(\n field.properties,\n \"max\",\n Infinity\n );\n field.properties = this.setMissingFieldKeyValue(\n field.properties,\n \"precision\",\n 2\n );\n }\n }\n\n field = this.setFieldKeyValue(field, \"hidden\", false);\n\n return field;\n };\n const formatFieldTypeDate = (field: any): any => {\n field = this.setFieldKeyValue(field, \"isFormElement\", true);\n if (checkObjectKeyExists(field, \"min\")) {\n const tuiDay = convertFormFieldTypeDateToKwikUIFormat(field[\"min\"]);\n field.properties = this.setFieldKeyValue(\n field.properties,\n \"min\",\n tuiDay\n );\n } else {\n field.properties = this.setMissingFieldKeyValue(\n field.properties,\n \"min\",\n new TuiDay(0, 0, 1)\n ); // Year - 0000, Month - 0 (0 Indexing), Day - 1\n }\n\n if (checkObjectKeyExists(field, \"max\")) {\n const tuiDay = convertFormFieldTypeDateToKwikUIFormat(field[\"max\"]);\n field.properties = this.setFieldKeyValue(\n field.properties,\n \"max\",\n tuiDay\n );\n } else {\n field.properties = this.setMissingFieldKeyValue(\n field.properties,\n \"max\",\n new TuiDay(\n new Date().getFullYear(), // Year - 9999\n new Date().getMonth(), // Month - 11 (0 Indexing)\n new Date().getDate() // Day - 31\n )\n );\n }\n\n field.properties = this.setMissingFieldKeyValue(\n field.properties,\n \"minCalculatedFromToday\",\n {\n year: new Date().getFullYear(),\n month: new Date().getMonth(),\n day: new Date().getDate()\n }\n );\n\n field.properties = this.setMissingFieldKeyValue(\n field.properties,\n \"maxCalculatedFromToday\",\n {\n year: 0,\n month: 0,\n day: 0\n }\n );\n\n field.properties = this.setMissingFieldKeyValue(\n field.properties,\n \"placeholder\",\n \"\"\n );\n\n field = this.setFieldKeyValue(field, \"hidden\", false);\n\n return field;\n };\n const formatFieldTypePhone = (field: any): any => {\n field = this.setFieldKeyValue(field, \"isFormElement\", true);\n return field;\n };\n const formatFieldTypeRadio = (field: any): any => {\n field = this.setFieldKeyValue(field, \"isFormElement\", true);\n field.properties = this.setMissingFieldKeyValue(\n field.properties,\n \"size\",\n \"m\"\n );\n field.properties = this.setMissingFieldKeyValue(\n field.properties,\n \"orientation\",\n \"vertical\"\n );\n field = this.setFieldKeyValue(field, \"hidden\", false);\n\n field.options = field.options.map((x: any): any => {\n if (typeof x === \"string\" || typeof x === \"number\") {\n return { label: x, disabled: false, description: \"\" };\n } else {\n if (\n checkObjectKeyExists(x, \"label\") &&\n checkObjectKeyExists(x, \"disabled\") &&\n checkObjectKeyExists(x, \"description\")\n ) {\n return x;\n }\n if (!checkObjectKeyExists(x, \"disabled\")) {\n x = { ...x, disabled: false };\n }\n if (!checkObjectKeyExists(x, \"description\")) {\n x = { ...x, description: false };\n }\n return x;\n }\n });\n\n return field;\n };\n const formatFieldTypeSlider = (field: any): any => {\n field = this.setFieldKeyValue(field, \"isFormElement\", true);\n field.properties = this.setMissingFieldKeyValue(\n field.properties,\n \"min\",\n 0\n );\n field.properties = this.setMissingFieldKeyValue(\n field.properties,\n \"max\",\n 100\n );\n field.properties = this.setMissingFieldKeyValue(\n field.properties,\n \"steps\",\n 0\n );\n field.properties = this.setMissingFieldKeyValue(\n field.properties,\n \"quantum\",\n 1\n );\n field.properties = this.setMissingFieldKeyValue(\n field.properties,\n \"size\",\n \"l\"\n );\n\n return field;\n };\n const formatFieldTypeSearchText = (field: any): any => {\n field = this.setFieldKeyValue(field, \"isFormElement\", true);\n if (checkObjectKeyExists(field, \"type\")) {\n if (field.type === \"search-text\") {\n field = this.setFieldKeyValue(\n field,\n \"type\",\n \"dropdown-with-search\"\n );\n }\n }\n\n return field;\n };\n const formatFieldTypeDropdownWithSearch = (field: any): any => {\n field = this.setFieldKeyValue(field, \"isFormElement\", true);\n return field;\n };\n const formatFieldTypeApiCall = (field: any): any => {\n field = this.setFieldKeyValue(field, \"isFormElement\", true);\n if (!checkObjectKeyExists(field.properties, \"shape\")) {\n field.properties = this.setFieldKeyValue(\n field.properties,\n \"shape\",\n null\n );\n }\n if (!checkObjectKeyExists(field, \"showLoader\")) {\n field = this.setFieldKeyValue(field, \"showLoader\", false);\n }\n if (!checkObjectKeyExists(field.properties, \"size\")) {\n field.properties = this.setFieldKeyValue(\n field.properties,\n \"size\",\n \"m\"\n );\n }\n if (!checkObjectKeyExists(field, \"api\")) {\n field = this.setFieldKeyValue(field, \"api\", {});\n\n field.api = this.setMissingFieldKeyValue(field.api, \"url\", \"\");\n field.api = this.setMissingFieldKeyValue(field.api, \"request\", \"\");\n field.api = this.setMissingFieldKeyValue(field.api, \"response\", \"\");\n field.api = this.setMissingFieldKeyValue(field.api, \"status\", \"\");\n\n field.api.status = this.setMissingFieldKeyValue(\n field.api.status,\n \"value\",\n \"default\"\n );\n field.api.status = this.setMissingFieldKeyValue(\n field.api.status,\n \"labels\",\n {\n default: \"Call API\",\n loading: \"Call API\",\n success: \"API Success\",\n failed: \"API Failed\"\n }\n );\n }\n if (\n !checkObjectKeyExists(field.api, \"request\") &&\n !checkObjectKeyExists(field.api, \"entrypoint\")\n ) {\n // Set entrypoint as First endpoint.\n const entrypoint = {\n triggers: [\"ON_API_CALL\"],\n rules: [],\n actions: [\n {\n id: \"1\",\n key: \"API_CALL\",\n condition: \"true\",\n props: {\n fieldKey: field.key,\n apiKey: field.api.endpoints[0].apiKey\n }\n }\n ]\n };\n field = setMissingKeyValue(field.api, \"entrypoint\", entrypoint);\n }\n return field;\n };\n const formatFieldTypeOtp = (field: any): any => {\n field = this.setFieldKeyValue(field, \"isFormElement\", true);\n field.properties = this.setMissingFieldKeyValue(\n field.properties,\n \"mask\",\n new Array(field.properties.otpLength).fill(\"#\").join(\" \")\n );\n field = this.setFieldKeyValue(field, \"hidden\", false);\n\n return field;\n };\n const formatFieldTypeAadhaarNumber = (field: any): any => {\n field = this.setFieldKeyValue(field, \"isFormElement\", true);\n return field;\n };\n\n switch (field.type) {\n case EFieldType.HTML:\n field = formatFieldTypeHtml(field);\n break;\n case EFieldType.TITLE:\n field = formatFieldTypeTitle(field);\n break;\n case EFieldType.TEXT:\n field = formatFieldTypeText(field);\n break;\n case EFieldType.CHECKBOX:\n field = formatFieldTypeCheckbox(field);\n break;\n case EFieldType.NUMBER:\n field = formatFieldTypeNumber(field);\n break;\n case EFieldType.DATE:\n field = formatFieldTypeDate(field);\n break;\n case EFieldType.PHONE:\n field = formatFieldTypePhone(field);\n break;\n case EFieldType.RADIO:\n field = formatFieldTypeRadio(field);\n break;\n case EFieldType.SLIDER:\n field = formatFieldTypeSlider(field);\n break;\n case \"search-text\":\n field = formatFieldTypeSearchText(field);\n break;\n case EFieldType.DROPDOWN_WITH_SEARCH:\n field = formatFieldTypeDropdownWithSearch(field);\n break;\n case EFieldType.API_CALL:\n field = formatFieldTypeApiCall(field);\n break;\n case EFieldType.OTP:\n field = formatFieldTypeOtp(field);\n break;\n case EFieldType.AADHAAR_NUMBER:\n field = formatFieldTypeAadhaarNumber(field);\n break;\n default:\n break;\n }\n\n return field;\n };\n\n const getConnectedElementTypeValueObject = (key: any): any => {\n const object = {\n key: key,\n conditions: { formula: \"\", rules: [] },\n actions: { success: [], failure: [] }\n };\n return object;\n };\n\n const formatFieldKeys = (field: any): any => {\n if (checkObjectKeyExists(field, \"connectedTo\")) {\n if (typeof field[\"connectedTo\"] === \"string\") {\n field[\"connectedElements\"] = [\n getConnectedElementTypeValueObject(field[\"connectedTo\"])\n ];\n } else {\n field[\"connectedTo\"] = field[\"connectedTo\"].map((key: string) => {\n return getConnectedElementTypeValueObject(key);\n });\n field[\"connectedElements\"] = field[\"connectedTo\"];\n }\n }\n this.removeFieldKey(field, \"connectedTo\");\n\n if (checkObjectKeyExists(field, \"connectedToParent\")) {\n if (typeof field[\"connectedToParent\"] === \"string\") {\n field[\"connectedParentFields\"] = [\n getConnectedElementTypeValueObject(field[\"connectedToParent\"])\n ];\n } else {\n field[\"connectedParentFields\"] = getConnectedElementTypeValueObject(\n field[\"connectedToParent\"]\n );\n }\n }\n this.removeFieldKey(field, \"connectedToParent\");\n\n this.removeFieldKey(field, \"sideEffect\");\n\n return field;\n };\n\n const updateFieldValidatorConfig = (field: any): any => {\n if (field.isFormElement) {\n const validators = checkObjectKeyExists(field, \"validators\")\n ? field.validators\n : {};\n\n field = this.setMissingFieldKeyValue(field, \"validators\", {});\n\n field = this.setFieldKeyValue(field, \"validators\", {\n ...field[\"validators\"],\n min: checkObjectKeyExists(validators, \"min\")\n ? isNotEmptyValue(validators.min)\n ? Number(validators.min)\n : null\n : checkObjectKeyExists(field, \"min\")\n ? Number(field.min)\n : null,\n max: checkObjectKeyExists(validators, \"max\")\n ? isNotEmptyValue(validators.max)\n ? Number(validators.max)\n : null\n : checkObjectKeyExists(field, \"max\")\n ? Number(field.max)\n : null,\n required: checkObjectKeyExists(validators, \"required\")\n ? Boolean(validators.required)\n : checkObjectKeyExists(field, \"required\")\n ? Boolean(field.required)\n : false,\n minLength: checkObjectKeyExists(validators, \"minLength\")\n ? isNotEmptyValue(validators.minLength)\n ? Number(validators.minLength)\n : null\n : checkObjectKeyExists(field, \"minLength\")\n ? Number(field.minLength)\n : null,\n maxLength: checkObjectKeyExists(validators, \"maxLength\")\n ? isNotEmptyValue(validators.maxLength)\n ? Number(validators.maxLength)\n : null\n : checkObjectKeyExists(field, \"length\")\n ? Number(field.length)\n : checkObjectKeyExists(field, \"maxLength\")\n ? Number(field.maxLength)\n : null,\n pattern: checkObjectKeyExists(validators, \"pattern\")\n ? isNotEmptyValue(validators.pattern)\n ? validators.pattern\n : undefined\n : checkObjectKeyExists(field, \"pattern\")\n ? { key: \"CUSTOM\", pattern: String(field.pattern) }\n : checkObjectKeyExists(field, \"regex\")\n ? { key: \"CUSTOM\", pattern: String(field.regex) }\n : undefined\n });\n\n delete field.min;\n delete field.max;\n delete field.required;\n delete field.minLength;\n delete field.length;\n delete field.maxLength;\n delete field.pattern;\n delete field.regex;\n\n switch (field.type) {\n case EFieldType.TEXT:\n delete field.validators.min;\n delete field.validators.max;\n break;\n case EFieldType.CHECKBOX:\n delete field.validators.min;\n delete field.validators.max;\n break;\n default:\n break;\n }\n\n if (isEmptyValue(field.validators?.min)) {\n delete field.validators.min;\n }\n if (isEmptyValue(field.validators?.max)) {\n delete field.validators.min;\n }\n if (isEmptyValue(field.validators?.minLength)) {\n delete field.validators.minLength;\n }\n if (isEmptyValue(field.validators?.maxLength)) {\n delete field.validators.maxLength;\n }\n if (isEmptyValue(field.validators?.pattern)) {\n delete field.validators.pattern;\n }\n\n field.focus = false;\n field.invalid = false;\n }\n\n return field;\n };\n\n const updateFieldDefaultValueConfig = (field: any): any => {\n if (field.isFormElement) {\n if (checkObjectKeyExists(field, \"defaultValue\")) {\n return field;\n } else if (checkObjectKeyExists(field, \"default\")) {\n return field;\n } else {\n if (checkObjectKeyExists(field, \"defaultVal\")) {\n // Currently below line is commented because it caused issues in setting Default Value.\n // field[\"defaultValue\"] = field[\"defaultVal\"];\n // delete field[\"defaultVal\"];\n }\n\n // TODO: Condition for all_forms_data is not considered yet.\n if (field.autoPopulateFromSummaryData) {\n field[\"defaultValue\"] = {\n is_found: false,\n value: \"\",\n sources: [\n {\n source: \"summary_data\",\n summary_data: {\n path: `$.${field.key}`,\n validation: {\n rules: [\n {\n key: \"1\",\n type: \"is_not_empty\",\n is_not_empty: {\n value: true\n }\n }\n ],\n actions: [\n {\n type: \"set_default_value_found\",\n condition: \"1\",\n set_default_value_found: {\n value: true\n }\n },\n {\n type: \"enable_field\",\n condition: \"1 OR NOT(1)\",\n enable_field: { value: true }\n }\n ]\n }\n }\n }\n ]\n };\n } else if (checkObjectKeyExists(field, \"autofill\")) {\n if (checkObjectKeyExists(field.autofill, \"type\")) {\n if (field.autofill.type === \"storage\") {\n field[\"defaultValue\"] = {\n is_found: false,\n value: \"\",\n sources: [\n {\n source: \"browser_storage\",\n browser_storage: {\n path: `$.${field.key}`,\n validation: {\n rules: [\n {\n key: \"1\",\n type: \"is_not_empty\",\n is_not_empty: {\n value: true\n }\n }\n ],\n actions: [\n {\n type: \"set_default_value_found\",\n condition: \"1\",\n set_default_value_found: {\n value: true\n }\n },\n {\n type: \"enable_field\",\n condition: \"1 OR NOT(1)\",\n enable_field: { value: true }\n }\n ]\n }\n }\n }\n ]\n };\n } else if (field.autofill.type === \"config\") {\n field[\"defaultValue\"] = {\n is_found: false,\n value: \"\",\n sources: [\n {\n source: \"field_config\",\n field_config: {\n path: `$.${field.key}`,\n validation: {\n rules: [\n {\n key: \"1\",\n type: \"is_not_empty\",\n is_not_empty: {\n value: true\n }\n }\n ],\n actions: [\n {\n type: \"set_default_value_found\",\n condition: \"1\",\n set_default_value_found: {\n value: true\n }\n },\n {\n type: \"enable_field\",\n condition: \"1 OR NOT(1)\",\n enable_field: { value: true }\n }\n ]\n }\n }\n }\n ]\n };\n }\n }\n } else {\n field[\"defaultValue\"] = {\n is_found: false,\n value: \"\",\n sources: [\n {\n source: \"form_data\",\n form_data: {\n path: `$.${field.key}`,\n validation: {\n rules: [\n {\n key: \"1\",\n type: \"is_not_empty\",\n is_not_empty: {\n value: true\n }\n }\n ],\n actions: [\n {\n type: \"set_default_value_found\",\n condition: \"1\",\n set_default_value_found: {\n value: true\n }\n },\n {\n type: \"enable_field\",\n condition: \"1 OR NOT(1)\",\n enable_field: { value: true }\n }\n ]\n }\n }\n }\n ]\n };\n }\n }\n\n delete field[\"defaultVal\"];\n }\n\n return field;\n };\n\n const updateFieldMessages = (field: any): any => {\n if (field.isFormElement) {\n field = this.setMissingFieldKeyValue(field, \"messages\", []);\n }\n\n return field;\n };\n\n const updateFieldResetButton = (field: any): any => {\n if (field.isFormElement) {\n if (\n checkObjectKeyExists(field, \"action\") &&\n field.action === \"reset\" &&\n checkObjectKeyExists(field, \"fields\")\n ) {\n field = this.setFieldKeyValue(field, \"reset\", {\n fields: field.fields\n });\n }\n }\n\n return field;\n };\n\n const setFormFields = (formConfig: any, fields: any[]): any => {\n if (checkObjectKeyExists(formConfig, \"multiForm\")) {\n formConfig.multiForm[\"fields\"] = fields;\n } else {\n formConfig[\"fields\"] = fields;\n }\n\n return formConfig;\n };\n\n const setFormFieldGroups = (formConfig: any, groups: any): any => {\n formConfig[\"fieldGroups\"] = groups;\n\n return formConfig;\n };\n\n const updateFormFieldGroups = (fieldGroups: any, field: any): any => {\n if (checkObjectKeyExists(field, \"groupKey\")) {\n if (checkObjectKeyExists(fieldGroups, field.groupKey)) {\n fieldGroups[field.groupKey].push(field.key);\n } else {\n fieldGroups[field.groupKey] = [field.key];\n }\n }\n\n return fieldGroups;\n };\n\n let fields: any[] = this.getFormFields(formConfig);\n\n let fieldGroups: any = {};\n\n for (let field of fields) {\n field = updateOnFieldType(field);\n\n console.log(\"FIELD\", field);\n field = formatFieldKeys(field);\n\n fieldGroups = updateFormFieldGroups(fieldGroups, field);\n\n field = updateFieldDefaultValueConfig(field);\n\n field = updateFieldValidatorConfig(field);\n\n field = updateFieldResetButton(field);\n\n field = updateFieldMessages(field);\n }\n\n formConfig = setFormFieldGroups(formConfig, fieldGroups);\n\n formConfig = setFormFields(formConfig, fields);\n\n return formConfig;\n }\n}\n","export enum EFormsListStatus {\n COMPLETED = \"completed\",\n EDITABLE = \"editable\",\n LOCKED = \"locked\"\n}\n\nexport type TFormsListStatus =\n | EFormsListStatus.COMPLETED\n | EFormsListStatus.EDITABLE\n | EFormsListStatus.LOCKED;\n","import { TAction, TSource } from \"kwikid-toolkit\";\nimport { TMessage } from \"./form-view.commons.definition\";\n\nexport enum EActionKey {\n SET_VALUE = \"SET_VALUE\",\n SET_FIELD_DEFAULT_VALUE = \"SET_FIELD_DEFAULT_VALUE\",\n FIELD_MESSAGE_SHOW = \"FIELD_MESSAGE_SHOW\",\n FIELD_MESSAGES_HIDE = \"FIELD_MESSAGES_HIDE\",\n FIELD_ERROR_SHOW = \"FIELD_ERROR_SHOW\",\n FIELD_ERROR_HIDE = \"FIELD_ERROR_HIDE\",\n FIELD_SHOW = \"FIELD_SHOW\",\n FIELD_HIDE = \"FIELD_HIDE\",\n FIELD_ENABLE = \"FIELD_ENABLE\",\n FIELD_DISABLE = \"FIELD_DISABLE\",\n FIELD_RESET = \"FIELD_RESET\",\n HANDLE_CONNECTED_ELEMENTS = \"HANDLE_CONNECTED_ELEMENTS\",\n CUSTOM = \"CUSTOM\",\n FIELD_GROUP_SHOW = \"FIELD_GROUP_SHOW\",\n FIELD_GROUP_HIDE = \"FIELD_GROUP_HIDE\",\n FIELD_GROUP_ENABLE = \"FIELD_GROUP_ENABLE\",\n FIELD_GROUP_DISABLE = \"FIELD_GROUP_DISABLE\",\n SET_DROPDOWN_OPTIONS = \"SET_DROPDOWN_OPTIONS\",\n API_CALL = \"API_CALL\",\n API_CALL_END = \"API_CALL_END\"\n}\n\nexport type TActionKey =\n | EActionKey.SET_VALUE\n | EActionKey.SET_FIELD_DEFAULT_VALUE\n | EActionKey.FIELD_MESSAGE_SHOW\n | EActionKey.FIELD_MESSAGES_HIDE\n | EActionKey.FIELD_ERROR_SHOW\n | EActionKey.FIELD_ERROR_HIDE\n | EActionKey.FIELD_SHOW\n | EActionKey.FIELD_HIDE\n | EActionKey.FIELD_ENABLE\n | EActionKey.FIELD_DISABLE\n | EActionKey.FIELD_RESET\n | EActionKey.HANDLE_CONNECTED_ELEMENTS\n | EActionKey.CUSTOM\n | EActionKey.FIELD_GROUP_SHOW\n | EActionKey.FIELD_GROUP_HIDE\n | EActionKey.FIELD_GROUP_ENABLE\n | EActionKey.FIELD_GROUP_DISABLE\n | EActionKey.API_CALL\n | EActionKey.API_CALL_END;\n\nexport type TActionSetValue = TAction & {\n key: EActionKey.SET_VALUE;\n props: {\n value: {\n source: TSource;\n destination: TSource;\n };\n };\n};\n\nexport type TActionSetFieldDefaultValue = TAction & {\n key: EActionKey.SET_FIELD_DEFAULT_VALUE;\n props: {\n fieldKey: string;\n source: TSource;\n };\n};\n\nexport type TActionFieldMessageShow = TAction & {\n key: EActionKey.FIELD_MESSAGE_SHOW;\n props: {\n fieldKey: string;\n message: TMessage;\n };\n};\n\nexport type TActionFieldMessageHide = TAction & {\n key: EActionKey.FIELD_MESSAGES_HIDE;\n props: {\n fieldKey: string;\n message: TMessage;\n };\n};\n\nexport type TActionFieldErrorShow = TAction & {\n key: EActionKey.FIELD_ERROR_SHOW;\n props: {\n fieldKey: string;\n message: TMessage;\n };\n};\n\nexport type IFieldErrorHide = TAction & {\n key: EActionKey.FIELD_ERROR_HIDE;\n props: {\n fieldKey: string;\n message: TMessage;\n };\n};\n\nexport type TActionFieldShow = TAction & {\n key: EActionKey.FIELD_SHOW;\n props: {\n fieldKey: string;\n };\n};\n\nexport type TActionFieldHide = TAction & {\n key: EActionKey.FIELD_HIDE;\n props: {\n fieldKey: string;\n };\n};\n\nexport type TActionFieldEnable = TAction & {\n key: EActionKey.FIELD_ENABLE;\n props: {\n fieldKey: string;\n };\n};\n\nexport type TActionFieldDisable = TAction & {\n key: EActionKey.FIELD_DISABLE;\n props: {\n fieldKey: string;\n };\n};\n\nexport type TActionFieldReset = TAction & {\n key: EActionKey.FIELD_RESET;\n props: {\n fieldKey: string;\n };\n};\n\nexport type TActionHandleConnectedElement = TAction & {\n key: EActionKey.HANDLE_CONNECTED_ELEMENTS;\n props: {\n fieldKey: string;\n };\n};\n\nexport type TActionApiCall = TAction & {\n key: EActionKey.API_CALL;\n props: {\n fieldKey: string;\n apiKey: string;\n };\n};\n\nexport type TActionApiCallsDone = TAction & {\n key: EActionKey.API_CALL;\n props: {\n fieldKey: string;\n };\n};\n","import { TAction, TRule, TSource, TValidation } from \"kwikid-toolkit\";\nimport { TTrigger } from \"./form-view.triggers.definition\";\n\nexport enum EApiStatusType {\n DEFAULT = \"default\",\n LOADING = \"loading\",\n SUCCESS = \"success\",\n FAILED = \"failed\"\n}\n\nexport type TApiRequestBodyParam = {\n key: string;\n sources: Array<TSource>;\n value: any;\n};\n\nexport type TApiRequestBody = {\n value: any;\n params: Array<TApiRequestBodyParam>;\n validation: TValidation;\n};\n\nexport type TApiRequestHeadersParam = {\n key: string;\n sources: Array<TSource>;\n value: any;\n};\n\nexport type TApiRequestHeaders = {\n value: any;\n params: Array<any>;\n validation: TValidation;\n};\n\nexport type TApiRequest = {\n url: string | any;\n method?: string;\n headers?: TApiRequestHeaders;\n body: TApiRequestBody;\n};\n\nexport type TApiResponseBody = any;\n\nexport type TApiResponse = {\n is_valid: boolean;\n body: TApiResponseBody;\n validation: TValidation;\n value?: any;\n};\n\nexport type TApiStatusType =\n | EApiStatusType.DEFAULT\n | EApiStatusType.LOADING\n | EApiStatusType.SUCCESS\n | EApiStatusType.FAILED;\n\nexport type TApiStatus = {\n value: TApiStatusType;\n labels: {\n default: EApiStatusType.DEFAULT;\n loading: EApiStatusType.LOADING;\n success: EApiStatusType.SUCCESS;\n failed: EApiStatusType.FAILED;\n };\n};\n\nexport type TApiEntryPoint = {\n triggers: Array<TTrigger>;\n rules: Array<TRule>;\n actions: Array<TAction>;\n};\n\nexport type TApiEndpoint = {\n apiKey: string;\n request: TApiRequest;\n response: TApiResponse;\n};\n\nexport type TApi = {\n request?: TApiRequest;\n response?: TApiResponse;\n entrypoint: TApiEntryPoint;\n endpoints: Array<TApiEndpoint>;\n status: TApiStatus;\n};\n\nexport enum EApiRequestUrlType {\n MOCK = \"MOCK\",\n CALCULATED = \"CALCULATED\"\n}\n","export enum EMessageType {\n DEFAULT = \"default\",\n ERROR = \"error\",\n SUCCESS = \"success\",\n WARNING = \"warning\"\n}\nexport type TMessageType =\n | EMessageType.DEFAULT\n | EMessageType.ERROR\n | EMessageType.SUCCESS\n | EMessageType.WARNING;\n\nexport type TMessage = {\n message: string;\n type: TMessageType;\n};\n","import {\n Action,\n Condition,\n isEmptyValue,\n logMethod,\n Rule,\n setValueToObjectPath,\n Source,\n TAction,\n TRule,\n TValidation\n} from \"kwikid-toolkit\";\nimport { TField } from \"../definitions/form-view.fields.definition\";\nimport { TTrigger } from \"../definitions/form-view.triggers.definition\";\nimport { convertFormFieldEmptyValueToKwikUIFormat } from \"./form-view.fields.helper\";\n\nexport class Defaults {\n private _allFormsData: any;\n private _field: TField;\n private _formFields: any[];\n private _formData: any;\n private _previousFormData: any;\n private _takeAction: Function;\n\n constructor(\n field: TField,\n formFields: any[],\n allFormsData: any,\n formData: any,\n previousFormData: any,\n takeAction: Function\n ) {\n this._field = field;\n this._formFields = formFields;\n this._allFormsData = allFormsData;\n this._formData = formData;\n this._previousFormData = previousFormData;\n this._takeAction = takeAction;\n }\n\n @logMethod\n async getFormFieldValue() {\n let defaultValue: any;\n\n const sources = this._field.default.value.sources;\n\n let sourceIndex = 0;\n for (let source of sources) {\n const sources = new Source({\n FIELD_CONFIG: this._field,\n FORM_FIELDS: this._formFields,\n FORM_DATA: this._formData,\n PREVIOUS_FORM_DATA: this._previousFormData,\n ALL_FORMS_DATA: this._allFormsData\n });\n const value = sources.getValueFromSource(source);\n\n // Set the Value of current source.\n this._field = setValueToObjectPath(\n this._field,\n `default.value.sources.[${sourceIndex}].value`,\n value\n );\n\n const validation: TValidation = (source as any).validation;\n\n const triggers: Array<TTrigger> = validation.triggers;\n const rules: Array<TRule> = validation.rules;\n const actions: Array<TAction> = validation.actions;\n\n const rulesMapping = new Rule(rules, {\n FIELD_CONFIG: this._field,\n FORM_FIELDS: this._formFields,\n FORM_DATA: this._formData,\n PREVIOUS_FORM_DATA: this._previousFormData,\n ALL_FORMS_DATA: this._allFormsData\n }).mapping();\n\n for (let action of actions) {\n const conditionEvaluation = new Condition(\n action.condition,\n rulesMapping\n ).evaluate();\n\n if (conditionEvaluation) {\n const actions = new Action(\n action,\n rulesMapping,\n {\n FIELD_CONFIG: this._field,\n FORM_FIELDS: this._formFields,\n FORM_DATA: this._formData,\n PREVIOUS_FORM_DATA: this._previousFormData,\n ALL_FORMS_DATA: this._allFormsData\n },\n this._takeAction\n );\n\n await actions.execute();\n }\n }\n\n sourceIndex++;\n }\n\n defaultValue = this._field.default.value.value;\n\n if (isEmptyValue(defaultValue)) {\n defaultValue = convertFormFieldEmptyValueToKwikUIFormat(this._field);\n }\n\n return defaultValue;\n }\n\n @logMethod\n async getFormFieldOptions() {\n const optionsConfig = this._field.default.options;\n\n const rules = optionsConfig.rules;\n const actions = optionsConfig.actions;\n\n const rulesMapping = new Rule(rules, {\n FIELD_CONFIG: this._field,\n FORM_FIELDS: this._formFields,\n FORM_DATA: this._formData,\n PREVIOUS_FORM_DATA: this._previousFormData,\n ALL_FORMS_DATA: this._allFormsData\n }).mapping();\n\n for (let action of actions) {\n const conditionEvaluation = new Condition(\n action.condition,\n rulesMapping\n ).evaluate();\n\n if (conditionEvaluation) {\n const actions = new Action(\n action,\n rulesMapping,\n {\n FIELD_CONFIG: this._field,\n FORM_FIELDS: this._formFields,\n FORM_DATA: this._formData,\n PREVIOUS_FORM_DATA: this._previousFormData,\n ALL_FORMS_DATA: this._allFormsData\n },\n this._takeAction\n );\n\n await actions.execute();\n }\n }\n }\n}\n","import {\n FormArray,\n FormGroup,\n ValidationErrors,\n Validators\n} from \"@angular/forms\";\nimport {\n checkObjectKeyExists,\n isNotEmptyValue,\n logMethod,\n PATTERNS\n} from \"kwikid-toolkit\";\n\nexport class FormValidation {\n constructor() {}\n\n @logMethod\n getFormFieldValidators(field: any) {\n let validators = [];\n\n if (\n checkObjectKeyExists(field, \"validators\") &&\n checkObjectKeyExists(field.validators, \"min\") &&\n isNotEmptyValue(field.validators.min)\n ) {\n validators.push(Validators.min(field.validators.min));\n }\n if (\n checkObjectKeyExists(field, \"validators\") &&\n checkObjectKeyExists(field.validators, \"max\") &&\n isNotEmptyValue(field.validators.max)\n ) {\n validators.push(Validators.max(field.validators.max));\n }\n if (\n (checkObjectKeyExists(field, \"required\") && field.required) ||\n (checkObjectKeyExists(field, \"validators\") &&\n checkObjectKeyExists(field.validators, \"required\") &&\n field.validators.required)\n ) {\n validators.push(Validators.required);\n }\n if (\n checkObjectKeyExists(field, \"validators\") &&\n checkObjectKeyExists(field.validators, \"minLength\") &&\n isNotEmptyValue(field.validators.minLength)\n ) {\n validators.push(Validators.minLength(field.validators.minLength));\n }\n if (\n checkObjectKeyExists(field, \"validators\") &&\n checkObjectKeyExists(field.validators, \"maxLength\") &&\n isNotEmptyValue(field.validators.maxLength)\n ) {\n validators.push(Validators.maxLength(field.validators.maxLength));\n }\n if (\n checkObjectKeyExists(field, \"validators\") &&\n checkObjectKeyExists(field.validators, \"pattern\") &&\n isNotEmptyValue(field.validators.pattern)\n ) {\n if (checkObjectKeyExists(field.validators.pattern, \"key\")) {\n if (field.validators.pattern.key === \"CUSTOM\") {\n validators.push(Validators.pattern(field.validators.pattern.pattern));\n } else {\n validators.push(\n Validators.pattern(PATTERNS[field.validators.pattern.key])\n );\n }\n }\n }\n\n return validators;\n }\n\n @logMethod\n getFormFieldsValidationErrors(\n formGroup: FormGroup\n ): { name: string; value: string }[] {\n let errors: { name: string; value: string }[] = [];\n\n for (const key in formGroup.controls) {\n const controlErrors: ValidationErrors = formGroup.controls[key].errors;\n if (controlErrors !== null && controlErrors !== undefined) {\n Object.keys(controlErrors).forEach((keyError) => {\n errors.push({\n name: keyError,\n value: controlErrors[keyError]\n });\n });\n }\n }\n\n return errors;\n }\n\n @logMethod\n getFormFieldsInvalidControls(formToInvestigate: FormGroup | FormArray) {\n var controls: any[] = [];\n\n let recursiveFunc = (form: FormGroup | FormArray) => {\n Object.keys(form.controls).forEach((field: any) => {\n const control = form.get(field);\n if (control.invalid) {\n controls.push({\n key: field,\n invalid: true\n });\n } else {\n controls.push({\n key: field,\n invalid: false\n });\n }\n if (control instanceof FormGroup) {\n recursiveFunc(control);\n } else if (control instanceof FormArray) {\n recursiveFunc(control);\n }\n });\n };\n\n recursiveFunc(formToInvestigate);\n\n return controls;\n }\n}\n","import { FormControl, FormGroup } from \"@angular/forms\";\nimport { checkObjectKeyExists, logMethod } from \"kwikid-toolkit\";\nimport { Defaults } from \"./helpers/form-view.defaults.helper\";\nimport { convertFormFieldValueToKwikUIFormat } from \"./helpers/form-view.fields.helper\";\nimport { FormValidation } from \"./helpers/form-view.form-validations.helper\";\n\nexport class KwikIDFormViewService {\n constructor() {}\n\n // 'init' stage of the form\n @logMethod\n async createFormGroup(\n fields: any,\n formData: any,\n previousFormData: any,\n allFormsData: any,\n takeAction: Function\n ) {\n let formGroup = new FormGroup({});\n\n for (let field of fields) {\n if (field.isFormElement) {\n const defaults = new Defaults(\n field,\n fields,\n allFormsData,\n formData,\n previousFormData,\n takeAction\n );\n let value = await defaults.getFormFieldValue();\n\n if (checkObjectKeyExists(field, \"default\")) {\n if (checkObjectKeyExists(field.default, \"options\")) {\n if (field.default.options.triggers.includes(\"ON_INIT\")) {\n await defaults.getFormFieldOptions();\n }\n }\n }\n\n value = convertFormFieldValueToKwikUIFormat(field, value);\n\n const validators = new FormValidation().getFormFieldValidators(field);\n\n formGroup.addControl(\n field.key,\n new FormControl(\n { value: value, disabled: field.disabled },\n { validators: validators }\n )\n );\n }\n }\n\n return formGroup;\n }\n}\n","import {\n Action,\n checkObjectKeyExists,\n Condition,\n logMethod,\n Rule,\n setValueToObjectPath,\n Source,\n TAction,\n TRule,\n TSource,\n TValidation\n} from \"kwikid-toolkit\";\nimport {\n EApiRequestUrlType,\n TApiRequest,\n TApiRequestBody,\n TApiRequestBodyParam,\n TApiRequestHeaders,\n TApiRequestHeadersParam,\n TApiResponse\n} from \"../definitions/form-view.apis.definition\";\nimport { TFieldApiCall } from \"../definitions/form-view.fields.definition\";\nimport { TTrigger } from \"../definitions/form-view.triggers.definition\";\n\nexport class Apis {\n private _object: any;\n get object(): any {\n return this._object;\n }\n set object(value: any) {\n this._object = value;\n }\n\n private _takeAction: Function;\n\n private _request: TApiRequest;\n private _response: TApiResponse;\n\n constructor(object: any, takeAction: any) {\n this._object = object;\n this._takeAction = takeAction;\n\n this._request = this._object.API_CONFIG.request;\n this._response = this._object.API_CONFIG.response;\n }\n\n @logMethod\n public async setUrl(): Promise<TFieldApiCall> {\n if (\n this._request.url.hasOwnProperty(\"type\") &&\n this._request.url.type === EApiRequestUrlType.CALCULATED\n ) {\n const source = new Source(this._object);\n const url = await source.getValueFromSource(\n this._request.url.props.value.source\n );\n this._request.url = setValueToObjectPath(this._request.url, \"value\", url);\n } else {\n this._request.url = setValueToObjectPath({}, \"value\", this._request.url);\n }\n\n return this._object.API_CONFIG;\n }\n\n @logMethod\n public async setRequestBody(): Promise<TFieldApiCall> {\n if (checkObjectKeyExists(this._request, \"body\")) {\n if (checkObjectKeyExists(this._request.headers, \"params\")) {\n let params: Array<TApiRequestBodyParam> = this._request.body.params;\n\n let paramIndex = 0;\n for (let param of params) {\n let sources: Array<TSource> = param.sources;\n\n let sourceIndex = 0;\n for (let source of sources) {\n const sources = new Source(this._object);\n\n const value = sources.getValueFromSource(source);\n // Set the Value of current source.\n this._object.API_CONFIG = setValueToObjectPath(\n this._object.API_CONFIG,\n `request.body.params[${paramIndex}].sources[${sourceIndex}].value`,\n value\n );\n\n const validation: TValidation = (source as any).validation;\n\n const triggers: Array<TTrigger> = validation?.triggers ?? [];\n const rules: Array<TRule> = validation?.rules ?? [];\n const actions: Array<TAction> = (validation as any)?.actions ?? [];\n\n const rulesMapping = new Rule(rules, this._object).mapping();\n\n for (let action of actions) {\n const conditionEvaluation = new Condition(\n action.condition,\n rulesMapping\n ).evaluate();\n\n if (conditionEvaluation) {\n const actions = new Action(\n action,\n rulesMapping,\n this._object,\n this._takeAction\n );\n\n await actions.execute();\n }\n }\n\n sourceIndex++;\n }\n\n paramIndex++;\n }\n\n return this._object.API_CONFIG;\n } else {\n return this._object.API_CONFIG;\n }\n } else {\n return this._object.API_CONFIG;\n }\n }\n\n @logMethod\n public async validateRequestBody(): Promise<TFieldApiCall> {\n if (checkObjectKeyExists(this._request, \"body\")) {\n if (checkObjectKeyExists(this._request.body, \"validation\")) {\n const body: TApiRequestBody = this._request.body;\n\n const validation: TValidation = body.validation;\n\n const triggers: Array<TTrigger> = validation.triggers;\n const rules: Array<TRule> = validation.rules;\n const actions: Array<TAction> = (validation as any)?.actions;\n\n const rulesMapping = new Rule(rules, this._object).mapping();\n\n for (let action of actions) {\n const conditionSuccess = new Condition(\n action.condition,\n rulesMapping\n ).evaluate();\n\n if (conditionSuccess) {\n const actions = new Action(\n action,\n rulesMapping,\n this._object,\n this._takeAction\n );\n\n await actions.execute();\n }\n }\n\n return this._object.API_CONFIG;\n } else {\n return this._object.API_CONFIG;\n }\n } else {\n return this._object.API_CONFIG;\n }\n }\n\n @logMethod\n public async setRequestHeaders(): Promise<TFieldApiCall> {\n if (checkObjectKeyExists(this._request, \"headers\")) {\n if (checkObjectKeyExists(this._request.headers, \"params\")) {\n let params: Array<TApiRequestHeadersParam> =\n this._request.headers.params;\n let paramIndex = 0;\n for (let param of params) {\n let sources: Array<TSource> = param.sources;\n\n let sourceIndex = 0;\n for (let source of sources) {\n const sources = new Source(this._object);\n\n const value = sources.getValueFromSource(source);\n // Set the Value of current source.\n this._object.API_CONFIG = setValueToObjectPath(\n this._object.API_CONFIG,\n `request.headers.params[${paramIndex}].sources[${sourceIndex}].value`,\n value\n );\n\n const validation: TValidation = (source as any).validation;\n\n const triggers: Array<TTrigger> = validation?.triggers ?? [];\n const rules: Array<TRule> = validation?.rules ?? [];\n const actions: Array<TAction> = (validation as any)?.actions ?? [];\n\n const rulesMapping = new Rule(rules, this._object).mapping();\n\n for (let action of actions) {\n const conditionEvaluation = new Condition(\n action.condition,\n rulesMapping\n ).evaluate();\n\n if (conditionEvaluation) {\n const actions = new Action(\n action,\n rulesMapping,\n this._object,\n this._takeAction\n );\n\n await actions.execute();\n }\n }\n\n sourceIndex++;\n }\n\n paramIndex++;\n }\n\n return this._object.API_CONFIG;\n } else {\n return this._object.API_CONFIG;\n }\n } else {\n return this._object.API_CONFIG;\n }\n }\n\n @logMethod\n public async validateRequestHeaders(): Promise<TFieldApiCall> {\n const headers: TApiRequestHeaders = this._request.headers;\n if (checkObjectKeyExists(this._request, \"headers\")) {\n if (checkObjectKeyExists(this._request.headers, \"validation\")) {\n const validation: TValidation = headers.validation;\n\n const triggers: Array<TTrigger> = validation.triggers;\n const rules: Array<TRule> = validation.rules;\n const actions: Array<TAction> = (validation as any)?.actions;\n\n const rulesMapping = new Rule(rules, this._object).mapping();\n\n for (let action of actions) {\n const conditionSuccess = new Condition(\n action.condition,\n rulesMapping\n ).evaluate();\n\n if (conditionSuccess) {\n const actions = new Action(\n action,\n rulesMapping,\n this._object,\n this._takeAction\n );\n\n await actions.execute();\n }\n }\n return this._object.API_CONFIG;\n } else {\n return this._object.API_CONFIG;\n }\n } else {\n return this._object.API_CONFIG;\n }\n }\n\n @logMethod\n public async validateResponse(): Promise<TFieldApiCall> {\n if (checkObjectKeyExists(this._response, \"validation\")) {\n const validation: TValidation = this._response.validation;\n const triggers: Array<TTrigger> = validation.triggers;\n const rules: Array<TRule> = validation.rules;\n const actions: Array<TAction> = (validation as any).actions;\n\n const rulesMapping = new Rule(rules, this._object).mapping();\n\n for (let action of actions) {\n const conditionSuccess = new Condition(\n action.condition,\n rulesMapping\n ).evaluate();\n\n if (conditionSuccess) {\n const actions = new Action(\n action,\n rulesMapping,\n this._object,\n this._takeAction\n );\n\n await actions.execute();\n }\n }\n }\n\n return this._object.API_CONFIG;\n }\n\n @logMethod\n public async callNextApi(validation: TValidation): Promise<any> {\n const rules: Array<TRule> = validation.rules;\n const actions: Array<TAction> = (validation as any)?.actions;\n\n const rulesMapping = new Rule(rules, this._object).mapping();\n\n for (let action of actions) {\n const conditionSuccess = new Condition(\n action.condition,\n rulesMapping\n ).evaluate();\n\n if (conditionSuccess) {\n const actions = new Action(\n action,\n rulesMapping,\n this._object,\n this._takeAction\n );\n\n await actions.execute();\n }\n }\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { DomSanitizer } from \"@angular/platform-browser\";\n\n/**\n * Generated class for the SafeHtmlPipe pipe.\n *\n * See https://angular.io/api/core/Pipe for more info on Angular Pipes.\n */\n@Pipe({\n name: \"safeHtml\"\n})\nexport class SafeHtmlPipe implements PipeTransform {\n constructor(private sanitizer: DomSanitizer) {}\n\n transform(html) {\n return this.sanitizer.bypassSecurityTrustHtml(html);\n }\n}\n","import {\n AfterViewInit,\n Component,\n EventEmitter,\n Inject,\n Input,\n OnInit,\n Output,\n SimpleChanges\n} from \"@angular/core\";\nimport { FormGroup } from \"@angular/forms\";\nimport { TuiAlertService } from \"@taiga-ui/core\";\nimport { TuiPushService } from \"@taiga-ui/kit\";\nimport {\n Action,\n checkObjectKeyExists,\n Condition,\n ESourceKey,\n getObjectValueFromPath,\n isEmptyValue,\n isNotEmptyValue,\n isUndefined,\n logMethod,\n replaceString,\n Rule,\n setMissingKeyValue,\n Source,\n TAction,\n TValidation,\n Validation\n} from \"kwikid-toolkit\";\nimport { pairwise } from \"rxjs/operators\";\nimport { Converter } from \"../config-converter.helper\";\nimport { EFormsListStatus } from \"../forms-list/forms-list.definitions\";\nimport { EActionKey } from \"./definitions/form-view.actions.definition\";\nimport {\n EApiRequestUrlType,\n EApiStatusType,\n TApiEndpoint\n} from \"./definitions/form-view.apis.definition\";\nimport {\n EMessageType,\n TMessage\n} from \"./definitions/form-view.commons.definition\";\nimport {\n TFieldApiCall,\n TFieldTitle\n} from \"./definitions/form-view.fields.definition\";\nimport { KwikIDFormViewService } from \"./form-view.service\";\nimport { Apis } from \"./helpers/form-view.apis.helper\";\nimport {\n appendFormFieldMessage,\n convertFormFieldEmptyValueToKwikUIFormat,\n convertFormFieldValueToKwikUIFormat,\n convertFormFieldValueToStandardFormat,\n getFormFieldByKey,\n getFormFieldIndexByKey,\n highlightFormFieldError,\n removeFormFieldMessage,\n showFormFieldError\n} from \"./helpers/form-view.fields.helper\";\nimport { FormValidation } from \"./helpers/form-view.form-validations.helper\";\n\n@Component({\n selector: \"kwikid-form-view\",\n templateUrl: \"./form-view.component.html\",\n styleUrls: [\"./form-view.component.scss\"],\n providers: [KwikIDFormViewService]\n})\nexport class KwikIDFormViewComponent implements OnInit, AfterViewInit {\n @Input()\n formConfig: any;\n\n @Input()\n formData: any;\n\n @Input()\n isMobileView: boolean = false;\n\n @Input()\n allFormsData: any;\n\n @Output()\n onClickViewForms: EventEmitter<any> = new EventEmitter<any>();\n\n @Output()\n onClickSaveForm: EventEmitter<any> = new EventEmitter<any>();\n\n @Output()\n onClickApiCall: EventEmitter<any> = new EventEmitter<any>();\n\n fieldGroups: any = {};\n formFields: any[] = [];\n previousFormData: any = {};\n\n loading: boolean = true;\n viewFormsButton = {\n disabled: false,\n showLoader: false\n };\n saveFormButton = {\n disabled: false,\n showLoader: false\n };\n\n formGroup: FormGroup = new FormGroup({});\n\n constructor(\n @Inject(TuiPushService) protected readonly push: TuiPushService,\n @Inject(TuiAlertService) protected readonly alert: TuiAlertService,\n private formViewService: KwikIDFormViewService\n ) {}\n\n @logMethod\n ngOnInit(): void {\n (async () => {\n await this.initFormConfig(this.formConfig);\n\n this.loading = false;\n })();\n }\n\n @logMethod\n ngAfterViewInit(): void {}\n\n @logMethod\n ngOnChanges(changes: SimpleChanges): void {\n const verifyChange = (key: string) => {\n return checkObjectKeyExists(changes, key) && !changes[key].firstChange;\n };\n if (verifyChange(\"formData\")) {\n this.formData = {\n ...this.formData,\n ...changes.formData.currentValue\n };\n }\n if (verifyChange(\"isMobileView\")) {\n this.isMobileView = changes.isMobileView.currentValue;\n }\n if (verifyChange(\"allFormsData\")) {\n this.allFormsData = changes.allFormsData.currentValue;\n }\n if (verifyChange(\"formConfig\")) {\n this.formConfig = changes.formConfig.currentValue;\n\n (async () => {\n await this.initFormConfig(this.formConfig);\n })();\n }\n }\n\n @logMethod\n async initFormConfig(formConfig: any) {\n formConfig = new Converter().convertFormConfig(formConfig);\n\n formConfig = new Converter().updateFormConfigProperties(formConfig);\n\n this.setFormFieldsFromFormConfig(formConfig);\n\n this.setFormFieldGroupsFromFormConfig(formConfig);\n\n this.setFormDataFromAllFormsData();\n\n this.formGroup = await this.formViewService.createFormGroup(\n this.formFields,\n this.formData,\n this.previousFormData,\n this.allFormsData,\n this.takeAction.bind(this)\n );\n\n for (let field of this.formFields) {\n if (field.isFormElement) {\n this.previousFormData = {\n ...this.previousFormData,\n [field.key]: this.formGroup.controls[field.key].value\n };\n\n this.formData = {\n ...this.formData,\n [field.key]: this.formGroup.controls[field.key].value\n };\n\n this.formGroup.controls[field.key].valueChanges\n .pipe(pairwise())\n .subscribe(([previousValue, currentValue]) => {\n this.previousFormData = {\n ...this.previousFormData,\n [field.key]: convertFormFieldValueToStandardFormat(\n field,\n previousValue\n )\n };\n\n this.formData = {\n ...this.formData,\n [field.key]: convertFormFieldValueToStandardFormat(\n field,\n currentValue\n )\n };\n });\n }\n }\n\n for (let field of this.formFields) {\n if (field.isFormElement) {\n if (checkObjectKeyExists(field, \"validation\")) {\n if (field.validation.triggers.includes(\"ON_INIT\")) {\n const validations = new Validation(\n {\n FIELD_CONFIG: field,\n FORM_FIELDS: this.formFields,\n FORM_DATA: this.formData,\n PREVIOUS_FORM_DATA: this.previousFormData,\n ALL_FORMS_DATA: this.allFormsData\n },\n this.takeAction.bind(this)\n );\n\n await validations.validate(field.validation);\n }\n }\n\n if (checkObjectKeyExists(field, \"connectedElements\")) {\n this.handleConnectedElements(\n {\n key: field.key,\n value: this.formGroup.controls[field.key].value\n },\n \"ON_INIT\"\n );\n }\n }\n }\n }\n\n @logMethod\n setFormFieldsFromFormConfig(formConfig: any) {\n if (checkObjectKeyExists(formConfig, \"fields\")) {\n this.formFields = formConfig.fields;\n } else if (\n checkObjectKeyExists(formConfig, \"multiForm\") &&\n checkObjectKeyExists(formConfig.multiForm, \"fields\")\n ) {\n this.formFields = formConfig.multiForm.fields;\n }\n }\n\n @logMethod\n setFormFieldGroupsFromFormConfig(formConfig: any) {\n this.fieldGroups = formConfig.fieldGroups;\n }\n\n @logMethod\n setFormDataFromAllFormsData() {\n if (checkObjectKeyExists(this.allFormsData, this.formConfig.key)) {\n this.formData = this.allFormsData[this.formConfig.key];\n } else {\n this.formData = {};\n }\n }\n\n @logMethod\n async handleConnectedElementFieldGroupActions(\n childFieldGroupConfig: any,\n parentField: any\n ) {\n if (checkObjectKeyExists(childFieldGroupConfig, \"rules\")) {\n const rulesMapping = new Rule(childFieldGroupConfig.rules, {\n FIELD_CONFIG: parentField,\n FORM_DATA: this.formData,\n PREVIOUS_FORM_DATA: this.previousFormData,\n ALL_FORMS_DATA: this.allFormsData\n }).mapping();\n\n for (let action of childFieldGroupConfig.actions) {\n const conditionSuccess = new Condition(\n action.condition,\n rulesMapping\n ).evaluate();\n\n if (conditionSuccess) {\n const actions = new Action(\n action,\n rulesMapping,\n {\n FIELD_CONFIG: parentField,\n FORM_FIELDS: this.formFields,\n FORM_DATA: this.formData,\n PREVIOUS_FORM_DATA: this.previousFormData,\n ALL_FORMS_DATA: this.allFormsData\n },\n this.takeActionOnFieldGroup.bind(this)\n );\n\n await actions.execute();\n }\n }\n }\n }\n\n @logMethod\n async handleConnectedElementFieldGroup(\n currentField: any,\n connectedFieldGroupConfig: any,\n eventType: string\n ) {\n if (checkObjectKeyExists(connectedFieldGroupConfig, \"triggers\")) {\n if (connectedFieldGroupConfig.triggers.includes(eventType)) {\n await this.handleConnectedElementFieldGroupActions(\n connectedFieldGroupConfig,\n currentField\n );\n }\n }\n }\n\n @logMethod\n async handleConnectedElementFieldActions(\n connectedFieldConfig: any,\n connectedField: any\n ) {\n if (checkObjectKeyExists(connectedFieldConfig, \"rules\")) {\n const rulesMapping = new Rule(connectedFieldConfig.rules, {\n FIELD_CONFIG: connectedField,\n FORM_DATA: this.formData,\n PREVIOUS_FORM_DATA: this.previousFormData,\n ALL_FORMS_DATA: this.allFormsData\n }).mapping();\n\n for (let action of connectedFieldConfig.actions) {\n const conditionSuccess = new Condition(\n action.condition,\n rulesMapping\n ).evaluate();\n\n if (conditionSuccess) {\n const actions = new Action(\n action,\n rulesMapping,\n {\n FORM_FIELDS: this.formFields,\n FIELD_CONFIG: connectedField,\n FORM_DATA: this.formData,\n PREVIOUS_FORM_DATA: this.previousFormData,\n ALL_FORMS_DATA: this.allFormsData\n },\n this.takeAction.bind(this)\n );\n\n await actions.execute();\n }\n }\n }\n\n return connectedField;\n }\n\n @logMethod\n async handleConnectedElementFields(\n currentField: any,\n connectedFieldConfig: any,\n eventType: string,\n nested: string\n ) {\n let connectedField = getFormFieldByKey(\n this.formFields,\n connectedFieldConfig[\"key\"]\n );\n\n if (checkObjectKeyExists(connectedFieldConfig, \"triggers\")) {\n if (connectedFieldConfig.triggers.includes(eventType)) {\n connectedField = await this.handleConnectedElementFieldActions(\n connectedFieldConfig,\n connectedField\n );\n }\n }\n if (checkObjectKeyExists(connectedFieldConfig, \"handleNestedFields\")) {\n if (connectedFieldConfig.handleNestedFields) {\n this.handleConnectedElements(\n { key: connectedFieldConfig.key },\n eventType\n );\n }\n }\n return currentField;\n }\n\n @logMethod\n async handleConnectedElements(e: any, eventType: string) {\n let currentField = getFormFieldByKey(this.formFields, e.key);\n\n if (currentField !== undefined) {\n if (checkObjectKeyExists(currentField, \"connectedElements\")) {\n if (\n checkObjectKeyExists(\n currentField.connectedElements,\n \"connectedFieldGroups\"\n )\n ) {\n let connectedFieldGroups =\n currentField.connectedElements.connectedFieldGroups;\n for (let connectedFieldGroupConfig of connectedFieldGroups) {\n await this.handleConnectedElementFieldGroup(\n currentField,\n connectedFieldGroupConfig,\n eventType\n );\n }\n }\n if (\n checkObjectKeyExists(\n currentField.connectedElements,\n \"connectedFields\"\n )\n ) {\n let connectedFields = currentField.connectedElements.connectedFields;\n for (let connectedFieldConfig of connectedFields) {\n currentField = await this.handleConnectedElementFields(\n currentField,\n connectedFieldConfig,\n eventType,\n eventType\n );\n }\n }\n }\n } else {\n throw new Error(\n `Field for the given key ['${e.key}'] is not found with eventType: '${eventType}'.`\n );\n }\n }\n\n // DOM Event Handlers\n @logMethod\n handleGetKeyValue(e: any) {\n this.formGroup.patchValue(\n {\n [e.key]: e.value\n },\n { emitEvent: false }\n );\n\n const field = getFormFieldByKey(this.formFields, e.key);\n this.formData[e.key] = convertFormFieldValueToStandardFormat(\n field,\n e.value\n );\n\n if (\n field.isFormElement &&\n checkObjectKeyExists(field, \"validation\") &&\n field.validation.triggers.includes(\"ON_CHANGE\")\n ) {\n const validations = new Validation(\n {\n FIELD_CONFIG: field,\n FORM_FIELDS: this.formFields,\n FORM_DATA: this.formData,\n PREVIOUS_FORM_DATA: this.previousFormData,\n ALL_FORMS_DATA: this.allFormsData\n },\n this.takeAction.bind(this)\n );\n\n (async () => {\n await validations.validate(field.validation);\n })();\n }\n\n if (\n field.isFormElement &&\n checkObjectKeyExists(field, \"connectedElements\")\n ) {\n this.handleConnectedElements(\n {\n key: field.key,\n value: this.formGroup.controls[field.key].value\n },\n \"ON_CHANGE\"\n );\n }\n }\n\n @logMethod\n async handleOnClickResetFormFields(e: any, field: TFieldTitle) {\n for (let f of field.reset.fields) {\n for (let action of f.actions) {\n const resetField = getFormFieldByKey(\n this.formFields,\n action.props.fieldKey\n );\n const actions = new Action(\n action,\n {},\n {\n FIELD_CONFIG: resetField,\n FORM_FIELDS: this.formFields,\n FORM_DATA: this.formData,\n PREVIOUS_FORM_DATA: this.previousFormData,\n ALL_FORMS_DATA: this.allFormsData\n },\n this.takeAction.bind(this)\n );\n await actions.execute();\n }\n }\n }\n\n @logMethod\n async handleApiCall(field: TFieldApiCall, api: any) {\n const apis = new Apis(\n {\n FIELD_CONFIG: field,\n API_CONFIG: api,\n FORM_FIELDS: this.formFields,\n FORM_DATA: this.formData,\n PREVIOUS_FORM_DATA: this.previousFormData,\n ALL_FORMS_DATA: this.allFormsData\n },\n this.takeAction.bind(this)\n );\n\n api = await apis.setUrl();\n\n api = await apis.setRequestHeaders();\n\n api = await apis.validateRequestHeaders();\n\n api = await apis.setRequestBody();\n\n api = await apis.validateRequestBody();\n\n let apiCallResponse: any = undefined;\n\n if (\n (\n api.request.body.validation as TValidation & {\n is_valid: boolean;\n }\n ).is_valid\n ) {\n if (\n api.request.url.hasOwnProperty(\"type\") &&\n api.request.url.type === EApiRequestUrlType.MOCK\n ) {\n apiCallResponse = api.request.url.props.mockedData.data;\n } else {\n const url: string = api.request.url.value;\n const method: string = api.request?.method ?? \"POST\";\n const headers: any = {\n \"Content-Type\": \"application/json\",\n ...(api.request?.headers?.value || {})\n };\n const body: any = api.request?.body?.value ?? null;\n const response: any = await fetch(url, {\n method: method,\n headers: { ...headers },\n body: JSON.stringify(body)\n });\n apiCallResponse = await response.json();\n }\n\n /**\n * This runs when API is in old format or new.\n * If Old Format then it directly patches api response to field data\n */\n if (checkObjectKeyExists(field.api, \"request\")) {\n this.formData = {\n ...this.formData,\n [field.key]: apiCallResponse\n };\n\n this.formGroup.patchValue(\n {\n [field.key]: apiCallResponse\n },\n { emitEvent: false }\n );\n }\n\n api.response = setMissingKeyValue(api.response, \"value\", apiCallResponse);\n\n const apis = new Apis(\n {\n FIELD_CONFIG: field,\n API_CONFIG: api,\n FORM_FIELDS: this.formFields,\n FORM_DATA: this.formData,\n PREVIOUS_FORM_DATA: this.previousFormData,\n ALL_FORMS_DATA: this.allFormsData\n },\n this.takeAction.bind(this)\n );\n\n (async () => {\n api = await apis.validateResponse();\n })();\n } else {\n setTimeout(() => {\n field[\"api\"][\"status\"][\"value\"] = EApiStatusType.FAILED;\n field[\"showLoader\"] = false;\n }, 500);\n }\n\n return { field: field, api: api };\n }\n\n @logMethod\n async handleOnClickApiCall(e: any) {\n let field: TFieldApiCall = getFormFieldByKey(this.formFields, e.key);\n\n if (field.type === \"api-call\") {\n // set button status to loading\n field[\"api\"][\"status\"][\"value\"] = EApiStatusType.LOADING;\n field[\"showLoader\"] = true;\n this.viewFormsButton[\"disabled\"] = true;\n this.viewFormsButton[\"showLoader\"] = true;\n this.saveFormButton[\"disabled\"] = true;\n this.saveFormButton[\"showLoader\"] = true;\n\n if (checkObjectKeyExists(field.api, \"request\")) {\n await this.handleApiCall(field, field.api);\n } else {\n const apis = new Apis(\n {\n FIELD_CONFIG: field,\n API_CONFIG: {},\n FORM_FIELDS: this.formFields,\n FORM_DATA: this.formData,\n PREVIOUS_FORM_DATA: this.previousFormData,\n ALL_FORMS_DATA: this.allFormsData\n },\n this.takeAction.bind(this)\n );\n\n await apis.callNextApi(field.api.entrypoint);\n }\n\n this.viewFormsButton[\"disabled\"] = false;\n this.viewFormsButton[\"showLoader\"] = false;\n this.saveFormButton[\"disabled\"] = false;\n this.saveFormButton[\"showLoader\"] = false;\n }\n }\n\n /**\n * Method to optimize the DOM update by Angular for using *ngFor on large no. of items.\n * @param index number\n * @param item fieldConfig\n * @returns string\n */\n getUniqueIdentifier(index: number, item: any): string {\n return item.key;\n }\n\n @logMethod\n handleOnClickViewForms(e: any) {\n if (this.formConfig.status === EFormsListStatus.COMPLETED) {\n this.onClickViewForms.emit({\n clicked: true\n });\n } else if (\n window.confirm(\"Your data will be lost if you leave this page! Continue?\")\n ) {\n this.onClickViewForms.emit({\n clicked: true\n });\n }\n }\n\n @logMethod\n async handleOnClickSaveForm(e: any) {\n let formData = this.formGroup.getRawValue();\n\n for (let field of this.formFields) {\n if (field.isFormElement) {\n if (field.hidden) {\n delete formData[field.key];\n } else {\n formData[field.key] = convertFormFieldValueToStandardFormat(\n field,\n formData[field.key]\n );\n }\n }\n }\n\n if (this.formGroup.invalid) {\n const controls = new FormValidation().getFormFieldsInvalidControls(\n this.formGroup\n );\n\n let firstFieldWithError: string = \"\";\n\n for (let control of controls) {\n if (control.invalid && isEmptyValue(firstFieldWithError)) {\n firstFieldWithError = control.key;\n }\n this.formFields = showFormFieldError(\n this.formFields,\n this.formGroup.controls[control.key].errors,\n control.key,\n control.invalid\n );\n }\n\n this.toggleErrorNotification(true);\n setTimeout(() => {\n this.toggleErrorNotification(false);\n }, 3000);\n\n return;\n }\n\n for (let field of this.formFields) {\n if (\n field.isFormElement &&\n checkObjectKeyExists(field, \"validation\") &&\n field.validation.triggers.includes(\"ON_SAVE\")\n ) {\n const validations = new Validation(\n {\n FIELD_CONFIG: field,\n FORM_FIELDS: this.formFields,\n FORM_DATA: this.formData,\n PREVIOUS_FORM_DATA: this.previousFormData,\n ALL_FORMS_DATA: this.allFormsData\n },\n this.takeAction.bind(this)\n );\n\n await validations.validate(field.validation);\n\n if (!field.validation.is_valid) {\n this.toggleErrorNotification(true);\n setTimeout(() => {\n this.toggleErrorNotification(false);\n }, 3000);\n\n return;\n }\n }\n }\n\n Object.keys(formData).map((key) => {\n if (isEmptyValue(formData[key])) {\n formData[key] = \"\";\n }\n });\n\n this.onClickSaveForm.emit({ formConfig: this.formConfig, data: formData });\n }\n\n showErrorNotification: boolean = false;\n @logMethod\n toggleErrorNotification(show) {\n this.showErrorNotification = show;\n }\n\n // Component Helpers\n @logMethod\n fieldHide(fieldKey: string) {\n let field = getFormFieldByKey(this.formFields, fieldKey);\n let fieldIndex = this.formFields.findIndex((_: any) => {\n return field.key === _.key;\n });\n\n this.formFields[fieldIndex][\"hidden\"] = true;\n this.formGroup.updateValueAndValidity();\n }\n\n @logMethod\n fieldGroupHide(fieldGroup: string) {\n for (let fieldKey of this.fieldGroups[fieldGroup]) {\n this.fieldHide(fieldKey);\n }\n }\n\n @logMethod\n fieldShow(fieldKey: string) {\n let field = getFormFieldByKey(this.formFields, fieldKey);\n let fieldIndex = this.formFields.findIndex((_: any) => {\n return field.key === _.key;\n });\n\n this.formFields[fieldIndex][\"hidden\"] = false;\n this.formGroup.updateValueAndValidity();\n }\n\n @logMethod\n fieldGroupShow(fieldGroup: string) {\n for (let fieldKey of this.fieldGroups[fieldGroup]) {\n this.fieldShow(fieldKey);\n }\n }\n\n @logMethod\n fieldDisable(fieldKey: string) {\n let field = getFormFieldByKey(this.formFields, fieldKey);\n let fieldIndex = this.formFields.findIndex((_: any) => {\n return field.key === _.key;\n });\n\n if (field.isFormElement) {\n this.formFields[fieldIndex][\"disabled\"] = true;\n\n if (isNotEmptyValue(this.formGroup.controls)) {\n this.formGroup.controls[field.key].disable({\n emitEvent: false\n });\n }\n this.formGroup.updateValueAndValidity();\n }\n }\n\n @logMethod\n fieldGroupDisable(fieldGroup: string) {\n for (let fieldKey of this.fieldGroups[fieldGroup]) {\n this.fieldDisable(fieldKey);\n }\n }\n\n @logMethod\n fieldEnable(fieldKey: string) {\n let field = getFormFieldByKey(this.formFields, fieldKey);\n let fieldIndex = this.formFields.findIndex((_: any) => {\n return field.key === _.key;\n });\n\n if (field.isFormElement) {\n this.formFields[fieldIndex][\"disabled\"] = false;\n\n if (isNotEmptyValue(this.formGroup.controls)) {\n this.formGroup.controls[field.key].enable({\n emitEvent: false\n });\n }\n this.formGroup.updateValueAndValidity();\n }\n }\n\n @logMethod\n fieldGroupEnable(fieldGroup: string) {\n for (let fieldKey of this.fieldGroups[fieldGroup]) {\n this.fieldEnable(fieldKey);\n }\n }\n\n @logMethod\n fieldReset(fieldKey: string) {\n // Find the field and its index in the formFields array\n let field = getFormFieldByKey(this.formFields, fieldKey);\n let fieldIndex = getFormFieldIndexByKey(this.formFields, fieldKey);\n\n // Reset the value of the field in the formGroup\n const resetValue = convertFormFieldEmptyValueToKwikUIFormat(field);\n\n this.formData[fieldKey] = resetValue;\n\n this.formGroup.controls[field.key].reset(resetValue, {\n emitEvent: false,\n onlySelf: true\n });\n\n this.formGroup.patchValue(\n {\n [field.key]: resetValue\n },\n { emitEvent: false }\n );\n\n this.formGroup.controls[field.key].updateValueAndValidity({\n emitEvent: true\n });\n\n // Reset the messages and errors for the field\n field = removeFormFieldMessage(field, {\n type: EMessageType.WARNING,\n message: \"\"\n });\n field = removeFormFieldMessage(field, {\n type: EMessageType.SUCCESS,\n message: \"\"\n });\n this.fieldErrorHide(fieldKey, {\n type: EMessageType.ERROR,\n message: \"\"\n });\n\n // Reset the value of the field in the formFields array\n switch (field.type) {\n case \"api-call\":\n const fieldApiCall = field as TFieldApiCall;\n fieldApiCall.api.status.value = EApiStatusType.DEFAULT;\n this.formFields[fieldIndex] = fieldApiCall;\n break;\n default:\n field.focus = false;\n field.invalid = false;\n this.formFields[fieldIndex] = field;\n break;\n }\n }\n\n @logMethod\n fieldErrorShow(fieldKey: string, message: TMessage) {\n let field = getFormFieldByKey(this.formFields, fieldKey);\n let fieldIndex = this.formFields.findIndex((_: any) => {\n return field.key === _.key;\n });\n\n field = highlightFormFieldError(field, true);\n field = appendFormFieldMessage(field, message);\n\n this.formFields[fieldIndex] = field;\n }\n\n @logMethod\n fieldErrorHide(fieldKey: string, message: TMessage) {\n let field = getFormFieldByKey(this.formFields, fieldKey);\n let fieldIndex = this.formFields.findIndex((_: any) => {\n return field.key === _.key;\n });\n\n field = highlightFormFieldError(field, false);\n field = removeFormFieldMessage(field, message);\n\n this.formFields[fieldIndex] = field;\n }\n\n @logMethod\n fieldMessageShow(fieldKey: string, message: TMessage) {\n let field = getFormFieldByKey(this.formFields, fieldKey);\n let fieldIndex = this.formFields.findIndex((_: any) => {\n return field.key === _.key;\n });\n\n field = appendFormFieldMessage(field, message);\n\n this.formFields[fieldIndex] = field;\n }\n\n @logMethod\n fieldMessageHide(fieldKey: string, message: TMessage) {\n let field = getFormFieldByKey(this.formFields, fieldKey);\n let fieldIndex = this.formFields.findIndex((_: any) => {\n return field.key === _.key;\n });\n\n field = removeFormFieldMessage(field, message);\n\n this.formFields[fieldIndex] = field;\n }\n\n @logMethod\n patchFieldControlValue(key: string, value: any) {\n this.formGroup.patchValue(\n {\n [key]: value\n },\n { emitEvent: false }\n );\n }\n\n @logMethod\n patchFormGroup(formData: any) {\n if (isUndefined(this.formGroup) || isUndefined(formData)) {\n throw new Error(`formGroup or formData is 'undefined'.`);\n } else {\n let formDataInKwikUIFormat = {};\n for (let fieldKey in formData) {\n formDataInKwikUIFormat[fieldKey] = convertFormFieldValueToKwikUIFormat(\n getFormFieldByKey(this.formFields, fieldKey),\n formData[fieldKey]\n );\n }\n this.formGroup.patchValue(formDataInKwikUIFormat, { emitEvent: false });\n }\n }\n\n @logMethod\n isFieldValid(fieldKey: string) {\n return this.formGroup.controls[fieldKey].valid;\n }\n\n @logMethod\n isFieldEnabled(fieldKey: string) {\n return this.formGroup.controls[fieldKey].enabled;\n }\n\n @logMethod\n getFormGroupRawValues() {\n return this.formGroup.getRawValue();\n }\n\n @logMethod\n async takeActionOnFieldGroup(action: TAction, object: any) {\n switch (action.key) {\n case EActionKey.FIELD_GROUP_HIDE:\n this.fieldGroupHide(action.props.groupKey);\n break;\n case EActionKey.FIELD_GROUP_SHOW:\n this.fieldGroupShow(action.props.groupKey);\n break;\n case EActionKey.FIELD_GROUP_ENABLE:\n this.fieldGroupEnable(action.props.groupKey);\n break;\n case EActionKey.FIELD_GROUP_DISABLE:\n this.fieldGroupDisable(action.props.groupKey);\n break;\n default:\n break;\n }\n }\n\n @logMethod\n async takeAction(action: TAction, object: any) {\n switch (action.key) {\n case EActionKey.FIELD_HIDE:\n this.fieldHide(action.props.fieldKey);\n break;\n case EActionKey.FIELD_SHOW:\n this.fieldShow(action.props.fieldKey);\n break;\n case EActionKey.FIELD_DISABLE:\n this.fieldDisable(action.props.fieldKey);\n break;\n case EActionKey.FIELD_ENABLE:\n this.fieldEnable(action.props.fieldKey);\n break;\n case EActionKey.FIELD_RESET:\n this.fieldReset(action.props.fieldKey);\n break;\n case EActionKey.FIELD_ERROR_SHOW:\n this.fieldErrorShow(action.props.fieldKey, action.props.message);\n break;\n case EActionKey.FIELD_ERROR_HIDE:\n this.fieldErrorHide(action.props.fieldKey, action.props.message);\n break;\n case EActionKey.FIELD_MESSAGE_SHOW:\n this.fieldMessageShow(action.props.fieldKey, action.props.message);\n break;\n case EActionKey.FIELD_MESSAGES_HIDE:\n this.fieldMessageHide(action.props.fieldKey, action.props.message);\n break;\n case EActionKey.SET_VALUE:\n const setValue_Source = new Source(object);\n\n const sourceValue = await setValue_Source.getValueFromSource(\n action.props.value.source\n );\n setValue_Source.setValueToSource(\n action.props.value.destination,\n sourceValue\n );\n\n object.FIELD_CONFIG = setValue_Source.object.FIELD_CONFIG;\n this.formData = setValue_Source.object.FORM_DATA;\n this.patchFormGroup(this.formData);\n this.allFormsData = setValue_Source.object.ALL_FORMS_DATA;\n this.previousFormData = setValue_Source.object.PREVIOUS_FORM_DATA;\n break;\n case EActionKey.SET_FIELD_DEFAULT_VALUE:\n const setDefaultValue_Source = new Source(object);\n\n const sourceDefaultValue =\n await setDefaultValue_Source.getValueFromSource(\n action.props.value.source\n );\n\n const destinationDefaultValue_FieldConfig_Config = {\n key: ESourceKey.OBJECT,\n props: {\n object: {\n key: \"FIELD_CONFIG\",\n path: \"default.value.value\"\n }\n }\n };\n setDefaultValue_Source.setValueToSource(\n destinationDefaultValue_FieldConfig_Config,\n sourceDefaultValue\n );\n\n const destinationDefaultValue_FormData_Config__Props__Object__Path =\n String(`${action.props.fieldKey}`);\n const destinationDefaultValue_FormData_Config = {\n key: ESourceKey.OBJECT,\n props: {\n object: {\n key: \"FORM_DATA\",\n path: String(action.props.fieldKey)\n }\n }\n };\n setDefaultValue_Source.setValueToSource(\n destinationDefaultValue_FormData_Config,\n sourceDefaultValue\n );\n\n object.FIELD_CONFIG = setDefaultValue_Source.object.FIELD_CONFIG;\n this.formData = setDefaultValue_Source.object.FORM_DATA;\n this.patchFormGroup(this.formData);\n this.allFormsData = setDefaultValue_Source.object.ALL_FORMS_DATA;\n this.previousFormData =\n setDefaultValue_Source.object.PREVIOUS_FORM_DATA;\n break;\n case EActionKey.SET_DROPDOWN_OPTIONS:\n const setDropdownValue_Sources = new Source(object);\n\n let dropdownValue = await setDropdownValue_Sources.getValueFromSource(\n action.props.value.source\n );\n if (checkObjectKeyExists(action.props, \"options\")) {\n if (checkObjectKeyExists(action.props.options, \"appendToPath\")) {\n let appendToPath =\n await setDropdownValue_Sources.getValueFromSource(\n action.props.options.appendToPath.source\n );\n if (isNotEmptyValue(appendToPath)) {\n const appendToPathStr = replaceString(\n appendToPath.match(\n `${action.props.options.appendToPath.filterSourceValue}`\n )[0],\n \"[^a-zA-Z0-9_]\",\n \"_\"\n );\n\n const optionsPath = `${action.props.options.path}${appendToPathStr}`;\n dropdownValue = getObjectValueFromPath(\n dropdownValue,\n optionsPath\n );\n }\n } else {\n dropdownValue = getObjectValueFromPath(\n dropdownValue,\n action.props.options.path\n );\n }\n }\n\n setDropdownValue_Sources.setValueToSource(\n action.props.value.destination,\n dropdownValue\n );\n\n object.FIELD_CONFIG = setDropdownValue_Sources.object.FIELD_CONFIG;\n this.formData = setDropdownValue_Sources.object.FORM_DATA;\n this.allFormsData = setDropdownValue_Sources.object.ALL_FORMS_DATA;\n this.previousFormData =\n setDropdownValue_Sources.object.PREVIOUS_FORM_DATA;\n break;\n case EActionKey.HANDLE_CONNECTED_ELEMENTS:\n this.handleConnectedElements(\n { key: action.props.fieldKey },\n \"ON_ACTION\"\n );\n break;\n case EActionKey.CUSTOM:\n break;\n case EActionKey.API_CALL:\n const entrypointKey = action.props.apiKey;\n let apiField = getFormFieldByKey(\n this.formFields,\n action.props.fieldKey\n );\n const endpoints = apiField.api.endpoints;\n const nextApiIndex = endpoints.findIndex(\n (api: TApiEndpoint) => api.apiKey == entrypointKey\n );\n const response = await this.handleApiCall(\n apiField,\n endpoints[nextApiIndex]\n );\n apiField = response.field;\n apiField.api.endpoints[nextApiIndex] = response.api;\n break;\n case EActionKey.API_CALL_END:\n const field = getFormFieldByKey(this.formFields, action.props.fieldKey);\n let apiCallResponses = {};\n field.api.endpoints.map((api: TApiEndpoint) => {\n if (checkObjectKeyExists(api.response, \"value\"))\n apiCallResponses = setMissingKeyValue(\n apiCallResponses,\n api.apiKey,\n api.response.value\n );\n });\n this.formData = {\n ...this.formData,\n [field.key]: apiCallResponses\n };\n this.patchFormGroup(this.formData);\n break;\n default:\n break;\n }\n }\n}\n","<div\n class=\"kwikid-form-container\"\n *ngIf=\"!loading\"\n>\n <div\n id=\"uf-form-fields-header-container\"\n *ngIf=\"\n !formConfig.properties.header.title.hidden ||\n !formConfig.properties.header.steps.hidden\n \"\n >\n <div\n id=\"uf-form-fields-title\"\n *ngIf=\"!formConfig.properties.header.title.hidden\"\n >{{ formConfig.properties.header.title.label }}</div\n >\n <div\n id=\"uf-form-fields-steps\"\n *ngIf=\"!formConfig.properties.header.steps.hidden\"\n >Step {{ formConfig.sequenceNo }} of {{ formConfig.formsListLength }}</div\n >\n <hr\n *ngIf=\"\n !formConfig.properties.header.title.hidden &&\n !formConfig.properties.header.steps.hidden\n \"\n />\n </div>\n <form\n class=\"kwikid-form show\"\n [formGroup]=\"formGroup\"\n >\n <ng-container\n *ngFor=\"\n let field of formFields;\n let i = index;\n trackBy: getUniqueIdentifier\n \"\n >\n <ng-container [ngSwitch]=\"field.type\">\n <!-- HTML Content -->\n <ng-container *ngSwitchCase=\"'html'\">\n <div\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <div [innerHtml]=\"field.html | safeHtml\"></div>\n </div>\n </ng-container>\n <!-- Form Title -->\n <ng-container *ngSwitchCase=\"'title'\">\n <div\n class=\"title\"\n [class.hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <div>\n {{ field.label }}\n </div>\n <kwikui-button\n *ngIf=\"field?.reset\"\n appearance=\"whiteblock\"\n size=\"s\"\n label=\"Reset\"\n (onClick)=\"handleOnClickResetFormFields($event, field)\"\n ></kwikui-button>\n </div>\n </ng-container>\n <!-- Input Text -->\n <ng-container *ngSwitchCase=\"'text'\">\n <div\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-input\n [case]=\"field?.properties?.case\"\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field.label\"\n [placeholder]=\"field?.properties?.placeholder\"\n [type]=\"'text'\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Checkbox -->\n <ng-container *ngSwitchCase=\"'checkbox'\">\n <div\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-checkbox-block\n [contentAlign]=\"field?.properties?.contentAlign ?? 'left'\"\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field?.properties?.placeholder\"\n [placeholder]=\"field?.properties?.placeholder\"\n [properties]=\"field?.properties\"\n [size]=\"field?.properties?.size ?? 'l'\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-checkbox-block>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Input Number -->\n <ng-container *ngSwitchCase=\"'number'\">\n <div\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-input-number\n [decimal]=\"field?.properties?.decimal\"\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field?.label\"\n [max]=\"field?.properties?.max\"\n [min]=\"field?.properties?.min\"\n [placeholder]=\"field?.properties?.placeholder\"\n [postfix]=\"field?.properties?.postfix ?? ''\"\n [precision]=\"field?.properties?.precision\"\n [prefix]=\"field?.properties?.prefix ?? ''\"\n [properties]=\"field?.properties\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input-number>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Input Date -->\n <ng-container *ngSwitchCase=\"'date'\">\n <div\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-input-date\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field.label\"\n [min]=\"field?.properties?.min\"\n [minCalculatedFromToday]=\"\n field?.properties?.minCalculatedFromToday\n \"\n [max]=\"field?.properties?.max\"\n [maxCalculatedFromToday]=\"\n field?.properties?.maxCalculatedFromToday\n \"\n [placeholder]=\"field?.properties?.placeholder\"\n [properties]=\"field?.properties\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input-date>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Input Phone -->\n <ng-container *ngSwitchCase=\"'phone'\">\n <div\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-input-phone\n [countryCode]=\"field?.properties?.countryCode\"\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field?.label\"\n [phoneMaskAfterCountryCode]=\"\n field?.properties?.phoneMaskAfterCountryCode\n \"\n [removeCountryCodeFromValue]=\"\n field?.properties?.removeCountryCodeFromValue\n \"\n [placeholder]=\"field?.properties?.placeholder\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input-phone>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Input Radio -->\n <ng-container *ngSwitchCase=\"'radio'\">\n <div\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <label\n [tuiLabel]=\"labelTemplate\"\n style=\"min-height: auto; padding: 0px 0.5rem\"\n >\n <kwikui-radio-list\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [items]=\"field?.options\"\n [label]=\"field?.label\"\n [orientation]=\"field?.properties?.orientation\"\n [placeholder]=\"field?.properties?.placeholder\"\n [properties]=\"field?.properties\"\n [size]=\"field?.properties?.size\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-radio-list>\n </label>\n <ng-template #labelTemplate>\n <p\n class=\"tui-space_bottom-2\"\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <b>\n {{ field.label }}\n <span *ngIf=\"field.validators?.required\"></span>\n </b>\n </p>\n </ng-template>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Dropdown -->\n <ng-container *ngSwitchCase=\"'dropdown-with-search'\">\n <div\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-select-combobox\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field.label\"\n [options]=\"field.options\"\n [placeholder]=\"field?.properties?.placeholder\"\n [properties]=\"field?.properties\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-select-combobox>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Input Slider -->\n <ng-container *ngSwitchCase=\"'slider'\">\n <div\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-input-slider\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field.label\"\n [max]=\"field?.properties?.max\"\n [min]=\"field?.properties?.min\"\n [placeholder]=\"field?.properties?.placeholder\"\n [properties]=\"field?.properties\"\n [quantum]=\"field?.properties?.quantum\"\n [size]=\"field?.properties?.size\"\n [steps]=\"field?.properties?.steps\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input-slider>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- API Call -->\n <ng-container *ngSwitchCase=\"'api-call'\">\n <div\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-button-api-call\n [apiStatus]=\"field?.api?.status?.value\"\n [class]=\"field?.class\"\n [disabled]=\"field?.disabled\"\n [id]=\"field.key\"\n [label]=\"field?.api?.status?.labels[field?.api?.status?.value]\"\n [showLoader]=\"field?.disabled === 'loading'\"\n shape=\"null\"\n size=\"m\"\n styles=\"width: fit-content\"\n (onClick)=\"handleOnClickApiCall($event)\"\n ></kwikui-button-api-call>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Mobile OTP -->\n <ng-container *ngSwitchCase=\"'otp'\">\n <div\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-input-otp\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field?.label\"\n [mask]=\"field?.properties?.mask\"\n [placeholder]=\"field?.properties?.placeholder\"\n [properties]=\"field?.properties\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input-otp>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n <!-- Aadhaar Number -->\n <ng-container *ngSwitchCase=\"'aadhaar-number'\">\n <div\n [hidden]=\"field?.hidden\"\n id=\"field_{{ field.key }}\"\n >\n <kwikui-input-aadhaar\n [disabled]=\"field?.disabled\"\n [focus]=\"field?.focus\"\n [formControl]=\"formGroup.controls[field.key]\"\n [formControlName]=\"field.key\"\n [id]=\"field.key\"\n [invalid]=\"field?.invalid\"\n [label]=\"field?.label\"\n [placeholder]=\"field?.placeholder\"\n [properties]=\"field?.properties\"\n [validators]=\"field?.validators\"\n (getKeyValue)=\"handleGetKeyValue($event)\"\n ></kwikui-input-aadhaar>\n <kwikui-messages\n [messages]=\"field.messages\"\n [id]=\"field.key\"\n ></kwikui-messages>\n </div>\n </ng-container>\n </ng-container>\n </ng-container>\n </form>\n <div class=\"kwikid-form-buttons\">\n <kwikui-button\n *ngIf=\"\n !formConfig.properties.footer.viewFormsButton.hidden && isMobileView\n \"\n [disabled]=\"viewFormsButton.disabled\"\n id=\"\"\n label=\"{{ formConfig.properties.footer.viewFormsButton.label }}\"\n [showLoader]=\"viewFormsButton.showLoader\"\n styles=\"\"\n class=\"\"\n type=\"button\"\n appearance=\"secondary\"\n icon=\"\"\n iconRight=\"\"\n [shape]=\"null\"\n size=\"m\"\n styles=\"width: 100%\"\n (onClick)=\"handleOnClickViewForms($event)\"\n ></kwikui-button>\n <kwikui-button\n *ngIf=\"!formConfig.properties.footer.saveButton.hidden\"\n [disabled]=\"saveFormButton.disabled\"\n id=\"\"\n label=\"{{ formConfig.properties.footer.saveButton.label }}\"\n [showLoader]=\"saveFormButton.showLoader\"\n styles=\"\"\n class=\"\"\n type=\"button\"\n appearance=\"primary\"\n icon=\"\"\n iconRight=\"\"\n [shape]=\"null\"\n size=\"m\"\n styles=\"width: 100%\"\n (onClick)=\"handleOnClickSaveForm($event)\"\n ></kwikui-button>\n </div>\n</div>\n<div\n class=\"kwikid-form-container-loading\"\n *ngIf=\"loading\"\n>\n <div\n class=\"large-wrapper\"\n [class.tui-skeleton]=\"loading\"\n [class.tui-skeleton_rounded]=\"loading\"\n ></div>\n <div\n class=\"large-wrapper\"\n [class.tui-skeleton]=\"loading\"\n [class.tui-skeleton_rounded]=\"loading\"\n ></div>\n <div\n class=\"large-wrapper\"\n [class.tui-skeleton]=\"loading\"\n [class.tui-skeleton_rounded]=\"loading\"\n ></div>\n <div\n class=\"large-wrapper\"\n [class.tui-skeleton]=\"loading\"\n [class.tui-skeleton_rounded]=\"loading\"\n ></div>\n <div\n class=\"large-wrapper\"\n [class.tui-skeleton]=\"loading\"\n [class.tui-skeleton_rounded]=\"loading\"\n ></div>\n <div\n class=\"large-wrapper\"\n [class.tui-skeleton]=\"loading\"\n [class.tui-skeleton_rounded]=\"loading\"\n ></div>\n <div\n class=\"large-wrapper\"\n [class.tui-skeleton]=\"loading\"\n [class.tui-skeleton_rounded]=\"loading\"\n ></div>\n</div>\n<tui-push\n id=\"field-error-notification\"\n *tuiPush=\"showErrorNotification\"\n heading=\"Missing/Incorrect Fields!\"\n type=\"Error\"\n (close)=\"toggleErrorNotification(false)\"\n>\n <tui-svg\n src=\"tuiIconXCircle\"\n style=\"color: #fff !important\"\n >\n </tui-svg>\n</tui-push>\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { DomSanitizer } from \"@angular/platform-browser\";\n\n/**\n * Generated class for the SafeHtmlPipe pipe.\n *\n * See https://angular.io/api/core/Pipe for more info on Angular Pipes.\n */\n@Pipe({\n name: \"safeHtml\"\n})\nexport class SafeHtmlPipe implements PipeTransform {\n constructor(private sanitizer: DomSanitizer) {}\n\n transform(html) {\n return this.sanitizer.bypassSecurityTrustHtml(html);\n }\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges\n} from \"@angular/core\";\nimport {\n checkObjectKeyExists,\n logMethod,\n mergeObjects,\n setValueToObjectPath,\n isNull,\n isUndefined\n} from \"kwikid-toolkit\";\n\n@Component({\n selector: \"kwikid-forms-list\",\n templateUrl: \"./forms-list.component.html\",\n styleUrls: [\"./forms-list.component.scss\"]\n})\nexport class KwikIDFormsListComponent implements OnInit, OnChanges {\n @Input()\n showFormFields: any = {};\n\n @Input()\n userConfig: any = {};\n\n @Input()\n stepConfig: any = {};\n\n @Input()\n activeFormConfig: any = {};\n\n @Input()\n formsList: any[] = [];\n\n @Input()\n formsListCompleted: any[] = [];\n\n @Input()\n isMobileView: boolean = false;\n\n @Output()\n onClickSetActiveForm: EventEmitter<any> = new EventEmitter<any>();\n\n @Output()\n onClickHideFormsList: EventEmitter<any> = new EventEmitter<any>();\n\n @Output()\n onClickSubmitForms = new EventEmitter<any>();\n\n selectedForm: string = \"\";\n setSelectedForm(selected_form: string): void {\n this.selectedForm = selected_form;\n }\n\n formsListLength: number = 0;\n\n isAllFormsCompleted: boolean = true;\n\n loading: boolean = false;\n\n constructor() {}\n\n ngOnInit(): void {\n this.loading = true;\n\n this.setSelectedForm(this.activeFormConfig?.key ?? \"\");\n\n this.stepConfig = this.formatStepConfig(this.stepConfig);\n\n this.formsList = this.filterHiddenForms(this.formsList);\n this.formsListLength = this.findFormsListLength(this.formsList);\n this.isAllFormsCompleted = this.checkIsAllFormsCompleted(this.formsList);\n\n this.loading = false;\n }\n\n @logMethod\n ngOnChanges(changes: SimpleChanges): void {\n const verifyChange = (key: string) => {\n return checkObjectKeyExists(changes, key) && !changes[key].firstChange;\n };\n if (verifyChange(\"showFormFields\")) {\n this.showFormFields = changes.showFormFields.currentValue;\n }\n if (verifyChange(\"stepConfig\")) {\n this.stepConfig = changes.stepConfig.currentValue;\n }\n if (verifyChange(\"formsList\")) {\n this.formsList = this.filterHiddenForms(this.formsList);\n this.formsListLength = this.findFormsListLength(this.formsList);\n this.isAllFormsCompleted = this.checkIsAllFormsCompleted(this.formsList);\n }\n if (verifyChange(\"isMobileView\")) {\n this.isMobileView = changes.isMobileView.currentValue;\n\n if (!this.isMobileView) {\n this.setSelectedForm(\"\");\n }\n }\n if (verifyChange(\"activeFormConfig\")) {\n this.activeFormConfig = changes.activeFormConfig.currentValue;\n\n this.setSelectedForm(this.activeFormConfig?.key ?? \"\");\n }\n }\n\n @logMethod\n formatStepConfig(stepConfig: any): any {\n let stepConfigProperties = {\n formListProperties: {\n footer: {\n submitFormButton: {\n hidden: false,\n label: \"Submit\"\n }\n }\n }\n };\n\n if (isNull(stepConfig) || isUndefined(stepConfig)) {\n stepConfig = setValueToObjectPath({}, \"props\", stepConfigProperties);\n } else {\n if (checkObjectKeyExists(stepConfig, \"props\")) {\n stepConfigProperties = mergeObjects(\n stepConfigProperties,\n stepConfig.props\n );\n\n stepConfig = setValueToObjectPath(\n stepConfig,\n \"props\",\n stepConfigProperties\n );\n } else {\n stepConfig = setValueToObjectPath(\n stepConfig,\n \"props\",\n stepConfigProperties\n );\n }\n }\n\n return stepConfig;\n }\n\n @logMethod\n filterHiddenForms(formsList: any[]): any[] {\n return formsList.filter((form) => {\n if (checkObjectKeyExists(form, \"hidden\")) {\n if (!form.hidden) {\n return form;\n }\n }\n });\n }\n\n @logMethod\n findFormsListLength(formsList: any[]): number {\n const _formsList = formsList.filter((form) => {\n if (checkObjectKeyExists(form, \"type\")) {\n if (form.type === \"form\") {\n if (checkObjectKeyExists(form, \"hidden\")) {\n if (!form.hidden) {\n return form;\n }\n }\n }\n } else if (checkObjectKeyExists(form, \"hidden\")) {\n if (!form.hidden) {\n return form;\n }\n }\n });\n\n return _formsList.length;\n }\n\n @logMethod\n checkIsAllFormsCompleted(formsList: any[]): boolean {\n let isAllFormsCompleted: boolean = true;\n\n for (let form of formsList) {\n if (checkObjectKeyExists(form, \"type\")) {\n if (form.type === \"form\") {\n if (form.status !== \"completed\") {\n isAllFormsCompleted = false;\n break;\n }\n }\n }\n }\n\n return isAllFormsCompleted;\n }\n\n @logMethod\n handleOnClickSetActiveForm(selectedForm: string) {\n if (\n this.isMobileView ||\n (!this.isMobileView && this.selectedForm !== selectedForm) ||\n (this.isAllFormsCompleted && !this.showFormFields)\n ) {\n this.selectedForm = selectedForm;\n this.onClickSetActiveForm.emit(selectedForm);\n }\n }\n\n @logMethod\n handleOnSubmitForms(e: any) {\n this.onClickSubmitForms.emit(e);\n }\n}\n","<div\n id=\"sidebar-container\"\n *ngIf=\"!loading\"\n>\n <div id=\"sidebar\">\n <div ngClass=\"kwikid-form-header\">\n <div id=\"uf-header\">\n <div id=\"uf-header-logo-container\">\n <img\n id=\"uf-header-logo\"\n src=\"{{ this.userConfig.theme.clientLogo }}\"\n [ngClass]=\"'large-icon'\"\n />\n </div>\n </div>\n <hr />\n </div>\n <div id=\"uf-progress\">\n <div id=\"uf-progress-steps\">\n {{ this.formsListCompleted.length }} / {{ this.formsListLength }} Steps\n Completed\n </div>\n <kwikui-progress-segmented\n [max]=\"this.formsListLength\"\n size=\"m\"\n [value]=\"this.formsListCompleted.length\"\n ></kwikui-progress-segmented>\n </div>\n <div id=\"uf-sections-container\">\n <ng-container *ngFor=\"let form of formsList; let i = index\">\n <ng-container [ngSwitch]=\"form.type\">\n <!-- HTML Content -->\n <ng-container *ngSwitchCase=\"'html'\">\n <div [innerHtml]=\"form.props.htmlContent | safeHtml\"></div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'form'\">\n <div\n [class]=\"'uf-section-item'\"\n [class.completed]=\"form.status === 'completed' && !form.disabled\"\n [class.edit]=\"form.status === 'editable' && !form.disabled\"\n [class.locked]=\"form.status === 'locked' && form.disabled\"\n [class.active]=\"\n activeFormConfig !== undefined &&\n form.key === activeFormConfig.key\n \"\n (click)=\"\n form.status === 'locked' && form.disabled\n ? undefined\n : handleOnClickSetActiveForm(form.key)\n \"\n >\n <div class=\"uf-form-section-card-title\">\n {{ form.props.title }} <span *ngIf=\"form?.required\"\n >*</span\n >\n </div>\n <div class=\"uf-form-section-card-status\">\n <div\n *ngIf=\"form.status === 'completed' && !form.disabled\"\n class=\"uf-form-section-card-status-img completed\"\n >\n <tui-svg src=\"tuiIconCheckLarge\"></tui-svg>\n </div>\n <div\n *ngIf=\"form.status !== 'completed' && !form.disabled\"\n class=\"uf-form-section-card-status-img edit\"\n >\n <tui-svg src=\"tuiIconEdit\"></tui-svg>\n </div>\n <div\n *ngIf=\"form.status !== 'completed' && form.disabled\"\n class=\"uf-form-section-card-status-img locked\"\n >\n <tui-svg src=\"tuiIconLock\"></tui-svg>\n </div>\n </div>\n </div>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n <div id=\"submit-sidebar-btn-container\">\n <kwikui-button\n *ngIf=\"\n !stepConfig.props.formListProperties.footer.submitFormButton.hidden\n \"\n [disabled]=\"false\"\n id=\"\"\n label=\"{{\n stepConfig.props.formListProperties.footer.submitFormButton.label\n }}\"\n [showLoader]=\"false\"\n styles=\"\"\n class=\"\"\n type=\"button\"\n appearance=\"primary\"\n icon=\"\"\n iconRight=\"\"\n [shape]=\"null\"\n size=\"m\"\n styles=\"width: 100%\"\n (onClick)=\"handleOnSubmitForms($event)\"\n ></kwikui-button>\n </div>\n </div>\n</div>\n","import { TAction, TSourceKey } from \"kwikid-toolkit\";\n\nexport enum ERendererActionKey {\n SET_VALUE = \"SET_VALUE\",\n FORM_HIDE = \"FORM_HIDE\",\n FORM_SHOW = \"FORM_SHOW\",\n FORM_DISABLE = \"FORM_DISABLE\",\n FORM_ENABLE = \"FORM_ENABLE\"\n}\n\nexport type TActionKey =\n | ERendererActionKey.SET_VALUE\n | ERendererActionKey.FORM_HIDE\n | ERendererActionKey.FORM_SHOW\n | ERendererActionKey.FORM_DISABLE\n | ERendererActionKey.FORM_ENABLE;\n\nexport type TActionSetValue = TAction & {\n key: ERendererActionKey.SET_VALUE;\n props: {\n value: {\n source: {\n key: TSourceKey;\n path?: string;\n value?: any;\n };\n destination: {\n key: TSourceKey;\n path?: string;\n value?: any;\n };\n };\n };\n};\n\nexport type TActionFormShow = TAction & {\n key: ERendererActionKey.FORM_SHOW;\n props: {\n fieldKey: string;\n };\n};\n\nexport type TActionFormHide = TAction & {\n key: ERendererActionKey.FORM_HIDE;\n props: {\n fieldKey: string;\n };\n};\n\nexport type TActionFormEnable = TAction & {\n key: ERendererActionKey.FORM_ENABLE;\n props: {\n fieldKey: string;\n };\n};\n\nexport type TActionFormDisable = TAction & {\n key: ERendererActionKey.FORM_DISABLE;\n props: {\n fieldKey: string;\n };\n};\n","export const getFormConfigByKey = (forms: any[], key: string) => {\n const form = forms.find((form) => {\n if (form.key === key) {\n return form;\n }\n });\n\n return form;\n};\n","import { animate, style, transition, trigger } from \"@angular/animations\";\nimport {\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges\n} from \"@angular/core\";\nimport {\n Action,\n checkObjectKeyExists,\n Condition,\n getObjectDeepCopy,\n isEmptyValue,\n isNotEmptyValue,\n logMethod,\n Rule,\n setValueToObjectPath,\n Source,\n TAction,\n TRule\n} from \"kwikid-toolkit\";\nimport { Converter } from \"./config-converter.helper\";\nimport { EActionKey } from \"./form-view/definitions/form-view.actions.definition\";\nimport { TTrigger } from \"./form-view/definitions/form-view.triggers.definition\";\nimport { EFormsListStatus } from \"./forms-list/forms-list.definitions\";\nimport { ERendererActionKey } from \"./renderer.actions.definitions\";\nimport { getFormConfigByKey } from \"./renderer.helper\";\n\n@Component({\n selector: \"kwikid-forms-renderer\",\n templateUrl: \"./renderer.component.html\",\n styleUrls: [\"./renderer.component.scss\"],\n animations: [\n trigger(\"panelInOut\", [\n transition(\":enter\", [\n style({ transform: \"translateY(100%)\" }),\n animate(150)\n ]),\n transition(\":leave\", [\n animate(100, style({ transform: \"translateY(100%)\" }))\n ])\n ])\n ]\n})\nexport class KwikIDFormsRendererComponent implements OnInit, OnChanges {\n // The final value should be provided to service, so that it can be used in all components\n @HostListener(\"window:resize\", [\"$event\"])\n windowResizeWatcher() {\n if (this.hostElement.nativeElement.offsetWidth < 600) {\n if (this.showForm) {\n this.showFormSections = false;\n this.showFormFields = true;\n } else {\n this.showFormSections = true;\n this.showFormFields = false;\n }\n this.isMobileView = true;\n } else {\n if (this.showForm) {\n this.showFormSections = true;\n this.showFormFields = true;\n } else {\n this.showFormSections = true;\n this.showFormFields = false;\n }\n this.isMobileView = false;\n }\n }\n\n @Input()\n stepConfig: any;\n\n @Input()\n userConfig: any;\n\n @Input()\n formsData: any = {};\n\n @Input()\n apiCallResponse: any = {};\n\n @Output()\n onClickSubmit: EventEmitter<any> = new EventEmitter<any>();\n\n @Output()\n getFormData: EventEmitter<any> = new EventEmitter<any>();\n\n @Output()\n onClickApiCall: EventEmitter<any> = new EventEmitter<any>();\n\n loading: boolean = false;\n loader: boolean = false;\n\n showErrorNotification: boolean = false;\n toggleErrorNotification(show) {\n this.showErrorNotification = show;\n }\n\n activeFormConfig: any;\n activeFormFields: any[];\n allFormsData: any = {};\n formsList: any[] = [];\n formsListCompleted: string[];\n isMobileView: boolean = false;\n\n // display forms and list conditionally\n showForm: boolean = false;\n showFormFields: boolean = true;\n showFormSections: boolean = true;\n\n constructor(\n private hostElement: ElementRef,\n private cdr: ChangeDetectorRef\n ) {}\n\n ngOnInit() {\n this.loader = true;\n this.loading = true;\n\n const formStepKey = this.stepConfig?.form?.key ?? undefined;\n\n if (\n formStepKey !== undefined &&\n checkObjectKeyExists(this.userConfig.userFormFields, formStepKey)\n ) {\n this.formsList = this.userConfig.userFormFields[formStepKey];\n } else if (Array.isArray(this.userConfig.userFormFields)) {\n this.formsList = this.userConfig.userFormFields;\n } else {\n throw new Error(\n `userFormFields doesn't have a form defined with key: ${formStepKey}`\n );\n }\n\n this.initializeForms(\"ON_INIT\");\n this.loader = false;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const verifyChange = (prop: string) => {\n return changes.hasOwnProperty(prop) && !changes[prop].firstChange;\n };\n if (verifyChange(\"userConfig\")) {\n this.userConfig = changes.userConfig.currentValue;\n this.loader = false;\n }\n if (verifyChange(\"formsData\")) {\n this.formsData = changes.formsData.currentValue;\n\n this.initializeForms(\"ON_CHANGE\");\n }\n if (verifyChange(\"apiCallResponse\")) {\n this.apiCallResponse = changes.apiCallResponse.currentValue;\n this.loader = false;\n }\n }\n\n async fetchFormConfig(url: string) {\n const response = await fetch(url, { method: \"GET\" });\n const data = await response.json();\n return data;\n }\n\n async initializeForms(eventType: string) {\n this.loader = true;\n\n this.allFormsData = this.formsData;\n\n await this.updateFormsList();\n\n if (\n eventType === \"ON_CHANGE\" &&\n this.findFormsListLength(this.formsList) === 1\n ) {\n this.handleOnClickSubmitForms(null);\n } else {\n this.handleResize(this.formsList);\n\n if (isNotEmptyValue(this.activeFormConfig)) {\n if (checkObjectKeyExists(this.activeFormConfig, \"type\")) {\n if (this.activeFormConfig.type === \"form\") {\n await this.handleOnClickSetActiveForm(this.activeFormConfig.key);\n }\n } else {\n await this.handleOnClickSetActiveForm(this.activeFormConfig.key);\n }\n } else {\n this.showForm = false;\n this.showFormFields = false;\n }\n\n this.loader = false;\n this.loading = false;\n }\n }\n\n @logMethod\n convertFormListConfig(formsList: any[]): any[] {\n return formsList.map((form) => {\n if (!checkObjectKeyExists(form, \"type\")) {\n form.type = \"form\";\n }\n if (checkObjectKeyExists(form, \"formContent\")) {\n form = setValueToObjectPath(form, \"props.url\", form.formContent.url);\n delete form[\"formContent\"][\"url\"];\n }\n if (isEmptyValue(form.formContent)) {\n delete form[\"formContent\"];\n }\n if (checkObjectKeyExists(form, \"title\")) {\n form = setValueToObjectPath(form, \"props.title\", form.title);\n delete form[\"title\"];\n }\n return form;\n });\n }\n\n /**\n * NOTE: To be deprecated.\n * Why ? Will be directly assigned while executing 'chakra' for default form config.\n * @param formsList any[]\n * @param formsListCompleted string[]\n * @returns any[]\n */\n @logMethod\n assignSequenceNoToForm(formsList: any[]): any[] {\n let sequenceNo = 1;\n for (let form of formsList) {\n if (checkObjectKeyExists(form, \"hidden\")) {\n if (!form.hidden && form.type === \"form\") {\n form.sequenceNo = sequenceNo++;\n } else {\n delete form[\"sequenceNo\"];\n }\n }\n }\n\n return formsList;\n }\n\n @logMethod\n findCompletedFormsList(allFormsData: any): string[] {\n let formsListCompleted: string[] = [];\n\n Object.keys(allFormsData).map((formKey) => {\n formsListCompleted.push(formKey);\n });\n\n return formsListCompleted;\n }\n\n /**\n * NOTE: To be deprecated. Why ? Will be replaced by 'chakra'.\n * @param formsList any[]\n * @param formsListCompleted string[]\n * @returns any[]\n */\n @logMethod\n markFormInFormsListAsCompleted(\n formsList: any[],\n formsListCompleted: string[]\n ): any[] {\n for (let form of formsList) {\n if (checkObjectKeyExists(form, \"hidden\")) {\n if (!form.hidden && form.type === \"form\") {\n if (formsListCompleted.includes(form.key)) {\n form = setValueToObjectPath(form, \"status\", \"completed\");\n form = setValueToObjectPath(form, \"disabled\", false);\n }\n }\n }\n }\n\n return formsList;\n }\n\n /**\n * NOTE: To be deprecated. Why ? Will be replaced by 'chakra'.\n * @param formsList any[]\n * @param formsListCompleted string[]\n * @returns any[]\n */\n @logMethod\n markFormInFormsListAsDisabled(\n formsList: any[],\n formsListCompleted: string[]\n ): any[] {\n for (let form of formsList) {\n if (checkObjectKeyExists(form, \"hidden\")) {\n if (!form.hidden && form.type === \"form\") {\n if (form.status !== \"completed\") {\n if (checkObjectKeyExists(form, \"dependentOn\")) {\n const isDependent = form.dependentOn.every((r: string) =>\n formsListCompleted.includes(r)\n );\n if (isDependent) {\n form = setValueToObjectPath(form, \"status\", \"editable\");\n form = setValueToObjectPath(form, \"disabled\", false);\n } else {\n form = setValueToObjectPath(form, \"status\", \"locked\");\n form = setValueToObjectPath(form, \"disabled\", true);\n }\n } else {\n form = setValueToObjectPath(form, \"dependentOn\", []);\n form = setValueToObjectPath(form, \"status\", \"editable\");\n form = setValueToObjectPath(form, \"disabled\", false);\n }\n }\n }\n }\n }\n\n return formsList;\n }\n\n @logMethod\n filterAllFormsData(allFormsData: any, formsList: any[]): any {\n let currentUserFormAllFormsData: any = {};\n\n for (let form of formsList) {\n if (\n checkObjectKeyExists(form, \"hidden\") &&\n !form.hidden &&\n form.type === \"form\"\n ) {\n if (checkObjectKeyExists(allFormsData, form.key)) {\n currentUserFormAllFormsData = {\n ...currentUserFormAllFormsData,\n [form.key]: allFormsData[form.key]\n };\n }\n }\n }\n\n return currentUserFormAllFormsData;\n }\n\n @logMethod\n checkIfFormsStatusCompleted(\n formsList: any,\n formsListCompleted: string[]\n ): any {\n let allFormsCompleted: boolean = true;\n\n for (const form of formsList) {\n if (checkObjectKeyExists(form, \"hidden\")) {\n if (!form.hidden && form.type === \"form\") {\n if (form.status !== \"completed\") {\n allFormsCompleted = false;\n break;\n }\n }\n }\n }\n\n return allFormsCompleted;\n }\n\n @logMethod\n findActiveFormConfig(formsList: any[]): any {\n const activeFormConfig = formsList.find((form) => {\n if (checkObjectKeyExists(form, \"hidden\")) {\n if (!form.hidden && form.type === \"form\") {\n return form.status === \"editable\" && !form.disabled;\n }\n }\n });\n return activeFormConfig;\n }\n\n @logMethod\n async updateFormsList() {\n this.formsList = this.convertFormListConfig(this.formsList);\n\n for (let form of this.formsList) {\n if (\n checkObjectKeyExists(form, \"default\") &&\n isNotEmptyValue(form.default)\n ) {\n const triggers: Array<TTrigger> = form.default.triggers;\n const rules: Array<TRule> = form.default.rules;\n const actions: Array<TAction> = form.default.actions;\n\n const rulesMapping = new Rule(rules, {\n USER_CONFIG: this.userConfig,\n FORMS_LIST: this.formsList,\n ALL_FORMS_DATA: this.allFormsData\n }).mapping();\n\n for (let action of actions) {\n const conditionEvaluation = new Condition(\n action.condition,\n rulesMapping\n ).evaluate();\n\n if (conditionEvaluation) {\n const actions = new Action(\n action,\n rulesMapping,\n {\n FORMS_LIST: this.formsList,\n ALL_FORMS_DATA: this.allFormsData\n },\n this.takeAction.bind(this)\n );\n\n await actions.execute();\n }\n }\n } else {\n if (!checkObjectKeyExists(form, \"hidden\")) {\n form.hidden = false;\n }\n }\n }\n\n this.formsList = this.assignSequenceNoToForm(this.formsList);\n\n /**\n * Below code identifies the allFormsData required for the current User Form.\n * Why? Because allFormsData will actually contain the whole journey's all\n * possible User Form steps. So, it is important to set the form data which\n * this particular User Form only has to LOCAL METHOD Variable.\n */\n const currentUserFormAllFormsData = this.filterAllFormsData(\n this.allFormsData,\n this.formsList\n );\n\n this.formsListCompleted = this.findCompletedFormsList(\n currentUserFormAllFormsData\n );\n\n this.formsList = this.markFormInFormsListAsCompleted(\n this.formsList,\n this.formsListCompleted\n );\n\n this.formsList = this.markFormInFormsListAsDisabled(\n this.formsList,\n this.formsListCompleted\n );\n\n this.formsList = getObjectDeepCopy(this.formsList);\n\n this.activeFormConfig = this.findActiveFormConfig(this.formsList);\n }\n\n @logMethod\n formHide(formKey: string): void {\n let form = getFormConfigByKey(this.formsList, formKey);\n\n form = setValueToObjectPath(form, \"hidden\", true);\n }\n\n @logMethod\n formShow(formKey: string): void {\n let form = getFormConfigByKey(this.formsList, formKey);\n\n form = setValueToObjectPath(form, \"hidden\", false);\n }\n\n async takeAction(action: any, object: any) {\n switch (action.key) {\n case ERendererActionKey.FORM_HIDE:\n this.formHide(action.props.formKey);\n break;\n case ERendererActionKey.FORM_SHOW:\n this.formShow(action.props.formKey);\n break;\n case EActionKey.SET_VALUE:\n const sources = new Source({\n USER_CONFIG: this.userConfig,\n ALL_FORMS_DATA: this.formsData\n });\n\n const sourceValue = await sources.getValueFromSource(\n action.props.value.source\n );\n sources.setValueToSource(action.props.value.destination, sourceValue);\n\n this.userConfig = sources.object.USER_CONFIG;\n this.formsData = sources.object.ALL_FORMS_DATA;\n break;\n default:\n break;\n }\n }\n\n @logMethod\n findFormsListLength(formsList: any[]): number {\n const _formsList = formsList.filter((form) => {\n if (checkObjectKeyExists(form, \"type\")) {\n if (form.type === \"form\") {\n if (checkObjectKeyExists(form, \"hidden\")) {\n if (!form.hidden) {\n return form;\n }\n }\n }\n } else if (checkObjectKeyExists(form, \"hidden\")) {\n if (!form.hidden) {\n return form;\n }\n }\n });\n\n return _formsList.length;\n }\n\n /**\n * Library Event Listeners\n */\n\n /**\n * FormList - Listens to event of opening the FormView of when any form is clicked in FormList\n * @param selectedForm string\n */\n @logMethod\n async handleOnClickSetActiveForm(selectedForm: string) {\n this.showForm = false;\n this.loader = true;\n\n const activeFormConfig = this.formsList.find((form) => {\n if (form.key === selectedForm) {\n return form;\n }\n });\n\n let formConfig: any = undefined;\n if (checkObjectKeyExists(activeFormConfig, \"props\")) {\n if (checkObjectKeyExists(activeFormConfig.props, \"url\")) {\n const formConfigFromUrl = await this.fetchFormConfig(\n activeFormConfig.props.url\n );\n formConfig = {\n ...activeFormConfig,\n ...formConfigFromUrl\n };\n } else {\n if (checkObjectKeyExists(activeFormConfig, \"fields\")) {\n formConfig = activeFormConfig;\n } else {\n console.error(\"No url or fields key in activeFormConfig\");\n }\n }\n } else {\n if (checkObjectKeyExists(activeFormConfig.formContent, \"url\")) {\n const formConfigFromUrl = await this.fetchFormConfig(\n activeFormConfig.formContent.url\n );\n formConfig = {\n ...activeFormConfig,\n ...formConfigFromUrl\n };\n } else {\n if (checkObjectKeyExists(activeFormConfig, \"fields\")) {\n formConfig = activeFormConfig;\n } else {\n console.error(\"No url or fields key in activeFormConfig\");\n }\n }\n }\n console.log(JSON.parse(JSON.stringify(formConfig)));\n\n formConfig = new Converter().updateFormConfigMiscellaneous(formConfig, {\n formsListLength: this.findFormsListLength(this.formsList)\n });\n\n this.activeFormConfig = {\n ...activeFormConfig,\n ...formConfig\n };\n\n this.activeFormConfig;\n\n if (this.hostElement.nativeElement.offsetWidth < 600) {\n this.showFormSections = false;\n this.showFormFields = true;\n } else if (this.hostElement.nativeElement.offsetWidth >= 600) {\n this.showFormSections = true;\n this.showFormFields = true;\n }\n\n this.showForm = true;\n this.loader = false;\n }\n\n /**\n * FormView - Listens to event of executing an API call from within the FormView and emits (read as passes) the same event to the library consumer.\n * @param e any\n */\n handleOnClickApiCall(e: any) {\n this.loader = true;\n this.onClickApiCall.emit(e);\n }\n\n /**\n * FormView - Listens to event of getting the Active Form's Data when the Form is Saved and emits (read as passes) the same event to the library consumer.\n * @param e any\n */\n handleOnClickSaveForm(e: any) {\n this.loader = true;\n\n this.getFormData.emit({\n [this.activeFormConfig.key]: e[\"data\"]\n });\n }\n\n /**\n * FormView - Listens to event of showing the Forms List in Mobile View.\n * @param e any\n */\n handleOnClickViewForms(e: any) {\n this.showFormSections = true;\n this.showForm = false;\n this.showFormFields = false;\n }\n\n /**\n * FormList - Listens to event of submitting all the forms and moving out of the library and also handles the validation of all the forms.\n * @param e any\n */\n @logMethod\n async handleOnClickSubmitForms(e: any) {\n const formsList: any[] = JSON.parse(JSON.stringify(this.formsList));\n\n for (let form of formsList) {\n if (\n !form.hidden &&\n form.required &&\n form.status !== EFormsListStatus.COMPLETED\n ) {\n this.toggleErrorNotification(true);\n setTimeout(() => {\n this.toggleErrorNotification(false);\n }, 3000);\n return;\n }\n }\n\n this.onClickSubmit.emit(e);\n }\n\n /**\n * Miscellaneous Methods\n */\n handleResize(formsList: any[]) {\n if (this.hostElement.nativeElement.offsetWidth < 600) {\n const isSingleForm = (formsList: any[]): boolean => {\n return formsList.length === 1;\n };\n if (!isSingleForm(formsList)) {\n this.showFormSections = true;\n this.showFormFields = false;\n this.showForm = false;\n } else {\n this.showFormSections = true;\n this.showFormFields = false;\n this.showForm = false;\n }\n this.isMobileView = true;\n } else {\n this.isMobileView = false;\n }\n }\n}\n","<div ngClass=\"kwikid-renderer\">\n <div\n ngClass=\"kwikid-layout-container\"\n *ngIf=\"!loading\"\n >\n <div\n ngClass=\"kwikid-sections-container\"\n *ngIf=\"showFormSections\"\n class=\"active\"\n [class.active]=\"showFormSections\"\n [class.mobile]=\"isMobileView\"\n >\n <kwikid-forms-list\n [showFormFields]=\"this.showFormFields\"\n [activeFormConfig]=\"this.activeFormConfig\"\n [userConfig]=\"this.userConfig\"\n [formsList]=\"this.formsList\"\n [stepConfig]=\"this.stepConfig\"\n [formsListCompleted]=\"this.formsListCompleted\"\n [isMobileView]=\"this.isMobileView\"\n (onClickSetActiveForm)=\"this.handleOnClickSetActiveForm($event)\"\n (onClickSubmitForms)=\"this.handleOnClickSubmitForms($event)\"\n ></kwikid-forms-list>\n </div>\n <div\n ngClass=\"kwikid-forms-container\"\n *ngIf=\"\n this.showForm &&\n this.showFormFields &&\n this.activeFormConfig !== undefined\n \"\n [class.active]=\"showFormFields\"\n [class.mobile]=\"isMobileView\"\n [@panelInOut]\n >\n <kwikid-form-view\n [formConfig]=\"this.activeFormConfig\"\n [allFormsData]=\"this.allFormsData\"\n [isMobileView]=\"this.isMobileView\"\n (onClickViewForms)=\"this.handleOnClickViewForms($event)\"\n (onClickSaveForm)=\"this.handleOnClickSaveForm($event)\"\n ></kwikid-form-view>\n </div>\n </div>\n</div>\n<div\n ngClass=\"kwikid-forms-renderer-loader\"\n *ngIf=\"loader\"\n>\n <span class=\"loader\"></span>\n</div>\n<tui-push\n id=\"error-notification\"\n *tuiPush=\"showErrorNotification\"\n heading=\"Please complete the required Forms!\"\n type=\"Error\"\n (close)=\"toggleErrorNotification(false)\"\n>\n <tui-svg\n src=\"tuiIconXCircle\"\n style=\"color: #fff !important\"\n >\n </tui-svg>\n</tui-push>\n","import { DragDropModule } from \"@angular/cdk/drag-drop\";\nimport { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport {\n KwikUIButtonIconModule,\n KwikUIButtonModule,\n KwikUIInputModule\n} from \"kwikui\";\nimport { KwikIDFormsBuilderComponent } from \"./builder.component\";\nimport { BasicElementConfigEditor } from \"./element-config-editor/editors/basic-element-config.editor.component\";\nimport { BasicRadioConfigEditor } from \"./element-config-editor/editors/basic/radio-config.editor.component\";\nimport { BasicTextConfigEditor } from \"./element-config-editor/editors/basic/text-config.editor.component\";\nimport { ElementConfigEditor } from \"./element-config-editor/element-config-editor.component\";\n\n@NgModule({\n declarations: [\n KwikIDFormsBuilderComponent,\n ElementConfigEditor,\n BasicElementConfigEditor,\n BasicTextConfigEditor,\n BasicRadioConfigEditor\n ],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n DragDropModule,\n KwikUIButtonModule,\n KwikUIInputModule,\n KwikUIButtonIconModule\n ],\n providers: [],\n exports: [KwikIDFormsBuilderComponent]\n})\nexport class KwikIDFormBuilderModule {}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { TuiLabelModule, TuiSvgModule } from \"@taiga-ui/core\";\nimport { TuiPushModule } from \"@taiga-ui/kit\";\nimport { KwikUIModule } from \"kwikui\";\nimport { KwikIDFormViewComponent } from \"./form-view.component\";\nimport { SafeHtmlPipe } from \"./pipes/safe-html.pipe\";\n\n@NgModule({\n declarations: [KwikIDFormViewComponent, SafeHtmlPipe],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n TuiLabelModule,\n TuiPushModule,\n TuiSvgModule,\n KwikUIModule\n ],\n exports: [KwikIDFormViewComponent]\n})\nexport class KwikIDFormViewModule {}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { TuiSvgModule } from \"@taiga-ui/core\";\nimport { KwikUIModule } from \"kwikui\";\nimport { KwikIDFormsListComponent } from \"./forms-list.component\";\nimport { SafeHtmlPipe } from \"./pipes/safe-html.pipe\";\n\n@NgModule({\n declarations: [KwikIDFormsListComponent, SafeHtmlPipe],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n KwikUIModule,\n TuiSvgModule\n ],\n exports: [KwikIDFormsListComponent]\n})\nexport class KwikIDFormsListModule {}\n","import { CommonModule } from \"@angular/common\";\nimport { HttpClientModule } from \"@angular/common/http\";\nimport { NgModule } from \"@angular/core\";\nimport { TuiLoaderModule, TuiSvgModule } from \"@taiga-ui/core\";\nimport { TuiPushModule } from \"@taiga-ui/kit\";\nimport { KwikUIModule } from \"kwikui\";\nimport { KwikIDFormViewModule } from \"./form-view/form-view.module\";\nimport { KwikIDFormsListModule } from \"./forms-list/forms-list.module\";\nimport { KwikIDFormsRendererComponent } from \"./renderer.component\";\n\n@NgModule({\n declarations: [KwikIDFormsRendererComponent],\n imports: [\n CommonModule,\n HttpClientModule,\n KwikIDFormViewModule,\n KwikIDFormsListModule,\n KwikUIModule,\n TuiLoaderModule,\n TuiPushModule,\n TuiSvgModule\n ],\n providers: [],\n exports: [KwikIDFormsRendererComponent]\n})\nexport class KwikIDFormRendererModule {}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { KwikIDFormBuilderModule } from \"./builder/builder.module\";\nimport { KwikIDFormRendererModule } from \"./renderer/renderer.module\";\n\n@NgModule({\n declarations: [],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n KwikIDFormBuilderModule,\n KwikIDFormRendererModule\n ],\n exports: [KwikIDFormBuilderModule, KwikIDFormRendererModule]\n})\nexport class KwikIDFormsModule {}\n","/*\n * Public API Surface of kwikid-forms\n */\n\n/* Builder Components */\nexport * from \"./lib/builder/builder.component\";\n\n/* Renderer Components */\nexport * from \"./lib/renderer/form-view/form-view.component\";\nexport * from \"./lib/renderer/forms-list/forms-list.component\";\nexport * from \"./lib/renderer/renderer.component\";\n\n/* KwikID Forms Component */\n\n/* All Modules in import order from bottom to top */\nexport * from \"./lib/builder/builder.module\";\nexport * from \"./lib/renderer/form-view/form-view.module\";\nexport * from \"./lib/renderer/forms-list/forms-list.module\";\nexport * from \"./lib/renderer/renderer.module\";\nexport * from \"./lib/kwikid-forms.module\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i2","i1.BasicTextConfigEditor","i2.BasicRadioConfigEditor","i4","i1.BasicElementConfigEditor","i1","i2.ElementConfigEditor","i3","i5","SafeHtmlPipe","i1.KwikIDFormViewService","i6","i7.SafeHtmlPipe","i4.SafeHtmlPipe","i1.KwikIDFormsListComponent","i2.KwikIDFormViewComponent"],"mappings":"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"}
|