{"version":3,"file":"static/js/2.1f0d245df603df3cd675.chunk.js","mappings":";uKA+BYA,EASAC,EC/BMC,ipBDsBlB,SAAYF,GACRA,EAAAA,EAAA,eACAA,EAAAA,EAAA,qBAFJ,CAAYA,IAAAA,EAAe,KAS3B,SAAYC,GACRA,EAAA,UACAA,EAAA,gBAFJ,CAAYA,IAAAA,EAAU,KC/BtB,SAAkBC,GACdA,EAAA,UACAA,EAAA,oCACAA,EAAA,kBAHJ,CAAkBA,IAAAA,EAAoB,KC0CtC,MAAMC,UAAuBC,EAAAA,cAmB5BC,YAAYC,GACXC,MAAMD,GAfC,KAAAE,UAAoB,EACpB,KAAAC,OAAiB,EAiPR,KAAAC,qBAAwBC,IACxC,OAAQA,GACP,KAAKT,EAAqBU,iBACzBC,KAAKL,UAAW,EAChBK,KAAKJ,OAAQ,EACb,MACD,KAAKP,EAAqBY,QACzBD,KAAKL,UAAW,EAChBK,KAAKJ,OAAQ,EACb,MACD,KAAKP,EAAqBa,IACzBF,KAAKL,UAAW,EAChBK,KAAKJ,OAAQ,IA9OfI,KAAKG,gBAAkBH,KAAKG,gBAAgBC,KAAKJ,MACjDA,KAAKK,SAAWZ,EAAMa,QAAQC,SAAWd,EAAMa,QAAQC,QAAQC,QAAgD,WAAtCf,EAAMa,QAAQC,QAAQC,OAAOC,KAAoB,KAAO,KACjIT,KAAKH,qBAAqBG,KAAKP,MAAMiB,QAAUV,KAAKP,MAAMiB,OAAOrB,sBACjEW,KAAKW,MAAQ,CAAEC,SAAUZ,KAAKY,UAC9BZ,KAAKa,aAAe,GAdd,uBAAuBC,EAAgBC,GAC7C,IAAIC,EAIJ,OAHIF,GAAUC,GAAoBA,EAAiBE,OAAS,IAC3DD,EAAkBD,EAAiBG,MAAKC,GAAQA,EAAKC,SAAUC,gBAAkBP,EAAOO,iBAElFL,GAAmBA,EAAgBM,KAYjC,eACT,MAAyB,OAAlBtB,KAAKK,UAAuC,OAAlBL,KAAKK,UAAuC,OAAlBL,KAAKK,SAG1DkB,oBACFC,EAAAA,GAASC,YACZzB,KAAK0B,6BAA8BC,EAAAA,EAAAA,mBAAkBC,OAAQ,SAAU5B,KAAKG,kBAE7EH,KAAKG,kBAGC0B,uBACFL,EAAAA,GAASC,WACZG,OAAOE,oBAAoB,SAAU9B,KAAK0B,6BAA8B,GAInEK,SAAM,IAAAC,EAAAC,EAEZ,GADAjC,KAAKa,aAAeb,KAAKkC,YACrBC,EAAAA,EAAAA,IAAoBnC,KAAKP,MAAM2C,MAElC,OADApC,KAAKP,MAAM4C,UAAUC,MAAM,+BACpB,KAER,MAQMC,EAASC,EAAAA,EAAAA,EAAA,GACXxC,KAAKP,OACLO,KAAKW,OAAK,IACb8B,cAX4C,CAC5CC,UAAW,CACVC,GAAI,CAAEC,EAAG,kBAAmBC,EAAG,EAAGC,EAAG,GACrCC,GAAI,CAAEH,EAAG,kBAAmBC,EAAG,EAAGC,EAAG,IAEtCE,UAAU,GAOVC,aAAcjD,KAAKP,MAAMa,QAAQC,QAAQ0C,aACzCC,WAAY,CACXC,YAAanD,KAAKP,MAClB2D,UAAWC,GAAAA,CAAW,SAAUrD,KAAKP,MAAMiB,OAAO0C,UAAWpD,KAAKW,MAAMC,SAAW,YAAc,cACjG0C,IAAK,MACLC,KAAMvD,KAAKY,SAAW,UAAY,cAEnC4C,SAAU,CACTJ,UAAW,eACXE,IAAK,KACLC,KAAMvD,KAAKY,SAAW,UAAY,QAEnC6C,SAAU,CACTL,UAAW,qBACXG,KAAM,eACND,IAAK,MAENI,kBAAyD,QAAxC1B,EAAEhC,KAAKP,MAAMiB,OAAOiD,4BAAoB,IAAA3B,GAAAA,EACzD4B,uBAAiE,QAA3C3B,EAAEjC,KAAKP,MAAMiB,OAAOmD,+BAAuB,IAAA5B,GAAAA,EACjE6B,KAAM,CACLR,IAAK,IACLF,UAAW,2BACXG,KAAMvD,KAAKY,SAAW,SAAW,YAElCmD,aAAc,CACbT,IAAK,MACLF,UAAW,mBAEZY,kBAAmB,CAClBV,IAAK,MACLF,UAAW,iBACXG,KAAM,YAEPU,OAAQ,CACPb,UAAW,6BACXE,IAAK,SACLC,KAAMvD,KAAKY,SAAW,SAAW,WACjCsD,QAASlE,KAAKP,OAEf0E,eAAgB,CACff,UAAW,6BAEZgB,KAAM,CACLhB,UAAW,2BACXE,IAAK,QAENe,2BAA4B,CAC3BjB,UAAW,mCAEZkB,iBAAkB,CACjBlB,UAAW,0CACXE,IAAK,SACL,aAActD,KAAKP,MAAM8E,UAAUC,oBACnCN,QAASlE,KAAKP,OAEfgF,uBAAwB,CACvBrB,UAAW,wCACXE,IAAK,QAENoB,aAAc1E,KAAKW,MAAMC,SACzB+D,aAAc3E,KAAKa,aACnBuC,UAAWC,GAAAA,CAAW,SAAUrD,KAAKP,MAAMiB,OAAO0C,aAEnD,OAAOpD,KAAKP,MAAMmF,WAAWrC,GAGtBL,WACP,MAAM,KAAEE,EAAI,OAAE1B,GAAWV,KAAKP,MACxBoF,EAA8B,GAWpC,OAVI7E,KAAKL,UAAYyC,GAAQA,EAAK0C,YAAc1C,EAAK0C,WAAWC,QAAU3C,EAAK0C,WAAWC,OAAO9D,OAAS,GACzGmB,EAAK0C,WAAWC,OAAOC,KAAI,CAAC7D,EAAyB8D,IACpDJ,EAAWK,KAAKlF,KAAKmF,uBAAuBhE,OAAMiE,GAAW,EAAMH,GAAO,MAGxEjF,KAAKJ,OAASc,EAAO2E,aAAe3E,EAAO2E,YAAYpE,OAAS,GACnEP,EAAO2E,YAAYL,KAAI,CAAC7D,EAAwBmE,IAC/CT,EAAWK,KAAKlF,KAAKmF,4BAAuBC,EAAWjE,GAAM,EAAOmE,EAAM,MAGrEtF,KAAKuF,0BAA0BV,GAG/BU,0BAA0BV,GAA2B,IAAAW,EAAAC,EAE5D,KAD0D,QAAlCD,EAAGxF,KAAKP,MAAMiB,OAAOgF,qBAAa,IAAAF,GAAAA,GAEzD,OAAOX,EAER,MAAMc,EAAsC,GACtCC,EAAU,CACfC,GAAI,EACJC,SAA8C,QAAtCL,EAAEzF,KAAKP,MAAMiB,OAAOqF,0BAAkB,IAAAN,EAAAA,EAAI,MAClDO,QAAS,IACTC,iBAAab,EACbc,QAASrB,GAIV,OAFAc,EAAmBT,KAAKU,GAEjBD,EAGAR,uBACPgB,EACAC,EACAzG,EACA2F,EACAe,GAEA,MAAMvF,EACLd,KAAKP,MAAMa,SAAWN,KAAKP,MAAMa,QAAQC,SAAWP,KAAKP,MAAMa,QAAQC,QAAQO,OAC5Ed,KAAKP,MAAMa,QAAQC,QAAQO,OAC3B,SACE,2BAAEwF,GAA+BtG,KAAKP,MAAMiB,OAC5C6F,EAAeH,GAAWA,EAAQN,UAAa,IAC/C,cAAEU,GAAkBxG,KAAKP,MAAM8E,UAG/BkC,EACLN,IACAG,MAAAA,OAA0B,EAA1BA,EAA4BI,QAAOC,IAAS,IAAAC,EAAAC,EAAA,OAA0B,QAAtBD,EAAAD,EAAUG,oBAAY,IAAAF,OAAA,EAAtBA,EAAwBvF,kBAAkB8E,MAAAA,GAAgB,QAANU,EAAVV,EAAYY,YAAI,IAAAF,OAAA,EAAhBA,EAAkBxF,mBAG7G,IAAI4E,EAAsB,QAIZ,IAAAe,EAAAC,EAAAC,EAAd,OAHIC,EAAAA,gBAAgBC,YAAYjB,MAAAA,OAAU,EAAVA,EAAYkB,SAAWlB,EAAYkB,OAAO,GAAGC,MAC5ErB,EAAcE,EAAYkB,OAAO,GAAGC,KAEjC3H,EAEI,CACNkG,GAAIvG,EAAeiI,eACnBzB,SAA8E,QAAtEkB,EAAE1H,EAAekI,gBAAgB1G,EAAQqF,MAAAA,OAAU,EAAVA,EAAYsB,yBAAiB,IAAAT,EAAAA,EAAI,GAClFhB,QAAS,IAAKG,IAA4B,QAAlBc,EAAId,EAAWuB,WAAG,IAAAT,OAAA,EAAdA,EAAgBU,UAAU,GAAGC,MAAM,KAAKC,MAAM,GAAGC,KAAK,QAClF7B,YAAAA,EACAC,QAASlG,KAAK+H,mBAAmB5B,EAAYF,EAAaI,GAC1D2B,mBAAoBhI,KAAKP,MAAMiB,OAAOmD,yBAA2B4C,EACjEwB,WAAY7I,EAAW8I,OACvBC,UAAW,GAAuE,QAAvEjB,EAAG5H,EAAekI,gBAAgB1G,EAAQqF,MAAAA,OAAU,EAAVA,EAAYsB,yBAAiB,IAAAP,EAAAA,EAAI,MAAMV,KAGvF,CACNX,GAAIvG,EAAe8I,gBACnBtC,SAAUS,EACVP,QAAUI,GAAWA,EAAQiC,SAAWjC,EAAQiC,QAAQC,gBAAmB,GAC3EC,oBAAsBnC,GAAWA,EAAQoC,WAAapC,EAAQoC,UAAUF,gBAAmB,GAC3FrC,YAAcG,GAAWA,EAAQqC,OAASrC,EAAQqC,MAAMC,KAAQ,GAChExC,QAASlG,KAAK2I,sBAAsBvC,GACpC6B,WAAY7I,EAAWwJ,IACvBC,iBAAkBzC,MAAAA,OAAO,EAAPA,EAAS0C,aAC3BX,UAAW,GAAG5B,KAAeC,KAIvBuB,mBAAmBgB,EAA8BC,GACxD,MAAMC,EAAkC,GACxC,OAAKF,GAAaA,EAASG,UAAyC,IAA7BH,EAASG,SAASjI,QAYzD8H,EAASG,SAASlE,KAAI,CAAC7D,EAAyB8D,KAC/CgE,EAAe/D,KAAKlF,KAAKmF,uBAAuBhE,OAAMiE,GAAW,EAAMH,GAAO,OAExEgE,GAdC,GAiBDN,sBAAsBI,GAC7B,MAAME,EAAkC,GAExC,OAAKF,GAAaA,EAASI,UAAyC,IAA7BJ,EAASI,SAASlI,QAIzD8H,EAASI,SAASnE,KAAI,CAAC7D,EAAqBmE,KAC3C2D,EAAe/D,KAAKlF,KAAKmF,4BAAuBC,EAAWjE,GAAM,EAAOmE,OAElE2D,GANC,GA2BD9I,kBACPH,KAAKK,SAAWL,KAAKoJ,eACrBpJ,KAAKqJ,SAAS,CAAEzI,SAAUZ,KAAKY,WAGxBwI,eACP,MAAM,QAAE9I,GAAYN,KAAKP,MAGzB,GAAIa,EAAQC,SAAWD,EAAQC,QAAQC,QAA0C,WAAhCF,EAAQC,QAAQC,OAAOC,KACvE,MAAO,KAGR,GAAIe,EAAAA,GAASC,WAAaG,OAAO0H,WAAY,CAC5C,MAAMrG,EAAe3C,EAAQC,QAAQ0C,aACrC,GAAIA,EACH,OAAIA,EAAaN,IAAMf,OAAO0H,YAAcrG,EAAaN,GAAGE,EACpD,KACGI,EAAasG,IAAM3H,OAAO0H,YAAcrG,EAAasG,GAAG1G,EAC3D,KACGI,EAAauG,IAAM5H,OAAO0H,YAAcrG,EAAauG,GAAG3G,EAC3D,KACGI,EAAawG,IAAM7H,OAAO0H,YAAcrG,EAAawG,GAAG5G,EAC3D,KAED,KAGT,MAAO,MApSOvD,EAAA8I,cAAwBjJ,EAAgByJ,IACxCtJ,EAAAiI,aAAuBpI,EAAgB+I,QAOtDwB,EAAAA,EAAAA,IAAA,CADCC,EAAAA,IAAU,gCAoBDD,EAAAA,EAAAA,IAAA,CAATE,EAAAA,IAAQ,6BA6QV,6JCxUM,MAAOC,UAA2BtK,EAAAA,cASvCC,YAAYC,GACXC,MAAMD,GARC,KAAAqK,aAAuB,EACd,KAAAC,cAAgB,GA0RhB,KAAAC,qBAAuB,CAACC,EAA0BC,IAA0B,KAC5F,MAAMpE,EAAWoE,GAAUA,EAAOpE,SAAWoE,EAAOpE,SAAW,GACzDqE,EAAiC,CAAC,CAAEzB,IAAKuB,EAAkBG,QAAStE,IAGtEqB,EAAAA,gBAAgBC,YAAY8C,EAAOlC,qBACtCkC,EAAOlC,mBAAmBhD,KAAI7D,IAC7B,GAAIA,GAAQA,EAAKsH,MAAO,CACvB,MAAM4B,EAAWlJ,EAAKsH,MAAMC,IACtB4B,EAA+BnJ,EAAKsH,MAAMhG,cAChD0H,EAAiBjF,KAAK,CACrBwD,IAAK2B,EACLD,QAASjJ,EAAKoJ,KACd9H,cAAe6H,EACfE,qBAAsB,CAAEnC,QAASlH,EAAKkH,QAAQC,sBAKlDtI,KAAKqJ,SAAS,CACboB,cAAeN,EAAiBlJ,OAAS,EAAIkJ,EAAmB,CAAC,CAAEzB,IAAK,UACxEgC,qBAAsB5E,KAIP,KAAA6E,sBAAwB,CAACvI,EAAqBwI,IAAsB,KAC/E5K,KAAKP,MAAMiF,cASfmF,EAAmBgB,aAAc,EACjC7K,KAAKqJ,SAAS,CACbyB,WAAY1I,EAAKyD,GACjBkF,oBAAqB3I,EAAK0D,SAC1BkF,WAAYJ,MAZb5K,KAAKqJ,SAAS,CACbyB,WAAY9K,KAAKW,MAAMmK,YAAc9K,KAAKW,MAAMmK,aAAe1I,EAAKyD,QAAMT,EAAYhD,EAAKyD,GAC3FmF,WAAYJ,IAET5K,KAAKP,MAAMiE,mBACd1D,KAAKgK,qBAAqB5H,EAAK6D,YAAc7D,EAA7CpC,KAYc,KAAAiL,cAAgB,IAAM,KACtCpB,EAAmBgB,aAAc,EACjC7K,KAAKqJ,SAAS,CAAEyB,WAAY9K,KAAKW,MAAMqK,cAOvB,KAAAE,oBAAuBC,IACnCnL,KAAKoL,SAASC,UAAYrL,KAAKoL,SAASC,QAAQC,SAASH,EAAMI,SAClEvL,KAAKqJ,SAAS,CAACyB,gBAAY1F,EAAW2F,oBAAqB,GAAIN,cAAe,QAQ/D,KAAAe,oBAAuBL,IACnCnL,KAAKoL,SAASC,UAAYrL,KAAKoL,SAASC,QAAQC,SAASH,EAAMM,gBAClEzL,KAAK0L,iBAWU,KAAAC,uBAAyB,CAAC1G,EAAe8F,EAA8Ba,KACnF/B,EAAmBgB,aAAyB,IAAV5F,MAGlC2G,IAAmBb,IAGhBA,IAAwBa,EASf,KAAAC,kBAAqBpB,IACrC,IAAKA,IAAkBA,EAAc/B,IACpC,OAAO,KAGR,MACMoD,EAAuC,CAC5CpJ,UAAW,CACVC,GAAI,CAAEC,EAAG,kBAAmBC,EAAG,EAAGC,EAAG,GACrCyG,GAAI,CAAE3G,EAAG,kBAAmBC,EAAG,EAAGC,EAAG,GACrC0G,GAAI,CAAE5G,EAAG,kBAAmBC,EAAG,EAAGC,EAAG,GACrC2G,GAAI,CAAE7G,EAAG,kBAAmBC,EAAG,EAAGC,EAAG,IAEtCE,UAAU,GAEyB,IAAA+I,EAAAC,EAApC,YAAyB5G,KAVA6G,EAAAA,EAAAA,kBAAiB,GAAGxB,EAAc/B,MAAO1I,KAAKP,MAAMa,QAAQ4L,cAAcC,eAAeC,aAYhH7M,EAAAA,cAAC8M,EAAAA,GAAKC,OAAAC,OAAA,CACLJ,eAAgBnM,KAAKP,MAAMa,QAAQ4L,cAAcC,eACjD/I,UAAU,sBACNqH,EAAa,CACjBxH,aAAcjD,KAAKP,MAAMa,QAAQC,QAAQ0C,aACzCR,cAAqF,QAAxEsJ,EAA6B,QAA7BC,EAAEvB,EAAchI,qBAAa,IAAAuJ,EAAAA,EAAIhM,KAAKP,MAAMiB,OAAO8L,6BAAqB,IAAAT,EAAAA,EAAID,EACzFW,oBAAoB,OACpBlJ,KAAK,WACLsC,GAAG,kCACHuE,QAASK,EAAcL,WAInB,MA5YPpK,KAAKoL,SAAW7L,EAAAA,YAChBS,KAAK0M,YAAcnN,EAAAA,YACnBS,KAAKW,MAAQ,CAAEmK,gBAAY1F,EAAW2F,oBAAqB,GAAIC,gBAAY5F,EAAWsF,qBAAsB,IAC5G1K,KAAK0L,cAAgB1L,KAAK0L,cAActL,KAAKJ,MAC7CA,KAAK2M,kBAAmBC,EAAAA,EAAAA,oBACvB5M,KAAKP,MAAMa,QAAQC,QAAQsM,kBAC3B7M,KAAKP,MAAMqN,aACX9M,KAAKP,MAAM4C,WAEZrC,KAAK+M,SAAUC,EAAAA,EAAAA,kBAAiB,QAAShN,KAAK2M,iBAAkB,GAAI,IAG9DpL,oBACFC,EAAAA,GAASC,YACZwL,SAASC,KAAKC,iBAAiB,YAAanN,KAAKkL,qBACjD+B,SAASC,KAAKC,iBAAiB,WAAYnN,KAAKwL,sBAI3C4B,qBAAkB,IAAAC,EACI,QAAxBA,EAAArN,KAAK0M,YAAYrB,eAAO,IAAAgC,GAAxBA,EAA0BC,SAAS,IAAMtN,KAAKP,MAAMiF,cACtD1E,KAAK0M,YAAYrB,QAAQiC,SAAS,GAAmBC,QAIjD1L,uBACFL,EAAAA,GAASC,YACZwL,SAASC,KAAKpL,oBAAoB,YAAa9B,KAAKkL,qBAAqB,GACzE+B,SAASC,KAAKpL,oBAAoB,WAAY9B,KAAKwL,qBAAqB,IAGnEzJ,SACN,MAAM,aAAE2C,EAAY,SAAElB,EAAQ,iBAAEc,EAAgB,2BAAED,EAA0B,uBAAEI,EAAsB,WAAEvB,GAAelD,KAAKP,MAE1H,OADAO,KAAK8J,aAAe,EAEnBvK,EAAAA,cAACiO,EAAAA,OAAMlB,OAAAC,OAAA,GACFrJ,EAAU,CACdE,UAAWC,GAAAA,CAAWH,EAAWE,UAAWsB,QAA0CU,IAA1BpF,KAAKW,MAAMmK,WAA2B,QAAU,YAE5GvL,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK/I,EAAQ,CAAEkK,IAAK1N,KAAKoL,SAAUuC,SAAS,OAC/CjJ,QAA0CU,IAA1BpF,KAAKW,MAAMmK,YAC3BvL,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKlI,GACT9E,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKjI,EAAgB,CAAEJ,QAASlE,KAAKiL,mBAC1C1L,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK9H,GAAyBzE,KAAKW,MAAMoK,sBAG/C/K,KAAK4N,mBAKFA,iBACP,MAAM,SAAEnK,EAAQ,aAAEkB,EAAY,aAAED,GAAiB1E,KAAKP,OAChD,WAAEqL,GAAe9K,KAAKW,MACtBE,EAA8B,GACpC,GAAI6D,QAA+BU,IAAf0F,GAA4BnG,EAAa1D,OAAS,EAAG,CACxE,IAAI4M,EAA0B,GAC9B,IAAK,MAAMC,KAAiBnJ,EAAc,CACzC,GAAImJ,GAAiBA,EAAcjI,KAAOiF,EAAY,CACrD+C,EAAWC,EACVjE,EAAmBgB,YAEjB7K,KAAKqJ,SAAS,CAAE2B,gBAAY5F,EAAW2F,oBAAqB+C,EAAchI,WAD1E9F,KAAKqJ,SAAS,CAAE2B,gBAAY5F,IAE/B,MAGD,GADAyI,EAAW7N,KAAK+N,gBAAgBD,GAC5BD,GAAYA,EAAShI,KAAOiF,EAC/B,MAGF+C,GAAYhN,EAAaqE,KACxB3F,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,CAACyB,IAAKH,EAAShI,IAAQpC,GAC1B,IACAzD,KAAKiO,oBAAoBJ,GAAW,WAIvClJ,EAAauJ,SAAQ,CAAC/M,EAAqB8D,KAC1CpE,EAAaqE,KACZ3F,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,CAACyB,IAAK/I,GAAWxB,EAAQ,CAC7BiK,IAAK1N,KAAK2L,uBAAuB1G,EAAOjF,KAAKW,MAAMoK,oBAAqB5J,EAAK2E,UAAY9F,KAAK0M,YAAc,OAE3G1M,KAAKiO,oBAAoB9M,QAK9B,OAAON,EAGAkN,gBAAgB5M,GACvB,MAAMgI,EAAqChI,GAAQA,EAAK+E,QACxD,GAAIiD,GAAYA,EAASlI,OAAS,EACjC,IAAK,IAAIkN,EAAW,EAAGA,GAAKhF,EAASlI,OAAS,EAAGkN,IAAK,CACrD,GAAIhF,EAASgF,GAAGtI,KAAO7F,KAAKW,MAAMmK,WAIjC,OAHCjB,EAAmBgB,YAEjB7K,KAAKqJ,SAAS,CAAE2B,WAAY7J,GAAQA,EAAK0E,GAAIkF,oBAAqB5B,EAASgF,GAAGrI,WAD9E9F,KAAKqJ,SAAS,CAAE2B,WAAY7J,MAAAA,OAAI,EAAJA,EAAM0E,KAE9BsD,EAASgF,GAEjB,MAAMC,EAA2BpO,KAAK+N,gBAAgB5E,EAASgF,IAC/D,GAAIC,EACH,OAAOA,EAKV,OADApO,KAAKP,MAAMa,QAAQ+B,UAAUC,MAAM,iDAC5B,KAGA2L,oBAAoBtJ,GAC3B,GAAGA,EAAa,CACf,GAAIA,EAAauB,SAAWvB,EAAauB,QAAQjF,OAAS,EACzD,OAAIjB,KAAKP,MAAMiF,mBAA0CU,IAA1BpF,KAAKW,MAAMmK,WAClC9K,KAAKqO,eAAe1J,EAAauB,QAASvB,EAAakB,IAAI,GAGlEtG,EAAAA,cAAAA,EAAAA,SAAA,KACES,KAAKsO,sBAAsB3J,GAC3B3E,KAAKqO,eAAe1J,EAAauB,QAASvB,EAAakB,IAAI,IAGxD,GAAIlB,EAAamB,UAAYnB,EAAaqB,SAAWrB,EAAaqB,QAAQ/E,OAAS,EACzF,OAAOjB,KAAKuO,oBAAoB5J,EAAcA,EAAakB,IAAI,GAAO,GAChE,GAAIlB,EAAamB,WAAanB,EAAaqB,QACjD,OAAOhG,KAAKwO,oBAAoB7J,EAAcA,EAAakB,IAAI,GAIjE,OADA7F,KAAKP,MAAMa,QAAQ+B,UAAUC,MAAM,yDAC5B,KAGA+L,eAAelF,EAA4B2B,EAAqB2D,GACvE,MAAM,aAAE/J,EAAY,SAAEjB,GAAazD,KAAKP,MAClCiP,EAAyB1O,KAAKP,MAAMiB,OAAOiO,uBAAwB,EACnEC,EAA0B5O,KAAKP,MAAMiB,OAAOmO,kBAAoB,EAEtE,GAAI/D,GAAc9K,KAAKW,MAAMmK,aAAeA,EAE3C,OADA9K,KAAKP,MAAMa,QAAQ+B,UAAUC,MAAM,gEAC5B,KAER,IAAK6G,GAAgC,IAApBA,EAASlI,OAEzB,OADAjB,KAAKP,MAAMa,QAAQ+B,UAAUC,MAAM,4DAC5B,KAGR,IAAIwM,EAAyB,GAC7B,MAAMC,EAAc5F,GAAYA,EAASnE,KAAI,CAACkF,EAAuB5E,KACpE,MAAM0J,EAAa9E,EAAOhE,SAAWgE,EAAOhE,QAAQjF,OAAS,EAC7D,IAAI4M,EAMA3H,EAJH2H,EADGmB,GAActK,EACN1E,KAAKsO,sBAAsBpE,EAAQY,EAAYxF,GAE/C4E,EAAOlE,QAAUhG,KAAKuO,oBAAoBrE,EAAQ5E,GAAOtF,KAAKwO,oBAAoBtE,GAG9F,MAAM+E,EAAcD,GAAcN,GAA0B1O,KAAK8J,cAAgBoF,KAAKC,MAAMP,GAA2B,EAMvH,OALIK,IACHjP,KAAK8J,eACLgF,EAAiBJ,EAAyB,SAAS1O,KAAK8J,aAAasF,aAAe,GACpFlJ,EAAUlG,KAAKqO,eAAenE,EAAOhE,QAASxB,EAAewF,EAAOrE,QAAKT,GAAW,IAGpF7F,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GACA9I,EAAQ,CACZuK,IAAK9D,EAAOrE,GACZzC,UAAWC,GAAAA,CAAWI,EAASL,UAAW6L,GAAe,eACzDvB,IAAK1N,KAAK2L,uBAAuBrG,EAAKtF,KAAKW,MAAMoK,oBAAqBb,EAAOpE,UAAY9F,KAAK0M,YAAc,OAE3GmB,EACA3H,MAIJ,OAAOlG,KAAKqP,YAAYP,EAAgBC,EAAajE,EAAY2D,GAG1DH,sBAAsBpE,EAAuBY,EAAqB7F,GACzE,MAAM,OAAEhB,GAAWjE,KAAKP,MACxB,OACCF,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,CACJyB,IAAK/I,GACDhB,EAAM,CACVC,QAASlE,KAAK2K,sBAAsBT,EAAQY,GAC5CwE,QAAStP,KAAK0L,cAAa,kBACV1L,KAAKW,MAAMmK,YAAc9K,KAAKW,MAAMmK,aAAeZ,EAAOrE,IAAG,mBAC5D7F,KAAKW,MAAMmK,YAAc9K,KAAKW,MAAMmK,aAAeZ,EAAOrE,IAAG,cAClEiF,IAEZZ,EAAOpE,UAKHyI,oBAAoBrE,EAAuBjF,GAAsE,IAAtDsK,IAAAC,UAAAvO,OAAA,QAAAmE,IAAAoK,UAAA,KAAAA,UAAA,GAA6BC,EAAAD,UAAAvO,OAAA,QAAAmE,IAAAoK,UAAA,IAAAA,UAAA,GAC/F,MAAM,KAAE1L,GAAS9D,KAAKP,MAChBqG,EAAWoE,EAAOpE,SAAWoE,EAAOpE,SAAW,GAC/C4J,EAAcxF,EAAOjE,YAAciE,EAAOjE,YAAc,GAC9DjG,KAAK+M,QAAQ4C,cAAcC,MAAQ9J,EACnC,MAAM+J,GAAaC,EAAAA,EAAAA,wBAAuB9P,KAAK2M,iBAAkB3M,KAAK+M,SAChE3J,EAAa0C,EAAS7E,OAASjB,KAAK+J,cAAiB,kCAAoC,2BAC/F,OACCxK,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GACAzI,EAAI,CACRV,UAAWA,EACX4K,IAAK/I,EACLqK,QAASG,GAAYzP,KAAK0L,cAC1BH,OAAQrB,EAAOrB,iBAAmB,cAAWzD,EAC7C2K,YAAaR,GAAevP,KAAKgK,qBAAqB0F,EAAaxF,GACnE8F,KAAM9F,EAAOlE,SACT6J,EAAU,CACd3L,SAAS+L,EAAAA,EAAAA,kBAAiBjQ,KAAK2M,iBAAkB3M,KAAK+M,QAASjH,KAE9DoE,EAAOpE,UAKHoK,uBAAuBpK,EAAmBuC,GACjD,MAAM,KAAEvE,GAAS9D,KAAKP,MACtBO,KAAK+M,QAAQ4C,cAAcC,MAAQ9J,EACnC,MAAM+J,GAAaC,EAAAA,EAAAA,wBAAuB9P,KAAK2M,iBAAkB3M,KAAK+M,SACtE,OAAIjH,GAAYuC,EAEd9I,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKzI,EAAI,CAAEkM,KAAM3H,GAAawH,EAAU,CAAE3L,SAAS+L,EAAAA,EAAAA,kBAAiBjQ,KAAK2M,iBAAkB3M,KAAK+M,QAASjH,KAC5GA,GAIG,KAGA0I,oBAAoBtE,EAAuBjF,GAAyC,IAAzBwK,EAAAD,UAAAvO,OAAA,QAAAmE,IAAAoK,UAAA,IAAAA,UAAA,GAClE,MAAM,KAAEpL,GAASpE,KAAKP,MACtB,OACCF,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,CAACyB,IAAK/I,GAAWb,EAAI,CAAEkL,QAASG,GAAYzP,KAAK0L,gBACpDxB,EAAOpE,UAKHuJ,YAAYc,EAAepB,EAA4BqB,EAAsBC,GACpF,MAAM,aAAEtM,EAAY,SAAEP,EAAQ,kBAAEQ,EAAiB,kBAAEN,EAAiB,uBAAEE,EAAsB,aAAEc,GAAiB1E,KAAKP,MAC9G6Q,GACJ5L,IACAhB,GAAqBE,KACrBuD,EAAAA,gBAAgBC,YAAYpH,KAAKW,MAAM8J,iBACvC4F,EACIE,GACJ7L,GAAgBd,GAA0BuD,EAAAA,gBAAgBC,YAAYpH,KAAKW,MAAM8J,iBAAmB4F,EAChGG,EAAoB,GAAGxQ,KAAK8J,aAAe,GAAKwG,EAAuBvM,EAAcX,UAAY,qBAAuB+M,IAE9H,OADAnQ,KAAK8J,aAAe,EAEnBvK,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKxI,EAAY,CAAEX,UAAWoN,IAClCjR,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GACA/I,EAAQ,CACZJ,UAAWC,GAAAA,CACVG,EAASJ,UACTkN,GAAwB,eACxBA,GAAwBtQ,KAAKP,MAAMiB,OAAOmO,kBAAoB7O,KAAKP,MAAMiB,OAAOmO,iBAAmB,GAAK,yBAGxGE,GAEDuB,GAAwBtQ,KAAKW,MAAM8J,eAAiBzK,KAAKW,MAAM8J,cAAczF,KAAI7D,IAAI,IAAAsP,EAAA,OACrFlR,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKvI,EAAiB,CAAEgK,IAAK7M,EAAKuH,IAAKtF,UAAWY,EAAmBZ,YACxEpD,KAAKW,MAAM8J,eAAiBzK,KAAK6L,kBAAkB1K,GACnDoP,GAA6BvQ,KAAKkQ,uBAAuB/O,EAAKiJ,QAAkC,QAA3BqG,EAAEtP,EAAKqJ,4BAAoB,IAAAiG,OAAA,EAAzBA,EAA2BpI,cA6FhGqD,gBACF1L,KAAKP,MAAMiF,cACf1E,KAAKqJ,SAAS,CAAEyB,gBAAY1F,EAAWqF,cAAe,KAAMM,oBAAqB,MApXpElB,EAAAgB,aAAuB,EA0ZvC,2FCpaA,MAgBA,EAhB2EpL,IAC1E,MAAM,qBAAEiR,EAAoB,+BAAEC,EAA8B,mCAAEC,EAAkC,2BAAEC,GAA+BpR,EAC3HqR,EACLD,GACA1J,EAAAA,gBAAgBC,YAAYyJ,IAC5BA,EAA2BnK,QAAOqK,IAAQC,EAAAA,iBAAiBC,kBAAkBF,IAAQA,EAAItR,MAAMyR,SAASzR,MAAM0R,0BAC/G,OAAOL,GAAW3J,EAAAA,gBAAgBC,YAAY0J,GAC7CvR,EAAAA,cAACiO,EAAAA,OAAMlB,OAAAC,OAAA,GAAKmE,GACVjR,EAAM2R,MACP7R,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKoE,GACTpR,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKqE,GAAqCE,KAG9C,uFCbL,MAgBA,EAhB2ErR,IAC1E,MAAM,qBAAEiR,EAAoB,+BAAEC,EAA8B,mCAAEC,EAAkC,2BAAEC,GAA+BpR,EAC3HqR,EACLD,GACA1J,EAAAA,gBAAgBC,YAAYyJ,IAC5BA,EAA2BnK,QAAOqK,IAAQC,EAAAA,iBAAiBC,kBAAkBF,IAAQA,EAAItR,MAAMyR,SAASzR,MAAM0R,0BAC/G,OAAOL,GAAW3J,EAAAA,gBAAgBC,YAAY0J,GAC7CvR,EAAAA,cAACiO,EAAAA,OAAMlB,OAAAC,OAAA,GAAKmE,GACVjR,EAAM2R,MACP7R,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKoE,GACTpR,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKqE,GAAqCE,KAG9C,uFCbL,MAgBA,EAhB2ErR,IAC1E,MAAM,qBAAEiR,EAAoB,+BAAEC,EAA8B,mCAAEC,EAAkC,2BAAEC,GAA+BpR,EAC3HqR,EACLD,GACA1J,EAAAA,gBAAgBC,YAAYyJ,IAC5BA,EAA2BnK,QAAOqK,IAAQC,EAAAA,iBAAiBC,kBAAkBF,IAAQA,EAAItR,MAAMyR,SAASzR,MAAM0R,0BAC/G,OAAOL,GAAW3J,EAAAA,gBAAgBC,YAAY0J,GAC7CvR,EAAAA,cAACiO,EAAAA,OAAMlB,OAAAC,OAAA,GAAKmE,GACVjR,EAAM2R,MACP7R,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKoE,GACTpR,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKqE,GAAqCE,KAG9C,gFCdL,QAAgBrR,IACZ,MAAM,WAAE4R,EAAU,YAAEC,EAAW,eAAEC,EAAc,QAAEC,GAAY/R,EAE7D,OACIF,EAAAA,cAACiO,EAAAA,OAAMlB,OAAAC,OAAA,GAAK8E,GACR9R,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK+E,GACLE,EACAD,sFCPjB,MAYA,EAZuE9R,IACnE,MAAM,mBAAEgS,EAAkB,QAAED,EAAO,YAAEE,EAAW,MAAEC,GAAUlS,EAE5D,OACIF,EAAAA,cAACiO,EAAAA,OAAMlB,OAAAC,OAAA,GAAKkF,GACPD,EACAE,EACAC,8ECPb,MAYA,EAZuFlS,IACnF,MAAM,2BAAEmS,EAA0B,QAAEJ,EAAO,QAAEK,EAAO,MAAEF,GAAUlS,EAEhE,OACIF,EAAAA,cAACiO,EAAAA,OAAMlB,OAAAC,OAAA,GAAKqF,GACPJ,EACAK,EACAF,uECPb,QAAgBlS,IACZ,MAAM,QACF+R,EAAO,sBACPM,EAAqB,4BACrBC,EAA2B,cAC3BC,EAAa,cACbC,EAAa,oBACbC,EAAmB,oBACnBC,EAAmB,WACnBC,EAAU,QACVC,EAAO,sBACPC,EAAqB,gBACrBC,EAAe,YACfC,EAAW,aACXC,GACAhT,EAEJ,OACIF,EAAAA,cAACkO,EAAAA,KAAI,CAACrK,UAAU,+BACXoO,EACAc,EACAD,EACAP,EACDvS,EAAAA,cAAA,WAAS6D,UAAU,wCACd4O,EACAC,GAEJF,EACDxS,EAAAA,cAAA,WAAS6D,UAAU,4FACd8O,EACAC,EACAI,EACAC,EACAC,GAEJL,8ECnCb,MAWA,EAXuE3S,IACnE,MAAM,mBAAEiT,EAAkB,QAAElB,EAAO,MAAEG,GAAUlS,EAE/C,OACIF,EAAAA,cAACiO,EAAAA,OAAMlB,OAAAC,OAAA,GAAKmG,GACPlB,EACAG,qFCNb,QAAgBlS,IACZ,MAAM,mBAAEkT,EAAkB,QAAEnB,EAAO,YAAEE,EAAW,MAAEC,GAAUlS,EAE5D,OACIF,EAAAA,cAACiO,EAAAA,OAAMlB,OAAAC,OAAA,GAAKoG,GACPnB,EACAE,EACAC,qFCPb,MAYA,EAZuElS,IACnE,MAAM,mBAAEmT,EAAkB,QAAEpB,EAAO,YAAEE,EAAW,MAAEC,GAAUlS,EAE5D,OACIF,EAAAA,cAACiO,EAAAA,OAAMlB,OAAAC,OAAA,GAAKqG,GACPpB,EACAE,EACAC,8ECFb,MAAMkB,EAA4D9G,IAA4C,IAA3C,QAAE+G,EAAO,MAAEC,EAAK,aAAEC,EAAY,MAAEC,GAAOlH,EACtG,OACIxM,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKuG,GACLC,EACAC,EACAC,IAuCPC,EAAkEC,IAAwC,IAAvC,MAAEC,EAAK,UAAEC,EAAS,KAAEC,EAAI,QAAEC,GAASJ,EACxG,OACI5T,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK6G,GACN7T,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK8G,GACLC,EACAC,KAqBjB,EAfuE9T,IACnE,MAAM,mBAAE+T,EAAkB,UAAEC,EAAS,QAAEC,EAAO,mBAAEC,EAAkB,YAAErC,EAAW,QAAEE,EAAO,+BAAEoC,GAAmCnU,EAE7H,OACIF,EAAAA,cAACiO,EAAAA,OAAMlB,OAAAC,OAAA,GAAKiH,GACPC,EAAUI,eAAiBtU,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKoH,IACrCF,EAAUI,eAAiBtU,EAAAA,cAAC2T,EAAyB5G,OAAAC,OAAA,GAAKmH,IAC3DnU,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK+E,GACLE,EArD+CsC,CAAAA,IAQ3D,IAR4D,aAC7DC,EAAY,MACZC,EAAK,aACLhB,EAAY,eACZiB,EAAc,QACdC,EAAO,yBACPC,EAAwB,gCACxBC,GACHN,EACG,OACIvU,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKwH,GACLC,GACGA,EAAMhP,KAAK7D,GAEA5B,EAAAA,cAACsT,EAAsBvG,OAAAC,OAAA,GAAKpL,MAE1C6R,GACGA,EAAahO,KAAI,CAAC1C,EAAwB2C,IAC/B1F,EAAAA,cAACA,EAAAA,SAAc,CAACyO,IAAK/I,GAAQ3C,KAE5C/C,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK0H,GACLC,GACGA,EAAQlP,KAAI,CAACqP,EAAyBpP,IAC3B1F,EAAAA,cAACA,EAAAA,SAAc,CAACyO,IAAK/I,GAAQoP,MAIhD9U,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK4H,GACN5U,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK6H,OA0BTE,CAAaV,uFCrE9B,MAAMW,EAA2DxI,IAAuE,IAAtE,mBAAEyI,EAAkB,QAAEhD,EAAO,gBAAEiD,EAAe,iBAAEC,GAAkB3I,EAChI,OACIxM,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKiI,GACLhD,EACDjS,EAAAA,cAACoV,EAAwBrI,OAAAC,OAAA,GAAKkI,IAC7BC,GACGA,EAAiB1P,KAAI,CAAC4P,EAAkB3P,IAC7B1F,EAAAA,cAACoV,EAAwBrI,OAAAC,OAAA,GAAKqI,EAAgB,CAAE5G,IAAK/I,SAM1E0P,EAAyDb,IAQ1D,IAR2D,kBAC5De,EAAiB,QACjBrD,EAAO,YACPE,EAAW,cACXoD,EAAa,cACbC,EAAa,OACbV,EAAM,aACNW,GACHlB,EACG,OACIvU,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKsI,GACLrD,EACAE,EACDnS,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKuI,GACLE,EACAX,EACAU,KAMXE,EAAuD9B,IAAwD,IAAvD,mBAAE+B,EAAkB,QAAE1D,EAAO,MAAEG,EAAK,YAAED,GAAayB,EAC7G,OACI5T,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK2I,GACL1D,EACAE,EACAC,IAkCb,EA7B+DlS,IAC3D,MAAM,eACF0V,EAAc,eACdC,EAAc,sBACdC,EAAqB,QACrB7D,EAAO,aACP8D,EAAY,YACZC,EAAW,kBACXC,EAAiB,0BACjBC,EAAyB,0BACzBC,GACAjW,EAEJ,OACIF,EAAAA,cAACiO,EAAAA,OAAMlB,OAAAC,OAAA,GAAK4I,GACPC,EACAC,GACG9V,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK8I,GACL7D,EACDjS,EAAAA,cAAC0V,EAAqB3I,OAAAC,OAAA,GAAK+I,IAC3B/V,EAAAA,cAAC0V,EAAqB3I,OAAAC,OAAA,GAAKgJ,IAC3BhW,EAAAA,cAACgV,EAAyBjI,OAAAC,OAAA,GAAKiJ,KAGtCC,GAA6BlW,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKkJ,GAA4BC,+ECrEhF,MAMA,EANuEjW,IACnE,MAAM,mBAAEkW,EAAkB,QAAEnE,GAAY/R,EAExC,OAAOF,EAAAA,cAACiO,EAAAA,OAAMlB,OAAAC,OAAA,GAAKoJ,GAAqBnE,qFCH5C,MAYA,EAZyE/R,IACrE,MAAM,oBAAEmW,EAAmB,QAAEpE,EAAO,YAAEE,EAAW,MAAEC,GAAUlS,EAE7D,OACIF,EAAAA,cAACiO,EAAAA,OAAMlB,OAAAC,OAAA,GAAKqJ,GACPpE,EACAE,EACAC,uFCPb,MAUA,EAVqElS,IACjE,MAAM,kBAAEoW,EAAiB,QAAErE,EAAO,MAAEsE,GAAUrW,EAC9C,OACIF,IAAAA,cAACiO,EAAAA,OAAMlB,OAAAC,OAAA,GAAKsJ,GACPrE,EACAsE,8ECLb,MAWA,EAXiErW,IAC7D,MAAM,gBAAEsW,EAAe,QAAEvE,EAAO,MAAEG,GAAUlS,EAE5C,OACIF,EAAAA,cAACiO,EAAAA,OAAMlB,OAAAC,OAAA,GAAKwJ,GACPvE,EACAG,8ECNb,MAwBA,EAxB2DlS,IACvD,MAAM,aAAEuW,EAAY,YAAEC,EAAW,MAAE7C,EAAK,QAAEM,GAAYjU,EAEtD,OAAQiU,GAAWN,EACf7T,EAAAA,cAACiO,EAAAA,OAAMlB,OAAAC,OAAA,GAAKyJ,GACPC,EACD1W,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK6G,EAAMA,OACZ7T,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK6G,EAAM8C,aAAc9C,EAAM5B,SACpCjS,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK6G,EAAMC,WACXD,EAAM+C,MACP5W,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK6G,EAAMgD,cACXhD,EAAMiD,SACNjD,EAAMkD,YAGf/W,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK6G,EAAMmD,aACXnD,EAAMoD,aACNpD,EAAMqD,gBAInB,uFCrBR,MAYA,EAZ6EhX,IACzE,MAAM,sBAAEiX,EAAqB,QAAElF,EAAO,YAAEE,EAAW,MAAEC,GAAUlS,EAE/D,OACIF,EAAAA,cAACiO,EAAAA,OAAMlB,OAAAC,OAAA,GAAKmK,GACPlF,EACAE,EACAC,8ECPb,MAAMgF,EAAkD5K,IAA4C,IAA3C,QAAE+G,EAAO,MAAEC,EAAK,aAAEC,EAAY,MAAEC,GAAOlH,EAC5F,OACIxM,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKuG,GACLC,EACAC,EACAC,IAuCP2D,EAAwDzD,IAAwC,IAAvC,MAAEC,EAAK,UAAEC,EAAS,KAAEC,EAAI,QAAEC,GAASJ,EAC9F,OACI5T,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK6G,GACN7T,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK8G,GACLC,EACAC,KAqBjB,EAf6D9T,IACzD,MAAM,cAAEoX,EAAa,UAAEpD,EAAS,QAAEC,EAAO,mBAAEC,EAAkB,YAAErC,EAAW,QAAEE,EAAO,0BAAEsF,GAA8BrX,EAEnH,OACIF,EAAAA,cAACiO,EAAAA,OAAMlB,OAAAC,OAAA,GAAKsK,GACPpD,EAAUI,eAAiBtU,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKoH,IACrCF,EAAUI,eAAiBtU,EAAAA,cAACqX,EAAoBtK,OAAAC,OAAA,GAAKmH,IACtDnU,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK+E,GACLE,EArD0CsC,CAAAA,IAQtD,IARuD,aACxDC,EAAY,MACZC,EAAK,aACLhB,EAAY,eACZiB,EAAc,QACdC,EAAO,yBACPC,EAAwB,gCACxBC,GACHN,EACG,OACIvU,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKwH,GACLC,GACGA,EAAMhP,KAAK7D,GAEA5B,EAAAA,cAACoX,EAAiBrK,OAAAC,OAAA,GAAKpL,MAErC6R,GACGA,EAAahO,KAAI,CAAC1C,EAAwB2C,IAC/B1F,EAAAA,cAACA,EAAAA,SAAc,CAACyO,IAAK/I,GAAQ3C,KAE5C/C,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK0H,GACLC,GACGA,EAAQlP,KAAI,CAACqP,EAAyBpP,IAC3B1F,EAAAA,cAACA,EAAAA,SAAc,CAACyO,IAAK/I,GAAQoP,MAIhD9U,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK4H,GACN5U,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK6H,OA0BTE,CAAawC,gFCxD9B,MAAMC,EAAoChL,IAA4C,IAA3C,QAAE+G,EAAO,MAAEC,EAAK,aAAEC,EAAY,MAAEC,GAAOlH,EAC9E,OACIxM,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKuG,GACLC,EACAC,EACAC,IAKP+D,EAA8DlD,IAAoE,IAAnE,MAAEmD,EAAK,cAAEnC,EAAa,QAAEZ,EAAO,eAAEgD,EAAc,aAAElE,GAAcc,EAChI,OACIvU,EAAAA,cAAAA,EAAAA,SAAA,KACK2X,GACGA,EAAelS,KAAKuO,GACThU,EAAAA,cAAAA,EAAAA,SAAA,KAAGgU,KAElBhU,EAAAA,cAACwX,EAAUzK,OAAAC,OAAA,GAAK0K,IACfjE,GACGA,EAAahO,KAAKuO,GACPhU,EAAAA,cAAAA,EAAAA,SAAA,KAAGgU,KAElBhU,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKuI,GACLZ,GACGA,EAAQlP,KAAKqP,GACF9U,EAAAA,cAAAA,EAAAA,SAAA,KAAG8U,QAc5B8C,EAA+EhE,IAAgC,IAA/B,UAAEiE,EAAS,aAAEpE,GAAcG,EAC7G,OACI5T,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAACwX,EAAUzK,OAAAC,OAAA,GAAK6K,IACfpE,EAAahO,KAAKuO,GACRhU,EAAAA,cAAAA,EAAAA,SAAA,KAAGgU,OAapB8D,EAA2EC,IAA8B,IAA7B,QAAEC,EAAO,aAAEvE,GAAcsE,EACvG,OACI/X,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAACwX,EAAUzK,OAAAC,OAAA,GAAKgL,IACfvE,EAAahO,KAAKuO,GACRhU,EAAAA,cAAAA,EAAAA,SAAA,KAAGgU,OA4DpBiE,EAA0CC,IAAwC,IAAvC,MAAErE,EAAK,UAAEC,EAAS,KAAEC,EAAI,QAAEC,GAASkE,EAChF,OACIlY,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK6G,GACN7T,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK8G,GACLC,EACAC,KAqBjB,EAf+C9T,IAC3C,MAAM,OAAEiY,EAAM,UAAEjE,EAAS,QAAEC,EAAO,mBAAEC,EAAkB,YAAErC,EAAW,QAAEE,EAAO,mBAAEmG,GAAuBlY,EAErG,OACIF,EAAAA,cAACiO,EAAAA,OAAMlB,OAAAC,OAAA,GAAKmL,GACPjE,EAAUI,eAAiBtU,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKoH,IACrCF,EAAUI,eAAiBtU,EAAAA,cAACiY,EAAalL,OAAAC,OAAA,GAAKmH,IAC/CnU,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK+E,GACLE,EAzEmCoG,CAAAA,IAS/C,IATgD,aACjD7D,EAAY,MACZC,EAAK,kBACL6D,EAAiB,sBACjBC,EAAqB,oBACrBC,EAAmB,QACnB7D,EAAO,aACPlB,EAAY,WACZgF,GACHJ,EACG,OACIrY,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKwH,GACLC,GACGA,EAAMhP,KAAK7D,GACU,UAAbA,EAAK6M,KAAmB6J,EAAkBI,WAEtC1Y,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,CAACyB,IAAK7M,EAAK6M,KAAS6J,EAAkBK,4BACvC3Y,EAAAA,cAACwX,EAAUzK,OAAAC,OAAA,GAAKpL,IAChB5B,EAAAA,cAACyX,EAAuB1K,OAAAC,OAAA,GAAKsL,KAIxB,cAAb1W,EAAK6M,KAAuB8J,EAAsBG,WAE9C1Y,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,CAACyB,IAAK7M,EAAK6M,KAAS8J,EAAsBI,4BAC3C3Y,EAAAA,cAACwX,EAAUzK,OAAAC,OAAA,GAAKpL,IAChB5B,EAAAA,cAAC4X,EAAoC7K,OAAAC,OAAA,GAAKuL,KAIrC,YAAb3W,EAAK6M,KAAqB+J,EAAoBE,WAE1C1Y,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,CAACyB,IAAK7M,EAAK6M,KAAS+J,EAAoBG,4BACzC3Y,EAAAA,cAACwX,EAAUzK,OAAAC,OAAA,GAAKpL,IAChB5B,EAAAA,cAAC8X,EAAkC/K,OAAAC,OAAA,GAAKwL,KAK7CxY,EAAAA,cAACwX,EAAUzK,OAAAC,OAAA,GAAKpL,MAE9B6R,GACGA,EAAahO,KAAI,CAAC1C,EAAwB2C,IAC/B1F,EAAAA,cAACA,EAAAA,SAAc,CAACyO,IAAK/I,GAAQ3C,KAE3C4R,GACGA,EAAQlP,KAAI,CAACqP,EAAyBpP,IAC3B1F,EAAAA,cAACA,EAAAA,SAAc,CAACyO,IAAK/I,GAAQoP,KAE3C2D,IAyBI1D,CAAaqD,uFC7I9B,MAAMQ,EAA2CpM,IAA6B,IAA5B,cAAEqM,EAAa,MAAEpE,GAAOjI,EACtE,OACIxM,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK6L,GACLpE,EAAMhP,KAAK7D,GACD5B,EAAAA,cAAAA,EAAAA,SAAA,KAAG4B,EAAKuQ,iBAoBzB2G,EAAqDvE,IAUtD,IAVuD,YACxDwE,EAAW,QACX9G,EAAO,MACPwC,EAAK,SACLuE,EAAQ,MACRjW,EAAK,iBACLkW,EAAgB,WAChBC,EAAU,mBACVC,EAAkB,aAClBjC,GACH3C,EACG,OACIvU,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK+L,GACL9G,EACAwC,EAAMhP,KAAK7D,IACR,MAAM,YAAEwX,EAAW,IAAE3K,EAAG,MAAE+E,EAAK,MAAE6F,EAAK,MAAE3F,GAAU9R,EAClD,OACI5B,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKoM,EAAW,CAAE3K,IAAKA,IACvB+E,EACA6F,EACA3F,MAIZsF,GACGhZ,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKjK,EAAMuW,cACXvW,EAAM8O,MACN9O,EAAMiR,SAGdiF,GAAoBC,EACpBC,GAAsBjC,IAiCnC,EAvB+EhX,IAC3E,MAAM,uBACFqZ,EAAsB,iBACtBC,EAAgB,MAChBH,EAAK,UACLnF,EAAS,QACTjC,EAAO,uBACPwH,EAAsB,YACtBC,EAAW,uBACXC,GACAzZ,EAEJ,OACIF,EAAAA,cAACiO,EAAAA,OAAMlB,OAAAC,OAAA,GAAKuM,EAAsB,CAAEpL,IAAKqL,IACpCvH,EACAoH,EACAnF,EAAU0F,8BAAgCH,EAC1CvF,EAAU2F,eAAiB7Z,EAAAA,cAAC4Y,EAAW7L,OAAAC,OAAA,GAAK0M,IAC5CxF,EAAU4F,0BAA4B9Z,EAAAA,cAAC8Y,EAAgB/L,OAAAC,OAAA,GAAK2M,gHCvFlE,MAAMI,EAA8D7Z,GAChEF,EAAAA,cAACiO,EAAAA,OAAMlB,OAAAC,OAAA,GAAK9M,EAAM8Z,WAAY9Z,EAAMoS,SAG/C,sKCLO,MAAM2H,EAAgGzN,IAKxG,IALyG,MAC1GqF,EAAK,YACLM,EAAW,UACXtO,EAAS,eACTqW,GACH1N,EACG,OACIxM,EAAAA,cAAA,MAAI6D,UAAWA,GACVgO,GAAS7R,EAAAA,cAAA,KAAG6D,UAAWqW,GAAiBrI,GACzC7R,EAAAA,cAAA,SAAImS,0kBCiBT,MAAMgI,EAA0B,gCAOvC,MAAMC,UAAiCpa,EAAAA,UAInCC,YAAYC,GACRC,MAAMD,GA4IO,KAAAma,iBAAoBzO,IACjCnL,KAAKqJ,SAAS,CACVwQ,sBAAuB1O,EAAMI,OAAOuO,WAI3B,KAAAC,2BAA6B,KAC1C/Z,KAAKqJ,SAAS,CACV2Q,2BAA4Bha,KAAKW,MAAMqZ,6BAI9B,KAAAC,SAAWC,MAAAA,IAA2D,IAAAC,EAAAC,EACnF,MAAM,QAAE9Z,EAAO,KAAE8B,EAAI,UAAEmC,GAAcvE,KAAKP,OACpC,iBAAE4a,EAAgB,oCAAEC,GAAwC/V,EAC5DgW,EAAqE,QAApDJ,EAAiC,QAAjCC,EAAGhY,EAAKoY,mBAAmBzV,cAAM,IAAAqV,OAAA,EAA9BA,EAAgCK,yBAAiB,IAAAN,EAAAA,EAAI,GAE/E,UACUO,EAAAA,EAAAA,IAAqB,CAAEC,cAAera,EAAQ4L,eAAiBqO,GACrEva,KAAKqJ,SAAS,CACVuR,kBAAkB,EAClBC,oBAAoB,EACpB7H,kBAAc5N,EACd0V,oBAAqBR,IAE3B,MAAAS,GACE/a,KAAKqJ,SAAS,CACVwR,oBAAoB,EACpBD,kBAAkB,EAClB5H,aAAcqH,EACdS,yBAAqB1V,MAzK7BpF,KAAKW,MAAQ,CACTka,oBAAoB,EACpBD,kBAAkB,EAClBf,uBAAuB,EACvBG,2BAA2B,EAC3BhH,kBAAc5N,EACd0V,yBAAqB1V,GAItBrD,SACH,MAAM,iBACF6Y,EAAgB,mBAChBC,EAAkB,sBAClBhB,EAAqB,0BACrBG,EAAyB,aACzBhH,EAAY,oBACZ8H,GACA9a,KAAKW,OACH,UAAE4D,EAAS,KAAEnC,EAAI,OAAE1B,GAAWV,KAAKP,OACnC,QAAE+R,EAAO,eAAEwJ,GAAmBta,GAC9B,0BAAEua,GAA8B1W,GAChC,mBAAEiW,GAAuBpY,EACzB8Y,EAAYlb,KAAKmb,YAAYX,EAAmBzV,QACtD,IAAIzC,EAA4B0Q,EAG3BkI,GAA2C,YAA9BV,EAAmBY,SACjC9Y,EAAQ2Y,GAEZ,MAAMI,EAAaH,GAAarB,EAE1BtX,EAASC,EAAAA,EAAA,GACRxC,KAAKP,OAAK,IACb6b,8BAA+B,CAC3BnY,YAAanD,KAAKP,MAClB2D,UAAWC,GAAAA,CAAWqW,EAAiBA,IAE3ClI,QAASjS,EAAAA,cAAC+B,EAAAA,GAAIgL,OAAAC,OAAA,CAACnJ,UAAW,GAAGsW,cAAgClI,IAC7DsJ,oBAAqB9a,KAAKub,sBAAsBjZ,EAAOwY,GACvDU,mBAAoBxb,KAAKyb,2BACzBC,uBAAwBb,GACpBtb,EAAAA,cAAA,OAAK6D,UAAW,GAAGsW,gBACfna,EAAAA,cAAA,SACI6D,UAAW,GAAGsW,wBACdiC,KAAK,WAAU,aACHpX,EAAUqX,uBACtBC,SAAU7b,KAAK4Z,mBAEnBra,EAAAA,cAAA,QAAM6D,UAAW,GAAGsW,qBAAoCnV,EAAUuX,6BAClEvc,EAAAA,cAAA,KAAG6D,UAAW,GAAGsW,oBAAmCnW,KAAK,SAASW,QAASlE,KAAK+Z,4BAC3ExV,EAAUqX,yBAIvBG,oBACIxc,EAAAA,cAACyc,EAAAA,MAAK,CACF5Y,UAAW,GAAGsW,WACduC,OAAQjC,EACRkC,mBAAmB,SACnBC,iBAAiB,SACjBC,WAAS,EACTC,MAAM,EACNC,OAAQtc,KAAK+Z,2BAA0B,aAC3BxV,EAAUqX,wBAEtBrc,EAAAA,cAACgd,EAAAA,YAAW,CAACD,OAAQtc,KAAK+Z,4BAA6BxV,EAAUiY,4BACjEjd,EAAAA,cAACkd,EAAAA,UAAS,KACNld,EAAAA,cAACiC,EAAAA,GAA0B,CAAC+I,KAAMyQ,MAI9CxE,aAAcoE,GACVrb,EAAAA,cAAA,OAAK6D,UAAW,GAAGsW,uBACfna,EAAAA,cAAC0E,EAAAA,OAAM,CACHC,QAASlE,KAAKia,SACd7W,UAAW,GAAGsW,6BACdnW,KAAK,SAAQ,aACDgB,EAAUmY,mBACtBtL,MAAO7M,EAAUmY,mBACjBC,UAAWtB,EAAU,iBACLA,GAEf9W,EAAUmY,uBAM3B,OAAO1c,KAAKP,MAAMmF,WAAWrC,GAGzBgZ,sBAAsBvI,EAAkC8H,GAC5D,IAAI8B,EAAmC,KAMvC,OALI5J,EACA4J,EAAkBrd,EAAAA,cAACsd,EAAAA,MAAK,CAACC,MAAM,UAAU9J,GAClC8H,IACP8B,EAAkBrd,EAAAA,cAACsd,EAAAA,MAAK,CAACC,MAAM,WAAWhC,IAEvC8B,EAGHnB,2BACJ,MAAM,OAAE/a,GAAWV,KAAKP,MAClBsd,EAA6B,GAC7BvB,EAAqB9a,EAAO8a,mBAElC,OAAKA,EAIEA,EAAmBxW,KAAI,CAAC0M,EAAasL,KAAQ,IAAAC,EAChD,OACI1d,EAAAA,cAAA,OAAKyO,IAAKgP,EAAM5Z,UAAW,GAAGsW,qBAC1Bna,EAAAA,cAAC+B,EAAAA,GAAI,CAAC8B,UAAW,GAAGsW,kBAAiCnP,KAAMmH,EAAYF,UACvEjS,EAAAA,cAAA,UAC6B,QAD7B0d,EACKvL,EAAYwL,oBAAY,IAAAD,OAAA,EAAxBA,EAA0BjY,KAAI,CAACmY,EAAaC,IAErC7d,EAAAA,cAACia,EAAsC,CACnCxL,IAAKoP,EACLha,UAAW,GAAGsW,oBACdD,eAAgB,GAAGC,gBACnBtI,MAAO+L,EAAYpK,MACnBrB,YAAayL,EAAY5S,cAf1CwS,EAyBP5B,YAAYkC,GAChB,OACKrM,EAAAA,iBAAiBC,kBAAkBoM,KAAUC,EAAAA,iBAAiBC,cAAcF,EAAK5C,qBAAuC,IAAjB4C,EAAKG,SAwCzH,oFCrNA,MAsBA,EAtB2E/d,IACvE,MAAM,8BACF6b,EAA6B,QAC7B9J,EAAO,oBACPsJ,EAAmB,mBACnBU,EAAkB,uBAClBE,EAAsB,oBACtBK,EAAmB,aACnBvF,GACA/W,EACJ,OACIF,EAAAA,cAACiO,EAAAA,OAAMlB,OAAAC,OAAA,GAAK+O,GACP9J,EACAsJ,EACAU,EACAE,EACAK,EACAvF,8ECjBb,MA+BA,EA/BmE/W,GAC3DA,EAAMge,4BAEFle,EAAAA,cAACiO,EAAAA,OAAMlB,OAAAC,OAAA,GAAK9M,EAAMie,uBACbje,EAAMke,wBACNle,EAAMme,wBACNne,EAAMoe,4BAKfpe,EAAMqe,kCAEFve,EAAAA,cAACiO,EAAAA,OAAMlB,OAAAC,OAAA,GAAK9M,EAAMie,uBACbje,EAAMke,wBACNle,EAAMqe,mCAMfve,EAAAA,cAACiO,EAAAA,OAAMlB,OAAAC,OAAA,GAAK9M,EAAMie,uBACbje,EAAMse,2BACNte,EAAMke,wBACNle,EAAMue,4BACNve,EAAMwe,sBACNxe,EAAMye,yHCzBnB,MAAMC,EAAmBA,CACrBC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,IAEID,EACOnf,EAAAA,cAAAA,EAAAA,SAAA,KAAGmf,GAEVN,EACOA,EAAUpZ,KAAI4Z,IAAW,IAAAC,EAC5B,OACItf,EAAAA,cAAA,OAAK6D,UAAU,sBAAsB4K,IAAK,GAAsB,QAAtB6Q,EAAGD,EAASE,kBAAU,IAAAD,EAAAA,EAAI,MAAMrd,EAAAA,GAASC,UAAU2N,cACxFwP,EAASG,SACTR,GAAiBK,EAASI,cACvBzf,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKqS,EAASI,cAAcC,gBAAiBL,EAASI,cAAcE,kBACzE,KACHN,EAASO,mBACN5f,EAAAA,cAACkO,EAAAA,KAAI,CAACrK,UAAU,gCACXwb,EAASQ,OACTR,EAASS,cACTT,EAASO,oBAGd5f,EAAAA,cAAAA,EAAAA,SAAA,KACKqf,EAASQ,OACTR,EAASS,mBAO3BV,EACHpf,EAAAA,cAAA,OAAK6D,UAAU,wBACX7D,EAAAA,cAAA,KAAG6D,UAAU,iBAAiBib,GAC7BG,GAGLjf,EAAAA,cAAAA,EAAAA,SAAA,KAAGkf,GA8HLa,EAA6BA,CAC/BC,EACAC,EACAC,EACAC,EACAd,EACAe,KACA,IAAAC,EAEA,IAAIC,EAOJ,OALAA,GAHmE,QAA9CD,EAAwBhB,EAASI,qBAAa,IAAAY,OAAA,EAAtBA,EAAwBE,iBAGtCP,EAAaC,EACvClC,EAAAA,iBAAiBC,cAAcoC,KAChCE,EAAajB,EAASxc,MAAQwc,EAASxc,KAAK2c,SAASgB,eAAiBJ,EAAwBF,EAAoBI,GAIlHtgB,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAAA,OAAK6D,UAAU,8CACX7D,EAAAA,cAAA,KAAG6D,UAAW,8CAA8Cyc,EAAWxe,uBACvE9B,EAAAA,cAAA,KAAG6D,UAAW,8CAA8Cyc,EAAWxe,iBAAkBwe,GA/CvEG,EAACpB,EAA+Bc,KAAyB,IAAAO,EAAAC,EAAAC,EACvF,MAAML,EAA6D,QAA9CG,EAAwBrB,EAASI,qBAAa,IAAAiB,OAAA,EAAtBA,EAAwBH,gBACrE,OACIvgB,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAACkO,EAAAA,KAAI,CAACrK,UAAU,oDACX0c,EACGvgB,EAAAA,cAAA,KAAG6D,UAAU,uDACc,QADuC8c,EAC7DtB,EAASI,qBAAa,IAAAkB,OAAA,EAAtBA,EAAwBE,eACxBV,EACsB,QADTS,EACbvB,EAASI,qBAAa,IAAAmB,OAAA,EAAtBA,EAAwBE,aAE7B,QAqCHL,CAA0BpB,EAAUc,MA8FrD,EAxC4CjgB,IAAqB,IAAA6gB,EAAAC,EAhMtCC,EAwEAC,EAwHsC,OAC7DlhB,EAAAA,cAAA,MAAA+M,OAAAC,OAAA,CAAKnJ,UAAW3D,EAAM2D,UAAWyC,GAAIpG,EAAMoG,IAAQpG,EAAMihB,uBAAuBjhB,IAC3EA,EAAM2R,QACK,QAAXkP,EAAC7gB,EAAMkhB,YAAI,IAAAL,GAAVA,EAAYM,iBAAkBnhB,EAAMohB,mBA3HnBJ,EA2HyDhhB,EAAMohB,iBAzHlFthB,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKkU,EAAWK,yBAChBL,EAAWM,iBACXN,EAAWO,oBACXP,EAAWQ,mBAsHnBxhB,EAAMyhB,sBA/CezhB,CAAAA,GACtBA,EAAM0hB,gBAAkBha,EAAAA,gBAAgBC,YAAY3H,EAAM0hB,gBAEtD5hB,EAAAA,cAAA,OAAK6D,UAAU,wBACV3D,EAAM0hB,eAAenc,KAAIoc,IAAY,IAAAC,EAClC,OACI9hB,EAAAA,cAAA,OAAKyO,IAAKoT,EAAU,GAAGtC,WAAY1b,UAAU,+BACxCkc,EACG7f,EAAM8E,UAAUgb,WAChB9f,EAAM8E,UAAUib,aAChB/f,EAAM8E,UAAU+c,kBAChB7hB,EAAM8E,UAAUmb,cAChB0B,EAAU,GACwC,QADtCC,EACZ5hB,EAAMa,QAAQ4L,cAAcC,eAAeoV,eAAO,IAAAF,OAAA,EAAlDA,EAAoDG,uBAEvDrD,EACGiD,EACA3hB,EAAM8E,UAAUkd,cAChBhiB,EAAM6e,iBACN7e,EAAM8e,cACN9e,EAAM+e,qBACN/e,EAAMgf,iBACNhf,EAAMif,kBACNjf,EAAMkf,qBAQ3Blf,EAAMkf,eACTpf,EAAAA,cAAA,OAAK6D,UAAU,uBACX7D,EAAAA,cAAA,OAAK6D,UAAU,wBACX7D,EAAAA,cAAA,KAAG6D,UAAU,iBAAiB3D,EAAM8E,UAAUkd,eAC7ChiB,EAAM+e,uBAIfjf,EAAAA,cAAAA,EAAAA,SAAA,KAAGE,EAAMgf,kBASLiD,CAAqBjiB,GAErBF,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK9M,EAAM6e,kBACXH,EACG1e,EAAM2hB,UACN3hB,EAAM8E,UAAUkd,cAChBhiB,EAAM6e,iBACN7e,EAAM8e,cACN9e,EAAM+e,qBACN/e,EAAMgf,iBACNhf,EAAMif,kBACNjf,EAAMkf,iBAIjBlf,EAAMkiB,qBACHpiB,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK9M,EAAMmiB,qBACXniB,EAAMkiB,oBACI,QAAVpB,EAAA9gB,EAAMkhB,YAAI,IAAAJ,GAAVA,EAAYK,eApMMiB,EAC/BC,EACAC,EACAtiB,IAEKqiB,EAKDviB,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKwV,GACLD,EAAoBE,SACpBF,EAAoBG,SACpBH,EAAoBI,QACpBJ,EAAoBK,aARzB1iB,EAAMa,QAAQ+B,UAAUC,MAAM,uDACvB,MA8LOuf,CAA2BpiB,EAAM2iB,wBAAyB3iB,EAAMsiB,kBAAmBtiB,GA3KxE4iB,EAC7BC,EACAP,EACAtiB,IAEK6iB,EAKD/iB,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKwV,GACLtiB,EAAM8iB,UACND,EAAkBE,SAClBF,EAAkBG,SAClBH,EAAkBI,YAClBJ,EAAkBK,IAClBL,EAAkBM,eAAiBN,EAAkBM,eAAiB,KACtEN,EAAkBH,aAXvB1iB,EAAMa,QAAQ+B,UAAUC,MAAM,qDACvB,MAqKO+f,CAAyB5iB,EAAMojB,sBAAuBpjB,EAAMsiB,kBAAmBtiB,IAzN1E+gB,EA0NQ/gB,EAAMqjB,qBAzNlB3b,EAAAA,gBAAgBC,YAAYoZ,EAAUuC,QAIrDxjB,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKiU,EAAUwC,SACfxC,EAAUyC,OACVzC,EAAUuC,QALR,KAyNEtjB,EAAMyjB,2BACNzjB,EAAM0jB,sBACN1jB,EAAM2jB,uBAAyBjc,EAAAA,gBAAgBC,YAAY3H,EAAM2jB,uBAC9D7jB,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK9M,EAAM4jB,+BAAgC5jB,EAAM2jB,uBACtD,KACH3jB,EAAM+e,qBACN/e,EAAM6jB,8BAGd7jB,EAAM8e,mICzRR,MAAMgF,EAAwE9jB,IACjF,MAAM,cAAE+jB,GAAkB/jB,EAC1B,OACIF,EAAAA,cAACiO,EAAAA,OAAMlB,OAAAC,OAAA,GAAKiX,GACP/jB,EAAM+R,QACN/R,EAAMgkB,UACNhkB,EAAMikB,WAKnB,8ECjBA,MAWA,EAXmEjkB,IAC/D,MAAM,iBAAEkkB,EAAgB,eAAEC,EAAc,MAAEhL,GAAUnZ,EAEpD,OACIF,EAAAA,cAACiO,EAAAA,OAAMlB,OAAAC,OAAA,GAAKoX,GACP/K,EACAgL,qFCAb,MAAMC,EAA6D9X,IAAkC,IAAjC,oBAAE+X,EAAmB,KAAEC,GAAMhY,EAC7F,OAAKgY,GAAwB,IAAhBA,EAAK9iB,OAKd1B,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKuX,GACLC,EAAK/e,KAAKob,GAEH7gB,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK6T,EAAe4D,eAAc,CAAEhW,IAAKoS,EAAe6D,KAAI,aAAa,qCACzE7D,EAAe8D,YACf9D,EAAe1O,YACf0O,EAAe+D,UAVzB,MAkBTC,EAA4DtQ,IAA2C,IAA1C,eAAEkQ,EAAc,YAAEtS,EAAW,MAAEyS,GAAOrQ,EACrG,OACIvU,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKyX,GACLtS,EACAyS,IAiCb,EA5BiF1kB,IAC7E,MAAM,wBACF4kB,EAAuB,iBACvBtL,EAAgB,UAChBtF,EAAS,gBACT6Q,EAAe,uBACfC,EAAsB,MACtB3L,EAAK,QACL4L,EAAO,WACP/L,EAAU,WACVgM,EAAU,aACVhO,GACAhX,EAEJ,OAEIF,EAAAA,cAACiO,EAAAA,OAAMlB,OAAAC,OAAA,GAAK8X,EAAuB,CAAE3W,IAAKqL,IACrCtF,EAAUiR,WAAaF,EACvB/Q,EAAUkR,SAAW/L,EACrBnF,EAAUmR,YAAcN,GAAmB/kB,EAAAA,cAACskB,EAAkBvX,OAAAC,OAAA,GAAK+X,IACnE7Q,EAAUoR,gBAAkBN,GAA0BhlB,EAAAA,cAAC6kB,EAAsB9X,OAAAC,OAAA,GAAKgY,IAClF9Q,EAAU+E,kBAAoBC,EAC9BhF,EAAUqR,kBAAoBL,EAC9BhR,EAAUiF,oBAAsBjC,8ECpD7C,MAAMsO,EAA8DhZ,IAAA,IAAC,mBAAEiZ,EAAkB,MAAEhR,GAAOjI,EAAA,OAC9FxM,EAAAA,cAAA,OAAK6D,UAAW4hB,GAAqBhR,IAqBzC,EAlBiGF,IAO5F,IAP6F,4BAC9FmR,EAA2B,MAC3BjR,EAAK,QACLkR,EAAO,QACPV,EAAO,MACPpT,EAAK,YACL+T,GACHrR,EACG,MAAMkR,EAA6BE,EAAU,gBAAkB,mBAC/D,OACI3lB,EAAAA,cAACiO,EAAAA,OAAMlB,OAAAC,OAAA,GAAK0Y,GACR1lB,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK4Y,GAAc/T,IACtB8T,GAAWV,EACbjlB,EAAAA,cAACwlB,EAAuB,CAACC,mBAAoBA,EAAoBhR,MAAOA,gFCtBpF,MAAMoR,EAAoDrZ,IAcrD,IAdsD,QACvDyF,EAAO,WACP6T,EAAU,OACVC,EAAM,aACNC,EAAY,uBACZC,EAAsB,8BACtBC,EAA6B,mBAC7BC,EAAkB,mBAClBC,EAAkB,yBAClBC,EAAwB,kBACxBC,EAAiB,yBACjBC,EAAwB,0BACxBC,EAAyB,0BACzBC,GACHja,EACG,OACIxM,EAAAA,cAAAA,EAAAA,SAAA,KACKiS,EACA6T,EACD9lB,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK+Y,GACLC,EAAavgB,KAAKihB,GAEX1mB,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK0Z,EAAYC,2BAA0B,CAAElY,IAAKiY,EAAYjY,MAC9DiY,EAAY7U,MACZ6U,EAAYE,oBACZF,EAAYG,aACZH,EAAYI,mBACZJ,EAAYK,mBAK7B/mB,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKiZ,GACLE,EACAC,EACAC,EACAC,GACGtmB,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKkZ,GACLK,EACAC,EACAC,MAQnBO,EAAsDzS,IAA2C,IAA1C,QAAEtC,EAAO,kBAAEgV,EAAiB,OAAEC,GAAQ3S,EAC/F,OACIvU,EAAAA,cAAAA,EAAAA,SAAA,KACKiS,EACAgV,EACAC,IAiBb,EAZiEhnB,IAC7D,MAAM,gBAAEinB,EAAe,iBAAE3N,EAAgB,MAAEH,EAAK,UAAEnF,EAAS,YAAEkT,EAAW,WAAEC,GAAennB,EAEzF,OACIF,EAAAA,cAACiO,EAAAA,OAAMlB,OAAAC,OAAA,GAAKma,EAAe,CAAEhZ,IAAKqL,IAC7BH,EACAnF,EAAUoT,eAAiBtnB,EAAAA,cAACgnB,EAAmBja,OAAAC,OAAA,GAAKoa,IACpDlT,EAAUqT,kBAAoBvnB,EAAAA,cAAC6lB,EAAkB9Y,OAAAC,OAAA,GAAKqa,4HCxD5D,MAAMG,EAAwEhb,IAKhF,IALiF,wBAClFib,EAAuB,6BACvBC,EAA4B,iBAC5Bta,EAAgB,QAChBua,GACHnb,EACG,MAAMgB,GAAoBC,EAAAA,EAAAA,kBAAiB,QAASL,EAAmB,kBACjEkD,GAAaC,EAAAA,EAAAA,wBAAuBnD,EAAmBI,GAE7D,OACIxN,EAAAA,cAAA,SAAA+M,OAAAC,OAAA,CACIoP,KAAK,SACLvY,UAAU,8CAA6C,aAC3C6jB,EACZ/iB,QAASgjB,GACLrX,GAEHmX,SCbN,MAAMG,UAA8B5nB,EAAAA,cAA3CC,cAAA,oBAeqB,KAAA4nB,kBAAqBC,IAClC,IAAKA,GAAgC,IAApBA,EAASpmB,OACtB,OAAO,KAEX,MAAMqmB,EAAuC,GAoB7C,OAnBAD,EAASnZ,SAAQ,CAACqZ,EAAMtiB,KAEpB,MAAM8H,GAAUC,EAAAA,EAAAA,kBAAiB,QAAShN,KAAKP,MAAMkN,iBAAkB,GAAI,IACrE7G,EAAWyhB,EAAKzhB,SAAWyhB,EAAKzhB,SAAW,GACjDiH,EAAQ4C,cAAcC,MAAQ9J,EAC9B,MAAM+J,GAAaC,EAAAA,EAAAA,wBAAuB9P,KAAKP,MAAMkN,iBAAkBI,GACjEya,EAAoC,CACtCrf,UAAWof,EAAKpf,UAChB/E,UAAW,OACX0C,SAAUyhB,EAAKzhB,SACfuC,QAASkf,EAAKlf,QAAQC,eACtBQ,aAAcye,EAAKze,aACnBvF,KAAM,OACNiH,qBAAsBqF,EACtB3L,SAAS+L,EAAAA,EAAAA,kBAAiBjQ,KAAKP,MAAMkN,iBAAkBI,EAASjH,IAEpEwhB,EAAcpiB,KAAKsiB,MAGhBF,GAtCJvlB,SACH,MAAMulB,EAAgBtnB,KAAKonB,kBAAkBpnB,KAAKP,MAAMkS,OACxD,OACIpS,EAAAA,cAAA,QAAM6D,UAAU,mCACXkkB,GAAiBA,EAAcrmB,OAAS,EACrC1B,EAAAA,cAACkoB,EAAAA,GAAc,CACX9V,MAAO2V,EACPI,UAAW,CAAEC,aAAc3nB,KAAKP,MAAMkoB,aAAcxb,eAAgBnM,KAAKP,MAAM0M,kBAEnF,4kBCOpB,MAAMyb,UAAyBroB,EAAAA,cAS3BC,YAAmBC,GACfC,MAAMD,GAPO,KAAAkN,kBAAsCC,EAAAA,EAAAA,oBACnD5M,KAAKP,MAAMa,QAAQC,QAAQsM,kBAC3B7M,KAAKP,MAAMqN,aACX9M,KAAKP,MAAM4C,WA2FR,KAAAwlB,qBAAwBC,GAAuB3c,IAA8C,IAAA4c,EAC/D,QAAjCA,EAAI/nB,KAAKP,MAAMiB,OAAOsnB,mBAAW,IAAAD,GAA7BA,EAAgCD,KAChC9nB,KAAKP,MAAMiB,OAAOsnB,YAAYF,GAAWhiB,SAAWqF,EAAMI,OAAO0c,QAQlE,KAAAC,oBAAuB/c,IAC1BnL,KAAKP,MAAMiB,OAAOmR,QAAU1G,EAAMI,OAAO0c,OAjGzCjoB,KAAKW,MAAQ,CAAEwnB,SAAS,GACxBnoB,KAAKooB,UAAY7oB,EAAAA,YACjBS,KAAKqoB,WAAaroB,KAAKqoB,WAAWjoB,KAAKJ,MAGpCuB,oBACH,MAAM,QAAEjB,GAAYN,KAAKP,MAErBa,GAAWA,EAAQC,SAAWD,EAAQC,QAAQ+nB,UAAYhoB,EAAQC,QAAQ+nB,QAAQC,kBAClFvoB,KAAKqJ,SAAS,CAAE8e,SAAS,IAI1BpmB,SACH,MAAM,OAAErB,EAAM,QAAEJ,EAAO,UAAEiE,EAAS,UAAElC,GAAcrC,KAAKP,OACjD,wBAAEunB,EAAuB,uBAAEwB,GAA2BjkB,GACtD,QAAE4jB,GAAYnoB,KAAKW,MAEnB4nB,EAAiBjoB,GAAWA,EAAQC,SAAWD,EAAQC,QAAQ+nB,SAAWhoB,EAAQC,QAAQ+nB,QAAQC,iBACxG,IAAIE,EAEJ,IACIA,EAAe/nB,EACjB,MAAO4B,GAEL,OADAD,EAAUC,MAAM,+DAA+DA,KACxE/C,EAAAA,cAAA,WAAM+C,GAGjB,GAAIimB,IAAmBJ,EAEnB,OADAnoB,KAAKP,MAAMa,QAAQ+B,UAAUC,MAAM,2DAC5B,KAGX,IAAKd,EAAAA,GAA0BC,UAC3B,OAAOlC,EAAAA,cAAAA,EAAAA,SAAA,MAGX,MAAMgD,EAASC,EAAAA,EAAA,GACRxC,KAAKP,OAAK,IACbipB,UAAW1oB,KAAKqoB,WAChBM,uBAAwB,CACpBxlB,YAAanD,KAAKP,MAClB2D,UAAWC,GAAAA,CAAW,uBAAwBolB,EAAarlB,WAC3DsK,IAAK1N,KAAKooB,WAEdQ,WAAY,CACRxlB,UAAW,kCACX0Z,MAAO,QACPT,MAAM,GAEVwM,QAAS,CACLzlB,UAAW,iCAEfmH,KAAMke,EAAa5W,SACftS,EAAAA,cAACiC,EAAAA,GAA0B,CACvB4B,UAAU,6BACVmH,KAAMke,EAAa5W,QACnB6V,UAAW,CAAEoB,OAAQ9oB,KAAKkoB,oBAAqB/b,eAAgBnM,KAAKP,MAAMa,QAAQC,WAG1FoR,MAAOxK,EAAAA,gBAAgBC,YAAYqhB,EAAaT,cAC5CzoB,EAAAA,cAAC4nB,EAAqB,CAClBxV,MAAO8W,EAAaT,YACpBL,aAAc3nB,KAAK6nB,qBACnB1b,eAAgBnM,KAAKP,MAAMa,QAAQC,QACnCoM,iBAAkB3M,KAAK2M,mBAG/Boc,aACIxpB,EAAAA,cAACwnB,EAA4B,CACzBG,QAASlnB,KAAKqoB,WACdrB,wBAAyBA,EACzBC,6BAA8BuB,EAC9B7b,iBAAkB3M,KAAK2M,qBAKnC,OAAO3M,KAAKP,MAAMmF,WAAWrC,GAsBzB8lB,aACJ,MAAM,QAAE/nB,GAAYN,KAAKP,MAErBa,GAAWA,EAAQC,SAAWD,EAAQC,QAAQ+nB,UAC9ChoB,EAAQC,QAAQ+nB,QAAQU,mBACxBC,SAASC,UAEblpB,KAAKqJ,SAAS,CAAE8e,SAAS,KAIjC,oFCxJA,MAeA,EAfmE1oB,IAC/D,MAAM,uBAAEkpB,EAAsB,WAAEC,EAAU,QAAEC,EAAO,aAAEE,EAAY,KAAExe,EAAI,MAAEoH,GAAUlS,EAEnF,OACIF,EAAAA,cAACiO,EAAAA,OAAMlB,OAAAC,OAAA,GAAKoc,GACRppB,EAAAA,cAACsd,EAAAA,MAAK,CAACzZ,UAAWwlB,EAAWxlB,UAAW0Z,MAAO8L,EAAW9L,MAAOT,KAAMuM,EAAWvM,MAC9E9c,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKsc,GACLte,EACAoH,GAEJoX,8GC+BjB,MAAMI,EAAsBC,IACxB,MAAMC,EAAWD,GAAsBA,EAAmBrkB,OAC1D,OAAOxF,EAAAA,cAAAA,EAAAA,SAAA,KAAG8pB,EAAWA,EAASC,WAAaD,EAAStiB,KAAO,KA4E/D,SAASwiB,EAAqBvV,GAC1B,OACIzU,EAAAA,cAAAA,EAAAA,SAAA,KACKyU,GAASA,EAAM/S,OAAS,EACnB+S,EAAMhP,KAAI,CAACwkB,EAAuBvkB,IACvB1F,EAAAA,cAACA,EAAAA,SAAc,CAACyO,IAAK/I,GAAQukB,KAExC,MAKlB,QAjI+C/pB,IAC3C,MAAM,UAAEgqB,EAAS,gBAAEC,EAAe,sBAAEC,EAAqB,QAAEC,GAAYnqB,EACvE,OACIF,EAAAA,cAACiO,EAAAA,OAAMlB,OAAAC,OAAA,GAAKkd,GACRlqB,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKmd,GACNnqB,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKod,GACLlqB,EAAMoqB,QACNpqB,EAAMqqB,KACNP,EAAqB9pB,EAAMsqB,QAC3BtqB,EAAMuqB,eAuE3B,SAA6BvqB,EAAyBwqB,GAClD,MAAM,mCACFC,EAAkC,0CAClCC,EAAyC,0BACzCC,EAAyB,YACzBC,EAAW,WACXC,EAAU,aACVC,GACA9qB,EAEJ,GAAIyqB,EAAoC,CACpC,MAAMM,EAAmBnnB,GAAAA,CACrB6mB,EAAmC9mB,UACnC6mB,EAAkB,iBAAmB,mBAEzC,GAAIE,EACA,OACI5qB,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK2d,EAAkC,CAAE9mB,UAAWonB,IACpDJ,EACD7qB,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK4d,KACLI,GAAeA,EAAavlB,KAAKuiB,GAA0BA,IAC3D8C,IAIV,GAAIC,EACP,OACI/qB,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK2d,EAAkC,CAAE9mB,UAAWonB,IACpDF,GAMjB,OAAO,KAxGUG,CAAoBhrB,GAAO,GAC3BA,EAAMirB,oBACPnrB,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKqd,IACTnqB,EAAMkrB,SACNpB,EAAqB9pB,EAAMmrB,cAShD,SAA6BnrB,GACzB,MAAM,QAAEmqB,EAAO,yBAAEiB,EAAwB,oBAAEC,GAAwBrrB,EACnE,OACIF,EAAAA,cAACwrB,EAAAA,SAAQ,CAAC3nB,UAAU,mCAAmC6Y,QAAS6O,GAC5DvrB,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKse,GACLtB,EAAqB9pB,EAAMsqB,QAgB5C,SAAmCtqB,EAAyBwqB,GACxD,MAAM,mCAAEC,EAAkC,YAAEG,EAAW,WAAEC,EAAU,KAAEloB,EAAI,aAAEmoB,GAAiB9qB,EAE5F,GAAIyqB,EAAoC,CACpC,MAAMM,EAAmBnnB,GAAAA,CACrB,oBACA6mB,EAAmC9mB,UACnC6mB,EAAkB,iBAAmB,mBAGzC,GAAIM,EACA,OACIhrB,EAAAA,cAACyrB,EAAAA,OAAM,CACH5nB,UAAWonB,EACXS,UAAU,yBACVC,WAAW,0BACXC,eAAe,MACfC,iBAAkBjC,EAAmB/mB,EAAKgnB,qBAE1C7pB,EAAAA,cAAA,aACKgrB,GAAeA,EAAavlB,KAAKuiB,GAA0BA,IAC3D8C,IAIV,GAAIC,EACP,OACI/qB,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK2d,EAAkC,CAAE9mB,UAAWonB,IACpDF,GAKjB,OAAO,KAhDMe,CAA0B5rB,GAAO,GACjCA,EAAM6rB,mBACN7rB,EAAMmrB,aAEXrrB,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKqd,IACTL,EAAqB9pB,EAAM8rB,UAlBvBC,CAAoB/rB,GACrBF,EAAAA,cAACkO,EAAAA,KAAI,CAACrK,UAAU,2BAA2BmmB,EAAqB9pB,EAAM8rB,+uBCQ/E,MAAM1hB,UAA2BtK,EAAAA,cAapCC,YAAYC,GACRC,MAAMD,GAbF,KAAAqK,aAAuB,EAEd,KAAA2hB,qBAA+B,EAE/B,KAAAC,UAAoB,GAqcpB,KAAA1hB,qBAAuB,CAACC,EAA0BC,IAA0B,KACzF,MAAMpE,EAAWoE,GAAUA,EAAOpE,SAAWoE,EAAOpE,SAAW,GACzDqE,EAAiC,CAAC,CAAEzB,IAAKuB,EAAkBG,QAAStE,IAGtEqB,EAAAA,gBAAgBC,YAAY8C,EAAOlC,qBACnCkC,EAAOlC,mBAAmBhD,KAAI7D,IAC1B,GAAIA,GAAQA,EAAKsH,MAAO,CACpB,MAAM4B,EAAWlJ,EAAKsH,MAAMC,IACtB4B,EAA+BnJ,EAAKsH,MAAMhG,cAChD0H,EAAiBjF,KAAK,CAClBwD,IAAK2B,EACLD,QAASjJ,EAAKoJ,KACd9H,cAAe6H,EACfE,qBAAsB,CAAEnC,QAASlH,EAAKkH,QAAQC,sBAK9DtI,KAAKqJ,SAAS,CACVoB,cAAeN,EAAiBlJ,OAAS,EAAIkJ,EAAmB,CAAC,CAAEzB,IAAK,UACxEgC,qBAAsB5E,KAUb,KAAA6E,sBAAwB,CAACvI,EAAqBwI,IAAsB,KAC5E5K,KAAKP,MAAMiF,aASZ1E,KAAKqJ,SAAS,CACVyB,WAAY1I,EAAKyD,GACjBmF,WAAYJ,KAVhB5K,KAAKqJ,SAAS,CACVyB,WAAY9K,KAAKW,MAAMmK,YAAc9K,KAAKW,MAAMmK,aAAe1I,EAAKyD,QAAMT,EAAYhD,EAAKyD,GAC3FmF,WAAYJ,IAEZ5K,KAAKP,MAAMiE,mBACX1D,KAAKgK,qBAAqB5H,EAAK6D,YAAc7D,EAA7CpC,IASRA,KAAK2rB,eAMQ,KAAAA,YAAc,KACvB3rB,KAAKP,MAAMiF,cACXknB,YAAW,KACP5rB,KAAKoL,UAAYpL,KAAKoL,SAASC,SAAWrL,KAAKoL,SAASC,QAAQkC,UACjE,IAQM,KAAArC,oBAAuBC,IAChCnL,KAAKoL,SAASC,UAAYrL,KAAKoL,SAASC,QAAQC,SAASH,EAAMI,SAC/DvL,KAAKqJ,SAAS,CACVyB,gBAAY1F,EACZqF,cAAe,QASV,KAAAe,oBAAuBL,IAChCnL,KAAKoL,SAASC,UAAYrL,KAAKoL,SAASC,QAAQC,SAASH,EAAMM,gBAC/DzL,KAAK0L,iBAiBI,KAAAmgB,aAAgB1gB,IAC7B,GAAIA,EAAM2gB,UAAY9rB,KAAK0rB,UAAW,CAClC,IAAK1rB,KAAKP,MAAMiF,aAAc,CAC1B,MAAMqnB,EAAgBC,MAAMC,KAAKjsB,KAAKoL,SAASC,QAAS6gB,YACxD,IAAK,MAAM/qB,KAAQ4qB,EAAe,CAC9B,MAAMI,EAAkBhrB,EAAKirB,WACyB,SAAlDD,EAAgBE,aAAa,kBAC7BF,EAAgB5e,SAI5BvN,KAAK0L,kBAII,KAAAG,kBAAqBpB,IAClC,IAAKA,IAAkBA,EAAc/B,IACjC,OAAO,KAGX,MAAM4jB,GAAmBrgB,EAAAA,EAAAA,kBAAiBxB,EAAc/B,IAAK1I,KAAKP,MAAMa,QAAQ4L,cAAcC,eAAeC,aACvGN,EAAuC,CACzCpJ,UAAW,CACPC,GAAI,CAAEC,EAAG,kBAAmBC,EAAG,EAAGC,EAAG,GACrCyG,GAAI,CAAE3G,EAAG,kBAAmBC,EAAG,EAAGC,EAAG,GACrC0G,GAAI,CAAE5G,EAAG,kBAAmBC,EAAG,EAAGC,EAAG,GACrC2G,GAAI,CAAE7G,EAAG,kBAAmBC,EAAG,EAAGC,EAAG,IAEzCE,UAAU,GAEd,QAAyBoC,IAArBknB,EAAgC,CAAC,IAADvgB,EAAAC,EAChC,MAAMugB,EAAwB,CAAE7jB,IAAK4jB,GACrC,OACI/sB,EAAAA,cAAC8M,EAAAA,GAAKC,OAAAC,OAAA,CACFJ,eAAgBnM,KAAKP,MAAMa,QAAQ4L,cAAcC,eACjD/I,UAAU,sBACNmpB,EAAS,CACbtpB,aAAcjD,KAAKP,MAAMa,QAAQC,QAAQ0C,aACzCR,cAAqF,QAAxEsJ,EAA6B,QAA7BC,EAAEvB,EAAchI,qBAAa,IAAAuJ,EAAAA,EAAIhM,KAAKP,MAAMiB,OAAO8L,6BAAqB,IAAAT,EAAAA,EAAID,EACzFW,oBAAoB,OACpBlJ,KAAK,WACLsC,GAAI,GAAG4E,EAAc/B,qBACrB0B,QAASK,EAAcL,WAInC,OAAO,MAOM,KAAAoiB,gBAAmBC,IAChC,MAAM,eAAEC,GAAmB1sB,KAAKW,MAE1BgsB,EAAU,CAAE,MADoCvnB,IAA3BqnB,EAAYG,WAA2BH,EAAYG,WAAa,IAC3DH,EAAYxQ,QAC5Cjc,KAAKqJ,SAAS,CAAEqjB,eAAclqB,EAAAA,EAAA,GAAOkqB,GAAmBC,MArlBxD3sB,KAAKoL,SAAW7L,EAAAA,YAChBS,KAAKW,MAAQ,CAAEmK,gBAAY1F,EAAW4F,gBAAY5F,EAAWsF,qBAAsB,GAAIgiB,eAAgB,IACvG1sB,KAAK0L,cAAgB1L,KAAK0L,cAActL,KAAKJ,MAC7CA,KAAK6rB,aAAe7rB,KAAK6rB,aAAazrB,KAAKJ,MAC3CA,KAAK2M,kBAAmBC,EAAAA,EAAAA,oBACpB5M,KAAKP,MAAMa,QAAQC,QAAQsM,kBAC3B7M,KAAKP,MAAMqN,aACX9M,KAAKP,MAAM4C,WAEfrC,KAAK+M,SAAUC,EAAAA,EAAAA,kBAAiB,QAAShN,KAAK2M,iBAAkB,GAAI,IAGjEpL,oBACCC,EAAAA,GAASC,YACTwL,SAASC,KAAKC,iBAAiB,UAAYnN,KAAK6rB,cAA2C,GAC3F5e,SAASC,KAAKC,iBAAiB,YAAanN,KAAKkL,qBACjD+B,SAASC,KAAKC,iBAAiB,WAAYnN,KAAKwL,sBAIjD3J,uBACCL,EAAAA,GAASC,YACTwL,SAASnL,oBAAoB,UAAY9B,KAAK6rB,cAA2C,GACzF5e,SAASC,KAAKpL,oBAAoB,YAAa9B,KAAKkL,qBAAqB,GACzE+B,SAASC,KAAKpL,oBAAoB,WAAY9B,KAAKwL,qBAAqB,IAIzEzJ,SACH,MAAM,aAAE2C,GAAiB1E,KAAKP,MAG9B,OADAO,KAAK8J,aAAe,EACbvK,EAAAA,cAAAA,EAAAA,SAAA,KAAGmF,EAAe1E,KAAK6sB,oBAAsB7sB,KAAK8sB,sBAOrDD,oBACJ,MAAM,aAAEnoB,EAAY,aAAEC,EAAY,WAAEzB,GAAelD,KAAKP,MACxD,OACIF,EAAAA,cAACiO,EAAAA,OAAMlB,OAAAC,OAAA,GAAKrJ,EAAU,CAAEE,UAAWC,GAAAA,CAAWH,EAAWE,UAAWsB,EAAe,cAAgB,kBAC9FC,EAAaK,KAAI,CAAC6I,EAAyBkf,IACjC/sB,KAAKgtB,kBAAkBnf,EAAUlJ,EAAa1D,OAAQ8rB,EAAW/sB,KAAKyrB,yBAUrFqB,qBACJ,MAAM,SAAEtpB,EAAQ,WAAEN,GAAelD,KAAKP,MACtC,OACIF,EAAAA,cAACiO,EAAAA,OAAMlB,OAAAC,OAAA,GAAKrJ,EAAU,CAAEE,UAAWC,GAAAA,CAAWH,EAAWE,aACrD7D,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK/I,EAAQ,CAAEkK,IAAK1N,KAAKoL,SAAUuC,SAAS,OAC5C3N,KAAK4N,mBAadof,kBAAkBnf,EAAyBof,EAAiBF,GAChE,OAAIlf,GAAYA,EAAS3H,SAAWiB,EAAAA,gBAAgBC,YAAYyG,EAAS3H,SAC9DlG,KAAKktB,cAAcrf,EAAUof,EAASF,GAE1C/sB,KAAKuO,oBAAoBV,OAAUzI,GAAW,GAAM,EAAO6nB,EAASF,GAUvEG,cAAcrf,EAAyBof,EAAkBF,GAC7D,MAAM3B,EAAmBvd,EAAS/H,SAC5BqnB,EAAWntB,KAAKW,MAAM+rB,eACtBE,OAAkCxnB,IAArBgmB,EAAiCA,EAAmB,GACjEgC,OAAoBhoB,IAAb+nB,EAAyBA,EAAW,IAC3C,aAAEzoB,GAAiB1E,KAAKP,MAE9B,IAAI4tB,GAAe,EACfD,EAAKR,KACLS,GAAe,GAEnB,MAAMC,EAA2B,CAAErR,OAAQoR,GAC3C,OACI9tB,EAAAA,cAACyrB,EAAAA,OAAM,CACHznB,KAAK,UACLgqB,kBAAmB,CACf,eAAgBN,EAChB,gBAAiBF,EACjBxpB,KAAM,YAEV4E,UAAWzD,EAAemJ,EAAS1F,eAAY/C,EAC/C4I,IAAKH,EAAShI,GACdzC,UAAU,iBACV6nB,UAAU,sBACVuC,SAAUxtB,KAAKwsB,gBACfiB,cAAeH,EACfpC,WAAW,uBACXC,eAAe,MACfC,iBAAkBprB,KAAK0tB,gBAAgBtC,EAAkB6B,EAASF,IAElExtB,EAAAA,cAAA,OAAKgE,KAAK,WACLsK,EAAS3H,QAASlB,KAAI,CAAC2oB,EAA4BC,KAAsB,IAAAC,EAChBC,EAAtD,OAAI3mB,EAAAA,gBAAgBC,YAAYumB,EAAYznB,SACjClG,KAAKktB,cAAcS,EAA6B,QAAlBG,EAAEjgB,EAAS3H,eAAO,IAAA4nB,OAAA,EAAhBA,EAAkB7sB,OAAQ2sB,EAAa5tB,KAAKyrB,sBAEhFzrB,KAAK+tB,kBAAkBJ,EAA6B,QAAlBE,EAAEhgB,EAAS3H,eAAO,IAAA2nB,OAAA,EAAhBA,EAAkB5sB,OAAQ2sB,EAAa5tB,KAAKyrB,2BAcnGiC,gBAAgB5nB,EAA8BmnB,EAA6BF,GAC/E,OACIxtB,EAAAA,cAAA,uBAAoB0tB,EAAO,gBAAiBF,GACvCjnB,GAYLioB,kBAAkB5sB,EAAqB8rB,EAA6BF,GACxE,OAAI5rB,GAAQA,EAAK2E,UAAY3E,EAAK6E,SAAW7E,EAAK6E,QAAQ/E,OAAS,EACxDjB,KAAKuO,oBAAoBpN,OAAMiE,GAAW,GAAM,EAAO6nB,EAASF,GAChE5rB,GAAQA,EAAK2E,WAAa3E,EAAK6E,QAC/BhG,KAAKwO,oBAAoBrN,GAE7B,KAOHyM,iBACJ,MAAM,SAAEnK,EAAQ,aAAEkB,EAAY,aAAED,GAAiB1E,KAAKP,OAChD,WAAEqL,GAAe9K,KAAKW,MACtBE,EAA8B,GAEpC,GAAI6D,QAA+BU,IAAf0F,GAA4BnG,EAAa1D,OAAS,EAAG,CACrE,IAAI4M,EAA0B,GAC9B,IAAK,MAAMC,KAAiBnJ,EAAc,CACtC,GAAImJ,GAAiBA,EAAcjI,KAAOiF,EAAY,CAClD+C,EAAWC,EACX9N,KAAKqJ,SAAS,CAAE2B,gBAAY5F,IAC5B,MAGJ,GADAyI,EAAW7N,KAAK+N,gBAAgBD,GAC5BD,GAAYA,EAAShI,KAAOiF,EAC5B,MAIR+C,GACIhN,EAAaqE,KACT3F,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,CAACyB,IAAKH,EAAShI,IAAQpC,GACvB,IACAzD,KAAKiO,oBAAoBJ,GACzB,WAIblJ,EAAauJ,SAAQ,CAAC/M,EAAqB8D,KACvCpE,EAAaqE,KACT3F,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,CAACyB,IAAK/I,GAAWxB,GACjBzD,KAAKiO,oBAAoB9M,QAM1C,OAAON,EAQHkN,gBAAgB5M,GACpB,MAAMgI,EAAWhI,GAAQA,EAAK+E,QAC9B,GAAIiD,GAAYA,EAASlI,OAAS,EAC9B,IAAK,IAAIkN,EAAI,EAAGA,GAAKhF,EAASlI,OAAS,EAAGkN,IAAK,CAC3C,GAAIhF,EAASgF,GAAGtI,KAAO7F,KAAKW,MAAMmK,WAE9B,OADA9K,KAAKqJ,SAAS,CAAE2B,WAAY7J,MAAAA,OAAI,EAAJA,EAAM0E,KAC3BsD,EAASgF,GAEpB,MAAMC,EAAQpO,KAAK+N,gBAAgB5E,EAASgF,IAC5C,GAAIC,EACA,OAAOA,EAInB,OAAO,KAQHH,oBAAoBtJ,GACxB,OAAIA,GAAgBA,EAAauB,SAAWvB,EAAauB,QAAQjF,OAAS,EAClEjB,KAAKP,MAAMiF,mBAA0CU,IAA1BpF,KAAKW,MAAMmK,WAC/B9K,KAAKqO,eAAe1J,EAAauB,QAASvB,EAAakB,IAG9DtG,EAAAA,cAAAA,EAAAA,SAAA,KACKS,KAAKsO,sBAAsB3J,GAC3B3E,KAAKqO,eAAe1J,EAAauB,QAASvB,EAAakB,KAGzDlB,GAAgBA,EAAamB,UAAYnB,EAAaqB,SAAWrB,EAAaqB,QAAQ/E,OAAS,EAC/FjB,KAAKuO,oBAAoB5J,EAAcA,EAAakB,IAAI,GAAO,GAC/DlB,GAAgBA,EAAamB,WAAanB,EAAaqB,QACvDhG,KAAKwO,oBAAoB7J,EAAcA,EAAakB,IAAI,GAG5D,KAGHwI,eAAelF,EAA4B2B,EAAqB2D,GACpE,MAAM,aAAE/J,EAAY,SAAEjB,GAAazD,KAAKP,MAClCiP,EAAyB1O,KAAKP,MAAMiB,OAAOiO,uBAAwB,EAEnEC,EAA0B5O,KAAKP,MAAMiB,OAAOmO,kBAD7B,EAIrB,GAAI/D,GAAc9K,KAAKW,MAAMmK,aAAeA,EAExC,OADA9K,KAAKP,MAAMa,QAAQ+B,UAAUC,MAAM,gEAC5B,KAGX,IAAK6G,GAAgC,IAApBA,EAASlI,OAEtB,OADAjB,KAAKP,MAAMa,QAAQ+B,UAAUC,MAAM,4DAC5B,KAGX,IAAIwM,EAAyB,GAC7B,MAAMC,EACF5F,GACAA,EAASnE,KAAI,CAACkF,EAAuB5E,KACjC,MAAM0J,EAAa9E,EAAOhE,SAAWgE,EAAOhE,QAAQjF,OAAS,EAC7D,IAAI4M,EAMA3H,EAJA2H,EADAmB,GAActK,EACH1E,KAAKsO,sBAAsBpE,EAAQY,EAAYxF,GAE/C4E,EAAOlE,QAAUhG,KAAKuO,oBAAoBrE,EAAQ5E,GAAOtF,KAAKwO,oBAAoBtE,GAGjG,MAAM+E,EAAcD,GAAcN,GAA0B1O,KAAK8J,cAAgBoF,KAAKC,MAAMP,GAA2B,EAMvH,OALIK,IACAjP,KAAK8J,eACLgF,EAAiBJ,EAAyB,SAAS1O,KAAK8J,aAAasF,aAAe,GACpFlJ,EAAUlG,KAAKqO,eAAenE,EAAOhE,QAASxB,EAAewF,EAAOrE,QAAKT,GAAW,IAGpF7F,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK9I,EAAQ,CAAEuK,IAAK9D,EAAOrE,GAAIzC,UAAWC,GAAAA,CAAWI,EAASL,UAAW6L,GAAe,iBACxFpB,EACA3H,MAIjB,OAAOlG,KAAKqP,YAAYP,EAAgBC,EAAajE,EAAY2D,GAU7DH,sBAAsBpE,EAAuBY,EAAqB7F,GACtE,MAAM,OAAEhB,GAAWjE,KAAKP,MACxB,OACIF,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,CACDyB,IAAK/I,GACDhB,EAAM,CACVC,QAASlE,KAAK2K,sBAAsBT,EAAQY,GAC5CwE,QAAStP,KAAK0L,cAAa,kBACV1L,KAAKW,MAAMmK,YAAc9K,KAAKW,MAAMmK,aAAeZ,EAAOrE,IAAG,mBAC5D7F,KAAKW,MAAMmK,YAAc9K,KAAKW,MAAMmK,aAAeZ,EAAOrE,IAAG,cAClEiF,IAEZZ,EAAOpE,UAeZyI,oBACJrE,EACAjF,GAIiB,IAHjBsK,IAAAC,UAAAvO,OAAA,QAAAmE,IAAAoK,UAAA,KAAAA,UAAA,GACAC,EAAAD,UAAAvO,OAAA,QAAAmE,IAAAoK,UAAA,IAAAA,UAAA,GACAyd,EAAgBzd,UAAAvO,OAAA,EAAAuO,UAAA,QAAApK,EAChB2nB,EAAiBvd,UAAAvO,OAAA,EAAAuO,UAAA,QAAApK,EAEjB,MAAM,KAAEtB,EAAI,aAAEY,GAAiB1E,KAAKP,MAC9BqG,EAAWoE,EAAOpE,SAAWoE,EAAOpE,SAAW,GAC/C4J,EAAcxF,EAAOjE,YAAciE,EAAOjE,YAAc,GAC9DjG,KAAK+M,QAAQ4C,cAAcC,MAAQ9J,EACnC,MAAM+J,GAAaC,EAAAA,EAAAA,wBAAuB9P,KAAK2M,iBAAkB3M,KAAK+M,SACtE,OACIxN,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,gBACa7H,EAAeuoB,OAAU7nB,EAAS,gBACjCV,EAAeqoB,OAAW3nB,EAAS,aACtCV,EAAewF,EAAO/B,eAAY/C,GAC1CtB,EAAI,CACRkK,IAAK/I,EACLqK,QAASG,GAAYzP,KAAK0L,cAC1BH,OAAQrB,EAAOrB,iBAAmB,cAAWzD,EAC7C2K,YAAaR,GAAevP,KAAKgK,qBAAqB0F,EAAaxF,GACnE8F,KAAM9F,EAAOlE,SACT6J,EAAU,CACd3L,SAAS+L,EAAAA,EAAAA,kBAAiBjQ,KAAK2M,iBAAkB3M,KAAK+M,QAASjH,KAE9DoE,EAAOpE,UAWZoK,uBAAuBpK,EAAmBuC,GAC9C,MAAM,KAAEvE,GAAS9D,KAAKP,MACtBO,KAAK+M,QAAQ4C,cAAcC,MAAQ9J,EACnC,MAAM+J,GAAaC,EAAAA,EAAAA,wBAAuB9P,KAAK2M,iBAAkB3M,KAAK+M,SACtE,OAAIjH,GAAYuC,EAER9I,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKzI,EAAI,CAAEkM,KAAM3H,GAAawH,EAAU,CAAE3L,SAAS+L,EAAAA,EAAAA,kBAAiBjQ,KAAK2M,iBAAkB3M,KAAK+M,QAASjH,KACzGA,GAIN,KAUH0I,oBAAoBtE,EAAuBjF,GAAyC,IAAzBwK,EAAAD,UAAAvO,OAAA,QAAAmE,IAAAoK,UAAA,IAAAA,UAAA,GAC/D,MAAM,KAAEpL,GAASpE,KAAKP,MACtB,OACIF,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,CAACyB,IAAK/I,GAAWb,EAAI,CAAEkL,QAASG,GAAYzP,KAAK0L,gBACjDxB,EAAOpE,UAaZuJ,YAAYc,EAAepB,EAA4BqB,EAAsBC,GACjF,MAAM,aAAEtM,EAAY,SAAEP,EAAQ,kBAAEQ,EAAiB,kBAAEN,EAAiB,aAAEgB,EAAY,uBAAEd,GAA2B5D,KAAKP,MAC9G6Q,GACD5L,GAAgBhB,GAAkD,OAA7B1D,KAAKW,MAAM8J,oBAAuDrF,IAA7BpF,KAAKW,MAAM8J,gBAAgC4F,EACpHE,GACD7L,GAAgBd,GAA0BuD,EAAAA,gBAAgBC,YAAYpH,KAAKW,MAAM8J,iBAAmB4F,EACnGG,EAAoBxQ,KAAK8J,aAAe,GAAKwG,EAAuBvM,EAAcX,UAAY,kBAEpG,OADApD,KAAK8J,aAAe,EAEhBvK,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKxI,EAAY,CAAEX,UAAWoN,IAC/BjR,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GACG/I,EAAQ,CACZJ,UAAWC,GAAAA,CACPG,EAASJ,UACT+M,EACAG,GAAwB,gBACxBA,GACItQ,KAAKP,MAAMiB,OAAOmO,kBAClB7O,KAAKP,MAAMiB,OAAOmO,iBAAmB,GACrC,yBAGPE,GAELxP,EAAAA,cAAA,OAAK6D,UAAU,4BACVkN,GACGtQ,KAAKW,MAAM8J,eACXzK,KAAKW,MAAM8J,cAAczF,KAAI7D,IAAI,IAAAsP,EAAA,OAC7BlR,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,CAACyB,IAAK7M,EAAKuH,KAAS1E,EAAiB,CAAEZ,UAAWY,EAAmBZ,YACrEpD,KAAKW,MAAM8J,eAAiBzK,KAAK6L,kBAAkB1K,GACnDoP,GAA6BvQ,KAAKkQ,uBAAuB/O,EAAKiJ,QAAkC,QAA3BqG,EAAEtP,EAAKqJ,4BAAoB,IAAAiG,OAAA,EAAzBA,EAA2BpI,eA+FvHqD,gBACC1L,KAAKP,MAAMiF,cACZ1E,KAAKqJ,SAAS,CAAEyB,gBAAY1F,KAqExC,oNC1nBO,MAAM4oB,EAA+CjiB,IAAA,IAAC,sBACzDkiB,EAAqB,QACrBC,EAAO,UACPC,EAAS,YACTC,EAAW,MACXC,EAAK,OACL5H,EAAM,mBACN6H,EAAkB,YAClBC,EAAW,eACXC,GACHziB,EAAA,OACGxM,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK0hB,GACLM,EACAC,EACAN,EACAC,EACAC,EACAC,EACA5H,EACA6H,IAIIG,EAAkC3a,IAAA,IAAC,eAAE4a,EAAc,UAAEC,EAAS,eAAEC,EAAc,OAAE7L,GAAQjP,EAAA,OACjGvU,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKmiB,GACLC,EACAC,EACA7L,IAII8L,EAA0C1b,IAAA,IAAC,cAAE2b,EAAa,QAAEtd,EAAO,MAAE6c,GAAOlb,EAAA,OACrF5T,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKuiB,GACLtd,EACA6c,IAIIU,EAA0BzX,IAAA,IAAC,WAAE0X,EAAU,SAAEC,EAAQ,QAAEC,EAAO,gBAAEC,EAAe,WAAEC,EAAU,0BAAEC,GAA2B/X,EAAA,OAC7H/X,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKyiB,GACLC,GAAY1vB,EAAAA,cAACsvB,EAAaviB,OAAAC,OAAA,GAAK0iB,IAChC1vB,EAAAA,cAACkO,EAAAA,KAAI,CAACrK,UAAU,2CACXgsB,GACG7vB,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK4iB,GACLC,EAAWpqB,KAAI2pB,GACZpvB,EAAAA,cAACA,EAAAA,SAAc,CAACyO,IAAK2gB,EAAUvsB,KAAKusB,UAAUW,QACT,SAAhCX,EAAUvsB,KAAKmtB,cAA2BZ,EAAUvsB,KAAKotB,SAAWb,EAAUc,aAAe,KAC9FlwB,EAAAA,cAACkvB,EAASniB,OAAAC,OAAA,GAAKoiB,KACbU,GAA6BV,EAAUe,iBAKvDT,EAASU,cAAgBT,EAC1BD,EAASU,cACNpwB,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK0iB,EAASW,aACdV,EACAD,EAASY,uBAOjBC,EAA4BlY,IAAA,IAAC,YAAEmY,EAAW,OAAEC,GAAQpY,EAAA,OAC7DrY,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKwjB,GACLC,EAAOhrB,KAAI,CAACirB,EAAOhrB,IAChB1F,EAAAA,cAACwvB,EAAKziB,OAAAC,OAAA,CAACyB,IAAK/I,GAAWgrB,QAKtBC,EAAwCzY,IAAA,IAAC,kBAClD0Y,EAAiB,QACjB3e,EAAO,SACPgR,EAAQ,SACRC,EAAQ,IACRE,EAAG,YACHyN,EAAW,aACXC,GACH5Y,EAAA,OACGlY,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK4jB,GACL3e,EACAgR,EACAC,EACAE,EACAyN,EACAC,IAIIC,EAAqCC,IAAA,IAAC,oBAAEC,EAAmB,MAAEpf,EAAK,QAAEqf,GAASF,EAAA,OACtFhxB,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKikB,GACLpf,EACAqf,IAIIC,EAAwBC,IAAA,IAAC,UAAEC,EAAS,cAAEC,EAAa,oBAAEC,EAAmB,cAAEC,GAAeJ,EAAA,OAClGpxB,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKqkB,GACLC,EACAC,EACAC,IAuCT,EAnC2DC,IActD,IAduD,YACxD7tB,EAAW,UACX8tB,EAAS,iBACTC,EAAgB,MAChBpb,EAAK,SACLqb,EAAQ,QACR3f,EAAO,MACPoH,EAAK,QACLlF,EAAO,gBACP0d,EAAe,aACfC,EAAY,QACZC,EAAO,KACPC,EAAI,OACJvB,GACHgB,EACG,OACIzxB,EAAAA,cAACiO,EAAAA,OAAMlB,OAAAC,OAAA,GAAKpJ,GACPguB,EACA3f,EACAoH,EACAlF,EACA0d,GAAmB7xB,EAAAA,cAACyuB,EAAe1hB,OAAAC,OAAA,GAAK6kB,IACxCF,EACAD,EACAnb,EACAka,GAAUzwB,EAAAA,cAACuwB,EAAMxjB,OAAAC,OAAA,GAAKyjB,IACvBzwB,EAAAA,cAACkO,EAAAA,KAAI,CAACrK,UAAU,6CACXiuB,GAAgB9xB,EAAAA,cAAC2wB,EAAY5jB,OAAAC,OAAA,GAAK8kB,IAClCC,GAAW/xB,EAAAA,cAAC+wB,EAAOhkB,OAAAC,OAAA,GAAK+kB,KAE5BC,GAAQhyB,EAAAA,cAACmxB,EAAIpkB,OAAAC,OAAA,GAAKglB,iFC3I/B,MAgEMC,EAA0BA,CAC5BC,EACAC,EACAC,EACAC,IAEOryB,EAAAA,aACHkyB,EAAWre,MACX,GACAqe,EAAWvb,YACX2b,EAAgBJ,EAAYC,EAAYC,EAAgBC,GACxDH,EAAWlb,aAIbsb,EAAkBA,CACpBpyB,EACAiyB,EACAC,EACAC,IAEID,EACOpyB,EAAAA,aAAmBE,EAAM4T,UAAW,GAAIye,EAAWH,EAAgBC,GAAmBG,EAAcL,IAExG,KAGLK,EAAiBtyB,IACnB,MAAM,SAAEuyB,EAAQ,oBAAEC,EAAmB,wBAAEC,GAA4BzyB,EACnE,OAAIuyB,EAEIzyB,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK2lB,GACN3yB,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK0lB,GACLD,EAAShtB,KAAI,CAACqL,EAASpL,IACpB1F,EAAAA,cAACA,EAAAA,SAAc,CAACyO,IAAK/I,GAAQoL,OAM1C,MAGLyhB,EAAaA,CAACryB,EAAyBmyB,KACzC,MAAM,iBAAEO,EAAgB,eAAER,GAAmBlyB,EAC7C,OAAIkyB,IAAmBC,EACZryB,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK4lB,GAAmBR,GAEjC,MAGLS,EAA2B3yB,IAC7B,MAAM,2BAAE4yB,EAA0B,sBAAEC,EAAqB,2BAAEC,GAA+B9yB,EAC1F,OAAI6yB,EAEI/yB,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK8lB,GACLC,EAAsBttB,KAAI,CAAC+D,EAAU9D,IAClC1F,EAAAA,cAACA,EAAAA,SAAc,CAACyO,IAAK/I,GAChB8D,EACAupB,GAAyBA,EAAsBrtB,EAAQ,IAAMstB,MAO3E,MAGLC,EAAe/yB,IACjB,MAAM,MAAE2R,EAAK,eAAEqhB,GAAmBhzB,EAClC,OAAI2R,EAEI7R,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKkmB,GACNlzB,EAAAA,cAAA,UACK6R,EAAMshB,YACNthB,EAAMuhB,UAAS,IAAGvhB,EAAMwhB,WAAU,MAK5C,MAGX,EApJ6EnzB,IAAQ,IAAA4hB,EACjF,MAAM,sBACFwR,EAAqB,SACrBC,EAAQ,WACRC,EAAU,kBACVC,EAAiB,wBACjBC,EAAuB,cACvBC,EAAa,SACbtyB,EAAQ,YACRqV,EAAW,kBACXkd,EAAiB,eACjBC,EAAc,WACd1B,EAAU,kBACV2B,EAAiB,cACjBC,EAAa,qBACbC,EAAoB,iCACpBC,EAAgC,aAChCxgB,EAAY,uBACZygB,EAAsB,mBACtBC,GACAj0B,EACEmyB,EAAmE,QAAnDvQ,EAAG5hB,EAAMa,QAAQ4L,cAAcC,eAAewnB,aAAK,IAAAtS,OAAA,EAAhDA,EAAkDuS,eAC3E,OAAIhzB,EAEIrB,EAAAA,cAACiO,EAAAA,OAAMlB,OAAAC,OAAA,GAAKsmB,GACPQ,GAAqBjB,EAAwBiB,GAC7Cb,EAAYY,GACZF,EACAjd,EACAub,EAAwB2B,EAAmBzB,EAAY4B,EAAe1B,GACvEryB,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKknB,GAAyBC,GACnCn0B,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKymB,GACLhgB,EACA8f,GAEJC,GAKTxzB,EAAAA,cAACiO,EAAAA,OAAMlB,OAAAC,OAAA,GAAKsmB,GACPQ,GAAqB9zB,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKgnB,GAAuBnB,EAAwBiB,IAC/E9zB,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKinB,GACL9B,GAAcK,EAAcL,GAC7BnyB,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK0mB,GACN1zB,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKknB,GAAyBC,GACnCn0B,EAAAA,cAAA,OAAK6D,UAAU,iDACVgwB,GAAkBZ,EAAYY,GAC9BF,GAEL3zB,EAAAA,cAAA,OAAK6D,UAAU,6CACVkwB,IAAkB1B,GAAoBE,EAAWwB,IAEtD/zB,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKymB,GACLhgB,EACA8f,GAEJC,yECzDrB,MAAMc,UAAsBt0B,EAAAA,cAQxBC,YAAYC,GACRC,MAAMD,GARO,KAAAioB,UAAqC,CAClDvb,eAAgBnM,KAAKP,MAAMa,QAAQC,QACnCuoB,OAAS3d,GAA0CnL,KAAKP,MAAMiB,OAAOozB,cAAgB3oB,EAAMI,OAAO0c,OAOlGjoB,KAAK2M,kBAAmBC,EAAAA,EAAAA,oBACpB5M,KAAKP,MAAMa,QAAQC,QAAQsM,kBAC3B7M,KAAKP,MAAMqN,aACX9M,KAAKP,MAAM4C,WAIZN,SACH,OAAK/B,KAAKP,MAAMiB,OAAOqzB,YAMnBx0B,EAAAA,cAACy0B,EAAAA,UAAS,CACNhkB,KAAMhQ,KAAKP,MAAMiB,OAAOqzB,YACxB3iB,MAAOpR,KAAKP,MAAMiB,OAAO0Q,MAAK,aAClBpR,KAAKP,MAAMiB,OAAOyH,UAC9B/E,UAAU,iBACVskB,UAAW1nB,KAAK0nB,UAChBnd,KAAMvK,KAAKP,MAAMiB,OAAOozB,cACxBnnB,iBAAkB3M,KAAK2M,oBAZ3B3M,KAAKP,MAAM4C,UAAUC,MAAM,oEACpB,OAiBnB,sqBC/BA,MAAM2xB,UAAuB10B,EAAAA,cAClBwC,SACH,IAAK/B,KAAKP,MAAMy0B,QAAUl0B,KAAKP,MAAMy0B,MAAMriB,SAA+C,IAApC7R,KAAKP,MAAMy0B,MAAMriB,QAAQ5Q,OAE3E,OADAjB,KAAKP,MAAMa,QAAQ+B,UAAUC,MAAM,qDAC5B,KAEX,MAAM6xB,EAAS3xB,EAAAA,EAAA,GACRxC,KAAKP,OAAK,IACbqF,WAAY9E,KAAKP,MAAMy0B,MAAMriB,QAC7BuiB,WAAY,CACRjxB,YAAanD,KAAKP,MAClB2D,UAAWC,GAAAA,CAAW,kBAAmBrD,KAAKP,MAAMiB,OAAO0C,WAC3DE,IAAK,MAET+wB,eAAgB,CACZjxB,UAAWC,GAAAA,CAAW,uBAAwBrD,KAAKP,MAAMiB,OAAO0C,WAChEE,IAAK,QAIb,OAAOtD,KAAKP,MAAMmF,WAAWuvB,IAIrC,uHCpCO,MAAMG,EAAyD70B,IAClE,MAAM,WAAEqF,EAAU,WAAEsvB,EAAU,eAAEC,GAAmB50B,EACnD,OAAKqF,GAAoC,IAAtBA,EAAW7D,OAK1B1B,IAAAA,cAACiO,EAAAA,OAAMlB,OAAAC,OAAA,GAAK6nB,GACPtvB,EAAWE,KAAI,CAAC+D,EAAqB9D,IAE9B1F,IAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK8nB,EAAc,CAAErmB,IAAK/I,IAC1B8D,OARjBtJ,EAAMa,QAAQ+B,UAAUC,MAAM,+CACvB,OAef,0sBCLA,MAAMiyB,UAAeh1B,EAAAA,cAGjBC,YAAYC,GACRC,MAAMD,GACNO,KAAKw0B,UAAYj1B,EAAAA,YAGdwC,SACH,MAAM,OAAErB,EAAM,UAAE6D,GAAcvE,KAAKP,MAC7B8oB,EACFvoB,KAAKP,MAAMa,QAAQC,SACnBP,KAAKP,MAAMa,QAAQC,QAAQ+nB,SAC3BtoB,KAAKP,MAAMa,QAAQC,QAAQ+nB,QAAQC,gBACnCvoB,KAAKP,MAAMa,QAAQC,QAAQ+nB,QAAQC,iBAEvC,KAAM7nB,GAAUA,EAAO6K,QAAU7K,EAAO6K,OAAOjD,gBAC3C,OAAO,KAGX,IAAImsB,EACJ,IACIA,EAAS,IAAIC,IAAIh0B,EAAO6K,OAAOjD,gBACjC,MAAOhG,GAEL,OADAtC,KAAKP,MAAM4C,UAAUsyB,UAAUryB,GACxB,KAGX,GAAImyB,GAAUA,EAAOG,UAAoD,WAAxCH,EAAOG,SAASC,oBAC7C,OAAO,KAEX,MAAMC,EAAkBzxB,GAAAA,CAAW,YAAa3C,EAAO0C,WAEvD,IAAIb,EAASC,EAAAA,EAAA,GACLxC,KAAKP,OAAqC,IAC9Cs1B,QAAS/0B,KAAKg1B,eAAet0B,EAAO8Q,SACpCyjB,gBAAiB,CACb9xB,YAAanD,KAAKP,MAClB2D,UAAW0xB,GAEfI,OAAQl1B,KAAKm1B,kBAcjB,OALI5yB,EAASC,EAAAA,EAAA,GACFD,GAAS,GAPfgmB,EAOe,CACZ6M,uBAAuB,GANX,CACZxc,MAAO5Y,KAAKq1B,aAAa9wB,EAAU+wB,gCAQpCt1B,KAAKP,MAAMmF,WAAWrC,GAGzByyB,eAAexjB,GACnB,OAAKA,GAAYA,EAAQjH,MAAgC,IAAxBiH,EAAQjH,KAAKtJ,OAIvC1B,EAAAA,cAACw1B,EAAAA,QAAOzoB,OAAAC,OAAA,GAAKiF,EAAO,CAAEpO,UAAU,wBAH5B,KAMPiyB,aAAa9hB,GACjB,OACIhU,EAAAA,cAAA,KAAG6D,UAAU,2BAA2BG,KAAK,QAAO,YAAW,aAC1DgQ,GAKL4hB,gBACJ,MAAM,OAAEz0B,GAAWV,KAAKP,MAClB81B,EAAY70B,EAAO6K,OAAOjD,eAEhC,OACI/I,EAAAA,cAAA,UACI6D,UAAWC,GAAAA,CAAW,sBACtBqF,IAAK6sB,EACLC,OAAQ90B,EAAO80B,OAAM,aACT90B,EAAO+0B,gBACnB/nB,IAAK1N,KAAKw0B,aAM1B,sGClGO,MAAMkB,UAAmBn2B,EAAAA,cACrBwC,SACH,MAAM,QAAEgzB,EAAO,gBAAEE,EAAe,OAAEC,EAAM,MAAEtc,EAAK,sBAAEwc,GAA0Bp1B,KAAKP,MAEhF,OACIF,EAAAA,cAACiO,EAAAA,OAAMlB,OAAAC,OAAA,GAAK0oB,GACPrc,EACAwc,GAAyBA,EACtB71B,EAAAA,cAAAA,EAAAA,SAAA,KACKw1B,EACAG,GAEL,OAKpB,8GCtBO,MAAMS,EAAyDl2B,IAClE,MAAM,OAAEwjB,EAAM,SAAE6P,EAAQ,eAAE8C,EAAc,gBAAEC,GAAoBp2B,EAE9D,OACIF,EAAAA,cAACiO,EAAAA,OAAMlB,OAAAC,OAAA,GAAK9M,EAAM0D,aACb8f,EACA6P,EACA8C,EACAC,IAKb,qGCbO,MAAMC,EAAoDr2B,IAC7D,MAAM,OAAEwjB,EAAM,OAAEvc,EAAM,QAAEmL,EAAO,oBAAEkkB,EAAmB,WAAEhD,GAAetzB,EAErE,OACIF,EAAAA,cAACiO,EAAAA,OAAMlB,OAAAC,OAAA,GAAK9M,EAAM0D,aACb8f,EACA8S,EACArvB,EACAmL,EACAkhB,IAKb,oBCOO,IAAK5zB,EASAC,2BATZ,SAAYD,GACRA,EAAAA,EAAA,eACAA,EAAAA,EAAA,qBAFJ,CAAYA,IAAAA,EAAe,KAS3B,SAAYC,GACRA,EAAA,UACAA,EAAA,gBAFJ,CAAYA,IAAAA,EAAU,mtBCUtB,MAAME,UAAuBC,EAAAA,cAyBzBC,YAAYC,GACRC,MAAMD,GAjBF,KAAAE,UAAoB,EAEpB,KAAAC,OAAiB,EAmPR,KAAAC,qBAAwBC,IACrC,OAAQA,GACJ,IAAI,mBACAE,KAAKL,UAAW,EAChBK,KAAKJ,OAAQ,EACb,MACJ,IAAI,UACAI,KAAKL,UAAW,EAChBK,KAAKJ,OAAQ,EACb,MACJ,IAAI,MACAI,KAAKL,UAAW,EAChBK,KAAKJ,OAAQ,IA/OrBI,KAAKG,gBAAkBH,KAAKG,gBAAgBC,KAAKJ,MACjDA,KAAKK,SACDZ,EAAMa,QAAQC,SAAWd,EAAMa,QAAQC,QAAQC,QAAgD,WAAtCf,EAAMa,QAAQC,QAAQC,OAAOC,KAAoB,KAAO,KACrHT,KAAKH,qBAAqBG,KAAKP,MAAMiB,QAAUV,KAAKP,MAAMiB,OAAOrB,sBACjEW,KAAKW,MAAQ,CAAEC,SAAUZ,KAAKY,UAC9BZ,KAAKa,aAAe,GAhBjB,uBAAuBC,EAAgBC,GAC1C,IAAIC,EAKJ,OAJIF,GAAUC,GAAoBA,EAAiBE,OAAS,IACxDD,EAAkBD,EAAiBG,MAAKC,GAAQA,EAAKC,SAAUC,gBAAkBP,EAAOO,iBAGrFL,GAAmBA,EAAgBM,KAapC,eACN,MAAyB,OAAlBtB,KAAKK,UAAuC,OAAlBL,KAAKK,SAGnCkB,oBACCC,EAAAA,GAASC,YACTzB,KAAK0B,6BAA8BC,EAAAA,EAAAA,mBAAkBC,OAAQ,SAAU5B,KAAKG,kBAEhFH,KAAKG,kBAGF0B,uBACCL,EAAAA,GAASC,WACTG,OAAOE,oBAAoB,SAAU9B,KAAK0B,6BAA8B,GAIzEK,SAAM,IAAAC,EAAAC,EAET,GADAjC,KAAKa,aAAeb,KAAKkC,YACrBC,EAAAA,EAAAA,IAAoBnC,KAAKP,MAAM2C,MAE/B,OADApC,KAAKP,MAAM4C,UAAUC,MAAM,+BACpB,KAGX,MAQMC,EAASC,EAAAA,EAAAA,EAAA,GACRxC,KAAKP,OACLO,KAAKW,OAAK,IACb8B,cAXyC,CACzCC,UAAW,CACPC,GAAI,CAAEC,EAAG,kBAAmBC,EAAG,EAAGC,EAAG,GACrCC,GAAI,CAAEH,EAAG,kBAAmBC,EAAG,EAAGC,EAAG,IAEzCE,UAAU,GAOVC,aAAcjD,KAAKP,MAAMa,QAAQC,QAAQ0C,aACzCC,WAAY,CACRC,YAAanD,KAAKP,MAClB2D,UAAWC,GAAAA,CAAW,SAAUrD,KAAKP,MAAMiB,OAAO0C,UAAWpD,KAAKW,MAAMC,SAAW,YAAc,cACjG0C,IAAK,MACLC,KAAMvD,KAAKY,SAAW,UAAY,cAEtC4C,SAAU,CACNJ,UAAW,eACXE,IAAK,KACLC,KAAMvD,KAAKY,SAAW,UAAY,QAEtC6C,SAAU,CACNL,UAAW,qBACXG,KAAM,eACND,IAAK,MAETI,kBAAyD,QAAxC1B,EAAEhC,KAAKP,MAAMiB,OAAOiD,4BAAoB,IAAA3B,GAAAA,EACzD4B,uBAAiE,QAA3C3B,EAAEjC,KAAKP,MAAMiB,OAAOmD,+BAAuB,IAAA5B,GAAAA,EACjE6B,KAAM,CACFR,IAAK,IACLF,UAAW,2BACXG,KAAMvD,KAAKY,SAAW,SAAW,YAErCmD,aAAc,CACVT,IAAK,MACLF,UAAW,mBAEfY,kBAAmB,CACfV,IAAK,MACLF,UAAW,iBACXG,KAAM,YAEVU,OAAQ,CACJb,UAAW,6BACXE,IAAK,SACLC,KAAMvD,KAAKY,SAAW,SAAW,WACjCsD,QAASlE,KAAKP,OAElB0E,eAAgB,CACZf,UAAW,6BAEfgB,KAAM,CACFhB,UAAW,2BACXE,IAAK,QAETe,2BAA4B,CACxBjB,UAAW,mCAEfkB,iBAAkB,CACdlB,UAAW,0CACXE,IAAK,SACL,aAActD,KAAKP,MAAM8E,UAAUC,oBACnCN,QAASlE,KAAKP,OAElBgF,uBAAwB,CACpBrB,UAAW,wCACXE,IAAK,QAEToB,aAAc1E,KAAKW,MAAMC,SACzB+D,aAAc3E,KAAKa,aACnBuC,UAAWC,GAAAA,CAAW,SAAUrD,KAAKP,MAAMiB,OAAO0C,aAGtD,OAAOpD,KAAKP,MAAMmF,WAAWrC,GAGzBL,WACJ,MAAM,KAAEE,EAAI,OAAE1B,GAAWV,KAAKP,MACxBoF,EAA8B,GAYpC,OAXI7E,KAAKL,UAAYyC,GAAQA,EAAK0C,YAAc1C,EAAK0C,WAAWC,QAAU3C,EAAK0C,WAAWC,OAAO9D,OAAS,GACtGmB,EAAK0C,WAAWC,OAAOC,KAAI,CAAC7D,EAAyB8D,IACjDJ,EAAWK,KAAKlF,KAAKmF,uBAAuBhE,OAAMiE,GAAW,EAAMH,GAAO,MAI9EjF,KAAKJ,OAASc,EAAO2E,aAAe3E,EAAO2E,YAAYpE,OAAS,GAChEP,EAAO2E,YAAYL,KAAI,CAAC7D,EAAwBmE,IAC5CT,EAAWK,KAAKlF,KAAKmF,4BAAuBC,EAAWjE,GAAM,EAAOmE,EAAM,MAG3EtF,KAAKuF,0BAA0BV,GAGlCU,0BAA0BV,GAA2B,IAAAW,EAAAC,EAEzD,KAD0D,QAAlCD,EAAGxF,KAAKP,MAAMiB,OAAOgF,qBAAa,IAAAF,GAAAA,GAEtD,OAAOX,EAEX,MAAMc,EAAsC,GACtCC,EAAU,CACZC,GAAI,EACJC,SAA8C,QAAtCL,EAAEzF,KAAKP,MAAMiB,OAAOqF,0BAAkB,IAAAN,EAAAA,EAAI,MAClDO,QAAS,IACTC,iBAAab,EACbc,QAASrB,GAIb,OAFAc,EAAmBT,KAAKU,GAEjBD,EAGHR,uBACJgB,EACAC,EACAzG,EACA2F,EACAe,GAEA,MAAMvF,EACFd,KAAKP,MAAMa,SAAWN,KAAKP,MAAMa,QAAQC,SAAWP,KAAKP,MAAMa,QAAQC,QAAQO,OACzEd,KAAKP,MAAMa,QAAQC,QAAQO,OAC3B,SACJ,2BAAEwF,GAA+BtG,KAAKP,MAAMiB,OAC5C6F,EAAeH,GAAWA,EAAQN,UAAa,IAC/C,cAAEU,GAAkBxG,KAAKP,MAAM8E,UAG/BkC,EACFN,IACAG,MAAAA,OAA0B,EAA1BA,EAA4BI,QAAOC,IAAS,IAAAC,EAAAC,EAAA,OAA0B,QAAtBD,EAAAD,EAAUG,oBAAY,IAAAF,OAAA,EAAtBA,EAAwBvF,kBAAkB8E,MAAAA,GAAgB,QAANU,EAAVV,EAAYY,YAAI,IAAAF,OAAA,EAAhBA,EAAkBxF,mBAGhH,IAAI4E,EAAsB,QAIX,IAADe,EAAAE,EAAd,OAHIC,EAAAA,gBAAgBC,YAAYjB,MAAAA,OAAU,EAAVA,EAAYkB,SAAWlB,EAAYkB,OAAO,GAAGC,MACzErB,EAAcE,EAAYkB,OAAO,GAAGC,KAEpC3H,EACO,CACHkG,GAAIvG,EAAeiI,eACnBzB,SAA8E,QAAtEkB,EAAE1H,EAAekI,gBAAgB1G,EAAQqF,MAAAA,OAAU,EAAVA,EAAYsB,yBAAiB,IAAAT,EAAAA,EAAI,GAClFhB,QAASG,MAAAA,OAAU,EAAVA,EAAYuB,IACrBzB,YAAAA,EACAC,QAASlG,KAAK+H,mBAAmB5B,EAAYF,EAAaI,GAC1D2B,mBAAoBhI,KAAKP,MAAMiB,OAAOmD,yBAA2B4C,EACjEwB,WAAY7I,EAAAA,EAAW8I,OACvBC,UAAW,GAAuE,QAAvEjB,EAAG5H,EAAekI,gBAAgB1G,EAAQqF,MAAAA,OAAU,EAAVA,EAAYsB,yBAAiB,IAAAP,EAAAA,EAAI,MAAMV,KAG7F,CACHX,GAAIvG,EAAe8I,gBACnBtC,SAAUS,EACVP,QAAUI,GAAWA,EAAQiC,SAAWjC,EAAQiC,QAAQC,gBAAmB,GAC3EC,oBAAsBnC,GAAWA,EAAQoC,WAAapC,EAAQoC,UAAUF,gBAAmB,GAC3FrC,YAAcG,GAAWA,EAAQqC,OAASrC,EAAQqC,MAAMC,KAAQ,GAChExC,QAASlG,KAAK2I,sBAAsBvC,GACpC6B,WAAY7I,EAAAA,EAAWwJ,IACvBC,iBAAkBzC,MAAAA,OAAO,EAAPA,EAAS0C,aAC3BX,UAAW,GAAG5B,KAAeC,KAI7BuB,mBAAmBgB,EAA8BC,GAAsD,IAA7B3C,EAAAmJ,UAAAvO,OAAA,QAAAmE,IAAAoK,UAAA,IAAAA,UAAA,GAC9E,MAAMvG,EAAkC,GACxC,OAAKF,GAAaA,EAASG,UAAyC,IAA7BH,EAASG,SAASjI,SAGpDjB,KAAKP,MAAMiB,OAAOgF,eAAiBW,GACpC4C,EAAe/D,KAAK,CAChBY,SAAU9F,KAAKP,MAAM8E,UAAUyxB,oBAC/B/vB,YAAa+C,EACbhD,SAASiwB,EAAAA,EAAAA,gBAAeltB,EAAW/I,KAAKP,MAAMa,QAAuC,MAG7FyI,EAASG,SAASlE,KAAI,CAAC7D,EAAyB8D,KAC5CgE,EAAe/D,KAAKlF,KAAKmF,uBAAuBhE,OAAMiE,GAAW,EAAMH,GAAO,OAE3EgE,GAZI,GAePN,sBAAsBI,GAC1B,MAAME,EAAkC,GAExC,OAAKF,GAAaA,EAASI,UAAyC,IAA7BJ,EAASI,SAASlI,QAIzD8H,EAASI,SAASnE,KAAI,CAAC7D,EAAqBmE,KACxC2D,EAAe/D,KAAKlF,KAAKmF,4BAAuBC,EAAWjE,GAAM,EAAOmE,OAErE2D,GANI,GA2BP9I,kBACJH,KAAKK,SAAWL,KAAKoJ,eACrBpJ,KAAKqJ,SAAS,CAAEzI,SAAUZ,KAAKY,WAG3BwI,eACJ,MAAM,QAAE9I,GAAYN,KAAKP,MAGzB,GAAIa,EAAQC,SAAWD,EAAQC,QAAQC,QAA0C,WAAhCF,EAAQC,QAAQC,OAAOC,KACpE,MAAO,KAGX,GAAIe,EAAAA,GAASC,WAAaG,OAAO0H,WAAY,CACzC,MAAMrG,EAAe3C,EAAQC,QAAQ0C,aACrC,GAAIA,EACA,OAAIA,EAAaN,IAAMf,OAAO0H,YAAcrG,EAAaN,GAAGE,EACjD,KACAI,EAAasG,IAAM3H,OAAO0H,YAAcrG,EAAasG,GAAG1G,EACxD,KACAI,EAAauG,IAAM5H,OAAO0H,YAAcrG,EAAauG,GAAG3G,EACxD,KACAI,EAAawG,IAAM7H,OAAO0H,YAAcrG,EAAawG,GAAG5G,EACxD,KAEJ,KAIf,MAAO,MA5SIvD,EAAA8I,cAAwBjJ,EAAAA,EAAgByJ,IAExCtJ,EAAAiI,aAAuBpI,EAAAA,EAAgB+I,QAWtDwB,EAAAA,EAAAA,IAAA,CADCC,EAAAA,IAAU,gCAsBDD,EAAAA,EAAAA,IAAA,CAATE,EAAAA,IAAQ,6BA8Qb,6JC/TO,MAAMC,UAA2BtK,EAAAA,cAapCC,YAAYC,GACRC,MAAMD,GAXF,KAAAqK,aAAuB,EAmTd,KAAAE,qBAAuB,CAACC,EAA0BC,IAA0B,KACzF,MAAMpE,EAAWoE,GAAUA,EAAOpE,SAAWoE,EAAOpE,SAAW,GACzDqE,EAAiC,CAAC,CAAEzB,IAAKuB,EAAkBG,QAAStE,IAGtEqB,EAAAA,gBAAgBC,YAAY8C,EAAOlC,qBACnCkC,EAAOlC,mBAAmBhD,KAAI7D,IAC1B,GAAIA,GAAQA,EAAKsH,MAAO,CACpB,MAAM4B,EAAWlJ,EAAKsH,MAAMC,IACtB4B,EAA+BnJ,EAAKsH,MAAMhG,cAChD0H,EAAiBjF,KAAK,CAClBwD,IAAK2B,EACLD,QAASjJ,EAAKoJ,KACd9H,cAAe6H,EACfE,qBAAsB,CAAEnC,QAASlH,EAAKkH,QAAQC,sBAK9DtI,KAAKqJ,SAAS,CACVoB,cAAeN,EAAiBlJ,OAAS,EAAIkJ,EAAmB,CAAC,CAAEzB,IAAK,UACxEgC,qBAAsB5E,KAIb,KAAA6E,sBAAwB,CAACvI,EAAqBwI,IAAsB,KAC5E5K,KAAKP,MAAMiF,cASZmF,EAAmBgB,aAAc,EACjC7K,KAAKqJ,SAAS,CACVyB,WAAY1I,EAAKyD,GACjBkF,oBAAqB3I,EAAK0D,SAC1BkF,WAAYJ,MAZhB5K,KAAKqJ,SAAS,CACVyB,WAAY9K,KAAKW,MAAMmK,YAAc9K,KAAKW,MAAMmK,aAAe1I,EAAKyD,QAAMT,EAAYhD,EAAKyD,GAC3FmF,WAAYJ,IAEZ5K,KAAKP,MAAMiE,mBACX1D,KAAKgK,qBAAqB5H,EAAK6D,YAAc7D,EAA7CpC,KAYK,KAAAiL,cAAgB,IAAM,KACnCpB,EAAmBgB,aAAc,EACjC7K,KAAKqJ,SAAS,CAAEyB,WAAY9K,KAAKW,MAAMqK,cAO1B,KAAAE,oBAAuBC,IAChCnL,KAAKoL,SAASC,UAAYrL,KAAKoL,SAASC,QAAQC,SAASH,EAAMI,SAC/DvL,KAAKqJ,SAAS,CACVyB,gBAAY1F,EACZ2F,oBAAqB,GACrBN,cAAe,QASV,KAAAe,oBAAuBL,IAChCnL,KAAKoL,SAASC,UAAYrL,KAAKoL,SAASC,QAAQC,SAASH,EAAMM,gBAC/DzL,KAAK0L,iBAWI,KAAAC,uBAAyB,CAAC1G,EAAe8F,EAA8Ba,KAC/E/B,EAAmBgB,aAAyB,IAAV5F,MAGlC2G,IAAmBb,IAGjBA,IAAwBa,EASlB,KAAAC,kBAAqBpB,IAClC,IAAKA,IAAkBA,EAAc/B,IACjC,OAAO,KAGX,MACMoD,EAAuC,CACzCpJ,UAAW,CACPC,GAAI,CAAEC,EAAG,kBAAmBC,EAAG,EAAGC,EAAG,GACrCyG,GAAI,CAAE3G,EAAG,kBAAmBC,EAAG,EAAGC,EAAG,GACrC0G,GAAI,CAAE5G,EAAG,kBAAmBC,EAAG,EAAGC,EAAG,GACrC2G,GAAI,CAAE7G,EAAG,kBAAmBC,EAAG,EAAGC,EAAG,IAEzCE,UAAU,GAEuB,IAAD+I,EAAAC,EAApC,YAAyB5G,KAVA6G,EAAAA,EAAAA,kBAAiB,GAAGxB,EAAc/B,MAAO1I,KAAKP,MAAMa,QAAQ4L,cAAcC,eAAeC,aAY1G7M,EAAAA,cAAC8M,EAAAA,GAAKC,OAAAC,OAAA,CACFJ,eAAgBnM,KAAKP,MAAMa,QAAQ4L,cAAcC,eACjD/I,UAAU,sBACNqH,EAAa,CACjBxH,aAAcjD,KAAKP,MAAMa,QAAQC,QAAQ0C,aACzCR,cAAqF,QAAxEsJ,EAA6B,QAA7BC,EAAEvB,EAAchI,qBAAa,IAAAuJ,EAAAA,EAAIhM,KAAKP,MAAMiB,OAAO8L,6BAAqB,IAAAT,EAAAA,EAAID,EACzFW,oBAAoB,OACpBlJ,KAAK,WACLsC,GAAG,kCACHuE,QAASK,EAAcL,WAI5B,MAraPpK,KAAKoL,SAAW7L,EAAAA,YAChBS,KAAK0M,YAAcnN,EAAAA,YACnBS,KAAKW,MAAQ,CAAEmK,gBAAY1F,EAAW2F,oBAAqB,GAAIC,gBAAY5F,EAAWsF,qBAAsB,IAC5G1K,KAAK0L,cAAgB1L,KAAK0L,cAActL,KAAKJ,MAC7CA,KAAK2M,kBAAmBC,EAAAA,EAAAA,oBACpB5M,KAAKP,MAAMa,QAAQC,QAAQsM,kBAC3B7M,KAAKP,MAAMqN,aACX9M,KAAKP,MAAM4C,WAEfrC,KAAK+M,SAAUC,EAAAA,EAAAA,kBAAiB,QAAShN,KAAK2M,iBAAkB,GAAI,IAGjEpL,oBACCC,EAAAA,GAASC,YACTwL,SAASC,KAAKC,iBAAiB,YAAanN,KAAKkL,qBACjD+B,SAASC,KAAKC,iBAAiB,WAAYnN,KAAKwL,sBAIjD4B,qBAAkB,IAAAC,EACO,QAAxBA,EAAArN,KAAK0M,YAAYrB,eAAO,IAAAgC,GAAxBA,EAA0BC,SAAS,IAAMtN,KAAKP,MAAMiF,cACnD1E,KAAK0M,YAAYrB,QAAQiC,SAAS,GAAmBC,QAIvD1L,uBACCL,EAAAA,GAASC,YACTwL,SAASC,KAAKpL,oBAAoB,YAAa9B,KAAKkL,qBAAqB,GACzE+B,SAASC,KAAKpL,oBAAoB,WAAY9B,KAAKwL,qBAAqB,IAIzEzJ,SACH,MAAM,aAAE2C,EAAY,SAAElB,EAAQ,iBAAEc,EAAgB,2BAAED,EAA0B,uBAAEI,EAAsB,WAAEvB,GAAelD,KAAKP,MAG1H,OADAO,KAAK8J,aAAe,EAEhBvK,EAAAA,cAACiO,EAAAA,OAAMlB,OAAAC,OAAA,GACCrJ,EAAU,CACdE,UAAWC,GAAAA,CAAWH,EAAWE,UAAWsB,QAA0CU,IAA1BpF,KAAKW,MAAMmK,WAA2B,QAAU,YAE5GvL,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK/I,EAAQ,CAAEkK,IAAK1N,KAAKoL,SAAUuC,SAAS,OAC5CjJ,QAA0CU,IAA1BpF,KAAKW,MAAMmK,YACxBvL,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKlI,GACN9E,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKjI,EAAgB,CAAEJ,QAASlE,KAAKiL,mBAC1C1L,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK9H,GAAyBzE,KAAKW,MAAMoK,sBAGrD/K,KAAK4N,mBAMdA,iBACJ,MAAM,SAAEnK,EAAQ,aAAEkB,EAAY,aAAED,GAAiB1E,KAAKP,OAChD,WAAEqL,GAAe9K,KAAKW,MACtBE,EAA8B,GAEpC,GAAI6D,QAA+BU,IAAf0F,GAA4BnG,EAAa1D,OAAS,EAAG,CACrE,IAAI4M,EAA0B,GAC9B,IAAK,MAAMC,KAAiBnJ,EAAc,CACtC,GAAImJ,GAAiBA,EAAcjI,KAAOiF,EAAY,CAClD+C,EAAWC,EACVjE,EAAmBgB,YAEd7K,KAAKqJ,SAAS,CAAE2B,gBAAY5F,EAAW2F,oBAAqB+C,EAAchI,WAD1E9F,KAAKqJ,SAAS,CAAE2B,gBAAY5F,IAElC,MAGJ,GADAyI,EAAW7N,KAAK+N,gBAAgBD,GAC5BD,GAAYA,EAAShI,KAAOiF,EAC5B,MAIR+C,GACIhN,EAAaqE,KACT3F,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,CAACyB,IAAKH,EAAShI,IAAQpC,GACvB,IACAzD,KAAKiO,oBAAoBJ,GAAW,WAIjDlJ,EAAauJ,SAAQ,CAAC/M,EAAqB8D,KACvCpE,EAAaqE,KACT3F,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,CACDyB,IAAK/I,GACDxB,EAAQ,CACZiK,IAAK1N,KAAK2L,uBAAuB1G,EAAOjF,KAAKW,MAAMoK,oBAAqB5J,EAAK2E,UAAY9F,KAAK0M,YAAc,OAE3G1M,KAAKiO,oBAAoB9M,QAM1C,OAAON,EAGHkN,gBAAgB5M,GACpB,MAAMgI,EAAWhI,GAAQA,EAAK+E,QAC9B,GAAIiD,GAAYA,EAASlI,OAAS,EAC9B,IAAK,IAAIkN,EAAI,EAAGA,GAAKhF,EAASlI,OAAS,EAAGkN,IAAK,CAC3C,GAAIhF,EAASgF,GAAGtI,KAAO7F,KAAKW,MAAMmK,WAI9B,OAHCjB,EAAmBgB,YAEd7K,KAAKqJ,SAAS,CAAE2B,WAAY7J,GAAQA,EAAK0E,GAAIkF,oBAAqB5B,EAASgF,GAAGrI,WAD9E9F,KAAKqJ,SAAS,CAAE2B,WAAY7J,MAAAA,OAAI,EAAJA,EAAM0E,KAEjCsD,EAASgF,GAEpB,MAAMC,EAAQpO,KAAK+N,gBAAgB5E,EAASgF,IAC5C,GAAIC,EACA,OAAOA,EAKnB,OADApO,KAAKP,MAAMa,QAAQ+B,UAAUC,MAAM,iDAC5B,KAGH2L,oBAAoBtJ,GACxB,OAAIA,GAAgBA,EAAauB,SAAWvB,EAAauB,QAAQjF,OAAS,EAClEjB,KAAKP,MAAMiF,mBAA0CU,IAA1BpF,KAAKW,MAAMmK,WAC/B9K,KAAKqO,eAAe1J,EAAauB,QAASvB,EAAakB,IAAI,GAGlEtG,EAAAA,cAAAA,EAAAA,SAAA,KACKS,KAAKsO,sBAAsB3J,GAC3B3E,KAAKqO,eAAe1J,EAAauB,QAASvB,EAAakB,IAAI,IAG7DlB,GAAgBA,EAAamB,UAAYnB,EAAaqB,SAAWrB,EAAaqB,QAAQ/E,OAAS,EAC/FjB,KAAKuO,oBAAoB5J,EAAcA,EAAakB,IAAI,GAAO,GAC/DlB,GAAgBA,EAAamB,WAAanB,EAAaqB,QACvDhG,KAAKwO,oBAAoB7J,EAAcA,EAAakB,IAAI,IAEnE7F,KAAKP,MAAMa,QAAQ+B,UAAUC,MAAM,yDAC5B,MAGH+L,eAAelF,EAA4B2B,EAAqB2D,GACpE,MAAM,aAAE/J,EAAY,SAAEjB,GAAazD,KAAKP,MAClCiP,EAAyB1O,KAAKP,MAAMiB,OAAOiO,uBAAwB,EACnEC,EAA0B5O,KAAKP,MAAMiB,OAAOmO,kBAAoB,EAGtE,GAAI/D,GAAc9K,KAAKW,MAAMmK,aAAeA,EAExC,OADA9K,KAAKP,MAAMa,QAAQ+B,UAAUC,MAAM,gEAC5B,KAGX,IAAK6G,GAAgC,IAApBA,EAASlI,OAEtB,OADAjB,KAAKP,MAAMa,QAAQ+B,UAAUC,MAAM,4DAC5B,KAGX,IAAIwM,EAAyB,GAC7B,MAAMC,EACF5F,GACAA,EAASnE,KAAI,CAACkF,EAAuB5E,KACjC,MAAM0J,EAAa9E,EAAOhE,SAAWgE,EAAOhE,QAAQjF,OAAS,EAC7D,IAAI4M,EAOA3H,EALA2H,EADAmB,GAActK,EACH1E,KAAKsO,sBAAsBpE,EAAQY,EAAYxF,GAE/C4E,EAAOlE,QAAUhG,KAAKuO,oBAAoBrE,EAAQ5E,GAAOtF,KAAKwO,oBAAoBtE,GAIjG,MAAM+E,EAAcD,GAAcN,GAA0B1O,KAAK8J,cAAgBoF,KAAKC,MAAMP,GAA2B,EAMvH,OALIK,IACAjP,KAAK8J,eACLgF,EAAiBJ,EAAyB,SAAS1O,KAAK8J,aAAasF,aAAe,GACpFlJ,EAAUlG,KAAKqO,eAAenE,EAAOhE,QAASxB,EAAewF,EAAOrE,QAAKT,GAAW,IAGpF7F,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GACG9I,EAAQ,CACZuK,IAAK9D,EAAOrE,GACZzC,UAAWC,GAAAA,CAAWI,EAASL,UAAW6L,GAAe,eACzDvB,IAAK1N,KAAK2L,uBAAuBrG,EAAKtF,KAAKW,MAAMoK,oBAAqBb,EAAOpE,UAAY9F,KAAK0M,YAAc,OAE3GmB,EACA3H,MAIjB,OAAOlG,KAAKqP,YAAYP,EAAgBC,EAAajE,EAAY2D,GAG7DH,sBAAsBpE,EAAuBY,EAAqB7F,GACtE,MAAM,OAAEhB,GAAWjE,KAAKP,MACxB,OACIF,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,CACDyB,IAAK/I,GACDhB,EAAM,CACVC,QAASlE,KAAK2K,sBAAsBT,EAAQY,GAC5CwE,QAAStP,KAAK0L,cAAa,kBACV1L,KAAKW,MAAMmK,YAAc9K,KAAKW,MAAMmK,aAAeZ,EAAOrE,IAAG,mBAC5D7F,KAAKW,MAAMmK,YAAc9K,KAAKW,MAAMmK,aAAeZ,EAAOrE,IAAG,cAClEiF,IAEZZ,EAAOpE,UAKZyI,oBACJrE,EACAjF,GAEyB,IADzBsK,IAAAC,UAAAvO,OAAA,QAAAmE,IAAAoK,UAAA,KAAAA,UAAA,GACAC,EAAAD,UAAAvO,OAAA,QAAAmE,IAAAoK,UAAA,IAAAA,UAAA,GAEA,MAAM,KAAE1L,GAAS9D,KAAKP,MAChBqG,EAAWoE,EAAOpE,SAAWoE,EAAOpE,SAAW,GAC/C4J,EAAcxF,EAAOjE,YAAciE,EAAOjE,YAAc,GAC9DjG,KAAK+M,QAAQ4C,cAAcC,MAAQ9J,EACnC,MAAM+J,GAAaC,EAAAA,EAAAA,wBAAuB9P,KAAK2M,iBAAkB3M,KAAK+M,SACtE,OACIxN,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GACGzI,EAAI,CACRkK,IAAK/I,EACLqK,QAASG,GAAYzP,KAAK0L,cAC1BH,OAAQrB,EAAOrB,iBAAmB,cAAWzD,EAC7C2K,YAAaR,GAAevP,KAAKgK,qBAAqB0F,EAAaxF,GACnE8F,KAAM9F,EAAOlE,SACT6J,EAAU,CACd3L,SAAS+L,EAAAA,EAAAA,kBAAiBjQ,KAAK2M,iBAAkB3M,KAAK+M,QAASjH,KAE9DoE,EAAOpE,UAKZoK,uBAAuBpK,EAAmBuC,GAC9C,MAAM,KAAEvE,GAAS9D,KAAKP,MACtBO,KAAK+M,QAAQ4C,cAAcC,MAAQ9J,EACnC,MAAM+J,GAAaC,EAAAA,EAAAA,wBAAuB9P,KAAK2M,iBAAkB3M,KAAK+M,SACtE,OAAIjH,GAAYuC,EAER9I,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKzI,EAAI,CAAEkM,KAAM3H,GAAawH,EAAU,CAAE3L,SAAS+L,EAAAA,EAAAA,kBAAiBjQ,KAAK2M,iBAAkB3M,KAAK+M,QAASjH,KACzGA,GAIN,KAGH0I,oBAAoBtE,EAAuBjF,GAAyC,IAAzBwK,EAAAD,UAAAvO,OAAA,QAAAmE,IAAAoK,UAAA,IAAAA,UAAA,GAC/D,MAAM,KAAEpL,GAASpE,KAAKP,MACtB,OACIF,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,CAACyB,IAAK/I,GAAWb,EAAI,CAAEkL,QAASG,GAAYzP,KAAK0L,gBACjDxB,EAAOpE,UAKZuJ,YAAYc,EAAepB,EAA4BqB,EAAsBC,GACjF,MAAM,aAAEtM,EAAY,SAAEP,EAAQ,kBAAEQ,EAAiB,kBAAEN,EAAiB,uBAAEE,EAAsB,aAAEc,GAAiB1E,KAAKP,MAC9G6Q,GACD5L,IACAhB,GAAqBE,KACrBuD,EAAAA,gBAAgBC,YAAYpH,KAAKW,MAAM8J,iBACvC4F,EACCE,GACD7L,GAAgBd,GAA0BuD,EAAAA,gBAAgBC,YAAYpH,KAAKW,MAAM8J,iBAAmB4F,EACnGG,EAAoBxQ,KAAK8J,aAAe,GAAKwG,EAAuBvM,EAAcX,UAAY,kBAEpG,OADApD,KAAK8J,aAAe,EAEhBvK,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKxI,EAAY,CAAEX,UAAWoN,IAC/BjR,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GACG/I,EAAQ,CACZJ,UAAWC,GAAAA,CACPG,EAASJ,UACT+M,EACAG,GAAwB,gBACxBA,GACItQ,KAAKP,MAAMiB,OAAOmO,kBAClB7O,KAAKP,MAAMiB,OAAOmO,iBAAmB,GACrC,yBAGPE,GAEJuB,GACGtQ,KAAKW,MAAM8J,eACXzK,KAAKW,MAAM8J,cAAczF,KAAI7D,IAAI,IAAAsP,EAAA,OAC7BlR,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKvI,EAAiB,CAAEgK,IAAK7M,EAAKuH,IAAKtF,UAAWY,EAAmBZ,YACrEpD,KAAKW,MAAM8J,eAAiBzK,KAAK6L,kBAAkB1K,GACnDoP,GAA6BvQ,KAAKkQ,uBAAuB/O,EAAKiJ,QAAkC,QAA3BqG,EAAEtP,EAAKqJ,4BAAoB,IAAAiG,OAAA,EAAzBA,EAA2BpI,cAiGnHqD,gBACC1L,KAAKP,MAAMiF,cACZ1E,KAAKqJ,SAAS,CAAEyB,gBAAY1F,EAAWqF,cAAe,KAAMM,oBAAqB,MAjZ1ElB,EAAAgB,aAAuB,EAub1C,oTC9cO,MAAMqrB,EAA2DnqB,IAAA,IAAC,sBACrEkiB,EAAqB,QACrBC,EAAO,UACPC,EAAS,YACTC,EAAW,MACXC,EAAK,OACL5H,EAAM,mBACN6H,EAAkB,YAClBC,EAAW,eACXC,GACHziB,EAAA,OACGxM,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK0hB,GACLM,EACAC,EACAF,EACAJ,EACAC,EACAC,EACAC,EACA5H,IAII0P,EAA8CriB,IAAA,IAAC,eAAE4a,EAAc,UAAEC,EAAS,eAAEC,EAAc,OAAE7L,GAAQjP,EAAA,OAC7GvU,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKmiB,GACLC,EACAC,EACA7L,IAIIqT,EAAsDjjB,IAAA,IAAC,cAAE2b,EAAa,QAAEtd,EAAO,MAAE6c,GAAOlb,EAAA,OACjG5T,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKuiB,GACLtd,EACA6c,IAIIgI,EAAsC/e,IAAA,IAAC,WAChD0X,EAAU,SACVC,EAAQ,QACRC,EAAO,gBACPC,EAAe,WACfC,EAAU,0BACVC,GACH/X,EAAA,OACG/X,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKyiB,GACLC,GAAY1vB,EAAAA,cAAC62B,EAAyB9pB,OAAAC,OAAA,GAAK0iB,IAC3CG,GACG7vB,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK4iB,GACLC,EAAWpqB,KAAI2pB,GACZpvB,EAAAA,cAACA,EAAAA,SAAc,CAACyO,IAAK2gB,EAAUvsB,KAAKusB,UAAUW,QACT,SAAhCX,EAAUvsB,KAAKmtB,cAA2BZ,EAAUvsB,KAAKotB,SAAWb,EAAUc,aAAe,KAC9FlwB,EAAAA,cAAC42B,EAAqB7pB,OAAAC,OAAA,GAAKoiB,KACzBU,GAA6BV,EAAUe,iBAKvDT,EAASU,cAAgBT,EAC1BD,EAASU,cACNpwB,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK0iB,EAASW,aACdV,EACAD,EAASY,sBAMbyG,EAAwC1e,IAAA,IAAC,YAAEmY,EAAW,OAAEC,GAAQpY,EAAA,OACzErY,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKwjB,GACLC,EAAOhrB,KAAI,CAACirB,EAAehrB,IACxB1F,EAAAA,cAAC82B,EAAiB/pB,OAAAC,OAAA,CAACyB,IAAK/I,GAAWgrB,QAKlCsG,EAAoD9e,IAAA,IAAC,kBAC9D0Y,EAAiB,QACjB3e,EAAO,SACPgR,EAAQ,SACRC,EAAQ,IACRE,EAAG,YACHyN,EAAW,aACXC,GACH5Y,EAAA,OACGlY,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK4jB,GACL3e,EACAgR,EACAC,EACAE,EACAyN,EACAC,IAIImG,EAAiDjG,IAAA,IAAC,oBAAEC,EAAmB,MAAEpf,EAAK,QAAEqf,GAASF,EAAA,OAClGhxB,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKikB,GACLpf,EACAqf,IAIIgG,EAAoC9F,IAAA,IAAC,UAAEC,EAAS,cAAEC,EAAa,oBAAEC,EAAmB,cAAEC,GAAeJ,EAAA,OAC9GpxB,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKqkB,GACLC,EACAC,EACAC,IAqCT,EAjC2DC,IActD,IAduD,YACxD7tB,EAAW,iBACX+tB,EAAgB,UAChBD,EAAS,MACTnb,EAAK,SACLqb,EAAQ,QACR3f,EAAO,MACPoH,EAAK,QACLlF,EAAO,gBACP0d,EAAe,aACfC,EAAY,QACZC,EAAO,KACPC,EAAI,OACJvB,GACHgB,EACG,OACIzxB,EAAAA,cAACiO,EAAAA,OAAMlB,OAAAC,OAAA,GAAKpJ,GACPguB,EACA3f,EACAoH,EACAlF,EACA0d,GAAmB7xB,EAAAA,cAAC22B,EAA2B5pB,OAAAC,OAAA,GAAK6kB,IACpDF,EACAD,EACAnb,EACAka,GAAUzwB,EAAAA,cAAC+2B,EAAkBhqB,OAAAC,OAAA,GAAKyjB,IAClCqB,GAAgB9xB,EAAAA,cAACg3B,EAAwBjqB,OAAAC,OAAA,GAAK8kB,IAC9CC,GAAW/xB,EAAAA,cAACi3B,EAAmBlqB,OAAAC,OAAA,GAAK+kB,IACpCC,GAAQhyB,EAAAA,cAACk3B,EAAgBnqB,OAAAC,OAAA,GAAKglB,qNCrI3C,MAAMmF,EAAqB,8DACrBC,EAAuB,GAAGD,mBAC1BE,EAAoB,GAAGF,eACvBG,EAAwB,GAAGH,cAa1B,IAAKI,GAAZ,SAAYA,GACRA,EAAAA,EAAA,+BACAA,EAAAA,EAAA,uBAFJ,CAAYA,IAAAA,EAA6C,KAqBzD,MAmDaC,EAA6HC,EAAAA,GAAiBC,gBAGzJ,oDAAqD,CAAEC,UArDrDz3B,IACA,IAAA03B,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACA,MAAOC,EAAeC,GAAoBr4B,IAAAA,SAAeE,EAAMo4B,sBAEzDC,EAAkBC,IACpBH,EAAiBG,GACjBt4B,EAAMyE,QAAQ6zB,IAIZC,GAAiCloB,EAAAA,EAAAA,wBACnCrQ,EAAMkN,kBACNK,EAAAA,EAAAA,kBAAiB,QAASvN,EAAMkN,iBAAmB,GAAGsrB,EAAAA,kBAAkBC,6BAEtEC,GAA6BroB,EAAAA,EAAAA,wBAC/BrQ,EAAMkN,kBACNK,EAAAA,EAAAA,kBAAiB,QAASvN,EAAMkN,iBAAmB,GAAGsrB,EAAAA,kBAAkBC,yBAG5E,OACI34B,IAAAA,cAAA,OAAK6D,UAAWC,GAAAA,CAAW5D,EAAM2D,UAAWszB,IACxCn3B,IAAAA,cAAC0E,EAAAA,OAAMqI,OAAAC,OAAA,CACHnJ,UAAWC,GAAAA,CACPszB,EACAgB,IAAkBb,EAA8CsB,aAAevB,EAAwB,IAC1G,aACuD,QADvDM,EAC0B,QAD1BC,EACW33B,EAAM8E,iBAAS,IAAA6yB,OAAA,EAAfA,EAAiBiB,mCAA2B,IAAAlB,EAAAA,EAAI,GAC5D/lB,MAAmD,QAA9CimB,EAAiB,QAAjBC,EAAE73B,EAAM8E,iBAAS,IAAA+yB,OAAA,EAAfA,EAAiBe,mCAA2B,IAAAhB,EAAAA,EAAI,GACvD9zB,KAAK,SACLW,QAASA,IAAM4zB,EAAehB,EAA8CsB,eACxEJ,IAERz4B,IAAAA,cAAC0E,EAAAA,OAAMqI,OAAAC,OAAA,CACHnJ,UAAWC,GAAAA,CACPuzB,EACAe,IAAkBb,EAA8CwB,SAAWzB,EAAwB,IACtG,aACmD,QADnDU,EAC0B,QAD1BC,EACW/3B,EAAM8E,iBAAS,IAAAizB,OAAA,EAAfA,EAAiBe,+BAAuB,IAAAhB,EAAAA,EAAI,GACxDnmB,MAA+C,QAA1CqmB,EAAiB,QAAjBC,EAAEj4B,EAAM8E,iBAAS,IAAAmzB,OAAA,EAAfA,EAAiBa,+BAAuB,IAAAd,EAAAA,EAAI,GACnDl0B,KAAK,SACLW,QAASA,IAAM4zB,EAAehB,EAA8CwB,WACxEH,yHCnFb,MAAMK,EAA4D/4B,IAAQ,IAAAg5B,EAAAC,EAC7E,MAAM,YACFC,EAAW,qBACXC,EAAoB,oCACpBC,EAAmC,QACnCrnB,EAAO,UACPiS,EAAS,gBACTqV,EAAe,4BACfC,EAA2B,iBAC3BC,EAAgB,aAChBhmB,EAAY,aACZwD,EAAY,qBACZhM,EAAoB,sBACpByuB,EAAqB,kBACrBC,GACAz5B,EACJ,OACIF,EAAAA,cAACiO,EAAAA,OAAMlB,OAAAC,OAAA,GAAKosB,GACRp5B,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKqsB,GACLpnB,EACAiS,EACDlkB,EAAAA,cAACkO,EAAAA,KAAI,CAACrK,UAAqC,QAA5Bq1B,EAAEK,MAAAA,OAAe,EAAfA,EAAiB11B,iBAAS,IAAAq1B,EAAAA,EAAI,IAC1CO,EACAD,EACA5xB,EAAAA,gBAAgBC,YAAYoD,IACzBjL,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKssB,GACLruB,EAAqBxF,KAAK7D,GACvB5B,EAAAA,cAACA,EAAAA,SAAc,CAACyO,IAAI,IAAI7M,MAInC+3B,EACD35B,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKiK,EAAY,CAAEpT,UAAkC,QAAzBs1B,EAAEliB,MAAAA,OAAY,EAAZA,EAAcpT,iBAAS,IAAAs1B,EAAAA,EAAI,KACzDj5B,EAAM05B,uBAEVnmB,GAEJimB,KAMjB,+EC3CA,MAAMG,EAAmBC,IACrB,QAAkBj0B,IAAdi0B,EAAyB,CACzB,MAAM,eAAEC,EAAc,UAAEC,GAAcF,EAEtC,OAAO95B,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK+sB,GAAiBC,EAAUv0B,IAAIw0B,IAEpD,OAAO,MAQLA,EAA2BC,IAC7B,MAAM,eAAEH,EAAc,oBAAEI,EAAmB,QAAEloB,EAAO,OAAEuR,EAAM,OAAE4W,GAAWF,EAEzE,OACIl6B,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK+sB,GACN/5B,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKmtB,GAAsBloB,GAC/BuR,EACA4W,IAqEb,EAjCuDl6B,IACnD,MAAM,gBACFm6B,EAAe,aACfC,EAAY,KACZC,EAAI,eACJC,EAAc,OACdzU,EAAM,UACN+T,EAAS,6BACTW,EAA4B,yBAC5BC,EAAwB,eACxBC,EAAc,aACdx1B,GACAjF,EAEJ,OACIF,EAAAA,cAACiO,EAAAA,OAAMlB,OAAAC,OAAA,GAAKqtB,GACRr6B,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK+Y,GACN/lB,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKstB,GAhDPM,EACfL,EACAp1B,EACAq1B,EACAK,EACAC,EACAhB,IAEO30B,EACHnF,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKwtB,GACNx6B,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK6tB,GACLN,EAAKQ,QACLlB,EAAgBC,GAChBS,EAAKS,SACNh7B,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK8tB,GAAuBP,EAAKU,aACrCV,EAAKW,eAIdl7B,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKwtB,GACNx6B,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK8tB,GAAuBP,EAAKU,aACtCj7B,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK6tB,GACLN,EAAKQ,QACLlB,EAAgBC,GAChBS,EAAKS,SACLT,EAAKW,eAwBDN,CACGL,EACAp1B,EACAq1B,EACAC,EACAC,EACAZ,KAKXa,+FCzEDQ,0nBAAZ,SAAYA,GACRA,EAAAA,EAAA,yBACAA,EAAAA,EAAA,2BAFJ,CAAYA,IAAAA,EAAW,KAWvB,IAAMC,EAAN,cAAsBp7B,EAAAA,cAKlBC,YAAYC,GACRC,MAAMD,GALO,KAAAm7B,uBAAiC,sBAEjC,KAAAC,sBAAgC,qBAI7C76B,KAAK86B,iBAAmB96B,KAAK86B,iBAAiB16B,KAAKJ,MAGhD+B,SACH,MAAM,MAAEmyB,EAAK,WAAEtvB,EAAU,OAAElE,EAAM,KAAE0B,EAAI,WAAE24B,EAAU,UAAEC,GAAch7B,KAAKP,MAClEwF,EAAQ+1B,GAAa,EACrBC,EAAYC,EAAaj2B,EAAOjF,KAAKP,MAAM07B,OAAS,IACpDC,EAAwBh5B,GAAQA,EAAKi5B,gBAAkBj5B,EAAKi5B,eAAet2B,OAC3Eu2B,EACFF,GACAA,EAAsBD,QAAUn7B,KAAKP,MAAM07B,YACE/1B,IAA7Cg2B,EAAsBG,mBAChBH,EAAsBG,qBAAuBt2B,EAC7C81B,IAAc,EAsBxB,OAAOn2B,EArBQpC,EAAAA,EAAA,GACRxC,KAAKP,OAAK,IACb+7B,oBAAqB,CACjBr4B,YAAanD,KAAKP,MAClB2D,UAAWC,GAAAA,CAAWrD,KAAK46B,uBAAwBl6B,EAAO0C,YAE9Dq4B,mBAAoB,CAChBt4B,YAAanD,KAAKP,MAClB2D,UAAWC,GAAAA,CAAWrD,KAAK66B,sBAAuBn6B,EAAO0C,YAE7Ds4B,eAAgB,CACZt4B,UAAW,+BACXE,IAAK,UACL,eAAgBg4B,EAChB/3B,KAAM,WACNoK,SAAU2tB,EAAQ,GAAK,EACvBz1B,GAAIo1B,GAERU,UAAW37B,KAAK86B,mBAChBc,SAAU1H,KAKV4G,mBACJ,OAAOv7B,EAAAA,cAAAA,EAAAA,SAAA,KAAGS,KAAKP,MAAMiB,OAAOm7B,gBA9C9BlB,GAAOjxB,EAAAA,EAAAA,IAAA,CADZoyB,EAAAA,IACKnB,GAkDC,MAAMO,EAAeA,CAACj2B,EAAeY,IACjC,oBAAoBA,KAAMZ,IAGrC,wFCpFA,MAsBM82B,EAAyB/nB,GAEvBzU,EAAAA,cAAAA,EAAAA,SAAA,KACKyU,GAASA,EAAM/S,OAAS,EACnB+S,EAAMhP,KAAI,CAAC7D,EAAuB8D,IACvB1F,EAAAA,cAACA,EAAAA,SAAc,CAACyO,IAAK/I,GAAQ9D,KAExC,MAIlB,EAjCiD1B,IAC7C,MAAM,YAAEu8B,EAAW,SAAEJ,EAAQ,oBAAEJ,EAAmB,mBAAEC,EAAkB,eAAEC,EAAc,UAAEC,GAAcl8B,EAEtG,OAAQu8B,GACJ,KAAKtB,EAAAA,YAAYuB,WACb,OACI18B,EAAAA,cAACiO,EAAAA,OAAMlB,OAAAC,OAAA,GAAKivB,GACRj8B,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKmvB,GACLE,GACGA,EAASM,gBACTN,EAASM,eAAej7B,QACxB86B,EAAsBH,EAASM,kBAInD,KAAKxB,EAAAA,YAAYyB,UACb,OAAO58B,EAAAA,cAACiO,EAAAA,OAAMlB,OAAAC,OAAA,GAAKkvB,GAAqBE,GAC5C,QACI,OAAO,uwBCkBnB,IAAMS,EAAN,cAAkB78B,EAAAA,UAKdC,YAAYC,GACRC,MAAMD,GALM,KAAA48B,cAAwB,YAgFjC,KAAAC,oBAAuBnxB,GAA0CnL,KAAKP,MAAMiB,OAAO8Q,QAASjH,KAAOY,EAAMI,OAAO0c,MAgCtG,KAAAsU,YAAehV,IAC5BvnB,KAAKw8B,WAAajV,GAsCL,KAAAkV,SAAW,CAACx3B,EAAeY,IAAgB62B,IACxD,MAAMrB,EAAiB,CAAEE,mBAAoBt2B,EAAOk2B,MAAOt1B,GAC3D7F,KAAKP,MAAMa,QAAQ4L,cAAcywB,QAAOC,EAAAA,EAAAA,qBAAoBvB,GAAiBA,GAC7Er7B,KAAKqJ,SAAS,CAAEwzB,gBAAiB53B,IAGjC,MAAMkH,EAAiBnM,KAAKP,MAAMa,QAAQC,QACpCu8B,EAAS98B,KAAK+8B,iBAAiB5wB,EAAgBnM,KAAKq8B,cAAe,GAAGr8B,KAAKP,MAAMoG,MAAMm3B,OAAO/3B,EAAQ,MAC5GkH,GAAkBvK,OAAOq7B,QAAQC,UAAU,CAAEC,KAAML,GAAU,GAAIA,IAGpD,KAAAM,WAAa,CAACn4B,EAAeY,IAAgB62B,IAC1D,GAAkB,KAAdA,EAAE5Q,QAAgB,CAClB,MAAMuP,EAAiB,CAAEE,mBAAoBt2B,EAAOk2B,MAAOt1B,GAC3D7F,KAAKP,MAAMa,QAAQ4L,cAAcywB,QAAOC,EAAAA,EAAAA,qBAAoBvB,GAAiBA,GAC7Er7B,KAAKqJ,SAAS,CAAEwzB,gBAAiB53B,IAGjC,MAAMkH,EAAiBnM,KAAKP,MAAMa,QAAQC,QACpCu8B,EAAS98B,KAAK+8B,iBAAiB5wB,EAAgBnM,KAAKq8B,cAAe,GAAGr8B,KAAKP,MAAMoG,MAAMm3B,OAAO/3B,EAAQ,MAC5GkH,GAAkBvK,OAAOq7B,QAAQC,UAAU,CAAEC,KAAML,GAAU,GAAIA,GAGrE,GAAkB,KAAdJ,EAAE5Q,SAAgC,KAAd4Q,EAAE5Q,QAAgB,CACtC,MAAM,MAAEoI,GAAUl0B,KAAKP,MACjB49B,EAAcnJ,GAASA,EAAMoJ,UAAYpJ,EAAMoJ,SAASr8B,QAAW,EAEzE,GAAkB,KAAdy7B,EAAE5Q,QAAgB,CAEd7mB,EAAQ,IAAMo4B,IACdp4B,GAAS,GAEb,MAAMo2B,EAAiB,CAAEE,mBAAoBt2B,EAAQ,EAAGk2B,MAAOt1B,GAC/D7F,KAAKP,MAAMa,QAAQ4L,cAAcywB,QAAOC,EAAAA,EAAAA,qBAAoBvB,GAAiBA,GAC7Er7B,KAAKqJ,SAAS,CAAEwzB,gBAAiB53B,EAAQ,IAGzC,MAAMkH,EAAiBnM,KAAKP,MAAMa,QAAQC,QACpCu8B,EAAS98B,KAAK+8B,iBAAiB5wB,EAAgBnM,KAAKq8B,cAAe,GAAGr8B,KAAKP,MAAMoG,MAAMm3B,OAAO/3B,EAAQ,MAC5GkH,GAAkBvK,OAAOq7B,QAAQC,UAAU,CAAEC,KAAML,GAAU,GAAIA,QAG9D,GAAkB,KAAdJ,EAAE5Q,QAAgB,CAEX,IAAV7mB,IACAA,EAAQo4B,GAEZ,MAAMhC,EAAiB,CAAEE,mBAAoBt2B,EAAQ,EAAGk2B,MAAOt1B,GAC/D7F,KAAKP,MAAMa,QAAQ4L,cAAcywB,QAAOC,EAAAA,EAAAA,qBAAoBvB,GAAiBA,GAC7Er7B,KAAKqJ,SAAS,CAAEwzB,gBAAiB53B,EAAQ,IAGzC,MAAMkH,EAAiBnM,KAAKP,MAAMa,QAAQC,QACpCu8B,EAAS98B,KAAK+8B,iBAAiB5wB,EAAgBnM,KAAKq8B,cAAe,GAAGr8B,KAAKP,MAAMoG,MAAMm3B,OAAO/3B,MACpGkH,GAAkBvK,OAAOq7B,QAAQC,UAAU,CAAEC,KAAML,GAAU,GAAIA,MAvMzE,MAAM,gBAAES,GAAoBv9B,KAAKP,MAAMiB,QACjC,MAAEwzB,GAAUl0B,KAAKP,MACjB49B,EAAcnJ,GAASA,EAAMoJ,UAAYpJ,EAAMoJ,SAASr8B,QAAW,EACzE,IAAIu8B,EAAeD,GAAmBA,GAAmBF,GAAcE,EAAkB,EAAIA,EAAkB,EAAI,EACnH,MAAME,EACDz9B,KAAKP,MAAMa,SACRN,KAAKP,MAAMa,QAAQC,SACnBP,KAAKP,MAAMa,QAAQC,QAAQozB,OAC3B3zB,KAAKP,MAAMa,QAAQC,QAAQozB,MAAM+J,WACrC,GACJ,IAAIC,EAAwB,EAC5B,GAAIF,EAAYG,QAAQ,KAAO,EAAG,CAC9B,MAAMC,EAAMJ,EAAY71B,MAAM,KACbi2B,EAAI,KACJ79B,KAAKP,MAAMoG,KACxB83B,EAAgBG,OAAOC,SAASF,EAAI,GAAI,KAGhDL,EAAeG,EAAgB,GAAKA,GAAiBN,EAAaM,EAAgB,EAAIH,EACtFx9B,KAAKW,MAAQ,CAAEk8B,gBAAiBW,GAEhCx9B,KAAKg+B,cAAgBh+B,KAAKg+B,cAAc59B,KAAKJ,MAC7CA,KAAKi+B,eAAiBj+B,KAAKi+B,eAAe79B,KAAKJ,MAC/CA,KAAKy8B,SAAWz8B,KAAKy8B,SAASr8B,KAAKJ,MACnCA,KAAKo9B,WAAap9B,KAAKo9B,WAAWh9B,KAAKJ,MACvCA,KAAK+8B,iBAAmB/8B,KAAK+8B,iBAAiB38B,KAAKJ,MACnDA,KAAKw8B,WAAa,KAGf0B,sBAAsBC,EAAgCC,GACzD,OAAIp+B,KAAKW,QAAUy9B,GAAap+B,KAAKP,MAAM2C,OAAS+7B,EAAU/7B,KAM3DL,SACH,MAAM,MAAEmyB,GAAUl0B,KAAKP,OACjB,QAAE+R,EAAO,UAAEpO,GAAcpD,KAAKP,MAAMiB,OAEpC29B,EAAmB7sB,GACrBjS,EAAAA,cAACiC,EAAAA,GAAa,CACV4B,UAAU,iCACVE,IAAKkO,EAAQlO,KAAO,KACpBiH,KAAMiH,EAAQjH,KACdmd,UAAW,CAAEoB,OAAQ9oB,KAAKs8B,oBAAqBnwB,eAAgBnM,KAAKP,MAAMa,QAAQC,WAGpF88B,EAAcnJ,GAASA,EAAMoJ,UAAYpJ,EAAMoJ,SAASr8B,QAAW,EAMnEq9B,EAAY97B,EAAAA,EAAA,GACXxC,KAAKP,OAAK,IACb8+B,aAAc,CACVp7B,YAAanD,KAAKP,MAClB2D,UAAWC,GAAAA,CAAW,SAAUD,IAEpCo7B,cAAe,CAAEp7B,UAAW,yBAC5Bq7B,YAAa,CAAEr7B,UAAW,sBAAuBE,IAAK,KAAiBC,KAAM,WAC7EiO,QAAS6sB,EACT39B,OAAQV,KAAKP,OAASO,KAAKP,MAAMiB,OACjCg+B,iBAAkB,CACdp7B,IAAK,MACLF,UAAW,0BAEfu7B,YAAatB,EAAa,GAAKnJ,EAAMoJ,SAASt4B,KAAI,CAAC7D,EAAuB8D,IAAkBjF,KAAKi+B,eAAe98B,EAAM8D,KACtH25B,WAAYvB,EAAa,GAAKnJ,EAAMoJ,SAASt4B,KAAI,CAAC7D,EAAuB8D,IAAkBjF,KAAKg+B,cAAc78B,EAAM8D,OAExH,OAAOjF,KAAKP,MAAMmF,WAAW05B,GAK1BlxB,qBACH,MAAM,KAAEhL,GAASpC,KAAKP,MACtB,IAAKO,KAAKP,MAAMa,QAAQC,QAAQs+B,OAAOC,SAAU,CAC7C,MAAMC,EAAkB38B,GAAQA,EAAKi5B,gBAAkBj5B,EAAKi5B,eAAet2B,QAAU3C,EAAKi5B,eAAet2B,OAAOo2B,MAChH,GAAI4D,EACI/+B,KAAKP,MAAMoG,KAAOk5B,GAClB/+B,KAAKw8B,YAAcx8B,KAAKw8B,WAAWjvB,YAEpC,CACH,MAAMkwB,EACDz9B,KAAKP,MAAMa,SACRN,KAAKP,MAAMa,QAAQC,SACnBP,KAAKP,MAAMa,QAAQC,QAAQozB,OAC3B3zB,KAAKP,MAAMa,QAAQC,QAAQozB,MAAM+J,WACrC,GACJ,GAAID,EAAYG,QAAQ,KAAO,EAAG,CAClBH,EAAY71B,MAAM,KACT,KACJ5H,KAAKP,MAAMoG,IACxB7F,KAAKw8B,YAAcx8B,KAAKw8B,WAAWjvB,WAe/CywB,cAAc78B,EAAuB8D,GACzC,MAAM,KAAE7C,GAASpC,KAAKP,MAChB87B,EACFn5B,GAAQA,EAAKi5B,gBAAkBj5B,EAAKi5B,eAAet2B,QAAU3C,EAAKi5B,eAAet2B,OAAOw2B,mBACtFwD,EAAkB38B,GAAQA,EAAKi5B,gBAAkBj5B,EAAKi5B,eAAet2B,QAAU3C,EAAKi5B,eAAet2B,OAAOo2B,MAC1G6D,OACqB55B,IAAvBm2B,GAAoCwD,IAAoB/+B,KAAKP,MAAMoG,GAC7D01B,IAAuBt2B,EACvBjF,KAAKW,MAAMk8B,kBAAoB53B,EACnCg2B,GAAYC,EAAAA,EAAAA,cAAaj2B,EAAOjF,KAAKP,MAAMoG,IAEjD,OACItG,EAAAA,cAAA,MACIyO,IAAK/I,EACL7B,UAAU,yBACVuK,SAAUqxB,EAAW,GAAK,EAC1B96B,QAASlE,KAAKy8B,SAASx3B,EAAOjF,KAAKP,MAAMoG,IACzCo5B,UAAWj/B,KAAKo9B,WAAWn4B,EAAOjF,KAAKP,MAAMoG,IAC7C6H,IAAK1N,KAAKW,MAAMk8B,kBAAoB53B,EAAQjF,KAAKu8B,iBAAcn3B,EAAS,gBACzD61B,EAAS,gBACT+D,EACfz7B,KAAK,OAELhE,EAAAA,cAACA,EAAAA,SAAc,CAACyO,IAAK/I,GAChB1F,EAAAA,aAAmB4B,EAA4B,CAC5C66B,YAAatB,EAAAA,YAAYyB,UACzBpB,WAAY91B,IAAUjF,KAAKW,MAAMk8B,gBACjC7B,UAAW/1B,EACXk2B,MAAOn7B,KAAKP,MAAMoG,OAkE9Bo4B,eAAe98B,EAAuB8D,GAC1C,OACI1F,EAAAA,cAACA,EAAAA,SAAc,CAACyO,IAAK/I,GAChB1F,EAAAA,aAAmB4B,EAA4B,CAC5C66B,YAAatB,EAAAA,YAAYuB,WACzBlB,WAAY91B,IAAUjF,KAAKW,MAAMk8B,gBACjC7B,UAAW/1B,EACXk2B,MAAOn7B,KAAKP,MAAMoG,MAM1Bk3B,iBAAiB5wB,EAA0C+yB,EAAmBC,GAClF,IAAIC,EAGAA,EADA59B,EAAAA,GAA0BC,UACpB,IAAIizB,IAAI9yB,OAAOqnB,SAASjZ,MAExB,IAAI0kB,IAAIvoB,EAAeizB,IAAIC,WAAWrvB,MAGhD,MAAM6uB,EAAS,IAAIj9B,OAAO09B,gBAAgBF,EAAIrV,QAG9C,OAFA8U,EAAOU,IAAIL,EAAWC,GACtBC,EAAIrV,OAASyV,mBAAmBX,EAAOzvB,YAChCgwB,EAAIhwB,aA5ObgtB,GAAG1yB,EAAAA,EAAAA,IAAA,CADRoyB,EAAAA,IACKM,GAgPN,oFCpRA,MAeA,EAfyC38B,IACrC,MAAM,QAAE+R,EAAO,aAAE+sB,EAAY,WAAEK,EAAU,YAAED,GAAgBl/B,EAC3D,OAAKA,EAAM+R,SAAY/R,EAAMm/B,YAAen/B,EAAMk/B,YAK9Cp/B,EAAAA,cAACiO,EAAAA,OAAMlB,OAAAC,OAAA,GAAKgyB,GACRh/B,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK9M,EAAM++B,eAAgBhtB,GAChCjS,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK9M,EAAMg/B,aAAcG,GAC9Br/B,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK9M,EAAMi/B,kBAAmBC,KAPvCl/B,EAAMa,QAAQ+B,UAAUC,MAAM,4CACvB,qICaR,MAAMm9B,UAAsBlgC,EAAAA,cAAnCC,cAAA,oBAoBqB,KAAA4nB,kBAAqBC,IAClC,IAAKlgB,EAAAA,gBAAgBC,YAAYigB,GAC7B,OAAO,KAEX,MAAMC,EAAuC,GAC7C,IAAK,MAAMC,KAAQF,EAAU,CAEzB,MAAMta,GAAUC,EAAAA,EAAAA,kBAAiB,QAAShN,KAAKP,MAAMkN,iBAAkB,GAAI,IACrE7G,EAAWyhB,EAAKzhB,SAAWyhB,EAAKzhB,SAAW,GACjDiH,EAAQ4C,cAAcC,MAAQ9J,EAC9B,MAAM+J,GAAaC,EAAAA,EAAAA,wBAAuB9P,KAAKP,MAAMkN,iBAAkBI,GACjEya,EAAoC,CACtCrf,UAAWof,EAAKpf,UAChB/E,UAAW,qBACX0C,SAAUyhB,EAAKzhB,SACfuC,QAASkf,EAAKlf,QAAQC,eACtBQ,aAAcye,EAAKze,aACnBvF,KAAM,SACNiH,qBAAsBqF,EACtB3L,SAAS+L,EAAAA,EAAAA,kBAAiBjQ,KAAKP,MAAMkN,iBAAkBI,EAASjH,IAEpEwhB,EAAcpiB,KAAKsiB,GAGvB,OAAOF,GA3CJvlB,SACH,MAAMulB,EAAgBtnB,KAAKonB,kBAAkBpnB,KAAKP,MAAMkS,OACxD,OACIpS,EAAAA,cAAA,OAAK6D,UAAU,uBACVkkB,GAAiBngB,EAAAA,gBAAgBC,YAAYkgB,GAC1C/nB,EAAAA,cAACkoB,EAAAA,GAAc,CACX9V,MAAO2V,EACPI,UAAW,CAAEC,aAAc3nB,KAAKP,MAAMkoB,aAAcxb,eAAgBnM,KAAKP,MAAM0M,kBAEnF,OAqCpB,+kBCxCO,MAAMuzB,UAAqBngC,EAAAA,cAO9BC,YAAmBC,GACfC,MAAMD,GAPO,KAAAkgC,mBAAuC/yB,EAAAA,EAAAA,oBACpD5M,KAAKP,MAAMa,QAAQC,QAAQsM,kBAC3B7M,KAAKP,MAAMqN,aACX9M,KAAKP,MAAM4C,WA6DR,KAAAi6B,oBAAuBnxB,IAC1BnL,KAAKP,MAAMiB,OAAO8Q,QAASjH,KAAOY,EAAMI,OAAO0c,OAO5C,KAAA2X,sBAAyBz0B,IAC5BnL,KAAKP,MAAMiB,OAAO+iB,UAAYtY,EAAMI,OAAO0c,OAQxC,KAAAJ,qBAAwBC,GAAuB3c,IAA8C,IAAA00B,EACrE,QAA3BA,EAAI7/B,KAAKP,MAAMiB,OAAOiR,aAAK,IAAAkuB,GAAvBA,EAA0B/B,OAAOhW,MACjC9nB,KAAKP,MAAMiB,OAAOiR,MAAMmsB,OAAOhW,IAAYhiB,SAAWqF,EAAMI,OAAO0c,QAzEpElmB,SACH,MAAM,QAAEyP,EAAO,UAAEiS,EAAS,gBAAEqc,EAAe,eAAEC,EAAc,eAAEC,EAAc,MAAEruB,GAAU3R,KAAKP,MAAMiB,OAC5Fu/B,EAAgBtuB,GAASxK,EAAAA,gBAAgBC,YAAYuK,IACvDpS,EAAAA,cAACkgC,EAAa,CACV9tB,MAAOA,EACPgW,aAAc3nB,KAAK6nB,qBACnB1b,eAAgBnM,KAAKP,MAAMa,QAAQC,QACnCoM,iBAAkB3M,KAAK2/B,oBAGzBO,EAAwB,CAC1B58B,IAAK,IACLF,UAAW,yBACXG,KAAM,OACNyM,KAAMgwB,MAAAA,OAAc,EAAdA,EAAgB33B,QAAQC,eAC9B,aAAc03B,MAAAA,OAAc,EAAdA,EAAgB73B,UAC9BoD,OAAQy0B,MAAAA,GAAAA,EAAgBl3B,aAAe,cAAW1D,GAOhD7C,EAASC,EAAAA,EAAA,GACRxC,KAAKP,OAAK,IACb+R,QAASxR,KAAKg1B,eAAexjB,GAC7BiS,UAAWzjB,KAAKmgC,iBAAiB1c,GACjCqc,gBAAiB9/B,KAAKogC,uBAAuBN,GAC7CC,eAAgB//B,KAAKqgC,sBAAsBN,GAC3CpuB,MAAOsuB,EACPK,aAAc,CACVn9B,YAAanD,KAAKP,MAClB2D,UAAW,IAEfm9B,kBAAmBP,EAAiBE,EAfR,CAC5B58B,IAAK,SACLF,UAAW,0BAcXo9B,uBAAwB,CACpBp9B,UAAW,uBAEfq9B,gCAAiC,CAC7Br9B,UAAW,gCACX,cAAe,QAEnBs9B,yBAA0B,CACtBt9B,UAAW,2BAInB,OAAOpD,KAAKP,MAAMmF,WAAWrC,GA8BzB49B,iBAAiB51B,GACrB,OAAKA,EAIDhL,EAAAA,cAACkoB,EAAAA,GAA0B,CACvBld,KAAMA,EACNnH,UAAU,qBACVskB,UAAW,CAAEoB,OAAQ9oB,KAAK4/B,sBAAuBzzB,eAAgBnM,KAAKP,MAAMa,QAAQC,WANjF,KAWPy0B,eAAexjB,GAAsB,IAAAmvB,EACzC,OAAKnvB,EAGD8L,EAAAA,iBAAiBsjB,mBAAmBpvB,EAAQjH,MACrC,KAIPhL,EAAAA,cAACkoB,EAAAA,GAAa,CACVnkB,IAAgB,QAAbq9B,EAAEnvB,EAAQlO,WAAG,IAAAq9B,EAAAA,EAAI,KACpBp2B,KAAMiH,EAAQjH,KACdnH,UAAU,sBACVskB,UAAW,CAAEoB,OAAQ9oB,KAAKs8B,oBAAqBnwB,eAAgBnM,KAAKP,MAAMa,QAAQC,WAX/E,KAgBP6/B,uBAAuBj/B,EAA4B0/B,GAA+B,IAAAC,EAAAC,EAGtF,MAUMC,EAAwB7/B,MAAAA,GAAmB,QAAf2/B,EAAJ3/B,EAAMsB,qBAAa,IAAAq+B,GAAnBA,EAAqBp+B,UAAYvB,EAAKsB,cAVd,CAClDC,UAAW,CACPC,GAAI,CAAEC,EAAG,kBAAmBC,EAAG,IAAKC,EAAG,KACvCyG,GAAI,CAAE3G,EAAG,kBAAmBC,EAAG,IAAKC,EAAG,KACvC0G,GAAI,CAAE5G,EAAG,kBAAmBC,EAAG,IAAKC,EAAG,KACvC2G,GAAI,CAAE7G,EAAG,kBAAmBC,EAAG,IAAKC,EAAG,KACvCC,GAAI,CAAEH,EAAG,kBAAmBC,EAAG,IAAKC,EAAG,MAE3CE,UAAU,GAId,OACIzD,EAAAA,cAACkoB,EAAAA,GAAcnb,OAAAC,OAAA,GACPpL,EAAI,CACRgL,eAAgBnM,KAAKP,MAAMa,QAAQC,QACnC0C,aAAcjD,KAAKP,MAAMa,QAAQC,QAAQ0C,aACzCR,cAAeu+B,EACfv0B,oBAAoB,UAAS,cAChBo0B,EACbnZ,UAAW,CACP1Z,IAAsC,QAAnC+yB,EAAE/gC,KAAKP,MAAMiB,OAAOo/B,uBAAe,IAAAiB,EAAAA,EAAI,GAC1C50B,eAAgBnM,KAAKP,MAAMa,QAAQC,QACnC0gC,WAAYjhC,KAAKP,MAAMyhC,SACvBC,kBAAmB,YAM3Bd,sBACJl/B,EACAigC,EACAP,GAA+B,IAAAQ,EAE/B,OAAKlgC,EAGDmc,EAAAA,iBAAiBsjB,mBAAmBz/B,EAAKuH,KAClC,KAIPnJ,EAAAA,cAACkoB,EAAAA,GAAcnb,OAAAC,OAAA,GACPpL,EAAI,CACR8B,aAAcjD,KAAKP,MAAMa,QAAQC,QAAQ0C,aACzCR,cAAe2+B,EACf30B,oBAAoB,UAAS,cAChBo0B,EACbnZ,UAAW,CACP1Z,IAAqC,QAAlCqzB,EAAErhC,KAAKP,MAAMiB,OAAOq/B,sBAAc,IAAAsB,EAAAA,EAAI,GACzCl1B,eAAgBnM,KAAKP,MAAMa,QAAQC,QACnC0gC,WAAYjhC,KAAKP,MAAMyhC,SACvBC,kBAAmB,QAGnBG,OAASthC,KAAKP,MAAMiB,OAAe6gC,2BApBpC,MA2BnB,qHC3MA,MAgCaC,EAA8D/hC,IACvE,MAAM,aAAE6gC,GAAiB7gC,EACzB,OAAOF,EAAAA,cAACiO,EAAAA,OAAMlB,OAAAC,OAAA,GAAK+zB,GAlCY7gC,CAAAA,IAC/B,MAAM,QACF+R,EAAO,UACPiS,EAAS,gBACTqc,EAAe,MACfnuB,EAAK,eACLouB,EAAc,kBACdQ,EAAiB,uBACjBC,EAAsB,gCACtBC,EAA+B,yBAC/BC,GACAjhC,EAEJ,OACIF,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKg0B,GACNhhC,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKi0B,GAAyBV,GACnCvgC,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKm0B,GACLlvB,EACAiS,EACA9R,GAELpS,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKk0B,GAAkCV,KAalB0B,CAA0BhiC,KAGhE,kGCnBA,MAAMiiC,EAAqBA,CAAC9iB,EAA+BkB,IAA6B,KAAK,IAAAG,EACnE,QAAtBA,EAAArB,EAASI,qBAAa,IAAAiB,GAAtBA,EAAwB0hB,UAAUC,aAAa9hB,IAQ7C+hB,EAAwBjjB,GAAkC,KAAK,IAAAsB,EAC3C,QAAtBA,EAAAtB,EAASI,qBAAa,IAAAkB,GAAtBA,EAAwByhB,UAAUC,aAAY,IA0H5CE,EAAiBA,CACnBljB,EACAra,EACAga,EACA5R,EACAo1B,EACApiB,IAEIf,EAAStc,QAAUiC,EAAUy9B,uBAEzBziC,EAAAA,cAACkO,EAAAA,KAAI,CAACrK,UAAU,0BACXwb,EAASS,cACTT,EAASQ,QAKlB2iB,EAEIxiC,EAAAA,cAACkO,EAAAA,KAAI,CAACrK,UAAU,sCAnEE6+B,EAC1BrjB,EACAra,EACAga,EACA5R,EACAgT,KACoB,IAAAuiB,EAEpB,IAAKtjB,EAASI,gBAAkBT,IAA8B,QAAb2jB,EAAAtjB,EAASxc,YAAI,IAAA8/B,OAAA,EAAbA,EAAenjB,SAASgB,gBAAiBJ,EACtF,OAAO,KAGX,MAAM,uBAAEwiB,EAAsB,uBAAEC,EAAsB,oBAAEC,GAAwB99B,EAE1Eub,EAAkBlB,EAASI,cAAcc,gBAEzC/S,GAAUC,EAAAA,EAAAA,kBAAiB,QAASL,EAAmBsrB,EAAAA,kBAAkBqK,eACzEC,GAAyBzyB,EAAAA,EAAAA,wBAAuBnD,EAAmBI,GAEzE,OACIxN,EAAAA,cAAAA,EAAAA,SAAA,KACKugB,EACGvgB,EAAAA,cAAC0E,EAAAA,OAAM,CAACV,KAAK,OAAOH,UAAU,qCAAqCc,QAAS29B,EAAqBjjB,IAC5FujB,GAEL,KACJ5iC,EAAAA,cAAC0E,EAAAA,OAAMqI,OAAAC,OAAA,CACHhJ,KAAK,OACLH,UAAU,sCACNm/B,EAAsB,CAC1Br+B,QAASw9B,EAAmB9iB,EAAUkB,KAErCA,EAAkBsiB,EAAyBC,KAoC3CJ,CAAsBrjB,EAAUra,EAAWga,EAAe5R,EAAkBgT,GAC5Ef,EAASO,mBACTP,EAASS,cACTT,EAASQ,QAKlBR,EAASO,mBAEL5f,EAAAA,cAACkO,EAAAA,KAAI,CAACrK,UAAU,gCACXwb,EAASO,mBACTP,EAASS,cACTT,EAASQ,QAMlB7f,EAAAA,cAACkO,EAAAA,KAAI,CAACrK,UAAU,0BACXwb,EAASS,cACTT,EAASQ,QAehBojB,EAA0BA,CAC5BpkB,EACA7Z,EACAga,EACA5R,EACAo1B,EACApiB,IAEOvB,EAAUpZ,KAAI,CAAC4Z,EAAU3Z,KAC5B,MAAM+1B,EAAY/1B,EAClB,OACI1F,EAAAA,cAAA,OAAK6D,UAAU,sBAAsB4K,IAAKgtB,GACrCpc,EAASG,SACVxf,EAAAA,cAAA,QAAM6D,UAAU,mCACX2+B,EACK,KArLDU,EACrB7jB,EACAra,EACAga,EACA5R,EACAgT,KACoB,IAAA+iB,EAEpB,IAAK9jB,EAASI,gBAAkBT,IAA8B,QAAbmkB,EAAA9jB,EAASxc,YAAI,IAAAsgC,OAAA,EAAbA,EAAe3jB,SAASgB,gBAAiBJ,EACtF,OAAO,KAGX,MAAM,uBACFyiB,EAAsB,yBACtBO,EAAwB,oBACxBN,EAAmB,8BACnBO,EAA6B,uBAC7BT,GACA59B,EAEEub,EAAkBlB,EAASI,cAAcc,gBAEzC/S,GAAUC,EAAAA,EAAAA,kBAAiB,QAASL,EAAmBsrB,EAAAA,kBAAkBqK,eACzEC,GAAyBzyB,EAAAA,EAAAA,wBAAuBnD,EAAmBI,GAEzE,OACIxN,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKqS,EAASI,cAAcC,gBAC7B1f,EAAAA,cAAA,OAAK6D,UAAU,+BACV0c,EACGvgB,EAAAA,cAAA,QAAM6D,UAAU,WAAWw/B,GAE3BrjC,EAAAA,cAAA,QAAM6D,UAAU,QAAQu/B,IAG/B7iB,GACGvgB,EAAAA,cAAA,OAAK6D,UAAU,oCACX7D,EAAAA,cAAA,QAAM6D,UAAU,0CAA0Cwb,EAASI,cAAcqB,aACjF9gB,EAAAA,cAAC0E,EAAAA,OAAM,CAACV,KAAK,OAAOH,UAAU,mCAAmCc,QAAS29B,EAAqBjjB,IAC1FujB,IAIb5iC,EAAAA,cAAC0E,EAAAA,OAAMqI,OAAAC,OAAA,CACHnJ,UAAU,4BACNm/B,EAAsB,CAC1Br+B,QAASw9B,EAAmB9iB,EAAUkB,KAErCA,EAAkBsiB,EAAyBC,KAuIlCI,CAAiB7jB,EAAUra,EAAWga,EAAe5R,EAAkBgT,GAC5EmiB,EAAeljB,EAAUra,EAAWga,EAAe5R,EAAkBo1B,EAAkBpiB,QAqBtGkjB,EAAkBA,CACpBpjC,EACA2e,EACA7Z,EACAga,EACAE,EACAC,EACAokB,EACAn2B,EACAo1B,EACApiB,IAEIjB,EACOnf,EAAAA,cAAAA,EAAAA,SAAA,KAAGmf,GAKVN,EACO3e,EAAMyhB,sBACTshB,EAAwBpkB,EAAW7Z,EAAWga,EAAe5R,EAAkBo1B,EAAkBpiB,GAEjGpgB,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK9M,EAAM6e,kBACXkkB,EAAwBpkB,EAAW7Z,EAAWga,EAAe5R,EAAkBo1B,EAAkBpiB,IAKvGmjB,EACHvjC,EAAAA,cAAA,OAAK6D,UAAU,wBACX7D,EAAAA,cAAA,OAAK6D,UAAU,iBAAiB3D,EAAMy0B,MAAM6O,YAGhDxjC,EAAAA,cAAAA,EAAAA,SAAA,KAAGkf,GAyCLa,EAA6BA,CAC/BV,EACAra,EACA8pB,EACA1O,KACA,IAAAqjB,EACA,MAAMljB,EAAwC,QAAzBkjB,EAAGpkB,EAASI,qBAAa,IAAAgkB,OAAA,EAAtBA,EAAwBljB,iBAC1C,WAAEP,EAAU,aAAEC,EAAY,kBAAE8B,EAAiB,uBAAE2hB,GAA2B1+B,EAChF,IAAIsb,EASJ,OAPAA,EAAaC,EAAkBP,EAAaC,EACxCZ,EAASxc,MAAQwc,EAASxc,KAAK2c,SAASmkB,cACxCrjB,EAAaojB,EACL3lB,EAAAA,iBAAiBC,cAAcoC,KACvCE,EAAajB,EAASxc,MAAQwc,EAASxc,KAAK2c,SAASgB,eAAiBJ,EAAwB2B,EAAoBzB,GAIlHtgB,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAAA,OAAK6D,UAAU,+CACX7D,EAAAA,cAAA,KAAG6D,UAAW,+CAA+Cyc,EAAWxe,cAAc8hC,QAAQ,IAAK,cACnG5jC,EAAAA,cAAA,KAAG6D,UAAW,+CAA+Cyc,EAAWxe,cAAc8hC,QAAQ,IAAK,QAAStjB,GAnD1FG,EAACpB,EAA+Bra,EAA2B8pB,KAAiB,IAAAlO,EAAAP,EAAAwjB,EAC1G,MAAMtjB,EAAwC,QAAzBK,EAAGvB,EAASI,qBAAa,IAAAmB,OAAA,EAAtBA,EAAwBL,iBAC1C,UAAEujB,EAAS,WAAEC,GAAe/+B,EAG5Bg/B,EAAa,IAAIlV,KADRA,EADc,EACSiV,EAAaD,KAEnD,OACI9jC,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAACkO,EAAAA,KAAI,CAACrK,UAAU,qDACX0c,EACGvgB,EAAAA,cAAA,KAAG6D,UAAU,wDACc,QADwCwc,EAC9DhB,EAASI,qBAAa,IAAAY,OAAA,EAAtBA,EAAwBQ,eACxB,KACsB,QADlBgjB,EACJxkB,EAASI,qBAAa,IAAAokB,OAAA,EAAtBA,EAAwB/iB,aAE7B,KACJ9gB,EAAAA,cAAA,KAAG6D,UAAU,wDAAwDmgC,MAoCpEvjB,CAA0BpB,EAAUra,EAAW8pB,MA+OhE,EA7CsE5uB,IAAmD,IAAA8gB,EAAAijB,EAAAC,EAAAC,EAAAC,EAAAC,EACrH,MACMC,EACFtkC,EAAAA,cAAA,MAAI6D,UAAU,qBACT3D,EAAM8E,UAAUu/B,UACjBvkC,EAAAA,cAAA,QAAM6D,UAAU,iCACX,KAAK06B,OAAiB,QAAXvd,EAAC9gB,EAAMkhB,YAAI,IAAAJ,OAAA,EAAVA,EAAYwjB,qBALH,KAKkC,QAAVP,EAAA/jC,EAAMkhB,YAAI,IAAA6iB,OAAA,EAAVA,EAAYO,kBAAyC,QAAU,YAIzH,OACIxkC,EAAAA,cAAA,MAAA+M,OAAAC,OAAA,CAAKnJ,UAAW3D,EAAM2D,UAAWyC,GAAIpG,EAAMoG,IAAQpG,EAAMihB,uBAAuBjhB,IAC3EA,EAAMukC,qCACNH,EACDtkC,EAAAA,cAAA,OAAK6D,UAAU,4BAAuD,QAA7BqgC,EAAEhkC,EAAMojB,6BAAqB,IAAA4gB,OAAA,EAA3BA,EAA6BthB,YA5B1C1iB,CAAAA,GAElCF,EAAAA,cAACkO,EAAAA,KAAI,CAACrK,UAAU,sCACX3D,EAAMyjB,2BACNzjB,EAAM0jB,uBAyBN8gB,CAAiCxkC,KACtB,QAAXikC,EAACjkC,EAAMkhB,YAAI,IAAA+iB,GAAVA,EAAY9iB,iBAAkBnhB,EAAMohB,mBApExBJ,EAoE6DhhB,EAAMohB,iBAlErFthB,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKkU,EAAWK,yBAChBL,EAAWM,iBACZxhB,EAAAA,cAACkO,EAAAA,KAAI,CAACrK,UAAU,oCAAoCqd,EAAWO,qBAC9DP,EAAWQ,mBA+DL,QAAV0iB,EAAAlkC,EAAMkhB,YAAI,IAAAgjB,GAAVA,EAAY/iB,gBAAkBnhB,EAAMyhB,sBAzLpBQ,EAACjiB,EAAiD8E,IACvE9E,EAAM0hB,gBAAkBha,EAAAA,gBAAgBC,YAAY3H,EAAM0hB,gBAEtD5hB,EAAAA,cAAA,OAAK6D,UAAU,wBACV3D,EAAM0hB,eAAenc,KAAIoc,IAAY,IAAAC,EAAA6iB,EAClC,OACI3kC,EAAAA,cAAA,OAAKyO,IAAKoT,EAAU,GAAGtC,WAAY1b,UAAU,+BACxCkc,EACG8B,EAAU,GACV7c,EAxBZqa,CAAAA,IAChB,IAAIulB,EAAY,EAKhB,OAHAA,EAAYvlB,EAASwlB,QAAO,CAAC/V,EAAOltB,KAAQ,IAAAkjC,EAAAC,EACxC,OAAOjW,GAAqC,QAAhCgW,EAAa,QAAbC,EAAInjC,EAAKiB,YAAI,IAAAkiC,OAAA,EAATA,EAAWvlB,SAASwlB,gBAAQ,IAAAF,EAAAA,EAFvB,QAIlBF,GAmBqBK,CAAWpjB,GACuC,QAD7BC,EACrB5hB,EAAMa,QAAQ4L,cAAcC,eAAeoV,eAAO,IAAAF,OAAA,EAAlDA,EAAoDG,uBAEvDqhB,EACGpjC,EACA2hB,EACA3hB,EAAM8E,UACN9E,EAAM8e,cACN9e,EAAMgf,iBACNhf,EAAMif,kBACNjf,EAAMkf,eACNlf,EAAMkN,iBACNlN,EAAMyhB,sBAC4C,QADvBgjB,EAC3BzkC,EAAMa,QAAQ4L,cAAcC,eAAeoV,eAAO,IAAA2iB,OAAA,EAAlDA,EAAoD1iB,4BAQzE/hB,EAAMkf,eACTpf,EAAAA,cAAA,OAAK6D,UAAU,wBACX7D,EAAAA,cAAA,OAAK6D,UAAU,iBAAiB3D,EAAMy0B,MAAM6O,YAGhDxjC,EAAAA,cAAAA,EAAAA,SAAA,KAAGE,EAAMgf,kBAsJCiD,CAAqBjiB,EAAOA,EAAM8E,WAClCs+B,EACIpjC,EACAA,EAAM2hB,UACN3hB,EAAM8E,UACN9E,EAAM8e,cACN9e,EAAMgf,iBACNhf,EAAMif,kBACNjf,EAAMkf,gBAEflf,EAAMkiB,qBACHpiB,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK9M,EAAMmiB,qBACZriB,EAAAA,cAACkO,EAAAA,KAAI,CAACrK,UAAU,4BACX3D,EAAMkiB,oBACI,QAAViiB,EAAAnkC,EAAMkhB,YAAI,IAAAijB,GAAVA,EAAYhjB,eAxIH6jB,EAC9B3iB,EACA4iB,EACAjlC,IAEKqiB,EAKDviB,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKm4B,GACL5iB,EAAoBE,SACpBF,EAAoBG,SACpBH,EAAoBI,QACpBJ,EAAoBK,aARzB1iB,EAAMa,QAAQ+B,UAAUC,MAAM,uDACvB,MAkIemiC,CAA0BhlC,EAAM2iB,wBAAyB3iB,EAAMsiB,kBAAmBtiB,GA/GhFklC,EAC5BriB,EACAoiB,EACAjlC,IAEK6iB,EAKD/iB,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKm4B,GACLpiB,EAAkBE,SAClBF,EAAkBM,eAAiBN,EAAkBM,eAAiB,KACtEN,EAAkBG,SAClBH,EAAkBI,YAClBJ,EAAkBK,IAClBL,EAAkBH,aAVvB1iB,EAAMa,QAAQ+B,UAAUC,MAAM,qDACvB,MAyGeqiC,CAAwBllC,EAAMojB,sBAAuBpjB,EAAMsiB,kBAAmBtiB,IA7JlF+gB,EA8JgB/gB,EAAMqjB,qBA7JzB3b,EAAAA,gBAAgBC,YAAYoZ,EAAUuC,QAIrDxjB,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKiU,EAAUwC,SACfxC,EAAUyC,OACVzC,EAAUuC,QALR,MAsFqBtjB,CAAAA,IAAkD,IAAA6gB,EAClF,OACI/gB,EAAAA,cAACkO,EAAAA,KAAI,CAACrK,UAAU,+BACD,QAAVkd,EAAA7gB,EAAMkhB,YAAI,IAAAL,GAAVA,EAAYM,eAAiB,KAAOnhB,EAAM8iB,UAC3ChjB,EAAAA,cAACkO,EAAAA,KAAI,CAACrK,UAAU,uCACX3D,EAAMyjB,2BACNzjB,EAAM0jB,sBACN1jB,EAAM2jB,uBAAyBjc,EAAAA,gBAAgBC,YAAY3H,EAAM2jB,uBAC9D7jB,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK9M,EAAM4jB,+BAAgC5jB,EAAM2jB,uBACtD,MAEP3jB,EAAM6jB,+BA6DEshB,CAA2BnlC,IAGnCA,EAAM8e,eAnKOiC,IAAAA,EAuEAC,kWChd1B,MAOMokB,GAA8C/I,EAAAA,EAAAA,KAAUr8B,IAC1D,MAAM,UACFqlC,EAAS,aACTC,EACA3iC,MAAM,KAAEue,IACRlhB,EAGEulC,EAAWrkB,EAAOA,EAAKojB,iBAFQ,EAGrC,IAAIkB,EAAmB,GAInBA,EADAD,EAF4B,GACC,OAIlBE,EAAAA,EAAAA,QAAOH,EAAcC,GAEpC,MAAMjyB,GAAQmyB,EAAAA,EAAAA,QAAOJ,EAAWE,GAG1Bj4B,GAAUC,EAAAA,EAAAA,kBAAiB,QAASvN,EAAMkN,iBAAmB,YAAa,IAC1EkD,GAAaC,EAAAA,EAAAA,wBAAuBrQ,EAAMkN,iBAAmBI,GAC7Do4B,EAA6B,CAC/BC,WAAYzkB,EAAO,UAAY,UAEnC,OACIphB,EAAAA,cAAA,MAAA+M,OAAAC,OAAA,CAAKnJ,UAAU,gBAAgBG,KAAK,SAAQ,aAAawP,EAAO3B,MAAO2B,GAAWlD,GAC9EtQ,EAAAA,cAAA,OAAK6D,UAAU,uBAAsB,iBAAa+hC,MAAOA,GACpDF,OAMJI,EAAsErO,EAAAA,GAAiBsO,wBAGlG,gXAAU9iC,CAAA,CAAI00B,UAAW2N,GA5CM,KA8CjC,sFCjBA,MAAMU,UAAkBhmC,EAAAA,cAGpBC,YAAmBC,GACfC,MAAMD,GA0BO,KAAA+lC,sBAAyBr6B,IACtC,MAAM7I,EAA+B,KAAvB6I,EAAMI,OAAO0c,MAAe,GAAKjoB,KAAKW,MAAM2B,MAC1DtC,KAAKqJ,SAAS,CACVo8B,oBAAqBt6B,EAAMI,OAAO0c,MAAMyd,OACxCpjC,MAAAA,EACAqjC,WAAYx6B,EAAMI,OAAO0c,SAQhB,KAAA2d,gBAAmBC,IAChC,IAAKA,EACD,OAEJ,MAAMC,EAAe9lC,KAAKW,MAAM8kC,oBAEhCI,EACKE,aAAa,CAAExjB,UAAWujB,IAC1BE,MAAKjhC,IACoB,YAAlBA,EAAOqW,OAEPpb,KAAKqJ,SAAS,CAAEo8B,oBAAqB,GAAInjC,MAAO,GAAIqjC,UAAU,IAClC,iBAArB5gC,EAAOkhC,UACdjmC,KAAKqJ,SAAS,CAAE/G,MAAOtC,KAAKP,MAAMymC,8BAElClmC,KAAKqJ,SAAS,CAAE/G,MAAOtC,KAAKP,MAAM0mC,+BAGzCC,OAAM,KACHpmC,KAAKqJ,SAAS,CAAE/G,MAAOtC,KAAKP,MAAM4mC,oCAS7B,KAAAC,iBAAoBT,GAAuC16B,IACxEA,EAAMo7B,iBACNvmC,KAAK4lC,gBAAgBC,IAQR,KAAAW,sBAAyBX,GAAsC,KAC5E7lC,KAAK4lC,gBAAgBC,IAUR,KAAAY,YAAc,CAACC,EAA8BC,EAAkCd,KAC5F,MAAMh2B,GAAaC,EAAAA,EAAAA,wBAAuB9P,KAAKP,MAAMkN,iBAAmB3M,KAAK+M,SAE7E,OACIxN,EAAAA,cAAA,QAAM0a,SAAUja,KAAKsmC,iBAAiBT,GAAYziC,UAAU,kCACxD7D,EAAAA,cAAA,OAAK6D,UAAU,yBACX7D,EAAAA,cAAA,SACI6D,UAAU,4BACVyY,SAAU7b,KAAKwlC,sBACfvd,MAAOjoB,KAAKW,MAAM8kC,oBAClBmB,YAAaF,IAEjBnnC,EAAAA,cAAC0E,EAAAA,OAAMqI,OAAAC,OAAA,CACH6E,MAAOu1B,EACPvjC,UAAU,gCACVc,QAASlE,KAAKwmC,sBAAsBX,GACpClpB,UAAW3c,KAAKW,MAAMglC,UAClB91B,OAYP,KAAAg3B,iBAAmB,CAAChB,EAAmC16B,KAA2B,IAAA27B,EAC/F,IAAKjB,EACD,OAEJ,MAAM5hB,EAAqD,QAAjD6iB,EAAG37B,EAAM47B,cAAc1a,aAAa,qBAAa,IAAAya,EAAAA,EAAI,GAC/DjB,EACKmB,iBAAiB,CACdC,WAAY,CAAChjB,KAEhB+hB,MAAKjhC,IACoB,YAAlBA,EAAOqW,QACPpb,KAAKqJ,SAAS,CAAE/G,MAAO,QAG9B8jC,OAAM,KACHpmC,KAAKqJ,SAAS,CAAE/G,MAAOtC,KAAKP,MAAMynC,uCAS7B,KAAAC,wBAA2B1nC,IACxC,IAAKA,EAAMkhB,OAASlhB,EAAMkhB,KAAKA,KAAKymB,UAAYjgC,EAAAA,gBAAgBC,YAAY3H,EAAMkhB,KAAKA,KAAKymB,SACxF,OAOJ,MAAMC,EAA0Bl8B,IAC5BnL,KAAK6mC,iBAAiBpnC,EAAMkhB,KAAMxV,IAGtC,OACI5L,EAAAA,cAAAA,EAAAA,SAAA,KACKE,EAAMkhB,KAAKA,KAAKymB,QAAQpiC,KAAKsiC,IAC1B,MAAMn/B,EAAY1I,EAAM8nC,4BAClBrC,EAAAA,EAAAA,QAAOzlC,EAAM8nC,2BAA4B9nC,EAAM+nC,gBAAiBF,EAAOG,MACvE,GAEN,OACIloC,EAAAA,cAAA,OAAKyO,IAAKs5B,EAAOG,KAAMrkC,UAAU,kCAC7B7D,EAAAA,cAAA,OAAK6D,UAAU,8BACV,QACD7D,EAAAA,cAAA,QAAM6D,UAAU,mCAAmCkkC,EAAOG,MACzD,YAELloC,EAAAA,cAAC0E,EAAAA,OAAM,CACHmN,MAAO3R,EAAM+nC,gBACbpkC,UAAU,mCACVc,QAASmjC,EAAsB,aACnBC,EAAOG,KAAI,aACXt/B,UA5KpCnI,KAAK+M,SAAUC,EAAAA,EAAAA,kBAAiB,QAAShN,KAAKP,MAAMkN,iBAAmBsrB,EAAAA,kBAAkByP,gBACzF1nC,KAAKW,MAAQ,CACT8kC,oBAAqB,GACrBnjC,MAAO,GACPqjC,UAAU,GAIX5jC,SACH,OACIxC,EAAAA,cAAA,WACIA,EAAAA,cAAA,OAAK6D,UAAU,0BAA0BpD,KAAKP,MAAMkoC,sBACnD3nC,KAAKymC,YAAYzmC,KAAKP,MAAMinC,qBAAsB1mC,KAAKP,MAAMknC,yBAA0B3mC,KAAKP,MAAMkhB,MACnGphB,EAAAA,cAAA,KAAG6D,UAAWpD,KAAKW,MAAM2B,MAAQ,mBAAqB,GAAE,YAAY,aAC/DtC,KAAKW,MAAM2B,OAEftC,KAAKmnC,wBAAwBnnC,KAAKP,SAsKnD,qFCxOA,MAAMmoC,EAA2BC,IAA8D,IAAAC,EAC3F,OACIvoC,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKs7B,EAAkBE,uBACiB,QADID,EAC5CD,EAAkBG,8BAAsB,IAAAF,OAAA,EAAxCA,EAA0C9iC,KAAK7D,GAExC5B,EAAAA,cAAAA,EAAAA,SAAA,KACK4B,EAAKqQ,QACNjS,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKpL,EAAK8mC,gCACV9mC,EAAKoJ,KACNhL,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKpL,EAAK+mC,4BAA6B/mC,EAAKwQ,aAkE7E,EApD2DlS,IACvD,MAAM,sBACF0oC,EAAqB,eACrBC,EAAc,iBACdC,EAAgB,MAChBj3B,EAAK,KACL7G,EAAI,MACJoH,EAAK,MACLlJ,EAAK,sBACL6/B,EAAqB,UACrB9/B,EAAS,eACT+/B,EAAc,kBACdV,GACApoC,EAIE+oC,EADoB//B,EAAMhJ,MAAMiJ,IACA,GAAG2/B,EAAiBjlC,sBAAwB,GAAGilC,EAAiBjlC,yBAEtG,OAAIoF,EAEIjJ,EAAAA,cAACiO,EAAAA,OAAMlB,OAAAC,OAAA,GAAK47B,GACR5oC,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GACG+7B,EAAqB,CACzBt4B,KAAMxH,EACNpF,UAAWklC,EAAwBA,EAAsBllC,UAAY,GAAE,aAC3DmlC,IAEZhpC,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK67B,GAAiB3/B,IAE/BlJ,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK87B,GACLj3B,EACA7G,EACAoH,EACAk2B,GAAqBD,EAAwBC,KAM1DtoC,EAAAA,cAACiO,EAAAA,OAAMlB,OAAAC,OAAA,GAAK47B,GACR5oC,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK67B,GAAiB3/B,GAC3BlJ,EAAAA,cAACkO,EAAAA,KAAI,CAACrK,UAAWolC,GACZp3B,EACA7G,EACAoH,EACAk2B,GAAqBD,EAAwBC,sGCzEvD,MAAMY,UAAuBlpC,EAAAA,cACzBwC,SAEH,MAAM,WAAE2mC,GAAe1oC,KAAKP,MAC5B,OAAOF,EAAAA,cAACiO,EAAAA,OAAMlB,OAAAC,OAAA,GAAKm8B,GAAa1oC,KAAK2oC,eAAe3oC,KAAKP,QAGrDkpC,eAAelpC,GAEnB,MAAM,QAAE+R,EAAO,iBAAEo3B,EAAgB,KAAE9kC,EAAI,SAAEgC,EAAQ,MAAE2C,EAAK,KAAE8B,EAAI,aAAEs+B,GAAiBppC,EACjF,OAAI+R,EAEIjS,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKq8B,GACL,IACDrpC,EAAAA,cAACkO,EAAAA,KAAI,CAACnK,IAAI,IAAIF,UAAU,iCAAgC,cAAa,SACpEoO,EAAS,KAGX1N,GAAQ2E,EAEXlJ,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKzI,GACLgC,EACA2C,GAGF3E,EACA+kC,EAGPtpC,EAAAA,cAAAA,EAAAA,SAAA,KACKgL,EACA9B,IAMjB,4DChBYqgC,iIAAZ,SAAYA,GACRA,EAAAA,EAAA,eACAA,EAAAA,EAAA,aACAA,EAAAA,EAAA,aACAA,EAAAA,EAAA,iBACAA,EAAAA,EAAA,eACAA,EAAAA,EAAA,0BACAA,EAAAA,EAAA,uBAPJ,CAAYA,IAAAA,EAAgB,KAsBrB,MAAMC,EAAmBA,CAACtpC,EAAqCgL,EAAuBu+B,KACzF,MAAM1c,GAAmBrgB,EAAAA,EAAAA,kBAAiB,GAAGxB,IAAiBhL,EAAMwpC,SAAS3oC,QAAQ4L,cAAcC,eAAeC,aAC5GN,EAAgD,CAClDpJ,UAAW,CACPC,GAAI,CAAEC,EAAG,kBAAmBC,EAAG,EAAGC,EAAG,GACrCyG,GAAI,CAAE3G,EAAG,kBAAmBC,EAAG,EAAGC,EAAG,GACrC0G,GAAI,CAAE5G,EAAG,kBAAmBC,EAAG,EAAGC,EAAG,GACrC2G,GAAI,CAAE7G,EAAG,kBAAmBC,EAAG,EAAGC,EAAG,IAEzCE,UAAU,GAEd,QAAyBoC,IAArBknB,EAAgC,CAAC,IAAD4c,EAChC,MAAMC,EAAiC,CAAEzgC,IAAK4jB,GAC9C,OACI/sB,EAAAA,cAACkoB,EAAAA,GAAcnb,OAAAC,OAAA,CACXJ,eAAgB1M,EAAMwpC,SAAS3oC,QAAQ4L,cAAcC,eACrD/I,UAAU,sBACN+lC,EAAS,CACblmC,aAAcxD,EAAMwpC,SAAS3oC,QAAQC,QAAQ0C,aAC7CR,cAA0D,QAA7CymC,EAAEzpC,EAAMwpC,SAASvoC,OAAO8L,6BAAqB,IAAA08B,EAAAA,EAAIp9B,EAC9DW,oBAAoB,OACpBlJ,KAAK,WACL6G,QAAS4+B,KAIrB,OAAO,2kBC/CJ,MAAMI,UAAmC7pC,EAAAA,cAuB5CC,YAAmBC,GACfC,MAAMD,GArBO,KAAA4pC,eAAyBP,EAAiBQ,KAEnD,KAAAx/B,aAAuBg/B,EAAiBS,KAM/B,KAAA7d,UAAoBod,EAAiBpd,UAIrC,KAAAvhB,iBAA0C,GAmG1C,KAAAq/B,cAAgB,KAC7BxpC,KAAKqJ,UAASogC,IAAa,CACvB3+B,WAAY,EACZ4+B,WAAYD,EAAcC,eA2QjB,KAAAC,0BAA4B,CAACC,EAA4Bvc,IAA0B,KAChG,MAAM,eAAEX,GAAmB1sB,KAAKW,MAC1BgsB,EAAU,CAAE,CAACid,IAAWvc,GAC9BrtB,KAAKqJ,SAAS,CAAEqjB,eAAclqB,EAAAA,EAAA,GAAOkqB,GAAmBC,MAmI3C,KAAA3iB,qBAAuB,CAAC6/B,EAA6B3/B,IAA0B,KAC5F,MAAMpE,EAAWoE,EAAOpE,SAAWoE,EAAOpE,SAAW,GAC/CqE,EAA0C,CAAC,CAAEzB,IAAKmhC,EAAqBz/B,QAAStE,IAGtF,GAAIqB,EAAAA,gBAAgBC,YAAY8C,EAAOlC,oBACnC,IAAK,MAAM7G,KAAQ+I,EAAOlC,mBAAoB,CAC1C,MAAM/B,EAAc9E,EAAKsH,MAAMC,IAC/ByB,EAAiBjF,KAAK,CAClBwD,IAAKzC,EACLmE,QAASjJ,EAAKoJ,KACdC,qBAAsB,CAAEnC,QAASlH,EAAKkH,QAAQC,kBAI1DtI,KAAKqJ,SAAS,CACVoB,cAAetD,EAAAA,gBAAgBC,YAAY+C,GAAoBA,EAAmB,CAAC,CAAEzB,IAAK,aAUjF,KAAAiC,sBAAwB,CAACvI,EAAqBwI,IAAsB,KAC5E5K,KAAKW,MAAMmpC,cASZV,EAA2Bv+B,aAAc,EACzC7K,KAAKqJ,SAAS,CACVyB,WAAY1I,EAAKyD,GACjBkF,oBAAqB3I,EAAK0D,SAC1BkF,WAAYJ,MAZhB5K,KAAKqJ,SAAS,CACVyB,WAAY1I,EAAKyD,GACjBmF,WAAYJ,IAEZ5K,KAAKP,MAAMwpC,SAASvlC,mBACpB1D,KAAKgK,qBAAqB5H,EAAK6D,YAAc7D,EAA7CpC,KAgBK,KAAAiL,cAAgB,IAAM,KACnCm+B,EAA2Bv+B,aAAc,EACzC7K,KAAKqJ,UAASogC,IAAa,CAAO3+B,WAAY2+B,EAAcz+B,gBAO/C,KAAAE,oBAAuBC,IAChCnL,KAAKoL,SAASC,UAAYrL,KAAKoL,SAASC,QAAQC,SAASH,EAAMI,UAC1DvL,KAAKW,MAAMmpC,aAGZ9pC,KAAKqJ,SAAS,CAAEyB,gBAAY1F,EAAW2F,oBAAqB,GAAI2+B,WAAW,IAF3E1pC,KAAKqJ,SAAS,CAAEyB,WAAY,EAAGC,oBAAqB,GAAI2+B,WAAW,MAc9D,KAAA/9B,uBAAyB,CAAC1G,EAAe8F,EAA8Ba,KAE/Ew9B,EAA2Bv+B,aADL,IACoB5F,MAG1C2G,IAAmBb,IAGjBA,IAAwBa,EAMlB,KAAAm+B,cAAgB,KAAW,IAAAC,EACnChqC,KAAKW,MAAMmpC,aAGZ9pC,KAAKqJ,SAAS,CAAEyB,gBAAY1F,EAAW2F,oBAAqB,GAAI2+B,WAAW,IAF3E1pC,KAAKqJ,SAAS,CAAEyB,WAAY,EAAGC,oBAAqB,GAAI2+B,WAAW,IAIjD,QAArBM,EAAAhqC,KAAKoL,SAASC,eAAO,IAAA2+B,GAArBA,EAAuB18B,SAAS,GAAmBC,SAOvC,KAAAse,aAAgB1gB,IAC8D,IAAD8+B,EAAtF9+B,EAAM2gB,UAAY9rB,KAAK0rB,YAAc1rB,KAAKW,MAAMmpC,cAAgB9pC,KAAKW,MAAM+oC,YAC3E1pC,KAAKqJ,SAAS,CAAEyB,WAAY,EAAGC,oBAAqB,GAAI2+B,WAAW,IAC7C,QAArBO,EAAAjqC,KAAKoL,SAASC,eAAO,IAAA4+B,GAArBA,EAAuB38B,SAAS,GAAmBC,UAO3C,KAAA28B,sBAAwB,KACrClqC,KAAKqJ,SAAS,CAAEygC,aAAc9pC,KAAK8pC,gBA9lBnC9pC,KAAKoL,SAAW7L,EAAAA,YAChBS,KAAK0M,YAAcnN,EAAAA,YACnB,MAAM,aAAEoF,GAAiB3E,KAAKP,MAAMwpC,SACpC,GAAI9hC,EAAAA,gBAAgBC,YAAYzC,IAAiBwC,EAAAA,gBAAgBC,YAAYzC,EAAa,GAAGuB,SAAU,CACnG,MAAMwJ,EAAc/K,EAAa,GAAGuB,QAAQ,GAAGD,YAActB,EAAa,GAAGuB,QAAQ,GAAGD,YAAc,GAChGH,EAAWnB,EAAa,GAAGuB,QAAQ,GAAGJ,SAAWnB,EAAa,GAAGuB,QAAQ,GAAGJ,SAAW,GAC7F9F,KAAKmK,iBAAmB,CAAC,CAAEzB,IAAKgH,EAAatF,QAAStE,IAGlDqB,EAAAA,gBAAgBC,YAAYzC,EAAa,GAAGuB,QAAQ,GAAG8B,qBACvDrD,EAAa,GAAGuB,QAAQ,GAAG8B,mBAAmBhD,KAAI7D,IAC9C,MAAM8E,EAAc9E,EAAKsH,MAAMC,IAM/B,OALA1I,KAAKmK,iBAAiBjF,KAAK,CACvBwD,IAAKzC,EACLmE,QAASjJ,EAAKoJ,KACdC,qBAAsB,CAAEnC,QAASlH,EAAKkH,QAAQC,kBAE3C,QAKnBtI,KAAKW,MAAQ,CACTmK,WAAY,EACZC,oBAAqB,GACrBC,gBAAY5F,EACZsnB,eAAgB,GAChBod,aAAc9pC,KAAK8pC,aACnBr/B,cAAezK,KAAKmK,iBACpBu/B,WAAW,GAEf1pC,KAAK2M,kBAAmBC,EAAAA,EAAAA,oBACpB5M,KAAKP,MAAMwpC,SAAS3oC,QAAQC,QAAQsM,kBACpC7M,KAAKP,MAAMwpC,SAASn8B,aACpB9M,KAAKP,MAAMwpC,SAAS5mC,WAExBrC,KAAK+M,SAAUC,EAAAA,EAAAA,kBAAiB,QAAShN,KAAK2M,iBAAkB,GAAI,IACpE3M,KAAK6P,YAAaC,EAAAA,EAAAA,wBAAuB9P,KAAK2M,iBAAkB3M,KAAK+M,SAG/D,mBACN,MAAoG,QAA7FnM,EAAAA,EAAAA,UAAS,CAAEupC,QAASC,EAAAA,YAAYC,QAAS/pC,QAASN,KAAKP,MAAMwpC,SAAS3oC,QAAQC,UAGlFgB,oBACHvB,KAAKsqC,mCAAoC3oC,EAAAA,EAAAA,mBAAkBC,OAAQ,SAAU5B,KAAKkqC,uBAClFj9B,SAASE,iBAAiB,UAAYnN,KAAK6rB,cAA2C,GACtF7rB,KAAKkqC,wBACLj9B,SAASC,KAAKC,iBAAiB,YAAanN,KAAKkL,qBAG9CkC,qBAAkB,IAAAC,EACO,QAAxBA,EAAArN,KAAK0M,YAAYrB,eAAO,IAAAgC,GAAxBA,EAA0BC,SAAS,IAAMtN,KAAKP,MAAMwpC,SAASvkC,cAC5D1E,KAAK0M,YAAYrB,QAAQiC,SAAS,GAAmBC,QAIvD1L,uBACHD,OAAOE,oBAAoB,SAAU9B,KAAKsqC,mCAAoC,GAC9Er9B,SAASC,KAAKpL,oBAAoB,YAAa9B,KAAKkL,qBAAqB,GAGtEnJ,SACH/B,KAAK8J,aAAe,EAEpB,OACIvK,EAAAA,cAACkO,EAAAA,KAAI,CAACrK,UAAU,qBAAqBsK,IAAK1N,KAAKoL,UAC1CpL,KAAKW,MAAMmpC,aACR9pC,KAAK6sB,oBAELttB,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAAC0E,EAAAA,OAAMqI,OAAAC,OAAA,CACHnJ,UAAU,sBACVc,QAASlE,KAAKwpC,cAAa,gBAT7B,oBAWEp4B,MAAOpR,KAAKP,MAAMwpC,SAAS1kC,UAAUgmC,mBAAkB,aAC3CvqC,KAAKP,MAAMwpC,SAAS1kC,UAAUgmC,oBACtCvqC,KAAK6P,aAEZ7P,KAAKwrB,wBAiBlBA,sBACJ,OACIjsB,EAAAA,cAACwrB,EAAAA,SAAQ,CAAC3nB,UAAU,mCAAmC6Y,OAAQjc,KAAKW,MAAM+oC,WACrE1pC,KAAKW,MAAMmpC,aAAe9pC,KAAK6sB,oBAAsB7sB,KAAK8sB,sBAK/DD,oBACJ,MAAM,SAAErpB,EAAQ,iBAAEc,EAAgB,2BAAED,EAA0B,uBAAEI,EAAsB,WAAEvB,GAAelD,KAAKP,MAAMwpC,SAGlH,OADAjpC,KAAK8J,aAAe,EAEhBvK,EAAAA,cAACiO,EAAAA,OAAMlB,OAAAC,OAAA,GACCrJ,EAAU,CACdE,UAAWC,GAAAA,CACPH,EAAWE,UACXpD,KAAKW,MAAMmpC,mBAA0C1kC,IAA1BpF,KAAKW,MAAMmK,WAA2B,QAAU,YAG/EvL,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK/I,EAAQ,CAAEmK,SAAS,OACxB3N,KAAKW,MAAMmpC,mBAA0C1kC,IAA1BpF,KAAKW,MAAMmK,YACnCvL,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKlI,GACN9E,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKjI,EAAgB,CAAEJ,QAASlE,KAAKiL,mBAC1C1L,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK9H,GAAyBzE,KAAKW,MAAMoK,sBAGrD/K,KAAK4N,mBAMdkf,qBACJ,MAAM,SAAEtpB,EAAQ,WAAEN,GAAelD,KAAKP,MAAMwpC,SAE5C,OACI1pC,EAAAA,cAACiO,EAAAA,OAAMlB,OAAAC,OAAA,GAAKrJ,EAAU,CAAEE,UAAWC,GAAAA,CAAWH,EAAWE,UAAW,8BAChE7D,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK/I,EAAQ,CAAEmK,SAAS,OACxB3N,KAAK4N,iBACNrO,EAAAA,cAAA,OAAK6D,UAAU,uBACX7D,EAAAA,cAAA,UAAQ6D,UAAU,qBAAoB,aAAY,QAAQc,QAASlE,KAAK+pC,mBAOpFhc,kBAAkB5sB,GACtB,OAAIA,EAAK6E,UAAYsX,EAAAA,iBAAiBsjB,mBAAmBz/B,EAAK6E,SACnDhG,KAAKuO,oBAAoBpN,GACxBA,EAAK6E,QAGV,KAFIhG,KAAKwO,oBAAoBrN,GAKhCyM,iBACJ,MAAM,SAAEnK,GAAazD,KAAKP,MAAMwpC,SAC1BtkC,EAAgC3E,KAAKP,MAAMwpC,SAAStkC,cACpD,WAAEmG,GAAe9K,KAAKW,MACtBE,EAA8B,GAMpC,GAJIsG,EAAAA,gBAAgBC,YAAYzC,KAC5BA,EAAa,GAAGkB,GAAK,GAGrB7F,KAAKW,MAAMmpC,mBAA+B1kC,IAAf0F,GAA4B3D,EAAAA,gBAAgBC,YAAYzC,GAAe,CAClG,MAAMkJ,EAAW7N,KAAK+N,qBAAgB3I,EAAWT,GAE7CkJ,GACAhN,EAAaqE,KACT3F,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,CAACyB,IAAKH,EAAShI,IAAQpC,GACvB,IACAzD,KAAKiO,oBAAoBJ,GAAS,IAAG,WAKlD,IAAK,MAAO5I,EAAO9D,KAASwD,EAAa6lC,UACrC3pC,EAAaqE,KACT3F,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,CACDyB,IAAK7M,EAAK0E,IACNpC,EAAQ,CACZiK,IAAK1N,KAAK2L,uBAAuB1G,EAAOjF,KAAKW,MAAMoK,oBAAqB5J,EAAK2E,UAAY9F,KAAK0M,YAAc,OAE3G1M,KAAKiO,oBAAoB9M,KAM1C,OAAON,EAGHkN,gBAAgB08B,EAAuBC,GAC3C,IAAKA,EACD,OAAO,KAGX,IAAK,IAAIzlC,EAAQ,EAAGA,GAASylC,EAAKzpC,OAAS6nC,EAAiB6B,IAAK1lC,IAAS,CACtE,MAAM9D,EAAsBupC,EAAK5M,OAAO74B,IAExC,GAAI9D,EAAK0E,KAAO7F,KAAKW,MAAMmK,WAMvB,OALKs+B,EAA2Bv+B,YAG5B7K,KAAKqJ,SAAS,CAAE2B,WAAYy/B,EAAc1/B,oBAAqB5J,EAAK2E,WAFpE9F,KAAKqJ,SAAS,CAAE2B,WAAYy/B,IAIzBtpC,EAEX,MAAMiN,EAAQpO,KAAK+N,gBAAgB5M,EAAK0E,GAAI1E,EAAK+E,SACjD,GAAIkI,EACA,OAAOA,EAGf,OAAO,KAGHH,oBAAoBtJ,GACxB,OAAIwC,EAAAA,gBAAgBC,YAAYzC,EAAauB,SACrClG,KAAKW,MAAMmpC,mBAA0C1kC,IAA1BpF,KAAKW,MAAMmK,WAC/B9K,KAAKqO,eAAe1J,EAAauB,QAASvB,EAAakB,IAAI,GAIlEtG,EAAAA,cAAAA,EAAAA,SAAA,KACKS,KAAKsO,sBAAsB3J,GAC3B3E,KAAKqO,eAAe1J,EAAauB,QAASvB,EAAakB,KAGzDlB,EAAaqB,UAAYsX,EAAAA,iBAAiBsjB,mBAAmBj8B,EAAaqB,SAC1EhG,KAAKuO,oBAAoB5J,EAAcA,EAAakB,IACnDlB,EAAaqB,SAAahG,KAAKW,MAAMmpC,mBAA0C1kC,IAA1BpF,KAAKW,MAAMmK,WAIrE,KAHI9K,KAAKwO,oBAAoB7J,GAMhC0J,eAAeu8B,EAAgC9/B,EAAqB+/B,GAAmB,IAAAC,EAAAC,EAC3F,IAAI5hC,EAAwCyhC,EACxC9/B,IAAeg+B,EAAiBkC,WAChC7hC,EAAWyhC,EAAclkC,QAAOukC,GAAeA,EAAYplC,IAAMolC,EAAYplC,IAAM1G,EAAAA,EAAgB+I,UAGvG,MAAM,SAAEzE,GAAazD,KAAKP,MAAMwpC,SAC1BiC,EAA0E,QAAlDJ,EAAG9qC,KAAKP,MAAMwpC,SAASvoC,OAAOiO,4BAAoB,IAAAm8B,GAAAA,EAC1El8B,EAAqE,QAA9Cm8B,EAAG/qC,KAAKP,MAAMwpC,SAASvoC,OAAOmO,wBAAgB,IAAAk8B,EAAAA,EAAIjC,EAAiBqC,MAEhG,GAAIrgC,GAAc9K,KAAKW,MAAMmK,aAAeA,EAExC,OADA9K,KAAKP,MAAMwpC,SAAS3oC,QAAQ+B,UAAUC,MAAM,gEACrC,KAGX,IAAK6G,IAAahC,EAAAA,gBAAgBC,YAAY+B,GAE1C,OADAnJ,KAAKP,MAAMwpC,SAAS3oC,QAAQ+B,UAAUC,MAAM,4DACrC,KAGX,IAAIwM,EAAyB,GAC7B,MAAMC,EAAc5F,EAASnE,KAAI,CAACkF,EAAuBjF,KACrD,MAAM+J,EAAa9E,EAAOhE,SAAWiB,EAAAA,gBAAgBC,YAAY8C,EAAOhE,SACxE,IAAI2H,EAQA3H,EANA2H,EADAmB,GAAchP,KAAKW,MAAMmpC,aACd9pC,KAAKsO,sBAAsBpE,EAAQY,EAAY7F,GACnDjF,KAAK8J,eAAiBg/B,EAAiB6B,KAAQ37B,EAG3C,KAFAhP,KAAKorC,YAAYlhC,EAAQjF,GAKxC,MAAMomC,EACFr8B,GAAck8B,GAA4BlrC,KAAK8J,cAAgBoF,KAAKC,MAAMP,GAA2Bk6B,EAAiB6B,IAEtH37B,IAAehP,KAAKW,MAAMmpC,eACtB9pC,KAAK8J,cAAgBg/B,EAAiBwC,IACtCplC,EAAUlG,KAAKurC,qBAAqBrhC,GAC7BlK,KAAK8J,cAAgB9J,KAAKqpC,iBACjCrpC,KAAK8J,eACLgF,EAAiB,SAAS9O,KAAK8J,aAAasF,aAC5ClJ,EAAUlG,KAAKqO,eAAenE,EAAOhE,aAASd,GAAW,KAI7DimC,GAAmBrrC,KAAKW,MAAMmpC,eAC9B9pC,KAAK8J,eACLgF,EAAiBo8B,EAA2B,SAASlrC,KAAK8J,aAAasF,aAAe,GACtFlJ,EAAUlG,KAAKqO,eAAenE,EAAOhE,QAASgE,EAAOrE,IAAI,IAE7D,MAAM6J,EAAcxF,EAAOjE,YAAciE,EAAOjE,YAAc,GAC9D,OACI1G,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GACG9I,EAAQ,CACZuK,IAAK9D,EAAOrE,GACZkK,YAAa/P,KAAK8J,eAAiBg/B,EAAiB6B,KAAO3qC,KAAKgK,qBAAqB0F,EAAaxF,GAClG9G,UAAWC,GAAAA,CAAWI,EAASL,UAAWioC,GAAmB,eAC7D39B,IAAK1N,KAAK2L,uBAAuB1G,EAAOjF,KAAKW,MAAMoK,oBAAqBb,EAAOpE,UAAY9F,KAAK0M,YAAc,OAE7GmB,EACA3H,MAIb,OAAOlG,KAAKqP,YAAYP,EAAgBC,EAAa87B,GAGjDO,YAAYlhC,EAAuBjF,GACvC,IAAI4I,EAMJ,OAJIA,EADA7N,KAAK8J,eAAiBg/B,EAAiB6B,IAC5BzgC,EAAOlE,QAAUhG,KAAKwrC,4BAA4BthC,EAAQjF,GAASjF,KAAKwO,oBAAoBtE,GAE5FA,EAAOlE,QAAUhG,KAAKuO,oBAAoBrE,EAAQjF,GAASjF,KAAKwO,oBAAoBtE,GAE5F2D,EAGH09B,qBAAqB19B,GAAuB,IAAA49B,EAChD,MAAM38B,EAAiB,SAAS9O,KAAK8J,aAAasF,aAC5Cgc,EAAmBvd,EAAS/H,SAE5B8mB,OAAkCxnB,IAArBgmB,EAAiCA,EAAmB,GACjEgC,EAFWptB,KAAKW,MAAM+rB,eAGtB9d,EAAqE,QAA9C68B,EAAGzrC,KAAKP,MAAMwpC,SAASvoC,OAAOmO,wBAAgB,IAAA48B,EAAAA,EAAI3C,EAAiBqC,MAEhG,IAAI9d,GAAe,EACfD,EAAKvf,EAAShI,MACdwnB,GAAe,GAEnB,MAAMC,EAA2B,CAAEoe,QAAS,EAAGzvB,OAAQoR,GAEvD,OACI9tB,EAAAA,cAACyrB,EAAAA,OAAM,CACHyC,cAAeH,EACftf,IAAKH,EAAShI,GACdzC,UAAWC,GAAAA,CAAW,yBAA0ByL,GAChDmc,UAAU,sBACVC,WAAW,uBACXC,eAAe,QACfC,iBAAkBwB,EAClBY,SAAUxtB,KAAK2pC,0BAA0B97B,EAAShI,GAAIwnB,IAEtD9tB,EAAAA,cAAA,WACKsO,EAAS3H,QAASlB,KAAK2oB,GAChBxmB,EAAAA,gBAAgBC,YAAYumB,EAAYznB,WACxClG,KAAK8J,eACD9J,KAAK8J,aAAe8E,GACb5O,KAAKurC,qBAAqB5d,GAGlC3tB,KAAK+tB,kBAAkBJ,OAmB1Crf,sBAAsBpE,EAAuBY,EAAqB7F,GACtE,OACI1F,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,CACDyB,IAAK/I,GACDjF,KAAKP,MAAMwpC,SAAShlC,OAAM,CAC9BC,QAASlE,KAAK2K,sBAAsBT,EAAQY,GAAW,kBACtC9K,KAAKW,MAAMmK,YAAc9K,KAAKW,MAAMmK,aAAeZ,EAAOrE,IAAG,mBAC5D7F,KAAKW,MAAMmK,YAAc9K,KAAKW,MAAMmK,aAAeZ,EAAOrE,IAAG,cAClEiF,EAAU,aACX9K,KAAKW,MAAMmpC,aAAe5/B,EAAO/B,eAAY/C,IAExD8E,EAAOpE,UAKZyI,oBAAoBrE,EAAuBjF,GAC/C,MAAM,KAAEnB,GAAS9D,KAAKP,MAAMwpC,SACtBnjC,EAAWoE,EAAOpE,SAAWoE,EAAOpE,SAAW,GACrD9F,KAAK+M,QAAQ4C,cAAcC,MAAQ9J,EACnC,MAAM+J,GAAaC,EAAAA,EAAAA,wBAAuB9P,KAAK2M,iBAAkB3M,KAAK+M,SACtE,OACIxN,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GACGzI,EAAI,CACRkK,IAAK/I,EACL+K,KAAM9F,EAAOlE,SACT6J,EAAU,CACdtE,OAAQrB,EAAOrB,iBAAmB,cAAWzD,EAC7ClB,SAAS+L,EAAAA,EAAAA,kBAAiBjQ,KAAK2M,iBAAkB3M,KAAK+M,QAASjH,KAE9DoE,EAAOpE,UAKZ0lC,4BAA4BthC,EAAuBjF,GAA6C,IAA7B0mC,IAAAn8B,UAAAvO,OAAA,QAAAmE,IAAAoK,UAAA,KAAAA,UAAA,GACvE,MAAM,KAAE1L,GAAS9D,KAAKP,MAAMwpC,SACtBnjC,EAAWoE,EAAOpE,SAAWoE,EAAOpE,SAAW,GAC/C4J,EAAcxF,EAAOjE,YAAciE,EAAOjE,YAAc,GAC9DjG,KAAK+M,QAAQ4C,cAAcC,MAAQ9J,EACnC,MAAM+J,GAAaC,EAAAA,EAAAA,wBAAuB9P,KAAK2M,iBAAkB3M,KAAK+M,SACtE,OACIxN,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GACGzI,EAAI,CACRkK,IAAK/I,EACL8K,YAAa47B,GAAiB3rC,KAAKgK,qBAAqB0F,EAAaxF,GACrE8F,KAAM9F,EAAOlE,SACT6J,EAAU,CACd3L,SAAS+L,EAAAA,EAAAA,kBAAiBjQ,KAAK2M,iBAAkB3M,KAAK+M,QAASjH,KAE9DoE,EAAOpE,UAKZoK,uBAAuBpK,EAAmBuC,GAC9C,MAAM,KAAEvE,GAAS9D,KAAKP,MAAMwpC,SAC5BjpC,KAAK+M,QAAQ4C,cAAcC,MAAQ9J,EACnC,MAAM+J,GAAaC,EAAAA,EAAAA,wBAAuB9P,KAAK2M,iBAAkB3M,KAAK+M,SACtE,OAAIjH,GAAYuC,EAER9I,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKzI,EAAI,CAAEkM,KAAM3H,GAAawH,EAAU,CAAE3L,SAAS+L,EAAAA,EAAAA,kBAAiBjQ,KAAK2M,iBAAkB3M,KAAK+M,QAASjH,KACzGA,GAIN,KAGH0I,oBAAoBtE,EAAuBjF,GAC/C,MAAM,KAAEb,GAASpE,KAAKP,MAAMwpC,SAC5B,OACI1pC,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,CAACyB,IAAK/I,GAAWb,GACjB8F,EAAOpE,UAKZuJ,YAAYc,EAAepB,EAA4B68B,GAAmB,IAAAC,EAC9E,MAAM,aAAE9nC,EAAY,SAAEP,EAAQ,kBAAEQ,EAAiB,kBAAEN,EAAiB,uBAAEE,GAA2B5D,KAAKP,MAAMwpC,SACtG6C,GACD9rC,KAAKW,MAAMmpC,cACZpmC,GAC6B,OAA7B1D,KAAKW,MAAM8J,oBACkBrF,IAA7BpF,KAAKW,MAAM8J,gBACVmhC,EACCG,GACD/rC,KAAKW,MAAMmpC,cAAgBlmC,GAA0BuD,EAAAA,gBAAgBC,YAAYpH,KAAKW,MAAM8J,iBAAmBmhC,EAC9GI,EACFhsC,KAAK8J,aAAeg/B,EAAiBwC,KAAOQ,EAAyB/nC,EAAcX,UAAY,kBACnGpD,KAAK8J,aAAeg/B,EAAiB6B,IACrC,MAAMsB,EACFH,GACA9rC,KAAKP,MAAMwpC,SAASvoC,OAAOmO,kBAC3B7O,KAAKP,MAAMwpC,SAASvoC,OAAOmO,iBAAmBi6B,EAAiBwC,KAC/D,sBAEEY,EAAyC,QAA3BL,EAAG7rC,KAAKW,MAAM8J,qBAAa,IAAAohC,OAAA,EAAxBA,EAA0BnlC,QAAO+B,IAAU6U,EAAAA,iBAAiBsjB,mBAAmBn4B,EAAMC,OACtGyjC,EAAqBD,MAAAA,OAAc,EAAdA,EAAgBlnC,KAAI7D,GAAQA,EAAKuH,MAAKZ,KAAK,KACtE,OACIvI,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKxI,EAAY,CAAEX,UAAW4oC,IAC/BzsC,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GACG/I,EAAQ,CACZJ,UAAWC,GAAAA,CAAWG,EAASJ,UAAW+M,EAAO27B,GAA0B,gBAAiBG,KAE3Fl9B,GAELxP,EAAAA,cAAA,OAAK6D,UAAU,2BAA2B4K,IAAKm+B,GAC1CL,GACG3kC,EAAAA,gBAAgBC,YAAY8kC,IAC5BA,EAAelnC,KAAI7D,IAAI,IAAAirC,EAAA37B,EAAA,OACnBlR,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKvI,EAAiB,CAAEZ,UAAWY,EAAmBZ,UAAW4K,IAAK7M,EAAKuH,MAC3EqgC,EAAiB/oC,KAAKP,MAAe,QAAV2sC,EAAEjrC,EAAKuH,WAAG,IAAA0jC,EAAAA,EAAI,GAAIjrC,EAAKiJ,QAASgF,YAC3D28B,GACG/rC,KAAKkQ,uBAAuB/O,EAAKiJ,QAAkC,QAA3BqG,EAAEtP,EAAKqJ,4BAAoB,IAAAiG,OAAA,EAAzBA,EAA2BpI,gBAvftF+gC,EAAAv+B,aAAuB,GAgE5BnB,EAAAA,EAAAA,IAAA,CAATE,EAAAA,IAAQ,iCA0jBb,+kBC3nBO,MAAMyiC,UAAkC9sC,EAAAA,cAyB3CC,YAAmBC,GACfC,MAAMD,GAvBO,KAAA4pC,eAAyBP,EAAiBQ,KAEnD,KAAAx/B,aAAuBg/B,EAAiBS,KAM/B,KAAA7d,UAAoBod,EAAiBpd,UAIrC,KAAAvhB,iBAA0C,GAEnD,KAAAxF,aAAgC,GAoGvB,KAAA6kC,cAAgB,KAC7BxpC,KAAKqJ,UAASogC,IAAa,CACvB3+B,WAAYg+B,EAAiBkC,SAC7BtB,WAAYD,EAAcC,eAwTjB,KAAAC,0BAA4B,CAACC,EAA4Bvc,IAA0B,KAChG,MAAM,eAAEX,GAAmB1sB,KAAKW,MAC1BgsB,EAAU,CAAE,CAACid,IAAWvc,GAC9BrtB,KAAKqJ,SAAS,CAAEqjB,eAAclqB,EAAAA,EAAA,GAAOkqB,GAAmBC,MAwI3C,KAAA3iB,qBAAuB,CAAC6/B,EAA6B3/B,IAA0B,KAC5F,MAAMpE,EAAWoE,EAAOpE,SAAWoE,EAAOpE,SAAW,GAC/CqE,EAA0C,CAAC,CAAEzB,IAAKmhC,EAAqBz/B,QAAStE,IAGtF,GAAIqB,EAAAA,gBAAgBC,YAAY8C,EAAOlC,oBACnC,IAAK,MAAM7G,KAAQ+I,EAAOlC,mBAAoB,CAC1C,MAAM/B,EAAc9E,EAAKsH,MAAMC,IAC/ByB,EAAiBjF,KAAK,CAClBwD,IAAKzC,EACLmE,QAASjJ,EAAKoJ,KACdC,qBAAsB,CAAEnC,QAASlH,EAAKkH,QAAQC,kBAI1DtI,KAAKqJ,SAAS,CACVoB,cAAetD,EAAAA,gBAAgBC,YAAY+C,GAAoBA,EAAmB,CAAC,CAAEzB,IAAK,aAUjF,KAAAiC,sBAAwB,CAACvI,EAAqBwI,IAAsB,KAC5E5K,KAAKW,MAAMmpC,cASZuC,EAA0BxhC,aAAc,EACxC7K,KAAKqJ,SAAS,CACVyB,WAAY1I,EAAKyD,GACjBkF,oBAAqB3I,EAAK0D,SAC1BkF,WAAYJ,MAZhB5K,KAAKqJ,SAAS,CACVyB,WAAY1I,EAAKyD,GACjBmF,WAAYJ,IAEZ5K,KAAKP,MAAMwpC,SAASvlC,mBACpB1D,KAAKgK,qBAAqB5H,EAAK6D,YAAc7D,EAA7CpC,KAgBK,KAAAiL,cAAgB,IAAM,KACnCohC,EAA0BxhC,aAAc,EACxC7K,KAAKqJ,UAASogC,IAAa,CAAO3+B,WAAY2+B,EAAcz+B,gBAO/C,KAAAE,oBAAuBC,IAChCnL,KAAKoL,SAASC,UAAYrL,KAAKoL,SAASC,QAAQC,SAASH,EAAMI,UAC1DvL,KAAKW,MAAMmpC,aAGZ9pC,KAAKqJ,SAAS,CAAEyB,gBAAY1F,EAAW2F,oBAAqB,GAAI2+B,WAAW,IAF3E1pC,KAAKqJ,SAAS,CAAEyB,WAAYg+B,EAAiBkC,SAAUjgC,oBAAqB,GAAI2+B,WAAW,MAUtF,KAAA4C,gBAAkB,KAC/B,MAAM,aAAE3nC,GAAiB3E,KAAKP,MAAMwpC,SAEoE,IAADsD,GADvGvsC,KAAK2E,aAAeA,EAChBwC,EAAAA,gBAAgBC,YAAYzC,IAAiBwC,EAAAA,gBAAgBC,YAAYzC,EAAa,GAAGuB,YAC7D,QAA5BqmC,EAAAvsC,KAAK2E,aAAa,GAAGuB,eAAO,IAAAqmC,GAA5BA,EAA8BvnC,KAAI7D,IAC9B,MAAMqrC,EAAgB,GAOtB,OANAlgC,OAAOC,OAAOigC,EAAe,CAAEvmC,YAAa9E,EAAK8E,cACjDqG,OAAOC,OAAOigC,EAAe,CAAE1mC,SAAU9F,KAAKP,MAAMwpC,SAAS1kC,UAAUyxB,sBACvE1pB,OAAOC,OAAOigC,EAAe,CAAExmC,QAAS7E,EAAK6E,UACzCmB,EAAAA,gBAAgBC,YAAYjG,EAAK+E,UAAY/E,EAAK8G,aAAe7I,EAAAA,EAAW8I,QAC5E/G,EAAK+E,QAAQumC,QAAQD,GAElBrrC,OAYF,KAAAwK,uBAAyB,CAAC1G,EAAe8F,EAA8Ba,KAE/EygC,EAA0BxhC,aADJ,IACmB5F,MAGzC2G,IAAmBb,IAGjBA,IAAwBa,EAMlB,KAAAm+B,cAAgB,KACxB/pC,KAAKW,MAAMmpC,aAGZ9pC,KAAKqJ,SAAS,CAAEyB,gBAAY1F,EAAW2F,oBAAqB,GAAI2+B,WAAW,IAF3E1pC,KAAKqJ,SAAS,CAAEyB,WAAYg+B,EAAiBkC,SAAUjgC,oBAAqB,GAAI2+B,WAAW,KAUlF,KAAA7d,aAAgB1gB,IACzBA,EAAM2gB,UAAY9rB,KAAK0rB,YAAc1rB,KAAKW,MAAMmpC,cAAgB9pC,KAAKW,MAAM+oC,WAC3E1pC,KAAKqJ,SAAS,CAAEyB,WAAYg+B,EAAiBkC,SAAUjgC,oBAAqB,GAAI2+B,WAAW,KAOlF,KAAAQ,sBAAwB,KACrClqC,KAAKqJ,SAAS,CAAEygC,aAAc9pC,KAAK8pC,gBAnqBnC9pC,KAAKoL,SAAW7L,EAAAA,YAChBS,KAAK0M,YAAcnN,EAAAA,YACnB,MAAM,aAAEoF,GAAiB3E,KAAKP,MAAMwpC,SACpC,GAAI9hC,EAAAA,gBAAgBC,YAAYzC,IAAiBwC,EAAAA,gBAAgBC,YAAYzC,EAAa,GAAGuB,SAAU,CACnG,MAAMwJ,EAAc/K,EAAa,GAAGuB,QAAQ,GAAGD,YAActB,EAAa,GAAGuB,QAAQ,GAAGD,YAAc,GAChGH,EAAWnB,EAAa,GAAGuB,QAAQ,GAAGJ,SAAWnB,EAAa,GAAGuB,QAAQ,GAAGJ,SAAW,GAC7F9F,KAAKmK,iBAAmB,CAAC,CAAEzB,IAAKgH,EAAatF,QAAStE,IAGlDqB,EAAAA,gBAAgBC,YAAYzC,EAAa,GAAGuB,QAAQ,GAAG8B,qBACvDrD,EAAa,GAAGuB,QAAQ,GAAG8B,mBAAmBhD,KAAI7D,IAC9C,MAAM8E,EAAc9E,EAAKsH,MAAMC,IAM/B,OALA1I,KAAKmK,iBAAiBjF,KAAK,CACvBwD,IAAKzC,EACLmE,QAASjJ,EAAKoJ,KACdC,qBAAsB,CAAEnC,QAASlH,EAAKkH,QAAQC,kBAE3C,QAInBtI,KAAKW,MAAQ,CACTmK,WAAYg+B,EAAiBkC,SAC7BjgC,oBAAqB,GACrBC,gBAAY5F,EACZsnB,eAAgB,GAChBod,aAAc9pC,KAAK8pC,aACnBr/B,cAAezK,KAAKmK,iBACpBu/B,WAAW,GAGf1pC,KAAK2M,kBAAmBC,EAAAA,EAAAA,oBACpB5M,KAAKP,MAAMwpC,SAAS3oC,QAAQC,QAAQsM,kBACpC7M,KAAKP,MAAMwpC,SAASn8B,aACpB9M,KAAKP,MAAMwpC,SAAS5mC,WAExBrC,KAAK+M,SAAUC,EAAAA,EAAAA,kBAAiB,QAAShN,KAAK2M,iBAAkB,GAAI,IACpE3M,KAAK6P,YAAaC,EAAAA,EAAAA,wBAAuB9P,KAAK2M,iBAAkB3M,KAAK+M,SAG/D,mBACN,MAAoG,QAA7FnM,EAAAA,EAAAA,UAAS,CAAEupC,QAASC,EAAAA,YAAYC,QAAS/pC,QAASN,KAAKP,MAAMwpC,SAAS3oC,QAAQC,UAGlFgB,oBACHvB,KAAKsqC,mCAAoC3oC,EAAAA,EAAAA,mBAAkBC,OAAQ,SAAU5B,KAAKkqC,uBAClFj9B,SAASE,iBAAiB,UAAYnN,KAAK6rB,cAA2C,GACtF7rB,KAAKkqC,wBACLj9B,SAASC,KAAKC,iBAAiB,YAAanN,KAAKkL,qBACjDlL,KAAKssC,kBAGFl/B,qBAAkB,IAAAC,EACO,QAAxBA,EAAArN,KAAK0M,YAAYrB,eAAO,IAAAgC,GAAxBA,EAA0BC,SAAS,IAAMtN,KAAKP,MAAMwpC,SAASvkC,cAC5D1E,KAAK0M,YAAYrB,QAAQiC,SAAS,GAAmBC,QAIvD1L,uBACHD,OAAOE,oBAAoB,SAAU9B,KAAKsqC,mCAAoC,GAC9Er9B,SAASC,KAAKpL,oBAAoB,YAAa9B,KAAKkL,qBAAqB,GAGtEnJ,SACH/B,KAAK8J,aAAeg/B,EAAiB6B,IAErC,OACIprC,EAAAA,cAACkO,EAAAA,KAAI,CAACrK,UAAU,qBAAqBsK,IAAK1N,KAAKoL,UAC1CpL,KAAKW,MAAMmpC,aACR9pC,KAAK6sB,oBAELttB,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAAC0E,EAAAA,OAAMqI,OAAAC,OAAA,CACHnJ,UAAU,sBACVc,QAASlE,KAAKwpC,cAAa,gBAT7B,oBAWEp4B,MAAOpR,KAAKP,MAAMwpC,SAAS1kC,UAAUgmC,mBAAkB,aAC3CvqC,KAAKP,MAAMwpC,SAAS1kC,UAAUgmC,oBACtCvqC,KAAK6P,aAEZ7P,KAAKwrB,wBAiBlBA,sBACJ,OACIjsB,EAAAA,cAACwrB,EAAAA,SAAQ,CAAC3nB,UAAU,mCAAmC6Y,OAAQjc,KAAKW,MAAM+oC,WACrE1pC,KAAKW,MAAMmpC,aAAe9pC,KAAK6sB,oBAAsB7sB,KAAK8sB,sBAK/DD,oBACJ,MAAM,iBAAEvoB,EAAgB,2BAAED,EAA0B,uBAAEI,EAAsB,WAAEvB,GAAelD,KAAKP,MAAMwpC,SAGxG,OADAjpC,KAAK8J,aAAeg/B,EAAiB6B,IAEjCprC,EAAAA,cAACiO,EAAAA,OAAMlB,OAAAC,OAAA,GACCrJ,EAAU,CACdE,UAAWC,GAAAA,CACPH,EAAWE,UACXpD,KAAKW,MAAMmpC,mBAA0C1kC,IAA1BpF,KAAKW,MAAMmK,WAA2B,QAAU,YAG/EvL,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKvM,KAAKP,MAAMwpC,SAASzlC,SAAQ,CAAEmK,SAAS,OAC5C3N,KAAKW,MAAMmpC,mBAA0C1kC,IAA1BpF,KAAKW,MAAMmK,YACnCvL,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKlI,GACN9E,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKjI,EAAgB,CAAEJ,QAASlE,KAAKiL,mBAC1C1L,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK9H,GAAyBzE,KAAKW,MAAMoK,sBAGrD/K,KAAK4N,mBAMdkf,qBACJ,MAAM,WAAE5pB,GAAelD,KAAKP,MAAMwpC,SAClC,OACI1pC,EAAAA,cAACiO,EAAAA,OAAMlB,OAAAC,OAAA,GAAKrJ,EAAU,CAAEE,UAAWC,GAAAA,CAAWH,EAAWE,aACrD7D,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKvM,KAAKP,MAAMwpC,SAASzlC,SAAQ,CAAEmK,SAAS,OAC5C3N,KAAK4N,iBACNrO,EAAAA,cAAA,OAAK6D,UAAU,uBACX7D,EAAAA,cAAA,UAAQ6D,UAAU,qBAAoB,aAAY,QAAQc,QAASlE,KAAK+pC,mBAOpFhc,kBAAkB5sB,GACtB,OAAIA,EAAK6E,UAAYsX,EAAAA,iBAAiBsjB,mBAAmBz/B,EAAK6E,SACnDhG,KAAKuO,oBAAoBpN,GACxBA,EAAK6E,QAGV,KAFIhG,KAAKwO,oBAAoBrN,GAKhCyM,iBACJ,MAAM,SAAEnK,GAAazD,KAAKP,MAAMwpC,SAChC,IAAItkC,EAAgC,GAEhCA,EADA3E,KAAKW,MAAMmpC,aACI9pC,KAAK2E,aAEL3E,KAAKP,MAAMwpC,SAAStkC,aAEvC,MAAM,WAAEmG,GAAe9K,KAAKW,MACtBE,EAA8B,GACpC,IAAI6rC,EAA2C,GAC3CC,EAAkD,GACtD,MAAMC,EAAiBC,KAAKC,MAAMD,KAAKE,UAAUpoC,IAEjD,IAAK,MAAMxD,KAAQyrC,EACfD,EAAqBxrC,EAAK+E,QAASQ,QAAOukC,GAAeA,EAAYplC,IAAMolC,EAAYplC,IAAM1G,EAAAA,EAAgB+I,SAC7G/G,EAAK+E,QAAUymC,EAGnB,IAAK,MAAMxrC,KAAQwD,EACf+nC,EAAcvrC,EAAK+E,QAASQ,QAAOukC,GAAeA,EAAYplC,IAAMolC,EAAYplC,GAAK1G,EAAAA,EAAgB+I,SAGzG,GAAIlI,KAAKW,MAAMmpC,mBAA+B1kC,IAAf0F,GAA4B3D,EAAAA,gBAAgBC,YAAYzC,GAAe,CAClG,IAAIkJ,EAAiC,GACrC,IAAK,MAAMC,KAAiBnJ,EAAc,CACtC,GAAImJ,EAAcjI,KAAOiF,EAAY,CACjC+C,EAAWC,EACNu+B,EAA0BxhC,YAK3B7K,KAAKqJ,SAAS,CACV2B,gBAAY5F,EACZ2F,oBAAqB+C,EAAchI,WANvC9F,KAAKqJ,SAAS,CACV2B,gBAAY5F,IAQpB,MAGJ,GADAyI,EAAW7N,KAAK+N,gBAAgBD,GAC5BD,GAAYA,EAAShI,KAAOiF,EAC5B,MAIJ+C,GACAhN,EAAaqE,KACT3F,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,CAACyB,IAAKH,EAAShI,IAAQpC,GACvB,IACAzD,KAAKiO,oBAAoBJ,GAAS,IAAG,UAI/C,CACH,IAAK,MAAO5I,EAAO9D,KAASyrC,EAAepC,UACvC3pC,EAAaqE,KACT3F,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,CACDyB,IAAK7M,EAAK0E,IACNpC,EAAQ,CACZiK,IAAK1N,KAAK2L,uBAAuB1G,EAAOjF,KAAKW,MAAMoK,oBAAqB5J,EAAK2E,UAAY9F,KAAK0M,YAAc,OAE3G1M,KAAKiO,oBAAoB9M,KAKtC,IAAK,MAAO8D,EAAO9D,KAASurC,EAAYlC,UACpC3pC,EAAaqE,KACT3F,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,CACDyB,IAAK7M,EAAK0E,IACNpC,EAAQ,CACZiK,IAAK1N,KAAK2L,uBAAuB1G,EAAOjF,KAAKW,MAAMoK,oBAAqB5J,EAAK2E,UAAY9F,KAAK0M,YAAc,OAE3G1M,KAAKiO,oBAAoB9M,KAM1C,OAAON,EAGHkN,gBAAgB5M,GACpB,MAAMgI,EAAWhI,MAAAA,OAAI,EAAJA,EAAM+E,QACvB,GAAIiD,GAAYhC,EAAAA,gBAAgBC,YAAY+B,GACxC,IAAK,IAAIlE,EAAQ,EAAGA,GAASkE,EAASlI,OAAS6nC,EAAiB6B,IAAK1lC,IAAS,CAC1E,MAAMiB,EAAyBiD,EAAS20B,OAAO74B,IAC/C,IAAIwlC,EAAetpC,MAAAA,OAAI,EAAJA,EAAM0E,GAEzB,GAAIK,EAAQL,KAAO7F,KAAKW,MAAMmK,WAU1B,OATI2/B,IAAiB3B,EAAiBkC,UAAY9kC,EAAQL,GAAM1G,EAAAA,EAAgB+I,SAC5EuiC,OAAerlC,GAGdinC,EAA0BxhC,YAG3B7K,KAAKqJ,SAAS,CAAE2B,WAAYy/B,EAAc1/B,oBAAqB7E,EAAQJ,WAFvE9F,KAAKqJ,SAAS,CAAE2B,WAAYy/B,IAIzBvkC,EAEX,MAAMkI,EAAQpO,KAAK+N,gBAAgB7H,GACnC,GAAIkI,EACA,OAAOA,EAInB,OAAO,KAGHH,oBAAoBtJ,GACxB,OAAIwC,EAAAA,gBAAgBC,YAAYzC,EAAauB,SACrClG,KAAKW,MAAMmpC,mBAA0C1kC,IAA1BpF,KAAKW,MAAMmK,WAC/B9K,KAAKqO,eAAe1J,EAAauB,QAASvB,EAAakB,IAAI,GAGlEtG,EAAAA,cAAAA,EAAAA,SAAA,KACKS,KAAKsO,sBAAsB3J,GAC3B3E,KAAKqO,eAAe1J,EAAauB,QAASvB,EAAakB,KAGzDlB,EAAaqB,UAAYsX,EAAAA,iBAAiBsjB,mBAAmBj8B,EAAaqB,SAC1EhG,KAAKuO,oBAAoB5J,EAAcA,EAAakB,IACnDlB,EAAaqB,QAIlB,KAHIhG,KAAKwO,oBAAoB7J,GAMhC0J,eAAeu8B,EAAgC9/B,EAAqB+/B,GAAmB,IAAAC,EAAAC,EAC3F,IAAI5hC,EAAwCyhC,EACxC9/B,IAAeg+B,EAAiBkC,WAChC7hC,EAAWyhC,EAAclkC,QAAOukC,GAAeA,EAAYplC,IAAMolC,EAAYplC,IAAM1G,EAAAA,EAAgB+I,UAGvG,MAAM,SAAEzE,GAAazD,KAAKP,MAAMwpC,SAC1BiC,EAA0E,QAAlDJ,EAAG9qC,KAAKP,MAAMwpC,SAASvoC,OAAOiO,4BAAoB,IAAAm8B,GAAAA,EAC1El8B,EAAqE,QAA9Cm8B,EAAG/qC,KAAKP,MAAMwpC,SAASvoC,OAAOmO,wBAAgB,IAAAk8B,EAAAA,EAAIjC,EAAiBqC,MAEhG,GAAIrgC,GAAc9K,KAAKW,MAAMmK,aAAeA,EAExC,OADA9K,KAAKP,MAAMwpC,SAAS3oC,QAAQ+B,UAAUC,MAAM,gEACrC,KAGX,IAAK6G,IAAahC,EAAAA,gBAAgBC,YAAY+B,GAE1C,OADAnJ,KAAKP,MAAMwpC,SAAS3oC,QAAQ+B,UAAUC,MAAM,4DACrC,KAGX,IAAIwM,EAAyB,GAC7B,MAAMC,EAAc5F,EAASnE,KAAI,CAACkF,EAAuBjF,KACrD,MAAM+J,EAAa9E,EAAOhE,SAAWiB,EAAAA,gBAAgBC,YAAY8C,EAAOhE,SACxE,IAAI2H,EAQA3H,EANA2H,EADAmB,GAAchP,KAAKW,MAAMmpC,aACd9pC,KAAKsO,sBAAsBpE,EAAQY,EAAY7F,GACnDjF,KAAK8J,eAAiBg/B,EAAiB6B,KAAQ37B,EAG3C,KAFAhP,KAAKorC,YAAYlhC,EAAQjF,GAKxC,MAAMomC,EACFr8B,GAAck8B,GAA4BlrC,KAAK8J,cAAgBoF,KAAKC,MAAMP,GAA2Bk6B,EAAiB6B,IAEtH37B,IAAehP,KAAKW,MAAMmpC,eACtB9pC,KAAK8J,cAAgBg/B,EAAiBwC,IACtCplC,EAAUlG,KAAKurC,qBAAqBrhC,GAC7BlK,KAAK8J,cAAgB9J,KAAKqpC,eAAiBP,EAAiB6B,MACnE3qC,KAAK8J,eACLgF,EAAiB,SAAS9O,KAAK8J,aAAasF,aAC5ClJ,EAAUlG,KAAKqO,eAAenE,EAAOhE,aAASd,GAAW,KAG7DimC,GAAmBrrC,KAAKW,MAAMmpC,eAC9B9pC,KAAK8J,eACLgF,EAAiBo8B,EAA2B,SAASlrC,KAAK8J,aAAasF,aAAe,GACtFlJ,EAAUlG,KAAKqO,eAAenE,EAAOhE,QAASgE,EAAOrE,IAAI,IAE7D,MAAM6J,EAAcxF,EAAOjE,YAAciE,EAAOjE,YAAc,GAC9D,OACI1G,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GACG9I,EAAQ,CACZuK,IAAK9D,EAAOrE,GACZkK,YAAa/P,KAAK8J,eAAiBg/B,EAAiB6B,KAAO3qC,KAAKgK,qBAAqB0F,EAAaxF,GAClG9G,UAAWC,GAAAA,CAAWI,EAASL,UAAWioC,GAAmB,eAC7D39B,IAAK1N,KAAK2L,uBAAuB1G,EAAOjF,KAAKW,MAAMoK,oBAAqBb,EAAOpE,UAAY9F,KAAK0M,YAAc,OAE7GmB,EACA3H,MAIb,OAAOlG,KAAKqP,YAAYP,EAAgBC,EAAa87B,GAGjDO,YAAYlhC,EAAuBjF,GACvC,IAAI4I,EAMJ,OAJIA,EADA7N,KAAK8J,eAAiBg/B,EAAiB6B,IAC5BzgC,EAAOlE,QAAUhG,KAAKwrC,4BAA4BthC,EAAQjF,GAASjF,KAAKwO,oBAAoBtE,GAE5FA,EAAOlE,QAAUhG,KAAKuO,oBAAoBrE,EAAQjF,GAASjF,KAAKwO,oBAAoBtE,GAE5F2D,EAGH09B,qBAAqB19B,GAAuB,IAAA49B,EAChD,MAAM38B,EAAiB,SAAS9O,KAAK8J,aAAasF,aAC5Cgc,EAAmBvd,EAAS/H,SAE5B8mB,OAAkCxnB,IAArBgmB,EAAiCA,EAAmB,GACjEgC,EAFWptB,KAAKW,MAAM+rB,eAGtB9d,EAAqE,QAA9C68B,EAAGzrC,KAAKP,MAAMwpC,SAASvoC,OAAOmO,wBAAgB,IAAA48B,EAAAA,EAAI3C,EAAiBqC,MAEhG,IAAI9d,GAAe,EACfD,EAAKvf,EAAShI,MACdwnB,GAAe,GAEnB,MAAMC,EAA2B,CAAEoe,QAAS,EAAGzvB,OAAQoR,GACvD,OACI9tB,EAAAA,cAACyrB,EAAAA,OAAM,CACHyC,cAAeH,EACftf,IAAKH,EAAShI,GACdzC,UAAWC,GAAAA,CAAW,yBAA0ByL,GAChDmc,UAAU,sBACVC,WAAW,uBACXC,eAAe,QACfC,iBAAkBwB,EAClBY,SAAUxtB,KAAK2pC,0BAA0B97B,EAAShI,GAAIwnB,IAEtD9tB,EAAAA,cAAA,WACKsO,EAAS3H,QAASlB,KAAK2oB,GAChBxmB,EAAAA,gBAAgBC,YAAYumB,EAAYznB,WACxClG,KAAK8J,eACD9J,KAAK8J,aAAe8E,GACb5O,KAAKurC,qBAAqB5d,GAGlC3tB,KAAK+tB,kBAAkBJ,OAmB1Crf,sBAAsBpE,EAAuBY,EAAqB7F,GACtE,OACI1F,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,CACDyB,IAAK/I,GACDjF,KAAKP,MAAMwpC,SAAShlC,OAAM,CAC9BC,QAASlE,KAAK2K,sBAAsBT,EAAQY,GAAW,kBACtC9K,KAAKW,MAAMmK,YAAc9K,KAAKW,MAAMmK,aAAeZ,EAAOrE,IAAG,mBAC5D7F,KAAKW,MAAMmK,YAAc9K,KAAKW,MAAMmK,aAAeZ,EAAOrE,IAAG,cAClEiF,EAAU,aACX9K,KAAKW,MAAMmpC,aAAe5/B,EAAO/B,eAAY/C,IAExD8E,EAAOpE,UAKZyI,oBAAoBrE,EAAuBjF,GAC/C,MAAM,KAAEnB,GAAS9D,KAAKP,MAAMwpC,SACtBnjC,EAAWoE,EAAOpE,SAAWoE,EAAOpE,SAAW,GACrD9F,KAAK+M,QAAQ4C,cAAcC,MAAQ9J,EACnC,MAAM+J,GAAaC,EAAAA,EAAAA,wBAAuB9P,KAAK2M,iBAAkB3M,KAAK+M,SACtE,OACIxN,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GACGzI,EAAI,CACRkK,IAAK/I,EACL+K,KAAM9F,EAAOlE,SACT6J,EAAU,CACdtE,OAAQrB,EAAOrB,iBAAmB,cAAWzD,EAC7ClB,SAAS+L,EAAAA,EAAAA,kBAAiBjQ,KAAK2M,iBAAkB3M,KAAK+M,QAASjH,KAE9DoE,EAAOpE,UAKZ0lC,4BAA4BthC,EAAuBjF,GAA6C,IAA7B0mC,IAAAn8B,UAAAvO,OAAA,QAAAmE,IAAAoK,UAAA,KAAAA,UAAA,GACvE,MAAM,KAAE1L,GAAS9D,KAAKP,MAAMwpC,SACtBnjC,EAAWoE,EAAOpE,SAAWoE,EAAOpE,SAAW,GAC/C4J,EAAcxF,EAAOjE,YAAciE,EAAOjE,YAAc,GAC9DjG,KAAK+M,QAAQ4C,cAAcC,MAAQ9J,EACnC,MAAM+J,GAAaC,EAAAA,EAAAA,wBAAuB9P,KAAK2M,iBAAkB3M,KAAK+M,SACtE,OACIxN,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GACGzI,EAAI,CACRkK,IAAK/I,EACL8K,YAAa47B,GAAiB3rC,KAAKgK,qBAAqB0F,EAAaxF,GACrE8F,KAAM9F,EAAOlE,SACT6J,EAAU,CACd3L,SAAS+L,EAAAA,EAAAA,kBAAiBjQ,KAAK2M,iBAAkB3M,KAAK+M,QAASjH,KAE9DoE,EAAOpE,UAKZoK,uBAAuBpK,EAAmBuC,GAC9C,MAAM,KAAEvE,GAAS9D,KAAKP,MAAMwpC,SAC5BjpC,KAAK+M,QAAQ4C,cAAcC,MAAQ9J,EACnC,MAAM+J,GAAaC,EAAAA,EAAAA,wBAAuB9P,KAAK2M,iBAAkB3M,KAAK+M,SACtE,OAAIjH,GAAYuC,EAER9I,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKzI,EAAI,CAAEkM,KAAM3H,GAAawH,EAAU,CAAE3L,SAAS+L,EAAAA,EAAAA,kBAAiBjQ,KAAK2M,iBAAkB3M,KAAK+M,QAASjH,KACzGA,GAIN,KAGH0I,oBAAoBtE,EAAuBjF,GAC/C,MAAM,KAAEb,GAASpE,KAAKP,MAAMwpC,SAC5B,OACI1pC,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,CAACyB,IAAK/I,GAAWb,GACjB8F,EAAOpE,UAKZuJ,YAAYc,EAAepB,EAA4B68B,GAAmB,IAAAC,EAC9E,MAAM,aAAE9nC,EAAY,kBAAEC,EAAiB,kBAAEN,EAAiB,uBAAEE,GAA2B5D,KAAKP,MAAMwpC,SAC5F6C,GACD9rC,KAAKW,MAAMmpC,cACZpmC,GAC6B,OAA7B1D,KAAKW,MAAM8J,oBACkBrF,IAA7BpF,KAAKW,MAAM8J,gBACVmhC,EACCG,GACD/rC,KAAKW,MAAMmpC,cAAgBlmC,GAA0BuD,EAAAA,gBAAgBC,YAAYpH,KAAKW,MAAM8J,iBAAmBmhC,EAC9GI,EACFhsC,KAAK8J,aAAeg/B,EAAiBwC,KAAOQ,EAAyB/nC,EAAcX,UAAY,kBACnGpD,KAAK8J,aAAeg/B,EAAiB6B,IACrC,MAAMsB,EACFH,GACA9rC,KAAKP,MAAMwpC,SAASvoC,OAAOmO,kBAC3B7O,KAAKP,MAAMwpC,SAASvoC,OAAOmO,iBAAmBi6B,EAAiBwC,KAC/D,sBAEEY,EAAyC,QAA3BL,EAAG7rC,KAAKW,MAAM8J,qBAAa,IAAAohC,OAAA,EAAxBA,EAA0BnlC,QAAO+B,IAAU6U,EAAAA,iBAAiBsjB,mBAAmBn4B,EAAMC,OACtGyjC,EAAqBD,MAAAA,OAAc,EAAdA,EAAgBlnC,KAAI7D,GAAQA,EAAKuH,MAAKZ,KAAK,KACtE,OACIvI,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKxI,EAAY,CAAEX,UAAW4oC,IAC/BzsC,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GACGvM,KAAKP,MAAMwpC,SAASzlC,SAAQ,CAChCJ,UAAWC,GAAAA,CACPrD,KAAKP,MAAMwpC,SAASzlC,SAASJ,UAC7B+M,EACA27B,GAA0B,gBAC1BG,KAGHl9B,GAELxP,EAAAA,cAAA,OAAK6D,UAAU,2BAA2B4K,IAAKm+B,GAC1CL,GACG3kC,EAAAA,gBAAgBC,YAAY8kC,IAC5BA,EAAelnC,KAAI7D,IAAI,IAAAirC,EAAA37B,EAAA,OACnBlR,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKvI,EAAiB,CAAEZ,UAAWY,EAAmBZ,UAAW4K,IAAK7M,EAAKuH,MAC3EqgC,EAAiB/oC,KAAKP,MAAe,QAAV2sC,EAAEjrC,EAAKuH,WAAG,IAAA0jC,EAAAA,EAAI,GAAIjrC,EAAKiJ,QAASgF,YAC3D28B,GACG/rC,KAAKkQ,uBAAuB/O,EAAKiJ,QAAkC,QAA3BqG,EAAEtP,EAAKqJ,4BAAoB,IAAAiG,OAAA,EAAzBA,EAA2BpI,gBA5iBtFgkC,EAAAxhC,aAAuB,GAkE5BnB,EAAAA,EAAAA,IAAA,CAATE,EAAAA,IAAQ,iCA+nBb,UC7sBA,EAR4BnK,GACpBA,EAAMiB,OAAOgF,cACNnG,EAAAA,cAAC8sC,EAAyB,CAACpD,SAAUxpC,IAGzCF,EAAAA,cAAC6pC,EAA0B,CAACH,SAAUxpC,8MCH1C,MAAMuuB,EAA+CjiB,IAAA,IAAC,sBACzDkiB,EAAqB,QACrBC,EAAO,UACPC,EAAS,YACTC,EAAW,MACXC,EAAK,OACL5H,EAAM,mBACN6H,EAAkB,YAClBC,EAAW,eACXC,GACHziB,EAAA,OACGxM,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK0hB,GACLM,EACAC,EACAN,EACAC,EACAC,EACAC,EACA5H,EACA6H,IAIIG,EAAkC3a,IAAA,IAAC,eAAE4a,EAAc,UAAEC,EAAS,eAAEC,EAAc,OAAE7L,GAAQjP,EAAA,OACjGvU,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKmiB,GACLC,EACAC,EACA7L,IAII8L,EAA0C1b,IAAA,IAAC,cAAE2b,EAAa,QAAEtd,EAAO,MAAE6c,GAAOlb,EAAA,OACrF5T,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKuiB,GACLtd,EACA6c,IAIIU,EAA0BzX,IAAA,IAAC,WAAE0X,EAAU,SAAEC,EAAQ,QAAEC,EAAO,gBAAEC,EAAe,WAAEC,EAAU,0BAAEC,GAA2B/X,EAAA,OAC7H/X,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKyiB,GACLC,GAAY1vB,EAAAA,cAACsvB,EAAaviB,OAAAC,OAAA,GAAK0iB,IAChC1vB,EAAAA,cAACkO,EAAAA,KAAI,CAACrK,UAAU,2CACXgsB,GACG7vB,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK4iB,GACLC,EAAWpqB,KAAI2pB,GACZpvB,EAAAA,cAACA,EAAAA,SAAc,CAACyO,IAAK2gB,EAAUvsB,KAAKusB,UAAUW,SACxCD,GAA6BV,EAAUe,YACR,SAAhCf,EAAUvsB,KAAKmtB,cAA2BZ,EAAUvsB,KAAKotB,SAAWb,EAAUc,aAAe,KAC9FlwB,EAAAA,cAACkvB,EAASniB,OAAAC,OAAA,GAAKoiB,SAK7BM,EAASU,cAAgBT,EAC1BD,EAASU,cACNpwB,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK0iB,EAASW,aACdV,EACAD,EAASY,uBAOjBC,EAA4BlY,IAAA,IAAC,YAAEmY,EAAW,OAAEC,GAAQpY,EAAA,OAC7DrY,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKwjB,GACLC,EAAOhrB,KAAI,CAACirB,EAAOhrB,IAChB1F,EAAAA,cAACwvB,EAAKziB,OAAAC,OAAA,CAACyB,IAAK/I,GAAWgrB,QAKtBC,EAAwCzY,IAAA,IAAC,kBAClD0Y,EAAiB,QACjB3e,EAAO,SACPgR,EAAQ,SACRC,EAAQ,IACRE,EAAG,YACHyN,EAAW,aACXC,GACH5Y,EAAA,OACGlY,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK4jB,GACL3e,EACAgR,EACAC,EACAE,EACAyN,EACAC,IAIIC,EAAqCC,IAAA,IAAC,oBAAEC,EAAmB,MAAEpf,EAAK,QAAEqf,GAASF,EAAA,OACtFhxB,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKikB,GACLpf,EACAqf,IAIIC,EAAwBC,IAAA,IAAC,UAAEC,EAAS,cAAEC,EAAa,oBAAEC,EAAmB,cAAEC,GAAeJ,EAAA,OAClGpxB,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKqkB,GACLC,EACAC,EACAC,IAuCT,EAnC2DC,IActD,IAduD,YACxD7tB,EAAW,UACX8tB,EAAS,iBACTC,EAAgB,MAChBpb,EAAK,SACLqb,EAAQ,QACR3f,EAAO,MACPoH,EAAK,QACLlF,EAAO,gBACP0d,EAAe,aACfC,EAAY,QACZC,EAAO,KACPC,EAAI,OACJvB,GACHgB,EACG,OACIzxB,EAAAA,cAACiO,EAAAA,OAAMlB,OAAAC,OAAA,GAAKpJ,GACPguB,EACA3f,EACAoH,EACAlF,EACA0d,GAAmB7xB,EAAAA,cAACyuB,EAAe1hB,OAAAC,OAAA,GAAK6kB,IACxCF,EACAD,EACAnb,EACAka,GAAUzwB,EAAAA,cAACuwB,EAAMxjB,OAAAC,OAAA,GAAKyjB,IACvBzwB,EAAAA,cAACkO,EAAAA,KAAI,CAACrK,UAAU,6CACXiuB,GAAgB9xB,EAAAA,cAAC2wB,EAAY5jB,OAAAC,OAAA,GAAK8kB,IAClCC,GAAW/xB,EAAAA,cAAC+wB,EAAOhkB,OAAAC,OAAA,GAAK+kB,KAE5BC,GAAQhyB,EAAAA,cAACmxB,EAAIpkB,OAAAC,OAAA,GAAKglB,iFCrI/B,MAsDMyb,EAA0C11B,IAAwC,IAAvC,MAAElE,EAAK,UAAEC,EAAS,KAAEC,EAAI,QAAEC,GAAS+D,EAChF,OACI/X,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK6G,GACN7T,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK8G,GACLC,EACAC,KAKX05B,EAAwCr1B,IAAkE,IAAjE,GAAE/R,EAAE,UAAEzC,EAAS,KAAEmH,EAAI,UAAEpC,EAAS,iBAAEwE,EAAgB,QAAEzI,GAAS0T,EACxG,MAAM7K,GAAUC,EAAAA,EAAAA,kBAAiB,QAASL,EAAmBpC,GACvDsF,GAAaC,EAAAA,EAAAA,wBAAuBnD,EAAmBI,GAC7D,OACIxN,EAAAA,cAAA,IAAA+M,OAAAC,OAAA,CAAG1G,GAAIA,EAAIzC,UAAWA,EAAS,aAAc+E,EAAWjE,QAASA,GAAa2L,GACzEtF,IA4Eb,EA3CgF9K,IAC5E,MAAM,OACFytC,EAAM,UACNz5B,EAAS,QACTC,EAAO,mBACPC,EAAkB,YAClBrC,EAAW,cACX67B,EAAa,cACbC,EAAa,qBACbC,EAAoB,mBACpBC,EAAkB,oBAClBC,EAAmB,qBACnBC,EAAoB,iBACpBC,EAAgB,kBAChBC,GACAjuC,EAEJ,OACIF,EAAAA,cAACiO,EAAAA,OAAMlB,OAAAC,OAAA,GAAK2gC,GACPz5B,EAAUI,eAAiBtU,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKoH,IACrCF,EAAUI,eAAiBtU,EAAAA,cAACytC,EAAa1gC,OAAAC,OAAA,GAAKmH,IAC/CnU,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK+E,GACN/R,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK4gC,GACLE,EA7H+BthC,CAAAA,IAA6E,IAA5E,aAAEgI,EAAY,MAAEC,EAAK,eAAE25B,EAAc,WAAE31B,EAAU,MAAE1V,EAAK,aAAEsrC,GAAc7hC,EACzH,OACIxM,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKwH,GACLC,GACGA,EAAMhP,KAAK7D,GAEH5B,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,CAACyB,IAAK7M,EAAK6M,KAAS7M,EAAK2R,SACzB3R,EAAK4R,MACL5R,EAAKmB,MACLnB,EAAK8R,SAIrB06B,EACA31B,EACA1V,EACAsrC,IA8GQt5B,CAAag5B,GAzGoBx5B,CAAAA,IAA8B,IAA7B,eAAE+5B,EAAc,MAAE75B,GAAOF,EAC5E,OACIvU,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKshC,GACL75B,GACGA,EAAMhP,KAAK7D,GAEH5B,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,CAACyB,IAAK7M,EAAK6M,KAAS7M,EAAKkT,QACzBlT,EAAKsH,MACLtH,EAAKoJ,UAkGbujC,CAAcP,IAEnBhuC,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAK6gC,GACLI,EACAE,EAxDjBjuC,CAAAA,IAEA,MAAM,UACF8E,EAAS,UACTlC,EAAS,aACTyK,EACAxM,SACIC,SAAS,kBAAEsM,KAEfpN,EACEkN,GAAmBC,EAAAA,EAAAA,oBAAmBC,EAAoBC,EAAczK,GAK9E,OACI9C,EAAAA,cAAC0tC,EAAY3gC,OAAAC,OAAA,CACT1G,GAAG,iBANQ,CACfmK,KAAM,KAMY,CACd5M,UAAW,mCACX+E,UAAW5D,EAAUwpC,yBACrBxjC,KAAMhG,EAAUypC,oBAChBrhC,iBAAkBA,MAmCTshC,CAAaxuC,IAElBF,EAAAA,cAAA,OAAK6D,UAAU,wCACX7D,EAAAA,cAAA,OAAK6D,UAAU,qDACX7D,EAAAA,cAAA,mBAnGwB4T,CAAAA,IAA8B,IAA7B,eAAE06B,EAAc,MAAE75B,GAAOb,EACtE,OACI5T,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKshC,GACL75B,GACGA,EAAMhP,KAAK7D,GAEHA,GACI5B,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,CAACyB,IAAK7M,EAAK6M,KAAS7M,EAAKkT,QACzBlT,EAAKoJ,UA6FjB2jC,CAAWT,gGC9IhC,MA+BMU,EAA4B1uC,IAC9B,MAAM66B,EAAU76B,EAAM2C,KAAKk4B,QAAQv1B,OACnC,OACIxF,EAAAA,cAACkO,EAAAA,KAAI,CAACrK,UAAU,iCACZ7D,EAAAA,cAAA,OAAK6D,UAAU,2BAnCC3D,CAAAA,IAAmF,IAAA2uC,EAC3G,MAAMC,EAA8C,QAA5BD,EAAG3uC,EAAM2C,KAAKk4B,QAAQv1B,cAAM,IAAAqpC,OAAA,EAAzBA,EAA2BE,gBAChDC,GAAWtiC,EAAAA,EAAAA,kBAAiBoiC,EAAoB5uC,EAAMa,QAAQC,QAAQ6L,aAa5E,OACI7M,EAAAA,cAAC8M,EAAAA,GAAK,CACF3D,IAAK6lC,MAAAA,EAAAA,EAAY,GACjBC,YAAaH,EACb5hC,oBAAoB,QACpBxJ,aAAcxD,EAAMa,QAAQC,QAAQ0C,aACpCR,cAAehD,EAAMiB,OAAO+B,cAAgBhD,EAAMiB,OAAO+B,cAlBpB,CACzCC,UAAW,CACPC,GAAI,CAAEC,EAAG,kBAAmBC,EAAG,IAAKC,EAAG,KACvCyG,GAAI,CAAE3G,EAAG,kBAAmBC,EAAG,IAAKC,EAAG,KACvC0G,GAAI,CAAE5G,EAAG,kBAAmBC,EAAG,IAAKC,EAAG,KACvC2G,GAAI,CAAE7G,EAAG,kBAAmBC,EAAG,IAAKC,EAAG,KACvCC,GAAI,CAAEH,EAAG,kBAAmBC,EAAG,IAAKC,EAAG,MAE3CE,UAAU,EACVyrC,iBAAiB,MAuB6BC,CAAmBjvC,IAC7DF,EAAAA,cAAA,OAAK6D,UAAU,6BACX7D,EAAAA,cAAA,OAAK6D,UAAU,2BAA2Bk3B,MAAAA,OAAO,EAAPA,EAASvzB,MACnDxH,EAAAA,cAAA,OAAK6D,UAAU,4BAA4Bk3B,MAAAA,OAAO,EAAPA,EAASqU,WA4EpE,EAzB+FlvC,IAC3F,MAAM,OAAEiB,EAAM,QAAE8Q,EAAO,cAAEo9B,EAAa,aAAEhB,EAAY,YAAE33B,EAAW,YAAE9S,GAAgB1D,GAC7E,UAAEgkB,GAAc/iB,EAChBmuC,EAAkBpvC,EAAMa,QAAQC,QAAQ8c,KAAKwxB,gBAC7CtkC,EAAOkZ,GAAalkB,EAAAA,cAACuvC,EAAAA,GAAiB,CAACvkC,KAAMkZ,EAAWrgB,UAAU,0BAExE,OACI7D,EAAAA,cAACiO,EAAAA,OAAMlB,OAAAC,OAAA,GAAKpJ,GACPqO,EACCq9B,EAMEtvC,EAAAA,cAAAA,EAAAA,SAAA,KACKgL,EACA0L,EAzDMxW,CAAAA,IACvB,MAAM,UAAE8E,EAAS,YAAEpB,EAAW,YAAE4rC,GAAgBtvC,EAEhD,OACIF,EAAAA,cAACiO,EAAAA,OAAMlB,OAAAC,OAAA,GAAKwiC,EAAY37B,MAAWjQ,GAC9B4rC,EAAY74B,YACb3W,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKwiC,EAAY17B,WAClB9T,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKwiC,EAAYjV,MAClBv6B,EAAAA,cAACkO,EAAAA,KAAI,CAACrK,UAAU,qBACX+qC,EAAyB1uC,GAC1BF,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKwiC,EAAYC,SAAQ,CAAE5rC,UAAU,8BACtC7D,EAAAA,cAAA,OAAK6D,UAAU,gDAAgDmB,EAAU0qC,mBACxEF,EAAYG,SAGrB3vC,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKwiC,EAAYC,SAAQ,CAAE5rC,UAAU,6BACrCmB,EAAU4qC,iBACVJ,EAAYK,YAEjB7vC,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKwiC,EAAYC,SAAQ,CAAE5rC,UAAU,oCACrCmB,EAAU8qC,gBACVN,EAAYO,WAEhBP,EAAYQ,iBACZR,EAAYzsC,QAGrB/C,EAAAA,cAACkO,EAAAA,KAAInB,OAAAC,OAAA,GAAKwiC,EAAYx4B,aACjBw4B,EAAYv4B,aACZu4B,EAAYt4B,gBA6BR+4B,CAAkB/vC,IARvBF,EAAAA,cAAAA,EAAAA,SAAA,KACKqvC,EACAhB","sources":["webpack://Msdyn365.Commerce.Online/./src/modules/navigation-menu/navigation-menu.data.ts?a484","webpack://Msdyn365.Commerce.Online/./src/modules/navigation-menu/navigation-menu.props.autogenerated.ts?edf6","webpack://Msdyn365.Commerce.Online/./src/modules/navigation-menu/navigation-menu.tsx?3e73","webpack://Msdyn365.Commerce.Online/./src/modules/navigation-menu/navigation-menu.view.tsx?ae29","webpack://Msdyn365.Commerce.Online/./src/themes/connselmer2/views/product-specification.view.tsx?7a05","webpack://Msdyn365.Commerce.Online/./src/themes/connselmer/views/product-specification.view.tsx?fa9c","webpack://Msdyn365.Commerce.Online/./src/themes/leblanc/views/product-specification.view.tsx?f7fe","webpack://Msdyn365.Commerce.Online/./src/modules/aad-generic/aad-generic.view.tsx?b418","webpack://Msdyn365.Commerce.Online/./src/modules/account-address-tile/account-address-tile.view.tsx?ac91","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance-tile/account-customer-balance-tile.view.tsx?95a8","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance/account-customer-balance.view.tsx?70d2","webpack://Msdyn365.Commerce.Online/./src/modules/account-generic-tile/account-generic-tile.view.tsx?4b58","webpack://Msdyn365.Commerce.Online/./src/modules/account-invoice-tile/account-invoice-tile.view.tsx?0a60","webpack://Msdyn365.Commerce.Online/./src/modules/account-loyalty-tile/account-loyalty-tile.view.tsx?3547","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/account-profile-edit.view.tsx?530d","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile/account-profile.view.tsx?b964","webpack://Msdyn365.Commerce.Online/./src/modules/account-welcome-tile/account-welcome-tile.view.tsx?e5e3","webpack://Msdyn365.Commerce.Online/./src/modules/account-wishlist-tile/account-wishlist-tile.view.tsx?095e","webpack://Msdyn365.Commerce.Online/./src/modules/b2b-requests-status/b2b-requests-status.view.tsx?6b7c","webpack://Msdyn365.Commerce.Online/./src/modules/b2b-requests-tile/b2b-requests-tile.view.tsx?3f4e","webpack://Msdyn365.Commerce.Online/./src/modules/loyalty-terms/loyalty-terms.view.tsx?b3e6","webpack://Msdyn365.Commerce.Online/./src/modules/organization-users-tile/organization-users-tile.view.tsx?bac2","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/password-reset.view.tsx?b341","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/sign-up.view.tsx?08eb","webpack://Msdyn365.Commerce.Online/./src/modules/checkout-billing-address/checkout-billing-address.view.tsx?b194","webpack://Msdyn365.Commerce.Online/./src/modules/bulk-purchase/bulk-purchase.view.tsx?feac","webpack://Msdyn365.Commerce.Online/./src/modules/business-partner-promotion/components/terms-paragraph.tsx?1a9a","webpack://Msdyn365.Commerce.Online/./src/modules/business-partner-promotion/business-partner-promotion.tsx?df24","webpack://Msdyn365.Commerce.Online/./src/modules/business-partner-promotion/business-partner-promotion.view.tsx?1ff2","webpack://Msdyn365.Commerce.Online/./src/modules/business-partners/business-partners.view.tsx?b34e","webpack://Msdyn365.Commerce.Online/./src/modules/cart/cart.view.tsx?d8c2","webpack://Msdyn365.Commerce.Online/./src/modules/catalog-picker/catalog-picker.view.tsx?1e13","webpack://Msdyn365.Commerce.Online/./src/modules/checkout-apple-pay/checkout-apple-pay.view.tsx?222d","webpack://Msdyn365.Commerce.Online/./src/modules/checkout-delivery-options/checkout-delivery-options.view.tsx?1e75","webpack://Msdyn365.Commerce.Online/./src/modules/checkout-express-payment-container/checkout-express-payment-container.view.tsx?4299","webpack://Msdyn365.Commerce.Online/./src/modules/checkout-loyalty/checkout-loyalty.view.tsx?b79f","webpack://Msdyn365.Commerce.Online/./src/modules/cookie-compliance/components/accept-button.tsx?8e73","webpack://Msdyn365.Commerce.Online/./src/modules/cookie-compliance/components/links.tsx?97b8","webpack://Msdyn365.Commerce.Online/./src/modules/cookie-compliance/cookie-compliance.tsx?02ac","webpack://Msdyn365.Commerce.Online/./src/modules/cookie-compliance/cookie-compliance.view.tsx?a33f","webpack://Msdyn365.Commerce.Online/./src/modules/fabrikam/views/header.view.tsx?6d84","webpack://Msdyn365.Commerce.Online/./src/modules/fabrikam/views/navigation-menu.view.tsx?bc23","webpack://Msdyn365.Commerce.Online/./src/modules/fabrikam/views/order-details.view.tsx?1ce1","webpack://Msdyn365.Commerce.Online/./src/modules/fabrikam/views/search-result-container.view.tsx?89df","webpack://Msdyn365.Commerce.Online/./src/modules/back-top-footer/back-top-footer.tsx?f47e","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/iframe/iframe.tsx?65fe","webpack://Msdyn365.Commerce.Online/./src/modules/iframe/iframe.view.tsx?a7d6","webpack://Msdyn365.Commerce.Online/./src/modules/invoice-details/invoice-details.view.tsx?3784","webpack://Msdyn365.Commerce.Online/./src/modules/invoices-list/invoices-list.view.tsx?8b51","webpack://Msdyn365.Commerce.Online/./src/modules/navigation-menu/navigation-menu.data.ts?9815","webpack://Msdyn365.Commerce.Online/./src/modules/navigation-menu/navigation-menu.tsx?2bef","webpack://Msdyn365.Commerce.Online/./src/modules/navigation-menu/navigation-menu.view.tsx?c594","webpack://Msdyn365.Commerce.Online/./src/modules/order-details/order-details.view.tsx?89b1","webpack://Msdyn365.Commerce.Online/./src/modules/order-history-with-search-and-filters/components/order-history-with-search-and-filters-view-mode-selector.component.tsx?6452","webpack://Msdyn365.Commerce.Online/./src/modules/order-lookup/order-lookup.view.tsx?b8e5","webpack://Msdyn365.Commerce.Online/./src/modules/quick-order/quick-order.view.tsx?a96d","webpack://Msdyn365.Commerce.Online/./src/modules/tab-item/tab-item.tsx?b1b8","webpack://Msdyn365.Commerce.Online/./src/modules/tab-item/tab-item.view.tsx?ee3b","webpack://Msdyn365.Commerce.Online/./src/modules/tab/tab.tsx?9ac6","webpack://Msdyn365.Commerce.Online/./src/modules/tab/tab.view.tsx?a99d","webpack://Msdyn365.Commerce.Online/./src/modules/tile-list-item/components/links.tsx?c969","webpack://Msdyn365.Commerce.Online/./src/modules/tile-list-item/tile-list-item.tsx?114a","webpack://Msdyn365.Commerce.Online/./src/modules/tile-list-item/tile-list-item.view.tsx?19a8","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/cart.view.tsx?3909","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/components/carticon.component.tsx?3c7c","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/components/promocode.component.tsx?c06b","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/content-block.view.tsx?0db4","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/footer-item.view.tsx?15be","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/components/navigation-menu-utilities.tsx?d092","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/components/navigation-menu-root-disabled.tsx?1d68","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/components/navigation-menu-root-enabled.tsx?d5b3","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/navigation-menu.view.tsx?5304","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/order-details.view.tsx?027b","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/sign-in.view.tsx?048a","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/write-review.view.tsx?c67c"],"sourcesContent":["/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { CategoryHierarchy } from '@msdyn365-commerce/commerce-entities';\r\nimport { AsyncResult } from '@msdyn365-commerce/retail-proxy';\r\n\r\nimport { ICategoryPromotionalContentData } from './navigation-menu.props.autogenerated';\r\n\r\nexport interface INavigationMenuData {\r\n categories: AsyncResult;\r\n}\r\n\r\nexport interface IMenuItemData {\r\n id?: number;\r\n linkText?: string;\r\n linkURL?: string;\r\n imageSource?: string;\r\n imageDestinationURL?: string;\r\n subMenu?: IMenuItemData[];\r\n promotionalContent?: ICategoryPromotionalContentData[];\r\n menuSource?: string;\r\n shouldOpenNewTab?: boolean;\r\n ariaLabel?: string;\r\n}\r\n\r\n/**\r\n *\r\n * Menu type index id.\r\n */\r\nexport enum MenuTypeIndexId {\r\n Cms = 1000,\r\n Retail = 5000\r\n}\r\n\r\n/**\r\n *\r\n * Menu type source.\r\n */\r\nexport enum MenuSource {\r\n Cms = 'Cms',\r\n Retail = 'Retail'\r\n}\r\n","/**\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. See License.txt in the project root for license information.\r\n * INavigationMenu contentModule Interface Properties\r\n * THIS FILE IS AUTO-GENERATED - MANUAL MODIFICATIONS WILL BE LOST\r\n */\r\n\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\n\r\nexport const enum navigationMenuSource {\r\n all = 'all',\r\n retailServerOnly = 'retailServerOnly',\r\n cmsOnly = 'cmsOnly'\r\n}\r\n\r\nexport interface INavigationMenuConfig extends Msdyn365.IModuleConfig {\r\n navigationMenuSource?: navigationMenuSource;\r\n cmsNavItems?: ICmsNavItemsData[];\r\n enableMultilevelMenu?: boolean;\r\n enabletopMenu?: boolean;\r\n menuLevelSupport?: number;\r\n rootMenuNavigation?: string;\r\n displayCategoryImage?: boolean;\r\n displayPromotionalImage?: boolean;\r\n categoryPromotionalContent?: ICategoryPromotionalContentData[];\r\n categoryImageSettings?: Msdyn365.IImageSettings;\r\n className?: string;\r\n clientRender?: boolean;\r\n}\r\n\r\nexport interface INavigationMenuResources {\r\n menuAriaLabel: string;\r\n backButtonAriaLabel: string;\r\n allCategoryMenuText: string;\r\n}\r\n\r\nexport interface ICmsNavItemsData {\r\n linkText?: string;\r\n linkUrl?: Msdyn365.ILinkData;\r\n image?: Msdyn365.IImageData;\r\n imageLink?: Msdyn365.ILinkData;\r\n ariaLabel?: string;\r\n openInNewTab?: boolean;\r\n subMenus?: ISubMenusData[];\r\n}\r\n\r\nexport interface ICategoryPromotionalContentData {\r\n categoryName?: string;\r\n image: Msdyn365.IImageData;\r\n text?: string;\r\n linkUrl: Msdyn365.ILinkData;\r\n}\r\n\r\nexport interface ISubMenusData {\r\n linkText?: string;\r\n linkUrl: Msdyn365.ILinkData;\r\n ariaLabel?: string;\r\n image?: Msdyn365.IImageData;\r\n imageLink?: Msdyn365.ILinkData;\r\n subMenus?: ISubMenusData[];\r\n}\r\n\r\nexport interface ISubMenusData {\r\n linkText?: string;\r\n linkUrl: Msdyn365.ILinkData;\r\n ariaLabel?: string;\r\n image?: Msdyn365.IImageData;\r\n imageLink?: Msdyn365.ILinkData;\r\n}\r\n\r\nexport interface INavigationMenuProps extends Msdyn365.IModule {\r\n resources: INavigationMenuResources;\r\n config: INavigationMenuConfig;\r\n}\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n *\r\n * Commented out IActionContext and getCategoryUrl due to removal of the \"All\" node in hierarchy navigation\r\n */\r\n\r\nimport { CategoryHierarchy } from '@msdyn365-commerce/commerce-entities';\r\nimport MsDyn365, { /*IActionContext,*/ IGridSettings, IImageSettings, isEmptyOrNullObject } from '@msdyn365-commerce/core';\r\nimport { TextValueTranslation } from '@msdyn365-commerce/retail-proxy';\r\nimport { ArrayExtensions/*, getCategoryUrl*/ } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { addThrottledEvent, IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport { computed, observable } from 'mobx';\r\nimport * as React from 'react';\r\nimport { IMenuItemData, INavigationMenuData, MenuSource, MenuTypeIndexId } from './navigation-menu.data';\r\nimport { ICmsNavItemsData, INavigationMenuProps, ISubMenusData, navigationMenuSource } from './navigation-menu.props.autogenerated';\r\n\r\nexport interface INavigationMenuViewProps extends INavigationMenuProps {\r\n\tclassName: string;\r\n\tmenuItemData: IMenuItemData[];\r\n\tNavigation: IModuleProps;\r\n\tMenuList: INodeProps;\r\n\tListItem: INodeProps;\r\n\tLink: INodeProps;\r\n\tButton: INodeProps;\r\n\tSpan: INodeProps;\r\n\tImageContainer: INodeProps;\r\n\tMobileDescriptionContainer: INodeProps;\r\n\tMobileBackButton: INodeProps;\r\n\tMobileDescriptionLabel: INodeProps;\r\n\timageSettings: IImageSettings;\r\n\tgridSettings: IGridSettings;\r\n\tisMobileView: boolean;\r\n\tDivContainer?: INodeProps;\r\n\tImageDivContainer?: INodeProps;\r\n\tshowCategoryImage?: boolean;\r\n\tshowPromotionalContent?: boolean;\r\n}\r\n\r\nexport type GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\r\n\r\nexport interface INavigationMenuState {\r\n\tisMobile: boolean;\r\n}\r\n\r\n/**\r\n *\r\n * NavigationMenu component.\r\n * @extends {React.PureComponent>}\r\n */\r\nclass NavigationMenu extends React.PureComponent, INavigationMenuState> {\r\n\tprivate static CMSItemIdInit: number = MenuTypeIndexId.Cms;\r\n\tprivate static RSItemIdInit: number = MenuTypeIndexId.Retail;\r\n\tprivate resizeThrottledEventHandler?: (event: Event) => void;\r\n\tprivate menuItemList: IMenuItemData[];\r\n\tprivate isRetail: boolean = true;\r\n\tprivate isCMS: boolean = true;\r\n\r\n\t@observable\r\n\tprivate viewport: GridSize;\r\n\r\n\tpublic static getFriendlyName(locale: string, nameTranslations?: TextValueTranslation[]): string | undefined {\r\n\t\tlet nameTranslation: TextValueTranslation | undefined;\r\n\t\tif (locale && nameTranslations && nameTranslations.length > 0) {\r\n\t\t\tnameTranslation = nameTranslations.find(item => item.Language!.toLowerCase() === locale.toLowerCase());\r\n\t\t}\r\n\t\treturn nameTranslation && nameTranslation.Text;\r\n\t}\r\n\r\n\tconstructor(props: INavigationMenuProps) {\r\n\t\tsuper(props);\r\n\t\tthis._updateViewport = this._updateViewport.bind(this);\r\n\t\tthis.viewport =\tprops.context.request && props.context.request.device && props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\r\n\t\tthis._setNavigationSource(this.props.config && this.props.config.navigationMenuSource);\r\n\t\tthis.state = { isMobile: this.isMobile };\r\n\t\tthis.menuItemList = [];\r\n\t}\r\n\r\n\t@computed get isMobile(): boolean {\r\n\t\treturn this.viewport === 'xs' || this.viewport === 'sm' || this.viewport === 'md';\r\n\t}\r\n\r\n\tpublic componentDidMount(): void {\r\n\t\tif (MsDyn365.isBrowser) {\r\n\t\t\tthis.resizeThrottledEventHandler = addThrottledEvent(window, 'resize', this._updateViewport as EventListener);\r\n\t\t}\r\n\t\tthis._updateViewport();\r\n\t}\r\n\r\n\tpublic componentWillUnmount(): void {\r\n\t\tif (MsDyn365.isBrowser) {\r\n\t\t\twindow.removeEventListener('resize', this.resizeThrottledEventHandler!, false);\r\n\t\t}\r\n\t}\r\n\r\n\tpublic render(): JSX.Element | null {\r\n\t\tthis.menuItemList = this._mapData();\r\n\t\tif (isEmptyOrNullObject(this.props.data)) {\r\n\t\t\tthis.props.telemetry.error('Navigatiomenu returned null');\r\n\t\t\treturn null;\r\n\t\t}\r\n\t\tconst defaultImageSettings: IImageSettings = {\r\n\t\t\tviewports: {\r\n\t\t\t\txs: { q: 'w=224&h=300&m=6', w: 0, h: 0 },\r\n\t\t\t\txl: { q: 'w=224&h=300&m=6', w: 0, h: 0 }\r\n\t\t\t},\r\n\t\t\tlazyload: true\r\n\t\t};\r\n\r\n\t\tconst viewProps = {\r\n\t\t\t...this.props,\r\n\t\t\t...this.state,\r\n\t\t\timageSettings: defaultImageSettings,\r\n\t\t\tgridSettings: this.props.context.request.gridSettings,\r\n\t\t\tNavigation: {\r\n\t\t\t\tmoduleProps: this.props,\r\n\t\t\t\tclassName: classnames('ms-nav', this.props.config.className, this.state.isMobile ? 'mobile-vp' : 'desktop-vp'),\r\n\t\t\t\ttag: 'nav',\r\n\t\t\t\trole: this.isMobile ? 'listbox' : 'navigation'\r\n\t\t\t},\r\n\t\t\tMenuList: {\r\n\t\t\t\tclassName: 'ms-nav__list',\r\n\t\t\t\ttag: 'ul',\r\n\t\t\t\trole: this.isMobile ? 'listbox' : 'menu'\r\n\t\t\t},\r\n\t\t\tListItem: {\r\n\t\t\t\tclassName: 'ms-nav__list__item',\r\n\t\t\t\trole: 'presentation',\r\n\t\t\t\ttag: 'li'\r\n\t\t\t},\r\n\t\t\tshowCategoryImage: this.props.config.displayCategoryImage ?? false,\r\n\t\t\tshowPromotionalContent: this.props.config.displayPromotionalImage ?? false,\r\n\t\t\tLink: {\r\n\t\t\t\ttag: 'a',\r\n\t\t\t\tclassName: 'ms-nav__list__item__link',\r\n\t\t\t\trole: this.isMobile ? 'option' : 'menuitem'\r\n\t\t\t},\r\n\t\t\tDivContainer: {\r\n\t\t\t\ttag: 'div',\r\n\t\t\t\tclassName: 'ms-nav__feature'\r\n\t\t\t},\r\n\t\t\tImageDivContainer: {\r\n\t\t\t\ttag: 'div',\r\n\t\t\t\tclassName: 'category-image',\r\n\t\t\t\trole: 'tabpanel'\r\n\t\t\t},\r\n\t\t\tButton: {\r\n\t\t\t\tclassName: 'ms-nav__list__item__button',\r\n\t\t\t\ttag: 'button',\r\n\t\t\t\trole: this.isMobile ? 'option' : 'menuitem',\r\n\t\t\t\tonClick: this.props\r\n\t\t\t},\r\n\t\t\tImageContainer: {\r\n\t\t\t\tclassName: 'ms-nav__list__item__image'\r\n\t\t\t},\r\n\t\t\tSpan: {\r\n\t\t\t\tclassName: 'ms-nav__list__item__span',\r\n\t\t\t\ttag: 'span'\r\n\t\t\t},\r\n\t\t\tMobileDescriptionContainer: {\r\n\t\t\t\tclassName: 'ms-nav__list__mobile__container'\r\n\t\t\t},\r\n\t\t\tMobileBackButton: {\r\n\t\t\t\tclassName: 'ms-nav__list__mobile__container__button',\r\n\t\t\t\ttag: 'button',\r\n\t\t\t\t'aria-label': this.props.resources.backButtonAriaLabel,\r\n\t\t\t\tonClick: this.props\r\n\t\t\t},\r\n\t\t\tMobileDescriptionLabel: {\r\n\t\t\t\tclassName: 'ms-nav__list__mobile__container__span',\r\n\t\t\t\ttag: 'span'\r\n\t\t\t},\r\n\t\t\tisMobileView: this.state.isMobile,\r\n\t\t\tmenuItemData: this.menuItemList,\r\n\t\t\tclassName: classnames('ms-nav', this.props.config.className)\r\n\t\t};\r\n\t\treturn this.props.renderView(viewProps) as React.ReactElement;\r\n\t}\r\n\r\n\tprivate _mapData(): IMenuItemData[] {\r\n\t\tconst { data, config } = this.props;\r\n\t\tconst mergedData: IMenuItemData[] = [];\r\n\t\tif (this.isRetail && data && data.categories && data.categories.result && data.categories.result.length > 0) {\r\n\t\t\tdata.categories.result.map((item: CategoryHierarchy, index) =>\r\n\t\t\t\tmergedData.push(this._constructMenuItemData(item, undefined, true, index, true))\r\n\t\t\t);\r\n\t\t}\r\n\t\tif (this.isCMS && config.cmsNavItems && config.cmsNavItems.length > 0) {\r\n\t\t\tconfig.cmsNavItems.map((item: ICmsNavItemsData, idx: number) =>\r\n\t\t\t\tmergedData.push(this._constructMenuItemData(undefined, item, false, idx + 1))\r\n\t\t\t);\r\n\t\t}\r\n\t\treturn this._constructTopMenuItemData(mergedData);\r\n\t}\r\n\r\n\tprivate _constructTopMenuItemData(mergedData: IMenuItemData[]): IMenuItemData[] {\r\n\t\tconst enableTopLevelMenu = this.props.config.enabletopMenu ?? false;\r\n\t\tif (!enableTopLevelMenu) {\r\n\t\t\treturn mergedData;\r\n\t\t}\r\n\t\tconst mergedRootMenuData: IMenuItemData[] = [];\r\n\t\tconst topMenu = {\r\n\t\t\tid: 1,\r\n\t\t\tlinkText: this.props.config.rootMenuNavigation ?? '...',\r\n\t\t\tlinkURL: '#',\r\n\t\t\timageSource: undefined,\r\n\t\t\tsubMenu: mergedData\r\n\t\t} as IMenuItemData;\r\n\t\tmergedRootMenuData.push(topMenu);\r\n\r\n\t\treturn mergedRootMenuData;\r\n\t}\r\n\r\n\tprivate _constructMenuItemData(\r\n\t\tretailItem?: CategoryHierarchy,\r\n\t\tcmsItem?: ICmsNavItemsData,\r\n\t\tisRetail?: boolean,\r\n\t\tidx?: number,\r\n\t\taddedAllMenu?: boolean\r\n\t): IMenuItemData {\r\n\t\tconst locale =\r\n\t\t\tthis.props.context && this.props.context.request && this.props.context.request.locale\r\n\t\t\t\t? this.props.context.request.locale\r\n\t\t\t\t: 'en-us';\r\n\t\tconst { categoryPromotionalContent } = this.props.config;\r\n\t\tconst cmsItemText = (cmsItem && cmsItem.linkText) || '';\r\n\t\tconst { menuAriaLabel } = this.props.resources;\r\n\r\n\t\t// Filter category promotional data based on category name\r\n\t\tconst promotionalData =\r\n\t\t\tretailItem &&\r\n\t\t\tcategoryPromotionalContent?.filter(promoItem => promoItem.categoryName?.toLowerCase() === retailItem?.Name?.toLowerCase());\r\n\r\n\t\t// First check if image is available from promotional data else read from retail server\r\n\t\tlet imageSource: string = 'empty';\r\n\t\tif (ArrayExtensions.hasElements(retailItem?.Images) && retailItem!.Images[0].Uri) {\r\n\t\t\timageSource = retailItem!.Images[0].Uri;\r\n\t\t}\r\n\t\tif (isRetail) {\r\n\t\t\t// Additional Link code explodes && drops first element (removes root node from hierarchy)\r\n\t\t\treturn {\r\n\t\t\t\tid: NavigationMenu.RSItemIdInit++,\r\n\t\t\t\tlinkText: NavigationMenu.getFriendlyName(locale, retailItem?.NameTranslations) ?? '',\r\n\t\t\t\tlinkURL: `/${ retailItem && retailItem.Url?.substring(1).split('/').slice(1).join('/')}`,\r\n\t\t\t\timageSource,\r\n\t\t\t\tsubMenu: this._getNestedChildren(retailItem, imageSource, addedAllMenu),\r\n\t\t\t\tpromotionalContent: this.props.config.displayPromotionalImage && promotionalData,\r\n\t\t\t\tmenuSource: MenuSource.Retail,\r\n\t\t\t\tariaLabel: `${NavigationMenu.getFriendlyName(locale, retailItem?.NameTranslations) ?? ''} ${menuAriaLabel}`\r\n\t\t\t} as IMenuItemData;\r\n\t\t}\r\n\t\treturn {\r\n\t\t\tid: NavigationMenu.CMSItemIdInit++,\r\n\t\t\tlinkText: cmsItemText,\r\n\t\t\tlinkURL: (cmsItem && cmsItem.linkUrl && cmsItem.linkUrl.destinationUrl) || '',\r\n\t\t\timageDestinationURL: (cmsItem && cmsItem.imageLink && cmsItem.imageLink.destinationUrl) || '',\r\n\t\t\timageSource: (cmsItem && cmsItem.image && cmsItem.image.src) || '',\r\n\t\t\tsubMenu: this._getCMSNestedChildren(cmsItem),\r\n\t\t\tmenuSource: MenuSource.Cms,\r\n\t\t\tshouldOpenNewTab: cmsItem?.openInNewTab,\r\n\t\t\tariaLabel: `${cmsItemText} ${menuAriaLabel}`\r\n\t\t} as IMenuItemData;\r\n\t}\r\n\r\n\tprivate _getNestedChildren(category?: CategoryHierarchy, imageSourceUrl?: string, addedAllMenu: boolean = false): IMenuItemData[] {\r\n\t\tconst nestedChildren: IMenuItemData[] = [];\r\n\t\tif (!category || !category.Children || category.Children.length === 0){\r\n\t\t\treturn [];\r\n\t\t}\r\n\t\t/* /Removed to hide the root \"ALL\" items, also fixed to remove the bad node in case we decide to bring these back.\r\n\t\tif (!this.props.config.enabletopMenu && addedAllMenu){\r\n\t\t\tconst linkURL = getCategoryUrl(category, (this.props.context as unknown) as IActionContext, {});\r\n\t\t\tnestedChildren.push({\r\n\t\t\t\tlinkText: this.props.resources.allCategoryMenuText,\r\n\t\t\t\timageSource: imageSourceUrl,\r\n\t\t\t\tlinkURL: `/${ linkURL?.substring(1).split('/').slice(1).join('/')}`\r\n\t\t\t});\r\n\t\t}*/\r\n\t\tcategory.Children.map((item: CategoryHierarchy, index) => {\r\n\t\t\tnestedChildren.push(this._constructMenuItemData(item, undefined, true, index, false));\r\n\t\t});\r\n\t\treturn nestedChildren;\r\n\t}\r\n\r\n\tprivate _getCMSNestedChildren(category?: ICmsNavItemsData): IMenuItemData[] {\r\n\t\tconst nestedChildren: IMenuItemData[] = [];\r\n\r\n\t\tif (!category || !category.subMenus || category.subMenus.length === 0) {\r\n\t\t\treturn [];\r\n\t\t}\r\n\r\n\t\tcategory.subMenus.map((item: ISubMenusData, idx: number) => {\r\n\t\t\tnestedChildren.push(this._constructMenuItemData(undefined, item, false, idx));\r\n\t\t});\r\n\t\treturn nestedChildren;\r\n\t}\r\n\r\n\tprivate readonly _setNavigationSource = (sourceType?: navigationMenuSource): void => {\r\n\t\tswitch (sourceType) {\r\n\t\t\tcase navigationMenuSource.retailServerOnly:\r\n\t\t\t\tthis.isRetail = true;\r\n\t\t\t\tthis.isCMS = false;\r\n\t\t\t\tbreak;\r\n\t\t\tcase navigationMenuSource.cmsOnly:\r\n\t\t\t\tthis.isRetail = false;\r\n\t\t\t\tthis.isCMS = true;\r\n\t\t\t\tbreak;\r\n\t\t\tcase navigationMenuSource.all:\r\n\t\t\t\tthis.isRetail = true;\r\n\t\t\t\tthis.isCMS = true;\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t}\r\n\t};\r\n\r\n\tprivate _updateViewport(): void {\r\n\t\tthis.viewport = this._getViewport();\r\n\t\tthis.setState({ isMobile: this.isMobile });\r\n\t}\r\n\r\n\tprivate _getViewport(): GridSize {\r\n\t\tconst { context } = this.props;\r\n\r\n\t\t// Always render in mobile viewport on a mobile device\r\n\t\tif (context.request && context.request.device && context.request.device.Type === 'Mobile') {\r\n\t\t\treturn 'xs';\r\n\t\t}\r\n\r\n\t\tif (MsDyn365.isBrowser && window.innerWidth) {\r\n\t\t\tconst gridSettings = context.request.gridSettings;\r\n\t\t\tif (gridSettings) {\r\n\t\t\t\tif (gridSettings.xs && window.innerWidth <= gridSettings.xs.w) {\r\n\t\t\t\t\treturn 'xs';\r\n\t\t\t\t} else if (gridSettings.sm && window.innerWidth <= gridSettings.sm.w) {\r\n\t\t\t\t\treturn 'sm';\r\n\t\t\t\t} else if (gridSettings.md && window.innerWidth <= gridSettings.md.w) {\r\n\t\t\t\t\treturn 'md';\r\n\t\t\t\t} else if (gridSettings.lg && window.innerWidth <= gridSettings.lg.w) {\r\n\t\t\t\t\treturn 'lg';\r\n\t\t\t\t}\r\n\t\t\t\treturn 'xl';\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn 'xs';\r\n\t}\r\n}\r\n\r\nexport default NavigationMenu;\r\n","import MsDyn365, { IImageData, IImageSettings, Image } from '@msdyn365-commerce/core';\r\nimport { ArrayExtensions, generateImageUrl } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { getPayloadObject, getTelemetryAttributes, getTelemetryObject, IPayLoad, ITelemetryContent, Module, Node, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\nimport { INavigationMenuViewProps } from './navigation-menu';\r\nimport { IMenuItemData } from './navigation-menu.data';\r\n\r\ninterface INavigationState {\r\n\tparentMenu?: number;\r\n\tactiveMenu?: number;\r\n\tcategoryImage?: IImageData[] | null;\r\n\tmobileViewLabelText?: string;\r\n\tcategoryImageAltText: string;\r\n}\r\n\r\n/**\r\n * NavigationMenuView component.\r\n * @extends {React.PureComponent}\r\n */\r\nexport class NavigationMenuView extends React.PureComponent {\r\n\tprivate static isBackTrack: boolean = false;\r\n\tprivate currentLevel: number = 1;\r\n\tprivate readonly sm_text_count = 30;\r\n\tprivate readonly menuNode: React.RefObject;\r\n\tprivate readonly menuItemRef: React.RefObject;\r\n\tprivate readonly telemetryContent: ITelemetryContent;\r\n\tprivate readonly payLoad: IPayLoad;\r\n\r\n\tconstructor(props: INavigationMenuViewProps) {\r\n\t\tsuper(props);\r\n\t\tthis.menuNode = React.createRef();\r\n\t\tthis.menuItemRef = React.createRef();\r\n\t\tthis.state = { activeMenu: undefined, mobileViewLabelText: '', parentMenu: undefined, categoryImageAltText: '' };\r\n\t\tthis._closeSubmenu = this._closeSubmenu.bind(this);\r\n\t\tthis.telemetryContent = getTelemetryObject(\r\n\t\t\tthis.props.context.request.telemetryPageName!,\r\n\t\t\tthis.props.friendlyName,\r\n\t\t\tthis.props.telemetry\r\n\t\t);\r\n\t\tthis.payLoad = getPayloadObject('click', this.telemetryContent, '', '');\r\n\t}\r\n\r\n\tpublic componentDidMount(): void {\r\n\t\tif (MsDyn365.isBrowser) {\r\n\t\t\tdocument.body.addEventListener('mousedown', this._handleClickOutside);\r\n\t\t\tdocument.body.addEventListener('focusout', this._handleFocusOutside);\r\n\t\t}\r\n\t}\r\n\r\n\tpublic componentDidUpdate(): void {\r\n\t\tif (this.menuItemRef.current?.children[0] && this.props.isMobileView) {\r\n\t\t\t(this.menuItemRef.current.children[0] as HTMLElement).focus();\r\n\t\t}\r\n\t}\r\n\r\n\tpublic componentWillUnmount(): void {\r\n\t\tif (MsDyn365.isBrowser) {\r\n\t\t\tdocument.body.removeEventListener('mousedown', this._handleClickOutside, false);\r\n\t\t\tdocument.body.removeEventListener('focusout', this._handleFocusOutside, false);\r\n\t\t}\r\n\t}\r\n\tpublic render(): JSX.Element | null {\r\n\t\tconst { isMobileView, MenuList, MobileBackButton, MobileDescriptionContainer, MobileDescriptionLabel, Navigation } = this.props;\r\n\t\tthis.currentLevel = 1;\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{isMobileView && this.state.activeMenu !== undefined && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{this.state.mobileViewLabelText}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t{this._renderDisplay()}\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n\tprivate _renderDisplay(): JSX.Element[] {\r\n\t\tconst { ListItem, menuItemData, isMobileView } = this.props;\r\n\t\tconst { activeMenu } = this.state;\r\n\t\tconst menuItemList: JSX.Element[] = [];\r\n\t\tif (isMobileView && activeMenu !== undefined && menuItemData.length > 0) {\r\n\t\t\tlet menuItem: IMenuItemData = {};\r\n\t\t\tfor (const menuItemDatum of menuItemData) {\r\n\t\t\t\tif (menuItemDatum && menuItemDatum.id === activeMenu) {\r\n\t\t\t\t\tmenuItem = menuItemDatum;\r\n\t\t\t\t\t!NavigationMenuView.isBackTrack\r\n\t\t\t\t\t\t? this.setState({ parentMenu: undefined })\r\n\t\t\t\t\t\t: this.setState({ parentMenu: undefined, mobileViewLabelText: menuItemDatum.linkText });\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t\tmenuItem = this._getFromSubMenu(menuItemDatum) as IMenuItemData;\r\n\t\t\t\tif (menuItem && menuItem.id === activeMenu) {\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tmenuItem && menuItemList.push(\r\n\t\t\t\t\r\n\t\t\t\t\t{' '}\r\n\t\t\t\t\t{this._createMenuItemList(menuItem)}{' '}\r\n\t\t\t\t\r\n\t\t\t);\r\n\t\t} else {\r\n\t\t\tmenuItemData.forEach((item: IMenuItemData, index: number) => {\r\n\t\t\t\tmenuItemList.push(\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{this._createMenuItemList(item)}\r\n\t\t\t\t\t\r\n\t\t\t\t);\r\n\t\t\t});\r\n\t\t}\r\n\t\treturn menuItemList;\r\n\t}\r\n\r\n\tprivate _getFromSubMenu(item?: IMenuItemData): IMenuItemData | null {\r\n\t\tconst subMenus:IMenuItemData[]|undefined = item && item.subMenu;\r\n\t\tif (subMenus && subMenus.length > 0) {\r\n\t\t\tfor (let i:number = 0; i <= subMenus.length - 1; i++) {\r\n\t\t\t\tif (subMenus[i].id === this.state.activeMenu) {\r\n\t\t\t\t\t!NavigationMenuView.isBackTrack\r\n\t\t\t\t\t\t? this.setState({ parentMenu: item?.id })\r\n\t\t\t\t\t\t: this.setState({ parentMenu: item && item.id, mobileViewLabelText: subMenus[i].linkText });\r\n\t\t\t\t\treturn subMenus[i];\r\n\t\t\t\t}\r\n\t\t\t\tconst found:IMenuItemData|null = this._getFromSubMenu(subMenus[i]);\r\n\t\t\t\tif (found) {\r\n\t\t\t\t\treturn found;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.props.context.telemetry.error('Submenu content is empty, module wont render.');\r\n\t\treturn null;\r\n\t}\r\n\r\n\tprivate _createMenuItemList(menuItemData: IMenuItemData): JSX.Element | null {\r\n\t\tif(menuItemData){\r\n\t\t\tif (menuItemData.subMenu && menuItemData.subMenu.length > 0) {\r\n\t\t\t\tif (this.props.isMobileView && this.state.activeMenu !== undefined) {\r\n\t\t\t\t\treturn this._renderSubMenu(menuItemData.subMenu, menuItemData.id, false);\r\n\t\t\t\t}\r\n\t\t\t\treturn (\r\n\t\t\t\t\t<>\r\n\t\t\t\t\t\t{this._renderButtonMenuItem(menuItemData)}\r\n\t\t\t\t\t\t{this._renderSubMenu(menuItemData.subMenu, menuItemData.id, false)}\r\n\t\t\t\t\t\r\n\t\t\t\t);\r\n\t\t\t} else if (menuItemData.linkText && menuItemData.linkURL && menuItemData.linkURL.length > 0) {\r\n\t\t\t\treturn this._renderLinkMenuItem(menuItemData, menuItemData.id, false, true);\r\n\t\t\t} else if (menuItemData.linkText && !menuItemData.linkURL) {\r\n\t\t\t\treturn this._renderSpanMenuItem(menuItemData, menuItemData.id, true);\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.props.context.telemetry.error('Navigation menu content is empty, module wont render.');\r\n\t\treturn null;\r\n\t}\r\n\r\n\tprivate _renderSubMenu(subMenus?: IMenuItemData[], activeMenu?: number, IsSubMenu?: boolean): JSX.Element | null {\r\n\t\tconst { isMobileView, ListItem } = this.props;\r\n\t\tconst enableMultiSupportMenu = this.props.config.enableMultilevelMenu || false;\r\n\t\tconst multiLevelSupportedMenu = this.props.config.menuLevelSupport || 3;\r\n\r\n\t\tif (activeMenu && this.state.activeMenu !== activeMenu) {\r\n\t\t\tthis.props.context.telemetry.error('Navigation Active menu content is empty, module wont render.');\r\n\t\t\treturn null;\r\n\t\t}\r\n\t\tif (!subMenus || subMenus.length === 0) {\r\n\t\t\tthis.props.context.telemetry.error('Navigation Submenu content is empty, module wont render.');\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\tlet levelClassName: string = '';\r\n\t\tconst menuOptions = subMenus && subMenus.map((option: IMenuItemData, idx: number) => {\r\n\t\t\tconst hasOptions = option.subMenu && option.subMenu.length > 0;\r\n\t\t\tlet menuItem: JSX.Element | null;\r\n\t\t\tif (hasOptions && isMobileView) {\r\n\t\t\t\tmenuItem = this._renderButtonMenuItem(option, activeMenu, idx);\r\n\t\t\t} else {\r\n\t\t\t\tmenuItem = option.linkURL ? this._renderLinkMenuItem(option, idx) : this._renderSpanMenuItem(option);\r\n\t\t\t}\r\n\t\t\tlet subMenu;\r\n\t\t\tconst haveSubmenu = hasOptions && enableMultiSupportMenu && this.currentLevel <= Math.round(multiLevelSupportedMenu) - 1;\r\n\t\t\tif (haveSubmenu) {\r\n\t\t\t\tthis.currentLevel++;\r\n\t\t\t\tlevelClassName = enableMultiSupportMenu ? `level-${this.currentLevel.toString()}` : '';\r\n\t\t\t\tsubMenu = this._renderSubMenu(option.subMenu, isMobileView ? option.id : undefined, true);\r\n\t\t\t}\r\n\t\t\treturn (\r\n\t\t\t\t\r\n\t\t\t\t\t{menuItem}\r\n\t\t\t\t\t{subMenu}\r\n\t\t\t\t\r\n\t\t\t);\r\n\t\t});\r\n\t\treturn this._renderMenu(levelClassName, menuOptions, activeMenu, IsSubMenu);\r\n\t}\r\n\r\n\tprivate _renderButtonMenuItem(option: IMenuItemData, activeMenu?: number, index?: number): JSX.Element | null {\r\n\t\tconst { Button } = this.props;\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t{option.linkText}\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n\r\n\tprivate _renderLinkMenuItem(option: IMenuItemData, index?: number, hoverEffect: boolean = true, isParent: boolean = false): JSX.Element | null {\r\n\t\tconst { Link } = this.props;\r\n\t\tconst linkText = option.linkText ? option.linkText : '';\r\n\t\tconst imagesource = option.imageSource ? option.imageSource : '';\r\n\t\tthis.payLoad.contentAction.etext = linkText;\r\n\t\tconst attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\r\n\t\tconst className = (linkText.length > this.sm_text_count) ? 'ms-nav__list__item__link sm_txt' : 'ms-nav__list__item__link';\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t{option.linkText}\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n\r\n\tprivate _renderPromotionalLink(linkText?: string, linkUrl?: string): JSX.Element | null {\r\n\t\tconst { Link } = this.props;\r\n\t\tthis.payLoad.contentAction.etext = linkText;\r\n\t\tconst attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\r\n\t\tif (linkText && linkUrl) {\r\n\t\t\treturn (\r\n\t\t\t\t\r\n\t\t\t\t\t{linkText}\r\n\t\t\t\t\r\n\t\t\t);\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\tprivate _renderSpanMenuItem(option: IMenuItemData, index?: number, isParent: boolean = false): JSX.Element | null {\r\n\t\tconst { Span } = this.props;\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t{option.linkText}\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n\r\n\tprivate _renderMenu(level: string, menuOptions: JSX.Element[], currentItem?: number, submenu?: boolean): JSX.Element | null {\r\n\t\tconst { DivContainer, MenuList, ImageDivContainer, showCategoryImage, showPromotionalContent, isMobileView } = this.props;\r\n\t\tconst categoryImageDisplay =\r\n\t\t\t!isMobileView &&\r\n\t\t\t(showCategoryImage || showPromotionalContent) &&\r\n\t\t\t!ArrayExtensions.hasElements(this.state.categoryImage) &&\r\n\t\t\t!submenu;\r\n\t\tconst promotionalContentDisplay =\r\n\t\t\t!isMobileView && showPromotionalContent && ArrayExtensions.hasElements(this.state.categoryImage) && !submenu;\r\n\t\tconst DivContainerClass = `${this.currentLevel > 2 || categoryImageDisplay ? DivContainer!.className : 'ms-nav__dropped' } ${ level}`;\r\n\t\tthis.currentLevel = 1;\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t 2 && 'navmenu-multi-level'\r\n\t\t\t\t\t)}\r\n\t\t\t\t>\r\n\t\t\t\t\t{menuOptions}\r\n\t\t\t\t\r\n\t\t\t\t{categoryImageDisplay && this.state.categoryImage && this.state.categoryImage.map(item => (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{this.state.categoryImage && this._getCategoryImage(item)}\r\n\t\t\t\t\t\t{promotionalContentDisplay && this._renderPromotionalLink(item.altText, item.additionalProperties?.linkUrl)}\r\n\t\t\t\t\t\r\n\t\t\t\t))}\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n\r\n\tprivate readonly _updateCategoryImage = (categoryImageSrc: string, option: IMenuItemData) => () => {\r\n\t\tconst linkText = option && option.linkText ? option.linkText : '';\r\n\t\tconst promotionalImage: IImageData[] = [{ src: categoryImageSrc, altText: linkText }];\r\n\r\n\t\t// Read category and promotional image in one array\r\n\t\tif (ArrayExtensions.hasElements(option.promotionalContent)) {\r\n\t\t\toption.promotionalContent.map(item => {\r\n\t\t\t\tif (item && item.image) {\r\n\t\t\t\t\tconst imageSrc = item.image.src;\r\n\t\t\t\t\tconst promotionalItemImageSettings = item.image.imageSettings;\r\n\t\t\t\t\tpromotionalImage.push({\r\n\t\t\t\t\t\tsrc: imageSrc,\r\n\t\t\t\t\t\taltText: item.text,\r\n\t\t\t\t\t\timageSettings: promotionalItemImageSettings,\r\n\t\t\t\t\t\tadditionalProperties: { linkUrl: item.linkUrl.destinationUrl }\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\tthis.setState({\r\n\t\t\tcategoryImage: promotionalImage.length > 0 ? promotionalImage : [{ src: 'empty' }],\r\n\t\t\tcategoryImageAltText: linkText\r\n\t\t});\r\n\t};\r\n\r\n\tprivate readonly _handleDropdownToggle = (data: IMenuItemData, parentId?: number) => () => {\r\n\t\tif (!this.props.isMobileView) {\r\n\t\t\tthis.setState({\r\n\t\t\t\tactiveMenu: this.state.activeMenu && this.state.activeMenu === data.id! ? undefined : data.id!,\r\n\t\t\t\tparentMenu: parentId\r\n\t\t\t});\r\n\t\t\tif (this.props.showCategoryImage) {\r\n\t\t\t\tthis._updateCategoryImage(data.imageSource!, data)();\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tNavigationMenuView.isBackTrack = false;\r\n\t\t\tthis.setState({\r\n\t\t\t\tactiveMenu: data.id,\r\n\t\t\t\tmobileViewLabelText: data.linkText!,\r\n\t\t\t\tparentMenu: parentId\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n\r\n\tprivate readonly _handleGoBack = () => () => {\r\n\t\tNavigationMenuView.isBackTrack = true;\r\n\t\tthis.setState({ activeMenu: this.state.parentMenu });\r\n\t};\r\n\r\n\t/**\r\n\t * Method to handle click outside of menu.\r\n\t * @param event -HTML event.\r\n\t */\r\n\tprivate readonly _handleClickOutside = (event: MouseEvent) => {\r\n\t\tif (this.menuNode.current && !this.menuNode.current.contains(event.target as Node)) {\r\n\t\t\tthis.setState({activeMenu: undefined, mobileViewLabelText: '', categoryImage: null\t});\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Method to handle click outside of menu.\r\n\t * @param event -HTML event.\r\n\t */\r\n\tprivate readonly _handleFocusOutside = (event: FocusEvent) => {\r\n\t\tif (this.menuNode.current && !this.menuNode.current.contains(event.relatedTarget as Node)) {\r\n\t\t\tthis._closeSubmenu();\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Checks to assign a ref for focus.\r\n\t * @param index -Sub menu list index.\r\n\t * @param mobileViewLabelText -Parent user clicked Sub menu list.\r\n\t * @param optionLinkText -Sub menu list.\r\n\t * @returns Ref.\r\n\t */\r\n\tprivate readonly _shouldAddFocusMenuRef = (index: number, mobileViewLabelText?: string, optionLinkText?: string) => {\r\n\t\tif(!NavigationMenuView.isBackTrack && index === 0){\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\tif(!optionLinkText || !mobileViewLabelText){\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\treturn mobileViewLabelText === optionLinkText;\r\n\t};\r\n\r\n\tprivate _closeSubmenu(): void {\r\n\t\tif (!this.props.isMobileView) {\r\n\t\t\tthis.setState({ activeMenu: undefined, categoryImage: null, mobileViewLabelText: '' });\r\n\t\t}\r\n\t}\r\n\r\n\tprivate readonly _getCategoryImage = (categoryImage?: IImageData): React.ReactNode | null => {\r\n\t\tif (!categoryImage || !categoryImage.src) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\tconst categoryImageUrl = generateImageUrl(`${categoryImage.src}`, this.props.context.actionContext.requestContext.apiSettings);\r\n\t\tconst defaultImageSettings: IImageSettings = {\r\n\t\t\tviewports: {\r\n\t\t\t\txs: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\r\n\t\t\t\tsm: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\r\n\t\t\t\tmd: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\r\n\t\t\t\tlg: { q: 'w=300&h=250&m=8', w: 0, h: 0 }\r\n\t\t\t},\r\n\t\t\tlazyload: true\r\n\t\t};\r\n\t\tif (categoryImageUrl !== undefined) {\r\n\t\t\treturn (\r\n\t\t\t\t\r\n\t\t\t);\r\n\t\t}\r\n\t\treturn null;\r\n\t};\r\n}\r\n\r\nexport default NavigationMenuView;","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport { ArrayExtensions, ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IProductSpecificationViewProps } from '@msdyn365-commerce-modules/product-specification/src/modules/product-specification/./product-specification';\r\n\r\nconst ProductSpecificationView: React.FC = props => {\r\n\tconst { ProductSpecification, ProductSpecificationTableProps, ProductSpecificationTableBodyProps, productSpecificationResult } = props;\r\n\tconst rowdata =\r\n\t\tproductSpecificationResult &&\r\n\t\tArrayExtensions.hasElements(productSpecificationResult) &&\r\n\t\tproductSpecificationResult.filter(row => !ObjectExtensions.isNullOrUndefined(row) && row.props.cellData.props.dangerouslySetInnerHTML);\r\n\treturn rowdata && ArrayExtensions.hasElements(rowdata) ? (\r\n\t\t\r\n\t\t\t{props.title}\r\n\t\t\t\r\n\t\t\t\t{rowdata}\r\n\t\t\t\r\n\t\t\r\n\t) : null;\r\n};\r\n\r\nexport default ProductSpecificationView;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport { ArrayExtensions, ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IProductSpecificationViewProps } from '@msdyn365-commerce-modules/product-specification/src/modules/product-specification/./product-specification';\r\n\r\nconst ProductSpecificationView: React.FC = props => {\r\n\tconst { ProductSpecification, ProductSpecificationTableProps, ProductSpecificationTableBodyProps, productSpecificationResult } = props;\r\n\tconst rowdata =\r\n\t\tproductSpecificationResult &&\r\n\t\tArrayExtensions.hasElements(productSpecificationResult) &&\r\n\t\tproductSpecificationResult.filter(row => !ObjectExtensions.isNullOrUndefined(row) && row.props.cellData.props.dangerouslySetInnerHTML);\r\n\treturn rowdata && ArrayExtensions.hasElements(rowdata) ? (\r\n\t\t\r\n\t\t\t{props.title}\r\n\t\t\t\r\n\t\t\t\t{rowdata}\r\n\t\t\t\r\n\t\t\r\n\t) : null;\r\n};\r\n\r\nexport default ProductSpecificationView;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport { ArrayExtensions, ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IProductSpecificationViewProps } from '@msdyn365-commerce-modules/product-specification/src/modules/product-specification/./product-specification';\r\n\r\nconst ProductSpecificationView: React.FC = props => {\r\n\tconst { ProductSpecification, ProductSpecificationTableProps, ProductSpecificationTableBodyProps, productSpecificationResult } = props;\r\n\tconst rowdata =\r\n\t\tproductSpecificationResult &&\r\n\t\tArrayExtensions.hasElements(productSpecificationResult) &&\r\n\t\tproductSpecificationResult.filter(row => !ObjectExtensions.isNullOrUndefined(row) && row.props.cellData.props.dangerouslySetInnerHTML);\r\n\treturn rowdata && ArrayExtensions.hasElements(rowdata) ? (\r\n\t\t\r\n\t\t\t{props.title}\r\n\t\t\t\r\n\t\t\t\t{rowdata}\r\n\t\t\t\r\n\t\t\r\n\t) : null;\r\n};\r\n\r\nexport default ProductSpecificationView;\r\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 { IAadGenericViewProps } from './aad-generic';\n\nexport default (props: IAadGenericViewProps) => {\n const { aadGeneric, aadConainer, aadAPIConainer, heading } = props;\n\n return (\n \n \n {heading}\n {aadAPIConainer}\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 { 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 { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountCustomerBalanceTileViewProps } from './account-customer-balance-tile';\n\nconst AccountCustomerBalanceTileView: React.FC = props => {\n const { AccountCustomerBalanceTile, heading, content, links } = props;\n\n return (\n \n {heading}\n {content}\n {links}\n \n );\n};\n\nexport default AccountCustomerBalanceTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { 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 { 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 { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountInvoiceTileViewProps } from './account-invoice-tile';\n\nexport default (props: IAccountInvoiceTileViewProps) => {\n const { AccountInvoiceTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountLoyaltyTileViewProps } from './account-loyalty-tile';\n\nconst AccountLoyaltyTileView: React.FC = props => {\n const { AccountLoyaltyTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default AccountLoyaltyTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { 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 { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountPreference, IAccountPreferences, IAccountProfileItem, IAccountProfileViewProps } from './account-profile';\n\nconst AccountPreferencesSection: React.FC = ({ accountPreferences, heading, personalization, extraPreferences }) => {\n return (\n \n {heading}\n \n {extraPreferences &&\n extraPreferences.map((preferenceSecton, index) => {\n return ;\n })}\n \n );\n};\n\nconst AccountPreferenceSection: React.FC = ({\n accountPreference,\n heading,\n description,\n buttonWrapper,\n buttonYesText,\n button,\n buttonNoText\n}) => {\n return (\n \n {heading}\n {description}\n \n {buttonNoText}\n {button}\n {buttonYesText}\n \n \n );\n};\n\nconst AccountProfileSection: React.FC = ({ AccountProfileItem, heading, links, description }) => {\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nconst AccountProfileView: React.FC = props => {\n const {\n AccountProfile,\n infoMessageBar,\n accountProfileWrapper,\n heading,\n emailSection,\n nameSection,\n preferenceSection,\n customerAttributesWrapper,\n customerAttributesSection\n } = props;\n\n return (\n \n {infoMessageBar}\n {accountProfileWrapper && (\n \n {heading}\n \n \n \n \n )}\n {customerAttributesWrapper && {customerAttributesSection}}\n \n );\n};\n\nexport default AccountProfileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { 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 { 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 { 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 { 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 { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILoyaltyTermsViewProps } from './loyalty-terms';\n\nconst LoyaltyTermsView: React.FC = props => {\n const { LoyaltyTerms, modalToggle, modal, loading } = props;\n\n return !loading && modal ? (\n \n {modalToggle}\n \n {modal.heading}\n \n {modal.terms}\n \n {modal.checkbox}\n {modal.agreeText}\n \n \n \n {modal.submitButton}\n {modal.cancelButton}\n \n \n \n ) : null;\n};\n\nexport default LoyaltyTermsView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IOrganizationUsersTileViewProps } from './organization-users-tile';\n\nconst OrganizationUsersTileView: React.FC = props => {\n const { OrganizationUsersTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default OrganizationUsersTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IPasswordResetItem, IPasswordResetLoading, IPasswordResetLocalAccount, IPasswordResetViewProps } from './password-reset';\n\nconst PasswordResetItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst LocalAccount: React.FC = ({\n localAccount,\n items,\n errorMessage,\n buttonsWrapper,\n buttons,\n verificationSuccessModal,\n verificationSuccessModalMessage\n}) => {\n return (\n \n {items &&\n items.map((item: IPasswordResetItem) => {\n // eslint-disable-next-line react/jsx-key\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n {buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n \n\n \n \n \n \n );\n};\n\nconst PasswordResetLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst PasswordResetView: React.FC = props => {\n const { passwordReset, viewState, loading, defaultAADConainer, aadConainer, heading, passwordResetLocalAccount } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n {heading}\n {LocalAccount(passwordResetLocalAccount)}\n \n \n );\n};\n\nexport default PasswordResetView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { 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 { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAddressAddItem, IAddressAddUpdateProps } from '../../common/components/address-add';\nimport { IAddressShowItem, IAddressShowProps } from '../../common/components/address-show';\nimport { ICheckoutBillingAddressViewProps } from './checkout-billing-address';\n\n/**\n * Address show component.\n * @param param0 - Root param.\n * @param param0.AddressDetail - Address detail.\n * @param param0.items - IAddressShowItem[].\n * @returns - Address Node.\n */\nconst AddressShow: React.FC = ({ AddressDetail, items }) => {\n return (\n \n {items.map((item: IAddressShowItem) => {\n return <>{item.description};\n })}\n \n );\n};\n\n/**\n * Address Add Update Component.\n * @param param0 - Root param.\n * @param param0.AddressForm - Address form.\n * @param param0.heading - Address Heading.\n * @param param0.items - IAddressAddItem[].\n * @param param0.hasError - Boolean.\n * @param param0.error - IAddressError.\n * @param param0.isShowSaveButton - Boolean.\n * @param param0.saveButton - Save button.\n * @param param0.isShowCancelButton - Boolean.\n * @param param0.cancelButton - Cancel button.\n * @returns - AddressForm Node.\n */\nconst AddressAddUpdate: React.FC = ({\n AddressForm,\n heading,\n items,\n hasError,\n error,\n isShowSaveButton,\n saveButton,\n isShowCancelButton,\n cancelButton\n}) => {\n return (\n \n {heading}\n {items.map((item: IAddressAddItem) => {\n const { AddressItem, key, label, alert, input } = item;\n return (\n \n {label}\n {alert}\n {input}\n \n );\n })}\n {hasError && (\n \n {error.title}\n {error.message}\n \n )}\n {isShowSaveButton && saveButton}\n {isShowCancelButton && cancelButton}\n \n );\n};\n\n/**\n * Checkout Billing Address View Component.\n * @param props - Props.\n * @returns - CheckoutBillingAddress Module.\n */\nconst CheckoutBillingAddressView: React.FC = props => {\n const {\n CheckoutBillingAddress,\n checkoutErrorRef,\n alert,\n viewState,\n heading,\n sameAsShippingCheckbox,\n showAddress,\n showAddOrUpdateAddress\n } = props;\n\n return (\n \n {heading}\n {alert}\n {viewState.isShowSameAsShippingCheckbox && sameAsShippingCheckbox}\n {viewState.isShowAddress && }\n {viewState.isShowAddOrUpdateAddress && }\n \n );\n};\n\nexport default CheckoutBillingAddressView;\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 { IBulkPurchaseViewProps } from './bulk-purchase';\n\n/**\n * Bulk purchase view.\n * @param props - Bulk purchase view props.\n * @returns React node with a module.\n */\nexport const BulkPurchaseViewComponent: React.FC = props => {\n return {props.content};\n};\n\nexport default BulkPurchaseViewComponent;\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 IBusinessPartnerPromotionTermsParagraphProp {\n description: string;\n className: string;\n title?: string;\n titleClassName?: string;\n}\n\nexport const BusinessPartnerPromotionTermsParagraph: React.FC = ({\n title,\n description,\n className,\n titleClassName\n}) => {\n return (\n
  • \n {title &&

    {title}

    }\n

    {description}

    \n
  • \n );\n};\n\nexport default BusinessPartnerPromotionTermsParagraph;\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\nimport * as MsDyn365 from '@msdyn365-commerce/core';\nimport { Button, Alert, IModuleProps, Modal, ModalBody, ModalHeader } from '@msdyn365-commerce-modules/utilities';\nimport { promoteToSellerAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/BusinessPartnersDataActions.g';\nimport { BusinessPartnerUser } from '@msdyn365-commerce/retail-proxy';\nimport { ObjectExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Text } from '@msdyn365-commerce/core';\nimport { IBusinessPartnerPromotionData } from './business-partner-promotion.data';\nimport { IBusinessPartnerPromotionProps } from './business-partner-promotion.props.autogenerated';\nimport { BusinessPartnerPromotionTermsParagraph } from './components';\n\nexport interface IBusinessPartnerPromotionViewProps extends IBusinessPartnerPromotionProps {\n businessPartnerPromotionProps: IModuleProps;\n heading: React.ReactNode;\n notificationMessage?: React.ReactNode;\n sellerDescriptions: React.ReactNode[];\n termsOfServiceCheckbox: React.ReactNode;\n termsOfServiceModal: React.ReactNode;\n submitButton: React.ReactNode;\n}\n\nexport interface IBusinessPartnerPromotionState {\n showTermsOfService: boolean;\n showSubmitButton: boolean;\n termsOfServiceChecked: boolean;\n termsOfServiceModalOpened: boolean;\n errorMessage?: string;\n notificationMessage?: string;\n}\n\n/**\n * The class name root for the module.\n */\nexport const moduleClassName: string = 'ms-business-partner-promotion';\n\n/**\n *\n * BusinessPartnerPromotion component\n * @extends {React.PureComponent>}\n */\nclass BusinessPartnerPromotion extends React.Component<\n IBusinessPartnerPromotionProps,\n IBusinessPartnerPromotionState\n> {\n constructor(props: IBusinessPartnerPromotionProps) {\n super(props);\n this.state = {\n showTermsOfService: true,\n showSubmitButton: true,\n termsOfServiceChecked: false,\n termsOfServiceModalOpened: false,\n errorMessage: undefined,\n notificationMessage: undefined\n };\n }\n\n public render(): JSX.Element | null {\n const {\n showSubmitButton,\n showTermsOfService,\n termsOfServiceChecked,\n termsOfServiceModalOpened,\n errorMessage,\n notificationMessage\n } = this.state;\n const { resources, data, config } = this.props;\n const { heading, termsOfService } = config;\n const { authorizationErrorMessage } = resources;\n const { b2bUserInformation } = data;\n const canSubmit = this.isAdminUser(b2bUserInformation.result);\n let error: string | undefined = errorMessage;\n\n // do not show error message when the API is still in loading.\n if (!canSubmit && b2bUserInformation.status !== 'LOADING') {\n error = authorizationErrorMessage;\n }\n const btnEnabled = canSubmit && termsOfServiceChecked;\n\n const viewProps: IBusinessPartnerPromotionViewProps = {\n ...this.props,\n businessPartnerPromotionProps: {\n moduleProps: this.props,\n className: classnames(moduleClassName, moduleClassName)\n },\n heading: ,\n notificationMessage: this.renderNotificationBar(error, notificationMessage),\n sellerDescriptions: this.renderSellerDescriptions(),\n termsOfServiceCheckbox: showTermsOfService && (\n
    \n \n {resources.termsOfServiceAgreementText}\n \n {resources.termsOfServiceLinkText}\n \n
    \n ),\n termsOfServiceModal: (\n \n {resources.termsOfServiceModalHeading}\n \n \n \n \n ),\n submitButton: showSubmitButton && (\n
    \n \n {resources.submitRequestLabel}\n \n
    \n )\n };\n\n return this.props.renderView(viewProps);\n }\n\n private renderNotificationBar(errorMessage: string | undefined, notificationMessage: string | undefined): React.ReactNode {\n let notificationBar: React.ReactNode = null;\n if (errorMessage) {\n notificationBar = {errorMessage};\n } else if (notificationMessage) {\n notificationBar = {notificationMessage};\n }\n return notificationBar;\n }\n\n private renderSellerDescriptions(): React.ReactNode[] {\n const { config } = this.props;\n const results: React.ReactNode[] = [];\n const sellerDescriptions = config.sellerDescriptions;\n\n if (!sellerDescriptions) {\n return results;\n }\n\n return sellerDescriptions.map((description, idx1) => {\n return (\n
    \n \n
      \n {description.bulletPoints?.map((bulletPoint, idx2) => {\n return (\n \n );\n })}\n
    \n
    \n );\n });\n }\n\n private isAdminUser(user: BusinessPartnerUser | undefined): boolean {\n return (\n !ObjectExtensions.isNullOrUndefined(user) && !StringExtensions.isNullOrEmpty(user.BusinessPartnerId) && user.IsAdmin === true\n );\n }\n\n private readonly onCheckBoxChange = (event: React.ChangeEvent) => {\n this.setState({\n termsOfServiceChecked: event.target.checked\n });\n };\n\n private readonly onToggleTermOfServiceModal = () => {\n this.setState({\n termsOfServiceModalOpened: !this.state.termsOfServiceModalOpened\n });\n };\n\n private readonly onSubmit = async (event: React.MouseEvent) => {\n const { context, data, resources } = this.props;\n const { errorMessageText, promoteToSellerSubmitSuccessMessage } = resources;\n const businessPartnerId = data.b2bUserInformation.result?.BusinessPartnerId ?? '';\n\n try {\n await promoteToSellerAsync({ callerContext: context.actionContext }, businessPartnerId);\n this.setState({\n showSubmitButton: false,\n showTermsOfService: false,\n errorMessage: undefined,\n notificationMessage: promoteToSellerSubmitSuccessMessage\n });\n } catch {\n this.setState({\n showTermsOfService: true,\n showSubmitButton: true,\n errorMessage: errorMessageText,\n notificationMessage: undefined\n });\n }\n };\n}\n\nexport default BusinessPartnerPromotion;\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 { IBusinessPartnerPromotionViewProps } from './business-partner-promotion';\n\n/**\n * View layout of business partner promotion module.\n * @param props - React props of the component.\n * @returns Functional component.\n */\nconst businessPartnersView: React.FC = props => {\n const {\n businessPartnerPromotionProps,\n heading,\n notificationMessage,\n sellerDescriptions,\n termsOfServiceCheckbox,\n termsOfServiceModal,\n submitButton\n } = props;\n return (\n \n {heading}\n {notificationMessage}\n {sellerDescriptions}\n {termsOfServiceCheckbox}\n {termsOfServiceModal}\n {submitButton}\n \n );\n};\n\nexport default businessPartnersView;\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 { IBusinessPartnersViewProps } from './business-partners';\n\n/**\n * View layout of business partner module.\n * @param props - React props of the component.\n * @returns Functional component.\n */\nconst businessPartnersView: React.FC = props => {\n if (props.selectedBusinessPartnerUser) {\n return (\n \n {props.businessPartnersHeading}\n {props.catalogLoadingIndicator}\n {props.catalogLoadingErrorMessage}\n \n );\n }\n\n if (props.cookieConsentNotGivenErrorMessage) {\n return (\n \n {props.businessPartnersHeading}\n {props.cookieConsentNotGivenErrorMessage}\n \n );\n }\n\n return (\n \n {props.backToBusinessPartnersLink}\n {props.businessPartnersHeading}\n {props.businessPartnerUsersHeading}\n {props.businessPartnersTable}\n {props.businessPartnerUsersTable}\n \n );\n};\n\nexport default businessPartnersView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365 from '@msdyn365-commerce/core';\nimport { IInvoiceSummaryLines } from '@msdyn365-commerce-modules/invoice-payment-summary';\nimport { IOrderSummaryLines } from '@msdyn365-commerce-modules/order-summary-utilities';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { INodeProps, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICartViewProps, IOrderSummaryErrors } from './cart';\nimport { ICartlinesViewProps } from './components/cart-line-items';\nimport { ICartLineItemViewProps } from './components/cart-line-items-promotion';\n\nconst _renderCartlines = (\n cartLines: ICartlinesViewProps[] | undefined,\n cartEmptyText: string,\n CartlinesWrapper: INodeProps,\n storeSelector: React.ReactNode | undefined,\n backToShoppingButton: React.ReactNode,\n waitingComponent: React.ReactNode,\n cartLoadingStatus: string,\n cartDataResult: boolean\n): JSX.Element[] | JSX.Element => {\n if (cartLoadingStatus) {\n return <>{cartLoadingStatus};\n }\n if (cartLines) {\n return cartLines.map(cartLine => {\n return (\n
    \n {cartLine.cartline}\n {storeSelector && cartLine.pickUpInStore ? (\n {cartLine.pickUpInStore.defaultComponent}\n ) : null}\n {cartLine.addToOrderTemplate ? (\n \n {cartLine.remove}\n {cartLine.addToWishlist}\n {cartLine.addToOrderTemplate}\n \n ) : (\n <>\n {cartLine.remove}\n {cartLine.addToWishlist}\n \n )}\n
    \n );\n });\n }\n return cartDataResult ? (\n
    \n

    {cartEmptyText}

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

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

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

    \n

    {groupTitle}

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

    {props.resources.emptyCartText}

    \n {props.backToShoppingButton}\n
    \n
    \n ) : (\n <>{props.waitingComponent}\n );\n};\n\nconst CartView: React.FC = (props: ICartViewProps) => (\n
    \n {props.title}\n {!props.cart?.hasInvoiceLine && props.promotionOptions && _renderPromotions(props.promotionOptions)}\n {props.multiplePickUpEnabled ? (\n renderCartLinesGroup(props)\n ) : (\n \n {_renderCartlines(\n props.cartlines,\n props.resources.emptyCartText,\n props.CartlinesWrapper,\n props.storeSelector,\n props.backToShoppingButton,\n props.waitingComponent,\n props.cartLoadingStatus,\n props.cartDataResult\n )}\n \n )}\n {props.orderSummaryHeading && (\n \n {props.orderSummaryHeading}\n {props.cart?.hasInvoiceLine\n ? _renderInvoiceSummarylines(props.invoiceSummaryLineitems, props.OrderSummaryItems, props)\n : _renderOrderSummarylines(props.orderSummaryLineitems, props.OrderSummaryItems, props)}\n {_renderErrorBlock(props.OrderSummaryErrors)}\n {props.checkoutAsSignInUserButton}\n {props.checkoutAsGuestButton}\n {props.expressCheckoutButton && ArrayExtensions.hasElements(props.expressCheckoutButton) ? (\n {props.expressCheckoutButton}\n ) : null}\n {props.backToShoppingButton}\n {props.createTemplateFromCartButton}\n \n )}\n {props.storeSelector}\n
    \n);\n\nexport default CartView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICatalogPickerViewProps } from './catalog-picker';\n\n/**\n * ICatalogPickerViewProps.\n * @param props - ICatalogPickerViewProps.\n * @returns - Render Catalog Picker.\n */\nexport const CatalogPickerViewFunctionComponent: React.FC = props => {\n const { catalogPicker } = props;\n return (\n \n {props.heading}\n {props.paragraph}\n {props.catalogs}\n \n );\n};\n\nexport default CatalogPickerViewFunctionComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\nimport { ICheckoutApplePayViewProps } from './checkout-apple-pay';\n\nconst CheckoutApplePayView: React.FC = props => {\n const { checkoutApplePay, applePayButton, alert } = props;\n\n return (\n \n {alert}\n {applePayButton}\n \n );\n};\n\nexport default CheckoutApplePayView;\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 ICheckoutDeliveryOption,\n ICheckoutDeliveryOptionEdit,\n ICheckoutDeliveryOptionsList,\n ICheckoutDeliveryOptionsViewProps\n} from './checkout-delivery-options';\n\nconst DeliveryOptionList: React.FC = ({ DeliveryOptionsList, list }) => {\n if (!list || list.length === 0) {\n return null;\n }\n\n return (\n \n {list.map((deliveryOption: ICheckoutDeliveryOptionEdit) => {\n return (\n \n {deliveryOption.radioButton}\n {deliveryOption.description}\n {deliveryOption.price}\n \n );\n })}\n \n );\n};\n\nconst DeliveryOptionSelected: React.FC = ({ DeliveryOption, description, price }) => {\n return (\n \n {description}\n {price}\n \n );\n};\n\nconst CheckoutDeliveryOptionsView: React.FC = props => {\n const {\n CheckoutDeliveryOptions,\n checkoutErrorRef,\n viewState,\n deliveryOptions,\n deliveryOptionSelected,\n alert,\n waiting,\n saveButton,\n editButton,\n cancelButton\n } = props;\n\n return (\n // TODO: All wrapper div should be provided by viewProps. Once SDK provide the sln, update markup.\n \n {viewState.isLoading && waiting}\n {viewState.isError && alert}\n {viewState.isShowList && deliveryOptions && }\n {viewState.isShowSelected && deliveryOptionSelected && }\n {viewState.isShowSaveButton && saveButton}\n {viewState.isShowEditButton && editButton}\n {viewState.isShowCancelButton && cancelButton}\n \n );\n};\n\nexport default CheckoutDeliveryOptionsView;\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 { ICheckoutExpressPaymentContainerViewProps } from './checkout-express-payment-container';\n\ninterface IContainerItemsComponent {\n isLoadingClassName: string;\n items: React.ReactNode[];\n}\n\nconst ContainerItemsComponent: React.FC = ({ isLoadingClassName, items }) => (\n
    {items}
    \n);\n\nconst CheckoutExpressPaymentContainerView: React.FC = ({\n checkoutPlainContainerProps,\n items,\n isReady,\n waiting,\n title,\n headerProps\n}) => {\n const isLoadingClassName: string = isReady ? 'showContainer' : 'notShowContainer';\n return (\n \n {title}\n {!isReady && waiting}\n \n \n );\n};\n\nexport default CheckoutExpressPaymentContainerView;\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 { ICheckoutLoyaltyAdd, ICheckoutLoyaltyRewardPoint, ICheckoutLoyaltyShow, ICheckoutLoyaltyViewProps } from './checkout-loyalty';\n\nconst AddCheckoutLoyalty: React.FC = ({\n heading,\n cardNumber,\n drawer,\n rewardPoints,\n loyaltyAmountContainer,\n appliedLoyaltyAmountContainer,\n loyaltyAmountLabel,\n loyaltyAmountInput,\n loyaltyAmountApplyButton,\n showAppliedAmount,\n loyaltyAmountAppliedText,\n loyaltyAmountAppliedPrice,\n loyaltyAmountRemoveButton\n}) => {\n return (\n <>\n {heading}\n {cardNumber}\n \n {rewardPoints.map((rewardPoint: ICheckoutLoyaltyRewardPoint) => {\n return (\n \n {rewardPoint.title}\n {rewardPoint.availablePointsText}\n {rewardPoint.activePoints}\n {rewardPoint.expiringPointsText}\n {rewardPoint.expiringPoints}\n \n );\n })}\n \n \n {loyaltyAmountLabel}\n {loyaltyAmountInput}\n {loyaltyAmountApplyButton}\n {showAppliedAmount && (\n \n {loyaltyAmountAppliedText}\n {loyaltyAmountAppliedPrice}\n {loyaltyAmountRemoveButton}\n \n )}\n \n \n );\n};\n\nconst ShowCheckoutLoyalty: React.FC = ({ heading, coveredAmountText, amount }) => {\n return (\n <>\n {heading}\n {coveredAmountText}\n {amount}\n \n );\n};\n\nconst CheckoutLoyaltyView: React.FC = props => {\n const { checkoutLoyalty, checkoutErrorRef, alert, viewState, showLoyalty, addLoyalty } = props;\n\n return (\n \n {alert}\n {viewState.isShowLoyalty && }\n {viewState.isShowAddLoyalty && }\n \n );\n};\n\nexport default CheckoutLoyaltyView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getPayloadObject, getTelemetryAttributes, IPayLoad, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ICookieComplianceAcceptButton {\n acceptCookiesButtonText?: string;\n acceptCookiesButtonAriaLabel?: string;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onClose(): void;\n}\n\nexport const CookieComplianceAcceptButton: React.FC = ({\n acceptCookiesButtonText,\n acceptCookiesButtonAriaLabel,\n telemetryContent,\n onClose\n}) => {\n const payLoad: IPayLoad = getPayloadObject('click', telemetryContent!, 'accept cookies');\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n\n return (\n \n {acceptCookiesButtonText}\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 { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IActionLinksData } from '../cookie-compliance.props.autogenerated';\n\nexport interface ICookieComplianceLinks {\n links: IActionLinksData[];\n requestContext: Msdyn365.IRequestContext;\n telemetryContent: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\n/**\n *\n * ContentCardLinks component.\n * @extends {React.PureComponent}\n */\nexport class CookieComplianceLinks extends React.PureComponent {\n public render(): JSX.Element {\n const editableLinks = this._mapEditableLinks(this.props.links);\n return (\n \n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n \n );\n }\n\n private readonly _mapEditableLinks = (linkdata: IActionLinksData[]): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n linkdata.forEach((link, index) => {\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: 'link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes,\n onClick: onTelemetryClick(this.props.telemetryContent, payLoad, linkText)\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n };\n}\n\nexport default CookieComplianceLinks;\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, IAlertProps, IModuleProps, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { CookieComplianceAcceptButton, CookieComplianceLinks } from './components';\nimport { ICookieComplianceConfig, ICookieComplianceProps } from './cookie-compliance.props.autogenerated';\n\n/**\n * Alert state interface.\n */\nexport interface IAlertState {\n visible: boolean;\n}\n\n/**\n * Cookie compliance view props interface.\n */\nexport interface ICookieComplianceViewProps extends ICookieComplianceProps<{}> {\n CookieComplianceBanner: IModuleProps;\n AlertProps: IAlertProps;\n Content: INodeProps;\n text?: React.ReactNode;\n links?: React.ReactNode;\n acceptButton?: React.ReactNode;\n className: string;\n onDismiss(): void;\n}\n\n/**\n *\n * CookieCompliance component.\n * @extends {React.PureComponent>}\n */\nclass CookieCompliance extends React.PureComponent, IAlertState> {\n private readonly cookieRef: React.RefObject;\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 constructor(props: ICookieComplianceProps) {\n super(props);\n this.state = { visible: false };\n this.cookieRef = React.createRef();\n this._onDismiss = this._onDismiss.bind(this);\n }\n\n public componentDidMount(): void {\n const { context } = this.props;\n\n if (context && context.request && context.request.cookies && !context.request.cookies.isConsentGiven()) {\n this.setState({ visible: true });\n }\n }\n\n public render(): JSX.Element | null {\n const { config, context, resources, telemetry } = this.props;\n const { acceptCookiesButtonText, acceptCookiesAriaLabel } = resources;\n const { visible } = this.state;\n\n const isConsentGiven = context && context.request && context.request.cookies && context.request.cookies.isConsentGiven();\n let moduleConfig: ICookieComplianceConfig;\n\n try {\n moduleConfig = config;\n } catch (error) {\n telemetry.error(`Something went wrong while rendering the alert module ------${error}`);\n return
    {error}
    ;\n }\n\n if (isConsentGiven && !visible) {\n this.props.context.telemetry.error('Cookie Compliance content is empty, module wont render.');\n return null;\n }\n\n if (!MsDyn365.msdyn365Commerce.isBrowser) {\n return <>;\n }\n\n const viewProps = {\n ...this.props,\n onDismiss: this._onDismiss,\n CookieComplianceBanner: {\n moduleProps: this.props,\n className: classnames('ms-cookie-compliance', moduleConfig.className),\n ref: this.cookieRef\n },\n AlertProps: {\n className: 'ms-cookie-compliance__container',\n color: 'white',\n fade: false\n },\n Content: {\n className: 'ms-cookie-compliance__content'\n },\n text: moduleConfig.content && (\n \n ),\n links: ArrayExtensions.hasElements(moduleConfig.actionLinks) && (\n \n ),\n acceptButton: (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Handles Link 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.actionLinks?.[linkIndex]) {\n this.props.config.actionLinks[linkIndex].linkText = event.target.value;\n }\n };\n\n /**\n * Handles content change event.\n * @param event - Event.\n */\n public handleContentChange = (event: MsDyn365.ContentEditableEvent): void => {\n this.props.config.content = event.target.value;\n };\n\n private _onDismiss(): void {\n const { context } = this.props;\n\n if (context && context.request && context.request.cookies) {\n context.request.cookies.setConsentCookie();\n location.reload();\n }\n this.setState({ visible: false });\n }\n}\n\nexport default CookieCompliance;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Alert, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICookieComplianceViewProps } from './cookie-compliance';\n\nconst CookieComplianceView: React.FC = props => {\n const { CookieComplianceBanner, AlertProps, Content, acceptButton, text, links } = props;\n\n return (\n \n \n \n {text}\n {links}\n \n {acceptButton}\n \n \n );\n};\nexport default CookieComplianceView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { AsyncResult } from '@msdyn365-commerce/core';\nimport { Customer } from '@msdyn365-commerce/retail-proxy';\nimport { IHeaderViewProps } from '@msdyn365-commerce-modules/header';\nimport { Collapse, Drawer, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nconst headerView: React.FC = props => {\n const { HeaderTag, HeaderContainer, HeaderTopBarContainer, Divider } = props;\n return (\n \n \n \n {props.navIcon}\n {props.logo}\n {_renderReactFragment(props.search)}\n {props.preferredStore}\n {_renderAccountBlock(props, false)}\n {props.wishListIconDesktop}\n \n {props.cartIcon}\n {_renderReactFragment(props.siteOptions)}\n \n {_renderCollapseMenu(props)}\n {_renderReactFragment(props.menuBar)}\n \n \n );\n};\n\nfunction _renderCollapseMenu(props: IHeaderViewProps): JSX.Element | null {\n const { Divider, MobileMenuLinksContainer, mobileMenuCollapsed } = props;\n return (\n \n \n {_renderReactFragment(props.search)}\n {_renderMobileAccountBlock(props, true)}\n {props.wishListIconMobile}\n {props.siteOptions}\n \n \n {_renderReactFragment(props.menuBar)}\n \n );\n}\n\nconst renderCustomerName = (accountInformation: AsyncResult): React.ReactChild => {\n const customer = accountInformation && accountInformation.result;\n return <>{customer ? customer.FirstName || customer.Name : ''};\n};\n\nfunction _renderMobileAccountBlock(props: IHeaderViewProps, renderForMobile: boolean): JSX.Element | null {\n const { AccountInfoDropdownParentContainer, signOutLink, signInLink, data, accountLinks } = props;\n\n if (AccountInfoDropdownParentContainer) {\n const accountClassName = classnames(\n 'ms-header__drawer',\n AccountInfoDropdownParentContainer.className,\n renderForMobile ? 'account-mobile' : 'account-desktop'\n );\n\n if (accountLinks) {\n return (\n \n
    \n {accountLinks ? accountLinks.map((link: React.ReactNode) => link) : false}\n {signOutLink}\n
    \n \n );\n } else if (signInLink) {\n return (\n \n {signInLink}\n \n );\n }\n }\n return null;\n}\n\nfunction _renderAccountBlock(props: IHeaderViewProps, renderForMobile: boolean): JSX.Element | null {\n const {\n AccountInfoDropdownParentContainer,\n AccountInfoDropdownPopoverConentContainer,\n accountInfoDropdownButton,\n signOutLink,\n signInLink,\n accountLinks\n } = props;\n\n if (AccountInfoDropdownParentContainer) {\n const accountClassName = classnames(\n AccountInfoDropdownParentContainer.className,\n renderForMobile ? 'account-mobile' : 'account-desktop'\n );\n if (AccountInfoDropdownPopoverConentContainer) {\n return (\n \n {accountInfoDropdownButton}\n \n {accountLinks ? accountLinks.map((link: React.ReactNode) => link) : false}\n {signOutLink}\n \n \n );\n } else if (signInLink) {\n return (\n \n {signInLink}\n \n );\n }\n }\n\n return null;\n}\n\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\n return (\n <>\n {items && items.length > 0\n ? items.map((slot: React.ReactNode, index: number) => {\n return {slot};\n })\n : null}\n \n );\n}\n\nexport default headerView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IDictionary, IImageData, IImageSettings, Image } from '@msdyn365-commerce/core';\nimport { IMenuItemData, INavigationMenuViewProps } from '@msdyn365-commerce-modules/navigation-menu';\nimport { ArrayExtensions, generateImageUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Drawer,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n ICollapseProps,\n IDrawerState,\n IPayLoad,\n ITelemetryContent,\n Module,\n Node,\n onTelemetryClick\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\ninterface INavigationState {\n parentMenu?: number;\n activeMenu?: number;\n categoryImage?: IImageData[] | null;\n categoryImageAltText: string;\n drawerKeyValue: IDictionary;\n}\n\n/**\n *\n * NavigationMenuView component.\n * @extends {React.PureComponent}\n */\nexport class NavigationMenuView extends React.PureComponent {\n private currentLevel: number = 0;\n\n private readonly _positionInSetOffset: number = 1;\n\n private readonly escapeKey: number = 27;\n\n private readonly menuNode: React.RefObject;\n\n private readonly telemetryContent: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n constructor(props: INavigationMenuViewProps) {\n super(props);\n this.menuNode = React.createRef();\n this.state = { activeMenu: undefined, parentMenu: undefined, categoryImageAltText: '', drawerKeyValue: {} };\n this._closeSubmenu = this._closeSubmenu.bind(this);\n this._escFunction = this._escFunction.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 }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser) {\n document.body.addEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\n document.body.addEventListener('mousedown', this._handleClickOutside);\n document.body.addEventListener('focusout', this._handleFocusOutside);\n }\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser) {\n document.removeEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\n document.body.removeEventListener('mousedown', this._handleClickOutside, false);\n document.body.removeEventListener('focusout', this._handleFocusOutside, false);\n }\n }\n\n public render(): JSX.Element | null {\n const { isMobileView } = this.props;\n\n this.currentLevel = 1;\n return <>{isMobileView ? this._renderMobileMenu() : this._renderDesktopMenu()};\n }\n\n /**\n * Method to render mobile menu.\n * @returns Jsx element.\n */\n private _renderMobileMenu(): JSX.Element {\n const { isMobileView, menuItemData, Navigation } = this.props;\n return (\n \n {menuItemData.map((menuItem: IMenuItemData, posinset: number) => {\n return this._renderDrawerMenu(menuItem, menuItemData.length, posinset + this._positionInSetOffset);\n })}\n \n );\n }\n\n /**\n * Method to render desktop menu.\n * @returns Jsx element.\n */\n private _renderDesktopMenu(): JSX.Element {\n const { MenuList, Navigation } = this.props;\n return (\n \n \n {this._renderDisplay()}\n \n \n );\n }\n\n /**\n * Method to render drawer menu.\n * @param menuItem -Menuitem data.\n * @param setSize -Setsize data.\n * @param posinset -Current position.\n * @returns Jsx element.\n */\n private _renderDrawerMenu(menuItem: IMenuItemData, setSize: number, posinset: number): JSX.Element | null {\n if (menuItem && menuItem.subMenu && ArrayExtensions.hasElements(menuItem.subMenu)) {\n return this._renderDrawer(menuItem, setSize, posinset);\n }\n return this._renderLinkMenuItem(menuItem, undefined, true, false, setSize, posinset);\n }\n\n /**\n * Method to render drawer component.\n * @param menuItem -Menuitem data.\n * @param setSize -Setsize data.\n * @param posinset -Current position.\n * @returns Jsx element.\n */\n private _renderDrawer(menuItem: IMenuItemData, setSize?: number, posinset?: number): JSX.Element | null {\n const toggleButtonText = menuItem.linkText;\n const keyValue = this.state.drawerKeyValue;\n const buttonText = toggleButtonText !== undefined ? toggleButtonText : '';\n const keys = keyValue !== undefined ? keyValue : {};\n const { isMobileView } = this.props;\n\n let isDrawerOpen = false;\n if (keys[buttonText]) {\n isDrawerOpen = true;\n }\n const colProps: ICollapseProps = { isOpen: isDrawerOpen };\n return (\n \n
    \n {menuItem.subMenu!.map((menuSubItem: IMenuItemData, currentPos: number) => {\n if (ArrayExtensions.hasElements(menuSubItem.subMenu)) {\n return this._renderDrawer(menuSubItem, menuItem.subMenu?.length, currentPos + this._positionInSetOffset);\n }\n return this._renderDrawerLink(menuSubItem, menuItem.subMenu?.length, currentPos + this._positionInSetOffset);\n })}\n
    \n \n );\n }\n\n /**\n * Method to render link.\n * @param linkText -Text on Menu link.\n * @param setSize -Setsize data.\n * @param posinset -Current position.\n * @returns Jsx element.\n */\n private _renderLinkText(linkText: string | undefined, setSize: number | undefined, posinset: number | undefined): JSX.Element {\n return (\n \n {linkText}\n \n );\n }\n\n /**\n * Method to render drawer link.\n * @param item -Single Menuitem.\n * @param setSize -Setsize data.\n * @param posinset -Current position.\n * @returns Jsx element.\n */\n private _renderDrawerLink(item: IMenuItemData, setSize: number | undefined, posinset: number): JSX.Element | null {\n if (item && item.linkText && item.linkURL && item.linkURL.length > 0) {\n return this._renderLinkMenuItem(item, undefined, true, false, setSize, posinset);\n } else if (item && item.linkText && !item.linkURL) {\n return this._renderSpanMenuItem(item);\n }\n return null;\n }\n\n /**\n * Method to generate menu.\n * @returns Jsx element.\n */\n private _renderDisplay(): JSX.Element[] {\n const { ListItem, menuItemData, isMobileView } = this.props;\n const { activeMenu } = this.state;\n const menuItemList: JSX.Element[] = [];\n\n if (isMobileView && activeMenu !== undefined && menuItemData.length > 0) {\n let menuItem: IMenuItemData = {};\n for (const menuItemDatum of menuItemData) {\n if (menuItemDatum && menuItemDatum.id === activeMenu) {\n menuItem = menuItemDatum;\n this.setState({ parentMenu: undefined });\n break;\n }\n menuItem = this._getFromSubMenu(menuItemDatum) as IMenuItemData;\n if (menuItem && menuItem.id === activeMenu) {\n break;\n }\n }\n\n menuItem &&\n menuItemList.push(\n \n {` `}\n {this._createMenuItemList(menuItem)}\n {` `}\n \n );\n } else {\n menuItemData.forEach((item: IMenuItemData, index: number) => {\n menuItemList.push(\n \n {this._createMenuItemList(item)}\n \n );\n });\n }\n\n return menuItemList;\n }\n\n /**\n * Method to get data for submenu.\n * @param item -Single Menuitem.\n * @returns IMenuItemData.\n */\n private _getFromSubMenu(item?: IMenuItemData): IMenuItemData | null {\n const subMenus = item && item.subMenu;\n if (subMenus && subMenus.length > 0) {\n for (let i = 0; i <= subMenus.length - 1; i++) {\n if (subMenus[i].id === this.state.activeMenu) {\n this.setState({ parentMenu: item?.id });\n return subMenus[i];\n }\n const found = this._getFromSubMenu(subMenus[i]);\n if (found) {\n return found;\n }\n }\n }\n return null;\n }\n\n /**\n * Method to create item list.\n * @param menuItemData -Single Menuitem.\n * @returns Jsx element.\n */\n private _createMenuItemList(menuItemData: IMenuItemData): JSX.Element | null {\n if (menuItemData && menuItemData.subMenu && menuItemData.subMenu.length > 0) {\n if (this.props.isMobileView && this.state.activeMenu !== undefined) {\n return this._renderSubMenu(menuItemData.subMenu, menuItemData.id);\n }\n return (\n <>\n {this._renderButtonMenuItem(menuItemData)}\n {this._renderSubMenu(menuItemData.subMenu, menuItemData.id)}\n \n );\n } else if (menuItemData && menuItemData.linkText && menuItemData.linkURL && menuItemData.linkURL.length > 0) {\n return this._renderLinkMenuItem(menuItemData, menuItemData.id, false, true);\n } else if (menuItemData && menuItemData.linkText && !menuItemData.linkURL) {\n return this._renderSpanMenuItem(menuItemData, menuItemData.id, true);\n }\n\n return null;\n }\n\n private _renderSubMenu(subMenus?: IMenuItemData[], activeMenu?: number, IsSubMenu?: boolean): JSX.Element | null {\n const { isMobileView, ListItem } = this.props;\n const enableMultiSupportMenu = this.props.config.enableMultilevelMenu || false;\n const subMenuLevel = 3;\n const multiLevelSupportedMenu = this.props.config.menuLevelSupport || subMenuLevel;\n\n // Const isParentMenu:boolean= false;\n if (activeMenu && this.state.activeMenu !== activeMenu) {\n this.props.context.telemetry.error('Navigation Active menu content is empty, module wont render.');\n return null;\n }\n\n if (!subMenus || subMenus.length === 0) {\n this.props.context.telemetry.error('Navigation Submenu content is empty, module wont render.');\n return null;\n }\n\n let levelClassName: string = '';\n const menuOptions =\n subMenus &&\n subMenus.map((option: IMenuItemData, idx: number) => {\n const hasOptions = option.subMenu && option.subMenu.length > 0;\n let menuItem: JSX.Element | null;\n if (hasOptions && isMobileView) {\n menuItem = this._renderButtonMenuItem(option, activeMenu, idx);\n } else {\n menuItem = option.linkURL ? this._renderLinkMenuItem(option, idx) : this._renderSpanMenuItem(option);\n }\n let subMenu;\n const haveSubmenu = hasOptions && enableMultiSupportMenu && this.currentLevel <= Math.round(multiLevelSupportedMenu) - 1;\n if (haveSubmenu) {\n this.currentLevel++;\n levelClassName = enableMultiSupportMenu ? `level-${this.currentLevel.toString()}` : '';\n subMenu = this._renderSubMenu(option.subMenu, isMobileView ? option.id : undefined, true);\n }\n return (\n \n {menuItem}\n {subMenu}\n \n );\n });\n return this._renderMenu(levelClassName, menuOptions, activeMenu, IsSubMenu);\n }\n\n /**\n * Method to render button menu item.\n * @param option -Single Menuitem.\n * @param activeMenu -Active menu number.\n * @param index -Active menu index.\n * @returns Jsx element.\n */\n private _renderButtonMenuItem(option: IMenuItemData, activeMenu?: number, index?: number): JSX.Element | null {\n const { Button } = this.props;\n return (\n \n {option.linkText}\n
    \n );\n }\n\n /**\n * Method to render link menu item.\n * @param option -Single Menuitem.\n * @param index -Active menu index.\n * @param hoverEffect -Active menu effect.\n * @param isParent -Is parent menu.\n * @param setSize -Setsize data.\n * @param posinset -Current position.\n * @returns Jsx element.\n */\n private _renderLinkMenuItem(\n option: IMenuItemData,\n index?: number,\n hoverEffect: boolean = true,\n isParent: boolean = false,\n setSize?: number,\n posinset?: number\n ): JSX.Element | null {\n const { Link, isMobileView } = this.props;\n const linkText = option.linkText ? option.linkText : '';\n const imagesource = option.imageSource ? option.imageSource : '';\n this.payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n return (\n \n {option.linkText}\n
    \n );\n }\n\n /**\n * Method to render promotional link.\n * @param linkText -Link text.\n * @param linkUrl -Link url.\n * @returns Jsx element.\n */\n private _renderPromotionalLink(linkText?: string, linkUrl?: string): JSX.Element | null {\n const { Link } = this.props;\n this.payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n if (linkText && linkUrl) {\n return (\n \n {linkText}\n \n );\n }\n return null;\n }\n\n /**\n * Method to render span menu item.\n * @param option -Single Menu Item.\n * @param index -Index.\n * @param isParent -Is parent menu.\n * @returns Jsx element.\n */\n private _renderSpanMenuItem(option: IMenuItemData, index?: number, isParent: boolean = false): JSX.Element | null {\n const { Span } = this.props;\n return (\n \n {option.linkText}\n \n );\n }\n\n /**\n * Method to render menu.\n * @param level -Menu level.\n * @param menuOptions -Menu lists.\n * @param currentItem -Menu current.\n * @param submenu -Mneu has submenu or not.\n * @returns Jsx element.\n */\n private _renderMenu(level: string, menuOptions: JSX.Element[], currentItem?: number, submenu?: boolean): JSX.Element | null {\n const { DivContainer, MenuList, ImageDivContainer, showCategoryImage, isMobileView, showPromotionalContent } = this.props;\n const categoryImageDisplay =\n !isMobileView && showCategoryImage && this.state.categoryImage !== null && this.state.categoryImage !== undefined && !submenu;\n const promotionalContentDisplay =\n !isMobileView && showPromotionalContent && ArrayExtensions.hasElements(this.state.categoryImage) && !submenu;\n const DivContainerClass = this.currentLevel > 2 || categoryImageDisplay ? DivContainer!.className : 'ms-nav__deafult';\n this.currentLevel = 1;\n return (\n \n 2 &&\n 'navmenu-multi-level'\n )}\n >\n {menuOptions}\n \n
    \n {categoryImageDisplay &&\n this.state.categoryImage &&\n this.state.categoryImage.map(item => (\n \n {this.state.categoryImage && this._getCategoryImage(item)}\n {promotionalContentDisplay && this._renderPromotionalLink(item.altText, item.additionalProperties?.linkUrl)}\n \n ))}\n
    \n \n );\n }\n\n private readonly _updateCategoryImage = (categoryImageSrc: string, option: IMenuItemData) => () => {\n const linkText = option && option.linkText ? option.linkText : '';\n const promotionalImage: IImageData[] = [{ src: categoryImageSrc, altText: linkText }];\n\n // Read category and promotional image in one array\n if (ArrayExtensions.hasElements(option.promotionalContent)) {\n option.promotionalContent.map(item => {\n if (item && item.image) {\n const imageSrc = item.image.src;\n const promotionalItemImageSettings = item.image.imageSettings;\n promotionalImage.push({\n src: imageSrc,\n altText: item.text,\n imageSettings: promotionalItemImageSettings,\n additionalProperties: { linkUrl: item.linkUrl.destinationUrl }\n });\n }\n });\n }\n this.setState({\n categoryImage: promotionalImage.length > 0 ? promotionalImage : [{ src: 'empty' }],\n categoryImageAltText: linkText\n });\n };\n\n /**\n * Method to handle dropdwon change.\n * @param data -Menuitem data.\n * @param parentId -Menu parent.\n * @returns Jsx element.\n */\n private readonly _handleDropdownToggle = (data: IMenuItemData, parentId?: number) => () => {\n if (!this.props.isMobileView) {\n this.setState({\n activeMenu: this.state.activeMenu && this.state.activeMenu === data.id! ? undefined : data.id!,\n parentMenu: parentId\n });\n if (this.props.showCategoryImage) {\n this._updateCategoryImage(data.imageSource!, data)();\n }\n } else {\n this.setState({\n activeMenu: data.id,\n parentMenu: parentId\n });\n }\n\n this._resetFocus();\n };\n\n /**\n * Method to call when focus lost from menu.\n */\n private readonly _resetFocus = () => {\n if (this.props.isMobileView) {\n setTimeout(() => {\n this.menuNode && this.menuNode.current && this.menuNode.current.focus();\n }, 0);\n }\n };\n\n /**\n * Method to handle click outside of menu.\n * @param event -HTML event.\n */\n private readonly _handleClickOutside = (event: MouseEvent) => {\n if (this.menuNode.current && !this.menuNode.current.contains(event.target as Node)) {\n this.setState({\n activeMenu: undefined,\n categoryImage: null\n });\n }\n };\n\n /**\n * Method to handle click outside of menu.\n * @param event -HTML event.\n */\n private readonly _handleFocusOutside = (event: FocusEvent) => {\n if (this.menuNode.current && !this.menuNode.current.contains(event.relatedTarget as Node)) {\n this._closeSubmenu();\n }\n };\n\n /**\n * Method to handle close submenu event.\n */\n private _closeSubmenu(): void {\n if (!this.props.isMobileView) {\n this.setState({ activeMenu: undefined });\n }\n }\n\n /**\n * Method to handle escape key event.\n * @param event -HTML event.\n */\n private readonly _escFunction = (event: React.KeyboardEvent) => {\n if (event.keyCode === this.escapeKey) {\n if (!this.props.isMobileView) {\n const navDrawerList = Array.from(this.menuNode.current!.childNodes);\n for (const item of navDrawerList) {\n const navDrawerButton = item.firstChild as HTMLButtonElement;\n if (navDrawerButton.getAttribute('aria-expanded') === 'true') {\n navDrawerButton.focus();\n }\n }\n }\n this._closeSubmenu();\n }\n };\n\n private readonly _getCategoryImage = (categoryImage?: IImageData): React.ReactNode | null => {\n if (!categoryImage || !categoryImage.src) {\n return null;\n }\n\n const categoryImageUrl = generateImageUrl(categoryImage.src, this.props.context.actionContext.requestContext.apiSettings);\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\n sm: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\n md: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\n lg: { q: 'w=300&h=250&m=8', w: 0, h: 0 }\n },\n lazyload: true\n };\n if (categoryImageUrl !== undefined) {\n const ImageData: IImageData = { src: categoryImageUrl };\n return (\n \n );\n }\n return null;\n };\n\n /**\n * Method to handle escape key event.\n * @param drawerState -HTML event.\n */\n private readonly _onDrawerChange = (drawerState: IDrawerState) => {\n const { drawerKeyValue } = this.state;\n const drawerText: string = drawerState.buttonText !== undefined ? drawerState.buttonText : '';\n const newPair = { [drawerText]: drawerState.isOpen };\n this.setState({ drawerKeyValue: { ...drawerKeyValue, ...newPair } });\n };\n}\n\nexport default NavigationMenuView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n IGroup,\n IGroupDelivery,\n IGroups,\n IHelp,\n IOrderDetailsViewProps,\n IOrderInformation,\n IOrderSummary,\n IPaymentMethods,\n ISalesLine\n} from '@msdyn365-commerce-modules/order-management';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport const OrderInfomation: React.FC = ({\n orderInformationProps,\n salesId,\n receiptId,\n createdDate,\n count,\n amount,\n channelReferenceId,\n channelName,\n channelAddress\n}) => (\n \n {channelName}\n {channelAddress}\n {salesId}\n {receiptId}\n {createdDate}\n {count}\n {amount}\n {channelReferenceId}\n \n);\n\nexport const SalesLine: React.FC = ({ salesLineProps, salesLine, buyAgainButton, errors }) => (\n \n {salesLine}\n {buyAgainButton}\n {errors}\n \n);\n\nexport const GroupDelivery: React.FC = ({ deliveryProps, heading, count }) => (\n \n {heading}\n {count}\n \n);\n\nexport const Group: React.FC = ({ groupProps, delivery, address, salesLinesProps, salesLines, isCashAndCarryTransaction }) => (\n \n {delivery && }\n \n {salesLines && (\n \n {salesLines.map(salesLine => (\n \n {salesLine.data.deliveryType === 'ship' && salesLine.data.shipment ? salesLine.trackingInfo : null}\n \n {!isCashAndCarryTransaction && salesLine.salesStatus}\n \n ))}\n \n )}\n {!delivery.showTimeslot && address}\n {delivery.showTimeslot && (\n \n {address}\n {delivery.pickupDateTimeslot}\n \n )}\n \n \n);\n\nexport const Groups: React.FC = ({ groupsProps, groups }) => (\n \n {groups.map((group, index) => (\n \n ))}\n \n);\n\nexport const OrderSummary: React.FC = ({\n orderSummaryProps,\n heading,\n subtotal,\n shipping,\n tax,\n totalAmount,\n earnedPoints\n}) => (\n \n {heading}\n {subtotal}\n {shipping}\n {tax}\n {totalAmount}\n {earnedPoints}\n \n);\n\nexport const Payment: React.FC = ({ paymentMethodsProps, title, methods }) => (\n \n {title}\n {methods}\n \n);\n\nexport const Help: React.FC = ({ helpProps, needHelpLabel, helpLineNumberLabel, contactNumber }) => (\n \n {needHelpLabel}\n {helpLineNumberLabel}\n {contactNumber}\n \n);\n\nconst OrderDetailsView: React.FC = ({\n moduleProps,\n viewModes,\n tableViewActions,\n table,\n placedBy,\n heading,\n alert,\n loading,\n orderInfomation,\n orderSummary,\n payment,\n help,\n groups\n}) => {\n return (\n \n {placedBy}\n {heading}\n {alert}\n {loading}\n {orderInfomation && }\n {tableViewActions}\n {viewModes}\n {table}\n {groups && }\n \n {orderSummary && }\n {payment && }\n \n {help && }\n \n );\n};\n\nexport default OrderDetailsView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n ICategoryHierarchyViewProps,\n IRefineMenuViewProps,\n ISearchResultContainerViewProps,\n ISearchResultModalViewProps,\n ISortByViewProps,\n ITitleViewProps\n} from '@msdyn365-commerce-modules/search-result-container';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nconst SearchResultContainerView: React.FC = props => {\n const {\n SearchResultContainer,\n products,\n pagination,\n ProductsContainer,\n ProductSectionContainer,\n choiceSummary,\n isMobile,\n modalToggle,\n searchResultModal,\n TitleViewProps,\n refineMenu,\n categoryHierarchy,\n sortByOptions,\n CategoryNavContainer,\n RefineAndProductSectionContainer,\n errorMessage,\n FeatureSearchContainer,\n similarLookProduct\n } = props;\n const isRecoSearchPage = props.context.actionContext.requestContext.query?.recommendation;\n if (isMobile) {\n return (\n \n {categoryHierarchy && renderCategoryHierarchy(categoryHierarchy)}\n {renderTitle(TitleViewProps)}\n {choiceSummary}\n {modalToggle}\n {createSearchResultModal(searchResultModal, refineMenu, sortByOptions, isRecoSearchPage)}\n {similarLookProduct}\n \n {errorMessage}\n {products}\n \n {pagination}\n \n );\n }\n return (\n \n {categoryHierarchy && {renderCategoryHierarchy(categoryHierarchy)}}\n \n {refineMenu && renderRefiner(refineMenu)}\n \n {similarLookProduct}\n
    \n {TitleViewProps && renderTitle(TitleViewProps)}\n {choiceSummary}\n
    \n
    \n {sortByOptions && !isRecoSearchPage && renderSort(sortByOptions)}\n
    \n \n {errorMessage}\n {products}\n \n {pagination}\n
    \n
    \n
    \n );\n};\n\nconst createSearchResultModal = (\n modalProps: ISearchResultModalViewProps,\n refineMenu: IRefineMenuViewProps,\n sortByDropDown: ISortByViewProps,\n isRecoSearchPage?: string\n): JSX.Element => {\n return React.cloneElement(\n modalProps.modal,\n {},\n modalProps.modalHeader,\n createModalBody(modalProps, refineMenu, sortByDropDown, isRecoSearchPage),\n modalProps.modalFooter\n );\n};\n\nconst createModalBody = (\n props: ISearchResultModalViewProps,\n refineMenu: IRefineMenuViewProps,\n sortByDropDown: ISortByViewProps,\n isRecoSearchPage?: string\n): JSX.Element | null => {\n if (sortByDropDown) {\n return React.cloneElement(props.modalBody, {}, renderSort(sortByDropDown, isRecoSearchPage), renderRefiner(refineMenu));\n }\n return null;\n};\n\nconst renderRefiner = (props: IRefineMenuViewProps): JSX.Element | null => {\n const { refiners, RefineMenuContainer, RefinerSectionContainer } = props;\n if (refiners) {\n return (\n \n \n {refiners.map((submenu, index) => (\n {submenu}\n ))}\n \n \n );\n }\n return null;\n};\n\nconst renderSort = (props: ISortByViewProps, isRecoSearchPage?: string): JSX.Element | null => {\n const { SortingContainer, sortByDropDown } = props;\n if (sortByDropDown && !isRecoSearchPage) {\n return {sortByDropDown};\n }\n return null;\n};\n\nconst renderCategoryHierarchy = (props: ICategoryHierarchyViewProps): JSX.Element | null => {\n const { CategoryHierarchyContainer, categoryHierarchyList, categoryHierarchySeparator } = props;\n if (categoryHierarchyList) {\n return (\n \n {categoryHierarchyList.map((category, index) => (\n \n {category}\n {categoryHierarchyList && categoryHierarchyList[index + 1] && categoryHierarchySeparator}\n \n ))}\n \n );\n }\n\n return null;\n};\n\nconst renderTitle = (props: ITitleViewProps): JSX.Element | null => {\n const { title, TitleContainer } = props;\n if (title) {\n return (\n \n

    \n {title.titlePrefix}\n {title.titleText}({title.titleCount})\n

    \n
    \n );\n }\n return null;\n};\n\nexport default SearchResultContainerView;\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 { BackToTop, getTelemetryObject, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IBackTopFooterProps } from './back-top-footer.props.autogenerated';\n\n/**\n *\n * BackTopFooter component.\n * @extends {React.PureComponent>}\n */\nclass BackTopFooter extends React.PureComponent> {\n private readonly editProps: Msdyn365.ITextEditProps = {\n requestContext: this.props.context.request,\n onEdit: (event: Msdyn365.ContentEditableEvent) => (this.props.config.backtoTopText = event.target.value)\n };\n\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IBackTopFooterProps<{}>) {\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 if (!this.props.config.destination) {\n this.props.telemetry.error('BackToTop.destination has not been provided, module wont render.');\n return null;\n }\n\n return (\n \n );\n }\n}\n\nexport default BackTopFooter;\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 { Heading, IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IHeadingData, IIframeConfig, IIframeProps } from './iframe.props.autogenerated';\n\nexport interface IIframeViewProps extends IIframeProps {\n Heading: React.ReactNode;\n IframeContainer: IModuleProps;\n IFrame: React.ReactNode;\n alert?: React.ReactNode;\n cookieConsentAccepted?: boolean;\n}\n\n/**\n *\n * Iframe component.\n * @extends {React.PureComponent}\n */\nclass Iframe extends React.PureComponent> {\n private readonly iframeRef: React.RefObject;\n\n constructor(props: IIframeProps) {\n super(props);\n this.iframeRef = React.createRef();\n }\n\n public render(): JSX.Element | null {\n const { config, resources } = this.props;\n const isConsentGiven =\n this.props.context.request &&\n this.props.context.request.cookies &&\n this.props.context.request.cookies.isConsentGiven &&\n this.props.context.request.cookies.isConsentGiven();\n\n if (!(config && config.target && config.target.destinationUrl)) {\n return null;\n }\n\n let srcURL;\n try {\n srcURL = new URL(config.target.destinationUrl);\n } catch (error) {\n this.props.telemetry.exception(error);\n return null;\n }\n\n if (srcURL && srcURL.protocol && srcURL.protocol.toLocaleLowerCase() !== 'https:') {\n return null;\n }\n const iframeClassName = classnames('ms-iframe', config.className);\n\n let viewProps: IIframeViewProps = {\n ...(this.props as IIframeProps),\n Heading: this._createHeading(config.heading!),\n IframeContainer: {\n moduleProps: this.props,\n className: iframeClassName\n },\n IFrame: this._createIframe()\n };\n\n if (!isConsentGiven) {\n viewProps = {\n ...viewProps,\n alert: this._renderAlert(resources.cookieConsentRequiredMessage)\n };\n } else {\n viewProps = {\n ...viewProps,\n cookieConsentAccepted: true\n };\n }\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private _createHeading(heading: IHeadingData): React.ReactNode | null {\n if (!heading || !heading.text || heading.text.length === 0) {\n return null;\n }\n\n return ;\n }\n\n private _renderAlert(message: string): React.ReactNode | null {\n return (\n

    \n {message}\n

    \n );\n }\n\n private _createIframe(): React.ReactNode | null {\n const { config } = this.props;\n const targetURL = config.target.destinationUrl;\n\n return (\n \n );\n }\n}\n\nexport default Iframe;\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 { IIframeViewProps } from './iframe';\n\n/**\n *\n * IFrameView component.\n * @extends {React.PureComponent}\n */\nexport class IFrameView extends React.PureComponent {\n public render(): JSX.Element | null {\n const { Heading, IframeContainer, IFrame, alert, cookieConsentAccepted } = this.props;\n\n return (\n \n {alert}\n {cookieConsentAccepted && cookieConsentAccepted ? (\n <>\n {Heading}\n {IFrame}\n \n ) : null}\n \n );\n }\n}\nexport default IFrameView;\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 { IInvoiceDetailsViewProps } from './invoice-details';\n\nexport const InvoiceDetailsView: React.FC = props => {\n const { header, products, paymentDetails, payInvoiceError } = props;\n\n return (\n \n {header}\n {products}\n {paymentDetails}\n {payInvoiceError}\n \n );\n};\n\nexport default InvoiceDetailsView;\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 { IInvoicesListViewProps } from './invoices-list';\n\nexport const InvoiceListView: React.FC = props => {\n const { header, filter, content, invoiceRequestModal, pagination } = props;\n\n return (\n \n {header}\n {invoiceRequestModal}\n {filter}\n {content}\n {pagination}\n \n );\n};\n\nexport default InvoiceListView;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { CategoryHierarchy } from '@msdyn365-commerce/commerce-entities';\nimport { AsyncResult } from '@msdyn365-commerce/retail-proxy';\n\nimport { ICategoryPromotionalContentData } from './navigation-menu.props.autogenerated';\n\nexport interface INavigationMenuData {\n categories: AsyncResult;\n}\n\nexport interface IMenuItemData {\n id?: number;\n linkText?: string;\n linkURL?: string;\n imageSource?: string;\n imageDestinationURL?: string;\n subMenu?: IMenuItemData[];\n promotionalContent?: ICategoryPromotionalContentData[];\n menuSource?: string;\n shouldOpenNewTab?: boolean;\n ariaLabel?: string;\n}\n\n/**\n *\n * Menu type index id.\n */\nexport enum MenuTypeIndexId {\n Cms = 1000,\n Retail = 5000\n}\n\n/**\n *\n * Menu type source.\n */\nexport enum MenuSource {\n Cms = 'Cms',\n Retail = 'Retail'\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, { IActionContext, IGridSettings, IImageSettings, isEmptyOrNullObject } from '@msdyn365-commerce/core';\nimport { TextValueTranslation } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, getCategoryUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport { addThrottledEvent, IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { computed, observable } from 'mobx';\nimport * as React from 'react';\n\nimport { IMenuItemData, INavigationMenuData, MenuSource, MenuTypeIndexId } from './navigation-menu.data';\nimport { ICmsNavItemsData, INavigationMenuProps, ISubMenusData, navigationMenuSource } from './navigation-menu.props.autogenerated';\n\nexport interface INavigationMenuViewProps extends INavigationMenuProps {\n className: string;\n menuItemData: IMenuItemData[];\n Navigation: IModuleProps;\n MenuList: INodeProps;\n ListItem: INodeProps;\n Link: INodeProps;\n Button: INodeProps;\n Span: INodeProps;\n ImageContainer: INodeProps;\n MobileDescriptionContainer: INodeProps;\n MobileBackButton: INodeProps;\n MobileDescriptionLabel: INodeProps;\n imageSettings: IImageSettings;\n gridSettings: IGridSettings;\n isMobileView: boolean;\n DivContainer?: INodeProps;\n ImageDivContainer?: INodeProps;\n showCategoryImage?: boolean;\n showPromotionalContent?: boolean;\n}\n\nexport type GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\nexport interface INavigationMenuState {\n isMobile: boolean;\n}\n\n/**\n *\n * NavigationMenu component.\n * @extends {React.PureComponent>}\n */\nclass NavigationMenu extends React.PureComponent, INavigationMenuState> {\n private static CMSItemIdInit: number = MenuTypeIndexId.Cms;\n\n private static RSItemIdInit: number = MenuTypeIndexId.Retail;\n\n private resizeThrottledEventHandler?: (event: Event) => void;\n\n private menuItemList: IMenuItemData[];\n\n private isRetail: boolean = true;\n\n private isCMS: boolean = true;\n\n @observable\n private viewport: GridSize;\n\n public static getFriendlyName(locale: string, nameTranslations?: TextValueTranslation[]): string | undefined {\n let nameTranslation: TextValueTranslation | undefined;\n if (locale && nameTranslations && nameTranslations.length > 0) {\n nameTranslation = nameTranslations.find(item => item.Language!.toLowerCase() === locale.toLowerCase());\n }\n\n return nameTranslation && nameTranslation.Text;\n }\n\n constructor(props: INavigationMenuProps) {\n super(props);\n this._updateViewport = this._updateViewport.bind(this);\n this.viewport =\n props.context.request && props.context.request.device && props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\n this._setNavigationSource(this.props.config && this.props.config.navigationMenuSource);\n this.state = { isMobile: this.isMobile };\n this.menuItemList = [];\n }\n\n @computed get isMobile(): boolean {\n return this.viewport === 'xs' || this.viewport === 'sm';\n }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser) {\n this.resizeThrottledEventHandler = addThrottledEvent(window, 'resize', this._updateViewport as EventListener);\n }\n this._updateViewport();\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser) {\n window.removeEventListener('resize', this.resizeThrottledEventHandler!, false);\n }\n }\n\n public render(): JSX.Element | null {\n this.menuItemList = this._mapData();\n if (isEmptyOrNullObject(this.props.data)) {\n this.props.telemetry.error('Navigatiomenu returned null');\n return null;\n }\n\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=224&h=300&m=6', w: 0, h: 0 },\n xl: { q: 'w=224&h=300&m=6', w: 0, h: 0 }\n },\n lazyload: true\n };\n\n const viewProps = {\n ...this.props,\n ...this.state,\n imageSettings: defaultImageSettings,\n gridSettings: this.props.context.request.gridSettings,\n Navigation: {\n moduleProps: this.props,\n className: classnames('ms-nav', this.props.config.className, this.state.isMobile ? 'mobile-vp' : 'desktop-vp'),\n tag: 'nav',\n role: this.isMobile ? 'listbox' : 'navigation'\n },\n MenuList: {\n className: 'ms-nav__list',\n tag: 'ul',\n role: this.isMobile ? 'listbox' : 'menu'\n },\n ListItem: {\n className: 'ms-nav__list__item',\n role: 'presentation',\n tag: 'li'\n },\n showCategoryImage: this.props.config.displayCategoryImage ?? false,\n showPromotionalContent: this.props.config.displayPromotionalImage ?? false,\n Link: {\n tag: 'a',\n className: 'ms-nav__list__item__link',\n role: this.isMobile ? 'option' : 'menuitem'\n },\n DivContainer: {\n tag: 'div',\n className: 'ms-nav__feature'\n },\n ImageDivContainer: {\n tag: 'div',\n className: 'category-image',\n role: 'tabpanel'\n },\n Button: {\n className: 'ms-nav__list__item__button',\n tag: 'button',\n role: this.isMobile ? 'option' : 'menuitem',\n onClick: this.props\n },\n ImageContainer: {\n className: 'ms-nav__list__item__image'\n },\n Span: {\n className: 'ms-nav__list__item__span',\n tag: 'span'\n },\n MobileDescriptionContainer: {\n className: 'ms-nav__list__mobile__container'\n },\n MobileBackButton: {\n className: 'ms-nav__list__mobile__container__button',\n tag: 'button',\n 'aria-label': this.props.resources.backButtonAriaLabel,\n onClick: this.props\n },\n MobileDescriptionLabel: {\n className: 'ms-nav__list__mobile__container__span',\n tag: 'span'\n },\n isMobileView: this.state.isMobile,\n menuItemData: this.menuItemList,\n className: classnames('ms-nav', this.props.config.className)\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private _mapData(): IMenuItemData[] {\n const { data, config } = this.props;\n const mergedData: IMenuItemData[] = [];\n if (this.isRetail && data && data.categories && data.categories.result && data.categories.result.length > 0) {\n data.categories.result.map((item: CategoryHierarchy, index) =>\n mergedData.push(this._constructMenuItemData(item, undefined, true, index, true))\n );\n }\n\n if (this.isCMS && config.cmsNavItems && config.cmsNavItems.length > 0) {\n config.cmsNavItems.map((item: ICmsNavItemsData, idx: number) =>\n mergedData.push(this._constructMenuItemData(undefined, item, false, idx + 1))\n );\n }\n return this._constructTopMenuItemData(mergedData);\n }\n\n private _constructTopMenuItemData(mergedData: IMenuItemData[]): IMenuItemData[] {\n const enableTopLevelMenu = this.props.config.enabletopMenu ?? false;\n if (!enableTopLevelMenu) {\n return mergedData;\n }\n const mergedRootMenuData: IMenuItemData[] = [];\n const topMenu = {\n id: 1,\n linkText: this.props.config.rootMenuNavigation ?? '...',\n linkURL: '#',\n imageSource: undefined,\n subMenu: mergedData\n } as IMenuItemData;\n mergedRootMenuData.push(topMenu);\n\n return mergedRootMenuData;\n }\n\n private _constructMenuItemData(\n retailItem?: CategoryHierarchy,\n cmsItem?: ICmsNavItemsData,\n isRetail?: boolean,\n idx?: number,\n addedAllMenu?: boolean\n ): IMenuItemData {\n const locale =\n this.props.context && this.props.context.request && this.props.context.request.locale\n ? this.props.context.request.locale\n : 'en-us';\n const { categoryPromotionalContent } = this.props.config;\n const cmsItemText = (cmsItem && cmsItem.linkText) || '';\n const { menuAriaLabel } = this.props.resources;\n\n // Filter category promotional data based on category name\n const promotionalData =\n retailItem &&\n categoryPromotionalContent?.filter(promoItem => promoItem.categoryName?.toLowerCase() === retailItem?.Name?.toLowerCase());\n\n // First check if image is available from promotional data else read from retail server\n let imageSource: string = 'empty';\n if (ArrayExtensions.hasElements(retailItem?.Images) && retailItem!.Images[0].Uri) {\n imageSource = retailItem!.Images[0].Uri;\n }\n if (isRetail) {\n return {\n id: NavigationMenu.RSItemIdInit++,\n linkText: NavigationMenu.getFriendlyName(locale, retailItem?.NameTranslations) ?? '',\n linkURL: retailItem?.Url,\n imageSource,\n subMenu: this._getNestedChildren(retailItem, imageSource, addedAllMenu),\n promotionalContent: this.props.config.displayPromotionalImage && promotionalData,\n menuSource: MenuSource.Retail,\n ariaLabel: `${NavigationMenu.getFriendlyName(locale, retailItem?.NameTranslations) ?? ''} ${menuAriaLabel}`\n } as IMenuItemData;\n }\n return {\n id: NavigationMenu.CMSItemIdInit++,\n linkText: cmsItemText,\n linkURL: (cmsItem && cmsItem.linkUrl && cmsItem.linkUrl.destinationUrl) || '',\n imageDestinationURL: (cmsItem && cmsItem.imageLink && cmsItem.imageLink.destinationUrl) || '',\n imageSource: (cmsItem && cmsItem.image && cmsItem.image.src) || '',\n subMenu: this._getCMSNestedChildren(cmsItem),\n menuSource: MenuSource.Cms,\n shouldOpenNewTab: cmsItem?.openInNewTab,\n ariaLabel: `${cmsItemText} ${menuAriaLabel}`\n } as IMenuItemData;\n }\n\n private _getNestedChildren(category?: CategoryHierarchy, imageSourceUrl?: string, addedAllMenu: boolean = false): IMenuItemData[] {\n const nestedChildren: IMenuItemData[] = [];\n if (!category || !category.Children || category.Children.length === 0) {\n return [];\n }\n if (!this.props.config.enabletopMenu && addedAllMenu) {\n nestedChildren.push({\n linkText: this.props.resources.allCategoryMenuText,\n imageSource: imageSourceUrl,\n linkURL: getCategoryUrl(category, (this.props.context as unknown) as IActionContext, {})\n });\n }\n category.Children.map((item: CategoryHierarchy, index) => {\n nestedChildren.push(this._constructMenuItemData(item, undefined, true, index, false));\n });\n return nestedChildren;\n }\n\n private _getCMSNestedChildren(category?: ICmsNavItemsData): IMenuItemData[] {\n const nestedChildren: IMenuItemData[] = [];\n\n if (!category || !category.subMenus || category.subMenus.length === 0) {\n return [];\n }\n\n category.subMenus.map((item: ISubMenusData, idx: number) => {\n nestedChildren.push(this._constructMenuItemData(undefined, item, false, idx));\n });\n return nestedChildren;\n }\n\n private readonly _setNavigationSource = (sourceType?: navigationMenuSource): void => {\n switch (sourceType) {\n case navigationMenuSource.retailServerOnly:\n this.isRetail = true;\n this.isCMS = false;\n break;\n case navigationMenuSource.cmsOnly:\n this.isRetail = false;\n this.isCMS = true;\n break;\n case navigationMenuSource.all:\n this.isRetail = true;\n this.isCMS = true;\n break;\n default:\n }\n };\n\n private _updateViewport(): void {\n this.viewport = this._getViewport();\n this.setState({ isMobile: this.isMobile });\n }\n\n private _getViewport(): GridSize {\n const { context } = this.props;\n\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\nexport default NavigationMenu;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IImageData, IImageSettings, Image } from '@msdyn365-commerce/core';\nimport { ArrayExtensions, generateImageUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IPayLoad,\n ITelemetryContent,\n Module,\n Node,\n onTelemetryClick\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { INavigationMenuViewProps } from './navigation-menu';\nimport { IMenuItemData } from './navigation-menu.data';\n\ninterface INavigationState {\n parentMenu?: number;\n activeMenu?: number;\n categoryImage?: IImageData[] | null;\n mobileViewLabelText?: string;\n categoryImageAltText: string;\n}\n\n/**\n *\n * NavigationMenuView component.\n * @extends {React.PureComponent}\n */\nexport class NavigationMenuView extends React.PureComponent {\n private static isBackTrack: boolean = false;\n\n private currentLevel: number = 0;\n\n private readonly menuNode: React.RefObject;\n\n private readonly menuItemRef: React.RefObject;\n\n private readonly telemetryContent: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n constructor(props: INavigationMenuViewProps) {\n super(props);\n this.menuNode = React.createRef();\n this.menuItemRef = React.createRef();\n this.state = { activeMenu: undefined, mobileViewLabelText: '', parentMenu: undefined, categoryImageAltText: '' };\n this._closeSubmenu = this._closeSubmenu.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 }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser) {\n document.body.addEventListener('mousedown', this._handleClickOutside);\n document.body.addEventListener('focusout', this._handleFocusOutside);\n }\n }\n\n public componentDidUpdate(): void {\n if (this.menuItemRef.current?.children[0] && this.props.isMobileView) {\n (this.menuItemRef.current.children[0] as HTMLElement).focus();\n }\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser) {\n document.body.removeEventListener('mousedown', this._handleClickOutside, false);\n document.body.removeEventListener('focusout', this._handleFocusOutside, false);\n }\n }\n\n public render(): JSX.Element | null {\n const { isMobileView, MenuList, MobileBackButton, MobileDescriptionContainer, MobileDescriptionLabel, Navigation } = this.props;\n\n this.currentLevel = 1;\n return (\n \n \n {isMobileView && this.state.activeMenu !== undefined && (\n \n \n {this.state.mobileViewLabelText}\n \n )}\n {this._renderDisplay()}\n \n \n );\n }\n\n private _renderDisplay(): JSX.Element[] {\n const { ListItem, menuItemData, isMobileView } = this.props;\n const { activeMenu } = this.state;\n const menuItemList: JSX.Element[] = [];\n\n if (isMobileView && activeMenu !== undefined && menuItemData.length > 0) {\n let menuItem: IMenuItemData = {};\n for (const menuItemDatum of menuItemData) {\n if (menuItemDatum && menuItemDatum.id === activeMenu) {\n menuItem = menuItemDatum;\n !NavigationMenuView.isBackTrack\n ? this.setState({ parentMenu: undefined })\n : this.setState({ parentMenu: undefined, mobileViewLabelText: menuItemDatum.linkText });\n break;\n }\n menuItem = this._getFromSubMenu(menuItemDatum) as IMenuItemData;\n if (menuItem && menuItem.id === activeMenu) {\n break;\n }\n }\n\n menuItem &&\n menuItemList.push(\n \n {' '}\n {this._createMenuItemList(menuItem)}{' '}\n \n );\n } else {\n menuItemData.forEach((item: IMenuItemData, index: number) => {\n menuItemList.push(\n \n {this._createMenuItemList(item)}\n \n );\n });\n }\n\n return menuItemList;\n }\n\n private _getFromSubMenu(item?: IMenuItemData): IMenuItemData | null {\n const subMenus = item && item.subMenu;\n if (subMenus && subMenus.length > 0) {\n for (let i = 0; i <= subMenus.length - 1; i++) {\n if (subMenus[i].id === this.state.activeMenu) {\n !NavigationMenuView.isBackTrack\n ? this.setState({ parentMenu: item?.id })\n : this.setState({ parentMenu: item && item.id, mobileViewLabelText: subMenus[i].linkText });\n return subMenus[i];\n }\n const found = this._getFromSubMenu(subMenus[i]);\n if (found) {\n return found;\n }\n }\n }\n this.props.context.telemetry.error('Submenu content is empty, module wont render.');\n return null;\n }\n\n private _createMenuItemList(menuItemData: IMenuItemData): JSX.Element | null {\n if (menuItemData && menuItemData.subMenu && menuItemData.subMenu.length > 0) {\n if (this.props.isMobileView && this.state.activeMenu !== undefined) {\n return this._renderSubMenu(menuItemData.subMenu, menuItemData.id, false);\n }\n return (\n <>\n {this._renderButtonMenuItem(menuItemData)}\n {this._renderSubMenu(menuItemData.subMenu, menuItemData.id, false)}\n \n );\n } else if (menuItemData && menuItemData.linkText && menuItemData.linkURL && menuItemData.linkURL.length > 0) {\n return this._renderLinkMenuItem(menuItemData, menuItemData.id, false, true);\n } else if (menuItemData && menuItemData.linkText && !menuItemData.linkURL) {\n return this._renderSpanMenuItem(menuItemData, menuItemData.id, true);\n }\n this.props.context.telemetry.error('Navigation menu content is empty, module wont render.');\n return null;\n }\n\n private _renderSubMenu(subMenus?: IMenuItemData[], activeMenu?: number, IsSubMenu?: boolean): JSX.Element | null {\n const { isMobileView, ListItem } = this.props;\n const enableMultiSupportMenu = this.props.config.enableMultilevelMenu || false;\n const multiLevelSupportedMenu = this.props.config.menuLevelSupport || 3;\n\n // Const isParentMenu:boolean= false;\n if (activeMenu && this.state.activeMenu !== activeMenu) {\n this.props.context.telemetry.error('Navigation Active menu content is empty, module wont render.');\n return null;\n }\n\n if (!subMenus || subMenus.length === 0) {\n this.props.context.telemetry.error('Navigation Submenu content is empty, module wont render.');\n return null;\n }\n\n let levelClassName: string = '';\n const menuOptions =\n subMenus &&\n subMenus.map((option: IMenuItemData, idx: number) => {\n const hasOptions = option.subMenu && option.subMenu.length > 0;\n let menuItem: JSX.Element | null;\n if (hasOptions && isMobileView) {\n menuItem = this._renderButtonMenuItem(option, activeMenu, idx);\n } else {\n menuItem = option.linkURL ? this._renderLinkMenuItem(option, idx) : this._renderSpanMenuItem(option);\n }\n\n let subMenu;\n const haveSubmenu = hasOptions && enableMultiSupportMenu && this.currentLevel <= Math.round(multiLevelSupportedMenu) - 1;\n if (haveSubmenu) {\n this.currentLevel++;\n levelClassName = enableMultiSupportMenu ? `level-${this.currentLevel.toString()}` : '';\n subMenu = this._renderSubMenu(option.subMenu, isMobileView ? option.id : undefined, true);\n }\n return (\n \n {menuItem}\n {subMenu}\n \n );\n });\n return this._renderMenu(levelClassName, menuOptions, activeMenu, IsSubMenu);\n }\n\n private _renderButtonMenuItem(option: IMenuItemData, activeMenu?: number, index?: number): JSX.Element | null {\n const { Button } = this.props;\n return (\n \n {option.linkText}\n \n );\n }\n\n private _renderLinkMenuItem(\n option: IMenuItemData,\n index?: number,\n hoverEffect: boolean = true,\n isParent: boolean = false\n ): JSX.Element | null {\n const { Link } = this.props;\n const linkText = option.linkText ? option.linkText : '';\n const imagesource = option.imageSource ? option.imageSource : '';\n this.payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n return (\n \n {option.linkText}\n \n );\n }\n\n private _renderPromotionalLink(linkText?: string, linkUrl?: string): JSX.Element | null {\n const { Link } = this.props;\n this.payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n if (linkText && linkUrl) {\n return (\n \n {linkText}\n \n );\n }\n return null;\n }\n\n private _renderSpanMenuItem(option: IMenuItemData, index?: number, isParent: boolean = false): JSX.Element | null {\n const { Span } = this.props;\n return (\n \n {option.linkText}\n \n );\n }\n\n private _renderMenu(level: string, menuOptions: JSX.Element[], currentItem?: number, submenu?: boolean): JSX.Element | null {\n const { DivContainer, MenuList, ImageDivContainer, showCategoryImage, showPromotionalContent, isMobileView } = this.props;\n const categoryImageDisplay =\n !isMobileView &&\n (showCategoryImage || showPromotionalContent) &&\n !ArrayExtensions.hasElements(this.state.categoryImage) &&\n !submenu;\n const promotionalContentDisplay =\n !isMobileView && showPromotionalContent && ArrayExtensions.hasElements(this.state.categoryImage) && !submenu;\n const DivContainerClass = this.currentLevel > 2 || categoryImageDisplay ? DivContainer!.className : 'ms-nav__deafult';\n this.currentLevel = 1;\n return (\n \n 2 &&\n 'navmenu-multi-level'\n )}\n >\n {menuOptions}\n \n {categoryImageDisplay &&\n this.state.categoryImage &&\n this.state.categoryImage.map(item => (\n \n {this.state.categoryImage && this._getCategoryImage(item)}\n {promotionalContentDisplay && this._renderPromotionalLink(item.altText, item.additionalProperties?.linkUrl)}\n \n ))}\n \n );\n }\n\n private readonly _updateCategoryImage = (categoryImageSrc: string, option: IMenuItemData) => () => {\n const linkText = option && option.linkText ? option.linkText : '';\n const promotionalImage: IImageData[] = [{ src: categoryImageSrc, altText: linkText }];\n\n // Read category and promotional image in one array\n if (ArrayExtensions.hasElements(option.promotionalContent)) {\n option.promotionalContent.map(item => {\n if (item && item.image) {\n const imageSrc = item.image.src;\n const promotionalItemImageSettings = item.image.imageSettings;\n promotionalImage.push({\n src: imageSrc,\n altText: item.text,\n imageSettings: promotionalItemImageSettings,\n additionalProperties: { linkUrl: item.linkUrl.destinationUrl }\n });\n }\n });\n }\n this.setState({\n categoryImage: promotionalImage.length > 0 ? promotionalImage : [{ src: 'empty' }],\n categoryImageAltText: linkText\n });\n };\n\n private readonly _handleDropdownToggle = (data: IMenuItemData, parentId?: number) => () => {\n if (!this.props.isMobileView) {\n this.setState({\n activeMenu: this.state.activeMenu && this.state.activeMenu === data.id! ? undefined : data.id!,\n parentMenu: parentId\n });\n if (this.props.showCategoryImage) {\n this._updateCategoryImage(data.imageSource!, data)();\n }\n } else {\n NavigationMenuView.isBackTrack = false;\n this.setState({\n activeMenu: data.id,\n mobileViewLabelText: data.linkText!,\n parentMenu: parentId\n });\n }\n };\n\n private readonly _handleGoBack = () => () => {\n NavigationMenuView.isBackTrack = true;\n this.setState({ activeMenu: this.state.parentMenu });\n };\n\n /**\n * Method to handle click outside of menu.\n * @param event -HTML event.\n */\n private readonly _handleClickOutside = (event: MouseEvent) => {\n if (this.menuNode.current && !this.menuNode.current.contains(event.target as Node)) {\n this.setState({\n activeMenu: undefined,\n mobileViewLabelText: '',\n categoryImage: null\n });\n }\n };\n\n /**\n * Method to handle click outside of menu.\n * @param event -HTML event.\n */\n private readonly _handleFocusOutside = (event: FocusEvent) => {\n if (this.menuNode.current && !this.menuNode.current.contains(event.relatedTarget as Node)) {\n this._closeSubmenu();\n }\n };\n\n /**\n * Checks to assign a ref for focus.\n * @param index -Sub menu list index.\n * @param mobileViewLabelText -Parent user clicked Sub menu list.\n * @param optionLinkText -Sub menu list.\n * @returns Ref.\n */\n private readonly _shouldAddFocusMenuRef = (index: number, mobileViewLabelText?: string, optionLinkText?: string) => {\n if (!NavigationMenuView.isBackTrack && index === 0) {\n return true;\n }\n if (!optionLinkText || !mobileViewLabelText) {\n return false;\n }\n return mobileViewLabelText === optionLinkText;\n };\n\n private _closeSubmenu(): void {\n if (!this.props.isMobileView) {\n this.setState({ activeMenu: undefined, categoryImage: null, mobileViewLabelText: '' });\n }\n }\n\n private readonly _getCategoryImage = (categoryImage?: IImageData): React.ReactNode | null => {\n if (!categoryImage || !categoryImage.src) {\n return null;\n }\n\n const categoryImageUrl = generateImageUrl(`${categoryImage.src}`, this.props.context.actionContext.requestContext.apiSettings);\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\n sm: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\n md: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\n lg: { q: 'w=300&h=250&m=8', w: 0, h: 0 }\n },\n lazyload: true\n };\n if (categoryImageUrl !== undefined) {\n return (\n \n );\n }\n return null;\n };\n}\n\nexport default NavigationMenuView;\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 { IHelp, IOrderSummary, IPaymentMethods } from '../../common';\nimport { IGroup, IGroupDelivery, IGroups } from '../../common/get-groups';\nimport { IOrderInformation } from '../../common/get-order-information';\nimport { ISalesLine } from '../../common/get-sales-line';\nimport { IOrderDetailsViewProps } from './order-details';\n\nexport const OrderDetailsOrderInfomation: React.FC = ({\n orderInformationProps,\n salesId,\n receiptId,\n createdDate,\n count,\n amount,\n channelReferenceId,\n channelName,\n channelAddress\n}) => (\n \n {channelName}\n {channelAddress}\n {channelReferenceId}\n {salesId}\n {receiptId}\n {createdDate}\n {count}\n {amount}\n \n);\n\nexport const OrderDetailsSalesLine: React.FC = ({ salesLineProps, salesLine, buyAgainButton, errors }) => (\n \n {salesLine}\n {buyAgainButton}\n {errors}\n \n);\n\nexport const OrderDetailsGroupDelivery: React.FC = ({ deliveryProps, heading, count }) => (\n \n {heading}\n {count}\n \n);\n\nexport const OrderDetailsGroup: React.FC = ({\n groupProps,\n delivery,\n address,\n salesLinesProps,\n salesLines,\n isCashAndCarryTransaction\n}) => (\n \n {delivery && }\n {salesLines && (\n \n {salesLines.map(salesLine => (\n \n {salesLine.data.deliveryType === 'ship' && salesLine.data.shipment ? salesLine.trackingInfo : null}\n \n {!isCashAndCarryTransaction && salesLine.salesStatus}\n \n ))}\n \n )}\n {!delivery.showTimeslot && address}\n {delivery.showTimeslot && (\n \n {address}\n {delivery.pickupDateTimeslot}\n \n )}\n \n);\n\nexport const OrderDetailsGroups: React.FC = ({ groupsProps, groups }) => (\n \n {groups.map((group: IGroup, index: number) => (\n \n ))}\n \n);\n\nexport const OrderDetailsOrderSummary: React.FC = ({\n orderSummaryProps,\n heading,\n subtotal,\n shipping,\n tax,\n totalAmount,\n earnedPoints\n}) => (\n \n {heading}\n {subtotal}\n {shipping}\n {tax}\n {totalAmount}\n {earnedPoints}\n \n);\n\nexport const OrderDetailsPayment: React.FC = ({ paymentMethodsProps, title, methods }) => (\n \n {title}\n {methods}\n \n);\n\nexport const OrderDetailsHelp: React.FC = ({ helpProps, needHelpLabel, helpLineNumberLabel, contactNumber }) => (\n \n {needHelpLabel}\n {helpLineNumberLabel}\n {contactNumber}\n \n);\n\nconst OrderDetailsView: React.FC = ({\n moduleProps,\n tableViewActions,\n viewModes,\n table,\n placedBy,\n heading,\n alert,\n loading,\n orderInfomation,\n orderSummary,\n payment,\n help,\n groups\n}) => {\n return (\n \n {placedBy}\n {heading}\n {alert}\n {loading}\n {orderInfomation && }\n {tableViewActions}\n {viewModes}\n {table}\n {groups && }\n {orderSummary && }\n {payment && }\n {help && }\n \n );\n};\n\nexport default OrderDetailsView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport {\n Button,\n ITelemetryContent,\n TelemetryConstant,\n getPayloadObject,\n getTelemetryAttributes\n} from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport classnames from 'classnames';\n\n/**\n * Class names used in component.\n */\nconst componentClassName = 'ms-order-history-with-search-and-filters-view-mode-selector';\nconst detailsViewClassName = `${componentClassName}__detailed-view`;\nconst listViewClassName = `${componentClassName}__list-view`;\nconst viewSelectedClassName = `${componentClassName}__selected`;\n\n/**\n * IOrderHistoryWithSearchAndFiltersViewModeResources interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersViewModeResources {\n listViewOptionAriaLabel?: string;\n detailedViewOptionAriaLabel?: string;\n}\n\n/**\n * OrderHistoryWithSearchAndFiltersViewModeState interface.\n */\nexport enum OrderHistoryWithSearchAndFiltersViewModeState {\n DetailedView,\n ListView\n}\n\n/**\n * IOrderHistoryWithSearchAndFiltersViewModeProps interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersViewModeProps extends IComponentProps<{}> {\n className?: string;\n resources?: IOrderHistoryWithSearchAndFiltersViewModeResources;\n currentViewModeState: OrderHistoryWithSearchAndFiltersViewModeState;\n telemetryContent?: ITelemetryContent;\n onClick(state: OrderHistoryWithSearchAndFiltersViewModeState): void;\n}\n\n/**\n * OrderHistoryWithSearchAndFiltersViewMode component.\n * @param props - Configuration of the component.\n * @returns React node.\n */\nconst OrderHistoryWithSearchAndFiltersViewModeFunctionalComponent: React.FC = (\n props: IOrderHistoryWithSearchAndFiltersViewModeProps\n) => {\n const [viewModeState, setViewModeState] = React.useState(props.currentViewModeState);\n\n const onClickHandler = (newViewModeState: OrderHistoryWithSearchAndFiltersViewModeState) => {\n setViewModeState(newViewModeState);\n props.onClick(newViewModeState);\n };\n\n // define telemetry attributes\n const viewModeDetailedViewAttributes = getTelemetryAttributes(\n props.telemetryContent!,\n getPayloadObject('click', props.telemetryContent!, `${TelemetryConstant.ViewMode} - Detailed view`)\n );\n const viewModeListViewAttributes = getTelemetryAttributes(\n props.telemetryContent!,\n getPayloadObject('click', props.telemetryContent!, `${TelemetryConstant.ViewMode} - List view`)\n );\n\n return (\n
    \n onClickHandler(OrderHistoryWithSearchAndFiltersViewModeState.DetailedView)}\n {...viewModeDetailedViewAttributes}\n />\n onClickHandler(OrderHistoryWithSearchAndFiltersViewModeState.ListView)}\n {...viewModeListViewAttributes}\n />\n
    \n );\n};\n\n/**\n * OrderHistoryWithSearchAndFiltersViewMode component.\n */\nexport const OrderHistoryWithSearchAndFiltersViewModeComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IOrderHistoryWithSearchAndFiltersViewModeProps\n>('OrderHistoryWithSearchAndFiltersViewModeComponent', { component: OrderHistoryWithSearchAndFiltersViewModeFunctionalComponent });\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IOrderLookupViewProps } from './order-lookup';\n\n/**\n * View component.\n * @param props - The view properties.\n * @returns - Returns JSX Element.\n */\nexport const OrderLookupViewComponent: React.FC = props => {\n const {\n orderLookup,\n orderLookupContainer,\n orderLookupAdditionalFieldContainer,\n heading,\n paragraph,\n orderLookupForm,\n renderOrderLookupInputField,\n orderNumberInput,\n errorMessage,\n submitButton,\n additionalProperties,\n registeredUserMessage,\n fieldErrorMessage\n } = props;\n return (\n \n \n {heading}\n {paragraph}\n \n {orderNumberInput}\n {renderOrderLookupInputField}\n {ArrayExtensions.hasElements(additionalProperties) && (\n \n {additionalProperties.map((item: JSX.Element) => (\n {item}\n ))}\n \n )}\n {fieldErrorMessage}\n \n {props.submitButtonLabelText}\n \n {errorMessage}\n \n {registeredUserMessage}\n \n \n );\n};\n\nexport default OrderLookupViewComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IProductDimensionConfigureDropdownViewProps, IProductDimensionConfigureViewProps } from '@msdyn365-commerce/components';\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IQuickOrderFormViewProps, IQuickOrderViewProps } from './index';\n\n/**\n * Render product dimension/configure container.\n * @param configure -- Product dimension configuration.\n * @returns Container to have dimension dropdown.\n */\nconst renderConfigure = (configure?: IProductDimensionConfigureViewProps): JSX.Element | null => {\n if (configure !== undefined) {\n const { containerProps, dropdowns } = configure;\n\n return {dropdowns.map(renderConfigureDropdown)};\n }\n return null;\n};\n\n/**\n * Render product dimension/configure dropdown.\n * @param dropdown -- Product dimension drop down.\n * @returns Dropdown.\n */\nconst renderConfigureDropdown = (dropdown: IProductDimensionConfigureDropdownViewProps): JSX.Element => {\n const { containerProps, labelContainerProps, heading, errors, select } = dropdown;\n\n return (\n \n {heading}\n {errors}\n {select}\n \n );\n};\n\nconst renderForm = (\n form: IQuickOrderFormViewProps,\n isMobileView: boolean,\n quickOrderForm: INodeProps,\n quickOrderProductContent: INodeProps,\n quickOrderMsgContent: INodeProps,\n configure?: IProductDimensionConfigureViewProps\n) => {\n return isMobileView ? (\n \n \n {form.product}\n {renderConfigure(configure)}\n {form.quantity}\n {form.userMessage}\n {form.addToCartBtn}\n \n \n ) : (\n \n {form.userMessage}\n \n {form.product}\n {renderConfigure(configure)}\n {form.quantity}\n {form.addToCartBtn}\n \n \n );\n};\n\nconst quickOrderView: React.FC = props => {\n const {\n quickOrderProps,\n contentProps,\n form,\n quickOrderForm,\n drawer,\n configure,\n quickOrderFormProductContent,\n quickOrderFormMsgContent,\n quickOrderList,\n isMobileView\n } = props;\n\n return (\n \n \n \n {renderForm(\n form as IQuickOrderFormViewProps,\n isMobileView,\n quickOrderForm,\n quickOrderFormProductContent,\n quickOrderFormMsgContent,\n configure\n )}\n \n \n\n {quickOrderList}\n \n );\n};\nexport default quickOrderView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IModuleProps, INodeProps, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { ITabItemData } from './tab-item.data';\nimport { ITabItemProps } from './tab-item.props.autogenerated';\n\nexport interface ITabItemViewProps {\n TabContentContainer: IModuleProps;\n TabHeaderContainer: IModuleProps;\n tabSlots: INodeProps;\n TabItemContent: INodeProps;\n tabItemType?: TabItemType;\n tabHeader: React.ReactNode;\n}\n\nexport interface ITabItemExtentedProps extends ITabItemProps {\n tabItemType?: TabItemType;\n isSelected?: boolean;\n itemIndex?: number;\n tabId?: string;\n}\n\nexport enum TabItemType {\n TabHeader,\n TabContent\n}\n\n/**\n *\n * TabItem component.\n * @extends {React.Component}\n */\n@observer\nclass TabItem extends React.PureComponent {\n private readonly moduleContentClassName: string = 'ms-tab-item-content';\n\n private readonly moduleHeaderClassName: string = 'ms-tab-item-header';\n\n constructor(props: ITabItemProps) {\n super(props);\n this._renderTabHeader = this._renderTabHeader.bind(this);\n }\n\n public render(): JSX.Element {\n const { slots, renderView, config, data, isSelected, itemIndex } = this.props;\n const index = itemIndex || 0;\n const contentID = getContentID(index, this.props.tabId || '');\n const activeContentIDResult = data && data.activeTabState && data.activeTabState.result;\n const shown =\n activeContentIDResult &&\n activeContentIDResult.tabId === this.props.tabId &&\n activeContentIDResult.activeContentIndex !== undefined\n ? activeContentIDResult.activeContentIndex === index\n : isSelected || false;\n const viewProps = {\n ...this.props,\n TabContentContainer: {\n moduleProps: this.props,\n className: classnames(this.moduleContentClassName, config.className)\n },\n TabHeaderContainer: {\n moduleProps: this.props,\n className: classnames(this.moduleHeaderClassName, config.className)\n },\n TabItemContent: {\n className: 'ms-tab-item-content__content',\n tag: 'section' as NodeTag,\n 'aria-hidden': !shown,\n role: 'tabpanel',\n tabIndex: shown ? 0 : -1,\n id: contentID\n },\n tabHeader: this._renderTabHeader(),\n tabSlots: slots\n };\n return renderView(viewProps) as React.ReactElement;\n }\n\n private _renderTabHeader(): React.ReactNode {\n return <>{this.props.config.tabItemTitle};\n }\n}\n\nexport const getContentID = (index: number, id: string) => {\n return `tab-item-content-${id}-${index}`;\n};\n\nexport default TabItem;\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 { ITabItemViewProps, TabItemType } from './tab-item';\n\nconst TabItemView: React.FC = props => {\n const { tabItemType, tabSlots, TabContentContainer, TabHeaderContainer, TabItemContent, tabHeader } = props;\n\n switch (tabItemType) {\n case TabItemType.TabContent:\n return (\n \n \n {tabSlots &&\n tabSlots.tabItemContent &&\n tabSlots.tabItemContent.length &&\n _renderTabItemContent(tabSlots.tabItemContent)}\n \n \n );\n case TabItemType.TabHeader:\n return {tabHeader};\n default:\n return null;\n }\n};\n\nconst _renderTabItemContent = (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 TabItemView;\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, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { createTabStateInput, getContentID, TabItemType } from '../..';\nimport { ITabData } from './tab.data';\nimport { ITabProps } from './tab.props.autogenerated';\n\n/**\n *\n * Tab component.\n * @extends {React.PureComponent>}\n */\n\nexport interface ICallToActionProps {\n link: INodeProps[];\n}\n\nexport interface ITabViewProps extends ITabProps<{}> {\n heading?: React.ReactNode;\n TabContainer: IModuleProps;\n headerSection: INodeProps;\n tabHeaderSection: INodeProps;\n tabsSection: INodeProps;\n tabItemContainer: INodeProps;\n tabHeaders: React.ReactNode;\n tabContents: React.ReactNode;\n}\n\nexport interface ITabViewStates {\n currentTabIndex: number;\n}\n\n/**\n *\n * Tab component.\n * @extends {React.Component>}\n */\n@observer\nclass Tab extends React.Component, ITabViewStates> {\n public readonly tabIndexQuery: string = 'activeTab';\n\n private activeLink: HTMLLIElement | null;\n\n constructor(props: ITabProps) {\n super(props);\n const { defaultTabIndex } = this.props.config;\n const { slots } = this.props;\n const slotLength = (slots && slots.tabItems && slots.tabItems.length) || 0;\n let initialIndex = defaultTabIndex && defaultTabIndex <= slotLength && defaultTabIndex > 0 ? defaultTabIndex - 1 : 0;\n const queryString: string =\n (this.props.context &&\n this.props.context.request &&\n this.props.context.request.query &&\n this.props.context.request.query.activeTab) ||\n '';\n let queryTabIndex: number = 0;\n if (queryString.indexOf(':') > 0) {\n const arr = queryString.split(':');\n const moduleId = arr[0];\n if (moduleId === this.props.id) {\n queryTabIndex = Number.parseInt(arr[1], 10);\n }\n }\n initialIndex = queryTabIndex > 0 && queryTabIndex <= slotLength ? queryTabIndex - 1 : initialIndex;\n this.state = { currentTabIndex: initialIndex };\n\n this._getTabHeader = this._getTabHeader.bind(this);\n this._getTabContent = this._getTabContent.bind(this);\n this._onClick = this._onClick.bind(this);\n this._onKeyDown = this._onKeyDown.bind(this);\n this._setGetParameter = this._setGetParameter.bind(this);\n this.activeLink = null;\n }\n\n public shouldComponentUpdate(nextProps: ITabProps, nextState: ITabViewStates): 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 { slots } = this.props;\n const { heading, className } = this.props.config;\n\n const headingComponent = heading && (\n \n );\n const slotLength = (slots && slots.tabItems && slots.tabItems.length) || 0;\n\n // Const queryTabIndex = this.props.context && this.props.context.request && this.props.context.request.query && +this.props.context.request.query.activeTabIndex || 0;\n // let activeIndex = defaultTabIndex && defaultTabIndex <= slotLength && defaultTabIndex > 0 ? defaultTabIndex - 1 : 0;\n // activeIndex = queryTabIndex > 0 && queryTabIndex <= slotLength ? queryTabIndex - 1 : activeIndex;\n\n const tabViewProps = {\n ...this.props,\n TabContainer: {\n moduleProps: this.props,\n className: classnames('ms-tab', className)\n },\n headerSection: { className: 'ms-tab-header-section' },\n tabsSection: { className: 'ms-tab-tabs-section', tag: 'ul' as NodeTag, role: 'tablist' },\n heading: headingComponent,\n config: this.props && this.props.config,\n tabItemContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-tab-content-section'\n },\n tabContents: slotLength > 0 && slots.tabItems.map((item: React.ReactNode, index: number) => this._getTabContent(item, index)),\n tabHeaders: slotLength > 0 && slots.tabItems.map((item: React.ReactNode, index: number) => this._getTabHeader(item, index))\n };\n return this.props.renderView(tabViewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: MsDyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n public componentDidUpdate(): void {\n const { data } = this.props;\n if (!this.props.context.request.params.isEditor) {\n const dataActionTabId = data && data.activeTabState && data.activeTabState.result && data.activeTabState.result.tabId;\n if (dataActionTabId) {\n if (this.props.id === dataActionTabId) {\n this.activeLink && this.activeLink.focus();\n }\n } else {\n const queryString: string =\n (this.props.context &&\n this.props.context.request &&\n this.props.context.request.query &&\n this.props.context.request.query.activeTab) ||\n '';\n if (queryString.indexOf(':') > 0) {\n const arr = queryString.split(':');\n const moduleId = arr[0];\n if (moduleId === this.props.id) {\n this.activeLink && this.activeLink.focus();\n }\n }\n }\n }\n }\n\n /**\n *Set the activate link value on tab click.\n * @param link -Ref link value.\n */\n private readonly _refHandler = (link: HTMLLIElement | null) => {\n this.activeLink = link;\n };\n\n private _getTabHeader(item: React.ReactNode, index: number): React.ReactNode {\n const { data } = this.props;\n const activeContentIndex =\n data && data.activeTabState && data.activeTabState.result && data.activeTabState.result.activeContentIndex;\n const dataActionTabId = data && data.activeTabState && data.activeTabState.result && data.activeTabState.result.tabId;\n const selected =\n activeContentIndex !== undefined && dataActionTabId === this.props.id\n ? activeContentIndex === index\n : this.state.currentTabIndex === index;\n const contentID = getContentID(index, this.props.id);\n\n return (\n \n \n {React.cloneElement(item as React.ReactElement, {\n tabItemType: TabItemType.TabHeader,\n isSelected: index === this.state.currentTabIndex,\n itemIndex: index,\n tabId: this.props.id\n })}\n \n \n );\n }\n\n private readonly _onClick = (index: number, id: string) => (e: React.MouseEvent) => {\n const activeTabState = { activeContentIndex: index, tabId: id };\n this.props.context.actionContext.update(createTabStateInput(activeTabState), activeTabState);\n this.setState({ currentTabIndex: index });\n\n // Update query paramter\n const requestContext = this.props.context.request;\n const newUrl = this._setGetParameter(requestContext, this.tabIndexQuery, `${this.props.id}:${String(index + 1)}`);\n requestContext && window.history.pushState({ path: newUrl }, '', newUrl);\n };\n\n private readonly _onKeyDown = (index: number, id: string) => (e: React.KeyboardEvent) => {\n if (e.keyCode === 13) {\n const activeTabState = { activeContentIndex: index, tabId: id };\n this.props.context.actionContext.update(createTabStateInput(activeTabState), activeTabState);\n this.setState({ currentTabIndex: index });\n\n // Update query paramter\n const requestContext = this.props.context.request;\n const newUrl = this._setGetParameter(requestContext, this.tabIndexQuery, `${this.props.id}:${String(index + 1)}`);\n requestContext && window.history.pushState({ path: newUrl }, '', newUrl);\n }\n\n if (e.keyCode === 39 || e.keyCode === 37) {\n const { slots } = this.props;\n const slotLength = (slots && slots.tabItems && slots.tabItems.length) || 0;\n\n if (e.keyCode === 39) {\n // If we're at the end, go to the start\n if (index + 1 === slotLength) {\n index = -1;\n }\n const activeTabState = { activeContentIndex: index + 1, tabId: id };\n this.props.context.actionContext.update(createTabStateInput(activeTabState), activeTabState);\n this.setState({ currentTabIndex: index + 1 });\n\n // Update query paramter\n const requestContext = this.props.context.request;\n const newUrl = this._setGetParameter(requestContext, this.tabIndexQuery, `${this.props.id}:${String(index + 2)}`);\n requestContext && window.history.pushState({ path: newUrl }, '', newUrl);\n\n // Move left\n } else if (e.keyCode === 37) {\n // If we're at the start, move to the end\n if (index === 0) {\n index = slotLength;\n }\n const activeTabState = { activeContentIndex: index - 1, tabId: id };\n this.props.context.actionContext.update(createTabStateInput(activeTabState), activeTabState);\n this.setState({ currentTabIndex: index - 1 });\n\n // Update query paramter\n const requestContext = this.props.context.request;\n const newUrl = this._setGetParameter(requestContext, this.tabIndexQuery, `${this.props.id}:${String(index)}`);\n requestContext && window.history.pushState({ path: newUrl }, '', newUrl);\n }\n }\n };\n\n private _getTabContent(item: React.ReactNode, index: number): React.ReactNode {\n return (\n \n {React.cloneElement(item as React.ReactElement, {\n tabItemType: TabItemType.TabContent,\n isSelected: index === this.state.currentTabIndex,\n itemIndex: index,\n tabId: this.props.id\n })}\n \n );\n }\n\n private _setGetParameter(requestContext: MsDyn365.IRequestContext, paramName: string, paramValue: string): string {\n let url;\n\n if (MsDyn365.msdyn365Commerce.isBrowser) {\n url = new URL(window.location.href);\n } else {\n url = new URL(requestContext.url.requestUrl.href);\n }\n\n const params = new window.URLSearchParams(url.search);\n params.set(paramName, paramValue);\n url.search = decodeURIComponent(params.toString());\n return url.toString();\n }\n}\n\nexport default Tab;\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 { ITabViewProps } from './tab';\n\nconst tabView: React.FC = props => {\n const { heading, TabContainer, tabHeaders, tabContents } = props;\n if (!props.heading && !props.tabHeaders && !props.tabContents) {\n props.context.telemetry.error('Tab content is empty, module wont render');\n return null;\n }\n return (\n \n {heading}\n {tabHeaders}\n {tabContents}\n \n );\n};\n\nexport default tabView;\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 '../tile-list-item.props.autogenerated';\n\n/**\n * Tile List links.\n */\nexport interface ITileListLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n telemetryContent: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\n/**\n *\n * ITileListLinks component.\n * @extends {React.PureComponent}\n */\nexport class TileListLinks 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 * ITileListLinks component.\n * @param linkdata - Link data.\n * @returns Editable links.\n */\n private readonly _mapEditableLinks = (linkdata: ILinksData[]): Msdyn365.ILinksData[] | null => {\n if (!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-tile-list__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 TileListLinks;\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 { TileListLinks } from './components';\nimport { IHeadingData, ITileListItemProps } from './tile-list-item.props.autogenerated';\n\n/**\n * Tile-list-item view props.\n */\nexport interface ITileListItemViewProps extends ITileListItemProps<{}> {\n heading?: React.ReactNode;\n paragraph?: React.ReactNode;\n links?: React.ReactNode;\n backgroundImage?: React.ReactNode;\n thumbnailImage?: React.ReactNode;\n tileListItem: IModuleProps;\n tileListContainer: INodeProps;\n tileListImageContainer: INodeProps;\n tileListThumbnailImageContainer: INodeProps;\n tileListHeadingContainer: INodeProps;\n}\n\n/**\n *\n * TileListItem component.\n * @extends {React.PureComponent>}\n */\nexport class TileListItem 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: ITileListItemProps<{}>) {\n super(props);\n }\n\n public render(): JSX.Element {\n const { heading, paragraph, backgroundImage, thumbnailImage, redirectionUrl, links } = this.props.config;\n const tileListLinks = links && ArrayExtensions.hasElements(links) && (\n \n );\n const tileListLinkContainer = {\n tag: 'a' as NodeTag,\n className: 'ms-tile-list-container',\n role: 'link',\n href: redirectionUrl?.linkUrl.destinationUrl,\n 'aria-label': redirectionUrl?.ariaLabel,\n target: redirectionUrl?.openInNewTab ? '_blank' : undefined\n };\n\n const tileListButtonContainer = {\n tag: 'button' as NodeTag,\n className: 'ms-tile-list-container'\n };\n const viewProps: ITileListItemViewProps = {\n ...this.props,\n heading: this._createHeading(heading),\n paragraph: this._createParagraph(paragraph),\n backgroundImage: this._renderBackgroundImage(backgroundImage),\n thumbnailImage: this._renderThumbnailImage(thumbnailImage),\n links: tileListLinks,\n tileListItem: {\n moduleProps: this.props,\n className: ''\n },\n tileListContainer: redirectionUrl ? tileListLinkContainer : tileListButtonContainer,\n tileListImageContainer: {\n className: 'ms-tile-list__image'\n },\n tileListThumbnailImageContainer: {\n className: 'ms-tile-list__thumbnail_image',\n 'aria-hidden': 'true'\n },\n tileListHeadingContainer: {\n className: 'ms-tile-list__heading'\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 _renderBackgroundImage(item?: Msdyn365.IImageData, isAriaHiddenAttribute?: boolean): React.ReactNode | null {\n // If image is null, we want to render the placeholder SVG - by passing image data with empty src\n\n const defaultImageSettings: Msdyn365.IImageSettings = {\n viewports: {\n xs: { q: 'w=328&h=412&m=6', w: 328, h: 412 },\n sm: { q: 'w=328&h=412&m=6', w: 328, h: 412 },\n md: { q: 'w=315&h=412&m=6', w: 315, h: 412 },\n lg: { q: 'w=315&h=412&m=6', w: 315, h: 412 },\n xl: { q: 'w=315&h=412&m=6', w: 315, h: 412 }\n },\n lazyload: true\n };\n const verifiedImageSettings = item?.imageSettings?.viewports ? item.imageSettings : defaultImageSettings;\n\n return (\n \n );\n }\n\n private _renderThumbnailImage(\n item?: Msdyn365.IImageData,\n itemImageSettings?: Msdyn365.IImageSettings,\n isAriaHiddenAttribute?: boolean\n ): React.ReactNode | null {\n if (!item) {\n return null;\n }\n if (StringExtensions.isNullOrWhitespace(item.src)) {\n return null;\n }\n\n return (\n \n );\n }\n}\n\nexport default TileListItem;\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 { ITileListItemViewProps } from './tile-list-item';\n\n/**\n *\n * ITileListItemViewProps component.\n * @param props - Component props.\n * @returns TileListView.\n */\nconst renderTileListItemContent = (props: ITileListItemViewProps): JSX.Element => {\n const {\n heading,\n paragraph,\n backgroundImage,\n links,\n thumbnailImage,\n tileListContainer,\n tileListImageContainer,\n tileListThumbnailImageContainer,\n tileListHeadingContainer\n } = props;\n\n return (\n \n {backgroundImage}\n \n {heading}\n {paragraph}\n {links}\n \n {thumbnailImage}\n \n );\n};\n\n/**\n *\n * TileListItemViewProps component.\n * @param props - Component props.\n * @returns TileListView.\n */\nexport const TileListItemViewComponent: React.FC = props => {\n const { tileListItem } = props;\n return {renderTileListItemContent(props)};\n};\n\nexport default TileListItemViewComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n ICartLineItemViewProps,\n ICartlinesViewProps,\n ICartResources,\n ICartViewProps,\n IOrderSummaryErrors\n} from '@msdyn365-commerce-modules/cart';\nimport { IInvoiceSummaryLines } from '@msdyn365-commerce-modules/invoice-payment-summary';\nimport { IOrderSummaryLines } from '@msdyn365-commerce-modules/order-summary-utilities';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n INodeProps,\n ITelemetryContent,\n Node,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICartProps as ICartExtensionProps } from '../definition-extensions/cart.ext.props.autogenerated';\n\n/**\n * Toggle Bopis Function.\n * @param cartLine -CartLine.\n * @param isBopisSelected -Boolean.\n * @returns Toggle Bopis.\n */\nconst toggleBopisHandler = (cartLine: ICartlinesViewProps, isBopisSelected: boolean) => () => {\n cartLine.pickUpInStore?.callbacks.toggleBopis(!isBopisSelected);\n};\n\n/**\n * Change Store Function.\n * @param cartLine -CartLine.\n * @returns Toggle Bopis.\n */\nconst onChangeStoreHandler = (cartLine: ICartlinesViewProps) => () => {\n cartLine.pickUpInStore?.callbacks.toggleBopis(true);\n};\n\n/**\n * Render Bopis block.\n * @param cartLine - The cart line view props.\n * @param resources - Module resource strings.\n * @param storeSelector - Store selector element.\n * @param telemetryContent - The telemetry object.\n * @param emailDeliveryModeCode - The email delivery mode code.\n * @returns JSX Element.\n */\nconst renderBopisBlock = (\n cartLine: ICartlinesViewProps,\n resources: ICartResources,\n storeSelector: React.ReactNode | undefined,\n telemetryContent?: ITelemetryContent,\n emailDeliveryModeCode?: string\n): JSX.Element | null => {\n // If it is electronic item cart line, then return null for BOPISBlock.\n if (!cartLine.pickUpInStore || !storeSelector || cartLine.data?.cartline.DeliveryMode === emailDeliveryModeCode) {\n return null;\n }\n\n const {\n shipInsteadDisplayText,\n shipToAddressDisplayText,\n pickItUpDisplayText,\n pickUpAtStoreWithLocationText,\n changeStoreDisplayText\n } = resources;\n\n const isBopisSelected = cartLine.pickUpInStore.isBopisSelected;\n\n const payLoad = getPayloadObject('click', telemetryContent!, TelemetryConstant.PickupInStore);\n const puckUpinStoreAttribute = getTelemetryAttributes(telemetryContent!, payLoad);\n\n return (\n \n
    \n {isBopisSelected ? (\n {pickUpAtStoreWithLocationText}\n ) : (\n {shipToAddressDisplayText}\n )}\n
    \n {isBopisSelected && (\n
    \n {cartLine.pickUpInStore.orgUnitName}\n \n
    \n )}\n \n {isBopisSelected ? shipInsteadDisplayText : pickItUpDisplayText}\n \n
    \n );\n};\n\n/**\n * Render Bopis block.\n * @param cartLine - The cart line view props.\n * @param resources - Module resource strings.\n * @param storeSelector - Store selector element.\n * @param telemetryContent - The telemetry object.\n * @param emailDeliveryModeCode - The email delivery mode code.\n * @returns JSX Element.\n */\nconst renderGroupBopisBlock = (\n cartLine: ICartlinesViewProps,\n resources: ICartResources,\n storeSelector: React.ReactNode | undefined,\n telemetryContent?: ITelemetryContent,\n emailDeliveryModeCode?: string\n): JSX.Element | null => {\n // If it is electronic item cart line, then return null for GroupBOPISBlock.\n if (!cartLine.pickUpInStore || !storeSelector || cartLine.data?.cartline.DeliveryMode === emailDeliveryModeCode) {\n return null;\n }\n\n const { changeStoreDisplayText, shipInsteadDisplayText, pickItUpDisplayText } = resources;\n\n const isBopisSelected = cartLine.pickUpInStore.isBopisSelected;\n\n const payLoad = getPayloadObject('click', telemetryContent!, TelemetryConstant.PickupInStore);\n const puckUpinStoreAttribute = getTelemetryAttributes(telemetryContent!, payLoad);\n\n return (\n <>\n {isBopisSelected ? (\n \n ) : null}\n \n {isBopisSelected ? shipInsteadDisplayText : pickItUpDisplayText}\n \n \n );\n};\n\n/**\n * Render Cart Lines.\n * @param cartLine - The cart line view props.\n * @param resources - Module resource strings.\n * @param storeSelector - Store selector element.\n * @param telemetryContent - The telemetry object.\n * @param isMultiplePickUp - FLag to check if there multiple pickups.\n * @param emailDeliveryModeCode - The email delivery mode code.\n * @returns JSX Element.\n */\nconst renderCartLine = (\n cartLine: ICartlinesViewProps,\n resources: ICartResources,\n storeSelector: React.ReactNode | undefined,\n telemetryContent?: ITelemetryContent,\n isMultiplePickUp?: boolean,\n emailDeliveryModeCode?: string\n): JSX.Element => {\n if (cartLine.error === resources.outOfStockErrorMessage) {\n return (\n \n {cartLine.addToWishlist}\n {cartLine.remove}\n \n );\n }\n\n if (isMultiplePickUp) {\n return (\n \n {renderGroupBopisBlock(cartLine, resources, storeSelector, telemetryContent, emailDeliveryModeCode)}\n {cartLine.addToOrderTemplate}\n {cartLine.addToWishlist}\n {cartLine.remove}\n \n );\n }\n\n if (cartLine.addToOrderTemplate) {\n return (\n \n {cartLine.addToOrderTemplate}\n {cartLine.addToWishlist}\n {cartLine.remove}\n \n );\n }\n\n return (\n \n {cartLine.addToWishlist}\n {cartLine.remove}\n \n );\n};\n\n/**\n * Render Cart Lines.\n * @param cartLines - The cart line view props.\n * @param resources - Module resource strings.\n * @param storeSelector - Store selector element.\n * @param telemetryContent - The telemetry object.\n * @param isMultiplePickUp - Flag to check if there multiple pickups.\n * @param emailDeliveryModeCode - The email delivery mode code.\n * @returns JSX Element.\n */\nconst renderCartlinesInternal = (\n cartLines: ICartlinesViewProps[],\n resources: ICartResources,\n storeSelector: React.ReactNode | undefined,\n telemetryContent?: ITelemetryContent,\n isMultiplePickUp?: boolean,\n emailDeliveryModeCode?: string\n): JSX.Element[] | JSX.Element => {\n return cartLines.map((cartLine, index) => {\n const itemIndex = index;\n return (\n
    \n {cartLine.cartline}\n \n {isMultiplePickUp\n ? null\n : renderBopisBlock(cartLine, resources, storeSelector, telemetryContent, emailDeliveryModeCode)}\n {renderCartLine(cartLine, resources, storeSelector, telemetryContent, isMultiplePickUp, emailDeliveryModeCode)}\n \n
    \n );\n });\n};\n\n/**\n * Render Cart Lines.\n * @param props - The cart line props.\n * @param cartLines - The cart line view props.\n * @param resources - Module resource strings.\n * @param storeSelector - Store selector element.\n * @param waitingComponent - Waiting component element.\n * @param cartLoadingStatus - Cart loading status string.\n * @param isCartDataResult - Flag to check if there is cart data.\n * @param telemetryContent - The telemetry object.\n * @param isMultiplePickUp - Flag to check if there multiple pickups.\n * @param emailDeliveryModeCode - The email delivery mode code.\n * @returns JSX Element.\n */\nconst renderCartlines = (\n props: ICartViewProps & ICartExtensionProps<{}>,\n cartLines: ICartlinesViewProps[] | undefined,\n resources: ICartResources,\n storeSelector: React.ReactNode | undefined,\n waitingComponent: React.ReactNode,\n cartLoadingStatus: string,\n isCartDataResult: boolean,\n telemetryContent?: ITelemetryContent,\n isMultiplePickUp?: boolean,\n emailDeliveryModeCode?: string\n): JSX.Element[] | JSX.Element => {\n if (cartLoadingStatus) {\n return <>{cartLoadingStatus};\n }\n\n // Props.CartlinesWrapper is only required on cart lines and when multiple pickup mode is disabled. This is also required to handle the empty cart styling.\n // Else, empty cart multiple pickup mode is disabled falls under the other cart line wrapper which is creating issue with Empty cart scenario.\n if (cartLines) {\n return props.multiplePickUpEnabled ? (\n renderCartlinesInternal(cartLines, resources, storeSelector, telemetryContent, isMultiplePickUp, emailDeliveryModeCode)\n ) : (\n \n {renderCartlinesInternal(cartLines, resources, storeSelector, telemetryContent, isMultiplePickUp, emailDeliveryModeCode)}\n \n );\n }\n\n return isCartDataResult ? (\n
    \n
    {props.slots.emptyCart}
    \n
    \n ) : (\n <>{waitingComponent}\n );\n};\n\n/**\n * Render Cart Lines group title.\n * @param cartLine - The cart line view props.\n * @param resources - Module resource strings.\n * @param count - Count of products.\n * @returns JSX Element.\n */\nconst renderCartLinesGroupTitle = (cartLine: ICartlinesViewProps, resources: ICartResources, count: number) => {\n const isBopisSelected = cartLine.pickUpInStore?.isBopisSelected;\n const { itemLabel, itemsLabel } = resources;\n const itemCountOne: number = 1;\n const suffix = count > itemCountOne ? itemsLabel : itemLabel;\n const countTitle = `(${count} ${suffix})`;\n return (\n <>\n \n {isBopisSelected ? (\n

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

    \n ) : null}\n

    {countTitle}

    \n
    \n \n );\n};\n\n/**\n * Render Cart Lines group title.\n * @param cartLine - The cart line view props.\n * @param resources - Module resource strings.\n * @param count - Count of products.\n * @param emailDeliveryModeCode - The email delivery mode code.\n * @returns JSX Element.\n */\nconst renderCartLinesGroupHeader = (\n cartLine: ICartlinesViewProps,\n resources: ICartResources,\n count: number,\n emailDeliveryModeCode?: string\n) => {\n const isBopisSelected = cartLine.pickUpInStore?.isBopisSelected;\n const { pickUpText, shippingText, emailshippingText, payInvoicesDisplayText } = resources;\n let groupTitle: string;\n\n groupTitle = isBopisSelected ? pickUpText : shippingText;\n if (cartLine.data && cartLine.data.cartline.IsInvoiceLine) {\n groupTitle = payInvoicesDisplayText;\n } else if (!StringExtensions.isNullOrEmpty(emailDeliveryModeCode)) {\n groupTitle = cartLine.data && cartLine.data.cartline.DeliveryMode === emailDeliveryModeCode ? emailshippingText : groupTitle;\n }\n\n return (\n <>\n
    \n

    \n

    {groupTitle}

    \n {renderCartLinesGroupTitle(cartLine, resources, count)}\n
    \n \n );\n};\n\n/**\n * Returns count of products.\n * @param cartLine - The cart line view props.\n * @returns Number of products.\n */\nconst countItems = (cartLine: ICartlinesViewProps[]): number => {\n let countItem = 0;\n const defaultItemCount = 0;\n countItem = cartLine.reduce((count, item) => {\n return count + (item.data?.cartline.Quantity ?? defaultItemCount);\n }, defaultItemCount);\n return countItem;\n};\n\n/**\n * Render Cart Lines group.\n * @param props - The cart line view props.\n * @param resources - Module resource strings.\n * @returns JSX Element.\n */\nconst renderCartLinesGroup = (props: ICartViewProps & ICartExtensionProps<{}>, resources: ICartResources): JSX.Element | undefined => {\n if (props.cartLinesGroup && ArrayExtensions.hasElements(props.cartLinesGroup)) {\n return (\n
    \n {props.cartLinesGroup.map(cartlines => {\n return (\n
    \n {renderCartLinesGroupHeader(\n cartlines[0],\n resources,\n countItems(cartlines),\n props.context.actionContext.requestContext.channel?.EmailDeliveryModeCode\n )}\n {renderCartlines(\n props,\n cartlines,\n props.resources,\n props.storeSelector,\n props.waitingComponent,\n props.cartLoadingStatus,\n props.cartDataResult,\n props.telemetryContent,\n props.multiplePickUpEnabled,\n props.context.actionContext.requestContext.channel?.EmailDeliveryModeCode\n )}\n
    \n );\n })}\n
    \n );\n }\n return props.cartDataResult ? (\n
    \n
    {props.slots.emptyCart}
    \n
    \n ) : (\n <>{props.waitingComponent}\n );\n};\n\n/**\n * Render error block.\n * @param errorData - Error component.\n * @returns JSX Element.\n */\nconst renderErrorBlock = (errorData: IOrderSummaryErrors | undefined): JSX.Element | null => {\n if (!errorData || !ArrayExtensions.hasElements(errorData.errors)) {\n return null;\n }\n return (\n \n {errorData.header}\n {errorData.errors}\n \n );\n};\n\n/**\n * Render invoice summary.\n * @param invoiceSummaryLines - Invoice summary component.\n * @param orderSummaryItems - Order summary component.\n * @param props - The module props.\n * @returns JSX Element.\n */\nconst renderInvoiceSummarylines = (\n invoiceSummaryLines: IInvoiceSummaryLines | undefined,\n orderSummaryItems: INodeProps,\n props: ICartViewProps\n): JSX.Element | null => {\n if (!invoiceSummaryLines) {\n props.context.telemetry.error('InvoiceSummary content is empty, module wont render');\n return null;\n }\n return (\n \n {invoiceSummaryLines.invoices}\n {invoiceSummaryLines.giftCard}\n {invoiceSummaryLines.loyalty}\n {invoiceSummaryLines.orderTotal}\n \n );\n};\n\n/**\n * Render order summary.\n * @param orderSummaryLines - Order summary component.\n * @param orderSummaryItems - Order summary items component.\n * @param props - The module props.\n * @returns JSX Element.\n */\nconst renderOrderSummarylines = (\n orderSummaryLines: IOrderSummaryLines | undefined,\n orderSummaryItems: INodeProps,\n props: ICartViewProps\n): JSX.Element | null => {\n if (!orderSummaryLines) {\n props.context.telemetry.error('OrderSummary content is empty, module wont render');\n return null;\n }\n return (\n \n {orderSummaryLines.subtotal}\n {orderSummaryLines.totalDiscounts ? orderSummaryLines.totalDiscounts : null}\n {orderSummaryLines.shipping}\n {orderSummaryLines.otherCharge}\n {orderSummaryLines.tax}\n {orderSummaryLines.orderTotal}\n \n );\n};\n\n/**\n * Render error block.\n * @param promotions - The module view props.\n * @returns JSX Element.\n */\nconst renderPromotions = (promotions: ICartLineItemViewProps): JSX.Element | undefined => {\n return (\n <>\n \n {promotions.promotionMessage}\n {promotions.promotionSeeAllLink}\n {promotions.promotionDialog}\n \n \n );\n};\n\n/**\n * Render order summary checkout.\n * @param props - The module view props.\n * @returns JSX Element.\n */\nconst renderOrderSummaryCheckout = (props: ICartViewProps): JSX.Element | undefined => {\n return (\n \n {props.cart?.hasInvoiceLine ? null : props.promoCode}\n \n {props.checkoutAsSignInUserButton}\n {props.checkoutAsGuestButton}\n {props.expressCheckoutButton && ArrayExtensions.hasElements(props.expressCheckoutButton) ? (\n {props.expressCheckoutButton}\n ) : null}\n \n {props.createTemplateFromCartButton}\n \n );\n};\n\n/**\n * Render order summary checkout button.\n * @param props - The module view props.\n * @returns JSX Element.\n */\nconst renderOrderSummaryCheckoutButton = (props: ICartViewProps): JSX.Element | undefined => {\n return (\n \n {props.checkoutAsSignInUserButton}\n {props.checkoutAsGuestButton}\n \n );\n};\n\n/**\n * Render cart view.\n * @param props - The module view props.\n * @returns JSX Element.\n */\nconst CartView: React.FC> = (props: ICartViewProps & ICartExtensionProps<{}>) => {\n const totalItemCountOne: number = 1;\n const updatedTitle = (\n

    \n {props.resources.cartTitle}\n \n {` (${Number(props.cart?.totalItemsInCart)} ${props.cart?.totalItemsInCart !== totalItemCountOne ? 'items' : 'item'})`}\n \n

    \n );\n return (\n
    \n {props.checkoutBlockedDueToUnavailableFunds}\n {updatedTitle}\n
    {props.orderSummaryLineitems?.orderTotal}
    \n {renderOrderSummaryCheckoutButton(props)}\n {!props.cart?.hasInvoiceLine && props.promotionOptions && renderPromotions(props.promotionOptions)}\n {props.cart?.hasInvoiceLine || props.multiplePickUpEnabled\n ? renderCartLinesGroup(props, props.resources)\n : renderCartlines(\n props,\n props.cartlines,\n props.resources,\n props.storeSelector,\n props.waitingComponent,\n props.cartLoadingStatus,\n props.cartDataResult\n )}\n {props.orderSummaryHeading && (\n \n \n {props.orderSummaryHeading}\n {props.cart?.hasInvoiceLine\n ? renderInvoiceSummarylines(props.invoiceSummaryLineitems, props.OrderSummaryItems, props)\n : renderOrderSummarylines(props.orderSummaryLineitems, props.OrderSummaryItems, props)}\n {renderErrorBlock(props.OrderSummaryErrors)}\n \n {renderOrderSummaryCheckout(props)}\n \n )}\n {props.storeSelector}\n
    \n );\n};\n\nexport default CartView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { ICartState } from '@msdyn365-commerce/global-state';\nimport { format, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\n/**\n * ICartIconData: Interface for Cart Icon Data.\n */\nexport interface ICartIconData {\n cart?: ICartState;\n}\n\n/**\n * ICartIconComponentProps: Interface for Cart Icon component props.\n */\nexport interface ICartIconComponentProps extends IComponentProps {\n className?: string;\n cartLabel: string;\n cartQtyLabel: string;\n telemetryContent?: ITelemetryContent;\n salesAgreementPricePrompt?: string;\n}\n\n/**\n * ICartIconComponent: Interface for Cart Icon component.\n */\nexport interface ICartIconComponent extends IComponent {}\n\nconst CartIconComponentActions = {};\n\n/**\n *\n * CartIcon component.\n * @extends {React.FC}\n */\nconst CartIcon: React.FC = observer((props: ICartIconComponentProps) => {\n const {\n cartLabel,\n cartQtyLabel,\n data: { cart }\n } = props;\n const defaultCartItemCount: number = 0;\n\n const cartItem = cart ? cart.totalItemsInCart : defaultCartItemCount;\n let qtyLabel: string = '';\n const cartMaxQuantity: number = 99;\n const maxQuantityLabel: string = '99+';\n if (cartItem > cartMaxQuantity) {\n qtyLabel = maxQuantityLabel;\n } else {\n qtyLabel = format(cartQtyLabel, cartItem);\n }\n const label = format(cartLabel, cartItem);\n\n // Construct telemetry attribute to render\n const payLoad = getPayloadObject('click', props.telemetryContent!, 'cart-icon', '');\n const attributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\n const style: React.CSSProperties = {\n visibility: cart ? 'visible' : 'hidden'\n };\n return (\n
    \n
    \n {qtyLabel}\n
    \n
    \n );\n});\n\nexport const CartIconComponent: React.FunctionComponent = msdyn365Commerce.createComponentOverride<\n // @ts-expect-error -- Compatible issue with the component override.\n ICartIconComponent\n>('CartIcon', { component: CartIcon, ...CartIconComponentActions });\n\nexport default CartIconComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps } from '@msdyn365-commerce/core';\nimport { ICartState } from '@msdyn365-commerce/global-state';\nimport { Coupon } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n format,\n getPayloadObject,\n getTelemetryAttributes,\n IPayLoad,\n ITelemetryContent,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\n/**\n * IPromoCodeProps: Interface for promo code component.\n */\nexport interface IPromoCodeProps extends IComponentProps<{}> {\n cart: ICartState | undefined;\n promoCodeHeadingText: string;\n appliedPromoCodeHeadingText: string;\n removePromoAriaLabelFormat: string;\n promoPlaceholderText: string;\n promoCodeApplyButtonText: string;\n collapseTimeOut: number;\n removePromoText: string;\n invalidPromoCodeErrorText: string;\n failedToAddPromoCodeErrorText: string;\n duplicatePromoCodeErrorText: string;\n failedToRemovePromoCodeErrorText: string;\n\n /**\n * The telemetry content.\n */\n telemetryContent?: ITelemetryContent;\n promoCodeApplyCallback?(): void;\n}\n\n/**\n * IPromoCodeProps: Interface for promo code component.\n */\nexport interface IPromoCodeComponent extends IComponent {}\n\n/**\n * IPromoCodeProps: Interface for promo code state.\n */\ninterface IPromoCodeState {\n promoCodeInputValue: string;\n error: string;\n canApply: boolean;\n}\n\n/**\n *\n * The PromoCode component renders the promocode section.\n * @extends {React.PureComponent}\n */\nclass PromoCode extends React.PureComponent {\n private readonly payLoad: IPayLoad;\n\n public constructor(props: IPromoCodeProps) {\n super(props);\n this.payLoad = getPayloadObject('click', this.props.telemetryContent!, TelemetryConstant.ApplyPromoCode);\n this.state = {\n promoCodeInputValue: '',\n error: '',\n canApply: false\n };\n }\n\n public render(): JSX.Element {\n return (\n
    \n
    {this.props.promoCodeHeadingText}
    \n {this._renderForm(this.props.promoPlaceholderText, this.props.promoCodeApplyButtonText, this.props.cart)}\n

    \n {this.state.error}\n

    \n {this._renderAppliedPromoCode(this.props)}\n
    \n );\n }\n\n /**\n * On input change method.\n * @param event - Change event.\n */\n private readonly _onInputChangeHandler = (event: React.ChangeEvent) => {\n const error = event.target.value === '' ? '' : this.state.error;\n this.setState({\n promoCodeInputValue: event.target.value.trim(),\n error,\n canApply: !!event.target.value\n });\n };\n\n /**\n * Apply promo code method.\n * @param cartState - Cart state interface.\n */\n private readonly _applyPromotion = (cartState: ICartState | undefined) => {\n if (!cartState) {\n return;\n }\n const appliedPromo = this.state.promoCodeInputValue;\n\n cartState\n .addPromoCode({ promoCode: appliedPromo })\n .then(result => {\n if (result.status === 'SUCCESS') {\n // Show success text\n this.setState({ promoCodeInputValue: '', error: '', canApply: false });\n } else if (result.substatus === 'ALREADYADDED') {\n this.setState({ error: this.props.duplicatePromoCodeErrorText });\n } else {\n this.setState({ error: this.props.invalidPromoCodeErrorText });\n }\n })\n .catch(() => {\n this.setState({ error: this.props.failedToAddPromoCodeErrorText });\n });\n };\n\n /**\n * On submit action.\n * @param cartState - Cart state.\n * @returns Apply promotion.\n */\n private readonly _onSubmitHandler = (cartState: ICartState | undefined) => (event: React.FormEvent) => {\n event.preventDefault();\n this._applyPromotion(cartState);\n };\n\n /**\n * On apply promotion.\n * @param cartState - Cart state.\n * @returns Apply promotion.\n */\n private readonly applyPromotionHandler = (cartState: ICartState | undefined) => () => {\n this._applyPromotion(cartState);\n };\n\n /**\n * Renders promo code form.\n * @param promoPlaceholderText - Promo code input box placeholder string.\n * @param promoCodeApplyButtonText - Promo code button text string.\n * @param cartState - Cart state interface.\n * @returns Promo code form.\n */\n private readonly _renderForm = (promoPlaceholderText: string, promoCodeApplyButtonText: string, cartState: ICartState | undefined) => {\n const attributes = getTelemetryAttributes(this.props.telemetryContent!, this.payLoad);\n\n return (\n
    \n
    \n \n \n
    \n
    \n );\n };\n\n /**\n * Remove promo code method.\n * @param cartState - Cart state interface.\n * @param event - Mouse event.\n */\n private readonly _removePromotion = (cartState: ICartState | undefined, event: React.MouseEvent) => {\n if (!cartState) {\n return;\n }\n const code = event.currentTarget.getAttribute('data-value') ?? '';\n cartState\n .removePromoCodes({\n promoCodes: [code]\n })\n .then(result => {\n if (result.status === 'SUCCESS') {\n this.setState({ error: '' });\n }\n })\n .catch(() => {\n this.setState({ error: this.props.failedToRemovePromoCodeErrorText });\n });\n };\n\n /**\n * Renders applied promo code form.\n * @param props - Promo code component props.\n * @returns Applied promo code.\n */\n private readonly _renderAppliedPromoCode = (props: IPromoCodeProps) => {\n if (!props.cart || !props.cart.cart.Coupons || !ArrayExtensions.hasElements(props.cart.cart.Coupons)) {\n return;\n }\n\n /**\n * On remove promotion action.\n * @param event - Mouse event.\n */\n const removePromotionHandler = (event: React.MouseEvent) => {\n this._removePromotion(props.cart, event);\n };\n\n return (\n <>\n {props.cart.cart.Coupons.map((coupon: Coupon) => {\n const ariaLabel = props.removePromoAriaLabelFormat\n ? format(props.removePromoAriaLabelFormat, props.removePromoText, coupon.Code)\n : '';\n\n return (\n
    \n
    \n {'Code '}\n {coupon.Code}\n {'Applied '}\n
    \n \n
    \n );\n })}\n \n );\n };\n}\n\nexport default PromoCode;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n IContentBlockAdditionalContentItemViewProps,\n IContentBlockAdditionalContentViewProps,\n IContentBlockViewProps\n} from '@msdyn365-commerce-modules/content-block';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\n/**\n * Render Additional Content.\n * @param additionalContent - Additional content view props.\n * @returns JSX Element.\n */\nconst renderAdditionalContent = (additionalContent: IContentBlockAdditionalContentViewProps) => {\n return (\n \n {additionalContent.additionalContentItems?.map((item: IContentBlockAdditionalContentItemViewProps) => {\n return (\n <>\n {item.heading}\n \n {item.text}\n {item.links}\n \n \n );\n })}\n \n );\n};\n\n/**\n * Render View.\n * @param props - The view props.\n * @returns -The JSX Element.\n */\nconst contentBlockView: React.FC = props => {\n const {\n contentBlockContainer,\n imageContainer,\n detailsContainer,\n title,\n text,\n links,\n image,\n contentBlockAnchorTag,\n imageLink,\n imageAriaLabel,\n additionalContent\n } = props;\n\n // @ts-expect-error HTML element need to be clear on run time.\n const hasImage: boolean = image.props.src;\n const imageClass: string = hasImage ? `${detailsContainer.className} withImage` : `${detailsContainer.className} withoutImage`;\n\n if (imageLink) {\n return (\n \n \n {image}\n \n \n {title}\n {text}\n {links}\n {additionalContent && renderAdditionalContent(additionalContent)}\n \n \n );\n }\n return (\n \n {image}\n \n {title}\n {text}\n {links}\n {additionalContent && renderAdditionalContent(additionalContent)}\n \n \n );\n};\n\nexport default contentBlockView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IFooterViewProps } from '@msdyn365-commerce-modules/footer';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\n/**\n *\n * FooterItemView component.\n * @extends {React.PureComponent}\n */\nexport class FooterItemView extends React.PureComponent {\n public render(): JSX.Element | null {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Cannot change the prop names as props are from business logic.\n const { FooterItem } = this.props;\n return {this._renderElement(this.props)};\n }\n\n private _renderElement(props: IFooterViewProps): React.ReactNode | null {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Cannot change the prop names as props are from business logic.\n const { heading, HeadingContainer, Link, linkText, image, text, EditableLink } = props;\n if (heading) {\n return (\n \n {' '}\n \n );\n } else if (Link && image) {\n return (\n \n {linkText}\n {image}\n \n );\n } else if (Link) {\n return EditableLink;\n }\n return (\n <>\n {text}\n {image}\n \n );\n }\n}\n\nexport default FooterItemView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { INavigationMenuViewProps } from '@msdyn365-commerce-modules/navigation-menu';\nimport { generateImageUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport * as React from 'react';\n\nimport { INavigationMenuProps } from '../../definition-extensions/navigation-menu.ext.props.autogenerated';\n\n/**\n * INavigationMenuViewRootProps.\n */\nexport interface INavigationMenuViewRootProps {\n navProps: INavigationMenuViewProps & INavigationMenuProps<{}>;\n}\n\n/**\n * Represent navigation menu state interface.\n */\nexport interface INavigationState {\n parentMenu?: number;\n activeMenu?: number;\n categoryImage?: Msdyn365.IImageData[] | null;\n mobileViewLabelText?: string;\n drawerKeyValue: Msdyn365.IDictionary;\n isOnlyMobile: boolean;\n isNavOpen: boolean;\n}\n\n/**\n * NavMenuConstants enum.\n */\nexport enum NavMenuConstants {\n zero = 0,\n one = 1,\n two = 2,\n three = 3,\n four = 4,\n escapeKey = 27,\n rootMenu = 1\n}\n\n/**\n * GridSizes.\n */\nexport type GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\n/**\n * Get category image.\n * @param props - Navigation menu props.\n * @param categoryImage - Category Image.\n * @param alttext - AltText String.\n * @returns Returns Node.\n */\nexport const getCategoryImage = (props: INavigationMenuViewRootProps, categoryImage: string, alttext: string): React.ReactNode | null => {\n const categoryImageUrl = generateImageUrl(`${categoryImage}`, props.navProps.context.actionContext.requestContext.apiSettings);\n const defaultImageSettings: Msdyn365.IImageSettings = {\n viewports: {\n xs: { q: 'w=162&h=162&m=8', w: 0, h: 0 },\n sm: { q: 'w=162&h=162&m=8', w: 0, h: 0 },\n md: { q: 'w=203&h=203&m=8', w: 0, h: 0 },\n lg: { q: 'w=203&h=203&m=8', w: 0, h: 0 }\n },\n lazyload: true\n };\n if (categoryImageUrl !== undefined) {\n const imageData: Msdyn365.IImageData = { src: categoryImageUrl };\n return (\n \n );\n }\n return null;\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 { IMenuItemData, MenuTypeIndexId } from '@msdyn365-commerce-modules/navigation-menu';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n addThrottledEvent,\n Button,\n Collapse,\n Drawer,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n ICollapseProps,\n IPayLoad,\n isMobile,\n ITelemetryContent,\n Module,\n Node,\n onTelemetryClick,\n VariantType\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { computed } from 'mobx';\nimport * as React from 'react';\n\nimport { getCategoryImage, INavigationMenuViewRootProps, INavigationState, NavMenuConstants } from './navigation-menu-utilities';\n\n/**\n *\n * NavigationMenuRootDisabled component.\n * @extends {React.PureComponent}\n */\nexport class NavigationMenuRootDisabled extends React.PureComponent {\n private static isBackTrack: boolean = false;\n\n private readonly supportedLevel: number = NavMenuConstants.four;\n\n private currentLevel: number = NavMenuConstants.zero;\n\n private readonly menuNode: React.RefObject;\n\n private readonly menuItemRef: React.RefObject;\n\n private readonly escapeKey: number = NavMenuConstants.escapeKey;\n\n private readonly telemetryContent: ITelemetryContent;\n\n private readonly promotionalImage: Msdyn365.IImageData[] = [];\n\n private readonly payLoad: IPayLoad;\n\n private readonly attributes?: Msdyn365.IDictionary;\n\n private customResizeThrottledEventHandler?: (event: Event) => void;\n\n public constructor(props: INavigationMenuViewRootProps) {\n super(props);\n this.menuNode = React.createRef();\n this.menuItemRef = React.createRef();\n const { menuItemData } = this.props.navProps;\n if (ArrayExtensions.hasElements(menuItemData) && ArrayExtensions.hasElements(menuItemData[0].subMenu)) {\n const imagesource = menuItemData[0].subMenu[0].imageSource ? menuItemData[0].subMenu[0].imageSource : '';\n const linkText = menuItemData[0].subMenu[0].linkText ? menuItemData[0].subMenu[0].linkText : '';\n this.promotionalImage = [{ src: imagesource, altText: linkText }];\n\n // Read category and promotional image in one array\n if (ArrayExtensions.hasElements(menuItemData[0].subMenu[0].promotionalContent)) {\n menuItemData[0].subMenu[0].promotionalContent.map(item => {\n const imageSource = item.image.src;\n this.promotionalImage.push({\n src: imageSource,\n altText: item.text,\n additionalProperties: { linkUrl: item.linkUrl.destinationUrl }\n });\n return null;\n });\n }\n }\n\n this.state = {\n activeMenu: 1,\n mobileViewLabelText: '',\n parentMenu: undefined,\n drawerKeyValue: {},\n isOnlyMobile: this.isOnlyMobile,\n categoryImage: this.promotionalImage,\n isNavOpen: false\n };\n this.telemetryContent = getTelemetryObject(\n this.props.navProps.context.request.telemetryPageName!,\n this.props.navProps.friendlyName,\n this.props.navProps.telemetry\n );\n this.payLoad = getPayloadObject('click', this.telemetryContent, '', '');\n this.attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n }\n\n @computed public get isOnlyMobile(): boolean {\n return isMobile({ variant: VariantType.Browser, context: this.props.navProps.context.request }) === 'xs';\n }\n\n public componentDidMount(): void {\n this.customResizeThrottledEventHandler = addThrottledEvent(window, 'resize', this._customUpdateViewport as EventListener);\n document.addEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\n this._customUpdateViewport();\n document.body.addEventListener('mousedown', this._handleClickOutside);\n }\n\n public componentDidUpdate(): void {\n if (this.menuItemRef.current?.children[0] && this.props.navProps.isMobileView) {\n (this.menuItemRef.current.children[0] as HTMLElement).focus();\n }\n }\n\n public componentWillUnmount(): void {\n window.removeEventListener('resize', this.customResizeThrottledEventHandler!, false);\n document.body.removeEventListener('mousedown', this._handleClickOutside, false);\n }\n\n public render(): JSX.Element | null {\n this.currentLevel = 1;\n const navbarKey = 'header-nav-mobile';\n return (\n \n {this.state.isOnlyMobile ? (\n this._renderMobileMenu()\n ) : (\n <>\n \n {this._renderCollapseMenu()}\n \n )}\n \n );\n }\n\n /**\n * Function to handle nav bar toggle.\n */\n private readonly _toggleNavBar = (): void => {\n this.setState(previousState => ({\n activeMenu: 1,\n isNavOpen: !previousState.isNavOpen\n }));\n };\n\n private _renderCollapseMenu(): JSX.Element | null {\n return (\n \n {this.state.isOnlyMobile ? this._renderMobileMenu() : this._renderDesktopMenu()}\n \n );\n }\n\n private _renderMobileMenu(): JSX.Element {\n const { MenuList, MobileBackButton, MobileDescriptionContainer, MobileDescriptionLabel, Navigation } = this.props.navProps;\n\n this.currentLevel = 1;\n return (\n \n \n {this.state.isOnlyMobile && this.state.activeMenu !== undefined && (\n \n \n {this.state.mobileViewLabelText}\n \n )}\n {this._renderDisplay()}\n \n \n );\n }\n\n private _renderDesktopMenu(): JSX.Element {\n const { MenuList, Navigation } = this.props.navProps;\n\n return (\n \n \n {this._renderDisplay()}\n
    \n
    \n
    \n
    \n );\n }\n\n private _renderDrawerLink(item: IMenuItemData): JSX.Element | null {\n if (item.linkURL && !StringExtensions.isNullOrWhitespace(item.linkURL)) {\n return this._renderLinkMenuItem(item);\n } else if (!item.linkURL) {\n return this._renderSpanMenuItem(item);\n }\n return null;\n }\n\n private _renderDisplay(): JSX.Element[] {\n const { ListItem } = this.props.navProps;\n const menuItemData: IMenuItemData[] = this.props.navProps.menuItemData;\n const { activeMenu } = this.state;\n const menuItemList: JSX.Element[] = [];\n\n if (ArrayExtensions.hasElements(menuItemData)) {\n menuItemData[0].id = 1;\n }\n\n if (this.state.isOnlyMobile && activeMenu !== undefined && ArrayExtensions.hasElements(menuItemData)) {\n const menuItem = this._getFromSubMenu(undefined, menuItemData);\n\n if (menuItem) {\n menuItemList.push(\n \n {` `}\n {this._createMenuItemList(menuItem)} {` `}\n \n );\n }\n } else {\n for (const [index, item] of menuItemData.entries()) {\n menuItemList.push(\n \n {this._createMenuItemList(item)}\n
    \n );\n }\n }\n\n return menuItemList;\n }\n\n private _getFromSubMenu(parentMenuId?: number, menu?: IMenuItemData[]): IMenuItemData | null {\n if (!menu) {\n return null;\n }\n\n for (let index = 0; index <= menu.length - NavMenuConstants.one; index++) {\n const item: IMenuItemData = menu[Number(index)];\n\n if (item.id === this.state.activeMenu) {\n if (!NavigationMenuRootDisabled.isBackTrack) {\n this.setState({ parentMenu: parentMenuId });\n } else {\n this.setState({ parentMenu: parentMenuId, mobileViewLabelText: item.linkText });\n }\n return item;\n }\n const found = this._getFromSubMenu(item.id, item.subMenu);\n if (found) {\n return found;\n }\n }\n return null;\n }\n\n private _createMenuItemList(menuItemData: IMenuItemData): JSX.Element | null {\n if (ArrayExtensions.hasElements(menuItemData.subMenu)) {\n if (this.state.isOnlyMobile && this.state.activeMenu !== undefined) {\n return this._renderSubMenu(menuItemData.subMenu, menuItemData.id, false);\n }\n\n return (\n <>\n {this._renderButtonMenuItem(menuItemData)}\n {this._renderSubMenu(menuItemData.subMenu, menuItemData.id)}\n \n );\n } else if (menuItemData.linkURL && !StringExtensions.isNullOrWhitespace(menuItemData.linkURL)) {\n return this._renderLinkMenuItem(menuItemData, menuItemData.id);\n } else if (!menuItemData.linkURL && !(this.state.isOnlyMobile && this.state.activeMenu !== undefined)) {\n return this._renderSpanMenuItem(menuItemData);\n }\n\n return null;\n }\n\n private _renderSubMenu(subMenuArray?: IMenuItemData[], activeMenu?: number, isSubMenu?: boolean): JSX.Element | null {\n let subMenus: IMenuItemData[] | undefined = subMenuArray;\n if (activeMenu === NavMenuConstants.rootMenu) {\n subMenus = subMenuArray!.filter(subMenuItem => subMenuItem.id && subMenuItem.id >= MenuTypeIndexId.Retail);\n }\n\n const { ListItem } = this.props.navProps;\n const isEnableMultiSupportMenu = this.props.navProps.config.enableMultilevelMenu ?? false;\n const multiLevelSupportedMenu = this.props.navProps.config.menuLevelSupport ?? NavMenuConstants.three;\n\n if (activeMenu && this.state.activeMenu !== activeMenu) {\n this.props.navProps.context.telemetry.error('Navigation Active menu content is empty, module wont render.');\n return null;\n }\n\n if (!subMenus || !ArrayExtensions.hasElements(subMenus)) {\n this.props.navProps.context.telemetry.error('Navigation Submenu content is empty, module wont render.');\n return null;\n }\n\n let levelClassName: string = '';\n const menuOptions = subMenus.map((option: IMenuItemData, index: number) => {\n const hasOptions = option.subMenu && ArrayExtensions.hasElements(option.subMenu);\n let menuItem: JSX.Element | null;\n if (hasOptions && this.state.isOnlyMobile) {\n menuItem = this._renderButtonMenuItem(option, activeMenu, index);\n } else if (this.currentLevel === NavMenuConstants.one || !hasOptions) {\n menuItem = this.getMenuItem(option, index);\n } else {\n menuItem = null;\n }\n let subMenu;\n const isHavingSubmenu =\n hasOptions && isEnableMultiSupportMenu && this.currentLevel <= Math.round(multiLevelSupportedMenu) - NavMenuConstants.one;\n\n if (hasOptions && !this.state.isOnlyMobile) {\n if (this.currentLevel >= NavMenuConstants.two) {\n subMenu = this._renderSubMenuDrawer(option);\n } else if (this.currentLevel <= this.supportedLevel) {\n this.currentLevel++;\n levelClassName = `level-${this.currentLevel.toString()}`;\n subMenu = this._renderSubMenu(option.subMenu, undefined, true);\n }\n }\n\n if (isHavingSubmenu && this.state.isOnlyMobile) {\n this.currentLevel++;\n levelClassName = isEnableMultiSupportMenu ? `level-${this.currentLevel.toString()}` : '';\n subMenu = this._renderSubMenu(option.subMenu, option.id, true);\n }\n const imagesource = option.imageSource ? option.imageSource : '';\n return (\n \n {menuItem}\n {subMenu}\n
    \n );\n });\n return this._renderMenu(levelClassName, menuOptions, isSubMenu);\n }\n\n private getMenuItem(option: IMenuItemData, index: number): JSX.Element | null {\n let menuItem: JSX.Element | null;\n if (this.currentLevel === NavMenuConstants.one) {\n menuItem = option.linkURL ? this._renderLinkMenuItemLevelOne(option, index) : this._renderSpanMenuItem(option);\n } else {\n menuItem = option.linkURL ? this._renderLinkMenuItem(option, index) : this._renderSpanMenuItem(option);\n }\n return menuItem;\n }\n\n private _renderSubMenuDrawer(menuItem: IMenuItemData): JSX.Element | null {\n const levelClassName = `level-${this.currentLevel.toString()}`;\n const toggleButtonText = menuItem.linkText;\n const keyValue = this.state.drawerKeyValue;\n const buttonText = toggleButtonText !== undefined ? toggleButtonText : '';\n const keys = keyValue;\n const multiLevelSupportedMenu = this.props.navProps.config.menuLevelSupport ?? NavMenuConstants.three;\n\n let isDrawerOpen = false;\n if (keys[menuItem.id!]) {\n isDrawerOpen = true;\n }\n const colProps: ICollapseProps = { timeout: 0, isOpen: isDrawerOpen };\n\n return (\n \n
    \n {menuItem.subMenu!.map((menuSubItem: IMenuItemData) => {\n if (ArrayExtensions.hasElements(menuSubItem.subMenu)) {\n this.currentLevel++;\n if (this.currentLevel < multiLevelSupportedMenu) {\n return this._renderSubMenuDrawer(menuSubItem);\n }\n }\n return this._renderDrawerLink(menuSubItem);\n })}\n
    \n \n );\n }\n\n /**\n * Method to handle escape key event.\n * @param menuId -Number.\n * @param isDrawerOpen -Boolean.\n * @returns Void.\n */\n private readonly _bindDesktopCategoryClick = (menuId: number | undefined, isDrawerOpen: boolean) => (): void => {\n const { drawerKeyValue } = this.state;\n const newPair = { [menuId!]: !isDrawerOpen };\n this.setState({ drawerKeyValue: { ...drawerKeyValue, ...newPair } });\n };\n\n private _renderButtonMenuItem(option: IMenuItemData, activeMenu?: number, index?: number): JSX.Element | null {\n return (\n \n {option.linkText}\n \n );\n }\n\n private _renderLinkMenuItem(option: IMenuItemData, index?: number): JSX.Element | null {\n const { Link } = this.props.navProps;\n const linkText = option.linkText ? option.linkText : '';\n this.payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n return (\n \n {option.linkText}\n \n );\n }\n\n private _renderLinkMenuItemLevelOne(option: IMenuItemData, index?: number, isHoverEffect: boolean = true): JSX.Element | null {\n const { Link } = this.props.navProps;\n const linkText = option.linkText ? option.linkText : '';\n const imagesource = option.imageSource ? option.imageSource : '';\n this.payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n return (\n \n {option.linkText}\n \n );\n }\n\n private _renderPromotionalLink(linkText?: string, linkUrl?: string): JSX.Element | null {\n const { Link } = this.props.navProps;\n this.payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n if (linkText && linkUrl) {\n return (\n \n {linkText}\n \n );\n }\n return null;\n }\n\n private _renderSpanMenuItem(option: IMenuItemData, index?: number): JSX.Element | null {\n const { Span } = this.props.navProps;\n return (\n \n {option.linkText}\n \n );\n }\n\n private _renderMenu(level: string, menuOptions: JSX.Element[], isSubmenu?: boolean): JSX.Element | null {\n const { DivContainer, MenuList, ImageDivContainer, showCategoryImage, showPromotionalContent } = this.props.navProps;\n const isCategoryImageDisplay =\n !this.state.isOnlyMobile &&\n showCategoryImage &&\n this.state.categoryImage !== null &&\n this.state.categoryImage !== undefined &&\n !isSubmenu;\n const isPromotionalContentDisplay =\n !this.state.isOnlyMobile && showPromotionalContent && ArrayExtensions.hasElements(this.state.categoryImage) && !isSubmenu;\n const divContainerClass =\n this.currentLevel > NavMenuConstants.two || isCategoryImageDisplay ? DivContainer!.className : 'ms-nav__deafult';\n this.currentLevel = NavMenuConstants.one;\n const menuLevelSupportClassName =\n isCategoryImageDisplay &&\n this.props.navProps.config.menuLevelSupport &&\n this.props.navProps.config.menuLevelSupport > NavMenuConstants.two &&\n 'navmenu-multi-level';\n\n const categoryImages = this.state.categoryImage?.filter(image => !StringExtensions.isNullOrWhitespace(image.src));\n const imagesContainerKey = categoryImages?.map(item => item.src).join('-');\n return (\n \n \n {menuOptions}\n \n
    \n {isCategoryImageDisplay &&\n ArrayExtensions.hasElements(categoryImages) &&\n categoryImages.map(item => (\n \n {getCategoryImage(this.props, item.src ?? '', item.altText!.toString())}\n {isPromotionalContentDisplay &&\n this._renderPromotionalLink(item.altText, item.additionalProperties?.linkUrl)}\n \n ))}\n
    \n \n );\n }\n\n /**\n * Handle Category image update.\n * @param categoryImageSource - Image source.\n * @param option - Menu Item data.\n * @returns Returns empty.\n */\n private readonly _updateCategoryImage = (categoryImageSource: string, option: IMenuItemData) => () => {\n const linkText = option.linkText ? option.linkText : '';\n const promotionalImage: Msdyn365.IImageData[] = [{ src: categoryImageSource, altText: linkText }];\n\n // Read category and promotional image in one array\n if (ArrayExtensions.hasElements(option.promotionalContent)) {\n for (const item of option.promotionalContent) {\n const imageSource = item.image.src;\n promotionalImage.push({\n src: imageSource,\n altText: item.text,\n additionalProperties: { linkUrl: item.linkUrl.destinationUrl }\n });\n }\n }\n this.setState({\n categoryImage: ArrayExtensions.hasElements(promotionalImage) ? promotionalImage : [{ src: 'empty' }]\n });\n };\n\n /**\n * Handle dropdown toggle.\n * @param data - Menu Item data.\n * @param parentId - Number.\n * @returns Returns empty.\n */\n private readonly _handleDropdownToggle = (data: IMenuItemData, parentId?: number) => () => {\n if (!this.state.isOnlyMobile) {\n this.setState({\n activeMenu: data.id,\n parentMenu: parentId\n });\n if (this.props.navProps.showCategoryImage) {\n this._updateCategoryImage(data.imageSource!, data)();\n }\n } else {\n NavigationMenuRootDisabled.isBackTrack = false;\n this.setState({\n activeMenu: data.id,\n mobileViewLabelText: data.linkText!,\n parentMenu: parentId\n });\n }\n };\n\n /**\n * Handle back navigation for menu items for mobile view.\n * @returns Returns empty.\n */\n private readonly _handleGoBack = () => () => {\n NavigationMenuRootDisabled.isBackTrack = true;\n this.setState(previousState => ({ activeMenu: previousState.parentMenu }));\n };\n\n /**\n * Function to close the nav menu on click on body.\n * @param event - MouseEvent.\n */\n private readonly _handleClickOutside = (event: MouseEvent) => {\n if (this.menuNode.current && !this.menuNode.current.contains(event.target as Node)) {\n if (!this.state.isOnlyMobile) {\n this.setState({ activeMenu: 1, mobileViewLabelText: '', isNavOpen: false });\n } else {\n this.setState({ activeMenu: undefined, mobileViewLabelText: '', isNavOpen: false });\n }\n }\n };\n\n /**\n * Checks to assign a ref for focus.\n * @param index -Sub menu list index.\n * @param mobileViewLabelText -Mobile view label text.\n * @param optionLinkText -Sub menu item link text.\n * @returns Boolean.\n */\n private readonly _shouldAddFocusMenuRef = (index: number, mobileViewLabelText?: string, optionLinkText?: string) => {\n const firstIndex: number = 0;\n if (!NavigationMenuRootDisabled.isBackTrack && index === firstIndex) {\n return true;\n }\n if (!optionLinkText || !mobileViewLabelText) {\n return false;\n }\n return mobileViewLabelText === optionLinkText;\n };\n\n /**\n * Function to handle nav menu close.\n */\n private readonly _closeNavMenu = (): void => {\n if (!this.state.isOnlyMobile) {\n this.setState({ activeMenu: 1, mobileViewLabelText: '', isNavOpen: false });\n } else {\n this.setState({ activeMenu: undefined, mobileViewLabelText: '', isNavOpen: false });\n }\n (this.menuNode.current?.children[0] as HTMLElement).focus();\n };\n\n /**\n * Function to close the nav menu on esc key.\n * @param event - Event.\n */\n private readonly _escFunction = (event: React.KeyboardEvent) => {\n if (event.keyCode === this.escapeKey && !this.state.isOnlyMobile && this.state.isNavOpen) {\n this.setState({ activeMenu: 1, mobileViewLabelText: '', isNavOpen: false });\n (this.menuNode.current?.children[0] as HTMLElement).focus();\n }\n };\n\n /**\n * Custom update viewport.\n */\n private readonly _customUpdateViewport = (): void => {\n this.setState({ isOnlyMobile: this.isOnlyMobile });\n };\n}\n\nexport default NavigationMenuRootDisabled;\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 { IMenuItemData, MenuSource, MenuTypeIndexId } from '@msdyn365-commerce-modules/navigation-menu';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n addThrottledEvent,\n Button,\n Collapse,\n Drawer,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n ICollapseProps,\n IPayLoad,\n isMobile,\n ITelemetryContent,\n Module,\n Node,\n onTelemetryClick,\n VariantType\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { computed } from 'mobx';\nimport * as React from 'react';\n\nimport { getCategoryImage, INavigationMenuViewRootProps, INavigationState, NavMenuConstants } from './navigation-menu-utilities';\n\n/**\n *\n * NavigationMenuRootEnabled component.\n * @extends {React.PureComponent}\n */\nexport class NavigationMenuRootEnabled extends React.PureComponent {\n private static isBackTrack: boolean = false;\n\n private readonly supportedLevel: number = NavMenuConstants.four;\n\n private currentLevel: number = NavMenuConstants.zero;\n\n private readonly menuNode: React.RefObject;\n\n private readonly menuItemRef: React.RefObject;\n\n private readonly escapeKey: number = NavMenuConstants.escapeKey;\n\n private readonly telemetryContent: ITelemetryContent;\n\n private readonly promotionalImage: Msdyn365.IImageData[] = [];\n\n private menuItemData: IMenuItemData[] = [];\n\n private readonly payLoad: IPayLoad;\n\n private readonly attributes?: Msdyn365.IDictionary;\n\n private customResizeThrottledEventHandler?: (event: Event) => void;\n\n public constructor(props: INavigationMenuViewRootProps) {\n super(props);\n this.menuNode = React.createRef();\n this.menuItemRef = React.createRef();\n const { menuItemData } = this.props.navProps;\n if (ArrayExtensions.hasElements(menuItemData) && ArrayExtensions.hasElements(menuItemData[0].subMenu)) {\n const imagesource = menuItemData[0].subMenu[0].imageSource ? menuItemData[0].subMenu[0].imageSource : '';\n const linkText = menuItemData[0].subMenu[0].linkText ? menuItemData[0].subMenu[0].linkText : '';\n this.promotionalImage = [{ src: imagesource, altText: linkText }];\n\n // Read category and promotional image in one array\n if (ArrayExtensions.hasElements(menuItemData[0].subMenu[0].promotionalContent)) {\n menuItemData[0].subMenu[0].promotionalContent.map(item => {\n const imageSource = item.image.src;\n this.promotionalImage.push({\n src: imageSource,\n altText: item.text,\n additionalProperties: { linkUrl: item.linkUrl.destinationUrl }\n });\n return null;\n });\n }\n }\n this.state = {\n activeMenu: NavMenuConstants.rootMenu,\n mobileViewLabelText: '',\n parentMenu: undefined,\n drawerKeyValue: {},\n isOnlyMobile: this.isOnlyMobile,\n categoryImage: this.promotionalImage,\n isNavOpen: false\n };\n\n this.telemetryContent = getTelemetryObject(\n this.props.navProps.context.request.telemetryPageName!,\n this.props.navProps.friendlyName,\n this.props.navProps.telemetry\n );\n this.payLoad = getPayloadObject('click', this.telemetryContent, '', '');\n this.attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n }\n\n @computed public get isOnlyMobile(): boolean {\n return isMobile({ variant: VariantType.Browser, context: this.props.navProps.context.request }) === 'xs';\n }\n\n public componentDidMount(): void {\n this.customResizeThrottledEventHandler = addThrottledEvent(window, 'resize', this._customUpdateViewport as EventListener);\n document.addEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\n this._customUpdateViewport();\n document.body.addEventListener('mousedown', this._handleClickOutside);\n this._addShopAllLink();\n }\n\n public componentDidUpdate(): void {\n if (this.menuItemRef.current?.children[0] && this.props.navProps.isMobileView) {\n (this.menuItemRef.current.children[0] as HTMLElement).focus();\n }\n }\n\n public componentWillUnmount(): void {\n window.removeEventListener('resize', this.customResizeThrottledEventHandler!, false);\n document.body.removeEventListener('mousedown', this._handleClickOutside, false);\n }\n\n public render(): JSX.Element | null {\n this.currentLevel = NavMenuConstants.one;\n const navbarKey = 'header-nav-mobile';\n return (\n \n {this.state.isOnlyMobile ? (\n this._renderMobileMenu()\n ) : (\n <>\n \n {this._renderCollapseMenu()}\n \n )}\n \n );\n }\n\n /**\n * Function to handle nav bar toggle.\n */\n private readonly _toggleNavBar = (): void => {\n this.setState(previousState => ({\n activeMenu: NavMenuConstants.rootMenu,\n isNavOpen: !previousState.isNavOpen\n }));\n };\n\n private _renderCollapseMenu(): JSX.Element | null {\n return (\n \n {this.state.isOnlyMobile ? this._renderMobileMenu() : this._renderDesktopMenu()}\n \n );\n }\n\n private _renderMobileMenu(): JSX.Element {\n const { MobileBackButton, MobileDescriptionContainer, MobileDescriptionLabel, Navigation } = this.props.navProps;\n\n this.currentLevel = NavMenuConstants.one;\n return (\n \n \n {this.state.isOnlyMobile && this.state.activeMenu !== undefined && (\n \n \n {this.state.mobileViewLabelText}\n \n )}\n {this._renderDisplay()}\n \n \n );\n }\n\n private _renderDesktopMenu(): JSX.Element {\n const { Navigation } = this.props.navProps;\n return (\n \n \n {this._renderDisplay()}\n
    \n
    \n
    \n
    \n );\n }\n\n private _renderDrawerLink(item: IMenuItemData): JSX.Element | null {\n if (item.linkURL && !StringExtensions.isNullOrWhitespace(item.linkURL)) {\n return this._renderLinkMenuItem(item);\n } else if (!item.linkURL) {\n return this._renderSpanMenuItem(item);\n }\n return null;\n }\n\n private _renderDisplay(): JSX.Element[] {\n const { ListItem } = this.props.navProps;\n let menuItemData: IMenuItemData[] = [];\n if (this.state.isOnlyMobile) {\n menuItemData = this.menuItemData;\n } else {\n menuItemData = this.props.navProps.menuItemData;\n }\n const { activeMenu } = this.state;\n const menuItemList: JSX.Element[] = [];\n let cmsMenuData: IMenuItemData[] | undefined = [];\n let retailMenuItemData: IMenuItemData[] | undefined = [];\n const retailMenuData = JSON.parse(JSON.stringify(menuItemData)) as IMenuItemData[];\n\n for (const item of retailMenuData) {\n retailMenuItemData = item.subMenu!.filter(subMenuItem => subMenuItem.id && subMenuItem.id >= MenuTypeIndexId.Retail);\n item.subMenu = retailMenuItemData;\n }\n\n for (const item of menuItemData) {\n cmsMenuData = item.subMenu!.filter(subMenuItem => subMenuItem.id && subMenuItem.id < MenuTypeIndexId.Retail);\n }\n\n if (this.state.isOnlyMobile && activeMenu !== undefined && ArrayExtensions.hasElements(menuItemData)) {\n let menuItem: IMenuItemData | null = {};\n for (const menuItemDatum of menuItemData) {\n if (menuItemDatum.id === activeMenu) {\n menuItem = menuItemDatum;\n if (!NavigationMenuRootEnabled.isBackTrack) {\n this.setState({\n parentMenu: undefined\n });\n } else {\n this.setState({\n parentMenu: undefined,\n mobileViewLabelText: menuItemDatum.linkText\n });\n }\n break;\n }\n menuItem = this._getFromSubMenu(menuItemDatum);\n if (menuItem && menuItem.id === activeMenu) {\n break;\n }\n }\n\n if (menuItem) {\n menuItemList.push(\n \n {` `}\n {this._createMenuItemList(menuItem)} {` `}\n \n );\n }\n } else {\n for (const [index, item] of retailMenuData.entries()) {\n menuItemList.push(\n \n {this._createMenuItemList(item)}\n
    \n );\n }\n\n for (const [index, item] of cmsMenuData.entries()) {\n menuItemList.push(\n \n {this._createMenuItemList(item)}\n \n );\n }\n }\n\n return menuItemList;\n }\n\n private _getFromSubMenu(item?: IMenuItemData): IMenuItemData | null {\n const subMenus = item?.subMenu;\n if (subMenus && ArrayExtensions.hasElements(subMenus)) {\n for (let index = 0; index <= subMenus.length - NavMenuConstants.one; index++) {\n const subMenu: IMenuItemData = subMenus[Number(index)];\n let parentMenuId = item?.id;\n\n if (subMenu.id === this.state.activeMenu) {\n if (parentMenuId === NavMenuConstants.rootMenu && subMenu.id! < MenuTypeIndexId.Retail) {\n parentMenuId = undefined;\n }\n\n if (!NavigationMenuRootEnabled.isBackTrack) {\n this.setState({ parentMenu: parentMenuId });\n } else {\n this.setState({ parentMenu: parentMenuId, mobileViewLabelText: subMenu.linkText });\n }\n return subMenu;\n }\n const found = this._getFromSubMenu(subMenu);\n if (found) {\n return found;\n }\n }\n }\n return null;\n }\n\n private _createMenuItemList(menuItemData: IMenuItemData): JSX.Element | null {\n if (ArrayExtensions.hasElements(menuItemData.subMenu)) {\n if (this.state.isOnlyMobile && this.state.activeMenu !== undefined) {\n return this._renderSubMenu(menuItemData.subMenu, menuItemData.id, false);\n }\n return (\n <>\n {this._renderButtonMenuItem(menuItemData)}\n {this._renderSubMenu(menuItemData.subMenu, menuItemData.id)}\n \n );\n } else if (menuItemData.linkURL && !StringExtensions.isNullOrWhitespace(menuItemData.linkURL)) {\n return this._renderLinkMenuItem(menuItemData, menuItemData.id);\n } else if (!menuItemData.linkURL) {\n return this._renderSpanMenuItem(menuItemData);\n }\n\n return null;\n }\n\n private _renderSubMenu(subMenuArray?: IMenuItemData[], activeMenu?: number, isSubMenu?: boolean): JSX.Element | null {\n let subMenus: IMenuItemData[] | undefined = subMenuArray;\n if (activeMenu === NavMenuConstants.rootMenu) {\n subMenus = subMenuArray!.filter(subMenuItem => subMenuItem.id && subMenuItem.id >= MenuTypeIndexId.Retail);\n }\n\n const { ListItem } = this.props.navProps;\n const isEnableMultiSupportMenu = this.props.navProps.config.enableMultilevelMenu ?? false;\n const multiLevelSupportedMenu = this.props.navProps.config.menuLevelSupport ?? NavMenuConstants.three;\n\n if (activeMenu && this.state.activeMenu !== activeMenu) {\n this.props.navProps.context.telemetry.error('Navigation Active menu content is empty, module wont render.');\n return null;\n }\n\n if (!subMenus || !ArrayExtensions.hasElements(subMenus)) {\n this.props.navProps.context.telemetry.error('Navigation Submenu content is empty, module wont render.');\n return null;\n }\n\n let levelClassName: string = '';\n const menuOptions = subMenus.map((option: IMenuItemData, index: number) => {\n const hasOptions = option.subMenu && ArrayExtensions.hasElements(option.subMenu);\n let menuItem: JSX.Element | null;\n if (hasOptions && this.state.isOnlyMobile) {\n menuItem = this._renderButtonMenuItem(option, activeMenu, index);\n } else if (this.currentLevel === NavMenuConstants.one || !hasOptions) {\n menuItem = this.getMenuItem(option, index);\n } else {\n menuItem = null;\n }\n let subMenu;\n const isHavingSubmenu =\n hasOptions && isEnableMultiSupportMenu && this.currentLevel <= Math.round(multiLevelSupportedMenu) - NavMenuConstants.one;\n\n if (hasOptions && !this.state.isOnlyMobile) {\n if (this.currentLevel >= NavMenuConstants.two) {\n subMenu = this._renderSubMenuDrawer(option);\n } else if (this.currentLevel <= this.supportedLevel - NavMenuConstants.one) {\n this.currentLevel++;\n levelClassName = `level-${this.currentLevel.toString()}`;\n subMenu = this._renderSubMenu(option.subMenu, undefined, true);\n }\n }\n if (isHavingSubmenu && this.state.isOnlyMobile) {\n this.currentLevel++;\n levelClassName = isEnableMultiSupportMenu ? `level-${this.currentLevel.toString()}` : '';\n subMenu = this._renderSubMenu(option.subMenu, option.id, true);\n }\n const imagesource = option.imageSource ? option.imageSource : '';\n return (\n \n {menuItem}\n {subMenu}\n \n );\n });\n return this._renderMenu(levelClassName, menuOptions, isSubMenu);\n }\n\n private getMenuItem(option: IMenuItemData, index: number): JSX.Element | null {\n let menuItem: JSX.Element | null;\n if (this.currentLevel === NavMenuConstants.one) {\n menuItem = option.linkURL ? this._renderLinkMenuItemLevelOne(option, index) : this._renderSpanMenuItem(option);\n } else {\n menuItem = option.linkURL ? this._renderLinkMenuItem(option, index) : this._renderSpanMenuItem(option);\n }\n return menuItem;\n }\n\n private _renderSubMenuDrawer(menuItem: IMenuItemData): JSX.Element | null {\n const levelClassName = `level-${this.currentLevel.toString()}`;\n const toggleButtonText = menuItem.linkText;\n const keyValue = this.state.drawerKeyValue;\n const buttonText = toggleButtonText !== undefined ? toggleButtonText : '';\n const keys = keyValue;\n const multiLevelSupportedMenu = this.props.navProps.config.menuLevelSupport ?? NavMenuConstants.three;\n\n let isDrawerOpen = false;\n if (keys[menuItem.id!]) {\n isDrawerOpen = true;\n }\n const colProps: ICollapseProps = { timeout: 0, isOpen: isDrawerOpen };\n return (\n \n
    \n {menuItem.subMenu!.map((menuSubItem: IMenuItemData) => {\n if (ArrayExtensions.hasElements(menuSubItem.subMenu)) {\n this.currentLevel++;\n if (this.currentLevel < multiLevelSupportedMenu) {\n return this._renderSubMenuDrawer(menuSubItem);\n }\n }\n return this._renderDrawerLink(menuSubItem);\n })}\n
    \n \n );\n }\n\n /**\n * Method to handle escape key event.\n * @param menuId -Number.\n * @param isDrawerOpen -Boolean.\n * @returns Void.\n */\n private readonly _bindDesktopCategoryClick = (menuId: number | undefined, isDrawerOpen: boolean) => (): void => {\n const { drawerKeyValue } = this.state;\n const newPair = { [menuId!]: !isDrawerOpen };\n this.setState({ drawerKeyValue: { ...drawerKeyValue, ...newPair } });\n };\n\n private _renderButtonMenuItem(option: IMenuItemData, activeMenu?: number, index?: number): JSX.Element | null {\n return (\n \n {option.linkText}\n \n );\n }\n\n private _renderLinkMenuItem(option: IMenuItemData, index?: number): JSX.Element | null {\n const { Link } = this.props.navProps;\n const linkText = option.linkText ? option.linkText : '';\n this.payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n return (\n \n {option.linkText}\n \n );\n }\n\n private _renderLinkMenuItemLevelOne(option: IMenuItemData, index?: number, isHoverEffect: boolean = true): JSX.Element | null {\n const { Link } = this.props.navProps;\n const linkText = option.linkText ? option.linkText : '';\n const imagesource = option.imageSource ? option.imageSource : '';\n this.payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n return (\n \n {option.linkText}\n \n );\n }\n\n private _renderPromotionalLink(linkText?: string, linkUrl?: string): JSX.Element | null {\n const { Link } = this.props.navProps;\n this.payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n if (linkText && linkUrl) {\n return (\n \n {linkText}\n \n );\n }\n return null;\n }\n\n private _renderSpanMenuItem(option: IMenuItemData, index?: number): JSX.Element | null {\n const { Span } = this.props.navProps;\n return (\n \n {option.linkText}\n \n );\n }\n\n private _renderMenu(level: string, menuOptions: JSX.Element[], isSubmenu?: boolean): JSX.Element | null {\n const { DivContainer, ImageDivContainer, showCategoryImage, showPromotionalContent } = this.props.navProps;\n const isCategoryImageDisplay =\n !this.state.isOnlyMobile &&\n showCategoryImage &&\n this.state.categoryImage !== null &&\n this.state.categoryImage !== undefined &&\n !isSubmenu;\n const isPromotionalContentDisplay =\n !this.state.isOnlyMobile && showPromotionalContent && ArrayExtensions.hasElements(this.state.categoryImage) && !isSubmenu;\n const divContainerClass =\n this.currentLevel > NavMenuConstants.two || isCategoryImageDisplay ? DivContainer!.className : 'ms-nav__deafult';\n this.currentLevel = NavMenuConstants.one;\n const menuLevelSupportClassName =\n isCategoryImageDisplay &&\n this.props.navProps.config.menuLevelSupport &&\n this.props.navProps.config.menuLevelSupport > NavMenuConstants.two &&\n 'navmenu-multi-level';\n\n const categoryImages = this.state.categoryImage?.filter(image => !StringExtensions.isNullOrWhitespace(image.src));\n const imagesContainerKey = categoryImages?.map(item => item.src).join('-');\n return (\n \n \n {menuOptions}\n \n
    \n {isCategoryImageDisplay &&\n ArrayExtensions.hasElements(categoryImages) &&\n categoryImages.map(item => (\n \n {getCategoryImage(this.props, item.src ?? '', item.altText!.toString())}\n {isPromotionalContentDisplay &&\n this._renderPromotionalLink(item.altText, item.additionalProperties?.linkUrl)}\n \n ))}\n
    \n \n );\n }\n\n /**\n * Handle Category image update.\n * @param categoryImageSource - Image source.\n * @param option - Menu Item data.\n * @returns Returns empty.\n */\n private readonly _updateCategoryImage = (categoryImageSource: string, option: IMenuItemData) => () => {\n const linkText = option.linkText ? option.linkText : '';\n const promotionalImage: Msdyn365.IImageData[] = [{ src: categoryImageSource, altText: linkText }];\n\n // Read category and promotional image in one array\n if (ArrayExtensions.hasElements(option.promotionalContent)) {\n for (const item of option.promotionalContent) {\n const imageSource = item.image.src;\n promotionalImage.push({\n src: imageSource,\n altText: item.text,\n additionalProperties: { linkUrl: item.linkUrl.destinationUrl }\n });\n }\n }\n this.setState({\n categoryImage: ArrayExtensions.hasElements(promotionalImage) ? promotionalImage : [{ src: 'empty' }]\n });\n };\n\n /**\n * Handle dropdown toggle.\n * @param data - Menu Item data.\n * @param parentId - Number.\n * @returns Returns empty.\n */\n private readonly _handleDropdownToggle = (data: IMenuItemData, parentId?: number) => () => {\n if (!this.state.isOnlyMobile) {\n this.setState({\n activeMenu: data.id,\n parentMenu: parentId\n });\n if (this.props.navProps.showCategoryImage) {\n this._updateCategoryImage(data.imageSource!, data)();\n }\n } else {\n NavigationMenuRootEnabled.isBackTrack = false;\n this.setState({\n activeMenu: data.id,\n mobileViewLabelText: data.linkText!,\n parentMenu: parentId\n });\n }\n };\n\n /**\n * Handle back navigation for menu items for mobile view.\n * @returns Returns empty.\n */\n private readonly _handleGoBack = () => () => {\n NavigationMenuRootEnabled.isBackTrack = true;\n this.setState(previousState => ({ activeMenu: previousState.parentMenu }));\n };\n\n /**\n * Function to close the nav menu on click on body.\n * @param event - MouseEvent.\n */\n private readonly _handleClickOutside = (event: MouseEvent) => {\n if (this.menuNode.current && !this.menuNode.current.contains(event.target as Node)) {\n if (!this.state.isOnlyMobile) {\n this.setState({ activeMenu: NavMenuConstants.rootMenu, mobileViewLabelText: '', isNavOpen: false });\n } else {\n this.setState({ activeMenu: undefined, mobileViewLabelText: '', isNavOpen: false });\n }\n }\n };\n\n /**\n * Add shop all link for Mobile submenu.\n */\n private readonly _addShopAllLink = (): void => {\n const { menuItemData } = this.props.navProps;\n this.menuItemData = menuItemData;\n if (ArrayExtensions.hasElements(menuItemData) && ArrayExtensions.hasElements(menuItemData[0].subMenu)) {\n this.menuItemData[0].subMenu?.map(item => {\n const shopAllObject = {};\n Object.assign(shopAllObject, { imageSource: item.imageSource });\n Object.assign(shopAllObject, { linkText: this.props.navProps.resources.allCategoryMenuText });\n Object.assign(shopAllObject, { linkURL: item.linkURL });\n if (ArrayExtensions.hasElements(item.subMenu) && item.menuSource === MenuSource.Retail) {\n item.subMenu.unshift(shopAllObject);\n }\n return item;\n });\n }\n };\n\n /**\n * Checks to assign a ref for focus.\n * @param index -Sub menu list index.\n * @param mobileViewLabelText -Mobile view label text.\n * @param optionLinkText -Sub menu item link text.\n * @returns Boolean.\n */\n private readonly _shouldAddFocusMenuRef = (index: number, mobileViewLabelText?: string, optionLinkText?: string) => {\n const firstIndex: number = 0;\n if (!NavigationMenuRootEnabled.isBackTrack && index === firstIndex) {\n return true;\n }\n if (!optionLinkText || !mobileViewLabelText) {\n return false;\n }\n return mobileViewLabelText === optionLinkText;\n };\n\n /**\n * Function to handle nav menu close.\n */\n private readonly _closeNavMenu = (): void => {\n if (!this.state.isOnlyMobile) {\n this.setState({ activeMenu: NavMenuConstants.rootMenu, mobileViewLabelText: '', isNavOpen: false });\n } else {\n this.setState({ activeMenu: undefined, mobileViewLabelText: '', isNavOpen: false });\n }\n };\n\n /**\n * Function to close the nav menu on esc key.\n * @param event - Event.\n */\n private readonly _escFunction = (event: React.KeyboardEvent) => {\n if (event.keyCode === this.escapeKey && !this.state.isOnlyMobile && this.state.isNavOpen) {\n this.setState({ activeMenu: NavMenuConstants.rootMenu, mobileViewLabelText: '', isNavOpen: false });\n }\n };\n\n /**\n * Custom update viewport.\n */\n private readonly _customUpdateViewport = (): void => {\n this.setState({ isOnlyMobile: this.isOnlyMobile });\n };\n}\n\nexport default NavigationMenuRootEnabled;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { INavigationMenuViewProps } from '@msdyn365-commerce-modules/navigation-menu';\nimport * as React from 'react';\n\nimport { INavigationMenuProps } from '../definition-extensions/navigation-menu.ext.props.autogenerated';\nimport NavigationMenuRootDisabled from './components/navigation-menu-root-disabled';\nimport NavigationMenuRootEnabled from './components/navigation-menu-root-enabled';\n\n/**\n * Render the Navigation menu.\n * @param props - The navigation menu view props.\n * @returns Return HTML having INavigationMenuViewProps props with navigation menu.\n */\nconst navigationMenuView = (props: INavigationMenuViewProps & INavigationMenuProps<{}>): JSX.Element => {\n if (props.config.enabletopMenu) {\n return ;\n }\n\n return ;\n};\n\nexport default navigationMenuView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n IGroup,\n IGroupDelivery,\n IGroups,\n IHelp,\n IOrderDetailsViewProps,\n IOrderInformation,\n IOrderSummary,\n IPaymentMethods,\n ISalesLine\n} from '@msdyn365-commerce-modules/order-management';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport const OrderInfomation: React.FC = ({\n orderInformationProps,\n salesId,\n receiptId,\n createdDate,\n count,\n amount,\n channelReferenceId,\n channelName,\n channelAddress\n}) => (\n \n {channelName}\n {channelAddress}\n {salesId}\n {receiptId}\n {createdDate}\n {count}\n {amount}\n {channelReferenceId}\n \n);\n\nexport const SalesLine: React.FC = ({ salesLineProps, salesLine, buyAgainButton, errors }) => (\n \n {salesLine}\n {buyAgainButton}\n {errors}\n \n);\n\nexport const GroupDelivery: React.FC = ({ deliveryProps, heading, count }) => (\n \n {heading}\n {count}\n \n);\n\nexport const Group: React.FC = ({ groupProps, delivery, address, salesLinesProps, salesLines, isCashAndCarryTransaction }) => (\n \n {delivery && }\n \n {salesLines && (\n \n {salesLines.map(salesLine => (\n \n {!isCashAndCarryTransaction && salesLine.salesStatus}\n {salesLine.data.deliveryType === 'ship' && salesLine.data.shipment ? salesLine.trackingInfo : null}\n \n \n ))}\n \n )}\n {!delivery.showTimeslot && address}\n {delivery.showTimeslot && (\n \n {address}\n {delivery.pickupDateTimeslot}\n \n )}\n \n \n);\n\nexport const Groups: React.FC = ({ groupsProps, groups }) => (\n \n {groups.map((group, index) => (\n \n ))}\n \n);\n\nexport const OrderSummary: React.FC = ({\n orderSummaryProps,\n heading,\n subtotal,\n shipping,\n tax,\n totalAmount,\n earnedPoints\n}) => (\n \n {heading}\n {subtotal}\n {shipping}\n {tax}\n {totalAmount}\n {earnedPoints}\n \n);\n\nexport const Payment: React.FC = ({ paymentMethodsProps, title, methods }) => (\n \n {title}\n {methods}\n \n);\n\nexport const Help: React.FC = ({ helpProps, needHelpLabel, helpLineNumberLabel, contactNumber }) => (\n \n {needHelpLabel}\n {helpLineNumberLabel}\n {contactNumber}\n \n);\n\nconst OrderDetailsView: React.FC = ({\n moduleProps,\n viewModes,\n tableViewActions,\n table,\n placedBy,\n heading,\n alert,\n loading,\n orderInfomation,\n orderSummary,\n payment,\n help,\n groups\n}) => {\n return (\n \n {placedBy}\n {heading}\n {alert}\n {loading}\n {orderInfomation && }\n {tableViewActions}\n {viewModes}\n {table}\n {groups && }\n \n {orderSummary && }\n {payment && }\n \n {help && }\n \n );\n};\n\nexport default OrderDetailsView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getPayloadObject, getTelemetryAttributes, getTelemetryObject, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n ISignInItem,\n ISignInLoading,\n ISignInLocalAccount,\n ISignInSocialAccount,\n ISignInSocialItem,\n ISignInB2BAccount,\n ISignInB2BItem,\n ISignInViewProps,\n ISignInButton\n} from '@msdyn365-commerce-modules/account-management';\n\nimport { ISignInProps, ISignInResources } from '../definition-extensions/sign-in.ext.props.autogenerated';\n\nconst LocalAccount: React.FC = ({ localAccount, items, forgetPassword, disclaimer, error, signInButton }) => {\n return (\n \n {items &&\n items.map((item: ISignInItem) => {\n return (\n \n {item.label}\n {item.error}\n {item.input}\n \n );\n })}\n {forgetPassword}\n {disclaimer}\n {error}\n {signInButton}\n \n );\n};\n\nconst SocialAccount: React.FC = ({ socialAccounts, items }) => {\n return (\n \n {items &&\n items.map((item: ISignInSocialItem) => {\n return (\n \n {item.image}\n {item.text}\n \n );\n })}\n \n );\n};\n\nconst B2BAccount: React.FC = ({ socialAccounts, items }) => {\n return (\n \n {items &&\n items.map((item: ISignInB2BItem) => {\n return (\n item && (\n \n {item.text}\n \n )\n );\n })}\n \n );\n};\n\nconst SignInLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\nconst SignInButton: React.FC = ({ id, className, text, ariaLabel, telemetryContent, onClick }) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n {text}\n \n );\n};\n\nconst signUpButton: React.FC> = (\n props: ISignInViewProps & ISignInProps\n) => {\n const {\n resources,\n telemetry,\n friendlyName,\n context: {\n request: { telemetryPageName }\n }\n } = props;\n const telemetryContent = getTelemetryObject(telemetryPageName!, friendlyName, telemetry);\n const attributes = {\n href: '#'\n };\n\n return (\n \n );\n};\n\nconst SignInView: React.FC> = props => {\n const {\n signIn,\n viewState,\n loading,\n defaultAADConainer,\n aadConainer,\n signInSection,\n signUpSection,\n signInSectionHeading,\n signInLocalAccount,\n signInSocialAccount,\n signUpSectionHeading,\n signInB2BAccount,\n signUpDescription\n } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n \n {signInSectionHeading}\n {LocalAccount(signInLocalAccount)}\n {SocialAccount(signInSocialAccount)}\n \n \n {signUpSectionHeading}\n {signUpDescription}\n {signUpButton(props)}\n \n
    \n
    \n or\n
    \n {B2BAccount(signInB2BAccount)}\n
    \n
    \n
    \n );\n};\n\nexport default SignInView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IImageSettings, Image, RichTextComponent } from '@msdyn365-commerce/core';\nimport { IWriteReviewData, IWriteReviewViewProps } from '@msdyn365-commerce-modules/ratings-reviews';\nimport { generateImageUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IWriteReviewProps } from '../definition-extensions/write-review.ext.props.autogenerated';\n\n/**\n * Render Product Image.\n * @param props - WriteReview ViewProps.\n * @returns JSX Element.\n */\nconst renderProductImage = (props: IWriteReviewViewProps & IWriteReviewProps): JSX.Element => {\n const primaryImageSource = props.data.product.result?.PrimaryImageUrl;\n const imageUrl = generateImageUrl(primaryImageSource, props.context.request.apiSettings);\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=111&h=111&m=6', w: 111, h: 111 },\n sm: { q: 'w=130&h=130&m=6', w: 130, h: 130 },\n md: { q: 'w=130&h=130&m=6', w: 130, h: 130 },\n lg: { q: 'w=130&h=130&m=6', w: 130, h: 130 },\n xl: { q: 'w=130&h=130&m=6', w: 130, h: 130 }\n },\n lazyload: true,\n cropFocalRegion: true\n };\n\n return (\n \n );\n};\n\n/**\n * Render Product Description.\n * @param props - WriteReview ViewProps.\n * @returns JSX Element.\n */\nconst renderProductDescription = (props: IWriteReviewViewProps & IWriteReviewProps): JSX.Element => {\n const product = props.data.product.result;\n return (\n \n
    {renderProductImage(props)}
    \n
    \n
    {product?.Name}
    \n
    {product?.ItemId}
    \n
    \n
    \n );\n};\n\n/**\n * Create Write Review Modal.\n * @param props - WriteReview ViewProps.\n * @returns JSX Element.\n */\nconst createReviewModal = (props: IWriteReviewViewProps & IWriteReviewProps): JSX.Element => {\n const { resources, moduleProps, reviewModal } = props;\n\n return (\n \n {reviewModal.modalHeader}\n \n \n \n {renderProductDescription(props)}\n \n
    {resources.selectRatingLabel}
    \n {reviewModal.rating}\n
    \n
    \n \n {resources.reviewTitleLabel}\n {reviewModal.titleInput}\n \n \n {resources.reviewTextLabel}\n {reviewModal.textInput}\n \n {reviewModal.privacyPolicyUrl}\n {reviewModal.error}\n
    \n
    \n \n {reviewModal.submitButton}\n {reviewModal.cancelButton}\n \n
    \n );\n};\n\n/**\n * WriteReview view.\n * @param props - WriteReview ViewProps.\n * @returns WriteReview view module.\n */\nconst WriteReviewView: React.FC> = props => {\n const { config, heading, signInMessage, signInButton, modalToggle, moduleProps } = props;\n const { paragraph } = config;\n const isAuthenticated = props.context.request.user.isAuthenticated;\n const text = paragraph && ;\n\n return (\n \n {heading}\n {!isAuthenticated ? (\n <>\n {signInMessage}\n {signInButton}\n \n ) : (\n <>\n {text}\n {modalToggle}\n {createReviewModal(props)}\n \n )}\n \n );\n};\n\nexport default WriteReviewView;\n"],"names":["MenuTypeIndexId","MenuSource","navigationMenuSource","NavigationMenu","React","constructor","props","super","isRetail","isCMS","_setNavigationSource","sourceType","retailServerOnly","this","cmsOnly","all","_updateViewport","bind","viewport","context","request","device","Type","config","state","isMobile","menuItemList","locale","nameTranslations","nameTranslation","length","find","item","Language","toLowerCase","Text","componentDidMount","MsDyn365","isBrowser","resizeThrottledEventHandler","addThrottledEvent","window","componentWillUnmount","removeEventListener","render","_this$props$config$di","_this$props$config$di2","_mapData","isEmptyOrNullObject","data","telemetry","error","viewProps","_objectSpread","imageSettings","viewports","xs","q","w","h","xl","lazyload","gridSettings","Navigation","moduleProps","className","classnames","tag","role","MenuList","ListItem","showCategoryImage","displayCategoryImage","showPromotionalContent","displayPromotionalImage","Link","DivContainer","ImageDivContainer","Button","onClick","ImageContainer","Span","MobileDescriptionContainer","MobileBackButton","resources","backButtonAriaLabel","MobileDescriptionLabel","isMobileView","menuItemData","renderView","mergedData","categories","result","map","index","push","_constructMenuItemData","undefined","cmsNavItems","idx","_constructTopMenuItemData","_this$props$config$en","_this$props$config$ro","enabletopMenu","mergedRootMenuData","topMenu","id","linkText","rootMenuNavigation","linkURL","imageSource","subMenu","retailItem","cmsItem","addedAllMenu","categoryPromotionalContent","cmsItemText","menuAriaLabel","promotionalData","filter","promoItem","_promoItem$categoryNa","_retailItem$Name","categoryName","Name","_NavigationMenu$getFr","_retailItem$Url","_NavigationMenu$getFr2","ArrayExtensions","hasElements","Images","Uri","RSItemIdInit","getFriendlyName","NameTranslations","Url","substring","split","slice","join","_getNestedChildren","promotionalContent","menuSource","Retail","ariaLabel","CMSItemIdInit","linkUrl","destinationUrl","imageDestinationURL","imageLink","image","src","_getCMSNestedChildren","Cms","shouldOpenNewTab","openInNewTab","category","imageSourceUrl","nestedChildren","Children","subMenus","_getViewport","setState","innerWidth","sm","md","lg","__decorate","observable","computed","NavigationMenuView","currentLevel","sm_text_count","_updateCategoryImage","categoryImageSrc","option","promotionalImage","altText","imageSrc","promotionalItemImageSettings","text","additionalProperties","categoryImage","categoryImageAltText","_handleDropdownToggle","parentId","isBackTrack","activeMenu","mobileViewLabelText","parentMenu","_handleGoBack","_handleClickOutside","event","menuNode","current","contains","target","_handleFocusOutside","relatedTarget","_closeSubmenu","_shouldAddFocusMenuRef","optionLinkText","_getCategoryImage","defaultImageSettings","_ref","_categoryImage$imageS","generateImageUrl","actionContext","requestContext","apiSettings","Image","Object","assign","categoryImageSettings","loadFailureBehavior","menuItemRef","telemetryContent","getTelemetryObject","telemetryPageName","friendlyName","payLoad","getPayloadObject","document","body","addEventListener","componentDidUpdate","_this$menuItemRef$cur","children","focus","Module","Node","ref","tabIndex","_renderDisplay","menuItem","menuItemDatum","_getFromSubMenu","key","_createMenuItemList","forEach","i","found","_renderSubMenu","_renderButtonMenuItem","_renderLinkMenuItem","_renderSpanMenuItem","IsSubMenu","enableMultiSupportMenu","enableMultilevelMenu","multiLevelSupportedMenu","menuLevelSupport","levelClassName","menuOptions","hasOptions","haveSubmenu","Math","round","toString","_renderMenu","onFocus","hoverEffect","arguments","isParent","imagesource","contentAction","etext","attributes","getTelemetryAttributes","onMouseOver","href","onTelemetryClick","_renderPromotionalLink","level","currentItem","submenu","categoryImageDisplay","promotionalContentDisplay","DivContainerClass","_item$additionalPrope","ProductSpecification","ProductSpecificationTableProps","ProductSpecificationTableBodyProps","productSpecificationResult","rowdata","row","ObjectExtensions","isNullOrUndefined","cellData","dangerouslySetInnerHTML","title","aadGeneric","aadConainer","aadAPIConainer","heading","AccountAddressTile","description","links","AccountCustomerBalanceTile","content","accountSectionHeading","creditSummarySectionHeading","accountLabels","accountValues","creditSummaryLabels","creditSummaryValues","homeButton","actions","requestStatementModal","availableCredit","balanceOwed","creditExcess","AccountGenericTile","AccountInvoiceTile","AccountLoyaltyTile","AccountProfileEditItem","wrapper","label","errorMessage","input","AccountProfileEditLoading","_ref3","modal","modalBody","icon","message","accountProfileEdit","viewState","loading","defaultAADConainer","accountProfileEditLocalAccount","isShowLoading","_ref2","localAccount","items","buttonsWrapper","buttons","verificationSuccessModal","verificationSuccessModalMessage","button","LocalAccount","AccountPreferencesSection","accountPreferences","personalization","extraPreferences","AccountPreferenceSection","preferenceSecton","accountPreference","buttonWrapper","buttonYesText","buttonNoText","AccountProfileSection","AccountProfileItem","AccountProfile","infoMessageBar","accountProfileWrapper","emailSection","nameSection","preferenceSection","customerAttributesWrapper","customerAttributesSection","AccountWelcomeTile","AccountWishlistTile","b2bRequestsStatus","table","b2bRequestsTile","LoyaltyTerms","modalToggle","modalHeader","terms","agreeSection","checkbox","agreeText","modalFooter","submitButton","cancelButton","OrganizationUsersTile","PasswordResetItem","PasswordResetLoading","passwordReset","passwordResetLocalAccount","SignUpItem","SignUpEmailVerification","email","successMessage","SignUpGivenNameVerificationComponent","givenName","SignUpSurnameVerificationComponent","_ref4","surname","SignUpLoading","_ref6","signUp","signUpLocalAccount","_ref5","emailVerification","givenNameVerification","surnameVerification","disclaimer","isRequired","verificationControlWrapper","AddressShow","AddressDetail","AddressAddUpdate","AddressForm","hasError","isShowSaveButton","saveButton","isShowCancelButton","AddressItem","alert","AddressError","CheckoutBillingAddress","checkoutErrorRef","sameAsShippingCheckbox","showAddress","showAddOrUpdateAddress","isShowSameAsShippingCheckbox","isShowAddress","isShowAddOrUpdateAddress","BulkPurchaseViewComponent","container","BusinessPartnerPromotionTermsParagraph","titleClassName","moduleClassName","BusinessPartnerPromotion","onCheckBoxChange","termsOfServiceChecked","checked","onToggleTermOfServiceModal","termsOfServiceModalOpened","onSubmit","async","_data$b2bUserInformat","_data$b2bUserInformat2","errorMessageText","promoteToSellerSubmitSuccessMessage","businessPartnerId","b2bUserInformation","BusinessPartnerId","promoteToSellerAsync","callerContext","showSubmitButton","showTermsOfService","notificationMessage","_unused","termsOfService","authorizationErrorMessage","canSubmit","isAdminUser","status","btnEnabled","businessPartnerPromotionProps","renderNotificationBar","sellerDescriptions","renderSellerDescriptions","termsOfServiceCheckbox","type","termsOfServiceLinkText","onChange","termsOfServiceAgreementText","termsOfServiceModal","Modal","isOpen","horizontalPosition","verticalPosition","autoFocus","fade","toggle","ModalHeader","termsOfServiceModalHeading","ModalBody","submitRequestLabel","disabled","notificationBar","Alert","color","results","idx1","_description$bulletPo","bulletPoints","bulletPoint","idx2","user","StringExtensions","isNullOrEmpty","IsAdmin","selectedBusinessPartnerUser","businessPartnersProps","businessPartnersHeading","catalogLoadingIndicator","catalogLoadingErrorMessage","cookieConsentNotGivenErrorMessage","backToBusinessPartnersLink","businessPartnerUsersHeading","businessPartnersTable","businessPartnerUsersTable","_renderCartlines","cartLines","cartEmptyText","CartlinesWrapper","storeSelector","backToShoppingButton","waitingComponent","cartLoadingStatus","cartDataResult","cartLine","_cartLine$cartlineId","cartlineId","cartline","pickUpInStore","ContainerProps","defaultComponent","addToOrderTemplate","remove","addToWishlist","renderCartLinesGroupHeader","pickUpText","shippingText","emailShippingText","titleSeparate","emailDeliveryModeCode","_cartLine$pickUpInSto4","groupTitle","isBopisSelected","DeliveryMode","renderCartLinesGroupTitle","_cartLine$pickUpInSto","_cartLine$pickUpInSto2","_cartLine$pickUpInSto3","deliveryOption","orgUnitName","_props$cart","_props$cart2","errorData","promotions","renderModuleAttributes","cart","hasInvoiceLine","promotionOptions","promotionMessageWrapper","promotionMessage","promotionSeeAllLink","promotionDialog","multiplePickUpEnabled","cartLinesGroup","cartlines","_props$context$action","emailshippingText","channel","EmailDeliveryModeCode","emptyCartText","renderCartLinesGroup","orderSummaryHeading","OrderSummaryWrapper","_renderInvoiceSummarylines","invoiceSummaryLines","OrderSummaryItems","invoices","giftCard","loyalty","orderTotal","invoiceSummaryLineitems","_renderOrderSummarylines","orderSummaryLines","promoCode","subtotal","shipping","otherCharge","tax","totalDiscounts","orderSummaryLineitems","OrderSummaryErrors","errors","Wrapper","header","checkoutAsSignInUserButton","checkoutAsGuestButton","expressCheckoutButton","ExpressCheckoutSectionWrapper","createTemplateFromCartButton","CatalogPickerViewFunctionComponent","catalogPicker","paragraph","catalogs","checkoutApplePay","applePayButton","DeliveryOptionList","DeliveryOptionsList","list","DeliveryOption","code","radioButton","price","DeliveryOptionSelected","CheckoutDeliveryOptions","deliveryOptions","deliveryOptionSelected","waiting","editButton","isLoading","isError","isShowList","isShowSelected","isShowEditButton","ContainerItemsComponent","isLoadingClassName","checkoutPlainContainerProps","isReady","headerProps","AddCheckoutLoyalty","cardNumber","drawer","rewardPoints","loyaltyAmountContainer","appliedLoyaltyAmountContainer","loyaltyAmountLabel","loyaltyAmountInput","loyaltyAmountApplyButton","showAppliedAmount","loyaltyAmountAppliedText","loyaltyAmountAppliedPrice","loyaltyAmountRemoveButton","rewardPoint","checkoutLoyaltyRewardPoint","availablePointsText","activePoints","expiringPointsText","expiringPoints","ShowCheckoutLoyalty","coveredAmountText","amount","checkoutLoyalty","showLoyalty","addLoyalty","isShowLoyalty","isShowAddLoyalty","CookieComplianceAcceptButton","acceptCookiesButtonText","acceptCookiesButtonAriaLabel","onClose","CookieComplianceLinks","_mapEditableLinks","linkdata","editableLinks","link","editableLink","Msdyn365","editProps","onTextChange","CookieCompliance","handleLinkTextChange","linkIndex","_this$props$config$ac","actionLinks","value","handleContentChange","visible","cookieRef","_onDismiss","cookies","isConsentGiven","acceptCookiesAriaLabel","moduleConfig","onDismiss","CookieComplianceBanner","AlertProps","Content","onEdit","acceptButton","setConsentCookie","location","reload","renderCustomerName","accountInformation","customer","FirstName","_renderReactFragment","slot","HeaderTag","HeaderContainer","HeaderTopBarContainer","Divider","navIcon","logo","search","preferredStore","renderForMobile","AccountInfoDropdownParentContainer","AccountInfoDropdownPopoverConentContainer","accountInfoDropdownButton","signOutLink","signInLink","accountLinks","accountClassName","_renderAccountBlock","wishListIconDesktop","cartIcon","siteOptions","MobileMenuLinksContainer","mobileMenuCollapsed","Collapse","Drawer","openGlyph","closeGlyph","glyphPlacement","toggleButtonText","_renderMobileAccountBlock","wishListIconMobile","menuBar","_renderCollapseMenu","_positionInSetOffset","escapeKey","_resetFocus","setTimeout","_escFunction","keyCode","navDrawerList","Array","from","childNodes","navDrawerButton","firstChild","getAttribute","categoryImageUrl","ImageData","_onDrawerChange","drawerState","drawerKeyValue","newPair","buttonText","_renderMobileMenu","_renderDesktopMenu","posinset","_renderDrawerMenu","setSize","_renderDrawer","keyValue","keys","isDrawerOpen","colProps","toggleButtonProps","onToggle","collapseProps","_renderLinkText","menuSubItem","currentPos","_menuItem$subMenu2","_menuItem$subMenu","_renderDrawerLink","OrderInfomation","orderInformationProps","salesId","receiptId","createdDate","count","channelReferenceId","channelName","channelAddress","SalesLine","salesLineProps","salesLine","buyAgainButton","GroupDelivery","deliveryProps","Group","groupProps","delivery","address","salesLinesProps","salesLines","isCashAndCarryTransaction","LineId","deliveryType","shipment","trackingInfo","salesStatus","showTimeslot","pickupProps","pickupDateTimeslot","Groups","groupsProps","groups","group","OrderSummary","orderSummaryProps","totalAmount","earnedPoints","Payment","_ref7","paymentMethodsProps","methods","Help","_ref8","helpProps","needHelpLabel","helpLineNumberLabel","contactNumber","_ref9","viewModes","tableViewActions","placedBy","orderInfomation","orderSummary","payment","help","createSearchResultModal","modalProps","refineMenu","sortByDropDown","isRecoSearchPage","createModalBody","renderSort","renderRefiner","refiners","RefineMenuContainer","RefinerSectionContainer","SortingContainer","renderCategoryHierarchy","CategoryHierarchyContainer","categoryHierarchyList","categoryHierarchySeparator","renderTitle","TitleContainer","titlePrefix","titleText","titleCount","SearchResultContainer","products","pagination","ProductsContainer","ProductSectionContainer","choiceSummary","searchResultModal","TitleViewProps","categoryHierarchy","sortByOptions","CategoryNavContainer","RefineAndProductSectionContainer","FeatureSearchContainer","similarLookProduct","query","recommendation","BackTopFooter","backtoTopText","destination","BackToTop","FooterCategory","slots","viewprops","FooterList","FooterListItem","FooterCategoryView","Iframe","iframeRef","srcURL","URL","exception","protocol","toLocaleLowerCase","iframeClassName","Heading","_createHeading","IframeContainer","IFrame","_createIframe","cookieConsentAccepted","_renderAlert","cookieConsentRequiredMessage","targetURL","height","iframeAriaLabel","IFrameView","InvoiceDetailsView","paymentDetails","payInvoiceError","InvoiceListView","invoiceRequestModal","allCategoryMenuText","getCategoryUrl","OrderDetailsOrderInfomation","OrderDetailsSalesLine","OrderDetailsGroupDelivery","OrderDetailsGroup","OrderDetailsGroups","OrderDetailsOrderSummary","OrderDetailsPayment","OrderDetailsHelp","componentClassName","detailsViewClassName","listViewClassName","viewSelectedClassName","OrderHistoryWithSearchAndFiltersViewModeState","OrderHistoryWithSearchAndFiltersViewModeComponent","msdyn365Commerce","createComponent","component","_props$resources$deta","_props$resources","_props$resources$deta2","_props$resources2","_props$resources$list","_props$resources3","_props$resources$list2","_props$resources4","viewModeState","setViewModeState","currentViewModeState","onClickHandler","newViewModeState","viewModeDetailedViewAttributes","TelemetryConstant","ViewMode","viewModeListViewAttributes","DetailedView","detailedViewOptionAriaLabel","ListView","listViewOptionAriaLabel","OrderLookupViewComponent","_orderLookupForm$clas","_submitButton$classNa","orderLookup","orderLookupContainer","orderLookupAdditionalFieldContainer","orderLookupForm","renderOrderLookupInputField","orderNumberInput","registeredUserMessage","fieldErrorMessage","submitButtonLabelText","renderConfigure","configure","containerProps","dropdowns","renderConfigureDropdown","dropdown","labelContainerProps","select","quickOrderProps","contentProps","form","quickOrderForm","quickOrderFormProductContent","quickOrderFormMsgContent","quickOrderList","renderForm","quickOrderProductContent","quickOrderMsgContent","product","quantity","userMessage","addToCartBtn","TabItemType","TabItem","moduleContentClassName","moduleHeaderClassName","_renderTabHeader","isSelected","itemIndex","contentID","getContentID","tabId","activeContentIDResult","activeTabState","shown","activeContentIndex","TabContentContainer","TabHeaderContainer","TabItemContent","tabHeader","tabSlots","tabItemTitle","observer","_renderTabItemContent","tabItemType","TabContent","tabItemContent","TabHeader","Tab","tabIndexQuery","handleHeadingChange","_refHandler","activeLink","_onClick","e","update","createTabStateInput","currentTabIndex","newUrl","_setGetParameter","String","history","pushState","path","_onKeyDown","slotLength","tabItems","defaultTabIndex","initialIndex","queryString","activeTab","queryTabIndex","indexOf","arr","Number","parseInt","_getTabHeader","_getTabContent","shouldComponentUpdate","nextProps","nextState","headingComponent","tabViewProps","TabContainer","headerSection","tabsSection","tabItemContainer","tabContents","tabHeaders","params","isEditor","dataActionTabId","selected","onKeyDown","paramName","paramValue","url","requestUrl","URLSearchParams","set","decodeURIComponent","TileListLinks","TileListItem","_telemetryContent","handleParagraphChange","_this$props$config$li","backgroundImage","thumbnailImage","redirectionUrl","tileListLinks","tileListLinkContainer","_createParagraph","_renderBackgroundImage","_renderThumbnailImage","tileListItem","tileListContainer","tileListImageContainer","tileListThumbnailImageContainer","tileListHeadingContainer","_heading$tag","isNullOrWhitespace","isAriaHiddenAttribute","_item$imageSettings","_this$props$config$ba","verifiedImageSettings","moduleType","typeName","imagePropertyName","itemImageSettings","_this$props$config$th","layout","msdyn365__moduleLayout","TileListItemViewComponent","renderTileListItemContent","toggleBopisHandler","callbacks","toggleBopis","onChangeStoreHandler","renderCartLine","isMultiplePickUp","outOfStockErrorMessage","renderGroupBopisBlock","_cartLine$data2","changeStoreDisplayText","shipInsteadDisplayText","pickItUpDisplayText","PickupInStore","puckUpinStoreAttribute","renderCartlinesInternal","renderBopisBlock","_cartLine$data","shipToAddressDisplayText","pickUpAtStoreWithLocationText","renderCartlines","isCartDataResult","emptyCart","_cartLine$pickUpInSto6","payInvoicesDisplayText","IsInvoiceLine","replace","_cartLine$pickUpInSto5","itemLabel","itemsLabel","countTitle","_props$cart3","_props$orderSummaryLi","_props$cart4","_props$cart5","_props$cart6","updatedTitle","cartTitle","totalItemsInCart","checkoutBlockedDueToUnavailableFunds","renderOrderSummaryCheckoutButton","_props$context$action2","countItem","reduce","_item$data$cartline$Q","_item$data","Quantity","countItems","renderInvoiceSummarylines","orderSummaryItems","renderOrderSummarylines","renderOrderSummaryCheckout","CartIcon","cartLabel","cartQtyLabel","cartItem","qtyLabel","format","style","visibility","CartIconComponent","createComponentOverride","PromoCode","_onInputChangeHandler","promoCodeInputValue","trim","canApply","_applyPromotion","cartState","appliedPromo","addPromoCode","then","substatus","duplicatePromoCodeErrorText","invalidPromoCodeErrorText","catch","failedToAddPromoCodeErrorText","_onSubmitHandler","preventDefault","applyPromotionHandler","_renderForm","promoPlaceholderText","promoCodeApplyButtonText","placeholder","_removePromotion","_event$currentTarget$","currentTarget","removePromoCodes","promoCodes","failedToRemovePromoCodeErrorText","_renderAppliedPromoCode","Coupons","removePromotionHandler","coupon","removePromoAriaLabelFormat","removePromoText","Code","ApplyPromoCode","promoCodeHeadingText","renderAdditionalContent","additionalContent","_additionalContent$ad","additionalContentNode","additionalContentItems","additionalContentItemContainer","additionalContentItemLinks","contentBlockContainer","imageContainer","detailsContainer","contentBlockAnchorTag","imageAriaLabel","imageClass","FooterItemView","FooterItem","_renderElement","HeadingContainer","EditableLink","NavMenuConstants","getCategoryImage","alttext","navProps","_props$navProps$confi","imageData","NavigationMenuRootDisabled","supportedLevel","four","zero","_toggleNavBar","previousState","isNavOpen","_bindDesktopCategoryClick","menuId","categoryImageSource","isOnlyMobile","_closeNavMenu","_this$menuNode$curren","_this$menuNode$curren2","_customUpdateViewport","variant","VariantType","Browser","customResizeThrottledEventHandler","hamburgerAriaLabel","entries","parentMenuId","menu","one","subMenuArray","isSubMenu","_this$props$navProps$","_this$props$navProps$2","rootMenu","subMenuItem","isEnableMultiSupportMenu","three","getMenuItem","isHavingSubmenu","two","_renderSubMenuDrawer","_renderLinkMenuItemLevelOne","_this$props$navProps$3","timeout","isHoverEffect","isSubmenu","_this$state$categoryI","isCategoryImageDisplay","isPromotionalContentDisplay","divContainerClass","menuLevelSupportClassName","categoryImages","imagesContainerKey","_item$src","NavigationMenuRootEnabled","_addShopAllLink","_this$menuItemData$0$","shopAllObject","unshift","cmsMenuData","retailMenuItemData","retailMenuData","JSON","parse","stringify","SignInLoading","SignInButton","signIn","signInSection","signUpSection","signInSectionHeading","signInLocalAccount","signInSocialAccount","signUpSectionHeading","signInB2BAccount","signUpDescription","forgetPassword","signInButton","socialAccounts","SocialAccount","b2bSignUpButtonAriaLabel","b2bSignUpButtonText","signUpButton","B2BAccount","renderProductDescription","_props$data$product$r","primaryImageSource","PrimaryImageUrl","imageUrl","fallBackSrc","cropFocalRegion","renderProductImage","ItemId","signInMessage","isAuthenticated","RichTextComponent","reviewModal","inputRow","selectRatingLabel","rating","reviewTitleLabel","titleInput","reviewTextLabel","textInput","privacyPolicyUrl","createReviewModal"],"sourceRoot":""}