{"version":3,"file":"static/js/10.cb43c6bb1c78b3d11d2a.chunk.js","mappings":";oyBA2BA,MAAMA,UAAcC,EAAAA,cAApBC,kCAcW,KAAAC,sBAAwB,IAAOC,IAC9BC,KAAKC,MAAMC,OAAOC,QAClBH,KAAKC,MAAMC,OAAOE,UAAYL,EAAMM,OAAOC,QAIlC,KAAAC,iBAAmB,KAChC,MAAMH,EAAYJ,KAAKC,MAAMC,OAAOE,UAUpC,OAPIR,EAAAA,cAACY,EAAAA,GAA0B,CACvBC,KAAML,EACNM,UAAU,kBACVC,UAAW,CAAEC,OAAQZ,KAAKF,wBAAyBe,eAAgBb,KAAKC,MAAMa,QAAQC,YAWjF,KAAAC,iBAAmB,KAAK,IAAAC,EACrC,MAAMd,EAAQH,KAAKC,MAAMC,OAAOC,MAa1Be,EAAa,CACfC,aAAcnB,KAAKC,MAAMa,QAAQC,QAAQI,aACzCC,cAAoC,QAAvBH,EAAGd,MAAAA,OAAK,EAALA,EAAOiB,qBAAa,IAAAH,EAAAA,EAdc,CAClDI,UAAW,CACPC,GAAI,CAAEC,EAAG,uBAAwBC,EAAG,IAAKC,EAAG,KAC5CC,GAAI,CAAEH,EAAG,uBAAwBC,EAAG,IAAKC,EAAG,KAC5CE,GAAI,CAAEJ,EAAG,uBAAwBC,EAAG,IAAKC,EAAG,KAC5CG,GAAI,CAAEL,EAAG,uBAAwBC,EAAG,IAAKC,EAAG,KAC5CI,GAAI,CAAEN,EAAG,uBAAwBC,EAAG,IAAKC,EAAG,MAEhDK,UAAU,EACVC,iBAAiB,IAarB,OAHInC,EAAAA,cAACY,EAAAA,GAAcwB,OAAAC,OAAA,GAAK9B,EAAWe,EAAU,CAAEgB,oBAAoB,QAAQrB,eAAgBb,KAAKC,MAAMa,QAAQC,YA1D3GoB,SACH,MAAMC,EAASC,EAAAA,EAAA,GACRrC,KAAKC,OAAK,IACbE,MAAO,CACHmC,YAAatC,KAAKC,MAClBS,UAAW6B,GAAAA,CAAW,YAAavC,KAAKC,MAAMC,OAAOQ,WACrD8B,IAAK,OAETpC,UAAWJ,KAAKO,mBAChBkC,UAAWzC,KAAKgB,qBAEpB,OAAOhB,KAAKC,MAAMyC,WAAWN,IAsDrC,kHC7EO,MAAMO,EAAwC1C,IACjD,MAAM,UAAEG,EAAS,MAAED,EAAK,UAAEsC,GAAcxC,EACxC,OACIL,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAK9B,GACLsC,EACArC,IAKb,2KCtBO,MAAMyC,EAA+BA,CAACC,EAA+BC,EAAwBC,KAEhG,MAAMC,GAAmBC,EAAAA,EAAAA,IAAW,uBAAwBJ,IAAkB,GACxEK,EAAYF,EAAiBG,SAAS,KAAO,IAAM,IAEzD,MAAO,GAAGH,IAAmBE,iCAAyCJ,oBAAiCC,KAuB3G,EAbiFK,IAK5E,IAL6E,cAC9EP,EAAa,eACbC,EAAc,OACdC,EAAM,WACNM,GACHD,EACG,OACIzD,IAAAA,cAACA,IAAAA,SAAc,KACXA,IAAAA,cAAC2D,EAAAA,OAAM,CAACC,KAAMX,EAA6BC,EAAeC,EAAgBC,IAAUM,0kBCQhG,MAAMG,UAA4B7D,EAAAA,UAG9BC,YAAmBI,GAAwC,IAAAyD,EACvDC,MAAM1D,GAqBH,KAAA2D,oBAAuB7D,GAA0CC,KAAKC,MAAMC,OAAO2D,QAAQpD,KAAOV,EAAMM,OAAOC,MAmB9G,KAAAwD,eAAiB,KACrB,MAAM,UAAEC,GAAc/D,KAAKC,MAE3B,OACIL,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAAA,KACIoE,GAAG,4BACHtD,UAAU,gFAA+E,mBACxE,qCAGrBd,EAAAA,cAACqE,EAAAA,oBAAmB,CAAC5D,OAAO,4BAA4B2D,GAAG,oCACtDpE,EAAAA,cAAA,OAAKsE,wBAAyB,CAAEC,OAAQJ,EAAUK,gCAM3D,KAAAC,aAAgBC,IACpB,MAAM,UAAEP,GAAc/D,KAAKC,MAC3B,OACIL,EAAAA,cAACA,EAAAA,SAAc,MACV0E,MAAAA,OAAgB,EAAhBA,EAAkBC,QAAS,EACxB3E,EAAAA,cAAA,OAAKc,UAAU,oBACXd,EAAAA,cAAA,SAAOc,UAAU,uBACbd,EAAAA,cAAA,aACIA,EAAAA,cAAA,UACIA,EAAAA,cAAA,MAAI4E,MAAM,OAAOT,EAAUU,qBAC3B7E,EAAAA,cAAA,MAAI4E,MAAM,OAAOT,EAAUW,0BAC3B9E,EAAAA,cAAA,MAAI4E,MAAM,OACLT,EAAUY,wBACV3E,KAAK8D,kBAEVlE,EAAAA,cAAA,MAAI4E,MAAM,OAAOT,EAAUa,kBAC3BhF,EAAAA,cAAA,MAAI4E,MAAM,UAGlB5E,EAAAA,cAAA,aACK0E,MAAAA,OAAgB,EAAhBA,EAAkBO,KAAI,CAACC,EAAIC,KACxB,OACInF,EAAAA,cAAA,MAAIoF,IAAKF,EAAGG,6BAA+BH,EAAGI,eAAeC,WAAaC,OAAOL,IAC7EnF,EAAAA,cAAA,MAAI4E,MAAM,OAAOM,EAAGG,8BACpBrF,EAAAA,cAAA,UAAKkF,EAAGO,iBACRzF,EAAAA,cAAA,UCvHP0F,EAACvB,EAA0CwB,KAC5E,OAAQA,GACJ,KAAKC,EAAAA,EAAmBC,OACpB,OAAO1B,EAAU2B,OACrB,KAAKF,EAAAA,EAAmBG,SACpB,OAAO5B,EAAU6B,SACrB,KAAKJ,EAAAA,EAAmBK,YACpB,OAAO9B,EAAU+B,YACrB,KAAKN,EAAAA,EAAmBO,OACpB,OAAOhC,EAAUiC,OACrB,KAAKR,EAAAA,EAAmBS,WACpB,OAAOlC,EAAUmC,WACrB,QACI,MAAO,KD0G8BZ,CAAsBvB,EAAWe,EAAGqB,wBACzCvG,EAAAA,cAAA,UACKkF,EAAGsB,kBChGzBtF,EDgGuDd,KAAKC,MAAMa,aC/F5EuF,KADiCC,EDgGoD,IAAIC,KAAKzB,EAAGsB,mBC9FnG,GAIJtF,EAAQ0F,iBAAiBC,WAAWH,EADH,CAAEI,KAAM,UAAWC,MAAO,UAAWC,IAAK,aD2FiD,KAE3FhH,EAAAA,cAAA,UACIA,EAAAA,cAACiH,EAA2B,CACxB/D,cAAe9C,KAAKC,MAAMa,QAAQgC,cAClCQ,WAAYS,EAAU+C,cACtB9D,OAAQ8B,EAAGI,eACXnC,eAAgB+B,EAAGG,iCCvG7CwB,IAAC3F,EAAuBwF,QDiH9B1G,EAAAA,cAAA,WAAMmE,EAAUgD,mBAUf,KAAAC,gBAAmB/G,IAChC,MAAM,KAAEgH,GAAShH,GAEjBiH,EAAAA,EAAAA,KACI,SAAAC,EAAA,OAA2B,QAA3BA,EAAMF,EAAK3C,wBAAgB,IAAA6C,OAAA,EAArBA,EAAuBC,UAC7B,KAAK,IAAAC,EAAAC,EACDtH,KAAKuH,qBAAoD,QAAhCF,EAAwB,QAAxBC,EAAGL,EAAK3C,wBAAgB,IAAAgD,OAAA,EAArBA,EAAuBF,cAAM,IAAAC,EAAAA,EAAI,OApHrE,MAAM,KAAEJ,GAASjH,KAAKC,MAEtBD,KAAKuH,sBAA4C,QAArB7D,EAAAuD,EAAK3C,wBAAgB,IAAAZ,OAAA,EAArBA,EAAuB0D,SAAU,GAG1DI,oBACCxH,KAAKC,MAAMa,QAAQgC,cAAcjC,eAAe4G,KAAKC,iBAErD1H,KAAKgH,gBAAgBhH,KAAKC,OAI3B0H,sBAAsBC,EAA8CC,GACvE,OAAI7H,KAAK8H,QAAUD,GAAa7H,KAAKC,MAAMgH,OAASW,EAAUX,KAQ3D9E,SAAM,IAAA4F,EACT,MAAM3F,EAASC,EAAAA,EAAA,GACRrC,KAAKC,OAAK,IACbS,UAAW6B,GAAAA,CAAW,wBAAyBvC,KAAKC,MAAMC,OAAOQ,WACjEmD,QAAS7D,KAAKC,MAAMC,OAAO2D,SACvBjE,EAAAA,cAACY,EAAAA,GAAa,CACVE,UAAU,GACV8B,IAAKxC,KAAKC,MAAMC,OAAO2D,QAAQrB,KAAO,KACtC/B,KAAMT,KAAKC,MAAMC,OAAO2D,QAAQpD,KAChCE,UAAW,CAAEC,OAAQZ,KAAK4D,oBAAqB/C,eAAgBb,KAAKC,MAAMa,QAAQC,WAG1FiH,MAAOhI,KAAKqE,aAAsC,QAA1B0D,EAAC/H,KAAKuH,4BAAoB,IAAAQ,EAAAA,EAAI,MAE1D,OAAO/H,KAAKC,MAAMyC,WAAWN,KAxCrB6F,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,2CA+Hf,iFE3JA,QAAgBjI,IACZ,MAAM,MAAE+H,EAAK,QAAEnE,EAAO,UAAEnD,GAAcT,EAEtC,OACIL,EAAAA,cAAA,OAAKc,UAAWA,GACXmD,EACAmE,4rBCUb,MAAMG,UAAqBvI,EAAAA,cAA3BC,kCAuBW,KAAAuI,iBAAoBrI,GAA0CC,KAAKC,MAAMC,OAAOE,UAAYL,EAAMM,OAAOC,MAtBzG6B,SACH,MAAM,OAAEkG,EAAM,UAAEjI,EAAS,UAAEkI,EAAS,MAAEC,EAAK,UAAE7H,GAAcV,KAAKC,MAAMC,OAChEO,EAAOL,GACTR,EAAAA,cAACY,EAAAA,GAA0B,CACvBC,KAAML,EACNO,UAAW,CAAEC,OAAQZ,KAAKoI,iBAAkBvH,eAAgBb,KAAKC,MAAMa,QAAQC,WAIjFyH,EAAOF,GAAa1I,EAAAA,cAAA,OAAKc,UAAU,4BAA4BwD,wBAAyB,CAAEC,OAAQmE,KAElGG,EAAkBpG,EAAAA,EAAA,GACjBrC,KAAKC,OAAK,IACboI,OAAQA,EACRjI,UAAWK,EACX6H,UAAWE,EACXD,MAAOA,EACP7H,UAAW6B,GAAAA,CAAW,iBAAkB7B,KAE5C,OAAOV,KAAKC,MAAMyC,WAAW+F,IAKrC,gFCxCkBC,EAMAC,EAOAN,EAKAO,EAkBAC,qBApClB,SAAkBH,GACdA,EAAA,YACAA,EAAA,cACAA,EAAA,gBAHJ,CAAkBA,IAAAA,EAAS,KAM3B,SAAkBC,GACdA,EAAA,cACAA,EAAA,gBACAA,EAAA,cACAA,EAAA,wBAJJ,CAAkBA,IAAAA,EAAQ,KAO1B,SAAkBN,GACdA,EAAA,UACAA,EAAA,gBAFJ,CAAkBA,IAAAA,EAAM,KAKxB,SAAkBO,GACdA,EAAA,sBACAA,EAAA,gBACAA,EAAA,gBAHJ,CAAkBA,IAAAA,EAAK,KAkBvB,SAAkBC,GACdA,EAAA,0BACAA,EAAA,4BACAA,EAAA,8BACAA,EAAA,gCAJJ,CAAkBA,IAAAA,EAAe,KClCjC,MAsCA,EAtC2D5I,IACvD,MAAM,MAAEsI,GAAUtI,EAAMC,OACxB,OACIN,EAAAA,cAAA,MAAAoC,OAAAC,OAAA,CAAKvB,UAAWT,EAAMS,UAAWsD,GAAI/D,EAAM+D,IAAQ/D,EAAM6I,uBAAuB7I,IAC5EL,EAAAA,cAAA,OAAKc,UAAmC,QAAxBT,EAAMC,OAAOmI,OAAmB,6BAA+B,iCAC1EpI,EAAMqI,UACNrI,EAAMG,WAEVmI,GACG3I,EAAAA,cAAA,OAAKc,UAAU,gCACV6H,EAAM1D,KAAI,CAACkE,EAAMhE,IAEVnF,EAAAA,cAAC2D,EAAAA,OAAM,CACHyB,IAAKD,EACLvB,KAAMuF,EAAKC,QAAQC,eACnBC,KAAK,SACLxI,UAAW,KACPqI,MAAAA,OAAI,EAAJA,EAAMI,cAAeN,EAAgBO,YAC/B,0BACAL,EAAKI,aAAeN,EAAgBQ,aACpC,2BACAN,EAAKI,aAAeN,EAAgBS,cACpC,4BACAP,EAAKI,aAAeN,EAAgBU,eACpC,6BACA,KAGTR,EAAKS,8GCbtC,MAAMC,EAA2CpG,IAA6B,IAA5B,cAAEqG,EAAa,MAAEC,GAAOtG,EACtE,OACIzD,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKyH,GACLC,EAAM9E,KAAK+E,GACDhK,EAAAA,cAAAA,EAAAA,SAAA,KAAGgK,EAAKC,iBAezBC,EAAsCC,IAAyC,IAAxC,KAAEC,EAAI,WAAEC,EAAU,QAAEpG,EAAO,MAAE8F,GAAOI,EAC7E,OAAKE,EAKDrK,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAK+H,GACLnG,EACA8F,EAAM9E,KAAK+E,IACR,MAAM,KAAEM,EAAI,IAAElF,EAAG,MAAEmF,EAAK,UAAEC,EAAS,oBAAEC,GAAwBT,GACvD,MAAEU,EAAK,YAAEC,EAAW,MAAEC,EAAK,QAAEC,GAAYN,EAC/C,OACIvK,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKiI,EAAI,CAAElF,IAAKA,IACjBpF,EAAAA,cAAC6J,EAAWzH,OAAAC,OAAA,GAAKmI,IAChBG,GACG3K,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKqI,GACLE,EACAC,GAGRJ,OAlBV,MAsCTK,EAA4CC,IAQ7C,IAR8C,YAC/CC,EAAW,QACX/G,EAAO,uBACPgH,EAAsB,iBACtBC,EAAgB,UAChBC,EAAS,mBACTC,EAAkB,iBAClBC,GACHN,EACG,OACI/K,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAK2I,GACL/G,EACAgH,GAA0BC,EAC3BlL,EAAAA,cAACkK,EAAW9H,OAAAC,OAAA,GAAK+I,IACjBpL,EAAAA,cAACkK,EAAW9H,OAAAC,OAAA,GAAKgJ,MAmBvBC,EAAqDC,IAUtD,IAVuD,YACxDC,EAAW,QACXvH,EAAO,MACP8F,EAAK,SACL0B,EAAQ,MACRlB,EAAK,iBACLmB,EAAgB,WAChBC,EAAU,mBACVC,EAAkB,aAClBC,GACHN,EACG,OACIvL,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKmJ,GACLvH,EACA8F,EAAM9E,KAAK+E,IACR,MAAM,YAAE8B,EAAW,IAAE1G,EAAG,MAAE2G,EAAK,MAAEC,EAAK,MAAEC,GAAUjC,EAClD,OACIhK,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKyJ,EAAW,CAAE1G,IAAKA,IACvB2G,EACAC,EACAC,MAIZR,GACGzL,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKkI,EAAM2B,cACX3B,EAAMK,MACNL,EAAMM,SAGda,GAAoBC,EACpBC,GAAsBC,IA8BnC,EApBmFxL,IAC/E,MAAM,yBACF8L,EAAwB,eACxBC,EAAc,UACdC,EAAS,gBACTC,EAAe,uBACfC,EAAsB,yBACtBC,GACAnM,EAEJ,OACIL,EAAAA,cAACyM,EAAAA,OAAMrK,OAAAC,OAAA,GAAK8J,GACPC,EACAC,EAAUK,kBAAoB1M,EAAAA,cAAC8K,EAAY1I,OAAAC,OAAA,GAAKiK,IAChDD,EAAUM,0BAA4B3M,EAAAA,cAACsL,EAAgBlJ,OAAAC,OAAA,GAAKkK,IAC5DC,gHC9Jb,MAAMI,EAAmBA,CACrBC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,IAEID,EACOnN,EAAAA,cAAAA,EAAAA,SAAA,KAAGmN,GAEVN,EACOA,EAAU5H,KAAIoI,IAAW,IAAAC,EAC5B,OACItN,EAAAA,cAAA,OAAKc,UAAU,sBAAsBsE,IAAK,GAAsB,QAAtBkI,EAAGD,EAASE,kBAAU,IAAAD,EAAAA,EAAI,MAAME,EAAAA,GAASC,UAAUlI,cACxF8H,EAASK,SACTV,GAAiBK,EAASM,cACvB3N,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKgL,EAASM,cAAcC,gBAAiBP,EAASM,cAAcE,kBACzE,KAEJ7N,EAAAA,cAAAA,EAAAA,SAAA,KAAGqN,EAASS,YAKrBV,EACHpN,EAAAA,cAAA,OAAKc,UAAU,wBACXd,EAAAA,cAAA,KAAGc,UAAU,iBAAiBgM,GAC7BG,GAGLjN,EAAAA,cAAAA,EAAAA,SAAA,KAAGkN,GA8HLa,EAA6BA,CAC/BC,EACAC,EACAC,EACAC,EACAd,EACAe,KACA,IAAAC,EAEA,IAAIC,EAKJ,OAHAA,GAHmE,QAA9CD,EAAwBhB,EAASM,qBAAa,IAAAU,OAAA,EAAtBA,EAAwBE,iBAGtCP,EAAaC,EAC5CK,EAAajB,EAAShG,MAAQgG,EAAShG,KAAKqG,SAASc,eAAiBJ,EAAwBF,EAAoBI,EAG9GtO,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAAA,OAAKc,UAAU,8CACXd,EAAAA,cAAA,KAAGc,UAAW,8CAA8CwN,EAAWG,uBACvEzO,EAAAA,cAAA,KAAGc,UAAW,8CAA8CwN,EAAWG,iBAAkBH,GA7CvEI,EAACrB,EAA+Bc,KAAyB,IAAAQ,EAAAC,EAAAC,EACvF,MAAMN,EAA6D,QAA9CI,EAAwBtB,EAASM,qBAAa,IAAAgB,OAAA,EAAtBA,EAAwBJ,gBACrE,OACIvO,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAACgD,EAAAA,KAAI,CAAClC,UAAU,oDACXyN,EACGvO,EAAAA,cAAA,KAAGc,UAAU,uDACc,QADuC8N,EAC7DvB,EAASM,qBAAa,IAAAiB,OAAA,EAAtBA,EAAwBE,eACxBX,EACsB,QADTU,EACbxB,EAASM,qBAAa,IAAAkB,OAAA,EAAtBA,EAAwBE,aAE7B,QAmCHL,CAA0BrB,EAAUc,MA6FrD,EAvC4C9N,IAAqB,IAAA2O,EAAAC,EA9LtCC,EAwEAC,EAsHsC,OAC7DnP,EAAAA,cAAA,MAAAoC,OAAAC,OAAA,CAAKvB,UAAWT,EAAMS,UAAWsD,GAAI/D,EAAM+D,IAAQ/D,EAAM6I,uBAAuB7I,IAC3EA,EAAMuK,QACK,QAAXoE,EAAC3O,EAAM+O,YAAI,IAAAJ,GAAVA,EAAYK,iBAAkBhP,EAAMiP,mBAzHnBH,EAyHyD9O,EAAMiP,iBAvHlFtP,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAK8M,EAAWI,yBAChBJ,EAAWK,iBACXL,EAAWM,oBACXN,EAAWO,mBAoHnBrP,EAAMsP,sBA/CetP,CAAAA,GACtBA,EAAMuP,gBAAkBC,EAAAA,gBAAgBC,YAAYzP,EAAMuP,gBAEtD5P,EAAAA,cAAA,OAAKc,UAAU,wBACVT,EAAMuP,eAAe3K,KAAI8K,IAAY,IAAAC,EAClC,OACIhQ,EAAAA,cAAA,OAAKoF,IAAK2K,EAAU,GAAGxC,WAAYzM,UAAU,+BACxCiN,EACG1N,EAAM8D,UAAU6J,WAChB3N,EAAM8D,UAAU8J,aAChB5N,EAAM8D,UAAU8L,kBAChB5P,EAAM8D,UAAUgK,cAChB4B,EAAU,GACwC,QADtCC,EACZ3P,EAAMa,QAAQgC,cAAcjC,eAAeiP,eAAO,IAAAF,OAAA,EAAlDA,EAAoDG,uBAEvDvD,EACGmD,EACA1P,EAAM8D,UAAUiM,cAChB/P,EAAM0M,iBACN1M,EAAM2M,cACN3M,EAAM4M,qBACN5M,EAAM6M,iBACN7M,EAAM8M,kBACN9M,EAAM+M,qBAQ3B/M,EAAM+M,eACTpN,EAAAA,cAAA,OAAKc,UAAU,uBACXd,EAAAA,cAAA,OAAKc,UAAU,wBACXd,EAAAA,cAAA,KAAGc,UAAU,iBAAiBT,EAAM8D,UAAUiM,eAC7C/P,EAAM4M,uBAIfjN,EAAAA,cAAAA,EAAAA,SAAA,KAAGK,EAAM6M,kBASLmD,CAAqBhQ,GAErBL,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKhC,EAAM0M,kBACXH,EACGvM,EAAM0P,UACN1P,EAAM8D,UAAUiM,cAChB/P,EAAM0M,iBACN1M,EAAM2M,cACN3M,EAAM4M,qBACN5M,EAAM6M,iBACN7M,EAAM8M,kBACN9M,EAAM+M,iBAIjB/M,EAAMiQ,qBACHtQ,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKhC,EAAMkQ,qBACXlQ,EAAMiQ,oBACI,QAAVrB,EAAA5O,EAAM+O,YAAI,IAAAH,GAAVA,EAAYI,eAlMMmB,EAC/BC,EACAC,EACArQ,IAEKoQ,EAKDzQ,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKqO,GACLD,EAAoBE,SACpBF,EAAoBG,SACpBH,EAAoBI,QACpBJ,EAAoBK,aARzBzQ,EAAMa,QAAQ6P,UAAUxG,MAAM,uDACvB,MA4LOiG,CAA2BnQ,EAAM2Q,wBAAyB3Q,EAAMqQ,kBAAmBrQ,GAzKxE4Q,EAC7BC,EACAR,EACArQ,IAEK6Q,EAKDlR,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKqO,GACLrQ,EAAM8Q,UACND,EAAkBE,SAElBF,EAAkBG,YAClBH,EAAkBI,IAClBJ,EAAkBK,eAAiBL,EAAkBK,eAAiB,KACtEL,EAAkBJ,aAXvBzQ,EAAMa,QAAQ6P,UAAUxG,MAAM,qDACvB,MAmKO0G,CAAyB5Q,EAAMmR,sBAAuBnR,EAAMqQ,kBAAmBrQ,IAvN1E6O,EAwNQ7O,EAAMoR,qBAvNlB5B,EAAAA,gBAAgBC,YAAYZ,EAAUwC,QAIrD1R,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAK6M,EAAUyC,SACfzC,EAAU0C,OACV1C,EAAUwC,QALR,KAuNErR,EAAMwR,2BACNxR,EAAMyR,sBACNzR,EAAM0R,uBAAyBlC,EAAAA,gBAAgBC,YAAYzP,EAAM0R,uBAC9D/R,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKhC,EAAM2R,+BAAgC3R,EAAM0R,uBACtD,KACH1R,EAAM4M,sBAGd5M,EAAM2M,gYC/Qf,MA4CMiF,EAAoB5R,IAAuC,IAAA6R,EAAAC,EAAAC,EAC7D,OAAOC,KAAKC,IACkB,QADfJ,EACX7R,EAAMgH,KAAKkL,MAAMC,iBAAS,IAAAN,EAAAA,EA9CL,EA+Ce,QADMC,EAC1C9R,EAAMgH,KAAKkL,MAAME,2BAAmB,IAAAN,EAAAA,EA/Cf,EAgDS,QADsBC,EACpD/R,EAAMgH,KAAKkL,MAAMG,qBAAa,IAAAN,EAAAA,EAhDT,IA2DvBO,EAAiBA,CAACtS,EAA6BkS,EAA2BK,SAC9DnM,IAAV8L,EACO,GAGPK,GA/DkB,IA+DQL,GAAuBlS,EAAMwS,cAChDxS,EAAMwS,cAGVxS,EAAMa,QAAQ0F,iBAAiB+L,eAAeJ,GA+BnDO,EAAsBzS,IACxB,MAAM0S,EAA0BJ,EAAetS,EAAOA,EAAMgH,KAAKkL,MAAMS,iBAAiB,GAClFC,EAA0BN,EAAetS,EAAOA,EAAMgH,KAAKkL,MAAMW,iBAAiB,GAMtF,IAAAC,EALF,OACI9S,EAAM+S,sBACN/S,EAAMgH,KAAKkL,MAAMS,iBACjB3S,EAAMgH,KAAKkL,MAAMW,iBACjB7S,EAAMgH,KAAKkL,MAAMS,gBAAkB3S,EAAMgH,KAAKkL,MAAMW,gBAGhDlT,EAAAA,cAAA,QAAMc,UAAU,wBAAwBuS,SAAS,SAC7CrT,EAAAA,cAAA,QAAMc,UAAU,sBAAsBuS,SAAS,SAC1CJ,GAELjT,EAAAA,cAAA,QAAMc,UAAU,uBAAuBuS,SAAS,SACvB,QAD8BF,EAClD9S,EAAMiT,sBAAc,IAAAH,OAAA,EAApBA,EAAsBI,qBAE3BvT,EAAAA,cAAA,QAAMc,UAAU,sBAAsBuS,SAAS,SAC1CN,IAOb/S,EAAAA,cAAA,QAAMc,UAAU,oBAAoBuS,SAAS,SACxCV,EAAetS,EAAOA,EAAMgH,KAAKkL,MAAMiB,yBAAyB,KAwGhEC,EAAgEC,EAAAA,GAAiBC,wBAC1F,6WAAOlR,CAAA,CACLmR,UAnCyCvT,IAE3C,MAAMwT,EAAuBxT,EAAMyT,kBAGnC,YAAiDrN,IAA7CpG,EAAMgH,KAAKkL,MAAMiB,wBACV,KAONnT,EAAM0T,qCAAgF,IAAzC1T,EAAMgH,KAAKkL,MAAMyB,qBAC9DC,EAAAA,iBAAiBC,SAAS7T,EAAM8T,uBAAwD,IAA/B9T,EAAM8T,qBAEzDnU,EAAAA,cAAA,QAAMc,UAAW6B,GAAAA,CAAW,YAAatC,EAAMS,YArD3BT,CAAAA,IAA4C,IAAA+T,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAC3E,MACMC,GAD+D,QAArDT,EAAgB/T,EAAMgH,KAAKkL,MAAMuC,4BAAoB,IAAAV,EAAAA,EAAI,IACd,GAC3D,OACIpU,EAAAA,cAAA,QAAMc,UAAW6B,GAAAA,CAAW,YAAatC,EAAMS,YAC3Cd,EAAAA,cAAA,KAAGc,UAAU,oBAAoBuS,SAAS,SACrCV,EAAetS,EAA2C,QAAtCgU,EAAEhU,EAAMgH,KAAKkL,MAAMyB,2BAAmB,IAAAK,EAAAA,EAAIhU,EAAMgH,KAAKkL,MAAMiB,yBAAyB,IAE7GxT,EAAAA,cAAA,KAAGc,UAAW6B,GAAAA,CAAW,kCAAmCtC,EAAMS,YACzC,QADmDwT,EACvEjU,EAAMiT,sBAAc,IAAAgB,OAAA,EAApBA,EAAsBS,2BAE3B/U,EAAAA,cAAA,KAAGc,UAAW6B,GAAAA,CAAW,kCAAmCtC,EAAMS,YAC9Dd,EAAAA,cAAA,aAEKgV,EAAAA,EAAAA,QAA+D,QAAzDT,EAAqB,QAArBC,EAACnU,EAAMiT,sBAAc,IAAAkB,OAAA,EAApBA,EAAsBS,0CAAkC,IAAAV,EAAAA,EAAI,GAAI,CACpEM,EAAeK,cACfL,EAAeK,iBAGvBlV,EAAAA,cAAA,aAEKgV,EAAAA,EAAAA,QAAkE,QAA5DP,EAAqB,QAArBC,EAACrU,EAAMiT,sBAAc,IAAAoB,OAAA,EAApBA,EAAsBS,6CAAqC,IAAAV,EAAAA,EAAI,GAAI,CAACI,EAAeO,qBAE/FpV,EAAAA,cAAA,aAEKgV,EAAAA,EAAAA,QAAkE,QAA5DL,EAAqB,QAArBC,EAACvU,EAAMiT,sBAAc,IAAAsB,OAAA,EAApBA,EAAsBS,6CAAqC,IAAAV,EAAAA,EAAI,GAAI,CAACE,EAAeS,wBA4BpCC,CAA0BlV,IAI7FL,EAAAA,cAAA,QAAMc,UAAW6B,GAAAA,CAAW,YAAatC,EAAMS,YACzCT,EAAMa,QAAQC,QAAQ0G,KAAKC,gBA7IPzH,CAAAA,IAC9B,MAAMmV,EAAgBvD,EAAiB5R,GACvC,OACIA,EAAM+S,sBACN/S,EAAMgH,KAAKkL,MAAMS,iBACjB3S,EAAMgH,KAAKkL,MAAMW,iBACjB7S,EAAMgH,KAAKkL,MAAMS,gBAAkB3S,EAAMgH,KAAKkL,MAAMW,gBAE7C7S,EAAMgH,KAAKkL,MAAMW,gBAAkBsC,KAG1CA,IAAiBnV,EAAMgH,KAAKkL,MAAMiB,0BAC3BgC,EAAgBnV,EAAMgH,KAAKkL,MAAMiB,yBAmI9BiC,CAAyBpV,GApFEA,CAAAA,IACzC,MAAMmV,EAAwBvD,EAAiB5R,GACzCqV,EAAuB/C,EAAetS,EAAOmV,GAAe,GAElE,OACIxV,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAAA,QAAMc,UAAU,WACX,IACAT,EAAMyT,kBAAiB,IAAG4B,EAAY,IAAGrV,EAAMsV,iBAAgB,IAAG7C,EAAmBzS,IAE1FL,EAAAA,cAAA,QAAMc,UAAU,2BAA0B,cAAa,QAClD4U,EAAc,KAEnB1V,EAAAA,cAAA,sBAAkB,QAAQ8S,EAAmBzS,IAC5CA,EAAMuV,aAAe5V,EAAAA,cAAA,QAAMc,UAAU,sBAAsBT,EAAMuV,eAuE5DC,CAAoCxV,GACpCyS,EAAmBzS,GAHnBwT,KArLY,KAqM9B,4FC5OA,QAAgBxT,GACLL,EAAAA,cAAAA,EAAAA,SAAA,KAAG8V,EAAkBzV,IAG1B0V,EAAaA,IACR/V,EAAAA,cAAA,OAAKc,UAAU,wCAAwC,IAiB5DkV,EAA0B3V,IAC5B,MAAM,mBAAE4V,EAAkB,uBAAEC,EAAsB,4BAAEC,GAAgC9V,EAC9E+V,EAAUD,EAA6BlR,KAAI,CAAC+E,EAAM7E,IAEhDnF,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAK6T,EAAsB,CAAE9Q,IAAKD,IAClC6E,KAIb,OACIhK,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAK4T,EAAkB,CAAEI,aAAchW,EAAMiW,wBAC7CF,IAmBPN,EAAqBzV,IACvB,MAAM,aAAEkW,EAAY,WAAEC,GAAenW,EACrC,OAAOL,EAAAA,cAACyM,EAAAA,OAAMrK,OAAAC,OAAA,GAAKmU,GAAaD,EAhBTlW,CAAAA,IAAgD,IAAAoW,EACvE,MAAM,0BAAEC,GAA8BrW,EAEtC,OADAqW,EAA0BC,iBAAmBZ,IAEzC/V,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKqU,EAAyB,CAAEE,QAASvW,EAAMwW,oBAChD7W,EAAAA,cAAA,WACsC,QADtCyW,EACKpW,EAAM8V,mCAA2B,IAAAM,OAAA,EAAjCA,EAAmCxR,KAAI,CAAC+E,EAAM7E,IACpCnF,EAAAA,cAAA,OAAKoF,IAAKD,GAAQ6E,QASM8M,CAAkBzW,GA9CzCA,CAAAA,IACxB,MAAM,eAAE0W,EAAc,mBAAEC,GAAuB3W,EAC/C,OACIL,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAK0U,EAAc,CAAEH,QAASvW,EAAMwW,oBAEpCd,IACD/V,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAK2U,KAEb3W,EAAM4W,iBAAmBjB,EAAuB3V,GAAS,OAqCQ6W,CAAmB7W,gxBC3BjG,MAAM8W,UAAmCnX,EAAAA,UAUrCC,YAAYI,GACR0D,MAAM1D,GAEND,KAAKgX,kBAAmBC,EAAAA,EAAAA,oBACpBjX,KAAKC,MAAMa,QAAQC,QAAQmW,kBAC3BlX,KAAKC,MAAMkX,aACXnX,KAAKC,MAAM0Q,WAGf3Q,KAAK8H,MAAKzF,EAAA,GAAQrC,KAAKoX,eAEvBlQ,EAAAA,EAAAA,KACI,IAAMlH,KAAKqL,WACX,KACIrL,KAAKC,MAAMa,QAAQ6P,UAAUxG,MAAM,6CACnCnK,KAAKqX,SAAS,CACVC,QAAS1X,EAAAA,cAAC2X,EAAAA,GAAc,CAACjX,MAAON,KAAKC,MAAM8D,UAAUyT,8BAtB3D,eACN,MAAkD,YAA3CC,GAAAA,CAAIzX,KAAKC,MAAO,uBA2BjB,sCACN,MAAMyX,EAAiBD,GAAAA,CAAIzX,KAAKC,MAAO,mCAEjC0X,IAAwBD,GAAiBA,EAAeE,sBACxDC,GAAYC,EAAAA,EAAAA,IAAiB9X,KAAKC,MAAMa,QAAQC,SAChDgX,EAA+BN,GAAAA,CAAIzX,KAAKC,MAAO,6DAErD,OACI0X,IACkC,QAAjCI,GACqC,QAAjCA,GAA0CF,GACT,QAAjCE,IAA2CF,GAIjDlQ,sBACHC,EACAC,GAEA,OAAI7H,KAAK8H,QAAUD,GAAa7H,KAAKC,MAAMgH,OAASW,EAAUX,KAM3D9E,SACH,IAAKnC,KAAKgY,gCACN,OAAOpY,EAAAA,cAAAA,EAAAA,SAAA,MAGX,MAAM,UAAEc,EAAS,QAAEmD,EAAO,MAAE0E,GAAUvI,KAAKC,MAAMC,OAC3CkC,EAASC,EAAAA,EAAA,GACRrC,KAAKC,OAAK,IACb8W,2BAA4B,CACxBzU,YAAatC,KAAKC,MAClBS,UAAW6B,GAAAA,CAAW,mCAAoC7B,IAE9DmD,QAASA,GACLjE,EAAAA,cAACqY,EAAAA,QAAO,CAACvX,UAAU,4CAA4CwX,WAAYrU,EAAQrB,IAAK/B,KAAMoD,EAAQpD,OAE1G6W,QAAStX,KAAK8H,MAAMwP,QACpB/O,MAAOvI,KAAK8H,MAAMqQ,wBACdvY,EAAAA,cAACwY,EAAAA,EAAcpW,OAAAC,OAAA,GACP,CACAsG,MAAAA,EACA8P,aAAetT,GAAmBhF,MAClCc,eAAgBb,KAAKC,MAAMa,QAAQC,QACnCiW,iBAAkBhX,KAAKgX,sBAMvC,OAAOhX,KAAKC,MAAMyC,WAAWN,GAGzBgV,aACJ,MAAMkB,EAA4Bb,GAAAA,CAAIzX,KAAKC,MAAO,uBAElD,IAAIqX,EACAa,GAAyB,EAE7B,GAAInY,KAAKqL,SACLrL,KAAKC,MAAM0Q,UAAUxG,MAAM,6CAC3BmN,EAAU1X,EAAAA,cAAC2X,EAAAA,GAAc,CAACpN,MAAOnK,KAAKC,MAAM8D,UAAUyT,8BACnD,GACiB,IAApBc,EAAQC,SACgB,IAAxBD,EAAQE,aAC0B,IAAlCF,EAAQG,uBAC8B,IAAtCH,EAAQI,0BAGRpB,EAAU1X,EAAAA,cAAC2X,EAAAA,GAAc,CAACpN,MAAOnK,KAAKC,MAAM8D,UAAU4U,2BACnD,CAEH,MAAM,2BAAEC,EAA0B,4BAAEC,GAAgC7Y,KAAKC,MAAM8D,UACzE+U,EAAerB,GAAAA,CAAIzX,KAAKC,MAAO,oCAC/BsS,EAAiBkF,GAAAA,CAAIzX,KAAKC,MAAO,2CACvC,IAAI8Y,EAAiB,EAGjBA,EADsC,IAAtCT,EAAQI,0BACSJ,EAAQE,YAAcF,EAAQC,QAE9BD,EAAQI,0BAA4BJ,EAAQG,sBAGjE,MAAMO,EAA0B,GAAGzG,EAAewG,EAAeE,QAAQ,GAAIH,KAE7EX,GAAyB,EACzBb,EACI1X,EAAAA,cAACsZ,EAAAA,GAAe,CACZC,cAAeP,EACftY,MAAO0Y,EACPI,eAAgBP,EAChBnY,UAAU,8CAKtB,MAAO,CAAE4W,QAAAA,EAASa,uBAAAA,KA/HZlQ,EAAAA,EAAAA,IAAA,CAAToR,EAAAA,IAAQ,8BA4BCpR,EAAAA,EAAAA,IAAA,CAAToR,EAAAA,IAAQ,oDAuGb,iGClKA,MAYA,EAZuFpZ,IACnF,MAAM,2BAAE8W,EAA0B,QAAElT,EAAO,QAAEyT,EAAO,MAAE/O,GAAUtI,EAEhE,OACIL,EAAAA,cAACyM,EAAAA,OAAMrK,OAAAC,OAAA,GAAK8U,GACPlT,EACAyT,EACA/O,wECDN,MAAMgP,EAA4DlU,IAAA,IAAC,MAAE8G,GAAO9G,EAAA,OAC/EzD,EAAAA,cAAA,QAAMc,UAAU,2CAA2CyJ,IAGlD+O,EAA6DnP,IAAwD,IAAvD,cAAEoP,EAAa,eAAEC,EAAc,MAAE9Y,EAAK,UAAEI,GAAWqJ,EAC1H,OACInK,EAAAA,cAAA,OAAKc,UAAWA,GACXyY,EACDvZ,EAAAA,cAAA,QAAMc,UAAU,2CAA2CJ,GAC1D8Y,oFCEb,MAkBME,EAAoBA,CAACC,EAAwBvC,KAC/C,IAAKuC,GAAgC,IAApBA,EAAShV,OACtB,OAAO,KAEX,MAAMiV,EAAuC,GACvCC,GAAUC,EAAAA,EAAAA,kBAAiB,QAAS1C,EAAmB,IAiB7D,OAfAuC,EAASI,SAAQ,CAAC5Q,EAAMhE,KACpB0U,EAAQG,cAAcC,MAAQ9Q,EAAKS,SACnC,MAAMsQ,GAAaC,EAAAA,EAAAA,wBAAuB/C,EAAmByC,GACvDO,EAAoC,CACtCC,UAAWlR,EAAKkR,UAChBvZ,UAAW,yCACX8I,SAAUT,EAAKS,SACfR,QAASD,EAAKC,QAAQC,eACtBiR,aAAcnR,EAAKmR,aACnBC,KAAM,OACNC,qBAAsBN,GAE1BN,EAAca,KAAKL,MAGhBR,GAGX,EA3CoFnW,IAK/E,IALgF,MACjFkF,EAAK,iBACLyO,EAAgB,aAChBqB,EAAY,eACZxX,GACHwC,EACG,GAAqB,IAAjBkF,EAAMhE,OACN,OAAO,KAEX,MAAMiV,EAAgBF,EAAkB/Q,EAAOyO,GAC/C,OACIpX,EAAAA,cAAA,OAAKc,UAAU,2CACV8Y,GAAiBA,EAAcjV,OAAS,EACrC3E,EAAAA,cAACY,EAAAA,GAAc,CAAC+H,MAAOiR,EAAe7Y,UAAW,CAAE0X,aAAAA,EAAcxX,eAAAA,KACjE,wvBCqBhB,MAAMyZ,UAA+B1a,EAAAA,cAWjCC,YAAYI,GACR0D,MAAM1D,GAPO,KAAAsa,0BAAgE3a,EAAAA,YA+KhE,KAAA4a,2BAA6B,KACrCxa,KAAK8H,MAAM2S,6BACZza,KAAKqX,SAAS,CACVoD,6BAA6B,KAKxB,KAAAC,aAAe,KAAW,IAAAC,EACvC3a,KAAKqX,SAAS,CACVoD,6BAA6B,IAEK,QAAtCE,EAAA3a,KAAKua,0BAA0BK,eAAO,IAAAD,GAAtCA,EAAwCE,SAG3B,KAAAC,gBAAkB,KAC/B9a,KAAKqX,SAAS,CACV0D,qCAAsC/a,KAAK8H,MAAMiT,uCAIxC,KAAAC,gBAAmBC,IAChCjb,KAAKqX,SAAS,CACV6D,+BAAgCD,KAIvB,KAAAE,cAAiBC,IAC9Bpb,KAAKqX,SAAS,CACVgE,6BAA8BD,KAIrB,KAAAE,gCAAmCC,IAChDvb,KAAKqX,SAAS,CACVmE,wBAAyBD,EACzBR,qCAAqC,IAGzC/a,KAAKwa,8BAGQ,KAAAiB,kBAAoB,KAAK,IAAAC,EAAAC,EACtC,MAAMC,EAAW5b,KAAKC,MAAMgH,KAAK4U,oBAAoBzU,OAC/C0U,GAA8C,QAAlCJ,EAAA1b,KAAKC,MAAMgH,KAAK8U,0BAAkB,IAAAL,GAAQ,QAARA,EAAlCA,EAAoCtU,cAAM,IAAAsU,OAAA,EAA1CA,EAA4CI,YAAa,GAErEE,EAA4C,CAC9CC,SAAU,IAAI1V,KAAKvG,KAAK8H,MAAMoT,gCAC9BgB,OAAQ,IAAI3V,KAAKvG,KAAK8H,MAAMuT,8BAC5Bc,sBAAuBnc,KAAK8H,MAAM0T,wBAClCY,gBAAiBN,EACjBO,oBAAqBT,EAASU,MAC9BC,kBAAmBC,EAAAA,qCAAqCF,OAGtDxb,EAAU,CAAE2b,cAAezc,KAAKC,MAAMa,QAAQgC,eAEpD4Z,EAAAA,gCAAAA,6BAA6D5b,EAASgb,EAAWE,GAEjFhc,KAAKqX,SAAS,CACVoD,6BAA6B,IAGK,QAAtCkB,EAAA3b,KAAKua,0BAA0BK,eAAO,IAAAe,GAAtCA,EAAwCd,SAtOxC7a,KAAKgX,kBAAmBC,EAAAA,EAAAA,oBACpBjX,KAAKC,MAAMa,QAAQC,QAAQmW,kBAC3BlX,KAAKC,MAAMkX,aACXnX,KAAKC,MAAM0Q,WAEf3Q,KAAK8H,MAAQ,CACT2S,6BAA6B,EAC7BS,+BAAgC,GAChCG,6BAA8B,GAC9BN,qCAAqC,EACrCS,yBAAyB,EACzBmB,+BAA+B,IAAIpW,MAAOqW,cAAcC,MAAM,KAAK,IAjBjE,gCACN,MAAqD,KAA9C7c,KAAK8H,MAAMoT,gCAAqF,KAA5Clb,KAAK8H,MAAMuT,6BAoBnElZ,SACH,MAAMyZ,EAAWkB,GAAAA,CAAI9c,KAAKC,MAAO,mCAC3BqY,EAA4BwE,GAAAA,CAAI9c,KAAKC,MAAO,uBAClD,GAAI,CAAC2b,EAAUtD,GAASlV,cAASiD,GAE7B,OADArG,KAAKC,MAAMa,QAAQ6P,UAAUxG,MAAM,wDAC5B,KAGX,MAAM,OAAEjK,EAAM,UAAE6D,EAAS,QAAEjD,GAAYd,KAAKC,OACtC,QAAE4D,GAAY3D,GACd,4BACF6c,EAA2B,sBAC3BC,EAAqB,mBACrBC,EAAkB,oBAClBC,EAAmB,qBACnBC,EAAoB,iBACpBC,EAAgB,kBAChBC,EAAiB,4BACjBC,EAA2B,iBAC3BC,EAAgB,iBAChBC,EAAgB,cAChBC,EAAa,YACbC,EAAW,mBACXC,EAAkB,YAClBC,EAAW,wBACXC,EAAuB,sBACvBC,EAAqB,eACrBC,GACAha,GAEE,4BACF0W,EAA2B,+BAC3BS,EAA8B,6BAC9BG,EAA4B,8BAC5BsB,GACA3c,KAAK8H,MAEHkW,EAAgBpC,EAASqC,cACzBC,EAAYle,KAAKme,gBAAgB,IAAI5X,KAAKqV,EAASwC,kBACnDC,EAAO,GAAGzC,EAAS0C,aAAa1C,EAAS2C,WAC/C,IAAIxF,EAAiB,EACjByF,EAAyB,EACzBC,EAAS,EAE6B,IAAtCnG,EAAQI,2BACRK,EAAiBT,EAAQE,YAAcF,EAAQC,QAC/CiG,EAAyBlG,EAAQC,QACjCkG,EAASnG,EAAQC,QAAUD,EAAQE,cAEnCO,EAAiBT,EAAQI,0BAA4BJ,EAAQG,sBAC7D+F,EAAyBlG,EAAQG,sBACjCgG,EAASnG,EAAQG,sBAAwBH,EAAQI,2BAGrD,MAAMgG,EAAeD,EAAS,EAAIze,KAAK2e,gBAAgBF,GAAU,KAC3DG,EAAkB5e,KAAK2e,gBAAgB5F,GACvC8F,EAAc7e,KAAK2e,gBAAgBH,GACnCM,EAAWte,EAAAA,GAAoB,OAAQM,EAAQgC,gBAAkB,GACjEic,EAAenD,EAASU,MACxBzE,GAAYC,EAAAA,EAAAA,IAAiB9X,KAAKC,MAAMa,QAAQC,SAGhDie,EAFanH,GAAa+D,EAASqD,WAGrCrf,EAAAA,cAACsf,EAAAA,GAA2B,CACxBC,gBAAiBnf,KAAKua,0BACtB7Z,UAAU,8BACV0e,mBAAoBpf,KAAKsb,gCACzBgC,4BAA6BA,EAC7B+B,iBAAkBrf,KAAK8a,gBACvBwE,mBAAoBzB,EACpBC,sBAAuBA,EACvByB,kBAAmBvf,KAAK8H,MAAMiT,sCAGlClD,GACIjY,EAAAA,cAAC4f,EAAAA,GAAS,CACNL,gBAAiBnf,KAAKua,0BACtB7Z,UAAU,8BACV0e,mBAAoBpf,KAAKwa,2BACzB8C,4BAA6BA,IAKnClb,EAASC,EAAAA,EAAA,GACRrC,KAAKC,OAAK,IACb4D,QAASjE,EAAAA,cAACqY,EAAAA,QAAO,CAACxX,KAAMoD,EAAQpD,KAAM+B,IAAKqB,EAAQrB,MACnDwa,sBACIpd,EAAAA,cAACqY,EAAAA,QAAO,CAACzV,IAAG,KAAiB/B,KAAMuc,EAAuBtc,UAAU,iDAExE+e,cACI7f,EAAAA,cAAC8f,EAAAA,GAAa,CAACrB,KAAMA,EAAML,cAAeA,EAAeE,UAAWA,EAAWhB,oBAAqBA,IAExGyC,cAAe/f,EAAAA,cAACggB,EAAAA,GAAa,CAAChB,gBAAiBA,EAAiBzB,qBAAsBA,IACtFJ,4BACInd,EAAAA,cAACqY,EAAAA,QAAO,CACJzV,IAAG,KACH/B,KAAMsc,EACNrc,UAAU,wDAGlBke,gBAAiBhf,EAAAA,cAACigB,EAAAA,GAAwB,CAAC1C,qBAAsBA,EAAsByB,gBAAiBA,IACxGC,YAAajf,EAAAA,cAACkgB,EAAAA,GAAoB,CAAC1C,iBAAkBA,EAAkByB,YAAaA,IACpFH,aAAc9e,EAAAA,cAACmgB,EAAAA,GAAqB,CAAC1C,kBAAmBA,EAAmBqB,aAAcA,IACzFsB,WAAYpgB,EAAAA,cAACqgB,EAAAA,GAAU,CAACtU,MAAOsR,EAAoBlU,KAAM+V,EAAU9H,iBAAkBhX,KAAKgX,mBAC1FkJ,QAASlB,EACTmB,sBAAuBtI,GACnBjY,EAAAA,cAACwgB,EAAAA,GAAqB,CAClBC,MAAOtB,EACPuB,YAAa7F,EACb8F,OAAQvgB,KAAK0a,aACb8F,eAAgBtF,EAChBuF,aAAcpF,EACdqF,iBAAkB1gB,KAAKgb,gBACvB2F,eAAgB3gB,KAAKmb,cACrByF,iBAAkB5gB,KAAK6gB,0BACvBtD,iBAAkBA,EAClBC,iBAAkBA,EAClBC,cAAeA,EACfC,YAAaA,EACbC,mBAAoBA,EACpBC,YAAaA,EACbkD,gBAAiB9gB,KAAKyb,kBACtB/a,UAAU,8BACVqgB,aAAa,GACbC,kBAAkB,GAClBjD,eAAgBA,EAChBkD,cAAetE,MAK3B,OAAO3c,KAAKC,MAAMyC,WAAWN,GAGzBuc,gBAAgBuC,GACpB,MAAMpI,EAAegE,GAAAA,CAAI9c,KAAKC,MAAO,oCAGrC,MAAO,GAFgB6c,GAAAA,CAAI9c,KAAKC,MAAO,0CAE7BsS,CAAe2O,EAASjI,QAAQ,GAAIH,KAG1CqF,gBAAgB7X,GAOpB,OANiB,IAAI6a,KAAKC,eAAephB,KAAKC,MAAMa,QAAQgC,cAAcjC,eAAewgB,OAAQ,CAC7F1a,MAAO,OACPC,IAAK,UACLF,KAAM,YAGMkO,OAAOtO,KA1KjB2B,EAAAA,EAAAA,IAAA,CAAToR,EAAAA,IAAQ,8CAgPb,2FC3SA,QAAgBpZ,IACZ,MAAM,QACF4D,EAAO,sBACPmZ,EAAqB,4BACrBD,EAA2B,cAC3B0C,EAAa,cACbE,EAAa,oBACb2B,EAAmB,oBACnBC,EAAmB,WACnBvB,EAAU,QACVE,EAAO,sBACPC,EAAqB,gBACrBvB,EAAe,YACfC,EAAW,aACXH,GACAze,EAEJ,OACIL,EAAAA,cAACgD,EAAAA,KAAI,CAAClC,UAAU,+BACXmD,EACAsc,EACAD,EACAlD,EACDpd,EAAAA,cAAA,WAASc,UAAU,wCACd+e,EACAE,GAEJ5C,EACDnd,EAAAA,cAAA,WAASc,UAAU,4FACd4gB,EACAC,EACA3C,EACAC,EACAH,GAEJsB,wKChBN,MAAMR,EAAsDnc,IAK9D,IAL+D,UAChE3C,EAAS,mBACT0e,EAAkB,4BAClB9B,EAA2B,gBAC3B6B,GACH9b,EACG,MAAMme,OAAuCnb,IAApB8Y,EAAgCA,EAAkBvf,EAAAA,YAC3E,OACIA,EAAAA,cAAA,OAAKc,UAAWA,GACZd,EAAAA,cAAC2D,EAAAA,OAAM,CAAC7C,UAAW,GAAGA,8BAAuC+gB,SAAUD,EAAkBhL,QAAS4I,GAC7F9B,KAMJ4B,EAAqEnV,IAW7E,IAX8E,UAC/ErJ,EAAS,mBACT0e,EAAkB,4BAClB9B,EAA2B,iBAC3B+B,EAAgB,kBAChBqC,EAAiB,qBACjBC,EAAoB,mBACpBrC,EAAkB,sBAClBxB,EAAqB,kBACrByB,EAAiB,gBACjBJ,GACHpV,EACG,MAAM6X,EAA0BhiB,EAAAA,aAAkB,KAC9Cwf,GAAmB,KACpB,CAACA,IAEEyC,EAAkBjiB,EAAAA,aAAkB,KACtCwf,GAAmB,KACpB,CAACA,IAEE0C,EAA0BliB,EAAAA,aAAkB,KAC9C8hB,MAAAA,GAAAA,MACD,CAACA,IAEEF,OAAuCnb,IAApB8Y,EAAgCA,EAAkBvf,EAAAA,YACrEmiB,EAAiC,iCAAiCC,EAAAA,OAAOC,KAAKC,iBACpF,OACItiB,EAAAA,cAAA,OAAKc,UAAW,GAAGA,eACfd,EAAAA,cAAC2D,EAAAA,OAAM,CACH7C,UACI6e,EACM,GAAG7e,wCACH,GAAGA,0CAEb8V,QAAS6I,EACToC,SAAUD,EAAgB,gBACZ,OAAM,gBACLjC,EACfvb,GAAI+d,GAEJniB,EAAAA,cAAA,QAAMc,UAAW,GAAGA,4CAAqD4c,IAE7E1d,EAAAA,cAACuiB,EAAAA,QAAO,mBACaJ,EACjBrhB,UAAW,GAAGA,+CACd0hB,OAAQ7C,EACR8C,UAAU,SACVhiB,OAAQmhB,EACRjB,OAAQlB,EACRlF,KAAK,UAAS,eACAoF,GAEd3f,EAAAA,cAAC2D,EAAAA,OAAM,CACHiT,QAASoL,EACTlhB,UAAW,GAAGA,8CACdyZ,KAAK,UAEJmF,GAEL1f,EAAAA,cAAC2D,EAAAA,OAAM,CAACiT,QAASqL,EAAiBnhB,UAAW,GAAGA,8CAAuDyZ,KAAK,UACvG2D,GAEJ6D,GACG/hB,EAAAA,cAAC2D,EAAAA,OAAM,CACHiT,QAASsL,EACTphB,UAAW,GAAGA,8CACdyZ,KAAK,UAEJwH,MC9EZvB,EAAsE/c,IAqB9E,IArB+E,UAChF3C,EAAS,MACT2f,EAAK,YACLC,EAAW,OACXC,EAAM,eACNC,EAAc,aACdC,EAAY,iBACZC,EAAgB,eAChBC,EAAc,iBACdC,EAAgB,iBAChBrD,EAAgB,iBAChBC,EAAgB,cAChBC,EAAa,YACbC,EAAW,mBACXC,EAAkB,YAClBC,EAAW,gBACXkD,EAAe,aACfC,EAAY,kBACZC,EAAiB,eACjBjD,EAAc,cACdkD,GACH5d,EACG,MAAMif,EAAwB1iB,EAAAA,aACzBG,IACG,MAAMO,EAAQP,EAAMM,OAAOC,MAE3BogB,EAAiBpgB,KAErB,CAACogB,IAGC6B,EAAsB3iB,EAAAA,aACvBG,IACG,MAAMO,EAAQP,EAAMM,OAAOC,MAE3BqgB,EAAergB,KAEnB,CAACqgB,IAOC6B,EAAiB5iB,EAAAA,aAClBG,IACO8T,EAAAA,iBAAiB4O,WAAW1iB,EAAMM,OAAOwa,QAAU9a,EAAMM,OAAOC,QAAUkgB,GAC1EzgB,EAAMM,OAAOwa,UAGrB,CAAC2F,IAOCkC,EAAe9iB,EAAAA,aAChBG,IACO8T,EAAAA,iBAAiB4O,WAAW1iB,EAAMM,OAAOwa,QAAU9a,EAAMM,OAAOC,QAAUmgB,GAC1E1gB,EAAMM,OAAOwa,UAGrB,CAAC4F,IAGL,OACI7gB,EAAAA,cAAC+iB,EAAAA,MAAK,CACFjiB,UAAU,2BACV0hB,OAAQ9B,EACRsC,mBAAmB,SACnBC,iBAAiB,SACjBC,WAAS,EACTC,MAAM,EACNxC,OAAQA,EAAM,aACFxC,GAEZne,EAAAA,cAACojB,EAAAA,YAAW,CAACzC,OAAQA,GAAShD,GAC9B3d,EAAAA,cAACqjB,EAAAA,UAAS,KACLlC,GACGnhB,EAAAA,cAAA,WACIA,EAAAA,cAAA,SAAOc,UAAW,GAAGA,sBAA+BsgB,GACpDphB,EAAAA,cAAA,WACAA,EAAAA,cAAA,OAAKc,UAAW,GAAGA,mBAA4BqgB,IAGvDnhB,EAAAA,cAAA,SAAOsjB,QAAQ,cAAcxiB,UAAW,GAAGA,sBACtC8c,GAEL5d,EAAAA,cAAA,OAAKoE,GAAG,cAActD,UAAW,GAAGA,kBAC/B2f,GAELzgB,EAAAA,cAAA,WACIA,EAAAA,cAAA,OAAKc,UAAW,GAAGA,iCACfd,EAAAA,cAAA,SAAOsjB,QAAQ,oBAAoBzF,GACnC7d,EAAAA,cAAA,SACIoE,GAAG,mBACHkF,KAAK,OACL5I,MAAOkgB,EACP2C,OAAQX,EACRY,SAAUd,EACVpQ,IAAKuO,GAA8BQ,EACnCvgB,UAAW,GAAGA,kCAGtBd,EAAAA,cAAA,OAAKc,UAAW,GAAGA,+BACfd,EAAAA,cAAA,SAAOsjB,QAAQ,kBAAkBxF,GACjC9d,EAAAA,cAAA,SACIoE,GAAG,iBACHkF,KAAK,OACL5I,MAAOmgB,EACP0C,OAAQT,EACRU,SAAUb,EACVc,IAAK7C,EACLtO,IAAK+O,EACLvgB,UAAW,GAAGA,oCAK9Bd,EAAAA,cAAC0jB,EAAAA,YAAW,KACR1jB,EAAAA,cAAA,UACIc,UAAW,GAAGA,2BACd8V,QAASsK,EACTyC,UAAW3C,EAAgB,iBACXA,GAEfjD,GAEJ,IACD/d,EAAAA,cAAA,UAAQc,UAAW,GAAGA,2BAAoC8V,QAAS+J,GAC9D3C,MClGR8B,EAAyCrc,IAAA,IAAC,KAAEgb,EAAI,cAAEL,EAAa,oBAAEd,EAAmB,UAAEgB,GAAW7a,EAAA,OAC1GzD,IAAAA,cAAA,OAAKc,UAAU,iDACXd,IAAAA,cAAA,UAAKye,GACLze,IAAAA,cAAA,OAAKc,UAAU,+CAA6C,IAAGsd,GAC/Dpe,IAAAA,cAAA,OAAKc,UAAU,2CACVwc,EAAmB,IAAGgB,KAKtB0B,EAA0C7V,IAAA,IAAC,gBAAE6U,EAAe,qBAAEzB,GAAsBpT,EAAA,OAC7FnK,IAAAA,cAAA,OAAKc,UAAU,gDACXd,IAAAA,cAAA,OAAKc,UAAU,uDAAuDyc,GACtEvd,IAAAA,cAAA,OAAKc,UAAU,wDAAwDke,KA2BlEiB,EAAoE2D,IAAA,IAAC,qBAAErG,EAAoB,gBAAEyB,GAAiB4E,EAAA,OACvH5jB,IAAAA,cAAA,OAAKc,UAAU,wDACXd,IAAAA,cAAA,OAAKc,UAAU,uDACXd,IAAAA,cAAA,OAAKc,UAAU,uDAAuDyc,IAE1Evd,IAAAA,cAAA,OAAKc,UAAU,uDACXd,IAAAA,cAAA,OAAKc,UAAU,uDAAuDke,MAYrEkB,EAA4D2D,IAAA,IAAC,iBAAErG,EAAgB,YAAEyB,GAAa4E,EAAA,OACvG7jB,IAAAA,cAAA,OAAKc,UAAU,wDACXd,IAAAA,cAAA,OAAKc,UAAU,uDACXd,IAAAA,cAAA,OAAKc,UAAU,mDAAmD0c,IAEtExd,IAAAA,cAAA,OAAKc,UAAU,uDACXd,IAAAA,cAAA,OAAKc,UAAU,mDAAmDme,MAYjEkB,EAA8D2D,IAAA,IAAC,kBAAErG,EAAiB,aAAEqB,GAAcgF,EAAA,OAC3G9jB,IAAAA,cAAA,OAAKc,UAAU,wDACVge,GACG9e,IAAAA,cAAA,OAAKc,UAAU,uDACXd,IAAAA,cAAA,OAAKc,UAAU,oDAAoD2c,IAG3Ezd,IAAAA,cAAA,OAAKc,UAAU,uDACVge,GAAgB9e,IAAAA,cAAA,OAAKc,UAAU,oDAAoDge,MAInFuB,EAAoC0D,IAAsC,IAArC,KAAE5a,EAAI,MAAE4C,EAAK,iBAAEqL,GAAkB2M,EAC/E,MAAMlK,GAAUC,EAAAA,EAAAA,kBAAiB,QAAS1C,EAAmB4M,EAAAA,kBAAkBC,gBACzE/J,GAAaC,EAAAA,EAAAA,wBAAuB/C,EAAmByC,GAC7D,OACI7Z,IAAAA,cAAA,IAAAoC,OAAAC,OAAA,CAAGvB,UAAU,wCAAwC8C,KAAMuF,GAAU+Q,GAChEnO,mJCrIb,MAaM2N,EAAoBA,CAACC,EAAwBvC,KAC/C,IAAKuC,GAAgC,IAApBA,EAAShV,OACtB,OAAO,KAEX,MAAMiV,EAAuC,GACvCC,GAAUC,EAAAA,EAAAA,kBAAiB,QAAS1C,EAAmB,IAgB7D,OAfAuC,EAASI,SAAQ,CAAC5Q,EAAMhE,KACpB0U,EAAQG,cAAcC,MAAQ9Q,EAAKS,SACnC,MAAMsQ,GAAaC,EAAAA,EAAAA,wBAAuB/C,EAAmByC,GACvDO,EAAoC,CACtCC,UAAWlR,EAAKkR,UAChBvZ,UAAW,gCACX8I,SAAUT,EAAKS,SACfR,QAASD,EAAKC,QAAQC,eACtBiR,aAAcnR,EAAKmR,aACnBC,KAAM,OACNC,qBAAsBN,GAE1BN,EAAca,KAAKL,MAGhBR,GAGX,EArCoEnW,IAA8D,IAA7D,MAAEkF,EAAK,iBAAEyO,EAAgB,aAAEqB,EAAY,eAAExX,GAAgBwC,EAC1H,GAAqB,IAAjBkF,EAAMhE,OACN,OAAO,KAEX,MAAMiV,EAAgBF,EAAkB/Q,EAAOyO,GAC/C,OACIpX,EAAAA,cAAA,OAAKc,UAAU,kCACV8Y,GAAiBA,EAAcjV,OAAS,EACrC3E,EAAAA,cAACY,EAAAA,GAAc,CAAC+H,MAAOiR,EAAe7Y,UAAW,CAAE0X,aAAAA,EAAcxX,eAAAA,KACjE,4kBCRhB,MAAMijB,UAA2BlkB,EAAAA,cAG7BC,YAAYI,GACR0D,MAAM1D,GAiEH,KAAA2D,oBAAuB7D,GAA0CC,KAAKC,MAAMC,OAAO2D,QAAQpD,KAAOV,EAAMM,OAAOC,MAE/G,KAAAyjB,qBAAwBC,GAAuBjkB,IAC9CC,KAAKC,MAAMC,OAAO+jB,gBAAkBjkB,KAAKC,MAAMC,OAAOgkB,eACtDlkB,KAAKC,MAAMC,OAAOgkB,aAAenkB,EAAMM,OAAOC,QApElDN,KAAKgX,kBAAmBC,EAAAA,EAAAA,oBACpBjX,KAAKC,MAAMa,QAAQC,QAAQmW,kBAC3BlX,KAAKC,MAAMkX,aACXnX,KAAKC,MAAM0Q,WAIZxO,SACH,MAAM,OAAEjC,EAAM,KAAE+G,EAAI,UAAElD,EAAS,QAAEjD,GAAYd,KAAKC,OAC5C,UAAES,EAAS,QAAEmD,EAAO,eAAEogB,EAAc,oBAAEE,EAAmB,aAAED,EAAY,kBAAEE,GAAsBlkB,GAC/F,sBAAEmkB,EAAqB,4BAAEC,GAAgCvgB,GACzD,YAAEwgB,GAAgBtd,EAExB,IAAI4C,EAAcwa,EACdG,EAAMhkB,EAAAA,GAAoB,cAAeM,EAAQgC,gBAAkB,GACvE,MAAMiG,EAAO,CAAES,SAAUya,EAAgBjb,QAAS,CAAEC,eAAgBub,GAAOvK,UAAWkK,GAEtF,GAAII,GAAeA,EAAYnd,QAAUmd,EAAYnd,OAAOqd,WAAY,CACpE,MAAMC,EAAmB,EACzB,IAAIC,EAAS,EAETJ,EAAYnd,OAAOwd,cAAgBL,EAAYnd,OAAOwd,aAAargB,OAAS,GAC5EggB,EAAYnd,OAAOwd,aAAajL,SAASkL,IACrCF,GAAUE,EAAYC,gBAG9B/b,EAAKkR,UAAYmK,EACjBrb,EAAKS,SAAW0a,EAChBM,EAAMhkB,EAAAA,GAAoB,UAAWM,EAAQgC,gBAAkB,GAC/DiG,EAAKC,QAAQC,eAAiBub,EAC9B3a,GAAc+K,EAAAA,EAAAA,QAAO0P,EAA6BK,EAAO1L,QAAQyL,IAGrE,MAAMtiB,EAASC,EAAAA,EAAA,GACRrC,KAAKC,OAAK,IACbS,UAAAA,EACAojB,mBAAoB,CAChBxhB,YAAatC,KAAKC,MAClBS,UAAW6B,GAAAA,CAAW,0BAA2BrC,EAAOQ,YAE5DmD,QAASA,GACLjE,EAAAA,cAACY,EAAAA,GAAa,CACVE,UAAU,mCACV8B,IAAKqB,EAAQrB,KAAO,KACpB/B,KAAMoD,EAAQpD,KACdE,UAAW,CAAEC,OAAQZ,KAAK4D,oBAAqB/C,eAAgBb,KAAKC,MAAMa,QAAQC,WAG1FwH,MACI3I,EAAAA,cAACwY,EAAcpW,OAAAC,OAAA,GACP,CACAsG,MAAO,CAACQ,GACRsP,aAAcrY,KAAK+jB,qBACnBljB,eAAgBb,KAAKC,MAAMa,QAAQC,QACnCiW,iBAAkBhX,KAAKgX,oBAInCnN,YAAajK,EAAAA,cAACmlB,EAAAA,EAAoB,CAAClb,YAAaA,MAGpD,OAAO7J,KAAKC,MAAMyC,WAAWN,IAYrC,wGCjGA,MAYA,EAZuEnC,IACnE,MAAM,mBAAE6jB,EAAkB,QAAEjgB,EAAO,YAAEgG,EAAW,MAAEtB,GAAUtI,EAE5D,OACIL,EAAAA,cAACyM,EAAAA,OAAMrK,OAAAC,OAAA,GAAK6hB,GACPjgB,EACAgG,EACAtB,qECLb,MAIA,EAJiFlF,IAAA,IAAC,YAAEwG,GAAaxG,EAAA,OAC7FzD,EAAAA,cAAA,KAAGc,UAAU,wCAAwCmJ,myBCwDzD,IAAMmb,EAAN,cAAiCplB,EAAAA,UAkB7BC,YAAYI,GACR0D,MAAM1D,GAlBO,KAAAglB,gBAA0B,0BAkGpC,KAAArhB,oBAAuB7D,GAA0CC,KAAKC,MAAMC,OAAO2D,QAAQpD,KAAOV,EAAMM,OAAOC,MAE/G,KAAA4kB,gBAAmBnlB,IACtB,MAAMiE,EAAKjE,EAAMM,OAAO2D,GAClB1D,EAAQP,EAAMM,OAAOC,MAE3B,OAAQ0D,EAAGqK,eACP,IAAK,YACDrO,KAAKmlB,UAAY7kB,EACjB,MAEJ,IAAK,UACDN,KAAKolB,QAAU9kB,EACf,MAEJ,IAAK,QACDN,KAAKqlB,WAAa/kB,IAQvB,KAAAglB,QAAU,KACbtlB,KAAKulB,mBACLvlB,KAAKwlB,sBAGLxlB,KAAKylB,oBAAsBC,aAAY,KACnC1lB,KAAK2lB,gCACN,KACHC,YAAW,KACPC,cAAc7lB,KAAKylB,uBACpB,MAIU,KAAAE,4BAA8B,KAEvCG,QAAUA,OAAe,QAAKA,OAAe,OAA4B,2BACzED,cAAc7lB,KAAKylB,qBACnBzlB,KAAK+lB,eAAgB,IAIZ,KAAAR,iBAAmB,KAChC,MAAM,UAAExhB,GAAc/D,KAAKC,MACrB+lB,EAA2BjiB,EAAUiiB,0BAA4B,sCAGnEF,OAAkB,WAAKA,OAAkB,UAAmB,iBAE5DA,OAAkB,UAAmB,gBAAEjhB,KAClCohB,IACG,MAAM3lB,EAAQ2lB,EAAIC,IAAMlmB,KAAKmmB,YAAYF,EAAIC,KAAO,GACpD,OAAQD,EAAIG,GAAG/X,eACX,IAAK,YACDrO,KAAKmlB,UAAY7kB,EACjB,MAEJ,IAAK,UACDN,KAAKolB,QAAU9kB,EACf,MAEJ,IAAK,QACDN,KAAKqgB,MAAQ/f,EACbN,KAAKqlB,WAAaY,EAAII,IACtBJ,EAAIK,SAAWN,OAiBtB,KAAAR,oBAAsB,KACnC,MAAM,UAAEzhB,GAAc/D,KAAKC,MAG3B,GAAI6lB,QAAUA,OAAgB,QAAG,CAC7B,MAAMrb,EAAU,CACZ8b,eAAgBxiB,EAAUyiB,0BAC1BC,gBAAiB1iB,EAAU2iB,gBAI/B1kB,OAAOC,OAAO6jB,OAAgB,QAAGrb,KA/KrCzK,KAAKmlB,UAAY,GACjBnlB,KAAKolB,QAAU,GACfplB,KAAKqgB,MAAQ,GACbrgB,KAAKqlB,WAAasB,EAAAA,WAAWC,aAAaC,OAC1C7mB,KAAK+lB,eAAgB,EACrB/lB,KAAKgX,kBAAmBC,EAAAA,EAAAA,oBACpBjX,KAAKC,MAAMa,QAAQC,QAAQmW,kBAC3BlX,KAAKC,MAAMkX,aACXnX,KAAKC,MAAM0Q,WAIZnJ,oBACHxH,KAAKslB,UAIFwB,qBAEC9mB,KAAK+lB,eAAiBD,QAAUA,OAAiB,UAAKA,OAAiB,SAAc,YAErFA,OAAiB,SAAc,aAIhCne,sBACHC,EACAC,GAEA,OAAI7H,KAAK8H,QAAUD,GAAa7H,KAAKC,MAAMgH,OAASW,EAAUX,KAM3D9E,SACH,MAAM,OAAEjC,EAAM,UAAE6D,GAAc/D,KAAKC,MAE7BmC,EAASC,EAAAA,EAAA,GACRrC,KAAKC,OAAK,IACbgM,UAAW,CACP8a,eAAgB/mB,KAAK+lB,eAEzBiB,mBAAoB,CAChB1kB,YAAatC,KAAKC,MAClBS,UAAW6B,GAAAA,CAAWvC,KAAKilB,gBAAiB/kB,EAAOQ,YAEvDumB,QAAS,CACLC,MAAO,CACH1kB,IAAKmgB,EAAAA,MACLP,QAAQ,GAEZ+E,UAAW,CACP3kB,IAAKygB,EAAAA,WAETza,KAAM5I,EAAAA,cAACwnB,EAAAA,EAAsC,CAAC1mB,UAAWV,KAAKilB,kBAC9Dxa,QAAS7K,EAAAA,cAACynB,EAAAA,EAAyC,CAAC3mB,UAAWV,KAAKilB,gBAAiBxa,QAAS1G,EAAU2iB,kBAE5GY,mBAAoB,CAChBtjB,GAAI,MACJujB,MAAO,CAAEC,QAAS,SAEtBC,YAAa,CACTzjB,GAAIhE,KAAK+lB,cAAgB,MAAQ,KACjCrlB,UAAW,GAAGV,KAAKilB,8BAEvBphB,QAAS3D,EAAO2D,SAAW3D,EAAO2D,QAAQpD,MACtCb,EAAAA,cAACY,EAAAA,GAAawB,OAAAC,OAAA,CACVvB,UAAW,GAAGV,KAAKilB,4BACf/kB,EAAO2D,QAAO,CAClBlD,UAAW,CAAEC,OAAQZ,KAAK4D,oBAAqB/C,eAAgBb,KAAKC,MAAMa,QAAQC,YAG1F2mB,+BAAgC1nB,KAAK2nB,wBAGzC,OAAO3nB,KAAKC,MAAMyC,WAAWN,GAiFzB+jB,YAAYyB,GAChB,MAAMC,EAAIC,SAASC,cAAc,OAGjC,OADAF,EAAEG,UAAYJ,EACiB,IAAxBC,EAAEI,WAAW1jB,OAAe,GAAKsjB,EAAEI,WAAW,GAAGC,WAAa,GAkBjEP,sBACJ,MAAM,OAAEznB,EAAM,UAAE6D,GAAc/D,KAAKC,MAC7BkoB,EAAe,CACjBA,aAAc,CACVnkB,GAAI,gBACJtD,UAAW,GAAGV,KAAKilB,uCAEvBtb,MAAO,CACH3J,KAAKooB,aAAa,YAAa,OAAQpoB,KAAKmlB,UAAWphB,EAAUskB,mBAAoBtkB,EAAUukB,oBAC/FtoB,KAAKooB,aAAa,UAAW,OAAQpoB,KAAKolB,QAASrhB,EAAUwkB,kBAAmBxkB,EAAUykB,oBAE9FC,aAAc,CACV7oB,EAAAA,cAAC8oB,EAAAA,EAAgC,CAC7B1jB,IAAI,uBACJhB,GAAG,uBACHtD,UAAWV,KAAKilB,gBAChBxa,QAAS1G,EAAU4kB,mCAEvB/oB,EAAAA,cAAC8oB,EAAAA,EAAgC,CAC7B1jB,IAAI,iBACJhB,GAAG,iBACHtD,UAAWV,KAAKilB,gBAChBxa,QAAS1G,EAAU6kB,sBAEvBhpB,EAAAA,cAAC8oB,EAAAA,EAAgC,CAC7B1jB,IAAI,+BACJhB,GAAG,+BACHtD,UAAWV,KAAKilB,mBAGxB4D,eAAgB,CACZnoB,UAAW,GAAGV,KAAKilB,4BAEvB6D,QAAS,CACLlpB,EAAAA,cAACmpB,EAAAA,EAAiC,CAC9B/jB,IAAI,WACJhB,GAAG,WACHtD,UAAW,GAAGV,KAAKilB,+BACnBhL,UAAWlW,EAAUilB,oBACrBvoB,KAAMsD,EAAUklB,eAChBjS,iBAAkBhX,KAAKgX,mBAE3BpX,EAAAA,cAACmpB,EAAAA,EAAiC,CAC9B/jB,IAAI,SACJhB,GAAG,SACHtD,UAAW,GAAGV,KAAKilB,iCACnBhL,UAAWlW,EAAUmlB,iBACrBzoB,KAAMsD,EAAUmlB,iBAChBlS,iBAAkBhX,KAAKgX,oBAG/BmS,yBAA0B,CACtBzoB,UAAW,GAAGV,KAAKilB,oDAEvBmE,gCAAiC,CAC7BplB,GAAI,kBACJtD,UAAW,GAAGV,KAAKilB,6CAU3B,OANI/kB,EAAOmpB,WAA4B,KAAfrpB,KAAKqgB,OACzB8H,EAAaxe,MAAM0Q,KACfra,KAAKooB,aAAa,QAAS,QAASpoB,KAAKqgB,MAAOtc,EAAUulB,2BAAuBjjB,EAAWrG,KAAKqlB,aAIlG8C,EAGHC,aACJpkB,EACAkF,EACA5I,EACAipB,EACAC,EACAC,GAEA,MAAM/oB,EAAY,GAAGV,KAAKilB,gCAC1B,MAAO,CACHyE,QAAS,CACLhpB,UAAW6B,GAAAA,CAAW7B,EAAW,GAAGA,KAAasD,IAAM,aAAc,cAEzEgB,IAAKhB,EACL2H,MACI/L,EAAAA,cAAC+pB,EAAAA,EAAgC3nB,OAAAC,OAAA,GACzB,CACA+B,GAAAA,EACA4lB,MAAO5lB,EACPtD,UAAAA,EACAD,KAAM8oB,KAIlBd,aACI7oB,EAAAA,cAAC8oB,EAAAA,EAAgC1mB,OAAAC,OAAA,GACzB,CACAvB,UAAWV,KAAKilB,gBAChB/b,KAAM,UAIlB2C,MACIjM,EAAAA,cAACiqB,EAAAA,EAAgC7nB,OAAAC,OAAA,GACzB,CACA+B,GAAAA,EACAkF,KAAAA,EACA5I,MAAAA,EACAmpB,QAAAA,EACA/oB,UAAAA,EACA8oB,UAAAA,EACApG,SAAUpjB,KAAKklB,uBAhTvBjd,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,iCAECD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,+BAECD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,6BAECD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,kCAECD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,oCAbT8c,GAAkB/c,EAAAA,EAAAA,IAAA,CADvB6hB,EAAAA,IACK9E,GA6TN,iGCnXA,MAAM+E,EAA4D1mB,IAA4C,IAA3C,QAAEqmB,EAAO,MAAE/d,EAAK,aAAE8c,EAAY,MAAE5c,GAAOxI,EACtG,OACIzD,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKynB,GACL/d,EACA8c,EACA5c,IAuCPme,EAAkErf,IAAwC,IAAvC,MAAEuc,EAAK,UAAEC,EAAS,KAAE3e,EAAI,QAAEiC,GAASE,EACxG,OACI/K,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKilB,GACNtnB,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKklB,GACL3e,EACAiC,KAqBjB,EAfuExK,IACnE,MAAM,mBAAE+mB,EAAkB,UAAE/a,EAAS,QAAEgb,EAAO,mBAAEK,EAAkB,YAAEG,EAAW,QAAE5jB,EAAO,+BAAE6jB,GAAmCznB,EAE7H,OACIL,EAAAA,cAACyM,EAAAA,OAAMrK,OAAAC,OAAA,GAAK+kB,GACP/a,EAAU8a,eAAiBnnB,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKqlB,IACrCrb,EAAU8a,eAAiBnnB,EAAAA,cAACoqB,EAAyBhoB,OAAAC,OAAA,GAAKglB,IAC3DrnB,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKwlB,GACL5jB,EArD+CkG,CAAAA,IAQ3D,IAR4D,aAC7Doe,EAAY,MACZxe,EAAK,aACL8e,EAAY,eACZI,EAAc,QACdC,EAAO,yBACPK,EAAwB,gCACxBC,GACHrf,EACG,OACInK,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKkmB,GACLxe,GACGA,EAAM9E,KAAK+E,GAEAhK,EAAAA,cAACmqB,EAAsB/nB,OAAAC,OAAA,GAAK2H,MAE1C6e,GACGA,EAAa5jB,KAAI,CAACsF,EAAwBpF,IAC/BnF,EAAAA,cAACA,EAAAA,SAAc,CAACoF,IAAKD,GAAQoF,KAE5CvK,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAK4mB,GACLC,GACGA,EAAQjkB,KAAI,CAAColB,EAAyBllB,IAC3BnF,EAAAA,cAACA,EAAAA,SAAc,CAACoF,IAAKD,GAAQklB,MAIhDrqB,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKknB,GACNvpB,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKmnB,OA0BTc,CAAaxC,iFC7D9B,MAmBA,EAnBsErkB,IAQjE,IARkE,GACnEW,EAAE,UACFtD,EAAS,KACTD,EAAI,UACJwZ,EAAS,SACTsJ,EAAQ,iBACRvM,EAAgB,QAChBR,GACHnT,EACG,MAAMoW,GAAUC,EAAAA,EAAAA,kBAAiB,QAAS1C,EAAmBvW,GACvDqZ,GAAaC,EAAAA,EAAAA,wBAAuB/C,EAAmByC,GAE7D,OACI7Z,EAAAA,cAAC2D,EAAAA,OAAMvB,OAAAC,OAAA,CAAC+B,GAAIA,EAAItD,UAAWA,EAAS,aAAcuZ,EAAWsJ,SAAUA,EAAU/M,QAASA,GAAasD,GAClGrZ,gFCjBb,MAUA,EAVyE4C,IAA8C,IAA7C,GAAEW,EAAE,UAAEtD,EAAS,KAAEwI,EAAO,OAAM,QAAEuB,GAASpH,EAC/G,MAAM8mB,EAAiB,GAAGzpB,MAAcwI,UAExC,OACItJ,EAAAA,cAAA,OAAKoE,GAAIA,EAAItD,UAAW6B,GAAAA,CAAW4nB,EAAgB,QAAS,GAAGjhB,UAAciR,KAAK,QAAO,YAAW,YAAW,cAAa,QACxHva,EAAAA,cAAA,KAAGc,UAAW,GAAGypB,UAAwB1f,qECQrD,MAAM2f,EAAgBZ,IAClB,GAAIA,EAAW,CACX,MAAMa,EAAkBC,OAAOC,SAASf,EAAW,IACnD,IAAKgB,MAAMH,GACP,OAAOA,IAoBnB,EAbyEhnB,IAAA,IAAC,GAAEW,EAAE,KAAEkF,EAAI,MAAE5I,EAAK,QAAEmpB,EAAO,UAAE/oB,EAAS,UAAE8oB,EAAS,SAAEpG,GAAU/f,EAAA,OAClIzD,EAAAA,cAAA,SACIoE,GAAIA,EACJkF,KAAMA,EACN5I,MAAOA,EACPI,UAAW,GAAGA,WAAmBA,KAAasD,IAC9CylB,QAAqB,KAAZA,EAAiBA,OAAUpjB,EAAS,gBAC/B,OACdmjB,UAAWY,EAAaZ,GACxBpG,SAAUA,+DClClB,MAMA,EANoE/f,IAAA,IAAC,GAAEW,EAAE,MAAE4lB,EAAK,UAAElpB,EAAS,KAAED,GAAM4C,EAAA,OAC/FzD,EAAAA,cAAA,SAAOoE,GAAI,GAAGA,UAAYtD,UAAW,GAAGA,UAAmBwiB,QAAS0G,GAC/DnpB,8DCLT,MAIA,EAJgF4C,IAAA,IAAC,UAAE3C,GAAW2C,EAAA,OAC1FzD,EAAAA,cAAA,OAAKc,UAAW,GAAGA,+ECAvB,MAIA,EAJsF2C,IAAA,IAAC,UAAE3C,EAAS,QAAE+J,GAASpH,EAAA,OACzGzD,EAAAA,cAAA,OAAKc,UAAW,GAAGA,sBAA+B+J,2rBCWtD,MAAMggB,UAA2B7qB,EAAAA,cAAjCC,cAAA,oBAmCW,KAAA+D,oBAAuB7D,GAA0CC,KAAKC,MAAMC,OAAO2D,QAAQpD,KAAOV,EAAMM,OAAOC,MAlC/G6B,SACH,MAAM,OAAEjC,EAAM,KAAE+G,GAASjH,KAAKC,OACxB,UAAES,GAAcR,EAEhBwqB,EAAczjB,EAAK0jB,mBAAmBvjB,OACtCvD,EAAOxB,EAAAA,EAAA,GACNnC,EAAO2D,SACP,CACCpD,KAAM,GAAGP,EAAO2D,QAAQpD,KAAOP,EAAO2D,QAAQpD,KAAO,MACjDiqB,GAAeA,EAAYpM,UAAYoM,EAAYpM,UAAY,OAKrElc,EAASC,EAAAA,EAAA,GACRrC,KAAKC,OAAK,IACbS,UAAAA,EACA+pB,mBAAoB,CAChBnoB,YAAatC,KAAKC,MAClBS,UAAW6B,GAAAA,CAAW,0BAA2BrC,EAAOQ,YAE5DmD,QAASA,GAAWA,EAAQpD,MACxBb,EAAAA,cAACY,EAAAA,GAAa,CACVE,UAAU,mCACV8B,IAAKqB,EAAQrB,IACb/B,KAAMoD,EAAQpD,KACdE,UAAW,CAAEC,OAAQZ,KAAK4D,oBAAqB/C,eAAgBb,KAAKC,MAAMa,QAAQC,aAK9F,OAAOf,KAAKC,MAAMyC,WAAWN,IAMrC,iGCpDA,MAMA,EANuEnC,IACnE,MAAM,mBAAEwqB,EAAkB,QAAE5mB,GAAY5D,EAExC,OAAOL,EAAAA,cAACyM,EAAAA,OAAMrK,OAAAC,OAAA,GAAKwoB,GAAqB5mB,yICD5C,MAIA,EAJmFR,IAAA,IAAC,YAAEwG,GAAaxG,EAAA,OAC/FzD,EAAAA,cAAA,KAAGc,UAAU,yCAAyCmJ,ICuBpDyP,EAAoBA,CAACC,EAAwBvC,KAC/C,IAAKuC,GAAgC,IAApBA,EAAShV,OACtB,OAAO,KAEX,MAAMiV,EAAuC,GACvCC,GAAUC,EAAAA,EAAAA,kBAAiB,QAAS1C,EAAmB,IAgB7D,OAfAuC,EAASI,SAAQ,CAAC5Q,EAAMhE,KACpB0U,EAAQG,cAAcC,MAAQ9Q,EAAKS,SACnC,MAAMsQ,GAAaC,EAAAA,EAAAA,wBAAuB/C,EAAmByC,GACvDO,EAAoC,CACtCC,UAAWlR,EAAKkR,UAChBvZ,UAAW,iCACX8I,SAAUT,EAAKS,SACfR,QAASD,EAAKC,QAAQC,eACtBiR,aAAcnR,EAAKmR,aACnBC,KAAM,OACNC,qBAAsBN,GAE1BN,EAAca,KAAKL,MAGhBR,GAGX,EAtCsEnW,IAA8D,IAA7D,MAAEkF,EAAK,iBAAEyO,EAAgB,aAAEqB,EAAY,eAAExX,GAAgBwC,EAC5H,GAAqB,IAAjBkF,EAAMhE,OACN,OAAO,KAEX,MAAMiV,EAAgBF,EAAkB/Q,EAAOyO,GAC/C,OACIpX,EAAAA,cAAA,OAAKc,UAAU,mCACV8Y,GAAiBA,EAAcjV,OAAS,EACrC3E,EAAAA,cAACY,EAAAA,GAAc,CAAC+H,MAAOiR,EAAe7Y,UAAW,CAAE0X,aAAAA,EAAcxX,eAAAA,KACjE,4kBCHhB,MAAM+pB,UAA4BhrB,EAAAA,cAG9BC,YAAYI,GACR0D,MAAM1D,GAgDH,KAAA2D,oBAAuB7D,GAA0CC,KAAKC,MAAMC,OAAO2D,QAAQpD,KAAOV,EAAMM,OAAOC,MAE/G,KAAAyjB,qBAAwBC,GAAuBjkB,IAC9CC,KAAKC,MAAMC,OAAOqI,OAASvI,KAAKC,MAAMC,OAAOqI,MAAMyb,KACnDhkB,KAAKC,MAAMC,OAAOqI,MAAMyb,GAAWxa,SAAWzJ,EAAMM,OAAOC,QAnD/DN,KAAKgX,kBAAmBC,EAAAA,EAAAA,oBACpBjX,KAAKC,MAAMa,QAAQC,QAAQmW,kBAC3BlX,KAAKC,MAAMkX,aACXnX,KAAKC,MAAM0Q,WAIZxO,SACH,MAAM,OAAEjC,EAAM,UAAE6D,EAAS,KAAEkD,GAASjH,KAAKC,OACnC,UAAES,EAAS,QAAEmD,EAAO,MAAE0E,GAAUrI,GAChC,+BAAE2qB,GAAmC9mB,EACrC+mB,EAAY7jB,EAAK6jB,UAAU1jB,OAE3B2jB,GAAmBD,GAAaA,EAAUvmB,QAAUumB,EAAU,GAAGE,mBAAsB,IAAIzmB,OAC3FsF,GAAc+K,EAAAA,EAAAA,QAAOiW,GAAkC,sCAAuCE,GAE9F3oB,EAASC,EAAAA,EAAA,GACRrC,KAAKC,OAAK,IACbS,UAAAA,EACAkqB,oBAAqB,CACjBtoB,YAAatC,KAAKC,MAClBS,UAAW6B,GAAAA,CAAW,2BAA4BrC,EAAOQ,YAE7DmD,QAASA,GAAWA,EAAQpD,MACxBb,EAAAA,cAACY,EAAAA,GAAa,CACVE,UAAU,oCACV8B,IAAKqB,EAAQrB,IACb/B,KAAMoD,EAAQpD,KACdE,UAAW,CAAEC,OAAQZ,KAAK4D,oBAAqB/C,eAAgBb,KAAKC,MAAMa,QAAQC,WAG1FwH,MAAOA,GAASA,EAAMhE,OAAS,GAC3B3E,EAAAA,cAACwY,EAAcpW,OAAAC,OAAA,GACP,CACAsG,MAAAA,EACA8P,aAAcrY,KAAK+jB,qBACnBljB,eAAgBb,KAAKC,MAAMa,QAAQC,QACnCiW,iBAAkBhX,KAAKgX,oBAInCnN,YAAajK,EAAAA,cAACmlB,EAAoB,CAAClb,YAAaA,MAGpD,OAAO7J,KAAKC,MAAMyC,WAAWN,IAYrC,wGC/EA,MAYA,EAZyEnC,IACrE,MAAM,oBAAE2qB,EAAmB,QAAE/mB,EAAO,YAAEgG,EAAW,MAAEtB,GAAUtI,EAE7D,OACIL,EAAAA,cAACyM,EAAAA,OAAMrK,OAAAC,OAAA,GAAK2oB,GACP/mB,EACAgG,EACAtB,uECsCD0iB,oHAAZ,SAAYA,GACRA,EAAA,YACAA,EAAA,gBACAA,EAAA,2BACAA,EAAA,oBACAA,EAAA,6BALJ,CAAYA,IAAAA,EAAyB,KAQrC,MAYMC,EAAcA,CAACnqB,EAA0CgD,IACvDonB,EAAAA,iBAAiBC,cAAcrqB,EAAQsqB,eACnCF,EAAAA,iBAAiBC,cAAcrqB,EAAQuqB,cAChC,GAGJvqB,EAAQuqB,aACRH,EAAAA,iBAAiBC,cAAcrqB,EAAQuqB,cACvCvqB,EAAQsqB,cAGZtnB,EAAUwnB,uBAAuBC,QAAQ,MAAOzqB,EAAQsqB,eAAgBG,QAAQ,MAAOzqB,EAAQuqB,cAGpG7kB,EAAaA,CAAC3F,EAAuBwF,KACvC,QAAaD,IAATC,EACA,MAAO,GAIX,OAAOxF,EAAQ0F,iBAAiBC,WAAWH,EADH,CAAEI,KAAM,UAAWC,MAAO,OAAQC,IAAK,aAW7E6kB,EAAaA,CAAC1qB,EAA0CgD,EAAuCjD,KAAyB,IAAA4qB,EAC1H,IAAK3qB,EAAQ4qB,QACT,MAAO,GAGX,MAAMC,EAAyD7qB,EAAQ4qB,QAEjEE,EAAgCplB,EAAW3F,EAAS8qB,EAAeE,gCAAkC,GACrGC,EAA8BtlB,EAAW3F,EAAS8qB,EAAeI,8BAAgC,GACjGC,EAAoC,QAA3BP,EAAGE,EAAeM,iBAAS,IAAAR,EAAAA,EAAI,GAE9C,OAAQ3qB,EAAQorB,WAEZ,KAAK,EACD,OACKhB,EAAAA,iBAAiBC,cAAcS,IAC/BV,EAAAA,iBAAiBC,cAAcW,GAO7B,GALIhoB,EAAUqoB,mCACZZ,QAAQ,MAAOK,GACfL,QAAQ,MAAOO,GAK5B,KAAK,EACD,OAAKZ,EAAAA,iBAAiBC,cAAca,GAI7B,GAHIloB,EAAUsoB,8BAA8Bb,QAAQ,MAAOS,GAItE,QACI,MAAO,KA+CbK,EAA8BA,CAACC,EAAmBxoB,KACpD,OAAQwoB,GACJ,KAAK,EACD,OAAOxoB,EAAUyoB,8BACrB,KAAK,EACD,OAAOzoB,EAAU0oB,uBACrB,KAAK,EACD,OAAO1oB,EAAU2oB,0BACrB,KAAK,EACD,OAAO3oB,EAAU4oB,wBACrB,KAAK,EACD,OAAO5oB,EAAU6oB,uCACrB,KAAK,EACD,OAAO7oB,EAAU8oB,kCACrB,QACI,OAAO9oB,EAAU+oB,yBAIvBC,EAAgCA,CAACC,EAAqBjpB,KACxD,OAAQipB,GACJ,KAAK,EACD,OAAOjpB,EAAUkpB,2BACrB,KAAK,EACD,OAAOlpB,EAAUmpB,uBACrB,QACI,OAAOnpB,EAAUopB,6BAIvBC,EAAoBC,IAAsC,IAAAC,EAC5D,MAAM,QAAExsB,EAAO,KAAEmG,EAAI,UAAElD,GAAcspB,EAAW/qB,YAE1CirB,GA3ENC,EA2EmCvmB,EAAKumB,kBAAkBpmB,OA1E1DnH,EA0EkEotB,EAAW/qB,YAxExEmN,EAAAA,gBAAgBC,YAAY8d,GAI1BA,EAAkB3oB,KAAI9D,IAAU,IAAA0sB,EAAAC,EACnC,MAAO,CACHC,IAAK,CACD,CACI3pB,GAAI/D,EAAM8D,UAAU6pB,sBACpB1kB,KAAM2kB,EAAAA,cAAcC,KACpBxtB,MAAOgsB,EAA6C,QAAlBmB,EAAC1sB,EAAQorB,iBAAS,IAAAsB,EAAAA,EAAI,EAAGxtB,EAAM8D,YAErE,CACIC,GAAI/D,EAAM8D,UAAUgqB,6BACpB7kB,KAAM2kB,EAAAA,cAAcC,KACpBxtB,MAAOmG,EAAWxG,EAAMa,QAASC,EAAQqd,kBAE7C,CACIpa,GAAI/D,EAAM8D,UAAUiqB,6BACpB9kB,KAAM2kB,EAAAA,cAAcC,KACpBxtB,MAAOmrB,EAAW1qB,EAASd,EAAM8D,UAAW9D,EAAMa,UAEtD,CACIkD,GAAI/D,EAAM8D,UAAUkqB,sBACpB/kB,KAAM2kB,EAAAA,cAAcC,KACpBxtB,MAAO4qB,EAAYnqB,EAASd,EAAM8D,YAEtC,CACIC,GAAI/D,EAAM8D,UAAUmqB,wBACpBhlB,KAAM2kB,EAAAA,cAAcC,KACpBxtB,MAAOysB,EAAiD,QAApBW,EAAC3sB,EAAQotB,mBAAW,IAAAT,EAAAA,EAAI,EAAGztB,EAAM8D,aAG7EqqB,YAAY,EACZ1tB,UAAWT,EAAMC,OAAOQ,cAjCrB,IALU2tB,IACrBb,EACAvtB,EA2FA,MAAO,CACH8D,UAAW,GACXuqB,SAjBC7e,EAAAA,gBAAgBC,YAAY6d,IACzBA,EAAU,GAAGI,IACRY,QAAO3kB,IAEIyjB,EAAWmB,WAAanB,EAAWoB,sBAAsBrrB,SAASwG,EAAK5F,MAElFa,KAAI+E,IACM,CACHyU,KAAMzU,EAAK5F,GACX0qB,UAAU,EACVzU,UAAWlW,EAAU4qB,yBAGrC,GAKAC,KAAMrB,EACN7sB,UAAW,GAAG2sB,EAAW/qB,YAAYpC,OAAOQ,mBAC5CmuB,aAAc,GACdC,eAAgB,GAChB5K,aAAc,GACd6K,gBAAgB,EAChBC,eAAgB,GAChBC,gBAAgB,EAChBC,YAAY,EACZC,gBAAgB,EAChBC,cAAe/B,EAAWmB,SAC1Ba,gBAAiBhC,EAAWmB,SAAWnB,EAAWoB,sBAAwB,GAC1Ea,mBAAoB,CAChBC,UACyB,QAArBjC,EAAAxsB,EAAQC,QAAQyuB,aAAK,IAAAlC,GAArBA,EAAuBmC,OAASjF,MAAMF,OAAOC,SAASzpB,EAAQC,QAAQyuB,MAAMC,KAAM,KAC5EnF,OAAOC,SAASzpB,EAAQC,QAAQyuB,MAAMC,KAAM,IAC5C,EACVC,YAAa,GACbC,SAAU5rB,EAAU6rB,wBACpBC,SAAU9rB,EAAU+rB,oBACpBC,eAAgB,GAChBvL,IAAM1jB,IAnMKkvB,EAmMoBlvB,EAAQC,QAlM3CqM,EAAAA,GAASC,UACF,IAAI4iB,IAAInK,OAAOoK,SAAS1sB,OAI/BwsB,EAAWxL,IAAI2L,WAAW3sB,KACnB,IAAIysB,IAAID,EAAWxL,IAAI2L,WAAW3sB,QA4LWA,MAAS,IAE7D4sB,oBAAoB,EACpBlQ,QAAS,CACLmQ,cAAUhqB,EACVzF,YAAQyF,EACRiqB,YAAQjqB,GAEZkqB,wCAAyClD,EAAW/qB,YAAYyB,UAAUwsB,wCAC1EC,gBAAiBnD,EAAW/qB,YAAYyB,UAAUysB,gBAClDC,iBAAkBpD,EAAW/qB,YAAYyB,UAAU0sB,kBA7MpCT,IAAAA,GAiNVU,EAAsDrD,GACxDztB,EAAAA,cAAC+wB,EAAAA,MAAK3uB,OAAAC,OAAA,GAAKmrB,EAAiBC,0kBCxPvC,MAAMuD,UAA0BhxB,EAAAA,cAAhCC,cAAA,oBA4BqB,KAAAgxB,aAAe,CAACnwB,EAAmBowB,KAA8C,IAAAC,EAAAC,EAC9F,MAAMC,EAA4D,QAAnDF,EAA2C,QAA3CC,EAAGhxB,KAAKC,MAAMgH,KAAKumB,kBAAkBpmB,cAAM,IAAA4pB,OAAA,EAAxCA,EAA0CzsB,cAAM,IAAAwsB,EAAAA,EAAI,EAEtE,OACInxB,EAAAA,cAAA,OAAKc,UAAW,GAAGA,wBACfd,EAAAA,cAACqY,EAAAA,QAAO,CAACvX,UAAW,GAAGA,qBAA8B8B,IAAKsuB,EAAYtuB,IAAK/B,KAAMqwB,EAAYrwB,OAC7Fb,EAAAA,cAAA,YAAOI,KAAKkxB,2BAA2BD,MASlC,KAAAE,yBAA2B,KACxC,MAAM,UAAEptB,GAAc/D,KAAKC,MAC3B,MAAO,CAAC8D,EAAUgqB,6BAA8BhqB,EAAUiqB,6BAA8BjqB,EAAUkqB,wBAGrF,KAAAmD,YAAc,IAEvBxxB,EAAAA,cAAC8wB,EAAgB,CAACpuB,YAAatC,KAAKC,MAAOuuB,SAAUxuB,KAAKwuB,SAAUC,sBAAuBzuB,KAAKmxB,6BAIvF,KAAAD,2BAA8BD,IAC3C,OAAQA,GACJ,KAAK,EACD,MAAO,GACX,KAAK,EACD,OAAOrc,EAAAA,EAAAA,QAAO5U,KAAKC,MAAM8D,UAAUstB,iCAAkCJ,GACzE,QACI,OAAOrc,EAAAA,EAAAA,QAAO5U,KAAKC,MAAM8D,UAAUutB,yBAA0BL,KA5D/D,eAEN,MAAgB,QADHzC,EAAAA,EAAAA,UAAS,CAAE+C,QAASC,EAAAA,YAAYC,SAAU3wB,QAASd,KAAKC,MAAMa,QAAQC,UAIhFoB,SACH,MAAM,OAAEjC,GAAWF,KAAKC,MAExB,KAAK6X,EAAAA,EAAAA,IAAiB9X,KAAKC,MAAMa,QAAQgC,cAAcjC,gBACnD,OAAO,KAGX,MAAMH,EAAYR,EAAOQ,WAAa,GAEhC0B,EAASC,EAAAA,EAAA,GACRrC,KAAKC,OAAK,IACbyxB,kBAAmB,CACfpvB,YAAatC,KAAKC,MAClBS,UAAAA,GAEJmD,QAAS7D,KAAK6wB,aAAanwB,EAAWR,EAAO2D,SAC7CmE,MAAOhI,KAAKoxB,gBAGhB,OAAOpxB,KAAKC,MAAMyC,WAAWN,KAxBvB6F,EAAAA,EAAAA,IAAA,CAAToR,EAAAA,IAAQ,6BAiEb,0GCjFA,MAUA,EAVqEpZ,IACjE,MAAM,kBAAEyxB,EAAiB,QAAE7tB,EAAO,MAAEmE,GAAU/H,EAC9C,OACIL,IAAAA,cAACyM,EAAAA,OAAMrK,OAAAC,OAAA,GAAKyvB,GACP7tB,EACAmE,mKCRN,MAAM2pB,EAA0C1xB,GAC5CL,IAAAA,cAAA,KAAGc,UAAU,2BAA2BT,EAAMQ,2kBCsCzD,IAAMmxB,EAAN,cAA4BhyB,EAAAA,UAOxBC,YAAYI,GACR0D,MAAM1D,GAiHH,KAAA2D,oBAAuB7D,GAA0CC,KAAKC,MAAMC,OAAO2D,QAASpD,KAAOV,EAAMM,OAAOC,MAEhH,KAAAuxB,0BAA6B9xB,GAC/BC,KAAKC,MAAMC,OAAO4xB,cAAerxB,KAAOV,EAAMM,OAAOC,MAEzC,KAAAyxB,cAAgB,KAC7B,GAAI/xB,KAAKC,MAAMa,QAAQC,QAAQ0G,KAAKC,kBAAoB1H,KAAK8H,MAAMkqB,QAAS,CACxEhyB,KAAKqX,SAAS,CAAE2a,SAAS,IACzB,MAAMnmB,EAAQ,IAAIomB,EAAAA,kBAAkBjyB,KAAKC,MAAMa,QAAQC,QAAQmxB,cAE/DC,EAAAA,EAAAA,cAAatmB,EAAO7L,KAAKC,MAAMa,QAAQgC,eAClCsvB,MAAK,KACEhlB,EAAAA,GAASC,WACTyY,OAAOoK,SAASjuB,OAAOzB,EAAAA,GAAoB,UAAWR,KAAKC,MAAMa,QAAQgC,gBAAkB,OAGlGuvB,OAAOloB,IACJnK,KAAKqX,SAAS,CAAE2a,SAAS,IACzBhyB,KAAKC,MAAM0Q,UAAUxG,MAAMA,EAAMM,SACjCzK,KAAKC,MAAM0Q,UAAU2hB,MAAM,qCAnIvCtyB,KAAK8H,MAAQ,CAAEkqB,SAAS,GACxBhyB,KAAKgX,kBAAmBC,EAAAA,EAAAA,oBACpBjX,KAAKC,MAAMa,QAAQC,QAAQmW,kBAC3BlX,KAAKC,MAAMkX,aACXnX,KAAKC,MAAM0Q,WAEf,MAAM8I,GAAUC,EAAAA,EAAAA,kBAAiB,QAAS1Z,KAAKgX,iBAAkB4M,EAAAA,kBAAkB2O,QACnFvyB,KAAKwyB,yBAA0BzY,EAAAA,EAAAA,wBAAuB/Z,KAAKgX,iBAAkByC,GAC7EA,EAAQG,cAAcC,MAAQ+J,EAAAA,kBAAkB6O,OAChDzyB,KAAK0yB,yBAA0B3Y,EAAAA,EAAAA,wBAAuB/Z,KAAKgX,iBAAkByC,GAC7EA,EAAQG,cAAcC,MAAQ+J,EAAAA,kBAAkB+O,kBAChD3yB,KAAK4yB,8BAA+B7Y,EAAAA,EAAAA,wBAAuB/Z,KAAKgX,iBAAkByC,GAClFA,EAAQG,cAAcC,MAAQ+J,EAAAA,kBAAkBiP,iBAChD7yB,KAAK8yB,4BAA6B/Y,EAAAA,EAAAA,wBAAuB/Z,KAAKgX,iBAAkByC,GAG7E9R,sBAAsBC,EAAoDC,GAC7E,OAAI7H,KAAK8H,QAAUD,GAAa7H,KAAKC,MAAMgH,OAASW,EAAUX,KAM3D9E,SAAM,IAAA4wB,EAAAC,EACT,MACI9yB,QAAQ,UAAEQ,EAAS,QAAEmD,EAAO,cAAEiuB,GAAe,UAC7C/tB,EACAjD,SAAS,cACLgC,EACA/B,SACI0G,MAAM,UAAEwrB,EAAS,gBAAEvrB,KAE1B,KACDT,GACAjH,KAAKC,MAEHizB,EAAW1yB,EAAAA,GAAoB,eAAgBsC,GACrD,IAAIqwB,EAAiB,GAAG3yB,EAAAA,GAAoB,cAAesC,yBACvDsK,EAAAA,GAASC,YACT8lB,EAAiB,GAAGrN,OAAOoK,SAASkD,SAASD,KAEjD,MAAME,EAAY,GAAGJ,QAAgBE,IAC/BG,EAAgBC,GAAAA,CAAU,oBAAqB7yB,GAC/C6jB,EAActd,EAAKsd,YACnBiP,EAAoBjP,EAAYnd,aAAqDf,IAA3Cke,EAAYnd,OAAOqsB,oBAC7D5X,EAA8C,QAA3BkX,EAAG9rB,EAAK4U,2BAAmB,IAAAkX,OAAA,EAAxBA,EAA0B3rB,OAEhDssB,GACqB,QAAtBV,EAAAhzB,KAAKC,MAAMa,QAAQ6yB,WAAG,IAAAX,GAAQ,QAARA,EAAtBA,EAAwB9yB,cAAM,IAAA8yB,OAAA,EAA9BA,EAAgCY,4CAChC/X,MAAAA,OAAmB,EAAnBA,EAAqBgY,mBADuD,EAE3EzxB,EAASC,EAAAA,EAAA,GACRrC,KAAKC,OAAK,IACbS,UAAW4yB,EACX1B,cAAe,CACXtvB,YAAatC,KAAKC,MAClBS,UAAW4yB,GAEftnB,eAAgB0nB,GACZ9zB,EAAAA,cAACY,EAAAA,GAAa,CAACE,UAAU,0BAA0BD,KAAMsD,EAAU+vB,sCAEvE7M,SAAUjnB,KAAKC,MAAMa,QAAQC,QAAQgzB,OAAOC,UAAoC,aAAxBzP,MAAAA,OAAW,EAAXA,EAAahf,QACrE1B,SAAU2vB,GAAqB3vB,GAAWA,EAAQpD,MAC9Cb,EAAAA,cAACY,EAAAA,GAAa,CACVE,UAAU,6BACV8B,IAAKqB,EAAQrB,IACb/B,KAAMoD,EAAQpD,KACdE,UAAW,CAAEC,OAAQZ,KAAK4D,oBAAqB/C,eAAgBb,KAAKC,MAAMa,QAAQC,WAG1F+wB,cAAe0B,GAAqB1B,GAAiBA,EAAcrxB,MAC/Db,EAAAA,cAACY,EAAAA,GAAa,CACVE,UAAU,6BACV8B,IAAKsvB,EAActvB,IACnB/B,KAAMqxB,EAAcrxB,KACpBE,UAAW,CAAEC,OAAQZ,KAAK6xB,0BAA2BhxB,eAAgBb,KAAKC,MAAMa,QAAQC,WAGhGkzB,YAAavsB,GACT9H,EAAAA,cAAC2D,EAAAA,OAAMvB,OAAAC,OAAA,CAACvB,UAAU,4BAA4B8C,KAAM6vB,GAAerzB,KAAKwyB,yBACnExyB,KAAKC,MAAM8D,UAAUmwB,uBAG9BC,YAAaX,GAAqB5zB,EAAAA,cAAC+xB,EAAU,CAAClxB,KAAMsD,EAAUqwB,qBAC9DC,cAAeb,GAAqB9rB,GAChC9H,EAAAA,cAAC2D,EAAAA,OAAMvB,OAAAC,OAAA,CACHvB,UAAU,yBACV6iB,SAAUmQ,EACVld,QAASxW,KAAK+xB,eACV/xB,KAAK0yB,yBAER1yB,KAAKC,MAAM8D,UAAUmwB,uBAG9BI,YAAad,GACT5zB,EAAAA,cAAC2D,EAAAA,OAAMvB,OAAAC,OAAA,CACHvB,UAAU,6BACV8C,KAAMhD,EAAAA,GAAoB,UAAWR,KAAKC,MAAMa,QAAQgC,gBACpD9C,KAAK4yB,8BAER5yB,KAAKC,MAAM8D,UAAUwwB,qBAG9BC,WAAYhB,GACR5zB,EAAAA,cAAC2D,EAAAA,OAAMvB,OAAAC,OAAA,CAACvB,UAAU,2BAA2B8C,KAAM0vB,GAAclzB,KAAK8yB,4BACjE9yB,KAAKC,MAAM8D,UAAU0wB,wBAKlC,OAAOz0B,KAAKC,MAAMyC,WAAWN,KAtH/BwvB,GAAa3pB,EAAAA,EAAAA,IAAA,CADlB6hB,EAAAA,IACK8H,GAkJN,iGCtLA,MAiCA,EAjC6D3xB,IACzD,MAAM,cACF2xB,EAAa,QACb/tB,EAAO,cACPiuB,EAAa,WACbmC,EAAU,WACVE,EAAU,aACVE,EAAY,YACZC,EAAW,UACXE,EAAS,QACTvN,EAAO,eACPjb,GACA/L,EAEJ,OAAIgnB,GACAhnB,EAAMa,QAAQ6P,UAAUxG,MAAM,mDACvB,MAIPvK,EAAAA,cAACyM,EAAAA,OAAMrK,OAAAC,OAAA,GAAK2vB,GACP5lB,EACA8lB,EACAjuB,EACAywB,EACAH,EACAK,EACAH,EACAJ,wFCcN,MAAMS,EAAqBz0B,IAC9B,MAAMwZ,GAAUC,EAAAA,EAAAA,kBAAiB,QAASzZ,EAAM+W,iBAAmB4M,EAAAA,kBAAkB+Q,oBAC/EC,GAA8B7a,EAAAA,EAAAA,wBAAuB9Z,EAAM+W,iBAAmByC,GACpFA,EAAQG,cAAcC,MAAQ+J,EAAAA,kBAAkBiR,mBAChD,MAAMC,GAA8B/a,EAAAA,EAAAA,wBAAuB9Z,EAAM+W,iBAAmByC,GACpFA,EAAQG,cAAcC,MAAQ+J,EAAAA,kBAAkBmR,kBAChD,MAAMC,GAAgCjb,EAAAA,EAAAA,wBAAuB9Z,EAAM+W,iBAAmByC,GACtF,MAAO,CACHyN,MAAO,CACH1kB,IAAKmgB,EAAAA,MACLjiB,UAAW,0BACX6f,OAAQtgB,EAAMg1B,SACdC,gBAAiB,aACjB9S,OAAQniB,EAAMmiB,OACd+S,eAAgBl1B,EAAMm1B,WAE1BC,YAAa,CAAE7yB,IAAKwgB,EAAAA,YAAatiB,UAAW,iCAAkC6f,OAAQtgB,EAAMg1B,UAC5FK,YAAa,CAAE9yB,IAAK8gB,EAAAA,YAAa5iB,UAAW,kCAC5CymB,UAAW,CAAE3kB,IAAKygB,EAAAA,UAAWviB,UAAW,gCACxC+K,aACI7L,IAAAA,cAAC2D,EAAAA,OAAMvB,OAAAC,OAAA,CAACvB,UAAU,2BAA2B8V,QAASvW,EAAMg1B,UAAcL,GACrE30B,EAAM8D,UAAUwxB,wBAGzBC,aACI51B,IAAAA,cAAC2D,EAAAA,OAAMvB,OAAAC,OAAA,CACHvB,UAAU,2BACV8V,QAASvW,EAAMw1B,SACflS,UAAWtjB,EAAMy1B,SACbZ,GAEH70B,EAAM8D,UAAU4xB,sBAGzB9xB,QAASjE,IAAAA,cAAA,KAAGc,UAAU,6BAA6BT,EAAM8D,UAAU6xB,qBACnEC,MAAO51B,EAAM41B,MACbC,aAAc,CAAEp1B,UAAW,mCAC3Bq1B,SACIn2B,IAAAA,cAAA,QAAAoC,OAAAC,OAAA,CACIvB,UAAU,8BACNs0B,EAA6B,CACjC9rB,KAAK,WACLwsB,QAASz1B,EAAMy1B,QAAO,eACRz1B,EAAMy1B,QACpBtS,SAAUnjB,EAAM+1B,WAGxBC,UAAWr2B,IAAAA,cAAA,KAAGc,UAAU,2BAA2BT,EAAM8D,UAAUmyB,8vBClE3E,MAAMC,UAAqBv2B,EAAAA,UAKvBC,YAAmBI,GACf0D,MAAM1D,GACND,KAAKo2B,QAAUp2B,KAAKo2B,QAAQC,KAAKr2B,MACjCA,KAAKs2B,QAAUt2B,KAAKs2B,QAAQD,KAAKr2B,MACjCA,KAAKu2B,iBAAmBv2B,KAAKu2B,iBAAiBF,KAAKr2B,MACnDA,KAAKw2B,UAAY52B,EAAAA,YACjBI,KAAKgX,kBAAmBC,EAAAA,EAAAA,oBACpBjX,KAAKC,MAAMa,QAAQC,QAAQmW,kBAC3BlX,KAAKC,MAAMkX,aACXnX,KAAKC,MAAM0Q,WAEf,IAAI8lB,EAASz2B,KAAKC,MAAMa,QAAQC,QAAQyjB,IAAI2L,WAAWsG,OACnDC,GAAY,EAChB,GAAID,EAAQ,CACRA,EAASA,EAAOE,UAAU,GAC1B,MAAMC,EAAOH,EAAO5Z,MAAM,KAC1B,IAAK,MAAMga,KAAOD,EAAM,CACpB,MAAME,EAAWD,EAAIha,MAAM,KAE3B,GADA6Z,EAA4B,mBAAhBI,EAAS,IAA2C,SAAhBA,EAAS,GACrDJ,EACA,OAKZ12B,KAAK8H,MAAQ,CACTwY,YAAaoW,EACbhB,SAAS,EACT1D,SAAS,GAIVrqB,sBAAsBC,EAAkDC,GAC3E,OAAI7H,KAAK8H,QAAUD,GAAa7H,KAAKC,MAAMgH,OAASW,EAAUX,KAM3D9E,SACH,MACIjC,QAAQ,UAAEQ,EAAS,WAAEq2B,GAAY,UACjChzB,EACAizB,OAAO,aAAEC,GACThwB,MAAM,YAAEsd,GACRzjB,SACIC,SACI0G,MAAM,gBAAEC,MAGhB1H,KAAKC,MACHqzB,EAAgBC,GAAAA,CAAU,mBAAoB7yB,GAE9C0B,EAASC,EAAAA,EAAA,GACRrC,KAAKC,OAAK,IACbS,UAAW4yB,EACX6C,aAAc,CACV7zB,YAAatC,KAAKC,MAClBS,UAAW4yB,GAEfrM,QAAgC,YAAvB1C,EAAYhf,OACrB2xB,aAA4B,IAAfH,GACTn3B,EAAAA,cAAC2D,EAAAA,OAAM,CAAC7C,UAAU,2BAA2B8V,QAASxW,KAAKo2B,QAAS3U,SAAUzhB,KAAKw2B,WAC9EzyB,EAAUozB,4BAGnBjQ,MACIxf,GACA6c,EAAYnd,aACsBf,IAAlCke,EAAYnd,OAAOqd,aACnBiQ,EAAAA,EAAAA,GAAkB,CACd3wB,UAAS1B,EAAA,GAAO0B,GAChBqxB,UAAWp1B,KAAKw2B,UAChBd,QAAS11B,KAAK8H,MAAM4tB,QACpBtT,OAAQpiB,KAAK8H,MAAMwY,YACnBuV,MAAOoB,EACPjgB,iBAAkBhX,KAAKgX,iBACvBie,SAAUj1B,KAAKo2B,QACfX,SAAUz1B,KAAKs2B,QACfN,QAASh2B,KAAKu2B,qBAI1B,OAAOv2B,KAAKC,MAAMyC,WAAWN,GAGzBg0B,UACJp2B,KAAKqX,SAAS,CAAEiJ,aAActgB,KAAK8H,MAAMwY,YAAaoV,SAAS,IAG3DY,UACJ,GAAIt2B,KAAKC,MAAMa,QAAQC,QAAQ0G,KAAKC,kBAAoB1H,KAAK8H,MAAMkqB,QAAS,CACxEhyB,KAAKqX,SAAS,CAAE2a,SAAS,IACzB,MAAMnmB,EAAQ,IAAIomB,EAAAA,kBAAkBjyB,KAAKC,MAAMa,QAAQC,QAAQmxB,cAE/DC,EAAAA,EAAAA,cAAatmB,EAAO7L,KAAKC,MAAMa,QAAQgC,eAClCsvB,MAAKgF,IACEp3B,KAAKC,MAAMC,OAAOm3B,kBAClBvR,OAAOoK,SAASjuB,QAAOiB,EAAAA,EAAAA,IAAW,UAAWlD,KAAKC,MAAMa,QAAQgC,gBAAkB,KAElFw0B,EAAAA,EAAAA,qBAAoB,CAAE7a,cAAezc,KAAKC,MAAMa,QAAQgC,eAAiBs0B,EAAK3S,YAAc,IACvF2N,MAAKmF,IACFv3B,KAAKC,MAAMa,QAAQgC,cAAc00B,OAC7B,IAAIC,EAAAA,oBAAoBz3B,KAAKC,MAAMa,QAAQC,QAAQmxB,aACnDqF,MAGPlF,OAAOloB,IACJnK,KAAKC,MAAMa,QAAQgC,cAAc00B,OAC7B,IAAIC,EAAAA,oBAAoBz3B,KAAKC,MAAMa,QAAQC,QAAQmxB,aACnDkF,GAEJp3B,KAAKC,MAAM0Q,UAAUxG,MAAMA,EAAMM,SACjCzK,KAAKC,MAAM0Q,UAAU2hB,MAAM,sCAI1CD,OAAOloB,IACJnK,KAAKqX,SAAS,CAAE2a,SAAS,IACzBhyB,KAAKC,MAAM0Q,UAAUxG,MAAMA,EAAMM,SACjCzK,KAAKC,MAAM0Q,UAAU2hB,MAAM,oCAKnCiE,mBACJv2B,KAAKqX,SAAS,CAAEqe,SAAU11B,KAAK8H,MAAM4tB,WAI7C,iGC9JA,MAwBA,EAxB2Dz1B,IACvD,MAAM,aAAEk2B,EAAY,YAAEe,EAAW,MAAEhQ,EAAK,QAAED,GAAYhnB,EAEtD,OAAQgnB,GAAWC,EACftnB,EAAAA,cAACyM,EAAAA,OAAMrK,OAAAC,OAAA,GAAKk0B,GACPe,EACDt3B,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKilB,EAAMA,OACZtnB,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKilB,EAAMmO,aAAcnO,EAAMrjB,SACpCjE,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKilB,EAAMC,WACXD,EAAM2O,MACPj2B,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKilB,EAAM4O,cACX5O,EAAM6O,SACN7O,EAAM+O,YAGfr2B,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKilB,EAAMoO,aACXpO,EAAMsO,aACNtO,EAAMzb,gBAInB,2ICpBD,MAAMisB,EAA8Fr0B,IAAA,IAAC,YAAEwG,GAAaxG,EAAA,OACvHzD,EAAAA,cAAA,KAAGc,UAAU,mDAAmDmJ,ICUvD8tB,EAAkFt0B,IAK1F,IAL2F,MAC5FkF,EAAK,iBACLyO,EAAgB,aAChBqB,EAAY,eACZxX,GACHwC,EACG,GAAqB,IAAjBkF,EAAMhE,OACN,OAAO,KAEX,MAAMiV,EAAgBF,EAAkB/Q,EAAOyO,GAC/C,OACIpX,EAAAA,cAAA,OAAKc,UAAU,6CACV8Y,GAAiBA,EAAcjV,OAAS,EACrC3E,EAAAA,cAACY,EAAAA,GAAc,CAAC+H,MAAOiR,EAAe7Y,UAAW,CAAE0X,aAAAA,EAAcxX,eAAAA,KACjE,OAKVyY,EAAoBA,CAACC,EAAwBvC,KAC/C,IAAKuC,GAAgC,IAApBA,EAAShV,OACtB,OAAO,KAEX,MAAMiV,EAAuC,GACvCC,GAAUC,EAAAA,EAAAA,kBAAiB,QAAS1C,EAAmB,IAgB7D,OAfAuC,EAASI,SAAQ,CAAC5Q,EAAMhE,KACpB0U,EAAQG,cAAcC,MAAQ9Q,EAAKS,SACnC,MAAMsQ,GAAaC,EAAAA,EAAAA,wBAAuB/C,EAAmByC,GACvDO,EAAoC,CACtCC,UAAWlR,EAAKkR,UAChBvZ,UAAW,2CACX8I,SAAUT,EAAKS,SACfR,QAASD,EAAKC,QAAQC,eACtBiR,aAAcnR,EAAKmR,aACnBC,KAAM,OACNC,qBAAsBN,GAE1BN,EAAca,KAAKL,MAGhBR,wkBCnCX,MAAMoe,UAA8Bh4B,EAAAA,cAGhCC,YAAYI,GACR0D,MAAM1D,GAuDH,KAAA2D,oBAAuB7D,IAC1BC,KAAKC,MAAMC,OAAO2D,QAAQpD,KAAOV,EAAMM,OAAOC,OAG3C,KAAAyjB,qBAAwBC,GAAuBjkB,IAC9CC,KAAKC,MAAMC,OAAOqI,OAASvI,KAAKC,MAAMC,OAAOqI,MAAMyb,KACnDhkB,KAAKC,MAAMC,OAAOqI,MAAMyb,GAAWxa,SAAWzJ,EAAMM,OAAOC,QA5D/DN,KAAKgX,kBAAmBC,EAAAA,EAAAA,oBACpBjX,KAAKC,MAAMa,QAAQC,QAAQmW,kBAC3BlX,KAAKC,MAAMkX,aACXnX,KAAKC,MAAM0Q,WAIZxO,SACH,MAAM,OAAEjC,EAAM,UAAE6D,EAAS,KAAEkD,GAASjH,KAAKC,OACnC,UAAES,EAAS,QAAEmD,EAAO,MAAE0E,GAAUrI,GAChC,qDAAE23B,EAAoD,wDAAEC,GAA4D/zB,EACpHg0B,EAAW9wB,EAAK+wB,OAAS/wB,EAAK+wB,MAAM5wB,OACpC6wB,EACW,IAAbF,EAAiBF,EAAuDC,EACtEjc,EAAsB5U,EAAK4U,oBAAoBzU,OAGrD,GAAKyU,MAAAA,IAAAA,EAAqBoD,WACtB,OAAO,KAGX,MAAM7c,EAASC,EAAAA,EAAA,GACRrC,KAAKC,OAAK,IACbS,UAAAA,EACAk3B,sBAAuB,CACnBt1B,YAAatC,KAAKC,MAClBS,UAAW6B,GAAAA,CAAW,qCAAsCrC,EAAOQ,YAEvEmD,QAASA,GAAWA,EAAQpD,MACxBb,EAAAA,cAACY,EAAAA,GAAa,CACVE,UAAU,8CACV8B,IAAKqB,EAAQrB,IACb/B,KAAMoD,EAAQpD,KACdE,UAAW,CAAEC,OAAQZ,KAAK4D,oBAAqB/C,eAAgBb,KAAKC,MAAMa,QAAQC,WAG1FwH,MAAOA,GAASA,EAAMhE,OAAS,GAC3B3E,EAAAA,cAAC+3B,EAAiC31B,OAAAC,OAAA,GAC1B,CACAsG,MAAAA,EACA8P,aAAcrY,KAAK+jB,qBACnBljB,eAAgBb,KAAKC,MAAMa,QAAQC,QACnCiW,iBAAkBhX,KAAKgX,oBAInCnN,YACIjK,EAAAA,cAAC83B,EAAuC,CAAC7tB,aAAa+K,EAAAA,EAAAA,QAAOqjB,EAAyCF,GAAY,OAI1H,OAAO/3B,KAAKC,MAAMyC,WAAWN,IAcrC,qFC/EA,MAUA,EAV4DiB,IAA4E,IAA3E,GAAEW,EAAE,UAAEtD,EAAS,KAAED,EAAI,UAAEwZ,EAAS,SAAEsJ,EAAQ,iBAAEvM,EAAgB,QAAER,GAASnT,EAChI,MAAMoW,GAAUC,EAAAA,EAAAA,kBAAiB,QAAS1C,EAAmBvW,GACvDqZ,GAAaC,EAAAA,EAAAA,wBAAuB/C,EAAmByC,GAC7D,OACI7Z,EAAAA,cAAC2D,EAAAA,OAAMvB,OAAAC,OAAA,CAAC+B,GAAIA,EAAItD,UAAWA,EAAS,aAAcuZ,EAAWsJ,SAAUA,EAAU/M,QAASA,GAAasD,GAClGrZ,gFCRb,MAUA,EAV+D4C,IAA8C,IAA7C,GAAEW,EAAE,UAAEtD,EAAS,KAAEwI,EAAO,OAAM,QAAEuB,GAASpH,EACrG,MAAM8mB,EAAiB,GAAGzpB,MAAcwI,UAExC,OACItJ,EAAAA,cAAA,OAAKoE,GAAIA,EAAItD,UAAW6B,GAAAA,CAAW4nB,EAAgB,QAAS,GAAGjhB,UAAciR,KAAK,QAAO,YAAW,YAAW,cAAa,QACxHva,EAAAA,cAAA,KAAGc,UAAW,GAAGypB,UAAwB1f,qECQrD,MAAM2f,EAAgBZ,IAClB,GAAIA,EAAW,CACX,MAAMa,EAAkBC,OAAOC,SAASf,EAAW,IACnD,IAAKgB,MAAMH,GACP,OAAOA,IAoBnB,EAb+DhnB,IAAA,IAAC,GAAEW,EAAE,KAAEkF,EAAI,MAAE5I,EAAK,QAAEmpB,EAAO,UAAE/oB,EAAS,UAAE8oB,EAAS,SAAEpG,GAAU/f,EAAA,OACxHzD,EAAAA,cAAA,SACIoE,GAAIA,EACJkF,KAAMA,EACN5I,MAAOA,EACPI,UAAW,GAAGA,WAAmBA,KAAasD,IAC9CylB,QAAqB,KAAZA,EAAiBA,OAAUpjB,EAAS,gBAC/B,OACdmjB,UAAWY,EAAaZ,GACxBpG,SAAUA,+DClClB,MAMA,EAN0D/f,IAAA,IAAC,GAAEW,EAAE,MAAE4lB,EAAK,UAAElpB,EAAS,KAAED,GAAM4C,EAAA,OACrFzD,EAAAA,cAAA,SAAOoE,GAAI,GAAGA,UAAYtD,UAAW,GAAGA,UAAmBwiB,QAAS0G,GAC/DnpB,8DCLT,MAEA,EAFsE4C,IAAA,IAAC,UAAE3C,GAAW2C,EAAA,OAAKzD,EAAAA,cAAA,OAAKc,UAAW,GAAGA,+ECC5G,MAIA,EAJ4E2C,IAAA,IAAC,UAAE3C,EAAS,QAAE+J,GAASpH,EAAA,OAC/FzD,EAAAA,cAAA,OAAKc,UAAW,GAAGA,sBAA+B+J,myBCsDtD,IAAMytB,EAAN,cAA4Bt4B,EAAAA,UAcxBC,YAAYI,GACR0D,MAAM1D,GAdO,KAAAglB,gBAA0B,oBA0FpC,KAAArhB,oBAAuB7D,GAA0CC,KAAKC,MAAMC,OAAO2D,QAASpD,KAAOV,EAAMM,OAAOC,MAGhH,KAAAglB,QAAU,KACbtlB,KAAKulB,mBACLvlB,KAAKwlB,sBAGLxlB,KAAKylB,oBAAsBC,aAAY,KACnC1lB,KAAK2lB,gCACN,KACHC,YAAW,KACPC,cAAc7lB,KAAKylB,uBACpB,MAIU,KAAAE,4BAA8B,KAEvCG,QAAUA,OAAe,QAAKA,OAAe,OAA4B,2BACzED,cAAc7lB,KAAKylB,qBACnBzlB,KAAK+lB,eAAgB,IAIZ,KAAAR,iBAAmB,KAE5BO,OAAkB,WAAKA,OAAkB,UAAmB,iBAE5DA,OAAkB,UAAmB,gBAAEjhB,KAAKohB,IACxC,OAAQA,EAAIG,GAAG/X,eACX,IAAK,cACDrO,KAAKm4B,iBAAmBlS,EAAII,IAC5B,MAEJ,IAAK,kBACDrmB,KAAKo4B,qBAAuBnS,EAAII,SASnC,KAAAb,oBAAsB,KACnC,MAAM,UAAEzhB,GAAc/D,KAAKC,MAG3B,GAAI6lB,QAAUA,OAAgB,QAAG,CAC7B,MAAMrb,EAAU,CACZgc,gBAAiB1iB,EAAU2iB,gBAI/B1kB,OAAOC,OAAO6jB,OAAgB,QAAGrb,KAjIrCzK,KAAKm4B,iBAAmBE,EAAAA,cAAczR,aAAaC,OACnD7mB,KAAKo4B,qBAAuBC,EAAAA,cAAczR,aAAaC,OACvD7mB,KAAK+lB,eAAgB,EACrB/lB,KAAKgX,kBAAmBC,EAAAA,EAAAA,oBACpBjX,KAAKC,MAAMa,QAAQC,QAAQmW,kBAC3BlX,KAAKC,MAAMkX,aACXnX,KAAKC,MAAM0Q,WAIZnJ,oBACHxH,KAAKslB,UAIFwB,qBAEC9mB,KAAK+lB,eAAiBD,QAAUA,OAAiB,UAAKA,OAAiB,SAAc,YAErFA,OAAiB,SAAc,aAIhCne,sBAAsBC,EAAsDC,GAC/E,OAAI7H,KAAK8H,QAAUD,GAAa7H,KAAKC,MAAMgH,OAASW,EAAUX,KAM3D9E,SACH,MAAM,OAAEjC,EAAM,UAAE6D,GAAc/D,KAAKC,MAE7BmC,EAASC,EAAAA,EAAA,GACRrC,KAAKC,OAAK,IACbgM,UAAW,CACP8a,eAAgB/mB,KAAK+lB,eAEzBuS,cAAe,CACXh2B,YAAatC,KAAKC,MAClBS,UAAW6B,GAAAA,CAAWvC,KAAKilB,gBAAiB/kB,EAAOQ,YAEvDumB,QAAS,CACLC,MAAO,CACH1kB,IAAKmgB,EAAAA,MACLP,QAAQ,GAEZ+E,UAAW,CACP3kB,IAAKygB,EAAAA,WAETza,KAAM5I,EAAAA,cAAC24B,EAAAA,EAAiC,CAAC73B,UAAWV,KAAKilB,kBACzDxa,QAAS7K,EAAAA,cAAC44B,EAAAA,EAAoC,CAAC93B,UAAWV,KAAKilB,gBAAiBxa,QAAS1G,EAAU2iB,kBAEvGY,mBAAoB,CAChBtjB,GAAI,MACJujB,MAAO,CAAEC,QAAS,SAEtBC,YAAa,CACTzjB,GAAIhE,KAAK+lB,cAAgB,MAAQ,KACjCrlB,UAAW,GAAGV,KAAKilB,8BAEvBphB,QAAS3D,EAAO2D,SACZjE,EAAAA,cAACY,EAAAA,GAAawB,OAAAC,OAAA,CACVvB,UAAW,GAAGV,KAAKilB,4BACf/kB,EAAO2D,QAAO,CAClBlD,UAAW,CAAEC,OAAQZ,KAAK4D,oBAAqB/C,eAAgBb,KAAKC,MAAMa,QAAQC,YAG1F03B,0BAA2Bz4B,KAAK2nB,wBAGpC,OAAO3nB,KAAKC,MAAMyC,WAAWN,GA8DzBulB,sBACJ,MAAM,UAAE5jB,GAAc/D,KAAKC,MAC3B,MAAO,CACHkoB,aAAc,CACVnkB,GAAI,gBACJtD,UAAW,GAAGV,KAAKilB,uCAEvBtb,MAAO,CACH3J,KAAKooB,aAAa,cAAe,WAAYrkB,EAAU20B,qBAAsB14B,KAAKm4B,kBAClFn4B,KAAKooB,aAAa,kBAAmB,WAAYrkB,EAAU40B,yBAA0B34B,KAAKo4B,uBAE9F3P,aAAc,CACV7oB,EAAAA,cAACg5B,EAAAA,EAA2B,CACxB5zB,IAAI,wBACJhB,GAAG,wBACHtD,UAAWV,KAAKilB,gBAChBxa,QAAS1G,EAAU80B,6BAEvBj5B,EAAAA,cAACg5B,EAAAA,EAA2B,CACxB5zB,IAAI,uBACJhB,GAAG,uBACHtD,UAAWV,KAAKilB,gBAChBxa,QAAS1G,EAAUyiB,4BAEvB5mB,EAAAA,cAACg5B,EAAAA,EAA2B,CACxB5zB,IAAI,uBACJhB,GAAG,iBACHtD,UAAWV,KAAKilB,gBAChBxa,QAAS1G,EAAU6kB,sBAEvBhpB,EAAAA,cAACg5B,EAAAA,EAA2B,CACxB5zB,IAAI,+BACJhB,GAAG,+BACHtD,UAAWV,KAAKilB,mBAGxB4D,eAAgB,CACZnoB,UAAW,GAAGV,KAAKilB,4BAEvB6D,QAAS,CACLlpB,EAAAA,cAACk5B,EAAAA,EAA4B,CACzB9zB,IAAI,WACJhB,GAAG,WACHtD,UAAW,GAAGV,KAAKilB,mCACnBhL,UAAWlW,EAAUilB,oBACrBvoB,KAAMsD,EAAUklB,eAChBjS,iBAAkBhX,KAAKgX,mBAE3BpX,EAAAA,cAACk5B,EAAAA,EAA4B,CACzB9zB,IAAI,SACJhB,GAAG,SACHtD,UAAW,GAAGV,KAAKilB,iCACnBhL,UAAWlW,EAAUmlB,iBACrBzoB,KAAMsD,EAAUmlB,iBAChBlS,iBAAkBhX,KAAKgX,oBAG/BmS,yBAA0B,CACtBzoB,UAAW,GAAGV,KAAKilB,oDAEvBmE,gCAAiC,CAC7BplB,GAAI,kBACJtD,UAAW,GAAGV,KAAKilB,6CAKvBmD,aAAapkB,EAAYkF,EAAcqgB,EAAmBE,GAC9D,MAAM/oB,EAAY,GAAGV,KAAKilB,gCAC1B,MAAO,CACHyE,QAAS,CACLhpB,UAAW6B,GAAAA,CAAW7B,EAAW,GAAGA,KAAasD,IAAM,aAAc,cAEzEgB,IAAKhB,EACL2H,MACI/L,EAAAA,cAACm5B,EAAAA,EAA2B/2B,OAAAC,OAAA,GACpB,CACA+B,GAAAA,EACA4lB,MAAO5lB,EACPtD,UAAAA,EACAD,KAAM8oB,KAIlBd,aACI7oB,EAAAA,cAACg5B,EAAAA,EAA2B52B,OAAAC,OAAA,GACpB,CACAvB,UAAWV,KAAKilB,gBAChB/b,KAAM,UAIlB2C,MACIjM,EAAAA,cAACo5B,EAAAA,EAA2Bh3B,OAAAC,OAAA,GACpB,CACA+B,GAAAA,EACAkF,KAAAA,EACAugB,QAAAA,EACA/oB,UAAAA,SAnPRuH,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,wCAECD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,4CAECD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,oCATTgwB,GAAajwB,EAAAA,EAAAA,IAAA,CADlB6hB,EAAAA,IACKoO,GAgQN,iGCzTA,MAAMe,EAAkD51B,IAA4C,IAA3C,QAAEqmB,EAAO,MAAE/d,EAAK,aAAE8c,EAAY,MAAE5c,GAAOxI,EAC5F,OACIzD,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKynB,GACL/d,EACA8c,EACA5c,IAuCPqtB,EAAwDvuB,IAAwC,IAAvC,MAAEuc,EAAK,UAAEC,EAAS,KAAE3e,EAAI,QAAEiC,GAASE,EAC9F,OACI/K,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKilB,GACNtnB,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKklB,GACL3e,EACAiC,KAqBjB,EAf6DxK,IACzD,MAAM,cAAEq4B,EAAa,UAAErsB,EAAS,QAAEgb,EAAO,mBAAEK,EAAkB,YAAEG,EAAW,QAAE5jB,EAAO,0BAAE40B,GAA8Bx4B,EAEnH,OACIL,EAAAA,cAACyM,EAAAA,OAAMrK,OAAAC,OAAA,GAAKq2B,GACPrsB,EAAU8a,eAAiBnnB,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKqlB,IACrCrb,EAAU8a,eAAiBnnB,EAAAA,cAACs5B,EAAoBl3B,OAAAC,OAAA,GAAKglB,IACtDrnB,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKwlB,GACL5jB,EArD0CkG,CAAAA,IAQtD,IARuD,aACxDoe,EAAY,MACZxe,EAAK,aACL8e,EAAY,eACZI,EAAc,QACdC,EAAO,yBACPK,EAAwB,gCACxBC,GACHrf,EACG,OACInK,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKkmB,GACLxe,GACGA,EAAM9E,KAAK+E,GAEAhK,EAAAA,cAACq5B,EAAiBj3B,OAAAC,OAAA,GAAK2H,MAErC6e,GACGA,EAAa5jB,KAAI,CAACsF,EAAwBpF,IAC/BnF,EAAAA,cAACA,EAAAA,SAAc,CAACoF,IAAKD,GAAQoF,KAE5CvK,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAK4mB,GACLC,GACGA,EAAQjkB,KAAI,CAAColB,EAAyBllB,IAC3BnF,EAAAA,cAACA,EAAAA,SAAc,CAACoF,IAAKD,GAAQklB,MAIhDrqB,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKknB,GACNvpB,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKmnB,OA0BTc,CAAauO,iFCxD9B,MAUA,EAV8Cp1B,IAA4E,IAA3E,GAAEW,EAAE,UAAEtD,EAAS,KAAED,EAAI,UAAEwZ,EAAS,iBAAEjD,EAAgB,SAAEuM,EAAQ,QAAE/M,GAASnT,EAClH,MAAMoW,GAAUC,EAAAA,EAAAA,kBAAiB,QAAS1C,EAAmBvW,GACvDqZ,GAAaC,EAAAA,EAAAA,wBAAuB/C,EAAmByC,GAC7D,OACI7Z,EAAAA,cAAC2D,EAAAA,OAAMvB,OAAAC,OAAA,CAAC+B,GAAIA,EAAItD,UAAWA,EAAS,aAAcuZ,EAAWsJ,SAAUA,EAAU/M,QAASA,GAAasD,GAClGrZ,qECXb,MAEA,EAFwD4C,IAAA,IAAC,UAAE3C,EAAS,YAAEmJ,GAAaxG,EAAA,OAAKzD,EAAAA,cAAA,KAAGc,UAAWA,GAAYmJ,gFCGlH,MAUA,EAViDxG,IAA8C,IAA7C,GAAEW,EAAE,UAAEtD,EAAS,KAAEwI,EAAO,OAAM,QAAEuB,GAASpH,EACvF,MAAM8mB,EAAiB,GAAGzpB,MAAcwI,UAExC,OACItJ,EAAAA,cAAA,OAAKoE,GAAIA,EAAItD,UAAW6B,GAAAA,CAAW4nB,EAAgB,QAAS,GAAGjhB,UAAciR,KAAK,QAAO,YAAW,YAAW,cAAa,QACxHva,EAAAA,cAAA,KAAGc,UAAW,GAAGypB,UAAwB1f,qECSrD,MAAM2f,EAAgBZ,IAClB,GAAIA,EAAW,CACX,MAAMa,EAAkBC,OAAOC,SAASf,EAAW,IACnD,IAAKgB,MAAMH,GACP,OAAOA,IAqBnB,EAdiDhnB,IAAA,IAAC,GAAEW,EAAE,KAAEkF,EAAI,MAAE5I,EAAK,QAAEmpB,EAAO,UAAE/oB,EAAS,UAAE8oB,EAAS,UAAEvP,EAAS,SAAEmJ,GAAU/f,EAAA,OACrHzD,EAAAA,cAAA,SACIoE,GAAIA,EACJkF,KAAMA,EACN5I,MAAOA,EACPI,UAAW,GAAGA,WAAmBA,KAAasD,IAC9CylB,QAAqB,KAAZA,EAAiBA,OAAUpjB,EAAS,gBAC/B,OACdmjB,UAAWY,EAAaZ,GACxBpG,SAAUA,EAAQ,aACNnJ,+DCpCpB,MAMA,EAN4C5W,IAAA,IAAC,GAAEW,EAAE,MAAE4lB,EAAK,UAAElpB,EAAS,KAAED,GAAM4C,EAAA,OACvEzD,EAAAA,cAAA,SAAOoE,GAAI,GAAGA,UAAYtD,UAAW,GAAGA,UAAmBwiB,QAAS0G,GAC/DnpB,+ECCT,MAUA,EAV0C4C,IAA+D,IAA9D,GAAEW,EAAE,UAAEtD,EAAS,KAAE8C,EAAI,iBAAEwT,EAAgB,UAAEiD,EAAS,KAAExZ,GAAM4C,EACjG,MAAMoW,GAAUC,EAAAA,EAAAA,kBAAiB,QAAS1C,EAAmBvW,GACvDqZ,GAAaC,EAAAA,EAAAA,wBAAuB/C,EAAmByC,GAC7D,OACI7Z,EAAAA,cAAA,IAAAoC,OAAAC,OAAA,CAAG+B,GAAIA,EAAItD,UAAWA,EAAW8C,KAAMA,EAAI,aAAcyW,GAAeH,GACnErZ,8DCXb,MAEA,EAFwD4C,IAAA,IAAC,UAAE3C,GAAW2C,EAAA,OAAKzD,EAAAA,cAAA,OAAKc,UAAW,GAAGA,+ECC9F,MAIA,EAJ8D2C,IAAA,IAAC,UAAE3C,EAAS,QAAE+J,GAASpH,EAAA,OACjFzD,EAAAA,cAAA,OAAKc,UAAW,GAAGA,sBAA+B+J,8DCDtD,MAEA,EAF0CpH,IAAA,IAAC,UAAE3C,EAAS,KAAED,GAAM4C,EAAA,OAAKzD,EAAAA,cAAA,QAAMc,UAAWA,GAAYD,i0BCuFhG,IAAM8xB,EAAN,cAAqB3yB,EAAAA,UAcjBC,YAAYI,GACR0D,MAAM1D,GAdO,KAAAglB,gBAA0B,aAiMpC,KAAAnlB,sBAAyBC,GAA0CC,KAAKC,MAAMC,OAAOi5B,iBAAmBp5B,EAAMM,OAAOC,MAErH,KAAA84B,0BAA6Br5B,GAC/BC,KAAKC,MAAMC,OAAOm5B,cAAc54B,KAAOV,EAAMM,OAAOC,MAElD,KAAAg5B,0BAA6Bv5B,GAC/BC,KAAKC,MAAMC,OAAOq5B,cAAc94B,KAAOV,EAAMM,OAAOC,MAExC,KAAAglB,QAAU,KACvBtlB,KAAKulB,mBACLvlB,KAAKwlB,sBAGLxlB,KAAKylB,oBAAsBC,aAAY,KACnC1lB,KAAK2lB,gCACN,KACHC,YAAW,KACPC,cAAc7lB,KAAKylB,uBACpB,MAIU,KAAAE,4BAA8B,KAEvCG,QAAUA,OAAe,QAAKA,OAAe,OAA4B,2BACzED,cAAc7lB,KAAKylB,qBACnBzlB,KAAK+lB,eAAgB,IAIZ,KAAAR,iBAAmB,KAE5BO,QAAUA,OAAgB,SAAKA,OAAgB,QAAiB,gBAEhE9lB,KAAKqlB,WAAaS,OAAgB,QAAiB,eAInDA,OAAkB,WAAKA,OAAkB,UAAmB,kBAE5D9lB,KAAKw5B,SAAW1T,OAAO2T,UAAUC,iBAAmB,IAAI,GAAGtT,IAAMpmB,KAAKw5B,UAI7D,KAAAhU,oBAAsB,KACnC,MAAMzhB,EAA8B/D,KAAKC,MAAM8D,WAAa,GAG5D,GAAI+hB,QAAUA,OAAgB,QAAG,CAC7B,MAAM6T,EAAgB,CAClBC,oBAAqB71B,EAAU81B,mBAC/BC,uBAAwB/1B,EAAUg2B,sBAClCC,cAAej2B,EAAUk2B,kBACzBC,iBAAkBn2B,EAAUo2B,qBAC5BC,cAAer2B,EAAUs2B,cAI7Br4B,OAAOC,OAAO6jB,OAAgB,QAAG6T,KA5OrC35B,KAAKqlB,WAAasB,EAAAA,WAAWC,aAAaC,OAC1C7mB,KAAK+lB,eAAgB,EACrB/lB,KAAKgX,kBAAmBC,EAAAA,EAAAA,oBACpBjX,KAAKC,MAAMa,QAAQC,QAAQmW,kBAC3BlX,KAAKC,MAAMkX,aACXnX,KAAKC,MAAM0Q,WAEf3Q,KAAKw5B,QAAU,kBAGZhyB,oBACHxH,KAAKulB,mBACLvlB,KAAKslB,UAIFwB,qBAEC9mB,KAAK+lB,eAAiBD,QAAUA,OAAiB,UAAKA,OAAiB,SAAc,YAErFA,OAAiB,SAAc,aAIhCne,sBAAsBC,EAAwCC,GACjE,OAAI7H,KAAK8H,QAAUD,GAAa7H,KAAKC,MAAMgH,OAASW,EAAUX,KAM3D9E,SACH,MAAMjC,EAAwBF,KAAKC,MAAMC,QAAU,GAC7C6D,EAA8B/D,KAAKC,MAAM8D,WAAa,GAEtD3B,EAASC,EAAAA,EAAA,GACRrC,KAAKC,OAAK,IACbgM,UAAW,CACP8a,eAAgB/mB,KAAK+lB,eAEzBuU,OAAQ,CACJh4B,YAAatC,KAAKC,MAClBS,UAAW6B,GAAAA,CAAWvC,KAAKilB,gBAAiB/kB,EAAOQ,YAEvDumB,QAAS,CACLC,MAAO,CACH1kB,IAAKmgB,EAAAA,MACLP,QAAQ,GAEZ+E,UAAW,CACP3kB,IAAKygB,EAAAA,WAETza,KAAM5I,EAAAA,cAAC26B,EAAAA,EAA0B,CAAC75B,UAAWV,KAAKilB,kBAClDxa,QAAS7K,EAAAA,cAAC46B,EAAAA,EAA6B,CAAC95B,UAAWV,KAAKilB,gBAAiBxa,QAAS1G,EAAU2iB,kBAEhGY,mBAAoB,CAChBtjB,GAAI,MACJujB,MAAO,CAAEC,QAAS,SAEtBC,YAAa,CACTzjB,GAAIhE,KAAK+lB,cAAgB,MAAQ,KACjCrlB,UAAW,GAAGV,KAAKilB,8BAEvBwV,cAAe,CACX/5B,UAAW,GAAGV,KAAKilB,oCAEvByV,qBACI96B,EAAAA,cAACY,EAAAA,GAAawB,OAAAC,OAAA,CACVvB,UAAW,GAAGV,KAAKilB,oCACf/kB,EAAOm5B,cAAa,CACxB14B,UAAW,CAAEC,OAAQZ,KAAKo5B,0BAA2Bv4B,eAAgBb,KAAKC,MAAMa,QAAQC,YAGhG45B,mBAAoB,CAChBxS,aAAc,CACVznB,UAAW,GAAGV,KAAKilB,+CAEvBtb,MAAO,CACH3J,KAAKooB,aACDpoB,KAAKw5B,QACL,QACAz1B,EAAUulB,sBACVvlB,EAAU62B,sBACV56B,KAAKqlB,YAETrlB,KAAKooB,aAAa,WAAY,WAAYrkB,EAAU82B,oBAExDC,eACIl7B,EAAAA,cAACm7B,EAAAA,EAAmB,CAChB/2B,GAAG,iBACHtD,UAAW,GAAGV,KAAKilB,mCACnBzhB,KAAK,IACLyW,UAAWlW,EAAUi3B,8BACrBv6B,KAAMsD,EAAUk3B,yBAChBjkB,iBAAkBhX,KAAKgX,mBAG/BkkB,WAAYh7B,EAAOi5B,kBACfv5B,EAAAA,cAACY,EAAAA,GAA0B,CACvBE,UAAW,GAAGV,KAAKilB,sCACnBxkB,KAAMP,EAAOi5B,iBACbx4B,UAAW,CAAEC,OAAQZ,KAAKF,sBAAuBe,eAAgBb,KAAKC,MAAMa,QAAQC,WAG5FoJ,MAAOvK,EAAAA,cAACu7B,EAAAA,EAAoB,CAACz6B,UAAWV,KAAKilB,kBAC7CmW,aACIx7B,EAAAA,cAACy7B,EAAAA,EAAqB,CAClBr3B,GAAG,OACHtD,UAAW,GAAGV,KAAKilB,kCACnBhL,UAAWlW,EAAUu3B,qBACrB76B,KAAMsD,EAAUw3B,gBAChBvkB,iBAAkBhX,KAAKgX,oBAInCwkB,oBAAqB,CACjBC,eAAgB,CACZ/6B,UAAW,GAAGV,KAAKilB,oCAEvBtb,MAAO,CACH3J,KAAK07B,qBACD,mBACA33B,EAAU43B,mBACV53B,EAAU63B,wBACV17B,EAAO27B,cAEX77B,KAAK07B,qBACD,2BACA33B,EAAU+3B,oBACV/3B,EAAUg4B,yBACV77B,EAAO87B,iBAInBC,iBAAkB,CACdR,eAAgB,CACZ/6B,UAAW,GAAGV,KAAKilB,wCAEvBtb,MAAO,CACH3J,KAAKk8B,wBACD,wBACAn4B,EAAUo4B,cACVp4B,EAAUq4B,mBACVl8B,EAAOm8B,kCAInBC,cAAe,CACX57B,UAAW,GAAGV,KAAKilB,oCAEvBsX,qBACI38B,EAAAA,cAACY,EAAAA,GAAawB,OAAAC,OAAA,CACVvB,UAAW,GAAGV,KAAKilB,oCACf/kB,EAAOq5B,cAAa,CACxB54B,UAAW,CAAEC,OAAQZ,KAAKs5B,0BAA2Bz4B,eAAgBb,KAAKC,MAAMa,QAAQC,YAGhGy7B,kBACI58B,EAAAA,cAAC68B,EAAAA,EAA0B,CACvB/7B,UAAW,GAAGV,KAAKilB,uCACnBpb,YAAa9F,EAAU24B,wBAG/BC,WACI/8B,EAAAA,cAACm7B,EAAAA,EAAmB,CAChB/2B,GAAG,gBACHR,KAAK,IACL9C,UAAW,GAAGV,KAAKilB,wCACnBhL,UAAWlW,EAAU64B,sBACrBn8B,KAAMsD,EAAU84B,iBAChB7lB,iBAAkBhX,KAAKgX,qBAKnC,OAAOhX,KAAKC,MAAMyC,WAAWN,GAiEzBgmB,aAAapkB,EAAYkF,EAAcqgB,EAAmBtP,EAAoBwP,GAClF,MAAM/oB,EAAY,GAAGV,KAAKilB,gCAC1B,MAAO,CACHyE,QAAS,CACLhpB,UAAW6B,GAAAA,CAAW7B,EAAW,GAAGA,KAAasD,IAAM,aAAc,cAEzEgB,IAAKhB,EACL2H,MACI/L,EAAAA,cAACk9B,EAAAA,EAAoB96B,OAAAC,OAAA,GACb,CACA+B,GAAAA,EACA4lB,MAAO5lB,EACPtD,UAAAA,EACAD,KAAM8oB,KAIlBpf,MACIvK,EAAAA,cAACu7B,EAAAA,EAAoBn5B,OAAAC,OAAA,GACb,CACAvB,UAAWV,KAAKilB,gBAChB/b,KAAM,UAIlB2C,MACIjM,EAAAA,cAACm9B,EAAAA,EAAoB/6B,OAAAC,OAAA,GACb,CACA+B,GAAAA,EACAkF,KAAAA,EACAugB,QAAAA,EACA/oB,UAAAA,EACAuZ,UAAAA,MAOZyhB,qBAAqB13B,EAAYvD,EAAcwZ,EAAmB+iB,GACtE,MAAO,CACHh4B,IAAKhB,EACLimB,OAAQ,CACJjmB,GAAAA,EACAxB,IAAK,SACL9B,UAAW6B,GAAAA,CACP,GAAGvC,KAAKilB,kCACR,GAAGjlB,KAAKilB,mCAAmCjhB,IAC3C,gBACA,WAEJ,aAAciW,GAElB9Z,MAAOH,KAAKi9B,mBAAmBD,GAC/Bv8B,KAAMb,EAAAA,cAACs9B,EAAAA,EAAmB,CAACx8B,UAAW,GAAGV,KAAKilB,uCAAwCxkB,KAAMA,KAI5Fy7B,wBACJl4B,EACAvD,EACAwZ,EACAkjB,GAEA,OAAIA,EACO,CACHn4B,IAAKhB,EACLimB,OAAQ,CACJjmB,GAAAA,EACAxB,IAAK,SACL9B,UAAW6B,GAAAA,CACP,GAAGvC,KAAKilB,kCACR,GAAGjlB,KAAKilB,mCAAmCjhB,IAC3C,gBACA,WAEJ,aAAciW,GAElBxZ,KAAMb,EAAAA,cAACs9B,EAAAA,EAAmB,CAACx8B,UAAW,GAAGV,KAAKilB,uCAAwCxkB,KAAMA,KAG7F,KAGHw8B,mBAAmBD,GACvB,GAAIA,EAAW,CACX,MAAM97B,EAAa,CACfC,aAAcnB,KAAKC,MAAMa,QAAQC,QAAQI,cAAgB,GACzDC,cAAe47B,GAAaA,EAAU57B,eAEpCg8B,EAAmB,GAAGp9B,KAAKilB,0CACjC,OACIrlB,EAAAA,cAAA,OAAKc,UAAW08B,GACZx9B,EAAAA,cAACY,EAAAA,GAAcwB,OAAAC,OAAA,CACXvB,UAAW,GAAG08B,YACVJ,EACA97B,EAAU,CACdL,eAAgBb,KAAKC,MAAMa,QAAQC,QACnCJ,UAAW,CAAEqE,IAAKg4B,GAAa,GAAIn8B,eAAgBb,KAAKC,MAAMa,QAAQC,SACtEs8B,uBAAqB,MAKrC,OAAO,QAnWCp1B,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,+BAECD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,kCAECD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,oCATTqqB,GAAMtqB,EAAAA,EAAAA,IAAA,CADX6hB,EAAAA,IACKyI,GA4WN,iGC5bA,MAsDM+K,EAA0CnyB,IAAwC,IAAvC,MAAE+b,EAAK,UAAEC,EAAS,KAAE3e,EAAI,QAAEiC,GAASU,EAChF,OACIvL,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKilB,GACNtnB,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKklB,GACL3e,EACAiC,KA6CjB,EAvC+CxK,IAC3C,MAAM,OACFq6B,EAAM,UACNruB,EAAS,QACTgb,EAAO,mBACPK,EAAkB,YAClBG,EAAW,cACXgT,EAAa,cACb6B,EAAa,qBACb5B,EAAoB,mBACpBC,EAAkB,oBAClBa,EAAmB,qBACnBe,EAAoB,iBACpBN,EAAgB,kBAChBO,EAAiB,WACjBG,GACA18B,EAEJ,OACIL,EAAAA,cAACyM,EAAAA,OAAMrK,OAAAC,OAAA,GAAKq4B,GACPruB,EAAU8a,eAAiBnnB,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKqlB,IACrCrb,EAAU8a,eAAiBnnB,EAAAA,cAAC09B,EAAat7B,OAAAC,OAAA,GAAKglB,IAC/CrnB,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKwlB,GACN7nB,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKw4B,GACLC,EAzF+Br3B,CAAAA,IAA6E,IAA5E,aAAE8kB,EAAY,MAAExe,EAAK,eAAEmxB,EAAc,WAAEI,EAAU,MAAE/wB,EAAK,aAAEixB,GAAc/3B,EACzH,OACIzD,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKkmB,GACLxe,GACGA,EAAM9E,KAAK+E,GAEHhK,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,CAAC+C,IAAK4E,EAAK5E,KAAS4E,EAAK8f,SACzB9f,EAAK+B,MACL/B,EAAKO,MACLP,EAAKiC,SAIrBivB,EACAI,EACA/wB,EACAixB,IA0EQlR,CAAayQ,GArEoB5wB,CAAAA,IAA8B,IAA7B,eAAE0xB,EAAc,MAAE9xB,GAAOI,EAC5E,OACInK,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKw5B,GACL9xB,GACGA,EAAM9E,KAAK+E,GAEHhK,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,CAAC+C,IAAK4E,EAAK5E,KAAS4E,EAAKqgB,QACzBrgB,EAAKzJ,MACLyJ,EAAKnJ,UA8Db88B,CAAc/B,GAtDa7wB,CAAAA,IAA8B,IAA7B,eAAE8wB,EAAc,MAAE9xB,GAAOgB,EACtE,OACI/K,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKw5B,GACL9xB,GACGA,EAAM9E,KAAK+E,GAEHA,GACIhK,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,CAAC+C,IAAK4E,EAAK5E,KAAS4E,EAAKqgB,QACzBrgB,EAAKnJ,UA+CjB+8B,CAAWvB,IAEhBr8B,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKq6B,GACLC,EACAC,EACAG,0ECnGrB,MAMA,EAN8Ct5B,IAAA,IAAC,GAAEW,EAAE,UAAEtD,EAAS,KAAED,EAAI,UAAEwZ,EAAS,SAAEsJ,EAAQ,QAAE/M,GAASnT,EAAA,OAChGzD,EAAAA,cAAC2D,EAAAA,OAAM,CAACS,GAAIA,EAAItD,UAAWA,EAAS,aAAcuZ,EAAWsJ,SAAUA,EAAU/M,QAASA,GACrF/V,gFCJT,MAUA,EAViD4C,IAA8C,IAA7C,GAAEW,EAAE,UAAEtD,EAAS,KAAEwI,EAAO,OAAM,QAAEuB,GAASpH,EACvF,MAAM8mB,EAAiB,GAAGzpB,MAAcwI,UAExC,OACItJ,EAAAA,cAAA,OAAKoE,GAAIA,EAAItD,UAAW6B,GAAAA,CAAW4nB,EAAgB,QAAS,GAAGjhB,UAAciR,KAAK,QAAO,YAAW,YAAW,cAAa,QACxHva,EAAAA,cAAA,KAAGc,UAAW,GAAGypB,UAAwB1f,qECQrD,MAAM2f,EAAgBZ,IAClB,GAAIA,EAAW,CACX,MAAMa,EAAkBC,OAAOC,SAASf,EAAW,IACnD,IAAKgB,MAAMH,GACP,OAAOA,IAoBnB,EAbiDhnB,IAAA,IAAC,GAAEW,EAAE,KAAEkF,EAAI,MAAE5I,EAAK,QAAEmpB,EAAO,UAAE/oB,EAAS,UAAE8oB,EAAS,SAAEpG,GAAU/f,EAAA,OAC1GzD,EAAAA,cAAA,SACIoE,GAAIA,EACJkF,KAAMA,EACN5I,MAAOA,EACPI,UAAW,GAAGA,WAAmBA,KAAasD,IAC9CylB,QAAqB,KAAZA,EAAiBA,OAAUpjB,EAAS,gBAC/B,OACdmjB,UAAWY,EAAaZ,GACxBpG,SAAUA,+DClClB,MAMA,EAN4C/f,IAAA,IAAC,GAAEW,EAAE,MAAE4lB,EAAK,UAAElpB,EAAS,KAAED,GAAM4C,EAAA,OACvEzD,EAAAA,cAAA,SAAOoE,GAAI,GAAGA,UAAYtD,UAAW,GAAGA,UAAmBwiB,QAAS0G,GAC/DnpB,8DCLT,MAEA,EAFwD4C,IAAA,IAAC,UAAE3C,GAAW2C,EAAA,OAAKzD,EAAAA,cAAA,OAAKc,UAAW,GAAGA,+ECC9F,MAIA,EAJ8D2C,IAAA,IAAC,UAAE3C,EAAS,QAAE+J,GAASpH,EAAA,OACjFzD,EAAAA,cAAA,OAAKc,UAAW,GAAGA,sBAA+B+J,gFCEtD,MAUA,EAVgDpH,IAA8C,IAA7C,GAAEW,EAAE,UAAEtD,EAAS,KAAEwI,EAAO,OAAM,QAAEuB,GAASpH,EACtF,MAAMo6B,EAAmB,GAAG/8B,MAAcwI,YAE1C,OACItJ,EAAAA,cAAA,QAAMoE,GAAIA,EAAItD,UAAW6B,GAAAA,CAAWk7B,EAAkB,GAAGv0B,UAAciR,KAAK,QAAO,YAAW,YAAW,cAAa,QAClHva,EAAAA,cAAA,KAAGc,UAAW,GAAG+8B,UAA0BhzB,8yBCiFvD,IAAMgoB,EAAN,cAAqB7yB,EAAAA,UAsBjBC,YAAYI,GACR0D,MAAM1D,GAlBO,KAAAglB,gBAA0B,aAmGpC,KAAArhB,oBAAuB7D,GAA0CC,KAAKC,MAAMC,OAAO2D,QAAQpD,KAAOV,EAAMM,OAAOC,MAO/G,KAAAR,sBAAyBC,GAA0CC,KAAKC,MAAMC,OAAOg7B,WAAan7B,EAAMM,OAAOC,MAG/G,KAAAglB,QAAU,KACbtlB,KAAKulB,mBACLvlB,KAAKwlB,sBAGLxlB,KAAKylB,oBAAsBC,aAAY,KACnC1lB,KAAK2lB,gCACN,KACHC,YAAW,KACPC,cAAc7lB,KAAKylB,uBACpB,MAIU,KAAAE,4BAA8B,KAEvCG,QAAUA,OAAe,QAAKA,OAAe,OAA4B,2BACzED,cAAc7lB,KAAKylB,qBACnBzlB,KAAK+lB,eAAgB,IAIZ,KAAAR,iBAAmB,KAChC,MAAMxhB,EAA8B/D,KAAKC,MAAM8D,WAAa,GAGxD+hB,OAAkB,WAAKA,OAAkB,UAAmB,iBAE5DA,OAAkB,UAAmB,gBAAEjhB,KAClCohB,IACG,OAAQA,EAAIG,GAAG/X,eACX,IAAK,2BACDrO,KAAK09B,6BAA8B,EACnC19B,KAAK29B,gBAAkB,KACvB,MAEJ,IAAK,QACD39B,KAAKqlB,WAAaY,EAAII,IACtBrmB,KAAK09B,4BAA8BzX,EAAI2X,OACvC59B,KAAK29B,gBAAkB,KACvB,MAEJ,IAAK,+BACD39B,KAAK69B,iCAAkC,EACvC,MAEJ,IAAK,YACD79B,KAAK69B,gCAAkC5X,EAAI2X,OAC3C,MAEJ,IAAK,6BACD59B,KAAK09B,6BAA8B,EACnC,MAEJ,IAAK,UACD19B,KAAK89B,8BAAgC7X,EAAI2X,OACzC,MAEJ,IAAK,cACD59B,KAAKm4B,iBAAmBlS,EAAII,IAC5B,MAEJ,IAAK,kBACDrmB,KAAKo4B,qBAAuBnS,EAAII,IAMxC,OAAQJ,EAAI8X,cAAc1vB,eACtB,IAAK,WACD4X,EAAIK,SAAWviB,EAAUo2B,qBACzB,MAEJ,IAAK,WACDlU,EAAIK,SAAWviB,EAAUiiB,8BAUhC,KAAAR,oBAAsB,KACnC,MAAMzhB,EAA8B/D,KAAKC,MAAM8D,WAAa,GAG5D,GAAI+hB,QAAUA,OAAgB,QAAG,CAC7B,MAAM6T,EAAgB,CAClBpT,eAAgBxiB,EAAUyiB,2BAI9BxkB,OAAOC,OAAO6jB,OAAgB,QAAG6T,KAIxB,KAAAqE,SAAW,CAACC,EAAiBC,IACtCl+B,KAAK29B,gBAC2B,OAAzB39B,KAAK29B,gBAA2BM,EAAUC,EAE9C,GAhMPl+B,KAAKqlB,WAAasB,EAAAA,WAAWC,aAAaC,OAC1C7mB,KAAKm4B,iBAAmBE,EAAAA,cAAczR,aAAaC,OACnD7mB,KAAKo4B,qBAAuBC,EAAAA,cAAczR,aAAaC,OACvD7mB,KAAK09B,6BAA8B,EACnC19B,KAAK69B,iCAAkC,EACvC79B,KAAK89B,+BAAgC,EACrC99B,KAAK+lB,eAAgB,EACrB/lB,KAAK29B,gBAAkB,GAGpBn2B,oBACHxH,KAAKslB,UAIFwB,qBAEC9mB,KAAK+lB,eAAiBD,QAAUA,OAAiB,UAAKA,OAAiB,SAAc,YAErFA,OAAiB,SAAc,aAIhCne,sBAAsBC,EAAwCC,GACjE,OAAI7H,KAAK8H,QAAUD,GAAa7H,KAAKC,MAAMgH,OAASW,EAAUX,KAM3D9E,SACH,MAAM,OAAEjC,EAAM,UAAE6D,GAAc/D,KAAKC,MAE7BmC,EAASC,EAAAA,EAAA,GACRrC,KAAKC,OAAK,IACbgM,UAAW,CACP8a,eAAgB/mB,KAAK+lB,eAEzBoY,OAAQ,CACJ77B,YAAatC,KAAKC,MAClBS,UAAW6B,GAAAA,CAAWvC,KAAKilB,gBAAiB/kB,EAAOQ,YAEvDumB,QAAS,CACLC,MAAO,CACH1kB,IAAKmgB,EAAAA,MACLP,QAAQ,GAEZ+E,UAAW,CACP3kB,IAAKygB,EAAAA,WAETza,KAAM5I,EAAAA,cAACw+B,EAAAA,EAA0B,CAAC19B,UAAWV,KAAKilB,kBAClDxa,QAAS7K,EAAAA,cAACy+B,EAAAA,EAA6B,CAAC39B,UAAWV,KAAKilB,gBAAiBxa,QAAS1G,EAAU2iB,kBAEhGY,mBAAoB,CAChBtjB,GAAI,MACJujB,MAAO,CAAEC,QAAS,SAEtBC,YAAa,CACTzjB,GAAIhE,KAAK+lB,cAAgB,MAAQ,KACjCrlB,UAAW,GAAGV,KAAKilB,8BAEvBphB,QACIjE,EAAAA,cAACY,EAAAA,GAAawB,OAAAC,OAAA,CACVvB,UAAW,GAAGV,KAAKilB,4BACf/kB,EAAO2D,QAAO,CAClBlD,UAAW,CAAEC,OAAQZ,KAAK4D,oBAAqB/C,eAAgBb,KAAKC,MAAMa,QAAQC,YAG1Fu9B,mBAAoBt+B,KAAK2nB,wBAG7B,OAAO3nB,KAAKC,MAAMyC,WAAWN,GA4HzBulB,sBACJ,MAAM,OAAEznB,EAAM,UAAE6D,GAAc/D,KAAKC,MACnC,MAAO,CACHkoB,aAAc,CACVnkB,GAAI,gBACJtD,UAAW,GAAGV,KAAKilB,uCAEvBtb,MAAO,CACH3J,KAAKooB,aAAa,YAAa,OAAQrkB,EAAUskB,mBAAoBtkB,EAAUukB,oBAC/EtoB,KAAKooB,aAAa,UAAW,OAAQrkB,EAAUwkB,kBAAmBxkB,EAAUykB,mBAC5ExoB,KAAKooB,aAAa,QAAS,QAASrkB,EAAUulB,2BAAuBjjB,EAAWrG,KAAKqlB,YACrFrlB,KAAKooB,aAAa,cAAe,WAAYrkB,EAAU82B,uBAAmBx0B,EAAWrG,KAAKm4B,kBAC1Fn4B,KAAKooB,aAAa,kBAAmB,WAAYrkB,EAAU40B,8BAA0BtyB,EAAWrG,KAAKo4B,uBAEzGmG,kBAAmB,CACfC,WAAYx+B,KAAK09B,4BACjBrd,MAAOrgB,KAAKooB,aACRpoB,KAAKg+B,SAAS,kBAAmB,yBACjC,OACAj6B,EAAU06B,+BACVp4B,OACAA,EACA,oBAEJq4B,2BAA4B,CACxB16B,GAAI,2BACJtD,UAAW,GAAGV,KAAKilB,4EAEvB0Z,cAAe,CACXj+B,UAAW,GAAGV,KAAKilB,+CAA+CjlB,KAAKg+B,SAAS,SAAU,MAC1F,gBAAiB,SAErBlV,QAAS,CACLlpB,EAAAA,cAACg/B,EAAAA,EAAqB,CAClB55B,IAAI,qBACJhB,GAAIhE,KAAKg+B,SAAS,qBAAsB,0CACxCt9B,UAAW,GAAGV,KAAKilB,8CACfjlB,KAAKilB,6CACqBjlB,KAAKg+B,SAAS,aAAc,iBAC1D/jB,UAAWlW,EAAU86B,wBACrBp+B,KAAMsD,EAAU+6B,qBAEpBl/B,EAAAA,cAACg/B,EAAAA,EAAqB,CAClB55B,IAAI,uBACJhB,GAAIhE,KAAKg+B,SAAS,uBAAwB,4CAC1Ct9B,UAAW,GAAGV,KAAKilB,8CACfjlB,KAAKilB,+CACuBjlB,KAAKg+B,SAAS,eAAgB,gBAC9D/jB,UAAWlW,EAAUg7B,0BACrBt+B,KAAMsD,EAAUi7B,uBAEpBp/B,EAAAA,cAACg/B,EAAAA,EAAqB,CAClB55B,IAAI,uBACJhB,GAAIhE,KAAKg+B,SAAS,uBAAwB,8CAC1Ct9B,UAAW,GAAGV,KAAKilB,8CACfjlB,KAAKilB,+CACuBjlB,KAAKg+B,SAAS,aAAc,iBAC5D/jB,UAAWlW,EAAUk7B,0BACrBx+B,KAAMsD,EAAUm7B,uBAEpBt/B,EAAAA,cAACg/B,EAAAA,EAAqB,CAClB55B,IAAI,qBACJhB,GAAIhE,KAAKg+B,SAAS,qBAAsB,8CACxCt9B,UAAW,GAAGV,KAAKilB,8CACfjlB,KAAKilB,6CACqBjlB,KAAKg+B,SAAS,aAAc,kBAC1D/jB,UAAWlW,EAAUo7B,2BACrB1+B,KAAMsD,EAAUq7B,yBAGxBC,eAAgB,CACZz/B,EAAAA,cAAC0/B,EAAAA,EAAsB,CACnBt6B,IAAI,aACJhB,GAAIhE,KAAKg+B,SAAS,aAAc,yCAChCt9B,UAAWV,KAAKilB,gBAChBxa,QAAS1G,EAAUw7B,8BAEvB3/B,EAAAA,cAAC0/B,EAAAA,EAAsB,CACnBt6B,IAAI,gBACJhB,GAAIhE,KAAKg+B,SAAS,gBAAiB,4CACnCt9B,UAAWV,KAAKilB,gBAChBxa,QAAS1G,EAAUy7B,+BAG3B/W,aAAc,CACV7oB,EAAAA,cAAC6/B,EAAAA,EAAoB,CACjBz6B,IAAI,yCACJhB,GAAG,yCACHtD,UAAWV,KAAKilB,kBAEpBrlB,EAAAA,cAAC6/B,EAAAA,EAAoB,CACjBz6B,IAAI,mBACJhB,GAAG,mBACHtD,UAAWV,KAAKilB,gBAChBxa,QAAS1G,EAAU27B,aAEvB9/B,EAAAA,cAAC6/B,EAAAA,EAAoB,CACjBz6B,IAAI,sBACJhB,GAAG,sBACHtD,UAAWV,KAAKilB,gBAChBxa,QAAS1G,EAAU47B,uBAEvB//B,EAAAA,cAAC6/B,EAAAA,EAAoB,CACjBz6B,IAAI,uBACJhB,GAAG,uBACHtD,UAAWV,KAAKilB,gBAChBxa,QAAS1G,EAAU67B,iBAEvBhgC,EAAAA,cAAC6/B,EAAAA,EAAoB,CACjBz6B,IAAI,0BACJhB,GAAG,0BACHtD,UAAWV,KAAKilB,gBAChBxa,QAAS1G,EAAU87B,mBAEvBjgC,EAAAA,cAAC6/B,EAAAA,EAAoB,CACjBz6B,IAAI,oBACJhB,GAAG,oBACHtD,UAAWV,KAAKilB,gBAChBxa,QAAS1G,EAAU+7B,cAEvBlgC,EAAAA,cAAC6/B,EAAAA,EAAoB,CACjBz6B,IAAI,yBACJhB,GAAG,yBACHtD,UAAWV,KAAKilB,gBAChBxa,QAAS1G,EAAUk2B,sBAI/B8F,sBAAuB,CACnBvB,WAAYx+B,KAAK69B,gCACjB1Y,UAAWnlB,KAAKooB,aACZpoB,KAAKg+B,SAAS,sBAAuB,6BACrC,OACAj6B,EAAU06B,+BACVp4B,OACAA,EACA,oBAEJq4B,2BAA4B,CACxB16B,GAAI,+BACJtD,UAAW,GAAGV,KAAKilB,4EAEvBwD,aAAc,CACV7oB,EAAAA,cAAC6/B,EAAAA,EAAoB,CACjBz6B,IAAI,uBACJhB,GAAG,uBACHtD,UAAWV,KAAKilB,gBAChBxa,QAAS1G,EAAU4kB,qCAI/BqX,oBAAqB,CACjBxB,WAAYx+B,KAAK89B,8BACjB1Y,QAASplB,KAAKooB,aACVpoB,KAAKg+B,SAAS,oBAAqB,2BACnC,OACAj6B,EAAU06B,+BACVp4B,OACAA,EACA,oBAEJq4B,2BAA4B,CACxB16B,GAAI,6BACJtD,UAAW,GAAGV,KAAKilB,4EAEvBwD,aAAc,CACV7oB,EAAAA,cAAC6/B,EAAAA,EAAoB,CACjBz6B,IAAI,uBACJhB,GAAG,uBACHtD,UAAWV,KAAKilB,gBAChBxa,QAAS1G,EAAU4kB,qCAI/BG,QAAS,CACLlpB,EAAAA,cAACg/B,EAAAA,EAAqB,CAClB55B,IAAI,WACJhB,GAAG,WACHtD,UAAW,GAAGV,KAAKilB,iCACnBhL,UAAWlW,EAAUk8B,sBACrBx/B,KAAMsD,EAAU84B,mBAEpBj9B,EAAAA,cAACg/B,EAAAA,EAAqB,CAClB55B,IAAI,SACJhB,GAAG,SACHtD,UAAW,GAAGV,KAAKilB,iCACnBhL,UAAWlW,EAAUm8B,sBACrBz/B,KAAMsD,EAAUmlB,oBAGxBT,aAAc,CACV7oB,EAAAA,cAAC6/B,EAAAA,EAAoB,CACjBz6B,IAAI,wBACJhB,GAAG,wBACHtD,UAAWV,KAAKilB,gBAChBxa,QAAS1G,EAAU80B,6BAEvBj5B,EAAAA,cAAC6/B,EAAAA,EAAoB,CACjBz6B,IAAI,uBACJhB,GAAG,uBACHtD,UAAWV,KAAKilB,gBAChBxa,QAAS1G,EAAU4kB,mCAEvB/oB,EAAAA,cAAC6/B,EAAAA,EAAoB,CACjBz6B,IAAI,iBACJhB,GAAG,iBACHtD,UAAWV,KAAKilB,gBAChBxa,QAAS1G,EAAU6kB,sBAEvBhpB,EAAAA,cAAC6/B,EAAAA,EAAoB,CACjBz6B,IAAI,+BACJhB,GAAG,+BACHtD,UAAWV,KAAKilB,mBAGxBiW,WAAYh7B,EAAOg7B,YACft7B,EAAAA,cAACY,EAAAA,GAA0B,CACvBE,UAAW,GAAGV,KAAKilB,sCACnBxkB,KAAMP,EAAOg7B,WACbv6B,UAAW,CAAEC,OAAQZ,KAAKF,sBAAuBe,eAAgBb,KAAKC,MAAMa,QAAQC,YAM5FqnB,aACJpkB,EACAkF,EACAqgB,EACAC,EACAC,EACA0W,GAEA,MAAMz/B,EAAY,GAAGV,KAAKilB,gCAC1B,MAAO,CACHyE,QAAS,CACLhpB,UAAW6B,GAAAA,CAAW7B,EAAW,GAAGA,KAAasD,IAAM,aAAc,YAAam8B,IAEtFn7B,IAAKhB,EACL2H,MACI/L,EAAAA,cAACwgC,EAAAA,EAAoBp+B,OAAAC,OAAA,GACb,CACA+B,GAAAA,EACA4lB,MAAO5lB,EACPtD,UAAAA,EACAD,KAAM8oB,KAIlBd,aACI7oB,EAAAA,cAAC6/B,EAAAA,EAAoBz9B,OAAAC,OAAA,GACb,CACAvB,UAAWV,KAAKilB,gBAChB/b,KAAM,UAIlB2C,MACIjM,EAAAA,cAACygC,EAAAA,EAAoBr+B,OAAAC,OAAA,GACb,CACA+B,GAAAA,EACAkF,KAAAA,EACAsgB,UAAAA,EACAC,QAAAA,EACA/oB,UAAAA,SAneRuH,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,uDAECD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,qDAICD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,kCAECD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,wCAECD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,4CAECD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,mDAECD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,qCAECD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,sCAjBTuqB,GAAMxqB,EAAAA,EAAAA,IAAA,CADX6hB,EAAAA,IACK2I,GA4eN,iGC/jBA,MAAM6N,EAAoCj9B,IAA4C,IAA3C,QAAEqmB,EAAO,MAAE/d,EAAK,aAAE8c,EAAY,MAAE5c,GAAOxI,EAC9E,OACIzD,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKynB,GACL/d,EACA8c,EACA5c,IAKP00B,EAA8Dx2B,IAAoE,IAAnE,MAAEsW,EAAK,cAAEse,EAAa,QAAE7V,EAAO,eAAEuW,EAAc,aAAE5W,GAAc1e,EAChI,OACInK,EAAAA,cAAAA,EAAAA,SAAA,KACKy/B,GACGA,EAAex6B,KAAK4F,GACT7K,EAAAA,cAAAA,EAAAA,SAAA,KAAG6K,KAElB7K,EAAAA,cAAC0gC,EAAUt+B,OAAAC,OAAA,GAAKoe,IACfoI,GACGA,EAAa5jB,KAAK4F,GACP7K,EAAAA,cAAAA,EAAAA,SAAA,KAAG6K,KAElB7K,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAK08B,GACL7V,GACGA,EAAQjkB,KAAKolB,GACFrqB,EAAAA,cAAAA,EAAAA,SAAA,KAAGqqB,QAc5BuW,EAA+E71B,IAAgC,IAA/B,UAAEwa,EAAS,aAAEsD,GAAc9d,EAC7G,OACI/K,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAAC0gC,EAAUt+B,OAAAC,OAAA,GAAKkjB,IACfsD,EAAa5jB,KAAK4F,GACR7K,EAAAA,cAAAA,EAAAA,SAAA,KAAG6K,OAapBg2B,EAA2Et1B,IAA8B,IAA7B,QAAEia,EAAO,aAAEqD,GAActd,EACvG,OACIvL,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAAC0gC,EAAUt+B,OAAAC,OAAA,GAAKmjB,IACfqD,EAAa5jB,KAAK4F,GACR7K,EAAAA,cAAAA,EAAAA,SAAA,KAAG6K,OA4DpBi2B,EAA0Cjd,IAAwC,IAAvC,MAAEyD,EAAK,UAAEC,EAAS,KAAE3e,EAAI,QAAEiC,GAASgZ,EAChF,OACI7jB,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKilB,GACNtnB,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKklB,GACL3e,EACAiC,KAqBjB,EAf+CxK,IAC3C,MAAM,OAAEk+B,EAAM,UAAElyB,EAAS,QAAEgb,EAAO,mBAAEK,EAAkB,YAAEG,EAAW,QAAE5jB,EAAO,mBAAEy6B,GAAuBr+B,EAErG,OACIL,EAAAA,cAACyM,EAAAA,OAAMrK,OAAAC,OAAA,GAAKk8B,GACPlyB,EAAU8a,eAAiBnnB,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKqlB,IACrCrb,EAAU8a,eAAiBnnB,EAAAA,cAAC8gC,EAAa1+B,OAAAC,OAAA,GAAKglB,IAC/CrnB,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKwlB,GACL5jB,EAzEmC2f,CAAAA,IAS/C,IATgD,aACjD2E,EAAY,MACZxe,EAAK,kBACL40B,EAAiB,sBACjBwB,EAAqB,oBACrBC,EAAmB,QACnBlX,EAAO,aACPL,EAAY,WACZyS,GACH1X,EACG,OACI5jB,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKkmB,GACLxe,GACGA,EAAM9E,KAAK+E,GACU,UAAbA,EAAK5E,KAAmBu5B,EAAkBC,WAEtC5+B,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,CAAC+C,IAAK4E,EAAK5E,KAASu5B,EAAkBG,4BACvC9+B,EAAAA,cAAC0gC,EAAUt+B,OAAAC,OAAA,GAAK2H,IAChBhK,EAAAA,cAAC2gC,EAAuBv+B,OAAAC,OAAA,GAAKs8B,KAIxB,cAAb30B,EAAK5E,KAAuB+6B,EAAsBvB,WAE9C5+B,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,CAAC+C,IAAK4E,EAAK5E,KAAS+6B,EAAsBrB,4BAC3C9+B,EAAAA,cAAC0gC,EAAUt+B,OAAAC,OAAA,GAAK2H,IAChBhK,EAAAA,cAAC4gC,EAAoCx+B,OAAAC,OAAA,GAAK89B,KAIrC,YAAbn2B,EAAK5E,KAAqBg7B,EAAoBxB,WAE1C5+B,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,CAAC+C,IAAK4E,EAAK5E,KAASg7B,EAAoBtB,4BACzC9+B,EAAAA,cAAC0gC,EAAUt+B,OAAAC,OAAA,GAAK2H,IAChBhK,EAAAA,cAAC6gC,EAAkCz+B,OAAAC,OAAA,GAAK+9B,KAK7CpgC,EAAAA,cAAC0gC,EAAUt+B,OAAAC,OAAA,GAAK2H,MAE9B6e,GACGA,EAAa5jB,KAAI,CAACsF,EAAwBpF,IAC/BnF,EAAAA,cAACA,EAAAA,SAAc,CAACoF,IAAKD,GAAQoF,KAE3C2e,GACGA,EAAQjkB,KAAI,CAAColB,EAAyBllB,IAC3BnF,EAAAA,cAACA,EAAAA,SAAc,CAACoF,IAAKD,GAAQklB,KAE3CiR,IAyBIhR,CAAaoU,sJC9IvB,MAAMqC,EAAwBt9B,IAA2E,IAA1E,KAAE5C,EAAI,UAAEC,EAAS,KAAE8C,EAAI,UAAEyW,EAAS,MAAElV,EAAK,QAAE67B,EAAO,iBAAE5pB,GAAkB3T,EACxG,MAAMoW,GAAUC,EAAAA,EAAAA,kBAAiB,QAAS1C,EAAkB,GAAI,IAE1DxN,OAAoBnD,IAAT5F,EAAqBA,EAAO,GAC7CgZ,EAAQG,cAAcC,MAAQrQ,EAG9B,MAAMq3B,GAAY9mB,EAAAA,EAAAA,wBAAuB/C,EAAkByC,GAE3D,OACI7Z,EAAAA,cAAA,IAAAoC,OAAAC,OAAA,GACQ4+B,EAAS,CACbngC,UAAWA,EACX8C,KAAMA,EAAI,aACEyW,EACZzD,SAASsqB,EAAAA,EAAAA,kBAAiB9pB,EAAkByC,EAASjQ,IAChDo3B,GAAW,CAAE,iBAAiB,IAEnChhC,EAAAA,cAAA,QAAMqT,SAAS,QAAQzJ,GACvB5J,EAAAA,cAAA,QAAMqT,SAAS,WAAWqE,QAASvS,MC1BlCg8B,EAAkC19B,IAAA,IAAC,UAAEF,GAAWE,EAAA,OACzDzD,EAAAA,cAAA,sBAAkB,QACb,IACAuD,EACA,2kBCmBT,MAAM69B,UAAmBphC,EAAAA,cAAzBC,cAAA,oBACqB,KAAAohC,UAAgCjhC,KAAKC,MAAMa,QAAQC,QAAQmgC,UAAUC,SAErE,KAAAnqB,kBAAsCC,EAAAA,EAAAA,oBACnDjX,KAAKC,MAAMa,QAAQC,QAAQmW,kBAC3BlX,KAAKC,MAAMkX,aACXnX,KAAKC,MAAM0Q,WA8DE,KAAAywB,aAAe,KAC5B,MAAM,KAAEC,GAASrhC,KAAKC,MAAMC,OAC5B,OAAKmhC,GAASA,EAAKr4B,SAAYq4B,EAAKr4B,QAAQC,eAKxCrJ,EAAAA,cAAC+gC,EAAI,CACDlgC,KAAM4gC,EAAK73B,SACXyQ,UAAWonB,EAAKpnB,WAAaonB,EAAK73B,SAClChG,KAAM69B,EAAKr4B,SAAWq4B,EAAKr4B,QAAQC,eACnClE,MAAM,IACNrE,UAAU,qBACVsW,iBAAkBhX,KAAKgX,oBAV3BhX,KAAKC,MAAMa,QAAQ6P,UAAUxG,MAAM,0DAC5B,OAcE,KAAAm3B,0BAA6BC,IAC1C,MAAM,MAAEh5B,GAAUvI,KAAKC,MAAMC,OAE7B,IAAKqI,GAA0B,IAAjBA,EAAMhE,OAEhB,OADAvE,KAAKC,MAAMa,QAAQ6P,UAAUxG,MAAM,wDAC5B,KAGX,OAAO5B,EAAM1D,KAAI,CAACvE,EAAmByE,KACjCw8B,IACA,MAAMC,EAAWz8B,EACjB,OAAOA,IAAUwD,EAAMhE,OAJI,EAKvB3E,EAAAA,cAAC+gC,EAAI,CACD37B,IAAKD,EACLtE,KAAMH,EAAMkJ,SACZyQ,UAAW3Z,EAAM2Z,WAAa3Z,EAAMkJ,SACpChG,KAAMlD,EAAM0I,SAAW1I,EAAM0I,QAAQC,eACrClE,MAAO,CAAEw8B,aAAAA,GAAep8B,WACxBzE,UAAU,qBACVsW,iBAAkBhX,KAAKgX,mBAG3BpX,EAAAA,cAAA,OAAKoF,IAAKw8B,EAAU9gC,UAAU,iDACzBJ,EAAMkJ,cAMN,KAAAi4B,sBAAyBF,IACtC,MAAM,KAAEt6B,GAASjH,KAAKC,MAChByhC,EAAoBz6B,EAAKy6B,kBAAkBt6B,OACjD,OAAKs6B,EAIEA,EAAkB78B,KAAI,CAACvE,EAA0ByE,KACpDw8B,IAEA,MAAMpqB,EAAenX,KAAK2hC,iBAAiB3hC,KAAKC,MAAMa,QAAQC,QAAQsgB,OAAQ/gB,EAAMshC,kBAEpF,OACIhiC,EAAAA,cAAC+gC,EAAI,CACD37B,IAAKD,EACLtE,KAAM0W,EACN8C,UAAW9C,EACX3T,KAAMlD,EAAMuhC,IACZ98B,MAAOw8B,EAAap8B,WACpBzE,UAAU,qBACVkgC,QAAS77B,IAAU28B,EAAkBn9B,OAAS,EAC9CyS,iBAAkBhX,KAAKgX,uBAjB/BhX,KAAKC,MAAMa,QAAQ6P,UAAUxG,MAAM,2DAC5B,OA4BE,KAAAw3B,iBAAmB,CAACtgB,EAAgBygB,KAAiE,IAAAC,EAClH,IAAIC,EAUJ,OATI3gB,GAAUygB,GAAoBryB,EAAAA,gBAAgBC,YAAYoyB,KAC1DE,EAAkBF,EAAiBG,MAAKr4B,GAAQA,EAAKs4B,SAAU7zB,gBAAkBgT,EAAOhT,sBAIpEhI,IAApB27B,GAAiCvyB,EAAAA,gBAAgBC,YAAYoyB,KAC7DE,EAAkBF,EAAiB,IAGjB,QAAtBC,EAAOC,SAAe,IAAAD,OAAA,EAAfA,EAAiBjU,MAGX,KAAAqU,aAAgBZ,IAC7B,MAAM,KAAEt6B,EAAI,OAAE/G,GAAWF,KAAKC,MACxByhC,EAAoBz6B,EAAKm7B,cAAch7B,OACvCi7B,EAAUp7B,EAAKo7B,QAAQj7B,OACvBod,EAAMxkB,KAAKC,MAAMa,QAAQC,QAAQyjB,IAAI2L,WAAW3sB,KACtD,IAAKk+B,EAED,OADA1hC,KAAKC,MAAMa,QAAQ6P,UAAUxG,MAAM,kDAC5B,KAEX,MAAM5B,EAAuB,GA8B7B,OA5BAm5B,EAAkB78B,KAAI,CAACvE,EAAqByE,KACxCw8B,IACAh5B,EAAM8R,KACFza,EAAAA,cAAC+gC,EAAI,CACD37B,IAAKD,EACLtE,KAAMH,EAAMgiC,KACZroB,UAAW3Z,EAAMgiC,KACjB9+B,KAAMlD,EAAMuhC,IACZ98B,MAAOw8B,EAAap8B,WACpBzE,UAAU,qBACVsW,iBAAkBhX,KAAKgX,uBAI/BqrB,IAAYniC,EAAOqiC,kBACnBhB,IACAh5B,EAAM8R,KACFza,EAAAA,cAAC+gC,EAAI,CACDlgC,KAAM4hC,EAAQC,KACdroB,UAAWooB,EAAQC,KACnB9+B,KAAMghB,EACNzf,MAAOw8B,EAAap8B,WACpBy7B,SAAO,EACPlgC,UAAU,qBACVsW,iBAAkBhX,KAAKgX,qBAI5BzO,GAGM,KAAAi6B,QAAU,KACvB1c,OAAO2c,QAAQC,QAGF,KAAAC,kBAAoB,IAE7B3iC,KAAKC,MAAMa,SAAWd,KAAKC,MAAMa,QAAQC,SAAWf,KAAKC,MAAMa,QAAQC,QAAQyuB,OAASxvB,KAAKC,MAAMa,QAAQC,QAAQyuB,MAAMkT,KAIzHt1B,EAAAA,GAASC,YAAoC,KAAtBya,SAAS8a,UAAmB9c,OAAO2c,QAAQl+B,OAAS,GACpE,KAGP3E,EAAAA,cAAA,KACIc,UAAU,4BACVyZ,KAAK,SACL3W,KAAK,sBACLgT,QAASxW,KAAKwiC,QAAO,aACTxiC,KAAKC,MAAM8D,UAAU8+B,mBAEhC7iC,KAAKC,MAAM8D,UAAU8+B,mBAbnB,KA3MR1gC,SACH,MAAM,UAAEzB,GAAcV,KAAKC,MAAMC,OACjC,IAAI4iC,EAAW,KACXC,EAAkB,KAClBC,EAAsB,KAC1BF,EAAW9iC,KAAKohC,eAChB,MAAMG,EAAeuB,EAAW,EAAI,EACpC,GAAuB,aAAnB9iC,KAAKihC,UACL8B,EAAkB/iC,KAAKshC,0BAA0BC,GAC5CwB,IACDA,EAAkB/iC,KAAKyhC,sBAAsBF,SAE9C,GAAuB,YAAnBvhC,KAAKihC,WAEZ,GADA8B,EAAkB/iC,KAAKshC,0BAA0BC,IAC5CwB,EAAiB,CAClB,MAAME,EAAgBjjC,KAAKC,MAAMa,QAAQ6yB,IAAIzzB,OAAOgjC,eAC9B,aAAlBD,IACAF,EAAkB/iC,KAAKmiC,aAAaZ,IAElB,oBAAlB0B,IACAD,EAAsBhjC,KAAK2iC,oBAC3BI,EAAkB/iC,KAAKmiC,aAAaZ,IAElB,SAAlB0B,IACAD,EAAsBhjC,KAAK2iC,oBACC,OAAxBK,IACAD,EAAkB/iC,KAAKmiC,aAAaZ,WAKhDwB,EAAkB/iC,KAAKshC,0BAA0BC,GAErD,MAAM4B,EAAgBvjC,EAAAA,cAACmhC,EAAS,CAAC59B,UAAU,MAErCigC,EAAmB/gC,EAAAA,EAAA,GAClBrC,KAAKC,OAAK,IACbojC,oBAAqB,CACjB/gC,YAAatC,KAAKC,MAClBS,UAAW6B,GAAAA,CAAW,gBAAiB7B,GACvC8B,IAAK,MACL2X,KAAM,cAEVmpB,eAAgB,CACZ9gC,IAAK,KACL9B,UAAW,sBAEf6iC,mBAAoB,CAChB/gC,IAAK,KACL9B,UAAW,sBAEf2gC,KAAMyB,EACNv6B,MAAOw6B,EACPS,WAAYR,EACZ7/B,UAAWggC,IAEf,OAAOnjC,KAAKC,MAAMyC,WAAW0gC,IAsKrC,oHC9PA,MAoCA,EApCuDnjC,IACnD,MAAM,KAAEohC,EAAI,MAAE94B,EAAK,WAAEi7B,EAAU,oBAAEH,EAAmB,eAAEC,EAAc,mBAAEC,EAAkB,UAAEpgC,GAAclD,EACxG,OAAKohC,GAAS94B,GAAUi7B,EAKpB5jC,EAAAA,cAACyM,EAAAA,OAAMrK,OAAAC,OAAA,GAAKohC,GACRzjC,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKqhC,GACLjC,GACGzhC,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKshC,GACLlC,EACA94B,GAASpF,GAGjBqgC,GAAc5jC,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKshC,GAAqBC,GAC7Cj7B,GACGA,EAAM1D,KAAI,CAACkE,EAAMhE,IACbnF,EAAAA,cAACA,EAAAA,SAAc,CAACoF,IAAKD,GACjBnF,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GACGshC,EAAkB,CACtB7iC,UAAW6B,GAAAA,CACPghC,EAAmB7iC,UACnBqE,IAAUwD,EAAMhE,OAAS,EAAI,0BAA4B,MAG5DwE,EACAR,EAAMxD,EAAQ,IAAM5B,SAxB7ClD,EAAMa,QAAQ6P,UAAUxG,MAAM,mDACvB,2ICiFHs5B,EAQAC,EAKAC,w5CAbZ,SAAYF,GACRA,EAAA,YACAA,EAAA,YACAA,EAAA,gBACAA,EAAA,YACAA,EAAA,UALJ,CAAYA,IAAAA,EAAQ,KAQpB,SAAYC,GACRA,EAAA,YACAA,EAAA,cAFJ,CAAYA,IAAAA,EAAS,KAKrB,SAAYC,GACRA,EAAA,sBACAA,EAAA,oBACAA,EAAA,sBACAA,EAAA,cACAA,EAAA,8BACAA,EAAA,gBACAA,EAAA,gBAPJ,CAAYA,IAAAA,EAAO,KAwBZ,MAAMC,EAAqBA,CAC9BC,EACAnjC,EACAojC,EACAC,IAEOF,EAAOh/B,KAAIm/B,IACd,MAAM,YAAEC,EAAW,GAAEjgC,EAAE,KAAEkF,EAAI,MAAEyC,EAAK,SAAEu4B,EAAQ,WAAE1F,EAAU,QAAE/U,EAAO,MAAEnpB,EAAK,WAAE6jC,EAAU,eAAEC,GAAmBJ,EAC3G,MAAO,CACHta,QAAS,CACLhpB,UAAW6B,GAAAA,CAAW7B,EAAWsD,EAAIigC,IAEzCj/B,IAAKhB,EACL2H,MAAO/L,EAAAA,cAACykC,EAAAA,GAASriC,OAAAC,OAAA,GAAK,CAAE+B,GAAAA,EAAI4lB,MAAO5lB,EAAItD,UAAAA,EAAWD,KAAMkL,EAAO24B,aAAc9F,EAAasF,EAAqBn4B,KAC/G8c,aAAc7oB,EAAAA,cAAC2kC,EAAAA,GAAcviC,OAAAC,OAAA,GAAK,CAAEvB,UAAAA,EAAWwI,KAAM,UACrD2C,MACIjM,EAAAA,cAAC4kC,EAAAA,GAASxiC,OAAAC,OAAA,GACF,CACA+B,GAAAA,EACAkF,KAAAA,EACAsgB,UAAW0a,EACXza,QAAAA,EACAnpB,MAAAA,EACAI,UAAAA,EACA89B,gBAA2Bn4B,IAAfm4B,GAAmCA,EAC/Cpb,SAAU2gB,EACVI,WAAAA,EACAM,YAAa94B,EACby4B,eAAAA,SAkBxB,IAAMM,EAAN,cAAuC9kC,EAAAA,UAsFnCC,YAAYI,GAAoE,IAAA0kC,EAC5EhhC,MAAM1D,GAnFH,KAAA2kC,0BAA6C,CAChD,CACI5gC,GAAI2/B,EAAQrlB,UACZpV,KAAMw6B,EAAU5V,KAChBniB,MAAO3L,KAAKC,MAAM8D,UAAU8gC,+BAC5BvkC,MAAO,GACPk+B,YAAY,EACZyF,YAAa,YAEjB,CACIjgC,GAAI2/B,EAAQplB,SACZrV,KAAMw6B,EAAU5V,KAChBniB,MAAO3L,KAAKC,MAAM8D,UAAU+gC,8BAC5BxkC,MAAO,GACPk+B,YAAY,EACZyF,YAAa,YAEjB,CACIjgC,GAAI2/B,EAAQrnB,MACZpT,KAAMw6B,EAAUpnB,MAChB3Q,MAAO3L,KAAKC,MAAM8D,UAAUghC,kCAC5BzkC,MAAO,GACPk+B,YAAY,EACZ/U,QAAS9C,EAAAA,WAAWC,aAAaC,OACjCod,YAAa,aAEjB,CACIjgC,GAAI2/B,EAAQqB,cACZ97B,KAAMw6B,EAAU5V,KAChBniB,MAAO3L,KAAKC,MAAM8D,UAAUkhC,mCAC5B3kC,MAAO,GACPk+B,YAAY,EACZyF,YAAa,WACbC,SAA2B,QAAnBS,EAAE3kC,KAAKC,MAAMC,cAAM,IAAAykC,OAAA,EAAjBA,EAAmBnb,YAOpB,KAAA0b,WAAqB,IAE9B,KAAAC,mBAA0D,GAE1D,KAAAC,sBAA8D,GAE9D,KAAAC,wBAAgE,GAQvD,KAAApgB,gBAA0B,gCA6a1B,KAAAqgB,4BAA8B,KAE3C,MAAMC,EAAUvlC,KAAK8H,MAAM09B,UAC3BD,EAAQ5rB,SAAQ9N,IACRA,EAAM7H,KAAO2/B,EAAQrnB,QAErBzQ,EAAMs4B,YAAa,GAGvBt4B,EAAMvL,MAAQ,MAGlB,MAAMmlC,EAAU,CAAE3pB,UAAWkG,EAAAA,OAAOC,KAAKC,gBAEzCliB,KAAKqX,SAAS,CACVmuB,UAAWD,EACXG,cAAc,EACdC,SAAUlC,EAASmC,IACnBC,cAAe7lC,KAAK8lC,uBAAuBlrB,QAC3C0F,aAAa,EACbylB,cAAc,EACdC,gBAAgB,EAChBC,iBAAkBR,KAKT,KAAAS,6BAA+BC,UAC5C,MAAM,QAAErlC,GAAYd,KAAKC,OACnB,SAAE0lC,EAAQ,UAAEH,GAAcxlC,KAAK8H,MAE/Bs+B,EAAcpmC,KAAKqmC,uBAAuBb,GAE5CG,IAAalC,EAAS6C,MACtBC,EAAAA,EAAAA,sBAAqB,IAAIC,EAAAA,0BAA0BJ,GAActlC,EAAQgC,eACpEsvB,MAAK,KACFtM,OAAOoK,SAASuW,QAAO,MAE1BpU,OAAMloB,IACHrJ,EAAQ6P,UAAU+1B,MAAMv8B,GACxBnK,KAAKqX,SAAS,CACV2uB,gBAAgB,QAI5BW,EAAAA,EAAAA,qBAAoB,IAAIC,EAAAA,yBAAyBR,GAActlC,EAAQgC,eAClEsvB,MAAK,KACFtM,OAAOoK,SAASuW,QAAO,MAE1BpU,OAAMloB,IACHrJ,EAAQ6P,UAAU+1B,MAAMv8B,GACxBnK,KAAKqX,SAAS,CACV2uB,gBAAgB,EAChBa,iCAAkC18B,EAAMM,cAO3C,KAAA47B,uBAA0BxC,IACvC,MAAM4B,EAAOpjC,EAAA,GAA6BrC,KAAK8H,MAAMm+B,kBAWrD,OATApC,EAAOlqB,SAAQ9N,IAEPA,EAAM7H,KAAO2/B,EAAQqB,cACrBS,EAAQ55B,EAAM7H,IAAMsmB,OAAOwc,WAAWj7B,EAAMvL,QAAU,EAEtDmlC,EAAQ55B,EAAM7H,IAAM6H,EAAMvL,SAI3BmlC,GAIM,KAAAsB,gBAAkB,CAACC,EAA6BnB,KAE7D,MAAMoB,EAAeD,EAAS/E,MAAKiF,GACZ,SAAZA,EAAKljC,KAEVmjC,EAAYF,GAAiBA,EAAa3mC,OAAqB,GAC/D8mC,EAAiBD,EAASE,YAAY,KACtCC,EAAYH,EAASxQ,UAAU,EAAGyQ,GAElCG,EAAWJ,EAASxQ,UAAUyQ,EAAiB,IAG/C,UAAE5B,GAAcxlC,KAAK8H,MACrBy9B,EAAUC,EAEhBD,EAAQ5rB,SAAQ9N,IACZ,OAAQA,EAAM7H,IACV,KAAK2/B,EAAQrlB,UACTzS,EAAMvL,MAAQgnC,EACd,MACJ,KAAK3D,EAAQplB,SACT1S,EAAMvL,MAAQinC,EACd,MACJ,KAAK5D,EAAQrnB,MACTzQ,EAAMs4B,YAAa,EACnB,MAAMqD,EAAeR,EAAS/E,MAAKiF,GACxBr7B,EAAM7H,KAAOkjC,EAAKljC,KAE7B6H,EAAMvL,MAASknC,GAAiBA,EAAalnC,OAAqB,GAClE,MACJ,QACI,MAAMmnC,EAAWT,EAAS/E,MAAKiF,GACpBr7B,EAAM7H,KAAOkjC,EAAKljC,KAE7B6H,EAAMvL,MAASmnC,GAAaA,EAASnnC,OAAqB,OAItEN,KAAKqX,SAAS,CACVmuB,UAAWD,EACXG,cAAc,EACdG,cAAAA,EACAF,SAAUlC,EAAS6C,KACnBhmB,aAAa,EACbylB,cAAc,EACdC,gBAAgB,EAChBC,iBAAmBe,EAAS,GAA2Bv/B,QAK9C,KAAAigC,kBAAoB,CAACV,EAA6BnB,KAC/D,MAAMJ,EAAOpjC,EAAA,GAA8B2kC,EAAS,GAA2Bv/B,MAEzEkgC,EAAyB,GAE/BX,EAASrtB,SAASutB,IACd,GAAgB,SAAZA,EAAKljC,GAAe,CAEpB,MAAMmjC,EAAWD,EAAK5mC,MAChB8mC,EAAiBD,EAASE,YAAY,KAC5CM,EAAkBrpB,UAAY6oB,EAASxQ,UAAU,EAAGyQ,GAEpDO,EAAkBppB,SAAW4oB,EAASxQ,UAAUyQ,EAAiB,QAC1DF,EAAKh+B,OAAS2kB,EAAAA,cAAc+Z,MACnCD,EAAkBT,EAAKljC,IAAMhE,KAAKC,MAAMa,QAAQ0F,iBAAiB+L,eAAe20B,EAAK5mC,OAErFqnC,EAAkBT,EAAKljC,IAAMkjC,EAAK5mC,SAI1CN,KAAKqX,SAAS,CACVswB,kBAAAA,EACA9B,cAAAA,EACAI,iBAAkBR,EAClBE,SAAUlC,EAASoE,OACnBvnB,aAAa,EACbolB,cAAc,KAKL,KAAAoC,mBAAsBd,IACnC,MAAMvB,EAAOpjC,EAAA,GAA8B2kC,EAAS,GAA2Bv/B,MAEzEkgC,EAAyB,GAE/BX,EAASrtB,SAASutB,IACd,GAAgB,SAAZA,EAAKljC,GAAe,CAEpB,MAAMmjC,EAAWD,EAAK5mC,MAChB8mC,EAAiBD,EAASE,YAAY,KAC5CM,EAAkBrpB,UAAY6oB,EAASxQ,UAAU,EAAGyQ,GAEpDO,EAAkBppB,SAAW4oB,EAASxQ,UAAUyQ,EAAiB,QAC1DF,EAAKh+B,OAAS2kB,EAAAA,cAAc+Z,MACnCD,EAAkBT,EAAKljC,IAAMhE,KAAKC,MAAMa,QAAQ0F,iBAAiB+L,eAAe20B,EAAK5mC,OAErFqnC,EAAkBT,EAAKljC,IAAMkjC,EAAK5mC,SAI1CN,KAAKqX,SAAS,CACVswB,kBAAAA,EACA1B,iBAAkBR,EAClBE,SAAUlC,EAASsE,KACnBznB,aAAa,EACbolB,cAAc,KAKL,KAAAsC,wBAA0B,KAEvC,MAAM,QAAElnC,GAAYd,KAAKC,OACjBgmC,iBAAkBgC,GAAmBjoC,KAAK8H,MAE9CmgC,IACAC,EAAAA,EAAAA,wBAAuB,IAAIC,EAAAA,4BAA4BF,GAAiBnnC,EAAQgC,eAC3EsvB,MAAK,KACFtM,OAAOoK,SAASuW,QAAO,MAE1BpU,OAAMloB,IACHrJ,EAAQ6P,UAAU+1B,MAAMv8B,MAGpCnK,KAAKqX,SAAS,CACVsuB,SAAUlC,EAAS2E,KACnB9nB,aAAa,KAIJ,KAAA+nB,qBAAuB,KACpCroC,KAAKgoC,2BAoIQ,KAAAM,eAAkBvoC,IAC/B,MAAMwlC,EAAUvlC,KAAK8H,MAAM09B,UAE3BD,EAAQ5rB,SAAQ/P,IACRA,EAAK5F,KAAOjE,EAAMM,OAAO2D,KACzB4F,EAAKtJ,MAAQP,EAAMM,OAAOC,UAMlCN,KAAKqX,UAASkxB,IAAI,CACdC,SAAUD,EAAKC,QACfC,QAASzoC,KAAK0oC,eACdlD,UAAWD,EACXQ,cAAc,EACdC,gBAAgB,OAKP,KAAA0C,aAAe,KAC5B,MAAM,UAAElD,GAAcxlC,KAAK8H,MAE3B,IAAK,MAAM6gC,KAAYnD,EAAW,CAO9B,GAAImD,EAASnK,YAAwC,IAA1BmK,EAASroC,MAAMiE,OACtC,OAAO,EACJ,QAAyB8B,IAArBsiC,EAASlf,SAAoE,OAA3Ckf,EAASroC,MAAMsoC,MAAMD,EAASlf,SACvE,OAAO,EACJ,GAAIkf,EAAS3kC,KAAO2/B,EAAQqB,eAAoC,KAAnB2D,EAASroC,OAAgBkqB,MAAMF,OAAOwc,WAAW6B,EAASroC,QAI1G,OAHAN,KAAKqX,SAAS,CACV0uB,cAAc,KAEX,EAIf,OAAO,GAGM,KAAA8C,aAAgB12B,GACtBnS,KAAKC,MAAMa,QAAQ0F,iBAAmBxG,KAAKC,MAAMa,QAAQ0F,iBAAiB+L,eAAeJ,GAASA,EAAMhN,WAGlG,KAAA2jC,eAAkB9Y,GAC3B5iB,EAAAA,GAASC,UACF,IAAI4iB,IAAInK,OAAOoK,SAAS1sB,OAI/BwsB,EAAWxL,IAAI2L,WAAW3sB,KACnB,IAAIysB,IAAID,EAAWxL,IAAI2L,WAAW3sB,OAShC,KAAAulC,aAAe,KAC5B,MAAM,QAAEjoC,GAAYd,KAAKC,MAGzB,GAAIa,EAAQC,SAAWD,EAAQC,QAAQioC,QAA0C,WAAhCloC,EAAQC,QAAQioC,OAAOC,KACpE,MAAO,KAGX,GAAI77B,EAAAA,GAASC,WAAayY,OAAOojB,WAAY,CACzC,MAAM/nC,EAAeL,EAAQC,QAAQI,aACrC,GAAIA,EACA,OAAIA,EAAaG,IAAMwkB,OAAOojB,YAAc/nC,EAAaG,GAAGE,EACjD,KACAL,EAAaO,IAAMokB,OAAOojB,YAAc/nC,EAAaO,GAAGF,EACxD,KACAL,EAAaQ,IAAMmkB,OAAOojB,YAAc/nC,EAAaQ,GAAGH,EACxD,KACAL,EAAaS,IAAMkkB,OAAOojB,YAAc/nC,EAAaS,GAAGJ,EACxD,KAEJ,KAIf,MAAO,MAGM,KAAA2nC,gCAAkC,KAC/CnpC,KAAKqX,SAAS,CACV0D,qCAAsC/a,KAAK8H,MAAMiT,uCAIxC,KAAAC,gBAAmBC,IAChCjb,KAAKqX,SAAS,CACV6D,+BAAgCD,KAIvB,KAAAE,cAAiBC,IAC9Bpb,KAAKqX,SAAS,CACVgE,6BAA8BD,KAIrB,KAAAZ,2BAA8Be,IAC3Cvb,KAAKqX,SAAS,CACVmE,wBAAyBD,EACzBd,6BAA6B,KAIpB,KAAA2uB,iBAAmB,KAChC,MAAMC,GAAqBnmC,EAAAA,EAAAA,IAAW,2BAA4BlD,KAAKC,MAAMa,QAAQgC,eACjFumC,GAAsBj8B,EAAAA,GAASC,YAC/ByY,OAAOoK,SAAS1sB,KAAO6lC,IAId,KAAA5tB,kBAAoB,KACjC,MAAMG,EAAW5b,KAAKC,MAAMgH,KAAK4U,oBAAoBzU,OAG/CkiC,EAFuBtpC,KAAKC,MAAMgH,KAAK+wB,MAAM5wB,OAEV66B,MAAK+B,GAAWA,EAAQ1nB,QAAUV,EAASU,QAC9ER,EAAY9b,KAAKupC,cAAcD,GAE/BttB,EAA4C,CAC9CC,SAAU,IAAI1V,KAAKvG,KAAK8H,MAAMoT,gCAC9BgB,OAAQ,IAAI3V,KAAKvG,KAAK8H,MAAMuT,8BAC5Bc,sBAAuBnc,KAAK8H,MAAM0T,wBAClCY,gBAAiBN,EACjBO,oBAAqBT,EAASU,MAC9BC,mBAAuD,OAApCC,EAAAA,2CAAoC,IAApCA,EAAAA,0CAAoC,EAApCA,EAAAA,qCAAsCF,QAAS,GAGhExb,EAAU,CAAE2b,cAAezc,KAAKC,MAAMa,QAAQgC,eAEpD4Z,EAAAA,gCAAAA,6BAA6D5b,EAASgb,EAAWE,GAEjFhc,KAAKwpC,+BAGQ,KAAAD,cAAiBD,GAC1BtpC,KAAK8H,MAAM0T,0BAA4Bxb,KAAK8H,MAAMm+B,iBAC3CqD,EAAcA,EAAYxtB,UAAY,GAE1C9b,KAAK8H,MAAMm+B,iBAAiBnqB,UAGtB,KAAA0tB,4BAA8B,KAAK,IAAAC,EAChDzpC,KAAKqX,SAAS,CACVoD,6BAA6B,IAEW,QAA5CgvB,EAAAzpC,KAAK0pC,gCAAgC9uB,eAAO,IAAA6uB,GAA5CA,EAA8C5uB,SAGjC,KAAA8uB,aAAgBC,IAC7B,MAAMC,EAAcD,EAAQ3H,MAAK6H,GAAYA,EAAS1b,aAEtDpuB,KAAKqX,SAAS,CACV4uB,iBAAkB4D,EAAeA,EAAYlc,IAAI,GAA2BlmB,UAAOpB,KA14BvFrG,KAAK0a,aAAe1a,KAAK0a,aAAa2b,KAAKr2B,MAC3CA,KAAKsoC,eAAiBtoC,KAAKsoC,eAAejS,KAAKr2B,MAC/CA,KAAKgoC,wBAA0BhoC,KAAKgoC,wBAAwB3R,KAAKr2B,MAEjEA,KAAKyuB,sBAAwB,CAACkV,EAAQrnB,MAAOqnB,EAAQoG,OAAQpG,EAAQqB,eACrEhlC,KAAKgqC,UACD/pC,EAAMa,QAAQC,SAAWd,EAAMa,QAAQC,QAAQioC,QAAgD,WAAtC/oC,EAAMa,QAAQC,QAAQioC,OAAOC,KAAoB,KAAO,KACrHjpC,KAAKiqC,gBAAkBjqC,KAAKiqC,gBAAgB5T,KAAKr2B,MACjDA,KAAKkqC,sBAAwBtqC,EAAAA,YAC7BI,KAAK8lC,uBAAyBlmC,EAAAA,YAC9BI,KAAK0pC,gCAAkC9pC,EAAAA,YACvCI,KAAK8H,MAAQ,CACT2gC,SAAS,EACTjD,UAAWxlC,KAAKmqC,iBAChBzE,cAAc,EACdC,SAAUlC,EAAS2E,KACnBI,SAAS,EACTloB,aAAa,EACbylB,cAAc,EACdC,gBAAgB,EAChBvrB,6BAA6B,EAC7BS,+BAAgC,GAChCG,6BAA8B,GAC9BN,qCAAqC,EACrCS,yBAAyB,EACzBmB,+BAA+B,IAAIpW,MAAOqW,cAAcC,MAAM,KAAK,GACnEgqB,iCAAkC,IAGtC7mC,KAAKgX,kBAAmBC,EAAAA,EAAAA,oBACpBjX,KAAKC,MAAMa,QAAQC,QAAQmW,kBAC3BlX,KAAKC,MAAMkX,aACXnX,KAAKC,MAAM0Q,WAEf3Q,KAAKyZ,SAAUC,EAAAA,EAAAA,kBAAiB,QAAS1Z,KAAKgX,iBAAkB,IA5D1D,eACN,MAA0B,OAAnBhX,KAAKgqC,WAAyC,OAAnBhqC,KAAKgqC,UAGjC,gCACN,OACK7e,EAAAA,iBAAiBif,mBAAmBpqC,KAAK8H,MAAMoT,kCAC/CiQ,EAAAA,iBAAiBif,mBAAmBpqC,KAAK8H,MAAMuT,8BAI9C,uBACN,MAAM,oCAAEgvB,GAAwCrqC,KAAKC,MAAM8D,UAC3D,OAAO/D,KAAK8H,MAAMm+B,iBACZoE,EACK7e,QAAQ,cAAexrB,KAAK8H,MAAMm+B,iBAAiB3nB,WAAa,IAChEkN,QAAQ,aAAcxrB,KAAK8H,MAAMm+B,iBAAiB1nB,UAAY,IACnE,GA8CH4rB,iBAEH,OADsBnqC,KAAK4kC,0BACN//B,KAAI,CAACgH,EAAO9G,KAC7B/E,KAAKmlC,mBAAmB7a,OAAOvlB,IAAUnF,EAAAA,YACzCiM,EAAMu4B,eAAiBpkC,KAAKmlC,mBAAmB7a,OAAOvlB,IAC/C8G,KAIRrE,oBACC4F,EAAAA,GAASC,WAAayY,OAAOwkB,mBAC7BxkB,OAAOwkB,iBAAiB,SAAUtqC,KAAKiqC,iBACvCjqC,KAAKiqC,mBAINM,uBACCn9B,EAAAA,GAASC,WAAayY,OAAO0kB,qBAC7B1kB,OAAO0kB,oBAAoB,SAAUxqC,KAAKiqC,iBAI3CtiC,sBACHC,EACAC,GAEA,OAAI7H,KAAK8H,QAAUD,GAAa7H,KAAKC,MAAMgH,OAASW,EAAUX,QAIzDjH,KAAK8H,MAAMwY,aAAetgB,KAAK8H,MAAMwY,cAAgBzY,EAAUyY,aAChEsF,YAAW,KAAK,IAAA6kB,EAAAC,EACsB,QAAlCD,EAAAzqC,KAAKmlC,mBAAmB,GAAGvqB,eAAO,IAAA6vB,GAAlCA,EAAoC5vB,QACF,QAAlC6vB,EAAA1qC,KAAKkqC,sBAAsBtvB,eAAO,IAAA8vB,GAAlCA,EAAoC7vB,UACrC7a,KAAKklC,aAEL,GAGJ/iC,SAAM,IAAAwoC,EACT,MAAM,OACFzqC,EAAM,UACN6D,EACAkD,MAAM,MAAE+wB,IACRh4B,KAAKC,OACH,UAAES,EAAS,QAAEmD,EAAO,qBAAE+mC,GAAyB1qC,GAC/C,6BACF2qC,EAA4B,8BAC5BC,EAA6B,2BAC7BC,EAA0B,6BAC1BC,EAA4B,qCAC5BC,EAAoC,0BACpCC,EAAyB,sBACzBptB,EAAqB,4BACrBR,EAA2B,2BAC3B6tB,EAA0B,mCAC1BC,EAAkC,wCAClCC,EAAuC,iCACvCC,EAAgC,YAChC1tB,EAAW,cACXH,EAAa,YACbC,EAAW,mBACXC,EAAkB,iBAClBH,EAAgB,kBAChBwD,GACAjd,GACE,UACFyhC,EAAS,aACTE,EAAY,SACZC,EAAQ,YACRrlB,EAAW,+BACXpF,EAA8B,6BAC9BG,EAA4B,4BAC5BZ,EAA2B,8BAC3BkC,GACA3c,KAAK8H,MAEHyjC,EAAWvT,GAASA,EAAM5wB,QAAU4wB,EAAM5wB,OAAO7C,OAAS,EAChEvE,KAAKyZ,QAAQG,cAAcC,MAAQ+J,EAAAA,kBAAkB4nB,QACrD,MAAMC,GAAoB1xB,EAAAA,EAAAA,wBAAuB/Z,KAAKgX,iBAAmBhX,KAAKyZ,SAExEmC,EAA8C,QAAtC+uB,EAAG3qC,KAAKC,MAAMgH,KAAK4U,2BAAmB,IAAA8uB,OAAA,EAAnCA,EAAqCvjC,OAEtD,IAAKmkC,EAAU,CACX,IAAI9iB,EAAe,GACE,YAAjBuP,EAAMzyB,OACNkjB,EAAesiB,EACS,WAAjB/S,EAAMzyB,OACbkjB,EAAewiB,EACRjT,EAAM5wB,QAAkC,IAAxB4wB,EAAM5wB,OAAO7C,SACpCkkB,EAAeuiB,GAGnB,MAAMU,EAAUrpC,EAAAA,EAAA,GACTrC,KAAKC,OAAK,IACbS,UAAAA,EACAirC,qBAAsB,CAClBrpC,YAAatC,KAAKC,MAClBS,UAAW6B,GAAAA,CAAWvC,KAAKilB,gBAAiBvkB,IAEhDkrC,gBAAiB,CACblrC,UAAW,GAAGV,KAAKilB,8BAEvBphB,QAASA,GAAWjE,EAAAA,cAACqY,EAAAA,QAAO,CAACvX,UAAW,GAAGV,KAAKilB,2BAA4B/M,WAAYrU,EAAQrB,IAAK/B,KAAMoD,EAAQpD,OACnHorC,cACIjsC,EAAAA,cAAC2D,EAAAA,OAAMvB,OAAAC,OAAA,CACHwf,SAAUzhB,KAAK8lC,uBACfplC,UAAW,GAAGV,KAAKilB,mCACnBzO,QAASxW,KAAKslC,6BACVmG,GAEHX,GAGTgB,YAAalsC,EAAAA,cAAA,KAAGc,UAAW,GAAGV,KAAKilB,kCAAmCwD,KAG1E,OAAOzoB,KAAKC,MAAMyC,WAAWgpC,GAGjC,MAAMtpC,EAASC,EAAAA,EAAA,GACRrC,KAAKC,OAAK,IACbS,UAAAA,EACAirC,qBAAsB,CAClBrpC,YAAatC,KAAKC,MAClBS,UAAW6B,GAAAA,CAAWvC,KAAKilB,gBAAiBvkB,IAEhDkrC,gBAAiB,CACblrC,UAAW,GAAGV,KAAKilB,8BAEvBphB,QAASA,GAAWjE,EAAAA,cAACqY,EAAAA,QAAO,CAACvX,UAAW,GAAGV,KAAKilB,2BAA4B/M,WAAYrU,EAAQrB,IAAK/B,KAAMoD,EAAQpD,OACnHsrC,WAAYzrB,EACZurB,cACIjsC,EAAAA,cAAC2D,EAAAA,OAAMvB,OAAAC,OAAA,CACHwf,SAAUzhB,KAAK8lC,uBACfplC,UAAW,GAAGV,KAAKilB,mCACnBzO,QAASxW,KAAKslC,6BACVmG,GAEHX,GAGTkB,sBAAuBpsC,EAAAA,cAAC+wB,EAAAA,MAAK3uB,OAAAC,OAAA,GAAKjC,KAAKisC,sBACvCC,YAAalsC,KAAK0a,aAClBirB,SAAAA,EACAwG,KACIzG,GAAgBplB,IAAgBqlB,IAAalC,EAASmC,KAAOD,IAAalC,EAAS6C,MAC7EtmC,KAAKosC,kBACLpsC,KAAKqsC,qBACf7G,UAAAA,EACA8G,8BAA+B1B,EAC3BhrC,EAAAA,cAACsf,EAAAA,GAA2B,CACxBxe,UAAW6B,GAAAA,CAAWvC,KAAKilB,gBAAiBvkB,GAC5Cye,gBAAiBnf,KAAK0pC,gCACtBtqB,mBAAoBpf,KAAKwa,2BACzB8C,4BAA6ButB,EAC7BxrB,iBAAkBrf,KAAKmpC,gCACvB7pB,mBAAoB8rB,EACpBttB,sBAAuButB,EACvB9rB,kBAAmBvf,KAAK8H,MAAMiT,oCAC9B4G,qBAAsBwpB,EACtBzpB,kBAAmB1hB,KAAKopC,mBAG5BxpC,EAAAA,cAACsf,EAAAA,GAA2B,CACxBxe,UAAW6B,GAAAA,CAAWvC,KAAKilB,gBAAiBvkB,GAC5Cye,gBAAiBnf,KAAK0pC,gCACtBtqB,mBAAoBpf,KAAKwa,2BACzB8C,4BAA6BA,EAC7B+B,iBAAkBrf,KAAKmpC,gCACvB7pB,mBAAoB4rB,EACpBptB,sBAAuBA,EACvByB,kBAAmBvf,KAAK8H,MAAMiT,sCAGtCoF,sBACIvgB,EAAAA,cAACwgB,EAAAA,GAAqB,CAClBC,OAAOzE,MAAAA,OAAQ,EAARA,EAAUU,QAAS,GAC1BgE,YAAa7F,EACb8F,OAAQvgB,KAAKwpC,4BACbhpB,eAAgBtF,EAChBuF,aAAcpF,EACdqF,iBAAkB1gB,KAAKgb,gBACvB2F,eAAgB3gB,KAAKmb,cACrByF,iBAAkB5gB,KAAK6gB,0BACvBtD,iBAAkB+tB,EAClB9tB,iBAAkBA,EAClBC,cAAeA,EACfC,YAAaA,EACbC,mBAAoBA,EACpBC,YAAaA,EACbkD,gBAAiB9gB,KAAKyb,kBACtB/a,UAAW6B,GAAAA,CAAWvC,KAAKilB,gBAAiBvkB,GAC5CsgB,kBAAmBA,EACnBD,aACI/gB,KAAK8H,MAAM0T,wBAA0Bxb,KAAKC,MAAM8D,UAAUwoC,0BAA4BvsC,KAAKwsC,iBAE/FzuB,eAAgB/d,KAAKC,MAAM8D,UAAUga,eACrCkD,cAAetE,MAK3B,OAAO3c,KAAKC,MAAMyC,WAAWN,GAIzB6pC,oBACJ,MAAM,OAAE/rC,EAAM,UAAE6D,EAAS,QAAEjD,GAAYd,KAAKC,OACtC,UAAEwsC,EAAS,eAAEtd,EAAc,sBAAEud,GAA0BxsC,GACvD,qCACFysC,EAAoC,yCACpCC,EAAwC,2BACxCC,EAA0B,+BAC1BC,EAA8B,6BAC9BC,EAA4B,6BAC5BlC,EAA4B,gCAC5BmC,EAA+B,oBAC/Bre,GACA5qB,EAEEwpB,EAAYvtB,KAAKitC,oBAevB,MAAO,CACHlpC,UAAAA,EACAuqB,SAfC7e,EAAAA,gBAAgBC,YAAY6d,IACzBA,EAAU,GAAGI,IAAI9oB,KAAI+E,IACjB,IAAI5J,KAAKwuB,WAAYxuB,KAAKyuB,sBAAsBrrB,SAASwG,EAAK5F,IAG9D,MAAO,CACHqa,KAAMzU,EAAK5F,GACX0qB,SAAW+d,GAAaA,IAAc,EACtCxyB,UAAW0U,OAGvB,GAKAC,KAAMrB,EACN7sB,UAAW,GAAGV,KAAKilB,yBACnB4J,aAAc7uB,KAAKwuB,SAAWqe,EAA6B,GAC3D/d,eAAgB9uB,KAAKwuB,SAAWue,EAA+B,GAC/D7oB,aAAc4oB,EACdI,gBAAiBL,EACjBM,kBAAmBJ,EACnBK,gBAAiBN,EACjB/d,gBAAgB,EAChBC,eAAgB6b,EAChB5b,gBAAgB,EAChBC,WAAYud,EACZY,eAAgB,eAChBle,eAAAA,EACAC,cAAepvB,KAAKwuB,SACpBa,gBAAiBrvB,KAAKwuB,SAAWxuB,KAAKyuB,sBAAwB,GAC9Da,mBAAoB,CAChBC,UACIzuB,GACAA,EAAQC,SACRD,EAAQC,QAAQyuB,OAChB1uB,EAAQC,QAAQyuB,MAAMC,OACrBjF,MAAMF,OAAOC,SAASzpB,EAAQC,QAAQyuB,MAAMC,KAAM,KAC7CnF,OAAOC,SAASzpB,EAAQC,QAAQyuB,MAAMC,KAAM,IAC5C,EACVC,YAAagd,GAAyB,GACtC/c,SAAUid,EACV/c,SAAU8c,EACV5c,eAAgBid,EAChBxoB,IAAM1jB,GAAWd,KAAK8oC,eAAehoC,EAAQC,SAASyC,MAAS,IAEnE4sB,oBAAoB,EACpBkd,eAAgBvpC,EAAUupC,eAC1BC,cAAe,EACfhd,wCAAyCxsB,EAAUwsB,wCACnDC,gBAAiBzsB,EAAUysB,gBAC3BC,iBAAkB1sB,EAAU0sB,iBAC5BvQ,QAAS,CACLmQ,SAAUrwB,KAAK0nC,kBACf9mC,OAAQZ,KAAK+mC,gBACbzW,OAAStwB,KAAKwuB,UAAYxuB,KAAK8nC,yBAAuBzhC,GAE1DmnC,YAAaxtC,KAAK6oC,aAClB4E,iBAAkBztC,KAAK2pC,cAKvBsD,oBACJ,MAAM,UACFlpC,EACAkD,MAAM,MAAE+wB,IACRh4B,KAAKC,OACH,6BAAEytC,EAA4B,8BAAEC,EAA6B,8BAAEC,GAAkC7pC,EACjG8pC,EAAY7V,GAASA,EAAM5wB,OAEjC,OAAKqI,EAAAA,gBAAgBC,YAAYm+B,GAI1BA,EAAUhpC,KAAI,CAAC4C,EAAM1C,KACxB,IAAI+oC,EAAe,GAInB,OAHA9tC,KAAKolC,sBAAsBrgC,GAASnF,EAAAA,YACpCI,KAAKqlC,wBAAwBtgC,GAASnF,EAAAA,YAE9B6H,EAAK0mB,aACT,KAAK,EACD2f,EAAeH,EACf,MACJ,KAAK,EACDG,EAAeJ,EACf,MACJ,KAAK,EACL,QACII,EAAeF,EAGvB,MAAO,CACHjgB,IAAK,CACD,CACI3pB,GAAI2/B,EAAQoK,SACZ7kC,KAAM2kB,EAAAA,cAAcC,KACpBxtB,MAAO,GAAGmH,EAAK6W,aAAa7W,EAAK8W,WACjC9W,KAAAA,GAEJ,CACIzD,GAAI2/B,EAAQrnB,MACZpT,KAAM2kB,EAAAA,cAAcC,KACpBxtB,MAAOmH,EAAK6U,OAAS,GACrB5b,UAAW,GAAGV,KAAKilB,6BAEvB,CACIjhB,GAAI2/B,EAAQoG,OACZ7gC,KAAM2kB,EAAAA,cAAcC,KACpBxtB,MAAOwtC,GAEX,CACI9pC,GAAI2/B,EAAQqB,cACZ97B,KAAM2kB,EAAAA,cAAc+Z,MACpBtnC,MAAOmH,EAAKu9B,eAAiB,IAGrC5W,YAAY,EACZ4f,iBAAkB,CACdC,KAAMjuC,KAAKolC,sBAAsBrgC,GACjCmpC,OAAQluC,KAAKqlC,wBAAwBtgC,QAhDtC,GAuDP2V,eAAY,IAAAyzB,EACQ,QAAxBA,EAAAnuC,KAAK8H,MAAM+9B,qBAAa,IAAAsI,GAAxBA,EAA0BtzB,QAC1B7a,KAAKqX,SAAS,CACViJ,aAAa,EACbolB,cAAc,EACdG,mBAAex/B,EACfs/B,SAAUlC,EAAS2E,OA0NnBiE,qBACJ,MAAM,UAAEtoC,GAAc/D,KAAKC,OACrB,SAAE0lC,EAAQ,kBAAEgC,GAAsB3nC,KAAK8H,OACvC,kCACFsmC,EAAiC,mCACjCC,EAAkC,gCAClCC,EAA+B,6BAC/BC,EAA4B,uCAC5BC,EAAsC,iCACtCC,EAAgC,sCAChCC,GACA3qC,EAEE4qC,EAAgB,GAAG3uC,KAAKilB,wBACxB2pB,EAAgBjJ,IAAalC,EAASoE,OAAS,cAAgB,YAC/DgH,EAAqB7uC,KAAKqoC,qBAEhC,MAAO,CACHyG,eAAgBvsC,GAAAA,CAAW,GAAGvC,KAAKilB,yBAA0B2pB,GAC7DG,YAAa,CACTruC,UAAWiuC,GAEfK,aAAcrJ,IAAalC,EAASoE,OAASuG,EAAoCE,EACjFW,iBAAkBtJ,IAAalC,EAASoE,QACpCjoC,EAAAA,cAAA,KAAGc,UAAW,GAAGiuC,iBAA8BN,GAEnDttB,aAAc4mB,EACd7e,QAAS,CACL6c,IAAalC,EAASoE,QAClBjoC,EAAAA,cAAC2D,EAAAA,OAAM,CACHke,SAAUzhB,KAAKkqC,sBACfllC,IAAI,gBACJtE,UAAW,GAAGiuC,uBACdn4B,QAASq4B,GAERJ,GAGT7uC,EAAAA,cAAC2D,EAAAA,OAAM,CAACyB,IAAI,gBAAgBtE,UAAW,GAAGiuC,WAAwBn4B,QAASxW,KAAK0a,cAC3EirB,IAAalC,EAASoE,OAAS2G,EAAyCD,IAGjF9lB,aAAc,CACV7oB,EAAAA,cAAC2kC,EAAAA,GAAc,CACXv/B,IAAI,iBACJhB,GAAG,iBACHtD,UAAW,GAAGiuC,UACdlkC,QAASikC,KAGjB3qC,UAAAA,GAKAqoC,kBACJ,MAAM,UAAEroC,GAAc/D,KAAKC,OACrB,SAAE0lC,EAAQ,UAAEH,EAAS,aAAEO,EAAY,eAAEC,EAAc,QAAEyC,EAAO,iCAAE5B,GAAqC7mC,KAAK8H,OACxG,oCACFonC,EAAmC,mCACnCC,EAAkC,gCAClCC,EAA+B,2BAC/BC,EAA0B,kCAC1BC,EAAiC,6BACjCf,EAA4B,oCAC5BgB,EAAmC,4BACnCC,EAA2B,qCAC3BC,EAAoC,mBACpC3L,GACA//B,EAEE4qC,EAAgB,GAAG3uC,KAAKilB,wBACxB2pB,EAAgBjJ,IAAalC,EAASmC,IAAM,WAAa,YAE/D,MAAO,CACHkJ,eAAgBvsC,GAAAA,CAAW,GAAGvC,KAAKilB,yBAA0B2pB,GAC7DG,YAAa,CACTruC,UAAWiuC,GAEfK,aAAcrJ,IAAalC,EAASmC,IAAMuJ,EAAqCD,EAC/ED,iBAAkBtJ,IAAalC,EAASmC,KACpChmC,EAAAA,cAAA,KAAGc,UAAW,GAAGiuC,sBAAmCc,GAExD5L,OAAQD,EAAmB4B,EAAW,GAAGmJ,SAAsB7K,EAAoB9jC,KAAKsoC,gBACxFxf,QAAS,CACLlpB,EAAAA,cAAC8vC,EAAAA,GAAU,CACP1qC,IAAI,WACJhB,GAAG,WACHtD,UAAW,GAAGiuC,SACd10B,UAAWm1B,EACX3uC,KAAM4uC,EACN74B,QAASxW,KAAKkmC,6BACd3iB,UAAWklB,EACXzxB,iBAAkBhX,KAAKgX,mBAE3BpX,EAAAA,cAAC8vC,EAAAA,GAAU,CACP1qC,IAAI,SACJhB,GAAG,SACHtD,UAAW,GAAGiuC,WACd10B,UAAWq1B,EACX7uC,KAAM8tC,EACN/3B,QAASxW,KAAK0a,aACd1D,iBAAkBhX,KAAKgX,oBAG/ByR,aAAc,CACVsd,GACInmC,EAAAA,cAAC2kC,EAAAA,GAAc,CACXv/B,IAAI,iBACJhB,GAAG,iBACHtD,UAAWV,KAAKilB,gBAChBxa,QAAS8kC,IAGjBvJ,GACIpmC,EAAAA,cAAC2kC,EAAAA,GAAc,CACXv/B,IAAI,iBACJhB,GAAG,iBACHtD,UAAWV,KAAKilB,gBAChBxa,QAASo8B,GAAsE2I,KAI3FzrC,UAAAA,GAmEAkmC,kBACJjqC,KAAKgqC,UAAYhqC,KAAK+oC,kBAj1B1B9gC,EAAAA,EAAAA,IAAA,CADCC,EAAAA,IAAU,iCAqBDD,EAAAA,EAAAA,IAAA,CAAToR,EAAAA,IAAQ,8BAICpR,EAAAA,EAAAA,IAAA,CAAToR,EAAAA,IAAQ,+CAOCpR,EAAAA,EAAAA,IAAA,CAAToR,EAAAA,IAAQ,qCAzEPqrB,GAAwBz8B,EAAAA,EAAAA,IAAA,CAD7B6hB,EAAAA,IACK4a,GAu+BN,0GC/oCA,MAAMiL,EAAgDtsC,IAA4C,IAA3C,QAAEqmB,EAAO,MAAE/d,EAAK,aAAE8c,EAAY,MAAE5c,GAAOxI,EAC1F,OACIzD,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKynB,GACL/d,EACA8c,EACA5c,IAKP+jC,EAA8C3vC,IAChD,MAAM,eAAE6uC,EAAc,YAAEC,EAAW,aAAEC,EAAY,iBAAEC,EAAgB,OAAEpL,EAAM,QAAE/a,EAAO,aAAEL,EAAY,OAAElI,GAAWtgB,EAEzGknB,EACFvnB,EAAAA,cAAAA,EAAAA,SAAA,KACKqvC,EACDrvC,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAK8sC,GACLlL,GACGA,EAAOh/B,KAAK+E,GACDhK,EAAAA,cAAC+vC,EAAgB3tC,OAAAC,OAAA,GAAK2H,EAAI,CAAE5E,IAAK4E,EAAK5E,SAEpDyjB,GACGA,EAAa5jB,KAAI,CAACsF,EAAwBpF,IAC/BnF,EAAAA,cAACA,EAAAA,SAAc,CAACoF,IAAKD,GAAQoF,OAMlDmrB,EACFxM,GACAA,EAAQjkB,KAAI,CAAColB,EAAyBllB,IAC3BnF,EAAAA,cAACA,EAAAA,SAAc,CAACoF,IAAKD,GAAQklB,KAG5C,OAAO4lB,EAAaf,GAAgB,EAAME,EAAc7nB,EAAWmO,EAAa/U,IAG9EuvB,EAAiD7vC,IACnD,MAAM,eAAE6uC,EAAc,YAAEC,EAAW,aAAEC,EAAY,iBAAEC,EAAgB,aAAEluB,EAAY,QAAE+H,EAAO,aAAEL,EAAY,UAAE1kB,EAAS,OAAEwc,GAAWtgB,EAChI,IAAIknB,EAAY,KAEhB,GAAKpG,EAEE,CACH,MAAM,UAAEzC,EAAS,SAAEC,GAAawC,EAC1BgvB,EAAe,GAAGzxB,KAAaC,IAErC4I,EACIvnB,EAAAA,cAAAA,EAAAA,SAAA,KACKqvC,EACDrvC,EAAAA,cAACgD,EAAAA,KAAI,CAACJ,IAAI,KAAK9B,UAAW,GAAGquC,EAAYruC,kBACrCd,EAAAA,cAACgD,EAAAA,KAAI,CAACJ,IAAI,KAAK9B,UAAW,GAAGquC,EAAYruC,4BACpCqvC,GAEJ/tC,OAAOguC,KAAKjvB,GAAclc,KAAI,CAACoC,EAAMlC,KAClC,GAAIkC,IAAS08B,EAAAA,QAAQrlB,WAAarX,IAAS08B,EAAAA,QAAQplB,SAC/C,OAAO,KAEX,MAAM5S,EAAQ5H,EAAU,QAAQkD,iBAAsBA,EACtD,OACIrH,EAAAA,cAACgD,EAAAA,KAAI,CAACJ,IAAI,KAAK9B,UAAW,GAAGquC,EAAYruC,sBAAuBsE,IAAKD,GAChE4G,EACA,KACAoV,EAAa9Z,cArBtCkgB,EAAYsB,EA8BhB,MAAM6M,EACFxM,GACAA,EAAQjkB,KAAI,CAAColB,EAAyBllB,IAC3BnF,EAAAA,cAACA,EAAAA,SAAc,CAACoF,IAAKD,GAAQklB,KAG5C,OAAO4lB,EAAaf,GAAgB,EAAME,EAAc7nB,EAAWmO,EAAa/U,IAgB9EsvB,EAAeA,CACjBnvC,EACA4f,EACA2vB,EACAC,EACAC,EACAjE,IAGItsC,EAAAA,cAAC+iB,EAAAA,MAAK,CACFjiB,UAAU,2BACV0vC,cAAe1vC,EACfoiB,WAAS,EACTC,MAAM,EACNmS,gBAAgB,aAChB9S,OAAQ9B,EACRC,OAAQ2rB,GAERtsC,EAAAA,cAACojB,EAAAA,YAAW,CAACzC,OAAQ2rB,GAAc+D,GACnCrwC,EAAAA,cAACqjB,EAAAA,UAAS,KAAEitB,GACZtwC,EAAAA,cAAC0jB,EAAAA,YAAW,KAAE6sB,IAqD1B,EAhD+ElwC,IAC3E,MAAM,qBACF0rC,EAAoB,gBACpBC,EAAe,QACf/nC,EAAO,YACPioC,EAAW,cACXD,EAAa,sBACbG,EAAqB,KACrBG,EAAI,SACJxG,EAAQ,YACRuG,EAAW,8BACXI,EAA6B,sBAC7BnsB,GACAlgB,EAEEowC,EACFzwC,EAAAA,cAACgD,EAAAA,KAAI,CAAClC,UAAU,4CACXmrC,EACAS,GAIT,OAAIR,EAEIlsC,EAAAA,cAACyM,EAAAA,OAAMrK,OAAAC,OAAA,GAAK0pC,GACR/rC,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAK2pC,GACL/nC,EACAwsC,EACAlwB,EACA2rB,IAOblsC,EAAAA,cAACyM,EAAAA,OAAMrK,OAAAC,OAAA,GAAK0pC,GACR/rC,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAK2pC,GACL/nC,EACAwsC,EACAlwB,EACA6rB,GAEJG,GAjFImE,EAACpnC,EAAcqnC,EAA2BrE,KACvD,OAAQhjC,GACJ,IAAK,MACL,IAAK,OACD,OAAOtJ,EAAAA,cAACgwC,EAAgB5tC,OAAAC,OAAA,GAAKsuC,EAAS,CAAEhwB,OAAQ2rB,KACpD,IAAK,OACL,IAAK,SACD,OAAOtsC,EAAAA,cAACkwC,EAAmB9tC,OAAAC,OAAA,GAAKsuC,EAAS,CAAEhwB,OAAQ2rB,KACvD,QACI,OAAO,OAwEEoE,CAAS3K,EAAUwG,EAAMD,oIC3GvC,MAAM1H,EAA+CnhC,IAAA,IAAC,GACzDW,EAAE,KACFkF,EAAI,MACJ5I,EAAK,QACLmpB,EAAO,UACP/oB,EAAS,UACT8oB,EAAS,WACTgV,EAAU,WACV2F,EAAU,SACV/gB,EAAQ,eACRghB,EAAc,YACdK,GACHphC,EAAA,OACGzD,EAAAA,cAAA,SACIoE,GAAIA,EACJkF,KAAMA,EACN5I,MAAOA,EACPI,UAAW,GAAGA,UACd+oB,QAAqB,KAAZA,EAAiBA,OAAUpjB,EAAS,gBAC9Bm4B,EACfiG,YAAaA,EACbjb,UAAWY,EAAaZ,GACxBpG,SAAUA,EACVG,SAAU4gB,EACVqM,IAAKpM,KAYAC,EAA0Ct6B,IAAA,IAAC,GAAE/F,EAAE,MAAE4lB,EAAK,UAAElpB,EAAS,KAAED,EAAI,aAAE6jC,GAAcv6B,EAAA,OAChGnK,EAAAA,cAAA,SAAOoE,GAAI,GAAGA,UAAYtD,UAAW,GAAGA,UAAmBwiB,QAAS0G,IAC/DhV,EAAAA,EAAAA,QAAO0vB,EAAc7jC,KAcjBivC,EAA4C/kC,IAA4E,IAA3E,GAAE3G,EAAE,UAAEtD,EAAS,KAAED,EAAI,UAAEwZ,EAAS,iBAAEjD,EAAgB,SAAEuM,EAAQ,QAAE/M,GAAS7L,EAC7H,MAAM8O,GAAUC,EAAAA,EAAAA,kBAAiB,QAAS1C,EAAmBvW,GACvDqZ,GAAaC,EAAAA,EAAAA,wBAAuB/C,EAAmByC,GAC7D,OACI7Z,EAAAA,cAAC2D,EAAAA,OAAMvB,OAAAC,OAAA,CAAC+B,GAAIA,EAAItD,UAAWA,EAAS,aAAcuZ,EAAWsJ,SAAUA,EAAU/M,QAASA,GAAasD,GAClGrZ,IAYA8jC,EAAoDp5B,IAA8C,IAA7C,GAAEnH,EAAE,UAAEtD,EAAS,KAAEwI,EAAO,OAAM,QAAEuB,GAASU,EACvG,MAAMgf,EAAiB,GAAGzpB,MAAcwI,UAExC,OACItJ,EAAAA,cAAA,OAAKoE,GAAIA,EAAItD,UAAW6B,GAAAA,CAAW4nB,EAAgB,QAAS,GAAGjhB,UAAciR,KAAK,QAAO,YAAW,YAAW,cAAa,QACxHva,EAAAA,cAAA,KAAGc,UAAW,GAAGypB,UAAwB1f,KAK/C2f,EAAgBZ,IAClB,GAAIA,EAAW,CACX,MAAMa,EAAkBC,OAAOC,SAASf,EAAW,IACnD,IAAKgB,MAAMH,GACP,OAAOA,6qBChInB,MAAMomB,UAAuB7wC,EAAAA,cAClBuC,SACH,IAAKnC,KAAKC,MAAM+2B,QAAUh3B,KAAKC,MAAM+2B,MAAM1f,SAA+C,IAApCtX,KAAKC,MAAM+2B,MAAM1f,QAAQ/S,OAE3E,OADAvE,KAAKC,MAAMa,QAAQ6P,UAAUxG,MAAM,qDAC5B,KAEX,MAAMumC,EAASruC,EAAAA,EAAA,GACRrC,KAAKC,OAAK,IACb0wC,WAAY3wC,KAAKC,MAAM+2B,MAAM1f,QAC7Bs5B,WAAY,CACRtuC,YAAatC,KAAKC,MAClBS,UAAW6B,GAAAA,CAAW,kBAAmBvC,KAAKC,MAAMC,OAAOQ,WAC3D8B,IAAK,MAETquC,eAAgB,CACZnwC,UAAW6B,GAAAA,CAAW,uBAAwBvC,KAAKC,MAAMC,OAAOQ,WAChE8B,IAAK,QAIb,OAAOxC,KAAKC,MAAMyC,WAAWguC,IAIrC,oICpCO,MAAMI,EAAyD7wC,IAClE,MAAM,WAAE0wC,EAAU,WAAEC,EAAU,eAAEC,GAAmB5wC,EACnD,OAAK0wC,GAAoC,IAAtBA,EAAWpsC,OAK1B3E,IAAAA,cAACyM,EAAAA,OAAMrK,OAAAC,OAAA,GAAK2uC,GACPD,EAAW9rC,KAAI,CAACksC,EAAqBhsC,IAE9BnF,IAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAK4uC,EAAc,CAAE7rC,IAAKD,IAC1BgsC,OARjB9wC,EAAMa,QAAQ6P,UAAUxG,MAAM,+CACvB,OAef,ksBCYA,MAAM6mC,UAAkBpxC,EAAAA,cAAxBC,cAAA,oBAqCW,KAAAC,sBAAyBiF,GAAmBhF,IAC3CC,KAAKC,MAAMC,OAAO+wC,OAAQlsC,KAC1B/E,KAAKC,MAAMC,OAAO+wC,OAAQlsC,GAAO3E,UAAYL,EAAMM,OAAOC,QAQjD,KAAA4wC,sBAAwB,KACrC,MAAMC,EAAuCnxC,KAAKC,MAAMC,OAAO+wC,OACzDG,EAAgD,CAClD/vC,UAAW,CACPC,GAAI,CAAEC,EAAG,qBAAsBC,EAAG,GAAIC,EAAG,IACzCG,GAAI,CAAEL,EAAG,qBAAsBC,EAAG,GAAIC,EAAG,IACzCI,GAAI,CAAEN,EAAG,qBAAsBC,EAAG,GAAIC,EAAG,KAE7CK,UAAU,EACVC,iBAAiB,GAErB,OAAOovC,MAAAA,OAAS,EAATA,EAAWtsC,KAAI,CAAC+E,EAAM7E,KAAS,IAAA9D,EAAAowC,EAClC,MAAM,MAAElxC,EAAK,KAAE4I,EAAI,UAAE3I,GAAcwJ,EAE7B1I,EAAa,CACfC,aAAcnB,KAAKC,MAAMa,QAAQC,QAAQI,aACzCC,cAAoC,QAAvBH,EAAGd,MAAAA,OAAK,EAALA,EAAOiB,qBAAa,IAAAH,EAAAA,EAAImwC,GAGtCE,EAAgCvoC,MAAAA,OAAI,EAAJA,EAAMC,QAAQC,eAC9CsoC,EAAkD,QAArCF,EAAuBtoC,MAAAA,OAAI,EAAJA,EAAMS,gBAAQ,IAAA6nC,EAAAA,EAAItoC,MAAAA,OAAI,EAAJA,EAAMkR,UAC5Du3B,EAAyCzoC,MAAAA,OAAI,EAAJA,EAAMkR,UAC/Cw3B,EAAwB1oC,MAAAA,OAAI,EAAJA,EAAMmR,aAsBpC,MARsC,CAClC/Z,MAXAP,EAAAA,cAACY,EAAAA,GAAcwB,OAAAC,OAAA,GAAK9B,EAAWe,EAAU,CAAEgB,oBAAoB,QAAQrB,eAAgBb,KAAKC,MAAMa,QAAQC,WAY1GN,KATcL,GACdR,EAAAA,cAACY,EAAAA,GAA0B,CACvBC,KAAML,EACNM,UAAU,sBACVC,UAAW,CAAEC,OAAQZ,KAAKF,sBAAsBiF,GAAQlE,eAAgBb,KAAKC,MAAMa,QAAQC,WAM/FgI,KAAMuoC,EACNI,YAAaH,EACbI,cAAeH,EACfI,iBAAkBH,OAxFvBtvC,SAAM,IAAA0vC,EACT,MAAM,QAAEhuC,GAAY7D,KAAKC,MAAMC,OACzB4xC,EAAiBjuC,GAAWjE,EAAAA,cAACY,EAAAA,GAAa,CAACE,UAAU,uBAAuB8B,IAAgB,QAAbqvC,EAAEhuC,EAAQrB,WAAG,IAAAqvC,EAAAA,EAAI,KAAMpxC,KAAMoD,EAAQpD,OACpH2B,EAASC,EAAAA,EAAA,GACRrC,KAAKC,OAAK,IACbkxC,UAAW,CACP7uC,YAAatC,KAAKC,MAClBS,UAAW6B,GAAAA,CAAW,gBAAiBvC,KAAKC,MAAMC,OAAOQ,WACzD8B,IAAK,OAETuvC,iBAAkBD,EAClBE,mBAAoB,CAChBtxC,UAAW,sBACXyZ,KAAM,OACN3X,IAAK,MAETyvC,cAAe,CACXvxC,UAAW,2BACXyZ,KAAM,WACN3X,IAAK,MAET0vC,uBAAwB,CACpB1vC,IAAK,IACL9B,UAAW,sBACXyZ,KAAM,QAEVg4B,eAAgBnyC,KAAKkxC,0BAEzB,OAAOlxC,KAAKC,MAAMyC,WAAWN,IAmErC,sHCzHO,MAAMgwC,EAAiBnyC,IAC1B,MAAM,UAAEkxC,EAAS,mBAAEa,EAAkB,iBAAED,EAAgB,cAAEE,EAAa,eAAEE,EAAc,uBAAED,GAA2BjyC,EACnH,OACIL,EAAAA,cAACyM,EAAAA,OAAMrK,OAAAC,OAAA,GAAKkvC,GACPY,EACDnyC,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAK+vC,GACLG,MAAAA,OAAc,EAAdA,EAAgBttC,KAAI+E,IACjB,IAAIyoC,EAEJ,GAAIzoC,EAAKzJ,MAAO,CAEZkyC,EADezoC,EAAKzJ,MACHF,MAAMqyC,QACpB,CAEHD,EADczoC,EAAKnJ,KACHR,MAAMQ,KAE1B,OACIb,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKgwC,EAAa,CAAEjtC,IAAKqtC,IACzBzoC,EAAKzJ,OACFP,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GACGiwC,EAAsB,CAC1B1uC,KAAMoG,EAAKb,KACXwpC,QAAS3oC,EAAK8nC,YAAW,aACb9nC,EAAK+nC,cACjBjxC,UAAWwxC,EAAuBxxC,UAClCL,OAAQuJ,EAAKgoC,iBAAmB,cAAWvrC,IAE1CuD,EAAKzJ,OAGbyJ,EAAKnJ,YASlC,iuBCdO,MAAM+xC,UAAqC5yC,EAAAA,cAgB9CC,YAAmBI,GACf0D,MAAM1D,GAhBO,KAAAwyC,mBAAuCx7B,EAAAA,EAAAA,oBACpDjX,KAAKC,MAAMa,QAAQC,QAAQmW,kBAC3BlX,KAAKC,MAAMkX,aACXnX,KAAKC,MAAM0Q,WAgFR,KAAAvI,iBAAoBrI,GAA0CC,KAAKC,MAAMC,OAAOsK,MAAO/J,KAAOV,EAAMM,OAAOC,MA7E1G,uBAAuBsJ,EAAuB7E,EAAe2tC,GACjE,MAAMlR,EAAW,oCAAoCz8B,IACrD,OACInF,EAAAA,cAACA,EAAAA,SAAc,CAACoF,IAAKw8B,GAChB5hC,EAAAA,aAAmBgK,EAA4B,CAAE+oC,UAAW5tC,EAAO6tC,YAAaF,EAAcG,UAAU,KAS9G1wC,SAAM,IAAA2wC,EAAAC,EACT,MAAM,UAAEhvC,GAAc/D,KAAKC,OACrB,MAAEuK,EAAK,UAAE9J,GAAcV,KAAKC,MAAMC,OAClC8yC,EAAmBhzC,KAAKC,MAAM+2B,OAASh3B,KAAKC,MAAM+2B,MAAMic,wBACxDC,EAAsBF,GAAoBA,EAAiBzuC,OAC3D4uC,EAAoF,CACtF3wC,IAAK4wC,EAAAA,oBACL1yC,UAAsC,QAA7BoyC,EAAE9yC,KAAKC,MAAMC,OAAOQ,iBAAS,IAAAoyC,EAAAA,EAAI,GAC1CO,iBAAkBtvC,EAAUuvC,gBAC5BC,iBAAkBxvC,EAAUyvC,YAC5BC,SAAUzzC,KAAKC,MAAM+D,GACrBgT,iBAAkBhX,KAAKyyC,kBACvBiB,UAAU,GAGRC,EAAgBnpC,GAClB5K,EAAAA,cAACY,EAAAA,GAAa,CACVE,UAAU,gCACV8B,IAAc,QAAXuwC,EAAEvoC,EAAMhI,WAAG,IAAAuwC,EAAAA,EAAI,KAClBtyC,KAAM+J,EAAM/J,KACZE,UAAW,CAAEC,OAAQZ,KAAKoI,iBAAkBvH,eAAgBb,KAAKC,MAAMa,QAAQC,WAGjFqB,EAASC,EAAAA,EAAA,GACRrC,KAAKC,OAAK,IACbuK,MAAOmpC,EACPC,oCAAqC,CACjClzC,UAAW,8CAEfmzC,sCAAuC,CACnCvxC,YAAatC,KAAKC,MAClBS,UAAW6B,GAAAA,CAAW,oCAAqC7B,IAE/DozC,6CAA8C,CAC1CtxC,IAAK,MACL9B,UAAW,6CAEfqzC,4CAA6C,CACzCvxC,IAAK,MACL9B,UAAW,4CAEfyyC,kCAAAA,EACAa,iCAAkC,CAC9BxxC,IAAK,KACL9B,UAAW,6CACXyZ,KAAM,YAEV85B,wCAAyCj0C,KAAKC,MAAM+2B,MAAMic,wBAC1DiB,yCACIhB,EAnCwB,GAoCxBF,EAAiBnuC,KAAI,CAAC+E,EAAuB7E,IACzCytC,EAA6B2B,gBAAgBvqC,EAAM7E,EAAOmuC,OAGtE,OAAOlzC,KAAKC,MAAMyC,WAAWN,IAarC,kJCjHO,MAAMgyC,EAAqFn0C,IAC9F,MAAM,MACFuK,EAAK,oCACLopC,EAAmC,sCACnCC,EAAqC,6CACrCC,EAA4C,yCAC5CI,EAAwC,wCACxCD,EAAuC,4CACvCF,EAA2C,kCAC3CZ,EAAiC,iCACjCa,GACA/zC,EACJ,OACIL,IAAAA,cAACyM,EAAAA,OAAMrK,OAAAC,OAAA,GAAK4xC,GACRj0C,IAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAK2xC,GAAsCppC,GAChD5K,IAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAK6xC,GAA+CI,GACzDt0C,IAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAK8xC,GACNn0C,IAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKkxC,GACLc,GACGA,EAAwCpvC,KAAI,CAACwvC,EAAqBtvC,KAC9D,MAAMy8B,EAAW,sCAAsCz8B,IACvD,OACInF,IAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAK+xC,EAAgC,CAAEhvC,IAAKw8B,IAC5C6S,UAUrC,yJCrBO,MAAMC,UAA0C10C,EAAAA,cAAvDC,cAAA,oBAoBqB,KAAAyZ,kBAAqBC,IAClC,IAAKA,IAAa9J,EAAAA,gBAAgBC,YAAY6J,GAC1C,OAAO,KAEX,MAAMC,EAAuC,GAC7C,IAAK,MAAMzQ,KAAQwQ,EAAU,CAEzB,MAAME,GAAUC,EAAAA,EAAAA,kBAAiB,QAAS1Z,KAAKC,MAAM+W,iBAAkB,GAAI,IACrExN,EAAWT,EAAKS,SAAWT,EAAKS,SAAW,GACjDiQ,EAAQG,cAAcC,MAAQrQ,EAC9B,MAAMsQ,GAAaC,EAAAA,EAAAA,wBAAuB/Z,KAAKC,MAAM+W,iBAAkByC,GACjEO,EAAoC,CACtCC,UAAWlR,EAAKkR,UAChBvZ,UAAW,0CACX8I,SAAUT,EAAKS,SACfR,QAASD,EAAKC,QAAQC,eACtBiR,aAAcnR,EAAKmR,aACnBC,KAAM,SACNC,qBAAsBN,EACtBtD,SAASsqB,EAAAA,EAAAA,kBAAiB9gC,KAAKC,MAAM+W,iBAAkByC,EAASjQ,IAEpEgQ,EAAca,KAAKL,GAGvB,OAAOR,GA3CJrX,SACH,MAAMqX,EAAgBxZ,KAAKsZ,kBAAkBtZ,KAAKC,MAAMsI,OACxD,OACI3I,EAAAA,cAAA,OAAKc,UAAU,4CACV8Y,GAAiB/J,EAAAA,gBAAgBC,YAAY8J,GAC1C5Z,EAAAA,cAACY,EAAAA,GAAc,CACX+H,MAAOiR,EACP7Y,UAAW,CAAE0X,aAAcrY,KAAKC,MAAMoY,aAAcxX,eAAgBb,KAAKC,MAAMY,kBAEnF,OAqCpB,+kBCzBO,MAAM0zC,UAA+B30C,EAAAA,cAOxCC,YAAmBI,GACf0D,MAAM1D,GAPO,KAAAwyC,mBAAuCx7B,EAAAA,EAAAA,oBACpDjX,KAAKC,MAAMa,QAAQC,QAAQmW,kBAC3BlX,KAAKC,MAAMkX,aACXnX,KAAKC,MAAM0Q,WAkER,KAAA/M,oBAAuB7D,IAC1BC,KAAKC,MAAMC,OAAO2D,QAASpD,KAAOV,EAAMM,OAAOC,OAO5C,KAAAR,sBAAyBC,IAC5BC,KAAKC,MAAMC,OAAOE,UAAYL,EAAMM,OAAOC,OAQxC,KAAAyjB,qBAAwBC,GAAuBjkB,IAA8C,IAAAy0C,EACrE,QAA3BA,EAAIx0C,KAAKC,MAAMC,OAAOqI,aAAK,IAAAisC,GAAvBA,EAA0BlqB,OAAOtG,MACjChkB,KAAKC,MAAMC,OAAOqI,MAAM+hB,OAAOtG,IAAYxa,SAAWzJ,EAAMM,OAAOC,QA9EpE6B,SACH,MAAM,UAAEwwC,EAAS,YAAEC,EAAW,SAAEC,GAAa7yC,KAAKC,OAC5C,QAAE4D,EAAO,UAAEzD,EAAS,MAAED,EAAK,MAAEoI,GAAUvI,KAAKC,MAAMC,OAClDu0C,EAAmBlsC,GAASkH,EAAAA,gBAAgBC,YAAYnH,IAC1D3I,EAAAA,cAAC00C,EAAiC,CAC9B/rC,MAAOA,EACP8P,aAAcrY,KAAK+jB,qBACnBljB,eAAgBb,KAAKC,MAAMa,QAAQC,QACnCiW,iBAAkBhX,KAAKyyC,oBAIzBrwC,EAASC,EAAAA,EAAA,GACRrC,KAAKC,OAAK,IACb0yC,UAAAA,EACAC,YAAAA,EACAC,SAAUA,IAAsB,EAChCroC,MAAOxK,KAAK00C,eAAe7wC,GAC3BzD,UAAWJ,KAAK20C,iBAAiBv0C,GACjCD,MAAOH,KAAK40C,aAAaz0C,GACzBoI,MAAOksC,EACPI,YAAa,CACTvyC,YAAatC,KAAKC,MAClBS,UAAW,IAEfo0C,8CAA+C,CAC3CtyC,IAAK,MACL9B,UAAW,yDAEfq0C,0CAA2C,CACvCvyC,IAAK,MACL9B,UAAW,qDAEfs0C,4CAA6C,CACzCxyC,IAAK,MACL9B,UAAW,uDAEfu0C,4CAA6C,CACzCzyC,IAAK,MACL9B,UAAW,2CACX,aAAcmD,MAAAA,OAAO,EAAPA,EAASpD,KACvBy0C,SAAU,IACV/6B,KAAM,SAEVg7B,wCAAyC,CACrCz0C,UAAW,mDAEf00C,0CAA2C,CACvC10C,UAAW,uDAInB,OAAOV,KAAKC,MAAMyC,WAAWN,GA8BzBuyC,iBAAiBl0C,GACrB,OAAKA,EAIDb,EAAAA,cAACY,EAAAA,GAA0B,CACvBC,KAAMA,EACNC,UAAU,0CACVC,UAAW,CAAEC,OAAQZ,KAAKF,sBAAuBe,eAAgBb,KAAKC,MAAMa,QAAQC,WANjF,KAWP2zC,eAAe7wC,GAAsB,IAAAguC,EACzC,OAAKhuC,EAGDsnB,EAAAA,iBAAiBif,mBAAmBvmC,EAAQpD,MACrC,KAIPb,EAAAA,cAACY,EAAAA,GAAa,CACVgC,IAAgB,QAAbqvC,EAAEhuC,EAAQrB,WAAG,IAAAqvC,EAAAA,EAAI,KACpBpxC,KAAMoD,EAAQpD,KACdC,UAAU,2CACVC,UAAW,CAAEC,OAAQZ,KAAK4D,oBAAqB/C,eAAgBb,KAAKC,MAAMa,QAAQC,WAX/E,KAgBP6zC,aAAahrC,EAA4ByrC,GAA+B,IAAAC,EAAAC,EAE5E,MAUMC,EAAwB5rC,MAAAA,GAAmB,QAAf0rC,EAAJ1rC,EAAMxI,qBAAa,IAAAk0C,GAAnBA,EAAqBj0C,UAAYuI,EAAKxI,cAVd,CAClDC,UAAW,CACPC,GAAI,CAAEC,EAAG,kBAAmBC,EAAG,IAAKC,EAAG,KACvCC,GAAI,CAAEH,EAAG,kBAAmBC,EAAG,IAAKC,EAAG,KACvCE,GAAI,CAAEJ,EAAG,kBAAmBC,EAAG,IAAKC,EAAG,KACvCG,GAAI,CAAEL,EAAG,kBAAmBC,EAAG,IAAKC,EAAG,KACvCI,GAAI,CAAEN,EAAG,kBAAmBC,EAAG,IAAKC,EAAG,MAE3CK,UAAU,GAGd,OACIlC,EAAAA,cAACY,EAAAA,GAAcwB,OAAAC,OAAA,GACP2H,EAAI,CACR/I,eAAgBb,KAAKC,MAAMa,QAAQC,QACnCI,aAAcnB,KAAKC,MAAMa,QAAQC,QAAQI,aACzCC,cAAeo0C,EACftzC,oBAAoB,UAAS,cAChBmzC,EACb10C,UAAW,CACPqE,IAA4B,QAAzBuwC,EAAEv1C,KAAKC,MAAMC,OAAOC,aAAK,IAAAo1C,EAAAA,EAAI,GAChC10C,eAAgBb,KAAKC,MAAMa,QAAQC,QACnC00C,WAAYz1C,KAAKC,MAAMy1C,SACvBC,kBAAmB,QACnBC,SAAU51C,KAAKC,MAAM+D,QAOzC,+GC/LK6xC,uCAAL,SAAKA,GACDA,EAAAA,EAAA,mCACAA,EAAAA,EAAA,mCACAA,EAAAA,EAAA,iCACAA,EAAAA,EAAA,iCAJJ,CAAKA,IAAAA,EAAW,KAehB,MAiEaC,EAAuE71C,IAChF,MAAM,SAAE4yC,EAAQ,YAAEgC,EAAW,UAAElC,EAAS,YAAEC,GAAgB3yC,EAC1D,OAAI4yC,EACOjzC,EAAAA,cAAAA,EAAAA,SAAA,KApEMm2C,EAACC,EAA6CrD,EAAoBC,KACnF,MAAM,MACFpoC,EAAK,UACLpK,EAAS,MACTD,EAAK,MACLoI,EAAK,4CACL0sC,EAA2C,wCAC3CE,EAAuC,0CACvCC,GACAY,EACEC,EAAWtD,EAAYA,EAAYkD,EAAYK,cAAgBL,EAAYK,cAC3EC,EAAiBvD,GAA4BiD,EAAYO,eACzDC,EAAaJ,EAAWJ,EAAYS,eACpCC,EAAWN,GAAYJ,EAAYW,cAAgB,WAAa,GAChEC,GACFN,GAAmBF,IAAaE,GAAkBF,IAAaE,EAAiBN,EAAYK,cAA6B,GAAZ,UAC3GQ,EAAgBL,IAAeR,EAAYO,eAAiB,oBAAsB,GAClFO,EAAeN,IAAeR,EAAYK,cAAgB,mBAAqB,GAC/EU,EAAmBr0C,GAAAA,CAAW,2CAA4Co0C,EAAcD,EAAeH,EAAUE,GAEvH,OACI72C,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKgzC,EAA2C,CAAEv0C,UAAWk2C,IAC9Dh3C,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKkzC,GAA0Ch1C,GACpDP,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKmzC,GACL5qC,EACApK,EACAmI,KA0CCwtC,CAAa91C,EAAO0yC,EAAWC,IAEtChzC,EAAAA,cAACyM,EAAAA,OAAMrK,OAAAC,OAAA,GAAK4yC,GAjCKmB,CAAAA,IACxB,MAAM,MACFxrC,EAAK,UACLpK,EAAS,MACTD,EAAK,MACLoI,EAAK,8CACLusC,EAA6C,0CAC7CC,EAAyC,4CACzCC,GACAgB,EACJ,OACIp2C,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAK6yC,GACNl1C,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAK8yC,GAA4C50C,GACtDP,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAK+yC,GACLxqC,EACApK,EACAmI,KAiBoBsuC,CAAe52C,KAGpD,6uBC5DA,IAAM62C,EAAN,cAAkBl3C,EAAAA,UAMdC,YAAmBI,GACf0D,MAAM1D,GALF,KAAA82C,QAAkB,IAET,KAAAC,OAAuCp3C,EAAAA,YAyJjD,KAAAgE,oBAAuB7D,IAC1BC,KAAKC,MAAMC,OAAO2D,QAASpD,KAAOV,EAAMM,OAAOC,OAMlC,KAAA22C,SAAW,KAAK,IAAAC,EAAAC,EAC7B,MACIr2C,SACIgC,eACIjC,gBAAgB,QAAEiP,KAEzB,KACD7I,GACAjH,KAAKC,MAET,GAAkC,QAA9Bi3C,EAAAjwC,EAAKmwC,iCAAyB,IAAAF,GAAQ,QAARA,EAA9BA,EAAgC9vC,cAAM,IAAA8vC,GAAtCA,EAAwCG,gBAAsD,QAAxCF,EAAIlwC,EAAKqwC,uCAA+B,IAAAH,GAAQ,QAARA,EAApCA,EAAsC/vC,cAAM,IAAA+vC,GAA5CA,EAA8CE,eAAgB,CACxH,MAAME,EAAiB,CACnBC,YAAa1nC,MAAAA,OAAO,EAAPA,EAAS2nC,eACtBC,mBAAmB,GAEvB13C,KAAK6E,IAAM,IAAI8yC,UAAUC,KAAKd,IAAI92C,KAAKg3C,OAAOp8B,QAAwB28B,GACtEI,UAAUC,KAAKC,OAAOC,WAAW93C,KAAK6E,IAAK,SAASshC,UAAW,IAAA4R,EACwBC,EAAAC,EAI5EC,EAJiC,QAAxCH,EAAI9wC,EAAKqwC,uCAA+B,IAAAS,GAAQ,QAARA,EAApCA,EAAsC3wC,cAAM,IAAA2wC,GAA5CA,EAA8CI,iCAEV,QAApCH,EAAA/wC,EAAKqwC,uCAA+B,IAAAU,GAAQ,QAARA,EAApCA,EAAsC5wC,cAAM,IAAA4wC,GAA5CA,EAA8CI,gCAA+B,SACnC,QAA1CH,EAAMhxC,EAAKqwC,uCAA+B,IAAAW,GAAQ,QAARA,EAApCA,EAAsC7wC,cAAM,IAAA6wC,OAAA,EAA5CA,EAA8CI,8BAAyBhyC,WAEzC,QAApC6xC,EAAMjxC,EAAKmwC,iCAAyB,IAAAc,GAAQ,QAARA,EAA9BA,EAAgC9wC,cAAM,IAAA8wC,OAAA,EAAtCA,EAAwCI,gCAA2BjyC,SAMxE,KAAAkyC,0BAA4B,KAAK,IAAAC,EAC9C,MAAMC,EAAiBz4C,KAAKC,MAAMC,OAAOu4C,eACnCnB,EAAiF,QAAlDkB,EAAGx4C,KAAKC,MAAMgH,KAAKqwC,uCAA+B,IAAAkB,OAAA,EAA/CA,EAAiDpxC,OACnFsxC,EAAsBpB,MAAAA,OAA+B,EAA/BA,EAAiCqB,gBACvDC,EAAwBtB,MAAAA,OAA+B,EAA/BA,EAAiCsB,sBAE/D,GAAI54C,KAAK6E,KAAO4K,EAAAA,gBAAgBC,YAAYgpC,GAAsB,CAC9D,IAAIG,EACJ74C,KAAK6E,IAAIi0C,SAASC,QAClB,MAAMC,EAAwC,GAExCL,EAAkBD,EAAoBnqB,QAAO0qB,QAAuC5yC,IAAxB4yC,EAAYC,UAE9E,IAAK,MAAOn0C,EAAOo0C,KAAoBR,EAAgBS,UAAW,CAC9D,MAAMC,EAAUF,EAAgBD,QAEhC,GAAIG,MAAAA,GAAAA,EAASC,UAAYD,EAAQE,UAAW,CACxC,MAAMC,EAAqBZ,KAA0BS,MAAAA,OAAO,EAAPA,EAASI,UACxDzjC,EAAUhW,KAAK05C,mBAAmBF,EAAoBz0C,EAAO0zC,GAC7DkB,EAAU,IAAIhC,UAAUC,KAAKgC,QAAQ,IAAIjC,UAAUC,KAAKiC,SAASR,MAAAA,OAAO,EAAPA,EAASC,SAAUD,EAAQE,WAAYvjC,GAE9G2hC,UAAUC,KAAKC,OAAOC,WAAW6B,EAAS,SAAS,KAC/C35C,KAAK85C,8BAA8BT,EAAQI,aAE/CD,EAAqBR,EAASe,QAAQJ,GAAWX,EAAS3+B,KAAKs/B,GAE3DH,IACAX,EAAcQ,IAI1B,GAAIR,EAAa,CACb,MAAMmB,EAAkB,IAAIrC,UAAUC,KAAKiC,SAAShB,EAAYS,SAAUT,EAAYU,WACtFv5C,KAAK6E,IAAIo1C,QAAQ,CAAEC,OAAQF,QACxB,CAAC,IAADG,EACHn6C,KAAK6E,IAAIo1C,QAAQ,CACbG,OAAmC,QAA7BD,EAAExC,UAAUC,KAAKyC,oBAAY,IAAAF,OAAA,EAA3BA,EAA6BG,WAAWtB,KAIxDh5C,KAAK6E,IAAI01C,WAAW,CAAE7C,mBAAmB,IACzC13C,KAAK6E,IAAIi0C,SAASz+B,KAAK2+B,KAOd,KAAAwB,WAAa,KAAK,IAAAC,EAAAC,EAC/B,MAAMjC,EAAiBz4C,KAAKC,MAAMC,OAAOu4C,eACnCrB,EAAqE,QAA5CqD,EAAGz6C,KAAKC,MAAMgH,KAAKmwC,iCAAyB,IAAAqD,OAAA,EAAzCA,EAA2CrzC,OACvEuzC,EAA0BvD,MAAAA,GAAkC,QAATsD,EAAzBtD,EAA2Bt2C,eAAO,IAAA45C,OAAA,EAAlCA,EAAoCC,wBAC9DC,EAA0BxD,MAAAA,OAAyB,EAAzBA,EAA2BwD,wBAE3D,GAAI56C,KAAK6E,KAAO81C,EAAyB,CACrC,IAAI9B,EACJ74C,KAAK6E,IAAIi0C,SAASC,QAClB,MAAMC,EAAwC,GAExC6B,EAAoBF,EAAwBpsB,QAAOusB,QAAuCz0C,IAA9By0C,EAAMC,sBAExE,IAAK,MAAOh2C,EAAOi2C,KAAkBH,EAAkBzB,UAAW,CAAC,IAAD6B,EAC9D,MAAMC,EAAiD,QAApCD,EAAGD,EAAcD,2BAAmB,IAAAE,OAAA,EAAjCA,EAAmCE,gBAEzD,GAAID,MAAAA,GAAAA,EAAe5B,UAAY4B,EAAc3B,UAAW,CACpD,MAAM6B,EAAqBR,IAA4BM,EAAcG,cAC/DrlC,EAAUhW,KAAK05C,mBAAmB0B,EAAoBr2C,EAAO0zC,GAC7DkB,EAAU,IAAIhC,UAAUC,KAAKgC,QAC/B,IAAIjC,UAAUC,KAAKiC,SAASqB,EAAc5B,SAAU4B,EAAc3B,WAClEvjC,GAGJ2hC,UAAUC,KAAKC,OAAOC,WAAW6B,EAAS,SAAS,KAC/C35C,KAAKs7C,iBAAiBJ,EAAcG,kBAExCD,EAAqBpC,EAASe,QAAQJ,GAAWX,EAAS3+B,KAAKs/B,GAE3DyB,IACAvC,EAAcqC,IAK1B,GAAIrC,EAAa,CACb,MAAMmB,EAAkB,IAAIrC,UAAUC,KAAKiC,SAAShB,EAAYS,SAAUT,EAAYU,WACtFv5C,KAAK6E,IAAIo1C,QAAQ,CAAEC,OAAQF,QACxB,CAAC,IAADuB,EAEHv7C,KAAK6E,IAAIo1C,QAAQ,CACbG,OAAmC,QAA7BmB,EAAE5D,UAAUC,KAAKyC,oBAAY,IAAAkB,OAAA,EAA3BA,EAA6BjB,WAAWtB,KAIxDh5C,KAAK6E,IAAI01C,WAAW,CAAE7C,mBAAmB,IACzC13C,KAAK6E,IAAIi0C,SAASz+B,KAAK2+B,KAQd,KAAAsC,iBAAoBE,IACjC,MAAMpE,EAA4Bp3C,KAAKC,MAAMgH,KAAKmwC,0BAA0BhwC,OAC5EgwC,MAAAA,GAAAA,EAA2BkB,gCAA2BjyC,GAClDm1C,GACA51B,YAAW,KACPwxB,MAAAA,GAAAA,EAA2BkB,2BAA2BkD,KACvDx7C,KAAK+2C,UAQC,KAAA+C,8BAAiC2B,IAAsC,IAAAC,EACpF,MAAMpE,EAAiF,QAAlDoE,EAAG17C,KAAKC,MAAMgH,KAAKqwC,uCAA+B,IAAAoE,OAAA,EAA/CA,EAAiDt0C,OAEzFkwC,MAAAA,GAAAA,EAAiCc,gCAA+B,GAChEd,MAAAA,GAAAA,EAAiCe,8BAAyBhyC,GACtDo1C,GACA71B,YAAW,KACP0xB,MAAAA,GAAAA,EAAiCe,yBAAyBoD,KAC3Dz7C,KAAK+2C,UAWC,KAAA2C,mBAAqB,CAAC0B,EAA6Br2C,EAAe0zC,KAC/E,MAAMh4C,EAAOg4C,MAAAA,GAAAA,EAAgBkD,WAAa52C,EAAQ,GAAGI,gBAAakB,EAE5Du1C,GAAOnD,MAAAA,OAAc,EAAdA,EAAgBmD,OAAQ,EAC/BC,EAAQT,IAAqB3C,MAAAA,OAAc,EAAdA,EAAgBqD,kBAA0CrD,MAAAA,OAAc,EAAdA,EAAgBoD,OACvGrzC,EAAOxI,KAAK+7C,YAAYH,EAAMC,EAAOp7C,GAE3C,MAAO,CAEHo7C,MAAOT,EAAqB3C,MAAAA,OAAc,EAAdA,EAAgBqD,eAAiBrD,MAAAA,OAAc,EAAdA,EAAgBoD,MAC7ErzC,KAAAA,IAIS,KAAAuzC,YAAc,CAACH,EAAcC,EAAgBp7C,IAEnD,kDADmB,GAC2Cm7C,cAD3C,GACwEA,8DACxEC,+MACZp7C,EAAO,oFAAoFA,WAAgB,6BA/UtH+G,oBAAiB,IAAAw0C,EAAAC,EAAAC,EACpB,MACIp7C,SAAS,UACL6P,EACA7N,eACIjC,gBAAgB,QAAEiP,MAG1B9P,KAAKC,MAET,GAAI6P,IAAYA,EAAQ2nC,eAEpB,YADA9mC,EAAUxG,MAAM,8BAIpB,GAAI2F,IAAYA,EAAQqsC,gBAEpB,YADAxrC,EAAUxG,MAAM,4BAIpB,MAAMiyC,EAAkB,CACpBp3C,IAAK8K,MAAAA,OAAO,EAAPA,EAAS2nC,eACd4E,KAAMr8C,KAAKC,MAAMa,QAAQgC,cAAcjC,eAAewgB,OACtDi7B,OAA0B,QAApBN,EAAEh8C,KAAKC,MAAMa,eAAO,IAAAk7C,GAAe,QAAfA,EAAlBA,EAAoBl5C,qBAAa,IAAAk5C,GAAgB,QAAhBA,EAAjCA,EAAmCn7C,sBAAc,IAAAm7C,GAAS,QAATA,EAAjDA,EAAmDlsC,eAAO,IAAAksC,OAAA,EAA1DA,EAA4DO,6BAMrE,IAADC,GAF2C,QAAzCP,EAAAj8C,KAAKC,MAAMgH,KAAKmwC,iCAAyB,IAAA6E,GAAQ,QAARA,EAAzCA,EAA2C70C,cAAM,IAAA60C,GAAjDA,EAAmD5E,gBACJ,QADkB6E,EACjEl8C,KAAKC,MAAMgH,KAAKqwC,uCAA+B,IAAA4E,GAAQ,QAARA,EAA/CA,EAAiD90C,cAAM,IAAA80C,GAAvDA,EAAyD7E,kBAEzDr3C,KAAKi3C,WAC8C,QAAnDuF,EAAIx8C,KAAKC,MAAMgH,KAAKqwC,uCAA+B,IAAAkF,GAAQ,QAARA,EAA/CA,EAAiDp1C,cAAM,IAAAo1C,GAAvDA,EAAyDrE,gCACzDn4C,KAAKu4C,4BAELv4C,KAAKw6C,eAIbiC,EAAAA,EAAAA,KACI,SAAAC,EAAA,QAAiD,QAA1CA,EAAC18C,KAAKC,MAAMgH,KAAKmwC,iCAAyB,IAAAsF,GAAQ,QAARA,EAAzCA,EAA2Ct1C,cAAM,IAAAs1C,IAAjDA,EAAmDC,uBAC3D,KAAK,IAAAC,EACwC,QAAzCA,EAAA58C,KAAKC,MAAMgH,KAAKmwC,iCAAyB,IAAAwF,GAAQ,QAARA,EAAzCA,EAA2Cx1C,cAAM,IAAAw1C,GAAjDA,EAAmDD,oBAAmB,OAI9EF,EAAAA,EAAAA,KACI,SAAAI,EAAA,QAAuD,QAAhDA,EAAC78C,KAAKC,MAAMgH,KAAKqwC,uCAA+B,IAAAuF,GAAQ,QAARA,EAA/CA,EAAiDz1C,cAAM,IAAAy1C,IAAvDA,EAAyDF,uBACjE,KAAK,IAAAG,EAC8C,QAA/CA,EAAA98C,KAAKC,MAAMgH,KAAKqwC,uCAA+B,IAAAwF,GAAQ,QAARA,EAA/CA,EAAiD11C,cAAM,IAAA01C,GAAvDA,EAAyDH,oBAAmB,OAIpFz1C,EAAAA,EAAAA,KACI,SAAA61C,EAAAC,EAAA,OAC6C,QAAzCD,EAAA/8C,KAAKC,MAAMgH,KAAKmwC,iCAAyB,IAAA2F,GAAQ,QAARA,EAAzCA,EAA2C31C,cAAM,IAAA21C,OAAA,EAAjDA,EAAmDE,cACJ,QADcD,EAC7Dh9C,KAAKC,MAAMgH,KAAKqwC,uCAA+B,IAAA0F,GAAQ,QAARA,EAA/CA,EAAiD51C,cAAM,IAAA41C,OAAA,EAAvDA,EAAyDC,eAC7D,KAAK,IAAAC,EACwEC,EAElEC,EAF4C,QAAnDF,EAAIl9C,KAAKC,MAAMgH,KAAKqwC,uCAA+B,IAAA4F,GAAQ,QAARA,EAA/CA,EAAiD91C,cAAM,IAAA81C,GAAvDA,EAAyDD,WACV,QAA/CE,EAAAn9C,KAAKC,MAAMgH,KAAKqwC,uCAA+B,IAAA6F,GAAQ,QAARA,EAA/CA,EAAiD/1C,cAAM,IAAA+1C,GAAvDA,EAAyDF,WAAWb,GAE3B,QAAzCgB,EAAAp9C,KAAKC,MAAMgH,KAAKmwC,iCAAyB,IAAAgG,GAAQ,QAARA,EAAzCA,EAA2Ch2C,cAAM,IAAAg2C,GAAjDA,EAAmDH,WAAWb,OAK1El1C,EAAAA,EAAAA,KACI,SAAAm2C,EAAAC,EAAA,OAC6C,QAAzCD,EAAAr9C,KAAKC,MAAMgH,KAAKmwC,iCAAyB,IAAAiG,GAAQ,QAARA,EAAzCA,EAA2Cj2C,cAAM,IAAAi2C,OAAA,EAAjDA,EAAmDhG,kBACJ,QADkBiG,EACjEt9C,KAAKC,MAAMgH,KAAKqwC,uCAA+B,IAAAgG,GAAQ,QAARA,EAA/CA,EAAiDl2C,cAAM,IAAAk2C,OAAA,EAAvDA,EAAyDjG,mBAC7D,KACIr3C,KAAKi3C,eAIb/vC,EAAAA,EAAAA,KACI,KAAK,IAAAq2C,EAAAC,EACD,MAAO,CAC6C,QAD7CD,EACHv9C,KAAKC,MAAMgH,KAAKmwC,0BAA0BhwC,cAAM,IAAAm2C,GAAS,QAATA,EAAhDA,EAAkDz8C,eAAO,IAAAy8C,OAAA,EAAzDA,EAA2D5C,wBACX,QADkC6C,EAClFx9C,KAAKC,MAAMgH,KAAKmwC,0BAA0BhwC,cAAM,IAAAo2C,OAAA,EAAhDA,EAAkD5C,wBAClD56C,KAAK6E,QAGb,KACI7E,KAAKw6C,iBAIbtzC,EAAAA,EAAAA,KACI,KAAK,IAAAu2C,EAAAC,EACD,MAAO,CAC4C,QAD5CD,EACHz9C,KAAKC,MAAMgH,KAAKqwC,uCAA+B,IAAAmG,GAAQ,QAARA,EAA/CA,EAAiDr2C,cAAM,IAAAq2C,OAAA,EAAvDA,EAAyD9E,gBACV,QADyB+E,EACxE19C,KAAKC,MAAMgH,KAAKqwC,uCAA+B,IAAAoG,GAAQ,QAARA,EAA/CA,EAAiDt2C,cAAM,IAAAs2C,OAAA,EAAvDA,EAAyD9E,sBACzD54C,KAAK6E,QAGb,KACI7E,KAAKu4C,+BAKVp2C,SAAM,IAAAw7C,EAAAC,EAAAC,EAAAC,EACT,MACI59C,QAAQ,QAAE2D,EAAO,UAAEnD,GAAW,KAC9BuG,GACAjH,KAAKC,MAEH89C,EAAiD,QAA9BJ,EAAA12C,EAAKmwC,iCAAyB,IAAAuG,GAAQ,QAARA,EAA9BA,EAAgCv2C,cAAM,IAAAu2C,GAAtCA,EAAwCK,aAC7B,QADyCJ,EACvE32C,EAAKmwC,iCAAyB,IAAAwG,GAAQ,QAARA,EAA9BA,EAAgCx2C,cAAM,IAAAw2C,OAAA,EAAtCA,EAAwCK,iBAAiBC,aACrB,QAApCL,EAAA52C,EAAKqwC,uCAA+B,IAAAuG,GAAQ,QAARA,EAApCA,EAAsCz2C,cAAM,IAAAy2C,IAA5CA,EAA8C1F,mCACV,QADyC2F,EAC7E72C,EAAKqwC,uCAA+B,IAAAwG,GAAQ,QAARA,EAApCA,EAAsC12C,cAAM,IAAA02C,OAAA,EAA5CA,EAA8CG,iBAAiBC,YAG/D97C,EAASC,EAAAA,EAAA,GACRrC,KAAKC,OAAK,IACbk+C,YAAa,CACT37C,IAAK,MACLF,YAAatC,KAAKC,MAClBS,UAAW6yB,GAAAA,CAAU,SAAU,CAAE6qB,KAAML,GAAoBr9C,IAE/D29C,OAAQ,CACJC,YAAa,CAAE59C,UAAW,kBAC1BmD,SAASA,MAAAA,OAAO,EAAPA,EAASpD,OACdb,EAAAA,cAACY,EAAAA,GAAawB,OAAAC,OAAA,CACVvB,UAAU,mBACNmD,EAAO,CACXrB,IAAKqB,EAAQrB,KAAO,KACpB/B,KAAMoD,EAAQpD,KACdE,UAAW,CAAEC,OAAQZ,KAAK4D,oBAAqB/C,eAAgBb,KAAKC,MAAMa,QAAQC,aAI9Fw9C,SAAU,CACN/7C,IAAK,MACL9B,UAAW,eACX8vC,IAAKxwC,KAAKg3C,QAEdF,IAAK92C,KAAK6E,MAGd,OAAO7E,KAAKC,MAAMyC,WAAWN,MArJrB6F,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,0BADT4uC,GAAG7uC,EAAAA,EAAAA,IAAA,CADR6hB,EAAAA,IACKgtB,GA8VN,kGCxXA,MAAM0H,EAA+Bn7C,IAAA,IAAC,YAAEi7C,EAAW,QAAEz6C,GAASR,EAAA,OAAKzD,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKq8C,GAAcz6C,IAiB3F,EAPyCkG,IAAA,IAAC,YAAEo0C,EAAW,OAAEE,EAAM,SAAEE,GAAUx0C,EAAA,OACvEnK,EAAAA,cAACyM,EAAAA,OAAMrK,OAAAC,OAAA,GAAKk8C,GACPE,GAAUz+C,EAAAA,cAAC4+C,EAASx8C,OAAAC,OAAA,GAAKo8C,IAC1Bz+C,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKs8C,8HCNlB,MAAME,EAA0Dx+C,IAC5D,MAAM,QAAEypB,EAAO,MAAE/d,EAAK,aAAE8c,EAAY,MAAE5c,GAAU5L,EAChD,OACIL,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKynB,GACL/d,EACA8c,EACA5c,IAeP6yC,EAAcA,CAChBh+C,EACA4f,EACA2vB,EACAC,EACAC,EACAjE,IAGItsC,EAAAA,cAAC+iB,EAAAA,MAAK,CACFjiB,UAAU,2BACV0vC,cAAe1vC,EACfoiB,WAAS,EACTC,MAAM,EACNmS,gBAAgB,aAChB9S,OAAQ9B,EACRC,OAAQ2rB,GAERtsC,EAAAA,cAACojB,EAAAA,YAAW,CAACzC,OAAQ2rB,GAAc+D,GACnCrwC,EAAAA,cAACqjB,EAAAA,UAAS,KAAEitB,GACZtwC,EAAAA,cAAC0jB,EAAAA,YAAW,KAAE6sB,IAUpBwO,EAAuD1+C,IAEzD,MAAM,eAAE6uC,EAAc,YAAEC,EAAW,aAAEC,EAAY,iBAAEC,EAAgB,OAAEpL,EAAM,QAAE/a,EAAO,aAAEL,EAAY,OAAElI,GAAWtgB,EAEzGknB,EACFvnB,EAAAA,cAAAA,EAAAA,SAAA,KACKqvC,EACDrvC,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAK8sC,GACLlL,GACGA,EAAOh/B,KAAK+E,GACDhK,EAAAA,cAAC6+C,EAAyBz8C,OAAAC,OAAA,GAAK2H,EAAI,CAAE5E,IAAK4E,EAAK5E,SAE7DyjB,MAAAA,OAAY,EAAZA,EAAc5jB,KAAI,CAACsF,EAAwBpF,IACjCnF,EAAAA,cAACA,EAAAA,SAAc,CAACoF,IAAKD,EAAMI,YAAagF,OAMzDmrB,EACFxM,GACAA,EAAQjkB,KAAI,CAAColB,EAAyBllB,IAC3BnF,EAAAA,cAACA,EAAAA,SAAc,CAACoF,IAAKD,EAAMI,YAAa8kB,KAGvD,OAAOy0B,EAAY5P,GAAgB,EAAME,EAAc7nB,EAAWmO,EAAa/U,IAkB7Eq+B,EAA0D3+C,IAE5D,MAAM,eAAE6uC,EAAc,YAAEC,EAAW,aAAEC,EAAY,iBAAEC,EAAgB,QAAEnmB,EAAO,aAAEL,EAAY,UAAE1kB,EAAS,OAAEwc,GAAWtgB,EAClH,IAAIknB,EAAY,KAChB,MAAMpG,EAAe9gB,EAAM8gB,aAE3B,GAAKA,EAEE,CAEH,MAAM,UAAEzC,EAAS,SAAEC,GAAawC,EAC1BgvB,EAAe,GAAGzxB,KAAuBC,IAE/C4I,EACIvnB,EAAAA,cAAAA,EAAAA,SAAA,KACKqvC,EACDrvC,EAAAA,cAACgD,EAAAA,KAAI,CAACJ,IAAI,KAAK9B,UAAW,GAAGquC,EAAYruC,kBACrCd,EAAAA,cAACgD,EAAAA,KAAI,CAACJ,IAAI,KAAK9B,UAAW,GAAGquC,EAAYruC,4BACpCqvC,GAEJ/tC,OAAOguC,KAAKjvB,GAAclc,KAAI,CAACoC,EAAMlC,KAClC,GAAIkC,IAAS08B,EAAAA,QAAQrlB,WAAarX,IAAS08B,EAAAA,QAAQplB,SAC/C,OAAO,KAEX,MAAM5S,EAAS5H,EAAU,QAAQkD,iBAAiCA,EAClE,OACIrH,EAAAA,cAACgD,EAAAA,KAAI,CAACJ,IAAI,KAAK9B,UAAW,GAAGquC,EAAYruC,sBAAuBsE,IAAKD,EAAMI,YACtEwG,EACA,KACAoV,EAAa9Z,cAtBtCkgB,EAAYsB,EA+BhB,MAAM6M,EACFxM,GACAA,EAAQjkB,KAAI,CAAColB,EAAyBllB,IAC3BnF,EAAAA,cAACA,EAAAA,SAAc,CAACoF,IAAKD,EAAMI,YAAa8kB,KAGvD,OAAOy0B,EAAY5P,GAAgB,EAAME,EAAc7nB,EAAWmO,EAAa/U,IAsFnF,EAzD0EtgB,IAEtE,MAAM,qBACF0rC,EAAoB,gBACpBC,EAAe,QACf/nC,EAAO,YACPioC,EAAW,cACXD,EAAa,sBACbG,EAAqB,KACrBG,EAAI,SACJxG,EAAQ,YACRuG,EAAW,8BACXI,EAA6B,sBAC7BnsB,GACAlgB,EAEE4+C,EACFj/C,EAAAA,cAACgD,EAAAA,KAAI,CAAClC,UAAU,4CACXmrC,EACAS,GAIT,OAAIR,EAEIlsC,EAAAA,cAACyM,EAAAA,OAAMrK,OAAAC,OAAA,GAAK0pC,GACR/rC,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAK2pC,GACL/nC,EACDjE,EAAAA,cAACgD,EAAAA,KAAI,CAAClC,UAAU,qDACZd,EAAAA,cAACgD,EAAAA,KAAI,CAAClC,UAAU,6DACXT,EAAM8D,UAAU+6C,qCAErBl/C,EAAAA,cAACgD,EAAAA,KAAI,CAAClC,UAAU,0DACXT,EAAM8D,UAAUg7C,kCAEpBF,GAEJ1+B,EACA2rB,IAOblsC,EAAAA,cAACyM,EAAAA,OAAMrK,OAAAC,OAAA,GAAK0pC,GACR/rC,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAK2pC,GACL/nC,EACAg7C,EACA1+B,EACA6rB,GAEJG,GAvEG6S,EAAC91C,EAAcqnC,EAA2BrE,KACtD,OAAQhjC,GACJ,IAAK,MACL,IAAK,OACD,OAAOtJ,EAAAA,cAAC++C,EAAyB38C,OAAAC,OAAA,GAAKsuC,EAAS,CAAEhwB,OAAQ2rB,KAC7D,IAAK,OACL,IAAK,SACD,OAAOtsC,EAAAA,cAACg/C,EAA4B58C,OAAAC,OAAA,GAAKsuC,EAAS,CAAEhwB,OAAQ2rB,KAChE,QACI,OAAO,OA8DE8S,CAAQrZ,EAAUwG,EAAMD,yICxN7C,MA8Ba+S,EAC+Ch/C,IACxD,MAAM,kBAEFi/C,EAAiB,eACjBC,EAAc,cACdC,EAAa,OACb75C,EAAM,cACN85C,EAAa,QACbx7C,EAAO,eACPy7C,EAAc,0BACdC,EAAyB,4BACzBC,GACAv/C,EAEJ,OACIL,EAAAA,cAACyM,EAAAA,OAAMrK,OAAAC,OAAA,GAAKi9C,GACPr7C,EACDjE,EAAAA,cAACgD,EAAAA,KAAI,CAAClC,UAAU,IACA,YAAX6E,GAA0B45C,GAAmBG,GAAmB7vC,EAAAA,gBAAgBC,YAAY4vC,GAOzFC,EANA3/C,EAAAA,cAAA,OAAKc,UAAU,iCACXd,EAAAA,cAAA,MAAIc,UAAU,yCAAyCT,EAAM8D,UAAU07C,kCACvE7/C,EAAAA,cAAA,KAAGc,UAAU,sCAAsCT,EAAM8D,UAAU27C,+BAClEH,GAKRC,GAEO,YAAXj6C,GAAwB85C,EACxBF,GAAkBG,GAAkB7vC,EAAAA,gBAAgBC,YAAY4vC,IAC7D1/C,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,GAAKk9C,GACLG,EAAez6C,KAAI86C,GA/DZC,EAACD,EAA8CE,KAEvE,MAAM,IAAE76C,EAAG,gBAAE86C,EAAe,mBAAEC,EAAkB,2BAAEC,EAA0B,aAAEC,EAAY,kBAAEC,GAAsBP,EAE5GQ,EAAiDJ,EACjDK,EAAyBD,EAA0BlgD,MAAMogD,SAAS97C,OAGxE,GAAI67C,EAF8B,EAG9B,IAAK,IAAIr7C,EAAQ,EAAGA,EAHU,EAG0Bq7C,EAAwBr7C,IAC5Eo7C,EAA0BlgD,MAAMogD,SAAShmC,KAAKza,EAAAA,cAAA,iBAItD,OACIA,EAAAA,cAACgD,EAAAA,KAAIZ,OAAAC,OAAA,CAAC+C,IAAKA,EAAKtE,UAAWm/C,EAAwBn/C,WAAem/C,GAC7DK,EACAH,EACAD,EACAG,EACAD,IA4CkBJ,CAAoBD,EAAeP,QAQlE","sources":["webpack://Msdyn365.Commerce.Online/./src/modules/nos-image/nos-image.tsx?1713","webpack://Msdyn365.Commerce.Online/./src/modules/nos-image/nos-image.view.tsx?6422","webpack://Msdyn365.Commerce.Online/./src/modules/nos-subscription-list/components/nos-subscription-detail-button.tsx?58d4","webpack://Msdyn365.Commerce.Online/./src/modules/nos-subscription-list/nos-subscription-list.tsx?d00d","webpack://Msdyn365.Commerce.Online/./src/modules/nos-subscription-list/utils/nos-subscription-list.utils.ts?471b","webpack://Msdyn365.Commerce.Online/./src/modules/nos-subscription-list/nos-subscription-list.view.tsx?f299","webpack://Msdyn365.Commerce.Online/./src/modules/nos-text-block/nos-text-block.tsx?5c42","webpack://Msdyn365.Commerce.Online/./src/modules/nos-text-block/nos-text-block.props.autogenerated.ts?e795","webpack://Msdyn365.Commerce.Online/./src/modules/nos-text-block/nos-text-block.view.tsx?7000","webpack://Msdyn365.Commerce.Online/./src/themes/nos/views/account-management-address.view.tsx?34e1","webpack://Msdyn365.Commerce.Online/./src/themes/nos/views/cart.view.tsx?c06e","webpack://Msdyn365.Commerce.Online/./src/themes/nos/views/components/price.component.tsx?b046","webpack://Msdyn365.Commerce.Online/./src/themes/nos/views/site-picker.view.tsx?6347","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance-tile/account-customer-balance-tile.tsx?8281","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance-tile/account-customer-balance-tile.view.tsx?95a8","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance-tile/components/account-customer-balance-tile-info.tsx?44e9","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance-tile/components/account-customer-balance-tile-links.tsx?95ac","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance/account-customer-balance.tsx?8d5a","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance/account-customer-balance.view.tsx?70d2","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance/components/account-actions.tsx?e021","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance/components/account-statement-request-modal.tsx?18c0","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance/components/index.tsx?fba9","webpack://Msdyn365.Commerce.Online/./src/modules/account-loyalty-tile/components/account-loyalty-tile-links.tsx?6c7f","webpack://Msdyn365.Commerce.Online/./src/modules/account-loyalty-tile/account-loyalty-tile.tsx?7f29","webpack://Msdyn365.Commerce.Online/./src/modules/account-loyalty-tile/account-loyalty-tile.view.tsx?3547","webpack://Msdyn365.Commerce.Online/./src/modules/account-loyalty-tile/components/account-loyalty-tile-description.tsx?c7bb","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/account-profile-edit.tsx?a0b5","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/account-profile-edit.view.tsx?530d","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-button.tsx?e669","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-error.tsx?eadf","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-input.tsx?5c72","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-label.tsx?4793","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-loading-icon.tsx?fba0","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-loading-message.tsx?7cf0","webpack://Msdyn365.Commerce.Online/./src/modules/account-welcome-tile/account-welcome-tile.tsx?2115","webpack://Msdyn365.Commerce.Online/./src/modules/account-welcome-tile/account-welcome-tile.view.tsx?e5e3","webpack://Msdyn365.Commerce.Online/./src/modules/account-wishlist-tile/components/account-wishlist-tile-description.tsx?0588","webpack://Msdyn365.Commerce.Online/./src/modules/account-wishlist-tile/components/account-wishlist-tile-links.tsx?f114","webpack://Msdyn365.Commerce.Online/./src/modules/account-wishlist-tile/account-wishlist-tile.tsx?b721","webpack://Msdyn365.Commerce.Online/./src/modules/account-wishlist-tile/account-wishlist-tile.view.tsx?095e","webpack://Msdyn365.Commerce.Online/./src/modules/b2b-requests-status/components/b2b-requests-table.tsx?06fc","webpack://Msdyn365.Commerce.Online/./src/modules/b2b-requests-status/b2b-requests-status.tsx?c1aa","webpack://Msdyn365.Commerce.Online/./src/modules/b2b-requests-status/b2b-requests-status.view.tsx?6b7c","webpack://Msdyn365.Commerce.Online/./src/modules/loyalty-sign-up/components/loyalty-sign-up-small-components.tsx?7106","webpack://Msdyn365.Commerce.Online/./src/modules/loyalty-sign-up/loyalty-sign-up.tsx?fd89","webpack://Msdyn365.Commerce.Online/./src/modules/loyalty-sign-up/loyalty-sign-up.view.tsx?45ec","webpack://Msdyn365.Commerce.Online/./src/modules/loyalty-terms/components/loyalty-terms-modal.tsx?1b8b","webpack://Msdyn365.Commerce.Online/./src/modules/loyalty-terms/loyalty-terms.tsx?babd","webpack://Msdyn365.Commerce.Online/./src/modules/loyalty-terms/loyalty-terms.view.tsx?b3e6","webpack://Msdyn365.Commerce.Online/./src/modules/organization-users-tile/components/account-organization-users-tile-description.tsx?3b33","webpack://Msdyn365.Commerce.Online/./src/modules/organization-users-tile/components/account-organization-users-tile-links.tsx?f1c7","webpack://Msdyn365.Commerce.Online/./src/modules/organization-users-tile/organization-users-tile.tsx?f5de","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-button.tsx?a869","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-error.tsx?fbfd","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-input.tsx?20d9","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-label.tsx?6ef1","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-loading-icon.tsx?8828","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-loading-message.tsx?a980","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/password-reset.tsx?0983","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/password-reset.view.tsx?b341","webpack://Msdyn365.Commerce.Online/./src/modules/sign-in/components/sign-in-button.tsx?8d59","webpack://Msdyn365.Commerce.Online/./src/modules/sign-in/components/sign-in-description.tsx?54a5","webpack://Msdyn365.Commerce.Online/./src/modules/sign-in/components/sign-in-error.tsx?a75a","webpack://Msdyn365.Commerce.Online/./src/modules/sign-in/components/sign-in-input.tsx?d840","webpack://Msdyn365.Commerce.Online/./src/modules/sign-in/components/sign-in-label.tsx?4560","webpack://Msdyn365.Commerce.Online/./src/modules/sign-in/components/sign-in-link.tsx?2078","webpack://Msdyn365.Commerce.Online/./src/modules/sign-in/components/sign-in-loading-icon.tsx?1d7f","webpack://Msdyn365.Commerce.Online/./src/modules/sign-in/components/sign-in-loading-message.tsx?84ee","webpack://Msdyn365.Commerce.Online/./src/modules/sign-in/components/sign-in-text.tsx?76b9","webpack://Msdyn365.Commerce.Online/./src/modules/sign-in/sign-in.tsx?259c","webpack://Msdyn365.Commerce.Online/./src/modules/sign-in/sign-in.view.tsx?2b3e","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-button.tsx?33d4","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-error.tsx?b9c0","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-input.tsx?27a8","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-label.tsx?3142","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-loading-icon.tsx?96eb","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-loading-message.tsx?9245","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-success.tsx?7f30","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/sign-up.tsx?5ad1","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/sign-up.view.tsx?08eb","webpack://Msdyn365.Commerce.Online/./src/modules/breadcrumb/components/link.tsx?d232","webpack://Msdyn365.Commerce.Online/./src/modules/breadcrumb/components/separator.tsx?92bb","webpack://Msdyn365.Commerce.Online/./src/modules/breadcrumb/breadcrumb.tsx?efcc","webpack://Msdyn365.Commerce.Online/./src/modules/breadcrumb/breadcrumb.view.tsx?4b3d","webpack://Msdyn365.Commerce.Online/./src/modules/business-organization-list/business-organization-list.tsx?0823","webpack://Msdyn365.Commerce.Online/./src/modules/business-organization-list/business-organization-list.view.tsx?c050","webpack://Msdyn365.Commerce.Online/./src/modules/business-organization-list/components/small-components.tsx?c4b5","webpack://Msdyn365.Commerce.Online/./src/modules/footer-category/footer-category.tsx?e0bd","webpack://Msdyn365.Commerce.Online/./src/modules/footer-category/footer-category.view.tsx?fdce","webpack://Msdyn365.Commerce.Online/./src/modules/image-list/image-list.tsx?5602","webpack://Msdyn365.Commerce.Online/./src/modules/image-list/image-list.view.tsx?2bed","webpack://Msdyn365.Commerce.Online/./src/modules/interactive-feature-collection/interactive-feature-collection.tsx?96a6","webpack://Msdyn365.Commerce.Online/./src/modules/interactive-feature-collection/interactive-feature-collection.view.tsx?db52","webpack://Msdyn365.Commerce.Online/./src/modules/interactive-feature-item/components/links.tsx?7423","webpack://Msdyn365.Commerce.Online/./src/modules/interactive-feature-item/interactive-feature-item.tsx?792c","webpack://Msdyn365.Commerce.Online/./src/modules/interactive-feature-item/interactive-feature-item.view.tsx?bdcc","webpack://Msdyn365.Commerce.Online/./src/modules/map/map.tsx?6111","webpack://Msdyn365.Commerce.Online/./src/modules/map/map.view.tsx?5db9","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/business-organization-list.view.tsx?e6ec","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/order-template-list.view.tsx?46b6"],"sourcesContent":["/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { IModuleProps } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nimport { INosImageConfig, INosImageProps } from './nos-image.props.autogenerated';\r\n\r\n/**\r\n * The interface for IImageViewProps.\r\n */\r\nexport interface IImageViewProps extends INosImageProps {\r\n image: IModuleProps;\r\n paragraph: JSX.Element | undefined;\r\n imageItem: React.ReactNode | undefined;\r\n}\r\n\r\n/**\r\n *\r\n * Image component.\r\n * @extends {React.PureComponent>}\r\n */\r\nclass Image extends React.PureComponent> {\r\n public render(): JSX.Element | null {\r\n const viewProps: IImageViewProps = {\r\n ...this.props,\r\n image: {\r\n moduleProps: this.props,\r\n className: classnames('nos-image', this.props.config.className),\r\n tag: 'div'\r\n },\r\n paragraph: this._renderParagraph(),\r\n imageItem: this._renderImageItem()\r\n };\r\n return this.props.renderView(viewProps);\r\n }\r\n public handleParagraphChange = () => (event: Msdyn365.ContentEditableEvent): void => {\r\n if (this.props.config.image) {\r\n this.props.config.paragraph = event.target.value;\r\n }\r\n };\r\n\r\n private readonly _renderParagraph = () => {\r\n const paragraph = this.props.config.paragraph;\r\n\r\n const paragraphText = (\r\n \r\n );\r\n\r\n return paragraphText;\r\n };\r\n\r\n /**\r\n * Render image.\r\n * @returns Image with optional text (caption).\r\n */\r\n private readonly _renderImageItem = () => {\r\n const image = this.props.config.image;\r\n const defaultImageSettings: Msdyn365.IImageSettings = {\r\n viewports: {\r\n xs: { q: 'w=360&h=270&q=80&m=6', w: 360, h: 270 },\r\n sm: { q: 'w=560&h=420&q=80&m=6', w: 560, h: 420 },\r\n md: { q: 'w=560&h=570&q=80&m=6', w: 760, h: 570 },\r\n lg: { q: 'w=420&h=315&q=80&m=6', w: 420, h: 315 },\r\n xl: { q: 'w=600&h=450&q=80&m=6', w: 600, h: 450 }\r\n },\r\n lazyload: true,\r\n disableLazyLoad: false\r\n };\r\n\r\n const imageProps = {\r\n gridSettings: this.props.context.request.gridSettings!,\r\n imageSettings: (image?.imageSettings ?? defaultImageSettings) as Msdyn365.IImageSettings | undefined\r\n };\r\n\r\n // If image is null, we want to render the placeholder SVG - by passing image data with empty src\r\n const imageItem = (\r\n \r\n );\r\n\r\n return imageItem;\r\n };\r\n}\r\n\r\nexport default Image;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IImageViewProps } from './nos-image';\r\n\r\n/**\r\n * Render the thumbnail item images.\r\n * @param props - The image view props.\r\n * @returns Return HTML having IImageViewProps props with image.\r\n */\r\nexport const imageView: React.FC = (props: IImageViewProps) => {\r\n const { paragraph, image, imageItem } = props;\r\n return (\r\n \r\n {imageItem}\r\n {paragraph}\r\n \r\n );\r\n};\r\n\r\nexport default imageView;\r\n","import { getUrlSync, IActionContext } from '@msdyn365-commerce/core';\r\nimport React from 'react';\r\nimport { Button } from '@msdyn365-commerce-modules/utilities';\r\n\r\nexport const getSubscriptionDetailPageUrl = (actionContext: IActionContext, SubscriptionId: string, LineId: number): string => {\r\n // TODO: Get 'subscription-details' from route configuration or global configuration maintained in Sitebuilder\r\n const subscriptionsUrl = getUrlSync('subscription-details', actionContext) || '';\r\n const separator = subscriptionsUrl.includes('?') ? '&' : '?';\r\n\r\n return `${subscriptionsUrl}${separator}subBillBillingScheduleNumber=${SubscriptionId}&subBillLineNum=${LineId}`;\r\n};\r\n\r\ninterface INosSubscriptionDetailButtonProps {\r\n actionContext: IActionContext;\r\n SubscriptionId: string;\r\n LineId: number;\r\n buttonName: string;\r\n}\r\n\r\nconst NosSubscriptionDetailButton: React.FC = ({\r\n actionContext,\r\n SubscriptionId,\r\n LineId,\r\n buttonName\r\n}) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default NosSubscriptionDetailButton;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport * as React from 'react';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { UncontrolledTooltip, INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport { observable, reaction } from 'mobx';\r\nimport classnames from 'classnames';\r\n\r\nimport { INosSubscriptionListData } from './nos-subscription-list.data';\r\nimport { INosSubscriptionListProps } from './nos-subscription-list.props.autogenerated';\r\nimport { IGetSubscriptionListData } from '../../actions/get-subscription-list.action';\r\nimport { formatDate, getSubscriptionStatus } from './utils/nos-subscription-list.utils';\r\nimport NosSubscriptionDetailButton from './components/nos-subscription-detail-button';\r\n\r\nexport interface INosSubscriptionListViewProps extends INosSubscriptionListProps {\r\n table: INodeProps;\r\n heading: React.ReactNode;\r\n className?: string;\r\n}\r\n\r\nexport interface INosSubscriptionListExtendedProps extends INosSubscriptionListProps {}\r\n\r\n/**\r\n * Interface for INosSubscriptionListState.\r\n */\r\nexport interface INosSubscriptionListState {}\r\n\r\n/**\r\n *\r\n * NosSubscriptionList component\r\n * @extends {React.Component, INosSubscriptionListState>}\r\n */\r\nclass NosSubscriptionList extends React.Component, INosSubscriptionListState> {\r\n @observable private subscriptionListData?: IGetSubscriptionListData[];\r\n\r\n public constructor(props: INosSubscriptionListExtendedProps) {\r\n super(props);\r\n\r\n const { data } = this.props;\r\n\r\n this.subscriptionListData = data.subscriptionList?.result || [];\r\n }\r\n\r\n public componentDidMount(): void {\r\n if (this.props.context.actionContext.requestContext.user.isAuthenticated) {\r\n // Initializing data props\r\n this._dataInitialize(this.props);\r\n }\r\n }\r\n\r\n public shouldComponentUpdate(nextProps: INosSubscriptionListExtendedProps, nextState: INosSubscriptionListState): boolean {\r\n if (this.state === nextState && this.props.data === nextProps.data) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\r\n\r\n public render(): JSX.Element | null {\r\n const viewProps = {\r\n ...this.props,\r\n className: classnames('nos-subscription-list', this.props.config.className),\r\n heading: this.props.config.heading && (\r\n \r\n ),\r\n table: this._renderTable(this.subscriptionListData ?? [])\r\n };\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n private _renderTooltip = () => {\r\n const { resources } = this.props;\r\n\r\n return (\r\n <>\r\n \r\n {/* TODO: possible bug: individual props like placement are not working */}\r\n \r\n {
}\r\n \r\n \r\n );\r\n };\r\n\r\n private _renderTable = (subscriptionList: IGetSubscriptionListData[]) => {\r\n const { resources } = this.props;\r\n return (\r\n \r\n {subscriptionList?.length > 0 ? (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {subscriptionList?.map((el, index) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n
{resources.subscriptionIdLabel}{resources.subscriptionProductLabel}\r\n {resources.subscriptionStatusLabel}\r\n {this._renderTooltip()}\r\n {resources.nextPaymentLabel}
{el.SubBillBillingScheduleNumber}{el.SubBillItemName}{getSubscriptionStatus(resources, el.SubBillScheduleStatus)}\r\n {el.SubBillStartDate ? formatDate(this.props.context, new Date(el.SubBillStartDate)) : '-'}\r\n \r\n \r\n
\r\n
\r\n ) : (\r\n
{resources.noSubscriptions}
\r\n )}\r\n
\r\n );\r\n };\r\n\r\n /**\r\n * Method data initialization.\r\n * @param props -The account management props.\r\n */\r\n private readonly _dataInitialize = (props: INosSubscriptionListExtendedProps): void => {\r\n const { data } = props;\r\n\r\n reaction(\r\n () => data.subscriptionList?.result,\r\n () => {\r\n this.subscriptionListData = data.subscriptionList?.result ?? [];\r\n }\r\n );\r\n };\r\n}\r\n\r\nexport default NosSubscriptionList;\r\n","import { SubscriptionStatus } from '../../nos-subscription-details/enums/subscription-status-enum';\r\nimport { INosSubscriptionListResources } from '../nos-subscription-list.props.autogenerated';\r\n\r\nexport const getSubscriptionStatus = (resources: INosSubscriptionListResources, status?: number) => {\r\n switch (status) {\r\n case SubscriptionStatus.ACTIVE:\r\n return resources.active;\r\n case SubscriptionStatus.ARCHIVED:\r\n return resources.archived;\r\n case SubscriptionStatus.LASTBILLING:\r\n return resources.lastBilling;\r\n case SubscriptionStatus.ONHOLD:\r\n return resources.onHold;\r\n case SubscriptionStatus.TERMINATED:\r\n return resources.terminated;\r\n default:\r\n return '';\r\n }\r\n};\r\n\r\nimport { ICoreContext, IDateFormatOptions } from '@msdyn365-commerce/core';\r\n\r\n/**\r\n * Formats date.\r\n * @param context - Core context.\r\n * @param date - Date to display.\r\n * @returns String value.\r\n */\r\nexport const formatDate = (context: ICoreContext, date: Date | undefined) => {\r\n if (date === undefined) {\r\n return '';\r\n }\r\n\r\n const dateOptions: IDateFormatOptions = { year: 'numeric', month: 'numeric', day: 'numeric' };\r\n return context.cultureFormatter.formatDate(date, dateOptions);\r\n};\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport * as React from 'react';\r\nimport { INosSubscriptionListViewProps } from './nos-subscription-list';\r\n\r\nexport default (props: INosSubscriptionListViewProps) => {\r\n const { table, heading, className } = props;\r\n\r\n return (\r\n
\r\n {heading}\r\n {table}\r\n
\r\n );\r\n};\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nimport { INosTextBlockProps, INosTextBlockConfig, ILinksData } from './nos-text-block.props.autogenerated';\r\n\r\nexport interface INosTextBlockViewProps extends INosTextBlockProps {\r\n paragraph?: React.ReactNode;\r\n pictogram?: React.ReactNode;\r\n className?: string;\r\n clientRender?: boolean;\r\n links?: ILinksData[];\r\n}\r\n\r\n/**\r\n *\r\n * TextBlock component.\r\n */\r\nclass NosTextBlock extends React.PureComponent> {\r\n public render(): JSX.Element | null {\r\n const { layout, paragraph, pictogram, links, className } = this.props.config;\r\n const text = paragraph && (\r\n \r\n );\r\n\r\n const icon = pictogram &&
;\r\n\r\n const textBlockViewProps = {\r\n ...this.props,\r\n layout: layout,\r\n paragraph: text,\r\n pictogram: icon,\r\n links: links,\r\n className: classnames('nos-text-block', className)\r\n };\r\n return this.props.renderView(textBlockViewProps) as React.ReactElement;\r\n }\r\n\r\n public handleTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.paragraph = event.target.value);\r\n}\r\nexport default NosTextBlock;\r\n","/**\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. See License.txt in the project root for license information.\r\n * INosTextBlock contentModule Interface Properties\r\n * THIS FILE IS AUTO-GENERATED - MANUAL MODIFICATIONS WILL BE LOST\r\n */\r\n\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\n\r\nexport const enum alignment {\r\n left = 'left',\r\n right = 'right',\r\n center = 'center'\r\n}\r\n\r\nexport const enum fontsize {\r\n small = 'small',\r\n medium = 'medium',\r\n large = 'large',\r\n extralarge = 'extralarge'\r\n}\r\n\r\nexport const enum layout {\r\n row = 'row',\r\n column = 'column'\r\n}\r\n\r\nexport const enum theme {\r\n corporate = 'corporate',\r\n tecdoc = 'tecdoc',\r\n teccom = 'teccom'\r\n}\r\n\r\nexport interface INosTextBlockConfig extends Msdyn365.IModuleConfig {\r\n paragraph?: Msdyn365.RichText;\r\n pictogram?: string;\r\n links?: ILinksData[];\r\n alignment?: alignment;\r\n fontsize?: fontsize;\r\n className?: string;\r\n clientRender?: boolean;\r\n layout?: layout;\r\n theme?: theme;\r\n}\r\n\r\nexport const enum LinksButtonType {\r\n primaryDark = 'primaryDark',\r\n primaryLight = 'primaryLight',\r\n secondaryDark = 'secondaryDark',\r\n secondaryLight = 'secondaryLight'\r\n}\r\n\r\nexport interface ILinksData {\r\n linkText?: string;\r\n linkUrl: Msdyn365.ILinkData;\r\n ariaLabel?: string;\r\n openInNewTab?: boolean;\r\n buttonType?: LinksButtonType;\r\n}\r\n\r\nexport interface INosTextBlockProps extends Msdyn365.IModule {\r\n config: INosTextBlockConfig;\r\n}\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport * as React from 'react';\r\nimport { Button } from '@msdyn365-commerce-modules/utilities';\r\nimport { INosTextBlockViewProps } from './nos-text-block';\r\nimport { LinksButtonType } from './nos-text-block.props.autogenerated';\r\n\r\nconst NosTextBlockView: React.FC = props => {\r\n const { links } = props.config;\r\n return (\r\n
\r\n
\r\n {props.pictogram}\r\n {props.paragraph}\r\n
\r\n {links && (\r\n
\r\n {links.map((link, index) => {\r\n return (\r\n \r\n {link.linkText}\r\n \r\n );\r\n })}\r\n
\r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default NosTextBlockView;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport {\r\n IAddressShowItem,\r\n IAddressShowProps,\r\n IAddressAddItem,\r\n IAddressAddUpdateProps,\r\n IAddressList,\r\n IAddressListItem,\r\n IAddressListProps,\r\n IAccountManagementAddressViewProps\r\n} from '@msdyn365-commerce-modules/address';\r\n\r\n/**\r\n * Address show component.\r\n * @param param0 - Root param.\r\n * @param param0.AddressDetail - Address detail.\r\n * @param param0.items - IAddressShowItem[].\r\n * @returns - Address Node.\r\n */\r\nconst AddressShow: React.FC = ({ AddressDetail, items }) => {\r\n return (\r\n \r\n {items.map((item: IAddressShowItem) => {\r\n return <>{item.description};\r\n })}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Address List Component.\r\n * @param param0 - Root param.\r\n * @param param0.List - Address list.\r\n * @param param0.isShowList - Boolean.\r\n * @param param0.heading - Address heading.\r\n * @param param0.items - IAddressListItem[].\r\n * @returns - AddressListComponent Node.\r\n */\r\nconst AddressList: React.FC = ({ List, isShowList, heading, items }) => {\r\n if (!isShowList) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {heading}\r\n {items.map((item: IAddressListItem) => {\r\n const { Item, key, error, showItems, isShowPrimaryButton } = item;\r\n const { Error, isShowError, title, message } = error;\r\n return (\r\n \r\n \r\n {isShowError && (\r\n \r\n {title}\r\n {message}\r\n \r\n )}\r\n {isShowPrimaryButton}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Address Lists Component.\r\n * @param param0 - Root param.\r\n * @param param0.ListAddress - List address.\r\n * @param param0.heading - List heading.\r\n * @param param0.isShowEmptyListMessage - Boolean.\r\n * @param param0.emptyListMessage - Empty list message.\r\n * @param param0.addButton - Add button.\r\n * @param param0.primaryAddressList - Primary address.\r\n * @param param0.otherAddressList - Other address.\r\n * @returns Address Lists Component Node.\r\n */\r\nconst AddressLists: React.FC = ({\r\n ListAddress,\r\n heading,\r\n isShowEmptyListMessage,\r\n emptyListMessage,\r\n addButton,\r\n primaryAddressList,\r\n otherAddressList\r\n}) => {\r\n return (\r\n \r\n {heading}\r\n {isShowEmptyListMessage && emptyListMessage}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\n/**\r\n * AddressAddUpdateComponent.\r\n * @param param0 - Root param.\r\n * @param param0.AddressForm - Address form.\r\n * @param param0.heading - Address heading.\r\n * @param param0.items - IAddressAddItem[].\r\n * @param param0.hasError - Boolean.\r\n * @param param0.error - Error message.\r\n * @param param0.isShowSaveButton - Boolean.\r\n * @param param0.saveButton - Save button.\r\n * @param param0.isShowCancelButton - Boolean.\r\n * @param param0.cancelButton - Cancel button.\r\n * @returns Address add update component node.\r\n */\r\nconst AddressAddUpdate: React.FC = ({\r\n AddressForm,\r\n heading,\r\n items,\r\n hasError,\r\n error,\r\n isShowSaveButton,\r\n saveButton,\r\n isShowCancelButton,\r\n cancelButton\r\n}) => {\r\n return (\r\n \r\n {heading}\r\n {items.map((item: IAddressAddItem) => {\r\n const { AddressItem, key, label, alert, input } = item;\r\n return (\r\n \r\n {label}\r\n {alert}\r\n {input}\r\n \r\n );\r\n })}\r\n {hasError && (\r\n \r\n {error.title}\r\n {error.message}\r\n \r\n )}\r\n {isShowSaveButton && saveButton}\r\n {isShowCancelButton && cancelButton}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Account Management Address View Component.\r\n * @param props - Props.\r\n * @returns - AccountAddressManagement Module.\r\n */\r\nconst AccountManagementAddressView: React.FC = props => {\r\n const {\r\n AccountAddressManagement,\r\n infoMessageBar,\r\n viewState,\r\n showAddressList,\r\n showAddOrUpdateAddress,\r\n screenReaderNotification\r\n } = props;\r\n\r\n return (\r\n \r\n {infoMessageBar}\r\n {viewState.isShowAddresList && }\r\n {viewState.isShowAddOrUpdateAddress && }\r\n {screenReaderNotification}\r\n \r\n );\r\n};\r\n\r\nexport default AccountManagementAddressView;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport MsDyn365 from '@msdyn365-commerce/core';\r\nimport { IInvoiceSummaryLines } from '@msdyn365-commerce-modules/invoice-payment-summary';\r\nimport { IOrderSummaryLines } from '@msdyn365-commerce-modules/order-summary-utilities';\r\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { INodeProps, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { ICartViewProps, IOrderSummaryErrors } from '@msdyn365-commerce-modules/cart/src/modules/cart/./cart';\r\nimport { ICartlinesViewProps } from '@msdyn365-commerce-modules/cart/src/modules/cart/./components/cart-line-items';\r\nimport { ICartLineItemViewProps } from '@msdyn365-commerce-modules/cart/src/modules/cart/./components/cart-line-items-promotion';\r\n\r\nconst _renderCartlines = (\r\n cartLines: ICartlinesViewProps[] | undefined,\r\n cartEmptyText: string,\r\n CartlinesWrapper: INodeProps,\r\n storeSelector: React.ReactNode | undefined,\r\n backToShoppingButton: React.ReactNode,\r\n waitingComponent: React.ReactNode,\r\n cartLoadingStatus: string,\r\n cartDataResult: boolean\r\n): JSX.Element[] | JSX.Element => {\r\n if (cartLoadingStatus) {\r\n return <>{cartLoadingStatus};\r\n }\r\n if (cartLines) {\r\n return cartLines.map(cartLine => {\r\n return (\r\n
\r\n {cartLine.cartline}\r\n {storeSelector && cartLine.pickUpInStore ? (\r\n {cartLine.pickUpInStore.defaultComponent}\r\n ) : null}\r\n\r\n <>{cartLine.remove}\r\n
\r\n );\r\n });\r\n }\r\n return cartDataResult ? (\r\n
\r\n

{cartEmptyText}

\r\n {backToShoppingButton}\r\n
\r\n ) : (\r\n <>{waitingComponent}\r\n );\r\n};\r\n\r\n/**\r\n * Method will render error block.\r\n * @param errorData -The order summary errors interface.\r\n * @returns Jsx element.\r\n */\r\nconst _renderErrorBlock = (errorData: IOrderSummaryErrors | undefined): JSX.Element | null => {\r\n if (!errorData || !ArrayExtensions.hasElements(errorData.errors)) {\r\n return null;\r\n }\r\n return (\r\n \r\n {errorData.header}\r\n {errorData.errors}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Method will render invoice summary lines.\r\n * @param invoiceSummaryLines -The invoicesummary lines interface.\r\n * @param OrderSummaryItems -The order summary items props.\r\n * @param props -The cartview props.\r\n * @returns Jsx element.\r\n */\r\nconst _renderInvoiceSummarylines = (\r\n invoiceSummaryLines: IInvoiceSummaryLines | undefined,\r\n OrderSummaryItems: INodeProps,\r\n props: ICartViewProps\r\n): JSX.Element | null => {\r\n if (!invoiceSummaryLines) {\r\n props.context.telemetry.error('InvoiceSummary content is empty, module wont render');\r\n return null;\r\n }\r\n return (\r\n \r\n {invoiceSummaryLines.invoices}\r\n {invoiceSummaryLines.giftCard}\r\n {invoiceSummaryLines.loyalty}\r\n {invoiceSummaryLines.orderTotal}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Method will render order summary lines.\r\n * @param orderSummaryLines -The ordersummary lines interface.\r\n * @param OrderSummaryItems -The order summary items props.\r\n * @param props -The cartview props.\r\n * @returns Jsx element.\r\n */\r\nconst _renderOrderSummarylines = (\r\n orderSummaryLines: IOrderSummaryLines | undefined,\r\n OrderSummaryItems: INodeProps,\r\n props: ICartViewProps\r\n): JSX.Element | null => {\r\n if (!orderSummaryLines) {\r\n props.context.telemetry.error('OrderSummary content is empty, module wont render');\r\n return null;\r\n }\r\n return (\r\n \r\n {props.promoCode}\r\n {orderSummaryLines.subtotal}\r\n {/* {orderSummaryLines.shipping} */}\r\n {orderSummaryLines.otherCharge}\r\n {orderSummaryLines.tax}\r\n {orderSummaryLines.totalDiscounts ? orderSummaryLines.totalDiscounts : null}\r\n {orderSummaryLines.orderTotal}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Method will render cart promotions.\r\n * @param promotions -The cartline item view props.\r\n * @returns Jsx element.\r\n */\r\nconst _renderPromotions = (promotions: ICartLineItemViewProps): JSX.Element | undefined => {\r\n return (\r\n <>\r\n \r\n {promotions.promotionMessage}\r\n {promotions.promotionSeeAllLink}\r\n {promotions.promotionDialog}\r\n \r\n \r\n );\r\n};\r\n\r\n/**\r\n * Method will render cartlines group title.\r\n * @param cartLine -The cartline view props.\r\n * @param titleSeparate -The title separate.\r\n * @returns Jsx element.\r\n */\r\nconst renderCartLinesGroupTitle = (cartLine: ICartlinesViewProps, titleSeparate: string) => {\r\n const isBopisSelected: boolean | undefined = cartLine.pickUpInStore?.isBopisSelected;\r\n return (\r\n <>\r\n \r\n {isBopisSelected ? (\r\n

\r\n {cartLine.pickUpInStore?.deliveryOption}\r\n {titleSeparate}\r\n {cartLine.pickUpInStore?.orgUnitName}\r\n

\r\n ) : null}\r\n
\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Method will render cartlines groups header title.\r\n * @param pickUpText -The pickup text for group.\r\n * @param shippingText -The shipping text for group.\r\n * @param emailShippingText -The email shipping text for group.\r\n * @param titleSeparate -The title separator.\r\n * @param cartLine -The cartline view props.\r\n * @param emailDeliveryModeCode -The email delivery code from channel.\r\n * @returns Jsx element.\r\n */\r\nconst renderCartLinesGroupHeader = (\r\n pickUpText: string,\r\n shippingText: string,\r\n emailShippingText: string,\r\n titleSeparate: string,\r\n cartLine: ICartlinesViewProps,\r\n emailDeliveryModeCode?: string\r\n) => {\r\n const isBopisSelected: boolean | undefined = cartLine.pickUpInStore?.isBopisSelected;\r\n let groupTitle: string;\r\n\r\n groupTitle = isBopisSelected ? pickUpText : shippingText;\r\n groupTitle = cartLine.data && cartLine.data.cartline.DeliveryMode === emailDeliveryModeCode ? emailShippingText : groupTitle;\r\n\r\n return (\r\n <>\r\n
\r\n

\r\n

{groupTitle}

\r\n {renderCartLinesGroupTitle(cartLine, titleSeparate)}\r\n
\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Method will render cartlines in groups.\r\n * @param props -The cartline.\r\n * @returns Jsx element.\r\n */\r\nconst renderCartLinesGroup = (props: ICartViewProps): JSX.Element | undefined => {\r\n if (props.cartLinesGroup && ArrayExtensions.hasElements(props.cartLinesGroup)) {\r\n return (\r\n
\r\n {props.cartLinesGroup.map(cartlines => {\r\n return (\r\n
\r\n {renderCartLinesGroupHeader(\r\n props.resources.pickUpText,\r\n props.resources.shippingText,\r\n props.resources.emailshippingText,\r\n props.resources.titleSeparate,\r\n cartlines[0],\r\n props.context.actionContext.requestContext.channel?.EmailDeliveryModeCode\r\n )}\r\n {_renderCartlines(\r\n cartlines,\r\n props.resources.emptyCartText,\r\n props.CartlinesWrapper,\r\n props.storeSelector,\r\n props.backToShoppingButton,\r\n props.waitingComponent,\r\n props.cartLoadingStatus,\r\n props.cartDataResult\r\n )}\r\n
\r\n );\r\n })}\r\n
\r\n );\r\n }\r\n return props.cartDataResult ? (\r\n
\r\n
\r\n

{props.resources.emptyCartText}

\r\n {props.backToShoppingButton}\r\n
\r\n
\r\n ) : (\r\n <>{props.waitingComponent}\r\n );\r\n};\r\n\r\nconst CartView: React.FC = (props: ICartViewProps) => (\r\n
\r\n {props.title}\r\n {!props.cart?.hasInvoiceLine && props.promotionOptions && _renderPromotions(props.promotionOptions)}\r\n {props.multiplePickUpEnabled ? (\r\n renderCartLinesGroup(props)\r\n ) : (\r\n \r\n {_renderCartlines(\r\n props.cartlines,\r\n props.resources.emptyCartText,\r\n props.CartlinesWrapper,\r\n props.storeSelector,\r\n props.backToShoppingButton,\r\n props.waitingComponent,\r\n props.cartLoadingStatus,\r\n props.cartDataResult\r\n )}\r\n \r\n )}\r\n {props.orderSummaryHeading && (\r\n \r\n {props.orderSummaryHeading}\r\n {props.cart?.hasInvoiceLine\r\n ? _renderInvoiceSummarylines(props.invoiceSummaryLineitems, props.OrderSummaryItems, props)\r\n : _renderOrderSummarylines(props.orderSummaryLineitems, props.OrderSummaryItems, props)}\r\n {_renderErrorBlock(props.OrderSummaryErrors)}\r\n {props.checkoutAsSignInUserButton}\r\n {props.checkoutAsGuestButton}\r\n {props.expressCheckoutButton && ArrayExtensions.hasElements(props.expressCheckoutButton) ? (\r\n {props.expressCheckoutButton}\r\n ) : null}\r\n {props.backToShoppingButton}\r\n \r\n )}\r\n {props.storeSelector}\r\n
\r\n);\r\n\r\nexport default CartView;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { IComponent, IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\r\nimport { PriceLine, ProductPrice, SalesAgreementPriceLine } from '@msdyn365-commerce/retail-proxy';\r\nimport { ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { format } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nconst defaultPrice: number = 0;\r\nconst freePrice: number = 0;\r\n\r\n/**\r\n * Interface for price component resources.\r\n * @param {string} priceRangeSeparator - The price range separator.\r\n */\r\nexport interface IPriceComponentResources {\r\n priceRangeSeparator?: string;\r\n salesAgreementPricePrompt?: string;\r\n salesAgreementExpirationDatePrompt?: string;\r\n salesAgreementCommittedQuantityPrompt?: string;\r\n salesAgreementRemainingQuantityPrompt?: string;\r\n}\r\n\r\n/**\r\n * Interface for price component props.\r\n * @param {boolean} isPriceMinMaxEnabled - Whether the price range feature is enabled or not.\r\n * @param {IPriceComponentResources} priceResources - The price range resources.\r\n */\r\nexport interface IPriceComponentProps extends IComponentProps<{ price: ProductPrice }> {\r\n className?: string;\r\n savingsText?: string;\r\n freePriceText?: string;\r\n originalPriceText?: string;\r\n currentPriceText?: string;\r\n isPriceMinMaxEnabled?: boolean;\r\n isSalesAgreementPriceFeatureEnabled?: boolean;\r\n salesAgreementLineId?: number;\r\n priceResources?: IPriceComponentResources;\r\n}\r\n\r\n/**\r\n * The interface of price component.\r\n */\r\nexport interface IPriceComponent extends IComponent {}\r\n\r\nconst priceComponentActions = {};\r\n\r\n/**\r\n * Get the original price from price component props.\r\n * @param props - The IPriceComponentProps.\r\n * @returns The original price.\r\n */\r\nconst getOriginalPrice = (props: IPriceComponentProps): number => {\r\n return Math.max(\r\n props.data.price.BasePrice ?? defaultPrice,\r\n props.data.price.TradeAgreementPrice ?? defaultPrice,\r\n props.data.price.AdjustedPrice ?? defaultPrice\r\n );\r\n};\r\n\r\n/**\r\n * Get the formatted currency.\r\n * @param props - The props.\r\n * @param price - The price.\r\n * @param shouldUseFreePriceText - The shouldUseFreePriceText.\r\n * @returns The formatted currency.\r\n */\r\nconst formatCurrency = (props: IPriceComponentProps, price: number | undefined, shouldUseFreePriceText: boolean | undefined): string => {\r\n if (price === undefined) {\r\n return '';\r\n }\r\n\r\n if (shouldUseFreePriceText && price === freePrice && props.freePriceText) {\r\n return props.freePriceText;\r\n }\r\n\r\n return props.context.cultureFormatter.formatCurrency(price);\r\n};\r\n\r\n/**\r\n * ShowStrikethroughPricing.\r\n * @param props - The props.\r\n * @returns True if showStrikethroughPricing, false otherwise.\r\n */\r\nconst showStrikethroughPricing = (props: IPriceComponentProps): boolean => {\r\n const originalPrice = getOriginalPrice(props);\r\n if (\r\n props.isPriceMinMaxEnabled &&\r\n props.data.price.MaxVariantPrice &&\r\n props.data.price.MinVariantPrice &&\r\n props.data.price.MaxVariantPrice > props.data.price.MinVariantPrice\r\n ) {\r\n return props.data.price.MinVariantPrice < originalPrice;\r\n }\r\n\r\n if (originalPrice && props.data.price.CustomerContextualPrice) {\r\n return originalPrice > props.data.price.CustomerContextualPrice;\r\n }\r\n\r\n return false;\r\n};\r\n\r\n/**\r\n * Render current price.\r\n * @param props - The props.\r\n * @returns The JSX.Element.\r\n */\r\nconst renderCurrentPrice = (props: IPriceComponentProps): JSX.Element => {\r\n const maxVariantPrice: string = formatCurrency(props, props.data.price.MaxVariantPrice, false);\r\n const minVariantPrice: string = formatCurrency(props, props.data.price.MinVariantPrice, false);\r\n if (\r\n props.isPriceMinMaxEnabled &&\r\n props.data.price.MaxVariantPrice &&\r\n props.data.price.MinVariantPrice &&\r\n props.data.price.MaxVariantPrice > props.data.price.MinVariantPrice\r\n ) {\r\n return (\r\n \r\n \r\n {minVariantPrice}\r\n \r\n \r\n {props.priceResources?.priceRangeSeparator}\r\n \r\n \r\n {maxVariantPrice}\r\n \r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n {formatCurrency(props, props.data.price.CustomerContextualPrice, true)}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Render current price with original price.\r\n * @param props - The props.\r\n * @returns The JSX.Element.\r\n */\r\nconst renderCurrentPriceWithOriginalPrice = (props: IPriceComponentProps): JSX.Element => {\r\n const originalPrice: number = getOriginalPrice(props);\r\n const initialPrice: string = formatCurrency(props, originalPrice, true);\r\n\r\n return (\r\n <>\r\n \r\n {' '}\r\n {props.originalPriceText} {initialPrice} {props.currentPriceText} {renderCurrentPrice(props)}\r\n \r\n \r\n \r\n {props.savingsText && {props.savingsText}}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Return a JSX.Element contains sales agreement prompt if feature enabled.\r\n * @param props - The IPriceComponentProps.\r\n * @returns The JSX.Element.\r\n */\r\nconst renderSalesAgreementPrice = (props: IPriceComponentProps): JSX.Element => {\r\n const priceLines: PriceLine[] = props.data.price.AttainablePriceLines ?? [];\r\n const firstPriceLine: SalesAgreementPriceLine = priceLines[0] as SalesAgreementPriceLine;\r\n return (\r\n \r\n

\r\n {formatCurrency(props, props.data.price.SalesAgreementPrice ?? props.data.price.CustomerContextualPrice, true)}\r\n

\r\n

\r\n {props.priceResources?.salesAgreementPricePrompt}\r\n

\r\n

\r\n \r\n {/* Available date */}\r\n {format(props.priceResources?.salesAgreementExpirationDatePrompt ?? '', [\r\n firstPriceLine.EffectiveDate,\r\n firstPriceLine.EffectiveDate\r\n ])}\r\n \r\n \r\n {/* Quantity commitment */}\r\n {format(props.priceResources?.salesAgreementCommittedQuantityPrompt ?? '', [firstPriceLine.CommittedQuantity])}\r\n \r\n \r\n {/* Remaining quantity to qualify */}\r\n {format(props.priceResources?.salesAgreementRemainingQuantityPrompt ?? '', [firstPriceLine.RemainingQuantity])}\r\n \r\n

\r\n
\r\n );\r\n};\r\n\r\n/**\r\n * Price.\r\n * @param props - The props.\r\n * @returns The JSX.Element.\r\n */\r\nconst Price: React.FC = (props: IPriceComponentProps): JSX.Element | null => {\r\n // Use default unused translation key for buybox text\r\n const notAuthenticatedText = props.originalPriceText;\r\n\r\n // CustomerContextualPrice could be zero\r\n if (props.data.price.CustomerContextualPrice === undefined) {\r\n return null;\r\n }\r\n\r\n // Determine if contract price is avaiable/applied by:\r\n // isFeatureEnabled and SA price != 0, for PDP.\r\n // SA line id != 0, for cart line.\r\n if (\r\n (props.isSalesAgreementPriceFeatureEnabled && props.data.price.SalesAgreementPrice !== 0) ||\r\n (ObjectExtensions.isNumber(props.salesAgreementLineId) && props.salesAgreementLineId !== 0)\r\n ) {\r\n return {renderSalesAgreementPrice(props)};\r\n }\r\n\r\n return (\r\n \r\n {!props.context.request.user.isAuthenticated\r\n ? notAuthenticatedText\r\n : showStrikethroughPricing(props)\r\n ? renderCurrentPriceWithOriginalPrice(props)\r\n : renderCurrentPrice(props)}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * The PriceComponent.\r\n */\r\nexport const PriceComponent: React.FunctionComponent = msdyn365Commerce.createComponentOverride(\r\n 'Price',\r\n { component: Price, ...priceComponentActions }\r\n);\r\n\r\nexport default PriceComponent;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { ISitePickerViewProps } from '@msdyn365-commerce-modules/site-picker/src/modules/site-picker/./site-picker';\r\n\r\nexport default (props: ISitePickerViewProps) => {\r\n return <>{_renderSitePicker(props)};\r\n};\r\n\r\nconst renderIcon = () => {\r\n return
{''}
;\r\n};\r\n\r\nconst _renderDesktopView = (props: ISitePickerViewProps) => {\r\n const { SitePickerMenu, SitePickerMenuSpan } = props;\r\n return (\r\n <>\r\n \r\n {/* {props.config.heading?.text} */}\r\n {renderIcon()}\r\n \r\n \r\n {props.siteOptionsState ? _renderSiteOptionsList(props) : null}\r\n \r\n );\r\n};\r\n\r\nconst _renderSiteOptionsList = (props: ISitePickerViewProps): React.ReactNode => {\r\n const { SitePickerMenuList, SitePickerMenuListItem, SitePickerMenuListItemArray } = props;\r\n const options = SitePickerMenuListItemArray!.map((item, index) => {\r\n return (\r\n \r\n {item}\r\n \r\n );\r\n });\r\n return (\r\n \r\n {options}\r\n \r\n );\r\n};\r\n\r\nconst _renderMobileView = (props: ISitePickerViewProps): React.ReactNode => {\r\n const { SitePickerMobileContainer } = props;\r\n SitePickerMobileContainer.toggleButtonText = renderIcon();\r\n return (\r\n \r\n
\r\n {props.SitePickerMenuListItemArray?.map((item, index) => {\r\n return
{item}
;\r\n })}\r\n
\r\n
\r\n );\r\n};\r\n\r\nconst _renderSitePicker = (props: ISitePickerViewProps): React.ReactNode => {\r\n const { isMobileView, SitePicker } = props;\r\n return {isMobileView ? _renderMobileView(props) : _renderDesktopView(props)};\r\n};\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { isChannelTypeB2B } from '@msdyn365-commerce/core';\nimport { CustomerBalances } from '@msdyn365-commerce/retail-proxy';\nimport { getTelemetryObject, Heading, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport get from 'lodash/get';\nimport { computed, reaction } from 'mobx';\nimport * as React from 'react';\n\nimport { IAccountCustomerBalanceTileData } from './account-customer-balance-tile.data';\nimport { IAccountCustomerBalanceTileProps } from './account-customer-balance-tile.props.autogenerated';\nimport { CreditComponent, ErrorComponent } from './components/account-customer-balance-tile-info';\nimport LinksComponent from './components/account-customer-balance-tile-links';\n\nexport interface IAccountCustomerBalanceTileViewProps extends IAccountCustomerBalanceTileProps {\n AccountCustomerBalanceTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n content: React.ReactNode;\n links: React.ReactNode;\n}\n\nexport interface IAccountCustomerBalanceTileViewState {\n isDetailsLinkDisplayed: boolean;\n content: React.ReactNode;\n}\n\n/**\n *\n * AccountCustomerBalanceTile component.\n * @extends {React.Component>}\n */\nclass AccountCustomerBalanceTile extends React.Component<\n IAccountCustomerBalanceTileProps,\n IAccountCustomerBalanceTileViewState\n> {\n @computed get hasError(): boolean {\n return get(this.props, 'data.balance.status') !== 'SUCCESS';\n }\n\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountCustomerBalanceTileProps) {\n super(props);\n\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n this.state = { ...this._initState() };\n\n reaction(\n () => this.hasError,\n () => {\n this.props.context.telemetry.error('Error retrieving customer account balance');\n this.setState({\n content: \n });\n }\n );\n }\n\n @computed get isCustomerAccountPaymentEnabled(): boolean {\n const customerResult = get(this.props, 'data.customerInformation.result');\n\n const allowOnAccountPayment = customerResult ? customerResult.AllowOnAccountPayment : false;\n const isB2BSite = isChannelTypeB2B(this.props.context.request);\n const enableCustomerAccountPayment = get(this.props, 'context.request.app.platform.enableCustomerAccountPayment');\n\n return (\n allowOnAccountPayment &&\n (enableCustomerAccountPayment === 'all' ||\n (enableCustomerAccountPayment === 'b2b' && isB2BSite) ||\n (enableCustomerAccountPayment === 'b2c' && !isB2BSite))\n );\n }\n\n public shouldComponentUpdate(\n nextProps: IAccountCustomerBalanceTileProps,\n nextState: IAccountCustomerBalanceTileViewState\n ): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n if (!this.isCustomerAccountPaymentEnabled) {\n return <>;\n }\n\n const { className, heading, links } = this.props.config;\n const viewProps = {\n ...this.props,\n AccountCustomerBalanceTile: {\n moduleProps: this.props,\n className: classnames('ms-account-customer-balance-tile', className)\n },\n heading: heading && (\n \n ),\n content: this.state.content,\n links: this.state.isDetailsLinkDisplayed && (\n (event: Msdyn365.ContentEditableEvent) => void 0,\n requestContext: this.props.context.request,\n telemetryContent: this.telemetryContent\n }}\n />\n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private _initState(): IAccountCustomerBalanceTileViewState {\n const account: CustomerBalances = get(this.props, 'data.balance.result');\n\n let content: React.ReactNode;\n let isDetailsLinkDisplayed = false;\n\n if (this.hasError) {\n this.props.telemetry.error('Error retrieving customer account balance');\n content = ;\n } else if (\n account.Balance === 0 &&\n account.CreditLimit === 0 &&\n account.InvoiceAccountBalance === 0 &&\n account.InvoiceAccountCreditLimit === 0\n ) {\n // Non-established credit\n content = ;\n } else {\n // Successfully retrieved balance\n const { accountCreditVerbagePrefix, accountCreditVerbagePostfix } = this.props.resources;\n const currencyCode = get(this.props, 'context.request.channel.Currency');\n const formatCurrency = get(this.props, 'context.cultureFormatter.formatCurrency');\n let customerCredit = 0;\n\n if (account.InvoiceAccountCreditLimit === 0) {\n customerCredit = account.CreditLimit - account.Balance;\n } else {\n customerCredit = account.InvoiceAccountCreditLimit - account.InvoiceAccountBalance;\n }\n\n const customerCreditFormatted = `${formatCurrency(customerCredit.toFixed(2), currencyCode)}`;\n\n isDetailsLinkDisplayed = true;\n content = (\n \n );\n }\n\n return { content, isDetailsLinkDisplayed };\n }\n}\n\nexport default AccountCustomerBalanceTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountCustomerBalanceTileViewProps } from './account-customer-balance-tile';\n\nconst AccountCustomerBalanceTileView: React.FC = props => {\n const { AccountCustomerBalanceTile, heading, content, links } = props;\n\n return (\n \n {heading}\n {content}\n {links}\n \n );\n};\n\nexport default AccountCustomerBalanceTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\ninterface IAccountCustomerBalanceTileInfo {\n label?: string;\n value?: string;\n verbagePrefix?: string;\n verbagePostfix?: string;\n className?: string;\n error?: string;\n}\n\nexport const ErrorComponent: React.FC = ({ error }) => (\n {error}\n);\n\nexport const CreditComponent: React.FC = ({ verbagePrefix, verbagePostfix, value, className }) => {\n return (\n
\n {verbagePrefix}\n {value}\n {verbagePostfix}\n
\n );\n};\n\nexport const InfoComponent: React.FC = ({ label, value, className }) => (\n
\n {label}\n {value}\n
\n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\ninterface ILinksData {\n linkText?: string;\n linkUrl: Msdyn365.ILinkData;\n ariaLabel?: string;\n openInNewTab?: boolean;\n}\n\nexport interface IAccountCustomerBalanceTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountCustomerBalanceTileLinks: React.FC = ({\n links,\n telemetryContent,\n onTextChange,\n requestContext\n}) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-customer-balance-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountCustomerBalanceTileLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { isChannelTypeB2B } from '@msdyn365-commerce/core';\nimport { BusinessPartnerUsersDataActions } from '@msdyn365-commerce/retail-proxy';\nimport {\n AccountStatementRequest,\n BusinessPartnerOperationDeliveryType,\n CustomerBalances\n} from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { getTelemetryObject, Heading, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport { get } from 'lodash';\nimport { computed } from 'mobx';\nimport * as React from 'react';\n\nimport { IAccountCustomerBalanceData } from './account-customer-balance.data';\nimport { HeadingTag, IAccountCustomerBalanceProps } from './account-customer-balance.props.autogenerated';\nimport {\n AccountLabels,\n AccountValues,\n ActionBar,\n AdminRequestStatementButton,\n AvailableCreditComponent,\n BackButton,\n BalanceOwedComponent,\n CreditExcessComponent,\n RequestStatementModal\n} from './components';\n\nexport interface IAccountCustomerBalanceViewProps extends IAccountCustomerBalanceProps {\n heading: string;\n homeButton: React.ReactNode;\n accountSectionHeading: React.ReactNode;\n accountLabels: React.ReactNode;\n accountValues: React.ReactNode;\n creditSummarySectionHeading: React.ReactNode;\n creditSummaryLabels?: React.ReactNode;\n creditSummaryValues?: React.ReactNode;\n actions: React.ReactNode;\n requestStatementModal: React.ReactNode;\n availableCredit?: React.ReactNode;\n balanceOwed?: React.ReactNode;\n creditExcess?: React.ReactNode;\n}\n\nexport interface IAccountCustomerBalanceState {\n isStatementRequestModalOpen: boolean;\n statementRequestFromDateString: string;\n statementRequestToDateString: string;\n isStatementRequestAdminDropdownOpen: boolean;\n statementRequestFullOrg: boolean;\n statementRequestMaxDateString?: string;\n}\n\n/**\n *\n * AccountCustomerBalance component.\n * @extends {React.PureComponent>}\n */\nclass AccountCustomerBalance extends React.PureComponent<\n IAccountCustomerBalanceProps,\n IAccountCustomerBalanceState\n> {\n private readonly telemetryContent?: ITelemetryContent;\n private readonly requestStatementButtonRef: React.RefObject = React.createRef();\n\n @computed get canSubmitStatementRequest(): boolean {\n return this.state.statementRequestFromDateString !== '' && this.state.statementRequestToDateString !== '';\n }\n\n constructor(props: IAccountCustomerBalanceProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.state = {\n isStatementRequestModalOpen: false,\n statementRequestFromDateString: '',\n statementRequestToDateString: '',\n isStatementRequestAdminDropdownOpen: false,\n statementRequestFullOrg: false,\n statementRequestMaxDateString: new Date().toISOString().split('T')[0]\n };\n }\n\n public render(): JSX.Element | null {\n const customer = get(this.props, 'data.customerInformation.result');\n const account: CustomerBalances = get(this.props, 'data.balance.result');\n if ([customer, account].includes(undefined)) {\n this.props.context.telemetry.error('Customer data is unavailable, module will not render');\n return null;\n }\n\n const { config, resources, context } = this.props;\n const { heading } = config;\n const {\n creditSummarySectionHeading,\n accountSectionHeading,\n backToShoppingText,\n customerSincePrefix,\n availableCreditLabel,\n balanceOwedLabel,\n creditExcessLabel,\n requestStatementButtonLabel,\n modalHeaderLabel,\n sendToEmailLabel,\n fromDateLabel,\n toDateLabel,\n submitRequestLabel,\n cancelLabel,\n myAccountStatementLabel,\n fullOrganizationLabel,\n modalAriaLabel\n } = resources;\n\n const {\n isStatementRequestModalOpen,\n statementRequestFromDateString,\n statementRequestToDateString,\n statementRequestMaxDateString\n } = this.state;\n\n const accountNumber = customer.AccountNumber;\n const createdOn = this._formatJoinDate(new Date(customer.CreatedDateTime));\n const name = `${customer.FirstName} ${customer.LastName}`;\n let customerCredit = 0;\n let customerAccountBalance = 0;\n let excess = 0;\n\n if (account.InvoiceAccountCreditLimit === 0) {\n customerCredit = account.CreditLimit - account.Balance;\n customerAccountBalance = account.Balance;\n excess = account.Balance - account.CreditLimit;\n } else {\n customerCredit = account.InvoiceAccountCreditLimit - account.InvoiceAccountBalance;\n customerAccountBalance = account.InvoiceAccountBalance;\n excess = account.InvoiceAccountBalance - account.InvoiceAccountCreditLimit;\n }\n\n const creditExcess = excess > 0 ? this._formatCurrency(excess) : null;\n const availableCredit = this._formatCurrency(customerCredit);\n const balanceOwed = this._formatCurrency(customerAccountBalance);\n const backLink = Msdyn365.getUrlSync('home', context.actionContext) || '';\n const emailAddress = customer.Email;\n const isB2BSite = isChannelTypeB2B(this.props.context.request);\n const isB2BAdmin = isB2BSite && customer.IsB2bAdmin;\n\n const actionBar = isB2BAdmin ? (\n \n ) : (\n isB2BSite && (\n \n )\n );\n\n const viewProps = {\n ...this.props,\n heading: ,\n accountSectionHeading: (\n \n ),\n accountLabels: (\n \n ),\n accountValues: ,\n creditSummarySectionHeading: (\n \n ),\n availableCredit: ,\n balanceOwed: ,\n creditExcess: ,\n homeButton: ,\n actions: actionBar,\n requestStatementModal: isB2BSite && (\n \n )\n };\n\n return this.props.renderView(viewProps);\n }\n\n private _formatCurrency(currency: number): string {\n const currencyCode = get(this.props, 'context.request.channel.Currency');\n const formatCurrency = get(this.props, 'context.cultureFormatter.formatCurrency');\n\n return `${formatCurrency(currency.toFixed(2), currencyCode)}`;\n }\n\n private _formatJoinDate(date: Date): string {\n const i14nDate = new Intl.DateTimeFormat(this.props.context.actionContext.requestContext.locale, {\n month: 'long',\n day: 'numeric',\n year: 'numeric'\n });\n\n return i14nDate.format(date);\n }\n\n private readonly _showRequestStatementModal = (): void => {\n if (!this.state.isStatementRequestModalOpen) {\n this.setState({\n isStatementRequestModalOpen: true\n });\n }\n };\n\n private readonly _toggleModal = (): void => {\n this.setState({\n isStatementRequestModalOpen: false\n });\n this.requestStatementButtonRef.current?.focus();\n };\n\n private readonly _toggleDropdown = (): void => {\n this.setState({\n isStatementRequestAdminDropdownOpen: !this.state.isStatementRequestAdminDropdownOpen\n });\n };\n\n private readonly _updateFromDate = (newFromDate: string) => {\n this.setState({\n statementRequestFromDateString: newFromDate\n });\n };\n\n private readonly _updateToDate = (newToDate: string) => {\n this.setState({\n statementRequestToDateString: newToDate\n });\n };\n\n private readonly _adminShowRequestStatementModal = (isFullOrg: boolean) => {\n this.setState({\n statementRequestFullOrg: isFullOrg,\n isStatementRequestAdminDropdownOpen: false\n });\n\n this._showRequestStatementModal();\n };\n\n private readonly _requestStatement = () => {\n const customer = this.props.data.customerInformation.result!;\n const B2BUserId = this.props.data.b2bUserInformation?.result?.B2BUserId || '';\n\n const statementRequest: AccountStatementRequest = {\n FromDate: new Date(this.state.statementRequestFromDateString),\n ToDate: new Date(this.state.statementRequestToDateString),\n IsForFullOrganization: this.state.statementRequestFullOrg,\n RequestedUserId: B2BUserId,\n RequestingUserEmail: customer.Email,\n DeliveryTypeValue: BusinessPartnerOperationDeliveryType.Email\n };\n\n const context = { callerContext: this.props.context.actionContext };\n\n BusinessPartnerUsersDataActions.requestAccountStatementAsync(context, B2BUserId, statementRequest);\n\n this.setState({\n isStatementRequestModalOpen: false\n });\n\n this.requestStatementButtonRef.current?.focus();\n };\n}\n\nexport default AccountCustomerBalance;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountCustomerBalanceViewProps } from './account-customer-balance';\n\nexport default (props: IAccountCustomerBalanceViewProps) => {\n const {\n heading,\n accountSectionHeading,\n creditSummarySectionHeading,\n accountLabels,\n accountValues,\n creditSummaryLabels,\n creditSummaryValues,\n homeButton,\n actions,\n requestStatementModal,\n availableCredit,\n balanceOwed,\n creditExcess\n } = props;\n\n return (\n \n {heading}\n {requestStatementModal}\n {actions}\n {accountSectionHeading}\n
\n {accountLabels}\n {accountValues}\n
\n {creditSummarySectionHeading}\n
\n {creditSummaryLabels}\n {creditSummaryValues}\n {availableCredit}\n {balanceOwed}\n {creditExcess}\n
\n {homeButton}\n
\n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Random } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, Popover } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\ninterface IAccountCustomerBalanceActions {\n className?: string;\n buttonReference?: React.RefObject;\n requestStatementButtonLabel: string;\n onRequestStatement(): void;\n}\n\ninterface IAdminRequestStatementProps {\n className?: string;\n requestStatementButtonLabel: string;\n myUserAccountLabel: string;\n fullOrganizationLabel: string;\n isDropdownShowing: boolean;\n buttonReference?: React.RefObject;\n promoteToSellerLabel?: string;\n onToggleDropdown(): void;\n onRequestStatement(isFullOrg: boolean): void;\n onPromoteToSeller?(): void;\n}\n\nexport const ActionBar: React.FC = ({\n className,\n onRequestStatement,\n requestStatementButtonLabel,\n buttonReference\n}) => {\n const popoverReference = buttonReference !== undefined ? buttonReference : React.createRef();\n return (\n
\n \n
\n );\n};\n\nexport const AdminRequestStatementButton: React.FC = ({\n className,\n onRequestStatement,\n requestStatementButtonLabel,\n onToggleDropdown,\n onPromoteToSeller,\n promoteToSellerLabel,\n myUserAccountLabel,\n fullOrganizationLabel,\n isDropdownShowing,\n buttonReference\n}) => {\n const onSelectCustomerAccount = React.useCallback(() => {\n onRequestStatement(false);\n }, [onRequestStatement]);\n\n const onSelectFullOrg = React.useCallback(() => {\n onRequestStatement(true);\n }, [onRequestStatement]);\n\n const onSelectPromoteToSeller = React.useCallback(() => {\n onPromoteToSeller?.();\n }, [onPromoteToSeller]);\n\n const popoverReference = buttonReference !== undefined ? buttonReference : React.createRef();\n const requestStatementDropdownString = `request-statement-dropdown-id-${Random.Guid.generateGuid()}`;\n return (\n
\n \n {requestStatementButtonLabel}\n \n \n \n {myUserAccountLabel}\n \n \n {promoteToSellerLabel && (\n \n {promoteToSellerLabel}\n \n )}\n \n
\n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Modal, ModalBody, ModalFooter, ModalHeader } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\n/**\n * The interface for the props for the account statement request modal.\n */\ninterface IAccountStatementRequestModalProps {\n email: string;\n isModalOpen: boolean;\n fromDateString: string;\n toDateString: string;\n canSubmitRequest: boolean;\n modalHeaderLabel: string;\n sendToEmailLabel: string;\n fromDateLabel: string;\n toDateLabel: string;\n submitRequestLabel: string;\n cancelLabel: string;\n className: string;\n selectedUser: string;\n selectedUserLabel: string;\n toggle(): void;\n onChangeFromDate(newFromDate: string): void;\n onChangeToDate(newToDate: string): void;\n onSubmitRequest(): void;\n modalAriaLabel?: string;\n maxDateString?: string;\n}\n\nexport const RequestStatementModal: React.FC = ({\n className,\n email,\n isModalOpen,\n toggle,\n fromDateString,\n toDateString,\n onChangeFromDate,\n onChangeToDate,\n canSubmitRequest,\n modalHeaderLabel,\n sendToEmailLabel,\n fromDateLabel,\n toDateLabel,\n submitRequestLabel,\n cancelLabel,\n onSubmitRequest,\n selectedUser,\n selectedUserLabel,\n modalAriaLabel,\n maxDateString\n}) => {\n const onChangeFromDateEvent = React.useCallback(\n (event: React.ChangeEvent) => {\n const value = event.target.value;\n\n onChangeFromDate(value);\n },\n [onChangeFromDate]\n );\n\n const onChangeToDateEvent = React.useCallback(\n (event: React.ChangeEvent) => {\n const value = event.target.value;\n\n onChangeToDate(value);\n },\n [onChangeToDate]\n );\n\n /**\n * If the onBlur is called on the fromDate and the date has been changed, reset focus on it.\n * @param event - The event that is triggering onBlur.\n */\n const onBlurFromDate = React.useCallback(\n (event: React.ChangeEvent) => {\n if (ObjectExtensions.isFunction(event.target.focus) && event.target.value !== fromDateString) {\n event.target.focus();\n }\n },\n [fromDateString]\n );\n\n /**\n * If the onBlur is called on the toDate and the date has been changed, reset focus on it.\n * @param event - The event that is triggering onBlur.\n */\n const onBlurToDate = React.useCallback(\n (event: React.ChangeEvent) => {\n if (ObjectExtensions.isFunction(event.target.focus) && event.target.value !== toDateString) {\n event.target.focus();\n }\n },\n [toDateString]\n );\n\n return (\n \n {modalHeaderLabel}\n \n {selectedUser && (\n
\n \n
\n
{selectedUser}
\n
\n )}\n \n
\n {email}\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n \n \n {submitRequestLabel}\n \n {` `}\n \n \n \n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, TelemetryConstant } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { AdminRequestStatementButton } from './account-actions';\nimport { RequestStatementModal } from './account-statement-request-modal';\n\nexport * from './account-actions';\nexport * from './account-statement-request-modal';\n\ninterface IAccountLabel {\n name: string;\n accountNumber: string;\n createdOn: string;\n customerSincePrefix: string;\n}\n\ninterface IAccountValues {\n availableCredit: string;\n availableCreditLabel: string;\n}\n\n/**\n * Prop for Available credit component.\n */\ninterface ICreditSummaryAvailableCredit {\n availableCreditLabel: string;\n availableCredit: string;\n}\n\n/**\n * Prop for Balanced owed component.\n */\ninterface ICreditSummaryBalanceOwed {\n balanceOwedLabel: string;\n balanceOwed: string;\n}\n\n/**\n * Prop for credit excess component.\n */\ninterface ICreditSummaryCreditExcess {\n creditExcessLabel: string | null;\n creditExcess: string | null;\n}\n\ninterface ICreditSummaryLabel {\n availableCredit: string;\n balanceOwed: string;\n creditExcess: string | null;\n}\n\ninterface ICreditSummaryValues {\n availableCredit: string;\n balanceOwed: string;\n creditExcess: string | null;\n}\n\ninterface IBackButton {\n link: string;\n label: string;\n telemetryContent?: ITelemetryContent;\n}\n\nexport const AccountLabels: React.FC = ({ name, accountNumber, customerSincePrefix, createdOn }) => (\n
\n

{name}

\n
#{accountNumber}
\n
\n {customerSincePrefix} {createdOn}\n
\n
\n);\n\nexport const AccountValues: React.FC = ({ availableCredit, availableCreditLabel }) => (\n
\n
{availableCreditLabel}
\n
{availableCredit}
\n
\n);\n\nexport const CreditSummaryLabels: React.FC = ({ availableCredit, balanceOwed, creditExcess }) => (\n
\n
{availableCredit}
\n
{balanceOwed}
\n
{creditExcess}
\n
\n);\n\nexport const CreditSummaryValues: React.FC = ({ availableCredit, balanceOwed, creditExcess }) => (\n
\n
{availableCredit}
\n
{balanceOwed}
\n {creditExcess &&
{creditExcess}
}\n
\n);\n\n/**\n * Available credit component.\n * @param props - ICreditSummaryAvailableCredit.\n * @param props.availableCreditLabel - Available credit label.\n * @param props.availableCredit - Available credit value.\n * @returns - React Node for available credit component.\n */\nexport const AvailableCreditComponent: React.FC = ({ availableCreditLabel, availableCredit }) => (\n
\n
\n
{availableCreditLabel}
\n
\n
\n
{availableCredit}
\n
\n
\n);\n\n/**\n * Balance Owed Component.\n * @param props - ICreditSummaryBalanceOwed.\n * @param props.balanceOwedLabel - Balance Owed label.\n * @param props.balanceOwed - Balance Owed value.\n * @returns - React Node for balance owed component.\n */\nexport const BalanceOwedComponent: React.FC = ({ balanceOwedLabel, balanceOwed }) => (\n
\n
\n
{balanceOwedLabel}
\n
\n
\n
{balanceOwed}
\n
\n
\n);\n\n/**\n * Credit Excess Component.\n * @param props - ICreditSummaryCreditExcess.\n * @param props.creditExcessLabel - Credit excess label.\n * @param props.creditExcess - Credit excess value.\n * @returns - React Node for credit excess component.\n */\nexport const CreditExcessComponent: React.FC = ({ creditExcessLabel, creditExcess }) => (\n
\n {creditExcess && (\n
\n
{creditExcessLabel}
\n
\n )}\n
\n {creditExcess &&
{creditExcess}
}\n
\n
\n);\nexport const BackButton: React.FC = ({ link, label, telemetryContent }) => {\n const payLoad = getPayloadObject('click', telemetryContent!, TelemetryConstant.BackToShopping);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n {label}\n \n );\n};\n\nexport { AdminRequestStatementButton, RequestStatementModal };\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ILinkData } from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ILinksData {\n linkText?: string;\n linkUrl: ILinkData;\n ariaLabel?: string;\n openInNewTab?: boolean;\n}\n\nexport interface IAccountLoyaltyTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountLoyaltyTileLinks: React.FC = ({ links, telemetryContent, onTextChange, requestContext }) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-loyalty-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountLoyaltyTileLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { LoyaltyRewardPoint } from '@msdyn365-commerce/retail-proxy';\nimport { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountLoyaltyTileData } from './account-loyalty-tile.data';\nimport { IAccountLoyaltyTileProps } from './account-loyalty-tile.props.autogenerated';\nimport DescriptionComponent from './components/account-loyalty-tile-description';\nimport LinksComponent from './components/account-loyalty-tile-links';\n\nexport interface IAccountLoyaltyTileViewProps extends IAccountLoyaltyTileProps {\n AccountLoyaltyTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * AccountLoyalty component.\n * @extends {React.PureComponent>}\n */\nclass AccountLoyaltyTile extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountLoyaltyTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element {\n const { config, data, resources, context } = this.props;\n const { className, heading, signUpLinkText, signUpLinkAriaLabel, viewLinkText, viewLinkAriaLabel } = config;\n const { accountLoyaltySummary, accountLoyaltyMemberSummary } = resources;\n const { loyaltyCard } = data;\n\n let description = accountLoyaltySummary;\n let url = Msdyn365.getUrlSync('loyaltyJoin', context.actionContext) || '';\n const link = { linkText: signUpLinkText, linkUrl: { destinationUrl: url }, ariaLabel: signUpLinkAriaLabel };\n\n if (loyaltyCard && loyaltyCard.result && loyaltyCard.result.CardNumber) {\n const decimalPrecision = 2;\n let points = 0;\n\n if (loyaltyCard.result.RewardPoints && loyaltyCard.result.RewardPoints.length > 0) {\n loyaltyCard.result.RewardPoints.forEach((rewardPoint: LoyaltyRewardPoint) => {\n points += rewardPoint.ActivePoints!;\n });\n }\n link.ariaLabel = viewLinkAriaLabel;\n link.linkText = viewLinkText;\n url = Msdyn365.getUrlSync('loyalty', context.actionContext) || '';\n link.linkUrl.destinationUrl = url;\n description = format(accountLoyaltyMemberSummary, points.toFixed(decimalPrecision));\n }\n\n const viewProps = {\n ...this.props,\n className,\n AccountLoyaltyTile: {\n moduleProps: this.props,\n className: classnames('ms-account-loyalty-tile', config.className)\n },\n heading: heading && (\n \n ),\n links: (\n \n ),\n description: \n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.signUpLinkText && this.props.config.viewLinkText) {\n this.props.config.viewLinkText = event.target.value;\n }\n };\n}\n\nexport default AccountLoyaltyTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountLoyaltyTileViewProps } from './account-loyalty-tile';\n\nconst AccountLoyaltyTileView: React.FC = props => {\n const { AccountLoyaltyTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default AccountLoyaltyTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\ninterface IAccountLoyaltyTileDescription {\n description: string;\n}\n\n// eslint-disable-next-line no-redeclare\nconst IAccountLoyaltyTileDescription: React.FC = ({ description }) => (\n

{description}

\n);\n\nexport default IAccountLoyaltyTileDescription;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { EmailRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, Modal, ModalBody } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IAccountProfileEditConfig, IAccountProfileEditProps } from './account-profile-edit.props.autogenerated';\nimport AccountProfileEditButtonComponent from './components/account-profile-edit-button';\nimport AccountProfileEditErrorComponent from './components/account-profile-edit-error';\nimport AccountProfileEditInputComponent from './components/account-profile-edit-input';\nimport AccountProfileEditLabelComponent from './components/account-profile-edit-label';\nimport AccountProfileEditLoadingIconComponent from './components/account-profile-edit-loading-icon';\nimport AccountProfileEditLoadingMessageComponent from './components/account-profile-edit-loading-message';\n\nexport interface IAccountProfileEditViewState {\n isShowLoading: boolean;\n}\n\nexport interface IAccountProfileEditItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IAccountProfileEditLocalAccount {\n localAccount: INodeProps;\n items: IAccountProfileEditItem[];\n errorMessage: React.ReactNode[];\n buttonsWrapper: INodeProps;\n buttons: React.ReactNode[];\n verificationSuccessModal: INodeProps;\n verificationSuccessModalMessage: INodeProps;\n}\n\nexport interface IAccountProfileEditLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface IAccountProfileEditViewProps {\n className: string;\n viewState: IAccountProfileEditViewState;\n loading: IAccountProfileEditLoading;\n accountProfileEdit: IModuleProps;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n heading: React.ReactNode;\n accountProfileEditLocalAccount: IAccountProfileEditLocalAccount;\n}\n\n/**\n *\n * AccountProfileEdit component\n * All AAD related module is rendered on AAD page and we need to respect HTML contract provide by AAD.\n * Please ensure any change in module don't break contract with AAD.\n * @extends {React.Component>}\n */\n@observer\nclass AccountProfileEdit extends React.Component> {\n private readonly moduleClassName: string = 'ms-account-profile-edit';\n\n private readonly telemetryContent: ITelemetryContent;\n\n @observable private givenName: string;\n\n @observable private surname: string;\n\n @observable private email: string;\n\n @observable private emailRegex: string;\n\n @observable private isInitialized: boolean;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private initializationTimer: any;\n\n constructor(props: IAccountProfileEditProps) {\n super(props);\n this.givenName = '';\n this.surname = '';\n this.email = '';\n this.emailRegex = EmailRegex.defaultRegex.source;\n this.isInitialized = false;\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public componentDidMount(): void {\n this._onInit();\n }\n\n // After successful AAD initialization, call initialize method provided by AAD to attach events.\n public componentDidUpdate(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (this.isInitialized && window && window['$element'] && window['$element']['initialize']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['$element']['initialize']();\n }\n }\n\n public shouldComponentUpdate(\n nextProps: IAccountProfileEditProps,\n nextState: IAccountProfileEditViewState\n ): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { config, resources } = this.props;\n\n const viewProps = {\n ...this.props,\n viewState: {\n isShowLoading: !this.isInitialized\n },\n accountProfileEdit: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n loading: {\n modal: {\n tag: Modal,\n isOpen: true\n },\n modalBody: {\n tag: ModalBody\n },\n icon: ,\n message: \n },\n defaultAADConainer: {\n id: 'api',\n style: { display: 'none' }\n },\n aadConainer: {\n id: this.isInitialized ? 'api' : null,\n className: `${this.moduleClassName}__container`\n },\n heading: config.heading && config.heading.text && (\n \n ),\n accountProfileEditLocalAccount: this._renderLocalAccount()\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n public onTextBoxChange = (event: React.ChangeEvent) => {\n const id = event.target.id;\n const value = event.target.value;\n\n switch (id.toLowerCase()) {\n case 'givenname': {\n this.givenName = value;\n break;\n }\n case 'surname': {\n this.surname = value;\n break;\n }\n case 'email': {\n this.emailRegex = value;\n break;\n }\n default:\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public _onInit = () => {\n this._prePopulateData();\n this._updateErrorMessage();\n\n // Check if AAD initialization is complete. AAD do not provide any event to subscribe so we need to check variable set by AAD to check initialization status.\n this.initializationTimer = setInterval(() => {\n this._isInitializationSuccessful();\n }, 100);\n setTimeout(() => {\n clearInterval(this.initializationTimer);\n }, 10_000);\n };\n\n // After successful AAD initialization, remove waiting and preload any data, if needed.\n private readonly _isInitializationSuccessful = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['$diags'] && window['$diags']['initializationSuccessful']) {\n clearInterval(this.initializationTimer);\n this.isInitialized = true;\n }\n };\n\n private readonly _prePopulateData = () => {\n const { resources } = this.props;\n const invalidEmailAddressError = resources.invalidEmailAddressError || 'Please enter a valid email address.';\n\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window['SA_FIELDS'] && window['SA_FIELDS']['AttributeFields']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['SA_FIELDS']['AttributeFields'].map(\n (obj: { ID: string; PRE: string; PAT: string; UX_INPUT_TYPE: string; PAT_DESC: string }) => {\n const value = obj.PRE ? this._htmlDecode(obj.PRE) : '';\n switch (obj.ID.toLowerCase()) {\n case 'givenname': {\n this.givenName = value;\n break;\n }\n case 'surname': {\n this.surname = value;\n break;\n }\n case 'email': {\n this.email = value;\n this.emailRegex = obj.PAT;\n obj.PAT_DESC = invalidEmailAddressError;\n break;\n }\n default:\n }\n }\n );\n }\n };\n\n private _htmlDecode(str: string): string {\n const e = document.createElement('div');\n\n e.innerHTML = str;\n return e.childNodes.length === 0 ? '' : e.childNodes[0].nodeValue || '';\n }\n\n private readonly _updateErrorMessage = () => {\n const { resources } = this.props;\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n if (window && window['CONTENT']) {\n const message = {\n required_field: resources.requiredFieldMissingError,\n verifying_blurb: resources.loadingMessage\n };\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n Object.assign(window['CONTENT'], message);\n }\n };\n\n private _renderLocalAccount(): IAccountProfileEditLocalAccount {\n const { config, resources } = this.props;\n const localAccount = {\n localAccount: {\n id: 'attributeList',\n className: `${this.moduleClassName}__account-items attr`\n },\n items: [\n this._renderInput('givenName', 'text', this.givenName, resources.firstNameLabelText, resources.firstNameMaxLength),\n this._renderInput('surname', 'text', this.surname, resources.lastNameLabelText, resources.lastNameMaxLength)\n ],\n errorMessage: [\n ,\n ,\n \n ],\n buttonsWrapper: {\n className: `${this.moduleClassName}__buttons`\n },\n buttons: [\n ,\n \n ],\n verificationSuccessModal: {\n className: `${this.moduleClassName}__verifying-modal verifying-modal`\n },\n verificationSuccessModalMessage: {\n id: 'verifying_blurb',\n className: `${this.moduleClassName}__verifying-modal-message`\n }\n };\n\n if (config.showEmail && this.email !== '') {\n localAccount.items.push(\n this._renderInput('email', 'email', this.email, resources.emailAddressLabelText, undefined, this.emailRegex)\n );\n }\n\n return localAccount;\n }\n\n private _renderInput(\n id: string,\n type: string,\n value: string,\n labelText: string,\n maxLength?: string,\n pattern?: string\n ): IAccountProfileEditItem {\n const className = `${this.moduleClassName}__account-item`;\n return {\n wrapper: {\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry')\n },\n key: id,\n label: (\n \n ),\n errorMessage: (\n \n ),\n input: (\n \n )\n };\n }\n}\n\nexport default AccountProfileEdit;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n IAccountProfileEditItem,\n IAccountProfileEditLoading,\n IAccountProfileEditLocalAccount,\n IAccountProfileEditViewProps\n} from './account-profile-edit';\n\nconst AccountProfileEditItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst LocalAccount: React.FC = ({\n localAccount,\n items,\n errorMessage,\n buttonsWrapper,\n buttons,\n verificationSuccessModal,\n verificationSuccessModalMessage\n}) => {\n return (\n \n {items &&\n items.map((item: IAccountProfileEditItem) => {\n // eslint-disable-next-line react/jsx-key\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n {buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n \n\n \n \n \n \n );\n};\n\nconst AccountProfileEditLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst AccountProfileEditView: React.FC = props => {\n const { accountProfileEdit, viewState, loading, defaultAADConainer, aadConainer, heading, accountProfileEditLocalAccount } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n {heading}\n {LocalAccount(accountProfileEditLocalAccount)}\n \n \n );\n};\n\nexport default AccountProfileEditView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Button, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IAccountProfileEditButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n telemetryContent?: ITelemetryContent;\n onClick?(event: React.MouseEvent): void;\n}\n\nconst AccountProfileEditButton: React.FC = ({\n id,\n className,\n text,\n ariaLabel,\n disabled,\n telemetryContent,\n onClick\n}) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n\n return (\n \n );\n};\n\nexport default AccountProfileEditButton;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface IAccountProfileEditErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst AccountProfileEditError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nexport default AccountProfileEditError;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IAccountProfileEditInputProps {\n id?: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n type: any;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport interface IAccountProfileEditInput {\n key: string;\n AddressItem: INodeProps;\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n\nconst AccountProfileEditInput: React.FC = ({ id, type, value, pattern, className, maxLength, onChange }) => (\n \n);\n\nexport default AccountProfileEditInput;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IAccountProfileEditLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst AccountProfileEditLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default AccountProfileEditLabel;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IAccountProfileEditLoadingIcon {\n className: string;\n}\n\nconst AccountProfileEditLoadingIcon: React.FC = ({ className }) => (\n
\n);\n\nexport default AccountProfileEditLoadingIcon;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IAccountProfileEditLoadingMessage {\n className: string;\n message: string;\n}\n\nconst AccountProfileEditLoadingMessage: React.FC = ({ className, message }) => (\n
{message}
\n);\n\nexport default AccountProfileEditLoadingMessage;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountWelcomeTileData } from './account-welcome-tile.data';\nimport { IAccountWelcomeTileProps } from './account-welcome-tile.props.autogenerated';\n\nexport interface IAccountWelcomeTileViewProps extends IAccountWelcomeTileProps {\n AccountWelcomeTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n}\n\n/**\n *\n * AccountWelcome component.\n * @extends {React.PureComponent>}\n */\nclass AccountWelcomeTile extends React.PureComponent> {\n public render(): JSX.Element {\n const { config, data } = this.props;\n const { className } = config;\n\n const accountInfo = data.accountInformation.result;\n const heading = {\n ...config.heading,\n ...{\n text: `${config.heading.text ? config.heading.text : ''} ${\n accountInfo && accountInfo.FirstName ? accountInfo.FirstName : ''\n }`\n }\n };\n\n const viewProps = {\n ...this.props,\n className,\n AccountWelcomeTile: {\n moduleProps: this.props,\n className: classnames('ms-account-welcome-tile', config.className)\n },\n heading: heading && heading.text && (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n}\n\nexport default AccountWelcomeTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountWelcomeTileViewProps } from './account-welcome-tile';\n\nconst AccountWelcomeTileView: React.FC = props => {\n const { AccountWelcomeTile, heading } = props;\n\n return {heading};\n};\n\nexport default AccountWelcomeTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\ninterface IAccountWishlistTileDescription {\n description: string;\n}\n\n// eslint-disable-next-line no-redeclare\nconst IAccountWishlistTileDescription: React.FC = ({ description }) => (\n

{description}

\n);\n\nexport default IAccountWishlistTileDescription;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../account-wishlist-tile.props.autogenerated';\n\nexport interface IAccountWishlistTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountWishlistTileLinks: React.FC = ({ links, telemetryContent, onTextChange, requestContext }) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-wishlist-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountWishlistTileLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountWishlistTileData } from './account-wishlist-tile.data';\nimport { IAccountWishlistTileProps } from './account-wishlist-tile.props.autogenerated';\nimport DescriptionComponent from './components/account-wishlist-tile-description';\nimport LinksComponent from './components/account-wishlist-tile-links';\n\nexport interface IAccountWishlistTileViewProps extends IAccountWishlistTileProps {\n AccountWishlistTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * AccountWishlist component.\n * @extends {React.PureComponent>}\n */\nclass AccountWishlistTile extends React.PureComponent> {\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IAccountWishlistTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element {\n const { config, resources, data } = this.props;\n const { className, heading, links } = config;\n const { accountWishlistTileDescription } = resources;\n const wishlists = data.wishlists.result;\n\n const wishlistsCount = ((wishlists && wishlists.length && wishlists[0].CommerceListLines) || []).length;\n const description = format(accountWishlistTileDescription || 'You have {0} items in the Wishlist.', wishlistsCount);\n\n const viewProps = {\n ...this.props,\n className,\n AccountWishlistTile: {\n moduleProps: this.props,\n className: classnames('ms-account-wishlist-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n ),\n description: \n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default AccountWishlistTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountWishlistTileViewProps } from './account-wishlist-tile';\n\nconst AccountWishlistTileView: React.FC = props => {\n const { AccountWishlistTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default AccountWishlistTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { ICoreContext, IDateFormatOptions, IRequestContext } from '@msdyn365-commerce/core';\nimport { BusinessPartnerOperationRequest, BusinessPartnerOperationRequestDetails } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n IDataTableProps,\n IHeadingsProperty,\n ITableItemProps,\n ITableRowProps,\n Table,\n TableDataType\n} from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IB2bRequestsStatusData } from '../b2b-requests-status.data';\nimport { IB2bRequestsStatusProps } from '../b2b-requests-status.props.autogenerated';\n\nexport interface IB2bRequestsTableProps {\n moduleProps: IB2bRequestsStatusProps;\n isMobile: boolean;\n mobileExcludedColumns: string[];\n}\n\nexport interface IB2bRequestsTableResources {\n b2bRequestsTypeCreateProspect: string;\n b2bRequestsTypeAddUser: string;\n b2bRequestsTypeEditUser: string;\n b2bRequestsTypeDeleteUser: string;\n b2bRequestsTypeRequestAccountStatement: string;\n b2bRequestsTypeRequestInvoiceCopy: string;\n b2bRequestsTypeUnknown: string;\n b2bRequestsStatusRequested: string;\n b2bRequestsStatusProcessed: string;\n b2bRequestsStatusError: string;\n b2bRequestsNumberOfItems: string;\n b2bRequestsNumberOfItemsSingular: string;\n b2bRequestsNameDisplay: string;\n b2bRequestsPreviousText: string;\n b2bRequestsNextText: string;\n b2bRequestsUserColumn: string;\n b2bRequestsStatusColumn: string;\n b2bRequestsRequestDateColumn: string;\n b2bRequestsTypeColumn: string;\n b2bRequestsDescriptionColumn: string;\n b2bRequestsAccountStatementDetails: string;\n b2bRequestsInvoiceCopyDetails: string;\n businessUserSelectCheckBoxAriaLabelText?: string;\n sortByAscending?: string;\n sortByDescending?: string;\n}\n\nexport enum RequestsTableColumnHeader {\n Name = 'User',\n Status = 'Status',\n RequestDate = 'Request date',\n Type = 'Request type',\n Description = 'Request detail'\n}\n\nconst getCurrentUrl = (reqContext: IRequestContext): URL => {\n if (MsDyn365.isBrowser) {\n return new URL(window.location.href);\n }\n\n // NOTE: Typing on requestURL is incorrect\n if (reqContext.url.requestUrl.href) {\n return new URL(reqContext.url.requestUrl.href);\n }\n return new URL(reqContext.url.requestUrl.href);\n};\n\nconst getUserName = (request: BusinessPartnerOperationRequest, resources: IB2bRequestsTableResources) => {\n if (StringExtensions.isNullOrEmpty(request.UserFirstName)) {\n if (StringExtensions.isNullOrEmpty(request.UserLastName)) {\n return '';\n }\n\n return request.UserLastName;\n } else if (StringExtensions.isNullOrEmpty(request.UserLastName)) {\n return request.UserFirstName;\n }\n\n return resources.b2bRequestsNameDisplay.replace('{0}', request.UserFirstName!).replace('{1}', request.UserLastName!);\n};\n\nconst formatDate = (context: ICoreContext, date: Date | undefined) => {\n if (date === undefined) {\n return '';\n }\n\n const dateOptions: IDateFormatOptions = { year: 'numeric', month: 'long', day: 'numeric' };\n return context.cultureFormatter.formatDate(date, dateOptions);\n};\n\n/**\n * Gets the value to display for the request details.\n * @param request - The request to parse for the details.\n * @param resources - The resources.\n * @param context - The context.\n * @returns The string to display.\n */\nconst getDetails = (request: BusinessPartnerOperationRequest, resources: IB2bRequestsTableResources, context: ICoreContext) => {\n if (!request.Details) {\n return '';\n }\n\n const requestDetails: BusinessPartnerOperationRequestDetails = request.Details;\n\n const accountStatementStartDateTime = formatDate(context, requestDetails.AccountStatementStartDateTime) || '';\n const accountStatementEndDateTime = formatDate(context, requestDetails.AccountStatementEndDateTime) || '';\n const invoiceId = requestDetails.InvoiceId ?? '';\n\n switch (request.TypeValue) {\n // eslint-disable-next-line @typescript-eslint/no-magic-numbers -- workaround for not being able to use enum value\n case 5:\n if (\n !StringExtensions.isNullOrEmpty(accountStatementStartDateTime) &&\n !StringExtensions.isNullOrEmpty(accountStatementEndDateTime)\n ) {\n return resources.b2bRequestsAccountStatementDetails\n .replace('{0}', accountStatementStartDateTime)\n .replace('{1}', accountStatementEndDateTime);\n }\n\n return '';\n // eslint-disable-next-line @typescript-eslint/no-magic-numbers -- workaround for not being able to use enum value\n case 6:\n if (!StringExtensions.isNullOrEmpty(invoiceId)) {\n return resources.b2bRequestsInvoiceCopyDetails.replace('{0}', invoiceId);\n }\n\n return '';\n default:\n return '';\n }\n};\n\nconst createTableItems = (\n operationRequests: BusinessPartnerOperationRequest[] | undefined,\n props: IB2bRequestsStatusProps\n): ITableRowProps[] => {\n if (!ArrayExtensions.hasElements(operationRequests)) {\n return [];\n }\n\n return operationRequests.map(request => {\n return {\n row: [\n {\n id: props.resources.b2bRequestsTypeColumn,\n type: TableDataType.Text,\n value: getDisplayFriendlyTypeValue(request.TypeValue ?? 0, props.resources)\n } as ITableItemProps,\n {\n id: props.resources.b2bRequestsRequestDateColumn,\n type: TableDataType.Text,\n value: formatDate(props.context, request.CreatedDateTime)\n } as ITableItemProps,\n {\n id: props.resources.b2bRequestsDescriptionColumn,\n type: TableDataType.Text,\n value: getDetails(request, props.resources, props.context)\n } as ITableItemProps,\n {\n id: props.resources.b2bRequestsUserColumn,\n type: TableDataType.Text,\n value: getUserName(request, props.resources)\n } as ITableItemProps,\n {\n id: props.resources.b2bRequestsStatusColumn,\n type: TableDataType.Text,\n value: getDisplayFriendlyStatusValue(request.StatusValue ?? 0, props.resources)\n } as ITableItemProps\n ],\n isSelected: false,\n className: props.config.className\n };\n });\n};\n\nconst getDisplayFriendlyTypeValue = (typeValue: number, resources: IB2bRequestsTableResources): string => {\n switch (typeValue) {\n case 1:\n return resources.b2bRequestsTypeCreateProspect;\n case 2:\n return resources.b2bRequestsTypeAddUser;\n case 3:\n return resources.b2bRequestsTypeDeleteUser;\n case 4:\n return resources.b2bRequestsTypeEditUser;\n case 5:\n return resources.b2bRequestsTypeRequestAccountStatement;\n case 6:\n return resources.b2bRequestsTypeRequestInvoiceCopy;\n default:\n return resources.b2bRequestsTypeUnknown;\n }\n};\n\nconst getDisplayFriendlyStatusValue = (statusValue: number, resources: IB2bRequestsTableResources): string => {\n switch (statusValue) {\n case 1:\n return resources.b2bRequestsStatusProcessed;\n case 2:\n return resources.b2bRequestsStatusError;\n default:\n return resources.b2bRequestsStatusRequested;\n }\n};\n\nconst createTableProps = (tableProps: IB2bRequestsTableProps) => {\n const { context, data, resources } = tableProps.moduleProps;\n\n const tableData = createTableItems(data.operationRequests.result, tableProps.moduleProps);\n const tableHeading =\n (ArrayExtensions.hasElements(tableData) &&\n tableData[0].row\n .filter(item => {\n // Check that this is either not mobile or the column should be displayed when mobile.\n return !tableProps.isMobile || !tableProps.mobileExcludedColumns.includes(item.id);\n })\n .map(item => {\n return {\n name: item.id,\n sortable: true,\n ariaLabel: resources.columnSortAriaLabel\n } as IHeadingsProperty;\n })) ||\n [];\n\n return {\n resources: {},\n headings: tableHeading,\n rows: tableData,\n className: `${tableProps.moduleProps.config.className}__table`,\n editLinkText: '',\n deleteLinkText: '',\n viewLinkText: '',\n enableToModify: false,\n actionLinkText: '',\n showCheckBoxes: false,\n isSortable: true,\n showPagination: true,\n minifyActions: tableProps.isMobile,\n excludedColumns: tableProps.isMobile ? tableProps.mobileExcludedColumns : [],\n paginationProperty: {\n skipCount:\n context.request.query?.skip && !isNaN(Number.parseInt(context.request.query.skip, 10))\n ? Number.parseInt(context.request.query.skip, 10)\n : 0,\n itemPerPage: 10,\n prevText: resources.b2bRequestsPreviousText,\n nextText: resources.b2bRequestsNextText,\n paginationText: '',\n url: (context && getCurrentUrl(context.request).href) || ''\n },\n isSingleSelectOnly: true,\n actions: {\n onDelete: undefined,\n onEdit: undefined,\n onView: undefined\n },\n businessUserSelectCheckBoxAriaLabelText: tableProps.moduleProps.resources.businessUserSelectCheckBoxAriaLabelText,\n sortByAscending: tableProps.moduleProps.resources.sortByAscending,\n sortByDescending: tableProps.moduleProps.resources.sortByDescending\n } as IDataTableProps;\n};\n\nexport const B2bRequestsTable: React.FC = (tableProps: IB2bRequestsTableProps) => {\n return ;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { format, Heading, IModuleProps, isMobile, VariantType } from '@msdyn365-commerce-modules/utilities';\nimport { computed } from 'mobx';\nimport * as React from 'react';\nimport { isChannelTypeB2B } from '@msdyn365-commerce/core';\n\nimport { IB2bRequestsStatusData } from './b2b-requests-status.data';\nimport { IB2bRequestsStatusProps, IHeadingData } from './b2b-requests-status.props.autogenerated';\nimport { B2bRequestsTable } from './components/b2b-requests-table';\n\nexport interface IB2bRequestsStatusViewProps extends IB2bRequestsStatusProps {\n b2bRequestsStatus: IModuleProps;\n heading?: React.ReactNode;\n table: React.ReactNode;\n}\n\n/**\n *\n * B2bRequestsStatus component.\n * @extends {React.PureComponent>}\n */\nclass B2bRequestsStatus extends React.PureComponent> {\n @computed get isMobile(): boolean {\n const size = isMobile({ variant: VariantType.Viewport, context: this.props.context.request });\n return size === 'xs';\n }\n\n public render(): JSX.Element | null {\n const { config } = this.props;\n\n if (!isChannelTypeB2B(this.props.context.actionContext.requestContext)) {\n return null;\n }\n\n const className = config.className || '';\n\n const viewProps = {\n ...this.props,\n b2bRequestsStatus: {\n moduleProps: this.props,\n className\n },\n heading: this.renderHeader(className, config.heading),\n table: this.renderTable()\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private readonly renderHeader = (className: string, headingData: IHeadingData): React.ReactNode => {\n const itemCount = this.props.data.operationRequests.result?.length ?? 0;\n\n return (\n
\n \n {this.getItemNumberDisplayString(itemCount)}\n
\n );\n };\n\n /**\n * Returns columns that needs to be excluded for mobile view.\n * @returns Array of column names.\n */\n private readonly _retrieveExcludedColumns = (): string[] => {\n const { resources } = this.props;\n return [resources.b2bRequestsRequestDateColumn, resources.b2bRequestsDescriptionColumn, resources.b2bRequestsUserColumn];\n };\n\n private readonly renderTable = (): React.ReactNode => {\n return (\n \n );\n };\n\n private readonly getItemNumberDisplayString = (itemCount: number): string => {\n switch (itemCount) {\n case 0:\n return '';\n case 1:\n return format(this.props.resources.b2bRequestsNumberOfItemsSingular, itemCount);\n default:\n return format(this.props.resources.b2bRequestsNumberOfItems, itemCount);\n }\n };\n}\n\nexport default B2bRequestsStatus;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { IB2bRequestsStatusViewProps } from './b2b-requests-status';\n\nconst B2bRequestsStatusView: React.FC = props => {\n const { b2bRequestsStatus, heading, table } = props;\n return (\n \n {heading}\n {table}\n \n );\n};\n\nexport default B2bRequestsStatusView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport React from 'react';\n\nexport const SignUpText: React.FC<{ text: string }> = (props: { text: string }) => {\n return

{props.text}

;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, * as Msdyn365 from '@msdyn365-commerce/core';\nimport { issueLoyalty, IssueLoyaltyInput } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n ITelemetryContent,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport classname from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { SignUpText } from './components/loyalty-sign-up-small-components';\nimport { ILoyaltySignUpData } from './loyalty-sign-up.data';\nimport { ILoyaltySignUpProps } from './loyalty-sign-up.props.autogenerated';\n\nexport interface IAccountLoyaltyJoinState {\n clicked: boolean;\n}\nexport interface ILoyaltySignUpViewProps extends ILoyaltySignUpProps {\n LoyaltySignUp: IModuleProps;\n heading: React.ReactNode;\n memberHeading: React.ReactNode;\n signInLink: React.ReactElement;\n signUpText: React.ReactElement;\n signUpButton: React.ReactElement;\n detailsLink: React.ReactElement;\n termsLink: React.ReactElement;\n loading: boolean;\n infoMessageBar?: React.ReactNode;\n}\n\n/**\n *\n * LoyaltySignUp component.\n * @extends {React.Component>}\n */\n@observer\nclass LoyaltySignUp extends React.Component, IAccountLoyaltyJoinState> {\n private readonly telemetryContent?: ITelemetryContent;\n private readonly loyaltySignInAttributes: Msdyn365.IDictionary | undefined;\n private readonly loyaltySignUpAttributes: Msdyn365.IDictionary | undefined;\n private readonly loyaltyDetailsLinkAttributes: Msdyn365.IDictionary | undefined;\n private readonly loyaltyTermsLinkAttributes: Msdyn365.IDictionary | undefined;\n\n constructor(props: ILoyaltySignUpProps) {\n super(props);\n this.state = { clicked: false };\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n const payLoad = getPayloadObject('click', this.telemetryContent, TelemetryConstant.SignIn);\n this.loyaltySignInAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.SignUp;\n this.loyaltySignUpAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.LoyaltyDetailLink;\n this.loyaltyDetailsLinkAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.LoyaltyTermsLink;\n this.loyaltyTermsLinkAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n }\n\n public shouldComponentUpdate(nextProps: ILoyaltySignUpProps, nextState: IAccountLoyaltyJoinState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n const {\n config: { className, heading, memberHeading },\n resources,\n context: {\n actionContext,\n request: {\n user: { signInUrl, isAuthenticated }\n }\n },\n data\n } = this.props;\n\n const termsUrl = Msdyn365.getUrlSync('loyaltyTerms', actionContext);\n let loyaltyJoinUrl = `${Msdyn365.getUrlSync('loyaltyJoin', actionContext)}?joiningLoyalty=true`;\n if (MsDyn365.isBrowser) {\n loyaltyJoinUrl = `${window.location.origin}${loyaltyJoinUrl}`;\n }\n const signInurl = `${signInUrl}?ru=${loyaltyJoinUrl}`;\n const completeClass = classname('ms-loyalty-signup', className);\n const loyaltyCard = data.loyaltyCard;\n const hasLoyaltyAccount = loyaltyCard.result && loyaltyCard.result.CardTenderTypeValue !== undefined;\n const customerInformation = data.customerInformation?.result;\n\n const invalidAsyncCustomerState: boolean =\n (this.props.context.app?.config?.canRenderAsyncCustomerDataAsUnmodifiable || false) &&\n (customerInformation?.IsAsyncCustomer || false);\n const viewProps = {\n ...this.props,\n className: completeClass,\n LoyaltySignUp: {\n moduleProps: this.props,\n className: completeClass\n },\n infoMessageBar: invalidAsyncCustomerState && (\n \n ),\n loading: !this.props.context.request.params.isEditor && loyaltyCard?.status === 'LOADING',\n heading: !hasLoyaltyAccount && heading && heading.text && (\n \n ),\n memberHeading: hasLoyaltyAccount && memberHeading && memberHeading.text && (\n \n ),\n signInLink: !isAuthenticated && (\n \n ),\n signUpText: !hasLoyaltyAccount && ,\n signUpButton: !hasLoyaltyAccount && isAuthenticated && (\n \n {this.props.resources.joinLoyaltyButtonText}\n \n ),\n detailsLink: hasLoyaltyAccount && (\n \n {this.props.resources.viewLoyaltyPageText}\n \n ),\n termsLink: !hasLoyaltyAccount && (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n public handleMemberHeadingChange = (event: Msdyn365.ContentEditableEvent) =>\n (this.props.config.memberHeading!.text = event.target.value);\n\n private readonly _issueLoyalty = () => {\n if (this.props.context.request.user.isAuthenticated && !this.state.clicked) {\n this.setState({ clicked: true });\n const input = new IssueLoyaltyInput(this.props.context.request.apiSettings);\n\n issueLoyalty(input, this.props.context.actionContext)\n .then(() => {\n if (MsDyn365.isBrowser) {\n window.location.assign(Msdyn365.getUrlSync('loyalty', this.props.context.actionContext) || '');\n }\n })\n .catch((error: Error) => {\n this.setState({ clicked: false });\n this.props.telemetry.error(error.message);\n this.props.telemetry.debug('Unable to issue loyalty card');\n });\n }\n };\n}\n\nexport default LoyaltySignUp;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILoyaltySignUpViewProps } from './loyalty-sign-up';\n\nconst LoyaltySignUpView: React.FC = props => {\n const {\n LoyaltySignUp,\n heading,\n memberHeading,\n signInLink,\n signUpText,\n signUpButton,\n detailsLink,\n termsLink,\n loading,\n infoMessageBar\n } = props;\n\n if (loading) {\n props.context.telemetry.error('LoyaltySignUp data is empty, module wont render');\n return null;\n }\n\n return (\n \n {infoMessageBar}\n {memberHeading}\n {heading}\n {detailsLink}\n {signUpText}\n {termsLink}\n {signUpButton}\n {signInLink}\n \n );\n};\n\nexport default LoyaltySignUpView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n INodeProps,\n ITelemetryContent,\n Modal,\n ModalBody,\n ModalFooter,\n ModalHeader,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nexport interface ILoyaltyTermsModalProps {\n resources: ILoyaltyTermsModalResources;\n returnRef: React.RefObject | undefined;\n checked: boolean;\n isOpen: boolean;\n terms: React.ReactNode;\n telemetryContent?: ITelemetryContent;\n onToggle(): void;\n onSubmit(): void;\n onCheck(): void;\n}\n\nexport interface ILoyaltyTermsModalResources {\n loyaltyTermsHeading: string;\n loyaltyAgreeToTerms: string;\n joinLoyaltyTermsText: string;\n cancelLoyaltyTermsText: string;\n}\n\nexport interface ILoyaltyTermsModalViewProps {\n modal: INodeProps;\n modalHeader: INodeProps;\n modalFooter: INodeProps;\n modalBody: INodeProps;\n heading: React.ReactElement;\n cancelButton: React.ReactElement;\n submitButton: React.ReactElement;\n terms: React.ReactNode;\n checkbox: React.ReactElement;\n agreeText: React.ReactElement;\n agreeSection: INodeProps;\n}\n\nexport const LoyaltyTermsModal = (props: ILoyaltyTermsModalProps): ILoyaltyTermsModalViewProps => {\n const payLoad = getPayloadObject('click', props.telemetryContent!, TelemetryConstant.LoyaltyTermsCancel);\n const loyaltyTermCancelAttributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.LoyaltyTermsSubmit;\n const loyaltyTermSubmitAttributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.LoyaltyTermsAgree;\n const loyaltyTermCheckboxAttributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\n return {\n modal: {\n tag: Modal,\n className: 'ms-loyalty-terms__modal',\n toggle: props.onToggle,\n applicationNode: 'renderPage',\n isOpen: props.isOpen,\n returnFocusRef: props.returnRef\n },\n modalHeader: { tag: ModalHeader, className: 'ms-loyalty-terms__modal-header', toggle: props.onToggle },\n modalFooter: { tag: ModalFooter, className: 'ms-loyalty-terms__modal-footer' },\n modalBody: { tag: ModalBody, className: 'ms-loyalty-terms__modal-body' },\n cancelButton: (\n \n ),\n submitButton: (\n \n {props.resources.joinLoyaltyTermsText}\n \n ),\n heading:

{props.resources.loyaltyTermsHeading}

,\n terms: props.terms,\n agreeSection: { className: 'ms-loyalty-terms__agree-section' },\n checkbox: (\n \n ),\n agreeText:

{props.resources.loyaltyAgreeToTerms}

\n };\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getUrlSync } from '@msdyn365-commerce/core';\nimport { getLoyaltyCardAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/StoreOperationsDataActions.g';\nimport { GetLoyaltyCardInput, issueLoyalty, IssueLoyaltyInput } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classname from 'classnames';\nimport * as React from 'react';\n\nimport { ILoyaltyTermsModalViewProps, LoyaltyTermsModal } from './components/loyalty-terms-modal';\nimport { ILoyaltyTermsData } from './loyalty-terms.data';\nimport { ILoyaltyTermsProps } from './loyalty-terms.props.autogenerated';\n\nexport interface ILoyaltyTermsState {\n checked: boolean;\n clicked: boolean;\n isModalOpen: boolean;\n}\nexport interface ILoyaltyTermsViewProps extends ILoyaltyTermsProps {\n LoyaltyTerms: IModuleProps;\n modalToggle: React.ReactElement;\n modal: ILoyaltyTermsModalViewProps;\n loading: boolean;\n}\n\n/**\n *\n * LoyaltyTerms component.\n * @extends {React.Component>}\n */\nclass LoyaltyTerms extends React.Component, ILoyaltyTermsState> {\n private readonly toggleRef: React.RefObject;\n\n private readonly telemetryContent: ITelemetryContent;\n\n public constructor(props: ILoyaltyTermsProps) {\n super(props);\n this._toggle = this._toggle.bind(this);\n this._submit = this._submit.bind(this);\n this._checkboxChecked = this._checkboxChecked.bind(this);\n this.toggleRef = React.createRef();\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n let search = this.props.context.request.url.requestUrl.search;\n let isJoining = false;\n if (search) {\n search = search.substring(1);\n const qsps = search.split('&');\n for (const qsp of qsps) {\n const splitQsp = qsp.split('=');\n isJoining = splitQsp[0] === 'joiningLoyalty' && splitQsp[1] === 'true';\n if (isJoining) {\n break;\n }\n }\n }\n\n this.state = {\n isModalOpen: isJoining,\n checked: false,\n clicked: false\n };\n }\n\n public shouldComponentUpdate(nextProps: ILoyaltyTermsProps, nextState: ILoyaltyTermsState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n const {\n config: { className, hideToggle },\n resources,\n slots: { serviceTerms },\n data: { loyaltyCard },\n context: {\n request: {\n user: { isAuthenticated }\n }\n }\n } = this.props;\n const completeClass = classname('ms-loyalty-terms', className);\n\n const viewProps = {\n ...this.props,\n className: completeClass,\n LoyaltyTerms: {\n moduleProps: this.props,\n className: completeClass\n },\n loading: loyaltyCard.status === 'LOADING',\n modalToggle: hideToggle !== true && (\n \n ),\n modal:\n isAuthenticated &&\n loyaltyCard.result &&\n loyaltyCard.result.CardNumber === undefined &&\n LoyaltyTermsModal({\n resources: { ...resources },\n returnRef: this.toggleRef,\n checked: this.state.checked,\n isOpen: this.state.isModalOpen,\n terms: serviceTerms,\n telemetryContent: this.telemetryContent,\n onToggle: this._toggle,\n onSubmit: this._submit,\n onCheck: this._checkboxChecked\n })\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private _toggle(): void {\n this.setState({ isModalOpen: !this.state.isModalOpen, checked: false });\n }\n\n private _submit(): void {\n if (this.props.context.request.user.isAuthenticated && !this.state.clicked) {\n this.setState({ clicked: true });\n const input = new IssueLoyaltyInput(this.props.context.request.apiSettings);\n\n issueLoyalty(input, this.props.context.actionContext)\n .then(card => {\n if (this.props.config.redirectToLoyalty) {\n window.location.assign(getUrlSync('loyalty', this.props.context.actionContext) || '');\n } else {\n getLoyaltyCardAsync({ callerContext: this.props.context.actionContext }, card.CardNumber || '')\n .then(fullCard => {\n this.props.context.actionContext.update(\n new GetLoyaltyCardInput(this.props.context.request.apiSettings),\n fullCard\n );\n })\n .catch((error: Error) => {\n this.props.context.actionContext.update(\n new GetLoyaltyCardInput(this.props.context.request.apiSettings),\n card\n );\n this.props.telemetry.error(error.message);\n this.props.telemetry.debug('Unable to fetch loyalty card');\n });\n }\n })\n .catch((error: Error) => {\n this.setState({ clicked: false });\n this.props.telemetry.error(error.message);\n this.props.telemetry.debug('Unable to issue loyalty card');\n });\n }\n }\n\n private _checkboxChecked(): void {\n this.setState({ checked: !this.state.checked });\n }\n}\n\nexport default LoyaltyTerms;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILoyaltyTermsViewProps } from './loyalty-terms';\n\nconst LoyaltyTermsView: React.FC = props => {\n const { LoyaltyTerms, modalToggle, modal, loading } = props;\n\n return !loading && modal ? (\n \n {modalToggle}\n \n {modal.heading}\n \n {modal.terms}\n \n {modal.checkbox}\n {modal.agreeText}\n \n \n \n {modal.submitButton}\n {modal.cancelButton}\n \n \n \n ) : null;\n};\n\nexport default LoyaltyTermsView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IAccountOrganizationUsersTileDescription {\n description: string;\n}\n\nexport const AccountOrganizationUsersTileDescription: React.FC = ({ description }) => (\n

{description}

\n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../organization-users-tile.props.autogenerated';\n\nexport interface IAccountOrganizationUsersTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nexport const AccountOrganizationUsersTileLinks: React.FC = ({\n links,\n telemetryContent,\n onTextChange,\n requestContext\n}) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-organization-users-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { AccountOrganizationUsersTileDescription, AccountOrganizationUsersTileLinks } from './components';\nimport { IOrganizationUsersTileData } from './organization-users-tile.data';\nimport { IOrganizationUsersTileProps } from './organization-users-tile.props.autogenerated';\n\nexport interface IOrganizationUsersTileViewProps extends IOrganizationUsersTileProps {\n OrganizationUsersTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * OrganizationUsersTile component.\n * @extends {React.PureComponent>}\n */\nclass OrganizationUsersTile extends React.PureComponent> {\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IOrganizationUsersTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element | null {\n const { config, resources, data } = this.props;\n const { className, heading, links } = config;\n const { accountOrganizationUsersTileDescriptionForSingleUser, accountOrganizationUsersTileDescriptionForMultipleUsers } = resources;\n const numUsers = data.users && data.users.result;\n const accountOrganizationUsersTileDescription =\n numUsers === 1 ? accountOrganizationUsersTileDescriptionForSingleUser : accountOrganizationUsersTileDescriptionForMultipleUsers;\n const customerInformation = data.customerInformation.result;\n\n // Organization-users tile will not be render for non-admin users.\n if (!customerInformation?.IsB2bAdmin) {\n return null;\n }\n\n const viewProps = {\n ...this.props,\n className,\n OrganizationUsersTile: {\n moduleProps: this.props,\n className: classnames('ms-account-organization-users-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n ),\n description: (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => {\n this.props.config.heading.text = event.target.value;\n };\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default OrganizationUsersTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Button, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IPasswordResetButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n telemetryContent?: ITelemetryContent;\n onClick?(event: React.MouseEvent): void;\n}\n\nconst PasswordResetButton: React.FC = ({ id, className, text, ariaLabel, disabled, telemetryContent, onClick }) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n );\n};\n\nexport default PasswordResetButton;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface IPasswordResetErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst PasswordResetError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nexport default PasswordResetError;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IPasswordResetInputProps {\n id?: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n type: any;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport interface IPasswordResetInput {\n key: string;\n AddressItem: INodeProps;\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n\nconst PasswordResetInput: React.FC = ({ id, type, value, pattern, className, maxLength, onChange }) => (\n \n);\n\nexport default PasswordResetInput;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst PasswordResetLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default PasswordResetLabel;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetLoadingIcon {\n className: string;\n}\n\nconst PasswordResetLoadingIcon: React.FC = ({ className }) =>
;\n\nexport default PasswordResetLoadingIcon;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetLoadingMessage {\n className: string;\n message: string;\n}\n\nconst PasswordResetLoadingMessage: React.FC = ({ className, message }) => (\n
{message}
\n);\n\nexport default PasswordResetLoadingMessage;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { PasswordRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, Modal, ModalBody } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport PasswordResetButtonComponent from './components/password-reset-button';\nimport PasswordResetErrorComponent from './components/password-reset-error';\nimport PasswordResetInputComponent from './components/password-reset-input';\nimport PasswordResetLabelComponent from './components/password-reset-label';\nimport PasswordResetLoadingIconComponent from './components/password-reset-loading-icon';\nimport PasswordResetLoadingMessageComponent from './components/password-reset-loading-message';\nimport { IPasswordResetConfig, IPasswordResetProps } from './password-reset.props.autogenerated';\n\nexport interface IPasswordResetViewState {\n isShowLoading: boolean;\n}\n\nexport interface IPasswordResetItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IPasswordResetLocalAccount {\n localAccount: INodeProps;\n items: IPasswordResetItem[];\n errorMessage: React.ReactNode[];\n buttonsWrapper: INodeProps;\n buttons: React.ReactNode[];\n verificationSuccessModal: INodeProps;\n verificationSuccessModalMessage: INodeProps;\n}\n\nexport interface IPasswordResetLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface IPasswordResetViewProps {\n className: string;\n viewState: IPasswordResetViewState;\n loading: IPasswordResetLoading;\n passwordReset: IModuleProps;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n heading: React.ReactNode;\n passwordResetLocalAccount: IPasswordResetLocalAccount;\n}\n\n/**\n *\n * PasswordReset component.\n * @extends {React.Component>}\n */\n@observer\nclass PasswordReset extends React.Component> {\n private readonly moduleClassName: string = 'ms-password-reset';\n\n private readonly telemetryContent?: ITelemetryContent;\n\n @observable private newPasswordRegex: string;\n\n @observable private reenterPasswordRegex: string;\n\n @observable private isInitialized: boolean;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private initializationTimer: any;\n\n constructor(props: IPasswordResetProps) {\n super(props);\n\n this.newPasswordRegex = PasswordRegex.defaultRegex.source;\n this.reenterPasswordRegex = PasswordRegex.defaultRegex.source;\n this.isInitialized = false;\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public componentDidMount(): void {\n this._onInit();\n }\n\n // After successful AAD initialization, call initialize method provided by AAD to attach events.\n public componentDidUpdate(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (this.isInitialized && window && window['$element'] && window['$element']['initialize']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['$element']['initialize']();\n }\n }\n\n public shouldComponentUpdate(nextProps: IPasswordResetProps, nextState: IPasswordResetViewState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { config, resources } = this.props;\n\n const viewProps = {\n ...this.props,\n viewState: {\n isShowLoading: !this.isInitialized\n },\n passwordReset: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n loading: {\n modal: {\n tag: Modal,\n isOpen: true\n },\n modalBody: {\n tag: ModalBody\n },\n icon: ,\n message: \n },\n defaultAADConainer: {\n id: 'api',\n style: { display: 'none' }\n },\n aadConainer: {\n id: this.isInitialized ? 'api' : null,\n className: `${this.moduleClassName}__container`\n },\n heading: config.heading && (\n \n ),\n passwordResetLocalAccount: this._renderLocalAccount()\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public _onInit = () => {\n this._prePopulateData();\n this._updateErrorMessage();\n\n // Check if AAD initialization is complete. AAD do not provide any event to subscribe so we need to check variable set by AAD to check initialization status.\n this.initializationTimer = setInterval(() => {\n this._isInitializationSuccessful();\n }, 100);\n setTimeout(() => {\n clearInterval(this.initializationTimer);\n }, 10_000);\n };\n\n // After successful AAD initialization, remove waiting and preload any data, if needed.\n private readonly _isInitializationSuccessful = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['$diags'] && window['$diags']['initializationSuccessful']) {\n clearInterval(this.initializationTimer);\n this.isInitialized = true;\n }\n };\n\n private readonly _prePopulateData = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window['SA_FIELDS'] && window['SA_FIELDS']['AttributeFields']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['SA_FIELDS']['AttributeFields'].map((obj: { ID: string; PAT: string }) => {\n switch (obj.ID.toLowerCase()) {\n case 'newpassword': {\n this.newPasswordRegex = obj.PAT;\n break;\n }\n case 'reenterpassword': {\n this.reenterPasswordRegex = obj.PAT;\n break;\n }\n default:\n }\n });\n }\n };\n\n private readonly _updateErrorMessage = () => {\n const { resources } = this.props;\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n if (window && window['CONTENT']) {\n const message = {\n verifying_blurb: resources.loadingMessage\n };\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n Object.assign(window['CONTENT'], message);\n }\n };\n\n private _renderLocalAccount(): IPasswordResetLocalAccount {\n const { resources } = this.props;\n return {\n localAccount: {\n id: 'attributeList',\n className: `${this.moduleClassName}__account-items attr`\n },\n items: [\n this._renderInput('newPassword', 'password', resources.newPasswordLabelText, this.newPasswordRegex),\n this._renderInput('reenterPassword', 'password', resources.confirmPasswordLabelText, this.reenterPasswordRegex)\n ],\n errorMessage: [\n ,\n ,\n ,\n \n ],\n buttonsWrapper: {\n className: `${this.moduleClassName}__buttons`\n },\n buttons: [\n ,\n \n ],\n verificationSuccessModal: {\n className: `${this.moduleClassName}__verifying-modal verifying-modal`\n },\n verificationSuccessModalMessage: {\n id: 'verifying_blurb',\n className: `${this.moduleClassName}__verifying-modal-message`\n }\n };\n }\n\n private _renderInput(id: string, type: string, labelText: string, pattern?: string): IPasswordResetItem {\n const className = `${this.moduleClassName}__account-item`;\n return {\n wrapper: {\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry')\n },\n key: id,\n label: (\n \n ),\n errorMessage: (\n \n ),\n input: (\n \n )\n };\n }\n}\n\nexport default PasswordReset;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IPasswordResetItem, IPasswordResetLoading, IPasswordResetLocalAccount, IPasswordResetViewProps } from './password-reset';\n\nconst PasswordResetItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst LocalAccount: React.FC = ({\n localAccount,\n items,\n errorMessage,\n buttonsWrapper,\n buttons,\n verificationSuccessModal,\n verificationSuccessModalMessage\n}) => {\n return (\n \n {items &&\n items.map((item: IPasswordResetItem) => {\n // eslint-disable-next-line react/jsx-key\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n {buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n \n\n \n \n \n \n );\n};\n\nconst PasswordResetLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst PasswordResetView: React.FC = props => {\n const { passwordReset, viewState, loading, defaultAADConainer, aadConainer, heading, passwordResetLocalAccount } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n {heading}\n {LocalAccount(passwordResetLocalAccount)}\n \n \n );\n};\n\nexport default PasswordResetView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Button, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ISignInButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n telemetryContent?: ITelemetryContent;\n onClick?(event: React.MouseEvent): void;\n}\n\nconst SignInButton: React.FC = ({ id, className, text, ariaLabel, telemetryContent, disabled, onClick }) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n );\n};\n\nexport default SignInButton;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface ISignInDescription {\n className: string;\n description: string;\n}\n\nconst SignInDescription: React.FC = ({ className, description }) =>

{description}

;\n\nexport default SignInDescription;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface ISignInErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst SignInError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nexport default SignInError;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ISignInInputProps {\n id?: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n type: any;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n ariaLabel?: string;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport interface ISignInInput {\n key: string;\n AddressItem: INodeProps;\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n\nconst SignInInput: React.FC = ({ id, type, value, pattern, className, maxLength, ariaLabel, onChange }) => (\n \n);\n\nexport default SignInInput;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface ISignInLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst SignInLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default SignInLabel;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ISignInLink {\n id?: string;\n className: string;\n href: string;\n ariaLabel: string;\n text: string;\n telemetryContent?: ITelemetryContent;\n}\n\nconst SignInLink: React.FC = ({ id, className, href, telemetryContent, ariaLabel, text }) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n {text}\n \n );\n};\n\nexport default SignInLink;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface ISignInLoadingIcon {\n className: string;\n}\n\nconst SignInLoadingIcon: React.FC = ({ className }) =>
;\n\nexport default SignInLoadingIcon;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface ISignInLoadingMessage {\n className: string;\n message: string;\n}\n\nconst SignInLoadingMessage: React.FC = ({ className, message }) => (\n
{message}
\n);\n\nexport default SignInLoadingMessage;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface ISignInText {\n className: string;\n text: string;\n}\n\nconst SignInText: React.FC = ({ className, text }) => {text};\n\nexport default SignInText;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { EmailRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, Modal, ModalBody } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport SignInButtonComponent from './components/sign-in-button';\nimport SignInDescriptionComponent from './components/sign-in-description';\nimport SignInErrorComponent from './components/sign-in-error';\nimport SignInInputComponent from './components/sign-in-input';\nimport SignInLabelComponent from './components/sign-in-label';\nimport SignInLinkComponent from './components/sign-in-link';\nimport SignInLoadingIconComponent from './components/sign-in-loading-icon';\nimport SignInLoadingMessageComponent from './components/sign-in-loading-message';\nimport SignInTextComponent from './components/sign-in-text';\nimport { ISignInConfig, ISignInProps, ISignInResources } from './sign-in.props.autogenerated';\n\nexport interface ISignInViewState {\n isShowLoading: boolean;\n}\n\nexport interface ISignInItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n error: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface ISignInSocialItem {\n key: string;\n button: INodeProps;\n image: React.ReactNode;\n text: React.ReactNode;\n}\n\nexport interface ISignInB2BItem {\n key: string;\n button: INodeProps;\n text: React.ReactNode;\n}\n\nexport interface ISignInSocialAccount {\n socialAccounts: INodeProps;\n items: ISignInSocialItem[];\n}\n\nexport interface ISignInB2BAccount {\n socialAccounts: INodeProps;\n items: ISignInB2BItem[];\n}\nexport interface ISignInLocalAccount {\n localAccount: INodeProps;\n items: ISignInItem[];\n forgetPassword: React.ReactNode;\n disclaimer: React.ReactNode;\n error: React.ReactNode;\n signInButton: React.ReactNode;\n}\n\nexport interface ISignInLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface ISignInViewProps {\n className: string;\n viewState: ISignInViewState;\n signIn: IModuleProps;\n loading: ISignInLoading;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n signInSection: INodeProps;\n signInSectionHeading: React.ReactNode;\n signInLocalAccount: ISignInLocalAccount;\n signInSocialAccount: ISignInSocialAccount;\n signInB2BAccount: ISignInB2BAccount;\n signUpSection: INodeProps;\n signUpSectionHeading: React.ReactNode;\n signUpDescription: React.ReactNode;\n signUpLink: React.ReactNode;\n}\n\n/**\n * SignIn component\n * All AAD related module is rendered on AAD page and we need to respect HTML contract provide by AAD.\n * Please ensure any change in module don't break contract with AAD.\n * @extends {React.Component>}\n */\n@observer\nclass SignIn extends React.Component> {\n private readonly moduleClassName: string = 'ms-sign-in';\n\n private readonly telemetryContent?: ITelemetryContent;\n\n @observable private emailId: string;\n\n @observable private emailRegex: string;\n\n @observable private isInitialized: boolean;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private initializationTimer: any;\n\n constructor(props: ISignInProps) {\n super(props);\n this.emailRegex = EmailRegex.defaultRegex.source;\n this.isInitialized = false;\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.emailId = 'logonIdentifier';\n }\n\n public componentDidMount(): void {\n this._prePopulateData();\n this._onInit();\n }\n\n // After successful AAD initialization, call initialize method provided by AAD to attach events.\n public componentDidUpdate(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (this.isInitialized && window && window['$element'] && window['$element']['initialize']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['$element']['initialize']();\n }\n }\n\n public shouldComponentUpdate(nextProps: ISignInProps, nextState: ISignInViewState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const config: ISignInConfig = this.props.config || {};\n const resources: ISignInResources = this.props.resources || {};\n\n const viewProps = {\n ...this.props,\n viewState: {\n isShowLoading: !this.isInitialized\n },\n signIn: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n loading: {\n modal: {\n tag: Modal,\n isOpen: true\n },\n modalBody: {\n tag: ModalBody\n },\n icon: ,\n message: \n },\n defaultAADConainer: {\n id: 'api',\n style: { display: 'none' }\n },\n aadConainer: {\n id: this.isInitialized ? 'api' : null,\n className: `${this.moduleClassName}__container`\n },\n signInSection: {\n className: `${this.moduleClassName}__sign-in-section`\n },\n signInSectionHeading: (\n \n ),\n signInLocalAccount: {\n localAccount: {\n className: `${this.moduleClassName}__account-items localAccount`\n },\n items: [\n this._renderInput(\n this.emailId,\n 'email',\n resources.emailAddressLabelText,\n resources.emailAddressAriaLabel,\n this.emailRegex\n ),\n this._renderInput('password', 'password', resources.passwordLabelText)\n ],\n forgetPassword: (\n \n ),\n disclaimer: config.signInDisclaimer && (\n \n ),\n error: ,\n signInButton: (\n \n )\n },\n signInSocialAccount: {\n socialAccounts: {\n className: `${this.moduleClassName}__social-accounts`\n },\n items: [\n this._renderSocialAccount(\n 'FacebookExchange',\n resources.facebookButtonText,\n resources.facebookButtonAriaLabel,\n config.facebookIcon\n ),\n this._renderSocialAccount(\n 'MicrosoftAccountExchange',\n resources.microsoftButtonText,\n resources.microsoftButtonAriaLabel,\n config.microsoftIcon\n )\n ]\n },\n signInB2BAccount: {\n socialAccounts: {\n className: `${this.moduleClassName}__b2b-social-accounts`\n },\n items: [\n this._renderB2BSocialAccount(\n 'StoreManagerB2BSignin',\n resources.b2bButtonText,\n resources.b2bButtonAriaLabel,\n config.displayB2bAccountManagerSignin\n )\n ]\n },\n signUpSection: {\n className: `${this.moduleClassName}__sign-up-section`\n },\n signUpSectionHeading: (\n \n ),\n signUpDescription: (\n \n ),\n signUpLink: (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.signInDisclaimer = event.target.value);\n\n public handleSignInHeadingChange = (event: Msdyn365.ContentEditableEvent) =>\n (this.props.config.signInHeading.text = event.target.value);\n\n public handleSignUpHeadingChange = (event: Msdyn365.ContentEditableEvent) =>\n (this.props.config.signUpHeading.text = event.target.value);\n\n private readonly _onInit = () => {\n this._prePopulateData();\n this._updateErrorMessage();\n\n // Check if AAD initialization is complete. AAD do not provide any event to subscribe so we need to check variable set by AAD to check initialization status.\n this.initializationTimer = setInterval(() => {\n this._isInitializationSuccessful();\n }, 100);\n setTimeout(() => {\n clearInterval(this.initializationTimer);\n }, 10_000);\n };\n\n // After successful AAD initialization, remove waiting and preload any data, if needed.\n private readonly _isInitializationSuccessful = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['$diags'] && window['$diags']['initializationSuccessful']) {\n clearInterval(this.initializationTimer);\n this.isInitialized = true;\n }\n };\n\n private readonly _prePopulateData = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['CONTENT'] && window['CONTENT']['email_pattern']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n this.emailRegex = window['CONTENT']['email_pattern'];\n }\n\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window['SA_FIELDS'] && window['SA_FIELDS']['AttributeFields']) {\n // @ts-expect-error\n this.emailId = (window.SA_FIELDS.AttributeFields || [])[0].ID || this.emailId;\n }\n };\n\n private readonly _updateErrorMessage = () => {\n const resources: ISignInResources = this.props.resources || {};\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n if (window && window['CONTENT']) {\n const errorMessages = {\n requiredField_email: resources.requriedEmailError,\n requiredField_password: resources.requriedPasswordError,\n invalid_email: resources.invalidEmailError,\n invalid_password: resources.invalidPasswordError,\n unknown_error: resources.unknownError\n };\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n Object.assign(window['CONTENT'], errorMessages);\n }\n };\n\n private _renderInput(id: string, type: string, labelText: string, ariaLabel?: string, pattern?: string): ISignInItem {\n const className = `${this.moduleClassName}__account-item`;\n return {\n wrapper: {\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry')\n },\n key: id,\n label: (\n \n ),\n error: (\n \n ),\n input: (\n \n )\n };\n }\n\n private _renderSocialAccount(id: string, text: string, ariaLabel: string, iconImage?: Msdyn365.IImageData): ISignInSocialItem {\n return {\n key: id,\n button: {\n id,\n tag: 'button',\n className: classnames(\n `${this.moduleClassName}__social-account`,\n `${this.moduleClassName}__social-account-${id}`,\n 'accountButton',\n 'msc-btn'\n ),\n 'aria-label': ariaLabel\n },\n image: this._createImageMarkup(iconImage),\n text: \n };\n }\n\n private _renderB2BSocialAccount(\n id: string,\n text: string,\n ariaLabel: string,\n _displayB2bAccountManagerSignin: boolean | undefined\n ): ISignInB2BItem | null {\n if (_displayB2bAccountManagerSignin) {\n return {\n key: id,\n button: {\n id,\n tag: 'button',\n className: classnames(\n `${this.moduleClassName}__social-account`,\n `${this.moduleClassName}__social-account-${id}`,\n 'accountButton',\n 'msc-btn'\n ),\n 'aria-label': ariaLabel\n },\n text: \n };\n }\n return null;\n }\n\n private _createImageMarkup(iconImage?: Msdyn365.IImageData): React.ReactNode | null {\n if (iconImage) {\n const imageProps = {\n gridSettings: this.props.context.request.gridSettings || {},\n imageSettings: iconImage && iconImage.imageSettings\n };\n const pictureClassName = `${this.moduleClassName}__social-account-picture`;\n return (\n
\n \n
\n );\n }\n return null;\n }\n}\n\nexport default SignIn;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n ISignInItem,\n ISignInLoading,\n ISignInLocalAccount,\n ISignInSocialAccount,\n ISignInSocialItem,\n ISignInB2BAccount,\n ISignInB2BItem,\n ISignInViewProps\n} from './sign-in';\n\nconst LocalAccount: React.FC = ({ localAccount, items, forgetPassword, disclaimer, error, signInButton }) => {\n return (\n \n {items &&\n items.map((item: ISignInItem) => {\n return (\n \n {item.label}\n {item.error}\n {item.input}\n \n );\n })}\n {forgetPassword}\n {disclaimer}\n {error}\n {signInButton}\n \n );\n};\n\nconst SocialAccount: React.FC = ({ socialAccounts, items }) => {\n return (\n \n {items &&\n items.map((item: ISignInSocialItem) => {\n return (\n \n {item.image}\n {item.text}\n \n );\n })}\n \n );\n};\n\nconst B2BAccount: React.FC = ({ socialAccounts, items }) => {\n return (\n \n {items &&\n items.map((item: ISignInB2BItem) => {\n return (\n item && (\n \n {item.text}\n \n )\n );\n })}\n \n );\n};\n\nconst SignInLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst SignInView: React.FC = props => {\n const {\n signIn,\n viewState,\n loading,\n defaultAADConainer,\n aadConainer,\n signInSection,\n signUpSection,\n signInSectionHeading,\n signInLocalAccount,\n signInSocialAccount,\n signUpSectionHeading,\n signInB2BAccount,\n signUpDescription,\n signUpLink\n } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n \n {signInSectionHeading}\n {LocalAccount(signInLocalAccount)}\n {SocialAccount(signInSocialAccount)}\n {B2BAccount(signInB2BAccount)}\n \n \n {signUpSectionHeading}\n {signUpDescription}\n {signUpLink}\n \n \n \n );\n};\n\nexport default SignInView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Button } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ISignUpButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n onClick?(event: React.MouseEvent): void;\n}\n\nconst SignUpButton: React.FC = ({ id, className, text, ariaLabel, disabled, onClick }) => (\n \n);\n\nexport default SignUpButton;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface ISignUpErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst SignUpError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nexport default SignUpError;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ISignUpInputProps {\n id?: string;\n hasFocus?: boolean;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n type: any;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport interface ISignUpInput {\n key: string;\n AddressItem: INodeProps;\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n\nconst SignUpInput: React.FC = ({ id, type, value, pattern, className, maxLength, onChange }) => (\n \n);\n\nexport default SignUpInput;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface ISignUpLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst SignUpLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default SignUpLabel;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface ISignUpLoadingIcon {\n className: string;\n}\n\nconst SignUpLoadingIcon: React.FC = ({ className }) =>
;\n\nexport default SignUpLoadingIcon;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface ISignUpLoadingMessage {\n className: string;\n message: string;\n}\n\nconst SignUpLoadingMessage: React.FC = ({ className, message }) => (\n
{message}
\n);\n\nexport default SignUpLoadingMessage;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface ISignUpSuccess {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst SignUpSuccess: React.FC = ({ id, className, type = 'page', message }) => {\n const successClassName = `${className}__${type}-success`;\n\n return (\n \n );\n};\n\nexport default SignUpSuccess;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { EmailRegex, PasswordRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport { IModuleProps, INodeProps, Modal, ModalBody } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport SignUpButtonComponent from './components/sign-up-button';\nimport SignUpErrorComponent from './components/sign-up-error';\nimport SignUpInputComponent from './components/sign-up-input';\nimport SignUpLabelComponent from './components/sign-up-label';\nimport SignUpLoadingIconComponent from './components/sign-up-loading-icon';\nimport SignUpLoadingMessageComponent from './components/sign-up-loading-message';\nimport SignUpSuccessComponent from './components/sign-up-success';\nimport { ISignUpConfig, ISignUpProps, ISignUpResources } from './sign-up.props.autogenerated';\n\nexport interface ISignUpViewState {\n isShowLoading: boolean;\n}\n\nexport interface ISignUpItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface ISignUpEmailVerification {\n isRequired: boolean;\n email: ISignUpItem;\n buttonWrapper: INodeProps;\n buttons: React.ReactNode[];\n successMessage: React.ReactNode[];\n errorMessage: React.ReactNode[];\n verificationControlWrapper: INodeProps;\n}\n\n/**\n * SignUp Given Name Verification Interface.\n */\nexport interface ISignUpGivenNameVerification {\n isRequired: boolean;\n givenName: ISignUpItem;\n errorMessage: React.ReactNode[];\n verificationControlWrapper: INodeProps;\n}\n\n/**\n * SignUp Surname Verification Interface.\n */\nexport interface ISignUpSurnameVerification {\n isRequired: boolean;\n surname: ISignUpItem;\n errorMessage: React.ReactNode[];\n verificationControlWrapper: INodeProps;\n}\n\nexport interface ISignUpLocalAccount {\n localAccount: INodeProps;\n items: ISignUpItem[];\n emailVerification: ISignUpEmailVerification;\n givenNameVerification: ISignUpGivenNameVerification;\n surnameVerification: ISignUpSurnameVerification;\n buttons: React.ReactNode[];\n errorMessage: React.ReactNode[];\n disclaimer: React.ReactNode;\n}\n\nexport interface ISignUpLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface ISignUpViewProps {\n className: string;\n viewState: ISignUpViewState;\n loading: ISignUpLoading;\n signUp: IModuleProps;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n heading: React.ReactNode;\n signUpLocalAccount: ISignUpLocalAccount;\n}\n\n/**\n *\n * SignUp component\n * All AAD related module is rendered on AAD page and we need to respect HTML contract provide by AAD.\n * Please ensure any change in module don't break contract with AAD.\n * @extends {React.Component>}\n */\n@observer\nclass SignUp extends React.Component> {\n @observable private isGivenNameVerificationRequried: boolean;\n\n @observable private isSurnameVerificationRequried: boolean;\n\n private readonly moduleClassName: string = 'ms-sign-up';\n\n @observable private emailRegex: string;\n\n @observable private newPasswordRegex: string;\n\n @observable private reenterPasswordRegex: string;\n\n @observable private isEmailVerificationRequried: boolean;\n\n @observable private isInitialized: boolean;\n\n @observable private templateVersion: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private initializationTimer: any;\n\n constructor(props: ISignUpProps) {\n super(props);\n\n this.emailRegex = EmailRegex.defaultRegex.source;\n this.newPasswordRegex = PasswordRegex.defaultRegex.source;\n this.reenterPasswordRegex = PasswordRegex.defaultRegex.source;\n this.isEmailVerificationRequried = false;\n this.isGivenNameVerificationRequried = false;\n this.isSurnameVerificationRequried = false;\n this.isInitialized = false;\n this.templateVersion = '';\n }\n\n public componentDidMount(): void {\n this._onInit();\n }\n\n // After successful AAD initialization, call initialize method provided by AAD to attach events.\n public componentDidUpdate(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (this.isInitialized && window && window['$element'] && window['$element']['initialize']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['$element']['initialize']();\n }\n }\n\n public shouldComponentUpdate(nextProps: ISignUpProps, nextState: ISignUpViewState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { config, resources } = this.props;\n\n const viewProps = {\n ...this.props,\n viewState: {\n isShowLoading: !this.isInitialized\n },\n signUp: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n loading: {\n modal: {\n tag: Modal,\n isOpen: true\n },\n modalBody: {\n tag: ModalBody\n },\n icon: ,\n message: \n },\n defaultAADConainer: {\n id: 'api',\n style: { display: 'none' }\n },\n aadConainer: {\n id: this.isInitialized ? 'api' : null,\n className: `${this.moduleClassName}__container`\n },\n heading: (\n \n ),\n signUpLocalAccount: this._renderLocalAccount()\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Handles heading content change event.\n * @param event - Content editable event.\n * @returns - Heading Text.\n */\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n /**\n * Handles paragraph content change event.\n * @param event - Content editable event.\n * @returns - Paragraph Text.\n */\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.disclaimer = event.target.value);\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public _onInit = () => {\n this._prePopulateData();\n this._updateErrorMessage();\n\n // Check if AAD initialization is complete. AAD do not provide any event to subscribe so we need to check variable set by AAD to check initialization status.\n this.initializationTimer = setInterval(() => {\n this._isInitializationSuccessful();\n }, 100);\n setTimeout(() => {\n clearInterval(this.initializationTimer);\n }, 10_000);\n };\n\n // After successful AAD initialization, remove waiting and preload any data, if needed.\n private readonly _isInitializationSuccessful = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['$diags'] && window['$diags']['initializationSuccessful']) {\n clearInterval(this.initializationTimer);\n this.isInitialized = true;\n }\n };\n\n private readonly _prePopulateData = () => {\n const resources: ISignUpResources = this.props.resources || {};\n\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window['SA_FIELDS'] && window['SA_FIELDS']['AttributeFields']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['SA_FIELDS']['AttributeFields'].map(\n (obj: { ID: string; PAT: string; UX_INPUT_TYPE: string; PAT_DESC: string; VERIFY: boolean }) => {\n switch (obj.ID.toLowerCase()) {\n case 'emailverificationcontrol': {\n this.isEmailVerificationRequried = true;\n this.templateVersion = 'v2';\n break;\n }\n case 'email': {\n this.emailRegex = obj.PAT;\n this.isEmailVerificationRequried = obj.VERIFY;\n this.templateVersion = 'v1';\n break;\n }\n case 'givennameverificationcontrol': {\n this.isGivenNameVerificationRequried = true;\n break;\n }\n case 'givenname': {\n this.isGivenNameVerificationRequried = obj.VERIFY;\n break;\n }\n case 'surnameverificationcontrol': {\n this.isEmailVerificationRequried = true;\n break;\n }\n case 'surname': {\n this.isSurnameVerificationRequried = obj.VERIFY;\n break;\n }\n case 'newpassword': {\n this.newPasswordRegex = obj.PAT;\n break;\n }\n case 'reenterpassword': {\n this.reenterPasswordRegex = obj.PAT;\n break;\n }\n default:\n }\n\n switch (obj.UX_INPUT_TYPE.toLowerCase()) {\n case 'password': {\n obj.PAT_DESC = resources.invalidPasswordError;\n break;\n }\n case 'emailbox': {\n obj.PAT_DESC = resources.invalidEmailAddressError;\n break;\n }\n default:\n }\n }\n );\n }\n };\n\n private readonly _updateErrorMessage = () => {\n const resources: ISignUpResources = this.props.resources || {};\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n if (window && window['CONTENT']) {\n const errorMessages = {\n required_field: resources.requiredFieldMissingError\n };\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n Object.assign(window['CONTENT'], errorMessages);\n }\n };\n\n private readonly getValue = (v1Value: string, v2Value: string): string => {\n if (this.templateVersion) {\n return this.templateVersion === 'v1' ? v1Value : v2Value;\n }\n return '';\n };\n\n private _renderLocalAccount(): ISignUpLocalAccount {\n const { config, resources } = this.props;\n return {\n localAccount: {\n id: 'attributeList',\n className: `${this.moduleClassName}__account-items attr`\n },\n items: [\n this._renderInput('givenName', 'text', resources.firstNameLabelText, resources.firstNameMaxLength),\n this._renderInput('surname', 'text', resources.lastNameLabelText, resources.lastNameMaxLength),\n this._renderInput('email', 'email', resources.emailAddressLabelText, undefined, this.emailRegex),\n this._renderInput('newPassword', 'password', resources.passwordLabelText, undefined, this.newPasswordRegex),\n this._renderInput('reenterPassword', 'password', resources.confirmPasswordLabelText, undefined, this.reenterPasswordRegex)\n ],\n emailVerification: {\n isRequired: this.isEmailVerificationRequried,\n email: this._renderInput(\n this.getValue('email_ver_input', 'emailVerificationCode'),\n 'text',\n resources.verificationCodeLabelText,\n undefined,\n undefined,\n 'VerificationCode'\n ),\n verificationControlWrapper: {\n id: 'emailVerificationControl',\n className: `${this.moduleClassName}__verification-control-content verificationControlContent`\n },\n buttonWrapper: {\n className: `${this.moduleClassName}__email-verification-buttons ${this.getValue('verify', '')}`,\n 'data-claim_id': 'email'\n },\n buttons: [\n ,\n ,\n ,\n \n ],\n successMessage: [\n ,\n \n ],\n errorMessage: [\n ,\n ,\n ,\n ,\n ,\n ,\n \n ]\n },\n givenNameVerification: {\n isRequired: this.isGivenNameVerificationRequried,\n givenName: this._renderInput(\n this.getValue('givenName_ver_input', 'givenNameVerificationCode'),\n 'text',\n resources.verificationCodeLabelText,\n undefined,\n undefined,\n 'VerificationCode'\n ),\n verificationControlWrapper: {\n id: 'givenNameVerificationControl',\n className: `${this.moduleClassName}__verification-control-content verificationControlContent`\n },\n errorMessage: [\n \n ]\n },\n surnameVerification: {\n isRequired: this.isSurnameVerificationRequried,\n surname: this._renderInput(\n this.getValue('surname_ver_input', 'surnameVerificationCode'),\n 'text',\n resources.verificationCodeLabelText,\n undefined,\n undefined,\n 'VerificationCode'\n ),\n verificationControlWrapper: {\n id: 'surnameVerificationControl',\n className: `${this.moduleClassName}__verification-control-content verificationControlContent`\n },\n errorMessage: [\n \n ]\n },\n buttons: [\n ,\n \n ],\n errorMessage: [\n ,\n ,\n ,\n \n ],\n disclaimer: config.disclaimer && (\n \n )\n };\n }\n\n private _renderInput(\n id: string,\n type: string,\n labelText: string,\n maxLength?: string,\n pattern?: string,\n cssClassName?: string\n ): ISignUpItem {\n const className = `${this.moduleClassName}__account-item`;\n return {\n wrapper: {\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry', cssClassName)\n },\n key: id,\n label: (\n \n ),\n errorMessage: (\n \n ),\n input: (\n \n )\n };\n }\n}\n\nexport default SignUp;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n ISignUpEmailVerification,\n ISignUpGivenNameVerification,\n ISignUpItem,\n ISignUpLoading,\n ISignUpLocalAccount,\n ISignUpSurnameVerification,\n ISignUpViewProps\n} from './sign-up';\n\nconst SignUpItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst SignUpEmailVerification: React.FC = ({ email, buttonWrapper, buttons, successMessage, errorMessage }) => {\n return (\n <>\n {successMessage &&\n successMessage.map((message: React.ReactNode) => {\n return <>{message};\n })}\n \n {errorMessage &&\n errorMessage.map((message: React.ReactNode) => {\n return <>{message};\n })}\n \n {buttons &&\n buttons.map((button: React.ReactNode) => {\n return <>{button};\n })}\n \n \n );\n};\n\n/**\n * Handles validation of sign-up givenName.\n * @param event - Content editable event.\n * @param event.givenName - Event Given Name.\n * @param event.errorMessage - Event Error Message.\n * @returns - Error Message for Given Name.\n */\nconst SignUpGivenNameVerificationComponent: React.FC = ({ givenName, errorMessage }) => {\n return (\n <>\n \n {errorMessage.map((message: React.ReactNode) => {\n return <>{message};\n })}\n \n );\n};\n\n/**\n * Handles validation of signUp surname.\n * @param event - Content editable event.\n * @param event.surname - Event surname.\n * @param event.errorMessage - Event Error Message.\n * @returns - Error Message for surname.\n */\nconst SignUpSurnameVerificationComponent: React.FC = ({ surname, errorMessage }) => {\n return (\n <>\n \n {errorMessage.map((message: React.ReactNode) => {\n return <>{message};\n })}\n \n );\n};\n\nconst LocalAccount: React.FC = ({\n localAccount,\n items,\n emailVerification,\n givenNameVerification,\n surnameVerification,\n buttons,\n errorMessage,\n disclaimer\n}) => {\n return (\n \n {items &&\n items.map((item: ISignUpItem) => {\n if (item.key === 'email' && emailVerification.isRequired) {\n return (\n \n \n \n \n );\n }\n if (item.key === 'givenName' && givenNameVerification.isRequired) {\n return (\n \n \n \n \n );\n }\n if (item.key === 'surname' && surnameVerification.isRequired) {\n return (\n \n \n \n \n );\n }\n // eslint-disable-next-line react/jsx-key\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n {buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n {disclaimer}\n \n );\n};\n\nconst SignUpLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst SignUpView: React.FC = props => {\n const { signUp, viewState, loading, defaultAADConainer, aadConainer, heading, signUpLocalAccount } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n {heading}\n {LocalAccount(signUpLocalAccount)}\n \n \n );\n};\n\nexport default SignUpView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\ninterface ILink {\n className?: string;\n text?: string;\n href?: string;\n ariaLabel?: string;\n index: string;\n noclick?: boolean;\n telemetryContent: ITelemetryContent;\n}\n\nexport const Link: React.FC = ({ text, className, href, ariaLabel, index, noclick, telemetryContent }) => {\n const payLoad = getPayloadObject('click', telemetryContent, '', '');\n\n const linkText = text !== undefined ? text : '';\n payLoad.contentAction.etext = linkText;\n\n // Construct telemetry attribute to render\n const attribute = getTelemetryAttributes(telemetryContent, payLoad);\n\n return (\n \n {linkText}\n \n \n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\ninterface ISeparator {\n separator: string;\n}\n\nexport const Separator: React.FC = ({ separator }) => (\n \n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { CategoryHierarchy } from '@msdyn365-commerce/commerce-entities';\nimport MsDyn365 from '@msdyn365-commerce/core';\nimport { ICategoryUrl } from '@msdyn365-commerce/core-internal/dist/types/interfaces/ICategoryPathInterfaces';\nimport { TextValueTranslation } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IBreadcrumbData } from './breadcrumb.data';\nimport { IBreadcrumbProps, ILinksData } from './breadcrumb.props.autogenerated';\nimport { Link } from './components/link';\nimport { Separator } from './components/separator';\n\nexport interface IBreadcrumbViewProps extends IBreadcrumbProps {\n root?: React.ReactNode;\n links?: React.ReactNode[];\n backButton?: React.ReactNode;\n separator?: React.ReactNode;\n BreadcrumbContainer: IModuleProps;\n BreadcrumbList: INodeProps;\n BreadcrumbListItem: INodeProps;\n}\n\n/**\n *\n * Breadcrumb component.\n * @extends {React.PureComponent>}\n */\nclass Breadcrumb extends React.PureComponent> {\n private readonly _pageType: string | undefined = this.props.context.request.urlTokens.pageType;\n\n private readonly telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n public render(): JSX.Element | null {\n const { className } = this.props.config;\n let rootLink = null;\n let breadcrumbLinks = null;\n let backButtonComponent = null;\n rootLink = this._getRootLink();\n const itemPosition = rootLink ? 1 : 0;\n if (this._pageType === 'Category') {\n breadcrumbLinks = this._getCustomBreadcrumbLinks(itemPosition);\n if (!breadcrumbLinks) {\n breadcrumbLinks = this._getCategoryHierarchy(itemPosition);\n }\n } else if (this._pageType === 'Product') {\n breadcrumbLinks = this._getCustomBreadcrumbLinks(itemPosition);\n if (!breadcrumbLinks) {\n const breaCrumbType = this.props.context.app.config.breadcrumbType;\n if (breaCrumbType === 'category') {\n breadcrumbLinks = this._getPDPLinks(itemPosition);\n }\n if (breaCrumbType === 'categoryAndBack') {\n backButtonComponent = this._getPDPBackButton();\n breadcrumbLinks = this._getPDPLinks(itemPosition);\n }\n if (breaCrumbType === 'back') {\n backButtonComponent = this._getPDPBackButton();\n if (backButtonComponent === null) {\n breadcrumbLinks = this._getPDPLinks(itemPosition);\n }\n }\n }\n } else {\n breadcrumbLinks = this._getCustomBreadcrumbLinks(itemPosition);\n }\n const linkSeparator = ;\n\n const breadcrumbViewProps = {\n ...this.props,\n BreadcrumbContainer: {\n moduleProps: this.props,\n className: classnames('ms-breadcrumb', className),\n tag: 'nav',\n role: 'navigation'\n },\n BreadcrumbList: {\n tag: 'ol' as NodeTag,\n className: 'ms-breadcrumb_list'\n },\n BreadcrumbListItem: {\n tag: 'li',\n className: 'ms-breadcrumb_item'\n },\n root: rootLink,\n links: breadcrumbLinks,\n backButton: backButtonComponent,\n separator: linkSeparator\n };\n return this.props.renderView(breadcrumbViewProps) as React.ReactElement;\n }\n\n private readonly _getRootLink = (): JSX.Element | null => {\n const { root } = this.props.config;\n if (!root || !root.linkUrl || !root.linkUrl.destinationUrl) {\n this.props.context.telemetry.error('BreadCrumb link url content is empty, link wont render');\n return null;\n }\n return (\n \n );\n };\n\n private readonly _getCustomBreadcrumbLinks = (itemPosition: number): JSX.Element[] | null => {\n const { links } = this.props.config;\n\n if (!links || links.length === 0) {\n this.props.context.telemetry.error('BreadCrumb links content is empty, links wont render');\n return null;\n }\n const defaultValueToSubtract = 1;\n return links.map((value: ILinksData, index: number) => {\n itemPosition++;\n const keyIndex = index;\n return index !== links.length - defaultValueToSubtract ? (\n \n ) : (\n
\n {value.linkText}\n
\n );\n });\n };\n\n private readonly _getCategoryHierarchy = (itemPosition: number): JSX.Element[] | null => {\n const { data } = this.props;\n const categoryHierarchy = data.categoryHierarchy.result;\n if (!categoryHierarchy) {\n this.props.context.telemetry.error('Category Hierarchy content is empty, module wont render');\n return null;\n }\n return categoryHierarchy.map((value: CategoryHierarchy, index: number) => {\n itemPosition++;\n\n const friendlyName = this._getFriendlyName(this.props.context.request.locale, value.NameTranslations);\n\n return (\n \n );\n });\n };\n\n /**\n * The function to get translation name for the locale.\n * @param locale - The locale information.\n * @param nameTranslations - The name translations names.\n * @returns - The translation name for the locale.\n */\n private readonly _getFriendlyName = (locale: string, nameTranslations?: TextValueTranslation[]): string | undefined => {\n let nameTranslation: TextValueTranslation | undefined;\n if (locale && nameTranslations && ArrayExtensions.hasElements(nameTranslations)) {\n nameTranslation = nameTranslations.find(item => item.Language!.toLowerCase() === locale.toLowerCase());\n }\n\n // If friendly name for current locale is null, should use default locale.\n if (nameTranslation === undefined && ArrayExtensions.hasElements(nameTranslations)) {\n nameTranslation = nameTranslations[0];\n }\n\n return nameTranslation?.Text;\n };\n\n private readonly _getPDPLinks = (itemPosition: number): JSX.Element[] | null => {\n const { data, config } = this.props;\n const categoryHierarchy = data.categoryPaths.result;\n const product = data.product.result;\n const url = this.props.context.request.url.requestUrl.href;\n if (!categoryHierarchy) {\n this.props.context.telemetry.error('Category path content is empty for the product');\n return null;\n }\n const links: JSX.Element[] = [];\n\n categoryHierarchy.map((value: ICategoryUrl, index: number) => {\n itemPosition++;\n links.push(\n \n );\n });\n if (product && !config.hideProductName) {\n itemPosition++;\n links.push(\n \n );\n }\n return links;\n };\n\n private readonly _goBack = (): void => {\n window.history.back();\n };\n\n private readonly _getPDPBackButton = (): JSX.Element | null => {\n const isBackAllowed =\n this.props.context && this.props.context.request && this.props.context.request.query && this.props.context.request.query.back;\n if (!isBackAllowed) {\n return null;\n }\n if (MsDyn365.isBrowser && (document.referrer === '' || window.history.length < 2)) {\n return null;\n }\n return (\n \n {this.props.resources.backToResultsText}\n \n );\n };\n}\n\nexport default Breadcrumb;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IBreadcrumbViewProps } from './breadcrumb';\n\nconst BreadCrumbView: React.FC = props => {\n const { root, links, backButton, BreadcrumbContainer, BreadcrumbList, BreadcrumbListItem, separator } = props;\n if (!root && !links && !backButton) {\n props.context.telemetry.error('BreadCrumb content is empty, module wont render');\n return null;\n }\n return (\n \n \n {root && (\n \n {root}\n {links && separator}\n \n )}\n {backButton && {backButton}}\n {links &&\n links.map((link, index) => (\n \n \n {link}\n {links[index + 1] && separator}\n \n \n ))}\n \n \n );\n};\n\nexport default BreadCrumbView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IRequestContext, getUrlSync } from '@msdyn365-commerce/core';\nimport {\n AccountStatementRequest,\n BusinessPartnerOperationDeliveryType,\n BusinessPartnerUser,\n BusinessPartnerUsersDataActions\n} from '@msdyn365-commerce/retail-proxy';\nimport { AdminRequestStatementButton, RequestStatementModal } from '@msdyn365-commerce-modules/account-management';\nimport {\n addOrganizationUser,\n AddOrganizationUserInput,\n ArrayExtensions,\n deleteOrganizationUser,\n DeleteOrganizationUserInput,\n editOrganizationUser,\n EditOrganizationUserInput,\n EmailRegex,\n Random,\n StringExtensions\n} from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n Heading,\n IDataTableProps,\n IHeadingsProperty,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITableItemProps,\n ITableRowProps,\n ITelemetryContent,\n Table,\n TableDataType,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { computed, observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IBusinessOrganizationListData } from './business-organization-list.data';\nimport { IBusinessOrganizationListProps, IBusinessOrganizationListResources } from './business-organization-list.props.autogenerated';\nimport { FormButton, FormFieldError, FormInput, FormLabel, IBusinessFormItem, IUserFormItem } from './components';\n\nexport interface IBusinessOrganizationListViewProps extends IBusinessOrganizationListProps {\n OrganizationUserList: IModuleProps;\n moduleContainer: INodeProps;\n heading: React.ReactNode;\n noUsersText?: string;\n addUserButton?: React.ReactNode;\n search?: React.ReactNode;\n organizationListTable: React.ReactNode;\n form?: IFormViewProps;\n formItems?: IUserFormItem[];\n formType: FormType;\n deleteUserForm?: React.ReactNode;\n viewUserDetails?: React.ReactNode;\n modalHeading?: React.ReactNode;\n modalState?: boolean;\n requestAccountStatementButton: React.ReactNode;\n requestStatementModal: React.ReactNode;\n toggleModal?(): void;\n}\n\nexport interface IBusinessOrganizationListState {\n isReady: boolean;\n formItems: IUserFormItem[];\n isFormActive: boolean;\n formType: FormType;\n selectedUserData?: BusinessPartnerUser;\n referenceBack?: HTMLButtonElement | null;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n displayedUserData?: any;\n refresh: boolean;\n isModalOpen: boolean;\n hasFormError: boolean;\n hasActionError: boolean;\n isStatementRequestModalOpen: boolean;\n statementRequestFromDateString: string;\n statementRequestToDateString: string;\n isStatementRequestAdminDropdownOpen: boolean;\n statementRequestFullOrg: boolean;\n statementRequestMaxDateString?: string;\n businessUserActionRetailErrorMsg: string;\n}\n\ntype GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\nexport enum FormType {\n None = 'NONE',\n Edit = 'EDIT',\n Remove = 'REMOVE',\n View = 'VIEW',\n Add = 'ADD'\n}\n\nexport enum InputType {\n Text = 'text',\n Email = 'email'\n}\n\nexport enum InputID {\n FirstName = 'FirstName',\n LastName = 'LastName',\n B2BUserId = 'B2BUserId',\n Email = 'Email',\n SpendingLimit = 'SpendingLimit',\n Status = 'Status',\n FullName = 'Name'\n}\n\nexport interface IFormViewProps {\n modalClassName: string;\n FormWrapper: INodeProps;\n modalHeading?: string;\n modalDescription?: React.ReactNode;\n inputs?: IBusinessFormItem[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n selectedUser?: any;\n buttons?: React.ReactNode[];\n errorMessage?: React.ReactNode[];\n resources: IBusinessOrganizationListResources;\n toggle?(): void;\n}\n\nexport const renderInputSection = (\n inputs: IUserFormItem[],\n className: string,\n asteriskAfterLabel: string,\n onInputChange: (event: React.ChangeEvent) => void\n): IBusinessFormItem[] => {\n return inputs.map(element => {\n const { customClass, id, type, label, maxChars, isRequired, pattern, value, isDisabled, fieldReference } = element;\n return {\n wrapper: {\n className: classnames(className, id, customClass)\n },\n key: id,\n label: ,\n errorMessage: ,\n input: (\n \n )\n };\n });\n};\n\ninterface IUserTableItemProps extends ITableItemProps {\n user: BusinessPartnerUser;\n}\n\n/**\n *\n * BusinessOrganizationList component.\n * @extends {React.PureComponent>}\n */\n@observer\nclass BusinessOrganizationList extends React.Component<\n IBusinessOrganizationListProps,\n IBusinessOrganizationListState\n> {\n public BusinessFormDefaultInputs: IUserFormItem[] = [\n {\n id: InputID.FirstName,\n type: InputType.Text,\n label: this.props.resources.businessUserFirstNameLabelText,\n value: '',\n isRequired: true,\n customClass: 'width-50'\n },\n {\n id: InputID.LastName,\n type: InputType.Text,\n label: this.props.resources.businessUserLastNameLabelText,\n value: '',\n isRequired: true,\n customClass: 'width-50'\n },\n {\n id: InputID.Email,\n type: InputType.Email,\n label: this.props.resources.businessUserEmailAddressLabelText,\n value: '',\n isRequired: true,\n pattern: EmailRegex.defaultRegex.source,\n customClass: 'width-100'\n },\n {\n id: InputID.SpendingLimit,\n type: InputType.Text,\n label: this.props.resources.businessUserSpendingLimitLabelText,\n value: '',\n isRequired: false,\n customClass: 'width-50',\n maxChars: this.props.config?.maxLength\n }\n ];\n\n @observable\n private _viewport: GridSize;\n\n private readonly delayFocus: number = 110;\n\n private formChildReference: React.RefObject[] = [];\n\n private userFormEditReference: React.RefObject[] = [];\n\n private userFormDeleteReference: React.RefObject[] = [];\n\n private readonly submitButtonReference: React.RefObject;\n\n private readonly addUserButtonReference: React.RefObject;\n\n private readonly statementRequestButtonReference: React.RefObject;\n\n private readonly moduleClassName: string = 'ms-business-organization-list';\n\n private readonly mobileExcludedColumns: string[];\n\n @computed get isMobile(): boolean {\n return this._viewport === 'xs' || this._viewport === 'sm';\n }\n\n @computed get canSubmitStatementRequest(): boolean {\n return (\n !StringExtensions.isNullOrWhitespace(this.state.statementRequestFromDateString) &&\n !StringExtensions.isNullOrWhitespace(this.state.statementRequestToDateString)\n );\n }\n\n @computed get selectedUserName(): string {\n const { businessUserSelectedUserDisplayName } = this.props.resources;\n return this.state.selectedUserData\n ? businessUserSelectedUserDisplayName\n .replace('{firstName}', this.state.selectedUserData.FirstName || '')\n .replace('{lastName}', this.state.selectedUserData.LastName || '')\n : '';\n }\n\n private readonly telemetryContent?: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n constructor(props: IBusinessOrganizationListProps) {\n super(props);\n this._toggleModal = this._toggleModal.bind(this);\n this._onInputChange = this._onInputChange.bind(this);\n this._handleRemoveUserButton = this._handleRemoveUserButton.bind(this);\n\n this.mobileExcludedColumns = [InputID.Email, InputID.Status, InputID.SpendingLimit];\n this._viewport =\n props.context.request && props.context.request.device && props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\n this._updateViewport = this._updateViewport.bind(this);\n this.submitButtonReference = React.createRef();\n this.addUserButtonReference = React.createRef();\n this.statementRequestButtonReference = React.createRef();\n this.state = {\n isReady: false,\n formItems: this.addedReference(),\n isFormActive: false,\n formType: FormType.None,\n refresh: true,\n isModalOpen: false,\n hasFormError: false,\n hasActionError: false,\n isStatementRequestModalOpen: false,\n statementRequestFromDateString: '',\n statementRequestToDateString: '',\n isStatementRequestAdminDropdownOpen: false,\n statementRequestFullOrg: false,\n statementRequestMaxDateString: new Date().toISOString().split('T')[0],\n businessUserActionRetailErrorMsg: ''\n };\n\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.payLoad = getPayloadObject('click', this.telemetryContent, '');\n }\n\n public addedReference(): IUserFormItem[] {\n const newFormFields = this.BusinessFormDefaultInputs;\n return newFormFields.map((input, index) => {\n this.formChildReference[Number(index)] = React.createRef();\n input.fieldReference = this.formChildReference[Number(index)];\n return input;\n });\n }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser && window.addEventListener) {\n window.addEventListener('resize', this._updateViewport);\n this._updateViewport();\n }\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser && window.removeEventListener) {\n window.removeEventListener('resize', this._updateViewport);\n }\n }\n\n public shouldComponentUpdate(\n nextProps: IBusinessOrganizationListProps,\n nextState: IBusinessOrganizationListState\n ): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n\n if (!this.state.isModalOpen && this.state.isModalOpen !== nextState.isModalOpen) {\n setTimeout(() => {\n this.formChildReference[0].current?.focus();\n this.submitButtonReference.current?.focus();\n }, this.delayFocus);\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n const {\n config,\n resources,\n data: { users }\n } = this.props;\n const { className, heading, showBecomeSellerLink } = config;\n const {\n businessUserActionButtonText,\n businessUserAddUserButtonText,\n businessUserLoadingMessage,\n businessUserEmptyListMessage,\n businessUserErrorGettingUsersMessage,\n userAccountStatementLabel,\n fullOrganizationLabel,\n requestStatementButtonLabel,\n promoteToSellerActionLabel,\n requestAccountStatementActionLabel,\n requestOrganizationStatementActionLabel,\n statementRequestModalHeaderLabel,\n cancelLabel,\n fromDateLabel,\n toDateLabel,\n submitRequestLabel,\n sendToEmailLabel,\n selectedUserLabel\n } = resources;\n const {\n formItems,\n isFormActive,\n formType,\n isModalOpen,\n statementRequestFromDateString,\n statementRequestToDateString,\n isStatementRequestModalOpen,\n statementRequestMaxDateString\n } = this.state;\n\n const hasUsers = users && users.result && users.result.length > 0;\n this.payLoad.contentAction.etext = TelemetryConstant.AddUser;\n const addUserAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n\n const customer = this.props.data.customerInformation?.result;\n\n if (!hasUsers) {\n let errorMessage = '';\n if (users.status === 'LOADING') {\n errorMessage = businessUserLoadingMessage;\n } else if (users.status === 'FAILED') {\n errorMessage = businessUserErrorGettingUsersMessage;\n } else if (users.result && users.result.length === 0) {\n errorMessage = businessUserEmptyListMessage;\n }\n\n const errorProps = {\n ...this.props,\n className,\n OrganizationUserList: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, className)\n },\n moduleContainer: {\n className: `${this.moduleClassName}__container`\n },\n heading: heading && ,\n addUserButton: (\n \n {businessUserAddUserButtonText}\n \n ),\n noUsersText:

{errorMessage}

\n };\n\n return this.props.renderView(errorProps) as React.ReactElement;\n }\n\n const viewProps = {\n ...this.props,\n className,\n OrganizationUserList: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, className)\n },\n moduleContainer: {\n className: `${this.moduleClassName}__container`\n },\n heading: heading && ,\n modalState: isModalOpen,\n addUserButton: (\n \n {businessUserAddUserButtonText}\n \n ),\n organizationListTable:
,\n toggleModal: this._toggleModal,\n formType,\n form:\n isFormActive && isModalOpen && (formType === FormType.Add || formType === FormType.Edit)\n ? this._renderUserForm()\n : this._renderUserDetails(),\n formItems,\n requestAccountStatementButton: showBecomeSellerLink ? (\n \n ) : (\n \n ),\n requestStatementModal: (\n \n )\n } as IBusinessOrganizationListViewProps;\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n // _createTableProps: creates the props for the organization list table\n private _createTableProps(): IDataTableProps {\n const { config, resources, context } = this.props;\n const { tableSort, showPagination, paginationItemPerPage } = config;\n const {\n businessUserPaginationNextButtonText,\n businessUserPaginationPreviousButtonText,\n businessUserEditButtonText,\n businessUserViewUserButtonText,\n businessUserDeleteButtonText,\n businessUserActionButtonText,\n businessUserPaginationAriaLabel,\n columnSortAriaLabel\n } = resources;\n\n const tableData = this._createTableItems();\n const tableHeading =\n (ArrayExtensions.hasElements(tableData) &&\n tableData[0].row.map(item => {\n if (this.isMobile && this.mobileExcludedColumns.includes(item.id)) {\n return undefined;\n }\n return {\n name: item.id,\n sortable: (tableSort && tableSort) || false,\n ariaLabel: columnSortAriaLabel\n } as IHeadingsProperty;\n })) ||\n [];\n\n return {\n resources,\n headings: tableHeading,\n rows: tableData,\n className: `${this.moduleClassName}__table`,\n editLinkText: this.isMobile ? businessUserEditButtonText : '', // '' === showing just icon\n deleteLinkText: this.isMobile ? businessUserDeleteButtonText : '', // '' === showing just icon\n viewLinkText: businessUserViewUserButtonText,\n editLinkTooltip: businessUserEditButtonText,\n deleteLinkTooltip: businessUserDeleteButtonText,\n viewLinkTooltip: businessUserViewUserButtonText,\n enableToModify: true,\n actionLinkText: businessUserActionButtonText,\n showCheckBoxes: true,\n isSortable: tableSort,\n resourcePrefix: 'businessUser',\n showPagination,\n minifyActions: this.isMobile,\n excludedColumns: this.isMobile ? this.mobileExcludedColumns : [],\n paginationProperty: {\n skipCount:\n context &&\n context.request &&\n context.request.query &&\n context.request.query.skip &&\n !isNaN(Number.parseInt(context.request.query.skip, 10))\n ? Number.parseInt(context.request.query.skip, 10)\n : 0,\n itemPerPage: paginationItemPerPage || 10,\n prevText: businessUserPaginationPreviousButtonText,\n nextText: businessUserPaginationNextButtonText,\n paginationText: businessUserPaginationAriaLabel,\n url: (context && this._getCurrentUrl(context.request).href) || ''\n },\n isSingleSelectOnly: true,\n tableAriaLabel: resources.tableAriaLabel,\n tableTabIndex: 0,\n businessUserSelectCheckBoxAriaLabelText: resources.businessUserSelectCheckBoxAriaLabelText,\n sortByAscending: resources.sortByAscending,\n sortByDescending: resources.sortByDescending,\n actions: {\n onDelete: this._handleDeleteIcon,\n onEdit: this._handleEditIcon,\n onView: (this.isMobile && this._handleViewDetails) || undefined\n },\n formatPrice: this._formatPrice,\n checkBoxCallback: this._onSelectRow\n };\n }\n\n // _createTableItems: converts users recieved from the data-action(IBusinessParterUser[]) to tableRows(ITableItemProps[])\n private _createTableItems(): ITableRowProps[] {\n const {\n resources,\n data: { users }\n } = this.props;\n const { businessUserActiveStatusText, businessUserPendingStatusText, businessUserRemovedStatusText } = resources;\n const usersList = users && users.result;\n\n if (!ArrayExtensions.hasElements(usersList)) {\n return [];\n }\n\n return usersList.map((user, index) => {\n let statusString = '';\n this.userFormEditReference[index] = React.createRef();\n this.userFormDeleteReference[index] = React.createRef();\n\n switch (user.StatusValue) {\n case 0:\n statusString = businessUserPendingStatusText;\n break;\n case 1:\n statusString = businessUserActiveStatusText;\n break;\n case 2:\n default:\n statusString = businessUserRemovedStatusText;\n }\n\n return {\n row: [\n {\n id: InputID.FullName,\n type: TableDataType.Text,\n value: `${user.FirstName} ${user.LastName}`,\n user\n } as IUserTableItemProps,\n {\n id: InputID.Email,\n type: TableDataType.Text,\n value: user.Email || '',\n className: `${this.moduleClassName}__padRight`\n } as IUserTableItemProps,\n {\n id: InputID.Status,\n type: TableDataType.Text,\n value: statusString\n } as IUserTableItemProps,\n {\n id: InputID.SpendingLimit,\n type: TableDataType.Price,\n value: user.SpendingLimit || 0\n } as IUserTableItemProps\n ],\n isSelected: false,\n buttonReferences: {\n edit: this.userFormEditReference[index],\n delete: this.userFormDeleteReference[index]\n }\n };\n });\n }\n\n // _toggleModal: closes the modal and resets the form states\n private _toggleModal(): void {\n this.state.referenceBack?.focus();\n this.setState({\n isModalOpen: false,\n isFormActive: false,\n referenceBack: undefined,\n formType: FormType.None\n });\n }\n\n // _handleAddUserButtonClicked: resets input fields, opens the modal, and sets the form states\n private readonly _handleAddUserButtonClicked = () => {\n // Reset form\n const newForm = this.state.formItems;\n newForm.forEach(input => {\n if (input.id === InputID.Email) {\n // Make sure email input is re enabled (it gets disabled when admin is editing user)\n input.isDisabled = false;\n }\n\n input.value = '';\n });\n\n const newUser = { B2BUserId: Random.Guid.generateGuid() } as BusinessPartnerUser;\n\n this.setState({\n formItems: newForm,\n isFormActive: true,\n formType: FormType.Add,\n referenceBack: this.addUserButtonReference.current,\n isModalOpen: true,\n hasFormError: false,\n hasActionError: false,\n selectedUserData: newUser\n });\n };\n\n // _handleAddEditFormSaveButton: triggered on the save button for both add/edit forms. Calls the appropriate data-action and reloads the page when successful\n private readonly _handleAddEditFormSaveButton = async () => {\n const { context } = this.props;\n const { formType, formItems } = this.state;\n\n const updatedUser = this._createBusinessPartner(formItems);\n\n if (formType === FormType.Edit) {\n editOrganizationUser(new EditOrganizationUserInput(updatedUser), context.actionContext)\n .then(() => {\n window.location.reload(false);\n })\n .catch(error => {\n context.telemetry.trace(error);\n this.setState({\n hasActionError: true\n });\n });\n } else {\n addOrganizationUser(new AddOrganizationUserInput(updatedUser), context.actionContext)\n .then(() => {\n window.location.reload(false);\n })\n .catch(error => {\n context.telemetry.trace(error);\n this.setState({\n hasActionError: true,\n businessUserActionRetailErrorMsg: error.message\n });\n });\n }\n };\n\n // _createBusinessPartner: attempts to convert input values(IUserFormItem) to a new user(BusinessPartnerUser)\n private readonly _createBusinessPartner = (inputs: IUserFormItem[]): BusinessPartnerUser => {\n const newUser: BusinessPartnerUser = { ...this.state.selectedUserData! };\n\n inputs.forEach(input => {\n // Deals with input values need need to be converted into numbers\n if (input.id === InputID.SpendingLimit) {\n newUser[input.id] = Number.parseFloat(input.value) || 0;\n } else {\n newUser[input.id] = input.value;\n }\n });\n\n return newUser;\n };\n\n // _handleEditIcon: converts the table row data(ITableItemProps[]) to input fields(IUserFormItem) and opens the edit form\n private readonly _handleEditIcon = (userData: ITableItemProps[], referenceBack?: HTMLButtonElement | null) => {\n // Split full name into first and last\n const possibleName = userData.find(cell => {\n return cell.id === 'Name';\n });\n const fullName = (possibleName && (possibleName.value as string)) || '';\n const lastSpaceIndex = fullName.lastIndexOf(' ');\n const firstName = fullName.substring(0, lastSpaceIndex);\n\n const lastName = fullName.substring(lastSpaceIndex + 1);\n\n // Create clone of formItems, map users information, update state\n const { formItems } = this.state;\n const newForm = formItems;\n\n newForm.forEach(input => {\n switch (input.id) {\n case InputID.FirstName:\n input.value = firstName;\n break;\n case InputID.LastName:\n input.value = lastName;\n break;\n case InputID.Email: // Email can never be null/undefined as it is a required field\n input.isDisabled = true;\n const possibleCell = userData.find(cell => {\n return input.id === cell.id;\n });\n input.value = (possibleCell && (possibleCell.value as string)) || '';\n break;\n default:\n const dataCell = userData.find(cell => {\n return input.id === cell.id;\n });\n input.value = (dataCell && (dataCell.value as string)) || '';\n }\n });\n\n this.setState({\n formItems: newForm,\n isFormActive: true,\n referenceBack,\n formType: FormType.Edit,\n isModalOpen: true,\n hasFormError: false,\n hasActionError: false,\n selectedUserData: (userData[0] as IUserTableItemProps).user\n });\n };\n\n // _handleDeleteIcon: opens removeUser confirmation window\n private readonly _handleDeleteIcon = (userData: ITableItemProps[], referenceBack?: HTMLButtonElement | null) => {\n const newUser: BusinessPartnerUser = { ...(userData[0] as IUserTableItemProps).user };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const displayedUserData: any = {};\n\n userData.forEach((cell: ITableItemProps) => {\n if (cell.id === 'Name') {\n // Split full name into first and last\n const fullName = cell.value as string;\n const lastSpaceIndex = fullName.lastIndexOf(' ');\n displayedUserData.FirstName = fullName.substring(0, lastSpaceIndex);\n\n displayedUserData.LastName = fullName.substring(lastSpaceIndex + 1);\n } else if (cell.type === TableDataType.Price) {\n displayedUserData[cell.id] = this.props.context.cultureFormatter.formatCurrency(cell.value as string);\n } else {\n displayedUserData[cell.id] = cell.value;\n }\n });\n\n this.setState({\n displayedUserData,\n referenceBack,\n selectedUserData: newUser,\n formType: FormType.Remove,\n isModalOpen: true,\n isFormActive: false\n });\n };\n\n // _handleViewDetails: opens user details window\n private readonly _handleViewDetails = (userData: ITableItemProps[]) => {\n const newUser: BusinessPartnerUser = { ...(userData[0] as IUserTableItemProps).user };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const displayedUserData: any = {};\n\n userData.forEach((cell: ITableItemProps) => {\n if (cell.id === 'Name') {\n // Split full name into first and last\n const fullName = cell.value as string;\n const lastSpaceIndex = fullName.lastIndexOf(' ');\n displayedUserData.FirstName = fullName.substring(0, lastSpaceIndex);\n\n displayedUserData.LastName = fullName.substring(lastSpaceIndex + 1);\n } else if (cell.type === TableDataType.Price) {\n displayedUserData[cell.id] = this.props.context.cultureFormatter.formatCurrency(cell.value as string);\n } else {\n displayedUserData[cell.id] = cell.value;\n }\n });\n\n this.setState({\n displayedUserData,\n selectedUserData: newUser,\n formType: FormType.View,\n isModalOpen: true,\n isFormActive: false\n });\n };\n\n // _handleRemoveUserButton: triggered on confirmation of removing a user.\n private readonly _handleRemoveUserButton = () => {\n // TODO\n const { context } = this.props;\n const { selectedUserData: deleteUserData } = this.state;\n\n if (deleteUserData) {\n deleteOrganizationUser(new DeleteOrganizationUserInput(deleteUserData), context.actionContext)\n .then(() => {\n window.location.reload(false);\n })\n .catch(error => {\n context.telemetry.trace(error);\n });\n }\n this.setState({\n formType: FormType.None,\n isModalOpen: false\n });\n };\n\n private readonly callbackRemoveButton = () => {\n this._handleRemoveUserButton();\n };\n\n // _renderUserDetails: creates the remove/view form props\n private _renderUserDetails(): IFormViewProps {\n const { resources } = this.props;\n const { formType, displayedUserData } = this.state;\n const {\n businessUserRemoveModalHeaderText,\n businessUserRemoveModalDescription,\n businessUserViewModalHeaderText,\n businessUserCancelButtonText,\n businessUserCancelRemoveUserButtonText,\n businessUserRemoveUserButtonText,\n businessUserErrorUpdatingUsersMessage\n } = resources;\n\n const formClassName = `${this.moduleClassName}__form`;\n const typeClassName = formType === FormType.Remove ? 'type-remove' : 'type-view';\n const handleRemoveButton = this.callbackRemoveButton;\n\n return {\n modalClassName: classnames(`${this.moduleClassName}__modal`, typeClassName),\n FormWrapper: {\n className: formClassName\n },\n modalHeading: formType === FormType.Remove ? businessUserRemoveModalHeaderText : businessUserViewModalHeaderText,\n modalDescription: formType === FormType.Remove && (\n

{businessUserRemoveModalDescription}

\n ),\n selectedUser: displayedUserData,\n buttons: [\n formType === FormType.Remove && (\n \n {businessUserRemoveUserButtonText}\n \n ),\n \n ],\n errorMessage: [\n \n ],\n resources\n };\n }\n\n // _renderUserForm: creates the add/edit form props\n private _renderUserForm(): IFormViewProps {\n const { resources } = this.props;\n const { formType, formItems, hasFormError, hasActionError, isReady, businessUserActionRetailErrorMsg } = this.state;\n const {\n businessUserEditUserFormHeadingText,\n businessUserAddUserFormHeadingText,\n businessUserSaveButtonArialabel,\n businessUserSaveButtonText,\n businessUserCancelButtonArialabel,\n businessUserCancelButtonText,\n businessUserFieldIncorrectErrorText,\n businessUserActionErrorText,\n businessUserAllFieldsRequiredMessage,\n asteriskAfterLabel\n } = resources;\n\n const formClassName = `${this.moduleClassName}__form`;\n const typeClassName = formType === FormType.Add ? 'type-add' : 'type-edit';\n\n return {\n modalClassName: classnames(`${this.moduleClassName}__modal`, typeClassName),\n FormWrapper: {\n className: formClassName\n },\n modalHeading: formType === FormType.Add ? businessUserAddUserFormHeadingText : businessUserEditUserFormHeadingText,\n modalDescription: formType === FormType.Add && (\n

{businessUserAllFieldsRequiredMessage}

\n ),\n inputs: renderInputSection(formItems, `${formClassName}-item`, asteriskAfterLabel, this._onInputChange),\n buttons: [\n ,\n \n ],\n errorMessage: [\n hasFormError && (\n \n ),\n hasActionError && (\n \n )\n ],\n resources\n };\n }\n\n // _onInputChange: updates the fomrItems state on every input change\n private readonly _onInputChange = (event: React.ChangeEvent): void => {\n const newForm = this.state.formItems;\n\n newForm.forEach(item => {\n if (item.id === event.target.id) {\n item.value = event.target.value;\n }\n });\n\n // Update state object with latest values and check if form is ready\n // TODO: remove !refresh\n this.setState(prev => ({\n refresh: !prev.refresh,\n isReady: this._isFormReady(),\n formItems: newForm,\n hasFormError: false,\n hasActionError: false\n }));\n };\n\n // _isFormReady: checks whether the current values in the input fields are valid for submission, this will also disable/enable the submit button.\n private readonly _isFormReady = (): boolean => {\n const { formItems } = this.state;\n\n for (const formItem of formItems) {\n // Will return TRUE if:\n // - input field is required and EMPTY\n // OR\n // - pattern provided and value does not match pattern\n // OR\n // - if spendingLimit input --> make sure value can be parsed into an NUMBER\n if (formItem.isRequired && formItem.value.length === 0) {\n return false;\n } else if (formItem.pattern !== undefined && formItem.value.match(formItem.pattern) === null) {\n return false;\n } else if (formItem.id === InputID.SpendingLimit && formItem.value !== '' && isNaN(Number.parseFloat(formItem.value))) {\n this.setState({\n hasFormError: true\n });\n return false;\n }\n }\n\n return true;\n };\n\n private readonly _formatPrice = (price: number): string => {\n return this.props.context.cultureFormatter ? this.props.context.cultureFormatter.formatCurrency(price) : price.toString();\n };\n\n private readonly _getCurrentUrl = (reqContext: IRequestContext): URL => {\n if (MsDyn365.isBrowser) {\n return new URL(window.location.href);\n }\n\n // NOTE: Typing on requestURL is incorrect\n if (reqContext.url.requestUrl.href) {\n return new URL(reqContext.url.requestUrl.href);\n }\n return new URL(reqContext.url.requestUrl.href);\n };\n\n private _updateViewport(): void {\n this._viewport = this._getViewport();\n }\n\n private readonly _getViewport = (): GridSize => {\n const { context } = this.props;\n\n // Always render in mobile viewport on a mobile device\n if (context.request && context.request.device && context.request.device.Type === 'Mobile') {\n return 'xs';\n }\n\n if (MsDyn365.isBrowser && window.innerWidth) {\n const gridSettings = context.request.gridSettings;\n if (gridSettings) {\n if (gridSettings.xs && window.innerWidth <= gridSettings.xs.w) {\n return 'xs';\n } else if (gridSettings.sm && window.innerWidth <= gridSettings.sm.w) {\n return 'sm';\n } else if (gridSettings.md && window.innerWidth <= gridSettings.md.w) {\n return 'md';\n } else if (gridSettings.lg && window.innerWidth <= gridSettings.lg.w) {\n return 'lg';\n }\n return 'xl';\n }\n }\n\n return 'xs';\n };\n\n private readonly _toggleStatementRequestDropdown = (): void => {\n this.setState({\n isStatementRequestAdminDropdownOpen: !this.state.isStatementRequestAdminDropdownOpen\n });\n };\n\n private readonly _updateFromDate = (newFromDate: string) => {\n this.setState({\n statementRequestFromDateString: newFromDate\n });\n };\n\n private readonly _updateToDate = (newToDate: string) => {\n this.setState({\n statementRequestToDateString: newToDate\n });\n };\n\n private readonly _showRequestStatementModal = (isFullOrg: boolean) => {\n this.setState({\n statementRequestFullOrg: isFullOrg,\n isStatementRequestModalOpen: true\n });\n };\n\n private readonly _promoteToSeller = () => {\n const promoteToSellerUrl = getUrlSync('businessPartnerPromotion', this.props.context.actionContext);\n if (promoteToSellerUrl && MsDyn365.isBrowser) {\n window.location.href = promoteToSellerUrl;\n }\n };\n\n private readonly _requestStatement = () => {\n const customer = this.props.data.customerInformation.result!;\n const businessPartnerUsers = this.props.data.users.result!;\n\n const currentUser = businessPartnerUsers.find(element => element.Email === customer.Email);\n const B2BUserId = this._getB2BUserId(currentUser);\n\n const statementRequest: AccountStatementRequest = {\n FromDate: new Date(this.state.statementRequestFromDateString),\n ToDate: new Date(this.state.statementRequestToDateString),\n IsForFullOrganization: this.state.statementRequestFullOrg,\n RequestedUserId: B2BUserId,\n RequestingUserEmail: customer.Email,\n DeliveryTypeValue: BusinessPartnerOperationDeliveryType?.Email || 1\n };\n\n const context = { callerContext: this.props.context.actionContext };\n\n BusinessPartnerUsersDataActions.requestAccountStatementAsync(context, B2BUserId, statementRequest);\n\n this._closeStatementRequestModal();\n };\n\n private readonly _getB2BUserId = (currentUser: BusinessPartnerUser | undefined) => {\n if (this.state.statementRequestFullOrg || !this.state.selectedUserData) {\n return currentUser ? currentUser.B2BUserId : '';\n }\n return this.state.selectedUserData.B2BUserId;\n };\n\n private readonly _closeStatementRequestModal = () => {\n this.setState({\n isStatementRequestModalOpen: false\n });\n this.statementRequestButtonReference.current?.focus();\n };\n\n private readonly _onSelectRow = (records: ITableRowProps[]) => {\n const selectedRow = records.find(rowProps => rowProps.isSelected);\n\n this.setState({\n selectedUserData: selectedRow ? (selectedRow.row[0] as IUserTableItemProps).user : undefined\n });\n };\n}\n\nexport default BusinessOrganizationList;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Modal, ModalBody, ModalFooter, ModalHeader, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IBusinessOrganizationListViewProps, IFormViewProps, InputID } from './business-organization-list';\nimport { IBusinessFormItem } from './components/small-components';\n\nconst BusinessFormItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst BusinessUserForm: React.FC = (props: IFormViewProps) => {\n const { modalClassName, FormWrapper, modalHeading, modalDescription, inputs, buttons, errorMessage, toggle } = props;\n\n const modalBody = (\n <>\n {modalDescription}\n \n {inputs &&\n inputs.map((item: IBusinessFormItem) => {\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n \n );\n\n const modalFooter =\n buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n });\n\n return _renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\n};\n\nconst BusinessUserDetails: React.FC = (props: IFormViewProps) => {\n const { modalClassName, FormWrapper, modalHeading, modalDescription, selectedUser, buttons, errorMessage, resources, toggle } = props;\n let modalBody = null;\n\n if (!selectedUser) {\n modalBody = errorMessage;\n } else {\n const { FirstName, LastName } = selectedUser;\n const userFullName = `${FirstName} ${LastName}`;\n\n modalBody = (\n <>\n {modalDescription}\n \n \n {userFullName}\n \n {Object.keys(selectedUser).map((data, index) => {\n if (data === InputID.FirstName || data === InputID.LastName) {\n return null;\n }\n const label = resources[`table${data}HeadingText`] || data;\n return (\n \n {label}\n {': '}\n {selectedUser[data]}\n \n );\n })}\n \n \n );\n }\n\n const modalFooter =\n buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n });\n\n return _renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\n};\n\nconst _getForm = (type: string, formProps: IFormViewProps, toggleModal?: () => void) => {\n switch (type) {\n case 'ADD':\n case 'EDIT':\n return ;\n case 'VIEW':\n case 'REMOVE':\n return ;\n default:\n return null;\n }\n};\n\nconst _renderModal = (\n className: string,\n isModalOpen: boolean,\n headingSection: React.ReactNode,\n bodySection: React.ReactNode,\n footerSection: React.ReactNode,\n toggleModal?: () => void\n) => {\n return (\n \n {headingSection}\n {bodySection}\n {footerSection}\n \n );\n};\n\nconst BusinessOrganizationList: React.FC = props => {\n const {\n OrganizationUserList,\n moduleContainer,\n heading,\n noUsersText,\n addUserButton,\n organizationListTable,\n form,\n formType,\n toggleModal,\n requestAccountStatementButton,\n requestStatementModal\n } = props;\n\n const ButtonList: React.ReactNode = (\n \n {addUserButton}\n {requestAccountStatementButton}\n \n );\n\n if (noUsersText) {\n return (\n \n \n {heading}\n {ButtonList}\n {requestStatementModal}\n {noUsersText}\n \n \n );\n }\n\n return (\n \n \n {heading}\n {ButtonList}\n {requestStatementModal}\n {organizationListTable}\n \n {form && _getForm(formType, form, toggleModal)}\n \n );\n};\n\nexport default BusinessOrganizationList;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n Button,\n format,\n getPayloadObject,\n getTelemetryAttributes,\n INodeProps,\n ITelemetryContent\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { InputType } from '../business-organization-list';\n\nexport interface IBusinessForm {\n FormWrapper: INodeProps;\n message?: React.ReactNode;\n items: IBusinessFormItem[];\n buttons: React.ReactNode[];\n errorMessage: React.ReactNode[];\n}\n\nexport interface IBusinessFormItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IBusinessFormInput {\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IUserFormItem {\n id: string;\n type: InputType;\n label: string;\n value: string;\n maxChars?: string;\n isRequired: boolean;\n pattern?: string;\n isDisabled?: boolean;\n customClass?: string;\n fieldReference?: React.RefObject;\n}\n\nexport interface IBusinessFormInputProps {\n id?: string;\n type: string;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n isRequired: boolean;\n isDisabled?: boolean;\n placeholder?: string;\n fieldReference?: React.RefObject;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport const FormInput: React.FC = ({\n id,\n type,\n value,\n pattern,\n className,\n maxLength,\n isRequired,\n isDisabled,\n onChange,\n fieldReference,\n placeholder\n}) => (\n \n);\n\nexport interface IBusinessFormLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n asteriskText: string;\n}\n\nexport const FormLabel: React.FC = ({ id, forId, className, text, asteriskText }) => (\n \n);\n\nexport interface IBusinessFormButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n telemetryContent?: ITelemetryContent;\n onClick?(event: React.MouseEvent): void;\n}\n\nexport const FormButton: React.FC = ({ id, className, text, ariaLabel, telemetryContent, disabled, onClick }) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n );\n};\n\nexport interface IBusinessFormErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nexport const FormFieldError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IFooterCategoryConfig, IFooterCategoryProps } from './footer-category.props.autogenerated';\n\nexport interface IFooterCategoryViewProps extends IFooterCategoryProps {\n categories: React.ReactNode[];\n FooterList: IModuleProps;\n FooterListItem: INodeProps;\n}\n\n/**\n *\n * FooterCategory component.\n * @extends {React.PureComponent>}\n */\nclass FooterCategory extends React.PureComponent> {\n public render(): JSX.Element | null {\n if (!this.props.slots || !this.props.slots.content || this.props.slots.content.length === 0) {\n this.props.context.telemetry.error('footer slots content is empty, module wont render');\n return null;\n }\n const viewprops = {\n ...this.props,\n categories: this.props.slots.content,\n FooterList: {\n moduleProps: this.props,\n className: classnames('ms-footer__list', this.props.config.className),\n tag: 'ul'\n },\n FooterListItem: {\n className: classnames('ms-footer__list-item', this.props.config.className),\n tag: 'li'\n }\n };\n\n return this.props.renderView(viewprops) as React.ReactElement;\n }\n}\n\nexport default FooterCategory;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport React, { ReactNode } from 'react';\n\nimport { IFooterCategoryViewProps } from './footer-category';\n\nexport const FooterCategoryView: React.FC = props => {\n const { categories, FooterList, FooterListItem } = props;\n if (!categories || categories.length === 0) {\n props.context.telemetry.error('Footer content is empty, module wont render');\n return null;\n }\n return (\n \n {categories.map((category: ReactNode, index: number) => {\n return (\n \n {category}\n \n );\n })}\n \n );\n};\n\nexport default FooterCategoryView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IImageListConfig, IImageListProps, IImagesData } from './image-list.props.autogenerated';\n\n/**\n * The interface for IImageListViewProps.\n */\nexport interface IImageListViewProps extends IImageListProps {\n imageList: IModuleProps;\n imageListHeading?: React.ReactNode;\n imageListContainer: INodeProps;\n imageListItem: INodeProps;\n imageListItemAnchorTag: INodeProps;\n imageListItems: IImageListItem[] | undefined;\n}\n\n/**\n * The interface for IImageListItem.\n */\nexport interface IImageListItem {\n image: JSX.Element | undefined;\n text: JSX.Element | undefined;\n link: string | undefined;\n linkAltText: string | undefined;\n linkAriaLabel: string | undefined;\n linkOpenInNewTab?: boolean;\n}\n\n/**\n *\n * ImageList component.\n * @extends {React.PureComponent>}\n */\nclass ImageList extends React.PureComponent> {\n public render(): JSX.Element | null {\n const { heading } = this.props.config;\n const imageListTitle = heading && ;\n const viewProps: IImageListViewProps = {\n ...this.props,\n imageList: {\n moduleProps: this.props,\n className: classnames('ms-image-list', this.props.config.className),\n tag: 'div'\n },\n imageListHeading: imageListTitle,\n imageListContainer: {\n className: 'ms-image-list__list',\n role: 'list',\n tag: 'ul'\n },\n imageListItem: {\n className: 'ms-image-list__list-item',\n role: 'listitem',\n tag: 'li'\n },\n imageListItemAnchorTag: {\n tag: 'a',\n className: 'ms-image-list__link',\n role: 'link'\n },\n imageListItems: this._renderImageListItems()\n };\n return this.props.renderView(viewProps);\n }\n\n /**\n * Handle paragraph change.\n * @param index - Index of image item in array of image items.\n * @returns Void.\n */\n public handleParagraphChange = (index: number) => (event: Msdyn365.ContentEditableEvent): void => {\n if (this.props.config.images![index]) {\n this.props.config.images![index].paragraph = event.target.value;\n }\n };\n\n /**\n * Render list of images.\n * @returns List of images with text and redirection link.\n */\n private readonly _renderImageListItems = (): IImageListItem[] | undefined => {\n const imageList: IImagesData[] | undefined = this.props.config.images;\n const defaultImageSettings: Msdyn365.IImageSettings = {\n viewports: {\n xs: { q: 'w=65&h=65&q=80&m=6', w: 65, h: 65 },\n lg: { q: 'w=65&h=65&q=80&m=6', w: 65, h: 65 },\n xl: { q: 'w=65&h=65&q=80&m=6', w: 65, h: 65 }\n },\n lazyload: false,\n disableLazyLoad: true\n };\n return imageList?.map((item, index) => {\n const { image, link, paragraph } = item;\n\n const imageProps = {\n gridSettings: this.props.context.request.gridSettings!,\n imageSettings: (image?.imageSettings ?? defaultImageSettings) as Msdyn365.IImageSettings | undefined\n };\n\n const imageLink: string | undefined = link?.linkUrl.destinationUrl;\n const imageLinkText: string | undefined = link?.linkText ?? link?.ariaLabel;\n const imageLinkAriaLabel: string | undefined = link?.ariaLabel;\n const imageLinkOpenInNewTab = link?.openInNewTab;\n\n // If image is null, we want to render the placeholder SVG - by passing image data with empty src\n const imageImage = (\n \n );\n\n const imageText = paragraph && (\n \n );\n const imageListItem: IImageListItem = {\n image: imageImage,\n text: imageText,\n link: imageLink,\n linkAltText: imageLinkText,\n linkAriaLabel: imageLinkAriaLabel,\n linkOpenInNewTab: imageLinkOpenInNewTab\n };\n return imageListItem;\n });\n };\n}\n\nexport default ImageList;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IImageListViewProps } from './image-list';\n\n/**\n * Render the thumbnail item images.\n * @param props - The image list view props.\n * @returns Return HTML having IImageListViewProps props with image List.\n */\nexport const imageListView = (props: IImageListViewProps): JSX.Element => {\n const { imageList, imageListContainer, imageListHeading, imageListItem, imageListItems, imageListItemAnchorTag } = props;\n return (\n \n {imageListHeading}\n \n {imageListItems?.map(item => {\n let indexKey: string;\n\n if (item.image) {\n const image = (item.image as unknown) as Msdyn365.Image;\n indexKey = image.props.src as string;\n } else {\n const text = (item.text as unknown) as Msdyn365.RichTextComponent;\n indexKey = text.props.text as string;\n }\n return (\n \n {item.image && (\n \n {item.image}\n \n )}\n {item.text}\n \n );\n })}\n \n \n );\n};\n\nexport default imageListView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n getTelemetryObject,\n IComponentNodeProps,\n IModuleProps,\n INodeProps,\n ISingleSlideCarouselProps,\n ITelemetryContent,\n NodeTag,\n SingleSlideCarousel\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport * as React from 'react';\n\nimport { IInteractiveFeatureCollectionProps } from './interactive-feature-collection.props.autogenerated';\n\n/**\n * Interactive Feature Collection view props.\n */\nexport interface IInteractiveFeatureCollectionViewProps extends IInteractiveFeatureCollectionProps<{}> {\n title: React.ReactNode;\n interactiveFeatureCollectionHeading: INodeProps;\n interactiveFeatureCollectionContainer: IModuleProps;\n interactiveFeatureCollectionDesktopContainer: INodeProps;\n interactiveFeatureCollectionDesktopItems: React.ReactNode[];\n interactiveFeatureCollectionMobileContainer: INodeProps;\n interactiveFeatureCollectionMobileItems: React.ReactNode[];\n singleSlideCarouselComponentProps: INodeProps;\n singleSlideCarouselItemContainer: INodeProps;\n}\n\n/**\n *\n * InteractiveFeatureCollection component.\n * @extends {React.PureComponent>}\n */\nexport class InteractiveFeatureCollection extends React.PureComponent> {\n private readonly _telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n private static _getFeatureItem(item: React.ReactNode, index: number, itemsCounter: number): React.ReactNode {\n const keyIndex = `interactive-feature-mosaic-item__${index}`;\n return (\n \n {React.cloneElement(item as React.ReactElement, { indexItem: index, itemCounter: itemsCounter, isMosaic: true })}\n \n );\n }\n\n public constructor(props: IInteractiveFeatureCollectionProps) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { resources } = this.props;\n const { title, className } = this.props.config;\n const interactiveItems = this.props.slots && this.props.slots.interactiveFeatureItems;\n const itemsFeatureCounter = interactiveItems && interactiveItems.length;\n const singleSlideCarouselComponentProps: IComponentNodeProps = {\n tag: SingleSlideCarousel,\n className: this.props.config.className ?? '',\n flipperPrevLabel: resources.flipperPrevious,\n flipperNextLabel: resources.flipperNext,\n parentId: this.props.id,\n telemetryContent: this._telemetryContent,\n vertical: false\n };\n const initItemsFeatureCounter = 0;\n const createHeading = title && (\n \n );\n const viewProps = {\n ...this.props,\n title: createHeading,\n interactiveFeatureCollectionHeading: {\n className: 'ms-interactive-feature-collection__heading'\n },\n interactiveFeatureCollectionContainer: {\n moduleProps: this.props,\n className: classnames('ms-interactive-feature-collection', className)\n },\n interactiveFeatureCollectionDesktopContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-desktop'\n },\n interactiveFeatureCollectionMobileContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-mobile'\n },\n singleSlideCarouselComponentProps,\n singleSlideCarouselItemContainer: {\n tag: 'li' as NodeTag,\n className: 'ms-interactive-feature-collection-carousel',\n role: 'listitem'\n },\n interactiveFeatureCollectionMobileItems: this.props.slots.interactiveFeatureItems,\n interactiveFeatureCollectionDesktopItems:\n itemsFeatureCounter > initItemsFeatureCounter &&\n interactiveItems.map((item: React.ReactNode, index: number) =>\n InteractiveFeatureCollection._getFeatureItem(item, index, itemsFeatureCounter)\n )\n };\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * To handle text change.\n * @param event - To handle text change event.\n * @name - HandleTextChange\n * @public\n * @returns - The Text value.\n */\n public handleTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.title!.text = event.target.value);\n}\n\nexport default InteractiveFeatureCollection;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport React, { ReactNode } from 'react';\n\nimport { IInteractiveFeatureCollectionViewProps } from './interactive-feature-collection';\n\n/**\n * Feature Collection View.\n * @param props - Feature Collection view props.\n * @returns Feature Collection View.\n */\nexport const interactiveFeatureCollectionView: React.FC = props => {\n const {\n title,\n interactiveFeatureCollectionHeading,\n interactiveFeatureCollectionContainer,\n interactiveFeatureCollectionDesktopContainer,\n interactiveFeatureCollectionDesktopItems,\n interactiveFeatureCollectionMobileItems,\n interactiveFeatureCollectionMobileContainer,\n singleSlideCarouselComponentProps,\n singleSlideCarouselItemContainer\n } = props;\n return (\n \n {title}\n {interactiveFeatureCollectionDesktopItems}\n \n \n {interactiveFeatureCollectionMobileItems &&\n interactiveFeatureCollectionMobileItems.map((tileItem: ReactNode, index: number) => {\n const keyIndex = `interactive-feature-carousel-item__${index}`;\n return (\n \n {tileItem}\n \n );\n })}\n \n \n \n );\n};\n\nexport default interactiveFeatureCollectionView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../interactive-feature-item.props.autogenerated';\n\n/**\n * Interactive Feature links.\n */\nexport interface IInteractiveFeatureLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n telemetryContent: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\n/**\n *\n * IInteractiveFeatureLinks component.\n * @extends {React.PureComponent}\n */\nexport class InteractiveFeatureCollectionLinks extends React.PureComponent {\n public render(): JSX.Element {\n const editableLinks = this._mapEditableLinks(this.props.links);\n return (\n
\n {editableLinks && ArrayExtensions.hasElements(editableLinks) ? (\n \n ) : null}\n
\n );\n }\n\n /**\n * IInteractiveFeatureLinks component.\n * @param linkdata - Link data.\n * @returns Editable links.\n */\n private readonly _mapEditableLinks = (linkdata?: ILinksData[]): Msdyn365.ILinksData[] | null => {\n if (!linkdata || !ArrayExtensions.hasElements(linkdata)) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n for (const link of linkdata) {\n // Construct telemetry attribute to render\n const payLoad = getPayloadObject('click', this.props.telemetryContent, '', '');\n const linkText = link.linkText ? link.linkText : '';\n payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.props.telemetryContent, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-interactive-feature-collection__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'button',\n additionalProperties: attributes,\n onClick: onTelemetryClick(this.props.telemetryContent, payLoad, linkText)\n };\n editableLinks.push(editableLink);\n }\n\n return editableLinks;\n };\n}\nexport default InteractiveFeatureCollectionLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { InteractiveFeatureCollectionLinks } from './components';\nimport { IHeadingData, IInteractiveFeatureItemProps } from './interactive-feature-item.props.autogenerated';\n\n/**\n * Interactive Feature Item view props.\n */\nexport interface IInteractiveFeatureItemViewProps extends IInteractiveFeatureItemProps<{}> {\n title: React.ReactNode;\n paragraph: React.ReactNode;\n image: React.ReactNode;\n links: React.ReactNode;\n featureItem: IModuleProps;\n isMosaic: boolean;\n indexItem?: number;\n itemCounter?: number;\n\n interactiveFeatureCollectionCarouselContainer: INodeProps;\n interactiveFeatureCollectionCarouselImage: INodeProps;\n interactiveFeatureCollectionCarouselContent: INodeProps;\n\n interactiveFeatureCollectionMosaicContainer: INodeProps;\n interactiveFeatureCollectionMosaicImage: INodeProps;\n interactiveFeatureCollectionMosaicDetails: INodeProps;\n}\n\n/**\n * Interactive Feature Item Extented props.\n */\nexport interface IInteractiveFeatureItemExtentedProps extends IInteractiveFeatureItemProps<{}> {\n isMosaic?: boolean;\n indexItem?: number;\n itemCounter?: number;\n}\n\n/**\n *\n * InteractiveFeatureItem component.\n * @extends {React.PureComponent}\n */\nexport class InteractiveFeatureItem extends React.PureComponent {\n private readonly _telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n public constructor(props: IInteractiveFeatureItemProps<{}>) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { indexItem, itemCounter, isMosaic } = this.props;\n const { heading, paragraph, image, links } = this.props.config;\n const featureItemLinks = links && ArrayExtensions.hasElements(links) && (\n \n );\n\n const viewProps = {\n ...this.props,\n indexItem,\n itemCounter,\n isMosaic: isMosaic ? isMosaic : false,\n title: this._createHeading(heading),\n paragraph: this._createParagraph(paragraph),\n image: this._renderImage(image),\n links: featureItemLinks,\n featureItem: {\n moduleProps: this.props,\n className: ''\n },\n interactiveFeatureCollectionCarouselContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-carousel__container'\n },\n interactiveFeatureCollectionCarouselImage: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-carousel__image'\n },\n interactiveFeatureCollectionCarouselContent: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-carousel__heading'\n },\n interactiveFeatureCollectionMosaicContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-mosaic',\n 'aria-label': heading?.text,\n tabindex: '0',\n role: 'group'\n },\n interactiveFeatureCollectionMosaicImage: {\n className: 'ms-interactive-feature-collection-mosaic__image'\n },\n interactiveFeatureCollectionMosaicDetails: {\n className: 'ms-interactive-feature-collection-mosaic__details'\n }\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Handles heading content change event.\n * @param event - Content editable event.\n */\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n /**\n * Handles paragraph content change event.\n * @param event - Content editable event.\n */\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.paragraph = event.target.value;\n };\n\n /**\n * Handles paragraph content change event.\n * @param linkIndex - Index of link in linkarray.\n * @returns Void.\n */\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent): void => {\n if (this.props.config.links?.[Number(linkIndex)]) {\n this.props.config.links[Number(linkIndex)].linkText = event.target.value;\n }\n };\n\n private _createParagraph(text?: Msdyn365.RichText): React.ReactNode | null {\n if (!text) {\n return null;\n }\n return (\n \n );\n }\n\n private _createHeading(heading?: IHeadingData): React.ReactNode | null {\n if (!heading) {\n return null;\n }\n if (StringExtensions.isNullOrWhitespace(heading.text)) {\n return null;\n }\n\n return (\n \n );\n }\n\n private _renderImage(item?: Msdyn365.IImageData, isAriaHiddenAttribute?: boolean): React.ReactNode | null {\n // Even if image.src is null, we render the Image component to render the fallback SVG\n const defaultImageSettings: Msdyn365.IImageSettings = {\n viewports: {\n xs: { q: 'w=328&h=459&m=6', w: 328, h: 459 },\n sm: { q: 'w=348&h=487&m=6', w: 348, h: 487 },\n md: { q: 'w=650&h=366&m=6', w: 650, h: 366 },\n lg: { q: 'w=650&h=366&m=6', w: 650, h: 366 },\n xl: { q: 'w=650&h=366&m=6', w: 650, h: 366 }\n },\n lazyload: true\n };\n const verifiedImageSettings = item?.imageSettings?.viewports ? item.imageSettings : defaultImageSettings;\n return (\n \n );\n }\n}\n\nexport default InteractiveFeatureItem;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IInteractiveFeatureItemViewProps } from './interactive-feature-item';\n\n/**\n * Enumerator used to make some calculations to set the proper classnames\n * using modular calculations to see if they are in a right or left column or on first or last row.\n */\nenum MagicNumber {\n modularDivisor = 4,\n caseNumberZero = 0,\n caseNumberOne = 1,\n caseNumberTwo = 2\n}\n\n/**\n * Feature Item View.\n * @param thisProps - Feature Item view props.\n * @param indexItem - Feature Item view props.\n * @param itemCounter - Feature Item view props.\n * @returns Feature item View.\n * @extends {} InteractiveFeatureItem\n */\nconst renderMosaic = (thisProps: IInteractiveFeatureItemViewProps, indexItem?: number, itemCounter?: number): JSX.Element | null => {\n const {\n title,\n paragraph,\n image,\n links,\n interactiveFeatureCollectionMosaicContainer,\n interactiveFeatureCollectionMosaicImage,\n interactiveFeatureCollectionMosaicDetails\n } = thisProps;\n const indexAux = indexItem ? indexItem + MagicNumber.caseNumberOne : MagicNumber.caseNumberOne;\n const itemCounterAux = itemCounter ? itemCounter : MagicNumber.caseNumberZero;\n const modularAux = indexAux % MagicNumber.modularDivisor;\n const firstRow = indexAux <= MagicNumber.caseNumberTwo ? 'firstRow' : '';\n const lastRow =\n itemCounterAux && (indexAux === itemCounterAux || indexAux === itemCounterAux - MagicNumber.caseNumberOne) ? 'lastRow' : '';\n const onCornerRight = modularAux === MagicNumber.caseNumberZero ? 'item-corner-right' : '';\n const onCornerLeft = modularAux === MagicNumber.caseNumberOne ? 'item-corner-left' : '';\n const containerClasses = classnames('ms-interactive-feature-collection-mosaic', onCornerLeft, onCornerRight, firstRow, lastRow);\n\n return (\n \n {image}\n \n {title}\n {paragraph}\n {links}\n \n \n );\n};\n\n/**\n * Feature Item View.\n * @param thisProps - Feature Item view props.\n * @returns Feature item View.\n * @extends {} InteractiveFeatureItem\n */ const renderCarousel = (thisProps: IInteractiveFeatureItemViewProps): JSX.Element | null => {\n const {\n title,\n paragraph,\n image,\n links,\n interactiveFeatureCollectionCarouselContainer,\n interactiveFeatureCollectionCarouselImage,\n interactiveFeatureCollectionCarouselContent\n } = thisProps;\n return (\n \n {image}\n \n {title}\n {paragraph}\n {links}\n \n \n );\n};\n\n/**\n * Feature Item View.\n * @param props - Feature Item view props.\n * @returns Feature item View.\n * @extends {} InteractiveFeatureItem\n */\nexport const FeatureItemViewComponent: React.FC = props => {\n const { isMosaic, featureItem, indexItem, itemCounter } = props;\n if (isMosaic) {\n return <>{renderMosaic(props, indexItem, itemCounter)};\n }\n return {renderCarousel(props)};\n};\n\nexport default FeatureItemViewComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/// \n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { OrgUnitLocation } from '@msdyn365-commerce/retail-proxy';\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classname from 'classnames';\nimport { observable, reaction, when } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { IMapData } from './map.data';\nimport { IMapProps, IPushpinOptionsData } from './map.props.autogenerated';\n\n/**\n * Header Interface.\n */\nexport interface IHeader {\n headerProps: INodeProps;\n heading: React.ReactNode;\n}\n\n/**\n * MapViewProps Interface.\n */\nexport interface IMapViewProps extends IMapProps {\n ModuleProps: IModuleProps;\n Header: IHeader;\n MapProps: INodeProps;\n Map: Microsoft.Maps.Map | undefined;\n}\n\n/**\n *\n * Map component.\n * @extends {React.Component>}\n */\n@observer\nclass Map extends React.Component> {\n @observable public map: Microsoft.Maps.Map | undefined;\n private timeout: number = 500;\n\n private readonly mapRef: React.RefObject = React.createRef();\n\n public constructor(props: IMapProps) {\n super(props);\n }\n\n public componentDidMount(): void {\n const {\n context: {\n telemetry,\n actionContext: {\n requestContext: { channel }\n }\n }\n } = this.props;\n\n if (channel && !channel.BingMapsApiKey) {\n telemetry.error('BingMapsApiKey is missing.');\n return;\n }\n\n if (channel && !channel.BingMapsEnabled) {\n telemetry.error('Map is disabled from HQ.');\n return;\n }\n\n const loadMapAPIInput = {\n key: channel?.BingMapsApiKey,\n lang: this.props.context.actionContext.requestContext.locale,\n market: this.props.context?.actionContext?.requestContext?.channel?.ChannelCountryRegionISOCode\n };\n\n if (\n this.props.data.storeSelectorStateManager?.result?.isMapApiLoaded ||\n this.props.data.distributorSelectorStateManager?.result?.isMapApiLoaded\n ) {\n this._initMap();\n if (this.props.data.distributorSelectorStateManager?.result?.isDistributorSelectorDialogOpen) {\n this._updateMapsForDistributor();\n } else {\n this._updateMap();\n }\n }\n\n when(\n () => !!this.props.data.storeSelectorStateManager?.result?.setMapModuleLoaded,\n () => {\n this.props.data.storeSelectorStateManager?.result?.setMapModuleLoaded(true);\n }\n );\n\n when(\n () => !!this.props.data.distributorSelectorStateManager?.result?.setMapModuleLoaded,\n () => {\n this.props.data.distributorSelectorStateManager?.result?.setMapModuleLoaded(true);\n }\n );\n\n reaction(\n () =>\n this.props.data.storeSelectorStateManager?.result?.loadMapApi ||\n this.props.data.distributorSelectorStateManager?.result?.loadMapApi,\n () => {\n if (this.props.data.distributorSelectorStateManager?.result?.loadMapApi) {\n this.props.data.distributorSelectorStateManager?.result?.loadMapApi(loadMapAPIInput);\n } else {\n this.props.data.storeSelectorStateManager?.result?.loadMapApi(loadMapAPIInput);\n }\n }\n );\n\n reaction(\n () =>\n this.props.data.storeSelectorStateManager?.result?.isMapApiLoaded ||\n this.props.data.distributorSelectorStateManager?.result?.isMapApiLoaded,\n () => {\n this._initMap();\n }\n );\n\n reaction(\n () => {\n return [\n this.props.data.storeSelectorStateManager.result?.context?.orgUnitStoreInformation,\n this.props.data.storeSelectorStateManager.result?.selectedStoreLocationId,\n this.map\n ];\n },\n () => {\n this._updateMap();\n }\n );\n\n reaction(\n () => {\n return [\n this.props.data.distributorSelectorStateManager?.result?.distributorList,\n this.props.data.distributorSelectorStateManager?.result?.selectedDistributorId,\n this.map\n ];\n },\n () => {\n this._updateMapsForDistributor();\n }\n );\n }\n\n public render(): JSX.Element | null {\n const {\n config: { heading, className },\n data\n } = this.props;\n\n const shouldDisplayMap = data.storeSelectorStateManager?.result?.isDialogOpen\n ? data.storeSelectorStateManager?.result?.listMapViewState.displayMap\n : data.distributorSelectorStateManager?.result?.isDistributorSelectorDialogOpen\n ? data.distributorSelectorStateManager?.result?.listMapViewState.displayMap\n : false;\n\n const viewProps: IMapViewProps = {\n ...this.props,\n ModuleProps: {\n tag: 'div',\n moduleProps: this.props,\n className: classname('ms-map', { show: shouldDisplayMap }, className)\n },\n Header: {\n headerProps: { className: 'ms-map__header' },\n heading: heading?.text && (\n \n )\n },\n MapProps: {\n tag: 'div',\n className: 'ms-map__body',\n ref: this.mapRef\n },\n Map: this.map\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Method to be called on heading change.\n * @param event -Content Edit Event.\n */\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n /**\n * Initialize the map.\n */\n private readonly _initMap = () => {\n const {\n context: {\n actionContext: {\n requestContext: { channel }\n }\n },\n data\n } = this.props;\n\n if (data.storeSelectorStateManager?.result?.isMapApiLoaded || data.distributorSelectorStateManager?.result?.isMapApiLoaded) {\n const mapLoadOptions = {\n credentials: channel?.BingMapsApiKey,\n pushpinAccessible: true\n };\n this.map = new Microsoft.Maps.Map(this.mapRef.current as HTMLElement, mapLoadOptions);\n Microsoft.Maps.Events.addHandler(this.map, 'click', async () => {\n if (data.distributorSelectorStateManager?.result?.isDistributorSelectorDialogOpen) {\n // Hide the distributor details that appear below the screen size of 768px.\n data.distributorSelectorStateManager?.result?.updateDistributorMapVisibility(false);\n await data.distributorSelectorStateManager?.result?.setSelectedDistributorId(undefined);\n } else {\n await data.storeSelectorStateManager?.result?.setSelectedStoreLocationId(undefined);\n }\n });\n }\n };\n\n private readonly _updateMapsForDistributor = () => {\n const pushpinOptions = this.props.config.pushpinOptions;\n const distributorSelectorStateManager = this.props.data.distributorSelectorStateManager?.result;\n const distributorInfoList = distributorSelectorStateManager?.distributorList;\n const selectedDistributorId = distributorSelectorStateManager?.selectedDistributorId;\n\n if (this.map && ArrayExtensions.hasElements(distributorInfoList)) {\n let mapLocation: OrgUnitLocation | undefined;\n this.map.entities.clear();\n const pushpins: Microsoft.Maps.IPrimitive[] = [];\n\n const distributorList = distributorInfoList.filter(distributor => distributor.OrgUnit !== undefined);\n\n for (const [index, distributorInfo] of distributorList.entries()) {\n const orgUnit = distributorInfo.OrgUnit;\n\n if (orgUnit?.Latitude && orgUnit.Longitude) {\n const isLocationSelected = selectedDistributorId === orgUnit?.RecordId;\n const options = this._getPushpinOptions(isLocationSelected, index, pushpinOptions);\n const pushpin = new Microsoft.Maps.Pushpin(new Microsoft.Maps.Location(orgUnit?.Latitude, orgUnit.Longitude), options);\n\n Microsoft.Maps.Events.addHandler(pushpin, 'click', () => {\n this.handleDistributorPushpinClick(orgUnit.RecordId);\n });\n isLocationSelected ? pushpins.unshift(pushpin) : pushpins.push(pushpin);\n\n if (isLocationSelected) {\n mapLocation = orgUnit;\n }\n }\n }\n if (mapLocation) {\n const currentLocation = new Microsoft.Maps.Location(mapLocation.Latitude, mapLocation.Longitude);\n this.map.setView({ center: currentLocation });\n } else {\n this.map.setView({\n bounds: Microsoft.Maps.LocationRect?.fromShapes(pushpins)\n });\n }\n\n this.map.setOptions({ pushpinAccessible: true } as Microsoft.Maps.IMapOptions);\n this.map.entities.push(pushpins);\n }\n };\n\n /**\n * Update the map.\n */\n private readonly _updateMap = () => {\n const pushpinOptions = this.props.config.pushpinOptions;\n const storeSelectorStateManager = this.props.data.storeSelectorStateManager?.result;\n const orgUnitStoreInformation = storeSelectorStateManager?.context?.orgUnitStoreInformation;\n const selectedStoreLocationId = storeSelectorStateManager?.selectedStoreLocationId;\n\n if (this.map && orgUnitStoreInformation) {\n let mapLocation: OrgUnitLocation | undefined;\n this.map.entities.clear();\n const pushpins: Microsoft.Maps.IPrimitive[] = [];\n\n const storeLocationList = orgUnitStoreInformation.filter(store => store.OrgUnitAvailability !== undefined);\n\n for (const [index, unitStoreInfo] of storeLocationList.entries()) {\n const storeLocation = unitStoreInfo.OrgUnitAvailability?.OrgUnitLocation;\n\n if (storeLocation?.Latitude && storeLocation.Longitude) {\n const isSelectedLocation = selectedStoreLocationId === storeLocation.OrgUnitNumber;\n const options = this._getPushpinOptions(isSelectedLocation, index, pushpinOptions);\n const pushpin = new Microsoft.Maps.Pushpin(\n new Microsoft.Maps.Location(storeLocation.Latitude, storeLocation.Longitude),\n options\n );\n\n Microsoft.Maps.Events.addHandler(pushpin, 'click', () => {\n this.handleClickEvent(storeLocation.OrgUnitNumber);\n });\n isSelectedLocation ? pushpins.unshift(pushpin) : pushpins.push(pushpin);\n\n if (isSelectedLocation) {\n mapLocation = storeLocation;\n }\n }\n }\n\n if (mapLocation) {\n const currentLocation = new Microsoft.Maps.Location(mapLocation.Latitude, mapLocation.Longitude);\n this.map.setView({ center: currentLocation });\n } else {\n // Create a LocationRect from array of pushpins and set the map view.\n this.map.setView({\n bounds: Microsoft.Maps.LocationRect?.fromShapes(pushpins)\n });\n }\n\n this.map.setOptions({ pushpinAccessible: true } as Microsoft.Maps.IMapOptions);\n this.map.entities.push(pushpins);\n }\n };\n\n /**\n * Handle click event.\n * @param orgUnitNumber - Organization unit number.\n */\n private readonly handleClickEvent = (orgUnitNumber: string | undefined): void => {\n const storeSelectorStateManager = this.props.data.storeSelectorStateManager.result;\n storeSelectorStateManager?.setSelectedStoreLocationId(undefined);\n if (orgUnitNumber) {\n setTimeout(() => {\n storeSelectorStateManager?.setSelectedStoreLocationId(orgUnitNumber);\n }, this.timeout);\n }\n };\n\n /**\n * Handle the click event of the pushpin for distributors on the maps.\n * @param recordId - RecordId.\n */\n private readonly handleDistributorPushpinClick = (recordId: number | undefined): void => {\n const distributorSelectorStateManager = this.props.data.distributorSelectorStateManager?.result;\n // Show the distributor details that appear below the screen size of 768px.\n distributorSelectorStateManager?.updateDistributorMapVisibility(true);\n distributorSelectorStateManager?.setSelectedDistributorId(undefined);\n if (recordId) {\n setTimeout(() => {\n distributorSelectorStateManager?.setSelectedDistributorId(recordId);\n }, this.timeout);\n }\n };\n\n /**\n * Get the pushpin option.\n * @param isSelectedLocation - Is selected location.\n * @param index - Index.\n * @param pushpinOptions - PushpinOptions.\n * @returns - The pushpin options.\n */\n private readonly _getPushpinOptions = (isSelectedLocation: boolean, index: number, pushpinOptions?: IPushpinOptionsData) => {\n const text = pushpinOptions?.showIndex ? (index + 1).toString() : undefined;\n\n const size = pushpinOptions?.size || 1;\n const color = isSelectedLocation ? pushpinOptions?.selectionColor || pushpinOptions?.color : pushpinOptions?.color;\n const icon = this._getSvgIcon(size, color, text);\n\n return {\n // Fallback if icon doesn't render properly\n color: isSelectedLocation ? pushpinOptions?.selectionColor : pushpinOptions?.color,\n icon\n };\n };\n\n private readonly _getSvgIcon = (size: number, color?: string, text?: string) => {\n const baseValue: number = 32;\n return `\n \n ${text ? `${text}` : ''}\n `;\n };\n}\n\nexport default Map;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IHeader, IMapViewProps } from './map';\n\n/**\n * Render the heading.\n * @param param0 -- Heading props.\n * @param param0.headerProps -- Heading Props.\n * @param param0.heading -- Heading Node.\n * @returns -- Returns the node.\n */\nconst MapHeader: React.FC = ({ headerProps, heading }) => {heading};\n\n/**\n * Renders the map view props.\n * @param param0 -- Map view props.\n * @param param0.ModuleProps -- Module props.\n * @param param0.Header -- Header props.\n * @param param0.MapProps -- Map props.\n * @returns -- Returns the map module.\n */\nconst MapView: React.FC = ({ ModuleProps, Header, MapProps }) => (\n \n {Header && }\n \n \n);\n\nexport default MapView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n IBusinessFormItem,\n IBusinessOrganizationListViewProps,\n IFormViewProps,\n InputID\n} from '@msdyn365-commerce-modules/business-organization-list';\nimport { Modal, ModalBody, ModalFooter, ModalHeader, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n IBusinessOrganizationListProps,\n IBusinessOrganizationListResources\n} from '../definition-extensions/business-organization-list.ext.props.autogenerated';\n\n/**\n * Business Form Item component.\n * @param props - View props.\n * @returns The JSX Element.\n */\nconst BusinessFormItemComponent: React.FC = (props: IBusinessFormItem) => {\n const { wrapper, label, errorMessage, input } = props;\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\n/**\n * To render modal.\n * @param className - The modal classname.\n * @param isModalOpen - The boolean for modal open status.\n * @param headingSection - The heading section of modal.\n * @param bodySection - The body section of modal.\n * @param footerSection - The footer section of modal.\n * @param toggleModal - The toggle modal callback function.\n * @returns The JSX Element.\n */\nconst renderModal = (\n className: string,\n isModalOpen: boolean,\n headingSection: React.ReactNode,\n bodySection: React.ReactNode,\n footerSection: React.ReactNode,\n toggleModal?: () => void\n) => {\n return (\n \n {headingSection}\n {bodySection}\n {footerSection}\n \n );\n};\n\n/**\n * Business User Form component.\n * @param props - View props.\n * @returns The JSX Element.\n */\nconst BusinessUserFormComponent: React.FC = (props: IFormViewProps) => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n const { modalClassName, FormWrapper, modalHeading, modalDescription, inputs, buttons, errorMessage, toggle } = props;\n\n const modalBody = (\n <>\n {modalDescription}\n \n {inputs &&\n inputs.map((item: IBusinessFormItem) => {\n return ;\n })}\n {errorMessage?.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n \n );\n\n const modalFooter =\n buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n });\n\n return renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\n};\n\n/**\n * Selected user interface.\n */\ninterface ISelectedUser {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n FirstName?: string;\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n LastName?: string;\n}\n\n/**\n * Business User Details component.\n * @param props - View props.\n * @returns The JSX Element.\n */\nconst BusinessUserDetailsComponent: React.FC = (props: IFormViewProps) => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n const { modalClassName, FormWrapper, modalHeading, modalDescription, buttons, errorMessage, resources, toggle } = props;\n let modalBody = null;\n const selectedUser = props.selectedUser as ISelectedUser | string;\n\n if (!selectedUser) {\n modalBody = errorMessage;\n } else {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n const { FirstName, LastName } = selectedUser as ISelectedUser;\n const userFullName = `${FirstName as string} ${LastName as string}`;\n\n modalBody = (\n <>\n {modalDescription}\n \n \n {userFullName}\n \n {Object.keys(selectedUser).map((data, index) => {\n if (data === InputID.FirstName || data === InputID.LastName) {\n return null;\n }\n const label = (resources[`table${data}HeadingText`] as string) || data;\n return (\n \n {label}\n {': '}\n {selectedUser[data]}\n \n );\n })}\n \n \n );\n }\n\n const modalFooter =\n buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n });\n\n return renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\n};\n\n/**\n * To get form.\n * @param type - The type of form.\n * @param formProps - The form props.\n * @param toggleModal - The toggle modal callback function.\n * @returns The JSX Element.\n */\nconst getForm = (type: string, formProps: IFormViewProps, toggleModal?: () => void) => {\n switch (type) {\n case 'ADD':\n case 'EDIT':\n return ;\n case 'VIEW':\n case 'REMOVE':\n return ;\n default:\n return null;\n }\n};\n\n/**\n * Business Organization List component.\n * @param props - View props.\n * @returns The JSX Element.\n */\nconst BusinessOrganizationListComponent: React.FC> = props => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n const {\n OrganizationUserList,\n moduleContainer,\n heading,\n noUsersText,\n addUserButton,\n organizationListTable,\n form,\n formType,\n toggleModal,\n requestAccountStatementButton,\n requestStatementModal\n } = props;\n\n const buttonList: React.ReactNode = (\n \n {addUserButton}\n {requestAccountStatementButton}\n \n );\n\n if (noUsersText) {\n return (\n \n \n {heading}\n \n \n {props.resources.headingForEmptyUserOrganizationList}\n \n \n {props.resources.textForEmptyUserOrganizationList}\n \n {buttonList}\n \n {requestStatementModal}\n {noUsersText}\n \n \n );\n }\n\n return (\n \n \n {heading}\n {buttonList}\n {requestStatementModal}\n {organizationListTable}\n \n {form && getForm(formType, form, toggleModal)}\n \n );\n};\n\nexport default BusinessOrganizationListComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IOrderTemplateListViewProps, ISingleOrderTemplateViewProps } from '@msdyn365-commerce-modules/order-template';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IOrderTemplateListProps, IOrderTemplateListResources } from '../definition-extensions/order-template-list.ext.props.autogenerated';\n\n/**\n * Interface for OrderTemplateImage.\n */\ninterface IOrderTemplateImage {\n props: {\n children: React.ReactElement[];\n };\n}\n\n/**\n * To render order template.\n * @param orderTemplate - The order template view props.\n * @param orderTemplateNodeProps - The order template node props.\n * @returns The JSX Element.\n */\nconst renderOrderTemplate = (orderTemplate: ISingleOrderTemplateViewProps, orderTemplateNodeProps?: INodeProps): JSX.Element | null => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file\n const { key, addToCartButton, orderTemplateImage, orderTemplateStatusMessage, removeButton, orderTemplateName } = orderTemplate;\n\n const orderTemplateImageElement: IOrderTemplateImage = orderTemplateImage as React.ReactElement;\n const currentImageListLength = orderTemplateImageElement.props.children.length;\n const defaultNumberImagesInTile = 4;\n\n if (currentImageListLength < defaultNumberImagesInTile) {\n for (let index = 0; index < defaultNumberImagesInTile - currentImageListLength; index++) {\n orderTemplateImageElement.props.children.push();\n }\n }\n\n return (\n \n {orderTemplateName}\n {orderTemplateImage}\n {addToCartButton}\n {removeButton}\n {orderTemplateStatusMessage}\n \n );\n};\n\n/**\n * Order Template List View.\n * @param props - The view props.\n * @returns The JSX Element.\n */\nexport const OrderTemplateListViewComponent: React.FC> = props => {\n const {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file\n OrderTemplateList,\n OrderTemplates,\n OrderTemplate,\n status,\n statusMessage,\n heading,\n orderTemplates,\n createOrderTemplateButton,\n templateHeaderStatusMessage\n } = props;\n\n return (\n \n {heading}\n \n {status === 'SUCCESS' && (!OrderTemplates || !orderTemplates || !ArrayExtensions.hasElements(orderTemplates)) ? (\n
\n

{props.resources.headingForEmptyOrderTemplateList}

\n

{props.resources.textForEmptyOrderTemplateList}

\n {createOrderTemplateButton}\n
\n ) : (\n createOrderTemplateButton\n )}\n {templateHeaderStatusMessage}\n
\n {status !== 'SUCCESS' && statusMessage}\n {OrderTemplates && orderTemplates && ArrayExtensions.hasElements(orderTemplates) && (\n \n {orderTemplates.map(orderTemplate => {\n return renderOrderTemplate(orderTemplate, OrderTemplate);\n })}\n \n )}\n
\n );\n};\n\nexport default OrderTemplateListViewComponent;\n"],"names":["Image","React","constructor","handleParagraphChange","event","this","props","config","image","paragraph","target","value","_renderParagraph","Msdyn365","text","className","editProps","onEdit","requestContext","context","request","_renderImageItem","_image$imageSettings","imageProps","gridSettings","imageSettings","viewports","xs","q","w","h","sm","md","lg","xl","lazyload","disableLazyLoad","Object","assign","loadFailureBehavior","render","viewProps","_objectSpread","moduleProps","classnames","tag","imageItem","renderView","imageView","Node","getSubscriptionDetailPageUrl","actionContext","SubscriptionId","LineId","subscriptionsUrl","getUrlSync","separator","includes","_ref","buttonName","Button","href","NosSubscriptionList","_data$subscriptionLis4","super","handleHeadingChange","heading","_renderTooltip","resources","id","UncontrolledTooltip","dangerouslySetInnerHTML","__html","subscriptionStatusTooltip","_renderTable","subscriptionList","length","scope","subscriptionIdLabel","subscriptionProductLabel","subscriptionStatusLabel","nextPaymentLabel","map","el","index","key","SubBillBillingScheduleNumber","SubBillLineNum","toString","String","SubBillItemName","getSubscriptionStatus","status","SubscriptionStatus","ACTIVE","active","ARCHIVED","archived","LASTBILLING","lastBilling","ONHOLD","onHold","TERMINATED","terminated","SubBillScheduleStatus","SubBillStartDate","undefined","date","Date","cultureFormatter","formatDate","year","month","day","NosSubscriptionDetailButton","viewEditLabel","noSubscriptions","_dataInitialize","data","reaction","_data$subscriptionLis","result","_data$subscriptionLis2","_data$subscriptionLis3","subscriptionListData","componentDidMount","user","isAuthenticated","shouldComponentUpdate","nextProps","nextState","state","_this$subscriptionLis","table","__decorate","observable","NosTextBlock","handleTextChange","layout","pictogram","links","icon","textBlockViewProps","alignment","fontsize","theme","LinksButtonType","renderModuleAttributes","link","linkUrl","destinationUrl","type","buttonType","primaryDark","primaryLight","secondaryDark","secondaryLight","linkText","AddressShow","AddressDetail","items","item","description","AddressList","_ref2","List","isShowList","Item","error","showItems","isShowPrimaryButton","Error","isShowError","title","message","AddressLists","_ref3","ListAddress","isShowEmptyListMessage","emptyListMessage","addButton","primaryAddressList","otherAddressList","AddressAddUpdate","_ref4","AddressForm","hasError","isShowSaveButton","saveButton","isShowCancelButton","cancelButton","AddressItem","label","alert","input","AddressError","AccountAddressManagement","infoMessageBar","viewState","showAddressList","showAddOrUpdateAddress","screenReaderNotification","Module","isShowAddresList","isShowAddOrUpdateAddress","_renderCartlines","cartLines","cartEmptyText","CartlinesWrapper","storeSelector","backToShoppingButton","waitingComponent","cartLoadingStatus","cartDataResult","cartLine","_cartLine$cartlineId","cartlineId","MsDyn365","isBrowser","cartline","pickUpInStore","ContainerProps","defaultComponent","remove","renderCartLinesGroupHeader","pickUpText","shippingText","emailShippingText","titleSeparate","emailDeliveryModeCode","_cartLine$pickUpInSto4","groupTitle","isBopisSelected","DeliveryMode","toLowerCase","renderCartLinesGroupTitle","_cartLine$pickUpInSto","_cartLine$pickUpInSto2","_cartLine$pickUpInSto3","deliveryOption","orgUnitName","_props$cart","_props$cart2","errorData","promotions","cart","hasInvoiceLine","promotionOptions","promotionMessageWrapper","promotionMessage","promotionSeeAllLink","promotionDialog","multiplePickUpEnabled","cartLinesGroup","ArrayExtensions","hasElements","cartlines","_props$context$action","emailshippingText","channel","EmailDeliveryModeCode","emptyCartText","renderCartLinesGroup","orderSummaryHeading","OrderSummaryWrapper","_renderInvoiceSummarylines","invoiceSummaryLines","OrderSummaryItems","invoices","giftCard","loyalty","orderTotal","telemetry","invoiceSummaryLineitems","_renderOrderSummarylines","orderSummaryLines","promoCode","subtotal","otherCharge","tax","totalDiscounts","orderSummaryLineitems","OrderSummaryErrors","errors","Wrapper","header","checkoutAsSignInUserButton","checkoutAsGuestButton","expressCheckoutButton","ExpressCheckoutSectionWrapper","getOriginalPrice","_props$data$price$Bas","_props$data$price$Tra","_props$data$price$Adj","Math","max","price","BasePrice","TradeAgreementPrice","AdjustedPrice","formatCurrency","shouldUseFreePriceText","freePriceText","renderCurrentPrice","maxVariantPrice","MaxVariantPrice","minVariantPrice","MinVariantPrice","_props$priceResources","isPriceMinMaxEnabled","itemProp","priceResources","priceRangeSeparator","CustomerContextualPrice","PriceComponent","msdyn365Commerce","createComponentOverride","component","notAuthenticatedText","originalPriceText","isSalesAgreementPriceFeatureEnabled","SalesAgreementPrice","ObjectExtensions","isNumber","salesAgreementLineId","_props$data$price$Att","_props$data$price$Sal","_props$priceResources2","_props$priceResources3","_props$priceResources4","_props$priceResources5","_props$priceResources6","_props$priceResources7","_props$priceResources8","firstPriceLine","AttainablePriceLines","salesAgreementPricePrompt","format","salesAgreementExpirationDatePrompt","EffectiveDate","salesAgreementCommittedQuantityPrompt","CommittedQuantity","salesAgreementRemainingQuantityPrompt","RemainingQuantity","renderSalesAgreementPrice","originalPrice","showStrikethroughPricing","initialPrice","currentPriceText","savingsText","renderCurrentPriceWithOriginalPrice","_renderSitePicker","renderIcon","_renderSiteOptionsList","SitePickerMenuList","SitePickerMenuListItem","SitePickerMenuListItemArray","options","onMouseLeave","resetSiteOptionsState","isMobileView","SitePicker","_props$SitePickerMenu","SitePickerMobileContainer","toggleButtonText","onClick","renderSiteOptions","_renderMobileView","SitePickerMenu","SitePickerMenuSpan","siteOptionsState","_renderDesktopView","AccountCustomerBalanceTile","telemetryContent","getTelemetryObject","telemetryPageName","friendlyName","_initState","setState","content","ErrorComponent","apiGenericErrorMessage","get","customerResult","allowOnAccountPayment","AllowOnAccountPayment","isB2BSite","isChannelTypeB2B","enableCustomerAccountPayment","isCustomerAccountPaymentEnabled","Heading","headingTag","isDetailsLinkDisplayed","LinksComponent","onTextChange","account","Balance","CreditLimit","InvoiceAccountBalance","InvoiceAccountCreditLimit","noCreditErrorMessage","accountCreditVerbagePrefix","accountCreditVerbagePostfix","currencyCode","customerCredit","customerCreditFormatted","toFixed","CreditComponent","verbagePrefix","verbagePostfix","computed","_mapEditableLinks","linkdata","editableLinks","payLoad","getPayloadObject","forEach","contentAction","etext","attributes","getTelemetryAttributes","editableLink","ariaLabel","openInNewTab","role","additionalProperties","push","AccountCustomerBalance","requestStatementButtonRef","_showRequestStatementModal","isStatementRequestModalOpen","_toggleModal","_this$requestStatemen","current","focus","_toggleDropdown","isStatementRequestAdminDropdownOpen","_updateFromDate","newFromDate","statementRequestFromDateString","_updateToDate","newToDate","statementRequestToDateString","_adminShowRequestStatementModal","isFullOrg","statementRequestFullOrg","_requestStatement","_this$props$data$b2bU","_this$requestStatemen2","customer","customerInformation","B2BUserId","b2bUserInformation","statementRequest","FromDate","ToDate","IsForFullOrganization","RequestedUserId","RequestingUserEmail","Email","DeliveryTypeValue","BusinessPartnerOperationDeliveryType","callerContext","BusinessPartnerUsersDataActions","statementRequestMaxDateString","toISOString","split","_get","creditSummarySectionHeading","accountSectionHeading","backToShoppingText","customerSincePrefix","availableCreditLabel","balanceOwedLabel","creditExcessLabel","requestStatementButtonLabel","modalHeaderLabel","sendToEmailLabel","fromDateLabel","toDateLabel","submitRequestLabel","cancelLabel","myAccountStatementLabel","fullOrganizationLabel","modalAriaLabel","accountNumber","AccountNumber","createdOn","_formatJoinDate","CreatedDateTime","name","FirstName","LastName","customerAccountBalance","excess","creditExcess","_formatCurrency","availableCredit","balanceOwed","backLink","emailAddress","actionBar","IsB2bAdmin","AdminRequestStatementButton","buttonReference","onRequestStatement","onToggleDropdown","myUserAccountLabel","isDropdownShowing","ActionBar","accountLabels","AccountLabels","accountValues","AccountValues","AvailableCreditComponent","BalanceOwedComponent","CreditExcessComponent","homeButton","BackButton","actions","requestStatementModal","RequestStatementModal","email","isModalOpen","toggle","fromDateString","toDateString","onChangeFromDate","onChangeToDate","canSubmitRequest","canSubmitStatementRequest","onSubmitRequest","selectedUser","selectedUserLabel","maxDateString","currency","Intl","DateTimeFormat","locale","creditSummaryLabels","creditSummaryValues","popoverReference","innerRef","onPromoteToSeller","promoteToSellerLabel","onSelectCustomerAccount","onSelectFullOrg","onSelectPromoteToSeller","requestStatementDropdownString","Random","Guid","generateGuid","Popover","isOpen","placement","onChangeFromDateEvent","onChangeToDateEvent","onBlurFromDate","isFunction","onBlurToDate","Modal","horizontalPosition","verticalPosition","autoFocus","fade","ModalHeader","ModalBody","htmlFor","onBlur","onChange","min","ModalFooter","disabled","_ref5","_ref6","_ref7","_ref8","TelemetryConstant","BackToShopping","AccountLoyaltyTile","handleLinkTextChange","linkIndex","signUpLinkText","viewLinkText","signUpLinkAriaLabel","viewLinkAriaLabel","accountLoyaltySummary","accountLoyaltyMemberSummary","loyaltyCard","url","CardNumber","decimalPrecision","points","RewardPoints","rewardPoint","ActivePoints","DescriptionComponent","AccountProfileEdit","moduleClassName","onTextBoxChange","givenName","surname","emailRegex","_onInit","_prePopulateData","_updateErrorMessage","initializationTimer","setInterval","_isInitializationSuccessful","setTimeout","clearInterval","window","isInitialized","invalidEmailAddressError","obj","PRE","_htmlDecode","ID","PAT","PAT_DESC","required_field","requiredFieldMissingError","verifying_blurb","loadingMessage","EmailRegex","defaultRegex","source","componentDidUpdate","isShowLoading","accountProfileEdit","loading","modal","modalBody","AccountProfileEditLoadingIconComponent","AccountProfileEditLoadingMessageComponent","defaultAADConainer","style","display","aadConainer","accountProfileEditLocalAccount","_renderLocalAccount","str","e","document","createElement","innerHTML","childNodes","nodeValue","localAccount","_renderInput","firstNameLabelText","firstNameMaxLength","lastNameLabelText","lastNameMaxLength","errorMessage","AccountProfileEditErrorComponent","requiredFieldMissingSummaryError","fieldIncorrectError","buttonsWrapper","buttons","AccountProfileEditButtonComponent","saveButtonAriaLabel","saveButtonText","cancelButtonText","verificationSuccessModal","verificationSuccessModalMessage","showEmail","emailAddressLabelText","labelText","maxLength","pattern","wrapper","AccountProfileEditLabelComponent","forId","AccountProfileEditInputComponent","observer","AccountProfileEditItem","AccountProfileEditLoading","button","LocalAccount","errorClassName","GetMaxLength","parsedMaxLength","Number","parseInt","isNaN","AccountWelcomeTile","accountInfo","accountInformation","AccountWishlistTile","accountWishlistTileDescription","wishlists","wishlistsCount","CommerceListLines","RequestsTableColumnHeader","getUserName","StringExtensions","isNullOrEmpty","UserFirstName","UserLastName","b2bRequestsNameDisplay","replace","getDetails","_requestDetails$Invoi","Details","requestDetails","accountStatementStartDateTime","AccountStatementStartDateTime","accountStatementEndDateTime","AccountStatementEndDateTime","invoiceId","InvoiceId","TypeValue","b2bRequestsAccountStatementDetails","b2bRequestsInvoiceCopyDetails","getDisplayFriendlyTypeValue","typeValue","b2bRequestsTypeCreateProspect","b2bRequestsTypeAddUser","b2bRequestsTypeDeleteUser","b2bRequestsTypeEditUser","b2bRequestsTypeRequestAccountStatement","b2bRequestsTypeRequestInvoiceCopy","b2bRequestsTypeUnknown","getDisplayFriendlyStatusValue","statusValue","b2bRequestsStatusProcessed","b2bRequestsStatusError","b2bRequestsStatusRequested","createTableProps","tableProps","_context$request$quer","tableData","operationRequests","_request$TypeValue","_request$StatusValue","row","b2bRequestsTypeColumn","TableDataType","Text","b2bRequestsRequestDateColumn","b2bRequestsDescriptionColumn","b2bRequestsUserColumn","b2bRequestsStatusColumn","StatusValue","isSelected","createTableItems","headings","filter","isMobile","mobileExcludedColumns","sortable","columnSortAriaLabel","rows","editLinkText","deleteLinkText","enableToModify","actionLinkText","showCheckBoxes","isSortable","showPagination","minifyActions","excludedColumns","paginationProperty","skipCount","query","skip","itemPerPage","prevText","b2bRequestsPreviousText","nextText","b2bRequestsNextText","paginationText","reqContext","URL","location","requestUrl","isSingleSelectOnly","onDelete","onView","businessUserSelectCheckBoxAriaLabelText","sortByAscending","sortByDescending","B2bRequestsTable","Table","B2bRequestsStatus","renderHeader","headingData","_this$props$data$oper","_this$props$data$oper2","itemCount","getItemNumberDisplayString","_retrieveExcludedColumns","renderTable","b2bRequestsNumberOfItemsSingular","b2bRequestsNumberOfItems","variant","VariantType","Viewport","b2bRequestsStatus","SignUpText","LoyaltySignUp","handleMemberHeadingChange","memberHeading","_issueLoyalty","clicked","IssueLoyaltyInput","apiSettings","issueLoyalty","then","catch","debug","SignIn","loyaltySignInAttributes","SignUp","loyaltySignUpAttributes","LoyaltyDetailLink","loyaltyDetailsLinkAttributes","LoyaltyTermsLink","loyaltyTermsLinkAttributes","_data$customerInforma","_this$props$context$a","signInUrl","termsUrl","loyaltyJoinUrl","origin","signInurl","completeClass","classname","hasLoyaltyAccount","CardTenderTypeValue","invalidAsyncCustomerState","app","canRenderAsyncCustomerDataAsUnmodifiable","IsAsyncCustomer","accountProcessingPendingInfoMessage","params","isEditor","signInLink","joinLoyaltyButtonText","signUpText","loyaltyProgramText","signUpButton","detailsLink","viewLoyaltyPageText","termsLink","loyaltyTermsLinkText","LoyaltyTermsModal","LoyaltyTermsCancel","loyaltyTermCancelAttributes","LoyaltyTermsSubmit","loyaltyTermSubmitAttributes","LoyaltyTermsAgree","loyaltyTermCheckboxAttributes","onToggle","applicationNode","returnFocusRef","returnRef","modalHeader","modalFooter","cancelLoyaltyTermsText","submitButton","onSubmit","checked","joinLoyaltyTermsText","loyaltyTermsHeading","terms","agreeSection","checkbox","onCheck","agreeText","loyaltyAgreeToTerms","LoyaltyTerms","_toggle","bind","_submit","_checkboxChecked","toggleRef","search","isJoining","substring","qsps","qsp","splitQsp","hideToggle","slots","serviceTerms","modalToggle","joinLoyaltytermsToggleText","card","redirectToLoyalty","getLoyaltyCardAsync","fullCard","update","GetLoyaltyCardInput","AccountOrganizationUsersTileDescription","AccountOrganizationUsersTileLinks","OrganizationUsersTile","accountOrganizationUsersTileDescriptionForSingleUser","accountOrganizationUsersTileDescriptionForMultipleUsers","numUsers","users","accountOrganizationUsersTileDescription","PasswordReset","newPasswordRegex","reenterPasswordRegex","PasswordRegex","passwordReset","PasswordResetLoadingIconComponent","PasswordResetLoadingMessageComponent","passwordResetLocalAccount","newPasswordLabelText","confirmPasswordLabelText","PasswordResetErrorComponent","passwordEntryMismatchError","PasswordResetButtonComponent","PasswordResetLabelComponent","PasswordResetInputComponent","PasswordResetItem","PasswordResetLoading","signInDisclaimer","handleSignInHeadingChange","signInHeading","handleSignUpHeadingChange","signUpHeading","emailId","SA_FIELDS","AttributeFields","errorMessages","requiredField_email","requriedEmailError","requiredField_password","requriedPasswordError","invalid_email","invalidEmailError","invalid_password","invalidPasswordError","unknown_error","unknownError","signIn","SignInLoadingIconComponent","SignInLoadingMessageComponent","signInSection","signInSectionHeading","signInLocalAccount","emailAddressAriaLabel","passwordLabelText","forgetPassword","SignInLinkComponent","forgotPasswordButtonAriaLabel","forgotPasswordButtonText","disclaimer","SignInErrorComponent","signInButton","SignInButtonComponent","loginButtonAriaLabel","loginButtonText","signInSocialAccount","socialAccounts","_renderSocialAccount","facebookButtonText","facebookButtonAriaLabel","facebookIcon","microsoftButtonText","microsoftButtonAriaLabel","microsoftIcon","signInB2BAccount","_renderB2BSocialAccount","b2bButtonText","b2bButtonAriaLabel","displayB2bAccountManagerSignin","signUpSection","signUpSectionHeading","signUpDescription","SignInDescriptionComponent","signUpDescriptionText","signUpLink","signUpButtonAriaLabel","signUpButtonText","SignInLabelComponent","SignInInputComponent","iconImage","_createImageMarkup","SignInTextComponent","_displayB2bAccountManagerSignin","pictureClassName","shouldSkipToMainImage","SignInLoading","SocialAccount","B2BAccount","successClassName","isEmailVerificationRequried","templateVersion","VERIFY","isGivenNameVerificationRequried","isSurnameVerificationRequried","UX_INPUT_TYPE","getValue","v1Value","v2Value","signUp","SignUpLoadingIconComponent","SignUpLoadingMessageComponent","signUpLocalAccount","emailVerification","isRequired","verificationCodeLabelText","verificationControlWrapper","buttonWrapper","SignUpButtonComponent","sendCodeButtonAriaLabel","sendCodeButtonText","verifyCodeButtonAriaLabel","verifyCodeButtonText","resendCodeButtonAriaLabel","resendCodeButtonText","changeEmailButtonAriaLabel","changeEmailButtonText","successMessage","SignUpSuccessComponent","verificationCodeSendSuccess","emailAddressVerifiedSuccess","SignUpErrorComponent","retryError","retryNotAllowedError","throttledError","codeExpiredError","serverError","givenNameVerification","surnameVerification","signUpButtonArialabel","cancelButtonArialabel","cssClassName","SignUpLabelComponent","SignUpInputComponent","SignUpItem","SignUpEmailVerification","SignUpGivenNameVerificationComponent","SignUpSurnameVerificationComponent","SignUpLoading","Link","noclick","attribute","onTelemetryClick","Separator","Breadcrumb","_pageType","urlTokens","pageType","_getRootLink","root","_getCustomBreadcrumbLinks","itemPosition","keyIndex","_getCategoryHierarchy","categoryHierarchy","_getFriendlyName","NameTranslations","Url","nameTranslations","_nameTranslation","nameTranslation","find","Language","_getPDPLinks","categoryPaths","product","Name","hideProductName","_goBack","history","back","_getPDPBackButton","referrer","backToResultsText","rootLink","breadcrumbLinks","backButtonComponent","breaCrumbType","breadcrumbType","linkSeparator","breadcrumbViewProps","BreadcrumbContainer","BreadcrumbList","BreadcrumbListItem","backButton","FormType","InputType","InputID","renderInputSection","inputs","asteriskAfterLabel","onInputChange","element","customClass","maxChars","isDisabled","fieldReference","FormLabel","asteriskText","FormFieldError","FormInput","placeholder","BusinessOrganizationList","_this$props$config","BusinessFormDefaultInputs","businessUserFirstNameLabelText","businessUserLastNameLabelText","businessUserEmailAddressLabelText","SpendingLimit","businessUserSpendingLimitLabelText","delayFocus","formChildReference","userFormEditReference","userFormDeleteReference","_handleAddUserButtonClicked","newForm","formItems","newUser","isFormActive","formType","Add","referenceBack","addUserButtonReference","hasFormError","hasActionError","selectedUserData","_handleAddEditFormSaveButton","async","updatedUser","_createBusinessPartner","Edit","editOrganizationUser","EditOrganizationUserInput","reload","trace","addOrganizationUser","AddOrganizationUserInput","businessUserActionRetailErrorMsg","parseFloat","_handleEditIcon","userData","possibleName","cell","fullName","lastSpaceIndex","lastIndexOf","firstName","lastName","possibleCell","dataCell","_handleDeleteIcon","displayedUserData","Price","Remove","_handleViewDetails","View","_handleRemoveUserButton","deleteUserData","deleteOrganizationUser","DeleteOrganizationUserInput","None","callbackRemoveButton","_onInputChange","prev","refresh","isReady","_isFormReady","formItem","match","_formatPrice","_getCurrentUrl","_getViewport","device","Type","innerWidth","_toggleStatementRequestDropdown","_promoteToSeller","promoteToSellerUrl","currentUser","_getB2BUserId","_closeStatementRequestModal","_this$statementReques","statementRequestButtonReference","_onSelectRow","records","selectedRow","rowProps","Status","_viewport","_updateViewport","submitButtonReference","addedReference","isNullOrWhitespace","businessUserSelectedUserDisplayName","addEventListener","componentWillUnmount","removeEventListener","_this$formChildRefere","_this$submitButtonRef","_this$props$data$cust","showBecomeSellerLink","businessUserActionButtonText","businessUserAddUserButtonText","businessUserLoadingMessage","businessUserEmptyListMessage","businessUserErrorGettingUsersMessage","userAccountStatementLabel","promoteToSellerActionLabel","requestAccountStatementActionLabel","requestOrganizationStatementActionLabel","statementRequestModalHeaderLabel","hasUsers","AddUser","addUserAttributes","errorProps","OrganizationUserList","moduleContainer","addUserButton","noUsersText","modalState","organizationListTable","_createTableProps","toggleModal","form","_renderUserForm","_renderUserDetails","requestAccountStatementButton","selectedOrganizationLabel","selectedUserName","tableSort","paginationItemPerPage","businessUserPaginationNextButtonText","businessUserPaginationPreviousButtonText","businessUserEditButtonText","businessUserViewUserButtonText","businessUserDeleteButtonText","businessUserPaginationAriaLabel","_createTableItems","editLinkTooltip","deleteLinkTooltip","viewLinkTooltip","resourcePrefix","tableAriaLabel","tableTabIndex","formatPrice","checkBoxCallback","businessUserActiveStatusText","businessUserPendingStatusText","businessUserRemovedStatusText","usersList","statusString","FullName","buttonReferences","edit","delete","_this$state$reference","businessUserRemoveModalHeaderText","businessUserRemoveModalDescription","businessUserViewModalHeaderText","businessUserCancelButtonText","businessUserCancelRemoveUserButtonText","businessUserRemoveUserButtonText","businessUserErrorUpdatingUsersMessage","formClassName","typeClassName","handleRemoveButton","modalClassName","FormWrapper","modalHeading","modalDescription","businessUserEditUserFormHeadingText","businessUserAddUserFormHeadingText","businessUserSaveButtonArialabel","businessUserSaveButtonText","businessUserCancelButtonArialabel","businessUserFieldIncorrectErrorText","businessUserActionErrorText","businessUserAllFieldsRequiredMessage","FormButton","BusinessFormItem","BusinessUserForm","_renderModal","BusinessUserDetails","userFullName","keys","headingSection","bodySection","footerSection","wrapClassName","ButtonList","_getForm","formProps","ref","FooterCategory","viewprops","categories","FooterList","FooterListItem","FooterCategoryView","category","ImageList","images","_renderImageListItems","imageList","defaultImageSettings","_link$linkText","imageLink","imageLinkText","imageLinkAriaLabel","imageLinkOpenInNewTab","linkAltText","linkAriaLabel","linkOpenInNewTab","_heading$tag","imageListTitle","imageListHeading","imageListContainer","imageListItem","imageListItemAnchorTag","imageListItems","imageListView","indexKey","src","altText","InteractiveFeatureCollection","_telemetryContent","itemsCounter","indexItem","itemCounter","isMosaic","_this$props$config$cl","_title$tag","interactiveItems","interactiveFeatureItems","itemsFeatureCounter","singleSlideCarouselComponentProps","SingleSlideCarousel","flipperPrevLabel","flipperPrevious","flipperNextLabel","flipperNext","parentId","vertical","createHeading","interactiveFeatureCollectionHeading","interactiveFeatureCollectionContainer","interactiveFeatureCollectionDesktopContainer","interactiveFeatureCollectionMobileContainer","singleSlideCarouselItemContainer","interactiveFeatureCollectionMobileItems","interactiveFeatureCollectionDesktopItems","_getFeatureItem","interactiveFeatureCollectionView","tileItem","InteractiveFeatureCollectionLinks","InteractiveFeatureItem","_this$props$config$li","featureItemLinks","_createHeading","_createParagraph","_renderImage","featureItem","interactiveFeatureCollectionCarouselContainer","interactiveFeatureCollectionCarouselImage","interactiveFeatureCollectionCarouselContent","interactiveFeatureCollectionMosaicContainer","tabindex","interactiveFeatureCollectionMosaicImage","interactiveFeatureCollectionMosaicDetails","isAriaHiddenAttribute","_item$imageSettings","_this$props$config$im","verifiedImageSettings","moduleType","typeName","imagePropertyName","moduleId","MagicNumber","FeatureItemViewComponent","renderMosaic","thisProps","indexAux","caseNumberOne","itemCounterAux","caseNumberZero","modularAux","modularDivisor","firstRow","caseNumberTwo","lastRow","onCornerRight","onCornerLeft","containerClasses","renderCarousel","Map","timeout","mapRef","_initMap","_data$storeSelectorSt","_data$distributorSele","storeSelectorStateManager","isMapApiLoaded","distributorSelectorStateManager","mapLoadOptions","credentials","BingMapsApiKey","pushpinAccessible","Microsoft","Maps","Events","addHandler","_data$distributorSele2","_data$distributorSele3","_data$distributorSele4","_data$storeSelectorSt2","isDistributorSelectorDialogOpen","updateDistributorMapVisibility","setSelectedDistributorId","setSelectedStoreLocationId","_updateMapsForDistributor","_this$props$data$dist","pushpinOptions","distributorInfoList","distributorList","selectedDistributorId","mapLocation","entities","clear","pushpins","distributor","OrgUnit","distributorInfo","entries","orgUnit","Latitude","Longitude","isLocationSelected","RecordId","_getPushpinOptions","pushpin","Pushpin","Location","handleDistributorPushpinClick","unshift","currentLocation","setView","center","_Microsoft$Maps$Locat","bounds","LocationRect","fromShapes","setOptions","_updateMap","_this$props$data$stor","_storeSelectorStateMa","orgUnitStoreInformation","selectedStoreLocationId","storeLocationList","store","OrgUnitAvailability","unitStoreInfo","_unitStoreInfo$OrgUni","storeLocation","OrgUnitLocation","isSelectedLocation","OrgUnitNumber","handleClickEvent","_Microsoft$Maps$Locat2","orgUnitNumber","recordId","_this$props$data$dist2","showIndex","size","color","selectionColor","_getSvgIcon","_this$props$context","_this$props$data$stor2","_this$props$data$dist3","BingMapsEnabled","loadMapAPIInput","lang","market","ChannelCountryRegionISOCode","_this$props$data$dist4","when","_this$props$data$stor3","setMapModuleLoaded","_this$props$data$stor4","_this$props$data$dist5","_this$props$data$dist6","_this$props$data$stor5","_this$props$data$dist7","loadMapApi","_this$props$data$dist8","_this$props$data$dist9","_this$props$data$stor6","_this$props$data$stor7","_this$props$data$dist10","_this$props$data$stor8","_this$props$data$stor9","_this$props$data$dist11","_this$props$data$dist12","_data$storeSelectorSt3","_data$storeSelectorSt4","_data$distributorSele5","_data$distributorSele6","shouldDisplayMap","isDialogOpen","listMapViewState","displayMap","ModuleProps","show","Header","headerProps","MapProps","MapHeader","BusinessFormItemComponent","renderModal","BusinessUserFormComponent","BusinessUserDetailsComponent","buttonList","headingForEmptyUserOrganizationList","textForEmptyUserOrganizationList","getForm","OrderTemplateListViewComponent","OrderTemplateList","OrderTemplates","OrderTemplate","statusMessage","orderTemplates","createOrderTemplateButton","templateHeaderStatusMessage","headingForEmptyOrderTemplateList","textForEmptyOrderTemplateList","orderTemplate","renderOrderTemplate","orderTemplateNodeProps","addToCartButton","orderTemplateImage","orderTemplateStatusMessage","removeButton","orderTemplateName","orderTemplateImageElement","currentImageListLength","children"],"sourceRoot":""}