{"version":3,"file":"static/js/11.2ab10e423608683c3c24.chunk.js","mappings":";wLASkBA,EAAAA,EA2CAC,qBA3CAD,EAAAA,IAAAA,EAAM,KACpB,wBACAA,EAAA,wBACAA,EAAA,kBAwCJ,SAAkBC,GACdA,EAAA,QACAA,EAAA,QACAA,EAAA,QACAA,EAAA,QACAA,EAAA,QACAA,EAAA,QANJ,CAAkBA,IAAAA,EAAU,8CCpC5B,MAIMC,EAAmB,CACrB,CAACC,EAAYC,YAAa,sBAC1B,CAACD,EAAYE,SAAU,0BAErBC,EAAsBN,GAAwBE,EAAiBF,IAAW,sBAwIhF,EAtIoHO,IAChH,MAAM,eACFC,EAAc,QACdC,EAAO,WACPC,EAAU,SACVC,EAAQ,OACRC,GACAL,GAEE,OACFP,EAAM,gBACNa,EAAe,mBACfC,EAAkB,oBAClBC,EAAmB,oBACnBC,EAAmB,qBACnBC,EAAoB,yBACpBC,EAAwB,iBACxBC,EAAgB,yBAChBC,GACAb,EAAMc,QAEJ,iBACFC,EAAgB,iBAChBC,EAAgB,oBAChBC,EAAmB,qBACnBC,EAAoB,+BACpBC,EAA8B,8BAC9BC,EAA6B,oBAC7BC,GACArB,EAAMsB,UAGJC,EAAoBvB,EAAMC,eAAeuB,YAAYC,KAAKC,YAAYC,QAAU3B,EAAMC,eAAeuB,YAAYC,KAAKC,YAAYC,OAAOC,cAAc,GAEvJC,EAAgBN,EAAkBO,6BAGlCC,EADcR,EAAkBS,iBAAiBC,QAAOC,GAAQA,EAAKC,WAAaN,IAAe,GAC1EO,OAEvBC,EAAarC,EAAMC,eAAeuB,YAAYc,QAAQC,QAAQC,KAAKC,aAEnEC,EAAmBvC,EAAYH,MAAM2C,KAE3C,IAAIC,EAAiB,EAAE,KAGnBvC,GAAUA,EAAOL,QAEjB4C,EAAiBvC,EAAOL,MAAM2C,KAAKE,MAAM,MAG7C,MAEMC,EAAY,cAAcf,IAE1BgB,EAA8BxC,GAAsBE,GAAuBA,EAAoBuC,KAAOvC,EAAoBwC,SAAWP,EACrIQ,EAA+B1C,GAAuBE,GAAwBA,EAAqBsC,KAAOtC,EAAqBuC,SAAWP,EAC1IS,EAAyBtC,GAA4B,cAE3D,MArE2BpB,CAAAA,GACpB,CAACG,EAAYC,WAAYD,EAAYE,SAASsD,SAAS3D,GAoE1D4D,CAAsB5D,GAGlB6D,EAAAA,cAACC,EAAAA,OAAMC,OAAAC,OAAA,GAAKxD,EAAc,CAAEyD,UAAW3D,EAAmBN,KACrDS,EACDoD,EAAAA,cAACK,EAAAA,EAAS,CAACD,UAAWzD,EAAeyD,WACjCJ,EAAAA,cAACM,EAAAA,EAAG,KACAN,EAAAA,cAAA,OAAKI,UAAW,gCACZJ,EAAAA,cAAA,UAAKtC,GACJb,GACC4C,GAAsBG,IAAyBI,EAAAA,cAAA,OAAKI,UAAU,kCAC3DX,EACGO,EAAAA,cAAA,KAAGO,KAAM,2FAA2FV,uBAAmCT,WAA0BL,KAC7JiB,EAAAA,cAAA,OAAKI,UAAU,iCAAiCV,IAAKvC,MAAAA,OAAmB,EAAnBA,EAAqBuC,IAAKc,IAAKrD,MAAAA,OAAmB,EAAnBA,EAAqBwC,QAASc,OArBhI,MAsBiB,KACVb,EACGI,EAAAA,cAAA,KAAGO,KAAM,4FAA4FV,uBAAmCT,WAA0BL,KAC9JiB,EAAAA,cAAA,OAAKI,UAAU,iCAAiCV,IAAKtC,MAAAA,OAAoB,EAApBA,EAAsBsC,IAAKc,IAAKpD,MAAAA,OAAoB,EAApBA,EAAsBuC,QAASc,OAzBlI,MA0BiB,OAGdzD,GAAoBF,MAAAA,GAAAA,EAAUJ,MAAM2C,KAAKqB,SAAS,QAAqB,KAAX5D,GAEjEkD,EAAAA,cAAA,OAAKI,UAAW,gCACZJ,EAAAA,cAAA,UAAKpC,IACkB,KAAtB0B,EAAe,GAAaU,EAAAA,cAAA,KAAGI,UAAU,oCAAoCd,EAAe,IAAU,KACtGjC,EAA2B2C,EAAAA,cAAA,KAAGI,UAAU,2CAA2C/C,GAAgC,KACnHU,EACGiC,EAAAA,cAAA,KAAGO,KAAK,8BACHxC,GACE,MAEfiC,EAAAA,cAAA,OAAKI,UAAW,gCACZJ,EAAAA,cAAA,MAAII,UAAU,cAAc3C,GAC5BuC,EAAAA,cAAA,KAAGI,UAAWO,GAAAA,CAAW,YAAanB,IAAYQ,EAAAA,cAAA,QAAMI,UAAU,kBAAkB3B,IAClFnB,GAAoBA,EAAiBsD,SAAWtD,EAAiBsD,QAAQC,gBAAkBvD,EAAiBwD,SAC1Gd,EAAAA,cAAA,KAAGO,KAAMjD,EAAiBsD,QAAQC,gBAC7BvD,EAAiBwD,UACf,SAU/Bd,EAAAA,cAACC,EAAAA,OAAMC,OAAAC,OAAA,GAAKxD,EAAc,CAAEyD,UAAWO,GAAAA,CAAWhE,EAAeyD,UAAW,yBACvExD,EACDoD,EAAAA,cAAA,OAAKI,UAAW,4BACZJ,EAAAA,cAACK,EAAAA,EAAS,KACNL,EAAAA,cAACM,EAAAA,EAAG,KACAN,EAAAA,cAAA,OAAKI,UAAU,mCACXJ,EAAAA,cAAA,MAAII,UAAU,iBAAiBzC,GAAyBqC,EAAAA,cAAA,OAAKI,UAAU,cAAY,IAAOJ,EAAAA,cAAA,SAAInD,KAElGmD,EAAAA,cAAA,OAAKI,UAAU,mCACXJ,EAAAA,cAAA,MAAII,UAAU,iBAAiB3C,GAAsBuC,EAAAA,cAAA,KAAGI,UAAWO,GAAAA,CAAW,YAAanB,IAAU,IAAQQ,EAAAA,cAAA,QAAMI,UAAU,kBAAkB3B,MAGvJuB,EAAAA,cAACM,EAAAA,EAAG,KACAN,EAAAA,cAAA,OAAKI,UAAU,kCACXJ,EAAAA,cAAA,MAAII,UAAU,iBACVJ,EAAAA,cAAA,QAAMI,UAAU,mBACXvC,EAA8B,KAA8B,KAAtByB,EAAe,GAAaU,EAAAA,cAAA,KAAGI,UAAU,oCAAoCd,EAAe,IAAU,KAAI,IAAQxB,8HC3ItL,MAAMiD,EAA+DrE,IACxE,MAAM,kBACFsE,EAAiB,OACjBC,EAAM,cACNC,EAAa,QACbtE,EAAO,eACPuE,EAAc,eACdC,EAAc,cACdC,EAAa,0BACbC,EAAyB,4BACzBC,GACA7E,EAEJ,OACIsD,EAAAA,cAACC,EAAAA,OAAMC,OAAAC,OAAA,GAAKa,GACPpE,EACW,YAAXqE,GAAwBC,EACzBlB,EAAAA,cAACwB,EAAAA,KAAI,CAACpB,UAAU,IACXkB,EACAC,GAEJJ,GAAkBC,GAAkBA,EAAeK,OAAS,GACzDzB,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKgB,GACLC,GACGA,EAAeM,KAAIC,GACRC,EAAqBD,EAAeN,QAQjEO,EAAuBA,CAACD,EAA8CN,KACxE,MAAM,IAAEQ,EAAG,gBAAEC,EAAe,mBAAEC,EAAkB,2BAAEC,EAA0B,aAAEC,EAAY,kBAAEC,GAAsBP,EAClH,OACI3B,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,CAAC0B,IAAKA,EAAKzB,UAAWiB,EAAejB,WAAeiB,GACpDa,EACAH,EACAD,EACAG,EACAD,IAKb,iGC5CA,MAkGMG,EAAmBzF,GAEjBsD,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKzD,EAAM0F,WACZpC,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKzD,EAAM2F,aACX3F,EAAM4F,KACN5F,EAAM6F,KACN7F,EAAM8F,QAEXxC,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKzD,EAAM+F,eACZzC,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKzD,EAAMgG,aAEXhG,EAAMiG,YAEX3C,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKzD,EAAMkG,eACXlG,EAAMmG,aACNnG,EAAMoG,aACNpG,EAAMqG,cAEX/C,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKzD,EAAMsG,eAIXtG,EAAMuG,QAQrBC,EAAoBA,CAACxG,EAA8BwB,IAEjD8B,EAAAA,cAACC,EAAAA,OAAMC,OAAAC,OAAA,GAAKzD,EAAMyG,MAAWjF,GACxBxB,EAAM0G,YACPpD,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKzD,EAAM2G,WACZrD,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKzD,EAAM4G,MACZtD,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKzD,EAAM6G,UACX7G,EAAM8F,OACN9F,EAAM8G,aAEXxD,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKzD,EAAM6G,UACX7G,EAAM+G,WACN/G,EAAMgH,YAEX1D,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKzD,EAAM6G,UACX7G,EAAMiH,UACNjH,EAAMkH,WAEVlH,EAAMmH,iBACNnH,EAAMoH,QAGf9D,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKzD,EAAMqH,aACXrH,EAAMsH,aACNtH,EAAMuH,eAMjBC,EAAoBA,CAACxH,EAAoCyH,IAEvDnE,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKzD,EAAMyG,OACZnD,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKzD,EAAM0G,aAAce,EAAMC,SAAW1H,EAAM2H,gBAAkB3H,EAAM4H,QAC7EtE,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKzD,EAAM2G,WACXc,EAAMC,SAAW1H,EAAM6H,uBAAyB,CAAC7H,EAAM8H,cAAe9H,EAAM+H,aAAc/H,EAAMoH,QAErG9D,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKzD,EAAMqH,aAAcI,EAAMC,SAAW1H,EAAMgI,gBAAkB,CAAChI,EAAMsH,aAActH,EAAMuH,gBAK9G,EA1KyDvH,IAAQ,IAAAiI,EAAAC,EAAAC,EAC7D,MAAM,YAGF3G,EAAW,2BAEX4G,EAA0B,aAC1BC,EAAY,kBAEZC,EAAiB,YAEjBC,EAAW,YAEXC,EAAW,MAEXf,EAAK,WACLgB,GACAzI,GAEG0I,EAAWC,GAAgBrF,EAAAA,UAAe,GAG3CsF,EAAqBA,KACvBC,SAASC,KAAKC,MAAMC,UAAYN,EAAY,SAAW,SACvDC,GAAcD,IAMZO,GAFahB,EAAGjI,EAAMyB,KAAKyH,eAAevH,OAAOwH,cAEa,QAAnDjB,EAAGlI,EAAMsB,UAAU8H,wCAAgC,IAAAlB,EAAAA,EAAI,IAElEmB,EAAuC,QAAlClB,EAAGnI,EAAMsB,UAAUgI,uBAAe,IAAAnB,EAAAA,EAAI,GAUjD,OARA7E,EAAAA,WAAgB,KACZ,MAAMiG,EAAeV,SAASW,uBAAuB,gCAAgC,GAC/EC,EAAgBZ,SAASW,uBAAuB,gCAAgC,GAClFD,GAAgBE,IAChBA,EAAcC,UAAYH,EAAaG,cAI1CjB,GAAqC,IAAvBF,EAAYxD,QAAiB0C,EAAMkC,gBAUlDrG,EAAAA,cAACC,EAAAA,OAAMC,OAAAC,OAAA,GAAKjC,GAkBR8B,EAAAA,cAAA,OAAKI,UAAU,QAAQkG,QAAShB,EAAoBG,MAAO,CAAEc,QAASnB,EAAY,QAAU,SACxFpF,EAAAA,cAAA,OAAKI,UAAU,gBAAgBkG,QAASE,GAAKA,EAAEC,mBAC3CzG,EAAAA,cAAA,OAAKI,UAAU,gBACXJ,EAAAA,cAAA,QAAMI,UAAU,SAAS2F,GACzB/F,EAAAA,cAAA,UAAQI,UAAU,0BAA0BkG,QAAShB,KAEzDtF,EAAAA,cAAA,OAAKI,UAAU,+CACfJ,EAAAA,cAAA,OAAKI,UAAU,kBACXJ,EAAAA,cAAA,OAAKI,UAAU,gBACV+E,GAAchD,EAAgBgD,GAC9BF,EAAYvD,KAAIgF,GACNvE,EAAgBuE,SAM3C1G,EAAAA,cAAA,UAAQI,UAAU,eAAekG,QAAShB,GACrCK,GAEmB,IAAvBV,EAAYxD,QAAgB0C,EAAMkC,iBAAmBvB,EACrDC,EACA7B,EAAkBgC,EAAahH,GAC/BgG,EAAkBc,EAAmBb,IA7CnC,4HCpDf,MAiEA,EAjE6DzH,IACzD,MAAM,mBACFiK,EAAkB,qBAClBC,EAAoB,qBACpBC,EAAoB,YACpBC,EAAW,YACXC,EAAW,iBAEXC,EAAgB,OAChBC,EAAM,MACN9C,EAAK,QACL+C,EAAO,cACPC,EAAa,mBACbC,EAAkB,MAClBC,GACA3K,EACE4K,EAAaP,EAAY7I,YAAYc,QAAQC,QAAQsI,IAAIC,WAAWjH,KACpEkH,EAAUH,EAAWI,UAAU,EAAGJ,EAAWK,YAAY,KAAO,GAmCtE,OAlCA3H,EAAAA,WAAgB,KACZ,MAAM4H,EAASC,MAAMC,KAAKvC,SAASwC,iBAAiB,oDAChDH,EAAOnG,OAAS,GAChBmG,EAAOI,SAAQC,IACX,MAAMC,EAAYD,EAAGE,YACwB,IAAAC,EAAzCF,GAAaA,EAAUG,WAAW,QACgB,QAAlDD,EAAAH,EAAGK,QAAQ,+CAAuC,IAAAF,GAAlDA,EAAoDG,UAAUC,IAAI,yBAClEP,EAAGE,YAAcD,EAAUO,QAAQ,KAAM,KAG7C,GAAI/L,EAAMc,OAAOkL,sBAAuB,KAAAC,EAEpC,GAAqB,QADkD,QAArDA,EAAGV,EAAGK,QAAQ,+CAAuC,IAAAK,OAAA,EAAlDA,EAAoDC,cAAc,iBAC5D,KAAAC,EACvB,MAAMC,EAAWZ,MAAAA,OAAS,EAATA,EACXO,QAAQ,KAAM,IACfM,cACAN,QAAQ,YAAa,KACrBA,QAAQ,MAAO,KACdO,EAAYzD,SAAS0D,cAAc,OACzCD,EAAU5I,UAAY,cAEtB4I,EAAU5C,UAAY,4BAA4BqB,IAAUqB,MAExDpM,EAAMsB,UAAUkL,cAAgBxM,EAAMsB,UAAUkL,cAAgB,yBAEU,QAA9EL,EAAAZ,EAAGK,QAAQ,2EAAmE,IAAAO,GACX,QADWA,EAA9EA,EACMD,cAAc,uDAA+C,IAAAC,GADnEA,EAEMM,YAAYH,UAKnC,CAAC7B,IAGAnH,EAAAA,cAACC,EAAAA,OAAMC,OAAAC,OAAA,GAAK4G,GACR/G,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAK0G,GAAuBC,GACjC9G,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKwG,GACLK,EACAC,EACA9C,EAAMiF,mBAAqBlC,EAAUlH,EAAAA,cAAAA,EAAAA,SAAA,KAAGmH,GAAgCC,IAE7EpH,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKyG,GAAuBS,uuBCxC7C,MAAMgC,UAA2BrJ,EAAAA,cAG7BsJ,YAAY5M,GACR6M,MAAM7M,GAiDH,KAAA8M,oBAAuBC,GAA0CC,KAAKhN,MAAMc,OAAOZ,QAAQyC,KAAOoK,EAAME,OAAOC,MAE/G,KAAAC,qBAAwBC,GAAuBL,IAC9CC,KAAKhN,MAAMc,OAAOuM,OAASL,KAAKhN,MAAMc,OAAOuM,MAAMD,KACnDJ,KAAKhN,MAAMc,OAAOuM,MAAMD,GAAWhJ,SAAW2I,EAAME,OAAOC,QApD/DF,KAAKM,kBAAmBC,EAAAA,EAAAA,oBACpBP,KAAKhN,MAAMsC,QAAQC,QAAQiL,kBAC3BR,KAAKhN,MAAMyN,aACXT,KAAKhN,MAAM0N,WAIZC,SACH,MAAM,OAAE7M,EAAM,UAAEQ,EAAS,KAAEG,GAASuL,KAAKhN,OACnC,UAAE0D,EAAS,QAAExD,EAAO,MAAEmN,GAAUvM,GAChC,8CAAE8M,EAA6C,kDAAEC,GAAsDvM,GACvG,QAAEwM,GAAYrM,EACdsM,EAAgBD,GAAWA,EAAQnM,QAAUmM,EAAQnM,OAAOoD,QAAW,EACvEiJ,EACe,IAAjBD,EAAqBH,EAAgDC,EACnEI,GAAcC,EAAAA,EAAAA,QAAOF,EAA+BD,GAEpDI,EAASC,EAAAA,EAAA,GACRpB,KAAKhN,OAAK,IACb0D,UAAAA,EACAiJ,mBAAoB,CAChBnL,YAAawL,KAAKhN,MAClB0D,UAAWO,GAAAA,CAAW,0BAA2BnD,EAAO4C,YAE5DxD,QAASA,GAAWA,EAAQyC,MACxBW,EAAAA,cAAC+K,EAAAA,GAAa,CACV3K,UAAU,mCACV4K,IAAKpO,EAAQoO,KAAO,KACpB3L,KAAMzC,EAAQyC,KACd4L,UAAW,CAAEC,OAAQxB,KAAKF,oBAAqB2B,eAAgBzB,KAAKhN,MAAMsC,QAAQC,WAG1F8K,MAAOA,GAASA,EAAMtI,OAAS,GAC3BzB,EAAAA,cAACoL,EAAAA,EAAclL,OAAAC,OAAA,GACP,CACA4J,MAAAA,EACAsB,aAAc3B,KAAKG,qBACnBsB,eAAgBzB,KAAKhN,MAAMsC,QAAQC,QACnC+K,iBAAkBN,KAAKM,oBAInCW,YAAa3K,EAAAA,cAACsL,EAAAA,EAAoB,CAACX,YAAaA,MAGpD,OAAOjB,KAAKhN,MAAM6O,WAAWV,IAYrC,uGChFA,MAYA,EAZuEnO,IACnE,MAAM,mBAAE2M,EAAkB,QAAEzM,EAAO,YAAE+N,EAAW,MAAEZ,GAAUrN,EAE5D,OACIsD,EAAAA,cAACC,EAAAA,OAAMC,OAAAC,OAAA,GAAKkJ,GACPzM,EACA+N,EACAZ,oECLb,MAIA,EAJiFyB,IAAA,IAAC,YAAEb,GAAaa,EAAA,OAC7FxL,EAAAA,cAAA,KAAGI,UAAU,wCAAwCuK,oFCSzD,MAeMc,EAAoBA,CAACC,EAAwB1B,KAC/C,IAAK0B,GAAgC,IAApBA,EAASjK,OACtB,OAAO,KAEX,MAAMkK,EAAuC,GACvCC,GAAUC,EAAAA,EAAAA,kBAAiB,QAAS7B,EAAmB,IAgB7D,OAfA0B,EAAS1D,SAAQ,CAAC8D,EAAMC,KACpBH,EAAQI,cAAcC,MAAQH,EAAKhL,SACnC,MAAMoL,GAAaC,EAAAA,EAAAA,wBAAuBnC,EAAmB4B,GACvDQ,EAAoC,CACtCC,UAAWP,EAAKO,UAChBjM,UAAW,gCACXU,SAAUgL,EAAKhL,SACfF,QAASkL,EAAKlL,QAAQC,eACtByL,aAAcR,EAAKQ,aACnBC,KAAM,OACNC,qBAAsBN,GAE1BP,EAAcc,KAAKL,MAGhBT,GAGX,EAvCoEH,IAA8D,IAA7D,MAAEzB,EAAK,iBAAEC,EAAgB,eAAEmB,EAAc,aAAEE,GAAcG,EAC1H,GAAqB,IAAjBzB,EAAMtI,OACN,OAAO,KAEX,MAAMkK,EAAgBF,EAAkB1B,EAAOC,GAE/C,OACIhK,EAAAA,cAAA,OAAKI,UAAU,kCACVuL,GAAiBA,EAAclK,OAAS,EACrCzB,EAAAA,cAAC+K,EAAAA,GAAc,CAAChB,MAAO4B,EAAeV,UAAW,CAAEI,aAAAA,EAAcF,eAAAA,KACjE,qwBCKhB,MAAMuB,UAAmC1M,EAAAA,UAUrCsJ,YAAY5M,GACR6M,MAAM7M,GAENgN,KAAKM,kBAAmBC,EAAAA,EAAAA,oBACpBP,KAAKhN,MAAMsC,QAAQC,QAAQiL,kBAC3BR,KAAKhN,MAAMyN,aACXT,KAAKhN,MAAM0N,WAGfV,KAAKvF,MAAK2G,EAAA,GAAQpB,KAAKiD,eAEvBC,EAAAA,EAAAA,KACI,IAAMlD,KAAKmD,WACX,KACInD,KAAKhN,MAAMsC,QAAQoL,UAAUtG,MAAM,6CACnC4F,KAAKoD,SAAS,CACVC,QAAS/M,EAAAA,cAACgN,EAAAA,GAAc,CAACpD,MAAOF,KAAKhN,MAAMsB,UAAUiP,8BAtB3D,eACN,MAAkD,YAA3CC,GAAAA,CAAIxD,KAAKhN,MAAO,uBA2BjB,sCACN,MAAMyQ,EAAiBD,GAAAA,CAAIxD,KAAKhN,MAAO,mCAEjC0Q,IAAwBD,GAAiBA,EAAeE,sBACxDC,GAAYC,EAAAA,EAAAA,IAAiB7D,KAAKhN,MAAMsC,QAAQC,SAChDuO,EAA+BN,GAAAA,CAAIxD,KAAKhN,MAAO,6DAErD,OACI0Q,IACkC,QAAjCI,GACqC,QAAjCA,GAA0CF,GACT,QAAjCE,IAA2CF,GAIjDG,sBACHC,EACAC,GAEA,OAAIjE,KAAKvF,QAAUwJ,GAAajE,KAAKhN,MAAMyB,OAASuP,EAAUvP,KAM3DkM,SACH,IAAKX,KAAKkE,gCACN,OAAO5N,EAAAA,cAAAA,EAAAA,SAAA,MAGX,MAAM,UAAEI,EAAS,QAAExD,EAAO,MAAEmN,GAAUL,KAAKhN,MAAMc,OAC3CqN,EAASC,EAAAA,EAAA,GACRpB,KAAKhN,OAAK,IACbgQ,2BAA4B,CACxBxO,YAAawL,KAAKhN,MAClB0D,UAAWO,GAAAA,CAAW,mCAAoCP,IAE9DxD,QAASA,GACLoD,EAAAA,cAAC6N,EAAAA,QAAO,CAACzN,UAAU,4CAA4C0N,WAAYlR,EAAQoO,IAAK3L,KAAMzC,EAAQyC,OAE1G0N,QAASrD,KAAKvF,MAAM4I,QACpBhD,MAAOL,KAAKvF,MAAM4J,wBACd/N,EAAAA,cAACoL,EAAAA,EAAclL,OAAAC,OAAA,GACP,CACA4J,MAAAA,EACAsB,aAAeU,GAAmBtC,MAClC0B,eAAgBzB,KAAKhN,MAAMsC,QAAQC,QACnC+K,iBAAkBN,KAAKM,sBAMvC,OAAON,KAAKhN,MAAM6O,WAAWV,GAGzB8B,aACJ,MAAMqB,EAA4Bd,GAAAA,CAAIxD,KAAKhN,MAAO,uBAElD,IAAIqQ,EACAgB,GAAyB,EAE7B,GAAIrE,KAAKmD,SACLnD,KAAKhN,MAAM0N,UAAUtG,MAAM,6CAC3BiJ,EAAU/M,EAAAA,cAACgN,EAAAA,GAAc,CAAClJ,MAAO4F,KAAKhN,MAAMsB,UAAUiP,8BACnD,GACiB,IAApBe,EAAQC,SACgB,IAAxBD,EAAQE,aAC0B,IAAlCF,EAAQG,uBAC8B,IAAtCH,EAAQI,0BAGRrB,EAAU/M,EAAAA,cAACgN,EAAAA,GAAc,CAAClJ,MAAO4F,KAAKhN,MAAMsB,UAAUqQ,2BACnD,CAEH,MAAM,2BAAEC,EAA0B,4BAAEC,GAAgC7E,KAAKhN,MAAMsB,UACzEwQ,EAAetB,GAAAA,CAAIxD,KAAKhN,MAAO,oCAC/B+R,EAAiBvB,GAAAA,CAAIxD,KAAKhN,MAAO,2CACvC,IAAIgS,EAAiB,EAGjBA,EADsC,IAAtCV,EAAQI,0BACSJ,EAAQE,YAAcF,EAAQC,QAE9BD,EAAQI,0BAA4BJ,EAAQG,sBAGjE,MAAMQ,EAA0B,GAAGF,EAAeC,EAAeE,QAAQ,GAAIJ,KAE7ET,GAAyB,EACzBhB,EACI/M,EAAAA,cAAC6O,EAAAA,GAAe,CACZC,cAAeR,EACf1E,MAAO+E,EACPI,eAAgBR,EAChBnO,UAAU,8CAKtB,MAAO,CAAE2M,QAAAA,EAASgB,uBAAAA,KA/HZiB,EAAAA,EAAAA,IAAA,CAATC,EAAAA,IAAQ,8BA4BCD,EAAAA,EAAAA,IAAA,CAATC,EAAAA,IAAQ,oDAuGb,iGClKA,MAYA,EAZuFvS,IACnF,MAAM,2BAAEgQ,EAA0B,QAAE9P,EAAO,QAAEmQ,EAAO,MAAEhD,GAAUrN,EAEhE,OACIsD,EAAAA,cAACC,EAAAA,OAAMC,OAAAC,OAAA,GAAKuM,GACP9P,EACAmQ,EACAhD,wECDN,MAAMiD,EAA4DxB,IAAA,IAAC,MAAE1H,GAAO0H,EAAA,OAC/ExL,EAAAA,cAAA,QAAMI,UAAU,2CAA2C0D,IAGlD+K,EAA6DK,IAAwD,IAAvD,cAAEJ,EAAa,eAAEC,EAAc,MAAEnF,EAAK,UAAExJ,GAAW8O,EAC1H,OACIlP,EAAAA,cAAA,OAAKI,UAAWA,GACX0O,EACD9O,EAAAA,cAAA,QAAMI,UAAU,2CAA2CwJ,GAC1DmF,oFCEb,MAkBMtD,EAAoBA,CAACC,EAAwB1B,KAC/C,IAAK0B,GAAgC,IAApBA,EAASjK,OACtB,OAAO,KAEX,MAAMkK,EAAuC,GACvCC,GAAUC,EAAAA,EAAAA,kBAAiB,QAAS7B,EAAmB,IAiB7D,OAfA0B,EAAS1D,SAAQ,CAAC8D,EAAMC,KACpBH,EAAQI,cAAcC,MAAQH,EAAKhL,SACnC,MAAMoL,GAAaC,EAAAA,EAAAA,wBAAuBnC,EAAmB4B,GACvDQ,EAAoC,CACtCC,UAAWP,EAAKO,UAChBjM,UAAW,yCACXU,SAAUgL,EAAKhL,SACfF,QAASkL,EAAKlL,QAAQC,eACtByL,aAAcR,EAAKQ,aACnBC,KAAM,OACNC,qBAAsBN,GAE1BP,EAAcc,KAAKL,MAGhBT,GAGX,EA3CoFH,IAK/E,IALgF,MACjFzB,EAAK,iBACLC,EAAgB,aAChBqB,EAAY,eACZF,GACHK,EACG,GAAqB,IAAjBzB,EAAMtI,OACN,OAAO,KAEX,MAAMkK,EAAgBF,EAAkB1B,EAAOC,GAC/C,OACIhK,EAAAA,cAAA,OAAKI,UAAU,2CACVuL,GAAiBA,EAAclK,OAAS,EACrCzB,EAAAA,cAAC+K,EAAAA,GAAc,CAAChB,MAAO4B,EAAeV,UAAW,CAAEI,aAAAA,EAAcF,eAAAA,KACjE,wvBCqBhB,MAAMgE,UAA+BnP,EAAAA,cAWjCsJ,YAAY5M,GACR6M,MAAM7M,GAPO,KAAA0S,0BAAgEpP,EAAAA,YA+KhE,KAAAqP,2BAA6B,KACrC3F,KAAKvF,MAAMmL,6BACZ5F,KAAKoD,SAAS,CACVwC,6BAA6B,KAKxB,KAAAC,aAAe,KAAW,IAAAC,EACvC9F,KAAKoD,SAAS,CACVwC,6BAA6B,IAEK,QAAtCE,EAAA9F,KAAK0F,0BAA0BK,eAAO,IAAAD,GAAtCA,EAAwCE,SAG3B,KAAAC,gBAAkB,KAC/BjG,KAAKoD,SAAS,CACV8C,qCAAsClG,KAAKvF,MAAMyL,uCAIxC,KAAAC,gBAAmBC,IAChCpG,KAAKoD,SAAS,CACViD,+BAAgCD,KAIvB,KAAAE,cAAiBC,IAC9BvG,KAAKoD,SAAS,CACVoD,6BAA8BD,KAIrB,KAAAE,gCAAmCC,IAChD1G,KAAKoD,SAAS,CACVuD,wBAAyBD,EACzBR,qCAAqC,IAGzClG,KAAK2F,8BAGQ,KAAAiB,kBAAoB,KAAK,IAAAC,EAAAC,EACtC,MAAMC,EAAW/G,KAAKhN,MAAMyB,KAAKuS,oBAAoBrS,OAC/CsS,GAA8C,QAAlCJ,EAAA7G,KAAKhN,MAAMyB,KAAKyS,0BAAkB,IAAAL,GAAQ,QAARA,EAAlCA,EAAoClS,cAAM,IAAAkS,OAAA,EAA1CA,EAA4CI,YAAa,GAErEE,EAA4C,CAC9CC,SAAU,IAAIC,KAAKrH,KAAKvF,MAAM4L,gCAC9BiB,OAAQ,IAAID,KAAKrH,KAAKvF,MAAM+L,8BAC5Be,sBAAuBvH,KAAKvF,MAAMkM,wBAClCa,gBAAiBP,EACjBQ,oBAAqBV,EAASW,MAC9BC,kBAAmBC,EAAAA,qCAAqCF,OAGtDpS,EAAU,CAAEuS,cAAe7H,KAAKhN,MAAMsC,QAAQwS,eAEpDC,EAAAA,gCAAAA,6BAA6DzS,EAAS2R,EAAWE,GAEjFnH,KAAKoD,SAAS,CACVwC,6BAA6B,IAGK,QAAtCkB,EAAA9G,KAAK0F,0BAA0BK,eAAO,IAAAe,GAAtCA,EAAwCd,SAtOxChG,KAAKM,kBAAmBC,EAAAA,EAAAA,oBACpBP,KAAKhN,MAAMsC,QAAQC,QAAQiL,kBAC3BR,KAAKhN,MAAMyN,aACXT,KAAKhN,MAAM0N,WAEfV,KAAKvF,MAAQ,CACTmL,6BAA6B,EAC7BS,+BAAgC,GAChCG,6BAA8B,GAC9BN,qCAAqC,EACrCS,yBAAyB,EACzBqB,+BAA+B,IAAIX,MAAOY,cAAcpS,MAAM,KAAK,IAjBjE,gCACN,MAAqD,KAA9CmK,KAAKvF,MAAM4L,gCAAqF,KAA5CrG,KAAKvF,MAAM+L,6BAoBnE7F,SACH,MAAMoG,EAAWmB,GAAAA,CAAIlI,KAAKhN,MAAO,mCAC3BsR,EAA4B4D,GAAAA,CAAIlI,KAAKhN,MAAO,uBAClD,GAAI,CAAC+T,EAAUzC,GAASlO,cAAS+R,GAE7B,OADAnI,KAAKhN,MAAMsC,QAAQoL,UAAUtG,MAAM,wDAC5B,KAGX,MAAM,OAAEtG,EAAM,UAAEQ,EAAS,QAAEgB,GAAY0K,KAAKhN,OACtC,QAAEE,GAAYY,GACd,4BACFsU,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,GACA9U,GAEE,4BACFsR,EAA2B,+BAC3BS,EAA8B,6BAC9BG,EAA4B,8BAC5BwB,GACAhI,KAAKvF,MAEH4O,EAAgBtC,EAASuC,cACzBC,EAAYvJ,KAAKwJ,gBAAgB,IAAInC,KAAKN,EAAS0C,kBACnD7Q,EAAO,GAAGmO,EAAS2C,aAAa3C,EAAS4C,WAC/C,IAAI3E,EAAiB,EACjB4E,EAAyB,EACzBC,EAAS,EAE6B,IAAtCvF,EAAQI,2BACRM,EAAiBV,EAAQE,YAAcF,EAAQC,QAC/CqF,EAAyBtF,EAAQC,QACjCsF,EAASvF,EAAQC,QAAUD,EAAQE,cAEnCQ,EAAiBV,EAAQI,0BAA4BJ,EAAQG,sBAC7DmF,EAAyBtF,EAAQG,sBACjCoF,EAASvF,EAAQG,sBAAwBH,EAAQI,2BAGrD,MAAMoF,EAAeD,EAAS,EAAI7J,KAAK+J,gBAAgBF,GAAU,KAC3DG,EAAkBhK,KAAK+J,gBAAgB/E,GACvCiF,EAAcjK,KAAK+J,gBAAgBH,GACnCM,EAAW7I,EAAAA,GAAoB,OAAQ/L,EAAQwS,gBAAkB,GACjErS,EAAesR,EAASW,MACxB9D,GAAYC,EAAAA,EAAAA,IAAiB7D,KAAKhN,MAAMsC,QAAQC,SAGhD4U,EAFavG,GAAamD,EAASqD,WAGrC9T,EAAAA,cAAC+T,EAAAA,GAA2B,CACxBC,gBAAiBtK,KAAK0F,0BACtBhP,UAAU,8BACV6T,mBAAoBvK,KAAKyG,gCACzBkC,4BAA6BA,EAC7B6B,iBAAkBxK,KAAKiG,gBACvBwE,mBAAoBvB,EACpBC,sBAAuBA,EACvBuB,kBAAmB1K,KAAKvF,MAAMyL,sCAGlCtC,GACItN,EAAAA,cAACqU,EAAAA,GAAS,CACNL,gBAAiBtK,KAAK0F,0BACtBhP,UAAU,8BACV6T,mBAAoBvK,KAAK2F,2BACzBgD,4BAA6BA,IAKnCxH,EAASC,EAAAA,EAAA,GACRpB,KAAKhN,OAAK,IACbE,QAASoD,EAAAA,cAAC6N,EAAAA,QAAO,CAACxO,KAAMzC,EAAQyC,KAAM2L,IAAKpO,EAAQoO,MACnD+G,sBACI/R,EAAAA,cAAC6N,EAAAA,QAAO,CAAC7C,IAAG,KAAiB3L,KAAM0S,EAAuB3R,UAAU,iDAExEkU,cACItU,EAAAA,cAACuU,EAAAA,GAAa,CAACjS,KAAMA,EAAMyQ,cAAeA,EAAeE,UAAWA,EAAWhB,oBAAqBA,IAExGuC,cAAexU,EAAAA,cAACyU,EAAAA,GAAa,CAACf,gBAAiBA,EAAiBxB,qBAAsBA,IACtFJ,4BACI9R,EAAAA,cAAC6N,EAAAA,QAAO,CACJ7C,IAAG,KACH3L,KAAMyS,EACN1R,UAAU,wDAGlBsT,gBAAiB1T,EAAAA,cAAC0U,EAAAA,GAAwB,CAACxC,qBAAsBA,EAAsBwB,gBAAiBA,IACxGC,YAAa3T,EAAAA,cAAC2U,EAAAA,GAAoB,CAACxC,iBAAkBA,EAAkBwB,YAAaA,IACpFH,aAAcxT,EAAAA,cAAC4U,EAAAA,GAAqB,CAACxC,kBAAmBA,EAAmBoB,aAAcA,IACzFqB,WAAY7U,EAAAA,cAAC8U,EAAAA,GAAU,CAACC,MAAO/C,EAAoBlG,KAAM8H,EAAU5J,iBAAkBN,KAAKM,mBAC1FgL,QAASnB,EACToB,sBAAuB3H,GACnBtN,EAAAA,cAACkV,EAAAA,GAAqB,CAClBC,MAAOhW,EACPiW,YAAa9F,EACb+F,OAAQ3L,KAAK6F,aACb+F,eAAgBvF,EAChBwF,aAAcrF,EACdsF,iBAAkB9L,KAAKmG,gBACvB4F,eAAgB/L,KAAKsG,cACrB0F,iBAAkBhM,KAAKiM,0BACvBrD,iBAAkBA,EAClBC,iBAAkBA,EAClBC,cAAeA,EACfC,YAAaA,EACbC,mBAAoBA,EACpBC,YAAaA,EACbiD,gBAAiBlM,KAAK4G,kBACtBlQ,UAAU,8BACVyV,aAAa,GACbC,kBAAkB,GAClBhD,eAAgBA,EAChBiD,cAAerE,MAK3B,OAAOhI,KAAKhN,MAAM6O,WAAWV,GAGzB4I,gBAAgBuC,GACpB,MAAMxH,EAAeoD,GAAAA,CAAIlI,KAAKhN,MAAO,oCAGrC,MAAO,GAFgBkV,GAAAA,CAAIlI,KAAKhN,MAAO,0CAE7B+R,CAAeuH,EAASpH,QAAQ,GAAIJ,KAG1C0E,gBAAgB3Q,GAOpB,OANiB,IAAI0T,KAAKC,eAAexM,KAAKhN,MAAMsC,QAAQwS,cAAcrG,eAAegL,OAAQ,CAC7FC,MAAO,OACPC,IAAK,UACLC,KAAM,YAGM1L,OAAOrI,KA1KjByM,EAAAA,EAAAA,IAAA,CAATC,EAAAA,IAAQ,8CAgPb,2FC3SA,QAAgBvS,IACZ,MAAM,QACFE,EAAO,sBACPmV,EAAqB,4BACrBD,EAA2B,cAC3BwC,EAAa,cACbE,EAAa,oBACb+B,EAAmB,oBACnBC,EAAmB,WACnB3B,EAAU,QACVG,EAAO,sBACPC,EAAqB,gBACrBvB,EAAe,YACfC,EAAW,aACXH,GACA9W,EAEJ,OACIsD,EAAAA,cAACwB,EAAAA,KAAI,CAACpB,UAAU,+BACXxD,EACAqY,EACAD,EACAjD,EACD/R,EAAAA,cAAA,WAASI,UAAU,wCACdkU,EACAE,GAEJ1C,EACD9R,EAAAA,cAAA,WAASI,UAAU,4FACdmW,EACAC,EACA9C,EACAC,EACAH,GAEJqB,wKChBN,MAAMR,EAAsD7I,IAK9D,IAL+D,UAChEpL,EAAS,mBACT6T,EAAkB,4BAClB5B,EAA2B,gBAC3B2B,GACHxI,EACG,MAAMiL,OAAuC5E,IAApBmC,EAAgCA,EAAkBhU,EAAAA,YAC3E,OACIA,EAAAA,cAAA,OAAKI,UAAWA,GACZJ,EAAAA,cAAC0W,EAAAA,OAAM,CAACtW,UAAW,GAAGA,8BAAuCuW,SAAUF,EAAkBnQ,QAAS2N,GAC7F5B,KAMJ0B,EAAqE7E,IAW7E,IAX8E,UAC/E9O,EAAS,mBACT6T,EAAkB,4BAClB5B,EAA2B,iBAC3B6B,EAAgB,kBAChB0C,EAAiB,qBACjBC,EAAoB,mBACpB1C,EAAkB,sBAClBtB,EAAqB,kBACrBuB,EAAiB,gBACjBJ,GACH9E,EACG,MAAM4H,EAA0B9W,EAAAA,aAAkB,KAC9CiU,GAAmB,KACpB,CAACA,IAEE8C,EAAkB/W,EAAAA,aAAkB,KACtCiU,GAAmB,KACpB,CAACA,IAEE+C,EAA0BhX,EAAAA,aAAkB,KAC9C4W,MAAAA,GAAAA,MACD,CAACA,IAEEH,OAAuC5E,IAApBmC,EAAgCA,EAAkBhU,EAAAA,YACrEiX,EAAiC,iCAAiCC,EAAAA,OAAOC,KAAKC,iBACpF,OACIpX,EAAAA,cAAA,OAAKI,UAAW,GAAGA,eACfJ,EAAAA,cAAC0W,EAAAA,OAAM,CACHtW,UACIgU,EACM,GAAGhU,wCACH,GAAGA,0CAEbkG,QAAS4N,EACTyC,SAAUF,EAAgB,gBACZ,OAAM,gBACLrC,EACfiD,GAAIJ,GAEJjX,EAAAA,cAAA,QAAMI,UAAW,GAAGA,4CAAqDiS,IAE7ErS,EAAAA,cAACsX,EAAAA,QAAO,mBACaL,EACjB7W,UAAW,GAAGA,+CACdmX,OAAQnD,EACRoD,UAAU,SACV7N,OAAQ8M,EACRpB,OAAQnB,EACR3H,KAAK,UAAS,eACA6H,GAEdpU,EAAAA,cAAC0W,EAAAA,OAAM,CACHpQ,QAASwQ,EACT1W,UAAW,GAAGA,8CACdmM,KAAK,UAEJ4H,GAELnU,EAAAA,cAAC0W,EAAAA,OAAM,CAACpQ,QAASyQ,EAAiB3W,UAAW,GAAGA,8CAAuDmM,KAAK,UACvGsG,GAEJgE,GACG7W,EAAAA,cAAC0W,EAAAA,OAAM,CACHpQ,QAAS0Q,EACT5W,UAAW,GAAGA,8CACdmM,KAAK,UAEJsK,MC9EZ3B,EAAsE1J,IAqB9E,IArB+E,UAChFpL,EAAS,MACT+U,EAAK,YACLC,EAAW,OACXC,EAAM,eACNC,EAAc,aACdC,EAAY,iBACZC,EAAgB,eAChBC,EAAc,iBACdC,EAAgB,iBAChBpD,EAAgB,iBAChBC,EAAgB,cAChBC,EAAa,YACbC,EAAW,mBACXC,EAAkB,YAClBC,EAAW,gBACXiD,EAAe,aACfC,EAAY,kBACZC,EAAiB,eACjBhD,EAAc,cACdiD,GACHvK,EACG,MAAMiM,EAAwBzX,EAAAA,aACzByJ,IACG,MAAMG,EAAQH,EAAME,OAAOC,MAE3B4L,EAAiB5L,KAErB,CAAC4L,IAGCkC,EAAsB1X,EAAAA,aACvByJ,IACG,MAAMG,EAAQH,EAAME,OAAOC,MAE3B6L,EAAe7L,KAEnB,CAAC6L,IAOCkC,EAAiB3X,EAAAA,aAClByJ,IACOmO,EAAAA,iBAAiBC,WAAWpO,EAAME,OAAO+F,QAAUjG,EAAME,OAAOC,QAAU0L,GAC1E7L,EAAME,OAAO+F,UAGrB,CAAC4F,IAOCwC,EAAe9X,EAAAA,aAChByJ,IACOmO,EAAAA,iBAAiBC,WAAWpO,EAAME,OAAO+F,QAAUjG,EAAME,OAAOC,QAAU2L,GAC1E9L,EAAME,OAAO+F,UAGrB,CAAC6F,IAGL,OACIvV,EAAAA,cAAC+X,EAAAA,MAAK,CACF3X,UAAU,2BACVmX,OAAQnC,EACR4C,mBAAmB,SACnBC,iBAAiB,SACjBC,WAAS,EACTC,MAAM,EACN9C,OAAQA,EAAM,aACFvC,GAEZ9S,EAAAA,cAACoY,EAAAA,YAAW,CAAC/C,OAAQA,GAAS/C,GAC9BtS,EAAAA,cAACqY,EAAAA,UAAS,KACLxC,GACG7V,EAAAA,cAAA,WACIA,EAAAA,cAAA,SAAOI,UAAW,GAAGA,sBAA+B0V,GACpD9V,EAAAA,cAAA,WACAA,EAAAA,cAAA,OAAKI,UAAW,GAAGA,mBAA4ByV,IAGvD7V,EAAAA,cAAA,SAAOsY,QAAQ,cAAclY,UAAW,GAAGA,sBACtCmS,GAELvS,EAAAA,cAAA,OAAKqX,GAAG,cAAcjX,UAAW,GAAGA,kBAC/B+U,GAELnV,EAAAA,cAAA,WACIA,EAAAA,cAAA,OAAKI,UAAW,GAAGA,iCACfJ,EAAAA,cAAA,SAAOsY,QAAQ,oBAAoB9F,GACnCxS,EAAAA,cAAA,SACIqX,GAAG,mBACHkB,KAAK,OACL3O,MAAO0L,EACPkD,OAAQb,EACRc,SAAUhB,EACViB,IAAKnD,GAA8BQ,EACnC3V,UAAW,GAAGA,kCAGtBJ,EAAAA,cAAA,OAAKI,UAAW,GAAGA,+BACfJ,EAAAA,cAAA,SAAOsY,QAAQ,kBAAkB7F,GACjCzS,EAAAA,cAAA,SACIqX,GAAG,iBACHkB,KAAK,OACL3O,MAAO2L,EACPiD,OAAQV,EACRW,SAAUf,EACViB,IAAKrD,EACLoD,IAAK3C,EACL3V,UAAW,GAAGA,oCAK9BJ,EAAAA,cAAC4Y,EAAAA,YAAW,KACR5Y,EAAAA,cAAA,UACII,UAAW,GAAGA,2BACdkG,QAASsP,EACTiD,UAAWnD,EAAgB,iBACXA,GAEfhD,GAEJ,IACD1S,EAAAA,cAAA,UAAQI,UAAW,GAAGA,2BAAoCkG,QAAS+O,GAC9D1C,MClGR4B,EAAyC/I,IAAA,IAAC,KAAElJ,EAAI,cAAEyQ,EAAa,oBAAEd,EAAmB,UAAEgB,GAAWzH,EAAA,OAC1GxL,IAAAA,cAAA,OAAKI,UAAU,iDACXJ,IAAAA,cAAA,UAAKsC,GACLtC,IAAAA,cAAA,OAAKI,UAAU,+CAA6C,IAAG2S,GAC/D/S,IAAAA,cAAA,OAAKI,UAAU,2CACV6R,EAAmB,IAAGgB,KAKtBwB,EAA0CvF,IAAA,IAAC,gBAAEwE,EAAe,qBAAExB,GAAsBhD,EAAA,OAC7FlP,IAAAA,cAAA,OAAKI,UAAU,gDACXJ,IAAAA,cAAA,OAAKI,UAAU,uDAAuD8R,GACtElS,IAAAA,cAAA,OAAKI,UAAU,wDAAwDsT,KA2BlEgB,EAAoEoE,IAAA,IAAC,qBAAE5G,EAAoB,gBAAEwB,GAAiBoF,EAAA,OACvH9Y,IAAAA,cAAA,OAAKI,UAAU,wDACXJ,IAAAA,cAAA,OAAKI,UAAU,uDACXJ,IAAAA,cAAA,OAAKI,UAAU,uDAAuD8R,IAE1ElS,IAAAA,cAAA,OAAKI,UAAU,uDACXJ,IAAAA,cAAA,OAAKI,UAAU,uDAAuDsT,MAYrEiB,EAA4DoE,IAAA,IAAC,iBAAE5G,EAAgB,YAAEwB,GAAaoF,EAAA,OACvG/Y,IAAAA,cAAA,OAAKI,UAAU,wDACXJ,IAAAA,cAAA,OAAKI,UAAU,uDACXJ,IAAAA,cAAA,OAAKI,UAAU,mDAAmD+R,IAEtEnS,IAAAA,cAAA,OAAKI,UAAU,uDACXJ,IAAAA,cAAA,OAAKI,UAAU,mDAAmDuT,MAYjEiB,EAA8DoE,IAAA,IAAC,kBAAE5G,EAAiB,aAAEoB,GAAcwF,EAAA,OAC3GhZ,IAAAA,cAAA,OAAKI,UAAU,wDACVoT,GACGxT,IAAAA,cAAA,OAAKI,UAAU,uDACXJ,IAAAA,cAAA,OAAKI,UAAU,oDAAoDgS,IAG3EpS,IAAAA,cAAA,OAAKI,UAAU,uDACVoT,GAAgBxT,IAAAA,cAAA,OAAKI,UAAU,oDAAoDoT,MAInFsB,EAAoCmE,IAAsC,IAArC,KAAEnN,EAAI,MAAEiJ,EAAK,iBAAE/K,GAAkBiP,EAC/E,MAAMrN,GAAUC,EAAAA,EAAAA,kBAAiB,QAAS7B,EAAmBkP,EAAAA,kBAAkBC,gBACzEjN,GAAaC,EAAAA,EAAAA,wBAAuBnC,EAAmB4B,GAC7D,OACI5L,IAAAA,cAAA,IAAAE,OAAAC,OAAA,CAAGC,UAAU,wCAAwCG,KAAMuL,GAAUI,GAChE6I,8ICtJN,MAAMqE,EAA0E5N,IAAA,IAAC,YAAEb,GAAaa,EAAA,OACnGxL,EAAAA,cAAA,KAAGI,UAAU,wCAAwCuK,ICwBnDc,EAAoBA,CAACC,EAAwB1B,KAC/C,IAAK0B,GAAgC,IAApBA,EAASjK,OACtB,OAAO,KAEX,MAAMkK,EAAuC,GACvCC,GAAUC,EAAAA,EAAAA,kBAAiB,QAAS7B,EAAmB,IAgB7D,OAfA0B,EAAS1D,SAAQ,CAAC8D,EAAMC,KACpBH,EAAQI,cAAcC,MAAQH,EAAKhL,SACnC,MAAMoL,GAAaC,EAAAA,EAAAA,wBAAuBnC,EAAmB4B,GACvDQ,EAAoC,CACtCC,UAAWP,EAAKO,UAChBjM,UAAW,gCACXU,SAAUgL,EAAKhL,SACfF,QAASkL,EAAKlL,QAAQC,eACtByL,aAAcR,EAAKQ,aACnBC,KAAM,OACNC,qBAAsBN,GAE1BP,EAAcc,KAAKL,MAGhBT,GAGX,EAtCoEH,IAA8D,IAA7D,MAAEzB,EAAK,iBAAEC,EAAgB,eAAEmB,EAAc,aAAEE,GAAcG,EAC1H,GAAqB,IAAjBzB,EAAMtI,OACN,OAAO,KAEX,MAAMkK,EAAgBF,EAAkB1B,EAAOC,GAC/C,OACIhK,EAAAA,cAAA,OAAKI,UAAU,kCACVuL,GAAiBA,EAAclK,OAAS,EACrCzB,EAAAA,cAAC+K,EAAAA,GAAc,CAAChB,MAAO4B,EAAeV,UAAW,CAAEI,aAAAA,EAAcF,eAAAA,KACjE,4kBCHhB,MAAMkO,UAA2BrZ,EAAAA,cAG7BsJ,YAAY5M,GACR6M,MAAM7M,GA6DH,KAAA8M,oBAAuBC,GAA0CC,KAAKhN,MAAMc,OAAOZ,QAAQyC,KAAOoK,EAAME,OAAOC,MAE/G,KAAAC,qBAAwBC,GAAuBL,IAC9CC,KAAKhN,MAAMc,OAAOuM,OAASL,KAAKhN,MAAMc,OAAOuM,MAAMD,KACnDJ,KAAKhN,MAAMc,OAAOuM,MAAMD,GAAWhJ,SAAW2I,EAAME,OAAOC,QAhE/DF,KAAKM,kBAAmBC,EAAAA,EAAAA,oBACpBP,KAAKhN,MAAMsC,QAAQC,QAAQiL,kBAC3BR,KAAKhN,MAAMyN,aACXT,KAAKhN,MAAM0N,WAIZC,SAAM,IAAAiP,EACT,MAAM,OACF9b,EAAM,KACNW,EAAI,UACJH,EACAgB,SACIua,kBAAkB,eACd9K,EAAc,aAGdD,KAGR9E,KAAKhN,OACH,UAAE0D,EAAS,QAAExD,EAAO,MAAEmN,GAAUvM,GAChC,8BAAEgc,GAAkCxb,EAGpCyb,EAAyChL,IADM,QAA3B6K,EAAAnb,EAAKub,gBAAgBrb,cAAM,IAAAib,OAAA,EAA3BA,EAA6BK,qBAAsB,GACG/K,QAAQ,GAAIJ,GAEtF7D,EAAc8O,IAAsB7O,EAAAA,EAAAA,QAAO4O,EAA+BC,GAE1E5O,EAASC,EAAAA,EAAA,GACRpB,KAAKhN,OAAK,IACb0D,UAAAA,EACAiZ,mBAAoB,CAChBnb,YAAawL,KAAKhN,MAClB0D,UAAWO,GAAAA,CAAW,0BAA2BnD,EAAO4C,YAE5DxD,QAASA,GAAWA,EAAQyC,MACxBW,EAAAA,cAAC+K,EAAAA,GAAa,CACV3K,UAAU,mCACV4K,IAAKpO,EAAQoO,KAAO,KACpB3L,KAAMzC,EAAQyC,KACd4L,UAAW,CAAEC,OAAQxB,KAAKF,oBAAqB2B,eAAgBzB,KAAKhN,MAAMsC,QAAQC,WAG1F8K,MAAOA,GAASA,EAAMtI,OAAS,GAC3BzB,EAAAA,cAACoL,EAAclL,OAAAC,OAAA,GACP,CACA4J,MAAAA,EACAsB,aAAc3B,KAAKG,qBACnBsB,eAAgBzB,KAAKhN,MAAMsC,QAAQC,QACnC+K,iBAAkBN,KAAKM,oBAInCW,YAAaA,GAAe3K,EAAAA,cAACoZ,EAA6B,CAACzO,YAAaA,MAG5E,OAAOjB,KAAKhN,MAAM6O,WAAWV,IAYrC,wGC5FA,QAAgBnO,IACZ,MAAM,mBAAE2c,EAAkB,QAAEzc,EAAO,YAAE+N,EAAW,MAAEZ,GAAUrN,EAE5D,OACIsD,EAAAA,cAACC,EAAAA,OAAMC,OAAAC,OAAA,GAAKkZ,GACPzc,EACA+N,EACAZ,kJCWb,MAaM0B,EAAoBA,CAACC,EAAwB1B,KAC/C,IAAK0B,GAAgC,IAApBA,EAASjK,OACtB,OAAO,KAEX,MAAMkK,EAAuC,GACvCC,GAAUC,EAAAA,EAAAA,kBAAiB,QAAS7B,EAAmB,IAgB7D,OAfA0B,EAAS1D,SAAQ,CAAC8D,EAAMC,KACpBH,EAAQI,cAAcC,MAAQH,EAAKhL,SACnC,MAAMoL,GAAaC,EAAAA,EAAAA,wBAAuBnC,EAAmB4B,GACvDQ,EAAoC,CACtCC,UAAWP,EAAKO,UAChBjM,UAAW,gCACXU,SAAUgL,EAAKhL,SACfF,QAASkL,EAAKlL,QAAQC,eACtByL,aAAcR,EAAKQ,aACnBC,KAAM,OACNC,qBAAsBN,GAE1BP,EAAcc,KAAKL,MAGhBT,GAGX,EArCoEH,IAA8D,IAA7D,MAAEzB,EAAK,iBAAEC,EAAgB,aAAEqB,EAAY,eAAEF,GAAgBK,EAC1H,GAAqB,IAAjBzB,EAAMtI,OACN,OAAO,KAEX,MAAMkK,EAAgBF,EAAkB1B,EAAOC,GAC/C,OACIhK,EAAAA,cAAA,OAAKI,UAAU,kCACVuL,GAAiBA,EAAclK,OAAS,EACrCzB,EAAAA,cAAC+K,EAAAA,GAAc,CAAChB,MAAO4B,EAAeV,UAAW,CAAEI,aAAAA,EAAcF,eAAAA,KACjE,4kBCRhB,MAAMyO,UAA2B5Z,EAAAA,cAG7BsJ,YAAY5M,GACR6M,MAAM7M,GAiEH,KAAA8M,oBAAuBC,GAA0CC,KAAKhN,MAAMc,OAAOZ,QAAQyC,KAAOoK,EAAME,OAAOC,MAE/G,KAAAC,qBAAwBC,GAAuBL,IAC9CC,KAAKhN,MAAMc,OAAOqc,gBAAkBnQ,KAAKhN,MAAMc,OAAOsc,eACtDpQ,KAAKhN,MAAMc,OAAOsc,aAAerQ,EAAME,OAAOC,QApElDF,KAAKM,kBAAmBC,EAAAA,EAAAA,oBACpBP,KAAKhN,MAAMsC,QAAQC,QAAQiL,kBAC3BR,KAAKhN,MAAMyN,aACXT,KAAKhN,MAAM0N,WAIZC,SACH,MAAM,OAAE7M,EAAM,KAAEW,EAAI,UAAEH,EAAS,QAAEgB,GAAY0K,KAAKhN,OAC5C,UAAE0D,EAAS,QAAExD,EAAO,eAAEid,EAAc,oBAAEE,EAAmB,aAAED,EAAY,kBAAEE,GAAsBxc,GAC/F,sBAAEyc,EAAqB,4BAAEC,GAAgClc,GACzD,YAAEI,GAAgBD,EAExB,IAAIwM,EAAcsP,EACd1S,EAAMwD,EAAAA,GAAoB,cAAe/L,EAAQwS,gBAAkB,GACvE,MAAM1F,EAAO,CAAEhL,SAAU+Y,EAAgBjZ,QAAS,CAAEC,eAAgB0G,GAAO8E,UAAW0N,GAEtF,GAAI3b,GAAeA,EAAYC,QAAUD,EAAYC,OAAO8b,WAAY,CACpE,MAAMC,EAAmB,EACzB,IAAIrd,EAAS,EAETqB,EAAYC,OAAOgc,cAAgBjc,EAAYC,OAAOgc,aAAa5Y,OAAS,GAC5ErD,EAAYC,OAAOgc,aAAarS,SAASsS,IACrCvd,GAAUud,EAAYC,gBAG9BzO,EAAKO,UAAY2N,EACjBlO,EAAKhL,SAAWgZ,EAChBvS,EAAMwD,EAAAA,GAAoB,UAAW/L,EAAQwS,gBAAkB,GAC/D1F,EAAKlL,QAAQC,eAAiB0G,EAC9BoD,GAAcC,EAAAA,EAAAA,QAAOsP,EAA6Bnd,EAAO6R,QAAQwL,IAGrE,MAAMvP,EAASC,EAAAA,EAAA,GACRpB,KAAKhN,OAAK,IACb0D,UAAAA,EACAwZ,mBAAoB,CAChB1b,YAAawL,KAAKhN,MAClB0D,UAAWO,GAAAA,CAAW,0BAA2BnD,EAAO4C,YAE5DxD,QAASA,GACLoD,EAAAA,cAAC+K,EAAAA,GAAa,CACV3K,UAAU,mCACV4K,IAAKpO,EAAQoO,KAAO,KACpB3L,KAAMzC,EAAQyC,KACd4L,UAAW,CAAEC,OAAQxB,KAAKF,oBAAqB2B,eAAgBzB,KAAKhN,MAAMsC,QAAQC,WAG1F8K,MACI/J,EAAAA,cAACoL,EAAclL,OAAAC,OAAA,GACP,CACA4J,MAAO,CAAC+B,GACRT,aAAc3B,KAAKG,qBACnBsB,eAAgBzB,KAAKhN,MAAMsC,QAAQC,QACnC+K,iBAAkBN,KAAKM,oBAInCW,YAAa3K,EAAAA,cAACsL,EAAAA,EAAoB,CAACX,YAAaA,MAGpD,OAAOjB,KAAKhN,MAAM6O,WAAWV,IAYrC,uGCjGA,MAYA,EAZuEnO,IACnE,MAAM,mBAAEkd,EAAkB,QAAEhd,EAAO,YAAE+N,EAAW,MAAEZ,GAAUrN,EAE5D,OACIsD,EAAAA,cAACC,EAAAA,OAAMC,OAAAC,OAAA,GAAKyZ,GACPhd,EACA+N,EACAZ,oECLb,MAIA,EAJiFyB,IAAA,IAAC,YAAEb,GAAaa,EAAA,OAC7FxL,EAAAA,cAAA,KAAGI,UAAU,wCAAwCuK,uKCFlD,MAAM6P,EAAwFhP,IAAA,IAAC,YAAEb,GAAaa,EAAA,OACjHxL,EAAAA,cAAA,KAAGI,UAAU,gDAAgDuK,ICUpD8P,EAA4EjP,IAKpF,IALqF,MACtFzB,EAAK,aACLsB,EAAY,iBACZrB,EAAgB,eAChBmB,GACHK,EACG,GAAqB,IAAjBzB,EAAMtI,OACN,OAAO,KAEX,MAAMkK,EAAgBF,EAAkB1B,EAAOC,GAC/C,OACIhK,EAAAA,cAAA,OAAKI,UAAU,0CACVuL,GAAiBA,EAAclK,OAAS,EACrCzB,EAAAA,cAAC+K,EAAAA,GAAc,CAAChB,MAAO4B,EAAeV,UAAW,CAAEI,aAAAA,EAAcF,eAAAA,KACjE,OAKVM,EAAoBA,CAACC,EAAwB1B,KAC/C,IAAK0B,GAAgC,IAApBA,EAASjK,OACtB,OAAO,KAEX,MAAMkK,EAAuC,GACvCC,GAAUC,EAAAA,EAAAA,kBAAiB,QAAS7B,EAAmB,IAgB7D,OAfA0B,EAAS1D,SAAQ,CAAC8D,EAAMC,KACpBH,EAAQI,cAAcC,MAAQH,EAAKhL,SACnC,MAAMoL,GAAaC,EAAAA,EAAAA,wBAAuBnC,EAAmB4B,GACvDQ,EAAoC,CACtCC,UAAWP,EAAKO,UAChBjM,UAAW,wCACXU,SAAUgL,EAAKhL,SACfF,QAASkL,EAAKlL,QAAQC,eACtByL,aAAcR,EAAKQ,aACnBC,KAAM,OACNC,qBAAsBN,GAE1BP,EAAcc,KAAKL,MAGhBT,wkBClCJ,MAAM+O,UAAkC1a,EAAAA,cAG3CsJ,YAAY5M,GACR6M,MAAM7M,GAqDH,KAAA8M,oBAAuBC,IAC1BC,KAAKhN,MAAMc,OAAOZ,QAAQyC,KAAOoK,EAAME,OAAOC,OAG3C,KAAAC,qBAAwBC,GAAuBL,IAC9CC,KAAKhN,MAAMc,OAAOuM,OAASL,KAAKhN,MAAMc,OAAOuM,MAAMD,KACnDJ,KAAKhN,MAAMc,OAAOuM,MAAMD,GAAWhJ,SAAW2I,EAAME,OAAOC,QA1D/DF,KAAKM,kBAAmBC,EAAAA,EAAAA,oBACpBP,KAAKhN,MAAMsC,QAAQC,QAAQiL,kBAC3BR,KAAKhN,MAAMyN,aACXT,KAAKhN,MAAM0N,WAIZC,SACH,MAAM,OAAE7M,EAAM,UAAEQ,EAAS,KAAEG,GAASuL,KAAKhN,MAEzC,IAAKgN,KAAKhN,MAAMsC,QAAQC,QAAQ0b,OAAOC,YAAarN,EAAAA,EAAAA,IAAiB7D,KAAKhN,MAAMsC,QAAQC,SACpF,OAAOe,EAAAA,cAAAA,EAAAA,SAAA,MAGX,MAAM,UAAEI,EAAS,QAAExD,EAAO,MAAEmN,GAAUvM,GAChC,qCAAEqd,GAAyC7c,EAC3CoD,EAAiBjD,EAAKiD,eAEtB0Z,IAAuB1Z,MAAAA,OAAc,EAAdA,EAAgB/C,SAAU,IAAIoD,OACrDkJ,GAAcC,EAAAA,EAAAA,QAAOiQ,EAAsCC,GAE3DjQ,EAASC,EAAAA,EAAA,GACRpB,KAAKhN,OAAK,IACb0D,UAAAA,EACAsa,0BAA2B,CACvBxc,YAAawL,KAAKhN,MAClB0D,UAAWO,GAAAA,CAAW,kCAAmCnD,EAAO4C,YAEpExD,QAASA,GAAWA,EAAQyC,MACxBW,EAAAA,cAAC+K,EAAAA,GAAa,CACV3K,UAAU,2CACV4K,IAAKpO,EAAQoO,IACb3L,KAAMzC,EAAQyC,KACd4L,UAAW,CAAEC,OAAQxB,KAAKF,oBAAqB2B,eAAgBzB,KAAKhN,MAAMsC,QAAQC,WAG1F8K,MAAOA,GAASA,EAAMtI,OAAS,GAC3BzB,EAAAA,cAACya,EAA8Bva,OAAAC,OAAA,GACvB,CACA4J,MAAAA,EACAsB,aAAc3B,KAAKG,qBACnBsB,eAAgBzB,KAAKhN,MAAMsC,QAAQC,QACnC+K,iBAAkBN,KAAKM,oBAInCW,YAAa3K,EAAAA,cAACwa,EAAoC,CAAC7P,YAAaA,MAGpE,OAAOjB,KAAKhN,MAAM6O,WAAWV,IAcrC,uGCtFA,MAYA,EAZqFnO,IACjF,MAAM,0BAAEge,EAAyB,QAAE9d,EAAO,YAAE+N,EAAW,MAAEZ,GAAUrN,EAEnE,OACIsD,EAAAA,cAACC,EAAAA,OAAMC,OAAAC,OAAA,GAAKua,GACP9d,EACA+N,EACAZ,kyBCoDb,IAAMgR,EAAN,cAAiC/a,EAAAA,UAkB7BsJ,YAAY5M,GACR6M,MAAM7M,GAlBO,KAAAse,gBAA0B,0BAkGpC,KAAAxR,oBAAuBC,GAA0CC,KAAKhN,MAAMc,OAAOZ,QAAQyC,KAAOoK,EAAME,OAAOC,MAE/G,KAAAqR,gBAAmBxR,IACtB,MAAM4N,EAAK5N,EAAME,OAAO0N,GAClBzN,EAAQH,EAAME,OAAOC,MAE3B,OAAQyN,EAAGtO,eACP,IAAK,YACDW,KAAKwR,UAAYtR,EACjB,MAEJ,IAAK,UACDF,KAAKyR,QAAUvR,EACf,MAEJ,IAAK,QACDF,KAAK0R,WAAaxR,IAQvB,KAAAyR,QAAU,KACb3R,KAAK4R,mBACL5R,KAAK6R,sBAGL7R,KAAK8R,oBAAsBC,aAAY,KACnC/R,KAAKgS,gCACN,KACHC,YAAW,KACPC,cAAclS,KAAK8R,uBACpB,MAIU,KAAAE,4BAA8B,KAEvCG,QAAUA,OAAe,QAAKA,OAAe,OAA4B,2BACzED,cAAclS,KAAK8R,qBACnB9R,KAAKoS,eAAgB,IAIZ,KAAAR,iBAAmB,KAChC,MAAM,UAAEtd,GAAc0L,KAAKhN,MACrBqf,EAA2B/d,EAAU+d,0BAA4B,sCAGnEF,OAAkB,WAAKA,OAAkB,UAAmB,iBAE5DA,OAAkB,UAAmB,gBAAEna,KAClCsa,IACG,MAAMpS,EAAQoS,EAAIC,IAAMvS,KAAKwS,YAAYF,EAAIC,KAAO,GACpD,OAAQD,EAAIG,GAAGpT,eACX,IAAK,YACDW,KAAKwR,UAAYtR,EACjB,MAEJ,IAAK,UACDF,KAAKyR,QAAUvR,EACf,MAEJ,IAAK,QACDF,KAAKyL,MAAQvL,EACbF,KAAK0R,WAAaY,EAAII,IACtBJ,EAAIK,SAAWN,OAiBtB,KAAAR,oBAAsB,KACnC,MAAM,UAAEvd,GAAc0L,KAAKhN,MAG3B,GAAImf,QAAUA,OAAgB,QAAG,CAC7B,MAAMS,EAAU,CACZC,eAAgBve,EAAUwe,0BAC1BC,gBAAiBze,EAAU0e,gBAI/Bxc,OAAOC,OAAO0b,OAAgB,QAAGS,KA/KrC5S,KAAKwR,UAAY,GACjBxR,KAAKyR,QAAU,GACfzR,KAAKyL,MAAQ,GACbzL,KAAK0R,WAAauB,EAAAA,WAAWC,aAAaC,OAC1CnT,KAAKoS,eAAgB,EACrBpS,KAAKM,kBAAmBC,EAAAA,EAAAA,oBACpBP,KAAKhN,MAAMsC,QAAQC,QAAQiL,kBAC3BR,KAAKhN,MAAMyN,aACXT,KAAKhN,MAAM0N,WAIZ0S,oBACHpT,KAAK2R,UAIF0B,qBAECrT,KAAKoS,eAAiBD,QAAUA,OAAiB,UAAKA,OAAiB,SAAc,YAErFA,OAAiB,SAAc,aAIhCpO,sBACHC,EACAC,GAEA,OAAIjE,KAAKvF,QAAUwJ,GAAajE,KAAKhN,MAAMyB,OAASuP,EAAUvP,KAM3DkM,SACH,MAAM,OAAE7M,EAAM,UAAEQ,GAAc0L,KAAKhN,MAE7BmO,EAASC,EAAAA,EAAA,GACRpB,KAAKhN,OAAK,IACbsgB,UAAW,CACPC,eAAgBvT,KAAKoS,eAEzBoB,mBAAoB,CAChBhf,YAAawL,KAAKhN,MAClB0D,UAAWO,GAAAA,CAAW+I,KAAKsR,gBAAiBxd,EAAO4C,YAEvD+c,QAAS,CACLha,MAAO,CACH6H,IAAK+M,EAAAA,MACLR,QAAQ,GAEZlU,UAAW,CACP2H,IAAKqN,EAAAA,WAET+E,KAAMpd,EAAAA,cAACqd,EAAAA,EAAsC,CAACjd,UAAWsJ,KAAKsR,kBAC9DsB,QAAStc,EAAAA,cAACsd,EAAAA,EAAyC,CAACld,UAAWsJ,KAAKsR,gBAAiBsB,QAASte,EAAU0e,kBAE5Ga,mBAAoB,CAChBlG,GAAI,MACJ5R,MAAO,CAAEc,QAAS,SAEtBiX,YAAa,CACTnG,GAAI3N,KAAKoS,cAAgB,MAAQ,KACjC1b,UAAW,GAAGsJ,KAAKsR,8BAEvBpe,QAASY,EAAOZ,SAAWY,EAAOZ,QAAQyC,MACtCW,EAAAA,cAAC+K,EAAAA,GAAa7K,OAAAC,OAAA,CACVC,UAAW,GAAGsJ,KAAKsR,4BACfxd,EAAOZ,QAAO,CAClBqO,UAAW,CAAEC,OAAQxB,KAAKF,oBAAqB2B,eAAgBzB,KAAKhN,MAAMsC,QAAQC,YAG1Fwe,+BAAgC/T,KAAKgU,wBAGzC,OAAOhU,KAAKhN,MAAM6O,WAAWV,GAiFzBqR,YAAYyB,GAChB,MAAMnX,EAAIjB,SAAS0D,cAAc,OAGjC,OADAzC,EAAEJ,UAAYuX,EACiB,IAAxBnX,EAAEoX,WAAWnc,OAAe,GAAK+E,EAAEoX,WAAW,GAAGC,WAAa,GAkBjEH,sBACJ,MAAM,OAAElgB,EAAM,UAAEQ,GAAc0L,KAAKhN,MAC7BohB,EAAe,CACjBA,aAAc,CACVzG,GAAI,gBACJjX,UAAW,GAAGsJ,KAAKsR,uCAEvB+C,MAAO,CACHrU,KAAKsU,aAAa,YAAa,OAAQtU,KAAKwR,UAAWld,EAAUigB,mBAAoBjgB,EAAUkgB,oBAC/FxU,KAAKsU,aAAa,UAAW,OAAQtU,KAAKyR,QAASnd,EAAUmgB,kBAAmBngB,EAAUogB,oBAE9FC,aAAc,CACVre,EAAAA,cAACse,EAAAA,EAAgC,CAC7Bzc,IAAI,uBACJwV,GAAG,uBACHjX,UAAWsJ,KAAKsR,gBAChBsB,QAASte,EAAUugB,mCAEvBve,EAAAA,cAACse,EAAAA,EAAgC,CAC7Bzc,IAAI,iBACJwV,GAAG,iBACHjX,UAAWsJ,KAAKsR,gBAChBsB,QAASte,EAAUwgB,sBAEvBxe,EAAAA,cAACse,EAAAA,EAAgC,CAC7Bzc,IAAI,+BACJwV,GAAG,+BACHjX,UAAWsJ,KAAKsR,mBAGxByD,eAAgB,CACZre,UAAW,GAAGsJ,KAAKsR,4BAEvB0D,QAAS,CACL1e,EAAAA,cAAC2e,EAAAA,EAAiC,CAC9B9c,IAAI,WACJwV,GAAG,WACHjX,UAAW,GAAGsJ,KAAKsR,+BACnB3O,UAAWrO,EAAU4gB,oBACrBvf,KAAMrB,EAAU6gB,eAChB7U,iBAAkBN,KAAKM,mBAE3BhK,EAAAA,cAAC2e,EAAAA,EAAiC,CAC9B9c,IAAI,SACJwV,GAAG,SACHjX,UAAW,GAAGsJ,KAAKsR,iCACnB3O,UAAWrO,EAAU8gB,iBACrBzf,KAAMrB,EAAU8gB,iBAChB9U,iBAAkBN,KAAKM,oBAG/B+U,yBAA0B,CACtB3e,UAAW,GAAGsJ,KAAKsR,oDAEvBgE,gCAAiC,CAC7B3H,GAAI,kBACJjX,UAAW,GAAGsJ,KAAKsR,6CAU3B,OANIxd,EAAOyhB,WAA4B,KAAfvV,KAAKyL,OACzB2I,EAAaC,MAAMtR,KACf/C,KAAKsU,aAAa,QAAS,QAAStU,KAAKyL,MAAOnX,EAAUkhB,2BAAuBrN,EAAWnI,KAAK0R,aAIlG0C,EAGHE,aACJ3G,EACAkB,EACA3O,EACAuV,EACAC,EACAC,GAEA,MAAMjf,EAAY,GAAGsJ,KAAKsR,gCAC1B,MAAO,CACHsE,QAAS,CACLlf,UAAWO,GAAAA,CAAWP,EAAW,GAAGA,KAAaiX,IAAM,aAAc,cAEzExV,IAAKwV,EACLtC,MACI/U,EAAAA,cAACuf,EAAAA,EAAgCrf,OAAAC,OAAA,GACzB,CACAkX,GAAAA,EACAmI,MAAOnI,EACPjX,UAAAA,EACAf,KAAM8f,KAIlBd,aACIre,EAAAA,cAACse,EAAAA,EAAgCpe,OAAAC,OAAA,GACzB,CACAC,UAAWsJ,KAAKsR,gBAChBzC,KAAM,UAIlBkH,MACIzf,EAAAA,cAAC0f,EAAAA,EAAgCxf,OAAAC,OAAA,GACzB,CACAkX,GAAAA,EACAkB,KAAAA,EACA3O,MAAAA,EACAyV,QAAAA,EACAjf,UAAAA,EACAgf,UAAAA,EACA3G,SAAU/O,KAAKuR,uBAhTvBjM,EAAAA,EAAAA,IAAA,CAAX2Q,EAAAA,IAAU,iCAEC3Q,EAAAA,EAAAA,IAAA,CAAX2Q,EAAAA,IAAU,+BAEC3Q,EAAAA,EAAAA,IAAA,CAAX2Q,EAAAA,IAAU,6BAEC3Q,EAAAA,EAAAA,IAAA,CAAX2Q,EAAAA,IAAU,kCAEC3Q,EAAAA,EAAAA,IAAA,CAAX2Q,EAAAA,IAAU,oCAbT5E,GAAkB/L,EAAAA,EAAAA,IAAA,CADvB4Q,EAAAA,IACK7E,GA6TN,iGCnXA,MAAM8E,EAA4DrU,IAA4C,IAA3C,QAAE8T,EAAO,MAAEvK,EAAK,aAAEsJ,EAAY,MAAEoB,GAAOjU,EACtG,OACIxL,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKmf,GACLvK,EACAsJ,EACAoB,IAuCPK,EAAkEC,IAAwC,IAAvC,MAAE5c,EAAK,UAAEE,EAAS,KAAE+Z,EAAI,QAAEd,GAASyD,EACxG,OACI/f,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKgD,GACNnD,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKkD,GACL+Z,EACAd,KAqBjB,EAfuE5f,IACnE,MAAM,mBAAEwgB,EAAkB,UAAEF,EAAS,QAAEG,EAAO,mBAAEI,EAAkB,YAAEC,EAAW,QAAE5gB,EAAO,+BAAE6gB,GAAmC/gB,EAE7H,OACIsD,EAAAA,cAACC,EAAAA,OAAMC,OAAAC,OAAA,GAAK+c,GACPF,EAAUC,eAAiBjd,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKod,IACrCP,EAAUC,eAAiBjd,EAAAA,cAAC8f,EAAyB5f,OAAAC,OAAA,GAAKgd,IAC3Dnd,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKqd,GACL5gB,EArD+CsS,CAAAA,IAQ3D,IAR4D,aAC7D4O,EAAY,MACZC,EAAK,aACLM,EAAY,eACZI,EAAc,QACdC,EAAO,yBACPK,EAAwB,gCACxBC,GACH9P,EACG,OACIlP,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAK2d,GACLC,GACGA,EAAMrc,KAAKse,GAEAhgB,EAAAA,cAAC6f,EAAsB3f,OAAAC,OAAA,GAAK6f,MAE1C3B,GACGA,EAAa3c,KAAI,CAACoC,EAAwBiI,IAC/B/L,EAAAA,cAACA,EAAAA,SAAc,CAAC6B,IAAKkK,GAAQjI,KAE5C9D,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKse,GACLC,GACGA,EAAQhd,KAAI,CAACue,EAAyBlU,IAC3B/L,EAAAA,cAACA,EAAAA,SAAc,CAAC6B,IAAKkK,GAAQkU,MAIhDjgB,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAK4e,GACN/e,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAK6e,OA0BTkB,CAAazC,iFC7D9B,MAmBA,EAnBsEjS,IAQjE,IARkE,GACnE6L,EAAE,UACFjX,EAAS,KACTf,EAAI,UACJgN,EAAS,SACTwM,EAAQ,iBACR7O,EAAgB,QAChB1D,GACHkF,EACG,MAAMI,GAAUC,EAAAA,EAAAA,kBAAiB,QAAS7B,EAAmB3K,GACvD6M,GAAaC,EAAAA,EAAAA,wBAAuBnC,EAAmB4B,GAE7D,OACI5L,EAAAA,cAAC0W,EAAAA,OAAMxW,OAAAC,OAAA,CAACkX,GAAIA,EAAIjX,UAAWA,EAAS,aAAciM,EAAWwM,SAAUA,EAAUvS,QAASA,GAAa4F,GAClG7M,+ECjBb,MAUA,EAVyEmM,IAA8C,IAA7C,GAAE6L,EAAE,UAAEjX,EAAS,KAAEmY,EAAO,OAAM,QAAE+D,GAAS9Q,EAC/G,MAAM2U,EAAiB,GAAG/f,MAAcmY,UAExC,OACIvY,EAAAA,cAAA,OAAKqX,GAAIA,EAAIjX,UAAWO,GAAAA,CAAWwf,EAAgB,QAAS,GAAG5H,UAAchM,KAAK,QAAO,YAAW,YAAW,cAAa,QACxHvM,EAAAA,cAAA,KAAGI,UAAW,GAAG+f,UAAwB7D,qECQrD,MAAM8D,EAAgBhB,IAClB,GAAIA,EAAW,CACX,MAAMiB,EAAkBC,OAAOC,SAASnB,EAAW,IACnD,IAAKoB,MAAMH,GACP,OAAOA,IAoBnB,EAbyE7U,IAAA,IAAC,GAAE6L,EAAE,KAAEkB,EAAI,MAAE3O,EAAK,QAAEyV,EAAO,UAAEjf,EAAS,UAAEgf,EAAS,SAAE3G,GAAUjN,EAAA,OAClIxL,EAAAA,cAAA,SACIqX,GAAIA,EACJkB,KAAMA,EACN3O,MAAOA,EACPxJ,UAAW,GAAGA,WAAmBA,KAAaiX,IAC9CgI,QAAqB,KAAZA,EAAiBA,OAAUxN,EAAS,gBAC/B,OACduN,UAAWgB,EAAahB,GACxB3G,SAAUA,+DClClB,MAMA,EANoEjN,IAAA,IAAC,GAAE6L,EAAE,MAAEmI,EAAK,UAAEpf,EAAS,KAAEf,GAAMmM,EAAA,OAC/FxL,EAAAA,cAAA,SAAOqX,GAAI,GAAGA,UAAYjX,UAAW,GAAGA,UAAmBkY,QAASkH,GAC/DngB,8DCLT,MAIA,EAJgFmM,IAAA,IAAC,UAAEpL,GAAWoL,EAAA,OAC1FxL,EAAAA,cAAA,OAAKI,UAAW,GAAGA,+ECAvB,MAIA,EAJsFoL,IAAA,IAAC,UAAEpL,EAAS,QAAEkc,GAAS9Q,EAAA,OACzGxL,EAAAA,cAAA,OAAKI,UAAW,GAAGA,sBAA+Bkc,kECsB1CmE,suBAAZ,SAAYA,GACRA,EAAAA,EAAA,qBACAA,EAAAA,EAAA,qBACAA,EAAAA,EAAA,eACAA,EAAAA,EAAA,yBAJJ,CAAYA,IAAAA,EAA6B,KAoCzC,IAAMC,EAAN,cAAuC1gB,EAAAA,UA6CnCsJ,YAAY5M,GACR6M,MAAM7M,GA3CU,KAAAikB,sBAAgC,EAEhC,KAAAC,cAAwB,EAEpC,KAAA/T,UAAoB,EAkBX,KAAAgU,mBAA6B,yCAE7B,KAAAC,gBAA0B,KAE1B,KAAAC,iBAA2B,KAE3B,KAAAC,gBAA0B,MAE1B,KAAAC,iBAA2B,MAE3B,KAAAC,gBAA0B,IAE1B,KAAAC,mBAA6B,GAE7B,KAAAC,eAAyB,GAEzB,KAAAC,6BAAuC,+DAEhD,KAAAC,mCAA6C,EA8DpC,KAAAC,kBAAoB,KAAyB,IAAAC,EAAAC,EAC1D,MAAM,OAAEjkB,EAAM,KAAEW,EAAI,UAAEH,GAAc0L,KAAKhN,MAAMglB,oBACzCC,EAA8CxjB,EAAKwjB,qBAAqBtjB,QAAU,GAClFujB,EACDpkB,EAAOokB,qCAAuCpkB,EAAOokB,oCAAoCviB,MAAS,GAGjGwiB,GAFiBrkB,EAAOskB,gBAAkB,IACdviB,MAAM,KACZmC,KAAIqgB,IAC5B,MAAMC,EAA2CL,EAAqBM,MAClEC,IAAoC,IAAvBA,EAAUC,UAAsBD,EAAUE,KAAMC,sBAAwBN,EAAIM,uBACxF,CAAExjB,SAAU,GACjB,OAAO6K,KAAK4Y,iBAAiBN,MAE3B/e,EAAQyG,KAAKvF,OAASuF,KAAKvF,MAAMoe,iBAAmB,EAC1D7Y,KAAKkC,QAAQI,cAAcC,MAAQ,GAAGjO,EAAUwkB,4BAA4BZ,IAC5E,MAAMW,GAAiBpW,EAAAA,EAAAA,wBAAuBzC,KAAKM,iBAAmBN,KAAKkC,SAC3ElC,KAAKkC,QAAQI,cAAcC,MAAQ,GAAGjO,EAAUykB,4BAA4Bb,IAC5E,MAAMc,GAAiBvW,EAAAA,EAAAA,wBAAuBzC,KAAKM,iBAAmBN,KAAKkC,SAC3ElC,KAAKkC,QAAQI,cAAcC,MAAQ,GAAGjO,EAAU2kB,8BAA8Bf,IAC9E,MAAMgB,GAAmBzW,EAAAA,EAAAA,wBAAuBzC,KAAKM,iBAAmBN,KAAKkC,SACvE8E,EAAsBvS,EAAKuS,oBAAoBrS,OAErDqL,KAAK4X,mCACgB,QAAjBE,EAAArjB,EAAK0kB,oBAAY,IAAArB,GAAQ,QAARA,EAAjBA,EAAmBnjB,cAAM,IAAAmjB,GAAqE,QAArEA,EAAzBA,EAA2BS,MAAKa,GAAWA,EAAQV,OAAS1Y,KAAK2X,sCAA6B,IAAAG,OAAA,EAA9FA,EAAgGuB,aAAa,EAGjH,MAAMC,MACyC,QAA1CvB,EAAA/X,KAAKhN,MAAMglB,oBAAoB1iB,QAAQikB,WAAG,IAAAxB,GAAQ,QAARA,EAA1CA,EAA4CjkB,cAAM,IAAAikB,OAAA,EAAlDA,EAAoDyB,6CACpDxS,MAAAA,OAAmB,EAAnBA,EAAqByS,oBACrBzZ,KAAK4X,kCACV,OACIthB,EAAAA,cAAA,OACIojB,IAAK1Z,KAAK2Z,uBACVjjB,UAAWO,GAAAA,CAAW,iCAAkC,CACpD,0CAA2C+I,KAAKiX,wBAGnDnjB,EAAOokB,qCACJ5hB,EAAAA,cAACsjB,EAAAA,GAAI,CACDljB,UAAU,+CACV4K,IAAKxN,EAAOokB,oCAAoC5W,KAAO,KACvD3L,KAAMuiB,IAGbpkB,EAAO+lB,WAAa7Z,KAAK8Z,eACzBhmB,EAAOimB,eAAiB/Z,KAAKga,mBAC7B7B,EACAnY,KAAKkX,cACF5gB,EAAAA,cAAA,OAAKI,UAAU,wCACXJ,EAAAA,cAAA,SAAOI,UAAU,8CACZsJ,KAAKhN,MAAMglB,oBAAoB1jB,UAAU2lB,kCAIpD1gB,GACEjD,EAAAA,cAAC0W,EAAAA,OAAMxW,OAAAC,OAAA,CACHC,UAAWO,GAAAA,CAAW,6CAA8C,CAEhE,sDAAuDqiB,IACzD,aACU,GAAGhlB,EAAUwkB,4BAA4BZ,IACrDtb,QAASoD,KAAKka,kBACdjN,SAAUjN,KAAKma,QACf9d,MAAO/H,EAAUwkB,yBACjB3J,SAAUmK,GACNT,GAEHvkB,EAAUwkB,0BAGlBvf,GACGjD,EAAAA,cAAC0W,EAAAA,OAAMxW,OAAAC,OAAA,CACHC,UAAWO,GAAAA,CAAW,8CAA6C,aACvD3C,EAAUykB,yBACtBnc,QAASoD,KAAKoa,gBACd/d,MAAO/H,EAAUykB,0BACbC,GAEH1kB,EAAUykB,0BAGlBxf,GACGjD,EAAAA,cAAC0W,EAAAA,OAAMxW,OAAAC,OAAA,CACHC,UAAWO,GAAAA,CAAW,gDAA+C,aACzD3C,EAAU2kB,2BACtBrc,QAASoD,KAAKqa,mBACdhe,MAAO/H,EAAU2kB,4BACbC,GAEH5kB,EAAU2kB,8BAOd,KAAAa,aAAe,KAC5B,MAAM,oBAAEQ,GAAwBta,KAAKhN,MAAMglB,oBAAoBlkB,OACzDZ,EAAWonB,GAAuBA,EAAoB3kB,MAAS,GAC/De,EAAaxD,GAAWA,EAAQ6L,QAAQ,KAAM,MAAS,GACvD8Z,EAAkB7Y,KAAKvF,OAASuF,KAAKvF,MAAMoe,iBAAmB,EACpE,OACIviB,EAAAA,cAAA,OAAKI,UAAWO,GAAAA,CAAW,0CAA2C,kCAAkCP,MACnG4jB,GAAuBhkB,EAAAA,cAACsjB,EAAAA,GAAI,CAACljB,UAAU,kDAAkD4K,IAAI,KAAK3L,KAAMzC,IACzGoD,EAAAA,cAAA,SACIuY,KAAK,OAAM,aACC3b,EACZwD,UAAWO,GAAAA,CACP+I,KAAKmX,mBACL,uCACA,6CAA6C0B,IAC7C,uBAAuBniB,WAE3BqY,SAAU/O,KAAKua,eACfra,MAAOF,KAAKvF,MAAM+f,OAAS,GAC3BrL,UAAW0J,IAEd7Y,KAAKya,aAAa,WAKd,KAAAT,iBAAmB,KAChC,MAAM,wBAAEU,GAA4B1a,KAAKhN,MAAMglB,oBAAoBlkB,OAC7DZ,EAAWwnB,GAA2BA,EAAwB/kB,MAAS,GACvEe,EAAaxD,GAAWA,EAAQ6L,QAAQ,KAAM,MAAS,GACvD8Z,EAAkB7Y,KAAKvF,OAASuF,KAAKvF,MAAMoe,iBAAmB,EACpE,OACIviB,EAAAA,cAAA,OAAKI,UAAWO,GAAAA,CAAW,0CAA2C,kCAAkCP,MACnGgkB,GAA2BpkB,EAAAA,cAACsjB,EAAAA,GAAI,CAACljB,UAAU,kDAAkD4K,IAAI,KAAK3L,KAAMzC,IAC7GoD,EAAAA,cAAA,SACIuY,KAAK,OAAM,aACC3b,EACZwD,UAAWO,GAAAA,CACP+I,KAAKmX,mBACL,uCACA,6CAA6C0B,IAC7C,uBAAuBniB,WAE3BqY,SAAU/O,KAAK2a,mBACfza,MAAOF,KAAKvF,MAAMmgB,WAAa,GAC/BzL,UAAW0J,IAEd7Y,KAAKya,aAAa,eAKd,KAAA7B,iBAAoBiC,IACjC,MAAMhC,EAAkB7Y,KAAKvF,OAASuF,KAAKvF,MAAMoe,iBAAmB,EAC9DniB,EAAamkB,EAAgBnC,MAAQmC,EAAgBnC,KAAK3Z,QAAQ,KAAM,MAAS,GACvF,OAAQ8b,EAAgBC,aAAeD,EAAgBC,YAAYC,OAC/D,KAAKhE,EAA8BiE,QACnC,KAAKjE,EAA8BkE,QAC/B,OAAOjb,KAAKkb,2BAA2BL,EAAiBnkB,EAAWmiB,GACvE,KAAK9B,EAA8B6C,KAC/B,OAAO5Z,KAAKmb,yBAAyBN,EAAiBnkB,EAAWmiB,GACrE,KAAK9B,EAA8BqE,UAC/B,OAAOpb,KAAKqb,eAAeR,EAAiBnkB,EAAWmiB,GAC3D,QACI,OAAO,OAIF,KAAAqC,2BAA6B,CAC1CL,EACAnkB,EACAmiB,KAEA,MAAMtf,EAAQyG,KAAKvF,OAASuF,KAAKvF,MAAMoe,iBAAmB,EACpDyC,EAAiBtb,KAAKub,mBAAmBV,EAAgBnC,MAAQ,IACjE8C,EAAsBF,EAAe5C,MAAQ,GACnD,OACIpiB,EAAAA,cAAA,OAAKI,UAAWO,GAAAA,CAAW,0CAA2C,kCAAkCP,MACpGJ,EAAAA,cAACsjB,EAAAA,GAAI,CAACljB,UAAU,kDAAkD4K,IAAI,KAAK3L,KAAM6lB,IACjFllB,EAAAA,cAAA,SACIuY,KAAK,OAAM,aACCgM,EAAgBnC,KAC5BhiB,UAAWO,GAAAA,CACP+I,KAAKmX,mBACL,uCACA,6CAA6C5d,IAC7C,uBAAuB7C,WAE3BqY,SAAU/O,KAAKyb,mBAAmBZ,GAClC3a,MAAOF,KAAKvF,MAAM+H,WAAWqY,EAAgBnC,MAAQ,KAAO,GAC5DvJ,UAAW0J,EAAc,gBACVyC,EAAeI,cAAe,IAEhD1b,KAAKya,aAAaI,EAAgBnC,MAAQ,MAKtC,KAAAyC,yBAA2B,CACxCN,EACAnkB,EACAmiB,KAEA,MAAM8C,EAAyBd,EAAgBe,gBAAiB,EAC1DriB,EAAQyG,KAAKvF,OAASuF,KAAKvF,MAAMoe,iBAAmB,EACpDyC,EAAiBtb,KAAKub,mBAAmBV,EAAgBnC,MAAQ,IACjE8C,EAAsBF,EAAe5C,MAAQ,GACnD,GAAIiD,GAAiBd,EAAgBgB,mBAAoB,CACrD,MACMC,EAAuB,MADf9b,KAAKvF,MAAM+H,WAAWqY,EAAgBnC,MAAQ,KAAO,IAEnE,OACIpiB,EAAAA,cAAA,OAAKI,UAAWO,GAAAA,CAAW,0CAA2C,kCAAkCP,MACpGJ,EAAAA,cAACsjB,EAAAA,GAAI,CAACljB,UAAU,kDAAkD4K,IAAI,KAAK3L,KAAM6lB,IACjFllB,EAAAA,cAAA,UACIqX,GAAI,kCAAkCjX,IAAW,aACrCmkB,EAAgBnC,KAC5BhiB,UAAWO,GAAAA,CACP+I,KAAKmX,mBACL,wCACA,8CAA8C5d,IAC9C,kCAAkC7C,YAEtCqY,SAAU/O,KAAK+b,mBAAmBlB,GAClC1L,UAAW0J,EAAc,gBACVyC,EAAeI,cAAe,GAE5CI,GACGxlB,EAAAA,cAAA,UACII,UAAU,gDACVyB,IAAI,QACJ6jB,SAAUF,EAAU,gBACLA,IAGtBjB,EAAgBgB,mBAAmB7jB,KAAIikB,IACpC,MAAMD,EAAWC,EAAOC,mBAAqBlc,KAAKvF,MAAM+H,WAAWqY,EAAgBnC,MAAQ,IAC3F,OACIpiB,EAAAA,cAAA,UACII,UAAU,gDACVyB,IAAK8jB,EAAOC,iBACZF,SAAUA,EAAQ,gBACHA,GAEdC,EAAOC,uBAQpC,OACI5lB,EAAAA,cAAA,OAAKI,UAAWO,GAAAA,CAAW,0CAA2C,kCAAkCP,MACpGJ,EAAAA,cAACsjB,EAAAA,GAAI,CAACljB,UAAU,kDAAkD4K,IAAI,KAAK3L,KAAM6lB,IACjFllB,EAAAA,cAAA,SACIuY,KAAK,OAAM,aACCgM,EAAgBnC,KAC5BhiB,UAAWO,GAAAA,CACP+I,KAAKmX,mBACL,uCACA,6CAA6C5d,IAC7C,uBAAuB7C,WAE3BqY,SAAU/O,KAAKyb,mBAAmBZ,GAClC3a,MAAOF,KAAKvF,MAAM+H,WAAWqY,EAAgBnC,MAAQ,KAAO,GAC5DvJ,UAAW0J,EAAc,gBACVyC,EAAeI,cAAe,IAEhD1b,KAAKya,aAAaI,EAAgBnC,MAAQ,MAKtC,KAAA2C,eAAiB,CAC9BR,EACAnkB,EACAmiB,KAEA,IAAI3Y,EAAQF,KAAKvF,MAAM+H,WAAWqY,EAAgBnC,MAAQ,KAAO,GACjE,MACM/X,IADuB,KAAVT,IACa2Y,GAChC3Y,EAAQA,GAAS,QACjB,MAAMic,EAAyB,SAAVjc,EAAoB,SAAa,UAChDkc,GAAYlb,EAAAA,EAAAA,QAAOlB,KAAKhN,MAAMglB,oBAAoB1jB,UAAU+nB,+BAAgCxB,EAAgBnC,MAC5G4D,EAAyB,SAAVpc,EAEfsb,EADiBxb,KAAKub,mBAAmBV,EAAgBnC,MAAQ,IAC5BA,MAAQ,GACnD,IAAI6D,EAAc,QAOlB,OALIA,EADU,SAAVrc,EACc,QAEA,OAId5J,EAAAA,cAAA,OACII,UAAWO,GAAAA,CACP,0CACA,kDACA,kCAAkCP,MAGtCJ,EAAAA,cAACsjB,EAAAA,GAAI,CAACljB,UAAU,kDAAkD4K,IAAI,KAAK3L,KAAM6lB,IAChF7a,GACGrK,EAAAA,cAAA,OACII,UAAW,2GAA2GylB,KAEtH7lB,EAAAA,cAACkmB,EAAAA,EAAa,CACV9lB,UAAU,+DACVf,KAAMqK,KAAKhN,MAAMglB,oBAAoB1jB,UAAUmoB,oBAEnDnmB,EAAAA,cAAC0W,EAAAA,OAAM,CACHtW,UAAWO,GAAAA,CACP+I,KAAKmX,mBACL,yDACA,mDAAmDgF,YACtD,aACW,GAAGC,IAAW,eACZE,EACdpc,MAAOA,EACPtD,QAASoD,KAAK0c,kBAAkB7B,EAAiB0B,GACjDpN,UAAW0J,IAEfviB,EAAAA,cAACkmB,EAAAA,EAAa,CACV9lB,UAAU,8DACVf,KAAMqK,KAAKhN,MAAMglB,oBAAoB1jB,UAAUqoB,sBAQtD,KAAAlC,aAAgBmC,IAC7B,MAAMxiB,EAAiB4F,KAAKvF,OAASuF,KAAKvF,MAAMoiB,gBAAkB7c,KAAKvF,MAAMoiB,eAAeD,IAAmB,GAE/G,OADkBE,EAAAA,iBAAiBC,mBAAmB3iB,GAG9C9D,EAAAA,cAAA,OAAKI,UAAU,uCAAuCmM,KAAK,QAAO,YAAW,aACzEvM,EAAAA,cAAA,SAAOI,UAAU,8CAA8C0D,IAIpE,MAGM,KAAAmhB,mBAAsBqB,IACnC,MAAMI,EAAuBhd,KAAKgd,qBAAqBzE,MAAKF,GAAOA,EAAIzf,OAASgkB,IAC1EK,EAAwBD,GAAwBA,EAAqBC,cAAgB,EAC3F,MAAO,CACHvE,KAAMuE,EAAc,GAAGL,GAAiB,OAASA,GAAiB,GAClElB,YAAauB,IAIJ,KAAA1C,eAAkBxa,IAC/B,MAAMG,EAAQH,EAAME,OAAOC,MAC3BF,KAAKoD,SAAS,CAAEoX,MAAOta,KAGV,KAAAya,mBAAsB5a,IACnC,MAAMG,EAAQH,EAAME,OAAOC,MAC3BF,KAAKoD,SAAS,CAAEwX,UAAW1a,KAGd,KAAAga,kBAAoB,KACjCla,KAAKmD,UAAW,EAGhBnD,KAAKkX,cAAe,EACpBlX,KAAKoD,SAAS,CAAEyV,gBAAgB,EAAMgE,eAAgB,KAClDK,EAAAA,GAASC,WACTlL,YAAW,KACP,GAAIjS,KAAK2Z,uBAAuB5T,QAAS,CACrC,MAAMvD,EAAwCxC,KAAK2Z,uBAAuB5T,QAAQvJ,uBAC9EwD,KAAKmX,oBAEL3U,GAAcA,EAAWzK,OAAS,GAClCiI,KAAKod,UAAU5a,EAAW,OAGnC,IAIM,KAAA6X,mBAAqB,KAClCra,KAAKoD,SAAS,CACVyV,gBAAgB,EAChBgE,eAAgB,GAChBra,WAAYxC,KAAKqd,kBACjB7C,MAAOxa,KAAKsd,aACZ1C,UAAW5a,KAAKud,mBAEhBL,EAAAA,GAASC,WACTlL,YAAW,KACPjS,KAAKod,UAAUpd,KAAKma,QAAQpU,WAC7B,IAIM,KAAA0V,mBAAsBnD,GAA8CvY,IACjF,MAAMG,EAAQH,EAAME,OAAOC,MACrBtH,EAAO0f,EAAoBI,MAAQ,GACzC1Y,KAAKoD,SAAS,CACVZ,WAAUpB,EAAAA,EAAA,GACHpB,KAAKvF,MAAM+H,YAAU,IACxB,CAAC5J,GAAOsH,OAKH,KAAAwc,kBAAoB,CAACpE,EAA0CpY,IAC5EH,IAEA,MAAMnH,EAAO0f,EAAoBI,MAAQ,GACzC1Y,KAAKoD,SAAS,CACVZ,WAAUpB,EAAAA,EAAA,GACHpB,KAAKvF,MAAM+H,YAAU,IACxB,CAAC5J,GAAOsH,OAKH,KAAA6b,mBAAsBzD,GAA8CvY,IACjF,MAAMG,EAAQH,EAAMyd,cAAcC,gBAAgB,GAAGvd,MAC/CmC,EAAQtC,EAAMyd,cAAcC,gBAAgB,GAAGpb,MAC/CzJ,EAAO0f,EAAoBI,MAAQ,GACzC1Y,KAAKoD,SAAS,CACVZ,WAAUpB,EAAAA,EAAA,GACHpB,KAAKvF,MAAM+H,YAAU,IACxB,CAAC5J,GAAOsH,IAEZwd,cAAatc,EAAAA,EAAA,GACNpB,KAAKvF,MAAMijB,eAAa,IAC3B,CAAC9kB,GAAOyJ,OAKH,KAAAsb,eAAiB,KAC9B,MAAM,OAAE7pB,EAAM,KAAEW,GAASuL,KAAKhN,MAAMglB,oBAE9B4F,GADiB9pB,EAAOskB,gBAAkB,IACLviB,MAAM,KAC3CkR,EAAWtS,EAAKuS,oBAAoBrS,OACpCkpB,EAA0C9W,GAAYA,EAAS+W,YAAe,GAC9Etb,EAAkC,GAExCob,EAAoBtf,SAAQyf,IACxB,MAAMf,EAAuBhd,KAAKgd,qBAAqBzE,MAAKF,GAAOA,EAAIzf,OAASmlB,IAC1Ed,EAAwBD,GAAwBA,EAAqBC,cAAgB,EACrFe,EAAehB,GAAwBA,EAAqBgB,aAC5DxF,EAAYqF,EAAkBtF,MAAKF,GAAOA,EAAIK,OAASqF,IAC7D,IAAI7d,EAAgB,GACpB,GAAIsY,GAAaA,EAAUyF,eAAgB,CACvC,MAAMrlB,EAAQ4f,GAAaA,EAAUE,MAAS,GAC9C,OAAQF,EAAU0F,eACd,KAAKnH,EAA8BiE,QAC3BxC,EAAUyF,eAAeE,eACzBje,EAAQke,OAAO5F,EAAUyF,eAAeE,cACxC3b,EAAW5J,GAAQsH,GAEvB,MACJ,KAAK6W,EAA8BkE,QAC3BzC,EAAUyF,eAAeI,eACzBne,EAAQke,OAAO5F,EAAUyF,eAAeI,cACxC7b,EAAW5J,GAAQsH,GAEvB,MACJ,KAAK6W,EAA8B6C,KAC3BpB,EAAUyF,eAAeK,cACzBpe,EAAQsY,EAAUyF,eAAeK,YACjC9b,EAAW5J,GAAQsH,GAEvB,MACJ,KAAK6W,EAA8BqE,UACe,OAA1C5C,EAAUyF,eAAeM,eACzBre,EAAQke,OAAO5F,EAAUyF,eAAeM,cACxC/b,EAAW5J,GAAQsH,IAQ/B4c,EAAAA,iBAAiBC,mBAAmB7c,IAAU+c,IAC9Cza,EAAWub,GAAiB,IAEX,IAAjB7d,EAAMnI,QAAgBimB,IACtBxb,EAAWub,GAAiBK,OAAOJ,OAGQ,IAA/CxnB,OAAOgoB,KAAKxe,KAAKqd,mBAAmBtlB,SACpCiI,KAAKqd,kBAAoB7a,GAE7BxC,KAAKoD,SAAS,CAAEZ,WAAAA,KAIH,KAAAic,sBAAyB1X,IACtC,MAAM,UAAEzS,GAAc0L,KAAKhN,MAAMglB,qBAC3B,MAAEwC,EAAK,UAAEI,GAAc5a,KAAKvF,MAC5BoiB,EAAsC,GAC5C,IAAI1Z,GAAoB,EACpBub,GAAoB,EACxB,IAAK,MAAOvmB,EAAK+H,KAAU1J,OAAOmoB,QAAQ3e,KAAKvF,MAAM+H,YAAa,CAC9D,MAAMoc,EAAqC5e,KAAKgd,qBAAqBzE,MAAK9jB,GAAQA,EAAKmE,OAAST,KAAQ,GACxG,GAAIymB,EAAa,CACb,OAAQA,EAAYC,eAChB,KAAK9H,EAA8BkE,QAC/B,MAAM6D,EAAelI,OAAO1W,GAC5B,GAAI4W,MAAMgI,GAAe,CACrB,MAAMC,GAAY7d,EAAAA,EAAAA,QAAO5M,EAAU0qB,4BAA6BJ,EAAYhmB,KAAM,WAClFikB,EAAe+B,EAAYhmB,MAAQ,IAAMmmB,EACzC5b,GAAW,OACR,QAAoCgF,IAAhCyW,EAAYK,sBAAiE9W,IAAhCyW,EAAYM,iBAChE,GAAIJ,EAAeF,EAAYK,iBAAmBH,EAAeF,EAAYM,gBAAiB,CAC1F,MAAMC,GAAaje,EAAAA,EAAAA,QACf5M,EAAU8qB,6BACVR,EAAYhmB,KACZgmB,EAAYK,gBACZL,EAAYM,iBAEhBrC,EAAe+B,EAAYhmB,MAAQ,IAAMumB,EACzChc,GAAW,QAGX2b,EAAe9e,KAAKsX,kBACpBuF,EAAe+B,EAAYhmB,MAAQ,KAAMsI,EAAAA,EAAAA,QACrC5M,EAAU+qB,2CACVT,EAAYhmB,KACZoH,KAAKsX,iBAETnU,GAAW,GAGX2b,EAAe9e,KAAKuX,kBACpBsF,EAAe+B,EAAYhmB,MAAQ,KAAMsI,EAAAA,EAAAA,QACrC5M,EAAUgrB,2CACVV,EAAYhmB,KACZoH,KAAKuX,iBAETpU,GAAW,GAIdA,IACG2Z,EAAAA,iBAAiBC,mBAAmB7c,GACpCwe,GAAW,GAEXE,EAAYE,aAAeA,EAC3BJ,GAAW,IAGnB,MACJ,KAAK3H,EAA8BiE,QAC/B,MAAMuE,EAAe3I,OAAO1W,GAC5B,GAAI4W,MAAMyI,IAAiBrf,EAAM9J,SAAS,KAAM,CAC5C,MAAM2oB,GAAY7d,EAAAA,EAAAA,QAAO5M,EAAU0qB,4BAA6BJ,EAAYhmB,KAAM,WAClFikB,EAAe+B,EAAYhmB,MAAQ,IAAMmmB,EACzC5b,GAAW,OACR,QAAoCgF,IAAhCyW,EAAYK,sBAAiE9W,IAAhCyW,EAAYM,iBAChE,GAAIK,EAAeX,EAAYK,iBAAmBM,EAAeX,EAAYM,gBAAiB,CAC1F,MAAMC,GAAaje,EAAAA,EAAAA,QACf5M,EAAU8qB,6BACVR,EAAYhmB,KACZgmB,EAAYK,gBACZL,EAAYM,iBAEhBrC,EAAe+B,EAAYhmB,MAAQ,IAAMumB,EACzChc,GAAW,QAGXoc,EAAevf,KAAKoX,kBACpByF,EAAe+B,EAAYhmB,MAAQ,KAAMsI,EAAAA,EAAAA,QACrC5M,EAAU+qB,2CACVT,EAAYhmB,KACZoH,KAAKoX,iBAETjU,GAAW,GAGXoc,EAAevf,KAAKqX,kBACpBwF,EAAe+B,EAAYhmB,MAAQ,KAAMsI,EAAAA,EAAAA,QACrC5M,EAAUgrB,2CACVV,EAAYhmB,KACZoH,KAAKqX,iBAETlU,GAAW,GAIdA,IACG2Z,EAAAA,iBAAiBC,mBAAmB7c,GACpCwe,GAAW,GAEXE,EAAYW,aAAeA,EAC3Bb,GAAW,IAGnB,MACJ,KAAK3H,EAA8B6C,KAC/B,IAAI4F,EAAY,GACX1C,EAAAA,iBAAiBC,mBAAmB7c,KACrCsf,EAAYtf,EAAMuf,QAElBD,EAAUznB,OAASiI,KAAKwX,kBACxBqF,EAAe+B,EAAYhmB,MAAQ,KAAMsI,EAAAA,EAAAA,QACrC5M,EAAUorB,uCACVd,EAAYhmB,KACZoH,KAAKwX,iBAETrU,GAAW,GAEVA,IACDyb,EAAYe,UAAYH,GAE5B,MACJ,KAAKzI,EAA8BqE,UAC/BwD,EAAYgB,aAAyB,SAAV1f,EAO/B0e,EAAY3B,aAAeH,EAAAA,iBAAiBC,mBAAmB7c,KAC/D2c,EAAe+B,EAAYhmB,MAAQ,KAAMsI,EAAAA,EAAAA,QAAO5M,EAAUurB,iCAAkCjB,EAAYhmB,MACxGuK,GAAW,GAGf,MAAM0a,EAA0C9W,GAAYA,EAAS+W,YAAe,GAC9EtF,EAAYqF,EAAkBtF,MAAKF,GAAOA,EAAIK,OAASvgB,IACvDkK,EAAQwb,EAAkBiC,WAAUzH,GAAOA,EAAIK,OAASvgB,KAE/C,IAAXkK,GAAiBqc,GACjBb,EAAkBkC,OAAO1d,EAAO,IAG/Bc,GAAYub,IACTlG,GACAA,EAAUwH,eAAY7X,EACtBqQ,EAAU0F,cAAgBU,EAAYC,cACtCrG,EAAUE,KAAOkG,EAAYhmB,KAC7B4f,EAAUrjB,SAAWypB,EAAYqB,SACjCzH,EAAU0H,WAAQ/X,EAClBqQ,EAAUyF,eAAiB,CACvBE,aAAcS,EAAYW,aAC1BhB,aAAcK,EAAYgB,aAC1BtB,YAAaM,EAAYe,UACzBtB,aAAcO,EAAYE,cAE9BtG,EAAU2H,oBAAsB,GAChC3H,EAAU4H,iBAAmB,IAE7BvC,EAAkB9a,KAAK,CACnB,cAAe,mEACfid,eAAW7X,EACX+V,cAAeU,EAAYC,cAC3BwB,QAASzB,EAAYhmB,KACrB8f,KAAMkG,EAAYhmB,KAClBzD,SAAUypB,EAAYqB,SACtBC,WAAO/X,EACP8V,eAAgB,CAEZ,cAAe,uEACfE,aAAcS,EAAYW,aAC1BhB,aAAcK,EAAYgB,aAC1BtB,YAAaM,EAAYe,UACzBtB,aAAcO,EAAYE,cAE9B,iCAAkC,8EAClCqB,oBAAqB,GACrB,8BACI,kFACJC,iBAAkB,OAOlC5F,EAAMiF,OAAO1nB,OAASiI,KAAK0X,gBAC3BmF,EAAeyD,OAAQpf,EAAAA,EAAAA,QAAO5M,EAAUorB,uCAAwC,QAAS1f,KAAK0X,gBAC9FvU,GAAW,GAEX4D,EAASuZ,MAAQ9F,EAAMiF,OAGvB7E,EAAU6E,OAAO1nB,OAASiI,KAAKyX,oBAC/BoF,EAAe0D,WAAYrf,EAAAA,EAAAA,QAAO5M,EAAUorB,uCAAwC,aAAc1f,KAAKyX,oBACvGtU,GAAW,GAEX4D,EAASyZ,UAAY5F,EAAU6E,OAGnCzf,KAAKmD,SAAWA,EAChBnD,KAAKoD,SAAS,CAAEyZ,eAAAA,KAGH,KAAAzC,gBAAkBqG,UAC/B,MAAM,QAAEnrB,EAAO,KAAEb,GAASuL,KAAKhN,MAAMglB,oBAC/BjR,EAAWtS,EAAKuS,oBAAoBrS,OAE1C,GAAIoS,GAAYzR,EAAS,CACrB0K,KAAKye,sBAAsB1X,GAC3B,MAAMgP,EAAQ,IAAI2K,EAAAA,8BACd3Z,EAASuC,cACTvC,EAAS+W,YAAc,GACvBxoB,EAAQC,QAAQorB,YAChB5Z,EAASuZ,MACTvZ,EAASyZ,WAMb,GAHAxgB,KAAKiX,sBAAuB,EAC5BjX,KAAKkX,cAAe,GAEflX,KAAKmD,SAAU,CAChBnD,KAAKoD,SAAS,CAAEyV,gBAAgB,IAChC,UACU+H,EAAAA,EAAAA,0BAAyB7K,EAAOzgB,EAAQwS,eAChD,MAAO1N,GACL4F,KAAKkX,cAAe,EACpBnQ,EAAS+W,WAAa9d,KAAK6gB,0BACvBvrB,EAAQoL,YACRpL,EAAQoL,UAAUogB,UAAU1mB,GAC5B9E,EAAQoL,UAAUqgB,MAAM,yCAE5B/gB,KAAKoD,SAAS,CACVyZ,eAAgB,GAChBra,WAAYxC,KAAKqd,kBACjB7C,MAAOxa,KAAKsd,aACZ1C,UAAW5a,KAAKud,mBAGxBvd,KAAKoD,SAAS,CAAEyV,gBAAgB,IAC3B7Y,KAAKkX,eACNlX,KAAKqd,kBAAoBrd,KAAKvF,MAAM+H,WACpCxC,KAAK6gB,0BAA4B9Z,EAAS+W,WAC1C9d,KAAKsd,aAAetd,KAAKvF,MAAM+f,MAC/Bxa,KAAKud,iBAAmBvd,KAAKvF,MAAMmgB,WAI3C5a,KAAKiX,sBAAuB,EAExBiG,EAAAA,GAASC,WACTlL,YAAW,KACPjS,KAAKod,UAAUpd,KAAKma,QAAQpU,WAC7B,KAKE,KAAAqX,UAAa4D,IAC1BA,MAAAA,GAAAA,EAAShb,SAGI,KAAAib,kBAAoB,KACjC,MAAM,KAAExsB,GAASuL,KAAKhN,MAAMglB,oBACtBC,EAAuBxjB,EAAKwjB,qBAAqBtjB,QAAU,GAC3D6N,EAAkC,GAExCyV,EAAqB3Z,SAAQga,IACzB,MAAM0E,EAA8C,GAMpD,OALAA,EAAqBiD,SAAW3H,EAAoBnjB,SACpD6nB,EAAqBpkB,KAAO0f,EAAoBI,KAChDsE,EAAqB6B,cAAgBvG,EAAoB4F,cACzDlB,EAAqBrB,cAAgBrD,EAAoBsD,cACzDoB,EAAqBC,YAAc3E,EAAoBoD,YAC/CpD,EAAoB4F,eACxB,KAAKnH,EAA8BiE,QAC/B,MAAMkG,EAAsB5I,EAAoB6I,cAAgB7I,EAAoB6I,aAAahD,aACjGnB,EAAqBiC,gBAAkB3G,EAAoB8I,YAAc9I,EAAoB8I,WAAWjD,aACxGnB,EAAqBkC,gBAAkB5G,EAAoB+I,YAAc/I,EAAoB+I,WAAWlD,aACpGnB,EAAqBpkB,MAAQsoB,IAC7BlE,EAAqBgB,aAAeI,OAAO8C,GAC3C1e,EAAWwa,EAAqBpkB,MAAQwlB,OAAO8C,IAEnD,MACJ,KAAKnK,EAA8BkE,QAC/B,MAAMqG,EAAsBhJ,EAAoB6I,cAAgB7I,EAAoB6I,aAAa9C,aACjGrB,EAAqBiC,gBAAkB3G,EAAoB8I,YAAc9I,EAAoB8I,WAAW/C,aACxGrB,EAAqBkC,gBAAkB5G,EAAoB+I,YAAc/I,EAAoB+I,WAAWhD,aACpGrB,EAAqBpkB,MAAQ0oB,IAC7BtE,EAAqBgB,aAAeI,OAAOkD,GAC3C9e,EAAWwa,EAAqBpkB,MAAQwlB,OAAOkD,IAEnD,MACJ,KAAKvK,EAA8B6C,KAC/B,MAAM2H,EAAqBjJ,EAAoB6I,cAAgB7I,EAAoB6I,aAAa7C,YAC5FtB,EAAqBpkB,MAAQ2oB,IAC7BvE,EAAqBgB,aAAeuD,EACpC/e,EAAWwa,EAAqBpkB,MAAQ2oB,GAE5C,MACJ,KAAKxK,EAA8BqE,UAC/B,MAAMoG,EACDlJ,EAAoB6I,cAAgB7I,EAAoB6I,aAAa5C,eAAiB,EACvFvB,EAAqBpkB,OACrBokB,EAAqBgB,aAAeI,OAAOoD,GAC3Chf,EAAWwa,EAAqBpkB,MAAQwlB,OAAOoD,IAO3DxhB,KAAKgd,qBAAqBja,KAAKia,MAEnCxmB,OAAOgoB,KAAKhc,GAAYzK,OAAS,GAAKiI,KAAKoD,SAAS,CAAEZ,WAAAA,KAGzC,KAAAif,8BAAgC,KAC7C,MAAM1a,EAAW/G,KAAKhN,MAAMglB,oBAAoBvjB,KAAKuS,oBAAoBrS,OACnE6lB,EAASzT,GAAYA,EAASuZ,OAAU,GACxC1F,EAAa7T,GAAYA,EAASyZ,WAAc,GACtDxgB,KAAKoD,SAAS,CAAEoX,MAAAA,EAAOI,UAAAA,IACU,IAA7B5a,KAAKsd,aAAavlB,SAClBiI,KAAKsd,aAAe9C,GAEa,IAAjCxa,KAAKud,iBAAiBxlB,SACtBiI,KAAKud,iBAAmB3C,IA52B5B5a,KAAKvF,MAAQ,CACToe,gBAAgB,EAChB2B,MAAO,GACPI,UAAW,GACXpY,WAAY,GACZqa,eAAgB,IAEpB7c,KAAKqd,kBAAoB,GACzBrd,KAAK6gB,0BAA4B,GACjC7gB,KAAKsd,aAAe,GACpBtd,KAAKud,iBAAmB,GACxBvd,KAAKgd,qBAAuB,GAC5B,MAAMxc,EACDR,KAAKhN,MAAMglB,qBACRhY,KAAKhN,MAAMglB,oBAAoB1iB,SAC/B0K,KAAKhN,MAAMglB,oBAAoB1iB,QAAQC,SACvCyK,KAAKhN,MAAMglB,oBAAoB1iB,QAAQC,QAAQiL,mBACnD,GACEC,EAAgBT,KAAKhN,MAAMglB,qBAAuBhY,KAAKhN,MAAMglB,oBAAoBvX,cAAiB,GAClGC,EAAaV,KAAKhN,MAAMglB,qBAAuBhY,KAAKhN,MAAMglB,oBAAoBtX,WAAc,GAClGV,KAAKM,kBAAmBC,EAAAA,EAAAA,oBAAmBC,EAAmBC,EAAcC,GAC5EV,KAAKkC,SAAUC,EAAAA,EAAAA,kBAAiB,QAASnC,KAAKM,iBAAkB,IAChEN,KAAKma,QAAU7jB,EAAAA,YACf0J,KAAK2Z,uBAAyBrjB,EAAAA,YAG3B8c,oBACHpT,KAAKihB,oBACLjhB,KAAK2d,iBACL3d,KAAKyhB,iCACLve,EAAAA,EAAAA,KACI,IAAMlD,KAAKhN,MAAMglB,oBAAoBvjB,KAAKuS,oBAAoBrS,SAC9D,KACI,MAAMqS,EAAsBhH,KAAKhN,MAAMglB,oBAAoBvjB,KAAKuS,oBAAoBrS,OACpFqL,KAAK6gB,0BAA4B7Z,GAAuBA,EAAoB8W,WAC5E9d,KAAK2d,iBACL3d,KAAKyhB,oCAGbve,EAAAA,EAAAA,KACI,IAAMlD,KAAKhN,MAAMglB,oBAAoBvjB,KAAKwjB,qBAAqBtjB,SAC/D,KACIqL,KAAKihB,uBAKVld,sBAAsBC,EAA2CC,GACpE,OAAIjE,KAAKvF,QAAUwJ,GAAajE,KAAKhN,MAAMglB,oBAAoBvjB,OAASuP,EAAUgU,oBAAoBvjB,KAMnGkM,SACH,OAAOX,KAAK6X,uBAnGJvS,EAAAA,EAAAA,IAAA,CAAX2Q,EAAAA,IAAU,4CAEC3Q,EAAAA,EAAAA,IAAA,CAAX2Q,EAAAA,IAAU,mCALTe,GAAwB1R,EAAAA,EAAAA,IAAA,CAD7B4Q,EAAAA,IACKc,GAg6BN,wBC18BA,MAcMjV,EAAoBA,CAACC,EAAwB1B,KAC/C,IAAK0B,GAAgC,IAApBA,EAASjK,OACtB,OAAO,KAEX,MAAMkK,EAAuC,GACvCC,GAAUC,EAAAA,EAAAA,kBAAiB,QAAS7B,EAAmB,IAgB7D,OAfA0B,EAAS1D,SAAQ,CAAC8D,EAAMC,KACpBH,EAAQI,cAAcC,MAAQH,EAAKhL,SACnC,MAAMoL,GAAaC,EAAAA,EAAAA,wBAAuBnC,EAAmB4B,GACvDQ,EAAoC,CACtCC,UAAWP,EAAKO,UAChBjM,UAAW0L,EAAKsf,WAAa,2CAA6C,mCAC1EtqB,SAAUgL,EAAKhL,SACfF,QAASkL,EAAKlL,QAAQC,eACtByL,aAAcR,EAAKQ,aACnBC,KAAM,OACNC,qBAAsBN,GAE1BP,EAAcc,KAAKL,MAGhBT,GAGX,EAtC4DH,IAA8D,IAA7D,MAAEzB,EAAK,iBAAEC,EAAgB,eAAEmB,EAAc,aAAEE,GAAcG,EAClH,GAAqB,IAAjBzB,EAAMtI,OACN,OAAO,KAEX,MAAMkK,EAAgBF,EAAkB1B,EAAOC,GAC/C,OACIhK,EAAAA,cAAA,OAAKI,UAAU,qCACVuL,GAAiBA,EAAclK,OAAS,EACrCzB,EAAAA,cAAC+K,EAAAA,GAAc,CAAChB,MAAO4B,EAAeV,UAAW,CAAEI,aAAAA,EAAcF,eAAAA,KACjE,4kBCkDhB,IAAMkgB,EAAN,cAA6BrrB,EAAAA,UASzBsJ,YAAY5M,GACR6M,MAAM7M,GATU,KAAA4uB,sBAAgC,EAInC,KAAAjK,6BAAuC,+DAEhD,KAAAC,mCAA6C,EA0F9C,KAAA9X,oBAAuBC,GAA0CC,KAAKhN,MAAMc,OAAOZ,QAAQyC,KAAOoK,EAAME,OAAOC,MAE/G,KAAA2hB,yBAA4B9hB,GAC9BC,KAAKhN,MAAMc,OAAOguB,2BAA4BnsB,KAAOoK,EAAME,OAAOC,MAEhE,KAAA6hB,wBAA2BhiB,GAC7BC,KAAKhN,MAAMc,OAAOkuB,mBAAoBrsB,KAAOoK,EAAME,OAAOC,MAExD,KAAAC,qBAAwBC,GAAuBL,IAC9CC,KAAKhN,MAAMsB,UAAU2tB,iBACrBjiB,KAAKhN,MAAMsB,UAAU2tB,eAAiBliB,EAAME,OAAOC,QA2G1C,KAAAgiB,oBAAuBxrB,GAAsB+pB,SACnDzgB,KAAKmiB,8BAA8BzrB,GA6D7B,KAAA0rB,kBAAoB,CACjC1rB,EACA2rB,EACAC,EACArhB,EACAshB,EACAjJ,KAEA,MAAM,kBAAEmD,EAAiB,iBAAEE,GAAqB3c,KAAKhN,MAAMsB,UACrD6nB,EAAcoG,EAAW,UAAY,SACrCC,EAAiBxiB,KAAKkiB,oBAAoBxrB,GAChDsJ,KAAKkC,QAAQI,cAAcC,MAAQ8f,EAAe1sB,KAClD,MAAM6M,GAAaC,EAAAA,EAAAA,wBAAuBzC,KAAKM,iBAAmBN,KAAKkC,SAEvE,MAAO,CACHugB,kBAAmB,CACf/rB,UAAWO,GAAAA,CAAW,iCAAkC,kCAAkCP,IAAa,CACnG,+CAAgDsJ,KAAK4hB,wBAG7D1uB,QAASmvB,GACL/rB,EAAAA,cAAC+K,EAAAA,GAAa,CACV3K,UAAU,yCACV4K,IAAK+gB,EAAe/gB,KAAO,KAC3B3L,KAAM0sB,EAAe1sB,KACrB4L,UAAW,CAAEC,OAAQxB,KAAKF,oBAAqB2B,eAAgBzB,KAAKhN,MAAMsC,QAAQC,WAG1FmtB,cAAe,CACXhsB,UAAWO,GAAAA,CAAW,qCAAsC,8BAA8BklB,IAAe,CAErG,sCAAuC7C,KAG/CqJ,cAAersB,EAAAA,cAACkmB,EAAAA,EAAa,CAAC9lB,UAAU,yCAAyCf,KAAMgnB,IACvFiG,aAActsB,EAAAA,cAACkmB,EAAAA,EAAa,CAAC9lB,UAAU,0CAA0Cf,KAAM8mB,IACvFlG,OACIjgB,EAAAA,cAAC0W,EAAAA,OAAMxW,OAAAC,OAAA,CACHC,UAAWO,GAAAA,CAAW,oCAAqC,8BAA8BklB,YAAqB,aAClGmG,EACZpiB,MAAOqiB,EAASM,WAAU,gBACXN,EACf3lB,QAAS4lB,EACTrT,SAAUmK,GACN9W,IAGZvB,YAAa3K,EAAAA,cAACsL,EAAAA,EAAoB,CAAClL,UAAU,6CAA6CuK,YAAaA,IACvG6hB,0BAA2BrC,SAAYzgB,KAAKmiB,8BAA8BzrB,KAIjE,KAAAyrB,8BAAgC1B,MAAAA,IAC7C,MAAMzZ,EAAsBhH,KAAKhN,MAAMyB,KAAKuS,oBAAoBrS,OAEhE,GAAIqS,EAAqB,CACrB,MAAM,UACFtG,EACApL,SAAS,QAAEC,EAAO,cAAEuS,IACpB9H,KAAKhN,MAET,IACI+iB,EADAgN,GAA0B,EAG9B,OAAQC,GACJ,IAAK,eACDD,EAA0B/b,EAAoBic,4BAA6B,EAC3ElN,EAAQ,IAAImN,EAAAA,mCACRlc,EAAoBsC,eACnByZ,EACDxtB,EAAQorB,YACRqC,GAEJ,MACJ,UAAK7a,EACL,IAAK,kBACL,QACI4a,EAA0B/b,EAAoBmc,wBAAyB,EACvEpN,EAAQ,IAAImN,EAAAA,mCACRlc,EAAoBsC,eACnByZ,EACDxtB,EAAQorB,YACRqC,GAIZhjB,KAAK4hB,sBAAuB,EAE5B,UACUwB,EAAAA,EAAAA,+BAA8BrN,EAAOjO,GAC7C,MAAO1N,GACDsG,IACAA,EAAUogB,UAAU1mB,GACpBsG,EAAUqgB,MAAM,8CAIxB/gB,KAAK4hB,sBAAuB,IAInB,KAAAyB,0BAA4B,IAClC/sB,EAAAA,cAAC0gB,EAAwB,CAACgB,oBAAqBhY,KAAKhN,QA/W3DgN,KAAKM,kBAAmBC,EAAAA,EAAAA,oBACpBP,KAAKhN,MAAMsC,QAAQC,QAAQiL,kBAC3BR,KAAKhN,MAAMyN,aACXT,KAAKhN,MAAM0N,WAEfV,KAAKkC,SAAUC,EAAAA,EAAAA,kBAAiB,QAASnC,KAAKM,iBAAkB,IAG7DyD,sBAAsBC,GACzB,OAAIhE,KAAKhN,MAAMyB,OAASuP,EAAUvP,KAM/BkM,SAAM,IAAAmX,EAAAwL,EACT,MAAM,OAAExvB,EAAM,UAAEQ,EAAS,KAAEG,GAASuL,KAAKhN,OACnC,UAAE0D,EAAS,QAAExD,EAAO,2BAAE4uB,EAA0B,mBAAEE,EAAkB,eAAE5J,EAAc,UAAEyB,EAAS,cAAEE,GAAkBjmB,GAEnH,eAAEmuB,EAAc,oBAAEsB,GAAwBjvB,EAC1C0S,EAAsBvS,EAAKuS,oBAAoBrS,OAErDqL,KAAK4X,mCACgB,QAAjBE,EAAArjB,EAAK0kB,oBAAY,IAAArB,GAAQ,QAARA,EAAjBA,EAAmBnjB,cAAM,IAAAmjB,GAAqE,QAArEA,EAAzBA,EAA2BS,MAAKa,GAAWA,EAAQV,OAAS1Y,KAAK2X,sCAA6B,IAAAG,OAAA,EAA9FA,EAAgGuB,aAAa,EAEjH,MAAMmK,MACqB,QAAtBF,EAAAtjB,KAAKhN,MAAMsC,QAAQikB,WAAG,IAAA+J,GAAQ,QAARA,EAAtBA,EAAwBxvB,cAAM,IAAAwvB,OAAA,EAA9BA,EAAgC9J,6CAChCxS,MAAAA,OAAmB,EAAnBA,EAAqByS,oBACrBzZ,KAAK4X,kCAGJ6L,EAA0BrL,GAAkBA,EAAergB,OAAS,GAAM8hB,GAAaE,IAAiB,EACxG2J,EAAuB,CACzBxsB,QAAS,CACLC,eAAgBqM,GAAAA,CAAIxD,KAAKhN,MAAO,sCAAuC,KAE3EoE,SAAU6qB,EACVtf,UAAW4gB,EACX7B,WAAY8B,GAGVriB,EAASC,EAAAA,EAAA,GACRpB,KAAKhN,OAAK,IACb0D,UAAAA,EACAirB,eAAgB,CACZntB,YAAawL,KAAKhN,MAClB0D,UAAWO,GAAAA,CAAW,qBAAsBnD,EAAO4C,YAEvDitB,eAAgBH,GACZltB,EAAAA,cAAC+K,EAAAA,GAAa,CAAC3K,UAAU,2BAA2Bf,KAAMrB,EAAUsvB,sCAExEC,sBAAuB,CACnBntB,UAAWO,GAAAA,CAAW,+BAE1B/D,QAASA,GACLoD,EAAAA,cAAC+K,EAAAA,GAAa,CACV3K,UAAU,mCACV4K,IAAKpO,EAAQoO,KAAO,KACpB3L,KAAMzC,EAAQyC,KACd4L,UAAW,CAAEC,OAAQxB,KAAKF,oBAAqB2B,eAAgBzB,KAAKhN,MAAMsC,QAAQC,WAG1FuuB,aAAc9jB,KAAK+jB,oBACf9sB,GAAAA,CAAW,8BAA+B,qCAC1C6qB,EACA9a,GAAuBA,EAAoBU,OAE/Csc,YAAahkB,KAAKikB,mBACdhtB,GAAAA,CAAW,8BAA+B,oCAC1C+qB,EACAhiB,KAAKkkB,eAAeld,GACpB3F,EAAAA,GAAsBrB,KAAKhN,MAAMsC,QAAQC,cAAW4S,EAAY,CAACub,IAErES,kBAAmBnkB,KAAKokB,yBACpBntB,GAAAA,CAAW,8BAA+B,2CAC1CusB,EACAxc,GAEJqd,0BAA2B,CACvB3tB,UAAWO,GAAAA,CAAW,2CAE1BqtB,0BAA2Bb,GAA0BzjB,KAAKqjB,8BAE9D,OAAOrjB,KAAKhN,MAAM6O,WAAWV,GAiBvB,qBACN,OAAOqC,GAAAA,CAAIxD,KAAKhN,MAAO,sCAAuC,IAG1DkxB,eAAeld,GACnB,IAAI/F,EAAc,GASlB,YAR4BkH,IAAxBnB,IACIA,EAAoB0C,YACpBzI,GAAe+F,EAAoB0C,WAEnC1C,EAAoB2C,WACpB1I,GAAe+F,EAAoB0C,UAAY,IAAI1C,EAAoB2C,WAAa3C,EAAoB2C,WAGzG1I,EAGH8iB,oBACJrtB,EACAxD,EACA+N,EACAZ,GAEA,MAAO,CACHkkB,mBAAoB,CAChB7tB,UAAAA,GAEJxD,QAASA,GAAWA,EAAQyC,MACxBW,EAAAA,cAAC+K,EAAAA,GAAa,CACV3K,UAAU,sCACV4K,IAAKpO,EAAQoO,KAAO,KACpB3L,KAAMzC,EAAQyC,KACd4L,UAAW,CAAEC,OAAQxB,KAAK6hB,yBAA0BpgB,eAAgBzB,KAAKhN,MAAMsC,QAAQC,WAG/F8K,MAAOA,GAASA,EAAMtI,OAAS,GAC3BzB,EAAAA,cAACoL,EAAclL,OAAAC,OAAA,GACP,CACA4J,MAAAA,EACAsB,aAAc3B,KAAKG,qBACnBsB,eAAgBzB,KAAKhN,MAAMsC,QAAQC,QACnC+K,iBAAkBN,KAAKM,oBAInCW,YAAaA,GACT3K,EAAAA,cAACsL,EAAAA,EAAoB,CAAClL,UAAU,0CAA0CuK,YAAaA,KAK3FgjB,mBACJvtB,EACAxD,EACA+N,EACAZ,GAEA,OAAKmkB,EAAAA,gBAAgBC,YAAYpkB,GAkB1B,CACHkkB,mBAAoB,CAChB7tB,UAAAA,GAEJxD,QAASA,GACLoD,EAAAA,cAAC+K,EAAAA,GAAa,CACV3K,UAAU,sCACV4K,IAAKpO,EAAQoO,KAAO,KACpB3L,KAAMzC,EAAQyC,KACd4L,UAAW,CAAEC,OAAQxB,KAAK+hB,wBAAyBtgB,eAAgBzB,KAAKhN,MAAMsC,QAAQC,WAG9F8K,MACI/J,EAAAA,cAACoL,EAAclL,OAAAC,OAAA,GACP,CACA4J,MAAAA,EACAsB,aAAc3B,KAAKG,qBACnBsB,eAAgBzB,KAAKhN,MAAMsC,QAAQC,QACnC+K,iBAAkBN,KAAKM,oBAInCW,YAAaA,GACT3K,EAAAA,cAACsL,EAAAA,EAAoB,CAAClL,UAAU,0CAA0CuK,YAAaA,KAxCpF,CACHsjB,mBAAoB,CAChB7tB,UAAAA,GAEJxD,QAASA,GACLoD,EAAAA,cAAC+K,EAAAA,GAAa,CACV3K,UAAU,sCACV4K,IAAKpO,EAAQoO,KAAO,KACpB3L,KAAMzC,EAAQyC,KACd4L,UAAW,CAAEC,OAAQxB,KAAK+hB,wBAAyBtgB,eAAgBzB,KAAKhN,MAAMsC,QAAQC,WAG9F0L,YAAaA,GACT3K,EAAAA,cAACsL,EAAAA,EAAoB,CAAClL,UAAU,0CAA0CuK,YAAaA,KAoC/FmjB,yBACJ1tB,EACA8sB,EACAxc,GAEA,MAAM,2BACF0d,EAA0B,qCAC1BC,EAAoC,uBACpCC,EAAsB,iCACtBC,GACA7kB,KAAKhN,MAAMsB,WACT,0BAAEwwB,EAAyB,8BAAEC,EAA6B,0BAAEC,GAA8BhlB,KAAKhN,MAAMc,QACrG,oBAAEmxB,GAAwBjlB,KAAKhN,MAAMsC,QAAQC,QAAQ2vB,SACrDC,EAAyC,GAE/C,OAAKne,GAMLie,GACID,GACAG,EAAiBpiB,KACb/C,KAAKoiB,kBACD,eACA4C,EACAH,EACAD,EACA5d,EAAoBic,4BAA6B,EACjDO,IAIL,CACH4B,mBAAoB,CAChB1uB,UAAAA,GAEJxD,QAAS4xB,GACLxuB,EAAAA,cAAC+K,EAAAA,GAAa,CACV3K,UAAU,sCACV4K,IAAKwjB,EAA0BxjB,KAAO,KACtC3L,KAAMmvB,EAA0BnvB,KAChC4L,UAAW,CAAEC,OAAQxB,KAAKF,oBAAqB2B,eAAgBzB,KAAKhN,MAAMsC,QAAQC,WAG1F8vB,gBAAiBrlB,KAAKoiB,kBAClB,kBACA2C,EACAJ,EACAD,EACA1d,EAAoBmc,wBAAyB,EAC7CK,GAEJ2B,iBAAkBA,QAAoBhd,KAtCtCnI,KAAKhN,MAAMsC,QAAQoL,UAAUtG,MAAM,qDAC5B,SA1OHkL,EAAAA,EAAAA,IAAA,CAAX2Q,EAAAA,IAAU,4CA8GD3Q,EAAAA,EAAAA,IAAA,CAATC,EAAAA,IAAQ,mCA/GPoc,GAAcrc,EAAAA,EAAAA,IAAA,CADnB4Q,EAAAA,IACKyL,GA8XN,uGC5cA,MAAM2D,EAA2DxjB,IAAuE,IAAtE,mBAAEsjB,EAAkB,QAAElyB,EAAO,gBAAEmyB,EAAe,iBAAEF,GAAkBrjB,EAChI,OACIxL,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAK2uB,GACLlyB,EACDoD,EAAAA,cAACivB,EAAwB/uB,OAAAC,OAAA,GAAK4uB,IAC7BF,GACGA,EAAiBntB,KAAI,CAACwtB,EAAkBnjB,IAC7B/L,EAAAA,cAACivB,EAAwB/uB,OAAAC,OAAA,GAAK+uB,EAAgB,CAAErtB,IAAKkK,SAM1EkjB,EAAyD/f,IAQ1D,IAR2D,kBAC5Did,EAAiB,QACjBvvB,EAAO,YACP+N,EAAW,cACXyhB,EAAa,cACbC,EAAa,OACbpM,EAAM,aACNqM,GACHpd,EACG,OACIlP,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKgsB,GACLvvB,EACA+N,EACD3K,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKisB,GACLE,EACArM,EACAoM,KAMX8C,EAAuDpP,IAAwD,IAAvD,mBAAEkO,EAAkB,QAAErxB,EAAO,MAAEmN,EAAK,YAAEY,GAAaoV,EAC7G,OACI/f,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAK8tB,GACLrxB,EACA+N,EACAZ,IAkCb,EA7B+DrN,IAC3D,MAAM,eACF2uB,EAAc,eACdgC,EAAc,sBACdE,EAAqB,QACrB3wB,EAAO,aACP4wB,EAAY,YACZE,EAAW,kBACXG,EAAiB,0BACjBE,EAAyB,0BACzBC,GACAtxB,EAEJ,OACIsD,EAAAA,cAACC,EAAAA,OAAMC,OAAAC,OAAA,GAAKkrB,GACPgC,EACAE,GACGvtB,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKotB,GACL3wB,EACDoD,EAAAA,cAACmvB,EAAqBjvB,OAAAC,OAAA,GAAKqtB,IAC3BxtB,EAAAA,cAACmvB,EAAqBjvB,OAAAC,OAAA,GAAKutB,IAC3B1tB,EAAAA,cAACgvB,EAAyB9uB,OAAAC,OAAA,GAAK0tB,KAGtCE,GAA6B/tB,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAK4tB,GAA4BC,qEClEhF,MAIA,EAJyExiB,IAAA,IAAC,UAAEpL,EAAS,YAAEuK,GAAaa,EAAA,OAChGxL,EAAAA,cAAA,KAAGI,UAAWA,GAAYuK,8DCD9B,MAEA,EAF2Da,IAAA,IAAC,UAAEpL,EAAS,KAAEf,GAAMmM,EAAA,OAAKxL,EAAAA,cAAA,QAAMI,UAAWA,GAAYf,uICDjH,MAIA,EAJmFmM,IAAA,IAAC,YAAEb,GAAaa,EAAA,OAC/FxL,EAAAA,cAAA,KAAGI,UAAU,yCAAyCuK,ICuBpDc,EAAoBA,CAACC,EAAwB1B,KAC/C,IAAK0B,GAAgC,IAApBA,EAASjK,OACtB,OAAO,KAEX,MAAMkK,EAAuC,GACvCC,GAAUC,EAAAA,EAAAA,kBAAiB,QAAS7B,EAAmB,IAgB7D,OAfA0B,EAAS1D,SAAQ,CAAC8D,EAAMC,KACpBH,EAAQI,cAAcC,MAAQH,EAAKhL,SACnC,MAAMoL,GAAaC,EAAAA,EAAAA,wBAAuBnC,EAAmB4B,GACvDQ,EAAoC,CACtCC,UAAWP,EAAKO,UAChBjM,UAAW,iCACXU,SAAUgL,EAAKhL,SACfF,QAASkL,EAAKlL,QAAQC,eACtByL,aAAcR,EAAKQ,aACnBC,KAAM,OACNC,qBAAsBN,GAE1BP,EAAcc,KAAKL,MAGhBT,GAGX,EAtCsEH,IAA8D,IAA7D,MAAEzB,EAAK,iBAAEC,EAAgB,aAAEqB,EAAY,eAAEF,GAAgBK,EAC5H,GAAqB,IAAjBzB,EAAMtI,OACN,OAAO,KAEX,MAAMkK,EAAgBF,EAAkB1B,EAAOC,GAC/C,OACIhK,EAAAA,cAAA,OAAKI,UAAU,mCACVuL,GAAiBA,EAAclK,OAAS,EACrCzB,EAAAA,cAAC+K,EAAAA,GAAc,CAAChB,MAAO4B,EAAeV,UAAW,CAAEI,aAAAA,EAAcF,eAAAA,KACjE,4kBCHhB,MAAMikB,UAA4BpvB,EAAAA,cAG9BsJ,YAAY5M,GACR6M,MAAM7M,GAgDH,KAAA8M,oBAAuBC,GAA0CC,KAAKhN,MAAMc,OAAOZ,QAAQyC,KAAOoK,EAAME,OAAOC,MAE/G,KAAAC,qBAAwBC,GAAuBL,IAC9CC,KAAKhN,MAAMc,OAAOuM,OAASL,KAAKhN,MAAMc,OAAOuM,MAAMD,KACnDJ,KAAKhN,MAAMc,OAAOuM,MAAMD,GAAWhJ,SAAW2I,EAAME,OAAOC,QAnD/DF,KAAKM,kBAAmBC,EAAAA,EAAAA,oBACpBP,KAAKhN,MAAMsC,QAAQC,QAAQiL,kBAC3BR,KAAKhN,MAAMyN,aACXT,KAAKhN,MAAM0N,WAIZC,SACH,MAAM,OAAE7M,EAAM,UAAEQ,EAAS,KAAEG,GAASuL,KAAKhN,OACnC,UAAE0D,EAAS,QAAExD,EAAO,MAAEmN,GAAUvM,GAChC,+BAAE6xB,GAAmCrxB,EACrCsxB,EAAYnxB,EAAKmxB,UAAUjxB,OAE3BkxB,GAAmBD,GAAaA,EAAU7tB,QAAU6tB,EAAU,GAAGE,mBAAsB,IAAI/tB,OAC3FkJ,GAAcC,EAAAA,EAAAA,QAAOykB,GAAkC,sCAAuCE,GAE9F1kB,EAASC,EAAAA,EAAA,GACRpB,KAAKhN,OAAK,IACb0D,UAAAA,EACAgvB,oBAAqB,CACjBlxB,YAAawL,KAAKhN,MAClB0D,UAAWO,GAAAA,CAAW,2BAA4BnD,EAAO4C,YAE7DxD,QAASA,GAAWA,EAAQyC,MACxBW,EAAAA,cAAC+K,EAAAA,GAAa,CACV3K,UAAU,oCACV4K,IAAKpO,EAAQoO,IACb3L,KAAMzC,EAAQyC,KACd4L,UAAW,CAAEC,OAAQxB,KAAKF,oBAAqB2B,eAAgBzB,KAAKhN,MAAMsC,QAAQC,WAG1F8K,MAAOA,GAASA,EAAMtI,OAAS,GAC3BzB,EAAAA,cAACoL,EAAclL,OAAAC,OAAA,GACP,CACA4J,MAAAA,EACAsB,aAAc3B,KAAKG,qBACnBsB,eAAgBzB,KAAKhN,MAAMsC,QAAQC,QACnC+K,iBAAkBN,KAAKM,oBAInCW,YAAa3K,EAAAA,cAACsL,EAAoB,CAACX,YAAaA,MAGpD,OAAOjB,KAAKhN,MAAM6O,WAAWV,IAYrC,uGC/EA,MAYA,EAZyEnO,IACrE,MAAM,oBAAE0yB,EAAmB,QAAExyB,EAAO,YAAE+N,EAAW,MAAEZ,GAAUrN,EAE7D,OACIsD,EAAAA,cAACC,EAAAA,OAAMC,OAAAC,OAAA,GAAKivB,GACPxyB,EACA+N,EACAZ,kKCVN,MAAM0lB,EAA0C/yB,GAC5CsD,IAAAA,cAAA,KAAGI,UAAU,2BAA2B1D,EAAM2C,2kBCsCzD,IAAMqwB,EAAN,cAA4B1vB,EAAAA,UAOxBsJ,YAAY5M,GACR6M,MAAM7M,GAiHH,KAAA8M,oBAAuBC,GAA0CC,KAAKhN,MAAMc,OAAOZ,QAASyC,KAAOoK,EAAME,OAAOC,MAEhH,KAAA+lB,0BAA6BlmB,GAC/BC,KAAKhN,MAAMc,OAAOoyB,cAAevwB,KAAOoK,EAAME,OAAOC,MAEzC,KAAAimB,cAAgB,KAC7B,GAAInmB,KAAKhN,MAAMsC,QAAQC,QAAQC,KAAK4wB,kBAAoBpmB,KAAKvF,MAAM4rB,QAAS,CACxErmB,KAAKoD,SAAS,CAAEijB,SAAS,IACzB,MAAMtQ,EAAQ,IAAIuQ,EAAAA,kBAAkBtmB,KAAKhN,MAAMsC,QAAQC,QAAQorB,cAE/D4F,EAAAA,EAAAA,cAAaxQ,EAAO/V,KAAKhN,MAAMsC,QAAQwS,eAClC0e,MAAK,KACEtJ,EAAAA,GAASC,WACThL,OAAOsU,SAAShwB,OAAO4K,EAAAA,GAAoB,UAAWrB,KAAKhN,MAAMsC,QAAQwS,gBAAkB,OAGlG4e,OAAOtsB,IACJ4F,KAAKoD,SAAS,CAAEijB,SAAS,IACzBrmB,KAAKhN,MAAM0N,UAAUtG,MAAMA,EAAMwY,SACjC5S,KAAKhN,MAAM0N,UAAUqgB,MAAM,qCAnIvC/gB,KAAKvF,MAAQ,CAAE4rB,SAAS,GACxBrmB,KAAKM,kBAAmBC,EAAAA,EAAAA,oBACpBP,KAAKhN,MAAMsC,QAAQC,QAAQiL,kBAC3BR,KAAKhN,MAAMyN,aACXT,KAAKhN,MAAM0N,WAEf,MAAMwB,GAAUC,EAAAA,EAAAA,kBAAiB,QAASnC,KAAKM,iBAAkBkP,EAAAA,kBAAkBmX,QACnF3mB,KAAK4mB,yBAA0BnkB,EAAAA,EAAAA,wBAAuBzC,KAAKM,iBAAkB4B,GAC7EA,EAAQI,cAAcC,MAAQiN,EAAAA,kBAAkBqX,OAChD7mB,KAAK8mB,yBAA0BrkB,EAAAA,EAAAA,wBAAuBzC,KAAKM,iBAAkB4B,GAC7EA,EAAQI,cAAcC,MAAQiN,EAAAA,kBAAkBuX,kBAChD/mB,KAAKgnB,8BAA+BvkB,EAAAA,EAAAA,wBAAuBzC,KAAKM,iBAAkB4B,GAClFA,EAAQI,cAAcC,MAAQiN,EAAAA,kBAAkByX,iBAChDjnB,KAAKknB,4BAA6BzkB,EAAAA,EAAAA,wBAAuBzC,KAAKM,iBAAkB4B,GAG7E6B,sBAAsBC,EAAoDC,GAC7E,OAAIjE,KAAKvF,QAAUwJ,GAAajE,KAAKhN,MAAMyB,OAASuP,EAAUvP,KAM3DkM,SAAM,IAAAwmB,EAAA7D,EACT,MACIxvB,QAAQ,UAAE4C,EAAS,QAAExD,EAAO,cAAEgzB,GAAe,UAC7C5xB,EACAgB,SAAS,cACLwS,EACAvS,SACIC,MAAM,UAAE4xB,EAAS,gBAAEhB,KAE1B,KACD3xB,GACAuL,KAAKhN,MAEHq0B,EAAWhmB,EAAAA,GAAoB,eAAgByG,GACrD,IAAIwf,EAAiB,GAAGjmB,EAAAA,GAAoB,cAAeyG,yBACvDoV,EAAAA,GAASC,YACTmK,EAAiB,GAAGnV,OAAOsU,SAASc,SAASD,KAEjD,MAAME,EAAY,GAAGJ,QAAgBE,IAC/BG,EAAgBC,GAAAA,CAAU,oBAAqBhxB,GAC/ChC,EAAcD,EAAKC,YACnBizB,EAAoBjzB,EAAYC,aAAqDwT,IAA3CzT,EAAYC,OAAOizB,oBAC7D5gB,EAA8C,QAA3BmgB,EAAG1yB,EAAKuS,2BAAmB,IAAAmgB,OAAA,EAAxBA,EAA0BxyB,OAEhD6uB,GACqB,QAAtBF,EAAAtjB,KAAKhN,MAAMsC,QAAQikB,WAAG,IAAA+J,GAAQ,QAARA,EAAtBA,EAAwBxvB,cAAM,IAAAwvB,OAAA,EAA9BA,EAAgC9J,4CAChCxS,MAAAA,OAAmB,EAAnBA,EAAqByS,mBADuD,EAE3EtY,EAASC,EAAAA,EAAA,GACRpB,KAAKhN,OAAK,IACb0D,UAAW+wB,EACXzB,cAAe,CACXxxB,YAAawL,KAAKhN,MAClB0D,UAAW+wB,GAEf9D,eAAgBH,GACZltB,EAAAA,cAAC+K,EAAAA,GAAa,CAAC3K,UAAU,0BAA0Bf,KAAMrB,EAAUsvB,sCAEvEnQ,SAAUzT,KAAKhN,MAAMsC,QAAQC,QAAQ0b,OAAOC,UAAoC,aAAxBxc,MAAAA,OAAW,EAAXA,EAAa6C,QACrErE,SAAUy0B,GAAqBz0B,GAAWA,EAAQyC,MAC9CW,EAAAA,cAAC+K,EAAAA,GAAa,CACV3K,UAAU,6BACV4K,IAAKpO,EAAQoO,IACb3L,KAAMzC,EAAQyC,KACd4L,UAAW,CAAEC,OAAQxB,KAAKF,oBAAqB2B,eAAgBzB,KAAKhN,MAAMsC,QAAQC,WAG1F2wB,cAAeyB,GAAqBzB,GAAiBA,EAAcvwB,MAC/DW,EAAAA,cAAC+K,EAAAA,GAAa,CACV3K,UAAU,6BACV4K,IAAK4kB,EAAc5kB,IACnB3L,KAAMuwB,EAAcvwB,KACpB4L,UAAW,CAAEC,OAAQxB,KAAKimB,0BAA2BxkB,eAAgBzB,KAAKhN,MAAMsC,QAAQC,WAGhGsyB,YAAazB,GACT9vB,EAAAA,cAAC0W,EAAAA,OAAMxW,OAAAC,OAAA,CAACC,UAAU,4BAA4BG,KAAM2wB,GAAexnB,KAAK4mB,yBACnE5mB,KAAKhN,MAAMsB,UAAUwzB,uBAG9BC,YAAaJ,GAAqBrxB,EAAAA,cAACyvB,EAAU,CAACpwB,KAAMrB,EAAU0zB,qBAC9DC,cAAeN,GAAqBvB,GAChC9vB,EAAAA,cAAC0W,EAAAA,OAAMxW,OAAAC,OAAA,CACHC,UAAU,yBACVyY,SAAUqU,EACV5mB,QAASoD,KAAKmmB,eACVnmB,KAAK8mB,yBAER9mB,KAAKhN,MAAMsB,UAAUwzB,uBAG9BI,YAAaP,GACTrxB,EAAAA,cAAC0W,EAAAA,OAAMxW,OAAAC,OAAA,CACHC,UAAU,6BACVG,KAAMwK,EAAAA,GAAoB,UAAWrB,KAAKhN,MAAMsC,QAAQwS,gBACpD9H,KAAKgnB,8BAERhnB,KAAKhN,MAAMsB,UAAUD,qBAG9B8zB,WAAYR,GACRrxB,EAAAA,cAAC0W,EAAAA,OAAMxW,OAAAC,OAAA,CAACC,UAAU,2BAA2BG,KAAMwwB,GAAcrnB,KAAKknB,4BACjElnB,KAAKhN,MAAMsB,UAAU8zB,wBAKlC,OAAOpoB,KAAKhN,MAAM6O,WAAWV,KAtH/B6kB,GAAa1gB,EAAAA,EAAAA,IAAA,CADlB4Q,EAAAA,IACK8P,GAkJN,iGCtLA,MAiCA,EAjC6DhzB,IACzD,MAAM,cACFgzB,EAAa,QACb9yB,EAAO,cACPgzB,EAAa,WACb2B,EAAU,WACVE,EAAU,aACVE,EAAY,YACZC,EAAW,UACXC,EAAS,QACT1U,EAAO,eACPkQ,GACA3wB,EAEJ,OAAIygB,GACAzgB,EAAMsC,QAAQoL,UAAUtG,MAAM,mDACvB,MAIP9D,EAAAA,cAACC,EAAAA,OAAMC,OAAAC,OAAA,GAAKuvB,GACPrC,EACAuC,EACAhzB,EACAg1B,EACAH,EACAI,EACAF,EACAJ,wFCcN,MAAMQ,EAAqBr1B,IAC9B,MAAMkP,GAAUC,EAAAA,EAAAA,kBAAiB,QAASnP,EAAMsN,iBAAmBkP,EAAAA,kBAAkB8Y,oBAC/EC,GAA8B9lB,EAAAA,EAAAA,wBAAuBzP,EAAMsN,iBAAmB4B,GACpFA,EAAQI,cAAcC,MAAQiN,EAAAA,kBAAkBgZ,mBAChD,MAAMC,GAA8BhmB,EAAAA,EAAAA,wBAAuBzP,EAAMsN,iBAAmB4B,GACpFA,EAAQI,cAAcC,MAAQiN,EAAAA,kBAAkBkZ,kBAChD,MAAMC,GAAgClmB,EAAAA,EAAAA,wBAAuBzP,EAAMsN,iBAAmB4B,GACtF,MAAO,CACHzI,MAAO,CACH6H,IAAK+M,EAAAA,MACL3X,UAAW,0BACXiV,OAAQ3Y,EAAM41B,SACdC,gBAAiB,aACjBhb,OAAQ7a,EAAM6a,OACdib,eAAgB91B,EAAM+1B,WAE1BrvB,YAAa,CAAE4H,IAAKoN,EAAAA,YAAahY,UAAW,iCAAkCiV,OAAQ3Y,EAAM41B,UAC5FvuB,YAAa,CAAEiH,IAAK4N,EAAAA,YAAaxY,UAAW,kCAC5CiD,UAAW,CAAE2H,IAAKqN,EAAAA,UAAWjY,UAAW,gCACxC6D,aACIjE,IAAAA,cAAC0W,EAAAA,OAAMxW,OAAAC,OAAA,CAACC,UAAU,2BAA2BkG,QAAS5J,EAAM41B,UAAcL,GACrEv1B,EAAMsB,UAAU00B,wBAGzB1uB,aACIhE,IAAAA,cAAC0W,EAAAA,OAAMxW,OAAAC,OAAA,CACHC,UAAU,2BACVkG,QAAS5J,EAAMi2B,SACf9Z,UAAWnc,EAAMk2B,SACbT,GAEHz1B,EAAMsB,UAAU60B,sBAGzBj2B,QAASoD,IAAAA,cAAA,KAAGI,UAAU,6BAA6B1D,EAAMsB,UAAU80B,qBACnEzrB,MAAO3K,EAAM2K,MACb0rB,aAAc,CAAE3yB,UAAW,mCAC3B4yB,SACIhzB,IAAAA,cAAA,QAAAE,OAAAC,OAAA,CACIC,UAAU,8BACNiyB,EAA6B,CACjC9Z,KAAK,WACLqa,QAASl2B,EAAMk2B,QAAO,eACRl2B,EAAMk2B,QACpBna,SAAU/b,EAAMu2B,WAGxBC,UAAWlzB,IAAAA,cAAA,KAAGI,UAAU,2BAA2B1D,EAAMsB,UAAUm1B,6vBClE3E,MAAMC,UAAqBpzB,EAAAA,UAKvBsJ,YAAmB5M,GACf6M,MAAM7M,GACNgN,KAAK2pB,QAAU3pB,KAAK2pB,QAAQC,KAAK5pB,MACjCA,KAAK6pB,QAAU7pB,KAAK6pB,QAAQD,KAAK5pB,MACjCA,KAAK8pB,iBAAmB9pB,KAAK8pB,iBAAiBF,KAAK5pB,MACnDA,KAAK+pB,UAAYzzB,EAAAA,YACjB0J,KAAKM,kBAAmBC,EAAAA,EAAAA,oBACpBP,KAAKhN,MAAMsC,QAAQC,QAAQiL,kBAC3BR,KAAKhN,MAAMyN,aACXT,KAAKhN,MAAM0N,WAEf,IAAInD,EAASyC,KAAKhN,MAAMsC,QAAQC,QAAQsI,IAAIC,WAAWP,OACnDysB,GAAY,EAChB,GAAIzsB,EAAQ,CACRA,EAASA,EAAOS,UAAU,GAC1B,MAAMisB,EAAO1sB,EAAO1H,MAAM,KAC1B,IAAK,MAAMq0B,KAAOD,EAAM,CACpB,MAAME,EAAWD,EAAIr0B,MAAM,KAE3B,GADAm0B,EAA4B,mBAAhBG,EAAS,IAA2C,SAAhBA,EAAS,GACrDH,EACA,OAKZhqB,KAAKvF,MAAQ,CACTiR,YAAase,EACbd,SAAS,EACT7C,SAAS,GAIVtiB,sBAAsBC,EAAkDC,GAC3E,OAAIjE,KAAKvF,QAAUwJ,GAAajE,KAAKhN,MAAMyB,OAASuP,EAAUvP,KAM3DkM,SACH,MACI7M,QAAQ,UAAE4C,EAAS,WAAE0zB,GAAY,UACjC91B,EACA+1B,OAAO,aAAEC,GACT71B,MAAM,YAAEC,GACRY,SACIC,SACIC,MAAM,gBAAE4wB,MAGhBpmB,KAAKhN,MACHy0B,EAAgBC,GAAAA,CAAU,mBAAoBhxB,GAE9CyK,EAASC,EAAAA,EAAA,GACRpB,KAAKhN,OAAK,IACb0D,UAAW+wB,EACXiC,aAAc,CACVl1B,YAAawL,KAAKhN,MAClB0D,UAAW+wB,GAEfhU,QAAgC,YAAvB/e,EAAY6C,OACrBgzB,aAA4B,IAAfH,GACT9zB,EAAAA,cAAC0W,EAAAA,OAAM,CAACtW,UAAU,2BAA2BkG,QAASoD,KAAK2pB,QAAS1c,SAAUjN,KAAK+pB,WAC9Ez1B,EAAUk2B,4BAGnB/wB,MACI2sB,GACA1xB,EAAYC,aACsBwT,IAAlCzT,EAAYC,OAAO8b,aACnB4X,EAAAA,EAAAA,GAAkB,CACd/zB,UAAS8M,EAAA,GAAO9M,GAChBy0B,UAAW/oB,KAAK+pB,UAChBb,QAASlpB,KAAKvF,MAAMyuB,QACpBrb,OAAQ7N,KAAKvF,MAAMiR,YACnB/N,MAAO2sB,EACPhqB,iBAAkBN,KAAKM,iBACvBsoB,SAAU5oB,KAAK2pB,QACfV,SAAUjpB,KAAK6pB,QACfN,QAASvpB,KAAK8pB,qBAI1B,OAAO9pB,KAAKhN,MAAM6O,WAAWV,GAGzBwoB,UACJ3pB,KAAKoD,SAAS,CAAEsI,aAAc1L,KAAKvF,MAAMiR,YAAawd,SAAS,IAG3DW,UACJ,GAAI7pB,KAAKhN,MAAMsC,QAAQC,QAAQC,KAAK4wB,kBAAoBpmB,KAAKvF,MAAM4rB,QAAS,CACxErmB,KAAKoD,SAAS,CAAEijB,SAAS,IACzB,MAAMtQ,EAAQ,IAAIuQ,EAAAA,kBAAkBtmB,KAAKhN,MAAMsC,QAAQC,QAAQorB,cAE/D4F,EAAAA,EAAAA,cAAaxQ,EAAO/V,KAAKhN,MAAMsC,QAAQwS,eAClC0e,MAAKiE,IACEzqB,KAAKhN,MAAMc,OAAO42B,kBAClBvY,OAAOsU,SAAShwB,QAAOk0B,EAAAA,EAAAA,IAAW,UAAW3qB,KAAKhN,MAAMsC,QAAQwS,gBAAkB,KAElF8iB,EAAAA,EAAAA,qBAAoB,CAAE/iB,cAAe7H,KAAKhN,MAAMsC,QAAQwS,eAAiB2iB,EAAKha,YAAc,IACvF+V,MAAKqE,IACF7qB,KAAKhN,MAAMsC,QAAQwS,cAAcgjB,OAC7B,IAAIC,EAAAA,oBAAoB/qB,KAAKhN,MAAMsC,QAAQC,QAAQorB,aACnDkK,MAGPnE,OAAOtsB,IACJ4F,KAAKhN,MAAMsC,QAAQwS,cAAcgjB,OAC7B,IAAIC,EAAAA,oBAAoB/qB,KAAKhN,MAAMsC,QAAQC,QAAQorB,aACnD8J,GAEJzqB,KAAKhN,MAAM0N,UAAUtG,MAAMA,EAAMwY,SACjC5S,KAAKhN,MAAM0N,UAAUqgB,MAAM,sCAI1C2F,OAAOtsB,IACJ4F,KAAKoD,SAAS,CAAEijB,SAAS,IACzBrmB,KAAKhN,MAAM0N,UAAUtG,MAAMA,EAAMwY,SACjC5S,KAAKhN,MAAM0N,UAAUqgB,MAAM,oCAKnC+I,mBACJ9pB,KAAKoD,SAAS,CAAE8lB,SAAUlpB,KAAKvF,MAAMyuB,WAI7C,iGC9JA,MAwBA,EAxB2Dl2B,IACvD,MAAM,aAAE02B,EAAY,YAAEa,EAAW,MAAE9wB,EAAK,QAAEga,GAAYzgB,EAEtD,OAAQygB,GAAWha,EACfnD,EAAAA,cAACC,EAAAA,OAAMC,OAAAC,OAAA,GAAKizB,GACPa,EACDj0B,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKgD,EAAMA,OACZnD,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKgD,EAAMC,aAAcD,EAAMvG,SACpCoD,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKgD,EAAME,WACXF,EAAMkE,MACPrH,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKgD,EAAM4vB,cACX5vB,EAAM6vB,SACN7vB,EAAM+vB,YAGflzB,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKgD,EAAMY,aACXZ,EAAMa,aACNb,EAAMc,gBAInB,yICpBD,MAAMywB,EAA8FlpB,IAAA,IAAC,YAAEb,GAAaa,EAAA,OACvHxL,EAAAA,cAAA,KAAGI,UAAU,mDAAmDuK,ICUvDgqB,EAAkFnpB,IAK1F,IAL2F,MAC5FzB,EAAK,iBACLC,EAAgB,aAChBqB,EAAY,eACZF,GACHK,EACG,GAAqB,IAAjBzB,EAAMtI,OACN,OAAO,KAEX,MAAMkK,EAAgBF,EAAkB1B,EAAOC,GAC/C,OACIhK,EAAAA,cAAA,OAAKI,UAAU,6CACVuL,GAAiBA,EAAclK,OAAS,EACrCzB,EAAAA,cAAC+K,EAAAA,GAAc,CAAChB,MAAO4B,EAAeV,UAAW,CAAEI,aAAAA,EAAcF,eAAAA,KACjE,OAKVM,EAAoBA,CAACC,EAAwB1B,KAC/C,IAAK0B,GAAgC,IAApBA,EAASjK,OACtB,OAAO,KAEX,MAAMkK,EAAuC,GACvCC,GAAUC,EAAAA,EAAAA,kBAAiB,QAAS7B,EAAmB,IAgB7D,OAfA0B,EAAS1D,SAAQ,CAAC8D,EAAMC,KACpBH,EAAQI,cAAcC,MAAQH,EAAKhL,SACnC,MAAMoL,GAAaC,EAAAA,EAAAA,wBAAuBnC,EAAmB4B,GACvDQ,EAAoC,CACtCC,UAAWP,EAAKO,UAChBjM,UAAW,2CACXU,SAAUgL,EAAKhL,SACfF,QAASkL,EAAKlL,QAAQC,eACtByL,aAAcR,EAAKQ,aACnBC,KAAM,OACNC,qBAAsBN,GAE1BP,EAAcc,KAAKL,MAGhBT,wkBCnCX,MAAMipB,UAA8B50B,EAAAA,cAGhCsJ,YAAY5M,GACR6M,MAAM7M,GAuDH,KAAA8M,oBAAuBC,IAC1BC,KAAKhN,MAAMc,OAAOZ,QAAQyC,KAAOoK,EAAME,OAAOC,OAG3C,KAAAC,qBAAwBC,GAAuBL,IAC9CC,KAAKhN,MAAMc,OAAOuM,OAASL,KAAKhN,MAAMc,OAAOuM,MAAMD,KACnDJ,KAAKhN,MAAMc,OAAOuM,MAAMD,GAAWhJ,SAAW2I,EAAME,OAAOC,QA5D/DF,KAAKM,kBAAmBC,EAAAA,EAAAA,oBACpBP,KAAKhN,MAAMsC,QAAQC,QAAQiL,kBAC3BR,KAAKhN,MAAMyN,aACXT,KAAKhN,MAAM0N,WAIZC,SACH,MAAM,OAAE7M,EAAM,UAAEQ,EAAS,KAAEG,GAASuL,KAAKhN,OACnC,UAAE0D,EAAS,QAAExD,EAAO,MAAEmN,GAAUvM,GAChC,qDAAEq3B,EAAoD,wDAAEC,GAA4D92B,EACpH+2B,EAAW52B,EAAK62B,OAAS72B,EAAK62B,MAAM32B,OACpC42B,EACW,IAAbF,EAAiBF,EAAuDC,EACtEpkB,EAAsBvS,EAAKuS,oBAAoBrS,OAGrD,GAAKqS,MAAAA,IAAAA,EAAqBoD,WACtB,OAAO,KAGX,MAAMjJ,EAASC,EAAAA,EAAA,GACRpB,KAAKhN,OAAK,IACb0D,UAAAA,EACAw0B,sBAAuB,CACnB12B,YAAawL,KAAKhN,MAClB0D,UAAWO,GAAAA,CAAW,qCAAsCnD,EAAO4C,YAEvExD,QAASA,GAAWA,EAAQyC,MACxBW,EAAAA,cAAC+K,EAAAA,GAAa,CACV3K,UAAU,8CACV4K,IAAKpO,EAAQoO,IACb3L,KAAMzC,EAAQyC,KACd4L,UAAW,CAAEC,OAAQxB,KAAKF,oBAAqB2B,eAAgBzB,KAAKhN,MAAMsC,QAAQC,WAG1F8K,MAAOA,GAASA,EAAMtI,OAAS,GAC3BzB,EAAAA,cAAC20B,EAAiCz0B,OAAAC,OAAA,GAC1B,CACA4J,MAAAA,EACAsB,aAAc3B,KAAKG,qBACnBsB,eAAgBzB,KAAKhN,MAAMsC,QAAQC,QACnC+K,iBAAkBN,KAAKM,oBAInCW,YACI3K,EAAAA,cAAC00B,EAAuC,CAAC/pB,aAAaC,EAAAA,EAAAA,QAAOqqB,EAAyCF,GAAY,OAI1H,OAAOrrB,KAAKhN,MAAM6O,WAAWV,IAcrC,wGCvFA,MAYA,EAZ6EnO,IACzE,MAAM,sBAAEk4B,EAAqB,QAAEh4B,EAAO,YAAE+N,EAAW,MAAEZ,GAAUrN,EAE/D,OACIsD,EAAAA,cAACC,EAAAA,OAAMC,OAAAC,OAAA,GAAKy0B,GACPh4B,EACA+N,EACAZ,+ECCb,MAUA,EAV4DyB,IAA4E,IAA3E,GAAE6L,EAAE,UAAEjX,EAAS,KAAEf,EAAI,UAAEgN,EAAS,SAAEwM,EAAQ,iBAAE7O,EAAgB,QAAE1D,GAASkF,EAChI,MAAMI,GAAUC,EAAAA,EAAAA,kBAAiB,QAAS7B,EAAmB3K,GACvD6M,GAAaC,EAAAA,EAAAA,wBAAuBnC,EAAmB4B,GAC7D,OACI5L,EAAAA,cAAC0W,EAAAA,OAAMxW,OAAAC,OAAA,CAACkX,GAAIA,EAAIjX,UAAWA,EAAS,aAAciM,EAAWwM,SAAUA,EAAUvS,QAASA,GAAa4F,GAClG7M,+ECRb,MAUA,EAV+DmM,IAA8C,IAA7C,GAAE6L,EAAE,UAAEjX,EAAS,KAAEmY,EAAO,OAAM,QAAE+D,GAAS9Q,EACrG,MAAM2U,EAAiB,GAAG/f,MAAcmY,UAExC,OACIvY,EAAAA,cAAA,OAAKqX,GAAIA,EAAIjX,UAAWO,GAAAA,CAAWwf,EAAgB,QAAS,GAAG5H,UAAchM,KAAK,QAAO,YAAW,YAAW,cAAa,QACxHvM,EAAAA,cAAA,KAAGI,UAAW,GAAG+f,UAAwB7D,qECQrD,MAAM8D,EAAgBhB,IAClB,GAAIA,EAAW,CACX,MAAMiB,EAAkBC,OAAOC,SAASnB,EAAW,IACnD,IAAKoB,MAAMH,GACP,OAAOA,IAoBnB,EAb+D7U,IAAA,IAAC,GAAE6L,EAAE,KAAEkB,EAAI,MAAE3O,EAAK,QAAEyV,EAAO,UAAEjf,EAAS,UAAEgf,EAAS,SAAE3G,GAAUjN,EAAA,OACxHxL,EAAAA,cAAA,SACIqX,GAAIA,EACJkB,KAAMA,EACN3O,MAAOA,EACPxJ,UAAW,GAAGA,WAAmBA,KAAaiX,IAC9CgI,QAAqB,KAAZA,EAAiBA,OAAUxN,EAAS,gBAC/B,OACduN,UAAWgB,EAAahB,GACxB3G,SAAUA,+DClClB,MAMA,EAN0DjN,IAAA,IAAC,GAAE6L,EAAE,MAAEmI,EAAK,UAAEpf,EAAS,KAAEf,GAAMmM,EAAA,OACrFxL,EAAAA,cAAA,SAAOqX,GAAI,GAAGA,UAAYjX,UAAW,GAAGA,UAAmBkY,QAASkH,GAC/DngB,8DCLT,MAEA,EAFsEmM,IAAA,IAAC,UAAEpL,GAAWoL,EAAA,OAAKxL,EAAAA,cAAA,OAAKI,UAAW,GAAGA,+ECC5G,MAIA,EAJ4EoL,IAAA,IAAC,UAAEpL,EAAS,QAAEkc,GAAS9Q,EAAA,OAC/FxL,EAAAA,cAAA,OAAKI,UAAW,GAAGA,sBAA+Bkc,kyBCsDtD,IAAM4Y,EAAN,cAA4Bl1B,EAAAA,UAcxBsJ,YAAY5M,GACR6M,MAAM7M,GAdO,KAAAse,gBAA0B,oBA0FpC,KAAAxR,oBAAuBC,GAA0CC,KAAKhN,MAAMc,OAAOZ,QAASyC,KAAOoK,EAAME,OAAOC,MAGhH,KAAAyR,QAAU,KACb3R,KAAK4R,mBACL5R,KAAK6R,sBAGL7R,KAAK8R,oBAAsBC,aAAY,KACnC/R,KAAKgS,gCACN,KACHC,YAAW,KACPC,cAAclS,KAAK8R,uBACpB,MAIU,KAAAE,4BAA8B,KAEvCG,QAAUA,OAAe,QAAKA,OAAe,OAA4B,2BACzED,cAAclS,KAAK8R,qBACnB9R,KAAKoS,eAAgB,IAIZ,KAAAR,iBAAmB,KAE5BO,OAAkB,WAAKA,OAAkB,UAAmB,iBAE5DA,OAAkB,UAAmB,gBAAEna,KAAKsa,IACxC,OAAQA,EAAIG,GAAGpT,eACX,IAAK,cACDW,KAAKyrB,iBAAmBnZ,EAAII,IAC5B,MAEJ,IAAK,kBACD1S,KAAK0rB,qBAAuBpZ,EAAII,SASnC,KAAAb,oBAAsB,KACnC,MAAM,UAAEvd,GAAc0L,KAAKhN,MAG3B,GAAImf,QAAUA,OAAgB,QAAG,CAC7B,MAAMS,EAAU,CACZG,gBAAiBze,EAAU0e,gBAI/Bxc,OAAOC,OAAO0b,OAAgB,QAAGS,KAjIrC5S,KAAKyrB,iBAAmBE,EAAAA,cAAczY,aAAaC,OACnDnT,KAAK0rB,qBAAuBC,EAAAA,cAAczY,aAAaC,OACvDnT,KAAKoS,eAAgB,EACrBpS,KAAKM,kBAAmBC,EAAAA,EAAAA,oBACpBP,KAAKhN,MAAMsC,QAAQC,QAAQiL,kBAC3BR,KAAKhN,MAAMyN,aACXT,KAAKhN,MAAM0N,WAIZ0S,oBACHpT,KAAK2R,UAIF0B,qBAECrT,KAAKoS,eAAiBD,QAAUA,OAAiB,UAAKA,OAAiB,SAAc,YAErFA,OAAiB,SAAc,aAIhCpO,sBAAsBC,EAAsDC,GAC/E,OAAIjE,KAAKvF,QAAUwJ,GAAajE,KAAKhN,MAAMyB,OAASuP,EAAUvP,KAM3DkM,SACH,MAAM,OAAE7M,EAAM,UAAEQ,GAAc0L,KAAKhN,MAE7BmO,EAASC,EAAAA,EAAA,GACRpB,KAAKhN,OAAK,IACbsgB,UAAW,CACPC,eAAgBvT,KAAKoS,eAEzBwZ,cAAe,CACXp3B,YAAawL,KAAKhN,MAClB0D,UAAWO,GAAAA,CAAW+I,KAAKsR,gBAAiBxd,EAAO4C,YAEvD+c,QAAS,CACLha,MAAO,CACH6H,IAAK+M,EAAAA,MACLR,QAAQ,GAEZlU,UAAW,CACP2H,IAAKqN,EAAAA,WAET+E,KAAMpd,EAAAA,cAACu1B,EAAAA,EAAiC,CAACn1B,UAAWsJ,KAAKsR,kBACzDsB,QAAStc,EAAAA,cAACw1B,EAAAA,EAAoC,CAACp1B,UAAWsJ,KAAKsR,gBAAiBsB,QAASte,EAAU0e,kBAEvGa,mBAAoB,CAChBlG,GAAI,MACJ5R,MAAO,CAAEc,QAAS,SAEtBiX,YAAa,CACTnG,GAAI3N,KAAKoS,cAAgB,MAAQ,KACjC1b,UAAW,GAAGsJ,KAAKsR,8BAEvBpe,QAASY,EAAOZ,SACZoD,EAAAA,cAAC+K,EAAAA,GAAa7K,OAAAC,OAAA,CACVC,UAAW,GAAGsJ,KAAKsR,4BACfxd,EAAOZ,QAAO,CAClBqO,UAAW,CAAEC,OAAQxB,KAAKF,oBAAqB2B,eAAgBzB,KAAKhN,MAAMsC,QAAQC,YAG1Fw2B,0BAA2B/rB,KAAKgU,wBAGpC,OAAOhU,KAAKhN,MAAM6O,WAAWV,GA8DzB6S,sBACJ,MAAM,UAAE1f,GAAc0L,KAAKhN,MAC3B,MAAO,CACHohB,aAAc,CACVzG,GAAI,gBACJjX,UAAW,GAAGsJ,KAAKsR,uCAEvB+C,MAAO,CACHrU,KAAKsU,aAAa,cAAe,WAAYhgB,EAAU03B,qBAAsBhsB,KAAKyrB,kBAClFzrB,KAAKsU,aAAa,kBAAmB,WAAYhgB,EAAU23B,yBAA0BjsB,KAAK0rB,uBAE9F/W,aAAc,CACVre,EAAAA,cAAC41B,EAAAA,EAA2B,CACxB/zB,IAAI,wBACJwV,GAAG,wBACHjX,UAAWsJ,KAAKsR,gBAChBsB,QAASte,EAAU63B,6BAEvB71B,EAAAA,cAAC41B,EAAAA,EAA2B,CACxB/zB,IAAI,uBACJwV,GAAG,uBACHjX,UAAWsJ,KAAKsR,gBAChBsB,QAASte,EAAUwe,4BAEvBxc,EAAAA,cAAC41B,EAAAA,EAA2B,CACxB/zB,IAAI,uBACJwV,GAAG,iBACHjX,UAAWsJ,KAAKsR,gBAChBsB,QAASte,EAAUwgB,sBAEvBxe,EAAAA,cAAC41B,EAAAA,EAA2B,CACxB/zB,IAAI,+BACJwV,GAAG,+BACHjX,UAAWsJ,KAAKsR,mBAGxByD,eAAgB,CACZre,UAAW,GAAGsJ,KAAKsR,4BAEvB0D,QAAS,CACL1e,EAAAA,cAAC81B,EAAAA,EAA4B,CACzBj0B,IAAI,WACJwV,GAAG,WACHjX,UAAW,GAAGsJ,KAAKsR,mCACnB3O,UAAWrO,EAAU4gB,oBACrBvf,KAAMrB,EAAU6gB,eAChB7U,iBAAkBN,KAAKM,mBAE3BhK,EAAAA,cAAC81B,EAAAA,EAA4B,CACzBj0B,IAAI,SACJwV,GAAG,SACHjX,UAAW,GAAGsJ,KAAKsR,iCACnB3O,UAAWrO,EAAU8gB,iBACrBzf,KAAMrB,EAAU8gB,iBAChB9U,iBAAkBN,KAAKM,oBAG/B+U,yBAA0B,CACtB3e,UAAW,GAAGsJ,KAAKsR,oDAEvBgE,gCAAiC,CAC7B3H,GAAI,kBACJjX,UAAW,GAAGsJ,KAAKsR,6CAKvBgD,aAAa3G,EAAYkB,EAAc4G,EAAmBE,GAC9D,MAAMjf,EAAY,GAAGsJ,KAAKsR,gCAC1B,MAAO,CACHsE,QAAS,CACLlf,UAAWO,GAAAA,CAAWP,EAAW,GAAGA,KAAaiX,IAAM,aAAc,cAEzExV,IAAKwV,EACLtC,MACI/U,EAAAA,cAAC+1B,EAAAA,EAA2B71B,OAAAC,OAAA,GACpB,CACAkX,GAAAA,EACAmI,MAAOnI,EACPjX,UAAAA,EACAf,KAAM8f,KAIlBd,aACIre,EAAAA,cAAC41B,EAAAA,EAA2B11B,OAAAC,OAAA,GACpB,CACAC,UAAWsJ,KAAKsR,gBAChBzC,KAAM,UAIlBkH,MACIzf,EAAAA,cAACg2B,EAAAA,EAA2B91B,OAAAC,OAAA,GACpB,CACAkX,GAAAA,EACAkB,KAAAA,EACA8G,QAAAA,EACAjf,UAAAA,SAnPR4O,EAAAA,EAAAA,IAAA,CAAX2Q,EAAAA,IAAU,wCAEC3Q,EAAAA,EAAAA,IAAA,CAAX2Q,EAAAA,IAAU,4CAEC3Q,EAAAA,EAAAA,IAAA,CAAX2Q,EAAAA,IAAU,oCATTuV,GAAalmB,EAAAA,EAAAA,IAAA,CADlB4Q,EAAAA,IACKsV,GAgQN,iGCzTA,MAAMe,EAAkDzqB,IAA4C,IAA3C,QAAE8T,EAAO,MAAEvK,EAAK,aAAEsJ,EAAY,MAAEoB,GAAOjU,EAC5F,OACIxL,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKmf,GACLvK,EACAsJ,EACAoB,IAuCPyW,EAAwDnW,IAAwC,IAAvC,MAAE5c,EAAK,UAAEE,EAAS,KAAE+Z,EAAI,QAAEd,GAASyD,EAC9F,OACI/f,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKgD,GACNnD,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKkD,GACL+Z,EACAd,KAqBjB,EAf6D5f,IACzD,MAAM,cAAE44B,EAAa,UAAEtY,EAAS,QAAEG,EAAO,mBAAEI,EAAkB,YAAEC,EAAW,QAAE5gB,EAAO,0BAAE64B,GAA8B/4B,EAEnH,OACIsD,EAAAA,cAACC,EAAAA,OAAMC,OAAAC,OAAA,GAAKm1B,GACPtY,EAAUC,eAAiBjd,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKod,IACrCP,EAAUC,eAAiBjd,EAAAA,cAACk2B,EAAoBh2B,OAAAC,OAAA,GAAKgd,IACtDnd,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKqd,GACL5gB,EArD0CsS,CAAAA,IAQtD,IARuD,aACxD4O,EAAY,MACZC,EAAK,aACLM,EAAY,eACZI,EAAc,QACdC,EAAO,yBACPK,EAAwB,gCACxBC,GACH9P,EACG,OACIlP,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAK2d,GACLC,GACGA,EAAMrc,KAAKse,GAEAhgB,EAAAA,cAACi2B,EAAiB/1B,OAAAC,OAAA,GAAK6f,MAErC3B,GACGA,EAAa3c,KAAI,CAACoC,EAAwBiI,IAC/B/L,EAAAA,cAACA,EAAAA,SAAc,CAAC6B,IAAKkK,GAAQjI,KAE5C9D,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKse,GACLC,GACGA,EAAQhd,KAAI,CAACue,EAAyBlU,IAC3B/L,EAAAA,cAACA,EAAAA,SAAc,CAAC6B,IAAKkK,GAAQkU,MAIhDjgB,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAK4e,GACN/e,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAK6e,OA0BTkB,CAAauV,0ECzD9B,MAMA,EAN8CjqB,IAAA,IAAC,GAAE6L,EAAE,UAAEjX,EAAS,KAAEf,EAAI,UAAEgN,EAAS,SAAEwM,EAAQ,QAAEvS,GAASkF,EAAA,OAChGxL,EAAAA,cAAC0W,EAAAA,OAAM,CAACW,GAAIA,EAAIjX,UAAWA,EAAS,aAAciM,EAAWwM,SAAUA,EAAUvS,QAASA,GACrFjH,+ECJT,MAUA,EAViDmM,IAA8C,IAA7C,GAAE6L,EAAE,UAAEjX,EAAS,KAAEmY,EAAO,OAAM,QAAE+D,GAAS9Q,EACvF,MAAM2U,EAAiB,GAAG/f,MAAcmY,UAExC,OACIvY,EAAAA,cAAA,OAAKqX,GAAIA,EAAIjX,UAAWO,GAAAA,CAAWwf,EAAgB,QAAS,GAAG5H,UAAchM,KAAK,QAAO,YAAW,YAAW,cAAa,QACxHvM,EAAAA,cAAA,KAAGI,UAAW,GAAG+f,UAAwB7D,qECQrD,MAAM8D,EAAgBhB,IAClB,GAAIA,EAAW,CACX,MAAMiB,EAAkBC,OAAOC,SAASnB,EAAW,IACnD,IAAKoB,MAAMH,GACP,OAAOA,IAoBnB,EAbiD7U,IAAA,IAAC,GAAE6L,EAAE,KAAEkB,EAAI,MAAE3O,EAAK,QAAEyV,EAAO,UAAEjf,EAAS,UAAEgf,EAAS,SAAE3G,GAAUjN,EAAA,OAC1GxL,EAAAA,cAAA,SACIqX,GAAIA,EACJkB,KAAMA,EACN3O,MAAOA,EACPxJ,UAAW,GAAGA,WAAmBA,KAAaiX,IAC9CgI,QAAqB,KAAZA,EAAiBA,OAAUxN,EAAS,gBAC/B,OACduN,UAAWgB,EAAahB,GACxB3G,SAAUA,+DClClB,MAMA,EAN4CjN,IAAA,IAAC,GAAE6L,EAAE,MAAEmI,EAAK,UAAEpf,EAAS,KAAEf,GAAMmM,EAAA,OACvExL,EAAAA,cAAA,SAAOqX,GAAI,GAAGA,UAAYjX,UAAW,GAAGA,UAAmBkY,QAASkH,GAC/DngB,8DCLT,MAEA,EAFwDmM,IAAA,IAAC,UAAEpL,GAAWoL,EAAA,OAAKxL,EAAAA,cAAA,OAAKI,UAAW,GAAGA,+ECC9F,MAIA,EAJ8DoL,IAAA,IAAC,UAAEpL,EAAS,QAAEkc,GAAS9Q,EAAA,OACjFxL,EAAAA,cAAA,OAAKI,UAAW,GAAGA,sBAA+Bkc,+ECEtD,MAUA,EAVgD9Q,IAA8C,IAA7C,GAAE6L,EAAE,UAAEjX,EAAS,KAAEmY,EAAO,OAAM,QAAE+D,GAAS9Q,EACtF,MAAM2qB,EAAmB,GAAG/1B,MAAcmY,YAE1C,OACIvY,EAAAA,cAAA,QAAMqX,GAAIA,EAAIjX,UAAWO,GAAAA,CAAWw1B,EAAkB,GAAG5d,UAAchM,KAAK,QAAO,YAAW,YAAW,cAAa,QAClHvM,EAAAA,cAAA,KAAGI,UAAW,GAAG+1B,UAA0B7Z,6yBCiFvD,IAAMiU,EAAN,cAAqBvwB,EAAAA,UAsBjBsJ,YAAY5M,GACR6M,MAAM7M,GAlBO,KAAAse,gBAA0B,aAmGpC,KAAAxR,oBAAuBC,GAA0CC,KAAKhN,MAAMc,OAAOZ,QAAQyC,KAAOoK,EAAME,OAAOC,MAO/G,KAAAwsB,sBAAyB3sB,GAA0CC,KAAKhN,MAAMc,OAAO64B,WAAa5sB,EAAME,OAAOC,MAG/G,KAAAyR,QAAU,KACb3R,KAAK4R,mBACL5R,KAAK6R,sBAGL7R,KAAK8R,oBAAsBC,aAAY,KACnC/R,KAAKgS,gCACN,KACHC,YAAW,KACPC,cAAclS,KAAK8R,uBACpB,MAIU,KAAAE,4BAA8B,KAEvCG,QAAUA,OAAe,QAAKA,OAAe,OAA4B,2BACzED,cAAclS,KAAK8R,qBACnB9R,KAAKoS,eAAgB,IAIZ,KAAAR,iBAAmB,KAChC,MAAMtd,EAA8B0L,KAAKhN,MAAMsB,WAAa,GAGxD6d,OAAkB,WAAKA,OAAkB,UAAmB,iBAE5DA,OAAkB,UAAmB,gBAAEna,KAClCsa,IACG,OAAQA,EAAIG,GAAGpT,eACX,IAAK,2BACDW,KAAK4sB,6BAA8B,EACnC5sB,KAAK6sB,gBAAkB,KACvB,MAEJ,IAAK,QACD7sB,KAAK0R,WAAaY,EAAII,IACtB1S,KAAK4sB,4BAA8Bta,EAAIwa,OACvC9sB,KAAK6sB,gBAAkB,KACvB,MAEJ,IAAK,+BACD7sB,KAAK+sB,iCAAkC,EACvC,MAEJ,IAAK,YACD/sB,KAAK+sB,gCAAkCza,EAAIwa,OAC3C,MAEJ,IAAK,6BACD9sB,KAAK4sB,6BAA8B,EACnC,MAEJ,IAAK,UACD5sB,KAAKgtB,8BAAgC1a,EAAIwa,OACzC,MAEJ,IAAK,cACD9sB,KAAKyrB,iBAAmBnZ,EAAII,IAC5B,MAEJ,IAAK,kBACD1S,KAAK0rB,qBAAuBpZ,EAAII,IAMxC,OAAQJ,EAAI2a,cAAc5tB,eACtB,IAAK,WACDiT,EAAIK,SAAWre,EAAU44B,qBACzB,MAEJ,IAAK,WACD5a,EAAIK,SAAWre,EAAU+d,8BAUhC,KAAAR,oBAAsB,KACnC,MAAMvd,EAA8B0L,KAAKhN,MAAMsB,WAAa,GAG5D,GAAI6d,QAAUA,OAAgB,QAAG,CAC7B,MAAMgb,EAAgB,CAClBta,eAAgBve,EAAUwe,2BAI9Btc,OAAOC,OAAO0b,OAAgB,QAAGgb,KAIxB,KAAAC,SAAW,CAACC,EAAiBC,IACtCttB,KAAK6sB,gBAC2B,OAAzB7sB,KAAK6sB,gBAA2BQ,EAAUC,EAE9C,GAhMPttB,KAAK0R,WAAauB,EAAAA,WAAWC,aAAaC,OAC1CnT,KAAKyrB,iBAAmBE,EAAAA,cAAczY,aAAaC,OACnDnT,KAAK0rB,qBAAuBC,EAAAA,cAAczY,aAAaC,OACvDnT,KAAK4sB,6BAA8B,EACnC5sB,KAAK+sB,iCAAkC,EACvC/sB,KAAKgtB,+BAAgC,EACrChtB,KAAKoS,eAAgB,EACrBpS,KAAK6sB,gBAAkB,GAGpBzZ,oBACHpT,KAAK2R,UAIF0B,qBAECrT,KAAKoS,eAAiBD,QAAUA,OAAiB,UAAKA,OAAiB,SAAc,YAErFA,OAAiB,SAAc,aAIhCpO,sBAAsBC,EAAwCC,GACjE,OAAIjE,KAAKvF,QAAUwJ,GAAajE,KAAKhN,MAAMyB,OAASuP,EAAUvP,KAM3DkM,SACH,MAAM,OAAE7M,EAAM,UAAEQ,GAAc0L,KAAKhN,MAE7BmO,EAASC,EAAAA,EAAA,GACRpB,KAAKhN,OAAK,IACbsgB,UAAW,CACPC,eAAgBvT,KAAKoS,eAEzBmb,OAAQ,CACJ/4B,YAAawL,KAAKhN,MAClB0D,UAAWO,GAAAA,CAAW+I,KAAKsR,gBAAiBxd,EAAO4C,YAEvD+c,QAAS,CACLha,MAAO,CACH6H,IAAK+M,EAAAA,MACLR,QAAQ,GAEZlU,UAAW,CACP2H,IAAKqN,EAAAA,WAET+E,KAAMpd,EAAAA,cAACk3B,EAAAA,EAA0B,CAAC92B,UAAWsJ,KAAKsR,kBAClDsB,QAAStc,EAAAA,cAACm3B,EAAAA,EAA6B,CAAC/2B,UAAWsJ,KAAKsR,gBAAiBsB,QAASte,EAAU0e,kBAEhGa,mBAAoB,CAChBlG,GAAI,MACJ5R,MAAO,CAAEc,QAAS,SAEtBiX,YAAa,CACTnG,GAAI3N,KAAKoS,cAAgB,MAAQ,KACjC1b,UAAW,GAAGsJ,KAAKsR,8BAEvBpe,QACIoD,EAAAA,cAAC+K,EAAAA,GAAa7K,OAAAC,OAAA,CACVC,UAAW,GAAGsJ,KAAKsR,4BACfxd,EAAOZ,QAAO,CAClBqO,UAAW,CAAEC,OAAQxB,KAAKF,oBAAqB2B,eAAgBzB,KAAKhN,MAAMsC,QAAQC,YAG1Fm4B,mBAAoB1tB,KAAKgU,wBAG7B,OAAOhU,KAAKhN,MAAM6O,WAAWV,GA4HzB6S,sBACJ,MAAM,OAAElgB,EAAM,UAAEQ,GAAc0L,KAAKhN,MACnC,MAAO,CACHohB,aAAc,CACVzG,GAAI,gBACJjX,UAAW,GAAGsJ,KAAKsR,uCAEvB+C,MAAO,CACHrU,KAAKsU,aAAa,YAAa,OAAQhgB,EAAUigB,mBAAoBjgB,EAAUkgB,oBAC/ExU,KAAKsU,aAAa,UAAW,OAAQhgB,EAAUmgB,kBAAmBngB,EAAUogB,mBAC5E1U,KAAKsU,aAAa,QAAS,QAAShgB,EAAUkhB,2BAAuBrN,EAAWnI,KAAK0R,YACrF1R,KAAKsU,aAAa,cAAe,WAAYhgB,EAAUq5B,uBAAmBxlB,EAAWnI,KAAKyrB,kBAC1FzrB,KAAKsU,aAAa,kBAAmB,WAAYhgB,EAAU23B,8BAA0B9jB,EAAWnI,KAAK0rB,uBAEzGkC,kBAAmB,CACfC,WAAY7tB,KAAK4sB,4BACjBnhB,MAAOzL,KAAKsU,aACRtU,KAAKotB,SAAS,kBAAmB,yBACjC,OACA94B,EAAUw5B,+BACV3lB,OACAA,EACA,oBAEJ4lB,2BAA4B,CACxBpgB,GAAI,2BACJjX,UAAW,GAAGsJ,KAAKsR,4EAEvBoR,cAAe,CACXhsB,UAAW,GAAGsJ,KAAKsR,+CAA+CtR,KAAKotB,SAAS,SAAU,MAC1F,gBAAiB,SAErBpY,QAAS,CACL1e,EAAAA,cAAC03B,EAAAA,EAAqB,CAClB71B,IAAI,qBACJwV,GAAI3N,KAAKotB,SAAS,qBAAsB,0CACxC12B,UAAW,GAAGsJ,KAAKsR,8CACftR,KAAKsR,6CACqBtR,KAAKotB,SAAS,aAAc,iBAC1DzqB,UAAWrO,EAAU25B,wBACrBt4B,KAAMrB,EAAU45B,qBAEpB53B,EAAAA,cAAC03B,EAAAA,EAAqB,CAClB71B,IAAI,uBACJwV,GAAI3N,KAAKotB,SAAS,uBAAwB,4CAC1C12B,UAAW,GAAGsJ,KAAKsR,8CACftR,KAAKsR,+CACuBtR,KAAKotB,SAAS,eAAgB,gBAC9DzqB,UAAWrO,EAAU65B,0BACrBx4B,KAAMrB,EAAU85B,uBAEpB93B,EAAAA,cAAC03B,EAAAA,EAAqB,CAClB71B,IAAI,uBACJwV,GAAI3N,KAAKotB,SAAS,uBAAwB,8CAC1C12B,UAAW,GAAGsJ,KAAKsR,8CACftR,KAAKsR,+CACuBtR,KAAKotB,SAAS,aAAc,iBAC5DzqB,UAAWrO,EAAU+5B,0BACrB14B,KAAMrB,EAAUg6B,uBAEpBh4B,EAAAA,cAAC03B,EAAAA,EAAqB,CAClB71B,IAAI,qBACJwV,GAAI3N,KAAKotB,SAAS,qBAAsB,8CACxC12B,UAAW,GAAGsJ,KAAKsR,8CACftR,KAAKsR,6CACqBtR,KAAKotB,SAAS,aAAc,kBAC1DzqB,UAAWrO,EAAUi6B,2BACrB54B,KAAMrB,EAAUk6B,yBAGxBC,eAAgB,CACZn4B,EAAAA,cAACo4B,EAAAA,EAAsB,CACnBv2B,IAAI,aACJwV,GAAI3N,KAAKotB,SAAS,aAAc,yCAChC12B,UAAWsJ,KAAKsR,gBAChBsB,QAASte,EAAUq6B,8BAEvBr4B,EAAAA,cAACo4B,EAAAA,EAAsB,CACnBv2B,IAAI,gBACJwV,GAAI3N,KAAKotB,SAAS,gBAAiB,4CACnC12B,UAAWsJ,KAAKsR,gBAChBsB,QAASte,EAAUs6B,+BAG3Bja,aAAc,CACVre,EAAAA,cAACu4B,EAAAA,EAAoB,CACjB12B,IAAI,yCACJwV,GAAG,yCACHjX,UAAWsJ,KAAKsR,kBAEpBhb,EAAAA,cAACu4B,EAAAA,EAAoB,CACjB12B,IAAI,mBACJwV,GAAG,mBACHjX,UAAWsJ,KAAKsR,gBAChBsB,QAASte,EAAUw6B,aAEvBx4B,EAAAA,cAACu4B,EAAAA,EAAoB,CACjB12B,IAAI,sBACJwV,GAAG,sBACHjX,UAAWsJ,KAAKsR,gBAChBsB,QAASte,EAAUy6B,uBAEvBz4B,EAAAA,cAACu4B,EAAAA,EAAoB,CACjB12B,IAAI,uBACJwV,GAAG,uBACHjX,UAAWsJ,KAAKsR,gBAChBsB,QAASte,EAAU06B,iBAEvB14B,EAAAA,cAACu4B,EAAAA,EAAoB,CACjB12B,IAAI,0BACJwV,GAAG,0BACHjX,UAAWsJ,KAAKsR,gBAChBsB,QAASte,EAAU26B,mBAEvB34B,EAAAA,cAACu4B,EAAAA,EAAoB,CACjB12B,IAAI,oBACJwV,GAAG,oBACHjX,UAAWsJ,KAAKsR,gBAChBsB,QAASte,EAAU46B,cAEvB54B,EAAAA,cAACu4B,EAAAA,EAAoB,CACjB12B,IAAI,yBACJwV,GAAG,yBACHjX,UAAWsJ,KAAKsR,gBAChBsB,QAASte,EAAU66B,sBAI/BC,sBAAuB,CACnBvB,WAAY7tB,KAAK+sB,gCACjBvb,UAAWxR,KAAKsU,aACZtU,KAAKotB,SAAS,sBAAuB,6BACrC,OACA94B,EAAUw5B,+BACV3lB,OACAA,EACA,oBAEJ4lB,2BAA4B,CACxBpgB,GAAI,+BACJjX,UAAW,GAAGsJ,KAAKsR,4EAEvBqD,aAAc,CACVre,EAAAA,cAACu4B,EAAAA,EAAoB,CACjB12B,IAAI,uBACJwV,GAAG,uBACHjX,UAAWsJ,KAAKsR,gBAChBsB,QAASte,EAAUugB,qCAI/Bwa,oBAAqB,CACjBxB,WAAY7tB,KAAKgtB,8BACjBvb,QAASzR,KAAKsU,aACVtU,KAAKotB,SAAS,oBAAqB,2BACnC,OACA94B,EAAUw5B,+BACV3lB,OACAA,EACA,oBAEJ4lB,2BAA4B,CACxBpgB,GAAI,6BACJjX,UAAW,GAAGsJ,KAAKsR,4EAEvBqD,aAAc,CACVre,EAAAA,cAACu4B,EAAAA,EAAoB,CACjB12B,IAAI,uBACJwV,GAAG,uBACHjX,UAAWsJ,KAAKsR,gBAChBsB,QAASte,EAAUugB,qCAI/BG,QAAS,CACL1e,EAAAA,cAAC03B,EAAAA,EAAqB,CAClB71B,IAAI,WACJwV,GAAG,WACHjX,UAAW,GAAGsJ,KAAKsR,iCACnB3O,UAAWrO,EAAUg7B,sBACrB35B,KAAMrB,EAAUi7B,mBAEpBj5B,EAAAA,cAAC03B,EAAAA,EAAqB,CAClB71B,IAAI,SACJwV,GAAG,SACHjX,UAAW,GAAGsJ,KAAKsR,iCACnB3O,UAAWrO,EAAUk7B,sBACrB75B,KAAMrB,EAAU8gB,oBAGxBT,aAAc,CACVre,EAAAA,cAACu4B,EAAAA,EAAoB,CACjB12B,IAAI,wBACJwV,GAAG,wBACHjX,UAAWsJ,KAAKsR,gBAChBsB,QAASte,EAAU63B,6BAEvB71B,EAAAA,cAACu4B,EAAAA,EAAoB,CACjB12B,IAAI,uBACJwV,GAAG,uBACHjX,UAAWsJ,KAAKsR,gBAChBsB,QAASte,EAAUugB,mCAEvBve,EAAAA,cAACu4B,EAAAA,EAAoB,CACjB12B,IAAI,iBACJwV,GAAG,iBACHjX,UAAWsJ,KAAKsR,gBAChBsB,QAASte,EAAUwgB,sBAEvBxe,EAAAA,cAACu4B,EAAAA,EAAoB,CACjB12B,IAAI,+BACJwV,GAAG,+BACHjX,UAAWsJ,KAAKsR,mBAGxBqb,WAAY74B,EAAO64B,YACfr2B,EAAAA,cAAC+K,EAAAA,GAA0B,CACvB3K,UAAW,GAAGsJ,KAAKsR,sCACnB3b,KAAM7B,EAAO64B,WACbprB,UAAW,CAAEC,OAAQxB,KAAK0sB,sBAAuBjrB,eAAgBzB,KAAKhN,MAAMsC,QAAQC,YAM5F+e,aACJ3G,EACAkB,EACA4G,EACAC,EACAC,EACA8Z,GAEA,MAAM/4B,EAAY,GAAGsJ,KAAKsR,gCAC1B,MAAO,CACHsE,QAAS,CACLlf,UAAWO,GAAAA,CAAWP,EAAW,GAAGA,KAAaiX,IAAM,aAAc,YAAa8hB,IAEtFt3B,IAAKwV,EACLtC,MACI/U,EAAAA,cAACo5B,EAAAA,EAAoBl5B,OAAAC,OAAA,GACb,CACAkX,GAAAA,EACAmI,MAAOnI,EACPjX,UAAAA,EACAf,KAAM8f,KAIlBd,aACIre,EAAAA,cAACu4B,EAAAA,EAAoBr4B,OAAAC,OAAA,GACb,CACAC,UAAWsJ,KAAKsR,gBAChBzC,KAAM,UAIlBkH,MACIzf,EAAAA,cAACq5B,EAAAA,EAAoBn5B,OAAAC,OAAA,GACb,CACAkX,GAAAA,EACAkB,KAAAA,EACA6G,UAAAA,EACAC,QAAAA,EACAjf,UAAAA,SAneR4O,EAAAA,EAAAA,IAAA,CAAX2Q,EAAAA,IAAU,uDAEC3Q,EAAAA,EAAAA,IAAA,CAAX2Q,EAAAA,IAAU,qDAIC3Q,EAAAA,EAAAA,IAAA,CAAX2Q,EAAAA,IAAU,kCAEC3Q,EAAAA,EAAAA,IAAA,CAAX2Q,EAAAA,IAAU,wCAEC3Q,EAAAA,EAAAA,IAAA,CAAX2Q,EAAAA,IAAU,4CAEC3Q,EAAAA,EAAAA,IAAA,CAAX2Q,EAAAA,IAAU,mDAEC3Q,EAAAA,EAAAA,IAAA,CAAX2Q,EAAAA,IAAU,qCAEC3Q,EAAAA,EAAAA,IAAA,CAAX2Q,EAAAA,IAAU,sCAjBT4Q,GAAMvhB,EAAAA,EAAAA,IAAA,CADX4Q,EAAAA,IACK2Q,GA4eN,iGC/jBA,MAAM+I,EAAoC9tB,IAA4C,IAA3C,QAAE8T,EAAO,MAAEvK,EAAK,aAAEsJ,EAAY,MAAEoB,GAAOjU,EAC9E,OACIxL,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKmf,GACLvK,EACAsJ,EACAoB,IAKP8Z,EAA8DrqB,IAAoE,IAAnE,MAAEiG,EAAK,cAAEiX,EAAa,QAAE1N,EAAO,eAAEyZ,EAAc,aAAE9Z,GAAcnP,EAChI,OACIlP,EAAAA,cAAAA,EAAAA,SAAA,KACKm4B,GACGA,EAAez2B,KAAK4a,GACTtc,EAAAA,cAAAA,EAAAA,SAAA,KAAGsc,KAElBtc,EAAAA,cAACs5B,EAAUp5B,OAAAC,OAAA,GAAKgV,IACfkJ,GACGA,EAAa3c,KAAK4a,GACPtc,EAAAA,cAAAA,EAAAA,SAAA,KAAGsc,KAElBtc,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKisB,GACL1N,GACGA,EAAQhd,KAAKue,GACFjgB,EAAAA,cAAAA,EAAAA,SAAA,KAAGigB,QAc5BuZ,EAA+EzZ,IAAgC,IAA/B,UAAE7E,EAAS,aAAEmD,GAAc0B,EAC7G,OACI/f,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAACs5B,EAAUp5B,OAAAC,OAAA,GAAK+a,IACfmD,EAAa3c,KAAK4a,GACRtc,EAAAA,cAAAA,EAAAA,SAAA,KAAGsc,OAapBmd,EAA2EC,IAA8B,IAA7B,QAAEve,EAAO,aAAEkD,GAAcqb,EACvG,OACI15B,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAACs5B,EAAUp5B,OAAAC,OAAA,GAAKgb,IACfkD,EAAa3c,KAAK4a,GACRtc,EAAAA,cAAAA,EAAAA,SAAA,KAAGsc,OA4DpBqd,EAA0C5gB,IAAwC,IAAvC,MAAE5V,EAAK,UAAEE,EAAS,KAAE+Z,EAAI,QAAEd,GAASvD,EAChF,OACI/Y,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKgD,GACNnD,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKkD,GACL+Z,EACAd,KAqBjB,EAf+C5f,IAC3C,MAAM,OAAEu6B,EAAM,UAAEja,EAAS,QAAEG,EAAO,mBAAEI,EAAkB,YAAEC,EAAW,QAAE5gB,EAAO,mBAAEw6B,GAAuB16B,EAErG,OACIsD,EAAAA,cAACC,EAAAA,OAAMC,OAAAC,OAAA,GAAK82B,GACPja,EAAUC,eAAiBjd,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKod,IACrCP,EAAUC,eAAiBjd,EAAAA,cAAC25B,EAAaz5B,OAAAC,OAAA,GAAKgd,IAC/Cnd,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKqd,GACL5gB,EAzEmCkc,CAAAA,IAS/C,IATgD,aACjDgF,EAAY,MACZC,EAAK,kBACLuZ,EAAiB,sBACjBwB,EAAqB,oBACrBC,EAAmB,QACnBra,EAAO,aACPL,EAAY,WACZgY,GACHvd,EACG,OACI9Y,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAK2d,GACLC,GACGA,EAAMrc,KAAKse,GACU,UAAbA,EAAKne,KAAmBy1B,EAAkBC,WAEtCv3B,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,CAAC0B,IAAKme,EAAKne,KAASy1B,EAAkBG,4BACvCz3B,EAAAA,cAACs5B,EAAUp5B,OAAAC,OAAA,GAAK6f,IAChBhgB,EAAAA,cAACu5B,EAAuBr5B,OAAAC,OAAA,GAAKm3B,KAIxB,cAAbtX,EAAKne,KAAuBi3B,EAAsBvB,WAE9Cv3B,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,CAAC0B,IAAKme,EAAKne,KAASi3B,EAAsBrB,4BAC3Cz3B,EAAAA,cAACs5B,EAAUp5B,OAAAC,OAAA,GAAK6f,IAChBhgB,EAAAA,cAACw5B,EAAoCt5B,OAAAC,OAAA,GAAK24B,KAIrC,YAAb9Y,EAAKne,KAAqBk3B,EAAoBxB,WAE1Cv3B,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,CAAC0B,IAAKme,EAAKne,KAASk3B,EAAoBtB,4BACzCz3B,EAAAA,cAACs5B,EAAUp5B,OAAAC,OAAA,GAAK6f,IAChBhgB,EAAAA,cAACy5B,EAAkCv5B,OAAAC,OAAA,GAAK44B,KAK7C/4B,EAAAA,cAACs5B,EAAUp5B,OAAAC,OAAA,GAAK6f,MAE9B3B,GACGA,EAAa3c,KAAI,CAACoC,EAAwBiI,IAC/B/L,EAAAA,cAACA,EAAAA,SAAc,CAAC6B,IAAKkK,GAAQjI,KAE3C4a,GACGA,EAAQhd,KAAI,CAACue,EAAyBlU,IAC3B/L,EAAAA,cAACA,EAAAA,SAAc,CAAC6B,IAAKkK,GAAQkU,KAE3CoW,IAyBInW,CAAakX,0IChElBwC,EAQAC,EAKAC,u5CAbZ,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,EACA55B,EACA65B,EACAC,IAEOF,EAAOt4B,KAAIgpB,IACd,MAAM,YAAEyP,EAAW,GAAE9iB,EAAE,KAAEkB,EAAI,MAAExD,EAAK,SAAEqlB,EAAQ,WAAE7C,EAAU,QAAElY,EAAO,MAAEzV,EAAK,WAAEwhB,EAAU,eAAEiP,GAAmB3P,EAC3G,MAAO,CACHpL,QAAS,CACLlf,UAAWO,GAAAA,CAAWP,EAAWiX,EAAI8iB,IAEzCt4B,IAAKwV,EACLtC,MAAO/U,EAAAA,cAACs6B,EAAAA,GAASp6B,OAAAC,OAAA,GAAK,CAAEkX,GAAAA,EAAImI,MAAOnI,EAAIjX,UAAAA,EAAWf,KAAM0V,EAAOwlB,aAAchD,EAAa0C,EAAqBllB,KAC/GsJ,aAAcre,EAAAA,cAACw6B,EAAAA,GAAct6B,OAAAC,OAAA,GAAK,CAAEC,UAAAA,EAAWmY,KAAM,UACrDkH,MACIzf,EAAAA,cAACy6B,EAAAA,GAASv6B,OAAAC,OAAA,GACF,CACAkX,GAAAA,EACAkB,KAAAA,EACA6G,UAAWgb,EACX/a,QAAAA,EACAzV,MAAAA,EACAxJ,UAAAA,EACAm3B,gBAA2B1lB,IAAf0lB,GAAmCA,EAC/C9e,SAAUyhB,EACV9O,WAAAA,EACAsP,YAAa3lB,EACbslB,eAAAA,SAkBxB,IAAMM,EAAN,cAAuC36B,EAAAA,UAsFnCsJ,YAAY5M,GAAoE,IAAAk+B,EAC5ErxB,MAAM7M,GAnFH,KAAAm+B,0BAA6C,CAChD,CACIxjB,GAAIyiB,EAAQ1mB,UACZmF,KAAMshB,EAAUvW,KAChBvO,MAAOrL,KAAKhN,MAAMsB,UAAU88B,+BAC5BlxB,MAAO,GACP2tB,YAAY,EACZ4C,YAAa,YAEjB,CACI9iB,GAAIyiB,EAAQzmB,SACZkF,KAAMshB,EAAUvW,KAChBvO,MAAOrL,KAAKhN,MAAMsB,UAAU+8B,8BAC5BnxB,MAAO,GACP2tB,YAAY,EACZ4C,YAAa,YAEjB,CACI9iB,GAAIyiB,EAAQ1oB,MACZmH,KAAMshB,EAAUzoB,MAChB2D,MAAOrL,KAAKhN,MAAMsB,UAAUg9B,kCAC5BpxB,MAAO,GACP2tB,YAAY,EACZlY,QAAS1C,EAAAA,WAAWC,aAAaC,OACjCsd,YAAa,aAEjB,CACI9iB,GAAIyiB,EAAQmB,cACZ1iB,KAAMshB,EAAUvW,KAChBvO,MAAOrL,KAAKhN,MAAMsB,UAAUk9B,mCAC5BtxB,MAAO,GACP2tB,YAAY,EACZ4C,YAAa,WACbC,SAA2B,QAAnBQ,EAAElxB,KAAKhN,MAAMc,cAAM,IAAAo9B,OAAA,EAAjBA,EAAmBxb,YAOpB,KAAA+b,WAAqB,IAE9B,KAAAC,mBAA0D,GAE1D,KAAAC,sBAA8D,GAE9D,KAAAC,wBAAgE,GAQvD,KAAAtgB,gBAA0B,gCA6a1B,KAAAugB,4BAA8B,KAE3C,MAAMC,EAAU9xB,KAAKvF,MAAMs3B,UAC3BD,EAAQxzB,SAAQyX,IACRA,EAAMpI,KAAOyiB,EAAQ1oB,QAErBqO,EAAM2L,YAAa,GAGvB3L,EAAM7V,MAAQ,MAGlB,MAAM8xB,EAAU,CAAE/qB,UAAWuG,EAAAA,OAAOC,KAAKC,gBAEzC1N,KAAKoD,SAAS,CACV2uB,UAAWD,EACXG,cAAc,EACdC,SAAUhC,EAASiC,IACnBC,cAAepyB,KAAKqyB,uBAAuBtsB,QAC3C2F,aAAa,EACb4mB,cAAc,EACdC,gBAAgB,EAChBC,iBAAkBR,KAKT,KAAAS,6BAA+BhS,UAC5C,MAAM,QAAEnrB,GAAY0K,KAAKhN,OACnB,SAAEk/B,EAAQ,UAAEH,GAAc/xB,KAAKvF,MAE/Bi4B,EAAc1yB,KAAK2yB,uBAAuBZ,GAE5CG,IAAahC,EAAS0C,MACtBC,EAAAA,EAAAA,sBAAqB,IAAIC,EAAAA,0BAA0BJ,GAAcp9B,EAAQwS,eACpE0e,MAAK,KACFrU,OAAOsU,SAASsM,QAAO,MAE1BrM,OAAMtsB,IACH9E,EAAQoL,UAAUsyB,MAAM54B,GACxB4F,KAAKoD,SAAS,CACVmvB,gBAAgB,QAI5BU,EAAAA,EAAAA,qBAAoB,IAAIC,EAAAA,yBAAyBR,GAAcp9B,EAAQwS,eAClE0e,MAAK,KACFrU,OAAOsU,SAASsM,QAAO,MAE1BrM,OAAMtsB,IACH9E,EAAQoL,UAAUsyB,MAAM54B,GACxB4F,KAAKoD,SAAS,CACVmvB,gBAAgB,EAChBY,iCAAkC/4B,EAAMwY,cAO3C,KAAA+f,uBAA0BrC,IACvC,MAAM0B,EAAO5wB,EAAA,GAA6BpB,KAAKvF,MAAM+3B,kBAWrD,OATAlC,EAAOhyB,SAAQyX,IAEPA,EAAMpI,KAAOyiB,EAAQmB,cACrBS,EAAQjc,EAAMpI,IAAMiJ,OAAOwc,WAAWrd,EAAM7V,QAAU,EAEtD8xB,EAAQjc,EAAMpI,IAAMoI,EAAM7V,SAI3B8xB,GAIM,KAAAqB,gBAAkB,CAACC,EAA6BlB,KAE7D,MAAMmB,EAAeD,EAAS/a,MAAKib,GACZ,SAAZA,EAAK7lB,KAEV8lB,EAAYF,GAAiBA,EAAarzB,OAAqB,GAC/DwzB,EAAiBD,EAASx1B,YAAY,KACtC01B,EAAYF,EAASz1B,UAAU,EAAG01B,GAElCE,EAAWH,EAASz1B,UAAU01B,EAAiB,IAG/C,UAAE3B,GAAc/xB,KAAKvF,MACrBq3B,EAAUC,EAEhBD,EAAQxzB,SAAQyX,IACZ,OAAQA,EAAMpI,IACV,KAAKyiB,EAAQ1mB,UACTqM,EAAM7V,MAAQyzB,EACd,MACJ,KAAKvD,EAAQzmB,SACToM,EAAM7V,MAAQ0zB,EACd,MACJ,KAAKxD,EAAQ1oB,MACTqO,EAAM2L,YAAa,EACnB,MAAMmS,EAAeP,EAAS/a,MAAKib,GACxBzd,EAAMpI,KAAO6lB,EAAK7lB,KAE7BoI,EAAM7V,MAAS2zB,GAAiBA,EAAa3zB,OAAqB,GAClE,MACJ,QACI,MAAM4zB,EAAWR,EAAS/a,MAAKib,GACpBzd,EAAMpI,KAAO6lB,EAAK7lB,KAE7BoI,EAAM7V,MAAS4zB,GAAaA,EAAS5zB,OAAqB,OAItEF,KAAKoD,SAAS,CACV2uB,UAAWD,EACXG,cAAc,EACdG,cAAAA,EACAF,SAAUhC,EAAS0C,KACnBlnB,aAAa,EACb4mB,cAAc,EACdC,gBAAgB,EAChBC,iBAAmBc,EAAS,GAA2B99B,QAK9C,KAAAu+B,kBAAoB,CAACT,EAA6BlB,KAC/D,MAAMJ,EAAO5wB,EAAA,GAA8BkyB,EAAS,GAA2B99B,MAEzEw+B,EAAyB,GAE/BV,EAASh1B,SAASk1B,IACd,GAAgB,SAAZA,EAAK7lB,GAAe,CAEpB,MAAM8lB,EAAWD,EAAKtzB,MAChBwzB,EAAiBD,EAASx1B,YAAY,KAC5C+1B,EAAkBtqB,UAAY+pB,EAASz1B,UAAU,EAAG01B,GAEpDM,EAAkBrqB,SAAW8pB,EAASz1B,UAAU01B,EAAiB,QAC1DF,EAAK3kB,OAASolB,EAAAA,cAAcC,MACnCF,EAAkBR,EAAK7lB,IAAM3N,KAAKhN,MAAMsC,QAAQua,iBAAiB9K,eAAeyuB,EAAKtzB,OAErF8zB,EAAkBR,EAAK7lB,IAAM6lB,EAAKtzB,SAI1CF,KAAKoD,SAAS,CACV4wB,kBAAAA,EACA5B,cAAAA,EACAI,iBAAkBR,EAClBE,SAAUhC,EAASiE,OACnBzoB,aAAa,EACb6mB,gBAAgB,EAChBN,cAAc,KAKL,KAAAmC,mBAAsBd,IACnC,MAAMtB,EAAO5wB,EAAA,GAA8BkyB,EAAS,GAA2B99B,MAEzEw+B,EAAyB,GAE/BV,EAASh1B,SAASk1B,IACd,GAAgB,SAAZA,EAAK7lB,GAAe,CAEpB,MAAM8lB,EAAWD,EAAKtzB,MAChBwzB,EAAiBD,EAASx1B,YAAY,KAC5C+1B,EAAkBtqB,UAAY+pB,EAASz1B,UAAU,EAAG01B,GAEpDM,EAAkBrqB,SAAW8pB,EAASz1B,UAAU01B,EAAiB,QAC1DF,EAAK3kB,OAASolB,EAAAA,cAAcC,MACnCF,EAAkBR,EAAK7lB,IAAM3N,KAAKhN,MAAMsC,QAAQua,iBAAiB9K,eAAeyuB,EAAKtzB,OAErF8zB,EAAkBR,EAAK7lB,IAAM6lB,EAAKtzB,SAI1CF,KAAKoD,SAAS,CACV4wB,kBAAAA,EACAxB,iBAAkBR,EAClBE,SAAUhC,EAASmE,KACnB3oB,aAAa,EACbumB,cAAc,KAKL,KAAAqC,wBAA0B,KAEvC,MAAM,QAAEh/B,GAAY0K,KAAKhN,OACjBw/B,iBAAkB+B,GAAmBv0B,KAAKvF,MAE9C85B,IACAC,EAAAA,EAAAA,wBAAuB,IAAIC,EAAAA,4BAA4BF,GAAiBj/B,EAAQwS,eAC3E0e,MAAK,KACFrU,OAAOsU,SAASsM,QAAO,GACvB/yB,KAAKoD,SAAS,CACV8uB,SAAUhC,EAASwE,KACnBhpB,aAAa,OAGpBgb,OAAMtsB,IACH9E,EAAQoL,UAAUsyB,MAAM54B,GACxB4F,KAAKoD,SAAS,CACVmvB,gBAAgB,QAMnB,KAAAoC,qBAAuB,KACpC30B,KAAKs0B,2BAsIQ,KAAAM,eAAkB70B,IAC/B,MAAM+xB,EAAU9xB,KAAKvF,MAAMs3B,UAE3BD,EAAQxzB,SAAQgY,IACRA,EAAK3I,KAAO5N,EAAME,OAAO0N,KACzB2I,EAAKpW,MAAQH,EAAME,OAAOC,UAMlCF,KAAKoD,UAASyxB,IAAI,CACdC,SAAUD,EAAKC,QACfC,QAAS/0B,KAAKg1B,eACdjD,UAAWD,EACXQ,cAAc,EACdC,gBAAgB,OAKP,KAAAyC,aAAe,KAC5B,MAAM,UAAEjD,GAAc/xB,KAAKvF,MAE3B,IAAK,MAAMw6B,KAAYlD,EAAW,CAO9B,GAAIkD,EAASpH,YAAwC,IAA1BoH,EAAS/0B,MAAMnI,OACtC,OAAO,EACJ,QAAyBoQ,IAArB8sB,EAAStf,SAAoE,OAA3Csf,EAAS/0B,MAAMg1B,MAAMD,EAAStf,SACvE,OAAO,EACJ,GAAIsf,EAAStnB,KAAOyiB,EAAQmB,eAAoC,KAAnB0D,EAAS/0B,OAAgB4W,MAAMF,OAAOwc,WAAW6B,EAAS/0B,QAI1G,OAHAF,KAAKoD,SAAS,CACVkvB,cAAc,KAEX,EAIf,OAAO,GAGM,KAAA6C,aAAgBC,GACtBp1B,KAAKhN,MAAMsC,QAAQua,iBAAmB7P,KAAKhN,MAAMsC,QAAQua,iBAAiB9K,eAAeqwB,GAASA,EAAMvS,WAGlG,KAAAwS,eAAkBC,GAC3BpY,EAAAA,GAASC,UACF,IAAIoY,IAAIpjB,OAAOsU,SAAS5vB,OAI/By+B,EAAWz3B,IAAIC,WAAWjH,KACnB,IAAI0+B,IAAID,EAAWz3B,IAAIC,WAAWjH,OAShC,KAAA2+B,aAAe,KAC5B,MAAM,QAAElgC,GAAY0K,KAAKhN,MAGzB,GAAIsC,EAAQC,SAAWD,EAAQC,QAAQkgC,QAA0C,WAAhCngC,EAAQC,QAAQkgC,OAAOC,KACpE,MAAO,KAGX,GAAIxY,EAAAA,GAASC,WAAahL,OAAOwjB,WAAY,CACzC,MAAMC,EAAetgC,EAAQC,QAAQqgC,aACrC,GAAIA,EACA,OAAIA,EAAaC,IAAM1jB,OAAOwjB,YAAcC,EAAaC,GAAGC,EACjD,KACAF,EAAaG,IAAM5jB,OAAOwjB,YAAcC,EAAaG,GAAGD,EACxD,KACAF,EAAaI,IAAM7jB,OAAOwjB,YAAcC,EAAaI,GAAGF,EACxD,KACAF,EAAaK,IAAM9jB,OAAOwjB,YAAcC,EAAaK,GAAGH,EACxD,KAEJ,KAIf,MAAO,MAGM,KAAAI,gCAAkC,KAC/Cl2B,KAAKoD,SAAS,CACV8C,qCAAsClG,KAAKvF,MAAMyL,uCAIxC,KAAAC,gBAAmBC,IAChCpG,KAAKoD,SAAS,CACViD,+BAAgCD,KAIvB,KAAAE,cAAiBC,IAC9BvG,KAAKoD,SAAS,CACVoD,6BAA8BD,KAIrB,KAAAZ,2BAA8Be,IAC3C1G,KAAKoD,SAAS,CACVuD,wBAAyBD,EACzBd,6BAA6B,KAIpB,KAAAuwB,iBAAmB,KAChC,MAAMC,GAAqBzL,EAAAA,EAAAA,IAAW,2BAA4B3qB,KAAKhN,MAAMsC,QAAQwS,eACjFsuB,GAAsBlZ,EAAAA,GAASC,YAC/BhL,OAAOsU,SAAS5vB,KAAOu/B,IAId,KAAAxvB,kBAAoB,KACjC,MAAMG,EAAW/G,KAAKhN,MAAMyB,KAAKuS,oBAAoBrS,OAG/C0hC,EAFuBr2B,KAAKhN,MAAMyB,KAAK62B,MAAM32B,OAEV4jB,MAAKyI,GAAWA,EAAQtZ,QAAUX,EAASW,QAC9ET,EAAYjH,KAAKs2B,cAAcD,GAE/BlvB,EAA4C,CAC9CC,SAAU,IAAIC,KAAKrH,KAAKvF,MAAM4L,gCAC9BiB,OAAQ,IAAID,KAAKrH,KAAKvF,MAAM+L,8BAC5Be,sBAAuBvH,KAAKvF,MAAMkM,wBAClCa,gBAAiBP,EACjBQ,oBAAqBV,EAASW,MAC9BC,mBAAuD,OAApCC,EAAAA,2CAAoC,IAApCA,EAAAA,0CAAoC,EAApCA,EAAAA,qCAAsCF,QAAS,GAGhEpS,EAAU,CAAEuS,cAAe7H,KAAKhN,MAAMsC,QAAQwS,eAEpDC,EAAAA,gCAAAA,6BAA6DzS,EAAS2R,EAAWE,GAEjFnH,KAAKu2B,+BAGQ,KAAAD,cAAiBD,GAC1Br2B,KAAKvF,MAAMkM,0BAA4B3G,KAAKvF,MAAM+3B,iBAC3C6D,EAAcA,EAAYpvB,UAAY,GAE1CjH,KAAKvF,MAAM+3B,iBAAiBvrB,UAGtB,KAAAsvB,4BAA8B,KAAK,IAAAC,EAChDx2B,KAAKoD,SAAS,CACVwC,6BAA6B,IAEW,QAA5C4wB,EAAAx2B,KAAKy2B,gCAAgC1wB,eAAO,IAAAywB,GAA5CA,EAA8CxwB,SAGjC,KAAA0wB,aAAgBC,IAC7B,MAAMC,EAAcD,EAAQpe,MAAKse,GAAYA,EAASC,aAEtD92B,KAAKoD,SAAS,CACVovB,iBAAkBoE,EAAeA,EAAYG,IAAI,GAA2BvhC,UAAO2S,KAh5BvFnI,KAAK6F,aAAe7F,KAAK6F,aAAa+jB,KAAK5pB,MAC3CA,KAAK40B,eAAiB50B,KAAK40B,eAAehL,KAAK5pB,MAC/CA,KAAKs0B,wBAA0Bt0B,KAAKs0B,wBAAwB1K,KAAK5pB,MAEjEA,KAAKg3B,sBAAwB,CAAC5G,EAAQ1oB,MAAO0oB,EAAQ6G,OAAQ7G,EAAQmB,eACrEvxB,KAAKk3B,UACDlkC,EAAMsC,QAAQC,SAAWvC,EAAMsC,QAAQC,QAAQkgC,QAAgD,WAAtCziC,EAAMsC,QAAQC,QAAQkgC,OAAOC,KAAoB,KAAO,KACrH11B,KAAKm3B,gBAAkBn3B,KAAKm3B,gBAAgBvN,KAAK5pB,MACjDA,KAAKo3B,sBAAwB9gC,EAAAA,YAC7B0J,KAAKqyB,uBAAyB/7B,EAAAA,YAC9B0J,KAAKy2B,gCAAkCngC,EAAAA,YACvC0J,KAAKvF,MAAQ,CACTs6B,SAAS,EACThD,UAAW/xB,KAAKq3B,iBAChBpF,cAAc,EACdC,SAAUhC,EAASwE,KACnBI,SAAS,EACTppB,aAAa,EACb4mB,cAAc,EACdC,gBAAgB,EAChB3sB,6BAA6B,EAC7BS,+BAAgC,GAChCG,6BAA8B,GAC9BN,qCAAqC,EACrCS,yBAAyB,EACzBqB,+BAA+B,IAAIX,MAAOY,cAAcpS,MAAM,KAAK,GACnEs9B,iCAAkC,IAGtCnzB,KAAKM,kBAAmBC,EAAAA,EAAAA,oBACpBP,KAAKhN,MAAMsC,QAAQC,QAAQiL,kBAC3BR,KAAKhN,MAAMyN,aACXT,KAAKhN,MAAM0N,WAEfV,KAAKkC,SAAUC,EAAAA,EAAAA,kBAAiB,QAASnC,KAAKM,iBAAkB,IA5D1D,eACN,MAA0B,OAAnBN,KAAKk3B,WAAyC,OAAnBl3B,KAAKk3B,UAGjC,gCACN,OACKpa,EAAAA,iBAAiBC,mBAAmB/c,KAAKvF,MAAM4L,kCAC/CyW,EAAAA,iBAAiBC,mBAAmB/c,KAAKvF,MAAM+L,8BAI9C,uBACN,MAAM,oCAAE8wB,GAAwCt3B,KAAKhN,MAAMsB,UAC3D,OAAO0L,KAAKvF,MAAM+3B,iBACZ8E,EACKv4B,QAAQ,cAAeiB,KAAKvF,MAAM+3B,iBAAiB9oB,WAAa,IAChE3K,QAAQ,aAAciB,KAAKvF,MAAM+3B,iBAAiB7oB,UAAY,IACnE,GA8CH0tB,iBAEH,OADsBr3B,KAAKmxB,0BACNn5B,KAAI,CAAC+d,EAAO1T,KAC7BrC,KAAK0xB,mBAAmB9a,OAAOvU,IAAU/L,EAAAA,YACzCyf,EAAM4a,eAAiB3wB,KAAK0xB,mBAAmB9a,OAAOvU,IAC/C0T,KAIR3C,oBACC8J,EAAAA,GAASC,WAAahL,OAAOolB,mBAC7BplB,OAAOolB,iBAAiB,SAAUv3B,KAAKm3B,iBACvCn3B,KAAKm3B,mBAINK,uBACCta,EAAAA,GAASC,WAAahL,OAAOslB,qBAC7BtlB,OAAOslB,oBAAoB,SAAUz3B,KAAKm3B,iBAI3CpzB,sBACHC,EACAC,GAEA,OAAIjE,KAAKvF,QAAUwJ,GAAajE,KAAKhN,MAAMyB,OAASuP,EAAUvP,QAIzDuL,KAAKvF,MAAMiR,aAAe1L,KAAKvF,MAAMiR,cAAgBzH,EAAUyH,aAChEuG,YAAW,KAAK,IAAAylB,EAAAC,EACsB,QAAlCD,EAAA13B,KAAK0xB,mBAAmB,GAAG3rB,eAAO,IAAA2xB,GAAlCA,EAAoC1xB,QACF,QAAlC2xB,EAAA33B,KAAKo3B,sBAAsBrxB,eAAO,IAAA4xB,GAAlCA,EAAoC3xB,UACrChG,KAAKyxB,aAEL,GAGJ9wB,SAAM,IAAAi3B,EACT,MAAM,OACF9jC,EAAM,UACNQ,EACAG,MAAM,MAAE62B,IACRtrB,KAAKhN,OACH,UAAE0D,EAAS,QAAExD,EAAO,qBAAE2kC,GAAyB/jC,GAC/C,6BACFgkC,EAA4B,8BAC5BC,EAA6B,2BAC7BC,EAA0B,6BAC1BC,EAA4B,qCAC5BC,EAAoC,0BACpCC,EAAyB,sBACzBhvB,EAAqB,4BACrBR,EAA2B,2BAC3ByvB,EAA0B,mCAC1BC,EAAkC,wCAClCC,EAAuC,iCACvCC,EAAgC,YAChCtvB,EAAW,cACXH,EAAa,YACbC,EAAW,mBACXC,EAAkB,iBAClBH,EAAgB,kBAChBuD,GACA9X,GACE,UACFy9B,EAAS,aACTE,EAAY,SACZC,EAAQ,YACRxmB,EAAW,+BACXrF,EAA8B,6BAC9BG,EAA4B,4BAC5BZ,EAA2B,8BAC3BoC,GACAhI,KAAKvF,MAEH+9B,EAAWlN,GAASA,EAAM32B,QAAU22B,EAAM32B,OAAOoD,OAAS,EAChEiI,KAAKkC,QAAQI,cAAcC,MAAQiN,EAAAA,kBAAkBipB,QACrD,MAAMC,GAAoBj2B,EAAAA,EAAAA,wBAAuBzC,KAAKM,iBAAmBN,KAAKkC,SAExE6E,EAA8C,QAAtC6wB,EAAG53B,KAAKhN,MAAMyB,KAAKuS,2BAAmB,IAAA4wB,OAAA,EAAnCA,EAAqCjjC,OAEtD,IAAK6jC,EAAU,CACX,IAAI7jB,EAAe,GACE,YAAjB2W,EAAM/zB,OACNod,EAAeqjB,EACS,WAAjB1M,EAAM/zB,OACbod,EAAeujB,EACR5M,EAAM32B,QAAkC,IAAxB22B,EAAM32B,OAAOoD,SACpC4c,EAAesjB,GAGnB,MAAMU,EAAUv3B,EAAAA,EAAA,GACTpB,KAAKhN,OAAK,IACb0D,UAAAA,EACAkiC,qBAAsB,CAClBpkC,YAAawL,KAAKhN,MAClB0D,UAAWO,GAAAA,CAAW+I,KAAKsR,gBAAiB5a,IAEhDmiC,gBAAiB,CACbniC,UAAW,GAAGsJ,KAAKsR,8BAEvBpe,QAASA,GAAWoD,EAAAA,cAAC6N,EAAAA,QAAO,CAACzN,UAAW,GAAGsJ,KAAKsR,2BAA4BlN,WAAYlR,EAAQoO,IAAK3L,KAAMzC,EAAQyC,OACnHmjC,cACIxiC,EAAAA,cAAC0W,EAAAA,OAAMxW,OAAAC,OAAA,CACHwW,SAAUjN,KAAKqyB,uBACf37B,UAAW,GAAGsJ,KAAKsR,mCACnB1U,QAASoD,KAAK6xB,6BACV6G,GAEHX,GAGTgB,YAAaziC,EAAAA,cAAA,KAAGI,UAAW,GAAGsJ,KAAKsR,kCAAmCqD,KAG1E,OAAO3U,KAAKhN,MAAM6O,WAAW82B,GAGjC,MAAMx3B,EAASC,EAAAA,EAAA,GACRpB,KAAKhN,OAAK,IACb0D,UAAAA,EACAkiC,qBAAsB,CAClBpkC,YAAawL,KAAKhN,MAClB0D,UAAWO,GAAAA,CAAW+I,KAAKsR,gBAAiB5a,IAEhDmiC,gBAAiB,CACbniC,UAAW,GAAGsJ,KAAKsR,8BAEvBpe,QAASA,GAAWoD,EAAAA,cAAC6N,EAAAA,QAAO,CAACzN,UAAW,GAAGsJ,KAAKsR,2BAA4BlN,WAAYlR,EAAQoO,IAAK3L,KAAMzC,EAAQyC,OACnHqjC,WAAYttB,EACZotB,cACIxiC,EAAAA,cAAC0W,EAAAA,OAAMxW,OAAAC,OAAA,CACHwW,SAAUjN,KAAKqyB,uBACf37B,UAAW,GAAGsJ,KAAKsR,mCACnB1U,QAASoD,KAAK6xB,6BACV6G,GAEHX,GAGTkB,sBAAuB3iC,EAAAA,cAAC4iC,EAAAA,MAAK1iC,OAAAC,OAAA,GAAKuJ,KAAKm5B,sBACvCC,YAAap5B,KAAK6F,aAClBqsB,SAAAA,EACAt4B,KACIq4B,GAAgBvmB,IAAgBwmB,IAAahC,EAASiC,KAAOD,IAAahC,EAAS0C,MAC7E5yB,KAAKq5B,kBACLr5B,KAAKs5B,qBACfvH,UAAAA,EACAwH,8BAA+B1B,EAC3BvhC,EAAAA,cAAC+T,EAAAA,GAA2B,CACxB3T,UAAWO,GAAAA,CAAW+I,KAAKsR,gBAAiB5a,GAC5C4T,gBAAiBtK,KAAKy2B,gCACtBlsB,mBAAoBvK,KAAK2F,2BACzBgD,4BAA6BmvB,EAC7BttB,iBAAkBxK,KAAKk2B,gCACvBzrB,mBAAoB4tB,EACpBlvB,sBAAuBmvB,EACvB5tB,kBAAmB1K,KAAKvF,MAAMyL,oCAC9BiH,qBAAsBirB,EACtBlrB,kBAAmBlN,KAAKm2B,mBAG5B7/B,EAAAA,cAAC+T,EAAAA,GAA2B,CACxB3T,UAAWO,GAAAA,CAAW+I,KAAKsR,gBAAiB5a,GAC5C4T,gBAAiBtK,KAAKy2B,gCACtBlsB,mBAAoBvK,KAAK2F,2BACzBgD,4BAA6BA,EAC7B6B,iBAAkBxK,KAAKk2B,gCACvBzrB,mBAAoB0tB,EACpBhvB,sBAAuBA,EACvBuB,kBAAmB1K,KAAKvF,MAAMyL,sCAGtCqF,sBACIjV,EAAAA,cAACkV,EAAAA,GAAqB,CAClBC,OAAO1E,MAAAA,OAAQ,EAARA,EAAUW,QAAS,GAC1BgE,YAAa9F,EACb+F,OAAQ3L,KAAKu2B,4BACb3qB,eAAgBvF,EAChBwF,aAAcrF,EACdsF,iBAAkB9L,KAAKmG,gBACvB4F,eAAgB/L,KAAKsG,cACrB0F,iBAAkBhM,KAAKiM,0BACvBrD,iBAAkB2vB,EAClB1vB,iBAAkBA,EAClBC,cAAeA,EACfC,YAAaA,EACbC,mBAAoBA,EACpBC,YAAaA,EACbiD,gBAAiBlM,KAAK4G,kBACtBlQ,UAAWO,GAAAA,CAAW+I,KAAKsR,gBAAiB5a,GAC5C0V,kBAAmBA,EACnBD,aACInM,KAAKvF,MAAMkM,wBAA0B3G,KAAKhN,MAAMsB,UAAUklC,0BAA4Bx5B,KAAKy5B,iBAE/FrwB,eAAgBpJ,KAAKhN,MAAMsB,UAAU8U,eACrCiD,cAAerE,MAK3B,OAAOhI,KAAKhN,MAAM6O,WAAWV,GAIzBg4B,oBACJ,MAAM,OAAErlC,EAAM,UAAEQ,EAAS,QAAEgB,GAAY0K,KAAKhN,OACtC,UAAE0mC,EAAS,eAAEC,EAAc,sBAAEC,GAA0B9lC,GACvD,qCACF+lC,EAAoC,yCACpCC,EAAwC,2BACxCC,EAA0B,+BAC1BC,EAA8B,6BAC9BC,EAA4B,6BAC5BnC,EAA4B,gCAC5BoC,EAA+B,oBAC/BC,GACA7lC,EAEE8lC,EAAYp6B,KAAKq6B,oBAevB,MAAO,CACH/lC,UAAAA,EACAgmC,SAfC9V,EAAAA,gBAAgBC,YAAY2V,IACzBA,EAAU,GAAGrD,IAAI/+B,KAAIse,IACjB,IAAItW,KAAKu6B,WAAYv6B,KAAKg3B,sBAAsB5gC,SAASkgB,EAAK3I,IAG9D,MAAO,CACH/U,KAAM0d,EAAK3I,GACX6sB,SAAWd,GAAaA,IAAc,EACtC/2B,UAAWw3B,OAGvB,GAKAM,KAAML,EACN1jC,UAAW,GAAGsJ,KAAKsR,yBACnBopB,aAAc16B,KAAKu6B,SAAWR,EAA6B,GAC3DY,eAAgB36B,KAAKu6B,SAAWN,EAA+B,GAC/D7pB,aAAc4pB,EACdY,gBAAiBb,EACjBc,kBAAmBZ,EACnBa,gBAAiBd,EACjBe,gBAAgB,EAChBC,eAAgBlD,EAChBmD,gBAAgB,EAChBC,WAAYxB,EACZyB,eAAgB,eAChBxB,eAAAA,EACAyB,cAAep7B,KAAKu6B,SACpBc,gBAAiBr7B,KAAKu6B,SAAWv6B,KAAKg3B,sBAAwB,GAC9DsE,mBAAoB,CAChBC,UACIjmC,GACAA,EAAQC,SACRD,EAAQC,QAAQimC,OAChBlmC,EAAQC,QAAQimC,MAAMC,OACrB3kB,MAAMF,OAAOC,SAASvhB,EAAQC,QAAQimC,MAAMC,KAAM,KAC7C7kB,OAAOC,SAASvhB,EAAQC,QAAQimC,MAAMC,KAAM,IAC5C,EACVC,YAAa9B,GAAyB,GACtC+B,SAAU7B,EACV8B,SAAU/B,EACVgC,eAAgB3B,EAChBr8B,IAAMvI,GAAW0K,KAAKq1B,eAAe//B,EAAQC,SAASsB,MAAS,IAEnEilC,oBAAoB,EACpBC,eAAgBznC,EAAUynC,eAC1BC,cAAe,EACfC,wCAAyC3nC,EAAU2nC,wCACnDC,gBAAiB5nC,EAAU4nC,gBAC3BC,iBAAkB7nC,EAAU6nC,iBAC5B7wB,QAAS,CACL8wB,SAAUp8B,KAAK+zB,kBACfvyB,OAAQxB,KAAKqzB,gBACbgJ,OAASr8B,KAAKu6B,UAAYv6B,KAAKo0B,yBAAuBjsB,GAE1Dm0B,YAAat8B,KAAKm1B,aAClBoH,iBAAkBv8B,KAAK02B,cAKvB2D,oBACJ,MAAM,UACF/lC,EACAG,MAAM,MAAE62B,IACRtrB,KAAKhN,OACH,6BAAEwpC,EAA4B,8BAAEC,EAA6B,8BAAEC,GAAkCpoC,EACjGqoC,EAAYrR,GAASA,EAAM32B,OAEjC,OAAK6vB,EAAAA,gBAAgBC,YAAYkY,GAI1BA,EAAU3kC,KAAI,CAACxC,EAAM6M,KACxB,IAAIu6B,EAAe,GAInB,OAHA58B,KAAK2xB,sBAAsBtvB,GAAS/L,EAAAA,YACpC0J,KAAK4xB,wBAAwBvvB,GAAS/L,EAAAA,YAE9Bd,EAAKqnC,aACT,KAAK,EACDD,EAAeH,EACf,MACJ,KAAK,EACDG,EAAeJ,EACf,MACJ,KAAK,EACL,QACII,EAAeF,EAGvB,MAAO,CACH3F,IAAK,CACD,CACIppB,GAAIyiB,EAAQ0M,SACZjuB,KAAMolB,EAAAA,cAAcra,KACpB1Z,MAAO,GAAG1K,EAAKkU,aAAalU,EAAKmU,WACjCnU,KAAAA,GAEJ,CACImY,GAAIyiB,EAAQ1oB,MACZmH,KAAMolB,EAAAA,cAAcra,KACpB1Z,MAAO1K,EAAKkS,OAAS,GACrBhR,UAAW,GAAGsJ,KAAKsR,6BAEvB,CACI3D,GAAIyiB,EAAQ6G,OACZpoB,KAAMolB,EAAAA,cAAcra,KACpB1Z,MAAO08B,GAEX,CACIjvB,GAAIyiB,EAAQmB,cACZ1iB,KAAMolB,EAAAA,cAAcC,MACpBh0B,MAAO1K,EAAK+7B,eAAiB,IAGrCuF,YAAY,EACZiG,iBAAkB,CACdxjC,KAAMyG,KAAK2xB,sBAAsBtvB,GACjC26B,OAAQh9B,KAAK4xB,wBAAwBvvB,QAhDtC,GAuDPwD,eAAY,IAAAo3B,EACQ,QAAxBA,EAAAj9B,KAAKvF,MAAM23B,qBAAa,IAAA6K,GAAxBA,EAA0Bj3B,QAC1BhG,KAAKoD,SAAS,CACVsI,aAAa,EACbumB,cAAc,EACdG,mBAAejqB,EACf+pB,SAAUhC,EAASwE,OA8NnB4E,qBACJ,MAAM,UAAEhlC,GAAc0L,KAAKhN,OACrB,SAAEk/B,EAAQ,kBAAE8B,EAAiB,eAAEzB,GAAmBvyB,KAAKvF,OACvD,kCACFyiC,EAAiC,mCACjCC,EAAkC,gCAClCC,EAA+B,6BAC/BC,EAA4B,uCAC5BC,EAAsC,iCACtCC,EAAgC,sCAChCC,GACAlpC,EAEEmpC,EAAgB,GAAGz9B,KAAKsR,wBACxBosB,EAAgBxL,IAAahC,EAASiE,OAAS,cAAgB,YAC/DwJ,EAAqB39B,KAAK20B,qBAEhC,MAAO,CACHiJ,eAAgB3mC,GAAAA,CAAW,GAAG+I,KAAKsR,yBAA0BosB,GAC7DG,YAAa,CACTnnC,UAAW+mC,GAEfK,aAAc5L,IAAahC,EAASiE,OAAS+I,EAAoCE,EACjFW,iBAAkB7L,IAAahC,EAASiE,QACpC79B,EAAAA,cAAA,KAAGI,UAAW,GAAG+mC,iBAA8BN,GAEnDhxB,aAAc6nB,EACdhf,QAAS,CACLkd,IAAahC,EAASiE,QAClB79B,EAAAA,cAAC0W,EAAAA,OAAM,CACHC,SAAUjN,KAAKo3B,sBACfj/B,IAAI,gBACJzB,UAAW,GAAG+mC,uBACd7gC,QAAS+gC,GAERJ,GAGTjnC,EAAAA,cAAC0W,EAAAA,OAAM,CAAC7U,IAAI,gBAAgBzB,UAAW,GAAG+mC,WAAwB7gC,QAASoD,KAAK6F,cAC3EqsB,IAAahC,EAASiE,OAASmJ,EAAyCD,IAGjF1oB,aAAc,CACV4d,GACIj8B,EAAAA,cAACw6B,EAAAA,GAAc,CACX34B,IAAI,iBACJwV,GAAG,iBACHjX,UAAW,GAAG+mC,UACd7qB,QAAS4qB,KAIrBlpC,UAAAA,GAKA+kC,kBACJ,MAAM,UAAE/kC,GAAc0L,KAAKhN,OACrB,SAAEk/B,EAAQ,UAAEH,EAAS,aAAEO,EAAY,eAAEC,EAAc,QAAEwC,EAAO,iCAAE5B,GAAqCnzB,KAAKvF,OACxG,oCACFujC,EAAmC,mCACnCC,EAAkC,gCAClCC,EAA+B,2BAC/BC,EAA0B,kCAC1BC,EAAiC,6BACjCf,EAA4B,oCAC5BgB,EAAmC,4BACnCC,EAA2B,qCAC3BC,EAAoC,mBACpChO,GACAj8B,EAEEmpC,EAAgB,GAAGz9B,KAAKsR,wBACxBosB,EAAgBxL,IAAahC,EAASiC,IAAM,WAAa,YAE/D,MAAO,CACHyL,eAAgB3mC,GAAAA,CAAW,GAAG+I,KAAKsR,yBAA0BosB,GAC7DG,YAAa,CACTnnC,UAAW+mC,GAEfK,aAAc5L,IAAahC,EAASiC,IAAM8L,EAAqCD,EAC/ED,iBAAkB7L,IAAahC,EAASiC,KACpC77B,EAAAA,cAAA,KAAGI,UAAW,GAAG+mC,sBAAmCc,GAExDjO,OAAQD,EAAmB0B,EAAW,GAAG0L,SAAsBlN,EAAoBvwB,KAAK40B,gBACxF5f,QAAS,CACL1e,EAAAA,cAACkoC,EAAAA,GAAU,CACPrmC,IAAI,WACJwV,GAAG,WACHjX,UAAW,GAAG+mC,SACd96B,UAAWu7B,EACXvoC,KAAMwoC,EACNvhC,QAASoD,KAAKyyB,6BACdtjB,UAAW4lB,EACXz0B,iBAAkBN,KAAKM,mBAE3BhK,EAAAA,cAACkoC,EAAAA,GAAU,CACPrmC,IAAI,SACJwV,GAAG,SACHjX,UAAW,GAAG+mC,WACd96B,UAAWy7B,EACXzoC,KAAM0nC,EACNzgC,QAASoD,KAAK6F,aACdvF,iBAAkBN,KAAKM,oBAG/BqU,aAAc,CACV2d,GACIh8B,EAAAA,cAACw6B,EAAAA,GAAc,CACX34B,IAAI,iBACJwV,GAAG,iBACHjX,UAAWsJ,KAAKsR,gBAChBsB,QAASyrB,IAGjB9L,GACIj8B,EAAAA,cAACw6B,EAAAA,GAAc,CACX34B,IAAI,iBACJwV,GAAG,iBACHjX,UAAWsJ,KAAKsR,gBAChBsB,QAASugB,GAAsEmL,KAI3FhqC,UAAAA,GAmEA6iC,kBACJn3B,KAAKk3B,UAAYl3B,KAAKw1B,kBAv1B1BlwB,EAAAA,EAAAA,IAAA,CADC2Q,EAAAA,IAAU,iCAqBD3Q,EAAAA,EAAAA,IAAA,CAATC,EAAAA,IAAQ,8BAICD,EAAAA,EAAAA,IAAA,CAATC,EAAAA,IAAQ,+CAOCD,EAAAA,EAAAA,IAAA,CAATC,EAAAA,IAAQ,qCAzEP0rB,GAAwB3rB,EAAAA,EAAAA,IAAA,CAD7B4Q,EAAAA,IACK+a,GA6+BN,0GCrpCA,MAAMwN,EAAgD38B,IAA4C,IAA3C,QAAE8T,EAAO,MAAEvK,EAAK,aAAEsJ,EAAY,MAAEoB,GAAOjU,EAC1F,OACIxL,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKmf,GACLvK,EACAsJ,EACAoB,IAKP2oB,EAA8C1rC,IAChD,MAAM,eAAE4qC,EAAc,YAAEC,EAAW,aAAEC,EAAY,iBAAEC,EAAgB,OAAEzN,EAAM,QAAEtb,EAAO,aAAEL,EAAY,OAAEhJ,GAAW3Y,EAEzG2G,EACFrD,EAAAA,cAAAA,EAAAA,SAAA,KACKynC,EACDznC,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKonC,GACLvN,GACGA,EAAOt4B,KAAKse,GACDhgB,EAAAA,cAACmoC,EAAgBjoC,OAAAC,OAAA,GAAK6f,EAAI,CAAEne,IAAKme,EAAKne,SAEpDwc,GACGA,EAAa3c,KAAI,CAACoC,EAAwBiI,IAC/B/L,EAAAA,cAACA,EAAAA,SAAc,CAAC6B,IAAKkK,GAAQjI,OAMlDC,EACF2a,GACAA,EAAQhd,KAAI,CAACue,EAAyBlU,IAC3B/L,EAAAA,cAACA,EAAAA,SAAc,CAAC6B,IAAKkK,GAAQkU,KAG5C,OAAOooB,EAAaf,GAAgB,EAAME,EAAcnkC,EAAWU,EAAasR,IAG9EizB,EAAiD5rC,IACnD,MAAM,eAAE4qC,EAAc,YAAEC,EAAW,aAAEC,EAAY,iBAAEC,EAAgB,aAAE5xB,EAAY,QAAE6I,EAAO,aAAEL,EAAY,UAAErgB,EAAS,OAAEqX,GAAW3Y,EAChI,IAAI2G,EAAY,KAEhB,GAAKwS,EAEE,CACH,MAAM,UAAEzC,EAAS,SAAEC,GAAawC,EAC1B0yB,EAAe,GAAGn1B,KAAaC,IAErChQ,EACIrD,EAAAA,cAAAA,EAAAA,SAAA,KACKynC,EACDznC,EAAAA,cAACwB,EAAAA,KAAI,CAACwJ,IAAI,KAAK5K,UAAW,GAAGmnC,EAAYnnC,kBACrCJ,EAAAA,cAACwB,EAAAA,KAAI,CAACwJ,IAAI,KAAK5K,UAAW,GAAGmnC,EAAYnnC,4BACpCmoC,GAEJroC,OAAOgoB,KAAKrS,GAAcnU,KAAI,CAACvD,EAAM4N,KAClC,GAAI5N,IAAS27B,EAAAA,QAAQ1mB,WAAajV,IAAS27B,EAAAA,QAAQzmB,SAC/C,OAAO,KAEX,MAAM0B,EAAQ/W,EAAU,QAAQG,iBAAsBA,EACtD,OACI6B,EAAAA,cAACwB,EAAAA,KAAI,CAACwJ,IAAI,KAAK5K,UAAW,GAAGmnC,EAAYnnC,sBAAuByB,IAAKkK,GAChEgJ,EACA,KACAc,EAAa1X,cArBtCkF,EAAYgb,EA8BhB,MAAMta,EACF2a,GACAA,EAAQhd,KAAI,CAACue,EAAyBlU,IAC3B/L,EAAAA,cAACA,EAAAA,SAAc,CAAC6B,IAAKkK,GAAQkU,KAG5C,OAAOooB,EAAaf,GAAgB,EAAME,EAAcnkC,EAAWU,EAAasR,IAgB9EgzB,EAAeA,CACjBjoC,EACAgV,EACAozB,EACAC,EACAC,EACA5F,IAGI9iC,EAAAA,cAAC+X,EAAAA,MAAK,CACF3X,UAAU,2BACVuoC,cAAevoC,EACf8X,WAAS,EACTC,MAAM,EACNoa,gBAAgB,aAChBhb,OAAQnC,EACRC,OAAQytB,GAER9iC,EAAAA,cAACoY,EAAAA,YAAW,CAAC/C,OAAQytB,GAAc0F,GACnCxoC,EAAAA,cAACqY,EAAAA,UAAS,KAAEowB,GACZzoC,EAAAA,cAAC4Y,EAAAA,YAAW,KAAE8vB,IAqD1B,EAhD+EhsC,IAC3E,MAAM,qBACF4lC,EAAoB,gBACpBC,EAAe,QACf3lC,EAAO,YACP6lC,EAAW,cACXD,EAAa,sBACbG,EAAqB,KACrBr/B,EAAI,SACJs4B,EAAQ,YACRkH,EAAW,8BACXG,EAA6B,sBAC7BhuB,GACAvY,EAEEksC,EACF5oC,EAAAA,cAACwB,EAAAA,KAAI,CAACpB,UAAU,4CACXoiC,EACAS,GAIT,OAAIR,EAEIziC,EAAAA,cAACC,EAAAA,OAAMC,OAAAC,OAAA,GAAKmiC,GACRtiC,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKoiC,GACL3lC,EACAgsC,EACA3zB,EACAwtB,IAObziC,EAAAA,cAACC,EAAAA,OAAMC,OAAAC,OAAA,GAAKmiC,GACRtiC,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKoiC,GACL3lC,EACAgsC,EACA3zB,EACA0tB,GAEJr/B,GAjFIulC,EAACtwB,EAAcuwB,EAA2BhG,KACvD,OAAQvqB,GACJ,IAAK,MACL,IAAK,OACD,OAAOvY,EAAAA,cAACooC,EAAgBloC,OAAAC,OAAA,GAAK2oC,EAAS,CAAEzzB,OAAQytB,KACpD,IAAK,OACL,IAAK,SACD,OAAO9iC,EAAAA,cAACsoC,EAAmBpoC,OAAAC,OAAA,GAAK2oC,EAAS,CAAEzzB,OAAQytB,KACvD,QACI,OAAO,OAwEE+F,CAASjN,EAAUt4B,EAAMw/B,mIC3GvC,MAAMrI,EAA+CjvB,IAAA,IAAC,GACzD6L,EAAE,KACFkB,EAAI,MACJ3O,EAAK,QACLyV,EAAO,UACPjf,EAAS,UACTgf,EAAS,WACTmY,EAAU,WACVnM,EAAU,SACV3S,EAAQ,eACR4hB,EAAc,YACdK,GACHlvB,EAAA,OACGxL,EAAAA,cAAA,SACIqX,GAAIA,EACJkB,KAAMA,EACN3O,MAAOA,EACPxJ,UAAW,GAAGA,UACdif,QAAqB,KAAZA,EAAiBA,OAAUxN,EAAS,gBAC9B0lB,EACfmD,YAAaA,EACbtb,UAAWgB,EAAahB,GACxB3G,SAAUA,EACVI,SAAUuS,EACVhI,IAAKiX,KAYAC,EAA0CprB,IAAA,IAAC,GAAEmI,EAAE,MAAEmI,EAAK,UAAEpf,EAAS,KAAEf,EAAI,aAAEk7B,GAAcrrB,EAAA,OAChGlP,EAAAA,cAAA,SAAOqX,GAAI,GAAGA,UAAYjX,UAAW,GAAGA,UAAmBkY,QAASkH,IAC/D5U,EAAAA,EAAAA,QAAO2vB,EAAcl7B,KAcjB6oC,EAA4CnoB,IAA4E,IAA3E,GAAE1I,EAAE,UAAEjX,EAAS,KAAEf,EAAI,UAAEgN,EAAS,iBAAErC,EAAgB,SAAE6O,EAAQ,QAAEvS,GAASyZ,EAC7H,MAAMnU,GAAUC,EAAAA,EAAAA,kBAAiB,QAAS7B,EAAmB3K,GACvD6M,GAAaC,EAAAA,EAAAA,wBAAuBnC,EAAmB4B,GAC7D,OACI5L,EAAAA,cAAC0W,EAAAA,OAAMxW,OAAAC,OAAA,CAACkX,GAAIA,EAAIjX,UAAWA,EAAS,aAAciM,EAAWwM,SAAUA,EAAUvS,QAASA,GAAa4F,GAClG7M,IAYAm7B,EAAoDd,IAA8C,IAA7C,GAAEriB,EAAE,UAAEjX,EAAS,KAAEmY,EAAO,OAAM,QAAE+D,GAASod,EACvG,MAAMvZ,EAAiB,GAAG/f,MAAcmY,UAExC,OACIvY,EAAAA,cAAA,OAAKqX,GAAIA,EAAIjX,UAAWO,GAAAA,CAAWwf,EAAgB,QAAS,GAAG5H,UAAchM,KAAK,QAAO,YAAW,YAAW,cAAa,QACxHvM,EAAAA,cAAA,KAAGI,UAAW,GAAG+f,UAAwB7D,KAK/C8D,EAAgBhB,IAClB,GAAIA,EAAW,CACX,MAAMiB,EAAkBC,OAAOC,SAASnB,EAAW,IACnD,IAAKoB,MAAMH,GACP,OAAOA,0uBClHZ,MAAM0oB,UAAsB/oC,IAAAA,cAG/BsJ,YAAmB5M,GACf6M,MAAM7M,GA0CH,KAAAssC,iBAAoBv/B,IACvBC,KAAKhN,MAAMc,OAAOZ,QAASyC,KAAOoK,EAAME,OAAOC,OAO5C,KAAAwsB,sBAAyB3sB,IAC5BC,KAAKhN,MAAMc,OAAOyrC,UAAYx/B,EAAME,OAAOC,OAhDxCS,SAAM,IAAA6+B,EAAAC,EACT,MAAM,QAAEvsC,EAAO,UAAEqsC,GAAcv/B,KAAKhN,MAAMc,OAEpC4rC,EAAuBxsC,GACzBoD,IAAAA,cAACsjB,EAAAA,GAAI,CACDljB,UAAW,GAAG2oC,EAAcM,kCAC5Br+B,IAAgB,QAAbk+B,EAAEtsC,EAAQoO,WAAG,IAAAk+B,EAAAA,EAAI,KACpB7pC,KAAMzC,EAAQyC,KACd4L,UAAW,CAAEC,OAAQxB,KAAKs/B,iBAAkB79B,eAAgBzB,KAAKhN,MAAMsC,QAAQC,WAIjFqqC,EAA+Bpb,EAAAA,gBAAgBC,YAAoC,QAAzBgb,EAACz/B,KAAKhN,MAAMyB,KAAKorC,gBAAQ,IAAAJ,OAAA,EAAxBA,EAA0B9qC,QACrFmrC,EAAyBP,GAC3BjpC,IAAAA,cAACypC,EAAAA,GAAiB,CACdrpC,UAAW,GAAG2oC,EAAcM,qCAC5BhqC,KAAMiqC,EAAsBL,EAAYv/B,KAAKhN,MAAMsB,UAAU0rC,sBAC7Dz+B,UAAW,CAAEC,OAAQxB,KAAK0sB,sBAAuBjrB,eAAgBzB,KAAKhN,MAAMsC,QAAQC,WAGtF4L,EAASC,EAAAA,EAAA,GACRpB,KAAKhN,OAAK,IACbitC,WAAYjgC,KAAKs/B,iBACjBY,cAAe,CACX1rC,YAAawL,KAAKhN,MAClB0D,UAAW2oC,EAAcM,kBAE7BzsC,QAASwsC,EACTH,UAAWO,EACXD,SAAUD,EAAsB5/B,KAAKmgC,uBAAyB,KAGlE,OAAOngC,KAAKhN,MAAM6O,WAAWV,GAmBzBi/B,2BAA2B9pB,GAC/B,MAAM+pB,EAAY/pB,EAAKnhB,SAEvB,IADyBmrC,EAAAA,EAAAA,IAAatgC,KAAKhN,MAAMsC,QAAQC,WAChC8qC,EACrB,OAAO/pC,IAAAA,cAAA,OAAKI,UAAW,GAAG2oC,EAAcM,qCAAsC3/B,KAAKhN,MAAMsB,UAAUisC,oBAEvG,IAAIC,EAAgB,GACpB,GAAIn/B,EAAAA,GAAS8b,UAAW,CAAC,IAADsjB,EACpB,MAAMC,EAAiE,QAAvDD,GAAG9V,EAAAA,EAAAA,IAAW,OAAQ3qB,KAAKhN,MAAMsC,QAAQwS,sBAAc,IAAA24B,EAAAA,EAAI,GACrEE,EAAU,IAAIpL,IAAImL,EAAYvuB,OAAOsU,SAAS5vB,MACpD8pC,EAAQC,aAAaC,IAAI,YAAa,GAAGR,KACzCG,EAAgBG,EAAQ9pC,KAE5B,OACIP,IAAAA,cAAC0W,EAAAA,OAAM,CACHtW,UAAW,GAAG2oC,EAAcM,2BAA0B,aAC1C3/B,KAAKhN,MAAMsB,UAAUwsC,wBACjCjqC,KAAM2pC,GAELxgC,KAAKhN,MAAMsB,UAAUwsC,yBAK1BX,uBAAoB,IAAAY,EACxB,MAAMlB,EAAmC,QAA3BkB,EAAG/gC,KAAKhN,MAAMyB,KAAKorC,gBAAQ,IAAAkB,OAAA,EAAxBA,EAA0BpsC,OAErCwoB,EAAY9b,EAAAA,GAAS8b,UAE3B,OACI7mB,IAAAA,cAAA,OAAKI,UAAW,GAAG2oC,EAAcM,kCAAmC98B,KAAK,QACpEg9B,MAAAA,OAAQ,EAARA,EAAU7nC,KAAIse,IACX,MAAM0qB,EAAW,GAAGC,KAAKC,UAAU5qB,MAAS8H,OAAOjB,KAC7CgkB,EAAmC3c,EAAAA,gBAAgB4c,eAAe9qB,EAAK+qB,QAC7E,OACI/qC,IAAAA,cAAA,OACI6B,IAAK6oC,EACLtqC,UAAW,GAAG2oC,EAAcM,wCAC5B2B,SAAU,EAAC,aACChrB,EAAKoC,KACjB7V,KAAK,YAELvM,IAAAA,cAAA,MAAII,UAAW,GAAG2oC,EAAcM,sCAAuCrpB,EAAKoC,MAC5EpiB,IAAAA,cAAA,OAAKI,UAAW,GAAG2oC,EAAcM,yCAC7BrpC,IAAAA,cAACirC,EAAAA,GAAK,CACF9/B,eAAgBzB,KAAKhN,MAAMsC,QAAQC,QACnCmB,UAAW,GAAG2oC,EAAcM,oCAC5BxnC,IAAK6oC,EACLhrC,KAAKwrC,EAAAA,EAAAA,IAAiBxhC,KAAKhN,MAAMsC,QAAQC,QAAQorB,YAAawgB,MAAAA,OAAK,EAALA,EAAOM,KACrE7L,aAAc51B,KAAKhN,MAAMsC,QAAQC,QAAQqgC,aACzC8L,cAAe1hC,KAAKhN,MAAMc,OAAO6tC,qBACjC1rC,QAASkrC,MAAAA,OAAK,EAALA,EAAOS,QAChBC,oBAAoB,SAExBvrC,IAAAA,cAAA,OAAKI,UAAW,GAAG2oC,EAAcM,qCAC5B3/B,KAAKogC,2BAA2B9pB,WAhHzC+oB,EAAAM,iBAAmB,oBA2H/C,2ICjJO,MAAMmC,EAAwE9uC,IACjF,MAAM,cAAEktC,GAAkBltC,EAC1B,OACIsD,EAAAA,cAACC,EAAAA,OAAMC,OAAAC,OAAA,GAAKypC,GACPltC,EAAME,QACNF,EAAMusC,UACNvsC,EAAM6sC,WAKnB,gHCJA,MA0CMkC,EAAqBC,GAEnB1rC,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKurC,EAAWC,yBAChBD,EAAWE,iBACXF,EAAWG,oBACXH,EAAWI,kBAMtBC,EAAmBA,CACrBC,EACAhuC,EACAiuC,EACAC,EACAC,EACAC,EACAC,EACAriC,EACAsiC,EACAC,KAEA,MAAM,cAAEC,GAAkBxuC,EAE1B,OAAIouC,EACOpsC,EAAAA,cAAAA,EAAAA,SAAA,KAAGosC,GAEVJ,EACOA,EAAUtqC,KAAI,CAAC+qC,EAAU1gC,IAExB/L,EAAAA,cAAA,OAAKI,UAAU,sBAAsByB,IAAK,GAAGkK,KAAS6a,EAAAA,GAASC,UAAU0F,cACpEkgB,EAASC,SACTJ,EAAiB,KAAOK,EAAkBF,EAAUzuC,EAAWiuC,EAAejiC,EAAkBuiC,GAChGD,EACGtsC,EAAAA,cAACwB,EAAAA,KAAI,CAACpB,UAAU,sCACXwsC,EAAuBH,EAAUzuC,EAAWiuC,EAAejiC,EAAkBuiC,GAC7EE,EAASI,mBACTJ,EAASK,cACTL,EAASM,QAEdN,EAASI,mBACT7sC,EAAAA,cAACwB,EAAAA,KAAI,CAACpB,UAAU,gCACXqsC,EAASI,mBACTJ,EAASK,cACTL,EAASM,QAGd/sC,EAAAA,cAAAA,EAAAA,SAAA,KACKysC,EAASK,cACTL,EAASM,WAO3BV,EACHrsC,EAAAA,cAAA,OAAKI,UAAU,wBACXJ,EAAAA,cAAA,KAAGI,UAAU,iBAAiBosC,GAC7BN,GAGLlsC,EAAAA,cAAAA,EAAAA,SAAA,KAAGmsC,IAULa,EAAuBA,CAACP,EAA+BQ,IAA6B,KACtFR,EAASS,eAAiBT,EAASS,cAAcC,UAAUC,aAAaH,IAQtEI,EAAwBZ,GAAkC,KAC5DA,EAASS,eAAiBT,EAASS,cAAcC,UAAUC,aAAY,IAGrET,EAAoBA,CACtBF,EACAzuC,EACAiuC,EACAjiC,EACAuiC,KACoB,IAAAe,EAEpB,IAAKb,EAASS,gBAAkBjB,IAA8B,QAAbqB,EAAAb,EAAStuC,YAAI,IAAAmvC,OAAA,EAAbA,EAAeZ,SAASa,gBAAiBhB,EACtF,OAAO,KAGX,MAAM,uBACFiB,EAAsB,yBACtBC,EAAwB,oBACxBC,EAAmB,8BACnBC,EAA6B,uBAC7BC,GACA5vC,EAEEivC,EAAkBR,EAASS,cAAcD,gBAEzCrhC,GAAUC,EAAAA,EAAAA,kBAAiB,QAAS7B,EAAmBkP,EAAAA,kBAAkB20B,eACzEC,GAAyB3hC,EAAAA,EAAAA,wBAAuBnC,EAAmB4B,GAEzE,OACI5L,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKssC,EAASS,cAAca,gBAC7B/tC,EAAAA,cAAA,OAAKI,UAAU,+BACV6sC,EACGjtC,EAAAA,cAAA,QAAMI,UAAU,WAAWutC,GAE3B3tC,EAAAA,cAAA,QAAMI,UAAU,QAAQqtC,IAG/BR,GACGjtC,EAAAA,cAAA,OAAKI,UAAU,oCACXJ,EAAAA,cAAA,QAAMI,UAAU,0CAA0CqsC,EAASS,cAAcc,aACjFhuC,EAAAA,cAAC0W,EAAAA,OAAM,CAACnK,KAAK,OAAOnM,UAAU,mCAAmCkG,QAAS+mC,EAAqBZ,IAC1FmB,IAIb5tC,EAAAA,cAAC0W,EAAAA,OAAMxW,OAAAC,OAAA,CACHC,UAAU,4BACN0tC,EAAsB,CAC1BxnC,QAAS0mC,EAAqBP,EAAUQ,KAEvCA,EAAkBO,EAAyBE,KAMtDO,EAAqBC,GAClBA,GAAyC,IAA5BA,EAAUC,OAAO1sC,OAI/BzB,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAK+tC,EAAUE,SACfF,EAAU5pC,OACV4pC,EAAUC,QALR,KAUTE,EAA2BA,CAC7BC,EACAC,EACA7xC,IAEK4xC,EAIDtuC,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKouC,GACL7xC,EAAM8xC,UACNF,EAAkBG,SAClBH,EAAkBI,SAClBJ,EAAkBK,YAClBL,EAAkBM,IAClBN,EAAkBO,eAAiBP,EAAkBO,eAAiB,KACtEP,EAAkBQ,YAVhB,KAeTC,EAA6BA,CAC/BC,EACAT,EACA7xC,IAEKsyC,EAKDhvC,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKouC,GACLS,EAAoBC,SACpBD,EAAoBE,SACpBF,EAAoBG,QACpBH,EAAoBF,aARzBpyC,EAAMsC,QAAQoL,UAAUtG,MAAM,uDACvB,MAYTsrC,EAAwBA,CAAC1yC,EAAuBsB,IAC9CtB,EAAM2yC,gBAAkB3yC,EAAM2yC,eAAe5tC,OAAS,EAElDzB,EAAAA,cAAA,OAAKI,UAAU,wBACV1D,EAAM2yC,eAAe3tC,KAAI4tC,IAAY,IAAAC,EAAAC,EAClC,OACIxvC,EAAAA,cAAA,OAAK6B,IAAKytC,EAAU,GAAGG,WAAYrvC,UAAU,+BACxCsvC,EACGJ,EAAU,GACV5yC,EAAMuvC,cACNjuC,EACA2xC,EAAYL,GACsC,QAD5BC,EACtB7yC,EAAMsC,QAAQwS,cAAcrG,eAAeykC,eAAO,IAAAL,OAAA,EAAlDA,EAAoDM,uBAEvD9D,EACGuD,EACA5yC,EAAMsB,UACNtB,EAAMuvC,cACNvvC,EAAMwvC,qBACNxvC,EAAMyvC,iBACNzvC,EAAM0vC,kBACN1vC,EAAM2vC,eACN3vC,EAAMsN,iBACNtN,EAAMozC,sBAC4C,QADvBN,EAC3B9yC,EAAMsC,QAAQwS,cAAcrG,eAAeykC,eAAO,IAAAJ,OAAA,EAAlDA,EAAoDK,4BAQzEnzC,EAAM2vC,eACTrsC,EAAAA,cAAA,OAAKI,UAAU,uBACXJ,EAAAA,cAAA,OAAKI,UAAU,wBACXJ,EAAAA,cAAA,KAAGI,UAAU,iBAAiB1D,EAAMsB,UAAUwuC,eAC7C9vC,EAAMwvC,uBAIflsC,EAAAA,cAAAA,EAAAA,SAAA,KAAGtD,EAAMyvC,kBAGXuD,EAA8BA,CAChCjD,EACAR,EACAjuC,EACA+xC,EACAxD,KACA,IAAAyD,EACA,MAAM/C,EAAwC,QAAzB+C,EAAGvD,EAASS,qBAAa,IAAA8C,OAAA,EAAtBA,EAAwB/C,iBAC1C,WAAEgD,EAAU,aAAEC,EAAY,kBAAEC,EAAiB,uBAAEC,GAA2BpyC,EAChF,IAAIqyC,EASJ,OAPAA,EAAapD,EAAkBgD,EAAaC,EACxCzD,EAAStuC,MAAQsuC,EAAStuC,KAAKuuC,SAAS4D,cACxCD,EAAaD,EACL5pB,EAAAA,iBAAiB+pB,cAAchE,KACvC8D,EAAa5D,EAAStuC,MAAQsuC,EAAStuC,KAAKuuC,SAASa,eAAiBhB,EAAwB4D,EAAoBE,GAIlHrwC,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAAA,OAAKI,UAAU,8CACXJ,EAAAA,cAAA,KAAGI,UAAW,8CAA8CiwC,EAAWtnC,uBACvE/I,EAAAA,cAAA,KAAGI,UAAW,8CAA8CiwC,EAAWtnC,iBAAkBsnC,GACxFG,EAA2B/D,EAAUzuC,EAAW+xC,MAM3DnD,EAAyBA,CAC3BH,EACAzuC,EACAiuC,EACAjiC,EACAuiC,KACoB,IAAAkE,EAEpB,IAAKhE,EAASS,gBAAkBjB,IAA8B,QAAbwE,EAAAhE,EAAStuC,YAAI,IAAAsyC,OAAA,EAAbA,EAAe/D,SAASa,gBAAiBhB,EACtF,OAAO,KAGX,MAAM,uBAAEqB,EAAsB,uBAAEJ,EAAsB,oBAAEE,GAAwB1vC,EAE1EivC,EAAkBR,EAASS,cAAcD,gBAEzCrhC,GAAUC,EAAAA,EAAAA,kBAAiB,QAAS7B,EAAmBkP,EAAAA,kBAAkB20B,eACzEC,GAAyB3hC,EAAAA,EAAAA,wBAAuBnC,EAAmB4B,GAEzE,OACI5L,EAAAA,cAAAA,EAAAA,SAAA,KACKitC,EACGjtC,EAAAA,cAAC0W,EAAAA,OAAM,CAACtW,UAAU,qCAAqCkG,QAAS+mC,EAAqBZ,GAAS,YAAY,UACrGmB,GAEL,KACJ5tC,EAAAA,cAAC0W,EAAAA,OAAMxW,OAAAC,OAAA,CACHC,UAAU,sCACN0tC,EAAsB,CAC1BxnC,QAAS0mC,EAAqBP,EAAUQ,KAEvCA,EAAkBO,EAAyBE,KAMtDiC,EAAelD,IACjB,IAAIiE,EAAY,EAIhB,OAHAA,EAAYjE,EAASkE,QAAO,CAACZ,EAAO/vB,KAAQ,IAAA4wB,EACxC,OAAOb,IAAkB,QAATa,EAAA5wB,EAAK7hB,YAAI,IAAAyyC,OAAA,EAATA,EAAWlE,SAASmE,WAAY,KACjD,GACIH,GAGLF,EAA6BA,CAAC/D,EAA+BzuC,EAA2B+xC,KAAiB,IAAAe,EAAAC,EAAAC,EAC3G,MAAM/D,EAAwC,QAAzB6D,EAAGrE,EAASS,qBAAa,IAAA4D,OAAA,EAAtBA,EAAwB7D,iBAC1C,UAAEgE,EAAS,WAAEC,GAAelzC,EAC5BmzC,EAASpB,EAAQ,EAAImB,EAAaD,EACxC,OACIjxC,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAACwB,EAAAA,KAAI,CAACpB,UAAU,oDACX6sC,EACGjtC,EAAAA,cAAA,KAAGI,UAAU,uDACc,QADuC2wC,EAC7DtE,EAASS,qBAAa,IAAA6D,OAAA,EAAtBA,EAAwBK,eACxB,KACsB,QADlBJ,EACJvE,EAASS,qBAAa,IAAA8D,OAAA,EAAtBA,EAAwBhD,aAE7B,KACJhuC,EAAAA,cAAA,KAAGI,UAAU,uDAAqD,IAC5D2vC,EACD,IACAoB,EAAM,QAO3B,EAvX4Cz0C,IAAqB,IAAA20C,EAAAC,EAAAC,EAAA,OAC7DvxC,EAAAA,cAAA,MAAAE,OAAAC,OAAA,CAAKC,UAAW1D,EAAM0D,UAAWiX,GAAI3a,EAAM2a,IAAQ3a,EAAM80C,uBAAuB90C,IAC3EA,EAAMqJ,MACNrJ,EAAM+0C,kBAAoBhG,EAAkB/uC,EAAM+0C,kBACxC,QAAVJ,EAAA30C,EAAMg1C,YAAI,IAAAL,GAAVA,EAAYM,gBAAkBj1C,EAAMozC,sBACjCV,EAAsB1yC,EAAOA,EAAMsB,WAEnCgC,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKzD,EAAMk1C,kBACX7F,EACGrvC,EAAM4yC,UACN5yC,EAAMsB,UACNtB,EAAMuvC,cACNvvC,EAAMwvC,qBACNxvC,EAAMyvC,iBACNzvC,EAAM0vC,kBACN1vC,EAAM2vC,eACN3vC,EAAMsN,iBACNtN,EAAMozC,sBAC4C,QADvBwB,EAC3B50C,EAAMsC,QAAQwS,cAAcrG,eAAeykC,eAAO,IAAA0B,OAAA,EAAlDA,EAAoDzB,wBAI/DnzC,EAAMm1C,qBACH7xC,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKzD,EAAMo1C,qBACXp1C,EAAMm1C,oBACI,QAAVN,EAAA70C,EAAMg1C,YAAI,IAAAH,GAAVA,EAAYI,eACP5C,EAA2BryC,EAAMq1C,wBAAyBr1C,EAAM6xC,kBAAmB7xC,GACnF2xC,EAAyB3xC,EAAMs1C,sBAAuBt1C,EAAM6xC,kBAAmB7xC,GACpFuxC,EAAkBvxC,EAAMu1C,oBACxBv1C,EAAMw1C,2BACNx1C,EAAMy1C,sBACNz1C,EAAM01C,uBAAyBlkB,EAAAA,gBAAgBC,YAAYzxB,EAAM01C,uBAC9DpyC,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKzD,EAAM21C,+BAAgC31C,EAAM01C,uBACtD,KACH11C,EAAMwvC,qBACNxvC,EAAM41C,8BAGd51C,EAAMuvC,uSC1CR,MAAMsG,EAA2D/mC,IAAA,IAAC,sBACrEgnC,EAAqB,QACrBC,EAAO,UACPC,EAAS,YACTC,EAAW,YACXC,EAAW,MACX7C,EAAK,OACL8C,EAAM,mBACNC,GACHtnC,EAAA,OACGxL,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKqyC,GACLG,EACAF,EACAC,EACAE,EACA7C,EACA8C,EACAC,IAIIC,EAAsD7jC,IAAA,IAAC,cAChE8jC,EAAa,QACbp2C,EAAO,MACPmzC,EAAK,WACLkD,EAAU,QACVzoC,EAAO,aACP0oC,GACHhkC,EAAA,OACGlP,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAK6yC,GACLp2C,EACAmzC,EACAkD,EACAzoC,EACA0oC,IAIIC,EAAsCpzB,IAAA,IAAC,WAAEqzB,EAAU,SAAEC,EAAQ,gBAAEC,EAAe,WAAEC,GAAYxzB,EAAA,OACrG/f,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKizC,GACLG,GACGvzC,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKmzC,GACLC,EAAW7xC,KAAI8xC,GACZxzC,EAAAA,cAACA,EAAAA,SAAc,CAAC6B,IAAK2xC,EAAUr1C,KAAKq1C,UAAUC,QAASD,EAAUA,gBAOxEE,EAAwCha,IAAA,IAAC,YAAEia,EAAW,OAAEC,GAAQla,EAAA,OACzE15B,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKwzC,GACLC,EAAOlyC,KAAI,CAACmyC,EAAO9nC,IAChB/L,EAAAA,cAACmzC,EAAiBjzC,OAAAC,OAAA,CAAC0B,IAAKkK,GAAW8nC,QAKlCC,EAAwCh7B,IAAA,IAAC,YAAEzW,EAAW,QAAEzF,EAAO,gBAAEm3C,EAAe,aAAEC,GAAcl7B,EAAA,OACzG9Y,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKkC,GACLzF,EACAm3C,EACAC,IAIIC,EAA+Cl7B,IAAA,IAAC,gBACzDm7B,EAAe,gBACfC,EAAe,OACfP,EAAM,iBACNQ,EAAgB,qBAChBC,GACHt7B,EAAA,OACG/Y,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAK+zC,GACLC,GAAmBn0C,EAAAA,cAACuyC,EAA2BryC,OAAAC,OAAA,GAAKg0C,IACpDP,GAAU5zC,EAAAA,cAAC0zC,EAAkBxzC,OAAAC,OAAA,GAAKyzC,IAClCS,EACAD,IAIIE,EAAoCt7B,IAAA,IAAC,UAAEu7B,EAAS,YAAEC,GAAax7B,EAAA,OACxEhZ,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKo0C,GACLC,GAAeA,EAAY9yC,KAAI,CAAC+yC,EAAY1oC,IAAU/L,EAAAA,cAACi0C,EAAqB/zC,OAAAC,OAAA,CAAC0B,IAAKkK,GAAW0oC,QAoCtG,EAhC2Dx7B,IAAA,IAAC,kBACxDy7B,EAAiB,OACjBpwC,EAAM,MACNqwC,EAAK,QACLx3B,EAAO,aACPy3B,EAAY,mBACZC,EAAkB,KAClBC,EAAI,MACJC,EAAK,WACLC,GACH/7B,EAAA,OACGjZ,EAAAA,cAACC,EAAAA,OAAMC,OAAAC,OAAA,GAAKu0C,GACPpwC,GAAUtE,EAAAA,cAAC8zC,EAAkB5zC,OAAAC,OAAA,GAAKmE,IAClC6Y,EACAw3B,GACG30C,EAAAA,cAAAA,EAAAA,SAAA,KACK20C,EACAE,GAGRD,GACG50C,EAAAA,cAACwB,EAAAA,KAAI,CAACpB,UAAU,6CACXw0C,EACAC,GAGRC,GAAQ90C,EAAAA,cAACs0C,EAAgBp0C,OAAAC,OAAA,GAAK20C,IAC9BC,EACAC,GAAcA,wtBC9FhB,MAAMC,UAAmBj1C,EAAAA,cAO5BsJ,YAAY5M,GACR6M,MAAM7M,GA0DH,KAAA8M,oBAAuBC,GAA0CC,KAAKhN,MAAMc,OAAOZ,QAASyC,KAAOoK,EAAME,OAAOC,MAEhH,KAAAo/B,iBAAoBv/B,GAA0CC,KAAKhN,MAAMc,OAAO6B,KAAOoK,EAAME,OAAOC,MAEpG,KAAAC,qBAAwBJ,GAA0CC,KAAKhN,MAAMc,OAAOsO,KAAMhL,SAAW2I,EAAME,OAAOC,MA7DrHF,KAAKM,kBAAmBC,EAAAA,EAAAA,oBACpBP,KAAKhN,MAAMsC,QAAQC,QAAQiL,kBAC3BR,KAAKhN,MAAMyN,aACXT,KAAKhN,MAAM0N,WAIfV,KAAKkC,SAAUC,EAAAA,EAAAA,kBAAiB,QAASnC,KAAKM,iBAAkB,GAAI,IAGjEK,SACH,MAAM,QAAEzN,EAAO,MAAEiuC,EAAK,KAAE/+B,EAAI,KAAEzM,GAASqK,KAAKhN,MAAMc,OAC5C03C,EAAsBv0C,GAAAA,CAAW,kBAAmB+I,KAAKhN,MAAMc,OAAO4C,WACtEU,EAAWgL,GAAQA,EAAKhL,SAAWgL,EAAKhL,SAAW,GACzD4I,KAAKkC,QAAQI,cAAcC,MAAQnL,EACnC4I,KAAKwC,YAAaC,EAAAA,EAAAA,wBAAuBzC,KAAKM,iBAAkBN,KAAKkC,SACrE,MAAMf,EAASC,EAAAA,EAAA,GACRpB,KAAKhN,OAAK,IACbE,QAAS8M,KAAKyrC,eAAev4C,GAC7BiuC,MAAOnhC,KAAK0rC,mBAAmBvK,GAC/BxrC,KAAMqK,KAAK2rC,YAAYh2C,GACvByB,SAAU4I,KAAK4rC,gBAAgBxpC,GAC/BypC,aAAc7rC,KAAK8rC,YAAY1pC,GAE/BmpC,WAAY,CACR/2C,YAAawL,KAAKhN,MAClB0D,UAAW80C,GAGfO,iBAAkB,CACdr1C,UAAW,sBAGfs1C,cAAe,CACXt1C,UAAW,8BAIfu1C,KAAM7pC,GACFA,EAAKlL,SACLkL,EAAKlL,QAAQC,gBAAciK,EAAA,CACvBE,IAAK,IACLuB,KAAM,OACNnM,UAAW,kBACXG,KAAMuL,EAAKlL,QAAQC,eACnBkF,MAAOjF,EACP,aAAcgL,EAAKO,UACnB1C,OAAQmC,EAAKQ,aAAe,cAAWuF,EACvCvL,SAASsvC,EAAAA,EAAAA,kBAAiBlsC,KAAKM,iBAAkBN,KAAKkC,QAAS9K,IAC5D4I,KAAKwC,YAEhB9L,UAAW80C,IAGf,OAAOxrC,KAAKhN,MAAM6O,WAAWV,GASzB2qC,YAAY1pC,GAChB,GAAIA,EAAM,CACN,MAAMhL,EAAWgL,EAAKhL,SAAWgL,EAAKhL,SAAW,GAG3CsL,EAAoC,CACtCC,UAAWP,EAAKO,UAChBjM,UAAW,kBACXU,SAAAA,EACAF,QAASkL,EAAKlL,QAAQC,eACtByL,aAAcR,EAAKQ,aACnBC,KAAM,OACNC,qBAAsB9C,KAAKwC,WAC3B5F,SAASsvC,EAAAA,EAAAA,kBAAiBlsC,KAAKM,iBAAkBN,KAAKkC,QAAS9K,IAEnE,OACId,EAAAA,cAAC+K,EAAAA,GAAa,CACVe,KAAMM,EACNnB,UAAW,CAAEI,aAAc3B,KAAKG,qBAAsBsB,eAAgBzB,KAAKhN,MAAMsC,QAAQC,WAIrG,OAAO,KAGHq2C,gBAAgBxpC,GACpB,OAAKA,GAASA,EAAKhL,SAIZd,EAAAA,cAAA,QAAMI,UAAU,yBAAyB0L,EAAKhL,UAH1C,KAMPq0C,eAAev4C,GACnB,OAAKA,GAAYA,EAAQyC,MAAgC,IAAxBzC,EAAQyC,KAAKoC,OAK1CzB,EAAAA,cAAC+K,EAAAA,GAAa,CACVC,IAAKpO,EAAQoO,KAAO,KACpB3L,KAAMzC,EAAQyC,KACde,UAAU,4BACV6K,UAAW,CAAEC,OAAQxB,KAAKF,oBAAqB2B,eAAgBzB,KAAKhN,MAAMsC,QAAQC,WAR/E,KAaPo2C,YAAYh2C,GAChB,OAAKA,EAIDW,EAAAA,cAAC+K,EAAAA,GAAa,CACVC,IAAI,MACJ3L,KAAMA,EACNe,UAAU,uBACV6K,UAAW,CAAEC,OAAQxB,KAAKs/B,iBAAkB79B,eAAgBzB,KAAKhN,MAAMsC,QAAQC,WAP5E,KAYPm2C,mBAAmBp1B,EAA2B61B,GAClD,IAAK71B,IAASA,EAAKtgB,KAA2B,IAApBsgB,EAAKtgB,IAAI+B,OAC/B,OAAO,KAUX,OACIzB,EAAAA,cAAC+K,EAAAA,GAAc7K,OAAAC,OAAA,GACP6f,EAAI,CACR7U,eAAgBzB,KAAKhN,MAAMsC,QAAQC,QACnCqgC,aAAc51B,KAAKhN,MAAMsC,QAAQC,QAAQqgC,aACzC8L,cAAeprB,EAAKorB,eAZ0B,CAClD0K,UAAW,CACPvW,GAAI,CAAEwW,EAAG,gBAAiBvW,EAAG,EAAGwW,EAAG,GACnCrW,GAAI,CAAEoW,EAAG,gBAAiBvW,EAAG,EAAGwW,EAAG,IAEvCC,UAAU,GAQN1K,oBAAoB,UAAS,cAChBsK,EACb5qC,UAAW,CAAEpJ,IAAK6H,KAAKhN,MAAMc,OAAOqtC,OAAS,GAAI1/B,eAAgBzB,KAAKhN,MAAMsC,QAAQC,SACpFi3C,uBAAqB,MAMrC,uHCzLO,MAAMC,UAAuBn2C,EAAAA,cACzBqK,SACH,MAAM,WAAE4qC,GAAevrC,KAAKhN,MAC5B,OAAOsD,EAAAA,cAACC,EAAAA,OAAMC,OAAAC,OAAA,GAAK80C,GAAavrC,KAAK0sC,eAAe1sC,KAAKhN,QAGrD05C,eAAe15C,GACnB,MAAM,QAAEE,EAAO,iBAAE64C,EAAgB,KAAEE,EAAI,SAAE70C,EAAQ,MAAE+pC,EAAK,KAAExrC,EAAI,aAAEk2C,GAAiB74C,EACjF,OAAIE,EACOoD,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKs1C,GAAgB,IAAI74C,EAAO,KACrC+4C,GAAQ9K,EAEX7qC,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKw1C,GACL70C,EACA+pC,GAGF8K,EACAJ,EAGPv1C,EAAAA,cAAAA,EAAAA,SAAA,KACKX,EACAwrC,IAMjB,qQC7BA,MAAMwL,EAAqB,sEACrBC,EAAkB,GAAGD,YACrBE,EAAwB,GAAGF,mBAC3BG,EAA0B,GAAGH,qBAe5B,IAAKI,GAAZ,SAAYA,GACRA,EAAAA,EAAA,6BACAA,EAAAA,EAAA,uCAFJ,CAAYA,IAAAA,EAA6D,KA6BzE,MA8DaC,EAA6JC,EAAAA,GAAiBC,gBAGzL,oEAAqE,CACnEC,UAjEAn6C,IACA,IAAAo6C,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAEA,IAAKr7C,EAAMyB,KAAKsS,SAASqD,WACrB,OAAO9T,IAAAA,cAAA,OAAKI,UAAWO,GAAAA,CAAWjE,EAAM0D,UAAWi2C,KAGvD,MAAO2B,EAAeC,GAAoBj4C,IAAAA,SAAetD,EAAMw7C,sBAEzDhsB,EAAkBisB,IACpBF,EAAiBE,GACjBz7C,EAAM+b,SAAS0/B,IAIbC,GAAoCjsC,EAAAA,EAAAA,wBACtCzP,EAAMsN,kBACN6B,EAAAA,EAAAA,kBAAiB,QAASnP,EAAMsN,iBAA0D,QAAzC8sC,EAAiB,QAAjBC,EAAEr6C,EAAMsB,iBAAS,IAAA+4C,OAAA,EAAfA,EAAiBsB,8BAAsB,IAAAvB,EAAAA,EAAI,+BAE5FwB,GAAgCnsC,EAAAA,EAAAA,wBAClCzP,EAAMsN,kBACN6B,EAAAA,EAAAA,kBAAiB,QAASnP,EAAMsN,iBAA0D,QAAzCgtC,EAAiB,QAAjBC,EAAEv6C,EAAMsB,iBAAS,IAAAi5C,OAAA,EAAfA,EAAiBoB,8BAAsB,IAAArB,EAAAA,EAAI,2BAGlG,OACIh3C,IAAAA,cAAA,OAAKI,UAAWO,GAAAA,CAAWjE,EAAM0D,UAAWi2C,IACxCr2C,IAAAA,cAAC0W,EAAAA,OAAMxW,OAAAC,OAAA,CACHC,UAAWO,GAAAA,CACP21C,EACA0B,IAAkBvB,EAA8D8B,YAC1EhC,EACAC,GACT,aACsD,QADtDU,EAC0B,QAD1BC,EACWz6C,EAAMsB,iBAAS,IAAAm5C,OAAA,EAAfA,EAAiBqB,kCAA0B,IAAAtB,EAAAA,EAAmB,QAAnBE,EAAI16C,EAAMsB,iBAAS,IAAAo5C,OAAA,EAAfA,EAAiBiB,uBAC5EtyC,MAAkD,QAA7CsxC,EAAiB,QAAjBC,EAAE56C,EAAMsB,iBAAS,IAAAs5C,OAAA,EAAfA,EAAiBkB,kCAA0B,IAAAnB,EAAAA,EAAmB,QAAnBE,EAAI76C,EAAMsB,iBAAS,IAAAu5C,OAAA,EAAfA,EAAiBc,uBACvE/xC,QAASA,IAAM4lB,EAAeuqB,EAA8D8B,cACxFH,GAEY,QAFqBZ,EAEpC96C,EAAMsB,iBAAS,IAAAw5C,OAAA,EAAfA,EAAiBa,wBAEtBr4C,IAAAA,cAAC0W,EAAAA,OAAMxW,OAAAC,OAAA,CACHC,UAAWO,GAAAA,CACP21C,EACA0B,IAAkBvB,EAA8DgC,iBAC1ElC,EACAC,GACT,aAC2D,QAD3DiB,EAC0B,QAD1BC,EACWh7C,EAAMsB,iBAAS,IAAA05C,OAAA,EAAfA,EAAiBgB,uCAA+B,IAAAjB,EAAAA,EAAmB,QAAnBE,EAAIj7C,EAAMsB,iBAAS,IAAA25C,OAAA,EAAfA,EAAiBgB,4BACjF5yC,MAAuD,QAAlD6xC,EAAiB,QAAjBC,EAAEn7C,EAAMsB,iBAAS,IAAA65C,OAAA,EAAfA,EAAiBa,uCAA+B,IAAAd,EAAAA,EAAmB,QAAnBE,EAAIp7C,EAAMsB,iBAAS,IAAA85C,OAAA,EAAfA,EAAiBa,4BAC5EryC,QAASA,IAAM4lB,EAAeuqB,EAA8DgC,mBACxFH,GAEY,QAFiBP,EAEhCr7C,EAAMsB,iBAAS,IAAA+5C,OAAA,EAAfA,EAAiBY,ovBC5ElC,MAAMC,UAAmB54C,IAAAA,cAcrBsJ,YAAmB5M,GACf6M,MAAM7M,GAdO,KAAAm8C,YAAsB,oBAEtB,KAAAC,2BAAqC,OAgHrC,KAAAC,aAAgBtvC,IAC7B,MAAM5H,EAAM4H,EAAMuvC,QAClB,GAAItvC,KAAKvF,MAAM80C,kBACX,OAAQp3C,GACJ,KAAKq3C,EAAAA,SAASC,OACVx9B,YAAW,KAAK,IAAAy9B,EAAAC,EACZ,MAAMC,EAAY/zC,UAAYA,SAASg0C,cAIpC,IAADC,GAF4B,QAA1BJ,EAAA1vC,KAAK+vC,6BAAqB,IAAAL,GAAS,QAATA,EAA1BA,EAA4B3pC,eAAO,IAAA2pC,GAAnCA,EAAqCM,SAASJ,IACtB,QADgCD,EACxD3vC,KAAKiwC,2BAAmB,IAAAN,GAAS,QAATA,EAAxBA,EAA0B5pC,eAAO,IAAA4pC,GAAjCA,EAAmCK,SAASJ,MAE5C5vC,KAAKkwC,yBACqB,QAA1BJ,EAAA9vC,KAAK+vC,6BAAqB,IAAAD,GAAS,QAATA,EAA1BA,EAA4B/pC,eAAO,IAAA+pC,GAAnCA,EAAqC9pC,WAE1C,IACH,MAEJ,KAAKwpC,EAAAA,SAASW,IACVl+B,YAAW,KAAK,IAAAm+B,EAAAC,EACZ,MAAMT,EAAY/zC,UAAYA,SAASg0C,cAER,QAA3BO,EAACpwC,KAAK+vC,6BAAqB,IAAAK,GAAS,QAATA,EAA1BA,EAA4BrqC,eAAO,IAAAqqC,GAAnCA,EAAqCJ,SAASJ,IACtB,QAAzBS,EAACrwC,KAAKiwC,2BAAmB,IAAAI,GAAS,QAATA,EAAxBA,EAA0BtqC,eAAO,IAAAsqC,GAAjCA,EAAmCL,SAASJ,IAE7C5vC,KAAKkwC,2BAEV,IACH,MAEJ,QACI,SAMC,KAAAI,oBAAuBvwC,IAAc,IAAAwwC,EAAAC,EAEX,QAAlCD,EAAAvwC,KAAK+vC,sBAAsBhqC,eAAO,IAAAwqC,GAAlCA,EAAoCP,SAASjwC,EAAME,SAAWD,KAAKvF,MAAM80C,mBACzC,QAAhCiB,EAAAxwC,KAAKiwC,oBAAoBlqC,eAAO,IAAAyqC,GAAhCA,EAAkCR,SAASjwC,EAAME,SAAWD,KAAKvF,MAAM80C,mBAI5EvvC,KAAKkwC,0BA9ILlwC,KAAKywC,cAAgBzwC,KAAKywC,cAAc7mB,KAAK5pB,MAC7CA,KAAKiwC,oBAAsB35C,IAAAA,YAC3B0J,KAAK+vC,sBAAwBz5C,IAAAA,YAC7B0J,KAAK0wC,mBAAqB1wC,KAAK0wC,mBAAmB9mB,KAAK5pB,MACvDA,KAAKkwC,uBAAyBlwC,KAAKkwC,uBAAuBtmB,KAAK5pB,MAC/DA,KAAKqvC,aAAervC,KAAKqvC,aAAazlB,KAAK5pB,MAC3CA,KAAKswC,oBAAsBtwC,KAAKswC,oBAAoB1mB,KAAK5pB,MACzDA,KAAKm3B,gBAAkBn3B,KAAKm3B,gBAAgBvN,KAAK5pB,MACjDA,KAAK2wC,SACD39C,EAAMsC,QAAQC,SAAWvC,EAAMsC,QAAQC,QAAQkgC,QAAgD,WAAtCziC,EAAMsC,QAAQC,QAAQkgC,OAAOC,KAAoB,KAAO,KACrH11B,KAAKvF,MAAQ,CACT80C,mBAAmB,EACnBhV,SAAUv6B,KAAKu6B,UAIb,eACN,MAAyB,OAAlBv6B,KAAK2wC,UAAuC,OAAlB3wC,KAAK2wC,SAGnCv9B,oBACsB,IAADw9B,EAAAC,EAApB3zB,EAAAA,GAASC,YACD,QAARyzB,EAAA/0C,gBAAQ,IAAA+0C,GAARA,EAAUrZ,iBAAiB,UAAYv3B,KAAKqvC,cAA2C,GAC/E,QAARwB,EAAAh1C,gBAAQ,IAAAg1C,GAAM,QAANA,EAARA,EAAU/0C,YAAI,IAAA+0C,GAAdA,EAAgBtZ,iBAAiB,YAAav3B,KAAKswC,qBACnDtwC,KAAK8wC,4BAA8B3+B,SAAU4+B,EAAAA,EAAAA,mBAAkB5+B,OAAQ,SAAUnS,KAAKm3B,iBACtFn3B,KAAKm3B,mBAINK,uBACsB,IAADwZ,EAAAC,EAApB/zB,EAAAA,GAASC,YACD,QAAR6zB,EAAAn1C,gBAAQ,IAAAm1C,GAARA,EAAUvZ,oBAAoB,UAAYz3B,KAAKqvC,cAA2C,GAClF,QAAR4B,EAAAp1C,gBAAQ,IAAAo1C,GAAM,QAANA,EAARA,EAAUn1C,YAAI,IAAAm1C,GAAdA,EAAgBxZ,oBAAoB,YAAaz3B,KAAKswC,qBAAqB,GAC3En+B,QAAUA,OAAOslB,oBAAoB,SAAUz3B,KAAK8wC,6BAA8B,IAInFnwC,SAAM,IAAAuwC,EAAAC,EACT,MAAMhwC,EAASC,EAAAA,EAAA,GACPpB,KAAKhN,OAA6C,IACtDk8C,WAAY,CACR16C,YAAawL,KAAKhN,MAClB0D,UAAWO,GAAAA,CAAW,iBAAkB+I,KAAKhN,MAAMc,OAAO4C,UAAWsJ,KAAKvF,MAAM8/B,SAAW,cAAgB,gBAC3Gj5B,IAAK,OAET8vC,eAAgB,CACZ9vC,IAAK,SACL5K,UAAW,yBACX,aAAuC,QAA3Bw6C,EAAElxC,KAAKhN,MAAMc,OAAOZ,eAAO,IAAAg+C,OAAA,EAAzBA,EAA2Bv7C,KACzC,gBAAiBqK,KAAKvF,MAAM80C,kBAC5B3yC,QAASoD,KAAKhN,MACd0mB,IAAK1Z,KAAK+vC,uBAEdsB,mBAAoB,CAChB36C,UAAW,uBACX4K,IAAK,QAETgwC,mBAAoB,CAChB56C,UAAW,uBACXmM,KAAM,OACNvB,IAAK,KACLoY,IAAK1Z,KAAKiwC,qBAEdsB,uBAAwB,CACpB76C,UAAW,6BACXmM,KAAM,eACNvB,IAAK,MAETkwC,0BAA2B,CACvBlwC,IAAKmwC,EAAAA,OACL/6C,UAAW,yBACXg7C,iBAA2C,QAA3BP,EAAEnxC,KAAKhN,MAAMc,OAAOZ,eAAO,IAAAi+C,OAAA,EAAzBA,EAA2Bx7C,KAC7Cg8C,UAAW,8BACXC,WAAY,+BACZC,eAAgB,OAEpBC,aAAc9xC,KAAKvF,MAAM8/B,SACzBwX,4BAA6B/xC,KAAKgyC,yBAClCC,kBAAmBjyC,KAAK0wC,mBACxBwB,sBAAuBlyC,KAAKkwC,uBAC5BiC,iBAAkBnyC,KAAKvF,MAAM80C,oBAEjC,OAAOvvC,KAAKhN,MAAM6O,WAAWV,GAGzBuvC,qBACJ,MAAM0B,EAAyBpyC,KAAKvF,MAAM80C,kBAC1CvvC,KAAKoD,SAAS,CACVmsC,mBAAoB6C,IAIpBlC,yBACJlwC,KAAKoD,SAAS,CACVmsC,mBAAmB,IAmDnBkB,cAAc3zC,GAElB,GADAA,EAAEu1C,iBACEv1C,EAAE0gB,cAAc3mB,MAAQiG,EAAE0gB,cAAc3mB,KAAKkB,OAAS,GAAKoa,OAAQ,CACnE,GAAInS,KAAKhN,MAAMsC,QAAQC,QAAQ+8C,QAAQC,iBAAkB,CACrD,MAAMC,EAAe,CAAEC,OAAQzyC,KAAKovC,4BACpCpvC,KAAKhN,MAAMsC,QAAQC,QAAQ+8C,QAAQzR,IAAI7gC,KAAKmvC,YAAaryC,EAAE0gB,cAAc3mB,KAAM27C,GAEnFrgC,OAAOsU,SAAShwB,OAAOqG,EAAE0gB,cAAc3mB,OAIvCm7C,yBACJ,MAAMU,EAAuC,CACzCtG,UAAW,CACPvW,GAAI,CAAEwW,EAAG,gBAAiBvW,EAAG,EAAGwW,EAAG,GACnCvW,GAAI,CAAEsW,EAAG,gBAAiBvW,EAAG,EAAGwW,EAAG,GACnCtW,GAAI,CAAEqW,EAAG,gBAAiBvW,EAAG,EAAGwW,EAAG,GACnCrW,GAAI,CAAEoW,EAAG,gBAAiBvW,EAAG,EAAGwW,EAAG,GACnCqG,GAAI,CAAEtG,EAAG,gBAAiBvW,EAAG,EAAGwW,EAAG,IAEvCC,UAAU,GAERqG,EAAc5yC,KAAKhN,MAAMc,OAAO8+C,aAAe5yC,KAAKhN,MAAMc,OAAO8+C,YACvE,OACIA,GACAA,EAAY56C,KAAI,CAACse,EAAMjU,KAAS,IAAAwwC,EAAAC,EAC5B,MAAM3R,EAAQ7qB,MAAAA,OAAI,EAAJA,EAAMy8B,UACdC,EAAa,CACfpd,aAAc51B,KAAKhN,MAAMsC,QAAQC,QAAQqgC,aACzC8L,cAAeP,MAAAA,GAAoB,QAAf0R,EAAL1R,EAAOO,qBAAa,IAAAmR,GAApBA,EAAsBzG,UAAYjL,EAAMO,cAAgBgR,GAE3E,OACIp8C,IAAAA,cAAA,KACI6B,IAAKkK,EACL3L,UAAU,mCACV4qC,SAAU,EACVzqC,KAAMyf,MAAAA,GAAqB,QAAjBw8B,EAAJx8B,EAAM28B,uBAAe,IAAAH,OAAA,EAArBA,EAAuB37C,eAAc,aAC/Bmf,MAAAA,OAAI,EAAJA,EAAM48B,SAClBt2C,QAASoD,KAAKywC,cACd5tC,KAAK,YAELvM,IAAAA,cAAA,QAAMI,UAAU,oCAAoC4f,MAAAA,OAAI,EAAJA,EAAM48B,UAC1D58C,IAAAA,cAACirC,EAAAA,GAAK,CACF9/B,eAAgBzB,KAAKhN,MAAMsC,QAAQC,QACnCmB,UAAU,kCACVyB,IAAKkK,EACLrM,KAAKmrC,MAAAA,OAAK,EAALA,EAAOnrC,MAAO,GACnB4/B,aAAcod,EAAWpd,aACzB8L,cAAesR,EAAWtR,cAC1BzrC,QAASkrC,MAAAA,OAAK,EAALA,EAAOlrC,QAChB4rC,oBAAoB,OACpB2K,uBAAqB,QAQrCrV,kBACJn3B,KAAK2wC,SAAW3wC,KAAKw1B,eACrBx1B,KAAKoD,SAAS,CAAEm3B,SAAUv6B,KAAKu6B,WAG3B/E,eACJ,MAAM,QAAElgC,GAAY0K,KAAKhN,MACzB,GAAIsC,EAAQC,SAAWD,EAAQC,QAAQkgC,QAA0C,WAAhCngC,EAAQC,QAAQkgC,OAAOC,KACpE,MAAO,KAGX,QAAsBvtB,WAAXgK,QAAwBA,OAAOwjB,WAAY,CAClD,MAAMC,EAAetgC,EAAQC,QAAQqgC,aACrC,GAAIA,EACA,OAAIA,EAAaC,IAAM1jB,OAAOwjB,YAAcC,EAAaC,GAAGC,EACjD,KACAF,EAAaG,IAAM5jB,OAAOwjB,YAAcC,EAAaG,GAAGD,EACxD,KACAF,EAAaI,IAAM7jB,OAAOwjB,YAAcC,EAAaI,GAAGF,EACxD,KACAF,EAAaK,IAAM9jB,OAAOwjB,YAAcC,EAAaK,GAAGH,EACxD,KAEJ,KAGf,MAAO,OA1OXxwB,EAAAA,EAAAA,IAAA,CADC2Q,EAAAA,IAAU,gCAqBD3Q,EAAAA,EAAAA,IAAA,CAATC,EAAAA,IAAQ,6BA0Nb,kGCvRA,QAAgBvS,GACLsD,EAAAA,cAAAA,EAAAA,SAAA,KAAG68C,EAAkBngD,IAgB1BogD,EAA0BpgD,IAC5B,MAAM,mBAAEs+C,EAAkB,uBAAEC,EAAsB,4BAAEQ,GAAgC/+C,EAC9EqgD,EAAUtB,EAA6B/5C,KAAI,CAACse,EAAMjU,IAEhD/L,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAK86C,EAAsB,CAAEp5C,IAAKkK,IAClCiU,KAIb,OACIhgB,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAK66C,EAAkB,CAAEgC,aAActgD,EAAMk/C,wBAC7CmB,IAkBPF,EAAqBngD,IACvB,MAAM,aAAE8+C,EAAY,WAAE5C,GAAel8C,EACrC,OAAOsD,EAAAA,cAACC,EAAAA,OAAMC,OAAAC,OAAA,GAAKy4C,GAAa4C,EAfT9+C,CAAAA,IAAgD,IAAAugD,EACvE,MAAM,0BAAE/B,GAA8Bx+C,EACtC,OACIsD,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAK+6C,EAAyB,CAAE50C,QAAS5J,EAAMi/C,oBAChD37C,EAAAA,cAAA,WACsC,QADtCi9C,EACKvgD,EAAM++C,mCAA2B,IAAAwB,OAAA,EAAjCA,EAAmCv7C,KAAI,CAACse,EAAMjU,IACpC/L,EAAAA,cAAA,OAAK6B,IAAKkK,GAAQiU,QASMk9B,CAAkBxgD,GA5CzCA,CAAAA,IAA+B,IAAAygD,EACvD,MAAM,eAAErC,EAAc,mBAAEC,GAAuBr+C,EAC/C,OACIsD,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAK26C,EAAc,CAAEx0C,QAAS5J,EAAMi/C,oBAChB,QADiCwB,EACrDzgD,EAAMc,OAAOZ,eAAO,IAAAugD,OAAA,EAApBA,EAAsB99C,KACvBW,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAK46C,KAEbr+C,EAAMm/C,iBAAmBiB,EAAuBpgD,GAAS,OAoCQ0gD,CAAmB1gD,qrBChCjG,MAAM2gD,UAAoBr9C,EAAAA,cACtBsJ,YAAY5M,GACR6M,MAAM7M,GAGH2N,SACH,MAAM,MAAE0pB,GAAUrqB,KAAKhN,MAEvB,IAAKq3B,IAAU7F,EAAAA,gBAAgBC,YAAY4F,EAAMupB,kBAE7C,OADA5zC,KAAKhN,MAAMsC,QAAQoL,UAAUtG,MAAM,6DAC5B,KASX,KALI4F,KAAKhN,MAAMsC,QAAQC,SACnByK,KAAKhN,MAAMsC,QAAQC,QAAQ+8C,SAC3BtyC,KAAKhN,MAAMsC,QAAQC,QAAQ+8C,QAAQC,gBACnCvyC,KAAKhN,MAAMsC,QAAQC,QAAQ+8C,QAAQC,oBAEfvyC,KAAKhN,MAAMsC,QAAQC,QAAQ0b,OAAOC,SACtD,OAAO,KAGX,MAAM2iC,EAASzyC,EAAAA,EAAA,GACRpB,KAAKhN,OAAK,IACb2gD,YAAa,CACTn/C,YAAawL,KAAKhN,MAClB0D,UAAWO,GAAAA,CAAW,kBAAmB+I,KAAKhN,MAAMc,OAAO4C,YAE/Do9C,gBAAiB,CACb,aAAc9zC,KAAKhN,MAAMc,OAAOigD,QAChCr9C,UAAW,sBAAsBsJ,KAAKhN,MAAMc,OAAOigD,SAAW,aAC7B,aAA7B/zC,KAAKhN,MAAMc,OAAOkgD,YAAuC,WAAa,KAE1E1yC,IAAK,KACLuB,KAAM,SAEVoxC,gBAAiB,CACbv9C,UAAW,qBACX4K,IAAK,KACLggC,SAAU,IACVz+B,KAAM,QAEVqxC,wBAAyB7pB,GAASA,EAAMupB,iBAAiB77C,OAAS,GAAKsyB,EAAMupB,mBAGjF,OAAO5zC,KAAKhN,MAAM6O,WAAWgyC,IAIrC,iIClEO,MAAMM,EAAmDnhD,IAC5D,MAAM,gBAAE8gD,EAAe,wBAAEI,EAAuB,gBAAED,EAAe,YAAEN,GAAgB3gD,EACnF,OAAuC,IAAnCkhD,EAAwBn8C,QACxB/E,EAAMsC,QAAQoL,UAAUtG,MAAM,kDACvB,MAGP9D,IAAAA,cAACC,EAAAA,OAAMC,OAAAC,OAAA,GAAKk9C,GACRr9C,IAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKq9C,GACLI,EAAwBl8C,KAAI,CAACo8C,EAA+B/xC,IAErD/L,IAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKw9C,EAAe,CAAE97C,IAAKkK,IAC3B+xC,QAS7B,4HCPA,MAAMC,EAA0DrhD,IAC5D,MAAM,QAAE4iB,EAAO,MAAEvK,EAAK,aAAEsJ,EAAY,MAAEoB,GAAU/iB,EAChD,OACIsD,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKmf,GACLvK,EACAsJ,EACAoB,IAePu+B,EAAcA,CAChB59C,EACAgV,EACAozB,EACAC,EACAC,EACA5F,IAGI9iC,EAAAA,cAAC+X,EAAAA,MAAK,CACF3X,UAAU,2BACVuoC,cAAevoC,EACf8X,WAAS,EACTC,MAAM,EACNoa,gBAAgB,aAChBhb,OAAQnC,EACRC,OAAQytB,GAER9iC,EAAAA,cAACoY,EAAAA,YAAW,CAAC/C,OAAQytB,GAAc0F,GACnCxoC,EAAAA,cAACqY,EAAAA,UAAS,KAAEowB,GACZzoC,EAAAA,cAAC4Y,EAAAA,YAAW,KAAE8vB,IAUpBuV,EAAuDvhD,IAEzD,MAAM,eAAE4qC,EAAc,YAAEC,EAAW,aAAEC,EAAY,iBAAEC,EAAgB,OAAEzN,EAAM,QAAEtb,EAAO,aAAEL,EAAY,OAAEhJ,GAAW3Y,EAEzG2G,EACFrD,EAAAA,cAAAA,EAAAA,SAAA,KACKynC,EACDznC,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKonC,GACLvN,GACGA,EAAOt4B,KAAKse,GACDhgB,EAAAA,cAAC+9C,EAAyB79C,OAAAC,OAAA,GAAK6f,EAAI,CAAEne,IAAKme,EAAKne,SAE7Dwc,MAAAA,OAAY,EAAZA,EAAc3c,KAAI,CAACoC,EAAwBiI,IACjC/L,EAAAA,cAACA,EAAAA,SAAc,CAAC6B,IAAKkK,EAAMwgB,YAAazoB,OAMzDC,EACF2a,GACAA,EAAQhd,KAAI,CAACue,EAAyBlU,IAC3B/L,EAAAA,cAACA,EAAAA,SAAc,CAAC6B,IAAKkK,EAAMwgB,YAAatM,KAGvD,OAAO+9B,EAAY1W,GAAgB,EAAME,EAAcnkC,EAAWU,EAAasR,IAkB7E6oC,EAA0DxhD,IAE5D,MAAM,eAAE4qC,EAAc,YAAEC,EAAW,aAAEC,EAAY,iBAAEC,EAAgB,QAAE/oB,EAAO,aAAEL,EAAY,UAAErgB,EAAS,OAAEqX,GAAW3Y,EAClH,IAAI2G,EAAY,KAChB,MAAMwS,EAAenZ,EAAMmZ,aAE3B,GAAKA,EAEE,CAEH,MAAM,UAAEzC,EAAS,SAAEC,GAAawC,EAC1B0yB,EAAe,GAAGn1B,KAAuBC,IAE/ChQ,EACIrD,EAAAA,cAAAA,EAAAA,SAAA,KACKynC,EACDznC,EAAAA,cAACwB,EAAAA,KAAI,CAACwJ,IAAI,KAAK5K,UAAW,GAAGmnC,EAAYnnC,kBACrCJ,EAAAA,cAACwB,EAAAA,KAAI,CAACwJ,IAAI,KAAK5K,UAAW,GAAGmnC,EAAYnnC,4BACpCmoC,GAEJroC,OAAOgoB,KAAKrS,GAAcnU,KAAI,CAACvD,EAAM4N,KAClC,GAAI5N,IAAS27B,EAAAA,QAAQ1mB,WAAajV,IAAS27B,EAAAA,QAAQzmB,SAC/C,OAAO,KAEX,MAAM0B,EAAS/W,EAAU,QAAQG,iBAAiCA,EAClE,OACI6B,EAAAA,cAACwB,EAAAA,KAAI,CAACwJ,IAAI,KAAK5K,UAAW,GAAGmnC,EAAYnnC,sBAAuByB,IAAKkK,EAAMwgB,YACtExX,EACA,KACAc,EAAa1X,OAIzBkgB,MAAAA,OAAY,EAAZA,EAAc3c,KAAI,CAACoC,EAAwBiI,IACjC/L,EAAAA,cAACA,EAAAA,SAAc,CAAC6B,IAAKkK,EAAMwgB,YAAazoB,YA3B/DT,EAAYgb,EAkChB,MAAMta,EACF2a,GACAA,EAAQhd,KAAI,CAACue,EAAyBlU,IAC3B/L,EAAAA,cAACA,EAAAA,SAAc,CAAC6B,IAAKkK,EAAMwgB,YAAatM,KAGvD,OAAO+9B,EAAY1W,GAAgB,EAAME,EAAcnkC,EAAWU,EAAasR,IAsFnF,EAzD0E3Y,IAEtE,MAAM,qBACF4lC,EAAoB,gBACpBC,EAAe,QACf3lC,EAAO,YACP6lC,EAAW,cACXD,EAAa,sBACbG,EAAqB,KACrBr/B,EAAI,SACJs4B,EAAQ,YACRkH,EAAW,8BACXG,EAA6B,sBAC7BhuB,GACAvY,EAEEyhD,EACFn+C,EAAAA,cAACwB,EAAAA,KAAI,CAACpB,UAAU,4CACXoiC,EACAS,GAIT,OAAIR,EAEIziC,EAAAA,cAACC,EAAAA,OAAMC,OAAAC,OAAA,GAAKmiC,GACRtiC,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKoiC,GACL3lC,EACDoD,EAAAA,cAACwB,EAAAA,KAAI,CAACpB,UAAU,qDACZJ,EAAAA,cAACwB,EAAAA,KAAI,CAACpB,UAAU,6DACX1D,EAAMsB,UAAUogD,qCAErBp+C,EAAAA,cAACwB,EAAAA,KAAI,CAACpB,UAAU,0DACX1D,EAAMsB,UAAUqgD,kCAEpBF,GAEJlpC,EACAwtB,IAObziC,EAAAA,cAACC,EAAAA,OAAMC,OAAAC,OAAA,GAAKmiC,GACRtiC,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKoiC,GACL3lC,EACAuhD,EACAlpC,EACA0tB,GAEJr/B,GAvEGg7C,EAAC/lC,EAAcuwB,EAA2BhG,KACtD,OAAQvqB,GACJ,IAAK,MACL,IAAK,OACD,OAAOvY,EAAAA,cAACi+C,EAAyB/9C,OAAAC,OAAA,GAAK2oC,EAAS,CAAEzzB,OAAQytB,KAC7D,IAAK,OACL,IAAK,SACD,OAAO9iC,EAAAA,cAACk+C,EAA4Bh+C,OAAAC,OAAA,GAAK2oC,EAAS,CAAEzzB,OAAQytB,KAChE,QACI,OAAO,OA8DEwb,CAAQ1iB,EAAUt4B,EAAMw/B,8HC1OtC,MAAMyb,EAAwD/yC,IAAA,IAAC,UAClEs9B,EAAS,MACT/zB,EAAK,iBACLypC,EAAgB,YAChBC,EAAW,aACXC,EAAY,mBACZC,GACHnzC,EAAA,OACGxL,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAK2oC,GACN9oC,EAAAA,cAAAA,EAAAA,SAAA,KACK+U,EACA4pC,EACAH,EACAC,EACAC,KAKAE,EAAkD1vC,IAAA,IAAC,UAC5D45B,EAAS,WACT+V,EAAU,YACVC,EAAW,iBACXN,EAAgB,aAChBO,EAAY,sBACZC,EAAqB,cACrBC,EAAa,cACbC,EAAa,MACbvK,EAAK,eACLwK,EAAc,YACdV,EAAW,aACXC,GACHxvC,EAAA,OACGlP,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAK2oC,GACN9oC,EAAAA,cAAAA,EAAAA,SAAA,KACK++C,EACAC,EACAC,EACAC,EACAC,EACAN,EACAlK,EACAmK,EACAN,EACAC,EACAC,KAgBb,EAXwFhiD,IACpF,MAAM,wBAAE0iD,EAAuB,iBAAEC,EAAgB,YAAEC,EAAW,SAAEC,EAAQ,YAAEC,EAAW,MAAE7K,GAAUj4C,EACjG,OACIsD,EAAAA,cAACC,EAAAA,OAAMC,OAAAC,OAAA,GAAKi/C,EAAuB,CAAEh8B,IAAKi8B,IACrC1K,EACA6K,EAAY/gB,SAAW6gB,GAAet/C,EAAAA,cAACu+C,EAAWr+C,OAAAC,OAAA,GAAKm/C,KACtDE,EAAY/gB,SAAW8gB,GAAYv/C,EAAAA,cAAC4+C,EAAQ1+C,OAAAC,OAAA,GAAKo/C,4GCzC/D,MAAMp9C,EAAkBA,CAACzF,EAA6BsB,EAAkCyhD,IAEhFz/C,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKzD,EAAM0F,WACZpC,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKzD,EAAM2F,aACZrC,EAAAA,cAAA,WACKtD,EAAM8F,OACN9F,EAAM6F,MAEV7F,EAAM4F,MAEXtC,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKzD,EAAM+F,eACZzC,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKzD,EAAMgG,aACXhG,EAAMgjD,YACNhjD,EAAMiG,YAEX3C,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKzD,EAAMkG,eACXlG,EAAMmG,aACNnG,EAAMoG,aACNpG,EAAMqG,cAEX/C,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKzD,EAAMsG,eACXy8C,OAAe5tC,EAAY7R,EAAAA,cAAA,KAAGI,UAAU,4BAA4BpC,EAAU2hD,sBAC9EjjD,EAAMkjD,KACNljD,EAAMmjD,QACNnjD,EAAMuG,QAyCrB68C,EAA4BpjD,IAC9B,MAAMqjD,EAAUrjD,EAAMyB,KAAK4hD,QAAQ1hD,OACnC,OACI2B,EAAAA,cAACwB,EAAAA,KAAI,CAACpB,UAAU,iCACZJ,EAAAA,cAAA,OAAKI,UAAU,2BAjCC1D,CAAAA,IAAmF,IAAAsjD,EAC3G,MAAMC,EAA8C,QAA5BD,EAAGtjD,EAAMyB,KAAK4hD,QAAQ1hD,cAAM,IAAA2hD,OAAA,EAAzBA,EAA2BE,gBAChDC,GAAWjV,EAAAA,EAAAA,kBAAiB+U,EAAoBvjD,EAAMsC,QAAQC,QAAQorB,aAa5E,OACIrqB,EAAAA,cAACirC,EAAAA,GAAK,CACFvrC,IAAKygD,MAAAA,EAAAA,EAAY,GACjB7gB,aAAc5iC,EAAMsC,QAAQC,QAAQqgC,aACpC8L,cAAe1uC,EAAMc,OAAO4tC,cAAgB1uC,EAAMc,OAAO4tC,cAhBpB,CACzC0K,UAAW,CACPvW,GAAI,CAAEwW,EAAG,kBAAmBvW,EAAG,IAAKwW,EAAG,KACvCvW,GAAI,CAAEsW,EAAG,kBAAmBvW,EAAG,IAAKwW,EAAG,KACvCtW,GAAI,CAAEqW,EAAG,kBAAmBvW,EAAG,IAAKwW,EAAG,KACvCrW,GAAI,CAAEoW,EAAG,kBAAmBvW,EAAG,IAAKwW,EAAG,KACvCqG,GAAI,CAAEtG,EAAG,kBAAmBvW,EAAG,IAAKwW,EAAG,MAE3CC,UAAU,EACVmK,iBAAiB,MAqB6BC,CAAmB3jD,IAC7DsD,EAAAA,cAAA,OAAKI,UAAU,6BACXJ,EAAAA,cAAA,OAAKI,UAAU,2BAA2B2/C,MAAAA,OAAO,EAAPA,EAAS39B,MACnDpiB,EAAAA,cAAA,OAAKI,UAAU,gCAAgC2/C,MAAAA,OAAO,EAAPA,EAAS39B,MACxDpiB,EAAAA,cAAA,OAAKI,UAAU,4BAA4B2/C,MAAAA,OAAO,EAAPA,EAASO,WA+GpE,EA3C+F5jD,IAC3F,MAAM,iBACF6jD,EAAgB,QAChB3jD,EAAO,YACPsB,EAAW,iBACXsiD,EAAgB,2BAChB17C,EAA0B,aAC1BC,EAAY,mBACZ07C,EAAkB,kBAClBz7C,EAAiB,iBACjB07C,EAAgB,YAChBz7C,EAAW,eACX07C,EAAc,MACdx8C,EAAK,WACLgB,EAAU,UACVnH,GACAtB,EAEJ,OAAKyI,GAAe+oB,EAAAA,gBAAgBC,YAAYlpB,IAAiBd,EAAMkC,gBAKnErG,EAAAA,cAACC,EAAAA,OAAMC,OAAAC,OAAA,GAAKjC,GACPtB,EACDoD,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKsgD,GACLE,EACAJ,GAELvgD,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKugD,GACLv7C,GAAchD,EAAgBgD,EAAYnH,GAAW,GACrDiH,EAAYvD,KAAIgF,GACNvE,EAAgBuE,EAAQ1I,GAAW,OAGhDkwB,EAAAA,gBAAgBC,YAAYlpB,IAAgBd,EAAMkC,iBAAmBvB,EACtEC,EA7FcrI,CAAAA,IACvB,MAAM,UAAEsB,EAAS,YAAEE,EAAW,YAAEgH,GAAgBxI,EAChD,OACIsD,EAAAA,cAACC,EAAAA,OAAMC,OAAAC,OAAA,GAAK+E,EAAY/B,MAAWjF,GAC9BgH,EAAY9B,YACbpD,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAK+E,EAAY7B,WAClBrD,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAK+E,EAAY5B,MAClBtD,EAAAA,cAACwB,EAAAA,KAAI,CAACpB,UAAU,qBACX0/C,EAAyBpjD,GAC1BsD,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAK+E,EAAY3B,SAAQ,CAAEnD,UAAU,8BACtCJ,EAAAA,cAAA,OAAKI,UAAU,gDAAgDpC,EAAU4iD,mBACxE17C,EAAY1C,SAGrBxC,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAK+E,EAAY3B,SAAQ,CAAEnD,UAAU,6BACrCpC,EAAU6iD,iBACV37C,EAAYxB,YAEjB1D,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAK+E,EAAY3B,SAAQ,CAAEnD,UAAU,oCACrCpC,EAAU8iD,gBACV57C,EAAYtB,WAEhBsB,EAAYrB,iBACZqB,EAAYpB,QAGrB9D,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAK+E,EAAYnB,aACjBmB,EAAYlB,aACZkB,EAAYjB,gBAkEhBf,CAAkBxG,GAtDLwH,EAACxH,EAAoCyH,IAEvDnE,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKzD,EAAMyG,OACZnD,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKzD,EAAM0G,aAAce,EAAMC,SAAW1H,EAAM2H,gBAAkB3H,EAAM4H,QAC7EtE,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKzD,EAAM2G,WACXc,EAAMC,SAAW1H,EAAM6H,uBAAyB,CAAC7H,EAAM8H,cAAe9H,EAAM+H,aAAc/H,EAAMoH,QAErG9D,EAAAA,cAACwB,EAAAA,KAAItB,OAAAC,OAAA,GAAKzD,EAAMqH,aAAcI,EAAMC,SAAW1H,EAAMgI,gBAAkB,CAAChI,EAAMsH,aAActH,EAAMuH,gBAgDjGC,CAAkBc,EAAmBb,IAnBnCnE,EAAAA,cAACC,EAAAA,OAAMC,OAAAC,OAAA,GAAKjC,GAAcsiD","sources":["webpack://Msdyn365.Commerce.Online/./src/themes/venchi/definition-extensions/account-loyalty.ext.props.autogenerated.ts?0bf6","webpack://Msdyn365.Commerce.Online/./src/themes/venchi/views/account-loyalty.view.tsx?24c1","webpack://Msdyn365.Commerce.Online/./src/themes/venchi/views/order-template-list.view.tsx?f44e","webpack://Msdyn365.Commerce.Online/./src/themes/venchi/views/reviews-list.view.tsx?43bb","webpack://Msdyn365.Commerce.Online/./src/themes/venchi/views/store-selector.view.tsx?4246","webpack://Msdyn365.Commerce.Online/./src/modules/account-address-tile/account-address-tile.tsx?2f8c","webpack://Msdyn365.Commerce.Online/./src/modules/account-address-tile/account-address-tile.view.tsx?ac91","webpack://Msdyn365.Commerce.Online/./src/modules/account-address-tile/components/account-address-tile-description.tsx?4911","webpack://Msdyn365.Commerce.Online/./src/modules/account-address-tile/components/account-address-tile-links.tsx?bee7","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-invoice-tile/components/account-invoice-tile-description.tsx?7378","webpack://Msdyn365.Commerce.Online/./src/modules/account-invoice-tile/components/account-invoice-tile-links.tsx?81f3","webpack://Msdyn365.Commerce.Online/./src/modules/account-invoice-tile/account-invoice-tile.tsx?c17e","webpack://Msdyn365.Commerce.Online/./src/modules/account-invoice-tile/account-invoice-tile.view.tsx?0a60","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-order-templates-tile/components/account-order-templates-tile-description.tsx?a8c4","webpack://Msdyn365.Commerce.Online/./src/modules/account-order-templates-tile/components/account-order-templates-tile-links.tsx?0bcf","webpack://Msdyn365.Commerce.Online/./src/modules/account-order-templates-tile/account-order-templates-tile.tsx?4e7d","webpack://Msdyn365.Commerce.Online/./src/modules/account-order-templates-tile/account-order-templates-tile.view.tsx?a1f9","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-profile/components/account-profile-attributes.tsx?bcc2","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile/components/account-profile-links.tsx?8faf","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile/account-profile.tsx?fe69","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile/account-profile.view.tsx?b964","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile/components/account-profile-description.tsx?770a","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile/components/account-profile-text.tsx?8115","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/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/organization-users-tile/organization-users-tile.view.tsx?bac2","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-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/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/catalog-picker/catalog-picker.tsx?02aa","webpack://Msdyn365.Commerce.Online/./src/modules/catalog-picker/catalog-picker.view.tsx?1e13","webpack://Msdyn365.Commerce.Online/./src/modules/fabrikam/views/cart.view.tsx?ac8f","webpack://Msdyn365.Commerce.Online/./src/modules/fabrikam/views/order-history.view.tsx?a21d","webpack://Msdyn365.Commerce.Online/./src/modules/footer-item/footer-item.tsx?074a","webpack://Msdyn365.Commerce.Online/./src/modules/footer-item/footer-item.view.tsx?c5af","webpack://Msdyn365.Commerce.Online/./src/modules/order-history-with-search-and-filters/components/order-history-with-search-and-filters-organization-wide-selector.component.tsx?b9a7","webpack://Msdyn365.Commerce.Online/./src/modules/site-picker/site-picker.tsx?b9ec","webpack://Msdyn365.Commerce.Online/./src/modules/site-picker/site-picker.view.tsx?5319","webpack://Msdyn365.Commerce.Online/./src/modules/social-share/social-share.tsx?899b","webpack://Msdyn365.Commerce.Online/./src/modules/social-share/social-share.view.tsx?dcdf","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/business-organization-list.view.tsx?e6ec","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/checkout-customer-account-payment.view.tsx?0efc","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/reviews-list.view.tsx?39ca"],"sourcesContent":["/**\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. See License.txt in the project root for license information.\r\n * IAccountLoyalty 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 layout {\r\n cardLayout = 'cardLayout',\r\n wideLayout = 'wideLayout',\r\n compact = 'compact'\r\n}\r\n\r\nexport interface IAccountLoyaltyConfig extends Msdyn365.IModuleConfig {\r\n heading?: IHeadingData;\r\n className?: string;\r\n clientRender?: boolean;\r\n layout: layout;\r\n displayJoinDate?: boolean;\r\n displayAppleWallet?: boolean;\r\n displayGoogleWallet?: boolean;\r\n appleWalletBtnImage?: Msdyn365.IImageData;\r\n googleWalletBtnImage?: Msdyn365.IImageData;\r\n walletLoyaltyProgramName?: string;\r\n pointsExpirationReminder?: string;\r\n loyaltyTiersLink?: ILoyaltyTiersLinkData;\r\n}\r\n\r\nexport interface IAccountLoyaltyResources {\r\n loyaltyCardLabel: string;\r\n joinDateFormatted: string;\r\n totalAvailablePointsLabel: string;\r\n expiringPointsFormatLabel: string;\r\n expiringPointsFormatAriaLabel: string;\r\n availablePointsLabel: string;\r\n availablePointsAriaLabel: string;\r\n loyaltyActivityDateLabel: string;\r\n loyaltyActivityBalanceLabel: string;\r\n redeemedPointsLabel: string;\r\n refundedPointsLabel: string;\r\n earnedPointsLabel: string;\r\n pendingPointsLabel: string;\r\n adjustedPointsLabel: string;\r\n backToShoppingText: string;\r\n loyaltyTierLabel: string;\r\n loyaltyCardLabel_CL: string;\r\n availablePointsLabel_CL_before: string;\r\n availablePointsLabel_CL_after: string;\r\n}\r\n\r\nexport const enum HeadingTag {\r\n h1 = 'h1',\r\n h2 = 'h2',\r\n h3 = 'h3',\r\n h4 = 'h4',\r\n h5 = 'h5',\r\n h6 = 'h6'\r\n}\r\n\r\nexport interface IHeadingData {\r\n text: string;\r\n tag?: HeadingTag;\r\n}\r\n\r\nexport interface ILoyaltyTiersLinkData {\r\n linkText?: string;\r\n linkUrl: Msdyn365.ILinkData;\r\n ariaLabel?: string;\r\n openInNewTab?: boolean;\r\n}\r\n\r\nexport interface IAccountLoyaltyProps extends Msdyn365.IModule {\r\n resources: IAccountLoyaltyResources;\r\n config: IAccountLoyaltyConfig;\r\n}\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport * as React from 'react';\r\n\r\n// import { Modal, ModalBody, ModalHeader, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport { Module } from '@msdyn365-commerce-modules/utilities';\r\n\r\nimport { IAccountLoyaltyProps, layout as layoutNames } from '../definition-extensions/account-loyalty.ext.props.autogenerated';\r\nimport { IAccountLoyaltyViewProps } from '@msdyn365-commerce-modules/account-management/src/modules/account-loyalty/./account-loyalty';\r\nimport { ILoyaltySignUpProps } from '@msdyn365-commerce-modules/account-management/src/modules/loyalty-sign-up';\r\n\r\nimport { Row, Container } from 'reactstrap';\r\nimport classnames from 'classnames';\r\n\r\nconst isWideOrCompactLayout = (layout: layoutNames) => {\r\n return [layoutNames.wideLayout, layoutNames.compact].includes(layout);\r\n}\r\n\r\nconst layoutClassNames = {\r\n [layoutNames.wideLayout]: 'loyalty-wide-layout',\r\n [layoutNames.compact]: 'loyalty-compact-layout'\r\n}\r\nconst getLayoutClassName = (layout: layoutNames) => layoutClassNames[layout] || 'loyalty-wide-layout'\r\n\r\nconst AccountLoyaltyView: React.FC & ILoyaltySignUpProps<{}>> = props => {\r\n const {\r\n AccountLoyalty,\r\n heading,\r\n cardNumber,\r\n joinDate,\r\n points,\r\n } = props;\r\n\r\n const {\r\n layout,\r\n displayJoinDate,\r\n displayAppleWallet,\r\n displayGoogleWallet,\r\n appleWalletBtnImage,\r\n googleWalletBtnImage,\r\n pointsExpirationReminder,\r\n loyaltyTiersLink,\r\n walletLoyaltyProgramName\r\n } = props.config;\r\n\r\n const {\r\n loyaltyTierLabel,\r\n loyaltyCardLabel,\r\n loyaltyCardLabel_CL,\r\n availablePointsLabel,\r\n availablePointsLabel_CL_before,\r\n availablePointsLabel_CL_after,\r\n viewLoyaltyPageText\r\n } = props.resources;\r\n\r\n // @ts-ignore\r\n const firstLoyaltyGroup = props.AccountLoyalty.moduleProps.data.loyaltyCard.result && props.AccountLoyalty.moduleProps.data.loyaltyCard.result.LoyaltyGroups[0];\r\n // @ts-ignore\r\n const highestTierId = firstLoyaltyGroup.HighestActiveLoyaltyCardTier;\r\n // @ts-ignore\r\n const tierDetails = firstLoyaltyGroup.LoyaltyCardTiers.filter(tier => tier.RecordId === highestTierId)[0];\r\n const tierName = tierDetails.TierId;\r\n\r\n const user_email = props.AccountLoyalty.moduleProps.context.request.user.emailAddress;\r\n // @ts-ignore\r\n const user_card_number = cardNumber!.props.text;\r\n \r\n let points_numbers = [-1.1];\r\n \r\n // @ts-ignore\r\n if (points && points.props) {\r\n // @ts-ignore\r\n points_numbers = points.props.text.split('.');\r\n }\r\n\r\n const height_to_set = 48; // Minimum per Google guidelines\r\n\r\n const tierClass = `tier-name__${tierName}`;\r\n\r\n const apple_wallet_check: boolean = displayAppleWallet && appleWalletBtnImage && appleWalletBtnImage.src && appleWalletBtnImage.altText && user_card_number;\r\n const google_wallet_check: boolean = displayGoogleWallet && googleWalletBtnImage && googleWalletBtnImage.src && googleWalletBtnImage.altText && user_card_number;\r\n const programString : string = walletLoyaltyProgramName || \"v-club-emea\";\r\n\r\n if (isWideOrCompactLayout(layout)) {\r\n // Wide or compact layout (Loyalty page and Homepage row)\r\n return (\r\n \r\n {heading}\r\n \r\n \r\n
\r\n

{loyaltyCardLabel}

\r\n {cardNumber}\r\n {(apple_wallet_check || google_wallet_check) && (
\r\n {apple_wallet_check ?\r\n \r\n {appleWalletBtnImage?.altText}\r\n : null}\r\n {google_wallet_check ?\r\n \r\n {googleWalletBtnImage?.altText}\r\n : null}\r\n
)}\r\n {/* @ts-ignore */}\r\n {displayJoinDate && !joinDate?.props.text.endsWith('1900') ? joinDate : null}\r\n
\r\n
\r\n

{availablePointsLabel}

\r\n {points_numbers[0] != -1.1 ?

{points_numbers[0]}

: null}\r\n {pointsExpirationReminder ?

{pointsExpirationReminder}

: null}\r\n {viewLoyaltyPageText ?\r\n \r\n {viewLoyaltyPageText}\r\n : null}\r\n
\r\n
\r\n

{loyaltyTierLabel}

\r\n

{tierName}

\r\n {(loyaltyTiersLink && loyaltyTiersLink.linkUrl && loyaltyTiersLink.linkUrl.destinationUrl && loyaltyTiersLink.linkText) ?\r\n \r\n {loyaltyTiersLink.linkText} \r\n : null}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n // Card layout (Homepage column)\r\n return (\r\n \r\n {heading}\r\n
\r\n \r\n \r\n
\r\n

{loyaltyCardLabel_CL}

 

{cardNumber}

\r\n
\r\n
\r\n

{loyaltyTierLabel}

 {tierName}

\r\n
\r\n
\r\n \r\n
\r\n

\r\n \r\n {availablePointsLabel_CL_before} {points_numbers[0] != -1.1 ?

{points_numbers[0]}

: null} {availablePointsLabel_CL_after}\r\n
\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default AccountLoyaltyView;","/*!\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\n\r\nimport { IOrderTemplateListViewProps, ISingleOrderTemplateViewProps } from '@msdyn365-commerce-modules/order-template';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\n\r\nexport const OrderTemplateListView: React.FC = props => {\r\n const {\r\n OrderTemplateList,\r\n status,\r\n statusMessage,\r\n heading,\r\n OrderTemplates,\r\n orderTemplates,\r\n OrderTemplate,\r\n createOrderTemplateButton,\r\n templateHeaderStatusMessage\r\n } = props;\r\n\r\n return (\r\n \r\n {heading}\r\n {status !== 'SUCCESS' && statusMessage}\r\n \r\n {createOrderTemplateButton}\r\n {templateHeaderStatusMessage}\r\n \r\n {OrderTemplates && orderTemplates && orderTemplates.length > 0 && (\r\n \r\n {orderTemplates &&\r\n orderTemplates.map(orderTemplate => {\r\n return _renderOrderTemplate(orderTemplate, OrderTemplate);\r\n })}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nconst _renderOrderTemplate = (orderTemplate: ISingleOrderTemplateViewProps, OrderTemplate?: INodeProps): JSX.Element | null => {\r\n const { key, addToCartButton, orderTemplateImage, orderTemplateStatusMessage, removeButton, orderTemplateName } = orderTemplate;\r\n return (\r\n \r\n {orderTemplateName}\r\n {orderTemplateImage}\r\n {addToCartButton}\r\n {removeButton}\r\n {orderTemplateStatusMessage}\r\n \r\n );\r\n};\r\n\r\nexport default OrderTemplateListView;\r\n","import { IReviewModalViewProps } from '@msdyn365-commerce-modules/ratings-reviews';\r\nimport {\r\n IReportReviewModalViewProps,\r\n IReviewCardViewProps,\r\n IReviewsListState,\r\n IReviewsListViewProps\r\n} from '@msdyn365-commerce-modules/ratings-reviews/src/modules/reviews-list';\r\nimport { IModuleProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\n// import { getTelemetryObject } from '@msdyn365-commerce-modules/utilities';\r\n// import { constructViewportInformationForImage } from '@msdyn365-commerce/core-internal';\r\nimport * as React from 'react';\r\n\r\nconst ReviewsListview: React.FC = props => {\r\n const {\r\n /* averageRating,\r\n filterByDropdown, */\r\n moduleProps,\r\n /* noReviewsMessage, */\r\n noReviewsWithFilterMessage,\r\n pageControls,\r\n /* refineReviewsProps, */\r\n reportReviewModal,\r\n /* reviewsListProps, */\r\n reviewCards,\r\n /* reviewCount, */\r\n reviewModal,\r\n /* sortByDropdown, */\r\n state,\r\n userReview\r\n } = props;\r\n\r\n const [modalOpen, setModalOpen] = React.useState(false);\r\n // const telemetryContent = getTelemetryObject(props.context.request.telemetryPageName ?? '', 'Recensioni', props.telemetry);\r\n\r\n const _toggleReviewModal = () => {\r\n document.body.style.overflowY = modalOpen ? 'scroll' : 'hidden';\r\n setModalOpen(!modalOpen);\r\n };\r\n\r\n // @ts-ignore\r\n const averageRating = props.data.ratingsSummary.result.averageRating ?? 0;\r\n // @ts-ignore\r\n const buttonLabel = props.resources.product_review_list_button_label ?? '';\r\n // @ts-ignore\r\n const title = props.resources.reviewListLabel ?? '';\r\n\r\n React.useEffect(() => {\r\n const page_summary = document.getElementsByClassName('msc-average-rating-container')[0];\r\n const modal_summary = document.getElementsByClassName('msc-average-rating-container')[1];\r\n if (page_summary && modal_summary) {\r\n modal_summary.innerHTML = page_summary.innerHTML;\r\n }\r\n });\r\n\r\n if (!userReview && reviewCards.length === 0 && !state.isFilterApplied) {\r\n /* return {noReviewsMessage}; */\r\n /* return (\r\n \r\n
\r\n
); */\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {/* {averageRating}\r\n {reviewCount} */}\r\n {/* { reviewCards.length === 0 ?\r\n null : \r\n {sortByDropdown}\r\n {filterByDropdown}\r\n \r\n } */}\r\n {/* {React.createElement(React.Fragment, null,\r\n modalToggle,\r\n createReviewModal(reviewModal, moduleProps)))} */}\r\n {/* \r\n {userReview && buildReviewCard(userReview)}\r\n {reviewCards.map(review => {\r\n return buildReviewCard(review);\r\n })}\r\n */}\r\n
\r\n
e.stopPropagation()}>\r\n
\r\n {title}\r\n \r\n
\r\n
\r\n
\r\n
\r\n {userReview && buildReviewCard(userReview)}\r\n {reviewCards.map(review => {\r\n return buildReviewCard(review);\r\n })}\r\n
\r\n
\r\n
\r\n
\r\n \r\n {reviewCards.length === 0 && state.isFilterApplied && noReviewsWithFilterMessage}\r\n {pageControls}\r\n {createReviewModal(reviewModal, moduleProps)}\r\n {createReportModal(reportReviewModal, state)}\r\n
\r\n );\r\n};\r\n\r\nconst buildReviewCard = (props: IReviewCardViewProps) => {\r\n return (\r\n \r\n \r\n {props.name}\r\n {props.date}\r\n {props.rating}\r\n \r\n \r\n \r\n {/* {props.reviewTitle} */}\r\n {props.reviewText}\r\n \r\n \r\n {props.responseName}\r\n {props.responseDate}\r\n {props.responseText}\r\n \r\n \r\n {/* {props.ratingHelpfulLabel}\r\n {props.like}\r\n {props.dislike} */}\r\n {props.edit}\r\n {/* {props.report} */}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst createReviewModal = (props: IReviewModalViewProps, moduleProps: IModuleProps): JSX.Element => {\r\n return (\r\n \r\n {props.modalHeader}\r\n \r\n \r\n \r\n {props.rating}\r\n {props.ratingLabel}\r\n \r\n \r\n {props.titleLabel}\r\n {props.titleInput}\r\n \r\n \r\n {props.textLabel}\r\n {props.textInput}\r\n \r\n {props.privacyPolicyUrl}\r\n {props.error}\r\n \r\n \r\n \r\n {props.submitButton}\r\n {props.cancelButton}\r\n \r\n \r\n );\r\n};\r\n\r\nconst createReportModal = (props: IReportReviewModalViewProps, state: IReviewsListState): JSX.Element => {\r\n return (\r\n \r\n {state.reported ? props.headerSubmitted : props.header}\r\n \r\n {state.reported ? props.reportSubmittedMessage : [props.reportMessage, props.radioButtons, props.error]}\r\n \r\n {state.reported ? props.succesfulButton : [props.submitButton, props.cancelButton]}\r\n \r\n );\r\n};\r\n\r\nexport default ReviewsListview;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { IStoreSelectorViewProps } from '@msdyn365-commerce-modules/store-selector/src/modules/store-selector/./store-selector';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst StoreSelectorView: React.FC = props => {\r\n const {\r\n BodyContainerProps,\r\n FooterContainerProps,\r\n HeaderContainerProps,\r\n HeaderProps,\r\n ModuleProps,\r\n // headerText,\r\n locationsMessage,\r\n search,\r\n state,\r\n spinner,\r\n locationsList,\r\n noLocationsMessage,\r\n terms\r\n } = props;\r\n const currentUrl = ModuleProps.moduleProps.context.request.url.requestUrl.href;\r\n const baseUrl = currentUrl.substring(0, currentUrl.lastIndexOf('/') + 1);\r\n React.useEffect(() => {\r\n const titles = Array.from(document.querySelectorAll('.ms-store-select__location-line-item-store-name'));\r\n if (titles.length > 0) {\r\n titles.forEach(el => {\r\n const storeName = el.textContent;\r\n if (storeName && storeName.startsWith('R ')) {\r\n el.closest('.ms-store-select__location-line-item')?.classList.add('location-type__dealer');\r\n el.textContent = storeName.replace('R ', '');\r\n }\r\n // @ts-ignore\r\n if (props.config.renderLinkToStorePage) {\r\n const goToStoreCtn = el.closest('.ms-store-select__location-line-item')?.querySelector('.go-to-store');\r\n if (goToStoreCtn === null) {\r\n const storeUrl = storeName\r\n ?.replace('R ', '')\r\n .toLowerCase()\r\n .replace(/[ .&@',]/g, '-')\r\n .replace(/-+/g, '-');\r\n const goToStore = document.createElement('div');\r\n goToStore.className = 'go-to-store';\r\n // tslint:disable-next-line:no-inner-html\r\n goToStore.innerHTML = `${\r\n // @ts-ignore\r\n props.resources.goToStorePage ? props.resources.goToStorePage : 'Go to Store page'\r\n }`;\r\n el.closest('.ms-store-select__location-line-item:not(.location-type__dealer)')\r\n ?.querySelector('.ms-store-select__location-line-item-content')\r\n ?.appendChild(goToStore);\r\n }\r\n }\r\n });\r\n }\r\n }, [locationsList]);\r\n\r\n return (\r\n \r\n {HeaderProps}\r\n \r\n {locationsMessage}\r\n {search}\r\n {state.isSearchInProgress ? spinner : <>{locationsList ? locationsList : noLocationsMessage}}\r\n \r\n {terms}\r\n \r\n );\r\n};\r\n\r\nexport default StoreSelectorView;\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 { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountAddressTileData } from './account-address-tile.data';\nimport { IAccountAddressTileProps } from './account-address-tile.props.autogenerated';\nimport DescriptionComponent from './components/account-address-tile-description';\nimport LinksComponent from './components/account-address-tile-links';\n\nexport interface IAccountAddressTileViewProps extends IAccountAddressTileProps {\n AccountAddressTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * AccountAddress component.\n * @extends {React.PureComponent>}\n */\nclass AccountAddressTile extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountAddressTileProps) {\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 { accountAddressTileDescriptionForSingleAddress, accountAddressTileDescriptionForMultipleAddresses } = resources;\n const { address } = data;\n const addressCount = (address && address.result && address.result.length) || 0;\n const accountAddressTileDescription =\n addressCount === 1 ? accountAddressTileDescriptionForSingleAddress : accountAddressTileDescriptionForMultipleAddresses;\n const description = format(accountAddressTileDescription, addressCount);\n\n const viewProps = {\n ...this.props,\n className,\n AccountAddressTile: {\n moduleProps: this.props,\n className: classnames('ms-account-address-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 AccountAddressTile;\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 { IAccountAddressTileViewProps } from './account-address-tile';\n\nconst AccountAddressTileView: React.FC = props => {\n const { AccountAddressTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default AccountAddressTileView;\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 IAccountAddressTileDescription {\n description: string;\n}\n\n// eslint-disable-next-line no-redeclare\nconst IAccountAddressTileDescription: React.FC = ({ description }) => (\n

{description}

\n);\n\nexport default IAccountAddressTileDescription;\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-address-tile.props.autogenerated';\n\nexport interface IAccountAddressTileLinks {\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 AccountAddressTileLinks: React.FC = ({ links, telemetryContent, requestContext, onTextChange }) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n\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-address-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 AccountAddressTileLinks;\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 React from 'react';\n\nexport interface IAccountInvoiceTileDescription {\n description: string;\n}\n\nexport const AccountInvoiceTileDescription: 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 '../account-invoice-tile.props.autogenerated';\n\nexport interface IAccountInvoiceTileLinks {\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 AccountInvoiceTileLinks: React.FC = ({ links, telemetryContent, requestContext, onTextChange }) => {\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-invoice-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 AccountInvoiceTileLinks;\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 { IAccountInvoiceTileData } from './account-invoice-tile.data';\nimport { IAccountInvoiceTileProps } from './account-invoice-tile.props.autogenerated';\nimport { AccountInvoiceTileDescription } from './components';\nimport LinksComponent from './components/account-invoice-tile-links';\n\nexport interface IAccountInvoiceTileViewProps extends IAccountInvoiceTileProps {\n AccountInvoiceTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * AccountInvoiceTile component.\n * @extends {React.PureComponent>}\n */\nclass AccountInvoiceTile extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountInvoiceTileProps) {\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 {\n config,\n data,\n resources,\n context: {\n cultureFormatter: {\n formatCurrency,\n\n // @ts-expect-error\n currencyCode\n }\n }\n } = this.props;\n const { className, heading, links } = config;\n const { accountInvoiceTileDescription } = resources;\n\n const openinvoiceAmount = data.customerBalance.result?.OpenInvoiceBalance || 0;\n const invoiceTotalAmount: string | undefined = formatCurrency(openinvoiceAmount.toFixed(2), currencyCode);\n\n const description = invoiceTotalAmount && format(accountInvoiceTileDescription, invoiceTotalAmount);\n\n const viewProps = {\n ...this.props,\n className,\n AccountInvoiceTile: {\n moduleProps: this.props,\n className: classnames('ms-account-invoice-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n ),\n description: 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 AccountInvoiceTile;\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 { IAccountInvoiceTileViewProps } from './account-invoice-tile';\n\nexport default (props: IAccountInvoiceTileViewProps) => {\n const { AccountInvoiceTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\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 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 React from 'react';\n\nexport interface IAccountOrderTemplatesTileDescription {\n description: string;\n}\n\nexport const AccountOrderTemplatesTileDescription: 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 '../account-order-templates-tile.props.autogenerated';\n\nexport interface IAccountOrderTemplatesTileLinks {\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 AccountOrderTemplatesTileLinks: React.FC = ({\n links,\n onTextChange,\n telemetryContent,\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-order-templates-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 { isChannelTypeB2B } 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 { IAccountOrderTemplatesTileData } from './account-order-templates-tile.data';\nimport { IAccountOrderTemplatesTileProps } from './account-order-templates-tile.props.autogenerated';\nimport { AccountOrderTemplatesTileDescription, AccountOrderTemplatesTileLinks } from './components';\n\nexport interface IAccountOrderTemplatesTileViewProps extends IAccountOrderTemplatesTileProps {\n AccountOrderTemplatesTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * AccountOrderTemplatesTile component.\n * @extends {React.PureComponent>}\n */\nexport class AccountOrderTemplatesTile extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountOrderTemplatesTileProps) {\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\n if (!this.props.context.request.params.isEditor && !isChannelTypeB2B(this.props.context.request)) {\n return <>;\n }\n\n const { className, heading, links } = config;\n const { accountOrderTemplatesTileDescription } = resources;\n const orderTemplates = data.orderTemplates;\n\n const orderTemplatesCount = (orderTemplates?.result || []).length;\n const description = format(accountOrderTemplatesTileDescription, orderTemplatesCount);\n\n const viewProps = {\n ...this.props,\n className,\n AccountOrderTemplatesTile: {\n moduleProps: this.props,\n className: classnames('ms-account-order-templates-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) => {\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 AccountOrderTemplatesTile;\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 { IAccountOrderTemplatesTileViewProps } from './account-order-templates-tile';\n\nconst AccountOrderTemplatesTileView: React.FC = props => {\n const { AccountOrderTemplatesTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default AccountOrderTemplatesTileView;\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 MsDyn365, { IDictionary, Text } from '@msdyn365-commerce/core';\nimport { AttributeDefinition, Customer, CustomerAttribute } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { StringExtensions, updateCustomerAttributes, updateCustomerAttributesInput } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n format,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IPayLoad,\n ITelemetryContent\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable, reaction } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IAccountProfileData } from '../account-profile.data';\nimport { IAccountProfileProps } from '../account-profile.props.autogenerated';\nimport TextComponent from './account-profile-text';\n\ninterface IAttributePropertiesType {\n Name?: string;\n IsMandatory?: boolean;\n}\n\nexport interface IAccountProfileAttributesProps {\n accountProfileProps: IAccountProfileProps;\n}\n\nexport enum AccountAttributeDataTypeValue {\n Decimal = 3,\n Integer = 4,\n Text = 5,\n TrueFalse = 6\n}\n\nexport interface IAttributePayloadData {\n recordId?: number;\n name?: string;\n dataTypeValue?: number;\n isEnumeration?: boolean;\n lowerBoundValue?: number;\n upperBoundValue?: number;\n decimalValue?: number;\n integerValue?: number;\n textValue?: string;\n booleanValue?: boolean;\n isMandatory?: boolean;\n defaultValue?: string;\n}\n\nexport interface IAccountProfileAttributesState extends React.ComponentState {\n editAttributes: boolean;\n phone: string;\n vatNumber: string;\n attributes: IDictionary;\n attributeError: IDictionary;\n}\n\n/**\n *\n * AccountProfileAttributes class.\n * @extends {React.PureComponentIAccountProfileAttributesProps, IAccountProfileAttributesState>}\n */\n@observer\nclass AccountProfileAttributes extends React.Component {\n private readonly attributePayloadData: IAttributePayloadData[];\n\n @observable private isUpdatingAttributes: boolean = false;\n\n @observable private gotException: boolean = false;\n\n private hasError: boolean = false;\n\n private readonly telemetryContent?: ITelemetryContent;\n\n private initialAttributes: IDictionary;\n\n private initialCustomerAttributes?: CustomerAttribute[];\n\n private initialPhone: string;\n\n private initialVatNumber: string;\n\n private readonly payLoad: IPayLoad;\n\n private readonly editRef: React.RefObject;\n\n private readonly attributesContainerRef: React.RefObject;\n\n private readonly attributeClassName: string = 'ms-account-profile__attributes-element';\n\n private readonly maxIntegerLimit: number = 2_100_000_000;\n\n private readonly minIntegerLimit: number = -2_100_000_000;\n\n private readonly maxDecimalLimit: number = 7_900_000_000_000;\n\n private readonly minDecimalLimit: number = -7_900_000_000_000;\n\n private readonly maxStringLength: number = 1000;\n\n private readonly maxVATNumberLength: number = 20;\n\n private readonly maxPhoneLength: number = 20;\n\n private readonly editAsyncCustomerFeatureName: string = 'Dynamics.AX.Application.RetailEnableAsyncCustomerEditFeature';\n\n private isEditAsyncCustomerFeatureEnabled: boolean = false;\n\n constructor(props: IAccountProfileAttributesProps) {\n super(props);\n this.state = {\n editAttributes: false,\n phone: '',\n vatNumber: '',\n attributes: {},\n attributeError: {}\n };\n this.initialAttributes = {};\n this.initialCustomerAttributes = [];\n this.initialPhone = '';\n this.initialVatNumber = '';\n this.attributePayloadData = [];\n const telemetryPageName =\n (this.props.accountProfileProps &&\n this.props.accountProfileProps.context &&\n this.props.accountProfileProps.context.request &&\n this.props.accountProfileProps.context.request.telemetryPageName) ||\n '';\n const friendlyName = (this.props.accountProfileProps && this.props.accountProfileProps.friendlyName) || '';\n const telemetry = (this.props.accountProfileProps && this.props.accountProfileProps.telemetry) || {};\n this.telemetryContent = getTelemetryObject(telemetryPageName, friendlyName, telemetry);\n this.payLoad = getPayloadObject('click', this.telemetryContent, '');\n this.editRef = React.createRef();\n this.attributesContainerRef = React.createRef();\n }\n\n public componentDidMount(): void {\n this._buildPayloadData();\n this._getAttributes();\n this._getCustomerPhoneAndVatNumber();\n reaction(\n () => this.props.accountProfileProps.data.customerInformation.result,\n () => {\n const customerInformation = this.props.accountProfileProps.data.customerInformation.result;\n this.initialCustomerAttributes = customerInformation && customerInformation.Attributes;\n this._getAttributes();\n this._getCustomerPhoneAndVatNumber();\n }\n );\n reaction(\n () => this.props.accountProfileProps.data.attributeDefinitions.result,\n () => {\n this._buildPayloadData();\n }\n );\n }\n\n public shouldComponentUpdate(nextProps: IAccountProfileAttributesProps, nextState: IAccountProfileAttributesState): boolean {\n if (this.state === nextState && this.props.accountProfileProps.data === nextProps.accountProfileProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n return this._renderAttributes();\n }\n\n private readonly _renderAttributes = (): JSX.Element | null => {\n const { config, data, resources } = this.props.accountProfileProps;\n const attributeDefinitions: AttributeDefinition[] = data.attributeDefinitions.result || [];\n const additionalInformationSectionHeading =\n (config.additionalInformationSectionHeading && config.additionalInformationSectionHeading.text) || '';\n const showAttributes = config.showAttributes || '';\n const attributes = showAttributes.split(',');\n const elements = attributes.map(att => {\n const attributeDefinition: AttributeDefinition = attributeDefinitions.find(\n attribute => attribute.IsHidden === false && attribute.Name!.toLocaleLowerCase() === att.toLocaleLowerCase()\n ) || { RecordId: 0 };\n return this._renderAttribute(attributeDefinition);\n });\n const edit = (this.state && this.state.editAttributes) || false;\n this.payLoad.contentAction.etext = `${resources.attributesEditButtonText} ${additionalInformationSectionHeading}`;\n const editAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n this.payLoad.contentAction.etext = `${resources.attributesSaveButtonText} ${additionalInformationSectionHeading}`;\n const saveAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n this.payLoad.contentAction.etext = `${resources.attributesCancelButtonText} ${additionalInformationSectionHeading}`;\n const cancelAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n const customerInformation = data.customerInformation.result;\n\n this.isEditAsyncCustomerFeatureEnabled =\n data.featureState?.result?.find(feature => feature.Name === this.editAsyncCustomerFeatureName)?.IsEnabled || false;\n\n // Disable the 'Edit' button if the switch is enabled and the customer is async.\n const disableBtn: boolean =\n (this.props.accountProfileProps.context.app?.config?.canRenderAsyncCustomerDataAsUnmodifiable || false) &&\n (customerInformation?.IsAsyncCustomer || false) &&\n !this.isEditAsyncCustomerFeatureEnabled;\n return (\n \n {config.additionalInformationSectionHeading && (\n \n )}\n {config.showPhone && this._renderPhone()}\n {config.showVatNumber && this._renderVatNumber()}\n {elements}\n {this.gotException && (\n
\n \n
\n )}\n {!edit && (\n \n {resources.attributesEditButtonText}\n \n )}\n {edit && (\n \n {resources.attributesSaveButtonText}\n \n )}\n {edit && (\n \n {resources.attributesCancelButtonText}\n \n )}\n
\n );\n };\n\n private readonly _renderPhone = (): JSX.Element | null => {\n const { phoneSectionHeading } = this.props.accountProfileProps.config;\n const heading = (phoneSectionHeading && phoneSectionHeading.text) || '';\n const className = (heading && heading.replace(/ /g, '_')) || '';\n const editAttributes = (this.state && this.state.editAttributes) || false;\n return (\n
\n {phoneSectionHeading && }\n \n {this._renderError('Phone')}\n
\n );\n };\n\n private readonly _renderVatNumber = (): JSX.Element | null => {\n const { vatNumberSectionHeading } = this.props.accountProfileProps.config;\n const heading = (vatNumberSectionHeading && vatNumberSectionHeading.text) || '';\n const className = (heading && heading.replace(/ /g, '_')) || '';\n const editAttributes = (this.state && this.state.editAttributes) || false;\n return (\n
\n {vatNumberSectionHeading && }\n \n {this._renderError('VATNumber')}\n
\n );\n };\n\n private readonly _renderAttribute = (customAttribute: AttributeDefinition): JSX.Element | null => {\n const editAttributes = (this.state && this.state.editAttributes) || false;\n const className = (customAttribute.Name && customAttribute.Name.replace(/ /g, '_')) || '';\n switch (customAttribute.ExtDataType && customAttribute.ExtDataType.Value) {\n case AccountAttributeDataTypeValue.Integer:\n case AccountAttributeDataTypeValue.Decimal:\n return this._renderIntegerDecimalInput(customAttribute, className, editAttributes);\n case AccountAttributeDataTypeValue.Text:\n return this._renderTextInputOrSelect(customAttribute, className, editAttributes);\n case AccountAttributeDataTypeValue.TrueFalse:\n return this._renderBoolean(customAttribute, className, editAttributes);\n default:\n return null;\n }\n };\n\n private readonly _renderIntegerDecimalInput = (\n customAttribute: AttributeDefinition,\n className: string,\n editAttributes: boolean\n ): JSX.Element | null => {\n const edit = (this.state && this.state.editAttributes) || false;\n const attributeProps = this._getAttributeProps(customAttribute.Name || '');\n const displayName: string = attributeProps.Name || '';\n return (\n
\n \n \n {this._renderError(customAttribute.Name || '')}\n
\n );\n };\n\n private readonly _renderTextInputOrSelect = (\n customAttribute: AttributeDefinition,\n className: string,\n editAttributes: boolean\n ): JSX.Element | null => {\n const isEnumeration: boolean = customAttribute.IsEnumeration || false;\n const edit = (this.state && this.state.editAttributes) || false;\n const attributeProps = this._getAttributeProps(customAttribute.Name || '');\n const displayName: string = attributeProps.Name || '';\n if (isEnumeration && customAttribute.EnumerationDetails) {\n const value = this.state.attributes[customAttribute.Name || ''] || '';\n const hasNoValue = value === '';\n return (\n
\n \n \n {hasNoValue && (\n \n )}\n {customAttribute.EnumerationDetails.map(option => {\n const selected = option.EnumerationValue === this.state.attributes[customAttribute.Name || ''];\n return (\n \n {option.EnumerationValue}\n \n );\n })}\n \n
\n );\n }\n return (\n
\n \n \n {this._renderError(customAttribute.Name || '')}\n
\n );\n };\n\n private readonly _renderBoolean = (\n customAttribute: AttributeDefinition,\n className: string,\n editAttributes: boolean\n ): JSX.Element | null => {\n let value = this.state.attributes[customAttribute.Name || ''] || '';\n const hasNoValue = value === '';\n const render = !(hasNoValue && !editAttributes);\n value = value || 'false';\n const toggleState = (value === 'true' && 'enable') || 'disable';\n const arialabel = format(this.props.accountProfileProps.resources.attributeToggleButtonAriaLabel, customAttribute.Name);\n const ariaPressed = (value === 'true' && true) || false;\n const attributeProps = this._getAttributeProps(customAttribute.Name || '');\n const displayName: string = attributeProps.Name || '';\n let toggleValue = 'false';\n if (value === 'true') {\n toggleValue = 'false';\n } else {\n toggleValue = 'true';\n }\n\n return (\n \n \n {render && (\n \n \n \n \n \n )}\n \n );\n };\n\n private readonly _renderError = (attributeName: string): JSX.Element | null => {\n const error: string = (this.state && this.state.attributeError && this.state.attributeError[attributeName]) || '';\n const hasError = !StringExtensions.isNullOrWhitespace(error);\n if (hasError) {\n return (\n
\n \n
\n );\n }\n return null;\n };\n\n private readonly _getAttributeProps = (attributeName: string): IAttributePropertiesType => {\n const attributePayloadData = this.attributePayloadData.find(att => att.name === attributeName);\n const isMandatory: boolean = (attributePayloadData && attributePayloadData.isMandatory) || false;\n return {\n Name: isMandatory ? `${attributeName || ''} *` : attributeName || '',\n IsMandatory: isMandatory\n };\n };\n\n private readonly _onPhoneChange = (event: React.ChangeEvent): void => {\n const value = event.target.value;\n this.setState({ phone: value });\n };\n\n private readonly _onVatNumberChange = (event: React.ChangeEvent): void => {\n const value = event.target.value;\n this.setState({ vatNumber: value });\n };\n\n private readonly _enableAttributes = () => {\n this.hasError = false;\n\n // To clear exception messages\n this.gotException = false;\n this.setState({ editAttributes: true, attributeError: {} });\n if (MsDyn365.isBrowser) {\n setTimeout(() => {\n if (this.attributesContainerRef.current) {\n const attributes: HTMLCollectionOf = this.attributesContainerRef.current.getElementsByClassName(\n this.attributeClassName\n );\n if (attributes && attributes.length > 0) {\n this._setFocus(attributes[0] as HTMLElement);\n }\n }\n }, 0);\n }\n };\n\n private readonly _disableAttributes = () => {\n this.setState({\n editAttributes: false,\n attributeError: {},\n attributes: this.initialAttributes,\n phone: this.initialPhone,\n vatNumber: this.initialVatNumber\n });\n if (MsDyn365.isBrowser) {\n setTimeout(() => {\n this._setFocus(this.editRef.current);\n }, 0);\n }\n };\n\n private readonly _onAttributeChange = (attributeDefinition: AttributeDefinition) => (event: React.ChangeEvent) => {\n const value = event.target.value;\n const name = attributeDefinition.Name || '';\n this.setState({\n attributes: {\n ...this.state.attributes,\n [name]: value\n }\n });\n };\n\n private readonly _onAttributeCheck = (attributeDefinition: AttributeDefinition, value: string) => (\n event: React.MouseEvent\n ) => {\n const name = attributeDefinition.Name || '';\n this.setState({\n attributes: {\n ...this.state.attributes,\n [name]: value\n }\n });\n };\n\n private readonly _onAttributeSelect = (attributeDefinition: AttributeDefinition) => (event: React.ChangeEvent) => {\n const value = event.currentTarget.selectedOptions[0].value;\n const index = event.currentTarget.selectedOptions[0].index;\n const name = attributeDefinition.Name || '';\n this.setState({\n attributes: {\n ...this.state.attributes,\n [name]: value\n },\n selectedIndex: {\n ...this.state.selectedIndex,\n [name]: index\n }\n });\n };\n\n private readonly _getAttributes = () => {\n const { config, data } = this.props.accountProfileProps;\n const showAttributes = config.showAttributes || '';\n const showAttributesArray = showAttributes.split(',');\n const customer = data.customerInformation.result;\n const custmerAttributes: CustomerAttribute[] = (customer && customer.Attributes) || [];\n const attributes: IDictionary = {};\n\n showAttributesArray.forEach(showAttribute => {\n const attributePayloadData = this.attributePayloadData.find(att => att.name === showAttribute);\n const isMandatory: boolean = (attributePayloadData && attributePayloadData.isMandatory) || false;\n const defaultValue = attributePayloadData && attributePayloadData.defaultValue;\n const attribute = custmerAttributes.find(att => att.Name === showAttribute);\n let value: string = '';\n if (attribute && attribute.AttributeValue) {\n const name = (attribute && attribute.Name) || '';\n switch (attribute.DataTypeValue) {\n case AccountAttributeDataTypeValue.Integer:\n if (attribute.AttributeValue.IntegerValue) {\n value = String(attribute.AttributeValue.IntegerValue);\n attributes[name] = value;\n }\n break;\n case AccountAttributeDataTypeValue.Decimal:\n if (attribute.AttributeValue.DecimalValue) {\n value = String(attribute.AttributeValue.DecimalValue);\n attributes[name] = value;\n }\n break;\n case AccountAttributeDataTypeValue.Text:\n if (attribute.AttributeValue.StringValue) {\n value = attribute.AttributeValue.StringValue;\n attributes[name] = value;\n }\n break;\n case AccountAttributeDataTypeValue.TrueFalse:\n if (attribute.AttributeValue.BooleanValue !== null) {\n value = String(attribute.AttributeValue.BooleanValue);\n attributes[name] = value;\n }\n break;\n default:\n\n // Do nothing\n }\n }\n if (StringExtensions.isNullOrWhitespace(value) && isMandatory) {\n attributes[showAttribute] = '';\n }\n if (value.length === 0 && defaultValue) {\n attributes[showAttribute] = String(defaultValue);\n }\n });\n if (Object.keys(this.initialAttributes).length === 0) {\n this.initialAttributes = attributes;\n }\n this.setState({ attributes });\n };\n\n // eslint-disable-next-line\n private readonly _addOrUpdateAttribute = (customer: Customer) => {\n const { resources } = this.props.accountProfileProps;\n const { phone, vatNumber } = this.state;\n const attributeError: IDictionary = {};\n let hasError: boolean = false;\n let hasValue: boolean = true;\n for (const [key, value] of Object.entries(this.state.attributes)) {\n const payloadData: IAttributePayloadData = this.attributePayloadData.find(data => data.name === key) || {};\n if (payloadData) {\n switch (payloadData.dataTypeValue) {\n case AccountAttributeDataTypeValue.Decimal:\n const decimalValue = Number(value);\n if (isNaN(decimalValue)) {\n const typeError = format(resources.attributeInputTypeErrorText, payloadData.name, 'Decimal');\n attributeError[payloadData.name || ''] = typeError;\n hasError = true;\n } else if (payloadData.lowerBoundValue !== undefined && payloadData.upperBoundValue !== undefined) {\n if (decimalValue < payloadData.lowerBoundValue || decimalValue > payloadData.upperBoundValue) {\n const rangeError = format(\n resources.attributeInputRangeErrorText,\n payloadData.name,\n payloadData.lowerBoundValue,\n payloadData.upperBoundValue\n );\n attributeError[payloadData.name || ''] = rangeError;\n hasError = true;\n }\n } else {\n if (decimalValue > this.maxDecimalLimit) {\n attributeError[payloadData.name || ''] = format(\n resources.attributeInputValueExceedsMaximumErrorText,\n payloadData.name,\n this.maxDecimalLimit\n );\n hasError = true;\n }\n\n if (decimalValue < this.minDecimalLimit) {\n attributeError[payloadData.name || ''] = format(\n resources.attributeInputValueExceedsMinimumErrorText,\n payloadData.name,\n this.minDecimalLimit\n );\n hasError = true;\n }\n }\n\n if (!hasError) {\n if (StringExtensions.isNullOrWhitespace(value)) {\n hasValue = false;\n } else {\n payloadData.decimalValue = decimalValue;\n hasValue = true;\n }\n }\n break;\n case AccountAttributeDataTypeValue.Integer:\n const integerValue = Number(value);\n if (isNaN(integerValue) || value.includes('.')) {\n const typeError = format(resources.attributeInputTypeErrorText, payloadData.name, 'Integer');\n attributeError[payloadData.name || ''] = typeError;\n hasError = true;\n } else if (payloadData.lowerBoundValue !== undefined && payloadData.upperBoundValue !== undefined) {\n if (integerValue < payloadData.lowerBoundValue || integerValue > payloadData.upperBoundValue) {\n const rangeError = format(\n resources.attributeInputRangeErrorText,\n payloadData.name,\n payloadData.lowerBoundValue,\n payloadData.upperBoundValue\n );\n attributeError[payloadData.name || ''] = rangeError;\n hasError = true;\n }\n } else {\n if (integerValue > this.maxIntegerLimit) {\n attributeError[payloadData.name || ''] = format(\n resources.attributeInputValueExceedsMaximumErrorText,\n payloadData.name,\n this.maxIntegerLimit\n );\n hasError = true;\n }\n\n if (integerValue < this.minIntegerLimit) {\n attributeError[payloadData.name || ''] = format(\n resources.attributeInputValueExceedsMinimumErrorText,\n payloadData.name,\n this.minIntegerLimit\n );\n hasError = true;\n }\n }\n\n if (!hasError) {\n if (StringExtensions.isNullOrWhitespace(value)) {\n hasValue = false;\n } else {\n payloadData.integerValue = integerValue;\n hasValue = true;\n }\n }\n break;\n case AccountAttributeDataTypeValue.Text:\n let trimValue = '';\n if (!StringExtensions.isNullOrWhitespace(value)) {\n trimValue = value.trim();\n }\n if (trimValue.length > this.maxStringLength) {\n attributeError[payloadData.name || ''] = format(\n resources.attributeInputStringMaxLengthErrorText,\n payloadData.name,\n this.maxStringLength\n );\n hasError = true;\n }\n if (!hasError) {\n payloadData.textValue = trimValue;\n }\n break;\n case AccountAttributeDataTypeValue.TrueFalse:\n payloadData.booleanValue = value === 'true';\n break;\n default:\n\n // Do nothing\n }\n\n if (payloadData.isMandatory && StringExtensions.isNullOrWhitespace(value)) {\n attributeError[payloadData.name || ''] = format(resources.attributeInputMandatoryErrorText, payloadData.name);\n hasError = true;\n }\n\n const custmerAttributes: CustomerAttribute[] = (customer && customer.Attributes) || [];\n const attribute = custmerAttributes.find(att => att.Name === key);\n const index = custmerAttributes.findIndex(att => att.Name === key);\n\n if (index !== -1 && !hasValue) {\n custmerAttributes.splice(index, 1);\n }\n\n if (!hasError && hasValue) {\n if (attribute) {\n attribute.Attribute = undefined;\n attribute.DataTypeValue = payloadData.dataTypeValue;\n attribute.Name = payloadData.name;\n attribute.RecordId = payloadData.recordId;\n attribute.Units = undefined;\n attribute.AttributeValue = {\n IntegerValue: payloadData.integerValue,\n BooleanValue: payloadData.booleanValue,\n StringValue: payloadData.textValue,\n DecimalValue: payloadData.decimalValue\n };\n attribute.ExtensionProperties = [];\n attribute.NameTranslations = [];\n } else {\n custmerAttributes.push({\n '@odata.type': '#Microsoft.Dynamics.Commerce.Runtime.DataModel.CustomerAttribute',\n Attribute: undefined,\n DataTypeValue: payloadData.dataTypeValue,\n KeyName: payloadData.name,\n Name: payloadData.name,\n RecordId: payloadData.recordId,\n Units: undefined,\n AttributeValue: {\n // @ts-expect-error\n '@odata.type': '#Microsoft.Dynamics.Commerce.Runtime.DataModel.CommercePropertyValue',\n IntegerValue: payloadData.integerValue,\n BooleanValue: payloadData.booleanValue,\n StringValue: payloadData.textValue,\n DecimalValue: payloadData.decimalValue\n },\n 'ExtensionProperties@odata.type': '#Collection(Microsoft.Dynamics.Commerce.Runtime.DataModel.CommerceProperty)',\n ExtensionProperties: [],\n 'NameTranslations@odata.type':\n '#Collection(Microsoft.Dynamics.Commerce.Runtime.DataModel.TextValueTranslation)',\n NameTranslations: []\n });\n }\n }\n }\n }\n\n if (phone.trim().length > this.maxPhoneLength) {\n attributeError.Phone = format(resources.attributeInputStringMaxLengthErrorText, 'Phone', this.maxPhoneLength);\n hasError = true;\n } else {\n customer.Phone = phone.trim();\n }\n\n if (vatNumber.trim().length > this.maxVATNumberLength) {\n attributeError.VATNumber = format(resources.attributeInputStringMaxLengthErrorText, 'VAT Number', this.maxVATNumberLength);\n hasError = true;\n } else {\n customer.VatNumber = vatNumber.trim();\n }\n\n this.hasError = hasError;\n this.setState({ attributeError });\n };\n\n private readonly _saveAttributes = async () => {\n const { context, data } = this.props.accountProfileProps;\n const customer = data.customerInformation.result;\n\n if (customer && context) {\n this._addOrUpdateAttribute(customer);\n const input = new updateCustomerAttributesInput(\n customer.AccountNumber,\n customer.Attributes || [],\n context.request.apiSettings,\n customer.Phone,\n customer.VatNumber\n );\n\n this.isUpdatingAttributes = true;\n this.gotException = false;\n\n if (!this.hasError) {\n this.setState({ editAttributes: false });\n try {\n await updateCustomerAttributes(input, context.actionContext);\n } catch (error) {\n this.gotException = true;\n customer.Attributes = this.initialCustomerAttributes;\n if (context.telemetry) {\n context.telemetry.exception(error);\n context.telemetry.debug('Unable to update customer attributes');\n }\n this.setState({\n attributeError: {},\n attributes: this.initialAttributes,\n phone: this.initialPhone,\n vatNumber: this.initialVatNumber\n });\n }\n this.setState({ editAttributes: false });\n if (!this.gotException) {\n this.initialAttributes = this.state.attributes;\n this.initialCustomerAttributes = customer.Attributes;\n this.initialPhone = this.state.phone;\n this.initialVatNumber = this.state.vatNumber;\n }\n }\n\n this.isUpdatingAttributes = false;\n\n if (MsDyn365.isBrowser) {\n setTimeout(() => {\n this._setFocus(this.editRef.current);\n }, 0);\n }\n }\n };\n\n private readonly _setFocus = (element: HTMLElement | null) => {\n element?.focus();\n };\n\n private readonly _buildPayloadData = () => {\n const { data } = this.props.accountProfileProps;\n const attributeDefinitions = data.attributeDefinitions.result || [];\n const attributes: IDictionary = {};\n\n attributeDefinitions.forEach(attributeDefinition => {\n const attributePayloadData: IAttributePayloadData = {};\n attributePayloadData.recordId = attributeDefinition.RecordId;\n attributePayloadData.name = attributeDefinition.Name;\n attributePayloadData.dataTypeValue = attributeDefinition.DataTypeValue;\n attributePayloadData.isEnumeration = attributeDefinition.IsEnumeration;\n attributePayloadData.isMandatory = attributeDefinition.IsMandatory;\n switch (attributeDefinition.DataTypeValue) {\n case AccountAttributeDataTypeValue.Integer:\n const defaultIntegerValue = attributeDefinition.DefaultValue && attributeDefinition.DefaultValue.IntegerValue;\n attributePayloadData.lowerBoundValue = attributeDefinition.LowerBound && attributeDefinition.LowerBound.IntegerValue;\n attributePayloadData.upperBoundValue = attributeDefinition.UpperBound && attributeDefinition.UpperBound.IntegerValue;\n if (attributePayloadData.name && defaultIntegerValue) {\n attributePayloadData.defaultValue = String(defaultIntegerValue);\n attributes[attributePayloadData.name] = String(defaultIntegerValue);\n }\n break;\n case AccountAttributeDataTypeValue.Decimal:\n const defaultDecimalValue = attributeDefinition.DefaultValue && attributeDefinition.DefaultValue.DecimalValue;\n attributePayloadData.lowerBoundValue = attributeDefinition.LowerBound && attributeDefinition.LowerBound.DecimalValue;\n attributePayloadData.upperBoundValue = attributeDefinition.UpperBound && attributeDefinition.UpperBound.DecimalValue;\n if (attributePayloadData.name && defaultDecimalValue) {\n attributePayloadData.defaultValue = String(defaultDecimalValue);\n attributes[attributePayloadData.name] = String(defaultDecimalValue);\n }\n break;\n case AccountAttributeDataTypeValue.Text:\n const defaultStringValue = attributeDefinition.DefaultValue && attributeDefinition.DefaultValue.StringValue;\n if (attributePayloadData.name && defaultStringValue) {\n attributePayloadData.defaultValue = defaultStringValue;\n attributes[attributePayloadData.name] = defaultStringValue;\n }\n break;\n case AccountAttributeDataTypeValue.TrueFalse:\n const defaultBooleanValue =\n (attributeDefinition.DefaultValue && attributeDefinition.DefaultValue.BooleanValue) || false;\n if (attributePayloadData.name) {\n attributePayloadData.defaultValue = String(defaultBooleanValue);\n attributes[attributePayloadData.name] = String(defaultBooleanValue);\n }\n break;\n default:\n\n // Do nothing\n }\n this.attributePayloadData.push(attributePayloadData);\n });\n Object.keys(attributes).length > 0 && this.setState({ attributes });\n };\n\n private readonly _getCustomerPhoneAndVatNumber = () => {\n const customer = this.props.accountProfileProps.data.customerInformation.result;\n const phone = (customer && customer.Phone) || '';\n const vatNumber = (customer && customer.VatNumber) || '';\n this.setState({ phone, vatNumber });\n if (this.initialPhone.length === 0) {\n this.initialPhone = phone;\n }\n if (this.initialVatNumber.length === 0) {\n this.initialVatNumber = vatNumber;\n }\n };\n}\n\nexport default AccountProfileAttributes;\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 isDisabled?: boolean;\n}\n\nexport interface IAccountProfileLinks {\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 AccountProfileLinks: React.FC = ({ links, telemetryContent, requestContext, onTextChange }) => {\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: link.isDisabled ? 'ms-account-profile__section-link-disable' : 'ms-account-profile__section-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 AccountProfileLinks;\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 { Customer } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport {\n ArrayExtensions,\n updateCustomerPersonalization,\n updateCustomerPersonalizationInput\n} from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITelemetryContent\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport get from 'lodash/get';\nimport { computed, observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IAccountProfileData } from './account-profile.data';\nimport {\n IAccountProfileProps,\n IEmailAddressSectionHeadingData,\n IHeadingData,\n INameSectionHeadingData\n} from './account-profile.props.autogenerated';\nimport AccountProfileAttributes from './components/account-profile-attributes';\nimport DescriptionComponent from './components/account-profile-description';\nimport LinksComponent, { ILinksData } from './components/account-profile-links';\nimport TextComponent from './components/account-profile-text';\n\nexport interface IAccountPreference {\n accountPreference: INodeProps;\n heading: React.ReactNode;\n buttonWrapper: INodeProps;\n buttonYesText: React.ReactNode;\n buttonNoText: React.ReactNode;\n button: React.ReactNode;\n description: React.ReactNode;\n onUpdateAccountPreference(preferenceType?: string): void;\n}\n\nexport interface IAccountPreferences {\n accountPreferences: INodeProps;\n heading?: React.ReactNode;\n personalization: IAccountPreference;\n extraPreferences?: IAccountPreference[];\n}\n\nexport interface IAccountProfileItem {\n AccountProfileItem: INodeProps;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\nexport interface IAccountCustomerAttributes {\n customerAttributes?: React.ReactNode;\n}\n\nexport interface IAccountProfileViewProps extends IAccountProfileProps {\n AccountProfile: IModuleProps;\n accountProfileWrapper?: INodeProps;\n className: string;\n heading?: React.ReactNode;\n emailSection: IAccountProfileItem;\n nameSection: IAccountProfileItem;\n preferenceSection: IAccountPreferences;\n customerAttributesWrapper?: INodeProps;\n customerAttributesSection?: IAccountCustomerAttributes;\n infoMessageBar?: React.ReactNode;\n}\n\n/**\n *\n * AccountProfile component.\n * @extends {React.Component>}\n */\n@observer\nclass AccountProfile extends React.Component> {\n @observable private isUpdatingPreference: boolean = false;\n\n private readonly telemetryContent?: ITelemetryContent;\n private readonly payLoad: IPayLoad;\n private readonly editAsyncCustomerFeatureName: string = 'Dynamics.AX.Application.RetailEnableAsyncCustomerEditFeature';\n\n private isEditAsyncCustomerFeatureEnabled: boolean = false;\n\n constructor(props: IAccountProfileProps) {\n super(props);\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 shouldComponentUpdate(nextProps: IAccountProfileProps): boolean {\n if (this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { config, resources, data } = this.props;\n const { className, heading, emailAddressSectionHeading, nameSectionHeading, showAttributes, showPhone, showVatNumber } = config;\n\n const { editButtonText, editButtonAriaLabel } = resources;\n const customerInformation = data.customerInformation.result;\n\n this.isEditAsyncCustomerFeatureEnabled =\n data.featureState?.result?.find(feature => feature.Name === this.editAsyncCustomerFeatureName)?.IsEnabled || false;\n\n const invalidAsyncCustomerState: boolean =\n (this.props.context.app?.config?.canRenderAsyncCustomerDataAsUnmodifiable || false) &&\n (customerInformation?.IsAsyncCustomer || false) &&\n !this.isEditAsyncCustomerFeatureEnabled;\n\n // As per the design, phone and vat numbers are part of the profile attributes section\n const shouldRenderAttributes = (showAttributes && showAttributes.length > 0) || showPhone || showVatNumber || false;\n const editLink: ILinksData = {\n linkUrl: {\n destinationUrl: get(this.props, 'context.request.user.editProfileUrl', '')\n },\n linkText: editButtonText,\n ariaLabel: editButtonAriaLabel,\n isDisabled: invalidAsyncCustomerState\n };\n\n const viewProps = {\n ...this.props,\n className,\n AccountProfile: {\n moduleProps: this.props,\n className: classnames('ms-account-profile', config.className)\n },\n infoMessageBar: invalidAsyncCustomerState && (\n \n ),\n accountProfileWrapper: {\n className: classnames('ms-account-profile-wrapper')\n },\n heading: heading && (\n \n ),\n emailSection: this._renderEmailSection(\n classnames('ms-account-profile__section', 'ms-account-profile__section-email'),\n emailAddressSectionHeading as IEmailAddressSectionHeadingData,\n customerInformation && customerInformation.Email\n ),\n nameSection: this._renderNameSection(\n classnames('ms-account-profile__section', 'ms-account-profile__section-name'),\n nameSectionHeading as INameSectionHeadingData,\n this.getDescription(customerInformation),\n Msdyn365.isOboRequest(this.props.context.request) ? undefined : [editLink]\n ),\n preferenceSection: this._renderPreferenceSection(\n classnames('ms-account-profile__section', 'ms-account-profile__section-preferences'),\n invalidAsyncCustomerState,\n customerInformation\n ),\n customerAttributesWrapper: {\n className: classnames('ms-account-profile__attributes-wrapper')\n },\n customerAttributesSection: shouldRenderAttributes && this._renderCustomerAttributes()\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 handleEmailHeadingChange = (event: Msdyn365.ContentEditableEvent) =>\n (this.props.config.emailAddressSectionHeading!.text = event.target.value);\n\n public handleNameHeadingChange = (event: Msdyn365.ContentEditableEvent) =>\n (this.props.config.nameSectionHeading!.text = event.target.value);\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.resources.editButtonText) {\n this.props.resources.editButtonText = event.target.value;\n }\n };\n\n @computed get editProfileUrl(): string {\n return get(this.props, 'context.request.user.editProfileUrl', '');\n }\n\n private getDescription(customerInformation: Customer | undefined): string {\n let description = '';\n if (customerInformation !== undefined) {\n if (customerInformation.FirstName) {\n description += customerInformation.FirstName;\n }\n if (customerInformation.LastName) {\n description += customerInformation.FirstName ? ` ${customerInformation.LastName}` : customerInformation.LastName;\n }\n }\n return description;\n }\n\n private _renderEmailSection(\n className: string,\n heading?: IEmailAddressSectionHeadingData,\n description?: string,\n links?: ILinksData[]\n ): IAccountProfileItem {\n return {\n AccountProfileItem: {\n className\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n ),\n description: description && (\n \n )\n };\n }\n\n private _renderNameSection(\n className: string,\n heading?: INameSectionHeadingData,\n description?: string,\n links?: ILinksData[]\n ): IAccountProfileItem {\n if (!ArrayExtensions.hasElements(links)) {\n return {\n AccountProfileItem: {\n className\n },\n heading: heading && (\n \n ),\n description: description && (\n \n )\n };\n }\n return {\n AccountProfileItem: {\n className\n },\n heading: heading && (\n \n ),\n links: (\n \n ),\n description: description && (\n \n )\n };\n }\n\n private readonly onClickEventHandler = (className: string) => async () => {\n return this._updateAccountPersonalization(className);\n };\n\n private _renderPreferenceSection(\n className: string,\n invalidAsyncCustomerState: boolean,\n customerInformation?: Customer\n ): IAccountPreferences | null {\n const {\n personalizationDescription,\n personalizationEnableButtonAriaLabel,\n webTrackingDescription,\n webTrackingEnableButtonAriaLabel\n } = this.props.resources;\n const { preferencesSectionHeading, personalizationSectionHeading, webTrackingSectionHeading } = this.props.config;\n const { enableDataAnalytics } = this.props.context.request.features;\n const extraPreferences: IAccountPreference[] = [];\n\n if (!customerInformation) {\n this.props.context.telemetry.error('Account profile data is empty, module wont render');\n return null;\n }\n\n // Show browser activity login preference if switch is enabled AND a heading is provided\n enableDataAnalytics &&\n webTrackingSectionHeading &&\n extraPreferences.push(\n this._renderPreference(\n 'web-tracking',\n webTrackingSectionHeading as IHeadingData,\n webTrackingEnableButtonAriaLabel,\n webTrackingDescription,\n customerInformation.OptOutWebActivityTracking || false,\n invalidAsyncCustomerState\n )\n );\n\n return {\n accountPreferences: {\n className\n },\n heading: preferencesSectionHeading && (\n \n ),\n personalization: this._renderPreference(\n 'personalization',\n personalizationSectionHeading as IHeadingData,\n personalizationEnableButtonAriaLabel,\n personalizationDescription,\n customerInformation.OptOutPersonalization || false,\n invalidAsyncCustomerState\n ),\n extraPreferences: extraPreferences || undefined\n };\n }\n\n private readonly _renderPreference = (\n className: string,\n sectionHeading: IHeadingData,\n enableAriaLabel: string,\n description: string,\n isOptOut: boolean,\n disableBtn: boolean\n ) => {\n const { toggleDisableText, toggleEnableText } = this.props.resources;\n const toggleState = isOptOut ? 'disable' : 'enable';\n const onClickHandler = this.onClickEventHandler(className);\n this.payLoad.contentAction.etext = sectionHeading.text;\n const attributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n\n return {\n accountPreference: {\n className: classnames('ms-account-profile__preference', `ms-account-profile__preference-${className}`, {\n 'ms-account-profile__personalization-updating': this.isUpdatingPreference\n })\n },\n heading: sectionHeading && (\n \n ),\n buttonWrapper: {\n className: classnames('ms-account-profile__toggle-wrapper', `ms-account-profile__toggle-${toggleState}`, {\n // Disable the toggle completely if customer is async.\n 'ms-account-profile__toggle-disabled': disableBtn\n })\n },\n buttonYesText: ,\n buttonNoText: ,\n button: (\n \n ),\n description: ,\n onUpdateAccountPreference: async () => this._updateAccountPersonalization(className)\n };\n };\n\n private readonly _updateAccountPersonalization = async (preferenceType?: string) => {\n const customerInformation = this.props.data.customerInformation.result;\n\n if (customerInformation) {\n const {\n telemetry,\n context: { request, actionContext }\n } = this.props;\n\n let isOptOutPersonalization = false;\n let input;\n\n switch (preferenceType) {\n case 'web-tracking':\n isOptOutPersonalization = customerInformation.OptOutWebActivityTracking || false;\n input = new updateCustomerPersonalizationInput(\n customerInformation.AccountNumber,\n !isOptOutPersonalization,\n request.apiSettings,\n preferenceType\n );\n break;\n case undefined:\n case 'personalization':\n default:\n isOptOutPersonalization = customerInformation.OptOutPersonalization || false;\n input = new updateCustomerPersonalizationInput(\n customerInformation.AccountNumber,\n !isOptOutPersonalization,\n request.apiSettings,\n preferenceType\n );\n }\n\n this.isUpdatingPreference = true;\n\n try {\n await updateCustomerPersonalization(input, actionContext);\n } catch (error) {\n if (telemetry) {\n telemetry.exception(error);\n telemetry.debug('Unable to update customer personalization');\n }\n }\n\n this.isUpdatingPreference = false;\n }\n };\n\n private readonly _renderCustomerAttributes = (): React.ReactNode => {\n return ;\n };\n}\n\nexport default AccountProfile;\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 { IAccountPreference, IAccountPreferences, IAccountProfileItem, IAccountProfileViewProps } from './account-profile';\n\nconst AccountPreferencesSection: React.FC = ({ accountPreferences, heading, personalization, extraPreferences }) => {\n return (\n \n {heading}\n \n {extraPreferences &&\n extraPreferences.map((preferenceSecton, index) => {\n return ;\n })}\n \n );\n};\n\nconst AccountPreferenceSection: React.FC = ({\n accountPreference,\n heading,\n description,\n buttonWrapper,\n buttonYesText,\n button,\n buttonNoText\n}) => {\n return (\n \n {heading}\n {description}\n \n {buttonNoText}\n {button}\n {buttonYesText}\n \n \n );\n};\n\nconst AccountProfileSection: React.FC = ({ AccountProfileItem, heading, links, description }) => {\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nconst AccountProfileView: React.FC = props => {\n const {\n AccountProfile,\n infoMessageBar,\n accountProfileWrapper,\n heading,\n emailSection,\n nameSection,\n preferenceSection,\n customerAttributesWrapper,\n customerAttributesSection\n } = props;\n\n return (\n \n {infoMessageBar}\n {accountProfileWrapper && (\n \n {heading}\n \n \n \n \n )}\n {customerAttributesWrapper && {customerAttributesSection}}\n \n );\n};\n\nexport default AccountProfileView;\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 IAccountProfileDescription {\n className: string;\n description: string;\n}\n\n// eslint-disable-next-line no-redeclare\nconst IAccountProfileDescription: React.FC = ({ className, description }) => (\n

{description}

\n);\n\nexport default IAccountProfileDescription;\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 IAccountProfileText {\n className: string;\n text: string;\n}\n\n// eslint-disable-next-line no-redeclare\nconst IAccountProfileText: React.FC = ({ className, text }) => {text};\n\nexport default IAccountProfileText;\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 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 { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IOrganizationUsersTileViewProps } from './organization-users-tile';\n\nconst OrganizationUsersTileView: React.FC = props => {\n const { OrganizationUsersTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default OrganizationUsersTileView;\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 } 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 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 hasActionError: false,\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 this.setState({\n formType: FormType.None,\n isModalOpen: false\n });\n })\n .catch(error => {\n context.telemetry.trace(error);\n this.setState({\n hasActionError: true\n });\n });\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, hasActionError } = 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 hasActionError && (\n \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 Msdyn365, {\n ContentEditableEvent,\n generateImageUrl,\n getCatalogId,\n getUrlSync,\n Image,\n RichTextComponent,\n Text\n} from '@msdyn365-commerce/core';\nimport { MediaLocation, ProductCatalog } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport React, { ReactNode } from 'react';\n\nimport { ICatalogPickerData } from './catalog-picker.data';\nimport { ICatalogPickerProps } from './catalog-picker.props.autogenerated';\n\n/**\n * ICatalogPickerViewProps.\n */\nexport interface ICatalogPickerViewProps extends ICatalogPickerProps {\n catalogPicker: IModuleProps;\n heading: React.ReactNode;\n paragraph: React.ReactNode;\n catalogs: ReactNode;\n}\n\n/**\n * CatalogPicker component.\n * @extends {React.PureComponent>}\n */\nexport class CatalogPicker extends React.PureComponent> {\n private static readonly _moduleClassName = 'ms-catalog-picker';\n\n public constructor(props: ICatalogPickerViewProps) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { heading, paragraph } = this.props.config;\n\n const catalogPickerHeading = heading && (\n \n );\n\n const isCatalogsAvailable: boolean = ArrayExtensions.hasElements(this.props.data.catalogs?.result);\n const catalogPickerParagraph = paragraph && (\n \n );\n const viewProps = {\n ...this.props,\n handleText: this.handleTextChange,\n catalogPicker: {\n moduleProps: this.props,\n className: CatalogPicker._moduleClassName\n },\n heading: catalogPickerHeading,\n paragraph: catalogPickerParagraph,\n catalogs: isCatalogsAvailable ? this._renderCatalogPicker() : ''\n };\n\n return this.props.renderView(viewProps);\n }\n\n /**\n * Handle text change.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleTextChange = (event: ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n /**\n * Handle paragraph change.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleParagraphChange = (event: ContentEditableEvent): void => {\n this.props.config.paragraph = event.target.value;\n };\n\n private _renderCatalogPickerButton(item: ProductCatalog): React.ReactNode {\n const catalogId = item.RecordId;\n const currentCatalogId = getCatalogId(this.props.context.request);\n if (currentCatalogId === catalogId) {\n return
{this.props.resources.currentCatalogText}
;\n }\n let linkToCatalog = '';\n if (Msdyn365.isBrowser) {\n const catalogUrl = getUrlSync('home', this.props.context.actionContext) ?? '';\n const fullUrl = new URL(catalogUrl, window.location.href);\n fullUrl.searchParams.set('catalogid', `${catalogId}`);\n linkToCatalog = fullUrl.href;\n }\n return (\n \n {this.props.resources.changeCatalogButtonText}\n \n );\n }\n\n private _renderCatalogPicker(): React.ReactNode {\n const catalogs = this.props.data.catalogs?.result;\n\n const isBrowser = Msdyn365.isBrowser;\n\n return (\n
\n {catalogs?.map(item => {\n const reactKey = `${JSON.stringify(item)}-${String(isBrowser)}`;\n const image: MediaLocation | undefined = ArrayExtensions.firstOrDefault(item.Images);\n return (\n \n

{item.Name}

\n
\n \n
\n {this._renderCatalogPickerButton(item)}\n
\n
\n
\n );\n })}\n \n );\n }\n}\n\nexport default CatalogPicker;\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 { ICatalogPickerViewProps } from './catalog-picker';\n\n/**\n * ICatalogPickerViewProps.\n * @param props - ICatalogPickerViewProps.\n * @returns - Render Catalog Picker.\n */\nexport const CatalogPickerViewFunctionComponent: React.FC = props => {\n const { catalogPicker } = props;\n return (\n \n {props.heading}\n {props.paragraph}\n {props.catalogs}\n \n );\n};\n\nexport default CatalogPickerViewFunctionComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365 from '@msdyn365-commerce/core';\nimport { ICartlinesViewProps, ICartResources, ICartViewProps, IOrderSummaryErrors } from '@msdyn365-commerce-modules/cart';\nimport { ICartLineItemViewProps } from '@msdyn365-commerce-modules/cart/dist/types/modules/cart/components/cart-line-items-promotion';\nimport { IInvoiceSummaryLines } from '@msdyn365-commerce-modules/invoice-payment-summary';\nimport { IOrderSummaryLines } from '@msdyn365-commerce-modules/order-summary-utilities';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n INodeProps,\n ITelemetryContent,\n Node,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nconst CartView: React.FC = (props: ICartViewProps) => (\n
\n {props.title}\n {props.promotionOptions && _renderPromotions(props.promotionOptions)}\n {props.cart?.hasInvoiceLine || props.multiplePickUpEnabled ? (\n _renderCartLinesGroup(props, props.resources)\n ) : (\n \n {_renderCartlines(\n props.cartlines,\n props.resources,\n props.storeSelector,\n props.backToShoppingButton,\n props.waitingComponent,\n props.cartLoadingStatus,\n props.cartDataResult,\n props.telemetryContent,\n props.multiplePickUpEnabled,\n props.context.actionContext.requestContext.channel?.EmailDeliveryModeCode\n )}\n \n )}\n {props.orderSummaryHeading && (\n \n {props.orderSummaryHeading}\n {props.cart?.hasInvoiceLine\n ? _renderInvoiceSummarylines(props.invoiceSummaryLineitems, props.OrderSummaryItems, props)\n : _renderOrderSummarylines(props.orderSummaryLineitems, props.OrderSummaryItems, props)}\n {_renderErrorBlock(props.OrderSummaryErrors)}\n {props.checkoutAsSignInUserButton}\n {props.checkoutAsGuestButton}\n {props.expressCheckoutButton && ArrayExtensions.hasElements(props.expressCheckoutButton) ? (\n {props.expressCheckoutButton}\n ) : null}\n {props.backToShoppingButton}\n {props.createTemplateFromCartButton}\n \n )}\n {props.storeSelector}\n
\n);\n\nconst _renderPromotions = (promotions: ICartLineItemViewProps): JSX.Element | undefined => {\n return (\n <>\n \n {promotions.promotionMessage}\n {promotions.promotionSeeAllLink}\n {promotions.promotionDialog}\n \n \n );\n};\n\nconst _renderCartlines = (\n cartLines: ICartlinesViewProps[] | undefined,\n resources: ICartResources,\n storeSelector: React.ReactNode | undefined,\n backToShoppingButton: React.ReactNode,\n waitingComponent: React.ReactNode,\n cartLoadingStatus: string,\n cartDataResult: boolean,\n telemetryContent?: ITelemetryContent,\n mulitplePickUp?: boolean,\n emailDeliveryModeCode?: string\n): JSX.Element[] | JSX.Element => {\n const { emptyCartText } = resources;\n\n if (cartLoadingStatus) {\n return <>{cartLoadingStatus};\n }\n if (cartLines) {\n return cartLines.map((cartLine, index) => {\n return (\n
\n {cartLine.cartline}\n {mulitplePickUp ? null : _renderBOPISBlock(cartLine, resources, storeSelector, telemetryContent, emailDeliveryModeCode)}\n {mulitplePickUp ? (\n \n {_renderGroupBOPISBlock(cartLine, resources, storeSelector, telemetryContent, emailDeliveryModeCode)}\n {cartLine.addToOrderTemplate}\n {cartLine.addToWishlist}\n {cartLine.remove}\n \n ) : cartLine.addToOrderTemplate ? (\n \n {cartLine.addToOrderTemplate}\n {cartLine.addToWishlist}\n {cartLine.remove}\n \n ) : (\n <>\n {cartLine.addToWishlist}\n {cartLine.remove}\n \n )}\n
\n );\n });\n }\n return cartDataResult ? (\n
\n

{emptyCartText}

\n {backToShoppingButton}\n
\n ) : (\n <>{waitingComponent}\n );\n};\n\n/**\n * On Toggle function.\n * @param cartLine -Cartline.\n * @param isBopisSelected -Boolean.\n * @returns Set state of button.\n */\nconst onToggleBopisHandler = (cartLine: ICartlinesViewProps, isBopisSelected: boolean) => () => {\n cartLine.pickUpInStore && cartLine.pickUpInStore.callbacks.toggleBopis(!isBopisSelected);\n};\n\n/**\n * On change store function.\n * @param cartLine -CartLine items prop.\n * @returns Set state of button.\n */\nconst onChangeStoreHandler = (cartLine: ICartlinesViewProps) => () => {\n cartLine.pickUpInStore && cartLine.pickUpInStore.callbacks.toggleBopis(true);\n};\n\nconst _renderBOPISBlock = (\n cartLine: ICartlinesViewProps,\n resources: ICartResources,\n storeSelector: React.ReactNode | undefined,\n telemetryContent?: ITelemetryContent,\n emailDeliveryModeCode?: string\n): JSX.Element | null => {\n // If it is electronic item cart line, then return null for BOPISBlock.\n if (!cartLine.pickUpInStore || !storeSelector || cartLine.data?.cartline.DeliveryMode === emailDeliveryModeCode) {\n return null;\n }\n\n const {\n shipInsteadDisplayText,\n shipToAddressDisplayText,\n pickItUpDisplayText,\n pickUpAtStoreWithLocationText,\n changeStoreDisplayText\n } = resources;\n\n const isBopisSelected = cartLine.pickUpInStore.isBopisSelected;\n\n const payLoad = getPayloadObject('click', telemetryContent!, TelemetryConstant.PickupInStore);\n const puckUpinStoreAttribute = getTelemetryAttributes(telemetryContent!, payLoad);\n\n return (\n \n
\n {isBopisSelected ? (\n {pickUpAtStoreWithLocationText}\n ) : (\n {shipToAddressDisplayText}\n )}\n
\n {isBopisSelected && (\n
\n {cartLine.pickUpInStore.orgUnitName}\n \n
\n )}\n \n {isBopisSelected ? shipInsteadDisplayText : pickItUpDisplayText}\n \n
\n );\n};\n\nconst _renderErrorBlock = (errorData: IOrderSummaryErrors | undefined): JSX.Element | null => {\n if (!errorData || errorData.errors.length === 0) {\n return null;\n }\n return (\n \n {errorData.header}\n {errorData.errors}\n \n );\n};\n\nconst _renderOrderSummarylines = (\n orderSummaryLines: IOrderSummaryLines | undefined,\n OrderSummaryItems: INodeProps,\n props: ICartViewProps\n): JSX.Element | null => {\n if (!orderSummaryLines) {\n return null;\n }\n return (\n \n {props.promoCode}\n {orderSummaryLines.subtotal}\n {orderSummaryLines.shipping}\n {orderSummaryLines.otherCharge}\n {orderSummaryLines.tax}\n {orderSummaryLines.totalDiscounts ? orderSummaryLines.totalDiscounts : null}\n {orderSummaryLines.orderTotal}\n \n );\n};\n\nconst _renderInvoiceSummarylines = (\n invoiceSummaryLines: IInvoiceSummaryLines | undefined,\n OrderSummaryItems: INodeProps,\n props: ICartViewProps\n): JSX.Element | null => {\n if (!invoiceSummaryLines) {\n props.context.telemetry.error('InvoiceSummary content is empty, module wont render');\n return null;\n }\n return (\n \n {invoiceSummaryLines.invoices}\n {invoiceSummaryLines.giftCard}\n {invoiceSummaryLines.loyalty}\n {invoiceSummaryLines.orderTotal}\n \n );\n};\n\nconst _renderCartLinesGroup = (props: ICartViewProps, resources: ICartResources): JSX.Element | undefined => {\n if (props.cartLinesGroup && props.cartLinesGroup.length > 0) {\n return (\n
\n {props.cartLinesGroup.map(cartlines => {\n return (\n
\n {_renderCartLinesGroupHeader(\n cartlines[0],\n props.storeSelector,\n resources,\n _countItems(cartlines),\n props.context.actionContext.requestContext.channel?.EmailDeliveryModeCode\n )}\n {_renderCartlines(\n cartlines,\n props.resources,\n props.storeSelector,\n props.backToShoppingButton,\n props.waitingComponent,\n props.cartLoadingStatus,\n props.cartDataResult,\n props.telemetryContent,\n props.multiplePickUpEnabled,\n props.context.actionContext.requestContext.channel?.EmailDeliveryModeCode\n )}\n
\n );\n })}\n
\n );\n }\n return props.cartDataResult ? (\n
\n
\n

{props.resources.emptyCartText}

\n {props.backToShoppingButton}\n
\n
\n ) : (\n <>{props.waitingComponent}\n );\n};\nconst _renderCartLinesGroupHeader = (\n cartLine: ICartlinesViewProps,\n storeSelector: React.ReactNode | undefined,\n resources: ICartResources,\n count: number,\n emailDeliveryModeCode?: string\n) => {\n const isBopisSelected = cartLine.pickUpInStore?.isBopisSelected;\n const { pickUpText, shippingText, emailshippingText, payInvoicesDisplayText } = resources;\n let groupTitle: string;\n\n groupTitle = isBopisSelected ? pickUpText : shippingText;\n if (cartLine.data && cartLine.data.cartline.IsInvoiceLine) {\n groupTitle = payInvoicesDisplayText;\n } else if (!StringExtensions.isNullOrEmpty(emailDeliveryModeCode)) {\n groupTitle = cartLine.data && cartLine.data.cartline.DeliveryMode === emailDeliveryModeCode ? emailshippingText : groupTitle;\n }\n\n return (\n <>\n
\n

\n

{groupTitle}

\n {_renderCartLinesGroupTitle(cartLine, resources, count)}\n
\n \n );\n};\n\nconst _renderGroupBOPISBlock = (\n cartLine: ICartlinesViewProps,\n resources: ICartResources,\n storeSelector: React.ReactNode | undefined,\n telemetryContent?: ITelemetryContent,\n emailDeliveryModeCode?: string\n): JSX.Element | null => {\n // If it is electronic item cart line, then return null for GroupBOPISBlock.\n if (!cartLine.pickUpInStore || !storeSelector || cartLine.data?.cartline.DeliveryMode === emailDeliveryModeCode) {\n return null;\n }\n\n const { changeStoreDisplayText, shipInsteadDisplayText, pickItUpDisplayText } = resources;\n\n const isBopisSelected = cartLine.pickUpInStore.isBopisSelected;\n\n const payLoad = getPayloadObject('click', telemetryContent!, TelemetryConstant.PickupInStore);\n const puckUpinStoreAttribute = getTelemetryAttributes(telemetryContent!, payLoad);\n\n return (\n <>\n {isBopisSelected ? (\n \n ) : null}\n \n {isBopisSelected ? shipInsteadDisplayText : pickItUpDisplayText}\n \n \n );\n};\n\nconst _countItems = (cartLine: ICartlinesViewProps[]): number => {\n let countItem = 0;\n countItem = cartLine.reduce((count, item) => {\n return count + (item.data?.cartline.Quantity || 0);\n }, 0);\n return countItem;\n};\n\nconst _renderCartLinesGroupTitle = (cartLine: ICartlinesViewProps, resources: ICartResources, count: number) => {\n const isBopisSelected = cartLine.pickUpInStore?.isBopisSelected;\n const { itemLabel, itemsLabel } = resources;\n const suffix = count > 1 ? itemsLabel : itemLabel;\n return (\n <>\n \n {isBopisSelected ? (\n

\n {cartLine.pickUpInStore?.deliveryOption}\n {', '}\n {cartLine.pickUpInStore?.orgUnitName}\n

\n ) : null}\n

\n ({count}\n {` `}\n {suffix})\n

\n
\n \n );\n};\n\nexport default CartView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n IGroup,\n IGroupDelivery,\n IGroups,\n IHeader,\n IList,\n IOrderHistoryViewProps,\n IOrderInformation,\n ISalesOrder\n} from '@msdyn365-commerce-modules/order-management';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport const OrderHistoryOrderInfomation: React.FC = ({\n orderInformationProps,\n salesId,\n receiptId,\n channelName,\n createdDate,\n count,\n amount,\n channelReferenceId\n}) => (\n \n {channelName}\n {salesId}\n {receiptId}\n {createdDate}\n {count}\n {amount}\n {channelReferenceId}\n \n);\n\nexport const OrderHistoryGroupDelivery: React.FC = ({\n deliveryProps,\n heading,\n count,\n processing,\n address,\n trackingInfo\n}) => (\n \n {heading}\n {count}\n {processing}\n {address}\n {trackingInfo}\n \n);\n\nexport const OrderHistoryGroup: React.FC = ({ groupProps, delivery, salesLinesProps, salesLines }) => (\n \n {salesLines && (\n \n {salesLines.map(salesLine => (\n {salesLine.salesLine}\n ))}\n \n )}\n \n);\n\nexport const OrderHistoryGroups: React.FC = ({ groupsProps, groups }) => (\n \n {groups.map((group, index) => (\n \n ))}\n \n);\n\nexport const OrderHistoryHeader: React.FC = ({ headerProps, heading, orderCountLabel, extraActions }) => (\n \n {heading}\n {orderCountLabel}\n {extraActions}\n \n);\n\nexport const OrderHistorySalesOder: React.FC = ({\n salesOrderProps,\n orderInfomation,\n groups,\n orderDetailsLink,\n expandProductsButton\n}) => (\n \n {orderInfomation && }\n {groups && }\n {expandProductsButton}\n {orderDetailsLink}\n \n);\n\nexport const OrderHistoryList: React.FC = ({ listProps, salesOrders }) => (\n \n {salesOrders && salesOrders.map((salesOrder, index) => )}\n \n);\n\nconst OrderHistoryView: React.FC = ({\n orderHistoryProps,\n header,\n alert,\n loading,\n emptyMessage,\n backToShoppingLink,\n list,\n table,\n moreButton\n}) => (\n \n {header && }\n {loading}\n {alert && (\n <>\n {alert}\n {backToShoppingLink}\n \n )}\n {emptyMessage && (\n \n {emptyMessage}\n {backToShoppingLink}\n \n )}\n {list && }\n {table}\n {moreButton && moreButton}\n \n);\n\nexport default OrderHistoryView;\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 {\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITelemetryContent,\n onTelemetryClick\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IFooterItemConfig, IFooterItemProps, IHeadingData, ILinkData } from './footer-item.props.autogenerated';\n\nexport interface IFooterViewProps extends IFooterItemProps {\n heading: React.ReactNode;\n image: React.ReactNode;\n text: React.ReactNode;\n linkText: React.ReactNode;\n className?: string;\n FooterItem: IModuleProps;\n HeadingContainer: INodeProps;\n ItemContainer: INodeProps;\n Link: INodeProps;\n EditableLink: React.ReactNode;\n}\n\n/**\n *\n * FooterItem component.\n * @extends {React.PureComponent>}\n */\nexport class FooterItem extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n private attributes: Msdyn365.IDictionary | undefined;\n\n constructor(props: IFooterItemProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n // Construct telemetry attribute to render\n this.payLoad = getPayloadObject('click', this.telemetryContent, '', '');\n }\n\n public render(): JSX.Element {\n const { heading, image, link, text } = this.props.config;\n const footerItemClassName = classnames('ms-footer__item', this.props.config.className);\n const linkText = link && link.linkText ? link.linkText : '';\n this.payLoad.contentAction.etext = linkText;\n this.attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n const viewProps: IFooterViewProps = {\n ...this.props,\n heading: this._createHeading(heading!),\n image: this._createImageMarkup(image!),\n text: this._createText(text!),\n linkText: this._createLinkText(link!),\n EditableLink: this._createLink(link!),\n\n FooterItem: {\n moduleProps: this.props,\n className: footerItemClassName\n },\n\n HeadingContainer: {\n className: 'ms-footer__heading'\n },\n\n ItemContainer: {\n className: 'ms-footer__link__container'\n },\n\n // @ts-expect-error\n Link: link &&\n link.linkUrl &&\n link.linkUrl.destinationUrl && {\n tag: 'a',\n role: 'link',\n className: 'ms-footer__link',\n href: link.linkUrl.destinationUrl,\n title: linkText,\n 'aria-label': link.ariaLabel,\n target: link.openInNewTab ? '_blank' : undefined,\n onClick: onTelemetryClick(this.telemetryContent, this.payLoad, linkText),\n ...this.attributes\n },\n className: footerItemClassName\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 handleTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.text = event.target.value);\n\n public handleLinkTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.link!.linkText = event.target.value);\n\n private _createLink(link: ILinkData): React.ReactNode | null {\n if (link) {\n const linkText = link.linkText ? link.linkText : '';\n\n // TODO: Update the inner tag in the anchor link to span\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-footer__link',\n linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: this.attributes!,\n onClick: onTelemetryClick(this.telemetryContent, this.payLoad, linkText)\n };\n return (\n \n );\n }\n return null;\n }\n\n private _createLinkText(link: ILinkData): React.ReactNode | null {\n if (!link || !link.linkText) {\n return null;\n }\n\n return {link.linkText};\n }\n\n private _createHeading(heading: IHeadingData): React.ReactNode | null {\n if (!heading || !heading.text || heading.text.length === 0) {\n return null;\n }\n\n return (\n \n );\n }\n\n private _createText(text: string): React.ReactNode | null {\n if (!text) {\n return null;\n }\n return (\n \n );\n }\n\n private _createImageMarkup(item: Msdyn365.IImageData, ariaHiddenAttr?: boolean): React.ReactNode | null {\n if (!item || !item.src || item.src.length === 0) {\n return null;\n }\n\n const defaultImageSettings: Msdyn365.IImageSettings = {\n viewports: {\n xs: { q: 'w=24&h=24&m=6', w: 0, h: 0 },\n lg: { q: 'w=24&h=24&m=6', w: 0, h: 0 }\n },\n lazyload: true\n };\n return (\n \n );\n }\n}\n\nexport default FooterItem;\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 { IFooterViewProps } from './footer-item';\n\n/**\n *\n * FooterItemView component.\n * @extends {React.PureComponent}\n */\nexport class FooterItemView extends React.PureComponent {\n public render(): JSX.Element | null {\n const { FooterItem } = this.props;\n return {this._renderElement(this.props)};\n }\n\n private _renderElement(props: IFooterViewProps): React.ReactNode | null {\n const { heading, HeadingContainer, Link, linkText, image, text, EditableLink } = props;\n if (heading) {\n return {heading} ;\n } else if (Link && image) {\n return (\n \n {linkText}\n {image}\n \n );\n } else if (Link) {\n return EditableLink;\n }\n return (\n <>\n {text}\n {image}\n \n );\n }\n}\n\nexport default FooterItemView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { Customer } from '@msdyn365-commerce/retail-proxy';\nimport { Button, ITelemetryContent, getPayloadObject, getTelemetryAttributes } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport classnames from 'classnames';\n\n/**\n * Class names used in component.\n */\nconst componentClassName = 'ms-order-history-with-search-and-filters-organization-wide-selector';\nconst buttonClassName = `${componentClassName}__button`;\nconst buttonActiveClassName = `${componentClassName}__active-button`;\nconst buttonInactiveClassName = `${componentClassName}__inactive-button`;\n\n/**\n * IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorResources interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorResources {\n currentUserOptionLabel: string;\n currentUserOptionAriaLabel?: string;\n organizationWideOptionLabel: string;\n organizationWideOptionAriaLabel?: string;\n}\n\n/**\n * OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState interface.\n */\nexport enum OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState {\n CurrentUser,\n OrganizationWide\n}\n\n/**\n * IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorData interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorData {\n customer: Customer;\n}\n\n/**\n * IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorProps interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorProps\n extends IComponentProps {\n className?: string;\n resources: IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorResources;\n currentSelectorState: OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState;\n telemetryContent?: ITelemetryContent;\n onChange(state: OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState): void;\n}\n\n/**\n * OrderHistoryWithSearchAndFiltersOrganizationWideSelector component.\n * @param props - Configuration of the component.\n * @returns React node.\n */\nconst OrderHistoryWithSearchAndFiltersOrganizationWideSelectorFunctionalComponent: React.FC = (\n props: IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorProps\n) => {\n // Current version doesn't include functionality for non b2b users or non-admin b2b users.\n if (!props.data.customer.IsB2bAdmin) {\n return
;\n }\n\n const [selectorState, setSelectorState] = React.useState(props.currentSelectorState);\n\n const onClickHandler = (newSelectorState: OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState) => {\n setSelectorState(newSelectorState);\n props.onChange(newSelectorState);\n };\n\n // define telemetry attributes\n const currentUserOrderHistoryAttributes = getTelemetryAttributes(\n props.telemetryContent!,\n getPayloadObject('click', props.telemetryContent!, props.resources?.currentUserOptionLabel ?? 'Current user order history')\n );\n const orgWideOrderHistoryAttributes = getTelemetryAttributes(\n props.telemetryContent!,\n getPayloadObject('click', props.telemetryContent!, props.resources?.currentUserOptionLabel ?? 'Org wide order history')\n );\n\n return (\n
\n onClickHandler(OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState.CurrentUser)}\n {...currentUserOrderHistoryAttributes}\n >\n {props.resources?.currentUserOptionLabel}\n \n onClickHandler(OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState.OrganizationWide)}\n {...orgWideOrderHistoryAttributes}\n >\n {props.resources?.organizationWideOptionLabel}\n \n
\n );\n};\n\n/**\n * OrderHistoryWithSearchAndFiltersOrganizationWideSelector component.\n */\nexport const OrderHistoryWithSearchAndFiltersOrganizationWideSelectorComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorProps\n>('OrderHistoryWithSearchAndFiltersOrganizationWideSelectorComponent', {\n component: OrderHistoryWithSearchAndFiltersOrganizationWideSelectorFunctionalComponent\n});\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IImageSettings, Image } from '@msdyn365-commerce/core';\nimport { addThrottledEvent, Drawer, IModuleProps, INodeProps, KeyCodes, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { computed, observable } from 'mobx';\nimport React from 'react';\n\nimport { ISitePickerConfig, ISitePickerProps } from './site-picker.props.autogenerated';\n\nexport interface ISitePickerViewProps extends ISitePickerProps {\n SitePicker: IModuleProps;\n SitePickerMenu: INodeProps;\n SitePickerMenuSpan: INodeProps;\n SitePickerMenuList: INodeProps;\n SitePickerMenuListItem: INodeProps;\n SitePickerMenuListItemArray: React.ReactNode[] | undefined;\n siteOptionsState: boolean;\n SitePickerMobileContainer: INodeProps;\n isMobileView: boolean;\n renderSiteOptions(): void;\n resetSiteOptionsState(): void;\n}\n\nexport type GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\ninterface ISitePickerState {\n expandSiteOptions: boolean;\n isMobile: boolean;\n}\n\n/**\n *\n * SitePicker component.\n * @extends {React.PureComponent>}\n */\nclass SitePicker extends React.PureComponent, ISitePickerState> {\n private readonly _cookieName: string = '_msdyn365___site_';\n\n private readonly _cookieExpirationInSeconds: number = 5_184_000;\n\n private readonly _sitePickerMenuNode: React.RefObject;\n\n private readonly _sitePickerMenuButton: React.RefObject;\n\n private resizeThrottledEventHandler?: (event: Event) => void;\n\n @observable\n private viewport: GridSize;\n\n public constructor(props: ISitePickerViewProps) {\n super(props);\n this._handleChange = this._handleChange.bind(this);\n this._sitePickerMenuNode = React.createRef();\n this._sitePickerMenuButton = React.createRef();\n this._renderSiteOptions = this._renderSiteOptions.bind(this);\n this._resetSiteOptionsState = this._resetSiteOptionsState.bind(this);\n this._escFunction = this._escFunction.bind(this);\n this._handleOutsideClick = this._handleOutsideClick.bind(this);\n this._updateViewport = this._updateViewport.bind(this);\n this.viewport =\n props.context.request && props.context.request.device && props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\n this.state = {\n expandSiteOptions: false,\n isMobile: this.isMobile\n };\n }\n\n @computed get isMobile(): boolean {\n return this.viewport === 'xs' || this.viewport === 'sm';\n }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser) {\n document?.addEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\n document?.body?.addEventListener('mousedown', this._handleOutsideClick);\n this.resizeThrottledEventHandler = window && addThrottledEvent(window, 'resize', this._updateViewport as EventListener);\n this._updateViewport();\n }\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser) {\n document?.removeEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\n document?.body?.removeEventListener('mousedown', this._handleOutsideClick, false);\n window && window.removeEventListener('resize', this.resizeThrottledEventHandler!, false);\n }\n }\n\n public render(): JSX.Element | null {\n const viewProps: ISitePickerViewProps = {\n ...(this.props as ISitePickerProps),\n SitePicker: {\n moduleProps: this.props,\n className: classnames('ms-site-picker', this.props.config.className, this.state.isMobile ? 'mobile-view' : 'desktop-view'),\n tag: 'div'\n },\n SitePickerMenu: {\n tag: 'button' as NodeTag,\n className: 'ms-site-picker__button',\n 'aria-label': this.props.config.heading?.text,\n 'aria-expanded': this.state.expandSiteOptions,\n onClick: this.props,\n ref: this._sitePickerMenuButton\n },\n SitePickerMenuSpan: {\n className: 'ms-site-picker__span',\n tag: 'span'\n },\n SitePickerMenuList: {\n className: 'ms-site-picker__list',\n role: 'menu',\n tag: 'ul',\n ref: this._sitePickerMenuNode\n },\n SitePickerMenuListItem: {\n className: 'ms-site-picker__list__item',\n role: 'presentation',\n tag: 'li'\n },\n SitePickerMobileContainer: {\n tag: Drawer,\n className: 'ms-site-picker__drawer',\n toggleButtonText: this.props.config.heading?.text,\n openGlyph: 'ms-site-picker__drawer-open',\n closeGlyph: 'ms-site-picker__drawer-close',\n glyphPlacement: 'end'\n },\n isMobileView: this.state.isMobile,\n SitePickerMenuListItemArray: this._renderSitePickerImage(),\n renderSiteOptions: this._renderSiteOptions,\n resetSiteOptionsState: this._resetSiteOptionsState,\n siteOptionsState: this.state.expandSiteOptions\n };\n return this.props.renderView(viewProps);\n }\n\n private _renderSiteOptions(): void {\n const expandSiteOptionsState = this.state.expandSiteOptions;\n this.setState({\n expandSiteOptions: !expandSiteOptionsState\n });\n }\n\n private _resetSiteOptionsState(): void {\n this.setState({\n expandSiteOptions: false\n });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private readonly _escFunction = (event: any) => {\n const key = event.keyCode;\n if (this.state.expandSiteOptions) {\n switch (key) {\n case KeyCodes.Escape: {\n setTimeout(() => {\n const nextFocus = document && document.activeElement;\n if (\n this._sitePickerMenuButton?.current?.contains(nextFocus) ||\n this._sitePickerMenuNode?.current?.contains(nextFocus)\n ) {\n this._resetSiteOptionsState();\n this._sitePickerMenuButton?.current?.focus();\n }\n }, 50);\n break;\n }\n case KeyCodes.Tab: {\n setTimeout(() => {\n const nextFocus = document && document.activeElement;\n if (\n !this._sitePickerMenuButton?.current?.contains(nextFocus) &&\n !this._sitePickerMenuNode?.current?.contains(nextFocus)\n ) {\n this._resetSiteOptionsState();\n }\n }, 50);\n break;\n }\n default:\n return;\n }\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private readonly _handleOutsideClick = (event: any) => {\n if (\n (this._sitePickerMenuButton.current?.contains(event.target) && this.state.expandSiteOptions) ||\n (this._sitePickerMenuNode.current?.contains(event.target) && this.state.expandSiteOptions)\n ) {\n return;\n }\n this._resetSiteOptionsState();\n };\n\n private _handleChange(e: React.MouseEvent): void {\n e.preventDefault();\n if (e.currentTarget.href && e.currentTarget.href.length > 0 && window) {\n if (this.props.context.request.cookies.isConsentGiven()) {\n const cookieConfig = { maxAge: this._cookieExpirationInSeconds };\n this.props.context.request.cookies.set(this._cookieName, e.currentTarget.href, cookieConfig);\n }\n window.location.assign(e.currentTarget.href);\n }\n }\n\n private _renderSitePickerImage(): React.ReactNode[] | undefined {\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=50&h=25&m=6', w: 0, h: 0 },\n sm: { q: 'w=50&h=25&m=6', w: 0, h: 0 },\n md: { q: 'w=40&h=20&m=6', w: 0, h: 0 },\n lg: { q: 'w=40&h=20&m=6', w: 0, h: 0 },\n xl: { q: 'w=40&h=20&m=6', w: 0, h: 0 }\n },\n lazyload: true\n };\n const siteOptions = this.props.config.siteOptions && this.props.config.siteOptions;\n return (\n siteOptions &&\n siteOptions.map((item, index) => {\n const image = item?.siteImage;\n const imageProps = {\n gridSettings: this.props.context.request.gridSettings!,\n imageSettings: image?.imageSettings?.viewports ? image.imageSettings : defaultImageSettings\n };\n return (\n \n {item?.siteName}\n \n \n );\n })\n );\n }\n\n private _updateViewport(): void {\n this.viewport = this._getViewport();\n this.setState({ isMobile: this.isMobile });\n }\n\n private _getViewport(): GridSize {\n const { context } = this.props;\n if (context.request && context.request.device && context.request.device.Type === 'Mobile') {\n return 'xs';\n }\n\n if (typeof window !== undefined && 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 return 'xs';\n }\n}\n\nexport default SitePicker;\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 { ISitePickerViewProps } from './site-picker';\n\nexport default (props: ISitePickerViewProps) => {\n return <>{_renderSitePicker(props)};\n};\n\nconst _renderDesktopView = (props: ISitePickerViewProps) => {\n const { SitePickerMenu, SitePickerMenuSpan } = props;\n return (\n <>\n \n {props.config.heading?.text}\n \n \n {props.siteOptionsState ? _renderSiteOptionsList(props) : null}\n \n );\n};\n\nconst _renderSiteOptionsList = (props: ISitePickerViewProps): React.ReactNode => {\n const { SitePickerMenuList, SitePickerMenuListItem, SitePickerMenuListItemArray } = props;\n const options = SitePickerMenuListItemArray!.map((item, index) => {\n return (\n \n {item}\n \n );\n });\n return (\n \n {options}\n \n );\n};\n\nconst _renderMobileView = (props: ISitePickerViewProps): React.ReactNode => {\n const { SitePickerMobileContainer } = props;\n return (\n \n
\n {props.SitePickerMenuListItemArray?.map((item, index) => {\n return
{item}
;\n })}\n
\n
\n );\n};\n\nconst _renderSitePicker = (props: ISitePickerViewProps): React.ReactNode => {\n const { isMobileView, SitePicker } = props;\n return {isMobileView ? _renderMobileView(props) : _renderDesktopView(props)};\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { ISocialShareConfig, ISocialShareProps, orientation } from './social-share.props.autogenerated';\n\nexport interface ISocialShareViewProps extends ISocialShareProps {\n isConsentGiven: boolean;\n SocialShareItemElements: React.ReactNode[];\n SocialShare: IModuleProps;\n SocialShareList: INodeProps;\n SocialShareItem: INodeProps;\n SocialShareItemCustomization: INodeProps;\n}\n\n/**\n *\n * SocialShare component.\n * @extends {React.PureComponent>}\n */\nclass SocialShare extends React.PureComponent> {\n constructor(props: ISocialShareProps) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { slots } = this.props;\n\n if (!slots || !ArrayExtensions.hasElements(slots.socialShareItems)) {\n this.props.context.telemetry.error('No social media is enable for sharing, module wont render');\n return null;\n }\n\n const isConsentGiven =\n this.props.context.request &&\n this.props.context.request.cookies &&\n this.props.context.request.cookies.isConsentGiven &&\n this.props.context.request.cookies.isConsentGiven();\n\n if (!isConsentGiven && !this.props.context.request.params.isEditor) {\n return null;\n }\n\n const viewprops = {\n ...this.props,\n SocialShare: {\n moduleProps: this.props,\n className: classnames('ms-social-share', this.props.config.className)\n },\n SocialShareList: {\n 'data-title': this.props.config.caption,\n className: `ms-social-share-ul ${this.props.config.caption && 'caption'} ${\n this.props.config.orientation === orientation.vertical ? 'vertical' : ''\n }`,\n tag: 'ul',\n role: 'group'\n },\n SocialShareItem: {\n className: 'ms-social-share-li',\n tag: 'li',\n tabIndex: '0',\n role: 'link'\n },\n SocialShareItemElements: slots && slots.socialShareItems.length > 0 && slots.socialShareItems\n };\n\n return this.props.renderView(viewprops) as React.ReactElement;\n }\n}\n\nexport default SocialShare;\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 { ISocialShareViewProps } from './social-share';\n\nexport const SocialShareView: React.FC = props => {\n const { SocialShareList, SocialShareItemElements, SocialShareItem, SocialShare } = props;\n if (SocialShareItemElements.length === 0) {\n props.context.telemetry.error('Social media list is empty, module wont render');\n return null;\n }\n return (\n \n \n {SocialShareItemElements.map((SocialShareElement: ReactNode, index: number) => {\n return (\n \n {SocialShareElement}\n \n );\n })}\n \n \n );\n};\n\nexport default SocialShareView;\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 {errorMessage?.map((error: React.ReactNode, index: number) => {\n return {error};\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 { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICheckoutCustomerAccountPaymentViewProps } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-customer-account-payment/checkout-customer-account-payment';\nimport { IAccountPaymentEditViewForm } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-customer-account-payment/components/get-account-payment-form-edit-mode';\nimport { IAccountPaymentSummaryViewForm } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-customer-account-payment/components/get-account-payment-form-summary-mode';\n\nexport const SummaryForm: React.FC = ({\n formProps,\n label,\n addPaymentButton,\n appliedLine,\n bottomBorder,\n paymentAmountInput\n}) => (\n \n <>\n {label}\n {paymentAmountInput}\n {addPaymentButton}\n {appliedLine}\n {bottomBorder}\n \n \n);\n\nexport const EditForm: React.FC = ({\n formProps,\n inputLabel,\n inputAmount,\n addPaymentButton,\n customerName,\n customerAccountNumber,\n customerSince,\n accountCredit,\n alert,\n accountDetails,\n appliedLine,\n bottomBorder\n}) => (\n \n <>\n {customerName}\n {customerAccountNumber}\n {customerSince}\n {accountCredit}\n {accountDetails}\n {inputLabel}\n {alert}\n {inputAmount}\n {addPaymentButton}\n {appliedLine}\n {bottomBorder}\n \n \n);\n\nconst CheckoutCustomerAccountView: React.FC = props => {\n const { checkoutCustomerAccount, checkoutErrorRef, summaryView, editView, moduleState, alert } = props;\n return (\n \n {alert}\n {moduleState.isReady && summaryView && }\n {!moduleState.isReady && editView && }\n \n );\n};\n\nexport default CheckoutCustomerAccountView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IImageSettings, Image } from '@msdyn365-commerce/core';\nimport {\n IReportReviewModalViewProps,\n IReviewCardViewProps,\n IReviewsListData,\n IReviewsListResources,\n IReviewsListState,\n IReviewsListViewProps\n} from '@msdyn365-commerce-modules/ratings-reviews';\nimport { ArrayExtensions, generateImageUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IReviewsListProps } from '../definition-extensions/reviews-list.ext.props.autogenerated';\n\n/**\n * Build Review Card.\n * @param props - Review Card ViewProps.\n * @param resources - Resource Strings.\n * @param isUserReview - User review flag.\n * @returns JSX Element.\n */\nconst buildReviewCard = (props: IReviewCardViewProps, resources: IReviewsListResources, isUserReview: boolean) => {\n return (\n \n \n
\n {props.rating}\n {props.date}\n
\n {props.name}\n
\n \n \n {props.reviewTitle}\n {props.reviewText}\n \n \n {props.responseName}\n {props.responseDate}\n {props.responseText}\n \n \n {isUserReview ? undefined :

{resources.wasReviewHelpfulText}

}\n {props.like}\n {props.dislike}\n {props.edit}\n
\n
\n
\n );\n};\n\n/**\n * Render Product Image.\n * @param props - WriteReview ViewProps.\n * @returns JSX Element.\n */\nconst renderProductImage = (props: IReviewsListViewProps & IReviewsListProps): JSX.Element => {\n const primaryImageSource = props.data.product.result?.PrimaryImageUrl;\n const imageUrl = generateImageUrl(primaryImageSource, props.context.request.apiSettings);\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=111&h=111&m=6', w: 111, h: 111 },\n sm: { q: 'w=130&h=130&m=6', w: 130, h: 130 },\n md: { q: 'w=130&h=130&m=6', w: 130, h: 130 },\n lg: { q: 'w=130&h=130&m=6', w: 130, h: 130 },\n xl: { q: 'w=130&h=130&m=6', w: 130, h: 130 }\n },\n lazyload: true,\n cropFocalRegion: true\n };\n\n return (\n \n );\n};\n\n/**\n * Render Product Description.\n * @param props - WriteReview ViewProps.\n * @returns JSX Element.\n */\nconst renderProductDescription = (props: IReviewsListViewProps & IReviewsListProps): JSX.Element => {\n const product = props.data.product.result;\n return (\n \n
{renderProductImage(props)}
\n
\n
{product?.Name}
\n
{product?.Name}
\n
{product?.ItemId}
\n
\n
\n );\n};\n\n/**\n * Build Review modal.\n * @param props - Review list ViewProps.\n * @returns JSX Element.\n */\nconst createReviewModal = (props: IReviewsListViewProps & IReviewsListProps): JSX.Element => {\n const { resources, moduleProps, reviewModal } = props;\n return (\n \n {reviewModal.modalHeader}\n \n \n \n {renderProductDescription(props)}\n \n
{resources.selectRatingLabel}
\n {reviewModal.rating}\n
\n
\n \n {resources.reviewTitleLabel}\n {reviewModal.titleInput}\n \n \n {resources.reviewTextLabel}\n {reviewModal.textInput}\n \n {reviewModal.privacyPolicyUrl}\n {reviewModal.error}\n
\n
\n \n {reviewModal.submitButton}\n {reviewModal.cancelButton}\n \n
\n );\n};\n\n/**\n * Build Review modal.\n * @param props - Review modal ViewProps.\n * @param state - Review List State.\n * @returns JSX Element.\n */\nconst createReportModal = (props: IReportReviewModalViewProps, state: IReviewsListState): JSX.Element => {\n return (\n \n {state.reported ? props.headerSubmitted : props.header}\n \n {state.reported ? props.reportSubmittedMessage : [props.reportMessage, props.radioButtons, props.error]}\n \n {state.reported ? props.succesfulButton : [props.submitButton, props.cancelButton]}\n \n );\n};\n\n/**\n * ReviewsList view.\n * @param props - Ratings ReviewsList ViewProps.\n * @returns ReviewsList view module.\n */\nconst ReviewsListview: React.FC> = props => {\n const {\n filterByDropdown,\n heading,\n moduleProps,\n noReviewsMessage,\n noReviewsWithFilterMessage,\n pageControls,\n refineReviewsProps,\n reportReviewModal,\n reviewsListProps,\n reviewCards,\n sortByDropdown,\n state,\n userReview,\n resources\n } = props;\n\n if (!userReview && !ArrayExtensions.hasElements(reviewCards) && !state.isFilterApplied) {\n return {noReviewsMessage};\n }\n\n return (\n \n {heading}\n \n {sortByDropdown}\n {filterByDropdown}\n \n \n {userReview && buildReviewCard(userReview, resources, true)}\n {reviewCards.map(review => {\n return buildReviewCard(review, resources, false);\n })}\n \n {!ArrayExtensions.hasElements(reviewCards) && state.isFilterApplied && noReviewsWithFilterMessage}\n {pageControls}\n {createReviewModal(props)}\n {createReportModal(reportReviewModal, state)}\n \n );\n};\n\nexport default ReviewsListview;\n"],"names":["layout","HeadingTag","layoutClassNames","layoutNames","wideLayout","compact","getLayoutClassName","props","AccountLoyalty","heading","cardNumber","joinDate","points","displayJoinDate","displayAppleWallet","displayGoogleWallet","appleWalletBtnImage","googleWalletBtnImage","pointsExpirationReminder","loyaltyTiersLink","walletLoyaltyProgramName","config","loyaltyTierLabel","loyaltyCardLabel","loyaltyCardLabel_CL","availablePointsLabel","availablePointsLabel_CL_before","availablePointsLabel_CL_after","viewLoyaltyPageText","resources","firstLoyaltyGroup","moduleProps","data","loyaltyCard","result","LoyaltyGroups","highestTierId","HighestActiveLoyaltyCardTier","tierName","LoyaltyCardTiers","filter","tier","RecordId","TierId","user_email","context","request","user","emailAddress","user_card_number","text","points_numbers","split","tierClass","apple_wallet_check","src","altText","google_wallet_check","programString","includes","isWideOrCompactLayout","React","Module","Object","assign","className","Container","Row","href","alt","height","endsWith","classnames","linkUrl","destinationUrl","linkText","OrderTemplateListView","OrderTemplateList","status","statusMessage","OrderTemplates","orderTemplates","OrderTemplate","createOrderTemplateButton","templateHeaderStatusMessage","Node","length","map","orderTemplate","_renderOrderTemplate","key","addToCartButton","orderTemplateImage","orderTemplateStatusMessage","removeButton","orderTemplateName","buildReviewCard","cardProps","headerProps","name","date","rating","cardBodyProps","reviewProps","reviewText","responseProps","responseName","responseDate","responseText","controlsProps","edit","createReviewModal","modal","modalHeader","modalBody","form","inputRow","ratingLabel","titleLabel","titleInput","textLabel","textInput","privacyPolicyUrl","error","modalFooter","submitButton","cancelButton","createReportModal","state","reported","headerSubmitted","header","reportSubmittedMessage","reportMessage","radioButtons","succesfulButton","_props$data$ratingsSu","_props$resources$prod","_props$resources$revi","noReviewsWithFilterMessage","pageControls","reportReviewModal","reviewCards","reviewModal","userReview","modalOpen","setModalOpen","_toggleReviewModal","document","body","style","overflowY","buttonLabel","ratingsSummary","averageRating","product_review_list_button_label","title","reviewListLabel","page_summary","getElementsByClassName","modal_summary","innerHTML","isFilterApplied","onClick","display","e","stopPropagation","review","BodyContainerProps","FooterContainerProps","HeaderContainerProps","HeaderProps","ModuleProps","locationsMessage","search","spinner","locationsList","noLocationsMessage","terms","currentUrl","url","requestUrl","baseUrl","substring","lastIndexOf","titles","Array","from","querySelectorAll","forEach","el","storeName","textContent","_el$closest","startsWith","closest","classList","add","replace","renderLinkToStorePage","_el$closest2","querySelector","_el$closest3","storeUrl","toLowerCase","goToStore","createElement","goToStorePage","appendChild","isSearchInProgress","AccountAddressTile","constructor","super","handleHeadingChange","event","this","target","value","handleLinkTextChange","linkIndex","links","telemetryContent","getTelemetryObject","telemetryPageName","friendlyName","telemetry","render","accountAddressTileDescriptionForSingleAddress","accountAddressTileDescriptionForMultipleAddresses","address","addressCount","accountAddressTileDescription","description","format","viewProps","_objectSpread","Msdyn365","tag","editProps","onEdit","requestContext","LinksComponent","onTextChange","DescriptionComponent","renderView","_ref","_mapEditableLinks","linkdata","editableLinks","payLoad","getPayloadObject","link","index","contentAction","etext","attributes","getTelemetryAttributes","editableLink","ariaLabel","openInNewTab","role","additionalProperties","push","AccountCustomerBalanceTile","_initState","reaction","hasError","setState","content","ErrorComponent","apiGenericErrorMessage","get","customerResult","allowOnAccountPayment","AllowOnAccountPayment","isB2BSite","isChannelTypeB2B","enableCustomerAccountPayment","shouldComponentUpdate","nextProps","nextState","isCustomerAccountPaymentEnabled","Heading","headingTag","isDetailsLinkDisplayed","account","Balance","CreditLimit","InvoiceAccountBalance","InvoiceAccountCreditLimit","noCreditErrorMessage","accountCreditVerbagePrefix","accountCreditVerbagePostfix","currencyCode","formatCurrency","customerCredit","customerCreditFormatted","toFixed","CreditComponent","verbagePrefix","verbagePostfix","__decorate","computed","_ref2","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","Date","ToDate","IsForFullOrganization","RequestedUserId","RequestingUserEmail","Email","DeliveryTypeValue","BusinessPartnerOperationDeliveryType","callerContext","actionContext","BusinessPartnerUsersDataActions","statementRequestMaxDateString","toISOString","_get","undefined","creditSummarySectionHeading","accountSectionHeading","backToShoppingText","customerSincePrefix","availableCreditLabel","balanceOwedLabel","creditExcessLabel","requestStatementButtonLabel","modalHeaderLabel","sendToEmailLabel","fromDateLabel","toDateLabel","submitRequestLabel","cancelLabel","myAccountStatementLabel","fullOrganizationLabel","modalAriaLabel","accountNumber","AccountNumber","createdOn","_formatJoinDate","CreatedDateTime","FirstName","LastName","customerAccountBalance","excess","creditExcess","_formatCurrency","availableCredit","balanceOwed","backLink","actionBar","IsB2bAdmin","AdminRequestStatementButton","buttonReference","onRequestStatement","onToggleDropdown","myUserAccountLabel","isDropdownShowing","ActionBar","accountLabels","AccountLabels","accountValues","AccountValues","AvailableCreditComponent","BalanceOwedComponent","CreditExcessComponent","homeButton","BackButton","label","actions","requestStatementModal","RequestStatementModal","email","isModalOpen","toggle","fromDateString","toDateString","onChangeFromDate","onChangeToDate","canSubmitRequest","canSubmitStatementRequest","onSubmitRequest","selectedUser","selectedUserLabel","maxDateString","currency","Intl","DateTimeFormat","locale","month","day","year","creditSummaryLabels","creditSummaryValues","popoverReference","Button","innerRef","onPromoteToSeller","promoteToSellerLabel","onSelectCustomerAccount","onSelectFullOrg","onSelectPromoteToSeller","requestStatementDropdownString","Random","Guid","generateGuid","id","Popover","isOpen","placement","onChangeFromDateEvent","onChangeToDateEvent","onBlurFromDate","ObjectExtensions","isFunction","onBlurToDate","Modal","horizontalPosition","verticalPosition","autoFocus","fade","ModalHeader","ModalBody","htmlFor","type","onBlur","onChange","max","min","ModalFooter","disabled","_ref5","_ref6","_ref7","_ref8","TelemetryConstant","BackToShopping","AccountInvoiceTileDescription","AccountInvoiceTile","_data$customerBalance","cultureFormatter","accountInvoiceTileDescription","invoiceTotalAmount","customerBalance","OpenInvoiceBalance","AccountLoyaltyTile","signUpLinkText","viewLinkText","signUpLinkAriaLabel","viewLinkAriaLabel","accountLoyaltySummary","accountLoyaltyMemberSummary","CardNumber","decimalPrecision","RewardPoints","rewardPoint","ActivePoints","AccountOrderTemplatesTileDescription","AccountOrderTemplatesTileLinks","AccountOrderTemplatesTile","params","isEditor","accountOrderTemplatesTileDescription","orderTemplatesCount","AccountProfileEdit","moduleClassName","onTextBoxChange","givenName","surname","emailRegex","_onInit","_prePopulateData","_updateErrorMessage","initializationTimer","setInterval","_isInitializationSuccessful","setTimeout","clearInterval","window","isInitialized","invalidEmailAddressError","obj","PRE","_htmlDecode","ID","PAT","PAT_DESC","message","required_field","requiredFieldMissingError","verifying_blurb","loadingMessage","EmailRegex","defaultRegex","source","componentDidMount","componentDidUpdate","viewState","isShowLoading","accountProfileEdit","loading","icon","AccountProfileEditLoadingIconComponent","AccountProfileEditLoadingMessageComponent","defaultAADConainer","aadConainer","accountProfileEditLocalAccount","_renderLocalAccount","str","childNodes","nodeValue","localAccount","items","_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","input","AccountProfileEditInputComponent","observable","observer","AccountProfileEditItem","AccountProfileEditLoading","_ref3","item","button","LocalAccount","errorClassName","GetMaxLength","parsedMaxLength","Number","parseInt","isNaN","AccountAttributeDataTypeValue","AccountProfileAttributes","isUpdatingAttributes","gotException","attributeClassName","maxIntegerLimit","minIntegerLimit","maxDecimalLimit","minDecimalLimit","maxStringLength","maxVATNumberLength","maxPhoneLength","editAsyncCustomerFeatureName","isEditAsyncCustomerFeatureEnabled","_renderAttributes","_data$featureState","_this$props$accountPr","accountProfileProps","attributeDefinitions","additionalInformationSectionHeading","elements","showAttributes","att","attributeDefinition","find","attribute","IsHidden","Name","toLocaleLowerCase","_renderAttribute","editAttributes","attributesEditButtonText","attributesSaveButtonText","saveAttributes","attributesCancelButtonText","cancelAttributes","featureState","feature","IsEnabled","disableBtn","app","canRenderAsyncCustomerDataAsUnmodifiable","IsAsyncCustomer","ref","attributesContainerRef","Text","showPhone","_renderPhone","showVatNumber","_renderVatNumber","attributesSaveExceptionMessage","_enableAttributes","editRef","_saveAttributes","_disableAttributes","phoneSectionHeading","_onPhoneChange","phone","_renderError","vatNumberSectionHeading","_onVatNumberChange","vatNumber","customAttribute","ExtDataType","Value","Integer","Decimal","_renderIntegerDecimalInput","_renderTextInputOrSelect","TrueFalse","_renderBoolean","attributeProps","_getAttributeProps","displayName","_onAttributeChange","IsMandatory","isEnumeration","IsEnumeration","EnumerationDetails","hasNoValue","_onAttributeSelect","selected","option","EnumerationValue","toggleState","arialabel","attributeToggleButtonAriaLabel","ariaPressed","toggleValue","TextComponent","toggleDisableText","_onAttributeCheck","toggleEnableText","attributeName","attributeError","StringExtensions","isNullOrWhitespace","attributePayloadData","isMandatory","MsDyn365","isBrowser","_setFocus","initialAttributes","initialPhone","initialVatNumber","currentTarget","selectedOptions","selectedIndex","_getAttributes","showAttributesArray","custmerAttributes","Attributes","showAttribute","defaultValue","AttributeValue","DataTypeValue","IntegerValue","String","DecimalValue","StringValue","BooleanValue","keys","_addOrUpdateAttribute","hasValue","entries","payloadData","dataTypeValue","decimalValue","typeError","attributeInputTypeErrorText","lowerBoundValue","upperBoundValue","rangeError","attributeInputRangeErrorText","attributeInputValueExceedsMaximumErrorText","attributeInputValueExceedsMinimumErrorText","integerValue","trimValue","trim","attributeInputStringMaxLengthErrorText","textValue","booleanValue","attributeInputMandatoryErrorText","findIndex","splice","Attribute","recordId","Units","ExtensionProperties","NameTranslations","KeyName","Phone","VATNumber","VatNumber","async","updateCustomerAttributesInput","apiSettings","updateCustomerAttributes","initialCustomerAttributes","exception","debug","element","_buildPayloadData","defaultIntegerValue","DefaultValue","LowerBound","UpperBound","defaultDecimalValue","defaultStringValue","defaultBooleanValue","_getCustomerPhoneAndVatNumber","isDisabled","AccountProfile","isUpdatingPreference","handleEmailHeadingChange","emailAddressSectionHeading","handleNameHeadingChange","nameSectionHeading","editButtonText","onClickEventHandler","_updateAccountPersonalization","_renderPreference","sectionHeading","enableAriaLabel","isOptOut","onClickHandler","accountPreference","buttonWrapper","buttonYesText","buttonNoText","toString","onUpdateAccountPreference","isOptOutPersonalization","preferenceType","OptOutWebActivityTracking","updateCustomerPersonalizationInput","OptOutPersonalization","updateCustomerPersonalization","_renderCustomerAttributes","_this$props$context$a","editButtonAriaLabel","invalidAsyncCustomerState","shouldRenderAttributes","editLink","infoMessageBar","accountProcessingPendingInfoMessage","accountProfileWrapper","emailSection","_renderEmailSection","nameSection","_renderNameSection","getDescription","preferenceSection","_renderPreferenceSection","customerAttributesWrapper","customerAttributesSection","AccountProfileItem","ArrayExtensions","hasElements","personalizationDescription","personalizationEnableButtonAriaLabel","webTrackingDescription","webTrackingEnableButtonAriaLabel","preferencesSectionHeading","personalizationSectionHeading","webTrackingSectionHeading","enableDataAnalytics","features","extraPreferences","accountPreferences","personalization","AccountPreferencesSection","AccountPreferenceSection","preferenceSecton","AccountProfileSection","AccountWishlistTile","accountWishlistTileDescription","wishlists","wishlistsCount","CommerceListLines","SignUpText","LoyaltySignUp","handleMemberHeadingChange","memberHeading","_issueLoyalty","isAuthenticated","clicked","IssueLoyaltyInput","issueLoyalty","then","location","catch","SignIn","loyaltySignInAttributes","SignUp","loyaltySignUpAttributes","LoyaltyDetailLink","loyaltyDetailsLinkAttributes","LoyaltyTermsLink","loyaltyTermsLinkAttributes","_data$customerInforma","signInUrl","termsUrl","loyaltyJoinUrl","origin","signInurl","completeClass","classname","hasLoyaltyAccount","CardTenderTypeValue","signInLink","joinLoyaltyButtonText","signUpText","loyaltyProgramText","signUpButton","detailsLink","termsLink","loyaltyTermsLinkText","LoyaltyTermsModal","LoyaltyTermsCancel","loyaltyTermCancelAttributes","LoyaltyTermsSubmit","loyaltyTermSubmitAttributes","LoyaltyTermsAgree","loyaltyTermCheckboxAttributes","onToggle","applicationNode","returnFocusRef","returnRef","cancelLoyaltyTermsText","onSubmit","checked","joinLoyaltyTermsText","loyaltyTermsHeading","agreeSection","checkbox","onCheck","agreeText","loyaltyAgreeToTerms","LoyaltyTerms","_toggle","bind","_submit","_checkboxChecked","toggleRef","isJoining","qsps","qsp","splitQsp","hideToggle","slots","serviceTerms","modalToggle","joinLoyaltytermsToggleText","card","redirectToLoyalty","getUrlSync","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","successClassName","handleParagraphChange","disclaimer","isEmailVerificationRequried","templateVersion","VERIFY","isGivenNameVerificationRequried","isSurnameVerificationRequried","UX_INPUT_TYPE","invalidPasswordError","errorMessages","getValue","v1Value","v2Value","signUp","SignUpLoadingIconComponent","SignUpLoadingMessageComponent","signUpLocalAccount","passwordLabelText","emailVerification","isRequired","verificationCodeLabelText","verificationControlWrapper","SignUpButtonComponent","sendCodeButtonAriaLabel","sendCodeButtonText","verifyCodeButtonAriaLabel","verifyCodeButtonText","resendCodeButtonAriaLabel","resendCodeButtonText","changeEmailButtonAriaLabel","changeEmailButtonText","successMessage","SignUpSuccessComponent","verificationCodeSendSuccess","emailAddressVerifiedSuccess","SignUpErrorComponent","retryError","retryNotAllowedError","throttledError","codeExpiredError","serverError","invalidEmailError","givenNameVerification","surnameVerification","signUpButtonArialabel","signUpButtonText","cancelButtonArialabel","cssClassName","SignUpLabelComponent","SignUpInputComponent","SignUpItem","SignUpEmailVerification","SignUpGivenNameVerificationComponent","SignUpSurnameVerificationComponent","_ref4","SignUpLoading","FormType","InputType","InputID","renderInputSection","inputs","asteriskAfterLabel","onInputChange","customClass","maxChars","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","updatedUser","_createBusinessPartner","Edit","editOrganizationUser","EditOrganizationUserInput","reload","trace","addOrganizationUser","AddOrganizationUserInput","businessUserActionRetailErrorMsg","parseFloat","_handleEditIcon","userData","possibleName","cell","fullName","lastSpaceIndex","firstName","lastName","possibleCell","dataCell","_handleDeleteIcon","displayedUserData","TableDataType","Price","Remove","_handleViewDetails","View","_handleRemoveUserButton","deleteUserData","deleteOrganizationUser","DeleteOrganizationUserInput","None","callbackRemoveButton","_onInputChange","prev","refresh","isReady","_isFormReady","formItem","match","_formatPrice","price","_getCurrentUrl","reqContext","URL","_getViewport","device","Type","innerWidth","gridSettings","xs","w","sm","md","lg","_toggleStatementRequestDropdown","_promoteToSeller","promoteToSellerUrl","currentUser","_getB2BUserId","_closeStatementRequestModal","_this$statementReques","statementRequestButtonReference","_onSelectRow","records","selectedRow","rowProps","isSelected","row","mobileExcludedColumns","Status","_viewport","_updateViewport","submitButtonReference","addedReference","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","Table","_createTableProps","toggleModal","_renderUserForm","_renderUserDetails","requestAccountStatementButton","selectedOrganizationLabel","selectedUserName","tableSort","showPagination","paginationItemPerPage","businessUserPaginationNextButtonText","businessUserPaginationPreviousButtonText","businessUserEditButtonText","businessUserViewUserButtonText","businessUserDeleteButtonText","businessUserPaginationAriaLabel","columnSortAriaLabel","tableData","_createTableItems","headings","isMobile","sortable","rows","editLinkText","deleteLinkText","editLinkTooltip","deleteLinkTooltip","viewLinkTooltip","enableToModify","actionLinkText","showCheckBoxes","isSortable","resourcePrefix","minifyActions","excludedColumns","paginationProperty","skipCount","query","skip","itemPerPage","prevText","nextText","paginationText","isSingleSelectOnly","tableAriaLabel","tableTabIndex","businessUserSelectCheckBoxAriaLabelText","sortByAscending","sortByDescending","onDelete","onView","formatPrice","checkBoxCallback","businessUserActiveStatusText","businessUserPendingStatusText","businessUserRemovedStatusText","usersList","statusString","StatusValue","FullName","buttonReferences","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","headingSection","bodySection","footerSection","wrapClassName","ButtonList","_getForm","formProps","CatalogPicker","handleTextChange","paragraph","_heading$tag","_this$props$data$cata","catalogPickerHeading","_moduleClassName","isCatalogsAvailable","catalogs","catalogPickerParagraph","RichTextComponent","catalogValidationText","handleText","catalogPicker","_renderCatalogPicker","_renderCatalogPickerButton","catalogId","getCatalogId","currentCatalogText","linkToCatalog","_getUrlSync","catalogUrl","fullUrl","searchParams","set","changeCatalogButtonText","_this$props$data$cata2","reactKey","JSON","stringify","image","firstOrDefault","Images","tabIndex","Image","generateImageUrl","Uri","imageSettings","galleryImageSettings","AltText","loadFailureBehavior","CatalogPickerViewFunctionComponent","_renderPromotions","promotions","promotionMessageWrapper","promotionMessage","promotionSeeAllLink","promotionDialog","_renderCartlines","cartLines","storeSelector","backToShoppingButton","waitingComponent","cartLoadingStatus","cartDataResult","mulitplePickUp","emailDeliveryModeCode","emptyCartText","cartLine","cartline","_renderBOPISBlock","_renderGroupBOPISBlock","addToOrderTemplate","addToWishlist","remove","onToggleBopisHandler","isBopisSelected","pickUpInStore","callbacks","toggleBopis","onChangeStoreHandler","_cartLine$data","DeliveryMode","shipInsteadDisplayText","shipToAddressDisplayText","pickItUpDisplayText","pickUpAtStoreWithLocationText","changeStoreDisplayText","PickupInStore","puckUpinStoreAttribute","ContainerProps","orgUnitName","_renderErrorBlock","errorData","errors","Wrapper","_renderOrderSummarylines","orderSummaryLines","OrderSummaryItems","promoCode","subtotal","shipping","otherCharge","tax","totalDiscounts","orderTotal","_renderInvoiceSummarylines","invoiceSummaryLines","invoices","giftCard","loyalty","_renderCartLinesGroup","cartLinesGroup","cartlines","_props$context$action2","_props$context$action3","cartlineId","_renderCartLinesGroupHeader","_countItems","channel","EmailDeliveryModeCode","multiplePickUpEnabled","count","_cartLine$pickUpInSto","pickUpText","shippingText","emailshippingText","payInvoicesDisplayText","groupTitle","IsInvoiceLine","isNullOrEmpty","_renderCartLinesGroupTitle","_cartLine$data2","countItem","reduce","_item$data","Quantity","_cartLine$pickUpInSto2","_cartLine$pickUpInSto3","_cartLine$pickUpInSto4","itemLabel","itemsLabel","suffix","deliveryOption","_props$cart","_props$context$action","_props$cart2","renderModuleAttributes","promotionOptions","cart","hasInvoiceLine","CartlinesWrapper","orderSummaryHeading","OrderSummaryWrapper","invoiceSummaryLineitems","orderSummaryLineitems","OrderSummaryErrors","checkoutAsSignInUserButton","checkoutAsGuestButton","expressCheckoutButton","ExpressCheckoutSectionWrapper","createTemplateFromCartButton","OrderHistoryOrderInfomation","orderInformationProps","salesId","receiptId","channelName","createdDate","amount","channelReferenceId","OrderHistoryGroupDelivery","deliveryProps","processing","trackingInfo","OrderHistoryGroup","groupProps","delivery","salesLinesProps","salesLines","salesLine","LineId","OrderHistoryGroups","groupsProps","groups","group","OrderHistoryHeader","orderCountLabel","extraActions","OrderHistorySalesOder","salesOrderProps","orderInfomation","orderDetailsLink","expandProductsButton","OrderHistoryList","listProps","salesOrders","salesOrder","orderHistoryProps","alert","emptyMessage","backToShoppingLink","list","table","moreButton","FooterItem","footerItemClassName","_createHeading","_createImageMarkup","_createText","_createLinkText","EditableLink","_createLink","HeadingContainer","ItemContainer","Link","onTelemetryClick","ariaHiddenAttr","viewports","q","h","lazyload","shouldSkipToMainImage","FooterItemView","_renderElement","componentClassName","buttonClassName","buttonActiveClassName","buttonInactiveClassName","OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState","OrderHistoryWithSearchAndFiltersOrganizationWideSelectorComponent","msdyn365Commerce","createComponent","component","_props$resources$curr","_props$resources","_props$resources$curr2","_props$resources2","_props$resources$curr3","_props$resources3","_props$resources4","_props$resources$curr4","_props$resources5","_props$resources6","_props$resources7","_props$resources$orga","_props$resources8","_props$resources9","_props$resources$orga2","_props$resources10","_props$resources11","_props$resources12","selectorState","setSelectorState","currentSelectorState","newSelectorState","currentUserOrderHistoryAttributes","currentUserOptionLabel","orgWideOrderHistoryAttributes","CurrentUser","currentUserOptionAriaLabel","OrganizationWide","organizationWideOptionAriaLabel","organizationWideOptionLabel","SitePicker","_cookieName","_cookieExpirationInSeconds","_escFunction","keyCode","expandSiteOptions","KeyCodes","Escape","_this$_sitePickerMenu","_this$_sitePickerMenu2","nextFocus","activeElement","_this$_sitePickerMenu3","_sitePickerMenuButton","contains","_sitePickerMenuNode","_resetSiteOptionsState","Tab","_this$_sitePickerMenu4","_this$_sitePickerMenu5","_handleOutsideClick","_this$_sitePickerMenu6","_this$_sitePickerMenu7","_handleChange","_renderSiteOptions","viewport","_document","_document2","resizeThrottledEventHandler","addThrottledEvent","_document3","_document4","_this$props$config$he","_this$props$config$he2","SitePickerMenu","SitePickerMenuSpan","SitePickerMenuList","SitePickerMenuListItem","SitePickerMobileContainer","Drawer","toggleButtonText","openGlyph","closeGlyph","glyphPlacement","isMobileView","SitePickerMenuListItemArray","_renderSitePickerImage","renderSiteOptions","resetSiteOptionsState","siteOptionsState","expandSiteOptionsState","preventDefault","cookies","isConsentGiven","cookieConfig","maxAge","defaultImageSettings","xl","siteOptions","_image$imageSettings","_item$siteRedirectUrl","siteImage","imageProps","siteRedirectUrl","siteName","_renderSitePicker","_renderSiteOptionsList","options","onMouseLeave","_props$SitePickerMenu","_renderMobileView","_props$config$heading","_renderDesktopView","SocialShare","socialShareItems","viewprops","SocialShareList","caption","orientation","SocialShareItem","SocialShareItemElements","SocialShareView","SocialShareElement","BusinessFormItemComponent","renderModal","BusinessUserFormComponent","BusinessUserDetailsComponent","buttonList","headingForEmptyUserOrganizationList","textForEmptyUserOrganizationList","getForm","SummaryForm","addPaymentButton","appliedLine","bottomBorder","paymentAmountInput","EditForm","inputLabel","inputAmount","customerName","customerAccountNumber","customerSince","accountCredit","accountDetails","checkoutCustomerAccount","checkoutErrorRef","summaryView","editView","moduleState","isUserReview","reviewTitle","wasReviewHelpfulText","like","dislike","renderProductDescription","product","_props$data$product$r","primaryImageSource","PrimaryImageUrl","imageUrl","cropFocalRegion","renderProductImage","ItemId","filterByDropdown","noReviewsMessage","refineReviewsProps","reviewsListProps","sortByDropdown","selectRatingLabel","reviewTitleLabel","reviewTextLabel"],"sourceRoot":""}