{"version":3,"file":"static/js/27.de39b449.chunk.js","mappings":"qMAgCA,MAAMA,EAAiCC,IACnCC,EAAAA,EAAAA,IAAsCD,GAE7BE,EAAoB,CAC7B,CACIC,KAAMA,KAAMC,EAAAA,EAAAA,MACZC,cAAeC,EAAAA,GAEnB,CACIH,KAAMA,KAAMI,EAAAA,EAAAA,MACZF,cAAeG,EAAAA,IAEnB,CACIL,KAAMA,KAAMM,EAAAA,EAAAA,MACZJ,cAAeK,EAAAA,GACfC,SAAWC,IACP,MAAM,MAAEC,IAAUH,EAAAA,EAAAA,IAA2BE,GAC7C,OAAOE,QACHD,GAASA,EAAME,UAAYF,EAAME,SAASC,SAAWC,EAAAA,GAAWC,SACnE,GAGT,CACIf,KAAMA,KAAMgB,EAAAA,EAAAA,KACZd,cAAgBO,GAAMA,EAAEQ,MAAMC,QAAQC,qBACtCX,SAAWC,IACP,MAAM,MAAEC,GAAUD,EAAEQ,MAAMC,QAAQC,qBAClC,OAAOR,QACHD,GAASA,EAAME,UAAYF,EAAME,SAASC,SAAWC,EAAAA,GAAWC,SACnE,GAGT,CACIf,KAAOS,IACH,MAAMW,IAAuBC,EAAAA,EAAAA,IAAkBZ,IAAMa,EAAAA,GAChDF,oBACL,OAAOG,EAAAA,EAAAA,IACFH,GAAuBA,EAAoBI,IAAO,GACtD,EAELtB,cAAeuB,EAAAA,GACfjB,SAAWC,KACFiB,EAAAA,EAAAA,KAAUL,EAAAA,EAAAA,IAAkBZ,KAG1BE,QAAQF,EAAEQ,MAAMU,aAAaC,uBAAuBlB,SAKjEmB,EAAmBC,GACd/B,EAAQgC,MAAKC,IAAA,IAAC,cAAE9B,GAAe8B,EAAA,OAAK9B,EAAc4B,GAAWG,OAAO,IAQlEC,EAAoBA,KAC7B,MAAMjB,GAAQkB,EAAAA,EAAAA,MAERC,GAAyBC,EAAAA,EAAAA,cAAYC,UACvC,IAAK,IAAIC,EAAI,EAAGA,EAAIxC,EAAQyC,OAAQD,IAAK,CACrC,MAAM,KAAEvC,GAASD,EAAQwC,SACnBvC,EAAKiB,EAAMwB,WAAXzC,CAAuBiB,EAAMyB,SACvC,IACD,CAACzB,IAEE0B,GAAkBN,EAAAA,EAAAA,cAAYC,UAChC,MAAMR,EAAYb,EAAMwB,WAMxB,GADA1C,EAAQ6C,QAJWC,GACfA,EAAOrC,SACDqC,EAAOrC,SAASsB,IAChBJ,EAAAA,EAAAA,IAAUmB,EAAO3C,cAAc4B,GAAWpB,SAC1BoC,SAAQC,IAAA,IAAC,KAAE/C,GAAM+C,EAAA,OAAK/C,EAAK8B,EAAL9B,CAAgBiB,EAAMyB,SAAS,IAC1Eb,EAAgBZ,EAAMwB,YAI3B,OAAO,IAAIO,SAASC,IAChB,MAAMC,EAAcjC,EAAMkC,WAAU,KAChC,MAAMC,EA5BItB,IACF/B,EAAQsD,KAAIC,IAAA,IAAC,cAAEpD,GAAeoD,EAAA,OAAKpD,EAAc4B,GAAWpB,KAAK,IAClE6C,KAAK7B,EAAAA,IA0BO8B,CAAiBvC,EAAMwB,aACtCW,GAAevB,EAAgBZ,EAAMwB,cACrCS,IACAD,EAAQG,GACZ,GACF,GACJ,GACH,CAACnC,IAcJ,MAAO,CACHT,UAba6B,EAAAA,EAAAA,cAAY,KACzB,MAAMP,EAAYb,EAAMwB,WAExB,OAAO1C,EAAQgC,MAAMc,GACbA,EAAOrC,SACAqC,EAAOrC,SAASsB,GAGpBe,EAAO3C,cAAc4B,GAAWpB,OACzC,GACH,CAACO,IAIA0B,kBACAP,yBACAqB,UAAW7D,EAAmBiC,GAC9B6B,gBAAiB9D,GAAoBa,GAAMA,EAAEQ,MAAMU,aAAa+B,kBAChEC,aAAc/D,GAAoBa,GAAMA,EAAEQ,MAAMU,aAAagC,eAC7DC,iBAAkBhE,EAAmBiE,EAAAA,IACrCC,WAAYlE,GAAoBa,GAAMA,EAAEQ,MAAMC,QAAQ4C,aACzD,C,iJChHE,MAAMC,EAAa/B,IAAoC,OAA9BgC,GAAwBhC,EACpD,MAAM,SAAEiC,EAAQ,aAAEC,GAAiBF,EAE7BG,GAAgB9B,EAAAA,EAAAA,cAAY,KAE1B4B,EADAC,EACS,CAAC,KAAM,MAEP,UAFcE,EAG3B,GACD,CAACF,EAAcD,KAEZ,QAAEI,EAAO,QAAEC,EAAO,UAAEC,EAAS,QAAEC,GAAYR,EAEjD,OACIS,EAAAA,cAAA,qEACIA,EAAAA,cAACC,EAAwBC,SAAQ,CAACC,MAAO,CAAEP,UAASC,UAASC,YAAWC,WAAU,yDAC9EC,EAAAA,cAACI,KAAeC,EAAAA,EAAAA,GAAA,GACRd,EAAK,CACTe,mBAAqBC,GACjBP,EAAAA,cAACQ,GAAgBH,EAAAA,EAAAA,GAAA,GAENE,EAAO,CACVE,gBAAiBf,KAG3B,oEAGR,EAIRgB,GAASC,EAAAA,EAAAA,GAAa,CACxBC,MAAO,CACH,cACA,CACIC,MAAO,SAGfC,SAAU,gFACVC,cAAe,CACX,GACA,CACIC,QAAS,QAGjBC,aAAc,CACV,GACA,CACID,QAAS,QAGjBE,KAAM,CACF,oBACA,CACIC,oBAAqB,gDACrBC,IAAK,YAGbC,UAAW,CAAC,QACZC,OAAQ,CACJ,kDACA,CACI,aAAc,CACVC,MAAOC,EAAAA,GAAOC,SAI1BC,MAAO,KAGLC,EAAa,IAAIC,KAAK,KAAM,EAAG,GASxB3B,EAA0BD,EAAAA,cAAiD,CACpFJ,aAASD,EACTE,aAASF,EACTG,eAAWH,EACXI,aAASJ,IAGPa,EAAoBD,IACtB,MAAM,kBAAEsB,GAAsBtB,GACxB,QAAEX,EAAO,QAAEC,EAAO,UAAEC,IAAcgC,EAAAA,EAAAA,YAAW7B,GAE7C8B,GAAkBC,EAAAA,EAAAA,UAAQ,IAA4B,IAAtBH,GAAyB,CAACA,IAE1DI,GAAQD,EAAAA,EAAAA,UAAQ,KAClB,MAAME,GAASH,EAAkBnC,EAAUE,GAAaF,IAAY+B,EAEpE,IAAIQ,GADQtC,GAAW,IAAI+B,MACTQ,cAElB,MAAMC,EAAiB,GAEvB,KAAOF,GAAWD,EAAME,eACpBC,EAAeC,KAAKH,GACpBA,IAGJ,OAAOE,CAAc,GACtB,CAACzC,EAASC,EAASC,EAAWiC,IAE3BQ,GAASP,EAAAA,EAAAA,UAAQ,KACnB,MAAMQ,EAAiB,IAAIC,KAAKC,eAAe,KAAM,CAAEC,MAAO,SAE9D,OAAOC,MAAMC,KAAK,CAAE9E,OAAQ,KAAMa,KAAI,CAACkE,EAAGH,KAAK,CAC3CxC,MAAOwC,EACPI,KAAMP,EAAeQ,OAAO,IAAIpB,KAAK,KAAMe,EAAO,OACnD,GACJ,IAEGM,EAAiBC,IACnB,MAAM/C,EAAQgD,SAASD,EAAEE,OAAOjD,MAAO,KAAO4B,EAAkB,EAAI,GACpExB,EAAO8C,YAAYlD,EAAM,EAGvBmD,EAAgBJ,IAClB3C,EAAOgD,WAAWJ,SAASD,EAAEE,OAAOjD,MAAO,IAAI,EAG7CqD,GAAmB5F,EAAAA,EAAAA,cACpBsF,IACG3C,EAAOkD,gBACPP,EAAEQ,gBAAgB,GAEtB,CAACnD,IAGCoD,GAAmB/F,EAAAA,EAAAA,cACpBsF,IACG3C,EAAOqD,gBACPV,EAAEQ,gBAAgB,GAEtB,CAACnD,IAsCL,OACIP,EAAAA,cAAA,OAAK6D,UAAWnD,EAAOW,UAAU,oEAC7BrB,EAAAA,cAAA,OAAK6D,UAAWnD,EAAOQ,MACnBlB,EAAAA,cAAA,WACIA,EAAAA,cAAA,UACI8D,SAAUvD,EAAOwD,wBACjBF,UAAWG,IAAWtD,EAAOY,OAAQ,cACrC2C,QAAST,GAETxD,EAAAA,cAACkE,EAAAA,EAAe,CAACC,MAAO,CAAEC,SAAU,QAAUC,KAAMC,EAAAA,IAAc,oEA1C9EtE,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAAA,WACIA,EAAAA,cAAA,UACIG,MAAOI,EAAOgE,UAAUC,WACxBX,UAAWnD,EAAOK,cAClBvB,SAAUyD,GAETV,EAAO3D,KAAK+D,GACT3C,EAAAA,cAAA,UAAQyE,IAAK9B,EAAMxC,MAAOA,MAAOwC,EAAMxC,OAClCwC,EAAMI,UAKvB/C,EAAAA,cAAA,WAAK,KACLA,EAAAA,cAAA,WACIA,EAAAA,cAAA,UACIG,MAAOI,EAAOgE,UAAUnC,cACxByB,UAAWnD,EAAOO,aAClBzB,SAAU8D,EACV,WAAU/C,EAAOgE,UAAUnC,eAE1BH,EAAMrD,KAAK8F,GACR1E,EAAAA,cAAA,UAAQyE,IAAKC,EAAMvE,MAAOuE,GACrBA,QAsBjB1E,EAAAA,cAAA,WACIA,EAAAA,cAAA,UACI8D,SAAUvD,EAAOoE,wBACjBd,UAAWG,IAAWtD,EAAOY,OAAQ,eACrC2C,QAASN,GAET3D,EAAAA,cAACkE,EAAAA,EAAe,CAACC,MAAO,CAAEC,SAAU,QAAUC,KAAMO,EAAAA,IAAe,qEAI7E,C,8JC1Nd,MAAMC,GAAeC,EAAAA,EAAAA,GAAY,eAAgB,CAC7CC,WAAY,OACZC,OAAQ,OACRhE,QAAS,EACTH,MAAO,OACPoE,OAAQ,OACRC,WAAY,MACZC,YAAa,MACbC,gBAAiB,UACjBC,cAAe,SAEfC,SAAU,WACVC,mBAAoB,MACpB,UAAW,CACPC,QAAS,QAGb,0BAA2B,CACvBjE,MAAO,QACP6D,gBAAiB,SAErB,mBAAoB,CAChBK,QAAS,GACTC,OAAQ,aAIVC,GAAcb,EAAAA,EAAAA,GAAY,eAAgB,CAC5Cc,IAAK,EACLC,KAAM,EACNN,mBAAoB,MACpBD,SAAU,WACVQ,UAAW,wBACXC,OAAQ,EACR/E,QAAS,EACTiE,OAAQ,OACRpE,MAAO,OACPmF,WAAY,QACZC,UAAW,wCACXjB,OAAQ,oBACR,0BAA2B,CACvBc,UAAW,0BAEf,mBAAoB,CAChBV,gBAAiB5D,EAAAA,GAAO0E,MACxBlB,OAAQ,aAAaxD,EAAAA,GAAO0E,WAIvBC,EAAiB5I,IAMV,IANW,QAC3B6I,EAAO,SACP5G,EAAQ,OACR6G,EAAS,KAAI,QACbC,EAAU,MAAK,WACfC,GAAa,GACHhJ,EACV,OACIyC,EAAAA,cAAA,OAAKmE,MAAO,CAAEqC,QAAS,QAAS,2EAC5BxG,EAAAA,cAACyG,EAAAA,GAAc,CACX5C,UAAWgB,EACXuB,QAASA,EACTtC,SAAUyC,EACVG,gBAAkBxD,GAAM1D,EAAS0D,EAAEE,OAAOgD,SAAS,kEAElDA,EAAUpG,EAAAA,cAAA,QAAM6D,UAAU,0BAA0BwC,GAAiB,KACtErG,EAAAA,cAACyG,EAAAA,GAAe,CAAC5C,UAAW8B,EAAY,mEACtCS,EAAsE,KAA5DpG,EAAAA,cAAA,QAAM6D,UAAU,0BAA0ByC,IAExD,ECjDD5F,GAASC,EAAAA,EAAAA,GAAa,CAC/BgG,cAAe,2DACfC,SAAU,CAAC,yDACXC,UAAW,CAAC,8BACZ/C,SAAU,CAAC,6BACXgD,cACI,+GAkGR,EA/F8BvJ,IASK,IATJ,MAC3BwJ,EAAK,SACLC,EAAQ,QACRC,EAAO,WACPC,EAAU,cACVC,EAAa,KACbC,EAAI,WACJb,EAAU,iBACVc,GACyB9J,EACzB,OACIyC,EAAAA,cAAA,OAAK6D,UAAWnD,EAAOiG,cAAc,yFACjC3G,EAAAA,cAAA,OACI6D,UAAW,6CACP0C,EAAa7F,EAAOoD,SAAW,MAGnC9D,EAAAA,cAAA,OAAK6D,UAAU,gDACX7D,EAAAA,cAAA,QAAM6D,UAAU,yCAAyCkD,GACzD/G,EAAAA,cAACmG,EAAc,CACXI,WAAYA,EACZH,QAASc,EACT1H,SAAU2H,EAAc,kFAG/BH,EACGhH,EAAAA,cAAA,OAAK6D,UAAU,gDACX7D,EAAAA,cAAA,QAAM6D,UAAU,kDACXmD,GAELhH,EAAAA,cAAA,aAEJ,MAERA,EAAAA,cAAA,OAAK6D,UAAW,mCAAmC0C,EAAa7F,EAAOoD,SAAW,MAC9E9D,EAAAA,cAAA,SAAO6D,UAAU,0CACb7D,EAAAA,cAAA,aACIA,EAAAA,cAAA,MAAI6D,UAAU,YACV7D,EAAAA,cAAA,WACAA,EAAAA,cAAA,MAAI6D,UAAWnD,EAAOkG,UACjBK,EAAQ,gBAAc,IACvBjH,EAAAA,cAAA,QAAM6D,UAAU,0BAAyB,OAE7C7D,EAAAA,cAAA,MAAI6D,UAAWnD,EAAOmG,WACjBI,EAAQ,gBAAc,IACvBjH,EAAAA,cAAA,QAAM6D,UAAU,uBAAsB,SAG7CuD,EAAKxI,KAAI,CAAC0I,EAAMC,IACbvH,EAAAA,cAAA,MACIyE,IAAK8C,EACL1D,UACI0D,EAAQ,IAAM,EACR,IAAGhB,EAAa,YAAc,kBAC9B,YAGVvG,EAAAA,cAAA,MAAI6D,UAAU,mDACV7D,EAAAA,cAAA,OAAK6D,UAAU,qBAAqByD,EAAKE,YAAYnD,MACrDrE,EAAAA,cAAA,QAAM6D,UAAU,gBAAgByD,EAAKE,YAAYC,OAErDzH,EAAAA,cAAA,MAAI6D,UAAU,8CACTyD,EAAKI,iBAAiBrD,KACtBiD,EAAKI,iBAAiBD,MAE3BzH,EAAAA,cAAA,MAAI6D,UAAU,mBACTyD,EAAKK,kBAAkBtD,KACvBiD,EAAKK,kBAAkBF,YAOhDzH,EAAAA,cAAA,OAAK6D,UAAW,cAAc0C,EAAa7F,EAAOoD,SAAW,OAC7D9D,EAAAA,cAAA,OAAK6D,UAAU,8CACX7D,EAAAA,cAAA,OAAK6D,UAAW,eAAe0C,EAAa7F,EAAOoD,SAAW,OAC9D9D,EAAAA,cAAA,KACI6D,UAAWnD,EAAOoG,cAClB1D,OAAO,SACPwE,KAAM,2DAA2DP,KACpE,aACc,IACXrH,EAAAA,cAACkE,EAAAA,EAAe,CACZG,KAAMwD,EAAAA,IACNtG,MAAOC,EAAAA,GAAOsG,MACdjE,UAAU,SACVkE,KAAK,KAAI,oFAInB,E,oGCzHP,MAAMC,EAAczK,IAQF,IARG,MACxBwJ,EAAK,SACLC,EAAQ,WACRE,EAAU,cACVC,EAAa,WACbZ,EAAU,cACVO,EAAa,SACbmB,GACe1K,EACf,OACIyC,EAAAA,cAAA,OAAK6D,UAAWnD,EAAOiG,cAAc,qEACjC3G,EAAAA,cAAA,OAAK6D,UAAW,kBAAkB0C,EAAa7F,EAAOoD,SAAW,MAC7D9D,EAAAA,cAAA,OAAK6D,UAAU,gDACX7D,EAAAA,cAAA,QAAM6D,UAAU,yCAAyCkD,GACzD/G,EAAAA,cAACmG,EAAc,CACXI,WAAYA,EACZH,QAASc,EACT1H,SAAU2H,EAAc,wEAG/BH,EACGhH,EAAAA,cAAA,OAAK6D,UAAU,gDACX7D,EAAAA,cAAA,QAAM6D,UAAU,kDACXmD,GAELhH,EAAAA,cAAA,aAEJ,MAERA,EAAAA,cAAA,OAAK6D,UAAW,mCAAmC0C,EAAa7F,EAAOoD,SAAW,MAC9E9D,EAAAA,cAAA,SAAO6D,UAAU,0CACb7D,EAAAA,cAAA,aACIA,EAAAA,cAAA,MAAI6D,UAAU,YACV7D,EAAAA,cAAA,UAAKiI,OAKrBjI,EAAAA,cAAA,OAAK6D,UAAW,cAAc0C,EAAa7F,EAAOoD,SAAW,OAC7D9D,EAAAA,cAAA,OAAK6D,UAAU,8CACX7D,EAAAA,cAAA,OAAK6D,UAAW,eAAe0C,EAAa7F,EAAOoD,SAAW,OAC9D9D,EAAAA,cAAA,KAAG6D,UAAWnD,EAAOoG,cAAe1D,OAAO,SAASwE,KAAMd,GAAe,aAC1D,IACX9G,EAAAA,cAACkE,EAAAA,EAAe,CACZG,KAAMwD,EAAAA,IACNtG,MAAOC,EAAAA,GAAOsG,MACdjE,UAAU,SACVkE,KAAK,KAAI,0EAInB,E,yBC1Cd,MAAMrH,GAASC,EAAAA,EAAAA,GAAa,CACxBuH,sBAAuB,CACnB,0BACA,CACIC,aAAc,EACdnC,WAAY,UACZhF,QAAS,WACTO,MAAO,UACPV,MAAO,gBAGfuH,qBAAsB,CAClB,yBACA,CACID,aAAc,EACdnC,WAAY,yBACZhF,QAAS,WACTO,MAAOC,EAAAA,GAAO6G,WACdxH,MAAO,gBAGfyH,QAAS,CAAC,+DAGDC,EAA+BhJ,GAEpCS,EAAAA,cAAA,OAAK6D,UAAU,+BAA8B,iFACzC7D,EAAAA,cAAA,OAAK6D,UAAWnD,EAAOwH,uBACnBlI,EAAAA,cAACkE,EAAAA,EAAe,CAACL,UAAU,qBAAqBQ,KAAMmE,EAAAA,GAASjH,MAAM,UAAS,oEAC9EvB,EAAAA,cAAA,KAAG6D,UAAU,eACT7D,EAAAA,cAAA,QAAM6D,UAAU,iBAAgB,4BAAgC,IAC/DtE,EAAMO,UAAU,MAAIP,EAAMQ,UAGnCC,EAAAA,cAAA,QAAM6D,UAAWnD,EAAO4H,QAASrE,QAAS1E,EAAMkJ,kBAAkB,SAOjEC,EAA4BnJ,GAEjCS,EAAAA,cAAA,OAAK6D,UAAU,+BAA8B,8EACzC7D,EAAAA,cAAA,OAAK6D,UAAWnD,EAAO0H,sBACnBpI,EAAAA,cAACkE,EAAAA,EAAe,CACZL,UAAU,0BACVQ,KAAMsE,EAAAA,IACNpH,MAAOC,EAAAA,GAAO6G,WAAW,oEAE7BrI,EAAAA,cAAA,OAAK6D,UAAU,eACX7D,EAAAA,cAAA,SAAG,WACSA,EAAAA,cAAA,QAAM6D,UAAU,aAAY,OAAU,UAAQtE,EAAMQ,QAAQ,iCAC7C,IACtBR,EAAMqJ,oBACH5I,EAAAA,cAAAA,EAAAA,SAAA,KAAE,UACSA,EAAAA,cAAA,QAAM6D,UAAU,aAAY,OAGvC7D,EAAAA,cAAAA,EAAAA,SAAA,KAAE,UACSA,EAAAA,cAAA,QAAM6D,UAAU,aAAY,QAExC,IAAI,+BASnB7D,EAAAA,cAAA,QAAM6D,UAAWnD,EAAO4H,QAASrE,QAAS1E,EAAMkJ,kBAAkB,SAOjEI,EAAsBtJ,IAC/B,MAAMuJ,EAAU,CACZpE,KAAM,UACN/B,MAAO,UACPoG,IAAK,WAEHjJ,EAAYP,EAAMO,UAAYP,EAAMO,UAAUkJ,mBAAmB,QAASF,GAAW,GACrF/I,EAAUR,EAAMQ,QAAUR,EAAMQ,QAAQiJ,mBAAmB,QAASF,GAAW,GACrF,OAAIvJ,EAAM0J,qBAEFjJ,EAAAA,cAAC0I,EAAwB,CACrB3I,QAASA,EACT0I,iBAAkBlJ,EAAMkJ,iBACxBG,oBAAqBrJ,EAAMqJ,sBAG5BrJ,EAAM2J,wBAETlJ,EAAAA,cAACuI,EAA2B,CACxBzI,UAAWA,EACXC,QAASA,EACT0I,iBAAkBlJ,EAAMkJ,iBACxBG,oBAAqBrJ,EAAMqJ,sBAI5B,IACX,E,yFC9GJ,MAAMO,GAAiBC,EAAAA,EAAAA,IAAY,KAC7BC,GAAeD,EAAAA,EAAAA,IAAY,KAE3B1I,GAASC,EAAAA,EAAAA,GAAa,CACxB2I,gBAAiB,CACb,mCACA,CACIlF,SAAU,OACVmF,WAAY,gBAGpBC,uBAAwB,CACpB,4EACA,CACI3I,MAAO,QACPoE,OAAQ,GACRO,QAAS,WAUfiE,EAAwBlM,IAAsE,IAArE,OAAEmM,EAAM,OAAEC,EAAM,MAAExJ,KAAUZ,GAAmChC,EAC1F,MAAMqM,GAAWC,EAAAA,EAAAA,QAAoB,MAKrC,OACI7J,EAAAA,cAAA,OAAK6D,UAAWnD,EAAO8I,uBAAuB,qFAC1CxJ,EAAAA,cAAC8J,KAAWzJ,EAAAA,EAAAA,GAAA,CACR0J,UAAQ,EACR5J,MAAOA,GACHZ,EAAK,CACTyK,KAAMC,EAAAA,GACNpG,UAAWnD,EAAO4I,gBAClBY,YAAY,aACZC,UAAYjH,IACRA,EAAEkH,kBACFlH,EAAEQ,kBACK,GAEX2G,QAAUnH,IACNA,EAAEkH,kBACFlH,EAAEQ,kBACK,GAEX4G,IAAKV,EAAS,2EAElB5J,EAAAA,cAAA,OACIiE,QAASA,IAzBGsG,MAAO,IAADC,EACV,OAAhBA,EAAAZ,EAASzH,UAATqI,EAAkBC,aAAaC,OAAO,EAwBfH,GACf1G,UAAW,6DACP6F,EAAS,eAAiB,aAG9B1J,EAAAA,cAACkE,EAAAA,EAAe,CAACG,KAAMsG,EAAAA,IAAY5C,KAAK,KAAKlE,UAAU,aAAY,+EAErE,EAUD+G,EAAoB/L,IAIF,IAJG,cAC9BgM,EAAa,kBACbC,EAAiB,wBACjB5B,GACqBrK,EACrB,MAAM,sBAAEkM,EAAqB,oBAAEC,EAAmB,qBAAE/B,GAChD6B,GAAqB,CAAC,GACnBhL,EAAWmL,IAAgBC,EAAAA,EAAAA,UAC9BH,GAAgD,OAE7ChL,EAASoL,IAAcD,EAAAA,EAAAA,UAASF,GAA4C,OAC5EI,EAAuBC,IAA4BH,EAAAA,EAAAA,WAAS,IAC5DI,EAAqBC,IAA0BL,EAAAA,EAAAA,WAAS,IACzD,uBAAEM,EAAsB,SAAEzP,GCtDK0P,MACrC,MAAOxP,EAAOyP,IAAYR,EAAAA,EAAAA,WAAS,IAC5BS,EAAYC,IAAiBV,EAAAA,EAAAA,WAAS,GACvCjN,GAAW4N,EAAAA,EAAAA,MAkBjB,MAAO,CACHL,uBAjB2B3N,UAC3B+N,GAAc,GACd,MAAME,QAAe7N,GAAS8N,EAAAA,EAAAA,IAA+B3E,IAM7D,OALAwE,GAAc,GAKC,OAAXE,IAAmBA,EAAO7P,QAC1ByP,GAAS,IAEF,EAGA,EAIXlO,QAASmO,EACT5P,SAAUE,EACb,ED6B4CwP,IACtCO,EAAgBC,IAAqBf,EAAAA,EAAAA,UAAS,KAC9CgB,EAAcC,IAAmBjB,EAAAA,EAAAA,UAAS,KAC1CkB,EAAcC,IAAmBnB,EAAAA,EAAAA,UAAS,KAEjDoB,EAAAA,EAAAA,YAAU,KACNvB,GAAwBE,EAAaF,GACrCC,GAAsBG,EAAWH,GACjCmB,EAAgB,KAChBF,EAAkB,KAClBI,EAAgB,IAChBd,GAAuB,GACvBF,GAAyB,EAAM,GAChC,CAACR,EAAc0B,aAElBD,EAAAA,EAAAA,YAAU,KACNvB,GAAwBE,EAAaF,EAA6B,GACnE,CAACA,KAEJuB,EAAAA,EAAAA,YAAU,KACNtB,GAAsBG,EAAWH,EAA2B,GAC7D,CAACA,IAEJ,MAAMwB,GAAoB5O,EAAAA,EAAAA,cACrB6O,IACGxB,EAAawB,GACbpB,GAAyB,GACzBY,EAAkB,GAAG,GAEzB,CAAChB,IAGCyB,GAAkB9O,EAAAA,EAAAA,cACnB6O,IACGtB,EAAWsB,GACXlB,GAAuB,GACvBY,EAAgB,GAAG,GAEvB,CAAChB,IAGCwB,GAAe/O,EAAAA,EAAAA,cAAY,KAC7BiN,EAAc+B,wBACd3B,EAAa,MACbE,EAAW,MACXc,EAAkB,IAClBE,EAAgB,IAChBE,EAAgB,GAAG,GACpB,CAACxB,IAEEgC,GAAcjP,EAAAA,EAAAA,cAAYC,UAC5B,IAAKiC,IAAcC,EAGf,OAFCD,GAAamM,EAAkB,iCAC/BlM,GAAWoM,EAAgB,gCAIVX,EAAuB,CACzCT,sBAAuBjL,EAAUgN,cACjC9B,oBAAqBjL,EAAQ+M,gBASjCjC,EAAc+B,wBALVP,EACI,qIAI6B,GACtC,CAACvM,EAAWC,EAASyL,EAAwBX,IAE1CkC,GAAuBnP,EAAAA,EAAAA,cAAYC,gBACf2N,EAAuB,CACzCR,oBAAqB,KACrBD,sBAAuB,KACvBiC,oBAAoB,KAQxB/B,EAAa,MACbE,EAAW,MACXN,EAAc+B,yBAPVP,EACI,wIAM6B,GACtC,CAACb,EAAwBX,IAE5B,OACI7K,EAAAA,cAACiN,EAAAA,GAAK,CAAClG,MAAM,GAAG2C,OAAQmB,EAAc0B,UAAWW,QAASP,EAAa,wGACnE3M,EAAAA,cAAA,OAAK6D,UAAU,mCACX7D,EAAAA,cAACkE,EAAAA,EAAe,CACZG,KAAMsE,EAAAA,IACNxE,MAAO,CAAEtD,MAAO,OAAQoE,OAAQ,QAChC1D,MAAM,UAAS,+EAGvBvB,EAAAA,cAAA,MAAI6D,UAAU,oDAAmD,iBACjE7D,EAAAA,cAAA,KAAG6D,UAAU,2CAA0C,gOAKvD7D,EAAAA,cAAA,OAAK6D,UAAU,4EACX7D,EAAAA,cAAA,OAAKjD,GAAG,YACJiD,EAAAA,cAAA,OAAK6D,UAAU,oDAAmD,cAGlE7D,EAAAA,cAACV,EAAAA,EAAU,CACP6N,SAAUrN,GAAa,KACvBN,SAAUgN,EACVY,cAAY,EACZtN,UAAWA,EACXC,QAASA,EACTH,QAAS,IAAIgC,KACb/B,QAASE,GAAWoJ,EACpBkE,YACIrN,EAAAA,cAACyJ,EAAqB,CAClBE,OAAQ0B,EACR3B,OAAQ0B,IAGhBkC,KAAMlC,EACNmC,eAAgBA,IAAMlC,GAAyB,GAC/CmC,gBAAiBA,IAAMnC,GAAyB,GAAO,yEAE3DrL,EAAAA,cAAA,OAAK6D,UAAU,uDACVmI,IAGThM,EAAAA,cAAA,OAAKjD,GAAG,UACJiD,EAAAA,cAAA,OAAK6D,UAAU,oDAAmD,YAClE7D,EAAAA,cAACV,EAAAA,EAAU,CACP6N,SAAUpN,GAAW,KACrBP,SAAUkN,EACVe,YAAU,EACV3N,UAAWA,EACXC,QAASA,EACTH,QAASE,IAAasJ,EAAAA,EAAAA,IAAY,GAClCvJ,QAASwJ,EACTgE,YACIrN,EAAAA,cAACyJ,EAAqB,CAClBE,OAAQ4B,EACR7B,OAAQ4B,IAGhBgC,KAAMhC,EACNiC,eAAgBA,IAAMhC,GAAuB,GAC7CiC,gBAAiBA,IAAMjC,GAAuB,GAAO,yEAEzDvL,EAAAA,cAAA,OAAK6D,UAAU,iDACVqI,KAIZnQ,GAAYqQ,EACTpM,EAAAA,cAAA,OAAK6D,UAAU,0CACX7D,EAAAA,cAACkE,EAAAA,EAAe,CAACG,KAAMqJ,EAAAA,IAAuB7J,UAAU,cACxD7D,EAAAA,cAAA,QAAM6D,UAAU,aAAauI,IAEjC,KACJpM,EAAAA,cAAA,OAAK6D,UAAU,4CACX7D,EAAAA,cAAC2N,EAAAA,EAAG,CAAC9J,UAAU,UAAUI,QAASA,IAAM4I,IAAc,iEAAC,QAC7C5D,GAAwBC,EAA0B,UAAY,IAEvED,GAAwBC,EACrBlJ,EAAAA,cAAC2N,EAAAA,EAAG,CAACC,aAAW,EAAC/J,UAAU,UAAUI,QAASA,IAAM8I,KAAwB,wBAG5E,KACJ/M,EAAAA,cAAA,UACI6N,KAAK,SACLhK,UAAU,oCACVI,QAAS0I,GACZ,UAID,EE/OVmB,EACF9N,EAAAA,cAACkE,EAAAA,EAAe,CAACG,KAAM0J,EAAAA,IAAexM,MAAOC,EAAAA,GAAOwM,QAASnK,UAAU,OAAOkE,KAAK,OAGjFkG,EACFjO,EAAAA,cAACkE,EAAAA,EAAe,CACZG,KAAMqJ,EAAAA,IACNnM,MAAOC,EAAAA,GAAO0M,YACdrK,UAAU,OACVkE,KAAK,OAIPoG,EACFnO,EAAAA,cAACkE,EAAAA,EAAe,CAACG,KAAM+J,EAAAA,IAAO7M,MAAOC,EAAAA,GAAOvF,MAAO4H,UAAU,SAASkE,KAAK,OAGzEsG,EAAiC,CACnC,CACI7G,YAAa,CACTnD,KAAMrE,EAAAA,cAACsO,EAAAA,GAAO,CAACzN,MAAO,GAAIoE,OAAQ,KAClCwC,KAAM,eAEVC,iBAAkB,CACdrD,KAAMyJ,EACNrG,KAAM,uBAEVE,kBAAmB,CACftD,KAAMyJ,EACNrG,KAAM,wBAGd,CACID,YAAa,CACTnD,KAAMrE,EAAAA,cAACuO,EAAAA,GAAM,CAAC1N,MAAO,GAAIoE,OAAQ,KACjCwC,KAAM,6BAEVC,iBAAkB,CACdrD,KAAMyJ,EACNrG,KAAM,uBAEVE,kBAAmB,CACftD,KAAMyJ,EACNrG,KAAM,wBAGd,CACID,YAAa,CACTnD,KAAMrE,EAAAA,cAACuO,EAAAA,GAAM,CAAC1N,MAAO,GAAIoE,OAAQ,KACjCwC,KAAM,0BAEVC,iBAAkB,CACdrD,KAAMyJ,EACNrG,KAAM,uBAEVE,kBAAmB,CACftD,KAAM4J,EACNxG,KAAM,yBAGd,CACID,YAAa,CACTnD,KAAMrE,EAAAA,cAACwO,EAAAA,GAAY,CAAC3N,MAAO,GAAIoE,OAAQ,KACvCwC,KAAM,kBAEVC,iBAAkB,CACdrD,KAAMyJ,EACNrG,KAAM,uBAEVE,kBAAmB,CACftD,KAAM4J,EACNxG,KAAM,yBAGd,CACID,YAAa,CACTnD,KAAMrE,EAAAA,cAACyO,EAAAA,GAAkB,CAAC5N,MAAO,GAAIoE,OAAQ,KAC7CwC,KAAM,yBAEVC,iBAAkB,CACdrD,KAAMyJ,EACNrG,KAAM,uBAEVE,kBAAmB,CACftD,KAAM8J,EACN1G,KAAM,mBAKZiH,EAAkBnR,IAAA,IAAC,aAAEoR,GAAyCpR,EAAA,MAAsB,CACtF,CACIiK,YAAa,CACTnD,KAAMrE,EAAAA,cAAC4O,EAAAA,GAAW,CAAC/N,MAAO,GAAIoE,OAAQ,KACtCwC,KAAM,gBAEVC,iBAAkB,CACdrD,KAAMyJ,EACNrG,KAAM,aAEVE,kBAAmB,CACftD,KAAMyJ,EACNrG,KAAM,cAGd,CACID,YAAa,CACTnD,KAAMrE,EAAAA,cAAC6O,EAAAA,GAAU,CAAChO,MAAO,GAAIoE,OAAQ,KACrCwC,KAAMkH,EAAe,yBAA2B,gBAEpDjH,iBAAkB,CACdrD,KAAMyJ,EACNrG,KAAM,aAEVE,kBAAmB,CACftD,KAAMyJ,EACNrG,KAAM,cAGd,CACID,YAAa,CACTnD,KAAMrE,EAAAA,cAAC8O,EAAAA,GAAc,CAACjO,MAAO,GAAIoE,OAAQ,GAAIpB,UAAU,oBACvD4D,KAAM,mBAEVC,iBAAkB,CACdrD,KAAMyJ,EACNrG,KAAM,aAEVE,kBAAmB,CACftD,KAAM8J,EACN1G,KAAM,kBAGjB,EAEYsH,EAAuBlQ,IAM7B,IAN8B,uBACjCmQ,EAAsB,eACtBC,GAAiB,GAIpBpQ,GACGqQ,EAAAA,EAAAA,KACA,MAAMjR,GAAW4N,EAAAA,EAAAA,MACXsD,GAA0BC,EAAAA,EAAAA,IAAgBC,EAAAA,IAC1CC,GAA2BF,EAAAA,EAAAA,IAAgBG,EAAAA,KAC3C,uBAAE5R,IAA2BF,EAAAA,EAAAA,KAC7ByB,GAAekQ,EAAAA,EAAAA,KAAiBpT,GAAMA,EAAEQ,MAAMU,aAAagC,eAC3DsQ,EAAuBtT,SACb,MAAZgD,OAAY,EAAZA,EAAcuQ,SAASC,EAAAA,GAAYd,gBACnB,MAAZ1P,OAAY,EAAZA,EAAcuQ,SAASC,EAAAA,GAAYb,eAErC,UAAEc,EAAS,aAAEC,IAAiBC,EAAAA,EAAAA,OAE7BC,EAAoBC,GAAyB/P,EAAAA,UAAe,IAC5DgQ,EAAuBC,GAA4BjQ,EAAAA,UAAe,IAElEkQ,EAAkBC,GAAuBnQ,EAAAA,UAAe,IAE/DoQ,EAAAA,EAAAA,kBAAgB,KACZzS,GAAwB,GACzB,IAEH,MAAM,MAAE0S,EAAK,wBAAEnH,GD9LiBoH,MAChC,MAAMxF,GAAoBsE,EAAAA,EAAAA,KAAiBpT,IAAmC,IAADuU,EAAAC,EACzE,MAAMC,EAAiD,OAA/BF,EAAGvU,EAAEQ,MAAMU,aAAa4L,cAAO,EAA5ByH,EAA8BvF,oBACnD0F,EAAmD,OAA/BF,EAAGxU,EAAEQ,MAAMU,aAAa4L,cAAO,EAA5B0H,EAA8BzF,sBAE3D,GAAI/O,EAAEQ,MAAMU,aAAa4L,SAAW2H,GAAsBC,EAAsB,CAC5E,MAAMC,EAAuB,IAAI/O,KAAK6O,GACtCE,EAAqBC,WACjBD,EAAqBE,aAAeF,EAAqBG,qBAE7D,MAAMC,EAAyB,IAAInP,KAAK8O,GAIxC,OAHAK,EAAuBH,WACnBG,EAAuBF,aAAeE,EAAuBD,qBAE1D,IACA9U,EAAEQ,MAAMU,aAAa4L,QACxBkC,oBAAqB2F,EACrB5F,sBAAuBgG,EAE/B,CACA,OAAO,IAAI,IAQf,MAAO,CACHV,MAAOvF,EACP5B,wBANA4B,GAC0C,OAA1CA,EAAkBE,qBAC0B,OAA5CF,EAAkBC,sBAKrB,EC+J0CuF,GACrCU,GAAyBC,EAAAA,EAAAA,MAE/B3E,EAAAA,EAAAA,YAAU,KAAO,IAAD4E,EACZjB,EAAiD,MAAxBX,GAAAA,GACzBS,EAA+C,OAA1BmB,IAAG/B,IAAuB+B,EAAU,GAC1D,CAAC5B,EAA0BH,IAE9B,MA0BMgC,EAAiCtT,UACnC,UACUuT,EAAAA,EAAAA,IACF,CACIjC,0BAA2BA,EAC3BkC,2BAA4BC,GAEhCtC,GAEJ/Q,GAASsT,EAAAA,EAAAA,MACb,CAAE,MAAOrO,GACL+M,GAA0BqB,EAC9B,CAEArB,EAAyBqB,EAAS,GAGhC,mBAAEE,EAAkB,wBAAEC,EAAuB,4BAAEC,IACjDC,EAAAA,EAAAA,MAME,2BAAEC,EAA0B,2BAAEC,IAA+BC,EAAAA,EAAAA,GAAmB,CAClFN,qBACAO,UAAWA,KACPN,GAAyBD,GACzBI,GAA2B,EAAM,IAInCI,EAAerC,EAAUsC,EAAAA,GAAiBC,sCAC5ClS,EAAAA,cAACmS,EAAAA,GAAI,CAACC,GAAIC,EAAAA,GAAOC,kCAAkC,oBAEnDtS,EAAAA,cAAA,KAAGoD,OAAO,SAASwE,KAAK,2BAA0B,oBAiBhD2K,EAA+B5C,EACjCsC,EAAAA,GAAiBO,kCAGrB,OACIxS,EAAAA,cAAA,OAAK6D,UAAU,oCAAmC,uFAC9C7D,EAAAA,cAAA,OAAK6D,UAAU,+EACToL,EAcE,KAbAjP,EAAAA,cAACmS,EAAAA,GAAI,CACDtO,UAAU,mCACVuO,GAAIC,EAAAA,GAAOI,mCAEXzS,EAAAA,cAACkE,EAAAA,EAAe,CACZG,KAAMC,EAAAA,IACN/C,MAAOC,EAAAA,GAAOkR,UACd7O,UAAU,OACVM,MAAO,CAAEnD,QAAS,SAClB+G,KAAK,OACP,0BAIV/H,EAAAA,cAAA,MAAI6D,UAAU,qDAAoD,yBAGjE8L,EAAUsC,EAAAA,GAAiBU,qBACxB3S,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAAA,OAAK6D,UAAU,gEACX7D,EAAAA,cAAA,MAAI6D,UAAU,UAAS,qBACtB2L,GAAwB+C,EACrBvS,EAAAA,cAAC2N,EAAAA,EAAG,CACA1J,QAAS+M,EAAuBpE,sBAChCgB,eACY,MAALyC,GAAAA,EAAOpH,sBAAwBC,GAEtCrF,UAAU,uCAEV7D,EAAAA,cAACkE,EAAAA,EAAe,CACZL,UAAU,OACVQ,KACS,MAALgM,GAAAA,EAAOpH,sBAAwBC,EACzB0J,EAAAA,IACAC,EAAAA,KAGR,MAALxC,GAAAA,EAAOpH,sBAAwBC,EAC1B,qBACA,iBAEV,MAERlJ,EAAAA,cAAC8S,EAAqB,CAClB/L,MAAM,uCACNC,SACIhH,EAAAA,cAAA,WACIA,EAAAA,cAAA,KAAG6D,UAAU,eAAc,yEAEV7D,EAAAA,cAAA,UAAQ6D,UAAU,aAAY,OAAa,IAAI,oGAIhE7D,EAAAA,cAAC6I,EAAkB,CACfD,oBACS,MAALyH,OAAK,EAALA,EAAO0C,mCAEXjT,WAAgB,MAALuQ,OAAK,EAALA,EAAOtF,wBAAyB,KAC3ChL,SAAc,MAALsQ,OAAK,EAALA,EAAOrF,sBAAuB,KACvCvC,iBACIuI,EAAuBpE,sBAE3B3D,uBACW,MAALoH,IAAAA,EAAOpH,uBACTsJ,EAEJrJ,0BACMA,GACFqJ,KAKhBtL,QAAQ,UACRC,aAAc8I,EACd7I,cA/FmB6L,KAlER1B,MAmErB,MAALjB,GAAAA,EAAOpH,wBAnEmBqI,GAoEAtB,GA9D/BmB,EAA+BG,GAJ3BnB,GAAoB,GAmExB,EA6FoB/I,KAAMiH,EACNhH,iBAAiB,8BAEnBmI,GAA0BM,EACxB9P,EAAAA,cAAA,KAAG6D,UAAU,2BACT7D,EAAAA,cAACkE,EAAAA,EAAe,CACZ3C,MAAOC,EAAAA,GAAOvF,MACdoI,KAAMqJ,EAAAA,IACN3F,KAAK,KACLlE,UAAU,SACZ,2EAEEmO,GAER,KACJhS,EAAAA,cAAC8S,EAAqB,CAClB/L,MAAM,sCACNE,QAAQ,MACRC,aAAc4I,EACd3I,cA7GuB8L,KACjC,MAAL5C,GAAAA,EAAOpH,sBAhEsBpL,WAClC,UACUuT,EAAAA,EAAAA,IACF,CACIC,6BAA8B/B,EAC9BH,wBAAyBmC,GAE7BtC,GAEJ/Q,GAASsT,EAAAA,EAAAA,MACb,CAAE,MAAOrO,GACL6M,GAAuBuB,EAC3B,CAEAvB,EAAsBuB,EAAS,EAmD3B4B,EAA+BpD,EACnC,EA2GoB1I,KAAMsH,EAAgB,CAClBC,aAAcgB,EAAUsC,EAAAA,GAAiBkB,oBAE7C5M,YAAaiJ,KAA0BM,EACvCzI,iBAAiB,uBACjBL,SACIwI,GAAwB+C,EACpBvS,EAAAA,cAAC6I,EAAkB,CACfD,oBAA0B,MAALyH,OAAK,EAALA,EAAO+C,gCAC5BtT,WAAgB,MAALuQ,OAAK,EAALA,EAAOtF,wBAAyB,KAC3ChL,SAAc,MAALsQ,OAAK,EAALA,EAAOrF,sBAAuB,KACvCvC,iBACIuI,EAAuBpE,sBAE3B3D,uBAA6B,MAALoH,IAAAA,EAAOpH,sBAC/BC,0BAA2BA,SAE/BvJ,IAGZK,EAAAA,cAACiN,EAAAA,GAAK,CACFlG,MAAM,GACN2C,OAAQwG,EACRhD,QAASA,IAAMiD,GAAoB,GACnCkD,iBAAiB,EACjBtL,KAAM,CAACuL,EAAAA,GAAUC,MAAOD,EAAAA,GAAUC,QAElCvT,EAAAA,cAAA,OAAK6D,UAAU,8BACX7D,EAAAA,cAACkE,EAAAA,EAAe,CACZ3C,MAAOC,EAAAA,GAAO0M,YACd7J,KAAMqJ,EAAAA,IACN3F,KAAK,OAET/H,EAAAA,cAAA,OAAK6D,UAAU,uCACX7D,EAAAA,cAAA,KAAG6D,UAAU,+BAA8B,gCAG3C7D,EAAAA,cAAA,KAAG6D,UAAU,wCAAuC,kFAIpD7D,EAAAA,cAAA,KAAG6D,UAAU,mCAAkC,iFAMvD7D,EAAAA,cAAA,OAAK6D,UAAU,iBACX7D,EAAAA,cAACwT,EAAAA,GAAW,KACRxT,EAAAA,cAAC2N,EAAAA,EAAG,CACA1J,QAASA,KACLwP,OAAOnG,KACH,0DACA,SACH,EAELO,KAAK,SACLhK,UAAU,QACb,cAGD7D,EAAAA,cAAC0T,EAAAA,GAAiB,CACdzP,QAASA,KACLkN,GAAgCnB,GAChCG,GAAoB,EAAM,GAEjC,2BAOjB,KACHR,EAAUsC,EAAAA,GAAiB0B,8BACxB3T,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAAA,MAAI6D,UAAU,eAAc,mBAC5B7D,EAAAA,cAACgI,EAAW,CACRjB,MAAM,0BACNG,aAAcsK,EACdrK,cAAeA,KAvNnCyK,GAA2B,EAuNwC,EAC/CrL,gBAC2B5G,IAAvB6R,GAAoCE,EAExC5K,cAAc,gDAEd9G,EAAAA,cAAA,OAAK6D,UAAU,iBACX7D,EAAAA,cAAA,SAAG,aACWA,EAAAA,cAAA,SAAG,OAAO,uEAEpBA,EAAAA,cAAA,WAAM,oFAIVA,EAAAA,cAAA,WACAA,EAAAA,cAAA,SAAG,aACWA,EAAAA,cAAA,SAAG,MAAM,8EAEnBA,EAAAA,cAAA,YAEJA,EAAAA,cAAA,WACAA,EAAAA,cAAA,SACIA,EAAAA,cAAA,SAAG,SAAS,iOAOvB6R,GAEL,KACJ7R,EAAAA,cAAC4K,EAAiB,CACdC,cAAemG,EACflG,kBAAmBuF,EACnBnH,0BAA2BA,EAAwB,oFAGzD,C,kDC5fP,MAAM+H,EAAmB,SAAC2C,QAAqB,IAArBA,IAAAA,GAAwB,GACrD,MAAOrH,EAAWsH,IAAgB3I,EAAAA,EAAAA,UAAkB0I,GAMpD,MAAO,CACHrH,YACAK,sBAN0BA,KAC1BiH,GAAc7X,IAAgBA,GAAE,EAOxC,C","sources":["../../common/hooks/usePaymentOptions.ts","components/date-picker/index.tsx","components/switch/SwitchWithText.tsx","features/account-settings/components/coordinator-dashboard/OrderingSettingsTable.tsx","features/account-settings/components/coordinator-dashboard/ToggleTable.tsx","features/account-settings/components/coordinator-dashboard/vacation-mode/Banners.tsx","features/account-settings/components/coordinator-dashboard/vacation-mode/VacationModeModal.tsx","features/account-settings/components/coordinator-dashboard/vacation-mode/utils.ts","features/account-settings/components/coordinator-dashboard/OrganizationSettings.tsx","hooks/useModalControls.ts"],"sourcesContent":["import { useSelector, useStore } from 'react-redux';\nimport { useCallback } from 'react';\nimport { Dispatch } from 'redux';\n\nimport {\n getPaymentTypeFeesThunk,\n getPaymentTypesForOrganizationThunk,\n selectPaymentTypeFeesAsyncState,\n selectPaymentTypesAsyncState,\n} from 'common/features/store/duck/organization/duck';\nimport { selectHomeDetails } from 'common/features/store/duck/home/duck';\nimport {\n getSavedCreditCardsThunk,\n selectSavedCreditCardsAsyncState,\n getUserAchAccountThunk,\n selectAchAccountAsyncState,\n getDefaultPaymentMethodThunk,\n selectPaymentCreditCards,\n} from 'common/features/store/duck/account/duck';\nimport { APIResponse, APIError } from 'common/api/models';\nimport { AsyncActionState } from 'common/modules/async-actions/core';\nimport { isDefined } from 'common/utils';\nimport { emptyHomeDetailsResponse } from 'common/api/crm/home/models/HomeDetailsResponse';\nimport { StatusCode } from 'common/api/config';\nimport { FeaturesState } from 'common/features/featuresReducer';\n\nexport interface Loader {\n load: (s: FeaturesState) => (dispatch: Dispatch) => Promise>;\n getAsyncState: (s: FeaturesState) => AsyncActionState;\n hasError?: (s: FeaturesState) => boolean;\n}\n\nconst useFeatureSelector = (selector: (state: FeaturesState) => TSelected) =>\n useSelector(selector);\n\nexport const loaders: Loader[] = [\n {\n load: () => getPaymentTypeFeesThunk(),\n getAsyncState: selectPaymentTypeFeesAsyncState,\n },\n {\n load: () => getSavedCreditCardsThunk(),\n getAsyncState: selectSavedCreditCardsAsyncState,\n },\n {\n load: () => getUserAchAccountThunk(),\n getAsyncState: selectAchAccountAsyncState,\n hasError: (s) => {\n const { error } = selectAchAccountAsyncState(s);\n return Boolean(\n error && error.response && error.response.status !== StatusCode.NotFound\n );\n },\n },\n {\n load: () => getDefaultPaymentMethodThunk(),\n getAsyncState: (s) => s.store.account.achAccountAsyncState,\n hasError: (s) => {\n const { error } = s.store.account.achAccountAsyncState;\n return Boolean(\n error && error.response && error.response.status !== StatusCode.NotFound\n );\n },\n },\n {\n load: (s) => {\n const defaultOrganization = (selectHomeDetails(s) || emptyHomeDetailsResponse)\n .defaultOrganization;\n return getPaymentTypesForOrganizationThunk(\n (defaultOrganization && defaultOrganization.id) || ''\n );\n },\n getAsyncState: selectPaymentTypesAsyncState,\n hasError: (s) => {\n if (!isDefined(selectHomeDetails(s))) {\n return true;\n }\n return Boolean(s.store.organization.paymentTypesAsyncState.error);\n },\n },\n];\n\nconst selectIsLoading = (rootState: FeaturesState) => {\n return loaders.some(({ getAsyncState }) => getAsyncState(rootState).loading);\n};\n\nconst selectFirstError = (rootState: FeaturesState) => {\n const maybeErrors = loaders.map(({ getAsyncState }) => getAsyncState(rootState).error);\n return maybeErrors.find(isDefined);\n};\n\nexport const usePaymentOptions = () => {\n const store = useStore();\n\n const loadPaymentOptionsData = useCallback(async () => {\n for (let i = 0; i < loaders.length; i++) {\n const { load } = loaders[i];\n await load(store.getState())(store.dispatch);\n }\n }, [store]);\n\n const refreshIfNeeded = useCallback(async (): Promise => {\n const rootState = store.getState();\n const needsData = (loader: Loader) =>\n loader.hasError\n ? loader.hasError(rootState)\n : isDefined(loader.getAsyncState(rootState).error);\n loaders.filter(needsData).forEach(({ load }) => load(rootState)(store.dispatch));\n if (!selectIsLoading(store.getState())) {\n return;\n }\n\n return new Promise((resolve) => {\n const unsubscribe = store.subscribe(() => {\n const maybeError = selectFirstError(store.getState());\n if (maybeError || !selectIsLoading(store.getState())) {\n unsubscribe();\n resolve(maybeError);\n }\n });\n });\n }, [store]);\n\n const hasError = useCallback(() => {\n const rootState = store.getState();\n\n return loaders.some((loader) => {\n if (loader.hasError) {\n return loader.hasError(rootState);\n }\n\n return loader.getAsyncState(rootState).error;\n });\n }, [store]);\n\n return {\n hasError,\n refreshIfNeeded,\n loadPaymentOptionsData,\n isLoading: useFeatureSelector(selectIsLoading),\n paymentTypeFees: useFeatureSelector((s) => s.store.organization.paymentTypeFees),\n paymentTypes: useFeatureSelector((s) => s.store.organization.paymentTypes),\n savedCreditCards: useFeatureSelector(selectPaymentCreditCards),\n achAccount: useFeatureSelector((s) => s.store.account.achAccount),\n };\n};\n","import { faChevronLeft, faChevronRight } from '@fortawesome/pro-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport classNames from 'classnames';\nimport React, { ChangeEvent, MouseEvent, useCallback, useContext, useMemo } from 'react';\nimport { default as ReactDatePicker, ReactDatePickerProps } from 'react-datepicker';\n\nimport { colors } from 'styles/settings';\nimport { createStyles } from 'utils/createStyle';\nimport './styles/date-picker.scss';\n\nexport type DatePickerProps = ReactDatePickerProps & {\n maxRangeDistanceInMonths?: number;\n};\n\ninterface RenderCustomHeaderParams {\n monthDate: Date;\n date: Date;\n customHeaderCount: number;\n prevMonthButtonDisabled: boolean;\n nextMonthButtonDisabled: boolean;\n prevYearButtonDisabled: boolean;\n nextYearButtonDisabled: boolean;\n onClearAllDates?: () => void;\n changeYear(year: number): void;\n changeMonth(month: number): void;\n decreaseMonth(): void;\n increaseMonth(): void;\n decreaseYear(): void;\n increaseYear(): void;\n}\n\n// Demos = https://reactdatepicker.com/\nexport const DatePicker = ({ ...props }: DatePickerProps) => {\n const { onChange, selectsRange } = props;\n\n const clearAllDates = useCallback(() => {\n if (selectsRange) {\n onChange([null, null], undefined);\n } else {\n onChange(null, undefined);\n }\n }, [selectsRange, onChange]);\n\n const { minDate, maxDate, startDate, endDate } = props;\n\n return (\n
\n \n (\n \n )}\n />\n \n
\n );\n};\n\nconst styles = createStyles({\n input: [\n 'text-center',\n {\n width: '3rem',\n },\n ],\n clearAll: 'text-grey-1 absolute left-0 top-2 transform -translate-x-1/2 translate-y-full',\n monthSelector: [\n '',\n {\n padding: '2px',\n },\n ],\n yearSelector: [\n '',\n {\n padding: '2px',\n },\n ],\n grid: [\n 'grid items-center',\n {\n gridTemplateColumns: 'auto min-content min-content max-content auto',\n gap: '0.25rem',\n },\n ],\n container: ['pt-2'],\n navBtn: [\n 'font-bold block sm:hidden p-4 disabled:bg-brand',\n {\n '&:disabled': {\n color: colors.grey5,\n },\n },\n ],\n close: '',\n});\n\nconst FIRST_DATE = new Date(1980, 0, 1);\n\ninterface DatePickerHeaderContextInfo {\n minDate: Date | null | undefined;\n maxDate: Date | null | undefined;\n startDate: Date | null | undefined;\n endDate: Date | null | undefined;\n}\n\nexport const DatePickerHeaderContext = React.createContext({\n minDate: undefined,\n maxDate: undefined,\n startDate: undefined,\n endDate: undefined,\n});\n\nconst DatePickerHeader = (params: RenderCustomHeaderParams) => {\n const { customHeaderCount } = params;\n const { minDate, maxDate, startDate } = useContext(DatePickerHeaderContext);\n\n const isFirstCalendar = useMemo(() => customHeaderCount === 0, [customHeaderCount]);\n\n const years = useMemo(() => {\n const start = (isFirstCalendar ? minDate : startDate || minDate) || FIRST_DATE;\n const end = maxDate || new Date();\n let current = end.getFullYear();\n\n const availableYears = [];\n\n while (current >= start.getFullYear()) {\n availableYears.push(current);\n current--;\n }\n\n return availableYears;\n }, [minDate, maxDate, startDate, isFirstCalendar]);\n\n const months = useMemo(() => {\n const monthFormatter = new Intl.DateTimeFormat('us', { month: 'long' });\n\n return Array.from({ length: 12 }).map((_, month) => ({\n value: month,\n name: monthFormatter.format(new Date(2021, month, 1)),\n }));\n }, []);\n\n const onMonthChange = (e: ChangeEvent) => {\n const value = parseInt(e.target.value, 10) - (isFirstCalendar ? 0 : 1);\n params.changeMonth(value);\n };\n\n const onYearChange = (e: ChangeEvent) => {\n params.changeYear(parseInt(e.target.value, 10));\n };\n\n const onPrevMonthClick = useCallback(\n (e: MouseEvent) => {\n params.decreaseMonth();\n e.preventDefault();\n },\n [params]\n );\n\n const onNextMonthClick = useCallback(\n (e: MouseEvent) => {\n params.increaseMonth();\n e.preventDefault();\n },\n [params]\n );\n\n const renderMonthAndYearSelector = () => {\n return (\n <>\n
\n \n {months.map((month) => (\n \n ))}\n \n
\n
/
\n
\n \n {years.map((year) => (\n \n ))}\n \n
\n \n );\n };\n\n return (\n
\n
\n
\n \n \n \n
\n {renderMonthAndYearSelector()}\n
\n \n \n \n
\n
\n
\n );\n};\n","import React from 'react';\nimport * as RuiSwitch from '@radix-ui/react-switch';\n\nimport { createStyle } from 'utils/createStyle';\nimport { colors } from 'styles/settings';\n\nexport interface SwitchProps {\n checked: boolean;\n onChange: (checked: boolean) => void;\n offText?: string;\n onText?: string;\n isDisabled?: boolean;\n}\n\nconst StyledSwitch = createStyle('rounded-full', {\n appearance: 'none',\n border: 'none',\n padding: 0,\n width: '60px',\n height: '25px',\n marginLeft: '2px',\n marginRight: '5px',\n backgroundColor: '#C4C4C4',\n verticalAlign: 'middle',\n // borderRadius: 25,\n position: 'relative',\n transitionDuration: '.4s',\n '&:focus': {\n outline: 'none',\n // boxShadow: '0 0 0 2px royalblue',\n },\n '&[data-state=\"checked\"]': {\n color: 'white',\n backgroundColor: 'green',\n },\n '&[data-disabled]': {\n opacity: 0.6,\n cursor: 'default',\n },\n});\n\nconst StyledThumb = createStyle('rounded-full', {\n top: 0,\n left: 0,\n transitionDuration: '.3s',\n position: 'absolute',\n transform: 'translate(5px, 4.5px)',\n margin: 0,\n padding: 0,\n height: '16px',\n width: '16px',\n background: 'white',\n boxShadow: '-1px 1px 1px rgba(147, 149, 152, 0.5)',\n border: '1px solid #ccddee',\n '&[data-state=\"checked\"]': {\n transform: 'translate(37px, 4.5px)',\n },\n '&[data-disabled]': {\n backgroundColor: colors.grey2,\n border: `1px solid ${colors.grey2}`,\n },\n});\n\nexport const SwitchWithText = ({\n checked,\n onChange,\n onText = 'ON',\n offText = 'OFF',\n isDisabled = false,\n}: SwitchProps) => {\n return (\n
\n onChange(e.target.checked)}\n >\n {checked ? {onText} : null}\n \n {!checked ? {offText} : null}\n \n
\n );\n};\n","import React from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { colors } from 'styles/settings';\nimport { SwitchWithText } from 'components/switch/SwitchWithText';\nimport { faExternalLink } from '@fortawesome/pro-regular-svg-icons';\nimport { createStyles } from 'utils/createStyle';\n\nexport interface tableDataType {\n description: {\n icon: JSX.Element;\n text: string;\n };\n payCoordinatorOn: {\n icon: JSX.Element;\n text: string;\n };\n payCoordinatorOff: {\n icon: JSX.Element;\n text: string;\n };\n}\n\nexport interface OrderingSettingsTableProps {\n title: string;\n subTitle?: JSX.Element;\n variant: 'Ship to' | 'Pay';\n data: tableDataType[];\n isToggleOn: boolean;\n setIsToggleOn: (value: boolean) => void;\n isDisabled?: boolean;\n learnMoreVariant: 'pay-coordinator-faqs' | 'ship-to-coordinator-faqs';\n}\n\nexport const styles = createStyles({\n mainContainer: 'max-w-full border border-grey-light rounded-lg mt-3 mb-3',\n onHeader: ['border-r border-grey-light pl-0 pr-2 py-2 pt-5 w-3/12'],\n offHeader: ['pl-4 pr-0 py-2 pt-5 w-3/12'],\n disabled: ['opacity-50 bg-grey-accent'],\n learnMoreLink:\n 'text-center bg-brand-light rounded-tl-lg rounded-br-lg text-brand text-xs font-bold px-7 py-3 no-underline',\n});\n\nconst OrderingSettingsTable = ({\n title,\n subTitle,\n variant,\n isToggleOn,\n setIsToggleOn,\n data,\n isDisabled,\n learnMoreVariant,\n}: OrderingSettingsTableProps) => {\n return (\n
\n \n
\n {title}\n \n
\n {subTitle ? (\n
\n \n {subTitle}\n \n
\n
\n ) : null}\n
\n
\n \n \n \n \n \n \n {data.map((item, index) => (\n \n \n \n \n \n ))}\n \n
\n \n {variant} Coordinator:{' '}\n ON\n \n {variant} Coordinator:{' '}\n OFF\n
\n
{item.description.icon}
\n {item.description.text}\n
\n {item.payCoordinatorOn.icon}\n {item.payCoordinatorOn.text}\n \n {item.payCoordinatorOff.icon}\n {item.payCoordinatorOff.text}\n
\n
\n
\n
\n
\n \n Learn More{' '}\n \n \n
\n
\n );\n};\n\nexport default OrderingSettingsTable;\n","import React, { ReactNode } from 'react';\nimport { SwitchWithText } from 'components/switch/SwitchWithText';\nimport { OrderingSettingsTableProps, styles } from './OrderingSettingsTable';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faExternalLink } from '@fortawesome/pro-regular-svg-icons';\nimport { colors } from 'styles/settings';\n\nexport type ToggleTableProps = {\n learnMoreLink: string;\n children: ReactNode;\n} & Omit;\n\nexport const ToggleTable = ({\n title,\n subTitle,\n isToggleOn,\n setIsToggleOn,\n isDisabled,\n learnMoreLink,\n children,\n}: ToggleTableProps) => {\n return (\n
\n
\n
\n {title}\n \n
\n {subTitle ? (\n
\n \n {subTitle}\n \n
\n
\n ) : null}\n
\n
\n \n \n \n \n \n \n
{children}
\n
\n
\n \n );\n};\n","import React from 'react';\nimport { createStyles } from 'utils/createStyle';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faClock, faUmbrellaBeach } from '@fortawesome/pro-regular-svg-icons';\nimport { colors } from 'styles/settings';\n\ninterface BaseBannerProps {\n startDate: string;\n endDate: string;\n editVacationMode: () => void;\n originalToggleValue?: boolean;\n}\n\ninterface BannerProps extends Omit {\n isVacationModeActive: boolean;\n isVacationModeScheduled: boolean;\n startDate: Date | null;\n endDate: Date | null;\n}\n\nconst styles = createStyles({\n yellowBannerContainer: [\n 'flex items-center gap-1',\n {\n borderRadius: 8,\n background: '#FFFAEB',\n padding: '9px 26px',\n color: '#B54708',\n width: 'fit-content',\n },\n ],\n greenBannerContainer: [\n 'flex items-start gap-1',\n {\n borderRadius: 8,\n background: 'rgba(56, 130, 0, 0.08)',\n padding: '9px 26px',\n color: colors.alertGreen,\n width: 'fit-content',\n },\n ],\n editBtn: ['cursor-pointer underline text-brand text-sm font-semibold'],\n});\n\nexport const ScheduledVacationModeBanner = (props: BaseBannerProps) => {\n return (\n
\n
\n \n

\n Vacation Mode Scheduled:{' '}\n {props.startDate} - {props.endDate}\n

\n
\n \n Edit\n \n
\n );\n};\n\nexport const VacationModeActiveBanner = (props: Omit) => {\n return (\n
\n
\n \n
\n

\n This is OFF until {props.endDate} due to\n Vacation Mode and will{' '}\n {props.originalToggleValue ? (\n <>\n return ON\n \n ) : (\n <>\n remain OFF\n \n )}{' '}\n after vacation mode ends.\n

\n {/*

\n This will return to ON after Vacation\n Mode ends.\n

*/}\n
\n
\n \n Edit\n \n
\n );\n};\n\nexport const VacationModeBanner = (props: BannerProps) => {\n const options = {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n } as Intl.DateTimeFormatOptions;\n const startDate = props.startDate ? props.startDate.toLocaleDateString('en-US', options) : '';\n const endDate = props.endDate ? props.endDate.toLocaleDateString('en-US', options) : '';\n if (props.isVacationModeActive) {\n return (\n \n );\n } else if (props.isVacationModeScheduled) {\n return (\n \n );\n } else {\n return null;\n }\n};\n","import React, { useCallback, useEffect, useState, useRef } from 'react';\nimport type { ModalControls } from 'hooks/useModalControls';\nimport { Modal } from 'components/modal/Modal';\nimport { Btn } from 'components/btn/Btn';\nimport { DatePicker } from 'components/date-picker';\nimport MaskedInput, { MaskedInputProps } from 'react-text-mask';\nimport { createStyles } from 'utils/createStyle';\nimport { MASK_DATE } from 'common/modules/mask-text/masks';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faCalendar } from '@fortawesome/pro-light-svg-icons';\nimport { faUmbrellaBeach } from '@fortawesome/pro-regular-svg-icons';\nimport { faExclamationTriangle } from '@fortawesome/pro-solid-svg-icons';\n\nimport { daysFromNow } from 'common/utils/time';\nimport { useVacationModeUpdateCtrl, OrgOptionsWithDates } from './utils';\n\nconst MAX_START_DATE = daysFromNow(364);\nconst MAX_END_DATE = daysFromNow(365);\n\nconst styles = createStyles({\n dataPickerInput: [\n 'w-11/12 outline-none text-grey-1',\n {\n fontSize: '16px',\n caretColor: 'transparent',\n },\n ],\n dataPickerInputWrapper: [\n 'flex items-center text-left pl-4 pr-2 border border-grey-light rounded-lg',\n {\n width: '236px',\n height: 48,\n outline: 'none',\n },\n ],\n});\n\ntype CustomMaskedDateInputProps = Omit & {\n isOpen: boolean;\n toggle: (value: boolean) => void;\n};\n\nconst CustomMaskedDateInput = ({ isOpen, toggle, value, ...props }: CustomMaskedDateInputProps) => {\n const inputRef = useRef(null);\n\n const onCalendarClick = () => {\n inputRef.current?.inputElement.focus();\n };\n return (\n
\n {\n e.stopPropagation();\n e.preventDefault();\n return false;\n }}\n onPaste={(e) => {\n e.stopPropagation();\n e.preventDefault();\n return false;\n }}\n ref={inputRef}\n />\n onCalendarClick()}\n className={`text-center focus:outline-none px-2 pb-0.5 rounded-full ${\n isOpen ? 'bg-pale-blue' : 'bg-white'\n }`}\n >\n \n
\n
\n );\n};\n\ninterface VacationModeModalProps {\n modalControls: ModalControls;\n vacationModeState: OrgOptionsWithDates | null;\n isVacationModeScheduled: boolean;\n}\n\nexport const VacationModeModal = ({\n modalControls,\n vacationModeState,\n isVacationModeScheduled,\n}: VacationModeModalProps) => {\n const { vacationModeStartDate, vacationModeEndDate, isVacationModeActive } =\n vacationModeState || {};\n const [startDate, setStartDate] = useState(\n vacationModeStartDate ? vacationModeStartDate : null\n );\n const [endDate, setEndDate] = useState(vacationModeEndDate ? vacationModeEndDate : null);\n const [isStartDatePickerOpen, setIsStartDatePickerOpen] = useState(false);\n const [isEndDatePickerOpen, setIsEndDatePickerOpen] = useState(false);\n const { updateVacationModeData, hasError } = useVacationModeUpdateCtrl();\n const [errorStartDate, setErrorStartDate] = useState('');\n const [errorEndDate, setErrorEndDate] = useState('');\n const [generalError, setGeneralError] = useState('');\n\n useEffect(() => {\n vacationModeStartDate ? setStartDate(vacationModeStartDate) : null;\n vacationModeEndDate ? setEndDate(vacationModeEndDate) : null;\n setErrorEndDate(' ');\n setErrorStartDate(' ');\n setGeneralError('');\n setIsEndDatePickerOpen(false);\n setIsStartDatePickerOpen(false);\n }, [modalControls.isVisible]);\n\n useEffect(() => {\n vacationModeStartDate ? setStartDate(vacationModeStartDate) : null;\n }, [vacationModeStartDate]);\n\n useEffect(() => {\n vacationModeEndDate ? setEndDate(vacationModeEndDate) : null;\n }, [vacationModeEndDate]);\n\n const onStartDateChange = useCallback(\n (date: Date) => {\n setStartDate(date);\n setIsStartDatePickerOpen(false);\n setErrorStartDate('');\n },\n [setStartDate]\n );\n\n const onEndDateChange = useCallback(\n (date: Date) => {\n setEndDate(date);\n setIsEndDatePickerOpen(false);\n setErrorEndDate('');\n },\n [setEndDate]\n );\n\n const onCloseModal = useCallback(() => {\n modalControls.toggleModalVisibility();\n setStartDate(null);\n setEndDate(null);\n setErrorStartDate('');\n setErrorEndDate('');\n setGeneralError('');\n }, [modalControls]);\n\n const onSaveModal = useCallback(async () => {\n if (!startDate || !endDate) {\n !startDate && setErrorStartDate('Start Date is required.');\n !endDate && setErrorEndDate('End Date is required.');\n return;\n }\n\n const success = await updateVacationModeData({\n vacationModeStartDate: startDate.toISOString(),\n vacationModeEndDate: endDate.toISOString(),\n });\n\n if (!success) {\n setGeneralError(\n 'There was an error saving your Vacation Mode. Please try again or call Customer Support at 800-727-4715 (option 3) for assistance.'\n );\n return;\n }\n modalControls.toggleModalVisibility();\n }, [startDate, endDate, updateVacationModeData, modalControls]);\n\n const onCancelVacationMode = useCallback(async () => {\n const success = await updateVacationModeData({\n vacationModeEndDate: null,\n vacationModeStartDate: null,\n removeVacationMode: true,\n });\n if (!success) {\n setGeneralError(\n 'There was an error canceling your Vacation Mode. Please try again or call Customer Support at 800-727-4715 (option 3) for assistance.'\n );\n return;\n }\n setStartDate(null);\n setEndDate(null);\n modalControls.toggleModalVisibility();\n }, [updateVacationModeData, modalControls]);\n\n return (\n \n
\n \n
\n
Vacation Mode
\n

\n When Vacation Mode is on, participants will not be able to use 'Pay Coordinator' or\n 'Ship to Coordinator'. Simply set your desired start and end dates then relax,\n knowing that fundraising will continue while you're away.\n

\n
\n
\n
\n Start Date\n
\n \n }\n open={isStartDatePickerOpen}\n onCalendarOpen={() => setIsStartDatePickerOpen(true)}\n onCalendarClose={() => setIsStartDatePickerOpen(false)}\n />\n
\n {errorStartDate}\n
\n
\n
\n
End Date
\n \n }\n open={isEndDatePickerOpen}\n onCalendarOpen={() => setIsEndDatePickerOpen(true)}\n onCalendarClose={() => setIsEndDatePickerOpen(false)}\n />\n
\n {errorEndDate}\n
\n
\n
\n {hasError && generalError ? (\n
\n \n {generalError}\n
\n ) : null}\n
\n onSaveModal()}>\n Save {isVacationModeActive || isVacationModeScheduled ? 'Changes' : ''}\n \n {isVacationModeActive || isVacationModeScheduled ? (\n onCancelVacationMode()}>\n Cancel Vacation Mode\n \n ) : null}\n \n Close\n \n
\n
\n );\n};\n\nexport default VacationModeModal;\n","import { useState } from 'react';\nimport { useRootSelector } from 'common/features/featuresReducer';\nimport { VacationModeRequestOptions, OrgOptions } from 'common/api/e-comm/options';\nimport { useDispatch } from 'react-redux';\nimport { setOrgVacationModeOptionsThunk } from 'common/features/store/duck/organization/duck';\n\nexport interface OrgOptionsWithDates\n extends Omit {\n vacationModeEndDate: Date | null;\n vacationModeStartDate: Date | null;\n}\n\nexport const useVacationModeState = () => {\n const vacationModeState = useRootSelector((s): OrgOptionsWithDates | null => {\n const vactionModeEndDate = s.store.organization.options?.vacationModeEndDate;\n const vactionModeStartDate = s.store.organization.options?.vacationModeStartDate;\n\n if (s.store.organization.options && vactionModeEndDate && vactionModeStartDate) {\n const vacationModeEndDate_ = new Date(vactionModeEndDate);\n vacationModeEndDate_.setMinutes(\n vacationModeEndDate_.getMinutes() + vacationModeEndDate_.getTimezoneOffset()\n );\n const vacationModeStartDate_ = new Date(vactionModeStartDate);\n vacationModeStartDate_.setMinutes(\n vacationModeStartDate_.getMinutes() + vacationModeStartDate_.getTimezoneOffset()\n );\n return {\n ...s.store.organization.options,\n vacationModeEndDate: vacationModeEndDate_,\n vacationModeStartDate: vacationModeStartDate_,\n };\n }\n return null;\n });\n\n const isVacationModeScheduled =\n vacationModeState &&\n vacationModeState.vacationModeEndDate !== null &&\n vacationModeState.vacationModeStartDate !== null;\n\n return {\n state: vacationModeState,\n isVacationModeScheduled, // NOTE: utilize this to render the yellow warning\n };\n};\n\nexport const useVacationModeUpdateCtrl = () => {\n const [error, setError] = useState(false);\n const [isUpdating, setIsUpdating] = useState(false);\n const dispatch = useDispatch();\n\n const updateVacationModeData = async (data: VacationModeRequestOptions) => {\n setIsUpdating(true);\n const result = await dispatch(setOrgVacationModeOptionsThunk(data));\n setIsUpdating(false);\n\n // CASE: result = null => API call did not fire -- missing OrgId\n /* eslint-disable-next-line @typescript-eslint/ban-ts-comment */\n // @ts-ignore\n if (result === null || result.error) {\n setError(true);\n // NOTE: we were not able to update\n return false;\n }\n // NOTE: successfully updated\n return true;\n };\n return {\n updateVacationModeData,\n loading: isUpdating,\n hasError: error,\n };\n};\n","import React, { useEffect, useLayoutEffect, useMemo } from 'react';\nimport { Routes } from '../../../../routes';\nimport { Link } from 'react-router-dom';\nimport { faChevronLeft } from '@fortawesome/pro-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { colors } from 'styles/settings';\nimport { faCheckCircle, faExclamationTriangle } from '@fortawesome/free-solid-svg-icons';\nimport { faBan, faCog, faPen } from '@fortawesome/pro-regular-svg-icons';\nimport {\n BankAccount,\n CreditCard,\n CustomLocalProduct,\n PayCoordinator,\n Reload,\n} from 'components/custom-icons';\nimport { BarCode } from 'components/custom-icons';\nimport { PhysicalCard } from 'components/custom-icons';\nimport OrderingSettingsTable, { tableDataType } from './OrderingSettingsTable';\nimport { Modal, ModalSize, ModalFooter, ModalSecondaryBtn } from 'components/modal/Modal';\nimport { Btn } from 'components/btn/Btn';\nimport {\n selectIsPayCoordinatorEnabled,\n selectIsShipToCoordinatorEnabled,\n getOptionsThunk,\n} from 'common/features/store/duck/organization/duck';\nimport { useRootSelector } from 'common/features/featuresReducer';\nimport { setOptions } from 'common/api/e-comm/options';\nimport useFeatureFlags, { FeatureFlagTypes } from 'common/hooks/useFeatureFlags';\nimport { useDispatch } from 'react-redux';\nimport { useScrollToTop } from 'hooks/useScrollToTop';\nimport { useP2PInviteSettings, useP2PConfirmModal } from './p2p-invite-settings/P2PInviteSettings';\nimport { ToggleTable } from './ToggleTable';\nimport { PaymentType } from 'common/api/e-comm/payment-types';\nimport { usePaymentOptions } from 'common/hooks/usePaymentOptions';\nimport { VacationModeBanner } from './vacation-mode/Banners';\nimport { useVacationModeState } from './vacation-mode/utils';\nimport { useModalControls } from 'hooks/useModalControls';\nimport { VacationModeModal } from './vacation-mode/VacationModeModal';\n\nconst availableIcon = (\n \n);\n\nconst limitedAvailabilityIcon = (\n \n);\n\nconst notAvailableIcon = (\n \n);\n\nconst SHIPMENT_DATA: tableDataType[] = [\n {\n description: {\n icon: ,\n text: 'eGift Cards',\n },\n payCoordinatorOn: {\n icon: availableIcon,\n text: 'All items available',\n },\n payCoordinatorOff: {\n icon: availableIcon,\n text: 'All items available',\n },\n },\n {\n description: {\n icon: ,\n text: 'Reloadable (Adding Money)',\n },\n payCoordinatorOn: {\n icon: availableIcon,\n text: 'All items available',\n },\n payCoordinatorOff: {\n icon: availableIcon,\n text: 'All items available',\n },\n },\n {\n description: {\n icon: ,\n text: 'Reloadable (New Cards)',\n },\n payCoordinatorOn: {\n icon: availableIcon,\n text: 'All items available',\n },\n payCoordinatorOff: {\n icon: limitedAvailabilityIcon,\n text: 'Limited availability',\n },\n },\n {\n description: {\n icon: ,\n text: 'Physical Cards',\n },\n payCoordinatorOn: {\n icon: availableIcon,\n text: 'All items available',\n },\n payCoordinatorOff: {\n icon: limitedAvailabilityIcon,\n text: 'Limited availability',\n },\n },\n {\n description: {\n icon: ,\n text: 'Custom Local Products',\n },\n payCoordinatorOn: {\n icon: availableIcon,\n text: 'All items available',\n },\n payCoordinatorOff: {\n icon: notAvailableIcon,\n text: 'Not available',\n },\n },\n];\n\nconst getPaymentsData = ({ debitEnabled }: { debitEnabled: boolean }): tableDataType[] => [\n {\n description: {\n icon: ,\n text: 'Bank Account',\n },\n payCoordinatorOn: {\n icon: availableIcon,\n text: 'Available',\n },\n payCoordinatorOff: {\n icon: availableIcon,\n text: 'Available',\n },\n },\n {\n description: {\n icon: ,\n text: debitEnabled ? 'Credit and Debit Cards' : 'Credit Cards',\n },\n payCoordinatorOn: {\n icon: availableIcon,\n text: 'Available',\n },\n payCoordinatorOff: {\n icon: availableIcon,\n text: 'Available',\n },\n },\n {\n description: {\n icon: ,\n text: 'Pay Coordinator',\n },\n payCoordinatorOn: {\n icon: availableIcon,\n text: 'Available',\n },\n payCoordinatorOff: {\n icon: notAvailableIcon,\n text: 'Not available',\n },\n },\n];\n\nexport const OrganizationSettings = ({\n selectedOrganizationId,\n isNewDashboard = false,\n}: {\n selectedOrganizationId: string;\n isNewDashboard?: boolean;\n}) => {\n useScrollToTop();\n const dispatch = useDispatch();\n const isPayCoordinatorEnabled = useRootSelector(selectIsPayCoordinatorEnabled);\n const isShipCoordinatorEnabled = useRootSelector(selectIsShipToCoordinatorEnabled);\n const { loadPaymentOptionsData } = usePaymentOptions();\n const paymentTypes = useRootSelector((s) => s.store.organization.paymentTypes);\n const hasOnlinePaymentType = Boolean(\n paymentTypes?.includes(PaymentType.BankAccount) ||\n paymentTypes?.includes(PaymentType.CreditCard)\n );\n const { isEnabled, loadingFlags } = useFeatureFlags();\n\n const [isPayCoordinatorOn, setIsPayCoordinatorOn] = React.useState(false);\n const [isShipToCoordinatorOn, setIsShipToCoordinatorOn] = React.useState(false);\n\n const [showWarningModal, setShowWarningModal] = React.useState(false);\n\n useLayoutEffect(() => {\n loadPaymentOptionsData();\n }, []);\n // vacation mode related\n const { state, isVacationModeScheduled } = useVacationModeState();\n const vacationModeModalCtrls = useModalControls();\n\n useEffect(() => {\n setIsShipToCoordinatorOn(isShipCoordinatorEnabled ?? false);\n setIsPayCoordinatorOn(!!isPayCoordinatorEnabled ?? false);\n }, [isShipCoordinatorEnabled, isPayCoordinatorEnabled]);\n\n const onShipToCoordinatorToggle = (newValue: boolean) => {\n if (!newValue) {\n setShowWarningModal(true);\n return;\n }\n\n confirmShipToCoordinatorToggle(newValue);\n };\n\n const confirmPayToCoordinatorToggle = async (newValue: boolean) => {\n try {\n await setOptions(\n {\n isShipToCoordinatorEnabled: !!isShipCoordinatorEnabled,\n isPayCoordinatorEnabled: newValue,\n },\n selectedOrganizationId\n );\n dispatch(getOptionsThunk());\n } catch (e) {\n setIsPayCoordinatorOn(!newValue);\n }\n\n setIsPayCoordinatorOn(newValue);\n };\n\n const confirmShipToCoordinatorToggle = async (newValue: boolean) => {\n try {\n await setOptions(\n {\n isPayCoordinatorEnabled: !!isPayCoordinatorEnabled,\n isShipToCoordinatorEnabled: newValue,\n },\n selectedOrganizationId\n );\n dispatch(getOptionsThunk());\n } catch (e) {\n setIsShipToCoordinatorOn(!newValue);\n }\n\n setIsShipToCoordinatorOn(newValue);\n };\n\n const { isP2PInviteEnabled, updateP2PInviteSettings, isUpdatingP2PInviteSettings } =\n useP2PInviteSettings();\n\n const confirmP2PInviteEnabled = () => {\n setShowConfirmationWarning(true);\n };\n\n const { setShowConfirmationWarning, viewP2PConfirmationWarning } = useP2PConfirmModal({\n isP2PInviteEnabled,\n onConfirm: () => {\n updateP2PInviteSettings(!isP2PInviteEnabled);\n setShowConfirmationWarning(false);\n },\n });\n\n const paymentsLink = isEnabled(FeatureFlagTypes.enable_unified_coordinator_dashboard) ? (\n Online Payments.\n ) : (\n \n Online Payments.\n \n );\n\n const toggleParticipantShipToCoordinator = () => {\n if (!state?.isVacationModeActive) {\n onShipToCoordinatorToggle(!isShipToCoordinatorOn);\n }\n };\n\n const toggleParticipantPaymentsToCoordinator = () => {\n if (!state?.isVacationModeActive) {\n confirmPayToCoordinatorToggle(!isPayCoordinatorOn);\n }\n };\n\n const isVacationModeFeatureEnabled = isEnabled(\n FeatureFlagTypes.enable_coordinator_vacation_mode\n );\n\n return (\n
\n
\n {!isNewDashboard ? (\n \n \n Back to Main Dashboard\n \n ) : null}\n

\n Organization Settings\n

\n {isEnabled(FeatureFlagTypes.coordinator_toggles) ? (\n <>\n
\n

Ordering Settings

\n {hasOnlinePaymentType && isVacationModeFeatureEnabled ? (\n \n \n {state?.isVacationModeActive || isVacationModeScheduled\n ? 'Edit Vacation Mode'\n : 'Vacation Mode'}\n \n ) : null}\n
\n \n

\n This controls the 'Ship to Coordinator' delivery option.\n Turning this OFF{' '}\n limits the products available to participants and\n potentially your organizations’ earnings.\n

\n \n
\n }\n variant=\"Ship to\"\n isToggleOn={!!isShipToCoordinatorOn}\n setIsToggleOn={toggleParticipantShipToCoordinator}\n data={SHIPMENT_DATA}\n learnMoreVariant=\"ship-to-coordinator-faqs\"\n />\n {!hasOnlinePaymentType && !!isPayCoordinatorOn ? (\n

\n \n This option is unavailable because your organization is not enrolled\n in {paymentsLink}\n

\n ) : null}\n \n ) : undefined\n }\n />\n setShowWarningModal(false)}\n showCloseButton={true}\n size={[ModalSize.LARGE, ModalSize.LARGE]}\n >\n
\n \n
\n

\n Disable Ship to Coordinator?\n

\n

\n Disabling this option will limit your participants'\n available online products.\n

\n

\n Custom local products will only be available through bulk\n and proxy orders.\n

\n
\n
\n
\n \n {\n window.open(\n 'https://www.raiseright.com/m/organization-settings-faqs',\n '_blank'\n );\n }}\n type=\"button\"\n className=\"px-2\"\n >\n Learn More\n \n {\n confirmShipToCoordinatorToggle(!isShipToCoordinatorOn);\n setShowWarningModal(false);\n }}\n >\n Yes, Please Disable\n \n \n
\n \n \n ) : null}\n {isEnabled(FeatureFlagTypes.enable_invite_friends_family) ? (\n <>\n

Invite Settings

\n confirmP2PInviteEnabled()}\n isDisabled={\n isP2PInviteEnabled === undefined || isUpdatingP2PInviteSettings\n }\n learnMoreLink=\"https://www.raiseright.com/m/invite-settings\"\n >\n
\n

\n Turn this Off to prevent participants from inviting other\n people to your program.\n
\n You can still use the Coordinator Invite Tools to invite people\n to your program.\n

\n
\n

\n Turn this On to allow participants to directly invite\n others to join your organization.\n
\n

\n
\n

\n Note: Please ensure that invite links are only shared\n directly with people associated with your organization. Sharing\n these resources on public social media pages or websites can\n result in unwanted or fraudulent enrollments.\n

\n
\n \n {viewP2PConfirmationWarning}\n \n ) : null}\n \n
\n
\n );\n};\n","import { useState } from 'react';\n\nexport const useModalControls = (modalOpenDefaultState = false) => {\n const [isVisible, setIsVisible] = useState(modalOpenDefaultState);\n\n const toggleModalVisibility = () => {\n setIsVisible((s: boolean) => !s);\n };\n\n return {\n isVisible,\n toggleModalVisibility,\n };\n};\n\nexport type ModalControls = {\n isVisible: boolean;\n toggleModalVisibility: () => void;\n};\n"],"names":["useFeatureSelector","selector","useSelector","loaders","load","getPaymentTypeFeesThunk","getAsyncState","selectPaymentTypeFeesAsyncState","getSavedCreditCardsThunk","selectSavedCreditCardsAsyncState","getUserAchAccountThunk","selectAchAccountAsyncState","hasError","s","error","Boolean","response","status","StatusCode","NotFound","getDefaultPaymentMethodThunk","store","account","achAccountAsyncState","defaultOrganization","selectHomeDetails","emptyHomeDetailsResponse","getPaymentTypesForOrganizationThunk","id","selectPaymentTypesAsyncState","isDefined","organization","paymentTypesAsyncState","selectIsLoading","rootState","some","_ref","loading","usePaymentOptions","useStore","loadPaymentOptionsData","useCallback","async","i","length","getState","dispatch","refreshIfNeeded","filter","loader","forEach","_ref3","Promise","resolve","unsubscribe","subscribe","maybeError","map","_ref2","find","selectFirstError","isLoading","paymentTypeFees","paymentTypes","savedCreditCards","selectPaymentCreditCards","achAccount","DatePicker","props","onChange","selectsRange","clearAllDates","undefined","minDate","maxDate","startDate","endDate","React","DatePickerHeaderContext","Provider","value","ReactDatePicker","_extends","renderCustomHeader","params","DatePickerHeader","onClearAllDates","styles","createStyles","input","width","clearAll","monthSelector","padding","yearSelector","grid","gridTemplateColumns","gap","container","navBtn","color","colors","grey5","close","FIRST_DATE","Date","customHeaderCount","useContext","isFirstCalendar","useMemo","years","start","current","getFullYear","availableYears","push","months","monthFormatter","Intl","DateTimeFormat","month","Array","from","_","name","format","onMonthChange","e","parseInt","target","changeMonth","onYearChange","changeYear","onPrevMonthClick","decreaseMonth","preventDefault","onNextMonthClick","increaseMonth","className","disabled","prevMonthButtonDisabled","classNames","onClick","FontAwesomeIcon","style","fontSize","icon","faChevronLeft","monthDate","getMonth","key","year","nextMonthButtonDisabled","faChevronRight","StyledSwitch","createStyle","appearance","border","height","marginLeft","marginRight","backgroundColor","verticalAlign","position","transitionDuration","outline","opacity","cursor","StyledThumb","top","left","transform","margin","background","boxShadow","grey2","SwitchWithText","checked","onText","offText","isDisabled","display","RuiSwitch","onCheckedChange","mainContainer","onHeader","offHeader","learnMoreLink","title","subTitle","variant","isToggleOn","setIsToggleOn","data","learnMoreVariant","item","index","description","text","payCoordinatorOn","payCoordinatorOff","href","faExternalLink","brand","size","ToggleTable","children","yellowBannerContainer","borderRadius","greenBannerContainer","alertGreen","editBtn","ScheduledVacationModeBanner","faClock","editVacationMode","VacationModeActiveBanner","faUmbrellaBeach","originalToggleValue","VacationModeBanner","options","day","toLocaleDateString","isVacationModeActive","isVacationModeScheduled","MAX_START_DATE","daysFromNow","MAX_END_DATE","dataPickerInput","caretColor","dataPickerInputWrapper","CustomMaskedDateInput","isOpen","toggle","inputRef","useRef","MaskedInput","readOnly","mask","MASK_DATE","placeholder","onKeyDown","stopPropagation","onPaste","ref","onCalendarClick","_inputRef$current","inputElement","focus","faCalendar","VacationModeModal","modalControls","vacationModeState","vacationModeStartDate","vacationModeEndDate","setStartDate","useState","setEndDate","isStartDatePickerOpen","setIsStartDatePickerOpen","isEndDatePickerOpen","setIsEndDatePickerOpen","updateVacationModeData","useVacationModeUpdateCtrl","setError","isUpdating","setIsUpdating","useDispatch","result","setOrgVacationModeOptionsThunk","errorStartDate","setErrorStartDate","errorEndDate","setErrorEndDate","generalError","setGeneralError","useEffect","isVisible","onStartDateChange","date","onEndDateChange","onCloseModal","toggleModalVisibility","onSaveModal","toISOString","onCancelVacationMode","removeVacationMode","Modal","onClose","selected","selectsStart","customInput","open","onCalendarOpen","onCalendarClose","selectsEnd","faExclamationTriangle","Btn","isSecondary","type","availableIcon","faCheckCircle","success","limitedAvailabilityIcon","warningDark","notAvailableIcon","faBan","SHIPMENT_DATA","BarCode","Reload","PhysicalCard","CustomLocalProduct","getPaymentsData","debitEnabled","BankAccount","CreditCard","PayCoordinator","OrganizationSettings","selectedOrganizationId","isNewDashboard","useScrollToTop","isPayCoordinatorEnabled","useRootSelector","selectIsPayCoordinatorEnabled","isShipCoordinatorEnabled","selectIsShipToCoordinatorEnabled","hasOnlinePaymentType","includes","PaymentType","isEnabled","loadingFlags","useFeatureFlags","isPayCoordinatorOn","setIsPayCoordinatorOn","isShipToCoordinatorOn","setIsShipToCoordinatorOn","showWarningModal","setShowWarningModal","useLayoutEffect","state","useVacationModeState","_s$store$organization","_s$store$organization2","vactionModeEndDate","vactionModeStartDate","vacationModeEndDate_","setMinutes","getMinutes","getTimezoneOffset","vacationModeStartDate_","vacationModeModalCtrls","useModalControls","_isPayCoordinatorEnab","confirmShipToCoordinatorToggle","setOptions","isShipToCoordinatorEnabled","newValue","getOptionsThunk","isP2PInviteEnabled","updateP2PInviteSettings","isUpdatingP2PInviteSettings","useP2PInviteSettings","setShowConfirmationWarning","viewP2PConfirmationWarning","useP2PConfirmModal","onConfirm","paymentsLink","FeatureFlagTypes","enable_unified_coordinator_dashboard","Link","to","Routes","CoordinatorDashboardPaymentTypes","isVacationModeFeatureEnabled","enable_coordinator_vacation_mode","ShopAccountSettingsCoordinatorTab","bonusPink","coordinator_toggles","faPen","faCog","OrderingSettingsTable","originalIsShipToCoordinatorEnabled","toggleParticipantShipToCoordinator","toggleParticipantPaymentsToCoordinator","confirmPayToCoordinatorToggle","enable_debit_web","originalIsPayCoordinatorEnabled","showCloseButton","ModalSize","LARGE","ModalFooter","window","ModalSecondaryBtn","enable_invite_friends_family","modalOpenDefaultState","setIsVisible"],"sourceRoot":""}