{"version":3,"file":"static/js/3f67866c34c579e9df59.bundle.js","mappings":";kMA8BOA,eAAeC,EAAkBC,EAAmBC,EAAmBC,GAC1E,MAAMC,EAAkC,GAExC,GAAIH,EAAY,GAAKC,EAAY,EAAG,CAChC,MAAMG,GAAWC,EAAAA,EAAAA,iBAAgBH,GAC3BI,GAAkBC,EAAAA,EAAAA,kBAAiBL,GAGnCM,QAAsBC,EAAAA,oBAAAA,aAAiC,CAAEC,cAAeR,GAAOF,EAAWC,GAC5FO,IACAL,EAAeQ,QAAUH,SAIvBI,EAAAA,EAAAA,4CAA2C,IAAIC,EAAAA,6CAA6Cb,EAAWC,GAAYC,GACpHY,MAAKC,IACEA,IACAZ,EAAea,yBAA2BD,MAGjDE,OAAMC,IACHhB,EAAIiB,UAAUC,UAAUF,YAI1BG,EAAAA,EAAAA,4BAA2B,IAAIC,EAAAA,6BAA6BtB,EAAWC,OAAWsB,GAAYrB,GAC/FY,MAAKU,IACEA,IACArB,EAAeqB,aAAeA,MAGrCP,OAAMC,IACHhB,EAAIiB,UAAUC,UAAUF,YAI1BO,EAAAA,EAAAA,iCAAgC,IAAIC,EAAAA,qCAAqC1B,EAAWC,GAAYC,GACjGY,MAAKa,IACEA,IACAxB,EAAewB,kBAAoBA,MAG1CV,OAAMC,IACHhB,EAAIiB,UAAUC,UAAUF,YAI1BU,EAAAA,EAAAA,kBAAiB,IAAIC,EAAAA,sBAAsB3B,EAAI4B,eAAeC,aAAc7B,GAC7EY,MAAKkB,IACF7B,EAAe8B,KAAOD,KAEzBf,OAAMC,IACHhB,EAAIiB,UAAUC,UAAUF,MAI5Bd,GAAYE,SACN4B,EAAAA,EAAAA,mBAAkB,IAAIC,EAAAA,uBAAuBnC,EAAUoC,WAAYhC,EAAUE,GAAkBJ,GAChGY,MAAKuB,IACEA,IACAlC,EAAemC,eAAiBD,MAGvCpB,OAAMC,IACHhB,EAAIiB,UAAUC,UAAUF,MAKxC,OAAOf,ECvFL,MAAOoC,EAaTC,YAAmBC,EAA0BC,GActC,KAAAC,YAAc,KAAMC,OAlCDC,EAkCeC,KAAKC,oBAlCNhB,EAkC2Be,KAAKf,YAlCGiB,EAkCUF,KAAKE,OAjCnF,GAAGH,YAAed,EAAY9B,mBAAmB8B,EAAYkB,YAAYD,EAAS,IAAIA,IAAW,KAD/EJ,IAACC,EAAcd,EAAmCiB,GAoCpE,KAAAE,mBAAqB,IAAM,eAE3B,KAAAC,cAAgB,IAAiB,UAMjC,KAAAC,UAAY,IAAcN,KAAKE,OAvBlCF,KAAKO,UAAYZ,EAAQV,YAAY9B,UACrC6C,KAAKQ,WAAYC,EAAAA,EAAAA,IAAad,GAC9BK,KAAKJ,qBAAuBA,EAC5BI,KAAKf,YAAcU,EAAQV,YAC3Be,KAAKC,oBAAsB,GAC3BL,EAAqBc,SAAQC,IACzBX,KAAKC,qBAAuB,GAAGU,EAAaC,WAAaD,EAAaC,UAAUtB,iBAEpFU,KAAKC,qBAAuB,GAAGD,KAAKO,UAAUjB,cAC9CU,KAAKC,qBAAuB,GAAGD,KAAKQ,UAAUlB,cAC9CU,KAAKE,OAASP,EAAQO,QAgB9B,MAAMW,EAA6B7D,MAAOmC,EAAsB2B,EAAoBC,KAAqD,IAAAC,EACjI7D,EAAgD,QAAvC6D,EAAGD,EAAc/B,eAAeiC,eAAO,IAAAD,OAAA,EAApCA,EAAsCE,SAEtD,MAAMC,EAAkB,GAExB,GAAIhE,GAAagC,EAAKiC,UAAW,CAC7B,IAAIC,EAAI,EACR,IAAK,MAAMC,KAAYnC,EAAKiC,UAAW,CACnC,GAAIE,EAASV,UAAW,KAAAW,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACpB,MAEMhE,SAFuBZ,EAAkBqE,EAASV,UAAWzD,EAAW4D,IAE/ClD,QACzBiE,EAAUjE,MAAAA,GAAmB,QAAZ0D,EAAP1D,EAASkE,kBAAU,IAAAR,OAAA,EAAnBA,EAAqBS,KAAIC,IAAC,IAAAC,EAAA,OAAoB,QAApBA,EAAID,EAAEE,sBAAc,IAAAD,OAAA,EAAhBA,EAAkBE,SAAOC,KAAK,KAKtEC,GAAkC,QAAvBd,EAACF,EAASiB,qBAAa,IAAAf,EAAAA,EAAI,IAAIgB,QAAO,CAACC,EAAGC,KAAC,IAAAC,EAAA,OAAKF,GAAa,QAAZE,EAAID,EAAEE,cAAM,IAAAD,EAAAA,EAAI,KAAI,GAEtF,IAAIE,EAAQhF,MAAAA,GAA4B,QAArB4D,EAAP5D,EAASiF,2BAAmB,IAAArB,GAAgC,QAAhCA,EAA5BA,EAA8BsB,MAAKC,GAAiB,UAAXA,EAAGC,aAAgB,IAAAxB,GAAO,QAAPA,EAA5DA,EAA8DW,aAAK,IAAAX,OAAA,EAAnEA,EAAqEyB,YAE7EC,EAAO,CACPC,MAAO9B,EAASV,UAChByC,SAASxF,MAAAA,OAAO,EAAPA,EAASyF,iBAAiBzF,MAAAA,OAAO,EAAPA,EAAS0F,SAAUjC,EAASiC,QAAU,GACzEC,UAAwB,QAAf9B,EAAE7D,MAAAA,OAAO,EAAPA,EAAS4F,YAAI,IAAA/B,EAAAA,EAAI,GAC5BgC,MAAOrC,EACPsC,aAAc7B,EACd8B,OAAwC,QAAjCjC,EAAe,QAAfC,EAAC/D,MAAAA,OAAO,EAAPA,EAASgG,aAAK,IAAAjC,EAAAA,EAAIN,EAASuC,aAAK,IAAAlC,EAAAA,EAAI,GAAKW,EACjDA,SAAUA,EACVwB,KAAKjG,MAAAA,OAAO,EAAPA,EAAS0F,SAAUjC,EAASiC,QAAU,GAC3CQ,WAAYlB,EACZmB,SAA2B,QAAnBnC,EAAEP,EAAS2C,gBAAQ,IAAApC,EAAAA,EAAI,GAGnCV,EAAM+C,KAAKf,GAGf9B,KAMR,MAAO,CACH8C,MAAOrD,EACPsD,UAAW,CACPC,SAAU,MACVC,MANMnD,EAAMqB,QAAO,CAACC,EAAGC,KAAC,IAAA6B,EAAA,OAAK9B,GAAY,QAAR8B,EAAC7B,EAAEkB,aAAK,IAAAW,EAAAA,EAAI,GAAK7B,EAAEsB,WAAU,GAO9D7C,MAAOA,kEC3CZ,MAAMqD,EAA2BxH,MAAOyH,EAAqB1D,KAChE,MAAM2D,EAA8B,oBAAXC,QAA2BA,OAAkB,UACtE,GAAID,IAEAA,EAAUR,KAAK,CAAEE,UAAW,OACxBK,GAAS,CACT,IAAK,MAAMG,KAAmC,QAA7BC,EAAIJ,MAAAA,GAAkB,QAAXK,EAAPL,EAASL,iBAAS,IAAAU,OAAA,EAAlBA,EAAoB3D,aAAK,IAAA0D,EAAAA,EAAI,GAAI,KAAAA,EAAAC,EAClD,GAAIF,EAAOxB,MAAO,CACd,GAAIrC,EAAe,CACf,MAAMgE,QAAsBC,EAAAA,EAAAA,kBACxB,IAAIvF,EAAAA,GAAsBsB,EAAc/B,eAAgB,CAAC,CAAE4B,WAAYgE,EAAOxB,SAC9ErC,GAG0B,IAAAkE,EAGAC,EAGAC,EAGAC,EAGAC,EAZ9B,GAAIN,EAAcO,OAAS,EACvBV,EAAOW,cAAqC,QAAxBN,EAAGF,EAAc,GAAGtB,YAAI,IAAAwB,EAAAA,OAAIxG,EAEpD,GAAIsG,EAAcO,OAAS,EACvBV,EAAOY,eAAsC,QAAxBN,EAAGH,EAAc,GAAGtB,YAAI,IAAAyB,EAAAA,OAAIzG,EAErD,GAAIsG,EAAcO,OAAS,EACvBV,EAAOa,eAAsC,QAAxBN,EAAGJ,EAAc,GAAGtB,YAAI,IAAA0B,EAAAA,OAAI1G,EAErD,GAAIsG,EAAcO,OAAS,EACvBV,EAAOc,eAAsC,QAAxBN,EAAGL,EAAc,GAAGtB,YAAI,IAAA2B,EAAAA,OAAI3G,EAErD,GAAIsG,EAAcO,OAAS,EACvBV,EAAOe,eAAsC,QAAxBN,EAAGN,EAAc,GAAGtB,YAAI,IAAA4B,EAAAA,OAAI5G,SAIlDmG,EAAOxB,OAItBsB,EAAUR,KAAKO,qECxF3B,IAAImB,EAAa,GAEjB,MAAMC,EAAqBA,CAACpB,EAAqB1D,EAAgC+E,KAC7E,MAAMC,EAAYC,EAAAA,GAASD,UAErBE,EAAWC,EAAAA,SAAc,KAAK,IAAApB,EAAAqB,EACgCC,EAEtBC,EAEkCC,EAJ5E,MAAuB,eAAnB7B,MAAAA,OAAO,EAAPA,EAASN,QAA0C,QAArBW,EAAIL,EAAQL,iBAAS,IAAAU,GAAjBA,EAAmB3D,MAC7B,QAAxBiF,EAAO3B,EAAQL,iBAAS,IAAAgC,GAAU,QAAVA,EAAjBA,EAAmBjF,MAAM,UAAE,IAAAiF,OAAA,EAA3BA,EAA6B/C,QACV,cAAnBoB,MAAAA,OAAO,EAAPA,EAASN,OACQ,QAAxBkC,EAAO5B,EAAQL,iBAAS,IAAAiC,OAAA,EAAjBA,EAAmBE,eACA,oBAAnB9B,MAAAA,OAAO,EAAPA,EAASN,QAA+C,QAArBgC,EAAI1B,EAAQL,iBAAS,IAAA+B,GAAjBA,EAAmBhF,MACzC,QAAxBmF,EAAO7B,EAAQL,iBAAS,IAAAkC,OAAA,EAAjBA,EAAmBnF,MAAMa,KAAIX,GAAKA,EAAEgC,UAAShB,KAAK,KAGtD,KACR,CAACoC,IAEAwB,IAEAL,EAAaK,GAKjBC,EAAAA,WAAgB,KACRH,IACKvB,EAAAA,EAAAA,GAAyBC,EAAS1D,KAE5C,CAACgF,EAAWE,GAAYL,KAAgBE,MAAAA,EAAAA,EAAQ,6WCJhD,MAAMU,EAAmD7E,IAAA,IAAC,cAAE8E,EAAa,MAAEC,EAAK,SAAEC,GAAUhF,EAAA,OAC/FuE,EAAAA,cAACU,EAAAA,KAAIC,OAAAC,OAAA,GAAKL,GACLC,EACAC,IAIII,EAAmDC,IAAA,IAAC,cAAEC,EAAa,MAAEP,GAAOM,EAAA,OAAKd,EAAAA,cAACU,EAAAA,KAAIC,OAAAC,OAAA,GAAKG,GAAgBP,IAE3GQ,EAAyCC,IAAA,IAAC,SAAEC,EAAQ,KAAEjE,EAAI,cAAEkE,EAAa,cAAEC,GAAeH,EAAA,OACnGjB,EAAAA,cAACU,EAAAA,KAAIC,OAAAC,OAAA,GAAKM,GACLjE,EACAkE,GAAiBnB,EAAAA,cAACM,EAAsBK,OAAAC,OAAA,GAAKO,IAC7CC,GAAiBpB,EAAAA,cAACa,EAAsBF,OAAAC,OAAA,GAAKQ,MAIzCC,EAA2DC,IAAA,IAAC,sBAAEC,EAAqB,aAAEC,EAAY,QAAEC,EAAO,UAAEC,GAAWJ,EAAA,OAChItB,EAAAA,cAACU,EAAAA,KAAIC,OAAAC,OAAA,GAAKW,GACLE,EACDzB,EAAAA,cAACU,EAAAA,KAAIC,OAAAC,OAAA,GAAKY,GACLE,EAAU5F,KAAI6F,GACX3B,EAAAA,cAACgB,EAAiBL,OAAAC,OAAA,CAACgB,IAAKD,EAASE,QAAYF,SAMhDG,EAA6EC,IAAA,IAAC,sBACvFR,EAAqB,aACrBC,EAAY,QACZC,EAAO,UACPC,EAAS,eACTM,EAAc,mBACdC,GACHF,EAAA,OACG/B,EAAAA,cAACU,EAAAA,KAAIC,OAAAC,OAAA,GAAKW,GACLU,EACAD,EACAP,EACDzB,EAAAA,cAACU,EAAAA,KAAIC,OAAAC,OAAA,GAAKY,GACLE,EAAU5F,KAAI6F,GACX3B,EAAAA,cAACkC,EAAmCvB,OAAAC,OAAA,CAACgB,IAAKD,EAASE,QAAYF,SAMlEO,EAA2DC,IAAA,IAAC,SAAEjB,EAAQ,KAAEjE,EAAI,cAAEkE,EAAa,cAAEC,GAAee,EAAA,OACrHnC,EAAAA,cAACU,EAAAA,KAAIC,OAAAC,OAAA,GAAKM,GACLjE,EACAmE,GAAiBpB,EAAAA,cAACa,EAAsBF,OAAAC,OAAA,GAAKQ,MAIzCgB,EAAqEC,IAAA,IAAC,cAAE9B,EAAa,MAAEC,EAAK,SAAEC,GAAU4B,EAAA,OACjHrC,EAAAA,cAACU,EAAAA,KAAIC,OAAAC,OAAA,GAAKL,GACLC,EACAC,IAII6B,EAA2CC,IAAA,IAAC,UACrDC,EAAS,OACTC,EAAM,QACNhB,EAAO,SACPiB,EAAQ,eACRC,EAAc,aACdC,EAAY,cACZC,EAAa,iCACbC,GACHP,EAAA,OACGvC,EAAAA,cAACU,EAAAA,KAAIC,OAAAC,OAAA,GAAK4B,GACNxC,EAAAA,cAACU,EAAAA,KAAIC,OAAAC,OAAA,GAAK6B,GACLhB,EACAiB,QAEiCnK,IAArCuK,GAAkDH,GAAkB3C,EAAAA,cAACqB,EAAsBV,OAAAC,OAAA,GAAK+B,SAC3DpK,IAArCuK,GAAkDD,GAAiB7C,EAAAA,cAACqB,EAAsBV,OAAAC,OAAA,GAAKiC,SAC1DtK,IAArCuK,GAAkDF,GAAgB5C,EAAAA,cAACqB,EAAsBV,OAAAC,OAAA,GAAKgC,SACzDrK,IAArCuK,EACKA,EAAiChH,KAAI,CAACmB,EAAMO,IACjCwC,EAAAA,cAAC8B,EAAwCnB,OAAAC,OAAA,GAAK3D,EAAI,CAAE2E,IAAKpE,OAEpE,OAIRuF,EAAiDC,IAAA,IAAC,QAAEvB,EAAO,MAAEwB,GAAOD,EAAA,OACtEhD,EAAAA,cAAA,OAAKkD,UAAU,6BACVzB,EACDzB,EAAAA,cAAA,OAAKkD,UAAU,4BACVD,GACGjD,EAAAA,cAAAA,EAAAA,SAAA,KACKiD,EAAME,SACNF,EAAMG,SACNH,EAAMI,YACNJ,EAAMK,IACNL,EAAMM,eACNN,EAAMO,QACNP,EAAMQ,SACNR,EAAMS,eAOrBC,EAA4DC,IAAA,IAAC,QAAEnC,EAAO,MAAEwB,GAAOW,EAAA,OACjF5D,EAAAA,cAAA,OAAKkD,UAAU,+BACVzB,EACDzB,EAAAA,cAAA,OAAKkD,UAAU,8BACVD,GACGjD,EAAAA,cAAAA,EAAAA,SAAA,KACKiD,EAAMY,SACNZ,EAAMQ,SACNR,EAAMO,QACNP,EAAMS,eAgI3B,EAzHmDI,IAAQ,IAAAC,EACvD,MAAM,iCACFC,EAAgC,+CAChCC,EAA8C,QAC9CC,EAAO,cACPC,EAAa,YACbC,EAAW,cACXC,EAAa,eACbC,EAAc,UACdC,EAAS,UACTC,EAAS,iBACTC,EAAgB,UAChBC,EAAS,sBACTC,EAAqB,uBACrBC,EAAsB,wBACtBC,EAAuB,kBACvBC,EAAiB,QACjBC,EAAO,MACPC,EAAK,MACLC,EAAK,WACLC,EAAU,aACVC,EAAY,sBACZC,EAAqB,UACrB1D,EAAS,iBACT2D,EAAgB,mBAChBC,EAAkB,mBAClBC,EAAkB,gCAClBC,EACAC,MAAM,SAAEC,EAAQ,SAAEC,IAClB7B,EAEE8B,EAAUF,MAAAA,GAAgB,QAAR3B,EAAR2B,EAAUG,cAAM,IAAA9B,OAAA,EAAhBA,EAAkB+B,aAAa7M,KACzC8M,EAAcJ,MAAAA,OAAQ,EAARA,EAAUE,OAKxBG,EAAYhG,EAAAA,SAAc,KAC5B,GAAI4F,GAAWG,EAAa,KAAAE,EAAAC,EAAAC,EAAAC,EA4BxB,MA3B6B,CACzBnI,MAAO,iBACPC,UAAW,CACPE,MAA0B,QAArB6H,EAAEL,EAAQS,mBAAW,IAAAJ,EAAAA,EAAI,EAC9B9H,SAAU,MACVmI,OAA4C,QAAtCJ,EAAiB,QAAjBC,EAAEP,EAAQW,eAAO,IAAAJ,OAAA,EAAfA,EAAiBrK,KAAI0K,GAAKA,EAAEC,OAAM,UAAE,IAAAP,EAAAA,EAAI,GAChDjL,MAAwB,QAAnBmL,EAAER,EAAQ1K,iBAAS,IAAAkL,OAAA,EAAjBA,EAAmBtK,KAAI,CAAC4K,EAAGvL,KAAK,IAAAI,EAAAF,EAAAsL,EAAAnL,EAAAoL,EAAAC,EAAAC,EAAAC,EACnC,MAAMpP,EAAUoO,EAAYlJ,MAAKmK,GAAKA,EAAEhM,WAAa0L,EAAEhM,YACjDuM,EAAetP,MAAAA,GAA4B,QAArB4D,EAAP5D,EAASiF,2BAAmB,IAAArB,GAA8B,QAA9BA,EAA5BA,EAA8BsB,MAAKmK,GAAe,UAAVA,EAAEjK,aAAgB,IAAAxB,GAAO,QAAPA,EAA1DA,EAA4DW,aAAK,IAAAX,OAAA,EAAjEA,EAAmEyB,YAClFpB,EAAUjE,MAAAA,GAAmB,QAAZ0D,EAAP1D,EAASkE,kBAAU,IAAAR,OAAA,EAAnBA,EAAqBS,KAAIC,IAAC,IAAAC,EAAA,OAAoB,QAApBA,EAAID,EAAEE,sBAAc,IAAAD,OAAA,EAAhBA,EAAkBE,SAAOC,KAAK,KACtEC,GAA2B,QAAhBuK,EAACD,EAAErK,qBAAa,IAAAsK,EAAAA,EAAI,IAAIrK,QAAO,CAACC,EAAGC,KAAC,IAAAC,EAAA,OAAKF,GAAa,QAAZE,EAAID,EAAEE,cAAM,IAAAD,EAAAA,EAAI,KAAI,GAC/E,MAAO,CACHS,MAAOvF,MAAAA,OAAO,EAAPA,EAASqD,SAChBsC,UAAwB,QAAf9B,EAAE7D,MAAAA,OAAO,EAAPA,EAAS4F,YAAI,IAAA/B,EAAAA,EAAI,GAC5B2B,QAAmD,QAA5CyJ,GAAGjP,MAAAA,OAAO,EAAPA,EAASyF,iBAAiBzF,MAAAA,OAAO,EAAPA,EAAS0F,eAAM,IAAAuJ,EAAAA,EAAK,GACxDlJ,OAAe,QAARmJ,EAACH,EAAE/I,aAAK,IAAAkJ,EAAAA,EAAI,GAAKzK,EACxBA,SAAUA,EACV0B,SAAoB,QAAZgJ,EAAEJ,EAAE3I,gBAAQ,IAAA+I,EAAAA,EAAI,EACxBrJ,aAAc7B,EACdgC,IAAoB,QAAjBmJ,EAAEpP,MAAAA,OAAO,EAAPA,EAAS0F,cAAM,IAAA0J,EAAAA,EAAI,GACxBlJ,WAAYoJ,MAAAA,EAAAA,OAAgB1O,EAC5BiF,MAAOrC,WAU5B,CAACyK,EAASG,IAIb,OAFApG,EAAAA,EAAAA,GAAmBqG,EAAWlC,EAAMrK,QAAQoB,eAGxCmF,EAAAA,cAACkH,EAAAA,OAAMvG,OAAAC,OAAA,GAAKuD,IACNE,GAAiBrE,EAAAA,cAACU,EAAAA,KAAIC,OAAAC,OAAA,GAAKwD,GAAca,IACzCZ,GAAiBL,GAAoCC,IAAmDe,IAAUD,GAChH/E,EAAAA,cAACmH,EAAAA,QAAO,CAACjE,UAAU,yCAErBmB,GACErE,EAAAA,cAACU,EAAAA,KAAIC,OAAAC,OAAA,GAAK2D,GACLQ,EACAC,EACAd,GACGlE,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAACU,EAAAA,KAAIC,OAAAC,OAAA,GAAK4D,GACLgB,EACAN,EACDlF,EAAAA,cAACU,EAAAA,KAAIC,OAAAC,OAAA,GAAKiE,GAA0BS,GACpCtF,EAAAA,cAACU,EAAAA,KAAIC,OAAAC,OAAA,GAAK6D,GACLY,EACAE,IAGTvF,EAAAA,cAACU,EAAAA,KAAIC,OAAAC,OAAA,GAAK8D,GACJJ,EAEIc,GAAyBpF,EAAAA,cAAC2D,EAAuBhD,OAAAC,OAAA,GAAKwE,IADtDD,GAAgBnF,EAAAA,cAAC+C,EAAqBpC,OAAAC,OAAA,GAAKuE,IAEjDnF,EAAAA,cAACU,EAAAA,KAAIC,OAAAC,OAAA,GAAK+D,GACN3E,EAAAA,cAACU,EAAAA,KAAIC,OAAAC,OAAA,GAAKiE,GAA0BS,GACnCD,EACAE,GAEJ7D,GAAa1B,EAAAA,cAACsC,EAAkB3B,OAAAC,OAAA,GAAKc,IACtC1B,EAAAA,cAACU,EAAAA,KAAIC,OAAAC,OAAA,GAAKgE,GACN5E,EAAAA,cAACU,EAAAA,KAAIC,OAAAC,OAAA,GAAKiE,GAA0BS,GACnCD,EACAE,GAELvF,EAAAA,cAACoH,EAAAA,EAAS,SAM7B/C,GAAiBS,wDC1Q9B,MAAMsC,EAAYA,IAEVpH,IAAAA,cAAA,OAAKkD,UAAU,kBACXlD,IAAAA,cAAA,OAAKkD,UAAU,4BACXlD,IAAAA,cAAA,OAAKkD,UAAU,OACXlD,IAAAA,cAAA,OAAKkD,UAAU,+BAA6B,mBACxBlD,IAAAA,cAAA,KAAGqH,KAAK,oDAAkD,gBAE9ErH,IAAAA,cAAA,OAAKkD,UAAU,SACXlD,IAAAA,cAAA,KACIqH,KAAK,IACLnE,UAAU,YACVoE,QAASA,KACL,MAAMC,EAASC,SAASC,eAAe,YAEvC,IAAI,IAAAC,EACAH,MAAAA,GAAqB,QAAfG,EAANH,EAAQI,qBAAa,IAAAD,GAAkC,QAAlCA,EAArBA,EAAuBF,SAASI,cAAc,iBAAS,IAAAF,GAAvDA,EAAyDG,QAC3D,MAAOC,GACLC,QAAQ7P,MAAM4P,MAErB,cAKT9H,IAAAA,cAAA,OAAKkD,UAAU,SACXlD,IAAAA,cAAA,KAAGqH,KAAK,oBAAkB,qBAItCrH,IAAAA,cAAA,OAAKkD,UAAU,wBACXlD,IAAAA,cAAA,OAAKkD,UAAU,OACXlD,IAAAA,cAAA,OAAKkD,UAAU,SACXlD,IAAAA,cAAA,KAAGqH,KAAK,oBAAkB,oBAE9BrH,IAAAA,cAAA,OAAKkD,UAAU,SACXlD,IAAAA,cAAA,KAAGqH,KAAK,4BAA0B,qoBCtC1D,MAAMW,EAAU,CAAEC,QAAS,GAAIC,YAAa,IAmBlCC,EAA8BA,CAACC,EAAqBC,KAUlD,GADAL,EAAQE,YAAYE,GAAuBC,GACtCL,EAAQE,YAAYE,GAAqBE,QAC1C,MAAM,IAAIC,MAAM,oBAAsBH,EAAsB,mCAEhEJ,EAAQE,YAAYE,GAAqBE,QAAQE,UAAUC,eAAiBL,EACxEJ,EAAQE,YAAYE,GAAqBE,QAAQE,UAAUE,KAC3DV,EAAQE,YAAYF,EAAQE,YAAYE,GAAqBE,QAAQE,UAAUE,IAAMN,IAMhGJ,EAAQC,QAAkB,SAAI,CAC3BzB,EAAGA,IAAMmC,EAAQ,KACjBC,MAAO,kBACPC,GAAI,CAAC,CAACC,KAAK,WAAaC,KAAK,kEAAmEC,MAAO,GAAG,CAACF,KAAK,8BAAgCC,KAAK,+FAAgGC,MAAO,GAAG,CAACF,KAAK,WAAaC,KAAK,mFAAoFC,MAAO,GAAG,CAACF,KAAK,sBAAwBC,KAAK,kEAAmEC,MAAO,GAAG,CAACF,KAAK,kBAAoBC,KAAK,wFAAyFC,MAAO,GAAG,CAACF,KAAK,eAAiBC,KAAK,uEAAwEC,MAAO,GAAG,CAACF,KAAK,mBAAqBC,KAAK,+EAAgFC,MAAO,GAAG,CAACF,KAAK,WAAaC,KAAK,6GAA8GC,MAAO,IAE59BC,KAAK,EACLC,GAAI,6BACJC,EAAG,WACHnC,EAAG,WAEHoC,IAAK,GAGLC,GAAI,8EAOAlB,EAF4B,6GACXQ,EAAQ,MAQzBR,EAF4B,kEACXQ,EAAQ,MAQzBR,EAF4B,+FACXQ,EAAQ,KAQzBR,EAF4B,kEACXQ,EAAQ,KAQzBR,EAF4B,wFACXQ,EAAQ,MAQzBR,EAF4B,uEACXQ,EAAQ,KAQzBR,EAF4B,+EACXQ,EAAQ,MAQzBR,EAF4B,mFACXQ,EAAQ,KAMjClK,OAAO6K,aAAe7K,OAAO6K,cAAgB,GAC7C7K,OAAO6K,aAAarB,QAAOsB,EAAAA,EAAA,GACpB9K,OAAO6K,aAAarB,SAAW,IAC/BD,EAAQC,SAGXxJ,OAAO6K,aAAapB,YAAWqB,EAAAA,EAAA,GAC5B9K,OAAO6K,aAAapB,aAAe,IACnCF,EAAQE,aAEY,MAAMsB,EAAiB,GAC9BA,EAAe,oDAAsD,CAC7EhD,EAAGA,IAAMmC,EAAQ,MACjBc,GAAI,gCAEpBD,EAAe,iEAAmE,CAClEhD,EAAGA,IAAMmC,EAAQ,KACjBc,GAAI,gDAEpBhL,OAAO6K,aAAe7K,OAAO6K,cAAgB,GAC7C7K,OAAO6K,aAAaE,eAAcD,EAAAA,EAAA,GACP9K,OAAO6K,aAAaE,gBAAkB,IACtCA,0NCnHpB,MAAME,EAAblQ,cACW,KAAAG,YAAc,IAAM,yBAEpB,KAAAO,mBAAqB,IAAM,yBAE3B,KAAAC,cAAgB,IAAiB,WAQrC,MAAMwP,EAAyCC,GAC3C,IAAIF,EASR5S,eAAe+S,EAClBC,EACArQ,GASA,aAP+BsQ,EAAAA,EAAAA,6BAC3B,CACIrS,cAAe+B,GAEnB,IAMD,MAAMuQ,GAAyBC,EAAAA,EAAAA,IAA2B,CAC7DvB,GAAI,sEACJwB,OAAoCL,EACpCC,MAAOH,IAGX,WChEAQ,EAAOC,QAAUpK,cCAjBmK,EAAOC,QAAUC","sources":["webpack://henrys-ecommerce/./src/common/utilities/get-product-details.ts?0bb5","webpack://henrys-ecommerce/./src/common/createGoogleAnalyticsEvent.ts?b6fa","webpack://henrys-ecommerce/./src/common/pushGoogleAnalyticsEvent.tsx?9c4e","webpack://henrys-ecommerce/./src/common/useGoogleAnalytics.tsx?0c00","webpack://henrys-ecommerce/./src/themes/henrys/views/checkout.view.tsx?5dbb","webpack://henrys-ecommerce/./src/themes/henrys/views/components/CartGuide.tsx?ff5c","webpack://henrys-ecommerce/./lib/checkout/module-registration.js?9188","webpack://henrys-ecommerce/../../src/search-org-unit-locations.ts?d18d","webpack://henrys-ecommerce/external var \"React\"?0d3b","webpack://henrys-ecommerce/external var \"ReactDOM\"?853b"],"sourcesContent":["/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { IActionContext } from '@msdyn365-commerce/core';\r\nimport { getCartStateData, GetCartStateDataInput } from '@msdyn365-commerce/global-state';\r\nimport { ProductsDataActions } from '@msdyn365-commerce/retail-proxy';\r\nimport {\r\n getDimensionsForSelectedVariant,\r\n GetDimensionsForSelectedVariantInput,\r\n getPriceForSelectedVariant,\r\n getProductAvailabilitiesForSelectedVariant,\r\n getRatingsSummary,\r\n GetRatingsSummaryInput,\r\n getRnrEndpointId,\r\n getRnrPartnerId,\r\n PriceForSelectedVariantInput,\r\n ProductAvailabilitiesForSelectedVariantInput\r\n} from '@msdyn365-commerce-modules/retail-actions';\r\n\r\nimport { IProductDetails } from '@msdyn365-commerce-modules/buybox';\r\n\r\n/**\r\n * Calls the Retail API and returns the product details.\r\n * @param productId\r\n * @param channelId\r\n * @param ctx\r\n * @param selectedDimensions - Dimensions previously selected for the product variant.\r\n */\r\nexport async function getProductDetails(productId: number, channelId: number, ctx: IActionContext): Promise {\r\n const productDetails: IProductDetails = {};\r\n\r\n if (productId > 0 && channelId > 0) {\r\n const tenantId = getRnrPartnerId(ctx);\r\n const serviceEndPoint = getRnrEndpointId(ctx);\r\n\r\n // Get Product Details\r\n const productResult = await ProductsDataActions.getByIdAsync({ callerContext: ctx }, productId, channelId);\r\n if (productResult) {\r\n productDetails.product = productResult;\r\n }\r\n\r\n // Get Product Availability\r\n await getProductAvailabilitiesForSelectedVariant(new ProductAvailabilitiesForSelectedVariantInput(productId, channelId), ctx)\r\n .then(productAvailabilities => {\r\n if (productAvailabilities) {\r\n productDetails.productAvailableQuantity = productAvailabilities;\r\n }\r\n })\r\n .catch(error => {\r\n ctx.telemetry.exception(error);\r\n });\r\n\r\n // Get Product Price\r\n await getPriceForSelectedVariant(new PriceForSelectedVariantInput(productId, channelId, undefined), ctx)\r\n .then(productPrice => {\r\n if (productPrice) {\r\n productDetails.productPrice = productPrice;\r\n }\r\n })\r\n .catch(error => {\r\n ctx.telemetry.exception(error);\r\n });\r\n\r\n // Get product dimensions\r\n await getDimensionsForSelectedVariant(new GetDimensionsForSelectedVariantInput(productId, channelId), ctx)\r\n .then(productDimensions => {\r\n if (productDimensions) {\r\n productDetails.productDimensions = productDimensions;\r\n }\r\n })\r\n .catch(error => {\r\n ctx.telemetry.exception(error);\r\n });\r\n\r\n // Get Cart State\r\n await getCartStateData(new GetCartStateDataInput(ctx.requestContext.apiSettings), ctx)\r\n .then(cartState => {\r\n productDetails.cart = cartState;\r\n })\r\n .catch(error => {\r\n ctx.telemetry.exception(error);\r\n });\r\n\r\n // Get Product Ratings\r\n if (tenantId && serviceEndPoint) {\r\n await getRatingsSummary(new GetRatingsSummaryInput(productId.toString(), tenantId, serviceEndPoint), ctx)\r\n .then(ratingsSummaryData => {\r\n if (ratingsSummaryData) {\r\n productDetails.ratingsSummary = ratingsSummaryData;\r\n }\r\n })\r\n .catch(error => {\r\n ctx.telemetry.exception(error);\r\n });\r\n }\r\n }\r\n\r\n return productDetails;\r\n}\r\n","import { CacheType, getCatalogId, IActionContext, IActionInput, ICommerceApiSettings, IRequestContext } from '@msdyn365-commerce/core';\r\nimport { Cart, CategoryPathLookup } from '@msdyn365-commerce/retail-proxy';\r\nimport { GaEvent, GaItem, GaPayload } from './pushGoogleAnalyticsEvent';\r\nimport { getProductDetails } from './utilities/get-product-details';\r\n\r\nexport const buildCacheKey = (base: string, apiSettings: ICommerceApiSettings, locale?: string): string => {\r\n return `${base}-chanId:${apiSettings.channelId}-catId:${apiSettings.catalogId}${locale ? `-${locale}` : ''}`;\r\n};\r\n\r\n/**\r\n * Category path input.\r\n */\r\nexport class GetCategoryPathsInput implements IActionInput {\r\n public readonly ChannelId: number;\r\n\r\n public readonly CatalogId: number;\r\n\r\n public readonly categoryPathLooksups: CategoryPathLookup[];\r\n\r\n public readonly apiSettings: ICommerceApiSettings;\r\n\r\n private readonly locale: string;\r\n\r\n private constructedCacheKey: string;\r\n\r\n public constructor(context: IRequestContext, categoryPathLooksups: CategoryPathLookup[]) {\r\n this.ChannelId = context.apiSettings.channelId;\r\n this.CatalogId = getCatalogId(context);\r\n this.categoryPathLooksups = categoryPathLooksups;\r\n this.apiSettings = context.apiSettings;\r\n this.constructedCacheKey = '';\r\n categoryPathLooksups.forEach(categoryPath => {\r\n this.constructedCacheKey += `${categoryPath.ProductId && categoryPath.ProductId.toString()}|`;\r\n });\r\n this.constructedCacheKey += `${this.ChannelId.toString()}|`;\r\n this.constructedCacheKey += `${this.CatalogId.toString()}|`;\r\n this.locale = context.locale;\r\n }\r\n\r\n public getCacheKey = () => buildCacheKey(this.constructedCacheKey, this.apiSettings, this.locale);\r\n\r\n public getCacheObjectType = () => 'CategoryPath';\r\n\r\n public dataCacheType = (): CacheType => 'request';\r\n\r\n /**\r\n * Retrieves locale to use for the current API call.\r\n * @returns A string which represents locale.\r\n */\r\n public getLocale = (): string => this.locale;\r\n}\r\n\r\nconst createGoogleAnalyticsEvent = async (cart: Readonly, eventName: GaEvent, actionContext: IActionContext): Promise => {\r\n var channelId = actionContext.requestContext.channel?.RecordId;\r\n\r\n const items: GaItem[] = [];\r\n\r\n if (channelId && cart.CartLines) {\r\n let i = 0;\r\n for (const cartLine of cart.CartLines) {\r\n if (cartLine.ProductId) {\r\n const productDetails = await getProductDetails(cartLine.ProductId, channelId, actionContext);\r\n\r\n const product = productDetails.product;\r\n const variant = product?.Dimensions?.map(d => d.DimensionValue?.Value).join(',');\r\n\r\n process.env.NODE_ENV === 'development' &&\r\n console.log('createGoogleAnalyticsEvent', cartLine.ProductId, JSON.parse(JSON.stringify(product)));\r\n\r\n const discount = (cartLine.DiscountLines ?? []).reduce((a, b) => a + (b.Amount ?? 0), 0);\r\n\r\n var brand = product?.ExtensionProperties?.find(ep => ep.Key === 'Brand')?.Value?.StringValue;\r\n\r\n var item = {\r\n recId: cartLine.ProductId,\r\n item_id: product?.ProductNumber || product?.ItemId || cartLine.ItemId || '',\r\n item_name: product?.Name ?? '',\r\n index: i,\r\n item_variant: variant,\r\n price: (product?.Price ?? cartLine.Price ?? 0) - discount,\r\n discount: discount,\r\n pid: product?.ItemId || cartLine.ItemId || '',\r\n item_brand: brand,\r\n quantity: cartLine.Quantity ?? 0\r\n };\r\n\r\n items.push(item);\r\n }\r\n\r\n i++;\r\n }\r\n }\r\n\r\n const total = items.reduce((a, b) => a + (b.price ?? 0) * b.quantity, 0);\r\n\r\n return {\r\n event: eventName,\r\n ecommerce: {\r\n currency: 'CAD',\r\n value: total,\r\n items: items\r\n }\r\n };\r\n};\r\n\r\nexport { createGoogleAnalyticsEvent };\r\n","import { IActionContext } from '@msdyn365-commerce/core';\r\nimport { GetCategoryPathsInput } from './createGoogleAnalyticsEvent';\r\nimport { getCategoryPaths } from '@msdyn365-commerce-modules/retail-actions';\r\n\r\nexport type GaDataLayer = {\r\n push: (payload: GaPayload) => void;\r\n};\r\n\r\nexport type GaItem = {\r\n item_id: string;\r\n item_name: string;\r\n affiliation?: string;\r\n coupon?: string;\r\n discount?: number;\r\n index: number;\r\n item_brand?: string;\r\n item_category?: string;\r\n item_category2?: string;\r\n item_category3?: string;\r\n item_category4?: string;\r\n item_category5?: string;\r\n item_list_id?: string;\r\n item_list_name?: string;\r\n item_variant?: string;\r\n location_id?: string;\r\n price: number;\r\n quantity: number;\r\n pid?: string;\r\n recId?: number;\r\n};\r\n\r\nexport type GaEvent =\r\n | 'view_item'\r\n | 'view_cart'\r\n | 'purchase'\r\n | 'begin_checkout'\r\n | 'add_to_cart'\r\n | 'add_to_wishlist'\r\n | 'remove_from_cart'\r\n | 'add_shipping_info'\r\n | 'add_payment_info';\r\n\r\nexport type GaPayload = {\r\n event?: GaEvent;\r\n ecommerce?: {\r\n transaction_id?: string;\r\n currency?: string;\r\n value: number;\r\n tax?: number;\r\n shipping?: number;\r\n shipping_tier?: string;\r\n payment_type?: string;\r\n coupon?: string;\r\n items?: GaItem[];\r\n } | null;\r\n};\r\n\r\nexport const pushGoogleAnalyticsEvent = async (payload?: GaPayload, actionContext?: IActionContext) => {\r\n const dataLayer = typeof window !== 'undefined' && (window['dataLayer'] as GaDataLayer);\r\n if (dataLayer) {\r\n process.env.NODE_ENV === 'development' && console.log('pushGoogleAnalyticsEvent', payload);\r\n dataLayer.push({ ecommerce: null });\r\n if (payload) {\r\n for (const gaItem of payload?.ecommerce?.items ?? []) {\r\n if (gaItem.recId) {\r\n if (actionContext) {\r\n const categoryPaths = await getCategoryPaths(\r\n new GetCategoryPathsInput(actionContext.requestContext, [{ ProductId: +gaItem.recId }]),\r\n actionContext\r\n );\r\n\r\n if (categoryPaths.length > 0) {\r\n gaItem.item_category = categoryPaths[0].Name ?? undefined;\r\n }\r\n if (categoryPaths.length > 1) {\r\n gaItem.item_category2 = categoryPaths[1].Name ?? undefined;\r\n }\r\n if (categoryPaths.length > 2) {\r\n gaItem.item_category3 = categoryPaths[2].Name ?? undefined;\r\n }\r\n if (categoryPaths.length > 3) {\r\n gaItem.item_category4 = categoryPaths[3].Name ?? undefined;\r\n }\r\n if (categoryPaths.length > 4) {\r\n gaItem.item_category5 = categoryPaths[4].Name ?? undefined;\r\n }\r\n }\r\n\r\n delete gaItem.recId;\r\n }\r\n }\r\n\r\n dataLayer.push(payload);\r\n }\r\n }\r\n};\r\n","import * as React from 'react';\r\nimport MsDyn365, { IActionContext } from '@msdyn365-commerce/core';\r\nimport { GaPayload, pushGoogleAnalyticsEvent } from './pushGoogleAnalyticsEvent';\r\n\r\nlet lastCached = '';\r\n\r\nconst useGoogleAnalytics = (payload?: GaPayload, actionContext?: IActionContext, deps?: React.DependencyList | undefined) => {\r\n const isBrowser = MsDyn365.isBrowser;\r\n\r\n const cacheKey = React.useMemo(() => {\r\n if (payload?.event === 'view_item' && payload.ecommerce?.items) {\r\n return payload.ecommerce?.items[0]?.item_id;\r\n } else if (payload?.event === 'purchase') {\r\n return payload.ecommerce?.transaction_id;\r\n } else if (payload?.event === 'begin_checkout' && payload.ecommerce?.items) {\r\n return payload.ecommerce?.items.map(i => i.item_id).join(',');\r\n }\r\n\r\n return '';\r\n }, [payload]);\r\n\r\n if (cacheKey) {\r\n // skip if the event is unrecognized\r\n lastCached = cacheKey;\r\n }\r\n\r\n process.env.NODE_ENV === 'development' && console.log('useGoogleAnalytics', 'cacheKey', cacheKey);\r\n\r\n React.useEffect(() => {\r\n if (isBrowser) {\r\n void pushGoogleAnalyticsEvent(payload, actionContext);\r\n }\r\n }, [isBrowser, cacheKey || lastCached, ...(deps ?? [])]);\r\n};\r\n\r\nexport { useGoogleAnalytics };\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { Module, Node, Waiting } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { useGoogleAnalytics } from '../../../common/useGoogleAnalytics';\r\n\r\nimport {\r\n ICheckoutViewProps,\r\n ILineItem,\r\n ILineItemDeliveryGroup,\r\n ILineItems,\r\n IOrderSummary,\r\n IPickUpAtStore,\r\n IEmailDelivery\r\n} from '@msdyn365-commerce-modules/checkout';\r\nimport { IInvoiceSummaryLines } from '@msdyn365-commerce-modules/invoice-payment-summary';\r\nimport { GaPayload } from '../../../common/pushGoogleAnalyticsEvent';\r\nimport { CartGuide } from './components/CartGuide';\r\n\r\ninterface IInvoicePaymentSummary {\r\n heading?: React.ReactNode;\r\n lines?: IInvoiceSummaryLines;\r\n}\r\n\r\nexport const PickUpAtStoreComponent: React.FC = ({ PickUpAtStore, label, location }) => (\r\n \r\n {label}\r\n {location}\r\n \r\n);\r\n\r\nexport const EmailDeliveryComponent: React.FC = ({ EmailDelivery, label }) => {label};\r\n\r\nexport const LineItemComponent: React.FC = ({ LineItem, item, pickUpAtStore, emailDelivery }) => (\r\n \r\n {item}\r\n {pickUpAtStore && }\r\n {emailDelivery && }\r\n \r\n);\r\n\r\nexport const LineItemGroupComponent: React.FC = ({ LineItemDeliveryGroup, LineItemList, heading, lineItems }) => (\r\n \r\n {heading}\r\n \r\n {lineItems.map(lineItem => (\r\n \r\n ))}\r\n \r\n \r\n);\r\n\r\nexport const LineItemGroupComponentWithMultiplePickUp: React.FC = ({\r\n LineItemDeliveryGroup,\r\n LineItemList,\r\n heading,\r\n lineItems,\r\n lineItemWraper,\r\n lineItemWraperIcon\r\n}) => (\r\n \r\n {lineItemWraperIcon}\r\n {lineItemWraper}\r\n {heading}\r\n \r\n {lineItems.map(lineItem => (\r\n \r\n ))}\r\n \r\n \r\n);\r\n\r\nexport const LineItemComponentWithMultiplePickUp: React.FC = ({ LineItem, item, pickUpAtStore, emailDelivery }) => (\r\n \r\n {item}\r\n {emailDelivery && }\r\n \r\n);\r\n\r\nexport const PickUpAtStoreComponentWithMultiplePickUp: React.FC = ({ PickUpAtStore, label, location }) => (\r\n \r\n {label}\r\n {location}\r\n \r\n);\r\n\r\nexport const LineItemsComponent: React.FC = ({\r\n LineItems,\r\n Header,\r\n heading,\r\n editLink,\r\n itemsForPickup,\r\n itemsForShip,\r\n itemsForEmail,\r\n itemsGroupWithMulitplePickupMode\r\n}) => (\r\n \r\n \r\n {heading}\r\n {editLink}\r\n \r\n {itemsGroupWithMulitplePickupMode === undefined && itemsForPickup && }\r\n {itemsGroupWithMulitplePickupMode === undefined && itemsForEmail && }\r\n {itemsGroupWithMulitplePickupMode === undefined && itemsForShip && }\r\n {itemsGroupWithMulitplePickupMode !== undefined\r\n ? itemsGroupWithMulitplePickupMode.map((item, index) => {\r\n return ;\r\n })\r\n : null}\r\n \r\n);\r\n\r\nconst OrderSummaryComponent: React.FC = ({ heading, lines }) => (\r\n
\r\n {heading}\r\n
\r\n {lines && (\r\n <>\r\n {lines.subtotal}\r\n {lines.shipping}\r\n {lines.otherCharge}\r\n {lines.tax}\r\n {lines.totalDiscounts}\r\n {lines.loyalty}\r\n {lines.giftCard}\r\n {lines.orderTotal}\r\n \r\n )}\r\n
\r\n
\r\n);\r\n\r\nconst PaymentSummaryComponent: React.FC = ({ heading, lines }) => (\r\n
\r\n {heading}\r\n
\r\n {lines && (\r\n <>\r\n {lines.invoices}\r\n {lines.giftCard}\r\n {lines.loyalty}\r\n {lines.orderTotal}\r\n \r\n )}\r\n
\r\n
\r\n);\r\n\r\nconst CheckoutView: React.FC = props => {\r\n const {\r\n isPaymentVerificationRedirection,\r\n shouldEnableSinglePaymentAuthorizationCheckout,\r\n canShow,\r\n checkoutProps,\r\n headerProps,\r\n hasSalesOrder,\r\n hasInvoiceLine,\r\n bodyProps,\r\n mainProps,\r\n mainControlProps,\r\n sideProps,\r\n sideControlFirstProps,\r\n sideControlSecondProps,\r\n termsAndConditionsProps,\r\n orderConfirmation,\r\n loading,\r\n alert,\r\n title,\r\n guidedForm,\r\n orderSummary,\r\n invoicePaymentSummary,\r\n lineItems,\r\n placeOrderButton,\r\n termsAndConditions,\r\n keepShoppingButton,\r\n checkoutExpressPaymentContainer,\r\n data: { checkout, products }\r\n } = props;\r\n\r\n const cartRes = checkout?.result?.checkoutCart.cart;\r\n const productsRes = products?.result;\r\n\r\n process.env.NODE_ENV === 'development' && console.log('useGoogleAnalytics 1', JSON.parse(JSON.stringify(productsRes ?? null)));\r\n process.env.NODE_ENV === 'development' && console.log('useGoogleAnalytics 2', JSON.parse(JSON.stringify(cartRes ?? null)));\r\n\r\n const gaPayload = React.useMemo(() => {\r\n if (cartRes && productsRes) {\r\n const gaPayload: GaPayload = {\r\n event: 'begin_checkout',\r\n ecommerce: {\r\n value: cartRes.TotalAmount ?? 0,\r\n currency: 'CAD', // TODO: investigate why it's not available\r\n coupon: cartRes.Coupons?.map(c => c.Code)[0] ?? '',\r\n items: cartRes.CartLines?.map((l, i) => {\r\n const product = productsRes.find(p => p.RecordId === l.ProductId);\r\n const brandFromExt = product?.ExtensionProperties?.find(p => p.Key === 'Brand')?.Value?.StringValue;\r\n const variant = product?.Dimensions?.map(d => d.DimensionValue?.Value).join(',');\r\n const discount = (l.DiscountLines ?? []).reduce((a, b) => a + (b.Amount ?? 0), 0);\r\n return {\r\n recId: product?.RecordId,\r\n item_name: product?.Name ?? '',\r\n item_id: (product?.ProductNumber || product?.ItemId) ?? '',\r\n price: (l.Price ?? 0) - discount,\r\n discount: discount,\r\n quantity: l.Quantity ?? 1,\r\n item_variant: variant,\r\n pid: product?.ItemId ?? '',\r\n item_brand: brandFromExt ?? undefined,\r\n index: i\r\n };\r\n })\r\n }\r\n };\r\n\r\n return gaPayload;\r\n }\r\n\r\n return undefined;\r\n }, [cartRes, productsRes]);\r\n\r\n useGoogleAnalytics(gaPayload, props.context.actionContext);\r\n\r\n return (\r\n \r\n {!hasSalesOrder && {title}}\r\n {!hasSalesOrder && isPaymentVerificationRedirection && shouldEnableSinglePaymentAuthorizationCheckout && !alert && !loading && (\r\n \r\n )}\r\n {!hasSalesOrder && (\r\n \r\n {loading}\r\n {alert}\r\n {canShow && (\r\n <>\r\n \r\n {checkoutExpressPaymentContainer}\r\n {guidedForm}\r\n {termsAndConditions}\r\n \r\n {placeOrderButton}\r\n {keepShoppingButton}\r\n \r\n \r\n \r\n {!hasInvoiceLine\r\n ? orderSummary && \r\n : invoicePaymentSummary && }\r\n \r\n {termsAndConditions}\r\n {placeOrderButton}\r\n {keepShoppingButton}\r\n \r\n {lineItems && }\r\n \r\n {termsAndConditions}\r\n {placeOrderButton}\r\n {keepShoppingButton}\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n {hasSalesOrder && orderConfirmation}\r\n \r\n );\r\n};\r\n\r\nexport default CheckoutView;\r\n","import React from 'react';\r\n\r\nconst CartGuide = () => {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n Having trouble? Contact us!\r\n
\r\n
\r\n {\r\n const iframe = document.getElementById('launcher') as HTMLIFrameElement;\r\n\r\n try {\r\n iframe?.contentWindow?.document.querySelector('button')?.click();\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n }}\r\n >\r\n Live Chat\r\n \r\n
\r\n
\r\n 1 844-976-1699\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Shipping Policy\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport { CartGuide };\r\n","const binding = { modules: {}, dataActions: {} };\n\n const registerActionId = (actionPath) => {\n if (binding.dataActions[actionPath] &&\n binding.dataActions[actionPath].default &&\n binding.dataActions[actionPath].default.prototype &&\n binding.dataActions[actionPath].default.prototype.id) {\n binding.dataActions[binding.dataActions[actionPath].default.prototype.id] = binding.dataActions[actionPath];\n } else {\n Object.keys(binding.dataActions[actionPath] || {}).forEach(exportName => {\n if (binding.dataActions[actionPath][exportName] &&\n binding.dataActions[actionPath][exportName].prototype &&\n binding.dataActions[actionPath][exportName].prototype.Action) {\n binding.dataActions[binding.dataActions[actionPath][exportName].prototype.id] = binding.dataActions[actionPath][exportName];\n }\n })\n }\n };\n\n const registerSanitizedActionPath = (sanitizedActionPath, dataAction) => {\n if (process.env.NODE_ENV === 'development') {\n if (!dataAction.default) {\n throw new Error('Data action path does not have a default export');\n }\n if (!(dataAction.default.prototype.id && binding.dataActions[dataAction.default.prototype.id]) || !binding.dataActions[sanitizedActionPath]) {\n binding.dataActions[sanitizedActionPath] = dataAction;\n }\n } else {\n binding.dataActions[sanitizedActionPath] = dataAction;\n if (!binding.dataActions[sanitizedActionPath].default) {\n throw new Error('Data action path ' + sanitizedActionPath + ' does not have a default export');\n }\n binding.dataActions[sanitizedActionPath].default.prototype.RegistrationId = sanitizedActionPath;\n if (binding.dataActions[sanitizedActionPath].default.prototype.id) {\n binding.dataActions[binding.dataActions[sanitizedActionPath].default.prototype.id] = sanitizedActionPath;\n }\n }\n };\n \n\n (binding.modules['checkout'] = {\n c: () => require('@msdyn365-commerce-modules/checkout/dist/lib/modules/checkout/checkout'),\n $type: 'containerModule',\n da: [{name:'catalogs', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-catalogs', runOn: 0},{name:'channelDeliveryOptionConfig', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-channel-delivery-option-configuration', runOn: 0},{name:'checkout', path:'@msdyn365-commerce/global-state/dist/lib/data-actions/checkout-state-data-action', runOn: 1},{name:'customerInformation', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-customer', runOn: 0},{name:'deliveryOptions', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-delivery-options-for-cartlines', runOn: 1},{name:'featureState', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-feature-state', runOn: 0},{name:'orgUnitLocations', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/search-org-unit-locations', runOn: 1},{name:'products', path:'@msdyn365-commerce-modules/checkout/dist/lib/modules/checkout/actions/get-products-in-active-checkout-cart', runOn: 1}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'checkout',\n p: 'checkout',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/checkout/dist/lib/modules/checkout'\n });\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/checkout/dist/lib/modules/checkout/actions/get-products-in-active-checkout-cart';\n let dataAction = require('@msdyn365-commerce-modules/checkout/dist/lib/modules/checkout/actions/get-products-in-active-checkout-cart');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-catalogs';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-catalogs');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-channel-delivery-option-configuration';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-channel-delivery-option-configuration');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-customer';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-customer');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-delivery-options-for-cartlines';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-delivery-options-for-cartlines');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-feature-state';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-feature-state');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/search-org-unit-locations';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/search-org-unit-locations');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce/global-state/dist/lib/data-actions/checkout-state-data-action';\n let dataAction = require('@msdyn365-commerce/global-state/dist/lib/data-actions/checkout-state-data-action');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n \n window.__bindings__ = window.__bindings__ || {};\n window.__bindings__.modules = {\n ...window.__bindings__.modules || {},\n ...binding.modules\n };\n \n window.__bindings__.dataActions = {\n ...window.__bindings__.dataActions || {},\n ...binding.dataActions\n };\n export const viewDictionary = {};\n viewDictionary['__local__|__local__|themes|henrys|views|checkout'] = {\n c: () => require('partner/themes/henrys/views/checkout.view.tsx'),\n cn: '__local__-__local__-checkout'\n };\nviewDictionary['@msdyn365-commerce-modules|checkout|modules|checkout|checkout'] = {\n c: () => require('@msdyn365-commerce-modules/checkout/dist/lib/modules/checkout/checkout.view.js'),\n cn: '@msdyn365-commerce-modules-checkout-checkout'\n };\nwindow.__bindings__ = window.__bindings__ || {};\nwindow.__bindings__.viewDictionary = {\n ...window.__bindings__.viewDictionary || {},\n ...viewDictionary\n };","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n CacheType,\n createObservableDataAction,\n IAction,\n IAny,\n IActionContext,\n IActionInput,\n ICreateActionContext,\n IGeneric\n} from '@msdyn365-commerce/core';\nimport { OrgUnitLocation } from '@msdyn365-commerce/retail-proxy';\nimport { searchOrgUnitLocationsAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/OrgUnitsDataActions.g';\n\n/**\n * Input for search-org-unit-locations data action.\n */\nexport class SearchOrgUnitLocationsInput implements IActionInput {\n public getCacheKey = () => 'SearchOrgUnitLocations';\n\n public getCacheObjectType = () => 'SearchOrgUnitLocations';\n\n public dataCacheType = (): CacheType => 'request';\n}\n\n/**\n * Creates the input required to make the retail api call.\n * @param inputData -- Input data.\n * @returns -- IActionInput.\n */\nexport const createSearchOrgUnitLocationsInputFunc = (inputData: ICreateActionContext>): IActionInput => {\n return new SearchOrgUnitLocationsInput();\n};\n\n/**\n * Calls the Retail API and returns all the orgUnitLocations as array.\n * @param input - Input.\n * @param ctx - Context.\n * @returns - orgUnitLocations.\n */\nexport async function getSearchOrgUnitLocationsAction(\n input: SearchOrgUnitLocationsInput,\n context: IActionContext\n): Promise {\n const OrgUnitLocations = await searchOrgUnitLocationsAsync(\n {\n callerContext: context\n },\n {}\n );\n\n return OrgUnitLocations;\n}\n\nexport const retailActionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce-modules/retail-actions/search-org-unit-locations',\n action: >getSearchOrgUnitLocationsAction,\n input: createSearchOrgUnitLocationsInputFunc\n});\n\nexport default retailActionDataAction;\n","module.exports = React;","module.exports = ReactDOM;"],"names":["async","getProductDetails","productId","channelId","ctx","productDetails","tenantId","getRnrPartnerId","serviceEndPoint","getRnrEndpointId","productResult","ProductsDataActions","callerContext","product","getProductAvailabilitiesForSelectedVariant","ProductAvailabilitiesForSelectedVariantInput","then","productAvailabilities","productAvailableQuantity","catch","error","telemetry","exception","getPriceForSelectedVariant","PriceForSelectedVariantInput","undefined","productPrice","getDimensionsForSelectedVariant","GetDimensionsForSelectedVariantInput","productDimensions","getCartStateData","GetCartStateDataInput","requestContext","apiSettings","cartState","cart","getRatingsSummary","GetRatingsSummaryInput","toString","ratingsSummaryData","ratingsSummary","GetCategoryPathsInput","constructor","context","categoryPathLooksups","getCacheKey","buildCacheKey","base","this","constructedCacheKey","locale","catalogId","getCacheObjectType","dataCacheType","getLocale","ChannelId","CatalogId","getCatalogId","forEach","categoryPath","ProductId","createGoogleAnalyticsEvent","eventName","actionContext","_actionContext$reques","channel","RecordId","items","CartLines","i","cartLine","_product$Dimensions","_cartLine$DiscountLin","_product$ExtensionPro","_product$Name","_ref","_product$Price","_cartLine$Quantity","variant","Dimensions","map","d","_d$DimensionValue","DimensionValue","Value","join","discount","DiscountLines","reduce","a","b","_b$Amount","Amount","brand","ExtensionProperties","find","ep","Key","StringValue","item","recId","item_id","ProductNumber","ItemId","item_name","Name","index","item_variant","price","Price","pid","item_brand","quantity","Quantity","push","event","ecommerce","currency","value","_b$price","pushGoogleAnalyticsEvent","payload","dataLayer","window","gaItem","_payload$ecommerce$it","_payload$ecommerce","categoryPaths","getCategoryPaths","_categoryPaths$0$Name","_categoryPaths$1$Name","_categoryPaths$2$Name","_categoryPaths$3$Name","_categoryPaths$4$Name","length","item_category","item_category2","item_category3","item_category4","item_category5","lastCached","useGoogleAnalytics","deps","isBrowser","MsDyn365","cacheKey","React","_payload$ecommerce4","_payload$ecommerce2","_payload$ecommerce3","_payload$ecommerce5","transaction_id","PickUpAtStoreComponent","PickUpAtStore","label","location","Node","Object","assign","EmailDeliveryComponent","_ref2","EmailDelivery","LineItemComponent","_ref3","LineItem","pickUpAtStore","emailDelivery","LineItemGroupComponent","_ref4","LineItemDeliveryGroup","LineItemList","heading","lineItems","lineItem","key","LineId","LineItemGroupComponentWithMultiplePickUp","_ref5","lineItemWraper","lineItemWraperIcon","LineItemComponentWithMultiplePickUp","_ref6","PickUpAtStoreComponentWithMultiplePickUp","_ref7","LineItemsComponent","_ref8","LineItems","Header","editLink","itemsForPickup","itemsForShip","itemsForEmail","itemsGroupWithMulitplePickupMode","OrderSummaryComponent","_ref9","lines","className","subtotal","shipping","otherCharge","tax","totalDiscounts","loyalty","giftCard","orderTotal","PaymentSummaryComponent","_ref10","invoices","props","_checkout$result","isPaymentVerificationRedirection","shouldEnableSinglePaymentAuthorizationCheckout","canShow","checkoutProps","headerProps","hasSalesOrder","hasInvoiceLine","bodyProps","mainProps","mainControlProps","sideProps","sideControlFirstProps","sideControlSecondProps","termsAndConditionsProps","orderConfirmation","loading","alert","title","guidedForm","orderSummary","invoicePaymentSummary","placeOrderButton","termsAndConditions","keepShoppingButton","checkoutExpressPaymentContainer","data","checkout","products","cartRes","result","checkoutCart","productsRes","gaPayload","_cartRes$TotalAmount","_cartRes$Coupons$map$","_cartRes$Coupons","_cartRes$CartLines","TotalAmount","coupon","Coupons","c","Code","l","_l$DiscountLines","_ref11","_l$Price","_l$Quantity","_product$ItemId","p","brandFromExt","Module","Waiting","CartGuide","href","onClick","iframe","document","getElementById","_iframe$contentWindow","contentWindow","querySelector","click","err","console","binding","modules","dataActions","registerSanitizedActionPath","sanitizedActionPath","dataAction","default","Error","prototype","RegistrationId","id","require","$type","da","name","path","runOn","iNM","ns","n","pdp","md","__bindings__","_objectSpread","viewDictionary","cn","SearchOrgUnitLocationsInput","createSearchOrgUnitLocationsInputFunc","inputData","getSearchOrgUnitLocationsAction","input","searchOrgUnitLocationsAsync","retailActionDataAction","createObservableDataAction","action","module","exports","ReactDOM"],"sourceRoot":""}