{"version":3,"file":"static/js/9.44067ce12deb87e4d71b.chunk.js","mappings":";0PA4GA,SAASA,EAAYC,EAAeC,EAAgBC,EAAiBC,GAGjE,MAAQ,GAFRH,EAAOA,GAAQ,MACfC,EAAQA,GAAS,MAQrB,SAA4BC,EAAiBC,GACzC,GAAID,GAAUC,EAAiB,CAC/B,MAAMC,EAAgBF,EAAOG,QAAQ,GACrC,OAAOC,EAAAA,EAAAA,QAAOH,GAAmB,GAAIC,EAAe,KAEpD,MAAO,GAZqBG,CAAmBL,EAAQC,KA+C3D,QA/IyGK,IAAQ,gDAE7G,MAAM,UACFC,EAAS,QACTC,EAAO,KACPC,EAAI,cACJC,EAAa,gBACbT,EAAe,iBACfU,GACkBL,EAChBM,EAAgBN,EAAMG,KAAKG,QACjC,IAAKA,EACD,OAAO,KAEX,IAAIC,GAAkBC,EAAAA,EAAAA,uBAAsBF,EAAQG,MAAQ,GAAIH,EAAQI,SAAUR,GAAWA,EAAQS,mBAAeC,GAChHX,IACAM,EA+FR,SAA0BA,EAAoBL,GAC1C,MAAMW,EAAS,IAAIC,IAAIP,EAAYL,EAAQa,QAAQC,YAAYC,SACzDC,EAAc,YAChBL,EAAOM,OACHN,EAAOM,QAAU,IAAID,IAErBL,EAAOM,QAAUD,EAIzB,OADmB,IAAIJ,IAAID,EAAOO,MAChBC,SAAWR,EAAOM,OAzGdG,CAAiBf,EAAYL,IAGnD,MAAMqB,GAAgBC,EAAAA,EAAAA,kBAAiB,QAASnB,EAAmB,GAAIC,EAAQI,SAASe,YAClFC,GAAgBC,EAAAA,EAAAA,wBAAuBtB,EAAmBkB,GAC1DK,EAAiC,QAAxB,EAAOtB,EAAQuB,iBAAS,aAAjB,EAAmBC,eAAe,SAClDC,EAA6B,QAAhB,EAAGzB,EAAQ0B,aAAK,aAAb,EAAeF,eAAe,SAE9CG,EAA2C,QAAnC,EAAQ3B,EAAQ4B,2BAAmB,OAAiD,QAAjD,EAA3B,EAA6BC,QAAOC,GAAe,wBAAVA,EAAEC,MAA+B,UAAE,OAAO,QAAP,EAA5E,EAA8EC,aAAK,WAAxD,EAA3B,EAAqFC,aACrGC,EAA2C,QAAxC,EAAalC,EAAQ4B,2BAAmB,OAA0C,QAA1C,EAA3B,EAA6BC,QAAOC,GAAe,iBAAVA,EAAEC,MAAwB,UAAE,OAAO,QAAP,EAArE,EAAuEC,aAAK,WAAjD,EAA3B,EAA8EG,aAC9FC,EAA2C,QAAvC,EAAYpC,EAAQ4B,2BAAmB,OAA2C,QAA3C,EAA3B,EAA6BC,QAAOC,GAAe,kBAAVA,EAAEC,MAAyB,UAAE,OAAO,QAAP,EAAtE,EAAwEC,aAAK,WAAlD,EAA3B,EAA+EG,aAC/FE,EAA2C,QAA/B,EAAIrC,EAAQ4B,2BAAmB,OAAuD,QAAvD,EAA3B,EAA6BC,QAAOC,GAAe,wBAAVA,EAAEC,MAA+B,GAAGC,aAAK,WAAvD,EAA3B,EAAoFG,aACpGG,EAA2C,QAA3B,EAAAtC,EAAQ4B,2BAAmB,OAA3B,EAA6BC,QAAOC,GAAe,gBAAVA,EAAEC,MAAoD,QAA9B,EAAG/B,EAAQ4B,2BAAmB,OAA+C,QAA/C,EAA3B,EAA6BC,QAAOC,GAAe,gBAAVA,EAAEC,MAAuB,GAAGC,aAAK,WAA/C,EAA3B,EAA4EO,YAAc,GACpL,OACIC,IAAAA,cAAAA,IAAAA,OAAAA,OAAAA,CAAG1B,KAAMb,EAAYwC,SAASC,EAAAA,EAAAA,kBAAiB3C,EAAmBkB,EAASjB,EAAQG,MAAM,aAAclB,EAAYe,EAAQG,KAAMP,EAAQ+C,iBAAiBC,eAAe5C,EAAQ0B,OAAQ1B,EAAQ6C,cAAexD,GAAkByD,UAAU,eAAkB1B,GAC1PoB,IAAAA,cAAAA,MAAAA,CAAKM,UAAU,sBA6F3B,SAAqChD,EAAgCiD,EAA8BC,EAAmBC,GAClH,IAAKD,IAAaD,IAAiBjD,EAC/B,OAAO,KAEX,MAAMoD,EAAkB,CACpBC,IAAKH,EACLC,QAASA,GAAoB,IAE3BG,EAAa,CACfL,aAAcA,EACdjD,cAAeA,GAGnB,OADAsD,EAAWtD,cAAcuD,iBAAkB,EAEvCb,IAAAA,cAACc,EAAAA,GAAK,iBAAKJ,EAASE,EAAU,CAAEG,oBAAoB,WA1G3CC,CAA4B1D,EAAeF,EAAQa,QAAQsC,aAAa/C,EAAQyD,gBAAiBzD,EAAQG,OAE9GqC,IAAAA,cAAAA,MAAAA,CAAKM,UAAW,wBACZN,IAAAA,cAAAA,KAAAA,CAAIM,UAAW,sBAAuB9C,EAAQG,MA0C9D,SAA0BN,GAAiD,QACvE,MAAM6D,EAAuB,GAO7B,OANY,QAAZ,EAAA7D,EAAKG,eAAO,OAAiB,QAAjB,EAAZ,EAAc2D,uBAAe,OAA7B,EAA+BC,SAASC,IAChC,CAAC,WAAY,gBAAiB,gBAAgBC,SAASD,EAASE,UACjEL,EAAWM,KAAKH,EAASI,cAK5BzB,IAAAA,cAAAA,MAAAA,CAAKM,UAAU,aACVY,EAAWQ,KAAI,CAACC,EAAKC,IAAU5B,IAAAA,cAAAA,OAAAA,CAAM6B,IAAKD,EAAOtB,UAAU,aAAaqB,MAnDpEG,CAAiBzE,GAClB2C,IAAAA,cAAAA,MAAAA,KACIA,IAAAA,cAAAA,MAAAA,KACIA,IAAAA,cAAAA,OAAAA,CAAMM,UAAW,qBAAmB,gBACpCN,IAAAA,cAAAA,OAAAA,CAAMM,UAAW,qBAAsBrB,EAAa,OAExDe,IAAAA,cAAAA,MAAAA,CAAKM,UAAW,eACXrB,IAAkBH,GACnBkB,IAAAA,cAAAA,MAAAA,CAAKM,UAAW,kBAAgB,qBACVN,IAAAA,cAAAA,OAAAA,CAAMM,UAAU,4BAA4BxB,EAAS,OAI1E5B,MAAAA,GAAc,QAAT,EAALA,EAAOE,eAAO,OAAK,QAAL,EAAd,EAAgB2E,WAAG,OAAQ,QAAR,EAAnB,EAAqBC,cAAM,WAAtB,EAAL,EAA6BC,kBAC9BjC,IAAAA,cAAAA,MAAAA,KAAAA,SAEIA,IAAAA,cAAAA,OAAAA,CAAMM,UAAW,iBAAe,IAAIT,MAAAA,OAAY,EAAZA,EAAcb,eAAe,SAAQ,WAAe,MAExFgB,IAAAA,cAAAA,OAAAA,CAAMM,UAAW,kBAAgB,IAAInB,EAAQ,SAC7Ca,IAAAA,cAAAA,OAAAA,CAAMM,UAAW,WAAS,UAAUZ,MAAAA,OAAG,EAAHA,EAAKV,eAAe,SAAQ,KAChEgB,IAAAA,cAAAA,OAAAA,CAAMM,UAAW,YAAU,WAAWV,MAAAA,OAAI,EAAJA,EAAMZ,eAAe,SAAQ,KAClEc,GACDE,IAAAA,cAAAA,OAAAA,CAAA,cAAkB,OAAOM,UAAW,oCAChCN,IAAAA,cAAAA,OAAAA,CAAA,cAAkB,OAAOM,UAAW,mBACpCN,IAAAA,cAAAA,MAAAA,CAAKM,UAAU,WACXN,IAAAA,cAAAA,IAAAA,KAAIF,OAOpBE,IAAAA,cAAAA,IAAAA,CAAGM,UAAU,eAAepD,MAAAA,GAAc,QAAT,EAALA,EAAOE,eAAO,OAAK,QAAL,EAAd,EAAgB2E,WAAG,OAAQ,QAAR,EAAnB,EAAqBC,cAAM,WAAtB,EAAL,EAA6BE,qBA+BlDC,EA7BQ3E,EAAQ4E,YA8BhCpC,IAAAA,cAAAA,IAAAA,CAAGM,UAAU,qBAAqB6B,IA7B7BnC,IAAAA,cAAAA,SAAAA,CAAQM,UAAU,WAAS,mBA4B3C,IAA2B6B,ozBChF3B,IAAME,EAAN,cAA4BrC,EAAAA,UAKxBsC,YAAYpF,GACRqF,MAAMrF,GALO,KAAAsF,gBAA0B,oBAoDpC,KAAAC,oBAAuBC,GAA0CC,KAAKzF,MAAM8E,OAAOY,mBAAqBF,EAAMG,OAAOC,MA9CxHH,KAAKI,UAAYJ,KAAKI,UAAUC,KAAKL,MACrCA,KAAKpF,kBAAmB0F,EAAAA,EAAAA,oBACpBN,KAAKzF,MAAME,QAAQa,QAAQiF,kBAC3BP,KAAKzF,MAAMiG,aACXR,KAAKzF,MAAMkG,WAIZC,sBAAsBC,GACzB,OAAIX,KAAKzF,MAAMG,OAASiG,EAAUjG,KAM/BkG,SACH,MAAM,MAAEC,EAAK,WAAEC,EAAU,OAAEzB,EAAM,KAAE3E,GAASsF,KAAKzF,MAC3CwG,EAA+BrG,GAAQA,EAAKsG,wBAA0BtG,EAAKsG,uBAAuBC,OAClGC,EACFH,QAA+E5F,IAA/C4F,EAA6BI,cACvDzG,GAAQ2E,EAAO+B,wBACfL,GAAgCA,EAA6BI,cAsBvE,OAAOL,EArBQ,OACRd,KAAKzF,OAAK,IACb8G,uBAAwB,CACpBC,YAAatB,KAAKzF,MAClBoD,UAAW4D,GAAAA,CAAWvB,KAAKH,gBAAiBR,EAAO1B,YAEvD6D,qBAAsB,CAClB7D,UAAW,6BAEf8D,OAAQ,CACJC,IAAKC,EAAAA,iBACLhE,UAAW,GAAGqC,KAAKH,0BACnB+B,iBAAmBvC,EAAOY,oBAAsBZ,EAAOY,oBAAuB,GAC9E4B,cAAe,CAAEC,OAAQZ,GACzBa,SAAU/B,KAAKI,UACf4B,aAAchC,KAAKF,oBACnBmC,eAAgBjC,KAAKzF,MAAME,QAAQa,QACnCV,iBAAkBoF,KAAKpF,kBAE3BsH,eAAgBrB,KAOhBT,UAAU+B,GACd,IAAKA,EAAML,QAAqC,sBAA3B9B,KAAKzF,MAAM6H,iBAAyD,CACrF,MAAMC,EAAiB,CAAElB,eAAe,GACxCnB,KAAKzF,MAAME,QAAQS,cAAcoH,QAAOC,EAAAA,EAAAA,IAA0BF,GAAiBA,MA1DzF3C,GAAa,SADlB8C,EAAAA,IACK9C,GA8DN,4FCtFA,MAgBM+C,EAA+BC,GAE7BrF,EAAAA,cAAAA,EAAAA,SAAAA,KACKqF,GAASA,EAAMC,OAAS,EACnBD,EAAM3D,KAAI,CAAC6D,EAAuB3D,IACvB5B,EAAAA,cAACA,EAAAA,SAAc,CAAC6B,IAAKD,GAAQ2D,KAExC,MAIlB,EA3B6DrI,IACzD,MAAM,OAAEkH,EAAM,eAAES,EAAc,uBAAEb,EAAsB,qBAAEG,GAAyBjH,EACjF,OACI8C,EAAAA,cAACwF,EAAAA,OAAM,iBAAKxB,GACRhE,EAAAA,cAACyF,EAAAA,KAAI,iBAAKrB,GACNpE,EAAAA,cAACyF,EAAAA,KAAI,iBAAKtB,GACLU,GACGA,EAAea,sBACfb,EAAea,qBAAqBJ,QACpCF,EAA4BP,EAAea,ovBCwCnE,IAAMC,EAAN,cAAwB3F,EAAAA,cASpBsC,YAAYpF,GACRqF,MAAMrF,GALO,KAAA0I,mBAAyD5F,EAAAA,YAEzD,KAAA6F,qBAA2D7F,EAAAA,YAuDrE,KAAAyC,oBAAuBC,GAA0CC,KAAKzF,MAAM8E,OAAO8D,QAASC,KAAOrD,EAAMG,OAAOC,MAnDnHH,KAAKqD,aAAerD,KAAKqD,aAAahD,KAAKL,MAC3CA,KAAKsD,eAAiBtD,KAAKsD,eAAejD,KAAKL,MAC/CA,KAAKpF,kBAAmB0F,EAAAA,EAAAA,oBACpBN,KAAKzF,MAAME,QAAQa,QAAQiF,kBAC3BP,KAAKzF,MAAMiG,aACXR,KAAKzF,MAAMkG,WAEfT,KAAKlE,SAAUC,EAAAA,EAAAA,kBAAiB,QAASiE,KAAKpF,iBAAkB,IAChEoF,KAAKmC,MAAQ,CAAEoB,YAAY,GAGxB3C,SACH,MAAM,MAAEC,GAAUb,KAAKzF,OACjB,QAAE4I,EAAO,UAAExF,GAAcqC,KAAKzF,MAAM8E,OACpCmE,EAAmBL,GAAWA,EAAQC,MACxC/F,EAAAA,cAACoG,EAAAA,GAAa,CACV9F,UAAU,uCACV+D,IAAKyB,EAAQzB,KAAO,KACpB0B,KAAMD,EAAQC,KACdM,UAAW,CAAEC,OAAQ3D,KAAKF,oBAAqBmC,eAAgBjC,KAAKzF,MAAME,QAAQa,WAIpFsI,EAAkB,OACjB5D,KAAKzF,OAAK,IACbsJ,mBAAoB,CAChBvC,YAAatB,KAAKzF,MAClBoD,UAAW4D,GAAAA,CAAW,eAAgB5D,IAE1CmG,cAAe,CAAEnG,UAAW,+BAC5BoG,eAAgB,CAAEpG,UAAW,yCAC7BwF,QAASK,EACTnE,OAAQW,KAAKzF,OAASyF,KAAKzF,MAAM8E,OACjC2E,0BAA2B,CACvBtC,IAAK,MACL/D,UAAW,uDAEfsG,iBAAkBjE,KAAKkE,yBACvBC,uBAAwB,CACpBzC,IAAK,MACL/D,UAAW,6BAEfyG,eACIvD,GACAA,EAAMuD,gBACNvD,EAAMuD,eAAezB,OAAS,GAC9B9B,EAAMuD,eAAerF,KAAI,CAAC6D,EAAuB3D,IAAkBe,KAAKqE,kBAAkBzB,EAAM3D,OAExG,OAAOe,KAAKzF,MAAMuG,WAAW8C,GAKzBM,yBACJ,MAAM,OAAE7E,EAAM,UAAEiF,GAActE,KAAKzF,OAC7B,QAAE4I,GAAY9D,EACpBW,KAAKlE,QAAQyI,cAAcC,MAAQC,EAAAA,kBAAAA,UACnC,MAAMC,GAAqBxI,EAAAA,EAAAA,wBAAuB8D,KAAKpF,iBAAmBoF,KAAKlE,SAC/EkE,KAAKlE,QAAQyI,cAAcC,MAAQC,EAAAA,kBAAAA,YACnC,MAAME,GAAuBzI,EAAAA,EAAAA,wBAAuB8D,KAAKpF,iBAAmBoF,KAAKlE,SACjF,OAAKuD,EAAOuF,cAKRvH,EAAAA,cAAAA,EAAAA,SAAAA,KACIA,EAAAA,cAAAA,SAAAA,OAAAA,OAAAA,CACIwH,SAAU7E,KAAKmC,MAAMoB,WACrB5F,UAAU,yBAAwB,aACtB,GAAG2G,EAAUQ,iBAAiB3B,MAAAA,GAAAA,EAASC,KAAOD,EAAQC,KAAO,KACzE9F,QAAS0C,KAAKqD,aACd0B,IAAK/E,KAAKiD,oBACNyB,GAEHJ,EAAUQ,eACN,IAERR,EAAUU,mBAAkB,IAE7B3H,EAAAA,cAAAA,SAAAA,OAAAA,OAAAA,CACIM,UAAU,2BAA0B,aACxB,GAAG2G,EAAUW,mBAAmB9B,MAAAA,GAAAA,EAASC,KAAOD,EAAQC,KAAO,KAC3E9F,QAAS0C,KAAKsD,eACdyB,IAAK/E,KAAKkD,sBACNyB,EAAoB,CACxBE,UAAW7E,KAAKmC,MAAMoB,aAErBe,EAAUW,mBA1BnBjF,KAAKzF,MAAME,QAAQgG,UAAUyE,MAAM,yDAC5B,MA+BP7B,eACJ,MAAMhB,EAAiB,CAAElB,eAAe,GACxCnB,KAAKzF,MAAME,QAAQS,cAAcoH,QAAOC,EAAAA,EAAAA,IAA0BF,GAAiBA,GAC/EA,EAAelB,gBACfnB,KAAKmF,SAAS,CACV5B,YAAY,IAEhB6B,YAAW,KAAK,MACqB,QAAjC,EAAApF,KAAKkD,qBAAqBmC,eAAO,OAAjC,EAAmCC,UACpC,KAIHhC,iBACJ,MAAMjB,EAAiB,CAAElB,eAAe,GACxCnB,KAAKzF,MAAME,QAAQS,cAAcoH,QAAOC,EAAAA,EAAAA,IAA0BF,GAAiBA,GAC9EA,EAAelB,gBAChBnB,KAAKmF,SAAS,CACV5B,YAAY,IAEhB6B,YAAW,KAAK,MACmB,QAA/B,EAAApF,KAAKiD,mBAAmBoC,eAAO,OAA/B,EAAiCC,UAClC,KAIHjB,kBAAkBzB,EAAuB3D,GAC7C,OACI5B,EAAAA,cAACA,EAAAA,SAAc,CAAC6B,IAAKD,GAChB5B,EAAAA,aAAmBuF,EAA4B,CAAER,iBAAkBpC,KAAKzF,MAAM8E,OAAO+C,sBArIhGY,GAAS,SADdR,EAAAA,IACKQ,GA2IN,2FC5LA,MAiBA,EAjBqDzI,IACjD,MAAM,QAAE4I,EAAO,mBAAEU,EAAkB,eAAEO,GAAmB7J,EACxD,OAAKA,EAAM4I,SAAY5I,EAAM0J,kBAAqB1J,EAAM6J,eAKpD/G,EAAAA,cAACwF,EAAAA,OAAM,iBAAKgB,GACRxG,EAAAA,cAACyF,EAAAA,KAAI,iBAAKvI,EAAMuJ,eACZzG,EAAAA,cAACyF,EAAAA,KAAI,iBAAKvI,EAAMwJ,gBAAiBZ,GAChC5I,EAAM0J,kBAAoB5G,EAAAA,cAACyF,EAAAA,KAAI,iBAAKvI,EAAMyJ,2BAA4BzJ,EAAM0J,mBAEjF5G,EAAAA,cAACyF,EAAAA,KAAI,iBAAKvI,EAAM4J,wBAAyBC,KAT7C7J,EAAME,QAAQgG,UAAUyE,MAAM,kDACvB,quBCcf,MAAMK,UAA2BlI,EAAAA,cAG7BsC,YAAYpF,GACRqF,MAAMrF,GAiDH,KAAAuF,oBAAuBC,GAA0CC,KAAKzF,MAAM8E,OAAO8D,QAAQC,KAAOrD,EAAMG,OAAOC,MAE/G,KAAAqF,qBAAwBC,GAAuB1F,IAC9CC,KAAKzF,MAAM8E,OAAOqG,OAAS1F,KAAKzF,MAAM8E,OAAOqG,MAAMD,KACnDzF,KAAKzF,MAAM8E,OAAOqG,MAAMD,GAAWE,SAAW5F,EAAMG,OAAOC,QApD/DH,KAAKpF,kBAAmB0F,EAAAA,EAAAA,oBACpBN,KAAKzF,MAAME,QAAQa,QAAQiF,kBAC3BP,KAAKzF,MAAMiG,aACXR,KAAKzF,MAAMkG,WAIZG,SACH,MAAM,OAAEvB,EAAM,UAAEiF,EAAS,KAAE5J,GAASsF,KAAKzF,OACnC,UAAEoD,EAAS,QAAEwF,EAAO,MAAEuC,GAAUrG,GAChC,8CAAEuG,EAA6C,kDAAEC,GAAsDvB,GACvG,QAAEwB,GAAYpL,EACdqL,EAAgBD,GAAWA,EAAQ7E,QAAU6E,EAAQ7E,OAAO0B,QAAW,EACvEqD,EACe,IAAjBD,EAAqBH,EAAgDC,EACnErG,GAAcnF,EAAAA,EAAAA,QAAO2L,EAA+BD,GAEpDE,EAAS,OACRjG,KAAKzF,OAAK,IACboD,UAAAA,EACA4H,mBAAoB,CAChBjE,YAAatB,KAAKzF,MAClBoD,UAAW4D,GAAAA,CAAW,0BAA2BlC,EAAO1B,YAE5DwF,QAASA,GAAWA,EAAQC,MACxB/F,EAAAA,cAACoG,EAAAA,GAAa,CACV9F,UAAU,mCACV+D,IAAKyB,EAAQzB,KAAO,KACpB0B,KAAMD,EAAQC,KACdM,UAAW,CAAEC,OAAQ3D,KAAKF,oBAAqBmC,eAAgBjC,KAAKzF,MAAME,QAAQa,WAG1FoK,MAAOA,GAASA,EAAM/C,OAAS,GAC3BtF,EAAAA,cAAC6I,EAAAA,EAAc,iBACP,CACAR,MAAAA,EACA1D,aAAchC,KAAKwF,qBACnBvD,eAAgBjC,KAAKzF,MAAME,QAAQa,QACnCV,iBAAkBoF,KAAKpF,oBAInC4E,YAAanC,EAAAA,cAAC8I,EAAAA,EAAoB,CAAC3G,YAAaA,MAGpD,OAAOQ,KAAKzF,MAAMuG,WAAWmF,IAYrC,iGChFA,MAYA,EAZuE1L,IACnE,MAAM,mBAAEgL,EAAkB,QAAEpC,EAAO,YAAE3D,EAAW,MAAEkG,GAAUnL,EAE5D,OACI8C,EAAAA,cAACwF,EAAAA,OAAM,iBAAK0C,GACPpC,EACA3D,EACAkG,mECLb,MAIA,EAJiF,QAAC,YAAElG,GAAa,SAC7FnC,EAAAA,cAAAA,IAAAA,CAAGM,UAAU,wCAAwC6B,gFCSzD,MAeM4G,EAAoB,CAACC,EAAwBzL,KAC/C,IAAKyL,GAAgC,IAApBA,EAAS1D,OACtB,OAAO,KAEX,MAAM2D,EAAuC,GACvCxK,GAAUC,EAAAA,EAAAA,kBAAiB,QAASnB,EAAmB,IAgB7D,OAfAyL,EAAS5H,SAAQ,CAAC8H,EAAMtH,KACpBnD,EAAQyI,cAAcC,MAAQ+B,EAAKZ,SACnC,MAAMpH,GAAarC,EAAAA,EAAAA,wBAAuBtB,EAAmBkB,GACvD0K,EAAoC,CACtCC,UAAWF,EAAKE,UAChB9I,UAAW,gCACXgI,SAAUY,EAAKZ,SACfe,QAASH,EAAKG,QAAQC,eACtBC,aAAcL,EAAKK,aACnBC,KAAM,OACNC,qBAAsBvI,GAE1B+H,EAAczH,KAAK2H,MAGhBF,GAGX,EAvCoE,IAA8D,IAA7D,MAAEZ,EAAK,iBAAE9K,EAAgB,eAAEqH,EAAc,aAAED,GAAc,EAC1H,GAAqB,IAAjB0D,EAAM/C,OACN,OAAO,KAEX,MAAM2D,EAAgBF,EAAkBV,EAAO9K,GAE/C,OACIyC,EAAAA,cAAAA,MAAAA,CAAKM,UAAU,kCACV2I,GAAiBA,EAAc3D,OAAS,EACrCtF,EAAAA,cAACoG,EAAAA,GAAc,CAACiC,MAAOY,EAAe5C,UAAW,CAAE1B,aAAAA,EAAcC,eAAAA,KACjE,wvBC4BhB,MAAM8E,UAA+B1J,EAAAA,cAUjCsC,YAAYpF,GACRqF,MAAMrF,GA+JO,KAAAyM,2BAA6B,KACrChH,KAAKmC,MAAM8E,6BACZjH,KAAKmF,SAAS,CACV8B,6BAA6B,KAKxB,KAAAC,aAAe,KAC5BlH,KAAKmF,SAAS,CACV8B,6BAA6B,KAIpB,KAAAE,gBAAkB,KAC/BnH,KAAKmF,SAAS,CACViC,qCAAsCpH,KAAKmC,MAAMiF,uCAIxC,KAAAC,gBAAmBC,IAChCtH,KAAKmF,SAAS,CACVoC,+BAAgCD,KAIvB,KAAAE,cAAiBC,IAC9BzH,KAAKmF,SAAS,CACVuC,6BAA8BD,KAIrB,KAAAE,gCAAmCC,IAChD5H,KAAKmF,SAAS,CACV0C,wBAAyBD,EACzBR,qCAAqC,IAGzCpH,KAAKgH,8BAGQ,KAAAc,kBAAoB,KAAK,QACtC,MAAMC,EAAW/H,KAAKzF,MAAMG,KAAKsN,oBAAoB/G,OAC/CgH,GAA8C,QAAlC,EAAAjI,KAAKzF,MAAMG,KAAKwN,0BAAkB,OAAQ,QAAR,EAAlC,EAAoCjH,cAAM,WAAR,EAAlC,EAA4CgH,YAAa,GAErEE,EAA4C,CAC9CC,SAAU,IAAIC,KAAKrI,KAAKmC,MAAMoF,gCAC9Be,OAAQ,IAAID,KAAKrI,KAAKmC,MAAMuF,8BAC5Ba,sBAAuBvI,KAAKmC,MAAM0F,wBAClCW,gBAAiBP,EACjBQ,oBAAqBV,EAASW,MAC9BC,kBAAmBC,EAAAA,IAAAA,OAGjBnO,EAAU,CAAEoO,cAAe7I,KAAKzF,MAAME,QAAQS,eAEpD4N,EAAAA,gCAAAA,6BAA6DrO,EAASwN,EAAWE,GAEjFnI,KAAKmF,SAAS,CACV8B,6BAA6B,KAzNjCjH,KAAKpF,kBAAmB0F,EAAAA,EAAAA,oBACpBN,KAAKzF,MAAME,QAAQa,QAAQiF,kBAC3BP,KAAKzF,MAAMiG,aACXR,KAAKzF,MAAMkG,WAEfT,KAAKmC,MAAQ,CACT8E,6BAA6B,EAC7BM,+BAAgC,GAChCG,6BAA8B,GAC9BN,qCAAqC,EACrCS,yBAAyB,GAhBvB,gCACN,MAAqD,KAA9C7H,KAAKmC,MAAMoF,gCAAqF,KAA5CvH,KAAKmC,MAAMuF,6BAmBnE9G,SACH,MAAMmH,EAAW,IAAI/H,KAAKzF,MAAO,mCAC3BwO,EAA4B,IAAI/I,KAAKzF,MAAO,uBAClD,GAAI,CAACwN,EAAUgB,GAASpK,cAASxD,GAE7B,OADA6E,KAAKzF,MAAME,QAAQgG,UAAUyE,MAAM,wDAC5B,KAGX,MAAM,OAAE7F,EAAM,UAAEiF,EAAS,QAAE7J,GAAYuF,KAAKzF,OACtC,QAAE4I,GAAY9D,GACd,4BACF2J,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,GACA1F,GAEE,4BAAE2C,EAA2B,+BAAEM,EAA8B,6BAAEG,GAAiC1H,KAAKmC,MAErG8H,EAAgBlC,EAASmC,cACzBC,EAAYnK,KAAKoK,gBAAgB,IAAI/B,KAAKN,EAASsC,kBACnDtQ,EAAO,GAAGgO,EAASuC,aAAavC,EAASwC,WAC/C,IAAIC,EAAiB,EACjBC,EAAyB,EACzBC,EAAS,EAE6B,IAAtC3B,EAAQ4B,2BACRH,EAAiBzB,EAAQ6B,YAAc7B,EAAQ8B,QAC/CJ,EAAyB1B,EAAQ8B,QACjCH,EAAS3B,EAAQ8B,QAAU9B,EAAQ6B,cAEnCJ,EAAiBzB,EAAQ4B,0BAA4B5B,EAAQ+B,sBAC7DL,EAAyB1B,EAAQ+B,sBACjCJ,EAAS3B,EAAQ+B,sBAAwB/B,EAAQ4B,2BAGrD,MAAMI,EAAeL,EAAS,EAAI1K,KAAKgL,gBAAgBN,GAAU,KAC3DO,EAAkBjL,KAAKgL,gBAAgBR,GACvCU,EAAclL,KAAKgL,gBAAgBP,GACnCU,EAAW1H,EAAAA,GAAoB,OAAQhJ,EAAQS,gBAAkB,GACjEkQ,EAAerD,EAASW,MACxB2C,EAAYtD,EAASuD,MAGrBC,EAFaF,GAAatD,EAASyD,WAGrCnO,EAAAA,cAACoO,EAAAA,GAA2B,CACxB9N,UAAU,8BACV+N,mBAAoB1L,KAAK2H,gCACzB4B,4BAA6BA,EAC7BoC,iBAAkB3L,KAAKmH,gBACvByE,mBAAoB9B,EACpBC,sBAAuBA,EACvB8B,kBAAmB7L,KAAKmC,MAAMiF,sCAGlCiE,GACIhO,EAAAA,cAACyO,EAAAA,GAAS,CACNnO,UAAU,8BACV+N,mBAAoB1L,KAAKgH,2BACzBuC,4BAA6BA,IAKnCtD,EAAS,OACRjG,KAAKzF,OAAK,IACb4I,QAAS9F,EAAAA,cAAC0O,EAAAA,QAAO,CAAC3I,KAAMD,EAAQC,KAAM1B,IAAKyB,EAAQzB,MACnDuH,sBACI5L,EAAAA,cAAC0O,EAAAA,QAAO,CAACrK,IAAG,KAAiB0B,KAAM6F,EAAuBtL,UAAU,iDAExEqO,cACI3O,EAAAA,cAAC4O,EAAAA,GAAa,CAAClS,KAAMA,EAAMkQ,cAAeA,EAAeE,UAAWA,EAAWhB,oBAAqBA,IAExG+C,cAAe7O,EAAAA,cAAC8O,EAAAA,GAAa,CAAClB,gBAAiBA,EAAiB7B,qBAAsBA,IACtFJ,4BACI3L,EAAAA,cAAC0O,EAAAA,QAAO,CACJrK,IAAG,KACH0B,KAAM4F,EACNrL,UAAU,wDAGlBsN,gBAAiB5N,EAAAA,cAAC+O,EAAAA,GAAwB,CAAChD,qBAAsBA,EAAsB6B,gBAAiBA,IACxGC,YAAa7N,EAAAA,cAACgP,EAAAA,GAAoB,CAAChD,iBAAkBA,EAAkB6B,YAAaA,IACpFH,aAAc1N,EAAAA,cAACiP,EAAAA,GAAqB,CAAChD,kBAAmBA,EAAmByB,aAAcA,IACzFwB,WAAYlP,EAAAA,cAACmP,EAAAA,GAAU,CAACC,MAAOvD,EAAoB3C,KAAM4E,EAAUvQ,iBAAkBoF,KAAKpF,mBAC1F8R,QAASnB,EACToB,sBAAuBtB,GACnBhO,EAAAA,cAACuP,EAAAA,GAAqB,CAClBC,MAAOzB,EACP0B,YAAa7F,EACb8F,OAAQ/M,KAAKkH,aACb8F,eAAgBzF,EAChB0F,aAAcvF,EACdwF,iBAAkBlN,KAAKqH,gBACvB8F,eAAgBnN,KAAKwH,cACrB4F,iBAAkBpN,KAAKqN,0BACvB7D,iBAAkBA,EAClBC,iBAAkBA,EAClBC,cAAeA,EACfC,YAAaA,EACbC,mBAAoBA,EACpBC,YAAaA,EACbyD,gBAAiBtN,KAAK8H,kBACtBnK,UAAU,8BACV4P,aAAa,GACbC,kBAAkB,GAClBxD,eAAgBA,MAK5B,OAAOhK,KAAKzF,MAAMuG,WAAWmF,GAGzB+E,gBAAgByC,GACpB,MAAMC,EAAe,IAAI1N,KAAKzF,MAAO,oCAGrC,MAAO,GAFgB,IAAIyF,KAAKzF,MAAO,0CAE7BkD,CAAegQ,EAASrT,QAAQ,GAAIsT,KAG1CtD,gBAAgBuD,GAOpB,OANiB,IAAIC,KAAKC,eAAe7N,KAAKzF,MAAME,QAAQS,cAAc+G,eAAe6L,OAAQ,CAC7FC,MAAO,OACPC,IAAK,UACLC,KAAM,YAGM5T,OAAOsT,KAjKjBO,EAAAA,EAAAA,IAAAA,CAATC,EAAAA,IAAQ,8CAoOb,uFC5RA,QAAgB5T,IACZ,MAAM,QACF4I,EAAO,sBACP8F,EAAqB,4BACrBD,EAA2B,cAC3BgD,EAAa,cACbE,EAAa,oBACbkC,EAAmB,oBACnBC,EAAmB,WACnB9B,EAAU,QACVG,EAAO,sBACPC,EAAqB,gBACrB1B,EAAe,YACfC,EAAW,aACXH,GACAxQ,EAEJ,OACI8C,EAAAA,cAACyF,EAAAA,KAAI,CAACnF,UAAU,+BACXwF,EACAwJ,EACAD,EACAzD,EACD5L,EAAAA,cAAAA,UAAAA,CAASM,UAAU,wCACdqO,EACAE,GAEJlD,EACD3L,EAAAA,cAAAA,UAAAA,CAASM,UAAU,4FACdyQ,EACAC,EACApD,EACAC,EACAH,GAEJwB,iKCnBN,MAAMT,EAAsD,IAAmE,IAAlE,UAAEnO,EAAS,mBAAE+N,EAAkB,4BAAEnC,GAA6B,EAC9H,OACIlM,EAAAA,cAAAA,MAAAA,CAAKM,UAAWA,GACZN,EAAAA,cAACiR,EAAAA,OAAM,CAAC3Q,UAAW,GAAGA,8BAAuCL,QAASoO,GACjEnC,KAMJkC,EAAqE,IAS7E,IAT8E,UAC/E9N,EAAS,mBACT+N,EAAkB,4BAClBnC,EAA2B,iBAC3BoC,EAAgB,mBAChBC,EAAkB,sBAClB7B,EAAqB,kBACrB8B,EAAiB,gBACjB0C,GACH,EACG,MAAMC,EAA0BnR,EAAAA,aAAkB,KAC9CqO,GAAmB,KACpB,CAACA,IAEE+C,EAAkBpR,EAAAA,aAAkB,KACtCqO,GAAmB,KACpB,CAACA,IAEEgD,OAAuCvT,IAApBoT,EAAgCA,EAAkBlR,EAAAA,YACrEsR,EAAiC,iCAAiCC,EAAAA,OAAAA,KAAAA,iBACxE,OACIvR,EAAAA,cAAAA,MAAAA,CAAKM,UAAW,GAAGA,eACfN,EAAAA,cAACiR,EAAAA,OAAM,CACH3Q,UACIkO,EACM,GAAGlO,wCACH,GAAGA,0CAEbL,QAASqO,EACTkD,SAAUH,EAAgB,gBACZ,OAAM,gBACL7C,EACfiD,GAAIH,GAEJtR,EAAAA,cAAAA,OAAAA,CAAMM,UAAW,GAAGA,4CAAqD4L,IAE7ElM,EAAAA,cAAC0R,EAAAA,QAAO,mBACaJ,EACjBhR,UAAW,GAAGA,+CACdmE,OAAQ+J,EACRmD,UAAU,SACV9O,OAAQwO,EACR3B,OAAQpB,EACR9E,KAAK,UAAS,eACAgF,GAEdxO,EAAAA,cAACiR,EAAAA,OAAM,CACHhR,QAASkR,EACT7Q,UAAW,GAAGA,8CACdkJ,KAAK,UAEJ+E,GAELvO,EAAAA,cAACiR,EAAAA,OAAM,CAAChR,QAASmR,EAAiB9Q,UAAW,GAAGA,8CAAuDkJ,KAAK,UACvGkD,MCxDR6C,EAAsE,IAoB9E,IApB+E,UAChFjP,EAAS,MACTkP,EAAK,YACLC,EAAW,OACXC,EAAM,eACNC,EAAc,aACdC,EAAY,iBACZC,EAAgB,eAChBC,EAAc,iBACdC,EAAgB,iBAChB5D,EAAgB,iBAChBC,EAAgB,cAChBC,EAAa,YACbC,EAAW,mBACXC,EAAkB,YAClBC,EAAW,gBACXyD,EAAe,aACfC,EAAY,kBACZC,EAAiB,eACjBxD,GACH,EACG,MAAMiF,EAAwB5R,EAAAA,aACzB0C,IACG,MAAMI,EAAQJ,EAAMG,OAAOC,MAE3B+M,EAAiB/M,KAErB,CAAC+M,IAGCgC,EAAsB7R,EAAAA,aACvB0C,IACG,MAAMI,EAAQJ,EAAMG,OAAOC,MAE3BgN,EAAehN,KAEnB,CAACgN,IAOCgC,EAAiB9R,EAAAA,aAClB0C,IACOqP,EAAAA,iBAAAA,WAA4BrP,EAAMG,OAAOoF,QAAUvF,EAAMG,OAAOC,QAAU6M,GAC1EjN,EAAMG,OAAOoF,UAGrB,CAAC0H,IAOCqC,EAAehS,EAAAA,aAChB0C,IACOqP,EAAAA,iBAAAA,WAA4BrP,EAAMG,OAAOoF,QAAUvF,EAAMG,OAAOC,QAAU8M,GAC1ElN,EAAMG,OAAOoF,UAGrB,CAAC2H,IAGL,OACI5P,EAAAA,cAACiS,EAAAA,MAAK,CACF3R,UAAU,2BACVmE,OAAQgL,EACRyC,mBAAmB,SACnBC,iBAAiB,SACjBC,WAAS,EACTC,MAAM,EACN3C,OAAQA,EAAM,aACF/C,GAEZ3M,EAAAA,cAACsS,EAAAA,YAAW,CAAC5C,OAAQA,GAASvD,GAC9BnM,EAAAA,cAACuS,EAAAA,UAAS,KACNvS,EAAAA,cAAAA,QAAAA,CAAOwS,QAAQ,eAAepG,GAC9BpM,EAAAA,cAAAA,KAAAA,MACAA,EAAAA,cAAAA,MAAAA,CAAKyR,GAAG,cAAcnR,UAAW,GAAGA,kBAC/BkP,GAEJU,GACGlQ,EAAAA,cAAAA,MAAAA,KACKmQ,EACDnQ,EAAAA,cAAAA,OAAAA,CAAMM,UAAW,GAAGA,mBAA4B4P,IAGxDlQ,EAAAA,cAAAA,MAAAA,KACIA,EAAAA,cAAAA,MAAAA,CAAKM,UAAW,GAAGA,iCACfN,EAAAA,cAAAA,QAAAA,CAAOwS,QAAQ,oBAAoBnG,GACnCrM,EAAAA,cAAAA,QAAAA,CACIyR,GAAG,mBACHgB,KAAK,OACL3P,MAAO6M,EACP+C,OAAQZ,EACRa,SAAUf,EACVgB,IAAKhD,EACLtP,UAAW,GAAGA,kCAGtBN,EAAAA,cAAAA,MAAAA,CAAKM,UAAW,GAAGA,+BACfN,EAAAA,cAAAA,QAAAA,CAAOwS,QAAQ,kBAAkBlG,GACjCtM,EAAAA,cAAAA,QAAAA,CACIyR,GAAG,iBACHgB,KAAK,OACL3P,MAAO8M,EACP8C,OAAQV,EACRW,SAAUd,EACVgB,IAAKlD,EACLrP,UAAW,GAAGA,oCAK9BN,EAAAA,cAAC8S,EAAAA,YAAW,KACR9S,EAAAA,cAAAA,SAAAA,CACIM,UAAW,GAAGA,2BACdL,QAASgQ,EACTzI,UAAWuI,EAAgB,iBACXA,GAEfxD,GAEJ,IACDvM,EAAAA,cAAAA,SAAAA,CAAQM,UAAW,GAAGA,2BAAoCL,QAASyP,GAC9DlD,MC7FRoC,EAAyC,QAAC,KAAElS,EAAI,cAAEkQ,EAAa,oBAAEd,EAAmB,UAAEgB,GAAW,SAC1G9M,IAAAA,cAAAA,MAAAA,CAAKM,UAAU,iDACXN,IAAAA,cAAAA,KAAAA,KAAKtD,GACLsD,IAAAA,cAAAA,MAAAA,CAAKM,UAAU,+CAA6C,IAAGsM,GAC/D5M,IAAAA,cAAAA,MAAAA,CAAKM,UAAU,2CACVwL,EAAmB,IAAGgB,KAKtBgC,EAA0C,QAAC,gBAAElB,EAAe,qBAAE7B,GAAsB,SAC7F/L,IAAAA,cAAAA,MAAAA,CAAKM,UAAU,gDACXN,IAAAA,cAAAA,MAAAA,CAAKM,UAAU,uDAAuDyL,GACtE/L,IAAAA,cAAAA,MAAAA,CAAKM,UAAU,wDAAwDsN,KA2BlEmB,EAAoE,QAAC,qBAAEhD,EAAoB,gBAAE6B,GAAiB,SACvH5N,IAAAA,cAAAA,MAAAA,CAAKM,UAAU,wDACXN,IAAAA,cAAAA,MAAAA,CAAKM,UAAU,uDACXN,IAAAA,cAAAA,MAAAA,CAAKM,UAAU,uDAAuDyL,IAE1E/L,IAAAA,cAAAA,MAAAA,CAAKM,UAAU,uDACXN,IAAAA,cAAAA,MAAAA,CAAKM,UAAU,uDAAuDsN,MAYrEoB,EAA4D,QAAC,iBAAEhD,EAAgB,YAAE6B,GAAa,SACvG7N,IAAAA,cAAAA,MAAAA,CAAKM,UAAU,wDACXN,IAAAA,cAAAA,MAAAA,CAAKM,UAAU,uDACXN,IAAAA,cAAAA,MAAAA,CAAKM,UAAU,mDAAmD0L,IAEtEhM,IAAAA,cAAAA,MAAAA,CAAKM,UAAU,uDACXN,IAAAA,cAAAA,MAAAA,CAAKM,UAAU,mDAAmDuN,MAYjEoB,EAA8D,QAAC,kBAAEhD,EAAiB,aAAEyB,GAAc,SAC3G1N,IAAAA,cAAAA,MAAAA,CAAKM,UAAU,wDACVoN,GACG1N,IAAAA,cAAAA,MAAAA,CAAKM,UAAU,uDACXN,IAAAA,cAAAA,MAAAA,CAAKM,UAAU,oDAAoD2L,IAG3EjM,IAAAA,cAAAA,MAAAA,CAAKM,UAAU,uDACVoN,GAAgB1N,IAAAA,cAAAA,MAAAA,CAAKM,UAAU,oDAAoDoN,MAInFyB,EAAoC,IAAsC,IAArC,KAAEjG,EAAI,MAAEkG,EAAK,iBAAE7R,GAAkB,EAC/E,MAAMkB,GAAUC,EAAAA,EAAAA,kBAAiB,QAASnB,EAAmB6J,EAAAA,kBAAAA,gBACvDlG,GAAarC,EAAAA,EAAAA,wBAAuBtB,EAAmBkB,GAC7D,OACIuB,IAAAA,cAAAA,IAAAA,OAAAA,OAAAA,CAAGM,UAAU,wCAAwChC,KAAM4K,GAAUhI,GAChEkO,2sBCxIb,MAAM2D,UAA2B/S,EAAAA,cAG7BsC,YAAYpF,GACRqF,MAAMrF,GA0CH,KAAAuF,oBAAuBC,GAA0CC,KAAKzF,MAAM8E,OAAO8D,QAASC,KAAOrD,EAAMG,OAAOC,MAEhH,KAAAqF,qBAAwBC,GAAuB1F,IAC9CC,KAAKzF,MAAM8E,OAAOqG,OAAS1F,KAAKzF,MAAM8E,OAAOqG,MAAMD,KACnDzF,KAAKzF,MAAM8E,OAAOqG,MAAMD,GAAWE,SAAW5F,EAAMG,OAAOC,QA7C/DH,KAAKpF,kBAAmB0F,EAAAA,EAAAA,oBACpBN,KAAKzF,MAAME,QAAQa,QAAQiF,kBAC3BP,KAAKzF,MAAMiG,aACXR,KAAKzF,MAAMkG,WAIZG,SACH,MAAM,OAAEvB,GAAWW,KAAKzF,OAClB,UAAEoD,EAAS,QAAEwF,EAAO,MAAEuC,GAAUrG,EAEhC4G,EAAS,OACRjG,KAAKzF,OAAK,IACboD,UAAAA,EACAyS,mBAAoB,CAChB9O,YAAatB,KAAKzF,MAClBoD,UAAW4D,GAAAA,CAAW,0BAA2BlC,EAAO1B,YAE5DwF,QAASA,GAAWA,EAAQC,MACxB/F,EAAAA,cAACoG,EAAAA,GAAa,CACV9F,UAAU,mCACV+D,IAAKyB,EAAQzB,KAAO,KACpB0B,KAAMD,EAAQC,KACdM,UAAW,CAAEC,OAAQ3D,KAAKF,oBAAqBmC,eAAgBjC,KAAKzF,MAAME,QAAQa,WAG1FoK,MAAOA,GAASA,EAAM/C,OAAS,GAC3BtF,EAAAA,cAAC6I,EAAAA,EAAc,iBACP,CACAR,MAAAA,EACA1D,aAAchC,KAAKwF,qBACnBvD,eAAgBjC,KAAKzF,MAAME,QAAQa,QACnCV,iBAAkBoF,KAAKpF,sBAMvC,OAAOoF,KAAKzF,MAAMuG,WAAWmF,IAYrC,2FCtEA,MAWA,EAXuE1L,IACnE,MAAM,mBAAE6V,EAAkB,QAAEjN,EAAO,MAAEuC,GAAUnL,EAE/C,OACI8C,EAAAA,cAACwF,EAAAA,OAAM,iBAAKuN,GACPjN,EACAuC,+ECMb,MAcMU,EAAoB,CAACC,EAAwBzL,KAC/C,IAAKyL,GAAgC,IAApBA,EAAS1D,OACtB,OAAO,KAEX,MAAM2D,EAAuC,GACvCxK,GAAUC,EAAAA,EAAAA,kBAAiB,QAASnB,EAAmB,IAgB7D,OAfAyL,EAAS5H,SAAQ,CAAC8H,EAAMtH,KACpBnD,EAAQyI,cAAcC,MAAQ+B,EAAKZ,SACnC,MAAMpH,GAAarC,EAAAA,EAAAA,wBAAuBtB,EAAmBkB,GACvD0K,EAAoC,CACtCC,UAAWF,EAAKE,UAChB9I,UAAW,gCACXgI,SAAUY,EAAKZ,SACfe,QAASH,EAAKG,QAAQC,eACtBC,aAAcL,EAAKK,aACnBC,KAAM,OACNC,qBAAsBvI,GAE1B+H,EAAczH,KAAK2H,MAGhBF,GAGX,EAtCoE,IAA8D,IAA7D,MAAEZ,EAAK,iBAAE9K,EAAgB,eAAEqH,EAAc,aAAED,GAAc,EAC1H,GAAqB,IAAjB0D,EAAM/C,OACN,OAAO,KAEX,MAAM2D,EAAgBF,EAAkBV,EAAO9K,GAC/C,OACIyC,EAAAA,cAAAA,MAAAA,CAAKM,UAAU,kCACV2I,GAAiBA,EAAc3D,OAAS,EACrCtF,EAAAA,cAACoG,EAAAA,GAAc,CAACiC,MAAOY,EAAe5C,UAAW,CAAE1B,aAAAA,EAAcC,eAAAA,KACjE,4xBCsChB,IAAMoO,EAAN,cAAiChT,EAAAA,UAkB7BsC,YAAYpF,GACRqF,MAAMrF,GAlBO,KAAAsF,gBAA0B,0BAkGpC,KAAAC,oBAAuBC,GAA0CC,KAAKzF,MAAM8E,OAAO8D,QAAQC,KAAOrD,EAAMG,OAAOC,MAE/G,KAAAmQ,gBAAmBvQ,IACtB,MAAM+O,EAAK/O,EAAMG,OAAO4O,GAClB3O,EAAQJ,EAAMG,OAAOC,MAE3B,OAAQ2O,EAAGyB,eACP,IAAK,YACDvQ,KAAKwQ,UAAYrQ,EACjB,MAEJ,IAAK,UACDH,KAAKyQ,QAAUtQ,EACf,MAEJ,IAAK,QACDH,KAAK0Q,WAAavQ,IAQvB,KAAAwQ,QAAU,KACb3Q,KAAK4Q,mBACL5Q,KAAK6Q,sBAGL7Q,KAAK8Q,oBAAsBC,aAAY,KACnC/Q,KAAKgR,gCACN,KACH5L,YAAW,KACP6L,cAAcjR,KAAK8Q,uBACpB,MAIU,KAAAE,4BAA8B,KAEvCE,QAAUA,OAAe,QAAKA,OAAe,OAA4B,2BACzED,cAAcjR,KAAK8Q,qBACnB9Q,KAAKmR,eAAgB,IAIZ,KAAAP,iBAAmB,KAChC,MAAM,UAAEtM,GAActE,KAAKzF,MACrB6W,EAA2B9M,EAAU8M,0BAA4B,sCAGnEF,OAAkB,WAAKA,OAAkB,UAAmB,iBAE5DA,OAAkB,UAAmB,gBAAEnS,KAClCsS,IACG,MAAMlR,EAAQkR,EAAIC,IAAMtR,KAAKuR,YAAYF,EAAIC,KAAO,GACpD,OAAQD,EAAIG,GAAGjB,eACX,IAAK,YACDvQ,KAAKwQ,UAAYrQ,EACjB,MAEJ,IAAK,UACDH,KAAKyQ,QAAUtQ,EACf,MAEJ,IAAK,QACDH,KAAK6M,MAAQ1M,EACbH,KAAK0Q,WAAaW,EAAII,IACtBJ,EAAIK,SAAWN,OAiBtB,KAAAP,oBAAsB,KACnC,MAAM,UAAEvM,GAActE,KAAKzF,MAG3B,GAAI2W,QAAUA,OAAgB,QAAG,CAC7B,MAAMS,EAAU,CACZC,eAAgBtN,EAAUuN,0BAC1BC,gBAAiBxN,EAAUyN,gBAI/BC,OAAOC,OAAOf,OAAgB,QAAGS,KA/KrC3R,KAAKwQ,UAAY,GACjBxQ,KAAKyQ,QAAU,GACfzQ,KAAK6M,MAAQ,GACb7M,KAAK0Q,WAAawB,EAAAA,WAAAA,aAAAA,OAClBlS,KAAKmR,eAAgB,EACrBnR,KAAKpF,kBAAmB0F,EAAAA,EAAAA,oBACpBN,KAAKzF,MAAME,QAAQa,QAAQiF,kBAC3BP,KAAKzF,MAAMiG,aACXR,KAAKzF,MAAMkG,WAIZ0R,oBACHnS,KAAK2Q,UAIFyB,qBAECpS,KAAKmR,eAAiBD,QAAUA,OAAiB,UAAKA,OAAiB,SAAc,YAErFA,OAAiB,SAAc,aAIhCxQ,sBACHC,EACA0R,GAEA,OAAIrS,KAAKmC,QAAUkQ,GAAarS,KAAKzF,MAAMG,OAASiG,EAAUjG,KAM3DkG,SACH,MAAM,OAAEvB,EAAM,UAAEiF,GAActE,KAAKzF,MAE7B0L,EAAS,OACRjG,KAAKzF,OAAK,IACb+X,UAAW,CACPC,eAAgBvS,KAAKmR,eAEzBqB,mBAAoB,CAChBlR,YAAatB,KAAKzF,MAClBoD,UAAW4D,GAAAA,CAAWvB,KAAKH,gBAAiBR,EAAO1B,YAEvD8U,QAAS,CACLC,MAAO,CACHhR,IAAK4N,EAAAA,MACLxN,QAAQ,GAEZ6Q,UAAW,CACPjR,IAAKkO,EAAAA,WAETgD,KAAMvV,EAAAA,cAACwV,EAAAA,EAAsC,CAAClV,UAAWqC,KAAKH,kBAC9D8R,QAAStU,EAAAA,cAACyV,EAAAA,EAAyC,CAACnV,UAAWqC,KAAKH,gBAAiB8R,QAASrN,EAAUyN,kBAE5GgB,mBAAoB,CAChBjE,GAAI,MACJkE,MAAO,CAAEC,QAAS,SAEtBC,YAAa,CACTpE,GAAI9O,KAAKmR,cAAgB,MAAQ,KACjCxT,UAAW,GAAGqC,KAAKH,8BAEvBsD,QAAS9D,EAAO8D,SAAW9D,EAAO8D,QAAQC,MACtC/F,EAAAA,cAACoG,EAAAA,GAAa,eACV9F,UAAW,GAAGqC,KAAKH,4BACfR,EAAO8D,QAAO,CAClBO,UAAW,CAAEC,OAAQ3D,KAAKF,oBAAqBmC,eAAgBjC,KAAKzF,MAAME,QAAQa,YAG1F6X,+BAAgCnT,KAAKoT,wBAGzC,OAAOpT,KAAKzF,MAAMuG,WAAWmF,GAiFzBsL,YAAY8B,GAChB,MAAMC,EAAIC,SAASC,cAAc,OAGjC,OADAF,EAAEG,UAAYJ,EACiB,IAAxBC,EAAEI,WAAW/Q,OAAe,GAAK2Q,EAAEI,WAAW,GAAGC,WAAa,GAkBjEP,sBACJ,MAAM,OAAE/T,EAAM,UAAEiF,GAActE,KAAKzF,MAC7BqZ,EAAe,CACjBA,aAAc,CACV9E,GAAI,gBACJnR,UAAW,GAAGqC,KAAKH,uCAEvB6C,MAAO,CACH1C,KAAK6T,aAAa,YAAa,OAAQ7T,KAAKwQ,UAAWlM,EAAUwP,mBAAoBxP,EAAUyP,oBAC/F/T,KAAK6T,aAAa,UAAW,OAAQ7T,KAAKyQ,QAASnM,EAAU0P,kBAAmB1P,EAAU2P,oBAE9FC,aAAc,CACV7W,EAAAA,cAAC8W,EAAAA,EAAgC,CAC7BjV,IAAI,uBACJ4P,GAAG,uBACHnR,UAAWqC,KAAKH,gBAChB8R,QAASrN,EAAU8P,mCAEvB/W,EAAAA,cAAC8W,EAAAA,EAAgC,CAC7BjV,IAAI,iBACJ4P,GAAG,iBACHnR,UAAWqC,KAAKH,gBAChB8R,QAASrN,EAAU+P,sBAEvBhX,EAAAA,cAAC8W,EAAAA,EAAgC,CAC7BjV,IAAI,+BACJ4P,GAAG,+BACHnR,UAAWqC,KAAKH,mBAGxByU,eAAgB,CACZ3W,UAAW,GAAGqC,KAAKH,4BAEvB0U,QAAS,CACLlX,EAAAA,cAACmX,EAAAA,EAAiC,CAC9BtV,IAAI,WACJ4P,GAAG,WACHnR,UAAW,GAAGqC,KAAKH,+BACnB4G,UAAWnC,EAAUmQ,oBACrBrR,KAAMkB,EAAUoQ,eAChB9Z,iBAAkBoF,KAAKpF,mBAE3ByC,EAAAA,cAACmX,EAAAA,EAAiC,CAC9BtV,IAAI,SACJ4P,GAAG,SACHnR,UAAW,GAAGqC,KAAKH,iCACnB4G,UAAWnC,EAAUqQ,iBACrBvR,KAAMkB,EAAUqQ,iBAChB/Z,iBAAkBoF,KAAKpF,oBAG/Bga,yBAA0B,CACtBjX,UAAW,GAAGqC,KAAKH,oDAEvBgV,gCAAiC,CAC7B/F,GAAI,kBACJnR,UAAW,GAAGqC,KAAKH,6CAU3B,OANIR,EAAOyV,WAA4B,KAAf9U,KAAK6M,OACzB+G,EAAalR,MAAM7D,KACfmB,KAAK6T,aAAa,QAAS,QAAS7T,KAAK6M,MAAOvI,EAAUyQ,2BAAuB5Z,EAAW6E,KAAK0Q,aAIlGkD,EAGHC,aACJ/E,EACAgB,EACA3P,EACA6U,EACAC,EACAC,GAEA,MAAMvX,EAAY,GAAGqC,KAAKH,gCAC1B,MAAO,CACHsV,QAAS,CACLxX,UAAW4D,GAAAA,CAAW5D,EAAW,GAAGA,KAAamR,IAAM,aAAc,cAEzE5P,IAAK4P,EACLrC,MACIpP,EAAAA,cAAC+X,EAAAA,EAAgC,iBACzB,CACAtG,GAAAA,EACAuG,MAAOvG,EACPnR,UAAAA,EACAyF,KAAM4R,KAIlBd,aACI7W,EAAAA,cAAC8W,EAAAA,EAAgC,iBACzB,CACAxW,UAAWqC,KAAKH,gBAChBiQ,KAAM,UAIlBwF,MACIjY,EAAAA,cAACkY,EAAAA,EAAgC,iBACzB,CACAzG,GAAAA,EACAgB,KAAAA,EACA3P,MAAAA,EACA+U,QAAAA,EACAvX,UAAAA,EACAsX,UAAAA,EACAjF,SAAUhQ,KAAKsQ,uBAhTvBpC,EAAAA,EAAAA,IAAAA,CAAXsH,EAAAA,IAAU,iCAECtH,EAAAA,EAAAA,IAAAA,CAAXsH,EAAAA,IAAU,+BAECtH,EAAAA,EAAAA,IAAAA,CAAXsH,EAAAA,IAAU,6BAECtH,EAAAA,EAAAA,IAAAA,CAAXsH,EAAAA,IAAU,kCAECtH,EAAAA,EAAAA,IAAAA,CAAXsH,EAAAA,IAAU,oCAbTnF,GAAkB,SADvB7N,EAAAA,IACK6N,GA6TN,2FCnXA,MAAMoF,EAA4D,IAA4C,IAA3C,QAAEN,EAAO,MAAE1I,EAAK,aAAEyH,EAAY,MAAEoB,GAAO,EACtG,OACIjY,EAAAA,cAACyF,EAAAA,KAAI,iBAAKqS,GACL1I,EACAyH,EACAoB,IAuCPI,EAAkE,IAAwC,IAAvC,MAAEhD,EAAK,UAAEC,EAAS,KAAEC,EAAI,QAAEjB,GAAS,EACxG,OACItU,EAAAA,cAACyF,EAAAA,KAAI,iBAAK4P,GACNrV,EAAAA,cAACyF,EAAAA,KAAI,iBAAK6P,GACLC,EACAjB,KAqBjB,EAfuEpX,IACnE,MAAM,mBAAEiY,EAAkB,UAAEF,EAAS,QAAEG,EAAO,mBAAEM,EAAkB,YAAEG,EAAW,QAAE/P,EAAO,+BAAEgQ,GAAmC5Y,EAE7H,OACI8C,EAAAA,cAACwF,EAAAA,OAAM,iBAAK2P,GACPF,EAAUC,eAAiBlV,EAAAA,cAACyF,EAAAA,KAAI,iBAAKiQ,IACrCT,EAAUC,eAAiBlV,EAAAA,cAACqY,EAAyB,iBAAKjD,IAC3DpV,EAAAA,cAACyF,EAAAA,KAAI,iBAAKoQ,GACL/P,EArD+C,KAQ3D,IAR4D,aAC7DyQ,EAAY,MACZlR,EAAK,aACLwR,EAAY,eACZI,EAAc,QACdC,EAAO,yBACPK,EAAwB,gCACxBC,GACH,EACG,OACIxX,EAAAA,cAACyF,EAAAA,KAAI,iBAAK8Q,GACLlR,GACGA,EAAM3D,KAAK6D,GAEAvF,EAAAA,cAACoY,EAAsB,iBAAK7S,MAE1CsR,GACGA,EAAanV,KAAI,CAACmG,EAAwBjG,IAC/B5B,EAAAA,cAACA,EAAAA,SAAc,CAAC6B,IAAKD,GAAQiG,KAE5C7H,EAAAA,cAACyF,EAAAA,KAAI,iBAAKwR,GACLC,GACGA,EAAQxV,KAAI,CAAC4W,EAAyB1W,IAC3B5B,EAAAA,cAACA,EAAAA,SAAc,CAAC6B,IAAKD,GAAQ0W,MAIhDtY,EAAAA,cAACyF,EAAAA,KAAI,iBAAK8R,GACNvX,EAAAA,cAACyF,EAAAA,KAAI,iBAAK+R,OA0BTe,CAAazC,0EC7D9B,MAmBA,EAnBsE,IAQjE,IARkE,GACnErE,EAAE,UACFnR,EAAS,KACTyF,EAAI,UACJqD,EAAS,SACT5B,EAAQ,iBACRjK,EAAgB,QAChB0C,GACH,EACG,MAAMxB,GAAUC,EAAAA,EAAAA,kBAAiB,QAASnB,EAAmBwI,GACvD7E,GAAarC,EAAAA,EAAAA,wBAAuBtB,EAAmBkB,GAE7D,OACIuB,EAAAA,cAACiR,EAAAA,OAAM,eAACQ,GAAIA,EAAInR,UAAWA,EAAS,aAAc8I,EAAW5B,SAAUA,EAAUvH,QAASA,GAAaiB,GAClG6E,4ECjBb,MAUA,EAVyE,IAA8C,IAA7C,GAAE0L,EAAE,UAAEnR,EAAS,KAAEmS,EAAO,OAAM,QAAE6B,GAAS,EAC/G,MAAMkE,EAAiB,GAAGlY,MAAcmS,UAExC,OACIzS,EAAAA,cAAAA,MAAAA,CAAKyR,GAAIA,EAAInR,UAAW4D,GAAAA,CAAWsU,EAAgB,QAAS,GAAG/F,UAAcjJ,KAAK,QAAO,YAAW,YAAW,cAAa,QACxHxJ,EAAAA,cAAAA,IAAAA,CAAGM,UAAW,GAAGkY,UAAwBlE,mECQrD,MAAMmE,EAAgBb,IAClB,GAAIA,EAAW,CACX,MAAMc,EAAkBC,OAAOC,SAAShB,EAAW,IACnD,IAAKiB,MAAMH,GACP,OAAOA,IAoBnB,EAbyE,QAAC,GAAEjH,EAAE,KAAEgB,EAAI,MAAE3P,EAAK,QAAE+U,EAAO,UAAEvX,EAAS,UAAEsX,EAAS,SAAEjF,GAAU,SAClI3S,EAAAA,cAAAA,QAAAA,CACIyR,GAAIA,EACJgB,KAAMA,EACN3P,MAAOA,EACPxC,UAAW,GAAGA,WAAmBA,KAAamR,IAC9CoG,QAAqB,KAAZA,EAAiBA,OAAU/Z,EAAS,gBAC/B,OACd8Z,UAAWa,EAAab,GACxBjF,SAAUA,6DClClB,MAMA,EANoE,QAAC,GAAElB,EAAE,MAAEuG,EAAK,UAAE1X,EAAS,KAAEyF,GAAM,SAC/F/F,EAAAA,cAAAA,QAAAA,CAAOyR,GAAI,GAAGA,UAAYnR,UAAW,GAAGA,UAAmBkS,QAASwF,GAC/DjS,4DCLT,MAIA,EAJgF,QAAC,UAAEzF,GAAW,SAC1FN,EAAAA,cAAAA,MAAAA,CAAKM,UAAW,GAAGA,6ECAvB,MAIA,EAJsF,QAAC,UAAEA,EAAS,QAAEgU,GAAS,SACzGtU,EAAAA,cAAAA,MAAAA,CAAKM,UAAW,GAAGA,sBAA+BgU,2rBCWtD,MAAMwE,UAA2B9Y,EAAAA,cAAjCsC,cAAAA,SAAAA,WAiCW,KAAAG,oBAAuBC,GAA0CC,KAAKzF,MAAM8E,OAAO8D,QAAQC,KAAOrD,EAAMG,OAAOC,MAhC/GS,SACH,MAAM,OAAEvB,EAAM,KAAE3E,GAASsF,KAAKzF,OACxB,UAAEoD,GAAc0B,EAEhB+W,EAAc1b,EAAK2b,mBAAmBpV,OACtCkC,EAAO,OACN9D,EAAO8D,SACP,CACCC,KAAM,GAAG/D,EAAO8D,QAAQC,QAAQgT,GAAeA,EAAY9L,UAAY8L,EAAY9L,UAAY,OAIjGrE,EAAS,OACRjG,KAAKzF,OAAK,IACboD,UAAAA,EACAwY,mBAAoB,CAChB7U,YAAatB,KAAKzF,MAClBoD,UAAW4D,GAAAA,CAAW,0BAA2BlC,EAAO1B,YAE5DwF,QAASA,GAAWA,EAAQC,MACxB/F,EAAAA,cAACoG,EAAAA,GAAa,CACV9F,UAAU,mCACV+D,IAAKyB,EAAQzB,IACb0B,KAAMD,EAAQC,KACdM,UAAW,CAAEC,OAAQ3D,KAAKF,oBAAqBmC,eAAgBjC,KAAKzF,MAAME,QAAQa,aAK9F,OAAO0E,KAAKzF,MAAMuG,WAAWmF,IAMrC,2FClDA,MAMA,EANuE1L,IACnE,MAAM,mBAAE4b,EAAkB,QAAEhT,GAAY5I,EAExC,OAAO8C,EAAAA,cAACwF,EAAAA,OAAM,iBAAKsT,GAAqBhT,mICD5C,MAIA,EAJmF,QAAC,YAAE3D,GAAa,SAC/FnC,EAAAA,cAAAA,IAAAA,CAAGM,UAAU,yCAAyC6B,ICuBpD4G,EAAoB,CAACC,EAAwBzL,KAC/C,IAAKyL,GAAgC,IAApBA,EAAS1D,OACtB,OAAO,KAEX,MAAM2D,EAAuC,GACvCxK,GAAUC,EAAAA,EAAAA,kBAAiB,QAASnB,EAAmB,IAgB7D,OAfAyL,EAAS5H,SAAQ,CAAC8H,EAAMtH,KACpBnD,EAAQyI,cAAcC,MAAQ+B,EAAKZ,SACnC,MAAMpH,GAAarC,EAAAA,EAAAA,wBAAuBtB,EAAmBkB,GACvD0K,EAAoC,CACtCC,UAAWF,EAAKE,UAChB9I,UAAW,iCACXgI,SAAUY,EAAKZ,SACfe,QAASH,EAAKG,QAAQC,eACtBC,aAAcL,EAAKK,aACnBC,KAAM,OACNC,qBAAsBvI,GAE1B+H,EAAczH,KAAK2H,MAGhBF,GAGX,EAtCsE,IAA8D,IAA7D,MAAEZ,EAAK,iBAAE9K,EAAgB,aAAEoH,EAAY,eAAEC,GAAgB,EAC5H,GAAqB,IAAjByD,EAAM/C,OACN,OAAO,KAEX,MAAM2D,EAAgBF,EAAkBV,EAAO9K,GAC/C,OACIyC,EAAAA,cAAAA,MAAAA,CAAKM,UAAU,mCACV2I,GAAiBA,EAAc3D,OAAS,EACrCtF,EAAAA,cAACoG,EAAAA,GAAc,CAACiC,MAAOY,EAAe5C,UAAW,CAAE1B,aAAAA,EAAcC,eAAAA,KACjE,4kBCHhB,MAAMqU,UAA4BjZ,EAAAA,cAG9BsC,YAAYpF,GACRqF,MAAMrF,GAgDH,KAAAuF,oBAAuBC,GAA0CC,KAAKzF,MAAM8E,OAAO8D,QAAQC,KAAOrD,EAAMG,OAAOC,MAE/G,KAAAqF,qBAAwBC,GAAuB1F,IAC9CC,KAAKzF,MAAM8E,OAAOqG,OAAS1F,KAAKzF,MAAM8E,OAAOqG,MAAMD,KACnDzF,KAAKzF,MAAM8E,OAAOqG,MAAMD,GAAWE,SAAW5F,EAAMG,OAAOC,QAnD/DH,KAAKpF,kBAAmB0F,EAAAA,EAAAA,oBACpBN,KAAKzF,MAAME,QAAQa,QAAQiF,kBAC3BP,KAAKzF,MAAMiG,aACXR,KAAKzF,MAAMkG,WAIZG,SACH,MAAM,OAAEvB,EAAM,UAAEiF,EAAS,KAAE5J,GAASsF,KAAKzF,OACnC,UAAEoD,EAAS,QAAEwF,EAAO,MAAEuC,GAAUrG,GAChC,+BAAEkX,GAAmCjS,EACrCkS,EAAY9b,EAAK8b,UAAUvV,OAE3BwV,GAAmBD,GAAaA,EAAU7T,QAAU6T,EAAU,GAAGE,mBAAsB,IAAI/T,OAC3FnD,GAAcnF,EAAAA,EAAAA,QAAOkc,GAAkC,sCAAuCE,GAE9FxQ,EAAS,OACRjG,KAAKzF,OAAK,IACboD,UAAAA,EACA2Y,oBAAqB,CACjBhV,YAAatB,KAAKzF,MAClBoD,UAAW4D,GAAAA,CAAW,2BAA4BlC,EAAO1B,YAE7DwF,QAASA,GAAWA,EAAQC,MACxB/F,EAAAA,cAACoG,EAAAA,GAAa,CACV9F,UAAU,oCACV+D,IAAKyB,EAAQzB,IACb0B,KAAMD,EAAQC,KACdM,UAAW,CAAEC,OAAQ3D,KAAKF,oBAAqBmC,eAAgBjC,KAAKzF,MAAME,QAAQa,WAG1FoK,MAAOA,GAASA,EAAM/C,OAAS,GAC3BtF,EAAAA,cAAC6I,EAAc,iBACP,CACAR,MAAAA,EACA1D,aAAchC,KAAKwF,qBACnBvD,eAAgBjC,KAAKzF,MAAME,QAAQa,QACnCV,iBAAkBoF,KAAKpF,oBAInC4E,YAAanC,EAAAA,cAAC8I,EAAoB,CAAC3G,YAAaA,MAGpD,OAAOQ,KAAKzF,MAAMuG,WAAWmF,IAYrC,iGC/EA,MAYA,EAZyE1L,IACrE,MAAM,oBAAE+b,EAAmB,QAAEnT,EAAO,YAAE3D,EAAW,MAAEkG,GAAUnL,EAE7D,OACI8C,EAAAA,cAACwF,EAAAA,OAAM,iBAAKyT,GACPnT,EACA3D,EACAkG,uECsCDiR,6GAAZ,SAAYA,GACRA,EAAAA,KAAAA,OACAA,EAAAA,OAAAA,SACAA,EAAAA,YAAAA,eACAA,EAAAA,KAAAA,eACAA,EAAAA,YAAAA,iBALJ,CAAYA,IAAAA,EAAyB,KAQrC,MAYMC,EAAc,CAACtb,EAA0CgJ,IACvDuS,EAAAA,iBAAAA,cAA+Bvb,EAAQwb,eACnCD,EAAAA,iBAAAA,cAA+Bvb,EAAQyb,cAChC,GAGJzb,EAAQyb,aACRF,EAAAA,iBAAAA,cAA+Bvb,EAAQyb,cACvCzb,EAAQwb,cAGZxS,EAAU0S,uBAAuBC,QAAQ,MAAO3b,EAAQwb,eAAgBG,QAAQ,MAAO3b,EAAQyb,cAGpGG,EAAa,CAACzc,EAAuBkT,KACvC,QAAaxS,IAATwS,EACA,MAAO,GAIX,OAAOlT,EAAQ+C,iBAAiB0Z,WAAWvJ,EADH,CAAEM,KAAM,UAAWF,MAAO,OAAQC,IAAK,aAW7EmJ,EAAa,CAAC7b,EAA0CgJ,EAAuC7J,KAAyB,MAC1H,IAAKa,EAAQ8b,QACT,MAAO,GAGX,MAAMC,EAAyD/b,EAAQ8b,QAEjEE,EAAgCJ,EAAWzc,EAAS4c,EAAeE,gCAAkC,GACrGC,EAA8BN,EAAWzc,EAAS4c,EAAeI,8BAAgC,GACjGC,EAAoC,QAA3B,EAAGL,EAAeM,iBAAS,QAAI,GAE9C,OAAQrc,EAAQsc,WAEZ,KAAK,EACD,OACKf,EAAAA,iBAAAA,cAA+BS,IAC/BT,EAAAA,iBAAAA,cAA+BW,GAO7B,GALIlT,EAAUuT,mCACZZ,QAAQ,MAAOK,GACfL,QAAQ,MAAOO,GAK5B,KAAK,EACD,OAAKX,EAAAA,iBAAAA,cAA+Ba,GAI7B,GAHIpT,EAAUwT,8BAA8Bb,QAAQ,MAAOS,GAItE,QACI,MAAO,KA+CbK,EAA8B,CAACC,EAAmB1T,KACpD,OAAQ0T,GACJ,KAAK,EACD,OAAO1T,EAAU2T,8BACrB,KAAK,EACD,OAAO3T,EAAU4T,uBACrB,KAAK,EACD,OAAO5T,EAAU6T,0BACrB,KAAK,EACD,OAAO7T,EAAU8T,wBACrB,KAAK,EACD,OAAO9T,EAAU+T,uCACrB,KAAK,EACD,OAAO/T,EAAUgU,kCACrB,QACI,OAAOhU,EAAUiU,yBAIvBC,EAAgC,CAACC,EAAqBnU,KACxD,OAAQmU,GACJ,KAAK,EACD,OAAOnU,EAAUoU,2BACrB,KAAK,EACD,OAAOpU,EAAUqU,uBACrB,QACI,OAAOrU,EAAUsU,6BAIvBC,EAAoBC,IAAsC,MAC5D,MAAM,QAAEre,EAAO,KAAEC,EAAI,UAAE4J,GAAcwU,EAAWxX,YAE1CyX,GA3ENC,EA2EmCte,EAAKse,kBAAkB/X,OA1E1D1G,EA0EkEue,EAAWxX,YAxExE2X,EAAAA,gBAAAA,YAA4BD,GAI1BA,EAAkBja,KAAIzD,IAAU,QACnC,MAAO,CACH4d,IAAK,CACD,CACIpK,GAAIvU,EAAM+J,UAAU6U,sBACpBrJ,KAAMsJ,EAAAA,cAAAA,KACNjZ,MAAO4X,EAA6C,QAAlB,EAACzc,EAAQsc,iBAAS,QAAI,EAAGrd,EAAM+J,YAErE,CACIwK,GAAIvU,EAAM+J,UAAU+U,6BACpBvJ,KAAMsJ,EAAAA,cAAAA,KACNjZ,MAAO+W,EAAW3c,EAAME,QAASa,EAAQ+O,kBAE7C,CACIyE,GAAIvU,EAAM+J,UAAUgV,6BACpBxJ,KAAMsJ,EAAAA,cAAAA,KACNjZ,MAAOgX,EAAW7b,EAASf,EAAM+J,UAAW/J,EAAME,UAEtD,CACIqU,GAAIvU,EAAM+J,UAAUiV,sBACpBzJ,KAAMsJ,EAAAA,cAAAA,KACNjZ,MAAOyW,EAAYtb,EAASf,EAAM+J,YAEtC,CACIwK,GAAIvU,EAAM+J,UAAUkV,wBACpB1J,KAAMsJ,EAAAA,cAAAA,KACNjZ,MAAOqY,EAAiD,QAApB,EAACld,EAAQme,mBAAW,QAAI,EAAGlf,EAAM+J,aAG7EoV,YAAY,EACZ/b,UAAWpD,EAAM8E,OAAO1B,cAjCrB,IALU,IACrBqb,EACAze,EA2FA,MAAO,CACH+J,UAAW,GACXqV,SAjBCV,EAAAA,gBAAAA,YAA4BF,IACzBA,EAAU,GAAGG,IACRxc,QAAOkG,IAEIkW,EAAWc,WAAad,EAAWe,sBAAsBlb,SAASiE,EAAKkM,MAElF/P,KAAI6D,IACM,CACH7I,KAAM6I,EAAKkM,GACXgL,UAAU,EACVrT,UAAWnC,EAAUyV,yBAGrC,GAKAC,KAAMjB,EACNpb,UAAW,GAAGmb,EAAWxX,YAAYjC,OAAO1B,mBAC5Csc,aAAc,GACdC,eAAgB,GAChBC,aAAc,GACdC,gBAAgB,EAChBC,eAAgB,GAChBC,gBAAgB,EAChBC,YAAY,EACZC,gBAAgB,EAChBC,cAAe3B,EAAWc,SAC1Bc,gBAAiB5B,EAAWc,SAAWd,EAAWe,sBAAwB,GAC1Ec,mBAAoB,CAChBC,UACyB,QAArB,EAAAngB,EAAQa,QAAQuf,aAAK,OAArB,EAAuBC,OAAS5E,MAAMF,OAAOC,SAASxb,EAAQa,QAAQuf,MAAMC,KAAM,KAC5E9E,OAAOC,SAASxb,EAAQa,QAAQuf,MAAMC,KAAM,IAC5C,EACVC,YAAa,GACbC,SAAU1W,EAAU2W,wBACpBC,SAAU5W,EAAU6W,oBACpBC,eAAgB,GAChBC,IAAM5gB,IAnMK6gB,EAmMoB7gB,EAAQa,QAlM3CigB,EAAAA,GAAAA,UACO,IAAIlgB,IAAI6V,OAAOsK,SAAS7f,OAI/B2f,EAAWD,IAAII,WAAW9f,KACnB,IAAIN,IAAIigB,EAAWD,IAAII,WAAW9f,QA4LWA,MAAS,IAE7D+f,oBAAoB,EACpBhP,QAAS,CACLiP,cAAUxgB,EACVwI,YAAQxI,EACRygB,YAAQzgB,GAEZ0gB,wCAAyC/C,EAAWxX,YAAYgD,UAAUuX,wCAC1EC,gBAAiBhD,EAAWxX,YAAYgD,UAAUwX,gBAClDC,iBAAkBjD,EAAWxX,YAAYgD,UAAUyX,kBA7MpCT,IAAAA,GAiNVU,EAAsDlD,GACxDzb,EAAAA,cAAC4e,EAAAA,MAAK,iBAAKpD,EAAiBC,0kBCzPvC,MAAMoD,UAA0B7e,EAAAA,cAAhCsC,cAAAA,SAAAA,WA4BqB,KAAAwc,aAAe,CAACxe,EAAmBye,KAA8C,QAC9F,MAAMC,EAA4D,QAAnD,EAA2C,QAA3C,EAAGrc,KAAKzF,MAAMG,KAAKse,kBAAkB/X,cAAM,aAAxC,EAA0C0B,cAAM,QAAI,EAEtE,OACItF,EAAAA,cAAAA,MAAAA,CAAKM,UAAW,GAAGA,wBACfN,EAAAA,cAAC0O,EAAAA,QAAO,CAACpO,UAAW,GAAGA,qBAA8B+D,IAAK0a,EAAY1a,IAAK0B,KAAMgZ,EAAYhZ,OAC7F/F,EAAAA,cAAAA,OAAAA,KAAO2C,KAAKsc,2BAA2BD,MASlC,KAAAE,yBAA2B,KACxC,MAAM,UAAEjY,GAActE,KAAKzF,MAC3B,MAAO,CAAC+J,EAAU+U,6BAA8B/U,EAAUgV,6BAA8BhV,EAAUiV,wBAGrF,KAAAiD,YAAc,IAEvBnf,EAAAA,cAAC2e,EAAgB,CAAC1a,YAAatB,KAAKzF,MAAOqf,SAAU5Z,KAAK4Z,SAAUC,sBAAuB7Z,KAAKuc,6BAIvF,KAAAD,2BAA8BD,IAC3C,OAAQA,GACJ,KAAK,EACD,MAAO,GACX,KAAK,EACD,OAAOhiB,EAAAA,EAAAA,QAAO2F,KAAKzF,MAAM+J,UAAUmY,iCAAkCJ,GACzE,QACI,OAAOhiB,EAAAA,EAAAA,QAAO2F,KAAKzF,MAAM+J,UAAUoY,yBAA0BL,KA5D/D,eAEN,MAAgB,QADHzC,EAAAA,EAAAA,UAAS,CAAE+C,QAASC,EAAAA,YAAAA,SAAsBniB,QAASuF,KAAKzF,MAAME,QAAQa,UAIhFsF,SAAM,QACT,MAAM,OAAEvB,EAAM,KAAE3E,GAASsF,KAAKzF,MAE9B,GAAoC,QAAhC,EAACG,EAAKsN,oBAAoB/G,cAAM,QAA/B,EAAiCqK,OAAwC,QAA/B,EAAC5Q,EAAKwN,mBAAmBjH,cAAM,QAA9B,EAAgCgH,UAC5E,OAAO,KAGX,MAAMtK,EAAY0B,EAAO1B,WAAa,GAEhCsI,EAAS,OACRjG,KAAKzF,OAAK,IACbsiB,kBAAmB,CACfvb,YAAatB,KAAKzF,MAClBoD,UAAAA,GAEJwF,QAASnD,KAAKmc,aAAaxe,EAAW0B,EAAO8D,SAC7C2Z,MAAO9c,KAAKwc,gBAGhB,OAAOxc,KAAKzF,MAAMuG,WAAWmF,KAxBvBiI,EAAAA,EAAAA,IAAAA,CAATC,EAAAA,IAAQ,6BAiEb,oGChFA,MAUA,EAVqE5T,IACjE,MAAM,kBAAEsiB,EAAiB,QAAE1Z,EAAO,MAAE2Z,GAAUviB,EAC9C,OACI8C,IAAAA,cAACwF,EAAAA,OAAM,iBAAKga,GACP1Z,EACA2Z,6HCQb,MAAMC,EAAmB,+BAEZC,EAA6D,IAA8D,IAA7D,MAAEtX,EAAK,iBAAE9K,EAAgB,aAAEoH,EAAY,eAAEC,GAAgB,EAChI,IAAKgX,EAAAA,gBAAAA,YAA4BvT,GAC7B,OAAO,KAEX,MAAMY,EAAgBF,EAAkBV,EAAO9K,GAC/C,OACIyC,EAAAA,cAAAA,MAAAA,CAAKM,UAAW,GAAGof,YACd9D,EAAAA,gBAAAA,YAA4B3S,GACzBjJ,EAAAA,cAACoG,EAAAA,GAAc,CAACiC,MAAOY,EAAe5C,UAAW,CAAE1B,aAAAA,EAAcC,eAAAA,KACjE,OAKVmE,EAAoB,CAACC,EAAwBzL,KAC/C,IAAKqe,EAAAA,gBAAAA,YAA4B5S,GAC7B,OAAO,KAGX,MAAMvK,GAAUC,EAAAA,EAAAA,kBAAiB,QAASnB,EAAmB,IAE7D,OAAOyL,EAAStH,KAAIwH,IAChBzK,EAAQyI,cAAcC,MAAQ+B,EAAKZ,SACnC,MAAMpH,GAAarC,EAAAA,EAAAA,wBAAuBtB,EAAmBkB,GAC7D,MAAO,CACH2K,UAAWF,EAAKE,UAChB9I,UAAW,GAAGof,UACdpX,SAAUY,EAAKZ,SACfe,QAASH,EAAKG,QAAQC,eACtBC,aAAcL,EAAKK,aACnBC,KAAM,OACNC,qBAAsBvI,4kBC7BlC,MAAM0e,UAAwB5f,EAAAA,cAG1BsC,YAAYpF,GACRqF,MAAMrF,GA8CH,KAAAuF,oBAAuBC,GAA0CC,KAAKzF,MAAM8E,OAAO8D,QAAQC,KAAOrD,EAAMG,OAAOC,MAE/G,KAAAqF,qBAAwBC,GAAuB1F,IAC9CC,KAAKzF,MAAM8E,OAAOqG,OAAS1F,KAAKzF,MAAM8E,OAAOqG,MAAMD,KACnDzF,KAAKzF,MAAM8E,OAAOqG,MAAMD,GAAWE,SAAW5F,EAAMG,OAAOC,QAjD/DH,KAAKpF,kBAAmB0F,EAAAA,EAAAA,oBACpBN,KAAKzF,MAAME,QAAQa,QAAQiF,kBAC3BP,KAAKzF,MAAMiG,aACXR,KAAKzF,MAAMkG,WAIZG,SAAM,MACT,MAAM,OAAEvB,EAAM,KAAE3E,GAASsF,KAAKzF,OACxB,UAAEoD,EAAS,QAAEwF,EAAO,MAAEuC,GAAUrG,EAEhC0d,EAAmB,+BAEzB,GAAoC,QAAhC,EAACriB,EAAKsN,oBAAoB/G,cAAM,QAA/B,EAAiCqK,MAClC,OAAO,KAGX,MAAMrF,EAAS,OACRjG,KAAKzF,OAAK,IACboD,UAAAA,EACAuf,gBAAiB,CACb5b,YAAatB,KAAKzF,MAClBoD,UAAW4D,GAAAA,CAAWwb,EAAkB1d,EAAO1B,YAEnDwF,QAASA,GAAWA,EAAQC,MACxB/F,EAAAA,cAACoG,EAAAA,GAAa,CACV9F,UAAW,GAAGof,aACdrb,IAAKyB,EAAQzB,IACb0B,KAAMD,EAAQC,KACdM,UAAW,CAAEC,OAAQ3D,KAAKF,oBAAqBmC,eAAgBjC,KAAKzF,MAAME,QAAQa,WAG1FoK,MAAOuT,EAAAA,gBAAAA,YAA4BvT,IAC/BrI,EAAAA,cAAC2f,EAAoB,CACjBtX,MAAOA,EACP1D,aAAchC,KAAKwF,qBACnBvD,eAAgBjC,KAAKzF,MAAME,QAAQa,QACnCV,iBAAkBoF,KAAKpF,qBAKnC,OAAOoF,KAAKzF,MAAMuG,WAAWmF,IAYrC,2FC5EA,MAWA,EAXiE1L,IAC7D,MAAM,gBAAE2iB,EAAe,QAAE/Z,EAAO,MAAEuC,GAAUnL,EAE5C,OACI8C,EAAAA,cAACwF,EAAAA,OAAM,iBAAKqa,GACP/Z,EACAuC,wECEb,MAkBA,EAlBoF,IAQ/E,IARgF,GACjFoJ,EAAE,UACFnR,EAAS,KACTyF,EAAI,UACJqD,EAAS,iBACT7L,EAAgB,SAChBiK,EAAQ,QACRvH,GACH,EACG,MAAMxB,GAAUC,EAAAA,EAAAA,kBAAiB,QAASnB,EAAmBwI,GACvD7E,GAAarC,EAAAA,EAAAA,wBAAuBtB,EAAmBkB,GAC7D,OACIuB,EAAAA,cAACiR,EAAAA,OAAM,eAACQ,GAAIA,EAAInR,UAAWA,EAAS,aAAc8I,EAAW5B,SAAUA,EAAUvH,QAASA,GAAaiB,GAClG6E,4EChBb,MAUA,EAVuF,IAA8C,IAA7C,GAAE0L,EAAE,UAAEnR,EAAS,KAAEmS,EAAO,OAAM,QAAE6B,GAAS,EAC7H,MAAMkE,EAAiB,GAAGlY,MAAcmS,UAExC,OACIzS,EAAAA,cAAAA,MAAAA,CAAKyR,GAAIA,EAAInR,UAAW4D,GAAAA,CAAWsU,EAAgB,QAAS,GAAG/F,UAAcjJ,KAAK,QAAO,YAAW,YAAW,cAAa,QACxHxJ,EAAAA,cAAAA,IAAAA,CAAGM,UAAW,GAAGkY,UAAwBlE,mECQrD,MAAMmE,EAAgBb,IAClB,GAAIA,EAAW,CACX,MAAMc,EAAkBC,OAAOC,SAAShB,EAAW,IACnD,IAAKiB,MAAMH,GACP,OAAOA,IA4BnB,EArBuF,QAAC,GACpFjH,EAAE,KACFgB,EAAI,MACJ3P,EAAK,QACL+U,EAAO,UACPvX,EAAS,UACTsX,EAAS,SACTjF,GACH,SACG3S,EAAAA,cAAAA,QAAAA,CACIyR,GAAIA,EACJgB,KAAMA,EACN3P,MAAOA,EACPxC,UAAW,GAAGA,WAAmBA,KAAamR,IAC9CoG,QAAqB,KAAZA,EAAiBA,OAAU/Z,EAAS,gBAC/B,OACd8Z,UAAWa,EAAab,GACxBjF,SAAUA,6DC1ClB,MAMA,EANkF,QAAC,GAAElB,EAAE,MAAEuG,EAAK,UAAE1X,EAAS,KAAEyF,GAAM,SAC7G/F,EAAAA,cAAAA,QAAAA,CAAOyR,GAAI,GAAGA,UAAYnR,UAAW,GAAGA,UAAmBkS,QAASwF,GAC/DjS,4DCLT,MAIA,EAJ8F,QAAC,UAAEzF,GAAW,SACxGN,EAAAA,cAAAA,MAAAA,CAAKM,UAAW,GAAGA,6ECAvB,MAIA,EAJoG,QAAC,UAAEA,EAAS,QAAEgU,GAAS,SACvHtU,EAAAA,cAAAA,MAAAA,CAAKM,UAAW,GAAGA,sBAA+BgU,4ECEtD,MAUA,EAVsF,IAA8C,IAA7C,GAAE7C,EAAE,UAAEnR,EAAS,KAAEmS,EAAO,OAAM,QAAE6B,GAAS,EAC5H,MAAMwL,EAAmB,GAAGxf,MAAcmS,YAE1C,OACIzS,EAAAA,cAAAA,OAAAA,CAAMyR,GAAIA,EAAInR,UAAW4D,GAAAA,CAAW4b,EAAkB,GAAGrN,UAAcjJ,KAAK,QAAO,YAAW,YAAW,cAAa,QAClHxJ,EAAAA,cAAAA,IAAAA,CAAGM,UAAW,GAAGwf,UAA0BxL,myBCoDvD,IAAMyL,EAAN,cAAwC/f,EAAAA,UAcpCsC,YAAYpF,GACRqF,MAAMrF,GAdO,KAAAsF,gBAA0B,iCA8FpC,KAAAC,oBAAuBC,GAA0CC,KAAKzF,MAAM8E,OAAO8D,QAASC,KAAOrD,EAAMG,OAAOC,MAGhH,KAAAwQ,QAAU,KACb3Q,KAAK4Q,mBACL5Q,KAAK6Q,sBAGL7Q,KAAK8Q,oBAAsBC,aAAY,KACnC/Q,KAAKgR,gCACN,KACH5L,YAAW,KACP6L,cAAcjR,KAAK8Q,uBACpB,MAIU,KAAAE,4BAA8B,KAEvCE,QAAUA,OAAe,QAAKA,OAAe,OAA4B,2BACzED,cAAcjR,KAAK8Q,qBACnB9Q,KAAKmR,eAAgB,IAgPZ,KAAAkM,SAAW,CAACC,EAAiBC,IACtCvd,KAAKwd,gBAC2B,OAAzBxd,KAAKwd,gBAA2BF,EAAUC,EAE9C,GAxVPvd,KAAK0Q,WAAawB,EAAAA,WAAAA,aAAAA,OAClBlS,KAAKmR,eAAgB,EACrBnR,KAAKwd,gBAAkB,GACvBxd,KAAKpF,kBAAmB0F,EAAAA,EAAAA,oBACpBN,KAAKzF,MAAME,QAAQa,QAAQiF,kBAC3BP,KAAKzF,MAAMiG,aACXR,KAAKzF,MAAMkG,WAIZ0R,oBACHnS,KAAK2Q,UAIFyB,qBAECpS,KAAKmR,eAAiBD,QAAUA,OAAiB,UAAKA,OAAiB,SAAc,YAErFA,OAAiB,SAAc,aAIhCxQ,sBACHC,EACA0R,GAEA,OAAIrS,KAAKmC,QAAUkQ,GAAarS,KAAKzF,MAAMG,OAASiG,EAAUjG,KAM3DkG,SACH,MAAM,OAAEvB,EAAM,UAAEiF,GAActE,KAAKzF,MAE7B0L,EAAS,OACRjG,KAAKzF,OAAK,IACb+X,UAAW,CACPC,eAAgBvS,KAAKmR,eAEzBsM,0BAA2B,CACvBnc,YAAatB,KAAKzF,MAClBoD,UAAW4D,GAAAA,CAAWvB,KAAKH,gBAAiBR,EAAO1B,YAEvD8U,QAAS,CACLC,MAAO,CACHhR,IAAK4N,EAAAA,MACLxN,QAAQ,GAEZ6Q,UAAW,CACPjR,IAAKkO,EAAAA,WAETgD,KAAMvV,EAAAA,cAACqgB,EAAAA,EAA6C,CAAC/f,UAAWqC,KAAKH,kBACrE8R,QACItU,EAAAA,cAACsgB,EAAAA,EAAgD,CAAChgB,UAAWqC,KAAKH,gBAAiB8R,QAASrN,EAAUyN,kBAG9GgB,mBAAoB,CAChBjE,GAAI,MACJkE,MAAO,CAAEC,QAAS,SAEtBC,YAAa,CACTpE,GAAI9O,KAAKmR,cAAgB,MAAQ,KACjCxT,UAAW,GAAGqC,KAAKH,8BAEvBsD,QAAS9D,EAAO8D,SACZ9F,EAAAA,cAACoG,EAAAA,GAAa,eACV9F,UAAW,GAAGqC,KAAKH,4BACfR,EAAO8D,QAAO,CAClBO,UAAW,CAAEC,OAAQ3D,KAAKF,oBAAqBmC,eAAgBjC,KAAKzF,MAAME,QAAQa,YAG1FsiB,sCAAuC5d,KAAKoT,wBAGhD,OAAOpT,KAAKzF,MAAMuG,WAAWmF,GA4BzB2K,mBAEAM,OAAkB,WAAKA,OAAkB,UAAmB,kBAE5DA,OAAkB,UAAmB,gBAAEnS,KAAKsS,IACX,UAAzBA,EAAIG,GAAGjB,cACPvQ,KAAK0Q,WAAaW,EAAII,IACU,6BAAzBJ,EAAIG,GAAGjB,gBACdvQ,KAAKwd,gBAAkB,SAG1Bxd,KAAKwd,kBACNxd,KAAKwd,gBAAkB,OAK3B3M,sBAEJ,GAAIK,QAAUA,OAAgB,QAAG,CAC7B,MAAMS,EAAU,CACZG,gBAAiB9R,KAAKzF,MAAM+J,UAAUyN,gBAI1CC,OAAOC,OAAOf,OAAgB,QAAGS,IAIjCyB,sBACJ,MAAM,UAAE9O,GAActE,KAAKzF,MAC3B,MAAO,CACHqZ,aAAc,CACV9E,GAAI,gBACJnR,UAAW,GAAGqC,KAAKH,uCAEvBge,2BAA4B,CACxB/O,GAAI,2BACJnR,UAAW,GAAGqC,KAAKH,4EAEvB6C,MAAO,CACH1C,KAAK6T,aAAa,QAAS,QAASvP,EAAUyQ,2BAAuB5Z,EAAW6E,KAAK0Q,YACrF1Q,KAAK6T,aACD7T,KAAKqd,SAAS,kBAAmB,yBACjC,OACA/Y,EAAUwZ,+BACV3iB,OACAA,EACA,qBAGR4iB,eAAgB,CACZ1gB,EAAAA,cAAC2gB,EAAAA,EAAyC,CACtC9e,IAAI,aACJ4P,GAAI9O,KAAKqd,SAAS,aAAc,yCAChC1f,UAAWqC,KAAKH,gBAChB8R,QAASrN,EAAU2Z,8BAGvB5gB,EAAAA,cAAC2gB,EAAAA,EAAyC,CACtC9e,IAAI,gBACJ4P,GAAI9O,KAAKqd,SAAS,gBAAiB,4CACnC1f,UAAWqC,KAAKH,gBAChB8R,QAASrN,EAAU4Z,+BAG3BhK,aAAc,CACV7W,EAAAA,cAAC8gB,EAAAA,EAAuC,CACpCjf,IAAI,yCACJ4P,GAAG,yCACHnR,UAAWqC,KAAKH,kBAEpBxC,EAAAA,cAAC8gB,EAAAA,EAAuC,CACpCjf,IAAI,mBACJ4P,GAAG,mBACHnR,UAAWqC,KAAKH,gBAChB8R,QAASrN,EAAU8Z,aAEvB/gB,EAAAA,cAAC8gB,EAAAA,EAAuC,CACpCjf,IAAI,sBACJ4P,GAAG,sBACHnR,UAAWqC,KAAKH,gBAChB8R,QAASrN,EAAU+Z,uBAEvBhhB,EAAAA,cAAC8gB,EAAAA,EAAuC,CACpCjf,IAAI,uBACJ4P,GAAG,uBACHnR,UAAWqC,KAAKH,gBAChB8R,QAASrN,EAAUga,iBAEvBjhB,EAAAA,cAAC8gB,EAAAA,EAAuC,CACpCjf,IAAI,0BACJ4P,GAAG,0BACHnR,UAAWqC,KAAKH,gBAChB8R,QAASrN,EAAUia,mBAEvBlhB,EAAAA,cAAC8gB,EAAAA,EAAuC,CACpCjf,IAAI,oBACJ4P,GAAG,oBACHnR,UAAWqC,KAAKH,gBAChB8R,QAASrN,EAAUka,cAEvBnhB,EAAAA,cAAC8gB,EAAAA,EAAuC,CACpCjf,IAAI,yBACJ4P,GAAG,yBACHnR,UAAWqC,KAAKH,gBAChB8R,QAASrN,EAAUma,oBAEvBphB,EAAAA,cAAC8gB,EAAAA,EAAuC,CACpCjf,IAAI,+BACJ4P,GAAG,+BACHnR,UAAWqC,KAAKH,mBAGxB6e,2BAA4B,CACxB/gB,UAAW,GAAGqC,KAAKH,+CAA+CG,KAAKqd,SAAS,SAAU,MAC1F,gBAAiB,SAErBsB,oBAAqB,CACjBthB,EAAAA,cAACuhB,EAAAA,EAAwC,CACrC1f,IAAI,qBACJ4P,GAAI9O,KAAKqd,SAAS,qBAAsB,0CACxC1f,UAAW,GAAGqC,KAAKH,8CACfG,KAAKH,sCACcG,KAAKqd,SAAS,aAAc,cACnD5W,UAAWnC,EAAUua,wBACrBzb,KAAMkB,EAAUwa,mBAChBlkB,iBAAkBoF,KAAKpF,mBAE3ByC,EAAAA,cAACuhB,EAAAA,EAAwC,CACrC1f,IAAI,uBACJ4P,GAAI9O,KAAKqd,SAAS,uBAAwB,4CAC1C1f,UAAW,GAAGqC,KAAKH,8CACfG,KAAKH,wCACgBG,KAAKqd,SAAS,eAAgB,gBACvD5W,UAAWnC,EAAUya,0BACrB3b,KAAMkB,EAAU0a,qBAChBpkB,iBAAkBoF,KAAKpF,mBAE3ByC,EAAAA,cAACuhB,EAAAA,EAAwC,CACrC1f,IAAI,uBACJ4P,GAAI9O,KAAKqd,SAAS,uBAAwB,8CAC1C1f,UAAW,GAAGqC,KAAKH,8CACfG,KAAKH,wCACgBG,KAAKqd,SAAS,aAAc,iBACrD5W,UAAWnC,EAAU2a,0BACrB7b,KAAMkB,EAAU4a,qBAChBtkB,iBAAkBoF,KAAKpF,mBAE3ByC,EAAAA,cAACuhB,EAAAA,EAAwC,CACrC1f,IAAI,qBACJ4P,GAAI9O,KAAKqd,SAAS,qBAAsB,8CACxC1f,UAAW,GAAGqC,KAAKH,8CACfG,KAAKH,sCACcG,KAAKqd,SAAS,aAAc,kBACnD5W,UAAWnC,EAAU6a,2BACrB/b,KAAMkB,EAAU8a,sBAChBxkB,iBAAkBoF,KAAKpF,oBAG/B0Z,eAAgB,CACZ3W,UAAW,GAAGqC,KAAKH,4BAEvB0U,QAAS,CACLlX,EAAAA,cAACuhB,EAAAA,EAAwC,CACrC1f,IAAI,WACJ4P,GAAG,WACHnR,UAAW,GAAGqC,KAAKH,mCACnB4G,UAAWnC,EAAU+a,wBACrBjc,KAAMkB,EAAUgb,mBAChB1kB,iBAAkBoF,KAAKpF,mBAE3ByC,EAAAA,cAACuhB,EAAAA,EAAwC,CACrC1f,IAAI,SACJ4P,GAAG,SACHnR,UAAW,GAAGqC,KAAKH,iCACnB4G,UAAWnC,EAAUib,sBACrBnc,KAAMkB,EAAUqQ,oBAGxBC,yBAA0B,CACtBjX,UAAW,GAAGqC,KAAKH,oDAEvBgV,gCAAiC,CAC7B/F,GAAI,kBACJnR,UAAW,GAAGqC,KAAKH,6CAKvBgU,aACJ/E,EACAgB,EACAkF,EACAC,EACAC,EACAsK,GAEA,MAAM7hB,EAAY,GAAGqC,KAAKH,gCAC1B,MAAO,CACHsV,QAAS,CACLxX,UAAW4D,GAAAA,CAAW5D,EAAW,GAAGA,KAAamR,IAAM,aAAc,YAAa0Q,IAEtFtgB,IAAK4P,EACLrC,MACIpP,EAAAA,cAACoiB,EAAAA,EAAuC,iBAChC,CACA3Q,GAAAA,EACAuG,MAAOvG,EACPnR,UAAAA,EACAyF,KAAM4R,KAIlBd,aACI7W,EAAAA,cAAC8gB,EAAAA,EAAuC,iBAChC,CACAxgB,UAAWqC,KAAKH,gBAChBiQ,KAAM,UAIlBwF,MACIjY,EAAAA,cAACqiB,EAAAA,EAAuC,iBAChC,CACA5Q,GAAAA,EACAgB,KAAAA,EACAmF,UAAAA,EACAC,QAAAA,EACAvX,UAAAA,SAxVRuQ,EAAAA,EAAAA,IAAAA,CAAXsH,EAAAA,IAAU,kCAECtH,EAAAA,EAAAA,IAAAA,CAAXsH,EAAAA,IAAU,qCAECtH,EAAAA,EAAAA,IAAAA,CAAXsH,EAAAA,IAAU,sCATT4H,GAAyB,SAD9B5a,EAAAA,IACK4a,GA4WN,2FCraA,MAAMuC,EAA0E,IAA4C,IAA3C,QAAExK,EAAO,MAAE1I,EAAK,aAAEyH,EAAY,MAAEoB,GAAO,EACpH,OACIjY,EAAAA,cAACyF,EAAAA,KAAI,iBAAKqS,GACL1I,EACAyH,EACAoB,IAwDPsK,EAAgF,IAAwC,IAAvC,MAAElN,EAAK,UAAEC,EAAS,KAAEC,EAAI,QAAEjB,GAAS,EACtH,OACItU,EAAAA,cAACyF,EAAAA,KAAI,iBAAK4P,GACNrV,EAAAA,cAACyF,EAAAA,KAAI,iBAAK6P,GACLC,EACAjB,KA6BjB,EAvBqFpX,IACjF,MAAM,0BACFkjB,EAAyB,UACzBnL,EAAS,QACTG,EAAO,mBACPM,EAAkB,YAClBG,EAAW,QACX/P,EAAO,sCACPya,GACArjB,EAEJ,OACI8C,EAAAA,cAACwF,EAAAA,OAAM,iBAAK4a,GACPnL,EAAUC,eAAiBlV,EAAAA,cAACyF,EAAAA,KAAI,iBAAKiQ,IACrCT,EAAUC,eAAiBlV,EAAAA,cAACuiB,EAAgC,iBAAKnN,IAClEpV,EAAAA,cAACyF,EAAAA,KAAI,iBAAKoQ,GACL/P,EA9EsD,KAYlE,IAZmE,aACpEyQ,EAAY,2BACZiK,EAA0B,MAC1Bnb,EAAK,eACLqb,EAAc,aACd7J,EAAY,2BACZwK,EAA0B,oBAC1BC,EAAmB,eACnBrK,EAAc,QACdC,EAAO,yBACPK,EAAwB,gCACxBC,GACH,EACG,OACIxX,EAAAA,cAACyF,EAAAA,KAAI,iBAAK8Q,GACNvW,EAAAA,cAACyF,EAAAA,KAAI,iBAAK+a,GACLnb,GACGA,EAAM3D,KAAK6D,GAEAvF,EAAAA,cAACsiB,EAA6B,iBAAK/c,MAEjDmb,GACGA,EAAehf,KAAI,CAAC4S,EAA0B1S,IACnC5B,EAAAA,cAACA,EAAAA,SAAc,CAAC6B,IAAKD,GAAQ0S,KAE3CuC,GACGA,EAAanV,KAAI,CAACmG,EAAwBjG,IAC/B5B,EAAAA,cAACA,EAAAA,SAAc,CAAC6B,IAAKD,GAAQiG,KAE5C7H,EAAAA,cAACyF,EAAAA,KAAI,iBAAK4b,GACLC,GACGA,EAAoB5f,KAAI,CAAC4W,EAAyB1W,IACvC5B,EAAAA,cAACA,EAAAA,SAAc,CAAC6B,IAAKD,GAAQ0W,MAIhDtY,EAAAA,cAACyF,EAAAA,KAAI,iBAAKwR,GACLC,GACGA,EAAQxV,KAAI,CAAC4W,EAAyB1W,IAC3B5B,EAAAA,cAACA,EAAAA,SAAc,CAAC6B,IAAKD,GAAQ0W,MAIhDtY,EAAAA,cAACyF,EAAAA,KAAI,iBAAK8R,GACNvX,EAAAA,cAACyF,EAAAA,KAAI,iBAAK+R,QAmCbe,CAAagI,sECvF9B,MAMA,EAN8C,QAAC,GAAE9O,EAAE,UAAEnR,EAAS,KAAEyF,EAAI,UAAEqD,EAAS,SAAE5B,EAAQ,QAAEvH,GAAS,SAChGD,EAAAA,cAACiR,EAAAA,OAAM,CAACQ,GAAIA,EAAInR,UAAWA,EAAS,aAAc8I,EAAW5B,SAAUA,EAAUvH,QAASA,GACrF8F,6ECJT,MAUA,EAViD,IAA8C,IAA7C,GAAE0L,EAAE,UAAEnR,EAAS,KAAEmS,EAAO,OAAM,QAAE6B,GAAS,EACvF,MAAMkE,EAAiB,GAAGlY,MAAcmS,UAExC,OACIzS,EAAAA,cAAAA,MAAAA,CAAKyR,GAAIA,EAAInR,UAAW4D,GAAAA,CAAWsU,EAAgB,QAAS,GAAG/F,UAAcjJ,KAAK,QAAO,YAAW,YAAW,cAAa,QACxHxJ,EAAAA,cAAAA,IAAAA,CAAGM,UAAW,GAAGkY,UAAwBlE,oECQrD,MAAMmE,EAAgBb,IAClB,GAAIA,EAAW,CACX,MAAMc,EAAkBC,OAAOC,SAAShB,EAAW,IACnD,IAAKiB,MAAMH,GACP,OAAOA,IAoBnB,EAbiD,QAAC,GAAEjH,EAAE,KAAEgB,EAAI,MAAE3P,EAAK,QAAE+U,EAAO,UAAEvX,EAAS,UAAEsX,EAAS,SAAEjF,GAAU,SAC1G3S,EAAAA,cAAAA,QAAAA,CACIyR,GAAIA,EACJgB,KAAMA,EACN3P,MAAOA,EACPxC,UAAW,GAAGA,WAAmBA,KAAamR,IAC9CoG,QAAqB,KAAZA,EAAiBA,OAAU/Z,EAAS,gBAC/B,OACd8Z,UAAWa,EAAab,GACxBjF,SAAUA,8DClClB,MAMA,EAN4C,QAAC,GAAElB,EAAE,MAAEuG,EAAK,UAAE1X,EAAS,KAAEyF,GAAM,SACvE/F,EAAAA,cAAAA,QAAAA,CAAOyR,GAAI,GAAGA,UAAYnR,UAAW,GAAGA,UAAmBkS,QAASwF,GAC/DjS,6DCLT,MAEA,EAFwD,QAAC,UAAEzF,GAAW,SAAKN,EAAAA,cAAAA,MAAAA,CAAKM,UAAW,GAAGA,8ECC9F,MAIA,EAJ8D,QAAC,UAAEA,EAAS,QAAEgU,GAAS,SACjFtU,EAAAA,cAAAA,MAAAA,CAAKM,UAAW,GAAGA,sBAA+BgU,6ECEtD,MAUA,EAVgD,IAA8C,IAA7C,GAAE7C,EAAE,UAAEnR,EAAS,KAAEmS,EAAO,OAAM,QAAE6B,GAAS,EACtF,MAAMwL,EAAmB,GAAGxf,MAAcmS,YAE1C,OACIzS,EAAAA,cAAAA,OAAAA,CAAMyR,GAAIA,EAAInR,UAAW4D,GAAAA,CAAW4b,EAAkB,GAAGrN,UAAcjJ,KAAK,QAAO,YAAW,YAAW,cAAa,QAClHxJ,EAAAA,cAAAA,IAAAA,CAAGM,UAAW,GAAGwf,UAA0BxL,0yBCiFvD,IAAMkO,EAAN,cAAqBxiB,EAAAA,UAsBjBsC,YAAYpF,GACRqF,MAAMrF,GAlBO,KAAAsF,gBAA0B,aAmGpC,KAAAC,oBAAuBC,GAA0CC,KAAKzF,MAAM8E,OAAO8D,QAAQC,KAAOrD,EAAMG,OAAOC,MAO/G,KAAA2f,sBAAyB/f,GAA0CC,KAAKzF,MAAM8E,OAAO0gB,WAAahgB,EAAMG,OAAOC,MAG/G,KAAAwQ,QAAU,KACb3Q,KAAK4Q,mBACL5Q,KAAK6Q,sBAGL7Q,KAAK8Q,oBAAsBC,aAAY,KACnC/Q,KAAKgR,gCACN,KACH5L,YAAW,KACP6L,cAAcjR,KAAK8Q,uBACpB,MAIU,KAAAE,4BAA8B,KAEvCE,QAAUA,OAAe,QAAKA,OAAe,OAA4B,2BACzED,cAAcjR,KAAK8Q,qBACnB9Q,KAAKmR,eAAgB,IAIZ,KAAAP,iBAAmB,KAChC,MAAMtM,EAA8BtE,KAAKzF,MAAM+J,WAAa,GAGxD4M,OAAkB,WAAKA,OAAkB,UAAmB,iBAE5DA,OAAkB,UAAmB,gBAAEnS,KAClCsS,IACG,OAAQA,EAAIG,GAAGjB,eACX,IAAK,2BACDvQ,KAAKggB,6BAA8B,EACnChgB,KAAKwd,gBAAkB,KACvB,MAEJ,IAAK,QACDxd,KAAK0Q,WAAaW,EAAII,IACtBzR,KAAKggB,4BAA8B3O,EAAI4O,OACvCjgB,KAAKwd,gBAAkB,KACvB,MAEJ,IAAK,+BACDxd,KAAKkgB,iCAAkC,EACvC,MAEJ,IAAK,YACDlgB,KAAKkgB,gCAAkC7O,EAAI4O,OAC3C,MAEJ,IAAK,6BACDjgB,KAAKggB,6BAA8B,EACnC,MAEJ,IAAK,UACDhgB,KAAKmgB,8BAAgC9O,EAAI4O,OACzC,MAEJ,IAAK,cACDjgB,KAAKogB,iBAAmB/O,EAAII,IAC5B,MAEJ,IAAK,kBACDzR,KAAKqgB,qBAAuBhP,EAAII,IAMxC,OAAQJ,EAAIiP,cAAc/P,eACtB,IAAK,WACDc,EAAIK,SAAWpN,EAAUic,qBACzB,MAEJ,IAAK,WACDlP,EAAIK,SAAWpN,EAAU8M,8BAUhC,KAAAP,oBAAsB,KACnC,MAAMvM,EAA8BtE,KAAKzF,MAAM+J,WAAa,GAG5D,GAAI4M,QAAUA,OAAgB,QAAG,CAC7B,MAAMsP,EAAgB,CAClB5O,eAAgBtN,EAAUuN,2BAI9BG,OAAOC,OAAOf,OAAgB,QAAGsP,KAIxB,KAAAnD,SAAW,CAACC,EAAiBC,IACtCvd,KAAKwd,gBAC2B,OAAzBxd,KAAKwd,gBAA2BF,EAAUC,EAE9C,GAhMPvd,KAAK0Q,WAAawB,EAAAA,WAAAA,aAAAA,OAClBlS,KAAKogB,iBAAmBK,EAAAA,cAAAA,aAAAA,OACxBzgB,KAAKqgB,qBAAuBI,EAAAA,cAAAA,aAAAA,OAC5BzgB,KAAKggB,6BAA8B,EACnChgB,KAAKkgB,iCAAkC,EACvClgB,KAAKmgB,+BAAgC,EACrCngB,KAAKmR,eAAgB,EACrBnR,KAAKwd,gBAAkB,GAGpBrL,oBACHnS,KAAK2Q,UAIFyB,qBAECpS,KAAKmR,eAAiBD,QAAUA,OAAiB,UAAKA,OAAiB,SAAc,YAErFA,OAAiB,SAAc,aAIhCxQ,sBAAsBC,EAAwC0R,GACjE,OAAIrS,KAAKmC,QAAUkQ,GAAarS,KAAKzF,MAAMG,OAASiG,EAAUjG,KAM3DkG,SACH,MAAM,OAAEvB,EAAM,UAAEiF,GAActE,KAAKzF,MAE7B0L,EAAS,OACRjG,KAAKzF,OAAK,IACb+X,UAAW,CACPC,eAAgBvS,KAAKmR,eAEzBuP,OAAQ,CACJpf,YAAatB,KAAKzF,MAClBoD,UAAW4D,GAAAA,CAAWvB,KAAKH,gBAAiBR,EAAO1B,YAEvD8U,QAAS,CACLC,MAAO,CACHhR,IAAK4N,EAAAA,MACLxN,QAAQ,GAEZ6Q,UAAW,CACPjR,IAAKkO,EAAAA,WAETgD,KAAMvV,EAAAA,cAACsjB,EAAAA,EAA0B,CAAChjB,UAAWqC,KAAKH,kBAClD8R,QAAStU,EAAAA,cAACujB,EAAAA,EAA6B,CAACjjB,UAAWqC,KAAKH,gBAAiB8R,QAASrN,EAAUyN,kBAEhGgB,mBAAoB,CAChBjE,GAAI,MACJkE,MAAO,CAAEC,QAAS,SAEtBC,YAAa,CACTpE,GAAI9O,KAAKmR,cAAgB,MAAQ,KACjCxT,UAAW,GAAGqC,KAAKH,8BAEvBsD,QACI9F,EAAAA,cAACoG,EAAAA,GAAa,eACV9F,UAAW,GAAGqC,KAAKH,4BACfR,EAAO8D,QAAO,CAClBO,UAAW,CAAEC,OAAQ3D,KAAKF,oBAAqBmC,eAAgBjC,KAAKzF,MAAME,QAAQa,YAG1FulB,mBAAoB7gB,KAAKoT,wBAG7B,OAAOpT,KAAKzF,MAAMuG,WAAWmF,GA4HzBmN,sBACJ,MAAM,OAAE/T,EAAM,UAAEiF,GAActE,KAAKzF,MACnC,MAAO,CACHqZ,aAAc,CACV9E,GAAI,gBACJnR,UAAW,GAAGqC,KAAKH,uCAEvB6C,MAAO,CACH1C,KAAK6T,aAAa,YAAa,OAAQvP,EAAUwP,mBAAoBxP,EAAUyP,oBAC/E/T,KAAK6T,aAAa,UAAW,OAAQvP,EAAU0P,kBAAmB1P,EAAU2P,mBAC5EjU,KAAK6T,aAAa,QAAS,QAASvP,EAAUyQ,2BAAuB5Z,EAAW6E,KAAK0Q,YACrF1Q,KAAK6T,aAAa,cAAe,WAAYvP,EAAUwc,uBAAmB3lB,EAAW6E,KAAKogB,kBAC1FpgB,KAAK6T,aAAa,kBAAmB,WAAYvP,EAAUyc,8BAA0B5lB,EAAW6E,KAAKqgB,uBAEzGW,kBAAmB,CACfC,WAAYjhB,KAAKggB,4BACjBnT,MAAO7M,KAAK6T,aACR7T,KAAKqd,SAAS,kBAAmB,yBACjC,OACA/Y,EAAUwZ,+BACV3iB,OACAA,EACA,oBAEJ0iB,2BAA4B,CACxB/O,GAAI,2BACJnR,UAAW,GAAGqC,KAAKH,4EAEvBqhB,cAAe,CACXvjB,UAAW,GAAGqC,KAAKH,+CAA+CG,KAAKqd,SAAS,SAAU,MAC1F,gBAAiB,SAErB9I,QAAS,CACLlX,EAAAA,cAAC8jB,EAAAA,EAAqB,CAClBjiB,IAAI,qBACJ4P,GAAI9O,KAAKqd,SAAS,qBAAsB,0CACxC1f,UAAW,GAAGqC,KAAKH,8CACfG,KAAKH,6CACqBG,KAAKqd,SAAS,aAAc,iBAC1D5W,UAAWnC,EAAUua,wBACrBzb,KAAMkB,EAAUwa,qBAEpBzhB,EAAAA,cAAC8jB,EAAAA,EAAqB,CAClBjiB,IAAI,uBACJ4P,GAAI9O,KAAKqd,SAAS,uBAAwB,4CAC1C1f,UAAW,GAAGqC,KAAKH,8CACfG,KAAKH,+CACuBG,KAAKqd,SAAS,eAAgB,gBAC9D5W,UAAWnC,EAAUya,0BACrB3b,KAAMkB,EAAU0a,uBAEpB3hB,EAAAA,cAAC8jB,EAAAA,EAAqB,CAClBjiB,IAAI,uBACJ4P,GAAI9O,KAAKqd,SAAS,uBAAwB,8CAC1C1f,UAAW,GAAGqC,KAAKH,8CACfG,KAAKH,+CACuBG,KAAKqd,SAAS,aAAc,iBAC5D5W,UAAWnC,EAAU2a,0BACrB7b,KAAMkB,EAAU4a,uBAEpB7hB,EAAAA,cAAC8jB,EAAAA,EAAqB,CAClBjiB,IAAI,qBACJ4P,GAAI9O,KAAKqd,SAAS,qBAAsB,8CACxC1f,UAAW,GAAGqC,KAAKH,8CACfG,KAAKH,6CACqBG,KAAKqd,SAAS,aAAc,kBAC1D5W,UAAWnC,EAAU6a,2BACrB/b,KAAMkB,EAAU8a,yBAGxBrB,eAAgB,CACZ1gB,EAAAA,cAAC+jB,EAAAA,EAAsB,CACnBliB,IAAI,aACJ4P,GAAI9O,KAAKqd,SAAS,aAAc,yCAChC1f,UAAWqC,KAAKH,gBAChB8R,QAASrN,EAAU2Z,8BAEvB5gB,EAAAA,cAAC+jB,EAAAA,EAAsB,CACnBliB,IAAI,gBACJ4P,GAAI9O,KAAKqd,SAAS,gBAAiB,4CACnC1f,UAAWqC,KAAKH,gBAChB8R,QAASrN,EAAU4Z,+BAG3BhK,aAAc,CACV7W,EAAAA,cAACgkB,EAAAA,EAAoB,CACjBniB,IAAI,yCACJ4P,GAAG,yCACHnR,UAAWqC,KAAKH,kBAEpBxC,EAAAA,cAACgkB,EAAAA,EAAoB,CACjBniB,IAAI,mBACJ4P,GAAG,mBACHnR,UAAWqC,KAAKH,gBAChB8R,QAASrN,EAAU8Z,aAEvB/gB,EAAAA,cAACgkB,EAAAA,EAAoB,CACjBniB,IAAI,sBACJ4P,GAAG,sBACHnR,UAAWqC,KAAKH,gBAChB8R,QAASrN,EAAU+Z,uBAEvBhhB,EAAAA,cAACgkB,EAAAA,EAAoB,CACjBniB,IAAI,uBACJ4P,GAAG,uBACHnR,UAAWqC,KAAKH,gBAChB8R,QAASrN,EAAUga,iBAEvBjhB,EAAAA,cAACgkB,EAAAA,EAAoB,CACjBniB,IAAI,0BACJ4P,GAAG,0BACHnR,UAAWqC,KAAKH,gBAChB8R,QAASrN,EAAUia,mBAEvBlhB,EAAAA,cAACgkB,EAAAA,EAAoB,CACjBniB,IAAI,oBACJ4P,GAAG,oBACHnR,UAAWqC,KAAKH,gBAChB8R,QAASrN,EAAUka,cAEvBnhB,EAAAA,cAACgkB,EAAAA,EAAoB,CACjBniB,IAAI,yBACJ4P,GAAG,yBACHnR,UAAWqC,KAAKH,gBAChB8R,QAASrN,EAAUma,sBAI/B6C,sBAAuB,CACnBL,WAAYjhB,KAAKkgB,gCACjB1P,UAAWxQ,KAAK6T,aACZ7T,KAAKqd,SAAS,sBAAuB,6BACrC,OACA/Y,EAAUwZ,+BACV3iB,OACAA,EACA,oBAEJ0iB,2BAA4B,CACxB/O,GAAI,+BACJnR,UAAW,GAAGqC,KAAKH,4EAEvBqU,aAAc,CACV7W,EAAAA,cAACgkB,EAAAA,EAAoB,CACjBniB,IAAI,uBACJ4P,GAAG,uBACHnR,UAAWqC,KAAKH,gBAChB8R,QAASrN,EAAU8P,qCAI/BmN,oBAAqB,CACjBN,WAAYjhB,KAAKmgB,8BACjB1P,QAASzQ,KAAK6T,aACV7T,KAAKqd,SAAS,oBAAqB,2BACnC,OACA/Y,EAAUwZ,+BACV3iB,OACAA,EACA,oBAEJ0iB,2BAA4B,CACxB/O,GAAI,6BACJnR,UAAW,GAAGqC,KAAKH,4EAEvBqU,aAAc,CACV7W,EAAAA,cAACgkB,EAAAA,EAAoB,CACjBniB,IAAI,uBACJ4P,GAAG,uBACHnR,UAAWqC,KAAKH,gBAChB8R,QAASrN,EAAU8P,qCAI/BG,QAAS,CACLlX,EAAAA,cAAC8jB,EAAAA,EAAqB,CAClBjiB,IAAI,WACJ4P,GAAG,WACHnR,UAAW,GAAGqC,KAAKH,iCACnB4G,UAAWnC,EAAUkd,sBACrBpe,KAAMkB,EAAUmd,mBAEpBpkB,EAAAA,cAAC8jB,EAAAA,EAAqB,CAClBjiB,IAAI,SACJ4P,GAAG,SACHnR,UAAW,GAAGqC,KAAKH,iCACnB4G,UAAWnC,EAAUod,sBACrBte,KAAMkB,EAAUqQ,oBAGxBT,aAAc,CACV7W,EAAAA,cAACgkB,EAAAA,EAAoB,CACjBniB,IAAI,wBACJ4P,GAAG,wBACHnR,UAAWqC,KAAKH,gBAChB8R,QAASrN,EAAUqd,6BAEvBtkB,EAAAA,cAACgkB,EAAAA,EAAoB,CACjBniB,IAAI,uBACJ4P,GAAG,uBACHnR,UAAWqC,KAAKH,gBAChB8R,QAASrN,EAAU8P,mCAEvB/W,EAAAA,cAACgkB,EAAAA,EAAoB,CACjBniB,IAAI,iBACJ4P,GAAG,iBACHnR,UAAWqC,KAAKH,gBAChB8R,QAASrN,EAAU+P,sBAEvBhX,EAAAA,cAACgkB,EAAAA,EAAoB,CACjBniB,IAAI,+BACJ4P,GAAG,+BACHnR,UAAWqC,KAAKH,mBAGxBkgB,WAAY1gB,EAAO0gB,YACf1iB,EAAAA,cAACoG,EAAAA,GAA0B,CACvB9F,UAAW,GAAGqC,KAAKH,sCACnBuD,KAAM/D,EAAO0gB,WACbrc,UAAW,CAAEC,OAAQ3D,KAAK8f,sBAAuB7d,eAAgBjC,KAAKzF,MAAME,QAAQa,YAM5FuY,aACJ/E,EACAgB,EACAkF,EACAC,EACAC,EACAsK,GAEA,MAAM7hB,EAAY,GAAGqC,KAAKH,gCAC1B,MAAO,CACHsV,QAAS,CACLxX,UAAW4D,GAAAA,CAAW5D,EAAW,GAAGA,KAAamR,IAAM,aAAc,YAAa0Q,IAEtFtgB,IAAK4P,EACLrC,MACIpP,EAAAA,cAACukB,EAAAA,EAAoB,iBACb,CACA9S,GAAAA,EACAuG,MAAOvG,EACPnR,UAAAA,EACAyF,KAAM4R,KAIlBd,aACI7W,EAAAA,cAACgkB,EAAAA,EAAoB,iBACb,CACA1jB,UAAWqC,KAAKH,gBAChBiQ,KAAM,UAIlBwF,MACIjY,EAAAA,cAACwkB,EAAAA,EAAoB,iBACb,CACA/S,GAAAA,EACAgB,KAAAA,EACAmF,UAAAA,EACAC,QAAAA,EACAvX,UAAAA,SAneRuQ,EAAAA,EAAAA,IAAAA,CAAXsH,EAAAA,IAAU,uDAECtH,EAAAA,EAAAA,IAAAA,CAAXsH,EAAAA,IAAU,qDAICtH,EAAAA,EAAAA,IAAAA,CAAXsH,EAAAA,IAAU,kCAECtH,EAAAA,EAAAA,IAAAA,CAAXsH,EAAAA,IAAU,wCAECtH,EAAAA,EAAAA,IAAAA,CAAXsH,EAAAA,IAAU,4CAECtH,EAAAA,EAAAA,IAAAA,CAAXsH,EAAAA,IAAU,mDAECtH,EAAAA,EAAAA,IAAAA,CAAXsH,EAAAA,IAAU,qCAECtH,EAAAA,EAAAA,IAAAA,CAAXsH,EAAAA,IAAU,sCAjBTqK,GAAM,SADXrd,EAAAA,IACKqd,GA4eN,2FC/jBA,MAAMiC,EAAoC,IAA4C,IAA3C,QAAE3M,EAAO,MAAE1I,EAAK,aAAEyH,EAAY,MAAEoB,GAAO,EAC9E,OACIjY,EAAAA,cAACyF,EAAAA,KAAI,iBAAKqS,GACL1I,EACAyH,EACAoB,IAKPyM,EAA8D,IAAoE,IAAnE,MAAElV,EAAK,cAAEqU,EAAa,QAAE3M,EAAO,eAAEwJ,EAAc,aAAE7J,GAAc,EAChI,OACI7W,EAAAA,cAAAA,EAAAA,SAAAA,KACK0gB,GACGA,EAAehf,KAAK4S,GACTtU,EAAAA,cAAAA,EAAAA,SAAAA,KAAGsU,KAElBtU,EAAAA,cAACykB,EAAU,iBAAKjV,IACfqH,GACGA,EAAanV,KAAK4S,GACPtU,EAAAA,cAAAA,EAAAA,SAAAA,KAAGsU,KAElBtU,EAAAA,cAACyF,EAAAA,KAAI,iBAAKoe,GACL3M,GACGA,EAAQxV,KAAK4W,GACFtY,EAAAA,cAAAA,EAAAA,SAAAA,KAAGsY,QAc5BqM,EAA+E,IAAgC,IAA/B,UAAExR,EAAS,aAAE0D,GAAc,EAC7G,OACI7W,EAAAA,cAAAA,EAAAA,SAAAA,KACIA,EAAAA,cAACykB,EAAU,iBAAKtR,IACf0D,EAAanV,KAAK4S,GACRtU,EAAAA,cAAAA,EAAAA,SAAAA,KAAGsU,OAapBsQ,EAA2E,IAA8B,IAA7B,QAAExR,EAAO,aAAEyD,GAAc,EACvG,OACI7W,EAAAA,cAAAA,EAAAA,SAAAA,KACIA,EAAAA,cAACykB,EAAU,iBAAKrR,IACfyD,EAAanV,KAAK4S,GACRtU,EAAAA,cAAAA,EAAAA,SAAAA,KAAGsU,OA4DpBuQ,EAA0C,IAAwC,IAAvC,MAAExP,EAAK,UAAEC,EAAS,KAAEC,EAAI,QAAEjB,GAAS,EAChF,OACItU,EAAAA,cAACyF,EAAAA,KAAI,iBAAK4P,GACNrV,EAAAA,cAACyF,EAAAA,KAAI,iBAAK6P,GACLC,EACAjB,KAqBjB,EAf+CpX,IAC3C,MAAM,OAAEmmB,EAAM,UAAEpO,EAAS,QAAEG,EAAO,mBAAEM,EAAkB,YAAEG,EAAW,QAAE/P,EAAO,mBAAE0d,GAAuBtmB,EAErG,OACI8C,EAAAA,cAACwF,EAAAA,OAAM,iBAAK6d,GACPpO,EAAUC,eAAiBlV,EAAAA,cAACyF,EAAAA,KAAI,iBAAKiQ,IACrCT,EAAUC,eAAiBlV,EAAAA,cAAC6kB,EAAa,iBAAKzP,IAC/CpV,EAAAA,cAACyF,EAAAA,KAAI,iBAAKoQ,GACL/P,EAzEmC,KAS/C,IATgD,aACjDyQ,EAAY,MACZlR,EAAK,kBACLse,EAAiB,sBACjBM,EAAqB,oBACrBC,EAAmB,QACnBhN,EAAO,aACPL,EAAY,WACZ6L,GACH,EACG,OACI1iB,EAAAA,cAACyF,EAAAA,KAAI,iBAAK8Q,GACLlR,GACGA,EAAM3D,KAAK6D,GACU,UAAbA,EAAK1D,KAAmB8hB,EAAkBC,WAEtC5jB,EAAAA,cAACyF,EAAAA,KAAI,iBAAKke,EAAkBnD,4BACxBxgB,EAAAA,cAACykB,EAAU,iBAAKlf,IAChBvF,EAAAA,cAAC0kB,EAAuB,iBAAKf,KAIxB,cAAbpe,EAAK1D,KAAuBoiB,EAAsBL,WAE9C5jB,EAAAA,cAACyF,EAAAA,KAAI,iBAAKwe,EAAsBzD,4BAC5BxgB,EAAAA,cAACykB,EAAU,iBAAKlf,IAChBvF,EAAAA,cAAC2kB,EAAoC,iBAAKV,KAIrC,YAAb1e,EAAK1D,KAAqBqiB,EAAoBN,WAE1C5jB,EAAAA,cAACyF,EAAAA,KAAI,iBAAKye,EAAoB1D,4BAC1BxgB,EAAAA,cAACykB,EAAU,iBAAKlf,IAChBvF,EAAAA,cAAC4kB,EAAkC,iBAAKV,KAK7ClkB,EAAAA,cAACykB,EAAU,iBAAKlf,MAE9BsR,GACGA,EAAanV,KAAI,CAACmG,EAAwBjG,IAC/B5B,EAAAA,cAACA,EAAAA,SAAc,CAAC6B,IAAKD,GAAQiG,KAE3CqP,GACGA,EAAQxV,KAAI,CAAC4W,EAAyB1W,IAC3B5B,EAAAA,cAACA,EAAAA,SAAc,CAAC6B,IAAKD,GAAQ0W,KAE3CoK,IAyBInK,CAAaiL,gJC9IvB,MAAMsB,EAAwB,IAA2E,IAA1E,KAAE/e,EAAI,UAAEzF,EAAS,KAAEhC,EAAI,UAAE8K,EAAS,MAAExH,EAAK,QAAEmjB,EAAO,iBAAExnB,GAAkB,EACxG,MAAMkB,GAAUC,EAAAA,EAAAA,kBAAiB,QAASnB,EAAkB,GAAI,IAE1D+K,OAAoBxK,IAATiI,EAAqBA,EAAO,GAC7CtH,EAAQyI,cAAcC,MAAQmB,EAG9B,MAAM1J,GAAYC,EAAAA,EAAAA,wBAAuBtB,EAAkBkB,GAE3D,OACIuB,EAAAA,cAAAA,IAAAA,OAAAA,OAAAA,GACQpB,EAAS,CACb0B,UAAWA,EACXhC,KAAMA,EAAI,aACE8K,EACZnJ,SAASC,EAAAA,EAAAA,kBAAiB3C,EAAkBkB,EAAS6J,IAChDyc,GAAW,CAAE,iBAAiB,IAEnC/kB,EAAAA,cAAAA,OAAAA,CAAMglB,SAAS,QAAQ1c,GACvBtI,EAAAA,cAAAA,OAAAA,CAAMglB,SAAS,WAAWC,QAASrjB,MC1BlCsjB,EAAkC,QAAC,UAAEC,GAAW,SACzDnlB,EAAAA,cAAAA,OAAAA,CAAAA,cAAkB,QACb,IACAmlB,EACA,2kBCmBT,MAAMC,UAAmBplB,EAAAA,cAAzBsC,cAAAA,SAAAA,WACqB,KAAA+iB,UAAgC1iB,KAAKzF,MAAME,QAAQa,QAAQqnB,UAAUC,SAErE,KAAAhoB,kBAAsC0F,EAAAA,EAAAA,oBACnDN,KAAKzF,MAAME,QAAQa,QAAQiF,kBAC3BP,KAAKzF,MAAMiG,aACXR,KAAKzF,MAAMkG,WA8DE,KAAAoiB,aAAe,KAC5B,MAAM,KAAEC,GAAS9iB,KAAKzF,MAAM8E,OAC5B,OAAKyjB,GAASA,EAAKpc,SAAYoc,EAAKpc,QAAQC,eAKxCtJ,EAAAA,cAAC8kB,EAAI,CACD/e,KAAM0f,EAAKnd,SACXc,UAAWqc,EAAKrc,WAAaqc,EAAKnd,SAClChK,KAAMmnB,EAAKpc,SAAWoc,EAAKpc,QAAQC,eACnC1H,MAAM,IACNtB,UAAU,qBACV/C,iBAAkBoF,KAAKpF,oBAV3BoF,KAAKzF,MAAME,QAAQgG,UAAUyE,MAAM,0DAC5B,OAcE,KAAA6d,0BAA6BC,IAC1C,MAAM,MAAEtd,GAAU1F,KAAKzF,MAAM8E,OAE7B,IAAKqG,GAA0B,IAAjBA,EAAM/C,OAEhB,OADA3C,KAAKzF,MAAME,QAAQgG,UAAUyE,MAAM,wDAC5B,KAGX,OAAOQ,EAAM3G,KAAI,CAACoB,EAAmBlB,KACjC+jB,IACA,MAAMC,EAAWhkB,EACjB,OAAOA,IAAUyG,EAAM/C,OAJI,EAKvBtF,EAAAA,cAAC8kB,EAAI,CACDjjB,IAAKD,EACLmE,KAAMjD,EAAMwF,SACZc,UAAWtG,EAAMsG,WAAatG,EAAMwF,SACpChK,KAAMwE,EAAMuG,SAAWvG,EAAMuG,QAAQC,eACrC1H,MAAO,CAAE+jB,aAAAA,GAAehnB,WACxB2B,UAAU,qBACV/C,iBAAkBoF,KAAKpF,mBAG3ByC,EAAAA,cAAAA,MAAAA,CAAK6B,IAAK+jB,EAAUtlB,UAAU,iDACzBwC,EAAMwF,cAMN,KAAAud,sBAAyBF,IACtC,MAAM,KAAEtoB,GAASsF,KAAKzF,MAChB4oB,EAAoBzoB,EAAKyoB,kBAAkBliB,OACjD,OAAKkiB,EAIEA,EAAkBpkB,KAAI,CAACoB,EAA0BlB,KACpD+jB,IAEA,MAAMxiB,EAAeR,KAAKojB,iBAAiBpjB,KAAKzF,MAAME,QAAQa,QAAQwS,OAAQ3N,EAAMkjB,kBAEpF,OACIhmB,EAAAA,cAAC8kB,EAAI,CACDjjB,IAAKD,EACLmE,KAAM5C,EACNiG,UAAWjG,EACX7E,KAAMwE,EAAMmjB,IACZrkB,MAAO+jB,EAAahnB,WACpB2B,UAAU,qBACVykB,QAASnjB,IAAUkkB,EAAkBxgB,OAAS,EAC9C/H,iBAAkBoF,KAAKpF,uBAjB/BoF,KAAKzF,MAAME,QAAQgG,UAAUyE,MAAM,2DAC5B,OA4BE,KAAAke,iBAAmB,CAACtV,EAAgByV,KAAiE,MAClH,IAAIC,EAUJ,OATI1V,GAAUyV,GAAoBtK,EAAAA,gBAAAA,YAA4BsK,KAC1DC,EAAkBD,EAAiBE,MAAK7gB,GAAQA,EAAK8gB,SAAUnT,gBAAkBzC,EAAOyC,sBAIpEpV,IAApBqoB,GAAiCvK,EAAAA,gBAAAA,YAA4BsK,KAC7DC,EAAkBD,EAAiB,IAGjB,QAAtB,EAAOC,SAAe,aAAf,EAAiBG,MAGX,KAAAC,aAAgBZ,IAC7B,MAAM,KAAEtoB,EAAI,OAAE2E,GAAWW,KAAKzF,MACxB4oB,EAAoBzoB,EAAKmpB,cAAc5iB,OACvCpG,EAAUH,EAAKG,QAAQoG,OACvBoa,EAAMrb,KAAKzF,MAAME,QAAQa,QAAQ+f,IAAII,WAAW9f,KACtD,IAAKwnB,EAED,OADAnjB,KAAKzF,MAAME,QAAQgG,UAAUyE,MAAM,kDAC5B,KAEX,MAAMQ,EAAuB,GA8B7B,OA5BAyd,EAAkBpkB,KAAI,CAACoB,EAAqBlB,KACxC+jB,IACAtd,EAAM7G,KACFxB,EAAAA,cAAC8kB,EAAI,CACDjjB,IAAKD,EACLmE,KAAMjD,EAAMnF,KACZyL,UAAWtG,EAAMnF,KACjBW,KAAMwE,EAAMmjB,IACZrkB,MAAO+jB,EAAahnB,WACpB2B,UAAU,qBACV/C,iBAAkBoF,KAAKpF,uBAI/BC,IAAYwE,EAAOykB,kBACnBd,IACAtd,EAAM7G,KACFxB,EAAAA,cAAC8kB,EAAI,CACD/e,KAAMvI,EAAQG,KACdyL,UAAW5L,EAAQG,KACnBW,KAAM0f,EACNpc,MAAO+jB,EAAahnB,WACpBomB,SAAO,EACPzkB,UAAU,qBACV/C,iBAAkBoF,KAAKpF,qBAI5B8K,GAGM,KAAAqe,QAAU,KACvB7S,OAAO8S,QAAQC,QAGF,KAAAC,kBAAoB,IAE7BlkB,KAAKzF,MAAME,SAAWuF,KAAKzF,MAAME,QAAQa,SAAW0E,KAAKzF,MAAME,QAAQa,QAAQuf,OAAS7a,KAAKzF,MAAME,QAAQa,QAAQuf,MAAMoJ,KAIzH1I,EAAAA,GAAAA,YAA6C,KAAtBhI,SAAS4Q,UAAmBjT,OAAO8S,QAAQrhB,OAAS,GACpE,KAGPtF,EAAAA,cAAAA,IAAAA,CACIM,UAAU,4BACVkJ,KAAK,SACLlL,KAAK,sBACL2B,QAAS0C,KAAK+jB,QAAO,aACT/jB,KAAKzF,MAAM+J,UAAU8f,mBAEhCpkB,KAAKzF,MAAM+J,UAAU8f,mBAbnB,KA3MRxjB,SACH,MAAM,UAAEjD,GAAcqC,KAAKzF,MAAM8E,OACjC,IAAIglB,EAAW,KACXC,EAAkB,KAClBC,EAAsB,KAC1BF,EAAWrkB,KAAK6iB,eAChB,MAAMG,EAAeqB,EAAW,EAAI,EACpC,GAAuB,aAAnBrkB,KAAK0iB,UACL4B,EAAkBtkB,KAAK+iB,0BAA0BC,GAC5CsB,IACDA,EAAkBtkB,KAAKkjB,sBAAsBF,SAE9C,GAAuB,YAAnBhjB,KAAK0iB,WAEZ,GADA4B,EAAkBtkB,KAAK+iB,0BAA0BC,IAC5CsB,EAAiB,CAClB,MAAME,EAAgBxkB,KAAKzF,MAAME,QAAQ2E,IAAIC,OAAOolB,eAC9B,aAAlBD,IACAF,EAAkBtkB,KAAK4jB,aAAaZ,IAElB,oBAAlBwB,IACAD,EAAsBvkB,KAAKkkB,oBAC3BI,EAAkBtkB,KAAK4jB,aAAaZ,IAElB,SAAlBwB,IACAD,EAAsBvkB,KAAKkkB,oBACC,OAAxBK,IACAD,EAAkBtkB,KAAK4jB,aAAaZ,WAKhDsB,EAAkBtkB,KAAK+iB,0BAA0BC,GAErD,MAAM0B,EAAgBrnB,EAAAA,cAACklB,EAAS,CAACC,UAAU,MAErCmC,EAAmB,OAClB3kB,KAAKzF,OAAK,IACbqqB,oBAAqB,CACjBtjB,YAAatB,KAAKzF,MAClBoD,UAAW4D,GAAAA,CAAW,gBAAiB5D,GACvC+D,IAAK,MACLmF,KAAM,cAEVge,eAAgB,CACZnjB,IAAK,KACL/D,UAAW,sBAEfmnB,mBAAoB,CAChBpjB,IAAK,KACL/D,UAAW,sBAEfmlB,KAAMuB,EACN3e,MAAO4e,EACPS,WAAYR,EACZ/B,UAAWkC,IAEf,OAAO1kB,KAAKzF,MAAMuG,WAAW6jB,IAsKrC,4GC9PA,MAoCA,EApCuDpqB,IACnD,MAAM,KAAEuoB,EAAI,MAAEpd,EAAK,WAAEqf,EAAU,oBAAEH,EAAmB,eAAEC,EAAc,mBAAEC,EAAkB,UAAEtC,GAAcjoB,EACxG,OAAKuoB,GAASpd,GAAUqf,EAKpB1nB,EAAAA,cAACwF,EAAAA,OAAM,iBAAK+hB,GACRvnB,EAAAA,cAACyF,EAAAA,KAAI,iBAAK+hB,GACL/B,GACGzlB,EAAAA,cAACyF,EAAAA,KAAI,iBAAKgiB,GACLhC,EACApd,GAAS8c,GAGjBuC,GAAc1nB,EAAAA,cAACyF,EAAAA,KAAI,iBAAKgiB,GAAqBC,GAC7Crf,GACGA,EAAM3G,KAAI,CAACwH,EAAMtH,IACb5B,EAAAA,cAACA,EAAAA,SAAc,CAAC6B,IAAKD,GACjB5B,EAAAA,cAACyF,EAAAA,KAAI,iBACGgiB,EAAkB,CACtBnnB,UAAW4D,GAAAA,CACPujB,EAAmBnnB,UACnBsB,IAAUyG,EAAM/C,OAAS,EAAI,0BAA4B,MAG5D4D,EACAb,EAAMzG,EAAQ,IAAMujB,SAxB7CjoB,EAAME,QAAQgG,UAAUyE,MAAM,mDACvB,oOC+EH8f,EAQAC,EAKAC,u2CAbZ,SAAYF,GACRA,EAAAA,KAAAA,OACAA,EAAAA,KAAAA,OACAA,EAAAA,OAAAA,SACAA,EAAAA,KAAAA,OACAA,EAAAA,IAAAA,MALJ,CAAYA,IAAAA,EAAQ,KAQpB,SAAYC,GACRA,EAAAA,KAAAA,OACAA,EAAAA,MAAAA,QAFJ,CAAYA,IAAAA,EAAS,KAKrB,SAAYC,GACRA,EAAAA,UAAAA,YACAA,EAAAA,SAAAA,WACAA,EAAAA,UAAAA,YACAA,EAAAA,MAAAA,QACAA,EAAAA,cAAAA,gBACAA,EAAAA,OAAAA,SACAA,EAAAA,SAAAA,OAPJ,CAAYA,IAAAA,EAAO,KAwBZ,MAAMC,EAAqB,CAC9BC,EACAznB,EACA0nB,EACAC,IAEOF,EAAOrmB,KAAIwmB,IACd,MAAM,YAAEC,EAAW,GAAE1W,EAAE,KAAEgB,EAAI,MAAErD,EAAK,SAAEgZ,EAAQ,WAAExE,EAAU,QAAE/L,EAAO,MAAE/U,EAAK,WAAEoD,EAAU,eAAEmiB,GAAmBH,EAC3G,MAAO,CACHpQ,QAAS,CACLxX,UAAW4D,GAAAA,CAAW5D,EAAWmR,EAAI0W,IAEzCtmB,IAAK4P,EACLrC,MAAOpP,EAAAA,cAACsoB,EAAAA,GAAS,iBAAK,CAAE7W,GAAAA,EAAIuG,MAAOvG,EAAInR,UAAAA,EAAWyF,KAAMqJ,EAAOmZ,aAAc3E,EAAaoE,EAAqB5Y,KAC/GyH,aAAc7W,EAAAA,cAACwoB,EAAAA,GAAc,iBAAK,CAAEloB,UAAAA,EAAWmS,KAAM,UACrDwF,MACIjY,EAAAA,cAACyoB,EAAAA,GAAS,iBACF,CACAhX,GAAAA,EACAgB,KAAAA,EACAmF,UAAWwQ,EACXvQ,QAAAA,EACA/U,MAAAA,EACAxC,UAAAA,EACAsjB,gBAA2B9lB,IAAf8lB,GAAmCA,EAC/CjR,SAAUsV,EACV/hB,WAAAA,EACAwiB,YAAatZ,EACbiZ,eAAAA,SAkBxB,IAAMM,EAAN,cAAuC3oB,EAAAA,UAsFnCsC,YAAYpF,GAAoE,MAC5EqF,MAAMrF,GAnFH,KAAA0rB,0BAA6C,CAChD,CACInX,GAAIoW,EAAQ5a,UACZwF,KAAMmV,EAAUtB,KAChBlX,MAAOzM,KAAKzF,MAAM+J,UAAU4hB,+BAC5B/lB,MAAO,GACP8gB,YAAY,EACZuE,YAAa,YAEjB,CACI1W,GAAIoW,EAAQ3a,SACZuF,KAAMmV,EAAUtB,KAChBlX,MAAOzM,KAAKzF,MAAM+J,UAAU6hB,8BAC5BhmB,MAAO,GACP8gB,YAAY,EACZuE,YAAa,YAEjB,CACI1W,GAAIoW,EAAQxc,MACZoH,KAAMmV,EAAUvc,MAChB+D,MAAOzM,KAAKzF,MAAM+J,UAAU8hB,kCAC5BjmB,MAAO,GACP8gB,YAAY,EACZ/L,QAAShD,EAAAA,WAAAA,aAAAA,OACTsT,YAAa,aAEjB,CACI1W,GAAIoW,EAAQmB,cACZvW,KAAMmV,EAAUtB,KAChBlX,MAAOzM,KAAKzF,MAAM+J,UAAUgiB,mCAC5BnmB,MAAO,GACP8gB,YAAY,EACZuE,YAAa,WACbC,SAA2B,QAAnB,EAAEzlB,KAAKzF,MAAM8E,cAAM,aAAjB,EAAmB4V,YAOpB,KAAAsR,WAAqB,IAE9B,KAAAC,mBAA0D,GAE1D,KAAAC,sBAA8D,GAE9D,KAAAC,wBAAgE,GAQvD,KAAA7mB,gBAA0B,gCAqZ1B,KAAA8mB,4BAA8B,KAE3C,MAAMC,EAAU5mB,KAAKmC,MAAM0kB,UAC3BD,EAAQnoB,SAAQ6W,IACRA,EAAMxG,KAAOoW,EAAQxc,QAErB4M,EAAM/R,YAAa,GAGvB+R,EAAMnV,MAAQ,MAGlB,MAAM2mB,EAAU,CAAE7e,UAAW2G,EAAAA,OAAAA,KAAAA,gBAE7B5O,KAAKmF,SAAS,CACV0hB,UAAWD,EACXG,cAAc,EACdC,SAAUhC,EAASiC,IACnBC,cAAelnB,KAAKmnB,uBAAuB9hB,QAC3CyH,aAAa,EACbsa,cAAc,EACdC,gBAAgB,EAChBC,iBAAkBR,KAKT,KAAAS,6BAA+BC,UAC5C,MAAM,QAAE/sB,GAAYuF,KAAKzF,OACnB,SAAEysB,EAAQ,UAAEH,GAAc7mB,KAAKmC,MAE/BslB,EAAcznB,KAAK0nB,uBAAuBb,GAE5CG,IAAahC,EAAS2C,MACtBC,EAAAA,EAAAA,sBAAqB,IAAIC,EAAAA,0BAA0BJ,GAAchtB,EAAQS,eACpE4sB,MAAK,KACF5W,OAAOsK,SAASuM,QAAO,MAE1BC,OAAM9iB,IACHzK,EAAQgG,UAAUwnB,MAAM/iB,GACxBlF,KAAKmF,SAAS,CACVkiB,gBAAgB,QAI5Ba,EAAAA,EAAAA,qBAAoB,IAAIC,EAAAA,yBAAyBV,GAAchtB,EAAQS,eAClE4sB,MAAK,KACF5W,OAAOsK,SAASuM,QAAO,MAE1BC,OAAM9iB,IACHzK,EAAQgG,UAAUwnB,MAAM/iB,GACxBlF,KAAKmF,SAAS,CACVkiB,gBAAgB,QAOnB,KAAAK,uBAA0BtC,IACvC,MAAM0B,EAAO,KAA6B9mB,KAAKmC,MAAMmlB,kBAWrD,OATAlC,EAAO3mB,SAAQ6W,IAEPA,EAAMxG,KAAOoW,EAAQmB,cACrBS,EAAQxR,EAAMxG,IAAMkH,OAAOoS,WAAW9S,EAAMnV,QAAU,EAEtD2mB,EAAQxR,EAAMxG,IAAMwG,EAAMnV,SAI3B2mB,GAIM,KAAAuB,gBAAkB,CAACC,EAA6BpB,KAE7D,MAAMqB,EAAeD,EAAS7E,MAAK+E,GACZ,SAAZA,EAAK1Z,KAEV2Z,EAAYF,GAAiBA,EAAapoB,OAAqB,GAC/DuoB,EAAiBD,EAASE,YAAY,KACtCC,EAAYH,EAASI,UAAU,EAAGH,GAElCI,EAAWL,EAASI,UAAUH,EAAiB,IAG/C,UAAE7B,GAAc7mB,KAAKmC,MACrBykB,EAAUC,EAEhBD,EAAQnoB,SAAQ6W,IACZ,OAAQA,EAAMxG,IACV,KAAKoW,EAAQ5a,UACTgL,EAAMnV,MAAQyoB,EACd,MACJ,KAAK1D,EAAQ3a,SACT+K,EAAMnV,MAAQ2oB,EACd,MACJ,KAAK5D,EAAQxc,MACT4M,EAAM/R,YAAa,EACnB,MAAMwlB,EAAeT,EAAS7E,MAAK+E,GACxBlT,EAAMxG,KAAO0Z,EAAK1Z,KAE7BwG,EAAMnV,MAAS4oB,GAAiBA,EAAa5oB,OAAqB,GAClE,MACJ,QACI,MAAM6oB,EAAWV,EAAS7E,MAAK+E,GACpBlT,EAAMxG,KAAO0Z,EAAK1Z,KAE7BwG,EAAMnV,MAAS6oB,GAAaA,EAAS7oB,OAAqB,OAItEH,KAAKmF,SAAS,CACV0hB,UAAWD,EACXG,cAAc,EACdG,cAAAA,EACAF,SAAUhC,EAAS2C,KACnB7a,aAAa,EACbsa,cAAc,EACdC,gBAAgB,EAChBC,iBAAmBgB,EAAS,GAA2BW,QAK9C,KAAAC,kBAAoB,CAACZ,EAA6BpB,KAC/D,MAAMJ,EAAO,KAA8BwB,EAAS,GAA2BW,MAEzEE,EAAyB,GAE/Bb,EAAS7pB,SAAS+pB,IACd,GAAgB,SAAZA,EAAK1Z,GAAe,CAEpB,MAAM2Z,EAAWD,EAAKroB,MAChBuoB,EAAiBD,EAASE,YAAY,KAC5CQ,EAAkB7e,UAAYme,EAASI,UAAU,EAAGH,GAEpDS,EAAkB5e,SAAWke,EAASI,UAAUH,EAAiB,QAC1DF,EAAK1Y,OAASsJ,EAAAA,cAAAA,MACrB+P,EAAkBX,EAAK1Z,IAAM9O,KAAKzF,MAAME,QAAQ+C,iBAAiBC,eAAe+qB,EAAKroB,OAErFgpB,EAAkBX,EAAK1Z,IAAM0Z,EAAKroB,SAI1CH,KAAKmF,SAAS,CACVgkB,kBAAAA,EACAjC,cAAAA,EACAI,iBAAkBR,EAClBE,SAAUhC,EAASoE,OACnBtc,aAAa,EACbia,cAAc,KAKL,KAAAsC,mBAAsBf,IACnC,MAAMxB,EAAO,KAA8BwB,EAAS,GAA2BW,MAEzEE,EAAyB,GAE/Bb,EAAS7pB,SAAS+pB,IACd,GAAgB,SAAZA,EAAK1Z,GAAe,CAEpB,MAAM2Z,EAAWD,EAAKroB,MAChBuoB,EAAiBD,EAASE,YAAY,KAC5CQ,EAAkB7e,UAAYme,EAASI,UAAU,EAAGH,GAEpDS,EAAkB5e,SAAWke,EAASI,UAAUH,EAAiB,QAC1DF,EAAK1Y,OAASsJ,EAAAA,cAAAA,MACrB+P,EAAkBX,EAAK1Z,IAAM9O,KAAKzF,MAAME,QAAQ+C,iBAAiBC,eAAe+qB,EAAKroB,OAErFgpB,EAAkBX,EAAK1Z,IAAM0Z,EAAKroB,SAI1CH,KAAKmF,SAAS,CACVgkB,kBAAAA,EACA7B,iBAAkBR,EAClBE,SAAUhC,EAASsE,KACnBxc,aAAa,EACbia,cAAc,KAKL,KAAAwC,wBAA0B,KAEvC,MAAM,QAAE9uB,GAAYuF,KAAKzF,OACjB+sB,iBAAkBkC,GAAmBxpB,KAAKmC,MAE9CqnB,IACAC,EAAAA,EAAAA,wBAAuB,IAAIC,EAAAA,4BAA4BF,GAAiB/uB,EAAQS,eAC3E4sB,MAAK,KACF5W,OAAOsK,SAASuM,QAAO,MAE1BC,OAAM9iB,IACHzK,EAAQgG,UAAUwnB,MAAM/iB,MAGpClF,KAAKmF,SAAS,CACV6hB,SAAUhC,EAAS2E,KACnB7c,aAAa,KAIJ,KAAA8c,qBAAuB,KACpC5pB,KAAKupB,2BAoIQ,KAAAM,eAAkB9pB,IAC/B,MAAM6mB,EAAU5mB,KAAKmC,MAAM0kB,UAE3BD,EAAQnoB,SAAQmE,IACRA,EAAKkM,KAAO/O,EAAMG,OAAO4O,KACzBlM,EAAKzC,MAAQJ,EAAMG,OAAOC,UAMlCH,KAAKmF,UAAS2kB,IAAI,CACdC,SAAUD,EAAKC,QACfC,QAAShqB,KAAKiqB,eACdpD,UAAWD,EACXQ,cAAc,EACdC,gBAAgB,OAKP,KAAA4C,aAAe,KAC5B,MAAM,UAAEpD,GAAc7mB,KAAKmC,MAE3B,IAAK,MAAM+nB,KAAYrD,EAAW,CAO9B,GAAIqD,EAASjJ,YAAwC,IAA1BiJ,EAAS/pB,MAAMwC,OACtC,OAAO,EACJ,QAAyBxH,IAArB+uB,EAAShV,SAAoE,OAA3CgV,EAAS/pB,MAAMgqB,MAAMD,EAAShV,SACvE,OAAO,EACJ,GAAIgV,EAASpb,KAAOoW,EAAQmB,eAAoC,KAAnB6D,EAAS/pB,OAAgB+V,MAAMF,OAAOoS,WAAW8B,EAAS/pB,QAI1G,OAHAH,KAAKmF,SAAS,CACViiB,cAAc,KAEX,EAIf,OAAO,GAGM,KAAAgD,aAAgBpwB,GACtBgG,KAAKzF,MAAME,QAAQ+C,iBAAmBwC,KAAKzF,MAAME,QAAQ+C,iBAAiBC,eAAezD,GAASA,EAAMgC,WAGlG,KAAAquB,eAAkB/O,GAC3BC,EAAAA,GAAAA,UACO,IAAIlgB,IAAI6V,OAAOsK,SAAS7f,OAI/B2f,EAAWD,IAAII,WAAW9f,KACnB,IAAIN,IAAIigB,EAAWD,IAAII,WAAW9f,OAShC,KAAA2uB,aAAe,KAC5B,MAAM,QAAE7vB,GAAYuF,KAAKzF,MAGzB,GAAIE,EAAQa,SAAWb,EAAQa,QAAQivB,QAA0C,WAAhC9vB,EAAQa,QAAQivB,OAAOC,KACpE,MAAO,KAGX,GAAIjP,EAAAA,GAAAA,WAAsBrK,OAAOuZ,WAAY,CACzC,MAAM7sB,EAAenD,EAAQa,QAAQsC,aACrC,GAAIA,EACA,OAAIA,EAAa8sB,IAAMxZ,OAAOuZ,YAAc7sB,EAAa8sB,GAAGC,EACjD,KACA/sB,EAAagtB,IAAM1Z,OAAOuZ,YAAc7sB,EAAagtB,GAAGD,EACxD,KACA/sB,EAAaitB,IAAM3Z,OAAOuZ,YAAc7sB,EAAaitB,GAAGF,EACxD,KACA/sB,EAAaktB,IAAM5Z,OAAOuZ,YAAc7sB,EAAaktB,GAAGH,EACxD,KAEJ,KAIf,MAAO,MAGM,KAAAI,gCAAkC,KAC/C/qB,KAAKmF,SAAS,CACViC,qCAAsCpH,KAAKmC,MAAMiF,uCAIxC,KAAAC,gBAAmBC,IAChCtH,KAAKmF,SAAS,CACVoC,+BAAgCD,KAIvB,KAAAE,cAAiBC,IAC9BzH,KAAKmF,SAAS,CACVuC,6BAA8BD,KAIrB,KAAAT,2BAA8BY,IAC3C5H,KAAKmF,SAAS,CACV0C,wBAAyBD,EACzBX,6BAA6B,KAIpB,KAAAa,kBAAoB,KACjC,MAAMC,EAAW/H,KAAKzF,MAAMG,KAAKsN,oBAAoB/G,OAG/C+pB,EAFuBhrB,KAAKzF,MAAMG,KAAKuwB,MAAMhqB,OAEVwiB,MAAK8B,GAAWA,EAAQ7c,QAAUX,EAASW,QAC9ET,EAAYjI,KAAKkrB,cAAcF,GAE/B7iB,EAA4C,CAC9CC,SAAU,IAAIC,KAAKrI,KAAKmC,MAAMoF,gCAC9Be,OAAQ,IAAID,KAAKrI,KAAKmC,MAAMuF,8BAC5Ba,sBAAuBvI,KAAKmC,MAAM0F,wBAClCW,gBAAiBP,EACjBQ,oBAAqBV,EAASW,MAC9BC,mBAAuD,OAApC,EAAAC,2CAAoC,IAApCA,EAAAA,0CAAoC,EAApCA,EAAAA,qCAAAA,QAA+C,GAGhEnO,EAAU,CAAEoO,cAAe7I,KAAKzF,MAAME,QAAQS,eAEpD4N,EAAAA,gCAAAA,6BAA6DrO,EAASwN,EAAWE,GAEjFnI,KAAKmrB,+BAGQ,KAAAD,cAAiBF,GAC1BhrB,KAAKmC,MAAM0F,0BAA4B7H,KAAKmC,MAAMmlB,iBAC3C0D,EAAcA,EAAY/iB,UAAY,GAE1CjI,KAAKmC,MAAMmlB,iBAAiBrf,UAGtB,KAAAkjB,4BAA8B,KAAK,MAChDnrB,KAAKmF,SAAS,CACV8B,6BAA6B,IAEW,QAA5C,EAAAjH,KAAKorB,gCAAgC/lB,eAAO,OAA5C,EAA8CC,SAGjC,KAAA+lB,aAAgBC,IAC7B,MAAMC,EAAcD,EAAQ7H,MAAK+H,GAAYA,EAAS9R,aAEtD1Z,KAAKmF,SAAS,CACVmiB,iBAAkBiE,EAAeA,EAAYrS,IAAI,GAA2B+P,UAAO9tB,KA12BvF6E,KAAKkH,aAAelH,KAAKkH,aAAa7G,KAAKL,MAC3CA,KAAK6pB,eAAiB7pB,KAAK6pB,eAAexpB,KAAKL,MAC/CA,KAAKupB,wBAA0BvpB,KAAKupB,wBAAwBlpB,KAAKL,MAEjEA,KAAK6Z,sBAAwB,CAACqL,EAAQxc,MAAOwc,EAAQuG,OAAQvG,EAAQmB,eACrErmB,KAAK0rB,UACDnxB,EAAME,QAAQa,SAAWf,EAAME,QAAQa,QAAQivB,QAAgD,WAAtChwB,EAAME,QAAQa,QAAQivB,OAAOC,KAAoB,KAAO,KACrHxqB,KAAK2rB,gBAAkB3rB,KAAK2rB,gBAAgBtrB,KAAKL,MACjDA,KAAK4rB,sBAAwBvuB,EAAAA,YAC7B2C,KAAKmnB,uBAAyB9pB,EAAAA,YAC9B2C,KAAKorB,gCAAkC/tB,EAAAA,YACvC2C,KAAKmC,MAAQ,CACT6nB,SAAS,EACTnD,UAAW7mB,KAAK6rB,iBAChB9E,cAAc,EACdC,SAAUhC,EAAS2E,KACnBI,SAAS,EACTjd,aAAa,EACbsa,cAAc,EACdC,gBAAgB,EAChBpgB,6BAA6B,EAC7BM,+BAAgC,GAChCG,6BAA8B,GAC9BN,qCAAqC,EACrCS,yBAAyB,GAG7B7H,KAAKpF,kBAAmB0F,EAAAA,EAAAA,oBACpBN,KAAKzF,MAAME,QAAQa,QAAQiF,kBAC3BP,KAAKzF,MAAMiG,aACXR,KAAKzF,MAAMkG,WAEfT,KAAKlE,SAAUC,EAAAA,EAAAA,kBAAiB,QAASiE,KAAKpF,iBAAkB,IA1D1D,eACN,MAA0B,OAAnBoF,KAAK0rB,WAAyC,OAAnB1rB,KAAK0rB,UAGjC,gCACN,OACK7U,EAAAA,iBAAAA,mBAAoC7W,KAAKmC,MAAMoF,kCAC/CsP,EAAAA,iBAAAA,mBAAoC7W,KAAKmC,MAAMuF,8BAI9C,uBACN,MAAM,oCAAEokB,GAAwC9rB,KAAKzF,MAAM+J,UAC3D,OAAOtE,KAAKmC,MAAMmlB,iBACZwE,EACK7U,QAAQ,cAAejX,KAAKmC,MAAMmlB,iBAAiBhd,WAAa,IAChE2M,QAAQ,aAAcjX,KAAKmC,MAAMmlB,iBAAiB/c,UAAY,IACnE,GA4CHshB,iBAEH,OADsB7rB,KAAKimB,0BACNlnB,KAAI,CAACuW,EAAOrW,KAC7Be,KAAKwmB,mBAAmBxQ,OAAO/W,IAAU5B,EAAAA,YACzCiY,EAAMoQ,eAAiB1lB,KAAKwmB,mBAAmBxQ,OAAO/W,IAC/CqW,KAIRnD,oBACCoJ,EAAAA,GAAAA,WAAsBrK,OAAO6a,mBAC7B7a,OAAO6a,iBAAiB,SAAU/rB,KAAK2rB,iBACvC3rB,KAAK2rB,mBAINK,uBACCzQ,EAAAA,GAAAA,WAAsBrK,OAAO+a,qBAC7B/a,OAAO+a,oBAAoB,SAAUjsB,KAAK2rB,iBAI3CjrB,sBACHC,EACA0R,GAEA,OAAIrS,KAAKmC,QAAUkQ,GAAarS,KAAKzF,MAAMG,OAASiG,EAAUjG,QAIzDsF,KAAKmC,MAAM2K,aAAe9M,KAAKmC,MAAM2K,cAAgBuF,EAAUvF,aAChE1H,YAAW,KAAK,QACsB,QAAlC,EAAApF,KAAKwmB,mBAAmB,GAAGnhB,eAAO,OAAlC,EAAoCC,QACF,QAAlC,EAAAtF,KAAK4rB,sBAAsBvmB,eAAO,OAAlC,EAAoCC,UACrCtF,KAAKumB,aAEL,GAGJ3lB,SAAM,MACT,MAAM,OACFvB,EAAM,UACNiF,EACA5J,MAAM,MAAEuwB,IACRjrB,KAAKzF,OACH,UAAEoD,EAAS,QAAEwF,GAAY9D,GACzB,8BACF6sB,EAA6B,2BAC7BC,EAA0B,6BAC1BC,EAA4B,qCAC5BC,EAAoC,0BACpCC,EAAyB,sBACzBviB,EAAqB,4BACrBR,EAA2B,iCAC3BgjB,EAAgC,YAChC1iB,EAAW,cACXH,EAAa,YACbC,EAAW,mBACXC,EAAkB,iBAClBH,EAAgB,kBAChB+D,GACAlJ,GACE,UACFuiB,EAAS,aACTE,EAAY,SACZC,EAAQ,YACRla,EAAW,+BACXvF,EAA8B,6BAC9BG,EAA4B,4BAC5BT,GACAjH,KAAKmC,MAEHqqB,EAAWvB,GAASA,EAAMhqB,QAAUgqB,EAAMhqB,OAAO0B,OAAS,EAChE3C,KAAKlE,QAAQyI,cAAcC,MAAQC,EAAAA,kBAAAA,QACnC,MAAMgoB,GAAoBvwB,EAAAA,EAAAA,wBAAuB8D,KAAKpF,iBAAmBoF,KAAKlE,SAExEiM,EAA8C,QAAtC,EAAG/H,KAAKzF,MAAMG,KAAKsN,2BAAmB,aAAnC,EAAqC/G,OAEtD,IAAKurB,EAAU,CACX,IAAItY,EAAe,GACE,YAAjB+W,EAAMyB,OACNxY,EAAeiY,EACS,WAAjBlB,EAAMyB,OACbxY,EAAemY,EACRpB,EAAMhqB,QAAkC,IAAxBgqB,EAAMhqB,OAAO0B,SACpCuR,EAAekY,GAGnB,MAAMO,EAAU,OACT3sB,KAAKzF,OAAK,IACboD,UAAAA,EACAivB,qBAAsB,CAClBtrB,YAAatB,KAAKzF,MAClBoD,UAAW4D,GAAAA,CAAWvB,KAAKH,gBAAiBlC,IAEhDkvB,gBAAiB,CACblvB,UAAW,GAAGqC,KAAKH,8BAEvBsD,QAASA,GAAW9F,EAAAA,cAAC0O,EAAAA,QAAO,CAACpO,UAAW,GAAGqC,KAAKH,2BAA4BitB,WAAY3pB,EAAQzB,IAAK0B,KAAMD,EAAQC,OACnH2pB,cACI1vB,EAAAA,cAACiR,EAAAA,OAAM,eACHO,SAAU7O,KAAKmnB,uBACfxpB,UAAW,GAAGqC,KAAKH,mCACnBvC,QAAS0C,KAAK2mB,6BACV8F,GAEHP,GAGTc,YAAa3vB,EAAAA,cAAAA,IAAAA,CAAGM,UAAW,GAAGqC,KAAKH,kCAAmCqU,KAG1E,OAAOlU,KAAKzF,MAAMuG,WAAW6rB,GAGjC,MAAM1mB,EAAS,OACRjG,KAAKzF,OAAK,IACboD,UAAAA,EACAivB,qBAAsB,CAClBtrB,YAAatB,KAAKzF,MAClBoD,UAAW4D,GAAAA,CAAWvB,KAAKH,gBAAiBlC,IAEhDkvB,gBAAiB,CACblvB,UAAW,GAAGqC,KAAKH,8BAEvBsD,QAASA,GAAW9F,EAAAA,cAAC0O,EAAAA,QAAO,CAACpO,UAAW,GAAGqC,KAAKH,2BAA4BitB,WAAY3pB,EAAQzB,IAAK0B,KAAMD,EAAQC,OACnH6pB,WAAYngB,EACZigB,cACI1vB,EAAAA,cAACiR,EAAAA,OAAM,eACHO,SAAU7O,KAAKmnB,uBACfxpB,UAAW,GAAGqC,KAAKH,mCACnBvC,QAAS0C,KAAK2mB,6BACV8F,GAEHP,GAGTgB,sBAAuB7vB,EAAAA,cAAC4e,EAAAA,MAAK,iBAAKjc,KAAKmtB,sBACvCC,YAAaptB,KAAKkH,aAClB8f,SAAAA,EACAqG,KACItG,GAAgBja,IAAgBka,IAAahC,EAASiC,KAAOD,IAAahC,EAAS2C,MAC7E3nB,KAAKstB,kBACLttB,KAAKutB,qBACf1G,UAAAA,EACA2G,8BACInwB,EAAAA,cAACoO,EAAAA,GAA2B,CACxB9N,UAAW4D,GAAAA,CAAWvB,KAAKH,gBAAiBlC,GAC5C4Q,gBAAiBvO,KAAKorB,gCACtB1f,mBAAoB1L,KAAKgH,2BACzBuC,4BAA6BA,EAC7BoC,iBAAkB3L,KAAK+qB,gCACvBnf,mBAAoB0gB,EACpBviB,sBAAuBA,EACvB8B,kBAAmB7L,KAAKmC,MAAMiF,sCAGtCuF,sBACItP,EAAAA,cAACuP,EAAAA,GAAqB,CAClBC,OAAO9E,MAAAA,OAAQ,EAARA,EAAUW,QAAS,GAC1BoE,YAAa7F,EACb8F,OAAQ/M,KAAKmrB,4BACbne,eAAgBzF,EAChB0F,aAAcvF,EACdwF,iBAAkBlN,KAAKqH,gBACvB8F,eAAgBnN,KAAKwH,cACrB4F,iBAAkBpN,KAAKqN,0BACvB7D,iBAAkB+iB,EAClB9iB,iBAAkBA,EAClBC,cAAeA,EACfC,YAAaA,EACbC,mBAAoBA,EACpBC,YAAaA,EACbyD,gBAAiBtN,KAAK8H,kBACtBnK,UAAW4D,GAAAA,CAAWvB,KAAKH,gBAAiBlC,GAC5C6P,kBAAmBA,EACnBD,aAAcvN,KAAKmC,MAAM0F,wBAA0B,GAAK7H,KAAKytB,qBAKzE,OAAOztB,KAAKzF,MAAMuG,WAAWmF,GAIzBknB,oBACJ,MAAM,OAAE9tB,EAAM,UAAEiF,EAAS,QAAE7J,GAAYuF,KAAKzF,OACtC,UAAEmzB,EAAS,eAAElT,EAAc,sBAAEmT,GAA0BtuB,GACvD,qCACFuuB,EAAoC,yCACpCC,EAAwC,2BACxCC,EAA0B,+BAC1BC,EAA8B,6BAC9BC,EAA4B,6BAC5BC,EAA4B,gCAC5BC,EAA+B,oBAC/BnU,GACAzV,EAEEyU,EAAY/Y,KAAKmuB,oBAevB,MAAO,CACH7pB,UAAAA,EACAqV,SAfCV,EAAAA,gBAAAA,YAA4BF,IACzBA,EAAU,GAAGG,IAAIna,KAAI6D,IACjB,IAAI5C,KAAK4Z,WAAY5Z,KAAK6Z,sBAAsBlb,SAASiE,EAAKkM,IAG9D,MAAO,CACH/U,KAAM6I,EAAKkM,GACXgL,SAAW4T,GAAaA,IAAc,EACtCjnB,UAAWsT,OAGvB,GAKAC,KAAMjB,EACNpb,UAAW,GAAGqC,KAAKH,yBACnBoa,aAAcja,KAAK4Z,SAAWkU,EAA6B,GAC3D5T,eAAgBla,KAAK4Z,SAAWoU,EAA+B,GAC/D7T,aAAc4T,EACdK,gBAAiBN,EACjBO,kBAAmBL,EACnBM,gBAAiBP,EACjB3T,gBAAgB,EAChBC,eAAgB4T,EAChB3T,gBAAgB,EAChBC,WAAYmT,EACZa,eAAgB,eAChB/T,eAAAA,EACAC,cAAeza,KAAK4Z,SACpBc,gBAAiB1a,KAAK4Z,SAAW5Z,KAAK6Z,sBAAwB,GAC9Dc,mBAAoB,CAChBC,UACIngB,GACAA,EAAQa,SACRb,EAAQa,QAAQuf,OAChBpgB,EAAQa,QAAQuf,MAAMC,OACrB5E,MAAMF,OAAOC,SAASxb,EAAQa,QAAQuf,MAAMC,KAAM,KAC7C9E,OAAOC,SAASxb,EAAQa,QAAQuf,MAAMC,KAAM,IAC5C,EACVC,YAAa4S,GAAyB,GACtC3S,SAAU6S,EACV3S,SAAU0S,EACVxS,eAAgB8S,EAChB7S,IAAM5gB,GAAWuF,KAAKqqB,eAAe5vB,EAAQa,SAASK,MAAS,IAEnE+f,oBAAoB,EACpB8S,eAAgBlqB,EAAUkqB,eAC1BC,cAAe,EACf5S,wCAAyCvX,EAAUuX,wCACnDC,gBAAiBxX,EAAUwX,gBAC3BC,iBAAkBzX,EAAUyX,iBAC5BrP,QAAS,CACLiP,SAAU3b,KAAKkpB,kBACfvlB,OAAQ3D,KAAKqoB,gBACbzM,OAAS5b,KAAK4Z,UAAY5Z,KAAKqpB,yBAAuBluB,GAE1DuzB,YAAa1uB,KAAKoqB,aAClBuE,iBAAkB3uB,KAAKqrB,cAKvB8C,oBACJ,MAAM,UACF7pB,EACA5J,MAAM,MAAEuwB,IACRjrB,KAAKzF,OACH,6BAAEq0B,EAA4B,8BAAEC,EAA6B,8BAAEC,GAAkCxqB,EACjGyqB,EAAY9D,GAASA,EAAMhqB,OAEjC,OAAKgY,EAAAA,gBAAAA,YAA4B8V,GAI1BA,EAAUhwB,KAAI,CAACkqB,EAAMhqB,KACxB,IAAI+vB,EAAe,GAInB,OAHAhvB,KAAKymB,sBAAsBxnB,GAAS5B,EAAAA,YACpC2C,KAAK0mB,wBAAwBznB,GAAS5B,EAAAA,YAE9B4rB,EAAKxP,aACT,KAAK,EACDuV,EAAeH,EACf,MACJ,KAAK,EACDG,EAAeJ,EACf,MACJ,KAAK,EACL,QACII,EAAeF,EAGvB,MAAO,CACH5V,IAAK,CACD,CACIpK,GAAIoW,EAAQ+J,SACZnf,KAAMsJ,EAAAA,cAAAA,KACNjZ,MAAO,GAAG8oB,EAAK3e,aAAa2e,EAAK1e,WACjC0e,KAAAA,GAEJ,CACIna,GAAIoW,EAAQxc,MACZoH,KAAMsJ,EAAAA,cAAAA,KACNjZ,MAAO8oB,EAAKvgB,OAAS,GACrB/K,UAAW,GAAGqC,KAAKH,6BAEvB,CACIiP,GAAIoW,EAAQuG,OACZ3b,KAAMsJ,EAAAA,cAAAA,KACNjZ,MAAO6uB,GAEX,CACIlgB,GAAIoW,EAAQmB,cACZvW,KAAMsJ,EAAAA,cAAAA,MACNjZ,MAAO8oB,EAAK5C,eAAiB,IAGrC3M,YAAY,EACZwV,iBAAkB,CACdC,KAAMnvB,KAAKymB,sBAAsBxnB,GACjCmwB,OAAQpvB,KAAK0mB,wBAAwBznB,QAhDtC,GAuDPiI,eAAY,MACQ,QAAxB,EAAAlH,KAAKmC,MAAM+kB,qBAAa,OAAxB,EAA0B5hB,QAC1BtF,KAAKmF,SAAS,CACV2H,aAAa,EACbia,cAAc,EACdG,mBAAe/rB,EACf6rB,SAAUhC,EAAS2E,OAyNnB4D,qBACJ,MAAM,UAAEjpB,GAActE,KAAKzF,OACrB,SAAEysB,EAAQ,kBAAEmC,GAAsBnpB,KAAKmC,OACvC,kCACFktB,EAAiC,mCACjCC,EAAkC,gCAClCC,EAA+B,6BAC/BC,EAA4B,uCAC5BC,EAAsC,iCACtCC,EAAgC,sCAChCC,GACArrB,EAEEsrB,EAAgB,GAAG5vB,KAAKH,wBACxBgwB,EAAgB7I,IAAahC,EAASoE,OAAS,cAAgB,YAC/D0G,EAAqB9vB,KAAK4pB,qBAEhC,MAAO,CACHmG,eAAgBxuB,GAAAA,CAAW,GAAGvB,KAAKH,yBAA0BgwB,GAC7DG,YAAa,CACTryB,UAAWiyB,GAEfK,aAAcjJ,IAAahC,EAASoE,OAASiG,EAAoCE,EACjFW,iBAAkBlJ,IAAahC,EAASoE,QACpC/rB,EAAAA,cAAAA,IAAAA,CAAGM,UAAW,GAAGiyB,iBAA8BN,GAEnD/hB,aAAc4b,EACd5U,QAAS,CACLyS,IAAahC,EAASoE,QAClB/rB,EAAAA,cAACiR,EAAAA,OAAM,CACHO,SAAU7O,KAAK4rB,sBACf1sB,IAAI,gBACJvB,UAAW,GAAGiyB,uBACdtyB,QAASwyB,GAERJ,GAGTryB,EAAAA,cAACiR,EAAAA,OAAM,CAACpP,IAAI,gBAAgBvB,UAAW,GAAGiyB,WAAwBtyB,QAAS0C,KAAKkH,cAC3E8f,IAAahC,EAASoE,OAASqG,EAAyCD,IAGjFtb,aAAc,CACV7W,EAAAA,cAACwoB,EAAAA,GAAc,CACX3mB,IAAI,iBACJ4P,GAAG,iBACHnR,UAAW,GAAGiyB,UACdje,QAASge,KAGjBrrB,UAAAA,GAKAgpB,kBACJ,MAAM,UAAEhpB,GAActE,KAAKzF,OACrB,SAAEysB,EAAQ,UAAEH,EAAS,aAAEO,EAAY,eAAEC,EAAc,QAAE2C,GAAYhqB,KAAKmC,OACtE,oCACFguB,EAAmC,mCACnCC,EAAkC,gCAClCC,EAA+B,2BAC/BC,EAA0B,kCAC1BC,EAAiC,6BACjCf,EAA4B,oCAC5BgB,EAAmC,4BACnCC,EAA2B,qCAC3BC,EAAoC,mBACpCrL,GACA/gB,EAEEsrB,EAAgB,GAAG5vB,KAAKH,wBACxBgwB,EAAgB7I,IAAahC,EAASiC,IAAM,WAAa,YAE/D,MAAO,CACH8I,eAAgBxuB,GAAAA,CAAW,GAAGvB,KAAKH,yBAA0BgwB,GAC7DG,YAAa,CACTryB,UAAWiyB,GAEfK,aAAcjJ,IAAahC,EAASiC,IAAMmJ,EAAqCD,EAC/ED,iBAAkBlJ,IAAahC,EAASiC,KACpC5pB,EAAAA,cAAAA,IAAAA,CAAGM,UAAW,GAAGiyB,sBAAmCc,GAExDtL,OAAQD,EAAmB0B,EAAW,GAAG+I,SAAsBvK,EAAoBrlB,KAAK6pB,gBACxFtV,QAAS,CACLlX,EAAAA,cAACszB,EAAAA,GAAU,CACPzxB,IAAI,WACJ4P,GAAG,WACHnR,UAAW,GAAGiyB,SACdnpB,UAAW4pB,EACXjtB,KAAMktB,EACNhzB,QAAS0C,KAAKunB,6BACd1iB,UAAWmlB,EACXpvB,iBAAkBoF,KAAKpF,mBAE3ByC,EAAAA,cAACszB,EAAAA,GAAU,CACPzxB,IAAI,SACJ4P,GAAG,SACHnR,UAAW,GAAGiyB,WACdnpB,UAAW8pB,EACXntB,KAAMosB,EACNlyB,QAAS0C,KAAKkH,aACdtM,iBAAkBoF,KAAKpF,oBAG/BsZ,aAAc,CACVkT,GACI/pB,EAAAA,cAACwoB,EAAAA,GAAc,CACX3mB,IAAI,iBACJ4P,GAAG,iBACHnR,UAAWqC,KAAKH,gBAChB8R,QAAS6e,IAGjBnJ,GACIhqB,EAAAA,cAACwoB,EAAAA,GAAc,CACX3mB,IAAI,iBACJ4P,GAAG,iBACHnR,UAAWqC,KAAKH,gBAChB8R,QAAS8e,KAIrBnsB,UAAAA,GAmEAqnB,kBACJ3rB,KAAK0rB,UAAY1rB,KAAKsqB,kBAxzB1Bpc,EAAAA,EAAAA,IAAAA,CADCsH,EAAAA,IAAU,iCAqBDtH,EAAAA,EAAAA,IAAAA,CAATC,EAAAA,IAAQ,8BAICD,EAAAA,EAAAA,IAAAA,CAATC,EAAAA,IAAQ,+CAOCD,EAAAA,EAAAA,IAAAA,CAATC,EAAAA,IAAQ,qCAzEP6X,GAAwB,SAD7BxjB,EAAAA,IACKwjB,GAu8BN,qGC7mCA,MAAM4K,EAAgD,IAA4C,IAA3C,QAAEzb,EAAO,MAAE1I,EAAK,aAAEyH,EAAY,MAAEoB,GAAO,EAC1F,OACIjY,EAAAA,cAACyF,EAAAA,KAAI,iBAAKqS,GACL1I,EACAyH,EACAoB,IAKPub,EAA8Ct2B,IAChD,MAAM,eAAEw1B,EAAc,YAAEC,EAAW,aAAEC,EAAY,iBAAEC,EAAgB,OAAE9K,EAAM,QAAE7Q,EAAO,aAAEL,EAAY,OAAEnH,GAAWxS,EAEzGoY,EACFtV,EAAAA,cAAAA,EAAAA,SAAAA,KACK6yB,EACD7yB,EAAAA,cAACyF,EAAAA,KAAI,iBAAKktB,GACL5K,GACGA,EAAOrmB,KAAK6D,GACDvF,EAAAA,cAACuzB,EAAgB,iBAAKhuB,EAAI,CAAE1D,IAAK0D,EAAK1D,SAEpDgV,GACGA,EAAanV,KAAI,CAACmG,EAAwBjG,IAC/B5B,EAAAA,cAACA,EAAAA,SAAc,CAAC6B,IAAKD,GAAQiG,OAMlD4rB,EACFvc,GACAA,EAAQxV,KAAI,CAAC4W,EAAyB1W,IAC3B5B,EAAAA,cAACA,EAAAA,SAAc,CAAC6B,IAAKD,GAAQ0W,KAG5C,OAAOob,EAAahB,GAAgB,EAAME,EAActd,EAAWme,EAAa/jB,IAG9EikB,EAAiDz2B,IACnD,MAAM,eAAEw1B,EAAc,YAAEC,EAAW,aAAEC,EAAY,iBAAEC,EAAgB,aAAE3iB,EAAY,QAAEgH,EAAO,aAAEL,EAAY,UAAE5P,EAAS,OAAEyI,GAAWxS,EAChI,IAAIoY,EAAY,KAEhB,GAAKpF,EAEE,CACH,MAAM,UAAEjD,EAAS,SAAEC,GAAagD,EAC1B0jB,EAAe,GAAG3mB,KAAaC,IAErCoI,EACItV,EAAAA,cAAAA,EAAAA,SAAAA,KACK6yB,EACD7yB,EAAAA,cAACyF,EAAAA,KAAI,CAACpB,IAAI,KAAK/D,UAAW,GAAGqyB,EAAYryB,kBACrCN,EAAAA,cAACyF,EAAAA,KAAI,CAACpB,IAAI,KAAK/D,UAAW,GAAGqyB,EAAYryB,4BACpCszB,GAEJjf,OAAOkf,KAAK3jB,GAAcxO,KAAI,CAACrE,EAAMuE,KAClC,GAAIvE,IAASwqB,EAAAA,QAAAA,WAAqBxqB,IAASwqB,EAAAA,QAAAA,SACvC,OAAO,KAEX,MAAMzY,EAAQnI,EAAU,QAAQ5J,iBAAsBA,EACtD,OACI2C,EAAAA,cAACyF,EAAAA,KAAI,CAACpB,IAAI,KAAK/D,UAAW,GAAGqyB,EAAYryB,sBAAuBuB,IAAKD,GAChEwN,EACA,KACAc,EAAa7S,cArBtCiY,EAAYuB,EA8BhB,MAAM4c,EACFvc,GACAA,EAAQxV,KAAI,CAAC4W,EAAyB1W,IAC3B5B,EAAAA,cAACA,EAAAA,SAAc,CAAC6B,IAAKD,GAAQ0W,KAG5C,OAAOob,EAAahB,GAAgB,EAAME,EAActd,EAAWme,EAAa/jB,IAgB9EgkB,EAAe,CACjBpzB,EACAmP,EACAqkB,EACAC,EACAC,EACAjE,IAGI/vB,EAAAA,cAACiS,EAAAA,MAAK,CACF3R,UAAU,2BACV2zB,cAAe3zB,EACf8R,WAAS,EACTC,MAAM,EACN6hB,gBAAgB,aAChBzvB,OAAQgL,EACRC,OAAQqgB,GAER/vB,EAAAA,cAACsS,EAAAA,YAAW,CAAC5C,OAAQqgB,GAAc+D,GACnC9zB,EAAAA,cAACuS,EAAAA,UAAS,KAAEwhB,GACZ/zB,EAAAA,cAAC8S,EAAAA,YAAW,KAAEkhB,IAqD1B,EAhD+E92B,IAC3E,MAAM,qBACFqyB,EAAoB,gBACpBC,EAAe,QACf1pB,EAAO,YACP6pB,EAAW,cACXD,EAAa,sBACbG,EAAqB,KACrBG,EAAI,SACJrG,EAAQ,YACRoG,EAAW,8BACXI,EAA6B,sBAC7B7gB,GACApS,EAEEi3B,EACFn0B,EAAAA,cAACyF,EAAAA,KAAI,CAACnF,UAAU,4CACXovB,EACAS,GAIT,OAAIR,EAEI3vB,EAAAA,cAACwF,EAAAA,OAAM,iBAAK+pB,GACRvvB,EAAAA,cAACyF,EAAAA,KAAI,iBAAK+pB,GACL1pB,EACAquB,EACA7kB,EACAqgB,IAOb3vB,EAAAA,cAACwF,EAAAA,OAAM,iBAAK+pB,GACRvvB,EAAAA,cAACyF,EAAAA,KAAI,iBAAK+pB,GACL1pB,EACAquB,EACA7kB,EACAugB,GAEJG,GAjFI,EAACvd,EAAc2hB,EAA2BrE,KACvD,OAAQtd,GACJ,IAAK,MACL,IAAK,OACD,OAAOzS,EAAAA,cAACwzB,EAAgB,iBAAKY,EAAS,CAAE1kB,OAAQqgB,KACpD,IAAK,OACL,IAAK,SACD,OAAO/vB,EAAAA,cAAC2zB,EAAmB,iBAAKS,EAAS,CAAE1kB,OAAQqgB,KACvD,QACI,OAAO,OAwEEsE,CAAS1K,EAAUqG,EAAMD,4HC3GvC,MAAMtH,EAA+C,QAAC,GACzDhX,EAAE,KACFgB,EAAI,MACJ3P,EAAK,QACL+U,EAAO,UACPvX,EAAS,UACTsX,EAAS,WACTgM,EAAU,WACV1d,EAAU,SACVyM,EAAQ,eACR0V,EAAc,YACdK,GACH,SACG1oB,EAAAA,cAAAA,QAAAA,CACIyR,GAAIA,EACJgB,KAAMA,EACN3P,MAAOA,EACPxC,UAAW,GAAGA,UACduX,QAAqB,KAAZA,EAAiBA,OAAU/Z,EAAS,gBAC9B8lB,EACf8E,YAAaA,EACb9Q,UAAWa,EAAab,GACxBjF,SAAUA,EACVnL,SAAUtB,EACVwB,IAAK2gB,KAYAC,EAA0C,QAAC,GAAE7W,EAAE,MAAEuG,EAAK,UAAE1X,EAAS,KAAEyF,EAAI,aAAEwiB,GAAc,SAChGvoB,EAAAA,cAAAA,QAAAA,CAAOyR,GAAI,GAAGA,UAAYnR,UAAW,GAAGA,UAAmBkS,QAASwF,IAC/Dhb,EAAAA,EAAAA,QAAOurB,EAAcxiB,KAcjButB,EAA4C,IAA4E,IAA3E,GAAE7hB,EAAE,UAAEnR,EAAS,KAAEyF,EAAI,UAAEqD,EAAS,iBAAE7L,EAAgB,SAAEiK,EAAQ,QAAEvH,GAAS,EAC7H,MAAMxB,GAAUC,EAAAA,EAAAA,kBAAiB,QAASnB,EAAmBwI,GACvD7E,GAAarC,EAAAA,EAAAA,wBAAuBtB,EAAmBkB,GAC7D,OACIuB,EAAAA,cAACiR,EAAAA,OAAM,eAACQ,GAAIA,EAAInR,UAAWA,EAAS,aAAc8I,EAAW5B,SAAUA,EAAUvH,QAASA,GAAaiB,GAClG6E,IAYAyiB,EAAoD,IAA8C,IAA7C,GAAE/W,EAAE,UAAEnR,EAAS,KAAEmS,EAAO,OAAM,QAAE6B,GAAS,EACvG,MAAMkE,EAAiB,GAAGlY,MAAcmS,UAExC,OACIzS,EAAAA,cAAAA,MAAAA,CAAKyR,GAAIA,EAAInR,UAAW4D,GAAAA,CAAWsU,EAAgB,QAAS,GAAG/F,UAAcjJ,KAAK,QAAO,YAAW,YAAW,cAAa,QACxHxJ,EAAAA,cAAAA,IAAAA,CAAGM,UAAW,GAAGkY,UAAwBlE,KAK/CmE,EAAgBb,IAClB,GAAIA,EAAW,CACX,MAAMc,EAAkBC,OAAOC,SAAShB,EAAW,IACnD,IAAKiB,MAAMH,GACP,OAAOA,4FCzHnB,MAqDM4b,EAAoBC,IACtB,GAAKA,GAAoC,IAAtBA,EAAWjvB,OAI9B,OAAOtF,EAAAA,cAAAA,EAAAA,SAAAA,KAAGu0B,EAAW,KAGnBC,EAAsBC,IACxB,GAAKA,GAAsC,IAAvBA,EAAYnvB,OAIhC,OAAOtF,EAAAA,cAAAA,EAAAA,SAAAA,KAAGy0B,EAAY,KAGpBC,EAAwB,CAC1BC,EACAC,EACAC,KAEA,GAAKF,GAAcE,EAInB,OACI70B,EAAAA,cAAAA,MAAAA,CAAKM,UAAU,uBACVq0B,GAAaA,EAAUG,WACvBF,GAAsBA,EAAmBE,WACzCD,GAAiBA,EAAcC,WAChC90B,EAAAA,cAAAA,MAAAA,CAAKM,UAAU,WACVq0B,GAAaA,EAAUrc,OACvBsc,GAAsBA,EAAmBtc,OACzCuc,GAAiBA,EAAcvc,UAM1Cyc,EAAoBC,IACtB,MAAM,eAAEC,EAAc,UAAEC,GAAcF,EAEtC,OAAOh1B,EAAAA,cAACyF,EAAAA,KAAI,iBAAKwvB,GAAiBC,EAAUxzB,IAAIyzB,KAG9CA,EAA4BC,IAC9B,MAAM,eAAEH,EAAc,oBAAEI,EAAmB,QAAEvvB,EAAO,OAAEwvB,EAAM,OAAEC,GAAWH,EAEzE,OACIp1B,EAAAA,cAACyF,EAAAA,KAAI,iBAAKwvB,GACNj1B,EAAAA,cAACyF,EAAAA,KAAI,iBAAK4vB,GACLvvB,EACAwvB,GAEJC,IAKPC,EAAsBC,IACxB,MAAM,eAAER,EAAc,cAAES,EAAa,QAAE5vB,EAAO,YAAE3D,EAAW,OAAEmzB,EAAM,OAAEhd,EAAM,MAAEjD,EAAK,wBAAEsgB,GAA4BF,EAEhH,OACIz1B,EAAAA,cAACyF,EAAAA,KAAI,iBAAKwvB,GACLS,EACA5vB,EACA6vB,EACAxzB,EACAmzB,EACAhd,EACAjD,IAUPugB,EAAmBC,GAAiCC,IAClDD,EAAUE,gBACHF,EAAUE,eAAeD,GAKlCE,EAAkB,CACpBC,EACAJ,EACA34B,EACA4H,EACAoxB,EACAC,EACAvjB,EACArV,KAEA,MAAM,eAAE03B,EAAc,oBAAEI,EAAmB,QAAEvvB,EAAO,OAAEwvB,GAAWW,GAE3D,UAAEhvB,GAAc/J,GAEhB,SAAEk5B,GAAatxB,EAErB,OACI9E,EAAAA,cAACyF,EAAAA,KAAI,iBAAKwvB,GACNj1B,EAAAA,cAACyF,EAAAA,KAAI,iBAAK4vB,GACLvvB,EACAwvB,GAGLt1B,EAAAA,cAACq2B,EAAAA,oBAAmB,CAChB5kB,GAAG,oCACHmB,IAAKA,EACL0jB,aAAcF,EACdzjB,SAAUijB,EAAgBC,GAC1BU,uBAAwBtvB,EAAUsvB,uBAClCC,yBAA0BN,EAAmBM,yBAC7CC,yBAA0BP,EAAmBO,yBAC7CC,gBAAiBR,EAAmBQ,gBACpCC,gBAAiBT,EAAmBS,gBACpCp5B,iBAAkBA,IAErB44B,IAKPS,EAAqBC,IACvB,MAAM,eAAE5B,EAAc,oBAAEI,EAAmB,QAAEvvB,EAAO,MAAEmS,GAAU4e,EAEhE,OACI72B,EAAAA,cAACyF,EAAAA,KAAI,iBAAKwvB,GACNj1B,EAAAA,cAACyF,EAAAA,KAAI,iBAAK4vB,GAAsBvvB,GAC/BmS,IAKP6e,EAA0BC,IAC5B,MAAM,eAAE9B,EAAc,OAAEK,EAAM,MAAErd,GAAU8e,EAE1C,OACI/2B,EAAAA,cAACyF,EAAAA,KAAI,iBAAKwvB,GACLK,EACArd,IAKb,EA1MoF/a,IAChF,MAAM,YACF85B,EAAW,2BACXC,EAA0B,0BAC1BC,EAAyB,UACzBvC,EAAS,mBACTC,EAAkB,cAClBC,EAAa,iBACbt3B,EAAgB,UAChBy3B,EAAS,YACT7yB,EAAW,YACXszB,EAAW,SACXW,EAAQ,MACRz5B,EAAK,MACLw6B,EAAK,OACLv6B,EAAM,UACNi5B,EAAS,MACT/wB,EAAK,UACLmC,EAAS,eACTmwB,EAAc,gBACdC,EAAe,WACfR,EAAU,uBACVV,EAAsB,IACtBvjB,EAAG,uBACH0kB,EAAsB,cACtBC,GACAr6B,EAEJ,OACI8C,EAAAA,cAACwF,EAAAA,OAAM,iBAAKwxB,GACRh3B,EAAAA,cAACyF,EAAAA,KAAI,iBAAKwxB,GAA6B/5B,EAAMs6B,cAC7Cx3B,EAAAA,cAACyF,EAAAA,KAAI,iBAAKyxB,GACLC,EACAx6B,EACA46B,EACAr6B,EAAMu6B,iBACNt1B,EACAmyB,EAAiBp3B,EAAMsG,MAAM+wB,YAC7B33B,EACAo4B,GAAaD,EAAiBC,GAC9B6B,GAAcD,EAAkBC,GAChCT,GAAYJ,EAAgBI,EAAUP,EAAW34B,EAAO4H,EAAOmC,EAAWkvB,EAAwBvjB,EAAKrV,GACvG65B,EACA1C,EAAsBC,EAAWC,EAAoBC,GACrDY,GAAeD,EAAmBC,GAClCjB,EAAmBt3B,EAAMsG,OAAStG,EAAMsG,MAAMixB,aAC9C4C,GAAmBP,EAAuBO,GAC1CC,GAA0BR,EAAuBQ,grBCtDlE,MAAMI,UAAuB13B,EAAAA,cAClBuD,SACH,IAAKZ,KAAKzF,MAAMsG,QAAUb,KAAKzF,MAAMsG,MAAMyhB,SAA+C,IAApCtiB,KAAKzF,MAAMsG,MAAMyhB,QAAQ3f,OAE3E,OADA3C,KAAKzF,MAAME,QAAQgG,UAAUyE,MAAM,qDAC5B,KAEX,MAAM8vB,EAAS,OACRh1B,KAAKzF,OAAK,IACb06B,WAAYj1B,KAAKzF,MAAMsG,MAAMyhB,QAC7B4S,WAAY,CACR5zB,YAAatB,KAAKzF,MAClBoD,UAAW4D,GAAAA,CAAW,kBAAmBvB,KAAKzF,MAAM8E,OAAO1B,WAC3D+D,IAAK,MAETyzB,eAAgB,CACZx3B,UAAW4D,GAAAA,CAAW,uBAAwBvB,KAAKzF,MAAM8E,OAAO1B,WAChE+D,IAAK,QAIb,OAAO1B,KAAKzF,MAAMuG,WAAWk0B,IAIrC,8HCpCO,MAAMI,EAAyD76B,IAClE,MAAM,WAAE06B,EAAU,WAAEC,EAAU,eAAEC,GAAmB56B,EACnD,OAAK06B,GAAoC,IAAtBA,EAAWtyB,OAK1BtF,IAAAA,cAACwF,EAAAA,OAAM,iBAAKqyB,GACPD,EAAWl2B,KAAI,CAACs2B,EAAqBp2B,IAE9B5B,IAAAA,cAACyF,EAAAA,KAAI,iBAAKqyB,EAAc,CAAEj2B,IAAKD,IAC1Bo2B,OARjB96B,EAAME,QAAQgG,UAAUyE,MAAM,+CACvB,OAef,isBCWA,MAAMowB,UAAkBj4B,EAAAA,cAAxBsC,cAAAA,SAAAA,WAqCW,KAAAmgB,sBAAyB7gB,GAAmBc,IAC3CC,KAAKzF,MAAM8E,OAAOk2B,OAAQt2B,KAC1Be,KAAKzF,MAAM8E,OAAOk2B,OAAQt2B,GAAOu2B,UAAYz1B,EAAMG,OAAOC,QAQjD,KAAAs1B,sBAAwB,KACrC,MAAMC,EAAuC11B,KAAKzF,MAAM8E,OAAOk2B,OACzDI,EAAgD,CAClDC,UAAW,CACPlL,GAAI,CAAEmL,EAAG,qBAAsBlL,EAAG,GAAImL,EAAG,IACzChL,GAAI,CAAE+K,EAAG,qBAAsBlL,EAAG,GAAImL,EAAG,IACzCC,GAAI,CAAEF,EAAG,qBAAsBlL,EAAG,GAAImL,EAAG,KAE7CE,UAAU,EACVC,iBAAiB,GAErB,OAAOP,MAAAA,OAAS,EAATA,EAAW32B,KAAI,CAAC6D,EAAM3D,KAAS,QAClC,MAAM,MAAEi3B,EAAK,KAAE3vB,EAAI,UAAEivB,GAAc5yB,EAE7B3E,EAAa,CACfL,aAAcoC,KAAKzF,MAAME,QAAQa,QAAQsC,aACzCjD,cAAoC,QAAvB,EAAGu7B,MAAAA,OAAK,EAALA,EAAOv7B,qBAAa,QAAIg7B,GAGtCQ,EAAgC5vB,MAAAA,OAAI,EAAJA,EAAMG,QAAQC,eAC9CyvB,EAAkD,QAArC,EAAuB7vB,MAAAA,OAAI,EAAJA,EAAMZ,gBAAQ,QAAIY,MAAAA,OAAI,EAAJA,EAAME,UAC5D4vB,EAAyC9vB,MAAAA,OAAI,EAAJA,EAAME,UAqBrD,MAPsC,CAClCyvB,MAXA74B,EAAAA,cAACoG,EAAAA,GAAc,iBAAKyyB,EAAWj4B,EAAU,CAAEG,oBAAoB,QAAQ6D,eAAgBjC,KAAKzF,MAAME,QAAQa,WAY1G8H,KATcoyB,GACdn4B,EAAAA,cAACoG,EAAAA,GAA0B,CACvBL,KAAMoyB,EACN73B,UAAU,sBACV+F,UAAW,CAAEC,OAAQ3D,KAAK8f,sBAAsB7gB,GAAQgD,eAAgBjC,KAAKzF,MAAME,QAAQa,WAM/FiL,KAAM4vB,EACNG,YAAaF,EACbG,cAAeF,OAtFpBz1B,SAAM,MACT,MAAM,QAAEuC,GAAYnD,KAAKzF,MAAM8E,OACzBm3B,EAAiBrzB,GAAW9F,EAAAA,cAACoG,EAAAA,GAAa,CAAC9F,UAAU,uBAAuB+D,IAAgB,QAAb,EAAEyB,EAAQzB,WAAG,QAAI,KAAM0B,KAAMD,EAAQC,OACpH6C,EAAS,OACRjG,KAAKzF,OAAK,IACbm7B,UAAW,CACPp0B,YAAatB,KAAKzF,MAClBoD,UAAW4D,GAAAA,CAAW,gBAAiBvB,KAAKzF,MAAM8E,OAAO1B,WACzD+D,IAAK,OAET+0B,iBAAkBD,EAClBE,mBAAoB,CAChB/4B,UAAW,sBACXkJ,KAAM,OACNnF,IAAK,MAETi1B,cAAe,CACXh5B,UAAW,2BACXkJ,KAAM,WACNnF,IAAK,MAETk1B,uBAAwB,CACpBl1B,IAAK,IACL/D,UAAW,sBACXkJ,KAAM,QAEVgwB,eAAgB72B,KAAKy1B,0BAEzB,OAAOz1B,KAAKzF,MAAMuG,WAAWmF,IAiErC,gHCtHO,MAAM6wB,EAAiBv8B,IAC1B,MAAM,UAAEm7B,EAAS,mBAAEgB,EAAkB,iBAAED,EAAgB,cAAEE,EAAa,eAAEE,EAAc,uBAAED,GAA2Br8B,EACnH,OACI8C,EAAAA,cAACwF,EAAAA,OAAM,iBAAK6yB,GACPe,EACDp5B,EAAAA,cAACyF,EAAAA,KAAI,iBAAK4zB,GACLG,MAAAA,OAAc,EAAdA,EAAgB93B,KAAI6D,IACjB,IAAIm0B,EAEJ,GAAIn0B,EAAKszB,MAAO,CAEZa,EADen0B,EAAKszB,MACH37B,MAAMyD,QACpB,CAEH+4B,EADcn0B,EAAKQ,KACH7I,MAAM6I,KAE1B,OACI/F,EAAAA,cAACyF,EAAAA,KAAI,iBAAK6zB,EAAa,CAAEz3B,IAAK63B,IACzBn0B,EAAKszB,OACF74B,EAAAA,cAACyF,EAAAA,KAAI,iBACG8zB,EAAsB,CAC1Bj7B,KAAMiH,EAAK2D,KACXzI,QAAS8E,EAAK0zB,YAAW,aACb1zB,EAAK2zB,cACjB54B,UAAWi5B,EAAuBj5B,YAEjCiF,EAAKszB,OAGbtzB,EAAKQ,YASlC,+tBCZO,MAAM4zB,UAAqC35B,EAAAA,cAuB9CsC,YAAmBpF,GACfqF,MAAMrF,GAvBO,KAAA08B,mBAAuC32B,EAAAA,EAAAA,oBACpDN,KAAKzF,MAAME,QAAQa,QAAQiF,kBAC3BP,KAAKzF,MAAMiG,aACXR,KAAKzF,MAAMkG,WAGP,sBAAsB0C,GAC1B,OAAKA,GAAYA,EAAQC,OAAQyT,EAAAA,iBAAAA,mBAAoC1T,EAAQC,MAGtE/F,EAAAA,cAAC0O,EAAAA,QAAO,CAAC+gB,WAAY3pB,EAAQzB,IAAK0B,KAAMD,EAAQC,KAAMzF,UAAU,kCAF5D,KAKP,uBAAuBiF,EAAuB3D,EAAei4B,GACjE,MAAMjU,EAAW,oCAAoChkB,IACrD,OACI5B,EAAAA,cAACA,EAAAA,SAAc,CAAC6B,IAAK+jB,GAChB5lB,EAAAA,aAAmBuF,EAA4B,CAAEu0B,UAAWl4B,EAAOm4B,YAAaF,EAAcG,UAAU,KAS9Gz2B,SAAM,MACT,MAAM,UAAE0D,GAActE,KAAKzF,OACrB,MAAEi6B,EAAK,UAAE72B,GAAcqC,KAAKzF,MAAM8E,OAClCi4B,EAAmBt3B,KAAKzF,MAAMsG,MAAM02B,wBACpCC,EAAsBF,EAAiB30B,OACvC80B,EAAoF,CACtF/1B,IAAKg2B,EAAAA,oBACL/5B,UAAsC,QAA7B,EAAEqC,KAAKzF,MAAM8E,OAAO1B,iBAAS,QAAI,GAC1Cg6B,iBAAkBrzB,EAAUszB,gBAC5BC,iBAAkBvzB,EAAUwzB,YAC5BC,SAAU/3B,KAAKzF,MAAMuU,GACrBlU,iBAAkBoF,KAAKi3B,kBACvBe,UAAU,GAGR/xB,EAAS,OACRjG,KAAKzF,OAAK,IACbi6B,MAAOwC,EAA6BiB,eAAezD,GACnD0D,oCAAqC,CACjCv6B,UAAW,8CAEfw6B,sCAAuC,CACnC72B,YAAatB,KAAKzF,MAClBoD,UAAW4D,GAAAA,CAAW,oCAAqC5D,IAE/Dy6B,6CAA8C,CAC1C12B,IAAK,MACL/D,UAAW,6CAEf06B,4CAA6C,CACzC32B,IAAK,MACL/D,UAAW,4CAEf85B,kCAAAA,EACAa,iCAAkC,CAC9B52B,IAAK,KACL/D,UAAW,6CACXkJ,KAAM,YAEV0xB,wCAAyCv4B,KAAKzF,MAAMsG,MAAM02B,wBAC1DiB,yCACIhB,EA3BwB,GA4BxBF,EAAiBv4B,KAAI,CAAC6D,EAAuB3D,IACzC+3B,EAA6ByB,gBAAgB71B,EAAM3D,EAAOu4B,OAGtE,OAAOx3B,KAAKzF,MAAMuG,WAAWmF,IAIrC,4ICxGO,MAAMyyB,EAAqFn+B,IAC9F,MAAM,MACFi6B,EAAK,oCACL0D,EAAmC,sCACnCC,EAAqC,6CACrCC,EAA4C,yCAC5CI,EAAwC,wCACxCD,EAAuC,4CACvCF,EAA2C,kCAC3CZ,EAAiC,iCACjCa,GACA/9B,EACJ,OACI8C,IAAAA,cAACwF,EAAAA,OAAM,iBAAKs1B,GACR96B,IAAAA,cAACyF,EAAAA,KAAI,iBAAKo1B,GAAsC1D,GAChDn3B,IAAAA,cAACyF,EAAAA,KAAI,iBAAKs1B,GAA+CI,GACzDn7B,IAAAA,cAACyF,EAAAA,KAAI,iBAAKu1B,GACNh7B,IAAAA,cAACyF,EAAAA,KAAI,iBAAK20B,GACLc,EAAwCx5B,KAAI,CAAC45B,EAAqB15B,KAC/D,MAAMgkB,EAAW,sCAAsChkB,IACvD,OACI5B,IAAAA,cAACyF,EAAAA,KAAI,iBAAKw1B,EAAgC,CAAEp5B,IAAK+jB,IAC5C0V,UAUjC,uJCpBO,MAAMC,UAA0Cv7B,EAAAA,cAAvDsC,cAAAA,SAAAA,WAoBqB,KAAAyG,kBAAqBC,IAClC,IAAKA,IAAa4S,EAAAA,gBAAAA,YAA4B5S,GAC1C,OAAO,KAEX,MAAMC,EAAuC,GAC7C,IAAK,MAAMC,KAAQF,EAAU,CAEzB,MAAMvK,GAAUC,EAAAA,EAAAA,kBAAiB,QAASiE,KAAKzF,MAAMK,iBAAkB,GAAI,IACrE+K,EAAWY,EAAKZ,SAAWY,EAAKZ,SAAW,GACjD7J,EAAQyI,cAAcC,MAAQmB,EAC9B,MAAMpH,GAAarC,EAAAA,EAAAA,wBAAuB8D,KAAKzF,MAAMK,iBAAkBkB,GACjE0K,EAAoC,CACtCC,UAAWF,EAAKE,UAChB9I,UAAW,0CACXgI,SAAUY,EAAKZ,SACfe,QAASH,EAAKG,QAAQC,eACtBC,aAAcL,EAAKK,aACnBC,KAAM,SACNC,qBAAsBvI,EACtBjB,SAASC,EAAAA,EAAAA,kBAAiByC,KAAKzF,MAAMK,iBAAkBkB,EAAS6J,IAEpEW,EAAczH,KAAK2H,GAGvB,OAAOF,GA3CJ1F,SACH,MAAM0F,EAAgBtG,KAAKoG,kBAAkBpG,KAAKzF,MAAMmL,OACxD,OACIrI,EAAAA,cAAAA,MAAAA,CAAKM,UAAU,4CACV2I,GAAiB2S,EAAAA,gBAAAA,YAA4B3S,GAC1CjJ,EAAAA,cAACoG,EAAAA,GAAc,CACXiC,MAAOY,EACP5C,UAAW,CAAE1B,aAAchC,KAAKzF,MAAMyH,aAAcC,eAAgBjC,KAAKzF,MAAM0H,kBAEnF,OAqCpB,+kBCzBO,MAAM42B,UAA+Bx7B,EAAAA,cAOxCsC,YAAmBpF,GACfqF,MAAMrF,GAPO,KAAA08B,mBAAuC32B,EAAAA,EAAAA,oBACpDN,KAAKzF,MAAME,QAAQa,QAAQiF,kBAC3BP,KAAKzF,MAAMiG,aACXR,KAAKzF,MAAMkG,WAkER,KAAAX,oBAAuBC,IAC1BC,KAAKzF,MAAM8E,OAAO8D,QAASC,KAAOrD,EAAMG,OAAOC,OAO5C,KAAA2f,sBAAyB/f,IAC5BC,KAAKzF,MAAM8E,OAAOm2B,UAAYz1B,EAAMG,OAAOC,OAQxC,KAAAqF,qBAAwBC,GAAuB1F,IAA8C,MACrE,QAA3B,EAAIC,KAAKzF,MAAM8E,OAAOqG,aAAK,OAAvB,EAA0BsQ,OAAOvQ,MACjCzF,KAAKzF,MAAM8E,OAAOqG,MAAMsQ,OAAOvQ,IAAYE,SAAW5F,EAAMG,OAAOC,QA9EpES,SACH,MAAM,UAAEu2B,EAAS,YAAEC,EAAW,SAAEC,GAAar3B,KAAKzF,OAC5C,QAAE4I,EAAO,UAAEqyB,EAAS,MAAEU,EAAK,MAAExwB,GAAU1F,KAAKzF,MAAM8E,OAClDy5B,EAAmBpzB,GAASuT,EAAAA,gBAAAA,YAA4BvT,IAC1DrI,EAAAA,cAACu7B,EAAiC,CAC9BlzB,MAAOA,EACP1D,aAAchC,KAAKwF,qBACnBvD,eAAgBjC,KAAKzF,MAAME,QAAQa,QACnCV,iBAAkBoF,KAAKi3B,oBAIzBhxB,EAAS,OACRjG,KAAKzF,OAAK,IACb48B,UAAAA,EACAC,YAAAA,EACAC,SAAUA,IAAsB,EAChC7C,MAAOx0B,KAAKi4B,eAAe90B,GAC3BqyB,UAAWx1B,KAAK+4B,iBAAiBvD,GACjCU,MAAOl2B,KAAKg5B,aAAa9C,GACzBxwB,MAAOozB,EACPG,YAAa,CACT33B,YAAatB,KAAKzF,MAClBoD,UAAW,IAEfu7B,8CAA+C,CAC3Cx3B,IAAK,MACL/D,UAAW,yDAEfw7B,0CAA2C,CACvCz3B,IAAK,MACL/D,UAAW,qDAEfy7B,4CAA6C,CACzC13B,IAAK,MACL/D,UAAW,uDAEf07B,4CAA6C,CACzC33B,IAAK,MACL/D,UAAW,2CACX,aAAcwF,MAAAA,OAAO,EAAPA,EAASC,KACvBk2B,SAAU,IACVzyB,KAAM,SAEV0yB,wCAAyC,CACrC57B,UAAW,mDAEf67B,0CAA2C,CACvC77B,UAAW,uDAInB,OAAOqC,KAAKzF,MAAMuG,WAAWmF,GA8BzB8yB,iBAAiB31B,GACrB,OAAKA,EAID/F,EAAAA,cAACoG,EAAAA,GAA0B,CACvBL,KAAMA,EACNzF,UAAU,0CACV+F,UAAW,CAAEC,OAAQ3D,KAAK8f,sBAAuB7d,eAAgBjC,KAAKzF,MAAME,QAAQa,WANjF,KAWP28B,eAAe90B,GAAsB,MACzC,OAAKA,EAGD0T,EAAAA,iBAAAA,mBAAoC1T,EAAQC,MACrC,KAIP/F,EAAAA,cAACoG,EAAAA,GAAa,CACV/B,IAAgB,QAAb,EAAEyB,EAAQzB,WAAG,QAAI,KACpB0B,KAAMD,EAAQC,KACdzF,UAAU,2CACV+F,UAAW,CAAEC,OAAQ3D,KAAKF,oBAAqBmC,eAAgBjC,KAAKzF,MAAME,QAAQa,WAX/E,KAgBP09B,aAAap2B,EAA4B62B,GAA+B,QAE5E,MAUMC,EAAwB92B,MAAAA,GAAmB,QAAf,EAAJA,EAAMjI,qBAAa,OAAnB,EAAqBi7B,UAAYhzB,EAAKjI,cAVd,CAClDi7B,UAAW,CACPlL,GAAI,CAAEmL,EAAG,kBAAmBlL,EAAG,IAAKmL,EAAG,KACvClL,GAAI,CAAEiL,EAAG,kBAAmBlL,EAAG,IAAKmL,EAAG,KACvCjL,GAAI,CAAEgL,EAAG,kBAAmBlL,EAAG,IAAKmL,EAAG,KACvChL,GAAI,CAAE+K,EAAG,kBAAmBlL,EAAG,IAAKmL,EAAG,KACvCC,GAAI,CAAEF,EAAG,kBAAmBlL,EAAG,IAAKmL,EAAG,MAE3CE,UAAU,GAGd,OACI34B,EAAAA,cAACoG,EAAAA,GAAc,iBACPb,EAAI,CACRX,eAAgBjC,KAAKzF,MAAME,QAAQa,QACnCsC,aAAcoC,KAAKzF,MAAME,QAAQa,QAAQsC,aACzCjD,cAAe++B,EACft7B,oBAAoB,UAAS,cAChBq7B,EACb/1B,UAAW,CACPxE,IAA4B,QAAzB,EAAEc,KAAKzF,MAAM8E,OAAO62B,aAAK,QAAI,GAChCj0B,eAAgBjC,KAAKzF,MAAME,QAAQa,QACnCq+B,WAAY35B,KAAKzF,MAAMq/B,SACvBC,kBAAmB,aAOvC,6GC9LKC,iCAAL,SAAKA,GACDA,EAAAA,EAAAA,eAAAA,GAAAA,iBACAA,EAAAA,EAAAA,eAAAA,GAAAA,iBACAA,EAAAA,EAAAA,cAAAA,GAAAA,gBACAA,EAAAA,EAAAA,cAAAA,GAAAA,gBAJJ,CAAKA,IAAAA,EAAW,KAehB,MAiEaC,EAAuEx/B,IAChF,MAAM,SAAE88B,EAAQ,YAAE4B,EAAW,UAAE9B,EAAS,YAAEC,GAAgB78B,EAC1D,OAAI88B,EACOh6B,EAAAA,cAAAA,EAAAA,SAAAA,KApEM,EAAC28B,EAA6C7C,EAAoBC,KACnF,MAAM,MACF5C,EAAK,UACLgB,EAAS,MACTU,EAAK,MACLxwB,EAAK,4CACL2zB,EAA2C,wCAC3CE,EAAuC,0CACvCC,GACAQ,EACEC,EAAW9C,EAAYA,EAAY2C,EAAYI,cAAgBJ,EAAYI,cAC3EC,EAAiB/C,GAA4B0C,EAAYM,eACzDC,EAAaJ,EAAWH,EAAYQ,eACpCC,EAAWN,GAAYH,EAAYU,cAAgB,WAAa,GAChEC,GACFN,GAAmBF,IAAaE,GAAkBF,IAAaE,EAAiBL,EAAYI,cAA6B,GAAZ,UAC3GQ,EAAgBL,IAAeP,EAAYM,eAAiB,oBAAsB,GAClFO,EAAeN,IAAeP,EAAYI,cAAgB,mBAAqB,GAC/EU,EAAmBr5B,GAAAA,CAAW,2CAA4Co5B,EAAcD,EAAeH,EAAUE,GAEvH,OACIp9B,EAAAA,cAACyF,EAAAA,KAAI,iBAAKu2B,EAA2C,CAAE17B,UAAWi9B,IAC9Dv9B,EAAAA,cAACyF,EAAAA,KAAI,iBAAKy2B,GAA0CrD,GACpD74B,EAAAA,cAACyF,EAAAA,KAAI,iBAAK02B,GACLhF,EACAgB,EACA9vB,KA0CCm1B,CAAatgC,EAAO48B,EAAWC,IAEtC/5B,EAAAA,cAACwF,EAAAA,OAAM,iBAAKo2B,GAjCKe,CAAAA,IACxB,MAAM,MACFxF,EAAK,UACLgB,EAAS,MACTU,EAAK,MACLxwB,EAAK,8CACLwzB,EAA6C,0CAC7CC,EAAyC,4CACzCC,GACAY,EACJ,OACI38B,EAAAA,cAACyF,EAAAA,KAAI,iBAAKo2B,GACN77B,EAAAA,cAACyF,EAAAA,KAAI,iBAAKq2B,GAA4CjD,GACtD74B,EAAAA,cAACyF,EAAAA,KAAI,iBAAKs2B,GACL5E,EACAgB,EACA9vB,KAiBoBo1B,CAAevgC,KAGpD,quBC7DA,IAAMwgC,EAAN,cAAkB19B,EAAAA,cAKdsC,YAAmBpF,GACfqF,MAAMrF,GAHO,KAAAygC,OAAuC39B,EAAAA,YAkHjD,KAAAyC,oBAAuBC,IAC1BC,KAAKzF,MAAM8E,OAAO8D,QAASC,KAAOrD,EAAMG,OAAOC,OAMlC,KAAA86B,SAAW,KACxB,MACIxgC,SACIS,eACI+G,gBAAgB,QAAEi5B,KAG1BxgC,MACIygC,2BAA6Bl6B,OAAQk6B,KAEzCn7B,KAAKzF,MACL4gC,MAAAA,GAAAA,EAA2BC,iBAC3Bp7B,KAAKjB,IAAM,IAAIs8B,UAAUC,KAAKP,IAAI/6B,KAAKg7B,OAAO31B,QAAwB,CAClEk2B,YAAaL,MAAAA,OAAO,EAAPA,EAASM,eACtBC,mBAAmB,IAEvBJ,UAAUC,KAAKI,OAAOC,WAAW37B,KAAKjB,IAAK,SAASyoB,gBAC1C2T,EAA0BS,gCAA2BzgC,QAQtD,KAAA0gC,WAAa,KAAK,QAC/B,MAAMC,EAAiB97B,KAAKzF,MAAM8E,OAAOy8B,eACnCX,EAAqE,QAA5C,EAAGn7B,KAAKzF,MAAMG,KAAKygC,iCAAyB,aAAzC,EAA2Cl6B,OACvE86B,EAA0BZ,MAAAA,GAAkC,QAAT,EAAzBA,EAA2B1gC,eAAO,WAAT,EAAzB,EAAoCshC,wBAC9DC,EAA0Bb,MAAAA,OAAyB,EAAzBA,EAA2Ba,wBAE3D,GAAIh8B,KAAKjB,KAAOg9B,EAAyB,CACrC,IAAIE,EACJj8B,KAAKjB,IAAIm9B,SAASC,QAClB,MAAMC,EAAwC,GAExCC,EAAoBN,EAAwBr/B,QAAO4/B,QAAuCnhC,IAA9BmhC,EAAMC,sBAExE,IAAK,MAAOt9B,EAAOu9B,KAAkBH,EAAkBI,UAAW,CAAC,IAAD,EAC9D,MAAMC,EAAiD,QAApC,EAAGF,EAAcD,2BAAmB,aAAjC,EAAmCI,gBAEzD,GAAID,MAAAA,GAAAA,EAAeE,UAAYF,EAAcG,UAAW,CACpD,MAAMC,EAAqBd,IAA4BU,EAAcK,cAC/DC,EAAUh9B,KAAKi9B,mBAAmBH,EAAoB79B,EAAO68B,GAC7DoB,EAAU,IAAI7B,UAAUC,KAAK6B,QAC/B,IAAI9B,UAAUC,KAAK8B,SAASV,EAAcE,SAAUF,EAAcG,WAClEG,GAGJ3B,UAAUC,KAAKI,OAAOC,WAAWuB,EAAS,SAAS,KAC/Cl9B,KAAKq9B,iBAAiBX,EAAcK,kBAExCD,EAAqBV,EAASkB,QAAQJ,GAAWd,EAASv9B,KAAKq+B,GAE3DJ,IACAb,EAAcS,IAK1B,GAAIT,EAAa,CACb,MAAMsB,EAAkB,IAAIlC,UAAUC,KAAK8B,SAASnB,EAAYW,SAAUX,EAAYY,WACtF78B,KAAKjB,IAAIy+B,QAAQ,CAAEC,OAAQF,SAG3Bv9B,KAAKjB,IAAIy+B,QAAQ,CACbE,OAAQrC,UAAUC,KAAKqC,aAAaC,WAAWxB,KAIvDp8B,KAAKjB,IAAI8+B,WAAW,CAAEpC,mBAAmB,IACzCz7B,KAAKjB,IAAIm9B,SAASr9B,KAAKu9B,KAQd,KAAAiB,iBAAoBS,IACjC,MAAM3C,EAA4Bn7B,KAAKzF,MAAMG,KAAKygC,0BAA0Bl6B,OAC5Ek6B,MAAAA,GAAAA,EAA2BS,gCAA2BzgC,GAClD2iC,GACA14B,YAAW,KACP+1B,MAAAA,GAAAA,EAA2BS,2BAA2BkC,KAEvD,MAWM,KAAAb,mBAAqB,CAACH,EAA6B79B,EAAe68B,KAC/E,MAAM14B,EAAO04B,MAAAA,GAAAA,EAAgBiC,WAAa9+B,EAAQ,GAAGjD,gBAAab,EAE5D6iC,GAAOlC,MAAAA,OAAc,EAAdA,EAAgBkC,OAAQ,EAC/BC,EAAQnB,IAAqBhB,MAAAA,OAAc,EAAdA,EAAgBoC,kBAA0CpC,MAAAA,OAAc,EAAdA,EAAgBmC,OACvGrrB,EAAO5S,KAAKm+B,YAAYH,EAAMC,EAAO76B,GAE3C,MAAO,CAEH66B,MAAOnB,EAAqBhB,MAAAA,OAAc,EAAdA,EAAgBoC,eAAiBpC,MAAAA,OAAc,EAAdA,EAAgBmC,MAC7ErrB,KAAAA,IAIS,KAAAurB,YAAc,CAACH,EAAcC,EAAgB76B,IAEnD,kDADmB,GAC2C46B,cAD3C,GACwEA,8DACxEC,+MACZ76B,EAAO,oFAAoFA,WAAgB,6BAtOtH+O,oBAAiB,MACpB,MACI1X,SAAS,UACLgG,EACAvF,eACI+G,gBAAgB,QAAEi5B,MAG1Bl7B,KAAKzF,OAEL2gC,GAAYA,EAAQM,gBAKpBN,GAAYA,EAAQkD,iBAK4B,QAApD,EAAIp+B,KAAKzF,MAAMG,KAAKygC,0BAA0Bl6B,cAAM,OAAhD,EAAkDm6B,iBAClDp7B,KAAKi7B,WACLj7B,KAAK67B,eAGTwC,EAAAA,EAAAA,KACI,mBAAwD,QAAjD,EAACr+B,KAAKzF,MAAMG,KAAKygC,0BAA0Bl6B,cAAM,QAAhD,EAAkDq9B,uBAC1D,KAAK,MAC+C,QAAhD,EAAAt+B,KAAKzF,MAAMG,KAAKygC,0BAA0Bl6B,cAAM,OAAhD,EAAkDq9B,oBAAmB,OAI7EC,EAAAA,EAAAA,KACI,kBAAsD,QAAtD,EAAMv+B,KAAKzF,MAAMG,KAAKygC,0BAA0Bl6B,cAAM,aAAhD,EAAkDu9B,cACxD,KAAK,cAC+C,QAAhD,EAAAx+B,KAAKzF,MAAMG,KAAKygC,0BAA0Bl6B,cAAM,OAAhD,EAAkDu9B,WAAW,CACzDt/B,IAAKg8B,MAAAA,OAAO,EAAPA,EAASM,eACdiD,KAAMz+B,KAAKzF,MAAME,QAAQS,cAAc+G,eAAe6L,OACtD4wB,OAA0B,QAApB,EAAE1+B,KAAKzF,MAAME,eAAO,OAAe,QAAf,EAAlB,EAAoBS,qBAAa,OAAgB,QAAhB,EAAjC,EAAmC+G,sBAAc,OAAS,QAAT,EAAjD,EAAmDi5B,eAAO,WAAxC,EAAlB,EAA4DyD,kCAKhFJ,EAAAA,EAAAA,KACI,kBAAsD,QAAtD,EAAMv+B,KAAKzF,MAAMG,KAAKygC,0BAA0Bl6B,cAAM,aAAhD,EAAkDm6B,kBACxD,KACIp7B,KAAKi7B,eAIbsD,EAAAA,EAAAA,KACI,KAAK,UACD,MAAO,CAC6C,QAD7C,EACHv+B,KAAKzF,MAAMG,KAAKygC,0BAA0Bl6B,cAAM,OAAS,QAAT,EAAhD,EAAkDxG,eAAO,WAAT,EAAhD,EAA2DshC,wBACX,QADkC,EAClF/7B,KAAKzF,MAAMG,KAAKygC,0BAA0Bl6B,cAAM,aAAhD,EAAkD+6B,wBAClDh8B,KAAKjB,QAGb,KACIiB,KAAK67B,iBA3CTp7B,EAAUyE,MAAM,4BALhBzE,EAAUyE,MAAM,8BAqDjBtE,SACH,MACIvB,QAAQ,QAAE8D,EAAO,UAAExF,GACnBjD,MACIygC,2BAA6Bl6B,OAAQk6B,KAEzCn7B,KAAKzF,MAEHqkC,EAAmBzD,MAAAA,OAAyB,EAAzBA,EAA2B0D,iBAAiBC,WAE/D74B,EAAS,OACRjG,KAAKzF,OAAK,IACb85B,YAAa,CACT3yB,IAAK,MACLJ,YAAatB,KAAKzF,MAClBoD,UAAWohC,GAAAA,CAAU,SAAU,CAAEC,KAAMJ,GAAoBjhC,IAE/DshC,OAAQ,CACJC,YAAa,CAAEvhC,UAAW,kBAC1BwF,SAASA,MAAAA,OAAO,EAAPA,EAASC,OACd/F,EAAAA,cAACoG,EAAAA,GAAa,eACV9F,UAAU,mBACNwF,EAAO,CACXzB,IAAKyB,EAAQzB,KAAO,KACpB0B,KAAMD,EAAQC,KACdM,UAAW,CAAEC,OAAQ3D,KAAKF,oBAAqBmC,eAAgBjC,KAAKzF,MAAME,QAAQa,aAI9F6jC,SAAU,CACNz9B,IAAK,MACL/D,UAAW,eACXoH,IAAK/E,KAAKg7B,QAEdD,IAAK/6B,KAAKjB,MAGd,OAAOiB,KAAKzF,MAAMuG,WAAWmF,MA7GrBiI,EAAAA,EAAAA,IAAAA,CAAXsH,EAAAA,IAAU,0BADTulB,GAAG,SADRv4B,EAAAA,IACKu4B,GAoPN,4FC7QA,MAAMqE,EAA+B,QAAC,YAAEF,EAAW,QAAE/7B,GAAS,SAAK9F,EAAAA,cAACyF,EAAAA,KAAI,iBAAKo8B,GAAc/7B,IAiB3F,EAPyC,QAAC,YAAEkxB,EAAW,OAAE4K,EAAM,SAAEE,GAAU,SACvE9hC,EAAAA,cAACwF,EAAAA,OAAM,iBAAKwxB,GACP4K,GAAU5hC,EAAAA,cAAC+hC,EAAS,iBAAKH,IAC1B5hC,EAAAA,cAACyF,EAAAA,KAAI,iBAAKq8B,+KCLX,MAAME,EAAwE,QAAC,YAAEC,EAAW,SAAEC,EAAQ,UAAE5hC,GAAW,SACtHN,EAAAA,cAAAA,KAAAA,CAAIM,UAAWA,GACXN,EAAAA,cAAAA,KAAAA,CAAImiC,MAAM,OAENniC,EAAAA,cAAAA,OAAAA,CAAMoiC,yBAAyBC,EAAAA,EAAAA,IAAgBJ,MAEnDjiC,EAAAA,cAAAA,KAAAA,KAAKkiC,0kBCqBb,IAAMI,EAAN,cAAmCtiC,EAAAA,UAC/BsC,YAAmBpF,GACfqF,MAAMrF,GAoGH,KAAAuF,oBAAuBC,IAC1BC,KAAKzF,MAAM8E,OAAO8D,QAASC,KAAOrD,EAAMG,OAAOC,OAsDlC,KAAAy/B,QAAWC,GAAqC,KACzD7/B,KAAKmC,MAAM09B,eAAiBA,EAC5B7/B,KAAKmF,SAAS,CAAE06B,aAAAA,EAAcC,cAAc,IAE5C9/B,KAAKmF,SAAS,CAAE06B,kBAAc1kC,EAAW2kC,cAAc,KA9J3D9/B,KAAKmC,MAAQ,CACT29B,cAAc,EACdD,kBAAc1kC,GAIf,0BACH,MAAM,QAAEV,EAAO,KAAEC,EAAI,UAAE+F,GAAcT,KAAKzF,MACpCwlC,EAAYt8B,EAAAA,GAAsBzD,KAAKzF,MAAME,QAAQa,UAC3DijC,EAAAA,EAAAA,KACI,IAAO7jC,EAAKG,QAAQoG,OAASvG,EAAKG,QAAQoG,OAAOhG,SAAW,OAC5D,KACI,GAAIR,GAAWC,EAAKG,QAAQoG,OAAQ,CAChC,MAAM++B,EAAc,IAAIC,EAAAA,kCACpBvlC,EAAKG,QAAQoG,OAAOhG,UAEnBR,EAAQS,cAAc+G,eAAe1G,YAAY2kC,UAClDxlC,EAAKG,QAAQoG,OACb8+B,IAGJI,EAAAA,EAAAA,SAAgCH,EAAahgC,KAAKzF,MAAME,QAAQS,eAAe8sB,OAAO9iB,IAClFzE,EAAUyE,MAAMA,EAAMyM,SACtBlR,EAAU2/B,MAAM,2CAChB3/B,EAAUyE,MAAMA,EAAMyM,gBAOnCjR,sBAAsBC,EAA+C0R,GACxE,OAAIrS,KAAKmC,QAAUkQ,GAAarS,KAAKzF,MAAMG,OAASiG,EAAUjG,KAM3DkG,SAAM,MACT,IAAIlG,EACJ,IACIA,EAAOsF,KAAKzF,MAAMG,KACpB,MAAOwK,GAEL,OADAlF,KAAKzF,MAAMkG,UAAUyE,MAAM,8BAA8BA,KAClD7H,EAAAA,cAAAA,MAAAA,KAAM6H,GAGjB,IAAKxK,EAAK2lC,yBAAyBp/B,QAAUvG,EAAK2lC,yBAAyBp/B,OAAO0B,QAAU,EAExF,OADA3C,KAAKzF,MAAMkG,UAAUyE,MAAM,+DACpB,KAGX,MAAM,QAAE/B,EAAO,UAAExF,GAAcqC,KAAKzF,MAAM8E,QACpC,yBAAEghC,GAA6BrgC,KAAKzF,MAAMG,KAC1C4lC,EAA4C,cAA9BtgC,KAAKzF,MAAM8E,OAAOkhC,aAChCt6B,EAAS,OACRjG,KAAKzF,OAAK,IACbimC,WAAYxgC,KAAKF,oBACjB6/B,qBAAsB,CAClBr+B,YAAatB,KAAKzF,MAClBoD,UAAW4D,GAAAA,CAAW,2BAA4B5D,IAEtD8iC,+BAAgCH,EAC1B,CACIh/B,YAAatB,KAAKzF,MAClBoD,UAAW4D,GAAAA,CAAW,sCAAuC5D,IAEjE,CACIA,UAAW4D,GAAAA,CAAW,gEACtBG,IAAK,SAEf4+B,YAAAA,EACAI,mCAAoCJ,EAC9B,GACA,CACI3iC,UAAW,GACX+D,IAAK,SAEf8yB,OAAOrxB,MAAAA,OAAO,EAAPA,EAASC,OACZ/F,EAAAA,cAACoG,EAAAA,GAAa,CACV9F,UAAU,oCACV+D,IAAgB,QAAb,EAAEyB,EAAQzB,WAAG,QAAI,KACpB0B,KAAMD,EAAQC,KACdM,UAAW,CAAEC,OAAQ3D,KAAKF,oBAAqBmC,eAAgBjC,KAAKzF,MAAME,QAAQa,WAI1FqlC,2BAA4BL,EACtBD,GAA4BrgC,KAAK4gC,kBAAkBlmC,GACnD2lC,GAA4BrgC,KAAK6gC,iBAAiBnmC,KAG5D,OAAOsF,KAAKzF,MAAMuG,WAAWmF,GAWzB46B,iBAAiBve,GACrB,OAAOA,EAAQ+d,yBAAyBp/B,OAAQlC,KAAI,CAAClE,EAASoE,KAC1D,MAAMsgC,EAA+Bv/B,KAAK8gC,mBAAmBjmC,GAE7D,OAAK0kC,EAKDliC,EAAAA,cAACgiC,EAA4B,CACzB1hC,UAAU,sCACVuB,IAAKD,EACLqgC,YAAazkC,EAAQG,KACrBukC,SAAUA,IARP,QAcXqB,kBAAkBte,GACtB,MAAMne,EAAuC,CACzC7C,YAAatB,KAAKzF,MAClBoD,UAAW,kCAEf,OAAO2kB,EAAQ+d,yBAAyBp/B,OAAQlC,KAAIlE,IAAU,MAC1D,MAAM0kC,EAA+Bv/B,KAAK8gC,mBAAmBjmC,GAC7D,OAAK0kC,EAIDliC,EAAAA,cAACwF,EAAAA,OAAM,iBAAKsB,EAAsB,CAAEjF,IAAKrE,EAAQI,WAC7CoC,EAAAA,cAAC0jC,EAAAA,OAAM,CACH7hC,IAAKrE,EAAQI,SACb4G,cAAe,CACXm/B,QAAS,EACTl/B,OAAQ9B,KAAKmC,MAAM29B,cAAgB9/B,KAAKmC,MAAM09B,eAAiBhlC,EAAQI,UAE3E0C,UAAU,mCACVsjC,UAAU,wCACVC,WAAW,yCACXC,eAAe,MACfv/B,iBAA8B,QAAd,EAAE/G,EAAQG,YAAI,QAAI,GAClC+G,SAAU/B,KAAK4/B,QAAQ/kC,EAAQI,WAE/BoC,EAAAA,cAAAA,MAAAA,CAAKM,UAAU,sBAAsB4hC,KAjBtC,QAgCXuB,mBAAmBjmC,GACvB,OAAQA,EAAQumC,eACZ,KAAK,EAED,OAAO/jC,EAAAA,cAAAA,OAAAA,MACX,KAAK,EACD,OAAO2C,KAAKqhC,oBAAoBxmC,GACpC,KAAK,EACD,OAAOmF,KAAKshC,oBAAoBzmC,GACpC,KAAK,EACD,OAAOmF,KAAKuhC,mBAAmB1mC,GACnC,KAAK,EACD,OAAOmF,KAAKwhC,mBAAmB3mC,GACnC,KAAK,EACD,OAAOmF,KAAKyhC,gBAAgB5mC,GAChC,KAAK,EACD,OAAOmF,KAAK0hC,qBAAqB7mC,GACrC,KAAK,GAED,OADAmF,KAAKzF,MAAMkG,UAAUkhC,QAAQ,oEACtB,KACX,KAAK,GAED,OADA3hC,KAAKzF,MAAMkG,UAAUkhC,QAAQ,oEACtB,KACX,QAEI,OADA3hC,KAAKzF,MAAMkG,UAAUkhC,QAAQ,kCAAkC9mC,EAAQumC,kCAChE,MAIXC,oBAAoBxmC,GACxB,OAA8B,OAA1BA,EAAQ+mC,oBAAoDzmC,IAA1BN,EAAQ+mC,cAEtCvkC,EAAAA,cAAAA,OAAAA,KACKxC,EAAQgnC,aACRhnC,EAAQ+mC,eAKd,KAGHN,oBAAoBzmC,GAAuB,MAC/C,OAA+B,QAA/B,EAAIA,EAAQinC,2BAAmB,OAA3B,EAA6BC,YACtB1kC,EAAAA,cAAAA,OAAAA,KAAOxC,EAAQinC,oBAAoBC,eAGvC,KAGHP,mBAAmB3mC,GACvB,OAA6B,OAAzBA,EAAQiC,mBAAkD3B,IAAzBN,EAAQiC,aAClCO,EAAAA,cAAAA,OAAAA,KAAOxC,EAAQiC,cAGnB,KAGHykC,mBAAmB1mC,GACvB,OAA2B,OAAvBA,EAAQmnC,iBAA8C7mC,IAAvBN,EAAQmnC,WAChC3kC,EAAAA,cAAAA,OAAAA,KAAOxC,EAAQmnC,YAGnB,KAGHP,gBAAgB5mC,GACpB,OAA0B,OAAtBA,EAAQiE,gBAA4C3D,IAAtBN,EAAQiE,UAE/BzB,EAAAA,cAAAA,OAAAA,CAAMoiC,wBAAyBh8B,EAAAA,GAAyB5I,EAAQiE,aAGpE,KAGH4iC,qBAAqB7mC,GAGzB,OAAIA,EAAQonC,aACD5kC,EAAAA,cAAAA,OAAAA,KAAO2C,KAAKzF,MAAM+J,UAAU49B,cAAgBliC,KAAKzF,MAAM+J,UAAU49B,cAAgB,OAErF7kC,EAAAA,cAAAA,OAAAA,KAAO2C,KAAKzF,MAAM+J,UAAU69B,eAAiBniC,KAAKzF,MAAM+J,UAAU69B,eAAiB,QAtP5FxC,GAAoB,SADzBn9B,EAAAA,IACKm9B,GA0PN,kGCnSA,MAiBA,EAjB2EplC,IACvE,MAAM,qBAAEolC,EAAoB,+BAAEc,EAA8B,mCAAEC,EAAkC,2BAAEC,GAA+BpmC,EAC3H6nC,EACFzB,GACA1nB,EAAAA,gBAAAA,YAA4B0nB,IAC5BA,EAA2BjkC,QAAOwc,IAAQ9J,EAAAA,iBAAAA,kBAAmC8J,KAEjF,OAAOkpB,GAAWnpB,EAAAA,gBAAAA,YAA4BmpB,GAC1C/kC,EAAAA,cAACwF,EAAAA,OAAM,iBAAK88B,GACPplC,EAAMi6B,MACPn3B,EAAAA,cAACyF,EAAAA,KAAI,iBAAK29B,GACNpjC,EAAAA,cAACyF,EAAAA,KAAI,iBAAK49B,GAAqC0B,KAGvD","sources":["webpack://Msdyn365.Commerce.Online/./src/themes/koelliker/views/components/product.component.tsx?7c68","webpack://Msdyn365.Commerce.Online/./src/modules/accordion-item/accordion-item.tsx?36f7","webpack://Msdyn365.Commerce.Online/./src/modules/accordion-item/accordion-item.view.tsx?a302","webpack://Msdyn365.Commerce.Online/./src/modules/accordion/accordion.tsx?78b1","webpack://Msdyn365.Commerce.Online/./src/modules/accordion/accordion.view.tsx?8c7b","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/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-generic-tile/account-generic-tile.tsx?4353","webpack://Msdyn365.Commerce.Online/./src/modules/account-generic-tile/account-generic-tile.view.tsx?4b58","webpack://Msdyn365.Commerce.Online/./src/modules/account-generic-tile/components/account-generic-tile-links.tsx?2bc7","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/account-profile-edit.tsx?a0b5","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/account-profile-edit.view.tsx?530d","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-button.tsx?e669","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-error.tsx?eadf","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-input.tsx?5c72","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-label.tsx?4793","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-loading-icon.tsx?fba0","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-loading-message.tsx?7cf0","webpack://Msdyn365.Commerce.Online/./src/modules/account-welcome-tile/account-welcome-tile.tsx?2115","webpack://Msdyn365.Commerce.Online/./src/modules/account-welcome-tile/account-welcome-tile.view.tsx?e5e3","webpack://Msdyn365.Commerce.Online/./src/modules/account-wishlist-tile/components/account-wishlist-tile-description.tsx?0588","webpack://Msdyn365.Commerce.Online/./src/modules/account-wishlist-tile/components/account-wishlist-tile-links.tsx?f114","webpack://Msdyn365.Commerce.Online/./src/modules/account-wishlist-tile/account-wishlist-tile.tsx?b721","webpack://Msdyn365.Commerce.Online/./src/modules/account-wishlist-tile/account-wishlist-tile.view.tsx?095e","webpack://Msdyn365.Commerce.Online/./src/modules/b2b-requests-status/components/b2b-requests-table.tsx?06fc","webpack://Msdyn365.Commerce.Online/./src/modules/b2b-requests-status/b2b-requests-status.tsx?c1aa","webpack://Msdyn365.Commerce.Online/./src/modules/b2b-requests-status/b2b-requests-status.view.tsx?6b7c","webpack://Msdyn365.Commerce.Online/./src/modules/b2b-requests-tile/components/account-b2b-requests-tile-links.tsx?d6f5","webpack://Msdyn365.Commerce.Online/./src/modules/b2b-requests-tile/b2b-requests-tile.tsx?9498","webpack://Msdyn365.Commerce.Online/./src/modules/b2b-requests-tile/b2b-requests-tile.view.tsx?3f4e","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-button.tsx?c1c2","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-error.tsx?347f","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-input.tsx?fd25","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-label.tsx?aab5","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-loading-icon.tsx?d70e","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-loading-message.tsx?d239","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-success.tsx?3c81","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/password-reset-verification.tsx?691f","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/password-reset-verification.view.tsx?dffa","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-button.tsx?33d4","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-error.tsx?b9c0","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-input.tsx?27a8","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-label.tsx?3142","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-loading-icon.tsx?96eb","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-loading-message.tsx?9245","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-success.tsx?7f30","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/sign-up.tsx?5ad1","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/sign-up.view.tsx?08eb","webpack://Msdyn365.Commerce.Online/./src/modules/breadcrumb/components/link.tsx?d232","webpack://Msdyn365.Commerce.Online/./src/modules/breadcrumb/components/separator.tsx?92bb","webpack://Msdyn365.Commerce.Online/./src/modules/breadcrumb/breadcrumb.tsx?efcc","webpack://Msdyn365.Commerce.Online/./src/modules/breadcrumb/breadcrumb.view.tsx?4b3d","webpack://Msdyn365.Commerce.Online/./src/modules/business-organization-list/business-organization-list.tsx?0823","webpack://Msdyn365.Commerce.Online/./src/modules/business-organization-list/business-organization-list.view.tsx?c050","webpack://Msdyn365.Commerce.Online/./src/modules/business-organization-list/components/small-components.tsx?c4b5","webpack://Msdyn365.Commerce.Online/./src/modules/fabrikam/views/buybox.view.tsx?aec4","webpack://Msdyn365.Commerce.Online/./src/modules/footer-category/footer-category.tsx?e0bd","webpack://Msdyn365.Commerce.Online/./src/modules/footer-category/footer-category.view.tsx?fdce","webpack://Msdyn365.Commerce.Online/./src/modules/image-list/image-list.tsx?5602","webpack://Msdyn365.Commerce.Online/./src/modules/image-list/image-list.view.tsx?2bed","webpack://Msdyn365.Commerce.Online/./src/modules/interactive-feature-collection/interactive-feature-collection.tsx?96a6","webpack://Msdyn365.Commerce.Online/./src/modules/interactive-feature-collection/interactive-feature-collection.view.tsx?db52","webpack://Msdyn365.Commerce.Online/./src/modules/interactive-feature-item/components/links.tsx?7423","webpack://Msdyn365.Commerce.Online/./src/modules/interactive-feature-item/interactive-feature-item.tsx?792c","webpack://Msdyn365.Commerce.Online/./src/modules/interactive-feature-item/interactive-feature-item.view.tsx?bdcc","webpack://Msdyn365.Commerce.Online/./src/modules/map/map.tsx?6111","webpack://Msdyn365.Commerce.Online/./src/modules/map/map.view.tsx?5db9","webpack://Msdyn365.Commerce.Online/./src/modules/product-specification/components/product-specification-table-stucture.tsx?c1c4","webpack://Msdyn365.Commerce.Online/./src/modules/product-specification/product-specification.tsx?6583","webpack://Msdyn365.Commerce.Online/./src/modules/product-specification/product-specification.view.tsx?7490"],"sourcesContent":["\r\nimport { getProductPageUrlSync } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { format, getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\r\nimport { IComponentProps, ICoreContext, IGridSettings, IImageData, IImageSettings, Image } from '@msdyn365-commerce/core';\r\nimport { ProductSearchResult } from '@msdyn365-commerce/retail-proxy';\r\nimport React from 'react';\r\n\r\nexport interface IProductComponentProps {\r\n allowBack?: boolean;\r\n context: ICoreContext;\r\n imageSettings?: IImageSettings;\r\n ratingAriaLabel?: string;\r\n telemetryContent?: ITelemetryContent;\r\n}\r\n\r\nconst ProductCard: React.FC> = props => {\r\n // Props\r\n const {\r\n allowBack,\r\n context,\r\n data,\r\n imageSettings,\r\n ratingAriaLabel,\r\n telemetryContent,\r\n } = props;\r\n const product = props.data.product;\r\n if (!product) {\r\n return null;\r\n }\r\n let productUrl = getProductPageUrlSync(product.Name || '', product.RecordId, context && context.actionContext, undefined);\r\n if (allowBack) {\r\n productUrl = updateProductUrl(productUrl, context);\r\n }\r\n // Data\r\n const payLoad = getPayloadObject('click', telemetryContent!, '', product.RecordId.toString());\r\n const attribute = getTelemetryAttributes(telemetryContent!, payLoad);\r\n const basePrice = product.BasePrice?.toLocaleString('it-IT');\r\n const adjustedPrice = product.Price?.toLocaleString('it-IT');\r\n // const discountValue = discount !== undefined ? discount[0].OfferName : '';\r\n const duration = product.ExtensionProperties?.filter(i => i.Key === 'NumOfMonthSantander')[0]?.Value?.IntegerValue;\r\n const tan = product.ExtensionProperties?.filter(i => i.Key === 'TanSantander')[0]?.Value?.DecimalValue;\r\n const taeg = product.ExtensionProperties?.filter(i => i.Key === 'TaegSantander')[0]?.Value?.DecimalValue;\r\n const fromAmountSA = product.ExtensionProperties?.filter(i => i.Key === 'FromAmountSantander')[0].Value?.DecimalValue;\r\n const legalNotice = product.ExtensionProperties?.filter(i => i.Key === 'LegalNotice') ? product.ExtensionProperties?.filter(i => i.Key === 'LegalNotice')[0].Value?.StringValue : '';\r\n return (\r\n \r\n
\r\n {renderProductPlacementImage(imageSettings, context.request.gridSettings,product.PrimaryImageUrl, product.Name)}\r\n
\r\n
\r\n

{product.Name}

\r\n {renderAttributes(data)}\r\n
\r\n
\r\n A partire da\r\n {adjustedPrice}€*\r\n
\r\n
\r\n {adjustedPrice !== basePrice && (\r\n
\r\n Prezzo di listino {basePrice}€\r\n {/*discountValue*/}\r\n
\r\n )}\r\n {props?.context?.app?.config?.enableFinancing && (\r\n
\r\n oppure\r\n {fromAmountSA?.toLocaleString('it-IT')}€/MESE \r\n per\r\n {duration} MESI\r\n - TAN {tan?.toLocaleString('it-IT')}%\r\n - TAEG {taeg?.toLocaleString('it-IT')}%\r\n {legalNotice &&\r\n
\r\n )}\r\n
\r\n

{props?.context?.app?.config?.taxOutOfPriceText}

\r\n
\r\n {renderDescription(product.Description)}\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nfunction renderAttributes(data: {product?: ProductSearchResult | undefined}): JSX.Element | null {\r\n const attributes: string[] = [];\r\n data.product?.AttributeValues?.forEach((attribut) => {\r\n if (['Trazione', 'Alimentazione', 'Trasmissione'].includes(attribut.KeyName as string)) {\r\n attributes.push(attribut.TextValue as string);\r\n }\r\n });\r\n\r\n return (\r\n
\r\n {attributes.map((attr,index) => {attr}\r\n )}\r\n
\r\n );\r\n}\r\n\r\nfunction renderLabel(name?: string, price?: string, rating?: number, ratingAriaLabel?: string): string {\r\n name = name || '';\r\n price = price || '';\r\n return (`${name} ${price} ${getRatingAriaLabel(rating, ratingAriaLabel)}`);\r\n}\r\n\r\nfunction renderDescription(description?: string): JSX.Element | null {\r\n return

{description}

;\r\n}\r\n\r\nfunction getRatingAriaLabel(rating?: number, ratingAriaLabel?: string): string {\r\n if (rating && ratingAriaLabel) {\r\n const roundedRating = rating.toFixed(2);\r\n return format(ratingAriaLabel || '', roundedRating, '5');\r\n }\r\n return '';\r\n}\r\n\r\nfunction updateProductUrl(productUrl: string, context:ICoreContext): string {\r\n const srcUrl = new URL(productUrl, context.request.apiSettings.baseUrl);\r\n const queryString = `back=true` ;\r\n if (srcUrl.search) {\r\n srcUrl.search += `&${queryString}`;\r\n } else {\r\n srcUrl.search += queryString;\r\n }\r\n\r\n const updatedUrl = new URL(srcUrl.href);\r\n return updatedUrl.pathname + srcUrl.search;\r\n}\r\n\r\nfunction renderProductPlacementImage(imageSettings?: IImageSettings, gridSettings?: IGridSettings, imageUrl?: string, altText?: string): JSX.Element | null {\r\n if (!imageUrl || !gridSettings || !imageSettings) {\r\n return null;\r\n }\r\n const img: IImageData = {\r\n src: imageUrl,\r\n altText: altText ? altText : ''\r\n };\r\n const imageProps = {\r\n gridSettings: gridSettings,\r\n imageSettings: imageSettings\r\n };\r\n imageProps.imageSettings.cropFocalRegion = true;\r\n return (\r\n \r\n );\r\n}\r\n\r\n// @ts-ignore\r\nexport default ProductCard;","/*!\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 { ControlledDrawer, getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport { IDrawerState } from '@msdyn365-commerce-modules/utilities/dist/types/drawer/Drawer';\nimport classnames from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { createAccordionStateInput, interactionStyle } from '../..';\nimport { IAccordionItemData } from './accordion-item.data';\nimport { IAccordionItemProps } from './accordion-item.props.autogenerated';\n\nexport interface IAccordionItemViewProps {\n AccordionItemContainer: IModuleProps;\n drawer: INodeProps;\n accordionSlots: INodeProps;\n AccordionItemContent: INodeProps;\n className: string;\n}\n\nexport interface IAccordionItemExtentedProps extends IAccordionItemProps {\n interactionStyle?: interactionStyle;\n}\n\n/**\n *\n * AccordionItem component.\n * @extends {React.Component}\n */\n@observer\nclass AccordionItem extends React.Component {\n private readonly moduleClassName: string = 'ms-accordion-item';\n\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IAccordionItemProps) {\n super(props);\n this._onToggle = this._onToggle.bind(this);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public shouldComponentUpdate(nextProps: IAccordionItemProps): boolean {\n if (this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { slots, renderView, config, data } = this.props;\n const accordionExpandedStateResult = data && data.accordionExpandedState && data.accordionExpandedState.result;\n const expanded =\n accordionExpandedStateResult && accordionExpandedStateResult.isAllExpanded === undefined\n ? data && config.isExpandedOnInitialLoad\n : accordionExpandedStateResult && accordionExpandedStateResult.isAllExpanded;\n const viewProps = {\n ...this.props,\n AccordionItemContainer: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n AccordionItemContent: {\n className: 'ms-accordion-item-content'\n },\n drawer: {\n tag: ControlledDrawer,\n className: `${this.moduleClassName}__drawer`,\n toggleButtonText: (config.accordionItemTitle && config.accordionItemTitle) || '',\n collapseProps: { isOpen: expanded },\n onToggle: this._onToggle,\n onTextChange: this.handleHeadingChange,\n requestContext: this.props.context.request,\n telemetryContent: this.telemetryContent\n },\n accordionSlots: slots\n };\n return renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.accordionItemTitle = event.target.value);\n\n private _onToggle(state: IDrawerState): void {\n if (!state.isOpen && this.props.interactionStyle === interactionStyle.ExpandOneItemOnly) {\n const accordionState = { isAllExpanded: false };\n this.props.context.actionContext.update(createAccordionStateInput(accordionState), accordionState);\n }\n }\n}\nexport default AccordionItem;\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 { IAccordionItemViewProps } from './accordion-item';\n\nconst AccordionItemView: React.FC = props => {\n const { drawer, accordionSlots, AccordionItemContainer, AccordionItemContent } = props;\n return (\n \n \n \n {accordionSlots &&\n accordionSlots.accordionItemContent &&\n accordionSlots.accordionItemContent.length &&\n _renderAccordionItemContent(accordionSlots.accordionItemContent)}\n \n \n \n );\n};\n\nconst _renderAccordionItemContent = (items: React.ReactNode[]): JSX.Element | null => {\n return (\n <>\n {items && items.length > 0\n ? items.map((item: React.ReactNode, index: number) => {\n return {item};\n })\n : null}\n \n );\n};\nexport default AccordionItemView;\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 NodeTag,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { createAccordionStateInput } from '../..';\nimport { IAccordionData } from './accordion.data';\nimport { IAccordionProps } from './accordion.props.autogenerated';\n\n/**\n *\n * Accordion component.\n * @extends {React.PureComponent>}\n */\n\nexport interface ICallToActionProps {\n link: INodeProps[];\n}\n\n/**\n * Added interface for state management.\n */\nexport interface IAccordianState {\n isDisabled: boolean;\n}\n\nexport interface IAccordionViewProps extends IAccordionProps<{}> {\n heading?: React.ReactNode;\n AccordionContainer: IModuleProps;\n HeaderSection: INodeProps;\n HeadingWrapper: INodeProps;\n accordianButtonsContainer: INodeProps;\n accordionButtons: React.ReactNode;\n accordionItemContainer: INodeProps;\n accordionItems: React.ReactNode;\n}\n\n/**\n *\n * Accordion component.\n * @extends {React.Component>}\n */\n@observer\nclass Accordion extends React.PureComponent, IAccordianState> {\n private readonly telemetryContent?: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n private readonly expandAllButtonRef: React.RefObject = React.createRef();\n\n private readonly collapseAllButtonRef: React.RefObject = React.createRef();\n\n constructor(props: IAccordionProps) {\n super(props);\n this._onExpandAll = this._onExpandAll.bind(this);\n this._onCollapseAll = this._onCollapseAll.bind(this);\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 this.state = { isDisabled: false };\n }\n\n public render(): JSX.Element {\n const { slots } = this.props;\n const { heading, className } = this.props.config;\n const headingComponent = heading && heading.text && (\n \n );\n\n const accordionViewProps = {\n ...this.props,\n AccordionContainer: {\n moduleProps: this.props,\n className: classnames('ms-accordion', className)\n },\n HeaderSection: { className: 'ms-accordion-header-section' },\n HeadingWrapper: { className: 'ms-accordion-header-section-container' },\n heading: headingComponent,\n config: this.props && this.props.config,\n accordianButtonsContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-accordion-header-section-toggle-button-container'\n },\n accordionButtons: this._renderAccordionButton(),\n accordionItemContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-accordion-item-section'\n },\n accordionItems:\n slots &&\n slots.accordionItems &&\n slots.accordionItems.length > 0 &&\n slots.accordionItems.map((item: React.ReactNode, index: number) => this._getAccordionItem(item, index))\n };\n return this.props.renderView(accordionViewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n private _renderAccordionButton(): React.ReactNode | null {\n const { config, resources } = this.props;\n const { heading } = config;\n this.payLoad.contentAction.etext = TelemetryConstant.ExpandAll;\n const attributeExpandAll = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n this.payLoad.contentAction.etext = TelemetryConstant.CollapseAll;\n const attributeCollapseAll = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n if (!config.showToggleAll) {\n this.props.context.telemetry.error('Accordion button content is empty, module wont render');\n return null;\n }\n return (\n <>\n \n {resources.expandAllText}\n \n  \n {resources.toggleAllSeparator}\n  \n \n {resources.collapseAllText}\n \n \n );\n }\n\n private _onExpandAll(): void {\n const accordionState = { isAllExpanded: true };\n this.props.context.actionContext.update(createAccordionStateInput(accordionState), accordionState);\n if (accordionState.isAllExpanded) {\n this.setState({\n isDisabled: true\n });\n setTimeout(() => {\n this.collapseAllButtonRef.current?.focus();\n }, 50);\n }\n }\n\n private _onCollapseAll(): void {\n const accordionState = { isAllExpanded: false };\n this.props.context.actionContext.update(createAccordionStateInput(accordionState), accordionState);\n if (!accordionState.isAllExpanded) {\n this.setState({\n isDisabled: false\n });\n setTimeout(() => {\n this.expandAllButtonRef.current?.focus();\n }, 50);\n }\n }\n\n private _getAccordionItem(item: React.ReactNode, index: number): React.ReactNode {\n return (\n \n {React.cloneElement(item as React.ReactElement, { interactionStyle: this.props.config.interactionStyle })}\n \n );\n }\n}\n\nexport default Accordion;\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 { IAccordionViewProps } from './accordion';\n\nconst accordionView: React.FC = props => {\n const { heading, AccordionContainer, accordionItems } = props;\n if (!props.heading && !props.accordionButtons && !props.accordionItems) {\n props.context.telemetry.error('Accordion content is empty, module wont render');\n return null;\n }\n return (\n \n \n {heading}\n {props.accordionButtons && {props.accordionButtons}}\n \n {accordionItems}\n \n );\n};\n\nexport default accordionView;\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 { 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}\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\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 };\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 { isStatementRequestModalOpen, statementRequestFromDateString, statementRequestToDateString } = 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 isB2BUser = customer.IsB2b;\n const isB2BAdmin = isB2BUser && customer.IsB2bAdmin;\n\n const actionBar = isB2BAdmin ? (\n \n ) : (\n isB2BUser && (\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: isB2BUser && (\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 };\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}\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 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 onToggleDropdown(): void;\n onRequestStatement(isFullOrg: boolean): void;\n}\n\nexport const ActionBar: React.FC = ({ className, onRequestStatement, requestStatementButtonLabel }) => {\n return (\n
\n \n
\n );\n};\n\nexport const AdminRequestStatementButton: React.FC = ({\n className,\n onRequestStatement,\n requestStatementButtonLabel,\n onToggleDropdown,\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 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 \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}\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}) => {\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 \n
\n
\n {email}\n
\n {selectedUser && (\n
\n {selectedUserLabel}\n {selectedUser}\n
\n )}\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n \n \n {submitRequestLabel}\n \n {` `}\n \n \n \n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, TelemetryConstant } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { AdminRequestStatementButton } from './account-actions';\nimport { RequestStatementModal } from './account-statement-request-modal';\n\nexport * from './account-actions';\nexport * from './account-statement-request-modal';\n\ninterface IAccountLabel {\n name: string;\n accountNumber: string;\n createdOn: string;\n customerSincePrefix: string;\n}\n\ninterface IAccountValues {\n availableCredit: string;\n availableCreditLabel: string;\n}\n\n/**\n * Prop for Available credit component.\n */\ninterface ICreditSummaryAvailableCredit {\n availableCreditLabel: string;\n availableCredit: string;\n}\n\n/**\n * Prop for Balanced owed component.\n */\ninterface ICreditSummaryBalanceOwed {\n balanceOwedLabel: string;\n balanceOwed: string;\n}\n\n/**\n * Prop for credit excess component.\n */\ninterface ICreditSummaryCreditExcess {\n creditExcessLabel: string | null;\n creditExcess: string | null;\n}\n\ninterface ICreditSummaryLabel {\n availableCredit: string;\n balanceOwed: string;\n creditExcess: string | null;\n}\n\ninterface ICreditSummaryValues {\n availableCredit: string;\n balanceOwed: string;\n creditExcess: string | null;\n}\n\ninterface IBackButton {\n link: string;\n label: string;\n telemetryContent?: ITelemetryContent;\n}\n\nexport const AccountLabels: React.FC = ({ name, accountNumber, customerSincePrefix, createdOn }) => (\n
\n

{name}

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

{description}

\n);\n\nexport default IAccountWishlistTileDescription;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../account-wishlist-tile.props.autogenerated';\n\nexport interface IAccountWishlistTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountWishlistTileLinks: React.FC = ({ links, telemetryContent, onTextChange, requestContext }) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-wishlist-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountWishlistTileLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountWishlistTileData } from './account-wishlist-tile.data';\nimport { IAccountWishlistTileProps } from './account-wishlist-tile.props.autogenerated';\nimport DescriptionComponent from './components/account-wishlist-tile-description';\nimport LinksComponent from './components/account-wishlist-tile-links';\n\nexport interface IAccountWishlistTileViewProps extends IAccountWishlistTileProps {\n AccountWishlistTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * AccountWishlist component.\n * @extends {React.PureComponent>}\n */\nclass AccountWishlistTile extends React.PureComponent> {\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IAccountWishlistTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element {\n const { config, resources, data } = this.props;\n const { className, heading, links } = config;\n const { accountWishlistTileDescription } = resources;\n const wishlists = data.wishlists.result;\n\n const wishlistsCount = ((wishlists && wishlists.length && wishlists[0].CommerceListLines) || []).length;\n const description = format(accountWishlistTileDescription || 'You have {0} items in the Wishlist.', wishlistsCount);\n\n const viewProps = {\n ...this.props,\n className,\n AccountWishlistTile: {\n moduleProps: this.props,\n className: classnames('ms-account-wishlist-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n ),\n description: \n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default AccountWishlistTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountWishlistTileViewProps } from './account-wishlist-tile';\n\nconst AccountWishlistTileView: React.FC = props => {\n const { AccountWishlistTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default AccountWishlistTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { ICoreContext, IDateFormatOptions, IRequestContext } from '@msdyn365-commerce/core';\nimport { BusinessPartnerOperationRequest, BusinessPartnerOperationRequestDetails } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n IDataTableProps,\n IHeadingsProperty,\n ITableItemProps,\n ITableRowProps,\n Table,\n TableDataType\n} from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IB2bRequestsStatusData } from '../b2b-requests-status.data';\nimport { IB2bRequestsStatusProps } from '../b2b-requests-status.props.autogenerated';\n\nexport interface IB2bRequestsTableProps {\n moduleProps: IB2bRequestsStatusProps;\n isMobile: boolean;\n mobileExcludedColumns: string[];\n}\n\nexport interface IB2bRequestsTableResources {\n b2bRequestsTypeCreateProspect: string;\n b2bRequestsTypeAddUser: string;\n b2bRequestsTypeEditUser: string;\n b2bRequestsTypeDeleteUser: string;\n b2bRequestsTypeRequestAccountStatement: string;\n b2bRequestsTypeRequestInvoiceCopy: string;\n b2bRequestsTypeUnknown: string;\n b2bRequestsStatusRequested: string;\n b2bRequestsStatusProcessed: string;\n b2bRequestsStatusError: string;\n b2bRequestsNumberOfItems: string;\n b2bRequestsNumberOfItemsSingular: string;\n b2bRequestsNameDisplay: string;\n b2bRequestsPreviousText: string;\n b2bRequestsNextText: string;\n b2bRequestsUserColumn: string;\n b2bRequestsStatusColumn: string;\n b2bRequestsRequestDateColumn: string;\n b2bRequestsTypeColumn: string;\n b2bRequestsDescriptionColumn: string;\n b2bRequestsAccountStatementDetails: string;\n b2bRequestsInvoiceCopyDetails: string;\n businessUserSelectCheckBoxAriaLabelText?: string;\n sortByAscending?: string;\n sortByDescending?: string;\n}\n\nexport enum RequestsTableColumnHeader {\n Name = 'User',\n Status = 'Status',\n RequestDate = 'Request date',\n Type = 'Request type',\n Description = 'Request detail'\n}\n\nconst getCurrentUrl = (reqContext: IRequestContext): URL => {\n if (MsDyn365.isBrowser) {\n return new URL(window.location.href);\n }\n\n // NOTE: Typing on requestURL is incorrect\n if (reqContext.url.requestUrl.href) {\n return new URL(reqContext.url.requestUrl.href);\n }\n return new URL(reqContext.url.requestUrl.href);\n};\n\nconst getUserName = (request: BusinessPartnerOperationRequest, resources: IB2bRequestsTableResources) => {\n if (StringExtensions.isNullOrEmpty(request.UserFirstName)) {\n if (StringExtensions.isNullOrEmpty(request.UserLastName)) {\n return '';\n }\n\n return request.UserLastName;\n } else if (StringExtensions.isNullOrEmpty(request.UserLastName)) {\n return request.UserFirstName;\n }\n\n return resources.b2bRequestsNameDisplay.replace('{0}', request.UserFirstName!).replace('{1}', request.UserLastName!);\n};\n\nconst formatDate = (context: ICoreContext, date: Date | undefined) => {\n if (date === undefined) {\n return '';\n }\n\n const dateOptions: IDateFormatOptions = { year: 'numeric', month: 'long', day: 'numeric' };\n return context.cultureFormatter.formatDate(date, dateOptions);\n};\n\n/**\n * Gets the value to display for the request details.\n * @param request - The request to parse for the details.\n * @param resources - The resources.\n * @param context - The context.\n * @returns The string to display.\n */\nconst getDetails = (request: BusinessPartnerOperationRequest, resources: IB2bRequestsTableResources, context: ICoreContext) => {\n if (!request.Details) {\n return '';\n }\n\n const requestDetails: BusinessPartnerOperationRequestDetails = request.Details;\n\n const accountStatementStartDateTime = formatDate(context, requestDetails.AccountStatementStartDateTime) || '';\n const accountStatementEndDateTime = formatDate(context, requestDetails.AccountStatementEndDateTime) || '';\n const invoiceId = requestDetails.InvoiceId ?? '';\n\n switch (request.TypeValue) {\n // eslint-disable-next-line @typescript-eslint/no-magic-numbers -- workaround for not being able to use enum value\n case 5:\n if (\n !StringExtensions.isNullOrEmpty(accountStatementStartDateTime) &&\n !StringExtensions.isNullOrEmpty(accountStatementEndDateTime)\n ) {\n return resources.b2bRequestsAccountStatementDetails\n .replace('{0}', accountStatementStartDateTime)\n .replace('{1}', accountStatementEndDateTime);\n }\n\n return '';\n // eslint-disable-next-line @typescript-eslint/no-magic-numbers -- workaround for not being able to use enum value\n case 6:\n if (!StringExtensions.isNullOrEmpty(invoiceId)) {\n return resources.b2bRequestsInvoiceCopyDetails.replace('{0}', invoiceId);\n }\n\n return '';\n default:\n return '';\n }\n};\n\nconst createTableItems = (\n operationRequests: BusinessPartnerOperationRequest[] | undefined,\n props: IB2bRequestsStatusProps\n): ITableRowProps[] => {\n if (!ArrayExtensions.hasElements(operationRequests)) {\n return [];\n }\n\n return operationRequests.map(request => {\n return {\n row: [\n {\n id: props.resources.b2bRequestsTypeColumn,\n type: TableDataType.Text,\n value: getDisplayFriendlyTypeValue(request.TypeValue ?? 0, props.resources)\n } as ITableItemProps,\n {\n id: props.resources.b2bRequestsRequestDateColumn,\n type: TableDataType.Text,\n value: formatDate(props.context, request.CreatedDateTime)\n } as ITableItemProps,\n {\n id: props.resources.b2bRequestsDescriptionColumn,\n type: TableDataType.Text,\n value: getDetails(request, props.resources, props.context)\n } as ITableItemProps,\n {\n id: props.resources.b2bRequestsUserColumn,\n type: TableDataType.Text,\n value: getUserName(request, props.resources)\n } as ITableItemProps,\n {\n id: props.resources.b2bRequestsStatusColumn,\n type: TableDataType.Text,\n value: getDisplayFriendlyStatusValue(request.StatusValue ?? 0, props.resources)\n } as ITableItemProps\n ],\n isSelected: false,\n className: props.config.className\n };\n });\n};\n\nconst getDisplayFriendlyTypeValue = (typeValue: number, resources: IB2bRequestsTableResources): string => {\n switch (typeValue) {\n case 1:\n return resources.b2bRequestsTypeCreateProspect;\n case 2:\n return resources.b2bRequestsTypeAddUser;\n case 3:\n return resources.b2bRequestsTypeDeleteUser;\n case 4:\n return resources.b2bRequestsTypeEditUser;\n case 5:\n return resources.b2bRequestsTypeRequestAccountStatement;\n case 6:\n return resources.b2bRequestsTypeRequestInvoiceCopy;\n default:\n return resources.b2bRequestsTypeUnknown;\n }\n};\n\nconst getDisplayFriendlyStatusValue = (statusValue: number, resources: IB2bRequestsTableResources): string => {\n switch (statusValue) {\n case 1:\n return resources.b2bRequestsStatusProcessed;\n case 2:\n return resources.b2bRequestsStatusError;\n default:\n return resources.b2bRequestsStatusRequested;\n }\n};\n\nconst createTableProps = (tableProps: IB2bRequestsTableProps) => {\n const { context, data, resources } = tableProps.moduleProps;\n\n const tableData = createTableItems(data.operationRequests.result, tableProps.moduleProps);\n const tableHeading =\n (ArrayExtensions.hasElements(tableData) &&\n tableData[0].row\n .filter(item => {\n // Check that this is either not mobile or the column should be displayed when mobile.\n return !tableProps.isMobile || !tableProps.mobileExcludedColumns.includes(item.id);\n })\n .map(item => {\n return {\n name: item.id,\n sortable: true,\n ariaLabel: resources.columnSortAriaLabel\n } as IHeadingsProperty;\n })) ||\n [];\n\n return {\n resources: {},\n headings: tableHeading,\n rows: tableData,\n className: `${tableProps.moduleProps.config.className}__table`,\n editLinkText: '',\n deleteLinkText: '',\n viewLinkText: '',\n enableToModify: false,\n actionLinkText: '',\n showCheckBoxes: false,\n isSortable: true,\n showPagination: true,\n minifyActions: tableProps.isMobile,\n excludedColumns: tableProps.isMobile ? tableProps.mobileExcludedColumns : [],\n paginationProperty: {\n skipCount:\n context.request.query?.skip && !isNaN(Number.parseInt(context.request.query.skip, 10))\n ? Number.parseInt(context.request.query.skip, 10)\n : 0,\n itemPerPage: 10,\n prevText: resources.b2bRequestsPreviousText,\n nextText: resources.b2bRequestsNextText,\n paginationText: '',\n url: (context && getCurrentUrl(context.request).href) || ''\n },\n isSingleSelectOnly: true,\n actions: {\n onDelete: undefined,\n onEdit: undefined,\n onView: undefined\n },\n businessUserSelectCheckBoxAriaLabelText: tableProps.moduleProps.resources.businessUserSelectCheckBoxAriaLabelText,\n sortByAscending: tableProps.moduleProps.resources.sortByAscending,\n sortByDescending: tableProps.moduleProps.resources.sortByDescending\n } as IDataTableProps;\n};\n\nexport const B2bRequestsTable: React.FC = (tableProps: IB2bRequestsTableProps) => {\n return ;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { format, Heading, IModuleProps, isMobile, VariantType } from '@msdyn365-commerce-modules/utilities';\nimport { computed } from 'mobx';\nimport * as React from 'react';\n\nimport { IB2bRequestsStatusData } from './b2b-requests-status.data';\nimport { IB2bRequestsStatusProps, IHeadingData } from './b2b-requests-status.props.autogenerated';\nimport { B2bRequestsTable } from './components/b2b-requests-table';\n\nexport interface IB2bRequestsStatusViewProps extends IB2bRequestsStatusProps {\n b2bRequestsStatus: IModuleProps;\n heading?: React.ReactNode;\n table: React.ReactNode;\n}\n\n/**\n *\n * B2bRequestsStatus component.\n * @extends {React.PureComponent>}\n */\nclass B2bRequestsStatus extends React.PureComponent> {\n @computed get isMobile(): boolean {\n const size = isMobile({ variant: VariantType.Viewport, context: this.props.context.request });\n return size === 'xs';\n }\n\n public render(): JSX.Element | null {\n const { config, data } = this.props;\n\n if (!data.customerInformation.result?.IsB2b || !data.b2bUserInformation.result?.B2BUserId) {\n return null;\n }\n\n const className = config.className || '';\n\n const viewProps = {\n ...this.props,\n b2bRequestsStatus: {\n moduleProps: this.props,\n className\n },\n heading: this.renderHeader(className, config.heading),\n table: this.renderTable()\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private readonly renderHeader = (className: string, headingData: IHeadingData): React.ReactNode => {\n const itemCount = this.props.data.operationRequests.result?.length ?? 0;\n\n return (\n
\n \n {this.getItemNumberDisplayString(itemCount)}\n
\n );\n };\n\n /**\n * Returns columns that needs to be excluded for mobile view.\n * @returns Array of column names.\n */\n private readonly _retrieveExcludedColumns = (): string[] => {\n const { resources } = this.props;\n return [resources.b2bRequestsRequestDateColumn, resources.b2bRequestsDescriptionColumn, resources.b2bRequestsUserColumn];\n };\n\n private readonly renderTable = (): React.ReactNode => {\n return (\n \n );\n };\n\n private readonly getItemNumberDisplayString = (itemCount: number): string => {\n switch (itemCount) {\n case 0:\n return '';\n case 1:\n return format(this.props.resources.b2bRequestsNumberOfItemsSingular, itemCount);\n default:\n return format(this.props.resources.b2bRequestsNumberOfItems, itemCount);\n }\n };\n}\n\nexport default B2bRequestsStatus;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { IB2bRequestsStatusViewProps } from './b2b-requests-status';\n\nconst B2bRequestsStatusView: React.FC = props => {\n const { b2bRequestsStatus, heading, table } = props;\n return (\n \n {heading}\n {table}\n \n );\n};\n\nexport default B2bRequestsStatusView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../../..';\n\nexport interface IB2bRequestsTileLinksProps {\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 defaultClassName = 'ms-account-b2b-requests-tile';\n\nexport const B2bRequestsTileLinks: React.FC = ({ links, telemetryContent, onTextChange, requestContext }) => {\n if (!ArrayExtensions.hasElements(links)) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {ArrayExtensions.hasElements(editableLinks) ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!ArrayExtensions.hasElements(linkdata)) {\n return null;\n }\n\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n\n return linkdata.map(link => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return {\n ariaLabel: link.ariaLabel,\n className: `${defaultClassName}__link`,\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n } as Msdyn365.ILinksData;\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 { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IB2bRequestsTileData } from './b2b-requests-tile.data';\nimport { IB2bRequestsTileProps } from './b2b-requests-tile.props.autogenerated';\nimport { B2bRequestsTileLinks } from './components/account-b2b-requests-tile-links';\n\nexport interface IB2bRequestsTileViewProps extends IB2bRequestsTileProps {\n b2bRequestsTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n}\n\n/**\n *\n * B2bRequestsTile component.\n * @extends {React.PureComponent>}\n */\nclass B2bRequestsTile extends React.PureComponent> {\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IB2bRequestsTileProps) {\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, data } = this.props;\n const { className, heading, links } = config;\n\n const defaultClassName = 'ms-account-b2b-requests-tile';\n\n if (!data.customerInformation.result?.IsB2b) {\n return null;\n }\n\n const viewProps = {\n ...this.props,\n className,\n b2bRequestsTile: {\n moduleProps: this.props,\n className: classnames(defaultClassName, config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: ArrayExtensions.hasElements(links) && (\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 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 B2bRequestsTile;\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 { IB2bRequestsTileViewProps } from './b2b-requests-tile';\n\nconst B2bRequestsTileView: React.FC = props => {\n const { b2bRequestsTile, heading, links } = props;\n\n return (\n \n {heading}\n {links}\n \n );\n};\n\nexport default B2bRequestsTileView;\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 IPasswordResetVerificationButton {\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 PasswordResetVerificationButton: React.FC = ({\n id,\n className,\n text,\n ariaLabel,\n telemetryContent,\n disabled,\n onClick\n}) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n );\n};\n\nexport default PasswordResetVerificationButton;\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 IPasswordResetVerificationErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst PasswordResetVerificationError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nexport default PasswordResetVerificationError;\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 IPasswordResetVerificationInputProps {\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 IPasswordResetVerificationInput {\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 PasswordResetVerificationInput: React.FC = ({\n id,\n type,\n value,\n pattern,\n className,\n maxLength,\n onChange\n}) => (\n \n);\n\nexport default PasswordResetVerificationInput;\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 IPasswordResetVerificationLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst PasswordResetVerificationLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default PasswordResetVerificationLabel;\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 IPasswordResetVerificationLoadingIcon {\n className: string;\n}\n\nconst PasswordResetVerificationLoadingIcon: React.FC = ({ className }) => (\n
\n);\n\nexport default PasswordResetVerificationLoadingIcon;\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 IPasswordResetVerificationLoadingMessage {\n className: string;\n message: string;\n}\n\nconst PasswordResetVerificationLoadingMessage: React.FC = ({ className, message }) => (\n
{message}
\n);\n\nexport default PasswordResetVerificationLoadingMessage;\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 IPasswordResetVerificationSuccess {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst PasswordResetVerificationSuccess: React.FC = ({ id, className, type = 'page', message }) => {\n const successClassName = `${className}__${type}-success`;\n\n return (\n \n );\n};\n\nexport default PasswordResetVerificationSuccess;\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 PasswordResetVerificationButtonComponent from './components/password-reset-verification-button';\nimport PasswordResetVerificationErrorComponent from './components/password-reset-verification-error';\nimport PasswordResetVerificationInputComponent from './components/password-reset-verification-input';\nimport PasswordResetVerificationLabelComponent from './components/password-reset-verification-label';\nimport PasswordResetVerificationLoadingIconComponent from './components/password-reset-verification-loading-icon';\nimport PasswordResetVerificationLoadingMessageComponent from './components/password-reset-verification-loading-message';\nimport PasswordResetVerificationSuccessComponent from './components/password-reset-verification-success';\nimport { IPasswordResetVerificationConfig, IPasswordResetVerificationProps } from './password-reset-verification.props.autogenerated';\n\nexport interface IPasswordResetVerificationViewState {\n isShowLoading: boolean;\n}\n\nexport interface IPasswordResetVerificationItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IPasswordResetVerificationLocalAccount {\n localAccount: INodeProps;\n verificationControlWrapper: INodeProps;\n items: IPasswordResetVerificationItem[];\n successMessage: React.ReactNode[];\n errorMessage: React.ReactNode[];\n verificationButtonsWrapper: INodeProps;\n verificationButtons: React.ReactNode[];\n buttonsWrapper: INodeProps;\n buttons: React.ReactNode[];\n verificationSuccessModal: INodeProps;\n verificationSuccessModalMessage: INodeProps;\n}\n\nexport interface IPasswordResetVerificationLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface IPasswordResetVerificationViewProps {\n className: string;\n viewState: IPasswordResetVerificationViewState;\n loading: IPasswordResetVerificationLoading;\n passwordResetVerification: IModuleProps;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n heading: React.ReactNode;\n passwordResetVerificationLocalAccount: IPasswordResetVerificationLocalAccount;\n}\n\n/**\n *\n * PasswordResetVerification component.\n * @extends {React.Component>}\n */\n@observer\nclass PasswordResetVerification extends React.Component> {\n private readonly moduleClassName: string = 'ms-password-reset-verification';\n\n private readonly telemetryContent: ITelemetryContent;\n\n @observable private emailRegex: string;\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: IPasswordResetVerificationProps) {\n super(props);\n this.emailRegex = EmailRegex.defaultRegex.source;\n this.isInitialized = false;\n this.templateVersion = '';\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: IPasswordResetVerificationProps,\n nextState: IPasswordResetVerificationViewState\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 passwordResetVerification: {\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 )\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 passwordResetVerificationLocalAccount: 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 _prePopulateData(): void {\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 if (obj.ID.toLowerCase() === 'email') {\n this.emailRegex = obj.PAT;\n } else if (obj.ID.toLowerCase() === 'emailverificationcontrol') {\n this.templateVersion = 'v2';\n }\n });\n if (!this.templateVersion) {\n this.templateVersion = 'v1';\n }\n }\n }\n\n private _updateErrorMessage(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n if (window && window['CONTENT']) {\n const message = {\n verifying_blurb: this.props.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(): IPasswordResetVerificationLocalAccount {\n const { resources } = this.props;\n return {\n localAccount: {\n id: 'attributeList',\n className: `${this.moduleClassName}__account-items attr`\n },\n verificationControlWrapper: {\n id: 'emailVerificationControl',\n className: `${this.moduleClassName}__verification-control-content verificationControlContent`\n },\n items: [\n this._renderInput('email', 'email', resources.emailAddressLabelText, undefined, this.emailRegex),\n this._renderInput(\n this.getValue('email_ver_input', 'emailVerificationCode'),\n 'text',\n resources.verificationCodeLabelText,\n undefined,\n undefined,\n 'VerificationCode'\n )\n ],\n successMessage: [\n ,\n\n \n ],\n errorMessage: [\n ,\n ,\n ,\n ,\n ,\n ,\n ,\n \n ],\n verificationButtonsWrapper: {\n className: `${this.moduleClassName}__email-verification-buttons ${this.getValue('verify', '')}`,\n 'data-claim_id': 'email'\n },\n verificationButtons: [\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(\n id: string,\n type: string,\n labelText: string,\n maxLength?: string,\n pattern?: string,\n cssClassName?: string\n ): IPasswordResetVerificationItem {\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 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\nexport default PasswordResetVerification;\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 IPasswordResetVerificationItem,\n IPasswordResetVerificationLoading,\n IPasswordResetVerificationLocalAccount,\n IPasswordResetVerificationViewProps\n} from './password-reset-verification';\n\nconst PasswordResetVerificationItem: 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 verificationControlWrapper,\n items,\n successMessage,\n errorMessage,\n verificationButtonsWrapper,\n verificationButtons,\n buttonsWrapper,\n buttons,\n verificationSuccessModal,\n verificationSuccessModalMessage\n}) => {\n return (\n \n \n {items &&\n items.map((item: IPasswordResetVerificationItem) => {\n // eslint-disable-next-line react/jsx-key\n return ;\n })}\n {successMessage &&\n successMessage.map((message: React.ReactNode, index: number) => {\n return {message};\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n {verificationButtons &&\n verificationButtons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n \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};\n\nconst PasswordResetVerificationLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst PasswordResetVerificationView: React.FC = props => {\n const {\n passwordResetVerification,\n viewState,\n loading,\n defaultAADConainer,\n aadConainer,\n heading,\n passwordResetVerificationLocalAccount\n } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n {heading}\n {LocalAccount(passwordResetVerificationLocalAccount)}\n \n \n );\n};\n\nexport default PasswordResetVerificationView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Button } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ISignUpButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n onClick?(event: React.MouseEvent): void;\n}\n\nconst SignUpButton: React.FC = ({ id, className, text, ariaLabel, disabled, onClick }) => (\n \n);\n\nexport default SignUpButton;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface ISignUpErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst SignUpError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nexport default SignUpError;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ISignUpInputProps {\n id?: string;\n hasFocus?: boolean;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n type: any;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport interface ISignUpInput {\n key: string;\n AddressItem: INodeProps;\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n\nconst SignUpInput: React.FC = ({ id, type, value, pattern, className, maxLength, onChange }) => (\n \n);\n\nexport default SignUpInput;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface ISignUpLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst SignUpLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default SignUpLabel;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface ISignUpLoadingIcon {\n className: string;\n}\n\nconst SignUpLoadingIcon: React.FC = ({ className }) =>
;\n\nexport default SignUpLoadingIcon;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface ISignUpLoadingMessage {\n className: string;\n message: string;\n}\n\nconst SignUpLoadingMessage: React.FC = ({ className, message }) => (\n
{message}
\n);\n\nexport default SignUpLoadingMessage;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface ISignUpSuccess {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst SignUpSuccess: React.FC = ({ id, className, type = 'page', message }) => {\n const successClassName = `${className}__${type}-success`;\n\n return (\n \n );\n};\n\nexport default SignUpSuccess;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { EmailRegex, PasswordRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport { IModuleProps, INodeProps, Modal, ModalBody } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport SignUpButtonComponent from './components/sign-up-button';\nimport SignUpErrorComponent from './components/sign-up-error';\nimport SignUpInputComponent from './components/sign-up-input';\nimport SignUpLabelComponent from './components/sign-up-label';\nimport SignUpLoadingIconComponent from './components/sign-up-loading-icon';\nimport SignUpLoadingMessageComponent from './components/sign-up-loading-message';\nimport SignUpSuccessComponent from './components/sign-up-success';\nimport { ISignUpConfig, ISignUpProps, ISignUpResources } from './sign-up.props.autogenerated';\n\nexport interface ISignUpViewState {\n isShowLoading: boolean;\n}\n\nexport interface ISignUpItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface ISignUpEmailVerification {\n isRequired: boolean;\n email: ISignUpItem;\n buttonWrapper: INodeProps;\n buttons: React.ReactNode[];\n successMessage: React.ReactNode[];\n errorMessage: React.ReactNode[];\n verificationControlWrapper: INodeProps;\n}\n\n/**\n * SignUp Given Name Verification Interface.\n */\nexport interface ISignUpGivenNameVerification {\n isRequired: boolean;\n givenName: ISignUpItem;\n errorMessage: React.ReactNode[];\n verificationControlWrapper: INodeProps;\n}\n\n/**\n * SignUp Surname Verification Interface.\n */\nexport interface ISignUpSurnameVerification {\n isRequired: boolean;\n surname: ISignUpItem;\n errorMessage: React.ReactNode[];\n verificationControlWrapper: INodeProps;\n}\n\nexport interface ISignUpLocalAccount {\n localAccount: INodeProps;\n items: ISignUpItem[];\n emailVerification: ISignUpEmailVerification;\n givenNameVerification: ISignUpGivenNameVerification;\n surnameVerification: ISignUpSurnameVerification;\n buttons: React.ReactNode[];\n errorMessage: React.ReactNode[];\n disclaimer: React.ReactNode;\n}\n\nexport interface ISignUpLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface ISignUpViewProps {\n className: string;\n viewState: ISignUpViewState;\n loading: ISignUpLoading;\n signUp: IModuleProps;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n heading: React.ReactNode;\n signUpLocalAccount: ISignUpLocalAccount;\n}\n\n/**\n *\n * SignUp component\n * All AAD related module is rendered on AAD page and we need to respect HTML contract provide by AAD.\n * Please ensure any change in module don't break contract with AAD.\n * @extends {React.Component>}\n */\n@observer\nclass SignUp extends React.Component> {\n @observable private isGivenNameVerificationRequried: boolean;\n\n @observable private isSurnameVerificationRequried: boolean;\n\n private readonly moduleClassName: string = 'ms-sign-up';\n\n @observable private emailRegex: string;\n\n @observable private newPasswordRegex: string;\n\n @observable private reenterPasswordRegex: string;\n\n @observable private isEmailVerificationRequried: boolean;\n\n @observable private isInitialized: boolean;\n\n @observable private templateVersion: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private initializationTimer: any;\n\n constructor(props: ISignUpProps) {\n super(props);\n\n this.emailRegex = EmailRegex.defaultRegex.source;\n this.newPasswordRegex = PasswordRegex.defaultRegex.source;\n this.reenterPasswordRegex = PasswordRegex.defaultRegex.source;\n this.isEmailVerificationRequried = false;\n this.isGivenNameVerificationRequried = false;\n this.isSurnameVerificationRequried = false;\n this.isInitialized = false;\n this.templateVersion = '';\n }\n\n public componentDidMount(): void {\n this._onInit();\n }\n\n // After successful AAD initialization, call initialize method provided by AAD to attach events.\n public componentDidUpdate(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (this.isInitialized && window && window['$element'] && window['$element']['initialize']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['$element']['initialize']();\n }\n }\n\n public shouldComponentUpdate(nextProps: ISignUpProps, nextState: ISignUpViewState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { config, resources } = this.props;\n\n const viewProps = {\n ...this.props,\n viewState: {\n isShowLoading: !this.isInitialized\n },\n signUp: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n loading: {\n modal: {\n tag: Modal,\n isOpen: true\n },\n modalBody: {\n tag: ModalBody\n },\n icon: ,\n message: \n },\n defaultAADConainer: {\n id: 'api',\n style: { display: 'none' }\n },\n aadConainer: {\n id: this.isInitialized ? 'api' : null,\n className: `${this.moduleClassName}__container`\n },\n heading: (\n \n ),\n signUpLocalAccount: this._renderLocalAccount()\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Handles heading content change event.\n * @param event - Content editable event.\n * @returns - Heading Text.\n */\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n /**\n * Handles paragraph content change event.\n * @param event - Content editable event.\n * @returns - Paragraph Text.\n */\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.disclaimer = event.target.value);\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public _onInit = () => {\n this._prePopulateData();\n this._updateErrorMessage();\n\n // Check if AAD initialization is complete. AAD do not provide any event to subscribe so we need to check variable set by AAD to check initialization status.\n this.initializationTimer = setInterval(() => {\n this._isInitializationSuccessful();\n }, 100);\n setTimeout(() => {\n clearInterval(this.initializationTimer);\n }, 10_000);\n };\n\n // After successful AAD initialization, remove waiting and preload any data, if needed.\n private readonly _isInitializationSuccessful = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['$diags'] && window['$diags']['initializationSuccessful']) {\n clearInterval(this.initializationTimer);\n this.isInitialized = true;\n }\n };\n\n private readonly _prePopulateData = () => {\n const resources: ISignUpResources = this.props.resources || {};\n\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window['SA_FIELDS'] && window['SA_FIELDS']['AttributeFields']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['SA_FIELDS']['AttributeFields'].map(\n (obj: { ID: string; PAT: string; UX_INPUT_TYPE: string; PAT_DESC: string; VERIFY: boolean }) => {\n switch (obj.ID.toLowerCase()) {\n case 'emailverificationcontrol': {\n this.isEmailVerificationRequried = true;\n this.templateVersion = 'v2';\n break;\n }\n case 'email': {\n this.emailRegex = obj.PAT;\n this.isEmailVerificationRequried = obj.VERIFY;\n this.templateVersion = 'v1';\n break;\n }\n case 'givennameverificationcontrol': {\n this.isGivenNameVerificationRequried = true;\n break;\n }\n case 'givenname': {\n this.isGivenNameVerificationRequried = obj.VERIFY;\n break;\n }\n case 'surnameverificationcontrol': {\n this.isEmailVerificationRequried = true;\n break;\n }\n case 'surname': {\n this.isSurnameVerificationRequried = obj.VERIFY;\n break;\n }\n case 'newpassword': {\n this.newPasswordRegex = obj.PAT;\n break;\n }\n case 'reenterpassword': {\n this.reenterPasswordRegex = obj.PAT;\n break;\n }\n default:\n }\n\n switch (obj.UX_INPUT_TYPE.toLowerCase()) {\n case 'password': {\n obj.PAT_DESC = resources.invalidPasswordError;\n break;\n }\n case 'emailbox': {\n obj.PAT_DESC = resources.invalidEmailAddressError;\n break;\n }\n default:\n }\n }\n );\n }\n };\n\n private readonly _updateErrorMessage = () => {\n const resources: ISignUpResources = this.props.resources || {};\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n if (window && window['CONTENT']) {\n const errorMessages = {\n required_field: resources.requiredFieldMissingError\n };\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n Object.assign(window['CONTENT'], errorMessages);\n }\n };\n\n private readonly getValue = (v1Value: string, v2Value: string): string => {\n if (this.templateVersion) {\n return this.templateVersion === 'v1' ? v1Value : v2Value;\n }\n return '';\n };\n\n private _renderLocalAccount(): ISignUpLocalAccount {\n const { config, resources } = this.props;\n return {\n localAccount: {\n id: 'attributeList',\n className: `${this.moduleClassName}__account-items attr`\n },\n items: [\n this._renderInput('givenName', 'text', resources.firstNameLabelText, resources.firstNameMaxLength),\n this._renderInput('surname', 'text', resources.lastNameLabelText, resources.lastNameMaxLength),\n this._renderInput('email', 'email', resources.emailAddressLabelText, undefined, this.emailRegex),\n this._renderInput('newPassword', 'password', resources.passwordLabelText, undefined, this.newPasswordRegex),\n this._renderInput('reenterPassword', 'password', resources.confirmPasswordLabelText, undefined, this.reenterPasswordRegex)\n ],\n emailVerification: {\n isRequired: this.isEmailVerificationRequried,\n email: this._renderInput(\n this.getValue('email_ver_input', 'emailVerificationCode'),\n 'text',\n resources.verificationCodeLabelText,\n undefined,\n undefined,\n 'VerificationCode'\n ),\n verificationControlWrapper: {\n id: 'emailVerificationControl',\n className: `${this.moduleClassName}__verification-control-content verificationControlContent`\n },\n buttonWrapper: {\n className: `${this.moduleClassName}__email-verification-buttons ${this.getValue('verify', '')}`,\n 'data-claim_id': 'email'\n },\n buttons: [\n ,\n ,\n ,\n \n ],\n successMessage: [\n ,\n \n ],\n errorMessage: [\n ,\n ,\n ,\n ,\n ,\n ,\n \n ]\n },\n givenNameVerification: {\n isRequired: this.isGivenNameVerificationRequried,\n givenName: this._renderInput(\n this.getValue('givenName_ver_input', 'givenNameVerificationCode'),\n 'text',\n resources.verificationCodeLabelText,\n undefined,\n undefined,\n 'VerificationCode'\n ),\n verificationControlWrapper: {\n id: 'givenNameVerificationControl',\n className: `${this.moduleClassName}__verification-control-content verificationControlContent`\n },\n errorMessage: [\n \n ]\n },\n surnameVerification: {\n isRequired: this.isSurnameVerificationRequried,\n surname: this._renderInput(\n this.getValue('surname_ver_input', 'surnameVerificationCode'),\n 'text',\n resources.verificationCodeLabelText,\n undefined,\n undefined,\n 'VerificationCode'\n ),\n verificationControlWrapper: {\n id: 'surnameVerificationControl',\n className: `${this.moduleClassName}__verification-control-content verificationControlContent`\n },\n errorMessage: [\n \n ]\n },\n buttons: [\n ,\n \n ],\n errorMessage: [\n ,\n ,\n ,\n \n ],\n disclaimer: config.disclaimer && (\n \n )\n };\n }\n\n private _renderInput(\n id: string,\n type: string,\n labelText: string,\n maxLength?: string,\n pattern?: string,\n cssClassName?: string\n ): ISignUpItem {\n const className = `${this.moduleClassName}__account-item`;\n return {\n wrapper: {\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry', cssClassName)\n },\n key: id,\n label: (\n \n ),\n errorMessage: (\n \n ),\n input: (\n \n )\n };\n }\n}\n\nexport default SignUp;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n ISignUpEmailVerification,\n ISignUpGivenNameVerification,\n ISignUpItem,\n ISignUpLoading,\n ISignUpLocalAccount,\n ISignUpSurnameVerification,\n ISignUpViewProps\n} from './sign-up';\n\nconst SignUpItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst SignUpEmailVerification: React.FC = ({ email, buttonWrapper, buttons, successMessage, errorMessage }) => {\n return (\n <>\n {successMessage &&\n successMessage.map((message: React.ReactNode) => {\n return <>{message};\n })}\n \n {errorMessage &&\n errorMessage.map((message: React.ReactNode) => {\n return <>{message};\n })}\n \n {buttons &&\n buttons.map((button: React.ReactNode) => {\n return <>{button};\n })}\n \n \n );\n};\n\n/**\n * Handles validation of sign-up givenName.\n * @param event - Content editable event.\n * @param event.givenName - Event Given Name.\n * @param event.errorMessage - Event Error Message.\n * @returns - Error Message for Given Name.\n */\nconst SignUpGivenNameVerificationComponent: React.FC = ({ givenName, errorMessage }) => {\n return (\n <>\n \n {errorMessage.map((message: React.ReactNode) => {\n return <>{message};\n })}\n \n );\n};\n\n/**\n * Handles validation of signUp surname.\n * @param event - Content editable event.\n * @param event.surname - Event surname.\n * @param event.errorMessage - Event Error Message.\n * @returns - Error Message for surname.\n */\nconst SignUpSurnameVerificationComponent: React.FC = ({ surname, errorMessage }) => {\n return (\n <>\n \n {errorMessage.map((message: React.ReactNode) => {\n return <>{message};\n })}\n \n );\n};\n\nconst LocalAccount: React.FC = ({\n localAccount,\n items,\n emailVerification,\n givenNameVerification,\n surnameVerification,\n buttons,\n errorMessage,\n disclaimer\n}) => {\n return (\n \n {items &&\n items.map((item: ISignUpItem) => {\n if (item.key === 'email' && emailVerification.isRequired) {\n return (\n \n \n \n \n );\n }\n if (item.key === 'givenName' && givenNameVerification.isRequired) {\n return (\n \n \n \n \n );\n }\n if (item.key === 'surname' && surnameVerification.isRequired) {\n return (\n \n \n \n \n );\n }\n // eslint-disable-next-line react/jsx-key\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n {buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n {disclaimer}\n \n );\n};\n\nconst SignUpLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst SignUpView: React.FC = props => {\n const { signUp, viewState, loading, defaultAADConainer, aadConainer, heading, signUpLocalAccount } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n {heading}\n {LocalAccount(signUpLocalAccount)}\n \n \n );\n};\n\nexport default SignUpView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\ninterface ILink {\n className?: string;\n text?: string;\n href?: string;\n ariaLabel?: string;\n index: string;\n noclick?: boolean;\n telemetryContent: ITelemetryContent;\n}\n\nexport const Link: React.FC = ({ text, className, href, ariaLabel, index, noclick, telemetryContent }) => {\n const payLoad = getPayloadObject('click', telemetryContent, '', '');\n\n const linkText = text !== undefined ? text : '';\n payLoad.contentAction.etext = linkText;\n\n // Construct telemetry attribute to render\n const attribute = getTelemetryAttributes(telemetryContent, payLoad);\n\n return (\n \n {linkText}\n \n \n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\ninterface ISeparator {\n separator: string;\n}\n\nexport const Separator: React.FC = ({ separator }) => (\n \n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { CategoryHierarchy } from '@msdyn365-commerce/commerce-entities';\nimport MsDyn365 from '@msdyn365-commerce/core';\nimport { ICategoryUrl } from '@msdyn365-commerce/core-internal/dist/types/interfaces/ICategoryPathInterfaces';\nimport { TextValueTranslation } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IBreadcrumbData } from './breadcrumb.data';\nimport { IBreadcrumbProps, ILinksData } from './breadcrumb.props.autogenerated';\nimport { Link } from './components/link';\nimport { Separator } from './components/separator';\n\nexport interface IBreadcrumbViewProps extends IBreadcrumbProps {\n root?: React.ReactNode;\n links?: React.ReactNode[];\n backButton?: React.ReactNode;\n separator?: React.ReactNode;\n BreadcrumbContainer: IModuleProps;\n BreadcrumbList: INodeProps;\n BreadcrumbListItem: INodeProps;\n}\n\n/**\n *\n * Breadcrumb component.\n * @extends {React.PureComponent>}\n */\nclass Breadcrumb extends React.PureComponent> {\n private readonly _pageType: string | undefined = this.props.context.request.urlTokens.pageType;\n\n private readonly telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n public render(): JSX.Element | null {\n const { className } = this.props.config;\n let rootLink = null;\n let breadcrumbLinks = null;\n let backButtonComponent = null;\n rootLink = this._getRootLink();\n const itemPosition = rootLink ? 1 : 0;\n if (this._pageType === 'Category') {\n breadcrumbLinks = this._getCustomBreadcrumbLinks(itemPosition);\n if (!breadcrumbLinks) {\n breadcrumbLinks = this._getCategoryHierarchy(itemPosition);\n }\n } else if (this._pageType === 'Product') {\n breadcrumbLinks = this._getCustomBreadcrumbLinks(itemPosition);\n if (!breadcrumbLinks) {\n const breaCrumbType = this.props.context.app.config.breadcrumbType;\n if (breaCrumbType === 'category') {\n breadcrumbLinks = this._getPDPLinks(itemPosition);\n }\n if (breaCrumbType === 'categoryAndBack') {\n backButtonComponent = this._getPDPBackButton();\n breadcrumbLinks = this._getPDPLinks(itemPosition);\n }\n if (breaCrumbType === 'back') {\n backButtonComponent = this._getPDPBackButton();\n if (backButtonComponent === null) {\n breadcrumbLinks = this._getPDPLinks(itemPosition);\n }\n }\n }\n } else {\n breadcrumbLinks = this._getCustomBreadcrumbLinks(itemPosition);\n }\n const linkSeparator = ;\n\n const breadcrumbViewProps = {\n ...this.props,\n BreadcrumbContainer: {\n moduleProps: this.props,\n className: classnames('ms-breadcrumb', className),\n tag: 'nav',\n role: 'navigation'\n },\n BreadcrumbList: {\n tag: 'ol' as NodeTag,\n className: 'ms-breadcrumb_list'\n },\n BreadcrumbListItem: {\n tag: 'li',\n className: 'ms-breadcrumb_item'\n },\n root: rootLink,\n links: breadcrumbLinks,\n backButton: backButtonComponent,\n separator: linkSeparator\n };\n return this.props.renderView(breadcrumbViewProps) as React.ReactElement;\n }\n\n private readonly _getRootLink = (): JSX.Element | null => {\n const { root } = this.props.config;\n if (!root || !root.linkUrl || !root.linkUrl.destinationUrl) {\n this.props.context.telemetry.error('BreadCrumb link url content is empty, link wont render');\n return null;\n }\n return (\n \n );\n };\n\n private readonly _getCustomBreadcrumbLinks = (itemPosition: number): JSX.Element[] | null => {\n const { links } = this.props.config;\n\n if (!links || links.length === 0) {\n this.props.context.telemetry.error('BreadCrumb links content is empty, links wont render');\n return null;\n }\n const defaultValueToSubtract = 1;\n return links.map((value: ILinksData, index: number) => {\n itemPosition++;\n const keyIndex = index;\n return index !== links.length - defaultValueToSubtract ? (\n \n ) : (\n
\n {value.linkText}\n
\n );\n });\n };\n\n private readonly _getCategoryHierarchy = (itemPosition: number): JSX.Element[] | null => {\n const { data } = this.props;\n const categoryHierarchy = data.categoryHierarchy.result;\n if (!categoryHierarchy) {\n this.props.context.telemetry.error('Category Hierarchy content is empty, module wont render');\n return null;\n }\n return categoryHierarchy.map((value: CategoryHierarchy, index: number) => {\n itemPosition++;\n\n const friendlyName = this._getFriendlyName(this.props.context.request.locale, value.NameTranslations);\n\n return (\n \n );\n });\n };\n\n /**\n * The function to get translation name for the locale.\n * @param locale - The locale information.\n * @param nameTranslations - The name translations names.\n * @returns - The translation name for the locale.\n */\n private readonly _getFriendlyName = (locale: string, nameTranslations?: TextValueTranslation[]): string | undefined => {\n let nameTranslation: TextValueTranslation | undefined;\n if (locale && nameTranslations && ArrayExtensions.hasElements(nameTranslations)) {\n nameTranslation = nameTranslations.find(item => item.Language!.toLowerCase() === locale.toLowerCase());\n }\n\n // If friendly name for current locale is null, should use default locale.\n if (nameTranslation === undefined && ArrayExtensions.hasElements(nameTranslations)) {\n nameTranslation = nameTranslations[0];\n }\n\n return nameTranslation?.Text;\n };\n\n private readonly _getPDPLinks = (itemPosition: number): JSX.Element[] | null => {\n const { data, config } = this.props;\n const categoryHierarchy = data.categoryPaths.result;\n const product = data.product.result;\n const url = this.props.context.request.url.requestUrl.href;\n if (!categoryHierarchy) {\n this.props.context.telemetry.error('Category path content is empty for the product');\n return null;\n }\n const links: JSX.Element[] = [];\n\n categoryHierarchy.map((value: ICategoryUrl, index: number) => {\n itemPosition++;\n links.push(\n \n );\n });\n if (product && !config.hideProductName) {\n itemPosition++;\n links.push(\n \n );\n }\n return links;\n };\n\n private readonly _goBack = (): void => {\n window.history.back();\n };\n\n private readonly _getPDPBackButton = (): JSX.Element | null => {\n const isBackAllowed =\n this.props.context && this.props.context.request && this.props.context.request.query && this.props.context.request.query.back;\n if (!isBackAllowed) {\n return null;\n }\n if (MsDyn365.isBrowser && (document.referrer === '' || window.history.length < 2)) {\n return null;\n }\n return (\n \n {this.props.resources.backToResultsText}\n \n );\n };\n}\n\nexport default Breadcrumb;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IBreadcrumbViewProps } from './breadcrumb';\n\nconst BreadCrumbView: React.FC = props => {\n const { root, links, backButton, BreadcrumbContainer, BreadcrumbList, BreadcrumbListItem, separator } = props;\n if (!root && !links && !backButton) {\n props.context.telemetry.error('BreadCrumb content is empty, module wont render');\n return null;\n }\n return (\n \n \n {root && (\n \n {root}\n {links && separator}\n \n )}\n {backButton && {backButton}}\n {links &&\n links.map((link, index) => (\n \n \n {link}\n {links[index + 1] && separator}\n \n \n ))}\n \n \n );\n};\n\nexport default BreadCrumbView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IRequestContext } 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}\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 };\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 } = config;\n const {\n businessUserAddUserButtonText,\n businessUserLoadingMessage,\n businessUserEmptyListMessage,\n businessUserErrorGettingUsersMessage,\n userAccountStatementLabel,\n fullOrganizationLabel,\n requestStatementButtonLabel,\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 } = 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: (\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 });\n });\n }\n };\n\n // _createBusinessPartner: attempts to convert input values(IUserFormItem) to a new user(BusinessPartnerUser)\n private readonly _createBusinessPartner = (inputs: IUserFormItem[]): BusinessPartnerUser => {\n const newUser: BusinessPartnerUser = { ...this.state.selectedUserData! };\n\n inputs.forEach(input => {\n // Deals with input values need need to be converted into numbers\n if (input.id === InputID.SpendingLimit) {\n newUser[input.id] = Number.parseFloat(input.value) || 0;\n } else {\n newUser[input.id] = input.value;\n }\n });\n\n return newUser;\n };\n\n // _handleEditIcon: converts the table row data(ITableItemProps[]) to input fields(IUserFormItem) and opens the edit form\n private readonly _handleEditIcon = (userData: ITableItemProps[], referenceBack?: HTMLButtonElement | null) => {\n // Split full name into first and last\n const possibleName = userData.find(cell => {\n return cell.id === 'Name';\n });\n const fullName = (possibleName && (possibleName.value as string)) || '';\n const lastSpaceIndex = fullName.lastIndexOf(' ');\n const firstName = fullName.substring(0, lastSpaceIndex);\n\n const lastName = fullName.substring(lastSpaceIndex + 1);\n\n // Create clone of formItems, map users information, update state\n const { formItems } = this.state;\n const newForm = formItems;\n\n newForm.forEach(input => {\n switch (input.id) {\n case InputID.FirstName:\n input.value = firstName;\n break;\n case InputID.LastName:\n input.value = lastName;\n break;\n case InputID.Email: // Email can never be null/undefined as it is a required field\n input.isDisabled = true;\n const possibleCell = userData.find(cell => {\n return input.id === cell.id;\n });\n input.value = (possibleCell && (possibleCell.value as string)) || '';\n break;\n default:\n const dataCell = userData.find(cell => {\n return input.id === cell.id;\n });\n input.value = (dataCell && (dataCell.value as string)) || '';\n }\n });\n\n this.setState({\n formItems: newForm,\n isFormActive: true,\n referenceBack,\n formType: FormType.Edit,\n isModalOpen: true,\n hasFormError: false,\n hasActionError: false,\n selectedUserData: (userData[0] as IUserTableItemProps).user\n });\n };\n\n // _handleDeleteIcon: opens removeUser confirmation window\n private readonly _handleDeleteIcon = (userData: ITableItemProps[], referenceBack?: HTMLButtonElement | null) => {\n const newUser: BusinessPartnerUser = { ...(userData[0] as IUserTableItemProps).user };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const displayedUserData: any = {};\n\n userData.forEach((cell: ITableItemProps) => {\n if (cell.id === 'Name') {\n // Split full name into first and last\n const fullName = cell.value as string;\n const lastSpaceIndex = fullName.lastIndexOf(' ');\n displayedUserData.FirstName = fullName.substring(0, lastSpaceIndex);\n\n displayedUserData.LastName = fullName.substring(lastSpaceIndex + 1);\n } else if (cell.type === TableDataType.Price) {\n displayedUserData[cell.id] = this.props.context.cultureFormatter.formatCurrency(cell.value as string);\n } else {\n displayedUserData[cell.id] = cell.value;\n }\n });\n\n this.setState({\n displayedUserData,\n referenceBack,\n selectedUserData: newUser,\n formType: FormType.Remove,\n isModalOpen: true,\n isFormActive: false\n });\n };\n\n // _handleViewDetails: opens user details window\n private readonly _handleViewDetails = (userData: ITableItemProps[]) => {\n const newUser: BusinessPartnerUser = { ...(userData[0] as IUserTableItemProps).user };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const displayedUserData: any = {};\n\n userData.forEach((cell: ITableItemProps) => {\n if (cell.id === 'Name') {\n // Split full name into first and last\n const fullName = cell.value as string;\n const lastSpaceIndex = fullName.lastIndexOf(' ');\n displayedUserData.FirstName = fullName.substring(0, lastSpaceIndex);\n\n displayedUserData.LastName = fullName.substring(lastSpaceIndex + 1);\n } else if (cell.type === TableDataType.Price) {\n displayedUserData[cell.id] = this.props.context.cultureFormatter.formatCurrency(cell.value as string);\n } else {\n displayedUserData[cell.id] = cell.value;\n }\n });\n\n this.setState({\n displayedUserData,\n selectedUserData: newUser,\n formType: FormType.View,\n isModalOpen: true,\n isFormActive: false\n });\n };\n\n // _handleRemoveUserButton: triggered on confirmation of removing a user.\n private readonly _handleRemoveUserButton = () => {\n // TODO\n const { context } = this.props;\n const { selectedUserData: deleteUserData } = this.state;\n\n if (deleteUserData) {\n deleteOrganizationUser(new DeleteOrganizationUserInput(deleteUserData), context.actionContext)\n .then(() => {\n window.location.reload(false);\n })\n .catch(error => {\n context.telemetry.trace(error);\n });\n }\n this.setState({\n formType: FormType.None,\n isModalOpen: false\n });\n };\n\n private readonly callbackRemoveButton = () => {\n this._handleRemoveUserButton();\n };\n\n // _renderUserDetails: creates the remove/view form props\n private _renderUserDetails(): IFormViewProps {\n const { resources } = this.props;\n const { formType, displayedUserData } = this.state;\n const {\n businessUserRemoveModalHeaderText,\n businessUserRemoveModalDescription,\n businessUserViewModalHeaderText,\n businessUserCancelButtonText,\n businessUserCancelRemoveUserButtonText,\n businessUserRemoveUserButtonText,\n businessUserErrorUpdatingUsersMessage\n } = resources;\n\n const formClassName = `${this.moduleClassName}__form`;\n const typeClassName = formType === FormType.Remove ? 'type-remove' : 'type-view';\n const handleRemoveButton = this.callbackRemoveButton;\n\n return {\n modalClassName: classnames(`${this.moduleClassName}__modal`, typeClassName),\n FormWrapper: {\n className: formClassName\n },\n modalHeading: formType === FormType.Remove ? businessUserRemoveModalHeaderText : businessUserViewModalHeaderText,\n modalDescription: formType === FormType.Remove && (\n

{businessUserRemoveModalDescription}

\n ),\n selectedUser: displayedUserData,\n buttons: [\n formType === FormType.Remove && (\n \n {businessUserRemoveUserButtonText}\n \n ),\n \n ],\n errorMessage: [\n \n ],\n resources\n };\n }\n\n // _renderUserForm: creates the add/edit form props\n private _renderUserForm(): IFormViewProps {\n const { resources } = this.props;\n const { formType, formItems, hasFormError, hasActionError, isReady } = 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 _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 {\n IBuyboxAddToCartViewProps,\n IBuyboxAddToOrderTemplateViewProps,\n IBuyboxAddToWishlistViewProps,\n IBuyboxCallbacks,\n IBuyboxData,\n IBuyboxFindInStoreViewProps,\n IBuyboxKeyInPriceViewProps,\n IBuyboxProductConfigureDropdownViewProps,\n IBuyboxProductConfigureViewProps,\n IBuyboxProductQuantityViewProps,\n IBuyboxProps,\n IBuyboxShopSimilarLookViewProps,\n IBuyboxState,\n IBuyboxViewProps\n} from '@msdyn365-commerce-modules/buybox';\nimport { IncrementalQuantity, ITelemetryContent, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n IBuyboxProps as IBuyboxExtentionProps,\n IBuyboxResources as IBuyboxExtentionResources\n} from '../definition-extensions/buybox.ext.props.autogenerated';\n\nconst BuyboxView: React.FC> = props => {\n const {\n ModuleProps,\n MediaGalleryContainerProps,\n ProductInfoContainerProps,\n addToCart,\n addToOrderTemplate,\n addToWishlist,\n telemetryContent,\n configure,\n description,\n findInStore,\n quantity,\n price,\n title,\n rating,\n callbacks,\n state,\n resources,\n inventoryLabel,\n shopSimilarLook,\n keyInPrice,\n quantityLimitsMessages,\n max,\n shopSimilarDescription,\n unitOfMeasure\n } = props;\n\n return (\n \n {props.mediaGallery}\n \n {title}\n {price}\n {unitOfMeasure}\n {props.bulkPurchaseLink}\n {description}\n {_renderTextBlock(props.slots.textBlocks)}\n {rating}\n {configure && _renderConfigure(configure)}\n {keyInPrice && _renderKeyInPrice(keyInPrice)}\n {quantity && _renderQuantity(quantity, callbacks, props, state, resources, quantityLimitsMessages, max, telemetryContent)}\n {inventoryLabel}\n {_renderCartAndActions(addToCart, addToOrderTemplate, addToWishlist)}\n {findInStore && _renderFindInStore(findInStore)}\n {_renderSocialShare(props.slots && props.slots.socialShare)}\n {shopSimilarLook && _renderShopSimilarItem(shopSimilarLook)}\n {shopSimilarDescription && _renderShopSimilarItem(shopSimilarDescription)}\n \n \n );\n};\n\nconst _renderTextBlock = (textBlocks: React.ReactNode[]): JSX.Element | undefined => {\n if (!textBlocks || textBlocks.length === 0) {\n return undefined;\n }\n\n return <>{textBlocks[0]};\n};\n\nconst _renderSocialShare = (socialShare: React.ReactNode[]): JSX.Element | undefined => {\n if (!socialShare || socialShare.length === 0) {\n return undefined;\n }\n\n return <>{socialShare[0]};\n};\n\nconst _renderCartAndActions = (\n addToCart?: IBuyboxAddToCartViewProps,\n addToOrderTemplate?: IBuyboxAddToOrderTemplateViewProps,\n addToWishlist?: IBuyboxAddToWishlistViewProps\n): JSX.Element | undefined => {\n if (!addToCart && !addToWishlist) {\n return undefined;\n }\n\n return (\n
\n {addToCart && addToCart.errorBlock}\n {addToOrderTemplate && addToOrderTemplate.errorBlock}\n {addToWishlist && addToWishlist.errorBlock}\n
\n {addToCart && addToCart.button}\n {addToOrderTemplate && addToOrderTemplate.button}\n {addToWishlist && addToWishlist.button}\n
\n
\n );\n};\n\nconst _renderConfigure = (configure: IBuyboxProductConfigureViewProps): JSX.Element => {\n const { ContainerProps, dropdowns } = configure;\n\n return {dropdowns.map(_renderConfigureDropdown)};\n};\n\nconst _renderConfigureDropdown = (dropdown: IBuyboxProductConfigureDropdownViewProps): JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, errors, select } = dropdown;\n\n return (\n \n \n {heading}\n {errors}\n \n {select}\n \n );\n};\n\nconst _renderFindInStore = (findInStore: IBuyboxFindInStoreViewProps): JSX.Element => {\n const { ContainerProps, storeSelector, heading, description, errors, button, modal, productPickupOptionList } = findInStore;\n\n return (\n \n {storeSelector}\n {heading}\n {productPickupOptionList}\n {description}\n {errors}\n {button}\n {modal}\n \n );\n};\n\n/**\n * On Change function.\n * @param callbacks -Callbacks.\n * @returns Update quantity.\n */\nconst onChangeHandler = (callbacks: IBuyboxCallbacks) => (newValue: number): boolean => {\n if (callbacks.updateQuantity) {\n return callbacks.updateQuantity(newValue);\n }\n return true;\n};\n\nconst _renderQuantity = (\n quantityComponent: IBuyboxProductQuantityViewProps,\n callbacks: IBuyboxCallbacks,\n props: IBuyboxProps,\n state: IBuyboxState,\n extentionResources: IBuyboxExtentionResources,\n quantityLimitsMessages: React.ReactNode,\n max: number | undefined,\n telemetryContent?: ITelemetryContent\n): JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, errors } = quantityComponent;\n\n const { resources } = props;\n\n const { quantity } = state;\n\n return (\n \n \n {heading}\n {errors}\n \n\n \n {quantityLimitsMessages}\n \n );\n};\n\nconst _renderKeyInPrice = (keyInPrice: IBuyboxKeyInPriceViewProps): JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, input } = keyInPrice;\n\n return (\n \n {heading}\n {input}\n \n );\n};\n\nconst _renderShopSimilarItem = (shopSimilarItem: IBuyboxShopSimilarLookViewProps): JSX.Element => {\n const { ContainerProps, errors, input } = shopSimilarItem;\n\n return (\n \n {errors}\n {input}\n \n );\n};\n\nexport default BuyboxView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IFooterCategoryConfig, IFooterCategoryProps } from './footer-category.props.autogenerated';\n\nexport interface IFooterCategoryViewProps extends IFooterCategoryProps {\n categories: React.ReactNode[];\n FooterList: IModuleProps;\n FooterListItem: INodeProps;\n}\n\n/**\n *\n * FooterCategory component.\n * @extends {React.PureComponent>}\n */\nclass FooterCategory extends React.PureComponent> {\n public render(): JSX.Element | null {\n if (!this.props.slots || !this.props.slots.content || this.props.slots.content.length === 0) {\n this.props.context.telemetry.error('footer slots content is empty, module wont render');\n return null;\n }\n const viewprops = {\n ...this.props,\n categories: this.props.slots.content,\n FooterList: {\n moduleProps: this.props,\n className: classnames('ms-footer__list', this.props.config.className),\n tag: 'ul'\n },\n FooterListItem: {\n className: classnames('ms-footer__list-item', this.props.config.className),\n tag: 'li'\n }\n };\n\n return this.props.renderView(viewprops) as React.ReactElement;\n }\n}\n\nexport default FooterCategory;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport React, { ReactNode } from 'react';\n\nimport { IFooterCategoryViewProps } from './footer-category';\n\nexport const FooterCategoryView: React.FC = props => {\n const { categories, FooterList, FooterListItem } = props;\n if (!categories || categories.length === 0) {\n props.context.telemetry.error('Footer content is empty, module wont render');\n return null;\n }\n return (\n \n {categories.map((category: ReactNode, index: number) => {\n return (\n \n {category}\n \n );\n })}\n \n );\n};\n\nexport default FooterCategoryView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IImageListConfig, IImageListProps, IImagesData } from './image-list.props.autogenerated';\n\n/**\n * The interface for IImageListViewProps.\n */\nexport interface IImageListViewProps extends IImageListProps {\n imageList: IModuleProps;\n imageListHeading?: React.ReactNode;\n imageListContainer: INodeProps;\n imageListItem: INodeProps;\n imageListItemAnchorTag: INodeProps;\n imageListItems: IImageListItem[] | undefined;\n}\n\n/**\n * The interface for IImageListItem.\n */\nexport interface IImageListItem {\n image: JSX.Element | undefined;\n text: JSX.Element | undefined;\n link: string | undefined;\n linkAltText: string | undefined;\n linkAriaLabel: string | undefined;\n}\n\n/**\n *\n * ImageList component.\n * @extends {React.PureComponent>}\n */\nclass ImageList extends React.PureComponent> {\n public render(): JSX.Element | null {\n const { heading } = this.props.config;\n const imageListTitle = heading && ;\n const viewProps: IImageListViewProps = {\n ...this.props,\n imageList: {\n moduleProps: this.props,\n className: classnames('ms-image-list', this.props.config.className),\n tag: 'div'\n },\n imageListHeading: imageListTitle,\n imageListContainer: {\n className: 'ms-image-list__list',\n role: 'list',\n tag: 'ul'\n },\n imageListItem: {\n className: 'ms-image-list__list-item',\n role: 'listitem',\n tag: 'li'\n },\n imageListItemAnchorTag: {\n tag: 'a',\n className: 'ms-image-list__link',\n role: 'link'\n },\n imageListItems: this._renderImageListItems()\n };\n return this.props.renderView(viewProps);\n }\n\n /**\n * Handle paragraph change.\n * @param index - Index of image item in array of image items.\n * @returns Void.\n */\n public handleParagraphChange = (index: number) => (event: Msdyn365.ContentEditableEvent): void => {\n if (this.props.config.images![index]) {\n this.props.config.images![index].paragraph = event.target.value;\n }\n };\n\n /**\n * Render list of images.\n * @returns List of images with text and redirection link.\n */\n private readonly _renderImageListItems = (): IImageListItem[] | undefined => {\n const imageList: IImagesData[] | undefined = this.props.config.images;\n const defaultImageSettings: Msdyn365.IImageSettings = {\n viewports: {\n xs: { q: 'w=65&h=65&q=80&m=6', w: 65, h: 65 },\n lg: { q: 'w=65&h=65&q=80&m=6', w: 65, h: 65 },\n xl: { q: 'w=65&h=65&q=80&m=6', w: 65, h: 65 }\n },\n lazyload: false,\n disableLazyLoad: true\n };\n return imageList?.map((item, index) => {\n const { image, link, paragraph } = item;\n\n const imageProps = {\n gridSettings: this.props.context.request.gridSettings!,\n imageSettings: (image?.imageSettings ?? defaultImageSettings) as Msdyn365.IImageSettings | undefined\n };\n\n const imageLink: string | undefined = link?.linkUrl.destinationUrl;\n const imageLinkText: string | undefined = link?.linkText ?? link?.ariaLabel;\n const imageLinkAriaLabel: string | undefined = link?.ariaLabel;\n\n // If image is null, we want to render the placeholder SVG - by passing image data with empty src\n const imageImage = (\n \n );\n\n const imageText = paragraph && (\n \n );\n const imageListItem: IImageListItem = {\n image: imageImage,\n text: imageText,\n link: imageLink,\n linkAltText: imageLinkText,\n linkAriaLabel: imageLinkAriaLabel\n };\n return imageListItem;\n });\n };\n}\n\nexport default ImageList;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IImageListViewProps } from './image-list';\n\n/**\n * Render the thumbnail item images.\n * @param props - The image list view props.\n * @returns Return HTML having IImageListViewProps props with image List.\n */\nexport const imageListView = (props: IImageListViewProps): JSX.Element => {\n const { imageList, imageListContainer, imageListHeading, imageListItem, imageListItems, imageListItemAnchorTag } = props;\n return (\n \n {imageListHeading}\n \n {imageListItems?.map(item => {\n let indexKey: string;\n\n if (item.image) {\n const image = (item.image as unknown) as Msdyn365.Image;\n indexKey = image.props.src as string;\n } else {\n const text = (item.text as unknown) as Msdyn365.RichTextComponent;\n indexKey = text.props.text as string;\n }\n return (\n \n {item.image && (\n \n {item.image}\n \n )}\n {item.text}\n \n );\n })}\n \n \n );\n};\n\nexport default imageListView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n getTelemetryObject,\n Heading,\n IComponentNodeProps,\n IModuleProps,\n INodeProps,\n ISingleSlideCarouselProps,\n ITelemetryContent,\n NodeTag,\n SingleSlideCarousel\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IInteractiveFeatureCollectionProps, ITitleData } from './interactive-feature-collection.props.autogenerated';\n\n/**\n * Interactive Feature Collection view props.\n */\nexport interface IInteractiveFeatureCollectionViewProps extends IInteractiveFeatureCollectionProps<{}> {\n title: React.ReactNode;\n interactiveFeatureCollectionHeading: INodeProps;\n interactiveFeatureCollectionContainer: IModuleProps;\n interactiveFeatureCollectionDesktopContainer: INodeProps;\n interactiveFeatureCollectionDesktopItems: React.ReactNode[];\n interactiveFeatureCollectionMobileContainer: INodeProps;\n interactiveFeatureCollectionMobileItems: React.ReactNode[];\n singleSlideCarouselComponentProps: INodeProps;\n singleSlideCarouselItemContainer: INodeProps;\n}\n\n/**\n *\n * InteractiveFeatureCollection component.\n * @extends {React.PureComponent>}\n */\nexport class InteractiveFeatureCollection extends React.PureComponent> {\n private readonly _telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n private static _createHeading(heading?: ITitleData): React.ReactNode | null {\n if (!heading || !heading.text || StringExtensions.isNullOrWhitespace(heading.text)) {\n return null;\n }\n return ;\n }\n\n private static _getFeatureItem(item: React.ReactNode, index: number, itemsCounter: number): React.ReactNode {\n const keyIndex = `interactive-feature-mosaic-item__${index}`;\n return (\n \n {React.cloneElement(item as React.ReactElement, { indexItem: index, itemCounter: itemsCounter, isMosaic: true })}\n \n );\n }\n\n public constructor(props: IInteractiveFeatureCollectionProps) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { resources } = this.props;\n const { title, className } = this.props.config;\n const interactiveItems = this.props.slots.interactiveFeatureItems;\n const itemsFeatureCounter = interactiveItems.length;\n const singleSlideCarouselComponentProps: IComponentNodeProps = {\n tag: SingleSlideCarousel,\n className: this.props.config.className ?? '',\n flipperPrevLabel: resources.flipperPrevious,\n flipperNextLabel: resources.flipperNext,\n parentId: this.props.id,\n telemetryContent: this._telemetryContent,\n vertical: false\n };\n const initItemsFeatureCounter = 0;\n const viewProps = {\n ...this.props,\n title: InteractiveFeatureCollection._createHeading(title),\n interactiveFeatureCollectionHeading: {\n className: 'ms-interactive-feature-collection__heading'\n },\n interactiveFeatureCollectionContainer: {\n moduleProps: this.props,\n className: classnames('ms-interactive-feature-collection', className)\n },\n interactiveFeatureCollectionDesktopContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-desktop'\n },\n interactiveFeatureCollectionMobileContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-mobile'\n },\n singleSlideCarouselComponentProps,\n singleSlideCarouselItemContainer: {\n tag: 'li' as NodeTag,\n className: 'ms-interactive-feature-collection-carousel',\n role: 'listitem'\n },\n interactiveFeatureCollectionMobileItems: this.props.slots.interactiveFeatureItems,\n interactiveFeatureCollectionDesktopItems:\n itemsFeatureCounter > initItemsFeatureCounter &&\n interactiveItems.map((item: React.ReactNode, index: number) =>\n InteractiveFeatureCollection._getFeatureItem(item, index, itemsFeatureCounter)\n )\n };\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n}\n\nexport default InteractiveFeatureCollection;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport React, { ReactNode } from 'react';\n\nimport { IInteractiveFeatureCollectionViewProps } from './interactive-feature-collection';\n\n/**\n * Feature Collection View.\n * @param props - Feature Collection view props.\n * @returns Feature Collection View.\n */\nexport const interactiveFeatureCollectionView: React.FC = props => {\n const {\n title,\n interactiveFeatureCollectionHeading,\n interactiveFeatureCollectionContainer,\n interactiveFeatureCollectionDesktopContainer,\n interactiveFeatureCollectionDesktopItems,\n interactiveFeatureCollectionMobileItems,\n interactiveFeatureCollectionMobileContainer,\n singleSlideCarouselComponentProps,\n singleSlideCarouselItemContainer\n } = props;\n return (\n \n {title}\n {interactiveFeatureCollectionDesktopItems}\n \n \n {interactiveFeatureCollectionMobileItems.map((tileItem: ReactNode, index: number) => {\n const keyIndex = `interactive-feature-carousel-item__${index}`;\n return (\n \n {tileItem}\n \n );\n })}\n \n \n \n );\n};\n\nexport default interactiveFeatureCollectionView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../interactive-feature-item.props.autogenerated';\n\n/**\n * Interactive Feature links.\n */\nexport interface IInteractiveFeatureLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n telemetryContent: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\n/**\n *\n * IInteractiveFeatureLinks component.\n * @extends {React.PureComponent}\n */\nexport class InteractiveFeatureCollectionLinks extends React.PureComponent {\n public render(): JSX.Element {\n const editableLinks = this._mapEditableLinks(this.props.links);\n return (\n
\n {editableLinks && ArrayExtensions.hasElements(editableLinks) ? (\n \n ) : null}\n
\n );\n }\n\n /**\n * IInteractiveFeatureLinks component.\n * @param linkdata - Link data.\n * @returns Editable links.\n */\n private readonly _mapEditableLinks = (linkdata?: ILinksData[]): Msdyn365.ILinksData[] | null => {\n if (!linkdata || !ArrayExtensions.hasElements(linkdata)) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n for (const link of linkdata) {\n // Construct telemetry attribute to render\n const payLoad = getPayloadObject('click', this.props.telemetryContent, '', '');\n const linkText = link.linkText ? link.linkText : '';\n payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.props.telemetryContent, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-interactive-feature-collection__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'button',\n additionalProperties: attributes,\n onClick: onTelemetryClick(this.props.telemetryContent, payLoad, linkText)\n };\n editableLinks.push(editableLink);\n }\n\n return editableLinks;\n };\n}\nexport default InteractiveFeatureCollectionLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { InteractiveFeatureCollectionLinks } from './components';\nimport { IHeadingData, IInteractiveFeatureItemProps } from './interactive-feature-item.props.autogenerated';\n\n/**\n * Interactive Feature Item view props.\n */\nexport interface IInteractiveFeatureItemViewProps extends IInteractiveFeatureItemProps<{}> {\n title: React.ReactNode;\n paragraph: React.ReactNode;\n image: React.ReactNode;\n links: React.ReactNode;\n featureItem: IModuleProps;\n isMosaic: boolean;\n indexItem?: number;\n itemCounter?: number;\n\n interactiveFeatureCollectionCarouselContainer: INodeProps;\n interactiveFeatureCollectionCarouselImage: INodeProps;\n interactiveFeatureCollectionCarouselContent: INodeProps;\n\n interactiveFeatureCollectionMosaicContainer: INodeProps;\n interactiveFeatureCollectionMosaicImage: INodeProps;\n interactiveFeatureCollectionMosaicDetails: INodeProps;\n}\n\n/**\n * Interactive Feature Item Extented props.\n */\nexport interface IInteractiveFeatureItemExtentedProps extends IInteractiveFeatureItemProps<{}> {\n isMosaic?: boolean;\n indexItem?: number;\n itemCounter?: number;\n}\n\n/**\n *\n * InteractiveFeatureItem component.\n * @extends {React.PureComponent}\n */\nexport class InteractiveFeatureItem extends React.PureComponent {\n private readonly _telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n public constructor(props: IInteractiveFeatureItemProps<{}>) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { indexItem, itemCounter, isMosaic } = this.props;\n const { heading, paragraph, image, links } = this.props.config;\n const featureItemLinks = links && ArrayExtensions.hasElements(links) && (\n \n );\n\n const viewProps = {\n ...this.props,\n indexItem,\n itemCounter,\n isMosaic: isMosaic ? isMosaic : false,\n title: this._createHeading(heading),\n paragraph: this._createParagraph(paragraph),\n image: this._renderImage(image),\n links: featureItemLinks,\n featureItem: {\n moduleProps: this.props,\n className: ''\n },\n interactiveFeatureCollectionCarouselContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-carousel__container'\n },\n interactiveFeatureCollectionCarouselImage: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-carousel__image'\n },\n interactiveFeatureCollectionCarouselContent: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-carousel__heading'\n },\n interactiveFeatureCollectionMosaicContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-mosaic',\n 'aria-label': heading?.text,\n tabindex: '0',\n role: 'group'\n },\n interactiveFeatureCollectionMosaicImage: {\n className: 'ms-interactive-feature-collection-mosaic__image'\n },\n interactiveFeatureCollectionMosaicDetails: {\n className: 'ms-interactive-feature-collection-mosaic__details'\n }\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Handles heading content change event.\n * @param event - Content editable event.\n */\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n /**\n * Handles paragraph content change event.\n * @param event - Content editable event.\n */\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.paragraph = event.target.value;\n };\n\n /**\n * Handles paragraph content change event.\n * @param linkIndex - Index of link in linkarray.\n * @returns Void.\n */\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent): void => {\n if (this.props.config.links?.[Number(linkIndex)]) {\n this.props.config.links[Number(linkIndex)].linkText = event.target.value;\n }\n };\n\n private _createParagraph(text?: Msdyn365.RichText): React.ReactNode | null {\n if (!text) {\n return null;\n }\n return (\n \n );\n }\n\n private _createHeading(heading?: IHeadingData): React.ReactNode | null {\n if (!heading) {\n return null;\n }\n if (StringExtensions.isNullOrWhitespace(heading.text)) {\n return null;\n }\n\n return (\n \n );\n }\n\n private _renderImage(item?: Msdyn365.IImageData, isAriaHiddenAttribute?: boolean): React.ReactNode | null {\n // Even if image.src is null, we render the Image component to render the fallback SVG\n const defaultImageSettings: Msdyn365.IImageSettings = {\n viewports: {\n xs: { q: 'w=328&h=459&m=6', w: 328, h: 459 },\n sm: { q: 'w=348&h=487&m=6', w: 348, h: 487 },\n md: { q: 'w=650&h=366&m=6', w: 650, h: 366 },\n lg: { q: 'w=650&h=366&m=6', w: 650, h: 366 },\n xl: { q: 'w=650&h=366&m=6', w: 650, h: 366 }\n },\n lazyload: true\n };\n const verifiedImageSettings = item?.imageSettings?.viewports ? item.imageSettings : defaultImageSettings;\n return (\n \n );\n }\n}\n\nexport default InteractiveFeatureItem;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IInteractiveFeatureItemViewProps } from './interactive-feature-item';\n\n/**\n * Enumerator used to make some calculations to set the proper classnames\n * using modular calculations to see if they are in a right or left column or on first or last row.\n */\nenum MagicNumber {\n modularDivisor = 4,\n caseNumberZero = 0,\n caseNumberOne = 1,\n caseNumberTwo = 2\n}\n\n/**\n * Feature Item View.\n * @param thisProps - Feature Item view props.\n * @param indexItem - Feature Item view props.\n * @param itemCounter - Feature Item view props.\n * @returns Feature item View.\n * @extends {} InteractiveFeatureItem\n */\nconst renderMosaic = (thisProps: IInteractiveFeatureItemViewProps, indexItem?: number, itemCounter?: number): JSX.Element | null => {\n const {\n title,\n paragraph,\n image,\n links,\n interactiveFeatureCollectionMosaicContainer,\n interactiveFeatureCollectionMosaicImage,\n interactiveFeatureCollectionMosaicDetails\n } = thisProps;\n const indexAux = indexItem ? indexItem + MagicNumber.caseNumberOne : MagicNumber.caseNumberOne;\n const itemCounterAux = itemCounter ? itemCounter : MagicNumber.caseNumberZero;\n const modularAux = indexAux % MagicNumber.modularDivisor;\n const firstRow = indexAux <= MagicNumber.caseNumberTwo ? 'firstRow' : '';\n const lastRow =\n itemCounterAux && (indexAux === itemCounterAux || indexAux === itemCounterAux - MagicNumber.caseNumberOne) ? 'lastRow' : '';\n const onCornerRight = modularAux === MagicNumber.caseNumberZero ? 'item-corner-right' : '';\n const onCornerLeft = modularAux === MagicNumber.caseNumberOne ? 'item-corner-left' : '';\n const containerClasses = classnames('ms-interactive-feature-collection-mosaic', onCornerLeft, onCornerRight, firstRow, lastRow);\n\n return (\n \n {image}\n \n {title}\n {paragraph}\n {links}\n \n \n );\n};\n\n/**\n * Feature Item View.\n * @param thisProps - Feature Item view props.\n * @returns Feature item View.\n * @extends {} InteractiveFeatureItem\n */ const renderCarousel = (thisProps: IInteractiveFeatureItemViewProps): JSX.Element | null => {\n const {\n title,\n paragraph,\n image,\n links,\n interactiveFeatureCollectionCarouselContainer,\n interactiveFeatureCollectionCarouselImage,\n interactiveFeatureCollectionCarouselContent\n } = thisProps;\n return (\n \n {image}\n \n {title}\n {paragraph}\n {links}\n \n \n );\n};\n\n/**\n * Feature Item View.\n * @param props - Feature Item view props.\n * @returns Feature item View.\n * @extends {} InteractiveFeatureItem\n */\nexport const FeatureItemViewComponent: React.FC = props => {\n const { isMosaic, featureItem, indexItem, itemCounter } = props;\n if (isMosaic) {\n return <>{renderMosaic(props, indexItem, itemCounter)};\n }\n return {renderCarousel(props)};\n};\n\nexport default FeatureItemViewComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/// \n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { OrgUnitLocation } from '@msdyn365-commerce/retail-proxy';\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classname from 'classnames';\nimport { observable, reaction, when } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IMapData } from './map.data';\nimport { IMapProps, IPushpinOptionsData } from './map.props.autogenerated';\n\n/**\n * Header Interface.\n */\nexport interface IHeader {\n headerProps: INodeProps;\n heading: React.ReactNode;\n}\n\n/**\n * MapViewProps Interface.\n */\nexport interface IMapViewProps extends IMapProps {\n ModuleProps: IModuleProps;\n Header: IHeader;\n MapProps: INodeProps;\n Map: Microsoft.Maps.Map | undefined;\n}\n\n/**\n *\n * Map component.\n * @extends {React.Component>}\n */\n@observer\nclass Map extends React.PureComponent> {\n @observable public map: Microsoft.Maps.Map | undefined;\n\n private readonly mapRef: React.RefObject = React.createRef();\n\n public constructor(props: IMapProps) {\n super(props);\n }\n\n public componentDidMount(): void {\n const {\n context: {\n telemetry,\n actionContext: {\n requestContext: { channel }\n }\n }\n } = this.props;\n\n if (channel && !channel.BingMapsApiKey) {\n telemetry.error('BingMapsApiKey is missing.');\n return;\n }\n\n if (channel && !channel.BingMapsEnabled) {\n telemetry.error('Map is disabled from HQ.');\n return;\n }\n\n if (this.props.data.storeSelectorStateManager.result?.isMapApiLoaded) {\n this._initMap();\n this._updateMap();\n }\n\n when(\n () => !!this.props.data.storeSelectorStateManager.result?.setMapModuleLoaded,\n () => {\n this.props.data.storeSelectorStateManager.result?.setMapModuleLoaded(true);\n }\n );\n\n reaction(\n () => this.props.data.storeSelectorStateManager.result?.loadMapApi,\n () => {\n this.props.data.storeSelectorStateManager.result?.loadMapApi({\n key: channel?.BingMapsApiKey,\n lang: this.props.context.actionContext.requestContext.locale,\n market: this.props.context?.actionContext?.requestContext?.channel?.ChannelCountryRegionISOCode\n });\n }\n );\n\n reaction(\n () => this.props.data.storeSelectorStateManager.result?.isMapApiLoaded,\n () => {\n this._initMap();\n }\n );\n\n reaction(\n () => {\n return [\n this.props.data.storeSelectorStateManager.result?.context?.orgUnitStoreInformation,\n this.props.data.storeSelectorStateManager.result?.selectedStoreLocationId,\n this.map\n ];\n },\n () => {\n this._updateMap();\n }\n );\n }\n\n public render(): JSX.Element | null {\n const {\n config: { heading, className },\n data: {\n storeSelectorStateManager: { result: storeSelectorStateManager }\n }\n } = this.props;\n\n const shouldDisplayMap = storeSelectorStateManager?.listMapViewState.displayMap;\n\n const viewProps: IMapViewProps = {\n ...this.props,\n ModuleProps: {\n tag: 'div',\n moduleProps: this.props,\n className: classname('ms-map', { show: shouldDisplayMap }, className)\n },\n Header: {\n headerProps: { className: 'ms-map__header' },\n heading: heading?.text && (\n \n )\n },\n MapProps: {\n tag: 'div',\n className: 'ms-map__body',\n ref: this.mapRef\n },\n Map: this.map\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Method to be called on heading change.\n * @param event -Content Edit Event.\n */\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n /**\n * Initialize the map.\n */\n private readonly _initMap = () => {\n const {\n context: {\n actionContext: {\n requestContext: { channel }\n }\n },\n data: {\n storeSelectorStateManager: { result: storeSelectorStateManager }\n }\n } = this.props;\n if (storeSelectorStateManager?.isMapApiLoaded) {\n this.map = new Microsoft.Maps.Map(this.mapRef.current as HTMLElement, {\n credentials: channel?.BingMapsApiKey,\n pushpinAccessible: true\n });\n Microsoft.Maps.Events.addHandler(this.map, 'click', async () => {\n await storeSelectorStateManager.setSelectedStoreLocationId(undefined);\n });\n }\n };\n\n /**\n * Update the map.\n */\n private readonly _updateMap = () => {\n const pushpinOptions = this.props.config.pushpinOptions;\n const storeSelectorStateManager = this.props.data.storeSelectorStateManager?.result;\n const orgUnitStoreInformation = storeSelectorStateManager?.context?.orgUnitStoreInformation;\n const selectedStoreLocationId = storeSelectorStateManager?.selectedStoreLocationId;\n\n if (this.map && orgUnitStoreInformation) {\n let mapLocation: OrgUnitLocation | undefined;\n this.map.entities.clear();\n const pushpins: Microsoft.Maps.IPrimitive[] = [];\n\n const storeLocationList = orgUnitStoreInformation.filter(store => store.OrgUnitAvailability !== undefined);\n\n for (const [index, unitStoreInfo] of storeLocationList.entries()) {\n const storeLocation = unitStoreInfo.OrgUnitAvailability?.OrgUnitLocation;\n\n if (storeLocation?.Latitude && storeLocation.Longitude) {\n const isSelectedLocation = selectedStoreLocationId === storeLocation.OrgUnitNumber;\n const options = this._getPushpinOptions(isSelectedLocation, index, pushpinOptions);\n const pushpin = new Microsoft.Maps.Pushpin(\n new Microsoft.Maps.Location(storeLocation.Latitude, storeLocation.Longitude),\n options\n );\n\n Microsoft.Maps.Events.addHandler(pushpin, 'click', () => {\n this.handleClickEvent(storeLocation.OrgUnitNumber);\n });\n isSelectedLocation ? pushpins.unshift(pushpin) : pushpins.push(pushpin);\n\n if (isSelectedLocation) {\n mapLocation = storeLocation;\n }\n }\n }\n\n if (mapLocation) {\n const currentLocation = new Microsoft.Maps.Location(mapLocation.Latitude, mapLocation.Longitude);\n this.map.setView({ center: currentLocation });\n } else {\n // Create a LocationRect from array of pushpins and set the map view.\n this.map.setView({\n bounds: Microsoft.Maps.LocationRect.fromShapes(pushpins)\n });\n }\n\n this.map.setOptions({ pushpinAccessible: true });\n this.map.entities.push(pushpins);\n }\n };\n\n /**\n * Handle click event.\n * @param orgUnitNumber - Organization unit number.\n */\n private readonly handleClickEvent = (orgUnitNumber: string | undefined): void => {\n const storeSelectorStateManager = this.props.data.storeSelectorStateManager.result;\n storeSelectorStateManager?.setSelectedStoreLocationId(undefined);\n if (orgUnitNumber) {\n setTimeout(() => {\n storeSelectorStateManager?.setSelectedStoreLocationId(orgUnitNumber);\n // eslint-disable-next-line @typescript-eslint/no-magic-numbers -- Time out.\n }, 500);\n }\n };\n\n /**\n * Get the pushpin option.\n * @param isSelectedLocation - Is selected location.\n * @param index - Index.\n * @param pushpinOptions - PushpinOptions.\n * @returns - The pushpin options.\n */\n private readonly _getPushpinOptions = (isSelectedLocation: boolean, index: number, pushpinOptions?: IPushpinOptionsData) => {\n const text = pushpinOptions?.showIndex ? (index + 1).toString() : undefined;\n\n const size = pushpinOptions?.size || 1;\n const color = isSelectedLocation ? pushpinOptions?.selectionColor || pushpinOptions?.color : pushpinOptions?.color;\n const icon = this._getSvgIcon(size, color, text);\n\n return {\n // Fallback if icon doesn't render properly\n color: isSelectedLocation ? pushpinOptions?.selectionColor : pushpinOptions?.color,\n icon\n };\n };\n\n private readonly _getSvgIcon = (size: number, color?: string, text?: string) => {\n const baseValue: number = 32;\n return `\n \n ${text ? `${text}` : ''}\n `;\n };\n}\n\nexport default Map;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IHeader, IMapViewProps } from './map';\n\n/**\n * Render the heading.\n * @param param0 -- Heading props.\n * @param param0.headerProps -- Heading Props.\n * @param param0.heading -- Heading Node.\n * @returns -- Returns the node.\n */\nconst MapHeader: React.FC = ({ headerProps, heading }) => {heading};\n\n/**\n * Renders the map view props.\n * @param param0 -- Map view props.\n * @param param0.ModuleProps -- Module props.\n * @param param0.Header -- Header props.\n * @param param0.MapProps -- Map props.\n * @returns -- Returns the map module.\n */\nconst MapView: React.FC = ({ ModuleProps, Header, MapProps }) => (\n \n {Header && }\n \n \n);\n\nexport default MapView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getRichTextHtml } from '@msdyn365-commerce/core';\nimport * as React from 'react';\n\n/**\n * Product specification table row.\n */\nexport interface IProductSpecificationTableRow {\n productName?: string;\n cellData?: React.ReactNode;\n className?: string;\n}\n\n/**\n * Product specification table row component.\n * @param props - For product specification table row.\n * @param props.productName - Product name.\n * @param props.cellData - Cell data.\n * @param props.className - Class name.\n * @returns - Returns JSX element.\n */\nexport const ProductSpecificationTableRow: React.FC = ({ productName, cellData, className }) => (\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 * as Msdyn365 from '@msdyn365-commerce/core';\nimport { AttributeValue } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { Drawer, IModuleProps, INodeProps, Module } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { reaction } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { AttributesForSelectedVariantInput, getAttributesForSelectedVariant } from '../..';\nimport { ProductSpecificationTableRow } from './components/product-specification-table-stucture';\nimport { IProductSpecificationData } from './product-specification.data';\nimport { displayStyle, IProductSpecificationProps } from './product-specification.props.autogenerated';\n\n/**\n * Maintain Drawer State.\n */\nexport interface IProductSpecificationState {\n isDrawerOpen: boolean;\n drawerListId: number | undefined;\n}\n\n/**\n * Product specification view props.\n */\nexport interface IProductSpecificationViewProps extends IProductSpecificationProps<{}> {\n ProductSpecification: IModuleProps;\n ProductSpecificationTableProps: INodeProps;\n ProductSpecificationTableBodyProps: INodeProps;\n productSpecificationResult?: (JSX.Element | null)[];\n title?: React.ReactNode;\n isAccrodion?: boolean;\n handleText?(event: Msdyn365.ContentEditableEvent): void;\n}\n\n/**\n * Check for display style either accordion or table.\n */\nexport interface IProductSpecificationExtentedProps extends IProductSpecificationProps {\n displayStyle?: displayStyle;\n}\n\n/**\n *\n * ProductSpecification component.\n * @extends {React.Component>}\n */\n@observer\nclass ProductSpecification extends React.Component {\n public constructor(props: IProductSpecificationExtentedProps) {\n super(props);\n this.state = {\n isDrawerOpen: false,\n drawerListId: undefined\n };\n }\n\n public async componentDidMount(): Promise {\n const { context, data, telemetry } = this.props;\n const catalogId = Msdyn365.getCatalogId(this.props.context.request);\n reaction(\n () => (data.product.result ? data.product.result.RecordId : null),\n () => {\n if (context && data.product.result) {\n const actionInput = new AttributesForSelectedVariantInput(\n data.product.result.RecordId,\n\n +context.actionContext.requestContext.apiSettings.channelId,\n data.product.result,\n catalogId\n );\n\n getAttributesForSelectedVariant(actionInput, this.props.context.actionContext).catch((error: Error) => {\n telemetry.error(error.message);\n telemetry.debug('Unable to update attributes for Product');\n telemetry.error(error.message);\n });\n }\n }\n );\n }\n\n public shouldComponentUpdate(nextProps: IProductSpecificationExtentedProps, nextState: IProductSpecificationState): 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 let data: IProductSpecificationData;\n try {\n data = this.props.data;\n } catch (error) {\n this.props.telemetry.error(`Something went wrong ------${error}`);\n return
{error}
;\n }\n\n if (!data.productSpecificationData.result || data.productSpecificationData.result.length <= 0) {\n this.props.telemetry.error('Product specification content is empty, module wont render.');\n return null;\n }\n\n const { heading, className } = this.props.config;\n const { productSpecificationData } = this.props.data;\n const isAccrodion = this.props.config.displayStyle === displayStyle.accordion;\n const viewProps = {\n ...this.props,\n handleText: this.handleHeadingChange,\n ProductSpecification: {\n moduleProps: this.props,\n className: classnames('ms-product-specification', className)\n },\n ProductSpecificationTableProps: isAccrodion\n ? {\n moduleProps: this.props,\n className: classnames('ms-product-specification__accordion', className)\n }\n : {\n className: classnames('ms-product-specification__table table-striped table-bordered'),\n tag: 'table'\n },\n isAccrodion,\n ProductSpecificationTableBodyProps: isAccrodion\n ? {}\n : {\n className: '',\n tag: 'tbody'\n },\n title: heading?.text && (\n \n ),\n\n productSpecificationResult: isAccrodion\n ? productSpecificationData && this._createDrawerBody(data)\n : productSpecificationData && this._createTableBody(data)\n } as IProductSpecificationViewProps;\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Handle Heading Text Change.\n * @param event - Current event.\n */\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n private _createTableBody(content: IProductSpecificationData): (JSX.Element | null)[] {\n return content.productSpecificationData.result!.map((product, index) => {\n const cellData: JSX.Element | null = this._renderProductCell(product);\n\n if (!cellData) {\n return null;\n }\n\n return (\n \n );\n });\n }\n\n private _createDrawerBody(content: IProductSpecificationData): (JSX.Element | null)[] {\n const accordionItemContainer: IModuleProps = {\n moduleProps: this.props,\n className: 'ms-product-specification-title'\n };\n return content.productSpecificationData.result!.map(product => {\n const cellData: JSX.Element | null = this._renderProductCell(product);\n if (!cellData) {\n return null;\n }\n return (\n \n \n
{cellData}
\n \n
\n );\n });\n }\n\n private readonly _toggle = (drawerListId: number | undefined) => (): void => {\n if (this.state.drawerListId !== drawerListId) {\n this.setState({ drawerListId, isDrawerOpen: true });\n } else {\n this.setState({ drawerListId: undefined, isDrawerOpen: false });\n }\n };\n\n private _renderProductCell(product: AttributeValue): JSX.Element | null {\n switch (product.DataTypeValue) {\n case 0: // None\n // Return span here instead of null so the row still shows\n return ;\n case 1: // Currency\n return this._renderCurrencyCell(product);\n case 2: // DateTime\n return this._renderDateTimeCell(product);\n case 3: // Decimal\n return this._renderDecimalCell(product);\n case 4: // Integer\n return this._renderIntegerCell(product);\n case 5: // Text\n return this._renderTextCell(product);\n case 6: // TrueFalse\n return this._renderTrueFalseCell(product);\n case 40: // Video\n this.props.telemetry.warning('Got video specification type, not supported yet so skipping line');\n return null;\n case 41: // Image\n this.props.telemetry.warning('Got image specification type, not supported yet so skipping line');\n return null;\n default:\n this.props.telemetry.warning(`Got unknown specification type ${product.DataTypeValue} so skipping line`);\n return null;\n }\n }\n\n private _renderCurrencyCell(product: AttributeValue): JSX.Element | null {\n if (product.CurrencyValue !== null && product.CurrencyValue !== undefined) {\n return (\n \n {product.CurrencyCode}\n {product.CurrencyValue}\n \n );\n }\n\n return null;\n }\n\n private _renderDateTimeCell(product: AttributeValue): JSX.Element | null {\n if (product.DateTimeOffsetValue?.toUTCString) {\n return {product.DateTimeOffsetValue.toUTCString()};\n }\n\n return null;\n }\n\n private _renderIntegerCell(product: AttributeValue): JSX.Element | null {\n if (product.IntegerValue !== null && product.IntegerValue !== undefined) {\n return {product.IntegerValue};\n }\n\n return null;\n }\n\n private _renderDecimalCell(product: AttributeValue): JSX.Element | null {\n if (product.FloatValue !== null && product.FloatValue !== undefined) {\n return {product.FloatValue};\n }\n\n return null;\n }\n\n private _renderTextCell(product: AttributeValue): JSX.Element | null {\n if (product.TextValue !== null && product.TextValue !== undefined) {\n // eslint-disable-next-line react/no-danger\n return ;\n }\n\n return null;\n }\n\n private _renderTrueFalseCell(product: AttributeValue): JSX.Element | null {\n // TODO 20369885 setting to default value is needed to work around a platform bug where\n // config string value does not get its default value.\n if (product.BooleanValue) {\n return {this.props.resources.trueValueText ? this.props.resources.trueValueText : 'Yes'};\n }\n return {this.props.resources.falseValueText ? this.props.resources.falseValueText : 'No'};\n }\n}\n\nexport default ProductSpecification;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ArrayExtensions, ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IProductSpecificationViewProps } from './product-specification';\n\nconst ProductSpecificationView: React.FC = props => {\n const { ProductSpecification, ProductSpecificationTableProps, ProductSpecificationTableBodyProps, productSpecificationResult } = props;\n const rowdata =\n productSpecificationResult &&\n ArrayExtensions.hasElements(productSpecificationResult) &&\n productSpecificationResult.filter(row => !ObjectExtensions.isNullOrUndefined(row));\n\n return rowdata && ArrayExtensions.hasElements(rowdata) ? (\n \n {props.title}\n \n {rowdata}\n \n \n ) : null;\n};\n\nexport default ProductSpecificationView;\n"],"names":["renderLabel","name","price","rating","ratingAriaLabel","roundedRating","toFixed","format","getRatingAriaLabel","props","allowBack","context","data","imageSettings","telemetryContent","product","productUrl","getProductPageUrlSync","Name","RecordId","actionContext","undefined","srcUrl","URL","request","apiSettings","baseUrl","queryString","search","href","pathname","updateProductUrl","payLoad","getPayloadObject","toString","attribute","getTelemetryAttributes","basePrice","BasePrice","toLocaleString","adjustedPrice","Price","duration","ExtensionProperties","filter","i","Key","Value","IntegerValue","tan","DecimalValue","taeg","fromAmountSA","legalNotice","StringValue","React","onClick","onTelemetryClick","cultureFormatter","formatCurrency","AverageRating","className","gridSettings","imageUrl","altText","img","src","imageProps","cropFocalRegion","Image","loadFailureBehavior","renderProductPlacementImage","PrimaryImageUrl","attributes","AttributeValues","forEach","attribut","includes","KeyName","push","TextValue","map","attr","index","key","renderAttributes","app","config","enableFinancing","taxOutOfPriceText","description","Description","AccordionItem","constructor","super","moduleClassName","handleHeadingChange","event","this","accordionItemTitle","target","value","_onToggle","bind","getTelemetryObject","telemetryPageName","friendlyName","telemetry","shouldComponentUpdate","nextProps","render","slots","renderView","accordionExpandedStateResult","accordionExpandedState","result","expanded","isAllExpanded","isExpandedOnInitialLoad","AccordionItemContainer","moduleProps","classnames","AccordionItemContent","drawer","tag","ControlledDrawer","toggleButtonText","collapseProps","isOpen","onToggle","onTextChange","requestContext","accordionSlots","state","interactionStyle","accordionState","update","createAccordionStateInput","observer","_renderAccordionItemContent","items","length","item","Module","Node","accordionItemContent","Accordion","expandAllButtonRef","collapseAllButtonRef","heading","text","_onExpandAll","_onCollapseAll","isDisabled","headingComponent","Msdyn365","editProps","onEdit","accordionViewProps","AccordionContainer","HeaderSection","HeadingWrapper","accordianButtonsContainer","accordionButtons","_renderAccordionButton","accordionItemContainer","accordionItems","_getAccordionItem","resources","contentAction","etext","TelemetryConstant","attributeExpandAll","attributeCollapseAll","showToggleAll","disabled","expandAllText","ref","toggleAllSeparator","collapseAllText","error","setState","setTimeout","current","focus","AccountAddressTile","handleLinkTextChange","linkIndex","links","linkText","accountAddressTileDescriptionForSingleAddress","accountAddressTileDescriptionForMultipleAddresses","address","addressCount","accountAddressTileDescription","viewProps","LinksComponent","DescriptionComponent","_mapEditableLinks","linkdata","editableLinks","link","editableLink","ariaLabel","linkUrl","destinationUrl","openInNewTab","role","additionalProperties","AccountCustomerBalance","_showRequestStatementModal","isStatementRequestModalOpen","_toggleModal","_toggleDropdown","isStatementRequestAdminDropdownOpen","_updateFromDate","newFromDate","statementRequestFromDateString","_updateToDate","newToDate","statementRequestToDateString","_adminShowRequestStatementModal","isFullOrg","statementRequestFullOrg","_requestStatement","customer","customerInformation","B2BUserId","b2bUserInformation","statementRequest","FromDate","Date","ToDate","IsForFullOrganization","RequestedUserId","RequestingUserEmail","Email","DeliveryTypeValue","BusinessPartnerOperationDeliveryType","callerContext","BusinessPartnerUsersDataActions","account","creditSummarySectionHeading","accountSectionHeading","backToShoppingText","customerSincePrefix","availableCreditLabel","balanceOwedLabel","creditExcessLabel","requestStatementButtonLabel","modalHeaderLabel","sendToEmailLabel","fromDateLabel","toDateLabel","submitRequestLabel","cancelLabel","myAccountStatementLabel","fullOrganizationLabel","modalAriaLabel","accountNumber","AccountNumber","createdOn","_formatJoinDate","CreatedDateTime","FirstName","LastName","customerCredit","customerAccountBalance","excess","InvoiceAccountCreditLimit","CreditLimit","Balance","InvoiceAccountBalance","creditExcess","_formatCurrency","availableCredit","balanceOwed","backLink","emailAddress","isB2BUser","IsB2b","actionBar","IsB2bAdmin","AdminRequestStatementButton","onRequestStatement","onToggleDropdown","myUserAccountLabel","isDropdownShowing","ActionBar","Heading","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","currency","currencyCode","date","Intl","DateTimeFormat","locale","month","day","year","__decorate","computed","creditSummaryLabels","creditSummaryValues","Button","buttonReference","onSelectCustomerAccount","onSelectFullOrg","popoverReference","requestStatementDropdownString","Random","innerRef","id","Popover","placement","onChangeFromDateEvent","onChangeToDateEvent","onBlurFromDate","ObjectExtensions","onBlurToDate","Modal","horizontalPosition","verticalPosition","autoFocus","fade","ModalHeader","ModalBody","htmlFor","type","onBlur","onChange","max","min","ModalFooter","AccountGenericTile","AccountProfileEdit","onTextBoxChange","toLowerCase","givenName","surname","emailRegex","_onInit","_prePopulateData","_updateErrorMessage","initializationTimer","setInterval","_isInitializationSuccessful","clearInterval","window","isInitialized","invalidEmailAddressError","obj","PRE","_htmlDecode","ID","PAT","PAT_DESC","message","required_field","requiredFieldMissingError","verifying_blurb","loadingMessage","Object","assign","EmailRegex","componentDidMount","componentDidUpdate","nextState","viewState","isShowLoading","accountProfileEdit","loading","modal","modalBody","icon","AccountProfileEditLoadingIconComponent","AccountProfileEditLoadingMessageComponent","defaultAADConainer","style","display","aadConainer","accountProfileEditLocalAccount","_renderLocalAccount","str","e","document","createElement","innerHTML","childNodes","nodeValue","localAccount","_renderInput","firstNameLabelText","firstNameMaxLength","lastNameLabelText","lastNameMaxLength","errorMessage","AccountProfileEditErrorComponent","requiredFieldMissingSummaryError","fieldIncorrectError","buttonsWrapper","buttons","AccountProfileEditButtonComponent","saveButtonAriaLabel","saveButtonText","cancelButtonText","verificationSuccessModal","verificationSuccessModalMessage","showEmail","emailAddressLabelText","labelText","maxLength","pattern","wrapper","AccountProfileEditLabelComponent","forId","input","AccountProfileEditInputComponent","observable","AccountProfileEditItem","AccountProfileEditLoading","button","LocalAccount","errorClassName","GetMaxLength","parsedMaxLength","Number","parseInt","isNaN","AccountWelcomeTile","accountInfo","accountInformation","AccountWishlistTile","accountWishlistTileDescription","wishlists","wishlistsCount","CommerceListLines","RequestsTableColumnHeader","getUserName","StringExtensions","UserFirstName","UserLastName","b2bRequestsNameDisplay","replace","formatDate","getDetails","Details","requestDetails","accountStatementStartDateTime","AccountStatementStartDateTime","accountStatementEndDateTime","AccountStatementEndDateTime","invoiceId","InvoiceId","TypeValue","b2bRequestsAccountStatementDetails","b2bRequestsInvoiceCopyDetails","getDisplayFriendlyTypeValue","typeValue","b2bRequestsTypeCreateProspect","b2bRequestsTypeAddUser","b2bRequestsTypeDeleteUser","b2bRequestsTypeEditUser","b2bRequestsTypeRequestAccountStatement","b2bRequestsTypeRequestInvoiceCopy","b2bRequestsTypeUnknown","getDisplayFriendlyStatusValue","statusValue","b2bRequestsStatusProcessed","b2bRequestsStatusError","b2bRequestsStatusRequested","createTableProps","tableProps","tableData","operationRequests","ArrayExtensions","row","b2bRequestsTypeColumn","TableDataType","b2bRequestsRequestDateColumn","b2bRequestsDescriptionColumn","b2bRequestsUserColumn","b2bRequestsStatusColumn","StatusValue","isSelected","headings","isMobile","mobileExcludedColumns","sortable","columnSortAriaLabel","rows","editLinkText","deleteLinkText","viewLinkText","enableToModify","actionLinkText","showCheckBoxes","isSortable","showPagination","minifyActions","excludedColumns","paginationProperty","skipCount","query","skip","itemPerPage","prevText","b2bRequestsPreviousText","nextText","b2bRequestsNextText","paginationText","url","reqContext","MsDyn365","location","requestUrl","isSingleSelectOnly","onDelete","onView","businessUserSelectCheckBoxAriaLabelText","sortByAscending","sortByDescending","B2bRequestsTable","Table","B2bRequestsStatus","renderHeader","headingData","itemCount","getItemNumberDisplayString","_retrieveExcludedColumns","renderTable","b2bRequestsNumberOfItemsSingular","b2bRequestsNumberOfItems","variant","VariantType","b2bRequestsStatus","table","defaultClassName","B2bRequestsTileLinks","B2bRequestsTile","b2bRequestsTile","successClassName","PasswordResetVerification","getValue","v1Value","v2Value","templateVersion","passwordResetVerification","PasswordResetVerificationLoadingIconComponent","PasswordResetVerificationLoadingMessageComponent","passwordResetVerificationLocalAccount","verificationControlWrapper","verificationCodeLabelText","successMessage","PasswordResetVerificationSuccessComponent","verificationCodeSendSuccess","emailAddressVerifiedSuccess","PasswordResetVerificationErrorComponent","retryError","retryNotAllowedError","throttledError","codeExpiredError","serverError","invalidEmailError","verificationButtonsWrapper","verificationButtons","PasswordResetVerificationButtonComponent","sendCodeButtonAriaLabel","sendCodeButtonText","verifyCodeButtonAriaLabel","verifyCodeButtonText","resendCodeButtonAriaLabel","resendCodeButtonText","changeEmailButtonAriaLabel","changeEmailButtonText","continueButtonAriaLabel","continueButtonText","cancelButtonAriaLabel","cssClassName","PasswordResetVerificationLabelComponent","PasswordResetVerificationInputComponent","PasswordResetVerificationItem","PasswordResetVerificationLoading","SignUp","handleParagraphChange","disclaimer","isEmailVerificationRequried","VERIFY","isGivenNameVerificationRequried","isSurnameVerificationRequried","newPasswordRegex","reenterPasswordRegex","UX_INPUT_TYPE","invalidPasswordError","errorMessages","PasswordRegex","signUp","SignUpLoadingIconComponent","SignUpLoadingMessageComponent","signUpLocalAccount","passwordLabelText","confirmPasswordLabelText","emailVerification","isRequired","buttonWrapper","SignUpButtonComponent","SignUpSuccessComponent","SignUpErrorComponent","givenNameVerification","surnameVerification","signUpButtonArialabel","signUpButtonText","cancelButtonArialabel","passwordEntryMismatchError","SignUpLabelComponent","SignUpInputComponent","SignUpItem","SignUpEmailVerification","SignUpGivenNameVerificationComponent","SignUpSurnameVerificationComponent","SignUpLoading","Link","noclick","itemProp","content","Separator","separator","Breadcrumb","_pageType","urlTokens","pageType","_getRootLink","root","_getCustomBreadcrumbLinks","itemPosition","keyIndex","_getCategoryHierarchy","categoryHierarchy","_getFriendlyName","NameTranslations","Url","nameTranslations","nameTranslation","find","Language","Text","_getPDPLinks","categoryPaths","hideProductName","_goBack","history","back","_getPDPBackButton","referrer","backToResultsText","rootLink","breadcrumbLinks","backButtonComponent","breaCrumbType","breadcrumbType","linkSeparator","breadcrumbViewProps","BreadcrumbContainer","BreadcrumbList","BreadcrumbListItem","backButton","FormType","InputType","InputID","renderInputSection","inputs","asteriskAfterLabel","onInputChange","element","customClass","maxChars","fieldReference","FormLabel","asteriskText","FormFieldError","FormInput","placeholder","BusinessOrganizationList","BusinessFormDefaultInputs","businessUserFirstNameLabelText","businessUserLastNameLabelText","businessUserEmailAddressLabelText","SpendingLimit","businessUserSpendingLimitLabelText","delayFocus","formChildReference","userFormEditReference","userFormDeleteReference","_handleAddUserButtonClicked","newForm","formItems","newUser","isFormActive","formType","Add","referenceBack","addUserButtonReference","hasFormError","hasActionError","selectedUserData","_handleAddEditFormSaveButton","async","updatedUser","_createBusinessPartner","Edit","editOrganizationUser","EditOrganizationUserInput","then","reload","catch","trace","addOrganizationUser","AddOrganizationUserInput","parseFloat","_handleEditIcon","userData","possibleName","cell","fullName","lastSpaceIndex","lastIndexOf","firstName","substring","lastName","possibleCell","dataCell","user","_handleDeleteIcon","displayedUserData","Remove","_handleViewDetails","View","_handleRemoveUserButton","deleteUserData","deleteOrganizationUser","DeleteOrganizationUserInput","None","callbackRemoveButton","_onInputChange","prev","refresh","isReady","_isFormReady","formItem","match","_formatPrice","_getCurrentUrl","_getViewport","device","Type","innerWidth","xs","w","sm","md","lg","_toggleStatementRequestDropdown","currentUser","users","_getB2BUserId","_closeStatementRequestModal","statementRequestButtonReference","_onSelectRow","records","selectedRow","rowProps","Status","_viewport","_updateViewport","submitButtonReference","addedReference","businessUserSelectedUserDisplayName","addEventListener","componentWillUnmount","removeEventListener","businessUserAddUserButtonText","businessUserLoadingMessage","businessUserEmptyListMessage","businessUserErrorGettingUsersMessage","userAccountStatementLabel","statementRequestModalHeaderLabel","hasUsers","addUserAttributes","status","errorProps","OrganizationUserList","moduleContainer","headingTag","addUserButton","noUsersText","modalState","organizationListTable","_createTableProps","toggleModal","form","_renderUserForm","_renderUserDetails","requestAccountStatementButton","selectedUserName","tableSort","paginationItemPerPage","businessUserPaginationNextButtonText","businessUserPaginationPreviousButtonText","businessUserEditButtonText","businessUserViewUserButtonText","businessUserDeleteButtonText","businessUserActionButtonText","businessUserPaginationAriaLabel","_createTableItems","editLinkTooltip","deleteLinkTooltip","viewLinkTooltip","resourcePrefix","tableAriaLabel","tableTabIndex","formatPrice","checkBoxCallback","businessUserActiveStatusText","businessUserPendingStatusText","businessUserRemovedStatusText","usersList","statusString","FullName","buttonReferences","edit","delete","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","modalFooter","_renderModal","BusinessUserDetails","userFullName","keys","headingSection","bodySection","footerSection","wrapClassName","applicationNode","ButtonList","formProps","_getForm","_renderTextBlock","textBlocks","_renderSocialShare","socialShare","_renderCartAndActions","addToCart","addToOrderTemplate","addToWishlist","errorBlock","_renderConfigure","configure","ContainerProps","dropdowns","_renderConfigureDropdown","dropdown","LabelContainerProps","errors","select","_renderFindInStore","findInStore","storeSelector","productPickupOptionList","onChangeHandler","callbacks","newValue","updateQuantity","_renderQuantity","quantityComponent","extentionResources","quantityLimitsMessages","quantity","IncrementalQuantity","currentCount","inputQuantityAriaLabel","decrementButtonAriaLabel","incrementButtonAriaLabel","minQuantityText","maxQuantityText","_renderKeyInPrice","keyInPrice","_renderShopSimilarItem","shopSimilarItem","ModuleProps","MediaGalleryContainerProps","ProductInfoContainerProps","title","inventoryLabel","shopSimilarLook","shopSimilarDescription","unitOfMeasure","mediaGallery","bulkPurchaseLink","FooterCategory","viewprops","categories","FooterList","FooterListItem","FooterCategoryView","category","ImageList","images","paragraph","_renderImageListItems","imageList","defaultImageSettings","viewports","q","h","xl","lazyload","disableLazyLoad","image","imageLink","imageLinkText","imageLinkAriaLabel","linkAltText","linkAriaLabel","imageListTitle","imageListHeading","imageListContainer","imageListItem","imageListItemAnchorTag","imageListItems","imageListView","indexKey","InteractiveFeatureCollection","_telemetryContent","itemsCounter","indexItem","itemCounter","isMosaic","interactiveItems","interactiveFeatureItems","itemsFeatureCounter","singleSlideCarouselComponentProps","SingleSlideCarousel","flipperPrevLabel","flipperPrevious","flipperNextLabel","flipperNext","parentId","vertical","_createHeading","interactiveFeatureCollectionHeading","interactiveFeatureCollectionContainer","interactiveFeatureCollectionDesktopContainer","interactiveFeatureCollectionMobileContainer","singleSlideCarouselItemContainer","interactiveFeatureCollectionMobileItems","interactiveFeatureCollectionDesktopItems","_getFeatureItem","interactiveFeatureCollectionView","tileItem","InteractiveFeatureCollectionLinks","InteractiveFeatureItem","featureItemLinks","_createParagraph","_renderImage","featureItem","interactiveFeatureCollectionCarouselContainer","interactiveFeatureCollectionCarouselImage","interactiveFeatureCollectionCarouselContent","interactiveFeatureCollectionMosaicContainer","tabindex","interactiveFeatureCollectionMosaicImage","interactiveFeatureCollectionMosaicDetails","isAriaHiddenAttribute","verifiedImageSettings","moduleType","typeName","imagePropertyName","MagicNumber","FeatureItemViewComponent","thisProps","indexAux","caseNumberOne","itemCounterAux","caseNumberZero","modularAux","modularDivisor","firstRow","caseNumberTwo","lastRow","onCornerRight","onCornerLeft","containerClasses","renderMosaic","renderCarousel","Map","mapRef","_initMap","channel","storeSelectorStateManager","isMapApiLoaded","Microsoft","Maps","credentials","BingMapsApiKey","pushpinAccessible","Events","addHandler","setSelectedStoreLocationId","_updateMap","pushpinOptions","orgUnitStoreInformation","selectedStoreLocationId","mapLocation","entities","clear","pushpins","storeLocationList","store","OrgUnitAvailability","unitStoreInfo","entries","storeLocation","OrgUnitLocation","Latitude","Longitude","isSelectedLocation","OrgUnitNumber","options","_getPushpinOptions","pushpin","Pushpin","Location","handleClickEvent","unshift","currentLocation","setView","center","bounds","LocationRect","fromShapes","setOptions","orgUnitNumber","showIndex","size","color","selectionColor","_getSvgIcon","BingMapsEnabled","when","setMapModuleLoaded","reaction","loadMapApi","lang","market","ChannelCountryRegionISOCode","shouldDisplayMap","listMapViewState","displayMap","classname","show","Header","headerProps","MapProps","MapHeader","ProductSpecificationTableRow","productName","cellData","scope","dangerouslySetInnerHTML","getRichTextHtml","ProductSpecification","_toggle","drawerListId","isDrawerOpen","catalogId","actionInput","AttributesForSelectedVariantInput","channelId","getAttributesForSelectedVariant","debug","productSpecificationData","isAccrodion","displayStyle","handleText","ProductSpecificationTableProps","ProductSpecificationTableBodyProps","productSpecificationResult","_createDrawerBody","_createTableBody","_renderProductCell","Drawer","timeout","openGlyph","closeGlyph","glyphPlacement","DataTypeValue","_renderCurrencyCell","_renderDateTimeCell","_renderDecimalCell","_renderIntegerCell","_renderTextCell","_renderTrueFalseCell","warning","CurrencyValue","CurrencyCode","DateTimeOffsetValue","toUTCString","FloatValue","BooleanValue","trueValueText","falseValueText","rowdata"],"sourceRoot":""}
\n {/* eslint-disable-next-line react/no-danger */}\n \n {cellData}