{"version":3,"file":"static/js/32.612ddf6147bc2afba886.chunk.js","mappings":";4yBAqDA,MAAMA,UAAiCC,EAAAA,cAsBnCC,YAAYC,GACRC,MAAMD,GAlBF,KAAAE,mBAA6B,EAE7B,KAAAC,iBAA2B,EAI3B,KAAAC,gBAA0B,oBAE1B,KAAAC,sBAAgC,cAkEhC,KAAAC,kBAAqBC,IACrBA,EACAC,KAAKC,SAAS,CAAEC,kBAAkB,EAAMC,UAAU,IAElDH,KAAKC,SAAS,CAAEC,kBAAkB,KAmIlC,KAAAE,cAAiBC,GAAkBC,IACvC,MAAMP,EAAQO,EAAEC,OAAOR,MACvB,OAAQM,GACJ,IAAK,eACDL,KAAKC,SAAS,CAAEO,aAAcT,EAAOU,SAAS,EAAOC,UAAU,EAAOC,YAAY,EAAOC,UAAU,IACnG,MAEJ,IAAK,gBAAiB,CAClB,MAAMC,KAAYb,KAAKc,kBAAkBC,UAAWf,KAAKc,kBAAkBC,QAAQC,UAAUhB,KAAKc,kBAAkBC,QAAQC,QACtHC,EAAmBC,SAASC,cAAc,cAChDF,GAAoBA,EAAiBG,UAAUC,OAAO,gCAAiCR,GACvFb,KAAKC,SAAS,CAAEqB,qBAAsBT,EAAWH,UAAU,EAAOC,YAAY,EAAOC,UAAU,IAC/F,MAEJ,QACIW,QAAQC,IAAI,wBACZxB,KAAKC,SAAS,CAAES,UAAU,EAAOC,YAAY,EAAOC,UAAU,MAKlE,KAAAa,cAAiBC,GACP,yJACDC,KAAKD,GArNlB1B,KAAK4B,sBAAwBtC,EAAAA,YAC7BU,KAAKc,kBAAoBxB,EAAAA,YACzBU,KAAK6B,cAAgBvC,EAAAA,YACrBU,KAAK8B,iBAAmB9B,KAAK8B,iBAAiBC,KAAK/B,MAEnDA,KAAKgC,MAAQ,CACTxB,aAAc,GACdc,sBAAsB,EACtBX,YAAY,EACZF,SAAS,EACTG,UAAU,EACVT,UAAU,EACVO,UAAU,EACVuB,kBAAkB,EAClBC,eAAe,EACfhC,kBAAkB,EAClBiC,iBAAiB,EAEzB,CAzBqBC,gBAAS,IAAAC,EAC1B,MAAMC,EAA6C,QAArCD,EAAGrC,KAAKR,MAAM+C,KAAKC,0BAAkB,IAAAH,OAAA,EAAlCA,EAAoCI,OACrD,OAAOH,EAAWA,EAASI,MAAQ,EACvC,CAwBOC,SACH,MAAMC,EAASC,EAAAA,EAAA,GACP7C,KAAKR,OAAuE,IAChFsD,iBAAkB,CACdC,YAAa/C,KAAKR,MAClBwD,UAAWC,IAAWjD,KAAKJ,kBAE/BsD,kBAAmBlD,KAAKmD,wBACxBC,cAAepD,KAAKqD,cACpBlB,gBAAiBnC,KAAKgC,MAAMG,gBAC5BC,UAAWpC,KAAKsD,8BAGpB,OAAOtD,KAAKR,MAAM+D,WAAWX,EACjC,CAEQU,4BACJ,OACGtD,KAAKoC,WACA9C,EAAAA,cAAA,QAAMkE,MAAO,CAACC,QAAS,QAAST,UAAU,sBAAsBhD,KAAKoC,UAEjF,CAEQe,wBACJ,OACInD,KAAKgC,MAAMC,kBAA6C,KAAzBjC,KAAK0D,gBAE5BpE,EAAAA,cAAA,OAAK0D,UAAW,qBAAoBhD,KAAKgC,MAAME,cAAgB,iBAAmB,KAC9E5C,EAAAA,cAAA,KAAG0D,UAAU,4BAA4BhD,KAAK0D,kBAGpD,IAEd,CAUQL,cACJ,MAAO,CACHM,YAAa,CACTX,UAAW,2BAEfY,cAAe,CACXZ,UAAW,+BAEfa,WAAY7D,KAAK8D,oBACjBC,sBAAuB/D,KAAKgE,+BAC5BC,UAAWjE,KAAKkE,mBAChBC,iBAAkBnE,KAAKoE,yBACvBC,gBAAiBrE,KAAKsE,yBAE9B,CAEQR,oBACJ,OACIxE,EAAAA,cAAA,OAAK0D,UAAU,uBACVhD,KAAKgC,MAAMvB,SAAWT,KAAKgC,MAAMrB,WAAaX,KAAKuE,aAAa,uBAAyB,GAC1FjF,EAAAA,cAAA,SACIkF,IAAKxE,KAAK4B,sBACV6C,KAAK,QACLC,SAAU1E,KAAKI,cAAc,gBAAe,aACjC,gBACX4C,UAAU,2BACVjD,MAAOC,KAAKgC,MAAMxB,aAClBmE,UAAQ,EACRC,YAAa5E,KAAKR,MAAMqF,OAAOC,wBAI/C,CAEQP,aAAavB,GACjB,OAAO1D,EAAAA,cAAAA,EAAAA,SAAA,KACX,CAEQ0E,+BACJ,OACI1E,EAAAA,cAAA,OAAK0D,UAAU,2BACVhD,KAAKgC,MAAMpB,SAAWZ,KAAKuE,aAAa,2BAA6B,GACtEjF,EAAAA,cAAA,OAAK0D,UAAU,mCACX1D,EAAAA,cAAA,SACIkF,IAAKxE,KAAKc,kBACV2D,KAAK,WACLzB,UAAU,sBAAqB,aACpB,wBAAuB,eACrB,QACb0B,SAAU1E,KAAKI,cAAc,iBAC7B2E,GAAG,0BAEPzF,EAAAA,cAAA,QAAM0D,UAAU,gCACZ1D,EAAAA,cAAA,SAAIU,KAAKR,MAAMqF,OAAOG,kBAAkB1F,EAAAA,cAAA,KAAG2F,KAAMjF,KAAKR,MAAMqF,OAAOK,mBAAiB,qBAKxG,CAEQhB,mBACJ,OACI5E,EAAAA,cAAA,WAEQU,KAAKR,MAAMqF,OAAOM,gBAAkB7F,EAAAA,cAAA,OAAK0D,UAAU,0CAC9ChD,KAAKgC,MAAM7B,SAAWH,KAAKoF,sBAAsB,mBAAqB,GACvE9F,EAAAA,cAAC+F,EAAAA,EAAS,CACNb,IAAKxE,KAAK6B,cACVyD,QAAStF,KAAKR,MAAMqF,OAAOU,iBAC3Bb,SAAU1E,KAAKF,qBAEd,KAIzB,CAEQsF,sBAAsBpC,GAEtBhD,KAAKR,MAAMqF,OAAOM,kBACbnF,KAAKgC,MAAM9B,mBACZF,KAAKwF,sBAAwBxF,KAAKR,MAAMiG,UAAUD,wBAI1D,MAAMrF,EAAWH,KAAKgC,MAAM7B,SAC5B,OACIb,EAAAA,cAAAA,EAAAA,SAAA,KACKa,GACGb,EAAAA,cAAA,QAAM0D,UAAW,GAAGA,WAAoB0C,KAAK,QAAO,YAAW,aAEvD1F,KAAKwF,uBACLlG,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAAA,QAAM0D,UAAW,GAAGA,gBAAuB,cAAc,SACxDhD,KAAKwF,wBAOlC,CAEQpB,yBACJ,OACI9E,EAAAA,cAAA,WACIA,EAAAA,cAACqG,EAAAA,OAAM,CACH3C,UAAW,mBACX4C,MAAO5F,KAAKR,MAAMqF,OAAOgB,qBACzBC,MAAM,UACNC,QAAS/F,KAAK8B,kBAChB9B,KAAKR,MAAMqF,OAAOgB,sBAIhC,CAEQvB,yBACJ,OACIhF,EAAAA,cAAA,WACIA,EAAAA,cAAA,OAAK0D,UAAW,oBAAkB,WAK9C,CA4BQgD,uBAAuB1F,GAC3BN,KAAKN,qBAAqBM,KAAK4B,uBAAyB5B,KAAK4B,sBAAsBb,SAAWf,KAAK4B,sBAAsBb,QAAQhB,OAEjI,MAAMkG,EAAMjG,KAAK4B,uBAAyB5B,KAAK4B,sBAAsBb,SAAWf,KAAK4B,sBAAsBb,QAAQhB,MAASC,KAAK4B,sBAAsBb,QAAQhB,MAAQ,GACjKmG,EAAQlG,KAAK4B,sBAAsBb,QAAShB,MAElD,GAAKC,KAAKN,kBAKH,GAAKM,KAAKyB,cAAcyE,GAIxB,GAAIlG,KAAKR,MAAMqF,OAAOM,kBAAoBnF,KAAKgC,MAAM9B,iBACxDF,KAAKC,SAAS,CACVE,UAAU,SAEX,GAAKH,KAAKc,kBAAkBC,QAASC,SAOxC,GADAhB,KAAKL,kBAAmBK,KAAKN,kBACzBM,KAAKL,iBAAmBK,KAAKgC,MAAMV,uBAAyBtB,KAAKgC,MAAMrB,WACvE,IAAI,IAAAwF,QACMnG,KAAKoG,kBAAkBH,GAE7BjG,KAAKqG,eACqB,QAA1BF,EAAAnG,KAAK6B,cAAcd,eAAO,IAAAoF,GAA1BA,EAA4BG,QAC9B,MAAOhG,GACLiB,QAAQC,IAAIlB,EAAG,+BAbvBN,KAAKC,SAAS,CACVqB,sBAAsB,EACtBV,UAAU,SAVdZ,KAAKC,SAAS,CACVU,YAAY,SANhBX,KAAKC,SAAS,CACVQ,SAAS,EACTC,UAAU,GA4BtB,CAEQsF,wBAAwBtE,GAG5B,MAAM6E,QAAiBC,EAAAA,GACnBxG,KAAKR,MAAMiH,QAAQC,QACnB,cACA,OACA,CACIlG,aAAckB,EACdiF,QAAS3G,KAAKR,MAAMqF,OAAO8B,QAC3BC,aAAc5G,KAAKR,MAAMqF,OAAO+B,eAKxC5G,KAAK0D,gBAAkB6C,aAAQ,EAARA,EAAUhE,KAAKsE,QACtC7G,KAAKC,SAAS,CACVgC,kBAAkB,EAClBC,cAAyC,WAA1BqE,aAAQ,EAARA,EAAUhE,KAAKuE,QAC9B3E,gBAA2C,WAA1BoE,aAAQ,EAARA,EAAUhE,KAAKuE,QAChCtG,aAAc,GACdc,sBAAsB,EACtBZ,UAAU,EACVC,YAAY,EACZR,UAAU,IAGgB,WAA1BoG,aAAQ,EAARA,EAAUhE,KAAKuE,UACfC,EAAAA,EAAAA,GAAU/G,KAAKR,MAAMiH,QAAQC,QAAQM,QAAS,OAAQhH,KAAKH,sBAAuBG,KAAKR,MAAMqF,OAAOoC,WAAa,OAGzH,CAEQZ,eACJ,GAAIrG,KAAKc,kBAAkBC,QAAS,CAChCf,KAAKc,kBAAkBC,QAAQC,SAAU,EACzC,MAAMC,EAAmBC,SAASC,cAAc,cAChDF,GAAoBA,EAAiBG,UAAUC,OAAO,gCAAgC,GAGtFrB,KAAK4B,sBAAsBb,UAC3Bf,KAAK4B,sBAAsBb,QAAShB,MAAQ,GAEpD,GAjTUmH,EAAAA,EAAAA,IAAA,CAATC,EAAAA,IAAQ,8BAoTb,sqBC7VA,MAAMC,UAAsC9H,EAAAA,cAGxCC,YAAYC,GACRC,MAAMD,GAHF,KAAAK,sBAAgC,cAgDhC,KAAAwH,YAAc,KACdrH,KAAKsH,SACLtH,KAAKsH,OAASC,aAAY,KACtB,MAAMC,GAAcC,EAAAA,EAAAA,GAAUzH,KAAKR,MAAMiH,QAAQC,QAAQM,QAAShH,KAAKH,uBACnD,SAAhB2H,IACAxH,KAAKC,SAAS,CAACuH,YAAa,WAC5BE,YAAW,KACP1H,KAAKC,SAAS,CAACuH,YAAaA,GAAc,GAC3C,QAER,OAIH,KAAAG,UAAY,KAChBC,cAAc5H,KAAKsH,OAAO,EAGtB,KAAAO,iBAAmB,IAEnBvI,EAAAA,cAACqG,EAAAA,OAAM,CACH3C,UAAW,uBACX8C,MAAM,UACNC,QAASA,IAAM/F,KAAK8H,cAAY,KAKpC,KAAAA,WAAa,KACjB,MAAM,OAAEjD,GAAW7E,KAAKR,MACxBQ,KAAKC,SAAS,CAACuH,YAAa,YAC5BT,EAAAA,EAAAA,GAAU/G,KAAKR,MAAMiH,QAAQC,QAAQM,QAAS,OAAQhH,KAAKH,sBAAuBgF,EAAOoC,WAAa,QACtGS,YAAW,KACP1H,KAAKC,SAAS,CAACuH,YAAa,QAAQ,GACrC,IAAK,EA9ER,MAAMA,GAAcC,EAAAA,EAAAA,GAAUjI,EAAMiH,QAAQC,QAAQM,QAAShH,KAAKH,uBAElEG,KAAKgC,MAAQ,CACTwF,cAER,CAEO7E,SACH,MAAM,MACFoF,EAAK,OACLlD,EAAM,QACN4B,GACAzG,KAAKR,MACHwI,EAAiBvB,GAAWA,EAAQC,SAAWD,EAAQC,QAAQM,SAAWP,EAAQC,QAAQM,QAAQgB,iBAGxG,IAAIhI,KAAKR,MAAMuI,QAAU/H,KAAKR,MAAMuI,MAAME,sBAAwBjI,KAAKR,MAAMuI,MAAME,oBAAoBC,OAEnG,OADAlI,KAAKR,MAAMiH,QAAQ0B,UAAUC,MAAM,yDAC5B,KAOX,GAJ+B,SAA3BpI,KAAKgC,MAAMwF,aACXxH,KAAKqH,cAGsB,SAA3BrH,KAAKgC,MAAMwF,cAA2BQ,EAEtC,OADAhI,KAAK2H,YACE,KAGX,MAAMU,EAASxF,EAAAA,EAAA,GACR7C,KAAKR,OAAK,IACbyI,oBAAqBF,GAASA,EAAME,oBACpCK,QAASzD,EAAOyD,QAChBC,OAAQ1D,EAAO0D,QAAU,gBACzBC,YAAaxI,KAAK6H,mBAClBY,iBAAkB,CAAEzF,UAAW,uBAC/B0F,gBAAiB,CAAE1F,UAAW,sBAC9BwE,YAAaxH,KAAKgC,MAAMwF,cAG5B,OAAOxH,KAAKR,MAAM+D,WAAW8E,EACjC,EAwCJ,0uBC3CA,MAAMM,UAAuBrJ,EAAAA,cAsBzBC,YAAYC,GACRC,MAAMD,GAfF,KAAAE,mBAA6B,EAC7B,KAAAC,iBAA2B,EAE3B,KAAAC,gBAA0B,oBAQ1B,KAAAgJ,yBAAmC,qBAuSnC,KAAAC,YAAc,KAClB7I,KAAKC,SAAS,CACV6I,gBAAiB9I,KAAK+I,mBAAqB,OAAS,QAGtD,EAEE,KAAAtH,cAAiBC,GACP,yJACDC,KAAKD,GAGd,KAAAqH,iBAAmB,KACvB,MAAMrH,EAAgB1B,KAAK4B,sBAAsBb,SAAWf,KAAK4B,sBAAsBb,QAAQhB,OAAS,GACxG,OAAqB,IAAjB2B,EAAMwG,SAGElI,KAAKyB,cAAcC,IAI3B,KAAAsH,cAAgB,KACpB,MAAM,UAACvD,GAAazF,KAAKR,MACzB,OACIF,EAAAA,cAAAA,EAAAA,SAAA,KAOIA,EAAAA,cAAA,OAAK0D,UAAWhD,KAAKgC,MAAM8G,iBACtBrD,EAAUwD,YAGhB,EAKH,KAAA7I,cAAiBC,GAAkBC,IACvC,MAAMP,EAAQO,EAAEC,OAAOR,MACvB,GASS,iBATDM,EAUAL,KAAKC,SAAS,CAAEO,aAAcT,EAAOU,SAAS,EAAOC,UAAU,EAAOC,YAAY,SAIlFY,QAAQC,IAAI,wBACZxB,KAAKC,SAAS,CAAES,UAAU,EAAOC,YAAY,KAgJjD,KAAA0G,YAAc,KACdrH,KAAKsH,SACLtH,KAAKsH,OAASC,aAAY,KACtB,MAAMC,GAAcC,EAAAA,EAAAA,GAAUzH,KAAKR,MAAMiH,QAAQC,QAAQM,QAAShH,KAAK4I,0BACnD,SAAhBpB,GACAxH,KAAKC,SAAS,CAACuH,YAAaA,MAEjC,OAIH,KAAAG,UAAY,KAChBC,cAAc5H,KAAKsH,OAAO,EAGtB,KAAAO,iBAAmB,IAEnBvI,EAAAA,cAACqG,EAAAA,OAAM,CACH3C,UAAW,uBACX8C,MAAM,UACNC,QAASA,IAAM/F,KAAK8H,cAAY,KAKpC,KAAAA,WAAa,KACjB,MAAM,OAAEjD,GAAW7E,KAAKR,MACxBQ,KAAKC,SAAS,CAACuH,YAAa,YAC5BT,EAAAA,EAAAA,GAAU/G,KAAKR,MAAMiH,QAAQC,QAAQM,QAAS,OAAQhH,KAAK4I,yBAA0B/D,EAAOoC,WAAa,QACzGS,YAAW,KACP1H,KAAKC,SAAS,CAACuH,YAAa,QAAQ,GACrC,IAAK,EAxgBRxH,KAAK4B,sBAAwBtC,EAAAA,YAC7BU,KAAK6B,cAAgBvC,EAAAA,YACrB,MAAMkI,GAAcC,EAAAA,EAAAA,GAAUjI,EAAMiH,QAAQC,QAAQM,QAAShH,KAAK4I,0BAClE5I,KAAKkJ,UAAY1J,EAAMiH,QAAQC,SAAWlH,EAAMiH,QAAQC,QAAQyC,QAAgD,WAAtC3J,EAAMiH,QAAQC,QAAQyC,OAAOC,KAAoB,KAAO,KAClIpJ,KAAKqJ,cAAgBrJ,KAAKqJ,cAActH,KAAK/B,MAE7CA,KAAKgC,MAAQ,CACTwF,cAGAhH,aAAc,GACd8I,SAAS,EACTC,SAAS,EACT9I,SAAS,EACTE,YAAY,EACZR,UAAU,EACVO,UAAU,EACVuB,kBAAkB,EAClBC,eAAe,EACfhC,kBAAkB,EAClBiC,iBAAiB,EACjBqH,qBAAqB,EAGrBV,gBAAiB,QAGrB9I,KAAKyJ,gBAAkBzJ,KAAKyJ,gBAAgB1H,KAAK/B,KACrD,CAvCc0J,eACV,MAA2B,OAAnB1J,KAAKkJ,WAAyC,OAAnBlJ,KAAKkJ,SAC5C,CAuCOS,oBACCnD,EAAAA,GAA0BoD,WAAaC,OAAOC,mBAC9CD,OAAOC,iBAAiB,SAAU9J,KAAKyJ,iBACvCzJ,KAAKyJ,kBAEb,CAEOM,uBACCvD,EAAAA,GAA0BoD,WAAaC,OAAOG,qBAC9CH,OAAOG,oBAAoB,SAAUhK,KAAKyJ,gBAElD,CAEO9G,SACH,MAAM,QACF8D,GACAzG,KAAKR,MACHwI,EAAiBvB,GAAWA,EAAQC,SAAWD,EAAQC,QAAQM,SAAWP,EAAQC,QAAQM,QAAQgB,iBAMxG,GAJ+B,SAA3BhI,KAAKgC,MAAMwF,aACXxH,KAAKqH,cAGsB,SAA3BrH,KAAKgC,MAAMwF,cAA2BQ,EAEtC,OADAhI,KAAK2H,YACE,KAGX,MAAMU,EAASxF,EAAAA,EAAA,GACR7C,KAAKR,OAAK,IACbyK,MAAOjK,KAAKkK,eACZ5B,QAAStI,KAAKmK,iBACd3B,YAAaxI,KAAK6H,mBAClB/E,iBAAkB,CACdC,YAAa/C,KAAKR,MAClBwD,UAAWC,IAAWjD,KAAKJ,gBAAiBI,KAAKR,MAAMqF,OAAO7B,YAGlE0G,SAAU1J,KAAK0J,SACfjB,iBAAkB,CAAEzF,UAAW,uBAC/BoH,eAAgB,CAAEpH,UAAW,qBAC7BwE,YAAaxH,KAAKgC,MAAMwF,YACxBtE,kBAAmBlD,KAAKqK,qBACxBjH,cAAepD,KAAKqD,cACpBlB,gBAAiBnC,KAAKgC,MAAMG,gBAC5BqH,oBAAqBxJ,KAAKgC,MAAMwH,oBAChCc,WAAYtK,KAAKgJ,gBACjBuB,oBAAqB,CACjBvH,UAAW,2BAEfwH,gBAAiBxK,KAAKyK,yBACtBC,oBAAqB1K,KAAKgC,MAAMG,gBAChCwI,yBAA0B,CACtB3H,UAAW,8BAInB,OAAOhD,KAAKR,MAAM+D,WAAW8E,EACjC,CAEQ6B,eACJ,MAAMU,EAAe5K,KAAKR,MAAMiH,QAAQC,QAAQkE,aAEhD,IAAIC,EAAuC,CACvCC,UAAW,CACPC,GAAI,CAAEC,EAAG,kBAAmBC,EAAG,EAAGC,EAAG,GACrCC,GAAI,CAAEH,EAAG,kBAAmBC,EAAG,EAAGC,EAAG,GACrCE,GAAI,CAAEJ,EAAG,kBAAmBC,EAAG,EAAGC,EAAG,IAEzCG,UAAU,GAGVpB,EAAQjK,KAAKR,MAAMqF,OAAOyG,aAY9B,OACIhM,EAAAA,cAAA,OAAK0D,UAAU,eACVhD,KAAK0J,SAAU,KACfpK,EAAAA,cAACiM,EAAAA,GAAKC,OAAAC,OAAA,CACHzI,UAAW,qBACX0I,QAAS,SACLzB,EAAK,CACTW,aAAcA,EACde,cAAed,EACfe,oBAAoB,WAIpC,CACQvB,qBACJ,OACIrK,KAAKgC,MAAMC,kBAA6C,KAAzBjC,KAAK0D,gBAE5BpE,EAAAA,cAAA,OAAK0D,UAAW,qBAAoBhD,KAAKgC,MAAME,cAAgB,iBAAmB,KAC9E5C,EAAAA,cAAA,KAAG0D,UAAU,4BAA4BhD,KAAK0D,kBAGpD,IAEd,CAEQ+G,yBACJ,OACIzK,KAAKgC,MAAMG,gBAEH7C,EAAAA,cAAA,OAAK0D,UAAU,qBACX1D,EAAAA,cAAA,UAAKU,KAAKR,MAAMqF,OAAOgH,sBAG7B,IAEd,CAEQxI,cACJ,MAAO,CACHM,YAAa,CACTX,UAAW,oBAEfY,cAAe,CACXZ,UAAW,wBAGfa,WAAY7D,KAAK8D,oBACjBK,iBAAkBnE,KAAK8L,sBACvBzH,gBAAiBrE,KAAK+L,sBACtB9H,UAAWjE,KAAKkE,mBAExB,CAiCQJ,oBACJ,OACIxE,EAAAA,cAAA,OAAK0D,UAAU,uBACVhD,KAAKgC,MAAMvB,SAAWT,KAAKgC,MAAMrB,WAAaX,KAAKuE,aAAa,uBAAyB,GAC1FjF,EAAAA,cAAA,SACIkF,IAAKxE,KAAK4B,sBACV6C,KAAK,QACLC,SAAU1E,KAAKI,cAAc,gBAAe,aACjC,gBACX4C,UAAU,2BACVjD,MAAOC,KAAKgC,MAAMxB,aAClBmE,UAAQ,EACRC,YAAa5E,KAAKR,MAAMqF,OAAOC,uBAAwB,kBAIvE,CAGQP,aAAavB,GACjB,OAAO1D,EAAAA,cAAAA,EAAAA,SAAA,KACX,CAEQ8F,sBAAsBpC,GAEtBhD,KAAKR,MAAMqF,OAAOM,kBACbnF,KAAKgC,MAAM9B,mBACZF,KAAKwF,sBAAwBxF,KAAKR,MAAMiG,UAAUD,wBAI1D,MAAMrF,EAAWH,KAAKgC,MAAM7B,SAC5B,OACIb,EAAAA,cAAAA,EAAAA,SAAA,KACKa,GACGb,EAAAA,cAAA,QAAM0D,UAAW,GAAGA,WAAoB0C,KAAK,QAAO,YAAW,aAEvD1F,KAAKwF,uBACLlG,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAAA,QAAM0D,UAAW,GAAGA,gBAAuB,cAAc,SACxDhD,KAAKwF,wBAOlC,CAEQtB,mBACJ,OACI5E,EAAAA,cAAA,WACIA,EAAAA,cAAA,OAAK0D,UAAU,IACVhD,KAAKgC,MAAM7B,SAAWH,KAAKoF,sBAAsB,mBAAqB,GACvE9F,EAAAA,cAAC+F,EAAAA,EAAS,CACNb,IAAKxE,KAAK6B,cACVyD,QAAStF,KAAKR,MAAMqF,OAAOU,iBAC3ByG,KAAK,YACLtH,SAAUA,IAAM1E,KAAKiM,aAKzC,CAEQH,sBACJ,OACIxM,EAAAA,cAAA,OAAK0D,UAAU,8BACX1D,EAAAA,cAACqG,EAAAA,OAAM,CACH3C,UAAW,gCACX4C,MAAO5F,KAAKR,MAAMqF,OAAOqH,kBACzBpG,MAAM,UACNC,QAAS/F,KAAKqJ,eAChBrJ,KAAKR,MAAMqF,OAAOqH,mBAAqB,aAIrD,CAEQH,sBACJ,OACIzM,EAAAA,cAAA,WACIA,EAAAA,cAAA,OAAK0D,UAAW,oBAAkB,WAK9C,CAgEQqG,cAAc/I,GAAsG,IAAA6F,EAC9F,QAA1BA,EAAAnG,KAAK6B,cAAcd,eAAO,IAAAoF,GAA1BA,EAA4BgG,SAChC,CAEQnG,gBAAa,IAAAoG,EACjBpM,KAAK6I,cAIL7I,KAAKN,qBAAqBM,KAAK4B,uBAAyB5B,KAAK4B,sBAAsBb,SAAWf,KAAK4B,sBAAsBb,QAAQhB,OAIjI,MAAMkG,EAAMjG,KAAK4B,uBAAyB5B,KAAK4B,sBAAsBb,SAAWf,KAAK4B,sBAAsBb,QAAQhB,MAASC,KAAK4B,sBAAsBb,QAAQhB,MAAQ,GACjKmG,EAAQlG,KAAK4B,sBAAsBb,QAAShB,MAE5CsM,EAA2C,QAA7BD,EAAGpM,KAAK6B,cAAcd,eAAO,IAAAqL,OAAA,EAA1BA,EAA4BE,WAgBlB,IAAAC,EAA7B,GAAKvM,KAAKN,kBAMP,GAAKM,KAAKyB,cAAcyE,GAKxB,GAAKmG,GAOR,GADArM,KAAKL,kBAAmBK,KAAKN,kBACzBM,KAAKL,kBAAoBK,KAAKgC,MAAMrB,WACpC,IAAI,IAAA6L,QAEMxM,KAAKyM,WAAWxG,GAEtBjG,KAAKqG,eACqB,QAA1BmG,EAAAxM,KAAK6B,cAAcd,eAAO,IAAAyL,GAA1BA,EAA4BlG,QAC9B,MAAOhG,GACLiB,QAAQC,IAAIlB,EAAG,iCAfC,KAAAoM,EACxB1M,KAAKC,SAAS,CACVE,UAAU,IAEY,QAA1BuM,EAAA1M,KAAK6B,cAAcd,eAAO,IAAA2L,GAA1BA,EAA4BpG,YATO,KAAAqG,EACnC3M,KAAKC,SAAS,CACVU,YAAY,IAEU,QAA1BgM,EAAA3M,KAAK6B,cAAcd,eAAO,IAAA4L,GAA1BA,EAA4BrG,aAT5BtG,KAAKC,SAAS,CACVQ,SAAS,EACTC,UAAU,IAEY,QAA1B6L,EAAAvM,KAAK6B,cAAcd,eAAO,IAAAwL,GAA1BA,EAA4BjG,OAyBpC,CAIYN,iBAAiBtE,GAIzB,IAAIkL,EAAiB5M,KAAKR,MAAMqF,OAAO+H,eAEvC,MAAMrG,QAAiBC,EAAAA,GACnBxG,KAAKR,MAAMiH,QAAQC,QACnB,gBACA,OACA,CAGIlG,aAAckB,EACdiF,QAAS3G,KAAKR,MAAMqF,OAAO8B,QAC3BiG,eAAgBA,EAChBC,OAAM,IAKd7M,KAAK0D,gBAAkB6C,aAAQ,EAARA,EAAUhE,KAAKsE,QAER,WAA1BN,aAAQ,EAARA,EAAUhE,KAAKuE,SACf9G,KAAKC,SAAS,CACVgC,kBAAkB,EAClBC,cAAyC,WAA1BqE,aAAQ,EAARA,EAAUhE,KAAKuE,QAC9B3E,gBAA2C,WAA1BoE,aAAQ,EAARA,EAAUhE,KAAKuE,QAChC0C,qBAAqB,EACrBhJ,aAAc,GAGdE,UAAU,EACVC,YAAY,EACZR,UAAU,IAGduH,WAAW1H,KAAK8H,WAAY,OAG5B9H,KAAKC,SAAS,CACVgC,kBAAkB,EAClBC,cAAyC,WAA1BqE,aAAQ,EAARA,EAAUhE,KAAKuE,QAC9B3E,gBAA2C,WAA1BoE,aAAQ,EAARA,EAAUhE,KAAKuE,QAChCtG,aAAc,GACdE,UAAU,EACVC,YAAY,EACZR,UAAU,GAGtB,CAEQkG,eAEArG,KAAK4B,sBAAsBb,UAC3Bf,KAAK4B,sBAAsBb,QAAShB,MAAQ,GAQpD,CAEQoK,iBACJ,OACI7K,EAAAA,cAAA,OAAK0D,UAAU,0BACX1D,EAAAA,cAAA,QAAMwN,yBAAyBC,EAAAA,EAAAA,IAAgB/M,KAAKR,MAAMqF,OAAOmI,kBAG7E,CAoCQC,eACJ,MAAM,QAAExG,GAAYzG,KAAKR,MAGzB,GAAIiH,EAAQC,SAAWD,EAAQC,QAAQyC,QAA0C,WAAhC1C,EAAQC,QAAQyC,OAAOC,KACpE,MAAO,KAGX,GAAI5C,EAAAA,GAA0BoD,WAAaC,OAAOqD,WAAY,CAC1D,MAAMtC,EAAenE,EAAQC,QAAQkE,aACrC,GAAIA,EACA,OAAIA,EAAaG,IAAMlB,OAAOqD,YAActC,EAAaG,GAAGE,EACjD,KACAL,EAAauC,IAAMtD,OAAOqD,YAActC,EAAauC,GAAGlC,EACxD,KACAL,EAAawC,IAAMvD,OAAOqD,YAActC,EAAawC,GAAGnC,EACxD,KACAL,EAAaO,IAAMtB,OAAOqD,YAActC,EAAaO,GAAGF,EACxD,KAEA,KAKnB,MAAO,IACX,CAEQxB,kBACJzJ,KAAKkJ,UAAYlJ,KAAKiN,cAC1B,GApjBU/F,EAAAA,EAAAA,IAAA,CAATC,EAAAA,IAAQ,6BAujBb,iFCroBA,QAAgB3H,IACZ,MAAM,oBACFyI,EAAmB,QACnBK,EAAO,OACPC,EAAM,YACNC,EAAW,iBACXC,EAAgB,gBAChBC,EAAe,YACflB,GACAhI,EAEJ,OAAIyI,GAAwBA,EAAoBC,OAK5C5I,EAAAA,cAAA,OAAK0D,UAAW,qCAAqCwE,KACjDlI,EAAAA,cAAA,OAAK0D,UAAU,gBACVwF,GAEJD,GAAUjJ,EAAAA,cAAC+N,EAAAA,KAAI7B,OAAAC,OAAA,GAAK/C,GAAiBpJ,EAAAA,cAAA,UAAKiJ,IAC1CD,GAAWhJ,EAAAA,cAAC+N,EAAAA,KAAI7B,OAAAC,OAAA,GAAKhD,GAAkBnJ,EAAAA,cAAA,SAAIgJ,IAE3CL,IAXLzI,EAAMiH,QAAQ0B,UAAUC,MAAM,mDACvB,KAad,6GCvBK,MAAOkF,UAAsChO,EAAAA,cAExCqD,SACH,MAAM,iBAAEG,EAAgB,kBAAEI,EAAiB,cAAEE,EAAa,gBAAEjB,EAAe,UAAEC,GAAcpC,KAAKR,OAC1F,YAAEmE,EAAW,cAAEC,EAAa,WAAEC,EAAU,sBAAEE,EAAqB,iBAAEI,EAAgB,UAAEF,EAAS,gBAAEI,GAAoBjB,EACxH,OACI9D,EAAAA,cAACiO,EAAAA,OAAM/B,OAAAC,OAAA,GAAK3I,GACPI,EACD5D,EAAAA,cAAC+N,EAAAA,KAAI7B,OAAAC,OAAA,GAAK9H,GACNrE,EAAAA,cAAC+N,EAAAA,KAAI7B,OAAAC,OAAA,GAAK7H,GACLC,EACAE,EACAE,EACA9B,EAAkBkC,EAAkBF,EACpC/B,IAKrB,EAEJ,iFCxBA,QAAgB5C,IACZ,MAAM,QACF8I,EAAO,YACPE,EAAW,MACXyB,EAAK,YACLzC,EAAW,iBACXiB,EAAgB,SAChBiB,EAAQ,eACRU,EAAc,cACdhH,EAAa,iBACbN,EAAgB,kBAChBI,EAAiB,gBACjBf,EAAe,oBACfqH,EAAmB,WACnBc,EAAU,oBACVC,EAAmB,yBACnBI,EAAwB,oBACxBD,EAAmB,gBACnBF,GACAhL,GAEE,YACFmE,EAAW,cACXC,EAAa,WAEbC,EAAU,iBACVM,EAAgB,gBAChBE,EAAe,UACfJ,GACAb,EAEJ,OACI9D,EAAAA,cAAA,OAAK0D,UAAW,qBAAqBwE,KACjClI,EAAAA,cAAA,OAAK0D,UAAW,gCAA+B0G,EAAW,SAAW,YACjEpK,EAAAA,cAAA,OAAK0D,UAAU,gBACVwF,GAELlJ,EAAAA,cAAA,OAAK0D,UAAW,4BAA2B0G,EAAW,SAAW,YAC5DO,GAAS3K,EAAAA,cAAC+N,EAAAA,KAAI7B,OAAAC,OAAA,GAAKrB,GAAgB9K,EAAAA,cAAA,SAAI2K,IACvC3B,GAAWhJ,EAAAA,cAAC+N,EAAAA,KAAI7B,OAAAC,OAAA,GAAKhD,GAClBnJ,EAAAA,cAAA,SAAIgJ,GACJhJ,EAAAA,cAACiO,EAAAA,OAAM/B,OAAAC,OAAA,GAAK3I,GACPI,EACAwH,EACGpL,EAAAA,cAAC+N,EAAAA,KAAI7B,OAAAC,OAAA,GAAKd,GACLH,GAEHlL,EAAAA,cAAC+N,EAAAA,KAAI7B,OAAAC,OAAA,GAAK9H,GACRrE,EAAAA,cAAC+N,EAAAA,KAAI7B,OAAAC,OAAA,GAAK7H,GAELC,EACAI,EACA9B,GAAmBqH,EAAsBnF,EAAkBF,GAEhE7E,EAAAA,cAAC+N,EAAAA,KAAI7B,OAAAC,OAAA,GAAKlB,GACLD,QAUxC,+EC3DIkD,EAKAC,4BALL,SAAKD,GACDA,EAAA,SACAA,EAAA,SACAA,EAAA,QACH,CAJD,CAAKA,IAAAA,EAAM,KAKX,SAAKC,GACDA,EAAA,SACAA,EAAA,SACAA,EAAA,QACH,CAJD,CAAKA,IAAAA,EAAW,KAMhB,MAAM9G,EAAW,CACb+G,IAAI,cACJC,IAAI,YACJC,IAAK,iBAQH,MAAOC,UAAuBvO,EAAAA,cAMhCC,YAAYC,GACRC,MAAMD,GALF,KAAAsO,2BAAqC9N,KAAKR,MAAMiH,QAAQsH,IAAIlJ,OAAOmJ,2BAA6BhO,KAAKR,MAAMiH,QAAQsH,IAAIlJ,OAAOmJ,2BAA6B,OAC3J,KAAAC,YAAsBjO,KAAKR,MAAMiH,QAAQsH,IAAIlJ,OAAOqJ,4BAA8BlO,KAAKR,MAAMiH,QAAQsH,IAAIlJ,OAAOqJ,4BAA8B,gCAC9I,KAAAC,eAAyB,UACzB,KAAAC,qBAA+B,2CAsD/B,KAAAC,UAAY,WAA6B,IAA5BC,EAAAC,UAAArG,OAAA,QAAAsG,IAAAD,UAAA,GAAAA,UAAA,GAAc,GAC3BE,EAAiB,GACjBH,EAAII,QAAQ,SAAW,GAAKJ,EAAII,QAAQ,WAAa,KACrDD,EAAiB,GAErB,IAAIE,EAAUL,GAAOA,EAAIpG,OAAS,EAC3BoG,EAAII,QAAQ,OAAS,OACmBF,IAAnCF,EAAIM,MAAM,KAAKH,IAAoE,OAAnCH,EAAIM,MAAM,KAAKH,IAA4BH,EAAIM,MAAM,KAAKH,GAAgBvG,OAAS,GAAsD,kBAAjDoG,EAAIM,MAAM,KAAKH,GAAgBI,eAAsF,SAAjDP,EAAIM,MAAM,KAAKH,GAAgBI,eAA4E,OAAjDP,EAAIM,MAAM,KAAKH,GAAgBI,eAA8D,KAAnCP,EAAIM,MAAM,KAAKH,GAC7UjB,EAAOsB,GACPR,EAAIM,MAAM,KAAKH,GAAgBM,cACnCvB,EAAOsB,GACX,GAON,MALe,OAAXH,EACAA,EAASnB,EAAOwB,GACgB,kBAAzBL,EAAOE,eAA8D,SAAzBF,EAAOE,eAAqD,OAAzBF,EAAOE,gBAC7FF,EAASnB,EAAOyB,IAEbN,CACX,EAtEI3O,KAAKkP,iBAAmBlP,KAAKkP,iBAAiBnN,KAAK/B,MACnDA,KAAKmP,eAAiBnP,KAAKmP,eAAepN,KAAK/B,MAC/CA,KAAKoP,cAAgBpP,KAAKoP,cAAcrN,KAAK/B,MAG7CA,KAAKqP,kBAAoB/P,EAAAA,YAEzBU,KAAKqO,UAAYrO,KAAKqO,UAAUtM,KAAK/B,MACrCA,KAAKgC,MAAQ,CACTsN,mBAAmB,EACnBC,gBAAiB,GAEzB,CACO5F,oBACH,MAAM6F,GAAkB/H,EAAAA,EAAAA,GAAUzH,KAAKR,MAAMiH,QAAQC,QAAQM,QAAShH,KAAKoO,sBAE3E,GAAKoB,GAAuC,SAApBA,EAcnB,CACD,MAAMlB,EAAMtO,KAAKR,MAAMiH,QAAQC,QAAQ4H,KAAOtO,KAAKR,MAAMiH,QAAQC,QAAQ4H,IAAImB,YAAczP,KAAKR,MAAMiH,QAAQC,QAAQ4H,IAAImB,WAAWxK,KAC/HsK,EAAkBvP,KAAKqO,UAAUC,GAEvCtO,KAAKC,SAAS,CACVsP,gBAAiBA,QAnB2B,CAChD,MAAMjB,EAAMtO,KAAKR,MAAMiH,QAAQC,QAAQ4H,KAAOtO,KAAKR,MAAMiH,QAAQC,QAAQ4H,IAAImB,YAAczP,KAAKR,MAAMiH,QAAQC,QAAQ4H,IAAImB,WAAWxK,KAC/HsK,EAAkBvP,KAAKqO,UAAUC,GAEjCoB,GAAejI,EAAAA,EAAAA,GAAUzH,KAAKR,MAAMiH,QAAQC,QAAQM,QAAShH,KAAKiO,eACnEyB,GAAiBA,GAAgBA,IAAiBH,IACnDvP,KAAKC,SAAS,CACVqP,mBAAmB,EACnBC,gBAAiBA,KAIzBxI,EAAAA,EAAAA,GAAU/G,KAAKR,MAAMiH,QAAQC,QAAQM,QAAS,OAAQhH,KAAKoO,qBAAsBpO,KAAK8N,4BAU9F,CACOnL,SACH,MAAM,WAAEgN,GAAe3P,KAAKR,OACtB,gBAAE+P,GAAoBvP,KAAKgC,MAEjC,OACI1C,EAAAA,cAACiO,EAAAA,OAAM/B,OAAAC,OAAA,GAAKkE,GACP3P,KAAK4P,4BACL5P,KAAK6P,2BAA2BN,GAChCvP,KAAK8P,0BAA0BP,GAG5C,CAsBQJ,iBAKJ,GAJAnP,KAAKC,SAAS,CACVqP,mBAAoBtP,KAAKgC,MAAMsN,qBAG/BtP,KAAKgC,MAAMsN,kBAAmB,CAC9B,IAAIS,EAAS7O,SAAS8O,uBAAuB,aAAa,GAC1DD,EAAOE,UAAYF,EAAOG,aAElC,CACQN,4BACJ,MAAMtB,EAAMtO,KAAKR,MAAMiH,QAAQC,QAAQ4H,KAAOtO,KAAKR,MAAMiH,QAAQC,QAAQ4H,IAAImB,YAAczP,KAAKR,MAAMiH,QAAQC,QAAQ4H,IAAImB,WAAWxK,KAC/HsK,EAAkBvP,KAAKqO,UAAUC,GACvC,OACIhP,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAACqG,EAAAA,OAAM,CACHwK,SAAUnQ,KAAKqP,kBACfrM,UAAU,yBAAwB,mBACjB,sBACjB+C,QAAS/F,KAAKmP,eAAc,aACjB,0BAAyB,gBACrBnP,KAAKgC,MAAMsN,mBAE1BhQ,EAAAA,cAAA,QAAM0D,UAAU,eAAgB,YAChC1D,EAAAA,cAAA,YAAOqH,EAAQ4I,IACfjQ,EAAAA,cAAA,QAAM0D,UAAW,UAAShD,KAAKgC,MAAMsN,kBAAoB,aAAe,kBAMxF,CACQQ,0BAA0BP,GAC9B,MAAMa,EAAYpQ,KAAKR,MAAMqF,OAAOuL,aAAepQ,KAAKR,MAAMqF,OAAOuL,YACrE,OACI9Q,EAAAA,cAAA,OAAK0D,UAAW,4BAA2BhD,KAAKgC,MAAMsN,kBAAoB,SAAW,KAC/Ec,GAAeA,EAAYC,KAAI,CAACC,EAAMC,IACxCjR,EAAAA,cAAA,KACI0D,UAAU,GACV4C,MAAO0K,EAAKE,SACZzK,QAAS/F,KAAKoP,cAAa,aACfkB,EAAKE,SACjBvL,KAAMqL,EAAKG,gBAAgBC,gBAE/BpR,EAAAA,cAAA,OAAK0D,UAAW,mBAAkBuM,IAAoBe,EAAKE,SAAW,SAAW,KAC7ElR,EAAAA,cAAA,QAAM0D,UAAU,QAAQhD,KAAK2Q,gBAAgBL,EAAKE,eAOlE,CAEQG,gBAAgBH,GACpB,OAAOA,GAAY7J,EAAQ6J,IAAa7J,EAAa,GACzD,CAEQkJ,2BAA2BN,GAC/B,MAAMa,EAAYpQ,KAAKR,MAAMqF,OAAOuL,aAAepQ,KAAKR,MAAMqF,OAAOuL,YACrE,OACI9Q,EAAAA,cAACsR,EAAAA,QAAO,CACJ7L,GAAG,sBACH/B,UAAU,uDACV6N,UAAU,SACVC,OAAQ9Q,KAAKgC,MAAMsN,kBACnB/O,OAAQP,KAAKqP,mBAIjB/P,EAAAA,cAAA,OAAK0D,UAAU,gBACX1D,EAAAA,cAAA,yCACE8Q,GAAeA,EAAYC,KAAI,CAACC,EAAMC,IACxCjR,EAAAA,cAAA,KACI0D,UAAU,GACV4C,MAAO0K,EAAKE,SACZzK,QAAS/F,KAAKoP,cAAa,aACfkB,EAAKE,SACjBvL,KAAMqL,EAAKG,gBAAgBC,gBAE/BpR,EAAAA,cAAA,OAAK0D,UAAW,mBAAkBuM,IAAoBe,EAAKE,SAAW,SAAW,KAC7ElR,EAAAA,cAAA,QAAM0D,UAAU,QAAQhD,KAAK2Q,gBAAgBL,EAAKE,WAClDlR,EAAAA,cAAA,QAAM0D,UAAU,6BAQhC,CAGQoM,cAAc2B,GAClBA,EAAMC,iBACN,MAAMC,EAAcF,EAAMG,cAAcjM,KACxC,IAAI0J,EAASnB,EAAOsB,GAGhBH,EAD4B,cAA7BoC,EAAMG,cAAcC,KACV3D,EAAOwB,GACmB,kBAA7B+B,EAAMG,cAAcC,KACjB3D,EAAOyB,GAEPzB,EAAOsB,GAEpB,MAAMR,EAAMtO,KAAKR,MAAMiH,QAAQC,QAAQ4H,KAAOtO,KAAKR,MAAMiH,QAAQC,QAAQ4H,IAAImB,YAAczP,KAAKR,MAAMiH,QAAQC,QAAQ4H,IAAImB,WAAWxK,KAC/HsK,EAAkBvP,KAAKqO,UAAUC,GACvC,GAAIK,GAAUA,IAAWY,EAAiB,EAEtCxI,EAAAA,EAAAA,GAAU/G,KAAKR,MAAMiH,QAAQC,QAAQM,QAAS2H,EAAQ3O,KAAKiO,YAAajO,KAAK8N,6BAC7E/G,EAAAA,EAAAA,GAAU/G,KAAKR,MAAMiH,QAAQC,QAAQM,QAAS,QAAShH,KAAKoO,qBAAsBpO,KAAK8N,6BACvF/G,EAAAA,EAAAA,GAAU/G,KAAKR,MAAMiH,QAAQC,QAAQM,QAASyG,EAAYkB,GAAS3O,KAAKmO,eAAgBnO,KAAK8N,4BAC7F,IAAIQ,EAAM2C,EAAYrC,MAAM,KAAK,GAIjC,OAHA7H,EAAAA,EAAAA,GAAU/G,KAAKR,MAAMiH,QAAQC,QAAQM,QAASsH,EAAK,oBAAqBtO,KAAK8N,iCAE7E9N,KAAKmP,iBAGTnP,KAAKkP,iBAAiBP,EAAQsC,EAClC,CACQ/B,iBAAiBP,EAAgBsC,GACrC,GAAItC,EAAQ,EACP3O,KAAKR,MAAMiH,QAAQC,QAAQM,QAAQgB,kBAAoBhI,KAAKR,MAAMiH,QAAQC,QAAQM,QAAQoK,oBAC3FrK,EAAAA,EAAAA,GAAU/G,KAAKR,MAAMiH,QAAQC,QAAQM,QAAS2H,EAAQ3O,KAAKiO,YAAajO,KAAK8N,6BAC7E/G,EAAAA,EAAAA,GAAU/G,KAAKR,MAAMiH,QAAQC,QAAQM,QAASyG,EAAYkB,GAAS3O,KAAKmO,eAAgBnO,KAAK8N,4BAC7F,IAAIQ,EAAM2C,EAAYrC,MAAM,KAAK,IACjC7H,EAAAA,EAAAA,GAAU/G,KAAKR,MAAMiH,QAAQC,QAAQM,QAASsH,EAAK,oBAAqBtO,KAAK8N,4BAC7EjE,OAAOwH,SAAS5F,OAAOwF,GAE/B,EAEJ,mDCtPO,MAAMxJ,EAAYA,CAAC6J,EAAaC,KAEnC,MAAM7B,EAAe4B,EAAOE,IAAID,GAEhC,OAAI7B,GAAgBA,EAAa3P,OAAS2P,EAAa3P,MAAMmI,OAAS,EAC3DwH,EAAa3P,WAEpB,GAKKgH,EAAYA,CAACC,EAAcjH,EAAewR,EAAoBE,KACnE1R,GACAiH,EAAQ0K,IAAIH,EAAYxR,EAAO,CAAE4R,KAAM,IAAKC,OAAQH","sources":["webpack://Citta2.0/./src/modules/citta-newsletter-subscribe/citta-newsletter-subscribe.tsx?15cf","webpack://Citta2.0/./src/modules/citta-newsletter-subscribe-pop-up/citta-newsletter-subscribe-pop-up.tsx?a77a","webpack://Citta2.0/./src/modules/citta-pop-up-copy/citta-pop-up-copy.tsx?7afb","webpack://Citta2.0/./src/modules/citta-newsletter-subscribe-pop-up/citta-newsletter-subscribe-pop-up.view.tsx?26ed","webpack://Citta2.0/./src/modules/citta-newsletter-subscribe/citta-newsletter-subscribe.view.tsx?ab87","webpack://Citta2.0/./src/modules/citta-pop-up-copy/citta-pop-up-copy.view.tsx?7967","webpack://Citta2.0/./src/themes/citta/views/site-picker.view.tsx?7d8d","webpack://Citta2.0/./src/shared-utils/cookie-utilities.ts?6237"],"sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { Button, IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport * as MsDyn365 from '@msdyn365-commerce/core';\r\nimport classnames from 'classnames';\r\nimport { computed } from 'mobx';\r\nimport * as React from 'react';\r\nimport ReCAPTCHA from 'react-google-recaptcha';\r\nimport { ICittaNewsletterSubscribeData } from './citta-newsletter-subscribe.data';\r\nimport { ICittaNewsletterSubscribeProps } from './citta-newsletter-subscribe.props.autogenerated';\r\nimport { SetCookie } from '../../shared-utils/cookie-utilities';\r\n\r\ninterface ICittaNewsletteSubscriberFormState {\r\n emailAddress: string;\r\n privacyPolicyChecked: boolean;\r\n eAValError: boolean;\r\n eAError: boolean;\r\n pPCError: boolean;\r\n rCCError: boolean;\r\n reqError: boolean;\r\n responseReceived: boolean;\r\n responseError: boolean;\r\n responseSuccess: boolean;\r\n reCaptchaChecked: boolean;\r\n}\r\n\r\nexport interface ICittaSubscribeNewsletterForm {\r\n FormWrapper: INodeProps;\r\n FormContainer: INodeProps;\r\n emailInput: React.ReactNode;\r\n checkboxPrivacyPolicy: React.ReactNode;\r\n reCaptcha: React.ReactNode;\r\n subscribeButtton: React.ReactNode;\r\n subscribeThanks: React.ReactNode;\r\n}\r\n\r\nexport interface ICittaNewsletterSubscribeViewProps extends ICittaNewsletterSubscribeProps {\r\n SubscribeWrapper: IModuleProps;\r\n subscribeResponse: React.ReactNode;\r\n subscribeForm: ICittaSubscribeNewsletterForm;\r\n responseSuccess: boolean;\r\n userEmail: React.ReactNode;\r\n}\r\n\r\n/**\r\n *\r\n * CittaNewsletterSubscribe component\r\n * @extends {React.PureComponent>}\r\n */\r\n\r\nclass CittaNewsletterSubscribe extends React.PureComponent, ICittaNewsletteSubscriberFormState> {\r\n private _EmailAddressInputRef: React.RefObject;\r\n private _PrivacyPolicyRef: React.RefObject;\r\n private _recaptchaRef: React.RefObject;\r\n\r\n private emailAddressValue: boolean = false;\r\n\r\n private formInputValues: boolean = false;\r\n\r\n private responseMessage: string | undefined;\r\n\r\n private moduleClassName: string = 'newsletterSubWrap';\r\n\r\n private _newsletterCookieName: string = 'cittaSignUp';\r\n\r\n private recaptchaErrorMessage: string | undefined;\r\n\r\n @computed public get userEmail(): Readonly {\r\n const customer = this.props.data.accountInformation?.result;\r\n return customer ? customer.Email : '';\r\n }\r\n\r\n constructor(props: ICittaNewsletterSubscribeProps) {\r\n super(props);\r\n this._EmailAddressInputRef = React.createRef();\r\n this._PrivacyPolicyRef = React.createRef();\r\n this._recaptchaRef = React.createRef();\r\n this._handleSubscribe = this._handleSubscribe.bind(this);\r\n\r\n this.state = {\r\n emailAddress: '',\r\n privacyPolicyChecked: false,\r\n eAValError: false,\r\n eAError: false,\r\n pPCError: false,\r\n rCCError: false,\r\n reqError: false,\r\n responseReceived: false,\r\n responseError: false,\r\n reCaptchaChecked: false,\r\n responseSuccess: false\r\n };\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const viewProps: ICittaNewsletterSubscribeViewProps = {\r\n ...(this.props as ICittaNewsletterSubscribeProps),\r\n SubscribeWrapper: {\r\n moduleProps: this.props,\r\n className: classnames(this.moduleClassName)\r\n },\r\n subscribeResponse: this._getSubscribeResponse(),\r\n subscribeForm: this._renderForm(),\r\n responseSuccess: this.state.responseSuccess,\r\n userEmail: this._renderHiddenEmailAddress()\r\n };\r\n\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n private _renderHiddenEmailAddress(): React.ReactNode {\r\n return (\r\n this.userEmail && \r\n {this.userEmail}\r\n );\r\n }\r\n \r\n private _getSubscribeResponse(): React.ReactNode {\r\n return (\r\n this.state.responseReceived && this.responseMessage !== '' || undefined\r\n ? (\r\n
\r\n

{this.responseMessage}

\r\n
\r\n )\r\n : null\r\n );\r\n }\r\n\r\n private onRecaptchaChange = (value: string | null) => {\r\n if (value) {\r\n this.setState({ reCaptchaChecked: true, rCCError: false });\r\n } else {\r\n this.setState({ reCaptchaChecked: false });\r\n }\r\n }\r\n\r\n private _renderForm(): ICittaSubscribeNewsletterForm {\r\n return {\r\n FormWrapper: {\r\n className: 'newsletter-subscription',\r\n },\r\n FormContainer: {\r\n className: 'newsletter-subscription-div',\r\n },\r\n emailInput: this._renderEmailInput(),\r\n checkboxPrivacyPolicy: this._renderCheckboxPrivacyPolicy(),\r\n reCaptcha: this._renderReCaptcha(),\r\n subscribeButtton: this._renderSubscribeButton(),\r\n subscribeThanks: this._renderSubscribeThanks()\r\n };\r\n }\r\n\r\n private _renderEmailInput(): React.ReactNode {\r\n return (\r\n
\r\n {this.state.eAError || this.state.eAValError ? this._renderAlert('email-address-input') : ''}\r\n \r\n
\r\n );\r\n }\r\n\r\n private _renderAlert(className: string): JSX.Element {\r\n return <>;\r\n }\r\n\r\n private _renderCheckboxPrivacyPolicy(): React.ReactNode {\r\n return (\r\n
\r\n {this.state.pPCError ? this._renderAlert('checkbox-privacy-policy') : ''}\r\n
\r\n \r\n \r\n

{this.props.config.privacyPolicyText}Privacy Policy

\r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n private _renderReCaptcha(): React.ReactNode {\r\n return (\r\n
\r\n {\r\n this.props.config.reCaptchaOption ?
\r\n {this.state.rCCError ? this._renderRecaptchaAlert('recaptcha-error') : ''}\r\n \r\n
: null\r\n }\r\n
\r\n );\r\n }\r\n\r\n private _renderRecaptchaAlert(className: string): JSX.Element {\r\n\r\n if (this.props.config.reCaptchaOption) {\r\n if (!this.state.reCaptchaChecked) {\r\n this.recaptchaErrorMessage = this.props.resources.recaptchaErrorMessage;\r\n }\r\n }\r\n\r\n const rCCError = this.state.rCCError;\r\n return (\r\n <>\r\n {rCCError && (\r\n \r\n {\r\n this.recaptchaErrorMessage &&\r\n <>\r\n \r\n )}\r\n \r\n );\r\n }\r\n\r\n private _renderSubscribeButton(): React.ReactNode {\r\n return (\r\n
\r\n {this.props.config.subscribeButtonLabel}\r\n \r\n
\r\n );\r\n }\r\n\r\n private _renderSubscribeThanks(): React.ReactNode {\r\n return (\r\n
\r\n
\r\n Thanks!\r\n
\r\n
\r\n );\r\n }\r\n\r\n private _handleChange = (name: string) => (e: React.ChangeEvent) => {\r\n const value = e.target.value;\r\n switch (name) {\r\n case 'emailAddress': {\r\n this.setState({ emailAddress: value, eAError: false, reqError: false, eAValError: false, pPCError: false });\r\n break;\r\n }\r\n case 'privacyPolicy': {\r\n const isChecked = this._PrivacyPolicyRef.current && this._PrivacyPolicyRef.current.checked ? this._PrivacyPolicyRef.current.checked : false;\r\n const recaptchaWrapper = document.querySelector('.recaptcha');\r\n recaptchaWrapper && recaptchaWrapper.classList.toggle('newsletter-recapture-visable', !isChecked);\r\n this.setState({ privacyPolicyChecked: isChecked, reqError: false, eAValError: false, pPCError: false });\r\n break;\r\n }\r\n default: {\r\n console.log('No input box changes');\r\n this.setState({ reqError: false, eAValError: false, pPCError: false });\r\n }\r\n }\r\n }\r\n\r\n private _isEmailValid = (email: string): boolean => {\r\n const regex = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n return regex.test(email);\r\n };\r\n\r\n private async _handleSubscribe(e: React.MouseEvent | React.KeyboardEvent | React.FormEvent): Promise {\r\n this.emailAddressValue = (this._EmailAddressInputRef && this._EmailAddressInputRef.current && this._EmailAddressInputRef.current.value) ? true : false;\r\n\r\n const eA = (this._EmailAddressInputRef && this._EmailAddressInputRef.current && this._EmailAddressInputRef.current.value) ? this._EmailAddressInputRef.current.value : '';\r\n const eAVal = this._EmailAddressInputRef.current!.value;\r\n\r\n if (!this.emailAddressValue) {\r\n this.setState({\r\n eAError: true,\r\n reqError: true\r\n });\r\n } else if (!this._isEmailValid(eAVal)) {\r\n this.setState({\r\n eAValError: true\r\n });\r\n } else if (this.props.config.reCaptchaOption && !this.state.reCaptchaChecked) {\r\n this.setState({\r\n rCCError: true\r\n });\r\n } else if (!this._PrivacyPolicyRef.current!.checked) {\r\n this.setState({\r\n privacyPolicyChecked: false,\r\n pPCError: true\r\n });\r\n } else {\r\n this.formInputValues = (this.emailAddressValue) ? true : false;\r\n if (this.formInputValues && this.state.privacyPolicyChecked && !this.state.eAValError) {\r\n try {\r\n await this._postEmailContact(eA);\r\n\r\n this._clearValues();\r\n this._recaptchaRef.current?.reset();\r\n } catch (e) {\r\n console.log(e, 'Please fill the form!');\r\n }\r\n }\r\n }\r\n }\r\n\r\n private async _postEmailContact(email: string): Promise {\r\n // NB in test the post body will need to look like this: { content: { emailAddress: email } }\r\n /* tslint:disable */\r\n const response = await MsDyn365.commerceApiRequest(\r\n this.props.context.request,\r\n 'PostContact',\r\n 'post',\r\n {\r\n emailAddress: email,\r\n country: this.props.config.country,\r\n emarsysGroup: this.props.config.emarsysGroup\r\n }\r\n \r\n ) as any;\r\n \r\n this.responseMessage = response?.data.Message;\r\n this.setState({\r\n responseReceived: true,\r\n responseError: response?.data.Result === 'Error',\r\n responseSuccess: response?.data.Result !== 'Error',\r\n emailAddress: '',\r\n privacyPolicyChecked: false,\r\n reqError: false,\r\n eAValError: false,\r\n rCCError: false\r\n });\r\n\r\n if (response?.data.Result !== 'Error') {\r\n SetCookie(this.props.context.request.cookies, 'HIDE', this._newsletterCookieName, this.props.config.cookieAge || 30* 24 * 60 * 60)\r\n }\r\n /* tslint:enable */\r\n }\r\n\r\n private _clearValues(): void {\r\n if (this._PrivacyPolicyRef.current) {\r\n this._PrivacyPolicyRef.current.checked = false;\r\n const recaptchaWrapper = document.querySelector('.recaptcha');\r\n recaptchaWrapper && recaptchaWrapper.classList.toggle('newsletter-recapture-visable', true);\r\n }\r\n\r\n if (this._EmailAddressInputRef.current) {\r\n this._EmailAddressInputRef.current!.value = '';\r\n }\r\n }\r\n}\r\n\r\nexport default CittaNewsletterSubscribe;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport * as React from 'react';\r\nimport { Button, INodeProps} from '@msdyn365-commerce-modules/utilities';\r\nimport { ICittaNewsletterSubscribePopUpData } from './citta-newsletter-subscribe-pop-up.data';\r\nimport { ICittaNewsletterSubscribePopUpProps } from './citta-newsletter-subscribe-pop-up.props.autogenerated';\r\nimport { GetCookie, SetCookie } from '../../shared-utils/cookie-utilities';\r\nexport interface ICittaNewsletterSubscribePopUpState {\r\n cookieValue?: string;\r\n}\r\nexport interface ICittaNewsletterSubscribePopUpViewProps extends ICittaNewsletterSubscribePopUpProps {\r\n newsletterSubscribe: React.ReactNode[];\r\n message: String;\r\n header: String;\r\n closeButton?: INodeProps;\r\n MessageTextProps: INodeProps;\r\n HeaderTextProps: INodeProps;\r\n cookieValue: string;\r\n // state: ICittaNewsletterSubscribePopUpState;\r\n}\r\n\r\n/**\r\n *\r\n * CittaNewsletterSubscribePopUp component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass CittaNewsletterSubscribePopUp extends React.PureComponent, ICittaNewsletterSubscribePopUpState> {\r\n private _newsletterCookieName: string = 'cittaSignUp';\r\n private _timer: any;\r\n constructor(props: ICittaNewsletterSubscribePopUpViewProps) {\r\n super(props);\r\n const cookieValue = GetCookie(props.context.request.cookies, this._newsletterCookieName);\r\n\r\n this.state = {\r\n cookieValue\r\n };\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const {\r\n slots, \r\n config,\r\n context\r\n } = this.props;\r\n const isConsentGiven = context && context.request && context.request.cookies && context.request.cookies.isConsentGiven();\r\n\r\n \r\n if(!this.props.slots || !this.props.slots.newsletterSubscribe || !this.props.slots.newsletterSubscribe.length) {\r\n this.props.context.telemetry.error('newsletter slots content is empty, module wont render');\r\n return null;\r\n }\r\n\r\n if (this.state.cookieValue !== 'HIDE') {\r\n this.checkCookie();\r\n }\r\n\r\n if (this.state.cookieValue === 'HIDE' || !isConsentGiven) {\r\n this.stopTimer();\r\n return null;\r\n }\r\n\r\n const viewprops = {\r\n ...this.props,\r\n newsletterSubscribe: slots && slots.newsletterSubscribe,\r\n message: config.message,\r\n header: config.header || 'keep in touch',\r\n closeButton: this._renderCloseLink(),\r\n MessageTextProps: { className: 'ms-message__content' },\r\n HeaderTextProps: { className: 'ms-header__content' },\r\n cookieValue: this.state.cookieValue\r\n }\r\n\r\n return this.props.renderView(viewprops);\r\n }\r\n\r\n private checkCookie = () => {\r\n if(!this._timer) {\r\n this._timer = setInterval(()=> {\r\n const cookieValue = GetCookie(this.props.context.request.cookies, this._newsletterCookieName);\r\n if (cookieValue === 'HIDE') {\r\n this.setState({cookieValue: 'HIDING'})\r\n setTimeout(() => {\r\n this.setState({cookieValue: cookieValue })\r\n }, 3000)\r\n }\r\n }, 1000)\r\n }\r\n }\r\n\r\n private stopTimer = () => {\r\n clearInterval(this._timer);\r\n }\r\n\r\n private _renderCloseLink = () => {\r\n return (\r\n this._setCookie()}\r\n >x\r\n )\r\n };\r\n\r\n private _setCookie = () => {\r\n const { config } = this.props;\r\n this.setState({cookieValue: 'HIDING'})\r\n SetCookie(this.props.context.request.cookies, 'HIDE', this._newsletterCookieName, config.cookieAge || 2592000)\r\n setTimeout(() => {\r\n this.setState({cookieValue: 'HIDE'})\r\n }, 3000)\r\n }\r\n}\r\n\r\nexport default CittaNewsletterSubscribePopUp;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport * as React from 'react';\r\nimport classnames from 'classnames';\r\nimport { getRichTextHtml } from '@msdyn365-commerce/core';\r\nimport ReCAPTCHA from 'react-google-recaptcha';\r\nimport * as MsDyn365 from '@msdyn365-commerce/core';\r\nimport { Button, IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport { Image, IImageSettings } from '@msdyn365-commerce/core';\r\nimport { computed } from 'mobx';\r\nimport { ICittaPopUpCopyData } from './citta-pop-up-copy.data';\r\nimport { ICittaPopUpCopyProps } from './citta-pop-up-copy.props.autogenerated';\r\nimport { GetCookie, SetCookie } from '../../shared-utils/cookie-utilities';\r\nexport interface ICittaPopUpCopyState {\r\n cookieValue?: string;\r\n // firstName: string;\r\n // lastName: string;\r\n emailAddress: string;\r\n eAValError: boolean;\r\n eAError: boolean;\r\n fNError: boolean;\r\n lNError: boolean;\r\n rCCError: boolean;\r\n reqError: boolean;\r\n responseError: boolean;\r\n responseSuccess: boolean;\r\n responseReceived: boolean;\r\n showResponseSuccess: boolean;\r\n reCaptchaChecked: boolean;\r\n // firstNameErrorClass: string;\r\n // lastNameErrorClass: string;\r\n emailErrorClass: string;\r\n}\r\n\r\nexport interface ICittaPopUpCopyForm {\r\n FormWrapper: INodeProps;\r\n FormContainer: INodeProps;\r\n // firstAndLastNameInput: React.ReactNode;\r\n emailInput: React.ReactNode;\r\n reCaptcha: React.ReactNode;\r\n subscribeButtton: React.ReactNode;\r\n subscribeThanks: React.ReactNode;\r\n}\r\nexport interface ICittaPopUpCopyViewProps extends ICittaPopUpCopyProps {\r\n message: String;\r\n image: Image;\r\n cookieValue: string;\r\n closeButton: INodeProps\r\n MessageTextProps: INodeProps;\r\n ImageTextProps: INodeProps;\r\n isMobile: boolean;\r\n SubscribeWrapper: IModuleProps;\r\n subscribeForm:ICittaPopUpCopyForm;\r\n subscribeResponse: React.ReactNode;\r\n responseSuccess: boolean;\r\n showResponseSuccess: boolean;\r\n formErrors: React.ReactNode;\r\n formErrorsNodeProps: INodeProps;\r\n successResponse: React.ReactNode;\r\n showSuccessResponse: boolean;\r\n successResponseNodeProps: INodeProps;\r\n}\r\n\r\nexport type GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\r\n\r\n/**\r\n *\r\n * CittaPopUpCopy component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass CittaPopUpCopy extends React.PureComponent, ICittaPopUpCopyState> {\r\n // private _FirstNameInputRef: React.RefObject;\r\n // private _LastNameInputRef: React.RefObject;\r\n private _EmailAddressInputRef: React.RefObject;\r\n private _recaptchaRef: React.RefObject;\r\n\r\n // private firstNameValue: boolean = false;\r\n // private lastNameValue: boolean = false;\r\n private emailAddressValue: boolean = false;\r\n private formInputValues: boolean = false;\r\n private responseMessage: string | undefined;\r\n private moduleClassName: string = 'newsletterSubWrap';\r\n private recaptchaErrorMessage: string | undefined;\r\n\r\n\r\n @computed get isMobile(): boolean {\r\n return (this._viewport === 'xs' || this._viewport === 'sm');\r\n }\r\n private _viewport: GridSize;\r\n private _internationalCookieName: string = 'cittainternational';\r\n private _timer: any;\r\n\r\n constructor(props: ICittaPopUpCopyProps) {\r\n super(props);\r\n // this._FirstNameInputRef = React.createRef();\r\n // this._LastNameInputRef = React.createRef();\r\n this._EmailAddressInputRef = React.createRef();\r\n this._recaptchaRef = React.createRef();\r\n const cookieValue = GetCookie(props.context.request.cookies, this._internationalCookieName);\r\n this._viewport = props.context.request && props.context.request.device && props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\r\n this._handleSubmit = this._handleSubmit.bind(this);\r\n\r\n this.state = {\r\n cookieValue,\r\n // firstName: '',\r\n // lastName: '',\r\n emailAddress: '',\r\n fNError: false,\r\n lNError: false,\r\n eAError: false,\r\n eAValError: false,\r\n rCCError: false,\r\n reqError: false,\r\n responseReceived: false,\r\n responseError: false,\r\n reCaptchaChecked: false,\r\n responseSuccess: false,\r\n showResponseSuccess: false,\r\n // firstNameErrorClass: 'hide',\r\n // lastNameErrorClass: 'hide',\r\n emailErrorClass: 'hide',\r\n };\r\n \r\n this._updateViewport = this._updateViewport.bind(this);\r\n }\r\n\r\n public componentDidMount(): void {\r\n if (MsDyn365.msdyn365Commerce.isBrowser && window.addEventListener) {\r\n window.addEventListener('resize', this._updateViewport);\r\n this._updateViewport();\r\n }\r\n }\r\n\r\n public componentWillUnmount(): void {\r\n if (MsDyn365.msdyn365Commerce.isBrowser && window.removeEventListener) {\r\n window.removeEventListener('resize', this._updateViewport);\r\n }\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const {\r\n context\r\n } = this.props;\r\n const isConsentGiven = context && context.request && context.request.cookies && context.request.cookies.isConsentGiven();\r\n\r\n if (this.state.cookieValue !== 'HIDE') {\r\n this.checkCookie();\r\n }\r\n\r\n if (this.state.cookieValue === 'HIDE' || !isConsentGiven) {\r\n this.stopTimer();\r\n return null;\r\n }\r\n\r\n const viewprops = {\r\n ...this.props,\r\n image: this._renderImage(),\r\n message: this._renderMessage(),\r\n closeButton: this._renderCloseLink(),\r\n SubscribeWrapper: {\r\n moduleProps: this.props,\r\n className: classnames(this.moduleClassName, this.props.config.className)\r\n },\r\n\r\n isMobile: this.isMobile,\r\n MessageTextProps: { className: 'ms-message__content' },\r\n ImageTextProps: { className: 'ms-image__content' },\r\n cookieValue: this.state.cookieValue,\r\n subscribeResponse: this._getSubmitResponse(),\r\n subscribeForm: this._renderForm(),\r\n responseSuccess: this.state.responseSuccess,\r\n showResponseSuccess: this.state.showResponseSuccess,\r\n formErrors: this._renderErrors(),\r\n formErrorsNodeProps: {\r\n className: 'competition-form-errors'\r\n },\r\n successResponse: this._renderSuccessResponse(),\r\n showSuccessResponse: this.state.responseSuccess,\r\n successResponseNodeProps: {\r\n className: 'competition-form-success'\r\n }\r\n };\r\n\r\n return this.props.renderView(viewprops) as React.ReactElement;\r\n }\r\n\r\n private _renderImage(): React.ReactNode {\r\n const gridSettings = this.props.context.request.gridSettings;\r\n\r\n let defaultImageSettings: IImageSettings = {\r\n viewports: {\r\n xs: { q: `w=480&h=680&m=6`, w: 0, h: 0 },\r\n lg: { q: `w=480&h=680&m=6`, w: 0, h: 0 },\r\n xl: { q: `w=480&h=680&m=6`, w: 0, h: 0 }\r\n },\r\n lazyload: true\r\n };\r\n\r\n let image = this.props.config.desktopImage;\r\n // if (this.isMobile) {\r\n // image = this.props.config.mobileImage;\r\n // defaultImageSettings = {\r\n // viewports: {\r\n // xs: { q: `w=680&h=480&m=6`, w: 0, h: 0 },\r\n // lg: { q: `w=680&h=480&m=6`, w: 0, h: 0 },\r\n // },\r\n // lazyload: true\r\n // };\r\n // } \r\n\r\n return (\r\n
\r\n {this.isMobile? null :\r\n }\r\n
\r\n );\r\n }\r\n private _getSubmitResponse(): React.ReactNode {\r\n return (\r\n this.state.responseReceived && this.responseMessage !== '' || undefined\r\n ? (\r\n
\r\n

{this.responseMessage}

\r\n
\r\n )\r\n : null\r\n );\r\n }\r\n \r\n private _renderSuccessResponse(): React.ReactNode {\r\n return (\r\n this.state.responseSuccess\r\n ? (\r\n
\r\n

{this.props.config.successTextResponse}

\r\n
\r\n )\r\n : null\r\n );\r\n }\r\n\r\n private _renderForm(): ICittaPopUpCopyForm {\r\n return {\r\n FormWrapper: {\r\n className: 'competition-form',\r\n },\r\n FormContainer: {\r\n className: 'competition-form-div',\r\n },\r\n // firstAndLastNameInput: this._renderFirstAndLastNameInput(),\r\n emailInput: this._renderEmailInput(),\r\n subscribeButtton: this._renderSubmitButton(),\r\n subscribeThanks: this._renderSubmitThanks(),\r\n reCaptcha: this._renderReCaptcha(),\r\n };\r\n }\r\n\r\n // private _renderFirstAndLastNameInput(): React.ReactNode {\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\r\n private _renderEmailInput(): React.ReactNode {\r\n return (\r\n
\r\n {this.state.eAError || this.state.eAValError ? this._renderAlert('email-address-input') : ''}\r\n \r\n
\r\n );\r\n }\r\n\r\n\r\n private _renderAlert(className: string): JSX.Element {\r\n return <>;\r\n }\r\n\r\n private _renderRecaptchaAlert(className: string): JSX.Element {\r\n\r\n if (this.props.config.reCaptchaOption) {\r\n if (!this.state.reCaptchaChecked) {\r\n this.recaptchaErrorMessage = this.props.resources.recaptchaErrorMessage;\r\n }\r\n }\r\n\r\n const rCCError = this.state.rCCError;\r\n return (\r\n <>\r\n {rCCError && (\r\n \r\n {\r\n this.recaptchaErrorMessage &&\r\n <>\r\n \r\n )}\r\n \r\n );\r\n }\r\n\r\n private _renderReCaptcha(): React.ReactNode {\r\n return (\r\n
\r\n
\r\n {this.state.rCCError ? this._renderRecaptchaAlert('recaptcha-error') : ''}\r\n this._submit()}\r\n />\r\n
\r\n
\r\n );\r\n }\r\n\r\n private _renderSubmitButton(): React.ReactNode {\r\n return (\r\n
\r\n {this.props.config.submitButtonLabel || 'subscribe'}\r\n \r\n
\r\n );\r\n }\r\n\r\n private _renderSubmitThanks(): React.ReactNode {\r\n return (\r\n
\r\n
\r\n Thanks!\r\n
\r\n
\r\n );\r\n }\r\n\r\n private _showErrors = (): void => {\r\n this.setState({\r\n emailErrorClass: this._checkEmailError() ? 'show' : 'hide',\r\n // firstNameErrorClass: (this._FirstNameInputRef.current && this._FirstNameInputRef.current.value.length === 0) ? 'show' : 'hide',\r\n // lastNameErrorClass: (this._LastNameInputRef.current && this._LastNameInputRef.current.value.length === 0) ? 'show' : 'hide',\r\n });\r\n }\r\n private _isEmailValid = (email: string): boolean => {\r\n const regex = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n return regex.test(email);\r\n };\r\n\r\n private _checkEmailError = (): boolean => {\r\n const email: string = this._EmailAddressInputRef.current && this._EmailAddressInputRef.current.value || '';\r\n if (email.length === 0) {\r\n return true;\r\n } else {\r\n return !this._isEmailValid(email);\r\n }\r\n }\r\n\r\n private _renderErrors = (): JSX.Element => {\r\n const {resources} = this.props;\r\n return (\r\n <>\r\n {/*
\r\n {resources.firstNameError}\r\n
\r\n
\r\n {resources.lastNameError}\r\n
*/}\r\n
\r\n {resources.emailError}\r\n
\r\n \r\n \r\n );\r\n }\r\n\r\n\r\n private _handleChange = (name: string) => (e: React.ChangeEvent | React.ChangeEvent) => {\r\n const value = e.target.value;\r\n switch (name) {\r\n // case 'firstName': {\r\n // this.setState({ firstName: value, fNError: false, reqError: false, eAValError: false});\r\n // break;\r\n // }\r\n // case 'lastName': {\r\n // this.setState({ lastName: value, lNError: false, reqError: false, eAValError: false});\r\n // break;\r\n // }\r\n case 'emailAddress': {\r\n this.setState({ emailAddress: value, eAError: false, reqError: false, eAValError: false});\r\n break;\r\n }\r\n default: {\r\n console.log('No input box changes');\r\n this.setState({ reqError: false, eAValError: false});\r\n }\r\n }\r\n }\r\n\r\n private _handleSubmit(e: React.MouseEvent | React.KeyboardEvent | React.FormEvent) {\r\n this._recaptchaRef.current?.execute()\r\n }\r\n\r\n private async _submit(): Promise {\r\n this._showErrors();\r\n \r\n // this.firstNameValue = (this._FirstNameInputRef && this._FirstNameInputRef.current && this._FirstNameInputRef.current.value) ? true : false;\r\n // this.lastNameValue = (this._LastNameInputRef && this._LastNameInputRef.current && this._LastNameInputRef.current.value) ? true : false;\r\n this.emailAddressValue = (this._EmailAddressInputRef && this._EmailAddressInputRef.current && this._EmailAddressInputRef.current.value) ? true : false; \r\n\r\n // const fN = (this._FirstNameInputRef && this._FirstNameInputRef.current && this._FirstNameInputRef.current.value) ? this._FirstNameInputRef.current.value : '';\r\n // const lN = (this._LastNameInputRef && this._LastNameInputRef.current && this._LastNameInputRef.current.value) ? this._LastNameInputRef.current.value : '';\r\n const eA = (this._EmailAddressInputRef && this._EmailAddressInputRef.current && this._EmailAddressInputRef.current.value) ? this._EmailAddressInputRef.current.value : '';\r\n const eAVal = this._EmailAddressInputRef.current!.value;\r\n\r\n const recaptchaValue = this._recaptchaRef.current?.getValue();\r\n // console.log('recaptchaValue', recaptchaValue, this._recaptchaRef.current);\r\n\r\n // if (!this.firstNameValue) {\r\n // this.setState({\r\n // fNError: true,\r\n // reqError: true\r\n // });\r\n // this._recaptchaRef.current?.reset();\r\n // } else if (!this.lastNameValue) {\r\n // this.setState({\r\n // lNError: true,\r\n // reqError: true\r\n // });\r\n // this._recaptchaRef.current?.reset();\r\n // } else if (!this.emailAddressValue) {\r\n if (!this.emailAddressValue) {\r\n this.setState({\r\n eAError: true,\r\n reqError: true\r\n });\r\n this._recaptchaRef.current?.reset();\r\n } else if (!this._isEmailValid(eAVal)) {\r\n this.setState({\r\n eAValError: true\r\n });\r\n this._recaptchaRef.current?.reset();\r\n } else if (!recaptchaValue) {\r\n this.setState({\r\n rCCError: true\r\n });\r\n this._recaptchaRef.current?.reset();\r\n } else {\r\n this.formInputValues = (this.emailAddressValue) ? true : false;\r\n if (this.formInputValues && !this.state.eAValError) {\r\n try {\r\n // await this._postEntry(fN, lN, eA);\r\n await this._postEntry(eA);\r\n\r\n this._clearValues();\r\n this._recaptchaRef.current?.reset();\r\n } catch (e) {\r\n console.log(e, 'Please fill in the form!');\r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n // private async _postEntry(firstName: string, lastName: string, email: string): Promise {\r\n private async _postEntry(email: string): Promise {\r\n // NB in test the post body will need to look like this: { content: { emailAddress: email } }\r\n /* tslint:disable */\r\n\r\n let emarsysGroupId = this.props.config.emarsysGroupId;\r\n \r\n const response = await MsDyn365.commerceApiRequest(\r\n this.props.context.request,\r\n 'PostPopUpCopy',\r\n 'post',\r\n {\r\n // firstName: firstName,\r\n // lastName: lastName,\r\n emailAddress: email,\r\n country: this.props.config.country,\r\n emarsysGroupId: emarsysGroupId,\r\n optIn:true\r\n }\r\n \r\n ) as any;\r\n \r\n this.responseMessage = response?.data.Message;\r\n\r\n if (response?.data.Result !== 'Error') {\r\n this.setState({\r\n responseReceived: true,\r\n responseError: response?.data.Result === 'Error',\r\n responseSuccess: response?.data.Result !== 'Error',\r\n showResponseSuccess: true,\r\n emailAddress: '',\r\n // firstName: '',\r\n // lastName: '',\r\n reqError: false,\r\n eAValError: false,\r\n rCCError: false\r\n });\r\n\r\n setTimeout(this._setCookie, 1500)\r\n\r\n } else {\r\n this.setState({\r\n responseReceived: true,\r\n responseError: response?.data.Result === 'Error',\r\n responseSuccess: response?.data.Result !== 'Error',\r\n emailAddress: '',\r\n reqError: false,\r\n eAValError: false,\r\n rCCError: false\r\n });\r\n }\r\n }\r\n\r\n private _clearValues(): void {\r\n \r\n if (this._EmailAddressInputRef.current) {\r\n this._EmailAddressInputRef.current!.value = '';\r\n }\r\n // if (this._FirstNameInputRef.current) {\r\n // this._FirstNameInputRef.current!.value = '';\r\n // }\r\n // if (this._LastNameInputRef.current) {\r\n // this._LastNameInputRef.current!.value = '';\r\n // }\r\n }\r\n\r\n private _renderMessage(): React.ReactNode {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n\r\n private checkCookie = () => {\r\n if(!this._timer) {\r\n this._timer = setInterval(()=> {\r\n const cookieValue = GetCookie(this.props.context.request.cookies, this._internationalCookieName);\r\n if (cookieValue === 'HIDE') {\r\n this.setState({cookieValue: cookieValue })\r\n }\r\n }, 1000)\r\n }\r\n }\r\n\r\n private stopTimer = () => {\r\n clearInterval(this._timer);\r\n }\r\n\r\n private _renderCloseLink = () => {\r\n return (\r\n this._setCookie()}\r\n >x\r\n )\r\n };\r\n\r\n private _setCookie = () => {\r\n const { config } = this.props;\r\n this.setState({cookieValue: 'HIDING'})\r\n SetCookie(this.props.context.request.cookies, 'HIDE', this._internationalCookieName, config.cookieAge || 2592000)\r\n setTimeout(() => {\r\n this.setState({cookieValue: 'HIDE'})\r\n }, 3000)\r\n }\r\n\r\n private _getViewport(): GridSize {\r\n const { context } = this.props;\r\n\r\n // always render in mobile viewport on a mobile device\r\n if (context.request && context.request.device && context.request.device.Type === 'Mobile') {\r\n return 'xs';\r\n }\r\n\r\n if (MsDyn365.msdyn365Commerce.isBrowser && window.innerWidth) {\r\n const gridSettings = context.request.gridSettings;\r\n if (gridSettings) {\r\n if (gridSettings.xs && window.innerWidth <= gridSettings.xs.w) {\r\n return 'xs';\r\n } else if (gridSettings.sm && window.innerWidth <= gridSettings.sm.w) {\r\n return 'sm';\r\n } else if (gridSettings.md && window.innerWidth <= gridSettings.md.w) {\r\n return 'md';\r\n } else if (gridSettings.lg && window.innerWidth <= gridSettings.lg.w) {\r\n return 'lg';\r\n } else {\r\n return 'xl';\r\n }\r\n }\r\n }\r\n\r\n return 'lg';\r\n }\r\n\r\n private _updateViewport(): void {\r\n this._viewport = this._getViewport();\r\n }\r\n}\r\n\r\nexport default CittaPopUpCopy;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport * as React from 'react';\r\nimport { Node } from '@msdyn365-commerce-modules/utilities';\r\n\r\nimport { ICittaNewsletterSubscribePopUpViewProps } from './citta-newsletter-subscribe-pop-up';\r\n\r\nexport default (props: ICittaNewsletterSubscribePopUpViewProps) => {\r\n const { \r\n newsletterSubscribe,\r\n message,\r\n header,\r\n closeButton,\r\n MessageTextProps,\r\n HeaderTextProps,\r\n cookieValue\r\n } = props;\r\n\r\n if(!newsletterSubscribe || !newsletterSubscribe.length) {\r\n props.context.telemetry.error('newsletter content is empty, module wont render');\r\n return null;\r\n }\r\n return (\r\n
\r\n
\r\n {closeButton}\r\n
\r\n {header &&
{header}
}\r\n {message &&

{message}

}\r\n\r\n {newsletterSubscribe}\r\n
\r\n );\r\n};\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { ICittaNewsletterSubscribeViewProps } from './citta-newsletter-subscribe';\r\n\r\n/**\r\n *\r\n * ICittaProductSkuView component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class ICittaNewsletterSubscribeView extends React.PureComponent {\r\n\r\n public render(): JSX.Element | null {\r\n const { SubscribeWrapper, subscribeResponse, subscribeForm, responseSuccess, userEmail } = this.props;\r\n const { FormWrapper, FormContainer, emailInput, checkboxPrivacyPolicy, subscribeButtton, reCaptcha, subscribeThanks } = subscribeForm;\r\n return (\r\n \r\n {subscribeResponse}\r\n \r\n \r\n {emailInput}\r\n {checkboxPrivacyPolicy}\r\n {reCaptcha}\r\n {responseSuccess ? subscribeThanks : subscribeButtton}\r\n {userEmail}\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\nexport default ICittaNewsletterSubscribeView;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport * as React from 'react';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\n\r\nimport { ICittaPopUpCopyViewProps } from './citta-pop-up-copy';\r\n\r\nexport default (props: ICittaPopUpCopyViewProps) => {\r\n const {\r\n message,\r\n closeButton,\r\n image,\r\n cookieValue,\r\n MessageTextProps,\r\n isMobile,\r\n ImageTextProps,\r\n subscribeForm,\r\n SubscribeWrapper,\r\n subscribeResponse,\r\n responseSuccess,\r\n showResponseSuccess,\r\n formErrors,\r\n formErrorsNodeProps,\r\n successResponseNodeProps,\r\n showSuccessResponse,\r\n successResponse\r\n } = props;\r\n\r\n const {\r\n FormWrapper,\r\n FormContainer,\r\n // firstAndLastNameInput,\r\n emailInput,\r\n subscribeButtton,\r\n subscribeThanks,\r\n reCaptcha,\r\n } = subscribeForm;\r\n\r\n return (\r\n
\r\n
\r\n
\r\n {closeButton}\r\n
\r\n
\r\n {image &&

{image}

}\r\n {message && \r\n

{message}

\r\n \r\n {subscribeResponse}\r\n {showSuccessResponse ?\r\n \r\n {successResponse}\r\n \r\n : \r\n \r\n {/* {firstAndLastNameInput} */}\r\n {emailInput}\r\n {reCaptcha}\r\n {responseSuccess && showResponseSuccess ? subscribeThanks : subscribeButtton}\r\n \r\n \r\n {formErrors}\r\n \r\n \r\n }\r\n \r\n
}\r\n
\r\n
\r\n
\r\n );\r\n};\r\n","// @ts-nockeck\r\n/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n// @ts-nockeck\r\nimport { ISitePickerViewProps } from '@msdyn365-commerce-modules/site-picker/src/modules/site-picker/./site-picker';\r\nimport { Button, Module, Popover } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { GetCookie, SetCookie } from '../../../shared-utils/cookie-utilities';\r\n\r\ninterface ISitePickerState {\r\n bottomPopoverOpen: boolean;\r\n requestedMarket: string;\r\n}\r\nenum Market {\r\n NZ = 'NZL',\r\n AU = 'AUS',\r\n US = 'USA'\r\n}\r\nenum MarketShort {\r\n NZL = 'NZ',\r\n AUS = 'AU',\r\n USA = 'US'\r\n}\r\n\r\nconst country = {\r\n NZL:'New Zealand',\r\n AUS:'Australia',\r\n USA: 'United States'\r\n}\r\n\r\n/**\r\n *\r\n * SitePickerView component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class SitePickerView extends React.PureComponent {\r\n private _locationInputRef: React.RefObject;\r\n private _cookieExpirationInSeconds: number = this.props.context.app.config.marketPreferenceCookieAge && this.props.context.app.config.marketPreferenceCookieAge || 2592000;\r\n private _cookieName: string = this.props.context.app.config.marketPreferenceCookieName && this.props.context.app.config.marketPreferenceCookieName || '_msdyn365___market_preference';\r\n private _geoCookieName: string = 'd365mkt';\r\n private _hasOpenedCookieName: string = '_msdyn365___market_preference_has_opened';\r\n constructor(props: ISitePickerViewProps) {\r\n super(props);\r\n this._onCountryChange = this._onCountryChange.bind(this);\r\n this._togglePopover = this._togglePopover.bind(this);\r\n this._selectMarket = this._selectMarket.bind(this);\r\n\r\n // refs\r\n this._locationInputRef = React.createRef();\r\n\r\n this.getMarket = this.getMarket.bind(this);\r\n this.state = {\r\n bottomPopoverOpen: false,\r\n requestedMarket: ''\r\n };\r\n }\r\n public componentDidMount(): void {\r\n const hasOpenedCookie = GetCookie(this.props.context.request.cookies, this._hasOpenedCookieName);\r\n\r\n if (!hasOpenedCookie || hasOpenedCookie !== 'true') {\r\n const url = this.props.context.request.url && this.props.context.request.url.requestUrl && this.props.context.request.url.requestUrl.href;\r\n const requestedMarket = this.getMarket(url);\r\n // Auto-trigger if no market cookie saved and has not opened before\r\n const marketCookie = GetCookie(this.props.context.request.cookies, this._cookieName);\r\n if (!marketCookie || (marketCookie && marketCookie !== requestedMarket)) {\r\n this.setState({\r\n bottomPopoverOpen: true,\r\n requestedMarket: requestedMarket\r\n });\r\n }\r\n\r\n SetCookie(this.props.context.request.cookies, 'true', this._hasOpenedCookieName, this._cookieExpirationInSeconds);\r\n } \r\n else {\r\n const url = this.props.context.request.url && this.props.context.request.url.requestUrl && this.props.context.request.url.requestUrl.href;\r\n const requestedMarket = this.getMarket(url);\r\n\r\n this.setState({\r\n requestedMarket: requestedMarket\r\n });\r\n }\r\n }\r\n public render(): JSX.Element | null {\r\n const { SitePicker } = this.props;\r\n const { requestedMarket } = this.state;\r\n\r\n return (\r\n \r\n {this._renderMarketPickerButton()}\r\n {this._renderMarketPickerPopOver(requestedMarket)}\r\n {this._renderMarketPickerMobile(requestedMarket)}\r\n \r\n );\r\n }\r\n private getMarket = (url: string = ''): string => {\r\n let indexOfCountry = 3;\r\n if (url.indexOf('test.') > 0 || url.indexOf('cittab.') > 0) {\r\n indexOfCountry = 4;\r\n }\r\n let market = (url && url.length > 0) \r\n ? (url.indexOf('//') > -1 \r\n ? ((url.split('/')[indexOfCountry] === undefined || url.split('/')[indexOfCountry] === \"nz\"|| (url.split('/')[indexOfCountry].length > 2 && url.split('/')[indexOfCountry].toLowerCase() !== 'international' && url.split('/')[indexOfCountry].toLowerCase() !== 'intl'&& url.split('/')[indexOfCountry].toLowerCase() !== 'us') || url.split('/')[indexOfCountry] === '') \r\n ? Market.NZ \r\n : url.split('/')[indexOfCountry].toUpperCase()) \r\n : Market.NZ) \r\n : '';\r\n\r\n if (market === 'AU') {\r\n market = Market.AU;\r\n } else if (market.toLowerCase() === 'international' || market.toLowerCase() === 'intl' || market.toLowerCase() === 'us') { \r\n market = Market.US;\r\n }\r\n return market;\r\n };\r\n\r\n private _togglePopover(): void {\r\n this.setState({\r\n bottomPopoverOpen: !this.state.bottomPopoverOpen\r\n });\r\n //scroll to bottom.\r\n if(!this.state.bottomPopoverOpen) {\r\n var objDiv = document.getElementsByClassName(\"msc-modal\")[0];\r\n objDiv.scrollTop = objDiv.scrollHeight;\r\n }\r\n }\r\n private _renderMarketPickerButton(): React.ReactNode {\r\n const url = this.props.context.request.url && this.props.context.request.url.requestUrl && this.props.context.request.url.requestUrl.href;\r\n const requestedMarket = this.getMarket(url);\r\n return (\r\n <>\r\n \r\n {'Delivery'}\r\n {country[requestedMarket]}\r\n \r\n {/* {requestedMarket}\r\n */}\r\n \r\n \r\n );\r\n }\r\n private _renderMarketPickerMobile(requestedMarket: string): React.ReactNode {\r\n const siteOptions=this.props.config.siteOptions && this.props.config.siteOptions ;\r\n return (\r\n
\r\n { siteOptions && siteOptions.map((item, index) => (\r\n \r\n
\r\n {this._mapCountryName(item.siteName)}\r\n
\r\n \r\n ))\r\n }\r\n
\r\n );\r\n }\r\n\r\n private _mapCountryName(siteName?: string): string {\r\n return siteName && country[siteName] || country['INT'];\r\n }\r\n\r\n private _renderMarketPickerPopOver(requestedMarket: string): React.ReactNode {\r\n const siteOptions=this.props.config.siteOptions && this.props.config.siteOptions;\r\n return (\r\n \r\n\r\n
\r\n

Select your delivery country

\r\n { siteOptions && siteOptions.map((item, index) => (\r\n \r\n
\r\n {this._mapCountryName(item.siteName)}\r\n \r\n
\r\n \r\n ))\r\n }\r\n
\r\n \r\n );\r\n }\r\n\r\n\r\n private _selectMarket(event: React.MouseEvent): void {\r\n event.preventDefault();\r\n const redirectUrl = event.currentTarget.href;\r\n let market = Market.NZ;\r\n \r\n if(event.currentTarget.text === 'Australia') {\r\n market = Market.AU;\r\n } else if(event.currentTarget.text === 'United States') {\r\n market = Market.US;\r\n } else {\r\n market = Market.NZ;\r\n }\r\n const url = this.props.context.request.url && this.props.context.request.url.requestUrl && this.props.context.request.url.requestUrl.href;\r\n const requestedMarket = this.getMarket(url);\r\n if (market && market === requestedMarket) {\r\n // SAVE COOKIE ANYWAY\r\n SetCookie(this.props.context.request.cookies, market, this._cookieName, this._cookieExpirationInSeconds);\r\n SetCookie(this.props.context.request.cookies, 'false', this._hasOpenedCookieName, this._cookieExpirationInSeconds);\r\n SetCookie(this.props.context.request.cookies, MarketShort[market], this._geoCookieName, this._cookieExpirationInSeconds)\r\n let url = redirectUrl.split('?')[0]\r\n SetCookie(this.props.context.request.cookies, url, '_msdyn365___site_', this._cookieExpirationInSeconds)\r\n\r\n this._togglePopover();\r\n return;\r\n }\r\n this._onCountryChange(market, redirectUrl);\r\n }\r\n private _onCountryChange(market: Market, redirectUrl:string): void {\r\n if (market) {\r\n !this.props.context.request.cookies.isConsentGiven() && this.props.context.request.cookies.setConsentCookie();\r\n SetCookie(this.props.context.request.cookies, market, this._cookieName, this._cookieExpirationInSeconds);\r\n SetCookie(this.props.context.request.cookies, MarketShort[market], this._geoCookieName, this._cookieExpirationInSeconds)\r\n let url = redirectUrl.split('?')[0]\r\n SetCookie(this.props.context.request.cookies, url, '_msdyn365___site_', this._cookieExpirationInSeconds)\r\n window.location.assign(redirectUrl);\r\n }\r\n }\r\n}\r\nexport default SitePickerView;\r\n","import { ICookieValue } from '@msdyn365-commerce/core';\r\n\r\n// tslint:disable-next-line: no-any\r\nexport const GetCookie = (cookie: any, cookieName: string): string | undefined => {\r\n // tslint:disable-next-line: prefer-type-cast\r\n const marketCookie = cookie.get(cookieName) as ICookieValue | undefined;\r\n\r\n if (marketCookie && marketCookie.value && marketCookie.value.length > 0) {\r\n return marketCookie.value;\r\n } else {\r\n return undefined;\r\n }\r\n};\r\n\r\n// tslint:disable-next-line: no-any\r\nexport const SetCookie = (cookies: any, value: string, cookieName: string, exp: number): void => {\r\n if (value) {\r\n cookies.set(cookieName, value, { path: '/', maxAge: exp });\r\n }\r\n};"],"names":["CittaNewsletterSubscribe","React","constructor","props","super","emailAddressValue","formInputValues","moduleClassName","_newsletterCookieName","onRecaptchaChange","value","this","setState","reCaptchaChecked","rCCError","_handleChange","name","e","target","emailAddress","eAError","reqError","eAValError","pPCError","isChecked","_PrivacyPolicyRef","current","checked","recaptchaWrapper","document","querySelector","classList","toggle","privacyPolicyChecked","console","log","_isEmailValid","email","test","_EmailAddressInputRef","_recaptchaRef","_handleSubscribe","bind","state","responseReceived","responseError","responseSuccess","userEmail","_this$props$data$acco","customer","data","accountInformation","result","Email","render","viewProps","_objectSpread","SubscribeWrapper","moduleProps","className","classnames","subscribeResponse","_getSubscribeResponse","subscribeForm","_renderForm","_renderHiddenEmailAddress","renderView","style","display","responseMessage","FormWrapper","FormContainer","emailInput","_renderEmailInput","checkboxPrivacyPolicy","_renderCheckboxPrivacyPolicy","reCaptcha","_renderReCaptcha","subscribeButtton","_renderSubscribeButton","subscribeThanks","_renderSubscribeThanks","_renderAlert","ref","type","onChange","required","placeholder","config","emailInputPlaceholder","id","privacyPolicyText","href","privacyPolicyLink","reCaptchaOption","_renderRecaptchaAlert","ReCAPTCHA","sitekey","reCaptchaSiteKey","recaptchaErrorMessage","resources","role","Button","title","subscribeButtonLabel","color","onClick","async","eA","eAVal","_this$_recaptchaRef$c","_postEmailContact","_clearValues","reset","response","MsDyn365","context","request","country","emarsysGroup","Message","Result","SetCookie","cookies","cookieAge","__decorate","computed","CittaNewsletterSubscribePopUp","checkCookie","_timer","setInterval","cookieValue","GetCookie","setTimeout","stopTimer","clearInterval","_renderCloseLink","_setCookie","slots","isConsentGiven","newsletterSubscribe","length","telemetry","error","viewprops","message","header","closeButton","MessageTextProps","HeaderTextProps","CittaPopUpCopy","_internationalCookieName","_showErrors","emailErrorClass","_checkEmailError","_renderErrors","emailError","_viewport","device","Type","_handleSubmit","fNError","lNError","showResponseSuccess","_updateViewport","isMobile","componentDidMount","isBrowser","window","addEventListener","componentWillUnmount","removeEventListener","image","_renderImage","_renderMessage","ImageTextProps","_getSubmitResponse","formErrors","formErrorsNodeProps","successResponse","_renderSuccessResponse","showSuccessResponse","successResponseNodeProps","gridSettings","defaultImageSettings","viewports","xs","q","w","h","lg","xl","lazyload","desktopImage","Image","Object","assign","altText","imageSettings","loadFailureBehavior","successTextResponse","_renderSubmitButton","_renderSubmitThanks","size","_submit","submitButtonLabel","execute","_this$_recaptchaRef$c2","recaptchaValue","getValue","_this$_recaptchaRef$c3","_this$_recaptchaRef$c6","_postEntry","_this$_recaptchaRef$c5","_this$_recaptchaRef$c4","emarsysGroupId","optIn","dangerouslySetInnerHTML","getRichTextHtml","popoverMessage","_getViewport","innerWidth","sm","md","Node","ICittaNewsletterSubscribeView","Module","Market","MarketShort","NZL","AUS","USA","SitePickerView","_cookieExpirationInSeconds","app","marketPreferenceCookieAge","_cookieName","marketPreferenceCookieName","_geoCookieName","_hasOpenedCookieName","getMarket","url","arguments","undefined","indexOfCountry","indexOf","market","split","toLowerCase","NZ","toUpperCase","AU","US","_onCountryChange","_togglePopover","_selectMarket","_locationInputRef","bottomPopoverOpen","requestedMarket","hasOpenedCookie","requestUrl","marketCookie","SitePicker","_renderMarketPickerButton","_renderMarketPickerPopOver","_renderMarketPickerMobile","objDiv","getElementsByClassName","scrollTop","scrollHeight","innerRef","siteOptions","map","item","index","siteName","siteRedirectUrl","destinationUrl","_mapCountryName","Popover","placement","isOpen","event","preventDefault","redirectUrl","currentTarget","text","setConsentCookie","location","cookie","cookieName","get","exp","set","path","maxAge"],"sourceRoot":""}