kwikid-forms 0.1.7 → 0.1.8
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 +425 -281
- package/bundles/kwikid-forms.umd.js.map +1 -1
- package/esm2015/lib/renderer/form-view/definitions/actions/form-view.actions.enum.definitions.js +2 -1
- package/esm2015/lib/renderer/form-view/definitions/fields/form-view.fields.enum.definitions.js +2 -1
- package/esm2015/lib/renderer/form-view/definitions/fields/form-view.fields.type.definitions.js +1 -1
- package/esm2015/lib/renderer/form-view/form-view.component.js +109 -114
- package/esm2015/lib/renderer/form-view/form-view.module.js +4 -3
- package/esm2015/lib/renderer/form-view/form-view.service.js +4 -4
- package/esm2015/lib/renderer/form-view/helpers/form-view.apis.helper.js +11 -2
- package/esm2015/lib/renderer/form-view/helpers/form-view.defaults.helper.js +33 -2
- package/esm2015/lib/renderer/form-view/helpers/form-view.fields.helper.js +5 -5
- package/esm2015/lib/renderer/form-view/helpers/form-view.validations.helper.js +11 -2
- package/esm2015/lib/renderer/form-view/pipes/safe-html.pipe.js +25 -0
- package/esm2015/lib/renderer/renderer.config-converter.helper.js +109 -54
- package/fesm2015/kwikid-forms.js +300 -178
- package/fesm2015/kwikid-forms.js.map +1 -1
- package/lib/renderer/form-view/definitions/actions/form-view.actions.enum.definitions.d.ts +2 -1
- package/lib/renderer/form-view/definitions/fields/form-view.fields.enum.definitions.d.ts +1 -0
- package/lib/renderer/form-view/definitions/fields/form-view.fields.type.definitions.d.ts +10 -2
- package/lib/renderer/form-view/form-view.component.d.ts +2 -2
- package/lib/renderer/form-view/form-view.module.d.ts +7 -6
- package/lib/renderer/form-view/helpers/form-view.apis.helper.d.ts +2 -1
- package/lib/renderer/form-view/helpers/form-view.defaults.helper.d.ts +3 -1
- package/lib/renderer/form-view/helpers/form-view.validations.helper.d.ts +4 -1
- package/lib/renderer/form-view/pipes/safe-html.pipe.d.ts +15 -0
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kwikid-forms.js","sources":["../../../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/actions/form-view.actions.enum.definitions.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/definitions/apis/form-view.apis.enum.definitions.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/definitions/common/form-view.common.enum.definitions.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/definitions/fields/form-view.fields.enum.definitions.ts","../../../projects/kwikid-forms/src/lib/renderer/renderer.helper.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/helpers/form-view.common.helper.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.fields.helper.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/helpers/form-view.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/form-view.component.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/form-view.component.html","../../../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.config-converter.helper.ts","../../../projects/kwikid-forms/src/lib/renderer/renderer.service.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":["import { copyArrayItem, moveItemInArray } from \"@angular/cdk/drag-drop\";\nimport { Component, OnInit, VERSION } from \"@angular/core\";\nimport { FormControl, FormGroup } from \"@angular/forms\";\nimport {\n KwikUIButtonComponent,\n KwikUIInputComponent,\n KwikUIProgressSegmentedComponent\n} from \"kwikui\";\nimport { cloneDeep } from \"lodash\";\n\ntype IMenu = {\n title: string;\n id?: string;\n key?: string;\n temp?: string;\n component?: any;\n props?: any;\n};\n\n@Component({\n selector: \"kwikid-forms-builder\",\n templateUrl: \"./builder.component.html\",\n styleUrls: [\"./builder.component.scss\"]\n})\nexport class KwikIDFormsBuilderComponent implements OnInit {\n buttonComponent = {\n disabled: false,\n id: \"\",\n label: \"Button\",\n showLoader: false,\n styles: \"\",\n class: \"tui-space_right-3 tui-space_bottom-3\",\n type: \"button\",\n appearance: \"primary\",\n icon: \"\",\n iconRight: \"\",\n shape: null,\n size: \"m\"\n };\n\n progressSegmentedComponent = {\n colors: \"tui(--tui-primary)\",\n max: \"5\",\n size: \"m\",\n value: \"2\"\n };\n\n inputComponent = {\n case: \"default\",\n disabled: false,\n focus: false,\n id: \"id\",\n invalid: false,\n label: \"label\",\n placeholder: \"placeholder\",\n type: \"text\",\n validators: {\n required: true\n }\n };\n\n formGroup = new FormGroup({});\n\n constructor() {}\n\n ngOnInit() {\n for (let m of this.menu) {\n m.id = this.revisedRandId();\n }\n }\n\n revisedRandId() {\n return Math.random()\n .toString(36)\n .replace(/[^a-z]+/g, \"\");\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 this.formGroup.controls[id][\"controls\"][key].patchValue(_value);\n }\n\n toggleShow(id: any) {\n console.log(id);\n }\n\n name = \"Angular \" + VERSION.major;\n menu: Array<IMenu> = [\n {\n title: \"button\",\n key: \"button\",\n component: KwikUIButtonComponent,\n props: this.buttonComponent\n },\n {\n title: \"progress-segmented\",\n key: \"progress_segmented\",\n component: KwikUIProgressSegmentedComponent,\n props: this.progressSegmentedComponent\n },\n {\n title: \"input\",\n key: \"input\",\n component: KwikUIInputComponent,\n props: this.inputComponent\n }\n ];\n table: Array<IMenu> = [];\n\n drop(event: any) {\n // let item = JSON.parse(JSON.stringify(event));\n if (event.previousContainer !== event.container) {\n console.log(\"copying\");\n\n // Clone the item that was dropped.\n let clone = cloneDeep(event.previousContainer.data[event.previousIndex]);\n clone.id = clone.key + \"__\" + this.revisedRandId();\n event.previousContainer.data[event.previousIndex] = clone;\n\n let newFormGroup = new FormGroup({});\n\n const props = clone.props;\n\n Object.keys(props).forEach((key) => {\n newFormGroup.addControl(\n key,\n new FormControl({ value: props[key], disabled: false })\n );\n });\n\n this.formGroup.addControl(clone.id, newFormGroup);\n\n copyArrayItem(\n event.previousContainer.data,\n event.container.data,\n event.previousIndex,\n event.currentIndex\n );\n } else {\n console.log(\"moving\");\n moveItemInArray(\n event.container.data,\n event.previousIndex,\n event.currentIndex\n );\n }\n if (event.previousContainer.data) {\n this.menu = this.menu.filter((f) => !f.temp);\n }\n }\n\n exited(event: any) {\n const currentIdx = event.container.data.findIndex(\n (f: { id: any }) => f.id === event.item.data.id\n );\n this.menu.splice(currentIdx + 1, 0, {\n ...event.item.data,\n temp: true\n });\n }\n\n entered() {\n this.menu = this.menu.filter((f) => !f.temp);\n }\n\n isNumber(val: any) {\n return typeof val;\n }\n\n removeElement(idx: number, id: string) {\n this.formGroup.removeControl(id);\n this.table.splice(idx, 1);\n }\n\n getJSON() {\n for (let t of this.table) {\n t.props = this.formGroup.getRawValue()[t.id];\n }\n console.log(this.table);\n }\n}\n","<!-- <div>{{ name }}</div>\n<p>Start editing to see some magic happen :)</p>\n\n<button (click)=\"getJSON()\">Get JSON</button>\n\n<div class=\"drap-copy\">\n <div>\n <ul\n class=\"menu\"\n cdkDropList\n #menuList=\"cdkDropList\"\n [cdkDropListData]=\"menu\"\n cdkDropListSortingDisabled\n [cdkDropListConnectedTo]=\"[tableList]\"\n (cdkDropListDropped)=\"drop($event)\"\n (cdkDropListExited)=\"exited($event)\"\n (cdkDropListEntered)=\"entered()\"\n >\n <li class=\"item\" *ngFor=\"let item of menu\" cdkDrag [cdkDragData]=\"item\">\n <div class=\"item\" *cdkDragPlaceholder>\n <a>{{ item.title }}</a>\n </div>\n <ng-container *ngComponentOutlet=\"item.component\"> </ng-container>\n </li>\n </ul>\n </div>\n\n <div\n class=\"table\"\n cdkDropList\n #tableList=\"cdkDropList\"\n [cdkDropListData]=\"table\"\n (cdkDropListDropped)=\"drop($event)\"\n >\n <div class=\"content\">\n <div>\n <div class=\"item\" *ngFor=\"let item of table; let idx = index\" cdkDrag>\n <ng-container *ngComponentOutlet=\"item.component\"> </ng-container>\n <div class=\"item-header\">\n <p>{{ idx }}--{{ item.title }}</p>\n <button (click)=\"removeElement(idx, item.id)\">Remove</button>\n </div>\n <div class=\"desc\">\n <div>id - {{ item.id }}</div>\n <div>key - {{ item.key }}</div>\n </div>\n <ng-container\n *ngTemplateOutlet=\"formModal; context: item\"\n ></ng-container>\n </div>\n </div>\n </div>\n </div>\n</div>\n<ng-template #formModal let-component=\"component\" let-props=\"props\" let-id=\"id\">\n <div class=\"field_editor\">\n <div *ngFor=\"let i of props | keyvalue; let idx = index\">\n <div class=\"formModalInputGroup\">\n <label>{{ i.key }}</label>\n <input\n value=\"{{ i.value }}\"\n (keyup)=\"handleOnChange($event, id, i.key, idx)\"\n />\n </div>\n </div>\n </div>\n</ng-template> -->\n","export enum EActionKey {\n SET_VALUE = \"SET_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}\n","export enum EApiStatusType {\n DEFAULT = \"default\",\n LOADING = \"loading\",\n SUCCESS = \"success\",\n FAILED = \"failed\"\n}\n","export enum EPatternKey {\n CUSTOM = \"CUSTOM\",\n IS_ADDRESS = \"IS_ADDRESS\",\n IS_ALPHA = \"IS_ALPHA\",\n IS_ALPHANUMERIC = \"IS_ALPHANUMERIC\",\n IS_BOOLEAN = \"IS_BOOLEAN\",\n IS_EMAIL = \"IS_EMAIL\",\n IS_EMPTY = \"IS_EMPTY\",\n IS_FALSE = \"IS_FALSE\",\n IS_HTML = \"IS_HTML\",\n IS_INTEGER = \"IS_INTEGER\",\n IS_IP_ADDRESS = \"IS_IP_ADDRESS\",\n IS_JSON = \"IS_JSON\",\n IS_LOWERCASE = \"IS_LOWERCASE\",\n IS_NOT_EMPTY = \"IS_NOT_EMPTY\",\n IS_NUMBER = \"IS_NUMBER\",\n IS_TRUE = \"IS_TRUE\",\n IS_UPPERCASE = \"IS_UPPERCASE\",\n IS_URL = \"IS_URL\",\n IS_AADHAAR_NUMBER = \"IS_AADHAAR_NUMBER\",\n IS_BANK_ACCOUNT_NO = \"IS_BANK_ACCOUNT_NO\",\n IS_BANK_SWIFT_CODE = \"IS_BANK_SWIFT_CODE\",\n IS_BIRTH_CERTIFICATE_NO = \"IS_BIRTH_CERTIFICATE_NO\",\n IS_CHEQUE_NO = \"IS_CHEQUE_NO\",\n IS_CIN = \"IS_CIN\",\n IS_CREDIT_CARD_NO = \"IS_CREDIT_CARD_NO\",\n IS_DRIVING_LICENSE = \"IS_DRIVING_LICENSE\",\n IS_GSTIN = \"IS_GSTIN\",\n IS_IFSC_NO = \"IS_IFSC_NO\",\n IS_MICR_CODE = \"IS_MICR_CODE\",\n IS_MOBILE_NO = \"IS_MOBILE_NO\",\n IS_MOBILE_NO_IN = \"IS_MOBILE_NO_IN\",\n IS_NEFT_OR_RTGS_NO = \"IS_NEFT_OR_RTGS_NO\",\n IS_PAN_NUMBER = \"IS_PAN_NUMBER\",\n IS_PASSPORT = \"IS_PASSPORT\",\n IS_PHONE_NO = \"IS_PHONE_NO\",\n IS_PINCODE = \"IS_PINCODE\",\n IS_PURCHASE_ORDER_NO = \"IS_PURCHASE_ORDER_NO\",\n IS_RATION_CARD_NO = \"IS_RATION_CARD_NO\",\n IS_SERVICE_TAX_NO = \"IS_SERVICE_TAX_NO\",\n IS_SOCIAL_SECURITY_NO = \"IS_SOCIAL_SECURITY_NO\",\n IS_UPI_TRANSACTION_REFERENCE_NO = \"IS_UPI_TRANSACTION_REFERENCE_NO\",\n IS_VAT_TIN_NO = \"IS_VAT_TIN_NO\",\n IS_VEHICLE_REGISTRATION_NO = \"IS_VEHICLE_REGISTRATION_NO\",\n IS_VOTER_ID = \"IS_VOTER_ID\"\n}\n\nexport enum EPattern {\n IS_ALPHA = \"^[a-zA-Z]+$\",\n IS_ADDRESS = \"^(\\\\w*\\\\s*[#-,/.()&]*)+\",\n IS_ALPHANUMERIC = \"^[a-zA-Z0-9]+$\",\n IS_BOOLEAN = \"(true|false)\",\n IS_EMAIL = \"^\\\\w+([\\\\.-]?\\\\w+)*@\\\\w+([\\\\.-]?\\\\w+)*(\\\\.\\\\w{2,3})+$\",\n IS_EMPTY = \"^$\",\n IS_FALSE = \"false\",\n IS_HTML = \"^<([a-z]+)([^<]+)(?:>(.)</\\\\1>|\\\\s+/>)$\",\n IS_INTEGER = \"^[+-]?d+$\",\n IS_IP_ADDRESS = \"^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$\",\n IS_JSON = \"^\\\\s*({(.|\\\\s)}|[(.|\\\\s)])\\\\s*$\",\n IS_LOWERCASE = \"^[a-z]+$\",\n IS_NOT_EMPTY = \"^.+$\",\n IS_NUMBER = \"^[+-]?d+(.d+)?$\",\n IS_TRUE = \"true\",\n IS_UPPERCASE = \"^[A-Z]+$\",\n IS_URL = \"^(?:http(s)?://)?[w.-]+(?:.[w.-]+)+[w-._~:/?#[]@!$&'()*+,;=.]+$\",\n IS_AADHAAR_NUMBER = \"^[0-9]{12}$\",\n IS_BANK_ACCOUNT_NO = \"^[0-9]{9,18}$\",\n IS_BANK_SWIFT_CODE = \"^[A-Z]{4}[A-Z]{2}[0-9A-Z]{2}[0-9A-Z]{3}$\",\n IS_BIRTH_CERTIFICATE_NO = \"^[A-Z]{2}[0-9]{6}[A-Z]{1}[0-9]{2}$\",\n IS_CHEQUE_NO = \"^[0-9]{6,14}$\",\n IS_CIN = \"^[A-Z]{3}[0-9]{5}[0-9A-Z]{3}$\",\n IS_CREDIT_CARD_NO = \"^[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{4}$\",\n IS_DRIVING_LICENSE = \"^[A-Z]{2}[0-9]{2}((19|20)[0-9][0-9])[0-9]{7}$\",\n IS_GSTIN = \"^[0-9]{2}[A-Z]{5}[0-9]{4}[A-Z]{1}[1-9A-Z]{1}Z[0-9A-Z]{1}$\",\n IS_IFSC_NO = \"^[A-Z]{4}[0][A-Z0-9]{6}$\",\n IS_MICR_CODE = \"^[0-9]{9}$\",\n IS_MOBILE_NO = \"^[6-9]\\\\d{9}$\",\n IS_MOBILE_NO_IN = \"^(\\\\+91)[6-9]\\\\d{9}$\",\n IS_NEFT_OR_RTGS_NO = \"^[A-Z]{4}[0-9]{7}$\",\n IS_PAN_NUMBER = \"^[A-Z]{5}[[0-9]{4}[A-Z]{1}$\",\n IS_PASSPORT = \"^[A-PR-WYa-pr-wy][1-9]\\\\d\\\\s?\\\\d{4}[1-9]$\",\n IS_PHONE_NO = \"^[6-9]\\\\d{9}$\",\n IS_PINCODE = \"^[1-9][0-9]{5}$\",\n IS_PURCHASE_ORDER_NO = \"^[0-9]{1,5}$\",\n IS_RATION_CARD_NO = \"^[A-Z]{3}[0-9]{7}$\",\n IS_SERVICE_TAX_NO = \"^[A-Z]{5}[0-9]{4}[A-Z]{1}$\",\n IS_SOCIAL_SECURITY_NO = \"^[0-9]{3}-[0-9]{2}-[0-9]{4}$\",\n IS_UPI_TRANSACTION_REFERENCE_NO = \"^[a-zA-Z0-9]{3,128}@[a-z]{3,9}$\",\n IS_VAT_TIN_NO = \"^[0-9]{11}$\",\n IS_VEHICLE_REGISTRATION_NO = \"^[A-Z]{2}[0-9]{2}((19|20)[0-9][0-9])[0-9]{6}$\",\n IS_VOTER_ID = \"^[A-Z]{3}[0-9]{7}$\"\n}\n\nexport enum EMessageType {\n DEFAULT = \"default\",\n ERROR = \"error\",\n SUCCESS = \"success\",\n WARNING = \"warning\"\n}\n","export enum EFieldType {\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}\n","import { TuiDay } from \"@taiga-ui/cdk\";\nimport jp from \"jsonpath\";\n\nexport const hasKey = (object: any, key: string): boolean => {\n return object.hasOwnProperty(key);\n};\n\nexport const isEmpty = (value: any): boolean => {\n if (value === \"\" || value === undefined || value === null) {\n return true;\n } else if (\n value &&\n Object.keys(value).length === 0 &&\n Object.getPrototypeOf(value) === Object.prototype\n ) {\n return true;\n } else if (Array.isArray(value)) {\n if (value.length === 0) {\n return true;\n } else {\n return false;\n }\n } else {\n return false;\n }\n};\n\nexport const isNotEmpty = (value: any) => {\n return !isEmpty(value);\n};\n\nexport const handleJPQueryResponse = (value: any): any => {\n /**\n * jp.query doesn't always return an array with one element\n * so directly can't access with [0], need to check conditionally\n */\n if (Array.isArray(value)) {\n if (value.length > 0) {\n value = value[0];\n } else if (value.length === 0) {\n value = \"\";\n }\n }\n\n return value;\n};\n\nexport const jpQueryWrapper = (obj: any, key: string): boolean => {\n return handleJPQueryResponse(jp.query(obj, key));\n};\n\nexport const isSingleForm = (formsList: any[]): boolean => {\n return formsList.length === 1;\n};\n","import { TuiDay } from \"@taiga-ui/cdk\";\nimport jp from \"jsonpath\";\nimport _ from \"lodash\";\nimport { EFieldType } from \"../definitions/fields/form-view.fields.enum.definitions\";\nimport {\n TField,\n TFieldRadio,\n TFieldType\n} from \"../definitions/fields/form-view.fields.type.definitions\";\n\nexport const hasKey = (object: any, key: string): boolean => {\n return object.hasOwnProperty(key);\n};\n\nexport const hasPath = (object: any, path: string): boolean => {\n return _.has(object, path);\n};\n\nexport const isEmptyString = (value: string): boolean => {\n return value === \"\";\n};\nexport const isUndefined = (value: any): boolean => {\n return value === undefined;\n};\nexport const isNull = (value: any): boolean => {\n return value === null;\n};\nexport const isEmptyObject = (object: any): boolean => {\n return (\n object &&\n Object.keys(object).length === 0 &&\n Object.getPrototypeOf(object) === Object.prototype\n );\n};\nexport const isEmptyArray = (arr: any[]): boolean => {\n return arr.length === 0;\n};\n\nexport const isEmpty = (value: any): boolean => {\n if (isEmptyString(value) || isUndefined(value) || isNull(value)) {\n return true;\n } else if (isEmptyObject(value)) {\n return true;\n } else if (Array.isArray(value)) {\n if (isEmptyArray(value)) {\n return true;\n } else {\n return false;\n }\n } else {\n return false;\n }\n};\n\nexport const isNotEmpty = (value: any) => {\n return !isEmpty(value);\n};\n\nexport const isEmptyBrowserStorageValue = (value: any) => {\n return isNull(value) && isUndefined(value);\n};\n\nexport const isNotEmptyBrowserStorageValue = (value: any) => {\n return !isEmptyBrowserStorageValue(value);\n};\n\nexport const handleJPQueryResponse = (value: any): any => {\n /**\n * jp.query doesn't always return an array with one element\n * so directly can't access with [0], need to check conditionally\n */\n if (Array.isArray(value)) {\n if (value.length > 0) {\n value = value[0];\n } else if (value.length === 0) {\n value = \"\";\n }\n } else {\n value = \"\";\n }\n\n return value;\n};\n\nexport const jpQueryWrapper = (obj: any, key: string) => {\n return handleJPQueryResponse(jp.query(obj, key));\n};\n\nexport const replaceString = (\n str: string,\n find: string,\n replace: string\n): string => {\n return str.replace(new RegExp(find, \"g\"), replace);\n};\n\nexport const setFieldKeyValue = (field: any, path: string, value: any): any => {\n return _.set(field, path, value);\n};\n\nexport const setValueToObject = (\n object: any,\n path: string,\n value: any\n): any => {\n return _.set(object, path, value);\n};\n\nexport const formatValue = (field: TField, fieldValue: any): any => {\n const fieldType: TFieldType = field.type;\n let value: any;\n\n if (isNotEmpty(fieldValue)) {\n switch (fieldType) {\n case EFieldType.DATE:\n const splitDate = fieldValue.split(\"-\");\n value = 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 break;\n case EFieldType.RADIO:\n const fieldRadio = field as TFieldRadio;\n value = fieldRadio.options.find((item: any) => {\n return item.label === fieldValue;\n });\n break;\n case EFieldType.CHECKBOX:\n value = Boolean(fieldValue);\n break;\n default:\n value = fieldValue;\n break;\n }\n } else {\n value = fieldValue;\n }\n\n return value;\n};\n\nexport const setEmptyValue = (field: TField): 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 {\n Actions,\n Condition,\n logMethod,\n Rules,\n Sources,\n TAction,\n TRule\n} from \"kwikid-toolkit\";\nimport { isEmpty } from \"../../renderer.helper\";\nimport { TField } from \"../definitions/fields/form-view.fields.type.definitions\";\nimport { TTrigger } from \"../definitions/triggers/form-view.triggers.type.definitions\";\nimport { TValidation } from \"../definitions/validations/form-view.validations.type.definitions\";\nimport { setEmptyValue, setValueToObject } from \"./form-view.common.helper\";\n\nexport class Defaults {\n private _allFormsData: any;\n private _field: TField;\n private _formData: any;\n private _previousFormData: any;\n private _takeAction: Function;\n\n constructor(\n field: TField,\n allFormsData: any,\n formData: any,\n previousFormData: any,\n takeAction: Function\n ) {\n this._field = field;\n this._allFormsData = allFormsData;\n this._formData = formData;\n this._previousFormData = previousFormData;\n this._takeAction = takeAction;\n }\n\n @logMethod\n async getDefaultValue() {\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 Sources({\n FIELD_CONFIG: this._field,\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 // Set the Value of current source.\n this._field = setValueToObject(\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 Rules(rules, {\n FIELD_CONFIG: this._field,\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 Actions(\n action,\n rulesMapping,\n {\n FIELD_CONFIG: this._field,\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 (isEmpty(defaultValue)) {\n defaultValue = setEmptyValue(this._field);\n }\n\n return defaultValue;\n }\n}\n","import { TuiDay } from \"@taiga-ui/cdk\";\nimport { EFieldType } from \"../definitions/fields/form-view.fields.enum.definitions\";\nimport { TField } from \"../definitions/fields/form-view.fields.type.definitions\";\nimport { checkObjectKeyExists, isNotEmptyValue } from \"kwikid-toolkit\";\n\nexport const findFieldFromKey = (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 findFieldIndexFromKey = (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 getSearchTextOptionsFromRemoteFile = async (\n field: any,\n childField: any,\n formGroup: any\n): Promise<any> => {\n const parentFieldValue = formGroup.controls[field.key].value;\n\n // Determine the URL of the remote file to fetch\n let fileUrl: string | undefined;\n if (childField.regexToGetJsonRemoteUrlKey) {\n const fileKey = parentFieldValue.match(\n childField.regexToGetJsonRemoteUrlKey\n )[0];\n fileUrl = childField.jsonRemoteUrlMapping[fileKey];\n } else {\n fileUrl = childField.fileUrl;\n }\n\n // Return early if there is no file URL\n if (!fileUrl) return;\n\n // Fetch the remote file and parse its JSON data\n const response = await fetch(fileUrl);\n const data = await response.json();\n\n // Return the data for the given parent field value\n return data[parentFieldValue];\n};\n\nexport const getSearchTextOptionsFromFieldConfig = (\n field: any,\n childField: any,\n formGroup: any\n): any => {\n let options: any;\n\n const fieldValue = formGroup.controls[field.key].value;\n\n if (isNotEmptyValue(childField[\"json\"])) {\n options = childField[\"json\"][fieldValue];\n }\n\n return options;\n};\n\nexport const formatSearchTextOptions = (\n options: { title: string; value: string }[]\n): string[] => {\n return options.map(({ title }) => title);\n};\n\nexport function highlightFieldError(field: any, error: any): any {\n field.invalid = error;\n field.focus = error;\n\n // if (!error) {\n // field[\"messages\"] = field[\"messages\"].filter(function (fieldMessage: {\n // type: string;\n // message: string;\n // }) {\n // return fieldMessage.type === \"error\";\n // });\n // }\n\n return field;\n}\n\nexport const addMessage = (\n field: any,\n message: { type: string; message: string }\n): any => {\n const isDuplicateMessage = (\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 (!isDuplicateMessage(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};\nexport const removeMessage = (\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 setFieldError(\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 = addMessage(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] = highlightFieldError(fields[fieldIndex], error);\n\n return fields;\n}\n\nexport const convertDateStringToTuiDayFormat = (date: string): 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 convertTuiDayFormatToDateString = (date: TuiDay): 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 convertValueFromKwikUIFormatToBasicFormat = (\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 convertedValue = convertTuiDayFormatToDateString(value);\n break;\n case EFieldType.RADIO:\n convertedValue = value.label;\n default:\n break;\n }\n }\n\n return convertedValue;\n};\n\nexport const convertValueFromBasicFormatToKwikUIFormat = (\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 convertedLabelValue = {\n label: value,\n disabled: false\n };\n convertedValue = convertedLabelValue;\n }\n break;\n case EFieldType.DATE:\n convertedValue = convertDateStringToTuiDayFormat(value);\n break;\n case EFieldType.TITLE:\n break;\n default:\n break;\n }\n }\n\n return convertedValue;\n};\n","import {\n FormArray,\n FormGroup,\n ValidationErrors,\n Validators\n} from \"@angular/forms\";\nimport {\n Actions,\n Condition,\n logMethod,\n Rules,\n checkObjectKeyExists,\n isNotEmptyValue\n} from \"kwikid-toolkit\";\nimport {\n EPattern,\n EPatternKey\n} from \"../definitions/common/form-view.common.enum.definitions\";\nimport { TField } from \"../definitions/fields/form-view.fields.type.definitions\";\n\nexport class Validations {\n private _formData: any;\n get formData(): any {\n return this._formData;\n }\n set formData(value: any) {\n this._formData = value;\n }\n\n private _previousFormData: any;\n get previousFormData(): any {\n return this._previousFormData;\n }\n set previousFormData(value: any) {\n this._previousFormData = value;\n }\n\n private _allFormsData: any;\n get allFormsData(): any {\n return this._allFormsData;\n }\n set allFormsData(value: any) {\n this._allFormsData = value;\n }\n\n private _field: TField;\n get field(): TField {\n return this._field;\n }\n set field(value: TField) {\n this._field = value;\n }\n\n private _takeAction: Function;\n\n constructor(\n field: TField,\n formData: any,\n previousFormData: any,\n allFormsData: any,\n takeAction: any\n ) {\n this._field = field;\n this._formData = formData;\n this._previousFormData = previousFormData;\n this._allFormsData = allFormsData;\n this._takeAction = takeAction;\n }\n\n @logMethod\n getFieldValidators(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 === EPatternKey.CUSTOM) {\n validators.push(Validators.pattern(field.validators.pattern.pattern));\n } else {\n validators.push(\n Validators.pattern(EPattern[field.validators.pattern.key])\n );\n }\n }\n }\n\n return validators;\n }\n\n @logMethod\n getFormValidationErrors(\n control: FormGroup\n ): { name: string; value: string }[] {\n let errors: { name: string; value: string }[] = [];\n\n for (const key in control.controls) {\n const controlErrors: ValidationErrors = control.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 findInvalidControlsRecursive(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 @logMethod\n async validateField(): Promise<any> {\n const validations = this._field.validation;\n\n const triggers = validations.triggers;\n const rules = validations.rules;\n const actions = validations.actions;\n\n const rulesMapping = new Rules(rules, {\n FIELD_CONFIG: this._field,\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 Actions(\n action,\n rulesMapping,\n {\n FIELD_CONFIG: this._field,\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 { FormControl, FormGroup } from \"@angular/forms\";\nimport { logMethod } from \"kwikid-toolkit\";\nimport { Defaults } from \"./helpers/form-view.defaults.helper\";\nimport { convertValueFromBasicFormatToKwikUIFormat } from \"./helpers/form-view.fields.helper\";\nimport { Validations } from \"./helpers/form-view.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.type !== \"title\") {\n const defaults = new Defaults(\n field,\n allFormsData,\n formData,\n previousFormData,\n takeAction\n );\n let value = await defaults.getDefaultValue();\n value = convertValueFromBasicFormatToKwikUIFormat(field, value);\n\n const validators = new Validations(\n field,\n formData,\n previousFormData,\n allFormsData,\n takeAction\n ).getFieldValidators(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 Actions,\n Condition,\n logMethod,\n Rules,\n Sources,\n TRule,\n TSource\n} from \"kwikid-toolkit\";\nimport { TAction } from \"../definitions/actions/form-view.actions.type.definitions\";\nimport {\n TApi,\n TApiRequest,\n TApiRequestBody,\n TApiRequestBodyParam,\n TApiResponse,\n TApiStatus\n} from \"../definitions/apis/form-view.apis.type.definitions\";\nimport { TFieldApiCall } from \"../definitions/fields/form-view.fields.type.definitions\";\nimport { TTrigger } from \"../definitions/triggers/form-view.triggers.type.definitions\";\nimport { TValidation } from \"../definitions/validations/form-view.validations.type.definitions\";\nimport { setValueToObject } from \"./form-view.common.helper\";\n\nexport class Apis {\n private _formData: any;\n private _previousFormData: any;\n private _allFormsData: any;\n private _field: TFieldApiCall;\n private _takeAction: Function;\n\n private _api: TApi;\n private _request: TApiRequest;\n private _response: TApiResponse;\n private _status: TApiStatus;\n\n constructor(\n field: TFieldApiCall,\n formData: any,\n previousFormData: any,\n allFormsData: any,\n takeAction: Function\n ) {\n this._field = field;\n this._formData = formData;\n this._previousFormData = previousFormData;\n this._allFormsData = allFormsData;\n this._takeAction = takeAction;\n\n this._api = field.api;\n this._request = field.api.request;\n this._response = field.api.response;\n this._status = field.api.status;\n }\n\n @logMethod\n public async setRequestBodyParams(): 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 Sources({\n FIELD_CONFIG: this._field,\n FORM_DATA: this._formData,\n PREVIOUS_FORM_DATA: this._previousFormData,\n ALL_FORMS_DATA: this._allFormsData\n });\n\n const value = sources.getValueFromSource(source);\n // Set the Value of current source.\n this._field = setValueToObject(\n this._field,\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 Rules(rules, {\n FIELD_CONFIG: this._field,\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 Actions(\n action,\n rulesMapping,\n {\n FIELD_CONFIG: this._field,\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 paramIndex++;\n }\n\n return this._field;\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 Rules(rules, {\n FIELD_CONFIG: this._field,\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 conditionSuccess = new Condition(\n action.condition,\n rulesMapping\n ).evaluate();\n\n if (conditionSuccess) {\n const actions = new Actions(\n action,\n rulesMapping,\n {\n FIELD_CONFIG: this._field,\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 return this._field;\n }\n\n @logMethod\n public async validateApiCallResponse(): 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 Rules(rules, {\n FIELD_CONFIG: this._field,\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 conditionSuccess = new Condition(\n action.condition,\n rulesMapping\n ).evaluate();\n\n if (conditionSuccess) {\n const actions = new Actions(\n action,\n rulesMapping,\n {\n FIELD_CONFIG: this._field,\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 return this._field;\n }\n\n getPropsValues(): any {\n return {\n field: this._field,\n formData: this._formData,\n previousFormData: this._previousFormData,\n allFormsData: this._allFormsData\n };\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 Actions,\n checkObjectKeyExists,\n Condition,\n isEmptyValue,\n isNotEmptyValue,\n logMethod,\n Rules,\n Sources,\n TAction\n} from \"kwikid-toolkit\";\nimport { pairwise } from \"rxjs/operators\";\nimport { EActionKey } from \"./definitions/actions/form-view.actions.enum.definitions\";\nimport { EApiStatusType } from \"./definitions/apis/form-view.apis.enum.definitions\";\nimport { EMessageType } from \"./definitions/common/form-view.common.enum.definitions\";\nimport { TMessage } from \"./definitions/common/form-view.common.type.definitions\";\nimport { EFieldType } from \"./definitions/fields/form-view.fields.enum.definitions\";\nimport {\n TField,\n TFieldApiCall,\n TFieldTitle\n} from \"./definitions/fields/form-view.fields.type.definitions\";\nimport { KwikIDFormViewService } from \"./form-view.service\";\nimport { Apis } from \"./helpers/form-view.apis.helper\";\nimport { setEmptyValue } from \"./helpers/form-view.common.helper\";\nimport {\n addMessage,\n convertValueFromKwikUIFormatToBasicFormat,\n findFieldFromKey,\n findFieldIndexFromKey,\n getSearchTextOptionsFromFieldConfig,\n getSearchTextOptionsFromRemoteFile,\n highlightFieldError,\n removeMessage,\n setFieldError\n} from \"./helpers/form-view.fields.helper\";\nimport { Validations } from \"./helpers/form-view.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 apiCallResponse: any = {};\n\n @Input()\n isMobileView: boolean = false;\n\n @Input()\n allFormsData: any;\n\n @Input()\n formsList: 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 @Output()\n getActiveFormData: 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(\"apiCallResponse\")) {\n this.apiCallResponse = changes.apiCallResponse.currentValue;\n\n this.formData = {\n ...this.formData,\n [this.apiCallResponse.key]: this.apiCallResponse.response\n };\n\n this.formGroup.patchValue(\n {\n [this.apiCallResponse.key]: this.apiCallResponse.response\n },\n { emitEvent: false }\n );\n\n let field: TFieldApiCall = findFieldFromKey(\n this.formFields,\n this.apiCallResponse.key\n );\n\n const apis = new Apis(\n field,\n this.formData,\n this.previousFormData,\n this.allFormsData,\n this.takeAction.bind(this)\n );\n\n (async () => {\n field = await apis.validateApiCallResponse();\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(\"formsList\")) {\n this.formsList = changes.formsList.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 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.type !== \"title\") {\n this.previousFormData = {\n ...this.previousFormData,\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]: previousValue\n };\n\n this.formData = {\n ...this.formData,\n [field.key]: currentValue\n };\n });\n }\n }\n for (let field of this.formFields) {\n if (field.type !== \"title\") {\n (async () => {\n field = await 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 Rules(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 Actions(\n action,\n rulesMapping,\n {\n FIELD_CONFIG: parentField,\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 switch (eventType) {\n case \"INIT\":\n if (\n checkObjectKeyExists(connectedFieldGroupConfig, \"triggers\") &&\n connectedFieldGroupConfig.triggers.includes(\"INIT\")\n ) {\n await this.handleConnectedElementFieldGroupActions(\n connectedFieldGroupConfig,\n currentField\n );\n }\n break;\n case \"VALUE_CHANGE\":\n if (\n checkObjectKeyExists(connectedFieldGroupConfig, \"triggers\") &&\n connectedFieldGroupConfig.triggers.includes(\"VALUE_CHANGE\")\n ) {\n await this.handleConnectedElementFieldGroupActions(\n connectedFieldGroupConfig,\n currentField\n );\n }\n break;\n case \"NESTED_LINK\":\n if (\n checkObjectKeyExists(connectedFieldGroupConfig, \"triggers\") &&\n connectedFieldGroupConfig.triggers.includes(\"NESTED_LINK\")\n ) {\n await this.handleConnectedElementFieldGroupActions(\n connectedFieldGroupConfig,\n currentField\n );\n }\n default:\n if (checkObjectKeyExists(connectedFieldGroupConfig, \"triggers\")) {\n await this.handleConnectedElementFieldGroupActions(\n connectedFieldGroupConfig,\n currentField\n );\n }\n break;\n }\n }\n\n @logMethod\n async handleConnectedElementFieldActions(\n connectedFieldConfig: any,\n connectedField: any\n ) {\n if (checkObjectKeyExists(connectedFieldConfig, \"rules\")) {\n const rulesMapping = new Rules(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 Actions(\n action,\n rulesMapping,\n {\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 ) {\n let connectedField = findFieldFromKey(\n this.formFields,\n connectedFieldConfig[\"key\"]\n );\n\n switch (eventType) {\n case \"INIT\":\n if (\n checkObjectKeyExists(connectedField, \"triggers\") &&\n connectedField.triggers.includes(\"INIT\")\n ) {\n if (this.isFieldEnabled(connectedField.key)) {\n if (\n checkObjectKeyExists(\n connectedFieldConfig,\n \"connectedParentFields\"\n )\n ) {\n switch (connectedFieldConfig.type) {\n case \"dropdown-with-search\":\n connectedField = await this.handleFieldTypeSearchText(\n currentField,\n connectedField\n );\n break;\n default:\n break;\n }\n }\n }\n connectedField = await this.handleConnectedElementFieldActions(\n connectedFieldConfig,\n connectedField\n );\n }\n break;\n case \"VALUE_CHANGE\":\n if (\n checkObjectKeyExists(connectedFieldConfig, \"triggers\") &&\n connectedFieldConfig.triggers.includes(\"VALUE_CHANGE\")\n ) {\n switch (connectedField.type) {\n case \"dropdown-with-search\":\n connectedField = await this.handleFieldTypeSearchText(\n currentField,\n connectedField\n );\n break;\n default:\n break;\n }\n connectedField = await this.handleConnectedElementFieldActions(\n connectedFieldConfig,\n connectedField\n );\n }\n break;\n case \"NESTED_LINK\":\n if (\n checkObjectKeyExists(connectedFieldConfig, \"triggers\") &&\n connectedFieldConfig.triggers.includes(\"NESTED_LINK\")\n ) {\n connectedField = await this.handleConnectedElementFieldActions(\n connectedFieldConfig,\n connectedField\n );\n }\n default:\n if (checkObjectKeyExists(connectedFieldConfig, \"triggers\")) {\n connectedField = await this.handleConnectedElementFieldActions(\n connectedFieldConfig,\n connectedField\n );\n }\n break;\n }\n\n if (checkObjectKeyExists(connectedField, \"connectedElements\")) {\n if (\n checkObjectKeyExists(\n connectedField.connectedElements,\n \"connectedFields\"\n )\n ) {\n for (const connectedFieldConfig of connectedField.connectedElements\n .connectedFields) {\n connectedField = this.handleConnectedElementFields(\n connectedField,\n connectedFieldConfig,\n \"NESTED_LINK\"\n );\n }\n }\n }\n\n return currentField;\n }\n\n @logMethod\n async handleConnectedElements(e: any, eventType: string) {\n let currentField = findFieldFromKey(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 );\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 // Currently set only for dropdown-with-search connected fields\n let field = findFieldFromKey(this.formFields, e.key);\n\n if (\n field.type !== \"title\" &&\n field.validation.triggers.includes(\"ON_CHANGE\")\n ) {\n const validations = new Validations(\n field,\n this.formData,\n this.previousFormData,\n this.allFormsData,\n this.takeAction.bind(this)\n );\n\n (async () => {\n await validations.validateField();\n })();\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 = findFieldFromKey(\n this.formFields,\n action.props.fieldKey\n );\n const actions = new Actions(\n action,\n {},\n {\n FIELD_CONFIG: resetField,\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 = findFieldFromKey(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 field,\n this.formData,\n this.previousFormData,\n this.allFormsData,\n this.takeAction.bind(this)\n );\n\n field = await apis.setRequestBodyParams();\n\n field = await apis.validateRequestBody();\n\n if (field.api.request.body.validation.is_valid) {\n // Call API Here\n this.onClickApiCall.emit({\n key: e.key,\n request: {\n mode: \"POST\",\n body: field.api.request.body.value,\n headers: {},\n url: field.api.request.url\n }\n });\n } else {\n // Request Body Validation Failed\n // Highlight Error in UI to User to Retry After Sometime.\n // Take Actions 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 @logMethod\n handleOnClickViewForms(e: any) {\n this.onClickViewForms.emit({\n clicked: true\n });\n }\n\n @logMethod\n handleOnClickSaveForm(e: any) {\n let formData = this.formGroup.getRawValue();\n\n for (let field of this.formFields) {\n if (field.type !== EFieldType.TITLE) {\n if (field.hidden) {\n delete formData[field.key];\n } else {\n formData[field.key] = convertValueFromKwikUIFormatToBasicFormat(\n field,\n formData[field.key]\n );\n }\n }\n }\n\n for (let field of this.formFields) {\n if (\n field.type !== EFieldType.TITLE &&\n field.validation.triggers.includes(\"ON_SAVE\")\n ) {\n const validations = new Validations(\n field,\n formData,\n this.previousFormData,\n this.allFormsData,\n this.takeAction.bind(this)\n );\n\n (async () => {\n await validations.validateField();\n })();\n }\n }\n\n if (this.formGroup.invalid) {\n const controls = new Validations(\n undefined,\n formData,\n this.previousFormData,\n this.allFormsData,\n this.takeAction.bind(this)\n ).findInvalidControlsRecursive(this.formGroup);\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 = setFieldError(\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 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 = findFieldFromKey(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 = findFieldFromKey(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 = findFieldFromKey(this.formFields, fieldKey);\n let fieldIndex = this.formFields.findIndex((_: any) => {\n return field.key === _.key;\n });\n\n if (field.type !== EFieldType.TITLE) {\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 = findFieldFromKey(this.formFields, fieldKey);\n let fieldIndex = this.formFields.findIndex((_: any) => {\n return field.key === _.key;\n });\n\n if (field.type !== EFieldType.TITLE) {\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 = findFieldFromKey(this.formFields, fieldKey);\n let fieldIndex = findFieldIndexFromKey(this.formFields, fieldKey);\n\n // Delete the field from the formData object\n delete this.formData[fieldKey];\n\n // Reset the value of the field in the formGroup\n this.formGroup.controls[field.key].reset(setEmptyValue(field), {\n emitEvent: false\n });\n\n // Reset the messages and errors for the field\n field = removeMessage(field, {\n type: EMessageType.WARNING,\n message: \"\"\n });\n field = removeMessage(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 = findFieldFromKey(this.formFields, fieldKey);\n let fieldIndex = this.formFields.findIndex((_: any) => {\n return field.key === _.key;\n });\n\n field = highlightFieldError(field, true);\n field = addMessage(field, message);\n\n this.formFields[fieldIndex] = field;\n }\n\n @logMethod\n fieldErrorHide(fieldKey: string, message: TMessage) {\n let field = findFieldFromKey(this.formFields, fieldKey);\n let fieldIndex = this.formFields.findIndex((_: any) => {\n return field.key === _.key;\n });\n\n field = highlightFieldError(field, false);\n field = removeMessage(field, message);\n\n this.formFields[fieldIndex] = field;\n }\n\n @logMethod\n fieldMessageShow(fieldKey: string, message: TMessage) {\n let field = findFieldFromKey(this.formFields, fieldKey);\n let fieldIndex = this.formFields.findIndex((_: any) => {\n return field.key === _.key;\n });\n\n field = addMessage(field, message);\n\n this.formFields[fieldIndex] = field;\n }\n\n @logMethod\n fieldMessageHide(fieldKey: string, message: TMessage) {\n let field = findFieldFromKey(this.formFields, fieldKey);\n let fieldIndex = this.formFields.findIndex((_: any) => {\n return field.key === _.key;\n });\n\n field = removeMessage(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 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 handleFieldTypeSearchText(field: any, childField: any) {\n if (checkObjectKeyExists(childField, \"json\")) {\n childField.options = getSearchTextOptionsFromFieldConfig(\n field,\n childField,\n this.formGroup\n );\n }\n if (checkObjectKeyExists(childField, \"fetchJsonFromRemote\")) {\n childField.options = await getSearchTextOptionsFromRemoteFile(\n field,\n childField,\n this.formGroup\n );\n }\n\n return childField;\n }\n\n @logMethod\n async takeActionOnFieldGroup(\n action: TAction,\n field: TField,\n allFormsData: any,\n formData: any,\n previousFormData: any\n ) {\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 sources = new Sources(object);\n\n const sourceValue = await sources.getValueFromSource(\n action.props.value.source\n );\n sources.setValueToSource(action.props.value.destination, sourceValue);\n\n object.FIELD_CONFIG = sources.object.FIELD_CONFIG;\n this.formData = sources.object.FORM_DATA;\n this.allFormsData = sources.object.ALL_FORMS_DATA;\n this.previousFormData = sources.object.PREVIOUS_FORM_DATA;\n\n break;\n case EActionKey.HANDLE_CONNECTED_ELEMENTS:\n this.handleConnectedElements({ key: action.props.fieldKey }, \"ACTION\");\n break;\n case EActionKey.CUSTOM:\n break;\n default:\n break;\n }\n }\n}\n","<div\n class=\"kwikid-form-container\"\n *ngIf=\"!this.loading\"\n>\n <div id=\"uf-form-fields-header-container\">\n <div id=\"uf-form-fields-title\">\n {{ this.formConfig.title }}\n </div>\n <div id=\"uf-form-fields-steps\">\n Step {{ this.formConfig.sequenceNo }} of {{ this.formsList.length }}\n </div>\n <hr />\n </div>\n <form\n class=\"kwikid-form show\"\n [formGroup]=\"this.formGroup\"\n >\n <ng-container *ngFor=\"let field of this.formFields; let i = index\">\n <ng-container [ngSwitch]=\"field.type\">\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)=\"this.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 [max]=\"field?.properties?.max\"\n [min]=\"field?.properties?.min\"\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 [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\"\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 <!-- 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)=\"this.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=\"this.isMobileView\"\n [disabled]=\"viewFormsButton.disabled\"\n id=\"\"\n label=\"View Forms\"\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)=\"this.handleOnClickViewForms($event)\"\n ></kwikui-button>\n <kwikui-button\n [disabled]=\"saveFormButton.disabled\"\n id=\"\"\n label=\"Save\"\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)=\"this.handleOnClickSaveForm($event)\"\n ></kwikui-button>\n </div>\n</div>\n<div\n class=\"kwikid-form-container-loading\"\n *ngIf=\"this.loading\"\n>\n <div\n class=\"large-wrapper\"\n [class.tui-skeleton]=\"this.loading\"\n [class.tui-skeleton_rounded]=\"this.loading\"\n ></div>\n <div\n class=\"large-wrapper\"\n [class.tui-skeleton]=\"this.loading\"\n [class.tui-skeleton_rounded]=\"this.loading\"\n ></div>\n <div\n class=\"large-wrapper\"\n [class.tui-skeleton]=\"this.loading\"\n [class.tui-skeleton_rounded]=\"this.loading\"\n ></div>\n <div\n class=\"large-wrapper\"\n [class.tui-skeleton]=\"this.loading\"\n [class.tui-skeleton_rounded]=\"this.loading\"\n ></div>\n <div\n class=\"large-wrapper\"\n [class.tui-skeleton]=\"this.loading\"\n [class.tui-skeleton_rounded]=\"this.loading\"\n ></div>\n <div\n class=\"large-wrapper\"\n [class.tui-skeleton]=\"this.loading\"\n [class.tui-skeleton_rounded]=\"this.loading\"\n ></div>\n <div\n class=\"large-wrapper\"\n [class.tui-skeleton]=\"this.loading\"\n [class.tui-skeleton_rounded]=\"this.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=\"tuiIconCancel\"\n style=\"color: #fff !important\"\n >\n </tui-svg>\n</tui-push>\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges\n} from \"@angular/core\";\nimport { checkObjectKeyExists, logMethod } 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 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\n isAllFormsCompleted: boolean = true;\n\n constructor() {}\n\n ngOnInit(): void {\n this.isAllFormsCompleted = this.checkIsAllFormsCompleted(this.formsList);\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(\"formsList\")) {\n this.formsList = changes.formsList.currentValue;\n this.isAllFormsCompleted = this.checkIsAllFormsCompleted(this.formsList);\n }\n if (verifyChange(\"isMobileView\")) {\n this.isMobileView = changes.isMobileView.currentValue;\n }\n }\n\n checkIsAllFormsCompleted(formsList: any[]): boolean {\n let isAllFormsCompleted: boolean = true;\n\n for (let forms of formsList) {\n if (forms.status !== \"completed\") {\n isAllFormsCompleted = false;\n break;\n }\n }\n\n return isAllFormsCompleted;\n }\n\n handleOnClickSetActiveForm(selectedForm: string) {\n if (\n this.selectedForm !== selectedForm ||\n (this.isAllFormsCompleted && !this.showFormFields)\n ) {\n this.selectedForm = selectedForm;\n this.onClickSetActiveForm.emit(selectedForm);\n }\n }\n\n handleOnSubmitForms(e: any) {\n this.onClickSubmitForms.emit(e);\n }\n}\n","<div id=\"sidebar-container\">\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.formsList.length }} Steps\n Completed\n </div>\n <kwikui-progress-segmented\n [max]=\"this.formsList.length\"\n size=\"m\"\n [value]=\"this.formsListCompleted.length\"\n ></kwikui-progress-segmented>\n </div>\n <div id=\"uf-sections-container\">\n <div\n *ngFor=\"let form of formsList; let i = index\"\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 (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.title }}\n </div>\n <div class=\"uf-form-section-card-action\">\n <div\n *ngIf=\"form.status === 'completed' && !form.disabled\"\n class=\"uf-form-section-card-action-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-action-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-action-img locked\"\n >\n <tui-svg src=\"tuiIconLock\"></tui-svg>\n </div>\n </div>\n </div>\n </div>\n <div id=\"submit-sidebar-btn-container\">\n <kwikui-button\n [disabled]=\"false\"\n id=\"\"\n label=\"Submit\"\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 { TuiDay } from \"@taiga-ui/cdk\";\nimport {\n logMethod,\n checkObjectKeyExists,\n isEmptyValue,\n isNotEmptyValue\n} from \"kwikid-toolkit\";\nimport { convertDateStringToTuiDayFormat } 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 convertFormConfig(formConfig: any): any {\n const updateOnFieldType = (field: any): any => {\n const formatFieldTypeTitle = (field: any): any => {\n field = this.setFieldKeyValue(field, \"hidden\", false);\n\n return field;\n };\n const formatFieldTypeRadio = (field: any): any => {\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 };\n } else {\n if (\n checkObjectKeyExists(x, \"label\") &&\n checkObjectKeyExists(x, \"disabled\")\n ) {\n return x;\n }\n }\n });\n\n return field;\n };\n const formatFieldTypeOtp = (field: any): any => {\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 formatFieldTypeDate = (field: any): any => {\n if (checkObjectKeyExists(field, \"min\")) {\n const tuiDay = convertDateStringToTuiDayFormat(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 = convertDateStringToTuiDayFormat(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 \"placeholder\",\n \"\"\n );\n\n field = this.setFieldKeyValue(field, \"hidden\", false);\n\n return field;\n };\n const formatFieldTypeNumber = (field: any): any => {\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 formatFieldTypeApiCall = (field: any): any => {\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 formatFieldTypeSearchText = (field: any): any => {\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 formatFieldTypeText = (field: any): any => {\n return field;\n };\n\n switch (field.type) {\n case \"title\":\n field = formatFieldTypeTitle(field);\n break;\n case \"radio\":\n field = formatFieldTypeRadio(field);\n break;\n case \"otp\":\n field = formatFieldTypeOtp(field);\n break;\n case \"date\":\n field = formatFieldTypeDate(field);\n break;\n case \"number\":\n field = formatFieldTypeNumber(field);\n break;\n case \"api-call\":\n field = formatFieldTypeApiCall(field);\n break;\n case \"search-text\":\n field = formatFieldTypeSearchText(field);\n break;\n default:\n break;\n }\n\n return field;\n };\n\n const getConnectedElementKeyValueObject = (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 getConnectedElementKeyValueObject(field[\"connectedTo\"])\n ];\n } else {\n field[\"connectedTo\"] = field[\"connectedTo\"].map((key: string) => {\n return getConnectedElementKeyValueObject(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 getConnectedElementKeyValueObject(field[\"connectedToParent\"])\n ];\n } else {\n field[\"connectedParentFields\"] = getConnectedElementKeyValueObject(\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 getConnectedElementFieldMapping = (\n field: any,\n connectedFieldMapping: any\n ): any => {\n const getConnectedElementChildFieldMapping = (\n field: any,\n connectedFieldMapping: any\n ): any => {\n if (checkObjectKeyExists(field, \"connectedElements\")) {\n connectedFieldMapping[\"child\"][field.key] = field.connectedElements;\n } else if (\n checkObjectKeyExists(connectedFieldMapping[\"child\"], field.key)\n ) {\n field[\"connectedElements\"] =\n connectedFieldMapping[\"child\"][field.key];\n }\n\n return { field: field, connectedFieldMapping: connectedFieldMapping };\n };\n\n const getConnectedElementParentFieldMapping = (\n field: any,\n connectedFieldMapping: any\n ): any => {\n if (checkObjectKeyExists(connectedFieldMapping[\"child\"], field.key)) {\n for (let connectedParentKey of connectedFieldMapping[\"child\"][\n field.key\n ]) {\n if (\n checkObjectKeyExists(\n connectedFieldMapping[\"parent\"],\n connectedParentKey[\"key\"]\n )\n ) {\n connectedFieldMapping[\"parent\"][connectedParentKey[\"key\"]].push(\n field.key\n );\n } else {\n connectedFieldMapping[\"parent\"][connectedParentKey[\"key\"]] = [\n field.key\n ];\n }\n }\n }\n\n return { field: field, connectedFieldMapping: connectedFieldMapping };\n };\n\n const connectedChildFieldMapping = getConnectedElementChildFieldMapping(\n field,\n connectedFieldMapping\n );\n field = connectedChildFieldMapping[\"field\"];\n connectedFieldMapping =\n connectedChildFieldMapping[\"connectedFieldMapping\"];\n\n const connectedParentFieldMapping = getConnectedElementParentFieldMapping(\n field,\n connectedFieldMapping\n );\n field = connectedParentFieldMapping[\"field\"];\n connectedFieldMapping =\n connectedParentFieldMapping[\"connectedFieldMapping\"];\n\n return connectedFieldMapping;\n };\n\n const updateConnectedElementsKeyValue = (\n field: any,\n connectedFieldMapping: any\n ): any => {\n if (checkObjectKeyExists(connectedFieldMapping[\"child\"], field.key)) {\n field[\"connectedElements\"] = connectedFieldMapping[\"child\"][field.key];\n }\n\n if (checkObjectKeyExists(connectedFieldMapping[\"parent\"], field.key)) {\n field[\"connectedParentFields\"] =\n connectedFieldMapping[\"parent\"][field.key];\n }\n\n return field;\n };\n\n const updateFieldValidatorConfig = (field: any): any => {\n if (field.type !== \"title\") {\n const validators = checkObjectKeyExists(field, \"validators\")\n ? field.validators\n : {};\n\n field = this.setMissingFieldKeyValue(field, \"validators\", {});\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 \"text\":\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.type !== \"title\") {\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.type !== \"title\") {\n field = this.setMissingFieldKeyValue(field, \"messages\", []);\n }\n\n return field;\n };\n\n const updateFieldResetButton = (field: any): any => {\n if (field.type === \"title\") {\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 connectedFieldMapping: any = {\n parent: {},\n child: {}\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 field = formatFieldKeys(field);\n\n // connectedFieldMapping = getConnectedElementFieldMapping(\n // field,\n // connectedFieldMapping\n // );\n // field = updateConnectedElementsKeyValue(field, connectedFieldMapping);\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","import { Injectable } from \"@angular/core\";\nimport {\n logMethod,\n checkObjectKeyExists,\n} from \"kwikid-toolkit\";\nimport { setValueToObject } from \"./form-view/helpers/form-view.common.helper\";\n\n@Injectable({\n providedIn: \"root\"\n})\nexport class KwikIDRendererService {\n isMobileView = false;\n setIsMobileView(isMobileView: boolean) {\n this.isMobileView = isMobileView;\n }\n\n formsList: any[];\n @logMethod\n setFormsList(formsList: any[]) {\n this.formsList = formsList;\n }\n\n formsListCompleted: string[];\n @logMethod\n setFormsListCompleted(formsListCompleted: any[]) {\n this.formsListCompleted = formsListCompleted;\n }\n\n allFormsData: any = {};\n @logMethod\n setAllFormsData(allFormsData: any[]) {\n this.allFormsData = allFormsData;\n }\n\n activeFormConfig: any;\n @logMethod\n setActiveFormConfig(activeFormConfig: any) {\n this.activeFormConfig = activeFormConfig;\n }\n\n activeFormFields: any[];\n @logMethod\n setActiveFormFields(activeFormFields: any[]) {\n this.activeFormFields = activeFormFields;\n }\n\n activeFormData: any;\n @logMethod\n setActiveFormData(activeFormData: any) {\n this.activeFormData = activeFormData;\n }\n\n constructor() {}\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 @logMethod\n findActiveFormConfig(formsList: any[]): any {\n const activeFormConfig = formsList.find((form) => {\n return form.status === \"editable\" && !form.disabled;\n });\n return activeFormConfig;\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 @logMethod\n markFormInFormsListAsCompleted(\n formsList: any[],\n formsListCompleted: string[]\n ): any[] {\n for (let form of formsList) {\n if (formsListCompleted.includes(form.key)) {\n console.log(formsListCompleted.includes(form.key));\n\n form = setValueToObject(form, \"status\", \"completed\");\n form = setValueToObject(form, \"disabled\", false);\n }\n }\n\n return formsList;\n }\n\n @logMethod\n markFormInFormsListAsDisabled(\n formsList: any[],\n formsListCompleted: string[]\n ): any[] {\n for (let form of formsList) {\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 = setValueToObject(form, \"status\", \"editable\");\n form = setValueToObject(form, \"disabled\", false);\n } else {\n form = setValueToObject(form, \"status\", \"locked\");\n form = setValueToObject(form, \"disabled\", true);\n }\n } else {\n form = setValueToObject(form, \"dependentOn\", []);\n form = setValueToObject(form, \"status\", \"editable\");\n form = setValueToObject(form, \"disabled\", false);\n }\n }\n }\n\n return formsList;\n }\n\n @logMethod\n assignSequenceNoToForm(formsList: any[]): any[] {\n let sequenceNo = 1;\n for (let form of formsList) {\n form.sequenceNo = sequenceNo++;\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 (checkObjectKeyExists(allFormsData, form.key)) {\n currentUserFormAllFormsData = {\n ...currentUserFormAllFormsData,\n [form.key]: allFormsData[form.key]\n };\n }\n }\n\n return currentUserFormAllFormsData;\n }\n\n @logMethod\n updateFormsList() {\n let formsList: any[] = this.formsList;\n let formsListCompleted: string[];\n let activeFormConfig: any;\n\n formsList = this.assignSequenceNoToForm(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 formsList\n );\n\n console.log(JSON.parse(JSON.stringify(formsList)));\n\n formsListCompleted = this.findCompletedFormsList(\n currentUserFormAllFormsData\n );\n\n formsList = this.markFormInFormsListAsCompleted(\n formsList,\n formsListCompleted\n );\n\n formsList = this.markFormInFormsListAsDisabled(\n formsList,\n formsListCompleted\n );\n\n if (formsList.length !== formsListCompleted.length) {\n activeFormConfig = this.findActiveFormConfig(formsList);\n\n this.setActiveFormConfig(activeFormConfig);\n }\n\n this.setFormsList(formsList);\n this.setFormsListCompleted(formsListCompleted);\n }\n}\n","import { animate, style, transition, trigger } from \"@angular/animations\";\nimport {\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges\n} from \"@angular/core\";\nimport {\n checkObjectKeyExists,\n logMethod,\n Sources,\n Validations\n} from \"kwikid-toolkit\";\nimport { EActionKey } from \"./form-view/definitions/actions/form-view.actions.enum.definitions\";\nimport { Converter } from \"./renderer.config-converter.helper\";\nimport { isSingleForm } from \"./renderer.helper\";\nimport { KwikIDRendererService } from \"./renderer.service\";\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 providers: [KwikIDRendererService]\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.rendererService.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.rendererService.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 // display forms and list conditionally\n showForm: boolean = false;\n showFormFields: boolean = true;\n showFormSections: boolean = true;\n\n constructor(\n public rendererService: KwikIDRendererService,\n private hostElement: ElementRef\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.rendererService.setFormsList(\n this.userConfig.userFormFields[formStepKey]\n );\n } else if (Array.isArray(this.userConfig.userFormFields)) {\n this.rendererService.setFormsList(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();\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();\n }\n if (verifyChange(\"apiCallResponse\")) {\n this.apiCallResponse = changes.apiCallResponse.currentValue;\n this.loader = false;\n }\n }\n\n async initializeForms() {\n this.loader = true;\n\n this.rendererService.setAllFormsData(this.formsData);\n\n this.rendererService.updateFormsList();\n\n this.handleResize(this.rendererService.formsList);\n\n if (\n this.rendererService.formsList.length !==\n this.rendererService.formsListCompleted.length\n ) {\n await this.handleOnClickSetActiveForm(\n this.rendererService.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 handleResize(formsList: any[]) {\n if (this.hostElement.nativeElement.offsetWidth < 600) {\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.rendererService.isMobileView = true;\n } else {\n this.rendererService.isMobileView = false;\n }\n }\n\n // forms-list listener\n @logMethod\n async handleOnClickSetActiveForm(selectedForm: string) {\n this.showForm = false;\n this.loader = true;\n\n const activeFormConfig = this.rendererService.formsList.find((form) => {\n if (form.key === selectedForm) {\n return form;\n }\n });\n\n let formConfig = await this.rendererService.fetchFormConfig(\n activeFormConfig.formContent.url\n );\n\n formConfig = new Converter().convertFormConfig(formConfig);\n\n const activeFormData =\n this.rendererService.allFormsData[formConfig.key] ?? {};\n this.rendererService.setActiveFormData(activeFormData);\n\n this.rendererService.setActiveFormConfig({\n ...activeFormConfig,\n ...formConfig\n });\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 // forms-list listener\n @logMethod\n handleOnClickSubmitForms(e: any) {\n console.log(e);\n\n if (this.userConfig.userFormFieldsConfig.validation) {\n const validations = new Validations(\n {\n USER_CONFIG: this.userConfig,\n ALL_FORMS_DATA: this.formsData\n },\n this.takeAction.bind(this)\n );\n\n (async () => {\n await validations.validate(\n this.userConfig.userFormFieldsConfig.validation\n );\n\n if (this.userConfig.userFormFieldsConfig.status === \"completed\") {\n this.onClickSubmit.emit(e);\n } else {\n this.toggleErrorNotification(true);\n setTimeout(() => {\n this.toggleErrorNotification(false);\n }, 3000);\n }\n })();\n }\n }\n\n // form-view listener\n handleOnClickApiCall(e: any) {\n this.loader = true;\n this.onClickApiCall.emit(e);\n }\n\n // form-view listener\n handleGetActiveFormData(e: any) {\n this.loader = true;\n this.getFormData.emit({\n [this.rendererService.activeFormConfig.key]: e[\"data\"]\n });\n }\n\n // form-view listener\n handleOnClickSaveForm(e: any) {\n this.loader = true;\n\n this.rendererService.setActiveFormData({});\n\n this.getFormData.emit({\n [this.rendererService.activeFormConfig.key]: e[\"data\"]\n });\n }\n\n // form-view listener\n handleOnClickViewForms(e: any) {\n this.showFormSections = true;\n this.showForm = false;\n this.showFormFields = false;\n }\n\n showErrorNotification: boolean = false;\n toggleErrorNotification(show) {\n this.showErrorNotification = show;\n }\n\n async takeAction(action: any, userConfig: any, formsData: any) {\n switch (action.key) {\n case EActionKey.SET_VALUE:\n const sources = new Sources({\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","<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]=\"rendererService.isMobileView\"\n >\n <kwikid-forms-list\n [showFormFields]=\"this.showFormFields\"\n [userConfig]=\"this.userConfig\"\n [formsList]=\"this.rendererService.formsList\"\n [formsListCompleted]=\"this.rendererService.formsListCompleted\"\n [isMobileView]=\"this.rendererService.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=\"this.showForm && this.showFormFields\"\n [class.active]=\"showFormFields\"\n [class.mobile]=\"rendererService.isMobileView\"\n [@panelInOut]\n >\n <kwikid-form-view\n [formConfig]=\"this.rendererService.activeFormConfig\"\n [formData]=\"this.rendererService.activeFormData\"\n [apiCallResponse]=\"this.apiCallResponse\"\n [formsList]=\"this.rendererService.formsList\"\n [allFormsData]=\"this.rendererService.allFormsData\"\n [isMobileView]=\"this.rendererService.isMobileView\"\n (onClickApiCall)=\"this.handleOnClickApiCall($event)\"\n (onClickViewForms)=\"this.handleOnClickViewForms($event)\"\n (onClickSaveForm)=\"this.handleOnClickSaveForm($event)\"\n (getActiveFormData)=\"this.handleGetActiveFormData($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=\"tuiIconCancel\"\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 { KwikIDFormsBuilderComponent } from \"./builder.component\";\n\n@NgModule({\n declarations: [KwikIDFormsBuilderComponent],\n imports: [CommonModule, FormsModule, ReactiveFormsModule, DragDropModule],\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\";\n\n@NgModule({\n declarations: [KwikIDFormViewComponent],\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\";\n\n@NgModule({\n declarations: [KwikIDFormsListComponent],\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\";\nimport { KwikIDRendererService } from \"./renderer/renderer.service\";\n\n@NgModule({\n declarations: [],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n KwikIDFormBuilderModule,\n KwikIDFormRendererModule\n ],\n exports: [KwikIDFormBuilderModule, KwikIDFormRendererModule],\n providers: [KwikIDRendererService]\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":["hasKey","isEmpty","isNotEmpty","handleJPQueryResponse","jpQueryWrapper","i1.KwikIDFormViewService","i1","i2","i3","Validations","i1.KwikIDRendererService","i2.KwikIDFormsListComponent","i3.KwikIDFormViewComponent","i5","i6"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"kwikid-forms.js","sources":["../../../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/actions/form-view.actions.enum.definitions.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/definitions/apis/form-view.apis.enum.definitions.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/definitions/common/form-view.common.enum.definitions.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/definitions/fields/form-view.fields.enum.definitions.ts","../../../projects/kwikid-forms/src/lib/renderer/renderer.helper.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/helpers/form-view.common.helper.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.fields.helper.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/helpers/form-view.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/forms-list.component.ts","../../../projects/kwikid-forms/src/lib/renderer/forms-list/forms-list.component.html","../../../projects/kwikid-forms/src/lib/renderer/renderer.config-converter.helper.ts","../../../projects/kwikid-forms/src/lib/renderer/renderer.service.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":["import { copyArrayItem, moveItemInArray } from \"@angular/cdk/drag-drop\";\nimport { Component, OnInit, VERSION } from \"@angular/core\";\nimport { FormControl, FormGroup } from \"@angular/forms\";\nimport {\n KwikUIButtonComponent,\n KwikUIInputComponent,\n KwikUIProgressSegmentedComponent\n} from \"kwikui\";\nimport { cloneDeep } from \"lodash\";\n\ntype IMenu = {\n title: string;\n id?: string;\n key?: string;\n temp?: string;\n component?: any;\n props?: any;\n};\n\n@Component({\n selector: \"kwikid-forms-builder\",\n templateUrl: \"./builder.component.html\",\n styleUrls: [\"./builder.component.scss\"]\n})\nexport class KwikIDFormsBuilderComponent implements OnInit {\n buttonComponent = {\n disabled: false,\n id: \"\",\n label: \"Button\",\n showLoader: false,\n styles: \"\",\n class: \"tui-space_right-3 tui-space_bottom-3\",\n type: \"button\",\n appearance: \"primary\",\n icon: \"\",\n iconRight: \"\",\n shape: null,\n size: \"m\"\n };\n\n progressSegmentedComponent = {\n colors: \"tui(--tui-primary)\",\n max: \"5\",\n size: \"m\",\n value: \"2\"\n };\n\n inputComponent = {\n case: \"default\",\n disabled: false,\n focus: false,\n id: \"id\",\n invalid: false,\n label: \"label\",\n placeholder: \"placeholder\",\n type: \"text\",\n validators: {\n required: true\n }\n };\n\n formGroup = new FormGroup({});\n\n constructor() {}\n\n ngOnInit() {\n for (let m of this.menu) {\n m.id = this.revisedRandId();\n }\n }\n\n revisedRandId() {\n return Math.random()\n .toString(36)\n .replace(/[^a-z]+/g, \"\");\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 this.formGroup.controls[id][\"controls\"][key].patchValue(_value);\n }\n\n toggleShow(id: any) {\n console.log(id);\n }\n\n name = \"Angular \" + VERSION.major;\n menu: Array<IMenu> = [\n {\n title: \"button\",\n key: \"button\",\n component: KwikUIButtonComponent,\n props: this.buttonComponent\n },\n {\n title: \"progress-segmented\",\n key: \"progress_segmented\",\n component: KwikUIProgressSegmentedComponent,\n props: this.progressSegmentedComponent\n },\n {\n title: \"input\",\n key: \"input\",\n component: KwikUIInputComponent,\n props: this.inputComponent\n }\n ];\n table: Array<IMenu> = [];\n\n drop(event: any) {\n // let item = JSON.parse(JSON.stringify(event));\n if (event.previousContainer !== event.container) {\n console.log(\"copying\");\n\n // Clone the item that was dropped.\n let clone = cloneDeep(event.previousContainer.data[event.previousIndex]);\n clone.id = clone.key + \"__\" + this.revisedRandId();\n event.previousContainer.data[event.previousIndex] = clone;\n\n let newFormGroup = new FormGroup({});\n\n const props = clone.props;\n\n Object.keys(props).forEach((key) => {\n newFormGroup.addControl(\n key,\n new FormControl({ value: props[key], disabled: false })\n );\n });\n\n this.formGroup.addControl(clone.id, newFormGroup);\n\n copyArrayItem(\n event.previousContainer.data,\n event.container.data,\n event.previousIndex,\n event.currentIndex\n );\n } else {\n console.log(\"moving\");\n moveItemInArray(\n event.container.data,\n event.previousIndex,\n event.currentIndex\n );\n }\n if (event.previousContainer.data) {\n this.menu = this.menu.filter((f) => !f.temp);\n }\n }\n\n exited(event: any) {\n const currentIdx = event.container.data.findIndex(\n (f: { id: any }) => f.id === event.item.data.id\n );\n this.menu.splice(currentIdx + 1, 0, {\n ...event.item.data,\n temp: true\n });\n }\n\n entered() {\n this.menu = this.menu.filter((f) => !f.temp);\n }\n\n isNumber(val: any) {\n return typeof val;\n }\n\n removeElement(idx: number, id: string) {\n this.formGroup.removeControl(id);\n this.table.splice(idx, 1);\n }\n\n getJSON() {\n for (let t of this.table) {\n t.props = this.formGroup.getRawValue()[t.id];\n }\n console.log(this.table);\n }\n}\n","<!-- <div>{{ name }}</div>\n<p>Start editing to see some magic happen :)</p>\n\n<button (click)=\"getJSON()\">Get JSON</button>\n\n<div class=\"drap-copy\">\n <div>\n <ul\n class=\"menu\"\n cdkDropList\n #menuList=\"cdkDropList\"\n [cdkDropListData]=\"menu\"\n cdkDropListSortingDisabled\n [cdkDropListConnectedTo]=\"[tableList]\"\n (cdkDropListDropped)=\"drop($event)\"\n (cdkDropListExited)=\"exited($event)\"\n (cdkDropListEntered)=\"entered()\"\n >\n <li class=\"item\" *ngFor=\"let item of menu\" cdkDrag [cdkDragData]=\"item\">\n <div class=\"item\" *cdkDragPlaceholder>\n <a>{{ item.title }}</a>\n </div>\n <ng-container *ngComponentOutlet=\"item.component\"> </ng-container>\n </li>\n </ul>\n </div>\n\n <div\n class=\"table\"\n cdkDropList\n #tableList=\"cdkDropList\"\n [cdkDropListData]=\"table\"\n (cdkDropListDropped)=\"drop($event)\"\n >\n <div class=\"content\">\n <div>\n <div class=\"item\" *ngFor=\"let item of table; let idx = index\" cdkDrag>\n <ng-container *ngComponentOutlet=\"item.component\"> </ng-container>\n <div class=\"item-header\">\n <p>{{ idx }}--{{ item.title }}</p>\n <button (click)=\"removeElement(idx, item.id)\">Remove</button>\n </div>\n <div class=\"desc\">\n <div>id - {{ item.id }}</div>\n <div>key - {{ item.key }}</div>\n </div>\n <ng-container\n *ngTemplateOutlet=\"formModal; context: item\"\n ></ng-container>\n </div>\n </div>\n </div>\n </div>\n</div>\n<ng-template #formModal let-component=\"component\" let-props=\"props\" let-id=\"id\">\n <div class=\"field_editor\">\n <div *ngFor=\"let i of props | keyvalue; let idx = index\">\n <div class=\"formModalInputGroup\">\n <label>{{ i.key }}</label>\n <input\n value=\"{{ i.value }}\"\n (keyup)=\"handleOnChange($event, id, i.key, idx)\"\n />\n </div>\n </div>\n </div>\n</ng-template> -->\n","export enum EActionKey {\n SET_VALUE = \"SET_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","export enum EApiStatusType {\n DEFAULT = \"default\",\n LOADING = \"loading\",\n SUCCESS = \"success\",\n FAILED = \"failed\"\n}\n","export enum EPatternKey {\n CUSTOM = \"CUSTOM\",\n IS_ADDRESS = \"IS_ADDRESS\",\n IS_ALPHA = \"IS_ALPHA\",\n IS_ALPHANUMERIC = \"IS_ALPHANUMERIC\",\n IS_BOOLEAN = \"IS_BOOLEAN\",\n IS_EMAIL = \"IS_EMAIL\",\n IS_EMPTY = \"IS_EMPTY\",\n IS_FALSE = \"IS_FALSE\",\n IS_HTML = \"IS_HTML\",\n IS_INTEGER = \"IS_INTEGER\",\n IS_IP_ADDRESS = \"IS_IP_ADDRESS\",\n IS_JSON = \"IS_JSON\",\n IS_LOWERCASE = \"IS_LOWERCASE\",\n IS_NOT_EMPTY = \"IS_NOT_EMPTY\",\n IS_NUMBER = \"IS_NUMBER\",\n IS_TRUE = \"IS_TRUE\",\n IS_UPPERCASE = \"IS_UPPERCASE\",\n IS_URL = \"IS_URL\",\n IS_AADHAAR_NUMBER = \"IS_AADHAAR_NUMBER\",\n IS_BANK_ACCOUNT_NO = \"IS_BANK_ACCOUNT_NO\",\n IS_BANK_SWIFT_CODE = \"IS_BANK_SWIFT_CODE\",\n IS_BIRTH_CERTIFICATE_NO = \"IS_BIRTH_CERTIFICATE_NO\",\n IS_CHEQUE_NO = \"IS_CHEQUE_NO\",\n IS_CIN = \"IS_CIN\",\n IS_CREDIT_CARD_NO = \"IS_CREDIT_CARD_NO\",\n IS_DRIVING_LICENSE = \"IS_DRIVING_LICENSE\",\n IS_GSTIN = \"IS_GSTIN\",\n IS_IFSC_NO = \"IS_IFSC_NO\",\n IS_MICR_CODE = \"IS_MICR_CODE\",\n IS_MOBILE_NO = \"IS_MOBILE_NO\",\n IS_MOBILE_NO_IN = \"IS_MOBILE_NO_IN\",\n IS_NEFT_OR_RTGS_NO = \"IS_NEFT_OR_RTGS_NO\",\n IS_PAN_NUMBER = \"IS_PAN_NUMBER\",\n IS_PASSPORT = \"IS_PASSPORT\",\n IS_PHONE_NO = \"IS_PHONE_NO\",\n IS_PINCODE = \"IS_PINCODE\",\n IS_PURCHASE_ORDER_NO = \"IS_PURCHASE_ORDER_NO\",\n IS_RATION_CARD_NO = \"IS_RATION_CARD_NO\",\n IS_SERVICE_TAX_NO = \"IS_SERVICE_TAX_NO\",\n IS_SOCIAL_SECURITY_NO = \"IS_SOCIAL_SECURITY_NO\",\n IS_UPI_TRANSACTION_REFERENCE_NO = \"IS_UPI_TRANSACTION_REFERENCE_NO\",\n IS_VAT_TIN_NO = \"IS_VAT_TIN_NO\",\n IS_VEHICLE_REGISTRATION_NO = \"IS_VEHICLE_REGISTRATION_NO\",\n IS_VOTER_ID = \"IS_VOTER_ID\"\n}\n\nexport enum EPattern {\n IS_ALPHA = \"^[a-zA-Z]+$\",\n IS_ADDRESS = \"^(\\\\w*\\\\s*[#-,/.()&]*)+\",\n IS_ALPHANUMERIC = \"^[a-zA-Z0-9]+$\",\n IS_BOOLEAN = \"(true|false)\",\n IS_EMAIL = \"^\\\\w+([\\\\.-]?\\\\w+)*@\\\\w+([\\\\.-]?\\\\w+)*(\\\\.\\\\w{2,3})+$\",\n IS_EMPTY = \"^$\",\n IS_FALSE = \"false\",\n IS_HTML = \"^<([a-z]+)([^<]+)(?:>(.)</\\\\1>|\\\\s+/>)$\",\n IS_INTEGER = \"^[+-]?d+$\",\n IS_IP_ADDRESS = \"^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$\",\n IS_JSON = \"^\\\\s*({(.|\\\\s)}|[(.|\\\\s)])\\\\s*$\",\n IS_LOWERCASE = \"^[a-z]+$\",\n IS_NOT_EMPTY = \"^.+$\",\n IS_NUMBER = \"^[+-]?d+(.d+)?$\",\n IS_TRUE = \"true\",\n IS_UPPERCASE = \"^[A-Z]+$\",\n IS_URL = \"^(?:http(s)?://)?[w.-]+(?:.[w.-]+)+[w-._~:/?#[]@!$&'()*+,;=.]+$\",\n IS_AADHAAR_NUMBER = \"^[0-9]{12}$\",\n IS_BANK_ACCOUNT_NO = \"^[0-9]{9,18}$\",\n IS_BANK_SWIFT_CODE = \"^[A-Z]{4}[A-Z]{2}[0-9A-Z]{2}[0-9A-Z]{3}$\",\n IS_BIRTH_CERTIFICATE_NO = \"^[A-Z]{2}[0-9]{6}[A-Z]{1}[0-9]{2}$\",\n IS_CHEQUE_NO = \"^[0-9]{6,14}$\",\n IS_CIN = \"^[A-Z]{3}[0-9]{5}[0-9A-Z]{3}$\",\n IS_CREDIT_CARD_NO = \"^[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{4}$\",\n IS_DRIVING_LICENSE = \"^[A-Z]{2}[0-9]{2}((19|20)[0-9][0-9])[0-9]{7}$\",\n IS_GSTIN = \"^[0-9]{2}[A-Z]{5}[0-9]{4}[A-Z]{1}[1-9A-Z]{1}Z[0-9A-Z]{1}$\",\n IS_IFSC_NO = \"^[A-Z]{4}[0][A-Z0-9]{6}$\",\n IS_MICR_CODE = \"^[0-9]{9}$\",\n IS_MOBILE_NO = \"^[6-9]\\\\d{9}$\",\n IS_MOBILE_NO_IN = \"^(\\\\+91)[6-9]\\\\d{9}$\",\n IS_NEFT_OR_RTGS_NO = \"^[A-Z]{4}[0-9]{7}$\",\n IS_PAN_NUMBER = \"^[A-Z]{5}[[0-9]{4}[A-Z]{1}$\",\n IS_PASSPORT = \"^[A-PR-WYa-pr-wy][1-9]\\\\d\\\\s?\\\\d{4}[1-9]$\",\n IS_PHONE_NO = \"^[6-9]\\\\d{9}$\",\n IS_PINCODE = \"^[1-9][0-9]{5}$\",\n IS_PURCHASE_ORDER_NO = \"^[0-9]{1,5}$\",\n IS_RATION_CARD_NO = \"^[A-Z]{3}[0-9]{7}$\",\n IS_SERVICE_TAX_NO = \"^[A-Z]{5}[0-9]{4}[A-Z]{1}$\",\n IS_SOCIAL_SECURITY_NO = \"^[0-9]{3}-[0-9]{2}-[0-9]{4}$\",\n IS_UPI_TRANSACTION_REFERENCE_NO = \"^[a-zA-Z0-9]{3,128}@[a-z]{3,9}$\",\n IS_VAT_TIN_NO = \"^[0-9]{11}$\",\n IS_VEHICLE_REGISTRATION_NO = \"^[A-Z]{2}[0-9]{2}((19|20)[0-9][0-9])[0-9]{6}$\",\n IS_VOTER_ID = \"^[A-Z]{3}[0-9]{7}$\"\n}\n\nexport enum EMessageType {\n DEFAULT = \"default\",\n ERROR = \"error\",\n SUCCESS = \"success\",\n WARNING = \"warning\"\n}\n","export 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}\n","import { TuiDay } from \"@taiga-ui/cdk\";\nimport jp from \"jsonpath\";\n\nexport const hasKey = (object: any, key: string): boolean => {\n return object.hasOwnProperty(key);\n};\n\nexport const isEmpty = (value: any): boolean => {\n if (value === \"\" || value === undefined || value === null) {\n return true;\n } else if (\n value &&\n Object.keys(value).length === 0 &&\n Object.getPrototypeOf(value) === Object.prototype\n ) {\n return true;\n } else if (Array.isArray(value)) {\n if (value.length === 0) {\n return true;\n } else {\n return false;\n }\n } else {\n return false;\n }\n};\n\nexport const isNotEmpty = (value: any) => {\n return !isEmpty(value);\n};\n\nexport const handleJPQueryResponse = (value: any): any => {\n /**\n * jp.query doesn't always return an array with one element\n * so directly can't access with [0], need to check conditionally\n */\n if (Array.isArray(value)) {\n if (value.length > 0) {\n value = value[0];\n } else if (value.length === 0) {\n value = \"\";\n }\n }\n\n return value;\n};\n\nexport const jpQueryWrapper = (obj: any, key: string): boolean => {\n return handleJPQueryResponse(jp.query(obj, key));\n};\n\nexport const isSingleForm = (formsList: any[]): boolean => {\n return formsList.length === 1;\n};\n","import { TuiDay } from \"@taiga-ui/cdk\";\nimport jp from \"jsonpath\";\nimport _ from \"lodash\";\nimport { EFieldType } from \"../definitions/fields/form-view.fields.enum.definitions\";\nimport {\n TField,\n TFieldRadio,\n TFieldType\n} from \"../definitions/fields/form-view.fields.type.definitions\";\n\nexport const hasKey = (object: any, key: string): boolean => {\n return object.hasOwnProperty(key);\n};\n\nexport const hasPath = (object: any, path: string): boolean => {\n return _.has(object, path);\n};\n\nexport const isEmptyString = (value: string): boolean => {\n return value === \"\";\n};\nexport const isUndefined = (value: any): boolean => {\n return value === undefined;\n};\nexport const isNull = (value: any): boolean => {\n return value === null;\n};\nexport const isEmptyObject = (object: any): boolean => {\n return (\n object &&\n Object.keys(object).length === 0 &&\n Object.getPrototypeOf(object) === Object.prototype\n );\n};\nexport const isEmptyArray = (arr: any[]): boolean => {\n return arr.length === 0;\n};\n\nexport const isEmpty = (value: any): boolean => {\n if (isEmptyString(value) || isUndefined(value) || isNull(value)) {\n return true;\n } else if (isEmptyObject(value)) {\n return true;\n } else if (Array.isArray(value)) {\n if (isEmptyArray(value)) {\n return true;\n } else {\n return false;\n }\n } else {\n return false;\n }\n};\n\nexport const isNotEmpty = (value: any) => {\n return !isEmpty(value);\n};\n\nexport const isEmptyBrowserStorageValue = (value: any) => {\n return isNull(value) && isUndefined(value);\n};\n\nexport const isNotEmptyBrowserStorageValue = (value: any) => {\n return !isEmptyBrowserStorageValue(value);\n};\n\nexport const handleJPQueryResponse = (value: any): any => {\n /**\n * jp.query doesn't always return an array with one element\n * so directly can't access with [0], need to check conditionally\n */\n if (Array.isArray(value)) {\n if (value.length > 0) {\n value = value[0];\n } else if (value.length === 0) {\n value = \"\";\n }\n } else {\n value = \"\";\n }\n\n return value;\n};\n\nexport const jpQueryWrapper = (obj: any, key: string) => {\n return handleJPQueryResponse(jp.query(obj, key));\n};\n\nexport const replaceString = (\n str: string,\n find: string,\n replace: string\n): string => {\n return str.replace(new RegExp(find, \"g\"), replace);\n};\n\nexport const setFieldKeyValue = (field: any, path: string, value: any): any => {\n return _.set(field, path, value);\n};\n\nexport const setValueToObject = (\n object: any,\n path: string,\n value: any\n): any => {\n return _.set(object, path, value);\n};\n\nexport const formatValue = (field: TField, fieldValue: any): any => {\n const fieldType: TFieldType = field.type;\n let value: any;\n\n if (isNotEmpty(fieldValue)) {\n switch (fieldType) {\n case EFieldType.DATE:\n const splitDate = fieldValue.split(\"-\");\n value = 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 break;\n case EFieldType.RADIO:\n const fieldRadio = field as TFieldRadio;\n value = fieldRadio.options.find((item: any) => {\n return item.label === fieldValue;\n });\n break;\n case EFieldType.CHECKBOX:\n value = Boolean(fieldValue);\n break;\n default:\n value = fieldValue;\n break;\n }\n } else {\n value = fieldValue;\n }\n\n return value;\n};\n\nexport const setEmptyValue = (field: TField): 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 {\n Actions,\n Condition,\n logMethod,\n Rules,\n Sources,\n TAction,\n TRule\n} from \"kwikid-toolkit\";\nimport { isEmpty } from \"../../renderer.helper\";\nimport { TField } from \"../definitions/fields/form-view.fields.type.definitions\";\nimport { TTrigger } from \"../definitions/triggers/form-view.triggers.type.definitions\";\nimport { TValidation } from \"../definitions/validations/form-view.validations.type.definitions\";\nimport { setEmptyValue, setValueToObject } from \"./form-view.common.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 getDefaultValue() {\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 Sources({\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 // Set the Value of current source.\n this._field = setValueToObject(\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 Rules(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 Actions(\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 (isEmpty(defaultValue)) {\n defaultValue = setEmptyValue(this._field);\n }\n\n return defaultValue;\n }\n\n async getDefaultDropdownOptions() {\n const optionsConfig = this._field.default.options;\n\n const rules = optionsConfig.rules;\n const actions = optionsConfig.actions;\n\n const rulesMapping = new Rules(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 Actions(\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 { TuiDay } from \"@taiga-ui/cdk\";\nimport { EFieldType } from \"../definitions/fields/form-view.fields.enum.definitions\";\nimport { TField } from \"../definitions/fields/form-view.fields.type.definitions\";\nimport { checkObjectKeyExists, isNotEmptyValue } from \"kwikid-toolkit\";\n\nexport const findFieldFromKey = (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 findFieldIndexFromKey = (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 getSearchTextOptionsFromRemoteFile = async (\n field: any,\n childField: any,\n formGroup: any\n): Promise<any> => {\n const parentFieldValue = formGroup.controls[field.key].value;\n\n // Determine the URL of the remote file to fetch\n let fileUrl: string | undefined;\n if (childField.regexToGetJsonRemoteUrlKey) {\n const fileKey = parentFieldValue.match(\n childField.regexToGetJsonRemoteUrlKey\n )[0];\n fileUrl = childField.jsonRemoteUrlMapping[fileKey];\n } else {\n fileUrl = childField.fileUrl;\n }\n\n // Return early if there is no file URL\n if (!fileUrl) return;\n\n // Fetch the remote file and parse its JSON data\n const response = await fetch(fileUrl);\n const data = await response.json();\n\n // Return the data for the given parent field value\n return data[parentFieldValue];\n};\n\nexport const getSearchTextOptionsFromFieldConfig = (\n field: any,\n childField: any,\n formGroup: any\n): any => {\n let options: any;\n\n const fieldValue = formGroup.controls[field.key].value;\n\n if (isNotEmptyValue(childField[\"json\"])) {\n options = childField[\"json\"][fieldValue];\n }\n\n return options;\n};\n\nexport const formatSearchTextOptions = (\n options: { title: string; value: string }[]\n): string[] => {\n return options.map(({ title }) => title);\n};\n\nexport function highlightFieldError(field: any, error: any): any {\n field.invalid = error;\n field.focus = error;\n\n // if (!error) {\n // field[\"messages\"] = field[\"messages\"].filter(function (fieldMessage: {\n // type: string;\n // message: string;\n // }) {\n // return fieldMessage.type === \"error\";\n // });\n // }\n\n return field;\n}\n\nexport const addMessage = (\n field: any,\n message: { type: string; message: string }\n): any => {\n const isDuplicateMessage = (\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 (!isDuplicateMessage(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};\nexport const removeMessage = (\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 setFieldError(\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 = addMessage(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] = highlightFieldError(fields[fieldIndex], error);\n\n return fields;\n}\n\nexport const convertDateStringToTuiDayFormat = (date: string): 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 convertTuiDayFormatToDateString = (date: TuiDay): 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 convertValueFromKwikUIFormatToBasicFormat = (\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 convertedValue = convertTuiDayFormatToDateString(value);\n break;\n case EFieldType.RADIO:\n convertedValue = value.label;\n default:\n break;\n }\n }\n\n return convertedValue;\n};\n\nexport const convertValueFromBasicFormatToKwikUIFormat = (\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 = convertDateStringToTuiDayFormat(value);\n break;\n case EFieldType.TITLE:\n break;\n default:\n break;\n }\n }\n\n return convertedValue;\n};\n","import {\n FormArray,\n FormGroup,\n ValidationErrors,\n Validators\n} from \"@angular/forms\";\nimport {\n Actions,\n Condition,\n logMethod,\n Rules,\n checkObjectKeyExists,\n isNotEmptyValue\n} from \"kwikid-toolkit\";\nimport {\n EPattern,\n EPatternKey\n} from \"../definitions/common/form-view.common.enum.definitions\";\nimport { TField } from \"../definitions/fields/form-view.fields.type.definitions\";\n\nexport class Validations {\n private _formData: any;\n get formData(): any {\n return this._formData;\n }\n set formData(value: any) {\n this._formData = value;\n }\n\n private _previousFormData: any;\n get previousFormData(): any {\n return this._previousFormData;\n }\n set previousFormData(value: any) {\n this._previousFormData = value;\n }\n\n private _allFormsData: any;\n get allFormsData(): any {\n return this._allFormsData;\n }\n set allFormsData(value: any) {\n this._allFormsData = value;\n }\n\n private _field: TField;\n get field(): TField {\n return this._field;\n }\n set field(value: TField) {\n this._field = value;\n }\n\n private _formFields: any[];\n get formFields(): any[] {\n return this._formFields;\n }\n set formFields(value: any[]) {\n this._formFields = value;\n }\n\n private _takeAction: Function;\n\n constructor(\n field: TField,\n formFields: any[],\n formData: any,\n previousFormData: any,\n allFormsData: any,\n takeAction: any\n ) {\n this._field = field;\n this._formFields = formFields;\n this._formData = formData;\n this._previousFormData = previousFormData;\n this._allFormsData = allFormsData;\n this._takeAction = takeAction;\n }\n\n @logMethod\n getFieldValidators(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 === EPatternKey.CUSTOM) {\n validators.push(Validators.pattern(field.validators.pattern.pattern));\n } else {\n validators.push(\n Validators.pattern(EPattern[field.validators.pattern.key])\n );\n }\n }\n }\n\n return validators;\n }\n\n @logMethod\n getFormValidationErrors(\n control: FormGroup\n ): { name: string; value: string }[] {\n let errors: { name: string; value: string }[] = [];\n\n for (const key in control.controls) {\n const controlErrors: ValidationErrors = control.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 findInvalidControlsRecursive(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 @logMethod\n async validateField(): Promise<any> {\n const validations = this._field.validation;\n\n const triggers = validations.triggers;\n const rules = validations.rules;\n const actions = validations.actions;\n\n const rulesMapping = new Rules(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 Actions(\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 { FormControl, FormGroup } from \"@angular/forms\";\nimport { logMethod } from \"kwikid-toolkit\";\nimport { Defaults } from \"./helpers/form-view.defaults.helper\";\nimport { convertValueFromBasicFormatToKwikUIFormat } from \"./helpers/form-view.fields.helper\";\nimport { Validations } from \"./helpers/form-view.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.getDefaultValue();\n value = convertValueFromBasicFormatToKwikUIFormat(field, value);\n\n const validators = new Validations(\n field,\n fields,\n formData,\n previousFormData,\n allFormsData,\n takeAction\n ).getFieldValidators(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 Actions,\n Condition,\n logMethod,\n Rules,\n Sources,\n TRule,\n TSource\n} from \"kwikid-toolkit\";\nimport { TAction } from \"../definitions/actions/form-view.actions.type.definitions\";\nimport {\n TApi,\n TApiRequest,\n TApiRequestBody,\n TApiRequestBodyParam,\n TApiResponse,\n TApiStatus\n} from \"../definitions/apis/form-view.apis.type.definitions\";\nimport { TFieldApiCall } from \"../definitions/fields/form-view.fields.type.definitions\";\nimport { TTrigger } from \"../definitions/triggers/form-view.triggers.type.definitions\";\nimport { TValidation } from \"../definitions/validations/form-view.validations.type.definitions\";\nimport { setValueToObject } from \"./form-view.common.helper\";\n\nexport class Apis {\n private _formData: any;\n private _formFields: any[];\n private _previousFormData: any;\n private _allFormsData: any;\n private _field: TFieldApiCall;\n private _takeAction: Function;\n\n private _api: TApi;\n private _request: TApiRequest;\n private _response: TApiResponse;\n private _status: TApiStatus;\n\n constructor(\n field: TFieldApiCall,\n formFields: any[],\n formData: any,\n previousFormData: any,\n allFormsData: any,\n takeAction: Function\n ) {\n this._field = field;\n this._formFields = formFields;\n this._formData = formData;\n this._previousFormData = previousFormData;\n this._allFormsData = allFormsData;\n this._takeAction = takeAction;\n\n this._api = field.api;\n this._request = field.api.request;\n this._response = field.api.response;\n this._status = field.api.status;\n }\n\n @logMethod\n public async setRequestBodyParams(): 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 Sources({\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\n const value = sources.getValueFromSource(source);\n // Set the Value of current source.\n this._field = setValueToObject(\n this._field,\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 Rules(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 Actions(\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 paramIndex++;\n }\n\n return this._field;\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 Rules(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 conditionSuccess = new Condition(\n action.condition,\n rulesMapping\n ).evaluate();\n\n if (conditionSuccess) {\n const actions = new Actions(\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 return this._field;\n }\n\n @logMethod\n public async validateApiCallResponse(): 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 Rules(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 conditionSuccess = new Condition(\n action.condition,\n rulesMapping\n ).evaluate();\n\n if (conditionSuccess) {\n const actions = new Actions(\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 return this._field;\n }\n\n getPropsValues(): any {\n return {\n field: this._field,\n formFields: this._formFields,\n formData: this._formData,\n previousFormData: this._previousFormData,\n allFormsData: this._allFormsData\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 Actions,\n checkObjectKeyExists,\n Condition,\n getObjectValueFromPath,\n isEmptyValue,\n isNotEmptyValue,\n isUndefined,\n logMethod,\n replaceString,\n Rules,\n Sources,\n TAction\n} from \"kwikid-toolkit\";\nimport { pairwise } from \"rxjs/operators\";\nimport { EActionKey } from \"./definitions/actions/form-view.actions.enum.definitions\";\nimport { EApiStatusType } from \"./definitions/apis/form-view.apis.enum.definitions\";\nimport { EMessageType } from \"./definitions/common/form-view.common.enum.definitions\";\nimport { TMessage } from \"./definitions/common/form-view.common.type.definitions\";\nimport { EFieldType } from \"./definitions/fields/form-view.fields.enum.definitions\";\nimport {\n TField,\n TFieldApiCall,\n TFieldTitle\n} from \"./definitions/fields/form-view.fields.type.definitions\";\nimport { KwikIDFormViewService } from \"./form-view.service\";\nimport { Apis } from \"./helpers/form-view.apis.helper\";\nimport { setEmptyValue } from \"./helpers/form-view.common.helper\";\nimport { Defaults } from \"./helpers/form-view.defaults.helper\";\nimport {\n addMessage,\n convertValueFromKwikUIFormatToBasicFormat,\n findFieldFromKey,\n findFieldIndexFromKey,\n highlightFieldError,\n removeMessage,\n setFieldError\n} from \"./helpers/form-view.fields.helper\";\nimport { Validations } from \"./helpers/form-view.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 apiCallResponse: any = {};\n\n @Input()\n isMobileView: boolean = false;\n\n @Input()\n allFormsData: any;\n\n @Input()\n formsList: 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 @Output()\n getActiveFormData: 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(\"apiCallResponse\")) {\n this.apiCallResponse = changes.apiCallResponse.currentValue;\n\n this.formData = {\n ...this.formData,\n [this.apiCallResponse.key]: this.apiCallResponse.response\n };\n\n this.formGroup.patchValue(\n {\n [this.apiCallResponse.key]: this.apiCallResponse.response\n },\n { emitEvent: false }\n );\n\n let field: TFieldApiCall = findFieldFromKey(\n this.formFields,\n this.apiCallResponse.key\n );\n\n const apis = new Apis(\n field,\n this.formFields,\n this.formData,\n this.previousFormData,\n this.allFormsData,\n this.takeAction.bind(this)\n );\n\n (async () => {\n field = await apis.validateApiCallResponse();\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(\"formsList\")) {\n this.formsList = changes.formsList.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 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.formGroup.controls[field.key].valueChanges\n .pipe(pairwise())\n .subscribe(([previousValue, currentValue]) => {\n this.previousFormData = {\n ...this.previousFormData,\n [field.key]: previousValue\n };\n\n this.formData = {\n ...this.formData,\n [field.key]: currentValue\n };\n });\n }\n }\n for (let field of this.formFields) {\n if (field.isFormElement) {\n if (field.validation.triggers.includes(\"ON_INIT\")) {\n const validations = new Validations(\n field,\n this.formFields,\n this.formData,\n this.previousFormData,\n this.allFormsData,\n this.takeAction.bind(this)\n );\n\n (async () => {\n await validations.validateField();\n })();\n }\n if (checkObjectKeyExists(field, \"connectedElements\")) {\n if (\n checkObjectKeyExists(field.connectedElements, \"connectedFields\")\n ) {\n this.handleConnectedElements(\n {\n key: field.key,\n value: this.formGroup.controls[field.key].value\n },\n \"ON_INIT\"\n );\n }\n }\n if (checkObjectKeyExists(field, \"default\")) {\n if (checkObjectKeyExists(field.default, \"options\")) {\n if (field.default.options.triggers.includes(\"ON_INIT\")) {\n const defaults = new Defaults(\n field,\n this.formFields,\n this.allFormsData,\n this.formData,\n this.previousFormData,\n this.takeAction\n );\n\n await defaults.getDefaultDropdownOptions();\n }\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 Rules(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 Actions(\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 Rules(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 Actions(\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 = findFieldFromKey(\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 if (checkObjectKeyExists(connectedField, \"connectedElements\")) {\n if (\n checkObjectKeyExists(\n connectedField.connectedElements,\n \"connectedFields\"\n )\n ) {\n for (const connectedFieldConfig of connectedField.connectedElements\n .connectedFields) {\n connectedField = this.handleConnectedElementFields(\n connectedField,\n connectedFieldConfig,\n eventType,\n \"NESTED\"\n );\n }\n }\n }\n }\n }\n return currentField;\n }\n\n @logMethod\n async handleConnectedElements(e: any, eventType: string) {\n let currentField = findFieldFromKey(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 // Currently set only for dropdown-with-search connected fields\n let field = findFieldFromKey(this.formFields, e.key);\n\n if (\n field.isFormElement &&\n field.validation.triggers.includes(\"ON_CHANGE\")\n ) {\n const validations = new Validations(\n field,\n this.formFields,\n this.formData,\n this.previousFormData,\n this.allFormsData,\n this.takeAction.bind(this)\n );\n\n (async () => {\n await validations.validateField();\n })();\n }\n\n if (\n field.isFormElement &&\n checkObjectKeyExists(field, \"connectedElements\")\n ) {\n if (checkObjectKeyExists(field.connectedElements, \"connectedFields\")) {\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\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 = findFieldFromKey(\n this.formFields,\n action.props.fieldKey\n );\n const actions = new Actions(\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 = findFieldFromKey(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 field,\n this.formFields,\n this.formData,\n this.previousFormData,\n this.allFormsData,\n this.takeAction.bind(this)\n );\n\n field = await apis.setRequestBodyParams();\n\n field = await apis.validateRequestBody();\n\n if (field.api.request.body.validation.is_valid) {\n // Call API Here\n this.onClickApiCall.emit({\n key: e.key,\n request: {\n mode: \"POST\",\n body: field.api.request.body.value,\n headers: {},\n url: field.api.request.url\n }\n });\n } else {\n // Request Body Validation Failed\n // Highlight Error in UI to User to Retry After Sometime.\n // Take Actions 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 @logMethod\n handleOnClickViewForms(e: any) {\n this.onClickViewForms.emit({\n clicked: true\n });\n }\n\n @logMethod\n handleOnClickSaveForm(e: any) {\n let formData = this.formGroup.getRawValue();\n\n for (let field of this.formFields) {\n if (field.type !== EFieldType.TITLE) {\n if (field.hidden) {\n delete formData[field.key];\n } else {\n formData[field.key] = convertValueFromKwikUIFormatToBasicFormat(\n field,\n formData[field.key]\n );\n }\n }\n }\n\n for (let field of this.formFields) {\n if (\n field.type !== EFieldType.TITLE &&\n field.validation.triggers.includes(\"ON_SAVE\")\n ) {\n const validations = new Validations(\n field,\n this.formFields,\n formData,\n this.previousFormData,\n this.allFormsData,\n this.takeAction.bind(this)\n );\n\n (async () => {\n await validations.validateField();\n })();\n }\n }\n\n if (this.formGroup.invalid) {\n const controls = new Validations(\n undefined,\n this.formFields,\n formData,\n this.previousFormData,\n this.allFormsData,\n this.takeAction.bind(this)\n ).findInvalidControlsRecursive(this.formGroup);\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 = setFieldError(\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 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 = findFieldFromKey(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 = findFieldFromKey(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 = findFieldFromKey(this.formFields, fieldKey);\n let fieldIndex = this.formFields.findIndex((_: any) => {\n return field.key === _.key;\n });\n\n if (field.type !== EFieldType.TITLE) {\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 = findFieldFromKey(this.formFields, fieldKey);\n let fieldIndex = this.formFields.findIndex((_: any) => {\n return field.key === _.key;\n });\n\n if (field.type !== EFieldType.TITLE) {\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 = findFieldFromKey(this.formFields, fieldKey);\n let fieldIndex = findFieldIndexFromKey(this.formFields, fieldKey);\n\n // Delete the field from the formData object\n delete this.formData[fieldKey];\n\n // Reset the value of the field in the formGroup\n this.formGroup.controls[field.key].reset(setEmptyValue(field), {\n emitEvent: false\n });\n\n // Reset the messages and errors for the field\n field = removeMessage(field, {\n type: EMessageType.WARNING,\n message: \"\"\n });\n field = removeMessage(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 = findFieldFromKey(this.formFields, fieldKey);\n let fieldIndex = this.formFields.findIndex((_: any) => {\n return field.key === _.key;\n });\n\n field = highlightFieldError(field, true);\n field = addMessage(field, message);\n\n this.formFields[fieldIndex] = field;\n }\n\n @logMethod\n fieldErrorHide(fieldKey: string, message: TMessage) {\n let field = findFieldFromKey(this.formFields, fieldKey);\n let fieldIndex = this.formFields.findIndex((_: any) => {\n return field.key === _.key;\n });\n\n field = highlightFieldError(field, false);\n field = removeMessage(field, message);\n\n this.formFields[fieldIndex] = field;\n }\n\n @logMethod\n fieldMessageShow(fieldKey: string, message: TMessage) {\n let field = findFieldFromKey(this.formFields, fieldKey);\n let fieldIndex = this.formFields.findIndex((_: any) => {\n return field.key === _.key;\n });\n\n field = addMessage(field, message);\n\n this.formFields[fieldIndex] = field;\n }\n\n @logMethod\n fieldMessageHide(fieldKey: string, message: TMessage) {\n let field = findFieldFromKey(this.formFields, fieldKey);\n let fieldIndex = this.formFields.findIndex((_: any) => {\n return field.key === _.key;\n });\n\n field = removeMessage(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(\n action: TAction,\n field: TField,\n allFormsData: any,\n formData: any,\n previousFormData: any\n ) {\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_Sources = new Sources(object);\n\n const sourceValue = await setValue_Sources.getValueFromSource(\n action.props.value.source\n );\n setValue_Sources.setValueToSource(\n action.props.value.destination,\n sourceValue\n );\n\n object.FIELD_CONFIG = setValue_Sources.object.FIELD_CONFIG;\n this.formData = setValue_Sources.object.FORM_DATA;\n this.patchFormGroup(this.formData);\n this.allFormsData = setValue_Sources.object.ALL_FORMS_DATA;\n this.previousFormData = setValue_Sources.object.PREVIOUS_FORM_DATA;\n break;\n case EActionKey.SET_DROPDOWN_OPTIONS:\n const setDropdownValue_Sources = new Sources(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({ key: action.props.fieldKey }, \"ACTION\");\n break;\n case EActionKey.CUSTOM:\n break;\n default:\n break;\n }\n }\n}\n","<div\n class=\"kwikid-form-container\"\n *ngIf=\"!this.loading\"\n>\n <div id=\"uf-form-fields-header-container\">\n <div id=\"uf-form-fields-title\">\n {{ this.formConfig.title }}\n </div>\n <div id=\"uf-form-fields-steps\">\n Step {{ this.formConfig.sequenceNo }} of {{ this.formsList.length }}\n </div>\n <hr />\n </div>\n <form\n class=\"kwikid-form show\"\n [formGroup]=\"this.formGroup\"\n >\n <ng-container *ngFor=\"let field of this.formFields; let i = index\">\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)=\"this.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 [max]=\"field?.properties?.max\"\n [min]=\"field?.properties?.min\"\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 [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\"\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 <!-- 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)=\"this.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=\"this.isMobileView\"\n [disabled]=\"viewFormsButton.disabled\"\n id=\"\"\n label=\"View Forms\"\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)=\"this.handleOnClickViewForms($event)\"\n ></kwikui-button>\n <kwikui-button\n [disabled]=\"saveFormButton.disabled\"\n id=\"\"\n label=\"Save\"\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)=\"this.handleOnClickSaveForm($event)\"\n ></kwikui-button>\n </div>\n</div>\n<div\n class=\"kwikid-form-container-loading\"\n *ngIf=\"this.loading\"\n>\n <div\n class=\"large-wrapper\"\n [class.tui-skeleton]=\"this.loading\"\n [class.tui-skeleton_rounded]=\"this.loading\"\n ></div>\n <div\n class=\"large-wrapper\"\n [class.tui-skeleton]=\"this.loading\"\n [class.tui-skeleton_rounded]=\"this.loading\"\n ></div>\n <div\n class=\"large-wrapper\"\n [class.tui-skeleton]=\"this.loading\"\n [class.tui-skeleton_rounded]=\"this.loading\"\n ></div>\n <div\n class=\"large-wrapper\"\n [class.tui-skeleton]=\"this.loading\"\n [class.tui-skeleton_rounded]=\"this.loading\"\n ></div>\n <div\n class=\"large-wrapper\"\n [class.tui-skeleton]=\"this.loading\"\n [class.tui-skeleton_rounded]=\"this.loading\"\n ></div>\n <div\n class=\"large-wrapper\"\n [class.tui-skeleton]=\"this.loading\"\n [class.tui-skeleton_rounded]=\"this.loading\"\n ></div>\n <div\n class=\"large-wrapper\"\n [class.tui-skeleton]=\"this.loading\"\n [class.tui-skeleton_rounded]=\"this.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=\"tuiIconCancel\"\n style=\"color: #fff !important\"\n >\n </tui-svg>\n</tui-push>\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges\n} from \"@angular/core\";\nimport { checkObjectKeyExists, logMethod } 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 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\n isAllFormsCompleted: boolean = true;\n\n constructor() {}\n\n ngOnInit(): void {\n this.isAllFormsCompleted = this.checkIsAllFormsCompleted(this.formsList);\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(\"formsList\")) {\n this.formsList = changes.formsList.currentValue;\n this.isAllFormsCompleted = this.checkIsAllFormsCompleted(this.formsList);\n }\n if (verifyChange(\"isMobileView\")) {\n this.isMobileView = changes.isMobileView.currentValue;\n }\n }\n\n checkIsAllFormsCompleted(formsList: any[]): boolean {\n let isAllFormsCompleted: boolean = true;\n\n for (let forms of formsList) {\n if (forms.status !== \"completed\") {\n isAllFormsCompleted = false;\n break;\n }\n }\n\n return isAllFormsCompleted;\n }\n\n handleOnClickSetActiveForm(selectedForm: string) {\n if (\n this.selectedForm !== selectedForm ||\n (this.isAllFormsCompleted && !this.showFormFields)\n ) {\n this.selectedForm = selectedForm;\n this.onClickSetActiveForm.emit(selectedForm);\n }\n }\n\n handleOnSubmitForms(e: any) {\n this.onClickSubmitForms.emit(e);\n }\n}\n","<div id=\"sidebar-container\">\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.formsList.length }} Steps\n Completed\n </div>\n <kwikui-progress-segmented\n [max]=\"this.formsList.length\"\n size=\"m\"\n [value]=\"this.formsListCompleted.length\"\n ></kwikui-progress-segmented>\n </div>\n <div id=\"uf-sections-container\">\n <div\n *ngFor=\"let form of formsList; let i = index\"\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 (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.title }}\n </div>\n <div class=\"uf-form-section-card-action\">\n <div\n *ngIf=\"form.status === 'completed' && !form.disabled\"\n class=\"uf-form-section-card-action-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-action-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-action-img locked\"\n >\n <tui-svg src=\"tuiIconLock\"></tui-svg>\n </div>\n </div>\n </div>\n </div>\n <div id=\"submit-sidebar-btn-container\">\n <kwikui-button\n [disabled]=\"false\"\n id=\"\"\n label=\"Submit\"\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 { TuiDay } from \"@taiga-ui/cdk\";\nimport {\n logMethod,\n checkObjectKeyExists,\n isEmptyValue,\n isNotEmptyValue\n} from \"kwikid-toolkit\";\nimport { convertDateStringToTuiDayFormat } 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 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 = convertDateStringToTuiDayFormat(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 = convertDateStringToTuiDayFormat(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 \"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 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 \"html\":\n field = formatFieldTypeHtml(field);\n break;\n case \"title\":\n field = formatFieldTypeTitle(field);\n break;\n case \"text\":\n field = formatFieldTypeText(field);\n break;\n case \"checkbox\":\n field = formatFieldTypeCheckbox(field);\n break;\n case \"number\":\n field = formatFieldTypeNumber(field);\n break;\n case \"date\":\n field = formatFieldTypeDate(field);\n break;\n case \"phone\":\n field = formatFieldTypePhone(field);\n break;\n case \"radio\":\n field = formatFieldTypeRadio(field);\n break;\n case \"search-text\":\n field = formatFieldTypeSearchText(field);\n break;\n case \"dropdown-with-search\":\n field = formatFieldTypeDropdownWithSearch(field);\n break;\n case \"api-call\":\n field = formatFieldTypeApiCall(field);\n break;\n case \"otp\":\n field = formatFieldTypeOtp(field);\n break;\n case \"aadhaar-number\":\n field = formatFieldTypeAadhaarNumber(field);\n break;\n default:\n break;\n }\n\n return field;\n };\n\n const getConnectedElementKeyValueObject = (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 getConnectedElementKeyValueObject(field[\"connectedTo\"])\n ];\n } else {\n field[\"connectedTo\"] = field[\"connectedTo\"].map((key: string) => {\n return getConnectedElementKeyValueObject(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 getConnectedElementKeyValueObject(field[\"connectedToParent\"])\n ];\n } else {\n field[\"connectedParentFields\"] = getConnectedElementKeyValueObject(\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 getConnectedElementFieldMapping = (\n field: any,\n connectedFieldMapping: any\n ): any => {\n const getConnectedElementChildFieldMapping = (\n field: any,\n connectedFieldMapping: any\n ): any => {\n if (checkObjectKeyExists(field, \"connectedElements\")) {\n connectedFieldMapping[\"child\"][field.key] = field.connectedElements;\n } else if (\n checkObjectKeyExists(connectedFieldMapping[\"child\"], field.key)\n ) {\n field[\"connectedElements\"] =\n connectedFieldMapping[\"child\"][field.key];\n }\n\n return { field: field, connectedFieldMapping: connectedFieldMapping };\n };\n\n const getConnectedElementParentFieldMapping = (\n field: any,\n connectedFieldMapping: any\n ): any => {\n if (checkObjectKeyExists(connectedFieldMapping[\"child\"], field.key)) {\n for (let connectedParentKey of connectedFieldMapping[\"child\"][\n field.key\n ]) {\n if (\n checkObjectKeyExists(\n connectedFieldMapping[\"parent\"],\n connectedParentKey[\"key\"]\n )\n ) {\n connectedFieldMapping[\"parent\"][connectedParentKey[\"key\"]].push(\n field.key\n );\n } else {\n connectedFieldMapping[\"parent\"][connectedParentKey[\"key\"]] = [\n field.key\n ];\n }\n }\n }\n\n return { field: field, connectedFieldMapping: connectedFieldMapping };\n };\n\n const connectedChildFieldMapping = getConnectedElementChildFieldMapping(\n field,\n connectedFieldMapping\n );\n field = connectedChildFieldMapping[\"field\"];\n connectedFieldMapping =\n connectedChildFieldMapping[\"connectedFieldMapping\"];\n\n const connectedParentFieldMapping = getConnectedElementParentFieldMapping(\n field,\n connectedFieldMapping\n );\n field = connectedParentFieldMapping[\"field\"];\n connectedFieldMapping =\n connectedParentFieldMapping[\"connectedFieldMapping\"];\n\n return connectedFieldMapping;\n };\n\n const updateConnectedElementsKeyValue = (\n field: any,\n connectedFieldMapping: any\n ): any => {\n if (checkObjectKeyExists(connectedFieldMapping[\"child\"], field.key)) {\n field[\"connectedElements\"] = connectedFieldMapping[\"child\"][field.key];\n }\n\n if (checkObjectKeyExists(connectedFieldMapping[\"parent\"], field.key)) {\n field[\"connectedParentFields\"] =\n connectedFieldMapping[\"parent\"][field.key];\n }\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 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 \"text\":\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 connectedFieldMapping: any = {\n parent: {},\n child: {}\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 field = formatFieldKeys(field);\n\n // connectedFieldMapping = getConnectedElementFieldMapping(\n // field,\n // connectedFieldMapping\n // );\n // field = updateConnectedElementsKeyValue(field, connectedFieldMapping);\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","import { Injectable } from \"@angular/core\";\nimport {\n logMethod,\n checkObjectKeyExists,\n} from \"kwikid-toolkit\";\nimport { setValueToObject } from \"./form-view/helpers/form-view.common.helper\";\n\n@Injectable({\n providedIn: \"root\"\n})\nexport class KwikIDRendererService {\n isMobileView = false;\n setIsMobileView(isMobileView: boolean) {\n this.isMobileView = isMobileView;\n }\n\n formsList: any[];\n @logMethod\n setFormsList(formsList: any[]) {\n this.formsList = formsList;\n }\n\n formsListCompleted: string[];\n @logMethod\n setFormsListCompleted(formsListCompleted: any[]) {\n this.formsListCompleted = formsListCompleted;\n }\n\n allFormsData: any = {};\n @logMethod\n setAllFormsData(allFormsData: any[]) {\n this.allFormsData = allFormsData;\n }\n\n activeFormConfig: any;\n @logMethod\n setActiveFormConfig(activeFormConfig: any) {\n this.activeFormConfig = activeFormConfig;\n }\n\n activeFormFields: any[];\n @logMethod\n setActiveFormFields(activeFormFields: any[]) {\n this.activeFormFields = activeFormFields;\n }\n\n activeFormData: any;\n @logMethod\n setActiveFormData(activeFormData: any) {\n this.activeFormData = activeFormData;\n }\n\n constructor() {}\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 @logMethod\n findActiveFormConfig(formsList: any[]): any {\n const activeFormConfig = formsList.find((form) => {\n return form.status === \"editable\" && !form.disabled;\n });\n return activeFormConfig;\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 @logMethod\n markFormInFormsListAsCompleted(\n formsList: any[],\n formsListCompleted: string[]\n ): any[] {\n for (let form of formsList) {\n if (formsListCompleted.includes(form.key)) {\n console.log(formsListCompleted.includes(form.key));\n\n form = setValueToObject(form, \"status\", \"completed\");\n form = setValueToObject(form, \"disabled\", false);\n }\n }\n\n return formsList;\n }\n\n @logMethod\n markFormInFormsListAsDisabled(\n formsList: any[],\n formsListCompleted: string[]\n ): any[] {\n for (let form of formsList) {\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 = setValueToObject(form, \"status\", \"editable\");\n form = setValueToObject(form, \"disabled\", false);\n } else {\n form = setValueToObject(form, \"status\", \"locked\");\n form = setValueToObject(form, \"disabled\", true);\n }\n } else {\n form = setValueToObject(form, \"dependentOn\", []);\n form = setValueToObject(form, \"status\", \"editable\");\n form = setValueToObject(form, \"disabled\", false);\n }\n }\n }\n\n return formsList;\n }\n\n @logMethod\n assignSequenceNoToForm(formsList: any[]): any[] {\n let sequenceNo = 1;\n for (let form of formsList) {\n form.sequenceNo = sequenceNo++;\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 (checkObjectKeyExists(allFormsData, form.key)) {\n currentUserFormAllFormsData = {\n ...currentUserFormAllFormsData,\n [form.key]: allFormsData[form.key]\n };\n }\n }\n\n return currentUserFormAllFormsData;\n }\n\n @logMethod\n updateFormsList() {\n let formsList: any[] = this.formsList;\n let formsListCompleted: string[];\n let activeFormConfig: any;\n\n formsList = this.assignSequenceNoToForm(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 formsList\n );\n\n console.log(JSON.parse(JSON.stringify(formsList)));\n\n formsListCompleted = this.findCompletedFormsList(\n currentUserFormAllFormsData\n );\n\n formsList = this.markFormInFormsListAsCompleted(\n formsList,\n formsListCompleted\n );\n\n formsList = this.markFormInFormsListAsDisabled(\n formsList,\n formsListCompleted\n );\n\n if (formsList.length !== formsListCompleted.length) {\n activeFormConfig = this.findActiveFormConfig(formsList);\n\n this.setActiveFormConfig(activeFormConfig);\n }\n\n this.setFormsList(formsList);\n this.setFormsListCompleted(formsListCompleted);\n }\n}\n","import { animate, style, transition, trigger } from \"@angular/animations\";\nimport {\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges\n} from \"@angular/core\";\nimport {\n checkObjectKeyExists,\n logMethod,\n Sources,\n Validations\n} from \"kwikid-toolkit\";\nimport { EActionKey } from \"./form-view/definitions/actions/form-view.actions.enum.definitions\";\nimport { Converter } from \"./renderer.config-converter.helper\";\nimport { isSingleForm } from \"./renderer.helper\";\nimport { KwikIDRendererService } from \"./renderer.service\";\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 providers: [KwikIDRendererService]\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.rendererService.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.rendererService.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 // display forms and list conditionally\n showForm: boolean = false;\n showFormFields: boolean = true;\n showFormSections: boolean = true;\n\n constructor(\n public rendererService: KwikIDRendererService,\n private hostElement: ElementRef\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.rendererService.setFormsList(\n this.userConfig.userFormFields[formStepKey]\n );\n } else if (Array.isArray(this.userConfig.userFormFields)) {\n this.rendererService.setFormsList(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();\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();\n }\n if (verifyChange(\"apiCallResponse\")) {\n this.apiCallResponse = changes.apiCallResponse.currentValue;\n this.loader = false;\n }\n }\n\n async initializeForms() {\n this.loader = true;\n\n this.rendererService.setAllFormsData(this.formsData);\n\n this.rendererService.updateFormsList();\n\n this.handleResize(this.rendererService.formsList);\n\n if (\n this.rendererService.formsList.length !==\n this.rendererService.formsListCompleted.length\n ) {\n await this.handleOnClickSetActiveForm(\n this.rendererService.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 handleResize(formsList: any[]) {\n if (this.hostElement.nativeElement.offsetWidth < 600) {\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.rendererService.isMobileView = true;\n } else {\n this.rendererService.isMobileView = false;\n }\n }\n\n // forms-list listener\n @logMethod\n async handleOnClickSetActiveForm(selectedForm: string) {\n this.showForm = false;\n this.loader = true;\n\n const activeFormConfig = this.rendererService.formsList.find((form) => {\n if (form.key === selectedForm) {\n return form;\n }\n });\n\n let formConfig = await this.rendererService.fetchFormConfig(\n activeFormConfig.formContent.url\n );\n\n formConfig = new Converter().convertFormConfig(formConfig);\n\n const activeFormData =\n this.rendererService.allFormsData[formConfig.key] ?? {};\n this.rendererService.setActiveFormData(activeFormData);\n\n this.rendererService.setActiveFormConfig({\n ...activeFormConfig,\n ...formConfig\n });\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 // forms-list listener\n @logMethod\n handleOnClickSubmitForms(e: any) {\n console.log(e);\n\n if (this.userConfig.userFormFieldsConfig.validation) {\n const validations = new Validations(\n {\n USER_CONFIG: this.userConfig,\n ALL_FORMS_DATA: this.formsData\n },\n this.takeAction.bind(this)\n );\n\n (async () => {\n await validations.validate(\n this.userConfig.userFormFieldsConfig.validation\n );\n\n if (this.userConfig.userFormFieldsConfig.status === \"completed\") {\n this.onClickSubmit.emit(e);\n } else {\n this.toggleErrorNotification(true);\n setTimeout(() => {\n this.toggleErrorNotification(false);\n }, 3000);\n }\n })();\n }\n }\n\n // form-view listener\n handleOnClickApiCall(e: any) {\n this.loader = true;\n this.onClickApiCall.emit(e);\n }\n\n // form-view listener\n handleGetActiveFormData(e: any) {\n this.loader = true;\n this.getFormData.emit({\n [this.rendererService.activeFormConfig.key]: e[\"data\"]\n });\n }\n\n // form-view listener\n handleOnClickSaveForm(e: any) {\n this.loader = true;\n\n this.rendererService.setActiveFormData({});\n\n this.getFormData.emit({\n [this.rendererService.activeFormConfig.key]: e[\"data\"]\n });\n }\n\n // form-view listener\n handleOnClickViewForms(e: any) {\n this.showFormSections = true;\n this.showForm = false;\n this.showFormFields = false;\n }\n\n showErrorNotification: boolean = false;\n toggleErrorNotification(show) {\n this.showErrorNotification = show;\n }\n\n async takeAction(action: any, userConfig: any, formsData: any) {\n switch (action.key) {\n case EActionKey.SET_VALUE:\n const sources = new Sources({\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","<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]=\"rendererService.isMobileView\"\n >\n <kwikid-forms-list\n [showFormFields]=\"this.showFormFields\"\n [userConfig]=\"this.userConfig\"\n [formsList]=\"this.rendererService.formsList\"\n [formsListCompleted]=\"this.rendererService.formsListCompleted\"\n [isMobileView]=\"this.rendererService.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=\"this.showForm && this.showFormFields\"\n [class.active]=\"showFormFields\"\n [class.mobile]=\"rendererService.isMobileView\"\n [@panelInOut]\n >\n <kwikid-form-view\n [formConfig]=\"this.rendererService.activeFormConfig\"\n [formData]=\"this.rendererService.activeFormData\"\n [apiCallResponse]=\"this.apiCallResponse\"\n [formsList]=\"this.rendererService.formsList\"\n [allFormsData]=\"this.rendererService.allFormsData\"\n [isMobileView]=\"this.rendererService.isMobileView\"\n (onClickApiCall)=\"this.handleOnClickApiCall($event)\"\n (onClickViewForms)=\"this.handleOnClickViewForms($event)\"\n (onClickSaveForm)=\"this.handleOnClickSaveForm($event)\"\n (getActiveFormData)=\"this.handleGetActiveFormData($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=\"tuiIconCancel\"\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 { KwikIDFormsBuilderComponent } from \"./builder.component\";\n\n@NgModule({\n declarations: [KwikIDFormsBuilderComponent],\n imports: [CommonModule, FormsModule, ReactiveFormsModule, DragDropModule],\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\";\n\n@NgModule({\n declarations: [KwikIDFormsListComponent],\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\";\nimport { KwikIDRendererService } from \"./renderer/renderer.service\";\n\n@NgModule({\n declarations: [],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n KwikIDFormBuilderModule,\n KwikIDFormRendererModule\n ],\n exports: [KwikIDFormBuilderModule, KwikIDFormRendererModule],\n providers: [KwikIDRendererService]\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":["hasKey","isEmpty","isNotEmpty","handleJPQueryResponse","jpQueryWrapper","isUndefined","replaceString","i1.KwikIDFormViewService","i7.SafeHtmlPipe","i1","i2","i3","Validations","i1.KwikIDRendererService","i2.KwikIDFormsListComponent","i3.KwikIDFormViewComponent","i5","i6"],"mappings":"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"}
|