{"version":3,"file":"static/js/3982.d357f98c.chunk.js","mappings":"4PAEe,SAASA,EAAaC,EAAiBC,EAAeC,EAAaC,EAAgBC,GAChG,IAAAC,GAAkCC,EAAAA,EAAAA,WAAS,GAAMC,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAA1CI,EAASF,EAAA,GAAEG,EAAYH,EAAA,IAE9BI,EAAAA,EAAAA,YAAU,WACJX,QAAmCY,IAAhBV,GACrBC,EAAeH,EAEnB,GAAG,KAEHW,EAAAA,EAAAA,YAAU,WACR,GAAIX,EAAiB,CACnB,IAAMa,EAAeZ,EAAcD,GACnCI,EAASS,EACX,CACF,GAAG,IAEH,IAgCMC,EAAW,SAACC,GAChB,IAAMC,EAAWf,EAAcc,GAE/B,OADAX,EAASY,GACFA,CACT,EAeA,MAAO,CACLD,MAAOb,EACPO,UAAAA,EACAQ,YAtDkB,WAClBP,GAAa,GACbN,EAAS,GACX,EAoDEc,WAlDiB,SAACC,GAClBT,GAAa,GACb,IAAMK,EAAQI,EAAEC,OAAOL,MACvBD,EAASC,EACX,EA+CEM,aAnCmB,SAACF,GACpB,IAAMG,EAAWH,EAAEC,OAAOL,MAC1BZ,EAAemB,EACjB,EAiCEC,iBAnBuB,SAACJ,GACxB,IAAMG,EAAWH,EAAEC,OAAOL,MAC1BZ,EAAemB,GACfZ,GAAa,GACbI,EAASQ,EACX,EAeEE,sBAb4B,SAACT,GAC7BZ,EAAeY,GACfL,GAAa,GACbI,EAASC,EACX,EAUEU,mBA3CyB,SAACC,GAC1BhB,GAAa,GACbI,EAASY,EACX,EAyCEC,gBAjDsB,SAACC,GACvBlB,GAAa,GACbI,EAASc,EACX,EA+CEC,iBAnCuB,SAACD,GACxBzB,EAAeyB,GACflB,GAAa,GACbI,EAASc,EACX,EAiCF,C,eC/Ee,SAASE,EAAcC,GAAmC,IAAhCC,EAAED,EAAFC,GAAIC,EAAKF,EAALE,MAAKC,EAAAH,EAAEI,SAAAA,OAAQ,IAAAD,GAAQA,EAClE,OACEE,EAAAA,EAAAA,KAAA,SAAOC,QAASL,EAAIM,UAAU,aAAYC,UACxCC,EAAAA,EAAAA,MAAA,QAAMF,UAAU,mBAAkBC,SAAA,CAC/BN,EACAE,IAAYC,EAAAA,EAAAA,KAAA,QAAM,cAAY,OAAMG,SAAC,UAI9C,CCTe,SAASE,EAAcV,GAAqC,IAADW,EAAAX,EAAjCY,KAAAA,OAAI,IAAAD,EAAG,GAAEA,EAAEE,EAAKb,EAALa,MAAOC,EAAWd,EAAXc,YACzD,OACET,EAAAA,EAAAA,KAAA,QACE,cAAY,OACZE,UAAS,gBAAAQ,OAAkBF,GAASC,EAAc,qBAAuB,IACzE,qBAAoBF,EACpB,yBAAuB,GACvBX,GAAE,GAAAc,OAAKH,EAAI,SAAQJ,SAElBK,GAASC,GAGhB,C,0BCkDA,EA5DmB,SAAHd,GAA6D,IAAvDgB,EAAWhB,EAAXgB,YAAaf,EAAED,EAAFC,GAAIgB,EAAejB,EAAfiB,gBAAiBC,EAAalB,EAAbkB,cACtD5C,GAAgDC,EAAAA,EAAAA,WAAS,GAAMC,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAAxD6C,EAAgB3C,EAAA,GAAE4C,EAAmB5C,EAAA,GAiC5C,OAdAI,EAAAA,EAAAA,YAAU,WACR,GAAKuC,EAAL,CAEA,IAAME,EAAe,WACnBD,GAAoB,EACtB,EAIA,OAFAE,OAAOC,iBAAiB,SAAUF,EAAc,CAAEG,SAAS,IAEpD,WACLF,OAAOG,oBAAoB,SAAUJ,EACvC,CAV6B,CAW/B,GAAG,CAACF,IAECH,GAGHX,EAAAA,EAAAA,KAACqB,EAAAA,EAAmB,CAACC,eAAgB,SAACvC,GAAC,OAAKgC,EAAoBhC,EAAE,EAACoB,UACjEC,EAAAA,EAAAA,MAAA,OAAKF,UAAU,2BAA0BC,SAAA,EACvCH,EAAAA,EAAAA,KAAA,UAAQ,aAAYa,EAAeX,UAAU,mBAAmBqB,QAAS,SAACxC,GAAC,OApCxD,SAACA,GACpBA,GAAGA,EAAEyC,iBAETT,GAAqBD,EACvB,CAgCsFW,CAAiB1C,EAAE,EAAE,gBAAe+B,EAAiBX,UACnIH,EAAAA,EAAAA,KAAC0B,EAAAA,EAAG,CAACC,SAAS,YAAYC,cAAc,MAEzCd,IACCV,EAAAA,EAAAA,MAAA,OAAKF,UAAS,4BAAAQ,OAA8BI,EAAmB,SAAW,IAAKX,SAAA,EAC7EH,EAAAA,EAAAA,KAAA,KAAAG,SAAIQ,KACJX,EAAAA,EAAAA,KAAA,UACE,aAAYY,EACZV,UAAU,yBACV2B,OAAQ,SAAC9C,GAAC,OAvCH,SAACA,GACdA,GAAGA,EAAEyC,iBACTT,GAAoB,EACtB,CAoC2BjC,CAAWC,EAAE,EAC5BwC,QAAS,SAACxC,GAAC,OAnCY,SAACA,GAClCA,EAAEyC,iBACFT,GAAoB,GACpBe,SAASC,eAAenC,GAAIoC,OAC9B,CA+B4BC,CAA2BlD,EAAE,EAACoB,UAE9CH,EAAAA,EAAAA,KAAC0B,EAAAA,EAAG,CAACC,SAAS,oBAjBD,IAwB3B,ECxDe,SAASO,EAAkBvC,GAiBtC,IAhBFY,EAAIZ,EAAJY,KACAX,EAAED,EAAFC,GAAEuC,EAAAxC,EACFyC,QAAAA,OAAO,IAAAD,EAAG,GAAEA,EACZtC,EAAKF,EAALE,MACAc,EAAWhB,EAAXgB,YACAZ,EAAQJ,EAARI,SACAlC,EAAa8B,EAAb9B,cACAC,EAAW6B,EAAX7B,YACAuE,EAAa1C,EAAb0C,cACAtE,EAAc4B,EAAd5B,eACAyC,EAAKb,EAALa,MACAxC,EAAQ2B,EAAR3B,SAAQsE,EAAA3C,EACR4C,kBAAAA,OAAiB,IAAAD,GAAQA,EAAAE,EAAA7C,EACzB8C,eAAAA,OAAc,IAAAD,EAAG,GAAEA,EACnB5B,EAAejB,EAAfiB,gBACAC,EAAalB,EAAbkB,cAEM6B,EAAiBN,EAAQO,QAAO,SAACC,GAAM,OAAKA,EAAOC,OAAO,IAEhEC,EAA8DnF,EAD7C+E,EAAeK,OAAS,EAAIL,EAAeM,KAAI,SAACJ,GAAM,OAAKA,EAAOjE,KAAK,SAAIH,EACPX,EAAeC,EAAaC,EAAgBC,GAAzHW,EAAKmE,EAALnE,MAAOE,EAAWiE,EAAXjE,YAAaR,EAASyE,EAATzE,UAAWgB,EAAkByD,EAAlBzD,mBAEjC4D,GAAaC,EAAAA,EAAAA,QAAO,MASpBC,EAAuB,SAACpE,GAC5B,IAAIG,EAEFA,OADWV,GAATG,EACS,CAACI,EAAEC,OAAOL,OAEVI,EAAEC,OAAO6D,QAAO,GAAAnC,QAAA0C,EAAAA,EAAAA,GAAOzE,GAAK,CAAEI,EAAEC,OAAOL,QAASA,EAAMgE,QAAO,SAACU,GAAG,OAAKA,IAAQtE,EAAEC,OAAOL,KAAK,IAEzGZ,EAAemB,EACjB,EAEA,OACEkB,EAAAA,EAAAA,MAAA,OACEF,UAAS,oEAAAQ,OAAsE6B,EAAoB,aAAe,GAAE,KAAA7B,OAAI2B,EAAa,KAAA3B,OAAIX,EAAW,cAAgB,GAAE,KAAAW,OAAIrC,EAAY,YAAc,GAAE,KAAAqC,OAAIF,EAAQ,aAAe,IACjO,sBAAqBD,EACrB,cAAY,SACZ+C,MAAO3C,EACP,aAAYA,EAAYR,SAAA,CAEvBN,IACCO,EAAAA,EAAAA,MAAA,OAAKF,UAAU,cAAaC,SAAA,EAC1BH,EAAAA,EAAAA,KAACN,EAAc,CAACE,GAAIA,EAAIC,MAAOA,EAAOE,SAAUA,KAChDC,EAAAA,EAAAA,KAACuD,EAAU,CAAC5C,YAAaA,EAAaf,GAAIA,EAAIgB,gBAAiBA,EAAiBC,cAAeA,QAGnGb,EAAAA,EAAAA,KAAA,OAAKE,UAAU,iBAAiBsD,IAAKP,EAAYQ,YA/B7B,SAAC1E,GAEnBkE,EAAWS,SAAWT,EAAWS,QAAQC,SAAS5E,EAAEC,SACtDD,EAAEyC,gBAEN,EA0BmF5B,GAAIA,EAAGO,SACnFiC,EAAQY,KAAI,SAACJ,EAAQgB,GAAK,OACzBxD,EAAAA,EAAAA,MAAA,OAAiBF,UAAU,yBAAwBC,SAAA,EACjDC,EAAAA,EAAAA,MAAA,SAAOF,UAAU,aAAYC,SAAA,EAC3BH,EAAAA,EAAAA,KAAA,SACE6D,KAAK,WACLtD,KAAMA,EACN5B,MAAOiE,EAAOjE,MACdmF,eAAgBlB,EAAOC,QACvBkB,SAAUZ,EACVa,QAASnF,EACTgD,OAAQ,kBAAMxC,EAAmBV,EAAM,EACvCuB,UAAU,uBACV,mBAAiB,GACjB,gBAAeH,EACfA,SAAUA,IAEXwC,GACCnC,EAAAA,EAAAA,MAAA,OAAKF,UAAU,oBAAmBC,SAAA,EAChCH,EAAAA,EAAAA,KAAA,QAAME,UAAU,mBAAkBC,SAAEyC,EAAO/C,QAC1C4C,EAAiB,IAAKzC,EAAAA,EAAAA,KAAA,QAAME,UAAU,2CAA0CC,SAAEyC,EAAOjE,YAG5FqB,EAAAA,EAAAA,KAAA,QAAME,UAAU,mBAAkBC,SAAEyC,EAAO/C,WAG9C4C,GACCzC,EAAAA,EAAAA,KAAA,OAAKE,UAAU,kBAAiBC,UAC9BH,EAAAA,EAAAA,KAAA,QAAME,UAAU,qDAAqD+D,wBAAyB,CAAEC,OAAQzB,OAG1G,KA7BMmB,EA+BJ,OAGV5D,EAAAA,EAAAA,KAACK,EAAc,CAACE,KAAMA,EAAMC,MAAOA,MAGzC,CC9Fe,SAAS2D,EAAexE,GAmBnC,IAlBFY,EAAIZ,EAAJY,KACAX,EAAED,EAAFC,GACAC,EAAKF,EAALE,MACAc,EAAWhB,EAAXgB,YACAZ,EAAQJ,EAARI,SACAqE,EAASzE,EAATyE,UACAC,EAAa1E,EAAb0E,cACAxG,EAAa8B,EAAb9B,cACAC,EAAW6B,EAAX7B,YACAuE,EAAa1C,EAAb0C,cACAtE,EAAc4B,EAAd5B,eACAyC,EAAKb,EAALa,MACAxC,EAAQ2B,EAAR3B,SACAsG,EAAqB3E,EAArB2E,sBACAC,EAAoB5E,EAApB4E,qBACAC,EAA2B7E,EAA3B6E,4BACA5D,EAAejB,EAAfiB,gBACAC,EAAalB,EAAbkB,cAEAiC,EAAsEnF,EACpEG,EACAD,EACAC,EACAC,EACAC,GALMa,EAAWiE,EAAXjE,YAAaR,EAASyE,EAATzE,UAAWkB,EAAeuD,EAAfvD,gBAAiBE,EAAgBqD,EAAhBrD,iBAQjDxB,GAAoCC,EAAAA,EAAAA,WAAS,GAAMC,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAA5CwG,EAAUtG,EAAA,GAAEuG,EAAavG,EAAA,GAwC1BwG,EAAmB,WACvB5G,EAAe,MACfwB,EAAgB,KAClB,EAEA,OACEa,EAAAA,EAAAA,MAAA,OACEF,UAAS,iDAAAQ,OAAmD2B,EAAa,KAAA3B,OAAIrC,EAAY,YAAc,GAAE,KAAAqC,OAAIF,EAAQ,aAAe,IACpI,sBAAqBD,EACrB,cAAY,aACZqE,YAhDoB,SAAC7F,GACvBA,EAAEyC,iBACFzC,EAAE8F,kBACFH,GAAc,EAChB,EA6CII,WA3CmB,SAAC/F,GACtBA,EAAEyC,iBACFzC,EAAE8F,kBACFH,GAAc,EAChB,EAwCIK,YAtCoB,SAAChG,GACvBA,EAAEyC,iBACFzC,EAAE8F,kBACE9F,EAAEC,SAAWD,EAAEiG,eACjBN,GAAc,EAElB,EAiCIO,OA/Be,SAAClG,GAClBA,EAAEyC,iBACFzC,EAAE8F,kBACFH,GAAc,GAEd,IAAMlF,EAAQT,EAAEmG,aAAa1F,MAE7B,GAAIA,GAASA,EAAMuD,OAAQ,CACzB,IAAKsB,GAAiB7E,EAAMuD,OAAS,EAEnC,YADA/E,EAASwG,GAA+B,gDAI1CxG,EAAS,MACTyB,EAAiBD,EACnB,CACF,EAeuBW,SAAA,EAEnBC,EAAAA,EAAAA,MAAA,OAAKF,UAAU,cAAaC,SAAA,EAC1BH,EAAAA,EAAAA,KAACN,EAAc,CAACE,GAAIA,EAAIC,MAAOA,EAAOE,SAAUA,KAChDC,EAAAA,EAAAA,KAACuD,EAAU,CAAC5C,YAAaA,EAAaf,GAAIA,EAAIgB,gBAAiBA,EAAiBC,cAAeA,OAG/F/C,GA6BAsC,EAAAA,EAAAA,MAAA,OAAKF,UAAU,wBAAuBC,SAAA,EACpCH,EAAAA,EAAAA,KAAA,QAAME,UAAU,yBAAwBC,UACtCH,EAAAA,EAAAA,KAAA,OAAKE,UAAU,+BAA8BC,UAC3CH,EAAAA,EAAAA,KAAA,OAAKmF,UAAU,6CAGnBnF,EAAAA,EAAAA,KAAA,QAAME,UAAU,yBAAwBC,SACrCrC,GACCsH,MAAMC,KAAKvH,GACRkF,KAAI,SAACsC,GAAI,OAAKA,EAAK/E,IAAI,IACvBgF,KAAK,SAEZvF,EAAAA,EAAAA,KAAA,UACEwF,SAAU,EACV3B,KAAK,SACL3D,UAAU,sBACVqB,QAASoD,EACTc,UAAW,SAAC1G,GACI,UAAVA,EAAE2G,KAA6B,MAAV3G,EAAE2G,MACzB3G,EAAEyC,iBACFmD,IAEJ,EACA,aAAW,uBACXX,QAASnF,EACTgD,OAAQ,kBAAMtC,EAAgBzB,EAAY,EAACqC,UAE3CH,EAAAA,EAAAA,KAAA,OAAKE,UAAU,8BAA6BC,UAC1CH,EAAAA,EAAAA,KAAA,OAAKmF,UAAU,+CAxDrB/E,EAAAA,EAAAA,MAAA,OAAKF,UAAS,4BAAAQ,OAA8B+D,EAAa,cAAgB,IAAKtE,SAAA,EAC5EC,EAAAA,EAAAA,MAAA,SAAOH,QAASL,EAAIM,UAAU,qBAAoBC,SAAA,EAChDH,EAAAA,EAAAA,KAAA,QAAME,UAAU,oBAAmBC,SAAEmE,KACrCtE,EAAAA,EAAAA,KAAA,QAAME,UAAU,oBAAmBC,UACjCH,EAAAA,EAAAA,KAAA,OAAKE,UAAU,8BAA6BC,UAC1CH,EAAAA,EAAAA,KAAA,OAAKmF,UAAU,+CAIrBnF,EAAAA,EAAAA,KAAA,SACEE,UAAU,6BACV2D,KAAK,OACLtD,KAAMA,EACNX,GAAIA,EACJmE,SAAU,SAAChF,GAAC,OAAKU,EAAiBV,EAAEC,OAAOQ,MAAM,EACjDmG,OAAQvB,EACRwB,SAAUvB,EACV,mBAAiB,GACjB,sBAAA3D,OAAqBH,EAAI,SACzBR,SAAUA,EACV,gBAAeA,EACfuD,MAAO3C,EACP,aAAYA,GAAwC,MAAzB2D,EAAgC,IAAMA,EAAwB,IACzFN,QAASnF,EACTgD,OAAQ,SAAC9C,GAAC,OAAKQ,EAAgBR,EAAEC,OAAOQ,MAAM,QAsCpDQ,EAAAA,EAAAA,KAACK,EAAc,CAACE,KAAMA,EAAMC,MAAOA,KACnCR,EAAAA,EAAAA,KAAA,OAAKE,UAAU,yBAAwBC,SAAEoE,MAG/C,CC/Je,SAASsB,EAAUlG,GAA8B,IAA3BmG,EAAanG,EAAbmG,cAAeC,EAAOpG,EAAPoG,QAClD,OACE/F,EAAAA,EAAAA,KAAA,OAAKE,UAAU,gBAAeC,UAC5BH,EAAAA,EAAAA,KAAA,OAAKE,UAAU,eAAcC,UAC3BH,EAAAA,EAAAA,KAAA,KAAGE,UAAS,yBAAAQ,OAA2BoF,GAAiB,+BAAyB3F,SAC9E4F,OAKX,CCZe,SAASC,EAAWrG,GAAsD,IAAnDY,EAAIZ,EAAJY,KAAMX,EAAED,EAAFC,GAAIhC,EAAe+B,EAAf/B,gBAAeqI,EAAAtG,EAAEuG,YAAAA,OAAW,IAAAD,GAAQA,EAClF,OACEjG,EAAAA,EAAAA,KAAA,SACEO,KAAMA,EACNX,GAAIA,EACJiE,KAAK,SACLlF,MAAOf,EACPsC,UAAS,4BAAAQ,OAA8BwF,EAAc,uBAAyB,IAC9E,cAAY,SACZ,qBAAoB3F,GAG1B,CCTe,SAAS4F,EAAYxG,GAA6D,IAA1DyG,EAAQzG,EAARyG,SAAUC,EAAe1G,EAAf0G,gBAAiBC,EAAQ3G,EAAR2G,SAAUC,EAAgB5G,EAAhB4G,iBAC1E,OACEnG,EAAAA,EAAAA,MAAAoG,EAAAA,SAAA,CAAArG,SAAA,EACEH,EAAAA,EAAAA,KAACgG,EAAW,CAACzF,KAAK,aAAa3C,gBAAiBwI,KAChDpG,EAAAA,EAAAA,KAACgG,EAAW,CAACzF,KAAK,mBAAmB3C,gBAAiByI,KACtDrG,EAAAA,EAAAA,KAACgG,EAAW,CAACzF,KAAK,iBAAiB3C,gBAAiB0I,KACpDtG,EAAAA,EAAAA,KAACgG,EAAW,CAACzF,KAAK,qBAAqB3C,gBAAiB2I,MAG9D,CCNe,SAASE,EAAW9G,GAiB/B,IAhBFY,EAAIZ,EAAJY,KACAX,EAAED,EAAFC,GACAC,EAAKF,EAALE,MACAY,EAAWd,EAAXc,YACAV,EAAQJ,EAARI,SACAY,EAAWhB,EAAXgB,YAAW+F,EAAA/G,EACX/B,gBAAAA,OAAe,IAAA8I,EAAG,GAAEA,EAAAC,EAAAhH,EACpBiH,WAAAA,OAAU,IAAAD,EAAG,GAAEA,EACf9I,EAAa8B,EAAb9B,cACAC,EAAW6B,EAAX7B,YACAC,EAAc4B,EAAd5B,eACAC,EAAQ2B,EAAR3B,SACAwC,EAAKb,EAALa,MACA6B,EAAa1C,EAAb0C,cACAzB,EAAejB,EAAfiB,gBACAC,EAAalB,EAAbkB,cAEAiC,EAAoEnF,EAClEC,EACAC,EACAC,EACAC,EACAC,GALMW,EAAKmE,EAALnE,MAAON,EAASyE,EAATzE,UAAWQ,EAAWiE,EAAXjE,YAAaC,EAAUgE,EAAVhE,WAAYG,EAAY6D,EAAZ7D,aAQnD,OACEmB,EAAAA,EAAAA,MAAA,OACEF,UAAS,+EAAAQ,OAAiF2B,EAAa,KAAA3B,OAAIX,EAAW,eAAiB,GAAE,aAAAW,OACvIrC,EAAY,YAAc,GAAE,KAAAqC,OAAIrC,GAAaM,EAAQ,YAAc,GAAE,MAAA+B,OAAKF,EAAQ,aAAe,IACnG,sBAAqBD,EACrB,cAAY,UAASJ,SAAA,EAErBC,EAAAA,EAAAA,MAAA,OAAKF,UAAU,cAAaC,SAAA,EAC1BH,EAAAA,EAAAA,KAACN,EAAc,CAACE,GAAIA,EAAIC,MAAOA,EAAOE,SAAUA,KAChDC,EAAAA,EAAAA,KAACuD,EAAU,CAAC5C,YAAaA,EAAaf,GAAIA,EAAIgB,gBAAiBA,EAAiBC,cAAeA,QAEjGb,EAAAA,EAAAA,KAAA,SACEO,KAAMA,EACNX,GAAIA,EACJiE,KAAK,SACL3D,UAAU,aACVH,SAAUA,EACV,gBAAeA,EACf,mBAAiB,GACjBpB,MAAOA,EACPoF,SAAU9E,EACV+E,QAASnF,EACTgD,OAAQ/C,EACR,sBAAA4B,OAAqBH,EAAI,SACzBsG,IAAKD,EAAWE,MAAK,SAACC,GAAC,MAAgB,uEAAXA,EAAElD,IAA6E,IAAI,SAAMrF,EACrH8E,MAAO3C,EACP,aAAYA,GAA8B,MAAfF,EAAsB,IAAMA,EAAc,IACrE,iBAAgBD,KAElBR,EAAAA,EAAAA,KAACK,EAAc,CAACE,KAAMA,EAAMC,MAAOA,EAAOC,YAAaA,MAG7D,CC3De,SAASuG,EAAUrH,GAc9B,IAbFY,EAAIZ,EAAJY,KACAX,EAAED,EAAFC,GACAiH,EAAGlH,EAAHkH,IACAI,EAAGtH,EAAHsH,IACAC,EAAIvH,EAAJuH,KACArH,EAAKF,EAALE,MACAc,EAAWhB,EAAXgB,YACA/C,EAAe+B,EAAf/B,gBACAyE,EAAa1C,EAAb0C,cACAvE,EAAW6B,EAAX7B,YACAC,EAAc4B,EAAd5B,eACA6C,EAAejB,EAAfiB,gBACAC,EAAalB,EAAbkB,cAEAiC,EAAgCnF,EAC9BC,GACA,WAAO,GACPE,EACAC,GACA,WAAO,IALDY,EAAKmE,EAALnE,MAAOM,EAAY6D,EAAZ7D,aAQf,OACEmB,EAAAA,EAAAA,MAAA,OAAKF,UAAS,2BAAAQ,OAA6B2B,GAAiB,sBAAqB9B,EAAM,cAAY,QAAOJ,SAAA,EACxGC,EAAAA,EAAAA,MAAA,OAAKF,UAAU,cAAaC,SAAA,EAC1BH,EAAAA,EAAAA,KAACN,EAAc,CAACE,GAAIA,EAAIC,MAAOA,KAC/BG,EAAAA,EAAAA,KAACuD,EAAU,CAAC5C,YAAaA,EAAaf,GAAIA,EAAIgB,gBAAiBA,EAAiBC,cAAeA,QAEjGT,EAAAA,EAAAA,MAAA,QAAAD,SAAA,EACEH,EAAAA,EAAAA,KAAA,QAAME,UAAU,iBAAgBC,SAAE0G,KAClC7G,EAAAA,EAAAA,KAAA,SACE6D,KAAK,QACLtD,KAAMA,EACNX,GAAIA,EACJiH,IAAKA,EACLI,IAAKA,EACLC,KAAMA,EACNvI,MAAOA,GAASkI,EAChB9C,SAAU,SAAChF,GAAC,OAAKE,EAAaF,EAAE,EAChCmB,UAAU,mBACV,mBAAiB,GACjB,sBAAAQ,OAAqBH,EAAI,YAE3BP,EAAAA,EAAAA,KAAA,QAAME,UAAU,iBAAgBC,SAAE8G,SAI1C,CC/Ce,SAASE,EAAcxH,GAgBlC,IAADyH,EAfD7G,EAAIZ,EAAJY,KACAX,EAAED,EAAFC,GACAC,EAAKF,EAALE,MAAKsC,EAAAxC,EACLyC,QAAAA,OAAO,IAAAD,EAAG,GAAEA,EACZ1B,EAAWd,EAAXc,YACAV,EAAQJ,EAARI,SACAY,EAAWhB,EAAXgB,YACA9C,EAAa8B,EAAb9B,cACAC,EAAW6B,EAAX7B,YACAC,EAAc4B,EAAd5B,eACAC,EAAQ2B,EAAR3B,SACAwC,EAAKb,EAALa,MACA6B,EAAa1C,EAAb0C,cACAzB,EAAejB,EAAfiB,gBACAC,EAAalB,EAAbkB,cAEA5C,GAA0CC,EAAAA,EAAAA,WAAS,GAAMC,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAAlDoJ,EAAalJ,EAAA,GAAEmJ,EAAgBnJ,EAAA,GACtCoJ,GAAwCrJ,EAAAA,EAAAA,WAAU,GAAEsJ,GAAApJ,EAAAA,EAAAA,GAAAmJ,EAAA,GAA7CE,EAAYD,EAAA,GAAEE,EAAeF,EAAA,GAEpC1E,EAA6EnF,GADR,QAAxCyJ,EAAAhF,EAAQuF,MAAK,SAAC/E,GAAM,OAAKA,EAAOC,OAAO,WAAC,IAAAuE,OAAA,EAAxCA,EAA0CzI,QAAS,GAG9Ed,EACAC,EACAC,EACAC,GALMW,EAAKmE,EAALnE,MAAON,EAASyE,EAATzE,UAAWQ,EAAWiE,EAAXjE,YAAaC,EAAUgE,EAAVhE,WAAYM,EAAqB0D,EAArB1D,sBAQ7CwI,GAAa1E,EAAAA,EAAAA,QAAO,IAOpB2E,EAAoB,SAACC,GACzB1I,EAAsB0I,GACtBR,GAAiB,GACjBxI,EAAW,CAAEE,OAAQ,CAAEL,MAAOmJ,IAChC,EAEMC,EAAgB,SAAChJ,GACP,cAAVA,EAAE2G,KACJ3G,EAAEyC,iBACFkG,GAAgB,SAACM,GAAS,OAAMA,EAAY,GAAK5F,EAAQW,MAAM,KAC5C,YAAVhE,EAAE2G,KACX3G,EAAEyC,iBACFkG,GAAgB,SAACM,GAAS,OAAMA,EAAY,EAAIA,EAAY,EAAI5F,EAAQW,OAAS,CAAC,KAC/D,UAAVhE,EAAE2G,KAAmB+B,GAAgB,GAC9C1I,EAAEyC,iBACFqG,EAAkBzF,EAAQqF,GAAc9I,QACrB,WAAVI,EAAE2G,MACX3G,EAAEyC,iBACF8F,GAAiB,GAErB,EAQA,OANA/I,EAAAA,EAAAA,YAAU,WACJ8I,GAAiBI,GAAgB,GAAKG,EAAWlE,QAAQ+D,IAC3DG,EAAWlE,QAAQ+D,GAAczF,OAErC,GAAG,CAACyF,EAAcJ,KAGhBjH,EAAAA,EAAAA,MAAA,OACEF,UAAS,oEAAAQ,OAAsE2B,EAAa,KAAA3B,OAAID,GAAe9B,EAAQ,YAAc,GAAE,aAAA+B,OACpIX,EAAW,cAAgB,GAAE,KAAAW,OAAIF,EAAQ,aAAe,GAAE,KAAAE,OAAIrC,EAAY,YAAc,IAC3F,sBAAqBkC,EACrB,cAAY,YAAWJ,SAAA,EAEvBC,EAAAA,EAAAA,MAAA,OAAKF,UAAU,iBAAgBC,SAAA,EAC7BC,EAAAA,EAAAA,MAAA,OAAKF,UAAU,cAAaC,SAAA,EAC1BH,EAAAA,EAAAA,KAACN,EAAc,CAACE,GAAIA,EAAIC,MAAOA,EAAOE,SAAUA,KAChDC,EAAAA,EAAAA,KAACuD,EAAU,CAAC5C,YAAaA,EAAaf,GAAIA,EAAIgB,gBAAiBA,EAAiBC,cAAeA,QAEjGT,EAAAA,EAAAA,MAAA,UACEyD,KAAK,SACLjE,GAAIA,EACJM,UAAU,aACVqB,QAjDqB,WAC3B+F,GAAiB,SAACW,GAAI,OAAMA,CAAI,IAChCP,GAAiB,EACnB,EA+CQ1D,QAASnF,EACTgD,OAAQ,kBAAOwF,GAAiBvI,EAAW,CAAEE,OAAQ,CAAEL,MAAOA,IAAU,EACxE8G,UAAWsC,EACX,gBAAeV,EACf,gBAAetH,EACf,aAAYY,GAA8B,MAAfF,EAAsB,IAAMA,EAAc,IACrE,iBAAgBD,EAAML,SAAA,CAErBxB,GAAS8B,GACVT,EAAAA,EAAAA,KAAA,OAAKE,UAAS,uCAAAQ,OAAyC2G,EAAgB,OAAS,IAAKlH,UACnFH,EAAAA,EAAAA,KAAA,OAAKkI,WAAW,+BAA+B/C,UAAU,6CAA4ChF,SAAC,cAKzGkH,IACCrH,EAAAA,EAAAA,KAAA,OAAKE,UAAU,eAAeiI,KAAK,UAAShI,SACzCiC,EAAQY,KAAI,SAACJ,EAAQgB,GAAK,OACzB5D,EAAAA,EAAAA,KAAA,OAEEwD,IAAK,SAAC4E,GAAE,OAAMR,EAAWlE,QAAQE,GAASwE,CAAE,EAC5ClI,UAAS,UAAAQ,OAAYkD,IAAU6D,EAAe,UAAY,IAC1DjC,SAAS,IACT2C,KAAK,SACL,gBAAexJ,IAAUiE,EAAOjE,MAChC8E,YAAa,SAAC1E,GAAC,OAAKA,EAAEyC,gBAAgB,EACtCD,QAAS,kBAAMsG,EAAkBjF,EAAOjE,MAAM,EAC9C8G,UAAWsC,EAAc5H,SAExByC,EAAO/C,OAVH+D,EAWD,UAKd5D,EAAAA,EAAAA,KAACK,EAAc,CAACE,KAAMA,EAAMC,MAAOA,EAAOC,YAAaA,MAG7D,CCtHe,SAAS4H,EAAQ1I,GAgB5B,IAfFY,EAAIZ,EAAJY,KACAX,EAAED,EAAFC,GACAC,EAAKF,EAALE,MACAY,EAAWd,EAAXc,YACAV,EAAQJ,EAARI,SACAY,EAAWhB,EAAXgB,YAAW+F,EAAA/G,EACX/B,gBAAAA,OAAe,IAAA8I,EAAG,GAAEA,EACpB7I,EAAa8B,EAAb9B,cACAC,EAAW6B,EAAX7B,YACAC,EAAc4B,EAAd5B,eACAC,EAAQ2B,EAAR3B,SACAwC,EAAKb,EAALa,MACA6B,EAAa1C,EAAb0C,cACAzB,EAAejB,EAAfiB,gBACAC,EAAalB,EAAbkB,cAEAiC,EAAoEnF,EAClEC,EACAC,EACAC,EACAC,EACAC,GALMW,EAAKmE,EAALnE,MAAON,EAASyE,EAATzE,UAAWQ,EAAWiE,EAAXjE,YAAaC,EAAUgE,EAAVhE,WAAYG,EAAY6D,EAAZ7D,aAOnD,OACEmB,EAAAA,EAAAA,MAAA,OACEF,UAAS,8DAAAQ,OAAgE2B,EAAa,KAAA3B,OAAIX,EAAW,eAAiB,GAAE,KAAAW,OAAIrC,EAAY,YAAc,GAAE,aAAAqC,OACtJrC,GAAaM,EAAQ,YAAc,GAAE,KAAA+B,OAAIF,EAAQ,aAAe,IAClE,sBAAqBD,EACrB,cAAY,UAASJ,SAAA,EAErBC,EAAAA,EAAAA,MAAA,OAAKF,UAAU,cAAaC,SAAA,EAC1BH,EAAAA,EAAAA,KAACN,EAAc,CAACE,GAAIA,EAAIC,MAAOA,EAAOE,SAAUA,KAChDC,EAAAA,EAAAA,KAACuD,EAAU,CAAC5C,YAAaA,EAAaf,GAAIA,EAAIgB,gBAAiBA,EAAiBC,cAAeA,QAEjGb,EAAAA,EAAAA,KAAA,YACEO,KAAMA,EACNX,GAAIA,EACJM,UAAU,aACVH,SAAUA,EACV,gBAAeA,EACf,mBAAiB,GACjBpB,MAAOA,GAAS,GAChBoF,SAAU9E,EACV+E,QAASnF,EACTgD,OAAQ/C,EACRwE,MAAO3C,EACP,aAAYA,GAA8B,MAAfF,EAAsB,IAAMA,EAAc,IACrE,iBAAgBD,KAElBR,EAAAA,EAAAA,KAACK,EAAc,CAACE,KAAMA,EAAMC,MAAOA,EAAOC,YAAaA,MAG7D,C,eCpDe,SAAS6H,EAAS3I,GAkB7B,IAAD4I,EAjBDhI,EAAIZ,EAAJY,KACAX,EAAED,EAAFC,GACAC,EAAKF,EAALE,MACAY,EAAWd,EAAXc,YACAV,EAAQJ,EAARI,SACAY,EAAWhB,EAAXgB,YAAW+F,EAAA/G,EACX/B,gBAAAA,OAAe,IAAA8I,EAAG,GAAEA,EAAAC,EAAAhH,EACpBiH,WAAAA,OAAU,IAAAD,EAAG,GAAEA,EACf9I,EAAa8B,EAAb9B,cACAC,EAAW6B,EAAX7B,YACAC,EAAc4B,EAAd5B,eACAC,EAAQ2B,EAAR3B,SACAwC,EAAKb,EAALa,MACAgI,EAAU7I,EAAV6I,WACAnG,EAAa1C,EAAb0C,cACAzB,EAAejB,EAAfiB,gBACAC,EAAalB,EAAbkB,cAEAiC,EAAsFnF,EACpFC,EACAC,EACAC,EACAC,EACAC,GALMW,EAAKmE,EAALnE,MAAON,EAASyE,EAATzE,UAAWQ,EAAWiE,EAAXjE,YAAaC,EAAUgE,EAAVhE,WAAYG,EAAY6D,EAAZ7D,aAAcE,EAAgB2D,EAAhB3D,iBAQ3DsJ,GAAWvF,EAAAA,EAAAA,QAAO,MAClBwF,GAAgBxF,EAAAA,EAAAA,QAAO,MAEvByF,EAAY/B,EAAWE,MAAK,SAACC,GAAC,MAAgB,6DAAXA,EAAElD,IAAmE,IAC1G,QACA+C,EAAWE,MAAK,SAACC,GAAC,MAAgB,+DAAXA,EAAE6B,IAAqE,IAC5F,SACAhC,EAAWE,MAAK,SAACC,GAAC,MAAgB,2DAAXA,EAAE6B,IAAiE,IACxF,MACA,OAEFC,EAAcjC,EAAWE,MAAK,SAACC,GAAC,MACpC,CACE,kEACA,kEACA,mEACA+B,SAAS/B,EAAElD,KAAK,IAGdkF,GAAgD,QAAtCR,EAAA3B,EAAWe,MAAK,SAACZ,GAAC,OAAKA,EAAEiC,YAAY,WAAC,IAAAT,OAAA,EAAtCA,EAAwCS,eAAgB,KAcxE,OAZAzK,EAAAA,EAAAA,YAAU,WAKR,OAJIsK,GAAeJ,EAAS/E,UAC1BgF,EAAchF,QAAU,IAAIuF,EAAAA,QAAkB,CAAEb,GAAIK,EAAS/E,QAASwF,OAAQV,KAGzE,WACDE,EAAchF,SAChBgF,EAAchF,QAAQyF,YAAYC,SAEtC,CACF,GAAG,CAACP,KAGFzI,EAAAA,EAAAA,MAAA,OACEoD,IAAKiF,EACLvI,UAAS,8BAAAQ,OAAgC2B,EAAa,KAAA3B,OAAImI,EAAc,4EAA8E,qBAAoB,cAAAnI,OACvKX,EAAW,eAAiB,GAAE,KAAAW,OAAIrC,EAAY,YAAc,GAAE,KAAAqC,OAAIrC,GAAaM,EAAQ,YAAc,GAAE,KAAA+B,OAAIF,EAAQ,aAAe,IACrI,sBAAqBD,EACrB,cAA2B,QAAdoI,EAAsB,MAAQ,UAAUxI,SAAA,EAErDC,EAAAA,EAAAA,MAAA,OAAKF,UAAU,cAAaC,SAAA,EAC1BH,EAAAA,EAAAA,KAACN,EAAc,CAACE,GAAIA,EAAIC,MAAOA,EAAOE,SAAUA,KAChDC,EAAAA,EAAAA,KAACuD,EAAU,CAAC5C,YAAaA,EAAaf,GAAIA,EAAIgB,gBAAiBA,EAAiBC,cAAeA,QAEjGb,EAAAA,EAAAA,KAAA,SACEO,KAAMA,EACNX,GAAIA,EACJiE,KAAM8E,EACNzI,UAAU,aACVH,SAAUA,EACV,gBAAeA,EACf,mBAAiB,GACjBpB,MAAOA,GAAS,GAChBoF,SAAU9E,EACV+E,QAASnF,EACTgD,OAAQgH,EAAc,SAAC9J,GAAC,OAAKI,EAAiBJ,EAAE,EAAGD,EACnD,sBAAA4B,OAAqBH,EAAI,SACzBwI,QAASA,QAAWvK,EACpB8E,MAAO3C,EACP,aAAYA,GAA8B,MAAfF,EAAsB,IAAMA,EAAc,IACrE,iBAAgBD,EAChB6I,aAAcR,EAAc,MAAQ,QAEtC7I,EAAAA,EAAAA,KAACK,EAAc,CAACE,KAAMA,EAAMC,MAAOA,EAAOC,YAAaA,MAG7D,CC/Fe,SAAS6I,EAAmB3J,GAgBvC,IAfFY,EAAIZ,EAAJY,KACAX,EAAED,EAAFC,GACAC,EAAKF,EAALE,MAAKsC,EAAAxC,EACLyC,QAAAA,OAAO,IAAAD,EAAG,GAAEA,EACZ1B,EAAWd,EAAXc,YACAV,EAAQJ,EAARI,SACAY,EAAWhB,EAAXgB,YACA9C,EAAa8B,EAAb9B,cACAC,EAAW6B,EAAX7B,YACAC,EAAc4B,EAAd5B,eACAC,EAAQ2B,EAAR3B,SACAwC,EAAKb,EAALa,MACA6B,EAAa1C,EAAb0C,cACAzB,EAAejB,EAAfiB,gBACAC,EAAalB,EAAbkB,cAGAiC,EAAoEnF,EADvCyE,EAAQO,QAAO,SAACC,GAAM,OAAKA,EAAOC,OAAO,IAAEG,KAAI,SAACJ,GAAM,OAAKA,EAAOjE,KAAK,IAGlGd,EACAC,EACAC,EACAC,GALMW,EAAKmE,EAALnE,MAAON,EAASyE,EAATzE,UAAWQ,EAAWiE,EAAXjE,YAAaC,EAAUgE,EAAVhE,WAAYG,EAAY6D,EAAZ7D,aAanD,OACEmB,EAAAA,EAAAA,MAAA,OACEF,UAAS,mEAAAQ,OAAqE2B,EAAa,KAAA3B,OAAID,GAAe9B,GAASN,EAAY,YAAc,GAAE,KAAAqC,OACjJrC,EAAY,YAAc,GAAE,KAAAqC,OAC1BX,EAAW,cAAgB,GAAE,KAAAW,OAAIF,EAAQ,aAAe,IAC5D,sBAAqBD,EACrB,cAAY,YAAWJ,SAAA,EAEvBC,EAAAA,EAAAA,MAAA,OAAKF,UAAU,iBAAgBC,SAAA,EAC7BC,EAAAA,EAAAA,MAAA,OAAKF,UAAU,cAAaC,SAAA,EAC1BH,EAAAA,EAAAA,KAACN,EAAc,CAACE,GAAIA,EAAIC,MAAOA,EAAOE,SAAUA,KAChDC,EAAAA,EAAAA,KAACuD,EAAU,CAAC5C,YAAaA,EAAaf,GAAIA,EAAIgB,gBAAiBA,EAAiBC,cAAeA,QAEjGb,EAAAA,EAAAA,KAAA,UACEO,KAAMA,EACNX,GAAIA,EACJM,UAAU,aACVH,SAAUA,EACV,gBAAeA,EACf6F,UAAQ,EACR,mBAAiB,GACjB,sBAAAlF,OAAqBH,EAAI,SACzB5B,MAAOA,EACPqF,QAASnF,EACTgD,OAAQ/C,EACRiF,SA9BmB,SAAChF,GAC1B,IAAMG,EAAWkG,MAAMC,KAAKtG,EAAEC,OAAOuK,iBAAiB,SAAC3G,GAAM,OAAKA,EAAOjE,KAAK,IAC9EM,EAAa,CAAED,OAAQ,CAAEL,MAAOO,IAClC,EA4BQoE,MAAO3C,EACP,aAAYA,GAA8B,MAAfF,EAAsB,IAAMA,EAAc,IACrE,iBAAgBD,EAAML,SAErBiC,EAAQY,KAAI,SAACJ,EAAQgB,GAAK,OACzB5D,EAAAA,EAAAA,KAAA,UAAoBrB,MAAOiE,EAAOjE,MAAO,uBAAsBiE,EAAOC,QAAQ1C,SAC3EyC,EAAO/C,OADG+D,EAEJ,UAIf5D,EAAAA,EAAAA,KAACK,EAAc,CAACE,KAAMA,EAAMC,MAAOA,EAAOC,YAAaA,MAG7D,CC3Ee,SAAS+I,EAAY7J,GAAmG,IAAhGC,EAAED,EAAFC,GAAE6J,EAAA9J,EAAEE,MAAAA,OAAK,IAAA4J,EAAG,SAAQA,EAAE9I,EAAWhB,EAAXgB,YAAa0B,EAAa1C,EAAb0C,cAAeqH,EAAc/J,EAAd+J,eAAgBC,EAAiBhK,EAAjBgK,kBAAmBC,EAAMjK,EAANiK,OACpHC,EAAe,WACnB,OACE7J,EAAAA,EAAAA,KAAA,UACEwF,SAAU,EACV5F,GAAIA,EACJW,KAAK,SACLsD,KAAK,SACLlF,MAAOiB,EACPM,UAAS,0FAAAQ,OAA4FgJ,EAAiB,EAAI,mBAAqBrH,GAC/I,uBAAqB,EACrB,gCAA8B,EAC9B,cAAY,eACZiB,MAAO3C,EACP,aAAYA,EAAYR,UAExBH,EAAAA,EAAAA,KAAA,QAAME,UAAU,OAAMC,SAAEN,KAG9B,EAEA,OAAI6J,EAAiB,GAEjBtJ,EAAAA,EAAAA,MAAAoG,EAAAA,SAAA,CAAArG,SAAA,EACEH,EAAAA,EAAAA,KAAA,UAAQ6D,KAAK,SAAS3D,UAAS,qFAAwFqB,QAASqI,EAAOzJ,SACpIwJ,GAAqB,YAEvBE,OAKAA,GACT,CCjCe,SAASC,EAAWnK,GAAuE,IAApEC,EAAED,EAAFC,GAAIW,EAAIZ,EAAJY,KAAIkJ,EAAA9J,EAAEE,MAAAA,OAAK,IAAA4J,EAAG,QAAOA,EAAE9I,EAAWhB,EAAXgB,YAAayF,EAAQzG,EAARyG,SAAU/D,EAAa1C,EAAb0C,cACtF,OACErC,EAAAA,EAAAA,KAAA,SACEwF,SAAU,EACV5F,GAAIA,EACJW,KAAMA,EACNsD,KAAK,QACLlF,MAAOkB,EACPK,UAAS,qDAAAQ,OAAuD2B,GAChE,yBAAuB,GACvB,cAAY,cACZiB,MAAO3C,EACP,aAAYA,EACZoJ,KAAM3D,GAGZ,CCfe,SAAS4D,EAAgBrK,GAYpC,IAXFY,EAAIZ,EAAJY,KACAX,EAAED,EAAFC,GAAEuC,EAAAxC,EACFyC,QAAAA,OAAO,IAAAD,EAAG,GAAEA,EACZtC,EAAKF,EAALE,MACAc,EAAWhB,EAAXgB,YACAZ,EAAQJ,EAARI,SACAkK,EAAyBtK,EAAzBsK,0BACAC,EAAgBvK,EAAhBuK,iBACA7H,EAAa1C,EAAb0C,cACAvE,EAAW6B,EAAX7B,YACAC,EAAc4B,EAAd5B,eAGA+E,EAAgCnF,EADfuM,EAAmB,GAAK,IAGvC,WAAO,GACPpM,EACAC,GACA,WAAO,IALDY,EAAKmE,EAALnE,MAAOM,EAAY6D,EAAZ7D,aAQTkL,EAAoB,SAACpL,GACzB,IAAMqL,EAAgBrL,EAAEC,OAAOL,MAC/B,GAAIuL,EAAkB,CACpB,IAAMhL,EAAWP,EAAMmK,SAASsB,GAAiBzL,EAAMgE,QAAO,SAACU,GAAG,OAAKA,IAAQ+G,CAAa,IAAC,GAAA1J,QAAA0C,EAAAA,EAAAA,GAAOzE,GAAK,CAAEyL,IAC3GnL,EAAa,CAAED,OAAQ,CAAEL,MAAOO,IAClC,MACED,EAAa,CAAED,OAAQ,CAAEL,MAAOyL,IAEpC,EAEA,OACEpK,EAAAA,EAAAA,KAAA,OACEE,UAAS,8CAAAQ,OAAgD2B,EAAa,KAAA3B,OAAIX,EAAW,qBAAuB,IAC5G,sBAAqBQ,EACrB,cAAY,SACZ+C,MAAO3C,EACP,aAAYA,EAAYR,UAExBC,EAAAA,EAAAA,MAAA,YAAAD,SAAA,EACEH,EAAAA,EAAAA,KAAA,UAAQE,UAAU,yBAAwBC,SAAEN,IAC3CuC,EAAQY,KAAI,SAACJ,EAAQgB,GAAK,OACzBxD,EAAAA,EAAAA,MAAA,SAAmBH,QAAO,GAAAS,OAAKd,EAAE,KAAAc,OAAIkD,GAAS1D,UAAU,0BAAyBC,SAAA,EAC/EH,EAAAA,EAAAA,KAAA,SACE6D,KAAMqG,EAAmB,WAAa,QACtCtK,GAAE,GAAAc,OAAKd,EAAE,KAAAc,OAAIkD,GACbrD,KAAMA,EACN5B,MAAOiE,EAAOyH,KACdnK,UAAU,oBACV,mBAAiB,GACjB2C,QAASqH,EAAmBvL,EAAMmK,SAASlG,EAAOyH,MAAQ1L,IAAUiE,EAAOyH,KAC3EtG,SAAUoG,EACV7G,MAAO3C,EACP,aAAYA,EACZZ,SAAUA,EACV,gBAAeA,IAEhBkK,IAA6BjK,EAAAA,EAAAA,KAAA,QAAME,UAAU,mCAAkCC,SAAEyC,EAAOyH,QACzFrK,EAAAA,EAAAA,KAAA,OAAKsK,IAAK1H,EAAO2H,KAAMjH,MAAOV,EAAOyH,KAAMG,IAAK5H,EAAOyH,SAhB7CzG,EAiBJ,QAKlB,CCpEe,SAAS6G,EAAa9K,GAAQA,EAALE,MAAiG,IAA1FD,EAAED,EAAFC,GAAI8K,EAAa/K,EAAb+K,cAAe/J,EAAWhB,EAAXgB,YAAa0B,EAAa1C,EAAb0C,cAAa1C,EAAEgL,+BAC5F,OACE3K,EAAAA,EAAAA,KAAA,OACEE,UAAS,qDAAAQ,OAAuD2B,GAChEzC,GAAIA,EACJ,yBAAuB,GACvB0D,MAAO3C,EACP,aAAYA,EAAYR,UAExBH,EAAAA,EAAAA,KAAA,OAAKE,UAAU,YAAY+D,wBAAyB,CAAEC,OAAQwG,MAGpE,CCNe,SAASE,EAAejL,GAenC,IAADyH,EAdD7G,EAAIZ,EAAJY,KACAX,EAAED,EAAFC,GAAEuC,EAAAxC,EACFyC,QAAAA,OAAO,IAAAD,EAAG,GAAEA,EACZtC,EAAKF,EAALE,MACAc,EAAWhB,EAAXgB,YACAZ,EAAQJ,EAARI,SACAlC,EAAa8B,EAAb9B,cACAwE,EAAa1C,EAAb0C,cACAvE,EAAW6B,EAAX7B,YACAC,EAAc4B,EAAd5B,eACAyC,EAAKb,EAALa,MACAxC,EAAQ2B,EAAR3B,SACA4C,EAAejB,EAAfiB,gBACAC,EAAalB,EAAbkB,cAGAiC,EAAyCnF,EADgB,QAA3CyJ,EAAGhF,EAAQuF,MAAK,SAAC/E,GAAM,OAAKA,EAAOC,OAAO,WAAC,IAAAuE,OAAA,EAAxCA,EAA0CzI,MACKd,EAAeC,EAAaC,EAAgBC,GAApGW,EAAKmE,EAALnE,MAAOS,EAAqB0D,EAArB1D,sBAEf,OACEgB,EAAAA,EAAAA,MAAA,OACEF,UAAS,sEAAAQ,OAAwE2B,EAAa,KAAA3B,OAAIX,EAAW,cAAgB,GAAE,KAAAW,OAAIF,EAAQ,aAAe,IAC1J,sBAAqBD,EACrB,cAAY,SACZ,aAAYI,EAAYR,SAAA,EAExBC,EAAAA,EAAAA,MAAA,OAAKF,UAAU,cAAaC,SAAA,EAC1BH,EAAAA,EAAAA,KAACN,EAAc,CAACE,GAAIA,EAAIC,MAAOA,EAAOE,SAAUA,KAChDC,EAAAA,EAAAA,KAACuD,EAAU,CAAC5C,YAAaA,EAAaf,GAAIA,EAAIgB,gBAAiBA,EAAiBC,cAAeA,QAEjGb,EAAAA,EAAAA,KAAA,OAAKE,UAAU,iBAAiBN,GAAIA,EAAGO,SACpCiC,GACCA,EAAQY,KAAI,SAACJ,EAAQgB,GAAK,OACxB5D,EAAAA,EAAAA,KAAA,OAAiBE,UAAU,yBAAwBC,UACjDC,EAAAA,EAAAA,MAAA,SAAOF,UAAU,aAAYC,SAAA,EAC3BH,EAAAA,EAAAA,KAAA,SACE6D,KAAK,QACLtD,KAAMA,EACN5B,MAAOiE,EAAOjE,MACdkE,QAASlE,IAAUiE,EAAOjE,MAC1BoF,SAAU,SAAChF,GAAC,OAAKK,EAAsBL,EAAEC,OAAOL,MAAM,EACtDuB,UAAU,oBACV,mBAAiB,GACjB,gBAAeH,EACfuD,MAAO3C,EACPZ,SAAUA,KAEZC,EAAAA,EAAAA,KAAA,QAAME,UAAU,mBAAkBC,SAAEyC,EAAO/C,YAdrC+D,EAgBJ,OAGZ5D,EAAAA,EAAAA,KAACK,EAAc,CAACE,KAAMA,EAAMC,MAAOA,MAGzC,CC3De,SAASqK,EAAQlL,GAS5B,IARFmL,EAAYnL,EAAZmL,aACApB,EAAc/J,EAAd+J,eACAqB,EAAUpL,EAAVoL,WACApB,EAAiBhK,EAAjBgK,kBACAqB,EAAarL,EAAbqL,cACAC,EAAiBtL,EAAjBsL,kBACAC,EAAYvL,EAAZuL,aACAtB,EAAMjK,EAANiK,OAEA,OACExJ,EAAAA,EAAAA,MAAAoG,EAAAA,SAAA,CAAArG,SAAA,CACG2K,GAAgBA,EAAa9H,KAAI,SAACmI,EAAavH,GAAK,OAAKqH,EAAkBE,EAAaA,EAAY5K,KAAK,IAC3F,GAAdwK,GAAmBA,EAAa,GAAKrB,GACpC1J,EAAAA,EAAAA,KAAA,UAAQ6D,KAAK,SAAS3D,UAAS,qFAAwFqB,QAASqI,EAAOzJ,SACpIwJ,GAAqB,YAEtB,KACHoB,EAAa,GAAKrB,GACjB1J,EAAAA,EAAAA,KAAA,UACE6D,KAAK,SACL3D,UAAS,uDAAAQ,OAAuE,GAAdqK,EAAkB,mBAAqB,oBACzGxJ,QAAS2J,EAAa/K,SAErB6K,GAAiB,aAElB,OAGV,CC7BA,SAASI,EAAYzL,EAAiC6D,GAAM,IAApCuH,EAAUpL,EAAVoL,WAAYrB,EAAc/J,EAAd+J,eAClC,OACE1J,EAAAA,EAAAA,KAAA,OAAKwD,IAAKA,EAAKtD,UAAU,+CAA8CC,SACpEiF,MAAMC,KAAK,CAAEtC,OAAQ2G,IAAkB,SAAC2B,EAAGC,GAAC,OAAKA,EAAI,CAAC,IAAEtI,KAAI,SAACkE,GAC5D,IAAMqE,EAAmBR,EAAa,EAChCS,EAAWtE,IAASqE,EACpBE,EAAcvE,EAAOqE,EAGrBG,EAAcxE,GAAQqE,GADXrE,EAAO,GACoCqE,EAE5D,OACEnL,EAAAA,EAAAA,MAAA,OAAKF,UAAU,OAAMC,SAAA,EACnBH,EAAAA,EAAAA,KAAA,OAAKE,UAAW,CAAC,SAAUsL,EAAW,SAAW,GAAIC,EAAc,YAAc,IAAIlG,KAAK,KAAKpF,SAAE+G,IAChGA,IAASwC,IAAkB1J,EAAAA,EAAAA,KAAA,OAAKE,UAAWwL,EAAc,2BAA6B,gCAF9DxE,EAK/B,KAGN,CAEA,OAAeyE,EAAAA,EAAAA,YAAWP,GCfbQ,EAAO,sDACPC,EAAO,sDAqCPC,IA/B2BC,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAfV,EAgBV,kBAfoB,EAgBV,4BAfR,EAgBV,UAfc,EAgBV,cAfQ,EAgBV,YAfc,EAgBV,iBAGsBA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACrCH,EAAO,8BACPC,EAAO,+BAGmCE,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAjB1B,EAkBV,0BAjBU,EAkBV,wBAewB,SAACC,EAAWC,EAAYC,GACvD,OAAQF,GACN,KA9CkB,EA+ChB,OAAOC,GAAcA,IAAeC,EACtC,KA/CsB,EAgDpB,OAAOD,GAAcA,IAAeC,EACtC,KAhDoB,EAiDlB,OAAOD,GAAcA,EAAWnD,SAASoD,GAC3C,KAjDwB,EAkDtB,OAAOD,IAAeA,EAAWnD,SAASoD,GAC5C,KAvDoC,EAwDlC,OAAOD,GAAc,IAAIE,OAAOD,GAAaE,KAAKH,GACpD,QACE,OAAO,EAEb,GAcaI,EAAqB,SAACC,EAAWC,GAC5C,IAAQC,EAAwDF,EAAxDE,aAAcC,EAA0CH,EAA1CG,gBAAiBC,EAAyBJ,EAAzBI,qBACvC,IAAKF,EAAc,OAAO,EAC1B,IAAMG,EAb4B,SAACH,EAAcD,EAAYG,GAC7D,IAAME,EAAsB,OAAZJ,QAAY,IAAZA,OAAY,EAAZA,EAAcxJ,KAAI,SAAC6J,GACjC,IAJoBC,EAIdC,GAJcD,EAIYD,EAAWG,MAJhB,WAAAtM,OAAgBoM,IAKrCb,EAAaM,EAAWQ,GAC9B,OAAOjB,EAAkBe,EAAWI,SAAUhB,EAAYY,EAAWlO,MACvE,IAEA,OA5DiB,IA4DV+N,EAA+BE,EAAQM,MAAMC,SAAWP,EAAQ9F,KAAKqG,QAC9E,CAK0BC,CAAqBZ,EAAcD,EAAYG,GAEvE,OAAID,IAAoBb,EACfe,EACEF,IAAoBZ,IACrBc,CAGZ,E,WC/De,SAASU,EAAQ1N,GACNA,EAAxB2N,yBACsB3N,EAAtB4N,uBACuB5N,EAAvB6N,wBAC0B7N,EAA1B8N,2BAuCE,IAtCFC,EAAmB/N,EAAnB+N,oBAGA5C,GAFWnL,EAAXgO,YACWhO,EAAXgB,YACYhB,EAAZmL,cAEA1E,GADkCzG,EAAlCiO,mCACQjO,EAARyG,UAEAyH,GADkBlO,EAAlBmO,mBACiBnO,EAAjBkO,mBAQAE,GAPYpO,EAAZqO,aACIrO,EAAJY,KACgCZ,EAAhCsO,iCACctO,EAAduO,eACWvO,EAAXwO,YACiBxO,EAAjByO,kBACkBzO,EAAlB0O,mBACoB1O,EAApBoO,sBAGA1H,GAFK1G,EAAL2D,MACO3D,EAAP2O,QACe3O,EAAf0G,iBACAC,EAAQ3G,EAAR2G,SACAC,EAAgB5G,EAAhB4G,iBAEAT,GADkBnG,EAAlB4O,mBACa5O,EAAbmG,eACAC,EAAOpG,EAAPoG,QACAyI,EAAS7O,EAAT6O,UACAC,EAAe9O,EAAf8O,gBACAC,EAAwB/O,EAAxB+O,yBACApK,EAAqB3E,EAArB2E,sBACAC,EAAoB5E,EAApB4E,qBACAC,EAA2B7E,EAA3B6E,4BACAmK,EAAkBhP,EAAlBgP,mBACAC,EAAqBjP,EAArBiP,sBACAC,EAAclP,EAAdkP,eACAC,EAAgBnP,EAAhBmP,iBACAnF,EAAiBhK,EAAjBgK,kBACAqB,EAAarL,EAAbqL,cACAnK,EAAalB,EAAbkB,cACAD,EAAejB,EAAfiB,gBAEA3C,IAAoCC,EAAAA,EAAAA,UAAS,CAAC,GAAEC,IAAAC,EAAAA,EAAAA,GAAAH,GAAA,GAAzCsO,GAAUpO,GAAA,GAAE4Q,GAAa5Q,GAAA,GAChCoJ,IAA4BrJ,EAAAA,EAAAA,UAAS,CAAC,GAAEsJ,IAAApJ,EAAAA,EAAAA,GAAAmJ,GAAA,GAAjCyH,GAAMxH,GAAA,GAAEyH,GAASzH,GAAA,GACxB0H,IAA8ChR,EAAAA,EAAAA,UAAS,CAAC,GAAEiR,IAAA/Q,EAAAA,EAAAA,GAAA8Q,GAAA,GAAnDE,GAAeD,GAAA,GAAEE,GAAkBF,GAAA,GAC1CG,IAA0CpR,EAAAA,EAAAA,WAAS,GAAMqR,IAAAnR,EAAAA,EAAAA,GAAAkR,GAAA,GAAlDE,GAAaD,GAAA,GAAEE,GAAgBF,GAAA,GACtCG,IAAkDxR,EAAAA,EAAAA,WAAS,GAAMyR,IAAAvR,EAAAA,EAAAA,GAAAsR,GAAA,GAA1DE,GAAiBD,GAAA,GAAEE,GAAoBF,GAAA,GAC9CG,IAA4D5R,EAAAA,EAAAA,WAAS,GAAM6R,IAAA3R,EAAAA,EAAAA,GAAA0R,GAAA,GAApEE,GAAsBD,GAAA,GAAEE,GAAyBF,GAAA,GACxDG,IAAkChS,EAAAA,EAAAA,UAAS,IAAGiS,IAAA/R,EAAAA,EAAAA,GAAA8R,GAAA,GAAvCE,GAASD,GAAA,GAAEE,GAAYF,GAAA,GAC9BG,IAA4CpS,EAAAA,EAAAA,UAAS,GAAEqS,IAAAnS,EAAAA,EAAAA,GAAAkS,GAAA,GAAhD5G,GAAc6G,GAAA,GAAEC,GAAiBD,GAAA,GACxCE,IAAoCvS,EAAAA,EAAAA,UAAS,GAAEwS,IAAAtS,EAAAA,EAAAA,GAAAqS,GAAA,GAAxC1F,GAAU2F,GAAA,GAAEC,GAAaD,GAAA,GAC1BE,IAAkB1N,EAAAA,EAAAA,QAAO,MASzB2N,GAAgB,SAACtQ,EAAMC,GAC3ByO,IAAU,SAAC6B,GAAU,OAAAC,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAChBD,GAAU,IAAA/E,EAAAA,EAAAA,GAAA,GACZxL,EAAOC,GAAK,GAEjB,EAOMwQ,GAAkB,SAACpK,GAAgB,IAADqK,EACtC,OAAwG,QAAxGA,EAAiB,OAAVrK,QAAU,IAAVA,OAAU,EAAVA,EAAYE,MAAK,SAACC,GAAC,MAAgB,gEAAXA,EAAElD,IAAsE,WAAC,IAAAoN,GAAAA,CAC1G,GAEA1S,EAAAA,EAAAA,YAAU,WACR8R,GAAaa,GAAapG,GAC5B,GAAG,CAACsE,MAEJ7Q,EAAAA,EAAAA,YAAU,WACR,IAAM4S,EAAgB,CAAC,EACnBC,EAAoB,EAExBtG,EAAauG,SAAQ,SAACC,GACpB,GAAyB,iBAArBA,EAAQC,UAAsC,OAAPD,QAAO,IAAPA,GAAAA,EAASE,qBAAuBF,EAAQE,oBAAoBzO,OAAS,EAC9GuO,EAAQE,oBAAoBH,SAAQ,SAACI,GACnCN,EAAcM,EAAWlR,MAAQ8L,EAAmBoF,EAAYlF,GAClE,SACK,GAAyB,kBAArB+E,EAAQC,SAA8B,CAC/C,IAAIG,GAAY,EAChB,GAAIJ,EAAQK,aAA2C,IAA5BL,EAAQM,iBAAiD,OAAxBN,EAAQO,YAAsB,CACxF,IAAMC,EAAavF,GAAW+E,EAAQK,aAChCI,EAAejG,EAAkBwF,EAAQM,gBAAiBE,EAAYR,EAAQO,aAEpFH,EAAwB,OAAZK,QAAY,IAAZA,GAAAA,CACd,CACAZ,EAAcG,EAAQ/Q,MAAQmR,EAC1BA,GACFN,GAEJ,MAEED,EAAcG,EAAQ/Q,MAAQ8L,EAAmBiF,EAAS/E,GAE9D,IAEA8C,GAAmB8B,GACnBX,GAAkBY,EACpB,GAAG,CAAC7E,GAAYzB,IAEhB,IAAMkH,GAAe,SAACC,GACpB,IAAIC,EAAoB,KAClBC,EAAY,CAAC,EA0CnB,OAxCAF,EAAUZ,SAAQ,SAACC,GAAa,IAADc,EAC7B,GAAyB,iBAArBd,EAAQC,WAAsC,OAAPD,QAAO,IAAPA,GAA4B,QAArBc,EAAPd,EAASE,2BAAmB,IAAAY,OAArB,EAAPA,EAA8BrP,QAAS,EACzE,OAAPuO,QAAO,IAAPA,GAAAA,EAASE,oBAAoBH,SAAQ,SAACI,GACpC,GAAIrC,GAAgBqC,EAAWlR,MAC7B,GAAIkR,EAAW7K,WAAY,CACzB,IAAM7G,EAAWiR,GAAgBS,EAAW7K,YACtCpG,EAAQ3C,GAAc0O,GAAWkF,EAAWlR,MAAOkR,EAAW7K,WAAY7G,GAC5ES,IACF2R,EAAUV,EAAWlR,MAAQC,EAC7BqQ,GAAcY,EAAWlR,KAAMC,GAC1B0R,IACHA,EAAoBpQ,SAASuQ,cAAc,UAAD3R,OAAW+Q,EAAWlR,KAAI,QAG1E,MACEsQ,GAAcY,EAAWlR,KAAM,KAGrC,SAEA,GAAI6O,GAAgBkC,EAAQ/Q,MAC1B,GAAI+Q,EAAQ1K,WAAY,CACtB,IAAM7G,EAAWiR,GAAgBM,EAAQ1K,YACnCpG,EAAQ3C,GAAc0O,GAAW+E,EAAQ/Q,MAAO+Q,EAAQ1K,WAAY7G,GACtES,IACF2R,EAAUb,EAAQ/Q,MAAQC,EAC1BqQ,GAAcS,EAAQ/Q,KAAMC,GACvB0R,IACHA,EAAoBpQ,SAASuQ,cAAc,UAAD3R,OAAW4Q,EAAQ/Q,KAAI,QAGvE,MACEsQ,GAAcS,EAAQ/Q,KAAM,KAIpC,IAEA0O,GAAUkD,GAEHD,CACT,EAaMI,GAAiB,eAAAC,GAAAC,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,KAAAC,MAAG,SAAAC,EAAO5T,GAAC,IAAA6T,EAAA/I,EAAAgJ,EAAAC,EAAAC,EAAAC,EAAA9L,EAAA+L,EAAA,OAAAR,EAAAA,EAAAA,KAAAS,MAAA,SAAAC,GAAA,cAAAA,EAAAlL,KAAAkL,EAAAC,MAAA,OAgDlB,GA/CdrU,EAAEyC,iBAEFqO,IAAqB,GACrBI,IAA0B,IAGpB2C,EAAW,IAAIS,UACZC,OAAO,6BAA8B9E,GAC9CoE,EAASU,OAAO,aAAclN,GAC9BwM,EAASU,OAAO,mBAAoBjN,GACpCuM,EAASU,OAAO,iBAAkBhN,GAClCsM,EAASU,OAAO,qBAAsB/M,GAGtCgN,OAAOC,KAAKjH,IAAY8E,SAAQ,SAAC3L,GAC/B,GAAK0J,GAAgB1J,IAAS+N,GAAmBrD,GAAW1K,GAA5D,CACA,IAAI/G,EAAQ4N,GAAW7G,GACvB,GAAI/G,aAAiB+U,SACnB,IAAK,IAAIpI,EAAI,EAAGA,EAAI3M,EAAMoE,OAAQuI,IAChCsH,EAASU,OAAO5N,EAAK/G,EAAM2M,QAExB,CAAC,IAADqI,EAAAC,EACDtC,EAAUxG,EAAanD,MAAK,SAACS,GAAE,OAAKA,EAAG7H,OAASmF,CAAG,IACvD,IAAK4L,EACH,IAAK,IAAIhG,EAAI,EAAGA,EAAIR,EAAa/H,OAAQuI,IAAK,CAAC,IAADuI,EAE5C,GADAvC,EAA6C,QAAtCuC,EAAG/I,EAAaQ,GAAGkG,2BAAmB,IAAAqC,OAAA,EAAnCA,EAAqClM,MAAK,SAACS,GAAE,OAAKA,EAAG7H,OAASmF,CAAG,IAC9D,KACf,EAE8B,QAAViO,EAAGrC,SAAO,IAAAqC,GAAY,QAAZC,EAAPD,EAAS/M,kBAAU,IAAAgN,OAAZ,EAAPA,EAAqB9M,MAAK,SAACC,GAAC,MACnD,CACE,kEACA,kEACA,mEACA+B,SAAS/B,EAAElD,KAAK,MAEqB,kBAAVlF,IAC7BA,EAAQA,EAAMmV,QAAQ,OAAQ,KAEhClB,EAASU,OAAO5N,EAAK/G,EACvB,CAzBwE,CA0B1E,IAEMkL,EAAe9K,EAAEgV,YAAYC,UAC7BnB,EAAiBhJ,EAAeA,EAAajK,GAAK,KAGlDkT,EAAQ,eAAAmB,GAAAzB,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,KAAAC,MAAG,SAAAwB,IAAA,IAAAC,EAAA,OAAA1B,EAAAA,EAAAA,KAAAS,MAAA,SAAAkB,GAAA,cAAAA,EAAAnM,KAAAmM,EAAAhB,MAAA,WACXvE,IAAkBC,EAAgB,CAAAsF,EAAAhB,KAAA,eAAAgB,EAAAC,OAAA,SAC7B,IAAIC,SAAQ,SAACC,EAASC,GAC3BvT,OAAOwT,WAAWC,OAAM,WACtBzT,OAAOwT,WACJE,QAAQ7F,EAAkB,CAAE8F,OAAQ,WACpCC,KAAI,eAAAC,GAAAtC,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,KAAAC,MAAC,SAAAqC,EAAOC,GAAK,IAAAb,EAAA,OAAA1B,EAAAA,EAAAA,KAAAS,MAAA,SAAA+B,GAAA,cAAAA,EAAAhN,KAAAgN,EAAA7B,MAAA,OACsB,OAAtCR,EAASU,OAAOzE,EAAgBmG,GAAMC,EAAAhN,KAAA,EAAAgN,EAAA7B,KAAA,EAEb8B,MAAMjU,OAAOkU,SAAS5K,KAAM,CACjD6K,OAAQ,OACRC,KAAMzC,EACN0C,QAAS,CACPC,yBAA0B/G,KAE5B,QANI2F,EAAQc,EAAAO,MAODC,GACXlB,KAEAmB,QAAQlV,MAAM,yBAA0B2T,EAASwB,QACjDnB,EAAO,IAAIoB,MAAM,4BAClBX,EAAA7B,KAAA,gBAAA6B,EAAAhN,KAAA,EAAAgN,EAAAY,GAAAZ,EAAA,SAEDT,EAAMS,EAAAY,IAAO,yBAAAZ,EAAAa,OAAA,GAAAf,EAAA,kBAEhB,gBAAAgB,GAAA,OAAAjB,EAAAkB,MAAA,KAAAC,UAAA,EAnBI,IAoBJC,MAAM1B,EACX,GACF,KAAE,cAAAJ,EAAAhB,KAAA,EAEqB8B,MAAMjU,OAAOkU,SAAS5K,KAAM,CACjD6K,OAAQ,OACRC,KAAMzC,EACN0C,QAAS,CACPC,yBAA0B/G,KAE5B,OANY,IAAR2F,EAAQC,EAAAoB,MAOAC,GAAG,CAADrB,EAAAhB,KAAA,SAC0C,MAAxDsC,QAAQlV,MAAM,yBAA0B2T,EAASwB,QAC3C,IAAIC,MAAM,0BAAyB,yBAAAxB,EAAA0B,OAAA,GAAA5B,EAAA,KAG9C,kBA1Ca,OAAAD,EAAA+B,MAAA,KAAAC,UAAA,KAAA9C,EAAAlL,KAAA,KA6CK,MAAbmI,IAAqBA,GAAUrN,OAAS,GAAC,CAAAoQ,EAAAC,KAAA,SAC3CL,GAAAoD,EAAAA,EAAAA,GACmB/F,IAAS+C,EAAAlL,KAAA,GAAA8K,EAAAqD,IAAA,YAAApD,EAAAD,EAAAsD,KAAAC,KAAC,CAADnD,EAAAC,KAAA,SAMzB,OANQlM,EAAI8L,EAAArU,MAEbiU,EAAS2D,IAAI,yBAA0BrP,EAAKsP,WACxCtP,EAAKsP,YAAcpG,GAAUrN,OAAS,GAAK8P,GAE7CD,EAASU,OAAOzJ,EAAatJ,KAAMsS,GACpCM,EAAAC,KAAA,GACKN,IAAU,QAAAK,EAAAC,KAAA,iBAAAD,EAAAC,KAAA,iBAAAD,EAAAlL,KAAA,GAAAkL,EAAA0C,GAAA1C,EAAA,UAAAJ,EAAAhU,EAAAoU,EAAA0C,IAAA,eAAA1C,EAAAlL,KAAA,GAAA8K,EAAA0D,IAAAtD,EAAAuD,OAAA,YAAAvD,EAAAC,KAAA,iBAQjB,OAJDR,EAAS2D,IAAI,yBAA0B,GAEnC1D,GACFD,EAASU,OAAOzJ,EAAatJ,KAAMsS,GACpCM,EAAAC,KAAA,GACKN,IAAU,QAAAK,EAAAC,KAAA,iBAAAD,EAAAlL,KAAA,GAAAkL,EAAAwD,GAAAxD,EAAA,UAGlBuC,QAAQlV,MAAM,wBAAuB2S,EAAAwD,IAAQ,QAMlB,OANkBxD,EAAAlL,KAAA,GAE7C4H,IAAqB,GACrBI,IAA0B,GAC1BR,IAAiB,GACXwD,EAAanR,SAASuQ,cAAc,gBAC1CuE,GAAgB3D,GAAWE,EAAAuD,OAAA,6BAAAvD,EAAA2C,OAAA,GAAAnD,EAAA,wCAE9B,gBA1HsBkE,GAAA,OAAAtE,EAAAyD,MAAA,KAAAC,UAAA,KA4HjBW,GAAkB,SAACtF,GACvB,IAAMwF,EAAgBhV,SAASuQ,cAAc,gCACvC0E,EAASD,EAAgBA,EAAcE,aAAe,GAAK,EAE3DC,EAAkB3F,EAAQ4F,wBAAwBC,IAAMlW,OAAOmW,QAAUL,EAE/E9V,OAAOoW,SAAS,CACdF,IAAKF,EACLK,SAAU,UAEd,EASMrM,GAAoB,SAApBA,EAAqBqG,EAAS5L,GAAS,IAAD6R,EAC1C,GAAyB,iBAArBjG,EAAQC,WAAgCnC,GAAgBkC,EAAQ/Q,MAClE,OAAO,KAGT,IAAMR,EAAWiR,GAAgBM,EAAQ1K,YACnC4Q,GAAKzG,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACNO,GAAO,IACV1Q,gBAAiBA,EACjBC,cAAeA,EACfd,SAAUA,EACVlC,cAAe,SAACc,GAAK,OAAKd,GAAcc,EAAO2S,EAAQ1K,WAAY7G,EAAS,EAC5EjC,YAAayO,GAAW+E,EAAQ/Q,MAChCxC,eAAgB,SAACY,GAAK,OAhRA,SAAC4B,EAAM5B,GAC/BoQ,IAAc,SAAC0I,GAAU,OAAA1G,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACpB0G,GAAU,IAAA1L,EAAAA,EAAAA,GAAA,GACZxL,EAAO5B,GAAK,GAEjB,CA2Q+B+Y,CAAkBpG,EAAQ/Q,KAAM5B,EAAM,EACjEX,SAAU,SAACwC,GAAK,OAAKqQ,GAAcS,EAAQ/Q,KAAMC,EAAM,EACvDA,MAAOwO,GAAOsC,EAAQ/Q,QAGxB,OAAQ+Q,EAAQC,UACd,IAAK,sBACL,IAAK,kBACL,IAAK,kBACH,OAAOvR,EAAAA,EAAAA,KAACsI,GAASyI,EAAAA,EAAAA,GAAA,GAAeyG,GAAT9R,GACzB,IAAK,uBACH,OAAO1F,EAAAA,EAAAA,KAACqI,GAAQ0I,EAAAA,EAAAA,GAAA,GAAeyG,GAAT9R,GACxB,IAAK,qBACH,OAAO1F,EAAAA,EAAAA,KAACyG,GAAWsK,EAAAA,EAAAA,GAAA,GAAeyG,GAAT9R,GAC3B,IAAK,oBACH,OAAO1F,EAAAA,EAAAA,KAACgH,GAAU+J,EAAAA,EAAAA,GAAA,GAAeyG,GAAT9R,GAC1B,IAAK,wBACH,OAAO4L,EAAQpH,kBAAmBlK,EAAAA,EAAAA,KAACsJ,GAAmByH,EAAAA,EAAAA,GAAA,GAAeyG,GAAT9R,IAAqB1F,EAAAA,EAAAA,KAACmH,GAAc4J,EAAAA,EAAAA,GAAA,GAAeyG,GAAT9R,GACxG,IAAK,qBACH,OAAO4L,EAAQpH,kBAAmBlK,EAAAA,EAAAA,KAACkC,GAAkB6O,EAAAA,EAAAA,GAAA,GAAeyG,GAAT9R,IAAqB1F,EAAAA,EAAAA,KAAC4K,GAAemG,EAAAA,EAAAA,GAAA,GAAeyG,GAAT9R,GACxG,IAAK,oBACH,OAAO1F,EAAAA,EAAAA,KAACkC,GAAkB6O,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAeyG,GAAK,IAAEjV,mBAAmB,IAAnCmD,GAClC,IAAK,0BACH,OAAO1F,EAAAA,EAAAA,KAACgK,GAAgB+G,EAAAA,EAAAA,GAAA,GAAeyG,GAAT9R,GAChC,IAAK,yBACH,OACE1F,EAAAA,EAAAA,KAACmE,GAAe4M,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAEVyG,GAAK,IACTlT,sBAAuBA,EACvBC,qBAAsBA,EACtBC,4BAA6BA,IAJxBkB,GAOX,IAAK,wBACH,OAAO1F,EAAAA,EAAAA,KAACgG,GAAW+K,EAAAA,EAAAA,GAAA,GAAeyG,GAAT9R,GAC3B,IAAK,yBACH,OAAO1F,EAAAA,EAAAA,KAACgG,GAAW+K,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAeyG,GAAK,IAAEG,eAAe,IAA/BjS,GAC3B,IAAK,2BACH,OACE1F,EAAAA,EAAAA,KAACwJ,GAAYuH,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAEPyG,GAAK,IACT9N,eAAgBA,GAChBiH,cAAeA,GACf5F,WAAYA,GACZpB,kBAAmBA,EACnBC,OAAQA,KANHlE,GASX,IAAK,0BACH,OAAO1F,EAAAA,EAAAA,KAAC8J,GAAWiH,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAeyG,GAAK,IAAEpR,SAAUA,IAA1BV,GAC3B,IAAK,4BACH,OAAO1F,EAAAA,EAAAA,KAACyK,GAAasG,EAAAA,EAAAA,GAAA,GAAeyG,GAAT9R,GAC7B,IAAK,mBACH,OAAO1F,EAAAA,EAAAA,KAAA,SAAOO,KAAMiX,EAAMjX,KAAMX,GAAI4X,EAAMjX,KAAMsD,KAAK,SAAS3D,UAAU,aAAa,mBAAiB,GAAGvB,MAAM,KACjH,IAAK,eACH,OAAc,OAAP2S,QAAO,IAAPA,GAA4B,QAArBiG,EAAPjG,EAASE,2BAAmB,IAAA+F,OAArB,EAAPA,EAA8BxU,QAAS,GAC5C/C,EAAAA,EAAAA,KAAA,OAAKE,UAAS,cAAAQ,OAAgBiO,EAAkB,KAAAjO,OAAIkO,GAAwBzO,SACzEmR,EAAQE,oBAAoBxO,KAAI,SAAC4U,EAAKC,GAAE,OAAK5M,EAAkB2M,EAAKA,EAAIrX,KAAK,MAE9E,KACN,QACE,OAAO,KAEb,EAmBM1C,GAAgB,SAACc,EAAOiI,EAAY7G,GACxC,IAAM+X,EAAa,SAAC/O,EAASgP,EAAcC,GAEzC,IADc,IAAI7L,OAAOpD,GACdqD,KAAKzN,GAAQ,OAAOoZ,GAAgBC,CACjD,EAEA,IAAKjY,IAAapB,EAAO,MAAO,GAAE,IAEAsZ,EAFAC,GAAA/B,EAAAA,EAAAA,GAEVvP,GAAU,IAAlC,IAAAsR,EAAA9B,MAAA6B,EAAAC,EAAA7B,KAAAC,MAAoC,CAAC,IAA1B6B,EAASF,EAAAtZ,MACVkF,EAAqCsU,EAArCtU,KAAMkU,EAA+BI,EAA/BJ,aAAc/O,EAAiBmP,EAAjBnP,aAE5B,OAAQnF,GACN,IAAK,8DACH,GACGuB,MAAMgT,QAAQzZ,KAAWA,EAAMmI,MAAK,SAACuR,GAAI,OAAKA,GAAQA,EAAKC,MAAM,KACjE3Z,aAAiB+U,UAA6B,IAAjB/U,EAAMoE,SAClCqC,MAAMgT,QAAQzZ,MAAYA,aAAiB+U,aAAe/U,IAAUA,EAAM2Z,QAE5E,OAAOP,GAAgB,8BAEzB,MAEF,IAAK,2DACH,GAAI/O,EAAc,OAAO8O,EAAW9O,EAAc+O,EAAc,kCAChE,MAEF,IAAK,uEACH,GAAI/O,EAAc,OAAO8O,EAAW9O,EAAc+O,EAAc,6CAChE,MAEF,IAAK,kEACH,GAAI/O,EAAc,OAAO8O,EAAW9O,EAAc+O,EAAc,wCAChE,MAEF,IAAK,kEACH,GAAI/O,EAAc,OAAO8O,EAAW9O,EAAc+O,EAAc,wCAChE,MAEF,IAAK,kEACH,GAAI/O,EAAc,OAAO8O,EAAW9O,EAAc+O,EAAc,wCAChE,MAEF,IAAK,6DACH,IAAKQ,OAAOC,UAAUD,OAAO5Z,IAAS,OAAOoZ,GAAgB,2BAC7D,MAEF,IAAK,qEACH,IAAKQ,OAAOC,UAAUD,OAAO5Z,KAAW4Z,OAAO5Z,IAAU,EAAG,OAAOoZ,GAAgB,4BACnF,MAEF,IAAK,yDACH,GAAI/O,EAAc,OAAO8O,EAAW9O,EAA0B,OAAZ+O,QAAY,IAAZA,EAAAA,EAAgBrJ,EAA0B,gBAMlG,CAAC,OAAA+J,GAAAP,EAAAnZ,EAAA0Z,EAAA,SAAAP,EAAAzB,GAAA,CACD,MAAO,EACT,EAEMvF,GAAe,SAACpG,GACpB,IAAKsE,IAA2D,IAAxCmE,OAAOC,KAAKpE,IAAiBrM,OACnD,OAAO,KAGT,IAAM2V,EAAe5N,EAAahE,MAAK,SAACwK,GAAO,MAA0B,kBAArBA,EAAQC,QAA4B,IACxF,IAAKmH,EACH,OAAO,KAGT,IAIkCC,EAJ5BC,EAAQ,GACVC,EAAc,KACdC,EAAmB,EAACC,GAAA5C,EAAAA,EAAAA,GAEFrL,GAAY,IAAlC,IAAAiO,EAAA3C,MAAAuC,EAAAI,EAAA1C,KAAAC,MAAoC,CAAC,IAA1BhF,EAAOqH,EAAAha,MAChB,GAAyB,kBAArB2S,EAAQC,SAA8B,CACpCsH,GAAezJ,GAAgByJ,EAAYtY,OAC7CqY,EAAMI,KAAKH,GAEb,IAAMI,EAAeH,EACrBA,IAGED,EADEzJ,GAAgBkC,EAAQ/Q,OACfwQ,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAQO,GAAO,IAAE4H,iBAAkB,GAAI1C,UAAWyC,IAE/C,IAElB,MAAWJ,GACTA,EAAYK,iBAAiBF,KAAK1H,EAEtC,CAAC,OAAAmH,GAAAM,EAAAha,EAAA0Z,EAAA,SAAAM,EAAAtC,GAAA,CAMD,OAJIoC,GAAezJ,GAAgByJ,EAAYtY,OAC7CqY,EAAMI,KAAKH,GAGND,CACT,EAEMnF,GAAqB,SAACrD,EAAW+I,GACrC,OAAK/I,GAAkC,IAArBA,EAAUrN,QAIrBqN,EAAUtJ,MAAK,SAACI,GACrB,QAAK9B,MAAMgT,QAAQlR,EAAKgS,mBAIjBhS,EAAKgS,iBAAiBpS,MAAK,SAACwK,GACjC,OAAIA,EAAQ/Q,OAAS4Y,KAIjB/T,MAAMgT,QAAQ9G,EAAQE,sBACjBF,EAAQE,oBAAoB1K,MAAK,SAACsS,GAAS,OAAKA,EAAU7Y,OAAS4Y,CAAW,GAIzF,GACF,GACF,EAEMjO,GAAe,SAACJ,GACpB,IAAIoH,EAAoBF,GAAalH,GAEjCoH,EACF0E,GAAgB1E,IAEhBvB,GAAc5F,GAAa,GACvB6F,GAAgBlN,SAASkT,GAAgBhG,GAAgBlN,SAEjE,EAEMkG,GAAS,WACb+G,GAAc5F,GAAa,GACvB6F,GAAgBlN,SAASkT,GAAgBhG,GAAgBlN,QAC/D,EAEA,OAAI8L,IAEAxP,EAAAA,EAAAA,KAAA,WAASE,UAAU,sEAAqEC,UACtFH,EAAAA,EAAAA,KAAA,OAAKE,UAAU,YAAWC,UACxBC,EAAAA,EAAAA,MAAA,OAAKF,UAAU,wBAAuBC,SAAA,EACpCH,EAAAA,EAAAA,KAAA,OAAKE,UAAU,YAAWC,UACxBH,EAAAA,EAAAA,KAAA,OAAKE,UAAS,gCAAkCC,UAC9CH,EAAAA,EAAAA,KAAA,OAAKkI,WAAW,+BAA+B/C,UAAU,uCAAsChF,SAAC,cAKpGC,EAAAA,EAAAA,MAAA,OAAKF,UAAU,YAAWC,SAAA,EACxBH,EAAAA,EAAAA,KAAA,MAAIE,UAAU,aAAYC,SAAEuN,KAC5B1N,EAAAA,EAAAA,KAAA,MAAIE,UAAU,mBAAmB+D,wBAAyB,CAAEC,OAAQ6J,SAEtE/N,EAAAA,EAAAA,KAAA,UAAQE,UAAU,wCAAwCqB,QApQjD,WACjBwN,GAAc,CAAC,GACfE,GAAU,CAAC,GACXQ,IAAiB,GACjBkB,GAAc,EAChB,EA+PwFxQ,SAC3EsO,GAAmB,oBAc9BrO,EAAAA,EAAAA,MAAAoG,EAAAA,SAAA,CAAArG,SAAA,EACEH,EAAAA,EAAAA,KAACqZ,EAAAA,EAAO,CAAC7N,SAAUoE,GAAmB0J,cAAetJ,MACrDhQ,EAAAA,EAAAA,KAAA,WAASE,UAAU,sEAAqEC,UACtFC,EAAAA,EAAAA,MAAA,QACEF,UAAS,YACTkV,OAAO,OACPmE,WAAW,aACX,kBAAiB1L,EACjB2L,QAAQ,sBACR,cAAY,OACZ5Z,GAAIwG,EACJqT,SAjba,SAAC1a,GACpBA,EAAEyC,iBACF,IAAI0Q,EAAoBF,GAAalH,GAEjCoH,EACF0E,GAAgB1E,GAEhBI,GAAkBvT,EAEtB,EAyaQ2a,QA7gBY,WAClB3K,GAAc,CAAC,GACfE,GAAU,CAAC,EACb,EA0gB6B9O,SAAA,EAGrBH,EAAAA,EAAAA,KAAA,SAAOO,KAAK,6BAA6BsD,KAAK,SAASlF,MAAO6P,KAC9DxO,EAAAA,EAAAA,KAACmG,EAAY,CAACC,SAAUA,EAAUC,gBAAiBA,EAAiBC,SAAUA,EAAUC,iBAAkBA,KAC1GvG,EAAAA,EAAAA,KAAC6F,EAAU,CAACC,cAAeA,EAAeC,QAASA,KACnD/F,EAAAA,EAAAA,KAAA,WAASE,UAAU,mBAAkBC,UACnCH,EAAAA,EAAAA,KAAA,OAAKE,UAAU,YAAWC,UACxBH,EAAAA,EAAAA,KAAA,OAAKE,UAAU,OAAMC,UACN,OAAZ2K,QAAY,IAAZA,OAAY,EAAZA,EAAc/H,QAAS,KACZ,OAATqN,SAAS,IAATA,QAAS,EAATA,GAAWrN,QAAS,GACnB3C,EAAAA,EAAAA,MAAAoG,EAAAA,SAAA,CAAArG,SAAA,EACEH,EAAAA,EAAAA,KAACoL,EAAY,CAAC5H,IAAKoN,GAAiB7F,WAAYA,GAAYrB,eAAgBA,KApNxE,SAACkP,GACvB,IACMe,EADcf,EAAM7N,IACOmO,iBACjC,OACElZ,EAAAA,EAAAA,KAAC6K,EAAQ,CACPC,aAAc6O,EACdjQ,eAAgBA,GAChBqB,WAAYA,GACZpB,kBAAmBA,EACnBqB,cAAeA,EACfC,kBAAmBA,GACnBrB,OAAQA,GACRsB,aAAc,kBAAMA,GAAayO,EAAa,GAGpD,CAsMqBC,CAAgBxJ,OAGnBtF,EAAa9H,KAAI,SAACsO,EAAS1N,GAAK,OAAKqH,GAAkBqG,EAAS1N,EAAM,kBAS1F,C","sources":["hooks/useFormField.jsx","shared/epi-forms/form-elements/labels/form-field-label.jsx","shared/epi-forms/form-elements/labels/form-field-error.jsx","shared/epi-forms/form-elements/buttons/toggle-info-button.jsx","shared/epi-forms/form-elements/inputs/checkbox-group-input.jsx","shared/epi-forms/form-elements/inputs/file-upload-input.jsx","shared/epi-forms/form-elements/labels/form-status.jsx","shared/epi-forms/form-elements/hidden-fields/hidden-field.jsx","shared/epi-forms/form-elements/hidden-fields/hidden-fields.jsx","shared/epi-forms/form-elements/inputs/number-input.jsx","shared/epi-forms/form-elements/inputs/range-input.jsx","shared/epi-forms/form-elements/inputs/selection-input.jsx","shared/epi-forms/form-elements/inputs/text-area.jsx","shared/epi-forms/form-elements/inputs/text-input.jsx","shared/epi-forms/form-elements/inputs/selection-multi-input.jsx","shared/epi-forms/form-elements/buttons/submit-button.jsx","shared/epi-forms/form-elements/buttons/reset-button.jsx","shared/epi-forms/form-elements/inputs/image-choice-input.jsx","shared/epi-forms/form-elements/inputs/rich-text-input.jsx","shared/epi-forms/form-elements/inputs/radio-group-input.jsx","shared/epi-forms/form-elements/form-step/form-step.jsx","shared/epi-forms/form-elements/form-step/form-step-progress.jsx","shared/epi-forms/dependencies.js","shared/epi-forms/epi-forms-component.jsx"],"sourcesContent":["import { useEffect, useState } from \"react\"\n\nexport default function useFormField(predefinedValue, validateField, globalValue, setGlobalValue, setError) {\n  const [isFocused, setIsFocused] = useState(false)\n\n  useEffect(() => {\n    if (predefinedValue && globalValue === undefined) {\n      setGlobalValue(predefinedValue)\n    }\n  }, [])\n\n  useEffect(() => {\n    if (predefinedValue) {\n      const initialError = validateField(predefinedValue)\n      setError(initialError)\n    }\n  }, [])\n\n  const handleFocus = () => {\n    setIsFocused(true)\n    setError(\"\")\n  }\n\n  const handleBlur = (e) => {\n    setIsFocused(false)\n    const value = e.target.value\n    validate(value)\n  }\n\n  const handleBlurFiles = (files) => {\n    setIsFocused(false)\n    validate(files)\n  }\n\n  const handleCheckboxBlur = (values) => {\n    setIsFocused(false)\n    validate(values)\n  }\n\n  const handleChange = (e) => {\n    const newValue = e.target.value\n    setGlobalValue(newValue)\n  }\n\n  const handleFileChange = (files) => {\n    setGlobalValue(files)\n    setIsFocused(false)\n    validate(files)\n  }\n\n  const validate = (value) => {\n    const errorMsg = validateField(value)\n    setError(errorMsg)\n    return errorMsg\n  }\n\n  const handleDateChange = (e) => {\n    const newValue = e.target.value\n    setGlobalValue(newValue)\n    setIsFocused(false)\n    validate(newValue)\n  }\n\n  const handleSelectionChange = (value) => {\n    setGlobalValue(value)\n    setIsFocused(false)\n    validate(value)\n  }\n\n  return {\n    value: globalValue,\n    isFocused,\n    handleFocus,\n    handleBlur,\n    handleChange,\n    handleDateChange,\n    handleSelectionChange,\n    handleCheckboxBlur,\n    handleBlurFiles,\n    handleFileChange,\n  }\n}\n","import React from \"react\"\n\nexport default function FormInputLabel({ id, label, required = false }) {\n  return (\n    <label htmlFor={id} className=\"form-label\">\n      <span className=\"form-label__text\">\n        {label}\n        {required && <span aria-hidden=\"true\">*</span>}\n      </span>\n    </label>\n  )\n}\n","import React from \"react\"\n\nexport default function FormFieldError({ name = \"\", error, placeholder }) {\n  return (\n    <span\n      aria-hidden=\"true\"\n      className={`form-message ${error || placeholder ? \"form-message__show\" : \"\"}`}\n      data-f-linked-name={name}\n      data-f-validationerror=\"\"\n      id={`${name}_desc`}\n    >\n      {error || placeholder}\n    </span>\n  )\n}\n","import { useState, useEffect } from \"react\"\nimport OutsideClickTrigger from \"../../../../booking/components/common/OutsideClickTrigger\"\nimport Svg from \"../../../_svgs/svg\"\n\nconst ToggleInfo = ({ description, id, closeModalLabel, moreInfoLabel }) => {\n  const [toggleInfoActive, setToggleInfoActive] = useState(false)\n\n  const handleToggleInfo = (e) => {\n    if (e) e.preventDefault()\n\n    setToggleInfoActive(!toggleInfoActive)\n  }\n\n  const handleBlur = (e) => {\n    if (e) e.preventDefault()\n    setToggleInfoActive(false)\n  }\n\n  const handleCloseAndRefocusInput = (e) => {\n    e.preventDefault()\n    setToggleInfoActive(false)\n    document.getElementById(id).focus()\n  }\n\n  useEffect(() => {\n    if (!toggleInfoActive) return\n\n    const handleScroll = () => {\n      setToggleInfoActive(false)\n    }\n\n    window.addEventListener(\"scroll\", handleScroll, { passive: true })\n\n    return () => {\n      window.removeEventListener(\"scroll\", handleScroll)\n    }\n  }, [toggleInfoActive])\n\n  if (!description) return null\n\n  return (\n    <OutsideClickTrigger onOutsideClick={(e) => setToggleInfoActive(e)}>\n      <div className=\"form-info-toggle-wrapper\">\n        <button aria-label={moreInfoLabel} className=\"form-info-toggle\" onClick={(e) => handleToggleInfo(e)} aria-expanded={toggleInfoActive}>\n          <Svg iconName=\"Info-Icon\" isDecorative={true} />\n        </button>\n        {toggleInfoActive && (\n          <div className={`form-info-toggle-content ${toggleInfoActive ? \"active\" : \"\"}`}>\n            <p>{description}</p>\n            <button\n              aria-label={closeModalLabel}\n              className=\"form-info-close-button\"\n              onBlur={(e) => handleBlur(e)}\n              onClick={(e) => handleCloseAndRefocusInput(e)}\n            >\n              <Svg iconName=\"close\" />\n            </button>\n          </div>\n        )}\n      </div>\n    </OutsideClickTrigger>\n  )\n}\n\nexport default ToggleInfo\n","import React, { useRef } from \"react\"\nimport useFormField from \"../../../../hooks/useFormField\"\nimport FormInputLabel from \"../labels/form-field-label\"\nimport FormFieldError from \"../labels/form-field-error\"\nimport ToggleInfo from \"../buttons/toggle-info-button\"\n\nexport default function CheckboxGroupInput({\n  name,\n  id,\n  options = [],\n  label,\n  description,\n  required,\n  validateField,\n  globalValue,\n  displayOption,\n  setGlobalValue,\n  error,\n  setError,\n  isPermissionInput = false,\n  permissionText = \"\",\n  closeModalLabel,\n  moreInfoLabel,\n}) {\n  const checkedOptions = options.filter((option) => option.checked)\n  const preValue = checkedOptions.length > 0 ? checkedOptions.map((option) => option.value) : undefined\n  const { value, handleFocus, isFocused, handleCheckboxBlur } = useFormField(preValue, validateField, globalValue, setGlobalValue, setError)\n\n  const wrapperRef = useRef(null)\n\n  const handleMouseDown = (e) => {\n    // Prevent blur when clicking inside the component\n    if (wrapperRef.current && wrapperRef.current.contains(e.target)) {\n      e.preventDefault()\n    }\n  }\n\n  const handleCheckboxChange = (e) => {\n    let newValue\n    if (value == undefined) {\n      newValue = [e.target.value]\n    } else {\n      newValue = e.target.checked ? [...value, e.target.value] : value.filter((val) => val !== e.target.value)\n    }\n    setGlobalValue(newValue)\n  }\n\n  return (\n    <div\n      className={`form-element form-element--choice__multi is-filled Form__Element ${isPermissionInput ? \"permission\" : \"\"} ${displayOption} ${required ? \"is-required\" : \"\"} ${isFocused ? \"has-focus\" : \"\"} ${error ? \"is-invalid\" : \"\"}`}\n      data-f-element-name={name}\n      data-f-type=\"choice\"\n      title={description}\n      aria-label={description}\n    >\n      {label && (\n        <div className=\"form-labels\">\n          <FormInputLabel id={id} label={label} required={required} />\n          <ToggleInfo description={description} id={id} closeModalLabel={closeModalLabel} moreInfoLabel={moreInfoLabel} />\n        </div>\n      )}\n      <div className=\"choice-wrapper\" ref={wrapperRef} onMouseDown={handleMouseDown} id={id}>\n        {options.map((option, index) => (\n          <div key={index} className=\"form-input choice-item\">\n            <label className=\"form-label\">\n              <input\n                type=\"checkbox\"\n                name={name}\n                value={option.value}\n                defaultChecked={option.checked}\n                onChange={handleCheckboxChange}\n                onFocus={handleFocus}\n                onBlur={() => handleCheckboxBlur(value)}\n                className=\"form-input--checkbox\"\n                data-f-datainput=\"\"\n                aria-required={required}\n                required={required}\n              />\n              {isPermissionInput ? (\n                <div className=\"permission-choice\">\n                  <span className=\"form-label__text\">{option.label}</span>\n                  {permissionText ? \"\" : <span className=\"form-label__text form-label__text--value\">{option.value}</span>}\n                </div>\n              ) : (\n                <span className=\"form-label__text\">{option.label}</span>\n              )}\n            </label>\n            {permissionText ? (\n              <div className=\"permission-text\">\n                <span className=\"form-label__text form-label__text--value rich-text\" dangerouslySetInnerHTML={{ __html: permissionText }}></span>\n              </div>\n            ) : (\n              \"\"\n            )}\n          </div>\n        ))}\n      </div>\n      <FormFieldError name={name} error={error} />\n    </div>\n  )\n}\n","import React, { useState } from \"react\"\nimport useFormField from \"../../../../hooks/useFormField\"\nimport FormInputLabel from \"../labels/form-field-label\"\nimport FormFieldError from \"../labels/form-field-error\"\nimport ToggleInfo from \"../buttons/toggle-info-button\"\n\nexport default function FileUploadInput({\n  name,\n  id,\n  label,\n  description,\n  required,\n  fileTypes,\n  allowMultiple,\n  validateField,\n  globalValue,\n  displayOption,\n  setGlobalValue,\n  error,\n  setError,\n  fileUploadPlaceholder,\n  fileUploadHelperText,\n  fileUploadTooManyFilesError,\n  closeModalLabel,\n  moreInfoLabel,\n}) {\n  const { handleFocus, isFocused, handleBlurFiles, handleFileChange } = useFormField(\n    globalValue,\n    validateField,\n    globalValue,\n    setGlobalValue,\n    setError,\n  )\n\n  const [dragActive, setDragActive] = useState(false)\n\n  const handleDragEnter = (e) => {\n    e.preventDefault()\n    e.stopPropagation()\n    setDragActive(true)\n  }\n\n  const handleDragOver = (e) => {\n    e.preventDefault()\n    e.stopPropagation()\n    setDragActive(true)\n  }\n\n  const handleDragLeave = (e) => {\n    e.preventDefault()\n    e.stopPropagation()\n    if (e.target === e.currentTarget) {\n      setDragActive(false)\n    }\n  }\n\n  const handleDrop = (e) => {\n    e.preventDefault()\n    e.stopPropagation()\n    setDragActive(false)\n\n    const files = e.dataTransfer.files\n\n    if (files && files.length) {\n      if (!allowMultiple && files.length > 1) {\n        setError(fileUploadTooManyFilesError || \"Du må kun uploade én fil i dette felt.\")\n        return\n      }\n\n      setError(null)\n      handleFileChange(files)\n    }\n  }\n\n  const handleFileRemove = () => {\n    setGlobalValue(null)\n    handleBlurFiles(null)\n  }\n\n  return (\n    <div\n      className={`form-element form-element--file Form__Element ${displayOption} ${isFocused ? \"has-focus\" : \"\"} ${error ? \"is-invalid\" : \"\"}`}\n      data-f-element-name={name}\n      data-f-type=\"fileupload\"\n      onDragEnter={handleDragEnter}\n      onDragOver={handleDragOver}\n      onDragLeave={handleDragLeave}\n      onDrop={handleDrop}\n    >\n      <div className=\"form-labels\">\n        <FormInputLabel id={id} label={label} required={required} />\n        <ToggleInfo description={description} id={id} closeModalLabel={closeModalLabel} moreInfoLabel={moreInfoLabel} />\n      </div>\n\n      {!globalValue ? (\n        <div className={`file-upload__placeholder ${dragActive ? \"drag-active\" : \"\"}`}>\n          <label htmlFor={id} className=\"file-upload__label\">\n            <span className=\"file-upload__text\">{fileUploadPlaceholder}</span>\n            <span className=\"file-upload__icon\">\n              <svg className=\"svg-icon svg-icon--PlusIcon\">\n                <use xlinkHref=\"/dist/svg/symbols.svg#svg-PlusIcon\"></use>\n              </svg>\n            </span>\n          </label>\n          <input\n            className=\"form-input visually-hidden\"\n            type=\"file\"\n            name={name}\n            id={id}\n            onChange={(e) => handleFileChange(e.target.files)}\n            accept={fileTypes}\n            multiple={allowMultiple}\n            data-f-datainput=\"\"\n            aria-describedby={`${name}_desc`}\n            required={required}\n            aria-required={required}\n            title={description}\n            aria-label={description + (fileUploadPlaceholder != null ? \" \" + fileUploadPlaceholder : \"\")}\n            onFocus={handleFocus}\n            onBlur={(e) => handleBlurFiles(e.target.files)}\n          />\n        </div>\n      ) : (\n        <div className=\"file-upload__selected\">\n          <span className=\"file-upload__file-icon\">\n            <svg className=\"svg-icon svg-icon--paperclip\">\n              <use xlinkHref=\"/dist/svg/symbols.svg#svg-paperclip\"></use>\n            </svg>\n          </span>\n          <span className=\"file-upload__file-name\">\n            {globalValue &&\n              Array.from(globalValue)\n                .map((file) => file.name)\n                .join(\", \")}\n          </span>\n          <button\n            tabIndex={0}\n            type=\"button\"\n            className=\"file-upload__delete\"\n            onClick={handleFileRemove}\n            onKeyDown={(e) => {\n              if (e.key === \"Enter\" || e.key === \" \") {\n                e.preventDefault()\n                handleFileRemove()\n              }\n            }}\n            aria-label=\"Remove uploaded file\"\n            onFocus={handleFocus}\n            onBlur={() => handleBlurFiles(globalValue)}\n          >\n            <svg className=\"svg-icon svg-icon--trashcan\">\n              <use xlinkHref=\"/dist/svg/symbols.svg#svg-trashcan\"></use>\n            </svg>\n          </button>\n        </div>\n      )}\n\n      <FormFieldError name={name} error={error} />\n      <div className=\"file-upload__help-text\">{fileUploadHelperText}</div>\n    </div>\n  )\n}\n","import React from \"react\"\n\nexport default function FormStatus({ statusDisplay, message }) {\n  return (\n    <div className=\"form__section\">\n      <div className=\"Form__Status\">\n        <p className={`Form__Status__Message ${statusDisplay}`} data-f-form-statusmessage>\n          {message}\n        </p>\n      </div>\n    </div>\n  )\n}\n","export default function HiddenField({ name, id, predefinedValue, isProfiling = false }) {\n  return (\n    <input\n      name={name}\n      id={id}\n      type=\"hidden\"\n      value={predefinedValue}\n      className={`Form__Element FormHidden ${isProfiling ? \"FormHideInSummarized\" : \"\"}`}\n      data-f-type=\"hidden\"\n      data-f-linked-name={name}\n    />\n  )\n}\n","import React from \"react\"\nimport HiddenField from \"./hidden-field\"\n\nexport default function HiddenFields({ formGuid, currentPageLink, langauge, formSubmissionId }) {\n  return (\n    <>\n      <HiddenField name=\"__FormGuid\" predefinedValue={formGuid} />\n      <HiddenField name=\"__FormHostedPage\" predefinedValue={currentPageLink} />\n      <HiddenField name=\"__FormLanguage\" predefinedValue={langauge} />\n      <HiddenField name=\"__FormSubmissionId\" predefinedValue={formSubmissionId} />\n    </>\n  )\n}\n","import React from \"react\"\nimport useFormField from \"../../../../hooks/useFormField\"\nimport FormFieldError from \"../labels/form-field-error\"\nimport FormInputLabel from \"../labels/form-field-label\"\nimport ToggleInfo from \"../buttons/toggle-info-button\"\n\nexport default function NumberInput({\n  name,\n  id,\n  label,\n  placeholder,\n  required,\n  description,\n  predefinedValue = \"\",\n  validators = [],\n  validateField,\n  globalValue,\n  setGlobalValue,\n  setError,\n  error,\n  displayOption,\n  closeModalLabel,\n  moreInfoLabel,\n}) {\n  const { value, isFocused, handleFocus, handleBlur, handleChange } = useFormField(\n    predefinedValue,\n    validateField,\n    globalValue,\n    setGlobalValue,\n    setError,\n  )\n\n  return (\n    <div\n      className={`form-element form-element--text form-element--number is-bound Form__Element ${displayOption} ${required ? \"is-required \" : \"\"} \n      ${isFocused ? \"has-focus\" : \"\"} ${isFocused || value ? \"is-filled\" : \"\"}  ${error ? \"is-invalid\" : \"\"}`}\n      data-f-element-name={name}\n      data-f-type=\"textbox\"\n    >\n      <div className=\"form-labels\">\n        <FormInputLabel id={id} label={label} required={required} />\n        <ToggleInfo description={description} id={id} closeModalLabel={closeModalLabel} moreInfoLabel={moreInfoLabel} />\n      </div>\n      <input\n        name={name}\n        id={id}\n        type=\"number\"\n        className=\"form-input\"\n        required={required}\n        aria-required={required}\n        data-f-datainput=\"\"\n        value={value}\n        onChange={handleChange}\n        onFocus={handleFocus}\n        onBlur={handleBlur}\n        aria-describedby={`${name}_desc`}\n        min={validators.some((v) => v.type === \"EPiServer.Forms.Implementation.Validation.PositiveIntegerValidator\") ? \"0\" : undefined}\n        title={description}\n        aria-label={description + (placeholder != null ? \" \" + placeholder : \"\")}\n        aria-invalid={!!error}\n      />\n      <FormFieldError name={name} error={error} placeholder={placeholder} />\n    </div>\n  )\n}\n","import React from \"react\"\nimport useFormField from \"../../../../hooks/useFormField\"\nimport FormInputLabel from \"../labels/form-field-label\"\nimport ToggleInfo from \"../buttons/toggle-info-button\"\n\nexport default function RangeInput({\n  name,\n  id,\n  min,\n  max,\n  step,\n  label,\n  description,\n  predefinedValue,\n  displayOption,\n  globalValue,\n  setGlobalValue,\n  closeModalLabel,\n  moreInfoLabel,\n}) {\n  const { value, handleChange } = useFormField(\n    predefinedValue,\n    () => {},\n    globalValue,\n    setGlobalValue,\n    () => {},\n  )\n\n  return (\n    <div className={`Form__Element FormRange ${displayOption}`} data-f-element-name={name} data-f-type=\"range\">\n      <div className=\"form-labels\">\n        <FormInputLabel id={id} label={label} />\n        <ToggleInfo description={description} id={id} closeModalLabel={closeModalLabel} moreInfoLabel={moreInfoLabel} />\n      </div>\n      <span>\n        <span className=\"FormRange__Min\">{min}</span>\n        <input\n          type=\"range\"\n          name={name}\n          id={id}\n          min={min}\n          max={max}\n          step={step}\n          value={value || min}\n          onChange={(e) => handleChange(e)}\n          className=\"FormRange__Input\"\n          data-f-datainput=\"\"\n          aria-describedby={`${name}_desc`}\n        />\n        <span className=\"FormRange__Max\">{max}</span>\n      </span>\n    </div>\n  )\n}\n","import React, { useState, useEffect, useRef } from \"react\"\nimport useFormField from \"../../../../hooks/useFormField\"\nimport FormFieldError from \"../labels/form-field-error\"\nimport FormInputLabel from \"../labels/form-field-label\"\nimport ToggleInfo from \"../buttons/toggle-info-button\"\n\nexport default function SelectionInput({\n  name,\n  id,\n  label,\n  options = [],\n  placeholder,\n  required,\n  description,\n  validateField,\n  globalValue,\n  setGlobalValue,\n  setError,\n  error,\n  displayOption,\n  closeModalLabel,\n  moreInfoLabel,\n}) {\n  const [selectionOpen, setSelectionOpen] = useState(false)\n  const [focusedIndex, setFocusedIndex] = useState(-1)\n  const initialCheckedValues = options.find((option) => option.checked)?.value || \"\"\n  const { value, isFocused, handleFocus, handleBlur, handleSelectionChange } = useFormField(\n    initialCheckedValues,\n    validateField,\n    globalValue,\n    setGlobalValue,\n    setError,\n  )\n\n  const optionsRef = useRef([])\n\n  const handleToggleDropdown = () => {\n    setSelectionOpen((prev) => !prev)\n    setFocusedIndex(-1)\n  }\n\n  const handleOptionClick = (optionValue) => {\n    handleSelectionChange(optionValue)\n    setSelectionOpen(false)\n    handleBlur({ target: { value: optionValue } })\n  }\n\n  const handleKeyDown = (e) => {\n    if (e.key === \"ArrowDown\") {\n      e.preventDefault()\n      setFocusedIndex((prevIndex) => (prevIndex + 1) % options.length)\n    } else if (e.key === \"ArrowUp\") {\n      e.preventDefault()\n      setFocusedIndex((prevIndex) => (prevIndex > 0 ? prevIndex - 1 : options.length - 1))\n    } else if (e.key === \"Enter\" && focusedIndex >= 0) {\n      e.preventDefault()\n      handleOptionClick(options[focusedIndex].value)\n    } else if (e.key === \"Escape\") {\n      e.preventDefault()\n      setSelectionOpen(false)\n    }\n  }\n\n  useEffect(() => {\n    if (selectionOpen && focusedIndex >= 0 && optionsRef.current[focusedIndex]) {\n      optionsRef.current[focusedIndex].focus()\n    }\n  }, [focusedIndex, selectionOpen])\n\n  return (\n    <div\n      className={`form-element form-element--select__single is-bound Form__Element ${displayOption} ${placeholder || value ? \"is-filled\" : \"\"}\n       ${required ? \"is-required\" : \"\"} ${error ? \"is-invalid\" : \"\"} ${isFocused ? \"has-focus\" : \"\"}`}\n      data-f-element-name={name}\n      data-f-type=\"selection\"\n    >\n      <div className=\"form-container\">\n        <div className=\"form-labels\">\n          <FormInputLabel id={id} label={label} required={required} />\n          <ToggleInfo description={description} id={id} closeModalLabel={closeModalLabel} moreInfoLabel={moreInfoLabel} />\n        </div>\n        <button\n          type=\"button\"\n          id={id}\n          className=\"form-input\"\n          onClick={handleToggleDropdown}\n          onFocus={handleFocus}\n          onBlur={() => !selectionOpen && handleBlur({ target: { value: value } })}\n          onKeyDown={handleKeyDown}\n          aria-expanded={selectionOpen}\n          aria-required={required}\n          aria-label={description + (placeholder != null ? \" \" + placeholder : \"\")}\n          aria-invalid={!!error}\n        >\n          {value || placeholder}\n          <svg className={`svg-icon svg-icon--arrowdownrounded ${selectionOpen ? \"open\" : \"\"}`}>\n            <use xmlnsXlink=\"http://www.w3.org/1999/xlink\" xlinkHref=\"/dist/svg/symbols.svg#svg-arrowdownrounded\">\n              &nbsp;\n            </use>\n          </svg>\n        </button>\n        {selectionOpen && (\n          <div className=\"options open\" role=\"listbox\">\n            {options.map((option, index) => (\n              <div\n                key={index}\n                ref={(el) => (optionsRef.current[index] = el)}\n                className={`option ${index === focusedIndex ? \"focused\" : \"\"}`}\n                tabIndex=\"0\"\n                role=\"option\"\n                aria-selected={value === option.value}\n                onMouseDown={(e) => e.preventDefault()}\n                onClick={() => handleOptionClick(option.value)}\n                onKeyDown={handleKeyDown}\n              >\n                {option.label}\n              </div>\n            ))}\n          </div>\n        )}\n      </div>\n      <FormFieldError name={name} error={error} placeholder={placeholder} />\n    </div>\n  )\n}\n","import React from \"react\"\nimport useFormField from \"../../../../hooks/useFormField\"\nimport FormFieldError from \"../labels/form-field-error\"\nimport FormInputLabel from \"../labels/form-field-label\"\nimport ToggleInfo from \"../buttons/toggle-info-button\"\n\nexport default function TextArea({\n  name,\n  id,\n  label,\n  placeholder,\n  required,\n  description,\n  predefinedValue = \"\",\n  validateField,\n  globalValue,\n  setGlobalValue,\n  setError,\n  error,\n  displayOption,\n  closeModalLabel,\n  moreInfoLabel,\n}) {\n  const { value, isFocused, handleFocus, handleBlur, handleChange } = useFormField(\n    predefinedValue,\n    validateField,\n    globalValue,\n    setGlobalValue,\n    setError,\n  )\n  return (\n    <div\n      className={`form-element form-element--textarea is-bound Form__Element ${displayOption} ${required ? \"is-required \" : \"\"} ${isFocused ? \"has-focus\" : \"\"} \n      ${isFocused || value ? \"is-filled\" : \"\"} ${error ? \"is-invalid\" : \"\"}`}\n      data-f-element-name={name}\n      data-f-type=\"textbox\"\n    >\n      <div className=\"form-labels\">\n        <FormInputLabel id={id} label={label} required={required} />\n        <ToggleInfo description={description} id={id} closeModalLabel={closeModalLabel} moreInfoLabel={moreInfoLabel} />\n      </div>\n      <textarea\n        name={name}\n        id={id}\n        className=\"form-input\"\n        required={required}\n        aria-required={required}\n        data-f-datainput=\"\"\n        value={value || \"\"}\n        onChange={handleChange}\n        onFocus={handleFocus}\n        onBlur={handleBlur}\n        title={description}\n        aria-label={description + (placeholder != null ? \" \" + placeholder : \"\")}\n        aria-invalid={!!error}\n      ></textarea>\n      <FormFieldError name={name} error={error} placeholder={placeholder} />\n    </div>\n  )\n}\n","import React, { useEffect, useRef } from \"react\"\nimport useFormField from \"../../../../hooks/useFormField\"\nimport FormFieldError from \"../labels/form-field-error\"\nimport FormInputLabel from \"../labels/form-field-label\"\nimport DatePickerPikaday from \"../../../../styleguide/js/components/datepicker-pikaday\"\nimport ToggleInfo from \"../buttons/toggle-info-button\"\n\nexport default function TextInput({\n  name,\n  id,\n  label,\n  placeholder,\n  required,\n  description,\n  predefinedValue = \"\",\n  validators = [],\n  validateField,\n  globalValue,\n  setGlobalValue,\n  setError,\n  error,\n  dateFormat,\n  displayOption,\n  closeModalLabel,\n  moreInfoLabel,\n}) {\n  const { value, isFocused, handleFocus, handleBlur, handleChange, handleDateChange } = useFormField(\n    predefinedValue,\n    validateField,\n    globalValue,\n    setGlobalValue,\n    setError,\n  )\n\n  const inputRef = useRef(null)\n  const datePickerRef = useRef(null)\n\n  const inputType = validators.some((v) => v.type === \"EPiServer.Forms.Implementation.Validation.EmailValidator\")\n    ? \"email\"\n    : validators.some((v) => v.Type === \"EPiServer.Forms.Implementation.Validation.NumericValidator\")\n      ? \"number\"\n      : validators.some((v) => v.Type === \"EPiServer.Forms.Implementation.Validation.UrlValidator\")\n        ? \"url\"\n        : \"text\"\n\n  const isDateInput = validators.some((v) =>\n    [\n      \"EPiServer.Forms.Implementation.Validation.DateDDMMYYYYValidator\",\n      \"EPiServer.Forms.Implementation.Validation.DateMMDDYYYYValidator\",\n      \"EPiServer.Forms.Implementation.Validation.DateYYYYMMDDValidator\",\n    ].includes(v.type),\n  )\n\n  const pattern = validators.find((v) => v.regexPattern)?.regexPattern || null\n\n  useEffect(() => {\n    if (isDateInput && inputRef.current) {\n      datePickerRef.current = new DatePickerPikaday({ el: inputRef.current, format: dateFormat })\n    }\n\n    return () => {\n      if (datePickerRef.current) {\n        datePickerRef.current.getPicker().destroy()\n      }\n    }\n  }, [isDateInput])\n\n  return (\n    <div\n      ref={inputRef}\n      className={`form-element Form__Element ${displayOption} ${isDateInput ? \"form-element--date form-element--date--pikaday rm-this-class-hide-default\" : \"form-element--text\"} \n       ${required ? \"is-required \" : \"\"} ${isFocused ? \"has-focus\" : \"\"} ${isFocused || value ? \"is-filled\" : \"\"} ${error ? \"is-invalid\" : \"\"}`}\n      data-f-element-name={name}\n      data-f-type={inputType === \"url\" ? \"url\" : \"textbox\"}\n    >\n      <div className=\"form-labels\">\n        <FormInputLabel id={id} label={label} required={required} />\n        <ToggleInfo description={description} id={id} closeModalLabel={closeModalLabel} moreInfoLabel={moreInfoLabel} />\n      </div>\n      <input\n        name={name}\n        id={id}\n        type={inputType}\n        className=\"form-input\"\n        required={required}\n        aria-required={required}\n        data-f-datainput=\"\"\n        value={value || \"\"}\n        onChange={handleChange}\n        onFocus={handleFocus}\n        onBlur={isDateInput ? (e) => handleDateChange(e) : handleBlur}\n        aria-describedby={`${name}_desc`}\n        pattern={pattern || undefined}\n        title={description}\n        aria-label={description + (placeholder != null ? \" \" + placeholder : \"\")}\n        aria-invalid={!!error}\n        autoComplete={isDateInput ? \"off\" : \"on\"}\n      />\n      <FormFieldError name={name} error={error} placeholder={placeholder} />\n    </div>\n  )\n}\n","import React from \"react\"\nimport useFormField from \"../../../../hooks/useFormField\"\nimport FormFieldError from \"../labels/form-field-error\"\nimport FormInputLabel from \"../labels/form-field-label\"\nimport ToggleInfo from \"../buttons/toggle-info-button\"\n\nexport default function SelectionMultiInput({\n  name,\n  id,\n  label,\n  options = [],\n  placeholder,\n  required,\n  description,\n  validateField,\n  globalValue,\n  setGlobalValue,\n  setError,\n  error,\n  displayOption,\n  closeModalLabel,\n  moreInfoLabel,\n}) {\n  const initialCheckedValues = options.filter((option) => option.checked).map((option) => option.value)\n  const { value, isFocused, handleFocus, handleBlur, handleChange } = useFormField(\n    initialCheckedValues,\n    validateField,\n    globalValue,\n    setGlobalValue,\n    setError,\n  )\n\n  const handleSelectChange = (e) => {\n    const newValue = Array.from(e.target.selectedOptions, (option) => option.value)\n    handleChange({ target: { value: newValue } })\n  }\n\n  return (\n    <div\n      className={`form-element form-element--select__multi is-bound Form__Element ${displayOption} ${placeholder || value || isFocused ? \"is-filled\" : \"\"} ${\n        isFocused ? \"has-focus\" : \"\"\n      } ${required ? \"is-required\" : \"\"} ${error ? \"is-invalid\" : \"\"}`}\n      data-f-element-name={name}\n      data-f-type=\"selection\"\n    >\n      <div className=\"form-container\">\n        <div className=\"form-labels\">\n          <FormInputLabel id={id} label={label} required={required} />\n          <ToggleInfo description={description} id={id} closeModalLabel={closeModalLabel} moreInfoLabel={moreInfoLabel} />\n        </div>\n        <select\n          name={name}\n          id={id}\n          className=\"form-input\"\n          required={required}\n          aria-required={required}\n          multiple\n          data-f-datainput=\"\"\n          aria-describedby={`${name}_desc`}\n          value={value}\n          onFocus={handleFocus}\n          onBlur={handleBlur}\n          onChange={handleSelectChange}\n          title={description}\n          aria-label={description + (placeholder != null ? \" \" + placeholder : \"\")}\n          aria-invalid={!!error}\n        >\n          {options.map((option, index) => (\n            <option key={index} value={option.value} data-f-default-value={option.checked}>\n              {option.label}\n            </option>\n          ))}\n        </select>\n      </div>\n      <FormFieldError name={name} error={error} placeholder={placeholder} />\n    </div>\n  )\n}\n","import React from \"react\"\n\nexport default function SubmitButton({ id, label = \"Submit\", description, displayOption, formStepsCount, previousStepLabel, goBack }) {\n  const submitButton = () => {\n    return (\n      <button\n        tabIndex={0}\n        id={id}\n        name=\"submit\"\n        type=\"submit\"\n        value={id}\n        className={`button button--submit button--medium button--general no-shadow casc-blue Form__Element ${formStepsCount > 0 ? \"displaymode-half\" : displayOption}`}\n        data-f-is-finalized={true}\n        data-f-is-progressive-submit={true}\n        data-f-type=\"submitbutton\"\n        title={description}\n        aria-label={description}\n      >\n        <span className=\"text\">{label}</span>\n      </button>\n    )\n  }\n\n  if (formStepsCount > 0) {\n    return (\n      <>\n        <button type=\"button\" className={`button button--medium button--general button--reset Form__Element displaymode-half`} onClick={goBack}>\n          {previousStepLabel || \"Tilbage\"}\n        </button>\n        {submitButton()}\n      </>\n    )\n  }\n\n  return submitButton()\n}\n","import React from \"react\"\n\nexport default function ResetButton({ id, name, label = \"Reset\", description, formGuid, displayOption }) {\n  return (\n    <input\n      tabIndex={0}\n      id={id}\n      name={name}\n      type=\"reset\"\n      value={label}\n      className={`button button--reset button--medium Form__Element ${displayOption}`}\n      data-f-element-nondata=\"\"\n      data-f-type=\"resetbutton\"\n      title={description}\n      aria-label={description}\n      form={formGuid}\n    />\n  )\n}\n","import React from \"react\"\nimport useFormField from \"../../../../hooks/useFormField\"\n\nexport default function ImageChoiceInput({\n  name,\n  id,\n  options = [],\n  label,\n  description,\n  required,\n  showSelectionInputControl,\n  allowMultiSelect,\n  displayOption,\n  globalValue,\n  setGlobalValue,\n}) {\n  const preValue = allowMultiSelect ? [] : \"\"\n  const { value, handleChange } = useFormField(\n    preValue,\n    () => {},\n    globalValue,\n    setGlobalValue,\n    () => {},\n  )\n\n  const handleImageSelect = (e) => {\n    const selectedValue = e.target.value\n    if (allowMultiSelect) {\n      const newValue = value.includes(selectedValue) ? value.filter((val) => val !== selectedValue) : [...value, selectedValue]\n      handleChange({ target: { value: newValue } })\n    } else {\n      handleChange({ target: { value: selectedValue } })\n    }\n  }\n\n  return (\n    <div\n      className={`Form__Element FormChoice FormChoice--Image ${displayOption} ${required ? \"ValidationRequired\" : \"\"}`}\n      data-f-element-name={name}\n      data-f-type=\"choice\"\n      title={description}\n      aria-label={description}\n    >\n      <fieldset>\n        <legend className=\"Form__Element__Caption\">{label}</legend>\n        {options.map((option, index) => (\n          <label key={index} htmlFor={`${id}_${index}`} className=\"FormChoice--Image__Item\">\n            <input\n              type={allowMultiSelect ? \"checkbox\" : \"radio\"}\n              id={`${id}_${index}`}\n              name={name}\n              value={option.text}\n              className=\"FormChoice__Input\"\n              data-f-datainput=\"\"\n              checked={allowMultiSelect ? value.includes(option.text) : value === option.text}\n              onChange={handleImageSelect}\n              title={description}\n              aria-label={description}\n              required={required}\n              aria-required={required}\n            />\n            {showSelectionInputControl && <span className=\"FormChoice--Image__Item__Caption\">{option.text}</span>}\n            <img src={option.href} title={option.text} alt={option.text} />\n          </label>\n        ))}\n      </fieldset>\n    </div>\n  )\n}\n","export default function RichTextInput({ label, id, paragraphText, description, displayOption, disablePlaceholdersReplacement = false }) {\n  return (\n    <div\n      className={`form-element form-element--richtext Form__Element ${displayOption}`}\n      id={id}\n      data-f-element-nondata=\"\"\n      title={description}\n      aria-label={description}\n    >\n      <div className=\"rich-text\" dangerouslySetInnerHTML={{ __html: paragraphText }} />\n    </div>\n  )\n}\n","import React from \"react\"\nimport FormInputLabel from \"../labels/form-field-label\"\nimport useFormField from \"../../../../hooks/useFormField\"\nimport FormFieldError from \"../labels/form-field-error\"\nimport ToggleInfo from \"../buttons/toggle-info-button\"\n\nexport default function RadioGroupInput({\n  name,\n  id,\n  options = [],\n  label,\n  description,\n  required,\n  validateField,\n  displayOption,\n  globalValue,\n  setGlobalValue,\n  error,\n  setError,\n  closeModalLabel,\n  moreInfoLabel,\n}) {\n  const preValue = options.find((option) => option.checked)?.value\n  const { value, handleSelectionChange } = useFormField(preValue, validateField, globalValue, setGlobalValue, setError)\n\n  return (\n    <div\n      className={`form-element form-element--choice__single is-filled Form__Element  ${displayOption} ${required ? \"is-required\" : \"\"} ${error ? \"is-invalid\" : \"\"}`}\n      data-f-element-name={name}\n      data-f-type=\"choice\"\n      aria-label={description}\n    >\n      <div className=\"form-labels\">\n        <FormInputLabel id={id} label={label} required={required} />\n        <ToggleInfo description={description} id={id} closeModalLabel={closeModalLabel} moreInfoLabel={moreInfoLabel} />\n      </div>\n      <div className=\"choice-wrapper\" id={id}>\n        {options &&\n          options.map((option, index) => (\n            <div key={index} className=\"form-input choice-item\">\n              <label className=\"form-label\">\n                <input\n                  type=\"radio\"\n                  name={name}\n                  value={option.value}\n                  checked={value === option.value}\n                  onChange={(e) => handleSelectionChange(e.target.value)}\n                  className=\"form-input--radio\"\n                  data-f-datainput=\"\"\n                  aria-required={required}\n                  title={description}\n                  required={required}\n                />\n                <span className=\"form-label__text\">{option.label}</span>\n              </label>\n            </div>\n          ))}\n      </div>\n      <FormFieldError name={name} error={error} />\n    </div>\n  )\n}\n","import React from \"react\"\n\nexport default function FormStep({\n  formElements,\n  formStepsCount,\n  activeStep,\n  previousStepLabel,\n  nextStepLabel,\n  renderFormElement,\n  validateStep,\n  goBack,\n}) {\n  return (\n    <>\n      {formElements && formElements.map((formElement, index) => renderFormElement(formElement, formElement.name))}\n      {activeStep != 0 && activeStep + 1 != formStepsCount ? (\n        <button type=\"button\" className={`button button--medium button--general button--reset Form__Element displaymode-half`} onClick={goBack}>\n          {previousStepLabel || \"Tilbage\"}\n        </button>\n      ) : null}\n      {activeStep + 1 != formStepsCount ? (\n        <button\n          type=\"button\"\n          className={`button button--medium button--general Form__Element ${activeStep == 0 ? \"displaymode-full\" : \"displaymode-half\"}`}\n          onClick={validateStep}\n        >\n          {nextStepLabel || \"Næste\"}\n        </button>\n      ) : null}\n    </>\n  )\n}\n","import React, { forwardRef } from \"react\"\n\nfunction StepProgress({ activeStep, formStepsCount }, ref) {\n  return (\n    <div ref={ref} className=\"step-progress Form__Element displaymode-full\">\n      {Array.from({ length: formStepsCount }, (_, i) => i + 1).map((step) => {\n        const actualActiveStep = activeStep + 1\n        const isActive = step === actualActiveStep\n        const isCompleted = step < actualActiveStep\n\n        const nextStep = step + 1\n        const isLineSolid = step <= actualActiveStep && nextStep <= actualActiveStep\n\n        return (\n          <div className=\"step\" key={step}>\n            <div className={[\"circle\", isActive ? \"active\" : \"\", isCompleted ? \"completed\" : \"\"].join(\" \")}>{step}</div>\n            {step !== formStepsCount && <div className={isLineSolid ? \"step-line line-completed\" : \"step-line line-incomplete\"} />}\n          </div>\n        )\n      })}\n    </div>\n  )\n}\n\nexport default forwardRef(StepProgress)\n","// conditions\nexport const NOT_APPLICABLE = 0\nexport const MATCH_REGULAR_EXPRESSION = 1\nexport const EQUALS = 2\nexport const NOT_EQUALS = 3\nexport const CONTAINS = 4\nexport const NOT_CONTAINS = 5\n\n// action\nexport const SHOW = \"EPiServer.Forms.Core.Internal.Dependency.ShowAction\"\nexport const HIDE = \"EPiServer.Forms.Core.Internal.Dependency.HideAction\"\n\n// condition combination\nexport const ALL = 0\nexport const ANY = 1\n\nexport const DependConditionDescriptions = {\n  [NOT_APPLICABLE]: \"Not applicable\",\n  [MATCH_REGULAR_EXPRESSION]: \"Match regular expression\",\n  [EQUALS]: \"Equals\",\n  [NOT_EQUALS]: \"Not equals\",\n  [CONTAINS]: \"Contains\",\n  [NOT_CONTAINS]: \"Not contains\",\n}\n\nexport const SatisfiedActionDescriptions = {\n  [SHOW]: \"Show if conditions are met\",\n  [HIDE]: \"Hide if conditions are met\",\n}\n\nexport const ConditionCombinationDescriptions = {\n  [ALL]: \"All conditions are met\",\n  [ANY]: \"Any condition is met\",\n}\n\nexport const getConditionDescription = (condition) => {\n  return DependConditionDescriptions[condition] || \"Unknown condition\"\n}\n\nexport const getSatisfiedActionDescription = (action) => {\n  return SatisfiedActionDescriptions[action] || \"Unknown action\"\n}\n\nexport const getConditionCombinationDescription = (combination) => {\n  return ConditionCombinationDescriptions[combination] || \"Unknown combination\"\n}\n\nexport const evaluateCondition = (condition, inputValue, targetValue) => {\n  switch (condition) {\n    case EQUALS:\n      return inputValue && inputValue === targetValue\n    case NOT_EQUALS:\n      return inputValue && inputValue !== targetValue\n    case CONTAINS:\n      return inputValue && inputValue.includes(targetValue)\n    case NOT_CONTAINS:\n      return inputValue && !inputValue.includes(targetValue)\n    case MATCH_REGULAR_EXPRESSION:\n      return inputValue && new RegExp(targetValue).test(inputValue)\n    default:\n      return true // Default for non-applicable or unknown cases\n  }\n}\n\nconst formatFieldKey = (fieldId) => `__field_${fieldId}`\n\nexport const evaluateDependencies = (dependencies, formValues, conditionCombination) => {\n  const results = dependencies?.map((dependency) => {\n    const fieldKey = formatFieldKey(dependency.field)\n    const inputValue = formValues[fieldKey]\n    return evaluateCondition(dependency.operator, inputValue, dependency.value)\n  })\n\n  return conditionCombination === ALL ? results.every(Boolean) : results.some(Boolean)\n}\n\nexport const shouldDisplayField = (formField, formValues) => {\n  const { dependencies, satisfiedAction, conditionCombination } = formField\n  if (!dependencies) return true\n  const dependenciesMet = evaluateDependencies(dependencies, formValues, conditionCombination)\n\n  if (satisfiedAction === SHOW) {\n    return dependenciesMet\n  } else if (satisfiedAction === HIDE) {\n    return !dependenciesMet\n  }\n  return true\n}\n","import React, { useEffect, useState, useRef } from \"react\"\nimport {\n  CheckboxGroupInput,\n  FileUploadInput,\n  FormStatus,\n  HiddenFields,\n  HiddenField,\n  NumberInput,\n  RangeInput,\n  SelectionInput,\n  TextArea,\n  TextInput,\n  SubmitButton,\n  ResetButton,\n  SelectionMultiInput,\n  ImageChoiceInput,\n  RichTextInput,\n  RadioGroupInput,\n  FormStep,\n  StepProgress,\n} from \"./form-elements\"\nimport { shouldDisplayField, evaluateCondition } from \"./dependencies\"\nimport Spinner from \"../../booking/components/spinner\"\n\nexport default function EpiForms({\n  allowAnonymousSubmission,\n  allowExposingDataFeeds,\n  allowMultipleSubmission,\n  allowToStoreSubmissionData,\n  confirmationMessage,\n  createdDate,\n  description,\n  formElements,\n  finalizedSubmissionRetentionPeriod,\n  formGuid,\n  lastSubmissionDate,\n  metadataAttribute,\n  modifiedDate,\n  name,\n  partialSubmissionRetentionPeriod,\n  redirectToPage,\n  redirectUrl,\n  showNavigationBar,\n  showSummarizedData,\n  submitSuccessMessage,\n  title,\n  authSrc,\n  currentPageLink,\n  langauge,\n  formSubmissionId,\n  validationCssClass,\n  statusDisplay,\n  message,\n  formToken,\n  backButtonLabel,\n  urlValidatorErrorMessage,\n  fileUploadPlaceholder,\n  fileUploadHelperText,\n  fileUploadTooManyFilesError,\n  groupingTopPadding,\n  groupingBottomPadding,\n  recaptchaField,\n  reCaptchaSiteKey,\n  previousStepLabel,\n  nextStepLabel,\n  moreInfoLabel,\n  closeModalLabel,\n}) {\n  const [formValues, setFormValues] = useState({})\n  const [errors, setErrors] = useState({})\n  const [fieldVisibility, setFieldVisibility] = useState({})\n  const [formSubmitted, setFormSubmitted] = useState(false)\n  const [ajaxSpinnerActive, setAjaxSpinnerActive] = useState(false)\n  const [ajaxSpinnerTransparent, setAjaxSpinnerTransparent] = useState(false)\n  const [formSteps, setFormSteps] = useState([])\n  const [formStepsCount, setFormStepsCount] = useState(0)\n  const [activeStep, setActiveStep] = useState(0)\n  const stepProgressRef = useRef(null)\n\n  const handleFieldChange = (name, value) => {\n    setFormValues((prevValues) => ({\n      ...prevValues,\n      [name]: value,\n    }))\n  }\n\n  const setFieldError = (name, error) => {\n    setErrors((prevErrors) => ({\n      ...prevErrors,\n      [name]: error,\n    }))\n  }\n\n  const handleReset = () => {\n    setFormValues({})\n    setErrors({})\n  }\n\n  const isFieldRequired = (validators) => {\n    return validators?.some((v) => v.type === \"EPiServer.Forms.Implementation.Validation.RequiredValidator\") ?? false\n  }\n\n  useEffect(() => {\n    setFormSteps(getFormSteps(formElements))\n  }, [fieldVisibility])\n\n  useEffect(() => {\n    const newVisibility = {}\n    let visibleStepsCount = 0\n\n    formElements.forEach((element) => {\n      if (element.__type__ === \"FormGrouping\" && element?.groupedFormElements && element.groupedFormElements.length > 0) {\n        element.groupedFormElements.forEach((subElement) => {\n          newVisibility[subElement.name] = shouldDisplayField(subElement, formValues)\n        })\n      } else if (element.__type__ === \"FormStepBlock\") {\n        let isVisible = true\n        if (element.dependField && element.dependCondition !== 0 && element.dependValue !== null) {\n          const fieldValue = formValues[element.dependField]\n          const conditionMet = evaluateCondition(element.dependCondition, fieldValue, element.dependValue)\n\n          isVisible = conditionMet ?? false\n        }\n        newVisibility[element.name] = isVisible\n        if (isVisible) {\n          visibleStepsCount++\n        }\n      } else {\n        // All other element types\n        newVisibility[element.name] = shouldDisplayField(element, formValues)\n      }\n    })\n\n    setFieldVisibility(newVisibility)\n    setFormStepsCount(visibleStepsCount)\n  }, [formValues, formElements])\n\n  const validateForm = (formElems) => {\n    let firstInvalidField = null\n    const newErrors = {}\n\n    formElems.forEach((element) => {\n      if (element.__type__ === \"FormGrouping\" && element?.groupedFormElements?.length > 0) {\n        element?.groupedFormElements.forEach((subElement) => {\n          if (fieldVisibility[subElement.name]) {\n            if (subElement.validators) {\n              const required = isFieldRequired(subElement.validators)\n              const error = validateField(formValues[subElement.name], subElement.validators, required)\n              if (error) {\n                newErrors[subElement.name] = error\n                setFieldError(subElement.name, error)\n                if (!firstInvalidField) {\n                  firstInvalidField = document.querySelector(`[name=\"${subElement.name}\"]`)\n                }\n              }\n            } else {\n              setFieldError(subElement.name, null)\n            }\n          }\n        })\n      } else {\n        if (fieldVisibility[element.name]) {\n          if (element.validators) {\n            const required = isFieldRequired(element.validators)\n            const error = validateField(formValues[element.name], element.validators, required)\n            if (error) {\n              newErrors[element.name] = error\n              setFieldError(element.name, error)\n              if (!firstInvalidField) {\n                firstInvalidField = document.querySelector(`[name=\"${element.name}\"]`)\n              }\n            }\n          } else {\n            setFieldError(element.name, null)\n          }\n        }\n      }\n    })\n\n    setErrors(newErrors)\n\n    return firstInvalidField\n  }\n\n  const handleSubmit = (e) => {\n    e.preventDefault()\n    let firstInvalidField = validateForm(formElements)\n\n    if (firstInvalidField) {\n      scrollToElement(firstInvalidField)\n    } else {\n      submitFormHandler(e) // No errors, submit the form\n    }\n  }\n\n  const submitFormHandler = async (e) => {\n    e.preventDefault()\n\n    setAjaxSpinnerActive(true)\n    setAjaxSpinnerTransparent(false)\n\n    // Create the FormData and append metadata\n    const formData = new FormData()\n    formData.append(\"__RequestVerificationToken\", formToken)\n    formData.append(\"__FormGuid\", formGuid)\n    formData.append(\"__FormHostedPage\", currentPageLink)\n    formData.append(\"__FormLanguage\", langauge)\n    formData.append(\"__FormSubmissionId\", formSubmissionId)\n\n    // Append all form values (only if visible per your logic)\n    Object.keys(formValues).forEach((key) => {\n      if (!fieldVisibility[key] || !isElementInAnyStep(formSteps, key)) return // only send value if the field is visible or part of a step\n      let value = formValues[key]\n      if (value instanceof FileList) {\n        for (let i = 0; i < value.length; i++) {\n          formData.append(key, value[i])\n        }\n      } else {\n        let element = formElements.find((el) => el.name === key)\n        if (!element) {\n          for (let i = 0; i < formElements.length; i++) {\n            element = formElements[i].groupedFormElements?.find((el) => el.name === key)\n            if (element) break\n          }\n        }\n        const hasDateValidator = element?.validators?.some((v) =>\n          [\n            \"EPiServer.Forms.Implementation.Validation.DateDDMMYYYYValidator\",\n            \"EPiServer.Forms.Implementation.Validation.DateMMDDYYYYValidator\",\n            \"EPiServer.Forms.Implementation.Validation.DateYYYYMMDDValidator\",\n          ].includes(v.type),\n        )\n        if (hasDateValidator && typeof value === \"string\") {\n          value = value.replace(/\\s+/g, \"\")\n        }\n        formData.append(key, value)\n      }\n    })\n\n    const submitButton = e.nativeEvent.submitter\n    const submitButtonId = submitButton ? submitButton.id : null\n\n    // This inner function will handle the actual POST for a single step.\n    const postForm = async () => {\n      if (recaptchaField && reCaptchaSiteKey) {\n        return new Promise((resolve, reject) => {\n          window.grecaptcha.ready(() => {\n            window.grecaptcha\n              .execute(reCaptchaSiteKey, { action: \"submit\" })\n              .then(async (token) => {\n                formData.append(recaptchaField, token)\n                try {\n                  const response = await fetch(window.location.href, {\n                    method: \"POST\",\n                    body: formData,\n                    headers: {\n                      RequestVerificationToken: formToken,\n                    },\n                  })\n                  if (response.ok) {\n                    resolve()\n                  } else {\n                    console.error(\"Form submission failed\", response.status)\n                    reject(new Error(\"Form submission failed\"))\n                  }\n                } catch (error) {\n                  reject(error)\n                }\n              })\n              .catch(reject)\n          })\n        })\n      } else {\n        const response = await fetch(window.location.href, {\n          method: \"POST\",\n          body: formData,\n          headers: {\n            RequestVerificationToken: formToken,\n          },\n        })\n        if (!response.ok) {\n          console.error(\"Form submission failed\", response.status)\n          throw new Error(\"Form submission failed\")\n        }\n      }\n    }\n\n    try {\n      if (formSteps != null && formSteps.length > 0) {\n        // Submit once for each step (sequentially)\n        for (const step of formSteps) {\n          // Set the current step index for this submission\n          formData.set(\"__FormCurrentStepIndex\", step.stepIndex)\n          if (step.stepIndex === formSteps.length - 1 && submitButtonId) {\n            // Append the submit button information on last step submit if available\n            formData.append(submitButton.name, submitButtonId)\n          }\n          await postForm()\n        }\n      } else {\n        // If no steps, set to 0 and submit once.\n        formData.set(\"__FormCurrentStepIndex\", 0)\n        // Append the submit button information if available\n        if (submitButtonId) {\n          formData.append(submitButton.name, submitButtonId)\n        }\n        await postForm()\n      }\n    } catch (error) {\n      console.error(\"Error submitting form\", error)\n    } finally {\n      setAjaxSpinnerActive(false)\n      setAjaxSpinnerTransparent(false)\n      setFormSubmitted(true)\n      const acceptPage = document.querySelector(\".accept-page\")\n      scrollToElement(acceptPage)\n    }\n  }\n\n  const scrollToElement = (element) => {\n    const headerElement = document.querySelector(\".site-header.js--site-header\")\n    const offset = headerElement ? headerElement.offsetHeight + 40 : 0\n\n    const elementPosition = element.getBoundingClientRect().top + window.scrollY - offset\n\n    window.scrollTo({\n      top: elementPosition,\n      behavior: \"smooth\",\n    })\n  }\n\n  const handleBack = () => {\n    setFormValues({})\n    setErrors({})\n    setFormSubmitted(false)\n    setActiveStep(0)\n  }\n\n  const renderFormElement = (element, key) => {\n    if (element.__type__ !== \"FormGrouping\" && !fieldVisibility[element.name]) {\n      return null // Hide element if visibility condition is not met\n    }\n\n    const required = isFieldRequired(element.validators)\n    const props = {\n      ...element,\n      closeModalLabel: closeModalLabel,\n      moreInfoLabel: moreInfoLabel,\n      required: required,\n      validateField: (value) => validateField(value, element.validators, required),\n      globalValue: formValues[element.name],\n      setGlobalValue: (value) => handleFieldChange(element.name, value),\n      setError: (error) => setFieldError(element.name, error),\n      error: errors[element.name],\n    }\n\n    switch (element.__type__) {\n      case \"TextboxElementBlock\":\n      case \"UrlElementBlock\":\n      case \"TextWithIdBlock\":\n        return <TextInput key={key} {...props} />\n      case \"TextareaElementBlock\":\n        return <TextArea key={key} {...props} />\n      case \"NumberElementBlock\":\n        return <NumberInput key={key} {...props} />\n      case \"RangeElementBlock\":\n        return <RangeInput key={key} {...props} />\n      case \"SelectionElementBlock\":\n        return element.allowMultiSelect ? <SelectionMultiInput key={key} {...props} /> : <SelectionInput key={key} {...props} />\n      case \"ChoiceElementBlock\":\n        return element.allowMultiSelect ? <CheckboxGroupInput key={key} {...props} /> : <RadioGroupInput key={key} {...props} />\n      case \"SignupChoiceBlock\":\n        return <CheckboxGroupInput key={key} {...props} isPermissionInput={true} />\n      case \"ImageChoiceElementBlock\":\n        return <ImageChoiceInput key={key} {...props} />\n      case \"FileUploadElementBlock\":\n        return (\n          <FileUploadInput\n            key={key}\n            {...props}\n            fileUploadPlaceholder={fileUploadPlaceholder}\n            fileUploadHelperText={fileUploadHelperText}\n            fileUploadTooManyFilesError={fileUploadTooManyFilesError}\n          />\n        )\n      case \"HiddenPredefinedValue\":\n        return <HiddenField key={key} {...props} />\n      case \"HiddenVisitorProfiling\":\n        return <HiddenField key={key} {...props} dataProfiling={true} />\n      case \"SubmitButtonElementBlock\":\n        return (\n          <SubmitButton\n            key={key}\n            {...props}\n            formStepsCount={formStepsCount}\n            setActiveStep={setActiveStep}\n            activeStep={activeStep}\n            previousStepLabel={previousStepLabel}\n            goBack={goBack}\n          />\n        )\n      case \"ResetButtonElementBlock\":\n        return <ResetButton key={key} {...props} formGuid={formGuid} />\n      case \"ParagraphTextElementBlock\":\n        return <RichTextInput key={key} {...props} />\n      case \"RecaptchaElement\":\n        return <input name={props.name} id={props.name} type=\"hidden\" className=\"form-input\" data-f-datainput=\"\" value=\"\" />\n      case \"FormGrouping\":\n        return element?.groupedFormElements?.length > 0 ? (\n          <div className={`form-group ${groupingTopPadding} ${groupingBottomPadding}`}>\n            {element.groupedFormElements.map((el2, i2) => renderFormElement(el2, el2.name))}\n          </div>\n        ) : null\n      default:\n        return null\n    }\n  }\n\n  const renderFormSteps = (steps) => {\n    const currentStep = steps[activeStep]\n    const stepElements = currentStep.formStepElements\n    return (\n      <FormStep\n        formElements={stepElements}\n        formStepsCount={formStepsCount}\n        activeStep={activeStep}\n        previousStepLabel={previousStepLabel}\n        nextStepLabel={nextStepLabel}\n        renderFormElement={renderFormElement}\n        goBack={goBack}\n        validateStep={() => validateStep(stepElements)}\n      />\n    )\n  }\n\n  const validateField = (value, validators, required) => {\n    const checkRegex = (pattern, errorMessage, defaultMsg) => {\n      const regex = new RegExp(pattern)\n      if (!regex.test(value)) return errorMessage || defaultMsg\n    }\n\n    if (!required && !value) return \"\"\n\n    for (const validator of validators) {\n      const { type, errorMessage, regexPattern } = validator\n\n      switch (type) {\n        case \"EPiServer.Forms.Implementation.Validation.RequiredValidator\":\n          if (\n            (Array.isArray(value) && !value.some((item) => item && item.trim())) ||\n            (value instanceof FileList && value.length === 0) ||\n            (!Array.isArray(value) && !(value instanceof FileList) && (!value || !value.trim()))\n          ) {\n            return errorMessage || \"Dette felt er obligatorisk.\"\n          }\n          break\n\n        case \"EPiServer.Forms.Implementation.Validation.EmailValidator\":\n          if (regexPattern) return checkRegex(regexPattern, errorMessage, \"Angiv en gyldig e-mailadresse.\")\n          break\n\n        case \"EPiServer.Forms.Implementation.Validation.RegularExpressionValidator\":\n          if (regexPattern) return checkRegex(regexPattern, errorMessage, \"Dette felt skal have formatet '{pattern}'\")\n          break\n\n        case \"EPiServer.Forms.Implementation.Validation.DateDDMMYYYYValidator\":\n          if (regexPattern) return checkRegex(regexPattern, errorMessage, \"Angiv en dato i formatet DD/MM/YYYY.\")\n          break\n\n        case \"EPiServer.Forms.Implementation.Validation.DateMMDDYYYYValidator\":\n          if (regexPattern) return checkRegex(regexPattern, errorMessage, \"Angiv en dato i formatet MM/DD/YYYY.\")\n          break\n\n        case \"EPiServer.Forms.Implementation.Validation.DateYYYYMMDDValidator\":\n          if (regexPattern) return checkRegex(regexPattern, errorMessage, \"Angiv en dato i formatet YYYY-MM-DD.\")\n          break\n\n        case \"EPiServer.Forms.Implementation.Validation.IntegerValidator\":\n          if (!Number.isInteger(Number(value))) return errorMessage || \"Angiv et gyldigt heltal.\"\n          break\n\n        case \"EPiServer.Forms.Implementation.Validation.PositiveIntegerValidator\":\n          if (!Number.isInteger(Number(value)) || Number(value) <= 0) return errorMessage || \"Angiv et positivt heltal.\"\n          break\n\n        case \"EPiServer.Forms.Implementation.Validation.UrlValidator\":\n          if (regexPattern) return checkRegex(regexPattern, errorMessage ?? urlValidatorErrorMessage, \"Angiv en URL\") // URL validator doesnt have a built in error message from Episerver\n          break\n\n        default:\n          break\n      }\n    }\n    return \"\" // No error\n  }\n\n  const getFormSteps = (formElements) => {\n    if (!fieldVisibility || Object.keys(fieldVisibility).length === 0) {\n      return null\n    }\n\n    const hasStepBlock = formElements.some((element) => element.__type__ === \"FormStepBlock\")\n    if (!hasStepBlock) {\n      return null\n    }\n\n    const steps = []\n    let currentStep = null\n    let stepIndexCounter = 0\n\n    for (const element of formElements) {\n      if (element.__type__ === \"FormStepBlock\") {\n        if (currentStep && fieldVisibility[currentStep.name]) {\n          steps.push(currentStep)\n        }\n        const currentIndex = stepIndexCounter\n        stepIndexCounter++\n\n        if (fieldVisibility[element.name]) {\n          currentStep = { ...element, formStepElements: [], stepIndex: currentIndex }\n        } else {\n          currentStep = null\n        }\n      } else if (currentStep) {\n        currentStep.formStepElements.push(element)\n      }\n    }\n\n    if (currentStep && fieldVisibility[currentStep.name]) {\n      steps.push(currentStep)\n    }\n\n    return steps\n  }\n\n  const isElementInAnyStep = (formSteps, elementName) => {\n    if (!formSteps || formSteps.length === 0) {\n      return true\n    }\n\n    return formSteps.some((step) => {\n      if (!Array.isArray(step.formStepElements)) {\n        return false\n      }\n\n      return step.formStepElements.some((element) => {\n        if (element.name === elementName) {\n          return true\n        }\n\n        if (Array.isArray(element.groupedFormElements)) {\n          return element.groupedFormElements.some((groupedEl) => groupedEl.name === elementName)\n        }\n\n        return false\n      })\n    })\n  }\n\n  const validateStep = (formElements) => {\n    let firstInvalidField = validateForm(formElements)\n\n    if (firstInvalidField) {\n      scrollToElement(firstInvalidField)\n    } else {\n      setActiveStep(activeStep + 1) // No errors, go to next step\n      if (stepProgressRef.current) scrollToElement(stepProgressRef.current)\n    }\n  }\n\n  const goBack = () => {\n    setActiveStep(activeStep - 1)\n    if (stepProgressRef.current) scrollToElement(stepProgressRef.current)\n  }\n\n  if (formSubmitted) {\n    return (\n      <section className=\"deck deck--white deck--extra-padding-top deck--extra-padding-bottom\">\n        <div className=\"epi-forms\">\n          <div className=\"w--narrow accept-page\">\n            <div className=\"checkmark\">\n              <svg className={`svg-icon svg-icon--checkmark3`}>\n                <use xmlnsXlink=\"http://www.w3.org/1999/xlink\" xlinkHref=\"/dist/svg/symbols.svg#svg-checkmark3\">\n                  &nbsp;\n                </use>\n              </svg>\n            </div>\n            <div className=\"form-info\">\n              <h2 className=\"form-title\">{confirmationMessage}</h2>\n              <h4 className=\"form-description\" dangerouslySetInnerHTML={{ __html: submitSuccessMessage }}></h4>\n            </div>\n            <button className=\"button button--medium button--general\" onClick={handleBack}>\n              {backButtonLabel || \"Tilbage\"}\n            </button>\n            {/* {redirectUrl && (\n            <a href={redirectUrl}>\n            <button className=\"button button--medium button--general\">Link til side</button>\n            </a>\n            )} */}\n          </div>\n        </div>\n      </section>\n    )\n  }\n\n  return (\n    <>\n      <Spinner isActive={ajaxSpinnerActive} isTransparent={ajaxSpinnerTransparent} />\n      <section className=\"deck deck--white deck--extra-padding-top deck--extra-padding-bottom\">\n        <form\n          className={`epi-forms`}\n          method=\"post\"\n          noValidate=\"novalidate\"\n          data-f-metadata={metadataAttribute}\n          encType=\"multipart/form-data\"\n          data-f-type=\"form\"\n          id={formGuid}\n          onSubmit={handleSubmit}\n          onReset={handleReset}\n        >\n          {/* anti forgery token */}\n          <input name=\"__RequestVerificationToken\" type=\"hidden\" value={formToken}></input>\n          <HiddenFields formGuid={formGuid} currentPageLink={currentPageLink} langauge={langauge} formSubmissionId={formSubmissionId} />\n          <FormStatus statusDisplay={statusDisplay} message={message} />\n          <section className=\"deck deck--white\">\n            <div className=\"w--narrow\">\n              <div className=\"form\">\n                {formElements?.length > 0 &&\n                  (formSteps?.length > 0 ? (\n                    <>\n                      <StepProgress ref={stepProgressRef} activeStep={activeStep} formStepsCount={formStepsCount} />\n                      {renderFormSteps(formSteps)}\n                    </>\n                  ) : (\n                    formElements.map((element, index) => renderFormElement(element, index))\n                  ))}\n              </div>\n            </div>\n          </section>\n        </form>\n      </section>\n    </>\n  )\n}\n"],"names":["useFormField","predefinedValue","validateField","globalValue","setGlobalValue","setError","_useState","useState","_useState2","_slicedToArray","isFocused","setIsFocused","useEffect","undefined","initialError","validate","value","errorMsg","handleFocus","handleBlur","e","target","handleChange","newValue","handleDateChange","handleSelectionChange","handleCheckboxBlur","values","handleBlurFiles","files","handleFileChange","FormInputLabel","_ref","id","label","_ref$required","required","_jsx","htmlFor","className","children","_jsxs","FormFieldError","_ref$name","name","error","placeholder","concat","description","closeModalLabel","moreInfoLabel","toggleInfoActive","setToggleInfoActive","handleScroll","window","addEventListener","passive","removeEventListener","OutsideClickTrigger","onOutsideClick","onClick","preventDefault","handleToggleInfo","Svg","iconName","isDecorative","onBlur","document","getElementById","focus","handleCloseAndRefocusInput","CheckboxGroupInput","_ref$options","options","displayOption","_ref$isPermissionInpu","isPermissionInput","_ref$permissionText","permissionText","checkedOptions","filter","option","checked","_useFormField","length","map","wrapperRef","useRef","handleCheckboxChange","_toConsumableArray","val","title","ToggleInfo","ref","onMouseDown","current","contains","index","type","defaultChecked","onChange","onFocus","dangerouslySetInnerHTML","__html","FileUploadInput","fileTypes","allowMultiple","fileUploadPlaceholder","fileUploadHelperText","fileUploadTooManyFilesError","dragActive","setDragActive","handleFileRemove","onDragEnter","stopPropagation","onDragOver","onDragLeave","currentTarget","onDrop","dataTransfer","xlinkHref","Array","from","file","join","tabIndex","onKeyDown","key","accept","multiple","FormStatus","statusDisplay","message","HiddenField","_ref$isProfiling","isProfiling","HiddenFields","formGuid","currentPageLink","langauge","formSubmissionId","_Fragment","NumberInput","_ref$predefinedValue","_ref$validators","validators","min","some","v","RangeInput","max","step","SelectionInput","_options$find","selectionOpen","setSelectionOpen","_useState3","_useState4","focusedIndex","setFocusedIndex","find","optionsRef","handleOptionClick","optionValue","handleKeyDown","prevIndex","prev","xmlnsXlink","role","el","TextArea","TextInput","_validators$find","dateFormat","inputRef","datePickerRef","inputType","Type","isDateInput","includes","pattern","regexPattern","DatePickerPikaday","format","getPicker","destroy","autoComplete","SelectionMultiInput","selectedOptions","SubmitButton","_ref$label","formStepsCount","previousStepLabel","goBack","submitButton","ResetButton","form","ImageChoiceInput","showSelectionInputControl","allowMultiSelect","handleImageSelect","selectedValue","text","src","href","alt","RichTextInput","paragraphText","disablePlaceholdersReplacement","RadioGroupInput","FormStep","formElements","activeStep","nextStepLabel","renderFormElement","validateStep","formElement","StepProgress","_","i","actualActiveStep","isActive","isCompleted","isLineSolid","forwardRef","SHOW","HIDE","evaluateCondition","_defineProperty","condition","inputValue","targetValue","RegExp","test","shouldDisplayField","formField","formValues","dependencies","satisfiedAction","conditionCombination","dependenciesMet","results","dependency","fieldId","fieldKey","field","operator","every","Boolean","evaluateDependencies","EpiForms","allowAnonymousSubmission","allowExposingDataFeeds","allowMultipleSubmission","allowToStoreSubmissionData","confirmationMessage","createdDate","finalizedSubmissionRetentionPeriod","metadataAttribute","lastSubmissionDate","submitSuccessMessage","modifiedDate","partialSubmissionRetentionPeriod","redirectToPage","redirectUrl","showNavigationBar","showSummarizedData","authSrc","validationCssClass","formToken","backButtonLabel","urlValidatorErrorMessage","groupingTopPadding","groupingBottomPadding","recaptchaField","reCaptchaSiteKey","setFormValues","errors","setErrors","_useState5","_useState6","fieldVisibility","setFieldVisibility","_useState7","_useState8","formSubmitted","setFormSubmitted","_useState9","_useState10","ajaxSpinnerActive","setAjaxSpinnerActive","_useState11","_useState12","ajaxSpinnerTransparent","setAjaxSpinnerTransparent","_useState13","_useState14","formSteps","setFormSteps","_useState15","_useState16","setFormStepsCount","_useState17","_useState18","setActiveStep","stepProgressRef","setFieldError","prevErrors","_objectSpread","isFieldRequired","_validators$some","getFormSteps","newVisibility","visibleStepsCount","forEach","element","__type__","groupedFormElements","subElement","isVisible","dependField","dependCondition","dependValue","fieldValue","conditionMet","validateForm","formElems","firstInvalidField","newErrors","_element$groupedFormE","querySelector","submitFormHandler","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee3","formData","submitButtonId","postForm","_iterator","_step","acceptPage","wrap","_context3","next","FormData","append","Object","keys","isElementInAnyStep","FileList","_element","_element$validators","_formElements$_i2$gro","replace","nativeEvent","submitter","_ref3","_callee2","response","_context2","abrupt","Promise","resolve","reject","grecaptcha","ready","execute","action","then","_ref4","_callee","token","_context","fetch","location","method","body","headers","RequestVerificationToken","sent","ok","console","status","Error","t0","stop","_x2","apply","arguments","catch","_createForOfIteratorHelper","s","n","done","set","stepIndex","f","finish","t1","scrollToElement","_x","headerElement","offset","offsetHeight","elementPosition","getBoundingClientRect","top","scrollY","scrollTo","behavior","_element$groupedFormE2","props","prevValues","handleFieldChange","dataProfiling","el2","i2","checkRegex","errorMessage","defaultMsg","_step2","_iterator2","validator","isArray","item","trim","Number","isInteger","err","hasStepBlock","_step3","steps","currentStep","stepIndexCounter","_iterator3","push","currentIndex","formStepElements","elementName","groupedEl","Spinner","isTransparent","noValidate","encType","onSubmit","onReset","stepElements","renderFormSteps"],"sourceRoot":""}