{"mappings":"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,CACL,YAAa,uBACb,KAAM,MACR,EACA,YAAa,CACX,SAAU,CACR,UAAW,CAAA,EACX,SAAU,2BACZ,EACA,UAAW,CACT,OAAQ,GACR,SAAU,6CACZ,CACF,CACF,EACA,IAAK,WACL,SAAU,UACZ,EACA,eAAgB,CACd,KAAM,uBACN,MAAO,CACL,OAAQ,QACR,MAAO,CACL,YAAa,uBACb,KAAM,MACR,EACA,YAAa,CACX,SAAU,CACR,UAAW,CAAA,EACX,SAAU,yBACZ,EACA,UAAW,CACT,OAAQ,GACR,SAAU,oCACZ,CACF,CACF,EACA,IAAK,WACL,SAAU,UACZ,EACA,MAAO,CACL,KAAM,mBACN,MAAO,CACL,OAAQ,QACR,MAAO,CACL,YAAa,mBACb,KAAM,MACR,EACA,YAAa,CACX,SAAU,CACR,UAAW,CAAA,EACX,SAAU,mBACZ,EACA,QAAS,CACP,MACE,sIACF,SAAU,4BACZ,CACF,CACF,EACA,IAAK,QACL,SAAU,WACZ,EACA,YAAa,CACX,KAAM,mBACN,MAAO,CACL,OAAQ,QACR,MAAO,CACL,YAAa,mBACb,KAAM,MACR,EACA,YAAa,CACX,SAAU,CACR,UAAW,CAAA,EACX,SAAU,0BACZ,EACA,QAAS,CACP,MACE,sIACF,SAAU,gCACZ,CACF,CACF,EACA,IAAK,QACL,SAAU,WACZ,EACA,YAAa,CACX,KAAM,mBACN,MAAO,CACL,OAAQ,QACR,MAAO,CACL,YAAa,mBACb,KAAM,MACR,EACA,YAAa,CACX,SAAU,CACR,UAAW,CAAA,EACX,SAAU,oBACZ,EACA,QAAS,CACP,MACE,sIACF,SAAU,mCACZ,CACF,CACF,EACA,IAAK,QACL,SAAU,WACZ,EACA,YAAa,CACX,KAAM,mBACN,MAAO,CACL,OAAQ,QACR,MAAO,CACL,YAAa,mBACb,KAAM,MACR,EACA,YAAa,CACX,SAAU,CACR,UAAW,CAAA,EACX,SAAU,sCACZ,EACA,QAAS,CACP,MACE,sIACF,SAAU,sCACZ,CACF,CACF,EACA,IAAK,QACL,SAAU,WACZ,EACA,YAAa,CACX,KAAM,mBACN,MAAO,CACL,OAAQ,QACR,MAAO,CACL,YAAa,mBACb,KAAM,MACR,EACA,YAAa,CACX,SAAU,CACR,UAAW,CAAA,EACX,SAAU,yBACZ,EACA,QAAS,CACP,MACE,sIACF,SAAU,iDACZ,CACF,CACF,EACA,IAAK,QACL,SAAU,WACZ,EACA,YAAa,CACX,KAAM,mBACN,MAAO,CACL,OAAQ,QACR,MAAO,CACL,YAAa,mBACb,KAAM,MACR,EACA,YAAa,CACX,SAAU,CACR,UAAW,CAAA,EACX,SAAU,kCACZ,EACA,QAAS,CACP,MACE,sIACF,SAAU,2CACZ,CACF,CACF,EACA,IAAK,QACL,SAAU,WACZ,EACA,YAAa,CACX,KAAM,mBACN,MAAO,CACL,OAAQ,QACR,MAAO,CACL,YAAa,mBACb,KAAM,MACR,EACA,YAAa,CACX,SAAU,CACR,UAAW,CAAA,EACX,SAAU,mBACZ,EACA,QAAS,CACP,MACE,sIACF,SAAU,8BACZ,CACF,CACF,EACA,IAAK,QACL,SAAU,WACZ,EACA,YAAa,CACX,KAAM,mBACN,MAAO,CACL,OAAQ,QACR,MAAO,CACL,YAAa,mBACb,KAAM,MACR,EACA,YAAa,CACX,SAAU,CACR,UAAW,CAAA,EACX,SAAU,wBACZ,EACA,QAAS,CACP,MACE,sIACF,SAAU,qCACZ,CACF,CACF,EACA,IAAK,QACL,SAAU,WACZ,EACA,YAAa,CACX,KAAM,mBACN,MAAO,CACL,OAAQ,QACR,MAAO,CACL,YAAa,mBACb,KAAM,MACR,EACA,YAAa,CACX,SAAU,CACR,UAAW,CAAA,EACX,SAAU,yBACZ,EACA,QAAS,CACP,MACE,sIACF,SAAU,sCACZ,CACF,CACF,EACA,IAAK,QACL,SAAU,WACZ,EACA,QAAS,CACP,KAAM,UACN,MAAO,CACL,OAAQ,WACR,MAAO,CACL,YAAa,gBACf,EACA,YAAa,CACX,SAAU,CACR,UAAW,CAAA,EACX,SAAU,qBACZ,CACF,EACA,cAAe,eACf,QAAS,CACP,CACE,YAAa,QACb,IAAK,IACP,EACA,CACE,YAAa,MACb,IAAK,KACP,EACA,CACE,YAAa,QACb,IAAK,IACP,EACD,CACD,aAAc,CACZ,YAAa,QACb,IAAK,IACP,CACF,EACA,IAAK,UACL,SAAU,SACZ,EACA,QAAS,CACP,KAAM,UACN,MAAO,CACL,OAAQ,QACR,MAAO,CACL,YAAa,sBACb,KAAM,QACR,EACA,YAAa,CACX,SAAU,CACR,UAAW,CAAA,EACX,SAAU,sBACZ,EACA,UAAW,CACT,OAAQ,EACR,SAAU,yCACZ,EACA,QAAS,CACP,MAAO,aACP,SAAU,8BACZ,CACF,CACF,EACA,IAAK,UACL,SAAU,YACZ,EACA,MAAO,CACL,KAAM,QACN,MAAO,CACL,OAAQ,WACR,MAAO,CACL,YAAa,cACf,EACA,YAAa,CACX,SAAU,CACR,UAAW,CAAA,EACX,SAAU,mBACZ,CACF,EACA,cAAe,eACf,QAAS,CACP,CACE,YAAa,aACb,IAAK,IACP,EACA,CACE,YAAa,SACb,IAAK,IACP,EACD,AA0BH,EACA,IAAK,QACL,SAAU,OACZ,EACA,YAAa,CACX,KAAM,iGACN,MAAO,CACL,OAAQ,QACR,UAAW,GACX,YAAa,CACX,SAAU,CACR,UAAW,CAAA,EACX,SAAU,mBACZ,CACF,EACA,cAAe,eACf,QAAS,CACP,CACE,YAAa,MACb,IAAK,KACP,EACA,CACE,YAAa,KACb,IAAK,IACP,EACD,AACD,EAGF,IAAK,YACL,SAAU,WACZ,EACA,cAAe,CACb,KAAM,wEACN,MAAO,CACL,OAAQ,QACR,UAAW,GACX,YAAa,CACX,SAAU,CACR,UAAW,CAAA,EACX,SAAU,mBACZ,CACF,EACA,cAAe,eACf,QAAS,CACP,CACE,YAAa,MACb,IAAK,KACP,EACA,CACE,YAAa,KACb,IAAK,IACP,EACD,AACD,EAEF,IAAK,cACL,SAAU,aACZ,EACA,oBAAqB,CACnB,KAAM,wEACN,MAAO,CACL,OAAQ,QACR,UAAW,GACX,YAAa,CACX,SAAU,CACR,UAAW,CAAA,EACX,SAAU,mBACZ,CACF,EACA,cAAe,eACf,QAAS,CACP,CACE,YAAa,MACb,IAAK,KACP,EACA,CACE,YAAa,KACb,IAAK,IACP,EACD,AACD,EAEF,IAAK,cACL,SAAU,aACZ,EACA,oBAAqB,CACnB,KAAM,wEACN,MAAO,CACL,OAAQ,QACR,UAAW,GACX,YAAa,CACX,SAAU,CACR,UAAW,CAAA,EACX,SAAU,oBACZ,CACF,EACA,cAAe,eACf,QAAS,CACP,CACE,YAAa,MACb,IAAK,KACP,EACA,CACE,YAAa,KACb,IAAK,IACP,EACD,AACD,EAEF,IAAK,cACL,SAAU,aACZ,EACA,kBAAmB,CACjB,KAAM,iGACN,MAAO,CACL,OAAQ,QACR,UAAW,GACX,YAAa,CACX,SAAU,CACR,UAAW,CAAA,EACX,SAAU,uBACZ,CACF,EACA,cAAe,eACf,QAAS,CACP,CACE,YAAa,MACb,IAAK,KACP,EACA,CACE,YAAa,KACb,IAAK,IACP,EACD,AACD,EAGF,IAAK,YACL,SAAU,WACZ,EACA,kBAAmB,CACjB,KAAM,iGACN,MAAO,CACL,OAAQ,QACR,UAAW,GACX,YAAa,CACX,SAAU,CACR,UAAW,CAAA,EACX,SAAU,mBACZ,CACF,EACA,cAAe,eACf,QAAS,CACP,CACE,YAAa,MACb,IAAK,KACP,EACA,CACE,YAAa,KACb,IAAK,IACP,EACD,AACD,EAGF,IAAK,YACL,SAAU,WACZ,EACA,kBAAmB,CACjB,KAAM,iGACN,MAAO,CACL,OAAQ,QACR,UAAW,GACX,YAAa,CACX,SAAU,CACR,UAAW,CAAA,EACX,SAAU,oBACZ,CACF,EACA,cAAe,eACf,QAAS,CACP,CACE,YAAa,MACb,IAAK,KACP,EACA,CACE,YAAa,KACb,IAAK,IACP,EACD,AACD,EAGF,IAAK,YACL,SAAU,WACZ,EACA,oBAAqB,CACnB,KAAM,wEACN,MAAO,CACL,OAAQ,QACR,UAAW,GACX,YAAa,CACX,SAAU,CACR,UAAW,CAAA,EACX,SAAU,uBACZ,CACF,EACA,cAAe,eACf,QAAS,CACP,CACE,YAAa,MACb,IAAK,KACP,EACA,CACE,YAAa,KACb,IAAK,IACP,EACD,AACD,EAEF,IAAK,cACL,SAAU,aACZ,EACA,kBAAmB,CACjB,KAAM,iGACN,MAAO,CACL,OAAQ,QACR,UAAW,GACX,YAAa,CACX,SAAU,CACR,UAAW,CAAA,EACX,SAAU,yBACZ,CACF,EACA,cAAe,eACf,QAAS,CACP,CACE,YAAa,MACb,IAAK,KACP,EACA,CACE,YAAa,KACb,IAAK,IACP,EACD,AACD,EAGF,IAAK,YACL,SAAU,WACZ,EACA,oBAAqB,CACnB,KAAM,wEACN,MAAO,CACL,OAAQ,QACR,UAAW,GACX,YAAa,CACX,SAAU,CACR,UAAW,CAAA,EACX,SAAU,yBACZ,CACF,EACA,cAAe,eACf,QAAS,CACP,CACE,YAAa,MACb,IAAK,KACP,EACA,CACE,YAAa,KACb,IAAK,IACP,EACD,AACD,EAEF,IAAK,cACL,SAAU,aACZ,EACA,kBAAmB,CACjB,KAAM,iGACN,MAAO,CACL,OAAQ,QACR,UAAW,GACX,YAAa,CACX,SAAU,CACR,UAAW,CAAA,EACX,SAAU,iBACZ,CACF,EACA,cAAe,eACf,QAAS,CACP,CACE,YAAa,MACb,IAAK,KACP,EACA,CACE,YAAa,KACb,IAAK,IACP,EACD,AACD,EAGF,IAAK,YACL,SAAU,WACZ,EACA,oBAAqB,CACnB,KAAM,wEACN,MAAO,CACL,OAAQ,QACR,UAAW,GACX,YAAa,CACX,SAAU,CACR,UAAW,CAAA,EACX,SAAU,iBACZ,CACF,EACA,cAAe,eACf,QAAS,CACP,CACE,YAAa,MACb,IAAK,KACP,EACA,CACE,YAAa,KACb,IAAK,IACP,EACD,AACD,EAEF,IAAK,cACL,SAAU,aACZ,EACA,kBAAmB,CACjB,KAAM,iGACN,MAAO,CACL,OAAQ,QACR,UAAW,GACX,YAAa,CACX,SAAU,CACR,UAAW,CAAA,EACX,SAAU,0BACZ,CACF,EACA,cAAe,eACf,QAAS,CACP,CACE,YAAa,MACb,IAAK,KACP,EACA,CACE,YAAa,KACb,IAAK,IACP,EACD,AACD,EAGF,IAAK,YACL,SAAU,WACZ,EACA,oBAAqB,CACnB,KAAM,wEACN,MAAO,CACL,OAAQ,QACR,UAAW,GACX,YAAa,CACX,SAAU,CACR,UAAW,CAAA,EACX,SAAU,0BACZ,CACF,EACA,cAAe,eACf,QAAS,CACP,CACE,YAAa,MACb,IAAK,KACP,EACA,CACE,YAAa,KACb,IAAK,IACP,EACD,AACD,EAEF,IAAK,cACL,SAAU,aACZ,EACA,kBAAmB,CACjB,KAAM,iGACN,MAAO,CACL,OAAQ,QACR,UAAW,GACX,YAAa,CACX,SAAU,CACR,UAAW,CAAA,EACX,SAAU,uBACZ,CACF,EACA,cAAe,eACf,QAAS,CACP,CACE,YAAa,MACb,IAAK,KACP,EACA,CACE,YAAa,KACb,IAAK,IACP,EACD,AACD,EAGF,IAAK,YACL,SAAU,WACZ,EACA,oBAAqB,CACnB,KAAM,wEACN,MAAO,CACL,OAAQ,QACR,UAAW,GACX,YAAa,CACX,SAAU,CACR,UAAW,CAAA,EACX,SAAU,uBACZ,CACF,EACA,cAAe,eACf,QAAS,CACP,CACE,YAAa,MACb,IAAK,KACP,EACA,CACE,YAAa,KACb,IAAK,IACP,EACD,AACD,EAEF,IAAK,cACL,SAAU,aACZ,EACA,kBAAmB,CACjB,KAAM,iGACN,MAAO,CACL,OAAQ,QACR,UAAW,GACX,YAAa,CACX,SAAU,CACR,UAAW,CAAA,EACX,SAAU,yBACZ,CACF,EACA,cAAe,eACf,QAAS,CACP,CACE,YAAa,MACb,IAAK,KACP,EACA,CACE,YAAa,KACb,IAAK,IACP,EACD,AACD,EAGF,IAAK,YACL,SAAU,WACZ,EACA,oBAAqB,CACnB,KAAM,wEACN,MAAO,CACL,OAAQ,QACR,UAAW,GACX,YAAa,CACX,SAAU,CACR,UAAW,CAAA,EACX,SAAU,yBACZ,CACF,EACA,cAAe,eACf,QAAS,CACP,CACE,YAAa,MACb,IAAK,KACP,EACA,CACE,YAAa,KACb,IAAK,IACP,EACD,AACD,EAEF,IAAK,cACL,SAAU,aACZ,EAEA,oBAAoB,CAClB,KAAQ,wEACR,MAAS,CACP,OAAU,QACV,UAAa,GACb,YAAe,CACb,SAAY,CACV,UAAa,CAAA,EACb,SAAY,mBACd,CACF,EACA,cAAiB,eACjB,QAAW,CACT,CACE,YAAe,MACf,IAAO,KACT,EACA,CACE,YAAe,KACf,IAAO,IACT,EACD,AACH,EACA,IAAO,oBACP,SAAY,oBACZ,QAAW,SACX,MAAS,qBACX,EACA,iBAAiB,CACf,KAAQ,0EACR,MAAS,CACP,OAAU,QACV,UAAa,GACb,YAAe,CACb,SAAY,CACV,UAAa,CAAA,EACb,SAAY,mBACd,CACF,EACA,cAAiB,eACjB,QAAW,CACT,CACE,YAAe,MACf,IAAO,KACT,EACA,CACE,YAAe,KACf,IAAO,IACT,EACD,AACH,EACA,IAAO,iBACP,SAAY,iBACZ,QAAW,SACX,MAAS,gBACX,EACA,mBAAmB,CACjB,KAAQ,0EACR,MAAS,CACP,OAAU,QACV,UAAa,GACb,YAAe,CACb,SAAY,CACV,UAAa,CAAA,EACb,SAAY,mBACd,CACF,EACA,cAAiB,eACjB,QAAW,CACT,CACE,YAAe,MACf,IAAO,KACT,EACA,CACE,YAAe,KACf,IAAO,IACT,EACD,AACH,EACA,IAAO,mBACP,SAAY,mBACZ,QAAW,SACX,MAAS,kBACX,EACA,SAAU,CACR,KAAM,iGACN,MAAO,CACL,OAAQ,QACR,UAAW,GACX,YAAa,CACX,SAAU,CACR,UAAW,CAAA,EACX,SAAU,mBACZ,CACF,EACA,cAAe,eACf,QAAS,CACP,CACE,YAAa,MACb,IAAK,KACP,EACA,CACE,YAAa,KACb,IAAK,IACP,EACD,AACD,EAGF,IAAK,WACL,SAAU,UACZ,EACA,WAAY,CACV,KAAM,wEACN,MAAO,CACL,OAAQ,QACR,UAAW,GACX,YAAa,CACX,SAAU,CACR,UAAW,CAAA,EACX,SAAU,mBACZ,CACF,EACA,cAAe,eACf,QAAS,CACP,CACE,YAAa,MACb,IAAK,KACP,EACA,CACE,YAAa,KACb,IAAK,IACP,EACD,AACD,EAEF,IAAK,aACL,SAAU,YACZ,EACA,KAAM,CACJ,KAAM,kBACN,MAAO,CACL,OAAQ,QACR,MAAO,CACL,YAAa,aACb,KAAM,MACR,EACA,YAAa,CAAC,CAChB,EACA,IAAK,OACL,SAAU,MACZ,EACA,iCAAkC,CAChC,KAAM,sFACN,MAAO,CACL,OAAQ,SACR,UAAW,OACX,MAAO,CAAC,EACR,YAAa,CACX,SAAU,CACR,UAAW,CAAA,EACX,SAAU,mBACZ,CACF,CACF,EACA,IAAK,mCACL,SAAU,eACZ,EACA,OAAQ,CACN,KAAM,SACN,MAAO,CACL,OAAQ,OACR,MAAO,CACL,SAAS,2BACT,WAAW,0BACX,SAAU,8CACV,OAAQ,wCACR,KAAM,MACR,EACA,eACE,uDAEF,YAAa,CACX,SAAU,CACR,UAAW,CAAA,EACX,SAAU,oBACZ,CACF,CACF,EACA,IAAK,SACL,SAAU,YACZ,EACA,kBAAmB,CACjB,KAAM,qBACN,MAAO,CACL,OAAQ,WACR,UAAW,GACX,YAAa,CACX,SAAU,CACR,UAAW,CAAA,EACX,SAAU,gCACZ,CACF,EACA,cAAe,eACf,QAAS,CACP,CACE,YAAa,qCACb,IAAK,UACP,EACA,CACE,YAAa,kCACb,IAAK,cACP,EACA,CACE,YAAa,kCACb,IAAK,aACP,EACA,CACE,YAAa,yBACb,IAAK,WACP,EACA,CACE,YAAa,WACb,IAAK,UACP,EACD,CACD,aAAc,CACZ,YAAa,WACb,IAAK,UACP,CACF,EACA,IAAK,oBACL,SAAU,mBACZ,EAEA,UAAW,CACT,KAAM,aACN,MAAO,CACL,OAAQ,SACR,UAAW,GACX,SAAU,CAAA,EACV,aAAc,KAChB,EACA,IAAK,YACL,SAAU,WACZ,EACA,kBAAmB,CACjB,KAAM,qBACN,MAAO,CACL,OAAQ,aACR,UAAW,GACX,SAAU,CAAA,EACV,aAAc,oBAChB,EACA,IAAK,oBACL,SAAU,mBACZ,EACA,6BAA8B,CAC5B,KAAM,cACN,MAAO,CACL,OAAQ,YACR,UAAW,GACX,SAAU,CAAA,EACV,aAAc,yDAChB,EACA,IAAK,+BACL,SAAU,8BACZ,EACA,6BAA8B,CAC5B,KAAM,wJACN,MAAO,CACL,OAAQ,QACR,UAAW,GACX,YAAa,CACX,SAAU,CACR,UAAW,CAAA,EACX,SAAU,mBACZ,CACF,EACA,cAAe,eACf,QAAS,CACP,CACE,YAAa,MACb,IAAK,KACP,EACA,CACE,YAAa,KACb,IAAK,IACP,EACD,AACH,EACA,IAAK,+BACL,SAAU,8BACZ,EACA,cAAe,CACb,KAAM,6BACN,MAAO,CACL,OAAQ,WACR,MAAO,CACL,YAAa,QACf,EACA,YAAa,CACX,SAAU,CACR,UAAW,CAAA,EACX,SAAU,mBACZ,CACF,EACA,cAAe,eACf,QAAS,CACP,CACE,YAAa,WACb,IAAK,UACP,EACA,CACE,YAAa,eACb,IAAK,aACP,EACA,CACE,YAAa,WACb,IAAK,UACP,EACD,AACH,EACA,IAAK,gBACL,SAAU,eACZ,EACA,eAAgB,CACd,KAAM,kBACN,MAAO,CACL,OAAQ,QACR,MAAO,CACL,YAAa,wBACb,KAAM,MACR,EACA,YAAa,CACX,SAAU,CACR,UAAW,CAAA,EACX,SAAU,6BACZ,EACA,UAAW,CACT,OAAQ,EACR,SAAU,gDACZ,EACA,UAAW,CACT,OAAQ,EACR,SAAU,gDACZ,CACF,CACF,EACA,IAAK,iBACL,SAAU,gBACZ,EACA,YAAa,CACX,KAAM,qBACN,MAAO,CACL,OAAQ,QACR,MAAO,CACL,YAAa,qBACb,KAAM,MACR,EACA,YAAa,CACX,SAAU,CACR,UAAW,CAAA,EACX,SAAU,0BACZ,EASA,QAAS,CACP,MAAM,wFACN,SAAU,mCACZ,CACF,CACF,EACA,IAAK,cACL,SAAU,aACZ,EACA,kBAAmB,CACjB,KAAM,qBACN,MAAO,CACL,OAAQ,QACR,MAAO,CACL,YAAa,qBACb,KAAM,MACR,EACA,YAAa,CACX,SAAU,CACR,UAAW,CAAA,EACX,SAAU,6BACZ,EASA,QAAS,CACP,MAAM,wFACN,SAAU,mCACZ,CACF,CACF,EACA,IAAK,cACL,SAAU,aACZ,EACA,kBAAmB,CACjB,KAAM,qBACN,MAAO,CACL,OAAQ,QACR,MAAO,CACL,YAAa,qBACb,KAAM,MACR,EACA,YAAa,CACX,SAAU,CACR,UAAW,CAAA,EACX,SAAU,2BACZ,EASA,QAAS,CACP,MAAM,wFACN,SAAU,2CACZ,CACF,CACF,EACA,IAAK,cACL,SAAU,aACZ,EACA,kBAAmB,CACjB,KAAM,qBACN,MAAO,CACL,OAAQ,QACR,MAAO,CACL,YAAa,qBACb,KAAM,MACR,EACA,YAAa,CACX,SAAU,CACR,UAAW,CAAA,EACX,SAAU,sCACZ,EASA,QAAS,CACP,MAAM,wFACN,SAAU,sCACZ,CACF,CACF,EACA,IAAK,cACL,SAAU,aACZ,EACA,kBAAmB,CACjB,KAAM,qBACN,MAAO,CACL,OAAQ,QACR,MAAO,CACL,YAAa,qBACb,KAAM,MACR,EACA,YAAa,CACX,SAAU,CACR,UAAW,CAAA,EACX,SAAU,gCACZ,EASA,QAAS,CACP,MAAM,wFACN,SAAU,gDACZ,CACF,CACF,EACA,IAAK,cACL,SAAU,aACZ,EACA,kBAAmB,CACjB,KAAM,qBACN,MAAO,CACL,OAAQ,QACR,MAAO,CACL,YAAa,qBACb,KAAM,MACR,EACA,YAAa,CACX,SAAU,CACR,UAAW,CAAA,EACX,SAAU,wCACZ,EASA,QAAS,CACP,MAAM,wFACN,SAAU,+CACZ,CACF,CACF,EACA,IAAK,cACL,SAAU,aACZ,EACA,kBAAmB,CACjB,KAAM,qBACN,MAAO,CACL,OAAQ,QACR,MAAO,CACL,YAAa,qBACb,KAAM,MACR,EACA,YAAa,CACX,SAAU,CACR,UAAW,CAAA,EACX,SAAU,4BACZ,EASA,QAAS,CACP,MAAM,wFACN,SAAU,uCACZ,CACF,CACF,EACA,IAAK,cACL,SAAU,aACZ,EACA,kBAAmB,CACjB,KAAM,qBACN,MAAO,CACL,OAAQ,QACR,MAAO,CACL,YAAa,qBACb,KAAM,MACR,EACA,YAAa,CACX,SAAU,CACR,UAAW,CAAA,EACX,SAAU,sCACZ,EASA,QAAS,CACP,MAAM,wFACN,SAAU,wCACZ,CACF,CACF,EACA,IAAK,cACL,SAAU,aACZ,EACA,kBAAmB,CACjB,KAAM,qBACN,MAAO,CACL,OAAQ,QACR,MAAO,CACL,YAAa,qBACb,KAAM,MACR,EACA,YAAa,CACX,SAAU,CACR,UAAW,CAAA,EACX,SAAU,yBACZ,EASA,QAAS,CACP,MAAM,wFACN,SAAU,qCACZ,CACF,CACF,EACA,IAAK,cACL,SAAU,aACZ,EACA,gBAAiB,CACf,KAAM,oBACN,MAAO,CACL,OAAQ,WACR,MAAO,CACL,YAAa,0BACf,EACA,YAAa,CACX,SAAU,CACR,UAAW,CAAA,EACX,SAAU,+BACZ,CACF,EACA,cAAe,eACf,QAAS,CACP,CACE,YAAa,SACb,IAAK,QACP,EACA,CACE,YAAa,aACb,IAAK,MACP,EACD,CACD,aAAc,CAAC,CACjB,EACA,IAAK,kBACL,SAAU,iBACZ,EACA,QAAS,CACP,KAAM,qBACN,MAAO,CACL,OAAQ,QACR,MAAO,CACL,YAAa,gBACb,KAAM,MACR,EACA,YAAa,CAAC,CAChB,EACA,IAAK,UACL,SAAU,SACZ,EACA,QAAS,CACP,KAAM,sBACN,MAAO,CACL,OAAQ,QACR,MAAO,CACL,YAAa,gBACb,KAAM,QACR,EACA,YAAa,CACX,UAAW,CACT,OAAQ,EACR,SAAU,yCACZ,EACA,UAAW,CACT,OAAQ,EACR,SAAU,yCACZ,CACF,CACF,EACA,IAAK,UACL,SAAU,SACZ,EAEA,sBAAuB,CACrB,KAAM,qHACN,MAAO,CACL,OAAQ,WACR,MAAO,CACL,YAAa,QACf,EACA,YAAa,CACX,SAAU,CACR,UAAW,CAAA,EACX,SAAU,mBACZ,CACF,EACA,cAAe,eACf,QAAS,CACP,CACE,YAAa,MACb,IAAK,KACP,EACA,CACE,YAAa,KACb,IAAK,IACP,EACD,AACH,EACA,IAAK,wBACL,SAAU,uBACZ,EACA,sBAAuB,CACrB,KAAM,uEACN,MAAO,CACL,OAAQ,WACR,MAAO,CACL,YAAa,QACf,EACA,YAAa,CACX,SAAU,CACR,UAAW,CAAA,EACX,SAAU,mBACZ,CACF,EACA,cAAe,eACf,QAAS,CACP,CACE,YAAa,MACb,IAAK,KACP,EACA,CACE,YAAa,KACb,IAAK,IACP,EACD,AACH,EACA,IAAK,wBACL,SAAU,uBACZ,EACA,mBAAoB,CAClB,KAAM,0CACN,MAAO,CACL,OAAQ,WACR,MAAO,CACL,YAAa,QACf,EACA,YAAa,CACX,SAAU,CACR,UAAW,CAAA,EACX,SAAU,mBACZ,CACF,EACA,cAAe,eACf,QAAS,CACP,CACE,YAAa,MACb,IAAK,KACP,EACA,CACE,YAAa,KACb,IAAK,IACP,EACD,AACH,EACA,IAAK,qBACL,SAAU,oBACZ,EACA,2BAA4B,CAC1B,KAAM,4aACN,MAAO,CACL,OAAQ,WACR,MAAO,CACL,YAAa,QACf,EACA,YAAa,CACX,SAAU,CACR,UAAW,CAAA,EACX,SAAU,mBACZ,CACF,EACA,cAAe,eACf,QAAS,CACP,CACE,YAAa,MACb,IAAK,KACP,EACA,CACE,YAAa,KACb,IAAK,IACP,EACD,CACD,aAAc,CACZ,YAAa,MACb,IAAK,KACP,CACF,EACA,IAAK,6BACL,SAAU,4BACZ,EACA,wBAAyB,CACvB,KAAM,iCACN,QAAS,kEACT,MAAO,CACL,OAAQ,WACR,MAAO,CACL,YAAa,QACf,EACA,YAAa,CACX,SAAU,CACR,UAAW,CAAA,EACX,SAAU,mBACZ,CACF,EACA,cAAe,eACf,QAAS,CACP,CACE,YAAa,MACb,IAAK,KACP,EACA,CACE,YAAa,KACb,IAAK,IACP,EACD,AACH,EACA,IAAK,0BACL,SAAU,yBACZ,EACA,kBAAmB,CACjB,KAAM,kDACN,QAAS,kEACT,MAAO,CACL,OAAQ,WACR,MAAO,CACL,YAAa,QACf,EACA,YAAa,CACX,SAAU,CACR,UAAW,CAAA,EACX,SAAU,mBACZ,CACF,EACA,cAAe,eACf,QAAS,CACP,CACE,YAAa,YACb,IAAK,YACP,EACA,CACE,YAAa,WACb,IAAK,YACP,EACA,CACE,YAAa,UACb,IAAK,WACP,EACD,AACH,EACA,IAAK,oBACL,SAAU,mBACZ,EACA,2BAA4B,CAC1B,KAAM,8CACN,QAAS,kEACT,MAAO,CACL,OAAQ,WACR,MAAO,CACL,YAAa,QACf,EACA,YAAa,CACX,SAAU,CACR,UAAW,CAAA,EACX,SAAU,mBACZ,CACF,EACA,cAAe,eACf,QAAS,CACP,CACE,YAAa,YACb,IAAK,YACP,EACA,CACE,YAAa,WACb,IAAK,YACP,EACA,CACE,YAAa,UACb,IAAK,WACP,EACD,AACH,EACA,IAAK,6BACL,SAAU,4BACZ,EACA,mBAAoB,CAClB,KAAM,8qDACN,MAAO,CACL,OAAQ,WACR,UAAW,GACX,YAAa,CACX,SAAU,CACR,UAAW,CAAA,EACX,SAAU,mBACZ,CACF,EACA,cAAe,eACf,QAAS,CACP,CACE,YACE,2DACF,IAAK,KACP,EACD,AACH,EACA,IAAK,qBACL,SAAU,oBACZ,EACA,mCAAoC,CAClC,KAAM,gIACN,MAAO,CACL,OAAQ,SACR,UAAW,OACX,MAAO,CAAC,EACR,YAAa,CACX,SAAU,CACR,UAAW,CAAA,EACX,SAAU,mBACZ,CACF,CACF,EACA,IAAK,qCACL,SAAU,oCACZ,EACA,4BAA6B,CAC3B,KAAM,yIACN,MAAO,CACL,OAAQ,SACR,UAAW,OACX,MAAO,CAAC,EACR,YAAa,CACX,SAAU,CACR,UAAW,CAAA,EACX,SAAU,mBACZ,CACF,CACF,EACA,IAAK,8BACL,SAAU,6BACZ,CACF,EAIa,EAAa,CACxB,OAAQ,SACR,WAAY,YACd,EAEa,EAAoB,0CAEpB,EAAc,cAEd,EAAmB,gBAEnB,EAAkB,2DAIlB,EAAiB,gBAEjB,EAAsB,cAEtB,EAAgB,CAC3B,KAAM,CACJ,GAAG,CACD,KAAM,MACR,EACA,GAAG,CACD,KAAM,OACR,EACA,MAAO,EACP,OAAQ,YACV,EACA,SAAU,CACR,GAAG,CACD,KAAK,UACP,EACA,GAAG,CACD,KAAK,YACP,EACA,MAxBF,mFAyBE,OAAQ,gBACV,EACA,OAAQ,CACN,GAAG,CACD,KAAK,QACP,EACA,GAAG,CACD,KAAK,OACP,EACA,MAAO,EACP,OAAQ,YACV,CACF,EDtoDA,IAAA,EAzkBA,MACI,YAAY,CAAK,CAAE,CACjB,IAAI,CAAC,KAAK,CAAI,CAChB,CAEA,sBAAsB,CAAQ,CAAC,CAC7B,GAAG,GAAU,eAAe,UAC1B,GAAO,GAAU,eAAe,YACzB,YACH,IAAI,EAAkB,YAAY,KACN,YAAvB,SAAS,UAAU,GACpB,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,GACpC,cAAc,GAGlB,EAAE,UAIF,IAAI,EAAM,SAAS,aAAa,CAAC,GAAU,eAAe,UAC1D,GAAG,EAAI,CACL,IAAI,EAAa,SAAS,aAAa,CAAC,OACxC,CAAA,EAAW,KAAK,CAAC,OAAO,CAAG,8DACxB,CAAC,EAAI,KAAK,CAAC,QAAQ,GACpB,EAAI,KAAK,CAAC,QAAQ,CAAG,WACkB,SAApC,EAAS,aAAa,CAAC,SAAS,EAAe,EAAI,YAAY,CAAC,UACjE,EAAI,YAAY,CAAC,UAAW,EAAI,YAAY,CAAC,SAC7C,EAAI,eAAe,CAAC,UAGxB,IAAI,EAAM,IAAI,CACd,EAAW,gBAAgB,CAAC,EAAS,aAAa,CAAC,SAAS,CAAE,SAAS,CAAK,EAC1E,EAAM,eAAe,GAClB,EAAS,aAAa,CAAC,iBAAiB,CACtC,EAAW,YAAY,CAAC,YACzB,EAAW,YAAY,CAAC,OAAQ,EAAW,YAAY,CAAC,YAE1D,EAAI,aAAa,CAAC,IAAI,MAAM,EAAS,aAAa,CAAC,SAAS,GAE9D,EAAM,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,EAAU,EACjD,GACA,EAAI,WAAW,CAAC,EAClB,GAKR,CACA,sBAAsB,CAAU,CAAC,CAC/B,IAAI,EACJ,GAAG,EAAW,aAAa,CACxB,EAAM,SAAS,aAAa,CAAC,EAAW,aAAa,CAAC,QAAQ,OAG/D,GADA,EAAM,SAAS,aAAa,CAAC,wBAAwB,EAAW,kBAAkB,CAAC,MAEjF,OAAO,EASX,GANI,GACF,CAAA,EAAM,SAAS,aAAa,CAAC,qBAA7B,GAEE,CAAA,EAAM,SAAS,aAAa,CAAC,WAD/B,EAIC,EAAI,CACL,GAAG,AAA4B,WAA5B,EAAW,aAAa,CAEzB,AADA,CAAA,EAAM,EAAI,OAAO,CAAC,IAAqB,CAAvC,EACI,SAAS,CAAC,GAAG,CAAC,0BACf,CACH,IAAI,EAAO,EAAI,aAAa,CAAC,GACzB,EAAY,SAAS,aAAa,CAAC,OACvC,EAAU,SAAS,CAAC,GAAG,CAAC,sBACrB,AAAQ,MAAR,GACE,EAAI,SAAS,CAAC,QAAQ,CAAC,sBAAyB,EAAI,SAAS,CAAC,QAAQ,CAAC,WACxE,EAAI,YAAY,CAAC,EAAW,GAG5B,EAAK,WAAW,CAAC,GACjB,EAAM,GAGO,MAAR,GACJ,CAAA,EAAI,SAAS,CAAC,QAAQ,CAAC,sBAAwB,EAAI,SAAS,CAAC,QAAQ,CAAC,UAAA,IACvE,EAAI,WAAW,CAAC,GAChB,EAAM,EAKZ,CACA,EAAI,YAAY,CAAC,qBAAsB,EAAW,kBAAkB,EACpE,EAAI,YAAY,CAAC,aAAc,EAAW,UAAU,CACtD,CACA,OAAO,CACT,CACA,uBAAuB,CAAU,CAAC,CAChC,OAAO,SAAS,aAAa,CAAC,wBAAwB,EAAW,kBAAkB,CAAC,KACtF,CACA,eAAe,CAAU,CAAE,CACzB,IAAI,EACD,GACD,CAAA,EAAM,IAAI,CAAC,qBAAqB,CAAC,EAAjC,IAEK,EAAW,MAAS,EAAI,EAAW,MAAS,CAAC,YAAe,EAAI,EAAW,MAAS,CAAC,YAAe,CAAC,IAAO,CAE7G,IAAI,CAAC,YAAY,CAAC,EAAW,EAAW,MAAS,CAAC,YAAe,CAAE,GAEnE,IAAI,CAAC,YAAY,CAAC,EAAY,GAItC,CACA,aAAa,CAAU,CAAC,CAAY,CAAE,CAAG,CAAC,CACxC,EAAI,SAAS,CAAG,GAChB,SAAS,YAAY,CAAC,wBAAwB,CAC5C,YAAa,CAAA,CACf,GACA,IAAI,EAAa,MAAM,UAAU,EAAK,EAAa,IAAI,CACvD,EAAa,IAAI,CAAC,kBAAkB,CAAC,EAAY,GAEjD,IAAI,EAAO,SAAS,aAAa,CAAC,OAGlC,GAFA,EAAK,SAAS,CAAG,EAEd,AADc,IAAI,EAAK,gBAAgB,CAAC,qBAAqB,CAClD,MAAM,EACf,CAAE,CAAA,EAAK,aAAa,CAAC,kCAAoC,EAAK,aAAa,CAAC,oCAAsC,EAAK,aAAa,CAAC,0CAA4C,EAAK,aAAa,CAAC,qCAAA,EAAuC,CAC5O,IAAI,EAAW,SAAS,aAAa,CAAC,OACtC,EAAS,YAAY,CAAC,kBAAmB,YACzC,IAAI,EAAa,SAAS,aAAa,CAAC,OACxC,EAAW,YAAY,CAAC,kBAAmB,cAC3C,EAAK,aAAa,CAAC,wBAAwB,WAAW,CAAC,GACvD,EAAK,aAAa,CAAC,wBAAwB,WAAW,CAAC,GACvD,EAAa,EAAK,SAAS,AAC7B,CAEF,EAAI,SAAS,CAAG,EAChB,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,EAAW,kBAAkB,CAAC,EAAa,GAAG,EACnF,IAAI,EAAW,EAAI,gBAAgB,CAAC,iDACpC,EAAU,IAAI,EAAQ,CACtB,IAAI,EAAoB,CAAC,EACrB,EAAW,CAAC,CAChB,CAAA,EAAa,QAAW,EAAI,EAAa,QAAW,CAAC,OAAO,CAAC,AAAA,IAC3D,CAAQ,CAAC,EAAI,QAAQ,CAAC,CAAG,EAAI,UAAU,AACzC,GACA,EAAQ,OAAO,CAAC,AAAA,IACd,IAAI,EAAW,EAAI,YAAY,CAAC,wBAA0B,EAAI,YAAY,CAAC,wBAE3E,CAAA,CAAiB,CADjB,EAAW,EAAS,IAAI,GACG,CAAI,CAAQ,CAAC,EAAS,EAAK,IAAI,AAAC,CAAA,AAAc,IAAd,KAAK,MAAM,EAAG,EAAS,OAAO,CAAC,GAC1F,QAAQ,GAAG,CAAC,4BAA6B,EAAU,CAAiB,CAAC,EAAS,EAC9E,EAAI,YAAY,CAAC,EAAY,CAAiB,CAAC,EAAS,CAC1D,GACA,IAAI,EAAgB,CAAC,EACjB,EAAe,MAAM,YAAY,EAAI,CAAC,EAEvC,GACD,EAAa,QAAW,EAAI,EAAa,QAAW,CAAC,OAAO,CAAC,AAAA,IACxD,EAAS,QAAQ,EAAI,EAAS,OAAU,EACzC,CAAA,CAAa,CAAC,CAAiB,CAAC,EAAS,QAAQ,CAAC,CAAC,CAAG,CAAC,OAAO,EAAS,OAAU,AAAA,CAAA,EAEhF,EAAa,YAAe,EAC7B,CAAA,CAAY,CAAC,CAAiB,CAAC,EAAS,QAAQ,CAAC,CAAC,CAAG,EAAa,YAAe,AAAf,CAEtE,GAGF,MAAM,YAAY,CAAG,EAErB,SAAS,iBAAiB,CAAC,EAAS,GACpC,IAAI,CAAC,iCAAiC,CAAC,EAAY,GACnD,IAAI,CAAC,gBAAgB,CAAC,EAAY,GAClC,IAAI,CAAC,gBAAgB,CAAC,EAAI,GAC1B,IAAI,EAAQ,EACR,EAAgB,YAAY,KAC3B,GAAY,QAAQ,cAAc,cAAc,UACjD,EAAW,MAAM,CAAC,YAAY,CAAC,YAAY,EAAE,UAAU,QAAQ,AAAA,IAC7D,IAAI,EAAQ,SAAS,aAAa,CAAC,EAAa,QAAQ,EACrD,GACD,cAAc,GACd,EAAK,gBAAgB,CAAC,EAAa,IAAI,CAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAa,MAAM,CAAE,EAAI,KACxF,EAAQ,IACf,cAAc,EAElB,GACO,EAAQ,IACf,cAAc,GAEhB,GACF,EAAG,KACH,SAAS,EAAE,EAEb,CACA,iBAAiB,CAAG,CAAE,CAAU,CAAE,CAEhC,IAAI,EAAW,AADS,SAAS,aAAa,CAAC,uBACd,gBAAgB,CCghEjB,gCD9gE5B,EAAc,AAAC,GAAY,EAAQ,QAAQ,CAAC,MAAM,CAAG,EAEzD,GAAG,AAAkB,GAAlB,EAAS,MAAM,CAChB,IAAI,CAAC,mBAAmB,CAAC,EAAK,OAE3B,CAEH,IAAI,EAAe,EAAE,CACjB,EAAQ,EACZ,EAAS,OAAO,CAAC,AAAA,IACf,EAAa,IAAI,CAAC,EAAQ,YAAY,CAAC,GACzC,GACA,IAAI,EAAc,KAChB,GAAK,EAAa,MAAM,CAIlB,CAAA,GAAG,EAAO,EAAE,CAChB,cAAc,GACd,IAAI,CAAC,mBAAmB,CAAC,EAAK,GAC9B,MACF,CAAA,KAR0B,CACxB,cAAc,GACd,IAAI,CAAC,mBAAmB,CAAC,EAAK,GAC9B,MACF,CAKA,EAAS,OAAO,CAAC,AAAA,IACf,IAAI,EAAa,EAAQ,YAAY,CAAC,GAClC,EAAa,QAAQ,CAAC,IAAgB,EAAY,IACpD,CAAA,EAAe,EAAa,MAAM,CAAC,AAAA,GAAM,IAAO,EADlD,CAGF,GAEA,GACF,EACI,EAAa,YAAY,KAC3B,GACF,EAAG,IACL,CACF,CACA,oBAAoB,CAAG,CAAC,CAAU,CAAC,CAE7B,AADQ,SAAS,gBAAgB,CC2+DT,oBD1+DlB,OAAO,CAAC,AAAA,IACd,EAAK,gBAAgB,CAAC,QAAS,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAE,AAAA,EAAc,IAAI,CAAC,MAAM,CAAE,EAAK,GAC/F,EACJ,CACA,aAAa,CAAU,CAAE,CAAG,CAAC,CACxB,GAAc,EAAW,MAAM,GAC7B,EAAW,MAAM,CAAC,SAAS,EAC5B,IAAI,CAAC,uBAAuB,CAAC,EAAW,MAAM,CAAC,SAAS,CAAE,EAAK,GAEjE,IAAI,CAAC,iCAAiC,CAAC,EAAY,GACnD,IAAI,CAAC,gBAAgB,CAAC,EAAY,GAGtC,CACA,iBAAiB,CAAU,CAAE,CAAG,CAAE,CAAgB,CAAC,CACjD,IAAI,EAAS,EAAoB,EAAiB,eAAe,CAAI,EAAW,MAAM,EAAE,cAAc,cAAc,gBAChH,EAAsB,EAAmB,EAAiB,mBAAmB,CAAI,EAAW,MAAM,EAAE,cAAc,cAAc,qBAAuB,GAC3J,GAAG,EAAO,CACR,IAAI,EACJ,GAAG,EAAI,aAAa,CAAC,mBAEnB,AADA,CAAA,EAAY,EAAI,aAAa,CAAC,kBAA9B,EACU,SAAS,CAAC,GAAG,CAAC,kBACxB,EAAU,QAAQ,CAAC,EAAE,CAAC,SAAS,CAAG,OAC/B,CACH,IAAI,EAAa,SAAS,aAAa,CAAC,OACxC,EAAU,YAAY,CAAC,QAAQ,2FAC5B,EAAI,aAAa,CAAC,mBACnB,EAAI,aAAa,CAAC,kBAAkB,WAAW,CAAC,GAElD,IAAI,EAAO,SAAS,aAAa,CAAC,OAClC,EAAK,YAAY,CAAC,QAAQ,8JAE1B,EAAU,WAAW,CAAC,GACtB,EAAY,CACd,CACI,GAAY,QAAQ,cACtB,GAAG,KAAK,CAAC,aAAa,CAAC,wBAAwB,CAC7C,SACA,8DACA,IACA,GACA,AAAC,IACI,GACD,CAAA,EAAO,SAAS,CAAG,GAAY,QAAQ,YADzC,CAEF,GAKD,EAAO,YAAY,EACpB,IAAI,CAAC,SAAS,CAAC,WAAY,EAAW,EAAK,EAAY,GAEtD,EAAO,QAAQ,EAEhB,IAAI,CAAC,SAAS,CAAC,OAAQ,EAAW,EAAK,EAAY,GAElD,CAAA,EAAW,WAAW,EAAI,EAAO,WAAW,AAAX,GAClC,IAAI,CAAC,SAAS,CAAC,SAAU,EAAW,EAAK,EAAY,GAEpD,GAAuB,GACxB,CAAA,EAAU,KAAK,CAAC,eAAe,CAAG,CADpC,CAGF,CAEF,CACA,UAAU,CAAI,CAAE,CAAS,CAAE,CAAG,CAAE,CAAU,CAAE,CAAgB,CAAC,CAC3D,IAAI,EAAS,AAAA,CAAa,CAAC,EAAK,CAC5B,EAAM,SAAS,aAAa,CAAC,UACjC,EAAI,YAAY,CAAC,OAAO,UACxB,IAAI,EAAS,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,AACvC,CAAA,EAAI,SAAS,CAAG,AAAQ,QAAR,EAAkB,GAAY,QAAQ,iBAAmB,CAAM,CAAC,EAAO,EAAE,MAAQ,GAAQ,KAAS,CAAM,CAAC,EAAO,EAAE,MAAQ,GAAQ,KAC/I,CAAA,AAAiB,IAAjB,EAAI,SAAS,EAAU,AAAiB,KAAA,GAAjB,EAAI,SAAS,EAAiB,AAAiB,aAAjB,EAAI,SAAS,AAAI,GACvE,CAAA,EAAI,SAAS,CAAG,MADlB,EAGA,EAAI,YAAY,CAAC,QAAQ,EAAO,KAAK,EACrC,EAAU,QAAQ,CAAC,EAAE,CAAC,WAAW,CAAC,GAC/B,GAAoB,EAAiB,QAAQ,CAC9C,EAAI,gBAAgB,CAAC,QAAS,EAAiB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAO,MAAM,CAAC,EAAK,IAErF,EAAI,gBAAgB,CAAC,QAAS,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAO,MAAM,CAAC,EAAK,GAElF,CACA,wBAAwB,CAAS,CAAE,CAAG,CAAE,CAAW,CAAC,CAClD,EAAU,OAAO,CAAC,AAAA,IAChB,GAAG,EAAK,QAAQ,CAAC,CACf,IAAI,EAAc,EAAI,aAAa,CAAC,EAAK,QAAQ,EAC9C,GAAe,EAAK,MAAM,EAAI,AAAoB,YAApB,EAAK,MAAM,CAAC,IAAI,EAC7C,EAAY,gBAAgB,CAAC,EAAK,IAAI,CAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAa,EAAK,MAAM,EAEnG,CACF,EACF,CACA,MAAM,cAAc,CAAW,CAAE,CAAM,CAAC,CACtC,GAAG,AAAqB,QAArB,EAAO,UAAU,CAAW,CAC7B,IAAI,EAAO,CAAC,EACZ,OAAO,IAAI,CAAC,EAAO,OAAO,EAAE,OAAO,CAAC,AAAA,IAClC,IAAI,EAAM,EAAO,OAAO,CAAC,EAAQ,CAAC,KAAQ,CAAC,KAAK,CAAC,KAC7C,EAAQ,EAAY,eAAe,CACvC,EAAK,OAAO,CAAC,AAAA,IACX,EAAQ,EAAQ,CAAK,CAAC,EAAK,CAAG,EAChC,GACA,CAAI,CAAC,EAAQ,CAAE,CACjB,GACA,IAAM,EAAW,MAAM,MAAM,EAAO,QAAQ,CAAE,CAC5C,OAAQ,EAAO,UAAU,CACzB,KAAK,KAAK,SAAS,CAAC,EACtB,EACA,OAAM,EAAS,IAAI,EACrB,CACF,CACA,SAAS,CAAU,CAAC,CAClB,IAAI,EAAM,IAAI,CAAC,sBAAsB,CAAC,GACtC,IAAI,CAAC,YAAY,CAAC,EAAY,EAChC,CACA,cAAc,CAAI,CAAC,CAAG,CAAC,CAAU,CAAE,CAAmB,CAAC,CACrD,OAAO,GACL,IAAK,aACL,IAAK,iBACL,IAAK,aAEE,GAAW,CAAC,EAAQ,SAAS,CAC9B,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,aAAa,CAAC,EAAK,EAAW,GAGtD,IAAI,CAAC,gBAAgB,CALT,CAAC,EAKiB,EAAI,EAAM,EAAY,AAAC,IAChD,EAAQ,SAAS,EAAI,EAAQ,MAAM,CAAC,SAAS,EAC9C,CAAA,EAAc,KAAK,CAAG,EAAQ,MAAM,CAAC,SAAS,AAAT,EAEvC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,aAAa,CAAC,EAAK,EAAW,EACxD,GAIJ,KACF,KAAK,gBACL,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,aAAa,CAAC,EAAK,EAAW,CAAC,EAEzD,CACF,CACA,iBAAiB,CAAO,CAAC,CAAG,CAAE,CAAI,CAAC,CAAU,CAAE,CAAiB,CAAC,CAE/D,QAAQ,GAAG,CAAC,aAAc,GAC1B,IAAI,EAAc,EAAG,EAAmB,EAAG,EAAgB,CAAA,EAE3D,GAAY,QAAQ,cAAc,SAAS,QAAQ,AAAA,IAC9C,EAAK,QAAQ,EAAI,AAAa,cAAb,EAAK,IAAI,EAC3B,GAEJ,GAEG,EAAc,EAEf,SAAS,YAAY,CAAC,wBAAwB,CAC5C,GAAI,AAAC,IASC,GARF,IACK,EAAW,IAAI,EAAI,EAAW,IAAO,CAAC,IAAO,EAAI,CAAC,EAAW,IAAO,CAAC,IAAO,CAAC,SAAY,CACxF,EAAgB,CAAA,EACX,EAAW,IAAI,EAAI,EAAW,IAAO,CAAC,IAAO,EAAI,EAAW,IAAO,CAAC,IAAO,CAAC,SAAY,CAC7F,EAAU,CAAC,GAAG,CAAO,CAAC,GAAG,EAAW,IAAO,CAAC,IAAO,CAAC,QAAW,AAAA,EAC1D,EAAW,IAAI,EAAI,CAAC,EAAW,IAAO,CAAC,IAAO,EAAI,OAAO,IAAI,CAAC,EAAW,IAAI,EAAE,MAAM,EAC1F,CAAA,EAAU,CAAC,GAAG,CAAO,CAAE,GAAG,EAAW,IAAO,AAAA,CAAA,EAE7C,GAAe,GAEV,CAAA,GAAiB,AAAQ,kBAAR,CAAQ,EAAiB,CAE5C,IAAI,EAAW,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,CAAE,AAAQ,kBAAR,GAEpD,GAAG,EAAS,KAAK,EAAI,AAAQ,kBAAR,EAAyB,CAC5C,EAAU,CAAC,GAAG,CAAO,CAAE,GAAG,EAAS,QAAQ,AAAA,EAE3C,IAAI,EAAa,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,kBAAkB,CAAC,EAAW,UAAU,EAClF,GAAG,GAAc,GACZ,EAAQ,QAAQ,CAAC,CAClB,IAAI,EAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,mBAAmB,CAAC,GACrD,GACD,CAAA,CAAI,CAAC,EAAW,IAAO,CAAC,CAAI,CAD9B,EAGA,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,mBAAmB,CAAC,EAAY,EAC3D,CAGF,IAAI,CAAC,sBAAsB,CAAC,EAAY,EAAK,GAC7C,EAAkB,EACpB,CAGJ,CAKR,EACA,OAAQ,CACV,GAQA,IAAI,CAAC,+BAA+B,CAAC,EAAY,EAAK,EAAS,EAAK,EAGxE,CACA,gCAAgC,CAAU,CAAE,CAAG,CAAE,CAAO,CAAC,CAAI,CAAE,CAAiB,CAAC,CAC/E,GAAG,SAAS,aAAa,CAAC,gBAAgB,CACxC,IAAI,EAAW,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,AAAQ,kBAAR,EAChD,CAAA,EAAS,KAAK,GACf,EAAU,CAAC,GAAG,CAAO,CAAE,GAAG,EAAS,QAAQ,AAAA,EAC3C,IAAI,CAAC,sBAAsB,CAAC,EAAY,EAAK,GAC7C,EAAkB,GAGtB,MACE,IAAI,CAAC,sBAAsB,CAAC,EAAY,EAAK,GAC7C,EAAkB,EAGtB,CACA,uBAAuB,CAAU,CAAE,CAAG,CAAE,CAAO,CAAC,CAE9C,AADU,EAAI,gBAAgB,CAAC,kBAC3B,OAAO,CAAC,AAAA,IACV,CAAO,CAAC,EAAG,YAAY,CAAC,QAAQ,CAAG,EAAG,KAAK,AAC7C,GACG,GAAY,eACb,EAAW,aAAa,CAAC,OAAO,CAAC,AAAA,IAC5B,EAAE,KAAK,EACR,CAAA,CAAO,CAAC,EAAE,GAAG,CAAC,CAAG,EAAE,KAAK,AAAL,CAEvB,EAEJ,CACA,aAAa,CAAK,CAAC,CACjB,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAM,MAAM,CAAC,KAAK,CAC9C,CAEA,kCAAkC,CAAU,CAAE,CAAG,CAAC,CAIhD,GAHG,EAAW,QAAQ,EACpB,EAAW,QAAQ,CAAC,UAAU,GAE7B,EAAW,aAAa,CAAC,CAO1B,IAAI,EAAQ,IAAI,CAwCZ,EAAW,IAAI,iBAtCF,SAAU,CAAa,CAAE,CAAQ,EACpC,EAAc,IAAI,CAAC,AAAA,GAAO,AAAa,aAAb,EAAK,IAAI,GAG7C,AADU,EAAI,gBAAgB,CAAC,kBAC3B,OAAO,CAAC,AAAA,IACV,GAAG,OAAO,iBAAiB,CAAC,GAAI,OAAU,CAAC,CACzC,IAAI,EAAgB,OAAO,iBAAiB,CAAC,GAAI,OAAU,CACvD,EAAQ,CAAA,EACZ,EAAc,OAAO,CAAC,AAAA,IACjB,EAAS,QAAQ,EAAI,AAAiD,IAAjD,EAAS,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,iBACrD,CAAA,EAAQ,CAAA,CADV,CAGF,GACI,GACF,EAAG,gBAAgB,CAAC,UAAW,EAAM,YAAY,CAAC,IAAI,CAAC,GAE3D,MACE,EAAG,gBAAgB,CAAC,UAAW,EAAM,YAAY,CAAC,IAAI,CAAC,GAM3D,GAKF,EAAW,aAAa,CAAC,OAAO,CAAC,AAAA,IAC/B,GAAG,EAAK,QAAQ,CAAC,CACf,IAAI,EAAM,EAAI,aAAa,CAAC,EAAK,QAAQ,EACtC,GACD,CAAA,EAAK,KAAK,CAAG,EAAI,KAAK,AAAL,CAErB,CACF,GACA,QAAQ,GAAG,CAAC,KACd,GAGA,EAAS,OAAO,CAAC,EAhDJ,CACX,WAAY,CAAA,EACZ,UAAW,CAAA,EACX,cAAe,CAAA,EACf,QAAS,CAAA,CACX,GA4CA,EAAW,QAAQ,CAAG,CACxB,CAGF,CACA,mBAAmB,CAAO,CAAE,CAAM,CAAC,CAE9B,GAAQ,cAAc,cAAc,aACrC,IAAI,CAAC,+BAA+B,CAAC,EAAQ,KAC3C,SAAS,YAAY,CAAC,qBAAqB,CAAC,YAAa,GAAQ,cAAc,cAAc,WAAW,EAC1G,EAGJ,CACA,gCAAgC,CAAG,CAAE,CAAE,CAAC,CAGtC,IAAI,EAAQ,EACR,EAAY,YAAY,KAC1B,IAAI,EAAO,EAAI,gBAAgB,CAAC,yBAChC,GAAG,EAAK,MAAM,CAAG,EAAE,CACf,IAAI,EAAM,IAAI,EAAK,AAGf,CADJ,CAAA,EAAM,EAAI,MAAM,CAAC,AAAA,GAAK,CAAC,EAAI,aAAa,CAAC,kBAAzC,EACQ,MAAM,CAGL,EAAQ,IACf,cAAc,IAHd,cAAc,GACd,IAIN,CACC,GAEH,EAAG,IACL,CACA,mBAAmB,CAAU,CAAE,CAAU,CAAC,CAEtC,IAAI,EAAU,EAAW,KAAK,CAAC,kBAO/B,OANG,GAAW,EAAQ,MAAM,EAC1B,EAAQ,OAAO,CAAC,AAAA,IAEd,EAAc,IAAI,CAAC,aAAa,CAAC,EAAK,EAAY,EAAW,eAAe,CAC9E,GAEK,CAGX,CACA,cAAc,CAAW,CAAE,CAAU,CAAE,CAAe,CAAE,CACtD,OAAO,GACL,IAAK,eACH,EAAa,EAAW,UAAU,CAAC,EAAa,GAAiB,QAAQ,UACzE,KACF,KAAK,gBACH,EAAa,EAAW,UAAU,CAAC,EAAa,GAAiB,QAAQ,SAAS,UAEtF,CACA,OAAO,CACT,CACJ,EEhJA,EArbA,MACE,UAAY,CAAC,CAAE,AAEf,aAAY,CAAK,CAAE,CACjB,IAAI,CAAC,KAAK,CAAG,CAGf,CACA,MAAM,YAAY,CAAQ,CAAE,CAC1B,GAAI,CAAA,WAAE,CAAU,CAAE,CAAG,EACjB,EAAO,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAChD,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,cAAc,CACnC,CAAC,EACD,CAAE,WAAA,CAAW,EAEX,CAAA,EAAK,aAAgB,EAAI,AAAgC,KAAhC,EAAK,aAAgB,CAAC,MAAM,EACvD,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,EAAK,aAAgB,CAAC,IAAI,CAAE,CAAA,EAEpE,CAEA,YAAY,CAAQ,CAAE,EAAsB,CAAA,CAAI,CAAE,CAUhD,GATI,GACF,OAAO,IAAI,CAAC,SAAS,CAAC,EAAS,UAAU,CAAC,CAAC,aAAgB,CAE7D,IAAI,CAAC,SAAS,CAAC,EAAS,UAAU,CAAC,CAAG,CACpC,GAAG,IAAI,CAAC,SAAS,CAAC,EAAS,UAAU,CAAC,CACtC,GAAG,EAAS,MAAM,CAClB,GAAG,CAAQ,AACb,EACA,OAAO,IAAI,CAAC,SAAS,CAAC,EAAS,UAAU,CAAC,CAAC,MAAS,CAChD,AAA4C,gBAA5C,IAAI,CAAC,SAAS,CAAC,EAAS,UAAU,CAAC,CAAC,IAAI,EAAsB,AAA4C,oBAA5C,IAAI,CAAC,SAAS,CAAC,EAAS,UAAU,CAAC,CAAC,IAAI,CAAwB,CAEhI,GADA,QAAQ,GAAG,CAAC,YAAa,IAAI,CAAC,SAAS,EACpC,AAAyD,SAAzD,IAAI,CAAC,SAAS,CAAC,EAAS,UAAU,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAe,CAAC,OAAO,iBAAiB,CAAC,CAE/F,IAAI,EAAO,IAAI,CAAC,SAAS,CAAC,EAAS,UAAU,CAAC,AAC9C,CAAA,EAAK,MAAM,CAAG,IAAI,CAAC,SAAS,CAAC,EAAS,UAAU,CAAC,CACjD,IAAI,CAAC,YAAY,CAAC,EACpB,CACA,GAAI,AAAyD,cAAzD,IAAI,CAAC,SAAS,CAAC,EAAS,UAAU,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAqB,IAAI,CAAC,SAAS,CAAC,EAAS,UAAU,CAAC,CAAC,eAAkB,CAAC,MAAS,EAAK,IAAI,CAAC,SAAS,CAAC,EAAS,UAAU,CAAC,CAAC,eAAkB,CAAC,MAAS,CAAC,cAAiB,EAAM,AAAyD,SAAzD,IAAI,CAAC,SAAS,CAAC,EAAS,UAAU,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAgB,IAAI,CAAC,SAAS,CAAC,EAAS,UAAU,CAAC,CAAC,eAAkB,CAAC,MAAS,EAAK,IAAI,CAAC,SAAS,CAAC,EAAS,UAAU,CAAC,CAAC,eAAkB,CAAC,MAAS,CAAC,aAAgB,CAAE,CAEtc,IAAK,EAAM,SAAS,aAAa,CAAC,CAAC,aAAa,EAAE,EAAS,UAAU,CAAC,EAAE,CAAC,EACzE,GAAG,EAAI,CACL,IAAI,EAAU,IAAI,CAAC,SAAS,CAAC,EAAS,UAAU,CAAC,CAAC,eAAkB,CAAC,MAAS,CAAC,cAAiB,EAAI,IAAI,CAAC,SAAS,CAAC,EAAS,UAAU,CAAC,CAAC,eAAkB,CAAC,MAAS,CAAC,aAAgB,AACrL,CAAA,EAAI,SAAS,CAAG,CAAC,YAAY,EAAE,EAAQ,8BAA8B,CAAC,CACtE,WAAW,KACT,IAAI,EAAS,SAAS,aAAa,CAAC,cACpC,CAAA,EAAO,MAAM,CAAG,KACd,EAAO,aAAa,CAAC,cAAc,CAAG,CAAA,CACxC,CAEF,EAAG,KAEH,OAAO,gBAAgB,CAAC,UAAU,AAAC,IACX,uBAAnB,EAAK,IAAI,CAAC,KAAK,EAChB,GAAG,KAAK,CAAC,YAAY,CAAC,aAAa,CAAC,aAAa,EAAS,EAAK,IAAI,CAAC,IAAI,CAE5E,GACA,MACF,CAEF,CAOA,GANA,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CACtC,IAAI,CAAC,SAAS,CAAC,EAAS,UAAU,CAAC,EAEU,oBAA5C,IAAI,CAAC,SAAS,CAAC,EAAS,UAAU,CAAC,CAAC,IAAI,EACzC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,UAElC,IAAI,CAAC,SAAS,CAAC,EAAS,UAAU,CAAC,CAAC,MAAS,EAAI,IAAI,CAAC,SAAS,CAAC,EAAS,UAAU,CAAC,CAAC,MAAS,CAAC,mBAAsB,CAAC,CACvH,IAAI,EAAW,YAAY,KACtB,OAAO,gCAAgC,EAAI,OAAO,iBAAiB,GACpE,WAAW,KACT,SAAS,YAAY,CD2oEe,yBC3oEqB,CACvD,oBAAuB,IAAI,CAAC,SAAS,CAAC,EAAS,UAAU,CAAC,CAAC,MAAS,CAAC,mBAAsB,AAC7F,EAEF,EAAG,KAEH,cAAc,GAElB,EAAE,IAEJ,CACF,CAEE,IAAI,CAAC,SAAS,CAAC,EAAS,UAAU,CAAC,EACnC,IAAI,CAAC,SAAS,CAAC,EAAS,UAAU,CAAC,CAAC,YAAe,EAEnD,IAAI,CAAC,aAAa,CAChB,aACA,EACA,IAAI,CAAC,SAAS,CAAC,EAAS,UAAU,CAAC,CAGzC,CACA,eAAe,CAAM,CAAE,CACrB,IAAI,EAAM,GACV,OAAQ,GACN,IAAK,aACH,EAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,CACtC,KACF,KAAK,iBACH,EAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,eAAe,CAC1C,KACF,KAAK,gBACH,EAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,cAAc,AAE7C,CACA,OAAO,CACT,CACA,MAAM,cAAc,CAAI,CAAE,CAAW,CAAE,CAAO,CAAE,CAC9C,OAAQ,GACN,IAAK,aACL,IAAK,iBACL,IAAK,gBACH,IAAI,EAAO,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAChD,IAAI,CAAC,cAAc,CAAC,GACpB,CAAC,EACD,CACE,mBAAoB,EAAY,kBAAkB,CAClD,WAAY,EAAY,UAAU,CAClC,cAAe,CACjB,GAEF,IAAI,EAAc,IAAI,CAAC,cAAc,CAAC,EACtC,CAAA,IAAI,CAAC,SAAS,CAAC,EAAY,UAAU,CAAC,CAAG,CACvC,GAAG,IAAI,CAAC,SAAS,CAAC,EAAY,UAAU,CAAC,CACzC,GAAG,CAAI,CAAC,EAAY,CAAC,IAAI,CACzB,GAAG,CAAI,CAAC,EAAY,CAAC,IAAI,CAAC,MAAM,AAClC,EACA,OAAO,iBAAiB,CAAG,CAAA,EAC3B,IAAI,EAAa,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,kBAAkB,CAC1D,EAAY,UAAU,EAEpB,EAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,mBAAmB,CAAC,EACxD,CAAA,EAAK,kBAAqB,CAAG,EAAY,kBAAkB,CAC3D,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,mBAAmB,CAAC,EAAY,GAEzD,OAAO,IAAI,CAAC,SAAS,CAAC,EAAY,UAAU,CAAC,CAAC,MAAS,CAEvD,IAAI,EAAc,SAAS,aAAa,CACtC,wBAA0B,EAAY,kBAAkB,CAAG,MAEzD,GACF,GAAG,KAAK,CAAC,cAAc,CAAC,kBAAkB,CACxC,EACA,IAAI,CAAC,SAAS,CAAC,EAAY,UAAU,CAAC,CAAC,MAAM,EAIjD,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,CAAI,CAAC,EAAY,CAAC,IAAI,EAE1D,KACF,KAAK,aACH,IAAI,EAAO,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAChD,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,CAChC,CAAC,EACD,CAAE,mBAAoB,EAAY,kBAAkB,AAAC,EAEnD,CAAA,EAAK,WAAc,CAAC,MAAM,AAOlC,CACF,CACA,aAAa,CAAQ,CAAC,CACpB,GACE,GACA,EAAS,eAAkB,EAC3B,EAAS,eAAkB,CAAC,MAAS,EACrC,EAAS,eAAkB,CAAC,MAAS,CAAC,WAAc,EACpD,AAAkD,UAAlD,EAAS,MAAS,CAAC,MAAS,CAAC,KAAQ,CAAC,IAAO,CAC7C,CACA,OAAO,iBAAiB,CAAG,CAAA,EAE3B,SAAS,gBAAgB,CDoiEG,sBCpiEmB,GAAG,KAAK,CAAC,YAAY,CAAC,cAAc,EAGnF,GAAI,CAAA,YAAE,CAAW,CAAE,CAAG,EAAS,eAAkB,CAAC,MAAS,AAC3D,CAAA,MAAM,GAAG,CAAC,QAAQ,CAAG,EACrB,IAAI,EAAU,EACV,EAAkB,YAAY,KAChC,IAAI,EAAW,SAAS,aAAa,CAAC,mBACtC,GAAI,EAAU,CACZ,cAAc,GACd,IAAI,EAAM,SAAS,aAAa,CAAC,OACjC,EAAI,YAAY,CAAC,QAAS,+BAC1B,EAAI,YAAY,CAAC,aAAc,IAAM,KAAK,GAAG,IAC7C,EAAS,OAAO,CAAC,GACjB,IAAI,EAAY,EAAS,aAAa,CAAC,8BACpC,GACD,EAAU,aAAa,CAAC,WAAW,CAAC,GAEtC,SAAS,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,cAuB5B,IAAM,EAAS,IAAI,UACb,EAAgB,EAAY,UAAU,CACzC,OAAO,CAAC,SAAU,KAClB,OAAO,CAAC,SAAU,KAClB,OAAO,CAAC,QAAS,KACjB,OAAO,CAAC,OAAQ,KAChB,OAAO,CAAC,OAAQ,KAChB,OAAO,CAAC,QAAS,MAEd,EAAiB,EAAO,eAAe,CAAC,EAAe,aAE7D,EAAe,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,AAAA,IACrC,GAAI,AAAe,UAAf,EAAI,OAAO,CAAc,CAC3B,IAAI,EAAM,SAAS,aAAa,CAAC,UACjC,EAAI,YAAY,CAAC,OAAQ,EAAI,YAAY,CAAC,SACtC,EAAI,YAAY,CAAC,OACnB,EAAI,YAAY,CAAC,MAAO,EAAI,YAAY,CAAC,QAEzC,EAAI,SAAS,CAAG,EAAI,SAAS,CAE/B,SAAS,IAAI,CAAC,WAAW,CAAC,EAC5B,MAAO,GAAI,AAAe,QAAf,EAAI,OAAO,CAAY,CAChC,IAAI,EAAM,SAAS,aAAa,CAAC,QACjC,EAAI,YAAY,CAAC,MAAO,EAAI,YAAY,CAAC,QAEzC,EAAI,YAAY,CAAC,OAAQ,EAAI,YAAY,CAAC,SAC1C,SAAS,IAAI,CAAC,WAAW,CAAC,EAC5B,CAEF,GAEA,EAAe,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,AAAA,IACrC,GAAI,AAAe,UAAf,EAAI,OAAO,CAAc,CAC3B,IAAI,EAAM,SAAS,aAAa,CAAC,UACjC,EAAI,YAAY,CAAC,OAAQ,EAAI,YAAY,CAAC,SACtC,EAAI,YAAY,CAAC,OACnB,EAAI,YAAY,CAAC,KAAM,EAAI,YAAY,CAAC,OAEtC,EAAI,YAAY,CAAC,iBACnB,EAAI,YAAY,CAAC,eAAgB,EAAI,YAAY,CAAC,iBAEhD,EAAI,YAAY,CAAC,OACnB,EAAI,YAAY,CAAC,MAAO,EAAI,YAAY,CAAC,QAEzC,EAAI,SAAS,CAAG,EAAI,SAAS,CAE/B,SAAS,IAAI,CAAC,WAAW,CAAC,EAC5B,MAAO,GAAI,AAAe,QAAf,EAAI,OAAO,CAAY,CAChC,IAAI,EAAM,SAAS,aAAa,CAAC,QACjC,EAAI,YAAY,CAAC,MAAO,EAAI,YAAY,CAAC,QAEzC,EAAI,YAAY,CAAC,OAAQ,EAAI,YAAY,CAAC,SAC1C,SAAS,IAAI,CAAC,WAAW,CAAC,EAC5B,CAEF,GAEA,GAAG,KAAK,CAAC,aAAa,CAAC,wBAAwB,CAC7C,EACA,kCACA,IACA,GACA,IAAI,CAAC,kBAAkB,CAE3B,MAAW,EAAU,IACnB,cAAc,EAEhB,CAAA,GACF,EAAG,IACL,CAEF,CACA,eAAe,CAAI,CAAC,CAElB,IAAI,EAAa,AADP,SAAS,aAAa,CAAC,uBACZ,YAAY,CAAC,cAElC,GAAG,KAAK,CAAC,YAAY,CAAC,aAAa,CAAC,aAAa,GAAG,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,EAAW,CAAC,EAAK,MAAM,CAC1G,CACA,mBAAmB,CAAG,CAAE,CAClB,IAEF,GAAG,KAAK,CAAC,YAAY,CAAC,gBAAgB,CAAC,GACvC,GAAG,KAAK,CAAC,YAAY,CAAC,qCAAqC,CAAC,GAGhE,CACA,iBAAiB,CAAG,CAAE,CACpB,IAAI,EAAS,CAAE,gBAAiB,CAAC,EAAG,oBAAqB,cAAe,SAAU,GAAG,KAAK,CAAC,YAAY,CAAC,cAAc,AAAC,EACnH,EAAI,aAAa,CAAC,oBACpB,CAAA,EAAO,eAAe,CAAC,QAAQ,CAAG,CAAA,CADpC,EAGI,EAAI,aAAa,CAAC,oBACpB,CAAA,EAAO,eAAe,CAAC,YAAY,CAAG,CAAA,CADxC,EAGG,EAAI,aAAa,CAAC,sBACnB,CAAA,EAAO,eAAe,CAAC,WAAW,CAAG,CAAA,CADvC,EAGA,GAAG,KAAK,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,EAAG,EAAI,OAAO,CAAC,uBAAwB,EACnF,CACC,sCAAsC,CAAG,CAAC,CAEzC,IAAM,EAAa,SAAS,aAAa,CAAC,sEAC1C,GAAG,EAAW,KAIN,EA6CJ,AAHiB,IAAI,iBAvCJ,CAAC,EAAc,KAChC,IAAK,IAAM,KAAY,EACnB,GAAI,AAAkB,cAAlB,EAAS,IAAI,CACjB,QAAQ,GAAG,CAAC,0CAA2C,QAChD,GAAI,AAAkB,eAAlB,EAAS,IAAI,CAAmB,CAGvC,GAAG,AAA0B,SAA1B,EAAS,aAAa,EAAiB,EAAS,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAC1F,aAAa,GACb,IAAI,EAAM,EAAS,MAAM,CAEzB,EAAU,WAAW,KACnB,IAAI,EAAQ,EAAK,OAAO,CAAC,gBAAgB,gBAAgB,CAAC,kBAEtD,EAAS,AADb,CAAA,EAAQ,IAAI,EAAM,AAAA,EACC,SAAS,CAAC,AAAC,GAAO,EAAG,SAAS,CAAC,QAAQ,CAAC,WAE3D,SAAS,YAAY,CAAC,qBAAqB,CAAC,YAAa,CAAK,CAAC,EAAM,CAAC,YAAY,CAAC,SAAS,GACjE,IAAxB,GAAG,KAAK,CAAC,WAAW,GAClB,GAAG,KAAK,CAAC,WAAW,CAAG,EACxB,IAAI,CAAC,UAAU,CAAC,kBAET,GAAG,KAAK,CAAC,WAAW,CAAG,GAC9B,IAAI,CAAC,UAAU,CAAC,eAKpB,GAAG,KAAK,CAAC,WAAW,CAAG,EACvB,GAAG,KAAK,CAAC,YAAY,CAAC,gBAAgB,CAAC,EAEzC,EAAE,IAEJ,CACJ,QAAQ,GAAG,CAAC,CAAC,IAAI,EAAE,EAAS,aAAa,CAAC,wBAAwB,CAAC,CAAG,EACtE,CAEJ,GAMS,OAAO,CAAC,EA9CF,CAAE,WAAY,CAAA,EAAM,QAAS,CAAA,CAAK,EAgDrD,CAEF,CACA,MAAO,WAAW,CAAI,CAAC,CACrB,IAAI,EAAM,SAAS,aAAa,CAAC,uBAC7B,EAAa,EAAI,YAAY,CAAC,cAElC,IAAI,EAAO,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,WAAW,CAC9C,GAAG,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,GACrC,CAAC,EACD,CACE,mBAAoB,EAAI,YAAY,CAAC,sBACrC,WAAY,EACZ,cAAe,CAAC,CAClB,GAEF,IAAI,EAAc,GAAG,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,GAOvD,GANA,GAAG,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,EAAW,CAAG,CAC5C,GAAG,GAAG,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,EAAW,CAC9C,GAAG,CAAI,CAAC,EAAY,CAAC,IAAI,CACzB,GAAG,CAAI,CAAC,EAAY,CAAC,IAAI,CAAC,MAAM,AAClC,EAEG,CAAI,CAAC,EAAY,EAAE,MAAM,QAAQ,QAAQ,cAAc,MAAQ,CAAI,CAAC,EAAY,EAAE,MAAM,QAAQ,QAAQ,OAAO,MAAQ,QAAQ,CAChI,IAAI,EAAc,CAAI,CAAC,EAAY,EAAE,MAAM,QAAQ,QAAQ,cAAc,KACrE,EAAa,EAAI,aAAa,CAAC,8BAA8B,QAAQ,CAAC,EAAE,CAC5E,GAAG,EAAW,CACZ,IAAI,EAAW,SAAS,aAAa,CAAC,MACtC,CAAA,EAAQ,SAAS,CAAG,EAEpB,IAAI,EAAS,IAAI,AADD,EAAQ,aAAa,CAAC,kBACX,QAAQ,CAAC,AACjC,CAAA,CAAM,CAAC,EAAE,EACV,CAAA,EAAW,SAAS,CAAG,CAAM,CAAC,EAAE,CAAC,SAAS,AAAT,EAEnC,EAAW,cAAc,CAAC,CAAE,SAAU,SAAU,MAAO,QAAS,EAClE,CACF,MACE,GAAG,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,CAAI,CAAC,EAAY,CAAC,IAAI,CAM5D,CAEC,eAAe,CAAM,CAAE,CAAG,CAAE,CAAU,CAAC,CACtC,IAAI,EAAW,GAEf,OAAO,GACL,IAAK,aACH,EAAW,kDACX,KACF,KAAK,iBACH,EAAU,kDACV,KACF,KAAK,aACH,EAAU,mDAGd,CACA,IAAI,EAAO,SAAS,aAAa,CAAC,EAClC,CAAA,GAAQ,EAAK,KAAK,EAEpB,CACF,EC5XA,EAxDA,MACE,YAAY,CAAK,CAAE,CACjB,IAAI,CAAC,KAAK,CAAG,CACf,CAEA,MAAM,gBAAiB,CAErB,IAAI,EAAO,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAChD,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,aAAa,CAClC,CAAC,EACD,CAAE,OAAQ,OAAO,KAAK,CAAC,MAAM,AAAC,GAE5B,EAAO,EAAE,CAOb,OALI,EAAK,YAAe,EACtB,OAAO,IAAI,CAAC,EAAK,YAAe,CAAC,IAAO,EAAE,OAAO,CAAC,AAAC,GACjD,EAAK,IAAI,CAAC,EAAK,YAAe,CAAC,IAAO,CAAC,EAAK,GAGzC,CACT,CAEA,MAAM,sBAAuB,CAC3B,IAAI,EAAkB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,iBAAiB,CACxD,EAAO,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAChD,EACA,CAAC,EACD,CAAE,OAAQ,OAAO,KAAK,CAAC,MAAM,CAAE,SAAU,OAAO,KAAK,CAAC,QAAQ,AAAC,GAGjE,GACE,CAAI,CAAC,EAAgB,EACrB,AAAmC,KAAnC,CAAI,CAAC,EAAgB,CAAC,MAAS,EAC/B,CAAI,CAAC,EAAgB,CAAC,IAAO,EAC7B,OAAO,IAAI,CAAC,CAAI,CAAC,EAAgB,CAAC,IAAO,EAAE,MAAM,CAEjD,OAAO,CAAI,CAAC,EAAgB,CAAC,IAAO,CAEpC,GAAI,AAAgC,IAAhC,SAAS,IAAI,CAAC,OAAO,CAAC,OAAc,CACtC,IAAI,EAAe,SAAS,IAAI,CAAC,KAAK,CAAC,KACvC,GAAI,AAAuB,GAAvB,EAAa,MAAM,CAAO,CAC5B,IAAI,EAAY,CAAY,CAAC,EAAE,CAAC,KAAK,CAAC,IACtC,CAAA,CAAS,CAAC,EAAE,CAAG,QACf,CAAY,CAAC,EAAE,CAAG,EAAU,IAAI,CAAC,IACnC,MAAM,GAAG,AAAuB,GAAvB,EAAa,MAAM,CAAM,CAChC,IAAI,EAAY,CAAY,CAAC,EAAE,CAAC,KAAK,CAAC,IACtC,CAAA,CAAS,CAAC,EAAE,CAAG,QACf,CAAY,CAAC,EAAE,CAAG,EAAU,IAAI,CAAC,IAEnC,CACA,SAAS,IAAI,CAAG,EAAa,IAAI,CAAC,IACpC,CAEJ,CACF,EI1DA,IAAM,EAAwC,SAAS,CAAG,EACtD,GAAI,EAAI,QAAQ,CAAE,CAChB,IAAI,EAAS,EAAI,YAAY,CAAC,WAC1B,GAEF,AADc,IAAI,EAAI,QAAQ,CAAC,CACxB,OAAO,CAAC,AAAC,IACd,IAAI,EAAc,EAAS,IAAM,EAAS,OAAO,CAAC,WAAW,GAC7D,EAAS,YAAY,CAAC,UAAW,GAE/B,IAAI,EAAI,IAAI,CAAC,UAAU,EACvB,OACA,MAAM,QAAQ,EACd,MAAM,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,EAC/B,MAAM,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAY,EAE5C,MAAM,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAY,CAAC,KAAQ,CAAC,OAAO,CAC3D,AAAC,GAAQ,EAAS,SAAS,CAAC,GAAG,CAAC,IAGhC,EAAS,QAAQ,EACnB,EAAsC,EAE1C,EAEJ,CACF,ECOA,IAAA,EAhCuC,SAAS,CAAM,CAAE,CAAM,CAAE,CAAS,EACvE,IAAI,EAAQ,EAAO,UAAU,CACzB,GACF,OAAO,IAAI,CAAC,EAAU,KAAQ,EAAE,OAAO,CAAC,AAAC,IACvC,EAAO,YAAY,CAAC,EAAM,EAAU,KAAQ,CAAC,EAAK,CACpD,GAEF,IAAK,IAAI,EAAI,EAAG,EAAI,EAAM,MAAM,CAAE,IAChC,EAAO,YAAY,CACjB,AAAqB,mBAArB,CAAK,CAAC,EAAE,CAAC,QAAQ,CACb,aACA,CAAK,CAAC,EAAE,CAAC,QAAQ,CACrB,CAAK,CAAC,EAAE,CAAC,SAAS,EAAI,IAG1B,GAAI,EAAO,YAAY,CAAC,WAAY,CAClC,IAAI,EACF,EAAO,YAAY,CAAC,WAAa,IAAM,EAAO,OAAO,CAAC,WAAW,GACnE,EAAO,YAAY,CAAC,UAAW,GAE7B,IAAI,EAAI,IAAI,CAAC,UAAU,EACvB,OACA,MAAM,QAAQ,EACd,MAAM,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,EAC/B,MAAM,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAO,EAEvC,MAAM,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAO,CAAC,KAAQ,CAAC,OAAO,CAAC,AAAC,GACxD,EAAO,SAAS,CAAC,GAAG,CAAC,GAG3B,CACF,EC/BK,IAAM,EAAyB,SAAU,EAAY,EAAE,CAAE,CAAI,EAClE,IAAI,EAAM,SAAS,aAAa,CAAC,OAKjC,GAJA,EAAI,YAAY,CAAC,QAAS,YAAc,GACpC,GAAQ,EAAK,YAAY,CAAC,eAC5B,EAAI,YAAY,CAAC,aAAc,EAAK,YAAY,CAAC,eAE/C,GAAQ,EAAK,YAAY,CAAC,WAAY,CACxC,IAAI,EAAS,EAAK,YAAY,CAAC,WAC/B,EAAI,YAAY,CAAC,UAAW,GAE1B,IAAI,EAAI,IAAI,CAAC,UAAU,EACvB,OACA,MAAM,QAAQ,EACd,MAAM,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,EAC/B,MAAM,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAO,EAEvC,MAAM,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAO,CAAC,KAAQ,CAAC,OAAO,CAAC,AAAC,GACxD,EAAI,SAAS,CAAC,GAAG,CAAC,GAGxB,CACA,OAAO,CACT,EACa,EAAW,SAAU,EAAO,EAAE,CAAE,CAAG,EAC9C,IAAI,EAAO,GACP,EAAoB,GACpB,EAAS,GAiBb,OAhBI,EAAI,YAAY,CAAC,aACnB,EAAS,EAAI,YAAY,CAAC,WAAa,SACvC,EAAO,CAAC,QAAQ,EAAE,EAAA,CAAQ,EAG1B,GACA,IAAI,CAAC,UAAU,EACf,OACA,MAAM,QAAQ,EACd,MAAM,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,EAC/B,MAAM,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAO,EAEvC,MAAM,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAO,CAAC,KAAQ,CAAC,OAAO,CACtD,AAAC,GAAS,GAAqB,CAAA,EAAG,EAAI,CAAC,CAAC,EAGrC,CAAC,oDAAoD,EAAE,EAAkB,EAAE,EAAE,EAAK,CAAC,EAAE,EAAK,QAAQ,CAAC,AAC5G,EACa,EAAuB,SAAU,CAAI,CAAE,EAAa,CAAC,CAAC,EACjE,IAAI,EAAM,SAAS,aAAa,CAAC,GAIjC,OAHA,OAAO,IAAI,CAAC,GAAY,OAAO,CAAC,AAAC,GAC/B,EAAI,YAAY,CAAC,EAAM,CAAU,CAAC,EAAK,GAElC,CACT,EAEa,EAA6B,SAAU,CAAS,CAAE,CAAG,CAAE,CAAI,EACtE,IAAI,EAAM,EAAuB,EAAW,GAGxC,EAAO,KAAK,GAAG,GAEf,EAAe,EACjB,EAAK,WAAW,CAChB,EAAK,cAAc,EAcrB,OAXA,EAAI,SAAS,CAAG,CAAC;A;AAEyE,4FAAA,EAAE,EAAK;AAC3F,QAAA,EAAE,EAAa,SAAS;A;AAEqF,qHAAA,EAAE,EAAK;A;A;A;AAIpH,QAAA,CAAC,CAEA,CACT,EAEa,EAA4B,SACvC,CAAW,CACX,CAAc,CACd,CAAO,EAEP,IAAI,EAAe,SAAS,aAAa,CAAC,OAgG1C,OA/FA,EAAa,YAAY,CACvB,QACA,GACE,0IAEJ,EAAY,OAAO,CAAC,CAAC,EAAK,KACxB,GAAI,AAAY,QAAZ,EAAI,IAAI,EAAc,AAAY,aAAZ,EAAI,IAAI,CAAiB,CACjD,IAAI,EAAa,SAAS,aAAa,CAAC,OAExC,OAAQ,EAAI,QAAQ,CAAC,IAAI,EACvB,IAAK,UACL,IAAK,YAGH,AAFA,CAAA,EAAa,SAAS,aAAa,CAAC,KAApC,EAEW,YAAY,CACrB,QACA,0FAEF,EAAW,SAAS,CAAG,CAAA,EAAG,EAAI,aAAa,CAAA,CAAE,CAE7C,KACF,KAAK,aACL,IAAK,aACA,AAAU,GAAV,GAAe,AAAkB,oBAAlB,EAEhB,AADA,CAAA,EAAa,SAAS,aAAa,CAAC,SAApC,EACW,YAAY,CAAC,QAAS,+DAIjC,EAAW,YAAY,CACrB,QACA,0CAGJ,EAAW,SAAS,CAAG,CAAA,EAAG,EAAI,aAAa,CAAA,CAAE,CAE7C,KACF,KAAK,OACL,IAAK,QACH,GAAI,AAAkB,kBAAlB,EAAoC,CACtC,IAAI,EAAY,SAAS,aAAa,CAAC,OACvC,EAAU,YAAY,CACpB,QACA,oEAEF,EAAU,SAAS,CAAG,CAAC;A;AAErB,cAAA,EAAE,EAAI,aAAa;A;AAErB,YAAA,CAAC,CACD,EAAW,WAAW,CAAC,EACzB,KAAW,AAAkB,eAAlB,EACT,EAAW,SAAS,CAAG;A;AAEnB,gBAAA,EAAE,EAAI,aAAa;AACf,oBAAA,CAAC,CAET,EAAW,SAAS,CAAG;A;AAEnB,gBAAA,EAAE,EAAI,aAAa;AACf,oBAAA,CAAC,AAGf,CACA,EAAa,WAAW,CAAC,EAC3B,MAAO,GAAI,AAAY,SAAZ,EAAI,IAAI,CAAa,CAC9B,IAAI,EAAW,SAAS,aAAa,CAAC,UACtC,EAAS,YAAY,CAAC,QAAS,eAC/B,IAAI,EAAS,SAAS,aAAa,CAAC,OACpC,EAAO,YAAY,CAAC,MAAO,EAAI,aAAa,EAC5C,EAAO,YAAY,CAAC,QAAS,mCAC7B,EAAS,WAAW,CAAC,GACrB,EAAa,WAAW,CAAC,EAC3B,MAAO,GAAI,AAAY,SAAZ,EAAI,IAAI,CAAa,CAC9B,IAAI,EAAW,SAAS,aAAa,CAAC,UACtC,EAAS,YAAY,CAAC,QAAS,eAC/B,IAAI,EAAS,SAAS,aAAa,CAAC,SACpC,EAAO,YAAY,CAAC,MAAO,EAAI,aAAa,EAC5C,EAAO,YAAY,CAAC,QAAS,mCAC7B,EAAS,WAAW,CAAC,GACrB,EAAa,WAAW,CAAC,EAC3B,MAAO,GAAI,AAAY,SAAZ,EAAI,IAAI,CAAa,CAC9B,IAAI,EAAW,SAAS,aAAa,CAAC,UACtC,EAAS,YAAY,CAAC,QAAS,eAC/B,IAAI,EAAW,SAAS,aAAa,CAAC,SACtC,EAAS,YAAY,CAAC,WAAY,CAAA,GAClC,EAAS,YAAY,CAAC,QAAS,iCAC/B,IAAI,EAAS,SAAS,aAAa,CAAC,UACpC,EAAO,YAAY,CAAC,MAAO,EAAI,aAAa,EAC5C,EAAS,WAAW,CAAC,GACrB,EAAS,WAAW,CAAC,GACrB,EAAa,WAAW,CAAC,EAC3B,CACF,GAEO,CACT,EH7JA,IAAA,EAnBoB,SAAU,CAAI,CAAE,CAAG,CAAE,EAAM,EAAE,EAC/C,IAAI,EAAM,AAAA,EAAuB,aAAc,EAC/C,CAAA,EAAI,SAAS,CAAG,AAAA,EACd,EAAI,YAAY,CAAC,SAAW,EAAI,YAAY,CAAC,SAAW,EAAK,IAAI,CACjE,GAGF,IAAI,EAAO,AAAA,EAAqB,QAAS,CACvC,MACE,yEACJ,GACA,EAAK,YAAY,CAAC,QAAS,GAAS,IACpC,EAAI,WAAW,CAAC,GAEhB,AAAA,EAAiC,EAAK,EAAM,EAAK,KAAK,EACtD,EAAI,SAAS,CAAG,EAAI,SAAS,CAC7B,AAAA,EAAsC,EACxC,EKbA,EARA,SAAoB,CAAW,EAC3B,OAAO,EAAY,GAAG,CAAC,AAAA,GACZ,CAAA,CACH,YAAa,EAAO,KAAK,CACzB,IAAK,EAAO,KAAK,AACrB,CAAA,EAER,EDqDE,EAvDkB,SAAS,CAAI,CAAE,CAAG,CAAE,EAAQ,EAAE,EAC9C,IAOI,EAPA,EAAM,AAAA,EAAuB,aAAc,GAa/C,GAVA,EAAI,SAAS,CAAG,AAAA,EACd,EAAI,YAAY,CAAC,SAAW,EAAI,YAAY,CAAC,SAAW,EAAK,IAAI,CACjE,GAIA,EADC,EAAI,YAAY,CAAC,WACV,AAAA,EAAW,KAAK,KAAK,CAAC,EAAI,YAAY,CAAC,aAEvC,EAAK,KAAK,CAAC,OAAO,CAExB,AAA4B,gBAA5B,EAAK,KAAK,CAAC,aAAa,CAAoB,CAC9C,IAAI,EAAW,AAAA,EAAqB,WAAY,CAC9C,KAAM,cACN,MAAO,mCACT,GAEA,EAAQ,OAAO,CAAC,AAAC,IACf,IAAI,EAAc,AAAA,EAAqB,MAAO,CAC5C,MACE,0FACJ,GAEI,EAAQ,AAAA,EAAqB,QAAS,CACxC,MAAO,kDACT,EACA,CAAA,EAAM,SAAS,CAAG,EAAW,WAAW,CACxC,IAAI,EAAO,AAAA,EAAqB,QAAS,CACvC,MAAO,wCACP,KAAM,QACN,MAAO,EAAW,GAAG,CACrB,KAAM,EAAI,YAAY,CAAC,kBACzB,EACG,CAAA,EAAW,GAAG,EAAI,GAAS,EAAW,KAAK,EAC5C,EAAK,YAAY,CAAC,UAAW,CAAA,GAI/B,EAAK,SAAS,CAAG,EAAW,WAAW,CACvC,EAAY,WAAW,CAAC,GACxB,EAAY,WAAW,CAAC,GACxB,EAAS,WAAW,CAAC,EACvB,GAEA,EAAI,WAAW,CAAC,GAEhB,AAAA,EAAiC,EAAK,EACxC,CACA,EAAI,SAAS,CAAG,EAAI,SAAS,CAC7B,AAAA,EAAsC,EACxC,EEpCF,EAdwB,SAAU,CAAI,CAAE,CAAG,EACzC,IAAI,EAAM,AAAA,EAAuB,cAAe,GAC5C,EAAO,AAAA,EAAqB,MAAO,CACrC,MAAO,sCACT,EACA,CAAA,EAAK,SAAS,CAAG,EAAI,YAAY,CAAC,SAC9B,EAAI,YAAY,CAAC,SACjB,EAAK,KAAK,CAAC,YAAY,CAC3B,AAAA,EAAiC,EAAK,GACtC,EAAI,WAAW,CAAC,GAChB,EAAI,SAAS,CAAG,EAAI,SAAS,CAC7B,AAAA,EAAsC,EACxC,ECsCE,EAtDqB,SAAS,CAAI,CAAE,CAAG,CAAE,CAAK,EAC5C,IAMI,EANA,EAAM,AAAA,EAAuB,aAAc,EAC/C,CAAA,EAAI,SAAS,CAAG,AAAA,EAAS,EAAK,IAAI,CAAE,GACpC,IAAI,EAAO,AAAA,EAAqB,SAAU,CACxC,MAAO,kFACT,GAQA,GAPA,EAAI,WAAW,CAAC,GAGd,EADC,EAAI,YAAY,CAAC,WACV,AAAA,EAAW,KAAK,KAAK,CAAC,EAAI,YAAY,CAAC,aAEvC,EAAK,KAAK,CAAC,OAAO,CAG1B,EAAK,KAAK,EACV,AAA+B,gBAA/B,EAAK,KAAK,CAAC,aAAgB,EAC3B,EAAK,KAAK,CAAC,OAAU,CACrB,CACA,IAAI,EAAa,mCACjB,EAAQ,OAAO,CAAC,AAAC,IACf,GAAc,CAAC,eAAe,EAAE,EAAI,GAAG,CAAC,EAAE,EAAE,EAAI,GAAG,EAAI,EAAQ,WAAa,GAAG,CAAC,EAAE,EAAI,WAAW,CAAC,SAAS,CAAC,AAE9G,GACA,EAAK,SAAS,CAAG,CACnB,MAAW,EAAK,KAAK,EAAI,AAA+B,OAA/B,EAAK,KAAK,CAAC,aAAgB,EAC9C,EAAK,KAAK,CAAC,SAAY,EACzB,AAkBG,MAAM,AAlBD,EAAK,KAAK,CAAC,SAAY,CAkBZ,QAAW,CAAE,CAClC,OAAQ,OACR,QAAS,CACP,eAAgB,kBAClB,EACA,KAAM,KAAK,SAAS,CAAC,CAAE,OAAQ,WAAW,MAAM,AAAC,EACnD,GAAG,IAAI,CAAC,AAAC,GACA,EAAS,IAAI,IAzBe,IAAI,CAAC,AAAC,IAErC,GADA,QAAQ,GAAG,CAAC,MAAO,GACf,AAAc,WAAd,EAAI,MAAM,EAAiB,EAAI,IAAI,CAAE,CACvC,IAAI,EAAa,mCACjB,EAAI,IAAI,CAAC,OAAO,CAAC,AAAC,IAChB,GAAc,CAAC,eAAe,EAAE,EAAI,GAAG,CAAC,GAAG,EAAE,EAAI,GAAG,EAAI,EAAQ,WAAa,GAAG,CAAC,EAAE,EAAI,WAAW,CAAC,SAAS,CAAC,AAC/G,GACA,EAAK,SAAS,CAAG,CACnB,CACF,GAGJ,AAAA,EAAiC,EAAK,GACtC,EAAI,SAAS,CAAG,EAAI,SAAS,CAC7B,AAAA,EAAsC,EACxC,ECzBA,EAZoB,SAAS,CAAI,CAAE,CAAG,EACpC,IAAI,EAAM,AAAA,EAAuB,cAAe,GAC5C,EAAO,AAAA,EAAqB,KAAM,CAAE,MAAO,YAAa,EAC5D,CAAA,EAAK,SAAS,CAAG,EAAI,YAAY,CAAC,SAC9B,EAAI,YAAY,CAAC,SACjB,EAAK,KAAK,CAAC,YAAY,CAC3B,AAAA,EAAiC,EAAK,GACtC,EAAI,WAAW,CAAC,GAChB,EAAI,SAAS,CAAG,EAAI,SAAS,CAC7B,AAAA,EAAsC,EACxC,ECIF,EAdqB,SAAU,CAAI,CAAE,CAAG,EACtC,IAAI,EAAM,AAAA,EAAuB,cAAe,GAC5C,EAAO,AAAA,EAAqB,SAAU,CACxC,MAAO,sCACT,EACA,CAAA,EAAK,SAAS,CAAG,EAAI,YAAY,CAAC,SAC9B,EAAI,YAAY,CAAC,SACjB,EAAK,KAAK,CAAC,YAAY,CAC3B,AAAA,EAAiC,EAAK,GACtC,EAAI,WAAW,CAAC,GAChB,EAAI,SAAS,CAAG,EAAI,SAAS,CAC7B,AAAA,EAAsC,EACxC,EEpBA,IAAM,EAAS,CAEX,UAAW,yBAGX,UAAW,MAAM,iBAAiB,CAClC,UAAW,CACP,cAAe,mBACf,cAAc,kBACd,eAAgB,oBAChB,eAAe,gBACf,YAAa,4BACb,YAAY,wBACZ,gBAAkB,gCAClB,gBAAgB,4BAChB,YAAc,kBACd,YAAY,cACZ,kBAAoB,mBACpB,eAAe,gBACf,YAAa,oBACb,yBAA2B,4BAC3B,YAAa,mBACb,oBAAoB,aACpB,qBAAuB,oBACvB,kBAAkB,iBAEtB,CACJ,EDmCA,SAAS,EAAW,CAAY,CAAE,CAAQ,EACxC,IAAI,EAAO,AAAA,EACT,2EACA,GAEE,EAAU,SAAS,aAAa,CAAC,OAEjC,EAAW,SAAS,aAAa,CAAC,OACtC,EAAW,YAAY,CAAC,MAAM,yDAC9B,EAAW,MAAM,CAAC,GAClB,EAAW,KAAK,CAAC,GACjB,EAAW,KAAK,CAAC,MAAM,CAAC,MACxB,IAAI,EAAY,SAAS,aAAa,CAAC,OACvC,EAAU,YAAY,CAAC,QAAS,uBAChC,EAAU,SAAS,CAAG,CAAC,MAAM,EAAE,EAAS,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,kCAAkC,EAAE,EAAS,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CACzI,EAAU,KAAK,CAAC,MAAM,CAAC,MACvB,EAAU,KAAK,CAAC,QAAQ,CAAC,OACzB,EAAU,KAAK,CAAC,UAAU,CAAC,OAC3B,IAAI,EAAY,SAAS,aAAa,CAAC,OACvC,CAAA,EAAW,SAAS,CAAG,EAAS,KAAK,CAAC,cAAc,CACpD,EAAQ,WAAW,CAAC,GACpB,EAAQ,WAAW,CAAC,GACpB,EAAQ,WAAW,CAAC,GACpB,EAAK,WAAW,CAAC,GAajB,EAAa,WAAW,CAAC,EAC3B,CAEA,IAAI,EAAgB,CAAA,EA4LpB,SAAS,EAAuB,CAAS,CAAC,CAAK,CAAC,CAAI,CAAC,CAAQ,EAE3D,GADA,EAAU,SAAS,CAAC,GACjB,EAAc,CACf,EAAW,EAAU,GACrB,MACF,CACA,IAAI,EAAe,SAAS,aAAa,CAAC,kBAC1C,GAAG,EAAa,CACd,IAAI,EAAY,EAAa,aAAa,CAAC,OACxC,GACD,EAAY,MAAM,EAEtB,CACA,OAAQ,GACN,IAAK,SACF,EAAW,EAAU,GACrB,KACH,KAAK,aACF,AArHP,SAA6B,CAAa,CAAC,CAAI,CAAC,CAAQ,EACtD,IAAM,EAAiB,SAAS,aAAa,CAAC,OAC9C,EAAiB,YAAY,CAAC,QAAQ,mCACtC,IAAM,EAAe,SAAS,aAAa,CAAC,MAC5C,CAAA,EAAa,WAAW,CAAC,CAAC,UAAU,EAAE,EAAK,IAAI,CAAA,CAAE,CACjD,EAAa,KAAK,CAAC,UAAU,CAAC,SAC9B,EAAa,KAAK,CAAC,QAAQ,CAAC,SAC5B,EAAa,KAAK,CAAC,YAAY,CAAC,WAChC,IAAM,EAAS,SAAS,aAAa,CAAC,OACtC,EAAO,YAAY,CAAC,QAAQ,UAC5B,EAAO,GAAG,CAAG,wDACb,EAAO,MAAM,CAAG,GAChB,EAAO,KAAK,CAAG,GACf,IAAM,EAAS,SAAS,aAAa,CAAC,OACtC,EAAO,YAAY,CAAC,QAAS,UAC7B,EAAO,KAAK,CAAC,MAAM,CAAG,OACtB,EAAO,KAAK,CAAC,KAAK,CAAG,OACrB,EAAO,KAAK,CAAC,OAAO,CAAG,eACvB,EAAO,KAAK,CAAC,MAAM,CAAG,+BACtB,EAAO,KAAK,CAAC,YAAY,CAAC,MAC1B,EAAO,KAAK,CAAC,SAAS,CAAG,6BACzB,EAAO,KAAK,CAAC,aAAa,CAAG,eAC7B,EAAO,KAAK,CAAC,iBAAiB,CAAG,KACjC,EAAO,KAAK,CAAC,uBAAuB,CAAG,WACvC,EAAO,KAAK,CAAC,uBAAuB,CAAG,SACvC,IAAM,EAAM,SAAS,aAAa,CAAC,QACnC,CAAA,EAAM,SAAS,CAAC,CAAC;A;A;AAGhB,GAAA,CAAC,CACF,EAAO,WAAW,CAAC,GACnB,EAAO,gBAAgB,CAAC,QAAQ,WAC9B,EAAgB,CAAA,EAChB,EAAO,MAAM,GACb,EAAuB,EAAc,SAAS,KAAK,GACnD,IAAM,EAAY,SAAS,aAAa,CAAC,sBACtC,GACD,CAAA,EAAU,KAAK,CAAC,EADlB,CAGF,GACA,EAAiB,WAAW,CAAC,GAC7B,EAAiB,WAAW,CAAC,GAE7B,AADsB,SAAS,aAAa,CAAC,kBAC7B,WAAW,CAAC,GAC5B,EAAc,WAAW,CAAC,EAE5B,EAuE2B,EAAU,EAAK,GACnC,KACH,KAAK,YACF,AAxEP,SAA4B,CAAa,CAAC,CAAI,CAAC,CAAQ,EACrD,IAAM,EAAgB,SAAS,aAAa,CAAC,OAC7C,EAAgB,YAAY,CAAC,QAAQ,kCACrC,IAAM,EAAY,AAAA,CAAA,EAAK,IAAI,CAAI,OAAA,EAAc,OAAO,CAAC,GAC/C,EAAkB,SAAS,aAAa,CAAC,KAC/C,CAAA,EAAgB,SAAS,CAAG,CAAA,EAAG,EAAK,IAAI,CAAA,CAAE,CAC1C,EAAgB,KAAK,CAAC,UAAU,CAAC,SACjC,EAAgB,KAAK,CAAC,QAAQ,CAAC,SAC/B,EAAgB,KAAK,CAAC,YAAY,CAAC,WACnC,EAAgB,KAAK,CAAC,SAAS,CAAC,OAChC,IAAM,EAAkB,SAAS,aAAa,CAAC,OAC/C,CAAA,EAAgB,WAAW,CAAG,CAAA,EAAG,EAAS,GAAG,CAAC,CAC9C,IAAM,EAAK,SAAS,aAAa,CAAC,OAClC,EAAK,YAAY,CAAC,QAAQ,QAC1B,EAAK,GAAG,CAAC,wDACT,EAAK,MAAM,CAAC,GACZ,EAAK,KAAK,CAAC,GACX,EAAK,KAAK,CAAC,QAAQ,CAAC,WACpB,EAAK,KAAK,CAAC,IAAI,CAAC,OAChB,IAAM,EAAU,SAAS,aAAa,CAAC,OAEvC,CAAA,EAAU,SAAS,CADG,EAAK,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,WAAW,GAE5D,EAAU,KAAK,CAAC,QAAQ,CAAC,WACzB,EAAU,KAAK,CAAC,GAAG,CAAC,OACpB,EAAU,KAAK,CAAC,KAAK,CAAC,OACtB,EAAU,KAAK,CAAC,KAAK,CAAC,QACtB,EAAU,KAAK,CAAC,UAAU,CAAC,OAE3B,IAAM,EAAS,SAAS,aAAa,CAAC,OACtC,EAAO,YAAY,CAAC,QAAQ,UAC5B,EAAO,GAAG,CAAG,wDACb,EAAO,MAAM,CAAG,GAChB,EAAO,KAAK,CAAG,GAEf,EAAO,gBAAgB,CAAC,QAAQ,WAC9B,EAAuB,EAAc,SAAS,KAAK,GACnD,IAAM,EAAY,SAAS,aAAa,CAAC,sBACtC,GACD,CAAA,EAAU,KAAK,CAAC,EADlB,CAGF,GACA,EAAgB,WAAW,CAAC,GAC5B,EAAgB,WAAW,CAAC,GAC5B,EAAgB,WAAW,CAAC,GAC5B,EAAgB,WAAW,CAAC,GAE5B,AADsB,SAAS,aAAa,CAAC,kBAC7B,WAAW,CAAC,GAC5B,EAAc,WAAW,CAAC,EAE5B,EAuB0B,EAAU,EAAK,EAEvC,CACF,CAEA,IAAA,EAjTuB,SAAU,CAAI,CAAE,CAAG,EACxC,IAAI,EAAM,SAAS,aAAa,CAAC,OACjC,EAAI,YAAY,CAAC,QAAS,oCAC1B,EAAI,YAAY,CAAC,UAAW,EAAI,YAAY,CAAC,YAC7C,EAAI,YAAY,CAAC,aAAc,EAAI,YAAY,CAAC,eAEhD,EAAI,SAAS,CAAG,AAAA,EACd,EAAI,YAAY,CAAC,SAAW,EAAI,YAAY,CAAC,SAAW,EAAK,IAAI,CACjE,GAGF,IAAI,EAAW,SAAS,aAAa,CAAC,OACtC,EAAS,YAAY,CAAC,QAAS,8CAC/B,EAAS,YAAY,CAAC,UAAW,EAAI,YAAY,CAAC,YAClD,EAAS,YAAY,CAAC,aAAc,EAAI,YAAY,CAAC,eACrD,EAAS,KAAK,CAAC,MAAM,CAAC,kBACtB,EAAS,KAAK,CAAC,YAAY,CAAC,OAG5B,IAAI,EAAY,SAAS,aAAa,CAAC,QACvC,EAAU,YAAY,CAAC,QAAQ,iBAC/B,EAAU,KAAK,CAAC,QAAQ,CAAC,WACzB,EAAU,KAAK,CAAC,GAAG,CAAC,MACpB,EAAU,KAAK,CAAC,KAAK,CAAC,OACtB,EAAU,KAAK,CAAC,SAAS,CAAG,mBAC5B,EAAU,KAAK,CAAC,MAAM,CAAC,UACvB,EAAU,KAAK,CAAC,MAAM,CAAC,MAEvB,IAAI,EAAO,AAAA,EAAqB,QAAS,CACvC,MAAO,uCACT,EACA,CAAA,EAAK,KAAK,CAAC,OAAO,CAAG,IAErB,IAAM,EAAa,SAAS,aAAa,CAAC,OAC1C,EAAa,YAAY,CAAC,QAAQ,iBAClC,EAAa,KAAK,CAAC,KAAK,CAAE,MAE1B,EAAS,WAAW,CAAC,GACrB,EAAS,WAAW,CAAC,GACrB,EAAI,WAAW,CAAC,GAChB,EAAI,WAAW,CAAC,GAEhB,EAAW,EAAU,GAErB,AAAA,EAAiC,EAAK,EAAM,EAAK,KAAK,EACtD,EAAI,SAAS,CAAG,EAAI,SAAS,CAC7B,AAAA,EAAsC,GAItC,AA2CF,SAAgC,CAAS,CAAC,CAAQ,EAChD,QAAQ,GAAG,CAAC,aAAc,GAC1B,IAAM,EAAc,EAAU,OAAO,CAAC,gBACnC,IACkB,EAAY,YAAY,CAAC,cACjB,EAAY,YAAY,CAAC,sBAEpD,GAAW,iBAAiB,SAAU,AAAC,IACrC,IAAM,EAAa,SAAS,aAAa,CAAC,iBAC1C,CAAA,EAAa,KAAK,CAAC,OAAO,CAAG,OAC7B,QAAQ,GAAG,CAAC,GACZ,IAAI,EAAO,GAAO,QAAQ,KAAK,CAAC,EAAE,CAC5B,EAAmB,EAAM,MAAM,CAAC,aAAa,CAAC,aAAa,CAAC,cAElE,GAAI,GAAQ,EAAM,MAAM,CAAC,aAAa,CAAE,CACtC,GAAG,CAAC,AAFoB,CAAC,kBAAoB,qBAAsB,0EAA0E,CAEvH,QAAQ,CAAC,EAAK,IAAI,EAAE,CACxC,EAAa,SAAS,CAAC,mEACvB,EAAa,KAAK,CAAC,OAAO,CAAC,QAC3B,EAAU,KAAK,CAAC,GAChB,MACF,CACA,GAAI,EAAK,IAAI,CAAG,AAAW,KAAX,CAAI,KAAa,CAC/B,EAAa,SAAS,CAAG,oCACzB,EAAa,KAAK,CAAC,OAAO,CAAG,QAC7B,EAAU,KAAK,CAAG,GAClB,MACF,CACA,EAAgB,CAAA,EAChB,EAAuB,EAAmB,YAAY,EAAK,GAC3D,IAAI,EAAU,IAAI,SAGlB,EAAQ,MAAM,CAAC,OAAQ,GACvB,EAAQ,MAAM,CAAC,KAAM,AAAA,EAAO,SAAS,CAAC,mBAAmB,EAEzD,AAAA,GACG,uBAAuB,CACtB,AAAA,EAAO,SAAS,CAAC,WAAW,CAC5B,CAAE,eAAgB,qBAAsB,EACxC,GAED,IAAI,CAAC,AAAC,IAEL,GADA,QAAQ,GAAG,CAAC,MAAO,GAEjB,AAAc,WAAd,EAAI,MAAM,EACV,EAAI,OAAO,EACX,EAAI,OAAO,CAAC,gBAAmB,CAC/B,CACA,IAAI,EAAO,CACT,SAAU,gBACV,aAAc,CAAA,EACd,QAAS,CACP,iBAAkB,EAAI,OAAO,CAAC,gBAAmB,CACjD,MAAO,CAAA,EACP,eAAgB,CAAA,CAClB,CACF,EACA,AAAA,GAAW,WAAW,CAAC,AAAA,EAAO,SAAS,CAAC,oBAAoB,CAAE,CAAC,EAAG,GAAM,IAAI,CAAC,AAAA,IAEvE,EAAU,WAAW,CAAG,CACtB,iBAAkB,EAAI,OAAO,CAAC,gBAAmB,AAGnD,CAEN,GACA,EAAuB,EAAmB,WAAW,EAAK,EAC5D,MAEE,EAAuB,EAAmB,SAAS,KAAK,GACxD,EAAa,SAAS,CAAC,mEACvB,EAAa,KAAK,CAAC,OAAO,CAAG,OAEjC,EASJ,CACF,GAEJ,EAnImB,SAAS,aAAa,CACrC,gBAAkB,EAAK,YAAY,CAAC,cAAgB,MAEpB,EACpC,EEFE,EAnDqB,SAAS,CAAI,CAAE,CAAG,CAAE,EAAM,EAAE,EAC/C,IACI,EADA,EAAgB,EAAM,KAAK,CAAC,KAG9B,EADC,EAAI,YAAY,CAAC,WACV,AAAA,EAAW,KAAK,KAAK,CAAC,EAAI,YAAY,CAAC,aAEvC,EAAK,KAAK,CAAC,OAAO,CAE5B,IAAI,EAAM,AAAA,EAAuB,aAAc,EAC/C,CAAA,EAAI,SAAS,CAAG,CAAC,2EAA2E,EAAE,EAAI,YAAY,CAAC,SAAW,EAAI,YAAY,CAAC,SAAW,EAAK,IAAI,CAC5J,QAAQ,CAAC,CACV,IAAI,EAAW,AAAA,EAAqB,WAAY,CAC9C,KAAM,iBACN,MAAO,sCACT,EAC8B,CAAA,gBAA5B,EAAK,KAAK,CAAC,aAAa,GAC1B,EAAQ,OAAO,CAAC,AAAC,IACf,IAAI,EAAc,AAAA,EAAqB,MAAO,CAC5C,MACE,yFACJ,GAEI,EAAQ,AAAA,EAAqB,QAAS,CACxC,MAAO,wBACT,EACA,CAAA,EAAM,SAAS,CAAG,EAAW,WAAW,CACxC,IAAI,EAAO,AAAA,EAAqB,QAAS,CACvC,MAAO,wCACP,KAAM,WACN,MAAO,EAAW,GAAG,CACrB,KAAM,EAAI,YAAY,CAAC,kBACzB,EAC6C,CAAA,IAA1C,EAAe,OAAO,CAAC,EAAW,GAAG,GACtC,EAAK,YAAY,CAAC,UAAW,CAAA,GAG/B,EAAK,SAAS,CAAG,EAAW,WAAW,CACvC,EAAY,WAAW,CAAC,GACxB,EAAY,WAAW,CAAC,GAExB,EAAS,WAAW,CAAC,EACvB,GACA,EAAI,WAAW,CAAC,IAElB,AAAA,EAAiC,EAAK,GAEtC,EAAI,SAAS,CAAG,EAAI,SAAS,CAE7B,AAAA,EAAsC,EACxC,EClBF,EA/B4B,SAAU,CAAI,CAAE,CAAG,CAAE,CAAK,EACpD,IAAI,EAAM,AAAA,EAAuB,aAAc,GAE3C,EAAO,AAAA,EAAqB,MAAO,CACrC,MAAO,8BACT,GACI,EAAW,AAAA,EAAqB,MAAO,CAAE,MAAO,EAAG,EACvD,CAAA,EAAS,SAAS,CAAG,EAAK,IAAI,CAE9B,EAAK,WAAW,CAAC,GACjB,IAAI,EAAU,AAAA,EAAqB,WAAY,CAC7C,MAAO,kCACT,GACA,EAAQ,YAAY,CAAC,OAAQ,eAE7B,EAAQ,SAAS,CAAG;A;AAEoB,0CAAA,EAAE,EAAK,GAAG,CAAC,GAAG,EAAE,AAAS,OAAT,EAAiB,UAAY,GAAG;A;A;AAGhD,0CAAA,EAAE,EAAK,GAAG,CAAC,IAAI,EAAE,AAAS,MAAT,EAAgB,UAAY,GAAG;AAClF,QAAA,CAAC,CACP,AAAA,EAAiC,EAAK,GAEtC,EAAK,WAAW,CAAC,GACjB,EAAI,WAAW,CAAC,GAEhB,EAAI,SAAS,CAAG,EAAI,SAAS,CAC7B,AAAA,EAAsC,EACxC,EE8FA,EA/HyB,SAAU,CAAQ,CAAE,CAAS,CAAE,CAAS,MA+GvC,EAAY,EAAU,MAC1C,EAKA,EApHA,GA8GoB,EA9GG,EAAS,UAAU,CA8GV,EA9GY,EA8GF,EA9GY,EAgH1D,CADI,EAAS,SAAS,aAAa,CAAC,QAC7B,YAAY,CACjB,QACA,sEAEE,EAAM,AAAA,EACR,EAAW,UAAU,CACrB,EAAS,aAAa,CACtB,kIAEF,EAAO,WAAW,CAAC,GACnB,EAAU,aAAa,CAAC,kBAAkB,WAAW,CAAC,GAC/C,GAzHH,EAAW,EAAI,aAAa,CAAC,mBACjC,GAAI,EAAS,UAAU,CAAC,OAAO,EAAI,EACjC,OAAQ,EAAS,aAAa,EAC5B,IAAK,YACH,CACE,IAAI,EAAU,EAAS,EAAE,CAAG,OACxB,EAAW,EAAS,EAAE,CAAG,QACzB,EAAa,AAAA,EAAqB,WAAY,CAChD,MAAO,mDACP,KAAK,WACP,GACA,EAAS,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,AAAC,IACnC,IAAI,EAAO,AAAA,EAAqB,MAAO,CACrC,MACE,2EACJ,EAEA,CAAA,EAAK,SAAS,CAAG;A;AAEf,cAAA,EAAE,EAAQ,aAAa;A;A;A;AAIM,2CAAA,EAAE,EAAQ,EAAE,CAAC,QAAQ,EAAE,EAAQ;A;A;AAG/B,2CAAA,EAAE,EAAQ,EAAE,CAAC,SAAS,EAAE,EAAS;A;AAE1D,kBAAA,CAAC,CAGP,EAAW,WAAW,CAAC,EACzB,GAEA,AAAA,EACE,EACA,GAGF,EAAS,WAAW,CAAC,EACvB,CAEA,KACF,KAAK,qBACH,CACE,IAAI,EAAc,CAChB,YACA,YACA,YACA,YACA,YACD,CACG,EAAa,AAAA,EAAqB,WAAY,CAChD,MACE,6GACA,KAAK,cACL,QAAQ,YACZ,GACA,EAAS,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAS,KAC5C,EAAW,SAAS,EAAI;AACgC,oEAAA,EAAE,CAAW,CAAC,EAAM,CAAC;AACuB,gHAAA,EAAE,EAAS,EAAE,CAAC,SAAS,EAAE,EAAQ,EAAE,CAAC;A;A;A;A;A;A;A;A;AASxI,YAAA,CAAC,AACH,GAEA,AAAA,EAAiC,EAAW,GAC5C,EAAS,WAAW,CAAC,GAErB,EAAS,SAAS,EAAI,CAAC;A;A;AAGjB,gBAAA,CAAC,AACT,CAEA,KACF,KAAK,qBACH,CACE,IAAI,EAAa,AAAA,EAAqB,WAAY,CAChD,MAAO,mDACP,KAAK,cACH,QAAQ,YACZ,GACA,EAAS,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,AAAC,IACnC,EAAW,SAAS,EAAI;A;AAE8E,kHAAA,EAAE,EAAS,EAAE,CAAC,SAAS,EAAE,EAAQ,EAAE,CAAC,gHAAgH,EAAE,EAAQ,aAAa;A;AAEjR,YAAA,CAAC,AACH,GACA,AAAA,EAAiC,EAAW,GAC5C,EAAS,WAAW,CAAC,EACvB,CAGJ,CAGF,OAAO,CACT,ED5FA,EAV0B,SAAU,CAAI,CAAE,CAAG,CAAE,EAAQ,EAAE,EACvD,IAAI,EAAM,AAAA,EAA2B,EAAK,cAAc,CAAE,EAAK,GAChD,EAAI,aAAa,CAAC,mBAEjC,AAAA,EAAiB,EAAM,EAAK,GAE5B,EAAI,SAAS,CAAG,EAAI,SAAS,CAC7B,AAAA,EAAsC,EACxC,EECA,EAV6B,SAAU,CAAI,CAAE,CAAG,CAAE,EAAQ,EAAE,EAC1D,IAAI,EAAM,AAAA,EAA2B,EAAK,cAAc,CAAE,EAAK,GAE7D,AAAA,EAAiB,EAAM,EAAK,GAG9B,EAAI,SAAS,CAAG,EAAI,SAAS,CAC7B,AAAA,EAAsC,EACxC,ECEA,EAVgC,SAAU,CAAI,CAAE,CAAG,CAAE,EAAQ,EAAE,EAC7D,IAAI,EAAM,AAAA,EAA2B,EAAK,cAAc,CAAE,EAAK,GAE7D,AAAA,EAAiB,EAAM,EAAK,GAG9B,EAAI,SAAS,CAAG,EAAI,SAAS,CAC7B,AAAA,EAAsC,EACxC,ECGA,EAX8B,SAAS,CAAI,CAAE,CAAG,CAAE,EAAQ,EAAE,EAC1D,IAAI,EAAM,AAAA,EAA2B,EAAK,cAAc,CAAC,EAAK,GAC9D,AAAA,EAAiB,EAAM,EAAK,GAE5B,EAAI,SAAS,CAAG,EAAI,SAAS,CAC7B,AAAA,EAAsC,EAIxC,ECAA,EAT8B,SAAU,CAAI,CAAE,CAAG,CAAE,EAAQ,EAAE,EAC3D,IAAI,EAAM,AAAA,EAA2B,EAAK,cAAc,CAAE,EAAK,GAC7D,AAAA,EAAiB,EAAM,EAAK,GAG9B,EAAI,SAAS,CAAG,EAAI,SAAS,CAC7B,AAAA,EAAsC,EACxC,ECKA,EAZkC,SAAU,CAAI,CAAE,CAAG,CAAE,EAAQ,EAAE,EAC/D,IAAI,EAAM,AAAA,EAA2B,EAAK,cAAc,CAAE,EAAK,GAC/D,AAAA,EAAiB,EAAM,EAAK,GAC5B,IAAI,EAAY,EAAI,aAAa,CAAC,kBAClC,CAAA,GAAa,EAAU,SAAS,CAAC,GAAG,CAAC,cACrC,EAAU,SAAS,CAAC,GAAG,CAAC,wBACxB,EAAU,SAAS,CAAC,GAAG,CAAC,2BACxB,EAAI,aAAa,CAAC,eAAe,SAAS,CAAC,MAAM,CAAC,0BAClD,EAAI,SAAS,CAAG,EAAI,SAAS,CAC7B,AAAA,EAAsC,EACxC,ErBqEA,EA1EsB,SACpB,CAAQ,CACR,CAAO,CACP,CAAG,CACH,CAAS,CACT,EAAiB,CAAC,CAAC,EAEnB,GAAI,CAAQ,CAAC,EAAQ,CAAE,CACrB,IAEI,EAFA,EAAS,CAAQ,CAAC,EAAQ,CAAC,KAAQ,CAAG,CAAQ,CAAC,EAAQ,CAAC,KAAQ,CAAC,MAAS,CAAG,CAAQ,CAAC,EAAQ,CAAC,cAAiB,CAChH,CAAA,mBAAE,CAAkB,CAAA,gBAAE,CAAe,CAAE,CAAG,EAU9C,GAPI,GAAmB,GACrB,CAAA,EACG,CAAe,CAAC,EAAmB,EAClC,CAAe,CAAC,EAAmB,CAAC,EAAQ,EAC7C,GAAiB,QAAQ,SAAS,CAAC,EAAQ,AAAR,EAGpC,EAEF,OAAQ,GACN,IAAK,QACH,AAAA,EAAY,CAAQ,CAAC,EAAQ,CAAE,EAAK,GACpC,KACF,KAAK,WACH,AAAA,EAAe,CAAQ,CAAC,EAAQ,CAAE,EAAK,GACvC,KACF,KAAK,OACH,AAAA,EAAe,CAAQ,CAAC,EAAQ,CAAE,EAAK,GACvC,KACF,KAAK,SACH,AAAA,EAAoB,CAAQ,CAAC,EAAQ,CAAE,EAAK,GAC5C,KACF,KAAK,WACH,AAAA,EAAe,CAAQ,CAAC,EAAQ,CAAE,EAAK,GACvC,KACF,KAAK,SACH,AAAA,EAAa,CAAQ,CAAC,EAAQ,CAAE,EAAK,GACrC,KACF,KAAK,aACH,AAAA,EAAc,CAAQ,CAAC,EAAQ,CAAE,EAAK,GACtC,KACF,KAAK,YACH,AAAA,EAAgB,CAAQ,CAAC,EAAQ,CAAE,EAAK,GACxC,KACF,KAAK,QACH,AAAA,EAAY,CAAQ,CAAC,EAAQ,CAAE,EAAK,GACpC,KACF,KAAK,cACH,AAAA,EAAkB,CAAQ,CAAC,EAAQ,CAAE,EAAK,GAC1C,KACF,KAAK,iBACH,AAAA,EAAqB,CAAQ,CAAC,EAAQ,CAAE,EAAK,GAC7C,KACF,KAAK,oBACH,AAAA,EAAwB,CAAQ,CAAC,EAAQ,CAAE,EAAK,GAChD,KACF,KAAK,UACH,AAAA,EAAsB,CAAQ,CAAC,EAAQ,CAAE,EAAK,GAC9C,KACF,KAAK,UACH,AAAA,EAAsB,CAAQ,CAAC,EAAQ,CAAE,EAAK,GAC9C,KACF,KAAK,sBACH,AAAA,EAA0B,CAAQ,CAAC,EAAQ,CAAE,EAAK,EAItD,CAEJ,CACF,EsBrFA,IAAI,EAAa,CAAC,EAChB,EAAa,CAAC,EACd,EAAa,GACb,EAAW,CAAC,EACZ,EAAc,CAAC,EACf,EAAe,CAAC,EACZ,EAAS,SAkDT,EAA4B,SAAU,CAAM,CAAE,CAAG,EACrD,IAAI,EAAU,EAAE,CAChB,EAAO,MAAS,CAAC,EAAI,CAAC,UAAa,CAAC,IAAI,CAAC,AAAC,IACxC,IAAI,EAAQ,EAAoB,EAAK,KAAK,EAE1C,GADA,EAAQ,IAAI,CAAC,EAAa,EAAM,IAE9B,AAAyC,MAAzC,EAAO,MAAS,CAAC,EAAI,CAAC,eAAe,EACrC,AAAyB,IAAzB,EAAQ,OAAO,CAAC,CAAA,GAEhB,MAAO,CAAA,CAEX,GAEE,AAAyC,MAAzC,EAAO,MAAS,CAAC,EAAI,CAAC,eAAe,EACrC,AAAyB,IAAzB,EAAQ,OAAO,CAAC,CAAA,GAEhB,EAAuC,GAEE,OAAzC,EAAO,MAAS,CAAC,EAAI,CAAC,eAAe,EACrC,AAA0B,IAA1B,EAAQ,OAAO,CAAC,CAAA,IAEhB,EAAuC,EAE3C,EACM,EAA0B,SAAU,CAAK,EAC7C,GAAI,EAAM,MAAM,CAAE,CAChB,IAAI,EAAY,EAAM,MAAM,CAAC,YAAY,CAAC,aACtC,CAAA,CAAW,CAAC,EAAU,EACxB,CAAW,CAAC,EAAU,CAAC,EAAO,CAAC,OAAO,CAAC,AAAC,IACtC,IAAI,EAAgB,EAAW,MAAS,CAAC,EAAI,CAC7C,GAAI,EAAe,CACjB,IAAI,EAAU,EAAE,CAChB,EAAc,UAAa,CAAC,IAAI,CAAC,AAAC,IAChC,IAAI,EASJ,GAPE,EADE,AAA4B,IAA5B,EAAK,KAAK,CAAC,OAAO,CAAC,MACb,EAAoB,EAAK,KAAK,EAE9B,SAAS,aAAa,CAC5B,CAAC,YAAY,EAAE,EAAK,KAAK,CAAC,CAAC,CAAC,EAC5B,KAAK,CAET,EAAQ,IAAI,CAAC,EAAa,EAAM,IAE9B,AAAiC,MAAjC,EAAc,eAAe,EAC7B,AAAyB,IAAzB,EAAQ,OAAO,CAAC,CAAA,GAEhB,MAAO,CAAA,CAEX,GACI,AAAiC,MAAjC,EAAc,eAAe,CAC3B,AAAyB,IAAzB,EAAQ,OAAO,CAAC,CAAA,GAClB,EAAuC,GAGvC,EAAgB,GAEwB,OAAjC,EAAc,eAAe,GAClC,AAA0B,IAA1B,EAAQ,OAAO,CAAC,CAAA,GAClB,EAAuC,GAGvC,EAAgB,GAGtB,CACF,EAEJ,CACF,EACM,EAAkB,SAAU,CAAG,EAChC,CAAW,CAAC,EAAI,EACjB,OAAO,CAAW,CAAC,EAAI,CAAC,EAAe,CAGzC,IAAI,EAAO,SAAS,aAAa,CAAC,gBAAkB,EAAM,MAM1D,GALG,GACD,CAAA,EAAK,KAAK,CAAG,EADf,EAGA,EAAO,EAAO,EAAK,OAAO,CAAC,GAAuB,GAExC,CACR,IAAI,EAAU,SAAS,aAAa,CAAC,OACrC,EAAQ,YAAY,CAAC,kBAAmB,GACxC,EAAQ,YAAY,CAAC,aAAc,EAAK,YAAY,CAAC,eACrD,IAAI,EAAQ,EAAK,aAAa,CAAC,SAC3B,GACF,EAAQ,YAAY,CAAC,QAAS,EAAM,SAAS,EAE/C,IAAI,EAAc,EAAK,aAAa,CAAC,iBACjC,GACF,EAAQ,YAAY,CAClB,cACA,EAAY,YAAY,CAAC,gBAG7B,EAAK,SAAS,CAAG,EAAQ,SAAS,AACpC,CACF,EACM,EAAsB,SAAU,CAAG,EACvC,IAAI,EAAY,GAChB,GAAI,GAAG,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,EAAW,CAAE,CAG/C,IAAI,EAAO,AADX,CAAA,EAAM,AADN,CAAA,EAAM,EAAI,KAAK,CAAC,EAAhB,EACU,KAAK,CAAC,EAAG,GAAnB,EACe,KAAK,CAAC,KAGjB,EAAe,KAAK,KAAK,CAAC,KAAK,SAAS,CAD1C,GAAG,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,EAAW,CAAC,eAAkB,GAEhE,EAAK,OAAO,CAAC,AAAC,IAEV,EADE,CAAY,CAAC,EAAI,CACJ,CAAY,CAAC,EAAI,CAEjB,IAEnB,GACA,EAAY,CACd,CACA,OAAO,CACT,EAEM,EAAyC,SAAU,CAAG,EAC1D,IAAI,EAAO,SAAS,aAAa,CAAC,CAAC,iBAAiB,EAAE,EAAI,CAAC,CAAC,EACxD,GAAQ,CAAC,EAAK,OAAO,CAAC,KACxB,AAAA,EAAc,EAAU,EAAK,EAAM,SAAU,GACzC,CAAW,CAAC,EAAI,EAAI,CAAC,CAAW,CAAC,EAAI,CAAC,EAAe,EAEvD,AADiB,SAAS,aAAa,CAAC,CAAC,YAAY,EAAE,EAAI,CAAC,CAAC,EAClD,gBAAgB,CAAC,SAAU,EAAwB,IAAI,CAAC,IAAI,GAG7E,EACM,EAAe,SAAU,CAAI,CAAE,CAAK,EACxC,OAAQ,EAAK,QAAQ,EACnB,KAAK,AAAA,EAAW,MAAM,CACpB,GAAI,GAAS,EAAK,KAAK,CACrB,MAAO,CAAA,EAET,KACF,MAAK,AAAA,EAAW,UAAU,CACxB,GAAI,GAAS,EAAK,KAAK,CACrB,MAAO,CAAA,CAGb,CACA,MAAO,CAAA,CACT,EAEA,IAAA,GAjM0B,SAAU,CAAM,CAAE,CAAE,CAAE,CAAI,CAAE,CAAY,EAChE,EAAa,EACb,EAAa,EACb,EAAW,EACX,CAAU,CAAC,EAAW,CAAG,CAAC,EAC1B,EAAiB,EACjB,EAAa,CAAU,CAAC,EAAW,CACnC,OAAO,IAAI,CAAC,EAAO,MAAS,EAAE,OAAO,CAAC,AAAC,IACrC,EAAO,MAAS,CAAC,EAAQ,CAAC,UAAa,CAAC,OAAO,CAAC,AAAC,IAC/C,IAAI,EACF,AAA2B,IAA3B,EAAI,KAAK,CAAC,OAAO,CAAC,MACd,SAAS,aAAa,CAAC,CAAC,YAAY,EAAE,EAAI,KAAK,CAAC,CAAC,CAAC,EAClD,EACD,CAAA,CAAW,CAAC,EAAI,KAAK,CAAC,EACzB,CAAA,CAAW,CAAC,EAAI,KAAK,CAAC,CAAG,CAAC,CAAA,EAG1B,CAAA,GACC,AAAC,CAAW,CAAC,EAAI,KAAK,CAAC,EAAK,CAAW,CAAC,EAAI,KAAK,CAAC,CAAC,MAAS,EAAI,AAAsD,IAAtD,CAAC,CAAW,CAAC,EAAI,KAAK,CAAC,CAAC,MAAS,CAAC,OAAO,CAAC,IAAmB,CAAW,CAAC,EAAI,KAAK,CAAC,CAAC,EAAc,CAY5J,AAAC,GAAgB,AAAC,CAAW,CAAC,EAAI,KAAK,CAAC,EAAK,CAAW,CAAC,EAAI,KAAK,CAAC,CAAC,MAAS,EAAI,AAAsD,IAAtD,CAAC,CAAW,CAAC,EAAI,KAAK,CAAC,CAAC,MAAS,CAAC,OAAO,CAAC,IAAmB,CAAW,CAAC,EAAI,KAAK,CAAC,CAAC,EAAe,CAOjL,GAAa,AAA2B,IAA3B,EAAI,KAAK,CAAC,OAAO,CAAC,OAIpC,AAHM,EAAO,MAAS,CAAC,EAAQ,CAAC,UAAa,CAAC,MAAM,CACvD,AAAC,GAAO,AAA0B,IAA1B,EAAG,KAAK,CAAC,OAAO,CAAC,OAEjB,MAAM,EACd,EAA0B,EAAQ,GAVhC,CAAW,CAAC,EAAI,KAAK,CAAC,CAAC,EAAO,CAChC,CAAW,CAAC,EAAI,KAAK,CAAC,CAAC,EAAO,CAAC,IAAI,CAAC,GAEpC,CAAW,CAAC,EAAI,KAAK,CAAC,CAAC,EAAO,CAAG,CAAC,EAAQ,EAf5C,EAAU,gBAAgB,CACxB,SACA,EAAwB,IAAI,CAAC,IAAI,GAEnC,CAAW,CAAC,EAAI,KAAK,CAAC,CAAC,EAAe,CAAG,CAAA,EACrC,CAAW,CAAC,EAAI,KAAK,CAAC,CAAC,EAAO,CAChC,CAAW,CAAC,EAAI,KAAK,CAAC,CAAC,EAAO,CAAC,IAAI,CAAC,GAEpC,CAAW,CAAC,EAAI,KAAK,CAAC,CAAC,EAAO,CAAG,CAAC,EAAQ,CAiBhD,EACF,EACF,EvBwWA,GAvZA,MACE,YAAc,CAAC,CAAE,AACjB,CAAA,SAAW,CAAC,CAAE,AACd,CAAA,cAAgB,CAAC,CAAE,AACnB,CAAA,eAAiB,CAAC,CAAE,AACpB,CAAA,eAAiB,CAAC,CAAE,AACpB,aAAY,CAAK,CAAE,CACjB,IAAI,CAAC,KAAK,CAAG,EACb,IAAI,CAAC,UAAU,CAAG,CAAC,EACnB,IAAI,CAAC,UAAU,CAAG,GAClB,IAAI,CAAC,UAAU,CAAG,GAClB,IAAI,CAAC,cAAc,CAAG,CAAC,CACzB,CAEA,WAAW,CAAO,CAAE,CAAc,CAAE,CAClC,QAAQ,GAAG,CAAC,eACZ,IAAI,CAAC,QAAQ,CAAG,GHooEL,EGloEX,IAAI,EAAoB,EAAQ,OAAO,CACnC,EAAQ,OAAO,CAAC,GAChB,EAAQ,aAAa,CAAC,GAE1B,GAAI,GAAqB,EAAkB,YAAY,CAAC,cAAe,CACrE,IAAI,EAAa,EAAkB,YAAY,CAAC,aAChD,CAAA,IAAI,CAAC,UAAU,CAAG,EAClB,IAAI,CAAC,cAAc,CAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,EAAW,CAC/D,IAAI,CAAC,cAAc,EACrB,CAAA,IAAI,CAAC,UAAU,CACb,IAAI,CAAC,cAAc,CAAC,MAAS,CAAC,YAAe,EAAE,cAAc,UAFjE,CAIF,MAAW,OAAO,kBAAkB,EAClC,CAAA,IAAI,CAAC,UAAU,CACb,OAAO,YAAe,EAAE,QAAQ,QAAQ,YAAc,CAAC,CAAA,EAE3D,IAAI,EAAkB,EAAQ,aAAa,CAAC,8BACxC,GACF,CAAA,IAAI,CAAC,UAAU,CAAG,EAAgB,YAAY,CAAC,EADjD,EAIA,AADW,EAAQ,gBAAgB,CAAC,qBAC/B,OAAO,CAAC,AAAC,IACZ,GAAG,CAAC,EAAQ,SAAS,CAAC,QAAQ,CAAC,QAAQ,CACrC,IAAI,EAAU,EAAQ,YAAY,CAAC,kBAC9B,CAAA,IAAI,CAAC,UAAU,EAAE,mBAAmB,eAAe,IACtD,AAAA,EAAc,IAAI,CAAC,QAAQ,CAAE,EAAS,EAAS,EAAS,IAAI,CAAC,cAAc,CAE/E,CACF,GACI,IAAI,CAAC,UAAU,EAAI,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,EACxD,AAAA,GAAkB,IAAI,CAAC,UAAU,CAAE,IAAI,CAAC,UAAU,CAAE,IAAI,CAAC,QAAQ,CAErE,CAEA,YAAY,CAAU,CAAE,QACtB,AAAI,IAAI,CAAC,YAAY,CAAC,GAEb,CACL,MAAO,CAAA,EACP,SAHa,IAAI,CAAC,2BAA2B,EAI/C,EAEO,CACL,MAAO,CAAA,CACT,CAEJ,CAEA,6BAA8B,CAC5B,IAAI,EAAO,SAAS,gBAAgB,CAAC,gBACjC,EAAW,CAAC,EA2DhB,OA1DA,EAAK,OAAO,CAAC,AAAC,IACZ,IAAI,EAAY,EAAI,YAAY,CAAC,eAAiB,GAClD,GAAI,GACF,GAAI,AAAe,UAAf,EAAI,OAAO,EAAgB,EAAI,aAAa,CAC9C,CAAQ,CAAC,EAAU,CACjB,IAAI,CAAC,QAAQ,CAAC,EAAU,CAAC,KAAQ,CAAC,OAAU,CAAC,EAAI,aAAa,CAAG,EAAE,CACjE,GACD,MACE,GACL,AAAe,SAAf,EAAI,OAAO,EACX,AAA6B,SAA7B,EAAI,YAAY,CAAC,QAEjB,CAAQ,CAAC,EAAU,CAAG,GAAK,WACtB,GACL,AAAe,SAAf,EAAI,OAAO,EACX,AAA4B,QAA5B,EAAI,YAAY,CAAC,QAGjB,CAAQ,CAAC,EAAU,CAAG,GAAK,iBACtB,GAAI,AAAe,YAAf,EAAI,OAAO,EACpB,GAAI,AAA4B,eAA5B,EAAI,YAAY,CAAC,QAA0B,CAC7C,IAAI,EAAc,GAAK,cACrB,CAAC,OAAO,EAAE,EAAU,UAAU,CAAC,GAC9B,KACA,AAA+B,CAAA,cAA/B,EAAI,YAAY,CAAC,WAClB,CAAQ,CAAC,EAAU,CAAG,CACpB,SAAU,CACZ,EAEA,CAAQ,CAAC,EAAU,CAAG,CAG1B,MAAO,GAAI,AAA4B,kBAA5B,EAAI,YAAY,CAAC,QAA6B,CACvD,IAAI,EAAO,GACX,GACI,iBAAiB,CAAC,OAAO,EAAE,EAAU,UAAU,CAAC,GAChD,QAAQ,AAAC,IACT,GAAQ,IAAM,EAAI,KAAK,AACzB,GACF,CAAQ,CAAC,EAAU,CAAG,EAAK,MAAM,CAAG,EAAK,SAAS,CAAC,GAAK,EAC1D,MAAO,GAAI,AAA4B,aAA5B,EAAI,YAAY,CAAC,QAAwB,CAClD,IAAI,EAAU,IAAI,CAAC,QAAQ,CAAC,EAAU,CAAC,EAAK,CAAG,OAC3C,EAAW,IAAI,CAAC,QAAQ,CAAC,EAAU,CAAC,EAAK,CAAG,QAE5C,EAAY,GAAK,cACnB,CAAC,OAAO,EAAE,EAAQ,UAAU,CAAC,GAC5B,MACC,EAAa,GAAK,cACpB,CAAC,OAAO,EAAE,EAAS,UAAU,CAAC,GAC7B,KACH,CAAA,CAAQ,CAAC,EAAU,CAAG,CACpB,aAAc,EACd,cAAe,CACjB,CACF,GAGN,GACO,CACT,CAEA,aAAa,CAAU,CAAE,CACvB,IAAI,EAAO,SAAS,gBAAgB,CAAC,gBACjC,EAAQ,CAAA,EACR,EAAQ,IAAI,CA2JhB,OA1JA,EAAK,OAAO,CAAC,AAAC,QACR,EAIA,CAHD,CAAA,IAAI,CAAC,cAAc,CAAC,MAAS,CAAC,YAAe,EAAE,QAAU,KAAA,GAC1D,CAAA,EAAS,IAAI,CAAC,cAAc,CAAC,MAAS,CAAC,YAAe,EAAE,MAD1D,EAIG,IAAI,CAAC,cAAc,CAAC,MAAS,CAAC,YAAe,EAAE,QAAU,KAAA,GAC1D,CAAA,EAAS,IAAI,CAAC,cAAc,CAAC,MAAS,CAAC,YAAe,EAAE,MAD1D,EAGA,IAAI,EAAY,EAAI,YAAY,CAAC,eAAiB,GAC9C,EAAmB,EACvB,QAAQ,GAAG,CAAC,YAAc,EAAS,WAAa,GAC7C,GAAU,GAAU,AAAU,cAAV,GAA0B,EAAM,QAAQ,CAAC,EAAY,IAAM,EAAO,GACvF,QAAQ,GAAG,CAAC,sBAEZ,QAAQ,GAAG,CAAC,cADZ,CAAA,EAAY,EAAY,IAAM,CAA9B,EACwC,IAAM,IAG7C,GAAU,GAAU,AAAU,cAAV,GAA0B,EAAM,QAAQ,CAAC,EAAY,IAAM,EAAO,GACvF,QAAQ,GAAG,CAAC,sBAEZ,QAAQ,GAAG,CAAC,cADZ,CAAA,EAAY,EAAY,IAAM,CAA9B,EACwC,IAAM,IAIhD,IAAI,EAAc,EAAM,QAAQ,CAAC,EAAU,EAAE,MAAO,CAAC,EACjD,AAAkC,eAAlC,EAAM,QAAQ,CAAC,EAAU,CAAC,IAAI,CAC9B,CACE,SAAU,CACR,UAAW,CAAA,EACX,SAAU,mBACZ,CACF,EACA,CAAC,CAEH,CAAA,EAAM,QAAQ,CAAC,EAAU,EACzB,EAAM,QAAQ,CAAC,EAAU,EAAE,OAAO,aAElC,CAAA,EAAc,EAAM,QAAQ,CAAC,EAAU,CAAC,KAAQ,CAAC,WAAc,AAAd,EAEnD,IAAI,EAAS,GA+Fb,GA9FgB,UAAb,IACD,QAAQ,GAAG,CAAC,aAAe,GACxB,IAAI,CAAC,cAAc,CAAC,MAAS,CAAC,cAAiB,EAChD,IAAI,CAAC,cAAc,CAAC,MAAS,CAAC,cAAiB,CAAC,OAAO,CAAC,AAAA,IACnD,EAAE,MAAS,EAAI,EAAE,MAAS,CAAC,IAAO,GACnC,QAAQ,GAAG,CAAC,eAAiB,EAAE,MAAS,CAAC,IAAO,EAC7C,EAAE,MAAS,EAAI,AAAuB,UAAvB,EAAE,MAAS,CAAC,IAAO,EAAgB,EAAE,MAAS,CAAC,WAAc,EAC7E,EAAE,MAAS,CAAC,WAAc,CAAC,OAAO,CAAC,AAAA,IAEjC,GADA,QAAQ,GAAG,CAAC,eAAiB,GAC1B,AAAa,aAAb,EAAE,IAAO,CAAiB,CAC3B,EAAY,QAAW,CAAC,SAAY,CAAG,EAAE,QAAW,CACpD,MACF,CACF,GAGN,IAGJ,OAAO,IAAI,CAAC,GAAa,OAAO,CAAC,AAAC,IAChC,OAAQ,GACN,IAAK,WACH,GAAI,CAAW,CAAC,EAAI,CAAC,SAAY,EAC/B,GAAI,AAAe,UAAf,EAAI,OAAO,EAAgB,AAAqB,GAArB,EAAI,aAAa,CAC9C,GAAU,CAAW,CAAC,EAAI,CAAC,QAAW,CAAG,SACpC,GAAI,AAA6B,SAA7B,EAAI,YAAY,CAAC,QACrB,EAAI,KAAK,CAAC,MAAM,EACnB,CAAA,GAAU,CAAW,CAAC,EAAI,CAAC,QAAW,CAAG,GAD3C,OAGK,GAAI,AAAe,YAAf,EAAI,OAAO,EACpB,GAAI,AAA4B,eAA5B,EAAI,YAAY,CAAC,QAEhB,GAAK,cAAc,CAAC,OAAO,EAAE,EAAiB,UAAU,CAAC,GAAG,OAE7D,CAAA,GAAU,CAAW,CAAC,EAAI,CAAC,QAAW,CAAG,GAH3C,OAKK,GAAI,AAA4B,kBAA5B,EAAI,YAAY,CAAC,QAEvB,GAAK,cAAc,CAAC,OAAO,EAAE,EAAiB,UAAU,CAAC,GAAG,OAE7D,CAAA,GAAU,CAAW,CAAC,EAAI,CAAC,QAAW,CAAG,GAH3C,OAKK,GAAI,AAA4B,aAA5B,EAAI,YAAY,CAAC,QAAwB,CAClD,IAAI,EAAU,EAAM,QAAQ,CAAC,EAAU,CAAC,EAAK,CAAG,OAC5C,EAAW,EAAM,QAAQ,CAAC,EAAU,CAAC,EAAK,CAAG,QAE7C,EAAY,GAAK,cACnB,CAAC,OAAO,EAAE,EAAQ,UAAU,CAAC,GAC5B,MACC,EAAa,GAAK,cACpB,CAAC,OAAO,EAAE,EAAS,UAAU,CAAC,GAC7B,MAEE,GAAc,GACjB,CAAA,GAAU,CAAW,CAAC,EAAI,CAAC,QAAW,CAAG,GAD3C,CAGF,OACU,GAAK,OAAU,EAAI,KAAK,CAAC,IAAI,IACvC,CAAA,GAAU,CAAW,CAAC,EAAI,CAAC,QAAW,CAAG,GAD3C,EAKF,KACF,KAAK,YAED,CAAW,CAAC,EAAI,CAAC,MAAS,EAC1B,EAAI,KAAK,EAAI,EAAI,KAAK,CAAC,IAAI,IAC3B,EAAI,KAAK,CAAC,IAAI,GAAG,MAAM,CAAG,CAAW,CAAC,EAAI,CAAC,MAAS,EAEpD,CAAA,GAAU,CAAW,CAAC,EAAI,CAAC,QAAW,CAAG,GAL3C,EAOA,KACF,KAAK,YAED,CAAW,CAAC,EAAI,CAAC,MAAS,EAC1B,EAAI,KAAK,EAAI,EAAI,KAAK,CAAC,IAAI,IAC3B,EAAI,KAAK,CAAC,IAAI,GAAG,MAAM,CAAI,CAAW,CAAC,EAAI,CAAC,MAAS,EAErD,CAAA,GAAU,CAAW,CAAC,EAAI,CAAC,QAAW,CAAG,GAL3C,EAOA,KACF,KAAK,UACC,CAAW,CAAC,EAAI,CAAC,KAAQ,EACvB,GAAK,OAEH,CAAC,AADK,AAAI,OAAO,CAAW,CAAC,EAAI,CAAC,KAAQ,CAAC,KACtC,IAAI,CAAC,GAAK,QACjB,CAAA,GAAU,CAAW,CAAC,EAAI,CAAC,QAAW,AAAX,CAMrC,CACF,GACI,CAAC,EAAY,CACf,IAAI,EAAM,GACN,QAAQ,IACR,cAAc,oBACd,GACF,EAAQ,CAAA,EACH,GAIH,AAHA,CAAA,EAAM,AAAA,EAAqB,OAAQ,CACjC,MAAO,iBACT,EAAA,EACI,SAAS,CAAC,GAAG,CAAC,mBAEpB,EAAI,SAAS,CAAG,EAChB,GAAK,QAAQ,IAAsB,YAAY,IACtC,GACT,CAAA,EAAI,SAAS,CAAG,EADlB,CAGF,CACF,GACO,CACT,CAEA,uBAAwB,CACtB,IAAI,EAAW,IAAI,CAAC,2BAA2B,EAE3C,CAAA,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAEzC,IAAI,CAAC,sBAAsB,CAAC,GAG5B,AAAA,GACG,WAAW,CACV,6HAED,IAAI,CAAC,AAAC,IACL,EAAS,IAAI,CAAC,OAAO,CAAC,AAAC,IACrB,OAAO,IAAI,CAAC,EAAI,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAC/C,AAAC,IAEG,EAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAAa,CAAC,IAAI,GAC/C,GAEA,CAAA,IAAI,CAAC,cAAc,CAAC,EAAa,CAAG,CAJtC,CAMF,EAEJ,GACA,IAAI,CAAC,sBAAsB,CAAC,EAE9B,EAEN,CAEA,uBAAuB,CAAQ,CAAC,CAC9B,IAAI,EAAmB,CAAC,EACpB,EAAU,CACZ,OAAQ,CACN,OAAQ,CACN,MAAO,GACP,YAAa,GACb,KAAM,SACN,WAAY,CAAC,EACb,SAAU,EAAE,AACd,CACF,CACF,EACI,EAAW,CAAC,EAChB,OAAO,IAAI,CAAC,GAAU,OAAO,CAAC,AAAC,IAC7B,GAAI,IAAI,CAAC,QAAQ,CAAC,EAAY,CAAE,CAC9B,IAAI,EAAW,IAAI,CAAC,QAAQ,CAAC,EAAY,CAAC,QAAW,CACjD,IACF,CAAkB,CAAC,EAAS,CAAG,EAC5B,CAAQ,CAAC,EAAY,EAAI,CAAQ,CAAC,EAAY,CAAC,IAAI,IACpD,CAAA,CAAQ,CAAC,EAAS,CAAG,CAAQ,CAAC,EAAY,AAAZ,EAEhC,EAAQ,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAAS,CACxC,IAAI,CAAC,cAAc,CAAC,EAAS,EAAE,QAAQ,QAAQ,UAAU,CAAC,EAAS,CACnE,EAAQ,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAE1C,CACF,GACA,EAAQ,QAAW,CAAG,EACtB,AAAA,GAAW,YAAY,CACnB,yDACA,CAAC,EACD,GAED,IAAI,CAAC,AAAC,IAEL,GADA,QAAQ,GAAG,CAAC,WAAY,EAAU,GAC/B,AAAmB,WAAnB,EAAS,MAAM,CAAc,CAC9B,IAAI,EAAS,CAAC,EACd,EAAS,MAAS,CAAC,OAAO,CAAC,AAAA,IACzB,GAAG,EAAQ,QAAW,CAAE,CACtB,IAAI,EAAO,EAAQ,QAAW,CAAC,MAAM,CAAC,EAAG,EAAQ,QAAW,CAAC,MAAM,CACnE,CAAA,CAAM,CAAC,EAAK,CAAG,CAAA,EACf,IAAI,EAAM,UACR,cAAc,gBAAgB,CAAkB,CAAC,EAAK,CAAC,MACzD,GAAG,EAAI,CACL,IAAI,EAAM,GACR,QAAQ,IACR,cAAc,mBACZ,CAAA,EAAQ,OAAU,EAEf,GAIH,AAHA,CAAA,EAAM,AAAA,EAAqB,OAAQ,CACjC,MAAO,iBACT,EAAA,EACI,SAAS,CAAC,GAAG,CAAC,mBAEpB,EAAI,SAAS,CAAG,IAAI,CAAC,QAAQ,CAAC,CAAkB,CAAC,EAAK,CAAC,CAAC,IAAO,CAAC,IAAK,EAAQ,OAAU,CACvF,GAAK,QAAQ,IAAsB,YAAY,IACtC,GACT,CAAA,EAAI,SAAS,CAAG,EADlB,CAIF,CACF,CACF,GAEA,OAAO,IAAI,CAAC,GAAU,OAAO,CAAC,AAAA,IAC5B,GAAG,CAAC,CAAM,CAAC,EAAQ,CAAC,CAClB,IAAI,EAAM,UACR,cAAc,gBAAgB,EAAQ,MACpC,EAAM,GACR,QAAQ,IACR,cAAc,oBACb,GACD,CAAA,EAAI,SAAS,CAAG,EADlB,CAGF,CACF,EAGF,CACF,EAEJ,CACF,EwBnZA,GAbA,MACI,YAAY,CAAK,CAAC,CACd,IAAI,CAAC,KAAK,CAAG,CAEjB,CACA,mBAAmB,CAAS,CAAE,CAAG,CAAE,CAAW,CAAC,CAE3C,EAAI,SAAS,CAAG,yIAEhB,OAAO,GAAG,CAAC,QAAQ,CAAC,uBAAuB,EAC/C,CAEJ,EEZO,IAAM,GAAa,KACtB,IAAI,EAAM,SAAS,aAAa,CAAC,uBACjC,GAAG,EAAI,CACH,IAAI,EAAmB,EAAI,aAAa,CAAC,uBAEzC,GAAG,EACC,EAAiB,KAAK,CAAC,OAAO,CAAG,YAEhC,CACD,IAAI,EAAY,SAAS,aAAa,CAAC,OACvC,EAAU,YAAY,CAAC,QAAQ,cAC/B,EAAU,YAAY,CAAC,oBAAqB,CAAA,GAC5C,IAAI,EAAU,SAAS,aAAa,CAAC,OACrC,EAAO,YAAY,CAAC,MAAO,uGAC3B,EAAU,WAAW,CAAC,GACtB,EAAI,WAAW,CAAC,EAEpB,CAIJ,CAEJ,EAEa,GAAa,KACtB,IAAI,EAAM,SAAS,aAAa,CAAC,uBACjC,GAAG,EAAI,CACH,IAAI,EAAmB,EAAI,aAAa,CAAC,uBACtC,GACC,CAAA,EAAiB,KAAK,CAAC,OAAO,CAAG,MADrC,CAIJ,CAIJ,ED0EA,IAAA,GA9GA,MACE,UAAY,EAAG,AACf,CAAA,UAAW,EAAG,AACd,aAAY,CAAS,CAAE,CACrB,IAAI,CAAC,SAAS,CAAG,EACjB,IAAI,CAAC,SAAS,CAAG,IAAI,IAAI,SAAS,IAAI,EAAE,MAAM,AAChD,CACA,iBAAiB,CAAI,CAAE,CACrB,GAAM,CAAA,OAAE,CAAM,CAAA,OAAE,CAAM,CAAA,OAAE,CAAM,CAAE,CAAG,OAAO,KAAQ,AAClD,CAAA,CAAI,CAAC,cAAc,CAAG,EACtB,CAAI,CAAC,eAAe,CAAG,kBACzB,CACA,iBAAiB,CAAI,CAAE,CACrB,GAAM,CAAA,OAAE,CAAM,CAAA,OAAE,CAAM,CAAA,OAAE,CAAM,CAAA,SAAE,CAAQ,CAAE,CAAG,OAAO,KAAQ,CAG5D,OADA,EAAO,CAAE,GAAG,CAAI,CAAE,OAAA,EAAQ,OAAA,EAAQ,OAAA,EAAQ,SAAA,CAAS,CAErD,CACA,aAAa,CAAQ,CAAE,CAAO,CAAE,CAAO,CAAE,CACvC,GAAI,CAOF,OANA,EAAQ,MAAM,CAAG,OAAO,KAAQ,CAAC,MAAM,CACvC,EAAW,AAA6B,IAA7B,EAAS,OAAO,CAAC,SAAiB,EAAY,IAAI,CAAC,SAAS,CAAC,IAAI,EACxE,CAAO,CAAC,eAAe,EACzB,CAAA,CAAO,CAAC,eAAe,CAAE,kBAD3B,EAIO,MAAM,EAAU,CACrB,OAAQ,OACR,QAAA,EACA,KAAM,KAAK,SAAS,CAAC,EACvB,GAAG,IAAI,CAAC,AAAC,GAAa,EAAS,IAAI,GACrC,CAAE,MAAO,EAAO,CAEd,OADA,QAAQ,KAAK,CAAC,GACP,IAAI,QAAQ,CAAC,EAAS,IAAW,EAAQ,CAAC,GACnD,CACF,CACA,wBAAwB,CAAQ,CAAE,CAAO,CAAE,CAAO,CAAE,CAClD,GAAI,CAKF,OAJA,EAAQ,MAAM,CAAG,OAAO,KAAQ,CAAC,MAAM,CACvC,EAAW,AAA6B,IAA7B,EAAS,OAAO,CAAC,SAAiB,EAAY,IAAI,CAAC,SAAS,CAAC,IAAI,EAGrE,MAAM,EAAU,CACrB,OAAQ,OACR,KAAM,CACR,GAAG,IAAI,CAAC,AAAC,GAAa,EAAS,IAAI,GACrC,CAAE,MAAO,EAAO,CAEd,OADA,QAAQ,KAAK,CAAC,GACP,IAAI,QAAQ,CAAC,EAAS,IAAW,EAAQ,CAAC,GACnD,CACF,CACA,YAAY,CAAQ,CAAE,EAAQ,CAAC,CAAC,CAAC,CAC/B,GAAI,CAGF,OAFA,EAAW,AAA6B,IAA7B,EAAS,OAAO,CAAC,SAAiB,EAAY,IAAI,CAAC,SAAS,CAAC,IAAI,EAErE,MAAM,EAAU,CACrB,OAAQ,MACR,QAAA,CACF,GAAG,IAAI,CAAC,AAAC,GAAa,EAAS,IAAI,GACrC,CAAE,MAAO,EAAO,CAEd,OADA,QAAQ,KAAK,CAAC,GACP,IAAI,QAAQ,CAAC,EAAS,IAAW,EAAQ,CAAC,GACnD,CACF,CACA,oBAAoB,CAAI,CAAE,CAAQ,CAAE,CAClC,IAAI,EAAa,OAAO,KAAQ,CAChC,OAAO,EAAO,CACZ,GAAG,CAAI,CACP,OAAO,EAAW,MAAM,CACxB,OAAQ,EAAW,MAAM,CACzB,OAAQ,EACR,YAAY,MACZ,SAAS,EAAW,QAAQ,CAC5B,WAAW,UACX,SAAU,EAAW,QAAQ,AAW/B,CACF,CACA,YAAY,CAAM,CAAE,CAAO,CAAE,CAAU,CAAE,CACvC,GAAI,CACF,AAAA,KACA,IAAI,CAAC,gBAAgB,CAAC,GACtB,IAAI,EAAU,CACZ,GAAG,CAAU,AACf,EAEA,OADA,EAAU,IAAI,CAAC,mBAAmB,CAAC,EAAS,GACrC,MAAM,IAAI,CAAC,SAAS,CAAE,CAC3B,OAAQ,OACR,QAAA,EACA,KAAM,KAAK,SAAS,CAAC,EACvB,GAAG,IAAI,CAAC,AAAC,IACP,AAAA,KACO,EAAS,IAAI,IAExB,CAAE,MAAO,EAAO,CAGd,OAFA,QAAQ,KAAK,CAAC,GACd,AAAA,KACO,IAAI,QAAQ,CAAC,EAAS,IAAW,EAAQ,CAAC,GACnD,CACF,CACF,EE1CA,GApEA,MACI,cAAc,CAAK,CAAC,CAChB,IAAI,CAAC,KAAK,CAAG,CACjB,CACA,SAAS,CAAG,CAAE,CAAQ,CAAE,CAAG,CAAE,CAEzB,GAAI,CADsB,SAAS,aAAa,CAAC,kBAAoB,EAAW,MACxD,KAChB,EACA,GAEA,AADA,CAAA,EAAY,SAAS,aAAa,CAAC,OAAnC,EACU,YAAY,CAAC,eAAgB,GACvC,EAAU,YAAY,CAAC,MAAO,cAC9B,EAAU,YAAY,CAAC,OAAQ,IACxB,IAEP,AADA,CAAA,EAAY,SAAS,aAAa,CAAC,QAAnC,EACU,YAAY,CAAC,eAAgB,GACvC,EAAU,SAAS,CAAG,GAE1B,IAAM,EAAW,SAAS,aAAa,CAAC,kBAAoB,SAAS,aAAa,CAAC,QAC/E,GAAY,GACZ,EAAS,aAAa,EAAE,aAAa,EAAW,EAExD,CACJ,CAEA,cAAc,CAAG,CAAC,CACd,IAAI,EAAW,SAAS,MAAM,CAExB,EAAc,AADpB,CAAA,EAAW,EAAS,SAAS,CAAC,EAA9B,EAC6B,KAAK,CAAC,KACnC,IAAK,IAAI,EAAI,EAAG,EAAI,EAAY,MAAM,CAAE,IAAK,CACzC,IAAI,EAAK,CAAW,CAAC,EAAE,CAEvB,GAAI,AADJ,CAAA,EAAK,EAAG,KAAK,CAAC,IAAd,EACO,MAAM,CAAG,GAAK,CAAE,CAAC,EAAE,GAAK,EAG3B,OAFA,EAAG,KAAK,GAED,mBADO,EAAG,IAAI,CAAC,KAG9B,CACF,CAEA,mBAAmB,CAAU,CAAC,CAC5B,MAAO,YAAY,MAAM,MAAM,CAAC,IAAI,EAAW,IAAI,MAAM,QAAQ,AACnE,CACA,oBAAoB,CAAG,CAAE,CAAI,CAAC,CAC5B,aAAa,OAAO,CAAC,EAAK,KAAK,SAAS,CAAC,GAC3C,CACA,oBAAoB,CAAG,CAAC,CACvB,OAAQ,KAAK,KAAK,CAAC,aAAa,OAAO,CAAC,IAAQ,KAEjD,CACA,yBAA0B,CAAe,CAAE,CAAK,CAAE,CAAO,CAAE,CAAS,CAAE,CAAE,CAAC,CACvE,IAAI,EAAU,EAEV,EAAW,YAAY,KACvB,IAAI,EAAS,EAAgB,aAAa,CAAC,GACxC,GACC,cAAc,GACd,EAAG,IAEE,EAAW,IAChB,cAAc,GACd,EAAG,CAAA,IAEP,GAEJ,EAAG,EACL,CACN,EhC1DO,IAAO,GAAK,CAAC,CAEpB,CAAA,OAAO,EAAE,CAAG,GACZ,GAAG,KAAK,CAAG,CAAC,EACZ,GAAG,KAAK,CAAC,SAAS,CAAG,AkBeL,ElBfY,SAAS,CACrC,GAAG,KAAK,CAAC,SAAS,CAAG,AkBcL,ElBdY,SAAS,CAE9B,IAAM,GAAiB,IAAI,EAAe,GAAG,KAAK,EAC5C,GAAe,IAAI,EAAqB,GAAG,KAAK,EAChD,GAAoB,IAAI,EAAkB,GAAG,KAAK,EAClD,GAAe,IAAI,GAAa,GAAG,KAAK,EACxC,GAAuB,IAAI,GAAqB,GAAG,KAAK,EACxD,GAAa,IAAI,GAAW,GAAG,KAAK,CAAC,SAAS,EAC9C,GAAgB,IAAI,GAAc,GAAG,KAAK,EDXvD,GCcA,GAAG,KAAK,CAAC,cAAc,CAAG,GAC1B,GAAG,KAAK,CAAC,YAAY,CAAG,GACxB,GAAG,KAAK,CAAC,iBAAiB,CAAG,GAC7B,GAAG,KAAK,CAAC,YAAY,CAAG,GACxB,GAAG,KAAK,CAAC,oBAAoB,CAAG,GAChC,GAAG,KAAK,CAAC,UAAU,CAAG,GACtB,GAAG,KAAK,CAAC,aAAa,CAAG,GD5Bb,OAAO,KAAK,CAExB,AAAA,GAAG,KAAK,CAAC,wBAAwB,CAAG,CAAC,EACrC,AAAA,GAAG,KAAK,CAAC,UAAU,CA+EnB,SAAoB,CAAG,CAAE,EAAO,iBAAiB,EAC3C,AAAA,GAAG,KAAK,CAAC,wBAAwB,CAAC,EAAK,CACzC,AAAA,GAAG,KAAK,CAAC,YAAY,CAAC,UAAU,CAC9B,EACA,AAAA,GAAG,KAAK,CAAC,wBAAwB,CAAC,EAAK,EAGzC,AAAA,GAAG,KAAK,CAAC,UAAU,CAChB,WAAW,CAAC,OAAO,SAAS,CAAC,wBAAwB,CAAE,CAAC,EAAG,CAAE,KAAA,CAAK,GAClE,IAAI,CAAC,AAAC,IACL,QAAQ,GAAG,CAAC,MAAO,EACrB,EAEN,EA3FA,AAAA,GAAG,KAAK,CAAC,WAAW,CAAG,GACvB,OAAO,KAAQ,CAAC,QAAQ,CAAG,AAAA,GAAG,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC,YAEhE,OAAO,KAAQ,CAAC,OAAO,CAAC,CAAA,EAEtB,OAAO,YAAY,EACnB,AAA0C,yBAA1C,OAAO,YAAY,CAAC,YAAY,CAAC,MACjC,CACA,IAAI,EAAQ,EACR,EAAO,YAAY,KACrB,GAAI,OAAO,kBAAkB,CAE3B,CAAA,GADA,cAAc,GACV,OAAO,YAAY,CAAE,CACvB,IAAI,EAAM,SAAS,aAAa,CAAC,QACjC,AAAA,GAAG,KAAK,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAK,OAAO,YAAY,EACnE,AAAA,GAAG,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,GACjC,AAAA,GAAG,KAAK,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,EAAG,EAAK,OAAO,YAAY,CACvE,CAAA,MACS,EAAQ,IACjB,cAAc,EAEhB,CAAA,GACF,EAAG,IACL,MAAW,OAAO,KAAQ,EAAI,CAAC,OAAO,YAAY,EAChD,AAAA,GAAG,KAAK,CAAC,iBAAiB,CAAC,oBAAoB,GAAG,IAAI,CAAC,AAAC,IACtD,GAAI,EAAK,CACP,IAAI,EAAU,EACV,EAAe,YAAY,KACzB,UAAY,UACd,cAAc,GACd,OAAO,IAAI,CAAC,GAAK,OAAO,CAAC,AAAC,IACxB,GAAI,CAAG,CAAC,EAAI,EAAI,CAAG,CAAC,EAAI,CAAC,UAAa,CAAE,CACtC,IAAI,EAAW,CAAG,CAAC,EAAI,CAAC,UAAa,CACrC,GAAI,EAAU,CACZ,IAAI,EACF,AAAA,GAAG,KAAK,CAAC,cAAc,CAAC,qBAAqB,CAAC,GAChD,GAAI,IACF,AAAA,GAAG,KAAK,CAAC,cAAc,CAAC,aAAa,CACnC,gBACA,EACA,GAGA,GACA,GAAU,QAAQ,QAAQ,cAAc,cACpC,aACJ,CACA,IAAI,EAAc,SAAS,aAAa,CACtC,wBACE,EAAS,kBAAkB,CAC3B,MAEA,GACF,AAAA,GAAG,KAAK,CAAC,cAAc,CAAC,kBAAkB,CACxC,EACA,EAAS,MAAM,CAAC,MAAM,CAG5B,CAEF,AAAA,GAAG,KAAK,CAAC,YAAY,CAAC,YAAY,CAAC,EACrC,CACF,CACF,IAGS,EAAU,IACnB,cAAc,GAEhB,GACF,EAAG,IAEL,CACF,E,C","sources":["","src/main.js","src/instanceWrapper.js","src/renderer/ScreenRenderer.js","src/utils/constants.js","src/orchestrator/WorkflowOrchestrator.js","src/resolution/ResolutionManager.js","src/renderer/FormRenderer.js","src/renderer/field-renderers/renderElement.js","src/renderer/field-renderers/field-input.js","src/renderer/field-renderers/appendDataPS.js","src/renderer/field-renderers/updateAttributes.js","src/renderer/field-renderers/createWrapper.js","src/renderer/field-renderers/field-radio.js","src/renderer/field-renderers/updateOptions.js","src/renderer/field-renderers/field-paragraph.js","src/renderer/field-renderers/field-dropdown.js","src/renderer/field-renderers/field-heading.js","src/renderer/field-renderers/field-legend.js","src/renderer/field-renderers/field-file.js","src/config/config.js","src/renderer/field-renderers/field-checkbox.js","src/renderer/field-renderers/field-yesno.js","src/renderer/field-renderers/field-sjtQuestion.js","src/renderer/field-renderers/assessmentAnswers.js","src/renderer/field-renderers/field-rating.js","src/renderer/field-renderers/field-listening.js","src/renderer/field-renderers/field-reading.js","src/renderer/field-renderers/field-grammar.js","src/renderer/field-renderers/field-languagelandingpage.js","src/renderer/field-renderers/conditionalRendering.js","src/renderer/GlobalWidgetRenderer.js","src/utils/service.js","src/utils/loader.js","src/utils/common.js"],"sourcesContent":["(() => {\n//This component is responsible for rendering the UI based on the workflow.\nconst $768a17376248dce8$var$formData = {\n firstName: {\n name: \"Enter your first name\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter your first name\",\n type: \"text\"\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"First name is required\"\n },\n maxLength: {\n length: 25,\n errorMsg: \"First name should not exceed 25 characters\"\n },\n minLength: {\n length: 1,\n errorMsg: \"First name should be atleast 1 character\"\n }\n }\n },\n key: \"firstName\",\n applyKey: \"firstName\"\n },\n firstName_nl_nl: {\n name: \"Enter your first name\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter your first name\",\n type: \"text\"\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Voornaam is verplicht\"\n },\n maxLength: {\n length: 25,\n errorMsg: \"De voornaam mag niet langer zijn dan 25 tekens\"\n },\n minLength: {\n length: 1,\n errorMsg: \"Voornaam moet minimaal 1 teken lang zijn\"\n }\n }\n },\n key: \"firstName\",\n applyKey: \"firstName\"\n },\n firstName_da_dk: {\n name: \"Enter your first name\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter your first name\",\n type: \"text\"\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Fornavn er p\\xe5kr\\xe6vet\"\n },\n maxLength: {\n length: 25,\n errorMsg: \"Fornavn m\\xe5 ikke overstige 25 tegn\"\n },\n minLength: {\n length: 1,\n errorMsg: \"Fornavn skal v\\xe6re p\\xe5 mindst 1 tegn\"\n }\n }\n },\n key: \"firstName\",\n applyKey: \"firstName\"\n },\n firstName_es_mx: {\n name: \"Enter your first name\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter your first name\",\n type: \"text\"\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"El nombre es obligatorio\"\n },\n maxLength: {\n length: 25,\n errorMsg: \"El nombre no debe superar los 25 caracteres\"\n },\n minLength: {\n length: 1,\n errorMsg: \"El nombre debe tener al menos 1 car\\xe1cter\"\n }\n }\n },\n key: \"firstName\",\n applyKey: \"firstName\"\n },\n firstName_de_de: {\n name: \"Enter your first name\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter your first name\",\n type: \"text\"\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Vorname ist erforderlich\"\n },\n maxLength: {\n length: 25,\n errorMsg: \"Vorname darf nicht l\\xe4nger als 25 Zeichen sein\"\n },\n minLength: {\n length: 1,\n errorMsg: \"Vorname darf mindestens 1 Zeichen lang sein\"\n }\n }\n },\n key: \"firstName\",\n applyKey: \"firstName\"\n },\n firstName_fr_fr: {\n name: \"Enter your first name\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter your first name\",\n type: \"text\"\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Le pr\\xe9nom est obligatoire\"\n },\n maxLength: {\n length: 25,\n errorMsg: \"Le pr\\xe9nom ne doit pas d\\xe9passer 25 caract\\xe8res\"\n },\n minLength: {\n length: 1,\n errorMsg: \"Le pr\\xe9nom doit comporter au moins 1 caract\\xe8re\"\n }\n }\n },\n key: \"firstName\",\n applyKey: \"firstName\"\n },\n firstName_cz_cz: {\n name: \"Enter your first name\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter your first name\",\n type: \"text\"\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Jm\\xe9no je povinn\\xe9\"\n },\n maxLength: {\n length: 25,\n errorMsg: \"Jm\\xe9no by nem\\u011Blo p\\u0159es\\xe1hnout 25 znak\\u016F\"\n },\n minLength: {\n length: 1,\n errorMsg: \"Jm\\xe9no by m\\u011Blo m\\xedt alespo\\u0148 1 znak\"\n }\n }\n },\n key: \"firstName\",\n applyKey: \"firstName\"\n },\n firstName_it_it: {\n name: \"Enter your first name\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter your first name\",\n type: \"text\"\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Il nome \\xe8 obbligatorio\"\n },\n maxLength: {\n length: 25,\n errorMsg: \"Il nome non deve superare i 25 caratteri\"\n },\n minLength: {\n length: 1,\n errorMsg: \"Il nome deve essere lungo almeno 1 carattere\"\n }\n }\n },\n key: \"firstName\",\n applyKey: \"firstName\"\n },\n firstName_lt_lt: {\n name: \"Enter your first name lt\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter your first name lt\",\n type: \"text\"\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Privalote tai u\\u017Epildyti\"\n },\n maxLength: {\n length: 25,\n errorMsg: \"Vardas neturi vir\\u0161yti 25 simboli\\u0173\"\n },\n minLength: {\n length: 1,\n errorMsg: \"Vard\\u0105 turi sudaryti bent 1 simbolis\"\n }\n }\n },\n key: \"firstName\",\n applyKey: \"firstName\"\n },\n lastName: {\n name: \"Enter your last name\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter your last name\",\n type: \"text\"\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Last name is required\"\n },\n maxLength: {\n length: 25,\n errorMsg: \"Last name should not exceed 25 characters\"\n }\n }\n },\n key: \"lastName\",\n applyKey: \"lastName\"\n },\n lastName_nl_nl: {\n name: \"Enter your last name\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter your last name\",\n type: \"text\"\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Achternaam is verplicht\"\n },\n maxLength: {\n length: 25,\n errorMsg: \"De achternaam mag niet langer zijn dan 25 tekens\"\n }\n }\n },\n key: \"lastName\",\n applyKey: \"lastName\"\n },\n lastName_da_dk: {\n name: \"Enter your last name\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter your last name\",\n type: \"text\"\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Efternavn er p\\xe5kr\\xe6vet\"\n },\n maxLength: {\n length: 25,\n errorMsg: \"Efternavn m\\xe5 ikke overstige 25 tegn\"\n }\n }\n },\n key: \"lastName\",\n applyKey: \"lastName\"\n },\n lastName_es_mx: {\n name: \"Enter your last name\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter your last name\",\n type: \"text\"\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"El apellido es obligatorio\"\n },\n maxLength: {\n length: 25,\n errorMsg: \"El apellido no debe superar los 25 caracteres\"\n }\n }\n },\n key: \"lastName\",\n applyKey: \"lastName\"\n },\n lastName_de_de: {\n name: \"Enter your last name\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter your last name\",\n type: \"text\"\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Nachname ist erforderlich\"\n },\n maxLength: {\n length: 25,\n errorMsg: \"Nachname darf nicht l\\xe4nger als 25 Zeichen sein\"\n }\n }\n },\n key: \"lastName\",\n applyKey: \"lastName\"\n },\n lastName_fr_fr: {\n name: \"Enter your last name\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter your last name\",\n type: \"text\"\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Le nom de famille est obligatoire\"\n },\n maxLength: {\n length: 25,\n errorMsg: \"Le nom de famille ne doit pas d\\xe9passer 25 caract\\xe8res\"\n }\n }\n },\n key: \"lastName\",\n applyKey: \"lastName\"\n },\n lastName_cz_cz: {\n name: \"Enter your last name\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter your last name\",\n type: \"text\"\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"P\\u0159\\xedjmen\\xed je povinn\\xe9\"\n },\n maxLength: {\n length: 25,\n errorMsg: \"P\\u0159\\xedjmen\\xed by nem\\u011Blo p\\u0159es\\xe1hnout 25 znak\\u016F\"\n }\n }\n },\n key: \"lastName\",\n applyKey: \"lastName\"\n },\n lastName_it_it: {\n name: \"Enter your last name\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter your last name\",\n type: \"text\"\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Il cognome \\xe8 obbligatorio\"\n },\n maxLength: {\n length: 25,\n errorMsg: \"Il cognome non deve superare i 25 caratteri\"\n }\n }\n },\n key: \"lastName\",\n applyKey: \"lastName\"\n },\n lastName_lt_lt: {\n name: \"Enter your last name\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter your last name\",\n type: \"text\"\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Privalote tai u\\u017Epildyti\"\n },\n maxLength: {\n length: 25,\n errorMsg: \"Pavard\\u0117 neturi vir\\u0161yti 25 simboli\\u0173\"\n }\n }\n },\n key: \"lastName\",\n applyKey: \"lastName\"\n },\n email: {\n name: \"Enter your email\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter your email\",\n type: \"text\"\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Email is required\"\n },\n pattern: {\n regex: \"[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\",\n errorMsg: \"Please enter a valid email\"\n }\n }\n },\n key: \"email\",\n applyKey: \"userEmail\"\n },\n email_nl_nl: {\n name: \"Enter your email\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter your email\",\n type: \"text\"\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"E-mailadres is verplicht\"\n },\n pattern: {\n regex: \"[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\",\n errorMsg: \"Voer een geldig e-mailadres in\"\n }\n }\n },\n key: \"email\",\n applyKey: \"userEmail\"\n },\n email_da_dk: {\n name: \"Enter your email\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter your email\",\n type: \"text\"\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"E-mail er p\\xe5kr\\xe6vet\"\n },\n pattern: {\n regex: \"[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\",\n errorMsg: \"Indtast venligst en gyldig e-mail\"\n }\n }\n },\n key: \"email\",\n applyKey: \"userEmail\"\n },\n email_es_mx: {\n name: \"Enter your email\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter your email\",\n type: \"text\"\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"El correo electr\\xf3nico es obligatorio\"\n },\n pattern: {\n regex: \"[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\",\n errorMsg: \"Ingrese un correo electr\\xf3nico v\\xe1lido\"\n }\n }\n },\n key: \"email\",\n applyKey: \"userEmail\"\n },\n email_de_de: {\n name: \"Enter your email\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter your email\",\n type: \"text\"\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"E-Mail ist erforderlich\"\n },\n pattern: {\n regex: \"[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\",\n errorMsg: \"Bitte geben Sie eine g\\xfcltige E-Mail-Adresse ein\"\n }\n }\n },\n key: \"email\",\n applyKey: \"userEmail\"\n },\n email_fr_fr: {\n name: \"Enter your email\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter your email\",\n type: \"text\"\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"L'adresse e-mail est obligatoire\"\n },\n pattern: {\n regex: \"[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\",\n errorMsg: \"Veuillez saisir une adresse e-mail valide\"\n }\n }\n },\n key: \"email\",\n applyKey: \"userEmail\"\n },\n email_cz_cz: {\n name: \"Enter your email\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter your email\",\n type: \"text\"\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"E-mail je povinn\\xfd\"\n },\n pattern: {\n regex: \"[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\",\n errorMsg: \"Zadejte pros\\xedm platn\\xfd e-mail\"\n }\n }\n },\n key: \"email\",\n applyKey: \"userEmail\"\n },\n email_it_it: {\n name: \"Enter your email\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter your email\",\n type: \"text\"\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"L'email \\xe8 obbligatoria\"\n },\n pattern: {\n regex: \"[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\",\n errorMsg: \"Inserisci un indirizzo email valido\"\n }\n }\n },\n key: \"email\",\n applyKey: \"userEmail\"\n },\n email_lt_lt: {\n name: \"Enter your email\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter your email\",\n type: \"text\"\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Privalote tai u\\u017Epildyti\"\n },\n pattern: {\n regex: \"[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\",\n errorMsg: \"\\u012Eveskite galiojant\\u012F el. pa\\u0161to adres\\u0105\"\n }\n }\n },\n key: \"email\",\n applyKey: \"userEmail\"\n },\n country: {\n name: \"Country\",\n field: {\n uiType: \"dropdown\",\n attrs: {\n placeholder: \"Select country\"\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Country is required\"\n }\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"India\",\n key: \"in\"\n },\n {\n displayName: \"USA\",\n key: \"usa\"\n },\n {\n displayName: \"China\",\n key: \"ch\"\n }\n ],\n defaultValue: {\n displayName: \"India\",\n key: \"in\"\n }\n },\n key: \"country\",\n applyKey: \"country\"\n },\n zipcode: {\n name: \"Zipcode\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter your zip code\",\n type: \"number\"\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Zip code is required\"\n },\n maxLength: {\n length: 6,\n errorMsg: \"Zip code should not exceed 6 characters\"\n },\n pattern: {\n regex: \"^[0-9]{6}$\",\n errorMsg: \"Please enter a valid zipcode\"\n }\n }\n },\n key: \"zipcode\",\n applyKey: \"postalCode\"\n },\n state: {\n name: \"State\",\n field: {\n uiType: \"dropdown\",\n attrs: {\n placeholder: \"Select state\"\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"State is required\"\n }\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"Telanagana\",\n key: \"TG\"\n },\n {\n displayName: \"Andhra\",\n key: \"Ap\"\n }\n ]\n },\n key: \"state\",\n applyKey: \"state\"\n },\n \"sms-optin\": {\n name: \"Would you like to opt in to receive job related updates by SMS? Standard data rates may apply.\",\n field: {\n uiType: \"radio\",\n inputType: \"\",\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Field is required\"\n }\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"Yes\",\n key: \"yes\"\n },\n {\n displayName: \"No\",\n key: \"no\"\n }\n ]\n },\n key: \"sms-optin\",\n applyKey: \"sms-optin\"\n },\n \"email-optin\": {\n name: \"Would you like to opt in to receive job related emails from our team?\",\n field: {\n uiType: \"radio\",\n inputType: \"\",\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Field is required\"\n }\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"Yes\",\n key: \"yes\"\n },\n {\n displayName: \"No\",\n key: \"no\"\n }\n ]\n },\n key: \"email-optin\",\n applyKey: \"email-optin\"\n },\n \"email-optin_nl_nl\": {\n name: \"Would you like to opt in to receive job related emails from our team?\",\n field: {\n uiType: \"radio\",\n inputType: \"\",\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Veld is verplicht\"\n }\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"Yes\",\n key: \"yes\"\n },\n {\n displayName: \"No\",\n key: \"no\"\n }\n ]\n },\n key: \"email-optin\",\n applyKey: \"email-optin\"\n },\n \"email-optin_da_dk\": {\n name: \"Would you like to opt in to receive job related emails from our team?\",\n field: {\n uiType: \"radio\",\n inputType: \"\",\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Feltet er p\\xe5kr\\xe6vet\"\n }\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"Yes\",\n key: \"yes\"\n },\n {\n displayName: \"No\",\n key: \"no\"\n }\n ]\n },\n key: \"email-optin\",\n applyKey: \"email-optin\"\n },\n \"sms-optin_lt_lt\": {\n name: \"Would you like to opt in to receive job related updates by SMS? Standard data rates may apply.\",\n field: {\n uiType: \"radio\",\n inputType: \"\",\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Lauk\\u0105 b\\u016Btina u\\u017Epildyt\"\n }\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"Yes\",\n key: \"yes\"\n },\n {\n displayName: \"No\",\n key: \"no\"\n }\n ]\n },\n key: \"sms-optin\",\n applyKey: \"sms-optin\"\n },\n \"sms-optin_nl_nl\": {\n name: \"Would you like to opt in to receive job related updates by SMS? Standard data rates may apply.\",\n field: {\n uiType: \"radio\",\n inputType: \"\",\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Veld is verplicht\"\n }\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"Yes\",\n key: \"yes\"\n },\n {\n displayName: \"No\",\n key: \"no\"\n }\n ]\n },\n key: \"sms-optin\",\n applyKey: \"sms-optin\"\n },\n \"sms-optin_da_dk\": {\n name: \"Would you like to opt in to receive job related updates by SMS? Standard data rates may apply.\",\n field: {\n uiType: \"radio\",\n inputType: \"\",\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Feltet er p\\xe5kr\\xe6vet\"\n }\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"Yes\",\n key: \"yes\"\n },\n {\n displayName: \"No\",\n key: \"no\"\n }\n ]\n },\n key: \"sms-optin\",\n applyKey: \"sms-optin\"\n },\n \"email-optin_lt_lt\": {\n name: \"Would you like to opt in to receive job related emails from our team?\",\n field: {\n uiType: \"radio\",\n inputType: \"\",\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Lauk\\u0105 b\\u016Btina u\\u017Epildyt\"\n }\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"Yes\",\n key: \"yes\"\n },\n {\n displayName: \"No\",\n key: \"no\"\n }\n ]\n },\n key: \"email-optin\",\n applyKey: \"email-optin\"\n },\n \"sms-optin_it_it\": {\n name: \"Would you like to opt in to receive job related updates by SMS? Standard data rates may apply.\",\n field: {\n uiType: \"radio\",\n inputType: \"\",\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Il campo \\xe8 obbligatorio\"\n }\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"Yes\",\n key: \"yes\"\n },\n {\n displayName: \"No\",\n key: \"no\"\n }\n ]\n },\n key: \"sms-optin\",\n applyKey: \"sms-optin\"\n },\n \"email-optin_it_it\": {\n name: \"Would you like to opt in to receive job related emails from our team?\",\n field: {\n uiType: \"radio\",\n inputType: \"\",\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Il campo \\xe8 obbligatorio\"\n }\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"Yes\",\n key: \"yes\"\n },\n {\n displayName: \"No\",\n key: \"no\"\n }\n ]\n },\n key: \"email-optin\",\n applyKey: \"email-optin\"\n },\n \"sms-optin_cz_cz\": {\n name: \"Would you like to opt in to receive job related updates by SMS? Standard data rates may apply.\",\n field: {\n uiType: \"radio\",\n inputType: \"\",\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Pole je povinn\\xe9\"\n }\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"Yes\",\n key: \"yes\"\n },\n {\n displayName: \"No\",\n key: \"no\"\n }\n ]\n },\n key: \"sms-optin\",\n applyKey: \"sms-optin\"\n },\n \"email-optin_cz_cz\": {\n name: \"Would you like to opt in to receive job related emails from our team?\",\n field: {\n uiType: \"radio\",\n inputType: \"\",\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Pole je povinn\\xe9\"\n }\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"Yes\",\n key: \"yes\"\n },\n {\n displayName: \"No\",\n key: \"no\"\n }\n ]\n },\n key: \"email-optin\",\n applyKey: \"email-optin\"\n },\n \"sms-optin_fr_fr\": {\n name: \"Would you like to opt in to receive job related updates by SMS? Standard data rates may apply.\",\n field: {\n uiType: \"radio\",\n inputType: \"\",\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Le champ est obligatoire\"\n }\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"Yes\",\n key: \"yes\"\n },\n {\n displayName: \"No\",\n key: \"no\"\n }\n ]\n },\n key: \"sms-optin\",\n applyKey: \"sms-optin\"\n },\n \"email-optin_fr_fr\": {\n name: \"Would you like to opt in to receive job related emails from our team?\",\n field: {\n uiType: \"radio\",\n inputType: \"\",\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Le champ est obligatoire\"\n }\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"Yes\",\n key: \"yes\"\n },\n {\n displayName: \"No\",\n key: \"no\"\n }\n ]\n },\n key: \"email-optin\",\n applyKey: \"email-optin\"\n },\n \"sms-optin_de_de\": {\n name: \"Would you like to opt in to receive job related updates by SMS? Standard data rates may apply.\",\n field: {\n uiType: \"radio\",\n inputType: \"\",\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Feld ist erforderlich\"\n }\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"Yes\",\n key: \"yes\"\n },\n {\n displayName: \"No\",\n key: \"no\"\n }\n ]\n },\n key: \"sms-optin\",\n applyKey: \"sms-optin\"\n },\n \"email-optin_de_de\": {\n name: \"Would you like to opt in to receive job related emails from our team?\",\n field: {\n uiType: \"radio\",\n inputType: \"\",\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Feld ist erforderlich\"\n }\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"Yes\",\n key: \"yes\"\n },\n {\n displayName: \"No\",\n key: \"no\"\n }\n ]\n },\n key: \"email-optin\",\n applyKey: \"email-optin\"\n },\n \"sms-optin_es_mx\": {\n name: \"Would you like to opt in to receive job related updates by SMS? Standard data rates may apply.\",\n field: {\n uiType: \"radio\",\n inputType: \"\",\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"El campo es obligatorio\"\n }\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"Yes\",\n key: \"yes\"\n },\n {\n displayName: \"No\",\n key: \"no\"\n }\n ]\n },\n key: \"sms-optin\",\n applyKey: \"sms-optin\"\n },\n \"email-optin_es_mx\": {\n name: \"Would you like to opt in to receive job related emails from our team?\",\n field: {\n uiType: \"radio\",\n inputType: \"\",\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"El campo es obligatorio\"\n }\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"Yes\",\n key: \"yes\"\n },\n {\n displayName: \"No\",\n key: \"no\"\n }\n ]\n },\n key: \"email-optin\",\n applyKey: \"email-optin\"\n },\n \"sms-n-email-optin\": {\n \"name\": \"Would you like to opt in to receive job related emails from our team?\",\n \"field\": {\n \"uiType\": \"radio\",\n \"inputType\": \"\",\n \"validations\": {\n \"required\": {\n \"mandatory\": true,\n \"errorMsg\": \"Field is required\"\n }\n },\n \"optionsSource\": \"directValues\",\n \"options\": [\n {\n \"displayName\": \"Yes\",\n \"key\": \"yes\"\n },\n {\n \"displayName\": \"No\",\n \"key\": \"no\"\n }\n ]\n },\n \"key\": \"sms-n-email-optin\",\n \"applyKey\": \"sms-n-email-optin\",\n \"groupId\": \"opt-in\",\n \"title\": \"Sms and Email optin\"\n },\n \"whatsapp-optin\": {\n \"name\": \"Would you like to opt in to job related notifications through Whatsapp?\",\n \"field\": {\n \"uiType\": \"radio\",\n \"inputType\": \"\",\n \"validations\": {\n \"required\": {\n \"mandatory\": true,\n \"errorMsg\": \"Field is required\"\n }\n },\n \"optionsSource\": \"directValues\",\n \"options\": [\n {\n \"displayName\": \"Yes\",\n \"key\": \"yes\"\n },\n {\n \"displayName\": \"No\",\n \"key\": \"no\"\n }\n ]\n },\n \"key\": \"whatsapp-optin\",\n \"applyKey\": \"whatsapp-optin\",\n \"groupId\": \"opt-in\",\n \"title\": \"Whatsapp optin\"\n },\n \"single-sms-optin\": {\n \"name\": \"Do you want to opt in to receive job-related SMS notifications from us?\",\n \"field\": {\n \"uiType\": \"radio\",\n \"inputType\": \"\",\n \"validations\": {\n \"required\": {\n \"mandatory\": true,\n \"errorMsg\": \"Field is required\"\n }\n },\n \"optionsSource\": \"directValues\",\n \"options\": [\n {\n \"displayName\": \"Yes\",\n \"key\": \"yes\"\n },\n {\n \"displayName\": \"No\",\n \"key\": \"no\"\n }\n ]\n },\n \"key\": \"single-sms-optin\",\n \"applyKey\": \"single-sms-optin\",\n \"groupId\": \"opt-in\",\n \"title\": \"Single sms optin\"\n },\n smsOptin: {\n name: \"Would you like to opt in to receive job related updates by SMS? Standard data rates may apply.\",\n field: {\n uiType: \"radio\",\n inputType: \"\",\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Field is required\"\n }\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"Yes\",\n key: \"yes\"\n },\n {\n displayName: \"No\",\n key: \"no\"\n }\n ]\n },\n key: \"smsOptin\",\n applyKey: \"smsOptin\"\n },\n emailOptin: {\n name: \"Would you like to opt in to receive job related emails from our team?\",\n field: {\n uiType: \"radio\",\n inputType: \"\",\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Field is required\"\n }\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"Yes\",\n key: \"yes\"\n },\n {\n displayName: \"No\",\n key: \"no\"\n }\n ]\n },\n key: \"emailOptin\",\n applyKey: \"emailOptin\"\n },\n city: {\n name: \"City (optional)\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter city\",\n type: \"text\"\n },\n validations: {}\n },\n key: \"city\",\n applyKey: \"city\"\n },\n youCheckIfSomeoneElseIsAvailable: {\n name: \"You check if someone else is available by calling other colleagues in other stores.\",\n field: {\n uiType: \"yes-no\",\n inputType: \"text\",\n attrs: {},\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Field is required\"\n }\n }\n },\n key: \"youCheckIfSomeoneElseIsAvailable\",\n applyKey: \"screeningQues\"\n },\n resume: {\n name: \"Resume\",\n field: {\n uiType: \"file\",\n attrs: {\n dropText: \"Drop resume file here or\",\n selectText: \"select a file to upload\",\n helpText: \"Drop resume file here or Select your resume\",\n accept: \".pdf, .doc,.docx,.txt,.rft,.html,.png\",\n type: \"file\"\n },\n formatAccepted: \"All .pdf, .doc, .docx types are supported, up to 1MB\",\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Resume is required\"\n }\n }\n },\n key: \"resume\",\n applyKey: \"resumeLink\"\n },\n shiftAvailability: {\n name: \"Shift availability\",\n field: {\n uiType: \"checkbox\",\n inputType: \"\",\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Shift availability is required\"\n }\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"Fully flexible throughout the week\",\n key: \"Flexible\"\n },\n {\n displayName: \"Weekday early shifts(6am - 3pm)\",\n key: \"weekdayEarly\"\n },\n {\n displayName: \"Weekday late shifts(2pm - 11pm)\",\n key: \"weekdayLate\"\n },\n {\n displayName: \"Overnights(11pm - 7am)\",\n key: \"overnight\"\n },\n {\n displayName: \"Weekends\",\n key: \"weekends\"\n }\n ],\n defaultValue: {\n displayName: \"Weekends\",\n key: \"weekends\"\n }\n },\n key: \"shiftAvailability\",\n applyKey: \"shiftAvailability\"\n },\n stepCount: {\n name: \"Step Count\",\n field: {\n uiType: \"legend\",\n inputType: \"\",\n readOnly: true,\n defaultValue: \"1/3\"\n },\n key: \"stepCount\",\n applyKey: \"stepCount\"\n },\n introduceYourself: {\n name: \"Introduce Yourself\",\n field: {\n uiType: \"h3-heading\",\n inputType: \"\",\n readOnly: true,\n defaultValue: \"Introduce Yourself\"\n },\n key: \"introduceYourself\",\n applyKey: \"introduceYourself\"\n },\n makeSureYouAreNotSecretAgent: {\n name: \"Not a robot\",\n field: {\n uiType: \"paragraph\",\n inputType: \"\",\n readOnly: true,\n defaultValue: \"Let's make sure you are not a secret agent. Or are you?\"\n },\n key: \"makeSureYouAreNotSecretAgent\",\n applyKey: \"makeSureYouAreNotSecretAgent\"\n },\n haveYouPreviouslyWorkedForUs: {\n name: 'Have you previously worked for us? If \"Yes\" please provide the information below as accurately as possible. CURRENT WORKERS: Please apply internally.',\n field: {\n uiType: \"radio\",\n inputType: \"\",\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Field is required\"\n }\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"Yes\",\n key: \"yes\"\n },\n {\n displayName: \"No\",\n key: \"no\"\n }\n ]\n },\n key: \"haveYouPreviouslyWorkedForUs\",\n applyKey: \"haveYouPreviouslyWorkedForUs\"\n },\n howDidYouHear: {\n name: \"How did you hear about us?\",\n field: {\n uiType: \"dropdown\",\n attrs: {\n placeholder: \"Select\"\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Field is required\"\n }\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"Linkedin\",\n key: \"linkedin\"\n },\n {\n displayName: \"Social media\",\n key: \"socialmedia\"\n },\n {\n displayName: \"Referral\",\n key: \"referral\"\n }\n ]\n },\n key: \"howDidYouHear\",\n applyKey: \"howDidYouHear\"\n },\n phoneExtension: {\n name: \"Phone extension\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter phone extension\",\n type: \"text\"\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Phone extension is required\"\n },\n maxLength: {\n length: 3,\n errorMsg: \"Phone extension should not exceed 3 characters\"\n },\n minLength: {\n length: 3,\n errorMsg: \"Phone extension should be atleast 3 characters\"\n }\n }\n },\n key: \"phoneExtension\",\n applyKey: \"phoneExtension\"\n },\n phoneNumber: {\n name: \"Enter phone number\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter phone number\",\n type: \"text\"\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Phone number is required\"\n },\n // maxLength: {\n // length: 14,\n // errorMsg: \"Phone number should not exceed 14 characters\",\n // },\n // minLength: {\n // length: 8,\n // errorMsg: \"Phone number should be atleast 8 characters\",\n // },\n pattern: {\n regex: \"^(?:\\\\+\\\\d{1,3}\\\\s*)?(?:\\\\(\\\\d{3}\\\\)|\\\\d{3})(?:[\\\\s-]?\\\\d{3}[\\\\s-]?\\\\d{4}|\\\\d{8,14})$\",\n errorMsg: \"Please enter a valid phone number\"\n }\n }\n },\n key: \"phoneNumber\",\n applyKey: \"phoneNumber\"\n },\n phoneNumber_nl_nl: {\n name: \"Enter phone number\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter phone number\",\n type: \"text\"\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Telefoonnummer is verplicht\"\n },\n // maxLength: {\n // length: 14,\n // errorMsg: \"Phone number should not exceed 14 characters\",\n // },\n // minLength: {\n // length: 8,\n // errorMsg: \"Phone number should be atleast 8 characters\",\n // },\n pattern: {\n regex: \"^(?:\\\\+\\\\d{1,3}\\\\s*)?(?:\\\\(\\\\d{3}\\\\)|\\\\d{3})(?:[\\\\s-]?\\\\d{3}[\\\\s-]?\\\\d{4}|\\\\d{8,14})$\",\n errorMsg: \"Voer een geldig telefoonnummer in\"\n }\n }\n },\n key: \"phoneNumber\",\n applyKey: \"phoneNumber\"\n },\n phoneNumber_da_dk: {\n name: \"Enter phone number\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter phone number\",\n type: \"text\"\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Telefonnummer er p\\xe5kr\\xe6vet\"\n },\n // maxLength: {\n // length: 14,\n // errorMsg: \"Phone number should not exceed 14 characters\",\n // },\n // minLength: {\n // length: 8,\n // errorMsg: \"Phone number should be atleast 8 characters\",\n // },\n pattern: {\n regex: \"^(?:\\\\+\\\\d{1,3}\\\\s*)?(?:\\\\(\\\\d{3}\\\\)|\\\\d{3})(?:[\\\\s-]?\\\\d{3}[\\\\s-]?\\\\d{4}|\\\\d{8,14})$\",\n errorMsg: \"Indtast venligst et gyldigt telefonnummer\"\n }\n }\n },\n key: \"phoneNumber\",\n applyKey: \"phoneNumber\"\n },\n phoneNumber_es_mx: {\n name: \"Enter phone number\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter phone number\",\n type: \"text\"\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"El n\\xfamero de tel\\xe9fono es obligatorio\"\n },\n // maxLength: {\n // length: 14,\n // errorMsg: \"Phone number should not exceed 14 characters\",\n // },\n // minLength: {\n // length: 8,\n // errorMsg: \"Phone number should be atleast 8 characters\",\n // },\n pattern: {\n regex: \"^(?:\\\\+\\\\d{1,3}\\\\s*)?(?:\\\\(\\\\d{3}\\\\)|\\\\d{3})(?:[\\\\s-]?\\\\d{3}[\\\\s-]?\\\\d{4}|\\\\d{8,14})$\",\n errorMsg: \"Ingrese un n\\xfamero de tel\\xe9fono v\\xe1lido\"\n }\n }\n },\n key: \"phoneNumber\",\n applyKey: \"phoneNumber\"\n },\n phoneNumber_de_de: {\n name: \"Enter phone number\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter phone number\",\n type: \"text\"\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Telefonnummer ist erforderlich\"\n },\n // maxLength: {\n // length: 14,\n // errorMsg: \"Phone number should not exceed 14 characters\",\n // },\n // minLength: {\n // length: 8,\n // errorMsg: \"Phone number should be atleast 8 characters\",\n // },\n pattern: {\n regex: \"^(?:\\\\+\\\\d{1,3}\\\\s*)?(?:\\\\(\\\\d{3}\\\\)|\\\\d{3})(?:[\\\\s-]?\\\\d{3}[\\\\s-]?\\\\d{4}|\\\\d{8,14})$\",\n errorMsg: \"Bitte geben Sie eine g\\xfcltige Telefonnummer ein\"\n }\n }\n },\n key: \"phoneNumber\",\n applyKey: \"phoneNumber\"\n },\n phoneNumber_fr_fr: {\n name: \"Enter phone number\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter phone number\",\n type: \"text\"\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Le num\\xe9ro de t\\xe9l\\xe9phone est obligatoire\"\n },\n // maxLength: {\n // length: 14,\n // errorMsg: \"Phone number should not exceed 14 characters\",\n // },\n // minLength: {\n // length: 8,\n // errorMsg: \"Phone number should be atleast 8 characters\",\n // },\n pattern: {\n regex: \"^(?:\\\\+\\\\d{1,3}\\\\s*)?(?:\\\\(\\\\d{3}\\\\)|\\\\d{3})(?:[\\\\s-]?\\\\d{3}[\\\\s-]?\\\\d{4}|\\\\d{8,14})$\",\n errorMsg: \"Veuillez saisir un num\\xe9ro de t\\xe9l\\xe9phone valide\"\n }\n }\n },\n key: \"phoneNumber\",\n applyKey: \"phoneNumber\"\n },\n phoneNumber_cz_cz: {\n name: \"Enter phone number\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter phone number\",\n type: \"text\"\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Telefonn\\xed \\u010D\\xedslo je povinn\\xe9\"\n },\n // maxLength: {\n // length: 14,\n // errorMsg: \"Phone number should not exceed 14 characters\",\n // },\n // minLength: {\n // length: 8,\n // errorMsg: \"Phone number should be atleast 8 characters\",\n // },\n pattern: {\n regex: \"^(?:\\\\+\\\\d{1,3}\\\\s*)?(?:\\\\(\\\\d{3}\\\\)|\\\\d{3})(?:[\\\\s-]?\\\\d{3}[\\\\s-]?\\\\d{4}|\\\\d{8,14})$\",\n errorMsg: \"Zadejte pros\\xedm platn\\xe9 telefonn\\xed \\u010D\\xedslo\"\n }\n }\n },\n key: \"phoneNumber\",\n applyKey: \"phoneNumber\"\n },\n phoneNumber_it_it: {\n name: \"Enter phone number\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter phone number\",\n type: \"text\"\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Il numero di telefono \\xe8 obbligatorio\"\n },\n // maxLength: {\n // length: 14,\n // errorMsg: \"Phone number should not exceed 14 characters\",\n // },\n // minLength: {\n // length: 8,\n // errorMsg: \"Phone number should be atleast 8 characters\",\n // },\n pattern: {\n regex: \"^(?:\\\\+\\\\d{1,3}\\\\s*)?(?:\\\\(\\\\d{3}\\\\)|\\\\d{3})(?:[\\\\s-]?\\\\d{3}[\\\\s-]?\\\\d{4}|\\\\d{8,14})$\",\n errorMsg: \"Inserisci un numero di telefono valido\"\n }\n }\n },\n key: \"phoneNumber\",\n applyKey: \"phoneNumber\"\n },\n phoneNumber_lt_lt: {\n name: \"Enter phone number\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter phone number\",\n type: \"text\"\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Privalote tai u\\u017Epildyti\"\n },\n // maxLength: {\n // length: 14,\n // errorMsg: \"Phone number should not exceed 14 characters\",\n // },\n // minLength: {\n // length: 8,\n // errorMsg: \"Phone number should be atleast 8 characters\",\n // },\n pattern: {\n regex: \"^(?:\\\\+\\\\d{1,3}\\\\s*)?(?:\\\\(\\\\d{3}\\\\)|\\\\d{3})(?:[\\\\s-]?\\\\d{3}[\\\\s-]?\\\\d{4}|\\\\d{8,14})$\",\n errorMsg: \"\\u012Eveskite galiojant\\u012F telefono numer\\u012F\"\n }\n }\n },\n key: \"phoneNumber\",\n applyKey: \"phoneNumber\"\n },\n phoneDeviceType: {\n name: \"Phone device type\",\n field: {\n uiType: \"dropdown\",\n attrs: {\n placeholder: \"Select Phone device type\"\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Phone device type is required\"\n }\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"Mobile\",\n key: \"mobile\"\n },\n {\n displayName: \"Home phone\",\n key: \"home\"\n }\n ],\n defaultValue: {}\n },\n key: \"phoneDeviceType\",\n applyKey: \"phoneDeviceType\"\n },\n address: {\n name: \"Address (optional)\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter address\",\n type: \"text\"\n },\n validations: {}\n },\n key: \"address\",\n applyKey: \"address\"\n },\n zipcode: {\n name: \"Zip code (optional)\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter zipcode\",\n type: \"number\"\n },\n validations: {\n maxLength: {\n length: 6,\n errorMsg: \"Zip code should not exceed 6 characters\"\n },\n minLength: {\n length: 6,\n errorMsg: \"Zip code should be atleast 6 characters\"\n }\n }\n },\n key: \"zipcode\",\n applyKey: \"zipcode\"\n },\n areYouLegallyEligible: {\n name: \"Are you legally eligible to work in the United states? You will be asked to provide documentation at time of hire?\",\n field: {\n uiType: \"dropdown\",\n attrs: {\n placeholder: \"Select\"\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Field is required\"\n }\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"Yes\",\n key: \"Yes\"\n },\n {\n displayName: \"No\",\n key: \"no\"\n }\n ]\n },\n key: \"areYouLegallyEligible\",\n applyKey: \"areYouLegallyEligible\"\n },\n submitBackgroundCheck: {\n name: \"Would you be willing to submit a background check if job is offered?\",\n field: {\n uiType: \"dropdown\",\n attrs: {\n placeholder: \"Select\"\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Field is required\"\n }\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"Yes\",\n key: \"Yes\"\n },\n {\n displayName: \"No\",\n key: \"no\"\n }\n ]\n },\n key: \"submitBackgroundCheck\",\n applyKey: \"submitBackgroundCheck\"\n },\n areYou16YearsOlder: {\n name: \"Are you at least 16 years old or older?\",\n field: {\n uiType: \"dropdown\",\n attrs: {\n placeholder: \"Select\"\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Field is required\"\n }\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"Yes\",\n key: \"Yes\"\n },\n {\n displayName: \"No\",\n key: \"no\"\n }\n ]\n },\n key: \"areYou16YearsOlder\",\n applyKey: \"areYou16YearsOlder\"\n },\n doOneOrMoreStatementsApply: {\n name: \"Do one or more of the statements below apply to you?
1)Received SNAP benefits(food stamps)
2)Received Temporary Assistance for Needy families(TANF)
3)Received Supplemental security income(SSI)
4)Served in the U.S. military(veteran)
5)Have you been unemployed in the last year
6)Referred to this job by a rehabilation agency, the department of Veteran affairs, or under the ticket to work program\",\n field: {\n uiType: \"dropdown\",\n attrs: {\n placeholder: \"Select\"\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Field is required\"\n }\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"Yes\",\n key: \"Yes\"\n },\n {\n displayName: \"No\",\n key: \"no\"\n }\n ],\n defaultValue: {\n displayName: \"Yes\",\n key: \"Yes\"\n }\n },\n key: \"doOneOrMoreStatementsApply\",\n applyKey: \"doOneOrMoreStatementsApply\"\n },\n doYouHaveDrivingLicense: {\n name: \"Do you have a driving license?\",\n tooltip: \"The question is related to Store assistant and Fuel distributor\",\n field: {\n uiType: \"dropdown\",\n attrs: {\n placeholder: \"Select\"\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Field is required\"\n }\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"Yes\",\n key: \"Yes\"\n },\n {\n displayName: \"No\",\n key: \"no\"\n }\n ]\n },\n key: \"doYouHaveDrivingLicense\",\n applyKey: \"doYouHaveDrivingLicense\"\n },\n cashierExperience: {\n name: \"How many years have you had cashier experience?\",\n tooltip: \"The question is related to Store assistant and Fuel distributor\",\n field: {\n uiType: \"dropdown\",\n attrs: {\n placeholder: \"Select\"\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Field is required\"\n }\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"<15 years\",\n key: \"lessThan15\"\n },\n {\n displayName: \"<10years\",\n key: \"lessThan10\"\n },\n {\n displayName: \"<5years\",\n key: \"lessThan5\"\n }\n ]\n },\n key: \"cashierExperience\",\n applyKey: \"cashierExperience\"\n },\n certifiedOperatingForkLift: {\n name: \"Are you certified for operating a forklift?\",\n tooltip: \"The question is related to Store assistant and Fuel distributor\",\n field: {\n uiType: \"dropdown\",\n attrs: {\n placeholder: \"Select\"\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Field is required\"\n }\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"<15 years\",\n key: \"lessThan15\"\n },\n {\n displayName: \"<10years\",\n key: \"lessThan10\"\n },\n {\n displayName: \"<5years\",\n key: \"lessThan5\"\n }\n ]\n },\n key: \"certifiedOperatingForkLift\",\n applyKey: \"certifiedOperatingForkLift\"\n },\n termsAndConditions: {\n name: \"By providing your electronic signature in the field provided below you are confirming your understanding of the following terms and conditions of employment with Circle K Inc, its subsidiaries, affiliates, other related entities, and/or successors (the \\u201CCompany\\u201D). The Company is an Equal Opportunity Employer.
All employment decisions are based on business needs, job requirements and individual qualifications. All applications for employment will be considered without regard to race, color, age, sex, national origin, religion, disability, veteran status, genetics, marital status, sexual orientation, or any other legally protected status.
I certify that all information provided in this application is true and complete to the best of my knowledge and belief and that any documents I provide in connection with this application are true copies. I understand that if I supply any untrue information or withhold any material information from this application, the Company will have the right to discontinue any further employment consideration, rescind any verbal or written offer of employment, and, if learned after I am hired, may result in my termination of employment. I understand and agree to receive text messages from the Company\\u2019s Hiring Managers. I have the right to withdraw my consent to receive text messages at any time. If I wish to withdraw my consent, I may \\u201Copt out\\u201D by replying \\u201CStop\\u201D via text message. This in no way would negatively impact consideration of my employment application. I agree to notify the Company if the phone number I provided is no longer a valid phone number to reach me. I understand that text messaging rates will apply to any messages received \",\n field: {\n uiType: \"checkbox\",\n inputType: \"\",\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Field is required\"\n }\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"Yes, I agree to this and provided information is correct\",\n key: \"yes\"\n }\n ]\n },\n key: \"termsAndConditions\",\n applyKey: \"termsAndConditions\"\n },\n contactStoreManagerAndDelayMeeting: {\n name: \"You contact your store manager with a situation update.You decide to delay meetng your friends until the situation is solved.\",\n field: {\n uiType: \"yes-no\",\n inputType: \"text\",\n attrs: {},\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Field is required\"\n }\n }\n },\n key: \"contactStoreManagerAndDelayMeeting\",\n applyKey: \"contactStoreManagerAndDelayMeeting\"\n },\n contactStoreManagerAndLeave: {\n name: \"You contact your store manager and tell them that you have to leave as its the end of your shift and you will have to close the store.\",\n field: {\n uiType: \"yes-no\",\n inputType: \"text\",\n attrs: {},\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Field is required\"\n }\n }\n },\n key: \"contactStoreManagerAndLeave\",\n applyKey: \"contactStoreManagerAndLeave\"\n }\n};\nvar $768a17376248dce8$export$2e2bcd8739ae039 = $768a17376248dce8$var$formData;\nconst $768a17376248dce8$export$4b37a38524151760 = {\n EQUALS: \"equals\",\n NOT_EQUALS: \"not equals\"\n};\nconst $768a17376248dce8$export$fcf4b86fafcc3461 = \".workflow-container[workflowinstanceid]\";\nconst $768a17376248dce8$export$a2e8ef7d6476a1ee = \"instance-id\";\nconst $768a17376248dce8$export$b6868fd9a6bed1a8 = \"[instance-id]\";\nconst $768a17376248dce8$export$3397a7ac20068e6e = \"phw-btn phw-g-btn-primary phw-width-auto phw-width-sm-4\";\nconst $768a17376248dce8$export$cf005038fc42bae3 = \"phw-btn phw-g-btn-buttonlink phw-width-auto phw-mr-2 phw-width-sm-4 phw-mr-sm-0\";\nconst $768a17376248dce8$export$5752f9f8b1b06296 = \"listenerAdded\";\nconst $768a17376248dce8$export$909cf45f68a8ba96 = \".form-field\";\nconst $768a17376248dce8$export$d319b452b587ffdf = {\n next: {\n en: {\n text: \"Next\"\n },\n lt: {\n text: \"kitas\"\n },\n class: $768a17376248dce8$export$3397a7ac20068e6e,\n action: \"nextAction\"\n },\n previous: {\n en: {\n text: \"Previous\"\n },\n lt: {\n text: \"ankstesnis\"\n },\n class: $768a17376248dce8$export$cf005038fc42bae3,\n action: \"previousAction\"\n },\n finish: {\n en: {\n text: \"Finish\"\n },\n lt: {\n text: \"kitas\"\n },\n class: $768a17376248dce8$export$3397a7ac20068e6e,\n action: \"finishFlow\"\n }\n};\nconst $768a17376248dce8$export$cc0c0b0578eb1e92 = \"section[data-func-widget-id]\";\nconst $768a17376248dce8$export$d7317249d6697aec = '.next-action-cls';\nconst $768a17376248dce8$export$f2a4d94613e8e8cc = \"getAssessmentQuestions\";\nconst $768a17376248dce8$export$7c462286e7993f17 = \"formSubmitEventData\";\n\n\nclass $1fc0a8a1bc250c7c$var$ScreenRenderer {\n constructor(utils){\n this.utils = utils;\n }\n attachTriggerListener(workflow) {\n if (workflow?.triggerConfig?.selector) switch(workflow?.triggerConfig?.domAction){\n case \"pageLoad\":\n let checkPageLoaded = setInterval(()=>{\n if (document.readyState == \"complete\") {\n this.utils.orchestrator.triggerFlow(workflow);\n clearInterval(checkPageLoaded);\n }\n }, 500);\n break;\n default:\n let ele = document.querySelector(workflow?.triggerConfig?.selector);\n if (ele) {\n let overlayEle = document.createElement(\"span\");\n overlayEle.style.cssText = \"position: absolute; width: 100%;height: 100%;left: 0;top: 0\";\n if (!ele.style.position) {\n ele.style.position = \"relative\";\n if (workflow.triggerConfig.domAction == \"click\" && ele.hasAttribute(\"href\")) {\n ele.setAttribute(\"wf-href\", ele.getAttribute(\"href\"));\n ele.removeAttribute(\"href\");\n }\n }\n let _self = this;\n overlayEle.addEventListener(workflow.triggerConfig.domAction, function(event) {\n event.stopPropagation();\n workflow.triggerConfig.allowOtherActions;\n if (overlayEle.hasAttribute(\"wf-href\")) overlayEle.setAttribute(\"href\", overlayEle.getAttribute(\"wf-href\"));\n ele.dispatchEvent(new Event(workflow.triggerConfig.domAction));\n _self.utils.orchestrator.triggerFlow(workflow, ele);\n });\n ele.appendChild(overlayEle);\n }\n break;\n }\n }\n createElementToRender(flowConfig) {\n let ele;\n if (flowConfig.triggerConfig) ele = document.querySelector(flowConfig.triggerConfig.selector);\n else {\n ele = document.querySelector(\"[workflowInstanceId='\" + flowConfig.workflowInstanceId + \"']\");\n if (ele) return ele;\n }\n if (!ele) {\n ele = document.querySelector(\".ph-page-container\");\n if (!ele) ele = document.querySelector(\".ph-page\");\n }\n if (ele) {\n if (flowConfig.displayConfig == \"replace\") {\n ele = ele.closest((0, $768a17376248dce8$export$b6868fd9a6bed1a8)) || ele;\n ele.classList.add(\"workflow-container\");\n } else {\n let temp = ele.querySelector((0, $768a17376248dce8$export$b6868fd9a6bed1a8));\n let container = document.createElement(\"div\");\n container.classList.add(\"workflow-container\");\n if (temp != null) {\n if (ele.classList.contains(\"ph-page-container\") || ele.classList.contains(\"ph-page\")) {\n ele.insertBefore(container, temp);\n ele = container;\n } else {\n temp.appendChild(container);\n ele = container;\n }\n } else if (temp == null) {\n if (ele.classList.contains(\"ph-page-container\") || ele.classList.contains(\"ph-page\")) {\n ele.appendChild(container);\n ele = container;\n }\n }\n }\n ele.setAttribute(\"workflowInstanceId\", flowConfig.workflowInstanceId);\n ele.setAttribute(\"workflowId\", flowConfig.workflowId);\n }\n return ele;\n }\n getElementToUpdateStep(flowConfig) {\n return document.querySelector(\"[workflowInstanceId='\" + flowConfig.workflowInstanceId + \"']\");\n }\n renderWorkflow(flowConfig) {\n let ele;\n if (flowConfig) {\n ele = this.createElementToRender(flowConfig);\n if (ele) {\n if (flowConfig['config'] && flowConfig['config']['screenConfig'] && flowConfig['config']['screenConfig']['html']) // flowConfig['config']['screenConfig']['css']\n this.handleLayout(flowConfig, flowConfig['config']['screenConfig'], ele);\n else this.executeSteps(flowConfig, ele);\n }\n }\n }\n handleLayout(flowConfig, screenConfig, ele) {\n ele.innerHTML = \"\";\n phCommon.publishEvent(\"getWorkFlowWidgetData\", {\n unsubscribe: true\n });\n let htmlString = phApp.screenHtml || screenConfig.html;\n htmlString = this.handleReplaceables(htmlString, flowConfig);\n let temp = document.createElement(\"div\");\n temp.innerHTML = htmlString;\n let formFields = [\n ...temp.querySelectorAll(\"[form-field-type]\")\n ];\n if (formFields.length) {\n if (!(temp.querySelector(\"[form-field-type='sms-optin']\") || temp.querySelector(\"[form-field-type='email-optin']\") || temp.querySelector(\"[form-field-type='sms-n-email-optin']\") || temp.querySelector(\"[form-field-type='whatsapp-optin']\"))) {\n let smsOptin = document.createElement(\"div\");\n smsOptin.setAttribute(\"form-field-type\", \"smsOptin\");\n let emailOptin = document.createElement(\"div\");\n emailOptin.setAttribute(\"form-field-type\", \"emailOptin\");\n temp.querySelector(\".form-field-section \").appendChild(smsOptin);\n temp.querySelector(\".form-field-section \").appendChild(emailOptin);\n htmlString = temp.innerHTML;\n }\n }\n ele.innerHTML = htmlString;\n this.utils.commonUtility.addStyle(\"\", flowConfig.workflowInstanceId, screenConfig.css);\n let widgets = ele.querySelectorAll(\"[data-func-widget-id],[data-static-widget-id]\");\n widgets = [\n ...widgets\n ];\n let widgetInstanceMap = {};\n let metaInfo = {};\n screenConfig['metadata'] && screenConfig['metadata'].forEach((ele)=>{\n metaInfo[ele.widgetId] = ele.instanceId;\n });\n widgets.forEach((ele)=>{\n let widgetId = ele.getAttribute(\"data-func-widget-id\") || ele.getAttribute(\"data-static-widget-id\");\n widgetId = widgetId.trim();\n widgetInstanceMap[widgetId] = metaInfo[widgetId] || \"a\" + (Math.random() * 1000000).toFixed(0);\n console.log(\"instnace id for widet ud\", widgetId, widgetInstanceMap[widgetId]);\n ele.setAttribute((0, $768a17376248dce8$export$a2e8ef7d6476a1ee), widgetInstanceMap[widgetId]);\n });\n let contentConfig = {};\n let replaceables = phApp.replaceables || {};\n if (screenConfig) screenConfig['metadata'] && screenConfig['metadata'].forEach((metadata)=>{\n if (metadata.widgetId && metadata['content']) contentConfig[widgetInstanceMap[metadata.widgetId]] = {\n fields: metadata['content']\n };\n if (screenConfig['replaceables']) replaceables[widgetInstanceMap[metadata.widgetId]] = screenConfig['replaceables'];\n });\n phApp.replaceables = replaceables;\n platform.runDynamicWidgets(widgets, contentConfig);\n this.addComponentLevelMutationObserver(flowConfig, ele);\n this.addActionSection(flowConfig, ele);\n this.handleNextAction(ele, flowConfig);\n let count = 0;\n let listenerEvent = setInterval(()=>{\n if (flowConfig?.config?.screenConfig?.screenConfig?.listeners) flowConfig.config.screenConfig.screenConfig?.listeners.forEach((eachListener)=>{\n let temp = document.querySelector(eachListener.selector);\n if (temp) {\n clearInterval(listenerEvent);\n temp.addEventListener(eachListener.type, this.handleActions.bind(this, eachListener.action, ele, flowConfig));\n } else if (count > 30) clearInterval(listenerEvent);\n });\n else if (count > 30) clearInterval(listenerEvent);\n count++;\n }, 100);\n scrollTo(0, 0);\n }\n handleNextAction(ele, flowConfig) {\n let workflowContainer = document.querySelector(\".workflow-container\");\n let sections = workflowContainer.querySelectorAll((0, $768a17376248dce8$export$cc0c0b0578eb1e92));\n let hasChildren = (element)=>element.children.length > 0;\n if (sections.length == 0) this.handleEventListners(ele, flowConfig);\n else {\n let instance_Ids = [];\n let count = 0;\n sections.forEach((section)=>{\n instance_Ids.push(section.getAttribute((0, $768a17376248dce8$export$a2e8ef7d6476a1ee)));\n });\n let checkSections = ()=>{\n if (!instance_Ids.length) {\n clearInterval(intervalId);\n this.handleEventListners(ele, flowConfig);\n return;\n } else if (count > 5) {\n clearInterval(intervalId);\n this.handleEventListners(ele, flowConfig);\n return;\n }\n sections.forEach((section)=>{\n let instanceId = section.getAttribute((0, $768a17376248dce8$export$a2e8ef7d6476a1ee));\n if (instance_Ids.includes(instanceId) && hasChildren(section)) instance_Ids = instance_Ids.filter((id)=>id !== instanceId);\n });\n count++;\n };\n let intervalId = setInterval(()=>{\n checkSections();\n }, 400);\n }\n }\n handleEventListners(ele, flowConfig) {\n let links = document.querySelectorAll((0, $768a17376248dce8$export$d7317249d6697aec));\n links.forEach((link)=>{\n link.addEventListener('click', this.handleActions.bind(this, (0, $768a17376248dce8$export$d319b452b587ffdf).next.action, ele, flowConfig));\n });\n }\n executeSteps(flowConfig, ele) {\n if (flowConfig && flowConfig.config) {\n if (flowConfig.config.listeners) this.addListenersToComponent(flowConfig.config.listeners, ele, flowConfig);\n this.addComponentLevelMutationObserver(flowConfig, ele);\n this.addActionSection(flowConfig, ele);\n }\n }\n addActionSection(flowConfig, ele, automationConfig) {\n let config = automationConfig ? automationConfig.containerConfig : flowConfig.config?.screenConfig?.screenConfig?.containerConfig;\n let containerBackground = automationConfig ? automationConfig.containerBackground : flowConfig.config?.screenConfig?.screenConfig?.containerBackground || \"\";\n if (config) {\n let actionSec;\n if (ele.querySelector(\".action-section\")) {\n actionSec = ele.querySelector(\".action-section\");\n actionSec.classList.add(\"phw-width-sm-4\");\n actionSec.children[0].innerHTML = \"\";\n } else {\n let actionEle = document.createElement(\"div\");\n actionEle.setAttribute(\"class\", \"action-section phw-d-flex phw-g-widget-bg-white phw-width-2 phw-m-0-auto phw-width-sm-4\");\n if (ele.querySelector(\".action-parent\")) ele.querySelector(\".action-parent\").appendChild(actionEle);\n let temp = document.createElement(\"div\");\n temp.setAttribute(\"class\", \"phw-d-flex phw-justify-content-end phw-width-4 phw-m-0-auto phw-pb-4 phw-pt-4 phw-justify-sm-content-center phw-width-sm-4 phw-flex-sm-column phw-gap-sm-1\");\n actionEle.appendChild(temp);\n actionSec = actionEle;\n }\n if (flowConfig?.config?.pageHeadLine) wf.utils.commonUtility.checkForElementAndPeriod(document, \"[type='form-field-widget'] legend.phw-g-p-default-secondary\", 500, 10, (header)=>{\n if (header) header.innerText = flowConfig?.config?.pageHeadLine;\n });\n if (config.showPrevious) this.createBtn(\"previous\", actionSec, ele, flowConfig, automationConfig);\n if (config.showNext) this.createBtn(\"next\", actionSec, ele, flowConfig, automationConfig);\n if (flowConfig.finalAction || config.finalAction) this.createBtn(\"finish\", actionSec, ele, flowConfig, automationConfig);\n if (containerBackground && actionSec) actionSec.style.backgroundColor = containerBackground;\n }\n }\n createBtn(mode, actionSec, ele, flowConfig, automationConfig) {\n let config = (0, $768a17376248dce8$export$d319b452b587ffdf)[mode];\n let btn = document.createElement(\"button\");\n btn.setAttribute(\"type\", \"submit\");\n let locale = phApp.locale.split(\"_\")[0];\n btn.innerHTML = mode == 'next' ? flowConfig?.config?.pageButtonLabel || config[locale]?.text || config?.text : config[locale]?.text || config?.text;\n if (btn.innerHTML == '' || btn.innerHTML == undefined || btn.innerHTML == 'undefined') btn.innerHTML = \"next\";\n btn.setAttribute(\"class\", config.class);\n actionSec.children[0].appendChild(btn);\n if (automationConfig && automationConfig.listener) btn.addEventListener(\"click\", automationConfig.listener.bind(this, config.action, ele, flowConfig));\n else btn.addEventListener(\"click\", this.handleActions.bind(this, config.action, ele, flowConfig));\n }\n addListenersToComponent(listeners, ele, workFlowObj) {\n listeners.forEach((temp)=>{\n if (temp.selector) {\n let listenerEle = ele.querySelector(temp.selector);\n if (listenerEle && temp.config && temp.config.type == \"API_CALL\") listenerEle.addEventListener(temp.type, this.makeAnApiCall.bind(this, workFlowObj, temp.config));\n }\n });\n }\n async makeAnApiCall(workFlowObj, config) {\n if (config.httpMethod == \"POST\") {\n let data = {};\n Object.keys(config.payload).forEach((eachKey)=>{\n let keys = config.payload[eachKey]['value'].split(\".\");\n let value = workFlowObj.workflowContext;\n keys.forEach((each)=>{\n value = value ? value[each] : \"\";\n });\n data[eachKey] = value;\n });\n const response = await fetch(config.endpoint, {\n method: config.httpMethod,\n body: JSON.stringify(data)\n });\n await response.json();\n }\n }\n nextStep(flowConfig) {\n let ele = this.getElementToUpdateStep(flowConfig);\n this.executeSteps(flowConfig, ele);\n }\n handleActions(type, ele, flowConfig, context) {\n switch(type){\n case \"nextAction\":\n case \"previousAction\":\n case \"finishFlow\":\n var payload = {};\n if (context && !context.isTrusted) this.utils.orchestrator.handleActions(type, flowConfig, context);\n else this.getActionPayload(payload, ele, type, flowConfig, (actionContext)=>{\n if (context.isTrusted && context.target.innerText) actionContext.label = context.target.innerText;\n this.utils.orchestrator.handleActions(type, flowConfig, actionContext);\n });\n break;\n case \"currentAction\":\n this.utils.orchestrator.handleActions(type, flowConfig, {});\n break;\n }\n }\n getActionPayload(payload, ele, type, flowConfig, sendActionPayload) {\n console.log(\"flowConfig\", flowConfig);\n let noOfWidgets = 0, noOfEventArrived = 0, goForNextStep = true;\n flowConfig?.config?.screenConfig?.metadata.forEach((temp)=>{\n if (temp.widgetId && temp.type == \"functional\") noOfWidgets++;\n });\n //For demo commenting this\n if (noOfWidgets > 0) {\n let arrived = false;\n phCommon.publishEvent(\"getWorkFlowWidgetData\", {\n cb: (widgetInfo)=>{\n noOfEventArrived++;\n if (widgetInfo.data && widgetInfo['data']['form'] && !widgetInfo['data']['form']['formValid']) goForNextStep = false;\n else if (widgetInfo.data && widgetInfo['data']['form'] && widgetInfo['data']['form']['formValid']) payload = {\n ...payload,\n ...widgetInfo['data']['form']['formData']\n };\n else if (widgetInfo.data && !widgetInfo['data']['form'] && Object.keys(widgetInfo.data).length) payload = {\n ...payload,\n ...widgetInfo['data']\n };\n if (noOfWidgets == noOfEventArrived) {\n arrived = true;\n if (goForNextStep || type == \"previousAction\") {\n // console.log(\"fdssfdfdfd dtaa\", flowConfig);\n let formInfo = this.utils.formRenderer.getFormData(type == \"previousAction\");\n if (formInfo.valid || type == \"previousAction\") {\n payload = {\n ...payload,\n ...formInfo.formData\n };\n let storageKey = this.utils.commonUtility.getLocalStorageKey(flowConfig.workflowId);\n if (storageKey && payload) {\n if (payload.formData) {\n let data = this.utils.commonUtility.getLocalStorageData(storageKey);\n if (data) data[flowConfig['name']] = payload;\n this.utils.commonUtility.setLocalStorageData(storageKey, data);\n }\n }\n this.formPayloadFromContext(flowConfig, ele, payload);\n sendActionPayload(payload);\n }\n }\n }\n },\n action: type\n });\n // setTimeout(() => {\n // if(!arrived){\n // this.handleNonEventSubscribedWidgets(flowConfig, ele, payload,type, sendActionPayload);\n // }\n // }, 500);\n } else this.handleNonEventSubscribedWidgets(flowConfig, ele, payload, type, sendActionPayload);\n }\n handleNonEventSubscribedWidgets(flowConfig, ele, payload, type, sendActionPayload) {\n if (document.querySelector(\"[form-field]\")) {\n let formInfo = this.utils.formRenderer.getFormData(type == 'previousAction');\n if (formInfo.valid) {\n payload = {\n ...payload,\n ...formInfo.formData\n };\n this.formPayloadFromContext(flowConfig, ele, payload);\n sendActionPayload(payload);\n }\n } else {\n this.formPayloadFromContext(flowConfig, ele, payload);\n sendActionPayload(payload);\n }\n }\n formPayloadFromContext(flowConfig, ele, payload) {\n var ips = ele.querySelectorAll(\".wf-form-field\");\n ips.forEach((ip)=>{\n payload[ip.getAttribute(\"name\")] = ip.value;\n });\n if (flowConfig?.contextConfig) flowConfig.contextConfig.forEach((e)=>{\n if (e.value) payload[e.key] = e.value;\n });\n }\n keyDownEvent(event) {\n this.setAttribute(\"value\", event.target.value);\n }\n addComponentLevelMutationObserver(flowConfig, ele) {\n if (flowConfig.observer) flowConfig.observer.disconnect();\n if (flowConfig.contextConfig) {\n var config = {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true\n };\n let _self = this;\n const callback = function(mutationsList, observer) {\n let found = mutationsList.find((each)=>each.type == 'childList');\n if (found) {\n let els = ele.querySelectorAll(\"input,textarea\");\n els.forEach((el)=>{\n if (window.getEventListeners(el)['keydown']) {\n let listListeners = window.getEventListeners(el)['keydown'];\n let exist = false;\n listListeners.forEach((eachitem)=>{\n if (eachitem.listener && eachitem.listener.name.indexOf(\"keyDownEvent\") != -1) exist = true;\n });\n if (!exist) el.addEventListener(\"keydown\", _self.keyDownEvent.bind(el));\n } else el.addEventListener(\"keydown\", _self.keyDownEvent.bind(el));\n // el.removeEventListener(\"keydown\", _self.keyDownEvent.bind(el))\n // el.addEventListener(\"keydown\", _self.keyDownEvent.bind(el))\n });\n }\n flowConfig.contextConfig.forEach((temp)=>{\n if (temp.selector) {\n let sel = ele.querySelector(temp.selector);\n if (sel) temp.value = sel.value;\n }\n });\n console.log(\"sd\");\n };\n let observer = new MutationObserver(callback);\n observer.observe(ele, config);\n flowConfig.observer = observer;\n }\n }\n handleScreenConfig(element, config) {\n if (config?.screenConfig?.screenConfig?.screenGroup) this.checkIfAllTheWidgetsAreRendered(element, ()=>{\n phCommon.publishEvent(\"currentScreenGroup\", {\n screenGroup: config?.screenConfig?.screenConfig?.screenGroup\n });\n });\n }\n checkIfAllTheWidgetsAreRendered(ele, cb) {\n // let temp = ele.querySelectorAll(\"[data-func-widget-id]\");\n // let rem = [...temp];\n let count = 0;\n let remaining = setInterval(()=>{\n let temp = ele.querySelectorAll(\"[data-func-widget-id]\");\n if (temp.length > 0) {\n let rem = [\n ...temp\n ];\n rem = rem.filter((ele)=>!ele.querySelector(\"[funcwidgetid]\"));\n if (!rem.length) {\n clearInterval(remaining);\n cb();\n } else if (count > 10) clearInterval(remaining);\n }\n count++;\n }, 300);\n }\n handleReplaceables(screenHtml, flowConfig) {\n let strings = screenHtml.match(/\\{\\{[^}]*\\}\\}/g);\n if (strings && strings.length) strings.forEach((ele)=>{\n screenHtml = this.replaceString(ele, screenHtml, flowConfig.workflowContext);\n });\n return screenHtml;\n }\n replaceString(replaceable, screenHtml, workflowContext) {\n switch(replaceable){\n case \"{{jobSeqNo}}\":\n screenHtml = screenHtml.replaceAll(replaceable, workflowContext?.global?.jobSeqNo);\n break;\n case \"{{firstName}}\":\n screenHtml = screenHtml.replaceAll(replaceable, workflowContext?.global?.profile?.firstName);\n break;\n }\n return screenHtml;\n }\n}\nvar $1fc0a8a1bc250c7c$export$2e2bcd8739ae039 = $1fc0a8a1bc250c7c$var$ScreenRenderer;\n\n\n\n//This orchestrator manages the workflow execution and communication with the backend.\nclass $369f4591fbb8f6dc$var$WorkflowOrchestrator {\n workFlows = {};\n constructor(utils){\n this.utils = utils;\n // ... initialize variables\n }\n async triggerFlow(workflow) {\n let { workflowId: workflowId } = workflow;\n let temp = await this.utils.apiService.makeDDOCall(this.utils.endpoints.START_WORKFLOW, {}, {\n workflowId: workflowId\n });\n if (temp[\"startWorkflow\"] && temp[\"startWorkflow\"].status == 200) this.utils.orchestrator.runWorkflow(temp[\"startWorkflow\"].data, false);\n }\n runWorkflow(workflow, removeTriggerConfig = true) {\n if (removeTriggerConfig) delete this.workFlows[workflow.workflowId][\"triggerConfig\"];\n this.workFlows[workflow.workflowId] = {\n ...this.workFlows[workflow.workflowId],\n ...workflow.action,\n ...workflow\n };\n delete this.workFlows[workflow.workflowId][\"action\"];\n if (this.workFlows[workflow.workflowId].type == \"widgetScreen\" || this.workFlows[workflow.workflowId].type == 'assessmentScreen') {\n console.log(\"workFlows\", this.workFlows);\n if (this.workFlows[workflow.workflowId].config.group.type == \"apply\" && !window.applyConfigLoaded) {\n let temp = this.workFlows[workflow.workflowId];\n temp.action = this.workFlows[workflow.workflowId];\n this.loadTemplate(temp);\n }\n if (this.workFlows[workflow.workflowId].config.group.type == \"assessment\" && this.workFlows[workflow.workflowId][\"workflowContext\"][\"global\"] && this.workFlows[workflow.workflowId][\"workflowContext\"][\"global\"][\"assessmentLink\"] || this.workFlows[workflow.workflowId].config.group.type == \"apply\" && this.workFlows[workflow.workflowId][\"workflowContext\"][\"global\"] && this.workFlows[workflow.workflowId][\"workflowContext\"][\"global\"][\"assessmentUrl\"]) {\n let ele = document.querySelector(`[workflowid='${workflow.workflowId}']`);\n if (ele) {\n let assLink = this.workFlows[workflow.workflowId][\"workflowContext\"][\"global\"][\"assessmentLink\"] || this.workFlows[workflow.workflowId][\"workflowContext\"][\"global\"][\"assessmentUrl\"];\n ele.innerHTML = `}`;\n setTimeout(()=>{\n let iframe = document.querySelector(\".iframe-doc\");\n iframe.onload = ()=>{\n iframe.contentWindow.workflowEngine = true;\n };\n }, 100);\n window.addEventListener(\"message\", (data)=>{\n if (data.data.event == \"hvhAssessmentSubmit\") wf.utils.orchestrator.handleActions(\"nextAction\", workflow, data.data.data);\n });\n return;\n }\n }\n this.utils.screenRenderer.renderWorkflow(this.workFlows[workflow.workflowId]);\n if (this.workFlows[workflow.workflowId].type != 'assessmentScreen') this.utils.formRenderer.renderForm(document);\n if (this.workFlows[workflow.workflowId]['config'] && this.workFlows[workflow.workflowId]['config']['assessmentQuestions']) {\n let interval = setInterval(()=>{\n if (window.PhwHvhAssessmentDefaultDefaultV1 && window.assessmentMounted) {\n setTimeout(()=>{\n phCommon.publishEvent((0, $768a17376248dce8$export$f2a4d94613e8e8cc), {\n assessmentQuestions: this.workFlows[workflow.workflowId]['config']['assessmentQuestions']\n });\n }, 500);\n clearInterval(interval);\n }\n }, 500);\n }\n }\n if (this.workFlows[workflow.workflowId] && this.workFlows[workflow.workflowId][\"lastActivity\"]) this.handleActions(\"finishFlow\", workflow, this.workFlows[workflow.workflowId]);\n }\n getDDOByAction(action) {\n let ddo = \"\";\n switch(action){\n case \"nextAction\":\n ddo = this.utils.endpoints.NEXT_ACTION;\n break;\n case \"previousAction\":\n ddo = this.utils.endpoints.PREVIOUS_ACTION;\n break;\n case \"currentAction\":\n ddo = this.utils.endpoints.CURRENT_ACTION;\n break;\n }\n return ddo;\n }\n async handleActions(type, workFlowObj, payload) {\n switch(type){\n case \"nextAction\":\n case \"previousAction\":\n case \"currentAction\":\n var temp = await this.utils.apiService.makeDDOCall(this.getDDOByAction(type), {}, {\n workflowInstanceId: workFlowObj.workflowInstanceId,\n workflowId: workFlowObj.workflowId,\n actionContext: payload\n });\n let responseKey = this.getDDOByAction(type);\n this.workFlows[workFlowObj.workflowId] = {\n ...this.workFlows[workFlowObj.workflowId],\n ...temp[responseKey].data,\n ...temp[responseKey].data.action\n };\n window.assessmentMounted = false;\n let storageKey = this.utils.commonUtility.getLocalStorageKey(workFlowObj.workflowId);\n let data = this.utils.commonUtility.getLocalStorageData(storageKey);\n data[\"instanceActivityId\"] = workFlowObj.instanceActivityId;\n this.utils.commonUtility.setLocalStorageData(storageKey, data);\n delete this.workFlows[workFlowObj.workflowId][\"action\"];\n let workflowEle = document.querySelector(\"[workflowinstanceid='\" + workFlowObj.workflowInstanceId + \"']\");\n if (workflowEle) wf.utils.screenRenderer.handleScreenConfig(workflowEle, this.workFlows[workFlowObj.workflowId].config);\n // this.utils.screenRenderer.nextStep(this.workFlows[workFlowObj.workflowId]);\n this.utils.orchestrator.runWorkflow(temp[responseKey].data);\n break;\n case \"finishFlow\":\n var temp = await this.utils.apiService.makeDDOCall(this.utils.endpoints.FINISH_FLOW, {}, {\n workflowInstanceId: workFlowObj.workflowInstanceId\n });\n temp[\"endWorkflow\"].status;\n break;\n }\n }\n loadTemplate(workflow) {\n if (workflow && workflow[\"workflowContext\"] && workflow[\"workflowContext\"][\"global\"] && workflow[\"workflowContext\"][\"global\"][\"applyConfig\"] && workflow['action']['config']['group']['type'] === 'apply') {\n window.applyConfigLoaded = true;\n document.addEventListener((0, $768a17376248dce8$export$7c462286e7993f17), wf.utils.orchestrator.goToNextAction);\n let { applyConfig: applyConfig } = workflow[\"workflowContext\"][\"global\"];\n phApp.ddo.response = applyConfig;\n let counter = 0;\n let containerRender = setInterval(()=>{\n let rightSec = document.querySelector(\".right-side-sec\");\n if (rightSec) {\n clearInterval(containerRender);\n let ele = document.createElement(\"div\");\n ele.setAttribute(\"class\", \"ph-apply-box workflow-apply\");\n ele.setAttribute(\"data-ph-id\", \"-\" + Date.now());\n rightSec.prepend(ele);\n let formField = rightSec.querySelector('[type=\"form-field-widget\"]');\n if (formField) formField.parentElement.removeChild(formField);\n document.body.classList.add(\"apply-page\");\n //let tempEle = document.createElement(\"div\");\n //tempEle.innerHTML = applyConfig.jsTemplate;\n /*let childs = [...tempEle.children];\n childs.forEach((ele) => {\n if (ele.tagName == \"SCRIPT\") {\n let tem = document.createElement(\"script\");\n tem.setAttribute(\"type\", ele.getAttribute(\"type\"));\n if (ele.hasAttribute(\"src\")) {\n tem.setAttribute(\"src\", ele.getAttribute(\"src\"));\n } else {\n tem.innerHTML = ele.innerHTML;\n }\n document.head.appendChild(tem);\n } else if (ele.tagName == \"LINK\") {\n let tem = document.createElement(\"link\");\n tem.setAttribute(\"rel\", ele.getAttribute(\"rel\"));\n // tem.setAttribute(\"type\", ele.getAttribute(\"type\"));\n tem.setAttribute(\"href\", ele.getAttribute(\"href\"));\n document.head.appendChild(tem);\n }\n // document.head.appendChild(ele);\n });*/ const parser = new DOMParser();\n const decodedString = applyConfig.jsTemplate.replace(/\\\\x3C/g, '<') // Replace \\x3C with <\n .replace(/\\\\x3E/g, '>') // Replace \\x3E with >\n .replace(/\\\\\\//g, '/') // Replace \\/ with /\n .replace(/\\\\'/g, \"'\") // Replace \\' with '\n .replace(/\\\\\"/g, '\"') // Replace \\\" with \"\n .replace(/\\\\\\\\/g, '\\\\'); // Replace \\\\ with \\\n const parsedDocument = parser.parseFromString(decodedString, 'text/html');\n parsedDocument.head.childNodes.forEach((ele)=>{\n if (ele.tagName == \"SCRIPT\") {\n let tem = document.createElement(\"script\");\n tem.setAttribute(\"type\", ele.getAttribute(\"type\"));\n if (ele.hasAttribute(\"src\")) tem.setAttribute(\"src\", ele.getAttribute(\"src\"));\n else tem.innerHTML = ele.innerHTML;\n document.head.appendChild(tem);\n } else if (ele.tagName == \"LINK\") {\n let tem = document.createElement(\"link\");\n tem.setAttribute(\"rel\", ele.getAttribute(\"rel\"));\n // tem.setAttribute(\"type\", ele.getAttribute(\"type\"));\n tem.setAttribute(\"href\", ele.getAttribute(\"href\"));\n document.head.appendChild(tem);\n }\n // document.head.appendChild(ele);\n });\n parsedDocument.body.childNodes.forEach((ele)=>{\n if (ele.tagName == \"SCRIPT\") {\n let tem = document.createElement(\"script\");\n tem.setAttribute(\"type\", ele.getAttribute(\"type\"));\n if (ele.hasAttribute(\"id\")) tem.setAttribute(\"id\", ele.getAttribute(\"id\"));\n if (ele.hasAttribute(\"data-app-key\")) tem.setAttribute(\"data-app-key\", ele.getAttribute(\"data-app-key\"));\n if (ele.hasAttribute(\"src\")) tem.setAttribute(\"src\", ele.getAttribute(\"src\"));\n else tem.innerHTML = ele.innerHTML;\n document.head.appendChild(tem);\n } else if (ele.tagName == \"LINK\") {\n let tem = document.createElement(\"link\");\n tem.setAttribute(\"rel\", ele.getAttribute(\"rel\"));\n // tem.setAttribute(\"type\", ele.getAttribute(\"type\"));\n tem.setAttribute(\"href\", ele.getAttribute(\"href\"));\n document.head.appendChild(tem);\n }\n // document.head.appendChild(ele);\n });\n wf.utils.commonUtility.checkForElementAndPeriod(rightSec, \".ph-apply-box form .navigation\", 500, 15, this.checkAndAddActions);\n } else if (counter > 15) clearInterval(containerRender);\n counter++;\n }, 100);\n }\n }\n goToNextAction(data) {\n let ele = document.querySelector(\".workflow-container\");\n let workflowId = ele.getAttribute(\"workflowid\");\n wf.utils.orchestrator.handleActions(\"nextAction\", wf.utils.orchestrator.workFlows[workflowId], data.detail);\n }\n checkAndAddActions(ele) {\n if (ele) {\n wf.utils.orchestrator.formActionConfig(ele);\n wf.utils.orchestrator.addMutationForStepChangeAndCallAction(ele);\n }\n }\n formActionConfig(ele) {\n let config = {\n containerConfig: {},\n containerBackground: \"transparent\",\n listener: wf.utils.orchestrator.actionListener\n };\n if (ele.querySelector(\"button.btn-next\")) config.containerConfig.showNext = true;\n if (ele.querySelector(\"button.btn-prev\")) config.containerConfig.showPrevious = true;\n if (ele.querySelector(\"button.btn-submit\")) config.containerConfig.finalAction = true;\n wf.utils.screenRenderer.addActionSection({}, ele.closest(\".workflow-container\"), config);\n }\n addMutationForStepChangeAndCallAction(ele) {\n // Select the node that will be observed for mutations\n const targetNode = document.querySelector(\".workflow-container .ph-apply-box .navigation-summary .slick-track\");\n if (targetNode) {\n // Options for the observer (which mutations to observe)\n const config = {\n attributes: true,\n subtree: true\n };\n let timeOut;\n // Callback function to execute when mutations are observed\n const callback = (mutationList, observer)=>{\n for (const mutation of mutationList){\n if (mutation.type === \"childList\") console.log(\"A child node has been added or removed.\", mutation);\n else if (mutation.type === \"attributes\") {\n if (mutation.attributeName == \"class\" && mutation.target.classList.contains(\"slick-slide\")) {\n clearTimeout(timeOut);\n let temp = mutation.target;\n timeOut = setTimeout(()=>{\n let steps = temp.closest(\".slick-track\").querySelectorAll(\"li.slick-slide\");\n steps = [\n ...steps\n ];\n let index = steps.findIndex((el)=>el.classList.contains(\"active\"));\n // activeIndex.value = index;\n phCommon.publishEvent(\"currentScreenGroup\", {\n screenGroup: steps[index].getAttribute(\"atm-id\")\n });\n if (wf.utils.currentStep != -1) {\n if (wf.utils.currentStep > index) this.goToAction(\"previousAction\");\n else if (wf.utils.currentStep < index) this.goToAction(\"nextAction\");\n }\n wf.utils.currentStep = index;\n wf.utils.orchestrator.formActionConfig(ele);\n }, 300);\n }\n console.log(`The ${mutation.attributeName} attribute was modified.`, mutation);\n }\n }\n };\n // Create an observer instance linked to the callback function\n const observer = new MutationObserver(callback);\n // Start observing the target node for configured mutations\n observer.observe(targetNode, config);\n }\n }\n async goToAction(type) {\n let ele = document.querySelector(\".workflow-container\");\n let workflowId = ele.getAttribute(\"workflowid\");\n var temp = await wf.utils.apiService.makeDDOCall(wf.utils.orchestrator.getDDOByAction(type), {}, {\n workflowInstanceId: ele.getAttribute(\"workflowinstanceid\"),\n workflowId: workflowId,\n actionContext: {}\n });\n let responseKey = wf.utils.orchestrator.getDDOByAction(type);\n wf.utils.orchestrator.workFlows[workflowId] = {\n ...wf.utils.orchestrator.workFlows[workflowId],\n ...temp[responseKey].data,\n ...temp[responseKey].data.action\n };\n if (temp[responseKey]?.data?.action?.config?.screenConfig?.html && temp[responseKey]?.data?.action?.config?.group?.type == \"apply\") {\n let updatedHtml = temp[responseKey]?.data?.action?.config?.screenConfig?.html;\n let firstChild = ele.querySelector(\".layout-d-f .phw-container\").children[0];\n if (firstChild) {\n let tempEle = document.createElement(\"div\");\n tempEle.innerHTML = updatedHtml;\n let container = tempEle.querySelector(\".phw-container\");\n let childs = [\n ...container.children\n ];\n if (childs[0]) firstChild.innerHTML = childs[0].innerHTML;\n firstChild.scrollIntoView({\n behavior: \"smooth\",\n block: \"center\"\n });\n }\n } else wf.utils.orchestrator.runWorkflow(temp[responseKey].data);\n }\n actionListener(action, ele, flowConfig) {\n let selector = \"\";\n switch(action){\n case \"nextAction\":\n selector = \".ph-apply-box form .navigation button.btn-next\";\n break;\n case \"previousAction\":\n selector = \".ph-apply-box form .navigation button.btn-prev\";\n break;\n case \"finishFlow\":\n selector = \".ph-apply-box form .navigation button.btn-submit\";\n break;\n }\n let temp = document.querySelector(selector);\n temp && temp.click();\n }\n}\nvar $369f4591fbb8f6dc$export$2e2bcd8739ae039 = $369f4591fbb8f6dc$var$WorkflowOrchestrator;\n\n\n//This component handles resolution-related logic, such as fetching data from the backend.\nconst $453b7cb6832e56b0$var$INPUT = \"input\";\nconst $453b7cb6832e56b0$var$TEXT_AREA = \"textarea\";\nconst $453b7cb6832e56b0$var$MESSAGE = \"message\";\nclass $453b7cb6832e56b0$var$ResolutionManager {\n constructor(utils){\n this.utils = utils;\n }\n async fetchWorkflows() {\n // ... make an API request to get workflows\n let temp = await this.utils.apiService.makeDDOCall(this.utils.endpoints.GET_WORKFLOWS, {}, {\n pageId: window.phApp.pageId\n });\n let data = [];\n if (temp[\"workflowList\"]) Object.keys(temp[\"workflowList\"][\"data\"]).forEach((flow)=>data.push(temp[\"workflowList\"][\"data\"][flow]));\n return data;\n }\n async currentPageWorkflows() {\n let currentWorkflow = this.utils.endpoints.CURRENT_WORKFLOWS;\n let temp = await this.utils.apiService.makeDDOCall(currentWorkflow, {}, {\n pageId: window.phApp.pageId,\n jobSeqNo: window.phApp.jobSeqNo\n });\n if (temp[currentWorkflow] && temp[currentWorkflow][\"status\"] == 200 && temp[currentWorkflow][\"data\"] && Object.keys(temp[currentWorkflow][\"data\"]).length) return temp[currentWorkflow][\"data\"];\n else if (location.href.indexOf(\"hvh\") != -1) {\n let pageNameList = location.href.split(\"/\");\n if (pageNameList.length == 6) {\n let pageNames = pageNameList[5].split(\"?\");\n pageNames[0] = \"apply\";\n pageNameList[5] = pageNames.join(\"?\");\n } else if (pageNameList.length == 7) {\n let pageNames = pageNameList[6].split(\"?\");\n pageNames[0] = \"apply\";\n pageNameList[6] = pageNames.join(\"?\");\n }\n location.href = pageNameList.join(\"/\");\n }\n }\n}\nvar $453b7cb6832e56b0$export$2e2bcd8739ae039 = $453b7cb6832e56b0$var$ResolutionManager;\n\n\n\nconst $10a67bcf2542ccc9$var$checkEachAndEveryChildAndAppendDataPs = function(ele) {\n if (ele.children) {\n let dataPs = ele.getAttribute(\"data-ps\");\n if (dataPs) {\n let childs = [\n ...ele.children\n ];\n childs.forEach((childEle)=>{\n let childDataPs = dataPs + \"-\" + childEle.tagName.toLowerCase();\n childEle.setAttribute(\"data-ps\", childDataPs);\n if (this && this.instanceId && phApp && phApp.settings && phApp.settings[this.instanceId] && phApp.settings[this.instanceId][childDataPs]) phApp.settings[this.instanceId][childDataPs][\"class\"].forEach((cls)=>childEle.classList.add(cls));\n if (childEle.children) $10a67bcf2542ccc9$var$checkEachAndEveryChildAndAppendDataPs(childEle);\n });\n }\n }\n};\nvar $10a67bcf2542ccc9$export$2e2bcd8739ae039 = $10a67bcf2542ccc9$var$checkEachAndEveryChildAndAppendDataPs;\n\n\nconst $33419c22cd19a901$var$updateAttributesFromGivenElement = function(getEle, setEle, fieldData) {\n let attrs = getEle.attributes;\n if (fieldData) Object.keys(fieldData[\"attrs\"]).forEach((temp)=>{\n setEle.setAttribute(temp, fieldData[\"attrs\"][temp]);\n });\n for(var i = 0; i < attrs.length; i++)setEle.setAttribute(attrs[i].nodeName == \"form-field-type\" ? \"form-field\" : attrs[i].nodeName, attrs[i].nodeValue || \"\");\n if (getEle.hasAttribute(\"data-ps\")) {\n let dataPs = getEle.getAttribute(\"data-ps\") + \"-\" + setEle.tagName.toLowerCase();\n setEle.setAttribute(\"data-ps\", dataPs);\n if (this && this.instanceId && phApp && phApp.settings && phApp.settings[this.instanceId] && phApp.settings[this.instanceId][dataPs]) phApp.settings[this.instanceId][dataPs][\"class\"].forEach((cls)=>setEle.classList.add(cls));\n }\n};\nvar $33419c22cd19a901$export$2e2bcd8739ae039 = $33419c22cd19a901$var$updateAttributesFromGivenElement;\n\n\nconst $e2a6a9071c0c37d8$export$bb7b95f38ad9434a = function(className = \"\", temp) {\n let ele = document.createElement(\"div\");\n ele.setAttribute(\"class\", \"phw-mb-2 \" + className);\n if (temp && temp.hasAttribute(\"data-ph-id\")) ele.setAttribute(\"data-ph-id\", temp.getAttribute(\"data-ph-id\"));\n if (temp && temp.hasAttribute(\"data-ps\")) {\n let dataPs = temp.getAttribute(\"data-ps\");\n ele.setAttribute(\"data-ps\", dataPs);\n if (this && this.instanceId && phApp && phApp.settings && phApp.settings[this.instanceId] && phApp.settings[this.instanceId][dataPs]) phApp.settings[this.instanceId][dataPs][\"class\"].forEach((cls)=>ele.classList.add(cls));\n }\n return ele;\n};\nconst $e2a6a9071c0c37d8$export$236350842f3cd9bc = function(name = \"\", ele) {\n let temp = \"\";\n let classessToBeAdded = \"\";\n let dataPs = \"\";\n if (ele.hasAttribute(\"data-ps\")) {\n dataPs = ele.getAttribute(\"data-ps\") + \"-label\";\n temp = `data-ps=${dataPs}`;\n }\n if (dataPs && this.instanceId && phApp && phApp.settings && phApp.settings[this.instanceId] && phApp.settings[this.instanceId][dataPs]) phApp.settings[this.instanceId][dataPs][\"class\"].forEach((cls)=>classessToBeAdded += `${cls} `);\n return ``;\n};\nconst $e2a6a9071c0c37d8$export$133b428007988271 = function(type, properties = {}) {\n let ele = document.createElement(type);\n Object.keys(properties).forEach((attr)=>ele.setAttribute(attr, properties[attr]));\n return ele;\n};\nconst $e2a6a9071c0c37d8$export$237edc14ad5c3c2d = function(className, ele, data) {\n let div = $e2a6a9071c0c37d8$export$bb7b95f38ad9434a(className, ele);\n // console.log(data);\n let temp = Date.now();\n let questionPart = $e2a6a9071c0c37d8$export$f7f885e4c108e94b(data.questionObj, data.uiTypeQuestion);\n div.innerHTML = `
\n
\n
\n ${questionPart.outerHTML}\n
\n
\n xx\n
\n
\n
`;\n return div;\n};\nconst $e2a6a9071c0c37d8$export$f7f885e4c108e94b = function(questionObj, uiTypeQuestion, clsName) {\n let questionsEle = document.createElement(\"div\");\n questionsEle.setAttribute(\"class\", clsName || \" phw-width-4 phw-m-0-auto phw-width-md-3 phw-m-md-0-auto phw-width-sm-4 phw-m-sm-0-auto phw-pl-8 phw-pr-8 phw-pt-4 phw-pb-4 phw-p-sm-2\");\n questionObj.forEach((ele, index)=>{\n if (ele.type == \"text\" || ele.type == \"nonOption\") {\n let headingEle = document.createElement(\"div\");\n switch(ele.metadata.type){\n case \"heading\":\n case \"nonOption\":\n headingEle = document.createElement(\"h2\");\n headingEle.setAttribute(\"class\", \"phw-width-4 phw-width-sm-4 phw-mb-sm-4 phw-text-sm-c phw-g-h2-card-title-dark-default\");\n headingEle.innerHTML = `${ele.displayObject}`;\n break;\n case \"subheading\":\n case \"subHeading\":\n if (index == 2 && uiTypeQuestion == 'languageTextPage') {\n headingEle = document.createElement(\"button\");\n headingEle.setAttribute(\"class\", \"phw-btn start-btn phw-g-btn-primary phw-width-auto phw-mt-2\");\n } else headingEle.setAttribute(\"class\", \"phw-mt-2 phw-g-widget-subcontent-black\");\n headingEle.innerHTML = `${ele.displayObject}`;\n break;\n case \"text\":\n case \"value\":\n if (uiTypeQuestion == \"ratingQuestion\") {\n let ratingEle = document.createElement(\"div\");\n ratingEle.setAttribute(\"class\", \"rating-que phw-pt-9 phw-pb-9 phw-pl-7 phw-pr-7 phw-posn-relative\");\n ratingEle.innerHTML = `\n
\n ${ele.displayObject}\n
\n `;\n headingEle.appendChild(ratingEle);\n } else if (uiTypeQuestion == \"sjtQuestion\") headingEle.innerHTML = `\n
\n ${ele.displayObject}\n
`;\n else headingEle.innerHTML = `\n
\n ${ele.displayObject}\n
`;\n break;\n }\n questionsEle.appendChild(headingEle);\n } else if (ele.type == \"image\") {\n let imageEle = document.createElement(\"figure\");\n imageEle.setAttribute(\"class\", \"phw-img-ctr\");\n let imgtag = document.createElement(\"img\");\n imgtag.setAttribute(\"src\", ele.displayObject);\n imgtag.setAttribute(\"class\", \"phw-width-4 phw-45dc0297-radius\");\n imageEle.appendChild(imgtag);\n questionsEle.appendChild(imageEle);\n } else if (ele.type == \"video\") {\n let imageEle = document.createElement(\"figure\");\n imageEle.setAttribute(\"class\", \"phw-img-ctr\");\n let imgtag = document.createElement(\"video\");\n imgtag.setAttribute(\"src\", ele.displayObject);\n imgtag.setAttribute(\"class\", \"phw-width-4 phw-45dc0297-radius\");\n imageEle.appendChild(imgtag);\n questionsEle.appendChild(imageEle);\n } else if (ele.type == \"audio\") {\n let imageEle = document.createElement(\"figure\");\n imageEle.setAttribute(\"class\", \"phw-img-ctr\");\n let audiotag = document.createElement(\"audio\");\n audiotag.setAttribute(\"controls\", true);\n audiotag.setAttribute(\"class\", \"phw-width-4 phw-mt-4 phw-mb-4\");\n let srcEle = document.createElement(\"source\");\n srcEle.setAttribute(\"src\", ele.displayObject);\n audiotag.appendChild(srcEle);\n imageEle.appendChild(audiotag);\n questionsEle.appendChild(imageEle);\n }\n });\n return questionsEle;\n};\n\n\nconst $72f1f4d0682f49b3$var$handleInput = function(data, ele, value = \"\") {\n let div = (0, $e2a6a9071c0c37d8$export$bb7b95f38ad9434a)(\"form-field\", ele);\n div.innerHTML = (0, $e2a6a9071c0c37d8$export$236350842f3cd9bc)(ele.hasAttribute(\"label\") ? ele.getAttribute(\"label\") : data.name, ele);\n let temp = (0, $e2a6a9071c0c37d8$export$133b428007988271)(\"input\", {\n class: \"phw-g-text-field-style-1 phw-g-mf-form-control phw-form-control phw-m-0\"\n });\n temp.setAttribute(\"value\", value || \"\");\n div.appendChild(temp);\n (0, $33419c22cd19a901$export$2e2bcd8739ae039)(ele, temp, data.field);\n ele.outerHTML = div.outerHTML;\n (0, $10a67bcf2542ccc9$export$2e2bcd8739ae039)(ele);\n};\nvar $72f1f4d0682f49b3$export$2e2bcd8739ae039 = $72f1f4d0682f49b3$var$handleInput;\n\n\n\n\n\nfunction $477f01b9cdbbc1e1$var$mapOptions(htmlOptions) {\n return htmlOptions.map((option)=>{\n return {\n displayName: option.label,\n key: option.value\n };\n });\n}\nvar $477f01b9cdbbc1e1$export$2e2bcd8739ae039 = $477f01b9cdbbc1e1$var$mapOptions;\n\n\nconst $1334abf64e397dbf$var$handleRadio = function(data, ele, value = \"\") {\n let div = (0, $e2a6a9071c0c37d8$export$bb7b95f38ad9434a)(\"form-field\", ele);\n // div.innerHTML = ``;\n div.innerHTML = (0, $e2a6a9071c0c37d8$export$236350842f3cd9bc)(ele.hasAttribute(\"label\") ? ele.getAttribute(\"label\") : data.name, ele);\n let options;\n if (ele.hasAttribute(\"options\")) options = (0, $477f01b9cdbbc1e1$export$2e2bcd8739ae039)(JSON.parse(ele.getAttribute(\"options\")));\n else options = data.field.options;\n if (data.field.optionsSource == \"directValues\") {\n let fieldset = (0, $e2a6a9071c0c37d8$export$133b428007988271)(\"fieldset\", {\n type: \"radio-group\",\n class: \"phw-d-flex phw-flex-row phw-gap-1\"\n });\n options.forEach((eachOption)=>{\n let formControl = (0, $e2a6a9071c0c37d8$export$133b428007988271)(\"div\", {\n class: \"phw-d-flex phw-flex-row-reverse phw-justify-content-end phw-gap-1 phw-width-fit-content\"\n });\n let label = (0, $e2a6a9071c0c37d8$export$133b428007988271)(\"label\", {\n class: \"phw-g-mf-control-label phw-g-p-default-secondary\"\n });\n label.innerText = eachOption.displayName;\n let temp = (0, $e2a6a9071c0c37d8$export$133b428007988271)(\"input\", {\n class: \"phw-g-mf-input-radio phw-form-control\",\n type: \"radio\",\n value: eachOption.key,\n name: ele.getAttribute(\"form-field-type\")\n });\n if (eachOption.key == value && eachOption.value) temp.setAttribute(\"checked\", true);\n temp.innerText = eachOption.displayName;\n formControl.appendChild(label);\n formControl.appendChild(temp);\n fieldset.appendChild(formControl);\n });\n div.appendChild(fieldset);\n (0, $33419c22cd19a901$export$2e2bcd8739ae039)(ele, fieldset);\n }\n ele.outerHTML = div.outerHTML;\n (0, $10a67bcf2542ccc9$export$2e2bcd8739ae039)(ele);\n};\nvar $1334abf64e397dbf$export$2e2bcd8739ae039 = $1334abf64e397dbf$var$handleRadio;\n\n\n\n\n\nconst $a3ffb71a398bb81c$var$handleParagraph = function(data, ele) {\n let div = (0, $e2a6a9071c0c37d8$export$bb7b95f38ad9434a)(\"form-field \", ele);\n let temp = (0, $e2a6a9071c0c37d8$export$133b428007988271)(\"div\", {\n class: \"form-label phw-g-p-default-secondary\"\n });\n temp.innerText = ele.hasAttribute(\"label\") ? ele.getAttribute(\"label\") : data.field.defaultValue;\n (0, $33419c22cd19a901$export$2e2bcd8739ae039)(ele, temp);\n div.appendChild(temp);\n ele.outerHTML = div.outerHTML;\n (0, $10a67bcf2542ccc9$export$2e2bcd8739ae039)(ele);\n};\nvar $a3ffb71a398bb81c$export$2e2bcd8739ae039 = $a3ffb71a398bb81c$var$handleParagraph;\n\n\n\n\n\n\nconst $c258535c2d3f2530$var$handleDropdown = function(data, ele, value) {\n let div = (0, $e2a6a9071c0c37d8$export$bb7b95f38ad9434a)(\"form-field\", ele);\n div.innerHTML = (0, $e2a6a9071c0c37d8$export$236350842f3cd9bc)(data.name, ele);\n let temp = (0, $e2a6a9071c0c37d8$export$133b428007988271)(\"select\", {\n class: \"phw-g-dropdown-style-1 phw-g-mf-form-select phw-form-control phw-m-0 form-select\"\n });\n div.appendChild(temp);\n let options;\n if (ele.hasAttribute(\"options\")) options = (0, $477f01b9cdbbc1e1$export$2e2bcd8739ae039)(JSON.parse(ele.getAttribute(\"options\")));\n else options = data.field.options;\n if (data.field && data.field[\"optionsSource\"] == \"directValues\" && data.field[\"options\"]) {\n let optionList = \"\";\n options.forEach((ele)=>{\n optionList += ``;\n });\n temp.innerHTML = optionList;\n } else if (data.field && data.field[\"optionsSource\"] == \"api\") {\n if (data.field[\"apiConfig\"]) $c258535c2d3f2530$var$callApi(data.field[\"apiConfig\"]).then((res)=>{\n console.log(\"res\", res);\n if (res.status == \"success\" && res.data) {\n let optionList = \"\";\n res.data.forEach((ele)=>{\n optionList += ``;\n });\n temp.innerHTML = optionList;\n }\n });\n }\n (0, $33419c22cd19a901$export$2e2bcd8739ae039)(ele, temp);\n ele.outerHTML = div.outerHTML;\n (0, $10a67bcf2542ccc9$export$2e2bcd8739ae039)(ele);\n};\nfunction $c258535c2d3f2530$var$callApi(apiConfig) {\n return fetch(apiConfig[\"endpoint\"], {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({\n refNum: phAppStore.refNum\n })\n }).then((response)=>{\n return response.json();\n });\n}\nvar $c258535c2d3f2530$export$2e2bcd8739ae039 = $c258535c2d3f2530$var$handleDropdown;\n\n\n\n\n\nconst $732536be483d2e37$var$handleHeading = function(data, ele) {\n let div = (0, $e2a6a9071c0c37d8$export$bb7b95f38ad9434a)(\"form-field \", ele);\n let temp = (0, $e2a6a9071c0c37d8$export$133b428007988271)(\"h3\", {\n class: \"form-label\"\n });\n temp.innerText = ele.hasAttribute(\"label\") ? ele.getAttribute(\"label\") : data.field.defaultValue;\n (0, $33419c22cd19a901$export$2e2bcd8739ae039)(ele, temp);\n div.appendChild(temp);\n ele.outerHTML = div.outerHTML;\n (0, $10a67bcf2542ccc9$export$2e2bcd8739ae039)(ele);\n};\nvar $732536be483d2e37$export$2e2bcd8739ae039 = $732536be483d2e37$var$handleHeading;\n\n\n\n\n\nconst $18373e3cc41d00c2$var$handleLegend = function(data, ele) {\n let div = (0, $e2a6a9071c0c37d8$export$bb7b95f38ad9434a)(\"form-field \", ele);\n let temp = (0, $e2a6a9071c0c37d8$export$133b428007988271)(\"legend\", {\n class: \"form-label phw-g-p-default-secondary\"\n });\n temp.innerText = ele.hasAttribute(\"label\") ? ele.getAttribute(\"label\") : data.field.defaultValue;\n (0, $33419c22cd19a901$export$2e2bcd8739ae039)(ele, temp);\n div.appendChild(temp);\n ele.outerHTML = div.outerHTML;\n (0, $10a67bcf2542ccc9$export$2e2bcd8739ae039)(ele);\n};\nvar $18373e3cc41d00c2$export$2e2bcd8739ae039 = $18373e3cc41d00c2$var$handleLegend;\n\n\n\n\n\n\nconst $fc3b09d64f16b202$var$config = {\n // serverUrl: \"http://qa-realtime-workflow-orchestration-ha.aws.phenom.local/\",\n serverUrl: \"http://localhost:8080/\",\n // serverUrl:\"https://mastercanvasdemo-qa1.phenompro.com/widgets\",\n // serverUrl:'https://fiveguys-stg.phenompro.com/widgets',\n serverUrl: phApp.widgetApiEndpoint,\n endpoints: {\n GET_WORKFLOWS: \"v1/workflow/list\",\n GET_WORKFLOWS: \"getWorkflowList\",\n START_WORKFLOW: \"v1/workflow/start\",\n START_WORKFLOW: \"startWorkflow\",\n NEXT_ACTION: \"v1/workflow/getNextAction\",\n NEXT_ACTION: \"getWorkflowNextAction\",\n PREVIOUS_ACTION: \"v1/workflow/getPreviousAction\",\n PREVIOUS_ACTION: \"getWorkflowPreviousAction\",\n FINISH_FLOW: \"v1/workflow/end\",\n FINISH_FLOW: \"endWorkflow\",\n CURRENT_WORKFLOWS: \"currentWorkflows\",\n CURRENT_ACTION: \"currentAction\",\n MASTER_DATA: \"getFormMasterData\",\n WORKFLOW_TYPE_COMPONENTS: \"getWorkflowTypeComponents\",\n FILE_UPLOAD: \"fileCommonUpload\",\n ddoKeyForFileUpload: \"fileUpload\",\n UPLOAD_CV_MERGE_FLOW: \"uploadCvMergeFlow\",\n MERGED_PROFILE_V2: \"mergedProfileV2\"\n }\n};\nvar $fc3b09d64f16b202$export$2e2bcd8739ae039 = $fc3b09d64f16b202$var$config;\n\n\nconst $da12833de8675cef$var$handleFileType = function(data, ele) {\n let div = document.createElement(\"div\");\n div.setAttribute(\"class\", \"file-wrapper form-field phw-mb-2\");\n div.setAttribute(\"data-ps\", ele.getAttribute(\"data-ps\"));\n div.setAttribute(\"data-ph-id\", ele.getAttribute(\"data-ph-id\"));\n div.innerHTML = (0, $e2a6a9071c0c37d8$export$236350842f3cd9bc)(ele.hasAttribute(\"label\") ? ele.getAttribute(\"label\") : data.name, ele);\n let innerDiv = document.createElement(\"div\");\n innerDiv.setAttribute(\"class\", \"phw-posn-relative phw-g-file-inner-wrapper\");\n innerDiv.setAttribute(\"data-ps\", ele.getAttribute(\"data-ps\"));\n innerDiv.setAttribute(\"data-ph-id\", ele.getAttribute(\"data-ph-id\"));\n innerDiv.style.border = \"1px dashed grey\";\n innerDiv.style.borderRadius = \"10px\";\n let deleteDiv = document.createElement(\"span\");\n deleteDiv.setAttribute(\"class\", \"delete-button\");\n deleteDiv.style.position = \"absolute\";\n deleteDiv.style.top = \"25%\";\n deleteDiv.style.right = \"25px\";\n deleteDiv.style.transform = \"translateY(-50%)\";\n deleteDiv.style.cursor = \"pointer\";\n deleteDiv.style.zIndex = \"999\";\n let temp = (0, $e2a6a9071c0c37d8$export$133b428007988271)(\"input\", {\n class: \"phw-pt-3 phw-pb-3 phw-pl-6 phw-pr-6 \"\n });\n temp.style.opacity = \"0\";\n const errorMessage = document.createElement(\"div\");\n errorMessage.setAttribute(\"class\", \"error-message\");\n errorMessage.style.color = \"red\";\n innerDiv.appendChild(deleteDiv);\n innerDiv.appendChild(temp);\n div.appendChild(innerDiv);\n div.appendChild(errorMessage);\n $da12833de8675cef$var$handleFile(innerDiv, data);\n (0, $33419c22cd19a901$export$2e2bcd8739ae039)(ele, temp, data.field);\n ele.outerHTML = div.outerHTML;\n (0, $10a67bcf2542ccc9$export$2e2bcd8739ae039)(ele);\n let inputField = document.querySelector(\"[form-field='\" + temp.getAttribute(\"form-field\") + \"']\");\n $da12833de8675cef$var$appendListenerOnChange(inputField, data);\n};\nfunction $da12833de8675cef$var$handleFile(parentElemnt, formData) {\n let elem = (0, $e2a6a9071c0c37d8$export$bb7b95f38ad9434a)(\"file-info phw-posn-center phw-width-4 phw-text-c phw-p-1 phw-g-file-text\", parentElemnt);\n let dropEle = document.createElement(\"div\");\n // dropEle.innerHTML = formData.field.attrs.dropText;\n let uploadIcon = document.createElement(\"img\");\n uploadIcon.setAttribute(\"src\", \"https://cdn-icons-png.flaticon.com/512/126/126494.png\");\n uploadIcon.height = 20;\n uploadIcon.width = 15;\n uploadIcon.style.margin = \"5px\";\n let selectEle = document.createElement(\"div\");\n selectEle.setAttribute(\"class\", \"brand-color-primary\");\n selectEle.innerHTML = `${formData.field.attrs.dropText} ${formData.field.attrs.selectText}`;\n selectEle.style.margin = \"5px\";\n selectEle.style.fontSize = \"15px\";\n selectEle.style.fontWeight = \"bold\";\n let fileFormat = document.createElement(\"span\");\n fileFormat.innerHTML = formData.field.formatAccepted;\n dropEle.appendChild(uploadIcon);\n dropEle.appendChild(selectEle);\n dropEle.appendChild(fileFormat);\n elem.appendChild(dropEle);\n // if (formData.field.attrs.helpText || ele.getAttribute(\"helpText\")) {\n // let temp = document.createElement(\"div\");\n // temp.innerHTML = ele.getAttribute(\"helpText\") ? ele.getAttribute(\"helpText\") : formData.field.attrs.helpText;\n // elem.appendChild(temp);\n // }\n // if (formData.field.formatAccepted) {\n // let temp = document.createElement(\"div\");\n // temp.innerHTML = formData.field.formatAccepted;\n // elem.appendChild(temp);\n // }\n parentElemnt.appendChild(elem);\n}\nlet $da12833de8675cef$var$deleteClicked = false;\nfunction $da12833de8675cef$var$appendListenerOnChange(actualEle, formData) {\n console.log(\"Actual Ele\", actualEle);\n const workflowEle = actualEle.closest(\"[workflowid]\");\n if (workflowEle) {\n const workflowId = workflowEle.getAttribute(\"workflowid\");\n const workflowInstanceId = workflowEle.getAttribute(\"workflowinstanceid\");\n actualEle?.addEventListener(\"change\", (event)=>{\n const errorDisplay = document.querySelector(\".error-message\");\n errorDisplay.style.display = \"none\";\n console.log(event);\n let file = event?.target?.files[0];\n const fileStateContainer = event.target.parentElement.querySelector(\".file-info\") //\n ;\n const acceptedFileTypes = [\n 'application/pdf',\n 'application/msword',\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'\n ];\n if (file && event.target.parentElement) {\n if (!acceptedFileTypes.includes(file.type)) {\n errorDisplay.innerHTML = \"Please upload the correct file as per the provided instructions.\";\n errorDisplay.style.display = \"block\";\n actualEle.value = \"\";\n return;\n }\n if (file.size > 1 * 1024 * 1024) {\n errorDisplay.innerHTML = \"File size must be less than 1 MB.\";\n errorDisplay.style.display = \"block\";\n actualEle.value = \"\";\n return;\n }\n $da12833de8675cef$var$deleteClicked = false;\n $da12833de8675cef$var$setFileStateVisibility(fileStateContainer, 'uploading', file, formData);\n let payload = new FormData();\n // payload.append(\"workflowId\",workflowId);\n // payload.append(\"workflowInstanceId\",workflowInstanceId);\n payload.append(\"file\", file);\n payload.append(\"dk\", (0, $fc3b09d64f16b202$export$2e2bcd8739ae039).endpoints.ddoKeyForFileUpload);\n (0, $fa7a88af7a53f5b1$export$d0204b1ddc8ee140).makePostCallForFormData((0, $fc3b09d64f16b202$export$2e2bcd8739ae039).endpoints.FILE_UPLOAD, {\n \"Content-type\": \"multipart/form-data\"\n }, payload).then((res)=>{\n console.log(\"res\", res);\n if (res.status == \"success\" && res.profile && res.profile[\"resumeIdentifier\"]) {\n let data = {\n flowType: \"upload_resume\",\n ignorePsInfo: false,\n profile: {\n resumeIdentifier: res.profile[\"resumeIdentifier\"],\n optIn: true,\n privacyConsent: true\n }\n };\n (0, $fa7a88af7a53f5b1$export$d0204b1ddc8ee140).makeDDOCall((0, $fc3b09d64f16b202$export$2e2bcd8739ae039).endpoints.UPLOAD_CV_MERGE_FLOW, {}, data).then((uploadRes)=>{\n // apiService.makeDDOCall(config.endpoints.MERGED_PROFILE_V2, {}, {}).then(response=>{\n actualEle.fileDetails = {\n resumeIdentifier: res.profile[\"resumeIdentifier\"]\n };\n // })\n });\n $da12833de8675cef$var$setFileStateVisibility(fileStateContainer, 'uploaded', file, formData);\n } else {\n $da12833de8675cef$var$setFileStateVisibility(fileStateContainer, 'select', null, formData);\n errorDisplay.innerHTML = \"Please upload the correct file as per the provided instructions.\";\n errorDisplay.style.display = \"block\";\n }\n });\n // let temp = event.target.parentElement.querySelector(\".file-details\");\n // if (!temp) {\n // temp = document.createElement(\"div\");\n // temp.setAttribute(\"class\", \"file-details\");\n // actualEle?.parentElement?.append(temp);\n // }\n // temp.innerHTML = file.name;\n }\n });\n }\n}\nfunction $da12833de8675cef$var$createUploadingFile(parentElement, file, formData) {\n const uploadingFileDiv = document.createElement(\"div\");\n uploadingFileDiv.setAttribute(\"class\", \"file-state uploading phw-text-c\");\n const fileNameText = document.createElement(\"div\");\n fileNameText.textContent = `Uploading ${file.name}`;\n fileNameText.style.whiteSpace = \"nowrap\";\n fileNameText.style.overflow = \"hidden\";\n fileNameText.style.textOverflow = \"ellipsis\";\n const button = document.createElement(\"img\");\n button.setAttribute(\"class\", \"delete\");\n button.src = \"https://cdn-icons-png.flaticon.com/256/992/992701.png\";\n button.height = 15;\n button.width = 15;\n const loader = document.createElement(\"div\");\n loader.setAttribute(\"class\", \"loader\");\n loader.style.height = \"30px\";\n loader.style.width = \"30px\";\n loader.style.display = \"inline-block\";\n loader.style.border = \"3px solid rgb(179, 141, 170)\";\n loader.style.borderRadius = \"50%\";\n loader.style.borderTop = \"3px solid rgb(112, 43, 97)\";\n loader.style.animationName = \"simpleLoader\";\n loader.style.animationDuration = \"2s\";\n loader.style.animationIterationCount = \"infinite\";\n loader.style.animationTimingFunction = \"linear\";\n const style = document.createElement(\"style\");\n style.innerHTML = `@keyframes simpleLoader{\n from{transform: rotate(0deg);}\n to{transform: rotate(360deg);}\n }`;\n loader.appendChild(style);\n button.addEventListener('click', function() {\n $da12833de8675cef$var$deleteClicked = true;\n button.remove();\n $da12833de8675cef$var$setFileStateVisibility(parentElement, 'select', null, formData);\n const fileInput = document.querySelector(\"input[type='file']\");\n if (fileInput) fileInput.value = \"\";\n });\n uploadingFileDiv.appendChild(loader);\n uploadingFileDiv.appendChild(fileNameText);\n let addDeleteButton = document.querySelector(\".delete-button\");\n addDeleteButton.appendChild(button);\n parentElement.appendChild(uploadingFileDiv);\n return uploadingFileDiv;\n}\nfunction $da12833de8675cef$var$createUploadedFile(parentElement, file, formData) {\n const uploadedFileDiv = document.createElement(\"div\");\n uploadedFileDiv.setAttribute(\"class\", \"file-state uploaded phw-text-c\");\n const fileSize = (file.size / 1048576).toFixed(2);\n const fileNameElement = document.createElement(\"h6\");\n fileNameElement.innerHTML = `${file.name}`;\n fileNameElement.style.whiteSpace = \"nowrap\";\n fileNameElement.style.overflow = \"hidden\";\n fileNameElement.style.textOverflow = \"ellipsis\";\n fileNameElement.style.marginTop = \"10px\";\n const fileSizeElement = document.createElement(\"span\");\n fileSizeElement.textContent = `${fileSize} MB`;\n const icon = document.createElement(\"img\");\n icon.setAttribute(\"class\", \"icon\");\n icon.src = \"https://cdn-icons-png.flaticon.com/256/254/254496.png\";\n icon.height = 40;\n icon.width = 45;\n icon.style.position = \"relative\";\n icon.style.left = \"10px\";\n const iconLabel = document.createElement(\"span\");\n const fileExtension = file.name.split('.').pop().toUpperCase();\n iconLabel.innerHTML = fileExtension;\n iconLabel.style.position = \"relative\";\n iconLabel.style.top = \"10px\";\n iconLabel.style.right = \"27px\";\n iconLabel.style.color = \"black\";\n iconLabel.style.fontWeight = \"bold\";\n const button = document.createElement(\"img\");\n button.setAttribute(\"class\", \"delete\");\n button.src = \"https://cdn-icons-png.flaticon.com/256/992/992701.png\";\n button.height = 15;\n button.width = 15;\n button.addEventListener('click', function() {\n $da12833de8675cef$var$setFileStateVisibility(parentElement, 'select', null, formData);\n const fileInput = document.querySelector(\"input[type='file']\");\n if (fileInput) fileInput.value = \"\";\n });\n uploadedFileDiv.appendChild(icon);\n uploadedFileDiv.appendChild(iconLabel);\n uploadedFileDiv.appendChild(fileNameElement);\n uploadedFileDiv.appendChild(fileSizeElement);\n let addDeleteButton = document.querySelector(\".delete-button\");\n addDeleteButton.appendChild(button);\n parentElement.appendChild(uploadedFileDiv);\n return uploadedFileDiv;\n}\nfunction $da12833de8675cef$var$setFileStateVisibility(container, state, file, formData) {\n container.innerHTML = '';\n if ($da12833de8675cef$var$deleteClicked) {\n $da12833de8675cef$var$handleFile(container, formData);\n return;\n }\n let deleteButton = document.querySelector(\".delete-button\");\n if (deleteButton) {\n let deleteImage = deleteButton.querySelector(\"img\");\n if (deleteImage) deleteImage.remove();\n }\n switch(state){\n case 'select':\n $da12833de8675cef$var$handleFile(container, formData);\n break;\n case 'uploading':\n $da12833de8675cef$var$createUploadingFile(container, file, formData);\n break;\n case 'uploaded':\n $da12833de8675cef$var$createUploadedFile(container, file, formData);\n break;\n }\n}\nvar $da12833de8675cef$export$2e2bcd8739ae039 = $da12833de8675cef$var$handleFileType;\n\n\n\n\n\n\nconst $b23aa5bf5d95681f$var$handleCheckbox = function(data, ele, value = \"\") {\n let selectedValues = value.split(\",\");\n let options;\n if (ele.hasAttribute(\"options\")) options = (0, $477f01b9cdbbc1e1$export$2e2bcd8739ae039)(JSON.parse(ele.getAttribute(\"options\")));\n else options = data.field.options;\n let div = (0, $e2a6a9071c0c37d8$export$bb7b95f38ad9434a)(\"form-field\", ele);\n div.innerHTML = ``;\n let fieldset = (0, $e2a6a9071c0c37d8$export$133b428007988271)(\"fieldset\", {\n type: \"checkbox-group\",\n class: \"phw-d-flex phw-flex-column phw-gap-1\"\n });\n if (data.field.optionsSource == \"directValues\") {\n options.forEach((eachOption)=>{\n let formControl = (0, $e2a6a9071c0c37d8$export$133b428007988271)(\"div\", {\n class: \"phw-d-flex phw-flex-row-reverse phw-justify-content-end phw-gap-1 phw-width-fit-content\"\n });\n let label = (0, $e2a6a9071c0c37d8$export$133b428007988271)(\"label\", {\n class: \"phw-g-mf-control-label\"\n });\n label.innerText = eachOption.displayName;\n let temp = (0, $e2a6a9071c0c37d8$export$133b428007988271)(\"input\", {\n class: \"phw-g-mf-input-check phw-form-control\",\n type: \"checkbox\",\n value: eachOption.key,\n name: ele.getAttribute(\"form-field-type\")\n });\n if (selectedValues.indexOf(eachOption.key) != -1) temp.setAttribute(\"checked\", true);\n temp.innerText = eachOption.displayName;\n formControl.appendChild(label);\n formControl.appendChild(temp);\n fieldset.appendChild(formControl);\n });\n div.appendChild(fieldset);\n }\n (0, $33419c22cd19a901$export$2e2bcd8739ae039)(ele, fieldset);\n ele.outerHTML = div.outerHTML;\n (0, $10a67bcf2542ccc9$export$2e2bcd8739ae039)(ele);\n};\nvar $b23aa5bf5d95681f$export$2e2bcd8739ae039 = $b23aa5bf5d95681f$var$handleCheckbox;\n\n\n\n\n\nconst $4c1988777a5ecde6$var$handleYesNoQuestion = function(data, ele, value) {\n let div = (0, $e2a6a9071c0c37d8$export$bb7b95f38ad9434a)(\"form-field\", ele);\n let temp = (0, $e2a6a9071c0c37d8$export$133b428007988271)(\"div\", {\n class: \"phw-form-control phw-d-flex \"\n });\n let question = (0, $e2a6a9071c0c37d8$export$133b428007988271)(\"div\", {\n class: \"\"\n });\n question.innerHTML = data.name;\n temp.appendChild(question);\n let options = (0, $e2a6a9071c0c37d8$export$133b428007988271)(\"fieldset\", {\n class: \"phw-ml-auto phw-gap-2 phw-d-flex\"\n });\n options.setAttribute(\"type\", \"radio-group\");\n options.innerHTML = `\n
\n \n
\n
\n \n
`;\n (0, $33419c22cd19a901$export$2e2bcd8739ae039)(ele, options);\n temp.appendChild(options);\n div.appendChild(temp);\n ele.outerHTML = div.outerHTML;\n (0, $10a67bcf2542ccc9$export$2e2bcd8739ae039)(ele);\n};\nvar $4c1988777a5ecde6$export$2e2bcd8739ae039 = $4c1988777a5ecde6$var$handleYesNoQuestion;\n\n\n\n\n\nconst $2235723f8b5d119b$var$assessmentAnswer = function(question, parentEle, actualEle) {\n let ele = $2235723f8b5d119b$var$handleNonOptions(question.optionsObj, question, parentEle);\n let rightSec = ele.querySelector(\".right-side-sec\");\n if (question.optionsObj.options && rightSec) switch(question.uiTypeOptions){\n case \"sjtAnswer\":\n {\n let bestAns = question.id + \"best\";\n let worstAns = question.id + \"worst\";\n let optWrapper = (0, $e2a6a9071c0c37d8$export$133b428007988271)(\"fieldset\", {\n class: \"opt-wrapper phw-d-flex phw-gap-2 phw-flex-column\",\n type: \"sjt-group\"\n });\n question.optionsObj.options.forEach((element)=>{\n let temp = (0, $e2a6a9071c0c37d8$export$133b428007988271)(\"div\", {\n class: \" phw-form-control phw-d-flex phw-g-vx-widget-bg-white phw-width-4 phw-p-2\"\n });\n temp.innerHTML = `\n
\n ${element.displayObject}\n
\n
\n
\n \n
\n
\n \n
\n
`;\n optWrapper.appendChild(temp);\n });\n (0, $33419c22cd19a901$export$2e2bcd8739ae039)(actualEle, optWrapper);\n rightSec.appendChild(optWrapper);\n }\n break;\n case \"singleSelectBubble\":\n {\n let classesList = [\n \"form-wh-9\",\n \"form-wh-8\",\n \"form-wh-6\",\n \"form-wh-8\",\n \"form-wh-9\"\n ];\n let optWrapper = (0, $e2a6a9071c0c37d8$export$133b428007988271)(\"fieldset\", {\n class: \"opt-wrapper phw-d-flex phw-gap-2 phw-width-4 phw-justify-content-between phw-pl-8 phw-pr-8 rating-question\",\n type: \"radio-group\",\n subType: \"assessment\"\n });\n question.optionsObj.options.forEach((element, index)=>{\n optWrapper.innerHTML += `\n
\n \n \n \n \n \n \n \n
\n \n `;\n });\n (0, $33419c22cd19a901$export$2e2bcd8739ae039)(actualEle, optWrapper);\n rightSec.appendChild(optWrapper);\n rightSec.innerHTML += `
\n Strongly Disagree\n Strongly Agree\n
`;\n }\n break;\n case \"singleSelectButton\":\n {\n let optWrapper = (0, $e2a6a9071c0c37d8$export$133b428007988271)(\"fieldset\", {\n class: \"opt-wrapper phw-d-flex phw-gap-2 phw-flex-column\",\n type: \"radio-group\",\n subType: \"assessment\"\n });\n question.optionsObj.options.forEach((element)=>{\n optWrapper.innerHTML += `\n
\n ${element.displayObject}\n
\n `;\n });\n (0, $33419c22cd19a901$export$2e2bcd8739ae039)(actualEle, optWrapper);\n rightSec.appendChild(optWrapper);\n }\n break;\n }\n return ele;\n};\nfunction $2235723f8b5d119b$var$handleNonOptions(optionsObj, question, parentEle) {\n let divEle = document.createElement(\"div\");\n divEle.setAttribute(\"class\", \"action-parent right-side-sec g-col-6 g-col-sm-12 phw-pl-4 phw-pr-4\");\n let ele = (0, $e2a6a9071c0c37d8$export$f7f885e4c108e94b)(optionsObj.nonOptions, question.uiTypeOptions, \" phw-width-4 phw-m-0-auto phw-width-md-3 phw-m-md-0-auto phw-width-sm-4 phw-m-sm-0-auto phw-pr-8 phw-pt-4 phw-pb-4 phw-p-sm-2\");\n divEle.appendChild(ele);\n parentEle.querySelector(\".phw-container\").appendChild(divEle);\n return parentEle;\n}\nvar $2235723f8b5d119b$export$2e2bcd8739ae039 = $2235723f8b5d119b$var$assessmentAnswer;\n\n\n\nconst $1f1e6a5ce259fae3$var$handleSjtQuestion = function(data, ele, value = \"\") {\n let div = (0, $e2a6a9071c0c37d8$export$237edc14ad5c3c2d)(data.uiTypeQuestion, ele, data);\n let rightSec = div.querySelector(\".right-side-sec\");\n (0, $2235723f8b5d119b$export$2e2bcd8739ae039)(data, div, ele);\n ele.outerHTML = div.outerHTML;\n (0, $10a67bcf2542ccc9$export$2e2bcd8739ae039)(ele);\n};\nvar $1f1e6a5ce259fae3$export$2e2bcd8739ae039 = $1f1e6a5ce259fae3$var$handleSjtQuestion;\n\n\n\n\n\nconst $4b273e49ead3bf12$var$handleRatingQuestion = function(data, ele, value = \"\") {\n let div = (0, $e2a6a9071c0c37d8$export$237edc14ad5c3c2d)(data.uiTypeQuestion, ele, data);\n (0, $2235723f8b5d119b$export$2e2bcd8739ae039)(data, div, ele);\n ele.outerHTML = div.outerHTML;\n (0, $10a67bcf2542ccc9$export$2e2bcd8739ae039)(ele);\n};\nvar $4b273e49ead3bf12$export$2e2bcd8739ae039 = $4b273e49ead3bf12$var$handleRatingQuestion;\n\n\n\n\n\nconst $40a9d1ce0b983786$var$handleListeningQuestion = function(data, ele, value = \"\") {\n let div = (0, $e2a6a9071c0c37d8$export$237edc14ad5c3c2d)(data.uiTypeQuestion, ele, data);\n (0, $2235723f8b5d119b$export$2e2bcd8739ae039)(data, div, ele);\n ele.outerHTML = div.outerHTML;\n (0, $10a67bcf2542ccc9$export$2e2bcd8739ae039)(ele);\n};\nvar $40a9d1ce0b983786$export$2e2bcd8739ae039 = $40a9d1ce0b983786$var$handleListeningQuestion;\n\n\n\n\n\nconst $8d95291f53563010$var$handleReadingQuestion = function(data, ele, value = \"\") {\n let div = (0, $e2a6a9071c0c37d8$export$237edc14ad5c3c2d)(data.uiTypeQuestion, ele, data);\n (0, $2235723f8b5d119b$export$2e2bcd8739ae039)(data, div, ele);\n ele.outerHTML = div.outerHTML;\n (0, $10a67bcf2542ccc9$export$2e2bcd8739ae039)(ele);\n};\nvar $8d95291f53563010$export$2e2bcd8739ae039 = $8d95291f53563010$var$handleReadingQuestion;\n\n\n\n\n\nconst $3bfe324abe8ace80$var$handleGrammarQuestion = function(data, ele, value = \"\") {\n let div = (0, $e2a6a9071c0c37d8$export$237edc14ad5c3c2d)(data.uiTypeQuestion, ele, data);\n (0, $2235723f8b5d119b$export$2e2bcd8739ae039)(data, div, ele);\n ele.outerHTML = div.outerHTML;\n (0, $10a67bcf2542ccc9$export$2e2bcd8739ae039)(ele);\n};\nvar $3bfe324abe8ace80$export$2e2bcd8739ae039 = $3bfe324abe8ace80$var$handleGrammarQuestion;\n\n\n\n\n\nconst $e38a028e05642325$var$handleLandingPageQuestion = function(data, ele, value = \"\") {\n let div = (0, $e2a6a9071c0c37d8$export$237edc14ad5c3c2d)(data.uiTypeQuestion, ele, data);\n (0, $2235723f8b5d119b$export$2e2bcd8739ae039)(data, div, ele);\n let rightPart = div.querySelector(\".right-side-sec\");\n rightPart && rightPart.classList.add(\"phw-text-c\");\n rightPart.classList.add(\"phw-stroke-left-dark\");\n rightPart.classList.add(\"phw-stroke-left-sm-none\");\n div.querySelector(\".layout-d-f\").classList.remove(\"phw-g-widget-bg-gray-1\");\n ele.outerHTML = div.outerHTML;\n (0, $10a67bcf2542ccc9$export$2e2bcd8739ae039)(ele);\n};\nvar $e38a028e05642325$export$2e2bcd8739ae039 = $e38a028e05642325$var$handleLandingPageQuestion;\n\n\nconst $d7de30ea7a54ebc7$var$renderElement = function(formData, formKey, ele, parentEle, workflowConfig = {}) {\n if (formData[formKey]) {\n let uiType = formData[formKey][\"field\"] ? formData[formKey][\"field\"][\"uiType\"] : formData[formKey]['uiTypeQuestion'];\n let { instanceActivityId: instanceActivityId, workflowContext: workflowContext } = workflowConfig;\n let value;\n // console.log(instanceActivityId, workflowConfig);\n if (workflowContext && instanceActivityId) value = workflowContext[instanceActivityId] && workflowContext[instanceActivityId][formKey] || workflowContext?.global?.profile?.[formKey];\n if (uiType) // console.log(uiType);\n switch(uiType){\n case \"input\":\n (0, $72f1f4d0682f49b3$export$2e2bcd8739ae039)(formData[formKey], ele, value);\n break;\n case \"dropdown\":\n (0, $c258535c2d3f2530$export$2e2bcd8739ae039)(formData[formKey], ele, value);\n break;\n case \"file\":\n (0, $da12833de8675cef$export$2e2bcd8739ae039)(formData[formKey], ele, value);\n break;\n case \"yes-no\":\n (0, $4c1988777a5ecde6$export$2e2bcd8739ae039)(formData[formKey], ele, value);\n break;\n case \"checkbox\":\n (0, $b23aa5bf5d95681f$export$2e2bcd8739ae039)(formData[formKey], ele, value);\n break;\n case \"legend\":\n (0, $18373e3cc41d00c2$export$2e2bcd8739ae039)(formData[formKey], ele, value);\n break;\n case \"h3-heading\":\n (0, $732536be483d2e37$export$2e2bcd8739ae039)(formData[formKey], ele, value);\n break;\n case \"paragraph\":\n (0, $a3ffb71a398bb81c$export$2e2bcd8739ae039)(formData[formKey], ele, value);\n break;\n case \"radio\":\n (0, $1334abf64e397dbf$export$2e2bcd8739ae039)(formData[formKey], ele, value);\n break;\n case \"sjtQuestion\":\n (0, $1f1e6a5ce259fae3$export$2e2bcd8739ae039)(formData[formKey], ele, value);\n break;\n case \"ratingQuestion\":\n (0, $4b273e49ead3bf12$export$2e2bcd8739ae039)(formData[formKey], ele, value);\n break;\n case \"listeningQuestion\":\n (0, $40a9d1ce0b983786$export$2e2bcd8739ae039)(formData[formKey], ele, value);\n break;\n case \"reading\":\n (0, $8d95291f53563010$export$2e2bcd8739ae039)(formData[formKey], ele, value);\n break;\n case \"grammar\":\n (0, $3bfe324abe8ace80$export$2e2bcd8739ae039)(formData[formKey], ele, value);\n break;\n case \"languageLandingPage\":\n (0, $e38a028e05642325$export$2e2bcd8739ae039)(formData[formKey], ele, value);\n break;\n }\n }\n};\nvar $d7de30ea7a54ebc7$export$2e2bcd8739ae039 = $d7de30ea7a54ebc7$var$renderElement;\n\n\n\n\n\nlet $bd6c7df86f0926a8$var$dataConfig = {}, $bd6c7df86f0926a8$var$formConfig = {}, $bd6c7df86f0926a8$var$workflowId = \"\", $bd6c7df86f0926a8$var$formData = {}, $bd6c7df86f0926a8$var$eventConfig = {}, $bd6c7df86f0926a8$var$workflowConfig = {};\nconst $bd6c7df86f0926a8$var$FIELDS = \"fields\";\nconst $bd6c7df86f0926a8$var$addEventListeners = function(config, id, data, workflowConf) {\n $bd6c7df86f0926a8$var$formConfig = config;\n $bd6c7df86f0926a8$var$workflowId = id;\n $bd6c7df86f0926a8$var$formData = data;\n $bd6c7df86f0926a8$var$dataConfig[$bd6c7df86f0926a8$var$workflowId] = {};\n $bd6c7df86f0926a8$var$workflowConfig = workflowConf;\n $bd6c7df86f0926a8$var$eventConfig = $bd6c7df86f0926a8$var$dataConfig[$bd6c7df86f0926a8$var$workflowId];\n Object.keys(config[\"config\"]).forEach((eachKey)=>{\n config[\"config\"][eachKey][\"conditions\"].forEach((ele)=>{\n let formField = ele.field.indexOf(\"${\") == -1 ? document.querySelector(`[form-field=${ele.field}]`) : \"\";\n if (!$bd6c7df86f0926a8$var$eventConfig[ele.field]) $bd6c7df86f0926a8$var$eventConfig[ele.field] = {};\n if (formField && (!$bd6c7df86f0926a8$var$eventConfig[ele.field] || !$bd6c7df86f0926a8$var$eventConfig[ele.field]['fields'] || !$bd6c7df86f0926a8$var$eventConfig[ele.field]['fields'].indexOf(eachKey) == -1 || !$bd6c7df86f0926a8$var$eventConfig[ele.field][0, $768a17376248dce8$export$5752f9f8b1b06296])) {\n formField.addEventListener(\"change\", $bd6c7df86f0926a8$var$listenToChangeAndRender.bind(this));\n $bd6c7df86f0926a8$var$eventConfig[ele.field][0, $768a17376248dce8$export$5752f9f8b1b06296] = true;\n if ($bd6c7df86f0926a8$var$eventConfig[ele.field][$bd6c7df86f0926a8$var$FIELDS]) $bd6c7df86f0926a8$var$eventConfig[ele.field][$bd6c7df86f0926a8$var$FIELDS].push(eachKey);\n else $bd6c7df86f0926a8$var$eventConfig[ele.field][$bd6c7df86f0926a8$var$FIELDS] = [\n eachKey\n ];\n } else if (!formField && (!$bd6c7df86f0926a8$var$eventConfig[ele.field] || !$bd6c7df86f0926a8$var$eventConfig[ele.field]['fields'] || !$bd6c7df86f0926a8$var$eventConfig[ele.field]['fields'].indexOf(eachKey) == -1 || !$bd6c7df86f0926a8$var$eventConfig[ele.field][0, $768a17376248dce8$export$5752f9f8b1b06296])) {\n if ($bd6c7df86f0926a8$var$eventConfig[ele.field][$bd6c7df86f0926a8$var$FIELDS]) $bd6c7df86f0926a8$var$eventConfig[ele.field][$bd6c7df86f0926a8$var$FIELDS].push(eachKey);\n else $bd6c7df86f0926a8$var$eventConfig[ele.field][$bd6c7df86f0926a8$var$FIELDS] = [\n eachKey\n ];\n } else if (!formField && ele.field.indexOf(\"${\") != -1) {\n let temp = config[\"config\"][eachKey][\"conditions\"].filter((el)=>el.field.indexOf(\"${\") == -1);\n if (!temp.length) $bd6c7df86f0926a8$var$checkAndRenderFromContext(config, eachKey);\n }\n });\n });\n};\nconst $bd6c7df86f0926a8$var$checkAndRenderFromContext = function(config, ele) {\n let results = [];\n config[\"config\"][ele][\"conditions\"].some((rule)=>{\n let value = $bd6c7df86f0926a8$var$getValueFromContext(rule.field);\n results.push($bd6c7df86f0926a8$var$evaluateRule(rule, value));\n if (config[\"config\"][ele].logicalOperator == \"OR\" && results.indexOf(true) != -1) return true;\n });\n if (config[\"config\"][ele].logicalOperator == \"OR\" && results.indexOf(true) != -1) $bd6c7df86f0926a8$var$renderElementAndAddListenersIfRequired(ele);\n else if (config[\"config\"][ele].logicalOperator == \"AND\" && results.indexOf(false) == -1) $bd6c7df86f0926a8$var$renderElementAndAddListenersIfRequired(ele);\n};\nconst $bd6c7df86f0926a8$var$listenToChangeAndRender = function(event) {\n if (event.target) {\n let formField = event.target.getAttribute(\"form-field\");\n if ($bd6c7df86f0926a8$var$eventConfig[formField]) $bd6c7df86f0926a8$var$eventConfig[formField][$bd6c7df86f0926a8$var$FIELDS].forEach((ele)=>{\n let eachEleConfig = $bd6c7df86f0926a8$var$formConfig[\"config\"][ele];\n if (eachEleConfig) {\n let results = [];\n eachEleConfig[\"conditions\"].some((rule)=>{\n let value;\n if (rule.field.indexOf(\"${\") != -1) value = $bd6c7df86f0926a8$var$getValueFromContext(rule.field);\n else value = document.querySelector(`[form-field=${rule.field}]`).value;\n results.push($bd6c7df86f0926a8$var$evaluateRule(rule, value));\n if (eachEleConfig.logicalOperator == \"OR\" && results.indexOf(true) != -1) return true;\n });\n if (eachEleConfig.logicalOperator == \"OR\") {\n if (results.indexOf(true) != -1) $bd6c7df86f0926a8$var$renderElementAndAddListenersIfRequired(ele);\n else //handle hide\n $bd6c7df86f0926a8$var$revertFormField(ele);\n } else if (eachEleConfig.logicalOperator == \"AND\") {\n if (results.indexOf(false) == -1) $bd6c7df86f0926a8$var$renderElementAndAddListenersIfRequired(ele);\n else //handle hide\n $bd6c7df86f0926a8$var$revertFormField(ele);\n }\n }\n });\n }\n};\nconst $bd6c7df86f0926a8$var$revertFormField = function(ele) {\n if ($bd6c7df86f0926a8$var$eventConfig[ele]) delete $bd6c7df86f0926a8$var$eventConfig[ele][0, $768a17376248dce8$export$5752f9f8b1b06296];\n let temp = document.querySelector(\"[form-field='\" + ele + \"']\");\n if (temp) temp.value = \"\";\n temp = temp ? temp.closest((0, $768a17376248dce8$export$909cf45f68a8ba96)) : \"\";\n if (temp) {\n let htmlEle = document.createElement(\"div\");\n htmlEle.setAttribute(\"form-field-type\", ele);\n htmlEle.setAttribute(\"data-ph-id\", temp.getAttribute(\"data-ph-id\"));\n let label = temp.querySelector(\"label\");\n if (label) htmlEle.setAttribute(\"label\", label.innerText);\n let placeholder = temp.querySelector(\"[placeholder]\");\n if (placeholder) htmlEle.setAttribute(\"placeholder\", placeholder.getAttribute(\"placeholder\"));\n temp.outerHTML = htmlEle.outerHTML;\n }\n};\nconst $bd6c7df86f0926a8$var$getValueFromContext = function(key) {\n let finalData = \"\";\n if (wf.utils.orchestrator.workFlows[$bd6c7df86f0926a8$var$workflowId]) {\n key = key.slice(2);\n key = key.slice(0, -1);\n let keys = key.split(\".\");\n let context = wf.utils.orchestrator.workFlows[$bd6c7df86f0926a8$var$workflowId][\"workflowContext\"];\n let goingContext = JSON.parse(JSON.stringify(context));\n keys.forEach((ele)=>{\n if (goingContext[ele]) goingContext = goingContext[ele];\n else goingContext = null;\n });\n finalData = goingContext;\n }\n return finalData;\n};\nconst $bd6c7df86f0926a8$var$renderElementAndAddListenersIfRequired = function(ele) {\n let temp = document.querySelector(`[form-field-type=${ele}]`);\n if (temp && !temp.closest((0, $768a17376248dce8$export$909cf45f68a8ba96))) {\n (0, $d7de30ea7a54ebc7$export$2e2bcd8739ae039)($bd6c7df86f0926a8$var$formData, ele, temp, document, $bd6c7df86f0926a8$var$workflowConfig);\n if ($bd6c7df86f0926a8$var$eventConfig[ele] && !$bd6c7df86f0926a8$var$eventConfig[ele][0, $768a17376248dce8$export$5752f9f8b1b06296]) {\n let enhanceEle = document.querySelector(`[form-field=${ele}]`);\n enhanceEle.addEventListener(\"change\", $bd6c7df86f0926a8$var$listenToChangeAndRender.bind(this));\n }\n }\n};\nconst $bd6c7df86f0926a8$var$evaluateRule = function(rule, value) {\n switch(rule.operator){\n case (0, $768a17376248dce8$export$4b37a38524151760).EQUALS:\n if (value == rule.value) return true;\n break;\n case (0, $768a17376248dce8$export$4b37a38524151760).NOT_EQUALS:\n if (value != rule.value) return true;\n break;\n }\n return false;\n};\nvar $bd6c7df86f0926a8$export$2e2bcd8739ae039 = $bd6c7df86f0926a8$var$addEventListeners;\n\n\n\nclass $259c68c6df77d8bf$var$FormRenderer {\n workFlowObj = {};\n formData = {};\n applyFormData = {};\n componentsData = {};\n workflowConfig = {};\n constructor(utils){\n this.utils = utils;\n this.formConfig = {};\n this.workflowId = \"\";\n this.instanceId = \"\";\n this.workflowConfig = {};\n }\n renderForm(element, formMasterData) {\n console.log(\"render form\");\n this.formData = formMasterData || (0, $768a17376248dce8$export$2e2bcd8739ae039);\n let workflowContainer = element.closest ? element.closest((0, $768a17376248dce8$export$fcf4b86fafcc3461)) : element.querySelector((0, $768a17376248dce8$export$fcf4b86fafcc3461));\n //let workflowConfig;\n if (workflowContainer && workflowContainer.hasAttribute(\"workflowid\")) {\n let workflowId = workflowContainer.getAttribute(\"workflowid\");\n this.workflowId = workflowId;\n this.workflowConfig = this.utils.orchestrator.workFlows[workflowId];\n if (this.workflowConfig) this.formConfig = this.workflowConfig[\"config\"][\"screenConfig\"]?.screenConfig?.formConfig;\n } else if (window.isAutomationScreen) this.formConfig = window[\"screenConfig\"]?.screen?.config?.formConfig || {};\n let formFieldWidget = element.querySelector('[type=\"form-field-widget\"]');\n if (formFieldWidget) this.instanceId = formFieldWidget.getAttribute((0, $768a17376248dce8$export$a2e8ef7d6476a1ee));\n let eles = element.querySelectorAll(\"[form-field-type]\");\n eles.forEach((eachEle)=>{\n if (!eachEle.classList.contains(\"hide\")) {\n let formKey = eachEle.getAttribute(\"form-field-type\");\n if (!this.formConfig?.defaultVisibility?.hasOwnProperty(formKey)) (0, $d7de30ea7a54ebc7$export$2e2bcd8739ae039)(this.formData, formKey, eachEle, element, this.workflowConfig);\n }\n });\n if (this.formConfig && Object.keys(this.formConfig).length) (0, $bd6c7df86f0926a8$export$2e2bcd8739ae039)(this.formConfig, this.workflowId, this.formData);\n }\n getFormData(isPrevious) {\n if (this.validateForm(isPrevious)) {\n let formInfo = this.getFormDataWithoutValidaton();\n return {\n valid: true,\n formData: formInfo\n };\n } else return {\n valid: false\n };\n }\n getFormDataWithoutValidaton() {\n let temp = document.querySelectorAll(\"[form-field]\");\n let formInfo = {};\n temp.forEach((ele)=>{\n let formField = ele.getAttribute(\"form-field\") || \"\";\n if (formField) {\n if (ele.tagName == \"SELECT\" && ele.selectedIndex) formInfo[formField] = this.formData[formField][\"field\"][\"options\"][ele.selectedIndex - 1][\"key\"];\n else if (ele.tagName == \"INPUT\" && ele.getAttribute(\"type\") !== \"file\") formInfo[formField] = ele?.value;\n else if (ele.tagName == \"INPUT\" && ele.getAttribute(\"type\") == \"file\") // formInfo[formField] = ele?.files[0];\n formInfo[formField] = ele?.fileDetails;\n else if (ele.tagName == \"FIELDSET\") {\n if (ele.getAttribute(\"type\") == \"radio-group\") {\n let selectedVal = ele?.querySelector(`[name='${formField}']:checked`)?.value;\n if (ele.getAttribute(\"subType\") == \"assessment\") formInfo[formField] = {\n optionId: selectedVal\n };\n else formInfo[formField] = selectedVal;\n } else if (ele.getAttribute(\"type\") == \"checkbox-group\") {\n let temp = \"\";\n ele?.querySelectorAll(`[name='${formField}']:checked`)?.forEach((ele)=>{\n temp += \",\" + ele.value;\n });\n formInfo[formField] = temp.length ? temp.substring(1) : \"\";\n } else if (ele.getAttribute(\"type\") == \"sjt-group\") {\n let bestKey = this.formData[formField][\"id\"] + \"best\";\n let worstKey = this.formData[formField][\"id\"] + \"worst\";\n let bestValue = ele?.querySelector(`[name='${bestKey}']:checked`)?.value;\n let worstValue = ele?.querySelector(`[name='${worstKey}']:checked`)?.value;\n formInfo[formField] = {\n bestOptionId: bestValue,\n worstOptionId: worstValue\n };\n }\n }\n }\n });\n return formInfo;\n }\n validateForm(isPrevious) {\n let temp = document.querySelectorAll(\"[form-field]\");\n let valid = true;\n let _self = this;\n temp.forEach((ele)=>{\n let locale = undefined;\n if (this.workflowConfig[\"config\"][\"screenConfig\"]?.locale != undefined) locale = this.workflowConfig[\"config\"][\"screenConfig\"]?.locale;\n let refNum = undefined;\n if (this.workflowConfig[\"config\"][\"screenConfig\"]?.refNum != undefined) refNum = this.workflowConfig[\"config\"][\"screenConfig\"]?.refNum;\n let formField = ele.getAttribute(\"form-field\") || \"\";\n let defaultFormField = formField;\n console.log(\"refNum : \" + refNum + \" locale \" + locale);\n if (refNum && locale && refNum == 'CIKCGLOBAL' && _self.formData[formField + \"_\" + locale]) {\n console.log(\"inside locale form\");\n formField = formField + \"_\" + locale;\n console.log(\"form field \" + formField + \"_\" + locale);\n }\n if (refNum && locale && refNum == 'TFSCGLOBAL' && _self.formData[formField + \"_\" + locale]) {\n console.log(\"inside locale form\");\n formField = formField + \"_\" + locale;\n console.log(\"form field \" + formField + \"_\" + locale);\n }\n let validations = _self.formData[formField]?.field ? {} : _self.formData[formField].type != \"LandingPage\" ? {\n required: {\n mandatory: true,\n errorMsg: \"Field is required\"\n }\n } : {};\n if (_self.formData[formField] && _self.formData[formField]?.field?.validations) validations = _self.formData[formField][\"field\"][\"validations\"];\n let errMsg = \"\";\n if (formField == 'resume') {\n console.log(\"formField \" + formField);\n if (this.workflowConfig[\"config\"][\"dynamicContent\"]) this.workflowConfig[\"config\"][\"dynamicContent\"].forEach((e)=>{\n if (e[\"config\"] && e[\"config\"][\"name\"]) {\n console.log(\"config name \" + e[\"config\"][\"name\"]);\n if (e[\"config\"] && e[\"config\"][\"name\"] == \"resume\" && e[\"config\"][\"validations\"]) e[\"config\"][\"validations\"].forEach((v)=>{\n console.log(\"validations \" + validations);\n if (v[\"type\"] == \"mandatory\") {\n validations[\"required\"][\"mandatory\"] = v[\"required\"];\n return;\n }\n });\n }\n });\n }\n Object.keys(validations).forEach((key)=>{\n switch(key){\n case \"required\":\n if (validations[key][\"mandatory\"]) {\n if (ele.tagName == \"SELECT\" && ele.selectedIndex == 0) errMsg += validations[key][\"errorMsg\"] + \" \";\n else if (ele.getAttribute(\"type\") === \"file\") {\n if (!ele.files.length) errMsg += validations[key][\"errorMsg\"] + \" \";\n } else if (ele.tagName == \"FIELDSET\") {\n if (ele.getAttribute(\"type\") == \"radio-group\") {\n if (!ele?.querySelector(`[name='${defaultFormField}']:checked`)?.value) errMsg += validations[key][\"errorMsg\"] + \" \";\n } else if (ele.getAttribute(\"type\") == \"checkbox-group\") {\n if (!ele?.querySelector(`[name='${defaultFormField}']:checked`)?.value) errMsg += validations[key][\"errorMsg\"] + \" \";\n } else if (ele.getAttribute(\"type\") == \"sjt-group\") {\n let bestKey = _self.formData[formField][\"id\"] + \"best\";\n let worstKey = _self.formData[formField][\"id\"] + \"worst\";\n let bestValue = ele?.querySelector(`[name='${bestKey}']:checked`)?.value;\n let worstValue = ele?.querySelector(`[name='${worstKey}']:checked`)?.value;\n if (!bestValue || !worstValue) errMsg += validations[key][\"errorMsg\"] + \" \";\n }\n } else if (!ele?.value || !ele.value.trim()) errMsg += validations[key][\"errorMsg\"] + \" \";\n }\n break;\n case \"minLength\":\n if (validations[key][\"length\"] && ele.value && ele.value.trim() && ele.value.trim().length < validations[key][\"length\"]) errMsg += validations[key][\"errorMsg\"] + \" \";\n break;\n case \"maxLength\":\n if (validations[key][\"length\"] && ele.value && ele.value.trim() && ele.value.trim().length > validations[key][\"length\"]) errMsg += validations[key][\"errorMsg\"] + \" \";\n break;\n case \"pattern\":\n if (validations[key][\"regex\"]) {\n if (ele?.value) {\n let reg = new RegExp(validations[key][\"regex\"], \"i\");\n if (!reg.test(ele?.value)) errMsg += validations[key][\"errorMsg\"];\n }\n }\n break;\n }\n });\n if (!isPrevious) {\n let err = ele?.closest((0, $768a17376248dce8$export$909cf45f68a8ba96))?.querySelector(\".phw-error-color\");\n if (errMsg) {\n valid = false;\n if (!err) {\n err = (0, $e2a6a9071c0c37d8$export$133b428007988271)(\"span\", {\n class: \"phw-error-color\"\n });\n err.classList.add(\"phw-error-color\");\n }\n err.innerHTML = errMsg;\n ele?.closest((0, $768a17376248dce8$export$909cf45f68a8ba96))?.appendChild(err);\n } else if (err) err.innerHTML = \"\";\n }\n });\n return valid;\n }\n validateFormFromApply() {\n let formInfo = this.getFormDataWithoutValidaton();\n // console.log(\"formInfo\", this.componentsData);\n if (Object.keys(this.componentsData).length) // console.log(\"formInfo\", formInfo, this.componentsData);\n this.callApplyValidationApi(formInfo);\n else (0, $fa7a88af7a53f5b1$export$d0204b1ddc8ee140).makeGetCall(\"https://flowstudio-dev.phenom.com/simpl_forms/api/widget/override/list?productName=Automation_Engine&widgetType=COMPONENT\").then((response)=>{\n response.data.forEach((ele)=>{\n Object.keys(ele.schema.schema.properties).forEach((eachProperty)=>{\n if (ele.schema.schema.properties[eachProperty].name === eachProperty) this.componentsData[eachProperty] = ele;\n });\n });\n this.callApplyValidationApi(formInfo);\n });\n }\n callApplyValidationApi(formInfo) {\n let applyAutomationMap = {};\n let payload = {\n schema: {\n schema: {\n title: \"\",\n description: \"\",\n type: \"object\",\n properties: {},\n required: []\n }\n }\n };\n let formData = {};\n Object.keys(formInfo).forEach((eachFormKey)=>{\n if (this.formData[eachFormKey]) {\n let applyKey = this.formData[eachFormKey][\"applyKey\"];\n if (applyKey) {\n applyAutomationMap[applyKey] = eachFormKey;\n if (formInfo[eachFormKey] && formInfo[eachFormKey].trim()) formData[applyKey] = formInfo[eachFormKey];\n payload.schema.schema.properties[applyKey] = this.componentsData[applyKey]?.schema?.schema?.properties[applyKey];\n payload.schema.schema.required.push(applyKey);\n }\n }\n });\n payload[\"formData\"] = formData;\n (0, $fa7a88af7a53f5b1$export$d0204b1ddc8ee140).makePostCall(\"https://applystudio-dev.phenom.com/getValidationResult\", {}, payload).then((response)=>{\n console.log(\"response\", response, applyAutomationMap);\n if (response.status == \"success\") {\n let errMap = {};\n response['errors'].forEach((eachErr)=>{\n if (eachErr['property']) {\n let prop = eachErr['property'].substr(1, eachErr['property'].length);\n errMap[prop] = true;\n let ele = document?.querySelector(\"[form-field='\" + applyAutomationMap[prop] + \"']\");\n if (ele) {\n let err = ele?.closest((0, $768a17376248dce8$export$909cf45f68a8ba96))?.querySelector(\".phw-error-color\");\n if (eachErr['message']) {\n // valid = false;\n if (!err) {\n err = (0, $e2a6a9071c0c37d8$export$133b428007988271)(\"span\", {\n class: \"phw-error-color\"\n });\n err.classList.add(\"phw-error-color\");\n }\n err.innerHTML = this.formData[applyAutomationMap[prop]]['name'] + \" \" + eachErr['message'];\n ele?.closest((0, $768a17376248dce8$export$909cf45f68a8ba96))?.appendChild(err);\n } else if (err) err.innerHTML = \"\";\n }\n }\n });\n Object.keys(formData).forEach((eachKey)=>{\n if (!errMap[eachKey]) {\n let ele = document?.querySelector(\"[form-field='\" + eachKey + \"']\");\n let err = ele?.closest((0, $768a17376248dce8$export$909cf45f68a8ba96))?.querySelector(\".phw-error-color\");\n if (err) err.innerHTML = \"\";\n }\n });\n }\n });\n }\n}\nvar $259c68c6df77d8bf$export$2e2bcd8739ae039 = $259c68c6df77d8bf$var$FormRenderer;\n\n\nclass $cd7d4328f4e850ed$var$GlobalWidgetRenderer {\n constructor(utils){\n this.utils = utils;\n }\n renderGlobalWidget(component, ele, workFlowObj) {\n ele.innerHTML = '';\n window.phw.platform.initiateAudienceWidgets();\n }\n}\nvar $cd7d4328f4e850ed$export$2e2bcd8739ae039 = $cd7d4328f4e850ed$var$GlobalWidgetRenderer;\n\n\nconst $ef3c91ccfd3cdc77$export$56525cbb1fcd885c = ()=>{\n let ele = document.querySelector(\".workflow-container\");\n if (ele) {\n let automationLoader = ele.querySelector(\"[automation-loader]\");\n if (automationLoader) automationLoader.style.display = \"block\";\n else {\n let loaderDiv = document.createElement(\"div\");\n loaderDiv.setAttribute(\"class\", \"loader-ele\");\n loaderDiv.setAttribute(\"automation-loader\", true);\n let imgEle = document.createElement(\"img\");\n imgEle.setAttribute(\"src\", \"https://pp-cdn.phenompeople.com/CareerConnectResources/st/common/video-platform/js/loader_thumb.gif\");\n loaderDiv.appendChild(imgEle);\n ele.appendChild(loaderDiv);\n }\n }\n};\nconst $ef3c91ccfd3cdc77$export$5cee2c2772922923 = ()=>{\n let ele = document.querySelector(\".workflow-container\");\n if (ele) {\n let automationLoader = ele.querySelector(\"[automation-loader]\");\n if (automationLoader) automationLoader.style.display = \"none\";\n }\n};\n\n\nclass $b2dbd3a0df919299$var$ApiService {\n serverUrl = \"\";\n domainUrl = \"\";\n constructor(serverUrl){\n this.serverUrl = serverUrl;\n this.domainUrl = new URL(location.href).origin;\n }\n addCommonHeaders(data) {\n const { pageId: pageId, refNum: refNum, locale: locale } = window[\"phApp\"];\n data[\"x-ph-refNum\"] = refNum;\n data[\"Content-Type\"] = \"application/json\";\n }\n addCommonPayload(data) {\n const { pageId: pageId, refNum: refNum, locale: locale, pageName: pageName } = window[\"phApp\"];\n data = {\n ...data,\n pageId: pageId,\n refNum: refNum,\n locale: locale,\n pageName: pageName\n };\n return data;\n }\n makePostCall(endpoint, headers, payload) {\n try {\n payload.refNum = window[\"phApp\"].refNum;\n endpoint = endpoint.indexOf(\"https\") != -1 ? endpoint : this.domainUrl + \"/\" + endpoint;\n if (!headers['Content-Type']) headers[\"Content-Type\"] = \"application/json\";\n return fetch(endpoint, {\n method: \"post\",\n headers: headers,\n body: JSON.stringify(payload)\n }).then((response)=>response.json());\n } catch (error) {\n console.error(error);\n return new Promise((resolve, reject)=>resolve({}));\n }\n }\n makePostCallForFormData(endpoint, headers, payload) {\n try {\n payload.refNum = window[\"phApp\"].refNum;\n endpoint = endpoint.indexOf(\"https\") != -1 ? endpoint : this.domainUrl + \"/\" + endpoint;\n return fetch(endpoint, {\n method: \"post\",\n body: payload\n }).then((response)=>response.json());\n } catch (error) {\n console.error(error);\n return new Promise((resolve, reject)=>resolve({}));\n }\n }\n makeGetCall(endpoint, headers = {}) {\n try {\n endpoint = endpoint.indexOf(\"https\") != -1 ? endpoint : this.domainUrl + \"/\" + endpoint;\n return fetch(endpoint, {\n method: \"get\",\n headers: headers\n }).then((response)=>response.json());\n } catch (error) {\n console.error(error);\n return new Promise((resolve, reject)=>resolve({}));\n }\n }\n addCommonDdoPayload(data, endpoint) {\n let phAppStore = window[\"phApp\"];\n return data = {\n ...data,\n locale: phAppStore.locale,\n refNum: phAppStore.refNum,\n ddoKey: endpoint,\n userChannel: \"web\",\n jobSeqNo: phAppStore.jobSeqNo,\n deviceType: \"desktop\",\n pageName: phAppStore.pageName\n };\n }\n makeDDOCall(ddoKey, headers, apiPayload) {\n try {\n (0, $ef3c91ccfd3cdc77$export$56525cbb1fcd885c)();\n this.addCommonHeaders(headers);\n var payload = {\n ...apiPayload\n };\n payload = this.addCommonDdoPayload(payload, ddoKey);\n return fetch(this.serverUrl, {\n method: \"post\",\n headers: headers,\n body: JSON.stringify(payload)\n }).then((response)=>{\n (0, $ef3c91ccfd3cdc77$export$5cee2c2772922923)();\n return response.json();\n });\n } catch (error) {\n console.error(error);\n (0, $ef3c91ccfd3cdc77$export$5cee2c2772922923)();\n return new Promise((resolve, reject)=>resolve({}));\n }\n }\n}\nvar $b2dbd3a0df919299$export$2e2bcd8739ae039 = $b2dbd3a0df919299$var$ApiService;\n\n\nclass $332affa4e14fe081$var$CommonUtility {\n CommonUtility(utils) {\n this.utils = utils;\n }\n addStyle(src, widgetId, str) {\n const existingStyleElem = document.querySelector('[phw-style-id=\"' + widgetId + ']\"');\n if (!existingStyleElem) {\n let styleElem;\n if (src) {\n styleElem = document.createElement('link');\n styleElem.setAttribute('phw-style-id', widgetId);\n styleElem.setAttribute('rel', 'stylesheet');\n styleElem.setAttribute('href', src);\n } else if (str) {\n styleElem = document.createElement('style');\n styleElem.setAttribute('phw-style-id', widgetId);\n styleElem.innerHTML = str;\n }\n const linkElem = document.querySelector('#customStyles') || document.querySelector('link');\n if (linkElem && styleElem) linkElem.parentElement?.insertBefore(styleElem, linkElem);\n }\n }\n getQueryParam(key) {\n let queryStr = location.search;\n queryStr = queryStr.substring(1);\n const queryParams = queryStr.split('&');\n for(let i = 0; i < queryParams.length; i++){\n let qp = queryParams[i];\n qp = qp.split('=');\n if (qp.length > 1 && qp[0] === key) {\n qp.shift();\n const value = qp.join('=');\n return decodeURIComponent(value);\n }\n }\n }\n getLocalStorageKey(workflowId) {\n return \"workFlow-\" + phApp.refNum + \"*\" + workflowId + \"*\" + phApp.jobSeqNo;\n }\n setLocalStorageData(key, data) {\n localStorage.setItem(key, JSON.stringify(data));\n }\n getLocalStorageData(key) {\n return JSON.parse(localStorage.getItem(key) || \"{}\");\n }\n checkForElementAndPeriod(parentContainer, query, timeGap, noOfTimes, cb) {\n let counter = 0;\n let interval = setInterval(()=>{\n let found = parentContainer.querySelector(query);\n if (found) {\n clearInterval(interval);\n cb(found);\n } else if (counter > noOfTimes) {\n clearInterval(interval);\n cb(false);\n }\n counter++;\n }, timeGap);\n }\n}\nvar $332affa4e14fe081$export$2e2bcd8739ae039 = $332affa4e14fe081$var$CommonUtility;\n\n\n\nconst $fa7a88af7a53f5b1$export$215e848d838f5078 = {};\nwindow.wf = $fa7a88af7a53f5b1$export$215e848d838f5078;\n$fa7a88af7a53f5b1$export$215e848d838f5078.utils = {};\n$fa7a88af7a53f5b1$export$215e848d838f5078.utils.serverUrl = (0, $fc3b09d64f16b202$export$2e2bcd8739ae039).serverUrl;\n$fa7a88af7a53f5b1$export$215e848d838f5078.utils.endpoints = (0, $fc3b09d64f16b202$export$2e2bcd8739ae039).endpoints;\nconst $fa7a88af7a53f5b1$export$230244be6a97414d = new (0, $1fc0a8a1bc250c7c$export$2e2bcd8739ae039)($fa7a88af7a53f5b1$export$215e848d838f5078.utils);\nconst $fa7a88af7a53f5b1$export$480fedc95b649840 = new (0, $369f4591fbb8f6dc$export$2e2bcd8739ae039)($fa7a88af7a53f5b1$export$215e848d838f5078.utils);\nconst $fa7a88af7a53f5b1$export$bccc066f55715ea3 = new (0, $453b7cb6832e56b0$export$2e2bcd8739ae039)($fa7a88af7a53f5b1$export$215e848d838f5078.utils);\nconst $fa7a88af7a53f5b1$export$f5cb5298679ec134 = new (0, $259c68c6df77d8bf$export$2e2bcd8739ae039)($fa7a88af7a53f5b1$export$215e848d838f5078.utils);\nconst $fa7a88af7a53f5b1$export$5471a37c3371633 = new (0, $cd7d4328f4e850ed$export$2e2bcd8739ae039)($fa7a88af7a53f5b1$export$215e848d838f5078.utils);\nconst $fa7a88af7a53f5b1$export$d0204b1ddc8ee140 = new (0, $b2dbd3a0df919299$export$2e2bcd8739ae039)($fa7a88af7a53f5b1$export$215e848d838f5078.utils.serverUrl);\nconst $fa7a88af7a53f5b1$export$276fd9ecbabff3d8 = new (0, $332affa4e14fe081$export$2e2bcd8739ae039)($fa7a88af7a53f5b1$export$215e848d838f5078.utils);\n$fa7a88af7a53f5b1$export$215e848d838f5078.utils.screenRenderer = $fa7a88af7a53f5b1$export$230244be6a97414d;\n$fa7a88af7a53f5b1$export$215e848d838f5078.utils.orchestrator = $fa7a88af7a53f5b1$export$480fedc95b649840;\n$fa7a88af7a53f5b1$export$215e848d838f5078.utils.resolutionManager = $fa7a88af7a53f5b1$export$bccc066f55715ea3;\n$fa7a88af7a53f5b1$export$215e848d838f5078.utils.formRenderer = $fa7a88af7a53f5b1$export$f5cb5298679ec134;\n$fa7a88af7a53f5b1$export$215e848d838f5078.utils.globalWidgetRenderer = $fa7a88af7a53f5b1$export$5471a37c3371633;\n$fa7a88af7a53f5b1$export$215e848d838f5078.utils.apiService = $fa7a88af7a53f5b1$export$d0204b1ddc8ee140;\n$fa7a88af7a53f5b1$export$215e848d838f5078.utils.commonUtility = $fa7a88af7a53f5b1$export$276fd9ecbabff3d8;\n\n\n// Initialize components\nvar $0026cc5aa8359700$var$phApp = window.phApp || {};\n(0, $fa7a88af7a53f5b1$export$215e848d838f5078).utils.workflowComponentsByType = {};\n(0, $fa7a88af7a53f5b1$export$215e848d838f5078).utils.renderForm = $0026cc5aa8359700$var$renderForm;\n(0, $fa7a88af7a53f5b1$export$215e848d838f5078).utils.currentStep = -1;\nwindow[\"phApp\"].jobSeqNo = (0, $fa7a88af7a53f5b1$export$215e848d838f5078).utils.commonUtility.getQueryParam(\"jobSeqNo\");\n// window[\"phApp\"].hvhflow = wf.utils.commonUtility.getQueryParam(\"hvhflow\");\nwindow[\"phApp\"].hvhflow = true;\nif (window.frameElement && window.frameElement.getAttribute(\"id\") != \"phenom-chatbot-iframe\") {\n let count = 0;\n let temp = setInterval(()=>{\n if (window.isAutomationScreen) {\n clearInterval(temp);\n if (window.screenConfig) {\n let ele = document.querySelector(\"main\");\n (0, $fa7a88af7a53f5b1$export$215e848d838f5078).utils.screenRenderer.handleScreenConfig(ele, window.screenConfig);\n (0, $fa7a88af7a53f5b1$export$215e848d838f5078).utils.formRenderer.renderForm(ele);\n (0, $fa7a88af7a53f5b1$export$215e848d838f5078).utils.screenRenderer.addActionSection({}, ele, window.screenConfig);\n }\n } else if (count > 10) clearInterval(temp);\n count++;\n }, 1000);\n} else if (window[\"phApp\"] && !window.frameElement) (0, $fa7a88af7a53f5b1$export$215e848d838f5078).utils.resolutionManager.currentPageWorkflows().then((res)=>{\n if (res) {\n let counter = 0;\n let tempInterval = setInterval(()=>{\n if (phCommon && platform) {\n clearInterval(tempInterval);\n Object.keys(res).forEach((ele)=>{\n if (res[ele] && res[ele][\"actionData\"]) {\n let workflow = res[ele][\"actionData\"];\n if (workflow) {\n let temp = (0, $fa7a88af7a53f5b1$export$215e848d838f5078).utils.screenRenderer.createElementToRender(workflow);\n if (temp) {\n (0, $fa7a88af7a53f5b1$export$215e848d838f5078).utils.screenRenderer.handleActions(\"currentAction\", temp, workflow);\n if (workflow && workflow?.action?.config?.screenConfig?.screenConfig?.screenGroup) {\n let workflowEle = document.querySelector(\"[workflowinstanceid='\" + workflow.workflowInstanceId + \"']\");\n if (workflowEle) (0, $fa7a88af7a53f5b1$export$215e848d838f5078).utils.screenRenderer.handleScreenConfig(workflowEle, workflow.action.config);\n }\n }\n (0, $fa7a88af7a53f5b1$export$215e848d838f5078).utils.orchestrator.loadTemplate(workflow);\n }\n }\n });\n } else if (counter > 10) clearInterval(tempInterval);\n counter++;\n }, 1000);\n // wf.utils.formRenderer.renderForm(document);\n }\n});\nfunction $0026cc5aa8359700$var$renderForm(ele, type = \"job-application\") {\n if ((0, $fa7a88af7a53f5b1$export$215e848d838f5078).utils.workflowComponentsByType[type]) (0, $fa7a88af7a53f5b1$export$215e848d838f5078).utils.formRenderer.renderForm(ele, (0, $fa7a88af7a53f5b1$export$215e848d838f5078).utils.workflowComponentsByType[type]);\n else (0, $fa7a88af7a53f5b1$export$215e848d838f5078).utils.apiService.makeDDOCall(config.endpoints.WORKFLOW_TYPE_COMPONENTS, {}, {\n type: type\n }).then((res)=>{\n console.log(\"Res\", res);\n });\n}\n\n})();\n//# sourceMappingURL=main.js.map\n","import { wf } from \"./instanceWrapper\";\n\n// Initialize components\nvar phApp = window.phApp || {};\n\nwf.utils.workflowComponentsByType = {};\nwf.utils.renderForm = renderForm;\nwf.utils.currentStep = -1;\nwindow[\"phApp\"].jobSeqNo = wf.utils.commonUtility.getQueryParam(\"jobSeqNo\");\n// window[\"phApp\"].hvhflow = wf.utils.commonUtility.getQueryParam(\"hvhflow\");\nwindow[\"phApp\"].hvhflow=true;\nif (\n window.frameElement &&\n window.frameElement.getAttribute(\"id\") != \"phenom-chatbot-iframe\"\n) {\n let count = 0;\n let temp = setInterval(() => {\n if (window.isAutomationScreen) {\n clearInterval(temp);\n if (window.screenConfig) {\n let ele = document.querySelector(\"main\");\n wf.utils.screenRenderer.handleScreenConfig(ele, window.screenConfig);\n wf.utils.formRenderer.renderForm(ele);\n wf.utils.screenRenderer.addActionSection({}, ele, window.screenConfig);\n }\n } else if (count > 10) {\n clearInterval(temp);\n }\n count++;\n }, 1000);\n} else if (window[\"phApp\"] && !window.frameElement) {\n wf.utils.resolutionManager.currentPageWorkflows().then((res) => {\n if (res) {\n let counter = 0;\n let tempInterval = setInterval(() => {\n if (phCommon && platform) {\n clearInterval(tempInterval);\n Object.keys(res).forEach((ele) => {\n if (res[ele] && res[ele][\"actionData\"]) {\n let workflow = res[ele][\"actionData\"];\n if (workflow) {\n let temp =\n wf.utils.screenRenderer.createElementToRender(workflow);\n if (temp) {\n wf.utils.screenRenderer.handleActions(\n \"currentAction\",\n temp,\n workflow\n );\n if (\n workflow &&\n workflow?.action?.config?.screenConfig?.screenConfig\n ?.screenGroup\n ) {\n let workflowEle = document.querySelector(\n \"[workflowinstanceid='\" +\n workflow.workflowInstanceId +\n \"']\"\n );\n if (workflowEle) {\n wf.utils.screenRenderer.handleScreenConfig(\n workflowEle,\n workflow.action.config\n );\n }\n }\n }\n wf.utils.orchestrator.loadTemplate(workflow); \n }\n }\n });\n\n \n } else if (counter > 10) {\n clearInterval(tempInterval);\n }\n counter++;\n }, 1000);\n // wf.utils.formRenderer.renderForm(document);\n }\n });\n}\n\n\n\nfunction renderForm(ele, type = \"job-application\") {\n if (wf.utils.workflowComponentsByType[type]) {\n wf.utils.formRenderer.renderForm(\n ele,\n wf.utils.workflowComponentsByType[type]\n );\n } else {\n wf.utils.apiService\n .makeDDOCall(config.endpoints.WORKFLOW_TYPE_COMPONENTS, {}, { type })\n .then((res) => {\n console.log(\"Res\", res);\n });\n }\n}\n\n \n\n\n","import ScreenRenderer from \"./renderer/ScreenRenderer\";\nimport WorkflowOrchestrator from \"./orchestrator/WorkflowOrchestrator\";\nimport ResolutionManager from \"./resolution/ResolutionManager\";\nimport FormRenderer from \"./renderer/FormRenderer\";\nimport GlobalWidgetRenderer from \"./renderer/GlobalWidgetRenderer\";\nimport ApiService from \"./utils/service\";\nimport CommonUtility from \"./utils/common\";\nimport config from \"./config/config\";\n\nexport const wf = {};\n\nwindow.wf = wf;\nwf.utils = {};\nwf.utils.serverUrl = config.serverUrl;\nwf.utils.endpoints = config.endpoints;\n\nexport const screenRenderer = new ScreenRenderer(wf.utils);\nexport const orchestrator = new WorkflowOrchestrator(wf.utils);\nexport const resolutionManager = new ResolutionManager(wf.utils);\nexport const formRenderer = new FormRenderer(wf.utils);\nexport const globalWidgetRenderer = new GlobalWidgetRenderer(wf.utils);\nexport const apiService = new ApiService(wf.utils.serverUrl);\nexport const commonUtility = new CommonUtility(wf.utils);\n\n\nwf.utils.screenRenderer = screenRenderer;\nwf.utils.orchestrator = orchestrator;\nwf.utils.resolutionManager = resolutionManager;\nwf.utils.formRenderer = formRenderer;\nwf.utils.globalWidgetRenderer = globalWidgetRenderer;\nwf.utils.apiService = apiService;\nwf.utils.commonUtility = commonUtility;\n","//This component is responsible for rendering the UI based on the workflow.\nimport {INSTANCE_ID_ATTR, INSTANCE_ID, ACTION_CONFIG,MESSAGE_FUNC_WIDGET_ID,NEXT_ACTION_CLASS} from \"./../utils/constants\";\n\nclass ScreenRenderer {\n constructor(utils) {\n this.utils = utils;\n }\n\n attachTriggerListener(workflow){\n if(workflow?.triggerConfig?.selector){\n switch(workflow?.triggerConfig?.domAction){\n case \"pageLoad\":\n let checkPageLoaded = setInterval(()=>{\n if(document.readyState == \"complete\"){\n this.utils.orchestrator.triggerFlow(workflow);\n clearInterval(checkPageLoaded);\n }\n\n },500)\n \n break;\n default:\n let ele = document.querySelector(workflow?.triggerConfig?.selector);\n if(ele){\n let overlayEle = document.createElement(\"span\");\n overlayEle.style.cssText = \"position: absolute; width: 100%;height: 100%;left: 0;top: 0\";\n if(!ele.style.position){\n ele.style.position = \"relative\";\n if(workflow.triggerConfig.domAction == \"click\" && ele.hasAttribute(\"href\")){\n ele.setAttribute(\"wf-href\", ele.getAttribute(\"href\"));\n ele.removeAttribute(\"href\");\n }\n }\n let _self=this;\n overlayEle.addEventListener(workflow.triggerConfig.domAction, function(event){\n event.stopPropagation();\n if(workflow.triggerConfig.allowOtherActions || true){\n if(overlayEle.hasAttribute(\"wf-href\")){\n overlayEle.setAttribute(\"href\", overlayEle.getAttribute(\"wf-href\"))\n }\n ele.dispatchEvent(new Event(workflow.triggerConfig.domAction));\n }\n _self.utils.orchestrator.triggerFlow(workflow, ele);\n });\n ele.appendChild(overlayEle)\n }\n break;\n }\n }\n\n }\n createElementToRender(flowConfig){\n let ele;\n if(flowConfig.triggerConfig){\n ele = document.querySelector(flowConfig.triggerConfig.selector); \n }else{\n ele = document.querySelector(\"[workflowInstanceId='\"+flowConfig.workflowInstanceId+\"']\")\n if(ele){\n return ele;\n }\n }\n if(!ele){\n ele = document.querySelector(\".ph-page-container\")\n if(!ele) {\n ele = document.querySelector(\".ph-page\")\n }\n }\n if(ele){\n if(flowConfig.displayConfig == \"replace\"){\n ele = ele.closest(INSTANCE_ID_ATTR) || ele;\n ele.classList.add(\"workflow-container\");\n }else{\n let temp = ele.querySelector(INSTANCE_ID_ATTR);\n let container = document.createElement(\"div\")\n container.classList.add(\"workflow-container\");\n if(temp != null){\n if(ele.classList.contains(\"ph-page-container\") || ele.classList.contains(\"ph-page\")){\n ele.insertBefore(container, temp);\n ele = container;\n }else{\n temp.appendChild(container)\n ele = container;\n }\n\n }else if(temp == null){\n if(ele.classList.contains(\"ph-page-container\") || ele.classList.contains(\"ph-page\")){\n ele.appendChild(container);\n ele = container;\n }\n\n }\n \n }\n ele.setAttribute(\"workflowInstanceId\", flowConfig.workflowInstanceId);\n ele.setAttribute(\"workflowId\", flowConfig.workflowId);\n }\n return ele;\n }\n getElementToUpdateStep(flowConfig){\n return document.querySelector(\"[workflowInstanceId='\"+flowConfig.workflowInstanceId+\"']\"); \n }\n renderWorkflow(flowConfig) {\n let ele;\n if(flowConfig){\n ele = this.createElementToRender(flowConfig);\n if(ele){\n if(flowConfig['config'] && flowConfig['config']['screenConfig'] && flowConfig['config']['screenConfig']['html'] ){\n // flowConfig['config']['screenConfig']['css']\n this.handleLayout(flowConfig,flowConfig['config']['screenConfig'], ele)\n }else{\n this.executeSteps(flowConfig, ele);\n }\n }\n }\n }\n handleLayout(flowConfig,screenConfig, ele){\n ele.innerHTML = \"\";\n phCommon.publishEvent(\"getWorkFlowWidgetData\",{\n unsubscribe: true\n });\n let htmlString = phApp.screenHtml || screenConfig.html;\n htmlString = this.handleReplaceables(htmlString, flowConfig)\n\n let temp = document.createElement(\"div\");\n temp.innerHTML = htmlString;\n let formFields = [...temp.querySelectorAll(\"[form-field-type]\")];\n if(formFields.length){\n if(!(temp.querySelector(\"[form-field-type='sms-optin']\") || temp.querySelector(\"[form-field-type='email-optin']\") || temp.querySelector(\"[form-field-type='sms-n-email-optin']\") || temp.querySelector(\"[form-field-type='whatsapp-optin']\"))){\n let smsOptin = document.createElement(\"div\");\n smsOptin.setAttribute(\"form-field-type\", \"smsOptin\");\n let emailOptin = document.createElement(\"div\");\n emailOptin.setAttribute(\"form-field-type\", \"emailOptin\");\n temp.querySelector(\".form-field-section \").appendChild(smsOptin);\n temp.querySelector(\".form-field-section \").appendChild(emailOptin);\n htmlString = temp.innerHTML;\n }\n }\n ele.innerHTML = htmlString;\n this.utils.commonUtility.addStyle(\"\",flowConfig.workflowInstanceId,screenConfig.css);\n let widgets = ele.querySelectorAll(\"[data-func-widget-id],[data-static-widget-id]\")\n widgets = [...widgets];\n let widgetInstanceMap = {};\n let metaInfo = {};\n screenConfig['metadata'] && screenConfig['metadata'].forEach(ele=>{\n metaInfo[ele.widgetId] = ele.instanceId;\n })\n widgets.forEach(ele=> {\n let widgetId = ele.getAttribute(\"data-func-widget-id\") || ele.getAttribute(\"data-static-widget-id\");\n widgetId = widgetId.trim();\n widgetInstanceMap[widgetId] = metaInfo[widgetId] || \"a\"+(Math.random()*1000000).toFixed(0); \n console.log(\"instnace id for widet ud\", widgetId, widgetInstanceMap[widgetId])\n ele.setAttribute(INSTANCE_ID,widgetInstanceMap[widgetId])\n })\n let contentConfig = {};\n let replaceables = phApp.replaceables || {};\n\n if(screenConfig ){\n screenConfig['metadata'] && screenConfig['metadata'].forEach(metadata=>{\n if(metadata.widgetId && metadata['content'] ){\n contentConfig[widgetInstanceMap[metadata.widgetId]] = {fields:metadata['content']};\n }\n if(screenConfig['replaceables']){\n replaceables[widgetInstanceMap[metadata.widgetId]] = screenConfig['replaceables'];\n }\n });\n\n }\n phApp.replaceables = replaceables;\n \n platform.runDynamicWidgets(widgets, contentConfig);\n this.addComponentLevelMutationObserver(flowConfig, ele);\n this.addActionSection(flowConfig, ele);\n this.handleNextAction(ele,flowConfig);\n let count = 0;\n let listenerEvent = setInterval(() => {\n if(flowConfig?.config?.screenConfig?.screenConfig?.listeners){\n flowConfig.config.screenConfig.screenConfig?.listeners.forEach(eachListener=>{\n let temp = document.querySelector(eachListener.selector);\n if(temp){\n clearInterval(listenerEvent);\n temp.addEventListener(eachListener.type, this.handleActions.bind(this,eachListener.action ,ele,flowConfig));\n }else if(count > 30){\n clearInterval(listenerEvent);\n }\n })\n }else if(count > 30){\n clearInterval(listenerEvent);\n }\n count++;\n }, 100);\n scrollTo(0,0);\n \n }\n handleNextAction(ele, flowConfig) {\n let workflowContainer = document.querySelector(\".workflow-container\");\n let sections = workflowContainer.querySelectorAll(MESSAGE_FUNC_WIDGET_ID);\n\n let hasChildren = (element) => element.children.length > 0;\n\n if(sections.length ==0 ){\n this.handleEventListners(ele, flowConfig);\n }\n else {\n\n let instance_Ids = [];\n let count = 0;\n sections.forEach(section=>{\n instance_Ids.push(section.getAttribute(INSTANCE_ID));\n })\n let checkSections=()=> {\n if (!instance_Ids.length) {\n clearInterval(intervalId);\n this.handleEventListners(ele, flowConfig);\n return;\n }else if(count >5){\n clearInterval(intervalId);\n this.handleEventListners(ele, flowConfig);\n return;\n }\n sections.forEach(section => {\n let instanceId = section.getAttribute(INSTANCE_ID);\n if (instance_Ids.includes(instanceId) && hasChildren(section)) {\n instance_Ids = instance_Ids.filter(id => id !== instanceId);\n }\n }); \n \n count++;\n }\n let intervalId = setInterval(() => {\n checkSections();\n }, 400);\n }\n }\n handleEventListners(ele,flowConfig){\n let links = document.querySelectorAll(NEXT_ACTION_CLASS);\n links.forEach(link => {\n link.addEventListener('click', this.handleActions.bind(this, ACTION_CONFIG.next.action, ele, flowConfig));\n });\n }\n executeSteps(flowConfig, ele){\n if(flowConfig && flowConfig.config){\n if(flowConfig.config.listeners){\n this.addListenersToComponent(flowConfig.config.listeners, ele, flowConfig)\n }\n this.addComponentLevelMutationObserver(flowConfig, ele);\n this.addActionSection(flowConfig, ele);\n }\n\n }\n addActionSection(flowConfig, ele, automationConfig){\n let config = automationConfig ? automationConfig.containerConfig : flowConfig.config?.screenConfig?.screenConfig?.containerConfig ;\n let containerBackground = automationConfig ? automationConfig.containerBackground : (flowConfig.config?.screenConfig?.screenConfig?.containerBackground || \"\");\n if(config){\n let actionSec ;\n if(ele.querySelector(\".action-section\")){\n actionSec = ele.querySelector(\".action-section\");\n actionSec.classList.add(\"phw-width-sm-4\");\n actionSec.children[0].innerHTML = \"\";\n }else{\n let actionEle = document.createElement(\"div\");\n actionEle.setAttribute(\"class\",\"action-section phw-d-flex phw-g-widget-bg-white phw-width-2 phw-m-0-auto phw-width-sm-4\");\n if(ele.querySelector(\".action-parent\")){\n ele.querySelector(\".action-parent\").appendChild(actionEle);\n }\n let temp = document.createElement(\"div\");\n temp.setAttribute(\"class\",\"phw-d-flex phw-justify-content-end phw-width-4 phw-m-0-auto phw-pb-4 phw-pt-4 phw-justify-sm-content-center phw-width-sm-4 phw-flex-sm-column phw-gap-sm-1\");\n \n actionEle.appendChild(temp);\n actionSec = actionEle;\n }\n if (flowConfig?.config?.pageHeadLine) {\n wf.utils.commonUtility.checkForElementAndPeriod(\n document,\n \"[type='form-field-widget'] legend.phw-g-p-default-secondary\",\n 500,\n 10,\n (header)=>{\n if(header)\n header.innerText = flowConfig?.config?.pageHeadLine;\n }\n );\n\n \n }\n if(config.showPrevious){\n this.createBtn(\"previous\", actionSec, ele, flowConfig, automationConfig);\n }\n if(config.showNext){\n \n this.createBtn(\"next\", actionSec, ele, flowConfig, automationConfig);\n }\n if(flowConfig.finalAction || config.finalAction){\n this.createBtn(\"finish\", actionSec, ele, flowConfig, automationConfig);\n }\n if(containerBackground && actionSec){\n actionSec.style.backgroundColor = containerBackground;\n }\n }\n\n }\n createBtn(mode, actionSec, ele, flowConfig, automationConfig){\n let config = ACTION_CONFIG[mode];\n let btn = document.createElement(\"button\");\n btn.setAttribute(\"type\",\"submit\");\n let locale = phApp.locale.split(\"_\")[0];\n btn.innerHTML = mode == 'next' ? (flowConfig?.config?.pageButtonLabel || config[locale]?.text || config?.text) : (config[locale]?.text || config?.text);\n if(btn.innerHTML == '' || btn.innerHTML == undefined || btn.innerHTML == 'undefined') {\n btn.innerHTML = \"next\";\n }\n btn.setAttribute(\"class\",config.class);\n actionSec.children[0].appendChild(btn);\n if(automationConfig && automationConfig.listener){\n btn.addEventListener(\"click\", automationConfig.listener.bind(this,config.action,ele ,flowConfig));\n }else{\n btn.addEventListener(\"click\", this.handleActions.bind(this,config.action,ele ,flowConfig));\n }\n }\n addListenersToComponent(listeners, ele, workFlowObj){\n listeners.forEach(temp=>{\n if(temp.selector){\n let listenerEle = ele.querySelector(temp.selector);\n if(listenerEle && temp.config && temp.config.type == \"API_CALL\"){\n listenerEle.addEventListener(temp.type, this.makeAnApiCall.bind(this,workFlowObj, temp.config))\n }\n }\n })\n }\n async makeAnApiCall(workFlowObj, config){\n if(config.httpMethod == \"POST\"){\n let data = {};\n Object.keys(config.payload).forEach(eachKey=>{\n let keys =config.payload[eachKey]['value'].split(\".\");\n let value = workFlowObj.workflowContext;\n keys.forEach(each=>{\n value = value ? value[each] : \"\"\n })\n data[eachKey] =value;\n })\n const response = await fetch(config.endpoint, {\n method: config.httpMethod,\n body:JSON.stringify(data)\n });\n await response.json();\n }\n }\n nextStep(flowConfig){\n let ele = this.getElementToUpdateStep(flowConfig);\n this.executeSteps(flowConfig, ele);\n }\n handleActions(type,ele,flowConfig, context = undefined){\n switch(type){\n case \"nextAction\":\n case \"previousAction\":\n case \"finishFlow\": \n var payload = {};\n if(context && !context.isTrusted){\n this.utils.orchestrator.handleActions(type,flowConfig,context);\n\n }else{\n this.getActionPayload(payload,ele,type, flowConfig, (actionContext)=>{\n if(context.isTrusted && context.target.innerText){\n actionContext.label = context.target.innerText\n }\n this.utils.orchestrator.handleActions(type,flowConfig,actionContext);\n });\n }\n \n \n break; \n case \"currentAction\": \n this.utils.orchestrator.handleActions(type,flowConfig,{});\n break; \n }\n }\n getActionPayload(payload,ele, type,flowConfig, sendActionPayload){\n\n console.log(\"flowConfig\", flowConfig);\n let noOfWidgets = 0, noOfEventArrived = 0, goForNextStep = true;\n\n flowConfig?.config?.screenConfig?.metadata.forEach(temp=>{\n if(temp.widgetId && temp.type == \"functional\"){\n noOfWidgets++;\n }\n })\n //For demo commenting this\n if(noOfWidgets > 0){\n let arrived = false;\n phCommon.publishEvent(\"getWorkFlowWidgetData\",{\n cb: (widgetInfo)=>{\n noOfEventArrived++;\n if(widgetInfo.data && widgetInfo['data']['form'] && !widgetInfo['data']['form']['formValid']){\n goForNextStep = false;\n }else if(widgetInfo.data && widgetInfo['data']['form'] && widgetInfo['data']['form']['formValid']){\n payload = {...payload,...widgetInfo['data']['form']['formData']}\n }else if(widgetInfo.data && !widgetInfo['data']['form'] && Object.keys(widgetInfo.data).length){\n payload = {...payload, ...widgetInfo['data']}\n }\n if(noOfWidgets == noOfEventArrived){\n arrived = true;\n if( goForNextStep || type == \"previousAction\"){\n // console.log(\"fdssfdfdfd dtaa\", flowConfig);\n let formInfo = this.utils.formRenderer.getFormData( type == \"previousAction\");\n \n if(formInfo.valid || type == \"previousAction\"){\n payload = {...payload, ...formInfo.formData};\n \n let storageKey = this.utils.commonUtility.getLocalStorageKey(flowConfig.workflowId);\n if(storageKey && payload){\n if(payload.formData){\n let data = this.utils.commonUtility.getLocalStorageData(storageKey);\n if(data){\n data[flowConfig['name']] = payload;\n }\n this.utils.commonUtility.setLocalStorageData(storageKey, data);\n }\n \n }\n this.formPayloadFromContext(flowConfig, ele, payload)\n sendActionPayload(payload);\n }\n \n \n }\n\n }\n \n \n },\n action: type\n })\n // setTimeout(() => {\n // if(!arrived){\n // this.handleNonEventSubscribedWidgets(flowConfig, ele, payload,type, sendActionPayload);\n // }\n // }, 500);\n }else{\n \n this.handleNonEventSubscribedWidgets(flowConfig, ele, payload, type,sendActionPayload);\n \n }\n } \n handleNonEventSubscribedWidgets(flowConfig, ele, payload,type, sendActionPayload){\n if(document.querySelector(\"[form-field]\")){\n let formInfo = this.utils.formRenderer.getFormData(type == 'previousAction' );\n if(formInfo.valid){\n payload = {...payload, ...formInfo.formData};\n this.formPayloadFromContext(flowConfig, ele, payload)\n sendActionPayload(payload);\n }\n \n }else{\n this.formPayloadFromContext(flowConfig, ele, payload)\n sendActionPayload(payload);\n }\n\n }\n formPayloadFromContext(flowConfig, ele, payload){\n var ips = ele.querySelectorAll(\".wf-form-field\");\n ips.forEach(ip=>{\n payload[ip.getAttribute(\"name\")] = ip.value\n })\n if(flowConfig?.contextConfig){\n flowConfig.contextConfig.forEach(e=> {\n if(e.value){\n payload[e.key] = e.value\n }\n })\n }\n }\n keyDownEvent(event){\n this.setAttribute(\"value\",event.target.value);\n } \n\n addComponentLevelMutationObserver(flowConfig, ele){\n if(flowConfig.observer){\n flowConfig.observer.disconnect();\n }\n if(flowConfig.contextConfig){\n var config = {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true\n };\n let _self = this;\n \n const callback = function (mutationsList, observer) { \n let found = mutationsList.find(each=> each.type == 'childList')\n if(found){\n let els = ele.querySelectorAll(\"input,textarea\"); \n els.forEach(el=>{\n if(window.getEventListeners(el)['keydown']){\n let listListeners = window.getEventListeners(el)['keydown'];\n let exist = false;\n listListeners.forEach(eachitem =>{\n if(eachitem.listener && eachitem.listener.name.indexOf(\"keyDownEvent\")!= -1){\n exist = true;\n }\n })\n if(!exist){\n el.addEventListener(\"keydown\", _self.keyDownEvent.bind(el));\n }\n }else{\n el.addEventListener(\"keydown\", _self.keyDownEvent.bind(el));\n }\n // el.removeEventListener(\"keydown\", _self.keyDownEvent.bind(el))\n \n // el.addEventListener(\"keydown\", _self.keyDownEvent.bind(el))\n \n });\n\n }\n \n\n flowConfig.contextConfig.forEach(temp=>{\n if(temp.selector){\n let sel = ele.querySelector(temp.selector);\n if(sel){\n temp.value = sel.value;\n }\n }\n })\n console.log(\"sd\")\n }\n let observer = new MutationObserver(callback);\n\n observer.observe(ele,config);\n flowConfig.observer = observer;\n }\n\n\n } \n handleScreenConfig(element, config){\n \n if(config?.screenConfig?.screenConfig?.screenGroup){\n this.checkIfAllTheWidgetsAreRendered(element,()=>{\n phCommon.publishEvent(\"currentScreenGroup\",{screenGroup: config?.screenConfig?.screenConfig?.screenGroup})\n });\n }\n\n }\n checkIfAllTheWidgetsAreRendered(ele, cb){\n // let temp = ele.querySelectorAll(\"[data-func-widget-id]\");\n // let rem = [...temp];\n let count = 0;\n let remaining = setInterval(() => {\n let temp = ele.querySelectorAll(\"[data-func-widget-id]\");\n if(temp.length > 0){\n let rem = [...temp];\n\n rem = rem.filter(ele=>!ele.querySelector(\"[funcwidgetid]\"));\n if(!rem.length){\n clearInterval(remaining);\n cb();\n }else if(count > 10){\n clearInterval(remaining);\n }\n }\n count++;\n\n }, 300);\n }\n handleReplaceables(screenHtml, flowConfig){\n\n let strings = screenHtml.match(/\\{\\{[^}]*\\}\\}/g);\n if(strings && strings.length){\n strings.forEach(ele=>{\n\n screenHtml = this.replaceString(ele, screenHtml, flowConfig.workflowContext)\n })\n }\n return screenHtml;\n \n\n }\n replaceString(replaceable, screenHtml, workflowContext ){\n switch(replaceable){\n case \"{{jobSeqNo}}\":\n screenHtml = screenHtml.replaceAll(replaceable, workflowContext?.global?.jobSeqNo);\n break;\n case \"{{firstName}}\":\n screenHtml = screenHtml.replaceAll(replaceable, workflowContext?.global?.profile?.firstName);\n break;\n }\n return screenHtml;\n }\n}\n \nexport default ScreenRenderer;","const formData = {\n firstName: {\n name: \"Enter your first name\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter your first name\",\n type: \"text\",\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"First name is required\",\n },\n maxLength: {\n length: 25,\n errorMsg: \"First name should not exceed 25 characters\",\n },\n minLength: {\n length: 1,\n errorMsg: \"First name should be atleast 1 character\",\n },\n },\n },\n key: \"firstName\",\n applyKey: \"firstName\",\n },\n firstName_nl_nl: {\n name: \"Enter your first name\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter your first name\",\n type: \"text\",\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Voornaam is verplicht\",\n },\n maxLength: {\n length: 25,\n errorMsg: \"De voornaam mag niet langer zijn dan 25 tekens\",\n },\n minLength: {\n length: 1,\n errorMsg: \"Voornaam moet minimaal 1 teken lang zijn\",\n },\n },\n },\n key: \"firstName\",\n applyKey: \"firstName\",\n },\n firstName_da_dk: {\n name: \"Enter your first name\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter your first name\",\n type: \"text\",\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Fornavn er påkrævet\",\n },\n maxLength: {\n length: 25,\n errorMsg: \"Fornavn må ikke overstige 25 tegn\",\n },\n minLength: {\n length: 1,\n errorMsg: \"Fornavn skal være på mindst 1 tegn\",\n },\n },\n },\n key: \"firstName\",\n applyKey: \"firstName\",\n },\n firstName_es_mx: {\n name: \"Enter your first name\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter your first name\",\n type: \"text\",\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"El nombre es obligatorio\",\n },\n maxLength: {\n length: 25,\n errorMsg: \"El nombre no debe superar los 25 caracteres\",\n },\n minLength: {\n length: 1,\n errorMsg: \"El nombre debe tener al menos 1 carácter\",\n },\n },\n },\n key: \"firstName\",\n applyKey: \"firstName\",\n },\n firstName_de_de: {\n name: \"Enter your first name\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter your first name\",\n type: \"text\",\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Vorname ist erforderlich\",\n },\n maxLength: {\n length: 25,\n errorMsg: \"Vorname darf nicht länger als 25 Zeichen sein\",\n },\n minLength: {\n length: 1,\n errorMsg: \"Vorname darf mindestens 1 Zeichen lang sein\",\n },\n },\n },\n key: \"firstName\",\n applyKey: \"firstName\",\n },\n firstName_fr_fr: {\n name: \"Enter your first name\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter your first name\",\n type: \"text\",\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Le prénom est obligatoire\",\n },\n maxLength: {\n length: 25,\n errorMsg: \"Le prénom ne doit pas dépasser 25 caractères\",\n },\n minLength: {\n length: 1,\n errorMsg: \"Le prénom doit comporter au moins 1 caractère\",\n },\n },\n },\n key: \"firstName\",\n applyKey: \"firstName\",\n },\n firstName_cz_cz: {\n name: \"Enter your first name\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter your first name\",\n type: \"text\",\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Jméno je povinné\",\n },\n maxLength: {\n length: 25,\n errorMsg: \"Jméno by nemělo přesáhnout 25 znaků\",\n },\n minLength: {\n length: 1,\n errorMsg: \"Jméno by mělo mít alespoň 1 znak\",\n },\n },\n },\n key: \"firstName\",\n applyKey: \"firstName\",\n },\n firstName_it_it: {\n name: \"Enter your first name\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter your first name\",\n type: \"text\",\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Il nome è obbligatorio\",\n },\n maxLength: {\n length: 25,\n errorMsg: \"Il nome non deve superare i 25 caratteri\",\n },\n minLength: {\n length: 1,\n errorMsg: \"Il nome deve essere lungo almeno 1 carattere\",\n },\n },\n },\n key: \"firstName\",\n applyKey: \"firstName\",\n },\n firstName_lt_lt: {\n name: \"Enter your first name lt\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter your first name lt\",\n type: \"text\",\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Privalote tai užpildyti\",\n },\n maxLength: {\n length: 25,\n errorMsg: \"Vardas neturi viršyti 25 simbolių\",\n },\n minLength: {\n length: 1,\n errorMsg: \"Vardą turi sudaryti bent 1 simbolis\",\n },\n },\n },\n key: \"firstName\",\n applyKey: \"firstName\",\n },\n lastName: {\n name: \"Enter your last name\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter your last name\",\n type: \"text\",\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Last name is required\",\n },\n maxLength: {\n length: 25,\n errorMsg: \"Last name should not exceed 25 characters\",\n }\n },\n },\n key: \"lastName\",\n applyKey: \"lastName\",\n },\n lastName_nl_nl: {\n name: \"Enter your last name\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter your last name\",\n type: \"text\",\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Achternaam is verplicht\",\n },\n maxLength: {\n length: 25,\n errorMsg: \"De achternaam mag niet langer zijn dan 25 tekens\",\n }\n },\n },\n key: \"lastName\",\n applyKey: \"lastName\",\n },\n lastName_da_dk: {\n name: \"Enter your last name\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter your last name\",\n type: \"text\",\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Efternavn er påkrævet\",\n },\n maxLength: {\n length: 25,\n errorMsg: \"Efternavn må ikke overstige 25 tegn\",\n }\n },\n },\n key: \"lastName\",\n applyKey: \"lastName\",\n },\n lastName_es_mx: {\n name: \"Enter your last name\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter your last name\",\n type: \"text\",\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"El apellido es obligatorio\",\n },\n maxLength: {\n length: 25,\n errorMsg: \"El apellido no debe superar los 25 caracteres\",\n }\n },\n },\n key: \"lastName\",\n applyKey: \"lastName\",\n },\n lastName_de_de: {\n name: \"Enter your last name\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter your last name\",\n type: \"text\",\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Nachname ist erforderlich\",\n },\n maxLength: {\n length: 25,\n errorMsg: \"Nachname darf nicht länger als 25 Zeichen sein\",\n }\n },\n },\n key: \"lastName\",\n applyKey: \"lastName\",\n },\n lastName_fr_fr: {\n name: \"Enter your last name\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter your last name\",\n type: \"text\",\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Le nom de famille est obligatoire\",\n },\n maxLength: {\n length: 25,\n errorMsg: \"Le nom de famille ne doit pas dépasser 25 caractères\",\n }\n },\n },\n key: \"lastName\",\n applyKey: \"lastName\",\n },\n lastName_cz_cz: {\n name: \"Enter your last name\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter your last name\",\n type: \"text\",\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Příjmení je povinné\",\n },\n maxLength: {\n length: 25,\n errorMsg: \"Příjmení by nemělo přesáhnout 25 znaků\",\n }\n },\n },\n key: \"lastName\",\n applyKey: \"lastName\",\n },\n lastName_it_it: {\n name: \"Enter your last name\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter your last name\",\n type: \"text\",\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Il cognome è obbligatorio\",\n },\n maxLength: {\n length: 25,\n errorMsg: \"Il cognome non deve superare i 25 caratteri\",\n }\n },\n },\n key: \"lastName\",\n applyKey: \"lastName\",\n },\n lastName_lt_lt: {\n name: \"Enter your last name\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter your last name\",\n type: \"text\",\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Privalote tai užpildyti\",\n },\n maxLength: {\n length: 25,\n errorMsg: \"Pavardė neturi viršyti 25 simbolių\",\n }\n },\n },\n key: \"lastName\",\n applyKey: \"lastName\",\n },\n email: {\n name: \"Enter your email\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter your email\",\n type: \"text\",\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Email is required\",\n },\n pattern: {\n regex:\n \"[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\",\n errorMsg: \"Please enter a valid email\",\n },\n },\n },\n key: \"email\",\n applyKey: \"userEmail\",\n },\n email_nl_nl: {\n name: \"Enter your email\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter your email\",\n type: \"text\",\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"E-mailadres is verplicht\",\n },\n pattern: {\n regex:\n \"[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\",\n errorMsg: \"Voer een geldig e-mailadres in\",\n },\n },\n },\n key: \"email\",\n applyKey: \"userEmail\",\n },\n email_da_dk: {\n name: \"Enter your email\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter your email\",\n type: \"text\",\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"E-mail er påkrævet\",\n },\n pattern: {\n regex:\n \"[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\",\n errorMsg: \"Indtast venligst en gyldig e-mail\",\n },\n },\n },\n key: \"email\",\n applyKey: \"userEmail\",\n },\n email_es_mx: {\n name: \"Enter your email\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter your email\",\n type: \"text\",\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"El correo electrónico es obligatorio\",\n },\n pattern: {\n regex:\n \"[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\",\n errorMsg: \"Ingrese un correo electrónico válido\",\n },\n },\n },\n key: \"email\",\n applyKey: \"userEmail\",\n },\n email_de_de: {\n name: \"Enter your email\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter your email\",\n type: \"text\",\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"E-Mail ist erforderlich\",\n },\n pattern: {\n regex:\n \"[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\",\n errorMsg: \"Bitte geben Sie eine gültige E-Mail-Adresse ein\",\n },\n },\n },\n key: \"email\",\n applyKey: \"userEmail\",\n },\n email_fr_fr: {\n name: \"Enter your email\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter your email\",\n type: \"text\",\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"L'adresse e-mail est obligatoire\",\n },\n pattern: {\n regex:\n \"[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\",\n errorMsg: \"Veuillez saisir une adresse e-mail valide\",\n },\n },\n },\n key: \"email\",\n applyKey: \"userEmail\",\n },\n email_cz_cz: {\n name: \"Enter your email\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter your email\",\n type: \"text\",\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"E-mail je povinný\",\n },\n pattern: {\n regex:\n \"[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\",\n errorMsg: \"Zadejte prosím platný e-mail\",\n },\n },\n },\n key: \"email\",\n applyKey: \"userEmail\",\n },\n email_it_it: {\n name: \"Enter your email\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter your email\",\n type: \"text\",\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"L'email è obbligatoria\",\n },\n pattern: {\n regex:\n \"[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\",\n errorMsg: \"Inserisci un indirizzo email valido\",\n },\n },\n },\n key: \"email\",\n applyKey: \"userEmail\",\n },\n email_lt_lt: {\n name: \"Enter your email\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter your email\",\n type: \"text\",\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Privalote tai užpildyti\",\n },\n pattern: {\n regex:\n \"[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\",\n errorMsg: \"Įveskite galiojantį el. pašto adresą\",\n },\n },\n },\n key: \"email\",\n applyKey: \"userEmail\",\n },\n country: {\n name: \"Country\",\n field: {\n uiType: \"dropdown\",\n attrs: {\n placeholder: \"Select country\",\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Country is required\",\n },\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"India\",\n key: \"in\",\n },\n {\n displayName: \"USA\",\n key: \"usa\",\n },\n {\n displayName: \"China\",\n key: \"ch\",\n },\n ],\n defaultValue: {\n displayName: \"India\",\n key: \"in\",\n },\n },\n key: \"country\",\n applyKey: \"country\",\n },\n zipcode: {\n name: \"Zipcode\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter your zip code\",\n type: \"number\",\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Zip code is required\",\n },\n maxLength: {\n length: 6,\n errorMsg: \"Zip code should not exceed 6 characters\",\n },\n pattern: {\n regex: \"^[0-9]{6}$\",\n errorMsg: \"Please enter a valid zipcode\",\n },\n },\n },\n key: \"zipcode\",\n applyKey: \"postalCode\",\n },\n state: {\n name: \"State\",\n field: {\n uiType: \"dropdown\",\n attrs: {\n placeholder: \"Select state\",\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"State is required\",\n },\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"Telanagana\",\n key: \"TG\",\n },\n {\n displayName: \"Andhra\",\n key: \"Ap\",\n },\n ],\n // optionsSource: \"api\",\n // apiConfig: {\n // method: \"POST\",\n // endpoint: \"serverUrl/getCountries\",\n // headers: {},\n // body: {\n // refNum: {\n // source: \"CONTEXT\",\n // type: \"string\",\n // value: \"${global.refNum}\",\n // },\n\n // lang: {\n // source: \"CONTEXT\",\n // type: \"string\",\n // value: \"${global.locale}\",\n // },\n\n // country: {\n // source: \"CONTEXT\",\n // type: \"string\",\n // value: \"${country}\",\n // },\n // },\n // },\n },\n key: \"state\",\n applyKey: \"state\",\n },\n \"sms-optin\": {\n name: \"Would you like to opt in to receive job related updates by SMS? Standard data rates may apply.\",\n field: {\n uiType: \"radio\",\n inputType: \"\",\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Field is required\",\n },\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"Yes\",\n key: \"yes\",\n },\n {\n displayName: \"No\",\n key: \"no\",\n },\n ],\n },\n \n \n key: \"sms-optin\",\n applyKey: \"sms-optin\",\n },\n \"email-optin\": {\n name: \"Would you like to opt in to receive job related emails from our team?\",\n field: {\n uiType: \"radio\",\n inputType: \"\",\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Field is required\",\n },\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"Yes\",\n key: \"yes\",\n },\n {\n displayName: \"No\",\n key: \"no\",\n },\n ],\n },\n \n key: \"email-optin\",\n applyKey: \"email-optin\",\n },\n \"email-optin_nl_nl\": {\n name: \"Would you like to opt in to receive job related emails from our team?\",\n field: {\n uiType: \"radio\",\n inputType: \"\",\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Veld is verplicht\",\n },\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"Yes\",\n key: \"yes\",\n },\n {\n displayName: \"No\",\n key: \"no\",\n },\n ],\n },\n \n key: \"email-optin\",\n applyKey: \"email-optin\",\n },\n \"email-optin_da_dk\": {\n name: \"Would you like to opt in to receive job related emails from our team?\",\n field: {\n uiType: \"radio\",\n inputType: \"\",\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Feltet er påkrævet\",\n },\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"Yes\",\n key: \"yes\",\n },\n {\n displayName: \"No\",\n key: \"no\",\n },\n ],\n },\n \n key: \"email-optin\",\n applyKey: \"email-optin\",\n },\n \"sms-optin_lt_lt\": {\n name: \"Would you like to opt in to receive job related updates by SMS? Standard data rates may apply.\",\n field: {\n uiType: \"radio\",\n inputType: \"\",\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Lauką būtina užpildyt\",\n },\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"Yes\",\n key: \"yes\",\n },\n {\n displayName: \"No\",\n key: \"no\",\n },\n ],\n },\n \n \n key: \"sms-optin\",\n applyKey: \"sms-optin\",\n },\n \"sms-optin_nl_nl\": {\n name: \"Would you like to opt in to receive job related updates by SMS? Standard data rates may apply.\",\n field: {\n uiType: \"radio\",\n inputType: \"\",\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Veld is verplicht\",\n },\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"Yes\",\n key: \"yes\",\n },\n {\n displayName: \"No\",\n key: \"no\",\n },\n ],\n },\n \n \n key: \"sms-optin\",\n applyKey: \"sms-optin\",\n },\n \"sms-optin_da_dk\": {\n name: \"Would you like to opt in to receive job related updates by SMS? Standard data rates may apply.\",\n field: {\n uiType: \"radio\",\n inputType: \"\",\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Feltet er påkrævet\",\n },\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"Yes\",\n key: \"yes\",\n },\n {\n displayName: \"No\",\n key: \"no\",\n },\n ],\n },\n \n \n key: \"sms-optin\",\n applyKey: \"sms-optin\",\n },\n \"email-optin_lt_lt\": {\n name: \"Would you like to opt in to receive job related emails from our team?\",\n field: {\n uiType: \"radio\",\n inputType: \"\",\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Lauką būtina užpildyt\",\n },\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"Yes\",\n key: \"yes\",\n },\n {\n displayName: \"No\",\n key: \"no\",\n },\n ],\n },\n \n key: \"email-optin\",\n applyKey: \"email-optin\",\n },\n \"sms-optin_it_it\": {\n name: \"Would you like to opt in to receive job related updates by SMS? Standard data rates may apply.\",\n field: {\n uiType: \"radio\",\n inputType: \"\",\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Il campo è obbligatorio\",\n },\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"Yes\",\n key: \"yes\",\n },\n {\n displayName: \"No\",\n key: \"no\",\n },\n ],\n },\n \n \n key: \"sms-optin\",\n applyKey: \"sms-optin\",\n },\n \"email-optin_it_it\": {\n name: \"Would you like to opt in to receive job related emails from our team?\",\n field: {\n uiType: \"radio\",\n inputType: \"\",\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Il campo è obbligatorio\",\n },\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"Yes\",\n key: \"yes\",\n },\n {\n displayName: \"No\",\n key: \"no\",\n },\n ],\n },\n \n key: \"email-optin\",\n applyKey: \"email-optin\",\n },\n \"sms-optin_cz_cz\": {\n name: \"Would you like to opt in to receive job related updates by SMS? Standard data rates may apply.\",\n field: {\n uiType: \"radio\",\n inputType: \"\",\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Pole je povinné\",\n },\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"Yes\",\n key: \"yes\",\n },\n {\n displayName: \"No\",\n key: \"no\",\n },\n ],\n },\n \n \n key: \"sms-optin\",\n applyKey: \"sms-optin\",\n },\n \"email-optin_cz_cz\": {\n name: \"Would you like to opt in to receive job related emails from our team?\",\n field: {\n uiType: \"radio\",\n inputType: \"\",\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Pole je povinné\",\n },\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"Yes\",\n key: \"yes\",\n },\n {\n displayName: \"No\",\n key: \"no\",\n },\n ],\n },\n \n key: \"email-optin\",\n applyKey: \"email-optin\",\n },\n \"sms-optin_fr_fr\": {\n name: \"Would you like to opt in to receive job related updates by SMS? Standard data rates may apply.\",\n field: {\n uiType: \"radio\",\n inputType: \"\",\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Le champ est obligatoire\",\n },\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"Yes\",\n key: \"yes\",\n },\n {\n displayName: \"No\",\n key: \"no\",\n },\n ],\n },\n \n \n key: \"sms-optin\",\n applyKey: \"sms-optin\",\n },\n \"email-optin_fr_fr\": {\n name: \"Would you like to opt in to receive job related emails from our team?\",\n field: {\n uiType: \"radio\",\n inputType: \"\",\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Le champ est obligatoire\",\n },\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"Yes\",\n key: \"yes\",\n },\n {\n displayName: \"No\",\n key: \"no\",\n },\n ],\n },\n \n key: \"email-optin\",\n applyKey: \"email-optin\",\n },\n \"sms-optin_de_de\": {\n name: \"Would you like to opt in to receive job related updates by SMS? Standard data rates may apply.\",\n field: {\n uiType: \"radio\",\n inputType: \"\",\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Feld ist erforderlich\",\n },\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"Yes\",\n key: \"yes\",\n },\n {\n displayName: \"No\",\n key: \"no\",\n },\n ],\n },\n \n \n key: \"sms-optin\",\n applyKey: \"sms-optin\",\n },\n \"email-optin_de_de\": {\n name: \"Would you like to opt in to receive job related emails from our team?\",\n field: {\n uiType: \"radio\",\n inputType: \"\",\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Feld ist erforderlich\",\n },\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"Yes\",\n key: \"yes\",\n },\n {\n displayName: \"No\",\n key: \"no\",\n },\n ],\n },\n \n key: \"email-optin\",\n applyKey: \"email-optin\",\n },\n \"sms-optin_es_mx\": {\n name: \"Would you like to opt in to receive job related updates by SMS? Standard data rates may apply.\",\n field: {\n uiType: \"radio\",\n inputType: \"\",\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"El campo es obligatorio\",\n },\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"Yes\",\n key: \"yes\",\n },\n {\n displayName: \"No\",\n key: \"no\",\n },\n ],\n },\n \n \n key: \"sms-optin\",\n applyKey: \"sms-optin\",\n },\n \"email-optin_es_mx\": {\n name: \"Would you like to opt in to receive job related emails from our team?\",\n field: {\n uiType: \"radio\",\n inputType: \"\",\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"El campo es obligatorio\",\n },\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"Yes\",\n key: \"yes\",\n },\n {\n displayName: \"No\",\n key: \"no\",\n },\n ],\n },\n \n key: \"email-optin\",\n applyKey: \"email-optin\",\n },\n \n \"sms-n-email-optin\":{\n \"name\": \"Would you like to opt in to receive job related emails from our team?\",\n \"field\": {\n \"uiType\": \"radio\",\n \"inputType\": \"\",\n \"validations\": {\n \"required\": {\n \"mandatory\": true,\n \"errorMsg\": \"Field is required\"\n }\n },\n \"optionsSource\": \"directValues\",\n \"options\": [\n {\n \"displayName\": \"Yes\",\n \"key\": \"yes\"\n },\n {\n \"displayName\": \"No\",\n \"key\": \"no\"\n }\n ]\n },\n \"key\": \"sms-n-email-optin\",\n \"applyKey\": \"sms-n-email-optin\",\n \"groupId\": \"opt-in\",\n \"title\": \"Sms and Email optin\"\n },\n \"whatsapp-optin\":{\n \"name\": \"Would you like to opt in to job related notifications through Whatsapp?\",\n \"field\": {\n \"uiType\": \"radio\",\n \"inputType\": \"\",\n \"validations\": {\n \"required\": {\n \"mandatory\": true,\n \"errorMsg\": \"Field is required\"\n }\n },\n \"optionsSource\": \"directValues\",\n \"options\": [\n {\n \"displayName\": \"Yes\",\n \"key\": \"yes\"\n },\n {\n \"displayName\": \"No\",\n \"key\": \"no\"\n }\n ]\n },\n \"key\": \"whatsapp-optin\",\n \"applyKey\": \"whatsapp-optin\",\n \"groupId\": \"opt-in\",\n \"title\": \"Whatsapp optin\"\n },\n \"single-sms-optin\":{\n \"name\": \"Do you want to opt in to receive job-related SMS notifications from us?\",\n \"field\": {\n \"uiType\": \"radio\",\n \"inputType\": \"\",\n \"validations\": {\n \"required\": {\n \"mandatory\": true,\n \"errorMsg\": \"Field is required\"\n }\n },\n \"optionsSource\": \"directValues\",\n \"options\": [\n {\n \"displayName\": \"Yes\",\n \"key\": \"yes\"\n },\n {\n \"displayName\": \"No\",\n \"key\": \"no\"\n }\n ]\n },\n \"key\": \"single-sms-optin\",\n \"applyKey\": \"single-sms-optin\",\n \"groupId\": \"opt-in\",\n \"title\": \"Single sms optin\"\n },\n smsOptin: {\n name: \"Would you like to opt in to receive job related updates by SMS? Standard data rates may apply.\",\n field: {\n uiType: \"radio\",\n inputType: \"\",\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Field is required\",\n },\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"Yes\",\n key: \"yes\",\n },\n {\n displayName: \"No\",\n key: \"no\",\n },\n ],\n },\n \n \n key: \"smsOptin\",\n applyKey: \"smsOptin\",\n },\n emailOptin: {\n name: \"Would you like to opt in to receive job related emails from our team?\",\n field: {\n uiType: \"radio\",\n inputType: \"\",\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Field is required\",\n },\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"Yes\",\n key: \"yes\",\n },\n {\n displayName: \"No\",\n key: \"no\",\n },\n ],\n },\n \n key: \"emailOptin\",\n applyKey: \"emailOptin\",\n },\n city: {\n name: \"City (optional)\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter city\",\n type: \"text\",\n },\n validations: {},\n },\n key: \"city\",\n applyKey: \"city\",\n },\n youCheckIfSomeoneElseIsAvailable: {\n name: \"You check if someone else is available by calling other colleagues in other stores.\",\n field: {\n uiType: \"yes-no\",\n inputType: \"text\",\n attrs: {},\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Field is required\",\n },\n },\n },\n key: \"youCheckIfSomeoneElseIsAvailable\",\n applyKey: \"screeningQues\",\n },\n resume: {\n name: \"Resume\",\n field: {\n uiType: \"file\",\n attrs: {\n dropText:\"Drop resume file here or\",\n selectText:\"select a file to upload\",\n helpText: \"Drop resume file here or Select your resume\",\n accept: \".pdf, .doc,.docx,.txt,.rft,.html,.png\",\n type: \"file\",\n },\n formatAccepted:\n \"All .pdf, .doc, .docx types are supported, up to 1MB\",\n\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Resume is required\",\n },\n },\n },\n key: \"resume\",\n applyKey: \"resumeLink\",\n },\n shiftAvailability: {\n name: \"Shift availability\",\n field: {\n uiType: \"checkbox\",\n inputType: \"\",\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Shift availability is required\",\n },\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"Fully flexible throughout the week\",\n key: \"Flexible\",\n },\n {\n displayName: \"Weekday early shifts(6am - 3pm)\",\n key: \"weekdayEarly\",\n },\n {\n displayName: \"Weekday late shifts(2pm - 11pm)\",\n key: \"weekdayLate\",\n },\n {\n displayName: \"Overnights(11pm - 7am)\",\n key: \"overnight\",\n },\n {\n displayName: \"Weekends\",\n key: \"weekends\",\n },\n ],\n defaultValue: {\n displayName: \"Weekends\",\n key: \"weekends\",\n },\n },\n key: \"shiftAvailability\",\n applyKey: \"shiftAvailability\",\n },\n\n stepCount: {\n name: \"Step Count\",\n field: {\n uiType: \"legend\",\n inputType: \"\",\n readOnly: true,\n defaultValue: \"1/3\",\n },\n key: \"stepCount\",\n applyKey: \"stepCount\",\n },\n introduceYourself: {\n name: \"Introduce Yourself\",\n field: {\n uiType: \"h3-heading\",\n inputType: \"\",\n readOnly: true,\n defaultValue: \"Introduce Yourself\",\n },\n key: \"introduceYourself\",\n applyKey: \"introduceYourself\",\n },\n makeSureYouAreNotSecretAgent: {\n name: \"Not a robot\",\n field: {\n uiType: \"paragraph\",\n inputType: \"\",\n readOnly: true,\n defaultValue: \"Let's make sure you are not a secret agent. Or are you?\",\n },\n key: \"makeSureYouAreNotSecretAgent\",\n applyKey: \"makeSureYouAreNotSecretAgent\",\n },\n haveYouPreviouslyWorkedForUs: {\n name: 'Have you previously worked for us? If \"Yes\" please provide the information below as accurately as possible. CURRENT WORKERS: Please apply internally.',\n field: {\n uiType: \"radio\",\n inputType: \"\",\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Field is required\",\n },\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"Yes\",\n key: \"yes\",\n },\n {\n displayName: \"No\",\n key: \"no\",\n },\n ],\n },\n key: \"haveYouPreviouslyWorkedForUs\",\n applyKey: \"haveYouPreviouslyWorkedForUs\",\n },\n howDidYouHear: {\n name: \"How did you hear about us?\",\n field: {\n uiType: \"dropdown\",\n attrs: {\n placeholder: \"Select\",\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Field is required\",\n },\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"Linkedin\",\n key: \"linkedin\",\n },\n {\n displayName: \"Social media\",\n key: \"socialmedia\",\n },\n {\n displayName: \"Referral\",\n key: \"referral\",\n },\n ],\n },\n key: \"howDidYouHear\",\n applyKey: \"howDidYouHear\",\n },\n phoneExtension: {\n name: \"Phone extension\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter phone extension\",\n type: \"text\",\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Phone extension is required\",\n },\n maxLength: {\n length: 3,\n errorMsg: \"Phone extension should not exceed 3 characters\",\n },\n minLength: {\n length: 3,\n errorMsg: \"Phone extension should be atleast 3 characters\",\n },\n },\n },\n key: \"phoneExtension\",\n applyKey: \"phoneExtension\",\n },\n phoneNumber: {\n name: \"Enter phone number\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter phone number\",\n type: \"text\",\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Phone number is required\",\n },\n // maxLength: {\n // length: 14,\n // errorMsg: \"Phone number should not exceed 14 characters\",\n // },\n // minLength: {\n // length: 8,\n // errorMsg: \"Phone number should be atleast 8 characters\",\n // },\n pattern: {\n regex:\"^(?:\\\\+\\\\d{1,3}\\\\s*)?(?:\\\\(\\\\d{3}\\\\)|\\\\d{3})(?:[\\\\s-]?\\\\d{3}[\\\\s-]?\\\\d{4}|\\\\d{8,14})$\",\n errorMsg: \"Please enter a valid phone number\",\n },\n },\n },\n key: \"phoneNumber\",\n applyKey: \"phoneNumber\",\n },\n phoneNumber_nl_nl: {\n name: \"Enter phone number\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter phone number\",\n type: \"text\",\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Telefoonnummer is verplicht\",\n },\n // maxLength: {\n // length: 14,\n // errorMsg: \"Phone number should not exceed 14 characters\",\n // },\n // minLength: {\n // length: 8,\n // errorMsg: \"Phone number should be atleast 8 characters\",\n // },\n pattern: {\n regex:\"^(?:\\\\+\\\\d{1,3}\\\\s*)?(?:\\\\(\\\\d{3}\\\\)|\\\\d{3})(?:[\\\\s-]?\\\\d{3}[\\\\s-]?\\\\d{4}|\\\\d{8,14})$\",\n errorMsg: \"Voer een geldig telefoonnummer in\",\n },\n },\n },\n key: \"phoneNumber\",\n applyKey: \"phoneNumber\",\n },\n phoneNumber_da_dk: {\n name: \"Enter phone number\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter phone number\",\n type: \"text\",\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Telefonnummer er påkrævet\",\n },\n // maxLength: {\n // length: 14,\n // errorMsg: \"Phone number should not exceed 14 characters\",\n // },\n // minLength: {\n // length: 8,\n // errorMsg: \"Phone number should be atleast 8 characters\",\n // },\n pattern: {\n regex:\"^(?:\\\\+\\\\d{1,3}\\\\s*)?(?:\\\\(\\\\d{3}\\\\)|\\\\d{3})(?:[\\\\s-]?\\\\d{3}[\\\\s-]?\\\\d{4}|\\\\d{8,14})$\",\n errorMsg: \"Indtast venligst et gyldigt telefonnummer\",\n },\n },\n },\n key: \"phoneNumber\",\n applyKey: \"phoneNumber\",\n },\n phoneNumber_es_mx: {\n name: \"Enter phone number\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter phone number\",\n type: \"text\",\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"El número de teléfono es obligatorio\",\n },\n // maxLength: {\n // length: 14,\n // errorMsg: \"Phone number should not exceed 14 characters\",\n // },\n // minLength: {\n // length: 8,\n // errorMsg: \"Phone number should be atleast 8 characters\",\n // },\n pattern: {\n regex:\"^(?:\\\\+\\\\d{1,3}\\\\s*)?(?:\\\\(\\\\d{3}\\\\)|\\\\d{3})(?:[\\\\s-]?\\\\d{3}[\\\\s-]?\\\\d{4}|\\\\d{8,14})$\",\n errorMsg: \"Ingrese un número de teléfono válido\",\n },\n },\n },\n key: \"phoneNumber\",\n applyKey: \"phoneNumber\",\n },\n phoneNumber_de_de: {\n name: \"Enter phone number\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter phone number\",\n type: \"text\",\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Telefonnummer ist erforderlich\",\n },\n // maxLength: {\n // length: 14,\n // errorMsg: \"Phone number should not exceed 14 characters\",\n // },\n // minLength: {\n // length: 8,\n // errorMsg: \"Phone number should be atleast 8 characters\",\n // },\n pattern: {\n regex:\"^(?:\\\\+\\\\d{1,3}\\\\s*)?(?:\\\\(\\\\d{3}\\\\)|\\\\d{3})(?:[\\\\s-]?\\\\d{3}[\\\\s-]?\\\\d{4}|\\\\d{8,14})$\",\n errorMsg: \"Bitte geben Sie eine gültige Telefonnummer ein\",\n },\n },\n },\n key: \"phoneNumber\",\n applyKey: \"phoneNumber\",\n },\n phoneNumber_fr_fr: {\n name: \"Enter phone number\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter phone number\",\n type: \"text\",\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Le numéro de téléphone est obligatoire\",\n },\n // maxLength: {\n // length: 14,\n // errorMsg: \"Phone number should not exceed 14 characters\",\n // },\n // minLength: {\n // length: 8,\n // errorMsg: \"Phone number should be atleast 8 characters\",\n // },\n pattern: {\n regex:\"^(?:\\\\+\\\\d{1,3}\\\\s*)?(?:\\\\(\\\\d{3}\\\\)|\\\\d{3})(?:[\\\\s-]?\\\\d{3}[\\\\s-]?\\\\d{4}|\\\\d{8,14})$\",\n errorMsg: \"Veuillez saisir un numéro de téléphone valide\",\n },\n },\n },\n key: \"phoneNumber\",\n applyKey: \"phoneNumber\",\n },\n phoneNumber_cz_cz: {\n name: \"Enter phone number\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter phone number\",\n type: \"text\",\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Telefonní číslo je povinné\",\n },\n // maxLength: {\n // length: 14,\n // errorMsg: \"Phone number should not exceed 14 characters\",\n // },\n // minLength: {\n // length: 8,\n // errorMsg: \"Phone number should be atleast 8 characters\",\n // },\n pattern: {\n regex:\"^(?:\\\\+\\\\d{1,3}\\\\s*)?(?:\\\\(\\\\d{3}\\\\)|\\\\d{3})(?:[\\\\s-]?\\\\d{3}[\\\\s-]?\\\\d{4}|\\\\d{8,14})$\",\n errorMsg: \"Zadejte prosím platné telefonní číslo\",\n },\n },\n },\n key: \"phoneNumber\",\n applyKey: \"phoneNumber\",\n },\n phoneNumber_it_it: {\n name: \"Enter phone number\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter phone number\",\n type: \"text\",\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Il numero di telefono è obbligatorio\",\n },\n // maxLength: {\n // length: 14,\n // errorMsg: \"Phone number should not exceed 14 characters\",\n // },\n // minLength: {\n // length: 8,\n // errorMsg: \"Phone number should be atleast 8 characters\",\n // },\n pattern: {\n regex:\"^(?:\\\\+\\\\d{1,3}\\\\s*)?(?:\\\\(\\\\d{3}\\\\)|\\\\d{3})(?:[\\\\s-]?\\\\d{3}[\\\\s-]?\\\\d{4}|\\\\d{8,14})$\",\n errorMsg: \"Inserisci un numero di telefono valido\",\n },\n },\n },\n key: \"phoneNumber\",\n applyKey: \"phoneNumber\",\n },\n phoneNumber_lt_lt: {\n name: \"Enter phone number\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter phone number\",\n type: \"text\",\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Privalote tai užpildyti\",\n },\n // maxLength: {\n // length: 14,\n // errorMsg: \"Phone number should not exceed 14 characters\",\n // },\n // minLength: {\n // length: 8,\n // errorMsg: \"Phone number should be atleast 8 characters\",\n // },\n pattern: {\n regex:\"^(?:\\\\+\\\\d{1,3}\\\\s*)?(?:\\\\(\\\\d{3}\\\\)|\\\\d{3})(?:[\\\\s-]?\\\\d{3}[\\\\s-]?\\\\d{4}|\\\\d{8,14})$\",\n errorMsg: \"Įveskite galiojantį telefono numerį\",\n },\n },\n },\n key: \"phoneNumber\",\n applyKey: \"phoneNumber\",\n },\n phoneDeviceType: {\n name: \"Phone device type\",\n field: {\n uiType: \"dropdown\",\n attrs: {\n placeholder: \"Select Phone device type\",\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Phone device type is required\",\n },\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"Mobile\",\n key: \"mobile\",\n },\n {\n displayName: \"Home phone\",\n key: \"home\",\n },\n ],\n defaultValue: {},\n },\n key: \"phoneDeviceType\",\n applyKey: \"phoneDeviceType\",\n },\n address: {\n name: \"Address (optional)\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter address\",\n type: \"text\",\n },\n validations: {},\n },\n key: \"address\",\n applyKey: \"address\",\n },\n zipcode: {\n name: \"Zip code (optional)\",\n field: {\n uiType: \"input\",\n attrs: {\n placeholder: \"Enter zipcode\",\n type: \"number\",\n },\n validations: {\n maxLength: {\n length: 6,\n errorMsg: \"Zip code should not exceed 6 characters\",\n },\n minLength: {\n length: 6,\n errorMsg: \"Zip code should be atleast 6 characters\",\n },\n },\n },\n key: \"zipcode\",\n applyKey: \"zipcode\",\n },\n\n areYouLegallyEligible: {\n name: \"Are you legally eligible to work in the United states? You will be asked to provide documentation at time of hire?\",\n field: {\n uiType: \"dropdown\",\n attrs: {\n placeholder: \"Select\",\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Field is required\",\n },\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"Yes\",\n key: \"Yes\",\n },\n {\n displayName: \"No\",\n key: \"no\",\n },\n ],\n },\n key: \"areYouLegallyEligible\",\n applyKey: \"areYouLegallyEligible\",\n },\n submitBackgroundCheck: {\n name: \"Would you be willing to submit a background check if job is offered?\",\n field: {\n uiType: \"dropdown\",\n attrs: {\n placeholder: \"Select\",\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Field is required\",\n },\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"Yes\",\n key: \"Yes\",\n },\n {\n displayName: \"No\",\n key: \"no\",\n },\n ],\n },\n key: \"submitBackgroundCheck\",\n applyKey: \"submitBackgroundCheck\",\n },\n areYou16YearsOlder: {\n name: \"Are you at least 16 years old or older?\",\n field: {\n uiType: \"dropdown\",\n attrs: {\n placeholder: \"Select\",\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Field is required\",\n },\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"Yes\",\n key: \"Yes\",\n },\n {\n displayName: \"No\",\n key: \"no\",\n },\n ],\n },\n key: \"areYou16YearsOlder\",\n applyKey: \"areYou16YearsOlder\",\n },\n doOneOrMoreStatementsApply: {\n name: \"Do one or more of the statements below apply to you?
1)Received SNAP benefits(food stamps)
2)Received Temporary Assistance for Needy families(TANF)
3)Received Supplemental security income(SSI)
4)Served in the U.S. military(veteran)
5)Have you been unemployed in the last year
6)Referred to this job by a rehabilation agency, the department of Veteran affairs, or under the ticket to work program\",\n field: {\n uiType: \"dropdown\",\n attrs: {\n placeholder: \"Select\",\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Field is required\",\n },\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"Yes\",\n key: \"Yes\",\n },\n {\n displayName: \"No\",\n key: \"no\",\n },\n ],\n defaultValue: {\n displayName: \"Yes\",\n key: \"Yes\",\n },\n },\n key: \"doOneOrMoreStatementsApply\",\n applyKey: \"doOneOrMoreStatementsApply\",\n },\n doYouHaveDrivingLicense: {\n name: \"Do you have a driving license?\",\n tooltip: \"The question is related to Store assistant and Fuel distributor\",\n field: {\n uiType: \"dropdown\",\n attrs: {\n placeholder: \"Select\",\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Field is required\",\n },\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"Yes\",\n key: \"Yes\",\n },\n {\n displayName: \"No\",\n key: \"no\",\n },\n ],\n },\n key: \"doYouHaveDrivingLicense\",\n applyKey: \"doYouHaveDrivingLicense\",\n },\n cashierExperience: {\n name: \"How many years have you had cashier experience?\",\n tooltip: \"The question is related to Store assistant and Fuel distributor\",\n field: {\n uiType: \"dropdown\",\n attrs: {\n placeholder: \"Select\",\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Field is required\",\n },\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"<15 years\",\n key: \"lessThan15\",\n },\n {\n displayName: \"<10years\",\n key: \"lessThan10\",\n },\n {\n displayName: \"<5years\",\n key: \"lessThan5\",\n },\n ],\n },\n key: \"cashierExperience\",\n applyKey: \"cashierExperience\",\n },\n certifiedOperatingForkLift: {\n name: \"Are you certified for operating a forklift?\",\n tooltip: \"The question is related to Store assistant and Fuel distributor\",\n field: {\n uiType: \"dropdown\",\n attrs: {\n placeholder: \"Select\",\n },\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Field is required\",\n },\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName: \"<15 years\",\n key: \"lessThan15\",\n },\n {\n displayName: \"<10years\",\n key: \"lessThan10\",\n },\n {\n displayName: \"<5years\",\n key: \"lessThan5\",\n },\n ],\n },\n key: \"certifiedOperatingForkLift\",\n applyKey: \"certifiedOperatingForkLift\",\n },\n termsAndConditions: {\n name: \"By providing your electronic signature in the field provided below you are confirming your understanding of the following terms and conditions of employment with Circle K Inc, its subsidiaries, affiliates, other related entities, and/or successors (the “Company”). The Company is an Equal Opportunity Employer.
All employment decisions are based on business needs, job requirements and individual qualifications. All applications for employment will be considered without regard to race, color, age, sex, national origin, religion, disability, veteran status, genetics, marital status, sexual orientation, or any other legally protected status.
I certify that all information provided in this application is true and complete to the best of my knowledge and belief and that any documents I provide in connection with this application are true copies. I understand that if I supply any untrue information or withhold any material information from this application, the Company will have the right to discontinue any further employment consideration, rescind any verbal or written offer of employment, and, if learned after I am hired, may result in my termination of employment. I understand and agree to receive text messages from the Company’s Hiring Managers. I have the right to withdraw my consent to receive text messages at any time. If I wish to withdraw my consent, I may “opt out” by replying “Stop” via text message. This in no way would negatively impact consideration of my employment application. I agree to notify the Company if the phone number I provided is no longer a valid phone number to reach me. I understand that text messaging rates will apply to any messages received \",\n field: {\n uiType: \"checkbox\",\n inputType: \"\",\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Field is required\",\n },\n },\n optionsSource: \"directValues\",\n options: [\n {\n displayName:\n \"Yes, I agree to this and provided information is correct\",\n key: \"yes\",\n },\n ],\n },\n key: \"termsAndConditions\",\n applyKey: \"termsAndConditions\",\n },\n contactStoreManagerAndDelayMeeting: {\n name: \"You contact your store manager with a situation update.You decide to delay meetng your friends until the situation is solved.\",\n field: {\n uiType: \"yes-no\",\n inputType: \"text\",\n attrs: {},\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Field is required\",\n },\n },\n },\n key: \"contactStoreManagerAndDelayMeeting\",\n applyKey: \"contactStoreManagerAndDelayMeeting\",\n },\n contactStoreManagerAndLeave: {\n name: \"You contact your store manager and tell them that you have to leave as its the end of your shift and you will have to close the store.\",\n field: {\n uiType: \"yes-no\",\n inputType: \"text\",\n attrs: {},\n validations: {\n required: {\n mandatory: true,\n errorMsg: \"Field is required\",\n },\n },\n },\n key: \"contactStoreManagerAndLeave\",\n applyKey: \"contactStoreManagerAndLeave\",\n }\n};\n\nexport default formData;\n\nexport const CONDITIONS = {\n EQUALS: \"equals\",\n NOT_EQUALS: \"not equals\",\n};\n\nexport const WORKFLOW_SELECTOR = \".workflow-container[workflowinstanceid]\";\n\nexport const INSTANCE_ID = \"instance-id\";\n\nexport const INSTANCE_ID_ATTR = \"[instance-id]\";\n\nexport const NEXT_ACTION_CLS = \"phw-btn phw-g-btn-primary phw-width-auto phw-width-sm-4\";\nexport const PREVIOUS_ACTION_CLS =\n \"phw-btn phw-g-btn-buttonlink phw-width-auto phw-mr-2 phw-width-sm-4 phw-mr-sm-0\";\n\nexport const LISTENER_ADDED = \"listenerAdded\";\n\nexport const FORM_FIELD_SELECTOR = \".form-field\";\n\nexport const ACTION_CONFIG = {\n next: {\n en:{\n text: \"Next\"\n },\n lt:{\n text: \"kitas\"\n },\n class: NEXT_ACTION_CLS,\n action: \"nextAction\",\n },\n previous: {\n en:{\n text:\"Previous\"\n },\n lt:{\n text:\"ankstesnis\"\n },\n class: PREVIOUS_ACTION_CLS,\n action: \"previousAction\",\n },\n finish: {\n en:{\n text:\"Finish\"\n },\n lt:{\n text:\"kitas\"\n },\n class: NEXT_ACTION_CLS,\n action: \"finishFlow\",\n },\n};\nexport const MESSAGE_FUNC_WIDGET_ID = \"section[data-func-widget-id]\";\n\nexport const NEXT_ACTION_CLASS = '.next-action-cls';\n\nexport const ASSESSMENT_QUESTIONS_PUBLISH_EVENT = \"getAssessmentQuestions\";\n\n\nexport const APPLY_SUBMIT_EVENT = \"formSubmitEventData\";","import {ASSESSMENT_QUESTIONS_PUBLISH_EVENT} from \"./../utils/constants\";\nimport {APPLY_SUBMIT_EVENT} from \"./../utils/constants\";\n\n//This orchestrator manages the workflow execution and communication with the backend.\n\nclass WorkflowOrchestrator {\n workFlows = {};\n\n constructor(utils) {\n this.utils = utils;\n\n // ... initialize variables\n }\n async triggerFlow(workflow) {\n let { workflowId } = workflow;\n let temp = await this.utils.apiService.makeDDOCall(\n this.utils.endpoints.START_WORKFLOW,\n {},\n { workflowId }\n );\n if (temp[\"startWorkflow\"] && temp[\"startWorkflow\"].status == 200) {\n this.utils.orchestrator.runWorkflow(temp[\"startWorkflow\"].data, false);\n }\n }\n\n runWorkflow(workflow, removeTriggerConfig = true) {\n if (removeTriggerConfig)\n delete this.workFlows[workflow.workflowId][\"triggerConfig\"];\n\n this.workFlows[workflow.workflowId] = {\n ...this.workFlows[workflow.workflowId],\n ...workflow.action,\n ...workflow,\n };\n delete this.workFlows[workflow.workflowId][\"action\"];\n if (this.workFlows[workflow.workflowId].type == \"widgetScreen\" || this.workFlows[workflow.workflowId].type == 'assessmentScreen') {\n console.log(\"workFlows\", this.workFlows);\n if(this.workFlows[workflow.workflowId].config.group.type == \"apply\" && !window.applyConfigLoaded){\n \n let temp = this.workFlows[workflow.workflowId];\n temp.action = this.workFlows[workflow.workflowId];\n this.loadTemplate(temp);\n }\n if((this.workFlows[workflow.workflowId].config.group.type == \"assessment\" && this.workFlows[workflow.workflowId][\"workflowContext\"][\"global\"] && this.workFlows[workflow.workflowId][\"workflowContext\"][\"global\"][\"assessmentLink\"]) || (this.workFlows[workflow.workflowId].config.group.type == \"apply\" && this.workFlows[workflow.workflowId][\"workflowContext\"][\"global\"] && this.workFlows[workflow.workflowId][\"workflowContext\"][\"global\"][\"assessmentUrl\"])){\n \n let ele = document.querySelector(`[workflowid='${workflow.workflowId}']`);\n if(ele){\n let assLink = this.workFlows[workflow.workflowId][\"workflowContext\"][\"global\"][\"assessmentLink\"] || this.workFlows[workflow.workflowId][\"workflowContext\"][\"global\"][\"assessmentUrl\"];\n ele.innerHTML = `}`;;\n setTimeout(() => {\n let iframe = document.querySelector(\".iframe-doc\");\n iframe.onload = ()=>{\n iframe.contentWindow.workflowEngine = true;\n }\n \n }, 100);\n \n window.addEventListener(\"message\",(data)=>{\n if(data.data.event == \"hvhAssessmentSubmit\"){\n wf.utils.orchestrator.handleActions(\"nextAction\",workflow,data.data.data);\n }\n })\n return;\n }\n\n }\n this.utils.screenRenderer.renderWorkflow(\n this.workFlows[workflow.workflowId]\n );\n if(this.workFlows[workflow.workflowId].type != 'assessmentScreen'){\n this.utils.formRenderer.renderForm(document);\n }\n if(this.workFlows[workflow.workflowId]['config'] && this.workFlows[workflow.workflowId]['config']['assessmentQuestions']){\n let interval = setInterval(()=>{\n if(window.PhwHvhAssessmentDefaultDefaultV1 && window.assessmentMounted){\n setTimeout(() => {\n phCommon.publishEvent(ASSESSMENT_QUESTIONS_PUBLISH_EVENT,{\n assessmentQuestions : this.workFlows[workflow.workflowId]['config']['assessmentQuestions']\n });\n \n }, 500);\n \n clearInterval(interval);\n }\n },500)\n \n }\n }\n if (\n this.workFlows[workflow.workflowId] &&\n this.workFlows[workflow.workflowId][\"lastActivity\"]\n ) {\n this.handleActions(\n \"finishFlow\",\n workflow,\n this.workFlows[workflow.workflowId]\n );\n }\n }\n getDDOByAction(action) {\n let ddo = \"\";\n switch (action) {\n case \"nextAction\":\n ddo = this.utils.endpoints.NEXT_ACTION;\n break;\n case \"previousAction\":\n ddo = this.utils.endpoints.PREVIOUS_ACTION;\n break;\n case \"currentAction\":\n ddo = this.utils.endpoints.CURRENT_ACTION;\n break;\n }\n return ddo;\n }\n async handleActions(type, workFlowObj, payload) {\n switch (type) {\n case \"nextAction\":\n case \"previousAction\":\n case \"currentAction\":\n var temp = await this.utils.apiService.makeDDOCall(\n this.getDDOByAction(type),\n {},\n {\n workflowInstanceId: workFlowObj.workflowInstanceId,\n workflowId: workFlowObj.workflowId,\n actionContext: payload,\n }\n );\n let responseKey = this.getDDOByAction(type);\n this.workFlows[workFlowObj.workflowId] = {\n ...this.workFlows[workFlowObj.workflowId],\n ...temp[responseKey].data,\n ...temp[responseKey].data.action,\n };\n window.assessmentMounted = false;\n let storageKey = this.utils.commonUtility.getLocalStorageKey(\n workFlowObj.workflowId\n );\n let data = this.utils.commonUtility.getLocalStorageData(storageKey);\n data[\"instanceActivityId\"] = workFlowObj.instanceActivityId;\n this.utils.commonUtility.setLocalStorageData(storageKey, data);\n\n delete this.workFlows[workFlowObj.workflowId][\"action\"];\n\n let workflowEle = document.querySelector(\n \"[workflowinstanceid='\" + workFlowObj.workflowInstanceId + \"']\"\n );\n if (workflowEle) {\n wf.utils.screenRenderer.handleScreenConfig(\n workflowEle,\n this.workFlows[workFlowObj.workflowId].config\n );\n }\n // this.utils.screenRenderer.nextStep(this.workFlows[workFlowObj.workflowId]);\n this.utils.orchestrator.runWorkflow(temp[responseKey].data);\n\n break;\n case \"finishFlow\":\n var temp = await this.utils.apiService.makeDDOCall(\n this.utils.endpoints.FINISH_FLOW,\n {},\n { workflowInstanceId: workFlowObj.workflowInstanceId }\n );\n if (temp[\"endWorkflow\"].status == 200) {\n // let ele = document.querySelector(\"[workflowInstanceId='\"+workFlowObj.workflowInstanceId+\"']\");\n // if(ele){\n // ele.outerHTML = \"\"\n // }\n }\n break;\n }\n }\n loadTemplate(workflow){\n if (\n workflow &&\n workflow[\"workflowContext\"] &&\n workflow[\"workflowContext\"][\"global\"] &&\n workflow[\"workflowContext\"][\"global\"][\"applyConfig\"] && \n workflow['action']['config']['group']['type'] === 'apply'\n ) {\n window.applyConfigLoaded = true;\n\n document.addEventListener(APPLY_SUBMIT_EVENT, wf.utils.orchestrator.goToNextAction);\n \n \n let { applyConfig } = workflow[\"workflowContext\"][\"global\"];\n phApp.ddo.response = applyConfig;\n let counter = 0;\n let containerRender = setInterval(() => {\n let rightSec = document.querySelector(\".right-side-sec\");\n if (rightSec) {\n clearInterval(containerRender);\n let ele = document.createElement(\"div\");\n ele.setAttribute(\"class\", \"ph-apply-box workflow-apply\");\n ele.setAttribute(\"data-ph-id\", \"-\" + Date.now());\n rightSec.prepend(ele);\n let formField = rightSec.querySelector('[type=\"form-field-widget\"]');\n if(formField){\n formField.parentElement.removeChild(formField);\n }\n document.body.classList.add(\"apply-page\");\n //let tempEle = document.createElement(\"div\");\n //tempEle.innerHTML = applyConfig.jsTemplate;\n /*let childs = [...tempEle.children];\n childs.forEach((ele) => {\n if (ele.tagName == \"SCRIPT\") {\n let tem = document.createElement(\"script\");\n tem.setAttribute(\"type\", ele.getAttribute(\"type\"));\n if (ele.hasAttribute(\"src\")) {\n tem.setAttribute(\"src\", ele.getAttribute(\"src\"));\n } else {\n tem.innerHTML = ele.innerHTML;\n }\n document.head.appendChild(tem);\n } else if (ele.tagName == \"LINK\") {\n let tem = document.createElement(\"link\");\n tem.setAttribute(\"rel\", ele.getAttribute(\"rel\"));\n // tem.setAttribute(\"type\", ele.getAttribute(\"type\"));\n tem.setAttribute(\"href\", ele.getAttribute(\"href\"));\n document.head.appendChild(tem);\n }\n // document.head.appendChild(ele);\n });*/\n const parser = new DOMParser();\n const decodedString = applyConfig.jsTemplate\n .replace(/\\\\x3C/g, '<') // Replace \\x3C with <\n .replace(/\\\\x3E/g, '>') // Replace \\x3E with >\n .replace(/\\\\\\//g, '/') // Replace \\/ with /\n .replace(/\\\\'/g, \"'\") // Replace \\' with '\n .replace(/\\\\\"/g, '\"') // Replace \\\" with \"\n .replace(/\\\\\\\\/g, '\\\\'); // Replace \\\\ with \\\n\n const parsedDocument = parser.parseFromString(decodedString, 'text/html');\n\n parsedDocument.head.childNodes.forEach(ele => {\n if (ele.tagName == \"SCRIPT\") {\n let tem = document.createElement(\"script\");\n tem.setAttribute(\"type\", ele.getAttribute(\"type\"));\n if (ele.hasAttribute(\"src\")) {\n tem.setAttribute(\"src\", ele.getAttribute(\"src\"));\n } else {\n tem.innerHTML = ele.innerHTML;\n }\n document.head.appendChild(tem);\n } else if (ele.tagName == \"LINK\") {\n let tem = document.createElement(\"link\");\n tem.setAttribute(\"rel\", ele.getAttribute(\"rel\"));\n // tem.setAttribute(\"type\", ele.getAttribute(\"type\"));\n tem.setAttribute(\"href\", ele.getAttribute(\"href\"));\n document.head.appendChild(tem);\n }\n // document.head.appendChild(ele);\n });\n\n parsedDocument.body.childNodes.forEach(ele => {\n if (ele.tagName == \"SCRIPT\") {\n let tem = document.createElement(\"script\");\n tem.setAttribute(\"type\", ele.getAttribute(\"type\"));\n if (ele.hasAttribute(\"id\")) {\n tem.setAttribute(\"id\", ele.getAttribute(\"id\"));\n }\n if (ele.hasAttribute(\"data-app-key\")) {\n tem.setAttribute(\"data-app-key\", ele.getAttribute(\"data-app-key\"));\n }\n if (ele.hasAttribute(\"src\")) {\n tem.setAttribute(\"src\", ele.getAttribute(\"src\"));\n } else {\n tem.innerHTML = ele.innerHTML;\n }\n document.head.appendChild(tem);\n } else if (ele.tagName == \"LINK\") {\n let tem = document.createElement(\"link\");\n tem.setAttribute(\"rel\", ele.getAttribute(\"rel\"));\n // tem.setAttribute(\"type\", ele.getAttribute(\"type\"));\n tem.setAttribute(\"href\", ele.getAttribute(\"href\"));\n document.head.appendChild(tem);\n }\n // document.head.appendChild(ele);\n });\n\n wf.utils.commonUtility.checkForElementAndPeriod(\n rightSec,\n \".ph-apply-box form .navigation\",\n 500,\n 15,\n this.checkAndAddActions\n );\n } else if (counter > 15) {\n clearInterval(containerRender);\n }\n counter++;\n }, 100);\n }\n \n }\n goToNextAction(data){\n let ele = document.querySelector(\".workflow-container\");\n let workflowId = ele.getAttribute(\"workflowid\");\n \n wf.utils.orchestrator.handleActions(\"nextAction\",wf.utils.orchestrator.workFlows[workflowId],data.detail)\n }\n checkAndAddActions(ele) {\n if (ele) {\n \n wf.utils.orchestrator.formActionConfig(ele);\n wf.utils.orchestrator.addMutationForStepChangeAndCallAction(ele);\n \n }\n }\n formActionConfig(ele) {\n let config = { containerConfig: {}, containerBackground: \"transparent\", listener: wf.utils.orchestrator.actionListener };\n if (ele.querySelector(\"button.btn-next\")) {\n config.containerConfig.showNext = true;\n } \n if (ele.querySelector(\"button.btn-prev\")) {\n config.containerConfig.showPrevious = true;\n }\n if(ele.querySelector(\"button.btn-submit\")){\n config.containerConfig.finalAction = true;\n }\n wf.utils.screenRenderer.addActionSection({}, ele.closest(\".workflow-container\"), config);\n }\n addMutationForStepChangeAndCallAction(ele){\n // Select the node that will be observed for mutations\n const targetNode = document.querySelector(\".workflow-container .ph-apply-box .navigation-summary .slick-track\");\n if(targetNode){\n \n // Options for the observer (which mutations to observe)\n const config = { attributes: true, subtree: true };\n let timeOut;\n \n // Callback function to execute when mutations are observed\n const callback = (mutationList, observer) => {\n for (const mutation of mutationList) {\n if (mutation.type === \"childList\") {\n console.log(\"A child node has been added or removed.\", mutation);\n } else if (mutation.type === \"attributes\") {\n \n \n if(mutation.attributeName == \"class\" && mutation.target.classList.contains(\"slick-slide\")){\n clearTimeout(timeOut);\n let temp =mutation.target;\n \n timeOut = setTimeout(()=>{\n let steps = temp.closest(\".slick-track\").querySelectorAll(\"li.slick-slide\");\n steps = [...steps];\n let index = steps.findIndex((el) => el.classList.contains(\"active\"));\n // activeIndex.value = index;\n phCommon.publishEvent(\"currentScreenGroup\",{screenGroup: steps[index].getAttribute(\"atm-id\")});\n if(wf.utils.currentStep != -1){\n if(wf.utils.currentStep > index){\n this.goToAction(\"previousAction\")\n \n }else if(wf.utils.currentStep < index){\n this.goToAction(\"nextAction\")\n }\n \n }\n \n wf.utils.currentStep = index;\n wf.utils.orchestrator.formActionConfig(ele);\n \n },300);\n \n }\n console.log(`The ${mutation.attributeName} attribute was modified.` , mutation);\n }\n }\n };\n \n // Create an observer instance linked to the callback function\n const observer = new MutationObserver(callback);\n \n // Start observing the target node for configured mutations\n observer.observe(targetNode, config);\n \n }\n \n }\n async goToAction(type){\n let ele = document.querySelector(\".workflow-container\");\n let workflowId = ele.getAttribute(\"workflowid\");\n \n var temp = await wf.utils.apiService.makeDDOCall(\n wf.utils.orchestrator.getDDOByAction(type),\n {},\n {\n workflowInstanceId: ele.getAttribute(\"workflowinstanceid\"),\n workflowId: workflowId,\n actionContext: {},\n }\n );\n let responseKey = wf.utils.orchestrator.getDDOByAction(type);\n wf.utils.orchestrator.workFlows[workflowId] = {\n ...wf.utils.orchestrator.workFlows[workflowId],\n ...temp[responseKey].data,\n ...temp[responseKey].data.action,\n };\n \n if(temp[responseKey]?.data?.action?.config?.screenConfig?.html && temp[responseKey]?.data?.action?.config?.group?.type == \"apply\"){\n let updatedHtml = temp[responseKey]?.data?.action?.config?.screenConfig?.html;\n let firstChild = ele.querySelector(\".layout-d-f .phw-container\").children[0];\n if(firstChild){\n let tempEle = document.createElement(\"div\");\n tempEle.innerHTML = updatedHtml;\n let container = tempEle.querySelector(\".phw-container\");\n let childs = [...container.children];\n if(childs[0]){\n firstChild.innerHTML = childs[0].innerHTML;\n }\n firstChild.scrollIntoView({ behavior: \"smooth\", block: \"center\" });\n }\n }else{\n wf.utils.orchestrator.runWorkflow(temp[responseKey].data);\n \n }\n \n \n \n }\n \n actionListener(action, ele, flowConfig){\n let selector = \"\"\n \n switch(action){\n case \"nextAction\":\n selector = \".ph-apply-box form .navigation button.btn-next\";\n break;\n case \"previousAction\":\n selector =\".ph-apply-box form .navigation button.btn-prev\";\n break;\n case \"finishFlow\":\n selector =\".ph-apply-box form .navigation button.btn-submit\";\n break;\n \n }\n let temp = document.querySelector(selector);\n temp && temp.click();\n \n }\n}\n\nexport default WorkflowOrchestrator;\n","//This component handles resolution-related logic, such as fetching data from the backend.\nconst INPUT = \"input\";\nconst TEXT_AREA = \"textarea\";\nconst MESSAGE = \"message\";\nclass ResolutionManager {\n constructor(utils) {\n this.utils = utils;\n }\n\n async fetchWorkflows() {\n // ... make an API request to get workflows\n let temp = await this.utils.apiService.makeDDOCall(\n this.utils.endpoints.GET_WORKFLOWS,\n {},\n { pageId: window.phApp.pageId }\n );\n let data = [];\n\n if (temp[\"workflowList\"]) {\n Object.keys(temp[\"workflowList\"][\"data\"]).forEach((flow) =>\n data.push(temp[\"workflowList\"][\"data\"][flow])\n );\n }\n return data;\n }\n\n async currentPageWorkflows() {\n let currentWorkflow = this.utils.endpoints.CURRENT_WORKFLOWS;\n let temp = await this.utils.apiService.makeDDOCall(\n currentWorkflow,\n {},\n { pageId: window.phApp.pageId, jobSeqNo: window.phApp.jobSeqNo }\n );\n\n if (\n temp[currentWorkflow] &&\n temp[currentWorkflow][\"status\"] == 200 &&\n temp[currentWorkflow][\"data\"] &&\n Object.keys(temp[currentWorkflow][\"data\"]).length\n )\n return temp[currentWorkflow][\"data\"];\n else {\n if (location.href.indexOf(\"hvh\") != -1) {\n let pageNameList = location.href.split(\"/\");\n if (pageNameList.length == 6) {\n let pageNames = pageNameList[5].split(\"?\");\n pageNames[0] = \"apply\";\n pageNameList[5] = pageNames.join(\"?\");\n }else if(pageNameList.length == 7){\n let pageNames = pageNameList[6].split(\"?\");\n pageNames[0] = \"apply\";\n pageNameList[6] = pageNames.join(\"?\");\n\n }\n location.href = pageNameList.join(\"/\");\n }\n }\n }\n}\n\nexport default ResolutionManager;\n","import rawFormData, {\n WORKFLOW_SELECTOR,\n INSTANCE_ID,\n FORM_FIELD_SELECTOR,\n} from \"./../utils/constants\";\nimport renderElement from \"./field-renderers/renderElement\";\nimport { createElementWrapper } from \"./field-renderers/createWrapper\";\nimport addEventListeners from \"./field-renderers/conditionalRendering\";\nimport { apiService } from \"./../instanceWrapper\";\n\nclass FormRenderer {\n workFlowObj = {};\n formData = {};\n applyFormData = {};\n componentsData = {};\n workflowConfig = {};\n constructor(utils) {\n this.utils = utils;\n this.formConfig = {};\n this.workflowId = \"\";\n this.instanceId = \"\";\n this.workflowConfig = {};\n }\n\n renderForm(element, formMasterData) {\n console.log(\"render form\");\n this.formData = formMasterData || rawFormData;\n\n let workflowContainer = element.closest\n ? element.closest(WORKFLOW_SELECTOR)\n : element.querySelector(WORKFLOW_SELECTOR);\n //let workflowConfig;\n if (workflowContainer && workflowContainer.hasAttribute(\"workflowid\")) {\n let workflowId = workflowContainer.getAttribute(\"workflowid\");\n this.workflowId = workflowId;\n this.workflowConfig = this.utils.orchestrator.workFlows[workflowId];\n if (this.workflowConfig) {\n this.formConfig =\n this.workflowConfig[\"config\"][\"screenConfig\"]?.screenConfig?.formConfig;\n }\n } else if (window.isAutomationScreen) {\n this.formConfig =\n window[\"screenConfig\"]?.screen?.config?.formConfig || {};\n }\n let formFieldWidget = element.querySelector('[type=\"form-field-widget\"]');\n if (formFieldWidget) {\n this.instanceId = formFieldWidget.getAttribute(INSTANCE_ID);\n }\n let eles = element.querySelectorAll(\"[form-field-type]\");\n eles.forEach((eachEle) => {\n if(!eachEle.classList.contains(\"hide\")){\n let formKey = eachEle.getAttribute(\"form-field-type\");\n if (!this.formConfig?.defaultVisibility?.hasOwnProperty(formKey)) {\n renderElement(this.formData, formKey, eachEle, element, this.workflowConfig);\n }\n } \n });\n if (this.formConfig && Object.keys(this.formConfig).length) {\n addEventListeners(this.formConfig, this.workflowId, this.formData);\n }\n }\n\n getFormData(isPrevious) {\n if (this.validateForm(isPrevious)) {\n let formInfo = this.getFormDataWithoutValidaton();\n return {\n valid: true,\n formData: formInfo,\n };\n } else {\n return {\n valid: false,\n };\n }\n }\n\n getFormDataWithoutValidaton() {\n let temp = document.querySelectorAll(\"[form-field]\");\n let formInfo = {};\n temp.forEach((ele) => {\n let formField = ele.getAttribute(\"form-field\") || \"\";\n if (formField) {\n if (ele.tagName == \"SELECT\" && ele.selectedIndex) {\n formInfo[formField] =\n this.formData[formField][\"field\"][\"options\"][ele.selectedIndex - 1][\n \"key\"\n ];\n } else if (\n ele.tagName == \"INPUT\" &&\n ele.getAttribute(\"type\") !== \"file\"\n ) {\n formInfo[formField] = ele?.value;\n } else if (\n ele.tagName == \"INPUT\" &&\n ele.getAttribute(\"type\") == \"file\"\n ) {\n // formInfo[formField] = ele?.files[0];\n formInfo[formField] = ele?.fileDetails;\n } else if (ele.tagName == \"FIELDSET\") {\n if (ele.getAttribute(\"type\") == \"radio-group\") {\n let selectedVal = ele?.querySelector(\n `[name='${formField}']:checked`\n )?.value;\n if(ele.getAttribute(\"subType\") == \"assessment\"){\n formInfo[formField] = {\n optionId: selectedVal\n }\n }else{\n formInfo[formField] = selectedVal;\n }\n\n } else if (ele.getAttribute(\"type\") == \"checkbox-group\") {\n let temp = \"\";\n ele\n ?.querySelectorAll(`[name='${formField}']:checked`)\n ?.forEach((ele) => {\n temp += \",\" + ele.value;\n });\n formInfo[formField] = temp.length ? temp.substring(1) : \"\";\n } else if (ele.getAttribute(\"type\") == \"sjt-group\") {\n let bestKey = this.formData[formField][\"id\"] + \"best\";\n let worstKey = this.formData[formField][\"id\"] + \"worst\";\n\n let bestValue = ele?.querySelector(\n `[name='${bestKey}']:checked`\n )?.value;\n let worstValue = ele?.querySelector(\n `[name='${worstKey}']:checked`\n )?.value;\n formInfo[formField] = {\n bestOptionId: bestValue,\n worstOptionId: worstValue,\n };\n }\n }\n }\n });\n return formInfo;\n }\n \n validateForm(isPrevious) {\n let temp = document.querySelectorAll(\"[form-field]\");\n let valid = true;\n let _self = this;\n temp.forEach((ele) => {\n let locale = undefined;\n if(this.workflowConfig[\"config\"][\"screenConfig\"]?.locale != undefined) {\n locale = this.workflowConfig[\"config\"][\"screenConfig\"]?.locale;\n }\n let refNum = undefined;\n if(this.workflowConfig[\"config\"][\"screenConfig\"]?.refNum != undefined) {\n refNum = this.workflowConfig[\"config\"][\"screenConfig\"]?.refNum;\n }\n let formField = ele.getAttribute(\"form-field\") || \"\";\n let defaultFormField = formField;\n console.log(\"refNum : \" + refNum + \" locale \" + locale);\n if(refNum && locale && refNum == 'CIKCGLOBAL' && _self.formData[formField + \"_\" + locale]) {\n console.log(\"inside locale form\");\n formField = formField + \"_\" + locale;\n console.log(\"form field \" + formField + \"_\" + locale);\n }\n\n if(refNum && locale && refNum == 'TFSCGLOBAL' && _self.formData[formField + \"_\" + locale]) {\n console.log(\"inside locale form\");\n formField = formField + \"_\" + locale;\n console.log(\"form field \" + formField + \"_\" + locale);\n }\n \n \n let validations = _self.formData[formField]?.field? {}\n : _self.formData[formField].type != \"LandingPage\"\n ? {\n required: {\n mandatory: true,\n errorMsg: \"Field is required\",\n },\n }\n : {};\n if (\n _self.formData[formField] &&\n _self.formData[formField]?.field?.validations\n ) {\n validations = _self.formData[formField][\"field\"][\"validations\"];\n }\n let errMsg = \"\";\n if(formField == 'resume') {\n console.log(\"formField \" + formField);\n if(this.workflowConfig[\"config\"][\"dynamicContent\"]) {\n this.workflowConfig[\"config\"][\"dynamicContent\"].forEach(e => {\n if(e[\"config\"] && e[\"config\"][\"name\"]) {\n console.log(\"config name \" + e[\"config\"][\"name\"]);\n if(e[\"config\"] && e[\"config\"][\"name\"] == \"resume\" && e[\"config\"][\"validations\"]) {\n e[\"config\"][\"validations\"].forEach(v => {\n console.log(\"validations \" + validations);\n if(v[\"type\"] == \"mandatory\") {\n validations[\"required\"][\"mandatory\"] = v[\"required\"];\n return;\n }\n })\n }\n }\n });\n }\n }\n Object.keys(validations).forEach((key) => {\n switch (key) {\n case \"required\":\n if (validations[key][\"mandatory\"]) {\n if (ele.tagName == \"SELECT\" && ele.selectedIndex == 0) {\n errMsg += validations[key][\"errorMsg\"] + \" \";\n } else if (ele.getAttribute(\"type\") === \"file\") {\n if (!ele.files.length) {\n errMsg += validations[key][\"errorMsg\"] + \" \";\n }\n } else if (ele.tagName == \"FIELDSET\") {\n if (ele.getAttribute(\"type\") == \"radio-group\") {\n if (\n !ele?.querySelector(`[name='${defaultFormField}']:checked`)?.value\n ) {\n errMsg += validations[key][\"errorMsg\"] + \" \";\n }\n } else if (ele.getAttribute(\"type\") == \"checkbox-group\") {\n if (\n !ele?.querySelector(`[name='${defaultFormField}']:checked`)?.value\n ) {\n errMsg += validations[key][\"errorMsg\"] + \" \";\n }\n } else if (ele.getAttribute(\"type\") == \"sjt-group\") {\n let bestKey = _self.formData[formField][\"id\"] + \"best\";\n let worstKey = _self.formData[formField][\"id\"] + \"worst\";\n\n let bestValue = ele?.querySelector(\n `[name='${bestKey}']:checked`\n )?.value;\n let worstValue = ele?.querySelector(\n `[name='${worstKey}']:checked`\n )?.value;\n\n if (!bestValue || !worstValue) {\n errMsg += validations[key][\"errorMsg\"] + \" \";\n }\n }\n } else if (!ele?.value || !ele.value.trim()) {\n errMsg += validations[key][\"errorMsg\"] + \" \";\n }\n }\n\n break;\n case \"minLength\":\n if (\n validations[key][\"length\"] &&\n ele.value && ele.value.trim() &&\n ele.value.trim().length < validations[key][\"length\"]\n ) {\n errMsg += validations[key][\"errorMsg\"] + \" \";\n }\n break;\n case \"maxLength\":\n if (\n validations[key][\"length\"] &&\n ele.value && ele.value.trim() &&\n ele.value.trim().length > validations[key][\"length\"]\n ) {\n errMsg += validations[key][\"errorMsg\"] + \" \";\n }\n break;\n case \"pattern\":\n if (validations[key][\"regex\"]) {\n if (ele?.value) {\n let reg = new RegExp(validations[key][\"regex\"],\"i\");\n if (!reg.test(ele?.value)) {\n errMsg += validations[key][\"errorMsg\"];\n }\n }\n }\n\n break;\n }\n });\n if (!isPrevious) {\n let err = ele\n ?.closest(FORM_FIELD_SELECTOR)\n ?.querySelector(\".phw-error-color\");\n if (errMsg) {\n valid = false;\n if (!err) {\n err = createElementWrapper(\"span\", {\n class: \"phw-error-color\",\n });\n err.classList.add(\"phw-error-color\");\n }\n err.innerHTML = errMsg;\n ele?.closest(FORM_FIELD_SELECTOR)?.appendChild(err);\n } else if (err) {\n err.innerHTML = \"\";\n }\n }\n });\n return valid;\n }\n\n validateFormFromApply() {\n let formInfo = this.getFormDataWithoutValidaton();\n // console.log(\"formInfo\", this.componentsData);\n if (Object.keys(this.componentsData).length) {\n // console.log(\"formInfo\", formInfo, this.componentsData);\n this.callApplyValidationApi(formInfo)\n\n } else {\n apiService\n .makeGetCall(\n \"https://flowstudio-dev.phenom.com/simpl_forms/api/widget/override/list?productName=Automation_Engine&widgetType=COMPONENT\"\n )\n .then((response) => {\n response.data.forEach((ele) => {\n Object.keys(ele.schema.schema.properties).forEach(\n (eachProperty) => {\n if (\n ele.schema.schema.properties[eachProperty].name ===\n eachProperty\n ) {\n this.componentsData[eachProperty] = ele;\n }\n }\n );\n });\n this.callApplyValidationApi(formInfo)\n\n });\n }\n }\n\n callApplyValidationApi(formInfo){\n let applyAutomationMap={};\n let payload = {\n schema: {\n schema: {\n title: \"\",\n description: \"\",\n type: \"object\",\n properties: {},\n required: [],\n },\n },\n };\n let formData = {};\n Object.keys(formInfo).forEach((eachFormKey) => {\n if (this.formData[eachFormKey]) {\n let applyKey = this.formData[eachFormKey][\"applyKey\"];\n if (applyKey) {\n applyAutomationMap[applyKey] = eachFormKey;\n if(formInfo[eachFormKey] && formInfo[eachFormKey].trim()){\n formData[applyKey] = formInfo[eachFormKey];\n }\n payload.schema.schema.properties[applyKey] =\n this.componentsData[applyKey]?.schema?.schema?.properties[applyKey];\n payload.schema.schema.required.push(applyKey);\n }\n }\n });\n payload[\"formData\"] = formData;\n apiService.makePostCall(\n \"https://applystudio-dev.phenom.com/getValidationResult\",\n {},\n payload\n )\n .then((response) => {\n console.log(\"response\", response, applyAutomationMap);\n if(response.status == \"success\"){\n let errMap = {}\n response['errors'].forEach(eachErr=>{\n if(eachErr['property'] ){\n let prop = eachErr['property'].substr(1, eachErr['property'].length);\n errMap[prop] = true;\n let ele = document\n ?.querySelector(\"[form-field='\"+applyAutomationMap[prop]+\"']\");\n if(ele){\n let err = ele\n ?.closest(FORM_FIELD_SELECTOR)\n ?.querySelector(\".phw-error-color\");\n if (eachErr['message']) {\n // valid = false;\n if (!err) {\n err = createElementWrapper(\"span\", {\n class: \"phw-error-color\",\n });\n err.classList.add(\"phw-error-color\");\n }\n err.innerHTML = this.formData[applyAutomationMap[prop]]['name']+\" \"+ eachErr['message'];\n ele?.closest(FORM_FIELD_SELECTOR)?.appendChild(err);\n } else if (err) {\n err.innerHTML = \"\";\n }\n\n }\n }\n })\n\n Object.keys(formData).forEach(eachKey =>{\n if(!errMap[eachKey]){\n let ele = document\n ?.querySelector(\"[form-field='\"+eachKey+\"']\");\n let err = ele\n ?.closest(FORM_FIELD_SELECTOR)\n ?.querySelector(\".phw-error-color\");\n if(err){\n err.innerHTML = \"\";\n }\n }\n })\n\n\n }\n });\n\n }\n}\nexport default FormRenderer;\n","import handleInput from \"./field-input\";\nimport handleRadio from \"./field-radio\";\nimport handleParagraph from \"./field-paragraph\";\nimport handleDropdown from \"./field-dropdown\";\nimport handleHeading from \"./field-heading\";\nimport handleLegend from \"./field-legend\";\nimport handleFileType from \"./field-file\";\nimport handleCheckbox from \"./field-checkbox\";\nimport handleYesNoQuestion from \"./field-yesno\";\nimport handleSjtQuestion from \"./field-sjtQuestion\";\nimport handleRatingQuestion from \"./field-rating\";\nimport handleListeningQuestion from \"./field-listening\";\nimport handleReadingQuestion from \"./field-reading\";\nimport handleGrammarQuestion from \"./field-grammar\";\nimport handleLandingPageQuestion from \"./field-languagelandingpage\";\nconst renderElement = function (\n formData,\n formKey,\n ele,\n parentEle,\n workflowConfig = {}\n) {\n if (formData[formKey]) {\n let uiType = formData[formKey][\"field\"] ? formData[formKey][\"field\"][\"uiType\"] : formData[formKey]['uiTypeQuestion'];\n let { instanceActivityId, workflowContext } = workflowConfig;\n let value;\n // console.log(instanceActivityId, workflowConfig);\n if (workflowContext && instanceActivityId) {\n value =\n (workflowContext[instanceActivityId] &&\n workflowContext[instanceActivityId][formKey]) ||\n (workflowContext?.global?.profile?.[formKey]);\n }\n \n if (uiType) {\n // console.log(uiType);\n switch (uiType) {\n case \"input\":\n handleInput(formData[formKey], ele, value);\n break;\n case \"dropdown\":\n handleDropdown(formData[formKey], ele, value);\n break;\n case \"file\":\n handleFileType(formData[formKey], ele, value);\n break;\n case \"yes-no\":\n handleYesNoQuestion(formData[formKey], ele, value);\n break;\n case \"checkbox\":\n handleCheckbox(formData[formKey], ele, value);\n break;\n case \"legend\":\n handleLegend(formData[formKey], ele, value);\n break;\n case \"h3-heading\":\n handleHeading(formData[formKey], ele, value);\n break;\n case \"paragraph\":\n handleParagraph(formData[formKey], ele, value);\n break;\n case \"radio\":\n handleRadio(formData[formKey], ele, value);\n break;\n case \"sjtQuestion\":\n handleSjtQuestion(formData[formKey], ele, value)\n break;\n case \"ratingQuestion\":\n handleRatingQuestion(formData[formKey], ele, value)\n break;\n case \"listeningQuestion\":\n handleListeningQuestion(formData[formKey], ele, value)\n break;\n case \"reading\":\n handleReadingQuestion(formData[formKey], ele, value)\n break;\n case \"grammar\":\n handleGrammarQuestion(formData[formKey], ele, value)\n break;\n case \"languageLandingPage\":\n handleLandingPageQuestion(formData[formKey], ele, value)\n break;\n\n\n }\n }\n }\n};\n\nexport default renderElement;\n","import checkEachAndEveryChildAndAppendDataPs from \"./appendDataPS\";\nimport updateAttributesFromGivenElement from \"./updateAttributes\";\nimport {createFormFieldWrapper, getLabel, createElementWrapper} from \"./createWrapper\";\n\nconst handleInput = function (data, ele, value=\"\") {\n let div = createFormFieldWrapper(\"form-field\", ele);\n div.innerHTML = getLabel(\n ele.hasAttribute(\"label\") ? ele.getAttribute(\"label\") : data.name,\n ele\n );\n\n let temp = createElementWrapper(\"input\", {\n class:\n \"phw-g-text-field-style-1 phw-g-mf-form-control phw-form-control phw-m-0\",\n });\n temp.setAttribute(\"value\", value || \"\");\n div.appendChild(temp);\n\n updateAttributesFromGivenElement(ele, temp, data.field);\n ele.outerHTML = div.outerHTML;\n checkEachAndEveryChildAndAppendDataPs(ele);\n};\n\nexport default handleInput;\n","const checkEachAndEveryChildAndAppendDataPs = function(ele) {\n if (ele.children) {\n let dataPs = ele.getAttribute(\"data-ps\");\n if (dataPs) {\n let childs = [...ele.children];\n childs.forEach((childEle) => {\n let childDataPs = dataPs + \"-\" + childEle.tagName.toLowerCase();\n childEle.setAttribute(\"data-ps\", childDataPs);\n if (\n this && this.instanceId &&\n phApp &&\n phApp.settings &&\n phApp.settings[this.instanceId] &&\n phApp.settings[this.instanceId][childDataPs]\n ) {\n phApp.settings[this.instanceId][childDataPs][\"class\"].forEach(\n (cls) => childEle.classList.add(cls)\n );\n }\n if (childEle.children) {\n checkEachAndEveryChildAndAppendDataPs(childEle);\n }\n });\n }\n }\n }\n export default checkEachAndEveryChildAndAppendDataPs;","const updateAttributesFromGivenElement = function(getEle, setEle, fieldData) {\n let attrs = getEle.attributes;\n if (fieldData) {\n Object.keys(fieldData[\"attrs\"]).forEach((temp) => {\n setEle.setAttribute(temp, fieldData[\"attrs\"][temp]);\n });\n }\n for (var i = 0; i < attrs.length; i++) {\n setEle.setAttribute(\n attrs[i].nodeName == \"form-field-type\"\n ? \"form-field\"\n : attrs[i].nodeName,\n attrs[i].nodeValue || \"\"\n );\n }\n if (getEle.hasAttribute(\"data-ps\")) {\n let dataPs =\n getEle.getAttribute(\"data-ps\") + \"-\" + setEle.tagName.toLowerCase();\n setEle.setAttribute(\"data-ps\", dataPs);\n if (\n this && this.instanceId &&\n phApp &&\n phApp.settings &&\n phApp.settings[this.instanceId] &&\n phApp.settings[this.instanceId][dataPs]\n ) {\n phApp.settings[this.instanceId][dataPs][\"class\"].forEach((cls) =>\n setEle.classList.add(cls)\n );\n }\n }\n }\n export default updateAttributesFromGivenElement;","export const createFormFieldWrapper = function (className = \"\", temp) {\n let ele = document.createElement(\"div\");\n ele.setAttribute(\"class\", \"phw-mb-2 \" + className);\n if (temp && temp.hasAttribute(\"data-ph-id\")) {\n ele.setAttribute(\"data-ph-id\", temp.getAttribute(\"data-ph-id\"));\n }\n if (temp && temp.hasAttribute(\"data-ps\")) {\n let dataPs = temp.getAttribute(\"data-ps\");\n ele.setAttribute(\"data-ps\", dataPs);\n if (\n this && this.instanceId &&\n phApp &&\n phApp.settings &&\n phApp.settings[this.instanceId] &&\n phApp.settings[this.instanceId][dataPs]\n ) {\n phApp.settings[this.instanceId][dataPs][\"class\"].forEach((cls) =>\n ele.classList.add(cls)\n );\n }\n }\n return ele;\n};\nexport const getLabel = function (name = \"\", ele) {\n let temp = \"\";\n let classessToBeAdded = \"\";\n let dataPs = \"\";\n if (ele.hasAttribute(\"data-ps\")) {\n dataPs = ele.getAttribute(\"data-ps\") + \"-label\";\n temp = `data-ps=${dataPs}`;\n }\n if (\n dataPs &&\n this.instanceId &&\n phApp &&\n phApp.settings &&\n phApp.settings[this.instanceId] &&\n phApp.settings[this.instanceId][dataPs]\n ) {\n phApp.settings[this.instanceId][dataPs][\"class\"].forEach(\n (cls) => (classessToBeAdded += `${cls} `)\n );\n }\n return ``;\n};\nexport const createElementWrapper = function (type, properties = {}) {\n let ele = document.createElement(type);\n Object.keys(properties).forEach((attr) =>\n ele.setAttribute(attr, properties[attr])\n );\n return ele;\n};\n\nexport const assessmentComponentWrapper = function (className, ele, data) {\n let div = createFormFieldWrapper(className, ele);\n\n // console.log(data);\n let temp = Date.now();\n\n let questionPart = assessmentQuestionWrapper(\n data.questionObj,\n data.uiTypeQuestion\n );\n\n div.innerHTML = `
\n
\n
\n ${questionPart.outerHTML}\n
\n
\n xx\n
\n
\n
`;\n\n return div;\n};\n\nexport const assessmentQuestionWrapper = function (\n questionObj,\n uiTypeQuestion,\n clsName\n) {\n let questionsEle = document.createElement(\"div\");\n questionsEle.setAttribute(\n \"class\",\n clsName ||\n \" phw-width-4 phw-m-0-auto phw-width-md-3 phw-m-md-0-auto phw-width-sm-4 phw-m-sm-0-auto phw-pl-8 phw-pr-8 phw-pt-4 phw-pb-4 phw-p-sm-2\"\n );\n questionObj.forEach((ele, index) => {\n if (ele.type == \"text\" || ele.type == \"nonOption\") {\n let headingEle = document.createElement(\"div\");\n\n switch (ele.metadata.type) {\n case \"heading\":\n case \"nonOption\":\n headingEle = document.createElement(\"h2\"); \n \n headingEle.setAttribute(\n \"class\",\n \"phw-width-4 phw-width-sm-4 phw-mb-sm-4 phw-text-sm-c phw-g-h2-card-title-dark-default\"\n );\n headingEle.innerHTML = `${ele.displayObject}`;\n\n break;\n case \"subheading\":\n case \"subHeading\":\n if(index == 2 && uiTypeQuestion == 'languageTextPage'){\n headingEle = document.createElement(\"button\");\n headingEle.setAttribute(\"class\", \"phw-btn start-btn phw-g-btn-primary phw-width-auto phw-mt-2\");\n\n\n }else{\n headingEle.setAttribute(\n \"class\",\n \"phw-mt-2 phw-g-widget-subcontent-black\"\n );\n }\n headingEle.innerHTML = `${ele.displayObject}`;\n\n break;\n case \"text\":\n case \"value\":\n if (uiTypeQuestion == \"ratingQuestion\") {\n let ratingEle = document.createElement(\"div\");\n ratingEle.setAttribute(\n \"class\",\n \"rating-que phw-pt-9 phw-pb-9 phw-pl-7 phw-pr-7 phw-posn-relative\"\n );\n ratingEle.innerHTML = `\n
\n ${ele.displayObject}\n
\n `;\n headingEle.appendChild(ratingEle);\n } else if (uiTypeQuestion == \"sjtQuestion\") {\n headingEle.innerHTML = `\n
\n ${ele.displayObject}\n
`;\n } else {\n headingEle.innerHTML = `\n
\n ${ele.displayObject}\n
`;\n }\n break;\n }\n questionsEle.appendChild(headingEle);\n } else if (ele.type == \"image\") {\n let imageEle = document.createElement(\"figure\");\n imageEle.setAttribute(\"class\", \"phw-img-ctr\");\n let imgtag = document.createElement(\"img\");\n imgtag.setAttribute(\"src\", ele.displayObject);\n imgtag.setAttribute(\"class\", \"phw-width-4 phw-45dc0297-radius\");\n imageEle.appendChild(imgtag);\n questionsEle.appendChild(imageEle);\n } else if (ele.type == \"video\") {\n let imageEle = document.createElement(\"figure\");\n imageEle.setAttribute(\"class\", \"phw-img-ctr\");\n let imgtag = document.createElement(\"video\");\n imgtag.setAttribute(\"src\", ele.displayObject);\n imgtag.setAttribute(\"class\", \"phw-width-4 phw-45dc0297-radius\");\n imageEle.appendChild(imgtag);\n questionsEle.appendChild(imageEle);\n } else if (ele.type == \"audio\") {\n let imageEle = document.createElement(\"figure\");\n imageEle.setAttribute(\"class\", \"phw-img-ctr\");\n let audiotag = document.createElement(\"audio\");\n audiotag.setAttribute(\"controls\", true);\n audiotag.setAttribute(\"class\", \"phw-width-4 phw-mt-4 phw-mb-4\");\n let srcEle = document.createElement(\"source\");\n srcEle.setAttribute(\"src\", ele.displayObject);\n audiotag.appendChild(srcEle);\n imageEle.appendChild(audiotag);\n questionsEle.appendChild(imageEle);\n }\n });\n\n return questionsEle;\n};\n","import checkEachAndEveryChildAndAppendDataPs from \"./appendDataPS\";\nimport updateAttributesFromGivenElement from \"./updateAttributes\";\nimport {createFormFieldWrapper, getLabel, createElementWrapper} from \"./createWrapper\";\nimport mapOptions from \"./updateOptions\";\n\nconst handleRadio = function(data, ele, value = \"\") {\n let div = createFormFieldWrapper(\"form-field\", ele);\n // div.innerHTML = ``;\n\n div.innerHTML = getLabel(\n ele.hasAttribute(\"label\") ? ele.getAttribute(\"label\") : data.name,\n ele\n );\n let options;\n if(ele.hasAttribute(\"options\")){\n options=mapOptions(JSON.parse(ele.getAttribute(\"options\")));\n }else{\n options=data.field.options\n }\n if (data.field.optionsSource == \"directValues\") {\n let fieldset = createElementWrapper(\"fieldset\", {\n type: \"radio-group\",\n class: \"phw-d-flex phw-flex-row phw-gap-1\",\n });\n\n options.forEach((eachOption) => {\n let formControl = createElementWrapper(\"div\", {\n class:\n \"phw-d-flex phw-flex-row-reverse phw-justify-content-end phw-gap-1 phw-width-fit-content\",\n });\n\n let label = createElementWrapper(\"label\", {\n class: \"phw-g-mf-control-label phw-g-p-default-secondary\",\n });\n label.innerText = eachOption.displayName;\n let temp = createElementWrapper(\"input\", {\n class: \"phw-g-mf-input-radio phw-form-control\",\n type: \"radio\",\n value: eachOption.key,\n name: ele.getAttribute(\"form-field-type\")\n });\n if(eachOption.key == value && eachOption.value){\n temp.setAttribute(\"checked\", true)\n }\n\n\n temp.innerText = eachOption.displayName;\n formControl.appendChild(label);\n formControl.appendChild(temp);\n fieldset.appendChild(formControl);\n });\n\n div.appendChild(fieldset);\n\n updateAttributesFromGivenElement(ele, fieldset);\n }\n ele.outerHTML = div.outerHTML;\n checkEachAndEveryChildAndAppendDataPs(ele);\n }\n\n export default handleRadio;","function mapOptions(htmlOptions) {\n return htmlOptions.map(option => {\n return {\n displayName: option.label,\n key: option.value\n };\n });\n}\nexport default mapOptions;","import checkEachAndEveryChildAndAppendDataPs from \"./appendDataPS\";\nimport updateAttributesFromGivenElement from \"./updateAttributes\";\nimport {\n createFormFieldWrapper,\n getLabel,\n createElementWrapper,\n} from \"./createWrapper\";\n\nconst handleParagraph = function (data, ele) {\n let div = createFormFieldWrapper(\"form-field \", ele);\n let temp = createElementWrapper(\"div\", {\n class: \"form-label phw-g-p-default-secondary\",\n });\n temp.innerText = ele.hasAttribute(\"label\")\n ? ele.getAttribute(\"label\")\n : data.field.defaultValue;\n updateAttributesFromGivenElement(ele, temp);\n div.appendChild(temp);\n ele.outerHTML = div.outerHTML;\n checkEachAndEveryChildAndAppendDataPs(ele);\n};\n\nexport default handleParagraph;\n","import checkEachAndEveryChildAndAppendDataPs from \"./appendDataPS\";\nimport updateAttributesFromGivenElement from \"./updateAttributes\";\nimport {createFormFieldWrapper, getLabel, createElementWrapper} from \"./createWrapper\";\nimport mapOptions from \"./updateOptions\";\nconst handleDropdown = function(data, ele, value) {\n let div = createFormFieldWrapper(\"form-field\", ele);\n div.innerHTML = getLabel(data.name, ele);\n let temp = createElementWrapper(\"select\", {\n class: \"phw-g-dropdown-style-1 phw-g-mf-form-select phw-form-control phw-m-0 form-select\",\n });\n div.appendChild(temp);\n let options;\n if(ele.hasAttribute(\"options\")){\n options=mapOptions(JSON.parse(ele.getAttribute(\"options\")));\n }else{\n options=data.field.options\n }\n if (\n data.field &&\n data.field[\"optionsSource\"] == \"directValues\" &&\n data.field[\"options\"]\n ) {\n let optionList = \"\";\n options.forEach((ele) => {\n optionList += ``;\n\n });\n temp.innerHTML = optionList;\n } else if (data.field && data.field[\"optionsSource\"] == \"api\") {\n if (data.field[\"apiConfig\"]) {\n callApi(data.field[\"apiConfig\"]).then((res) => {\n console.log(\"res\", res);\n if (res.status == \"success\" && res.data) {\n let optionList = \"\";\n res.data.forEach((ele) => {\n optionList += ``;\n });\n temp.innerHTML = optionList;\n }\n });\n }\n }\n updateAttributesFromGivenElement(ele, temp);\n ele.outerHTML = div.outerHTML;\n checkEachAndEveryChildAndAppendDataPs(ele);\n }\n\n function callApi(apiConfig) {\n return fetch(apiConfig[\"endpoint\"], {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({ refNum: phAppStore.refNum }),\n }).then((response) => {\n return response.json();\n });\n }\n export default handleDropdown;","import checkEachAndEveryChildAndAppendDataPs from \"./appendDataPS\";\nimport updateAttributesFromGivenElement from \"./updateAttributes\";\nimport {\n createFormFieldWrapper,\n getLabel,\n createElementWrapper,\n} from \"./createWrapper\";\n\nconst handleHeading = function(data, ele) {\n let div = createFormFieldWrapper(\"form-field \", ele);\n let temp = createElementWrapper(\"h3\", { class: \"form-label\" });\n temp.innerText = ele.hasAttribute(\"label\")\n ? ele.getAttribute(\"label\")\n : data.field.defaultValue;\n updateAttributesFromGivenElement(ele, temp);\n div.appendChild(temp);\n ele.outerHTML = div.outerHTML;\n checkEachAndEveryChildAndAppendDataPs(ele);\n }\n\n export default handleHeading;","import checkEachAndEveryChildAndAppendDataPs from \"./appendDataPS\";\nimport updateAttributesFromGivenElement from \"./updateAttributes\";\nimport {\n createFormFieldWrapper,\n getLabel,\n createElementWrapper,\n} from \"./createWrapper\";\n\nconst handleLegend = function (data, ele) {\n let div = createFormFieldWrapper(\"form-field \", ele);\n let temp = createElementWrapper(\"legend\", {\n class: \"form-label phw-g-p-default-secondary\",\n });\n temp.innerText = ele.hasAttribute(\"label\")\n ? ele.getAttribute(\"label\")\n : data.field.defaultValue;\n updateAttributesFromGivenElement(ele, temp);\n div.appendChild(temp);\n ele.outerHTML = div.outerHTML;\n checkEachAndEveryChildAndAppendDataPs(ele);\n};\n\nexport default handleLegend;\n","import checkEachAndEveryChildAndAppendDataPs from \"./appendDataPS\";\nimport updateAttributesFromGivenElement from \"./updateAttributes\";\nimport {\n createFormFieldWrapper,\n getLabel,\n createElementWrapper,\n} from \"./createWrapper\";\nimport { apiService } from \"./../../instanceWrapper\";\nimport config from \"./../../config/config\";\n\nconst handleFileType = function (data, ele) {\n let div = document.createElement(\"div\");\n div.setAttribute(\"class\", \"file-wrapper form-field phw-mb-2\");\n div.setAttribute(\"data-ps\", ele.getAttribute(\"data-ps\"));\n div.setAttribute(\"data-ph-id\", ele.getAttribute(\"data-ph-id\"));\n\n div.innerHTML = getLabel(\n ele.hasAttribute(\"label\") ? ele.getAttribute(\"label\") : data.name,\n ele\n );\n\n let innerDiv = document.createElement(\"div\");\n innerDiv.setAttribute(\"class\", \"phw-posn-relative phw-g-file-inner-wrapper\");\n innerDiv.setAttribute(\"data-ps\", ele.getAttribute(\"data-ps\"));\n innerDiv.setAttribute(\"data-ph-id\", ele.getAttribute(\"data-ph-id\"));\n innerDiv.style.border=\"1px dashed grey\";\n innerDiv.style.borderRadius=\"10px\";\n\n\n let deleteDiv = document.createElement(\"span\");\n deleteDiv.setAttribute(\"class\",\"delete-button\");\n deleteDiv.style.position=\"absolute\";\n deleteDiv.style.top=\"25%\";\n deleteDiv.style.right=\"25px\";\n deleteDiv.style.transform = \"translateY(-50%)\";\n deleteDiv.style.cursor=\"pointer\";\n deleteDiv.style.zIndex=\"999\";\n\n let temp = createElementWrapper(\"input\", {\n class: \"phw-pt-3 phw-pb-3 phw-pl-6 phw-pr-6 \",\n });\n temp.style.opacity = \"0\"; \n\n const errorMessage=document.createElement(\"div\");\n errorMessage.setAttribute(\"class\",\"error-message\");\n errorMessage.style.color= \"red\";\n\n innerDiv.appendChild(deleteDiv);\n innerDiv.appendChild(temp);\n div.appendChild(innerDiv);\n div.appendChild(errorMessage);\n\n handleFile(innerDiv, data);\n\n updateAttributesFromGivenElement(ele, temp, data.field);\n ele.outerHTML = div.outerHTML;\n checkEachAndEveryChildAndAppendDataPs(ele);\n let inputField = document.querySelector(\n \"[form-field='\" + temp.getAttribute(\"form-field\") + \"']\"\n );\n appendListenerOnChange(inputField,data);\n};\nfunction handleFile(parentElemnt, formData) {\n let elem = createFormFieldWrapper(\n \"file-info phw-posn-center phw-width-4 phw-text-c phw-p-1 phw-g-file-text\",\n parentElemnt\n );\n let dropEle = document.createElement(\"div\");\n // dropEle.innerHTML = formData.field.attrs.dropText;\n let uploadIcon=document.createElement(\"img\");\n uploadIcon.setAttribute(\"src\",\"https://cdn-icons-png.flaticon.com/512/126/126494.png\");\n uploadIcon.height=20;\n uploadIcon.width=15;\n uploadIcon.style.margin=\"5px\";\n let selectEle = document.createElement(\"div\");\n selectEle.setAttribute(\"class\", \"brand-color-primary\");\n selectEle.innerHTML = `${formData.field.attrs.dropText} ${formData.field.attrs.selectText}`\n selectEle.style.margin=\"5px\";\n selectEle.style.fontSize=\"15px\";\n selectEle.style.fontWeight=\"bold\";\n let fileFormat =document.createElement(\"span\");\n fileFormat.innerHTML = formData.field.formatAccepted;\n dropEle.appendChild(uploadIcon); \n dropEle.appendChild(selectEle);\n dropEle.appendChild(fileFormat);\n elem.appendChild(dropEle);\n\n\n // if (formData.field.attrs.helpText || ele.getAttribute(\"helpText\")) {\n // let temp = document.createElement(\"div\");\n // temp.innerHTML = ele.getAttribute(\"helpText\") ? ele.getAttribute(\"helpText\") : formData.field.attrs.helpText;\n // elem.appendChild(temp);\n // }\n // if (formData.field.formatAccepted) {\n // let temp = document.createElement(\"div\");\n // temp.innerHTML = formData.field.formatAccepted;\n // elem.appendChild(temp);\n // }\n parentElemnt.appendChild(elem);\n}\n\nlet deleteClicked = false;\n\nfunction appendListenerOnChange(actualEle,formData) {\n console.log(\"Actual Ele\", actualEle);\n const workflowEle = actualEle.closest(\"[workflowid]\");\n if(workflowEle){\n const workflowId = workflowEle.getAttribute(\"workflowid\");\n const workflowInstanceId = workflowEle.getAttribute(\"workflowinstanceid\");\n\n actualEle?.addEventListener(\"change\", (event) => {\n const errorDisplay=document.querySelector(\".error-message\");\n errorDisplay.style.display = \"none\";\n console.log(event);\n let file = event?.target?.files[0];\n const fileStateContainer=event.target.parentElement.querySelector(\".file-info\") //\n const acceptedFileTypes = ['application/pdf', 'application/msword', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'];\n if (file && event.target.parentElement) {\n if(!acceptedFileTypes.includes(file.type)){\n errorDisplay.innerHTML=\"Please upload the correct file as per the provided instructions.\";\n errorDisplay.style.display=\"block\";\n actualEle.value=\"\";\n return;\n }\n if (file.size > 1 * 1024 * 1024) { \n errorDisplay.innerHTML = \"File size must be less than 1 MB.\";\n errorDisplay.style.display = \"block\";\n actualEle.value = \"\"; \n return;\n }\n deleteClicked = false;\n setFileStateVisibility(fileStateContainer,'uploading',file,formData);\n let payload = new FormData();\n // payload.append(\"workflowId\",workflowId);\n // payload.append(\"workflowInstanceId\",workflowInstanceId);\n payload.append(\"file\", file);\n payload.append(\"dk\", config.endpoints.ddoKeyForFileUpload);\n\n apiService\n .makePostCallForFormData(\n config.endpoints.FILE_UPLOAD,\n { \"Content-type\": \"multipart/form-data\" },\n payload\n )\n .then((res) => {\n console.log(\"res\", res);\n if (\n res.status == \"success\" &&\n res.profile &&\n res.profile[\"resumeIdentifier\"]\n ) {\n let data = {\n flowType: \"upload_resume\",\n ignorePsInfo: false,\n profile: {\n resumeIdentifier: res.profile[\"resumeIdentifier\"],\n optIn: true,\n privacyConsent: true,\n },\n };\n apiService.makeDDOCall(config.endpoints.UPLOAD_CV_MERGE_FLOW, {}, data).then(uploadRes=>{\n // apiService.makeDDOCall(config.endpoints.MERGED_PROFILE_V2, {}, {}).then(response=>{\n actualEle.fileDetails = {\n resumeIdentifier: res.profile[\"resumeIdentifier\"]\n // ...response['mergedProfileV2'],\n // userId:response['validateJwtToken']['data']['userId']\n }\n // })\n })\n setFileStateVisibility(fileStateContainer,'uploaded',file,formData); \n }\n else{\n setFileStateVisibility(fileStateContainer,'select',null,formData);\n errorDisplay.innerHTML=\"Please upload the correct file as per the provided instructions.\";\n errorDisplay.style.display = \"block\";\n }\n });\n\n // let temp = event.target.parentElement.querySelector(\".file-details\");\n // if (!temp) {\n // temp = document.createElement(\"div\");\n // temp.setAttribute(\"class\", \"file-details\");\n // actualEle?.parentElement?.append(temp);\n // }\n // temp.innerHTML = file.name;\n }\n });\n }\n}\n\nfunction createUploadingFile(parentElement,file,formData){ \n const uploadingFileDiv=document.createElement(\"div\");\n uploadingFileDiv.setAttribute(\"class\",\"file-state uploading phw-text-c\");\n const fileNameText = document.createElement(\"div\");\n fileNameText.textContent=`Uploading ${file.name}`;\n fileNameText.style.whiteSpace=\"nowrap\";\n fileNameText.style.overflow=\"hidden\";\n fileNameText.style.textOverflow=\"ellipsis\";\n const button = document.createElement(\"img\");\n button.setAttribute(\"class\",\"delete\");\n button.src = \"https://cdn-icons-png.flaticon.com/256/992/992701.png\";\n button.height = 15;\n button.width = 15;\n const loader = document.createElement(\"div\");\n loader.setAttribute(\"class\", \"loader\");\n loader.style.height = \"30px\"; \n loader.style.width = \"30px\"; \n loader.style.display = \"inline-block\"; \n loader.style.border = \"3px solid rgb(179, 141, 170)\";\n loader.style.borderRadius=\"50%\";\n loader.style.borderTop = \"3px solid rgb(112, 43, 97)\"; \n loader.style.animationName = \"simpleLoader\";\n loader.style.animationDuration = \"2s\"; \n loader.style.animationIterationCount = \"infinite\"; \n loader.style.animationTimingFunction = \"linear\"; \n const style=document.createElement(\"style\");\n style.innerHTML=`@keyframes simpleLoader{\n from{transform: rotate(0deg);}\n to{transform: rotate(360deg);}\n }`\n loader.appendChild(style);\n button.addEventListener('click',function(){\n deleteClicked = true;\n button.remove();\n setFileStateVisibility(parentElement,'select',null,formData);\n const fileInput = document.querySelector(\"input[type='file']\");\n if(fileInput){\n fileInput.value=\"\";\n }\n })\n uploadingFileDiv.appendChild(loader);\n uploadingFileDiv.appendChild(fileNameText);\n let addDeleteButton = document.querySelector(\".delete-button\");\n addDeleteButton.appendChild(button);\n parentElement.appendChild(uploadingFileDiv);\n return uploadingFileDiv;\n}\n\nfunction createUploadedFile(parentElement,file,formData){\n const uploadedFileDiv=document.createElement(\"div\");\n uploadedFileDiv.setAttribute(\"class\",\"file-state uploaded phw-text-c\");\n const fileSize = (file.size / (1024 * 1024)).toFixed(2);\n const fileNameElement = document.createElement(\"h6\");\n fileNameElement.innerHTML = `${file.name}`;\n fileNameElement.style.whiteSpace=\"nowrap\";\n fileNameElement.style.overflow=\"hidden\";\n fileNameElement.style.textOverflow=\"ellipsis\";\n fileNameElement.style.marginTop=\"10px\";\n const fileSizeElement = document.createElement(\"span\");\n fileSizeElement.textContent = `${fileSize} MB`;\n const icon=document.createElement(\"img\");\n icon.setAttribute(\"class\",\"icon\");\n icon.src=\"https://cdn-icons-png.flaticon.com/256/254/254496.png\";\n icon.height=40;\n icon.width=45;\n icon.style.position=\"relative\";\n icon.style.left=\"10px\";\n const iconLabel=document.createElement(\"span\");\n const fileExtension = file.name.split('.').pop().toUpperCase();\n iconLabel.innerHTML = fileExtension;\n iconLabel.style.position=\"relative\";\n iconLabel.style.top=\"10px\";\n iconLabel.style.right=\"27px\";\n iconLabel.style.color=\"black\";\n iconLabel.style.fontWeight=\"bold\";\n\n const button = document.createElement(\"img\");\n button.setAttribute(\"class\",\"delete\");\n button.src = \"https://cdn-icons-png.flaticon.com/256/992/992701.png\";\n button.height = 15;\n button.width = 15;\n\n button.addEventListener('click',function(){\n setFileStateVisibility(parentElement,'select',null,formData);\n const fileInput = document.querySelector(\"input[type='file']\");\n if(fileInput){\n fileInput.value=\"\";\n }\n })\n uploadedFileDiv.appendChild(icon);\n uploadedFileDiv.appendChild(iconLabel);\n uploadedFileDiv.appendChild(fileNameElement);\n uploadedFileDiv.appendChild(fileSizeElement);\n let addDeleteButton = document.querySelector(\".delete-button\");\n addDeleteButton.appendChild(button);\n parentElement.appendChild(uploadedFileDiv);\n return uploadedFileDiv;\n}\n\nfunction setFileStateVisibility(container,state,file,formData){\n container.innerHTML='';\n if(deleteClicked){\n handleFile(container,formData);\n return;\n }\n let deleteButton = document.querySelector(\".delete-button\");\n if(deleteButton){\n let deleteImage=deleteButton.querySelector(\"img\");\n if(deleteImage){\n deleteImage.remove();\n }\n }\n switch (state) {\n case 'select':\n handleFile(container,formData);\n break;\n case 'uploading':\n createUploadingFile(container,file,formData);\n break;\n case 'uploaded':\n createUploadedFile(container,file,formData);\n break;\n }\n}\n\nexport default handleFileType;\n","const config = {\n // serverUrl: \"http://qa-realtime-workflow-orchestration-ha.aws.phenom.local/\",\n serverUrl: \"http://localhost:8080/\",\n // serverUrl:\"https://mastercanvasdemo-qa1.phenompro.com/widgets\",\n // serverUrl:'https://fiveguys-stg.phenompro.com/widgets',\n serverUrl: phApp.widgetApiEndpoint,\n endpoints: {\n GET_WORKFLOWS: \"v1/workflow/list\",\n GET_WORKFLOWS:\"getWorkflowList\",\n START_WORKFLOW: \"v1/workflow/start\",\n START_WORKFLOW:\"startWorkflow\",\n NEXT_ACTION: \"v1/workflow/getNextAction\",\n NEXT_ACTION:\"getWorkflowNextAction\",\n PREVIOUS_ACTION : \"v1/workflow/getPreviousAction\",\n PREVIOUS_ACTION:\"getWorkflowPreviousAction\",\n FINISH_FLOW : \"v1/workflow/end\",\n FINISH_FLOW:\"endWorkflow\",\n CURRENT_WORKFLOWS : \"currentWorkflows\",\n CURRENT_ACTION:\"currentAction\",\n MASTER_DATA :\"getFormMasterData\",\n WORKFLOW_TYPE_COMPONENTS : \"getWorkflowTypeComponents\",\n FILE_UPLOAD :\"fileCommonUpload\",\n ddoKeyForFileUpload:\"fileUpload\",\n UPLOAD_CV_MERGE_FLOW : \"uploadCvMergeFlow\",\n MERGED_PROFILE_V2:\"mergedProfileV2\"\n \n }\n}\nexport default config;\n\n","import checkEachAndEveryChildAndAppendDataPs from \"./appendDataPS\";\nimport updateAttributesFromGivenElement from \"./updateAttributes\";\nimport {\n createFormFieldWrapper,\n getLabel,\n createElementWrapper,\n} from \"./createWrapper\";\nimport mapOptions from \"./updateOptions\";\nconst handleCheckbox = function(data, ele, value=\"\") {\n let selectedValues =value.split(\",\");\n let options;\n if(ele.hasAttribute(\"options\")){\n options=mapOptions(JSON.parse(ele.getAttribute(\"options\")));\n }else{\n options=data.field.options\n }\n let div = createFormFieldWrapper(\"form-field\", ele);\n div.innerHTML = ``;\n let fieldset = createElementWrapper(\"fieldset\", {\n type: \"checkbox-group\",\n class: \"phw-d-flex phw-flex-column phw-gap-1\",\n });\n if (data.field.optionsSource == \"directValues\") {\n options.forEach((eachOption) => {\n let formControl = createElementWrapper(\"div\", {\n class:\n \"phw-d-flex phw-flex-row-reverse phw-justify-content-end phw-gap-1 phw-width-fit-content\",\n });\n\n let label = createElementWrapper(\"label\", {\n class: \"phw-g-mf-control-label\",\n });\n label.innerText = eachOption.displayName;\n let temp = createElementWrapper(\"input\", {\n class: \"phw-g-mf-input-check phw-form-control\",\n type: \"checkbox\",\n value: eachOption.key,\n name: ele.getAttribute(\"form-field-type\"),\n });\n if(selectedValues.indexOf(eachOption.key) != -1){\n temp.setAttribute(\"checked\", true)\n }\n\n temp.innerText = eachOption.displayName;\n formControl.appendChild(label);\n formControl.appendChild(temp);\n\n fieldset.appendChild(formControl);\n });\n div.appendChild(fieldset);\n }\n updateAttributesFromGivenElement(ele, fieldset);\n\n ele.outerHTML = div.outerHTML;\n\n checkEachAndEveryChildAndAppendDataPs(ele);\n }\n\n export default handleCheckbox;","import checkEachAndEveryChildAndAppendDataPs from \"./appendDataPS\";\nimport updateAttributesFromGivenElement from \"./updateAttributes\";\nimport {\n createFormFieldWrapper,\n getLabel,\n createElementWrapper,\n} from \"./createWrapper\";\n\nconst handleYesNoQuestion = function (data, ele, value) {\n let div = createFormFieldWrapper(\"form-field\", ele);\n\n let temp = createElementWrapper(\"div\", {\n class: \"phw-form-control phw-d-flex \",\n });\n let question = createElementWrapper(\"div\", { class: \"\" });\n question.innerHTML = data.name;\n\n temp.appendChild(question);\n let options = createElementWrapper(\"fieldset\", {\n class: \"phw-ml-auto phw-gap-2 phw-d-flex\",\n });\n options.setAttribute(\"type\", \"radio-group\");\n\n options.innerHTML = `\n
\n \n
\n
\n \n
`;\n updateAttributesFromGivenElement(ele, options);\n\n temp.appendChild(options);\n div.appendChild(temp);\n\n ele.outerHTML = div.outerHTML;\n checkEachAndEveryChildAndAppendDataPs(ele);\n};\n\nexport default handleYesNoQuestion;\n","import {\n createFormFieldWrapper,\n getLabel,\n createElementWrapper,\n assessmentQuestionWrapper,\n assessmentComponentWrapper,\n} from \"./createWrapper\";\n\nimport assessmentAnswer from \"./assessmentAnswers\";\nimport checkEachAndEveryChildAndAppendDataPs from \"./appendDataPS\";\n\nconst handleSjtQuestion = function (data, ele, value = \"\") {\n let div = assessmentComponentWrapper(data.uiTypeQuestion, ele, data);\n let rightSec = div.querySelector(\".right-side-sec\");\n\n assessmentAnswer(data, div, ele);\n\n ele.outerHTML = div.outerHTML;\n checkEachAndEveryChildAndAppendDataPs(ele);\n};\n\nexport default handleSjtQuestion;\n","import { assessmentQuestionWrapper } from \"./createWrapper\";\nimport updateAttributesFromGivenElement from \"./updateAttributes\";\nimport { createElementWrapper } from \"./createWrapper\";\n\nconst assessmentAnswer = function (question, parentEle, actualEle) {\n let ele = handleNonOptions(question.optionsObj, question, parentEle);\n\n let rightSec = ele.querySelector(\".right-side-sec\");\n if (question.optionsObj.options && rightSec) {\n switch (question.uiTypeOptions) {\n case \"sjtAnswer\":\n {\n let bestAns = question.id + \"best\";\n let worstAns = question.id + \"worst\";\n let optWrapper = createElementWrapper(\"fieldset\", {\n class: \"opt-wrapper phw-d-flex phw-gap-2 phw-flex-column\",\n type:\"sjt-group\"\n });\n question.optionsObj.options.forEach((element) => {\n let temp = createElementWrapper(\"div\", {\n class:\n \" phw-form-control phw-d-flex phw-g-vx-widget-bg-white phw-width-4 phw-p-2\",\n });\n\n temp.innerHTML = `\n
\n ${element.displayObject}\n
\n
\n
\n \n
\n
\n \n
\n
`;\n \n\n optWrapper.appendChild(temp);\n });\n\n updateAttributesFromGivenElement(\n actualEle,\n optWrapper\n );\n\n rightSec.appendChild(optWrapper);\n }\n\n break;\n case \"singleSelectBubble\":\n {\n let classesList = [\n \"form-wh-9\",\n \"form-wh-8\",\n \"form-wh-6\",\n \"form-wh-8\",\n \"form-wh-9\",\n ];\n let optWrapper = createElementWrapper(\"fieldset\", {\n class:\n \"opt-wrapper phw-d-flex phw-gap-2 phw-width-4 phw-justify-content-between phw-pl-8 phw-pr-8 rating-question\",\n type:\"radio-group\",\n subType:\"assessment\"\n });\n question.optionsObj.options.forEach((element, index) => {\n optWrapper.innerHTML += `\n
\n \n \n \n \n \n \n \n
\n \n `;\n });\n\n updateAttributesFromGivenElement(actualEle, optWrapper);\n rightSec.appendChild(optWrapper);\n\n rightSec.innerHTML += `
\n Strongly Disagree\n Strongly Agree\n
`;\n }\n\n break;\n case \"singleSelectButton\":\n {\n let optWrapper = createElementWrapper(\"fieldset\", {\n class: \"opt-wrapper phw-d-flex phw-gap-2 phw-flex-column\",\n type:\"radio-group\",\n subType:\"assessment\"\n });\n question.optionsObj.options.forEach((element) => {\n optWrapper.innerHTML += `\n
\n ${element.displayObject}\n
\n `;\n });\n updateAttributesFromGivenElement(actualEle, optWrapper);\n rightSec.appendChild(optWrapper);\n }\n\n break;\n }\n }\n\n return ele;\n};\n\nfunction handleNonOptions(optionsObj, question, parentEle) {\n let divEle = document.createElement(\"div\");\n divEle.setAttribute(\n \"class\",\n \"action-parent right-side-sec g-col-6 g-col-sm-12 phw-pl-4 phw-pr-4\"\n );\n let ele = assessmentQuestionWrapper(\n optionsObj.nonOptions,\n question.uiTypeOptions,\n \" phw-width-4 phw-m-0-auto phw-width-md-3 phw-m-md-0-auto phw-width-sm-4 phw-m-sm-0-auto phw-pr-8 phw-pt-4 phw-pb-4 phw-p-sm-2\"\n );\n divEle.appendChild(ele);\n parentEle.querySelector(\".phw-container\").appendChild(divEle);\n return parentEle;\n}\n\nexport default assessmentAnswer;\n","import {\n createFormFieldWrapper,\n getLabel,\n createElementWrapper,\n assessmentQuestionWrapper,\n assessmentComponentWrapper,\n} from \"./createWrapper\";\nimport checkEachAndEveryChildAndAppendDataPs from \"./appendDataPS\";\nimport assessmentAnswer from \"./assessmentAnswers\";\n\nconst handleRatingQuestion = function (data, ele, value = \"\") {\n let div = assessmentComponentWrapper(data.uiTypeQuestion, ele, data);\n\n assessmentAnswer(data, div, ele);\n\n\n ele.outerHTML = div.outerHTML;\n checkEachAndEveryChildAndAppendDataPs(ele);\n};\n\nexport default handleRatingQuestion;\n","import {\n createFormFieldWrapper,\n getLabel,\n createElementWrapper,\n assessmentQuestionWrapper,\n assessmentComponentWrapper,\n} from \"./createWrapper\";\nimport checkEachAndEveryChildAndAppendDataPs from \"./appendDataPS\";\nimport assessmentAnswer from \"./assessmentAnswers\";\n\nconst handleListeningQuestion = function (data, ele, value = \"\") {\n let div = assessmentComponentWrapper(data.uiTypeQuestion, ele, data);\n\n assessmentAnswer(data, div, ele);\n\n\n ele.outerHTML = div.outerHTML;\n checkEachAndEveryChildAndAppendDataPs(ele);\n};\n\nexport default handleListeningQuestion;\n","import {\n createFormFieldWrapper,\n getLabel,\n createElementWrapper,\n assessmentQuestionWrapper,\n assessmentComponentWrapper\n } from \"./createWrapper\";\nimport checkEachAndEveryChildAndAppendDataPs from \"./appendDataPS\";\nimport assessmentAnswer from \"./assessmentAnswers\";\n\nconst handleReadingQuestion = function(data, ele, value = \"\"){\n let div = assessmentComponentWrapper(data.uiTypeQuestion,ele, data);\n assessmentAnswer(data, div, ele);\n\n ele.outerHTML = div.outerHTML;\n checkEachAndEveryChildAndAppendDataPs(ele);\n\n\n\n}\n\nexport default handleReadingQuestion;","import {\n createFormFieldWrapper,\n getLabel,\n createElementWrapper,\n assessmentQuestionWrapper,\n assessmentComponentWrapper,\n} from \"./createWrapper\";\nimport checkEachAndEveryChildAndAppendDataPs from \"./appendDataPS\";\nimport assessmentAnswer from \"./assessmentAnswers\";\n\nconst handleGrammarQuestion = function (data, ele, value = \"\") {\n let div = assessmentComponentWrapper(data.uiTypeQuestion, ele, data);\n assessmentAnswer(data, div, ele);\n\n\n ele.outerHTML = div.outerHTML;\n checkEachAndEveryChildAndAppendDataPs(ele);\n};\n\nexport default handleGrammarQuestion;\n","import {\n createFormFieldWrapper,\n getLabel,\n createElementWrapper,\n assessmentQuestionWrapper,\n assessmentComponentWrapper,\n} from \"./createWrapper\";\nimport checkEachAndEveryChildAndAppendDataPs from \"./appendDataPS\";\nimport assessmentAnswer from \"./assessmentAnswers\";\n\nconst handleLandingPageQuestion = function (data, ele, value = \"\") {\n let div = assessmentComponentWrapper(data.uiTypeQuestion, ele, data);\n assessmentAnswer(data, div, ele);\n let rightPart = div.querySelector(\".right-side-sec\");\n rightPart && rightPart.classList.add(\"phw-text-c\");\n rightPart.classList.add(\"phw-stroke-left-dark\");\n rightPart.classList.add(\"phw-stroke-left-sm-none\");\n div.querySelector(\".layout-d-f\").classList.remove(\"phw-g-widget-bg-gray-1\")\n ele.outerHTML = div.outerHTML;\n checkEachAndEveryChildAndAppendDataPs(ele);\n};\n\nexport default handleLandingPageQuestion;\n","import renderElement from \"./renderElement\";\nimport { CONDITIONS, LISTENER_ADDED, FORM_FIELD_SELECTOR } from \"./../../utils/constants\";\nlet dataConfig = {},\n formConfig = {},\n workflowId = \"\",\n formData = {},\n eventConfig = {},\n workflowConfig={};\nconst FIELDS = \"fields\"\n\nconst addEventListeners = function (config, id, data, workflowConf) {\n formConfig = config;\n workflowId = id;\n formData = data;\n dataConfig[workflowId] = {};\n workflowConfig = workflowConf;\n eventConfig =dataConfig[workflowId];\n Object.keys(config[\"config\"]).forEach((eachKey) => {\n config[\"config\"][eachKey][\"conditions\"].forEach((ele) => {\n let formField =\n ele.field.indexOf(\"${\") == -1\n ? document.querySelector(`[form-field=${ele.field}]`)\n : \"\";\n if (!eventConfig[ele.field]) {\n eventConfig[ele.field] = {};\n }\n if (\n formField &&\n (!eventConfig[ele.field] || !eventConfig[ele.field]['fields'] || !eventConfig[ele.field]['fields'].indexOf(eachKey) == -1 || !eventConfig[ele.field][LISTENER_ADDED])\n ) {\n formField.addEventListener(\n \"change\",\n listenToChangeAndRender.bind(this)\n );\n eventConfig[ele.field][LISTENER_ADDED] = true;\n if (eventConfig[ele.field][FIELDS]) {\n eventConfig[ele.field][FIELDS].push(eachKey);\n } else {\n eventConfig[ele.field][FIELDS] = [eachKey];\n }\n }else if(!formField && (!eventConfig[ele.field] || !eventConfig[ele.field]['fields'] || !eventConfig[ele.field]['fields'].indexOf(eachKey) == -1 || !eventConfig[ele.field][LISTENER_ADDED])){\n\n if (eventConfig[ele.field][FIELDS]) {\n eventConfig[ele.field][FIELDS].push(eachKey);\n } else {\n eventConfig[ele.field][FIELDS] = [eachKey];\n }\n } else if (!formField && ele.field.indexOf(\"${\") != -1) {\n let temp = config[\"config\"][eachKey][\"conditions\"].filter(\n (el) => el.field.indexOf(\"${\") == -1\n );\n if (!temp.length) {\n checkAndRenderFromContext(config, eachKey);\n }\n }\n });\n });\n};\nconst checkAndRenderFromContext = function (config, ele) {\n let results = [];\n config[\"config\"][ele][\"conditions\"].some((rule) => {\n let value = getValueFromContext(rule.field);\n results.push(evaluateRule(rule, value));\n if (\n config[\"config\"][ele].logicalOperator == \"OR\" &&\n results.indexOf(true) != -1\n ) {\n return true;\n }\n });\n if (\n config[\"config\"][ele].logicalOperator == \"OR\" &&\n results.indexOf(true) != -1\n ) {\n renderElementAndAddListenersIfRequired(ele);\n } else if (\n config[\"config\"][ele].logicalOperator == \"AND\" &&\n results.indexOf(false) == -1\n ) {\n renderElementAndAddListenersIfRequired(ele);\n }\n};\nconst listenToChangeAndRender = function (event) {\n if (event.target) {\n let formField = event.target.getAttribute(\"form-field\");\n if (eventConfig[formField]) {\n eventConfig[formField][FIELDS].forEach((ele) => {\n let eachEleConfig = formConfig[\"config\"][ele];\n if (eachEleConfig) {\n let results = [];\n eachEleConfig[\"conditions\"].some((rule) => {\n let value;\n if (rule.field.indexOf(\"${\") != -1) {\n value = getValueFromContext(rule.field);\n } else {\n value = document.querySelector(\n `[form-field=${rule.field}]`\n ).value;\n }\n results.push(evaluateRule(rule, value));\n if (\n eachEleConfig.logicalOperator == \"OR\" &&\n results.indexOf(true) != -1\n ) {\n return true;\n }\n });\n if (eachEleConfig.logicalOperator == \"OR\") {\n if (results.indexOf(true) != -1) {\n renderElementAndAddListenersIfRequired(ele);\n } else {\n //handle hide\n revertFormField(ele);\n }\n } else if (eachEleConfig.logicalOperator == \"AND\") {\n if (results.indexOf(false) == -1) {\n renderElementAndAddListenersIfRequired(ele);\n } else {\n //handle hide\n revertFormField(ele);\n }\n }\n }\n });\n }\n }\n};\nconst revertFormField = function (ele) {\n if(eventConfig[ele]){\n delete eventConfig[ele][LISTENER_ADDED];\n\n }\n let temp = document.querySelector(\"[form-field='\" + ele + \"']\");\n if(temp){\n temp.value = \"\";\n }\n temp = temp ? temp.closest(FORM_FIELD_SELECTOR) : \"\";\n\n if (temp) {\n let htmlEle = document.createElement(\"div\");\n htmlEle.setAttribute(\"form-field-type\", ele);\n htmlEle.setAttribute(\"data-ph-id\", temp.getAttribute(\"data-ph-id\"));\n let label = temp.querySelector(\"label\");\n if (label) {\n htmlEle.setAttribute(\"label\", label.innerText);\n }\n let placeholder = temp.querySelector(\"[placeholder]\");\n if (placeholder) {\n htmlEle.setAttribute(\n \"placeholder\",\n placeholder.getAttribute(\"placeholder\")\n );\n }\n temp.outerHTML = htmlEle.outerHTML;\n }\n};\nconst getValueFromContext = function (key) {\n let finalData = \"\";\n if (wf.utils.orchestrator.workFlows[workflowId]) {\n key = key.slice(2);\n key = key.slice(0, -1);\n let keys = key.split(\".\");\n let context =\n wf.utils.orchestrator.workFlows[workflowId][\"workflowContext\"];\n let goingContext = JSON.parse(JSON.stringify(context));\n keys.forEach((ele) => {\n if (goingContext[ele]) {\n goingContext = goingContext[ele];\n } else {\n goingContext = null;\n }\n });\n finalData = goingContext;\n }\n return finalData;\n};\n\nconst renderElementAndAddListenersIfRequired = function (ele) {\n let temp = document.querySelector(`[form-field-type=${ele}]`);\n if (temp && !temp.closest(FORM_FIELD_SELECTOR)) {\n renderElement(formData, ele, temp, document, workflowConfig);\n if (eventConfig[ele] && !eventConfig[ele][LISTENER_ADDED]) {\n let enhanceEle = document.querySelector(`[form-field=${ele}]`);\n enhanceEle.addEventListener(\"change\", listenToChangeAndRender.bind(this));\n }\n }\n};\nconst evaluateRule = function (rule, value) {\n switch (rule.operator) {\n case CONDITIONS.EQUALS:\n if (value == rule.value) {\n return true;\n }\n break;\n case CONDITIONS.NOT_EQUALS:\n if (value != rule.value) {\n return true;\n }\n break;\n }\n return false;\n};\n\nexport default addEventListeners;\n","class GlobalWidgetRenderer{\n constructor(utils){\n this.utils = utils;\n\n }\n renderGlobalWidget(component, ele, workFlowObj){\n\n ele.innerHTML = '';\n\n window.phw.platform.initiateAudienceWidgets();\n }\n\n}\nexport default GlobalWidgetRenderer;","import { showLoader, hideLoader } from \"./loader\"; \nclass ApiService {\n serverUrl = \"\";\n domainUrl =\"\";\n constructor(serverUrl) {\n this.serverUrl = serverUrl;\n this.domainUrl = new URL(location.href).origin;\n }\n addCommonHeaders(data) {\n const { pageId, refNum, locale } = window[\"phApp\"];\n data[\"x-ph-refNum\"] = refNum;\n data[\"Content-Type\"] = \"application/json\";\n }\n addCommonPayload(data) {\n const { pageId, refNum, locale, pageName } = window[\"phApp\"];\n\n data = { ...data, pageId, refNum, locale, pageName };\n return data;\n }\n makePostCall(endpoint, headers, payload) {\n try {\n payload.refNum = window[\"phApp\"].refNum;\n endpoint = endpoint.indexOf(\"https\") != -1 ? endpoint : this.domainUrl+\"/\"+endpoint;\n if(!headers['Content-Type']){\n headers[\"Content-Type\"]= \"application/json\"\n }\n\n return fetch(endpoint, {\n method: \"post\",\n headers,\n body: JSON.stringify(payload)\n }).then((response) => response.json());\n } catch (error) {\n console.error(error);\n return new Promise((resolve, reject) => resolve({}));\n }\n }\n makePostCallForFormData(endpoint, headers, payload) {\n try {\n payload.refNum = window[\"phApp\"].refNum;\n endpoint = endpoint.indexOf(\"https\") != -1 ? endpoint : this.domainUrl+\"/\"+endpoint;\n \n\n return fetch(endpoint, {\n method: \"post\",\n body: payload\n }).then((response) => response.json());\n } catch (error) {\n console.error(error);\n return new Promise((resolve, reject) => resolve({}));\n }\n }\n makeGetCall(endpoint, headers={}){\n try {\n endpoint = endpoint.indexOf(\"https\") != -1 ? endpoint : this.domainUrl+\"/\"+endpoint;\n \n return fetch(endpoint, {\n method: \"get\",\n headers\n }).then((response) => response.json());\n } catch (error) {\n console.error(error);\n return new Promise((resolve, reject) => resolve({}));\n }\n }\n addCommonDdoPayload(data, endpoint) {\n let phAppStore = window[\"phApp\"];\n return data = {\n ...data,\n locale:phAppStore.locale,\n refNum: phAppStore.refNum,\n ddoKey: endpoint,\n userChannel:\"web\",\n jobSeqNo:phAppStore.jobSeqNo,\n deviceType:\"desktop\",\n pageName: phAppStore.pageName\n // jobSeqNo:\"BHFSUSJR072887EXTERNALENUS\"\n // siteType: phAppStore.siteType,\n // pageId: phAppStore.pageId,\n // pageStateData: phAppStore.pageStateData,\n // lang: phAppStore.locale,\n // deviceType: phAppStore.deviceType,\n // country: phAppStore.country,\n // pageName: phAppStore.pageName,\n // jobSeqNo:\"FGFFGKUSSHIFT006265EXTERNALENUS\"\n\n };\n }\n makeDDOCall(ddoKey, headers, apiPayload) {\n try {\n showLoader();\n this.addCommonHeaders(headers);\n var payload = {\n ...apiPayload\n }\n payload = this.addCommonDdoPayload(payload, ddoKey);\n return fetch(this.serverUrl, {\n method: \"post\",\n headers,\n body: JSON.stringify(payload),\n }).then((response) => {\n hideLoader();\n return response.json()\n });\n } catch (error) {\n console.error(error);\n hideLoader();\n return new Promise((resolve, reject) => resolve({}));\n }\n }\n}\nexport default ApiService;\n","export const showLoader = ()=>{\n let ele = document.querySelector(\".workflow-container\");\n if(ele){\n let automationLoader = ele.querySelector(\"[automation-loader]\");\n\n if(automationLoader){\n automationLoader.style.display = \"block\";\n\n }else{\n let loaderDiv = document.createElement(\"div\");\n loaderDiv.setAttribute(\"class\",\"loader-ele\");\n loaderDiv.setAttribute(\"automation-loader\", true);\n let imgEle = document.createElement(\"img\");\n imgEle.setAttribute(\"src\", \"https://pp-cdn.phenompeople.com/CareerConnectResources/st/common/video-platform/js/loader_thumb.gif\");\n loaderDiv.appendChild(imgEle);\n ele.appendChild(loaderDiv);\n\n }\n \n\n\n }\n\n};\n\nexport const hideLoader = ()=>{\n let ele = document.querySelector(\".workflow-container\");\n if(ele){\n let automationLoader = ele.querySelector(\"[automation-loader]\");\n if(automationLoader){\n automationLoader.style.display = \"none\";\n\n }\n }\n\n\n\n}","class CommonUtility{\n CommonUtility(utils){\n this.utils = utils;\n }\n addStyle(src, widgetId, str) {\n const existingStyleElem = document.querySelector('[phw-style-id=\"' + widgetId + ']\"');\n if (!existingStyleElem) {\n let styleElem;\n if (src) {\n styleElem = document.createElement('link');\n styleElem.setAttribute('phw-style-id', widgetId);\n styleElem.setAttribute('rel', 'stylesheet');\n styleElem.setAttribute('href', src);\n } else if (str) {\n styleElem = document.createElement('style');\n styleElem.setAttribute('phw-style-id', widgetId);\n styleElem.innerHTML = str;\n }\n const linkElem = document.querySelector('#customStyles') || document.querySelector('link');\n if (linkElem && styleElem) {\n linkElem.parentElement?.insertBefore(styleElem, linkElem);\n }\n }\n };\n\n getQueryParam(key){\n let queryStr = location.search;\n queryStr = queryStr.substring(1);\n const queryParams = queryStr.split('&');\n for (let i = 0; i < queryParams.length; i++) {\n let qp = queryParams[i];\n qp = qp.split('=');\n if (qp.length > 1 && qp[0] === key) {\n qp.shift();\n const value = qp.join('=');\n return decodeURIComponent(value);\n }\n }\n };\n\n getLocalStorageKey(workflowId){\n return \"workFlow-\"+phApp.refNum+\"*\"+workflowId+\"*\"+phApp.jobSeqNo;\n }\n setLocalStorageData(key, data){\n localStorage.setItem(key, JSON.stringify(data));\n }\n getLocalStorageData(key){\n return JSON.parse(localStorage.getItem(key) || \"{}\");\n\n }\n checkForElementAndPeriod( parentContainer, query, timeGap, noOfTimes, cb){\n let counter = 0;\n\n let interval = setInterval(()=>{\n let found = parentContainer.querySelector(query);\n if(found){\n clearInterval(interval);\n cb(found);\n\n }else if(counter > noOfTimes){\n clearInterval(interval);\n cb(false);\n }\n counter++\n\n }, timeGap) \n }\n}\nexport default CommonUtility;"],"names":["$768a17376248dce8$var$formData","firstName","name","field","uiType","attrs","placeholder","type","validations","required","mandatory","errorMsg","maxLength","length","minLength","key","applyKey","firstName_nl_nl","firstName_da_dk","firstName_es_mx","firstName_de_de","firstName_fr_fr","firstName_cz_cz","firstName_it_it","firstName_lt_lt","lastName","lastName_nl_nl","lastName_da_dk","lastName_es_mx","lastName_de_de","lastName_fr_fr","lastName_cz_cz","lastName_it_it","lastName_lt_lt","email","pattern","regex","email_nl_nl","email_da_dk","email_es_mx","email_de_de","email_fr_fr","email_cz_cz","email_it_it","email_lt_lt","country","optionsSource","options","displayName","defaultValue","zipcode","state","inputType","smsOptin","emailOptin","city","youCheckIfSomeoneElseIsAvailable","resume","dropText","selectText","helpText","accept","formatAccepted","shiftAvailability","stepCount","readOnly","introduceYourself","makeSureYouAreNotSecretAgent","haveYouPreviouslyWorkedForUs","howDidYouHear","phoneExtension","phoneNumber","phoneNumber_nl_nl","phoneNumber_da_dk","phoneNumber_es_mx","phoneNumber_de_de","phoneNumber_fr_fr","phoneNumber_cz_cz","phoneNumber_it_it","phoneNumber_lt_lt","phoneDeviceType","address","areYouLegallyEligible","submitBackgroundCheck","areYou16YearsOlder","doOneOrMoreStatementsApply","doYouHaveDrivingLicense","tooltip","cashierExperience","certifiedOperatingForkLift","termsAndConditions","contactStoreManagerAndDelayMeeting","contactStoreManagerAndLeave","$768a17376248dce8$export$4b37a38524151760","EQUALS","NOT_EQUALS","$768a17376248dce8$export$fcf4b86fafcc3461","$768a17376248dce8$export$a2e8ef7d6476a1ee","$768a17376248dce8$export$b6868fd9a6bed1a8","$768a17376248dce8$export$3397a7ac20068e6e","$768a17376248dce8$export$5752f9f8b1b06296","$768a17376248dce8$export$909cf45f68a8ba96","$768a17376248dce8$export$d319b452b587ffdf","next","en","text","lt","class","action","previous","finish","$1fc0a8a1bc250c7c$export$2e2bcd8739ae039","constructor","utils","attachTriggerListener","workflow","triggerConfig","selector","domAction","checkPageLoaded","setInterval","document","readyState","orchestrator","triggerFlow","clearInterval","ele","querySelector","overlayEle","createElement","style","cssText","position","hasAttribute","setAttribute","getAttribute","removeAttribute","_self","addEventListener","event","stopPropagation","allowOtherActions","dispatchEvent","Event","appendChild","createElementToRender","flowConfig","workflowInstanceId","displayConfig","closest","classList","add","temp","container","contains","insertBefore","workflowId","getElementToUpdateStep","renderWorkflow","handleLayout","executeSteps","screenConfig","innerHTML","phCommon","publishEvent","unsubscribe","htmlString","phApp","screenHtml","html","handleReplaceables","formFields","querySelectorAll","commonUtility","addStyle","css","widgets","widgetInstanceMap","metaInfo","forEach","widgetId","instanceId","trim","Math","random","toFixed","console","log","contentConfig","replaceables","metadata","fields","platform","runDynamicWidgets","addComponentLevelMutationObserver","addActionSection","handleNextAction","count","listenerEvent","config","listeners","eachListener","handleActions","bind","scrollTo","sections","workflowContainer","hasChildren","element","children","handleEventListners","instance_Ids","section","push","checkSections","intervalId","includes","filter","id","links","link","addListenersToComponent","automationConfig","containerConfig","containerBackground","actionSec","actionEle","pageHeadLine","wf","checkForElementAndPeriod","header","innerText","showPrevious","createBtn","showNext","finalAction","backgroundColor","mode","btn","locale","split","pageButtonLabel","undefined","listener","workFlowObj","listenerEle","makeAnApiCall","httpMethod","data","Object","keys","payload","eachKey","value","workflowContext","each","response","fetch","endpoint","method","body","JSON","stringify","json","nextStep","context","isTrusted","getActionPayload","actionContext","target","label","sendActionPayload","noOfWidgets","noOfEventArrived","goForNextStep","cb","widgetInfo","formInfo","formRenderer","getFormData","valid","formData","storageKey","getLocalStorageKey","getLocalStorageData","setLocalStorageData","formPayloadFromContext","handleNonEventSubscribedWidgets","ips","ip","contextConfig","e","keyDownEvent","observer","disconnect","MutationObserver","mutationsList","find","els","el","window","getEventListeners","listListeners","exist","eachitem","indexOf","sel","observe","attributes","childList","characterData","subtree","handleScreenConfig","screenGroup","checkIfAllTheWidgetsAreRendered","remaining","rem","strings","match","replaceString","replaceable","replaceAll","global","jobSeqNo","profile","$369f4591fbb8f6dc$export$2e2bcd8739ae039","workFlows","apiService","makeDDOCall","endpoints","START_WORKFLOW","status","runWorkflow","removeTriggerConfig","group","applyConfigLoaded","loadTemplate","assLink","setTimeout","iframe","onload","contentWindow","workflowEngine","screenRenderer","renderForm","interval","PhwHvhAssessmentDefaultDefaultV1","assessmentMounted","assessmentQuestions","getDDOByAction","ddo","NEXT_ACTION","PREVIOUS_ACTION","CURRENT_ACTION","responseKey","instanceActivityId","workflowEle","FINISH_FLOW","goToNextAction","applyConfig","counter","containerRender","rightSec","Date","now","prepend","formField","parentElement","removeChild","parser","DOMParser","decodedString","jsTemplate","replace","parsedDocument","parseFromString","head","childNodes","tagName","tem","checkAndAddActions","detail","formActionConfig","addMutationForStepChangeAndCallAction","actionListener","targetNode","timeOut","mutationList","mutation","attributeName","clearTimeout","steps","index","findIndex","currentStep","goToAction","updatedHtml","firstChild","tempEle","childs","scrollIntoView","behavior","block","click","$453b7cb6832e56b0$export$2e2bcd8739ae039","fetchWorkflows","GET_WORKFLOWS","pageId","flow","currentPageWorkflows","currentWorkflow","CURRENT_WORKFLOWS","location","href","pageNameList","pageNames","join","$10a67bcf2542ccc9$var$checkEachAndEveryChildAndAppendDataPs","dataPs","childEle","childDataPs","toLowerCase","settings","cls","$33419c22cd19a901$export$2e2bcd8739ae039","getEle","setEle","fieldData","i","nodeName","nodeValue","$e2a6a9071c0c37d8$export$bb7b95f38ad9434a","className","$e2a6a9071c0c37d8$export$236350842f3cd9bc","classessToBeAdded","$e2a6a9071c0c37d8$export$133b428007988271","properties","attr","$e2a6a9071c0c37d8$export$237edc14ad5c3c2d","div","questionPart","$e2a6a9071c0c37d8$export$f7f885e4c108e94b","questionObj","uiTypeQuestion","outerHTML","clsName","questionsEle","headingEle","displayObject","ratingEle","imageEle","imgtag","audiotag","srcEle","$72f1f4d0682f49b3$export$2e2bcd8739ae039","$477f01b9cdbbc1e1$export$2e2bcd8739ae039","htmlOptions","map","option","$1334abf64e397dbf$export$2e2bcd8739ae039","parse","fieldset","eachOption","formControl","$a3ffb71a398bb81c$export$2e2bcd8739ae039","$c258535c2d3f2530$export$2e2bcd8739ae039","optionList","$c258535c2d3f2530$var$callApi","apiConfig","headers","refNum","phAppStore","then","res","$732536be483d2e37$export$2e2bcd8739ae039","$18373e3cc41d00c2$export$2e2bcd8739ae039","$fc3b09d64f16b202$var$config","serverUrl","widgetApiEndpoint","MASTER_DATA","WORKFLOW_TYPE_COMPONENTS","FILE_UPLOAD","ddoKeyForFileUpload","UPLOAD_CV_MERGE_FLOW","MERGED_PROFILE_V2","$da12833de8675cef$var$handleFile","parentElemnt","elem","dropEle","uploadIcon","height","width","margin","selectEle","fontSize","fontWeight","fileFormat","$da12833de8675cef$var$deleteClicked","$da12833de8675cef$var$setFileStateVisibility","file","deleteButton","deleteImage","remove","$da12833de8675cef$var$createUploadingFile","uploadingFileDiv","fileNameText","textContent","whiteSpace","overflow","textOverflow","button","src","loader","display","border","borderRadius","borderTop","animationName","animationDuration","animationIterationCount","animationTimingFunction","fileInput","addDeleteButton","$da12833de8675cef$var$createUploadedFile","uploadedFileDiv","fileSize","size","fileNameElement","marginTop","fileSizeElement","icon","left","iconLabel","pop","toUpperCase","top","right","color","$da12833de8675cef$export$2e2bcd8739ae039","innerDiv","deleteDiv","transform","cursor","zIndex","opacity","errorMessage","$da12833de8675cef$var$appendListenerOnChange","actualEle","errorDisplay","files","fileStateContainer","acceptedFileTypes","FormData","append","makePostCallForFormData","flowType","ignorePsInfo","resumeIdentifier","optIn","privacyConsent","uploadRes","fileDetails","$b23aa5bf5d95681f$export$2e2bcd8739ae039","selectedValues","$4c1988777a5ecde6$export$2e2bcd8739ae039","question","$2235723f8b5d119b$export$2e2bcd8739ae039","parentEle","optionsObj","divEle","nonOptions","uiTypeOptions","bestAns","worstAns","optWrapper","classesList","subType","$1f1e6a5ce259fae3$export$2e2bcd8739ae039","$4b273e49ead3bf12$export$2e2bcd8739ae039","$40a9d1ce0b983786$export$2e2bcd8739ae039","$8d95291f53563010$export$2e2bcd8739ae039","$3bfe324abe8ace80$export$2e2bcd8739ae039","$e38a028e05642325$export$2e2bcd8739ae039","rightPart","$d7de30ea7a54ebc7$export$2e2bcd8739ae039","formKey","workflowConfig","$bd6c7df86f0926a8$var$dataConfig","$bd6c7df86f0926a8$var$formConfig","$bd6c7df86f0926a8$var$workflowId","$bd6c7df86f0926a8$var$formData","$bd6c7df86f0926a8$var$eventConfig","$bd6c7df86f0926a8$var$workflowConfig","$bd6c7df86f0926a8$var$FIELDS","$bd6c7df86f0926a8$var$checkAndRenderFromContext","results","some","rule","$bd6c7df86f0926a8$var$getValueFromContext","$bd6c7df86f0926a8$var$evaluateRule","logicalOperator","$bd6c7df86f0926a8$var$renderElementAndAddListenersIfRequired","$bd6c7df86f0926a8$var$listenToChangeAndRender","eachEleConfig","$bd6c7df86f0926a8$var$revertFormField","htmlEle","finalData","slice","goingContext","enhanceEle","operator","$bd6c7df86f0926a8$export$2e2bcd8739ae039","workflowConf","$259c68c6df77d8bf$export$2e2bcd8739ae039","applyFormData","componentsData","formConfig","formMasterData","isAutomationScreen","screen","formFieldWidget","eles","eachEle","defaultVisibility","hasOwnProperty","isPrevious","validateForm","getFormDataWithoutValidaton","selectedIndex","selectedVal","optionId","substring","bestKey","worstKey","bestValue","worstValue","bestOptionId","worstOptionId","defaultFormField","errMsg","v","reg","RegExp","test","err","validateFormFromApply","callApplyValidationApi","makeGetCall","schema","eachProperty","applyAutomationMap","title","description","eachFormKey","makePostCall","errMap","eachErr","prop","substr","$cd7d4328f4e850ed$export$2e2bcd8739ae039","renderGlobalWidget","component","phw","initiateAudienceWidgets","$ef3c91ccfd3cdc77$export$56525cbb1fcd885c","automationLoader","loaderDiv","imgEle","$ef3c91ccfd3cdc77$export$5cee2c2772922923","$b2dbd3a0df919299$export$2e2bcd8739ae039","domainUrl","URL","origin","addCommonHeaders","addCommonPayload","pageName","error","Promise","resolve","reject","addCommonDdoPayload","ddoKey","userChannel","deviceType","apiPayload","$332affa4e14fe081$export$2e2bcd8739ae039","CommonUtility","str","styleElem","linkElem","getQueryParam","queryStr","search","queryParams","qp","shift","decodeURIComponent","localStorage","setItem","getItem","parentContainer","query","timeGap","noOfTimes","found","$fa7a88af7a53f5b1$export$215e848d838f5078","$fa7a88af7a53f5b1$export$230244be6a97414d","$fa7a88af7a53f5b1$export$480fedc95b649840","$fa7a88af7a53f5b1$export$bccc066f55715ea3","$fa7a88af7a53f5b1$export$f5cb5298679ec134","$fa7a88af7a53f5b1$export$5471a37c3371633","$fa7a88af7a53f5b1$export$d0204b1ddc8ee140","$fa7a88af7a53f5b1$export$276fd9ecbabff3d8","resolutionManager","globalWidgetRenderer","workflowComponentsByType","hvhflow","frameElement","tempInterval"],"version":3,"file":"main.js.map"}