{"version":3,"file":"static/js/19.008d9a94c8cfce96664f.chunk.js","mappings":";i2BASM,MAAOA,EASTC,YACIC,EACAC,EACAC,EACAC,EACAC,GAbY,KAAAC,sBAAkC,CAAC,2BAA4B,OAAQ,mBAAoB,SAsBpG,KAAAC,kBAAoB,CACvBC,EACAC,EACAC,KAEKC,KAAKC,oBACNC,UAAUC,KAAKC,WAAW,6BAA8B,CACpDC,SAAUA,KAAK,IAAAC,EACX,MAAMC,EAAOC,EAAAA,EAAA,GACNR,KAAKT,oBAAkB,IAC1BE,YAAaO,KAAKP,cAEtBO,KAAKC,mBAAqB,IAAIC,UAAUC,KAAKM,mBAAmBF,GAChEP,KAAKC,mBAAmBS,kBAAkBb,EAASC,EAAaC,GACjC,QAA/BO,EAAAK,SAASC,cAAcf,UAAQ,IAAAS,GAA/BA,EAAiCO,aAAa,OAAQ,YACtDC,YAAW,KAAK,IAAAC,EACmB,QAA/BA,EAAAJ,SAASC,cAAcf,UAAQ,IAAAkB,GAA/BA,EAAiCF,aAAa,OAAQ,UACvD,IAEPG,cAAeA,KACPhB,KAAKV,WACLU,KAAKV,UAAU2B,MAAM,uCAG7BC,YAAalB,KAAKmB,kBAKvB,KAAAC,gCAAmC3B,IAClCO,KAAKC,qBACLD,KAAKT,mBAAmBE,YAAcA,EACtCO,KAAKC,mBAAmBoB,WAAWrB,KAAKT,sBAIzC,KAAA+B,mBAAqB,KAAW,IAAAC,EAAAC,EACZ,QAAvBD,EAAAvB,KAAKC,0BAAkB,IAAAsB,GAAvBA,EAAyBE,oBACF,QAAvBD,EAAAxB,KAAKC,0BAAkB,IAAAuB,GAAvBA,EAAyBE,UACzB1B,KAAKC,wBAAqB0B,GAGvB,KAAAC,YAAcC,MAAAA,UACXC,EAA0BC,WAAW,CACvCC,IAAKhC,KAAKmB,eACVc,KAAMjC,KAAKP,YACXyC,OAAQlC,KAAKN,qBArDjBM,KAAKV,UAAYA,EACjBU,KAAKT,mBAAqBA,EAC1BS,KAAKmB,eAAiB3B,EACtBQ,KAAKP,YAAcA,EACnBO,KAAKN,kBAAoBA,6BCd3B,MAAOyC,EAIT9C,YAAY+C,EAAyBC,GAK9B,KAAAC,YAAc,KAAMC,EAAAA,EAAAA,eAAc,qBAAqBvC,KAAKoC,kBAAmBpC,KAAKqC,aACpF,KAAAG,mBAAqB,IAAM,oBAC3B,KAAAC,cAAgB,IAAiB,UANpCzC,KAAKoC,gBAAkBA,EACvBpC,KAAKqC,YAAcA,GAQpBR,eAAea,EAAuBC,EAA+BC,GACxE,OAAOC,EAAAA,EAAAA,wBAAuB,CAAEC,cAAeF,EAAKG,oBAAqB,IAAMJ,EAAMP,kBAG1EY,EAAAA,EAAAA,IAA2B,CACtCC,OAAsCP,ICvBpC,MAAOQ,EAKT7D,YAAY8D,EAAuBC,EAA6B9D,GAMzD,KAAA+D,0BAA4B,CAACjB,EAAyBkB,EAAqCpB,KAC9F,MAAMqB,EAAgBrB,GAAU,KAC1BsB,EAAuBF,EAAeG,MAAKC,IAAkBA,EAAcC,SAAW,MAAQJ,IACpG,OAAQC,GAAwBA,EAAqBI,iBAAoBxB,GAGtE,KAAAyB,qBAAwBT,IACpB,CACHU,WAAYV,EAAUW,yBACtBC,aAAcZ,EAAUa,6BAIzB,KAAAC,oBAAsB,IAClBlE,KAAKmD,QAAQgB,QAAQC,KAAKC,gBAG9B,KAAAC,kBAAoBzC,MAAAA,IACvB,IAAI0C,EAAgC,GACpC,GAAIvE,KAAKmD,SAAWnD,KAAKmD,QAAQqB,cAC7B,IACI,MAAM7B,EAAQ,IAAIR,EAAuBC,EAAiBpC,KAAKmD,QAAQgB,QAAQ9B,aAC/EkC,QAAiB7B,EAAuBC,EAAO3C,KAAKmD,QAAQqB,eAC9D,MAAOC,GACDzE,KAAKV,YACLU,KAAKV,UAAUmF,MAAM,qBAAqBA,KAC1CzE,KAAKV,UAAU2B,MAAM,kCAIjC,OAAOyD,QAAQC,QAAQJ,IAIpB,KAAAK,QAAWC,KACVA,GAAWA,EAAQC,0BAA4BD,EAAQE,MAOxD,KAAAC,mBAAsBH,GAClB7E,KAAKiF,sBAAsBC,EAAAA,WAAYL,GAG3C,KAAAM,sBAAyBN,GACrB7E,KAAKiF,sBAAsBG,EAAAA,cAAeP,GAG9C,KAAAQ,6BAAgCR,GAC5B7E,KAAKiF,sBAAsBK,EAAAA,qBAAsBT,GAGpD,KAAAI,sBAAwB,CAACM,EAA6CV,KAC1EA,EAAQW,iBAAmBX,EAAQW,kBAAoB,EAEvD,MAAM7C,EAAQ,IAAI8C,EAAAA,uBAAuBZ,GACzC,OAAO7E,KAAK0F,kBAAkBH,EAAe5C,EAAOkC,IAGhD,KAAAa,kBAAoB7D,MACxB0D,EACA5C,EACAkC,KAEA,IAAIN,EAA6B,GAEjC,GAAIvE,KAAKmD,SAAWnD,KAAKmD,QAAQqB,cAC7B,IACI,MAAMmB,QAAkBJ,EAAc5C,EAAO3C,KAAKmD,QAAQqB,eAC1D,GAAImB,EAAUC,OAAS,EAAG,CACtB,MAAMC,EAAiBF,EAAUlC,MAC7BqC,GACIA,EAAWC,OAASlB,EAAQkB,MAC5BD,EAAWN,mBAAqBX,EAAQW,kBACxCM,EAAWf,OAASF,EAAQE,MAC5Be,EAAWE,QAAUnB,EAAQmB,OAC7BF,EAAWG,QAAUpB,EAAQoB,OAC7BH,EAAWI,SAAWrB,EAAQqB,QAC9BJ,EAAWhB,2BAA6BD,EAAQC,0BAChDgB,EAAWK,UAAYtB,EAAQsB,UAEvC5B,EAASM,QAAUA,EAAQuB,SAAWvB,EAAUgB,GAAkCF,EAAUA,EAAUC,OAAS,QAE/GrB,EAASM,QAAUA,EAEvBN,EAAS8B,kBAAoBV,EAC/B,MAAOlB,GACDzE,KAAKV,YACLU,KAAKV,UAAUmF,MAAM,qBAAqBA,KAC1CzE,KAAKV,UAAU2B,MAAM,kCAEzBsD,EAAWvE,KAAK6D,qBAAqB7D,KAAKoD,WAGlD,OAAOsB,QAAQC,QAAQJ,IArGvBvE,KAAKmD,QAAUA,EACfnD,KAAKoD,UAAYA,EACjBpD,KAAKV,UAAYA,OCnBbgH,EAMAC,EAKAC,ECRAC,EAOAC,QDVZ,SAAYJ,GACRA,EAAA,cACAA,EAAA,oBACAA,EAAA,oBAHJ,CAAYA,IAAAA,EAAsB,KAMlC,SAAYC,GACRA,EAAA,oBACAA,EAAA,gBAFJ,CAAYA,IAAAA,EAAyB,KAKrC,SAAYC,GACRA,EAAAA,EAAA,kBACAA,EAAAA,EAAA,oBACAA,EAAAA,EAAA,4BACAA,EAAAA,EAAA,0CACAA,EAAAA,EAAA,qBACAA,EAAAA,EAAA,eACAA,EAAAA,EAAA,mBACAA,EAAAA,EAAA,iBACAA,EAAAA,EAAA,uDACAA,EAAAA,EAAA,mBACAA,EAAAA,EAAA,uBACAA,EAAAA,EAAA,+BACAA,EAAAA,EAAA,2CACAA,EAAAA,EAAA,sBACAA,EAAAA,EAAA,wBACAA,EAAAA,EAAA,sBACAA,EAAAA,EAAA,4CAjBJ,CAAYA,IAAAA,EAAe,KESrB,MAAOG,EAKTtH,YAAYuH,EAAyCC,EAAkCC,GAyChF,KAAAC,gCAAkC,CACrCC,EACAC,KAEA,MAAMC,EAAmB,CACrBlF,IAAK,GACLmF,MAAOH,GAELI,EAAsC,GAO5C,OALAA,EAAaZ,EAAgBA,EAAgB1B,2BAA6B9E,KAAKqH,mBAC/ED,EAAaZ,EAAgBA,EAAgBP,QAAUjG,KAAKsH,eAAeL,GAC3EG,EAAaZ,EAAgBA,EAAgBP,QAAQsB,QAAQL,GAC7DE,EAAaZ,EAAgBA,EAAgBhB,mBAAqBxF,KAAKwH,uBAEhEJ,GAGJ,KAAAK,0BAA6BrF,GACNpC,KAAK0H,sBAAsBtF,GAE3BuB,QAGvB,KAAAgE,sBAAwB,CAC3B9C,EACA+C,EACAxF,EACAyF,KAEA,IACIC,EADAC,GAAmB,EAavB,OAXsB/H,KAAKgI,iBAAiBnD,EAAQC,0BAA4B1C,GAElE6F,SAAQC,MACbL,GAAiBA,GAAgBK,EAAkBC,OAASN,KAC7DC,EAAgB9H,KAAKoI,iBAAiBF,EAAmBN,EAAiB/C,QACpDlD,IAAlBmG,IACAC,EAAUD,OAKfC,GAGJ,KAAAM,qBAAuB,CAACC,EAA0CrB,KACrE,MAAMpC,EAAmB,GAUzB,QAPkClD,IAA9B2G,EAAOzD,QAAQ0D,WACf1D,EAAQsB,QAAUmC,EAAOzD,QAAQ0D,WAEjC1D,EAAQsB,QAAU,GAIlBc,EAAmB,CACnB,MAAMuB,EAAgBvB,EAAkBxD,MAAKgF,GAASA,EAAMC,YAAcJ,EAAOzD,QAAQ8D,gBACpFH,GAID3D,EAAQoB,MAAQuC,EAAcI,QAC9B/D,EAAQ6D,UAAYF,EAAcE,YAJlC7D,EAAQoB,MAAQ,GAChBpB,EAAQ6D,UAAYJ,EAAOzD,QAAQ8D,eAgC3C,YAxBmChH,IAA/B2G,EAAOzD,QAAQgE,YACfhE,EAAQqB,OAASoC,EAAOzD,QAAQgE,YAEhChE,EAAQqB,OAAS,SAIWvE,IAA5B2G,EAAOzD,QAAQiE,SACfjE,EAAQE,KAAOuD,EAAOzD,QAAQiE,SAE9BjE,EAAQE,KAAO,QAIapD,IAA5B2G,EAAOzD,QAAQkE,UACflE,EAAQmE,aAAeV,EAAOzD,QAAQkE,SACtClE,EAAQoE,WAAaX,EAAOzD,QAAQkE,UAEpClE,EAAQmE,aAAe,GAI3BnE,EAAQqE,YAAcZ,EAAOzD,QAAQsE,iBAE9BtE,GAeH,KAAAuE,eAAiB,CAACvE,EAAkBgD,EAAsBwB,KAC9D,GAAIA,EAAeC,OAASD,EAAeC,MAAM1D,OAAS,EAAG,CAEzD,OADc,IAAI2D,OAAOF,EAAeC,OAC3BE,MAAKC,EAAAA,EAAAA,IAAI5E,EAASgD,IAAiB,IAEpD,OAAO,GAzJP7H,KAAK4G,mBAAqBA,EAC1B5G,KAAK6G,gBAAkBA,EACvB7G,KAAK8G,gBAAkBA,EAGpBkB,iBAAiB5F,GACpB,MAAMsH,EAAoB1J,KAAK0H,sBAAsBtF,GACrD,OAAIsH,EACO1J,KAAK2J,yBAAyBD,GAElC,GAGJrC,mBACH,OAAQrH,KAAK4G,oBAAsB,IAAIgD,KAAIlG,IAChC,CACH1B,IAAK0B,EAAcE,gBACnBuD,MAAOzD,EAAcmG,cAK1BvC,eAAeL,GAClB,OAAQA,GAAqB,IAAI2C,KAAInB,IAC1B,CACHzG,IAAKyG,EAAMG,QACXzB,MAAOsB,EAAMC,cAKlBlB,uBACH,OAAQxH,KAAK8G,iBAAmB,IAAI8C,KAAIE,IAC7B,CACH9H,IAAK8H,EAAepD,YACpBS,MAAO2C,EAAe/D,SAqG1BqC,iBAAiBF,EAAiCN,EAA0B/C,IAChFkF,EAAAA,EAAAA,IAAInC,EAAiB,CAAE,CAACM,EAAkBC,MAAO,OACjD,IAAK,MAAMkB,KAAkBnB,EAAkB8B,iBAAmB,GAC9D,IAAKhK,KAAKoJ,eAAevE,EAASqD,EAAkBC,KAAMkB,GAItD,OAHAU,EAAAA,EAAAA,IAAInC,EAAiB,CACjB,CAACM,EAAkBC,MAAOkB,EAAeY,WAEtC,EAaXvC,sBAAsBtF,GAC1B,OAAQpC,KAAK4G,oBAAsB,IAAInD,MAAKC,IAChCA,EAAcE,iBAAmB,IAAIsG,gBAAkB9H,EAAgB8H,gBAI/EP,yBAAyBD,GAC7B,MAAMS,EAAqC,GAE3C,GAAIT,GAAqBA,EAAkBU,mBAAoB,CAC3D,MAAMC,EAAkBrK,KAAKsK,4BAA4B9D,EAAgBhB,kBAAkB,GACvF6E,GACAF,EAAmBI,KAAKF,GAG5B,MAAMG,EAAkBxK,KAAKsK,4BAA4B9D,EAAgBT,MAAM,GAC3EyE,GACAL,EAAmBI,KAAKC,GAG5Bd,EAAkBU,mBAAmBnC,SAAQwC,IACzC,GAAIA,EAAWC,0BAA2B,CACtC,MAAMC,EAAc3K,KAAK6G,gBAAgB+D,cAAcH,EAAWC,2BAC9DC,IACAA,EAAYE,UAAYJ,EAAWK,UAAW,EAC9CX,EAAmBI,KAAKI,QAKpC,MAAMI,EAAmB/K,KAAKsK,4BAA4B9D,EAAgBR,OAAO,GAC7E+E,GACAZ,EAAmBI,KAAKQ,GAG5B,MAAMC,EAAuBhL,KAAKsK,4BAA4B9D,EAAgByE,WAAW,GACrFD,GACAb,EAAmBI,KAAKS,GAIhC,OAAOb,EAGHG,4BAA4BY,EAAuBL,GACvD,MAAMF,EAAc3K,KAAK6G,gBAAgB+D,cAAcM,GAIvD,OAHIP,IACAA,EAAYE,UAAYA,GAErBF,GC3NT,MAAOQ,EAST9L,YAAY+D,EAA6BgI,EAA8BC,GAR/D,KAAAC,SAA2B,GAE3B,KAAAC,mBAA6B,MAC7B,KAAAC,gBAA0B,UAC1B,KAAAC,UAAoB,GAKxBzL,KAAKoD,UAAYA,GAAa,GAC9BpD,KAAK0L,cAAgBN,GAAY,GACjCpL,KAAK2L,oBACYhK,IAAb0J,EACMA,EACA,CACI7E,EAAgBT,KAChBS,EAAgBL,QAChBK,EAAgBzB,KAChByB,EAAgBP,MAChBO,EAAgB1B,yBAChB0B,EAAgBN,QAE9BlG,KAAK4L,QAGFhB,cAAciB,GACjB,OAAO7L,KAAKsL,SAAS7H,MAAKqI,GACfA,EAAKZ,OAASW,IAIrBD,QACJ5L,KAAK+L,SAASvF,EAAgBT,KAAMO,EAAuB0F,OAC3DhM,KAAK+L,SAASvF,EAAgBR,MAAOM,EAAuB0F,OAC5DhM,KAAK+L,SAASvF,EAAgBL,QAASG,EAAuB0F,OAC9DhM,KAAK+L,SAASvF,EAAgBzB,KAAMuB,EAAuB0F,OAC3DhM,KAAK+L,SAASvF,EAAgByF,OAAQ3F,EAAuB0F,OAC7DhM,KAAK+L,SAASvF,EAAgBP,MAAOK,EAAuB4F,UAC5DlM,KAAK+L,SAASvF,EAAgB1B,yBAA0BwB,EAAuB4F,UAC/ElM,KAAK+L,SAASvF,EAAgBN,OAAQI,EAAuB0F,OAC7DhM,KAAK+L,SAASvF,EAAgB2F,SAAU7F,EAAuB0F,OAC/DhM,KAAK+L,SAASvF,EAAgB4F,aAAc9F,EAAuB0F,OACnEhM,KAAK+L,SAASvF,EAAgB6F,mBAAoB/F,EAAuB0F,OACzEhM,KAAK+L,SAASvF,EAAgB8F,QAAShG,EAAuB0F,OAC9DhM,KAAK+L,SAASvF,EAAgB+F,SAAUjG,EAAuB0F,OAC/DhM,KAAK+L,SAASvF,EAAgBgG,QAASlG,EAAuB0F,OAC9DhM,KAAK+L,SAASvF,EAAgBiG,mBAAoBnG,EAAuB0F,OACzEhM,KAAK+L,SAASvF,EAAgBhB,iBAAkBc,EAAuB4F,UACvElM,KAAK+L,SAASvF,EAAgByE,UAAW3E,EAAuBoG,UAG5DX,SAASb,EAAuByB,GACpC,GAAI3M,KAAK0L,cAAckB,SAAS1B,GAC5B,OAGJ,MAAM2B,EAAUrG,EAAgB0E,GAAM4B,QAAQ,IAAK,IAG7C9C,EAAkBhK,KAAK+M,iBAAiB7B,EAAM2B,GACpD,IAAIG,GAAa,EACjBhD,EAAgB/B,SAAQgF,IAChBA,EAAK/B,OAAS3E,EAA0B2G,WACxCF,GAAa,MAKrB,MAAMG,EACFnN,KAAKoD,UAAU,GAAGpD,KAAKwL,kBAAkBqB,mBAA2B7M,KAAKoD,UAAU,GAAGpD,KAAKwL,kBAAkBqB,UAC3Gf,EAAqB,CACvBZ,KAAAA,EACAyB,YAAAA,EACAxE,KAAM3B,EAAgB0E,GACtBkC,MAAOJ,EAAahN,KAAKoD,UAAU,GAAGpD,KAAKwL,kBAAkBqB,UAAkBM,EAC/E1B,UAAWzL,KAAKyL,UAChBzB,gBAAiBA,EACjBa,WAAW,GAGf7K,KAAKsL,SAASf,KAAKuB,GAGfiB,iBAAiB7B,EAAuB/C,GAC5C,MAAM6B,EAA4C,GAElD,IAAK,MAAMqD,KAAYC,OAAOC,KAAKhH,GAA4B,CAC3D,MAAMvE,EAAM,GAAGhC,KAAKwL,kBAAkBrD,IAAOkF,IACvCpD,EAAUjK,KAAKoD,UAAU,GAAGpB,iBAClC,OAAQqL,GACJ,KAAK9G,EAA0B2G,SACvBlN,KAAK2L,eAAelI,MAAM+J,GAA8BA,IAAatC,KACrElB,EAAgBO,KAAKvK,KAAKyN,gBAAgBJ,EAAUrN,KAAKuL,mBAAoBtB,KAO7F,OAAOD,EAGHyD,gBAAgBvC,EAAiC5B,EAAeW,GACpE,MAAO,CACHiB,KAAAA,EACA5B,MAAAA,EACAW,QAAAA,KFpHZ,SAAYxD,GACRA,EAAA,UACAA,EAAA,YACAA,EAAA,gBACAA,EAAA,YAJJ,CAAYA,IAAAA,EAAgB,KAO5B,SAAYC,GACRA,EAAA,oBACAA,EAAA,kBACAA,EAAA,kBAHJ,CAAYA,IAAAA,EAAW,YGAvB,MAMA,EAN4CgH,IAAA,IAAC,QAAEzD,GAASyD,EAAA,OACpDC,EAAAA,cAAA,QAAMC,UAAU,0BAA0BC,KAAK,QAAO,YAAW,aAC5D5D,GAAW0D,EAAAA,cAAAA,EAAAA,SAAA,KAAG1D,KCcvB,EAVgDyD,IAAwE,IAAvE,UAAEE,EAAS,KAAEE,EAAI,UAAEC,EAAS,SAAEC,EAAQ,iBAAEC,EAAgB,QAAEC,GAASR,EAChH,MAAMS,GAAUC,EAAAA,EAAAA,kBAAiB,QAASH,EAAmBH,GACvDO,GAAaC,EAAAA,EAAAA,wBAAuBL,EAAmBE,GAC7D,OACIR,EAAAA,cAAA,SAAAL,OAAAiB,OAAA,CAAQX,UAAWA,EAAS,aAAcG,EAAWC,SAAUA,EAAUE,QAASA,GAAaG,GAC1FP,IC2Bb,EA7BkDJ,IAU7C,IAV8C,GAC/C7B,EAAE,KACF1D,EAAI,UACJyF,EAAS,KACT1C,EAAI,UACJsD,EAAS,qBACTC,EAAoB,iBACpBR,EAAgB,UAChBS,EAAS,SACTC,GACHjB,EACG,MAAMS,GAAUC,EAAAA,EAAAA,kBAAiB,QAASH,EAAmB9F,GACvDkG,GAAaC,EAAAA,EAAAA,wBAAuBL,EAAmBE,GAC7D,OACIR,EAAAA,cAAA,QAAAL,OAAAiB,OAAA,CACIpG,KAAMA,EACN0D,GAAIA,EACJ+B,UAAW,GAAGA,YAAoBA,YAAoB1C,IACtDA,KAAK,WACLwD,UAAWA,EAAS,eACNF,EACdG,SAAUA,EACVC,QAASJ,GACJC,GAAwB,GACzBJ,KCNhB,EANkDX,IAAA,IAAC,GAAE7B,EAAE,KAAE1D,EAAI,UAAEyF,EAAS,MAAEzG,EAAK,qBAAEsH,EAAoB,YAAEI,EAAW,SAAEF,GAAUjB,EAAA,OAC1HC,EAAAA,cAAA,SAAAL,OAAAiB,OAAA,CAAQ1C,GAAIA,EAAI+B,UAAW,GAAGA,cAAuBzF,KAAMA,EAAMhB,MAAOA,EAAOwH,SAAUA,GAAeF,GAAwB,IAC3HI,GAAeA,EAAYjF,KAAIkC,GAjBhBgD,EAAC9M,EAAuBmF,EAAgB4H,KAC5D,IAAIC,EAOJ,OALIA,EADe,iBAARhN,EACMA,IAAQ+M,EAEiB,iBAAlBA,IAA+B/M,GAAO,IAAIkI,iBAAmB6E,GAAiB,IAAI7E,cAItGyD,EAAAA,cAAA,UAAQ3L,IAAKA,EAAKmF,MAAOnF,EAAG,gBAAiBgN,GACxC7H,IAOmC2H,CAAgBhD,EAAK9J,IAAK8J,EAAK3E,MAAOA,OCrBtF,EAF0DuG,IAAA,IAAC,QAAEzD,GAASyD,EAAA,OAAKC,EAAAA,cAAA,KAAGC,UAAU,mCAAmC3D,ICE3H,EAFsDyD,IAAA,IAAC,MAAEuB,GAAOvB,EAAA,OAAKC,EAAAA,cAAA,KAAGC,UAAU,iCAAiCqB,ICwCnH,EA9B4CvB,IAWvC,IAXwC,GACzC7B,EAAE,KACF1D,EAAI,UACJyF,EAAS,KACT1C,EAAI,MACJ/D,EAAK,UACLsE,EAAS,qBACTgD,EAAoB,UACpBC,EAAS,iBACTT,EAAgB,SAChBU,GACHjB,EACG,MAAMS,GAAUC,EAAAA,EAAAA,kBAAiB,QAASH,EAAmB9F,GACvDkG,GAAaC,EAAAA,EAAAA,wBAAuBL,EAAmBE,GAC7D,OACIR,EAAAA,cAAA,QAAAL,OAAAiB,OAAA,CACIpG,KAAMA,EACN0D,GAAIA,EACJ+B,UAAW,GAAGA,YAAoBA,YAAoB1C,IACtDA,KAAMA,EACNwD,UAAWA,EACXvH,MAAOA,EACPsE,UAAWA,GACNgD,GAAwB,GACzBJ,EAAU,CACdM,SAAUA,MC5BtB,EAN4CjB,IAAA,IAAC,GAAE7B,EAAE,KAAEiC,GAAMJ,EAAA,OACrDC,EAAAA,cAAA,SAAOC,UAAU,0BAA0BsB,QAASrD,GAC/CiC,ICmEHqB,EAAwBnF,IACJA,GAAmB,IAAIvG,MAAK4F,GACvCA,EAAe6B,OAAS3E,EAA0B2G,WAGvC,CAAE,iBAAiB,GAAS,GAGhDkC,EAAiBA,CAACC,EAA0BC,KAC9C,MAAM,cACFC,EAAa,YACbC,EAAW,oBACXC,EAAmB,uBACnBC,EAAsB,mBACtBC,EAAkB,gBAClB/H,EAAkB,GAAE,cACpBgI,EAAa,iBACbC,GACAP,EAGJ,OAAOC,EAAc3F,KAAI,CAAC1B,EAAmB4H,KACzC,MAAMC,EAAY,GAAGP,EAAYtF,wBAAwBhC,EAAkBC,KAAK+B,gBAC1ElG,GAAeyF,EAAAA,EAAAA,IAAI7B,EAAiBM,EAAkBC,MACtDyF,EAAYoC,GAAAA,CAAU,yBAA0B,0BAA0B9H,EAAkBC,KAAK+B,gBAAiB,CACpH,iCAAkChC,EAAkB2C,UACpD,6BAA8B7G,IAElC,IAAIrB,EAEJ,GAAIuF,EAAkByE,cAAgBrG,EAAuB0F,MACzDrJ,EACIgL,EAAAA,cAACsC,EAAqB3C,OAAAiB,OAAA,GACd,CACA1C,GAAIkE,EACJ5H,KAAMD,EAAkBC,KACxByF,UAAW,mBACX1C,KAAM,OACNwD,UAAqB,IAAVoB,EACX3I,MAAOkI,EAAgBnH,EAAkBC,MACzCsD,UAAWvD,EAAkBuD,UAC7BkD,SAAUiB,EACVnB,qBAAsBU,EAAqBjH,EAAkB8B,yBAItE,GAAI9B,EAAkByE,cAAgBrG,EAAuBoG,SAChE/J,EACIgL,EAAAA,cAACuC,EAAuB5C,OAAAiB,OAAA,GAChB,CACA1C,GAAIkE,EACJ5H,KAAMD,EAAkBC,KACxByF,UAAW,mBACX1C,KAAM,WACNwD,UAAqB,IAAVoB,EACXtB,UAAWa,EAAgBnH,EAAkBC,MAC7CwG,SAAUiB,EACVnB,qBAAsBU,EAAqBjH,EAAkB8B,wBAItE,CACH,MAAM6E,EAAcY,EAAoBvH,EAAkBC,MAC1D,IAAI4G,EAAgBM,EAAgBnH,EAAkBC,MAElDD,EAAkBgD,OAAS1E,EAAgB1B,2BAC3CiK,EAAgBA,GAAiBW,GAGjCxH,EAAkBgD,OAAS1E,EAAgBhB,mBAC3CuJ,EAAgBA,GAAiBY,GAGrChN,EACIgL,EAAAA,cAACwC,EAAuB7C,OAAAiB,OAAA,GAChB,CACA1C,GAAIkE,EACJ5H,KAAMD,EAAkBC,KACxByF,UAAW,mBACXzG,MAAO4H,EACPF,YAAaA,EACbF,SAAUkB,EACVpB,qBAAsBU,EAAqBjH,EAAkB8B,oBAM7E,MAAO,CACHhI,IAAKkG,EAAkBC,KACvBiI,YAAa,CAAExC,UAAWA,EAAW/B,GAAI,GAAGkE,eAC5C3C,MAAOO,EAAAA,cAAC0C,EAAqB/C,OAAAiB,OAAA,GAAK,CAAE1C,GAAIkE,EAAWjC,KAAM5F,EAAkBkF,SAC3EkD,MAAO3C,EAAAA,cAAC4C,EAAqBjD,OAAAiB,OAAA,GAAK,CAAEtE,QAASjG,KAC7CrB,MAAOA,OClInB,EA5BwD+K,IAAuD,IAAtD,UAAE7C,EAAS,YAAE2F,EAAW,UAAEC,EAAS,KAAEtI,EAAI,MAAEhB,GAAOuG,EACvG,MAAME,EAAY,qDAAqDzF,EAAK+B,gBACtEtF,IAAYuC,GAASA,EAAMvB,OAAS,GACpC8K,EAAYF,EACZ,oEAAoEC,IACpET,GAAAA,CAAUpC,EAAW,CACjB,iCAAkChJ,EAClC,mCAAoCiG,IAE9C,OACI8C,EAAAA,cAAA,QAAMC,UAAW8C,GACZF,GACG7C,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAAA,QAAMC,UAAW,GAAGA,WAAoB6C,GACxC9C,EAAAA,cAAA,QACIC,UAAWoC,GAAAA,CAAUpC,EAAW,CAC5B,iCAAkChJ,EAClC,mCAAoCiG,IACtC,eACW,KAIxB1D,ICVAwJ,EAAerB,IACxB,MAAM,cAAEC,EAAa,gBAAEzI,EAAe,QAAEjC,GAAYyK,EAEpD,MAAO,CACHsB,cAAe,CAAEhD,UAAW,sBAC5BiD,MAAOtB,EAAc3F,KAAIkC,IACrB,GAAIA,EAAK3D,OAAS3B,EAAgBA,EAAgBhB,kBAAmB,CACjE,MAAMgK,EAAc1I,EAAgBrD,MAChCqN,GAAoBA,EAAiBpK,YAAYqK,cAAgBlM,EAAQiH,EAAK3D,OAAS,IAAI4I,aAE/F,GAAIvB,EAAa,CACb,MAAMrI,EAAQqI,EAAYzJ,MAAQ,GAClC,MAAO,CACH/D,IAAK8J,EAAK3D,KACV6I,YACIrD,EAAAA,cAACsD,EAA0B3D,OAAAiB,OAAA,GACnB,CACA1D,UAAWiB,EAAKjB,UAChB2F,YAAa1E,EAAKZ,OAAS1E,EAAgBR,MAC3CyK,UAAW3E,EAAKsB,MAChBjF,KAAM2D,EAAK3D,KACXhB,MAAOA,OAO/B,MAAO,CACHnF,IAAK8J,EAAK3D,KACV6I,YACIrD,EAAAA,cAACsD,EAA0B3D,OAAAiB,OAAA,GACnB,CACA1D,UAAWiB,EAAKjB,UAChB2F,YAAa1E,EAAKZ,OAAS1E,EAAgBR,MAC3CyK,UAAW3E,EAAKsB,MAChBjF,KAAM2D,EAAK3D,KACXhB,OAAQtC,EAAQiH,EAAK3D,OAAS,IAAI4I,oBCnBxDG,EAAWA,CAACpB,EAAejL,EAAkByK,KAC/C,MAAM,UAAE3J,EAAS,sBAAEwL,EAAqB,gBAAE9B,GAAoBC,EAExD8B,EAAWvM,EAAQuB,WAAaiJ,EAAgBjJ,SAChDiL,EAAuB,CACzBzC,QAASwC,EACT,eAAgBA,EAChB,eAAgBzL,EAAUC,OAC1B,gBAAiBkK,EAAQ,GAG7B,OACInC,EAAAA,cAACsC,EAAqB3C,OAAAiB,OAAA,GACd,CACAX,UAAW,qBACXzF,KAAM,uBACN+C,KAAM,QACN/D,OAAQtC,EAAQuB,UAAY,IAAI2K,WAChCpC,SAAUwC,EACV1C,qBAAsB4C,EACtBpD,iBAAkBqB,EAAMrB,qBAMlCqD,EAAyBhC,IAC3B,MAAM,UAAE3J,EAAS,cAAE4J,EAAa,gBAAEzI,GAAoBwI,EAEtD,OAAO3J,EAAUiE,KAAI,CAAC/E,EAASiL,KACpB,CACH9N,IAAK6C,EAAQuB,UAAY,EACzBmL,WAAY,CAAE3D,UAAW,4BACzBjL,MAAOuO,EAASpB,EAAOjL,EAASyK,GAChCkC,UAAWb,EAAY,CACnBpB,cAAeA,EAAcvH,iBAAiBnD,EAAQC,0BAA4B,IAClFD,QAASA,EACTiC,gBAAiBA,8kBCnBjC,IAAM2K,EAAN,cAAsC9D,EAAAA,UAwBlCtO,YAAYiQ,GAA4B,IAAAoC,EACpCC,MAAMrC,GArBU,KAAAlN,gBAA0B,MAO1B,KAAAwP,2BAAsC,GAOlD,KAAAjC,mBAA6B,EAG7B,KAAAkC,8BAAwC,kEACxC,KAAAC,mCAA8C,EAyJ9C,KAAAC,0BAA4B,KAChC,MAAMxC,GACFvP,KAAKgS,mBAAqBvL,EAAiBwL,KAAOjS,KAAKkS,cAAchO,sBAC/DlE,KAAKuP,eAEf,MJlEyBD,CAAAA,IAC7B,MAAM,mBACF6C,EAAkB,kBAClBC,EAAiB,gBACjB/C,EAAkB,GAAE,UACpBjM,EAAS,SACTiP,EAAQ,SACRC,EAAQ,OACRC,EAAM,uBACNC,EAAsB,WACtBC,EAAU,sBACVC,EAAqB,iBACrBzE,GACAqB,EACEqD,EAAUtD,EAAgBjJ,SAAW+L,EAAqBC,EAEhE,MAAO,CACHQ,YAAa,CAAEhF,UAAW,oBAC1B+E,QAASA,GAAWhF,EAAAA,cAACkF,EAAAA,QAAOvF,OAAAiB,OAAA,CAACX,UAAU,6BAAgC+E,IACvE9B,MAAOzB,EAAeC,EAAiBC,GACvCwD,kBAAmBN,EACnBO,WAAYR,GACR5E,EAAAA,cAACqF,EAAsB1F,OAAAiB,OAAA,GACf,CACAX,UAAWoC,GAAAA,CAAU,wCAAyC,CAC1D,oCAAqCyC,IAEzC3E,KAAM1K,EAAU6P,sBAChBlF,UAAW3K,EAAU8P,2BACrBlF,SAAUyE,EACVvE,QAASqE,EACTtE,iBAAkBA,KAI9BkF,oBAAqBX,EACrBY,aAAcd,GACV3E,EAAAA,cAACqF,EAAsB1F,OAAAiB,OAAA,GACf,CACAX,UAAW,0CACXE,KAAM1K,EAAUiQ,wBAChBtF,UAAW3K,EAAUkQ,6BACrBpF,QAASoE,EACTrE,iBAAkBA,KAI9BoE,SAAUA,IAAY,EACtB5N,MAAO,CACH8O,aAAc,CAAE3F,UAAW,2BAC3BqB,MAAOyD,GAAyBA,EAAsB5O,YAClD6J,EAAAA,cAAC6F,EAA0BlG,OAAAiB,OAAA,GAAK,CAAEU,MAAOyD,EAAsB5O,YAAc,MAEjFmG,QAASyI,GAAyBA,EAAsB1O,cACpD2J,EAAAA,cAAC8F,EAA4BnG,OAAAiB,OAAA,GAAK,CAAEtE,QAASyI,EAAsB1O,cAAgB,SIYpF0P,CAAiB,CACpBjB,WAAYzS,KAAKyS,WACjBrP,UAAWpD,KAAKoD,UAChBoM,YAAa9I,EAAYiN,SACzBpE,cAAeA,EAAcvH,iBAAiBhI,KAAK4T,iBAAiB9O,0BAA4B9E,KAAKoC,iBACrGsN,uBAAwB1P,KAAKoC,gBAC7BuN,mBAAoB3P,KAAK2P,mBACzBN,gBAAiBrP,KAAK4T,iBACtBhM,gBAAiB5H,KAAK4H,gBACtByK,SAAUrS,KAAKqS,SACfK,sBAAuB1S,KAAK0S,sBAC5BzE,iBAAkBjO,KAAKiO,iBACvBwB,oBAAqBF,EAAcxI,gCAC/B/G,KAAKoD,UAAUyQ,iCACf7T,KAAKiH,mBAET2I,cAAe5P,KAAK8T,+BACpBjE,iBAAkB7P,KAAK+T,kCACvBvB,uBAAwBxS,KAAKsP,MAAM0E,YAAYxB,uBAC/CD,OAAQvS,KAAKiU,SAEb3B,SAAWtS,KAAKqP,iBAAoBrP,KAAKkS,cAAchO,sBAAmClE,KAAKkU,WAAhB,UAI/E,KAAAC,qBAAuB,IDpLL7E,CAAAA,IAC1B,MAAM,UAAElM,EAAS,SAAEkP,EAAQ,OAAEC,EAAM,aAAE6B,EAAY,uBAAE5B,GAA2BlD,EAE9E,MAAO,CACH+E,cAAe,CAAEzG,UAAW,sBAC5B0G,UACI3G,EAAAA,cAACqF,EAAsB1F,OAAAiB,OAAA,GACf,CACAX,UAAW,iCACXE,KAAM1K,EAAUmR,qBAChBxG,UAAW3K,EAAUoR,0BACrBtG,QAASkG,EACTnG,iBAAkBqB,EAAMrB,oBAIpC6E,kBAAmBN,EACnBO,WACIpF,EAAAA,cAACqF,EAAsB1F,OAAAiB,OAAA,GACf,CACAX,UAAW,kCACXE,KAAM1K,EAAU6P,sBAChBlF,UAAW3K,EAAU8P,2BACrBhF,QAASqE,EACTtE,iBAAkBqB,EAAMrB,oBAIpCkF,oBAAqBX,EACrBY,aACIzF,EAAAA,cAACqF,EAAsB1F,OAAAiB,OAAA,GACf,CACAX,UAAW,oCACXE,KAAM1K,EAAUiQ,wBAChBtF,UAAW3K,EAAUkQ,6BACrBpF,QAASoE,EACTrE,iBAAkBqB,EAAMrB,oBAIpC4C,MAAOS,EAAsBhC,KC6ItBmF,CAAc,CACjBlF,cAAevP,KAAKuP,cACpB5J,UAAW3F,KAAKqG,kBAChBjD,UAAWpD,KAAKoD,UAChB0D,gBAAiB9G,KAAK8G,gBACtBuI,gBAAiBrP,KAAK4R,2BACtBT,sBAAuBnR,KAAK0U,uBAC5BlC,uBAAwBxS,KAAKsP,MAAM0E,YAAYxB,uBAC/CvE,iBAAkBjO,KAAKiO,iBACvBmG,aAAcpU,KAAK2U,gBACnBpC,OAAQvS,KAAK4U,iBAEbtC,SAAWtS,KAAKqP,gBAA6BrP,KAAKkU,WAAhB,SAgBlC,KAAAW,sBAAwBhT,UAC5B,MACIiT,MACIhT,2BAA6BwG,OAAQxG,KAEzC9B,KAAKsP,MAEsC,IAAAyF,EAA3CjT,MAAAA,GAAAA,EAA2BkT,iBACX,QAAhBD,EAAA/U,KAAKiV,mBAAW,IAAAF,GAAhBA,EAAkBnV,kBAAkB,0BAA2B,oCAAqCI,KAAKkV,yBAKzG,KAAAA,sBAAwBrT,MAAAA,IAC5B7B,KAAKmV,sBACL,MAAMtQ,EAAU7E,KAAKuP,cAAclH,qBAAqBC,EAAQtI,KAAKiH,oBACrE8C,EAAAA,EAAAA,IAAI/J,KAAK4T,iBAAkB,CAAE,OAAY,MACzC7J,EAAAA,EAAAA,IAAI/J,KAAK4T,iBAAkB,CAAE,QAAa/O,EAAQsB,WAClD4D,EAAAA,EAAAA,IAAI/J,KAAK4T,iBAAkB,CAAE,WAAgB/O,EAAQoE,cACrDc,EAAAA,EAAAA,IAAI/J,KAAK4T,iBAAkB,CAAE,KAAU/O,EAAQE,QAC/CgF,EAAAA,EAAAA,IAAI/J,KAAK4T,iBAAkB,CAAE,MAAW/O,EAAQoB,SAChD8D,EAAAA,EAAAA,IAAI/J,KAAK4T,iBAAkB,CAAE,aAAkB/O,EAAQmE,gBACvDe,EAAAA,EAAAA,IAAI/J,KAAK4T,iBAAkB,CAAE,YAAiB/O,EAAQqE,cAEtDpI,YAAW,MACPiJ,EAAAA,EAAAA,IAAI/J,KAAK4T,iBAAkB,CAAE,OAAY/O,EAAQqB,WAClD,IAIC,KAAAiP,oBAAsB,KACAnV,KAAKuP,cAAcvH,iBACzChI,KAAK4T,iBAAiB9O,0BAA4B9E,KAAKoC,iBAEzC6F,SAAQmN,IAAS,IAAAC,OACY1T,IAAvC3B,KAAK4T,iBAAiBwB,EAAOjN,OAAwC,QAAjBkN,EAACrV,KAAKiV,mBAAW,IAAAI,GAAhBA,EAAkB1V,sBAAsBiN,SAASwI,EAAOjN,QAC7GnI,KAAKuP,cAAc6F,EAAOjN,MAAQ,OAG1CnI,KAAKsV,oBAID,KAAAA,iBAAmB,KACvBtV,KAAK4H,gBAAkB,IAGnB,KAAA8M,uBAA0Ba,IAC9B,MAAMC,EAAkBD,EAAME,cAActO,MACtCkI,EAAkBrP,KAAKqG,kBAAkB5C,MAAKoB,IAAYA,EAAQuB,UAAY,IAAI2K,aAAeyE,IACnGnG,IACArP,KAAK4R,2BAA6BvC,IAIlC,KAAAqG,mBAAqB,CAACvN,EAAchB,MACxC4C,EAAAA,EAAAA,IAAI/J,KAAK4T,iBAAkB,CAAE,CAACzL,GAAOhB,IACrCnH,KAAKuP,cAAc5H,sBAAsB3H,KAAK4T,iBAAkB5T,KAAK4H,gBAAiB5H,KAAKoC,gBAAiB+F,IAGxG,KAAA2L,+BAAkCyB,IACtC,GAA0B,aAAtBA,EAAMI,OAAOzK,KACblL,KAAK0V,mBAAmBH,EAAMI,OAAOxN,KAAMoN,EAAMI,OAAO/G,aACrD,CACH,MAAMzH,GAASoO,EAAMI,OAAOxO,OAAS,IAAI2F,QAAQ,IAAIvD,OAAO,OAAQ,MAAO,IAC3EvJ,KAAK0V,mBAAmBH,EAAMI,OAAOxN,KAAMhB,KAI3C,KAAA4M,kCAAqCwB,IACzCvV,KAAK0V,mBAAmBH,EAAMI,OAAOxN,KAAMoN,EAAMI,OAAOxO,OAEpDoO,EAAMI,OAAOxN,OAAS3B,EAAgBA,EAAgB1B,2BACtD9E,KAAK4V,iBAAiBL,EAAMI,OAAOxO,QAInC,KAAA0O,0BAA4B,KAChC,IAAK7V,KAAKuP,cAAc5H,sBAAsB3H,KAAK4T,iBAAkB5T,KAAK4H,gBAAiB5H,KAAKoC,iBAC5F,OAGJ,IAAImC,EAEAA,EADAvE,KAAKkS,cAAchO,uBAEflE,KAAKgS,mBAAqBvL,EAAiBqP,OACrC9V,KAAKkS,cAAc/M,sBAAsBnF,KAAK4T,kBAG7ClP,QAAQC,QAAQ,CAAEE,QAAS7E,KAAK4T,mBAG/C5T,KAAKyS,YAAa,EAClBzS,KAAK+V,qBAELxR,EAASyR,MACJ1N,IACGtI,KAAKyS,YAAa,EAEdnK,EAAOzD,SACP7E,KAAKqS,UAAW,EAChBrS,KAAKiW,sBAAsB3N,KAE3BtI,KAAKqS,UAAW,EAChBrS,KAAK0S,sBAAwBpK,EAC7BtI,KAAK+V,yBAGb,KACI/V,KAAKqS,UAAW,EAChBrS,KAAKyS,YAAa,EAClBzS,KAAK+V,yBAKT,KAAAH,iBAAoBxT,IAA2B,IAAA8T,EACnDlW,KAAKoC,gBAAkBA,EACvB,MAAM+T,EAAyBnW,KAAKuP,cAAc9H,0BAA0BrF,IAC5E2H,EAAAA,EAAAA,IAAI/J,KAAK4T,iBAAkB,CACvB,yBAA8BxR,KAElC2H,EAAAA,EAAAA,IAAI/J,KAAK4T,iBAAkB,CACvB,uBAA4BuC,IAEhB,QAAhBD,EAAAlW,KAAKiV,mBAAW,IAAAiB,GAAhBA,EAAkB9U,gCAAgC+U,GAClDnW,KAAKmV,uBAGD,KAAAiB,6BAA+B,KACnC,MAAM,OAAEC,GAAWrW,KAAKsP,MAClBgH,EAA8C,GAQpD,OANKD,EAAOE,iBACRD,EAAyB/L,KAAK/D,EAAgBhB,kBAGlD8Q,EAAyB/L,KAAK/D,EAAgByE,WAEvCqL,GAGH,KAAAE,mBAAqB,MAEpBxW,KAAKoC,iBACJpC,KAAKgS,mBAAqBvL,EAAiBwL,KAAOjS,KAAKgS,mBAAqBvL,EAAiBqP,QAMnG9V,KAAKkS,cAAc5N,kBAAkBtE,KAAKoC,iBAAiB4T,MAAM1N,IAC3CA,EAAOmO,MAAKhO,GAASA,EAAMG,UAAY5I,KAAK4T,iBAAiB3N,UAG3E8D,EAAAA,EAAAA,IAAI/J,KAAK4T,iBAAkB,CAAE,MAAW,KAG5C5T,KAAKiH,kBAAoBqB,MAUzB,KAAAoO,mBAAqB,KACzB,GAAI1W,KAAKqG,kBAAmB,CAExB,OADuBrG,KAAKqG,kBAAkB5C,MAAMoB,GAAqBA,EAAQoG,cACvDjL,KAAKqG,kBAAkBT,OAAS,EAAI5F,KAAKqG,kBAAkB,QAAK1E,KAK1F,KAAAgV,iBAAmB,KAQvB,GAPA3W,KAAKsP,MAAM0E,YAAY4C,KAAK,CACxBC,OAAQ7W,KAAK8W,WAAa,WAAa,WACvCC,OAAQ/W,KAAK+W,OACbzE,SAAUtS,KAAKsS,SACf2B,SAAUjU,KAAKiU,WAGfjU,KAAK8W,WAAY,CACjB,MAAME,EAAiBhX,KAAKiX,oCAAsCjX,KAAK0W,qBACnEM,IAAmBhX,KAAKkS,cAActN,QAAQoS,IAC9ChX,KAAKkX,wBAAwBzQ,EAAiB0Q,KAAMH,GACpDhX,KAAKoX,oBAAoBJ,GACzBhX,KAAK+V,sBAEL/V,KAAKkX,wBAAwBzQ,EAAiBwL,OAKlD,KAAAgC,SAAW,KACf,OAAQjU,KAAKgS,kBACT,KAAKvL,EAAiBwL,IACtB,KAAKxL,EAAiBqP,OAClB9V,KAAK6V,4BACL,MACJ,KAAKpP,EAAiB4Q,KAClBrX,KAAK4U,mBACL,MACJ,QACI5U,KAAKsP,MAAMhQ,UAAUmF,MAAM,uBAI/B,KAAA6N,SAAW,KACf,OAAQtS,KAAKgS,kBACT,KAAKvL,EAAiBwL,IACtB,KAAKxL,EAAiBqP,OAClB9V,KAAKmV,uBACEnV,KAAKqP,iBAAoBrP,KAAKkS,cAAchO,wBAC/ClE,KAAKkU,aAGT,MACJ,KAAKzN,EAAiB4Q,KACdrX,KAAKqP,iBACLrP,KAAKkU,aAET,MACJ,QACIlU,KAAKsP,MAAMhQ,UAAUmF,MAAM,uBAI/B,KAAAsS,OAAS,KACT/W,KAAKkS,cAAchO,uBAAyBlE,KAAKsX,gBACjDtX,KAAKkX,wBAAwBzQ,EAAiB4Q,KAAMrX,KAAKsX,iBAClDtX,KAAKsX,iBACZtX,KAAKkX,wBAAwBzQ,EAAiBqP,OAAQ9V,KAAKsX,iBAG/DtX,KAAK+V,sBAGD,KAAAkB,iCAAmC,KACvC,MAAM,QAAE9S,GAAYnE,KAAKsP,MAAMnM,SACzB,4BAAEoU,GAAgCvX,KAAKsP,MAAMwF,KAC7C0C,EAAyBrT,GAAWA,EAAQsT,SAAWtT,EAAQsT,QAAQC,uBACvEC,EAAwBxT,GAAWA,EAAQsT,SAAWtT,EAAQsT,QAAQG,sBAEtEC,EAAY7X,KAAK8R,mCACf9R,KAAKsP,MAAMwF,KAAKgD,SAASxP,QAAUtI,KAAKsP,MAAMwF,KAAKgD,SAASxP,OAAOyP,aAAaC,KAAKC,WAAc,IAAIC,QAAOC,IAAQ,IAAAC,EAAA,OACpHD,EAASE,cAA0C,KAA1BF,EAASE,aAC5BF,EAASE,gBAC6B,QADjBD,EACjBb,EAA4BjP,cAAM,IAAA8P,GAAyB,QAAzBA,EAAlCA,EAAoCE,+BAAuB,IAAAF,OAAA,EAA3DA,EAA6D3U,MACzD8U,GAAgBA,IAAiBJ,EAASE,iBACzCF,EAASE,eAAiBV,EACnCQ,MAERnY,KAAKsP,MAAMwF,KAAKgD,SAASxP,QAAUtI,KAAKsP,MAAMwF,KAAKgD,SAASxP,OAAOyP,aAAaC,KAAKC,WAAc,IAAIC,QAAOC,GAC5GA,EAASE,cAA0C,KAA1BF,EAASE,aAC5BF,EAASE,eAAiBb,GAA0BW,EAASE,eAAiBV,EAC9EQ,IAGhB,GAAIN,GAAaA,EAAUjS,OAAS,EAChC,OAAOiS,EAAU,GAAGW,iBAMpB,KAAA1B,SAAW,KAAc,IAAA2B,EAAAC,EAC7B,MAAM,SAAEZ,EAAQ,4BAAEP,GAAgCvX,KAAKsP,MAAMwF,MACvD,QAAE3Q,GAAYnE,KAAKsP,MAAMnM,QACzBqU,EAAyBrT,GAAWA,EAAQsT,SAAWtT,EAAQsT,QAAQC,uBACvEC,EAAwBxT,GAAWA,EAAQsT,SAAWtT,EAAQsT,QAAQG,sBAC5E,SAAKE,EAASxP,SAAWnE,EAAQsT,SAAWK,EAASxP,OAAOyP,aAAanT,SAAWkT,EAASxP,OAAOyP,aAAaY,kBAK1G3Y,KAAK8R,kCACNgG,MAAAA,GAAgB,QAARW,EAARX,EAAUxP,cAAM,IAAAmQ,GAAc,QAAdA,EAAhBA,EAAkBV,oBAAY,IAAAU,GAAM,QAANA,EAA9BA,EAAgCT,YAAI,IAAAS,GAAW,QAAXA,EAApCA,EAAsCR,iBAAS,IAAAQ,OAAA,EAA/CA,EAAiDhC,MAAK0B,IAAQ,IAAAS,EAAA,OAC1DT,EAASE,cAA0C,KAA1BF,EAASE,aAC5BF,EAASE,gBAC6B,QADjBO,EACjBrB,EAA4BjP,cAAM,IAAAsQ,GAAyB,QAAzBA,EAAlCA,EAAoCN,+BAAuB,IAAAM,OAAA,EAA3DA,EAA6DnV,MACzD8U,GAAgBA,IAAiBJ,EAASE,iBACzCF,EAASE,eAAiBV,EACnCQ,KAEVL,MAAAA,GAAgB,QAARY,EAARZ,EAAUxP,cAAM,IAAAoQ,GAAc,QAAdA,EAAhBA,EAAkBX,oBAAY,IAAAW,GAAM,QAANA,EAA9BA,EAAgCV,YAAI,IAAAU,GAAW,QAAXA,EAApCA,EAAsCT,iBAAS,IAAAS,OAAA,EAA/CA,EAAiDjC,MAAK0B,GAClDA,EAASE,cAA0C,KAA1BF,EAASE,aAC5BF,EAASE,eAAiBb,GAA0BW,EAASE,eAAiBV,EAC9EQ,MAIZ,KAAAvD,iBAAmB,KACvB5U,KAAKkX,wBAAwBzQ,EAAiB0Q,KAAMnX,KAAK4R,4BACzD5R,KAAKoX,oBAAoBpX,KAAK4R,4BAC9B5R,KAAK+V,sBAGD,KAAApB,gBAAkB,KACtB3U,KAAK6Y,6BACL7Y,KAAKkX,wBAAwBzQ,EAAiBwL,MAG1C,KAAAgE,sBAAyB1R,IACzBA,EAAS8B,oBACTrG,KAAKqG,kBAAoB9B,EAAS8B,mBAGlC9B,EAASM,UACT7E,KAAKkX,wBAAwBzQ,EAAiB0Q,KAAM5S,EAASM,SAC7D7E,KAAKoX,oBAAoB7S,EAASM,SAClC7E,KAAK+V,uBAIL,KAAAqB,oBAAuBvS,IAC3B,GAAI7E,KAAKsP,MAAMwF,KAAKgD,SAASxP,OAAQ,CACjC,MAAMwQ,EAAkBtY,EAAA,GAAQqE,GAE5BA,EAAQC,2BAA6BgU,EAAmBC,yBACxDD,EAAmBC,uBAAyB/Y,KAAKuP,cAAc9H,0BAA0B5C,EAAQC,2BAIrG9E,KAAKsP,MAAMwF,KAAKgD,SAASxP,OAAO0Q,sBAAsB,CAClDF,mBAAAA,MASJ,KAAA5E,WAAa,KACjB,OAAQlU,KAAKgS,kBACT,KAAKvL,EAAiBwL,IACtB,KAAKxL,EAAiBqP,OAClB9V,KAAKkX,wBACDlX,KAAKkS,cAAchO,sBAAwBuC,EAAiB4Q,KAAO5Q,EAAiB0Q,KACpFnX,KAAKsX,iBAET,MACJ,QACItX,KAAKkX,wBAAwBzQ,EAAiB0Q,KAAMnX,KAAKsX,iBAEjEtX,KAAK+V,sBAGD,KAAAmB,wBAA0B,CAAC+B,EAA6B5J,KAC5DrP,KAAKgS,iBAAmBiH,EACxBjZ,KAAKqP,gBAAkBA,EAEnBrP,KAAKgS,mBAAqBvL,EAAiBwL,KAAOjS,KAAKgS,mBAAqBvL,EAAiBqP,QAC7F9V,KAAK4T,iBAAmBpT,EAAA,GAAKR,KAAKqP,kBAAqB,IACvDtF,EAAAA,EAAAA,IAAI/J,KAAK4T,iBAAkB,CACvB,yBAA8B5T,KAAK4T,iBAAiB9O,0BAA4B9E,KAAKoC,mBAEzF2H,EAAAA,EAAAA,IAAI/J,KAAK4T,iBAAkB,CACvB,iBAAsB5T,KAAK4T,iBAAiBpO,kBAAoBxF,KAAK2P,sBAElE3P,KAAKgS,mBAAqBvL,EAAiB4Q,OAClDrX,KAAK4R,2BAA6BpR,EAAA,GAAKR,KAAKqP,kBAAqB,KAIjE,KAAA0G,mBAAqB,KACrB/V,KAAKgS,mBAAqBvL,EAAiB0Q,KAC3CnX,KAAKsP,MAAM0E,YAAYkF,UAChBlZ,KAAKyS,WACZzS,KAAKsP,MAAM0E,YAAYmF,YAEvBnZ,KAAKsP,MAAM0E,YAAYoF,cAtkB3B,MAAM,QAAEjW,EAAO,KAAE2R,EAAI,UAAE1R,EAAS,UAAE9D,GAAcU,KAAKsP,MAErDtP,KAAK4T,iBAAmB,GACxB5T,KAAKoD,UAAYA,EACjBpD,KAAKgS,iBAAmBvL,EAAiB4Q,KACzCrX,KAAKsD,eAAiBwR,EAAKxR,eAAegF,QAAU,GACpDtI,KAAK8G,gBAAkBgO,EAAKhO,gBAAgBwB,QAAU,GACtDtI,KAAKqG,kBAAoByO,EAAKjQ,QAAQyD,QAAU,GAChDtI,KAAKiH,kBAAoB6N,EAAKuE,cAAc/Q,QAAU,GACtDtI,KAAKkS,cAAgB,IAAIhP,EAAcC,EAASC,EAAW9D,GAC3DU,KAAKuP,cAAgB,IAAI5I,EACrB3G,KAAKsD,eACL,IAAI6H,EAAe3K,EAAC,GAAK4C,GAAapD,KAAKoW,gCAC3CpW,KAAK8G,iBAET9G,KAAK4H,gBAAkB,GACvB5H,KAAK8R,kCAAoCgD,MAAAA,GAAkB,QAAdpD,EAAJoD,EAAMwE,oBAAY,IAAA5H,GAAQ,QAARA,EAAlBA,EAAoBpJ,cAAM,IAAAoJ,GAElE,QAFkEA,EAA1BA,EAA4BjO,MACjE8V,GAAWA,EAAQxT,OAAS/F,KAAK6R,uCACpC,IAAAH,OAAA,EAFwCA,EAEtC8H,UACHxZ,KAAKiO,kBAAmBwL,EAAAA,EAAAA,oBACpBzZ,KAAKsP,MAAMnM,QAAQgB,QAAQuV,kBAC3B1Z,KAAKsP,MAAMqK,aACX3Z,KAAKsP,MAAMhQ,WAIZ,0BACH,MACI6D,SAAS,UACL7D,EACAkF,eACIoV,gBAAgB,QAAEnC,KAG1BpB,QAAQ,sBAAEwD,EAAqB,mBAAEta,IACjCS,KAAKsP,MAmBT,GAjBAtP,KAAKsP,MAAMwF,KAAKgD,SAAS9B,MAAK,KAC1BhW,KAAK6Y,6BACL7Y,KAAK2W,uBAGTmD,EAAAA,EAAAA,KACI,IAAM9Z,KAAKoC,kBACX,IAAMpC,KAAKwW,wBAGfsD,EAAAA,EAAAA,KACI,IAAM9Z,KAAKgS,mBACX,KACIhS,KAAKwW,wBAITqD,EAAuB,CACvB,GAAIpC,IAAYA,EAAQjY,eAEpB,YADAF,EAAUmF,MAAM,8BAIpB,GAAIgT,IAAYA,EAAQsC,gBAEpB,YADAza,EAAUmF,MAAM,4BAIpB,MAAMlE,EAAOC,EAAA,GAA6BjB,GAaxC,IAAAya,EAHF,GATAha,KAAKiV,YAAc,IAAI7V,EACnBE,EACAiB,EACAkX,MAAAA,OAAO,EAAPA,EAASjY,eACTiY,MAAAA,OAAO,EAAPA,EAASwC,4BACTxC,MAAAA,OAAO,EAAPA,EAASyC,mBAKTla,KAAKsP,MAAMwF,KAAKhT,0BAA0BwG,SACzCtI,KAAKgS,mBAAqBvL,EAAiBwL,KAAOjS,KAAKgS,mBAAqBvL,EAAiBqP,cAExE,QAAtBkE,EAAMha,KAAKiV,mBAAW,IAAA+E,OAAA,EAAhBA,EAAkBpY,kBAAkB5B,KAAKsP,MAAMwF,KAAKhT,6BAG9DgY,EAAAA,EAAAA,KACI,SAAAK,EAAA,OACoD,QAAhDA,EAAAna,KAAKsP,MAAMwF,KAAKhT,0BAA0BwG,cAAM,IAAA6R,OAAA,EAAhDA,EAAkDpY,cACjD/B,KAAKgS,mBAAqBvL,EAAiBwL,KAAOjS,KAAKgS,mBAAqBvL,EAAiBqP,WAClGjU,UAAW,IAAAuY,QACe,QAAtBA,EAAMpa,KAAKiV,mBAAW,IAAAmF,OAAA,EAAhBA,EAAkBxY,kBAAkB5B,KAAKsP,MAAMwF,KAAKhT,gCAIlEgY,EAAAA,EAAAA,KACI,SAAAO,EAAA,OAAsD,QAAtDA,EAAMra,KAAKsP,MAAMwF,KAAKhT,0BAA0BwG,cAAM,IAAA+R,OAAA,EAAhDA,EAAkDrF,kBACxDnT,gBACU7B,KAAK6U,4BAMpB,2BACsG,IAAAyF,EAIlGC,EAJHva,KAAKgS,mBAAqBvL,EAAiBwL,KAAOjS,KAAKgS,mBAAqBvL,EAAiBqP,OACzC,QAApDwE,EAAIta,KAAKsP,MAAMwF,KAAKhT,0BAA0BwG,cAAM,IAAAgS,GAAhDA,EAAkDtF,sBAC5ChV,KAAK6U,wBAGC,QAAhB0F,EAAAva,KAAKiV,mBAAW,IAAAsF,GAAhBA,EAAkBjZ,qBAInBkZ,SACH,IAAKxa,KAAK8W,WACN,OAAO,KAGX,MAAM,WAAE2D,EAAU,OAAEpE,GAAWrW,KAAKsP,MA+BpC,OAAOmL,EA7BQja,EAAAA,EAAA,GACRR,KAAKsP,OAAK,IACb0C,iBAAkBhS,KAAKgS,iBACvB3C,gBAAiBrP,KAAKqP,gBACtBuE,iBAAkB5T,KAAK4T,iBACvBhC,2BAA4B5R,KAAK4R,2BACjCxP,gBAAiBpC,KAAKoC,gBACtB6E,kBAAmBjH,KAAKiH,kBACxBZ,kBAAmBrG,KAAKqG,kBACxBuB,gBAAiB5H,KAAK4H,gBACtB8K,sBAAuB1S,KAAK0S,sBAC5BD,WAAYzS,KAAKyS,WACjBJ,SAAUrS,KAAKqS,SACfzE,UAAWyI,EAAOzI,UAClB8M,UAAW,CACPC,cAAe3a,KAAKgS,mBAAqBvL,EAAiB0Q,MAAQnX,KAAKqP,gBACvEuL,iBAAkB5a,KAAKgS,mBAAqBvL,EAAiB4Q,MAAQrX,KAAKqG,kBAAkBT,OAAS,EACrGiV,yBACI7a,KAAKgS,mBAAqBvL,EAAiBwL,KAAOjS,KAAKgS,mBAAqBvL,EAAiBqP,QAErGrE,wBAAyB,CACrBqJ,YAAa9a,KAAKsP,MAClB1B,UAAWmN,GAAAA,CAAW,+BAAgC1E,EAAOzI,YAEjEoN,YAAahb,KAAKib,qBAClBC,kBAAmBlb,KAAKmU,uBACxBgH,uBAAwBnb,KAAK+R,+BAqD7BkJ,qBACJ,OAAIjb,KAAKqP,gBACEsB,EAAY,CACf9L,QAAS7E,KAAKqP,gBACdE,cAAevP,KAAKuP,cAAcvH,iBAAiBhI,KAAKqP,gBAAgBvK,0BAA4B,IACpGgC,gBAAiB9G,KAAK8G,kBAIvB,KAqKH+R,6BACJ,MAAM,QAAE1U,GAAYnE,KAAKsP,MAAMnM,QACzBjB,EAASiC,GAAWA,EAAQsT,SAAWtT,EAAQsT,QAAQwC,4BAC7Dja,KAAKoC,gBAAkBpC,KAAKkS,cAAc7O,0BAA0BrD,KAAKoC,gBAAiBpC,KAAKsD,eAAgBpB,GAuKzG,sBACN,OAAOlC,KAAKsP,MAAMwF,KAAKgD,SAASxP,QAAUtI,KAAKsP,MAAMwF,KAAKgD,SAASxP,OAAOgP,mBAtjBlE8D,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,wCACCD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,uCACCD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,wCACCD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,uCACCD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,yCACCD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,yCACCD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,uCACCD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,6CACCD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,kCACCD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,gCACCD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,kDA4OXD,EAAAA,EAAAA,IAAA,CADCnY,EAAAA,IAAM,6CAkBPmY,EAAAA,EAAAA,IAAA,CADCnY,EAAAA,IAAM,2CAcPmY,EAAAA,EAAAA,IAAA,CADCnY,EAAAA,IAAM,wCAkSGmY,EAAAA,EAAAA,IAAA,CAATE,EAAAA,IAAQ,oCAtjBP7J,GAAuB2J,EAAAA,EAAAA,IAAA,CAF5BG,EAAAA,gBACAC,EAAAA,IACK/J,GAqmBN,iSCppBMd,EAA2CjD,IAA6B,IAA5B,cAAEkD,EAAa,MAAEC,GAAOnD,EACtE,OACIC,EAAAA,cAAC8N,EAAAA,KAAInO,OAAAiB,OAAA,GAAKqC,GACLC,GACGA,EAAMjH,KAAKkC,GACA6B,EAAAA,cAAAA,EAAAA,SAAA,KAAG7B,EAAKkF,iBAM7ByD,EAA+CiH,IAQhD,IARiD,cAClDrH,EAAa,UACbC,EAAS,MACTzD,EAAK,iBACLiC,EAAgB,WAChBC,EAAU,mBACVI,EAAkB,aAClBC,GACHsI,EACG,OACI/N,EAAAA,cAAC8N,EAAAA,KAAInO,OAAAiB,OAAA,GAAK8F,GACLC,EACAzD,GACGA,EAAMjH,KAAKkC,IACP,MAAMyF,EAAazF,EAAKyF,WACxB,OACI5D,EAAAA,cAAC8N,EAAAA,KAAInO,OAAAiB,OAAA,GAAKgD,EAAU,CAAEvP,IAAK8J,EAAK9J,MAC3B8J,EAAKnJ,MACNgL,EAAAA,cAACgD,EAAWrD,OAAAiB,OAAA,GAAKzC,EAAK0F,gBAIrCsB,GAAoBC,EACpBI,GAAsBC,IAM7BM,EAAqDiI,IAWtD,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,IAXuD,YACxDpJ,EAAW,QACXD,EAAO,MACP9B,EAAK,SACLwB,EAAQ,MACR5N,EAAK,iBACLqO,EAAgB,WAChBC,EAAU,mBACVI,EAAkB,aAClBC,GAEHuI,EADMM,GAAKC,EAAAA,EAAAA,GAAAP,EAAAQ,GAGR,MAAM/Y,EAAY6Y,MAAAA,GAAkB,QAAbL,EAALK,EAAOnB,mBAAW,IAAAc,OAAA,EAAlBA,EAAoBxY,UAEhCgZ,EAAeH,MAAAA,GAAkB,QAAbJ,EAALI,EAAOnB,mBAAW,IAAAe,GAAS,QAATA,EAAlBA,EAAoB1Y,eAAO,IAAA0Y,GAAS,QAATA,EAA3BA,EAA6B1X,eAAO,IAAA0X,OAAA,EAApCA,EAAsCQ,OAErDC,EAAWL,MAAAA,GAAkB,QAAbH,EAALG,EAAOnB,mBAAW,IAAAgB,GAAS,QAATA,EAAlBA,EAAoB3Y,eAAO,IAAA2Y,GAAS,QAATA,EAA3BA,EAA6B3X,eAAO,IAAA2X,OAAA,EAApCA,EAAsCQ,SAGjDC,EAAWN,MAAAA,GAAkB,QAAbF,EAALE,EAAOnB,mBAAW,IAAAiB,GAAS,QAATA,EAAlBA,EAAoB5Y,eAAO,IAAA4Y,GAAS,QAATA,EAA3BA,EAA6B5X,eAAO,IAAA4X,GAAS,QAATA,EAApCA,EAAsCtE,eAAO,IAAAsE,OAAA,EAA7CA,EAA+CS,SAC1DH,EACFC,GAJW,CAAC,MAAO,OAIA1P,SAAS0P,IAET,QAAbC,GAAuC,UAAjBH,EADtB,KAGAA,EAAatP,QAAQ,IAAK,IAE9B2P,EAAiB,CACnBC,KAAM,CACFC,aAAc,CAAC,MACfC,OAAQ,CAAC,QAEbC,GAAI,CACAF,aAAc,CAAC,MACfC,OAAQ,CAAC,QAEbE,KAAM,CACFH,aAAc,CAAC,MAGfC,OAAQ,CAAC,QAEbG,GAAI,CAGAJ,aAAc,GACdC,OAAQ,CACJ,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,SAKNI,EAAyB1P,OAAO2P,yBAAyBC,OAAOC,iBAAiBC,UAAW,SAASrT,IA8D3G,SAASsT,EACLC,EACAC,GAEA,MAAM/N,EAAc8N,EAAiBE,MAAM,GAE3C,QAA4C7b,IAAxChB,SAAS8c,eAAeF,EAAQ1R,KAA6D,OAAxClL,SAAS8c,eAAeF,EAAQ1R,KAIrF0R,EAAQG,kBAAoBlO,EAC5B,GAAmB,6CAAf+N,EAAQ1R,IAAoE,0BAAf0R,EAAQ1R,GAAgC,CACrG,MAAMlJ,EAAQhC,SAAS8c,eAAeF,EAAQ1R,IAC9C,GAAc,OAAVlJ,EAAgB,CAChB,MACMoM,EA0BtB,SAA2B4O,EAA0BxW,EAAeyW,GAChE,IAAK,IAAIC,EAAI,EAAGA,EAAIF,EAAMpd,QAAQqF,OAAQiY,IAAK,CAC3C,MAAMC,EAASH,EAAMpd,QAAQsd,GAAG1W,MAChC,GAAKyW,GAAuBE,IAAWC,EAAAA,EAAiB5W,KAAayW,GAAuBE,IAAW3W,EACnG,OAAOwW,EAAMpd,QAAQsd,GAAG1W,OA9BE6W,CAAkBrb,EADX,OAAX0Z,GAAkC,0BAAfkB,EAAQ1R,GAAiC,MAAQyR,EAAiBW,WAC7B,YAAhBzO,GAC1D,QAAsB7N,IAAlBoN,EAA6B,CAC7BpM,EAAMwE,MAAQ4H,EACd,MAAMwG,EAAQ,IAAI2I,MAAM,SAAU,CAAEC,SAAS,IAC7Cxb,EAAMyb,cAAc7I,SAGzB,CACH,MAAM8I,EAA2B,2BAAfd,EAAQ1R,GAAkCyR,EAAiBW,WAAaX,EAAiBgB,UACrG3b,EAAQhC,SAAS8c,eAAeF,EAAQ1R,IAC9C,QAAclK,IAAVgB,EAAqB,CACrB,QAA+BhB,IAA3Bqb,EACA,OAEJA,EAAuBuB,KAAK5b,EAAO0b,GACnC,MAAMG,EAAU,IAAIN,MAAM,QAAS,CAAEC,SAAS,IAChC,OAAVxb,GACAA,EAAMyb,cAAcI,KAgDxC,SAASC,IAAe,IAAAC,EACpB,MAAMC,EAAche,SAASie,uBAAuB,oBAAoB,GAClEC,EACmC,QADlBH,EAAGC,EACrBG,QAAQ,oCAA4B,IAAAJ,OAAA,EADfA,EAEpBE,uBAAuB,qCAAqC,GAC5DG,EAASpe,SAAS8c,eAAe,0BACjCuB,EAAYD,GAAqB,OAAXA,EAAmBA,EAAOD,QAAQ,gCAAkDnd,EAC1Gsd,EAAcD,MAAAA,OAAS,EAATA,EAAWJ,uBAAuB,2BAA2B,QAE/Djd,IAAdqd,IACAA,EAAUE,QAAU,KAChBF,MAAAA,GAAAA,EAAWG,UAAUC,OAAO,8BACxBH,IACAA,EAAYI,YAAc,WAIZ1d,IAAtBkd,IACAA,EAAkBS,QAAUC,IAExB,KAD+B,OAAXlD,KAAqC,KAAjB0C,EAAO5X,OAAgB4X,EAAO5X,MAAMvB,OAAS,IACnE,CACdoZ,MAAAA,GAAAA,EAAWG,UAAUK,IAAI,8BACrBP,IACAA,EAAYI,YAAc,mCAE9B,MAAMI,EAAWd,EAAYe,iBAAiB,SAC9C,IAAIC,GAAa,EACjBF,EAASxX,SACT,SAAwB2X,GACE,KAAlBA,EAAQzY,OAAiC,WAAjByY,EAAQzX,OAChCwX,GAAa,MAGjBA,GACAJ,EAAEM,qBAoCtB,OA9BAlS,EAAAA,WAAgB,MApLhB,WACI,MAAMmS,EAAmB,CACrB,CAAEpC,gBAAiB,sBAAuB7R,GAAI,wBAC9C,CAAE6R,gBAAiB,WAAY7R,GAAI,wBACnC,CAAE6R,gBAAiB,cAAe7R,GAAI,wBACtC,CACI6R,gBAAiB,8BACjB7R,GAAI,wBAER,CACI6R,gBAAiB,8BACjB7R,GAAI,yBAER,CAAE6R,gBAAiB,qBAAsB7R,GAAI,2BAC7C,CAAE6R,gBAAiB,cAAe7R,GAAI,2BACtC,CACI6R,gBAAiB,UACjB7R,GAAI,4CAER,CACI6R,gBAAiB,8BACjB7R,GAAI,2BAINkU,EAAwBpf,SAAS8c,eAAe,0BAEhDd,EAAe,IAAIO,OAAO8C,OAAOC,KAAKC,OAAOC,aAAaJ,EAAuB,CACnFvC,MAAO,CAAC,WACR4C,sBAAuB,CACnBC,QAAS5D,EAAeJ,IAAWI,EAAeJ,GAAQM,gBAGpC,OAA1BoD,IAGJA,EAAsBlf,aAAa,cAAeuC,EAAUkd,wBAE5DpD,OAAO8C,OAAOC,KAAK1K,MAAMgL,uBAAuBR,GAEhD7C,OAAO8C,OAAOC,KAAK1K,MAAMiL,YAAY7D,EAAc,iBAAiB,KAChE,MAAM8D,EAAQ9D,EAAa+D,WAC3B,QAA+B/e,IAA3Bqb,EACA,OAEJA,EAAuBuB,KAAKwB,EAAuBU,EAAMtY,MACzD,MAAMqW,EAAU,IAAIN,MAAM,SAAU,CAAEC,SAAS,IAC/C4B,EAAsB3B,cAAcI,GAEpC,IAAK,MAAMd,KAAmBoC,EAAkB,CAC5C,MAAMa,EAAoBF,EAAMG,mBAC5BD,GAAqBA,EAAkB/a,OAAS,GAEhD+a,EAAkB1Y,SAAQqV,GAAoBD,EAAqBC,EAAkBI,UAgIjGmD,GACgBlgB,SAAS+e,iBAAiB,oDAClCzX,SAAQ6Y,IACZ,MAAMC,EAAWD,EAAwB3Z,MACrCsV,EAAeJ,KAAYI,EAAeJ,GAAQO,OAAOhQ,SAASmU,IAClED,EAAE1B,YAGV,MAAM4B,EAAgBrgB,SAAS8c,eAAe,4CAC/B,SAAXpB,IACA2E,EAAc7Z,MAAQ,OAE1B,MAAMoO,EAAQ,IAAI2I,MAAM,SAAU,CAAEC,SAAS,IAC7C6C,EAAc5C,cAAc7I,GAC5B,MAAM0L,EAActgB,SAAS8c,eAAe,yBAC7B,OAAXpB,IACA4E,EAAY9Z,MAAQ,MACpB8Z,EAAY7C,cAAc7I,GAC1B0L,EAAYjT,SAAWkT,QAAQ,SAEnCzC,MACD,IAEH9Q,EAAAA,WAAgB,KA/FGwT,MACf,MAAMtC,EAAoBle,SAASC,cAAc,8CAC3CwgB,EAAQzgB,SAAS8c,eAAe,yBACtC,GAAI2D,EAAO,CACP,MAAMC,EAAWD,EAAMtC,QAAQ,2BACzBwC,EAAaD,EAASzC,uBAAuB,2BAA2B,GACxE2C,EAAU,WACVC,EAAW,WACjBJ,EAAMvgB,aAAa,gBAAiB,QACpCugB,EAAMvgB,aAAa,OAAQ,OAC3BugB,EAAMvgB,aAAa,YAAa,MACL,IAAvBugB,EAAMja,MAAMvB,QACZiZ,EAAkBhe,aAAa,WAAY,QAE/CugB,EAAMlC,QAAU,KACPkC,EAAMja,MAAMsa,MAAMF,IAAaH,EAAMja,MAAMsa,MAAMD,GAI3CJ,EAAMja,MAAMvB,OAAS,GAC5Byb,EAASlC,UAAUK,IAAI,8BACvB8B,EAAWjC,YAAcjc,EAAUse,iCACnC7C,EAAkBhe,aAAa,WAAY,UAE3CwgB,EAASlC,UAAUC,OAAO,8BAC1BkC,EAAWjC,YAAc,GACzBR,EAAkB8C,gBAAgB,cAVlCN,EAASlC,UAAUK,IAAI,8BACvB8B,EAAWjC,YAAcjc,EAAUse,iCACnC7C,EAAkBhe,aAAa,WAAY,YA8EvDsgB,KACD,CAAU,QAAVnF,EAAErb,gBAAQ,IAAAqb,GAA8D,QAA9DA,EAARA,EAAUyB,eAAe,gCAA6C,IAAAzB,OAAA,EAAtEA,EAAwE7U,QAC7EwG,EAAAA,WAAgB,KACZ8Q,MACD,CAAC9d,SAAS8c,eAAe,2BAExB9P,EAAAA,cAAC8N,EAAAA,KAAInO,OAAAiB,OAAA,GAAKqE,GACLD,EACA9B,GACGA,EAAMjH,KAAKkC,IACP,MAAM,YAAEsE,EAAW,IAAEpO,EAAG,MAAEoL,EAAK,MAAEkD,EAAK,MAAE3N,GAAUmJ,EAKlD,MAJY,SAAR9J,GAAkBW,IAElBA,EAAM2M,MAAM7D,UAAY,IAGxBkC,EAAAA,cAAC8N,EAAAA,KAAInO,OAAAiB,OAAA,GAAK6B,EAAW,CAAEpO,IAAKA,IACvBoL,EACAkD,EACA3N,MAIhB0P,GACG1E,EAAAA,cAAC8N,EAAAA,KAAInO,OAAAiB,OAAA,GAAK9J,EAAM8O,cACX9O,EAAMwK,MACNxK,EAAMwF,SAGd6I,GAAoBC,EACpBI,GAAsBC,IAiBnC,EAZiF9D,IAC7E,MAAM,wBAAEmC,EAAuB,UAAEiJ,EAAS,YAAEM,EAAW,kBAAEE,EAAiB,uBAAEC,GAA2B7L,EAEvG,OACI3B,EAAAA,cAACiU,EAAAA,OAAMtU,OAAAiB,OAAA,GAAKkD,GACPiJ,EAAUC,eAAiBhN,EAAAA,cAACgD,EAAWrD,OAAAiB,OAAA,GAAKyM,IAC5CN,EAAUE,kBAAoBjN,EAAAA,cAAC8G,EAAanH,OAAAiB,OAAA,GAAK2M,IACjDR,EAAUG,0BAA4BlN,EAAAA,cAAC+F,EAAgBpG,OAAAiB,OAAA,GAAK4M,EAA4B1J,0DCjYrG,MAEaoQ,EAA0BA,CAACC,EAA+BC,KACnE,MAEMC,EAAqBA,KACvB,MAAMC,EAHiBH,CAAAA,GAAkCA,EAAcrY,IAHpD,YAMIyY,CAAkBJ,GAAe3a,MAExD,OADuB8a,EAAiBA,EAAeE,MAAM,KAAKvY,KAAI2P,GAAWA,EAAQ6I,SAAU,IAC7EC,OAAON,IAIjC,MAAO,CACHC,mBAAAA,EACAM,iBAHsBC,GAAiCP,IAAqBpV,SAAS2V,mDCXtF,MAAMxE,EAAmB,CAC5ByE,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAA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","sources":["webpack://Msdyn365.Commerce.Online/./src/modules/custom-checkout-shipping-address/common/address-autosuggest.ts?d373","webpack://Msdyn365.Commerce.Online/./src/modules/custom-checkout-shipping-address/actions/get-state-provinces.ts?4008","webpack://Msdyn365.Commerce.Online/./src/modules/custom-checkout-shipping-address/common/address-common.ts?f4cc","webpack://Msdyn365.Commerce.Online/./src/modules/custom-checkout-shipping-address/common/address-format.data.ts?1ce5","webpack://Msdyn365.Commerce.Online/./src/modules/custom-checkout-shipping-address/common/address-module.data.ts?c633","webpack://Msdyn365.Commerce.Online/./src/modules/custom-checkout-shipping-address/common/address-format.ts?b9ef","webpack://Msdyn365.Commerce.Online/./src/modules/custom-checkout-shipping-address/common/address-meta-data.ts?e0f3","webpack://Msdyn365.Commerce.Online/./src/modules/custom-checkout-shipping-address/common/components/address-alert.tsx?99d1","webpack://Msdyn365.Commerce.Online/./src/modules/custom-checkout-shipping-address/common/components/address-button.tsx?55d4","webpack://Msdyn365.Commerce.Online/./src/modules/custom-checkout-shipping-address/common/components/address-checkbox.tsx?0721","webpack://Msdyn365.Commerce.Online/./src/modules/custom-checkout-shipping-address/common/components/address-dropdown.tsx?6e8b","webpack://Msdyn365.Commerce.Online/./src/modules/custom-checkout-shipping-address/common/components/address-error-message.tsx?a335","webpack://Msdyn365.Commerce.Online/./src/modules/custom-checkout-shipping-address/common/components/address-error-title.tsx?227d","webpack://Msdyn365.Commerce.Online/./src/modules/custom-checkout-shipping-address/common/components/address-input.tsx?713c","webpack://Msdyn365.Commerce.Online/./src/modules/custom-checkout-shipping-address/common/components/address-label.tsx?597f","webpack://Msdyn365.Commerce.Online/./src/modules/custom-checkout-shipping-address/common/components/address-add.tsx?eb99","webpack://Msdyn365.Commerce.Online/./src/modules/custom-checkout-shipping-address/common/components/address-detail-item.tsx?6cc8","webpack://Msdyn365.Commerce.Online/./src/modules/custom-checkout-shipping-address/common/components/address-show.tsx?8659","webpack://Msdyn365.Commerce.Online/./src/modules/custom-checkout-shipping-address/common/components/address-select.tsx?bbe0","webpack://Msdyn365.Commerce.Online/./src/modules/custom-checkout-shipping-address/custom-checkout-shipping-address.tsx?35a0","webpack://Msdyn365.Commerce.Online/./src/modules/custom-checkout-shipping-address/custom-checkout-shipping-address.view.tsx?774b","webpack://Msdyn365.Commerce.Online/./src/services/featureToggleService.ts?d980","webpack://Msdyn365.Commerce.Online/./src/themes/venchi/utils/convert_a2_a3.ts?c0bb","webpack://Msdyn365.Commerce.Online/./src/themes/venchi/views/content-block.view.tsx?0a66","webpack://Msdyn365.Commerce.Online/./src/themes/venchi/views/order-template-list.view.tsx?f44e","webpack://Msdyn365.Commerce.Online/./src/themes/venchi/definition-extensions/video-player.ext.props.autogenerated.ts?fe23","webpack://Msdyn365.Commerce.Online/./src/themes/venchi/views/video-player.view.tsx?a1ba","webpack://Msdyn365.Commerce.Online/./src/modules/aad-generic/aad-generic.tsx?c076","webpack://Msdyn365.Commerce.Online/./src/modules/aad-generic/aad-generic.view.tsx?b418","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance/account-customer-balance.tsx?8d5a","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance/account-customer-balance.view.tsx?70d2","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance/components/account-actions.tsx?e021","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance/components/account-statement-request-modal.tsx?18c0","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance/components/index.tsx?fba9","webpack://Msdyn365.Commerce.Online/./src/modules/account-wishlist-tile/components/account-wishlist-tile-description.tsx?0588","webpack://Msdyn365.Commerce.Online/./src/modules/account-wishlist-tile/components/account-wishlist-tile-links.tsx?f114","webpack://Msdyn365.Commerce.Online/./src/modules/account-wishlist-tile/account-wishlist-tile.tsx?b721","webpack://Msdyn365.Commerce.Online/./src/modules/account-wishlist-tile/account-wishlist-tile.view.tsx?095e","webpack://Msdyn365.Commerce.Online/../../src/checkout-state-data-action.ts?8344","webpack://Msdyn365.Commerce.Online/../../src/checkout-state.ts?acd8","webpack://Msdyn365.Commerce.Online/../../src/checkout-utilities.data.ts?b2cc","webpack://Msdyn365.Commerce.Online/../../../src/module-state-manager/module-state.ts?7579","webpack://Msdyn365.Commerce.Online/../../../src/module-state-manager/with-module-state.tsx?61ca","webpack://Msdyn365.Commerce.Online/./src/common/waiting.tsx?8095","webpack://Msdyn365.Commerce.Online/./src/modules/checkout-express-payment-container/checkout-express-payment-container.tsx?1d63","webpack://Msdyn365.Commerce.Online/./src/modules/checkout-express-payment-container/checkout-express-payment-container.view.tsx?4299","webpack://Msdyn365.Commerce.Online/./src/modules/checkout-section-container/checkout-section-container.tsx?c853","webpack://Msdyn365.Commerce.Online/./src/modules/checkout-section-container/checkout-section-container.view.tsx?b4ab","webpack://Msdyn365.Commerce.Online/./src/modules/checkout-section-container/components/loading.tsx?2e57","webpack://Msdyn365.Commerce.Online/./src/modules/back-top-footer/back-top-footer.tsx?f47e"],"sourcesContent":["// tslint:disable:no-reference\r\n\r\nimport { IAutoSuggestOptions } from '@msdyn365-commerce-modules/address';\r\nimport { IStoreSelectorStateManager } from '@msdyn365-commerce-modules/bopis-utilities';\r\nimport { ITelemetry } from '@msdyn365-commerce/core';\r\n/**\r\n *\r\n * Auto Suggest\r\n */\r\nexport class AutoSuggest {\r\n public readonly excludedAddressFields: string[] = ['ThreeLetterISORegionName', 'Name', 'AddressTypeValue', 'Phone'];\r\n private telemetry: ITelemetry;\r\n private countryCode?: string;\r\n private bingMapsApiKey?: string;\r\n private defaultLanguageId?: string;\r\n private autoSuggestManager: Microsoft.Maps.AutosuggestManager | undefined;\r\n private autoSuggestOptions: IAutoSuggestOptions;\r\n\r\n constructor(\r\n telemetry: ITelemetry,\r\n autoSuggestOptions: IAutoSuggestOptions,\r\n BingMapsApiKey?: string,\r\n countryCode?: string,\r\n defaultLanguageId?: string\r\n ) {\r\n this.telemetry = telemetry;\r\n this.autoSuggestOptions = autoSuggestOptions;\r\n this.bingMapsApiKey = BingMapsApiKey;\r\n this.countryCode = countryCode;\r\n this.defaultLanguageId = defaultLanguageId;\r\n }\r\n\r\n public attachAutoSuggest = (\r\n inputId: string,\r\n containerId: string,\r\n selectedSuggestionCallback: (result: Microsoft.Maps.ISuggestionResult) => void\r\n ): void => {\r\n if (!this.autoSuggestManager) {\r\n Microsoft.Maps.loadModule('Microsoft.Maps.AutoSuggest', {\r\n callback: () => {\r\n const options = {\r\n ...this.autoSuggestOptions,\r\n countryCode: this.countryCode\r\n };\r\n this.autoSuggestManager = new Microsoft.Maps.AutosuggestManager(options);\r\n this.autoSuggestManager.attachAutosuggest(inputId, containerId, selectedSuggestionCallback);\r\n document.querySelector(inputId)?.setAttribute('role', 'combobox');\r\n setTimeout(() => {\r\n document.querySelector(inputId)?.setAttribute('type', 'text');\r\n }, 0);\r\n },\r\n errorCallback: () => {\r\n if (this.telemetry) {\r\n this.telemetry.debug('Unable to attach map auto suggest.');\r\n }\r\n },\r\n credentials: this.bingMapsApiKey\r\n });\r\n }\r\n };\r\n\r\n public changeAutoSuggestionCountryCode = (countryCode?: string): void => {\r\n if (this.autoSuggestManager) {\r\n this.autoSuggestOptions.countryCode = countryCode;\r\n this.autoSuggestManager.setOptions(this.autoSuggestOptions);\r\n }\r\n };\r\n\r\n public disposeAutoSuggest = (): void => {\r\n this.autoSuggestManager?.detachAutosuggest();\r\n this.autoSuggestManager?.dispose();\r\n this.autoSuggestManager = undefined;\r\n };\r\n\r\n public _loadMapAPI = async (storeSelectorStateManager: IStoreSelectorStateManager): Promise => {\r\n await storeSelectorStateManager.loadMapApi({\r\n key: this.bingMapsApiKey,\r\n lang: this.countryCode,\r\n market: this.defaultLanguageId\r\n });\r\n };\r\n}\r\n","import { buildCacheKey } from '@msdyn365-commerce-modules/retail-actions';\r\nimport {\r\n CacheType,\r\n createObservableDataAction,\r\n IAction,\r\n IActionContext,\r\n IActionInput,\r\n ICommerceApiSettings\r\n} from '@msdyn365-commerce/core';\r\nimport { getStateProvincesAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/StoreOperationsDataActions.g';\r\nimport { StateProvinceInfo } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\n\r\n/**\r\n * Input class for get state provinces data action\r\n */\r\nexport class GetStateProvincesInput implements IActionInput {\r\n public countryRegionId: string;\r\n private apiSettings: ICommerceApiSettings;\r\n\r\n constructor(countryRegionId: string, apiSettings: ICommerceApiSettings) {\r\n this.countryRegionId = countryRegionId;\r\n this.apiSettings = apiSettings;\r\n }\r\n\r\n public getCacheKey = () => buildCacheKey(`StateProvinceInfo-${this.countryRegionId}`, this.apiSettings);\r\n public getCacheObjectType = () => 'StateProvinceInfo';\r\n public dataCacheType = (): CacheType => 'request';\r\n}\r\n\r\nexport async function getStateProvinceAction(input: GetStateProvincesInput, ctx: IActionContext): Promise {\r\n return getStateProvincesAsync({ callerContext: ctx, queryResultSettings: {} }, input.countryRegionId);\r\n}\r\n\r\nexport default createObservableDataAction({\r\n action: >getStateProvinceAction\r\n});\r\n","import { addAddress, AddressManagementInput, updateAddress, updatePrimaryAddress } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { IActionInput, ICoreContext, IObservableAction, ITelemetry } from '@msdyn365-commerce/core';\r\nimport { Address, CountryRegionInfo, StateProvinceInfo } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\n\r\nimport { getStateProvinceAction, GetStateProvincesInput } from './../actions/get-state-provinces';\r\nimport { IAddressResource, IAddressResponse } from './address-module.data';\r\n\r\n/**\r\n *\r\n * Address common\r\n */\r\nexport class AddressCommon {\r\n private context: ICoreContext;\r\n private resources: IAddressResource;\r\n private telemetry: ITelemetry;\r\n\r\n constructor(context: ICoreContext, resources: IAddressResource, telemetry: ITelemetry) {\r\n this.context = context;\r\n this.resources = resources;\r\n this.telemetry = telemetry;\r\n }\r\n\r\n public getDefaultCountryRegionId = (countryRegionId: string, countryRegions: CountryRegionInfo[], market?: string): string => {\r\n const marketISOCode = market || 'US';\r\n const currentCountryRegion = countryRegions.find(countryRegion => (countryRegion.ISOCode || '') === marketISOCode);\r\n return (currentCountryRegion && currentCountryRegion.CountryRegionId) || countryRegionId;\r\n };\r\n\r\n public parseRetailException = (resources: IAddressResource): IAddressResponse => {\r\n return {\r\n errorTitle: resources.addressErrorMessageTitle,\r\n errorMessage: resources.addressGenericErrorMessage\r\n };\r\n };\r\n\r\n public isAuthenticatedFlow = (): boolean => {\r\n return this.context.request.user.isAuthenticated;\r\n };\r\n\r\n public getStateProvinces = async (countryRegionId: string): Promise => {\r\n let response: StateProvinceInfo[] = [];\r\n if (this.context && this.context.actionContext) {\r\n try {\r\n const input = new GetStateProvincesInput(countryRegionId, this.context.request.apiSettings);\r\n response = await getStateProvinceAction(input, this.context.actionContext);\r\n } catch (error) {\r\n if (this.telemetry) {\r\n this.telemetry.error(`Error encountered ${error}`);\r\n this.telemetry.debug('Unable to get state provinces');\r\n }\r\n }\r\n }\r\n return Promise.resolve(response);\r\n };\r\n\r\n // For any address, check for common requried field else treat it as invalid\\empty address.\r\n public isEmpty = (address: Address): boolean => {\r\n if (address && address.ThreeLetterISORegionName && address.City) {\r\n return false;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n public addCustomerAddress = (address: Address): Promise => {\r\n return this.submitCustomerAddress(addAddress, address);\r\n };\r\n\r\n public updateCustomerAddress = (address: Address): Promise => {\r\n return this.submitCustomerAddress(updateAddress, address);\r\n };\r\n\r\n public updateCustomerPrimaryAddress = (address: Address): Promise => {\r\n return this.submitCustomerAddress(updatePrimaryAddress, address);\r\n };\r\n\r\n private submitCustomerAddress = (addressAction: IObservableAction, address: Address): Promise => {\r\n address.AddressTypeValue = address.AddressTypeValue || 7; // 7 sets it to HOME by default\r\n\r\n const input = new AddressManagementInput(address);\r\n return this.execAddressAction(addressAction, input, address);\r\n };\r\n\r\n private execAddressAction = async (\r\n addressAction: IObservableAction,\r\n input: IActionInput | IActionInput[],\r\n address: Address\r\n ): Promise => {\r\n let response: IAddressResponse = {};\r\n\r\n if (this.context && this.context.actionContext) {\r\n try {\r\n const addresses = await addressAction(input, this.context.actionContext);\r\n if (addresses.length > 0) {\r\n const currentAddress = addresses.find(\r\n newAddress =>\r\n newAddress.Name === address.Name &&\r\n newAddress.AddressTypeValue === address.AddressTypeValue &&\r\n newAddress.City === address.City &&\r\n newAddress.Phone === address.Phone &&\r\n newAddress.State === address.State &&\r\n newAddress.Street === address.Street &&\r\n newAddress.ThreeLetterISORegionName === address.ThreeLetterISORegionName &&\r\n newAddress.ZipCode === address.ZipCode\r\n );\r\n response.address = address.RecordId ? address : currentAddress ? currentAddress : addresses[addresses.length - 1];\r\n } else {\r\n response.address = address;\r\n }\r\n response.customerAddresses = addresses;\r\n } catch (error) {\r\n if (this.telemetry) {\r\n this.telemetry.error(`Error encountered ${error}`);\r\n this.telemetry.debug('Unable to exec address action');\r\n }\r\n response = this.parseRetailException(this.resources);\r\n }\r\n }\r\n return Promise.resolve(response);\r\n };\r\n}\r\n","export enum AddressItemDisplayType {\r\n Input = 'Input',\r\n Dropdown = 'Dropdown',\r\n Checkbox = 'Checkbox'\r\n}\r\n\r\nexport enum AddressValidationRuleType {\r\n Required = 'Required',\r\n Format = 'Format'\r\n}\r\n\r\nexport enum AddressItemType {\r\n Name = 1001,\r\n Phone = 1002,\r\n IsPrimary = 1003,\r\n AddressTypeValue = 1004,\r\n ZipCode = 1,\r\n City = 2,\r\n County = 3,\r\n State = 4,\r\n ThreeLetterISORegionName = 5,\r\n Street = 6,\r\n District = 7,\r\n StreetNumber = 8,\r\n BuildingCompliment = 9,\r\n Postbox = 10,\r\n House_RU = 21,\r\n Flat_RU = 22,\r\n CountryOKSMCode_RU = 23\r\n}\r\n\r\nexport interface IAddressItem {\r\n name: string;\r\n type: AddressItemType;\r\n label: string;\r\n maxLength: number;\r\n displayType: AddressItemDisplayType;\r\n validationRules?: IAddressValidationRule[];\r\n isNewLine: boolean;\r\n}\r\n\r\nexport interface IAddressValidationRule {\r\n type: AddressValidationRuleType;\r\n regEx: string;\r\n message: string;\r\n}\r\n\r\nexport interface IAddressDropdownsData {\r\n [index: string]: { key?: string | number; value?: string }[];\r\n}\r\n","import { Heading } from '@msdyn365-commerce-modules/data-types';\r\nimport { Address } from '@msdyn365-commerce/retail-proxy';\r\n\r\nexport enum AddressOperation {\r\n Add = 'Add',\r\n Show = 'Show',\r\n Update = 'Update',\r\n List = 'List'\r\n}\r\n\r\nexport enum AddressType {\r\n Shipping = 'Shipping',\r\n Billing = 'Billing',\r\n Company = 'Company'\r\n}\r\n\r\nexport interface IDropdownDisplayData {\r\n [index: string]: { key?: string; value?: string }[];\r\n}\r\n\r\nexport interface IAddressResponse {\r\n errorTitle?: string;\r\n errorMessage?: string;\r\n customerAddresses?: Address[];\r\n address?: Address;\r\n}\r\n\r\nexport interface IAddressConfig {\r\n heading?: Heading;\r\n primaryAddressSectionHeading?: Heading;\r\n otherAddressSectionHeading?: Heading;\r\n addAddressHeading?: Heading;\r\n editAddressHeading?: Heading;\r\n}\r\n\r\nexport interface IAddressResource {\r\n addressAddButtonText: string;\r\n addressAddButtonAriaLabel: string;\r\n addressPrimaryButtonText: string;\r\n addressPrimaryButtonAriaLabel: string;\r\n addressEditButtonText: string;\r\n addressEditButtonAriaLabel: string;\r\n addressRemoveButtonText: string;\r\n addressRemoveButtonAriaLabel: string;\r\n addressSaveButtonText: string;\r\n addressSaveButtonAriaLabel: string;\r\n addressCancelButtonText: string;\r\n addressCancelButtonAriaLabel: string;\r\n addressStateDefaultSelectionText: string;\r\n addressNameLabel: string;\r\n addressNameLabelOptional?: string;\r\n addressNameRequiredErrorMessage: string;\r\n addressPhoneLabel: string;\r\n addressPhoneLabelOptional?: string;\r\n addressPhoneRequiredErrorMessage: string;\r\n addressZipCodeLabel: string;\r\n addressZipCodeLabelOptional?: string;\r\n addressZipCodeRequiredErrorMessage: string;\r\n addressCityLabel: string;\r\n addressCityLabelOptional?: string;\r\n addressCityRequiredErrorMessage: string;\r\n addressCountyLabel: string;\r\n addressCountyLabelOptional?: string;\r\n addressCountyRequiredErrorMessage: string;\r\n addressStateLabel: string;\r\n addressStateLabelOptional?: string;\r\n addressStateRequiredErrorMessage: string;\r\n addressThreeLetterISORegionNameLabel: string;\r\n addressThreeLetterISORegionNameLabelOptional?: string;\r\n addressThreeLetterISORegionNameRequiredErrorMessage: string;\r\n addressStreetLabel: string;\r\n addressStreetLabelOptional?: string;\r\n addressStreetRequiredErrorMessage: string;\r\n addressDistrictLabel: string;\r\n addressDistrictLabelOptional?: string;\r\n addressDistrictRequiredErrorMessage: string;\r\n addressStreetNumberLabel: string;\r\n addressStreetNumberLabelOptional?: string;\r\n addressStreetNumberRequiredErrorMessage: string;\r\n addressBuildingComplimentLabel: string;\r\n addressBuildingComplimentLabelOptional?: string;\r\n addressBuildingComplimentRequiredErrorMessage: string;\r\n addressPostboxLabel: string;\r\n addressPostboxLabelOptional?: string;\r\n addressPostboxRequiredErrorMessage: string;\r\n addressHouseRULabel: string;\r\n addressHouseRULabelOptional?: string;\r\n addressHouseRURequiredErrorMessage: string;\r\n addressFlatRULabel: string;\r\n addressFlatRULabelOptional?: string;\r\n addressFlatRURequiredErrorMessage: string;\r\n addressCountryOKSMCodeRULabel: string;\r\n addressCountryOKSMCodeRURequiredErrorMessage: string;\r\n addressErrorMessageTitle: string;\r\n addressGenericErrorMessage: string;\r\n addressEmptyListAddressMessage: string;\r\n}\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { get, set } from 'mobx';\r\n\r\nimport {\r\n Address,\r\n AddressPurpose,\r\n CountryRegionInfo,\r\n StateProvinceInfo\r\n} from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\n\r\nimport { AddressItemType, IAddressDropdownsData, IAddressItem, IAddressValidationRule } from './address-format.data';\r\nimport { AddressMetaData } from './address-meta-data';\r\n\r\n/**\r\n *\r\n * Retail Service Address format parser\r\n */\r\nexport class AddressFormat {\r\n private countryRegionsInfo?: CountryRegionInfo[];\r\n private addressPurposes?: AddressPurpose[];\r\n private addressMetaData: AddressMetaData;\r\n\r\n constructor(countryRegionsInfo: CountryRegionInfo[], addressMetaData: AddressMetaData, addressPurposes: AddressPurpose[]) {\r\n this.countryRegionsInfo = countryRegionsInfo;\r\n this.addressMetaData = addressMetaData;\r\n this.addressPurposes = addressPurposes;\r\n }\r\n\r\n public getAddressFormat(countryRegionId: string): IAddressItem[] {\r\n const countryRegionInfo = this._getCountryRegionInfo(countryRegionId);\r\n if (countryRegionInfo) {\r\n return this._getAddressDisplayFormat(countryRegionInfo);\r\n }\r\n return [];\r\n }\r\n\r\n public getCountryFormat(): { key?: string; value?: string }[] {\r\n return (this.countryRegionsInfo || []).map(countryRegion => {\r\n return {\r\n key: countryRegion.CountryRegionId,\r\n value: countryRegion.ShortName\r\n };\r\n });\r\n }\r\n\r\n public getStateFormat(stateProvinceInfo?: StateProvinceInfo[]): { key?: string; value?: string }[] {\r\n return (stateProvinceInfo || []).map(state => {\r\n return {\r\n key: state.StateId,\r\n value: state.StateName\r\n };\r\n });\r\n }\r\n\r\n public getAddressTypeFormat(): { key?: number; value?: string }[] {\r\n return (this.addressPurposes || []).map(addressPurpose => {\r\n return {\r\n key: addressPurpose.AddressType,\r\n value: addressPurpose.Name\r\n };\r\n });\r\n }\r\n\r\n public getPrefilledAddressDropdownData = (\r\n stateDefaultSelectionText: string,\r\n stateProvinceInfo?: StateProvinceInfo[]\r\n ): IAddressDropdownsData => {\r\n const defaultStateText = {\r\n key: '',\r\n value: stateDefaultSelectionText\r\n };\r\n const dropdownData: IAddressDropdownsData = {};\r\n\r\n dropdownData[AddressItemType[AddressItemType.ThreeLetterISORegionName]] = this.getCountryFormat();\r\n dropdownData[AddressItemType[AddressItemType.State]] = this.getStateFormat(stateProvinceInfo);\r\n dropdownData[AddressItemType[AddressItemType.State]].unshift(defaultStateText);\r\n dropdownData[AddressItemType[AddressItemType.AddressTypeValue]] = this.getAddressTypeFormat();\r\n\r\n return dropdownData;\r\n };\r\n\r\n public getTwoLetterISORegionName = (countryRegionId: string): string | undefined => {\r\n const countryRegionInfo = this._getCountryRegionInfo(countryRegionId);\r\n\r\n return countryRegionInfo!.ISOCode;\r\n };\r\n\r\n public validateAddressFormat = (\r\n address: Address,\r\n validationError: Address,\r\n countryRegionId: string,\r\n propertyName?: string\r\n ): boolean => {\r\n let isValid: boolean = true;\r\n let validationtor;\r\n const addressFormat = this.getAddressFormat(address.ThreeLetterISORegionName || countryRegionId);\r\n\r\n addressFormat.forEach(addressFormatItem => {\r\n if (!propertyName || (propertyName && addressFormatItem.name === propertyName)) {\r\n validationtor = this._inputValidation(addressFormatItem, validationError, address);\r\n if (validationtor !== undefined) {\r\n isValid = validationtor;\r\n }\r\n }\r\n });\r\n\r\n return isValid;\r\n };\r\n\r\n public getTranformedAddress = (result: Microsoft.Maps.ISuggestionResult, stateProvinceInfo?: StateProvinceInfo[]): Address => {\r\n const address: Address = {};\r\n\r\n // Zip Code\r\n if (result.address.postalCode !== undefined) {\r\n address.ZipCode = result.address.postalCode;\r\n } else {\r\n address.ZipCode = '';\r\n }\r\n\r\n // State\r\n if (stateProvinceInfo) {\r\n const selectedState = stateProvinceInfo.find(state => state.StateName === result.address.adminDistrict);\r\n if (!selectedState) {\r\n address.State = '';\r\n address.StateName = result.address.adminDistrict;\r\n } else {\r\n address.State = selectedState.StateId;\r\n address.StateName = selectedState.StateName;\r\n }\r\n }\r\n\r\n // Street\r\n if (result.address.addressLine !== undefined) {\r\n address.Street = result.address.addressLine;\r\n } else {\r\n address.Street = ' ';\r\n }\r\n\r\n // City\r\n if (result.address.locality !== undefined) {\r\n address.City = result.address.locality;\r\n } else {\r\n address.City = '';\r\n }\r\n\r\n // District\r\n if (result.address.district !== undefined) {\r\n address.DistrictName = result.address.district;\r\n address.CountyName = result.address.district;\r\n } else {\r\n address.DistrictName = '';\r\n }\r\n\r\n // formatted Address\r\n address.FullAddress = result.address.formattedAddress;\r\n\r\n return address;\r\n };\r\n\r\n private _inputValidation(addressFormatItem: IAddressItem, validationError: Address, address: Address): boolean | undefined {\r\n set(validationError, { [addressFormatItem.name]: null });\r\n for (const validationRule of addressFormatItem.validationRules || []) {\r\n if (!this._validateRegEx(address, addressFormatItem.name, validationRule)) {\r\n set(validationError, {\r\n [addressFormatItem.name]: validationRule.message\r\n });\r\n return false;\r\n }\r\n }\r\n return undefined;\r\n }\r\n private _validateRegEx = (address: Address, propertyName: string, validationRule: IAddressValidationRule): boolean => {\r\n if (validationRule.regEx && validationRule.regEx.length > 0) {\r\n const regex = new RegExp(validationRule.regEx);\r\n return regex.test(get(address, propertyName) || '');\r\n }\r\n return true;\r\n };\r\n\r\n private _getCountryRegionInfo(countryRegionId: string): CountryRegionInfo | undefined {\r\n return (this.countryRegionsInfo || []).find(countryRegion => {\r\n return (countryRegion.CountryRegionId || '').toLowerCase() === countryRegionId.toLowerCase();\r\n });\r\n }\r\n\r\n private _getAddressDisplayFormat(countryRegionInfo: CountryRegionInfo): IAddressItem[] {\r\n const addressDisplayItem: IAddressItem[] = [];\r\n\r\n if (countryRegionInfo && countryRegionInfo.AddressFormatLines) {\r\n const AddressTypeItem = this._extendAddressDisplayFormat(AddressItemType.AddressTypeValue, true);\r\n if (AddressTypeItem) {\r\n addressDisplayItem.push(AddressTypeItem);\r\n }\r\n\r\n const nameDisplayItem = this._extendAddressDisplayFormat(AddressItemType.Name, true);\r\n if (nameDisplayItem) {\r\n addressDisplayItem.push(nameDisplayItem);\r\n }\r\n\r\n countryRegionInfo.AddressFormatLines.forEach(formatLine => {\r\n if (formatLine.AddressComponentNameValue) {\r\n const addressItem = this.addressMetaData.getItemFormat(formatLine.AddressComponentNameValue);\r\n if (addressItem) {\r\n addressItem.isNewLine = formatLine.NewLine || false;\r\n addressDisplayItem.push(addressItem);\r\n }\r\n }\r\n });\r\n\r\n const phoneDisplayItem = this._extendAddressDisplayFormat(AddressItemType.Phone, false);\r\n if (phoneDisplayItem) {\r\n addressDisplayItem.push(phoneDisplayItem);\r\n }\r\n\r\n const isPrimaryDisplayItem = this._extendAddressDisplayFormat(AddressItemType.IsPrimary, false);\r\n if (isPrimaryDisplayItem) {\r\n addressDisplayItem.push(isPrimaryDisplayItem);\r\n }\r\n }\r\n\r\n return addressDisplayItem;\r\n }\r\n\r\n private _extendAddressDisplayFormat(type: AddressItemType, isNewLine: boolean): IAddressItem | undefined {\r\n const addressItem = this.addressMetaData.getItemFormat(type);\r\n if (addressItem) {\r\n addressItem.isNewLine = isNewLine;\r\n }\r\n return addressItem;\r\n }\r\n}\r\n","import {\r\n AddressItemDisplayType,\r\n AddressItemType,\r\n AddressValidationRuleType,\r\n IAddressItem,\r\n IAddressValidationRule\r\n} from './address-format.data';\r\nimport { IAddressResource } from './address-module.data';\r\n\r\n/**\r\n * Address meta data\r\n */\r\nexport class AddressMetaData {\r\n private metaData: IAddressItem[] = [];\r\n private resources: IAddressResource;\r\n private requiredFieldRegEx: string = '\\\\S';\r\n private resourcesPrefix: string = 'address';\r\n private maxLength: number = 64;\r\n private requiredFields: AddressItemType[];\r\n private excludedTypes: AddressItemType[];\r\n\r\n constructor(resources: IAddressResource, excluded?: AddressItemType[], required?: AddressItemType[]) {\r\n this.resources = resources || {};\r\n this.excludedTypes = excluded || [];\r\n this.requiredFields =\r\n required !== undefined\r\n ? required\r\n : [\r\n AddressItemType.Name,\r\n AddressItemType.ZipCode,\r\n AddressItemType.City,\r\n AddressItemType.State,\r\n AddressItemType.ThreeLetterISORegionName,\r\n AddressItemType.Street\r\n ];\r\n this._init();\r\n }\r\n\r\n public getItemFormat(id: number): IAddressItem | undefined {\r\n return this.metaData.find(item => {\r\n return item.type === id;\r\n });\r\n }\r\n\r\n private _init(): void {\r\n this._addItem(AddressItemType.Name, AddressItemDisplayType.Input);\r\n this._addItem(AddressItemType.Phone, AddressItemDisplayType.Input);\r\n this._addItem(AddressItemType.ZipCode, AddressItemDisplayType.Input);\r\n this._addItem(AddressItemType.City, AddressItemDisplayType.Input);\r\n this._addItem(AddressItemType.County, AddressItemDisplayType.Input);\r\n this._addItem(AddressItemType.State, AddressItemDisplayType.Dropdown);\r\n this._addItem(AddressItemType.ThreeLetterISORegionName, AddressItemDisplayType.Dropdown);\r\n this._addItem(AddressItemType.Street, AddressItemDisplayType.Input);\r\n this._addItem(AddressItemType.District, AddressItemDisplayType.Input);\r\n this._addItem(AddressItemType.StreetNumber, AddressItemDisplayType.Input);\r\n this._addItem(AddressItemType.BuildingCompliment, AddressItemDisplayType.Input);\r\n this._addItem(AddressItemType.Postbox, AddressItemDisplayType.Input);\r\n this._addItem(AddressItemType.House_RU, AddressItemDisplayType.Input);\r\n this._addItem(AddressItemType.Flat_RU, AddressItemDisplayType.Input);\r\n this._addItem(AddressItemType.CountryOKSMCode_RU, AddressItemDisplayType.Input);\r\n this._addItem(AddressItemType.AddressTypeValue, AddressItemDisplayType.Dropdown);\r\n this._addItem(AddressItemType.IsPrimary, AddressItemDisplayType.Checkbox);\r\n }\r\n\r\n private _addItem(type: AddressItemType, displayType: AddressItemDisplayType): void {\r\n if (this.excludedTypes.includes(type)) {\r\n return;\r\n }\r\n\r\n const nameKey = AddressItemType[type].replace('_', '');\r\n\r\n // find out if currentItem is required field\r\n const validationRules = this._validationRules(type, nameKey);\r\n let isRequired = false;\r\n validationRules.forEach(rule => {\r\n if (rule.type === AddressValidationRuleType.Required) {\r\n isRequired = true;\r\n }\r\n });\r\n\r\n // if no optional string is provided in resource file, use the original label text\r\n const optionalString =\r\n this.resources[`${this.resourcesPrefix}${nameKey}LabelOptional`] || this.resources[`${this.resourcesPrefix}${nameKey}Label`];\r\n const item: IAddressItem = {\r\n type,\r\n displayType,\r\n name: AddressItemType[type],\r\n label: isRequired ? this.resources[`${this.resourcesPrefix}${nameKey}Label`] : optionalString,\r\n maxLength: this.maxLength,\r\n validationRules: validationRules,\r\n isNewLine: true\r\n };\r\n\r\n this.metaData.push(item);\r\n }\r\n\r\n private _validationRules(type: AddressItemType, name: string): IAddressValidationRule[] {\r\n const validationRules: IAddressValidationRule[] = [];\r\n\r\n for (const ruleType of Object.keys(AddressValidationRuleType)) {\r\n const key = `${this.resourcesPrefix}${name}${ruleType}`;\r\n const message = this.resources[`${key}ErrorMessage`];\r\n switch (ruleType) {\r\n case AddressValidationRuleType.Required: {\r\n if (this.requiredFields.find((itemType: AddressItemType) => itemType === type)) {\r\n validationRules.push(this._validationRule(ruleType, this.requiredFieldRegEx, message));\r\n }\r\n break;\r\n }\r\n default:\r\n }\r\n }\r\n return validationRules;\r\n }\r\n\r\n private _validationRule(type: AddressValidationRuleType, regEx: string, message: string): IAddressValidationRule {\r\n return {\r\n type,\r\n regEx,\r\n message\r\n };\r\n }\r\n}\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport * as React from 'react';\r\n\r\nexport interface IAdressAlert {\r\n message?: string;\r\n}\r\n\r\nconst AdressAlert: React.FC = ({ message }) => (\r\n \r\n {message && <>{message}}\r\n \r\n);\r\n\r\nexport default AdressAlert;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nexport interface IAddressButton {\r\n className: string;\r\n text: string;\r\n ariaLabel: string;\r\n disabled?: boolean;\r\n telemetryContent?: ITelemetryContent;\r\n onClick(event: React.MouseEvent): void;\r\n}\r\n\r\nconst AddressButton: React.FC = ({ className, text, ariaLabel, disabled, telemetryContent, onClick }) => {\r\n const payLoad = getPayloadObject('click', telemetryContent!, text);\r\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default AddressButton;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nexport interface IAdressCheckbox {\r\n id?: string;\r\n name?: string;\r\n className: string;\r\n type: string;\r\n isChecked: boolean;\r\n autoFocus?: boolean;\r\n additionalAddributes?: object;\r\n telemetryContent?: ITelemetryContent;\r\n onChange(event: React.ChangeEvent): void;\r\n}\r\n\r\nconst AdressCheckbox: React.FC = ({\r\n id,\r\n name,\r\n className,\r\n type,\r\n isChecked,\r\n additionalAddributes,\r\n telemetryContent,\r\n autoFocus,\r\n onChange\r\n}) => {\r\n const payLoad = getPayloadObject('click', telemetryContent!, name!);\r\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default AdressCheckbox;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport * as React from 'react';\r\n\r\nexport interface IAdressDropdown {\r\n id: string;\r\n name: string;\r\n className: string;\r\n value: string | number;\r\n additionalAddributes?: object;\r\n displayData: { key?: string | number; value?: string }[];\r\n onChange(event: React.ChangeEvent): void;\r\n}\r\n\r\nconst getDropdownItem = (key?: string | number, value?: string, selectedValue?: string | number): React.ReactNode => {\r\n let isSelected: boolean;\r\n if (typeof key === 'number') {\r\n isSelected = key === selectedValue;\r\n } else {\r\n isSelected = typeof selectedValue === 'string' && (key || '').toLowerCase() === (selectedValue || '').toLowerCase();\r\n }\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nconst AdressDropdown: React.FC = ({ id, name, className, value, additionalAddributes, displayData, onChange }) => (\r\n \r\n);\r\n\r\nexport default AdressDropdown;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport * as React from 'react';\r\n\r\nexport interface IAdressErrorMessage {\r\n message: string;\r\n}\r\n\r\nconst AdressErrorMessage: React.FC = ({ message }) =>

{message}

;\r\n\r\nexport default AdressErrorMessage;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport * as React from 'react';\r\n\r\nexport interface IAdressErrorTitle {\r\n title: string;\r\n}\r\n\r\nconst AdressErrorTitle: React.FC = ({ title }) =>

{title}

;\r\n\r\nexport default AdressErrorTitle;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nexport interface IAdressInput {\r\n id?: string;\r\n name?: string;\r\n className: string;\r\n type: string;\r\n value: string;\r\n maxLength?: number;\r\n autoFocus?: boolean;\r\n additionalAddributes?: object;\r\n telemetryContent?: ITelemetryContent;\r\n onChange(event: React.ChangeEvent): void;\r\n}\r\n\r\nconst AdressInput: React.FC = ({\r\n id,\r\n name,\r\n className,\r\n type,\r\n value,\r\n maxLength,\r\n additionalAddributes,\r\n autoFocus,\r\n telemetryContent,\r\n onChange\r\n}) => {\r\n const payLoad = getPayloadObject('click', telemetryContent!, name!);\r\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default AdressInput;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport * as React from 'react';\r\n\r\nexport interface IAdressLabel {\r\n id: string;\r\n text: string;\r\n}\r\n\r\nconst AdressLabel: React.FC = ({ id, text }) => (\r\n \r\n);\r\n\r\nexport default AdressLabel;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport classname from 'classnames';\r\nimport { get } from 'mobx';\r\nimport * as React from 'react';\r\n\r\nimport { Heading as HeadingData } from '@msdyn365-commerce-modules/data-types';\r\nimport { Heading, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport { Address } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\n\r\nimport { AddressType, IAddressResource, IAddressResponse } from './../address-module.data';\r\n\r\nimport {\r\n AddressItemDisplayType,\r\n AddressItemType,\r\n AddressValidationRuleType,\r\n IAddressDropdownsData,\r\n IAddressItem,\r\n IAddressValidationRule\r\n} from './../address-format.data';\r\n\r\nimport AddressAlertComponent from './address-alert';\r\nimport AddressButtonComponent from './address-button';\r\nimport AdressCheckboxComponent from './address-checkbox';\r\nimport AdressDropdownComponent from './address-dropdown';\r\nimport AddressErrorMessageComponent from './address-error-message';\r\nimport AddressErrorTitleComponent from './address-error-title';\r\nimport AddressInputComponent from './address-input';\r\nimport AddressLabelComponent from './address-label';\r\n\r\nexport interface IAddressAddInputProps {\r\n isUpdating?: boolean;\r\n hasError?: boolean;\r\n hasExternalSubmitGroup?: boolean;\r\n addressType: AddressType;\r\n addressFormat: IAddressItem[];\r\n defaultCountryRegionId: string;\r\n defaultAddressType: number;\r\n selectedAddress?: Address;\r\n dropdownDisplayData: IAddressDropdownsData;\r\n resources: IAddressResource;\r\n addressActionResponse?: IAddressResponse;\r\n addAddressHeading?: HeadingData;\r\n editAddressHeading?: HeadingData;\r\n validationError?: object;\r\n telemetryContent?: ITelemetryContent;\r\n onInputChange(event: React.ChangeEvent): void;\r\n onDropdownChange(event: React.ChangeEvent): void;\r\n onSave?(): void;\r\n onCancel?(): void;\r\n}\r\n\r\nexport interface IAddressError {\r\n AddressError: INodeProps;\r\n title: React.ReactNode;\r\n message: React.ReactNode;\r\n}\r\n\r\nexport interface IAddressAddItem {\r\n key: string;\r\n AddressItem: INodeProps;\r\n label: React.ReactNode;\r\n alert: React.ReactNode;\r\n input: React.ReactNode;\r\n}\r\n\r\nexport interface IAddressAddUpdateProps {\r\n AddressForm: INodeProps;\r\n heading: React.ReactNode;\r\n items: IAddressAddItem[];\r\n hasError: boolean;\r\n error: IAddressError;\r\n isShowSaveButton: boolean;\r\n saveButton: React.ReactNode;\r\n isShowCancelButton: boolean;\r\n cancelButton: React.ReactNode;\r\n}\r\n\r\nconst getRequriedAttribute = (validationRules?: IAddressValidationRule[]): object => {\r\n const requriedRule = (validationRules || []).find(validationRule => {\r\n return validationRule.type === AddressValidationRuleType.Required;\r\n });\r\n\r\n return requriedRule ? { 'aria-required': true } : {};\r\n};\r\n\r\nconst getAddessItems = (selectedAddress: Address, props: IAddressAddInputProps): IAddressAddItem[] => {\r\n const {\r\n addressFormat,\r\n addressType,\r\n dropdownDisplayData,\r\n defaultCountryRegionId,\r\n defaultAddressType,\r\n validationError = {},\r\n onInputChange,\r\n onDropdownChange\r\n } = props;\r\n\r\n // @ts-ignore\r\n return addressFormat.map((addressFormatItem, index) => {\r\n const elementId = `${addressType.toLowerCase()}_address${addressFormatItem.name.toLowerCase()}`;\r\n const errorMessage = get(validationError, addressFormatItem.name);\r\n const className = classname('msc-address-form__item', `msc-address-form__item-${addressFormatItem.name.toLowerCase()}`, {\r\n 'msc-address-form__item-newline': addressFormatItem.isNewLine,\r\n 'address-form__item-invalid': errorMessage\r\n });\r\n let input;\r\n\r\n if (addressFormatItem.displayType === AddressItemDisplayType.Input) {\r\n input = (\r\n \r\n );\r\n } else if (addressFormatItem.displayType === AddressItemDisplayType.Checkbox) {\r\n input = (\r\n \r\n );\r\n } else {\r\n const displayData = dropdownDisplayData[addressFormatItem.name];\r\n let selectedValue = selectedAddress[addressFormatItem.name];\r\n\r\n if (addressFormatItem.type === AddressItemType.ThreeLetterISORegionName) {\r\n selectedValue = selectedValue || defaultCountryRegionId;\r\n }\r\n\r\n if (addressFormatItem.type === AddressItemType.AddressTypeValue) {\r\n selectedValue = selectedValue || defaultAddressType;\r\n }\r\n\r\n input = (\r\n \r\n );\r\n }\r\n\r\n return {\r\n key: addressFormatItem.name,\r\n AddressItem: { className: className, id: `${elementId}_container` },\r\n label: ,\r\n alert: ,\r\n input: input\r\n };\r\n });\r\n};\r\n\r\nexport const AddressAddUpdate = (props: IAddressAddInputProps): IAddressAddUpdateProps => {\r\n const {\r\n editAddressHeading,\r\n addAddressHeading,\r\n selectedAddress = {},\r\n resources,\r\n hasError,\r\n onCancel,\r\n onSave,\r\n hasExternalSubmitGroup,\r\n isUpdating,\r\n addressActionResponse,\r\n telemetryContent\r\n } = props;\r\n const heading = selectedAddress.RecordId ? editAddressHeading : addAddressHeading;\r\n\r\n return {\r\n AddressForm: { className: 'msc-address-form' },\r\n heading: heading && ,\r\n items: getAddessItems(selectedAddress, props),\r\n isShowSaveButton: !hasExternalSubmitGroup,\r\n saveButton: onSave && (\r\n \r\n ),\r\n isShowCancelButton: !hasExternalSubmitGroup,\r\n cancelButton: onCancel && (\r\n \r\n ),\r\n hasError: hasError || false,\r\n error: {\r\n AddressError: { className: 'msc-address-form__error' },\r\n title: addressActionResponse && addressActionResponse.errorTitle && (\r\n \r\n ),\r\n message: addressActionResponse && addressActionResponse.errorMessage && (\r\n \r\n )\r\n }\r\n };\r\n};\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport classname from 'classnames';\r\nimport * as React from 'react';\r\n\r\nexport interface IAddressDetailItem {\r\n isNewLine: boolean;\r\n isShowLabel: boolean;\r\n labelText: string;\r\n name: string;\r\n value: string;\r\n}\r\n\r\nconst AddressDetailItem: React.FC = ({ isNewLine, isShowLabel, labelText, name, value }) => {\r\n const className = `msc-address-detail__item msc-address-detail__item-${name.toLowerCase()}`;\r\n const isEmpty = !(value && value.length > 0);\r\n const mainClass = isShowLabel\r\n ? `msc-address-detail__item msc-address-detail__item-address-detail_${labelText}`\r\n : classname(className, {\r\n 'msc-address-detail__item-empty': isEmpty,\r\n 'msc-address-detail__item-newline': isNewLine\r\n });\r\n return (\r\n \r\n {isShowLabel && (\r\n <>\r\n {labelText}\r\n \r\n \r\n )}\r\n {value}\r\n \r\n );\r\n};\r\n\r\nexport default AddressDetailItem;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport * as React from 'react';\r\n\r\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport { Address, AddressPurpose } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\n\r\nimport { AddressItemType, IAddressItem } from './../address-format.data';\r\nimport AddressDetailItemComponent from './address-detail-item';\r\n\r\nexport interface IAddressShowItem {\r\n key: string;\r\n description: React.ReactNode;\r\n}\r\n\r\nexport interface IAddressShowProps {\r\n AddressDetail: INodeProps;\r\n items: IAddressShowItem[];\r\n}\r\n\r\nexport interface IAddressShowInputProps {\r\n addressFormat: IAddressItem[];\r\n address: Address;\r\n addressPurposes: AddressPurpose[];\r\n}\r\n\r\nexport const AddressShow = (props: IAddressShowInputProps): IAddressShowProps => {\r\n const { addressFormat, addressPurposes, address } = props;\r\n\r\n return {\r\n AddressDetail: { className: 'msc-address-detail' },\r\n items: addressFormat.map(item => {\r\n if (item.name === AddressItemType[AddressItemType.AddressTypeValue]) {\r\n const addressType = addressPurposes.find(\r\n addressTypeValue => addressTypeValue.AddressType.toString() === (address[item.name] || '').toString()\r\n );\r\n if (addressType) {\r\n const value = addressType.Name || '';\r\n return {\r\n key: item.name,\r\n description: (\r\n \r\n )\r\n };\r\n }\r\n }\r\n return {\r\n key: item.name,\r\n description: (\r\n \r\n )\r\n };\r\n })\r\n };\r\n};\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport * as React from 'react';\r\n\r\nimport { INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport { Address, AddressPurpose } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\n\r\nimport { AddressFormat } from '../../common/address-format';\r\nimport { IAddressResource } from './../address-module.data';\r\nimport AddressButtonComponent from './address-button';\r\nimport AddressInputComponent from './address-input';\r\nimport { AddressShow, IAddressShowProps } from './address-show';\r\n\r\nexport interface IAddressSelectInputProps {\r\n hasExternalSubmitGroup?: boolean;\r\n addressFormat: AddressFormat;\r\n addresses: Address[];\r\n addressPurposes: AddressPurpose[];\r\n resources: IAddressResource;\r\n selectedAddress: Address;\r\n telemetryContent?: ITelemetryContent;\r\n onAddressOptionChange(event: React.ChangeEvent): void;\r\n onAddAddress(): void;\r\n onSave(): void;\r\n onCancel(): void;\r\n}\r\n\r\nexport interface IAddressSelectItem {\r\n key: number;\r\n SelectItem: INodeProps;\r\n input: React.ReactNode;\r\n showItems: IAddressShowProps;\r\n}\r\n\r\nexport interface IAddressSelectProps {\r\n SelectAddress: INodeProps;\r\n addButton: React.ReactNode;\r\n items: IAddressSelectItem[];\r\n isShowSaveButton: boolean;\r\n saveButton: React.ReactNode;\r\n isShowCancelButton: boolean;\r\n cancelButton: React.ReactNode;\r\n}\r\n\r\nconst getInput = (index: number, address: Address, props: IAddressSelectInputProps): React.ReactNode => {\r\n const { addresses, onAddressOptionChange, selectedAddress } = props;\r\n\r\n const ichecked = address.RecordId === selectedAddress.RecordId;\r\n const additionalAttributes = {\r\n checked: ichecked,\r\n 'aria-checked': ichecked,\r\n 'aria-setsize': addresses.length,\r\n 'aria-posinset': index + 1\r\n };\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nconst getAddressSelectItems = (props: IAddressSelectInputProps): IAddressSelectItem[] => {\r\n const { addresses, addressFormat, addressPurposes } = props;\r\n\r\n return addresses.map((address, index) => {\r\n return {\r\n key: address.RecordId || 0,\r\n SelectItem: { className: 'msc-address-select__item' },\r\n input: getInput(index, address, props),\r\n showItems: AddressShow({\r\n addressFormat: addressFormat.getAddressFormat(address.ThreeLetterISORegionName || ''),\r\n address: address,\r\n addressPurposes: addressPurposes\r\n })\r\n };\r\n });\r\n};\r\n\r\nexport const AddressSelect = (props: IAddressSelectInputProps): IAddressSelectProps => {\r\n const { resources, onCancel, onSave, onAddAddress, hasExternalSubmitGroup } = props;\r\n\r\n return {\r\n SelectAddress: { className: 'msc-address-select' },\r\n addButton: (\r\n \r\n ),\r\n isShowSaveButton: !hasExternalSubmitGroup,\r\n saveButton: (\r\n \r\n ),\r\n isShowCancelButton: !hasExternalSubmitGroup,\r\n cancelButton: (\r\n \r\n ),\r\n items: getAddressSelectItems(props)\r\n };\r\n};\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n/* tslint:disable: no-duplicate-imports */\r\nimport classnames from 'classnames';\r\nimport { action, computed, observable, reaction, set } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\n\r\nimport { IModuleStateProps, withModuleState } from '@msdyn365-commerce-modules/checkout-utilities';\r\nimport { getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport { Address, AddressPurpose, CountryRegionInfo, StateProvinceInfo } from '@msdyn365-commerce/retail-proxy';\r\n\r\nimport { IAutoSuggestOptions } from '@msdyn365-commerce-modules/address';\r\nimport { AutoSuggest } from './common/address-autosuggest';\r\nimport { AddressCommon } from './common/address-common';\r\nimport { AddressFormat } from './common/address-format';\r\nimport { AddressItemType } from './common/address-format.data';\r\nimport { AddressMetaData } from './common/address-meta-data';\r\nimport { AddressOperation, AddressType, IAddressResource, IAddressResponse } from './common/address-module.data';\r\nimport { AddressAddUpdate, IAddressAddUpdateProps } from './common/components/address-add';\r\nimport { AddressSelect, IAddressSelectProps } from './common/components/address-select';\r\nimport { AddressShow, IAddressShowProps } from './common/components/address-show';\r\nimport { ICustomCheckoutShippingAddressData } from './custom-checkout-shipping-address.data';\r\nimport { ICustomCheckoutShippingAddressProps } from './custom-checkout-shipping-address.props.autogenerated';\r\n\r\nexport interface ICheckoutAddressProps extends ICustomCheckoutShippingAddressProps, IModuleStateProps {}\r\n\r\nexport interface ICheckoutShippingAddressViewState {\r\n isShowAddress: boolean;\r\n isShowAddresList: boolean;\r\n isShowAddOrUpdateAddress: boolean;\r\n}\r\n\r\nexport interface ICheckoutShippingAddressViewProps extends ICheckoutAddressProps {\r\n className: string;\r\n currentOperation: AddressOperation;\r\n selectedAddress?: Address;\r\n addUpdateAddress: Address;\r\n addressListSelectedAddress: Address;\r\n countryRegionId: string;\r\n stateProvinceInfo?: StateProvinceInfo[];\r\n customerAddresses: Address[];\r\n validationError: object;\r\n addressActionResponse?: IAddressResponse;\r\n viewState: ICheckoutShippingAddressViewState;\r\n CheckoutShippingAddress: IModuleProps;\r\n isUpdating: boolean;\r\n hasError: boolean;\r\n showAddress: IAddressShowProps;\r\n showAddressSelect: IAddressSelectProps;\r\n showAddOrUpdateAddress: IAddressAddUpdateProps;\r\n}\r\n\r\n/**\r\n *\r\n * Address component\r\n * @extends {React.Component>}\r\n */\r\n// @ts-ignore\r\n@withModuleState\r\n@observer\r\nclass CheckoutShippingAddress extends React.Component {\r\n @observable private currentOperation: AddressOperation;\r\n @observable private selectedAddress?: Address;\r\n @observable private addUpdateAddress: Address;\r\n @observable private countryRegionId: string = 'USA';\r\n @observable private stateProvinceInfo?: StateProvinceInfo[];\r\n @observable private customerAddresses: Address[];\r\n @observable private validationError: object;\r\n @observable private addressActionResponse?: IAddressResponse;\r\n @observable private isUpdating?: boolean;\r\n @observable private hasError?: boolean;\r\n @observable private addressListSelectedAddress: Address = {};\r\n\r\n private addressCommon: AddressCommon;\r\n private addressFormat: AddressFormat;\r\n private countryRegions: CountryRegionInfo[];\r\n private addressPurposes: AddressPurpose[];\r\n private resources: IAddressResource;\r\n private defaultAddressType: number = 6; // Default to Home\r\n private telemetryContent?: ITelemetryContent;\r\n private autoSuggest?: AutoSuggest;\r\n private multiplePickupStoreSwitchName: string = 'Dynamics.AX.Application.RetailMultiplePickupDeliveryModeFeature';\r\n private retailMultiplePickUpOptionEnabled?: boolean = false;\r\n\r\n constructor(props: ICheckoutAddressProps) {\r\n super(props);\r\n const { context, data, resources, telemetry } = this.props;\r\n\r\n this.addUpdateAddress = {};\r\n this.resources = resources;\r\n this.currentOperation = AddressOperation.List;\r\n this.countryRegions = data.countryRegions.result || [];\r\n this.addressPurposes = data.addressPurposes.result || [];\r\n this.customerAddresses = data.address.result || [];\r\n this.stateProvinceInfo = data.countryStates.result || [];\r\n this.addressCommon = new AddressCommon(context, resources, telemetry);\r\n this.addressFormat = new AddressFormat(\r\n this.countryRegions,\r\n new AddressMetaData({ ...resources }, this._getAddressFormatExcludeList()),\r\n this.addressPurposes\r\n );\r\n this.validationError = {};\r\n this.retailMultiplePickUpOptionEnabled = data?.featureState?.result?.find(\r\n feature => feature.Name === this.multiplePickupStoreSwitchName\r\n )?.IsEnabled;\r\n this.telemetryContent = getTelemetryObject(\r\n this.props.context.request.telemetryPageName!,\r\n this.props.friendlyName,\r\n this.props.telemetry\r\n );\r\n }\r\n\r\n public async componentDidMount(): Promise {\r\n const {\r\n context: {\r\n telemetry,\r\n actionContext: {\r\n requestContext: { channel }\r\n }\r\n },\r\n config: { autoSuggestionEnabled, autoSuggestOptions }\r\n } = this.props;\r\n\r\n this.props.data.checkout.then(() => {\r\n this._setDefaultCountryRegionId();\r\n this._initModuleState();\r\n });\r\n\r\n reaction(\r\n () => this.countryRegionId,\r\n () => this._getStateProvinces()\r\n );\r\n\r\n reaction(\r\n () => this.currentOperation,\r\n () => {\r\n this._getStateProvinces();\r\n }\r\n );\r\n\r\n if (autoSuggestionEnabled) {\r\n if (channel && !channel.BingMapsApiKey) {\r\n telemetry.error('BingMapsApiKey is missing.');\r\n return;\r\n }\r\n\r\n if (channel && !channel.BingMapsEnabled) {\r\n telemetry.error('Map is disabled from HQ.');\r\n return;\r\n }\r\n\r\n const options: IAutoSuggestOptions = { ...autoSuggestOptions };\r\n this.autoSuggest = new AutoSuggest(\r\n telemetry,\r\n options,\r\n channel?.BingMapsApiKey,\r\n channel?.ChannelCountryRegionISOCode,\r\n channel?.DefaultLanguageId\r\n );\r\n\r\n // Customer doesn't have any address. Then add view will be loaded directly. Code for the same to handle that\r\n if (\r\n this.props.data.storeSelectorStateManager.result &&\r\n (this.currentOperation === AddressOperation.Add || this.currentOperation === AddressOperation.Update)\r\n ) {\r\n await this.autoSuggest?._loadMapAPI(await this.props.data.storeSelectorStateManager);\r\n }\r\n\r\n reaction(\r\n () =>\r\n this.props.data.storeSelectorStateManager.result?.loadMapApi &&\r\n (this.currentOperation === AddressOperation.Add || this.currentOperation === AddressOperation.Update),\r\n async () => {\r\n await this.autoSuggest?._loadMapAPI(await this.props.data.storeSelectorStateManager);\r\n }\r\n );\r\n\r\n reaction(\r\n () => this.props.data.storeSelectorStateManager.result?.isMapApiLoaded,\r\n async () => {\r\n await this._attachMapAutoSuggest();\r\n }\r\n );\r\n }\r\n }\r\n\r\n public async componentDidUpdate(): Promise {\r\n if (this.currentOperation === AddressOperation.Add || this.currentOperation === AddressOperation.Update) {\r\n if (this.props.data.storeSelectorStateManager.result?.isMapApiLoaded) {\r\n await this._attachMapAutoSuggest();\r\n }\r\n } else {\r\n this.autoSuggest?.disposeAutoSuggest();\r\n }\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n if (!this._canShip()) {\r\n return null;\r\n }\r\n\r\n const { renderView, config } = this.props;\r\n\r\n const viewProps = {\r\n ...this.props,\r\n currentOperation: this.currentOperation,\r\n selectedAddress: this.selectedAddress,\r\n addUpdateAddress: this.addUpdateAddress,\r\n addressListSelectedAddress: this.addressListSelectedAddress,\r\n countryRegionId: this.countryRegionId,\r\n stateProvinceInfo: this.stateProvinceInfo,\r\n customerAddresses: this.customerAddresses,\r\n validationError: this.validationError,\r\n addressActionResponse: this.addressActionResponse,\r\n isUpdating: this.isUpdating,\r\n hasError: this.hasError,\r\n className: config.className,\r\n viewState: {\r\n isShowAddress: this.currentOperation === AddressOperation.Show && this.selectedAddress,\r\n isShowAddresList: this.currentOperation === AddressOperation.List && this.customerAddresses.length > 0,\r\n isShowAddOrUpdateAddress:\r\n this.currentOperation === AddressOperation.Add || this.currentOperation === AddressOperation.Update\r\n },\r\n CheckoutShippingAddress: {\r\n moduleProps: this.props,\r\n className: classnames('ms-checkout-shipping-address', config.className)\r\n },\r\n showAddress: this._renderShowAddress(),\r\n showAddressSelect: this._renderSelectAddress(),\r\n showAddOrUpdateAddress: this._renderAddOrUpdateAddress()\r\n };\r\n\r\n return renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n private _renderAddOrUpdateAddress = (): IAddressAddUpdateProps => {\r\n const addressFormat =\r\n this.currentOperation === AddressOperation.Add && this.addressCommon.isAuthenticatedFlow()\r\n ? this.addressFormat\r\n : this.addressFormat;\r\n return AddressAddUpdate({\r\n isUpdating: this.isUpdating,\r\n resources: this.resources,\r\n addressType: AddressType.Shipping,\r\n addressFormat: addressFormat.getAddressFormat(this.addUpdateAddress.ThreeLetterISORegionName || this.countryRegionId),\r\n defaultCountryRegionId: this.countryRegionId,\r\n defaultAddressType: this.defaultAddressType,\r\n selectedAddress: this.addUpdateAddress,\r\n validationError: this.validationError,\r\n hasError: this.hasError,\r\n addressActionResponse: this.addressActionResponse,\r\n telemetryContent: this.telemetryContent,\r\n dropdownDisplayData: addressFormat.getPrefilledAddressDropdownData(\r\n this.resources.addressStateDefaultSelectionText,\r\n this.stateProvinceInfo\r\n ),\r\n onInputChange: this._onAddressAddUpdateInputChange,\r\n onDropdownChange: this._onAddressAddUpdateDropdownChange,\r\n hasExternalSubmitGroup: this.props.moduleState.hasExternalSubmitGroup,\r\n onSave: this.onSubmit,\r\n // tslint:disable-next-line: no-empty\r\n onCancel: !this.selectedAddress && !this.addressCommon.isAuthenticatedFlow() ? () => {} : this._resetView\r\n });\r\n };\r\n\r\n private _renderSelectAddress = (): IAddressSelectProps => {\r\n return AddressSelect({\r\n addressFormat: this.addressFormat,\r\n addresses: this.customerAddresses,\r\n resources: this.resources,\r\n addressPurposes: this.addressPurposes,\r\n selectedAddress: this.addressListSelectedAddress,\r\n onAddressOptionChange: this._onAddressOptionChange,\r\n hasExternalSubmitGroup: this.props.moduleState.hasExternalSubmitGroup,\r\n telemetryContent: this.telemetryContent,\r\n onAddAddress: this._goToAddAddress,\r\n onSave: this._onSelectAddress,\r\n // tslint:disable-next-line: no-empty\r\n onCancel: !this.selectedAddress ? () => {} : this._resetView\r\n });\r\n };\r\n\r\n private _renderShowAddress(): IAddressShowProps | null {\r\n if (this.selectedAddress) {\r\n return AddressShow({\r\n address: this.selectedAddress,\r\n addressFormat: this.addressFormat.getAddressFormat(this.selectedAddress.ThreeLetterISORegionName || ''),\r\n addressPurposes: this.addressPurposes\r\n });\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private _attachMapAutoSuggest = async (): Promise => {\r\n const {\r\n data: {\r\n storeSelectorStateManager: { result: storeSelectorStateManager }\r\n }\r\n } = this.props;\r\n\r\n if (storeSelectorStateManager?.isMapApiLoaded) {\r\n this.autoSuggest?.attachAutoSuggest('#shipping_addressstreet', '#shipping_addressstreet_container', this._onSuggestionSelected);\r\n }\r\n };\r\n\r\n @action\r\n private _onSuggestionSelected = async (result: Microsoft.Maps.ISuggestionResult): Promise => {\r\n this._clearAddressFields();\r\n const address = this.addressFormat.getTranformedAddress(result, this.stateProvinceInfo);\r\n set(this.addUpdateAddress, { ['Street']: '' });\r\n set(this.addUpdateAddress, { ['ZipCode']: address.ZipCode });\r\n set(this.addUpdateAddress, { ['CountyName']: address.CountyName });\r\n set(this.addUpdateAddress, { ['City']: address.City });\r\n set(this.addUpdateAddress, { ['State']: address.State });\r\n set(this.addUpdateAddress, { ['DistrictName']: address.DistrictName });\r\n set(this.addUpdateAddress, { ['FullAddress']: address.FullAddress });\r\n // Bing autosuggest put the complete address in the Street input box. Updating the street input box to show only street address.\r\n setTimeout(() => {\r\n set(this.addUpdateAddress, { ['Street']: address.Street });\r\n }, 0);\r\n };\r\n\r\n @action\r\n private _clearAddressFields = (): void => {\r\n const addressFormatItem = this.addressFormat.getAddressFormat(\r\n this.addUpdateAddress.ThreeLetterISORegionName || this.countryRegionId\r\n );\r\n addressFormatItem.forEach(format => {\r\n if (this.addUpdateAddress[format.name] !== undefined && !this.autoSuggest?.excludedAddressFields.includes(format.name)) {\r\n this.addressFormat[format.name] = '';\r\n }\r\n });\r\n this._clearValidation();\r\n };\r\n\r\n @action\r\n private _clearValidation = (): void => {\r\n this.validationError = {};\r\n };\r\n\r\n private _onAddressOptionChange = (event: React.ChangeEvent) => {\r\n const addressRecordId = event.currentTarget.value;\r\n const selectedAddress = this.customerAddresses.find(address => (address.RecordId || '').toString() === addressRecordId);\r\n if (selectedAddress) {\r\n this.addressListSelectedAddress = selectedAddress;\r\n }\r\n };\r\n\r\n private onAddressAddUpdate = (name: string, value: string | boolean) => {\r\n set(this.addUpdateAddress, { [name]: value });\r\n this.addressFormat.validateAddressFormat(this.addUpdateAddress, this.validationError, this.countryRegionId, name);\r\n };\r\n\r\n private _onAddressAddUpdateInputChange = (event: React.ChangeEvent): void => {\r\n if (event.target.type === 'checkbox') {\r\n this.onAddressAddUpdate(event.target.name, event.target.checked);\r\n } else {\r\n const value = (event.target.value || '').replace(new RegExp('[<>]', 'gi'), '');\r\n this.onAddressAddUpdate(event.target.name, value);\r\n }\r\n };\r\n\r\n private _onAddressAddUpdateDropdownChange = (event: React.ChangeEvent): void => {\r\n this.onAddressAddUpdate(event.target.name, event.target.value);\r\n\r\n if (event.target.name === AddressItemType[AddressItemType.ThreeLetterISORegionName]) {\r\n this._onCountryChange(event.target.value);\r\n }\r\n };\r\n\r\n private _onAddressAddUpdateSubmit = (): void => {\r\n if (!this.addressFormat.validateAddressFormat(this.addUpdateAddress, this.validationError, this.countryRegionId)) {\r\n return;\r\n }\r\n\r\n let response: Promise;\r\n if (this.addressCommon.isAuthenticatedFlow()) {\r\n response =\r\n this.currentOperation === AddressOperation.Update\r\n ? this.addressCommon.updateCustomerAddress(this.addUpdateAddress)\r\n : Promise.resolve({ address: this.addUpdateAddress });\r\n } else {\r\n response = Promise.resolve({ address: this.addUpdateAddress });\r\n }\r\n\r\n this.isUpdating = true;\r\n this._updateModuleState();\r\n\r\n response.then(\r\n (result: IAddressResponse) => {\r\n this.isUpdating = false;\r\n\r\n if (result.address) {\r\n this.hasError = false;\r\n this._onAddOrUpdateSuccess(result);\r\n } else {\r\n this.hasError = true;\r\n this.addressActionResponse = result;\r\n this._updateModuleState();\r\n }\r\n },\r\n () => {\r\n this.hasError = true;\r\n this.isUpdating = false;\r\n this._updateModuleState();\r\n }\r\n );\r\n };\r\n\r\n private _onCountryChange = (countryRegionId: string) => {\r\n this.countryRegionId = countryRegionId;\r\n const twoLetterISORegionName = this.addressFormat.getTwoLetterISORegionName(countryRegionId);\r\n set(this.addUpdateAddress, {\r\n ['ThreeLetterISORegionName']: countryRegionId\r\n });\r\n set(this.addUpdateAddress, {\r\n ['TwoLetterISORegionName']: twoLetterISORegionName\r\n });\r\n this.autoSuggest?.changeAutoSuggestionCountryCode(twoLetterISORegionName);\r\n this._clearAddressFields();\r\n };\r\n\r\n private _getAddressFormatExcludeList = (): AddressItemType[] => {\r\n const { config } = this.props;\r\n const addressFormatExcludeList: AddressItemType[] = [];\r\n\r\n if (!config.showAddressType) {\r\n addressFormatExcludeList.push(AddressItemType.AddressTypeValue);\r\n }\r\n\r\n addressFormatExcludeList.push(AddressItemType.IsPrimary);\r\n\r\n return addressFormatExcludeList;\r\n };\r\n\r\n private _getStateProvinces = (): void => {\r\n if (\r\n !this.countryRegionId ||\r\n !(this.currentOperation === AddressOperation.Add || this.currentOperation === AddressOperation.Update)\r\n ) {\r\n return;\r\n }\r\n\r\n // tslint:disable-next-line:no-floating-promises\r\n this.addressCommon.getStateProvinces(this.countryRegionId).then((result: StateProvinceInfo[]) => {\r\n const stateInfo = result.some(state => state.StateId === this.addUpdateAddress.State);\r\n // Reset state if selected state not found in the list.\r\n if (!stateInfo) {\r\n set(this.addUpdateAddress, { ['State']: '' });\r\n }\r\n\r\n this.stateProvinceInfo = result;\r\n });\r\n };\r\n\r\n private _setDefaultCountryRegionId(): void {\r\n const { request } = this.props.context;\r\n const market = request && request.channel && request.channel.ChannelCountryRegionISOCode;\r\n this.countryRegionId = this.addressCommon.getDefaultCountryRegionId(this.countryRegionId, this.countryRegions, market);\r\n }\r\n\r\n private _getDefaultAddress = (): Address | undefined => {\r\n if (this.customerAddresses) {\r\n const primaryAddress = this.customerAddresses.find((address: Address) => address.IsPrimary);\r\n return primaryAddress || (this.customerAddresses.length > 0 ? this.customerAddresses[0] : undefined);\r\n }\r\n return undefined;\r\n };\r\n\r\n private _initModuleState = (): void => {\r\n this.props.moduleState.init({\r\n status: this._canShip() ? 'updating' : 'disabled',\r\n onEdit: this.onEdit,\r\n onCancel: this.onCancel,\r\n onSubmit: this.onSubmit\r\n });\r\n\r\n if (this._canShip()) {\r\n const defaultAddress = this._getShippingAddressFromCartLines() || this._getDefaultAddress();\r\n if (defaultAddress && !this.addressCommon.isEmpty(defaultAddress)) {\r\n this._updateCurrentOperation(AddressOperation.Show, defaultAddress);\r\n this._setShippingAddress(defaultAddress);\r\n this._updateModuleState();\r\n } else {\r\n this._updateCurrentOperation(AddressOperation.Add);\r\n }\r\n }\r\n };\r\n\r\n private onSubmit = (): void => {\r\n switch (this.currentOperation) {\r\n case AddressOperation.Add:\r\n case AddressOperation.Update:\r\n this._onAddressAddUpdateSubmit();\r\n break;\r\n case AddressOperation.List:\r\n this._onSelectAddress();\r\n break;\r\n default:\r\n this.props.telemetry.error('Invalid operation');\r\n }\r\n };\r\n\r\n private onCancel = (): void => {\r\n switch (this.currentOperation) {\r\n case AddressOperation.Add:\r\n case AddressOperation.Update:\r\n this._clearAddressFields();\r\n if (!(!this.selectedAddress && !this.addressCommon.isAuthenticatedFlow())) {\r\n this._resetView();\r\n }\r\n\r\n break;\r\n case AddressOperation.List:\r\n if (this.selectedAddress) {\r\n this._resetView();\r\n }\r\n break;\r\n default:\r\n this.props.telemetry.error('Invalid operation');\r\n }\r\n };\r\n\r\n private onEdit = (): void => {\r\n if (this.addressCommon.isAuthenticatedFlow() && this.shippingAddress) {\r\n this._updateCurrentOperation(AddressOperation.List, this.shippingAddress);\r\n } else if (this.shippingAddress) {\r\n this._updateCurrentOperation(AddressOperation.Update, this.shippingAddress);\r\n }\r\n\r\n this._updateModuleState();\r\n };\r\n\r\n private _getShippingAddressFromCartLines = (): Address | undefined => {\r\n const { request } = this.props.context;\r\n const { channelDeliveryOptionConfig } = this.props.data;\r\n const pickupDeliveryModeCode = request && request.channel && request.channel.PickupDeliveryModeCode;\r\n const emailDeliveryModeCode = request && request.channel && request.channel.EmailDeliveryModeCode;\r\n\r\n const cartLines = this.retailMultiplePickUpOptionEnabled\r\n ? ((this.props.data.checkout.result && this.props.data.checkout.result.checkoutCart.cart.CartLines) || []).filter(cartLine =>\r\n cartLine.DeliveryMode && cartLine.DeliveryMode !== ''\r\n ? cartLine.DeliveryMode !==\r\n channelDeliveryOptionConfig.result?.PickupDeliveryModeCodes?.find(\r\n deliveryMode => deliveryMode === cartLine.DeliveryMode\r\n ) && cartLine.DeliveryMode !== emailDeliveryModeCode\r\n : cartLine\r\n )\r\n : ((this.props.data.checkout.result && this.props.data.checkout.result.checkoutCart.cart.CartLines) || []).filter(cartLine =>\r\n cartLine.DeliveryMode && cartLine.DeliveryMode !== ''\r\n ? cartLine.DeliveryMode !== pickupDeliveryModeCode && cartLine.DeliveryMode !== emailDeliveryModeCode\r\n : cartLine\r\n );\r\n\r\n if (cartLines && cartLines.length > 0) {\r\n return cartLines[0].ShippingAddress;\r\n }\r\n\r\n return undefined;\r\n };\r\n\r\n private _canShip = (): boolean => {\r\n const { checkout, channelDeliveryOptionConfig } = this.props.data;\r\n const { request } = this.props.context;\r\n const pickupDeliveryModeCode = request && request.channel && request.channel.PickupDeliveryModeCode;\r\n const emailDeliveryModeCode = request && request.channel && request.channel.EmailDeliveryModeCode;\r\n if (!checkout.result || !request.channel || checkout.result.checkoutCart.isEmpty || checkout.result.checkoutCart.hasInvoiceLine) {\r\n return false;\r\n }\r\n\r\n // @ts-ignore: Type-checker not realizing above request.channel check\r\n return this.retailMultiplePickUpOptionEnabled\r\n ? checkout?.result?.checkoutCart?.cart?.CartLines?.some(cartLine =>\r\n cartLine.DeliveryMode && cartLine.DeliveryMode !== ''\r\n ? cartLine.DeliveryMode !==\r\n channelDeliveryOptionConfig.result?.PickupDeliveryModeCodes?.find(\r\n deliveryMode => deliveryMode === cartLine.DeliveryMode\r\n ) && cartLine.DeliveryMode !== emailDeliveryModeCode\r\n : cartLine\r\n )\r\n : checkout?.result?.checkoutCart?.cart?.CartLines?.some(cartLine =>\r\n cartLine.DeliveryMode && cartLine.DeliveryMode !== ''\r\n ? cartLine.DeliveryMode !== pickupDeliveryModeCode && cartLine.DeliveryMode !== emailDeliveryModeCode\r\n : cartLine\r\n );\r\n };\r\n\r\n private _onSelectAddress = () => {\r\n this._updateCurrentOperation(AddressOperation.Show, this.addressListSelectedAddress);\r\n this._setShippingAddress(this.addressListSelectedAddress);\r\n this._updateModuleState();\r\n };\r\n\r\n private _goToAddAddress = () => {\r\n this._setDefaultCountryRegionId();\r\n this._updateCurrentOperation(AddressOperation.Add);\r\n };\r\n\r\n private _onAddOrUpdateSuccess = (response: IAddressResponse) => {\r\n if (response.customerAddresses) {\r\n this.customerAddresses = response.customerAddresses;\r\n }\r\n\r\n if (response.address) {\r\n this._updateCurrentOperation(AddressOperation.Show, response.address);\r\n this._setShippingAddress(response.address);\r\n this._updateModuleState();\r\n }\r\n };\r\n\r\n private _setShippingAddress = (address: Address): void => {\r\n if (this.props.data.checkout.result) {\r\n const newShippingAddress = { ...address };\r\n\r\n if (address.ThreeLetterISORegionName && !newShippingAddress.TwoLetterISORegionName) {\r\n newShippingAddress.TwoLetterISORegionName = this.addressFormat.getTwoLetterISORegionName(address.ThreeLetterISORegionName);\r\n }\r\n\r\n // tslint:disable-next-line:no-floating-promises\r\n this.props.data.checkout.result.updateShippingAddress({\r\n newShippingAddress\r\n });\r\n }\r\n };\r\n\r\n @computed get shippingAddress(): Address | undefined {\r\n return this.props.data.checkout.result && this.props.data.checkout.result.shippingAddress;\r\n }\r\n\r\n private _resetView = (): void => {\r\n switch (this.currentOperation) {\r\n case AddressOperation.Add:\r\n case AddressOperation.Update:\r\n this._updateCurrentOperation(\r\n this.addressCommon.isAuthenticatedFlow() ? AddressOperation.List : AddressOperation.Show,\r\n this.shippingAddress\r\n );\r\n break;\r\n default:\r\n this._updateCurrentOperation(AddressOperation.Show, this.shippingAddress);\r\n }\r\n this._updateModuleState();\r\n };\r\n\r\n private _updateCurrentOperation = (operation: AddressOperation, selectedAddress?: Address) => {\r\n this.currentOperation = operation;\r\n this.selectedAddress = selectedAddress;\r\n\r\n if (this.currentOperation === AddressOperation.Add || this.currentOperation === AddressOperation.Update) {\r\n this.addUpdateAddress = { ...this.selectedAddress } || {};\r\n set(this.addUpdateAddress, {\r\n ['ThreeLetterISORegionName']: this.addUpdateAddress.ThreeLetterISORegionName || this.countryRegionId\r\n });\r\n set(this.addUpdateAddress, {\r\n ['AddressTypeValue']: this.addUpdateAddress.AddressTypeValue || this.defaultAddressType\r\n });\r\n } else if (this.currentOperation === AddressOperation.List) {\r\n this.addressListSelectedAddress = { ...this.selectedAddress } || {};\r\n }\r\n };\r\n\r\n private _updateModuleState = () => {\r\n if (this.currentOperation === AddressOperation.Show) {\r\n this.props.moduleState.onReady();\r\n } else if (this.isUpdating) {\r\n this.props.moduleState.onPending();\r\n } else {\r\n this.props.moduleState.onUpdating();\r\n }\r\n };\r\n}\r\n\r\nexport default CheckoutShippingAddress;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport * as React from 'react';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport {\r\n IAddressAddItem,\r\n IAddressAddUpdateProps,\r\n IAddressSelectItem,\r\n IAddressSelectProps,\r\n IAddressShowItem,\r\n IAddressShowProps\r\n} from '@msdyn365-commerce-modules/address';\r\nimport { ICheckoutShippingAddressViewProps } from './custom-checkout-shipping-address';\r\nimport { convert_a2_to_a3 } from '../../themes/venchi/utils/convert_a2_a3';\r\n\r\nconst AddressShow: React.FC = ({ AddressDetail, items }) => {\r\n return (\r\n \r\n {items &&\r\n items.map((item: IAddressShowItem) => {\r\n return <>{item.description};\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AddressSelect: React.FC = ({\r\n SelectAddress,\r\n addButton,\r\n items,\r\n isShowSaveButton,\r\n saveButton,\r\n isShowCancelButton,\r\n cancelButton\r\n}) => {\r\n return (\r\n \r\n {addButton}\r\n {items &&\r\n items.map((item: IAddressSelectItem) => {\r\n const SelectItem = item.SelectItem;\r\n return (\r\n \r\n {item.input}\r\n \r\n \r\n );\r\n })}\r\n {isShowSaveButton && saveButton}\r\n {isShowCancelButton && cancelButton}\r\n \r\n );\r\n};\r\n\r\n// tslint:disable-next-line:max-func-body-length\r\nconst AddressAddUpdate: React.FC = ({\r\n AddressForm,\r\n heading,\r\n items,\r\n hasError,\r\n error,\r\n isShowSaveButton,\r\n saveButton,\r\n isShowCancelButton,\r\n cancelButton,\r\n ...other\r\n}) => {\r\n // @ts-ignore\r\n const resources = other?.moduleProps?.resources;\r\n // @ts-ignore\r\n const localeString = other?.moduleProps?.context?.request?.locale;\r\n // @ts-ignore\r\n const sitePath = other?.moduleProps?.context?.request?.sitePath;\r\n const europe = ['/fr', '/de'];\r\n // @ts-ignore\r\n const currency = other?.moduleProps?.context?.request?.channel?.Currency;\r\n const locale =\r\n sitePath && europe.includes(sitePath)\r\n ? 'eu'\r\n : currency === 'EUR' && localeString === 'en-GB'\r\n ? 'eu'\r\n : localeString.replace('-', '');\r\n\r\n const countriesAvail = {\r\n enGB: {\r\n autocomplete: ['gb'],\r\n select: ['GBR']\r\n },\r\n it: {\r\n autocomplete: ['it'],\r\n select: ['ITA']\r\n },\r\n enUS: {\r\n autocomplete: ['us'],\r\n // autocomplete: ['us', 'ca'],\r\n //select: ['USA', 'CAN']\r\n select: ['USA']\r\n },\r\n eu: {\r\n // removed componentRestrictions for country as there is limit of 5 in google maps\r\n // autocomplete:['at','be','bg','ch','cz','de','dk','es','ee','fi','fr','gr','hr','hu','ie','li','lt','lu','lv','mc','nl','no','pl','pt','ro','sk','si','se'],\r\n autocomplete: [],\r\n select: [\r\n 'AUT',\r\n 'BEL',\r\n 'BGR',\r\n 'CHE',\r\n 'CZE',\r\n 'DEU',\r\n 'DNK',\r\n 'ESP',\r\n 'EST',\r\n 'FIN',\r\n 'FRA',\r\n 'GRC',\r\n 'HRV',\r\n 'HUN',\r\n 'IRL',\r\n 'LIE',\r\n 'LTU',\r\n 'LUX',\r\n 'LVA',\r\n 'MCO',\r\n 'NLD',\r\n 'NOR',\r\n 'POL',\r\n 'PRT',\r\n 'ROU',\r\n 'SVK',\r\n 'SVN',\r\n 'SWE'\r\n ]\r\n }\r\n };\r\n // @ts-ignore\r\n const nativeInputValueSetter = Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, 'value').set;\r\n // tslint:disable-next-line:typedef\r\n function gMapsAutocomplete() {\r\n const googleComponents = [\r\n { googleComponent: 'sublocality_level_1', id: 'shipping_addresscity' },\r\n { googleComponent: 'locality', id: 'shipping_addresscity' },\r\n { googleComponent: 'postal_town', id: 'shipping_addresscity' },\r\n {\r\n googleComponent: 'administrative_area_level_3',\r\n id: 'shipping_addresscity'\r\n },\r\n {\r\n googleComponent: 'administrative_area_level_1',\r\n id: 'shipping_addressstate'\r\n },\r\n { googleComponent: 'postal_code_prefix', id: 'shipping_addresszipcode' },\r\n { googleComponent: 'postal_code', id: 'shipping_addresszipcode' },\r\n {\r\n googleComponent: 'country',\r\n id: 'shipping_addressthreeletterisoregionname'\r\n },\r\n {\r\n googleComponent: 'administrative_area_level_2',\r\n id: 'shipping_addresscounty'\r\n }\r\n ];\r\n\r\n const autocompleteFormField = document.getElementById('shipping_addressstreet');\r\n // @ts-ignore\r\n const autocomplete = new window.google.maps.places.Autocomplete(autocompleteFormField, {\r\n types: ['address'],\r\n componentRestrictions: {\r\n country: countriesAvail[locale] && countriesAvail[locale].autocomplete\r\n }\r\n });\r\n if (autocompleteFormField === null) {\r\n return;\r\n }\r\n autocompleteFormField.setAttribute('placeholder', resources.startTypingYourAddress);\r\n // @ts-ignore\r\n window.google.maps.event.clearInstanceListeners(autocompleteFormField);\r\n // @ts-ignore\r\n window.google.maps.event.addListener(autocomplete, `place_changed`, () => {\r\n const place = autocomplete.getPlace();\r\n if (nativeInputValueSetter === undefined) {\r\n return;\r\n }\r\n nativeInputValueSetter.call(autocompleteFormField, place.name);\r\n const eCustom = new Event('change', { bubbles: true });\r\n autocompleteFormField.dispatchEvent(eCustom);\r\n\r\n for (const googleComponent of googleComponents) {\r\n const addressComponents = place.address_components;\r\n if (addressComponents && addressComponents.length > 0) {\r\n // @ts-ignore\r\n addressComponents.forEach(addressComponent => populateFormElements(addressComponent, googleComponent));\r\n }\r\n }\r\n });\r\n }\r\n\r\n // tslint:disable-next-line:typedef no-any\r\n function populateFormElements(\r\n addressComponent: { types: any[]; short_name: string; long_name: string },\r\n formMap: { googleComponent: any; id: string }\r\n ) {\r\n const addressType = addressComponent.types[0];\r\n\r\n if (document.getElementById(formMap.id) === undefined || document.getElementById(formMap.id) === null) {\r\n return;\r\n }\r\n\r\n if (formMap.googleComponent === addressType) {\r\n if (formMap.id === 'shipping_addressthreeletterisoregionname' || formMap.id === 'shipping_addressstate') {\r\n const input = document.getElementById(formMap.id) as HTMLSelectElement;\r\n if (input !== null) {\r\n const formValue = locale === 'it' && formMap.id === 'shipping_addressstate' ? 'DEF' : addressComponent.short_name;\r\n const selectedValue = selectItemByValue(input, formValue, addressType === 'country' ? true : false);\r\n if (selectedValue !== undefined) {\r\n input.value = selectedValue;\r\n const event = new Event('change', { bubbles: true });\r\n input.dispatchEvent(event);\r\n }\r\n }\r\n } else {\r\n const formValue = formMap.id === 'shipping_addresscounty' ? addressComponent.short_name : addressComponent.long_name;\r\n const input = document.getElementById(formMap.id);\r\n if (input !== undefined) {\r\n if (nativeInputValueSetter === undefined) {\r\n return;\r\n }\r\n nativeInputValueSetter.call(input, formValue);\r\n const eCustom = new Event('input', { bubbles: true });\r\n if (input !== null) {\r\n input.dispatchEvent(eCustom);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n // @ts-ignore\r\n // tslint:disable-next-line:typedef\r\n function selectItemByValue(elmnt: HTMLSelectElement, value: string, is_convert_a2_to_a3: boolean) {\r\n for (let i = 0; i < elmnt.options.length; i++) {\r\n const eValue = elmnt.options[i].value;\r\n if ((is_convert_a2_to_a3 && eValue === convert_a2_to_a3[value]) || (!is_convert_a2_to_a3 && eValue === value)) {\r\n return elmnt.options[i].value;\r\n }\r\n }\r\n }\r\n const checkPhone = () => {\r\n const saveAddressButton = document.querySelector('.ms-checkout__guided-card-btn-save.msc-btn') as HTMLButtonElement;\r\n const phone = document.getElementById('shipping_addressphone') as HTMLInputElement;\r\n if (phone) {\r\n const phoneCtn = phone.closest('.msc-address-form__item') as HTMLElement;\r\n const phoneAlert = phoneCtn.getElementsByClassName('msc-address-form__alert')[0];\r\n const pattern = /^[0-9]*$/;\r\n const pattern2 = /^\\+?\\d+$/;\r\n phone.setAttribute('aria-required', 'true');\r\n phone.setAttribute('type', 'tel');\r\n phone.setAttribute('maxlength', '15');\r\n if (phone.value.length === 0) {\r\n saveAddressButton.setAttribute('disabled', 'true');\r\n }\r\n phone.onkeyup = () => {\r\n if (!phone.value.match(pattern) && !phone.value.match(pattern2)) {\r\n phoneCtn.classList.add('address-form__item-invalid');\r\n phoneAlert.textContent = resources.addressPhoneRequiredErrorMessage;\r\n saveAddressButton.setAttribute('disabled', 'true');\r\n } else if (phone.value.length < 6) {\r\n phoneCtn.classList.add('address-form__item-invalid');\r\n phoneAlert.textContent = resources.addressPhoneRequiredErrorMessage;\r\n saveAddressButton.setAttribute('disabled', 'true');\r\n } else {\r\n phoneCtn.classList.remove('address-form__item-invalid');\r\n phoneAlert.textContent = '';\r\n saveAddressButton.removeAttribute('disabled');\r\n }\r\n };\r\n }\r\n };\r\n function phoneValidation(): void {\r\n const addressForm = document.getElementsByClassName('msc-address-form')[0];\r\n const saveAddressButton = addressForm\r\n .closest('.ms-checkout__guided-card')\r\n ?.getElementsByClassName('ms-checkout__guided-card-btn-save')[0] as HTMLElement;\r\n const county = document.getElementById('shipping_addresscounty') as HTMLInputElement;\r\n const countyCtn = county && county !== null ? (county.closest('.msc-address-form__item') as HTMLInputElement) : undefined;\r\n const countyAlert = countyCtn?.getElementsByClassName('msc-address-form__alert')[0];\r\n\r\n if (countyCtn !== undefined) {\r\n countyCtn.onkeyup = () => {\r\n countyCtn?.classList.remove('address-form__item-invalid');\r\n if (countyAlert) {\r\n countyAlert.textContent = '';\r\n }\r\n };\r\n }\r\n if (saveAddressButton !== undefined) {\r\n saveAddressButton.onclick = e => {\r\n const countyValid = locale === 'it' && (county.value === '' || county.value.length > 2) ? false : true;\r\n if (!countyValid) {\r\n countyCtn?.classList.add('address-form__item-invalid');\r\n if (countyAlert) {\r\n countyAlert.textContent = 'Inserire Codice ISO a 2 lettere';\r\n }\r\n const elements = addressForm.querySelectorAll('input');\r\n let fieldInALL = true;\r\n elements.forEach(fieldInControl);\r\n function fieldInControl(element: HTMLInputElement): void {\r\n if (element.value === '' && element.name !== 'County') {\r\n fieldInALL = false;\r\n }\r\n }\r\n if (fieldInALL) {\r\n e.stopPropagation();\r\n }\r\n }\r\n };\r\n }\r\n }\r\n React.useEffect(() => {\r\n gMapsAutocomplete();\r\n const options = document.querySelectorAll('#shipping_addressthreeletterisoregionname option');\r\n options.forEach(o => {\r\n const optionV = (o as HTMLOptionElement).value;\r\n if (countriesAvail[locale] && !countriesAvail[locale].select.includes(optionV)) {\r\n o.remove();\r\n }\r\n });\r\n const countrySelect = document.getElementById('shipping_addressthreeletterisoregionname') as HTMLSelectElement;\r\n if (locale === 'enUS') {\r\n countrySelect.value = 'USA';\r\n }\r\n const event = new Event('change', { bubbles: true });\r\n countrySelect.dispatchEvent(event);\r\n const stateSelect = document.getElementById('shipping_addressstate') as HTMLSelectElement;\r\n if (locale === 'it') {\r\n stateSelect.value = 'DEF';\r\n stateSelect.dispatchEvent(event);\r\n stateSelect.disabled = Boolean('true');\r\n }\r\n phoneValidation();\r\n }, []);\r\n // Phone Verifications\r\n React.useEffect(() => {\r\n checkPhone();\r\n }, [(document?.getElementById('shipping_addressphone') as HTMLInputElement)?.value]);\r\n React.useEffect(() => {\r\n phoneValidation();\r\n }, [document.getElementById('shipping_addressphone')]);\r\n return (\r\n \r\n {heading}\r\n {items &&\r\n items.map((item: IAddressAddItem) => {\r\n const { AddressItem, key, label, alert, input } = item;\r\n if (key === 'Name' && input) {\r\n // @ts-ignore\r\n input.props.maxLength = 34;\r\n }\r\n return (\r\n \r\n {label}\r\n {alert}\r\n {input}\r\n \r\n );\r\n })}\r\n {hasError && (\r\n \r\n {error.title}\r\n {error.message}\r\n \r\n )}\r\n {isShowSaveButton && saveButton}\r\n {isShowCancelButton && cancelButton}\r\n \r\n );\r\n};\r\n\r\nconst CheckoutShippingAddressView: React.FC = props => {\r\n const { CheckoutShippingAddress, viewState, showAddress, showAddressSelect, showAddOrUpdateAddress } = props;\r\n\r\n return (\r\n \r\n {viewState.isShowAddress && }\r\n {viewState.isShowAddresList && }\r\n {viewState.isShowAddOrUpdateAddress && }\r\n \r\n );\r\n};\r\n\r\nexport default CheckoutShippingAddressView;\r\n","import { ICookieContext } from '@msdyn365-commerce/core-internal/dist/types';\r\nconst FEATURE_COOKIE_KEY = 'features';\r\n\r\nexport const getFeatureToggleService = (cookieContext: ICookieContext, serverFeatures: string[]) => {\r\n const getFeaturesCookie = (cookieContext: ICookieContext) => cookieContext.get(FEATURE_COOKIE_KEY);\r\n\r\n const getEnabledFeatures = (): string[] => {\r\n const featuresCookie = getFeaturesCookie(cookieContext).value;\r\n const clientFeatures = featuresCookie ? featuresCookie.split(',').map(feature => feature.trim()) : [];\r\n return clientFeatures.concat(serverFeatures);\r\n };\r\n\r\n const isFeatureEnabled = (featureName: string): boolean => getEnabledFeatures().includes(featureName);\r\n return {\r\n getEnabledFeatures,\r\n isFeatureEnabled\r\n };\r\n};\r\n","// tslint:disable-next-line:variable-name\r\nexport const convert_a2_to_a3 = {\r\n AF: 'AFG',\r\n AX: 'ALA',\r\n AL: 'ALB',\r\n DZ: 'DZA',\r\n AS: 'ASM',\r\n AD: 'AND',\r\n AO: 'AGO',\r\n AI: 'AIA',\r\n AQ: 'ATA',\r\n AG: 'ATG',\r\n AR: 'ARG',\r\n AM: 'ARM',\r\n AW: 'ABW',\r\n AU: 'AUS',\r\n AT: 'AUT',\r\n AZ: 'AZE',\r\n BS: 'BHS',\r\n BH: 'BHR',\r\n BD: 'BGD',\r\n BB: 'BRB',\r\n BY: 'BLR',\r\n BE: 'BEL',\r\n BZ: 'BLZ',\r\n BJ: 'BEN',\r\n BM: 'BMU',\r\n BT: 'BTN',\r\n BO: 'BOL',\r\n BA: 'BIH',\r\n BW: 'BWA',\r\n BV: 'BVT',\r\n BR: 'BRA',\r\n IO: 'IOT',\r\n BN: 'BRN',\r\n BG: 'BGR',\r\n BF: 'BFA',\r\n BI: 'BDI',\r\n KH: 'KHM',\r\n CM: 'CMR',\r\n CA: 'CAN',\r\n CV: 'CPV',\r\n KY: 'CYM',\r\n CF: 'CAF',\r\n TD: 'TCD',\r\n CL: 'CHL',\r\n CN: 'CHN',\r\n CX: 'CXR',\r\n CC: 'CCK',\r\n CO: 'COL',\r\n KM: 'COM',\r\n CG: 'COG',\r\n CD: 'COD',\r\n CK: 'COK',\r\n CR: 'CRI',\r\n CI: 'CIV',\r\n HR: 'HRV',\r\n CU: 'CUB',\r\n CY: 'CYP',\r\n CZ: 'CZE',\r\n DK: 'DNK',\r\n DJ: 'DJI',\r\n DM: 'DMA',\r\n DO: 'DOM',\r\n EC: 'ECU',\r\n EG: 'EGY',\r\n SV: 'SLV',\r\n GQ: 'GNQ',\r\n ER: 'ERI',\r\n EE: 'EST',\r\n ET: 'ETH',\r\n FK: 'FLK',\r\n FO: 'FRO',\r\n FJ: 'FJI',\r\n FI: 'FIN',\r\n FR: 'FRA',\r\n GF: 'GUF',\r\n PF: 'PYF',\r\n TF: 'ATF',\r\n GA: 'GAB',\r\n GM: 'GMB',\r\n GE: 'GEO',\r\n DE: 'DEU',\r\n GH: 'GHA',\r\n GI: 'GIB',\r\n GR: 'GRC',\r\n GL: 'GRL',\r\n GD: 'GRD',\r\n GP: 'GLP',\r\n GU: 'GUM',\r\n GT: 'GTM',\r\n GG: 'GGY',\r\n GN: 'GIN',\r\n GW: 'GNB',\r\n GY: 'GUY',\r\n HT: 'HTI',\r\n HM: 'HMD',\r\n VA: 'VAT',\r\n HN: 'HND',\r\n HK: 'HKG',\r\n HU: 'HUN',\r\n IS: 'ISL',\r\n IN: 'IND',\r\n ID: 'IDN',\r\n IR: 'IRN',\r\n IQ: 'IRQ',\r\n IE: 'IRL',\r\n IM: 'IMN',\r\n IL: 'ISR',\r\n IT: 'ITA',\r\n JM: 'JAM',\r\n JP: 'JPN',\r\n JE: 'JEY',\r\n JO: 'JOR',\r\n KZ: 'KAZ',\r\n KE: 'KEN',\r\n KI: 'KIR',\r\n KP: 'PRK',\r\n KR: 'KOR',\r\n KW: 'KWT',\r\n KG: 'KGZ',\r\n LA: 'LAO',\r\n LV: 'LVA',\r\n LB: 'LBN',\r\n LS: 'LSO',\r\n LR: 'LBR',\r\n LY: 'LBY',\r\n LI: 'LIE',\r\n LT: 'LTU',\r\n LU: 'LUX',\r\n MO: 'MAC',\r\n MK: 'MKD',\r\n MG: 'MDG',\r\n MW: 'MWI',\r\n MY: 'MYS',\r\n MV: 'MDV',\r\n ML: 'MLI',\r\n MT: 'MLT',\r\n MH: 'MHL',\r\n MQ: 'MTQ',\r\n MR: 'MRT',\r\n MU: 'MUS',\r\n YT: 'MYT',\r\n MX: 'MEX',\r\n FM: 'FSM',\r\n MD: 'MDA',\r\n MC: 'MCO',\r\n MN: 'MNG',\r\n ME: 'MNE',\r\n MS: 'MSR',\r\n MA: 'MAR',\r\n MZ: 'MOZ',\r\n MM: 'MMR',\r\n NA: 'NAM',\r\n NR: 'NRU',\r\n NP: 'NPL',\r\n NL: 'NLD',\r\n AN: 'ANT',\r\n NC: 'NCL',\r\n NZ: 'NZL',\r\n NI: 'NIC',\r\n NE: 'NER',\r\n NG: 'NGA',\r\n NU: 'NIU',\r\n NF: 'NFK',\r\n MP: 'MNP',\r\n NO: 'NOR',\r\n OM: 'OMN',\r\n PK: 'PAK',\r\n PW: 'PLW',\r\n PS: 'PSE',\r\n PA: 'PAN',\r\n PG: 'PNG',\r\n PY: 'PRY',\r\n PE: 'PER',\r\n PH: 'PHL',\r\n PN: 'PCN',\r\n PL: 'POL',\r\n PT: 'PRT',\r\n PR: 'PRI',\r\n QA: 'QAT',\r\n RE: 'REU',\r\n RO: 'ROU',\r\n RU: 'RUS',\r\n RW: 'RWA',\r\n BL: 'BLM',\r\n SH: 'SHN',\r\n KN: 'KNA',\r\n LC: 'LCA',\r\n MF: 'MAF',\r\n PM: 'SPM',\r\n VC: 'VCT',\r\n WS: 'WSM',\r\n SM: 'SMR',\r\n ST: 'STP',\r\n SA: 'SAU',\r\n SN: 'SEN',\r\n RS: 'SRB',\r\n SC: 'SYC',\r\n SL: 'SLE',\r\n SG: 'SGP',\r\n SK: 'SVK',\r\n SI: 'SVN',\r\n SB: 'SLB',\r\n SO: 'SOM',\r\n ZA: 'ZAF',\r\n GS: 'SGS',\r\n ES: 'ESP',\r\n LK: 'LKA',\r\n SD: 'SDN',\r\n SR: 'SUR',\r\n SJ: 'SJM',\r\n SZ: 'SWZ',\r\n SE: 'SWE',\r\n CH: 'CHE',\r\n SY: 'SYR',\r\n TW: 'TWN',\r\n TJ: 'TJK',\r\n TZ: 'TZA',\r\n TH: 'THA',\r\n TL: 'TLS',\r\n TG: 'TGO',\r\n TK: 'TKL',\r\n TO: 'TON',\r\n TT: 'TTO',\r\n TN: 'TUN',\r\n TR: 'TUR',\r\n TM: 'TKM',\r\n TC: 'TCA',\r\n TV: 'TUV',\r\n UG: 'UGA',\r\n UA: 'UKR',\r\n AE: 'ARE',\r\n GB: 'GBR',\r\n US: 'USA',\r\n UM: 'UMI',\r\n UY: 'URY',\r\n UZ: 'UZB',\r\n VU: 'VUT',\r\n VE: 'VEN',\r\n VN: 'VNM',\r\n VG: 'VGB',\r\n VI: 'VIR',\r\n WF: 'WLF',\r\n EH: 'ESH',\r\n YE: 'YEM',\r\n ZM: 'ZMB',\r\n ZW: 'ZWE'\r\n};\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { IContentBlockViewProps } from '@msdyn365-commerce-modules/content-block';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { Image, IViewPort } from '@msdyn365-commerce/core';\r\nimport { getFeatureToggleService } from '../../../services/featureToggleService';\r\nimport { IContentBlockConfig, IContentBlockProps } from '../definition-extensions/content-block.ext.props.autogenerated';\r\n\r\nconst DEFAULT_IMAGE_MODE = 2;\r\n\r\nconst DEFAULT_VIEWPORTS: IViewPort = {\r\n xs: { w: 800, h: 600 }, // max-width: 767px\r\n sm: { w: 1200, h: 900 }, // min-width: 768px and max-width: 991px\r\n md: { w: 1600, h: 900 }, // min-width: 992px and max-width: 1199px\r\n lg: { w: 1600, h: 700 }, // min-width: 1200px and max-width: 1599px\r\n xl: { w: 1600, h: 700 } // min-width: 1600px\r\n};\r\n\r\ntype IContentBlockFullConfig = IContentBlockConfig & {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- This field comes from SDK.\r\n msdyn365__moduleLayout?: string;\r\n};\r\n\r\nconst ContentBlockView: React.FC> = props => {\r\n const { contentBlockContainer, imageContainer, detailsContainer, title, text, links, image: imageProp } = props;\r\n const { image } = props.config;\r\n const imageProps = {\r\n gridSettings: props.context.request.gridSettings ?? {},\r\n imageSettings: {\r\n ...(image?.imageSettings ?? {}),\r\n mode: image?.imageSettings?.mode || DEFAULT_IMAGE_MODE,\r\n viewports: image?.imageSettings?.viewports || DEFAULT_VIEWPORTS // Use || instead of ?? here\r\n }\r\n };\r\n\r\n const isLcpImage = props.config.preload;\r\n\r\n const htmlImage = imageProp && (\r\n {imageProp.props.altText}\r\n );\r\n\r\n //@ts-ignore\r\n const msdynImage = (\r\n \r\n );\r\n const { isFeatureEnabled } = getFeatureToggleService(props.context.request.cookies, props.context.app.config.features);\r\n\r\n const contentBlockImage = isFeatureEnabled('msdyn-image') ? msdynImage : htmlImage;\r\n\r\n const entireLink = contentBlockContainer.className.includes('linkplacement__entirebanner');\r\n // @ts-ignore\r\n const link = links && 'props' in links ? links.props.links[0].linkUrl.destinationUrl : '';\r\n return (\r\n \r\n {entireLink ? (\r\n \r\n {contentBlockImage}\r\n \r\n {title}\r\n {text}\r\n \r\n \r\n ) : (\r\n <>\r\n {image && {contentBlockImage}}\r\n \r\n {title}\r\n {text}\r\n {links}\r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default ContentBlockView;\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 { IOrderTemplateListViewProps, ISingleOrderTemplateViewProps } from '@msdyn365-commerce-modules/order-template';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\n\r\nexport const OrderTemplateListView: React.FC = props => {\r\n const {\r\n OrderTemplateList,\r\n status,\r\n statusMessage,\r\n heading,\r\n OrderTemplates,\r\n orderTemplates,\r\n OrderTemplate,\r\n createOrderTemplateButton,\r\n templateHeaderStatusMessage\r\n } = props;\r\n\r\n return (\r\n \r\n {heading}\r\n {status !== 'SUCCESS' && statusMessage}\r\n \r\n {createOrderTemplateButton}\r\n {templateHeaderStatusMessage}\r\n \r\n {OrderTemplates && orderTemplates && orderTemplates.length > 0 && (\r\n \r\n {orderTemplates &&\r\n orderTemplates.map(orderTemplate => {\r\n return _renderOrderTemplate(orderTemplate, OrderTemplate);\r\n })}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nconst _renderOrderTemplate = (orderTemplate: ISingleOrderTemplateViewProps, OrderTemplate?: INodeProps): JSX.Element | null => {\r\n const { key, addToCartButton, orderTemplateImage, orderTemplateStatusMessage, removeButton, orderTemplateName } = orderTemplate;\r\n return (\r\n \r\n {orderTemplateName}\r\n {orderTemplateImage}\r\n {addToCartButton}\r\n {removeButton}\r\n {orderTemplateStatusMessage}\r\n \r\n );\r\n};\r\n\r\nexport default OrderTemplateListView;\r\n","/**\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. See License.txt in the project root for license information.\r\n * IVideoPlayer contentModule Interface Properties\r\n * THIS FILE IS AUTO-GENERATED - MANUAL MODIFICATIONS WILL BE LOST\r\n */\r\n\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\n\r\nexport const enum layout {\r\n column = 'column',\r\n row = 'row'\r\n}\r\n\r\nexport const enum mobileVideoQuality {\r\n hdx = 'hdx',\r\n hq = 'hq',\r\n sd = 'sd',\r\n lo = 'lo'\r\n}\r\n\r\nexport interface IVideoPlayerConfig extends Msdyn365.IModuleConfig {\r\n video: Msdyn365.IVideoData;\r\n heading?: IHeadingData;\r\n paragraph?: Msdyn365.RichText;\r\n links?: ILinksData[];\r\n additionalContent?: IAdditionalContentData;\r\n autoplay?: boolean;\r\n mute?: boolean;\r\n loop?: boolean;\r\n autoCaptions?: string;\r\n playPauseTrigger?: boolean;\r\n controls?: boolean;\r\n playFullScreen?: boolean;\r\n hidePosterFrame?: boolean;\r\n maskLevel?: number;\r\n thumbnailFullWidth?: boolean;\r\n lazyLoad?: boolean;\r\n clientRender?: boolean;\r\n layout: layout;\r\n cta?: ICtaData;\r\n mobileVideoQuality?: mobileVideoQuality;\r\n shouldDisableAutoPlayOnMobile?: boolean;\r\n}\r\n\r\nexport interface IVideoPlayerResources {\r\n playLabel: string;\r\n pauseLabel: string;\r\n pausedLabel: string;\r\n playingLabel: string;\r\n unMuteLabel: string;\r\n muteLabel: string;\r\n fullScreenLabel: string;\r\n exitFullScreenLabel: string;\r\n seekBarLabel: string;\r\n videoTimeDurationLabel: string;\r\n closedCaptionLabel: string;\r\n optionButtonLabel: string;\r\n sliderThumbLabel: string;\r\n volumeThumbLabel: string;\r\n}\r\n\r\nexport const enum HeadingTag {\r\n h1 = 'h1',\r\n h2 = 'h2',\r\n h3 = 'h3',\r\n h4 = 'h4',\r\n h5 = 'h5',\r\n h6 = 'h6'\r\n}\r\n\r\nexport interface IHeadingData {\r\n text: string;\r\n tag?: HeadingTag;\r\n}\r\n\r\nexport interface ILinksData {\r\n linkText?: string;\r\n linkUrl: Msdyn365.ILinkData;\r\n ariaLabel?: string;\r\n openInNewTab?: boolean;\r\n}\r\n\r\nexport interface IAdditionalContentData {\r\n heading?: string;\r\n subtext?: string;\r\n links?: ILinksData[];\r\n}\r\n\r\nexport interface ICtaData {\r\n label?: string;\r\n link?: string;\r\n}\r\n\r\nexport interface ILinksData {\r\n linkText?: string;\r\n linkUrl: Msdyn365.ILinkData;\r\n ariaLabel?: string;\r\n openInNewTab?: boolean;\r\n}\r\n\r\nexport interface IVideoPlayerProps extends Msdyn365.IModule {\r\n resources: IVideoPlayerResources;\r\n config: IVideoPlayerConfig;\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\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\n\r\nimport { IVideoPlayerViewProps } from '@msdyn365-commerce-modules/video-player';\r\nimport { IVideoPlayerProps, layout } from '../definition-extensions/video-player.ext.props.autogenerated';\r\nimport { isMobile, VariantType } from '@msdyn365-commerce-modules/utilities';\r\nimport { getFeatureToggleService } from '../../../services/featureToggleService';\r\n\r\n/**\r\n * Render Additional Content.\r\n * @param additionalContent - Additional content view props.\r\n * @returns JSX Element.\r\n */\r\n\r\nconst VideoPlayerView: React.FC> = props => {\r\n const { isFeatureEnabled } = getFeatureToggleService(props.context.request.cookies, props.context.app.config.features);\r\n const isAccessibleVideoPlayerEnabled = isFeatureEnabled('accessible-video');\r\n\r\n const getAutoplayValue = React.useCallback((): boolean => {\r\n const isMobileDevice = isMobile({ variant: VariantType.Viewport, context: props.context.request }) === 'xs';\r\n\r\n if (!props.config.autoplay) return false;\r\n\r\n if (isMobileDevice && props.config.shouldDisableAutoPlayOnMobile) return false;\r\n\r\n return true;\r\n }, []);\r\n\r\n const getPlayer = (video_src?: string) =>\r\n isAccessibleVideoPlayerEnabled ? (\r\n props.player\r\n ) : (\r\n