From c25b34529e38c5932705289f666305323c40c175 Mon Sep 17 00:00:00 2001
From: Shruti3004 <mail2shruti.ag@gmail.com>
Date: Tue, 14 Feb 2023 08:31:47 +0000
Subject: [PATCH] Implemented recursive strategy for nested prefills

---
 packages/form-manager/src/app.service.ts | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/packages/form-manager/src/app.service.ts b/packages/form-manager/src/app.service.ts
index a2a29cf..c32b89e 100644
--- a/packages/form-manager/src/app.service.ts
+++ b/packages/form-manager/src/app.service.ts
@@ -63,10 +63,11 @@ export class AppService {
     }*/
     for (const key in prefillSpec) {
       if (prefillSpec.hasOwnProperty(key)) {
-        const element = instance.getElementsByTagName(key)[0];
+        const key_arr = key.split('_*_');
+        const element = this.findElementRecursively(0, key_arr, instance);
         if (element) {
           console.log(prefillSpec[key]);
-          console.log(eval(prefillSpec[key]));
+          // console.log(eval(prefillSpec[key]));
           element.textContent = eval(prefillSpec[key]);
         }
       }
@@ -74,6 +75,12 @@ export class AppService {
     return doc.toString();
   }
 
+  findElementRecursively(start: number, key_arr: any, instance: any) {
+    if (!instance) return null;
+    if (!key_arr[start + 1]) return instance.getElementsByTagName(key_arr[start])?.[0]
+    return this.findElementRecursively(start + 1, key_arr, instance.getElementsByTagName(key_arr[start])?.[0])
+  }
+
   prefillFormXML(form: string, onFormSuccessData: any, prefillSpec: any): string {
     console.log("MAI YAHAN AA GAYA");
     const formFilePath = join(__dirname, `forms/${form}.xml`);
-- 
GitLab