{"version":3,"file":"static/js/d0842dc5c168ad80114a.bundle.js","mappings":";4LAOA,SAAeA,EAAAA,EAAAA,IAA2B,CACxCC,OAA6BC,EAAAA,aAC7BC,MAAQC,IACCC,EAAAA,EAAAA,0BAAyB,CAAEC,OAAQ,CAAEC,IAAK,IAAOH,EAAQI,eAAeC,YAAYC,wCCPxF,IAAWC,EAMZ,SAAUC,EAAUC,GACxB,OAAOA,EAAQF,EAAYG,KAC7B,kBARA,SAAkBH,GAChBA,EAAAA,EAAA,mBACAA,EAAAA,EAAA,qBACAA,EAAAA,EAAA,kBACD,CAJD,CAAkBA,IAAAA,EAAW,2ECiBvB,MAAOI,UAAcC,EAAAA,cAA3BC,kCAoBU,KAAAC,kBAAoB,KAC1BC,KAAKC,MAAMC,UAAU,EAGf,KAAAC,cAAgB,KAAK,IAAAC,EACtB,QAALA,EAAAC,aAAK,IAAAD,GAALA,EAAOE,iBACPN,KAAKC,MAAMC,UAAU,CA2FzB,CApHSK,SACL,OACIV,EAAAA,cAACW,EAAAA,EAAK,CAACC,KAAMT,KAAKC,MAAMS,UAAWC,OAAQX,KAAKG,cAAeS,UAAQ,GACnEf,EAAAA,cAACW,EAAAA,EAAAA,OAAY,CAACK,cAAab,KAAKC,MAAMa,cAA8BC,WAAS,GACzElB,EAAAA,cAACW,EAAAA,EAAAA,MAAW,CAACQ,UAAU,qBAAqBhB,KAAKiB,eAGrDpB,EAAAA,cAACW,EAAAA,EAAAA,KAAU,KACNR,KAAKkB,kBAGVrB,EAAAA,cAACW,EAAAA,EAAAA,OAAY,KACTX,EAAAA,cAAA,KAAGsB,KAAK,GAAGC,QAASpB,KAAKG,cAAea,UAAU,6CAA6CK,MAAOrB,KAAKC,MAAMR,SAAW,CAAEC,MAAO,QAAa,CAAEA,MAAO,QAAYM,KAAKsB,mBAC5KzB,EAAAA,cAAA,KAAGsB,KAAMnB,KAAKC,MAAMsB,IAAKC,OAAQxB,KAAKC,MAAMa,cAAgB,SAAW,QAASM,QAASpB,KAAKD,kBAAmBiB,UAAWhB,KAAKC,MAAMa,cAAgB,kDAAoD,2CAA4CO,MAAOrB,KAAKC,MAAMR,SAAW,CAAEC,MAAO,QAAa,CAAEA,MAAO,QAAYM,KAAKyB,kBAIlV,CAWQR,aACN,OAAKjB,KAAKC,MAAMa,cAIU,OAAtBd,KAAKC,MAAMyB,OACN,YAEA,8BANA1B,KAAKC,MAAM0B,IAQtB,CAEQL,kBACN,MAA0B,OAAtBtB,KAAKC,MAAMyB,OACT1B,KAAKC,MAAMa,cACN,KAEA,OAGLd,KAAKC,MAAMa,cACN,SAEA,aAGb,CAEQW,gBACN,MAA0B,OAAtBzB,KAAKC,MAAMyB,OACT1B,KAAKC,MAAMa,cACN,YAEA,OAGLd,KAAKC,MAAMa,cACN,mBAEA,oBAGb,CAEQI,iBAEN,MAA0B,OAAtBlB,KAAKC,MAAMyB,OACT1B,KAAKC,MAAMa,cAEXjB,EAAAA,cAAA,OAAKmB,UAAU,oBACXnB,EAAAA,cAAA,uBACAA,EAAAA,cAAA,cACAA,EAAAA,cAAA,gCACAA,EAAAA,cAAA,cACAA,EAAAA,cAAA,0BACAA,EAAAA,cAAA,cACAA,EAAAA,cAAA,wBAKJA,EAAAA,cAAA,OAAKmB,UAAU,oBACbnB,EAAAA,cAAA,yBAKFG,KAAKC,MAAMa,cAEXjB,EAAAA,cAAA,OAAKmB,UAAU,oBACXnB,EAAAA,cAAA,uCACAA,EAAAA,cAAA,cACAA,EAAAA,cAAA,0EACAA,EAAAA,cAAA,cACAA,EAAAA,cAAA,iFACAA,EAAAA,cAAA,cACAA,EAAAA,cAAA,wCAKJA,EAAAA,cAAA,OAAKmB,UAAU,oBACbnB,EAAAA,cAAA,2EAKV,EAGF,yEClIkB+B,EAKAC,+CALlB,SAAkBD,GACdA,EAAA,QACAA,EAAA,OACH,CAHD,CAAkBA,IAAAA,EAAY,KAK9B,SAAkBC,GACdA,EAAA,UACAA,EAAA,oBACAA,EAAA,6BACH,CAJD,CAAkBA,IAAAA,EAAS,8lBCM3B,MAAMC,EAASC,EAAQ,IAavB,MAAMC,UAAgCnC,EAAAA,cAAtCC,kCACS,KAAAmC,MAAQ,CAAEC,eAAgB,GAAIC,eAAgB,GAAIC,aAAc,GA+HzE,CA7HUC,MAAMC,GACZ,OAAO,IAAIC,SAASC,GAAWC,WAAWD,EAASF,IACrD,CAEOI,0BACL,MAAQC,MAAM,WAAEC,GAAY,OAAGC,GAAW7C,KAAKC,MAE/C,IAAI6C,EAAY,IAAIC,KACpBD,EAAUE,SAAS,EAAG,EAAG,EAAG,GAE5B,IAAIC,EAAU,IAAIF,KAClBE,EAAQD,SAAS,EAAG,EAAG,EAAG,GAC1BC,EAAQC,SAASD,EAAQE,WAAaN,EAAOO,WAE7C,MAAMC,EAAWrD,KAAKC,MAAMhB,QAAQqE,QAAQ5B,OAAO6B,MAAM,KAAK,GAExDC,EAAMX,EAAOjB,aAAe5B,KAAKC,MAAM4C,OAAOjB,aAAgB,KAC9D6B,EAAkBZ,EAAOhB,UAAYgB,EAAOhB,UAAaA,EAAU6B,IACzE,IAAIC,EAAc,GAElB,GAAIF,IAAoB5B,EAAU6B,IAChC,OAAQD,GACN,KAAK5B,EAAU+B,SACbD,EAAc,KACd,MAEF,KAAK9B,EAAUgC,cACbF,EAAc,KAKpB,MAAMhB,EAAOc,IAAoB5B,EAAU6B,UAAYI,EAAAA,EAAAA,IAAuB,CAAEC,cAAe/D,KAAKC,MAAMhB,QAAQ+E,eAAiBnB,EAAOoB,MAAOZ,EAAUG,EAAKV,EAAUoB,cAAejB,EAAQiB,qBAAuBC,EAAAA,EAAAA,IAA6B,CAAEJ,cAAe/D,KAAKC,MAAMhB,QAAQ+E,eAAiBnB,EAAOoB,MAAOZ,EAAUG,EAAKG,EAAab,EAAUoB,cAAejB,EAAQiB,eAE/WE,EAAuB,GAC7B,IAAIC,EAA4B,GAChC1B,EAAK2B,KAAIjE,IACP,IAAIkE,EAAYC,KAAKC,MAAMpE,GACH,SAArBkE,EAAgB,MAAqC,UAArBA,EAAgB,MAAuC,WAAtBA,EAAgB,MAC/EA,EAAuB,aACxBH,EAAWM,KAAKC,OAAOJ,EAAuB,iBAKhDH,EAAWQ,OAAS,IACtBP,QAAiBQ,EAAAA,EAAAA,eAAc,CAAEd,cAAe/D,KAAKC,MAAMhB,QAAQ+E,eAAiBhE,KAAKC,MAAMhB,QAAQqE,QAAQhE,YAAYC,UAAW6E,IAGnIxB,EAAWkC,cACR9E,KAAKqC,MAAM,KAGnB,MAAM0C,EAAc,GACdC,EAAmB,GACnBC,EAA4D,GAElEtC,EAAK2B,KAAIjE,IACP,IAAIkE,EAAYC,KAAKC,MAAMpE,GAE3B,GAAIkE,EAAuB,YAAG,CAC5B,IAAIW,EAAgBtC,EAAWkC,OAAQK,WAAUC,GAAYA,EAASC,SAASC,aAAef,EAAuB,cAErH,GAAIW,GAAiB,EAAG,CACtB,IAAIK,GAASC,EAAAA,EAAAA,kBAAiB5C,EAAWkC,OAAQ,GAAGI,KAAiBO,OAAQ,GAAGC,IAAK1F,KAAKC,MAAMhB,QAAQqE,QAAQhE,aAChHiF,EAAe,IAAIgB,GAIvB,GAAwB,SAArBhB,EAAgB,MAAqC,UAArBA,EAAgB,MAAuC,WAAtBA,EAAgB,KACpF,CACE,GAAIA,EAAuB,YAAG,CAC5B,MAAMoB,EAAUtB,EAASuB,MAAKC,GAAKA,EAAER,WAAaV,OAAOJ,EAAuB,eAChFA,EAAe,IAAIoB,GAAUH,EAAAA,EAAAA,kBAAiB,YAAYG,EAAQG,4BAA6B9F,KAAKC,MAAMhB,QAAQqE,QAAQhE,aAAe,GAE3IiF,EAAoB,SAAI1B,EAAOkD,eAAiBlD,EAAOmD,UAAUC,eAAiBpD,EAAOqD,cAAcD,eAAgB,IAAM1B,EAAuB,YAAE,UAGtJA,EAAoB,SAAI1B,EAAOkD,eAAiBlD,EAAOmD,UAAUC,eAAiBpD,EAAOsD,YAAYF,eAGvG,IAAIG,EAAgC,CAClCC,GAAI9B,EAAuB,YAC3B+B,KAAM/B,EAAgB,KACtB5C,KAAM4C,EAAgB,KACtBgC,cAAehC,EAAyB,cACxCiC,YAAajC,EAAuB,YACpCkC,YAAalC,EAAuB,YACpCmC,IAAKnC,EAAe,IACpBoC,SAAUpC,EAAoB,SAC9BqC,eAAgB/D,EAAOkD,eACvB7F,SAAU,GACV2G,WAAYhE,EAAOiE,eACnBC,kBAAmBlE,EAAOmE,uBAG5BjC,EAAOL,KAAK0B,GAEZ,MAAMa,EAAQ,GAAGnF,EAAO,IAAIiB,KAAKqD,EAAcG,gBAAgBW,OAAO,WAGvD,IAFDlC,EAAOG,WAAUgC,GAAKA,IAAMF,KAGxCjC,EAAON,KAAKuC,MAIhBjC,EAAOoC,SAAQD,IACb,MAAMrC,EAASC,EAAOsC,QAAQC,GAAyB,GAAGxF,EAAO,IAAIiB,KAAKuE,EAAKf,gBAAgBW,OAAO,YAAcC,IAEpHlC,EAAWP,KAAK,CAAEuC,MAAOE,EAAGpC,OAAQD,GAAS,IAG/C9E,KAAKuH,SAAS,CAAErF,eAAgB6C,EAAQ5C,eAAgB6C,EAAQ5C,aAAc6C,GAChF,CAEO1E,SACL,MAAMiH,EAAiCC,EAAAA,EAAA,GAClCzH,KAAKC,OAAK,IACbiC,eAAgBlC,KAAKiC,MAAsB,eAC3CE,eAAgBnC,KAAKiC,MAAME,eAC3BC,aAAcpC,KAAKiC,MAAMG,eAG3B,OAAOpC,KAAKC,MAAMyH,WAAWF,EAC/B,EAGF,+JCjKA,MAAM1F,EAASC,EAAQ,IAsBjB,MAAO4F,UAAsB9H,EAAAA,cAAnCC,kCA4BU,KAAA8H,eAAiB,KAAK,IAAAxH,EACvB,QAALA,EAAAC,aAAK,IAAAD,GAALA,EAAOE,iBAEe,oBAAXuH,SAEa,SAAnB7H,KAAKC,MAAMqG,MAAsC,WAAnBtG,KAAKC,MAAMqG,KAE1CuB,OAAOC,SAASC,OAAO/H,KAAKC,MAAM0G,UAIlCkB,OAAOC,SAASC,OAAO/H,KAAKC,MAAM0G,SAAc,OAAS3G,KAAKC,MAAMoG,KAI5E,CA1CS9F,SACL,MAAMyH,EAAqC,KAA7BhI,KAAKC,MAAMsG,cAAuB,IAAIxD,KAAK/C,KAAKC,MAAMsG,eAAiB,KAC/E0B,EAAiC,KAA3BjI,KAAKC,MAAMuG,YAAqB,IAAIzD,KAAK/C,KAAKC,MAAMuG,aAAe,KACzE0B,EAAO,GAAGpG,EAAOkG,GAAOd,OAAO,kBAA8B,OAARe,GAAgBnG,EAAOkG,GAAOd,OAAO,iBAAmBpF,EAAOmG,GAAKf,OAAO,eAAiB,MAAQpF,EAAOmG,GAAKf,OAAO,eAAiB,IAE7LiB,EAAYnI,KAAKC,MAAM8G,kBAAoB,oCAAsC,2BACjFqB,EAAkBpI,KAAKC,MAAM8G,kBAAoB,oBAAsB,uBACvEsB,EAAsBrI,KAAKC,MAAM8G,kBAAoB,4BAA8B,+BAEzF,OACElH,EAAAA,cAAA,OAAKmB,UAAWmH,GACdtI,EAAAA,cAAA,OAAKmB,UAAWoH,GAAiBvI,EAAAA,cAAA,OAAKyI,IAAKtI,KAAKC,MAAMyG,OACtD7G,EAAAA,cAAA,OAAKmB,UAAWqH,GACdxI,EAAAA,cAAA,OAAKmB,UAAU,aACbnB,EAAAA,cAAA,KAAGmB,UAAU,QAAQhB,KAAKC,MAAMqG,MAChCzG,EAAAA,cAAA,KAAGmB,UAAU,QAAQhB,KAAKC,MAAM0B,MAChC9B,EAAAA,cAAA,KAAGmB,UAAU,QAAQkH,GACpBlI,KAAKC,MAAM8G,kBAAoB,KAAOlH,EAAAA,cAAA,KAAGmB,UAAU,eAAehB,KAAKC,MAAMwG,cAEhF5G,EAAAA,cAAA,OAAKmB,UAAU,8BACbnB,EAAAA,cAAA,UAAQmB,UAAWhB,KAAKC,MAAM2G,eAAiB,kBAAoB,WAAYxF,QAASpB,KAAK4H,gBAAiB5H,KAAKC,MAAM4G,cAKnI,ECzBD,MAAM0B,UAAoC1I,EAAAA,cAA1CC,kCACQ,KAAAmC,MAAa,CAAEvC,MAAO,EAAG8I,YAAY,EAAO9H,WAAW,EAAO+H,cAAe,GAAIC,WAAY,EAAGC,SAAU,GA2JzG,KAAAC,gBAAkB,KACxB5I,KAAKuH,SAAS,CAAE7G,WAAW,GAAO,EAG5B,KAAAmI,qBAAuB,KAC7B7I,KAAKuH,SAAS,CAAE7G,WAAW,GAAM,EAG3B,KAAAoI,kBAAoB,KAC1B9I,KAAKuH,SAAS,CAAE7H,MAAOmI,OAAOkB,YAAa,EAGrC,KAAAC,kBAAqB3I,IAC3BL,KAAKuH,SAAS,CAAEkB,cAAepI,EAAOqI,WAAY,GAAI,EAGhD,KAAAO,iBAAoBtG,IAC1B3C,KAAKuH,SAAS,CAAEmB,WAAY/F,EAAKuG,UAAW,CAEhD,CA5KSC,oBACAnJ,KAAKiC,MAAMuG,aACdX,OAAOuB,iBAAiB,SAAUpJ,KAAK8I,mBAEvC9I,KAAKuH,SAAS,CAAE7H,MAAOmI,OAAOkB,WAAYP,YAAY,IAE1D,CAEOjI,SAAM,IAAA8I,EAAAC,EAAAC,EACX,MAAM,OAAE1G,EAAM,aAAET,EAAY,eAAEF,GAAmBlC,KAAKC,MAEtD,IAAKD,KAAKiC,MAAMuG,WACd,OAAO,KAGT,MAAMgB,GAAa/J,EAAAA,EAAAA,GAASO,KAAKiC,MAAMvC,OACjC2D,EAAWrD,KAAKC,MAAMhB,QAAQqE,QAAQ5B,OAAO6B,MAAM,KAAK,GAG9D,GAAIiG,GAAc3G,EAAOmE,sBAAuB,CAC9C,MAAMhC,EAAmB,GACzBA,EAAON,KAAkB,OAAbrB,EAAoB,MAAQ,MAExC,MAAMoG,EAA4C,KAA7BzJ,KAAKiC,MAAMwG,cAAuBzD,EAAO,GAAKhF,KAAKiC,MAAMwG,cAE9EzI,KAAKC,MAAMkC,eAAeiF,SAAQD,IAC5BA,IAAMsC,GACRzE,EAAON,KAAKyC,MAIhB,MAAMuC,EAAS1J,KAAKiC,MAAMyG,WAAa/D,OAAO9B,EAAO8G,wBAGrD,IAAIC,EAAgB,GAIb,IAAAC,EAFP,GAJiC,QAAjBJ,GAA2C,OAAjBA,EAKxCG,EAAgB1H,OAEhB0H,EAAsE,QAAzDC,EAAGzH,EAAawD,MAAK0B,GAAQA,EAAKL,QAAUwC,WAAa,IAAAI,OAAA,EAAtDA,EAAwD9E,OAG1E,IAAI+E,EAAY,EACZC,EAAmC,GAuBvC,OArBIH,IACFE,EAAYE,KAAKC,KAAKL,EAAchF,OAAS/B,EAAO8G,wBAEpDI,EAAoBH,EAAcM,MAAMR,EAAQA,EAAS/E,OAAO9B,EAAO8G,yBAAyBrF,KAAKgD,GACnGzH,EAAAA,cAAC8H,EAAa,CACZtB,GAAIiB,EAAKjB,GACTC,KAAMgB,EAAKhB,KACX3E,KAAM2F,EAAK3F,KACX4E,cAAee,EAAKf,cACpBC,YAAac,EAAKd,YAClBC,YAAaa,EAAKb,YAClBC,IAAKY,EAAKZ,IACVC,SAAUW,EAAKX,SACfC,eAAgB/D,EAAOkD,eACvB7F,SAAUF,KAAK6I,qBACfhC,WAAYhE,EAAOiE,eACnBC,kBAAmBlE,EAAOmE,2BAM9BnH,EAAAA,cAAA,OAAKmB,UAAU,oCACbnB,EAAAA,cAACsK,EAAAA,EAAc,CAAC9D,GAAG,wBAAwB+D,MAAOX,EAAcY,SAAUrK,KAAKgJ,mBAC5EhE,EAAOV,KAAI,CAAC2C,EAAeqD,IAC1BzK,EAAAA,cAAC0K,EAAAA,EAAAA,KAAa,CAACC,IAAKF,EAAKG,SAAUxD,GAAQA,MAG/CpH,EAAAA,cAAA,WAAMkK,GACNlK,EAAAA,cAAC6K,IAAa,CACZC,cAAe,IACfC,UAAW,IACXC,WAAY,MACZC,eAAgB,WAChBhB,UAAWA,EACXiB,qBAAsB,EACtBC,mBAAoB,EACpBC,aAAcjL,KAAKiJ,iBACnBiC,mBAAoB,mBACpBC,gBAAiB,YAMzB,MAuBMC,EAAWpL,KAAKC,MAAMiC,eACtBmJ,EAAmB,QAAdhC,EAAAxG,EAAOyI,eAAO,IAAAjC,GAAdA,EAAgBf,IAAM,CAAEiD,gBAAiB,OAAO1I,EAAOyI,QAAQhD,QAAU,CAAEiD,gBAAiB,IACjGC,EAAM3I,EAAO4I,YAAmC,IAArB5I,EAAO4I,YAAqB,IACvDC,GAAalC,EACbmC,EAAa3L,KAAKC,MAAMhB,QAAQqE,QAAQ5B,OAAO6B,MAAM,KAAK,GAC1DqI,EAAe/I,EAAO+I,aAAe/I,EAAO+I,aAAaC,QAAQ5F,eAAiB,GAExF,OACEpG,EAAAA,cAAA,OAAKmB,UAAU,4BAA4BK,MAAOgK,GAChDxL,EAAAA,cAAA,OAAKmB,UAAU,WACbnB,EAAAA,cAAA,OAAKmB,UAAU,kBAAiBnB,EAAAA,cAAA,SAAIgD,EAAOuH,SACzCZ,GAAgD,MAAf,QAAnBF,EAAAzG,EAAO+I,oBAAY,IAAAtC,OAAA,EAAnBA,EAAqBwC,WAAmBjM,EAAAA,cAAA,OAAKmB,UAAU,gBAAenB,EAAAA,cAAA,KAAGsB,KAAMyK,GAAkC,QAAtBrC,EAAG1G,EAAO+I,oBAAY,IAAArC,OAAA,EAAnBA,EAAqBuC,WAClIjJ,EAAOkD,gBAAkBlG,EAAAA,cAACD,EAAAA,EAAK,CAACc,UAAWV,KAAKiC,MAAMvB,UAAWiB,KAAMkB,EAAOuH,MAAO7I,IAAKsB,EAAOmD,UAAUC,eAAgBxG,WAAU+J,EAA2B1I,eAAe,EAAMY,OAAQiK,EAAYzL,SAAUF,KAAK4I,mBAE3N/I,EAAAA,cAACkM,EAAAA,QAAQ,CAACC,WArCK,CACjBC,kBAAmB,CACjBC,WAAY,CAAEC,IAAK,IAAMC,IAAK,KAC9BC,MAAO,EACPC,cAAe,GAEjBC,QAAS,CACPL,WAAY,CAAEC,IAAK,IAAKC,IAAK,KAC7BC,MAAO,EACPC,cAAe,GAEjBE,OAAQ,CACNN,WAAY,CAAEC,IAAK,IAAKC,IAAK,KAC7BC,MAAO,EACPC,cAAe,GAEjBG,OAAQ,CACNP,WAAY,CAAEC,IAAK,IAAKC,IAAK,GAC7BC,MAAO,EACPC,cAAe,IAkBmBI,UAAU,EAAMC,OAAQjB,EAAYkB,UAAU,EAAMC,cAAerB,GAClGJ,EAAS9G,KAAKgD,GACNzH,EAAAA,cAAC8H,EAAa,CACnBtB,GAAIiB,EAAKjB,GACTC,KAAMgB,EAAKhB,KACX3E,KAAM2F,EAAK3F,KACX4E,cAAee,EAAKf,cACpBC,YAAac,EAAKd,YAClBC,YAAaa,EAAKb,YAClBC,IAAKY,EAAKZ,IACVC,SAAUW,EAAKX,SACfC,eAAgB/D,EAAOkD,eACvB7F,SAAUF,KAAK6I,qBACfhC,WAAYhE,EAAOiE,eACnBC,mBAAmB,OAM/B,CAEO+F,uBACLjF,OAAOkF,oBAAoB,SAAU/M,KAAK8I,kBAC5C,EAuBF,4nBC1MA,MAAMkE,EAAU,CAAEC,QAAS,CAAC,EAAGC,YAAa,CAAC,GAwCxCF,EAAQC,QAAQ,6BAA+B,CAC5CE,EAAGA,IAAMpL,EAAQ,MACjBqL,MAAO,gBACPC,GAAI,CAAC,CAAC1L,KAAK,aAAe2L,KAAK,yBAA0BC,MAAO,IAEhEC,KAAK,EACLC,GAAI,YACJC,EAAG,4BACH7H,EAAG,YAEH8H,IAAK,GAGLC,GAAI,yCAlC4BC,EAACC,EAAqBC,KAUlD,GADAf,EAAQE,YAAYY,GAAuBC,GACtCf,EAAQE,YAAYY,GAAqBE,QAC1C,MAAM,IAAIC,MAAM,oBAAsBH,EAAsB,mCAEhEd,EAAQE,YAAYY,GAAqBE,QAAQE,UAAUC,eAAiBL,EACxEd,EAAQE,YAAYY,GAAqBE,QAAQE,UAAU7H,KAC3D2G,EAAQE,YAAYF,EAAQE,YAAYY,GAAqBE,QAAQE,UAAU7H,IAAMyH,EAE7F,EAwBID,CAF4B,yBACX9L,EAAQ,MAMjC8F,OAAOuG,aAAevG,OAAOuG,cAAgB,CAAC,EAC9CvG,OAAOuG,aAAanB,QAAOxF,EAAAA,EAAA,GACpBI,OAAOuG,aAAanB,SAAW,CAAC,GAChCD,EAAQC,SAGXpF,OAAOuG,aAAalB,YAAWzF,EAAAA,EAAA,GAC5BI,OAAOuG,aAAalB,aAAe,CAAC,GACpCF,EAAQE,aAEY,MAAMmB,EAAiB,CAAC,EAC/BA,EAAe,mFAAqF,CAC5GlB,EAAGA,IAAMpL,EAAQ,MACjBuM,GAAI,iDAEpBzG,OAAOuG,aAAevG,OAAOuG,cAAgB,CAAC,EAC9CvG,OAAOuG,aAAaC,eAAc5G,EAAAA,EAAA,GACPI,OAAOuG,aAAaC,gBAAkB,CAAC,GACvCA,kBCnF3B,IAAI/J,EAAM,CACT,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,QAAS,IACT,WAAY,IACZ,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,gBAAiB,IACjB,aAAc,IACd,gBAAiB,IACjB,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,UAAW,IACX,aAAc,IACd,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,UAAW,IACX,OAAQ,IACR,UAAW,IACX,WAAY,IACZ,cAAe,IACf,UAAW,IACX,aAAc,IACd,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,YAAa,IACb,eAAgB,IAChB,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,QAAS,IACT,WAAY,IACZ,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,UAAW,IACX,aAAc,IACd,QAAS,IACT,WAAY,IACZ,OAAQ,IACR,UAAW,IACX,QAAS,IACT,WAAY,IACZ,QAAS,IACT,aAAc,IACd,gBAAiB,IACjB,WAAY,IACZ,UAAW,IACX,aAAc,IACd,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,YAAa,IACb,eAAgB,IAChB,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,gBAAiB,IACjB,OAAQ,IACR,UAAW,IACX,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,KAIf,SAASiK,EAAeC,GACvB,IAAInI,EAAKoI,EAAsBD,GAC/B,OAAOE,EAAoBrI,EAC5B,CACA,SAASoI,EAAsBD,GAC9B,IAAIE,EAAoBC,EAAErK,EAAKkK,GAAM,CACpC,IAAII,EAAI,IAAIX,MAAM,uBAAyBO,EAAM,KAEjD,MADAI,EAAEC,KAAO,mBACHD,CACP,CACA,OAAOtK,EAAIkK,EACZ,CACAD,EAAeO,KAAO,WACrB,OAAOC,OAAOD,KAAKxK,EACpB,EACAiK,EAAe/L,QAAUiM,EACzBO,EAAOC,QAAUV,EACjBA,EAAelI,GAAK,wBCnSpB2I,EAAOC,QAAUpP,2BCAjBmP,EAAOC,QAAUC","sources":["webpack://Msdyn365.Commerce.Online/./src/actions/get-categories.ts?0ce6","webpack://Msdyn365.Commerce.Online/./src/components/breakpoints.ts?f4e7","webpack://Msdyn365.Commerce.Online/./src/components/popup.tsx?ad47","webpack://Msdyn365.Commerce.Online/./src/modules/ecomm-upcoming-programmes/ecomm-upcoming-programmes.props.autogenerated.ts?2c53","webpack://Msdyn365.Commerce.Online/./src/modules/ecomm-upcoming-programmes/ecomm-upcoming-programmes.tsx?2f76","webpack://Msdyn365.Commerce.Online/./src/modules/ecomm-upcoming-programmes/components/ecomm-programme-card.tsx?1c0a","webpack://Msdyn365.Commerce.Online/./src/modules/ecomm-upcoming-programmes/ecomm-upcoming-programmes.view.tsx?6023","webpack://Msdyn365.Commerce.Online/./lib/ecomm-upcoming-programmes/module-registration.js?d80d","webpack://Msdyn365.Commerce.Online/./node_modules/moment/locale/ sync ^\\.\\/.*$?b2df","webpack://Msdyn365.Commerce.Online/external var \"React\"?0d3b","webpack://Msdyn365.Commerce.Online/external var \"ReactDOM\"?853b"],"sourcesContent":["import { createObservableDataAction, IAction, ICreateActionContext } from '@msdyn365-commerce/core';\r\nimport { Category, retailAction } from '@msdyn365-commerce/retail-proxy';\r\nimport { createGetCategoriesInput } from '@msdyn365-commerce/retail-proxy/dist/DataActions/CategoriesDataActions.g';\r\n\r\n/**\r\n * Get Org Unit Configuration Data Action\r\n */\r\nexport default createObservableDataAction({\r\n action: >retailAction,\r\n input: (context: ICreateActionContext) => {\r\n return createGetCategoriesInput({ Paging: { Top: 0 } }, context.requestContext.apiSettings.channelId);\r\n }\r\n});\r\n","// <= 999 = Mobile\r\n// >= 1000 = Tablet and Desktop\r\n\r\nexport const enum Breakpoints {\r\n small = 540,\r\n medium = 768,\r\n large = 992\r\n}\r\n\r\nexport function isMobile (width: number): boolean {\r\n return width < Breakpoints.large;\r\n}","import * as React from 'react';\r\n\r\nimport Modal from 'react-bootstrap/Modal';\r\n\r\ninterface IEcommPopupProps\r\n{\r\n showPopup: boolean;\r\n callback: any;\r\n name: string;\r\n isMobile: boolean;\r\n isPortalPopup: boolean;\r\n locale: string;\r\n url: string;\r\n}\r\n\r\n/**\r\n *\r\n * Event component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class Popup extends React.PureComponent {\r\n public render(): JSX.Element | null {\r\n return (\r\n \r\n \r\n {this._titleText()}\r\n \r\n\r\n \r\n {this._renderMessage()}\r\n \r\n\r\n \r\n {this._stayButtonText()}\r\n {this._goButtonText()}\r\n \r\n \r\n );\r\n }\r\n\r\n private _callbackRedirect = () => {\r\n this.props.callback();\r\n }\r\n\r\n private _callbackHide = () => {\r\n event?.preventDefault();\r\n this.props.callback();\r\n }\r\n\r\n private _titleText(): string {\r\n if (!this.props.isPortalPopup) {\r\n return this.props.name;\r\n }\r\n\r\n if (this.props.locale === 'zh') {\r\n return '网站重定向门户网站';\r\n } else {\r\n return 'Commerce Transfer to Portal';\r\n }\r\n }\r\n\r\n private _stayButtonText(): string {\r\n if (this.props.locale === 'zh') {\r\n if (this.props.isPortalPopup) {\r\n return '取消';\r\n } else {\r\n return '稍后登入';\r\n }\r\n } else {\r\n if (this.props.isPortalPopup) {\r\n return 'Cancel';\r\n } else {\r\n return 'Maybe Later';\r\n }\r\n }\r\n }\r\n\r\n private _goButtonText(): string {\r\n if (this.props.locale === 'zh') {\r\n if (this.props.isPortalPopup) {\r\n return '开启门户网站标签页';\r\n } else {\r\n return '登入户口';\r\n }\r\n } else {\r\n if (this.props.isPortalPopup) {\r\n return 'Proceed to eShop';\r\n } else {\r\n return 'Go to Sign In Page';\r\n }\r\n }\r\n }\r\n\r\n private _renderMessage(): JSX.Element | null {\r\n \r\n if (this.props.locale === 'zh') {\r\n if (this.props.isPortalPopup) {\r\n return (\r\n
\r\n

亲爱的信徒和朋友们,

\r\n

 

\r\n

您将离开这个网站并进入另一个门户网站。

\r\n

 

\r\n

请在离开前完成交易和付款。

\r\n

 

\r\n

愿三宝加持和护佑您!

\r\n
\r\n );\r\n } else {\r\n return (\r\n
\r\n

登入账号来查阅交易记录

\r\n
\r\n );\r\n }\r\n } else {\r\n if (this.props.isPortalPopup) {\r\n return (\r\n
\r\n

Dear Devotees and Friends,

\r\n

 

\r\n

You will be leaving this website and entering another portal.

\r\n

 

\r\n

Please complete the transactions and payments here before you leave.

\r\n

 

\r\n

With Triple Gem Blessings!

\r\n
\r\n );\r\n } else {\r\n return (\r\n
\r\n

To see your past transactions, please sign in to your account.

\r\n
\r\n );\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport default Popup;","/**\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. See License.txt in the project root for license information.\r\n * IEcommUpcomingProgrammes 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 organisation {\r\n BT = 'BT',\r\n GP = 'GP'\r\n}\r\n\r\nexport const enum eventType {\r\n ALL = 'ALL',\r\n CEREMONY = 'CEREMONY',\r\n GROUPPRACTICE = 'GROUPPRACTICE'\r\n}\r\n\r\nexport interface IEcommUpcomingProgrammesConfig extends Msdyn365.IModuleConfig {\r\n title: string;\r\n bgImage?: Msdyn365.IImageData;\r\n cardButtonText?: string;\r\n organisation?: organisation;\r\n eventType?: eventType;\r\n portalUrl: Msdyn365.ILinkData;\r\n redirectPortal: boolean;\r\n eventPdpUrl: Msdyn365.ILinkData;\r\n productPdpUrl: Msdyn365.ILinkData;\r\n dateRange: number;\r\n isUat: boolean;\r\n calendarLink?: ICalendarLinkData;\r\n sliderSpeed?: number;\r\n displayMobileDropdown: boolean;\r\n mobileDropdownPageSize: number;\r\n}\r\n\r\nexport interface ICalendarLinkData {\r\n linkText: string;\r\n linkUrl: Msdyn365.ILinkData;\r\n ariaLabel?: string;\r\n}\r\n\r\nexport interface IEcommUpcomingProgrammesProps extends Msdyn365.IModule {\r\n config: IEcommUpcomingProgrammesConfig;\r\n}\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport * as React from 'react';\r\n\r\nimport { generateImageUrl } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { eventType } from './ecomm-upcoming-programmes.props.autogenerated';\r\n\r\nimport { getUpcomingEventsAsync, getUpcomingEventsByTypeAsync } from '../../actions/DataActionExtension.g';\r\n\r\nimport { IProgrammeCard } from './components/ecomm-programme-card';\r\n\r\nimport { IEcommUpcomingProgrammesData } from './ecomm-upcoming-programmes.data';\r\nimport { IEcommUpcomingProgrammesProps } from './ecomm-upcoming-programmes.props.autogenerated';\r\n\r\nimport { SimpleProduct } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\nimport { getByIdsAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\r\n\r\nconst moment = require('moment');\r\n\r\nexport interface IEcommUpcomingProgrammesViewProps extends IEcommUpcomingProgrammesProps {\r\n upcomingEvents: any[];\r\n existingMonths: string[];\r\n mobileEvents: { month: string, events: IProgrammeCard[] }[];\r\n}\r\n\r\n/**\r\n *\r\n * EcommUpcomingProgrammes component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass EcommUpcomingProgrammes extends React.PureComponent> {\r\n public state = { upcomingEvents: [], existingMonths: [], mobileEvents: [] };\r\n\r\n private delay(ms: number) {\r\n return new Promise( resolve => setTimeout(resolve, ms) );\r\n }\r\n \r\n public async componentDidMount() {\r\n const { data: { categories } , config } = this.props;\r\n\r\n let startDate = new Date();\r\n startDate.setHours(0, 0, 0, 0);\r\n\r\n let endDate = new Date();\r\n endDate.setHours(0, 0, 0, 0);\r\n endDate.setMonth(endDate.getMonth() + config.dateRange);\r\n\r\n const language = this.props.context.request.locale.split('-')[0];\r\n\r\n const org = config.organisation ? this.props.config.organisation! : 'BT';\r\n const eventTypeOption = config.eventType ? config.eventType! : eventType.ALL;\r\n let eventTypeNo = '';\r\n\r\n if (eventTypeOption !== eventType.ALL) {\r\n switch (eventTypeOption) {\r\n case eventType.CEREMONY:\r\n eventTypeNo = '01';\r\n break;\r\n\r\n case eventType.GROUPPRACTICE:\r\n eventTypeNo = '02';\r\n break;\r\n }\r\n }\r\n\r\n const data = eventTypeOption === eventType.ALL ? await getUpcomingEventsAsync({ callerContext: this.props.context.actionContext }, config.isUat, language, org, startDate.toISOString(), endDate.toISOString()) : await getUpcomingEventsByTypeAsync({ callerContext: this.props.context.actionContext }, config.isUat, language, org, eventTypeNo, startDate.toISOString(), endDate.toISOString());\r\n\r\n const productIds: number[] = [];\r\n let products: SimpleProduct[] = [];\r\n data.map(event => {\r\n let eventJson = JSON.parse(event);\r\n if(eventJson['Type'] == 'Event' || eventJson['Type'] == 'Events' || eventJson['Type'] == 'Courses') {\r\n if(eventJson['EcommerceId']) {\r\n productIds.push(Number(eventJson['EcommerceId']));\r\n }\r\n }\r\n });\r\n\r\n if (productIds.length > 0) {\r\n products = await getByIdsAsync({ callerContext: this.props.context.actionContext }, this.props.context.request.apiSettings.channelId, productIds);\r\n }\r\n\r\n if (!categories.result) {\r\n await this.delay(300);\r\n }\r\n\r\n const events: any = [];\r\n const months: string[] = [];\r\n const mobileList: { month: string, events: IProgrammeCard[] }[] = [];\r\n\r\n data.map(event => {\r\n let eventJson = JSON.parse(event);\r\n \r\n if (eventJson['EcommerceId']) {\r\n var categoryIndex = categories.result!.findIndex(category => category.RecordId.toString() === eventJson['EcommerceId'])\r\n \r\n if (categoryIndex >= 0) {\r\n var imgUrl = generateImageUrl(categories.result![`${categoryIndex}`].Images![0].Uri, this.props.context.request.apiSettings);\r\n eventJson['Img'] = imgUrl;\r\n }\r\n }\r\n\r\n if(eventJson['Type'] == 'Event' || eventJson['Type'] == 'Events' || eventJson['Type'] == 'Courses')\r\n {\r\n if (eventJson['EcommerceId']) {\r\n const product = products.find(p => p.RecordId === Number(eventJson['EcommerceId']));\r\n eventJson['Img'] = product ? generateImageUrl(`Products/${product.ProductNumber}_000_000.png`, this.props.context.request.apiSettings) : \"\";\r\n }\r\n eventJson['Redirect'] = config.redirectPortal ? config.portalUrl.destinationUrl : config.productPdpUrl.destinationUrl +\"/\" + eventJson['EcommerceId']+\".p\";\r\n }\r\n else{\r\n eventJson['Redirect'] = config.redirectPortal ? config.portalUrl.destinationUrl : config.eventPdpUrl.destinationUrl;\r\n }\r\n\r\n var programmeCard: IProgrammeCard = {\r\n id: eventJson['EcommerceId'],\r\n type: eventJson['Type'],\r\n name: eventJson['Name'],\r\n startDateTime: eventJson['StartDateTime'],\r\n endDateTime: eventJson['EndDateTime'],\r\n description: eventJson['Description'],\r\n img: eventJson['Img'],\r\n redirect: eventJson['Redirect'],\r\n portalRedirect: config.redirectPortal,\r\n callback: '',\r\n buttonText: config.cardButtonText,\r\n isDropdownVersion: config.displayMobileDropdown\r\n }\r\n\r\n events.push(programmeCard);\r\n\r\n const month = `${moment(new Date(programmeCard.startDateTime)).format('MMMM')}`; \r\n const index = months.findIndex(m => m === month);\r\n\r\n if (index === -1) {\r\n months.push(month);\r\n }\r\n });\r\n\r\n months.forEach(m => {\r\n const result = events.filter((item: IProgrammeCard) => `${moment(new Date(item.startDateTime)).format('MMMM')}` === m);\r\n\r\n mobileList.push({ month: m, events: result });\r\n });\r\n\r\n this.setState({ upcomingEvents: events, existingMonths: months, mobileEvents: mobileList });\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const IEcommUpcomingProgrammesViewProps = {\r\n ...this.props,\r\n upcomingEvents: this.state['upcomingEvents'],\r\n existingMonths: this.state.existingMonths,\r\n mobileEvents: this.state.mobileEvents\r\n };\r\n\r\n return this.props.renderView(IEcommUpcomingProgrammesViewProps);\r\n }\r\n}\r\n\r\nexport default EcommUpcomingProgrammes;","import * as React from 'react';\r\n\r\nconst moment = require('moment');\r\n\r\nexport interface IProgrammeCard {\r\n id: string;\r\n type: string;\r\n name: string;\r\n startDateTime: string;\r\n endDateTime: string;\r\n description: string;\r\n img: string;\r\n redirect: string;\r\n portalRedirect: boolean;\r\n callback: any;\r\n buttonText?: string;\r\n isDropdownVersion: boolean;\r\n}\r\n\r\n/**\r\n *\r\n * ProgrammeCard component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class ProgrammeCard extends React.PureComponent {\r\n public render(): JSX.Element | null {\r\n const start = this.props.startDateTime !== '' ? new Date(this.props.startDateTime) : null;\r\n const end = this.props.endDateTime !== '' ? new Date(this.props.endDateTime) : null;\r\n const time = `${moment(start).format('DD MMM YYYY')}` + `${end !== null && moment(start).format('DD MMM YYYY') !== moment(end).format('DD MMM YYYY') ? ' - ' + moment(end).format('DD MMM YYYY') : ''}`;\r\n\r\n const cardStyle = this.props.isDropdownVersion ? 'ecomm-programme-card dropdown row' : 'ecomm-programme-card row';\r\n const imgWrapperStyle = this.props.isDropdownVersion ? 'img-wrapper col-6' : 'img-wrapper col-lg-6';\r\n const contentWrapperStyle = this.props.isDropdownVersion ? 'content-wrapper col-6 row' : 'content-wrapper col-lg-6 row';\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n

{this.props.type}

\r\n

{this.props.name}

\r\n

{time}

\r\n {this.props.isDropdownVersion ? null :

{this.props.description}

}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n private _handleOnClick = () => {\r\n event?.preventDefault();\r\n\r\n if (typeof window !== 'undefined') {\r\n\r\n if(this.props.type == 'Event' || this.props.type == 'Courses')\r\n {\r\n window.location.assign(this.props.redirect);\r\n }\r\n else\r\n {\r\n window.location.assign(this.props.redirect + `${'?id=' + this.props.id}`);\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport default ProgrammeCard;","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport * as React from 'react';\r\n\r\nimport Dropdown from 'react-bootstrap/Dropdown';\r\nimport DropdownButton from 'react-bootstrap/DropdownButton';\r\n\r\nimport ReactPaginate from 'react-paginate';\r\n\r\nimport { isMobile } from './../../components/breakpoints';\r\nimport Popup from './../../components/popup';\r\n\r\nimport Carousel from 'react-multi-carousel';\r\n\r\nimport { IProgrammeCard, ProgrammeCard } from './components/ecomm-programme-card';\r\nimport { IEcommUpcomingProgrammesViewProps } from './ecomm-upcoming-programmes';\r\n\r\n/**\r\n *\r\n * EcommUpcomingProgrammes component\r\n * @extends {React.PureComponent>}\r\n */\r\n class EcommUpcomingProgrammesView extends React.PureComponent {\r\n public state: any = { width: 0, hasMounted: false, showPopup: false, selectedMonth: '', activePage: 0, pageSize: 3 };\r\n\r\n public componentDidMount(): void {\r\n if (!this.state.hasMounted) {\r\n window.addEventListener('resize', this._updateDimensions);\r\n\r\n this.setState({ width: window.innerWidth, hasMounted: true });\r\n }\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const { config, mobileEvents, upcomingEvents } = this.props;\r\n \r\n if (!this.state.hasMounted) {\r\n return null;\r\n }\r\n\r\n const mobileMode = isMobile(this.state.width);\r\n const language = this.props.context.request.locale.split('-')[0];\r\n\r\n // Dropdown version on mobile for events carousel.\r\n if (mobileMode && config.displayMobileDropdown) {\r\n const months: string[] = [];\r\n months.push(language === 'en' ? 'All' : '全部');\r\n\r\n const displayMonth = this.state.selectedMonth === '' ? months[0] : this.state.selectedMonth;\r\n\r\n this.props.existingMonths.forEach(m => {\r\n if (m !== displayMonth) {\r\n months.push(m);\r\n }\r\n });\r\n\r\n const offset = this.state.activePage * Number(config.mobileDropdownPageSize);\r\n const showAll = displayMonth === 'All' || displayMonth === '全部' ? true : false;\r\n\r\n let displayEvents = [];\r\n\r\n if (showAll) {\r\n displayEvents = upcomingEvents;\r\n } else {\r\n displayEvents = mobileEvents.find(item => item.month === displayMonth)?.events!;\r\n }\r\n\r\n let pageCount = 0;\r\n let currentPageEvents: JSX.Element[] = [];\r\n\r\n if (displayEvents) {\r\n pageCount = Math.ceil(displayEvents.length / config.mobileDropdownPageSize);\r\n\r\n currentPageEvents = displayEvents.slice(offset, offset + Number(config.mobileDropdownPageSize)).map((item: IProgrammeCard) =>\r\n \r\n );\r\n }\r\n\r\n return (\r\n
\r\n \r\n {months.map((month: string, idx: number) =>\r\n {month}\r\n )}\r\n \r\n
{currentPageEvents}
\r\n '}\r\n breakLabel={'...'}\r\n breakClassName={'break-me'}\r\n pageCount={pageCount}\r\n marginPagesDisplayed={2}\r\n pageRangeDisplayed={5}\r\n onPageChange={this._handlePageClick}\r\n containerClassName={'ecomm-pagination'}\r\n activeClassName={'active'}\r\n />\r\n
\r\n );\r\n }\r\n\r\n const responsive = {\r\n superLargeDesktop: {\r\n breakpoint: { max: 4000, min: 992 },\r\n items: 2,\r\n slidesToSlide: 2\r\n },\r\n desktop: {\r\n breakpoint: { max: 992, min: 768 },\r\n items: 2,\r\n slidesToSlide: 2\r\n },\r\n tablet: {\r\n breakpoint: { max: 768, min: 540 },\r\n items: 2,\r\n slidesToSlide: 2\r\n },\r\n mobile: {\r\n breakpoint: { max: 540, min: 0 },\r\n items: 1,\r\n slidesToSlide: 1\r\n }\r\n };\r\n\r\n const mockData = this.props.upcomingEvents;\r\n const bg = config.bgImage?.src ? { backgroundImage: `url(${config.bgImage.src})`} : { backgroundImage: '' };\r\n const spd = config.sliderSpeed ? config.sliderSpeed * 1000 : 5000; // Convert to milliseconds.\r\n const showArrows = mobileMode ? false : true;\r\n const localeCode = this.props.context.request.locale.split('-')[0];\r\n const calendarLink = config.calendarLink ? config.calendarLink.linkUrl.destinationUrl : '';\r\n\r\n return (\r\n
\r\n
\r\n

{config.title}

\r\n {!mobileMode && config.calendarLink?.linkText !== '' && }\r\n {config.redirectPortal && }\r\n
\r\n \r\n {mockData.map((item: IProgrammeCard) => {\r\n return ;\r\n })}\r\n \r\n
\r\n );\r\n }\r\n\r\n public componentWillUnmount() {\r\n window.removeEventListener('resize', this._updateDimensions);\r\n }\r\n\r\n private _handleCallback = () => {\r\n this.setState({ showPopup: false});\r\n }\r\n \r\n private _handleCallbackPopup = () => {\r\n this.setState({ showPopup: true});\r\n }\r\n\r\n private _updateDimensions = () => {\r\n this.setState({ width: window.innerWidth });\r\n };\r\n\r\n private _onDropdownSelect = (event: any) => {\r\n this.setState({ selectedMonth: event, activePage: 0 });\r\n }\r\n\r\n private _handlePageClick = (data: any) => {\r\n this.setState({ activePage: data.selected });\r\n }\r\n}\r\n\r\nexport default EcommUpcomingProgrammesView;","const binding = { modules: {}, dataActions: {} };\n\n const registerActionId = (actionPath) => {\n if (binding.dataActions[actionPath] &&\n binding.dataActions[actionPath].default &&\n binding.dataActions[actionPath].default.prototype &&\n binding.dataActions[actionPath].default.prototype.id) {\n binding.dataActions[binding.dataActions[actionPath].default.prototype.id] = binding.dataActions[actionPath];\n } else {\n Object.keys(binding.dataActions[actionPath] || {}).forEach(exportName => {\n if (binding.dataActions[actionPath][exportName] &&\n binding.dataActions[actionPath][exportName].prototype &&\n binding.dataActions[actionPath][exportName].prototype.Action) {\n binding.dataActions[binding.dataActions[actionPath][exportName].prototype.id] = binding.dataActions[actionPath][exportName];\n }\n })\n }\n };\n\n const registerSanitizedActionPath = (sanitizedActionPath, dataAction) => {\n if (process.env.NODE_ENV === 'development') {\n if (!dataAction.default) {\n throw new Error('Data action path does not have a default export');\n }\n if (!(dataAction.default.prototype.id && binding.dataActions[dataAction.default.prototype.id]) || !binding.dataActions[sanitizedActionPath]) {\n binding.dataActions[sanitizedActionPath] = dataAction;\n }\n } else {\n binding.dataActions[sanitizedActionPath] = dataAction;\n if (!binding.dataActions[sanitizedActionPath].default) {\n throw new Error('Data action path ' + sanitizedActionPath + ' does not have a default export');\n }\n binding.dataActions[sanitizedActionPath].default.prototype.RegistrationId = sanitizedActionPath;\n if (binding.dataActions[sanitizedActionPath].default.prototype.id) {\n binding.dataActions[binding.dataActions[sanitizedActionPath].default.prototype.id] = sanitizedActionPath;\n }\n }\n };\n \n\n (binding.modules['ecomm-upcoming-programmes'] = {\n c: () => require('partner/modules/ecomm-upcoming-programmes/ecomm-upcoming-programmes.tsx'),\n $type: 'contentModule',\n da: [{name:'categories', path:'actions/get-categories', runOn: 0}],\n \n iNM: false,\n ns: '__local__',\n n: 'ecomm-upcoming-programmes',\n p: '__local__',\n \n pdp: '',\n \n \n md: 'src/modules/ecomm-upcoming-programmes'\n });\n \n\n {\n const sanitizedActionPath = 'actions/get-categories';\n let dataAction = require('partner/actions/get-categories');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n \n window.__bindings__ = window.__bindings__ || {};\n window.__bindings__.modules = {\n ...window.__bindings__.modules || {},\n ...binding.modules\n };\n \n window.__bindings__.dataActions = {\n ...window.__bindings__.dataActions || {},\n ...binding.dataActions\n };\n export const viewDictionary = {};\n viewDictionary['__local__|__local__|modules|ecomm-upcoming-programmes|ecomm-upcoming-programmes'] = {\n c: () => require('partner/modules/ecomm-upcoming-programmes/ecomm-upcoming-programmes.view.tsx'),\n cn: '__local__-__local__-ecomm-upcoming-programmes'\n };\nwindow.__bindings__ = window.__bindings__ || {};\nwindow.__bindings__.viewDictionary = {\n ...window.__bindings__.viewDictionary || {},\n ...viewDictionary\n };","var map = {\n\t\"./af\": 198,\n\t\"./af.js\": 198,\n\t\"./ar\": 199,\n\t\"./ar-dz\": 200,\n\t\"./ar-dz.js\": 200,\n\t\"./ar-kw\": 201,\n\t\"./ar-kw.js\": 201,\n\t\"./ar-ly\": 202,\n\t\"./ar-ly.js\": 202,\n\t\"./ar-ma\": 203,\n\t\"./ar-ma.js\": 203,\n\t\"./ar-sa\": 204,\n\t\"./ar-sa.js\": 204,\n\t\"./ar-tn\": 205,\n\t\"./ar-tn.js\": 205,\n\t\"./ar.js\": 199,\n\t\"./az\": 206,\n\t\"./az.js\": 206,\n\t\"./be\": 207,\n\t\"./be.js\": 207,\n\t\"./bg\": 208,\n\t\"./bg.js\": 208,\n\t\"./bm\": 209,\n\t\"./bm.js\": 209,\n\t\"./bn\": 210,\n\t\"./bn-bd\": 211,\n\t\"./bn-bd.js\": 211,\n\t\"./bn.js\": 210,\n\t\"./bo\": 212,\n\t\"./bo.js\": 212,\n\t\"./br\": 213,\n\t\"./br.js\": 213,\n\t\"./bs\": 214,\n\t\"./bs.js\": 214,\n\t\"./ca\": 215,\n\t\"./ca.js\": 215,\n\t\"./cs\": 216,\n\t\"./cs.js\": 216,\n\t\"./cv\": 217,\n\t\"./cv.js\": 217,\n\t\"./cy\": 218,\n\t\"./cy.js\": 218,\n\t\"./da\": 219,\n\t\"./da.js\": 219,\n\t\"./de\": 220,\n\t\"./de-at\": 221,\n\t\"./de-at.js\": 221,\n\t\"./de-ch\": 222,\n\t\"./de-ch.js\": 222,\n\t\"./de.js\": 220,\n\t\"./dv\": 223,\n\t\"./dv.js\": 223,\n\t\"./el\": 224,\n\t\"./el.js\": 224,\n\t\"./en-au\": 225,\n\t\"./en-au.js\": 225,\n\t\"./en-ca\": 226,\n\t\"./en-ca.js\": 226,\n\t\"./en-gb\": 227,\n\t\"./en-gb.js\": 227,\n\t\"./en-ie\": 228,\n\t\"./en-ie.js\": 228,\n\t\"./en-il\": 229,\n\t\"./en-il.js\": 229,\n\t\"./en-in\": 230,\n\t\"./en-in.js\": 230,\n\t\"./en-nz\": 231,\n\t\"./en-nz.js\": 231,\n\t\"./en-sg\": 232,\n\t\"./en-sg.js\": 232,\n\t\"./eo\": 233,\n\t\"./eo.js\": 233,\n\t\"./es\": 234,\n\t\"./es-do\": 235,\n\t\"./es-do.js\": 235,\n\t\"./es-mx\": 236,\n\t\"./es-mx.js\": 236,\n\t\"./es-us\": 237,\n\t\"./es-us.js\": 237,\n\t\"./es.js\": 234,\n\t\"./et\": 238,\n\t\"./et.js\": 238,\n\t\"./eu\": 239,\n\t\"./eu.js\": 239,\n\t\"./fa\": 240,\n\t\"./fa.js\": 240,\n\t\"./fi\": 241,\n\t\"./fi.js\": 241,\n\t\"./fil\": 242,\n\t\"./fil.js\": 242,\n\t\"./fo\": 243,\n\t\"./fo.js\": 243,\n\t\"./fr\": 244,\n\t\"./fr-ca\": 245,\n\t\"./fr-ca.js\": 245,\n\t\"./fr-ch\": 246,\n\t\"./fr-ch.js\": 246,\n\t\"./fr.js\": 244,\n\t\"./fy\": 247,\n\t\"./fy.js\": 247,\n\t\"./ga\": 248,\n\t\"./ga.js\": 248,\n\t\"./gd\": 249,\n\t\"./gd.js\": 249,\n\t\"./gl\": 250,\n\t\"./gl.js\": 250,\n\t\"./gom-deva\": 251,\n\t\"./gom-deva.js\": 251,\n\t\"./gom-latn\": 252,\n\t\"./gom-latn.js\": 252,\n\t\"./gu\": 253,\n\t\"./gu.js\": 253,\n\t\"./he\": 254,\n\t\"./he.js\": 254,\n\t\"./hi\": 255,\n\t\"./hi.js\": 255,\n\t\"./hr\": 256,\n\t\"./hr.js\": 256,\n\t\"./hu\": 257,\n\t\"./hu.js\": 257,\n\t\"./hy-am\": 258,\n\t\"./hy-am.js\": 258,\n\t\"./id\": 259,\n\t\"./id.js\": 259,\n\t\"./is\": 260,\n\t\"./is.js\": 260,\n\t\"./it\": 261,\n\t\"./it-ch\": 262,\n\t\"./it-ch.js\": 262,\n\t\"./it.js\": 261,\n\t\"./ja\": 263,\n\t\"./ja.js\": 263,\n\t\"./jv\": 264,\n\t\"./jv.js\": 264,\n\t\"./ka\": 265,\n\t\"./ka.js\": 265,\n\t\"./kk\": 266,\n\t\"./kk.js\": 266,\n\t\"./km\": 267,\n\t\"./km.js\": 267,\n\t\"./kn\": 268,\n\t\"./kn.js\": 268,\n\t\"./ko\": 269,\n\t\"./ko.js\": 269,\n\t\"./ku\": 270,\n\t\"./ku.js\": 270,\n\t\"./ky\": 271,\n\t\"./ky.js\": 271,\n\t\"./lb\": 272,\n\t\"./lb.js\": 272,\n\t\"./lo\": 273,\n\t\"./lo.js\": 273,\n\t\"./lt\": 274,\n\t\"./lt.js\": 274,\n\t\"./lv\": 275,\n\t\"./lv.js\": 275,\n\t\"./me\": 276,\n\t\"./me.js\": 276,\n\t\"./mi\": 277,\n\t\"./mi.js\": 277,\n\t\"./mk\": 278,\n\t\"./mk.js\": 278,\n\t\"./ml\": 279,\n\t\"./ml.js\": 279,\n\t\"./mn\": 280,\n\t\"./mn.js\": 280,\n\t\"./mr\": 281,\n\t\"./mr.js\": 281,\n\t\"./ms\": 282,\n\t\"./ms-my\": 283,\n\t\"./ms-my.js\": 283,\n\t\"./ms.js\": 282,\n\t\"./mt\": 284,\n\t\"./mt.js\": 284,\n\t\"./my\": 285,\n\t\"./my.js\": 285,\n\t\"./nb\": 286,\n\t\"./nb.js\": 286,\n\t\"./ne\": 287,\n\t\"./ne.js\": 287,\n\t\"./nl\": 288,\n\t\"./nl-be\": 289,\n\t\"./nl-be.js\": 289,\n\t\"./nl.js\": 288,\n\t\"./nn\": 290,\n\t\"./nn.js\": 290,\n\t\"./oc-lnc\": 291,\n\t\"./oc-lnc.js\": 291,\n\t\"./pa-in\": 292,\n\t\"./pa-in.js\": 292,\n\t\"./pl\": 293,\n\t\"./pl.js\": 293,\n\t\"./pt\": 294,\n\t\"./pt-br\": 295,\n\t\"./pt-br.js\": 295,\n\t\"./pt.js\": 294,\n\t\"./ro\": 296,\n\t\"./ro.js\": 296,\n\t\"./ru\": 297,\n\t\"./ru.js\": 297,\n\t\"./sd\": 298,\n\t\"./sd.js\": 298,\n\t\"./se\": 299,\n\t\"./se.js\": 299,\n\t\"./si\": 300,\n\t\"./si.js\": 300,\n\t\"./sk\": 301,\n\t\"./sk.js\": 301,\n\t\"./sl\": 302,\n\t\"./sl.js\": 302,\n\t\"./sq\": 303,\n\t\"./sq.js\": 303,\n\t\"./sr\": 304,\n\t\"./sr-cyrl\": 305,\n\t\"./sr-cyrl.js\": 305,\n\t\"./sr.js\": 304,\n\t\"./ss\": 306,\n\t\"./ss.js\": 306,\n\t\"./sv\": 307,\n\t\"./sv.js\": 307,\n\t\"./sw\": 308,\n\t\"./sw.js\": 308,\n\t\"./ta\": 309,\n\t\"./ta.js\": 309,\n\t\"./te\": 310,\n\t\"./te.js\": 310,\n\t\"./tet\": 311,\n\t\"./tet.js\": 311,\n\t\"./tg\": 312,\n\t\"./tg.js\": 312,\n\t\"./th\": 313,\n\t\"./th.js\": 313,\n\t\"./tk\": 314,\n\t\"./tk.js\": 314,\n\t\"./tl-ph\": 315,\n\t\"./tl-ph.js\": 315,\n\t\"./tlh\": 316,\n\t\"./tlh.js\": 316,\n\t\"./tr\": 317,\n\t\"./tr.js\": 317,\n\t\"./tzl\": 318,\n\t\"./tzl.js\": 318,\n\t\"./tzm\": 319,\n\t\"./tzm-latn\": 320,\n\t\"./tzm-latn.js\": 320,\n\t\"./tzm.js\": 319,\n\t\"./ug-cn\": 321,\n\t\"./ug-cn.js\": 321,\n\t\"./uk\": 322,\n\t\"./uk.js\": 322,\n\t\"./ur\": 323,\n\t\"./ur.js\": 323,\n\t\"./uz\": 324,\n\t\"./uz-latn\": 325,\n\t\"./uz-latn.js\": 325,\n\t\"./uz.js\": 324,\n\t\"./vi\": 326,\n\t\"./vi.js\": 326,\n\t\"./x-pseudo\": 327,\n\t\"./x-pseudo.js\": 327,\n\t\"./yo\": 328,\n\t\"./yo.js\": 328,\n\t\"./zh-cn\": 329,\n\t\"./zh-cn.js\": 329,\n\t\"./zh-hk\": 330,\n\t\"./zh-hk.js\": 330,\n\t\"./zh-mo\": 331,\n\t\"./zh-mo.js\": 331,\n\t\"./zh-tw\": 332,\n\t\"./zh-tw.js\": 332\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 337;","module.exports = React;","module.exports = ReactDOM;"],"names":["createObservableDataAction","action","retailAction","input","context","createGetCategoriesInput","Paging","Top","requestContext","apiSettings","channelId","Breakpoints","isMobile","width","large","Popup","React","constructor","_callbackRedirect","this","props","callback","_callbackHide","_event","event","preventDefault","render","Modal","show","showPopup","onHide","centered","closeButton","isPortalPopup","translate","className","_titleText","_renderMessage","href","onClick","style","_stayButtonText","url","target","_goButtonText","locale","name","organisation","eventType","moment","require","EcommUpcomingProgrammes","state","upcomingEvents","existingMonths","mobileEvents","delay","ms","Promise","resolve","setTimeout","async","data","categories","config","startDate","Date","setHours","endDate","setMonth","getMonth","dateRange","language","request","split","org","eventTypeOption","ALL","eventTypeNo","CEREMONY","GROUPPRACTICE","getUpcomingEventsAsync","callerContext","actionContext","isUat","toISOString","getUpcomingEventsByTypeAsync","productIds","products","map","eventJson","JSON","parse","push","Number","length","getByIdsAsync","result","events","months","mobileList","categoryIndex","findIndex","category","RecordId","toString","imgUrl","generateImageUrl","Images","Uri","product","find","p","ProductNumber","redirectPortal","portalUrl","destinationUrl","productPdpUrl","eventPdpUrl","programmeCard","id","type","startDateTime","endDateTime","description","img","redirect","portalRedirect","buttonText","cardButtonText","isDropdownVersion","displayMobileDropdown","month","format","m","forEach","filter","item","setState","IEcommUpcomingProgrammesViewProps","_objectSpread","renderView","ProgrammeCard","_handleOnClick","window","location","assign","start","end","time","cardStyle","imgWrapperStyle","contentWrapperStyle","src","EcommUpcomingProgrammesView","hasMounted","selectedMonth","activePage","pageSize","_handleCallback","_handleCallbackPopup","_updateDimensions","innerWidth","_onDropdownSelect","_handlePageClick","selected","componentDidMount","addEventListener","_config$bgImage","_config$calendarLink","_config$calendarLink2","mobileMode","displayMonth","offset","mobileDropdownPageSize","displayEvents","_mobileEvents$find","pageCount","currentPageEvents","Math","ceil","slice","DropdownButton","title","onSelect","idx","Dropdown","key","eventKey","ReactPaginate","previousLabel","nextLabel","breakLabel","breakClassName","marginPagesDisplayed","pageRangeDisplayed","onPageChange","containerClassName","activeClassName","mockData","bg","bgImage","backgroundImage","spd","sliderSpeed","showArrows","localeCode","calendarLink","linkUrl","linkText","Carousel","responsive","superLargeDesktop","breakpoint","max","min","items","slidesToSlide","desktop","tablet","mobile","infinite","arrows","autoPlay","autoPlaySpeed","componentWillUnmount","removeEventListener","binding","modules","dataActions","c","$type","da","path","runOn","iNM","ns","n","pdp","md","registerSanitizedActionPath","sanitizedActionPath","dataAction","default","Error","prototype","RegistrationId","__bindings__","viewDictionary","cn","webpackContext","req","webpackContextResolve","__webpack_require__","o","e","code","keys","Object","module","exports","ReactDOM"],"sourceRoot":""}