kwikid-forms 0.1.5 → 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/README.md +43 -43
- package/bundles/kwikid-forms.umd.js +4435 -4229
- package/bundles/kwikid-forms.umd.js.map +1 -1
- package/esm2015/kwikid-forms.js +4 -4
- package/esm2015/lib/builder/builder.component.js +138 -138
- package/esm2015/lib/builder/builder.module.js +21 -21
- package/esm2015/lib/kwikid-forms.module.js +38 -38
- package/esm2015/lib/renderer/form-view/definitions/actions/form-view.actions.enum.definitions.js +21 -20
- package/esm2015/lib/renderer/form-view/definitions/actions/form-view.actions.type.definitions.js +2 -2
- package/esm2015/lib/renderer/form-view/definitions/apis/form-view.apis.enum.definitions.js +8 -8
- package/esm2015/lib/renderer/form-view/definitions/apis/form-view.apis.type.definitions.js +2 -2
- package/esm2015/lib/renderer/form-view/definitions/common/form-view.common.enum.definitions.js +101 -101
- package/esm2015/lib/renderer/form-view/definitions/common/form-view.common.type.definitions.js +2 -2
- package/esm2015/lib/renderer/form-view/definitions/fields/form-view.fields.enum.definitions.js +16 -15
- package/esm2015/lib/renderer/form-view/definitions/fields/form-view.fields.type.definitions.js +2 -2
- package/esm2015/lib/renderer/form-view/definitions/sources/form-view.sources.type.definitions.js +2 -2
- package/esm2015/lib/renderer/form-view/definitions/triggers/form-view.triggers.type.definitions.js +2 -2
- package/esm2015/lib/renderer/form-view/definitions/validations/form-view.validations.type.definitions.js +2 -2
- package/esm2015/lib/renderer/form-view/form-view.component.js +809 -814
- package/esm2015/lib/renderer/form-view/form-view.module.js +45 -44
- package/esm2015/lib/renderer/form-view/form-view.service.js +29 -29
- package/esm2015/lib/renderer/form-view/helpers/form-view.apis.helper.js +146 -137
- package/esm2015/lib/renderer/form-view/helpers/form-view.common.helper.js +136 -136
- package/esm2015/lib/renderer/form-view/helpers/form-view.defaults.helper.js +94 -63
- package/esm2015/lib/renderer/form-view/helpers/form-view.fields.helper.js +203 -203
- package/esm2015/lib/renderer/form-view/helpers/form-view.validations.helper.js +170 -161
- package/esm2015/lib/renderer/form-view/pipes/safe-html.pipe.js +25 -0
- package/esm2015/lib/renderer/forms-list/forms-list.component.js +89 -89
- package/esm2015/lib/renderer/forms-list/forms-list.module.js +37 -37
- package/esm2015/lib/renderer/renderer.component.js +282 -278
- package/esm2015/lib/renderer/renderer.config-converter.helper.js +641 -586
- package/esm2015/lib/renderer/renderer.helper.js +50 -50
- package/esm2015/lib/renderer/renderer.module.js +50 -50
- package/esm2015/lib/renderer/renderer.service.js +172 -172
- package/esm2015/public_api.js +17 -17
- package/fesm2015/kwikid-forms.js +3156 -3030
- package/fesm2015/kwikid-forms.js.map +1 -1
- package/kwikid-forms.d.ts +5 -5
- package/lib/builder/builder.component.d.ts +68 -68
- package/lib/builder/builder.module.d.ts +10 -10
- package/lib/kwikid-forms.module.d.ts +10 -10
- package/lib/renderer/form-view/definitions/actions/form-view.actions.enum.definitions.d.ts +19 -18
- package/lib/renderer/form-view/definitions/actions/form-view.actions.type.definitions.d.ts +91 -91
- package/lib/renderer/form-view/definitions/apis/form-view.apis.enum.definitions.d.ts +6 -6
- package/lib/renderer/form-view/definitions/apis/form-view.apis.type.definitions.d.ts +40 -40
- package/lib/renderer/form-view/definitions/common/form-view.common.enum.definitions.d.ts +97 -97
- package/lib/renderer/form-view/definitions/common/form-view.common.type.definitions.d.ts +7 -7
- package/lib/renderer/form-view/definitions/fields/form-view.fields.enum.definitions.d.ts +14 -13
- package/lib/renderer/form-view/definitions/fields/form-view.fields.type.definitions.d.ts +144 -136
- package/lib/renderer/form-view/definitions/sources/form-view.sources.type.definitions.d.ts +16 -16
- package/lib/renderer/form-view/definitions/triggers/form-view.triggers.type.definitions.d.ts +1 -1
- package/lib/renderer/form-view/definitions/validations/form-view.validations.type.definitions.d.ts +16 -16
- package/lib/renderer/form-view/form-view.component.d.ts +80 -80
- package/lib/renderer/form-view/form-view.module.d.ts +13 -12
- package/lib/renderer/form-view/form-view.service.d.ts +5 -5
- package/lib/renderer/form-view/helpers/form-view.apis.helper.d.ts +18 -17
- package/lib/renderer/form-view/helpers/form-view.common.helper.d.ts +19 -19
- package/lib/renderer/form-view/helpers/form-view.defaults.helper.d.ts +12 -10
- package/lib/renderer/form-view/helpers/form-view.fields.helper.d.ts +24 -24
- package/lib/renderer/form-view/helpers/form-view.validations.helper.d.ts +28 -25
- package/lib/renderer/form-view/pipes/safe-html.pipe.d.ts +15 -0
- package/lib/renderer/forms-list/forms-list.component.d.ts +22 -22
- package/lib/renderer/forms-list/forms-list.module.d.ts +11 -11
- package/lib/renderer/renderer.component.d.ts +36 -36
- package/lib/renderer/renderer.config-converter.helper.d.ts +7 -7
- package/lib/renderer/renderer.helper.d.ts +6 -6
- package/lib/renderer/renderer.module.d.ts +14 -14
- package/lib/renderer/renderer.service.d.ts +28 -28
- package/package.json +3 -3
- package/public_api.d.ts +9 -9
|
@@ -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\";\r\nimport { Component, OnInit, VERSION } from \"@angular/core\";\r\nimport { FormControl, FormGroup } from \"@angular/forms\";\r\nimport {\r\n KwikUIButtonComponent,\r\n KwikUIInputComponent,\r\n KwikUIProgressSegmentedComponent\r\n} from \"kwikui\";\r\nimport { cloneDeep } from \"lodash\";\r\n\r\ntype IMenu = {\r\n title: string;\r\n id?: string;\r\n key?: string;\r\n temp?: string;\r\n component?: any;\r\n props?: any;\r\n};\r\n\r\n@Component({\r\n selector: \"kwikid-forms-builder\",\r\n templateUrl: \"./builder.component.html\",\r\n styleUrls: [\"./builder.component.scss\"]\r\n})\r\nexport class KwikIDFormsBuilderComponent implements OnInit {\r\n buttonComponent = {\r\n disabled: false,\r\n id: \"\",\r\n label: \"Button\",\r\n showLoader: false,\r\n styles: \"\",\r\n class: \"tui-space_right-3 tui-space_bottom-3\",\r\n type: \"button\",\r\n appearance: \"primary\",\r\n icon: \"\",\r\n iconRight: \"\",\r\n shape: null,\r\n size: \"m\"\r\n };\r\n\r\n progressSegmentedComponent = {\r\n colors: \"tui(--tui-primary)\",\r\n max: \"5\",\r\n size: \"m\",\r\n value: \"2\"\r\n };\r\n\r\n inputComponent = {\r\n case: \"default\",\r\n disabled: false,\r\n focus: false,\r\n id: \"id\",\r\n invalid: false,\r\n label: \"label\",\r\n placeholder: \"placeholder\",\r\n type: \"text\",\r\n validators: {\r\n required: true\r\n }\r\n };\r\n\r\n formGroup = new FormGroup({});\r\n\r\n constructor() {}\r\n\r\n ngOnInit() {\r\n for (let m of this.menu) {\r\n m.id = this.revisedRandId();\r\n }\r\n }\r\n\r\n revisedRandId() {\r\n return Math.random()\r\n .toString(36)\r\n .replace(/[^a-z]+/g, \"\");\r\n }\r\n\r\n handleOnChange(\r\n event: { target: { value: any } },\r\n id: string | number,\r\n key: string | number,\r\n idx: any\r\n ) {\r\n const _value = event.target.value;\r\n this.formGroup.controls[id][\"controls\"][key].patchValue(_value);\r\n }\r\n\r\n toggleShow(id: any) {\r\n console.log(id);\r\n }\r\n\r\n name = \"Angular \" + VERSION.major;\r\n menu: Array<IMenu> = [\r\n {\r\n title: \"button\",\r\n key: \"button\",\r\n component: KwikUIButtonComponent,\r\n props: this.buttonComponent\r\n },\r\n {\r\n title: \"progress-segmented\",\r\n key: \"progress_segmented\",\r\n component: KwikUIProgressSegmentedComponent,\r\n props: this.progressSegmentedComponent\r\n },\r\n {\r\n title: \"input\",\r\n key: \"input\",\r\n component: KwikUIInputComponent,\r\n props: this.inputComponent\r\n }\r\n ];\r\n table: Array<IMenu> = [];\r\n\r\n drop(event: any) {\r\n // let item = JSON.parse(JSON.stringify(event));\r\n if (event.previousContainer !== event.container) {\r\n console.log(\"copying\");\r\n\r\n // Clone the item that was dropped.\r\n let clone = cloneDeep(event.previousContainer.data[event.previousIndex]);\r\n clone.id = clone.key + \"__\" + this.revisedRandId();\r\n event.previousContainer.data[event.previousIndex] = clone;\r\n\r\n let newFormGroup = new FormGroup({});\r\n\r\n const props = clone.props;\r\n\r\n Object.keys(props).forEach((key) => {\r\n newFormGroup.addControl(\r\n key,\r\n new FormControl({ value: props[key], disabled: false })\r\n );\r\n });\r\n\r\n this.formGroup.addControl(clone.id, newFormGroup);\r\n\r\n copyArrayItem(\r\n event.previousContainer.data,\r\n event.container.data,\r\n event.previousIndex,\r\n event.currentIndex\r\n );\r\n } else {\r\n console.log(\"moving\");\r\n moveItemInArray(\r\n event.container.data,\r\n event.previousIndex,\r\n event.currentIndex\r\n );\r\n }\r\n if (event.previousContainer.data) {\r\n this.menu = this.menu.filter((f) => !f.temp);\r\n }\r\n }\r\n\r\n exited(event: any) {\r\n const currentIdx = event.container.data.findIndex(\r\n (f: { id: any }) => f.id === event.item.data.id\r\n );\r\n this.menu.splice(currentIdx + 1, 0, {\r\n ...event.item.data,\r\n temp: true\r\n });\r\n }\r\n\r\n entered() {\r\n this.menu = this.menu.filter((f) => !f.temp);\r\n }\r\n\r\n isNumber(val: any) {\r\n return typeof val;\r\n }\r\n\r\n removeElement(idx: number, id: string) {\r\n this.formGroup.removeControl(id);\r\n this.table.splice(idx, 1);\r\n }\r\n\r\n getJSON() {\r\n for (let t of this.table) {\r\n t.props = this.formGroup.getRawValue()[t.id];\r\n }\r\n console.log(this.table);\r\n }\r\n}\r\n","<!-- <div>{{ name }}</div>\r\n<p>Start editing to see some magic happen :)</p>\r\n\r\n<button (click)=\"getJSON()\">Get JSON</button>\r\n\r\n<div class=\"drap-copy\">\r\n <div>\r\n <ul\r\n class=\"menu\"\r\n cdkDropList\r\n #menuList=\"cdkDropList\"\r\n [cdkDropListData]=\"menu\"\r\n cdkDropListSortingDisabled\r\n [cdkDropListConnectedTo]=\"[tableList]\"\r\n (cdkDropListDropped)=\"drop($event)\"\r\n (cdkDropListExited)=\"exited($event)\"\r\n (cdkDropListEntered)=\"entered()\"\r\n >\r\n <li class=\"item\" *ngFor=\"let item of menu\" cdkDrag [cdkDragData]=\"item\">\r\n <div class=\"item\" *cdkDragPlaceholder>\r\n <a>{{ item.title }}</a>\r\n </div>\r\n <ng-container *ngComponentOutlet=\"item.component\"> </ng-container>\r\n </li>\r\n </ul>\r\n </div>\r\n\r\n <div\r\n class=\"table\"\r\n cdkDropList\r\n #tableList=\"cdkDropList\"\r\n [cdkDropListData]=\"table\"\r\n (cdkDropListDropped)=\"drop($event)\"\r\n >\r\n <div class=\"content\">\r\n <div>\r\n <div class=\"item\" *ngFor=\"let item of table; let idx = index\" cdkDrag>\r\n <ng-container *ngComponentOutlet=\"item.component\"> </ng-container>\r\n <div class=\"item-header\">\r\n <p>{{ idx }}--{{ item.title }}</p>\r\n <button (click)=\"removeElement(idx, item.id)\">Remove</button>\r\n </div>\r\n <div class=\"desc\">\r\n <div>id - {{ item.id }}</div>\r\n <div>key - {{ item.key }}</div>\r\n </div>\r\n <ng-container\r\n *ngTemplateOutlet=\"formModal; context: item\"\r\n ></ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<ng-template #formModal let-component=\"component\" let-props=\"props\" let-id=\"id\">\r\n <div class=\"field_editor\">\r\n <div *ngFor=\"let i of props | keyvalue; let idx = index\">\r\n <div class=\"formModalInputGroup\">\r\n <label>{{ i.key }}</label>\r\n <input\r\n value=\"{{ i.value }}\"\r\n (keyup)=\"handleOnChange($event, id, i.key, idx)\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n</ng-template> -->\r\n","export enum EActionKey {\r\n SET_VALUE = \"SET_VALUE\",\r\n FIELD_MESSAGE_SHOW = \"FIELD_MESSAGE_SHOW\",\r\n FIELD_MESSAGES_HIDE = \"FIELD_MESSAGES_HIDE\",\r\n FIELD_ERROR_SHOW = \"FIELD_ERROR_SHOW\",\r\n FIELD_ERROR_HIDE = \"FIELD_ERROR_HIDE\",\r\n FIELD_SHOW = \"FIELD_SHOW\",\r\n FIELD_HIDE = \"FIELD_HIDE\",\r\n FIELD_ENABLE = \"FIELD_ENABLE\",\r\n FIELD_DISABLE = \"FIELD_DISABLE\",\r\n FIELD_RESET = \"FIELD_RESET\",\r\n HANDLE_CONNECTED_ELEMENTS = \"HANDLE_CONNECTED_ELEMENTS\",\r\n CUSTOM = \"CUSTOM\",\r\n FIELD_GROUP_SHOW = \"FIELD_GROUP_SHOW\",\r\n FIELD_GROUP_HIDE = \"FIELD_GROUP_HIDE\",\r\n FIELD_GROUP_ENABLE = \"FIELD_GROUP_ENABLE\",\r\n FIELD_GROUP_DISABLE = \"FIELD_GROUP_DISABLE\"\r\n}\r\n","export enum EApiStatusType {\r\n DEFAULT = \"default\",\r\n LOADING = \"loading\",\r\n SUCCESS = \"success\",\r\n FAILED = \"failed\"\r\n}\r\n","export enum EPatternKey {\r\n CUSTOM = \"CUSTOM\",\r\n IS_ADDRESS = \"IS_ADDRESS\",\r\n IS_ALPHA = \"IS_ALPHA\",\r\n IS_ALPHANUMERIC = \"IS_ALPHANUMERIC\",\r\n IS_BOOLEAN = \"IS_BOOLEAN\",\r\n IS_EMAIL = \"IS_EMAIL\",\r\n IS_EMPTY = \"IS_EMPTY\",\r\n IS_FALSE = \"IS_FALSE\",\r\n IS_HTML = \"IS_HTML\",\r\n IS_INTEGER = \"IS_INTEGER\",\r\n IS_IP_ADDRESS = \"IS_IP_ADDRESS\",\r\n IS_JSON = \"IS_JSON\",\r\n IS_LOWERCASE = \"IS_LOWERCASE\",\r\n IS_NOT_EMPTY = \"IS_NOT_EMPTY\",\r\n IS_NUMBER = \"IS_NUMBER\",\r\n IS_TRUE = \"IS_TRUE\",\r\n IS_UPPERCASE = \"IS_UPPERCASE\",\r\n IS_URL = \"IS_URL\",\r\n IS_AADHAAR_NUMBER = \"IS_AADHAAR_NUMBER\",\r\n IS_BANK_ACCOUNT_NO = \"IS_BANK_ACCOUNT_NO\",\r\n IS_BANK_SWIFT_CODE = \"IS_BANK_SWIFT_CODE\",\r\n IS_BIRTH_CERTIFICATE_NO = \"IS_BIRTH_CERTIFICATE_NO\",\r\n IS_CHEQUE_NO = \"IS_CHEQUE_NO\",\r\n IS_CIN = \"IS_CIN\",\r\n IS_CREDIT_CARD_NO = \"IS_CREDIT_CARD_NO\",\r\n IS_DRIVING_LICENSE = \"IS_DRIVING_LICENSE\",\r\n IS_GSTIN = \"IS_GSTIN\",\r\n IS_IFSC_NO = \"IS_IFSC_NO\",\r\n IS_MICR_CODE = \"IS_MICR_CODE\",\r\n IS_MOBILE_NO = \"IS_MOBILE_NO\",\r\n IS_MOBILE_NO_IN = \"IS_MOBILE_NO_IN\",\r\n IS_NEFT_OR_RTGS_NO = \"IS_NEFT_OR_RTGS_NO\",\r\n IS_PAN_NUMBER = \"IS_PAN_NUMBER\",\r\n IS_PASSPORT = \"IS_PASSPORT\",\r\n IS_PHONE_NO = \"IS_PHONE_NO\",\r\n IS_PINCODE = \"IS_PINCODE\",\r\n IS_PURCHASE_ORDER_NO = \"IS_PURCHASE_ORDER_NO\",\r\n IS_RATION_CARD_NO = \"IS_RATION_CARD_NO\",\r\n IS_SERVICE_TAX_NO = \"IS_SERVICE_TAX_NO\",\r\n IS_SOCIAL_SECURITY_NO = \"IS_SOCIAL_SECURITY_NO\",\r\n IS_UPI_TRANSACTION_REFERENCE_NO = \"IS_UPI_TRANSACTION_REFERENCE_NO\",\r\n IS_VAT_TIN_NO = \"IS_VAT_TIN_NO\",\r\n IS_VEHICLE_REGISTRATION_NO = \"IS_VEHICLE_REGISTRATION_NO\",\r\n IS_VOTER_ID = \"IS_VOTER_ID\"\r\n}\r\n\r\nexport enum EPattern {\r\n IS_ALPHA = \"^[a-zA-Z]+$\",\r\n IS_ADDRESS = \"^(\\\\w*\\\\s*[#-,/.()&]*)+\",\r\n IS_ALPHANUMERIC = \"^[a-zA-Z0-9]+$\",\r\n IS_BOOLEAN = \"(true|false)\",\r\n IS_EMAIL = \"^\\\\w+([\\\\.-]?\\\\w+)*@\\\\w+([\\\\.-]?\\\\w+)*(\\\\.\\\\w{2,3})+$\",\r\n IS_EMPTY = \"^$\",\r\n IS_FALSE = \"false\",\r\n IS_HTML = \"^<([a-z]+)([^<]+)(?:>(.)</\\\\1>|\\\\s+/>)$\",\r\n IS_INTEGER = \"^[+-]?d+$\",\r\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]?)$\",\r\n IS_JSON = \"^\\\\s*({(.|\\\\s)}|[(.|\\\\s)])\\\\s*$\",\r\n IS_LOWERCASE = \"^[a-z]+$\",\r\n IS_NOT_EMPTY = \"^.+$\",\r\n IS_NUMBER = \"^[+-]?d+(.d+)?$\",\r\n IS_TRUE = \"true\",\r\n IS_UPPERCASE = \"^[A-Z]+$\",\r\n IS_URL = \"^(?:http(s)?://)?[w.-]+(?:.[w.-]+)+[w-._~:/?#[]@!$&'()*+,;=.]+$\",\r\n IS_AADHAAR_NUMBER = \"^[0-9]{12}$\",\r\n IS_BANK_ACCOUNT_NO = \"^[0-9]{9,18}$\",\r\n IS_BANK_SWIFT_CODE = \"^[A-Z]{4}[A-Z]{2}[0-9A-Z]{2}[0-9A-Z]{3}$\",\r\n IS_BIRTH_CERTIFICATE_NO = \"^[A-Z]{2}[0-9]{6}[A-Z]{1}[0-9]{2}$\",\r\n IS_CHEQUE_NO = \"^[0-9]{6,14}$\",\r\n IS_CIN = \"^[A-Z]{3}[0-9]{5}[0-9A-Z]{3}$\",\r\n IS_CREDIT_CARD_NO = \"^[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{4}$\",\r\n IS_DRIVING_LICENSE = \"^[A-Z]{2}[0-9]{2}((19|20)[0-9][0-9])[0-9]{7}$\",\r\n IS_GSTIN = \"^[0-9]{2}[A-Z]{5}[0-9]{4}[A-Z]{1}[1-9A-Z]{1}Z[0-9A-Z]{1}$\",\r\n IS_IFSC_NO = \"^[A-Z]{4}[0][A-Z0-9]{6}$\",\r\n IS_MICR_CODE = \"^[0-9]{9}$\",\r\n IS_MOBILE_NO = \"^[6-9]\\\\d{9}$\",\r\n IS_MOBILE_NO_IN = \"^(\\\\+91)[6-9]\\\\d{9}$\",\r\n IS_NEFT_OR_RTGS_NO = \"^[A-Z]{4}[0-9]{7}$\",\r\n IS_PAN_NUMBER = \"^[A-Z]{5}[[0-9]{4}[A-Z]{1}$\",\r\n IS_PASSPORT = \"^[A-PR-WYa-pr-wy][1-9]\\\\d\\\\s?\\\\d{4}[1-9]$\",\r\n IS_PHONE_NO = \"^[6-9]\\\\d{9}$\",\r\n IS_PINCODE = \"^[1-9][0-9]{5}$\",\r\n IS_PURCHASE_ORDER_NO = \"^[0-9]{1,5}$\",\r\n IS_RATION_CARD_NO = \"^[A-Z]{3}[0-9]{7}$\",\r\n IS_SERVICE_TAX_NO = \"^[A-Z]{5}[0-9]{4}[A-Z]{1}$\",\r\n IS_SOCIAL_SECURITY_NO = \"^[0-9]{3}-[0-9]{2}-[0-9]{4}$\",\r\n IS_UPI_TRANSACTION_REFERENCE_NO = \"^[a-zA-Z0-9]{3,128}@[a-z]{3,9}$\",\r\n IS_VAT_TIN_NO = \"^[0-9]{11}$\",\r\n IS_VEHICLE_REGISTRATION_NO = \"^[A-Z]{2}[0-9]{2}((19|20)[0-9][0-9])[0-9]{6}$\",\r\n IS_VOTER_ID = \"^[A-Z]{3}[0-9]{7}$\"\r\n}\r\n\r\nexport enum EMessageType {\r\n DEFAULT = \"default\",\r\n ERROR = \"error\",\r\n SUCCESS = \"success\",\r\n WARNING = \"warning\"\r\n}\r\n","export enum EFieldType {\r\n TITLE = \"title\",\r\n TEXT = \"text\",\r\n CHECKBOX = \"checkbox\",\r\n NUMBER = \"number\",\r\n DATE = \"date\",\r\n PHONE = \"phone\",\r\n RADIO = \"radio\",\r\n DROPDOWN_WITH_SEARCH = \"dropdown-with-search\",\r\n API_CALL = \"api-call\",\r\n OTP = \"otp\",\r\n AADHAAR_NUMBER = \"aadhaar-number\"\r\n}\r\n","import { TuiDay } from \"@taiga-ui/cdk\";\r\nimport jp from \"jsonpath\";\r\n\r\nexport const hasKey = (object: any, key: string): boolean => {\r\n return object.hasOwnProperty(key);\r\n};\r\n\r\nexport const isEmpty = (value: any): boolean => {\r\n if (value === \"\" || value === undefined || value === null) {\r\n return true;\r\n } else if (\r\n value &&\r\n Object.keys(value).length === 0 &&\r\n Object.getPrototypeOf(value) === Object.prototype\r\n ) {\r\n return true;\r\n } else if (Array.isArray(value)) {\r\n if (value.length === 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n};\r\n\r\nexport const isNotEmpty = (value: any) => {\r\n return !isEmpty(value);\r\n};\r\n\r\nexport const handleJPQueryResponse = (value: any): any => {\r\n /**\r\n * jp.query doesn't always return an array with one element\r\n * so directly can't access with [0], need to check conditionally\r\n */\r\n if (Array.isArray(value)) {\r\n if (value.length > 0) {\r\n value = value[0];\r\n } else if (value.length === 0) {\r\n value = \"\";\r\n }\r\n }\r\n\r\n return value;\r\n};\r\n\r\nexport const jpQueryWrapper = (obj: any, key: string): boolean => {\r\n return handleJPQueryResponse(jp.query(obj, key));\r\n};\r\n\r\nexport const isSingleForm = (formsList: any[]): boolean => {\r\n return formsList.length === 1;\r\n};\r\n","import { TuiDay } from \"@taiga-ui/cdk\";\r\nimport jp from \"jsonpath\";\r\nimport _ from \"lodash\";\r\nimport { EFieldType } from \"../definitions/fields/form-view.fields.enum.definitions\";\r\nimport {\r\n TField,\r\n TFieldRadio,\r\n TFieldType\r\n} from \"../definitions/fields/form-view.fields.type.definitions\";\r\n\r\nexport const hasKey = (object: any, key: string): boolean => {\r\n return object.hasOwnProperty(key);\r\n};\r\n\r\nexport const hasPath = (object: any, path: string): boolean => {\r\n return _.has(object, path);\r\n};\r\n\r\nexport const isEmptyString = (value: string): boolean => {\r\n return value === \"\";\r\n};\r\nexport const isUndefined = (value: any): boolean => {\r\n return value === undefined;\r\n};\r\nexport const isNull = (value: any): boolean => {\r\n return value === null;\r\n};\r\nexport const isEmptyObject = (object: any): boolean => {\r\n return (\r\n object &&\r\n Object.keys(object).length === 0 &&\r\n Object.getPrototypeOf(object) === Object.prototype\r\n );\r\n};\r\nexport const isEmptyArray = (arr: any[]): boolean => {\r\n return arr.length === 0;\r\n};\r\n\r\nexport const isEmpty = (value: any): boolean => {\r\n if (isEmptyString(value) || isUndefined(value) || isNull(value)) {\r\n return true;\r\n } else if (isEmptyObject(value)) {\r\n return true;\r\n } else if (Array.isArray(value)) {\r\n if (isEmptyArray(value)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n};\r\n\r\nexport const isNotEmpty = (value: any) => {\r\n return !isEmpty(value);\r\n};\r\n\r\nexport const isEmptyBrowserStorageValue = (value: any) => {\r\n return isNull(value) && isUndefined(value);\r\n};\r\n\r\nexport const isNotEmptyBrowserStorageValue = (value: any) => {\r\n return !isEmptyBrowserStorageValue(value);\r\n};\r\n\r\nexport const handleJPQueryResponse = (value: any): any => {\r\n /**\r\n * jp.query doesn't always return an array with one element\r\n * so directly can't access with [0], need to check conditionally\r\n */\r\n if (Array.isArray(value)) {\r\n if (value.length > 0) {\r\n value = value[0];\r\n } else if (value.length === 0) {\r\n value = \"\";\r\n }\r\n } else {\r\n value = \"\";\r\n }\r\n\r\n return value;\r\n};\r\n\r\nexport const jpQueryWrapper = (obj: any, key: string) => {\r\n return handleJPQueryResponse(jp.query(obj, key));\r\n};\r\n\r\nexport const replaceString = (\r\n str: string,\r\n find: string,\r\n replace: string\r\n): string => {\r\n return str.replace(new RegExp(find, \"g\"), replace);\r\n};\r\n\r\nexport const setFieldKeyValue = (field: any, path: string, value: any): any => {\r\n return _.set(field, path, value);\r\n};\r\n\r\nexport const setValueToObject = (\r\n object: any,\r\n path: string,\r\n value: any\r\n): any => {\r\n return _.set(object, path, value);\r\n};\r\n\r\nexport const formatValue = (field: TField, fieldValue: any): any => {\r\n const fieldType: TFieldType = field.type;\r\n let value: any;\r\n\r\n if (isNotEmpty(fieldValue)) {\r\n switch (fieldType) {\r\n case EFieldType.DATE:\r\n const splitDate = fieldValue.split(\"-\");\r\n value = new TuiDay(\r\n Number(splitDate[2]), // Year\r\n Number(splitDate[1]) - 1, // Month, Why '-1' => Because Taiga-UI Required It, So...\r\n Number(splitDate[0]) // Day\r\n );\r\n break;\r\n case EFieldType.RADIO:\r\n const fieldRadio = field as TFieldRadio;\r\n value = fieldRadio.options.find((item: any) => {\r\n return item.label === fieldValue;\r\n });\r\n break;\r\n case EFieldType.CHECKBOX:\r\n value = Boolean(fieldValue);\r\n break;\r\n default:\r\n value = fieldValue;\r\n break;\r\n }\r\n } else {\r\n value = fieldValue;\r\n }\r\n\r\n return value;\r\n};\r\n\r\nexport const setEmptyValue = (field: TField): any => {\r\n const fieldType: TFieldType = field.type;\r\n let value: any;\r\n\r\n switch (fieldType) {\r\n case EFieldType.CHECKBOX:\r\n value = false;\r\n break;\r\n case EFieldType.NUMBER:\r\n value = null;\r\n break;\r\n case EFieldType.DATE:\r\n value = null;\r\n break;\r\n default:\r\n value = \"\";\r\n break;\r\n }\r\n\r\n return value;\r\n};\r\n","import {\r\n Actions,\r\n Condition,\r\n logMethod,\r\n Rules,\r\n Sources,\r\n TAction,\r\n TRule\r\n} from \"kwikid-toolkit\";\r\nimport { isEmpty } from \"../../renderer.helper\";\r\nimport { TField } from \"../definitions/fields/form-view.fields.type.definitions\";\r\nimport { TTrigger } from \"../definitions/triggers/form-view.triggers.type.definitions\";\r\nimport { TValidation } from \"../definitions/validations/form-view.validations.type.definitions\";\r\nimport { setEmptyValue, setValueToObject } from \"./form-view.common.helper\";\r\n\r\nexport class Defaults {\r\n private _allFormsData: any;\r\n private _field: TField;\r\n private _formData: any;\r\n private _previousFormData: any;\r\n private _takeAction: Function;\r\n\r\n constructor(\r\n field: TField,\r\n allFormsData: any,\r\n formData: any,\r\n previousFormData: any,\r\n takeAction: Function\r\n ) {\r\n this._field = field;\r\n this._allFormsData = allFormsData;\r\n this._formData = formData;\r\n this._previousFormData = previousFormData;\r\n this._takeAction = takeAction;\r\n }\r\n\r\n @logMethod\r\n async getDefaultValue() {\r\n let defaultValue: any;\r\n\r\n const sources = this._field.default.value.sources;\r\n\r\n let sourceIndex = 0;\r\n for (let source of sources) {\r\n const sources = new Sources({\r\n FIELD_CONFIG: this._field,\r\n FORM_DATA: this._formData,\r\n PREVIOUS_FORM_DATA: this._previousFormData,\r\n ALL_FORMS_DATA: this._allFormsData\r\n });\r\n const value = sources.getValueFromSource(source);\r\n // Set the Value of current source.\r\n this._field = setValueToObject(\r\n this._field,\r\n `default.value.sources.[${sourceIndex}].value`,\r\n value\r\n );\r\n\r\n const validation: TValidation = (source as any).validation;\r\n\r\n const triggers: Array<TTrigger> = validation.triggers;\r\n const rules: Array<TRule> = validation.rules;\r\n const actions: Array<TAction> = validation.actions;\r\n\r\n const rulesMapping = new Rules(rules, {\r\n FIELD_CONFIG: this._field,\r\n FORM_DATA: this._formData,\r\n PREVIOUS_FORM_DATA: this._previousFormData,\r\n ALL_FORMS_DATA: this._allFormsData\r\n }).mapping();\r\n\r\n for (let action of actions) {\r\n const conditionEvaluation = new Condition(\r\n action.condition,\r\n rulesMapping\r\n ).evaluate();\r\n\r\n if (conditionEvaluation) {\r\n const actions = new Actions(\r\n action,\r\n rulesMapping,\r\n {\r\n FIELD_CONFIG: this._field,\r\n FORM_DATA: this._formData,\r\n PREVIOUS_FORM_DATA: this._previousFormData,\r\n ALL_FORMS_DATA: this._allFormsData\r\n },\r\n this._takeAction\r\n );\r\n\r\n await actions.execute();\r\n }\r\n }\r\n\r\n sourceIndex++;\r\n }\r\n\r\n defaultValue = this._field.default.value.value;\r\n\r\n if (isEmpty(defaultValue)) {\r\n defaultValue = setEmptyValue(this._field);\r\n }\r\n\r\n return defaultValue;\r\n }\r\n}\r\n","import { TuiDay } from \"@taiga-ui/cdk\";\r\nimport { EFieldType } from \"../definitions/fields/form-view.fields.enum.definitions\";\r\nimport { TField } from \"../definitions/fields/form-view.fields.type.definitions\";\r\nimport { checkObjectKeyExists, isNotEmptyValue } from \"kwikid-toolkit\";\r\n\r\nexport const findFieldFromKey = (fields: any[], key: string) => {\r\n const field = fields.find((field) => {\r\n if (field.key === key) {\r\n return field;\r\n }\r\n });\r\n\r\n return field;\r\n};\r\n\r\nexport const findFieldIndexFromKey = (fields: any[], key: string) => {\r\n let fieldIndex: number;\r\n\r\n fieldIndex = fields.findIndex((_: any) => {\r\n return key === _.key;\r\n });\r\n\r\n return fieldIndex;\r\n};\r\n\r\nexport const getSearchTextOptionsFromRemoteFile = async (\r\n field: any,\r\n childField: any,\r\n formGroup: any\r\n): Promise<any> => {\r\n const parentFieldValue = formGroup.controls[field.key].value;\r\n\r\n // Determine the URL of the remote file to fetch\r\n let fileUrl: string | undefined;\r\n if (childField.regexToGetJsonRemoteUrlKey) {\r\n const fileKey = parentFieldValue.match(\r\n childField.regexToGetJsonRemoteUrlKey\r\n )[0];\r\n fileUrl = childField.jsonRemoteUrlMapping[fileKey];\r\n } else {\r\n fileUrl = childField.fileUrl;\r\n }\r\n\r\n // Return early if there is no file URL\r\n if (!fileUrl) return;\r\n\r\n // Fetch the remote file and parse its JSON data\r\n const response = await fetch(fileUrl);\r\n const data = await response.json();\r\n\r\n // Return the data for the given parent field value\r\n return data[parentFieldValue];\r\n};\r\n\r\nexport const getSearchTextOptionsFromFieldConfig = (\r\n field: any,\r\n childField: any,\r\n formGroup: any\r\n): any => {\r\n let options: any;\r\n\r\n const fieldValue = formGroup.controls[field.key].value;\r\n\r\n if (isNotEmptyValue(childField[\"json\"])) {\r\n options = childField[\"json\"][fieldValue];\r\n }\r\n\r\n return options;\r\n};\r\n\r\nexport const formatSearchTextOptions = (\r\n options: { title: string; value: string }[]\r\n): string[] => {\r\n return options.map(({ title }) => title);\r\n};\r\n\r\nexport function highlightFieldError(field: any, error: any): any {\r\n field.invalid = error;\r\n field.focus = error;\r\n\r\n // if (!error) {\r\n // field[\"messages\"] = field[\"messages\"].filter(function (fieldMessage: {\r\n // type: string;\r\n // message: string;\r\n // }) {\r\n // return fieldMessage.type === \"error\";\r\n // });\r\n // }\r\n\r\n return field;\r\n}\r\n\r\nexport const addMessage = (\r\n field: any,\r\n message: { type: string; message: string }\r\n): any => {\r\n const isDuplicateMessage = (\r\n messages: { type: string; message: string }[],\r\n message: { type: string; message: string }\r\n ) => {\r\n return messages.some((fieldMessage: { type: string; message: string }) => {\r\n return (\r\n fieldMessage.type === message.type &&\r\n fieldMessage.message === message.message\r\n );\r\n });\r\n };\r\n\r\n field[\"messages\"] = [];\r\n\r\n if (checkObjectKeyExists(field, \"messages\")) {\r\n if (!isDuplicateMessage(field[\"messages\"], message)) {\r\n field[\"messages\"].push({\r\n type: message.type,\r\n message: message.message\r\n });\r\n }\r\n } else {\r\n field[\"messages\"] = [{ type: message.type, message: message.message }];\r\n }\r\n\r\n return field;\r\n};\r\nexport const removeMessage = (\r\n field: any,\r\n message: { type: string; message: string }\r\n): any => {\r\n field[\"messages\"] = field[\"messages\"].filter(function (fieldMessage) {\r\n return fieldMessage.type !== message.type;\r\n });\r\n\r\n return field;\r\n};\r\n\r\nexport function setFieldError(\r\n fields: any,\r\n errors: any,\r\n key: string,\r\n error: boolean\r\n) {\r\n const fieldIndex = fields.findIndex((field: any) => {\r\n return field.key === key;\r\n });\r\n\r\n const setErrorMessages = (field: any, errors: any) => {\r\n const getErrorMessage = (fieldLabel: string, errorType: string) => {\r\n let errorMessage: string = \"\";\r\n\r\n switch (errorType) {\r\n case \"required\":\r\n errorMessage = `${fieldLabel} is required!`;\r\n break;\r\n case \"email\":\r\n errorMessage = `${fieldLabel} has wrong email format!`;\r\n break;\r\n case \"min\":\r\n errorMessage = `${fieldLabel} has wrong value! Minimum value: ${field.validators.min}`;\r\n break;\r\n case \"minlength\":\r\n errorMessage = `${fieldLabel} has wrong length! Required minimum length: ${field.validators.minLength}`;\r\n break;\r\n case \"max\":\r\n errorMessage = `${fieldLabel} has wrong value! Maximum value: ${field.validators.maxLength}`;\r\n break;\r\n case \"maxlength\":\r\n errorMessage = `${fieldLabel} has wrong length! Required maximum length: ${field.validators.maxLength}`;\r\n break;\r\n case \"areEqual\":\r\n errorMessage = `${fieldLabel} must be equal!`;\r\n break;\r\n case \"pattern\":\r\n errorMessage = `${fieldLabel} is in incorrect format!`;\r\n break;\r\n default:\r\n errorMessage = `${fieldLabel}: ${errorType}`;\r\n break;\r\n }\r\n\r\n return errorMessage;\r\n };\r\n\r\n Object.keys(errors).forEach((error) => {\r\n field = addMessage(field, {\r\n type: \"error\",\r\n message: getErrorMessage(field.label, error)\r\n });\r\n });\r\n\r\n return field;\r\n };\r\n\r\n if (error) {\r\n fields[fieldIndex] = setErrorMessages(fields[fieldIndex], errors);\r\n } else {\r\n fields[fieldIndex][\"messages\"] = [];\r\n }\r\n\r\n fields[fieldIndex] = highlightFieldError(fields[fieldIndex], error);\r\n\r\n return fields;\r\n}\r\n\r\nexport const convertDateStringToTuiDayFormat = (date: string): TuiDay => {\r\n const splitDate = date.split(\"-\");\r\n const tuiDay = new TuiDay(\r\n Number(splitDate[2]), // Year\r\n Number(splitDate[1]) - 1, // Month, Why '-1' => Because Taiga-UI Required It, So...\r\n Number(splitDate[0]) // Day\r\n );\r\n\r\n return tuiDay;\r\n};\r\n\r\nexport const convertTuiDayFormatToDateString = (date: TuiDay): string => {\r\n let formattedDate: string;\r\n let year = date.year;\r\n let month = date.month;\r\n let day = date.day;\r\n\r\n formattedDate = `${day.toString().padStart(2, \"0\")}-${(month + 1)\r\n .toString()\r\n .padStart(2, \"0\")}-${year}`;\r\n\r\n return formattedDate;\r\n};\r\n\r\nexport const convertValueFromKwikUIFormatToBasicFormat = (\r\n field: TField,\r\n value: any\r\n) => {\r\n let convertedValue: any = value;\r\n\r\n if (isNotEmptyValue(value)) {\r\n switch (field.type) {\r\n case EFieldType.DATE:\r\n convertedValue = convertTuiDayFormatToDateString(value);\r\n break;\r\n case EFieldType.RADIO:\r\n convertedValue = value.label;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n return convertedValue;\r\n};\r\n\r\nexport const convertValueFromBasicFormatToKwikUIFormat = (\r\n field: TField,\r\n value: any\r\n) => {\r\n let convertedValue: any = value;\r\n\r\n if (isNotEmptyValue(value)) {\r\n switch (field.type) {\r\n case EFieldType.RADIO:\r\n if (!checkObjectKeyExists(value, \"label\")) {\r\n const convertedLabelValue = {\r\n label: value,\r\n disabled: false\r\n };\r\n convertedValue = convertedLabelValue;\r\n }\r\n break;\r\n case EFieldType.DATE:\r\n convertedValue = convertDateStringToTuiDayFormat(value);\r\n break;\r\n case EFieldType.TITLE:\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n return convertedValue;\r\n};\r\n","import {\r\n FormArray,\r\n FormGroup,\r\n ValidationErrors,\r\n Validators\r\n} from \"@angular/forms\";\r\nimport {\r\n Actions,\r\n Condition,\r\n logMethod,\r\n Rules,\r\n checkObjectKeyExists,\r\n isNotEmptyValue\r\n} from \"kwikid-toolkit\";\r\nimport {\r\n EPattern,\r\n EPatternKey\r\n} from \"../definitions/common/form-view.common.enum.definitions\";\r\nimport { TField } from \"../definitions/fields/form-view.fields.type.definitions\";\r\n\r\nexport class Validations {\r\n private _formData: any;\r\n get formData(): any {\r\n return this._formData;\r\n }\r\n set formData(value: any) {\r\n this._formData = value;\r\n }\r\n\r\n private _previousFormData: any;\r\n get previousFormData(): any {\r\n return this._previousFormData;\r\n }\r\n set previousFormData(value: any) {\r\n this._previousFormData = value;\r\n }\r\n\r\n private _allFormsData: any;\r\n get allFormsData(): any {\r\n return this._allFormsData;\r\n }\r\n set allFormsData(value: any) {\r\n this._allFormsData = value;\r\n }\r\n\r\n private _field: TField;\r\n get field(): TField {\r\n return this._field;\r\n }\r\n set field(value: TField) {\r\n this._field = value;\r\n }\r\n\r\n private _takeAction: Function;\r\n\r\n constructor(\r\n field: TField,\r\n formData: any,\r\n previousFormData: any,\r\n allFormsData: any,\r\n takeAction: any\r\n ) {\r\n this._field = field;\r\n this._formData = formData;\r\n this._previousFormData = previousFormData;\r\n this._allFormsData = allFormsData;\r\n this._takeAction = takeAction;\r\n }\r\n\r\n @logMethod\r\n getFieldValidators(field: any) {\r\n let validators = [];\r\n\r\n if (\r\n checkObjectKeyExists(field, \"validators\") &&\r\n checkObjectKeyExists(field.validators, \"min\") &&\r\n isNotEmptyValue(field.validators.min)\r\n ) {\r\n validators.push(Validators.min(field.validators.min));\r\n }\r\n if (\r\n checkObjectKeyExists(field, \"validators\") &&\r\n checkObjectKeyExists(field.validators, \"max\") &&\r\n isNotEmptyValue(field.validators.max)\r\n ) {\r\n validators.push(Validators.max(field.validators.max));\r\n }\r\n if (\r\n (checkObjectKeyExists(field, \"required\") && field.required) ||\r\n (checkObjectKeyExists(field, \"validators\") &&\r\n checkObjectKeyExists(field.validators, \"required\") &&\r\n field.validators.required)\r\n ) {\r\n validators.push(Validators.required);\r\n }\r\n if (\r\n checkObjectKeyExists(field, \"validators\") &&\r\n checkObjectKeyExists(field.validators, \"minLength\") &&\r\n isNotEmptyValue(field.validators.minLength)\r\n ) {\r\n validators.push(Validators.minLength(field.validators.minLength));\r\n }\r\n if (\r\n checkObjectKeyExists(field, \"validators\") &&\r\n checkObjectKeyExists(field.validators, \"maxLength\") &&\r\n isNotEmptyValue(field.validators.maxLength)\r\n ) {\r\n validators.push(Validators.maxLength(field.validators.maxLength));\r\n }\r\n if (\r\n checkObjectKeyExists(field, \"validators\") &&\r\n checkObjectKeyExists(field.validators, \"pattern\") &&\r\n isNotEmptyValue(field.validators.pattern)\r\n ) {\r\n if (checkObjectKeyExists(field.validators.pattern, \"key\")) {\r\n if (field.validators.pattern.key === EPatternKey.CUSTOM) {\r\n validators.push(Validators.pattern(field.validators.pattern.pattern));\r\n } else {\r\n validators.push(\r\n Validators.pattern(EPattern[field.validators.pattern.key])\r\n );\r\n }\r\n }\r\n }\r\n\r\n return validators;\r\n }\r\n\r\n @logMethod\r\n getFormValidationErrors(\r\n control: FormGroup\r\n ): { name: string; value: string }[] {\r\n let errors: { name: string; value: string }[] = [];\r\n\r\n for (const key in control.controls) {\r\n const controlErrors: ValidationErrors = control.controls[key].errors;\r\n if (controlErrors !== null && controlErrors !== undefined) {\r\n Object.keys(controlErrors).forEach((keyError) => {\r\n errors.push({\r\n name: keyError,\r\n value: controlErrors[keyError]\r\n });\r\n });\r\n }\r\n }\r\n\r\n return errors;\r\n }\r\n\r\n @logMethod\r\n findInvalidControlsRecursive(formToInvestigate: FormGroup | FormArray) {\r\n var controls: any[] = [];\r\n\r\n let recursiveFunc = (form: FormGroup | FormArray) => {\r\n Object.keys(form.controls).forEach((field: any) => {\r\n const control = form.get(field);\r\n if (control.invalid) {\r\n controls.push({\r\n key: field,\r\n invalid: true\r\n });\r\n } else {\r\n controls.push({\r\n key: field,\r\n invalid: false\r\n });\r\n }\r\n if (control instanceof FormGroup) {\r\n recursiveFunc(control);\r\n } else if (control instanceof FormArray) {\r\n recursiveFunc(control);\r\n }\r\n });\r\n };\r\n\r\n recursiveFunc(formToInvestigate);\r\n\r\n return controls;\r\n }\r\n\r\n @logMethod\r\n async validateField(): Promise<any> {\r\n const validations = this._field.validation;\r\n\r\n const triggers = validations.triggers;\r\n const rules = validations.rules;\r\n const actions = validations.actions;\r\n\r\n const rulesMapping = new Rules(rules, {\r\n FIELD_CONFIG: this._field,\r\n FORM_DATA: this._formData,\r\n PREVIOUS_FORM_DATA: this._previousFormData,\r\n ALL_FORMS_DATA: this._allFormsData\r\n }).mapping();\r\n\r\n for (let action of actions) {\r\n const conditionEvaluation = new Condition(\r\n action.condition,\r\n rulesMapping\r\n ).evaluate();\r\n\r\n if (conditionEvaluation) {\r\n const actions = new Actions(\r\n action,\r\n rulesMapping,\r\n {\r\n FIELD_CONFIG: this._field,\r\n FORM_DATA: this._formData,\r\n PREVIOUS_FORM_DATA: this._previousFormData,\r\n ALL_FORMS_DATA: this._allFormsData\r\n },\r\n this._takeAction\r\n );\r\n\r\n await actions.execute();\r\n }\r\n }\r\n }\r\n}\r\n","import { FormControl, FormGroup } from \"@angular/forms\";\r\nimport { logMethod } from \"kwikid-toolkit\";\r\nimport { Defaults } from \"./helpers/form-view.defaults.helper\";\r\nimport { convertValueFromBasicFormatToKwikUIFormat } from \"./helpers/form-view.fields.helper\";\r\nimport { Validations } from \"./helpers/form-view.validations.helper\";\r\n\r\nexport class KwikIDFormViewService {\r\n constructor() {}\r\n\r\n // 'init' stage of the form\r\n @logMethod\r\n async createFormGroup(\r\n fields: any,\r\n formData: any,\r\n previousFormData: any,\r\n allFormsData: any,\r\n takeAction: Function\r\n ) {\r\n let formGroup = new FormGroup({});\r\n\r\n for (let field of fields) {\r\n if (field.type !== \"title\") {\r\n const defaults = new Defaults(\r\n field,\r\n allFormsData,\r\n formData,\r\n previousFormData,\r\n takeAction\r\n );\r\n let value = await defaults.getDefaultValue();\r\n value = convertValueFromBasicFormatToKwikUIFormat(field, value);\r\n\r\n const validators = new Validations(\r\n field,\r\n formData,\r\n previousFormData,\r\n allFormsData,\r\n takeAction\r\n ).getFieldValidators(field);\r\n\r\n formGroup.addControl(\r\n field.key,\r\n new FormControl(\r\n { value: value, disabled: field.disabled },\r\n { validators: validators }\r\n )\r\n );\r\n }\r\n }\r\n\r\n return formGroup;\r\n }\r\n}\r\n","import {\r\n Actions,\r\n Condition,\r\n logMethod,\r\n Rules,\r\n Sources,\r\n TRule,\r\n TSource\r\n} from \"kwikid-toolkit\";\r\nimport { TAction } from \"../definitions/actions/form-view.actions.type.definitions\";\r\nimport {\r\n TApi,\r\n TApiRequest,\r\n TApiRequestBody,\r\n TApiRequestBodyParam,\r\n TApiResponse,\r\n TApiStatus\r\n} from \"../definitions/apis/form-view.apis.type.definitions\";\r\nimport { TFieldApiCall } from \"../definitions/fields/form-view.fields.type.definitions\";\r\nimport { TTrigger } from \"../definitions/triggers/form-view.triggers.type.definitions\";\r\nimport { TValidation } from \"../definitions/validations/form-view.validations.type.definitions\";\r\nimport { setValueToObject } from \"./form-view.common.helper\";\r\n\r\nexport class Apis {\r\n private _formData: any;\r\n private _previousFormData: any;\r\n private _allFormsData: any;\r\n private _field: TFieldApiCall;\r\n private _takeAction: Function;\r\n\r\n private _api: TApi;\r\n private _request: TApiRequest;\r\n private _response: TApiResponse;\r\n private _status: TApiStatus;\r\n\r\n constructor(\r\n field: TFieldApiCall,\r\n formData: any,\r\n previousFormData: any,\r\n allFormsData: any,\r\n takeAction: Function\r\n ) {\r\n this._field = field;\r\n this._formData = formData;\r\n this._previousFormData = previousFormData;\r\n this._allFormsData = allFormsData;\r\n this._takeAction = takeAction;\r\n\r\n this._api = field.api;\r\n this._request = field.api.request;\r\n this._response = field.api.response;\r\n this._status = field.api.status;\r\n }\r\n\r\n @logMethod\r\n public async setRequestBodyParams(): Promise<TFieldApiCall> {\r\n let params: Array<TApiRequestBodyParam> = this._request.body.params;\r\n\r\n let paramIndex = 0;\r\n for (let param of params) {\r\n let sources: Array<TSource> = param.sources;\r\n\r\n let sourceIndex = 0;\r\n for (let source of sources) {\r\n const sources = new Sources({\r\n FIELD_CONFIG: this._field,\r\n FORM_DATA: this._formData,\r\n PREVIOUS_FORM_DATA: this._previousFormData,\r\n ALL_FORMS_DATA: this._allFormsData\r\n });\r\n\r\n const value = sources.getValueFromSource(source);\r\n // Set the Value of current source.\r\n this._field = setValueToObject(\r\n this._field,\r\n `api.request.body.params[${paramIndex}].sources[${sourceIndex}].value`,\r\n value\r\n );\r\n\r\n const validation: TValidation = (source as any).validation;\r\n\r\n const triggers: Array<TTrigger> = validation?.triggers ?? [];\r\n const rules: Array<TRule> = validation?.rules ?? [];\r\n const actions: Array<TAction> = (validation as any)?.actions ?? [];\r\n\r\n const rulesMapping = new Rules(rules, {\r\n FIELD_CONFIG: this._field,\r\n FORM_DATA: this._formData,\r\n PREVIOUS_FORM_DATA: this._previousFormData,\r\n ALL_FORMS_DATA: this._allFormsData\r\n }).mapping();\r\n\r\n for (let action of actions) {\r\n const conditionEvaluation = new Condition(\r\n action.condition,\r\n rulesMapping\r\n ).evaluate();\r\n\r\n if (conditionEvaluation) {\r\n const actions = new Actions(\r\n action,\r\n rulesMapping,\r\n {\r\n FIELD_CONFIG: this._field,\r\n FORM_DATA: this._formData,\r\n PREVIOUS_FORM_DATA: this._previousFormData,\r\n ALL_FORMS_DATA: this._allFormsData\r\n },\r\n this._takeAction\r\n );\r\n\r\n await actions.execute();\r\n }\r\n }\r\n\r\n sourceIndex++;\r\n }\r\n\r\n paramIndex++;\r\n }\r\n\r\n return this._field;\r\n }\r\n\r\n @logMethod\r\n public async validateRequestBody(): Promise<TFieldApiCall> {\r\n const body: TApiRequestBody = this._request.body;\r\n\r\n const validation: TValidation = body.validation;\r\n\r\n const triggers: Array<TTrigger> = validation.triggers;\r\n const rules: Array<TRule> = validation.rules;\r\n const actions: Array<TAction> = (validation as any)?.actions;\r\n\r\n const rulesMapping = new Rules(rules, {\r\n FIELD_CONFIG: this._field,\r\n FORM_DATA: this._formData,\r\n PREVIOUS_FORM_DATA: this._previousFormData,\r\n ALL_FORMS_DATA: this._allFormsData\r\n }).mapping();\r\n\r\n for (let action of actions) {\r\n const conditionSuccess = new Condition(\r\n action.condition,\r\n rulesMapping\r\n ).evaluate();\r\n\r\n if (conditionSuccess) {\r\n const actions = new Actions(\r\n action,\r\n rulesMapping,\r\n {\r\n FIELD_CONFIG: this._field,\r\n FORM_DATA: this._formData,\r\n PREVIOUS_FORM_DATA: this._previousFormData,\r\n ALL_FORMS_DATA: this._allFormsData\r\n },\r\n this._takeAction\r\n );\r\n\r\n await actions.execute();\r\n }\r\n }\r\n\r\n return this._field;\r\n }\r\n\r\n @logMethod\r\n public async validateApiCallResponse(): Promise<TFieldApiCall> {\r\n const validation: TValidation = this._response.validation;\r\n\r\n const triggers: Array<TTrigger> = validation.triggers;\r\n const rules: Array<TRule> = validation.rules;\r\n const actions: Array<TAction> = (validation as any).actions;\r\n\r\n const rulesMapping = new Rules(rules, {\r\n FIELD_CONFIG: this._field,\r\n FORM_DATA: this._formData,\r\n PREVIOUS_FORM_DATA: this._previousFormData,\r\n ALL_FORMS_DATA: this._allFormsData\r\n }).mapping();\r\n\r\n for (let action of actions) {\r\n const conditionSuccess = new Condition(\r\n action.condition,\r\n rulesMapping\r\n ).evaluate();\r\n\r\n if (conditionSuccess) {\r\n const actions = new Actions(\r\n action,\r\n rulesMapping,\r\n {\r\n FIELD_CONFIG: this._field,\r\n FORM_DATA: this._formData,\r\n PREVIOUS_FORM_DATA: this._previousFormData,\r\n ALL_FORMS_DATA: this._allFormsData\r\n },\r\n this._takeAction\r\n );\r\n\r\n await actions.execute();\r\n }\r\n }\r\n\r\n return this._field;\r\n }\r\n\r\n getPropsValues(): any {\r\n return {\r\n field: this._field,\r\n formData: this._formData,\r\n previousFormData: this._previousFormData,\r\n allFormsData: this._allFormsData\r\n };\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n EventEmitter,\r\n Inject,\r\n Input,\r\n OnInit,\r\n Output,\r\n SimpleChanges\r\n} from \"@angular/core\";\r\nimport { FormGroup } from \"@angular/forms\";\r\nimport { TuiAlertService } from \"@taiga-ui/core\";\r\nimport { TuiPushService } from \"@taiga-ui/kit\";\r\nimport {\r\n Actions,\r\n checkObjectKeyExists,\r\n Condition,\r\n isEmptyValue,\r\n isNotEmptyValue,\r\n logMethod,\r\n Rules,\r\n Sources,\r\n TAction\r\n} from \"kwikid-toolkit\";\r\nimport { pairwise } from \"rxjs/operators\";\r\nimport { EActionKey } from \"./definitions/actions/form-view.actions.enum.definitions\";\r\nimport { EApiStatusType } from \"./definitions/apis/form-view.apis.enum.definitions\";\r\nimport { EMessageType } from \"./definitions/common/form-view.common.enum.definitions\";\r\nimport { TMessage } from \"./definitions/common/form-view.common.type.definitions\";\r\nimport { EFieldType } from \"./definitions/fields/form-view.fields.enum.definitions\";\r\nimport {\r\n TField,\r\n TFieldApiCall,\r\n TFieldTitle\r\n} from \"./definitions/fields/form-view.fields.type.definitions\";\r\nimport { KwikIDFormViewService } from \"./form-view.service\";\r\nimport { Apis } from \"./helpers/form-view.apis.helper\";\r\nimport { setEmptyValue } from \"./helpers/form-view.common.helper\";\r\nimport {\r\n addMessage,\r\n convertValueFromKwikUIFormatToBasicFormat,\r\n findFieldFromKey,\r\n findFieldIndexFromKey,\r\n getSearchTextOptionsFromFieldConfig,\r\n getSearchTextOptionsFromRemoteFile,\r\n highlightFieldError,\r\n removeMessage,\r\n setFieldError\r\n} from \"./helpers/form-view.fields.helper\";\r\nimport { Validations } from \"./helpers/form-view.validations.helper\";\r\n\r\n@Component({\r\n selector: \"kwikid-form-view\",\r\n templateUrl: \"./form-view.component.html\",\r\n styleUrls: [\"./form-view.component.scss\"],\r\n providers: [KwikIDFormViewService]\r\n})\r\nexport class KwikIDFormViewComponent implements OnInit, AfterViewInit {\r\n @Input()\r\n formConfig: any;\r\n\r\n @Input()\r\n formData: any;\r\n\r\n @Input()\r\n apiCallResponse: any = {};\r\n\r\n @Input()\r\n isMobileView: boolean = false;\r\n\r\n @Input()\r\n allFormsData: any;\r\n\r\n @Input()\r\n formsList: any[];\r\n\r\n @Output()\r\n onClickViewForms: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n onClickSaveForm: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n onClickApiCall: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n getActiveFormData: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n fieldGroups: any = {};\r\n formFields: any[] = [];\r\n previousFormData: any = {};\r\n\r\n loading: boolean = true;\r\n viewFormsButton = {\r\n disabled: false,\r\n showLoader: false\r\n };\r\n saveFormButton = {\r\n disabled: false,\r\n showLoader: false\r\n };\r\n\r\n formGroup: FormGroup = new FormGroup({});\r\n\r\n constructor(\r\n @Inject(TuiPushService) protected readonly push: TuiPushService,\r\n @Inject(TuiAlertService) protected readonly alert: TuiAlertService,\r\n private formViewService: KwikIDFormViewService\r\n ) {}\r\n\r\n @logMethod\r\n ngOnInit(): void {\r\n (async () => {\r\n await this.initFormConfig(this.formConfig);\r\n\r\n this.loading = false;\r\n })();\r\n }\r\n\r\n @logMethod\r\n ngAfterViewInit(): void {}\r\n\r\n @logMethod\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const verifyChange = (key: string) => {\r\n return checkObjectKeyExists(changes, key) && !changes[key].firstChange;\r\n };\r\n if (verifyChange(\"formData\")) {\r\n this.formData = {\r\n ...this.formData,\r\n ...changes.formData.currentValue\r\n };\r\n }\r\n if (verifyChange(\"apiCallResponse\")) {\r\n this.apiCallResponse = changes.apiCallResponse.currentValue;\r\n\r\n this.formData = {\r\n ...this.formData,\r\n [this.apiCallResponse.key]: this.apiCallResponse.response\r\n };\r\n\r\n this.formGroup.patchValue(\r\n {\r\n [this.apiCallResponse.key]: this.apiCallResponse.response\r\n },\r\n { emitEvent: false }\r\n );\r\n\r\n let field: TFieldApiCall = findFieldFromKey(\r\n this.formFields,\r\n this.apiCallResponse.key\r\n );\r\n\r\n const apis = new Apis(\r\n field,\r\n this.formData,\r\n this.previousFormData,\r\n this.allFormsData,\r\n this.takeAction.bind(this)\r\n );\r\n\r\n (async () => {\r\n field = await apis.validateApiCallResponse();\r\n })();\r\n }\r\n if (verifyChange(\"isMobileView\")) {\r\n this.isMobileView = changes.isMobileView.currentValue;\r\n }\r\n if (verifyChange(\"allFormsData\")) {\r\n this.allFormsData = changes.allFormsData.currentValue;\r\n }\r\n if (verifyChange(\"formsList\")) {\r\n this.formsList = changes.formsList.currentValue;\r\n }\r\n if (verifyChange(\"formConfig\")) {\r\n this.formConfig = changes.formConfig.currentValue;\r\n\r\n (async () => {\r\n await this.initFormConfig(this.formConfig);\r\n })();\r\n }\r\n }\r\n\r\n @logMethod\r\n async initFormConfig(formConfig: any) {\r\n this.setFormFieldsFromFormConfig(formConfig);\r\n\r\n this.setFormFieldGroupsFromFormConfig(formConfig);\r\n\r\n this.setFormDataFromAllFormsData();\r\n\r\n this.formGroup = await this.formViewService.createFormGroup(\r\n this.formFields,\r\n this.formData,\r\n this.previousFormData,\r\n this.allFormsData,\r\n this.takeAction.bind(this)\r\n );\r\n\r\n for (let field of this.formFields) {\r\n if (field.type !== \"title\") {\r\n this.previousFormData = {\r\n ...this.previousFormData,\r\n [field.key]: this.formGroup.controls[field.key].value\r\n };\r\n\r\n this.formGroup.controls[field.key].valueChanges\r\n .pipe(pairwise())\r\n .subscribe(([previousValue, currentValue]) => {\r\n this.previousFormData = {\r\n ...this.previousFormData,\r\n [field.key]: previousValue\r\n };\r\n\r\n this.formData = {\r\n ...this.formData,\r\n [field.key]: currentValue\r\n };\r\n });\r\n }\r\n }\r\n for (let field of this.formFields) {\r\n if (field.type !== \"title\") {\r\n (async () => {\r\n field = await this.handleConnectedElements(\r\n {\r\n key: field.key,\r\n value: this.formGroup.controls[field.key].value\r\n },\r\n \"ON_INIT\"\r\n );\r\n })();\r\n }\r\n }\r\n }\r\n\r\n @logMethod\r\n setFormFieldsFromFormConfig(formConfig: any) {\r\n if (checkObjectKeyExists(formConfig, \"fields\")) {\r\n this.formFields = formConfig.fields;\r\n } else if (\r\n checkObjectKeyExists(formConfig, \"multiForm\") &&\r\n checkObjectKeyExists(formConfig.multiForm, \"fields\")\r\n ) {\r\n this.formFields = formConfig.multiForm.fields;\r\n }\r\n }\r\n\r\n @logMethod\r\n setFormFieldGroupsFromFormConfig(formConfig: any) {\r\n this.fieldGroups = formConfig.fieldGroups;\r\n }\r\n\r\n @logMethod\r\n setFormDataFromAllFormsData() {\r\n if (checkObjectKeyExists(this.allFormsData, this.formConfig.key)) {\r\n this.formData = this.allFormsData[this.formConfig.key];\r\n } else {\r\n this.formData = {};\r\n }\r\n }\r\n\r\n @logMethod\r\n async handleConnectedElementFieldGroupActions(\r\n childFieldGroupConfig: any,\r\n parentField: any\r\n ) {\r\n if (checkObjectKeyExists(childFieldGroupConfig, \"rules\")) {\r\n const rulesMapping = new Rules(childFieldGroupConfig.rules, {\r\n FIELD_CONFIG: parentField,\r\n FORM_DATA: this.formData,\r\n PREVIOUS_FORM_DATA: this.previousFormData,\r\n ALL_FORMS_DATA: this.allFormsData\r\n }).mapping();\r\n\r\n for (let action of childFieldGroupConfig.actions) {\r\n const conditionSuccess = new Condition(\r\n action.condition,\r\n rulesMapping\r\n ).evaluate();\r\n\r\n if (conditionSuccess) {\r\n const actions = new Actions(\r\n action,\r\n rulesMapping,\r\n {\r\n FIELD_CONFIG: parentField,\r\n FORM_DATA: this.formData,\r\n PREVIOUS_FORM_DATA: this.previousFormData,\r\n ALL_FORMS_DATA: this.allFormsData\r\n },\r\n this.takeActionOnFieldGroup.bind(this)\r\n );\r\n\r\n await actions.execute();\r\n }\r\n }\r\n }\r\n }\r\n\r\n @logMethod\r\n async handleConnectedElementFieldGroup(\r\n currentField: any,\r\n connectedFieldGroupConfig: any,\r\n eventType: string\r\n ) {\r\n switch (eventType) {\r\n case \"INIT\":\r\n if (\r\n checkObjectKeyExists(connectedFieldGroupConfig, \"triggers\") &&\r\n connectedFieldGroupConfig.triggers.includes(\"INIT\")\r\n ) {\r\n await this.handleConnectedElementFieldGroupActions(\r\n connectedFieldGroupConfig,\r\n currentField\r\n );\r\n }\r\n break;\r\n case \"VALUE_CHANGE\":\r\n if (\r\n checkObjectKeyExists(connectedFieldGroupConfig, \"triggers\") &&\r\n connectedFieldGroupConfig.triggers.includes(\"VALUE_CHANGE\")\r\n ) {\r\n await this.handleConnectedElementFieldGroupActions(\r\n connectedFieldGroupConfig,\r\n currentField\r\n );\r\n }\r\n break;\r\n case \"NESTED_LINK\":\r\n if (\r\n checkObjectKeyExists(connectedFieldGroupConfig, \"triggers\") &&\r\n connectedFieldGroupConfig.triggers.includes(\"NESTED_LINK\")\r\n ) {\r\n await this.handleConnectedElementFieldGroupActions(\r\n connectedFieldGroupConfig,\r\n currentField\r\n );\r\n }\r\n default:\r\n if (checkObjectKeyExists(connectedFieldGroupConfig, \"triggers\")) {\r\n await this.handleConnectedElementFieldGroupActions(\r\n connectedFieldGroupConfig,\r\n currentField\r\n );\r\n }\r\n break;\r\n }\r\n }\r\n\r\n @logMethod\r\n async handleConnectedElementFieldActions(\r\n connectedFieldConfig: any,\r\n connectedField: any\r\n ) {\r\n if (checkObjectKeyExists(connectedFieldConfig, \"rules\")) {\r\n const rulesMapping = new Rules(connectedFieldConfig.rules, {\r\n FIELD_CONFIG: connectedField,\r\n FORM_DATA: this.formData,\r\n PREVIOUS_FORM_DATA: this.previousFormData,\r\n ALL_FORMS_DATA: this.allFormsData\r\n }).mapping();\r\n\r\n for (let action of connectedFieldConfig.actions) {\r\n const conditionSuccess = new Condition(\r\n action.condition,\r\n rulesMapping\r\n ).evaluate();\r\n\r\n if (conditionSuccess) {\r\n const actions = new Actions(\r\n action,\r\n rulesMapping,\r\n {\r\n FIELD_CONFIG: connectedField,\r\n FORM_DATA: this.formData,\r\n PREVIOUS_FORM_DATA: this.previousFormData,\r\n ALL_FORMS_DATA: this.allFormsData\r\n },\r\n this.takeAction.bind(this)\r\n );\r\n\r\n await actions.execute();\r\n }\r\n }\r\n }\r\n\r\n return connectedField;\r\n }\r\n\r\n @logMethod\r\n async handleConnectedElementFields(\r\n currentField: any,\r\n connectedFieldConfig: any,\r\n eventType: string\r\n ) {\r\n let connectedField = findFieldFromKey(\r\n this.formFields,\r\n connectedFieldConfig[\"key\"]\r\n );\r\n\r\n switch (eventType) {\r\n case \"INIT\":\r\n if (\r\n checkObjectKeyExists(connectedField, \"triggers\") &&\r\n connectedField.triggers.includes(\"INIT\")\r\n ) {\r\n if (this.isFieldEnabled(connectedField.key)) {\r\n if (\r\n checkObjectKeyExists(\r\n connectedFieldConfig,\r\n \"connectedParentFields\"\r\n )\r\n ) {\r\n switch (connectedFieldConfig.type) {\r\n case \"dropdown-with-search\":\r\n connectedField = await this.handleFieldTypeSearchText(\r\n currentField,\r\n connectedField\r\n );\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n }\r\n connectedField = await this.handleConnectedElementFieldActions(\r\n connectedFieldConfig,\r\n connectedField\r\n );\r\n }\r\n break;\r\n case \"VALUE_CHANGE\":\r\n if (\r\n checkObjectKeyExists(connectedFieldConfig, \"triggers\") &&\r\n connectedFieldConfig.triggers.includes(\"VALUE_CHANGE\")\r\n ) {\r\n switch (connectedField.type) {\r\n case \"dropdown-with-search\":\r\n connectedField = await this.handleFieldTypeSearchText(\r\n currentField,\r\n connectedField\r\n );\r\n break;\r\n default:\r\n break;\r\n }\r\n connectedField = await this.handleConnectedElementFieldActions(\r\n connectedFieldConfig,\r\n connectedField\r\n );\r\n }\r\n break;\r\n case \"NESTED_LINK\":\r\n if (\r\n checkObjectKeyExists(connectedFieldConfig, \"triggers\") &&\r\n connectedFieldConfig.triggers.includes(\"NESTED_LINK\")\r\n ) {\r\n connectedField = await this.handleConnectedElementFieldActions(\r\n connectedFieldConfig,\r\n connectedField\r\n );\r\n }\r\n default:\r\n if (checkObjectKeyExists(connectedFieldConfig, \"triggers\")) {\r\n connectedField = await this.handleConnectedElementFieldActions(\r\n connectedFieldConfig,\r\n connectedField\r\n );\r\n }\r\n break;\r\n }\r\n\r\n if (checkObjectKeyExists(connectedField, \"connectedElements\")) {\r\n if (\r\n checkObjectKeyExists(\r\n connectedField.connectedElements,\r\n \"connectedFields\"\r\n )\r\n ) {\r\n for (const connectedFieldConfig of connectedField.connectedElements\r\n .connectedFields) {\r\n connectedField = this.handleConnectedElementFields(\r\n connectedField,\r\n connectedFieldConfig,\r\n \"NESTED_LINK\"\r\n );\r\n }\r\n }\r\n }\r\n\r\n return currentField;\r\n }\r\n\r\n @logMethod\r\n async handleConnectedElements(e: any, eventType: string) {\r\n let currentField = findFieldFromKey(this.formFields, e.key);\r\n\r\n if (currentField !== undefined) {\r\n if (checkObjectKeyExists(currentField, \"connectedElements\")) {\r\n if (\r\n checkObjectKeyExists(\r\n currentField.connectedElements,\r\n \"connectedFieldGroups\"\r\n )\r\n ) {\r\n let connectedFieldGroups =\r\n currentField.connectedElements.connectedFieldGroups;\r\n for (let connectedFieldGroupConfig of connectedFieldGroups) {\r\n await this.handleConnectedElementFieldGroup(\r\n currentField,\r\n connectedFieldGroupConfig,\r\n eventType\r\n );\r\n }\r\n }\r\n if (\r\n checkObjectKeyExists(\r\n currentField.connectedElements,\r\n \"connectedFields\"\r\n )\r\n ) {\r\n let connectedFields = currentField.connectedElements.connectedFields;\r\n for (let connectedFieldConfig of connectedFields) {\r\n currentField = await this.handleConnectedElementFields(\r\n currentField,\r\n connectedFieldConfig,\r\n eventType\r\n );\r\n }\r\n }\r\n }\r\n } else {\r\n throw new Error(\r\n `Field for the given key ['${e.key}'] is not found with eventType: '${eventType}'.`\r\n );\r\n }\r\n }\r\n\r\n // DOM Event Handlers\r\n @logMethod\r\n handleGetKeyValue(e: any) {\r\n this.formGroup.patchValue(\r\n {\r\n [e.key]: e.value\r\n },\r\n { emitEvent: false }\r\n );\r\n\r\n // Currently set only for dropdown-with-search connected fields\r\n let field = findFieldFromKey(this.formFields, e.key);\r\n\r\n if (\r\n field.type !== \"title\" &&\r\n field.validation.triggers.includes(\"ON_CHANGE\")\r\n ) {\r\n const validations = new Validations(\r\n field,\r\n this.formData,\r\n this.previousFormData,\r\n this.allFormsData,\r\n this.takeAction.bind(this)\r\n );\r\n\r\n (async () => {\r\n await validations.validateField();\r\n })();\r\n\r\n this.handleConnectedElements(\r\n {\r\n key: field.key,\r\n value: this.formGroup.controls[field.key].value\r\n },\r\n \"ON_CHANGE\"\r\n );\r\n }\r\n }\r\n\r\n @logMethod\r\n async handleOnClickResetFormFields(e: any, field: TFieldTitle) {\r\n for (let f of field.reset.fields) {\r\n for (let action of f.actions) {\r\n const resetField = findFieldFromKey(\r\n this.formFields,\r\n action.props.fieldKey\r\n );\r\n const actions = new Actions(\r\n action,\r\n {},\r\n {\r\n FIELD_CONFIG: resetField,\r\n FORM_DATA: this.formData,\r\n PREVIOUS_FORM_DATA: this.previousFormData,\r\n ALL_FORMS_DATA: this.allFormsData\r\n },\r\n this.takeAction.bind(this)\r\n );\r\n await actions.execute();\r\n }\r\n }\r\n }\r\n\r\n @logMethod\r\n async handleOnClickApiCall(e: any) {\r\n let field: TFieldApiCall = findFieldFromKey(this.formFields, e.key);\r\n\r\n if (field.type === \"api-call\") {\r\n // set button status to loading\r\n field[\"api\"][\"status\"][\"value\"] = EApiStatusType.LOADING;\r\n field[\"showLoader\"] = true;\r\n this.viewFormsButton[\"disabled\"] = true;\r\n this.viewFormsButton[\"showLoader\"] = true;\r\n this.saveFormButton[\"disabled\"] = true;\r\n this.saveFormButton[\"showLoader\"] = true;\r\n\r\n const apis = new Apis(\r\n field,\r\n this.formData,\r\n this.previousFormData,\r\n this.allFormsData,\r\n this.takeAction.bind(this)\r\n );\r\n\r\n field = await apis.setRequestBodyParams();\r\n\r\n field = await apis.validateRequestBody();\r\n\r\n if (field.api.request.body.validation.is_valid) {\r\n // Call API Here\r\n this.onClickApiCall.emit({\r\n key: e.key,\r\n request: {\r\n mode: \"POST\",\r\n body: field.api.request.body.value,\r\n headers: {},\r\n url: field.api.request.url\r\n }\r\n });\r\n } else {\r\n // Request Body Validation Failed\r\n // Highlight Error in UI to User to Retry After Sometime.\r\n // Take Actions based on Validation\r\n setTimeout(() => {\r\n field[\"api\"][\"status\"][\"value\"] = EApiStatusType.FAILED;\r\n field[\"showLoader\"] = false;\r\n }, 500);\r\n }\r\n\r\n this.viewFormsButton[\"disabled\"] = false;\r\n this.viewFormsButton[\"showLoader\"] = false;\r\n this.saveFormButton[\"disabled\"] = false;\r\n this.saveFormButton[\"showLoader\"] = false;\r\n }\r\n }\r\n\r\n @logMethod\r\n handleOnClickViewForms(e: any) {\r\n this.onClickViewForms.emit({\r\n clicked: true\r\n });\r\n }\r\n\r\n @logMethod\r\n handleOnClickSaveForm(e: any) {\r\n let formData = this.formGroup.getRawValue();\r\n\r\n for (let field of this.formFields) {\r\n if (field.type !== EFieldType.TITLE) {\r\n if (field.hidden) {\r\n delete formData[field.key];\r\n } else {\r\n formData[field.key] = convertValueFromKwikUIFormatToBasicFormat(\r\n field,\r\n formData[field.key]\r\n );\r\n }\r\n }\r\n }\r\n\r\n for (let field of this.formFields) {\r\n if (\r\n field.type !== EFieldType.TITLE &&\r\n field.validation.triggers.includes(\"ON_SAVE\")\r\n ) {\r\n const validations = new Validations(\r\n field,\r\n formData,\r\n this.previousFormData,\r\n this.allFormsData,\r\n this.takeAction.bind(this)\r\n );\r\n\r\n (async () => {\r\n await validations.validateField();\r\n })();\r\n }\r\n }\r\n\r\n if (this.formGroup.invalid) {\r\n const controls = new Validations(\r\n undefined,\r\n formData,\r\n this.previousFormData,\r\n this.allFormsData,\r\n this.takeAction.bind(this)\r\n ).findInvalidControlsRecursive(this.formGroup);\r\n\r\n let firstFieldWithError: string = \"\";\r\n\r\n for (let control of controls) {\r\n if (control.invalid && isEmptyValue(firstFieldWithError)) {\r\n firstFieldWithError = control.key;\r\n }\r\n this.formFields = setFieldError(\r\n this.formFields,\r\n this.formGroup.controls[control.key].errors,\r\n control.key,\r\n control.invalid\r\n );\r\n }\r\n\r\n this.toggleErrorNotification(true);\r\n setTimeout(() => {\r\n this.toggleErrorNotification(false);\r\n }, 3000);\r\n\r\n return;\r\n }\r\n\r\n Object.keys(formData).map((key) => {\r\n if (isEmptyValue(formData[key])) {\r\n formData[key] = \"\";\r\n }\r\n });\r\n\r\n this.onClickSaveForm.emit({ formConfig: this.formConfig, data: formData });\r\n }\r\n\r\n showErrorNotification: boolean = false;\r\n @logMethod\r\n toggleErrorNotification(show) {\r\n this.showErrorNotification = show;\r\n }\r\n\r\n // Component Helpers\r\n @logMethod\r\n fieldHide(fieldKey: string) {\r\n let field = findFieldFromKey(this.formFields, fieldKey);\r\n let fieldIndex = this.formFields.findIndex((_: any) => {\r\n return field.key === _.key;\r\n });\r\n\r\n this.formFields[fieldIndex][\"hidden\"] = true;\r\n this.formGroup.updateValueAndValidity();\r\n }\r\n\r\n @logMethod\r\n fieldGroupHide(fieldGroup: string) {\r\n for (let fieldKey of this.fieldGroups[fieldGroup]) {\r\n this.fieldHide(fieldKey);\r\n }\r\n }\r\n\r\n @logMethod\r\n fieldShow(fieldKey: string) {\r\n let field = findFieldFromKey(this.formFields, fieldKey);\r\n let fieldIndex = this.formFields.findIndex((_: any) => {\r\n return field.key === _.key;\r\n });\r\n\r\n this.formFields[fieldIndex][\"hidden\"] = false;\r\n this.formGroup.updateValueAndValidity();\r\n }\r\n\r\n @logMethod\r\n fieldGroupShow(fieldGroup: string) {\r\n for (let fieldKey of this.fieldGroups[fieldGroup]) {\r\n this.fieldShow(fieldKey);\r\n }\r\n }\r\n\r\n @logMethod\r\n fieldDisable(fieldKey: string) {\r\n let field = findFieldFromKey(this.formFields, fieldKey);\r\n let fieldIndex = this.formFields.findIndex((_: any) => {\r\n return field.key === _.key;\r\n });\r\n\r\n if (field.type !== EFieldType.TITLE) {\r\n this.formFields[fieldIndex][\"disabled\"] = true;\r\n\r\n if (isNotEmptyValue(this.formGroup.controls)) {\r\n this.formGroup.controls[field.key].disable({\r\n emitEvent: false\r\n });\r\n }\r\n this.formGroup.updateValueAndValidity();\r\n }\r\n }\r\n\r\n @logMethod\r\n fieldGroupDisable(fieldGroup: string) {\r\n for (let fieldKey of this.fieldGroups[fieldGroup]) {\r\n this.fieldDisable(fieldKey);\r\n }\r\n }\r\n\r\n @logMethod\r\n fieldEnable(fieldKey: string) {\r\n let field = findFieldFromKey(this.formFields, fieldKey);\r\n let fieldIndex = this.formFields.findIndex((_: any) => {\r\n return field.key === _.key;\r\n });\r\n\r\n if (field.type !== EFieldType.TITLE) {\r\n this.formFields[fieldIndex][\"disabled\"] = false;\r\n\r\n if (isNotEmptyValue(this.formGroup.controls)) {\r\n this.formGroup.controls[field.key].enable({\r\n emitEvent: false\r\n });\r\n }\r\n this.formGroup.updateValueAndValidity();\r\n }\r\n }\r\n\r\n @logMethod\r\n fieldGroupEnable(fieldGroup: string) {\r\n for (let fieldKey of this.fieldGroups[fieldGroup]) {\r\n this.fieldEnable(fieldKey);\r\n }\r\n }\r\n\r\n @logMethod\r\n fieldReset(fieldKey: string) {\r\n // Find the field and its index in the formFields array\r\n let field = findFieldFromKey(this.formFields, fieldKey);\r\n let fieldIndex = findFieldIndexFromKey(this.formFields, fieldKey);\r\n\r\n // Delete the field from the formData object\r\n delete this.formData[fieldKey];\r\n\r\n // Reset the value of the field in the formGroup\r\n this.formGroup.controls[field.key].reset(setEmptyValue(field), {\r\n emitEvent: false\r\n });\r\n\r\n // Reset the messages and errors for the field\r\n field = removeMessage(field, {\r\n type: EMessageType.WARNING,\r\n message: \"\"\r\n });\r\n field = removeMessage(field, {\r\n type: EMessageType.SUCCESS,\r\n message: \"\"\r\n });\r\n this.fieldErrorHide(fieldKey, {\r\n type: EMessageType.ERROR,\r\n message: \"\"\r\n });\r\n\r\n // Reset the value of the field in the formFields array\r\n switch (field.type) {\r\n case \"api-call\":\r\n const fieldApiCall = field as TFieldApiCall;\r\n fieldApiCall.api.status.value = EApiStatusType.DEFAULT;\r\n this.formFields[fieldIndex] = fieldApiCall;\r\n break;\r\n default:\r\n field.focus = false;\r\n field.invalid = false;\r\n this.formFields[fieldIndex] = field;\r\n break;\r\n }\r\n }\r\n\r\n @logMethod\r\n fieldErrorShow(fieldKey: string, message: TMessage) {\r\n let field = findFieldFromKey(this.formFields, fieldKey);\r\n let fieldIndex = this.formFields.findIndex((_: any) => {\r\n return field.key === _.key;\r\n });\r\n\r\n field = highlightFieldError(field, true);\r\n field = addMessage(field, message);\r\n\r\n this.formFields[fieldIndex] = field;\r\n }\r\n\r\n @logMethod\r\n fieldErrorHide(fieldKey: string, message: TMessage) {\r\n let field = findFieldFromKey(this.formFields, fieldKey);\r\n let fieldIndex = this.formFields.findIndex((_: any) => {\r\n return field.key === _.key;\r\n });\r\n\r\n field = highlightFieldError(field, false);\r\n field = removeMessage(field, message);\r\n\r\n this.formFields[fieldIndex] = field;\r\n }\r\n\r\n @logMethod\r\n fieldMessageShow(fieldKey: string, message: TMessage) {\r\n let field = findFieldFromKey(this.formFields, fieldKey);\r\n let fieldIndex = this.formFields.findIndex((_: any) => {\r\n return field.key === _.key;\r\n });\r\n\r\n field = addMessage(field, message);\r\n\r\n this.formFields[fieldIndex] = field;\r\n }\r\n\r\n @logMethod\r\n fieldMessageHide(fieldKey: string, message: TMessage) {\r\n let field = findFieldFromKey(this.formFields, fieldKey);\r\n let fieldIndex = this.formFields.findIndex((_: any) => {\r\n return field.key === _.key;\r\n });\r\n\r\n field = removeMessage(field, message);\r\n\r\n this.formFields[fieldIndex] = field;\r\n }\r\n\r\n @logMethod\r\n setObjectValue(field: any, path: string, value: any) {}\r\n\r\n @logMethod\r\n patchFieldControlValue(key: string, value: any) {\r\n this.formGroup.patchValue(\r\n {\r\n [key]: value\r\n },\r\n { emitEvent: false }\r\n );\r\n }\r\n\r\n @logMethod\r\n isFieldValid(fieldKey: string) {\r\n return this.formGroup.controls[fieldKey].valid;\r\n }\r\n\r\n @logMethod\r\n isFieldEnabled(fieldKey: string) {\r\n return this.formGroup.controls[fieldKey].enabled;\r\n }\r\n\r\n @logMethod\r\n getFormGroupRawValues() {\r\n return this.formGroup.getRawValue();\r\n }\r\n\r\n @logMethod\r\n async handleFieldTypeSearchText(field: any, childField: any) {\r\n if (checkObjectKeyExists(childField, \"json\")) {\r\n childField.options = getSearchTextOptionsFromFieldConfig(\r\n field,\r\n childField,\r\n this.formGroup\r\n );\r\n }\r\n if (checkObjectKeyExists(childField, \"fetchJsonFromRemote\")) {\r\n childField.options = await getSearchTextOptionsFromRemoteFile(\r\n field,\r\n childField,\r\n this.formGroup\r\n );\r\n }\r\n\r\n return childField;\r\n }\r\n\r\n @logMethod\r\n async takeActionOnFieldGroup(\r\n action: TAction,\r\n field: TField,\r\n allFormsData: any,\r\n formData: any,\r\n previousFormData: any\r\n ) {\r\n switch (action.key) {\r\n case EActionKey.FIELD_GROUP_HIDE:\r\n this.fieldGroupHide(action.props.groupKey);\r\n break;\r\n case EActionKey.FIELD_GROUP_SHOW:\r\n this.fieldGroupShow(action.props.groupKey);\r\n break;\r\n case EActionKey.FIELD_GROUP_ENABLE:\r\n this.fieldGroupEnable(action.props.groupKey);\r\n break;\r\n case EActionKey.FIELD_GROUP_DISABLE:\r\n this.fieldGroupDisable(action.props.groupKey);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n @logMethod\r\n async takeAction(action: TAction, object: any) {\r\n switch (action.key) {\r\n case EActionKey.FIELD_HIDE:\r\n this.fieldHide(action.props.fieldKey);\r\n break;\r\n case EActionKey.FIELD_SHOW:\r\n this.fieldShow(action.props.fieldKey);\r\n break;\r\n case EActionKey.FIELD_DISABLE:\r\n this.fieldDisable(action.props.fieldKey);\r\n break;\r\n case EActionKey.FIELD_ENABLE:\r\n this.fieldEnable(action.props.fieldKey);\r\n break;\r\n case EActionKey.FIELD_RESET:\r\n this.fieldReset(action.props.fieldKey);\r\n break;\r\n case EActionKey.FIELD_ERROR_SHOW:\r\n this.fieldErrorShow(action.props.fieldKey, action.props.message);\r\n break;\r\n case EActionKey.FIELD_ERROR_HIDE:\r\n this.fieldErrorHide(action.props.fieldKey, action.props.message);\r\n break;\r\n case EActionKey.FIELD_MESSAGE_SHOW:\r\n this.fieldMessageShow(action.props.fieldKey, action.props.message);\r\n break;\r\n case EActionKey.FIELD_MESSAGES_HIDE:\r\n this.fieldMessageHide(action.props.fieldKey, action.props.message);\r\n break;\r\n case EActionKey.SET_VALUE:\r\n const sources = new Sources(object);\r\n\r\n const sourceValue = await sources.getValueFromSource(\r\n action.props.value.source\r\n );\r\n sources.setValueToSource(action.props.value.destination, sourceValue);\r\n\r\n object.FIELD_CONFIG = sources.object.FIELD_CONFIG;\r\n this.formData = sources.object.FORM_DATA;\r\n this.allFormsData = sources.object.ALL_FORMS_DATA;\r\n this.previousFormData = sources.object.PREVIOUS_FORM_DATA;\r\n\r\n break;\r\n case EActionKey.HANDLE_CONNECTED_ELEMENTS:\r\n this.handleConnectedElements({ key: action.props.fieldKey }, \"ACTION\");\r\n break;\r\n case EActionKey.CUSTOM:\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n}\r\n","<div\r\n class=\"kwikid-form-container\"\r\n *ngIf=\"!this.loading\"\r\n>\r\n <div id=\"uf-form-fields-header-container\">\r\n <div id=\"uf-form-fields-title\">\r\n {{ this.formConfig.title }}\r\n </div>\r\n <div id=\"uf-form-fields-steps\">\r\n Step {{ this.formConfig.sequenceNo }} of {{ this.formsList.length }}\r\n </div>\r\n <hr />\r\n </div>\r\n <form\r\n class=\"kwikid-form show\"\r\n [formGroup]=\"this.formGroup\"\r\n >\r\n <ng-container *ngFor=\"let field of this.formFields; let i = index\">\r\n <ng-container [ngSwitch]=\"field.type\">\r\n <!-- Form Title -->\r\n <ng-container *ngSwitchCase=\"'title'\">\r\n <div\r\n class=\"title\"\r\n [class.hidden]=\"field?.hidden\"\r\n id=\"field_{{ field.key }}\"\r\n >\r\n <div>\r\n {{ field.label }}\r\n </div>\r\n <kwikui-button\r\n *ngIf=\"field?.reset\"\r\n appearance=\"whiteblock\"\r\n size=\"s\"\r\n label=\"Reset\"\r\n (onClick)=\"this.handleOnClickResetFormFields($event, field)\"\r\n ></kwikui-button>\r\n </div>\r\n </ng-container>\r\n <!-- Input Text -->\r\n <ng-container *ngSwitchCase=\"'text'\">\r\n <div\r\n [hidden]=\"field?.hidden\"\r\n id=\"field_{{ field.key }}\"\r\n >\r\n <kwikui-input\r\n [case]=\"field?.properties?.case\"\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [label]=\"field.label\"\r\n [placeholder]=\"field?.properties?.placeholder\"\r\n [type]=\"'text'\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-input>\r\n <kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- Checkbox -->\r\n <ng-container *ngSwitchCase=\"'checkbox'\">\r\n <div\r\n [hidden]=\"field?.hidden\"\r\n id=\"field_{{ field.key }}\"\r\n >\r\n <kwikui-checkbox-block\r\n [contentAlign]=\"field?.properties?.contentAlign ?? 'left'\"\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [label]=\"field?.properties?.placeholder\"\r\n [placeholder]=\"field?.properties?.placeholder\"\r\n [properties]=\"field?.properties\"\r\n [size]=\"field?.properties?.size ?? 'l'\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-checkbox-block\r\n ><kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- Input Number -->\r\n <ng-container *ngSwitchCase=\"'number'\">\r\n <div\r\n [hidden]=\"field?.hidden\"\r\n id=\"field_{{ field.key }}\"\r\n >\r\n <kwikui-input-number\r\n [decimal]=\"field?.properties?.decimal\"\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [label]=\"field?.label\"\r\n [max]=\"field?.properties?.max\"\r\n [min]=\"field?.properties?.min\"\r\n [placeholder]=\"field?.properties?.placeholder\"\r\n [postfix]=\"field?.properties?.postfix ?? ''\"\r\n [precision]=\"field?.properties?.precision\"\r\n [prefix]=\"field?.properties?.prefix ?? ''\"\r\n [properties]=\"field?.properties\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-input-number\r\n ><kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- Input Date -->\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <div\r\n [hidden]=\"field?.hidden\"\r\n id=\"field_{{ field.key }}\"\r\n >\r\n <kwikui-input-date\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [label]=\"field.label\"\r\n [max]=\"field?.properties?.max\"\r\n [min]=\"field?.properties?.min\"\r\n [placeholder]=\"field?.properties?.placeholder\"\r\n [properties]=\"field?.properties\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-input-date>\r\n <kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- Input Phone -->\r\n <ng-container *ngSwitchCase=\"'phone'\">\r\n <div\r\n [hidden]=\"field?.hidden\"\r\n id=\"field_{{ field.key }}\"\r\n >\r\n <kwikui-input-phone\r\n [countryCode]=\"field?.properties?.countryCode\"\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [label]=\"field?.label\"\r\n [phoneMaskAfterCountryCode]=\"\r\n field?.properties?.phoneMaskAfterCountryCode\r\n \"\r\n [placeholder]=\"field?.placeholder\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-input-phone>\r\n <kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- Input Radio -->\r\n <ng-container *ngSwitchCase=\"'radio'\">\r\n <div\r\n [hidden]=\"field?.hidden\"\r\n id=\"field_{{ field.key }}\"\r\n >\r\n <label\r\n [tuiLabel]=\"labelTemplate\"\r\n style=\"min-height: auto\"\r\n >\r\n <kwikui-radio-list\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [items]=\"field?.options\"\r\n [label]=\"field?.label\"\r\n [orientation]=\"field?.properties?.orientation\"\r\n [placeholder]=\"field?.properties?.placeholder\"\r\n [properties]=\"field?.properties\"\r\n [size]=\"field?.properties?.size\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-radio-list>\r\n </label>\r\n <ng-template #labelTemplate>\r\n <p\r\n class=\"tui-space_bottom-2\"\r\n [hidden]=\"field?.hidden\"\r\n id=\"field_{{ field.key }}\"\r\n >\r\n <b>\r\n {{ field.label }}\r\n <span *ngIf=\"field.validators?.required\"></span>\r\n </b>\r\n </p>\r\n </ng-template>\r\n <kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- Dropdown -->\r\n <ng-container *ngSwitchCase=\"'dropdown-with-search'\">\r\n <div\r\n [hidden]=\"field?.hidden\"\r\n id=\"field_{{ field.key }}\"\r\n >\r\n <kwikui-select-combobox\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [label]=\"field.label\"\r\n [options]=\"field.options\"\r\n [placeholder]=\"field?.properties?.placeholder\"\r\n [properties]=\"field?.properties\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-select-combobox>\r\n <kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- API Call -->\r\n <ng-container *ngSwitchCase=\"'api-call'\">\r\n <div\r\n [hidden]=\"field?.hidden\"\r\n id=\"field_{{ field.key }}\"\r\n >\r\n <kwikui-button-api-call\r\n [apiStatus]=\"field?.api?.status?.value\"\r\n [class]=\"field?.class\"\r\n [disabled]=\"field?.disabled\"\r\n [id]=\"field.key\"\r\n [label]=\"field?.api?.status?.labels[field?.api?.status?.value]\"\r\n [showLoader]=\"field?.disabled === 'loading'\"\r\n shape=\"null\"\r\n size=\"m\"\r\n styles=\"width: fit-content\"\r\n (onClick)=\"this.handleOnClickApiCall($event)\"\r\n ></kwikui-button-api-call>\r\n <kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- Mobile OTP -->\r\n <ng-container *ngSwitchCase=\"'otp'\">\r\n <div\r\n [hidden]=\"field?.hidden\"\r\n id=\"field_{{ field.key }}\"\r\n >\r\n <kwikui-input-otp\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [label]=\"field?.label\"\r\n [mask]=\"field?.properties?.mask\"\r\n [placeholder]=\"field?.properties?.placeholder\"\r\n [properties]=\"field?.properties\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-input-otp>\r\n <kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- Aadhaar Number -->\r\n <ng-container *ngSwitchCase=\"'aadhaar-number'\">\r\n <div\r\n [hidden]=\"field?.hidden\"\r\n id=\"field_{{ field.key }}\"\r\n >\r\n <kwikui-input-aadhaar\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [label]=\"field?.label\"\r\n [placeholder]=\"field?.placeholder\"\r\n [properties]=\"field?.properties\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-input-aadhaar>\r\n <kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </form>\r\n <div class=\"kwikid-form-buttons\">\r\n <kwikui-button\r\n *ngIf=\"this.isMobileView\"\r\n [disabled]=\"viewFormsButton.disabled\"\r\n id=\"\"\r\n label=\"View Forms\"\r\n [showLoader]=\"viewFormsButton.showLoader\"\r\n styles=\"\"\r\n class=\"\"\r\n type=\"button\"\r\n appearance=\"secondary\"\r\n icon=\"\"\r\n iconRight=\"\"\r\n [shape]=\"null\"\r\n size=\"m\"\r\n styles=\"width: 100%\"\r\n (onClick)=\"this.handleOnClickViewForms($event)\"\r\n ></kwikui-button>\r\n <kwikui-button\r\n [disabled]=\"saveFormButton.disabled\"\r\n id=\"\"\r\n label=\"Save\"\r\n [showLoader]=\"saveFormButton.showLoader\"\r\n styles=\"\"\r\n class=\"\"\r\n type=\"button\"\r\n appearance=\"primary\"\r\n icon=\"\"\r\n iconRight=\"\"\r\n [shape]=\"null\"\r\n size=\"m\"\r\n styles=\"width: 100%\"\r\n (onClick)=\"this.handleOnClickSaveForm($event)\"\r\n ></kwikui-button>\r\n </div>\r\n</div>\r\n<div\r\n class=\"kwikid-form-container-loading\"\r\n *ngIf=\"this.loading\"\r\n>\r\n <div\r\n class=\"large-wrapper\"\r\n [class.tui-skeleton]=\"this.loading\"\r\n [class.tui-skeleton_rounded]=\"this.loading\"\r\n ></div>\r\n <div\r\n class=\"large-wrapper\"\r\n [class.tui-skeleton]=\"this.loading\"\r\n [class.tui-skeleton_rounded]=\"this.loading\"\r\n ></div>\r\n <div\r\n class=\"large-wrapper\"\r\n [class.tui-skeleton]=\"this.loading\"\r\n [class.tui-skeleton_rounded]=\"this.loading\"\r\n ></div>\r\n <div\r\n class=\"large-wrapper\"\r\n [class.tui-skeleton]=\"this.loading\"\r\n [class.tui-skeleton_rounded]=\"this.loading\"\r\n ></div>\r\n <div\r\n class=\"large-wrapper\"\r\n [class.tui-skeleton]=\"this.loading\"\r\n [class.tui-skeleton_rounded]=\"this.loading\"\r\n ></div>\r\n <div\r\n class=\"large-wrapper\"\r\n [class.tui-skeleton]=\"this.loading\"\r\n [class.tui-skeleton_rounded]=\"this.loading\"\r\n ></div>\r\n <div\r\n class=\"large-wrapper\"\r\n [class.tui-skeleton]=\"this.loading\"\r\n [class.tui-skeleton_rounded]=\"this.loading\"\r\n ></div>\r\n</div>\r\n<tui-push\r\n id=\"field-error-notification\"\r\n *tuiPush=\"showErrorNotification\"\r\n heading=\"Missing/Incorrect Fields!\"\r\n type=\"Error\"\r\n (close)=\"toggleErrorNotification(false)\"\r\n>\r\n <tui-svg\r\n src=\"tuiIconCancel\"\r\n style=\"color: #fff !important\"\r\n >\r\n </tui-svg>\r\n</tui-push>\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges\r\n} from \"@angular/core\";\r\nimport { checkObjectKeyExists, logMethod } from \"kwikid-toolkit\";\r\n\r\n@Component({\r\n selector: \"kwikid-forms-list\",\r\n templateUrl: \"./forms-list.component.html\",\r\n styleUrls: [\"./forms-list.component.scss\"]\r\n})\r\nexport class KwikIDFormsListComponent implements OnInit, OnChanges {\r\n @Input()\r\n showFormFields: any = {};\r\n\r\n @Input()\r\n userConfig: any = {};\r\n\r\n @Input()\r\n formsList: any[] = [];\r\n\r\n @Input()\r\n formsListCompleted: any[] = [];\r\n\r\n @Input()\r\n isMobileView: boolean = false;\r\n\r\n @Output()\r\n onClickSetActiveForm: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n onClickHideFormsList: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n onClickSubmitForms = new EventEmitter<any>();\r\n\r\n selectedForm: string = \"\";\r\n\r\n isAllFormsCompleted: boolean = true;\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {\r\n this.isAllFormsCompleted = this.checkIsAllFormsCompleted(this.formsList);\r\n }\r\n\r\n @logMethod\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const verifyChange = (key: string) => {\r\n return checkObjectKeyExists(changes, key) && !changes[key].firstChange;\r\n };\r\n if (verifyChange(\"showFormFields\")) {\r\n this.showFormFields = changes.showFormFields.currentValue;\r\n }\r\n if (verifyChange(\"formsList\")) {\r\n this.formsList = changes.formsList.currentValue;\r\n this.isAllFormsCompleted = this.checkIsAllFormsCompleted(this.formsList);\r\n }\r\n if (verifyChange(\"isMobileView\")) {\r\n this.isMobileView = changes.isMobileView.currentValue;\r\n }\r\n }\r\n\r\n checkIsAllFormsCompleted(formsList: any[]): boolean {\r\n let isAllFormsCompleted: boolean = true;\r\n\r\n for (let forms of formsList) {\r\n if (forms.status !== \"completed\") {\r\n isAllFormsCompleted = false;\r\n break;\r\n }\r\n }\r\n\r\n return isAllFormsCompleted;\r\n }\r\n\r\n handleOnClickSetActiveForm(selectedForm: string) {\r\n if (\r\n this.selectedForm !== selectedForm ||\r\n (this.isAllFormsCompleted && !this.showFormFields)\r\n ) {\r\n this.selectedForm = selectedForm;\r\n this.onClickSetActiveForm.emit(selectedForm);\r\n }\r\n }\r\n\r\n handleOnSubmitForms(e: any) {\r\n this.onClickSubmitForms.emit(e);\r\n }\r\n}\r\n","<div id=\"sidebar-container\">\r\n <div id=\"sidebar\">\r\n <div ngClass=\"kwikid-form-header\">\r\n <div id=\"uf-header\">\r\n <div id=\"uf-header-logo-container\">\r\n <img\r\n id=\"uf-header-logo\"\r\n src=\"{{ this.userConfig.theme.clientLogo }}\"\r\n [ngClass]=\"'large-icon'\"\r\n />\r\n </div>\r\n </div>\r\n <hr />\r\n </div>\r\n <div id=\"uf-progress\">\r\n <div id=\"uf-progress-steps\">\r\n {{ this.formsListCompleted.length }} / {{ this.formsList.length }} Steps\r\n Completed\r\n </div>\r\n <kwikui-progress-segmented\r\n [max]=\"this.formsList.length\"\r\n size=\"m\"\r\n [value]=\"this.formsListCompleted.length\"\r\n ></kwikui-progress-segmented>\r\n </div>\r\n <div id=\"uf-sections-container\">\r\n <div\r\n *ngFor=\"let form of formsList; let i = index\"\r\n [class]=\"'uf-section-item'\"\r\n [class.completed]=\"form.status === 'completed' && !form.disabled\"\r\n [class.edit]=\"form.status === 'editable' && !form.disabled\"\r\n [class.locked]=\"form.status === 'locked' && form.disabled\"\r\n (click)=\"\r\n form.status === 'locked' && form.disabled\r\n ? undefined\r\n : handleOnClickSetActiveForm(form.key)\r\n \"\r\n >\r\n <div class=\"uf-form-section-card-title\">\r\n {{ form.title }}\r\n </div>\r\n <div class=\"uf-form-section-card-action\">\r\n <div\r\n *ngIf=\"form.status === 'completed' && !form.disabled\"\r\n class=\"uf-form-section-card-action-img completed\"\r\n >\r\n <tui-svg src=\"tuiIconCheckLarge\"></tui-svg>\r\n </div>\r\n <div\r\n *ngIf=\"form.status !== 'completed' && !form.disabled\"\r\n class=\"uf-form-section-card-action-img edit\"\r\n >\r\n <tui-svg src=\"tuiIconEdit\"></tui-svg>\r\n </div>\r\n <div\r\n *ngIf=\"form.status !== 'completed' && form.disabled\"\r\n class=\"uf-form-section-card-action-img locked\"\r\n >\r\n <tui-svg src=\"tuiIconLock\"></tui-svg>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div id=\"submit-sidebar-btn-container\">\r\n <kwikui-button\r\n [disabled]=\"false\"\r\n id=\"\"\r\n label=\"Submit\"\r\n [showLoader]=\"false\"\r\n styles=\"\"\r\n class=\"\"\r\n type=\"button\"\r\n appearance=\"primary\"\r\n icon=\"\"\r\n iconRight=\"\"\r\n [shape]=\"null\"\r\n size=\"m\"\r\n styles=\"width: 100%\"\r\n (onClick)=\"handleOnSubmitForms($event)\"\r\n ></kwikui-button>\r\n </div>\r\n </div>\r\n</div>\r\n","import { TuiDay } from \"@taiga-ui/cdk\";\r\nimport {\r\n logMethod,\r\n checkObjectKeyExists,\r\n isEmptyValue,\r\n isNotEmptyValue\r\n} from \"kwikid-toolkit\";\r\nimport { convertDateStringToTuiDayFormat } from \"./form-view/helpers/form-view.fields.helper\";\r\n\r\nexport class Converter {\r\n getFormFields = (formConfig: any): any[] => {\r\n let fields: any[];\r\n\r\n if (checkObjectKeyExists(formConfig, \"multiForm\")) {\r\n fields = formConfig.multiForm.fields;\r\n } else {\r\n fields = formConfig.fields;\r\n }\r\n\r\n return fields;\r\n };\r\n\r\n setMissingFieldKeyValue = (field: any, key: string, value: any): any => {\r\n if (!checkObjectKeyExists(field, key)) {\r\n field[key] = value;\r\n }\r\n return field;\r\n };\r\n\r\n setFieldKeyValue = (field: any, key: string, value: any): any => {\r\n field[key] = value;\r\n\r\n return field;\r\n };\r\n\r\n removeFieldKey = (field: any, key: string): any => {\r\n if (checkObjectKeyExists(field, key)) {\r\n delete field[key];\r\n }\r\n\r\n return field;\r\n };\r\n\r\n @logMethod\r\n convertFormConfig(formConfig: any): any {\r\n const updateOnFieldType = (field: any): any => {\r\n const formatFieldTypeTitle = (field: any): any => {\r\n field = this.setFieldKeyValue(field, \"hidden\", false);\r\n\r\n return field;\r\n };\r\n const formatFieldTypeRadio = (field: any): any => {\r\n field.properties = this.setMissingFieldKeyValue(\r\n field.properties,\r\n \"size\",\r\n \"m\"\r\n );\r\n field.properties = this.setMissingFieldKeyValue(\r\n field.properties,\r\n \"orientation\",\r\n \"vertical\"\r\n );\r\n field = this.setFieldKeyValue(field, \"hidden\", false);\r\n\r\n field.options = field.options.map((x: any): any => {\r\n if (typeof x === \"string\" || typeof x === \"number\") {\r\n return { label: x, disabled: false };\r\n } else {\r\n if (\r\n checkObjectKeyExists(x, \"label\") &&\r\n checkObjectKeyExists(x, \"disabled\")\r\n ) {\r\n return x;\r\n }\r\n }\r\n });\r\n\r\n return field;\r\n };\r\n const formatFieldTypeOtp = (field: any): any => {\r\n field.properties = this.setMissingFieldKeyValue(\r\n field.properties,\r\n \"mask\",\r\n new Array(field.properties.otpLength).fill(\"#\").join(\" \")\r\n );\r\n field = this.setFieldKeyValue(field, \"hidden\", false);\r\n\r\n return field;\r\n };\r\n const formatFieldTypeDate = (field: any): any => {\r\n if (checkObjectKeyExists(field, \"min\")) {\r\n const tuiDay = convertDateStringToTuiDayFormat(field[\"min\"]);\r\n field.properties = this.setFieldKeyValue(\r\n field.properties,\r\n \"min\",\r\n tuiDay\r\n );\r\n } else {\r\n field.properties = this.setMissingFieldKeyValue(\r\n field.properties,\r\n \"min\",\r\n new TuiDay(0, 0, 1)\r\n ); // Year - 0000, Month - 0 (0 Indexing), Day - 1\r\n }\r\n\r\n if (checkObjectKeyExists(field, \"max\")) {\r\n const tuiDay = convertDateStringToTuiDayFormat(field[\"max\"]);\r\n field.properties = this.setFieldKeyValue(\r\n field.properties,\r\n \"max\",\r\n tuiDay\r\n );\r\n } else {\r\n field.properties = this.setMissingFieldKeyValue(\r\n field.properties,\r\n \"max\",\r\n new TuiDay(\r\n new Date().getFullYear(), // Year - 9999\r\n new Date().getMonth(), // Month - 11 (0 Indexing)\r\n new Date().getDate() // Day - 31\r\n )\r\n );\r\n }\r\n\r\n field.properties = this.setMissingFieldKeyValue(\r\n field.properties,\r\n \"placeholder\",\r\n \"\"\r\n );\r\n\r\n field = this.setFieldKeyValue(field, \"hidden\", false);\r\n\r\n return field;\r\n };\r\n const formatFieldTypeNumber = (field: any): any => {\r\n if (checkObjectKeyExists(field, \"key\")) {\r\n if (field.key === \"aadhaar_number\") {\r\n field = this.setFieldKeyValue(field, \"type\", \"aadhaar_number\");\r\n }\r\n if (field.key === \"contact_number\") {\r\n field = this.setFieldKeyValue(field, \"type\", \"phone\");\r\n }\r\n\r\n if (field.type === \"phone\" || field.type === \"number\") {\r\n field.properties = this.setMissingFieldKeyValue(\r\n field.properties,\r\n \"countryCode\",\r\n \"+91\"\r\n );\r\n field.properties = this.setMissingFieldKeyValue(\r\n field.properties,\r\n \"phoneMaskAfterCountryCode\",\r\n \"####-######\"\r\n );\r\n field.properties = this.setMissingFieldKeyValue(\r\n field.properties,\r\n \"removeCountryCodeFromValue\",\r\n true\r\n );\r\n field.properties = this.setMissingFieldKeyValue(\r\n field.properties,\r\n \"decimal\",\r\n \"never\"\r\n );\r\n field.properties = this.setMissingFieldKeyValue(\r\n field.properties,\r\n \"prefix\",\r\n \"\"\r\n );\r\n field.properties = this.setMissingFieldKeyValue(\r\n field.properties,\r\n \"postfix\",\r\n \"\"\r\n );\r\n field.properties = this.setMissingFieldKeyValue(\r\n field.properties,\r\n \"min\",\r\n -Infinity\r\n );\r\n field.properties = this.setMissingFieldKeyValue(\r\n field.properties,\r\n \"max\",\r\n Infinity\r\n );\r\n field.properties = this.setMissingFieldKeyValue(\r\n field.properties,\r\n \"precision\",\r\n 2\r\n );\r\n }\r\n }\r\n\r\n field = this.setFieldKeyValue(field, \"hidden\", false);\r\n\r\n return field;\r\n };\r\n const formatFieldTypeApiCall = (field: any): any => {\r\n if (!checkObjectKeyExists(field.properties, \"shape\")) {\r\n field.properties = this.setFieldKeyValue(\r\n field.properties,\r\n \"shape\",\r\n null\r\n );\r\n }\r\n if (!checkObjectKeyExists(field, \"showLoader\")) {\r\n field = this.setFieldKeyValue(field, \"showLoader\", false);\r\n }\r\n if (!checkObjectKeyExists(field.properties, \"size\")) {\r\n field.properties = this.setFieldKeyValue(\r\n field.properties,\r\n \"size\",\r\n \"m\"\r\n );\r\n }\r\n if (!checkObjectKeyExists(field, \"api\")) {\r\n field = this.setFieldKeyValue(field, \"api\", {});\r\n\r\n field.api = this.setMissingFieldKeyValue(field.api, \"url\", \"\");\r\n field.api = this.setMissingFieldKeyValue(field.api, \"request\", \"\");\r\n field.api = this.setMissingFieldKeyValue(field.api, \"response\", \"\");\r\n field.api = this.setMissingFieldKeyValue(field.api, \"status\", \"\");\r\n\r\n field.api.status = this.setMissingFieldKeyValue(\r\n field.api.status,\r\n \"value\",\r\n \"default\"\r\n );\r\n field.api.status = this.setMissingFieldKeyValue(\r\n field.api.status,\r\n \"labels\",\r\n {\r\n default: \"Call API\",\r\n loading: \"Call API\",\r\n success: \"API Success\",\r\n failed: \"API Failed\"\r\n }\r\n );\r\n }\r\n return field;\r\n };\r\n const formatFieldTypeSearchText = (field: any): any => {\r\n if (checkObjectKeyExists(field, \"type\")) {\r\n if (field.type === \"search-text\") {\r\n field = this.setFieldKeyValue(\r\n field,\r\n \"type\",\r\n \"dropdown-with-search\"\r\n );\r\n }\r\n }\r\n\r\n return field;\r\n };\r\n const formatFieldTypeText = (field: any): any => {\r\n return field;\r\n };\r\n\r\n switch (field.type) {\r\n case \"title\":\r\n field = formatFieldTypeTitle(field);\r\n break;\r\n case \"radio\":\r\n field = formatFieldTypeRadio(field);\r\n break;\r\n case \"otp\":\r\n field = formatFieldTypeOtp(field);\r\n break;\r\n case \"date\":\r\n field = formatFieldTypeDate(field);\r\n break;\r\n case \"number\":\r\n field = formatFieldTypeNumber(field);\r\n break;\r\n case \"api-call\":\r\n field = formatFieldTypeApiCall(field);\r\n break;\r\n case \"search-text\":\r\n field = formatFieldTypeSearchText(field);\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n return field;\r\n };\r\n\r\n const getConnectedElementKeyValueObject = (key: any): any => {\r\n const object = {\r\n key: key,\r\n conditions: { formula: \"\", rules: [] },\r\n actions: { success: [], failure: [] }\r\n };\r\n return object;\r\n };\r\n\r\n const formatFieldKeys = (field: any): any => {\r\n if (checkObjectKeyExists(field, \"connectedTo\")) {\r\n if (typeof field[\"connectedTo\"] === \"string\") {\r\n field[\"connectedElements\"] = [\r\n getConnectedElementKeyValueObject(field[\"connectedTo\"])\r\n ];\r\n } else {\r\n field[\"connectedTo\"] = field[\"connectedTo\"].map((key: string) => {\r\n return getConnectedElementKeyValueObject(key);\r\n });\r\n field[\"connectedElements\"] = field[\"connectedTo\"];\r\n }\r\n }\r\n this.removeFieldKey(field, \"connectedTo\");\r\n\r\n if (checkObjectKeyExists(field, \"connectedToParent\")) {\r\n if (typeof field[\"connectedToParent\"] === \"string\") {\r\n field[\"connectedParentFields\"] = [\r\n getConnectedElementKeyValueObject(field[\"connectedToParent\"])\r\n ];\r\n } else {\r\n field[\"connectedParentFields\"] = getConnectedElementKeyValueObject(\r\n field[\"connectedToParent\"]\r\n );\r\n }\r\n }\r\n this.removeFieldKey(field, \"connectedToParent\");\r\n\r\n this.removeFieldKey(field, \"sideEffect\");\r\n\r\n return field;\r\n };\r\n\r\n const getConnectedElementFieldMapping = (\r\n field: any,\r\n connectedFieldMapping: any\r\n ): any => {\r\n const getConnectedElementChildFieldMapping = (\r\n field: any,\r\n connectedFieldMapping: any\r\n ): any => {\r\n if (checkObjectKeyExists(field, \"connectedElements\")) {\r\n connectedFieldMapping[\"child\"][field.key] = field.connectedElements;\r\n } else if (\r\n checkObjectKeyExists(connectedFieldMapping[\"child\"], field.key)\r\n ) {\r\n field[\"connectedElements\"] =\r\n connectedFieldMapping[\"child\"][field.key];\r\n }\r\n\r\n return { field: field, connectedFieldMapping: connectedFieldMapping };\r\n };\r\n\r\n const getConnectedElementParentFieldMapping = (\r\n field: any,\r\n connectedFieldMapping: any\r\n ): any => {\r\n if (checkObjectKeyExists(connectedFieldMapping[\"child\"], field.key)) {\r\n for (let connectedParentKey of connectedFieldMapping[\"child\"][\r\n field.key\r\n ]) {\r\n if (\r\n checkObjectKeyExists(\r\n connectedFieldMapping[\"parent\"],\r\n connectedParentKey[\"key\"]\r\n )\r\n ) {\r\n connectedFieldMapping[\"parent\"][connectedParentKey[\"key\"]].push(\r\n field.key\r\n );\r\n } else {\r\n connectedFieldMapping[\"parent\"][connectedParentKey[\"key\"]] = [\r\n field.key\r\n ];\r\n }\r\n }\r\n }\r\n\r\n return { field: field, connectedFieldMapping: connectedFieldMapping };\r\n };\r\n\r\n const connectedChildFieldMapping = getConnectedElementChildFieldMapping(\r\n field,\r\n connectedFieldMapping\r\n );\r\n field = connectedChildFieldMapping[\"field\"];\r\n connectedFieldMapping =\r\n connectedChildFieldMapping[\"connectedFieldMapping\"];\r\n\r\n const connectedParentFieldMapping = getConnectedElementParentFieldMapping(\r\n field,\r\n connectedFieldMapping\r\n );\r\n field = connectedParentFieldMapping[\"field\"];\r\n connectedFieldMapping =\r\n connectedParentFieldMapping[\"connectedFieldMapping\"];\r\n\r\n return connectedFieldMapping;\r\n };\r\n\r\n const updateConnectedElementsKeyValue = (\r\n field: any,\r\n connectedFieldMapping: any\r\n ): any => {\r\n if (checkObjectKeyExists(connectedFieldMapping[\"child\"], field.key)) {\r\n field[\"connectedElements\"] = connectedFieldMapping[\"child\"][field.key];\r\n }\r\n\r\n if (checkObjectKeyExists(connectedFieldMapping[\"parent\"], field.key)) {\r\n field[\"connectedParentFields\"] =\r\n connectedFieldMapping[\"parent\"][field.key];\r\n }\r\n\r\n return field;\r\n };\r\n\r\n const updateFieldValidatorConfig = (field: any): any => {\r\n if (field.type !== \"title\") {\r\n const validators = checkObjectKeyExists(field, \"validators\")\r\n ? field.validators\r\n : {};\r\n\r\n field = this.setMissingFieldKeyValue(field, \"validators\", {});\r\n field = this.setFieldKeyValue(field, \"validators\", {\r\n ...field[\"validators\"],\r\n min: checkObjectKeyExists(validators, \"min\")\r\n ? isNotEmptyValue(validators.min)\r\n ? Number(validators.min)\r\n : null\r\n : checkObjectKeyExists(field, \"min\")\r\n ? Number(field.min)\r\n : null,\r\n max: checkObjectKeyExists(validators, \"max\")\r\n ? isNotEmptyValue(validators.max)\r\n ? Number(validators.max)\r\n : null\r\n : checkObjectKeyExists(field, \"max\")\r\n ? Number(field.max)\r\n : null,\r\n required: checkObjectKeyExists(validators, \"required\")\r\n ? Boolean(validators.required)\r\n : checkObjectKeyExists(field, \"required\")\r\n ? Boolean(field.required)\r\n : false,\r\n minLength: checkObjectKeyExists(validators, \"minLength\")\r\n ? isNotEmptyValue(validators.minLength)\r\n ? Number(validators.minLength)\r\n : null\r\n : checkObjectKeyExists(field, \"minLength\")\r\n ? Number(field.minLength)\r\n : null,\r\n maxLength: checkObjectKeyExists(validators, \"maxLength\")\r\n ? isNotEmptyValue(validators.maxLength)\r\n ? Number(validators.maxLength)\r\n : null\r\n : checkObjectKeyExists(field, \"length\")\r\n ? Number(field.length)\r\n : checkObjectKeyExists(field, \"maxLength\")\r\n ? Number(field.maxLength)\r\n : null,\r\n pattern: checkObjectKeyExists(validators, \"pattern\")\r\n ? isNotEmptyValue(validators.pattern)\r\n ? validators.pattern\r\n : undefined\r\n : checkObjectKeyExists(field, \"pattern\")\r\n ? { key: \"CUSTOM\", pattern: String(field.pattern) }\r\n : checkObjectKeyExists(field, \"regex\")\r\n ? { key: \"CUSTOM\", pattern: String(field.regex) }\r\n : undefined\r\n });\r\n\r\n delete field.min;\r\n delete field.max;\r\n delete field.required;\r\n delete field.minLength;\r\n delete field.length;\r\n delete field.maxLength;\r\n delete field.pattern;\r\n delete field.regex;\r\n\r\n switch (field.type) {\r\n case \"text\":\r\n delete field.validators.min;\r\n delete field.validators.max;\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n if (isEmptyValue(field.validators?.min)) {\r\n delete field.validators.min;\r\n }\r\n if (isEmptyValue(field.validators?.max)) {\r\n delete field.validators.min;\r\n }\r\n if (isEmptyValue(field.validators?.minLength)) {\r\n delete field.validators.minLength;\r\n }\r\n if (isEmptyValue(field.validators?.maxLength)) {\r\n delete field.validators.maxLength;\r\n }\r\n if (isEmptyValue(field.validators?.pattern)) {\r\n delete field.validators.pattern;\r\n }\r\n\r\n field.focus = false;\r\n field.invalid = false;\r\n }\r\n\r\n return field;\r\n };\r\n\r\n const updateFieldDefaultValueConfig = (field: any): any => {\r\n if (field.type !== \"title\") {\r\n if (checkObjectKeyExists(field, \"defaultValue\")) {\r\n return field;\r\n } else if (checkObjectKeyExists(field, \"default\")) {\r\n return field;\r\n } else {\r\n if (checkObjectKeyExists(field, \"defaultVal\")) {\r\n // Currently below line is commented because it caused issues in setting Default Value.\r\n // field[\"defaultValue\"] = field[\"defaultVal\"];\r\n // delete field[\"defaultVal\"];\r\n }\r\n\r\n // TODO: Condition for all_forms_data is not considered yet.\r\n if (field.autoPopulateFromSummaryData) {\r\n field[\"defaultValue\"] = {\r\n is_found: false,\r\n value: \"\",\r\n sources: [\r\n {\r\n source: \"summary_data\",\r\n summary_data: {\r\n path: `$.${field.key}`,\r\n validation: {\r\n rules: [\r\n {\r\n key: \"1\",\r\n type: \"is_not_empty\",\r\n is_not_empty: {\r\n value: true\r\n }\r\n }\r\n ],\r\n actions: [\r\n {\r\n type: \"set_default_value_found\",\r\n condition: \"1\",\r\n set_default_value_found: {\r\n value: true\r\n }\r\n },\r\n {\r\n type: \"enable_field\",\r\n condition: \"1 OR NOT(1)\",\r\n enable_field: { value: true }\r\n }\r\n ]\r\n }\r\n }\r\n }\r\n ]\r\n };\r\n } else if (checkObjectKeyExists(field, \"autofill\")) {\r\n if (checkObjectKeyExists(field.autofill, \"type\")) {\r\n if (field.autofill.type === \"storage\") {\r\n field[\"defaultValue\"] = {\r\n is_found: false,\r\n value: \"\",\r\n sources: [\r\n {\r\n source: \"browser_storage\",\r\n browser_storage: {\r\n path: `$.${field.key}`,\r\n validation: {\r\n rules: [\r\n {\r\n key: \"1\",\r\n type: \"is_not_empty\",\r\n is_not_empty: {\r\n value: true\r\n }\r\n }\r\n ],\r\n actions: [\r\n {\r\n type: \"set_default_value_found\",\r\n condition: \"1\",\r\n set_default_value_found: {\r\n value: true\r\n }\r\n },\r\n {\r\n type: \"enable_field\",\r\n condition: \"1 OR NOT(1)\",\r\n enable_field: { value: true }\r\n }\r\n ]\r\n }\r\n }\r\n }\r\n ]\r\n };\r\n } else if (field.autofill.type === \"config\") {\r\n field[\"defaultValue\"] = {\r\n is_found: false,\r\n value: \"\",\r\n sources: [\r\n {\r\n source: \"field_config\",\r\n field_config: {\r\n path: `$.${field.key}`,\r\n validation: {\r\n rules: [\r\n {\r\n key: \"1\",\r\n type: \"is_not_empty\",\r\n is_not_empty: {\r\n value: true\r\n }\r\n }\r\n ],\r\n actions: [\r\n {\r\n type: \"set_default_value_found\",\r\n condition: \"1\",\r\n set_default_value_found: {\r\n value: true\r\n }\r\n },\r\n {\r\n type: \"enable_field\",\r\n condition: \"1 OR NOT(1)\",\r\n enable_field: { value: true }\r\n }\r\n ]\r\n }\r\n }\r\n }\r\n ]\r\n };\r\n }\r\n }\r\n } else {\r\n field[\"defaultValue\"] = {\r\n is_found: false,\r\n value: \"\",\r\n sources: [\r\n {\r\n source: \"form_data\",\r\n form_data: {\r\n path: `$.${field.key}`,\r\n validation: {\r\n rules: [\r\n {\r\n key: \"1\",\r\n type: \"is_not_empty\",\r\n is_not_empty: {\r\n value: true\r\n }\r\n }\r\n ],\r\n actions: [\r\n {\r\n type: \"set_default_value_found\",\r\n condition: \"1\",\r\n set_default_value_found: {\r\n value: true\r\n }\r\n },\r\n {\r\n type: \"enable_field\",\r\n condition: \"1 OR NOT(1)\",\r\n enable_field: { value: true }\r\n }\r\n ]\r\n }\r\n }\r\n }\r\n ]\r\n };\r\n }\r\n }\r\n\r\n delete field[\"defaultVal\"];\r\n }\r\n\r\n return field;\r\n };\r\n\r\n const updateFieldMessages = (field: any): any => {\r\n if (field.type !== \"title\") {\r\n field = this.setMissingFieldKeyValue(field, \"messages\", []);\r\n }\r\n\r\n return field;\r\n };\r\n\r\n const updateFieldResetButton = (field: any): any => {\r\n if (field.type === \"title\") {\r\n if (\r\n checkObjectKeyExists(field, \"action\") &&\r\n field.action === \"reset\" &&\r\n checkObjectKeyExists(field, \"fields\")\r\n ) {\r\n field = this.setFieldKeyValue(field, \"reset\", {\r\n fields: field.fields\r\n });\r\n }\r\n }\r\n\r\n return field;\r\n };\r\n\r\n const setFormFields = (formConfig: any, fields: any[]): any => {\r\n if (checkObjectKeyExists(formConfig, \"multiForm\")) {\r\n formConfig.multiForm[\"fields\"] = fields;\r\n } else {\r\n formConfig[\"fields\"] = fields;\r\n }\r\n\r\n return formConfig;\r\n };\r\n\r\n const setFormFieldGroups = (formConfig: any, groups: any): any => {\r\n formConfig[\"fieldGroups\"] = groups;\r\n\r\n return formConfig;\r\n };\r\n\r\n const updateFormFieldGroups = (fieldGroups: any, field: any): any => {\r\n if (checkObjectKeyExists(field, \"groupKey\")) {\r\n if (checkObjectKeyExists(fieldGroups, field.groupKey)) {\r\n fieldGroups[field.groupKey].push(field.key);\r\n } else {\r\n fieldGroups[field.groupKey] = [field.key];\r\n }\r\n }\r\n\r\n return fieldGroups;\r\n };\r\n\r\n let connectedFieldMapping: any = {\r\n parent: {},\r\n child: {}\r\n };\r\n\r\n let fields: any[] = this.getFormFields(formConfig);\r\n\r\n let fieldGroups: any = {};\r\n\r\n for (let field of fields) {\r\n field = updateOnFieldType(field);\r\n\r\n field = formatFieldKeys(field);\r\n\r\n // connectedFieldMapping = getConnectedElementFieldMapping(\r\n // field,\r\n // connectedFieldMapping\r\n // );\r\n // field = updateConnectedElementsKeyValue(field, connectedFieldMapping);\r\n fieldGroups = updateFormFieldGroups(fieldGroups, field);\r\n\r\n field = updateFieldDefaultValueConfig(field);\r\n\r\n field = updateFieldValidatorConfig(field);\r\n\r\n field = updateFieldResetButton(field);\r\n\r\n field = updateFieldMessages(field);\r\n }\r\n\r\n formConfig = setFormFieldGroups(formConfig, fieldGroups);\r\n\r\n formConfig = setFormFields(formConfig, fields);\r\n\r\n return formConfig;\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport {\r\n logMethod,\r\n checkObjectKeyExists,\r\n} from \"kwikid-toolkit\";\r\nimport { setValueToObject } from \"./form-view/helpers/form-view.common.helper\";\r\n\r\n@Injectable({\r\n providedIn: \"root\"\r\n})\r\nexport class KwikIDRendererService {\r\n isMobileView = false;\r\n setIsMobileView(isMobileView: boolean) {\r\n this.isMobileView = isMobileView;\r\n }\r\n\r\n formsList: any[];\r\n @logMethod\r\n setFormsList(formsList: any[]) {\r\n this.formsList = formsList;\r\n }\r\n\r\n formsListCompleted: string[];\r\n @logMethod\r\n setFormsListCompleted(formsListCompleted: any[]) {\r\n this.formsListCompleted = formsListCompleted;\r\n }\r\n\r\n allFormsData: any = {};\r\n @logMethod\r\n setAllFormsData(allFormsData: any[]) {\r\n this.allFormsData = allFormsData;\r\n }\r\n\r\n activeFormConfig: any;\r\n @logMethod\r\n setActiveFormConfig(activeFormConfig: any) {\r\n this.activeFormConfig = activeFormConfig;\r\n }\r\n\r\n activeFormFields: any[];\r\n @logMethod\r\n setActiveFormFields(activeFormFields: any[]) {\r\n this.activeFormFields = activeFormFields;\r\n }\r\n\r\n activeFormData: any;\r\n @logMethod\r\n setActiveFormData(activeFormData: any) {\r\n this.activeFormData = activeFormData;\r\n }\r\n\r\n constructor() {}\r\n\r\n async fetchFormConfig(url: string) {\r\n const response = await fetch(url, { method: \"GET\" });\r\n const data = await response.json();\r\n return data;\r\n }\r\n\r\n @logMethod\r\n findActiveFormConfig(formsList: any[]): any {\r\n const activeFormConfig = formsList.find((form) => {\r\n return form.status === \"editable\" && !form.disabled;\r\n });\r\n return activeFormConfig;\r\n }\r\n\r\n @logMethod\r\n findCompletedFormsList(allFormsData: any): string[] {\r\n let formsListCompleted: string[] = [];\r\n\r\n Object.keys(allFormsData).map((formKey) => {\r\n formsListCompleted.push(formKey);\r\n });\r\n\r\n return formsListCompleted;\r\n }\r\n\r\n @logMethod\r\n markFormInFormsListAsCompleted(\r\n formsList: any[],\r\n formsListCompleted: string[]\r\n ): any[] {\r\n for (let form of formsList) {\r\n if (formsListCompleted.includes(form.key)) {\r\n console.log(formsListCompleted.includes(form.key));\r\n\r\n form = setValueToObject(form, \"status\", \"completed\");\r\n form = setValueToObject(form, \"disabled\", false);\r\n }\r\n }\r\n\r\n return formsList;\r\n }\r\n\r\n @logMethod\r\n markFormInFormsListAsDisabled(\r\n formsList: any[],\r\n formsListCompleted: string[]\r\n ): any[] {\r\n for (let form of formsList) {\r\n if (form.status !== \"completed\") {\r\n if (checkObjectKeyExists(form, \"dependentOn\")) {\r\n const isDependent = form.dependentOn.every((r: string) =>\r\n formsListCompleted.includes(r)\r\n );\r\n if (isDependent) {\r\n form = setValueToObject(form, \"status\", \"editable\");\r\n form = setValueToObject(form, \"disabled\", false);\r\n } else {\r\n form = setValueToObject(form, \"status\", \"locked\");\r\n form = setValueToObject(form, \"disabled\", true);\r\n }\r\n } else {\r\n form = setValueToObject(form, \"dependentOn\", []);\r\n form = setValueToObject(form, \"status\", \"editable\");\r\n form = setValueToObject(form, \"disabled\", false);\r\n }\r\n }\r\n }\r\n\r\n return formsList;\r\n }\r\n\r\n @logMethod\r\n assignSequenceNoToForm(formsList: any[]): any[] {\r\n let sequenceNo = 1;\r\n for (let form of formsList) {\r\n form.sequenceNo = sequenceNo++;\r\n }\r\n\r\n return formsList;\r\n }\r\n\r\n @logMethod\r\n filterAllFormsData(allFormsData: any, formsList: any[]): any {\r\n let currentUserFormAllFormsData: any = {};\r\n\r\n for (let form of formsList) {\r\n if (checkObjectKeyExists(allFormsData, form.key)) {\r\n currentUserFormAllFormsData = {\r\n ...currentUserFormAllFormsData,\r\n [form.key]: allFormsData[form.key]\r\n };\r\n }\r\n }\r\n\r\n return currentUserFormAllFormsData;\r\n }\r\n\r\n @logMethod\r\n updateFormsList() {\r\n let formsList: any[] = this.formsList;\r\n let formsListCompleted: string[];\r\n let activeFormConfig: any;\r\n\r\n formsList = this.assignSequenceNoToForm(formsList);\r\n\r\n /**\r\n * Below code identifies the allFormsData required for the current User Form.\r\n * Why? Because allFormsData will actually contain the whole journey's all\r\n * possible User Form steps. So, it is important to set the form data which\r\n * this particular User Form only has to LOCAL METHOD Variable.\r\n */\r\n const currentUserFormAllFormsData = this.filterAllFormsData(\r\n this.allFormsData,\r\n formsList\r\n );\r\n\r\n console.log(JSON.parse(JSON.stringify(formsList)));\r\n\r\n formsListCompleted = this.findCompletedFormsList(\r\n currentUserFormAllFormsData\r\n );\r\n\r\n formsList = this.markFormInFormsListAsCompleted(\r\n formsList,\r\n formsListCompleted\r\n );\r\n\r\n formsList = this.markFormInFormsListAsDisabled(\r\n formsList,\r\n formsListCompleted\r\n );\r\n\r\n if (formsList.length !== formsListCompleted.length) {\r\n activeFormConfig = this.findActiveFormConfig(formsList);\r\n\r\n this.setActiveFormConfig(activeFormConfig);\r\n }\r\n\r\n this.setFormsList(formsList);\r\n this.setFormsListCompleted(formsListCompleted);\r\n }\r\n}\r\n","import { animate, style, transition, trigger } from \"@angular/animations\";\r\nimport {\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n HostListener,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges\r\n} from \"@angular/core\";\r\nimport {\r\n checkObjectKeyExists,\r\n logMethod,\r\n Sources,\r\n Validations\r\n} from \"kwikid-toolkit\";\r\nimport { EActionKey } from \"./form-view/definitions/actions/form-view.actions.enum.definitions\";\r\nimport { Converter } from \"./renderer.config-converter.helper\";\r\nimport { isSingleForm } from \"./renderer.helper\";\r\nimport { KwikIDRendererService } from \"./renderer.service\";\r\n\r\n@Component({\r\n selector: \"kwikid-forms-renderer\",\r\n templateUrl: \"./renderer.component.html\",\r\n styleUrls: [\"./renderer.component.scss\"],\r\n animations: [\r\n trigger(\"panelInOut\", [\r\n transition(\":enter\", [\r\n style({ transform: \"translateY(100%)\" }),\r\n animate(150)\r\n ]),\r\n transition(\":leave\", [\r\n animate(100, style({ transform: \"translateY(100%)\" }))\r\n ])\r\n ])\r\n ],\r\n providers: [KwikIDRendererService]\r\n})\r\nexport class KwikIDFormsRendererComponent implements OnInit, OnChanges {\r\n // The final value should be provided to service, so that it can be used in all components\r\n @HostListener(\"window:resize\", [\"$event\"])\r\n windowResizeWatcher() {\r\n if (this.hostElement.nativeElement.offsetWidth < 600) {\r\n if (this.showForm) {\r\n this.showFormSections = false;\r\n this.showFormFields = true;\r\n } else {\r\n this.showFormSections = true;\r\n this.showFormFields = false;\r\n }\r\n this.rendererService.isMobileView = true;\r\n } else {\r\n if (this.showForm) {\r\n this.showFormSections = true;\r\n this.showFormFields = true;\r\n } else {\r\n this.showFormSections = true;\r\n this.showFormFields = false;\r\n }\r\n this.rendererService.isMobileView = false;\r\n }\r\n }\r\n\r\n @Input()\r\n stepConfig: any;\r\n\r\n @Input()\r\n userConfig: any;\r\n\r\n @Input()\r\n formsData: any = {};\r\n\r\n @Input()\r\n apiCallResponse: any = {};\r\n\r\n @Output()\r\n onClickSubmit: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n getFormData: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n onClickApiCall: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n loading: boolean = false;\r\n loader: boolean = false;\r\n\r\n // display forms and list conditionally\r\n showForm: boolean = false;\r\n showFormFields: boolean = true;\r\n showFormSections: boolean = true;\r\n\r\n constructor(\r\n public rendererService: KwikIDRendererService,\r\n private hostElement: ElementRef\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.loader = true;\r\n this.loading = true;\r\n\r\n const formStepKey = this.stepConfig.form.key;\r\n\r\n if (\r\n formStepKey !== undefined &&\r\n checkObjectKeyExists(this.userConfig.userFormFields, formStepKey)\r\n ) {\r\n this.rendererService.setFormsList(\r\n this.userConfig.userFormFields[formStepKey]\r\n );\r\n } else if (Array.isArray(this.userConfig.userFormFields)) {\r\n this.rendererService.setFormsList(this.userConfig.userFormFields);\r\n } else {\r\n throw new Error(\r\n `userFormFields doesn't have a form defined with key: ${formStepKey}`\r\n );\r\n }\r\n\r\n this.initializeForms();\r\n this.loader = false;\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const verifyChange = (prop: string) => {\r\n return changes.hasOwnProperty(prop) && !changes[prop].firstChange;\r\n };\r\n if (verifyChange(\"userConfig\")) {\r\n this.userConfig = changes.userConfig.currentValue;\r\n this.loader = false;\r\n }\r\n if (verifyChange(\"formsData\")) {\r\n this.formsData = changes.formsData.currentValue;\r\n\r\n this.initializeForms();\r\n }\r\n if (verifyChange(\"apiCallResponse\")) {\r\n this.apiCallResponse = changes.apiCallResponse.currentValue;\r\n this.loader = false;\r\n }\r\n }\r\n\r\n async initializeForms() {\r\n this.loader = true;\r\n\r\n this.rendererService.setAllFormsData(this.formsData);\r\n\r\n this.rendererService.updateFormsList();\r\n\r\n this.handleResize(this.rendererService.formsList);\r\n\r\n if (\r\n this.rendererService.formsList.length !==\r\n this.rendererService.formsListCompleted.length\r\n ) {\r\n await this.handleOnClickSetActiveForm(\r\n this.rendererService.activeFormConfig.key\r\n );\r\n } else {\r\n this.showForm = false;\r\n this.showFormFields = false;\r\n }\r\n\r\n this.loader = false;\r\n this.loading = false;\r\n }\r\n\r\n handleResize(formsList: any[]) {\r\n if (this.hostElement.nativeElement.offsetWidth < 600) {\r\n if (!isSingleForm(formsList)) {\r\n this.showFormSections = true;\r\n this.showFormFields = false;\r\n this.showForm = false;\r\n } else {\r\n this.showFormSections = true;\r\n this.showFormFields = false;\r\n this.showForm = false;\r\n }\r\n this.rendererService.isMobileView = true;\r\n } else {\r\n this.rendererService.isMobileView = false;\r\n }\r\n }\r\n\r\n // forms-list listener\r\n @logMethod\r\n async handleOnClickSetActiveForm(selectedForm: string) {\r\n this.showForm = false;\r\n this.loader = true;\r\n\r\n const activeFormConfig = this.rendererService.formsList.find((form) => {\r\n if (form.key === selectedForm) {\r\n return form;\r\n }\r\n });\r\n\r\n let formConfig = await this.rendererService.fetchFormConfig(\r\n activeFormConfig.formContent.url\r\n );\r\n\r\n formConfig = new Converter().convertFormConfig(formConfig);\r\n\r\n const activeFormData =\r\n this.rendererService.allFormsData[formConfig.key] ?? {};\r\n this.rendererService.setActiveFormData(activeFormData);\r\n\r\n this.rendererService.setActiveFormConfig({\r\n ...activeFormConfig,\r\n ...formConfig\r\n });\r\n\r\n if (this.hostElement.nativeElement.offsetWidth < 600) {\r\n this.showFormSections = false;\r\n this.showFormFields = true;\r\n } else if (this.hostElement.nativeElement.offsetWidth >= 600) {\r\n this.showFormSections = true;\r\n this.showFormFields = true;\r\n }\r\n\r\n this.showForm = true;\r\n this.loader = false;\r\n }\r\n\r\n // forms-list listener\r\n handleOnClickSubmitForms(e: any) {\r\n console.log(e);\r\n\r\n if (this.userConfig.userFormFieldsConfig.validation) {\r\n const validations = new Validations(\r\n {\r\n USER_CONFIG: this.userConfig,\r\n ALL_FORMS_DATA: this.formsData\r\n },\r\n this.takeAction.bind(this)\r\n );\r\n\r\n (async () => {\r\n await validations.validate(\r\n this.userConfig.userFormFieldsConfig.validation\r\n );\r\n\r\n if (this.userConfig.userFormFieldsConfig.status === \"completed\") {\r\n this.onClickSubmit.emit(e);\r\n } else {\r\n this.toggleErrorNotification(true);\r\n setTimeout(() => {\r\n this.toggleErrorNotification(false);\r\n }, 3000);\r\n }\r\n })();\r\n }\r\n }\r\n\r\n // form-view listener\r\n handleOnClickApiCall(e: any) {\r\n this.loader = true;\r\n this.onClickApiCall.emit(e);\r\n }\r\n\r\n // form-view listener\r\n handleGetActiveFormData(e: any) {\r\n this.loader = true;\r\n this.getFormData.emit({\r\n [this.rendererService.activeFormConfig.key]: e[\"data\"]\r\n });\r\n }\r\n\r\n // form-view listener\r\n handleOnClickSaveForm(e: any) {\r\n this.loader = true;\r\n\r\n this.rendererService.setActiveFormData({});\r\n\r\n this.getFormData.emit({\r\n [this.rendererService.activeFormConfig.key]: e[\"data\"]\r\n });\r\n }\r\n\r\n // form-view listener\r\n handleOnClickViewForms(e: any) {\r\n this.showFormSections = true;\r\n this.showForm = false;\r\n this.showFormFields = false;\r\n }\r\n\r\n showErrorNotification: boolean = false;\r\n toggleErrorNotification(show) {\r\n this.showErrorNotification = show;\r\n }\r\n\r\n async takeAction(action: any, userConfig: any, formsData: any) {\r\n switch (action.key) {\r\n case EActionKey.SET_VALUE:\r\n const sources = new Sources({\r\n USER_CONFIG: this.userConfig,\r\n ALL_FORMS_DATA: this.formsData\r\n });\r\n\r\n const sourceValue = await sources.getValueFromSource(\r\n action.props.value.source\r\n );\r\n sources.setValueToSource(action.props.value.destination, sourceValue);\r\n\r\n this.userConfig = sources.object.USER_CONFIG;\r\n this.formsData = sources.object.ALL_FORMS_DATA;\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n}\r\n","<div ngClass=\"kwikid-renderer\">\r\n <div\r\n ngClass=\"kwikid-layout-container\"\r\n *ngIf=\"!loading\"\r\n >\r\n <div\r\n ngClass=\"kwikid-sections-container\"\r\n *ngIf=\"showFormSections\"\r\n class=\"active\"\r\n [class.active]=\"showFormSections\"\r\n [class.mobile]=\"rendererService.isMobileView\"\r\n >\r\n <kwikid-forms-list\r\n [showFormFields]=\"this.showFormFields\"\r\n [userConfig]=\"this.userConfig\"\r\n [formsList]=\"this.rendererService.formsList\"\r\n [formsListCompleted]=\"this.rendererService.formsListCompleted\"\r\n [isMobileView]=\"this.rendererService.isMobileView\"\r\n (onClickSetActiveForm)=\"this.handleOnClickSetActiveForm($event)\"\r\n (onClickSubmitForms)=\"this.handleOnClickSubmitForms($event)\"\r\n ></kwikid-forms-list>\r\n </div>\r\n <div\r\n ngClass=\"kwikid-forms-container\"\r\n *ngIf=\"this.showForm && this.showFormFields\"\r\n [class.active]=\"showFormFields\"\r\n [class.mobile]=\"rendererService.isMobileView\"\r\n [@panelInOut]\r\n >\r\n <kwikid-form-view\r\n [formConfig]=\"this.rendererService.activeFormConfig\"\r\n [formData]=\"this.rendererService.activeFormData\"\r\n [apiCallResponse]=\"this.apiCallResponse\"\r\n [formsList]=\"this.rendererService.formsList\"\r\n [allFormsData]=\"this.rendererService.allFormsData\"\r\n [isMobileView]=\"this.rendererService.isMobileView\"\r\n (onClickApiCall)=\"this.handleOnClickApiCall($event)\"\r\n (onClickViewForms)=\"this.handleOnClickViewForms($event)\"\r\n (onClickSaveForm)=\"this.handleOnClickSaveForm($event)\"\r\n (getActiveFormData)=\"this.handleGetActiveFormData($event)\"\r\n ></kwikid-form-view>\r\n </div>\r\n </div>\r\n</div>\r\n<div\r\n ngClass=\"kwikid-forms-renderer-loader\"\r\n *ngIf=\"loader\"\r\n>\r\n <span class=\"loader\"></span>\r\n</div>\r\n<tui-push\r\n id=\"error-notification\"\r\n *tuiPush=\"showErrorNotification\"\r\n heading=\"Please complete the required Forms!\"\r\n type=\"Error\"\r\n (close)=\"toggleErrorNotification(false)\"\r\n>\r\n <tui-svg\r\n src=\"tuiIconCancel\"\r\n style=\"color: #fff !important\"\r\n >\r\n </tui-svg>\r\n</tui-push>\r\n","import { DragDropModule } from \"@angular/cdk/drag-drop\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { KwikIDFormsBuilderComponent } from \"./builder.component\";\r\n\r\n@NgModule({\r\n declarations: [KwikIDFormsBuilderComponent],\r\n imports: [CommonModule, FormsModule, ReactiveFormsModule, DragDropModule],\r\n providers: [],\r\n exports: [KwikIDFormsBuilderComponent]\r\n})\r\nexport class KwikIDFormBuilderModule {}\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { TuiLabelModule, TuiSvgModule } from \"@taiga-ui/core\";\r\nimport { TuiPushModule } from \"@taiga-ui/kit\";\r\nimport { KwikUIModule } from \"kwikui\";\r\nimport { KwikIDFormViewComponent } from \"./form-view.component\";\r\n\r\n@NgModule({\r\n declarations: [KwikIDFormViewComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n TuiLabelModule,\r\n TuiPushModule,\r\n TuiSvgModule,\r\n KwikUIModule\r\n ],\r\n exports: [KwikIDFormViewComponent]\r\n})\r\nexport class KwikIDFormViewModule {}\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { TuiSvgModule } from \"@taiga-ui/core\";\r\nimport { KwikUIModule } from \"kwikui\";\r\nimport { KwikIDFormsListComponent } from \"./forms-list.component\";\r\n\r\n@NgModule({\r\n declarations: [KwikIDFormsListComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n KwikUIModule,\r\n TuiSvgModule\r\n ],\r\n exports: [KwikIDFormsListComponent]\r\n})\r\nexport class KwikIDFormsListModule {}\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { HttpClientModule } from \"@angular/common/http\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { TuiLoaderModule, TuiSvgModule } from \"@taiga-ui/core\";\r\nimport { TuiPushModule } from \"@taiga-ui/kit\";\r\nimport { KwikUIModule } from \"kwikui\";\r\nimport { KwikIDFormViewModule } from \"./form-view/form-view.module\";\r\nimport { KwikIDFormsListModule } from \"./forms-list/forms-list.module\";\r\nimport { KwikIDFormsRendererComponent } from \"./renderer.component\";\r\n\r\n@NgModule({\r\n declarations: [KwikIDFormsRendererComponent],\r\n imports: [\r\n CommonModule,\r\n HttpClientModule,\r\n KwikIDFormViewModule,\r\n KwikIDFormsListModule,\r\n KwikUIModule,\r\n TuiLoaderModule,\r\n TuiPushModule,\r\n TuiSvgModule\r\n ],\r\n providers: [],\r\n exports: [KwikIDFormsRendererComponent]\r\n})\r\nexport class KwikIDFormRendererModule {}\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { KwikIDFormBuilderModule } from \"./builder/builder.module\";\r\nimport { KwikIDFormRendererModule } from \"./renderer/renderer.module\";\r\nimport { KwikIDRendererService } from \"./renderer/renderer.service\";\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n KwikIDFormBuilderModule,\r\n KwikIDFormRendererModule\r\n ],\r\n exports: [KwikIDFormBuilderModule, KwikIDFormRendererModule],\r\n providers: [KwikIDRendererService]\r\n})\r\nexport class KwikIDFormsModule {}\r\n","/*\r\n * Public API Surface of kwikid-forms\r\n */\r\n\r\n/* Builder Components */\r\nexport * from \"./lib/builder/builder.component\";\r\n\r\n/* Renderer Components */\r\nexport * from \"./lib/renderer/form-view/form-view.component\";\r\nexport * from \"./lib/renderer/forms-list/forms-list.component\";\r\nexport * from \"./lib/renderer/renderer.component\";\r\n\r\n/* KwikID Forms Component */\r\n\r\n/* All Modules in import order from bottom to top */\r\nexport * from \"./lib/builder/builder.module\";\r\nexport * from \"./lib/renderer/form-view/form-view.module\";\r\nexport * from \"./lib/renderer/forms-list/forms-list.module\";\r\nexport * from \"./lib/renderer/renderer.module\";\r\nexport * from \"./lib/kwikid-forms.module\";\r\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":";;;;;;;;;;;;;;;;;;;;;;MAwBa,2BAA2B,CAAA;AAuCtC,IAAA,WAAA,GAAA;AAtCA,QAAA,IAAA,CAAA,eAAe,GAAG;AAChB,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,KAAK,EAAE,QAAQ;AACf,YAAA,UAAU,EAAE,KAAK;AACjB,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,KAAK,EAAE,sCAAsC;AAC7C,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,UAAU,EAAE,SAAS;AACrB,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,IAAI,EAAE,GAAG;SACV,CAAC;AAEF,QAAA,IAAA,CAAA,0BAA0B,GAAG;AAC3B,YAAA,MAAM,EAAE,oBAAoB;AAC5B,YAAA,GAAG,EAAE,GAAG;AACR,YAAA,IAAI,EAAE,GAAG;AACT,YAAA,KAAK,EAAE,GAAG;SACX,CAAC;AAEF,QAAA,IAAA,CAAA,cAAc,GAAG;AACf,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,KAAK,EAAE,KAAK;AACZ,YAAA,EAAE,EAAE,IAAI;AACR,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,WAAW,EAAE,aAAa;AAC1B,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,UAAU,EAAE;AACV,gBAAA,QAAQ,EAAE,IAAI;AACf,aAAA;SACF,CAAC;AAEF,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC;AA8B9B,QAAA,IAAA,CAAA,IAAI,GAAG,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC;AAClC,QAAA,IAAA,CAAA,IAAI,GAAiB;AACnB,YAAA;AACE,gBAAA,KAAK,EAAE,QAAQ;AACf,gBAAA,GAAG,EAAE,QAAQ;AACb,gBAAA,SAAS,EAAE,qBAAqB;gBAChC,KAAK,EAAE,IAAI,CAAC,eAAe;AAC5B,aAAA;AACD,YAAA;AACE,gBAAA,KAAK,EAAE,oBAAoB;AAC3B,gBAAA,GAAG,EAAE,oBAAoB;AACzB,gBAAA,SAAS,EAAE,gCAAgC;gBAC3C,KAAK,EAAE,IAAI,CAAC,0BAA0B;AACvC,aAAA;AACD,YAAA;AACE,gBAAA,KAAK,EAAE,OAAO;AACd,gBAAA,GAAG,EAAE,OAAO;AACZ,gBAAA,SAAS,EAAE,oBAAoB;gBAC/B,KAAK,EAAE,IAAI,CAAC,cAAc;AAC3B,aAAA;SACF,CAAC;QACF,IAAK,CAAA,KAAA,GAAiB,EAAE,CAAC;KAjDT;IAEhB,QAAQ,GAAA;AACN,QAAA,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE;AACvB,YAAA,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;AAC7B,SAAA;KACF;IAED,aAAa,GAAA;QACX,OAAO,IAAI,CAAC,MAAM,EAAE;aACjB,QAAQ,CAAC,EAAE,CAAC;AACZ,aAAA,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;KAC5B;AAED,IAAA,cAAc,CACZ,KAAiC,EACjC,EAAmB,EACnB,GAAoB,EACpB,GAAQ,EAAA;AAER,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;AAClC,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;KACjE;AAED,IAAA,UAAU,CAAC,EAAO,EAAA;AAChB,QAAA,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;KACjB;AAyBD,IAAA,IAAI,CAAC,KAAU,EAAA;;AAEb,QAAA,IAAI,KAAK,CAAC,iBAAiB,KAAK,KAAK,CAAC,SAAS,EAAE;AAC/C,YAAA,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;;AAGvB,YAAA,IAAI,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;AACzE,YAAA,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YACnD,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC;AAE1D,YAAA,IAAI,YAAY,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC;AAErC,YAAA,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;YAE1B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;gBACjC,YAAY,CAAC,UAAU,CACrB,GAAG,EACH,IAAI,WAAW,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CACxD,CAAC;AACJ,aAAC,CAAC,CAAC;YAEH,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;YAElD,aAAa,CACX,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAC5B,KAAK,CAAC,SAAS,CAAC,IAAI,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,YAAY,CACnB,CAAC;AACH,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACtB,YAAA,eAAe,CACb,KAAK,CAAC,SAAS,CAAC,IAAI,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,YAAY,CACnB,CAAC;AACH,SAAA;AACD,QAAA,IAAI,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE;AAChC,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC9C,SAAA;KACF;AAED,IAAA,MAAM,CAAC,KAAU,EAAA;QACf,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAC/C,CAAC,CAAc,KAAK,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAChD,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC,kCAC7B,KAAK,CAAC,IAAI,CAAC,IAAI,KAClB,IAAI,EAAE,IAAI,EAAA,CAAA,CACV,CAAC;KACJ;IAED,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;KAC9C;AAED,IAAA,QAAQ,CAAC,GAAQ,EAAA;QACf,OAAO,OAAO,GAAG,CAAC;KACnB;IAED,aAAa,CAAC,GAAW,EAAE,EAAU,EAAA;AACnC,QAAA,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACjC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;KAC3B;IAED,OAAO,GAAA;AACL,QAAA,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE;AACxB,YAAA,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC9C,SAAA;AACD,QAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACzB;;4IAhKU,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA3B,mBAAA,2BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,4DCxBxC,ssEAmEA,EAAA,MAAA,EAAA,CAAA,u9BAAA,CAAA,EAAA,CAAA,CAAA;4FD3Ca,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBALvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,WAAW,EAAE,0BAA0B;oBACvC,SAAS,EAAE,CAAC,0BAA0B,CAAC;AACxC,iBAAA,CAAA;;;AEvBD,IAAY,UAiBX,CAAA;AAjBD,CAAA,UAAY,UAAU,EAAA;AACpB,IAAA,UAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,UAAA,CAAA,oBAAA,CAAA,GAAA,oBAAyC,CAAA;AACzC,IAAA,UAAA,CAAA,qBAAA,CAAA,GAAA,qBAA2C,CAAA;AAC3C,IAAA,UAAA,CAAA,kBAAA,CAAA,GAAA,kBAAqC,CAAA;AACrC,IAAA,UAAA,CAAA,kBAAA,CAAA,GAAA,kBAAqC,CAAA;AACrC,IAAA,UAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,IAAA,UAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,IAAA,UAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7B,IAAA,UAAA,CAAA,eAAA,CAAA,GAAA,eAA+B,CAAA;AAC/B,IAAA,UAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,IAAA,UAAA,CAAA,2BAAA,CAAA,GAAA,2BAAuD,CAAA;AACvD,IAAA,UAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,UAAA,CAAA,kBAAA,CAAA,GAAA,kBAAqC,CAAA;AACrC,IAAA,UAAA,CAAA,kBAAA,CAAA,GAAA,kBAAqC,CAAA;AACrC,IAAA,UAAA,CAAA,oBAAA,CAAA,GAAA,oBAAyC,CAAA;AACzC,IAAA,UAAA,CAAA,qBAAA,CAAA,GAAA,qBAA2C,CAAA;AAC7C,CAAC,EAjBW,UAAU,KAAV,UAAU,GAiBrB,EAAA,CAAA,CAAA;;ACjBD,IAAY,cAKX,CAAA;AALD,CAAA,UAAY,cAAc,EAAA;AACxB,IAAA,cAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,cAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,cAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,cAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACnB,CAAC,EALW,cAAc,KAAd,cAAc,GAKzB,EAAA,CAAA,CAAA;;ACLD,IAAY,WA6CX,CAAA;AA7CD,CAAA,UAAY,WAAW,EAAA;AACrB,IAAA,WAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,WAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,IAAA,WAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,WAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC,CAAA;AACnC,IAAA,WAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,IAAA,WAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,WAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,WAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,WAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,WAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,IAAA,WAAA,CAAA,eAAA,CAAA,GAAA,eAA+B,CAAA;AAC/B,IAAA,WAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,WAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7B,IAAA,WAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7B,IAAA,WAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,WAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,WAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7B,IAAA,WAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,WAAA,CAAA,mBAAA,CAAA,GAAA,mBAAuC,CAAA;AACvC,IAAA,WAAA,CAAA,oBAAA,CAAA,GAAA,oBAAyC,CAAA;AACzC,IAAA,WAAA,CAAA,oBAAA,CAAA,GAAA,oBAAyC,CAAA;AACzC,IAAA,WAAA,CAAA,yBAAA,CAAA,GAAA,yBAAmD,CAAA;AACnD,IAAA,WAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7B,IAAA,WAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,WAAA,CAAA,mBAAA,CAAA,GAAA,mBAAuC,CAAA;AACvC,IAAA,WAAA,CAAA,oBAAA,CAAA,GAAA,oBAAyC,CAAA;AACzC,IAAA,WAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,WAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,IAAA,WAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7B,IAAA,WAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7B,IAAA,WAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC,CAAA;AACnC,IAAA,WAAA,CAAA,oBAAA,CAAA,GAAA,oBAAyC,CAAA;AACzC,IAAA,WAAA,CAAA,eAAA,CAAA,GAAA,eAA+B,CAAA;AAC/B,IAAA,WAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,IAAA,WAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,IAAA,WAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,IAAA,WAAA,CAAA,sBAAA,CAAA,GAAA,sBAA6C,CAAA;AAC7C,IAAA,WAAA,CAAA,mBAAA,CAAA,GAAA,mBAAuC,CAAA;AACvC,IAAA,WAAA,CAAA,mBAAA,CAAA,GAAA,mBAAuC,CAAA;AACvC,IAAA,WAAA,CAAA,uBAAA,CAAA,GAAA,uBAA+C,CAAA;AAC/C,IAAA,WAAA,CAAA,iCAAA,CAAA,GAAA,iCAAmE,CAAA;AACnE,IAAA,WAAA,CAAA,eAAA,CAAA,GAAA,eAA+B,CAAA;AAC/B,IAAA,WAAA,CAAA,4BAAA,CAAA,GAAA,4BAAyD,CAAA;AACzD,IAAA,WAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC7B,CAAC,EA7CW,WAAW,KAAX,WAAW,GA6CtB,EAAA,CAAA,CAAA,CAAA;AAED,IAAY,QA4CX,CAAA;AA5CD,CAAA,UAAY,QAAQ,EAAA;AAClB,IAAA,QAAA,CAAA,UAAA,CAAA,GAAA,aAAwB,CAAA;AACxB,IAAA,QAAA,CAAA,YAAA,CAAA,GAAA,yBAAsC,CAAA;AACtC,IAAA,QAAA,CAAA,iBAAA,CAAA,GAAA,gBAAkC,CAAA;AAClC,IAAA,QAAA,CAAA,YAAA,CAAA,GAAA,cAA2B,CAAA;AAC3B,IAAA,QAAA,CAAA,UAAA,CAAA,GAAA,uDAAkE,CAAA;AAClE,IAAA,QAAA,CAAA,UAAA,CAAA,GAAA,IAAe,CAAA;AACf,IAAA,QAAA,CAAA,UAAA,CAAA,GAAA,OAAkB,CAAA;AAClB,IAAA,QAAA,CAAA,SAAA,CAAA,GAAA,yCAAmD,CAAA;AACnD,IAAA,QAAA,CAAA,YAAA,CAAA,GAAA,WAAwB,CAAA;AACxB,IAAA,QAAA,CAAA,eAAA,CAAA,GAAA,4FAA4G,CAAA;AAC5G,IAAA,QAAA,CAAA,SAAA,CAAA,GAAA,iCAA2C,CAAA;AAC3C,IAAA,QAAA,CAAA,cAAA,CAAA,GAAA,UAAyB,CAAA;AACzB,IAAA,QAAA,CAAA,cAAA,CAAA,GAAA,MAAqB,CAAA;AACrB,IAAA,QAAA,CAAA,WAAA,CAAA,GAAA,iBAA6B,CAAA;AAC7B,IAAA,QAAA,CAAA,SAAA,CAAA,GAAA,MAAgB,CAAA;AAChB,IAAA,QAAA,CAAA,cAAA,CAAA,GAAA,UAAyB,CAAA;AACzB,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,iEAA0E,CAAA;AAC1E,IAAA,QAAA,CAAA,mBAAA,CAAA,GAAA,aAAiC,CAAA;AACjC,IAAA,QAAA,CAAA,oBAAA,CAAA,GAAA,eAAoC,CAAA;AACpC,IAAA,QAAA,CAAA,oBAAA,CAAA,GAAA,0CAA+D,CAAA;AAC/D,IAAA,QAAA,CAAA,yBAAA,CAAA,GAAA,oCAA8D,CAAA;AAC9D,IAAA,QAAA,CAAA,cAAA,CAAA,GAAA,eAA8B,CAAA;AAC9B,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,+BAAwC,CAAA;AACxC,IAAA,QAAA,CAAA,mBAAA,CAAA,GAAA,uCAA2D,CAAA;AAC3D,IAAA,QAAA,CAAA,oBAAA,CAAA,GAAA,+CAAoE,CAAA;AACpE,IAAA,QAAA,CAAA,UAAA,CAAA,GAAA,2DAAsE,CAAA;AACtE,IAAA,QAAA,CAAA,YAAA,CAAA,GAAA,0BAAuC,CAAA;AACvC,IAAA,QAAA,CAAA,cAAA,CAAA,GAAA,YAA2B,CAAA;AAC3B,IAAA,QAAA,CAAA,cAAA,CAAA,GAAA,eAA8B,CAAA;AAC9B,IAAA,QAAA,CAAA,iBAAA,CAAA,GAAA,sBAAwC,CAAA;AACxC,IAAA,QAAA,CAAA,oBAAA,CAAA,GAAA,oBAAyC,CAAA;AACzC,IAAA,QAAA,CAAA,eAAA,CAAA,GAAA,6BAA6C,CAAA;AAC7C,IAAA,QAAA,CAAA,aAAA,CAAA,GAAA,2CAAyD,CAAA;AACzD,IAAA,QAAA,CAAA,aAAA,CAAA,GAAA,eAA6B,CAAA;AAC7B,IAAA,QAAA,CAAA,YAAA,CAAA,GAAA,iBAA8B,CAAA;AAC9B,IAAA,QAAA,CAAA,sBAAA,CAAA,GAAA,cAAqC,CAAA;AACrC,IAAA,QAAA,CAAA,mBAAA,CAAA,GAAA,oBAAwC,CAAA;AACxC,IAAA,QAAA,CAAA,mBAAA,CAAA,GAAA,4BAAgD,CAAA;AAChD,IAAA,QAAA,CAAA,uBAAA,CAAA,GAAA,8BAAsD,CAAA;AACtD,IAAA,QAAA,CAAA,iCAAA,CAAA,GAAA,iCAAmE,CAAA;AACnE,IAAA,QAAA,CAAA,eAAA,CAAA,GAAA,aAA6B,CAAA;AAC7B,IAAA,QAAA,CAAA,4BAAA,CAAA,GAAA,+CAA4E,CAAA;AAC5E,IAAA,QAAA,CAAA,aAAA,CAAA,GAAA,oBAAkC,CAAA;AACpC,CAAC,EA5CW,QAAQ,KAAR,QAAQ,GA4CnB,EAAA,CAAA,CAAA,CAAA;AAED,IAAY,YAKX,CAAA;AALD,CAAA,UAAY,YAAY,EAAA;AACtB,IAAA,YAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,YAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,YAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,YAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACrB,CAAC,EALW,YAAY,KAAZ,YAAY,GAKvB,EAAA,CAAA,CAAA;;AClGD,IAAY,UAYX,CAAA;AAZD,CAAA,UAAY,UAAU,EAAA;AACpB,IAAA,UAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,UAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,UAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,UAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,UAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,UAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,UAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,UAAA,CAAA,sBAAA,CAAA,GAAA,sBAA6C,CAAA;AAC7C,IAAA,UAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,UAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,UAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC,CAAA;AACnC,CAAC,EAZW,UAAU,KAAV,UAAU,GAYrB,EAAA,CAAA,CAAA;;ACTM,MAAMA,QAAM,GAAG,CAAC,MAAW,EAAE,GAAW,KAAa;AAC1D,IAAA,OAAO,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AACpC,CAAC,CAAC;AAEK,MAAMC,SAAO,GAAG,CAAC,KAAU,KAAa;IAC7C,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE;AACzD,QAAA,OAAO,IAAI,CAAC;AACb,KAAA;AAAM,SAAA,IACL,KAAK;QACL,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC;QAC/B,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,SAAS,EACjD;AACA,QAAA,OAAO,IAAI,CAAC;AACb,KAAA;AAAM,SAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAC/B,QAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AACtB,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;AACF,KAAA;AAAM,SAAA;AACL,QAAA,OAAO,KAAK,CAAC;AACd,KAAA;AACH,CAAC,CAAC;AAEK,MAAMC,YAAU,GAAG,CAAC,KAAU,KAAI;AACvC,IAAA,OAAO,CAACD,SAAO,CAAC,KAAK,CAAC,CAAC;AACzB,CAAC,CAAC;AAEK,MAAME,uBAAqB,GAAG,CAAC,KAAU,KAAS;AACvD;;;AAGG;AACH,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACxB,QAAA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AACpB,YAAA,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAClB,SAAA;AAAM,aAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YAC7B,KAAK,GAAG,EAAE,CAAC;AACZ,SAAA;AACF,KAAA;AAED,IAAA,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEK,MAAMC,gBAAc,GAAG,CAAC,GAAQ,EAAE,GAAW,KAAa;IAC/D,OAAOD,uBAAqB,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AACnD,CAAC,CAAC;AAEK,MAAM,YAAY,GAAG,CAAC,SAAgB,KAAa;AACxD,IAAA,OAAO,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC;AAChC,CAAC;;AC3CM,MAAM,MAAM,GAAG,CAAC,MAAW,EAAE,GAAW,KAAa;AAC1D,IAAA,OAAO,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AACpC,CAAC,CAAC;AAEK,MAAM,OAAO,GAAG,CAAC,MAAW,EAAE,IAAY,KAAa;IAC5D,OAAO,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC7B,CAAC,CAAC;AAEK,MAAM,aAAa,GAAG,CAAC,KAAa,KAAa;IACtD,OAAO,KAAK,KAAK,EAAE,CAAC;AACtB,CAAC,CAAC;AACK,MAAM,WAAW,GAAG,CAAC,KAAU,KAAa;IACjD,OAAO,KAAK,KAAK,SAAS,CAAC;AAC7B,CAAC,CAAC;AACK,MAAM,MAAM,GAAG,CAAC,KAAU,KAAa;IAC5C,OAAO,KAAK,KAAK,IAAI,CAAC;AACxB,CAAC,CAAC;AACK,MAAM,aAAa,GAAG,CAAC,MAAW,KAAa;AACpD,IAAA,QACE,MAAM;QACN,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC;QAChC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,SAAS,EAClD;AACJ,CAAC,CAAC;AACK,MAAM,YAAY,GAAG,CAAC,GAAU,KAAa;AAClD,IAAA,OAAO,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC;AAC1B,CAAC,CAAC;AAEK,MAAM,OAAO,GAAG,CAAC,KAAU,KAAa;AAC7C,IAAA,IAAI,aAAa,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE;AAC/D,QAAA,OAAO,IAAI,CAAC;AACb,KAAA;AAAM,SAAA,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE;AAC/B,QAAA,OAAO,IAAI,CAAC;AACb,KAAA;AAAM,SAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAC/B,QAAA,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE;AACvB,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;AACF,KAAA;AAAM,SAAA;AACL,QAAA,OAAO,KAAK,CAAC;AACd,KAAA;AACH,CAAC,CAAC;AAEK,MAAM,UAAU,GAAG,CAAC,KAAU,KAAI;AACvC,IAAA,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACzB,CAAC,CAAC;AAEK,MAAM,0BAA0B,GAAG,CAAC,KAAU,KAAI;IACvD,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC;AAC7C,CAAC,CAAC;AAEK,MAAM,6BAA6B,GAAG,CAAC,KAAU,KAAI;AAC1D,IAAA,OAAO,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC;AAC5C,CAAC,CAAC;AAEK,MAAM,qBAAqB,GAAG,CAAC,KAAU,KAAS;AACvD;;;AAGG;AACH,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACxB,QAAA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AACpB,YAAA,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAClB,SAAA;AAAM,aAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YAC7B,KAAK,GAAG,EAAE,CAAC;AACZ,SAAA;AACF,KAAA;AAAM,SAAA;QACL,KAAK,GAAG,EAAE,CAAC;AACZ,KAAA;AAED,IAAA,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEK,MAAM,cAAc,GAAG,CAAC,GAAQ,EAAE,GAAW,KAAI;IACtD,OAAO,qBAAqB,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AACnD,CAAC,CAAC;AAEK,MAAM,aAAa,GAAG,CAC3B,GAAW,EACX,IAAY,EACZ,OAAe,KACL;AACV,IAAA,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;AACrD,CAAC,CAAC;AAEK,MAAM,gBAAgB,GAAG,CAAC,KAAU,EAAE,IAAY,EAAE,KAAU,KAAS;IAC5E,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AACnC,CAAC,CAAC;AAEK,MAAM,gBAAgB,GAAG,CAC9B,MAAW,EACX,IAAY,EACZ,KAAU,KACH;IACP,OAAO,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AACpC,CAAC,CAAC;AAEK,MAAM,WAAW,GAAG,CAAC,KAAa,EAAE,UAAe,KAAS;AACjE,IAAA,MAAM,SAAS,GAAe,KAAK,CAAC,IAAI,CAAC;AACzC,IAAA,IAAI,KAAU,CAAC;AAEf,IAAA,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE;AAC1B,QAAA,QAAQ,SAAS;YACf,KAAK,UAAU,CAAC,IAAI;gBAClB,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACxC,gBAAA,KAAK,GAAG,IAAI,MAAM,CAChB,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBACpB,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACxB,gBAAA,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;iBACrB,CAAC;gBACF,MAAM;YACR,KAAK,UAAU,CAAC,KAAK;gBACnB,MAAM,UAAU,GAAG,KAAoB,CAAC;gBACxC,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAS,KAAI;AAC5C,oBAAA,OAAO,IAAI,CAAC,KAAK,KAAK,UAAU,CAAC;AACnC,iBAAC,CAAC,CAAC;gBACH,MAAM;YACR,KAAK,UAAU,CAAC,QAAQ;AACtB,gBAAA,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;gBAC5B,MAAM;AACR,YAAA;gBACE,KAAK,GAAG,UAAU,CAAC;gBACnB,MAAM;AACT,SAAA;AACF,KAAA;AAAM,SAAA;QACL,KAAK,GAAG,UAAU,CAAC;AACpB,KAAA;AAED,IAAA,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEK,MAAM,aAAa,GAAG,CAAC,KAAa,KAAS;AAClD,IAAA,MAAM,SAAS,GAAe,KAAK,CAAC,IAAI,CAAC;AACzC,IAAA,IAAI,KAAU,CAAC;AAEf,IAAA,QAAQ,SAAS;QACf,KAAK,UAAU,CAAC,QAAQ;YACtB,KAAK,GAAG,KAAK,CAAC;YACd,MAAM;QACR,KAAK,UAAU,CAAC,MAAM;YACpB,KAAK,GAAG,IAAI,CAAC;YACb,MAAM;QACR,KAAK,UAAU,CAAC,IAAI;YAClB,KAAK,GAAG,IAAI,CAAC;YACb,MAAM;AACR,QAAA;YACE,KAAK,GAAG,EAAE,CAAC;YACX,MAAM;AACT,KAAA;AAED,IAAA,OAAO,KAAK,CAAC;AACf,CAAC;;MCnJY,QAAQ,CAAA;IAOnB,WACE,CAAA,KAAa,EACb,YAAiB,EACjB,QAAa,EACb,gBAAqB,EACrB,UAAoB,EAAA;AAEpB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,QAAA,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;AAClC,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;AAC1B,QAAA,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;AAC1C,QAAA,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;KAC/B;IAGK,eAAe,GAAA;;AACnB,YAAA,IAAI,YAAiB,CAAC;YAEtB,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;YAElD,IAAI,WAAW,GAAG,CAAC,CAAC;AACpB,YAAA,KAAK,IAAI,MAAM,IAAI,OAAO,EAAE;AAC1B,gBAAA,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;oBAC1B,YAAY,EAAE,IAAI,CAAC,MAAM;oBACzB,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,kBAAkB,EAAE,IAAI,CAAC,iBAAiB;oBAC1C,cAAc,EAAE,IAAI,CAAC,aAAa;AACnC,iBAAA,CAAC,CAAC;gBACH,MAAM,KAAK,GAAG,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;;AAEjD,gBAAA,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAC5B,IAAI,CAAC,MAAM,EACX,0BAA0B,WAAW,CAAA,OAAA,CAAS,EAC9C,KAAK,CACN,CAAC;AAEF,gBAAA,MAAM,UAAU,GAAiB,MAAc,CAAC,UAAU,CAAC;AAE3D,gBAAA,MAAM,QAAQ,GAAoB,UAAU,CAAC,QAAQ,CAAC;AACtD,gBAAA,MAAM,KAAK,GAAiB,UAAU,CAAC,KAAK,CAAC;AAC7C,gBAAA,MAAM,OAAO,GAAmB,UAAU,CAAC,OAAO,CAAC;AAEnD,gBAAA,MAAM,YAAY,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE;oBACpC,YAAY,EAAE,IAAI,CAAC,MAAM;oBACzB,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,kBAAkB,EAAE,IAAI,CAAC,iBAAiB;oBAC1C,cAAc,EAAE,IAAI,CAAC,aAAa;iBACnC,CAAC,CAAC,OAAO,EAAE,CAAC;AAEb,gBAAA,KAAK,IAAI,MAAM,IAAI,OAAO,EAAE;AAC1B,oBAAA,MAAM,mBAAmB,GAAG,IAAI,SAAS,CACvC,MAAM,CAAC,SAAS,EAChB,YAAY,CACb,CAAC,QAAQ,EAAE,CAAC;AAEb,oBAAA,IAAI,mBAAmB,EAAE;wBACvB,MAAM,OAAO,GAAG,IAAI,OAAO,CACzB,MAAM,EACN,YAAY,EACZ;4BACE,YAAY,EAAE,IAAI,CAAC,MAAM;4BACzB,SAAS,EAAE,IAAI,CAAC,SAAS;4BACzB,kBAAkB,EAAE,IAAI,CAAC,iBAAiB;4BAC1C,cAAc,EAAE,IAAI,CAAC,aAAa;AACnC,yBAAA,EACD,IAAI,CAAC,WAAW,CACjB,CAAC;AAEF,wBAAA,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;AACzB,qBAAA;AACF,iBAAA;AAED,gBAAA,WAAW,EAAE,CAAC;AACf,aAAA;YAED,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;AAE/C,YAAA,IAAIF,SAAO,CAAC,YAAY,CAAC,EAAE;AACzB,gBAAA,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC3C,aAAA;AAED,YAAA,OAAO,YAAY,CAAC;SACrB,CAAA,CAAA;AAAA,KAAA;AACF,CAAA;AApEC,UAAA,CAAA;IADC,SAAS;AAoET,CAAA,EAAA,QAAA,CAAA,SAAA,EAAA,iBAAA,EAAA,IAAA,CAAA;;ACnGI,MAAM,gBAAgB,GAAG,CAAC,MAAa,EAAE,GAAW,KAAI;IAC7D,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,KAAI;AAClC,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE;AACrB,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;AACH,KAAC,CAAC,CAAC;AAEH,IAAA,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEK,MAAM,qBAAqB,GAAG,CAAC,MAAa,EAAE,GAAW,KAAI;AAClE,IAAA,IAAI,UAAkB,CAAC;IAEvB,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAM,KAAI;AACvC,QAAA,OAAO,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC;AACvB,KAAC,CAAC,CAAC;AAEH,IAAA,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAEK,MAAM,kCAAkC,GAAG,CAChD,KAAU,EACV,UAAe,EACf,SAAc,KACE,SAAA,CAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,aAAA;AAChB,IAAA,MAAM,gBAAgB,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;;AAG7D,IAAA,IAAI,OAA2B,CAAC;IAChC,IAAI,UAAU,CAAC,0BAA0B,EAAE;AACzC,QAAA,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CACpC,UAAU,CAAC,0BAA0B,CACtC,CAAC,CAAC,CAAC,CAAC;AACL,QAAA,OAAO,GAAG,UAAU,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AACpD,KAAA;AAAM,SAAA;AACL,QAAA,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;AAC9B,KAAA;;AAGD,IAAA,IAAI,CAAC,OAAO;QAAE,OAAO;;AAGrB,IAAA,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC;AACtC,IAAA,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;;AAGnC,IAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAChC,CAAC,CAAA,CAAC;AAEK,MAAM,mCAAmC,GAAG,CACjD,KAAU,EACV,UAAe,EACf,SAAc,KACP;AACP,IAAA,IAAI,OAAY,CAAC;AAEjB,IAAA,MAAM,UAAU,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;AAEvD,IAAA,IAAI,eAAe,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE;QACvC,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC;AAC1C,KAAA;AAED,IAAA,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEK,MAAM,uBAAuB,GAAG,CACrC,OAA2C,KAC/B;AACZ,IAAA,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC,CAAC;AAC3C,CAAC,CAAC;AAEc,SAAA,mBAAmB,CAAC,KAAU,EAAE,KAAU,EAAA;AACxD,IAAA,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;AACtB,IAAA,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;;;;;;;;;AAWpB,IAAA,OAAO,KAAK,CAAC;AACf,CAAC;AAEM,MAAM,UAAU,GAAG,CACxB,KAAU,EACV,OAA0C,KACnC;AACP,IAAA,MAAM,kBAAkB,GAAG,CACzB,QAA6C,EAC7C,OAA0C,KACxC;AACF,QAAA,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,YAA+C,KAAI;AACvE,YAAA,QACE,YAAY,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI;AAClC,gBAAA,YAAY,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,EACxC;AACJ,SAAC,CAAC,CAAC;AACL,KAAC,CAAC;AAEF,IAAA,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;AAEvB,IAAA,IAAI,oBAAoB,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE;QAC3C,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,EAAE;AACnD,YAAA,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC;gBACrB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,OAAO,EAAE,OAAO,CAAC,OAAO;AACzB,aAAA,CAAC,CAAC;AACJ,SAAA;AACF,KAAA;AAAM,SAAA;AACL,QAAA,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;AACxE,KAAA;AAED,IAAA,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AACK,MAAM,aAAa,GAAG,CAC3B,KAAU,EACV,OAA0C,KACnC;AACP,IAAA,KAAK,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,UAAU,YAAY,EAAA;AACjE,QAAA,OAAO,YAAY,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC;AAC5C,KAAC,CAAC,CAAC;AAEH,IAAA,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEI,SAAU,aAAa,CAC3B,MAAW,EACX,MAAW,EACX,GAAW,EACX,KAAc,EAAA;IAEd,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,KAAU,KAAI;AACjD,QAAA,OAAO,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC;AAC3B,KAAC,CAAC,CAAC;AAEH,IAAA,MAAM,gBAAgB,GAAG,CAAC,KAAU,EAAE,MAAW,KAAI;AACnD,QAAA,MAAM,eAAe,GAAG,CAAC,UAAkB,EAAE,SAAiB,KAAI;YAChE,IAAI,YAAY,GAAW,EAAE,CAAC;AAE9B,YAAA,QAAQ,SAAS;AACf,gBAAA,KAAK,UAAU;AACb,oBAAA,YAAY,GAAG,CAAA,EAAG,UAAU,CAAA,aAAA,CAAe,CAAC;oBAC5C,MAAM;AACR,gBAAA,KAAK,OAAO;AACV,oBAAA,YAAY,GAAG,CAAA,EAAG,UAAU,CAAA,wBAAA,CAA0B,CAAC;oBACvD,MAAM;AACR,gBAAA,KAAK,KAAK;oBACR,YAAY,GAAG,CAAG,EAAA,UAAU,CAAoC,iCAAA,EAAA,KAAK,CAAC,UAAU,CAAC,GAAG,CAAA,CAAE,CAAC;oBACvF,MAAM;AACR,gBAAA,KAAK,WAAW;oBACd,YAAY,GAAG,CAAG,EAAA,UAAU,CAA+C,4CAAA,EAAA,KAAK,CAAC,UAAU,CAAC,SAAS,CAAA,CAAE,CAAC;oBACxG,MAAM;AACR,gBAAA,KAAK,KAAK;oBACR,YAAY,GAAG,CAAG,EAAA,UAAU,CAAoC,iCAAA,EAAA,KAAK,CAAC,UAAU,CAAC,SAAS,CAAA,CAAE,CAAC;oBAC7F,MAAM;AACR,gBAAA,KAAK,WAAW;oBACd,YAAY,GAAG,CAAG,EAAA,UAAU,CAA+C,4CAAA,EAAA,KAAK,CAAC,UAAU,CAAC,SAAS,CAAA,CAAE,CAAC;oBACxG,MAAM;AACR,gBAAA,KAAK,UAAU;AACb,oBAAA,YAAY,GAAG,CAAA,EAAG,UAAU,CAAA,eAAA,CAAiB,CAAC;oBAC9C,MAAM;AACR,gBAAA,KAAK,SAAS;AACZ,oBAAA,YAAY,GAAG,CAAA,EAAG,UAAU,CAAA,wBAAA,CAA0B,CAAC;oBACvD,MAAM;AACR,gBAAA;AACE,oBAAA,YAAY,GAAG,CAAG,EAAA,UAAU,CAAK,EAAA,EAAA,SAAS,EAAE,CAAC;oBAC7C,MAAM;AACT,aAAA;AAED,YAAA,OAAO,YAAY,CAAC;AACtB,SAAC,CAAC;QAEF,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;AACpC,YAAA,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE;AACxB,gBAAA,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,eAAe,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC;AAC7C,aAAA,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,KAAK,CAAC;AACf,KAAC,CAAC;AAEF,IAAA,IAAI,KAAK,EAAE;AACT,QAAA,MAAM,CAAC,UAAU,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,CAAC;AACnE,KAAA;AAAM,SAAA;QACL,MAAM,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;AACrC,KAAA;AAED,IAAA,MAAM,CAAC,UAAU,CAAC,GAAG,mBAAmB,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC;AAEpE,IAAA,OAAO,MAAM,CAAC;AAChB,CAAC;AAEM,MAAM,+BAA+B,GAAG,CAAC,IAAY,KAAY;IACtE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAClC,IAAA,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACpB,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACxB,IAAA,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;KACrB,CAAC;AAEF,IAAA,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEK,MAAM,+BAA+B,GAAG,CAAC,IAAY,KAAY;AACtE,IAAA,IAAI,aAAqB,CAAC;AAC1B,IAAA,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACrB,IAAA,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;AACvB,IAAA,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;AAEnB,IAAA,aAAa,GAAG,CAAG,EAAA,GAAG,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA,CAAA,EAAI,CAAC,KAAK,GAAG,CAAC;AAC7D,SAAA,QAAQ,EAAE;SACV,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAI,CAAA,EAAA,IAAI,EAAE,CAAC;AAE9B,IAAA,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC;AAEK,MAAM,yCAAyC,GAAG,CACvD,KAAa,EACb,KAAU,KACR;IACF,IAAI,cAAc,GAAQ,KAAK,CAAC;AAEhC,IAAA,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE;QAC1B,QAAQ,KAAK,CAAC,IAAI;YAChB,KAAK,UAAU,CAAC,IAAI;AAClB,gBAAA,cAAc,GAAG,+BAA+B,CAAC,KAAK,CAAC,CAAC;gBACxD,MAAM;YACR,KAAK,UAAU,CAAC,KAAK;AACnB,gBAAA,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC;AAC/B,YAAA;gBACE,MAAM;AACT,SAAA;AACF,KAAA;AAED,IAAA,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC;AAEK,MAAM,yCAAyC,GAAG,CACvD,KAAa,EACb,KAAU,KACR;IACF,IAAI,cAAc,GAAQ,KAAK,CAAC;AAEhC,IAAA,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE;QAC1B,QAAQ,KAAK,CAAC,IAAI;YAChB,KAAK,UAAU,CAAC,KAAK;AACnB,gBAAA,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE;AACzC,oBAAA,MAAM,mBAAmB,GAAG;AAC1B,wBAAA,KAAK,EAAE,KAAK;AACZ,wBAAA,QAAQ,EAAE,KAAK;qBAChB,CAAC;oBACF,cAAc,GAAG,mBAAmB,CAAC;AACtC,iBAAA;gBACD,MAAM;YACR,KAAK,UAAU,CAAC,IAAI;AAClB,gBAAA,cAAc,GAAG,+BAA+B,CAAC,KAAK,CAAC,CAAC;gBACxD,MAAM;YACR,KAAK,UAAU,CAAC,KAAK;gBACnB,MAAM;AACR,YAAA;gBACE,MAAM;AACT,SAAA;AACF,KAAA;AAED,IAAA,OAAO,cAAc,CAAC;AACxB,CAAC;;MC/PY,WAAW,CAAA;IAmCtB,WACE,CAAA,KAAa,EACb,QAAa,EACb,gBAAqB,EACrB,YAAiB,EACjB,UAAe,EAAA;AAEf,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;AAC1B,QAAA,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;AAC1C,QAAA,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;AAClC,QAAA,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;KAC/B;AA7CD,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;IACD,IAAI,QAAQ,CAAC,KAAU,EAAA;AACrB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;KACxB;AAGD,IAAA,IAAI,gBAAgB,GAAA;QAClB,OAAO,IAAI,CAAC,iBAAiB,CAAC;KAC/B;IACD,IAAI,gBAAgB,CAAC,KAAU,EAAA;AAC7B,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;KAChC;AAGD,IAAA,IAAI,YAAY,GAAA;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;KAC3B;IACD,IAAI,YAAY,CAAC,KAAU,EAAA;AACzB,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;KAC5B;AAGD,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;KACpB;IACD,IAAI,KAAK,CAAC,KAAa,EAAA;AACrB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;KACrB;AAmBD,IAAA,kBAAkB,CAAC,KAAU,EAAA;QAC3B,IAAI,UAAU,GAAG,EAAE,CAAC;AAEpB,QAAA,IACE,oBAAoB,CAAC,KAAK,EAAE,YAAY,CAAC;AACzC,YAAA,oBAAoB,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC;AAC7C,YAAA,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EACrC;AACA,YAAA,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;AACvD,SAAA;AACD,QAAA,IACE,oBAAoB,CAAC,KAAK,EAAE,YAAY,CAAC;AACzC,YAAA,oBAAoB,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC;AAC7C,YAAA,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EACrC;AACA,YAAA,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;AACvD,SAAA;QACD,IACE,CAAC,oBAAoB,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,KAAK,CAAC,QAAQ;AAC1D,aAAC,oBAAoB,CAAC,KAAK,EAAE,YAAY,CAAC;AACxC,gBAAA,oBAAoB,CAAC,KAAK,CAAC,UAAU,EAAE,UAAU,CAAC;AAClD,gBAAA,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,EAC5B;AACA,YAAA,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AACtC,SAAA;AACD,QAAA,IACE,oBAAoB,CAAC,KAAK,EAAE,YAAY,CAAC;AACzC,YAAA,oBAAoB,CAAC,KAAK,CAAC,UAAU,EAAE,WAAW,CAAC;AACnD,YAAA,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,EAC3C;AACA,YAAA,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;AACnE,SAAA;AACD,QAAA,IACE,oBAAoB,CAAC,KAAK,EAAE,YAAY,CAAC;AACzC,YAAA,oBAAoB,CAAC,KAAK,CAAC,UAAU,EAAE,WAAW,CAAC;AACnD,YAAA,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,EAC3C;AACA,YAAA,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;AACnE,SAAA;AACD,QAAA,IACE,oBAAoB,CAAC,KAAK,EAAE,YAAY,CAAC;AACzC,YAAA,oBAAoB,CAAC,KAAK,CAAC,UAAU,EAAE,SAAS,CAAC;AACjD,YAAA,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,EACzC;YACA,IAAI,oBAAoB,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE;gBACzD,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,KAAK,WAAW,CAAC,MAAM,EAAE;AACvD,oBAAA,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;AACvE,iBAAA;AAAM,qBAAA;AACL,oBAAA,UAAU,CAAC,IAAI,CACb,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAC3D,CAAC;AACH,iBAAA;AACF,aAAA;AACF,SAAA;AAED,QAAA,OAAO,UAAU,CAAC;KACnB;AAGD,IAAA,uBAAuB,CACrB,OAAkB,EAAA;QAElB,IAAI,MAAM,GAAsC,EAAE,CAAC;AAEnD,QAAA,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE;YAClC,MAAM,aAAa,GAAqB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;AACrE,YAAA,IAAI,aAAa,KAAK,IAAI,IAAI,aAAa,KAAK,SAAS,EAAE;gBACzD,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAI;oBAC9C,MAAM,CAAC,IAAI,CAAC;AACV,wBAAA,IAAI,EAAE,QAAQ;AACd,wBAAA,KAAK,EAAE,aAAa,CAAC,QAAQ,CAAC;AAC/B,qBAAA,CAAC,CAAC;AACL,iBAAC,CAAC,CAAC;AACJ,aAAA;AACF,SAAA;AAED,QAAA,OAAO,MAAM,CAAC;KACf;AAGD,IAAA,4BAA4B,CAAC,iBAAwC,EAAA;QACnE,IAAI,QAAQ,GAAU,EAAE,CAAC;AAEzB,QAAA,IAAI,aAAa,GAAG,CAAC,IAA2B,KAAI;AAClD,YAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,KAAU,KAAI;gBAChD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAChC,IAAI,OAAO,CAAC,OAAO,EAAE;oBACnB,QAAQ,CAAC,IAAI,CAAC;AACZ,wBAAA,GAAG,EAAE,KAAK;AACV,wBAAA,OAAO,EAAE,IAAI;AACd,qBAAA,CAAC,CAAC;AACJ,iBAAA;AAAM,qBAAA;oBACL,QAAQ,CAAC,IAAI,CAAC;AACZ,wBAAA,GAAG,EAAE,KAAK;AACV,wBAAA,OAAO,EAAE,KAAK;AACf,qBAAA,CAAC,CAAC;AACJ,iBAAA;gBACD,IAAI,OAAO,YAAY,SAAS,EAAE;oBAChC,aAAa,CAAC,OAAO,CAAC,CAAC;AACxB,iBAAA;qBAAM,IAAI,OAAO,YAAY,SAAS,EAAE;oBACvC,aAAa,CAAC,OAAO,CAAC,CAAC;AACxB,iBAAA;AACH,aAAC,CAAC,CAAC;AACL,SAAC,CAAC;QAEF,aAAa,CAAC,iBAAiB,CAAC,CAAC;AAEjC,QAAA,OAAO,QAAQ,CAAC;KACjB;IAGK,aAAa,GAAA;;AACjB,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;AAE3C,YAAA,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;AACtC,YAAA,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;AAChC,YAAA,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;AAEpC,YAAA,MAAM,YAAY,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE;gBACpC,YAAY,EAAE,IAAI,CAAC,MAAM;gBACzB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,kBAAkB,EAAE,IAAI,CAAC,iBAAiB;gBAC1C,cAAc,EAAE,IAAI,CAAC,aAAa;aACnC,CAAC,CAAC,OAAO,EAAE,CAAC;AAEb,YAAA,KAAK,IAAI,MAAM,IAAI,OAAO,EAAE;AAC1B,gBAAA,MAAM,mBAAmB,GAAG,IAAI,SAAS,CACvC,MAAM,CAAC,SAAS,EAChB,YAAY,CACb,CAAC,QAAQ,EAAE,CAAC;AAEb,gBAAA,IAAI,mBAAmB,EAAE;oBACvB,MAAM,OAAO,GAAG,IAAI,OAAO,CACzB,MAAM,EACN,YAAY,EACZ;wBACE,YAAY,EAAE,IAAI,CAAC,MAAM;wBACzB,SAAS,EAAE,IAAI,CAAC,SAAS;wBACzB,kBAAkB,EAAE,IAAI,CAAC,iBAAiB;wBAC1C,cAAc,EAAE,IAAI,CAAC,aAAa;AACnC,qBAAA,EACD,IAAI,CAAC,WAAW,CACjB,CAAC;AAEF,oBAAA,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;AACzB,iBAAA;AACF,aAAA;SACF,CAAA,CAAA;AAAA,KAAA;AACF,CAAA;AApJC,UAAA,CAAA;IADC,SAAS;AAyDT,CAAA,EAAA,WAAA,CAAA,SAAA,EAAA,oBAAA,EAAA,IAAA,CAAA,CAAA;AAGD,UAAA,CAAA;IADC,SAAS;AAmBT,CAAA,EAAA,WAAA,CAAA,SAAA,EAAA,yBAAA,EAAA,IAAA,CAAA,CAAA;AAGD,UAAA,CAAA;IADC,SAAS;AA6BT,CAAA,EAAA,WAAA,CAAA,SAAA,EAAA,8BAAA,EAAA,IAAA,CAAA,CAAA;AAGD,UAAA,CAAA;IADC,SAAS;AAqCT,CAAA,EAAA,WAAA,CAAA,SAAA,EAAA,eAAA,EAAA,IAAA,CAAA;;MCnNU,qBAAqB,CAAA;AAChC,IAAA,WAAA,GAAA,GAAgB;;IAIV,eAAe,CACnB,MAAW,EACX,QAAa,EACb,gBAAqB,EACrB,YAAiB,EACjB,UAAoB,EAAA;;AAEpB,YAAA,IAAI,SAAS,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC;AAElC,YAAA,KAAK,IAAI,KAAK,IAAI,MAAM,EAAE;AACxB,gBAAA,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;AAC1B,oBAAA,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAC3B,KAAK,EACL,YAAY,EACZ,QAAQ,EACR,gBAAgB,EAChB,UAAU,CACX,CAAC;AACF,oBAAA,IAAI,KAAK,GAAG,MAAM,QAAQ,CAAC,eAAe,EAAE,CAAC;AAC7C,oBAAA,KAAK,GAAG,yCAAyC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;oBAEhE,MAAM,UAAU,GAAG,IAAI,WAAW,CAChC,KAAK,EACL,QAAQ,EACR,gBAAgB,EAChB,YAAY,EACZ,UAAU,CACX,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;AAE5B,oBAAA,SAAS,CAAC,UAAU,CAClB,KAAK,CAAC,GAAG,EACT,IAAI,WAAW,CACb,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,EAC1C,EAAE,UAAU,EAAE,UAAU,EAAE,CAC3B,CACF,CAAC;AACH,iBAAA;AACF,aAAA;AAED,YAAA,OAAO,SAAS,CAAC;SAClB,CAAA,CAAA;AAAA,KAAA;AACF,CAAA;AAzCC,UAAA,CAAA;IADC,SAAS;AAyCT,CAAA,EAAA,qBAAA,CAAA,SAAA,EAAA,iBAAA,EAAA,IAAA,CAAA;;MC5BU,IAAI,CAAA;IAYf,WACE,CAAA,KAAoB,EACpB,QAAa,EACb,gBAAqB,EACrB,YAAiB,EACjB,UAAoB,EAAA;AAEpB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;AAC1B,QAAA,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;AAC1C,QAAA,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;AAClC,QAAA,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;AAE9B,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;QAClC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;QACpC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;KACjC;IAGY,oBAAoB,GAAA;;;YAC/B,IAAI,MAAM,GAAgC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;YAEpE,IAAI,UAAU,GAAG,CAAC,CAAC;AACnB,YAAA,KAAK,IAAI,KAAK,IAAI,MAAM,EAAE;AACxB,gBAAA,IAAI,OAAO,GAAmB,KAAK,CAAC,OAAO,CAAC;gBAE5C,IAAI,WAAW,GAAG,CAAC,CAAC;AACpB,gBAAA,KAAK,IAAI,MAAM,IAAI,OAAO,EAAE;AAC1B,oBAAA,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;wBAC1B,YAAY,EAAE,IAAI,CAAC,MAAM;wBACzB,SAAS,EAAE,IAAI,CAAC,SAAS;wBACzB,kBAAkB,EAAE,IAAI,CAAC,iBAAiB;wBAC1C,cAAc,EAAE,IAAI,CAAC,aAAa;AACnC,qBAAA,CAAC,CAAC;oBAEH,MAAM,KAAK,GAAG,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;;AAEjD,oBAAA,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAC5B,IAAI,CAAC,MAAM,EACX,CAAA,wBAAA,EAA2B,UAAU,CAAa,UAAA,EAAA,WAAW,SAAS,EACtE,KAAK,CACN,CAAC;AAEF,oBAAA,MAAM,UAAU,GAAiB,MAAc,CAAC,UAAU,CAAC;AAE3D,oBAAA,MAAM,QAAQ,GAAoB,CAAA,EAAA,GAAA,UAAU,KAAV,IAAA,IAAA,UAAU,KAAV,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,UAAU,CAAE,QAAQ,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,CAAC;AAC7D,oBAAA,MAAM,KAAK,GAAiB,CAAA,EAAA,GAAA,UAAU,KAAV,IAAA,IAAA,UAAU,KAAV,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,UAAU,CAAE,KAAK,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,CAAC;oBACpD,MAAM,OAAO,GAAmB,CAAA,EAAA,GAAA,CAAA,EAAA,GAAC,UAAkB,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAO,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,CAAC;AAEnE,oBAAA,MAAM,YAAY,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE;wBACpC,YAAY,EAAE,IAAI,CAAC,MAAM;wBACzB,SAAS,EAAE,IAAI,CAAC,SAAS;wBACzB,kBAAkB,EAAE,IAAI,CAAC,iBAAiB;wBAC1C,cAAc,EAAE,IAAI,CAAC,aAAa;qBACnC,CAAC,CAAC,OAAO,EAAE,CAAC;AAEb,oBAAA,KAAK,IAAI,MAAM,IAAI,OAAO,EAAE;AAC1B,wBAAA,MAAM,mBAAmB,GAAG,IAAI,SAAS,CACvC,MAAM,CAAC,SAAS,EAChB,YAAY,CACb,CAAC,QAAQ,EAAE,CAAC;AAEb,wBAAA,IAAI,mBAAmB,EAAE;4BACvB,MAAM,OAAO,GAAG,IAAI,OAAO,CACzB,MAAM,EACN,YAAY,EACZ;gCACE,YAAY,EAAE,IAAI,CAAC,MAAM;gCACzB,SAAS,EAAE,IAAI,CAAC,SAAS;gCACzB,kBAAkB,EAAE,IAAI,CAAC,iBAAiB;gCAC1C,cAAc,EAAE,IAAI,CAAC,aAAa;AACnC,6BAAA,EACD,IAAI,CAAC,WAAW,CACjB,CAAC;AAEF,4BAAA,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;AACzB,yBAAA;AACF,qBAAA;AAED,oBAAA,WAAW,EAAE,CAAC;AACf,iBAAA;AAED,gBAAA,UAAU,EAAE,CAAC;AACd,aAAA;YAED,OAAO,IAAI,CAAC,MAAM,CAAC;;AACpB,KAAA;IAGY,mBAAmB,GAAA;;;AAC9B,YAAA,MAAM,IAAI,GAAoB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AAEjD,YAAA,MAAM,UAAU,GAAgB,IAAI,CAAC,UAAU,CAAC;AAEhD,YAAA,MAAM,QAAQ,GAAoB,UAAU,CAAC,QAAQ,CAAC;AACtD,YAAA,MAAM,KAAK,GAAiB,UAAU,CAAC,KAAK,CAAC;AAC7C,YAAA,MAAM,OAAO,GAAmB,CAAA,EAAA,GAAC,UAAkB,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,OAAO,CAAC;AAE7D,YAAA,MAAM,YAAY,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE;gBACpC,YAAY,EAAE,IAAI,CAAC,MAAM;gBACzB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,kBAAkB,EAAE,IAAI,CAAC,iBAAiB;gBAC1C,cAAc,EAAE,IAAI,CAAC,aAAa;aACnC,CAAC,CAAC,OAAO,EAAE,CAAC;AAEb,YAAA,KAAK,IAAI,MAAM,IAAI,OAAO,EAAE;AAC1B,gBAAA,MAAM,gBAAgB,GAAG,IAAI,SAAS,CACpC,MAAM,CAAC,SAAS,EAChB,YAAY,CACb,CAAC,QAAQ,EAAE,CAAC;AAEb,gBAAA,IAAI,gBAAgB,EAAE;oBACpB,MAAM,OAAO,GAAG,IAAI,OAAO,CACzB,MAAM,EACN,YAAY,EACZ;wBACE,YAAY,EAAE,IAAI,CAAC,MAAM;wBACzB,SAAS,EAAE,IAAI,CAAC,SAAS;wBACzB,kBAAkB,EAAE,IAAI,CAAC,iBAAiB;wBAC1C,cAAc,EAAE,IAAI,CAAC,aAAa;AACnC,qBAAA,EACD,IAAI,CAAC,WAAW,CACjB,CAAC;AAEF,oBAAA,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;AACzB,iBAAA;AACF,aAAA;YAED,OAAO,IAAI,CAAC,MAAM,CAAC;;AACpB,KAAA;IAGY,uBAAuB,GAAA;;AAClC,YAAA,MAAM,UAAU,GAAgB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;AAE1D,YAAA,MAAM,QAAQ,GAAoB,UAAU,CAAC,QAAQ,CAAC;AACtD,YAAA,MAAM,KAAK,GAAiB,UAAU,CAAC,KAAK,CAAC;AAC7C,YAAA,MAAM,OAAO,GAAoB,UAAkB,CAAC,OAAO,CAAC;AAE5D,YAAA,MAAM,YAAY,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE;gBACpC,YAAY,EAAE,IAAI,CAAC,MAAM;gBACzB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,kBAAkB,EAAE,IAAI,CAAC,iBAAiB;gBAC1C,cAAc,EAAE,IAAI,CAAC,aAAa;aACnC,CAAC,CAAC,OAAO,EAAE,CAAC;AAEb,YAAA,KAAK,IAAI,MAAM,IAAI,OAAO,EAAE;AAC1B,gBAAA,MAAM,gBAAgB,GAAG,IAAI,SAAS,CACpC,MAAM,CAAC,SAAS,EAChB,YAAY,CACb,CAAC,QAAQ,EAAE,CAAC;AAEb,gBAAA,IAAI,gBAAgB,EAAE;oBACpB,MAAM,OAAO,GAAG,IAAI,OAAO,CACzB,MAAM,EACN,YAAY,EACZ;wBACE,YAAY,EAAE,IAAI,CAAC,MAAM;wBACzB,SAAS,EAAE,IAAI,CAAC,SAAS;wBACzB,kBAAkB,EAAE,IAAI,CAAC,iBAAiB;wBAC1C,cAAc,EAAE,IAAI,CAAC,aAAa;AACnC,qBAAA,EACD,IAAI,CAAC,WAAW,CACjB,CAAC;AAEF,oBAAA,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;AACzB,iBAAA;AACF,aAAA;YAED,OAAO,IAAI,CAAC,MAAM,CAAC;SACpB,CAAA,CAAA;AAAA,KAAA;IAED,cAAc,GAAA;QACZ,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,MAAM;YAClB,QAAQ,EAAE,IAAI,CAAC,SAAS;YACxB,gBAAgB,EAAE,IAAI,CAAC,iBAAiB;YACxC,YAAY,EAAE,IAAI,CAAC,aAAa;SACjC,CAAC;KACH;AACF,CAAA;AAjKC,UAAA,CAAA;IADC,SAAS;AAoET,CAAA,EAAA,IAAA,CAAA,SAAA,EAAA,sBAAA,EAAA,IAAA,CAAA,CAAA;AAGD,UAAA,CAAA;IADC,SAAS;AAyCT,CAAA,EAAA,IAAA,CAAA,SAAA,EAAA,qBAAA,EAAA,IAAA,CAAA,CAAA;AAGD,UAAA,CAAA;IADC,SAAS;AAuCT,CAAA,EAAA,IAAA,CAAA,SAAA,EAAA,yBAAA,EAAA,IAAA,CAAA;;MCrJU,uBAAuB,CAAA;AA+ClC,IAAA,WAAA,CAC6C,IAAoB,EACnB,KAAsB,EAC1D,eAAsC,EAAA;QAFH,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAgB;QACnB,IAAK,CAAA,KAAA,GAAL,KAAK,CAAiB;QAC1D,IAAe,CAAA,eAAA,GAAf,eAAe,CAAuB;QA1ChD,IAAe,CAAA,eAAA,GAAQ,EAAE,CAAC;QAG1B,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;AAS9B,QAAA,IAAA,CAAA,gBAAgB,GAAsB,IAAI,YAAY,EAAO,CAAC;AAG9D,QAAA,IAAA,CAAA,eAAe,GAAsB,IAAI,YAAY,EAAO,CAAC;AAG7D,QAAA,IAAA,CAAA,cAAc,GAAsB,IAAI,YAAY,EAAO,CAAC;AAG5D,QAAA,IAAA,CAAA,iBAAiB,GAAsB,IAAI,YAAY,EAAO,CAAC;QAE/D,IAAW,CAAA,WAAA,GAAQ,EAAE,CAAC;QACtB,IAAU,CAAA,UAAA,GAAU,EAAE,CAAC;QACvB,IAAgB,CAAA,gBAAA,GAAQ,EAAE,CAAC;QAE3B,IAAO,CAAA,OAAA,GAAY,IAAI,CAAC;AACxB,QAAA,IAAA,CAAA,eAAe,GAAG;AAChB,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,UAAU,EAAE,KAAK;SAClB,CAAC;AACF,QAAA,IAAA,CAAA,cAAc,GAAG;AACf,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,UAAU,EAAE,KAAK;SAClB,CAAC;AAEF,QAAA,IAAA,CAAA,SAAS,GAAc,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC;QA4nBzC,IAAqB,CAAA,qBAAA,GAAY,KAAK,CAAC;KAtnBnC;IAGJ,QAAQ,GAAA;AACN,QAAA,CAAC,MAAW,SAAA,CAAA,IAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,aAAA;YACV,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAE3C,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;SACtB,CAAA,GAAG,CAAC;KACN;AAGD,IAAA,eAAe,MAAW;AAG1B,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,MAAM,YAAY,GAAG,CAAC,GAAW,KAAI;AACnC,YAAA,OAAO,oBAAoB,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC;AACzE,SAAC,CAAC;AACF,QAAA,IAAI,YAAY,CAAC,UAAU,CAAC,EAAE;AAC5B,YAAA,IAAI,CAAC,QAAQ,GACR,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,CAAC,QAAQ,CACb,EAAA,OAAO,CAAC,QAAQ,CAAC,YAAY,CACjC,CAAC;AACH,SAAA;AACD,QAAA,IAAI,YAAY,CAAC,iBAAiB,CAAC,EAAE;YACnC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,YAAY,CAAC;YAE5D,IAAI,CAAC,QAAQ,GACR,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,CAAC,QAAQ,CAAA,EAAA,EAChB,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAA,CAC1D,CAAC;AAEF,YAAA,IAAI,CAAC,SAAS,CAAC,UAAU,CACvB;gBACE,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ;AAC1D,aAAA,EACD,EAAE,SAAS,EAAE,KAAK,EAAE,CACrB,CAAC;AAEF,YAAA,IAAI,KAAK,GAAkB,gBAAgB,CACzC,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,eAAe,CAAC,GAAG,CACzB,CAAC;AAEF,YAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CACnB,KAAK,EACL,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAC3B,CAAC;AAEF,YAAA,CAAC,MAAW,SAAA,CAAA,IAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,aAAA;AACV,gBAAA,KAAK,GAAG,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAC;aAC9C,CAAA,GAAG,CAAC;AACN,SAAA;AACD,QAAA,IAAI,YAAY,CAAC,cAAc,CAAC,EAAE;YAChC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC;AACvD,SAAA;AACD,QAAA,IAAI,YAAY,CAAC,cAAc,CAAC,EAAE;YAChC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC;AACvD,SAAA;AACD,QAAA,IAAI,YAAY,CAAC,WAAW,CAAC,EAAE;YAC7B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC;AACjD,SAAA;AACD,QAAA,IAAI,YAAY,CAAC,YAAY,CAAC,EAAE;YAC9B,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC;AAElD,YAAA,CAAC,MAAW,SAAA,CAAA,IAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,aAAA;gBACV,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aAC5C,CAAA,GAAG,CAAC;AACN,SAAA;KACF;AAGK,IAAA,cAAc,CAAC,UAAe,EAAA;;AAClC,YAAA,IAAI,CAAC,2BAA2B,CAAC,UAAU,CAAC,CAAC;AAE7C,YAAA,IAAI,CAAC,gCAAgC,CAAC,UAAU,CAAC,CAAC;YAElD,IAAI,CAAC,2BAA2B,EAAE,CAAC;AAEnC,YAAA,IAAI,CAAC,SAAS,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,eAAe,CACzD,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAC3B,CAAC;AAEF,YAAA,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,UAAU,EAAE;AACjC,gBAAA,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;oBAC1B,IAAI,CAAC,gBAAgB,GAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAChB,IAAI,CAAC,gBAAgB,CAAA,EAAA,EACxB,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAA,CACtD,CAAC;oBAEF,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,YAAY;yBAC5C,IAAI,CAAC,QAAQ,EAAE,CAAC;yBAChB,SAAS,CAAC,CAAC,CAAC,aAAa,EAAE,YAAY,CAAC,KAAI;AAC3C,wBAAA,IAAI,CAAC,gBAAgB,GAChB,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,CAAC,gBAAgB,CAAA,EAAA,EACxB,CAAC,KAAK,CAAC,GAAG,GAAG,aAAa,GAC3B,CAAC;AAEF,wBAAA,IAAI,CAAC,QAAQ,GACR,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,CAAC,QAAQ,CAAA,EAAA,EAChB,CAAC,KAAK,CAAC,GAAG,GAAG,YAAY,GAC1B,CAAC;AACJ,qBAAC,CAAC,CAAC;AACN,iBAAA;AACF,aAAA;AACD,YAAA,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,UAAU,EAAE;AACjC,gBAAA,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;AAC1B,oBAAA,CAAC,MAAW,SAAA,CAAA,IAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,aAAA;AACV,wBAAA,KAAK,GAAG,MAAM,IAAI,CAAC,uBAAuB,CACxC;4BACE,GAAG,EAAE,KAAK,CAAC,GAAG;AACd,4BAAA,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK;yBAChD,EACD,SAAS,CACV,CAAC;qBACH,CAAA,GAAG,CAAC;AACN,iBAAA;AACF,aAAA;SACF,CAAA,CAAA;AAAA,KAAA;AAGD,IAAA,2BAA2B,CAAC,UAAe,EAAA;AACzC,QAAA,IAAI,oBAAoB,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE;AAC9C,YAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC;AACrC,SAAA;AAAM,aAAA,IACL,oBAAoB,CAAC,UAAU,EAAE,WAAW,CAAC;AAC7C,YAAA,oBAAoB,CAAC,UAAU,CAAC,SAAS,EAAE,QAAQ,CAAC,EACpD;YACA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC;AAC/C,SAAA;KACF;AAGD,IAAA,gCAAgC,CAAC,UAAe,EAAA;AAC9C,QAAA,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC;KAC3C;IAGD,2BAA2B,GAAA;AACzB,QAAA,IAAI,oBAAoB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AAChE,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACxD,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;AACpB,SAAA;KACF;IAGK,uCAAuC,CAC3C,qBAA0B,EAC1B,WAAgB,EAAA;;AAEhB,YAAA,IAAI,oBAAoB,CAAC,qBAAqB,EAAE,OAAO,CAAC,EAAE;gBACxD,MAAM,YAAY,GAAG,IAAI,KAAK,CAAC,qBAAqB,CAAC,KAAK,EAAE;AAC1D,oBAAA,YAAY,EAAE,WAAW;oBACzB,SAAS,EAAE,IAAI,CAAC,QAAQ;oBACxB,kBAAkB,EAAE,IAAI,CAAC,gBAAgB;oBACzC,cAAc,EAAE,IAAI,CAAC,YAAY;iBAClC,CAAC,CAAC,OAAO,EAAE,CAAC;AAEb,gBAAA,KAAK,IAAI,MAAM,IAAI,qBAAqB,CAAC,OAAO,EAAE;AAChD,oBAAA,MAAM,gBAAgB,GAAG,IAAI,SAAS,CACpC,MAAM,CAAC,SAAS,EAChB,YAAY,CACb,CAAC,QAAQ,EAAE,CAAC;AAEb,oBAAA,IAAI,gBAAgB,EAAE;wBACpB,MAAM,OAAO,GAAG,IAAI,OAAO,CACzB,MAAM,EACN,YAAY,EACZ;AACE,4BAAA,YAAY,EAAE,WAAW;4BACzB,SAAS,EAAE,IAAI,CAAC,QAAQ;4BACxB,kBAAkB,EAAE,IAAI,CAAC,gBAAgB;4BACzC,cAAc,EAAE,IAAI,CAAC,YAAY;yBAClC,EACD,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CACvC,CAAC;AAEF,wBAAA,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;AACzB,qBAAA;AACF,iBAAA;AACF,aAAA;SACF,CAAA,CAAA;AAAA,KAAA;AAGK,IAAA,gCAAgC,CACpC,YAAiB,EACjB,yBAA8B,EAC9B,SAAiB,EAAA;;AAEjB,YAAA,QAAQ,SAAS;AACf,gBAAA,KAAK,MAAM;AACT,oBAAA,IACE,oBAAoB,CAAC,yBAAyB,EAAE,UAAU,CAAC;AAC3D,wBAAA,yBAAyB,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EACnD;wBACA,MAAM,IAAI,CAAC,uCAAuC,CAChD,yBAAyB,EACzB,YAAY,CACb,CAAC;AACH,qBAAA;oBACD,MAAM;AACR,gBAAA,KAAK,cAAc;AACjB,oBAAA,IACE,oBAAoB,CAAC,yBAAyB,EAAE,UAAU,CAAC;AAC3D,wBAAA,yBAAyB,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,EAC3D;wBACA,MAAM,IAAI,CAAC,uCAAuC,CAChD,yBAAyB,EACzB,YAAY,CACb,CAAC;AACH,qBAAA;oBACD,MAAM;AACR,gBAAA,KAAK,aAAa;AAChB,oBAAA,IACE,oBAAoB,CAAC,yBAAyB,EAAE,UAAU,CAAC;AAC3D,wBAAA,yBAAyB,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,EAC1D;wBACA,MAAM,IAAI,CAAC,uCAAuC,CAChD,yBAAyB,EACzB,YAAY,CACb,CAAC;AACH,qBAAA;AACH,gBAAA;AACE,oBAAA,IAAI,oBAAoB,CAAC,yBAAyB,EAAE,UAAU,CAAC,EAAE;wBAC/D,MAAM,IAAI,CAAC,uCAAuC,CAChD,yBAAyB,EACzB,YAAY,CACb,CAAC;AACH,qBAAA;oBACD,MAAM;AACT,aAAA;SACF,CAAA,CAAA;AAAA,KAAA;IAGK,kCAAkC,CACtC,oBAAyB,EACzB,cAAmB,EAAA;;AAEnB,YAAA,IAAI,oBAAoB,CAAC,oBAAoB,EAAE,OAAO,CAAC,EAAE;gBACvD,MAAM,YAAY,GAAG,IAAI,KAAK,CAAC,oBAAoB,CAAC,KAAK,EAAE;AACzD,oBAAA,YAAY,EAAE,cAAc;oBAC5B,SAAS,EAAE,IAAI,CAAC,QAAQ;oBACxB,kBAAkB,EAAE,IAAI,CAAC,gBAAgB;oBACzC,cAAc,EAAE,IAAI,CAAC,YAAY;iBAClC,CAAC,CAAC,OAAO,EAAE,CAAC;AAEb,gBAAA,KAAK,IAAI,MAAM,IAAI,oBAAoB,CAAC,OAAO,EAAE;AAC/C,oBAAA,MAAM,gBAAgB,GAAG,IAAI,SAAS,CACpC,MAAM,CAAC,SAAS,EAChB,YAAY,CACb,CAAC,QAAQ,EAAE,CAAC;AAEb,oBAAA,IAAI,gBAAgB,EAAE;wBACpB,MAAM,OAAO,GAAG,IAAI,OAAO,CACzB,MAAM,EACN,YAAY,EACZ;AACE,4BAAA,YAAY,EAAE,cAAc;4BAC5B,SAAS,EAAE,IAAI,CAAC,QAAQ;4BACxB,kBAAkB,EAAE,IAAI,CAAC,gBAAgB;4BACzC,cAAc,EAAE,IAAI,CAAC,YAAY;yBAClC,EACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAC3B,CAAC;AAEF,wBAAA,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;AACzB,qBAAA;AACF,iBAAA;AACF,aAAA;AAED,YAAA,OAAO,cAAc,CAAC;SACvB,CAAA,CAAA;AAAA,KAAA;AAGK,IAAA,4BAA4B,CAChC,YAAiB,EACjB,oBAAyB,EACzB,SAAiB,EAAA;;AAEjB,YAAA,IAAI,cAAc,GAAG,gBAAgB,CACnC,IAAI,CAAC,UAAU,EACf,oBAAoB,CAAC,KAAK,CAAC,CAC5B,CAAC;AAEF,YAAA,QAAQ,SAAS;AACf,gBAAA,KAAK,MAAM;AACT,oBAAA,IACE,oBAAoB,CAAC,cAAc,EAAE,UAAU,CAAC;AAChD,wBAAA,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EACxC;wBACA,IAAI,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;AAC3C,4BAAA,IACE,oBAAoB,CAClB,oBAAoB,EACpB,uBAAuB,CACxB,EACD;gCACA,QAAQ,oBAAoB,CAAC,IAAI;AAC/B,oCAAA,KAAK,sBAAsB;wCACzB,cAAc,GAAG,MAAM,IAAI,CAAC,yBAAyB,CACnD,YAAY,EACZ,cAAc,CACf,CAAC;wCACF,MAAM;AACR,oCAAA;wCACE,MAAM;AACT,iCAAA;AACF,6BAAA;AACF,yBAAA;wBACD,cAAc,GAAG,MAAM,IAAI,CAAC,kCAAkC,CAC5D,oBAAoB,EACpB,cAAc,CACf,CAAC;AACH,qBAAA;oBACD,MAAM;AACR,gBAAA,KAAK,cAAc;AACjB,oBAAA,IACE,oBAAoB,CAAC,oBAAoB,EAAE,UAAU,CAAC;AACtD,wBAAA,oBAAoB,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,EACtD;wBACA,QAAQ,cAAc,CAAC,IAAI;AACzB,4BAAA,KAAK,sBAAsB;gCACzB,cAAc,GAAG,MAAM,IAAI,CAAC,yBAAyB,CACnD,YAAY,EACZ,cAAc,CACf,CAAC;gCACF,MAAM;AACR,4BAAA;gCACE,MAAM;AACT,yBAAA;wBACD,cAAc,GAAG,MAAM,IAAI,CAAC,kCAAkC,CAC5D,oBAAoB,EACpB,cAAc,CACf,CAAC;AACH,qBAAA;oBACD,MAAM;AACR,gBAAA,KAAK,aAAa;AAChB,oBAAA,IACE,oBAAoB,CAAC,oBAAoB,EAAE,UAAU,CAAC;AACtD,wBAAA,oBAAoB,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,EACrD;wBACA,cAAc,GAAG,MAAM,IAAI,CAAC,kCAAkC,CAC5D,oBAAoB,EACpB,cAAc,CACf,CAAC;AACH,qBAAA;AACH,gBAAA;AACE,oBAAA,IAAI,oBAAoB,CAAC,oBAAoB,EAAE,UAAU,CAAC,EAAE;wBAC1D,cAAc,GAAG,MAAM,IAAI,CAAC,kCAAkC,CAC5D,oBAAoB,EACpB,cAAc,CACf,CAAC;AACH,qBAAA;oBACD,MAAM;AACT,aAAA;AAED,YAAA,IAAI,oBAAoB,CAAC,cAAc,EAAE,mBAAmB,CAAC,EAAE;gBAC7D,IACE,oBAAoB,CAClB,cAAc,CAAC,iBAAiB,EAChC,iBAAiB,CAClB,EACD;AACA,oBAAA,KAAK,MAAM,oBAAoB,IAAI,cAAc,CAAC,iBAAiB;AAChE,yBAAA,eAAe,EAAE;wBAClB,cAAc,GAAG,IAAI,CAAC,4BAA4B,CAChD,cAAc,EACd,oBAAoB,EACpB,aAAa,CACd,CAAC;AACH,qBAAA;AACF,iBAAA;AACF,aAAA;AAED,YAAA,OAAO,YAAY,CAAC;SACrB,CAAA,CAAA;AAAA,KAAA;IAGK,uBAAuB,CAAC,CAAM,EAAE,SAAiB,EAAA;;AACrD,YAAA,IAAI,YAAY,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAE5D,IAAI,YAAY,KAAK,SAAS,EAAE;AAC9B,gBAAA,IAAI,oBAAoB,CAAC,YAAY,EAAE,mBAAmB,CAAC,EAAE;oBAC3D,IACE,oBAAoB,CAClB,YAAY,CAAC,iBAAiB,EAC9B,sBAAsB,CACvB,EACD;AACA,wBAAA,IAAI,oBAAoB,GACtB,YAAY,CAAC,iBAAiB,CAAC,oBAAoB,CAAC;AACtD,wBAAA,KAAK,IAAI,yBAAyB,IAAI,oBAAoB,EAAE;4BAC1D,MAAM,IAAI,CAAC,gCAAgC,CACzC,YAAY,EACZ,yBAAyB,EACzB,SAAS,CACV,CAAC;AACH,yBAAA;AACF,qBAAA;oBACD,IACE,oBAAoB,CAClB,YAAY,CAAC,iBAAiB,EAC9B,iBAAiB,CAClB,EACD;AACA,wBAAA,IAAI,eAAe,GAAG,YAAY,CAAC,iBAAiB,CAAC,eAAe,CAAC;AACrE,wBAAA,KAAK,IAAI,oBAAoB,IAAI,eAAe,EAAE;AAChD,4BAAA,YAAY,GAAG,MAAM,IAAI,CAAC,4BAA4B,CACpD,YAAY,EACZ,oBAAoB,EACpB,SAAS,CACV,CAAC;AACH,yBAAA;AACF,qBAAA;AACF,iBAAA;AACF,aAAA;AAAM,iBAAA;gBACL,MAAM,IAAI,KAAK,CACb,CAA6B,0BAAA,EAAA,CAAC,CAAC,GAAG,CAAoC,iCAAA,EAAA,SAAS,CAAI,EAAA,CAAA,CACpF,CAAC;AACH,aAAA;SACF,CAAA,CAAA;AAAA,KAAA;;AAID,IAAA,iBAAiB,CAAC,CAAM,EAAA;AACtB,QAAA,IAAI,CAAC,SAAS,CAAC,UAAU,CACvB;AACE,YAAA,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK;AACjB,SAAA,EACD,EAAE,SAAS,EAAE,KAAK,EAAE,CACrB,CAAC;;AAGF,QAAA,IAAI,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;AAErD,QAAA,IACE,KAAK,CAAC,IAAI,KAAK,OAAO;YACtB,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAC/C;AACA,YAAA,MAAM,WAAW,GAAG,IAAI,WAAW,CACjC,KAAK,EACL,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAC3B,CAAC;AAEF,YAAA,CAAC,MAAW,SAAA,CAAA,IAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,aAAA;AACV,gBAAA,MAAM,WAAW,CAAC,aAAa,EAAE,CAAC;aACnC,CAAA,GAAG,CAAC;YAEL,IAAI,CAAC,uBAAuB,CAC1B;gBACE,GAAG,EAAE,KAAK,CAAC,GAAG;AACd,gBAAA,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK;aAChD,EACD,WAAW,CACZ,CAAC;AACH,SAAA;KACF;IAGK,4BAA4B,CAAC,CAAM,EAAE,KAAkB,EAAA;;YAC3D,KAAK,IAAI,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE;AAChC,gBAAA,KAAK,IAAI,MAAM,IAAI,CAAC,CAAC,OAAO,EAAE;AAC5B,oBAAA,MAAM,UAAU,GAAG,gBAAgB,CACjC,IAAI,CAAC,UAAU,EACf,MAAM,CAAC,KAAK,CAAC,QAAQ,CACtB,CAAC;oBACF,MAAM,OAAO,GAAG,IAAI,OAAO,CACzB,MAAM,EACN,EAAE,EACF;AACE,wBAAA,YAAY,EAAE,UAAU;wBACxB,SAAS,EAAE,IAAI,CAAC,QAAQ;wBACxB,kBAAkB,EAAE,IAAI,CAAC,gBAAgB;wBACzC,cAAc,EAAE,IAAI,CAAC,YAAY;qBAClC,EACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAC3B,CAAC;AACF,oBAAA,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;AACzB,iBAAA;AACF,aAAA;SACF,CAAA,CAAA;AAAA,KAAA;AAGK,IAAA,oBAAoB,CAAC,CAAM,EAAA;;AAC/B,YAAA,IAAI,KAAK,GAAkB,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;AAEpE,YAAA,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE;;AAE7B,gBAAA,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC;AACzD,gBAAA,KAAK,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;AAC3B,gBAAA,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;AACxC,gBAAA,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;AAC1C,gBAAA,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;AACvC,gBAAA,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;AAEzC,gBAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CACnB,KAAK,EACL,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAC3B,CAAC;AAEF,gBAAA,KAAK,GAAG,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAE1C,gBAAA,KAAK,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAEzC,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE;;AAE9C,oBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;wBACvB,GAAG,EAAE,CAAC,CAAC,GAAG;AACV,wBAAA,OAAO,EAAE;AACP,4BAAA,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK;AAClC,4BAAA,OAAO,EAAE,EAAE;AACX,4BAAA,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG;AAC3B,yBAAA;AACF,qBAAA,CAAC,CAAC;AACJ,iBAAA;AAAM,qBAAA;;;;oBAIL,UAAU,CAAC,MAAK;AACd,wBAAA,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC;AACxD,wBAAA,KAAK,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;qBAC7B,EAAE,GAAG,CAAC,CAAC;AACT,iBAAA;AAED,gBAAA,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC;AACzC,gBAAA,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;AAC3C,gBAAA,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC;AACxC,gBAAA,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;AAC3C,aAAA;SACF,CAAA,CAAA;AAAA,KAAA;AAGD,IAAA,sBAAsB,CAAC,CAAM,EAAA;AAC3B,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;AACzB,YAAA,OAAO,EAAE,IAAI;AACd,SAAA,CAAC,CAAC;KACJ;AAGD,IAAA,qBAAqB,CAAC,CAAM,EAAA;QAC1B,IAAI,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;AAE5C,QAAA,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,UAAU,EAAE;AACjC,YAAA,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,KAAK,EAAE;gBACnC,IAAI,KAAK,CAAC,MAAM,EAAE;AAChB,oBAAA,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC5B,iBAAA;AAAM,qBAAA;AACL,oBAAA,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,yCAAyC,CAC7D,KAAK,EACL,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CACpB,CAAC;AACH,iBAAA;AACF,aAAA;AACF,SAAA;AAED,QAAA,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,UAAU,EAAE;AACjC,YAAA,IACE,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,KAAK;gBAC/B,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,EAC7C;gBACA,MAAM,WAAW,GAAG,IAAI,WAAW,CACjC,KAAK,EACL,QAAQ,EACR,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAC3B,CAAC;AAEF,gBAAA,CAAC,MAAW,SAAA,CAAA,IAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,aAAA;AACV,oBAAA,MAAM,WAAW,CAAC,aAAa,EAAE,CAAC;iBACnC,CAAA,GAAG,CAAC;AACN,aAAA;AACF,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;AAC1B,YAAA,MAAM,QAAQ,GAAG,IAAI,WAAW,CAC9B,SAAS,EACT,QAAQ,EACR,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAC3B,CAAC,4BAA4B,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAE/C,IAAI,mBAAmB,GAAW,EAAE,CAAC;AAErC,YAAA,KAAK,IAAI,OAAO,IAAI,QAAQ,EAAE;gBAC5B,IAAI,OAAO,CAAC,OAAO,IAAI,YAAY,CAAC,mBAAmB,CAAC,EAAE;AACxD,oBAAA,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC;AACnC,iBAAA;AACD,gBAAA,IAAI,CAAC,UAAU,GAAG,aAAa,CAC7B,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAC3C,OAAO,CAAC,GAAG,EACX,OAAO,CAAC,OAAO,CAChB,CAAC;AACH,aAAA;AAED,YAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;YACnC,UAAU,CAAC,MAAK;AACd,gBAAA,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;aACrC,EAAE,IAAI,CAAC,CAAC;YAET,OAAO;AACR,SAAA;QAED,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAI;AAChC,YAAA,IAAI,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE;AAC/B,gBAAA,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACpB,aAAA;AACH,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;KAC5E;AAID,IAAA,uBAAuB,CAAC,IAAI,EAAA;AAC1B,QAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;KACnC;;AAID,IAAA,SAAS,CAAC,QAAgB,EAAA;QACxB,IAAI,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACxD,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAM,KAAI;AACpD,YAAA,OAAO,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC;AAC7B,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;AAC7C,QAAA,IAAI,CAAC,SAAS,CAAC,sBAAsB,EAAE,CAAC;KACzC;AAGD,IAAA,cAAc,CAAC,UAAkB,EAAA;QAC/B,KAAK,IAAI,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE;AACjD,YAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;AAC1B,SAAA;KACF;AAGD,IAAA,SAAS,CAAC,QAAgB,EAAA;QACxB,IAAI,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACxD,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAM,KAAI;AACpD,YAAA,OAAO,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC;AAC7B,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;AAC9C,QAAA,IAAI,CAAC,SAAS,CAAC,sBAAsB,EAAE,CAAC;KACzC;AAGD,IAAA,cAAc,CAAC,UAAkB,EAAA;QAC/B,KAAK,IAAI,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE;AACjD,YAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;AAC1B,SAAA;KACF;AAGD,IAAA,YAAY,CAAC,QAAgB,EAAA;QAC3B,IAAI,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACxD,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAM,KAAI;AACpD,YAAA,OAAO,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC;AAC7B,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,KAAK,EAAE;YACnC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;YAE/C,IAAI,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;gBAC5C,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;AACzC,oBAAA,SAAS,EAAE,KAAK;AACjB,iBAAA,CAAC,CAAC;AACJ,aAAA;AACD,YAAA,IAAI,CAAC,SAAS,CAAC,sBAAsB,EAAE,CAAC;AACzC,SAAA;KACF;AAGD,IAAA,iBAAiB,CAAC,UAAkB,EAAA;QAClC,KAAK,IAAI,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE;AACjD,YAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;AAC7B,SAAA;KACF;AAGD,IAAA,WAAW,CAAC,QAAgB,EAAA;QAC1B,IAAI,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACxD,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAM,KAAI;AACpD,YAAA,OAAO,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC;AAC7B,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,KAAK,EAAE;YACnC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC;YAEhD,IAAI,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;gBAC5C,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;AACxC,oBAAA,SAAS,EAAE,KAAK;AACjB,iBAAA,CAAC,CAAC;AACJ,aAAA;AACD,YAAA,IAAI,CAAC,SAAS,CAAC,sBAAsB,EAAE,CAAC;AACzC,SAAA;KACF;AAGD,IAAA,gBAAgB,CAAC,UAAkB,EAAA;QACjC,KAAK,IAAI,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE;AACjD,YAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC5B,SAAA;KACF;AAGD,IAAA,UAAU,CAAC,QAAgB,EAAA;;QAEzB,IAAI,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACxD,IAAI,UAAU,GAAG,qBAAqB,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;;AAGlE,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;;AAG/B,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE;AAC7D,YAAA,SAAS,EAAE,KAAK;AACjB,SAAA,CAAC,CAAC;;AAGH,QAAA,KAAK,GAAG,aAAa,CAAC,KAAK,EAAE;YAC3B,IAAI,EAAE,YAAY,CAAC,OAAO;AAC1B,YAAA,OAAO,EAAE,EAAE;AACZ,SAAA,CAAC,CAAC;AACH,QAAA,KAAK,GAAG,aAAa,CAAC,KAAK,EAAE;YAC3B,IAAI,EAAE,YAAY,CAAC,OAAO;AAC1B,YAAA,OAAO,EAAE,EAAE;AACZ,SAAA,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE;YAC5B,IAAI,EAAE,YAAY,CAAC,KAAK;AACxB,YAAA,OAAO,EAAE,EAAE;AACZ,SAAA,CAAC,CAAC;;QAGH,QAAQ,KAAK,CAAC,IAAI;AAChB,YAAA,KAAK,UAAU;gBACb,MAAM,YAAY,GAAG,KAAsB,CAAC;gBAC5C,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC;AACvD,gBAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,YAAY,CAAC;gBAC3C,MAAM;AACR,YAAA;AACE,gBAAA,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;AACpB,gBAAA,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;AACtB,gBAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC;gBACpC,MAAM;AACT,SAAA;KACF;IAGD,cAAc,CAAC,QAAgB,EAAE,OAAiB,EAAA;QAChD,IAAI,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACxD,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAM,KAAI;AACpD,YAAA,OAAO,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC;AAC7B,SAAC,CAAC,CAAC;AAEH,QAAA,KAAK,GAAG,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACzC,QAAA,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAEnC,QAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC;KACrC;IAGD,cAAc,CAAC,QAAgB,EAAE,OAAiB,EAAA;QAChD,IAAI,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACxD,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAM,KAAI;AACpD,YAAA,OAAO,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC;AAC7B,SAAC,CAAC,CAAC;AAEH,QAAA,KAAK,GAAG,mBAAmB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAC1C,QAAA,KAAK,GAAG,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAEtC,QAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC;KACrC;IAGD,gBAAgB,CAAC,QAAgB,EAAE,OAAiB,EAAA;QAClD,IAAI,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACxD,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAM,KAAI;AACpD,YAAA,OAAO,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC;AAC7B,SAAC,CAAC,CAAC;AAEH,QAAA,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAEnC,QAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC;KACrC;IAGD,gBAAgB,CAAC,QAAgB,EAAE,OAAiB,EAAA;QAClD,IAAI,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACxD,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAM,KAAI;AACpD,YAAA,OAAO,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC;AAC7B,SAAC,CAAC,CAAC;AAEH,QAAA,KAAK,GAAG,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAEtC,QAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC;KACrC;AAGD,IAAA,cAAc,CAAC,KAAU,EAAE,IAAY,EAAE,KAAU,KAAI;IAGvD,sBAAsB,CAAC,GAAW,EAAE,KAAU,EAAA;AAC5C,QAAA,IAAI,CAAC,SAAS,CAAC,UAAU,CACvB;YACE,CAAC,GAAG,GAAG,KAAK;AACb,SAAA,EACD,EAAE,SAAS,EAAE,KAAK,EAAE,CACrB,CAAC;KACH;AAGD,IAAA,YAAY,CAAC,QAAgB,EAAA;QAC3B,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC;KAChD;AAGD,IAAA,cAAc,CAAC,QAAgB,EAAA;QAC7B,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC;KAClD;IAGD,qBAAqB,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;KACrC;IAGK,yBAAyB,CAAC,KAAU,EAAE,UAAe,EAAA;;AACzD,YAAA,IAAI,oBAAoB,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE;AAC5C,gBAAA,UAAU,CAAC,OAAO,GAAG,mCAAmC,CACtD,KAAK,EACL,UAAU,EACV,IAAI,CAAC,SAAS,CACf,CAAC;AACH,aAAA;AACD,YAAA,IAAI,oBAAoB,CAAC,UAAU,EAAE,qBAAqB,CAAC,EAAE;AAC3D,gBAAA,UAAU,CAAC,OAAO,GAAG,MAAM,kCAAkC,CAC3D,KAAK,EACL,UAAU,EACV,IAAI,CAAC,SAAS,CACf,CAAC;AACH,aAAA;AAED,YAAA,OAAO,UAAU,CAAC;SACnB,CAAA,CAAA;AAAA,KAAA;IAGK,sBAAsB,CAC1B,MAAe,EACf,KAAa,EACb,YAAiB,EACjB,QAAa,EACb,gBAAqB,EAAA;;YAErB,QAAQ,MAAM,CAAC,GAAG;gBAChB,KAAK,UAAU,CAAC,gBAAgB;oBAC9B,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;oBAC3C,MAAM;gBACR,KAAK,UAAU,CAAC,gBAAgB;oBAC9B,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;oBAC3C,MAAM;gBACR,KAAK,UAAU,CAAC,kBAAkB;oBAChC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;oBAC7C,MAAM;gBACR,KAAK,UAAU,CAAC,mBAAmB;oBACjC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;oBAC9C,MAAM;AACR,gBAAA;oBACE,MAAM;AACT,aAAA;SACF,CAAA,CAAA;AAAA,KAAA;IAGK,UAAU,CAAC,MAAe,EAAE,MAAW,EAAA;;YAC3C,QAAQ,MAAM,CAAC,GAAG;gBAChB,KAAK,UAAU,CAAC,UAAU;oBACxB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;oBACtC,MAAM;gBACR,KAAK,UAAU,CAAC,UAAU;oBACxB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;oBACtC,MAAM;gBACR,KAAK,UAAU,CAAC,aAAa;oBAC3B,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;oBACzC,MAAM;gBACR,KAAK,UAAU,CAAC,YAAY;oBAC1B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;oBACxC,MAAM;gBACR,KAAK,UAAU,CAAC,WAAW;oBACzB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;oBACvC,MAAM;gBACR,KAAK,UAAU,CAAC,gBAAgB;AAC9B,oBAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBACjE,MAAM;gBACR,KAAK,UAAU,CAAC,gBAAgB;AAC9B,oBAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBACjE,MAAM;gBACR,KAAK,UAAU,CAAC,kBAAkB;AAChC,oBAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBACnE,MAAM;gBACR,KAAK,UAAU,CAAC,mBAAmB;AACjC,oBAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBACnE,MAAM;gBACR,KAAK,UAAU,CAAC,SAAS;AACvB,oBAAA,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;AAEpC,oBAAA,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,kBAAkB,CAClD,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAC1B,CAAC;AACF,oBAAA,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;oBAEtE,MAAM,CAAC,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC;oBAClD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;oBACzC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC;oBAClD,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC;oBAE1D,MAAM;gBACR,KAAK,UAAU,CAAC,yBAAyB;AACvC,oBAAA,IAAI,CAAC,uBAAuB,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,QAAQ,CAAC,CAAC;oBACvE,MAAM;gBACR,KAAK,UAAU,CAAC,MAAM;oBACpB,MAAM;AACR,gBAAA;oBACE,MAAM;AACT,aAAA;SACF,CAAA,CAAA;AAAA,KAAA;;wIAn+BU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAgDxB,cAAc,EAAA,EAAA,EAAA,KAAA,EACd,eAAe,EAAA,EAAA,EAAA,KAAA,EAAAI,qBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAjDd,mBAAA,uBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,EAFvB,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,UAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,SAAA,EAAA,CAAC,qBAAqB,CAAC,+CCvDpC,q5eA+ZA,EAAA,MAAA,EAAA,CAAA,0+DAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,OAAA,EAAA,YAAA,EAAA,QAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,MAAA,EAAA,WAAA,EAAA,OAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,MAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,MAAA,EAAA,cAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,KAAA,EAAA,KAAA,EAAA,QAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,KAAA,EAAA,KAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,aAAA,EAAA,2BAAA,EAAA,4BAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,MAAA,EAAA,aAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,6BAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,OAAA,EAAA,YAAA,EAAA,QAAA,EAAA,OAAA,EAAA,OAAA,EAAA,MAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,aAAA,EAAA,MAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,aAAA,EAAA,MAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,KAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,iBAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,CAAA,EAAA,CAAA,CAAA;ADhTE,UAAA,CAAA;IADC,SAAS;AAOT,CAAA,EAAA,uBAAA,CAAA,SAAA,EAAA,UAAA,EAAA,IAAA,CAAA,CAAA;AAGD,UAAA,CAAA;IADC,SAAS;AACgB,CAAA,EAAA,uBAAA,CAAA,SAAA,EAAA,iBAAA,EAAA,IAAA,CAAA,CAAA;AAG1B,UAAA,CAAA;IADC,SAAS;AA2DT,CAAA,EAAA,uBAAA,CAAA,SAAA,EAAA,aAAA,EAAA,IAAA,CAAA,CAAA;AAGD,UAAA,CAAA;IADC,SAAS;AAmDT,CAAA,EAAA,uBAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,IAAA,CAAA,CAAA;AAGD,UAAA,CAAA;IADC,SAAS;AAUT,CAAA,EAAA,uBAAA,CAAA,SAAA,EAAA,6BAAA,EAAA,IAAA,CAAA,CAAA;AAGD,UAAA,CAAA;IADC,SAAS;AAGT,CAAA,EAAA,uBAAA,CAAA,SAAA,EAAA,kCAAA,EAAA,IAAA,CAAA,CAAA;AAGD,UAAA,CAAA;IADC,SAAS;AAOT,CAAA,EAAA,uBAAA,CAAA,SAAA,EAAA,6BAAA,EAAA,IAAA,CAAA,CAAA;AAGD,UAAA,CAAA;IADC,SAAS;AAoCT,CAAA,EAAA,uBAAA,CAAA,SAAA,EAAA,yCAAA,EAAA,IAAA,CAAA,CAAA;AAGD,UAAA,CAAA;IADC,SAAS;AAgDT,CAAA,EAAA,uBAAA,CAAA,SAAA,EAAA,kCAAA,EAAA,IAAA,CAAA,CAAA;AAGD,UAAA,CAAA;IADC,SAAS;AAsCT,CAAA,EAAA,uBAAA,CAAA,SAAA,EAAA,oCAAA,EAAA,IAAA,CAAA,CAAA;AAGD,UAAA,CAAA;IADC,SAAS;AAsGT,CAAA,EAAA,uBAAA,CAAA,SAAA,EAAA,8BAAA,EAAA,IAAA,CAAA,CAAA;AAGD,UAAA,CAAA;IADC,SAAS;AA2CT,CAAA,EAAA,uBAAA,CAAA,SAAA,EAAA,yBAAA,EAAA,IAAA,CAAA,CAAA;AAID,UAAA,CAAA;IADC,SAAS;AAoCT,CAAA,EAAA,uBAAA,CAAA,SAAA,EAAA,mBAAA,EAAA,IAAA,CAAA,CAAA;AAGD,UAAA,CAAA;IADC,SAAS;AAsBT,CAAA,EAAA,uBAAA,CAAA,SAAA,EAAA,8BAAA,EAAA,IAAA,CAAA,CAAA;AAGD,UAAA,CAAA;IADC,SAAS;AAmDT,CAAA,EAAA,uBAAA,CAAA,SAAA,EAAA,sBAAA,EAAA,IAAA,CAAA,CAAA;AAGD,UAAA,CAAA;IADC,SAAS;AAKT,CAAA,EAAA,uBAAA,CAAA,SAAA,EAAA,wBAAA,EAAA,IAAA,CAAA,CAAA;AAGD,UAAA,CAAA;IADC,SAAS;AA0ET,CAAA,EAAA,uBAAA,CAAA,SAAA,EAAA,uBAAA,EAAA,IAAA,CAAA,CAAA;AAID,UAAA,CAAA;IADC,SAAS;AAGT,CAAA,EAAA,uBAAA,CAAA,SAAA,EAAA,yBAAA,EAAA,IAAA,CAAA,CAAA;AAID,UAAA,CAAA;IADC,SAAS;AAST,CAAA,EAAA,uBAAA,CAAA,SAAA,EAAA,WAAA,EAAA,IAAA,CAAA,CAAA;AAGD,UAAA,CAAA;IADC,SAAS;AAKT,CAAA,EAAA,uBAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,IAAA,CAAA,CAAA;AAGD,UAAA,CAAA;IADC,SAAS;AAST,CAAA,EAAA,uBAAA,CAAA,SAAA,EAAA,WAAA,EAAA,IAAA,CAAA,CAAA;AAGD,UAAA,CAAA;IADC,SAAS;AAKT,CAAA,EAAA,uBAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,IAAA,CAAA,CAAA;AAGD,UAAA,CAAA;IADC,SAAS;AAiBT,CAAA,EAAA,uBAAA,CAAA,SAAA,EAAA,cAAA,EAAA,IAAA,CAAA,CAAA;AAGD,UAAA,CAAA;IADC,SAAS;AAKT,CAAA,EAAA,uBAAA,CAAA,SAAA,EAAA,mBAAA,EAAA,IAAA,CAAA,CAAA;AAGD,UAAA,CAAA;IADC,SAAS;AAiBT,CAAA,EAAA,uBAAA,CAAA,SAAA,EAAA,aAAA,EAAA,IAAA,CAAA,CAAA;AAGD,UAAA,CAAA;IADC,SAAS;AAKT,CAAA,EAAA,uBAAA,CAAA,SAAA,EAAA,kBAAA,EAAA,IAAA,CAAA,CAAA;AAGD,UAAA,CAAA;IADC,SAAS;AAyCT,CAAA,EAAA,uBAAA,CAAA,SAAA,EAAA,YAAA,EAAA,IAAA,CAAA,CAAA;AAGD,UAAA,CAAA;IADC,SAAS;AAWT,CAAA,EAAA,uBAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,IAAA,CAAA,CAAA;AAGD,UAAA,CAAA;IADC,SAAS;AAWT,CAAA,EAAA,uBAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,IAAA,CAAA,CAAA;AAGD,UAAA,CAAA;IADC,SAAS;AAUT,CAAA,EAAA,uBAAA,CAAA,SAAA,EAAA,kBAAA,EAAA,IAAA,CAAA,CAAA;AAGD,UAAA,CAAA;IADC,SAAS;AAUT,CAAA,EAAA,uBAAA,CAAA,SAAA,EAAA,kBAAA,EAAA,IAAA,CAAA,CAAA;AAGD,UAAA,CAAA;IADC,SAAS;AAC6C,CAAA,EAAA,uBAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,IAAA,CAAA,CAAA;AAGvD,UAAA,CAAA;IADC,SAAS;AAQT,CAAA,EAAA,uBAAA,CAAA,SAAA,EAAA,wBAAA,EAAA,IAAA,CAAA,CAAA;AAGD,UAAA,CAAA;IADC,SAAS;AAGT,CAAA,EAAA,uBAAA,CAAA,SAAA,EAAA,cAAA,EAAA,IAAA,CAAA,CAAA;AAGD,UAAA,CAAA;IADC,SAAS;AAGT,CAAA,EAAA,uBAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,IAAA,CAAA,CAAA;AAGD,UAAA,CAAA;IADC,SAAS;AAGT,CAAA,EAAA,uBAAA,CAAA,SAAA,EAAA,uBAAA,EAAA,IAAA,CAAA,CAAA;AAGD,UAAA,CAAA;IADC,SAAS;AAkBT,CAAA,EAAA,uBAAA,CAAA,SAAA,EAAA,2BAAA,EAAA,IAAA,CAAA,CAAA;AAGD,UAAA,CAAA;IADC,SAAS;AAwBT,CAAA,EAAA,uBAAA,CAAA,SAAA,EAAA,wBAAA,EAAA,IAAA,CAAA,CAAA;AAGD,UAAA,CAAA;IADC,SAAS;AAoDT,CAAA,EAAA,uBAAA,CAAA,SAAA,EAAA,YAAA,EAAA,IAAA,CAAA,CAAA;4FAn+BU,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBANnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,WAAW,EAAE,4BAA4B;oBACzC,SAAS,EAAE,CAAC,4BAA4B,CAAC;oBACzC,SAAS,EAAE,CAAC,qBAAqB,CAAC;AACnC,iBAAA,CAAA;;0BAiDI,MAAM;2BAAC,cAAc,CAAA;;0BACrB,MAAM;2BAAC,eAAe,CAAA;6EA/CzB,UAAU,EAAA,CAAA;sBADT,KAAK;gBAIN,QAAQ,EAAA,CAAA;sBADP,KAAK;gBAIN,eAAe,EAAA,CAAA;sBADd,KAAK;gBAIN,YAAY,EAAA,CAAA;sBADX,KAAK;gBAIN,YAAY,EAAA,CAAA;sBADX,KAAK;gBAIN,SAAS,EAAA,CAAA;sBADR,KAAK;gBAIN,gBAAgB,EAAA,CAAA;sBADf,MAAM;gBAIP,eAAe,EAAA,CAAA;sBADd,MAAM;gBAIP,cAAc,EAAA,CAAA;sBADb,MAAM;gBAIP,iBAAiB,EAAA,CAAA;sBADhB,MAAM;AA0BP,aAAA,CAAA,EAAA,QAAQ,EASR,EAAA,EAAA,eAAe,EAGf,EAAA,EAAA,WAAW,MA6DL,cAAc,EAAA,EAAA,EAqDpB,2BAA2B,EAAA,EAAA,EAY3B,gCAAgC,EAKhC,EAAA,EAAA,2BAA2B,EASrB,EAAA,EAAA,uCAAuC,MAsCvC,gCAAgC,EAAA,EAAA,EAkDhC,kCAAkC,EAAA,EAAA,EAwClC,4BAA4B,EAwG5B,EAAA,EAAA,uBAAuB,EA8C7B,EAAA,EAAA,iBAAiB,MAsCX,4BAA4B,EAAA,EAAA,EAwB5B,oBAAoB,EAAA,EAAA,EAqD1B,sBAAsB,EAOtB,EAAA,EAAA,qBAAqB,EA6ErB,EAAA,EAAA,uBAAuB,MAMvB,SAAS,EAAA,EAAA,EAWT,cAAc,EAAA,EAAA,EAOd,SAAS,EAWT,EAAA,EAAA,cAAc,EAOd,EAAA,EAAA,YAAY,MAmBZ,iBAAiB,EAAA,EAAA,EAOjB,WAAW,EAAA,EAAA,EAmBX,gBAAgB,EAOhB,EAAA,EAAA,UAAU,EA2CV,EAAA,EAAA,cAAc,MAad,cAAc,EAAA,EAAA,EAad,gBAAgB,EAAA,EAAA,EAYhB,gBAAgB,EAYhB,EAAA,EAAA,cAAc,EAGd,EAAA,EAAA,sBAAsB,MAUtB,YAAY,EAAA,EAAA,EAKZ,cAAc,EAAA,EAAA,EAKd,qBAAqB,EAKf,EAAA,EAAA,yBAAyB,EAoBzB,EAAA,EAAA,sBAAsB,MA0BtB,UAAU,EAAA,EAAA,EAAA,EAAA,CAAA;;MEz9BL,wBAAwB,CAAA;AA6BnC,IAAA,WAAA,GAAA;QA3BA,IAAc,CAAA,cAAA,GAAQ,EAAE,CAAC;QAGzB,IAAU,CAAA,UAAA,GAAQ,EAAE,CAAC;QAGrB,IAAS,CAAA,SAAA,GAAU,EAAE,CAAC;QAGtB,IAAkB,CAAA,kBAAA,GAAU,EAAE,CAAC;QAG/B,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;AAG9B,QAAA,IAAA,CAAA,oBAAoB,GAAsB,IAAI,YAAY,EAAO,CAAC;AAGlE,QAAA,IAAA,CAAA,oBAAoB,GAAsB,IAAI,YAAY,EAAO,CAAC;AAGlE,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,YAAY,EAAO,CAAC;QAE7C,IAAY,CAAA,YAAA,GAAW,EAAE,CAAC;QAE1B,IAAmB,CAAA,mBAAA,GAAY,IAAI,CAAC;KAEpB;IAEhB,QAAQ,GAAA;QACN,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAC1E;AAGD,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,MAAM,YAAY,GAAG,CAAC,GAAW,KAAI;AACnC,YAAA,OAAO,oBAAoB,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC;AACzE,SAAC,CAAC;AACF,QAAA,IAAI,YAAY,CAAC,gBAAgB,CAAC,EAAE;YAClC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,YAAY,CAAC;AAC3D,SAAA;AACD,QAAA,IAAI,YAAY,CAAC,WAAW,CAAC,EAAE;YAC7B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC;YAChD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC1E,SAAA;AACD,QAAA,IAAI,YAAY,CAAC,cAAc,CAAC,EAAE;YAChC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC;AACvD,SAAA;KACF;AAED,IAAA,wBAAwB,CAAC,SAAgB,EAAA;QACvC,IAAI,mBAAmB,GAAY,IAAI,CAAC;AAExC,QAAA,KAAK,IAAI,KAAK,IAAI,SAAS,EAAE;AAC3B,YAAA,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW,EAAE;gBAChC,mBAAmB,GAAG,KAAK,CAAC;gBAC5B,MAAM;AACP,aAAA;AACF,SAAA;AAED,QAAA,OAAO,mBAAmB,CAAC;KAC5B;AAED,IAAA,0BAA0B,CAAC,YAAoB,EAAA;AAC7C,QAAA,IACE,IAAI,CAAC,YAAY,KAAK,YAAY;aACjC,IAAI,CAAC,mBAAmB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,EAClD;AACA,YAAA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;AACjC,YAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAC9C,SAAA;KACF;AAED,IAAA,mBAAmB,CAAC,CAAM,EAAA;AACxB,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACjC;;yIA7EU,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,mBAAA,wBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,yYChBrC,qzFAmFA,EAAA,MAAA,EAAA,CAAA,m8HAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,gCAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,OAAA,EAAA,KAAA,EAAA,MAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,OAAA,EAAA,YAAA,EAAA,QAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,MAAA,EAAA,WAAA,EAAA,OAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;AD/BE,UAAA,CAAA;IADC,SAAS;AAeT,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,aAAA,EAAA,IAAA,CAAA,CAAA;4FAlDU,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,WAAW,EAAE,6BAA6B;oBAC1C,SAAS,EAAE,CAAC,6BAA6B,CAAC;AAC3C,iBAAA,CAAA;0EAGC,cAAc,EAAA,CAAA;sBADb,KAAK;gBAIN,UAAU,EAAA,CAAA;sBADT,KAAK;gBAIN,SAAS,EAAA,CAAA;sBADR,KAAK;gBAIN,kBAAkB,EAAA,CAAA;sBADjB,KAAK;gBAIN,YAAY,EAAA,CAAA;sBADX,KAAK;gBAIN,oBAAoB,EAAA,CAAA;sBADnB,MAAM;gBAIP,oBAAoB,EAAA,CAAA;sBADnB,MAAM;gBAIP,kBAAkB,EAAA,CAAA;sBADjB,MAAM;gBAcP,WAAW,EAAA,EAAA,EAAA,EAAA,CAAA;;ME3CA,SAAS,CAAA;AAAtB,IAAA,WAAA,GAAA;AACE,QAAA,IAAA,CAAA,aAAa,GAAG,CAAC,UAAe,KAAW;AACzC,YAAA,IAAI,MAAa,CAAC;AAElB,YAAA,IAAI,oBAAoB,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE;AACjD,gBAAA,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC;AACtC,aAAA;AAAM,iBAAA;AACL,gBAAA,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;AAC5B,aAAA;AAED,YAAA,OAAO,MAAM,CAAC;AAChB,SAAC,CAAC;QAEF,IAAuB,CAAA,uBAAA,GAAG,CAAC,KAAU,EAAE,GAAW,EAAE,KAAU,KAAS;AACrE,YAAA,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE;AACrC,gBAAA,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AACpB,aAAA;AACD,YAAA,OAAO,KAAK,CAAC;AACf,SAAC,CAAC;QAEF,IAAgB,CAAA,gBAAA,GAAG,CAAC,KAAU,EAAE,GAAW,EAAE,KAAU,KAAS;AAC9D,YAAA,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAEnB,YAAA,OAAO,KAAK,CAAC;AACf,SAAC,CAAC;AAEF,QAAA,IAAA,CAAA,cAAc,GAAG,CAAC,KAAU,EAAE,GAAW,KAAS;AAChD,YAAA,IAAI,oBAAoB,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE;AACpC,gBAAA,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC;AACnB,aAAA;AAED,YAAA,OAAO,KAAK,CAAC;AACf,SAAC,CAAC;KA6tBH;AA1tBC,IAAA,iBAAiB,CAAC,UAAe,EAAA;AAC/B,QAAA,MAAM,iBAAiB,GAAG,CAAC,KAAU,KAAS;AAC5C,YAAA,MAAM,oBAAoB,GAAG,CAAC,KAAU,KAAS;gBAC/C,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AAEtD,gBAAA,OAAO,KAAK,CAAC;AACf,aAAC,CAAC;AACF,YAAA,MAAM,oBAAoB,GAAG,CAAC,KAAU,KAAS;AAC/C,gBAAA,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,uBAAuB,CAC7C,KAAK,CAAC,UAAU,EAChB,MAAM,EACN,GAAG,CACJ,CAAC;AACF,gBAAA,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,uBAAuB,CAC7C,KAAK,CAAC,UAAU,EAChB,aAAa,EACb,UAAU,CACX,CAAC;gBACF,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AAEtD,gBAAA,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAM,KAAS;oBAChD,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;wBAClD,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AACtC,qBAAA;AAAM,yBAAA;AACL,wBAAA,IACE,oBAAoB,CAAC,CAAC,EAAE,OAAO,CAAC;AAChC,4BAAA,oBAAoB,CAAC,CAAC,EAAE,UAAU,CAAC,EACnC;AACA,4BAAA,OAAO,CAAC,CAAC;AACV,yBAAA;AACF,qBAAA;AACH,iBAAC,CAAC,CAAC;AAEH,gBAAA,OAAO,KAAK,CAAC;AACf,aAAC,CAAC;AACF,YAAA,MAAM,kBAAkB,GAAG,CAAC,KAAU,KAAS;AAC7C,gBAAA,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,uBAAuB,CAC7C,KAAK,CAAC,UAAU,EAChB,MAAM,EACN,IAAI,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAC1D,CAAC;gBACF,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AAEtD,gBAAA,OAAO,KAAK,CAAC;AACf,aAAC,CAAC;AACF,YAAA,MAAM,mBAAmB,GAAG,CAAC,KAAU,KAAS;AAC9C,gBAAA,IAAI,oBAAoB,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;oBACtC,MAAM,MAAM,GAAG,+BAA+B,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7D,oBAAA,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CACtC,KAAK,CAAC,UAAU,EAChB,KAAK,EACL,MAAM,CACP,CAAC;AACH,iBAAA;AAAM,qBAAA;oBACL,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,uBAAuB,CAC7C,KAAK,CAAC,UAAU,EAChB,KAAK,EACL,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CACpB,CAAC;AACH,iBAAA;AAED,gBAAA,IAAI,oBAAoB,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;oBACtC,MAAM,MAAM,GAAG,+BAA+B,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7D,oBAAA,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CACtC,KAAK,CAAC,UAAU,EAChB,KAAK,EACL,MAAM,CACP,CAAC;AACH,iBAAA;AAAM,qBAAA;oBACL,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,uBAAuB,CAC7C,KAAK,CAAC,UAAU,EAChB,KAAK,EACL,IAAI,MAAM,CACR,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;AACxB,oBAAA,IAAI,IAAI,EAAE,CAAC,QAAQ,EAAE;AACrB,oBAAA,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE;AACrB,qBAAA,CACF,CAAC;AACH,iBAAA;AAED,gBAAA,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,uBAAuB,CAC7C,KAAK,CAAC,UAAU,EAChB,aAAa,EACb,EAAE,CACH,CAAC;gBAEF,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AAEtD,gBAAA,OAAO,KAAK,CAAC;AACf,aAAC,CAAC;AACF,YAAA,MAAM,qBAAqB,GAAG,CAAC,KAAU,KAAS;AAChD,gBAAA,IAAI,oBAAoB,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;AACtC,oBAAA,IAAI,KAAK,CAAC,GAAG,KAAK,gBAAgB,EAAE;wBAClC,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;AAChE,qBAAA;AACD,oBAAA,IAAI,KAAK,CAAC,GAAG,KAAK,gBAAgB,EAAE;wBAClC,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AACvD,qBAAA;oBAED,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;AACrD,wBAAA,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,uBAAuB,CAC7C,KAAK,CAAC,UAAU,EAChB,aAAa,EACb,KAAK,CACN,CAAC;AACF,wBAAA,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,uBAAuB,CAC7C,KAAK,CAAC,UAAU,EAChB,2BAA2B,EAC3B,aAAa,CACd,CAAC;AACF,wBAAA,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,uBAAuB,CAC7C,KAAK,CAAC,UAAU,EAChB,4BAA4B,EAC5B,IAAI,CACL,CAAC;AACF,wBAAA,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,uBAAuB,CAC7C,KAAK,CAAC,UAAU,EAChB,SAAS,EACT,OAAO,CACR,CAAC;AACF,wBAAA,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,uBAAuB,CAC7C,KAAK,CAAC,UAAU,EAChB,QAAQ,EACR,EAAE,CACH,CAAC;AACF,wBAAA,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,uBAAuB,CAC7C,KAAK,CAAC,UAAU,EAChB,SAAS,EACT,EAAE,CACH,CAAC;AACF,wBAAA,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,uBAAuB,CAC7C,KAAK,CAAC,UAAU,EAChB,KAAK,EACL,CAAC,QAAQ,CACV,CAAC;AACF,wBAAA,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,uBAAuB,CAC7C,KAAK,CAAC,UAAU,EAChB,KAAK,EACL,QAAQ,CACT,CAAC;AACF,wBAAA,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,uBAAuB,CAC7C,KAAK,CAAC,UAAU,EAChB,WAAW,EACX,CAAC,CACF,CAAC;AACH,qBAAA;AACF,iBAAA;gBAED,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AAEtD,gBAAA,OAAO,KAAK,CAAC;AACf,aAAC,CAAC;AACF,YAAA,MAAM,sBAAsB,GAAG,CAAC,KAAU,KAAS;gBACjD,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE;AACpD,oBAAA,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CACtC,KAAK,CAAC,UAAU,EAChB,OAAO,EACP,IAAI,CACL,CAAC;AACH,iBAAA;AACD,gBAAA,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE;oBAC9C,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;AAC3D,iBAAA;gBACD,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE;AACnD,oBAAA,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CACtC,KAAK,CAAC,UAAU,EAChB,MAAM,EACN,GAAG,CACJ,CAAC;AACH,iBAAA;AACD,gBAAA,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;oBACvC,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;AAEhD,oBAAA,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;AAC/D,oBAAA,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;AACnE,oBAAA,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,GAAG,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;AACpE,oBAAA,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAElE,oBAAA,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,uBAAuB,CAC7C,KAAK,CAAC,GAAG,CAAC,MAAM,EAChB,OAAO,EACP,SAAS,CACV,CAAC;AACF,oBAAA,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,uBAAuB,CAC7C,KAAK,CAAC,GAAG,CAAC,MAAM,EAChB,QAAQ,EACR;AACE,wBAAA,OAAO,EAAE,UAAU;AACnB,wBAAA,OAAO,EAAE,UAAU;AACnB,wBAAA,OAAO,EAAE,aAAa;AACtB,wBAAA,MAAM,EAAE,YAAY;AACrB,qBAAA,CACF,CAAC;AACH,iBAAA;AACD,gBAAA,OAAO,KAAK,CAAC;AACf,aAAC,CAAC;AACF,YAAA,MAAM,yBAAyB,GAAG,CAAC,KAAU,KAAS;AACpD,gBAAA,IAAI,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE;AACvC,oBAAA,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE;wBAChC,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAC3B,KAAK,EACL,MAAM,EACN,sBAAsB,CACvB,CAAC;AACH,qBAAA;AACF,iBAAA;AAED,gBAAA,OAAO,KAAK,CAAC;AACf,aAAC,CAAC;AACF,YAAA,MAAM,mBAAmB,GAAG,CAAC,KAAU,KAAS;AAC9C,gBAAA,OAAO,KAAK,CAAC;AACf,aAAC,CAAC;YAEF,QAAQ,KAAK,CAAC,IAAI;AAChB,gBAAA,KAAK,OAAO;AACV,oBAAA,KAAK,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;oBACpC,MAAM;AACR,gBAAA,KAAK,OAAO;AACV,oBAAA,KAAK,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;oBACpC,MAAM;AACR,gBAAA,KAAK,KAAK;AACR,oBAAA,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;oBAClC,MAAM;AACR,gBAAA,KAAK,MAAM;AACT,oBAAA,KAAK,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;oBACnC,MAAM;AACR,gBAAA,KAAK,QAAQ;AACX,oBAAA,KAAK,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;oBACrC,MAAM;AACR,gBAAA,KAAK,UAAU;AACb,oBAAA,KAAK,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;oBACtC,MAAM;AACR,gBAAA,KAAK,aAAa;AAChB,oBAAA,KAAK,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC;oBACzC,MAAM;AACR,gBAAA;oBACE,MAAM;AACT,aAAA;AAED,YAAA,OAAO,KAAK,CAAC;AACf,SAAC,CAAC;AAEF,QAAA,MAAM,iCAAiC,GAAG,CAAC,GAAQ,KAAS;AAC1D,YAAA,MAAM,MAAM,GAAG;AACb,gBAAA,GAAG,EAAE,GAAG;gBACR,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;gBACtC,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;aACtC,CAAC;AACF,YAAA,OAAO,MAAM,CAAC;AAChB,SAAC,CAAC;AAEF,QAAA,MAAM,eAAe,GAAG,CAAC,KAAU,KAAS;AAC1C,YAAA,IAAI,oBAAoB,CAAC,KAAK,EAAE,aAAa,CAAC,EAAE;AAC9C,gBAAA,IAAI,OAAO,KAAK,CAAC,aAAa,CAAC,KAAK,QAAQ,EAAE;oBAC5C,KAAK,CAAC,mBAAmB,CAAC,GAAG;AAC3B,wBAAA,iCAAiC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;qBACxD,CAAC;AACH,iBAAA;AAAM,qBAAA;AACL,oBAAA,KAAK,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAW,KAAI;AAC9D,wBAAA,OAAO,iCAAiC,CAAC,GAAG,CAAC,CAAC;AAChD,qBAAC,CAAC,CAAC;oBACH,KAAK,CAAC,mBAAmB,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC;AACnD,iBAAA;AACF,aAAA;AACD,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;AAE1C,YAAA,IAAI,oBAAoB,CAAC,KAAK,EAAE,mBAAmB,CAAC,EAAE;AACpD,gBAAA,IAAI,OAAO,KAAK,CAAC,mBAAmB,CAAC,KAAK,QAAQ,EAAE;oBAClD,KAAK,CAAC,uBAAuB,CAAC,GAAG;AAC/B,wBAAA,iCAAiC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;qBAC9D,CAAC;AACH,iBAAA;AAAM,qBAAA;oBACL,KAAK,CAAC,uBAAuB,CAAC,GAAG,iCAAiC,CAChE,KAAK,CAAC,mBAAmB,CAAC,CAC3B,CAAC;AACH,iBAAA;AACF,aAAA;AACD,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;AAEhD,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;AAEzC,YAAA,OAAO,KAAK,CAAC;AACf,SAAC,CAAC;AAEF,QAAA,MAAM,+BAA+B,GAAG,CACtC,KAAU,EACV,qBAA0B,KACnB;AACP,YAAA,MAAM,oCAAoC,GAAG,CAC3C,KAAU,EACV,qBAA0B,KACnB;AACP,gBAAA,IAAI,oBAAoB,CAAC,KAAK,EAAE,mBAAmB,CAAC,EAAE;AACpD,oBAAA,qBAAqB,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,iBAAiB,CAAC;AACrE,iBAAA;qBAAM,IACL,oBAAoB,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAC/D;oBACA,KAAK,CAAC,mBAAmB,CAAC;wBACxB,qBAAqB,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC7C,iBAAA;gBAED,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,CAAC;AACxE,aAAC,CAAC;AAEF,YAAA,MAAM,qCAAqC,GAAG,CAC5C,KAAU,EACV,qBAA0B,KACnB;gBACP,IAAI,oBAAoB,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE;AACnE,oBAAA,KAAK,IAAI,kBAAkB,IAAI,qBAAqB,CAAC,OAAO,CAAC,CAC3D,KAAK,CAAC,GAAG,CACV,EAAE;AACD,wBAAA,IACE,oBAAoB,CAClB,qBAAqB,CAAC,QAAQ,CAAC,EAC/B,kBAAkB,CAAC,KAAK,CAAC,CAC1B,EACD;AACA,4BAAA,qBAAqB,CAAC,QAAQ,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAC7D,KAAK,CAAC,GAAG,CACV,CAAC;AACH,yBAAA;AAAM,6BAAA;4BACL,qBAAqB,CAAC,QAAQ,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,GAAG;AAC3D,gCAAA,KAAK,CAAC,GAAG;6BACV,CAAC;AACH,yBAAA;AACF,qBAAA;AACF,iBAAA;gBAED,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,CAAC;AACxE,aAAC,CAAC;YAEF,MAAM,0BAA0B,GAAG,oCAAoC,CACrE,KAAK,EACL,qBAAqB,CACtB,CAAC;AACF,YAAA,KAAK,GAAG,0BAA0B,CAAC,OAAO,CAAC,CAAC;YAC5C,qBAAqB;gBACnB,0BAA0B,CAAC,uBAAuB,CAAC,CAAC;YAEtD,MAAM,2BAA2B,GAAG,qCAAqC,CACvE,KAAK,EACL,qBAAqB,CACtB,CAAC;AACF,YAAA,KAAK,GAAG,2BAA2B,CAAC,OAAO,CAAC,CAAC;YAC7C,qBAAqB;gBACnB,2BAA2B,CAAC,uBAAuB,CAAC,CAAC;AAEvD,YAAA,OAAO,qBAAqB,CAAC;AAC/B,SAAC,CAAC;AAEF,QAAA,MAAM,+BAA+B,GAAG,CACtC,KAAU,EACV,qBAA0B,KACnB;YACP,IAAI,oBAAoB,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE;AACnE,gBAAA,KAAK,CAAC,mBAAmB,CAAC,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACxE,aAAA;YAED,IAAI,oBAAoB,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE;gBACpE,KAAK,CAAC,uBAAuB,CAAC;oBAC5B,qBAAqB,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC9C,aAAA;AAED,YAAA,OAAO,KAAK,CAAC;AACf,SAAC,CAAC;AAEF,QAAA,MAAM,0BAA0B,GAAG,CAAC,KAAU,KAAS;;AACrD,YAAA,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;AAC1B,gBAAA,MAAM,UAAU,GAAG,oBAAoB,CAAC,KAAK,EAAE,YAAY,CAAC;sBACxD,KAAK,CAAC,UAAU;sBAChB,EAAE,CAAC;gBAEP,KAAK,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;gBAC9D,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,YAAY,EAC5C,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,KAAK,CAAC,YAAY,CAAC,KACtB,GAAG,EAAE,oBAAoB,CAAC,UAAU,EAAE,KAAK,CAAC;AAC1C,0BAAE,eAAe,CAAC,UAAU,CAAC,GAAG,CAAC;AAC/B,8BAAE,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC;AACxB,8BAAE,IAAI;AACR,0BAAE,oBAAoB,CAAC,KAAK,EAAE,KAAK,CAAC;AACpC,8BAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;8BACjB,IAAI,EACR,GAAG,EAAE,oBAAoB,CAAC,UAAU,EAAE,KAAK,CAAC;AAC1C,0BAAE,eAAe,CAAC,UAAU,CAAC,GAAG,CAAC;AAC/B,8BAAE,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC;AACxB,8BAAE,IAAI;AACR,0BAAE,oBAAoB,CAAC,KAAK,EAAE,KAAK,CAAC;AACpC,8BAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;8BACjB,IAAI,EACR,QAAQ,EAAE,oBAAoB,CAAC,UAAU,EAAE,UAAU,CAAC;AACpD,0BAAE,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;AAC9B,0BAAE,oBAAoB,CAAC,KAAK,EAAE,UAAU,CAAC;AACzC,8BAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;8BACvB,KAAK,EACT,SAAS,EAAE,oBAAoB,CAAC,UAAU,EAAE,WAAW,CAAC;AACtD,0BAAE,eAAe,CAAC,UAAU,CAAC,SAAS,CAAC;AACrC,8BAAE,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC;AAC9B,8BAAE,IAAI;AACR,0BAAE,oBAAoB,CAAC,KAAK,EAAE,WAAW,CAAC;AAC1C,8BAAE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;8BACvB,IAAI,EACR,SAAS,EAAE,oBAAoB,CAAC,UAAU,EAAE,WAAW,CAAC;AACtD,0BAAE,eAAe,CAAC,UAAU,CAAC,SAAS,CAAC;AACrC,8BAAE,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC;AAC9B,8BAAE,IAAI;AACR,0BAAE,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC;AACvC,8BAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;AACtB,8BAAE,oBAAoB,CAAC,KAAK,EAAE,WAAW,CAAC;AAC1C,kCAAE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;kCACvB,IAAI,EACR,OAAO,EAAE,oBAAoB,CAAC,UAAU,EAAE,SAAS,CAAC;AAClD,0BAAE,eAAe,CAAC,UAAU,CAAC,OAAO,CAAC;8BACjC,UAAU,CAAC,OAAO;AACpB,8BAAE,SAAS;AACb,0BAAE,oBAAoB,CAAC,KAAK,EAAE,SAAS,CAAC;AACxC,8BAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;AACnD,8BAAE,oBAAoB,CAAC,KAAK,EAAE,OAAO,CAAC;AACtC,kCAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;kCAC/C,SAAS,EAAA,CAAA,CACb,CAAC;gBAEH,OAAO,KAAK,CAAC,GAAG,CAAC;gBACjB,OAAO,KAAK,CAAC,GAAG,CAAC;gBACjB,OAAO,KAAK,CAAC,QAAQ,CAAC;gBACtB,OAAO,KAAK,CAAC,SAAS,CAAC;gBACvB,OAAO,KAAK,CAAC,MAAM,CAAC;gBACpB,OAAO,KAAK,CAAC,SAAS,CAAC;gBACvB,OAAO,KAAK,CAAC,OAAO,CAAC;gBACrB,OAAO,KAAK,CAAC,KAAK,CAAC;gBAEnB,QAAQ,KAAK,CAAC,IAAI;AAChB,oBAAA,KAAK,MAAM;AACT,wBAAA,OAAO,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;AAC5B,wBAAA,OAAO,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;wBAC5B,MAAM;AACR,oBAAA;wBACE,MAAM;AACT,iBAAA;gBAED,IAAI,YAAY,CAAC,CAAA,EAAA,GAAA,KAAK,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,GAAG,CAAC,EAAE;AACvC,oBAAA,OAAO,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;AAC7B,iBAAA;gBACD,IAAI,YAAY,CAAC,CAAA,EAAA,GAAA,KAAK,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,GAAG,CAAC,EAAE;AACvC,oBAAA,OAAO,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;AAC7B,iBAAA;gBACD,IAAI,YAAY,CAAC,CAAA,EAAA,GAAA,KAAK,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,SAAS,CAAC,EAAE;AAC7C,oBAAA,OAAO,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC;AACnC,iBAAA;gBACD,IAAI,YAAY,CAAC,CAAA,EAAA,GAAA,KAAK,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,SAAS,CAAC,EAAE;AAC7C,oBAAA,OAAO,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC;AACnC,iBAAA;gBACD,IAAI,YAAY,CAAC,CAAA,EAAA,GAAA,KAAK,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,OAAO,CAAC,EAAE;AAC3C,oBAAA,OAAO,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC;AACjC,iBAAA;AAED,gBAAA,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;AACpB,gBAAA,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;AACvB,aAAA;AAED,YAAA,OAAO,KAAK,CAAC;AACf,SAAC,CAAC;AAEF,QAAA,MAAM,6BAA6B,GAAG,CAAC,KAAU,KAAS;AACxD,YAAA,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;AAC1B,gBAAA,IAAI,oBAAoB,CAAC,KAAK,EAAE,cAAc,CAAC,EAAE;AAC/C,oBAAA,OAAO,KAAK,CAAC;AACd,iBAAA;AAAM,qBAAA,IAAI,oBAAoB,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE;AACjD,oBAAA,OAAO,KAAK,CAAC;AACd,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,oBAAoB,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE;;;;AAI9C,qBAAA;;oBAGD,IAAI,KAAK,CAAC,2BAA2B,EAAE;wBACrC,KAAK,CAAC,cAAc,CAAC,GAAG;AACtB,4BAAA,QAAQ,EAAE,KAAK;AACf,4BAAA,KAAK,EAAE,EAAE;AACT,4BAAA,OAAO,EAAE;AACP,gCAAA;AACE,oCAAA,MAAM,EAAE,cAAc;AACtB,oCAAA,YAAY,EAAE;AACZ,wCAAA,IAAI,EAAE,CAAA,EAAA,EAAK,KAAK,CAAC,GAAG,CAAE,CAAA;AACtB,wCAAA,UAAU,EAAE;AACV,4CAAA,KAAK,EAAE;AACL,gDAAA;AACE,oDAAA,GAAG,EAAE,GAAG;AACR,oDAAA,IAAI,EAAE,cAAc;AACpB,oDAAA,YAAY,EAAE;AACZ,wDAAA,KAAK,EAAE,IAAI;AACZ,qDAAA;AACF,iDAAA;AACF,6CAAA;AACD,4CAAA,OAAO,EAAE;AACP,gDAAA;AACE,oDAAA,IAAI,EAAE,yBAAyB;AAC/B,oDAAA,SAAS,EAAE,GAAG;AACd,oDAAA,uBAAuB,EAAE;AACvB,wDAAA,KAAK,EAAE,IAAI;AACZ,qDAAA;AACF,iDAAA;AACD,gDAAA;AACE,oDAAA,IAAI,EAAE,cAAc;AACpB,oDAAA,SAAS,EAAE,aAAa;AACxB,oDAAA,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;AAC9B,iDAAA;AACF,6CAAA;AACF,yCAAA;AACF,qCAAA;AACF,iCAAA;AACF,6BAAA;yBACF,CAAC;AACH,qBAAA;AAAM,yBAAA,IAAI,oBAAoB,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE;wBAClD,IAAI,oBAAoB,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE;AAChD,4BAAA,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE;gCACrC,KAAK,CAAC,cAAc,CAAC,GAAG;AACtB,oCAAA,QAAQ,EAAE,KAAK;AACf,oCAAA,KAAK,EAAE,EAAE;AACT,oCAAA,OAAO,EAAE;AACP,wCAAA;AACE,4CAAA,MAAM,EAAE,iBAAiB;AACzB,4CAAA,eAAe,EAAE;AACf,gDAAA,IAAI,EAAE,CAAA,EAAA,EAAK,KAAK,CAAC,GAAG,CAAE,CAAA;AACtB,gDAAA,UAAU,EAAE;AACV,oDAAA,KAAK,EAAE;AACL,wDAAA;AACE,4DAAA,GAAG,EAAE,GAAG;AACR,4DAAA,IAAI,EAAE,cAAc;AACpB,4DAAA,YAAY,EAAE;AACZ,gEAAA,KAAK,EAAE,IAAI;AACZ,6DAAA;AACF,yDAAA;AACF,qDAAA;AACD,oDAAA,OAAO,EAAE;AACP,wDAAA;AACE,4DAAA,IAAI,EAAE,yBAAyB;AAC/B,4DAAA,SAAS,EAAE,GAAG;AACd,4DAAA,uBAAuB,EAAE;AACvB,gEAAA,KAAK,EAAE,IAAI;AACZ,6DAAA;AACF,yDAAA;AACD,wDAAA;AACE,4DAAA,IAAI,EAAE,cAAc;AACpB,4DAAA,SAAS,EAAE,aAAa;AACxB,4DAAA,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;AAC9B,yDAAA;AACF,qDAAA;AACF,iDAAA;AACF,6CAAA;AACF,yCAAA;AACF,qCAAA;iCACF,CAAC;AACH,6BAAA;AAAM,iCAAA,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,QAAQ,EAAE;gCAC3C,KAAK,CAAC,cAAc,CAAC,GAAG;AACtB,oCAAA,QAAQ,EAAE,KAAK;AACf,oCAAA,KAAK,EAAE,EAAE;AACT,oCAAA,OAAO,EAAE;AACP,wCAAA;AACE,4CAAA,MAAM,EAAE,cAAc;AACtB,4CAAA,YAAY,EAAE;AACZ,gDAAA,IAAI,EAAE,CAAA,EAAA,EAAK,KAAK,CAAC,GAAG,CAAE,CAAA;AACtB,gDAAA,UAAU,EAAE;AACV,oDAAA,KAAK,EAAE;AACL,wDAAA;AACE,4DAAA,GAAG,EAAE,GAAG;AACR,4DAAA,IAAI,EAAE,cAAc;AACpB,4DAAA,YAAY,EAAE;AACZ,gEAAA,KAAK,EAAE,IAAI;AACZ,6DAAA;AACF,yDAAA;AACF,qDAAA;AACD,oDAAA,OAAO,EAAE;AACP,wDAAA;AACE,4DAAA,IAAI,EAAE,yBAAyB;AAC/B,4DAAA,SAAS,EAAE,GAAG;AACd,4DAAA,uBAAuB,EAAE;AACvB,gEAAA,KAAK,EAAE,IAAI;AACZ,6DAAA;AACF,yDAAA;AACD,wDAAA;AACE,4DAAA,IAAI,EAAE,cAAc;AACpB,4DAAA,SAAS,EAAE,aAAa;AACxB,4DAAA,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;AAC9B,yDAAA;AACF,qDAAA;AACF,iDAAA;AACF,6CAAA;AACF,yCAAA;AACF,qCAAA;iCACF,CAAC;AACH,6BAAA;AACF,yBAAA;AACF,qBAAA;AAAM,yBAAA;wBACL,KAAK,CAAC,cAAc,CAAC,GAAG;AACtB,4BAAA,QAAQ,EAAE,KAAK;AACf,4BAAA,KAAK,EAAE,EAAE;AACT,4BAAA,OAAO,EAAE;AACP,gCAAA;AACE,oCAAA,MAAM,EAAE,WAAW;AACnB,oCAAA,SAAS,EAAE;AACT,wCAAA,IAAI,EAAE,CAAA,EAAA,EAAK,KAAK,CAAC,GAAG,CAAE,CAAA;AACtB,wCAAA,UAAU,EAAE;AACV,4CAAA,KAAK,EAAE;AACL,gDAAA;AACE,oDAAA,GAAG,EAAE,GAAG;AACR,oDAAA,IAAI,EAAE,cAAc;AACpB,oDAAA,YAAY,EAAE;AACZ,wDAAA,KAAK,EAAE,IAAI;AACZ,qDAAA;AACF,iDAAA;AACF,6CAAA;AACD,4CAAA,OAAO,EAAE;AACP,gDAAA;AACE,oDAAA,IAAI,EAAE,yBAAyB;AAC/B,oDAAA,SAAS,EAAE,GAAG;AACd,oDAAA,uBAAuB,EAAE;AACvB,wDAAA,KAAK,EAAE,IAAI;AACZ,qDAAA;AACF,iDAAA;AACD,gDAAA;AACE,oDAAA,IAAI,EAAE,cAAc;AACpB,oDAAA,SAAS,EAAE,aAAa;AACxB,oDAAA,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;AAC9B,iDAAA;AACF,6CAAA;AACF,yCAAA;AACF,qCAAA;AACF,iCAAA;AACF,6BAAA;yBACF,CAAC;AACH,qBAAA;AACF,iBAAA;AAED,gBAAA,OAAO,KAAK,CAAC,YAAY,CAAC,CAAC;AAC5B,aAAA;AAED,YAAA,OAAO,KAAK,CAAC;AACf,SAAC,CAAC;AAEF,QAAA,MAAM,mBAAmB,GAAG,CAAC,KAAU,KAAS;AAC9C,YAAA,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;gBAC1B,KAAK,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;AAC7D,aAAA;AAED,YAAA,OAAO,KAAK,CAAC;AACf,SAAC,CAAC;AAEF,QAAA,MAAM,sBAAsB,GAAG,CAAC,KAAU,KAAS;AACjD,YAAA,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;AAC1B,gBAAA,IACE,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC;oBACrC,KAAK,CAAC,MAAM,KAAK,OAAO;AACxB,oBAAA,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC,EACrC;oBACA,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE;wBAC5C,MAAM,EAAE,KAAK,CAAC,MAAM;AACrB,qBAAA,CAAC,CAAC;AACJ,iBAAA;AACF,aAAA;AAED,YAAA,OAAO,KAAK,CAAC;AACf,SAAC,CAAC;AAEF,QAAA,MAAM,aAAa,GAAG,CAAC,UAAe,EAAE,MAAa,KAAS;AAC5D,YAAA,IAAI,oBAAoB,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE;AACjD,gBAAA,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;AACzC,aAAA;AAAM,iBAAA;AACL,gBAAA,UAAU,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;AAC/B,aAAA;AAED,YAAA,OAAO,UAAU,CAAC;AACpB,SAAC,CAAC;AAEF,QAAA,MAAM,kBAAkB,GAAG,CAAC,UAAe,EAAE,MAAW,KAAS;AAC/D,YAAA,UAAU,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC;AAEnC,YAAA,OAAO,UAAU,CAAC;AACpB,SAAC,CAAC;AAEF,QAAA,MAAM,qBAAqB,GAAG,CAAC,WAAgB,EAAE,KAAU,KAAS;AAClE,YAAA,IAAI,oBAAoB,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE;gBAC3C,IAAI,oBAAoB,CAAC,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;AACrD,oBAAA,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC7C,iBAAA;AAAM,qBAAA;oBACL,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC3C,iBAAA;AACF,aAAA;AAED,YAAA,OAAO,WAAW,CAAC;AACrB,SAAC,CAAC;AAEF,QAAA,IAAI,qBAAqB,GAAQ;AAC/B,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,KAAK,EAAE,EAAE;SACV,CAAC;QAEF,IAAI,MAAM,GAAU,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAEnD,IAAI,WAAW,GAAQ,EAAE,CAAC;AAE1B,QAAA,KAAK,IAAI,KAAK,IAAI,MAAM,EAAE;AACxB,YAAA,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAEjC,YAAA,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;;;;;;AAO/B,YAAA,WAAW,GAAG,qBAAqB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;AAExD,YAAA,KAAK,GAAG,6BAA6B,CAAC,KAAK,CAAC,CAAC;AAE7C,YAAA,KAAK,GAAG,0BAA0B,CAAC,KAAK,CAAC,CAAC;AAE1C,YAAA,KAAK,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;AAEtC,YAAA,KAAK,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;AACpC,SAAA;AAED,QAAA,UAAU,GAAG,kBAAkB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;AAEzD,QAAA,UAAU,GAAG,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAE/C,QAAA,OAAO,UAAU,CAAC;KACnB;AACF,CAAA;AA1tBC,UAAA,CAAA;IADC,SAAS;AA0tBT,CAAA,EAAA,SAAA,CAAA,SAAA,EAAA,mBAAA,EAAA,IAAA,CAAA;;MC3vBU,qBAAqB,CAAA;AA0ChC,IAAA,WAAA,GAAA;QAzCA,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QAiBrB,IAAY,CAAA,YAAA,GAAQ,EAAE,CAAC;KAwBP;AAxChB,IAAA,eAAe,CAAC,YAAqB,EAAA;AACnC,QAAA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;KAClC;AAID,IAAA,YAAY,CAAC,SAAgB,EAAA;AAC3B,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;KAC5B;AAID,IAAA,qBAAqB,CAAC,kBAAyB,EAAA;AAC7C,QAAA,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;KAC9C;AAID,IAAA,eAAe,CAAC,YAAmB,EAAA;AACjC,QAAA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;KAClC;AAID,IAAA,mBAAmB,CAAC,gBAAqB,EAAA;AACvC,QAAA,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;KAC1C;AAID,IAAA,mBAAmB,CAAC,gBAAuB,EAAA;AACzC,QAAA,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;KAC1C;AAID,IAAA,iBAAiB,CAAC,cAAmB,EAAA;AACnC,QAAA,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;KACtC;AAIK,IAAA,eAAe,CAAC,GAAW,EAAA;;AAC/B,YAAA,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;AACrD,YAAA,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;AACnC,YAAA,OAAO,IAAI,CAAC;SACb,CAAA,CAAA;AAAA,KAAA;AAGD,IAAA,oBAAoB,CAAC,SAAgB,EAAA;QACnC,MAAM,gBAAgB,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,KAAI;YAC/C,OAAO,IAAI,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;AACtD,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,gBAAgB,CAAC;KACzB;AAGD,IAAA,sBAAsB,CAAC,YAAiB,EAAA;QACtC,IAAI,kBAAkB,GAAa,EAAE,CAAC;QAEtC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,KAAI;AACxC,YAAA,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACnC,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,kBAAkB,CAAC;KAC3B;IAGD,8BAA8B,CAC5B,SAAgB,EAChB,kBAA4B,EAAA;AAE5B,QAAA,KAAK,IAAI,IAAI,IAAI,SAAS,EAAE;YAC1B,IAAI,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;AACzC,gBAAA,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;gBAEnD,IAAI,GAAG,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;gBACrD,IAAI,GAAG,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;AAClD,aAAA;AACF,SAAA;AAED,QAAA,OAAO,SAAS,CAAC;KAClB;IAGD,6BAA6B,CAC3B,SAAgB,EAChB,kBAA4B,EAAA;AAE5B,QAAA,KAAK,IAAI,IAAI,IAAI,SAAS,EAAE;AAC1B,YAAA,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,EAAE;AAC/B,gBAAA,IAAI,oBAAoB,CAAC,IAAI,EAAE,aAAa,CAAC,EAAE;oBAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAS,KACnD,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAC/B,CAAC;AACF,oBAAA,IAAI,WAAW,EAAE;wBACf,IAAI,GAAG,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;wBACpD,IAAI,GAAG,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;AAClD,qBAAA;AAAM,yBAAA;wBACL,IAAI,GAAG,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;wBAClD,IAAI,GAAG,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;AACjD,qBAAA;AACF,iBAAA;AAAM,qBAAA;oBACL,IAAI,GAAG,gBAAgB,CAAC,IAAI,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;oBACjD,IAAI,GAAG,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;oBACpD,IAAI,GAAG,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;AAClD,iBAAA;AACF,aAAA;AACF,SAAA;AAED,QAAA,OAAO,SAAS,CAAC;KAClB;AAGD,IAAA,sBAAsB,CAAC,SAAgB,EAAA;QACrC,IAAI,UAAU,GAAG,CAAC,CAAC;AACnB,QAAA,KAAK,IAAI,IAAI,IAAI,SAAS,EAAE;AAC1B,YAAA,IAAI,CAAC,UAAU,GAAG,UAAU,EAAE,CAAC;AAChC,SAAA;AAED,QAAA,OAAO,SAAS,CAAC;KAClB;IAGD,kBAAkB,CAAC,YAAiB,EAAE,SAAgB,EAAA;QACpD,IAAI,2BAA2B,GAAQ,EAAE,CAAC;AAE1C,QAAA,KAAK,IAAI,IAAI,IAAI,SAAS,EAAE;YAC1B,IAAI,oBAAoB,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE;AAChD,gBAAA,2BAA2B,mCACtB,2BAA2B,CAAA,EAAA,EAC9B,CAAC,IAAI,CAAC,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,GACnC,CAAC;AACH,aAAA;AACF,SAAA;AAED,QAAA,OAAO,2BAA2B,CAAC;KACpC;IAGD,eAAe,GAAA;AACb,QAAA,IAAI,SAAS,GAAU,IAAI,CAAC,SAAS,CAAC;AACtC,QAAA,IAAI,kBAA4B,CAAC;AACjC,QAAA,IAAI,gBAAqB,CAAC;AAE1B,QAAA,SAAS,GAAG,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;AAEnD;;;;;AAKG;AACH,QAAA,MAAM,2BAA2B,GAAG,IAAI,CAAC,kBAAkB,CACzD,IAAI,CAAC,YAAY,EACjB,SAAS,CACV,CAAC;AAEF,QAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAEnD,QAAA,kBAAkB,GAAG,IAAI,CAAC,sBAAsB,CAC9C,2BAA2B,CAC5B,CAAC;QAEF,SAAS,GAAG,IAAI,CAAC,8BAA8B,CAC7C,SAAS,EACT,kBAAkB,CACnB,CAAC;QAEF,SAAS,GAAG,IAAI,CAAC,6BAA6B,CAC5C,SAAS,EACT,kBAAkB,CACnB,CAAC;AAEF,QAAA,IAAI,SAAS,CAAC,MAAM,KAAK,kBAAkB,CAAC,MAAM,EAAE;AAClD,YAAA,gBAAgB,GAAG,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;AAExD,YAAA,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;AAC5C,SAAA;AAED,QAAA,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;AAC7B,QAAA,IAAI,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,CAAC;KAChD;;sIAxLU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAArB,mBAAA,qBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,cAFpB,MAAM,EAAA,CAAA,CAAA;AAUlB,UAAA,CAAA;IADC,SAAS;AAGT,CAAA,EAAA,qBAAA,CAAA,SAAA,EAAA,cAAA,EAAA,IAAA,CAAA,CAAA;AAID,UAAA,CAAA;IADC,SAAS;AAGT,CAAA,EAAA,qBAAA,CAAA,SAAA,EAAA,uBAAA,EAAA,IAAA,CAAA,CAAA;AAID,UAAA,CAAA;IADC,SAAS;AAGT,CAAA,EAAA,qBAAA,CAAA,SAAA,EAAA,iBAAA,EAAA,IAAA,CAAA,CAAA;AAID,UAAA,CAAA;IADC,SAAS;AAGT,CAAA,EAAA,qBAAA,CAAA,SAAA,EAAA,qBAAA,EAAA,IAAA,CAAA,CAAA;AAID,UAAA,CAAA;IADC,SAAS;AAGT,CAAA,EAAA,qBAAA,CAAA,SAAA,EAAA,qBAAA,EAAA,IAAA,CAAA,CAAA;AAID,UAAA,CAAA;IADC,SAAS;AAGT,CAAA,EAAA,qBAAA,CAAA,SAAA,EAAA,mBAAA,EAAA,IAAA,CAAA,CAAA;AAWD,UAAA,CAAA;IADC,SAAS;AAMT,CAAA,EAAA,qBAAA,CAAA,SAAA,EAAA,sBAAA,EAAA,IAAA,CAAA,CAAA;AAGD,UAAA,CAAA;IADC,SAAS;AAST,CAAA,EAAA,qBAAA,CAAA,SAAA,EAAA,wBAAA,EAAA,IAAA,CAAA,CAAA;AAGD,UAAA,CAAA;IADC,SAAS;AAeT,CAAA,EAAA,qBAAA,CAAA,SAAA,EAAA,gCAAA,EAAA,IAAA,CAAA,CAAA;AAGD,UAAA,CAAA;IADC,SAAS;AA2BT,CAAA,EAAA,qBAAA,CAAA,SAAA,EAAA,+BAAA,EAAA,IAAA,CAAA,CAAA;AAGD,UAAA,CAAA;IADC,SAAS;AAQT,CAAA,EAAA,qBAAA,CAAA,SAAA,EAAA,wBAAA,EAAA,IAAA,CAAA,CAAA;AAGD,UAAA,CAAA;IADC,SAAS;AAcT,CAAA,EAAA,qBAAA,CAAA,SAAA,EAAA,oBAAA,EAAA,IAAA,CAAA,CAAA;AAGD,UAAA,CAAA;IADC,SAAS;AA2CT,CAAA,EAAA,qBAAA,CAAA,SAAA,EAAA,iBAAA,EAAA,IAAA,CAAA,CAAA;4FAxLU,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;0EASC,YAAY,EAAA,EAAA,EAMZ,qBAAqB,EAMrB,EAAA,EAAA,eAAe,MAMf,mBAAmB,EAAA,EAAA,EAMnB,mBAAmB,EAAA,EAAA,EAMnB,iBAAiB,EAAA,EAAA,EAajB,oBAAoB,EAQpB,EAAA,EAAA,sBAAsB,EAWtB,EAAA,EAAA,8BAA8B,EAiB9B,EAAA,EAAA,6BAA6B,MA6B7B,sBAAsB,EAAA,EAAA,EAUtB,kBAAkB,EAAA,EAAA,EAgBlB,eAAe,EAAA,EAAA,EAAA,EAAA,CAAA;;MChHJ,4BAA4B,CAAA;IAsDvC,WACS,CAAA,eAAsC,EACrC,WAAuB,EAAA;QADxB,IAAe,CAAA,eAAA,GAAf,eAAe,CAAuB;QACrC,IAAW,CAAA,WAAA,GAAX,WAAW,CAAY;QAxBjC,IAAS,CAAA,SAAA,GAAQ,EAAE,CAAC;QAGpB,IAAe,CAAA,eAAA,GAAQ,EAAE,CAAC;AAG1B,QAAA,IAAA,CAAA,aAAa,GAAsB,IAAI,YAAY,EAAO,CAAC;AAG3D,QAAA,IAAA,CAAA,WAAW,GAAsB,IAAI,YAAY,EAAO,CAAC;AAGzD,QAAA,IAAA,CAAA,cAAc,GAAsB,IAAI,YAAY,EAAO,CAAC;QAE5D,IAAO,CAAA,OAAA,GAAY,KAAK,CAAC;QACzB,IAAM,CAAA,MAAA,GAAY,KAAK,CAAC;;QAGxB,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAC1B,IAAc,CAAA,cAAA,GAAY,IAAI,CAAC;QAC/B,IAAgB,CAAA,gBAAA,GAAY,IAAI,CAAC;QAkMjC,IAAqB,CAAA,qBAAA,GAAY,KAAK,CAAC;KA7LnC;;IAtDJ,mBAAmB,GAAA;QACjB,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,WAAW,GAAG,GAAG,EAAE;YACpD,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,gBAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;AAC9B,gBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAC5B,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;AAC7B,gBAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC7B,aAAA;AACD,YAAA,IAAI,CAAC,eAAe,CAAC,YAAY,GAAG,IAAI,CAAC;AAC1C,SAAA;AAAM,aAAA;YACL,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,gBAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;AAC7B,gBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAC5B,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;AAC7B,gBAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC7B,aAAA;AACD,YAAA,IAAI,CAAC,eAAe,CAAC,YAAY,GAAG,KAAK,CAAC;AAC3C,SAAA;KACF;IAoCD,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QAEpB,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;QAE7C,IACE,WAAW,KAAK,SAAS;YACzB,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,WAAW,CAAC,EACjE;AACA,YAAA,IAAI,CAAC,eAAe,CAAC,YAAY,CAC/B,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,WAAW,CAAC,CAC5C,CAAC;AACH,SAAA;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE;YACxD,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AACnE,SAAA;AAAM,aAAA;AACL,YAAA,MAAM,IAAI,KAAK,CACb,wDAAwD,WAAW,CAAA,CAAE,CACtE,CAAC;AACH,SAAA;QAED,IAAI,CAAC,eAAe,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;KACrB;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,MAAM,YAAY,GAAG,CAAC,IAAY,KAAI;AACpC,YAAA,OAAO,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC;AACpE,SAAC,CAAC;AACF,QAAA,IAAI,YAAY,CAAC,YAAY,CAAC,EAAE;YAC9B,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC;AAClD,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACrB,SAAA;AACD,QAAA,IAAI,YAAY,CAAC,WAAW,CAAC,EAAE;YAC7B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC;YAEhD,IAAI,CAAC,eAAe,EAAE,CAAC;AACxB,SAAA;AACD,QAAA,IAAI,YAAY,CAAC,iBAAiB,CAAC,EAAE;YACnC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,YAAY,CAAC;AAC5D,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACrB,SAAA;KACF;IAEK,eAAe,GAAA;;AACnB,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YAEnB,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAErD,YAAA,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,CAAC;YAEvC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;AAElD,YAAA,IACE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,MAAM;AACrC,gBAAA,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,MAAM,EAC9C;AACA,gBAAA,MAAM,IAAI,CAAC,0BAA0B,CACnC,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,GAAG,CAC1C,CAAC;AACH,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACtB,gBAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC7B,aAAA;AAED,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;SACtB,CAAA,CAAA;AAAA,KAAA;AAED,IAAA,YAAY,CAAC,SAAgB,EAAA;QAC3B,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,WAAW,GAAG,GAAG,EAAE;AACpD,YAAA,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE;AAC5B,gBAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;AAC7B,gBAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC5B,gBAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACvB,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;AAC7B,gBAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC5B,gBAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACvB,aAAA;AACD,YAAA,IAAI,CAAC,eAAe,CAAC,YAAY,GAAG,IAAI,CAAC;AAC1C,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,eAAe,CAAC,YAAY,GAAG,KAAK,CAAC;AAC3C,SAAA;KACF;;AAIK,IAAA,0BAA0B,CAAC,YAAoB,EAAA;;;AACnD,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACtB,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AAEnB,YAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,KAAI;AACpE,gBAAA,IAAI,IAAI,CAAC,GAAG,KAAK,YAAY,EAAE;AAC7B,oBAAA,OAAO,IAAI,CAAC;AACb,iBAAA;AACH,aAAC,CAAC,CAAC;AAEH,YAAA,IAAI,UAAU,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,eAAe,CACzD,gBAAgB,CAAC,WAAW,CAAC,GAAG,CACjC,CAAC;YAEF,UAAU,GAAG,IAAI,SAAS,EAAE,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;AAE3D,YAAA,MAAM,cAAc,GAClB,CAAA,EAAA,GAAA,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,CAAC;AAC1D,YAAA,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;YAEvD,IAAI,CAAC,eAAe,CAAC,mBAAmB,iCACnC,gBAAgB,CAAA,EAChB,UAAU,CAAA,CACb,CAAC;YAEH,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,WAAW,GAAG,GAAG,EAAE;AACpD,gBAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;AAC9B,gBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAC5B,aAAA;iBAAM,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,WAAW,IAAI,GAAG,EAAE;AAC5D,gBAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;AAC7B,gBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAC5B,aAAA;AAED,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACrB,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;;AACrB,KAAA;;AAGD,IAAA,wBAAwB,CAAC,CAAM,EAAA;AAC7B,QAAA,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAEf,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,UAAU,EAAE;AACnD,YAAA,MAAM,WAAW,GAAG,IAAIC,aAAW,CACjC;gBACE,WAAW,EAAE,IAAI,CAAC,UAAU;gBAC5B,cAAc,EAAE,IAAI,CAAC,SAAS;aAC/B,EACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAC3B,CAAC;AAEF,YAAA,CAAC,MAAW,SAAA,CAAA,IAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,aAAA;AACV,gBAAA,MAAM,WAAW,CAAC,QAAQ,CACxB,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,UAAU,CAChD,CAAC;gBAEF,IAAI,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,MAAM,KAAK,WAAW,EAAE;AAC/D,oBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC5B,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;oBACnC,UAAU,CAAC,MAAK;AACd,wBAAA,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;qBACrC,EAAE,IAAI,CAAC,CAAC;AACV,iBAAA;aACF,CAAA,GAAG,CAAC;AACN,SAAA;KACF;;AAGD,IAAA,oBAAoB,CAAC,CAAM,EAAA;AACzB,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KAC7B;;AAGD,IAAA,uBAAuB,CAAC,CAAM,EAAA;AAC5B,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;AACpB,YAAA,CAAC,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC;AACvD,SAAA,CAAC,CAAC;KACJ;;AAGD,IAAA,qBAAqB,CAAC,CAAM,EAAA;AAC1B,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AAEnB,QAAA,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;AAE3C,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;AACpB,YAAA,CAAC,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC;AACvD,SAAA,CAAC,CAAC;KACJ;;AAGD,IAAA,sBAAsB,CAAC,CAAM,EAAA;AAC3B,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;AAC7B,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACtB,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;KAC7B;AAGD,IAAA,uBAAuB,CAAC,IAAI,EAAA;AAC1B,QAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;KACnC;AAEK,IAAA,UAAU,CAAC,MAAW,EAAE,UAAe,EAAE,SAAc,EAAA;;YAC3D,QAAQ,MAAM,CAAC,GAAG;gBAChB,KAAK,UAAU,CAAC,SAAS;AACvB,oBAAA,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;wBAC1B,WAAW,EAAE,IAAI,CAAC,UAAU;wBAC5B,cAAc,EAAE,IAAI,CAAC,SAAS;AAC/B,qBAAA,CAAC,CAAC;AAEH,oBAAA,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,kBAAkB,CAClD,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAC1B,CAAC;AACF,oBAAA,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;oBAEtE,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC;oBAC7C,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC;oBAC/C,MAAM;AACR,gBAAA;oBACE,MAAM;AACT,aAAA;SACF,CAAA,CAAA;AAAA,KAAA;;6IA9QU,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA5B,mBAAA,4BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,gWAF5B,CAAC,qBAAqB,CAAC,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtCpC,2wEA+DA,EDpCc,MAAA,EAAA,CAAA,qhGAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,YAAA,EAAA,WAAA,EAAA,oBAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,EAAA,sBAAA,EAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,uBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,cAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,KAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,CAAA,EAAA,UAAA,EAAA;QACV,OAAO,CAAC,YAAY,EAAE;YACpB,UAAU,CAAC,QAAQ,EAAE;AACnB,gBAAA,KAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;gBACxC,OAAO,CAAC,GAAG,CAAC;aACb,CAAC;YACF,UAAU,CAAC,QAAQ,EAAE;gBACnB,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,CAAC;aACvD,CAAC;SACH,CAAC;AACH,KAAA,EAAA,CAAA,CAAA;AAsJD,UAAA,CAAA;IADC,SAAS;AAoCT,CAAA,EAAA,4BAAA,CAAA,SAAA,EAAA,4BAAA,EAAA,IAAA,CAAA,CAAA;4FAtLU,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAjBxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,WAAW,EAAE,2BAA2B;oBACxC,SAAS,EAAE,CAAC,2BAA2B,CAAC;AACxC,oBAAA,UAAU,EAAE;wBACV,OAAO,CAAC,YAAY,EAAE;4BACpB,UAAU,CAAC,QAAQ,EAAE;AACnB,gCAAA,KAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;gCACxC,OAAO,CAAC,GAAG,CAAC;6BACb,CAAC;4BACF,UAAU,CAAC,QAAQ,EAAE;gCACnB,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,CAAC;6BACvD,CAAC;yBACH,CAAC;AACH,qBAAA;oBACD,SAAS,EAAE,CAAC,qBAAqB,CAAC;AACnC,iBAAA,CAAA;kIAIC,mBAAmB,EAAA,CAAA;sBADlB,YAAY;uBAAC,eAAe,EAAE,CAAC,QAAQ,CAAC,CAAA;gBAwBzC,UAAU,EAAA,CAAA;sBADT,KAAK;gBAIN,UAAU,EAAA,CAAA;sBADT,KAAK;gBAIN,SAAS,EAAA,CAAA;sBADR,KAAK;gBAIN,eAAe,EAAA,CAAA;sBADd,KAAK;gBAIN,aAAa,EAAA,CAAA;sBADZ,MAAM;gBAIP,WAAW,EAAA,CAAA;sBADV,MAAM;gBAIP,cAAc,EAAA,CAAA;sBADb,MAAM;gBAwGD,0BAA0B,EAAA,EAAA,EAAA,EAAA,CAAA;;ME/KrB,uBAAuB,CAAA;;wIAAvB,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;yIAAvB,uBAAuB,EAAA,YAAA,EAAA,CALnB,2BAA2B,CAAA,EAAA,OAAA,EAAA,CAChC,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,cAAc,CAAA,EAAA,OAAA,EAAA,CAE9D,2BAA2B,CAAA,EAAA,CAAA,CAAA;yIAE1B,uBAAuB,EAAA,SAAA,EAHvB,EAAE,EAAA,OAAA,EAAA,CADJ,CAAC,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,cAAc,CAAC,CAAA,EAAA,CAAA,CAAA;4FAI9D,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBANnC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,2BAA2B,CAAC;oBAC3C,OAAO,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,cAAc,CAAC;AACzE,oBAAA,SAAS,EAAE,EAAE;oBACb,OAAO,EAAE,CAAC,2BAA2B,CAAC;AACvC,iBAAA,CAAA;;;MCUY,oBAAoB,CAAA;;qIAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;sIAApB,oBAAoB,EAAA,YAAA,EAAA,CAZhB,uBAAuB,CAAA,EAAA,OAAA,EAAA,CAEpC,YAAY;QACZ,WAAW;QACX,mBAAmB;QACnB,cAAc;QACd,aAAa;QACb,YAAY;AACZ,QAAA,YAAY,aAEJ,uBAAuB,CAAA,EAAA,CAAA,CAAA;AAEtB,mBAAA,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,EAXtB,OAAA,EAAA,CAAA;YACP,YAAY;YACZ,WAAW;YACX,mBAAmB;YACnB,cAAc;YACd,aAAa;YACb,YAAY;YACZ,YAAY;AACb,SAAA,CAAA,EAAA,CAAA,CAAA;4FAGU,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAbhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,uBAAuB,CAAC;AACvC,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;wBACX,mBAAmB;wBACnB,cAAc;wBACd,aAAa;wBACb,YAAY;wBACZ,YAAY;AACb,qBAAA;oBACD,OAAO,EAAE,CAAC,uBAAuB,CAAC;AACnC,iBAAA,CAAA;;;MCFY,qBAAqB,CAAA;;sIAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;uIAArB,qBAAqB,EAAA,YAAA,EAAA,CAVjB,wBAAwB,CAAA,EAAA,OAAA,EAAA,CAErC,YAAY;QACZ,WAAW;QACX,mBAAmB;QACnB,YAAY;AACZ,QAAA,YAAY,aAEJ,wBAAwB,CAAA,EAAA,CAAA,CAAA;AAEvB,mBAAA,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,EATvB,OAAA,EAAA,CAAA;YACP,YAAY;YACZ,WAAW;YACX,mBAAmB;YACnB,YAAY;YACZ,YAAY;AACb,SAAA,CAAA,EAAA,CAAA,CAAA;4FAGU,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAXjC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,wBAAwB,CAAC;AACxC,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;wBACX,mBAAmB;wBACnB,YAAY;wBACZ,YAAY;AACb,qBAAA;oBACD,OAAO,EAAE,CAAC,wBAAwB,CAAC;AACpC,iBAAA,CAAA;;;MCQY,wBAAwB,CAAA;;yIAAxB,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;0IAAxB,wBAAwB,EAAA,YAAA,EAAA,CAdpB,4BAA4B,CAAA,EAAA,OAAA,EAAA,CAEzC,YAAY;QACZ,gBAAgB;QAChB,oBAAoB;QACpB,qBAAqB;QACrB,YAAY;QACZ,eAAe;QACf,aAAa;AACb,QAAA,YAAY,aAGJ,4BAA4B,CAAA,EAAA,CAAA,CAAA;0IAE3B,wBAAwB,EAAA,SAAA,EAHxB,EAAE,EAVJ,OAAA,EAAA,CAAA;YACP,YAAY;YACZ,gBAAgB;YAChB,oBAAoB;YACpB,qBAAqB;YACrB,YAAY;YACZ,eAAe;YACf,aAAa;YACb,YAAY;AACb,SAAA,CAAA,EAAA,CAAA,CAAA;4FAIU,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAfpC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,4BAA4B,CAAC;AAC5C,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,gBAAgB;wBAChB,oBAAoB;wBACpB,qBAAqB;wBACrB,YAAY;wBACZ,eAAe;wBACf,aAAa;wBACb,YAAY;AACb,qBAAA;AACD,oBAAA,SAAS,EAAE,EAAE;oBACb,OAAO,EAAE,CAAC,4BAA4B,CAAC;AACxC,iBAAA,CAAA;;;MCLY,iBAAiB,CAAA;;kIAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAjB,mBAAA,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,YAT1B,YAAY;QACZ,WAAW;QACX,mBAAmB;QACnB,uBAAuB;QACvB,wBAAwB,CAAA,EAAA,OAAA,EAAA,CAEhB,uBAAuB,EAAE,wBAAwB,CAAA,EAAA,CAAA,CAAA;AAGhD,mBAAA,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,EAFjB,SAAA,EAAA,CAAC,qBAAqB,CAAC,EARzB,OAAA,EAAA,CAAA;YACP,YAAY;YACZ,WAAW;YACX,mBAAmB;YACnB,uBAAuB;YACvB,wBAAwB;SACzB,EACS,uBAAuB,EAAE,wBAAwB,CAAA,EAAA,CAAA,CAAA;4FAGhD,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAZ7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,EAAE;AAChB,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;wBACX,mBAAmB;wBACnB,uBAAuB;wBACvB,wBAAwB;AACzB,qBAAA;AACD,oBAAA,OAAO,EAAE,CAAC,uBAAuB,EAAE,wBAAwB,CAAC;oBAC5D,SAAS,EAAE,CAAC,qBAAqB,CAAC;AACnC,iBAAA,CAAA;;;AClBD;;AAEG;;ACFH;;AAEG;;;;"}
|
|
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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"}
|