{"version":3,"file":"static/js/8.3bc30e4c799fbd1fc77a.chunk.js","mappings":";8JAgBA,MAAMA,UAAmBC,EAAAA,UACdC,SACH,MAAM,WACFC,GACAC,KAAKC,MACHC,EAAW,YAAYH,IAE7B,OAAKA,EAMDF,EAAAA,cAAA,UAEIM,QAAQ,2DACRC,IAAK,mEAAmEL,IACxEM,YAAY,IACZC,MAAM,sFACNC,MAAM,iBACNC,GAAIN,KAZRO,QAAQC,KAAK,iCACN,OAiBnB,uDCzBA,MAAMC,UAAoBd,EAAAA,UACfC,SACH,MAAM,QACFc,GACAZ,KAAKC,MACHC,EAAW,SAASU,IAE1B,OAAKA,EAMDf,EAAAA,cAAA,UAEIM,QAAQ,2DACRC,IAAK,kCAAkCQ,mCACvCP,YAAY,IACZC,MAAM,uBACNO,iBAAe,EACfN,MAAM,cACNC,GAAIN,KAbRO,QAAQC,KAAK,iCACN,OAkBnB,uDC3Bc,MAAOI,UAAsBjB,EAAAA,UAChCC,SACH,MAAM,UACFiB,GACAf,KAAKC,MACHC,EAAW,WAAWa,IAE5B,OAAKA,EAMDlB,EAAAA,cAAA,UAEIM,QAAQ,2DACRC,IAAK,iCAAiCW,eACtCV,YAAY,IACZC,MAAM,0EACNO,iBAAe,EACfN,MAAM,gBACNC,GAAIN,KAbRO,QAAQC,KAAK,qCACN,mJCXZ,MAAMM,EAAoB,gBAOjC,MAAMC,UAAgBpB,EAAAA,cAIlBqB,YAAYjB,GACRkB,MAAMlB,GACND,KAAKoB,WAAapB,KAAKoB,WAAWC,KAAKrB,MASpCF,SACH,MAAM,OAAEwB,GAAWtB,KAAKC,MAClBsB,EAASvB,KAAKC,MAAMuB,QAAQC,QAAQC,QAG1C,GAAsB,oBAAXC,QAAuD,cAA7BA,OAAOC,SAASC,SACjD,OAAO,KAGX,IACIN,EAAOO,mBACT,MAAOC,GACLtB,QAAQuB,IAAID,GAKhB,OAAQ/B,KAAKiC,UAAyDjC,KAAKkC,gBACvE,KAAK,EACD,OAAO,KACX,QACI,OACIrC,EAAAA,cAACsC,EAAAA,EAAK,CACFC,eAAe,iBACfC,WAAW,EACXC,MAAM,EACNC,QAAQ,EACRC,UAAU,EACVC,OAAQ,IACRC,gBAAiB,YAEjB7C,EAAAA,cAAC8C,EAAAA,EAAS,KACN9C,EAAAA,cAAA,OAAK+C,UAAU,sBACV5C,KAAK6C,UACL7C,KAAK8C,UACNjD,EAAAA,cAAA,UAAKyB,EAAOyB,aACZlD,EAAAA,cAAA,UAAKyB,EAAO0B,kBACZnD,EAAAA,cAAA,UAAQ+C,UAAU,mDAAmDK,QAASjD,KAAKoB,YAAaE,EAAO4B,YAAYrD,EAAAA,cAAA,QAAM+C,UAAU,wBAAwBtB,EAAO6B,aAClKtD,EAAAA,cAAA,OAAK+C,UAAU,kBACV5C,KAAKoD,mBACLpD,KAAKqD,wBAmBtC,qBACI,MAAM,YAAEC,GAAgBtD,KAAKC,MAAMqB,OACnC,GAAIgC,EAAa,CAMb,OAFI,IAAIC,IAAID,EAAYE,QAAQC,eAAgB9B,OAAOC,SAAS8B,QAAQC,WAEjDhC,OAAOC,SAAS+B,SAE3C,OAAO,EAKHC,cACJ5D,KAAK6D,UAAS,KAAM,CAChBtB,QAAQ,MAMRnB,aACJpB,KAAKC,MAAMuB,QAAQC,QAAQC,QAAQoC,IAAI9C,GAAmB,EAAM,CAAE+C,KAAM,IAAKC,OAAQhE,KAAKC,MAAMqB,OAAO2C,eACvGjE,KAAK4D,cAKT,eACI,MACMM,EADSlE,KAAKC,MAAMuB,QAAQC,QAAQC,QACbyC,IAAInD,GAEjC,YAAsBoD,IAAlBF,GAAuD,UAAxBA,EAAcG,SAEvCH,EAAcG,MAS5B,gBACI,MAAMC,EAAQtE,KAAKC,MAAMqB,OAAOiD,aAC1BC,EAAuC,CACzCC,UAAW,CACPC,GAAI,CAAEC,EAAG,gBAAiBC,EAAG,EAAGC,EAAG,GACnCC,GAAI,CAAEH,EAAG,gBAAiBC,EAAG,EAAGC,EAAG,IAEvCE,UAAU,GAGd,OAAIT,GAASA,EAAMlE,IAEXP,EAAAA,cAACmF,EAAAA,GAAKC,OAAAC,OAAA,CACFtC,UAAU,iBACN0B,EAAK,CACTa,aAAcnF,KAAKC,MAAMuB,QAAQC,QAAQ0D,aACzCC,cAAed,EAAMc,eAAiBZ,KAGlC,KAKpB,gBAGI,MAAMa,EAAWrF,KAAKC,MAAMqB,OAAOiD,aACnC,GAAIc,GAAYA,EAASjF,IAAO,OAAO,KAGvC,MAAMkE,EAAQtE,KAAKC,MAAMqB,OAAOgE,YAChC,OAAIhB,EAEIzE,EAAAA,cAAA,OAAK+C,UAAU,gBAAgBxC,IAAKkE,EAAOiB,IAAI,gBAEvC,KAKpB,yBAEI,MAAMC,EAAOxF,KAAKC,MAAMqB,OAAOmE,qBAE/B,OAAID,GAAQA,EAAKhC,QAAQC,eAEjB5D,EAAAA,cAAA,KACI6F,KAAMF,EAAKhC,QAAQC,eAAc,aACrB+B,EAAKG,UACjBC,OAAQJ,EAAKK,aAAe,cAAWzB,EACvCxB,UAAU,+BAA+BkD,IAAI,cAE5CN,EAAKO,UAIP,KAMf,yBAEI,MAAMP,EAAOxF,KAAKC,MAAMqB,OAAO0E,qBAE/B,OAAIR,GAAQA,EAAKhC,QAAQC,eAEjB5D,EAAAA,cAAA,KACI6F,KAAMF,EAAKhC,QAAQC,eAAc,aACrB+B,EAAKG,UACjBC,OAAQJ,EAAKK,aAAe,cAAWzB,EACvCxB,UAAU,+BAA+BkD,IAAI,cAE5CN,EAAKO,UAIP,MAMnB,sKC1LA,IAAME,EAAN,cAAwCpG,EAAAA,UAcpCqB,YAAmBjB,GACfkB,MAAMlB,GATU,KAAAiG,cAAwB,EAWxClG,KAAKmG,mBAAqBnG,KAAKmG,mBAAmB9E,KAAKrB,MACvDA,KAAKoG,kBAAoBpG,KAAKoG,kBAAkB/E,KAAKrB,MAKlDF,SACH,OACID,EAAAA,cAAA,OAAK+C,UAAW5C,KAAKC,MAAMqB,OAAOsB,WAC7B5C,KAAKqG,iBACLrG,KAAKsG,UACLtG,KAAKuG,OACLvG,KAAKwG,SACLxG,KAAKyG,MACLzG,KAAK0G,eAWVC,YAAYC,GAChB5G,KAAKkG,aAAeU,EAMhBT,qBACJnG,KAAK2G,aAAY,GAKbP,oBACJpG,KAAK2G,aAAY,GASrB,YACI,MAAM,KAAEE,EAAI,uBAAEC,GAA2B9G,KAAKC,MAAMqB,OACpD,OAAIuF,EACIC,EAEIjH,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAAA,OACIkH,yBAAyBC,EAAAA,EAAAA,IAAgBH,KAE7ChH,EAAAA,cAAAA,EAAAA,SAAA,KAAGiH,IAMXjH,EAAAA,cAAA,OACIkH,yBAAyBC,EAAAA,EAAAA,IAAgBH,KAKjDC,EAEIjH,EAAAA,cAAAA,EAAAA,SAAA,KAAGiH,GAGG,KAKlB,aACI,MAAMvG,EAAQP,KAAKC,MAAMqB,OAAOf,MAEhC,OAAIA,GAAAA,MAASA,GAAAA,EAAO0G,KAEZpH,EAAAA,cAACqH,EAAAA,QAAOjC,OAAAC,OAAA,GACA3E,IAGA,KAKpB,eACI,MAAM4G,EAAUnH,KAAKC,MAAMqB,OAAO6F,QAElC,OAAIA,EACQtH,EAAAA,cAAA,SAAIsH,GACA,KAKpB,gBACI,MAAMC,EAAWpH,KAAKC,MAAMqB,OAAO8F,SAEnC,OAAIA,GAAAA,MAAYA,GAAAA,EAAUH,KAElBpH,EAAAA,cAACqH,EAAAA,QAAOjC,OAAAC,OAAA,GACAkC,IAGA,KAKpB,uBACI,MAAM9C,EAAQtE,KAAKC,MAAMqB,OAAO+F,gBAE1B7C,EAAuC,CACzCC,UAAW,CACPC,GAAI,CAAEC,EAAG,gBAAiBC,EAAG,EAAGC,EAAG,GACnCC,GAAI,CAAEH,EAAG,gBAAiBC,EAAG,EAAGC,EAAG,IAEvCE,UAAU,GAGd,OAAIT,EAEIzE,EAAAA,cAACmF,EAAAA,GAAKC,OAAAC,OAAA,GACEZ,EAAK,CACTa,aAAcnF,KAAKC,MAAMqH,kBACzBlC,cAAed,EAAMc,eAAiBZ,KAGlC,KAQpB,oBACI,MAAM,oBACF+C,EACAC,iBAAkBC,GAClBzH,KAAKC,MAAMqB,OAGf,OAAIiG,EACOvH,KAAK0H,qBAIZD,GAAWA,EAAQjE,QAAQC,gBAAkBgE,EAAQ1B,SAEjDlG,EAAAA,cAAC8H,EAAAA,EAAY,CACTpH,MAAOkH,EAAQ1B,SACfL,KAAM+B,EAAQjE,QAAQC,eACtBoC,aAAc4B,EAAQ5B,aAAY,aACtB4B,EAAQ9B,UAAY8B,EAAQ9B,UAAY8B,EAAQ1B,WAKjE,KAKX,2BACI,MAAM,iBACF6B,EAAgB,oBAChBL,GACAvH,KAAKC,MAAMqB,OACTuG,EAAU,WAAWN,IAE3B,OACI1H,EAAAA,cAAA,WACIA,EAAAA,cAAA,OACIoD,QAASjD,KAAKoG,kBACd0B,WAAY9H,KAAKoG,kBACjB2B,KAAK,SACLnF,UAAU,uBACVoF,SAAU,GAETJ,GAEL/H,EAAAA,cAACsC,EAAAA,MAAK,CACFI,OAAQvC,KAAKkG,aACb+B,OAAQjI,KAAKmG,mBACb/D,eAAe,gBAAe,kBACbyF,GAEjBhI,EAAAA,cAACqI,EAAAA,YAAW,CAACD,OAAQjI,KAAKmG,qBAC1BtG,EAAAA,cAAC8C,EAAAA,EAAS,KACL3C,KAAKkG,cACFrG,EAAAA,cAACiB,EAAAA,EAAa,CAACC,UAAWwG,UAlNtCY,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,mCANTnC,GAAyBkC,EAAAA,EAAAA,IAAA,CAD9BE,EAAAA,IACKpC,GAkON,kCCpPA,MAAMqC,UAAmCzI,EAAAA,UAQ9BC,SACH,OACID,EAAAA,cAAA,OAAK+C,UAAU,4BACV5C,KAAKuI,QAWlB,aACI,MAAM,kBACFC,EAAiB,kBACjBC,EAAiB,qBACjBC,GACA1I,KAAKC,MAAMqB,OAEf,OAAIkH,EACOxI,KAAK2I,YAGZF,EACOzI,KAAK4I,YAGZF,EACO1I,KAAK6I,YAGhBpI,QAAQC,KAAK,4BACN,MAKX,kBACI,MAAM,kBACF+H,GACAzI,KAAKC,MAAMqB,OAEf,OACIzB,EAAAA,cAAA,OAAK+C,UAAU,kCACX/C,EAAAA,cAACc,EAAAA,EAAW,CAACC,QAAS6H,KAOlC,iBACI,MAAM,qBACFC,GACA1I,KAAKC,MAAMqB,OAEf,OACIzB,EAAAA,cAAA,OAAK+C,UAAU,kCACX/C,EAAAA,cAACiJ,EAAAA,EAAc,CAAC/I,WAAY2I,KAOxC,kBACI,MAAM,kBACFF,EAAiB,qBACjBO,GACA/I,KAAKC,MAAMqB,OAEf,OACIzB,EAAAA,cAAA,OAAK+C,UAAU,kCACV5C,KAAKgJ,gBAAgBR,GACrBxI,KAAKgJ,gBAAgBD,IAO1BC,gBAAgB1E,GACpB,GAAIA,EAAO,CACP,MAAME,EAAuC,CACzCC,UAAW,CACPC,GAAI,CAAEC,EAAG,gBAAiBC,EAAG,EAAGC,EAAG,GACnCC,GAAI,CAAEH,EAAG,gBAAiBC,EAAG,EAAGC,EAAG,IAEvCE,UAAU,GAGd,OACIlF,EAAAA,cAACmF,EAAAA,GAAKC,OAAAC,OAAA,GACEZ,EAAK,CACTa,aAAcnF,KAAKC,MAAMqH,kBACzBlC,cAAed,EAAMc,eAAiBZ,KAMlD,OAAO,MAIf,UCrHA,MAAMyE,UAAyBpJ,EAAAA,UAQpBC,SACH,MAAM,UAAE8C,GAAc5C,KAAKC,MAAMqB,OAEjC,OACIzB,EAAAA,cAAA,OAAK+C,UAAWsG,GAAAA,CAAU,MAAOtG,IAC7B/C,EAAAA,cAAA,OAAK+C,UAAU,OACV5C,KAAKmJ,aAEVtJ,EAAAA,cAAA,OAAK+C,UAAU,OACV5C,KAAKoJ,eAYtB,kBACI,MAAM,YAAEC,GAAgBrJ,KAAKC,MAAMqB,OACnC,MAAwB,aAAhB+H,EAA8BrJ,KAAKsJ,YAActJ,KAAKuJ,aAKlE,mBACI,MAAM,YAAEF,GAAgBrJ,KAAKC,MAAMqB,OACnC,MAAwB,cAAhB+H,EAA+BrJ,KAAKsJ,YAActJ,KAAKuJ,aAKnE,mBACI,OAAQ1J,EAAAA,cAACyI,EAA0B,CAAChH,OAAQtB,KAAKC,MAAMqB,SAK3D,kBAEI,MAAMA,EAAStB,KAAKC,MAAMqB,OACpBwF,EAAyB9G,KAAKC,MAAMuJ,MAAM1C,uBAE1C2C,EAAqB,CACvBpC,gBAAiB/F,EAAOoI,oBACxBlC,iBAAkBlG,EAAOqI,qBACzB/B,iBAAkBtG,EAAOsI,qBACzBrC,oBAAqBjG,EAAOuI,wBAC5BzC,SAAU9F,EAAOwI,aACjBlH,UAAW,0BACXiE,KAAMvF,EAAOyI,SACb5C,QAAS7F,EAAO0I,YAChBzJ,MAAOe,EAAO2I,UACdnD,uBAAuBA,GAG3B,OACIjH,EAAAA,cAACoG,EAAyB,CACtB3E,OAAQmI,EACRnC,kBAAmBtH,KAAKC,MAAMuB,QAAQC,QAAQ0D,gBAM9D,kQCxFc,MAAO+E,UAAarK,EAAAA,UAO9BqB,YAAYjB,GACRkB,MAAMlB,GACND,KAAKC,MAAQA,EACbD,KAAKmK,IAAMtK,EAAAA,YAGRuK,SACCpK,KAAKmK,KAAOnK,KAAKmK,IAAIE,SACrBrK,KAAKmK,IAAIE,QAAQD,SAIlBtK,SACH,MAAAwK,EASItK,KAAKC,OATH,UACF2C,EAAS,UACT2H,EAAS,OACTC,EAAM,IACNC,EAAG,SACHC,EACA,aAAcC,EAAK,KACnB5C,GAEHuC,EADMM,GAAUC,EAAAA,EAAAA,GAAAP,EAAAQ,GAGXC,EAAMN,GAAO,OAEbO,GAAUC,EAAAA,EAAAA,iBACZC,GAAAA,CACItI,IACA4H,GAAS,eAEbD,GAGJ,OACI1K,EAAAA,cAACkL,EAAG9F,OAAAC,OAAA,GAAK0F,EAAU,CAAET,IAAKO,EAAU9H,UAAWoI,EAASjD,KAAM,OAAM,aAAc4C,MAxC5ET,EAAAiB,aAAoC,GCkBtD,IAAMC,EAAN,cAA8BvL,EAAAA,UAS1BqB,YAAYjB,GAAkD,IAAAoL,EAC1DlK,MAAMlB,GAAMoL,EAAArL,KATT,KAAAsL,MAA4B,CAC/BC,oBAAoB,EACpBC,eAAgB,GAChBC,aAAc,GACdC,gBAAiB,GACjBC,YAAY,GA0ER,KAAAC,SAAYC,IAChB7L,KAAK6D,SAAS,CAAE2H,eAAgBK,EAAEjG,OAAOvB,OAAS,GAAIoH,aAAc,MAkBhE,KAAAK,oBAAuBN,IACpBO,EAAAA,EAAAA,yBAAwB,CAAEC,cAAehM,KAAKC,MAAMuB,QAAQyK,eAAiBT,GAAgBU,MAAKC,IACrG,GAAIA,aAA0BC,MAC1B,MAAMD,EAENA,GAAkBA,EAAeE,IACjCrM,KAAK6D,SAAS,CACV6H,gBAAiB1L,KAAKsM,2BAA2BH,EAAeE,GAAGE,QAAQ,MAAO,IAAKJ,EAAeK,sBAAuBL,EAAeM,0BAGrJC,OAAM3K,IACL/B,KAAK2M,UAASC,EAAAA,EAAAA,QAAO5M,KAAKC,MAAM4M,UAAUC,4BAA6BtB,OACxEuB,SAAQ,KACP/M,KAAK6D,SAAS,CACV0H,oBAAoB,OAKxB,KAAAoB,SAAYlB,IAChBzL,KAAK6D,SAAS,CACV4H,aAAAA,IAEJ,MAAMuB,EACFhN,KAAKiN,yBAA2BjN,KAAKiN,wBAAwB5C,SAAWrK,KAAKiN,wBAAwB5C,QAAQ6C,OAAUlN,KAAKiN,wBAAwB5C,QACxJ2C,GAASA,EAAME,SAGX,KAAAC,mBAAqB,WAA4D,IAA3DC,EAAAC,UAAAC,OAAA,QAAAlJ,IAAAiJ,UAAA,GAAAA,UAAA,GAAgB,EAAGE,EAAAF,UAAAC,OAAA,QAAAlJ,IAAAiJ,UAAA,GAAAA,UAAA,GAAuB,MACpE,OAAOhC,EAAKpL,MAAMuB,QAAQgM,iBAAiBC,eAAeL,EAAOG,IAG7D,KAAAjB,2BAA6B,SAACoB,GAA2G,IAAvFC,EAAAN,UAAAC,OAAA,QAAAlJ,IAAAiJ,UAAA,GAAAA,UAAA,GAAgC,EAAGO,EAA4BP,UAAAC,OAAA,EAAAD,UAAA,QAAAjJ,EACrH,GAAIsJ,IAAeC,GAAmD,IAA1BA,GAA8B,CACtE,MAAME,EAAuCH,GAAcA,EAAWI,UAAUJ,EAAWJ,OAAS,EAAGI,EAAWJ,QAAUI,EAAWI,UAAUJ,EAAWJ,OAAS,EAAGI,EAAWJ,aAAUlJ,EACvL2J,EAA0BJ,GAAgD,EAC1EK,EAAuCJ,GAA8C,MAC3F,OAAOhB,EAAAA,EAAAA,QAAOvB,EAAKpL,MAAM4M,UAAUoB,uBAAwBJ,EAAmBxC,EAAK8B,mBAAmBY,EAAiBC,MA7H3HhO,KAAKiN,wBAA0BpN,EAAAA,YAC/BG,KAAK8L,oBAAsB9L,KAAK8L,oBAAoBzK,KAAKrB,MACzDA,KAAKkO,2BAA6BlO,KAAKkO,2BAA2B7M,KAAKrB,MACvEA,KAAKmO,cAAgBnO,KAAKmO,cAAc9M,KAAKrB,MAG1CoO,qBACUpO,KAAKC,MAAMuB,SAAWxB,KAAKC,MAAMuB,QAAQC,SAAWzB,KAAKC,MAAMuB,QAAQC,QAAQ4M,MAClFC,iBACNtO,KAAK6D,SAAS,CACV4H,aAAczL,KAAKC,MAAM4M,UAAU0B,2BAMxCzO,SACH,OAAME,KAAKC,OAASD,KAAKC,MAAM4M,UAI3BhN,EAAAA,cAACqK,EAAI,CAACtH,UAAU,oBAAoB4L,SAAUxO,KAAKmO,eAC/CtO,EAAAA,cAAA,OAAK+C,UAAU,2BACX/C,EAAAA,cAAA,SAAOW,GAAG,0BAA0BoC,UAAU,gCACzC5C,KAAKC,MAAM4M,UAAU4B,oBAG9B5O,EAAAA,cAAA,OAAK+C,UAAU,2BACX/C,EAAAA,cAAA,SACIsK,IAAKnK,KAAKiN,wBACVyB,KAAK,OACL9C,SAAU5L,KAAK4L,SACfhJ,UAAU,+BAA8B,aAC5B5C,KAAKC,MAAM4M,UAAU4B,kBACjCE,aAAa,MAEbtK,MAAOrE,KAAKsL,MAAME,kBAI1B3L,EAAAA,cAAA,OAAK+C,UAAU,2BACV5C,KAAKsL,OAAStL,KAAKsL,MAAMG,eACtBzL,KAAKsL,MAAMG,aAAamD,SAAS,WAAa5O,KAAKkO,6BAC/CrO,EAAAA,cAAA,QAAMW,GAAG,4BAA4BoC,UAAU,kCAAkCmF,KAAK,QAAO,YAAW,aACnG/H,KAAKsL,MAAMG,gBAI5B5L,EAAAA,cAAA,OAAK+C,UAAU,6BACV5C,KAAKsL,OAAStL,KAAKsL,MAAMI,iBACtB7L,EAAAA,cAAA,QAAM+C,UAAU,kCACX5C,KAAKsL,MAAMI,kBAIxB7L,EAAAA,cAAA,WACIA,EAAAA,cAAC8H,EAAAA,EAAY,CACT/E,UAAU,2BACVrC,MAAOP,KAAKC,MAAM4M,UAAUgC,mBAC5BC,MAAM,UACN7L,QAASjD,KAAKmO,cAAa,aACfnO,KAAKC,MAAM4M,UAAUgC,mBACjCE,UAAU/O,KAAKsL,MAAME,mBA5C1B,KAuDP2C,cAActC,GAClB,MAAML,EAAiBxL,KAAKsL,MAAME,eAAiBxL,KAAKsL,MAAME,eAAee,QAAQ,MAAO,IAAM,GAClGV,EAAEmD,kBACGxD,GAAmBA,GAA4C,IAA1BA,EAAe8B,OACrDtN,KAAK2M,SAAS3M,KAAKC,MAAM4M,UAAUoC,kBAEnCjP,KAAK6D,SAAS,CACV0H,oBAAoB,EACpBE,aAAc,GACdC,gBAAiB,KAEhB1L,KAAK8L,oBAAoBN,IA8C9B0C,6BACJ,MAAMgB,EAAYlP,KAAKC,MAAMuB,QAAQC,QAAQ4M,KAAKa,UAClD,OACIrP,EAAAA,cAAA,QAAMW,GAAG,4BAA4BoC,UAAU,kCAAkCmF,KAAK,QAAO,YAAW,aACnG/H,KAAKC,MAAM4M,UAAUsC,yBAA0B,IAChDtP,EAAAA,cAAA,KAAG+C,UAAU,iCAAiC8C,KAAMwJ,GAAYlP,KAAKC,MAAM4M,UAAU0B,0BAA8B,IAClHvO,KAAKC,MAAM4M,UAAUuC,4BAnJhChE,GAAejD,EAAAA,EAAAA,IAAA,CADpBE,EAAAA,IACK+C,GAwJN,gLC9JA,IAAaiE,EAAb,cAAoCxP,EAAAA,UAMhCqB,YAAYjB,GAGR,GAFAkB,MAAMlB,GALU,KAAAqP,eAAyB,GACzB,KAAAC,cAAwB,GACxB,KAAAC,cAAwB,EAKpCvP,EAAMwP,aAAc,CACpBzP,KAAKsP,eAAiBrP,EAAMwP,aAC5B,MACMC,GADmB1P,KAAKC,MAAMyP,QAAQ1P,KAAKsP,eAAgBtP,KAAKC,MAAMO,IAE5ER,KAAKC,MAAM2L,SAAS5L,KAAKsP,eAAgBI,EAAS1P,KAAKC,MAAMO,IAGjER,KAAK2P,cAAgB3P,KAAK2P,cAActO,KAAKrB,MAC7CA,KAAK4P,SAAW5P,KAAK4P,SAASvO,KAAKrB,MAGhCF,SACH,MAAM+P,EAAe7P,KAAKC,MAAM6P,cAChC,CACIpB,KAAM,OACNqB,IAAK/P,KAAKC,MAAM+P,SAEpB,CAAEtB,KAAM,QAER,OACI7O,EAAAA,cAAA,OAAK+C,UAAU,+BACX/C,EAAAA,cAAA,SAAOoQ,QAASjQ,KAAKC,MAAM0K,OACtB3K,KAAKC,MAAM0K,MACZ9K,EAAAA,cAAA,sBAAkB,QAAQ,MAE9BA,EAAAA,cAAA,QAAAoF,OAAAC,OAAA,CACIgL,YAAalQ,KAAKC,MAAMiQ,YACxB1P,GAAIR,KAAKC,MAAM0K,MACfwF,UAAQ,EACRvN,UAAU,eAAc,aACZ5C,KAAKC,MAAM0F,WACnBkK,EAAY,CAChBjE,SAAU5L,KAAK2P,cACftL,MAAOrE,KAAKsP,eACZX,aAAa,MACbyB,OAAQpQ,KAAK4P,UACT5P,KAAKC,MAAMoQ,YAEnBxQ,EAAAA,cAAA,mBAAe,UAAUG,KAAKsQ,iBAAgB,MAKlDV,SAASW,GACbvQ,KAAKwP,cAAe,EACpBxP,KAAK2P,cAAcY,GAGfZ,cAAcY,GAClBvQ,KAAKsP,eAAiBiB,EAAM3K,OAAOvB,MACnC,MAAMmM,EAAmBxQ,KAAKC,MAAMyP,QAAQ1P,KAAKsP,eAAgBtP,KAAKC,MAAMO,IACtEkP,GAAWc,EAIbA,IAAqBxQ,KAAKwP,aAC1BxP,KAAKuP,cAAgBiB,EAErBxQ,KAAKuP,cAAgB,GAGzBvP,KAAKC,MAAM2L,SAAS5L,KAAKsP,eAAgBI,EAAS1P,KAAKC,MAAMO,IAGjE,uBACI,GAAIR,KAAKuP,cAAcjC,OAAS,EAC5B,OACIzN,EAAAA,cAAA,KAAG+C,UAAU,kDACR5C,KAAKuP,kBA3EVpH,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,sCACCD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,qCACCD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,mCAJFiH,GAAclH,EAAAA,EAAAA,IAAA,CAD1BE,EAAAA,IACYgH,GCmBP,MAAOoB,UAA8B5Q,EAAAA,UAmBvCqB,YAAYjB,GACRkB,MAAMlB,GAlBF,KAAAyQ,eAA2C,CAC/CC,KAAM,CACFC,UAAU,EACVvM,MAAO,IAEXwM,MAAO,CACHD,UAAU,EACVvM,MAAO,GACPyM,MAAO,oIAEXC,IAAK,CACDH,UAAU,EACVvM,MAAO,GACPyM,MAAO,6BAOX9Q,KAAKgR,sBAAwBhR,KAAKgR,sBAAsB3P,KAAKrB,MAC7DA,KAAKiR,mBAAqBjR,KAAKiR,mBAAmB5P,KAAKrB,MACvDA,KAAKkR,kBAAoBlR,KAAKkR,kBAAkB7P,KAAKrB,MAGlDF,SAEH,OADAE,KAAKmR,qBAEDtR,EAAAA,cAACA,EAAAA,SAAc,KACVoF,OAAOmM,KAAKpR,KAAK0Q,gBAAgBW,KAAIC,IAClC,MAAMC,EAAQvR,KAAK0Q,eAAeY,GAClC,IAAIE,EAEJ,GAAsB,oBAAX7P,OAAwB,CAC/B,MAAM8P,EAAW9P,OAAOC,SAAS8P,OAEjCF,EADkB,IAAIG,gBAAgBF,GACZtN,IAAI,uBAAoBC,EAGtD,OACIvE,EAAAA,cAACwP,EAAc,CACXuC,IAAKN,EACL3G,MAAO4G,EAAMM,cAAeC,UAC5BnM,UAAW4L,EAAMM,cAAelM,UAChCuK,YAAaqB,EAAMM,cAAe3B,YAClC1P,GAAI8Q,EACJ1F,SAAU5L,KAAKiR,mBACfvB,QAAS1P,KAAKgR,sBACdvB,aAA4B,UAAd6B,EAAwBE,OAAgBpN,OAIlEvE,EAAAA,cAAA,UACI+C,UAAU,kCACVK,QAASjD,KAAKkR,kBACdnC,UAAW/O,KAAK+R,gBAEf/R,KAAKC,MAAM+R,YAAc,WAMlCb,qBACJnR,KAAK0Q,eAAeC,KAAKkB,cAAgB7R,KAAKC,MAAM0Q,KACpD3Q,KAAK0Q,eAAeG,MAAMgB,cAAgB7R,KAAKC,MAAM4Q,MACrD7Q,KAAK0Q,eAAeK,IAAIc,cAAgB7R,KAAKC,MAAM8Q,IAG/CG,oBACJlR,KAAKC,MAAMgS,SAAS,CAChBpB,MAAO7Q,KAAK0Q,eAAeG,MAAMxM,MACjCsM,KAAM3Q,KAAK0Q,eAAeC,KAAKtM,MAC/B0M,IAAK/Q,KAAK0Q,eAAeK,IAAI1M,QAI7B0N,eAMJ,SAL+B9M,OAAOmM,KAAKpR,KAAK0Q,gBAC3CwB,MAAMZ,IACWtR,KAAK0Q,eAAeY,GACpBV,WAKlBK,mBAAmB5M,EAAeqL,EAAkBlP,GACxD,MAAM2R,EAAYnS,KAAK0Q,eAAelQ,GACtC2R,EAAUvB,SAAWlB,EACrByC,EAAU9N,MAAQA,EAGlBrE,KAAK6D,SAAS,IAGVmN,sBAAsB3M,EAAe7D,GACzC,MAAM2R,EAAYnS,KAAK0Q,eAAelQ,GAGtC,GAAI2R,EAAW,CACX,MAAMC,EAAiBD,EAAUN,cAAeO,eAChD,GAAqB,IAAjB/N,EAAMiJ,OAAgB,OAAO8E,EACjC,GAAID,EAAUrB,QAAUqB,EAAUrB,MAAMuB,KAAKhO,GAAU,OAAO+N,qBCpIpE,MAAOE,EAGTpR,YAAY8L,GAIL,KAAAuF,kBAAoB,KAAe,EACnC,KAAAC,YAAc,IAAe,qBAC7B,KAAAC,mBAAqB,IAAM,qBAC3B,KAAAC,cAAgB,IAA0B,cAN7C1S,KAAKgN,MAAQA,GAmBd,MAAM2F,EAAyBA,CAACC,EAAwBC,KAC3D,MAAM,cAAEC,EAAa,oBAAEC,GAAkDF,EAAWG,IAAI1R,OACxF,OAAO,IAAIgR,GACPW,EAAAA,EAAAA,IACYH,EACAC,EACRH,EAAU/B,MACV+B,EAAUjC,KACViC,EAAUM,WAKfC,eAAeC,EAAkBpG,EAA+BqG,GACnE,OAAOrG,EAAMA,MAAMsG,QAAQD,GAGSE,EAAAA,GAAoC,CACxEC,OAAkDJ,EAClDpG,MAAO2F,IAFJ,MCnCMc,EAAwC,CACjD9C,KAAM,oBACN+C,IAAK,QAaT,MAAMC,UAAwB9T,EAAAA,cAE1BqB,YAAYjB,GAEPA,EAAMqB,OAAesS,gBAAiB,EACvCzS,MAAMlB,GAEND,KAAKsL,MAAQ,CAAEuI,yBAAyB,EAAO9R,MAAO,IACtD/B,KAAK8T,WAAa9T,KAAK8T,WAAWzS,KAAKrB,MAGpCF,SACH,MAAM,wBACF+T,GACA7T,KAAKsL,MACT,OAAIuI,EACO7T,KAAK+T,kBAEL/T,KAAKgU,gBAIpB,wBACI,MAAM,OACFC,EAAM,UACNrR,EAAS,iBACTsR,GACAlU,KAAKC,MAAMqB,OACf,OACIzB,EAAAA,cAAA,OAAK+C,UAAW,6BAA6BqR,KAAUrR,KACnD/C,EAAAA,cAAA,OAAK+C,UAAU,yBAAyBoF,SAAU,EAAC,YAAY,UAC3DnI,EAAAA,cAACsU,EAAAA,GAAiB,CACdvR,UAAU,+BACVqE,KAAMiN,MAO1B,sBACI,MAAME,EAASpU,KAAKqU,2CACd,OACFJ,EAAM,MACN1T,EAAK,SAAE+T,EAAQ,YAAEC,EAAW,UAC5B3R,GACA5C,KAAKC,MAAMqB,QAET,MAAES,GAAU/B,KAAKsL,MACvB,IAAIkJ,EAAmBxU,KAAKC,MAAM4M,UAAU4H,8BAI5C,OAHIzU,KAAKC,MAAMqB,OAAOkT,mBAClBA,EAAmBxU,KAAKC,MAAMqB,OAAOkT,kBAGrC3U,EAAAA,cAAA,OAAK+C,UAAW,6BAA6BqR,KAAUrR,MAEjDrC,GAASgU,IACP1U,EAAAA,cAAA,OAAK+C,UAAU,+BACVrC,GAASA,EAAM0G,MAAQpH,EAAAA,cAACqH,EAAAA,QAAOjC,OAAAC,OAAA,GAAK3E,EAAK,CAAEqC,UAAU,uCACrD2R,GAAe1U,EAAAA,cAACsU,EAAAA,GAAiB,CAAClN,KAAMsN,EAAa3R,UAAU,6CAIxE/C,EAAAA,cAAA,OAAK+C,UAAU,0BACV0R,GAAYA,EAASrN,MAAQpH,EAAAA,cAACqH,EAAAA,QAAOjC,OAAAC,OAAA,GAAKoP,EAAQ,CAAE1R,UAAU,qCAC/D/C,EAAAA,cAAC4Q,EAAqB,CAClBuB,WAAYwC,EACZ3D,MAAOuD,EAAOvD,MACdF,KAAMyD,EAAOzD,KACbI,IAAKqD,EAAOrD,IACZkB,SAAUjS,KAAK8T,aAElB/R,GAASlC,EAAAA,cAAA,OAAK+C,UAAU,8BAA8BmF,KAAK,QAAO,YAAY,aAAchG,KAMtG+R,WAAWY,GAUdtB,EATcT,EACV,CACI9B,MAAO6D,EAAQ7D,MACfF,KAAM+D,EAAQ/D,KACduC,QAASwB,EAAQ3D,KAErB/Q,KAAKC,MAAMuB,SAGUxB,KAAKC,MAAMuB,QAAQyK,eAEvCC,MAAMyI,IACCA,EAAkBC,SAClB5U,KAAKC,MAAMuB,QAAQC,QAAQC,QAAQoC,IAC/B2P,EAAoB9C,MACpB,EACA,CAAE5M,KAAM,IAAKC,OAAkC,GAA1ByP,EAAoBC,IAAW,GAAImB,aAAa,IAEzE7U,KAAK6D,SAAS,CAAEgQ,yBAAyB,KAGzC7T,KAAK6D,SAAS,CAAE9B,MAAO/B,KAAKC,MAAM4M,UAAUiI,yCAGnDpI,OAAMb,IAAO,MAAM,IAAIO,MAAM2I,KAAKC,UAAUnJ,EAAG,KAAM,OAGvDwI,0CACH,MAAM,4BACFY,EAA2B,iCAAEC,EAAgC,gCAAEC,EAA+B,2BAC9FC,EAA0B,gCAAEC,EAA+B,+BAAEC,EAA8B,0BAC3FC,EAAyB,+BAAEC,EAA8B,8BAAEC,GAC3DzV,KAAKC,MAAM4M,WACT,MAAGgE,EAAK,mBAAE6E,EAAkB,KAAE/E,EAAI,IAAEI,GAAS/Q,KAAKC,MAAMqB,OAAOqU,cAAgB,GACrF,MAAO,CACH9E,MAAO,CACHiB,UAAWmD,EACX7C,eAAgB8C,EAChBhF,YAAawF,EAAqB7E,OAAQzM,EAC1CuB,UAAWwP,GAEfxE,KAAM,CACFmB,UAAWsD,EACXhD,eAAgBiD,EAChBnF,YAAawF,EAAqB/E,OAAOvM,EACzCuB,UAAW2P,GAEfvE,IAAK,CACDe,UAAWyD,EACXnD,eAAgBoD,EAChBtF,YAAawF,EAAqB3E,OAAM3M,EACxCuB,UAAW8P,KAM3B,+JC1IA,IAAMG,EAAN,cAAyB/V,EAAAA,UAUrBqB,YAAYjB,GACRkB,MAAMlB,GARU,KAAA4V,iBAA2B,EAEvC,KAAAC,wBAAkC,EAElC,KAAAC,eAAyB,EACb,KAAAC,aAAuB,EAMvChW,KAAKsL,MAAQ,CAAE2K,YAAY,GAE3BjW,KAAKkW,QAAU,CACXvF,KAAM,yBACN+C,IAAKzT,EAAMqB,OAAO6U,YAGtBnW,KAAKoW,kBAAoBpW,KAAKoW,kBAAkB/U,KAAKrB,MACrDA,KAAKqW,cAAgBrW,KAAKqW,cAAchV,KAAKrB,MAC7CA,KAAK4D,YAAc5D,KAAK4D,YAAYvC,KAAKrB,MACrCA,KAAKsW,aAAa7C,EAAAA,oBAAoB9C,QACtC3Q,KAAK8V,wBAAyB,GAI/B1H,oBACHpO,KAAKuW,sBAGFzW,SACcE,KAAKsW,aAAatV,EAAAA,oBAE/BhB,KAAKwW,cAET,MAAQnI,MAAM,gBAAEC,IAAsBtO,KAAKC,MAAMuB,QAAQC,SACnD,UAAEmB,EAAS,UAAE6T,EAAS,kBAAEC,EAAiB,iBAAEC,GAAqB3W,KAAKC,MAAMqB,OACjF,IAAIsV,EAUJ,OARIA,EADA5W,KAAK6V,gBACIhW,EAAAA,cAAA,KAAG+C,UAAU,yBAAyBmF,KAAK,SAAS9E,QAASjD,KAAK4D,aAAc6S,GAEhF5W,EAAAA,cAAA,KAAG+C,UAAU,yBAAyBoF,SAAU,EAAGD,KAAK,SAAS9E,QAASjD,KAAKoW,kBAAmBtO,WAAY9H,KAAKoW,mBAAoBM,GAMhJ1W,KAAKsW,aAAatW,KAAKkW,QAAQvF,OAAU3Q,KAAKsW,aAAa7C,EAAAA,oBAAoB9C,OAAS3Q,KAAK8V,wBAI7Fa,GAAoBrI,EAHb,KAQNtO,KAAKgW,YAENnW,EAAAA,cAACsC,EAAAA,EAAK,CACFK,UAAQ,EACRJ,eAAgB,GAAGQ,IACnBP,WAAW,EACXC,MAAM,EACNC,OAAQvC,KAAKsL,MAAM2K,WACnBY,mBAAoB,SACpBC,iBAAkB,SAClBrU,OAAQ,IACRC,gBAAiB,WACjBuF,OAAQjI,KAAKqW,eAEbxW,EAAAA,cAACqI,EAAAA,EAAW,CAACtF,UAAU,6BAA6BqF,OAAQjI,KAAKqW,gBAEjExW,EAAAA,cAAC8C,EAAAA,EAAS,CAACC,UAAU,aAChB5C,KAAK+W,iBACLH,IAlBmB,KAwB5BL,sBACJ,MAAMS,EAAWC,aACb,KAK0B,oBAAXtV,QAA0BA,OAAOuV,SAAS3V,OAAOqN,SAAS6E,EAAAA,oBAAoB9C,QAAU3Q,KAAK6V,kBACpG7V,KAAK6V,iBAAkB,EACvBsB,cAAcH,MAGtB,KAIR,uBACI,OACInX,EAAAA,cAACA,EAAAA,SAAc,KACVG,KAAKC,MAAMuJ,MAAM4N,QAAQ/F,KAAI,CAACgG,EAAuBC,IAClDzX,EAAAA,cAACA,EAAAA,SAAc,CAAC+R,IAAK0F,GAAQD,MAMrCjB,oBACJpW,KAAK4D,cACL5D,KAAKoB,WAAWpB,KAAKkW,QAAQvF,KAAM3Q,KAAKC,MAAMqB,OAAO6U,YAGjDE,gBACJrW,KAAK4D,cAGA5D,KAAKuX,oBAAoBvX,KAAKkW,QAAQvF,OACvC3Q,KAAKoB,WAAWpB,KAAKkW,QAAQvF,KAAM3Q,KAAKC,MAAMqB,OAAOkW,aAIrD5T,cACJ5D,KAAK6D,SAAS,CAAEoS,YAAY,IAGxBO,cACCxW,KAAK+V,gBACN/V,KAAK+V,eAAgB,EACrB0B,YACI,KACIzX,KAAKgW,aAAc,IAEG,IAA1BhW,KAAKC,MAAMqB,OAAOoW,QAKtBH,oBAAoB5G,GACxB,MAAMjP,EAAU,GAMhB,OAJAwV,SAAS3V,OAAOoW,MAAM,KAAKC,SAAQrW,IAC/B,MAAOsW,EAASxT,GAAS9C,EAAOoW,MAAM,KACtCjW,EAAQmW,EAAQC,QAAUzT,KAEvB3C,EAAQiP,GAGXvP,WAAWuP,EAAcoH,GAC7B,MAAM,QAAErW,GAAY1B,KAAKC,MAAMuB,QAAQC,QACjCuW,EAAM,IAAIC,KAAKA,KAAKD,OAC1BA,EAAIE,SAASF,EAAIG,WAAaJ,GAE9BrW,EAAQoC,IAAI6M,GAAM,EAAO,CAAEyH,QAASJ,EAAKnD,aAAa,IAGlDyB,aAAa3F,GACjB,MAAM,QAAEjP,GAAY1B,KAAKC,MAAMuB,QAAQC,QAEvC,MAIyG,UAApGC,EAAQyC,IAAqEwM,GAAM,GAAM0H,UAjKtFlQ,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,uCAKCD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,kCARTwN,GAAUzN,EAAAA,EAAAA,IAAA,CADfE,EAAAA,IACKuN,GA6KN,0BCvMO,IAAK0C,mBAAZ,SAAYA,GACRA,EAAA,aACAA,EAAA,YACAA,EAAA,aACAA,EAAA,cACAA,EAAA,gBACAA,EAAA,cACAA,EAAA,iBACAA,EAAA,0BACAA,EAAA,cACAA,EAAA,aACAA,EAAA,aACAA,EAAA,YACAA,EAAA,WACAA,EAAA,cACAA,EAAA,aACAA,EAAA,UACAA,EAAA,YACAA,EAAA,cACAA,EAAA,eACAA,EAAA,WACAA,EAAA,cACAA,EAAA,mBACAA,EAAA,cACAA,EAAA,eACAA,EAAA,iBACAA,EAAA,cACAA,EAAA,aACAA,EAAA,cACAA,EAAA,YACAA,EAAA,mBACAA,EAAA,gBACAA,EAAA,gBACAA,EAAA,cACAA,EAAA,oBACAA,EAAA,kBACAA,EAAA,UACAA,EAAA,cACAA,EAAA,YACAA,EAAA,kBACAA,EAAA,kBACAA,EAAA,oBACAA,EAAA,kBACAA,EAAA,eACAA,EAAA,WACAA,EAAA,UACAA,EAAA,aACAA,EAAA,cACAA,EAAA,gBACAA,EAAA,mBACAA,EAAA,eACAA,EAAA,aAnDJ,CAAYA,IAAAA,EAAU,kUCmBtB,IAAMC,EAAN,cAA4B1Y,EAAAA,cAIxBqB,YAAYjB,GACRkB,MAAMlB,GAHU,KAAA0G,aAAuB,EAKvC3G,KAAKwY,aAAexY,KAAKwY,aAAanX,KAAKrB,MAGxCF,SACH,OAAOE,KAAKC,MAAMwY,gXAAUC,CAAC,CACzBC,WAAY3Y,KAAK2G,YACjBiS,YAAa5Y,KAAKwY,cACfxY,KAAKC,QAIRuY,eAEJ,GADAxY,KAAK2G,aAAe3G,KAAK2G,YACH,oBAAXhF,SAA+C,IAArB3B,KAAK2G,YAAsB,CAC5D,MAAMkS,EAAiBlX,OAAOmX,WAAa5B,SAAS6B,KAAKC,YACzD9B,SAAS6B,KAAKE,MAAMC,IAAM,IAAIvX,OAAOwX,YACrCjC,SAASkC,gBAAgBH,MAAMI,YAAY,kBAAmB,IAAI1X,OAAOwX,aACzEjC,SAASkC,gBAAgBH,MAAMI,YAAY,yBAA0B,GAAGR,WAtBpE1Q,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,kCAFTmQ,GAAapQ,EAAAA,EAAAA,IAAA,CADlBE,EAAAA,IACKkQ,GA6BN,wFCzCA,QAAgBtY,IAEZ,MAAM,kCACFqZ,EAAiC,wCACjCC,EAAuC,mCACvCC,GACAvZ,EAAM4M,UAEJ4M,EAASxZ,EAAMuB,QAAQwR,IAAI1R,OAAOoY,gBAAmC,GAE3E,OACI7Z,EAAAA,cAAA,OAAK+C,UAAU,kBACX/C,EAAAA,cAACsC,EAAAA,MAAK,CACFE,WAAW,EACXC,MAAM,EACNC,OAAQtC,EAAM0Y,WACd9B,mBAAmB,SACnBC,iBAAiB,SACjBrU,OAAQ,IACRwF,OAAQhI,EAAM2Y,YACdlW,gBAAgB,WAChBN,eAAe,mCAEfvC,EAAAA,cAACqI,EAAAA,YAAW,CAACD,OAAQhI,EAAM2Y,cAC3B/Y,EAAAA,cAAC8C,EAAAA,UAAS,KACN9C,EAAAA,cAAA,MAAI+C,UAAU,yCAAyC0W,GACvDzZ,EAAAA,cAAA,OAAK+C,UAAU,2CACX/C,EAAAA,cAAA,OAAK+C,UAAU,uCACV3C,EAAMuJ,MAAM6H,KAEjBxR,EAAAA,cAAA,OAAK+C,UAAU,+CACX/C,EAAAA,cAAA,SAAI0Z,GACJ1Z,EAAAA,cAAA,SAAI2Z,GACJ3Z,EAAAA,cAAA,MAAIoZ,MAAO,CAACU,UAAU,QAAS/W,UAAU,0CAEjCqC,OAAOmM,KAAKqI,GACPG,QAAOtO,IAAUmO,EAAOnO,KACxB+F,KAAI,CAAC/F,EAAOgM,IAAWzX,EAAAA,cAAA,MAAI+R,IAAK0F,GAAQgB,EAAAA,EAAWhN,WAOhFzL,EAAAA,cAAA,UAAQoD,QAAShD,EAAM2Y,aAAc3Y,EAAMqB,OAAOuY,sHCtC9D,IAAMC,EAAN,cAAyBja,EAAAA,UAEhBC,SAEL,KAAME,KAAKC,OAASD,KAAKC,MAAM8Z,MAAQ/Z,KAAKC,MAAMqB,QAChD,OAAO,KAGT,IAAI0Y,EACAC,EACJ,GAAIja,KAAKC,MAAM8Z,KAAKC,eAElB,GADAA,EAAiBha,KAAKC,MAAM8Z,KAAKC,eAAeE,OAC5CF,EACFC,EAAeja,KAAKma,oBACf,GAAIna,KAAKC,MAAMqB,OAAO8Y,mBAE3B,OAAO,KAGX,OAAOpa,KAAKqa,mBAAmBJ,EAAcD,GASvCG,eACN,IAAKna,KAAKC,MAAM8Z,KAAKO,WAAc,OACnC,MAAMA,EAAata,KAAKC,MAAM8Z,KAAKO,WAAWJ,OAC9C,IAAKI,EAAc,OACnB,MAAMC,EAAa5Y,OAAOC,SAAS+B,SACnC,IAAI6W,EAAmB,GAMvB,OALAF,EAAW1C,SAAQxQ,IACbA,EAASqT,WACXD,EAAmBpT,EAASqT,SAASvI,MAAKwI,GAAUA,EAAMC,MAAQJ,EAAW3L,SAAS8L,EAAMC,SAAWH,MAGpGA,EAKDI,YAAYX,GAClB,QAAKja,KAAKC,MAAMqB,OAAO8Y,sBACfH,EAAaY,WAAa7a,KAAKC,MAAMqB,OAAO8Y,qBAAsBH,EAAaa,MAAOb,EAAaa,IAAIlM,SAASjN,OAAOC,SAAS+B,WAKlIoX,yBAAyBC,GAC/B,MAAM,OAAE1Z,GAAWtB,KAAKC,MACxB,OAAI+a,GAAkB1Z,EAAO2Z,wBAA0B3Z,EAAO2Z,uBAAuBlV,SAC5EzE,EAAO2Z,uBAAuBlV,SAE9BzE,EAAO4Z,0BAA4B,OAMtCC,yBAAyBH,GAC/B,MAAM,OAAE1Z,GAAWtB,KAAKC,MACxB,GAAI+a,GAAkB1Z,EAAO2Z,wBAA0B3Z,EAAO2Z,uBAAuBzX,SAAWlC,EAAO2Z,uBAAuBzX,QAAQC,eACpI,OAAOnC,EAAO2Z,uBAAuBzX,QAAQC,eACxC,CACL,MAAM+B,EAAOlE,EAAO8Z,yBACpB,OAAQ5V,GAAQA,EAAKhC,SAAWgC,EAAKhC,QAAQC,gBAAmB,KAM5D4W,mBAAmBJ,EAA6CD,GACtE,MAAM,OAAE1Y,GAAWtB,KAAKC,MAClBob,EAAY/Z,EAAOga,qBAAuB,IAC1CN,IAAiBf,GAAeja,KAAK4a,YAAYX,GAGjDsB,EAAavb,KAAK+a,yBAAyBC,GAC3CxV,EAAOlE,EAAOka,+BACdC,EAAsBjW,GAAQA,EAAKhC,SAAWgC,EAAKhC,QAAQC,gBAAmB,GAC9EiY,EAAsB1B,GAAkBA,EAAe/S,MAAU3F,EAAOqa,gCAAkC,GAEhH,OACE9b,EAAAA,cAAA,OAAK+C,UAAU,gBAAe,aAAY,aAAamF,KAAK,cACzDwT,GACC1b,EAAAA,cAAC8H,EAAAA,EAAY,CACX/E,UAAU,oBACVrC,MAAOgb,EACPzM,MAAM,OACNpJ,KAAM1F,KAAKmb,yBAAyBH,KAItCf,GAAgBA,EAAaa,MAAQb,EAAaa,IAAIlM,SAASjN,OAAOC,SAAS+B,WAAasW,EAAaY,WAAavZ,EAAO8Y,oBAC7Hva,EAAAA,cAAA,OAAK+C,UAAU,sBACb/C,EAAAA,cAAA,OAAK+C,UAAU,+BAA8B,cAAa,QAAQyY,GAClExb,EAAAA,cAAC8H,EAAAA,EAAY,CACX/E,UAAU,oBACVrC,MAAO0Z,EAAa2B,KACpB9M,MAAM,OACNpJ,KAAMuU,EAAaa,OAKxBY,GACC7b,EAAAA,cAAA,OAAK+C,UAAU,sBACb/C,EAAAA,cAAA,OAAK+C,UAAU,+BAA8B,cAAa,QAAQyY,GACjEI,GACC5b,EAAAA,cAAC8H,EAAAA,EAAY,CACX/E,UAAU,oBACVrC,MAAOmb,EACP5M,MAAM,OACNpJ,KAAM+V,EAAkB,eACX,UAGf5b,EAAAA,cAAA,OAAK+C,UAAU,0BAAyB,eAAc,QAAQ8Y,OAxHtE5B,GAAU3R,EAAAA,EAAAA,IAAA,CADfE,EAAAA,IACKyR,GAiIN,qHC3IA,MAAM+B,EAAgB,IAOtB,IAAMC,EAAN,cAAuBjc,EAAAA,UAwBnBqB,YAAYjB,GACRkB,MAAMlB,GAfF,KAAA8b,cAA0B,GAC1B,KAAAC,WAAqB,EAErB,KAAAC,qBAAuC,CAC3CxX,UAAW,CACPC,GAAI,CAAEC,EAAG,gBAAuBC,EAAG,EAAGC,EAAGgX,GACzC/W,GAAI,CAAEH,EAAG,gBAAuBC,EAAG,EAAGC,EAAGgX,GACzCK,GAAI,CAAEvX,EAAG,gBAAuBC,EAAG,EAAGC,EAAGgX,IAE7CM,iBAAiB,GAOjBnc,KAAKoc,aAAe,EACpBpc,KAAKqc,cAAgBpc,EAAMqB,OAAO+a,eAAiB,GACnDrc,KAAKsc,uBAAyB,qBAE9Btc,KAAKuc,UAAYvc,KAAKuc,UAAUlb,KAAKrB,MACrCA,KAAKwc,cAAgBxc,KAAKwc,cAAcnb,KAAKrB,MAC7CA,KAAKyc,kBAAoBzc,KAAKyc,kBAAkBpb,KAAKrB,MAEjDC,EAAMqB,OAAOob,kBACbzF,YAAYjX,KAAKuc,UAAWtc,EAAMqB,OAAOob,kBAU1CtO,oBAEHpO,KAAK2c,oBAKF7c,SACH,MAAM,OAAEwB,GAAWtB,KAAKC,MACxB,IAAKqB,EAAO+a,cACR,OAAO,KAGX,MAAMO,EAActb,EAAO+a,cAAcrc,KAAKoc,cACxCjX,EAAenF,KAAKC,MAAMuB,QAAQyK,cAAc4Q,eAAe1X,aAErE,OACItF,EAAAA,cAAA,OAAK+C,UAAU,YAEX/C,EAAAA,cAAA,OAAK+C,UAAU,0BACX/C,EAAAA,cAAA,OAAK+C,UAAU,4BAA4BqW,MAAO,CAAC6D,WAAW,QAAiBC,cAAc,UACxF/c,KAAKgd,gBAIdnd,EAAAA,cAAA,OAAK+C,UAAW,kBAAkBga,EAAYK,OAAS,MACnDpd,EAAAA,cAAA,OAAK+C,UAAU,2BAA2BoF,SAAU,EAAGD,KAAK,SAAS9E,QAASjD,KAAKwc,cAAa,aAAc,kBAC9G3c,EAAAA,cAAA,OAAK+C,UAAW5C,KAAKsc,wBAChBnX,GAAgByX,EAAYtY,OACzBzE,EAAAA,cAACmF,EAAAA,GAAKC,OAAAC,OAAA,GAAK0X,EAAYtY,MAAK,CAAEa,aAAcA,EAAcC,cAAepF,KAAKic,qBAAsBrZ,UAAU,yBAElH/C,EAAAA,cAACsU,EAAAA,GAAiB,CAAClN,KAAM2V,EAAY3V,QAEzCpH,EAAAA,cAAA,OAAK+C,UAAU,uBAAuBoF,SAAU,EAAGD,KAAK,SAAS9E,QAASjD,KAAKuc,UAAS,aAAe,gBAavH,oBACI,OACI1c,EAAAA,cAACA,EAAAA,SAAc,KACVG,KAAKqc,cAAchL,KAAI,CAAC6L,EAAc5F,IACnCzX,EAAAA,cAAA,OACI+C,UAAW0U,IAAUtX,KAAKoc,aAAe,0CAA4C,kCACrFrU,KAAK,SACLC,SAAU,EACV/E,QACIjD,KAAKyc,kBAAiB,UAEjBnF,EACT1F,IAAK0F,GAELzX,EAAAA,cAACqH,EAAAA,QAAOjC,OAAAC,OAAA,GACAgY,EAAaC,aAAY,CAC7BC,WAAW,YAU3BZ,gBACJxc,KAAKqd,wBACLrd,KAAKoc,aAAepc,KAAKoc,aAAe,EAAIpc,KAAKoc,aAAe,EAAIpc,KAAKqc,cAAc/O,OAAS,EAChGtN,KAAKsd,YAKDf,YACJvc,KAAKqd,wBACLrd,KAAKoc,aAAgBpc,KAAKoc,aAAepc,KAAKqc,cAAc/O,OAAS,EAAKtN,KAAKoc,aAAe,EAAI,EAClGpc,KAAKsd,YAKDb,kBAAkBc,GACtB,MAAMjG,EAAQiG,EAAQC,cAAcC,aAAa,WACjDzd,KAAKoc,cAAgB9E,EACrBtX,KAAKqd,wBACLrd,KAAKsd,UAAUC,EAAQC,eAKnBF,UAAUI,GAEd,MAAMC,EAAkB3d,KAAK+b,cAAc/b,KAAKoc,cAC1CwB,EAAY1G,SAAS2G,uBAAuB,0BAA0BC,KAAK,GAEjFF,GAAaA,EAAUG,SAAS,CAC5B7E,IAAKyE,EAAkB3d,KAAKgc,WAC5BgC,KAAM,EACNC,SAAU,WAMVZ,wBACJrd,KAAKsc,uBAAyB,GAC9B7E,YAAW,KACPzX,KAAKsc,uBAAyB,uBACvB,GAKPK,oBACJ,MAAMuB,EAAQhH,SAAS2G,uBAAuB,iBAE9C,IAAK,IAAIM,EAAI,EAAGA,EAAID,EAAM5Q,OAAQ6Q,IAAK,CACnC,MAAMT,EAAKQ,EAAMC,GACjBne,KAAK+b,cAAcoC,GAAKT,EAAGU,UAG/B,MAAMC,EAAkBnH,SAAS2G,uBAAuB,0BAA0B,GAC9EQ,IACAre,KAAKgc,WAAaqC,EAAgBC,aAAe,MAzK7CnW,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,oCACCD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,qCACCD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,6CART0T,GAAQ3T,EAAAA,EAAAA,IAAA,CADbE,EAAAA,IACKyT,GAqLN,kJC1KA,IAAMyC,EAAN,cAA2B1e,EAAAA,UAcvBqB,YAAmBjB,GACfkB,MAAMlB,GATU,KAAA0G,aAAuB,EAWvC3G,KAAKwe,WAAaxe,KAAKwe,WAAWnd,KAAKrB,MACvCA,KAAK4D,YAAc5D,KAAK4D,YAAYvC,KAAKrB,MAKtCF,SACH,OACID,EAAAA,cAAA,OAAK+C,UAAW5C,KAAKC,MAAMqB,OAAOmd,UAC9B5e,EAAAA,cAAA,OACIoD,QAASjD,KAAKwe,WACd1W,WAAY9H,KAAKwe,WACjBzW,KAAK,SAAQ,aACD/H,KAAKC,MAAMqB,OAAOod,eAC9B9b,UAAU,0BACVoF,SAAU,GAEThI,KAAK2e,UACL3e,KAAK4e,YAET5e,KAAK6e,QAWlB,iBACI,GAAI7e,KAAKC,MAAMqB,OAAOgD,MAAO,CACzB,MAAM,QACFwa,EAAO,IACP1e,GACAJ,KAAKC,MAAMqB,OAAOgD,MAEtB,IAAIya,EAAS3e,GAAO,GAKpB,OAJK2e,EAAOnQ,SAAS,SACjBmQ,GAAU,SAIVlf,EAAAA,cAAA,OACIO,IAAK2e,EACLxZ,IAAKuZ,IAMjB,OAAO,KAKX,gBACI,OAAI9e,KAAKC,MAAMqB,OAAO0d,SAGdnf,EAAAA,cAAA,OACI+C,UAAU,0BACVmE,yBACIC,EAAAA,EAAAA,IAAgBhH,KAAKC,MAAMqB,OAAO0d,YAO3C,KAKX,aAEI,IAAInX,EAWJ,OAVI7H,KAAKC,MAAMqB,OAAO2d,UAClBpX,EAAU,WAAW7H,KAAKC,MAAMqB,OAAO2d,WAEvCjf,KAAKC,MAAMqB,OAAO4d,eAClBrX,EAAU,SAAS7H,KAAKC,MAAMqB,OAAO4d,gBAEtClf,KAAKC,MAAMqB,OAAOvB,aACjB8H,EAAU,YAAY7H,KAAKC,MAAMqB,OAAOvB,cAGxC8H,EAEIhI,EAAAA,cAACsC,EAAAA,MAAK,CACFI,OAAQvC,KAAK2G,YACbsB,OAAQjI,KAAK4D,YACbxB,eAAe,gBAAe,kBACbyF,GAEjBhI,EAAAA,cAACqI,EAAAA,YAAW,CAACD,OAAQjI,KAAK4D,YAAaoE,SAAU,IACjDnI,EAAAA,cAAC8C,EAAAA,UAAS,KAEF3C,KAAK2G,aACL3G,KAAKmf,cAOzB1e,QAAQC,KAAK,2CACN,MASH8d,aACJxe,KAAK2G,aAAc,EAKf/C,cACJ5D,KAAK2G,aAAc,EAKvB,iBAEI,OAAI3G,KAAKC,MAAMqB,OAAO2d,QACXpf,EAAAA,cAACiB,EAAAA,EAAa,CAACC,UAAWf,KAAKC,MAAMqB,OAAO2d,UAEnDjf,KAAKC,MAAMqB,OAAO4d,aACXrf,EAAAA,cAACc,EAAAA,EAAW,CAACC,QAASZ,KAAKC,MAAMqB,OAAO4d,eAE/Clf,KAAKC,MAAMqB,OAAOvB,WACXF,EAAAA,cAACD,EAAAA,EAAU,CAACG,WAAYC,KAAKC,MAAMqB,OAAOvB,aAE9C,QAxJCoI,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,kCANTmW,GAAYpW,EAAAA,EAAAA,IAAA,CADjBE,EAAAA,IACKkW,GAkKN,kGChLA,MA0BA,EA1BoHte,IAChH,MAAM,iBAAEmf,EAAgB,eAAEC,EAAc,MAAEC,GAAUrf,GAC7Csf,EAAeC,GAAoB3f,EAAAA,SAAe,IAgBzD,OAdAA,EAAAA,WAAgB,KACRI,EAAMqB,OAAOie,eACbC,EAAiB,QAAQvf,EAAMqB,OAAOie,qBAE3C,CAACtf,EAAMqB,OAAOie,gBAEbE,EAAAA,GAAiBC,YACbzf,EAAMqB,OAAOie,eACbrI,SAASkC,gBAAgBH,MAAMI,YAAY,kBAAmB,GAAGkG,KACjErI,SAASkC,gBAAgBH,MAAMI,YAAY,mBAAoB,SAE/DnC,SAASkC,gBAAgBH,MAAMI,YAAY,mBAAoB,sBAInExZ,EAAAA,cAAC8f,EAAAA,OAAM1a,OAAAC,OAAA,GAAKka,GACPE,EACAD,4FCrBb,MA0BA,EA1BoHpf,IAChH,MAAM,iBAAEmf,EAAgB,eAAEC,EAAc,MAAEC,GAAUrf,GAC7Csf,EAAeC,GAAoB3f,EAAAA,SAAe,IAgBzD,OAdAA,EAAAA,WAAgB,KACRI,EAAMqB,OAAOie,eACbC,EAAiB,QAAQvf,EAAMqB,OAAOie,qBAE3C,CAACtf,EAAMqB,OAAOie,gBAEbE,EAAAA,GAAiBC,YACbzf,EAAMqB,OAAOie,eACbrI,SAASkC,gBAAgBH,MAAMI,YAAY,kBAAmB,GAAGkG,KACjErI,SAASkC,gBAAgBH,MAAMI,YAAY,mBAAoB,SAE/DnC,SAASkC,gBAAgBH,MAAMI,YAAY,mBAAoB,sBAInExZ,EAAAA,cAAC8f,EAAAA,OAAM1a,OAAAC,OAAA,GAAKka,GACPE,EACAD,4FCrBb,MA0BA,EA1BoHpf,IAChH,MAAM,iBAAEmf,EAAgB,eAAEC,EAAc,MAAEC,GAAUrf,GAC7Csf,EAAeC,GAAoB3f,EAAAA,SAAe,IAgBzD,OAdAA,EAAAA,WAAgB,KACRI,EAAMqB,OAAOie,eACbC,EAAiB,QAAQvf,EAAMqB,OAAOie,qBAE3C,CAACtf,EAAMqB,OAAOie,gBAEbE,EAAAA,GAAiBC,YACbzf,EAAMqB,OAAOie,eACbrI,SAASkC,gBAAgBH,MAAMI,YAAY,kBAAmB,GAAGkG,KACjErI,SAASkC,gBAAgBH,MAAMI,YAAY,mBAAoB,SAE/DnC,SAASkC,gBAAgBH,MAAMI,YAAY,mBAAoB,sBAInExZ,EAAAA,cAAC8f,EAAAA,OAAM1a,OAAAC,OAAA,GAAKka,GACPE,EACAD,8ECNb,MAqBA,GArBoDhX,EAAAA,EAAAA,KAAUpI,IAC1D,MAAQ8Z,MAAM,KAAC6F,IAAU3f,EACnB4f,GAAWC,EAAAA,EAAAA,IAAW,OAAQ7f,EAAMuB,QAAQyK,eAC5C8T,EAAWH,EAAO,IAAIA,EAAKI,oBAAsB,GACjDrV,EAAQ,YAAYoV,UAC1B,OACIlgB,EAAAA,cAAA,KAAGU,MAAOoK,EAAO/H,UAAU,wBAAwB8C,KAAMma,EAAQ,aAAclV,GAC3E9K,EAAAA,cAAA,OAAK+C,UAAU,uBAAsB,eAAc,GAAI,WAC3Cmd,+FCvBxB,MA0BA,EA1BoH9f,IAChH,MAAM,iBAAEmf,EAAgB,eAAEC,EAAc,MAAEC,GAAUrf,GAC7Csf,EAAeC,GAAoB3f,EAAAA,SAAe,IAgBzD,OAdAA,EAAAA,WAAgB,KACRI,EAAMqB,OAAOie,eACbC,EAAiB,QAAQvf,EAAMqB,OAAOie,qBAE3C,CAACtf,EAAMqB,OAAOie,gBAEbE,EAAAA,GAAiBC,YACbzf,EAAMqB,OAAOie,eACbrI,SAASkC,gBAAgBH,MAAMI,YAAY,kBAAmB,GAAGkG,KACjErI,SAASkC,gBAAgBH,MAAMI,YAAY,mBAAoB,SAE/DnC,SAASkC,gBAAgBH,MAAMI,YAAY,mBAAoB,sBAInExZ,EAAAA,cAAC8f,EAAAA,OAAM1a,OAAAC,OAAA,GAAKka,GACPE,EACAD,8ECPb,MAqBA,GArBoDhX,EAAAA,EAAAA,KAAUpI,IAC1D,MAAQ8Z,MAAM,KAAC6F,IAAU3f,EACnB4f,GAAWC,EAAAA,EAAAA,IAAW,OAAQ7f,EAAMuB,QAAQyK,eAC5C8T,EAAWH,EAAO,IAAIA,EAAKI,oBAAsB,GACjDrV,EAAQ,YAAYoV,UAC1B,OACIlgB,EAAAA,cAAA,KAAGU,MAAOoK,EAAO/H,UAAU,wBAAwB8C,KAAMma,EAAQ,aAAclV,GAC3E9K,EAAAA,cAAA,OAAK+C,UAAU,uBAAsB,eAAc,GAAI,WAC3Cmd,+FCtBxB,MA0BA,EA1BoH9f,IAChH,MAAM,iBAAEmf,EAAgB,eAAEC,EAAc,MAAEC,GAAUrf,GAC7Csf,EAAeC,GAAoB3f,EAAAA,SAAe,IAgBzD,OAdAA,EAAAA,WAAgB,KACRI,EAAMqB,OAAOie,eACbC,EAAiB,QAAQvf,EAAMqB,OAAOie,qBAE3C,CAACtf,EAAMqB,OAAOie,gBAEbE,EAAAA,GAAiBC,YACbzf,EAAMqB,OAAOie,eACbrI,SAASkC,gBAAgBH,MAAMI,YAAY,kBAAmB,GAAGkG,KACjErI,SAASkC,gBAAgBH,MAAMI,YAAY,mBAAoB,SAE/DnC,SAASkC,gBAAgBH,MAAMI,YAAY,mBAAoB,sBAInExZ,EAAAA,cAAC8f,EAAAA,OAAM1a,OAAAC,OAAA,GAAKka,GACPE,EACAD,8ECPb,MAqBA,GArBoDhX,EAAAA,EAAAA,KAAUpI,IAC1D,MAAQ8Z,MAAM,KAAC6F,IAAU3f,EACnB4f,GAAWC,EAAAA,EAAAA,IAAW,OAAQ7f,EAAMuB,QAAQyK,eAC5C8T,EAAWH,EAAO,IAAIA,EAAKI,oBAAsB,GACjDrV,EAAQ,YAAYoV,UAC1B,OACIlgB,EAAAA,cAAA,KAAGU,MAAOoK,EAAO/H,UAAU,wBAAwB8C,KAAMma,EAAQ,aAAclV,GAC3E9K,EAAAA,cAAA,OAAK+C,UAAU,uBAAsB,eAAc,GAAI,WAC3Cmd,+FCtBxB,MA0BA,EA1BoH9f,IAChH,MAAM,iBAAEmf,EAAgB,eAAEC,EAAc,MAAEC,GAAUrf,GAC7Csf,EAAeC,GAAoB3f,EAAAA,SAAe,IAgBzD,OAdAA,EAAAA,WAAgB,KACRI,EAAMqB,OAAOie,eACbC,EAAiB,QAAQvf,EAAMqB,OAAOie,qBAE3C,CAACtf,EAAMqB,OAAOie,gBAEbE,EAAAA,GAAiBC,YACbzf,EAAMqB,OAAOie,eACbrI,SAASkC,gBAAgBH,MAAMI,YAAY,kBAAmB,GAAGkG,KACjErI,SAASkC,gBAAgBH,MAAMI,YAAY,mBAAoB,SAE/DnC,SAASkC,gBAAgBH,MAAMI,YAAY,mBAAoB,sBAInExZ,EAAAA,cAAC8f,EAAAA,OAAM1a,OAAAC,OAAA,GAAKka,GACPE,EACAD,wFCLb,MAqBA,GArBoDhX,EAAAA,EAAAA,KAAUpI,IAC1D,MAAM,UAAEggB,EAAWlG,MAAM,KAAC6F,IAAU3f,EAC9B4f,GAAWC,EAAAA,EAAAA,IAAW,OAAQ7f,EAAMuB,QAAQyK,eAC5C8T,EAAWH,EAAO,IAAIA,EAAKI,oBAAsB,GACjDrV,GAAQiC,EAAAA,EAAAA,QAAOqT,EAAWF,IAAa,iBAAiBA,UAC9D,OACIlgB,EAAAA,cAAA,KAAGU,MAAOoK,EAAO/H,UAAU,wBAAwB8C,KAAMma,EAAQ,aAAclV,GAC3E9K,EAAAA,cAAA,OAAK+C,UAAU,uBAAsB,eAAc,GAAI,WAC3Cmd,+FCxBxB,MA0BA,EA1BoH9f,IAChH,MAAM,iBAAEmf,EAAgB,eAAEC,EAAc,MAAEC,GAAUrf,GAC7Csf,EAAeC,GAAoB3f,EAAAA,SAAe,IAgBzD,OAdAA,EAAAA,WAAgB,KACRI,EAAMqB,OAAOie,eACbC,EAAiB,QAAQvf,EAAMqB,OAAOie,qBAE3C,CAACtf,EAAMqB,OAAOie,gBAEbE,EAAAA,GAAiBC,YACbzf,EAAMqB,OAAOie,eACbrI,SAASkC,gBAAgBH,MAAMI,YAAY,kBAAmB,GAAGkG,KACjErI,SAASkC,gBAAgBH,MAAMI,YAAY,mBAAoB,SAE/DnC,SAASkC,gBAAgBH,MAAMI,YAAY,mBAAoB,sBAInExZ,EAAAA,cAAC8f,EAAAA,OAAM1a,OAAAC,OAAA,GAAKka,GACPE,EACAD,4FCrBb,MA0BA,EA1BoHpf,IAChH,MAAM,iBAAEmf,EAAgB,eAAEC,EAAc,MAAEC,GAAUrf,GAC7Csf,EAAeC,GAAoB3f,EAAAA,SAAe,IAgBzD,OAdAA,EAAAA,WAAgB,KACRI,EAAMqB,OAAOie,eACbC,EAAiB,QAAQvf,EAAMqB,OAAOie,qBAE3C,CAACtf,EAAMqB,OAAOie,gBAEbE,EAAAA,GAAiBC,YACbzf,EAAMqB,OAAOie,eACbrI,SAASkC,gBAAgBH,MAAMI,YAAY,kBAAmB,GAAGkG,KACjErI,SAASkC,gBAAgBH,MAAMI,YAAY,mBAAoB,SAE/DnC,SAASkC,gBAAgBH,MAAMI,YAAY,mBAAoB,sBAInExZ,EAAAA,cAAC8f,EAAAA,OAAM1a,OAAAC,OAAA,GAAKka,GACPE,EACAD,8ECPb,MAqBA,GArBoDhX,EAAAA,EAAAA,KAAUpI,IAC1D,MAAQ8Z,MAAM,KAAC6F,IAAU3f,EACnB4f,GAAWC,EAAAA,EAAAA,IAAW,OAAQ7f,EAAMuB,QAAQyK,eAC5C8T,EAAWH,EAAO,IAAIA,EAAKI,oBAAsB,GACjDrV,EAAQ,YAAYoV,UAC1B,OACIlgB,EAAAA,cAAA,KAAGU,MAAOoK,EAAO/H,UAAU,wBAAwB8C,KAAMma,EAAQ,aAAclV,GAC3E9K,EAAAA,cAAA,OAAK+C,UAAU,uBAAsB,eAAc,GAAI,WAC3Cmd,2FCNxB,MAqBA,GArBoD1X,EAAAA,EAAAA,KAAUpI,IAC1D,MAAM,UAAEggB,EAAWlG,MAAM,KAAC6F,IAAU3f,EAC9B4f,GAAWC,EAAAA,EAAAA,IAAW,OAAQ7f,EAAMuB,QAAQyK,eAC5C8T,EAAWH,EAAO,IAAIA,EAAKI,oBAAsB,GACjDrV,GAAQiC,EAAAA,EAAAA,QAAOqT,EAAWF,IAAa,iBAAiBA,UAC9D,OACIlgB,EAAAA,cAAA,KAAGU,MAAOoK,EAAO/H,UAAU,wBAAwB8C,KAAMma,EAAQ,aAAclV,GAC3E9K,EAAAA,cAAA,OAAK+C,UAAU,uBAAsB,eAAc,GAAI,WAC3Cmd,+FCxBxB,MA0BA,EA1BoH9f,IAChH,MAAM,iBAAEmf,EAAgB,eAAEC,EAAc,MAAEC,GAAUrf,GAC7Csf,EAAeC,GAAoB3f,EAAAA,SAAe,IAgBzD,OAdAA,EAAAA,WAAgB,KACRI,EAAMqB,OAAOie,eACbC,EAAiB,QAAQvf,EAAMqB,OAAOie,qBAE3C,CAACtf,EAAMqB,OAAOie,gBAEbE,EAAAA,GAAiBC,YACbzf,EAAMqB,OAAOie,eACbrI,SAASkC,gBAAgBH,MAAMI,YAAY,kBAAmB,GAAGkG,KACjErI,SAASkC,gBAAgBH,MAAMI,YAAY,mBAAoB,SAE/DnC,SAASkC,gBAAgBH,MAAMI,YAAY,mBAAoB,sBAInExZ,EAAAA,cAAC8f,EAAAA,OAAM1a,OAAAC,OAAA,GAAKka,GACPE,EACAD,8ECPb,MAqBA,GArBoDhX,EAAAA,EAAAA,KAAUpI,IAC1D,MAAQ8Z,MAAM,KAAC6F,IAAU3f,EACnB4f,GAAWC,EAAAA,EAAAA,IAAW,OAAQ7f,EAAMuB,QAAQyK,eAC5C8T,EAAWH,EAAO,IAAIA,EAAKI,oBAAsB,GACjDrV,EAAQ,YAAYoV,UAC1B,OACIlgB,EAAAA,cAAA,KAAGU,MAAOoK,EAAO/H,UAAU,wBAAwB8C,KAAMma,EAAQ,aAAclV,GAC3E9K,EAAAA,cAAA,OAAK+C,UAAU,uBAAsB,eAAc,GAAI,WAC3Cmd,+FCtBxB,MA0BA,EA1BoH9f,IAChH,MAAM,iBAAEmf,EAAgB,eAAEC,EAAc,MAAEC,GAAUrf,GAC7Csf,EAAeC,GAAoB3f,EAAAA,SAAe,IAgBzD,OAdAA,EAAAA,WAAgB,KACRI,EAAMqB,OAAOie,eACbC,EAAiB,QAAQvf,EAAMqB,OAAOie,qBAE3C,CAACtf,EAAMqB,OAAOie,gBAEbE,EAAAA,GAAiBC,YACbzf,EAAMqB,OAAOie,eACbrI,SAASkC,gBAAgBH,MAAMI,YAAY,kBAAmB,GAAGkG,KACjErI,SAASkC,gBAAgBH,MAAMI,YAAY,mBAAoB,SAE/DnC,SAASkC,gBAAgBH,MAAMI,YAAY,mBAAoB,sBAInExZ,EAAAA,cAAC8f,EAAAA,OAAM1a,OAAAC,OAAA,GAAKka,GACPE,EACAD,wFCLb,MAqBA,GArBoDhX,EAAAA,EAAAA,KAAUpI,IAC1D,MAAM,UAAEggB,EAAWlG,MAAM,KAAC6F,IAAU3f,EAC9B4f,GAAWC,EAAAA,EAAAA,IAAW,OAAQ7f,EAAMuB,QAAQyK,eAC5C8T,EAAWH,EAAO,IAAIA,EAAKI,oBAAsB,GACjDrV,GAAQiC,EAAAA,EAAAA,QAAOqT,EAAWF,IAAa,iBAAiBA,UAC9D,OACIlgB,EAAAA,cAAA,KAAGU,MAAOoK,EAAO/H,UAAU,wBAAwB8C,KAAMma,EAAQ,aAAclV,GAC3E9K,EAAAA,cAAA,OAAK+C,UAAU,uBAAsB,eAAc,GAAI,WAC3Cmd,+FCxBxB,MA0BA,EA1BoH9f,IAChH,MAAM,iBAAEmf,EAAgB,eAAEC,EAAc,MAAEC,GAAUrf,GAC7Csf,EAAeC,GAAoB3f,EAAAA,SAAe,IAgBzD,OAdAA,EAAAA,WAAgB,KACRI,EAAMqB,OAAOie,eACbC,EAAiB,QAAQvf,EAAMqB,OAAOie,qBAE3C,CAACtf,EAAMqB,OAAOie,gBAEbE,EAAAA,GAAiBC,YACbzf,EAAMqB,OAAOie,eACbrI,SAASkC,gBAAgBH,MAAMI,YAAY,kBAAmB,GAAGkG,KACjErI,SAASkC,gBAAgBH,MAAMI,YAAY,mBAAoB,SAE/DnC,SAASkC,gBAAgBH,MAAMI,YAAY,mBAAoB,sBAInExZ,EAAAA,cAAC8f,EAAAA,OAAM1a,OAAAC,OAAA,GAAKka,GACPE,EACAD,8ECPb,MAqBA,GArBoDhX,EAAAA,EAAAA,KAAUpI,IAC1D,MAAQ8Z,MAAM,KAAC6F,IAAU3f,EACnB4f,GAAWC,EAAAA,EAAAA,IAAW,OAAQ7f,EAAMuB,QAAQyK,eAC5C8T,EAAWH,EAAO,IAAIA,EAAKI,oBAAsB,GACjDrV,EAAQ,YAAYoV,UAC1B,OACIlgB,EAAAA,cAAA,KAAGU,MAAOoK,EAAO/H,UAAU,wBAAwB8C,KAAMma,EAAQ,aAAclV,GAC3E9K,EAAAA,cAAA,OAAK+C,UAAU,uBAAsB,eAAc,GAAI,WAC3Cmd,+FCtBxB,MA0BA,EA1BoH9f,IAChH,MAAM,iBAAEmf,EAAgB,eAAEC,EAAc,MAAEC,GAAUrf,GAC7Csf,EAAeC,GAAoB3f,EAAAA,SAAe,IAgBzD,OAdAA,EAAAA,WAAgB,KACRI,EAAMqB,OAAOie,eACbC,EAAiB,QAAQvf,EAAMqB,OAAOie,qBAE3C,CAACtf,EAAMqB,OAAOie,gBAEbE,EAAAA,GAAiBC,YACbzf,EAAMqB,OAAOie,eACbrI,SAASkC,gBAAgBH,MAAMI,YAAY,kBAAmB,GAAGkG,KACjErI,SAASkC,gBAAgBH,MAAMI,YAAY,mBAAoB,SAE/DnC,SAASkC,gBAAgBH,MAAMI,YAAY,mBAAoB,sBAInExZ,EAAAA,cAAC8f,EAAAA,OAAM1a,OAAAC,OAAA,GAAKka,GACPE,EACAD,wFCLb,MAqBA,GArBoDhX,EAAAA,EAAAA,KAAUpI,IAC1D,MAAM,UAAEggB,EAAWlG,MAAM,KAAC6F,IAAU3f,EAC9B4f,GAAWC,EAAAA,EAAAA,IAAW,OAAQ7f,EAAMuB,QAAQyK,eAC5C8T,EAAWH,EAAO,IAAIA,EAAKI,oBAAsB,GACjDrV,GAAQiC,EAAAA,EAAAA,QAAOqT,EAAWF,IAAa,iBAAiBA,UAC9D,OACIlgB,EAAAA,cAAA,KAAGU,MAAOoK,EAAO/H,UAAU,wBAAwB8C,KAAMma,EAAQ,aAAclV,GAC3E9K,EAAAA,cAAA,OAAK+C,UAAU,uBAAsB,eAAc,GAAI,WAC3Cmd,+FCxBxB,MA0BA,EA1BoH9f,IAChH,MAAM,iBAAEmf,EAAgB,eAAEC,EAAc,MAAEC,GAAUrf,GAC7Csf,EAAeC,GAAoB3f,EAAAA,SAAe,IAgBzD,OAdAA,EAAAA,WAAgB,KACRI,EAAMqB,OAAOie,eACbC,EAAiB,QAAQvf,EAAMqB,OAAOie,qBAE3C,CAACtf,EAAMqB,OAAOie,gBAEbE,EAAAA,GAAiBC,YACbzf,EAAMqB,OAAOie,eACbrI,SAASkC,gBAAgBH,MAAMI,YAAY,kBAAmB,GAAGkG,KACjErI,SAASkC,gBAAgBH,MAAMI,YAAY,mBAAoB,SAE/DnC,SAASkC,gBAAgBH,MAAMI,YAAY,mBAAoB,sBAInExZ,EAAAA,cAAC8f,EAAAA,OAAM1a,OAAAC,OAAA,GAAKka,GACPE,EACAD,wFCLb,MAqBA,GArBoDhX,EAAAA,EAAAA,KAAUpI,IAC1D,MAAM,UAAEggB,EAAWlG,MAAM,KAAC6F,IAAU3f,EAC9B4f,GAAWC,EAAAA,EAAAA,IAAW,OAAQ7f,EAAMuB,QAAQyK,eAC5C8T,EAAWH,EAAO,IAAIA,EAAKI,oBAAsB,GACjDrV,GAAQiC,EAAAA,EAAAA,QAAOqT,EAAWF,IAAa,iBAAiBA,UAC9D,OACIlgB,EAAAA,cAAA,KAAGU,MAAOoK,EAAO/H,UAAU,wBAAwB8C,KAAMma,EAAQ,aAAclV,GAC3E9K,EAAAA,cAAA,OAAK+C,UAAU,uBAAsB,eAAc,GAAI,WAC3Cmd,+FCxBxB,MA0BA,EA1BoH9f,IAChH,MAAM,iBAAEmf,EAAgB,eAAEC,EAAc,MAAEC,GAAUrf,GAC7Csf,EAAeC,GAAoB3f,EAAAA,SAAe,IAgBzD,OAdAA,EAAAA,WAAgB,KACRI,EAAMqB,OAAOie,eACbC,EAAiB,QAAQvf,EAAMqB,OAAOie,qBAE3C,CAACtf,EAAMqB,OAAOie,gBAEbE,EAAAA,GAAiBC,YACbzf,EAAMqB,OAAOie,eACbrI,SAASkC,gBAAgBH,MAAMI,YAAY,kBAAmB,GAAGkG,KACjErI,SAASkC,gBAAgBH,MAAMI,YAAY,mBAAoB,SAE/DnC,SAASkC,gBAAgBH,MAAMI,YAAY,mBAAoB,sBAInExZ,EAAAA,cAAC8f,EAAAA,OAAM1a,OAAAC,OAAA,GAAKka,GACPE,EACAD,8MCdN,MAAMa,EAA+CC,IAAA,IAAC,sBACzDC,EAAqB,QACrBC,EAAO,UACPC,EAAS,YACTC,EAAW,MACXC,EAAK,OACLC,EAAM,mBACNC,EAAkB,YAClBC,EAAW,eACXC,EAAc,KACdC,GACHV,EAAA,OACGtgB,EAAAA,cAACihB,EAAAA,KAAI7b,OAAAC,OAAA,GAAKkb,GACLO,EACAC,EACAP,EACAC,EACAC,EACAC,EACAC,EACAC,EACAG,IAIIE,EAAkCC,IAAA,IAAC,eAAEC,EAAc,UAAEC,EAAS,eAAEC,EAAc,OAAEC,GAAQJ,EAAA,OACjGnhB,EAAAA,cAACihB,EAAAA,KAAI7b,OAAAC,OAAA,GAAK+b,GACLC,EACAC,EACAC,IAIIC,EAA0CC,IAAA,IAAC,cAAEC,EAAa,QAAEC,EAAO,MAAEhB,GAAOc,EAAA,OACrFzhB,EAAAA,cAACihB,EAAAA,KAAI7b,OAAAC,OAAA,GAAKqc,GACLC,EACAhB,IAIIiB,EAA0BC,IAAA,IAAC,WAAEC,EAAU,SAAEC,EAAQ,QAAEC,EAAO,gBAAEC,EAAe,WAAEC,EAAU,0BAAEC,GAA2BN,EAAA,OAC7H7hB,EAAAA,cAACihB,EAAAA,KAAI7b,OAAAC,OAAA,GAAKyc,GACLC,GAAY/hB,EAAAA,cAACwhB,EAAapc,OAAAC,OAAA,GAAK0c,IAChC/hB,EAAAA,cAACihB,EAAAA,KAAI,CAACle,UAAU,2CACXmf,GACGliB,EAAAA,cAACihB,EAAAA,KAAI7b,OAAAC,OAAA,GAAK4c,GACLC,EAAW1Q,KAAI6P,GACZrhB,EAAAA,cAACA,EAAAA,SAAc,CAAC+R,IAAKsP,EAAUnH,KAAKmH,UAAUe,QACT,SAAhCf,EAAUnH,KAAKmI,cAA2BhB,EAAUnH,KAAKoI,SAAWjB,EAAUkB,aAAe,KAC9FviB,EAAAA,cAACkhB,EAAS9b,OAAAC,OAAA,GAAKgc,KACbc,GAA6Bd,EAAUmB,iBAKvDT,EAASU,cAAgBT,EAC1BD,EAASU,cACNziB,EAAAA,cAACihB,EAAAA,KAAI7b,OAAAC,OAAA,GAAK0c,EAASW,aACdV,EACAD,EAASY,uBAOjBC,EAA4BC,IAAA,IAAC,YAAEC,EAAW,OAAEvO,GAAQsO,EAAA,OAC7D7iB,EAAAA,cAACihB,EAAAA,KAAI7b,OAAAC,OAAA,GAAKyd,GACLvO,EAAO/C,KAAI,CAACuR,EAAOtL,IAChBzX,EAAAA,cAAC4hB,EAAKxc,OAAAC,OAAA,CAAC0M,IAAK0F,GAAWsL,QAKtBC,EAAwCC,IAAA,IAAC,kBAClDC,EAAiB,QACjBvB,EAAO,SACPwB,EAAQ,SACRC,EAAQ,IACRC,EAAG,YACHC,EAAW,aACXC,GACHN,EAAA,OACGjjB,EAAAA,cAACihB,EAAAA,KAAI7b,OAAAC,OAAA,GAAK6d,GACLvB,EACAwB,EACAC,EACAC,EACAC,EACAC,IAIIC,EAAqCC,IAAA,IAAC,oBAAEC,EAAmB,MAAEhjB,EAAK,QAAEijB,GAASF,EAAA,OACtFzjB,EAAAA,cAACihB,EAAAA,KAAI7b,OAAAC,OAAA,GAAKqe,GACLhjB,EACAijB,IAIIC,EAAwBC,IAAA,IAAC,UAAEC,EAAS,cAAEC,EAAa,oBAAEC,EAAmB,cAAEC,GAAeJ,EAAA,OAClG7jB,EAAAA,cAACihB,EAAAA,KAAI7b,OAAAC,OAAA,GAAKye,GACLC,EACAC,EACAC,IAuCT,EAnC2DC,IActD,IAduD,YACxDC,EAAW,UACXC,EAAS,iBACTC,EAAgB,MAChBC,EAAK,SACLC,EAAQ,QACR5C,EAAO,MACPlC,EAAK,QACL+E,EAAO,gBACPC,EAAe,aACfC,EAAY,QACZC,EAAO,KACPC,EAAI,OACJrQ,GACH2P,EACG,OACIlkB,EAAAA,cAAC8f,EAAAA,OAAM1a,OAAAC,OAAA,GAAK8e,GACPI,EACA5C,EACAlC,EACA+E,EACAC,GAAmBzkB,EAAAA,cAACqgB,EAAejb,OAAAC,OAAA,GAAKof,IACxCJ,EACAD,EACAE,EACA/P,GAAUvU,EAAAA,cAAC4iB,EAAMxd,OAAAC,OAAA,GAAKkP,IACvBvU,EAAAA,cAACihB,EAAAA,KAAI,CAACle,UAAU,6CACX2hB,GAAgB1kB,EAAAA,cAACgjB,EAAY5d,OAAAC,OAAA,GAAKqf,IAClCC,GAAW3kB,EAAAA,cAACwjB,EAAOpe,OAAAC,OAAA,GAAKsf,KAE5BC,GAAQ5kB,EAAAA,cAAC4jB,EAAIxe,OAAAC,OAAA,GAAKuf,iFCpJ/B,MAcMC,EAAiBzkB,GAEfJ,EAAAA,cAACihB,EAAAA,KAAI7b,OAAAC,OAAA,GAAKjF,EAAM0kB,aACX1kB,EAAM2kB,UACN3kB,EAAM4kB,IACN5kB,EAAM6kB,YAKnB,EAxBmE7kB,IAC/D,MAAM,QAAEuhB,EAAO,eAAEuD,EAAc,eAAEC,EAAc,YAAEhB,GAAgB/jB,EACjE,OACIJ,EAAAA,cAAC8f,EAAAA,OAAM1a,OAAAC,OAAA,GAAK8e,GACPxC,EACD3hB,EAAAA,cAACihB,EAAAA,KAAI7b,OAAAC,OAAA,GAAK8f,GACLD,EAAe1T,KAAIyM,GACT4G,EAAc5G,mFCDzC,MA6CMmH,EAAmBhlB,GAEjBJ,EAAAA,cAACihB,EAAAA,KAAI7b,OAAAC,OAAA,GAAKjF,EAAMilB,WACZrlB,EAAAA,cAACihB,EAAAA,KAAI7b,OAAAC,OAAA,GAAKjF,EAAMklB,aACXllB,EAAMmlB,OACNnlB,EAAM0Q,KACN1Q,EAAMolB,MAEXxlB,EAAAA,cAACihB,EAAAA,KAAI7b,OAAAC,OAAA,GAAKjF,EAAMqlB,eACZzlB,EAAAA,cAACihB,EAAAA,KAAI7b,OAAAC,OAAA,GAAKjF,EAAMslB,aACXtlB,EAAMulB,YACNvlB,EAAMwlB,YAEX5lB,EAAAA,cAACihB,EAAAA,KAAI7b,OAAAC,OAAA,GAAKjF,EAAMylB,eACXzlB,EAAM0lB,aACN1lB,EAAM2lB,aACN3lB,EAAM4lB,cAEXhmB,EAAAA,cAACihB,EAAAA,KAAI7b,OAAAC,OAAA,GAAKjF,EAAM6lB,eACX7lB,EAAM8lB,mBACN9lB,EAAM+lB,KACN/lB,EAAMgmB,QACNhmB,EAAMimB,KACNjmB,EAAMkmB,UAOrBC,EAAoBA,CAACnmB,EAA8B+jB,IAEjDnkB,EAAAA,cAAC8f,EAAAA,OAAM1a,OAAAC,OAAA,GAAK8e,EAAiB/jB,EAAMomB,OAC9BpmB,EAAMqmB,YACPzmB,EAAAA,cAACihB,EAAAA,KAAI7b,OAAAC,OAAA,GAAKjF,EAAMsmB,WACZ1mB,EAAAA,cAACihB,EAAAA,KAAI7b,OAAAC,OAAA,GAAKjF,EAAMumB,MACZ3mB,EAAAA,cAACihB,EAAAA,KAAI7b,OAAAC,OAAA,GAAKjF,EAAMwmB,UACXxmB,EAAMmlB,OACNnlB,EAAMymB,aAEX7mB,EAAAA,cAACihB,EAAAA,KAAI7b,OAAAC,OAAA,GAAKjF,EAAMwmB,UACXxmB,EAAM0mB,WACN1mB,EAAM2mB,YAEX/mB,EAAAA,cAACihB,EAAAA,KAAI7b,OAAAC,OAAA,GAAKjF,EAAMwmB,UACXxmB,EAAM4mB,UACN5mB,EAAM6mB,WAEV7mB,EAAM8mB,iBACN9mB,EAAM8B,QAGflC,EAAAA,cAACihB,EAAAA,KAAI7b,OAAAC,OAAA,GAAKjF,EAAM+mB,aACX/mB,EAAMgnB,aACNhnB,EAAMinB,eAMjBC,EAAoBA,CAAClnB,EAAoCqL,IAEvDzL,EAAAA,cAACihB,EAAAA,KAAI7b,OAAAC,OAAA,GAAKjF,EAAMomB,OACZxmB,EAAAA,cAACihB,EAAAA,KAAI7b,OAAAC,OAAA,GAAKjF,EAAMqmB,aAAchb,EAAM8b,SAAWnnB,EAAMonB,gBAAkBpnB,EAAMqnB,QAC7EznB,EAAAA,cAACihB,EAAAA,KAAI7b,OAAAC,OAAA,GAAKjF,EAAMsmB,WACXjb,EAAM8b,SAAWnnB,EAAMsnB,uBAAyB,CAACtnB,EAAMunB,cAAevnB,EAAMwnB,aAAcxnB,EAAM8B,QAErGlC,EAAAA,cAACihB,EAAAA,KAAI7b,OAAAC,OAAA,GAAKjF,EAAM+mB,aAAc1b,EAAM8b,SAAWnnB,EAAMynB,gBAAkB,CAACznB,EAAMgnB,aAAchnB,EAAMinB,gBAK9G,EArHyDjnB,IACrD,MAAM,cACF0nB,EAAa,iBACbC,EAAgB,YAChB5D,EAAW,iBACX6D,EAAgB,2BAChBC,EAA0B,aAC1BC,EAAY,mBACZC,EAAkB,kBAClBC,EAAiB,iBACjBC,EAAgB,YAChBC,EAAW,YACXC,EAAW,YACXC,EAAW,eACXC,EAAc,MACdhd,EAAK,WACLid,GACAtoB,EAEJ,OAAKsoB,GAAqC,IAAvBJ,EAAY7a,QAAiBhC,EAAMkd,gBAKlD3oB,EAAAA,cAAC8f,EAAAA,OAAM1a,OAAAC,OAAA,GAAK8e,GACP2D,EACAS,EACDvoB,EAAAA,cAACihB,EAAAA,KAAI7b,OAAAC,OAAA,GAAK8iB,GACLM,EACAV,GAEL/nB,EAAAA,cAACihB,EAAAA,KAAI7b,OAAAC,OAAA,GAAKgjB,GACLK,GAActD,EAAgBsD,GAC9BJ,EAAY9W,KAAIoX,GACNxD,EAAgBwD,MAGP,IAAvBN,EAAY7a,QAAgBhC,EAAMkd,iBAAmBV,EACrDC,EACA3B,EAAkBiC,EAAarE,GAC/BmD,EAAkBc,EAAmB3c,IApBnCzL,EAAAA,cAAC8f,EAAAA,OAAM1a,OAAAC,OAAA,GAAK8e,GAAc6D,wECnBzC,MAAMa,UAAsB7oB,EAAAA,cAQxBqB,YAAYjB,GACRkB,MAAMlB,GARO,KAAA0oB,UAAqC,CAClD9L,eAAgB7c,KAAKC,MAAMuB,QAAQC,QACnCmnB,OAASrY,GAA0CvQ,KAAKC,MAAMqB,OAAOunB,cAAgBtY,EAAM3K,OAAOvB,OAOlGrE,KAAK8oB,kBAAmBC,EAAAA,EAAAA,oBACpB/oB,KAAKC,MAAMuB,QAAQC,QAAQunB,kBAC3BhpB,KAAKC,MAAMgpB,aACXjpB,KAAKC,MAAMipB,WAIZppB,SACH,OAAKE,KAAKC,MAAMqB,OAAO6nB,YAMnBtpB,EAAAA,cAACupB,EAAAA,UAAS,CACN1jB,KAAM1F,KAAKC,MAAMqB,OAAO6nB,YACxB5oB,MAAOP,KAAKC,MAAMqB,OAAOf,MAAK,aAClBP,KAAKC,MAAMqB,OAAOqE,UAC9B/C,UAAU,iBACV+lB,UAAW3oB,KAAK2oB,UAChB1hB,KAAMjH,KAAKC,MAAMqB,OAAOunB,cACxBC,iBAAkB9oB,KAAK8oB,oBAZ3B9oB,KAAKC,MAAMipB,UAAUnnB,MAAM,oEACpB,OAiBnB,8JCrCA,MAAMsnB,EAAqB,kDACrBC,EAAmB,GAAGD,aACtBE,EAAsB,GAAGF,iBAoElBG,EAAyHjW,EAAAA,GAA0BkW,gBAG9J,kDAAmD,CAAEC,UAnCnDzpB,IAEA,MAAM,UACF4M,EACAkN,MAAM,YAAE4P,GAAa,UACrBC,EAAS,eACTC,EAAc,aACdC,GACA7pB,EAEE8pB,EAAaJ,MAAAA,OAAW,EAAXA,EAAarc,OAC1B0c,EAAiB,IAAID,KAA6B,IAAfA,EAAmBld,MAAAA,OAAS,EAATA,EAAWod,gBAAkBpd,MAAAA,OAAS,EAATA,EAAWqd,oBAEpG,OACIrqB,IAAAA,cAACihB,EAAAA,KAAI,CAACle,UAAWunB,GAAAA,CAAWlqB,EAAM2C,UAAWymB,KACxCO,MAAAA,OAAS,EAATA,EAAW3iB,OACRpH,IAAAA,cAAC0T,EAAAA,GAAatO,OAAAC,OAAA,GACN0kB,EAAS,CACbhnB,UAAW0mB,EACX7e,IAAKmf,EAAUnf,KAAO,KACtBke,UAAW,CAAEC,OAAQ3oB,EAAM2L,SAAUiR,eAAgB5c,EAAMuB,QAAQC,YAG1EooB,GAAkBhqB,IAAAA,cAAA,QAAM+C,UAAW2mB,GAAsBS,GACzDF,qNC1Db,MAAMT,EAAqB,8DACrBe,EAAuB,GAAGf,mBAC1BgB,EAAoB,GAAGhB,eACvBiB,EAAwB,GAAGjB,cAa1B,IAAKkB,GAAZ,SAAYA,GACRA,EAAAA,EAAA,+BACAA,EAAAA,EAAA,uBAFJ,CAAYA,IAAAA,EAA6C,KAqBzD,MAmDaC,EAA6H/K,EAAAA,GAAiBgK,gBAGzJ,oDAAqD,CAAEC,UArDrDzpB,IACA,IAAAwqB,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACA,MAAOC,EAAeC,GAAoBrrB,IAAAA,SAAeI,EAAMkrB,sBAEzDC,EAAkBC,IACpBH,EAAiBG,GACjBprB,EAAMgD,QAAQooB,IAIZC,GAAiCC,EAAAA,EAAAA,wBACnCtrB,EAAM6oB,kBACN0C,EAAAA,EAAAA,kBAAiB,QAASvrB,EAAM6oB,iBAAmB,GAAG2C,EAAAA,kBAAkBC,6BAEtEC,GAA6BJ,EAAAA,EAAAA,wBAC/BtrB,EAAM6oB,kBACN0C,EAAAA,EAAAA,kBAAiB,QAASvrB,EAAM6oB,iBAAmB,GAAG2C,EAAAA,kBAAkBC,yBAG5E,OACI7rB,IAAAA,cAAA,OAAK+C,UAAWunB,GAAAA,CAAWlqB,EAAM2C,UAAWymB,IACxCxpB,IAAAA,cAAC+rB,EAAAA,OAAM3mB,OAAAC,OAAA,CACHtC,UAAWunB,GAAAA,CACPC,EACAa,IAAkBV,EAA8CsB,aAAevB,EAAwB,IAC1G,aACuD,QADvDG,EAC0B,QAD1BC,EACWzqB,EAAM4M,iBAAS,IAAA6d,OAAA,EAAfA,EAAiBoB,mCAA2B,IAAArB,EAAAA,EAAI,GAC5DlqB,MAAmD,QAA9CoqB,EAAiB,QAAjBC,EAAE3qB,EAAM4M,iBAAS,IAAA+d,OAAA,EAAfA,EAAiBkB,mCAA2B,IAAAnB,EAAAA,EAAI,GACvD5iB,KAAK,SACL9E,QAASA,IAAMmoB,EAAeb,EAA8CsB,eACxEP,IAERzrB,IAAAA,cAAC+rB,EAAAA,OAAM3mB,OAAAC,OAAA,CACHtC,UAAWunB,GAAAA,CACPE,EACAY,IAAkBV,EAA8CwB,SAAWzB,EAAwB,IACtG,aACmD,QADnDO,EAC0B,QAD1BC,EACW7qB,EAAM4M,iBAAS,IAAAie,OAAA,EAAfA,EAAiBkB,+BAAuB,IAAAnB,EAAAA,EAAI,GACxDtqB,MAA+C,QAA1CwqB,EAAiB,QAAjBC,EAAE/qB,EAAM4M,iBAAS,IAAAme,OAAA,EAAfA,EAAiBgB,+BAAuB,IAAAjB,EAAAA,EAAI,GACnDhjB,KAAK,SACL9E,QAASA,IAAMmoB,EAAeb,EAA8CwB,WACxEJ,oGCtERM,ynBAAZ,SAAYA,GACRA,EAAAA,EAAA,yBACAA,EAAAA,EAAA,2BAFJ,CAAYA,IAAAA,EAAW,KAWvB,IAAMC,EAAN,cAAsBrsB,EAAAA,cAKlBqB,YAAYjB,GACRkB,MAAMlB,GALO,KAAAksB,uBAAiC,sBAEjC,KAAAC,sBAAgC,qBAI7CpsB,KAAKqsB,iBAAmBrsB,KAAKqsB,iBAAiBhrB,KAAKrB,MAGhDF,SACH,MAAM,MAAE0J,EAAK,WAAEiP,EAAU,OAAEnX,EAAM,KAAEyY,EAAI,WAAEuS,EAAU,UAAEC,GAAcvsB,KAAKC,MAClEqX,EAAQiV,GAAa,EACrBC,EAAYC,EAAanV,EAAOtX,KAAKC,MAAMysB,OAAS,IACpDC,EAAwB5S,GAAQA,EAAK6S,gBAAkB7S,EAAK6S,eAAe1S,OAC3E2S,EACFF,GACAA,EAAsBD,QAAU1sB,KAAKC,MAAMysB,YACEtoB,IAA7CuoB,EAAsBG,mBAChBH,EAAsBG,qBAAuBxV,EAC7CgV,IAAc,EAsBxB,OAAO7T,EArBQC,EAAAA,EAAA,GACR1Y,KAAKC,OAAK,IACb8sB,oBAAqB,CACjB/I,YAAahkB,KAAKC,MAClB2C,UAAWunB,GAAAA,CAAWnqB,KAAKmsB,uBAAwB7qB,EAAOsB,YAE9DoqB,mBAAoB,CAChBhJ,YAAahkB,KAAKC,MAClB2C,UAAWunB,GAAAA,CAAWnqB,KAAKosB,sBAAuB9qB,EAAOsB,YAE7DqqB,eAAgB,CACZrqB,UAAW,+BACX6H,IAAK,UACL,eAAgBoiB,EAChB9kB,KAAM,WACNC,SAAU6kB,EAAQ,GAAK,EACvBrsB,GAAIgsB,GAERU,UAAWltB,KAAKqsB,mBAChBc,SAAU3jB,KAKV6iB,mBACJ,OAAOxsB,EAAAA,cAAAA,EAAAA,SAAA,KAAGG,KAAKC,MAAMqB,OAAO8rB,gBA9C9BlB,GAAO/jB,EAAAA,EAAAA,IAAA,CADZE,EAAAA,IACK6jB,GAkDC,MAAMO,EAAeA,CAACnV,EAAe9W,IACjC,oBAAoBA,KAAM8W,IAGrC,yFCpFA,MAsBM+V,EAAyBC,GAEvBztB,EAAAA,cAAAA,EAAAA,SAAA,KACKytB,GAASA,EAAMhgB,OAAS,EACnBggB,EAAMjc,KAAI,CAACyM,EAAuBxG,IACvBzX,EAAAA,cAACA,EAAAA,SAAc,CAAC+R,IAAK0F,GAAQwG,KAExC,MAIlB,EAjCiD7d,IAC7C,MAAM,YAAEstB,EAAW,SAAEJ,EAAQ,oBAAEJ,EAAmB,mBAAEC,EAAkB,eAAEC,EAAc,UAAEC,GAAcjtB,EAEtG,OAAQstB,GACJ,KAAKtB,EAAAA,YAAYuB,WACb,OACI3tB,EAAAA,cAAC8f,EAAAA,OAAM1a,OAAAC,OAAA,GAAK6nB,GACRltB,EAAAA,cAACihB,EAAAA,KAAI7b,OAAAC,OAAA,GAAK+nB,GACLE,GACGA,EAASM,gBACTN,EAASM,eAAengB,QACxB+f,EAAsBF,EAASM,kBAInD,KAAKxB,EAAAA,YAAYyB,UACb,OAAO7tB,EAAAA,cAAC8f,EAAAA,OAAM1a,OAAAC,OAAA,GAAK8nB,GAAqBE,GAC5C,QACI,OAAO,0wBCkBnB,IAAMS,EAAN,cAAkB9tB,EAAAA,UAKdqB,YAAYjB,GACRkB,MAAMlB,GALM,KAAA2tB,cAAwB,YAgFjC,KAAAC,oBAAuBtd,GAA0CvQ,KAAKC,MAAMqB,OAAOkgB,QAASva,KAAOsJ,EAAM3K,OAAOvB,MAgCtG,KAAAypB,YAAetoB,IAC5BxF,KAAK+tB,WAAavoB,GAsCL,KAAAwoB,SAAW,CAAC1W,EAAe9W,IAAgBqL,IACxD,MAAM+gB,EAAiB,CAAEE,mBAAoBxV,EAAOoV,MAAOlsB,GAC3DR,KAAKC,MAAMuB,QAAQyK,cAAcgiB,QAAOC,EAAAA,EAAAA,qBAAoBtB,GAAiBA,GAC7E5sB,KAAK6D,SAAS,CAAEsqB,gBAAiB7W,IAGjC,MAAMuF,EAAiB7c,KAAKC,MAAMuB,QAAQC,QACpC2sB,EAASpuB,KAAKquB,iBAAiBxR,EAAgB7c,KAAK4tB,cAAe,GAAG5tB,KAAKC,MAAMO,MAAM8tB,OAAOhX,EAAQ,MAC5GuF,GAAkBlb,OAAO4sB,QAAQC,UAAU,CAAEzqB,KAAMqqB,GAAU,GAAIA,IAGpD,KAAAK,WAAa,CAACnX,EAAe9W,IAAgBqL,IAC1D,GAAkB,KAAdA,EAAE6iB,QAAgB,CAClB,MAAM9B,EAAiB,CAAEE,mBAAoBxV,EAAOoV,MAAOlsB,GAC3DR,KAAKC,MAAMuB,QAAQyK,cAAcgiB,QAAOC,EAAAA,EAAAA,qBAAoBtB,GAAiBA,GAC7E5sB,KAAK6D,SAAS,CAAEsqB,gBAAiB7W,IAGjC,MAAMuF,EAAiB7c,KAAKC,MAAMuB,QAAQC,QACpC2sB,EAASpuB,KAAKquB,iBAAiBxR,EAAgB7c,KAAK4tB,cAAe,GAAG5tB,KAAKC,MAAMO,MAAM8tB,OAAOhX,EAAQ,MAC5GuF,GAAkBlb,OAAO4sB,QAAQC,UAAU,CAAEzqB,KAAMqqB,GAAU,GAAIA,GAGrE,GAAkB,KAAdviB,EAAE6iB,SAAgC,KAAd7iB,EAAE6iB,QAAgB,CACtC,MAAM,MAAEllB,GAAUxJ,KAAKC,MACjB0uB,EAAcnlB,GAASA,EAAMolB,UAAYplB,EAAMolB,SAASthB,QAAW,EAEzE,GAAkB,KAAdzB,EAAE6iB,QAAgB,CAEdpX,EAAQ,IAAMqX,IACdrX,GAAS,GAEb,MAAMsV,EAAiB,CAAEE,mBAAoBxV,EAAQ,EAAGoV,MAAOlsB,GAC/DR,KAAKC,MAAMuB,QAAQyK,cAAcgiB,QAAOC,EAAAA,EAAAA,qBAAoBtB,GAAiBA,GAC7E5sB,KAAK6D,SAAS,CAAEsqB,gBAAiB7W,EAAQ,IAGzC,MAAMuF,EAAiB7c,KAAKC,MAAMuB,QAAQC,QACpC2sB,EAASpuB,KAAKquB,iBAAiBxR,EAAgB7c,KAAK4tB,cAAe,GAAG5tB,KAAKC,MAAMO,MAAM8tB,OAAOhX,EAAQ,MAC5GuF,GAAkBlb,OAAO4sB,QAAQC,UAAU,CAAEzqB,KAAMqqB,GAAU,GAAIA,QAG9D,GAAkB,KAAdviB,EAAE6iB,QAAgB,CAEX,IAAVpX,IACAA,EAAQqX,GAEZ,MAAM/B,EAAiB,CAAEE,mBAAoBxV,EAAQ,EAAGoV,MAAOlsB,GAC/DR,KAAKC,MAAMuB,QAAQyK,cAAcgiB,QAAOC,EAAAA,EAAAA,qBAAoBtB,GAAiBA,GAC7E5sB,KAAK6D,SAAS,CAAEsqB,gBAAiB7W,EAAQ,IAGzC,MAAMuF,EAAiB7c,KAAKC,MAAMuB,QAAQC,QACpC2sB,EAASpuB,KAAKquB,iBAAiBxR,EAAgB7c,KAAK4tB,cAAe,GAAG5tB,KAAKC,MAAMO,MAAM8tB,OAAOhX,MACpGuF,GAAkBlb,OAAO4sB,QAAQC,UAAU,CAAEzqB,KAAMqqB,GAAU,GAAIA,MAvMzE,MAAM,gBAAES,GAAoB7uB,KAAKC,MAAMqB,QACjC,MAAEkI,GAAUxJ,KAAKC,MACjB0uB,EAAcnlB,GAASA,EAAMolB,UAAYplB,EAAMolB,SAASthB,QAAW,EACzE,IAAIwhB,EAAeD,GAAmBA,GAAmBF,GAAcE,EAAkB,EAAIA,EAAkB,EAAI,EACnH,MAAME,EACD/uB,KAAKC,MAAMuB,SACRxB,KAAKC,MAAMuB,QAAQC,SACnBzB,KAAKC,MAAMuB,QAAQC,QAAQutB,OAC3BhvB,KAAKC,MAAMuB,QAAQC,QAAQutB,MAAMC,WACrC,GACJ,IAAIC,EAAwB,EAC5B,GAAIH,EAAYI,QAAQ,KAAO,EAAG,CAC9B,MAAMC,EAAML,EAAYpX,MAAM,KACbyX,EAAI,KACJpvB,KAAKC,MAAMO,KACxB0uB,EAAgBG,OAAOC,SAASF,EAAI,GAAI,KAGhDN,EAAeI,EAAgB,GAAKA,GAAiBP,EAAaO,EAAgB,EAAIJ,EACtF9uB,KAAKsL,MAAQ,CAAE6iB,gBAAiBW,GAEhC9uB,KAAKuvB,cAAgBvvB,KAAKuvB,cAAcluB,KAAKrB,MAC7CA,KAAKwvB,eAAiBxvB,KAAKwvB,eAAenuB,KAAKrB,MAC/CA,KAAKguB,SAAWhuB,KAAKguB,SAAS3sB,KAAKrB,MACnCA,KAAKyuB,WAAazuB,KAAKyuB,WAAWptB,KAAKrB,MACvCA,KAAKquB,iBAAmBruB,KAAKquB,iBAAiBhtB,KAAKrB,MACnDA,KAAK+tB,WAAa,KAGf0B,sBAAsBC,EAAgCC,GACzD,OAAI3vB,KAAKsL,QAAUqkB,GAAa3vB,KAAKC,MAAM8Z,OAAS2V,EAAU3V,KAM3Dja,SACH,MAAM,MAAE0J,GAAUxJ,KAAKC,OACjB,QAAEuhB,EAAO,UAAE5e,GAAc5C,KAAKC,MAAMqB,OAEpCsuB,EAAmBpO,GACrB3hB,EAAAA,cAACgwB,EAAAA,GAAa,CACVjtB,UAAU,iCACV6H,IAAK+W,EAAQ/W,KAAO,KACpBxD,KAAMua,EAAQva,KACd0hB,UAAW,CAAEC,OAAQ5oB,KAAK6tB,oBAAqBhR,eAAgB7c,KAAKC,MAAMuB,QAAQC,WAGpFktB,EAAcnlB,GAASA,EAAMolB,UAAYplB,EAAMolB,SAASthB,QAAW,EAMnEwiB,EAAYpX,EAAAA,EAAA,GACX1Y,KAAKC,OAAK,IACb8vB,aAAc,CACV/L,YAAahkB,KAAKC,MAClB2C,UAAWunB,GAAAA,CAAW,SAAUvnB,IAEpCotB,cAAe,CAAEptB,UAAW,yBAC5BqtB,YAAa,CAAErtB,UAAW,sBAAuB6H,IAAK,KAAiB1C,KAAM,WAC7EyZ,QAASoO,EACTtuB,OAAQtB,KAAKC,OAASD,KAAKC,MAAMqB,OACjC4uB,iBAAkB,CACdzlB,IAAK,MACL7H,UAAW,0BAEfutB,YAAaxB,EAAa,GAAKnlB,EAAMolB,SAASvd,KAAI,CAACyM,EAAuBxG,IAAkBtX,KAAKwvB,eAAe1R,EAAMxG,KACtH8Y,WAAYzB,EAAa,GAAKnlB,EAAMolB,SAASvd,KAAI,CAACyM,EAAuBxG,IAAkBtX,KAAKuvB,cAAczR,EAAMxG,OAExH,OAAOtX,KAAKC,MAAMwY,WAAWqX,GAK1BO,qBACH,MAAM,KAAEtW,GAAS/Z,KAAKC,MACtB,IAAKD,KAAKC,MAAMuB,QAAQC,QAAQ6uB,OAAOC,SAAU,CAC7C,MAAMC,EAAkBzW,GAAQA,EAAK6S,gBAAkB7S,EAAK6S,eAAe1S,QAAUH,EAAK6S,eAAe1S,OAAOwS,MAChH,GAAI8D,EACIxwB,KAAKC,MAAMO,KAAOgwB,GAClBxwB,KAAK+tB,YAAc/tB,KAAK+tB,WAAW7gB,YAEpC,CACH,MAAM6hB,EACD/uB,KAAKC,MAAMuB,SACRxB,KAAKC,MAAMuB,QAAQC,SACnBzB,KAAKC,MAAMuB,QAAQC,QAAQutB,OAC3BhvB,KAAKC,MAAMuB,QAAQC,QAAQutB,MAAMC,WACrC,GACJ,GAAIF,EAAYI,QAAQ,KAAO,EAAG,CAClBJ,EAAYpX,MAAM,KACT,KACJ3X,KAAKC,MAAMO,IACxBR,KAAK+tB,YAAc/tB,KAAK+tB,WAAW7gB,WAe/CqiB,cAAczR,EAAuBxG,GACzC,MAAM,KAAEyC,GAAS/Z,KAAKC,MAChB6sB,EACF/S,GAAQA,EAAK6S,gBAAkB7S,EAAK6S,eAAe1S,QAAUH,EAAK6S,eAAe1S,OAAO4S,mBACtF0D,EAAkBzW,GAAQA,EAAK6S,gBAAkB7S,EAAK6S,eAAe1S,QAAUH,EAAK6S,eAAe1S,OAAOwS,MAC1G+D,OACqBrsB,IAAvB0oB,GAAoC0D,IAAoBxwB,KAAKC,MAAMO,GAC7DssB,IAAuBxV,EACvBtX,KAAKsL,MAAM6iB,kBAAoB7W,EACnCkV,GAAYC,EAAAA,EAAAA,cAAanV,EAAOtX,KAAKC,MAAMO,IAEjD,OACIX,EAAAA,cAAA,MACI+R,IAAK0F,EACL1U,UAAU,yBACVoF,SAAUyoB,EAAW,GAAK,EAC1BxtB,QAASjD,KAAKguB,SAAS1W,EAAOtX,KAAKC,MAAMO,IACzCkwB,UAAW1wB,KAAKyuB,WAAWnX,EAAOtX,KAAKC,MAAMO,IAC7C2J,IAAKnK,KAAKsL,MAAM6iB,kBAAoB7W,EAAQtX,KAAK8tB,iBAAc1pB,EAAS,gBACzDooB,EAAS,gBACTiE,EACf1oB,KAAK,OAELlI,EAAAA,cAACA,EAAAA,SAAc,CAAC+R,IAAK0F,GAChBzX,EAAAA,aAAmBie,EAA4B,CAC5CyP,YAAatB,EAAAA,YAAYyB,UACzBpB,WAAYhV,IAAUtX,KAAKsL,MAAM6iB,gBACjC5B,UAAWjV,EACXoV,MAAO1sB,KAAKC,MAAMO,OAkE9BgvB,eAAe1R,EAAuBxG,GAC1C,OACIzX,EAAAA,cAACA,EAAAA,SAAc,CAAC+R,IAAK0F,GAChBzX,EAAAA,aAAmBie,EAA4B,CAC5CyP,YAAatB,EAAAA,YAAYuB,WACzBlB,WAAYhV,IAAUtX,KAAKsL,MAAM6iB,gBACjC5B,UAAWjV,EACXoV,MAAO1sB,KAAKC,MAAMO,MAM1B6tB,iBAAiBxR,EAA0C8T,EAAmBC,GAClF,IAAIC,EAGAA,EADAhB,EAAAA,GAA0BnQ,UACpB,IAAInc,IAAI5B,OAAOC,SAAS8D,MAExB,IAAInC,IAAIsZ,EAAegU,IAAIC,WAAWprB,MAGhD,MAAM4qB,EAAS,IAAI3uB,OAAOgQ,gBAAgBkf,EAAInf,QAG9C,OAFA4e,EAAOxsB,IAAI6sB,EAAWC,GACtBC,EAAInf,OAASqf,mBAAmBT,EAAOU,YAChCH,EAAIG,aA5ObrD,GAAGxlB,EAAAA,EAAAA,IAAA,CADRE,EAAAA,IACKslB,GAgPN,qFCpRA,MAeA,EAfyC1tB,IACrC,MAAM,QAAEuhB,EAAO,aAAEuO,EAAY,WAAEK,EAAU,YAAED,GAAgBlwB,EAC3D,OAAKA,EAAMuhB,SAAYvhB,EAAMmwB,YAAenwB,EAAMkwB,YAK9CtwB,EAAAA,cAAC8f,EAAAA,OAAM1a,OAAAC,OAAA,GAAK6qB,GACRlwB,EAAAA,cAACihB,EAAAA,KAAI7b,OAAAC,OAAA,GAAKjF,EAAM+vB,eAAgBxO,GAChC3hB,EAAAA,cAACihB,EAAAA,KAAI7b,OAAAC,OAAA,GAAKjF,EAAMgwB,aAAcG,GAC9BvwB,EAAAA,cAACihB,EAAAA,KAAI7b,OAAAC,OAAA,GAAKjF,EAAMiwB,kBAAmBC,KAPvClwB,EAAMuB,QAAQ0nB,UAAUnnB,MAAM,4CACvB,sICaR,MAAMkvB,UAAsBpxB,EAAAA,cAAnCqB,cAAA,oBAoBqB,KAAAgwB,kBAAqBC,IAClC,IAAKC,EAAAA,gBAAgBC,YAAYF,GAC7B,OAAO,KAEX,MAAMG,EAAuC,GAC7C,IAAK,MAAM9rB,KAAQ2rB,EAAU,CAEzB,MAAMI,GAAU/F,EAAAA,EAAAA,kBAAiB,QAASxrB,KAAKC,MAAM6oB,iBAAkB,GAAI,IACrE/iB,EAAWP,EAAKO,SAAWP,EAAKO,SAAW,GACjDwrB,EAAQC,cAAcC,MAAQ1rB,EAC9B,MAAM6E,GAAa2gB,EAAAA,EAAAA,wBAAuBvrB,KAAKC,MAAM6oB,iBAAkByI,GACjEG,EAAoC,CACtC/rB,UAAWH,EAAKG,UAChB/C,UAAW,qBACXmD,SAAUP,EAAKO,SACfvC,QAASgC,EAAKhC,QAAQC,eACtBoC,aAAcL,EAAKK,aACnBkC,KAAM,SACN4pB,qBAAsB/mB,EACtB3H,SAAS2uB,EAAAA,EAAAA,kBAAiB5xB,KAAKC,MAAM6oB,iBAAkByI,EAASxrB,IAEpEurB,EAAcO,KAAKH,GAGvB,OAAOJ,GA3CJxxB,SACH,MAAMwxB,EAAgBtxB,KAAKkxB,kBAAkBlxB,KAAKC,MAAM6xB,OACxD,OACIjyB,EAAAA,cAAA,OAAK+C,UAAU,uBACV0uB,GAAiBF,EAAAA,gBAAgBC,YAAYC,GAC1CzxB,EAAAA,cAAC0T,EAAAA,GAAc,CACXue,MAAOR,EACP3I,UAAW,CAAEoJ,aAAc/xB,KAAKC,MAAM8xB,aAAclV,eAAgB7c,KAAKC,MAAM4c,kBAEnF,OAqCpB,+kBCxCO,MAAMmV,UAAqBnyB,EAAAA,cAO9BqB,YAAmBjB,GACfkB,MAAMlB,GAPO,KAAAgyB,mBAAuClJ,EAAAA,EAAAA,oBACpD/oB,KAAKC,MAAMuB,QAAQC,QAAQunB,kBAC3BhpB,KAAKC,MAAMgpB,aACXjpB,KAAKC,MAAMipB,WA6DR,KAAA2E,oBAAuBtd,IAC1BvQ,KAAKC,MAAMqB,OAAOkgB,QAASva,KAAOsJ,EAAM3K,OAAOvB,OAO5C,KAAA6tB,sBAAyB3hB,IAC5BvQ,KAAKC,MAAMqB,OAAO6wB,UAAY5hB,EAAM3K,OAAOvB,OAQxC,KAAA+tB,qBAAwBC,GAAuB9hB,IAA8C,IAAA+hB,EACrE,QAA3BA,EAAItyB,KAAKC,MAAMqB,OAAOwwB,aAAK,IAAAQ,GAAvBA,EAA0BjD,OAAOgD,MACjCryB,KAAKC,MAAMqB,OAAOwwB,MAAMzC,OAAOgD,IAAYtsB,SAAWwK,EAAM3K,OAAOvB,QAzEpEvE,SACH,MAAM,QAAE0hB,EAAO,UAAE2Q,EAAS,gBAAE9qB,EAAe,eAAEkrB,EAAc,eAAEC,EAAc,MAAEV,GAAU9xB,KAAKC,MAAMqB,OAC5FmxB,EAAgBX,GAASV,EAAAA,gBAAgBC,YAAYS,IACvDjyB,EAAAA,cAACoxB,EAAa,CACVa,MAAOA,EACPC,aAAc/xB,KAAKoyB,qBACnBvV,eAAgB7c,KAAKC,MAAMuB,QAAQC,QACnCqnB,iBAAkB9oB,KAAKiyB,oBAGzBS,EAAwB,CAC1BjoB,IAAK,IACL7H,UAAW,yBACXmF,KAAM,OACNrC,KAAM8sB,MAAAA,OAAc,EAAdA,EAAgBhvB,QAAQC,eAC9B,aAAc+uB,MAAAA,OAAc,EAAdA,EAAgB7sB,UAC9BC,OAAQ4sB,MAAAA,GAAAA,EAAgB3sB,aAAe,cAAWzB,GAOhDuuB,EAASja,EAAAA,EAAA,GACR1Y,KAAKC,OAAK,IACbuhB,QAASxhB,KAAK4yB,eAAepR,GAC7B2Q,UAAWnyB,KAAK6yB,iBAAiBV,GACjC9qB,gBAAiBrH,KAAK8yB,uBAAuBzrB,GAC7CkrB,eAAgBvyB,KAAK+yB,sBAAsBR,GAC3CT,MAAOW,EACPO,aAAc,CACVhP,YAAahkB,KAAKC,MAClB2C,UAAW,IAEfqwB,kBAAmBT,EAAiBE,EAfR,CAC5BjoB,IAAK,SACL7H,UAAW,0BAcXswB,uBAAwB,CACpBtwB,UAAW,uBAEfuwB,gCAAiC,CAC7BvwB,UAAW,gCACX,cAAe,QAEnBwwB,yBAA0B,CACtBxwB,UAAW,2BAInB,OAAO5C,KAAKC,MAAMwY,WAAWka,GA8BzBE,iBAAiB5rB,GACrB,OAAKA,EAIDpH,EAAAA,cAAC0T,EAAAA,GAA0B,CACvBtM,KAAMA,EACNrE,UAAU,qBACV+lB,UAAW,CAAEC,OAAQ5oB,KAAKkyB,sBAAuBrV,eAAgB7c,KAAKC,MAAMuB,QAAQC,WANjF,KAWPmxB,eAAepR,GAAsB,IAAA6R,EACzC,OAAK7R,EAGD8R,EAAAA,iBAAiBC,mBAAmB/R,EAAQva,MACrC,KAIPpH,EAAAA,cAAC0T,EAAAA,GAAa,CACV9I,IAAgB,QAAb4oB,EAAE7R,EAAQ/W,WAAG,IAAA4oB,EAAAA,EAAI,KACpBpsB,KAAMua,EAAQva,KACdrE,UAAU,sBACV+lB,UAAW,CAAEC,OAAQ5oB,KAAK6tB,oBAAqBhR,eAAgB7c,KAAKC,MAAMuB,QAAQC,WAX/E,KAgBPqxB,uBAAuBhV,EAA4B0V,GAA+B,IAAAC,EAAAC,EAGtF,MAUMC,EAAwB7V,MAAAA,GAAmB,QAAf2V,EAAJ3V,EAAM1Y,qBAAa,IAAAquB,GAAnBA,EAAqBhvB,UAAYqZ,EAAK1Y,cAVd,CAClDX,UAAW,CACPC,GAAI,CAAEC,EAAG,kBAAmBC,EAAG,IAAKC,EAAG,KACvC+uB,GAAI,CAAEjvB,EAAG,kBAAmBC,EAAG,IAAKC,EAAG,KACvCgvB,GAAI,CAAElvB,EAAG,kBAAmBC,EAAG,IAAKC,EAAG,KACvCC,GAAI,CAAEH,EAAG,kBAAmBC,EAAG,IAAKC,EAAG,KACvCqX,GAAI,CAAEvX,EAAG,kBAAmBC,EAAG,IAAKC,EAAG,MAE3CE,UAAU,GAId,OACIlF,EAAAA,cAAC0T,EAAAA,GAActO,OAAAC,OAAA,GACP4Y,EAAI,CACRjB,eAAgB7c,KAAKC,MAAMuB,QAAQC,QACnC0D,aAAcnF,KAAKC,MAAMuB,QAAQC,QAAQ0D,aACzCC,cAAeuuB,EACfG,oBAAoB,UAAS,cAChBN,EACb7K,UAAW,CACP/W,IAAsC,QAAnC8hB,EAAE1zB,KAAKC,MAAMqB,OAAO+F,uBAAe,IAAAqsB,EAAAA,EAAI,GAC1C7W,eAAgB7c,KAAKC,MAAMuB,QAAQC,QACnCsyB,WAAY/zB,KAAKC,MAAM+zB,SACvBC,kBAAmB,YAM3BlB,sBACJjV,EACAoW,EACAV,GAA+B,IAAAW,EAE/B,OAAKrW,EAGDwV,EAAAA,iBAAiBC,mBAAmBzV,EAAK1d,KAClC,KAIPP,EAAAA,cAAC0T,EAAAA,GAActO,OAAAC,OAAA,GACP4Y,EAAI,CACR3Y,aAAcnF,KAAKC,MAAMuB,QAAQC,QAAQ0D,aACzCC,cAAe8uB,EACfJ,oBAAoB,UAAS,cAChBN,EACb7K,UAAW,CACP/W,IAAqC,QAAlCuiB,EAAEn0B,KAAKC,MAAMqB,OAAOixB,sBAAc,IAAA4B,EAAAA,EAAI,GACzCtX,eAAgB7c,KAAKC,MAAMuB,QAAQC,QACnCsyB,WAAY/zB,KAAKC,MAAM+zB,SACvBC,kBAAmB,QAGnBhgB,OAASjU,KAAKC,MAAMqB,OAAe8yB,2BApBpC,MA2BnB,qHC3MA,MAgCaC,EAA8Dp0B,IACvE,MAAM,aAAE+yB,GAAiB/yB,EACzB,OAAOJ,EAAAA,cAAC8f,EAAAA,OAAM1a,OAAAC,OAAA,GAAK8tB,GAlCY/yB,CAAAA,IAC/B,MAAM,QACFuhB,EAAO,UACP2Q,EAAS,gBACT9qB,EAAe,MACfyqB,EAAK,eACLS,EAAc,kBACdU,EAAiB,uBACjBC,EAAsB,gCACtBC,EAA+B,yBAC/BC,GACAnzB,EAEJ,OACIJ,EAAAA,cAACihB,EAAAA,KAAI7b,OAAAC,OAAA,GAAK+tB,GACNpzB,EAAAA,cAACihB,EAAAA,KAAI7b,OAAAC,OAAA,GAAKguB,GAAyB7rB,GACnCxH,EAAAA,cAACihB,EAAAA,KAAI7b,OAAAC,OAAA,GAAKkuB,GACL5R,EACA2Q,EACAL,GAELjyB,EAAAA,cAACihB,EAAAA,KAAI7b,OAAAC,OAAA,GAAKiuB,GAAkCZ,KAalB+B,CAA0Br0B,KAGhE,gsBCfO,MAAMs0B,UAAiB10B,EAAAA,cAY1BqB,YAAmBjB,GACfkB,MAAMlB,GAZO,KAAAgyB,mBAAuClJ,EAAAA,EAAAA,oBACpD/oB,KAAKC,MAAMuB,QAAQC,QAAQunB,kBAC3BhpB,KAAKC,MAAMgpB,aACXjpB,KAAKC,MAAMipB,WAEP,sBAAsB1H,GAC1B,OAAKA,GAAYA,EAAQva,OAAQqsB,EAAAA,iBAAiBC,mBAAmB/R,EAAQva,MAGtEpH,EAAAA,cAACqH,EAAAA,QAAO,CAACkW,WAAYoE,EAAQ/W,IAAKxD,KAAMua,EAAQva,KAAMrE,UAAU,wBAF5D,KAQR9C,SAAM,IAAA00B,EACT,MAAM,UAAE3nB,GAAc7M,KAAKC,OACrB,MAAEM,EAAK,UAAEqC,GAAc5C,KAAKC,MAAMqB,OAClCmzB,EAAgE,CAClEhqB,IAAKiqB,EAAAA,oBACL9xB,UAAsC,QAA7B4xB,EAAEx0B,KAAKC,MAAMqB,OAAOsB,iBAAS,IAAA4xB,EAAAA,EAAI,GAC1CG,iBAAkB9nB,EAAU+nB,gBAC5BC,iBAAkBhoB,EAAUioB,YAC5BC,SAAU/0B,KAAKC,MAAMO,GACrBsoB,iBAAkB9oB,KAAKiyB,kBACvB+C,UAAU,GAGRrC,EAASja,EAAAA,EAAA,GACR1Y,KAAKC,OAAK,IACbM,MAAOg0B,EAAS3B,eAAeryB,GAC/B00B,kCAAmCR,EACnCS,kBAAmB,CACfzqB,IAAK,KACL7H,UAAW,gBACXmF,KAAM,YAEVkrB,kBAAmB,CAAErwB,UAAWunB,GAAAA,CAAW,eAAgBvnB,IAC3DuyB,gBAAiB,CAAEvyB,UAAW,yBAC9BwyB,MAAOp1B,KAAKC,MAAMuJ,MAAM6rB,UAE5B,OAAOr1B,KAAKC,MAAMwY,WAAWka,IAIrC,iHCrEO,MAAM2C,EAA6Cr1B,IACtD,MAAM,MAAEM,EAAK,MAAE60B,EAAK,kBAAEnC,EAAiB,gBAAEkC,EAAe,kBAAED,EAAiB,kCAAED,GAAsCh1B,EACnH,OACIJ,IAAAA,cAACihB,EAAAA,KAAI7b,OAAAC,OAAA,GAAK+tB,GACNpzB,IAAAA,cAACihB,EAAAA,KAAI7b,OAAAC,OAAA,GAAKiwB,GAAkB50B,GAC5BV,IAAAA,cAACihB,EAAAA,KAAI7b,OAAAC,OAAA,GAAK+vB,GACLG,EAAM/jB,KAAI,CAACkkB,EAAqBje,KAC7B,MAAMke,EAAW,mBAAmBle,IACpC,OACIzX,IAAAA,cAACihB,EAAAA,KAAI7b,OAAAC,OAAA,GAAKgwB,EAAiB,CAAEtjB,IAAK4jB,IAC7BD,SAS7B","sources":["webpack://msdyn365.commerce.online/./src/components/truetour-iframe.tsx?4eda","webpack://msdyn365.commerce.online/./src/components/vimeo-iframe.tsx?84ee","webpack://msdyn365.commerce.online/./src/components/youtube-iframe.tsx?3b20","webpack://msdyn365.commerce.online/./src/modules/age-gate/age-gate.tsx?de9f","webpack://msdyn365.commerce.online/./src/components/text-content-block.tsx?a8aa","webpack://msdyn365.commerce.online/./src/modules/content-with-media/media-content-block.tsx?a42a","webpack://msdyn365.commerce.online/./src/modules/content-with-media/content-with-media.tsx?bfda","webpack://msdyn365.commerce.online/./src/components/form/Form.tsx?bbfb","webpack://msdyn365.commerce.online/./src/modules/gift-card-balance/gift-card-balance.tsx?3186","webpack://msdyn365.commerce.online/./src/modules/mailing-list-form/components/text-input-group.tsx?cf91","webpack://msdyn365.commerce.online/./src/components/input-group-mailing-list.tsx?b879","webpack://msdyn365.commerce.online/./src/dataActions/mailing-list-signup.ts?e93b","webpack://msdyn365.commerce.online/./src/modules/mailing-list-form/mailing-list-form.tsx?dece","webpack://msdyn365.commerce.online/./src/modules/mailing-list-popup-modal/mailing-list-popup-modal.tsx?ea8e","webpack://msdyn365.commerce.online/./src/modules/shipping-map/shipping-map.data-states.ts?7260","webpack://msdyn365.commerce.online/./src/modules/shipping-popup/shipping-popup.tsx?daa3","webpack://msdyn365.commerce.online/./src/modules/shipping-popup/shipping-popup.view.tsx?92d9","webpack://msdyn365.commerce.online/./src/modules/smwe-breadcrumb/smwe-breadcrumb.tsx?e7b6","webpack://msdyn365.commerce.online/./src/modules/timeline/timeline.tsx?62a2","webpack://msdyn365.commerce.online/./src/modules/youtube-modal/youtube-modal.tsx?f626","webpack://msdyn365.commerce.online/./src/themes/blend/views/checkout-apple-pay.view.tsx?3ceb","webpack://msdyn365.commerce.online/./src/themes/colsolare/views/checkout-apple-pay.view.tsx?a15c","webpack://msdyn365.commerce.online/./src/themes/columbiacrest/views/checkout-apple-pay.view.tsx?98f1","webpack://msdyn365.commerce.online/./src/themes/columbiacrest/views/components/carticon.component.tsx?39a8","webpack://msdyn365.commerce.online/./src/themes/conn-creek/views/checkout-apple-pay.view.tsx?24d7","webpack://msdyn365.commerce.online/./src/themes/conn-creek/views/components/carticon.component.tsx?b6d0","webpack://msdyn365.commerce.online/./src/themes/emp/views/checkout-apple-pay.view.tsx?26de","webpack://msdyn365.commerce.online/./src/themes/enoteca/views/components/carticon.component.tsx?23de","webpack://msdyn365.commerce.online/./src/themes/erath/views/checkout-apple-pay.view.tsx?f1b6","webpack://msdyn365.commerce.online/./src/themes/erath/views/components/carticon.component.tsx?9bc3","webpack://msdyn365.commerce.online/./src/themes/fth/views/checkout-apple-pay.view.tsx?733f","webpack://msdyn365.commerce.online/./src/themes/generazioni/views/checkout-apple-pay.view.tsx?449b","webpack://msdyn365.commerce.online/./src/themes/generazioni/views/components/carticon.component.tsx?d4cd","webpack://msdyn365.commerce.online/./src/themes/intrinsic-wine-co/views/components/carticon.component.tsx?f991","webpack://msdyn365.commerce.online/./src/themes/north-star/views/checkout-apple-pay.view.tsx?5070","webpack://msdyn365.commerce.online/./src/themes/north-star/views/components/carticon.component.tsx?d690","webpack://msdyn365.commerce.online/./src/themes/patzhall/views/checkout-apple-pay.view.tsx?1b9c","webpack://msdyn365.commerce.online/./src/themes/patzhall/views/components/carticon.component.tsx?57e2","webpack://msdyn365.commerce.online/./src/themes/spring-valley-vineyard/views/checkout-apple-pay.view.tsx?033f","webpack://msdyn365.commerce.online/./src/themes/spring-valley-vineyard/views/components/carticon.component.tsx?93ec","webpack://msdyn365.commerce.online/./src/themes/stagsleap/views/checkout-apple-pay.view.tsx?ffc1","webpack://msdyn365.commerce.online/./src/themes/stagsleap/views/components/carticon.component.tsx?5024","webpack://msdyn365.commerce.online/./src/themes/stemichelle/views/checkout-apple-pay.view.tsx?1571","webpack://msdyn365.commerce.online/./src/themes/stemichelle/views/components/carticon.component.tsx?9e9e","webpack://msdyn365.commerce.online/./src/themes/wine-estates/views/checkout-apple-pay.view.tsx?6d53","webpack://msdyn365.commerce.online/./src/modules/fabrikam/views/order-details.view.tsx?1ce1","webpack://msdyn365.commerce.online/./src/modules/fabrikam/views/ratings-histogram.view.tsx?6e01","webpack://msdyn365.commerce.online/./src/modules/fabrikam/views/reviews-list.view.tsx?cd2e","webpack://msdyn365.commerce.online/./src/modules/back-top-footer/back-top-footer.tsx?f47e","webpack://msdyn365.commerce.online/./src/modules/order-history-with-search-and-filters/components/order-history-with-search-and-filters-header.component.tsx?3609","webpack://msdyn365.commerce.online/./src/modules/order-history-with-search-and-filters/components/order-history-with-search-and-filters-view-mode-selector.component.tsx?6452","webpack://msdyn365.commerce.online/./src/modules/tab-item/tab-item.tsx?b1b8","webpack://msdyn365.commerce.online/./src/modules/tab-item/tab-item.view.tsx?ee3b","webpack://msdyn365.commerce.online/./src/modules/tab/tab.tsx?9ac6","webpack://msdyn365.commerce.online/./src/modules/tab/tab.view.tsx?a99d","webpack://msdyn365.commerce.online/./src/modules/tile-list-item/components/links.tsx?c969","webpack://msdyn365.commerce.online/./src/modules/tile-list-item/tile-list-item.tsx?114a","webpack://msdyn365.commerce.online/./src/modules/tile-list-item/tile-list-item.view.tsx?19a8","webpack://msdyn365.commerce.online/./src/modules/tile-list/tile-list.tsx?78cb","webpack://msdyn365.commerce.online/./src/modules/tile-list/tile-list.view.tsx?1b00"],"sourcesContent":["import * as React from 'react';\r\n\r\ninterface ITourIFrameProps {\r\n trueTourId: string;\r\n}\r\n\r\ndeclare module 'react' {\r\n // tslint:disable-next-line:interface-name\r\n interface HTMLAttributes extends DOMAttributes {\r\n frameborder?: string;\r\n }\r\n}\r\n\r\n/**\r\n * iframe renderer for truetour\r\n */\r\nclass TourIFrame extends React.Component {\r\n public render(): JSX.Element | null {\r\n const {\r\n trueTourId\r\n } = this.props;\r\n const iframeId = `truetour-${trueTourId}`;\r\n\r\n if (!trueTourId) {\r\n console.warn('TrueTour: Missing TrueTour ID');\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default TourIFrame;","import * as React from 'react';\r\n\r\ninterface IVimeoIFrameProps {\r\n vimeoId: string;\r\n}\r\n\r\ndeclare module 'react' {\r\n // tslint:disable-next-line:interface-name\r\n interface HTMLAttributes extends DOMAttributes {\r\n frameborder?: string;\r\n allowfullscreen?: unknown;\r\n }\r\n}\r\n\r\n/**\r\n * class that renders a vimeo iframe\r\n */\r\nclass VimeoIFrame extends React.Component {\r\n public render(): JSX.Element | null {\r\n const {\r\n vimeoId\r\n } = this.props;\r\n const iframeId = `vimeo-${vimeoId}`;\r\n\r\n if (!vimeoId) {\r\n console.warn('Vimeo Video: Missing Vimeo ID');\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default VimeoIFrame;","import * as React from 'react';\r\n\r\ninterface IYoutubeIFrameProps {\r\n youtubeId: string | undefined;\r\n}\r\n\r\ndeclare module 'react' {\r\n // tslint:disable-next-line:interface-name\r\n interface HTMLAttributes extends DOMAttributes {\r\n frameborder?: string;\r\n allowfullscreen?: unknown;\r\n }\r\n}\r\n\r\n/**\r\n * iframe renderer for youtube\r\n */\r\nexport default class YoutubeIFrame extends React.Component {\r\n public render(): JSX.Element | null {\r\n const {\r\n youtubeId\r\n } = this.props;\r\n const iframeId = `youtube-${youtubeId}`;\r\n\r\n if (!youtubeId) {\r\n console.warn('YouTube Video: Missing YouTube ID');\r\n return null;\r\n }\r\n\r\n return (\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\n\r\nimport { ICookieValue, IImageSettings, Image } from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\nimport Modal from 'reactstrap/lib/Modal';\r\nimport ModalBody from 'reactstrap/lib/ModalBody';\r\nimport { IAgeGateData } from './age-gate.data';\r\nimport { IAgeGateProps } from './age-gate.props.autogenerated';\r\n\r\n// =========================================================================\r\n// MODULE-WIDE CONSTANTS\r\n// =========================================================================\r\nexport const AgeGateCookieName = 'ageGateCookie';\r\n\r\n/**\r\n *\r\n * AgeGate component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass AgeGate extends React.PureComponent> {\r\n\r\n // ------------------------------------------------------\r\n // ------------------------------------------------------\r\n constructor(props: IAgeGateProps) {\r\n super(props);\r\n this._setCookie = this._setCookie.bind(this);\r\n }\r\n\r\n // =========================================================================\r\n // PUBLIC METHODS\r\n // =========================================================================\r\n\r\n // ------------------------------------------------------\r\n // ------------------------------------------------------\r\n public render(): JSX.Element | null {\r\n const { config } = this.props;\r\n const cookie = this.props.context.request.cookies;\r\n\r\n // tslint:disable-next-line: no-typeof-undefined\r\n if (typeof window !== 'undefined' && window.location.hostname === 'localhost') {\r\n return null;\r\n }\r\n\r\n try {\r\n cookie.setConsentCookie();\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n\r\n // Check for ageGateCookie to determine if user has already accepted agreement\r\n // Also ensure the code is running in the web context. Don't show the modal in the CMS.\r\n switch (this._isAge21 || process.env.CURRENT_ENVIRONMENT !== 'web' || this._isPrivacyPage) {\r\n case true:\r\n return null;\r\n default:\r\n return (\r\n \r\n \r\n
\r\n {this._newImage}\r\n {this._oldImage}\r\n

{config.ageGateBody}

\r\n

{config.ageGateAgreement}

\r\n \r\n
\r\n {this._privacyRightsLink}\r\n {this._myInformationLink}\r\n
\r\n
\r\n
\r\n \r\n );\r\n }\r\n }\r\n\r\n // =========================================================================\r\n // PRIVATE METHODS\r\n // =========================================================================\r\n\r\n // ------------------------------------------------------\r\n // The privacy page should not show the age gate if the\r\n // privacy link is defined in the config. This checks\r\n // and ensures that the current page that is about to\r\n // recieve an age gate popup is the privacy page\r\n // ------------------------------------------------------\r\n private get _isPrivacyPage(): boolean {\r\n const { privacyLink } = this.props.config;\r\n if (privacyLink) {\r\n // we dont actually care about origin, we only need to extract the\r\n // exact pathname and the object requires an origin\r\n const privacyPath =\r\n new URL(privacyLink.linkUrl.destinationUrl, window.location.origin).pathname;\r\n\r\n return privacyPath === window.location.pathname;\r\n }\r\n return false;\r\n }\r\n\r\n // ------------------------------------------------------\r\n // ------------------------------------------------------\r\n private _closeModal(): void {\r\n this.setState(() => ({\r\n isOpen: false\r\n }));\r\n }\r\n\r\n // ------------------------------------------------------\r\n // ------------------------------------------------------\r\n private _setCookie(): void {\r\n this.props.context.request.cookies.set(AgeGateCookieName, true, { path: '/', maxAge: this.props.config.cookieMaxAge });\r\n this._closeModal();\r\n }\r\n\r\n // ------------------------------------------------------\r\n // ------------------------------------------------------\r\n private get _isAge21(): boolean {\r\n const cookie = this.props.context.request.cookies;\r\n const ageGateCookie = cookie.get(AgeGateCookieName) as ICookieValue<{}> | undefined;\r\n\r\n if (ageGateCookie === undefined || ageGateCookie.value === 'false') { return false; }\r\n\r\n return (!!ageGateCookie.value);\r\n }\r\n\r\n // =========================================================================\r\n // JSX CONSTRUCTORS\r\n // =========================================================================\r\n\r\n // ------------------------------------------------------\r\n // ------------------------------------------------------\r\n private get _newImage(): JSX.Element | null {\r\n const image = this.props.config.ageGateImage;\r\n const defaultImageSettings: IImageSettings = {\r\n viewports: {\r\n xs: { q: `w=24&h=24&m=6`, w: 0, h: 0 },\r\n lg: { q: `w=24&h=24&m=6`, w: 0, h: 0 }\r\n },\r\n lazyload: true\r\n };\r\n\r\n if (image && image.src) {\r\n return (\r\n \r\n );\r\n } else { return null; }\r\n }\r\n\r\n // ------------------------------------------------------\r\n // ------------------------------------------------------\r\n private get _oldImage(): JSX.Element | null {\r\n\r\n // If there's a new image, ignore any old image settings\r\n const newImage = this.props.config.ageGateImage;\r\n if (newImage && newImage.src) { return null; }\r\n\r\n // Use the old format: a raw string containing (hopefully) a URL\r\n const image = this.props.config.ageGateLogo;\r\n if (image) {\r\n return (\r\n winery logo\r\n );\r\n } else { return null; }\r\n }\r\n\r\n // -----------------------------------------------------------\r\n // -----------------------------------------------------------\r\n private get _myInformationLink(): JSX.Element | null {\r\n\r\n const link = this.props.config.ageGateMyInformation;\r\n\r\n if (link && link.linkUrl.destinationUrl) {\r\n return (\r\n \r\n {link.linkText}\r\n \r\n );\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n // -----------------------------------------------------------\r\n // -----------------------------------------------------------\r\n private get _privacyRightsLink(): JSX.Element | null {\r\n\r\n const link = this.props.config.ageGatePrivacyRights;\r\n\r\n if (link && link.linkUrl.destinationUrl) {\r\n return (\r\n \r\n {link.linkText}\r\n \r\n );\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n}\r\n\r\nexport default AgeGate;\r\n","import { Heading, Modal, ModalHeader } from '@msdyn365-commerce-modules/utilities';\r\nimport { getRichTextHtml, IGridSettings, IImageData, IImageSettings, Image, RichText } from '@msdyn365-commerce/core';\r\nimport { observable } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\nimport ModalBody from 'reactstrap/lib/ModalBody';\r\nimport { ITextCallToActionLinkData, ITextCategoryData, ITextTitleData } from '../modules/content-with-media/content-with-media.props.autogenerated';\r\nimport CallToAction from './call-to-action';\r\nimport YoutubeIFrame from './youtube-iframe';\r\n\r\n// ==============================================================================\r\n// TYPE DEFINITIONS\r\n// ==============================================================================\r\n\r\ninterface ITextContentBlockProps {\r\n config: {\r\n backgroundImage?: IImageData;\r\n callToActionLink?: ITextCallToActionLinkData;\r\n callToActionYoutube?: string;\r\n callToActionText?: string;\r\n category?: ITextCategoryData;\r\n title?: ITextTitleData;\r\n summary?: string;\r\n copy?: RichText;\r\n className?: string;\r\n contentBlockNoHeadings?: React.ReactNode[];\r\n };\r\n\r\n imageGridSettings?: IGridSettings;\r\n}\r\n\r\n// ==============================================================================\r\n// CLASS DEFINITIONS\r\n// ==============================================================================\r\n\r\n/**\r\n * class definition containing all rendering regarding the text side of the\r\n * generic content block\r\n */\r\n@observer\r\nclass TextContentBlockComponent extends React.Component {\r\n\r\n // ==========================================================================\r\n // FIELDS\r\n // ==========================================================================\r\n\r\n @observable private _isModalOpen: boolean = false;\r\n\r\n // ==========================================================================\r\n // PUBLIC METHODS\r\n // ==========================================================================\r\n\r\n // -----------------------------------------------------------\r\n // -----------------------------------------------------------\r\n public constructor(props: ITextContentBlockProps) {\r\n super(props);\r\n\r\n this._modalStateToFalse = this._modalStateToFalse.bind(this);\r\n this._modalStateToTrue = this._modalStateToTrue.bind(this);\r\n }\r\n\r\n // -----------------------------------------------------------\r\n // -----------------------------------------------------------\r\n public render(): JSX.Element {\r\n return (\r\n
\r\n {this._backgroundImage}\r\n {this._category}\r\n {this._title}\r\n {this._summary}\r\n {this._copy}\r\n {this._callToAction}\r\n
\r\n );\r\n }\r\n\r\n // ==========================================================================\r\n // COMPONENT EVENTS\r\n // ==========================================================================\r\n\r\n // -----------------------------------------------------------\r\n // -----------------------------------------------------------\r\n private _modalState(newState: boolean): void {\r\n this._isModalOpen = newState;\r\n }\r\n\r\n // -----------------------------------------------------------\r\n // extrapolated _modalState for use in a callback\r\n // -----------------------------------------------------------\r\n private _modalStateToFalse(): void {\r\n this._modalState(false);\r\n }\r\n\r\n // -----------------------------------------------------------\r\n // -----------------------------------------------------------\r\n private _modalStateToTrue(): void {\r\n this._modalState(true);\r\n }\r\n\r\n // ==========================================================================\r\n // JSX CONSTRUCTORS\r\n // ==========================================================================\r\n\r\n // -----------------------------------------------------------\r\n // -----------------------------------------------------------\r\n private get _copy(): JSX.Element | null {\r\n const { copy, contentBlockNoHeadings } = this.props.config;\r\n if (copy) {\r\n if (contentBlockNoHeadings) {\r\n return (\r\n <>\r\n \r\n <>{contentBlockNoHeadings}\r\n \r\n );\r\n }\r\n return (\r\n // tslint:disable-next-line:react-no-dangerous-html\r\n \r\n\r\n );\r\n }\r\n if (contentBlockNoHeadings) {\r\n return (\r\n <>{contentBlockNoHeadings}\r\n );\r\n }\r\n else { return null; }\r\n }\r\n\r\n // -----------------------------------------------------------\r\n // -----------------------------------------------------------\r\n private get _title(): JSX.Element | null {\r\n const title = this.props.config.title;\r\n\r\n if (title && title?.text) {\r\n return (\r\n \r\n );\r\n } else { return null; }\r\n }\r\n\r\n // -----------------------------------------------------------\r\n // -----------------------------------------------------------\r\n private get _summary(): JSX.Element | null {\r\n const summary = this.props.config.summary;\r\n\r\n if (summary) {\r\n return (

{summary}

);\r\n } else { return null; }\r\n }\r\n\r\n // -----------------------------------------------------------\r\n // -----------------------------------------------------------\r\n private get _category(): JSX.Element | null {\r\n const category = this.props.config.category;\r\n\r\n if (category && category?.text) {\r\n return (\r\n \r\n );\r\n } else { return null; }\r\n }\r\n\r\n // -----------------------------------------------------------\r\n // -----------------------------------------------------------\r\n private get _backgroundImage(): JSX.Element | null {\r\n const image = this.props.config.backgroundImage;\r\n\r\n const defaultImageSettings: IImageSettings = {\r\n viewports: {\r\n xs: { q: `w=24&h=24&m=6`, w: 0, h: 0 },\r\n lg: { q: `w=24&h=24&m=6`, w: 0, h: 0 }\r\n },\r\n lazyload: true\r\n };\r\n\r\n if (image) {\r\n return (\r\n \r\n );\r\n } else { return null; }\r\n }\r\n\r\n // -----------------------------------------------------------\r\n /**\r\n * @returns anchor that sends you a link or clickable div that opens a modal\r\n */\r\n // -----------------------------------------------------------\r\n private get _callToAction(): JSX.Element | null {\r\n const {\r\n callToActionYoutube,\r\n callToActionLink: ctaLink\r\n } = this.props.config;\r\n\r\n // If there's a YouTube ID, assume it's in a modal\r\n if (callToActionYoutube) {\r\n return this._callToActionInModal;\r\n }\r\n\r\n // If there's a link (and not YouTube ID), display the CTA as a link\r\n if (ctaLink && ctaLink.linkUrl.destinationUrl && ctaLink.linkText) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n return null;\r\n }\r\n\r\n // -----------------------------------------------------------\r\n // -----------------------------------------------------------\r\n private get _callToActionInModal(): JSX.Element {\r\n const {\r\n callToActionText,\r\n callToActionYoutube\r\n } = this.props.config;\r\n const modalId = `youtube-${callToActionYoutube}`;\r\n\r\n return (\r\n
\r\n \r\n {callToActionText}\r\n
\r\n \r\n \r\n \r\n {this._isModalOpen &&\r\n \r\n }\r\n \r\n \r\n \r\n );\r\n\r\n }\r\n}\r\n\r\nexport default TextContentBlockComponent;","import { IGridSettings, IImageData, IImageSettings, Image } from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\nimport TrueTourIFrame from '../../components/truetour-iframe';\r\nimport VimeoIFrame from '../../components/vimeo-iframe';\r\nimport { IContentWithMediaConfig } from './content-with-media.props.autogenerated';\r\n\r\n// ==============================================================================\r\n// TYPE DEFINITIONS\r\n// ==============================================================================\r\n\r\ninterface IMediaContentBlockProps {\r\n config: IContentWithMediaConfig;\r\n imageGridSettings?: IGridSettings;\r\n}\r\n\r\n// ==============================================================================\r\n// CLASS DEFINITIONS\r\n// ==============================================================================\r\n\r\n/**\r\n * class responsible for the rendering of media content as an image or from vimeo\r\n */\r\nclass MediaContentBlockComponent extends React.Component {\r\n\r\n // ==========================================================================\r\n // PUBLIC METHODS\r\n // ==========================================================================\r\n\r\n // -----------------------------------------------------------\r\n // -----------------------------------------------------------\r\n public render(): JSX.Element {\r\n return (\r\n
\r\n {this._media}\r\n
\r\n );\r\n }\r\n\r\n // ==========================================================================\r\n // JSX CONSTRUCTORS\r\n // ==========================================================================\r\n\r\n // -----------------------------------------------------------\r\n // -----------------------------------------------------------\r\n private get _media(): JSX.Element | null {\r\n const {\r\n mediaDisplayImage,\r\n mediaDisplayVimeo,\r\n mediaDisplayTrueTour\r\n } = this.props.config;\r\n\r\n if (mediaDisplayImage) {\r\n return this._imageMedia;\r\n }\r\n\r\n if (mediaDisplayVimeo) {\r\n return this._vimeoMedia;\r\n }\r\n\r\n if (mediaDisplayTrueTour) {\r\n return this._tourMedia;\r\n }\r\n\r\n console.warn('MEDIA DISPLAY IS NOT SET');\r\n return null;\r\n }\r\n\r\n // -----------------------------------------------------------\r\n // -----------------------------------------------------------\r\n private get _vimeoMedia(): JSX.Element {\r\n const {\r\n mediaDisplayVimeo\r\n } = this.props.config;\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n\r\n // -----------------------------------------------------------\r\n // -----------------------------------------------------------\r\n private get _tourMedia(): JSX.Element {\r\n const {\r\n mediaDisplayTrueTour\r\n } = this.props.config;\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n\r\n // -----------------------------------------------------------\r\n // -----------------------------------------------------------\r\n private get _imageMedia(): JSX.Element {\r\n const {\r\n mediaDisplayImage,\r\n mediaDisplayBackdrop\r\n } = this.props.config;\r\n\r\n return (\r\n
\r\n {this._constructImage(mediaDisplayImage)}\r\n {this._constructImage(mediaDisplayBackdrop)}\r\n
\r\n );\r\n }\r\n\r\n // -----------------------------------------------------------\r\n // -----------------------------------------------------------\r\n private _constructImage(image?: IImageData): JSX.Element | null {\r\n if (image) {\r\n const defaultImageSettings: IImageSettings = {\r\n viewports: {\r\n xs: { q: `w=24&h=24&m=6`, w: 0, h: 0 },\r\n lg: { q: `w=24&h=24&m=6`, w: 0, h: 0 }\r\n },\r\n lazyload: true\r\n };\r\n\r\n return (\r\n \r\n );\r\n }\r\n\r\n // No image to construct\r\n return null;\r\n }\r\n}\r\n\r\nexport default MediaContentBlockComponent;","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport * as React from 'react';\r\n\r\nimport classname from 'classnames';\r\nimport TextContentBlockComponent from '../../components/text-content-block';\r\nimport { IContentWithMediaData } from './content-with-media.data';\r\nimport { IContentWithMediaProps } from './content-with-media.props.autogenerated';\r\nimport MediaContentBlockComponent from './media-content-block';\r\n\r\n// ==============================================================================\r\n// CLASS DEFINITIONS\r\n// ==============================================================================\r\n/**\r\n * ContentWithMedia component\r\n * @extends {React.Component>}\r\n */\r\nclass ContentWithMedia extends React.Component> {\r\n\r\n // ==============================================================================\r\n // PUBLIC METHODS\r\n // ==============================================================================\r\n\r\n // -----------------------------------------------------------\r\n // -----------------------------------------------------------\r\n public render(): JSX.Element {\r\n const { className } = this.props.config;\r\n\r\n return (\r\n
\r\n
\r\n {this._leftColumn}\r\n
\r\n
\r\n {this._rightColumn}\r\n
\r\n
\r\n );\r\n }\r\n\r\n // ==========================================================================\r\n // JSX CONSTRUCTORS\r\n // ==========================================================================\r\n\r\n // -----------------------------------------------------------\r\n // -----------------------------------------------------------\r\n private get _leftColumn(): JSX.Element {\r\n const { orientation } = this.props.config;\r\n return (orientation === 'textLeft') ? this._textColumn : this._mediaColumn;\r\n }\r\n\r\n // -----------------------------------------------------------\r\n // -----------------------------------------------------------\r\n private get _rightColumn(): JSX.Element {\r\n const { orientation } = this.props.config;\r\n return (orientation === 'textRight') ? this._textColumn : this._mediaColumn;\r\n }\r\n\r\n // -----------------------------------------------------------\r\n // -----------------------------------------------------------\r\n private get _mediaColumn(): JSX.Element {\r\n return ();\r\n }\r\n\r\n // -----------------------------------------------------------\r\n // -----------------------------------------------------------\r\n private get _textColumn(): JSX.Element {\r\n\r\n const config = this.props.config;\r\n const contentBlockNoHeadings = this.props.slots.contentBlockNoHeadings;\r\n\r\n const contentBlockConfig = {\r\n backgroundImage: config.textBackgroundImage,\r\n callToActionLink: config.textCallToActionLink,\r\n callToActionText: config.textCallToActionText,\r\n callToActionYoutube: config.textCallToActionYoutube,\r\n category: config.textCategory,\r\n className: 'content-with-media-text',\r\n copy: config.textCopy,\r\n summary: config.textSummary,\r\n title: config.textTitle,\r\n contentBlockNoHeadings:contentBlockNoHeadings\r\n };\r\n\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default ContentWithMedia;\r\n","import { mapToCssModules } from '@msdyn365-commerce-modules/utilities';\r\nimport classNames from 'classnames';\r\nimport * as React from 'react';\r\nimport { IFormProps } from './Form.props';\r\n\r\n/**\r\n * Form component\r\n */\r\nexport default class Form extends React.Component {\r\n\r\n public static defaultProps: Partial = {\r\n };\r\n public props: IFormProps;\r\n private ref: React.RefObject;\r\n\r\n constructor(props: IFormProps) {\r\n super(props);\r\n this.props = props;\r\n this.ref = React.createRef();\r\n }\r\n\r\n public submit(): void {\r\n if (this.ref && this.ref.current) {\r\n this.ref.current.submit();\r\n }\r\n }\r\n\r\n public render(): JSX.Element {\r\n const {\r\n className,\r\n cssModule,\r\n inline,\r\n tag,\r\n innerRef,\r\n 'aria-label': label,\r\n role,\r\n ...attributes\r\n } = this.props;\r\n\r\n const Tag = tag || 'form';\r\n\r\n const classes = mapToCssModules(\r\n classNames(\r\n className,\r\n inline ? 'form-inline' : false\r\n ),\r\n cssModule\r\n );\r\n\r\n return (\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 { format } from '@msdyn365-commerce-modules/utilities';\r\nimport { getGiftCardInquiryAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/StoreOperationsDataActions.g';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\nimport CallToAction from '../../components/call-to-action';\r\nimport Form from '../../components/form/Form';\r\nimport { IGiftCardBalanceData } from './gift-card-balance.data';\r\nimport { IGiftCardBalanceProps } from './gift-card-balance.props.autogenerated';\r\n\r\ninterface IGiftCardFormState {\r\n isFetchingGiftCard: boolean;\r\n giftCardNumber: string;\r\n errorMessage: string;\r\n giftCardMessage: string | undefined;\r\n inputState: boolean;\r\n}\r\n\r\n/**\r\n *\r\n * GiftCardBalance component\r\n * @extends {React.Component,IGiftCardFormState>}\r\n */\r\n\r\n@observer\r\nclass GiftCardBalance extends React.Component, IGiftCardFormState> {\r\n public state: IGiftCardFormState = {\r\n isFetchingGiftCard: false,\r\n giftCardNumber: '',\r\n errorMessage: '',\r\n giftCardMessage: '',\r\n inputState: true\r\n };\r\n private _giftCardNumberInputRef: React.RefObject;\r\n constructor(props: IGiftCardBalanceProps) {\r\n super(props);\r\n this._giftCardNumberInputRef = React.createRef();\r\n this._getGiftCardBalance = this._getGiftCardBalance.bind(this);\r\n this._getUnauthorizedTagMessage = this._getUnauthorizedTagMessage.bind(this);\r\n this._handleSubmit = this._handleSubmit.bind(this);\r\n }\r\n\r\n public componentDidMount(): void {\r\n const user = this.props.context && this.props.context.request && this.props.context.request.user;\r\n if (!user.isAuthenticated) {\r\n this.setState({\r\n errorMessage: this.props.resources.unauthorizedUserMessage2,\r\n // inputState: false\r\n });\r\n }\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n if (!(this.props && this.props.resources)) {\r\n return null;\r\n }\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n {this.state && this.state.errorMessage && (\r\n this.state.errorMessage.includes('sign in') ? this._getUnauthorizedTagMessage() :\r\n \r\n {this.state.errorMessage}\r\n \r\n )}\r\n
\r\n
\r\n {this.state && this.state.giftCardMessage && (\r\n \r\n {this.state.giftCardMessage}\r\n \r\n )}\r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n\r\n private onChange = (e: React.ChangeEvent) => {\r\n this.setState({ giftCardNumber: e.target.value || '', errorMessage: '' });\r\n };\r\n\r\n private _handleSubmit(e: React.MouseEvent | React.KeyboardEvent | React.FormEvent): void {\r\n const giftCardNumber = this.state.giftCardNumber ? this.state.giftCardNumber.replace(/\\s/g, '') : '';\r\n e.preventDefault();\r\n if (!giftCardNumber || (giftCardNumber && giftCardNumber.length === 0)) {\r\n this.setError(this.props.resources.emptyInputError);\r\n } else {\r\n this.setState({\r\n isFetchingGiftCard: true,\r\n errorMessage: '',\r\n giftCardMessage: ''\r\n });\r\n void this._getGiftCardBalance(giftCardNumber);\r\n }\r\n }\r\n\r\n private _getGiftCardBalance = (giftCardNumber: string) => {\r\n return getGiftCardInquiryAsync({ callerContext: this.props.context.actionContext }, giftCardNumber).then(activeGiftCard => {\r\n if (activeGiftCard instanceof Error) {\r\n throw activeGiftCard;\r\n }\r\n if (activeGiftCard && activeGiftCard.Id) {\r\n this.setState({\r\n giftCardMessage: this._getGiftCardBalanceMessage(activeGiftCard.Id.replace(/\\s/g, ''), activeGiftCard.BalanceInCardCurrency, activeGiftCard.BalanceCurrencyCode!)\r\n });\r\n }\r\n }).catch(error => {\r\n this.setError(format(this.props.resources.invalidGiftCardErrorMessage, giftCardNumber));\r\n }).finally(() => {\r\n this.setState({\r\n isFetchingGiftCard: false\r\n });\r\n });\r\n };\r\n\r\n private setError = (errorMessage: string): void => {\r\n this.setState({\r\n errorMessage\r\n });\r\n const input =\r\n this._giftCardNumberInputRef && this._giftCardNumberInputRef.current && this._giftCardNumberInputRef.current.focus && (this._giftCardNumberInputRef.current as HTMLElement);\r\n input && input.focus();\r\n };\r\n\r\n private _getFormattedPrice = (price: number = 0, currencyCode: string = 'USD'): string => {\r\n return this.props.context.cultureFormatter.formatCurrency(price, currencyCode);\r\n };\r\n\r\n private _getGiftCardBalanceMessage = (giftCardId: string, giftCardBalanceAmount: number = 0, giftCardCurrencyCode: string): string | undefined => {\r\n if (giftCardId && (giftCardBalanceAmount || giftCardBalanceAmount === 0)) {\r\n const giftCardLastFour: string | undefined = giftCardId && giftCardId.substring(giftCardId.length - 4, giftCardId.length) ? giftCardId.substring(giftCardId.length - 4, giftCardId.length) : undefined;\r\n const giftCardBalance: number = giftCardBalanceAmount ? giftCardBalanceAmount : 0;\r\n const giftCardCurrency: string | undefined = giftCardCurrencyCode ? giftCardCurrencyCode : 'USD';\r\n return format(this.props.resources.giftCardBalanceMessage, giftCardLastFour!, this._getFormattedPrice(giftCardBalance, giftCardCurrency));\r\n }\r\n return undefined;\r\n };\r\n\r\n private _getUnauthorizedTagMessage(): JSX.Element | null {\r\n const signInUrl = this.props.context.request.user.signInUrl;\r\n return (\r\n \r\n {this.props.resources.unauthorizedUserMessage1}{` `}\r\n {this.props.resources.unauthorizedUserMessage2}{` `}\r\n {this.props.resources.unauthorizedUserMessage3}\r\n );\r\n }\r\n}\r\n\r\nexport default GiftCardBalance;\r\n","import { observable } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\n\r\ninterface ITextInputGroupProps {\r\n useDatePicker?: boolean;\r\n minDate?: string;\r\n label?: string;\r\n ariaLabel?:string;\r\n placeholder?: string;\r\n id: string;\r\n initialValue?: string;\r\n htmlProps?: React.DetailedHTMLProps, HTMLInputElement>;\r\n isValid(curValue: string, id: string): string | void;\r\n onChange(value: string, currentValidity: boolean, id: string): void;\r\n}\r\n\r\n/**\r\n * TextInputGroup is a wrapper that allows you to validate text values from the\r\n * user and returns the correct value after\r\n */\r\n@observer\r\nexport class TextInputGroup extends React.Component {\r\n\r\n @observable private _internalValue: string = '';\r\n @observable private _errorMessage: string = '';\r\n @observable private _isFirstBlur: boolean = true;\r\n\r\n constructor(props: ITextInputGroupProps) {\r\n super(props);\r\n\r\n if (props.initialValue) {\r\n this._internalValue = props.initialValue;\r\n const currentlyInvalid = this.props.isValid(this._internalValue, this.props.id);\r\n const isValid = (currentlyInvalid) ? false : true;\r\n this.props.onChange(this._internalValue, isValid, this.props.id);\r\n }\r\n\r\n this._valueChanged = this._valueChanged.bind(this);\r\n this._blurred = this._blurred.bind(this);\r\n }\r\n\r\n public render(): JSX.Element {\r\n const typeSettings = this.props.useDatePicker ?\r\n {\r\n type: 'date',\r\n min: this.props.minDate\r\n } :\r\n { type: 'text' };\r\n\r\n return (\r\n
\r\n \r\n \r\n
{this._jsxErrorMessage}
\r\n
\r\n );\r\n }\r\n\r\n private _blurred(event: React.ChangeEvent): void {\r\n this._isFirstBlur = false;\r\n this._valueChanged(event);\r\n }\r\n\r\n private _valueChanged(event: React.ChangeEvent): void {\r\n this._internalValue = event.target.value;\r\n const currentlyInvalid = this.props.isValid(this._internalValue, this.props.id);\r\n const isValid = (currentlyInvalid) ? false : true;\r\n\r\n // we only want to show an error if a user has clicked away and its\r\n // still wrong\r\n if (currentlyInvalid && !this._isFirstBlur) {\r\n this._errorMessage = currentlyInvalid;\r\n } else {\r\n this._errorMessage = '';\r\n }\r\n\r\n this.props.onChange(this._internalValue, isValid, this.props.id);\r\n }\r\n\r\n private get _jsxErrorMessage(): JSX.Element | void {\r\n if (this._errorMessage.length > 0) {\r\n return (\r\n

\r\n {this._errorMessage}\r\n

\r\n );\r\n }\r\n }\r\n}","import * as React from 'react';\r\nimport { TextInputGroup } from '../modules/mailing-list-form/components/text-input-group';\r\n\r\nexport type mailingData = {\r\n name: string;\r\n email: string;\r\n zip: string;\r\n};\r\n\r\nexport type inputGroup = {\r\n labelText?: string;\r\n validationText?: string;\r\n placeholder?: string;\r\n ariaLabel?: string;\r\n};\r\n\r\ninterface IMailingListInputGroup {\r\n submitText?: string;\r\n name: inputGroup;\r\n zip: inputGroup;\r\n email: inputGroup;\r\n onFinish(dataSet: mailingData): void;\r\n}\r\n\r\ntype mailingListFormStructureGroup = {\r\n validity: boolean;\r\n value: string;\r\n externalGroup?: inputGroup;\r\n regex?: RegExp;\r\n};\r\n\r\ntype mailingListFormStructure = {\r\n [fieldName: string]: mailingListFormStructureGroup;\r\n};\r\n\r\n/**\r\n * Constructs only the necessary components of the mailing list inputs\r\n *\r\n * To add a new field, add it to the internal form structure object and\r\n * the external props typing\r\n */\r\nexport class MailingListInputGroup extends React.Component {\r\n\r\n private _formStructure: mailingListFormStructure = {\r\n name: {\r\n validity: false,\r\n value: ''\r\n },\r\n email: {\r\n validity: false,\r\n value: '',\r\n regex: /^[-a-z0-9!#$%&'*+/=?^_`{|}~]+(?:\\.[-a-z0-9!#$%&'*+/=?^_`{|}~]+)*@(?:[a-z0-9]+(?:-+[a-z0-9]+)*\\.)+(?:xn--[a-z0-9]+|[a-z]{2,16})$/i\r\n },\r\n zip: {\r\n validity: false,\r\n value: '',\r\n regex: /^[0-9]{5}(?:-[0-9]{4})?$/\r\n }\r\n };\r\n\r\n constructor(props: IMailingListInputGroup) {\r\n super(props);\r\n\r\n this._handleValidityUpdate = this._handleValidityUpdate.bind(this);\r\n this._handleValueFinish = this._handleValueFinish.bind(this);\r\n this._handleFormExport = this._handleFormExport.bind(this);\r\n }\r\n\r\n public render(): JSX.Element {\r\n this._setExternalGroups();\r\n return (\r\n \r\n {Object.keys(this._formStructure).map(fieldName => {\r\n const field = this._formStructure[fieldName];\r\n let redirectEmail;\r\n // tslint:disable-next-line: no-typeof-undefined\r\n if (typeof window !== 'undefined') {\r\n const urlQuery = window.location.search;\r\n const urlParams = new URLSearchParams(urlQuery);\r\n redirectEmail = urlParams.get('mailFormEmail') || undefined;\r\n }\r\n\r\n return (\r\n \r\n );\r\n })}\r\n \r\n {this.props.submitText || 'Submit'}\r\n \r\n \r\n );\r\n }\r\n\r\n private _setExternalGroups(): void {\r\n this._formStructure.name.externalGroup = this.props.name;\r\n this._formStructure.email.externalGroup = this.props.email;\r\n this._formStructure.zip.externalGroup = this.props.zip;\r\n }\r\n\r\n private _handleFormExport(): void {\r\n this.props.onFinish({\r\n email: this._formStructure.email.value,\r\n name: this._formStructure.name.value,\r\n zip: this._formStructure.zip.value\r\n });\r\n }\r\n\r\n private _isFormValid(): boolean {\r\n const containsInvalidField = !!Object.keys(this._formStructure)\r\n .find((fieldName) => {\r\n const field = this._formStructure[fieldName];\r\n return !field.validity;\r\n });\r\n return !containsInvalidField;\r\n }\r\n\r\n private _handleValueFinish(value: string, isValid: boolean, id: string): void {\r\n const fieldData = this._formStructure[id];\r\n fieldData.validity = isValid;\r\n fieldData.value = value;\r\n\r\n // re-render, no reason to use mobx for this\r\n this.setState({});\r\n }\r\n\r\n private _handleValidityUpdate(value: string, id: string): string | void {\r\n const fieldData = this._formStructure[id];\r\n\r\n // should always be true but just in case\r\n if (fieldData) {\r\n const validationText = fieldData.externalGroup!.validationText;\r\n if (value.length === 0) { return validationText; }\r\n if (fieldData.regex && !fieldData.regex.test(value)) { return validationText; }\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\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { IDataServiceRequest } from '@msdyn365-commerce/retail-proxy';\r\nimport { insertMailingListInput } from './DataActionExtension.g';\r\n\r\n/**\r\n * MailingListSignup Input Action\r\n */\r\n\r\nexport class MailingListSignupInput implements Msdyn365.IActionInput {\r\n public input: IDataServiceRequest;\r\n\r\n constructor(input: IDataServiceRequest) {\r\n this.input = input;\r\n }\r\n\r\n public shouldCacheOutput = () => { return false; };\r\n public getCacheKey = () => { return 'IMailingListSignup'; };\r\n public getCacheObjectType = () => 'IMailingListSignup';\r\n public dataCacheType = (): Msdyn365.CacheType => 'application';\r\n}\r\n\r\nexport interface IMailingListSignupData {\r\n text: string;\r\n}\r\n\r\nexport type mailingInfo = {\r\n name: string;\r\n zipCode: string;\r\n email: string;\r\n};\r\n\r\nexport const createMailingListInput = (inputData: mailingInfo, appContext: Msdyn365.ICoreContext<{ [x: string]: unknown }>): MailingListSignupInput => {\r\n const { mailingListID, mailingListSourceID } = <{ [x: string]: unknown }>appContext.app.config;\r\n return new MailingListSignupInput(\r\n insertMailingListInput(\r\n mailingListID,\r\n mailingListSourceID,\r\n inputData.email,\r\n inputData.name,\r\n inputData.zipCode\r\n )\r\n );\r\n};\r\n\r\nexport async function mailingListAction(input: MailingListSignupInput, ctx: Msdyn365.IActionContext): Promise {\r\n return input.input.execute(ctx);\r\n}\r\n\r\nexport const IMailingListSignupAction = Msdyn365.createObservableDataAction({\r\n action: >mailingListAction,\r\n input: createMailingListInput\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\nimport * as React from 'react';\r\n\r\nimport { Heading } from '@msdyn365-commerce-modules/utilities';\r\nimport { ICookieSetOptions, RichTextComponent } from '@msdyn365-commerce/core';\r\nimport { inputGroup, mailingData, MailingListInputGroup } from '../../components/input-group-mailing-list';\r\nimport { createMailingListInput, mailingListAction } from '../../dataActions/mailing-list-signup';\r\nimport { popupModalCookie } from '../mailing-list-popup-modal/mailing-list-popup-modal';\r\nimport { IMailingListFormProps } from './mailing-list-form.props.autogenerated';\r\n\r\nexport interface IMailingListFormViewProps extends IMailingListFormProps<{}> {\r\n displayInPopup: boolean;\r\n}\r\n\r\nexport const MAILING_FORM_COOKIE: popupModalCookie = {\r\n name: 'mailingListCookie',\r\n age: 2592000\r\n};\r\n\r\ninterface IMailingListFormViewState {\r\n isSubmittedSuccessfully: boolean;\r\n error: string;\r\n}\r\n\r\n/**\r\n *\r\n * MailingListForm component\r\n * @extends {React.PureComponent}\r\n */\r\nclass MailingListForm extends React.PureComponent {\r\n\r\n constructor(props: IMailingListFormViewProps) {\r\n // tslint:disable-next-line:no-any\r\n (props.config as any).displayInPopup = true;\r\n super(props);\r\n\r\n this.state = { isSubmittedSuccessfully: false, error: '' };\r\n this.onFinished = this.onFinished.bind(this);\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const {\r\n isSubmittedSuccessfully\r\n } = this.state;\r\n if (isSubmittedSuccessfully) {\r\n return this._signupSuccessJSX;\r\n } else {\r\n return this._mailingListJSX;\r\n }\r\n }\r\n\r\n private get _signupSuccessJSX(): JSX.Element {\r\n const {\r\n layout,\r\n className,\r\n confirmationText\r\n } = this.props.config;\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n\r\n private get _mailingListJSX(): JSX.Element {\r\n const groups = this.constructMailingListGroupsFromResources();\r\n const {\r\n layout,\r\n title, subtitle, description,\r\n className\r\n } = this.props.config;\r\n\r\n const { error } = this.state;\r\n let submitButtonText = this.props.resources.mailingListForm__submitButton;\r\n if (this.props.config.submitButtonText) {\r\n submitButtonText = this.props.config.submitButtonText;\r\n }\r\n return (\r\n
\r\n\r\n {(title || description) &&\r\n
\r\n {title && title.text && }\r\n {description && }\r\n
\r\n }\r\n\r\n
\r\n {subtitle && subtitle.text && }\r\n \r\n {error &&
{error}
}\r\n
\r\n
\r\n );\r\n }\r\n\r\n public onFinished(dataSet: mailingData): void {\r\n const input = createMailingListInput(\r\n {\r\n email: dataSet.email,\r\n name: dataSet.name,\r\n zipCode: dataSet.zip\r\n },\r\n this.props.context\r\n );\r\n\r\n mailingListAction(input, this.props.context.actionContext)\r\n // tslint:disable-next-line:no-any\r\n .then((requestFullfilled: any) => {\r\n if (requestFullfilled.IsSaved) {\r\n this.props.context.request.cookies.set(\r\n MAILING_FORM_COOKIE.name,\r\n true,\r\n { path: '/', maxAge: MAILING_FORM_COOKIE.age * 12 * 10, isEssential: true } as ICookieSetOptions\r\n );\r\n this.setState({ isSubmittedSuccessfully: true });\r\n } else {\r\n // assumes all errors are related to an email already existing, error message is not very helpful\r\n this.setState({ error: this.props.resources.mailingListForm__emailServerInvalid });\r\n }\r\n })\r\n .catch(e => { throw new Error(JSON.stringify(e, null, 4)); });\r\n }\r\n\r\n public constructMailingListGroupsFromResources(): { [groupName: string]: inputGroup } {\r\n const {\r\n mailingListForm__emailLabel, mailingListForm__emailValidation, mailingListForm__emailAriaLabel,\r\n mailingListForm__nameLabel, mailingListForm__nameValidation, mailingListForm__nameAriaLabel,\r\n mailingListForm__zipLabel, mailingListForm__zipValidation, mailingListForm__zipAriaLabel,\r\n } = this.props.resources;\r\n const { email, enablePlaceholders, name, zip } = this.props.config.placeholders || {};\r\n return {\r\n email: {\r\n labelText: mailingListForm__emailLabel,\r\n validationText: mailingListForm__emailValidation,\r\n placeholder: enablePlaceholders ? email : undefined,\r\n ariaLabel: mailingListForm__emailAriaLabel,\r\n },\r\n name: {\r\n labelText: mailingListForm__nameLabel,\r\n validationText: mailingListForm__nameValidation,\r\n placeholder: enablePlaceholders ? name : undefined,\r\n ariaLabel: mailingListForm__nameAriaLabel,\r\n },\r\n zip: {\r\n labelText: mailingListForm__zipLabel,\r\n validationText: mailingListForm__zipValidation,\r\n placeholder: enablePlaceholders ? zip : undefined,\r\n ariaLabel: mailingListForm__zipAriaLabel,\r\n }\r\n };\r\n }\r\n}\r\n\r\nexport default MailingListForm;\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\nimport Modal from 'reactstrap/lib/Modal';\r\nimport ModalBody from 'reactstrap/lib/ModalBody';\r\nimport ModalHeader from 'reactstrap/lib/ModalHeader';\r\nimport { ICookieValue } from '@msdyn365-commerce/core';\r\nimport { observable } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\nimport { MAILING_FORM_COOKIE } from '../mailing-list-form/mailing-list-form';\r\nimport { AgeGateCookieName } from './../age-gate/age-gate';\r\nimport { IMailingListPopupModalProps } from './mailing-list-popup-modal.props.autogenerated';\r\n\r\nexport type popupModalCookie = {\r\n name: string;\r\n age: number;\r\n};\r\n\r\ninterface IPopupModalState {\r\n _popupOpen: boolean;\r\n}\r\n\r\n/**\r\n *\r\n * PopupModal component\r\n * @extends {React.Component>}\r\n */\r\n@observer\r\nclass PopupModal extends React.Component, IPopupModalState> {\r\n private _cookie: popupModalCookie;\r\n\r\n @observable private _cookieRecieved: boolean = false;\r\n\r\n private _cookieRecievedPreForm: boolean = false;\r\n\r\n private _delayStarted: boolean = false;\r\n @observable private _popupReady: boolean = false;\r\n\r\n constructor(props: IMailingListPopupModalProps<{}>) {\r\n super(props);\r\n\r\n // starts open automatically so that when the popup is ready, it opens propertly\r\n this.state = { _popupOpen: true };\r\n\r\n this._cookie = {\r\n name: 'mailingListCookiePopup',\r\n age: props.config.remindTime\r\n };\r\n\r\n this._remindLaterClose = this._remindLaterClose.bind(this);\r\n this._dismissClose = this._dismissClose.bind(this);\r\n this._closeModal = this._closeModal.bind(this);\r\n if (this._cookieExist(MAILING_FORM_COOKIE.name)) {\r\n this._cookieRecievedPreForm = true;\r\n }\r\n }\r\n\r\n public componentDidMount(): void {\r\n this._startCookiePolling();\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const isOver21 = this._cookieExist(AgeGateCookieName);\r\n if (isOver21) {\r\n this._startDelay();\r\n }\r\n const { user: { isAuthenticated } } = this.props.context.request;\r\n const { className, closeText, remindMeLaterText, disableForSignIn } = this.props.config;\r\n let button: JSX.Element;\r\n if (this._cookieRecieved) {\r\n button = {closeText};\r\n } else {\r\n button = {remindMeLaterText};\r\n }\r\n\r\n // we add this._cookieRecievedPreForm because that means *this module did not introduce the cookie*\r\n // this means we want to notify them that the form was successfully made and not just\r\n // closing down immediately\r\n if (this._cookieExist(this._cookie.name) || (this._cookieExist(MAILING_FORM_COOKIE.name) && this._cookieRecievedPreForm)) {\r\n return null;\r\n }\r\n\r\n if (disableForSignIn && isAuthenticated) { return null; }\r\n\r\n // Also ensure the code is running in the web context. Don't show the modal in the CMS.\r\n if (process.env.CURRENT_ENVIRONMENT !== 'web') { return null; }\r\n\r\n if (!this._popupReady) { return null; }\r\n return (\r\n \r\n \r\n \r\n \r\n {this._renderedModules}\r\n {button}\r\n \r\n \r\n );\r\n }\r\n\r\n private _startCookiePolling(): void {\r\n const interval = setInterval(\r\n () => {\r\n // MUST call document. turns out that the request object never\r\n // updates its cookie list when a new cookie is added. only\r\n // updated on each re-render poll\r\n // tslint:disable-next-line: no-cookies no-typeof-undefined\r\n if (typeof window !== 'undefined' && window.document.cookie.includes(MAILING_FORM_COOKIE.name) && !this._cookieRecieved) {\r\n this._cookieRecieved = true;\r\n clearInterval(interval);\r\n }\r\n },\r\n 500\r\n );\r\n }\r\n\r\n private get _renderedModules(): JSX.Element {\r\n return (\r\n \r\n {this.props.slots.modules.map((slot: React.ReactNode, index: number) => (\r\n {slot}\r\n ))}\r\n \r\n );\r\n }\r\n\r\n private _remindLaterClose(): void {\r\n this._closeModal();\r\n this._setCookie(this._cookie.name, this.props.config.remindTime);\r\n }\r\n\r\n private _dismissClose(): void {\r\n this._closeModal();\r\n // if the cookie exists as of this exact moment, then don't\r\n // set it\r\n if (!this._getCookiesDirectly(this._cookie.name)) {\r\n this._setCookie(this._cookie.name, this.props.config.dismissTime);\r\n }\r\n }\r\n\r\n private _closeModal(): void {\r\n this.setState({ _popupOpen: false });\r\n }\r\n\r\n private _startDelay(): void {\r\n if (!this._delayStarted) {\r\n this._delayStarted = true;\r\n setTimeout(\r\n () => {\r\n this._popupReady = true;\r\n },\r\n this.props.config.delay * 1000\r\n );\r\n }\r\n }\r\n\r\n private _getCookiesDirectly(name: string): string {\r\n const cookies = {};\r\n // tslint:disable-next-line: no-cookies\r\n document.cookie.split(';').forEach(cookie => {\r\n const [curName, value] = cookie.split('=');\r\n cookies[curName.trim()] = value;\r\n });\r\n return cookies[name];\r\n }\r\n\r\n private _setCookie(name: string, deltaHoursFromToday: number): void {\r\n const { cookies } = this.props.context.request;\r\n const now = new Date(Date.now());\r\n now.setHours(now.getHours() + deltaHoursFromToday);\r\n\r\n cookies.set(name, false, { expires: now, isEssential: true } as {});\r\n }\r\n\r\n private _cookieExist(name: string): boolean {\r\n const { cookies } = this.props.context.request;\r\n // if cookie exists, don't display\r\n if (\r\n // unfortunetly the type does not match the class. isEssential does\r\n // not exist on cookies.get but is required in this function.\r\n // override the type to add it\r\n (cookies.get as (name: string, isEssential: boolean) => ICookieValue)(name, true).status === 'FOUND'\r\n ) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n\r\nexport default PopupModal;\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\nexport enum dataStates {\r\n al = 'Alabama',\r\n ak = 'Alaska',\r\n az = 'Arizona',\r\n ar = 'Arkansas',\r\n ca = 'California',\r\n co = 'Colorado',\r\n ct = 'Connecticut',\r\n dc = 'District of Columbia',\r\n de = 'Delaware',\r\n fl = 'Florida',\r\n ga = 'Georgia',\r\n hi = 'Hawaii',\r\n id = 'Idaho',\r\n il = 'Illinois',\r\n in = 'Indiana',\r\n ia = 'Iowa',\r\n ks = 'Kansas',\r\n ky = 'Kentucky',\r\n la = 'Louisiana',\r\n me = 'Maine',\r\n md = 'Maryland',\r\n ma = 'Massachusetts',\r\n mi = 'Michigan',\r\n mn = 'Minnesota',\r\n ms = 'Mississippi',\r\n mo = 'Missouri',\r\n mt = 'Montana',\r\n ne = 'Nebraska',\r\n nv = 'Nevada',\r\n nh = 'New Hampshire',\r\n nj = 'New Jersey',\r\n nm = 'New Mexico',\r\n ny = 'New York',\r\n nc = 'North Carolina',\r\n nd = 'North Dakota',\r\n oh = 'Ohio',\r\n ok = 'Oklahoma',\r\n or = 'Oregon',\r\n pa = 'Pennsylvania',\r\n ri = 'Rhode Island',\r\n sc = 'South Carolina',\r\n sd = 'South Dakota',\r\n tn = 'Tennessee',\r\n tx = 'Texas',\r\n ut = 'Utah',\r\n vt = 'Vermont',\r\n va = 'Virginia',\r\n wa = 'Washington',\r\n wv = 'West Virginia',\r\n wi = 'Wisconsin',\r\n wy = 'Wyoming',\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\nimport * as React from 'react';\r\n\r\nimport { IShippingPopupData } from './shipping-popup.data';\r\nimport { IShippingPopupProps } from './shipping-popup.props.autogenerated';\r\n\r\nimport { observable } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\n\r\nexport interface IShippingPopupViewProps extends IShippingPopupProps {\r\n modalState: boolean;\r\n toggleModal(): void;\r\n}\r\n\r\n/**\r\n *\r\n * ShippingPopup component\r\n * @extends {React.PureComponent>}\r\n */\r\n@observer\r\nclass ShippingPopup extends React.PureComponent> {\r\n\r\n @observable private _modalState: boolean = false;\r\n\r\n constructor(props: IShippingPopupProps) {\r\n super(props);\r\n\r\n this._toggleModal = this._toggleModal.bind(this);\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n return this.props.renderView({\r\n modalState: this._modalState,\r\n toggleModal: this._toggleModal,\r\n ...this.props\r\n });\r\n }\r\n\r\n private _toggleModal(): void {\r\n this._modalState = !this._modalState;\r\n if (typeof window !== 'undefined' && this._modalState === true) {\r\n const scrollbarWidth = window.innerWidth - document.body.clientWidth;\r\n document.body.style.top = `-${window.scrollY}px`;\r\n document.documentElement.style.setProperty('--windowScrollY', `-${window.scrollY}px`);\r\n document.documentElement.style.setProperty('--windowScrollBarWidth', `${scrollbarWidth}px`);\r\n }\r\n }\r\n}\r\n\r\nexport default ShippingPopup;\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 { IShippingPopupViewProps } from './shipping-popup';\r\n\r\nimport { Modal, ModalBody, ModalHeader } from '@msdyn365-commerce-modules/utilities';\r\nimport { stateSettings } from '../../settings/app.settings';\r\nimport { dataStates } from '../shipping-map/shipping-map.data-states';\r\n\r\nexport default (props: IShippingPopupViewProps) => {\r\n\r\n const {\r\n shippingPopup__shippingModalTitle,\r\n shippingPopup__shippingModalDescription,\r\n shippingPopup__shippingModalLegend\r\n } = props.resources;\r\n\r\n const states = props.context.app.config.statesSettings as stateSettings || [];\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n

{shippingPopup__shippingModalTitle}

\r\n
\r\n
\r\n {props.slots.map}\r\n
\r\n
\r\n

{shippingPopup__shippingModalDescription}

\r\n

{shippingPopup__shippingModalLegend}

\r\n
    \r\n {\r\n Object.keys(states)\r\n .filter(state => !states[state])\r\n .map((state, index) => (
  • {dataStates[state]}
  • ))\r\n }\r\n
\r\n
\r\n
\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 { SimpleText } from '@msdyn365-commerce-modules/data-types';\r\nimport { CategoryHierarchy } from '@msdyn365-commerce/commerce-entities';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\nimport CallToAction from '../../components/call-to-action';\r\nimport { ISmweBreadcrumbData } from './smwe-breadcrumb.data';\r\nimport { ISmweBreadcrumbProps } from './smwe-breadcrumb.props.autogenerated';\r\n\r\n/**\r\n *\r\n * Breadcrumb component\r\n * @extends {React.Component>}\r\n */\r\n@observer\r\nclass Breadcrumb extends React.Component> {\r\n\r\n public render(): JSX.Element | null {\r\n // This should never occur\r\n if (!(this.props && this.props.data && this.props.config)) {\r\n return null;\r\n }\r\n // Contruct the text for the current location (currently pulls either the category or product name)\r\n let breadcrumbData;\r\n let categoryData;\r\n if (this.props.data.breadcrumbData) {\r\n breadcrumbData = this.props.data.breadcrumbData.result;\r\n if (breadcrumbData) {\r\n categoryData = this._getCategory();\r\n } else if (this.props.config.allWinesCategoryId) {\r\n // waits for data actions on plp and pdp pages\r\n return null;\r\n }\r\n }\r\n return this._renderBreadcrumbs(categoryData, breadcrumbData);\r\n }\r\n // =========================================================================\r\n // PRIVATE METHODS\r\n // =========================================================================\r\n\r\n // ------------------------------------------------------\r\n // Returns parent category based off url path\r\n // ------------------------------------------------------\r\n private _getCategory(): CategoryHierarchy | undefined {\r\n if (!this.props.data.categories) { return; }\r\n const categories = this.props.data.categories.result;\r\n if (!categories) { return; }\r\n const currentUrl = window.location.pathname;\r\n let searchedCategory = {} as CategoryHierarchy;\r\n categories.forEach(category => {\r\n if (category.Children) {\r\n searchedCategory = category.Children.find(child => (child.Slug && currentUrl.includes(child.Slug))) || searchedCategory;\r\n }\r\n });\r\n return searchedCategory;\r\n }\r\n\r\n // ------------------------------------------------------\r\n // ------------------------------------------------------\r\n private _isAllWines(categoryData: CategoryHierarchy): boolean {\r\n if (!this.props.config.allWinesCategoryId) { return false; }\r\n return (categoryData.RecordId === this.props.config.allWinesCategoryId && categoryData.Url && categoryData.Url.includes(window.location.pathname)) ? true : false;\r\n }\r\n\r\n // ------------------------------------------------------\r\n // ------------------------------------------------------\r\n private _getParentBreadcrumbText(isAllWinesPage: boolean): string {\r\n const { config } = this.props;\r\n if (isAllWinesPage && config.allWinesBreadcrumbLink && config.allWinesBreadcrumbLink.linkText) {\r\n return config.allWinesBreadcrumbLink.linkText;\r\n } else {\r\n return config.staticBreadcrumbItemText || 'Home';\r\n }\r\n }\r\n\r\n // ------------------------------------------------------\r\n // ------------------------------------------------------\r\n private _getParentBreadcrumbLink(isAllWinesPage: boolean): string {\r\n const { config } = this.props;\r\n if (isAllWinesPage && config.allWinesBreadcrumbLink && config.allWinesBreadcrumbLink.linkUrl && config.allWinesBreadcrumbLink.linkUrl.destinationUrl) {\r\n return config.allWinesBreadcrumbLink.linkUrl.destinationUrl;\r\n } else {\r\n const link = config.staticBreadcrumbItemLink;\r\n return (link && link.linkUrl && link.linkUrl.destinationUrl) || '/';\r\n }\r\n }\r\n\r\n // ------------------------------------------------------\r\n // ------------------------------------------------------\r\n private _renderBreadcrumbs(categoryData: CategoryHierarchy | undefined, breadcrumbData: SimpleText | undefined): JSX.Element {\r\n const { config } = this.props;\r\n const separator = config.breadcrumbSeparator || '|';\r\n const isAllWinesPage = categoryData ? this._isAllWines(categoryData) : false;\r\n\r\n // Pull values from config for breadcrumb item links\r\n const staticText = this._getParentBreadcrumbText(isAllWinesPage);\r\n const link = config.staticBreadcrumbItemLevel2Link;\r\n const lastBreadcrumbLink = (link && link.linkUrl && link.linkUrl.destinationUrl) || '';\r\n const lastBreadcrumbText = (breadcrumbData && breadcrumbData.text) || (config.staticBreadcrumbItemLevel2Text || '');\r\n\r\n return (\r\n
\r\n {staticText && (\r\n \r\n )}\r\n\r\n {(categoryData && categoryData.Url && !categoryData.Url.includes(window.location.pathname) && categoryData.RecordId !== config.allWinesCategoryId) && (\r\n
\r\n \r\n \r\n
\r\n )}\r\n\r\n {lastBreadcrumbText && (\r\n
\r\n \r\n {lastBreadcrumbLink && (\r\n \r\n ) || (\r\n
{lastBreadcrumbText}
\r\n )}\r\n
\r\n )}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default Breadcrumb;\r\n","import * as React from 'react';\r\n\r\nimport { Heading } from '@msdyn365-commerce-modules/utilities';\r\nimport { IImageSettings, Image, RichTextComponent } from '@msdyn365-commerce/core';\r\nimport { observable } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport { ITimelineItemsData, ITimelineProps } from './timeline.props.autogenerated';\r\n\r\nconst HEIGHT:number = 400;\r\n/**\r\n *\r\n * Timeline component\r\n * @extends {React.Component>}\r\n */\r\n@observer\r\nclass Timeline extends React.Component> {\r\n\r\n // =========================================================================\r\n // OBSERVABLES AND FIELDS\r\n // =========================================================================\r\n\r\n @observable private currentSlide: number;\r\n @observable private timelineItems: ITimelineItemsData[];\r\n @observable private timelineItemTransition: string;\r\n\r\n private yearPositions: number[] = [];\r\n private yearCenter: number = 0;\r\n\r\n private minimalImageSettings: IImageSettings = {\r\n viewports: {\r\n xs: { q: `w=0&h=${HEIGHT}&m=6`, w: 0, h: HEIGHT },\r\n lg: { q: `w=0&h=${HEIGHT}&m=6`, w: 0, h: HEIGHT },\r\n xl: { q: `w=0&h=${HEIGHT}&m=6`, w: 0, h: HEIGHT }\r\n },\r\n disableLazyLoad: true\r\n };\r\n\r\n // ------------------------------------------------------\r\n // ------------------------------------------------------\r\n constructor(props: ITimelineProps<{}>) {\r\n super(props);\r\n this.currentSlide = 0;\r\n this.timelineItems = props.config.timelineItems || [];\r\n this.timelineItemTransition = 'timeline-item-show';\r\n\r\n this._nextItem = this._nextItem.bind(this);\r\n this._previousItem = this._previousItem.bind(this);\r\n this._handleItemChange = this._handleItemChange.bind(this);\r\n\r\n if (props.config.timelineInterval) {\r\n setInterval(this._nextItem, props.config.timelineInterval);\r\n }\r\n }\r\n\r\n // =========================================================================\r\n // PUBLIC METHODS\r\n // =========================================================================\r\n\r\n // ------------------------------------------------------\r\n // ------------------------------------------------------\r\n public componentDidMount(): void {\r\n // Get the relative position of all items in the year scroller\r\n this._getYearPositions();\r\n }\r\n\r\n // ------------------------------------------------------\r\n // ------------------------------------------------------\r\n public render(): JSX.Element | null {\r\n const { config } = this.props;\r\n if (!config.timelineItems) {\r\n return null;\r\n }\r\n\r\n const currentItem = config.timelineItems[this.currentSlide];\r\n const gridSettings = this.props.context.actionContext.requestContext.gridSettings;\r\n\r\n return (\r\n
\r\n\r\n
\r\n
\r\n {this._getSelectors}\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {gridSettings && currentItem.image &&\r\n \r\n }\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n );\r\n }\r\n\r\n // =========================================================================\r\n // PRIVATE METHODS\r\n // =========================================================================\r\n\r\n // ------------------------------------------------------\r\n // ------------------------------------------------------\r\n private get _getSelectors(): JSX.Element | null {\r\n return (\r\n \r\n {this.timelineItems.map((timelineItem, index) => (\r\n \r\n \r\n
\r\n ))}\r\n \r\n );\r\n }\r\n\r\n // ------------------------------------------------------\r\n // ------------------------------------------------------\r\n private _previousItem(): void {\r\n this._handleItemTransition();\r\n this.currentSlide = this.currentSlide > 0 ? this.currentSlide - 1 : this.timelineItems.length - 1;\r\n this._recenter();\r\n }\r\n\r\n // ------------------------------------------------------\r\n // ------------------------------------------------------\r\n private _nextItem(): void {\r\n this._handleItemTransition();\r\n this.currentSlide = (this.currentSlide < this.timelineItems.length - 1) ? this.currentSlide + 1 : 0;\r\n this._recenter();\r\n }\r\n\r\n // ------------------------------------------------------\r\n // ------------------------------------------------------\r\n private _handleItemChange(element: React.MouseEvent): void {\r\n const index = element.currentTarget.getAttribute('data-id')!;\r\n this.currentSlide = +index;\r\n this._handleItemTransition();\r\n this._recenter(element.currentTarget);\r\n }\r\n\r\n // ------------------------------------------------------\r\n // ------------------------------------------------------\r\n private _recenter(el?: EventTarget & HTMLDivElement): void {\r\n\r\n const desiredPosition = this.yearPositions[this.currentSlide];\r\n const container = document.getElementsByClassName('timeline-scroll-hidden').item(0);\r\n\r\n container && container.scrollTo({\r\n top: desiredPosition - this.yearCenter,\r\n left: 0,\r\n behavior: 'smooth'\r\n });\r\n }\r\n\r\n // ------------------------------------------------------\r\n // ------------------------------------------------------\r\n private _handleItemTransition(): void {\r\n this.timelineItemTransition = '';\r\n setTimeout(() => {\r\n this.timelineItemTransition = 'timeline-item-show';\r\n }, 0);\r\n }\r\n\r\n // ------------------------------------------------------\r\n // ------------------------------------------------------\r\n private _getYearPositions(): void {\r\n const years = document.getElementsByClassName('timeline-year');\r\n\r\n for (let i = 0; i < years.length; i++) {\r\n const el = years[i] as HTMLElement;\r\n this.yearPositions[i] = el.offsetTop;\r\n }\r\n\r\n const scrollContainer = document.getElementsByClassName('timeline-scroll-hidden')[0] as HTMLElement;\r\n if (scrollContainer) {\r\n this.yearCenter = scrollContainer.offsetHeight / 2;\r\n }\r\n\r\n }\r\n}\r\n\r\nexport default Timeline;\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\nimport * as React from 'react';\r\n\r\nimport { Modal, ModalBody, ModalHeader } from '@msdyn365-commerce-modules/utilities';\r\nimport { getRichTextHtml } from '@msdyn365-commerce/core';\r\nimport { observable } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport TourIFrame from '../../components/truetour-iframe';\r\nimport VimeoIFrame from '../../components/vimeo-iframe';\r\nimport YoutubeIFrame from '../../components/youtube-iframe';\r\nimport { IYoutubeModalData } from './youtube-modal.data';\r\nimport { IYoutubeModalProps } from './youtube-modal.props.autogenerated';\r\n\r\n// ==============================================================================\r\n// CLASS DEFINITIONS\r\n// ==============================================================================\r\n/**\r\n *\r\n * YoutubeModal component\r\n * @extends {React.Component>}\r\n */\r\n@observer\r\nclass YoutubeModal extends React.Component> {\r\n\r\n // ==========================================================================\r\n // FIELDS\r\n // ==========================================================================\r\n\r\n @observable private _modalState: boolean = false;\r\n\r\n // ==========================================================================\r\n // PUBLIC METHODS\r\n // ==========================================================================\r\n\r\n // -----------------------------------------------------------\r\n // -----------------------------------------------------------\r\n public constructor(props: IYoutubeModalProps) {\r\n super(props);\r\n\r\n this._openModal = this._openModal.bind(this);\r\n this._closeModal = this._closeModal.bind(this);\r\n }\r\n\r\n // -----------------------------------------------------------\r\n // -----------------------------------------------------------\r\n public render(): JSX.Element {\r\n return (\r\n
\r\n \r\n {this._richText}\r\n {this._thumbnail}\r\n
\r\n {this._modal}\r\n
\r\n );\r\n }\r\n\r\n // ==========================================================================\r\n // JSX CONSTRUCTORS\r\n // ==========================================================================\r\n\r\n // -----------------------------------------------------------\r\n // -----------------------------------------------------------\r\n private get _thumbnail(): JSX.Element | null {\r\n if (this.props.config.image) {\r\n const {\r\n altText,\r\n src\r\n } = this.props.config.image;\r\n\r\n let imgSrc = src || '';\r\n if (!imgSrc.includes('&q=')) {\r\n imgSrc += '&q=80';\r\n }\r\n\r\n return (\r\n \r\n );\r\n }\r\n\r\n // No thumbnail supplied\r\n return null;\r\n }\r\n\r\n // -----------------------------------------------------------\r\n // -----------------------------------------------------------\r\n private get _richText(): JSX.Element | null {\r\n if (this.props.config.richText) {\r\n return (\r\n // tslint:disable-next-line:react-no-dangerous-html\r\n \r\n );\r\n }\r\n\r\n // No text area was supplied\r\n return null;\r\n }\r\n\r\n // -----------------------------------------------------------\r\n // -----------------------------------------------------------\r\n private get _modal(): JSX.Element | null {\r\n\r\n let modalId;\r\n if (this.props.config.videoId) {\r\n modalId = `youtube-${this.props.config.videoId}`;\r\n }\r\n if (this.props.config.vimeoVideoId) {\r\n modalId = `vimeo-${this.props.config.vimeoVideoId}`;\r\n }\r\n if(this.props.config.trueTourId) {\r\n modalId = `truetour-${this.props.config.trueTourId}`;\r\n }\r\n\r\n if (modalId) {\r\n return (\r\n \r\n \r\n \r\n {\r\n this._modalState &&\r\n this._videoType\r\n }\r\n \r\n \r\n );\r\n }\r\n\r\n console.warn('[Youtube-Modal] video id is not defined');\r\n return null;\r\n }\r\n\r\n // ==========================================================================\r\n // COMPONENT EVENTS\r\n // ==========================================================================\r\n\r\n // -----------------------------------------------------------\r\n // -----------------------------------------------------------\r\n private _openModal(): void {\r\n this._modalState = true;\r\n }\r\n\r\n // -----------------------------------------------------------\r\n // -----------------------------------------------------------\r\n private _closeModal(): void {\r\n this._modalState = false;\r\n }\r\n\r\n // -----------------------------------------------------------\r\n // -----------------------------------------------------------\r\n private get _videoType(): JSX.Element | null {\r\n // uses youtube ID first regardless of vimeo ID\r\n if (this.props.config.videoId) {\r\n return ;\r\n }\r\n if (this.props.config.vimeoVideoId) {\r\n return ;\r\n }\r\n if (this.props.config.trueTourId) {\r\n return ;\r\n }\r\n return null;\r\n }\r\n}\r\n\r\nexport default YoutubeModal;","/*!\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 { Module } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport msdyn365Commerce from '@msdyn365-commerce/core-internal';\r\nimport { ICheckoutApplePayViewProps } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-apple-pay/checkout-apple-pay';\r\nimport { ICheckoutApplePayData } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-apple-pay/checkout-apple-pay.data';\r\nimport { ICheckoutApplePayProps } from '../definition-extensions/checkout-apple-pay.ext.props.autogenerated';\r\n\r\nconst CheckoutApplyPayView: React.FC> = (props) => {\r\n const { checkoutApplePay, applePayButton, alert } = props;\r\n const [applePayImage, setApplePayImage] = React.useState('');\r\n\r\n React.useEffect(() => {\r\n if (props.config.applePayImage) {\r\n setApplePayImage(`url('${props.config.applePayImage}')`);\r\n }\r\n }, [props.config.applePayImage]);\r\n\r\n if (msdyn365Commerce.isBrowser) {\r\n if (props.config.applePayImage) {\r\n document.documentElement.style.setProperty('--applePayImage', `${applePayImage}`);\r\n document.documentElement.style.setProperty('--applePayWebkit', `none`);\r\n } else {\r\n document.documentElement.style.setProperty('--applePayWebkit', `-apple-pay-button`);\r\n }\r\n }\r\n return (\r\n \r\n {alert}\r\n {applePayButton}\r\n \r\n );\r\n};\r\n\r\nexport default CheckoutApplyPayView;\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 { Module } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport msdyn365Commerce from '@msdyn365-commerce/core-internal';\r\nimport { ICheckoutApplePayViewProps } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-apple-pay/checkout-apple-pay';\r\nimport { ICheckoutApplePayData } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-apple-pay/checkout-apple-pay.data';\r\nimport { ICheckoutApplePayProps } from '../definition-extensions/checkout-apple-pay.ext.props.autogenerated';\r\n\r\nconst CheckoutApplyPayView: React.FC> = (props) => {\r\n const { checkoutApplePay, applePayButton, alert } = props;\r\n const [applePayImage, setApplePayImage] = React.useState('');\r\n\r\n React.useEffect(() => {\r\n if (props.config.applePayImage) {\r\n setApplePayImage(`url('${props.config.applePayImage}')`);\r\n }\r\n }, [props.config.applePayImage]);\r\n\r\n if (msdyn365Commerce.isBrowser) {\r\n if (props.config.applePayImage) {\r\n document.documentElement.style.setProperty('--applePayImage', `${applePayImage}`);\r\n document.documentElement.style.setProperty('--applePayWebkit', `none`);\r\n } else {\r\n document.documentElement.style.setProperty('--applePayWebkit', `-apple-pay-button`);\r\n }\r\n }\r\n return (\r\n \r\n {alert}\r\n {applePayButton}\r\n \r\n );\r\n};\r\n\r\nexport default CheckoutApplyPayView;\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 { Module } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport msdyn365Commerce from '@msdyn365-commerce/core-internal';\r\nimport { ICheckoutApplePayViewProps } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-apple-pay/checkout-apple-pay';\r\nimport { ICheckoutApplePayData } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-apple-pay/checkout-apple-pay.data';\r\nimport { ICheckoutApplePayProps } from '../definition-extensions/checkout-apple-pay.ext.props.autogenerated';\r\n\r\nconst CheckoutApplyPayView: React.FC> = (props) => {\r\n const { checkoutApplePay, applePayButton, alert } = props;\r\n const [applePayImage, setApplePayImage] = React.useState('');\r\n\r\n React.useEffect(() => {\r\n if (props.config.applePayImage) {\r\n setApplePayImage(`url('${props.config.applePayImage}')`);\r\n }\r\n }, [props.config.applePayImage]);\r\n\r\n if (msdyn365Commerce.isBrowser) {\r\n if (props.config.applePayImage) {\r\n document.documentElement.style.setProperty('--applePayImage', `${applePayImage}`);\r\n document.documentElement.style.setProperty('--applePayWebkit', `none`);\r\n } else {\r\n document.documentElement.style.setProperty('--applePayWebkit', `-apple-pay-button`);\r\n }\r\n }\r\n return (\r\n \r\n {alert}\r\n {applePayButton}\r\n \r\n );\r\n};\r\n\r\nexport default CheckoutApplyPayView;\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\r\nimport { getUrlSync, IComponent, IComponentProps } from '@msdyn365-commerce/core';\r\nimport { ICartState } from '@msdyn365-commerce/global-state';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\n\r\nexport interface ICartIconData {\r\n cart: ICartState;\r\n}\r\n\r\nexport interface ICartIconComponentProps extends IComponentProps {\r\n className?: string;\r\n}\r\n\r\nexport interface ICartIconComponent extends IComponent {\r\n}\r\n\r\n/**\r\n *\r\n * CartIcon component\r\n * @extends {React.FC}\r\n */\r\nconst CartIcon: React.FC = observer((props: ICartIconComponentProps) => {\r\n const { data: {cart} } = props;\r\n const cartLink = getUrlSync('cart', props.context.actionContext);\r\n const cartItem = cart ? `(${cart.totalItemsInCart})` : '';\r\n const label = `My Cart, ${cartItem} items`;\r\n return (\r\n \r\n
\r\n My Cart {cartItem}\r\n
\r\n
\r\n );\r\n});\r\n\r\n// Following code is been replaced with 'CartIcon' in last line and might be used on later\r\n// @ts-ignore\r\n// export const CartIconComponent: React.FunctionComponent = msdyn365Commerce.createComponent(\r\n// 'CartIcon',\r\n// { component: CartIcon, ...CartIconComponentActions }\r\n// );\r\n\r\nexport default CartIcon;","/*!\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 { Module } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport msdyn365Commerce from '@msdyn365-commerce/core-internal';\r\nimport { ICheckoutApplePayViewProps } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-apple-pay/checkout-apple-pay';\r\nimport { ICheckoutApplePayData } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-apple-pay/checkout-apple-pay.data';\r\nimport { ICheckoutApplePayProps } from '../definition-extensions/checkout-apple-pay.ext.props.autogenerated';\r\n\r\nconst CheckoutApplyPayView: React.FC> = (props) => {\r\n const { checkoutApplePay, applePayButton, alert } = props;\r\n const [applePayImage, setApplePayImage] = React.useState('');\r\n\r\n React.useEffect(() => {\r\n if (props.config.applePayImage) {\r\n setApplePayImage(`url('${props.config.applePayImage}')`);\r\n }\r\n }, [props.config.applePayImage]);\r\n\r\n if (msdyn365Commerce.isBrowser) {\r\n if (props.config.applePayImage) {\r\n document.documentElement.style.setProperty('--applePayImage', `${applePayImage}`);\r\n document.documentElement.style.setProperty('--applePayWebkit', `none`);\r\n } else {\r\n document.documentElement.style.setProperty('--applePayWebkit', `-apple-pay-button`);\r\n }\r\n }\r\n return (\r\n \r\n {alert}\r\n {applePayButton}\r\n \r\n );\r\n};\r\n\r\nexport default CheckoutApplyPayView;\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\nimport { getUrlSync, IComponent, IComponentProps } from '@msdyn365-commerce/core';\r\nimport { ICartState } from '@msdyn365-commerce/global-state';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\n\r\nexport interface ICartIconData {\r\n cart: ICartState;\r\n}\r\n\r\nexport interface ICartIconComponentProps extends IComponentProps {\r\n className?: string;\r\n}\r\n\r\nexport interface ICartIconComponent extends IComponent {\r\n}\r\n\r\n/**\r\n *\r\n * CartIcon component\r\n * @extends {React.FC}\r\n */\r\nconst CartIcon: React.FC = observer((props: ICartIconComponentProps) => {\r\n const { data: {cart} } = props;\r\n const cartLink = getUrlSync('cart', props.context.actionContext);\r\n const cartItem = cart ? `(${cart.totalItemsInCart})` : '';\r\n const label = `My Cart, ${cartItem} items`;\r\n return (\r\n \r\n
\r\n My Cart {cartItem}\r\n
\r\n
\r\n );\r\n});\r\n\r\n// Following code is been replaced with 'CartIcon' in last line and might be used on later\r\n// @ts-ignore\r\n// export const CartIconComponent: React.FunctionComponent = msdyn365Commerce.createComponent(\r\n// 'CartIcon',\r\n// { component: CartIcon, ...CartIconComponentActions }\r\n// );\r\n\r\nexport default CartIcon;","/*!\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 { Module } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport msdyn365Commerce from '@msdyn365-commerce/core-internal';\r\nimport { ICheckoutApplePayViewProps } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-apple-pay/checkout-apple-pay';\r\nimport { ICheckoutApplePayData } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-apple-pay/checkout-apple-pay.data';\r\nimport { ICheckoutApplePayProps } from '../definition-extensions/checkout-apple-pay.ext.props.autogenerated';\r\n\r\nconst CheckoutApplyPayView: React.FC> = (props) => {\r\n const { checkoutApplePay, applePayButton, alert } = props;\r\n const [applePayImage, setApplePayImage] = React.useState('');\r\n\r\n React.useEffect(() => {\r\n if (props.config.applePayImage) {\r\n setApplePayImage(`url('${props.config.applePayImage}')`);\r\n }\r\n }, [props.config.applePayImage]);\r\n\r\n if (msdyn365Commerce.isBrowser) {\r\n if (props.config.applePayImage) {\r\n document.documentElement.style.setProperty('--applePayImage', `${applePayImage}`);\r\n document.documentElement.style.setProperty('--applePayWebkit', `none`);\r\n } else {\r\n document.documentElement.style.setProperty('--applePayWebkit', `-apple-pay-button`);\r\n }\r\n }\r\n return (\r\n \r\n {alert}\r\n {applePayButton}\r\n \r\n );\r\n};\r\n\r\nexport default CheckoutApplyPayView;\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\nimport { getUrlSync, IComponent, IComponentProps } from '@msdyn365-commerce/core';\r\nimport { ICartState } from '@msdyn365-commerce/global-state';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\n\r\nexport interface ICartIconData {\r\n cart: ICartState;\r\n}\r\n\r\nexport interface ICartIconComponentProps extends IComponentProps {\r\n className?: string;\r\n}\r\n\r\nexport interface ICartIconComponent extends IComponent {\r\n}\r\n\r\n/**\r\n *\r\n * CartIcon component\r\n * @extends {React.FC}\r\n */\r\nconst CartIcon: React.FC = observer((props: ICartIconComponentProps) => {\r\n const { data: {cart} } = props;\r\n const cartLink = getUrlSync('cart', props.context.actionContext);\r\n const cartItem = cart ? `(${cart.totalItemsInCart})` : '';\r\n const label = `My Cart, ${cartItem} items`;\r\n return (\r\n \r\n
\r\n My Cart {cartItem}\r\n
\r\n
\r\n );\r\n});\r\n\r\n// Following code is been replaced with 'CartIcon' in last line and might be used on later\r\n// @ts-ignore\r\n// export const CartIconComponent: React.FunctionComponent = msdyn365Commerce.createComponent(\r\n// 'CartIcon',\r\n// { component: CartIcon, ...CartIconComponentActions }\r\n// );\r\n\r\nexport default CartIcon;","/*!\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 { Module } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport msdyn365Commerce from '@msdyn365-commerce/core-internal';\r\nimport { ICheckoutApplePayViewProps } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-apple-pay/checkout-apple-pay';\r\nimport { ICheckoutApplePayData } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-apple-pay/checkout-apple-pay.data';\r\nimport { ICheckoutApplePayProps } from '../definition-extensions/checkout-apple-pay.ext.props.autogenerated';\r\n\r\nconst CheckoutApplyPayView: React.FC> = (props) => {\r\n const { checkoutApplePay, applePayButton, alert } = props;\r\n const [applePayImage, setApplePayImage] = React.useState('');\r\n\r\n React.useEffect(() => {\r\n if (props.config.applePayImage) {\r\n setApplePayImage(`url('${props.config.applePayImage}')`);\r\n }\r\n }, [props.config.applePayImage]);\r\n\r\n if (msdyn365Commerce.isBrowser) {\r\n if (props.config.applePayImage) {\r\n document.documentElement.style.setProperty('--applePayImage', `${applePayImage}`);\r\n document.documentElement.style.setProperty('--applePayWebkit', `none`);\r\n } else {\r\n document.documentElement.style.setProperty('--applePayWebkit', `-apple-pay-button`);\r\n }\r\n }\r\n return (\r\n \r\n {alert}\r\n {applePayButton}\r\n \r\n );\r\n};\r\n\r\nexport default CheckoutApplyPayView;\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\nimport { format } from '@msdyn365-commerce-modules/utilities';\r\nimport { getUrlSync, IComponent, IComponentProps } from '@msdyn365-commerce/core';\r\nimport { ICartState } from '@msdyn365-commerce/global-state';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\n\r\nexport interface ICartIconData {\r\n cart: ICartState;\r\n}\r\n\r\nexport interface ICartIconComponentProps extends IComponentProps {\r\n className?: string;\r\n cartLabel: string;\r\n}\r\n\r\nexport interface ICartIconComponent extends IComponent {\r\n}\r\n\r\n/**\r\n *\r\n * CartIcon component\r\n * @extends {React.FC}\r\n */\r\nconst CartIcon: React.FC = observer((props: ICartIconComponentProps) => {\r\n const { cartLabel, data: {cart} } = props;\r\n const cartLink = getUrlSync('cart', props.context.actionContext);\r\n const cartItem = cart ? `(${cart.totalItemsInCart})` : '';\r\n const label = format(cartLabel, cartItem) || `Shopping bag, ${cartItem} items`;\r\n return (\r\n \r\n
\r\n My Cart {cartItem}\r\n
\r\n
\r\n );\r\n});\r\n\r\n// Following code is been replaced with 'CartIcon' in last line and might be used on later\r\n// @ts-ignore\r\n// export const CartIconComponent: React.FunctionComponent = msdyn365Commerce.createComponent(\r\n// 'CartIcon',\r\n// { component: CartIcon, ...CartIconComponentActions }\r\n// );\r\n\r\nexport default CartIcon;","/*!\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 { Module } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport msdyn365Commerce from '@msdyn365-commerce/core-internal';\r\nimport { ICheckoutApplePayViewProps } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-apple-pay/checkout-apple-pay';\r\nimport { ICheckoutApplePayData } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-apple-pay/checkout-apple-pay.data';\r\nimport { ICheckoutApplePayProps } from '../definition-extensions/checkout-apple-pay.ext.props.autogenerated';\r\n\r\nconst CheckoutApplyPayView: React.FC> = (props) => {\r\n const { checkoutApplePay, applePayButton, alert } = props;\r\n const [applePayImage, setApplePayImage] = React.useState('');\r\n\r\n React.useEffect(() => {\r\n if (props.config.applePayImage) {\r\n setApplePayImage(`url('${props.config.applePayImage}')`);\r\n }\r\n }, [props.config.applePayImage]);\r\n\r\n if (msdyn365Commerce.isBrowser) {\r\n if (props.config.applePayImage) {\r\n document.documentElement.style.setProperty('--applePayImage', `${applePayImage}`);\r\n document.documentElement.style.setProperty('--applePayWebkit', `none`);\r\n } else {\r\n document.documentElement.style.setProperty('--applePayWebkit', `-apple-pay-button`);\r\n }\r\n }\r\n return (\r\n \r\n {alert}\r\n {applePayButton}\r\n \r\n );\r\n};\r\n\r\nexport default CheckoutApplyPayView;\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 { Module } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport msdyn365Commerce from '@msdyn365-commerce/core-internal';\r\nimport { ICheckoutApplePayViewProps } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-apple-pay/checkout-apple-pay';\r\nimport { ICheckoutApplePayData } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-apple-pay/checkout-apple-pay.data';\r\nimport { ICheckoutApplePayProps } from '../definition-extensions/checkout-apple-pay.ext.props.autogenerated';\r\n\r\nconst CheckoutApplyPayView: React.FC> = (props) => {\r\n const { checkoutApplePay, applePayButton, alert } = props;\r\n const [applePayImage, setApplePayImage] = React.useState('');\r\n\r\n React.useEffect(() => {\r\n if (props.config.applePayImage) {\r\n setApplePayImage(`url('${props.config.applePayImage}')`);\r\n }\r\n }, [props.config.applePayImage]);\r\n\r\n if (msdyn365Commerce.isBrowser) {\r\n if (props.config.applePayImage) {\r\n document.documentElement.style.setProperty('--applePayImage', `${applePayImage}`);\r\n document.documentElement.style.setProperty('--applePayWebkit', `none`);\r\n } else {\r\n document.documentElement.style.setProperty('--applePayWebkit', `-apple-pay-button`);\r\n }\r\n }\r\n return (\r\n \r\n {alert}\r\n {applePayButton}\r\n \r\n );\r\n};\r\n\r\nexport default CheckoutApplyPayView;\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\nimport { getUrlSync, IComponent, IComponentProps } from '@msdyn365-commerce/core';\r\nimport { ICartState } from '@msdyn365-commerce/global-state';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\n\r\nexport interface ICartIconData {\r\n cart: ICartState;\r\n}\r\n\r\nexport interface ICartIconComponentProps extends IComponentProps {\r\n className?: string;\r\n}\r\n\r\nexport interface ICartIconComponent extends IComponent {\r\n}\r\n\r\n/**\r\n *\r\n * CartIcon component\r\n * @extends {React.FC}\r\n */\r\nconst CartIcon: React.FC = observer((props: ICartIconComponentProps) => {\r\n const { data: {cart} } = props;\r\n const cartLink = getUrlSync('cart', props.context.actionContext);\r\n const cartItem = cart ? `(${cart.totalItemsInCart})` : '';\r\n const label = `My Cart, ${cartItem} items`;\r\n return (\r\n \r\n
\r\n My Cart {cartItem}\r\n
\r\n
\r\n );\r\n});\r\n\r\n// Following code is been replaced with 'CartIcon' in last line and might be used on later\r\n// @ts-ignore\r\n// export const CartIconComponent: React.FunctionComponent = msdyn365Commerce.createComponent(\r\n// 'CartIcon',\r\n// { component: CartIcon, ...CartIconComponentActions }\r\n// );\r\n\r\nexport default CartIcon;","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { format } from '@msdyn365-commerce-modules/utilities';\r\nimport { getUrlSync, IComponent, IComponentProps } from '@msdyn365-commerce/core';\r\nimport { ICartState } from '@msdyn365-commerce/global-state';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\n\r\nexport interface ICartIconData {\r\n cart: ICartState;\r\n}\r\n\r\nexport interface ICartIconComponentProps extends IComponentProps {\r\n className?: string;\r\n cartLabel: string;\r\n}\r\n\r\nexport interface ICartIconComponent extends IComponent {\r\n}\r\n\r\n/**\r\n *\r\n * CartIcon component\r\n * @extends {React.FC}\r\n */\r\nconst CartIcon: React.FC = observer((props: ICartIconComponentProps) => {\r\n const { cartLabel, data: {cart} } = props;\r\n const cartLink = getUrlSync('cart', props.context.actionContext);\r\n const cartItem = cart ? `(${cart.totalItemsInCart})` : '';\r\n const label = format(cartLabel, cartItem) || `Shopping bag, ${cartItem} items`;\r\n return (\r\n \r\n
\r\n My Cart {cartItem}\r\n
\r\n
\r\n );\r\n});\r\n\r\n// Following code is been replaced with 'CartIcon' in last line and might be used on later\r\n// @ts-ignore\r\n// export const CartIconComponent: React.FunctionComponent = msdyn365Commerce.createComponent(\r\n// 'CartIcon',\r\n// { component: CartIcon, ...CartIconComponentActions }\r\n// );\r\n\r\nexport default CartIcon;","/*!\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 { Module } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport msdyn365Commerce from '@msdyn365-commerce/core-internal';\r\nimport { ICheckoutApplePayViewProps } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-apple-pay/checkout-apple-pay';\r\nimport { ICheckoutApplePayData } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-apple-pay/checkout-apple-pay.data';\r\nimport { ICheckoutApplePayProps } from '../definition-extensions/checkout-apple-pay.ext.props.autogenerated';\r\n\r\nconst CheckoutApplyPayView: React.FC> = (props) => {\r\n const { checkoutApplePay, applePayButton, alert } = props;\r\n const [applePayImage, setApplePayImage] = React.useState('');\r\n\r\n React.useEffect(() => {\r\n if (props.config.applePayImage) {\r\n setApplePayImage(`url('${props.config.applePayImage}')`);\r\n }\r\n }, [props.config.applePayImage]);\r\n\r\n if (msdyn365Commerce.isBrowser) {\r\n if (props.config.applePayImage) {\r\n document.documentElement.style.setProperty('--applePayImage', `${applePayImage}`);\r\n document.documentElement.style.setProperty('--applePayWebkit', `none`);\r\n } else {\r\n document.documentElement.style.setProperty('--applePayWebkit', `-apple-pay-button`);\r\n }\r\n }\r\n return (\r\n \r\n {alert}\r\n {applePayButton}\r\n \r\n );\r\n};\r\n\r\nexport default CheckoutApplyPayView;\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\nimport { getUrlSync, IComponent, IComponentProps } from '@msdyn365-commerce/core';\r\nimport { ICartState } from '@msdyn365-commerce/global-state';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\n\r\nexport interface ICartIconData {\r\n cart: ICartState;\r\n}\r\n\r\nexport interface ICartIconComponentProps extends IComponentProps {\r\n className?: string;\r\n}\r\n\r\nexport interface ICartIconComponent extends IComponent {\r\n}\r\n\r\n/**\r\n *\r\n * CartIcon component\r\n * @extends {React.FC}\r\n */\r\nconst CartIcon: React.FC = observer((props: ICartIconComponentProps) => {\r\n const { data: {cart} } = props;\r\n const cartLink = getUrlSync('cart', props.context.actionContext);\r\n const cartItem = cart ? `(${cart.totalItemsInCart})` : '';\r\n const label = `My Cart, ${cartItem} items`;\r\n return (\r\n \r\n
\r\n My Cart {cartItem}\r\n
\r\n
\r\n );\r\n});\r\n\r\n// Following code is been replaced with 'CartIcon' in last line and might be used on later\r\n// @ts-ignore\r\n// export const CartIconComponent: React.FunctionComponent = msdyn365Commerce.createComponent(\r\n// 'CartIcon',\r\n// { component: CartIcon, ...CartIconComponentActions }\r\n// );\r\n\r\nexport default CartIcon;","/*!\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 { Module } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport msdyn365Commerce from '@msdyn365-commerce/core-internal';\r\nimport { ICheckoutApplePayViewProps } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-apple-pay/checkout-apple-pay';\r\nimport { ICheckoutApplePayData } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-apple-pay/checkout-apple-pay.data';\r\nimport { ICheckoutApplePayProps } from '../definition-extensions/checkout-apple-pay.ext.props.autogenerated';\r\n\r\nconst CheckoutApplyPayView: React.FC> = (props) => {\r\n const { checkoutApplePay, applePayButton, alert } = props;\r\n const [applePayImage, setApplePayImage] = React.useState('');\r\n\r\n React.useEffect(() => {\r\n if (props.config.applePayImage) {\r\n setApplePayImage(`url('${props.config.applePayImage}')`);\r\n }\r\n }, [props.config.applePayImage]);\r\n\r\n if (msdyn365Commerce.isBrowser) {\r\n if (props.config.applePayImage) {\r\n document.documentElement.style.setProperty('--applePayImage', `${applePayImage}`);\r\n document.documentElement.style.setProperty('--applePayWebkit', `none`);\r\n } else {\r\n document.documentElement.style.setProperty('--applePayWebkit', `-apple-pay-button`);\r\n }\r\n }\r\n return (\r\n \r\n {alert}\r\n {applePayButton}\r\n \r\n );\r\n};\r\n\r\nexport default CheckoutApplyPayView;\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\nimport { format } from '@msdyn365-commerce-modules/utilities';\r\nimport { getUrlSync, IComponent, IComponentProps } from '@msdyn365-commerce/core';\r\nimport { ICartState } from '@msdyn365-commerce/global-state';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\n\r\nexport interface ICartIconData {\r\n cart: ICartState;\r\n}\r\n\r\nexport interface ICartIconComponentProps extends IComponentProps {\r\n className?: string;\r\n cartLabel: string;\r\n}\r\n\r\nexport interface ICartIconComponent extends IComponent {\r\n}\r\n\r\n/**\r\n *\r\n * CartIcon component\r\n * @extends {React.FC}\r\n */\r\nconst CartIcon: React.FC = observer((props: ICartIconComponentProps) => {\r\n const { cartLabel, data: {cart} } = props;\r\n const cartLink = getUrlSync('cart', props.context.actionContext);\r\n const cartItem = cart ? `(${cart.totalItemsInCart})` : '';\r\n const label = format(cartLabel, cartItem) || `Shopping bag, ${cartItem} items`;\r\n return (\r\n \r\n
\r\n My Cart {cartItem}\r\n
\r\n
\r\n );\r\n});\r\n\r\n// Following code is been replaced with 'CartIcon' in last line and might be used on later\r\n// @ts-ignore\r\n// export const CartIconComponent: React.FunctionComponent = msdyn365Commerce.createComponent(\r\n// 'CartIcon',\r\n// { component: CartIcon, ...CartIconComponentActions }\r\n// );\r\n\r\nexport default CartIcon;","/*!\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 { Module } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport msdyn365Commerce from '@msdyn365-commerce/core-internal';\r\nimport { ICheckoutApplePayViewProps } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-apple-pay/checkout-apple-pay';\r\nimport { ICheckoutApplePayData } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-apple-pay/checkout-apple-pay.data';\r\nimport { ICheckoutApplePayProps } from '../definition-extensions/checkout-apple-pay.ext.props.autogenerated';\r\n\r\nconst CheckoutApplyPayView: React.FC> = (props) => {\r\n const { checkoutApplePay, applePayButton, alert } = props;\r\n const [applePayImage, setApplePayImage] = React.useState('');\r\n\r\n React.useEffect(() => {\r\n if (props.config.applePayImage) {\r\n setApplePayImage(`url('${props.config.applePayImage}')`);\r\n }\r\n }, [props.config.applePayImage]);\r\n\r\n if (msdyn365Commerce.isBrowser) {\r\n if (props.config.applePayImage) {\r\n document.documentElement.style.setProperty('--applePayImage', `${applePayImage}`);\r\n document.documentElement.style.setProperty('--applePayWebkit', `none`);\r\n } else {\r\n document.documentElement.style.setProperty('--applePayWebkit', `-apple-pay-button`);\r\n }\r\n }\r\n return (\r\n \r\n {alert}\r\n {applePayButton}\r\n \r\n );\r\n};\r\n\r\nexport default CheckoutApplyPayView;\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\nimport { getUrlSync, IComponent, IComponentProps } from '@msdyn365-commerce/core';\r\nimport { ICartState } from '@msdyn365-commerce/global-state';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\n\r\nexport interface ICartIconData {\r\n cart: ICartState;\r\n}\r\n\r\nexport interface ICartIconComponentProps extends IComponentProps {\r\n className?: string;\r\n}\r\n\r\nexport interface ICartIconComponent extends IComponent {\r\n}\r\n\r\n/**\r\n *\r\n * CartIcon component\r\n * @extends {React.FC}\r\n */\r\nconst CartIcon: React.FC = observer((props: ICartIconComponentProps) => {\r\n const { data: {cart} } = props;\r\n const cartLink = getUrlSync('cart', props.context.actionContext);\r\n const cartItem = cart ? `(${cart.totalItemsInCart})` : '';\r\n const label = `My Cart, ${cartItem} items`;\r\n return (\r\n \r\n
\r\n My Cart {cartItem}\r\n
\r\n
\r\n );\r\n});\r\n\r\n// Following code is been replaced with 'CartIcon' in last line and might be used on later\r\n// @ts-ignore\r\n// export const CartIconComponent: React.FunctionComponent = msdyn365Commerce.createComponent(\r\n// 'CartIcon',\r\n// { component: CartIcon, ...CartIconComponentActions }\r\n// );\r\n\r\nexport default CartIcon;","/*!\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 { Module } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport msdyn365Commerce from '@msdyn365-commerce/core-internal';\r\nimport { ICheckoutApplePayViewProps } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-apple-pay/checkout-apple-pay';\r\nimport { ICheckoutApplePayData } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-apple-pay/checkout-apple-pay.data';\r\nimport { ICheckoutApplePayProps } from '../definition-extensions/checkout-apple-pay.ext.props.autogenerated';\r\n\r\nconst CheckoutApplyPayView: React.FC> = (props) => {\r\n const { checkoutApplePay, applePayButton, alert } = props;\r\n const [applePayImage, setApplePayImage] = React.useState('');\r\n\r\n React.useEffect(() => {\r\n if (props.config.applePayImage) {\r\n setApplePayImage(`url('${props.config.applePayImage}')`);\r\n }\r\n }, [props.config.applePayImage]);\r\n\r\n if (msdyn365Commerce.isBrowser) {\r\n if (props.config.applePayImage) {\r\n document.documentElement.style.setProperty('--applePayImage', `${applePayImage}`);\r\n document.documentElement.style.setProperty('--applePayWebkit', `none`);\r\n } else {\r\n document.documentElement.style.setProperty('--applePayWebkit', `-apple-pay-button`);\r\n }\r\n }\r\n return (\r\n \r\n {alert}\r\n {applePayButton}\r\n \r\n );\r\n};\r\n\r\nexport default CheckoutApplyPayView;\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\nimport { format } from '@msdyn365-commerce-modules/utilities';\r\nimport { getUrlSync, IComponent, IComponentProps } from '@msdyn365-commerce/core';\r\nimport { ICartState } from '@msdyn365-commerce/global-state';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\n\r\nexport interface ICartIconData {\r\n cart: ICartState;\r\n}\r\n\r\nexport interface ICartIconComponentProps extends IComponentProps {\r\n className?: string;\r\n cartLabel: string;\r\n}\r\n\r\nexport interface ICartIconComponent extends IComponent {\r\n}\r\n\r\n/**\r\n *\r\n * CartIcon component\r\n * @extends {React.FC}\r\n */\r\nconst CartIcon: React.FC = observer((props: ICartIconComponentProps) => {\r\n const { cartLabel, data: {cart} } = props;\r\n const cartLink = getUrlSync('cart', props.context.actionContext);\r\n const cartItem = cart ? `(${cart.totalItemsInCart})` : '';\r\n const label = format(cartLabel, cartItem) || `Shopping bag, ${cartItem} items`;\r\n return (\r\n \r\n
\r\n My Cart {cartItem}\r\n
\r\n
\r\n );\r\n});\r\n\r\n// Following code is been replaced with 'CartIcon' in last line and might be used on later\r\n// @ts-ignore\r\n// export const CartIconComponent: React.FunctionComponent = msdyn365Commerce.createComponent(\r\n// 'CartIcon',\r\n// { component: CartIcon, ...CartIconComponentActions }\r\n// );\r\n\r\nexport default CartIcon;","/*!\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 { Module } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport msdyn365Commerce from '@msdyn365-commerce/core-internal';\r\nimport { ICheckoutApplePayViewProps } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-apple-pay/checkout-apple-pay';\r\nimport { ICheckoutApplePayData } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-apple-pay/checkout-apple-pay.data';\r\nimport { ICheckoutApplePayProps } from '../definition-extensions/checkout-apple-pay.ext.props.autogenerated';\r\n\r\nconst CheckoutApplyPayView: React.FC> = (props) => {\r\n const { checkoutApplePay, applePayButton, alert } = props;\r\n const [applePayImage, setApplePayImage] = React.useState('');\r\n\r\n React.useEffect(() => {\r\n if (props.config.applePayImage) {\r\n setApplePayImage(`url('${props.config.applePayImage}')`);\r\n }\r\n }, [props.config.applePayImage]);\r\n\r\n if (msdyn365Commerce.isBrowser) {\r\n if (props.config.applePayImage) {\r\n document.documentElement.style.setProperty('--applePayImage', `${applePayImage}`);\r\n document.documentElement.style.setProperty('--applePayWebkit', `none`);\r\n } else {\r\n document.documentElement.style.setProperty('--applePayWebkit', `-apple-pay-button`);\r\n }\r\n }\r\n return (\r\n \r\n {alert}\r\n {applePayButton}\r\n \r\n );\r\n};\r\n\r\nexport default CheckoutApplyPayView;\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\nimport { format } from '@msdyn365-commerce-modules/utilities';\r\nimport { getUrlSync, IComponent, IComponentProps } from '@msdyn365-commerce/core';\r\nimport { ICartState } from '@msdyn365-commerce/global-state';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\n\r\nexport interface ICartIconData {\r\n cart: ICartState;\r\n}\r\n\r\nexport interface ICartIconComponentProps extends IComponentProps {\r\n className?: string;\r\n cartLabel: string;\r\n}\r\n\r\nexport interface ICartIconComponent extends IComponent {\r\n}\r\n\r\n/**\r\n *\r\n * CartIcon component\r\n * @extends {React.FC}\r\n */\r\nconst CartIcon: React.FC = observer((props: ICartIconComponentProps) => {\r\n const { cartLabel, data: {cart} } = props;\r\n const cartLink = getUrlSync('cart', props.context.actionContext);\r\n const cartItem = cart ? `(${cart.totalItemsInCart})` : '';\r\n const label = format(cartLabel, cartItem) || `Shopping bag, ${cartItem} items`;\r\n return (\r\n \r\n
\r\n My Cart {cartItem}\r\n
\r\n
\r\n );\r\n});\r\n\r\n// Following code is been replaced with 'CartIcon' in last line and might be used on later\r\n// @ts-ignore\r\n// export const CartIconComponent: React.FunctionComponent = msdyn365Commerce.createComponent(\r\n// 'CartIcon',\r\n// { component: CartIcon, ...CartIconComponentActions }\r\n// );\r\n\r\nexport default CartIcon;","/*!\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 { Module } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport msdyn365Commerce from '@msdyn365-commerce/core-internal';\r\nimport { ICheckoutApplePayViewProps } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-apple-pay/checkout-apple-pay';\r\nimport { ICheckoutApplePayData } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-apple-pay/checkout-apple-pay.data';\r\nimport { ICheckoutApplePayProps } from '../definition-extensions/checkout-apple-pay.ext.props.autogenerated';\r\n\r\nconst CheckoutApplyPayView: React.FC> = (props) => {\r\n const { checkoutApplePay, applePayButton, alert } = props;\r\n const [applePayImage, setApplePayImage] = React.useState('');\r\n\r\n React.useEffect(() => {\r\n if (props.config.applePayImage) {\r\n setApplePayImage(`url('${props.config.applePayImage}')`);\r\n }\r\n }, [props.config.applePayImage]);\r\n\r\n if (msdyn365Commerce.isBrowser) {\r\n if (props.config.applePayImage) {\r\n document.documentElement.style.setProperty('--applePayImage', `${applePayImage}`);\r\n document.documentElement.style.setProperty('--applePayWebkit', `none`);\r\n } else {\r\n document.documentElement.style.setProperty('--applePayWebkit', `-apple-pay-button`);\r\n }\r\n }\r\n return (\r\n \r\n {alert}\r\n {applePayButton}\r\n \r\n );\r\n};\r\n\r\nexport default CheckoutApplyPayView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n IGroup,\n IGroupDelivery,\n IGroups,\n IHelp,\n IOrderDetailsViewProps,\n IOrderInformation,\n IOrderSummary,\n IPaymentMethods,\n ISalesLine\n} from '@msdyn365-commerce-modules/order-management';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport const OrderInfomation: React.FC = ({\n orderInformationProps,\n salesId,\n receiptId,\n createdDate,\n count,\n amount,\n channelReferenceId,\n channelName,\n channelAddress,\n note\n}) => (\n \n {channelName}\n {channelAddress}\n {salesId}\n {receiptId}\n {createdDate}\n {count}\n {amount}\n {channelReferenceId}\n {note}\n \n);\n\nexport const SalesLine: React.FC = ({ salesLineProps, salesLine, buyAgainButton, errors }) => (\n \n {salesLine}\n {buyAgainButton}\n {errors}\n \n);\n\nexport const GroupDelivery: React.FC = ({ deliveryProps, heading, count }) => (\n \n {heading}\n {count}\n \n);\n\nexport const Group: React.FC = ({ groupProps, delivery, address, salesLinesProps, salesLines, isCashAndCarryTransaction }) => (\n \n {delivery && }\n \n {salesLines && (\n \n {salesLines.map(salesLine => (\n \n {salesLine.data.deliveryType === 'ship' && salesLine.data.shipment ? salesLine.trackingInfo : null}\n \n {!isCashAndCarryTransaction && salesLine.salesStatus}\n \n ))}\n \n )}\n {!delivery.showTimeslot && address}\n {delivery.showTimeslot && (\n \n {address}\n {delivery.pickupDateTimeslot}\n \n )}\n \n \n);\n\nexport const Groups: React.FC = ({ groupsProps, groups }) => (\n \n {groups.map((group, index) => (\n \n ))}\n \n);\n\nexport const OrderSummary: React.FC = ({\n orderSummaryProps,\n heading,\n subtotal,\n shipping,\n tax,\n totalAmount,\n earnedPoints\n}) => (\n \n {heading}\n {subtotal}\n {shipping}\n {tax}\n {totalAmount}\n {earnedPoints}\n \n);\n\nexport const Payment: React.FC = ({ paymentMethodsProps, title, methods }) => (\n \n {title}\n {methods}\n \n);\n\nexport const Help: React.FC = ({ helpProps, needHelpLabel, helpLineNumberLabel, contactNumber }) => (\n \n {needHelpLabel}\n {helpLineNumberLabel}\n {contactNumber}\n \n);\n\nconst OrderDetailsView: React.FC = ({\n moduleProps,\n viewModes,\n tableViewActions,\n table,\n placedBy,\n heading,\n alert,\n loading,\n orderInfomation,\n orderSummary,\n payment,\n help,\n groups\n}) => {\n return (\n \n {placedBy}\n {heading}\n {alert}\n {loading}\n {orderInfomation && }\n {tableViewActions}\n {viewModes}\n {table}\n {groups && }\n \n {orderSummary && }\n {payment && }\n \n {help && }\n \n );\n};\n\nexport default OrderDetailsView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IHistogramItemViewProps, IRatingsHistogramViewProps } from '@msdyn365-commerce-modules/ratings-reviews';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nconst RatingsHistogramView: React.FC = props => {\n const { heading, histogramItems, histogramProps, moduleProps } = props;\n return (\n \n {heading}\n \n {histogramItems.map(item => {\n return histogramItem(item);\n })}\n \n \n );\n};\n\nconst histogramItem = (props: IHistogramItemViewProps) => {\n return (\n \n {props.starLabel}\n {props.bar}\n {props.percentage}\n \n );\n};\n\nexport default RatingsHistogramView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IReviewModalViewProps } from '@msdyn365-commerce-modules/ratings-reviews';\nimport {\n IReportReviewModalViewProps,\n IReviewCardViewProps,\n IReviewsListState,\n IReviewsListViewProps\n} from '@msdyn365-commerce-modules/ratings-reviews/src/modules/reviews-list';\nimport { IModuleProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nconst ReviewsListview: React.FC = props => {\n const {\n averageRating,\n filterByDropdown,\n moduleProps,\n noReviewsMessage,\n noReviewsWithFilterMessage,\n pageControls,\n refineReviewsProps,\n reportReviewModal,\n reviewsListProps,\n reviewCards,\n reviewCount,\n reviewModal,\n sortByDropdown,\n state,\n userReview\n } = props;\n\n if (!userReview && reviewCards.length === 0 && !state.isFilterApplied) {\n return {noReviewsMessage};\n }\n\n return (\n \n {averageRating}\n {reviewCount}\n \n {sortByDropdown}\n {filterByDropdown}\n \n \n {userReview && buildReviewCard(userReview)}\n {reviewCards.map(review => {\n return buildReviewCard(review);\n })}\n \n {reviewCards.length === 0 && state.isFilterApplied && noReviewsWithFilterMessage}\n {pageControls}\n {createReviewModal(reviewModal, moduleProps)}\n {createReportModal(reportReviewModal, state)}\n \n );\n};\n\nconst buildReviewCard = (props: IReviewCardViewProps) => {\n return (\n \n \n {props.rating}\n {props.name}\n {props.date}\n \n \n \n {props.reviewTitle}\n {props.reviewText}\n \n \n {props.responseName}\n {props.responseDate}\n {props.responseText}\n \n \n {props.ratingHelpfulLabel}\n {props.like}\n {props.dislike}\n {props.edit}\n {props.report}\n \n \n \n );\n};\n\nconst createReviewModal = (props: IReviewModalViewProps, moduleProps: IModuleProps): JSX.Element => {\n return (\n \n {props.modalHeader}\n \n \n \n {props.rating}\n {props.ratingLabel}\n \n \n {props.titleLabel}\n {props.titleInput}\n \n \n {props.textLabel}\n {props.textInput}\n \n {props.privacyPolicyUrl}\n {props.error}\n \n \n \n {props.submitButton}\n {props.cancelButton}\n \n \n );\n};\n\nconst createReportModal = (props: IReportReviewModalViewProps, state: IReviewsListState): JSX.Element => {\n return (\n \n {state.reported ? props.headerSubmitted : props.header}\n \n {state.reported ? props.reportSubmittedMessage : [props.reportMessage, props.radioButtons, props.error]}\n \n {state.reported ? props.succesfulButton : [props.submitButton, props.cancelButton]}\n \n );\n};\n\nexport default ReviewsListview;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { BackToTop, getTelemetryObject, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IBackTopFooterProps } from './back-top-footer.props.autogenerated';\n\n/**\n *\n * BackTopFooter component.\n * @extends {React.PureComponent>}\n */\nclass BackTopFooter extends React.PureComponent> {\n private readonly editProps: Msdyn365.ITextEditProps = {\n requestContext: this.props.context.request,\n onEdit: (event: Msdyn365.ContentEditableEvent) => (this.props.config.backtoTopText = event.target.value)\n };\n\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IBackTopFooterProps<{}>) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element | null {\n if (!this.props.config.destination) {\n this.props.telemetry.error('BackToTop.destination has not been provided, module wont render.');\n return null;\n }\n\n return (\n \n );\n }\n}\n\nexport default BackTopFooter;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { Node } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport classnames from 'classnames';\n\nimport { SalesOrder } from '@msdyn365-commerce/retail-proxy';\n\n/**\n * Class names used in component.\n */\nconst componentClassName = 'ms-order-history-with-search-and-filters-header';\nconst headingClassName = `${componentClassName}__heading`;\nconst orderCountClassName = `${componentClassName}__order-count`;\n\n/**\n * IOrderHistoryWithSearchAndFiltersHeaderResources interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersHeaderResources {\n orderCountLabel: string;\n ordersCountLabel: string;\n}\n\n/**\n * IOrderHistoryWithSearchAndFiltersHeaderData interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersHeaderData {\n salesOrders: SalesOrder[];\n}\n\n/**\n * IOrderHistoryWithSearchAndFiltersHeaderProps interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersHeaderProps\n extends Msdyn365.IComponentProps {\n className?: string;\n resources: IOrderHistoryWithSearchAndFiltersHeaderResources;\n textProps: Msdyn365.ITextProps;\n showOrderCount: boolean;\n extraActions?: React.ReactNode;\n onChange(event: Msdyn365.ContentEditableEvent): void;\n}\n\n/**\n * OrderHistoryWithSearchAndFiltersHeader component.\n * @param props - Configuration of the component.\n * @returns React node.\n */\nconst OrderHistoryWithSearchAndFiltersHeaderFunctionalComponent: React.FC = (\n props: IOrderHistoryWithSearchAndFiltersHeaderProps\n) => {\n const {\n resources,\n data: { salesOrders },\n textProps,\n showOrderCount,\n extraActions\n } = props;\n\n const orderCount = salesOrders?.length;\n const orderCountText = `(${orderCount} ${orderCount === 1 ? resources?.orderCountLabel : resources?.ordersCountLabel})`;\n\n return (\n \n {textProps?.text && (\n \n )}\n {showOrderCount && {orderCountText}}\n {extraActions}\n \n );\n};\n\n/**\n * OrderHistoryWithSearchAndFiltersHeader component.\n */\nexport const OrderHistoryWithSearchAndFiltersHeaderComponent: React.FunctionComponent = Msdyn365.msdyn365Commerce.createComponent<\n // @ts-expect-error\n IOrderHistoryWithSearchAndFiltersHeaderProps\n>('OrderHistoryWithSearchAndFiltersHeaderComponent', { component: OrderHistoryWithSearchAndFiltersHeaderFunctionalComponent });\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport {\n Button,\n ITelemetryContent,\n TelemetryConstant,\n getPayloadObject,\n getTelemetryAttributes\n} from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport classnames from 'classnames';\n\n/**\n * Class names used in component.\n */\nconst componentClassName = 'ms-order-history-with-search-and-filters-view-mode-selector';\nconst detailsViewClassName = `${componentClassName}__detailed-view`;\nconst listViewClassName = `${componentClassName}__list-view`;\nconst viewSelectedClassName = `${componentClassName}__selected`;\n\n/**\n * IOrderHistoryWithSearchAndFiltersViewModeResources interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersViewModeResources {\n listViewOptionAriaLabel?: string;\n detailedViewOptionAriaLabel?: string;\n}\n\n/**\n * OrderHistoryWithSearchAndFiltersViewModeState interface.\n */\nexport enum OrderHistoryWithSearchAndFiltersViewModeState {\n DetailedView,\n ListView\n}\n\n/**\n * IOrderHistoryWithSearchAndFiltersViewModeProps interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersViewModeProps extends IComponentProps<{}> {\n className?: string;\n resources?: IOrderHistoryWithSearchAndFiltersViewModeResources;\n currentViewModeState: OrderHistoryWithSearchAndFiltersViewModeState;\n telemetryContent?: ITelemetryContent;\n onClick(state: OrderHistoryWithSearchAndFiltersViewModeState): void;\n}\n\n/**\n * OrderHistoryWithSearchAndFiltersViewMode component.\n * @param props - Configuration of the component.\n * @returns React node.\n */\nconst OrderHistoryWithSearchAndFiltersViewModeFunctionalComponent: React.FC = (\n props: IOrderHistoryWithSearchAndFiltersViewModeProps\n) => {\n const [viewModeState, setViewModeState] = React.useState(props.currentViewModeState);\n\n const onClickHandler = (newViewModeState: OrderHistoryWithSearchAndFiltersViewModeState) => {\n setViewModeState(newViewModeState);\n props.onClick(newViewModeState);\n };\n\n // define telemetry attributes\n const viewModeDetailedViewAttributes = getTelemetryAttributes(\n props.telemetryContent!,\n getPayloadObject('click', props.telemetryContent!, `${TelemetryConstant.ViewMode} - Detailed view`)\n );\n const viewModeListViewAttributes = getTelemetryAttributes(\n props.telemetryContent!,\n getPayloadObject('click', props.telemetryContent!, `${TelemetryConstant.ViewMode} - List view`)\n );\n\n return (\n
\n onClickHandler(OrderHistoryWithSearchAndFiltersViewModeState.DetailedView)}\n {...viewModeDetailedViewAttributes}\n />\n onClickHandler(OrderHistoryWithSearchAndFiltersViewModeState.ListView)}\n {...viewModeListViewAttributes}\n />\n
\n );\n};\n\n/**\n * OrderHistoryWithSearchAndFiltersViewMode component.\n */\nexport const OrderHistoryWithSearchAndFiltersViewModeComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IOrderHistoryWithSearchAndFiltersViewModeProps\n>('OrderHistoryWithSearchAndFiltersViewModeComponent', { component: OrderHistoryWithSearchAndFiltersViewModeFunctionalComponent });\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IModuleProps, INodeProps, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { ITabItemData } from './tab-item.data';\nimport { ITabItemProps } from './tab-item.props.autogenerated';\n\nexport interface ITabItemViewProps {\n TabContentContainer: IModuleProps;\n TabHeaderContainer: IModuleProps;\n tabSlots: INodeProps;\n TabItemContent: INodeProps;\n tabItemType?: TabItemType;\n tabHeader: React.ReactNode;\n}\n\nexport interface ITabItemExtentedProps extends ITabItemProps {\n tabItemType?: TabItemType;\n isSelected?: boolean;\n itemIndex?: number;\n tabId?: string;\n}\n\nexport enum TabItemType {\n TabHeader,\n TabContent\n}\n\n/**\n *\n * TabItem component.\n * @extends {React.Component}\n */\n@observer\nclass TabItem extends React.PureComponent {\n private readonly moduleContentClassName: string = 'ms-tab-item-content';\n\n private readonly moduleHeaderClassName: string = 'ms-tab-item-header';\n\n constructor(props: ITabItemProps) {\n super(props);\n this._renderTabHeader = this._renderTabHeader.bind(this);\n }\n\n public render(): JSX.Element {\n const { slots, renderView, config, data, isSelected, itemIndex } = this.props;\n const index = itemIndex || 0;\n const contentID = getContentID(index, this.props.tabId || '');\n const activeContentIDResult = data && data.activeTabState && data.activeTabState.result;\n const shown =\n activeContentIDResult &&\n activeContentIDResult.tabId === this.props.tabId &&\n activeContentIDResult.activeContentIndex !== undefined\n ? activeContentIDResult.activeContentIndex === index\n : isSelected || false;\n const viewProps = {\n ...this.props,\n TabContentContainer: {\n moduleProps: this.props,\n className: classnames(this.moduleContentClassName, config.className)\n },\n TabHeaderContainer: {\n moduleProps: this.props,\n className: classnames(this.moduleHeaderClassName, config.className)\n },\n TabItemContent: {\n className: 'ms-tab-item-content__content',\n tag: 'section' as NodeTag,\n 'aria-hidden': !shown,\n role: 'tabpanel',\n tabIndex: shown ? 0 : -1,\n id: contentID\n },\n tabHeader: this._renderTabHeader(),\n tabSlots: slots\n };\n return renderView(viewProps) as React.ReactElement;\n }\n\n private _renderTabHeader(): React.ReactNode {\n return <>{this.props.config.tabItemTitle};\n }\n}\n\nexport const getContentID = (index: number, id: string) => {\n return `tab-item-content-${id}-${index}`;\n};\n\nexport default TabItem;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ITabItemViewProps, TabItemType } from './tab-item';\n\nconst TabItemView: React.FC = props => {\n const { tabItemType, tabSlots, TabContentContainer, TabHeaderContainer, TabItemContent, tabHeader } = props;\n\n switch (tabItemType) {\n case TabItemType.TabContent:\n return (\n \n \n {tabSlots &&\n tabSlots.tabItemContent &&\n tabSlots.tabItemContent.length &&\n _renderTabItemContent(tabSlots.tabItemContent)}\n \n \n );\n case TabItemType.TabHeader:\n return {tabHeader};\n default:\n return null;\n }\n};\n\nconst _renderTabItemContent = (items: React.ReactNode[]): JSX.Element | null => {\n return (\n <>\n {items && items.length > 0\n ? items.map((item: React.ReactNode, index: number) => {\n return {item};\n })\n : null}\n \n );\n};\nexport default TabItemView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as MsDyn365 from '@msdyn365-commerce/core';\nimport { IModuleProps, INodeProps, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { createTabStateInput, getContentID, TabItemType } from '../..';\nimport { ITabData } from './tab.data';\nimport { ITabProps } from './tab.props.autogenerated';\n\n/**\n *\n * Tab component.\n * @extends {React.PureComponent>}\n */\n\nexport interface ICallToActionProps {\n link: INodeProps[];\n}\n\nexport interface ITabViewProps extends ITabProps<{}> {\n heading?: React.ReactNode;\n TabContainer: IModuleProps;\n headerSection: INodeProps;\n tabHeaderSection: INodeProps;\n tabsSection: INodeProps;\n tabItemContainer: INodeProps;\n tabHeaders: React.ReactNode;\n tabContents: React.ReactNode;\n}\n\nexport interface ITabViewStates {\n currentTabIndex: number;\n}\n\n/**\n *\n * Tab component.\n * @extends {React.Component>}\n */\n@observer\nclass Tab extends React.Component, ITabViewStates> {\n public readonly tabIndexQuery: string = 'activeTab';\n\n private activeLink: HTMLLIElement | null;\n\n constructor(props: ITabProps) {\n super(props);\n const { defaultTabIndex } = this.props.config;\n const { slots } = this.props;\n const slotLength = (slots && slots.tabItems && slots.tabItems.length) || 0;\n let initialIndex = defaultTabIndex && defaultTabIndex <= slotLength && defaultTabIndex > 0 ? defaultTabIndex - 1 : 0;\n const queryString: string =\n (this.props.context &&\n this.props.context.request &&\n this.props.context.request.query &&\n this.props.context.request.query.activeTab) ||\n '';\n let queryTabIndex: number = 0;\n if (queryString.indexOf(':') > 0) {\n const arr = queryString.split(':');\n const moduleId = arr[0];\n if (moduleId === this.props.id) {\n queryTabIndex = Number.parseInt(arr[1], 10);\n }\n }\n initialIndex = queryTabIndex > 0 && queryTabIndex <= slotLength ? queryTabIndex - 1 : initialIndex;\n this.state = { currentTabIndex: initialIndex };\n\n this._getTabHeader = this._getTabHeader.bind(this);\n this._getTabContent = this._getTabContent.bind(this);\n this._onClick = this._onClick.bind(this);\n this._onKeyDown = this._onKeyDown.bind(this);\n this._setGetParameter = this._setGetParameter.bind(this);\n this.activeLink = null;\n }\n\n public shouldComponentUpdate(nextProps: ITabProps, nextState: ITabViewStates): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { slots } = this.props;\n const { heading, className } = this.props.config;\n\n const headingComponent = heading && (\n \n );\n const slotLength = (slots && slots.tabItems && slots.tabItems.length) || 0;\n\n // Const queryTabIndex = this.props.context && this.props.context.request && this.props.context.request.query && +this.props.context.request.query.activeTabIndex || 0;\n // let activeIndex = defaultTabIndex && defaultTabIndex <= slotLength && defaultTabIndex > 0 ? defaultTabIndex - 1 : 0;\n // activeIndex = queryTabIndex > 0 && queryTabIndex <= slotLength ? queryTabIndex - 1 : activeIndex;\n\n const tabViewProps = {\n ...this.props,\n TabContainer: {\n moduleProps: this.props,\n className: classnames('ms-tab', className)\n },\n headerSection: { className: 'ms-tab-header-section' },\n tabsSection: { className: 'ms-tab-tabs-section', tag: 'ul' as NodeTag, role: 'tablist' },\n heading: headingComponent,\n config: this.props && this.props.config,\n tabItemContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-tab-content-section'\n },\n tabContents: slotLength > 0 && slots.tabItems.map((item: React.ReactNode, index: number) => this._getTabContent(item, index)),\n tabHeaders: slotLength > 0 && slots.tabItems.map((item: React.ReactNode, index: number) => this._getTabHeader(item, index))\n };\n return this.props.renderView(tabViewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: MsDyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n public componentDidUpdate(): void {\n const { data } = this.props;\n if (!this.props.context.request.params.isEditor) {\n const dataActionTabId = data && data.activeTabState && data.activeTabState.result && data.activeTabState.result.tabId;\n if (dataActionTabId) {\n if (this.props.id === dataActionTabId) {\n this.activeLink && this.activeLink.focus();\n }\n } else {\n const queryString: string =\n (this.props.context &&\n this.props.context.request &&\n this.props.context.request.query &&\n this.props.context.request.query.activeTab) ||\n '';\n if (queryString.indexOf(':') > 0) {\n const arr = queryString.split(':');\n const moduleId = arr[0];\n if (moduleId === this.props.id) {\n this.activeLink && this.activeLink.focus();\n }\n }\n }\n }\n }\n\n /**\n *Set the activate link value on tab click.\n * @param link -Ref link value.\n */\n private readonly _refHandler = (link: HTMLLIElement | null) => {\n this.activeLink = link;\n };\n\n private _getTabHeader(item: React.ReactNode, index: number): React.ReactNode {\n const { data } = this.props;\n const activeContentIndex =\n data && data.activeTabState && data.activeTabState.result && data.activeTabState.result.activeContentIndex;\n const dataActionTabId = data && data.activeTabState && data.activeTabState.result && data.activeTabState.result.tabId;\n const selected =\n activeContentIndex !== undefined && dataActionTabId === this.props.id\n ? activeContentIndex === index\n : this.state.currentTabIndex === index;\n const contentID = getContentID(index, this.props.id);\n\n return (\n \n \n {React.cloneElement(item as React.ReactElement, {\n tabItemType: TabItemType.TabHeader,\n isSelected: index === this.state.currentTabIndex,\n itemIndex: index,\n tabId: this.props.id\n })}\n \n \n );\n }\n\n private readonly _onClick = (index: number, id: string) => (e: React.MouseEvent) => {\n const activeTabState = { activeContentIndex: index, tabId: id };\n this.props.context.actionContext.update(createTabStateInput(activeTabState), activeTabState);\n this.setState({ currentTabIndex: index });\n\n // Update query paramter\n const requestContext = this.props.context.request;\n const newUrl = this._setGetParameter(requestContext, this.tabIndexQuery, `${this.props.id}:${String(index + 1)}`);\n requestContext && window.history.pushState({ path: newUrl }, '', newUrl);\n };\n\n private readonly _onKeyDown = (index: number, id: string) => (e: React.KeyboardEvent) => {\n if (e.keyCode === 13) {\n const activeTabState = { activeContentIndex: index, tabId: id };\n this.props.context.actionContext.update(createTabStateInput(activeTabState), activeTabState);\n this.setState({ currentTabIndex: index });\n\n // Update query paramter\n const requestContext = this.props.context.request;\n const newUrl = this._setGetParameter(requestContext, this.tabIndexQuery, `${this.props.id}:${String(index + 1)}`);\n requestContext && window.history.pushState({ path: newUrl }, '', newUrl);\n }\n\n if (e.keyCode === 39 || e.keyCode === 37) {\n const { slots } = this.props;\n const slotLength = (slots && slots.tabItems && slots.tabItems.length) || 0;\n\n if (e.keyCode === 39) {\n // If we're at the end, go to the start\n if (index + 1 === slotLength) {\n index = -1;\n }\n const activeTabState = { activeContentIndex: index + 1, tabId: id };\n this.props.context.actionContext.update(createTabStateInput(activeTabState), activeTabState);\n this.setState({ currentTabIndex: index + 1 });\n\n // Update query paramter\n const requestContext = this.props.context.request;\n const newUrl = this._setGetParameter(requestContext, this.tabIndexQuery, `${this.props.id}:${String(index + 2)}`);\n requestContext && window.history.pushState({ path: newUrl }, '', newUrl);\n\n // Move left\n } else if (e.keyCode === 37) {\n // If we're at the start, move to the end\n if (index === 0) {\n index = slotLength;\n }\n const activeTabState = { activeContentIndex: index - 1, tabId: id };\n this.props.context.actionContext.update(createTabStateInput(activeTabState), activeTabState);\n this.setState({ currentTabIndex: index - 1 });\n\n // Update query paramter\n const requestContext = this.props.context.request;\n const newUrl = this._setGetParameter(requestContext, this.tabIndexQuery, `${this.props.id}:${String(index)}`);\n requestContext && window.history.pushState({ path: newUrl }, '', newUrl);\n }\n }\n };\n\n private _getTabContent(item: React.ReactNode, index: number): React.ReactNode {\n return (\n \n {React.cloneElement(item as React.ReactElement, {\n tabItemType: TabItemType.TabContent,\n isSelected: index === this.state.currentTabIndex,\n itemIndex: index,\n tabId: this.props.id\n })}\n \n );\n }\n\n private _setGetParameter(requestContext: MsDyn365.IRequestContext, paramName: string, paramValue: string): string {\n let url;\n\n if (MsDyn365.msdyn365Commerce.isBrowser) {\n url = new URL(window.location.href);\n } else {\n url = new URL(requestContext.url.requestUrl.href);\n }\n\n const params = new window.URLSearchParams(url.search);\n params.set(paramName, paramValue);\n url.search = decodeURIComponent(params.toString());\n return url.toString();\n }\n}\n\nexport default Tab;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ITabViewProps } from './tab';\n\nconst tabView: React.FC = props => {\n const { heading, TabContainer, tabHeaders, tabContents } = props;\n if (!props.heading && !props.tabHeaders && !props.tabContents) {\n props.context.telemetry.error('Tab content is empty, module wont render');\n return null;\n }\n return (\n \n {heading}\n {tabHeaders}\n {tabContents}\n \n );\n};\n\nexport default tabView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../tile-list-item.props.autogenerated';\n\n/**\n * Tile List links.\n */\nexport interface ITileListLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n telemetryContent: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\n/**\n *\n * ITileListLinks component.\n * @extends {React.PureComponent}\n */\nexport class TileListLinks extends React.PureComponent {\n public render(): JSX.Element {\n const editableLinks = this._mapEditableLinks(this.props.links);\n return (\n
\n {editableLinks && ArrayExtensions.hasElements(editableLinks) ? (\n \n ) : null}\n
\n );\n }\n\n /**\n * ITileListLinks component.\n * @param linkdata - Link data.\n * @returns Editable links.\n */\n private readonly _mapEditableLinks = (linkdata: ILinksData[]): Msdyn365.ILinksData[] | null => {\n if (!ArrayExtensions.hasElements(linkdata)) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n for (const link of linkdata) {\n // Construct telemetry attribute to render\n const payLoad = getPayloadObject('click', this.props.telemetryContent, '', '');\n const linkText = link.linkText ? link.linkText : '';\n payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.props.telemetryContent, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-tile-list__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'button',\n additionalProperties: attributes,\n onClick: onTelemetryClick(this.props.telemetryContent, payLoad, linkText)\n };\n editableLinks.push(editableLink);\n }\n\n return editableLinks;\n };\n}\nexport default TileListLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { TileListLinks } from './components';\nimport { IHeadingData, ITileListItemProps } from './tile-list-item.props.autogenerated';\n\n/**\n * Tile-list-item view props.\n */\nexport interface ITileListItemViewProps extends ITileListItemProps<{}> {\n heading?: React.ReactNode;\n paragraph?: React.ReactNode;\n links?: React.ReactNode;\n backgroundImage?: React.ReactNode;\n thumbnailImage?: React.ReactNode;\n tileListItem: IModuleProps;\n tileListContainer: INodeProps;\n tileListImageContainer: INodeProps;\n tileListThumbnailImageContainer: INodeProps;\n tileListHeadingContainer: INodeProps;\n}\n\n/**\n *\n * TileListItem component.\n * @extends {React.PureComponent>}\n */\nexport class TileListItem extends React.PureComponent> {\n private readonly _telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n public constructor(props: ITileListItemProps<{}>) {\n super(props);\n }\n\n public render(): JSX.Element {\n const { heading, paragraph, backgroundImage, thumbnailImage, redirectionUrl, links } = this.props.config;\n const tileListLinks = links && ArrayExtensions.hasElements(links) && (\n \n );\n const tileListLinkContainer = {\n tag: 'a' as NodeTag,\n className: 'ms-tile-list-container',\n role: 'link',\n href: redirectionUrl?.linkUrl.destinationUrl,\n 'aria-label': redirectionUrl?.ariaLabel,\n target: redirectionUrl?.openInNewTab ? '_blank' : undefined\n };\n\n const tileListButtonContainer = {\n tag: 'button' as NodeTag,\n className: 'ms-tile-list-container'\n };\n const viewProps: ITileListItemViewProps = {\n ...this.props,\n heading: this._createHeading(heading),\n paragraph: this._createParagraph(paragraph),\n backgroundImage: this._renderBackgroundImage(backgroundImage),\n thumbnailImage: this._renderThumbnailImage(thumbnailImage),\n links: tileListLinks,\n tileListItem: {\n moduleProps: this.props,\n className: ''\n },\n tileListContainer: redirectionUrl ? tileListLinkContainer : tileListButtonContainer,\n tileListImageContainer: {\n className: 'ms-tile-list__image'\n },\n tileListThumbnailImageContainer: {\n className: 'ms-tile-list__thumbnail_image',\n 'aria-hidden': 'true'\n },\n tileListHeadingContainer: {\n className: 'ms-tile-list__heading'\n }\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Handles heading content change event.\n * @param event - Content editable event.\n */\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n /**\n * Handles paragraph content change event.\n * @param event - Content editable event.\n */\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.paragraph = event.target.value;\n };\n\n /**\n * Handles paragraph content change event.\n * @param linkIndex - Index of link in linkarray.\n * @returns Void.\n */\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent): void => {\n if (this.props.config.links?.[Number(linkIndex)]) {\n this.props.config.links[Number(linkIndex)].linkText = event.target.value;\n }\n };\n\n private _createParagraph(text?: Msdyn365.RichText): React.ReactNode | null {\n if (!text) {\n return null;\n }\n return (\n \n );\n }\n\n private _createHeading(heading?: IHeadingData): React.ReactNode | null {\n if (!heading) {\n return null;\n }\n if (StringExtensions.isNullOrWhitespace(heading.text)) {\n return null;\n }\n\n return (\n \n );\n }\n\n private _renderBackgroundImage(item?: Msdyn365.IImageData, isAriaHiddenAttribute?: boolean): React.ReactNode | null {\n // If image is null, we want to render the placeholder SVG - by passing image data with empty src\n\n const defaultImageSettings: Msdyn365.IImageSettings = {\n viewports: {\n xs: { q: 'w=328&h=412&m=6', w: 328, h: 412 },\n sm: { q: 'w=328&h=412&m=6', w: 328, h: 412 },\n md: { q: 'w=315&h=412&m=6', w: 315, h: 412 },\n lg: { q: 'w=315&h=412&m=6', w: 315, h: 412 },\n xl: { q: 'w=315&h=412&m=6', w: 315, h: 412 }\n },\n lazyload: true\n };\n const verifiedImageSettings = item?.imageSettings?.viewports ? item.imageSettings : defaultImageSettings;\n\n return (\n \n );\n }\n\n private _renderThumbnailImage(\n item?: Msdyn365.IImageData,\n itemImageSettings?: Msdyn365.IImageSettings,\n isAriaHiddenAttribute?: boolean\n ): React.ReactNode | null {\n if (!item) {\n return null;\n }\n if (StringExtensions.isNullOrWhitespace(item.src)) {\n return null;\n }\n\n return (\n \n );\n }\n}\n\nexport default TileListItem;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ITileListItemViewProps } from './tile-list-item';\n\n/**\n *\n * ITileListItemViewProps component.\n * @param props - Component props.\n * @returns TileListView.\n */\nconst renderTileListItemContent = (props: ITileListItemViewProps): JSX.Element => {\n const {\n heading,\n paragraph,\n backgroundImage,\n links,\n thumbnailImage,\n tileListContainer,\n tileListImageContainer,\n tileListThumbnailImageContainer,\n tileListHeadingContainer\n } = props;\n\n return (\n \n {backgroundImage}\n \n {heading}\n {paragraph}\n {links}\n \n {thumbnailImage}\n \n );\n};\n\n/**\n *\n * TileListItemViewProps component.\n * @param props - Component props.\n * @returns TileListView.\n */\nexport const TileListItemViewComponent: React.FC = props => {\n const { tileListItem } = props;\n return {renderTileListItemContent(props)};\n};\n\nexport default TileListItemViewComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n getTelemetryObject,\n Heading,\n IComponentNodeProps,\n INodeProps,\n ISingleSlideCarouselProps,\n ITelemetryContent,\n NodeTag,\n SingleSlideCarousel\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { ITileListProps, ITitleData } from './tile-list.props.autogenerated';\n\n/**\n * Tile-list view props.\n */\nexport interface ITileListViewProps extends ITileListProps<{}> {\n title?: React.ReactNode;\n tiles: React.ReactNode[];\n tileItemContainer: INodeProps;\n tileListContainer: INodeProps;\n tileListHeading: INodeProps;\n singleSlideCarouselComponentProps: INodeProps;\n}\n\n/**\n *\n * TileList component.\n * @extends {React.PureComponent>}\n */\nexport class TileList extends React.PureComponent> {\n private readonly _telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n private static _createHeading(heading?: ITitleData): React.ReactNode | null {\n if (!heading || !heading.text || StringExtensions.isNullOrWhitespace(heading.text)) {\n return null;\n }\n return ;\n }\n public constructor(props: ITileListProps<{}>) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { resources } = this.props;\n const { title, className } = this.props.config;\n const propsCarousel: IComponentNodeProps = {\n tag: SingleSlideCarousel,\n className: this.props.config.className ?? '',\n flipperPrevLabel: resources.flipperPrevious,\n flipperNextLabel: resources.flipperNext,\n parentId: this.props.id,\n telemetryContent: this._telemetryContent,\n vertical: false\n };\n\n const viewProps = {\n ...this.props,\n title: TileList._createHeading(title),\n singleSlideCarouselComponentProps: propsCarousel,\n tileItemContainer: {\n tag: 'li' as NodeTag,\n className: 'ms-tile__item',\n role: 'listitem'\n },\n tileListContainer: { className: classnames('ms-tile-list', className) },\n tileListHeading: { className: 'ms-tile-list__heading' },\n tiles: this.props.slots.content\n };\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n}\n\nexport default TileList;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Node } from '@msdyn365-commerce-modules/utilities';\nimport React, { ReactNode } from 'react';\n\nimport { ITileListViewProps } from './tile-list';\n\n/**\n * View component.\n * @param props - The view properties.\n * @returns Returns props.\n */\nexport const tileListView: React.FC = props => {\n const { title, tiles, tileListContainer, tileListHeading, tileItemContainer, singleSlideCarouselComponentProps } = props;\n return (\n \n {title}\n \n {tiles.map((tileItem: ReactNode, index: number) => {\n const keyIndex = `tile-list-item__${index}`;\n return (\n \n {tileItem}\n \n );\n })}\n \n \n );\n};\n\nexport default tileListView;\n"],"names":["TourIFrame","React","render","trueTourId","this","props","iframeId","sandbox","src","frameBorder","allow","title","id","console","warn","VimeoIFrame","vimeoId","allowFullScreen","YoutubeIFrame","youtubeId","AgeGateCookieName","AgeGate","constructor","super","_setCookie","bind","config","cookie","context","request","cookies","window","location","hostname","setConsentCookie","error","log","_isAge21","_isPrivacyPage","Modal","modalClassName","autoFocus","fade","isOpen","centered","zIndex","applicationNode","ModalBody","className","_newImage","_oldImage","ageGateBody","ageGateAgreement","onClick","ageGateBold","ageGateCTA","_privacyRightsLink","_myInformationLink","privacyLink","URL","linkUrl","destinationUrl","origin","pathname","_closeModal","setState","set","path","maxAge","cookieMaxAge","ageGateCookie","get","undefined","value","image","ageGateImage","defaultImageSettings","viewports","xs","q","w","h","lg","lazyload","Image","Object","assign","gridSettings","imageSettings","newImage","ageGateLogo","alt","link","ageGateMyInformation","href","ariaLabel","target","openInNewTab","rel","linkText","ageGatePrivacyRights","TextContentBlockComponent","_isModalOpen","_modalStateToFalse","_modalStateToTrue","_backgroundImage","_category","_title","_summary","_copy","_callToAction","_modalState","newState","copy","contentBlockNoHeadings","dangerouslySetInnerHTML","getRichTextHtml","text","Heading","summary","category","backgroundImage","imageGridSettings","callToActionYoutube","callToActionLink","ctaLink","_callToActionInModal","CallToAction","callToActionText","modalId","onKeyPress","role","tabIndex","toggle","ModalHeader","__decorate","observable","observer","MediaContentBlockComponent","_media","mediaDisplayImage","mediaDisplayVimeo","mediaDisplayTrueTour","_imageMedia","_vimeoMedia","_tourMedia","TrueTourIFrame","mediaDisplayBackdrop","_constructImage","ContentWithMedia","classname","_leftColumn","_rightColumn","orientation","_textColumn","_mediaColumn","slots","contentBlockConfig","textBackgroundImage","textCallToActionLink","textCallToActionText","textCallToActionYoutube","textCategory","textCopy","textSummary","textTitle","Form","ref","submit","current","_this$props","cssModule","inline","tag","innerRef","label","attributes","_objectWithoutProperties","_excluded","Tag","classes","mapToCssModules","classNames","defaultProps","GiftCardBalance","_this","state","isFetchingGiftCard","giftCardNumber","errorMessage","giftCardMessage","inputState","onChange","e","_getGiftCardBalance","getGiftCardInquiryAsync","callerContext","actionContext","then","activeGiftCard","Error","Id","_getGiftCardBalanceMessage","replace","BalanceInCardCurrency","BalanceCurrencyCode","catch","setError","format","resources","invalidGiftCardErrorMessage","finally","input","_giftCardNumberInputRef","focus","_getFormattedPrice","price","arguments","length","currencyCode","cultureFormatter","formatCurrency","giftCardId","giftCardBalanceAmount","giftCardCurrencyCode","giftCardLastFour","substring","giftCardBalance","giftCardCurrency","giftCardBalanceMessage","_getUnauthorizedTagMessage","_handleSubmit","componentDidMount","user","isAuthenticated","unauthorizedUserMessage2","onSubmit","giftCardLableText","type","autoComplete","includes","giftCardButtonText","color","disabled","preventDefault","emptyInputError","signInUrl","unauthorizedUserMessage1","unauthorizedUserMessage3","TextInputGroup","_internalValue","_errorMessage","_isFirstBlur","initialValue","isValid","_valueChanged","_blurred","typeSettings","useDatePicker","min","minDate","htmlFor","placeholder","required","onBlur","htmlProps","_jsxErrorMessage","event","currentlyInvalid","MailingListInputGroup","_formStructure","name","validity","email","regex","zip","_handleValidityUpdate","_handleValueFinish","_handleFormExport","_setExternalGroups","keys","map","fieldName","field","redirectEmail","urlQuery","search","URLSearchParams","key","externalGroup","labelText","_isFormValid","submitText","onFinish","find","fieldData","validationText","test","MailingListSignupInput","shouldCacheOutput","getCacheKey","getCacheObjectType","dataCacheType","createMailingListInput","inputData","appContext","mailingListID","mailingListSourceID","app","insertMailingListInput","zipCode","async","mailingListAction","ctx","execute","Msdyn365","action","MAILING_FORM_COOKIE","age","MailingListForm","displayInPopup","isSubmittedSuccessfully","onFinished","_signupSuccessJSX","_mailingListJSX","layout","confirmationText","RichTextComponent","groups","constructMailingListGroupsFromResources","subtitle","description","submitButtonText","mailingListForm__submitButton","dataSet","requestFullfilled","IsSaved","isEssential","mailingListForm__emailServerInvalid","JSON","stringify","mailingListForm__emailLabel","mailingListForm__emailValidation","mailingListForm__emailAriaLabel","mailingListForm__nameLabel","mailingListForm__nameValidation","mailingListForm__nameAriaLabel","mailingListForm__zipLabel","mailingListForm__zipValidation","mailingListForm__zipAriaLabel","enablePlaceholders","placeholders","PopupModal","_cookieRecieved","_cookieRecievedPreForm","_delayStarted","_popupReady","_popupOpen","_cookie","remindTime","_remindLaterClose","_dismissClose","_cookieExist","_startCookiePolling","_startDelay","closeText","remindMeLaterText","disableForSignIn","button","horizontalPosition","verticalPosition","_renderedModules","interval","setInterval","document","clearInterval","modules","slot","index","_getCookiesDirectly","dismissTime","setTimeout","delay","split","forEach","curName","trim","deltaHoursFromToday","now","Date","setHours","getHours","expires","status","dataStates","ShippingPopup","_toggleModal","renderView","_objectSpread","modalState","toggleModal","scrollbarWidth","innerWidth","body","clientWidth","style","top","scrollY","documentElement","setProperty","shippingPopup__shippingModalTitle","shippingPopup__shippingModalDescription","shippingPopup__shippingModalLegend","states","statesSettings","listStyle","filter","shippingButtonText","Breadcrumb","data","breadcrumbData","categoryData","result","_getCategory","allWinesCategoryId","_renderBreadcrumbs","categories","currentUrl","searchedCategory","Children","child","Slug","_isAllWines","RecordId","Url","_getParentBreadcrumbText","isAllWinesPage","allWinesBreadcrumbLink","staticBreadcrumbItemText","_getParentBreadcrumbLink","staticBreadcrumbItemLink","separator","breadcrumbSeparator","staticText","staticBreadcrumbItemLevel2Link","lastBreadcrumbLink","lastBreadcrumbText","staticBreadcrumbItemLevel2Text","Name","HEIGHT","Timeline","yearPositions","yearCenter","minimalImageSettings","xl","disableLazyLoad","currentSlide","timelineItems","timelineItemTransition","_nextItem","_previousItem","_handleItemChange","timelineInterval","_getYearPositions","currentItem","requestContext","paddingTop","paddingBottom","_getSelectors","class","timelineItem","timelineYear","headingTag","_handleItemTransition","_recenter","element","currentTarget","getAttribute","el","desiredPosition","container","getElementsByClassName","item","scrollTo","left","behavior","years","i","offsetTop","scrollContainer","offsetHeight","YoutubeModal","_openModal","cssEntry","videoAriaLabel","_richText","_thumbnail","_modal","altText","imgSrc","richText","videoId","vimeoVideoId","_videoType","checkoutApplePay","applePayButton","alert","applePayImage","setApplePayImage","msdyn365Commerce","isBrowser","Module","cart","cartLink","getUrlSync","cartItem","totalItemsInCart","cartLabel","OrderInfomation","_ref","orderInformationProps","salesId","receiptId","createdDate","count","amount","channelReferenceId","channelName","channelAddress","note","Node","SalesLine","_ref2","salesLineProps","salesLine","buyAgainButton","errors","GroupDelivery","_ref3","deliveryProps","heading","Group","_ref4","groupProps","delivery","address","salesLinesProps","salesLines","isCashAndCarryTransaction","LineId","deliveryType","shipment","trackingInfo","salesStatus","showTimeslot","pickupProps","pickupDateTimeslot","Groups","_ref5","groupsProps","group","OrderSummary","_ref6","orderSummaryProps","subtotal","shipping","tax","totalAmount","earnedPoints","Payment","_ref7","paymentMethodsProps","methods","Help","_ref8","helpProps","needHelpLabel","helpLineNumberLabel","contactNumber","_ref9","moduleProps","viewModes","tableViewActions","table","placedBy","loading","orderInfomation","orderSummary","payment","help","histogramItem","buttonProps","starLabel","bar","percentage","histogramItems","histogramProps","buildReviewCard","cardProps","headerProps","rating","date","cardBodyProps","reviewProps","reviewTitle","reviewText","responseProps","responseName","responseDate","responseText","controlsProps","ratingHelpfulLabel","like","dislike","edit","report","createReviewModal","modal","modalHeader","modalBody","form","inputRow","ratingLabel","titleLabel","titleInput","textLabel","textInput","privacyPolicyUrl","modalFooter","submitButton","cancelButton","createReportModal","reported","headerSubmitted","header","reportSubmittedMessage","reportMessage","radioButtons","succesfulButton","averageRating","filterByDropdown","noReviewsMessage","noReviewsWithFilterMessage","pageControls","refineReviewsProps","reportReviewModal","reviewsListProps","reviewCards","reviewCount","reviewModal","sortByDropdown","userReview","isFilterApplied","review","BackTopFooter","editProps","onEdit","backtoTopText","telemetryContent","getTelemetryObject","telemetryPageName","friendlyName","telemetry","destination","BackToTop","componentClassName","headingClassName","orderCountClassName","OrderHistoryWithSearchAndFiltersHeaderComponent","createComponent","component","salesOrders","textProps","showOrderCount","extraActions","orderCount","orderCountText","orderCountLabel","ordersCountLabel","classnames","detailsViewClassName","listViewClassName","viewSelectedClassName","OrderHistoryWithSearchAndFiltersViewModeState","OrderHistoryWithSearchAndFiltersViewModeComponent","_props$resources$deta","_props$resources","_props$resources$deta2","_props$resources2","_props$resources$list","_props$resources3","_props$resources$list2","_props$resources4","viewModeState","setViewModeState","currentViewModeState","onClickHandler","newViewModeState","viewModeDetailedViewAttributes","getTelemetryAttributes","getPayloadObject","TelemetryConstant","ViewMode","viewModeListViewAttributes","Button","DetailedView","detailedViewOptionAriaLabel","ListView","listViewOptionAriaLabel","TabItemType","TabItem","moduleContentClassName","moduleHeaderClassName","_renderTabHeader","isSelected","itemIndex","contentID","getContentID","tabId","activeContentIDResult","activeTabState","shown","activeContentIndex","TabContentContainer","TabHeaderContainer","TabItemContent","tabHeader","tabSlots","tabItemTitle","_renderTabItemContent","items","tabItemType","TabContent","tabItemContent","TabHeader","Tab","tabIndexQuery","handleHeadingChange","_refHandler","activeLink","_onClick","update","createTabStateInput","currentTabIndex","newUrl","_setGetParameter","String","history","pushState","_onKeyDown","keyCode","slotLength","tabItems","defaultTabIndex","initialIndex","queryString","query","activeTab","queryTabIndex","indexOf","arr","Number","parseInt","_getTabHeader","_getTabContent","shouldComponentUpdate","nextProps","nextState","headingComponent","MsDyn365","tabViewProps","TabContainer","headerSection","tabsSection","tabItemContainer","tabContents","tabHeaders","componentDidUpdate","params","isEditor","dataActionTabId","selected","onKeyDown","paramName","paramValue","url","requestUrl","decodeURIComponent","toString","TileListLinks","_mapEditableLinks","linkdata","ArrayExtensions","hasElements","editableLinks","payLoad","contentAction","etext","editableLink","additionalProperties","onTelemetryClick","push","links","onTextChange","TileListItem","_telemetryContent","handleParagraphChange","paragraph","handleLinkTextChange","linkIndex","_this$props$config$li","thumbnailImage","redirectionUrl","tileListLinks","tileListLinkContainer","viewProps","_createHeading","_createParagraph","_renderBackgroundImage","_renderThumbnailImage","tileListItem","tileListContainer","tileListImageContainer","tileListThumbnailImageContainer","tileListHeadingContainer","_heading$tag","StringExtensions","isNullOrWhitespace","isAriaHiddenAttribute","_item$imageSettings","_this$props$config$ba","verifiedImageSettings","sm","md","loadFailureBehavior","moduleType","typeName","imagePropertyName","itemImageSettings","_this$props$config$th","msdyn365__moduleLayout","TileListItemViewComponent","renderTileListItemContent","TileList","_this$props$config$cl","propsCarousel","SingleSlideCarousel","flipperPrevLabel","flipperPrevious","flipperNextLabel","flipperNext","parentId","vertical","singleSlideCarouselComponentProps","tileItemContainer","tileListHeading","tiles","content","tileListView","tileItem","keyIndex"],"sourceRoot":""}