{"version":3,"file":"static/js/2fa1f86e20be24867901.bundle.js","mappings":";8JAuBA,MAAMA,EAA4CC,IAAA,IAAC,WAC/CC,EAAU,QACVC,EAAO,aACPC,EAAY,oBACZC,EACAC,UAAU,YAAEC,EAAW,WAAEC,EAAU,WAAEC,IACxCR,EAAA,OACGS,EAAAA,cAAA,OAAKC,UAAW,GAAGT,2BAAoCE,KACnDM,EAAAA,cAAA,OAAKC,UAAW,GAAGT,qBAAgD,SAAjBE,EAA0BI,EAAaD,GACxFJ,EAAQS,MAAQF,EAAAA,cAAA,QAAMC,UAAW,GAAGT,mBAA6BC,EAAQS,MACzEP,EACGK,EAAAA,cAAAA,EAAAA,SAAA,KACKP,EAAQU,QACLH,EAAAA,cAAA,QAAMC,UAAW,GAAGT,qBACfC,EAAQU,OACR,KAGRV,EAAQW,MAAQJ,EAAAA,cAAA,QAAMC,UAAW,GAAGT,mBAA6BC,EAAQW,MACzEX,EAAQY,OAASL,EAAAA,cAAA,QAAMC,UAAW,GAAGT,oBAA8B,KAAKC,EAAQY,SAChFZ,EAAQa,QAAUN,EAAAA,cAAA,QAAMC,UAAW,GAAGT,qBAA+B,KAAKC,EAAQa,UAClFb,EAAQc,SAAWP,EAAAA,cAAA,QAAMC,UAAW,GAAGT,sBAAgC,IAAIC,EAAQc,WACnFd,EAAQe,0BACLR,EAAAA,cAAA,QAAMC,UAAW,GAAGT,uCAAiD,IAAIC,EAAQe,4BAEpFf,EAAQgB,OACLT,EAAAA,cAAA,QAAMC,UAAW,GAAGT,oBAChBQ,EAAAA,cAAA,QAAMC,UAAW,GAAGT,0BAAoCO,GACxDC,EAAAA,cAAA,QAAMC,UAAW,GAAGT,wBAAgC,cAAc,SACjEC,EAAQgB,QAKrBhB,EAAQiB,aAAeV,EAAAA,cAAA,QAAMC,UAAW,GAAGT,2BAAqCC,EAAQiB,eAKpG,EAAeV,EAAAA,KAAWV,oFCAnB,MA0BMqB,EAAqDC,IAAgD,IAAAC,EAAAC,EAAAC,EAC9G,MAAMC,EAAWJ,EAAMK,KAAKD,SAASE,QAAOC,IAAYC,EAAAA,iBAAiBC,kBAAkBF,EAAQG,iBAC7FC,EAAcX,EAAMY,OACpB,GACiD,QAD/CX,EACFD,EAAMa,UAAUC,yCAAiC,IAAAb,EAAAA,EAAID,EAAMa,UAAUE,4BACrEC,EAAwE,QAAzDd,EAAGF,EAAMa,UAAUI,8CAAsC,IAAAf,EAAAA,EAAIF,EAAMa,UAAUK,gCAGlG,GAD2B,IACvBlB,EAAMK,KAAKD,SAASe,SAAkCnB,EAAMK,KAAKD,SAAS,GAAGgB,mBAE7E,OACIhC,IAAAA,cAAA,UACIC,UAAWW,EAAMX,UAAS,aACdW,EAAMa,UAAUQ,mCAC5BC,MAAOtB,EAAMa,UAAUQ,mCACvBE,UAAQ,GAEPZ,GAKb,IAAKa,EAAAA,gBAAgBC,YAAYrB,GAE7B,OACIhB,IAAAA,cAAA,UAAQC,UAAWW,EAAMX,UAAS,aAAc2B,EAAiBM,MAAON,EAAiBO,UAAQ,GAC5FZ,GAKb,MAAMe,EAAoCtB,EAAS,GAGnD,IAAKJ,EAAM2B,oBAAqB,CAC5B,MAAMC,EAA6B,CAC/BC,QAAS,OAEb,OACIzC,IAAAA,cAAC0C,EAAAA,OAAM,CACHzC,UAAWW,EAAMX,UACjBuC,MAAOA,EAAK,aACAZ,EACZM,MAAON,EACPe,KAAML,EAAaM,YAElBrB,GAKb,MACMsB,EA9EuBjC,CAAAA,IAAiD,IAAAkC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAC9E,MAAO,CACHC,aAAsD,QAA1Cb,EAAElC,EAAMa,UAAUmC,gCAAwB,IAAAd,EAAAA,EAAI,GAC1De,qBAAiE,QAA7Cd,EAAEnC,EAAMa,UAAUqC,mCAA2B,IAAAf,EAAAA,EAAI,GACrEgB,uBAA0G,QAApFf,EAAEpC,EAAMa,UAAUuC,0EAAkE,IAAAhB,EAAAA,EAAI,GAC9GiB,kBAA6D,QAA5ChB,EAAErC,EAAMa,UAAUyC,kCAA0B,IAAAjB,EAAAA,EAAI,GACjEkB,qBAAyE,QAArDjB,EAAEtC,EAAMa,UAAU2C,2CAAmC,IAAAlB,EAAAA,EAAI,GAC7EmB,sBAAuE,QAAlDlB,EAAEvC,EAAMa,UAAU6C,wCAAgC,IAAAnB,EAAAA,EAAI,GAC3EoB,kBAAgE,QAA/CnB,EAAExC,EAAMa,UAAU+C,qCAA6B,IAAApB,EAAAA,EAAI,GACpEqB,cAA4C,QAA/BpB,EAAEzC,EAAMa,UAAUgD,qBAAa,IAAApB,EAAAA,EAAI,GAChDqB,kBAAoD,QAAnCpB,EAAE1C,EAAMa,UAAUiD,yBAAiB,IAAApB,EAAAA,EAAI,GACxDqB,iBAAkD,QAAlCpB,EAAE3C,EAAMa,UAAUkD,wBAAgB,IAAApB,EAAAA,EAAI,GACtDqB,kBAAoD,QAAnCpB,EAAE5C,EAAMa,UAAUmD,yBAAiB,IAAApB,EAAAA,EAAI,GACxDqB,0BAAoG,QAA3EpB,EAAE7C,EAAMa,UAAUqD,iEAAyD,IAAArB,EAAAA,EAAI,GACxGsB,mCAAsH,QAApFrB,EAAE9C,EAAMa,UAAUuC,0EAAkE,IAAAN,EAAAA,EAAI,GAC1HsB,uBAAwBpE,EAAMa,UAAUwD,6CACxCC,aAActE,EAAMa,UAAU0D,yBAC9BC,gBAAiBxE,EAAMa,UAAU4D,6BA6DMC,CAAiB1E,GACtD2E,EAA0E,QAArDxE,EAAGH,EAAM4E,QAAQC,cAAcC,eAAeC,eAAO,IAAA5E,OAAA,EAAlDA,EAAoD6E,sBAClF,OACI5F,IAAAA,cAAC6F,EAAAA,mBAAkB,CACfC,cAAevE,MAAAA,EAAAA,EAAe,GAC9BwE,eAAe,GACfC,oBAAqBpE,EACrBqE,SAAU3D,EAAa4D,UAAUC,SACjCC,GAAIxF,EAAMwF,GACVC,SAAUzF,EAAMyF,SAChBpG,UAAWW,EAAMX,UACjBqG,eAAeC,EAAAA,EAAAA,IAAW,OAAQ3F,EAAM4E,QAAQC,eAChDxE,KAAM,CAAEE,QAASmB,EAAahB,eAC9BkE,QAAS5E,EAAM4E,QACf3C,cAAeA,EACf2D,wBAhBgC,EAiBhCC,qBAAsBzF,EACtB0F,6BAA8BpE,EAAa4D,UAAUS,eAAiBpB,gFC/ElF,MAcaqB,EAAYrH,IAsBG,IAtBF,WACtBC,EAAU,WACVqH,EAAU,YACVC,EAAW,aACXC,EAAY,mBACZC,EAAkB,kCAClBC,EAAiC,0BACjCC,EAAyB,uBACzBC,EAAsB,aACtBC,EAAY,aACZC,EACA5F,WAAW,eACP6F,EAAc,gBACdC,EAAe,kBACfC,EAAiB,kBACjBC,EAAiB,qBACjBC,EAAoB,uBACpBC,EAAsB,+BACtBC,EAA8B,iBAC9BC,EAAgB,mBAChBC,IAEOvI,EACX,MAAMwI,GAASC,EAAAA,EAAAA,IAAgBnB,GAAYoB,KAAIC,IAC3C,MAAM,aAAExI,EAAY,YAAEyI,EAAW,MAAEC,EAAOvB,WAAYwB,GAAgBH,EAChEI,EAAsB,IAAVF,EAAcd,EAAiBC,EAC3CgB,EAAwBd,IAAqBe,EAAAA,EAAAA,QAAOf,EAAmBW,EAAOE,GAC9EG,EAAsBpB,EACtBO,IAAkCY,EAAAA,EAAAA,QAAOZ,EAAgCQ,EAAOE,EAAWlB,GAC3FO,IAA0Ba,EAAAA,EAAAA,QAAOb,EAAwBS,EAAOE,GAChEI,EAAyBZ,IAAsBU,EAAAA,EAAAA,QAAOV,EAAoBM,EAAOE,GAEjFK,EAAa,CAAE1I,UAAW,GAAGT,yBADK,SAAjBE,EAA0B,OAA0B,UAAjBA,EAA2B,QAAU,wBACIyI,KAE7FS,EAhDmFC,EAC7FrJ,EACA2H,KAEA,MAAMlH,EAAY,GAAGT,iBAOrB,MANoC,CAChCS,UAAW6I,GAAAA,CACP7I,EACAkH,EAAyB,GAAGlH,8BAAwC,GAAGA,kCAwCnD4I,CAAmBrJ,EAAY2H,GACjD1H,EAAU4I,EAAY,GAAG5I,QACzBsJ,EAAeV,EAAY,GAAGU,aAC9BC,EAAmD,eAApCX,EAAY,GAAGpH,KAAKkH,YACnCc,EAAmBZ,EAAY,GAAGa,mBAClCC,EAAqBd,EAAY,GAAGpH,KAAKkH,YA0C/C,MAAO,CACHQ,WAAAA,EACAC,gBAAAA,EACAQ,SA3C6B,CAC7BC,cAAe,CAAEpJ,UAAW,GAAGT,qBAFZyH,EAAoC,kBAAoB,MAG3EqC,YAAa,CAAErJ,UAAW,GAAGT,yBAC7B+J,QACIvJ,EAAAA,cAAA,QAAMC,UAAW,GAAGT,6BACfwJ,EACKhC,EACqB,WAAjBtH,EACI8H,EACiB,SAAjB9H,EACAgI,EACiB,UAAjBhI,EACAmI,EACAnI,EACJ2I,EAAY,GAAG3I,aACnB2I,EAAY,GAAGF,aAG7BqB,WAAYR,EACRhJ,EAAAA,cAAA,QAAMC,UAAW,GAAGT,sCAAgD6I,EAAY,GAAGF,kBAEnFsB,EAEJrB,OAAQpB,GAAsBhH,EAAAA,cAAA,QAAMC,UAAW,GAAGT,iCAA2C,IAAI4I,KAASE,MAC1GoB,mBACI1C,GAAuC,SAAjBtH,EAClBM,EAAAA,cAAA,QAAMC,UAAW,GAAGT,uCAAiDiJ,GACpD,WAAjB/I,EACAM,EAAAA,cAAA,QAAMC,UAAW,GAAGT,sCAAgD+I,GACnD,UAAjB7I,EACAM,EAAAA,cAAA,QAAMC,UAAW,GAAGT,uCAAiDkJ,GAErE1I,EAAAA,cAAA,QAAMC,UAAW,GAAGT,sCAAgD+I,GAE5EQ,aAAAA,EACAtJ,QAAAA,EACAyJ,mBAAoBD,EACpBlC,aAAcA,IAAgB,EAC9BoC,mBAAAA,GAMAtC,WAAYwB,EACZ5I,QAASqH,GAAerH,EACxBkK,oBAAqBtB,EAAY,GAAGsB,oBACpC1I,KAAM,CACFmH,MAAAA,EACA1I,aAAAA,EACAyI,YAAAA,GAEJjB,0BAAAA,MAIR,MAAO,CACH0C,YAAa,CAAE3J,UAAW,GAAGT,aAC7BuI,OAAAA,8JChHR,MA6BM8B,EAAsBA,CACxBC,EACAtK,EACAuK,EACAC,EACAC,KAEA,MAAMC,EACFlK,EAAAA,cAAA,QAAMC,UAAW,GAAGT,6CACf,GAAGuK,KACJ/J,EAAAA,cAAA,YAAO8J,IAGf,OACIA,SACsBL,IAArBO,GAAkCA,EAC/BhK,EAAAA,cAAA,WACKkK,EACDlK,EAAAA,cAAA,OAAKC,UAAW,GAAGT,+BAAuC,kBAAkB,gBACxEQ,EAAAA,cAACmK,IAAM,CAACC,MAAON,EAAoBO,KAAM,KACzCrK,EAAAA,cAAA,QAAMoG,GAAG,eAAenG,UAAU,4BAC7BgK,KAKbC,IAYNI,EAAeA,CAAC9K,EAAoB+K,EAAaC,SACtCf,IAATc,GAAsBE,EAAAA,iBAAiBC,mBAAmBH,EAAKI,aACxD,KAGP3K,EAAAA,cAAA,OAAKC,UAAW,GAAGT,6BACfQ,EAAAA,cAAA,OAAKC,UAAW,GAAGT,oCACfQ,EAAAA,cAAA,OAAKC,UAAW,GAAGT,0CAAoDgL,IAE3ExK,EAAAA,cAAA,OAAKC,UAAW,GAAGT,qCAA+C+K,EAAKI,cA2CtEC,EAAsBrL,IAsCa,IAtCZ,WAChCC,EAAU,mBACVsK,EAAkB,YAClBe,EAAW,eACXC,EAAc,iBACdC,EAAgB,gBAChBC,EAAe,aACfC,EAAY,YACZC,EAAW,OACXC,EAAM,aACNC,EAAY,cACZC,EAAa,SACbC,EAAQ,WACRC,EAAU,QACVC,EAAO,UACPC,EAAS,MACTrD,EACA3G,WAAW,oBACPiK,EAAmB,eACnBpE,EAAc,gBACdC,EAAe,aACfoE,EAAY,sBACZC,EAAqB,qBACrBC,EAAoB,oBACpBC,EAAmB,eACnBC,EAAc,oBACdhC,EAAmB,mBACnBiC,EAAkB,2BAClBC,EAA0B,mBAC1BC,EAAkB,aAClBjC,EAAY,0BACZkC,EAAyB,UACzB3B,GACH,eACD4B,EAAc,iBACdpC,EAAgB,cAChBqC,EAAa,KACb9B,GACqBhL,EACrB,MAAM+M,EAlEoBC,EAC1BxB,EACAvL,EACA2M,EACArB,EACAkB,EACAnB,EACAoB,KAEA,IAAIK,EACJ,GAtG+B,IAsG3BvB,EACAuB,EAAkBtM,EAAAA,cAAA,QAAMC,UAAW,GAAGT,qCAA+C2M,QAClF,GAAIrB,EAAgB,CACvB,MAAM0B,EAAiB,GAAGR,MAAAA,EAAAA,EAAsB,MAAMnB,MAAAA,EAAAA,EAAe,KACrEyB,EAAkBtM,EAAAA,cAAA,QAAMC,UAAW,GAAGT,oDAA8DgN,OACjG,CACH,MAAMC,EAAoB,GAAGR,MAAAA,EAAAA,EAA8B,MAAMpB,MAAAA,EAAAA,EAAe,KAChFyB,EAAkBtM,EAAAA,cAAA,QAAMC,UAAW,GAAGT,qCAA+CiN,GAEzF,OAAOH,GA+CkCC,CACrCxB,EACAvL,EACA2M,EACArB,EACAkB,EACAnB,EACAoB,GAsDJ,MAnDyB,CACrBS,sBAAuB,CAAEzM,UAAW,GAAGT,wBACvCqL,YAAaG,GAAmBH,GAAeyB,EAC/CxB,eAAgBE,GAAmBF,GAC/B9K,EAAAA,cAAA,QAAMC,UAAW,GAAGT,wCAAkDsL,GAE1E6B,SAAUC,EACNpN,EACA6L,EACAC,EACAC,EACAK,EACAC,EACAC,GAEJN,QAASA,EAAUxL,EAAAA,cAAA,QAAMC,UAAW,GAAGT,iCAA2C,GAAGmM,KAAgBH,KAAoB,GACzHC,UAAWA,EACPzL,EAAAA,cAAA,QAAMC,UAAW,GAAGT,mCAA6C,GAAGuM,KAAkBN,KAEtF,GAEJR,aAAcA,GACVjL,EAAAA,cAAA,QAAMC,UAAW,GAAGT,sCACfkM,EACD1L,EAAAA,cAAA,YAAOiL,IAGfC,aAAckB,GAAkBlB,GAC5BlL,EAAAA,cAAA,QAAMC,UAAW,GAAGT,qCACf0M,EACA,IACAhB,GAGT9C,OAAQgE,QAA4B3C,IAAVrB,GAAuBA,EAAQ,GACrDpI,EAAAA,cAAA,QAAMC,UAAW,GAAGT,8BACL,IAAV4I,EAAc,GAAGA,KAASd,IAAmB,GAAGc,KAASb,KAGlE4D,QAASiB,IAAmBjB,GAAqB,IAAXA,IAClCnL,EAAAA,cAAC6M,EAAAA,eAAcC,OAAAC,OAAA,GACP3B,EAAY,CAChBnL,UAAW,GAAGT,8BACdyB,KAAM,CAAE+L,MAAO,CAAEC,wBAAyB9B,IAC1C+B,aAAcb,KAGtBvC,mBAAoBD,EAAoBC,EAAoBtK,EAAYuK,EAAqBC,EAAkBC,GAC/GM,KAAMD,EAAa9K,EAAY+K,EAAMC,KAoBhC2C,EAA6GA,CACtHC,EACAC,KACA,IAAAC,EACA,MAAMC,EAAeF,MAAAA,OAAiB,EAAjBA,EAAmBG,MAAK7H,GAClCA,EAAQ8H,WAAaL,EAAMM,YAItC,OADsC,QAArBJ,EAAGC,MAAAA,OAAY,EAAZA,EAAcrN,YAAI,IAAAoN,EAAAA,EAAI,IAUjCK,EAA8HA,CACvIP,EACAC,KAEA,MAAME,EAAeF,MAAAA,OAAiB,EAAjBA,EAAmBG,MAAK7H,GAClCA,EAAQ8H,WAAaL,EAAMM,YAItC,OADoBH,MAAAA,OAAY,EAAZA,EAAcK,YAAYC,OAUrCC,EAAuBA,CAAC/C,EAAsCD,IAhRxC,IAiRxBC,IAAoDD,EASlDiD,EAA+GA,CACxHX,EACAY,KACA,IAAAC,EACA,MAAMC,EAAuBF,MAAAA,OAAgB,EAAhBA,EAAkBR,MAAKW,GACzCA,EAAST,YAAcN,EAAMM,YAIxC,OADoD,QAAhCO,EAAGC,MAAAA,OAAoB,EAApBA,EAAsB5O,eAAO,IAAA2O,EAAAA,EAAI,IAmB/CG,EAA2BA,CACpCxN,EACApB,EACA4N,EACAhC,EACAiC,EACAW,EACA1C,EACAC,EACAP,EACAoB,EACApC,KACwB,IAAAqE,EACxB,MAAM,UACF5M,EACA+D,SACI8I,SACIC,aAAa,UAAEC,MAGvB5N,EAME6N,KAHqBrB,EAAMM,WAAaN,EAAMM,YAGhCN,EAAMsB,OAAStB,EAAMsB,MAAM3M,OAAS,GAElD4M,EAASC,GAAAA,CAAIhO,EAAO,2BAA6B,QACjDwH,EAAQgF,EAAMyB,YAAczM,EAAAA,gBAAgBC,YAAY+K,EAAMyB,aAAcC,EAAAA,EAAAA,IAAW1B,EAAMyB,YAAc,EAC3G9D,EAAmB4C,EAAyBP,EAAOC,GACnDvC,EAAiBiD,EAAuBX,EAAOY,GAE/Ce,EAAYN,GAAarM,EAAAA,gBAAgBC,YAAY+K,EAAMsB,OAAStB,EAAMsB,MAAM3M,YAAS0H,EAGzFc,OAAqBd,IAAdsF,EAA0B3B,EAAMsB,MAAMK,EAAY,QAAKtF,EAEpE,MAAO,CACHjK,WAAAA,EACA0L,YAAckC,EAAM4B,iBAAmB,IAAIC,KAAK7B,EAAM4B,iBAAiBE,mBAAmBP,IAAY,GACtGnD,QAAS4B,EAAM+B,QACf9C,cAAee,EAAMgC,aACrB9D,SAAUA,EACVC,WAAYA,EACZ8D,WAAO5F,EACP6F,WAAYhE,MAAAA,OAAQ,EAARA,EAAUiE,WACtB9D,UAAW2B,EAAMoC,UACjBxE,gBAAAA,EAGAC,aAAcmC,EAAMqC,aACpB3F,mBAAoBsD,EAAMsC,mBAC1B7E,YAAasC,EAAoBC,EAAOC,GACxCvC,eAAgBA,EAChBK,OAAyB,QAAnBkD,EAAEjB,EAAMuC,mBAAW,IAAAtB,EAAAA,EAAI,EAC7BjD,aAAAA,EACAhD,MAAAA,EACA3G,UAAAA,EACA2K,eAAAA,EACApC,iBAAAA,EACAe,iBAAkBA,EAClBM,cAAeyC,EAAqB/C,EAAkBD,GACtDP,KAAMA,IAIRqC,EAAcA,CAChBpN,EACA6L,EACAC,EACAC,EACAK,EACAC,EACAC,KAEA,IAAI8D,EAEJ,GAAIrE,EAAY,CACZ,MAAMsE,KAA4BtE,EAAWuE,UAAWvE,EAAWwE,WAC7DC,KACFzE,EAAW0E,aAAc1E,EAAW2E,eAAgB5E,MAAAA,OAAQ,EAARA,EAAU6E,iBAAkB5E,EAAW0E,YAE/F,IACIG,EADAC,EAAmC9E,EAAW2E,aAE9CI,GAAsC,EACtCC,GAA+B,EAC/BC,GAA8C,EAE9CX,EAEIxE,IACAkF,GAAsB,EACtBF,EAAe9E,EAAWwE,UAC1BK,EAAuB7E,EAAW2E,aAE9BF,IACAQ,GAAqC,IAMzCR,IACAM,GAA6B,GAIrCV,EACI5P,EAAAA,cAAA,OAAKC,UAAW,GAAGT,4BACdoM,EAAqB,IAAE5L,EAAAA,cAAA,QAAMC,UAAU,UAAUoQ,GAAgB,KAAY,IAC7EA,GAAgBC,GAA8B,IAAIzE,IAClD0E,GACGvQ,EAAAA,cAAA,WACK8L,EAAmB,IAAE9L,EAAAA,cAAA,QAAMC,UAAU,UAAUmQ,GAAwB,KAAY,IACnFA,GAAwBI,GAAsC,IAAI3E,MAOvF,OAAO+D,sGC7WNa,qGAAL,SAAKA,GACDA,EAAA,YACAA,EAAA,cACAA,EAAA,oBACAA,EAAA,gBAJJ,CAAKA,IAAAA,EAAgB,KAYrB,MAAMC,EAAgBC,GAA6C,KAC/DA,EAAoBC,YAAcD,EAAoBC,YAuNpDC,EAAoDjQ,IAA6B,IAAAkQ,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACnF,MAAMC,EAAiC,QAAtBP,EAAgB,QAAhBC,EAAGnQ,EAAMO,eAAO,IAAA4P,OAAA,EAAbA,EAAe7Q,YAAI,IAAA4Q,EAAAA,EAAIlQ,EAAMsF,UAAUyE,YACrDjF,EAAiB9E,EAAM0Q,qBAAqB9L,QAAQC,cAAcC,eAExE,GAAI9E,EAAM2Q,UAAW,CAAC,IAADC,EAAAC,EACjB,MAAMC,GAAmBC,EAAAA,EAAAA,qBACR,QAD2BH,EACxC5Q,EAAMO,eAAO,IAAAqQ,OAAA,EAAbA,EAAeI,OACflM,EAAe6I,YAC+B,QADpBkD,EAC1B7Q,EAAM0Q,qBAAqB9L,QAAQ8I,QAAQuD,WAAG,IAAAJ,GAAQ,QAARA,EAA9CA,EAAgDK,cAAM,IAAAL,OAAA,EAAtDA,EAAwDM,kBAE5D,MA/CoBC,EACxBxS,EACAkG,EACA2L,EACAlQ,EACAuQ,EACAO,EACAC,EACAC,IAGInS,EAAAA,cAACoS,EAAAA,GAAQ,MACJ,SAAAC,EAAA,QACIF,MAAAA,GAAAA,EAAgBG,WACbtS,EAAAA,cAAA,OAAKC,UAAW,GAAGT,yBACfQ,EAAAA,cAACuS,EAAAA,GAAK,CACF7M,eAAgBA,EAChBzF,UAAW,GAAGT,sBACdgT,QAASnB,EACToB,IAA6B,QAA1BJ,EAAElR,MAAAA,OAAO,EAAPA,EAASuR,uBAAe,IAAAL,EAAAA,EAAI,GACjCM,YAAajB,EACbO,aAAcA,EACdC,cAAeA,MAAAA,EAAAA,EAAiBU,EAAAA,GAChCC,oBAAoB,cAwBjCb,CACHpR,EAAMpB,WACNkG,EACA2L,EACAzQ,EAAMO,QACNuQ,EACAhM,EAAeuM,aACfrR,EAAM0Q,qBAAqBQ,OAAOI,cAClCtR,EAAMuR,gBAId,MAAM1L,EAAgD,QAA5BuK,EAAGpQ,EAAM+P,2BAAmB,IAAAK,EAAAA,EAAI,IAAI8B,EAAAA,oBAAoBlS,EAAMsF,UAAWtF,EAAMO,SAEnGgG,EAAyBvG,EAAMuG,wBAA0BV,EAAqBzE,mBAE9E+Q,EACF5L,GAxOiC6L,EACrCrC,EACAsC,EACAzT,KAEA,MAAM0T,GAAuB1K,EAAAA,EAAAA,QAAOyK,MAAAA,EAAAA,EAAwC,MAAOtC,EAAoBzK,UAAUiN,WAEjH,OACInT,EAAAA,cAAA,OAAKC,UAAW,GAAGT,0BACfQ,EAAAA,cAAA,SAAOC,UAAWmT,GAAAA,CAAW,GAAG5T,wBAAkC,uBAC9DQ,EAAAA,cAAA,SACIC,UAAWmT,GAAAA,CAAW,GAAG5T,oBAA8B,kBACvD6T,KAAK,WACLC,QAAS3C,EAAoBC,WAAU,aAC3BsC,EAAoB,eAClBvC,EAAoBC,WAClC2C,SAAU7C,EAAaC,KAE3B3Q,EAAAA,cAAA,QAAMC,UAAWmT,GAAAA,CAAW,GAAG5T,eAAyB,kBAuNhEwT,CAAiCvM,EAAsB7F,EAAMa,UAAUwR,qCAAsCrS,EAAMpB,YAEvH,IAAIoD,EACJ,IAAKxB,EAAAA,iBAAiBC,kBAAkBgQ,KAAiBjQ,EAAAA,iBAAiBC,kBAAkBT,EAAMsF,UAAUiN,aACxGvQ,GAAa4Q,EAAAA,EAAAA,uBAAsBnC,EAAazQ,EAAMsF,UAAUiN,UAAWvS,EAAM0Q,qBAAqB9L,QAAQC,eAE1GgO,EAAAA,GAASC,YAAaC,EAAAA,EAAAA,IAAiBjO,IAAiB,CAAC,IAADkO,EACxD,MAAMC,EAAU,IAAIC,IAAIlR,EAAYmR,OAAO5F,SAASxL,MACpDkR,EAAQG,aAAaC,IAAI,YAAa,GAA4B,QAA5BL,EAAGhT,EAAMsF,UAAUgO,iBAAS,IAAAN,EAAAA,EAAI,KACtEhR,EAAaiR,EAAQlR,KAI7B,MAAM1C,EAAY,GAAGW,EAAMpB,0CAE3B,OACIQ,EAAAA,cAAA,OACIC,UAAWmT,GAAAA,CACPnT,EACAkH,EAAyB,GAAGlH,uBAAiC,GAAGA,wBAChEW,EAAMuG,uBAAyB,GAAGlH,8BAAwC,GAAGA,+BAC7EwG,EAAqBzE,mBAAqB,GAAG/B,uBAAiC,GAAGA,yBACjFwG,EAAqBmK,WAAa,GAAG3Q,cAAwB,GAAGA,kBAGnE8S,EACD/S,EAAAA,cAACmU,EAAAA,sBAAqB,CAClB/N,GAAIxF,EAAM0Q,qBAAqBlL,GAC/BC,SAAUzF,EAAM0Q,qBAAqBjL,SACrCb,QAAS5E,EAAM0Q,qBAAqB9L,QACpC/D,UAAW,CACP2S,WAAYxT,EAAMa,UAAU4S,yBAC5BC,YAAa1T,EAAMa,UAAU8S,0BAC7BC,YAAa5T,EAAMa,UAAUgT,0BAC7BC,aAAc9T,EAAMa,UAAUkT,2BAC9BC,sBAAuBhU,EAAMa,UAAUoT,sBACvCC,aAAclU,EAAMa,UAAUqT,aAC9BC,mBAAoBnU,EAAMa,UAAUsT,mBACpCC,uBAAwB,GACxBtQ,kBAAmB,GACnBC,iBAAkB,GAClBsQ,oBAAoD,QAAjChE,EAAErQ,EAAMa,UAAUyT,uBAAe,IAAAjE,EAAAA,EAAI,GACxDkE,uBAAwBvU,EAAMa,UAAU2T,kCACxCC,yBAA0BzU,EAAMa,UAAU6T,qCAE9CC,gBAA8B,QAAfrE,EAAEtQ,EAAMO,eAAO,IAAA+P,OAAA,EAAbA,EAAewB,gBAChC9P,WAA0B,QAAduO,EAACvQ,EAAMO,eAAO,IAAAgQ,GAAbA,EAAejR,KAAmB0C,OAAZ6G,EACnCyI,cAA8D,QAAjDd,EAAExQ,EAAM0Q,qBAAqBQ,OAAOI,qBAAa,IAAAd,EAAAA,EAAIwB,EAAAA,GAClEX,aAAcvM,EAAeuM,aAC7BuD,aAAW,EACXvU,KAAM,CAAEwU,SAAU7U,EAAMsF,UAAW/E,QAASP,EAAMO,QAASuU,SAAU9U,EAAM8U,UAC3EC,gCAAiC/U,EAAM0Q,qBAAqBQ,OAAO6D,gCACnEC,4BAA6BhV,EAAMqG,kCAAoCrG,EAAMgV,iCAA8BnM,EAC3G4C,cAAezL,EAAMyL,kBAMxBwJ,EAAgBjV,IAAyC,IAAAkV,EAAAC,EAAAC,EAClE,MAAM,WACFxW,EACA8R,sBAAsB,SAClBjL,EAAQ,QACRb,EACAsM,QAAQ,cAAEI,IACb,QACD/Q,EAAO,SACP8U,EAAQ,UACR/P,EACAzE,WAAW,YACP5B,EAAW,WACXC,EAAU,WACVC,EAAU,eACVmW,EAAc,gBACdC,EAAe,oBACfC,EAAmB,0BACnBC,EAAyB,sBACzBC,EAAqB,mBACrBC,EAAkB,oBAClBC,EAAmB,oBACnBC,EAAmB,mBACnBC,EAAkB,mBAClBC,EAAkB,oBAClBC,EAAmB,mBACnBC,EAAkB,gBAClBC,EAAe,cACfC,EAAa,kBACbC,EAAiB,wBACjBC,EAAuB,uBACvBC,EAAsB,0BACtBC,EAAyB,mCACzBlV,EAAkC,0DAClC6C,EAAyD,mEACzDd,EAAkE,yBAClEJ,EAAwB,4BACxBE,GAA2B,2BAC3BI,GAA0B,oCAC1BE,GAAmC,iCACnCE,GAAgC,8BAChCE,GAA6B,6CAC7BS,GAA4C,yBAC5CE,GAAwB,2BACxBE,GAA0B,kBAC1BT,GAAiB,kBACjBF,GAAiB,iBACjBC,GAAgB,cAChBF,GAAa,oCACb6Q,IACH,4BACDM,GAA2B,uBAC3BwB,GAAsB,uBACtBjQ,GAAsB,oBACtBwJ,GAAmB,oBACnBpO,IACA3B,EAEEyW,GAlP6BC,EACnCb,EACAJ,EACAG,EACAF,EACAC,EACAG,KAEO,CACHa,SAAUd,EACVe,eAAgBnB,EAChBoB,SAAUjB,EACVhN,WAAY8M,EACZoB,QAASnB,EACToB,aAASlO,EACTmO,QAASlB,IAmOgBY,CACzBb,EACAJ,EACAG,EACAF,EACAC,EACAG,GAGEmB,GAAgD,CAClDC,OAAQnB,EACRoB,KAAMnB,EACNoB,SAAUnB,EACVoB,MAAOnB,GAGLoB,GAAgD,QAA1BpC,EAAGtQ,EAAQ8I,QAAQ3I,eAAO,IAAAmQ,OAAA,EAAvBA,EAAyBqC,uBAClD5S,GAA+C,QAA1BwQ,EAAGvQ,EAAQ8I,QAAQ3I,eAAO,IAAAoQ,OAAA,EAAvBA,EAAyBnQ,sBACjDyL,GAA2B,QAAhB2E,EAAG7U,MAAAA,OAAO,EAAPA,EAASjB,YAAI,IAAA8V,EAAAA,EAAI9P,EAAUyE,YAC/C,IAAI/H,GAAa,GACjB,IAAKxB,EAAAA,iBAAiBC,kBAAkBgQ,MAAiBjQ,EAAAA,iBAAiBC,kBAAkB6E,EAAUiN,aAClGvQ,IAAa4Q,EAAAA,EAAAA,uBAAsBnC,GAAanL,EAAUiN,UAAW3N,EAAQC,eAEzEgO,EAAAA,GAASC,WAAW,CAAC,IAAD0E,GACpB,MAAMvE,EAAU,IAAIC,IAAIlR,GAAYmR,OAAO5F,SAASxL,MACpDkR,EAAQG,aAAaC,IAAI,YAAa,GAAsB,QAAtBmE,GAAGlS,EAAUgO,iBAAS,IAAAkE,GAAAA,GAAI,KAChExV,GAAaiR,EAAQlR,KAI7B,MAAM0V,GAAaC,EAAkBnX,EAAS+E,EAAUS,aAAcyQ,GAAwBxW,EAAMqG,mCAC9FvH,GAAe6Y,EACjBF,GACAnS,EACAA,EAAUS,aACVuR,GACAtX,EAAMqG,kCACN2O,GACArQ,IAEE4C,IAAcqQ,EAAAA,EAAAA,IAAmB9Y,GAAcwG,EAAUuS,iBAAkBJ,IAC3EK,GAAoBrB,GAAqBlP,IAEzCwQ,GAAqBC,EAAsBlZ,GAAcmY,GAAuBjX,EAAMqG,mCACtF4R,GAAoBC,EAAyBpZ,GAAcmY,IAE3DkB,GApQyBC,EAC/BL,EACAnZ,EACAqZ,EACAI,EACAC,KAEA,MAAMC,EAAqBR,GACvB3Y,EAAAA,cAACoZ,EAAAA,EAAc,CACXnZ,UAAW,GAAGT,oBAA6BqZ,MAAAA,EAAAA,EAAqB,UAChEQ,MAAO,GAAGV,KAAsBM,MAAAA,EAAAA,EAAe,OAGjDK,EAAuBX,GACzB3Y,EAAAA,cAACoZ,EAAAA,EAAc,CAACnZ,UAAW,GAAGT,mBAA6B6Z,MAAOV,IAGtE,OAAOO,EAAgCC,EAAqBG,GAmPnCN,CACrBL,GACAnZ,EACAqZ,GAJgBU,EAAa3Y,EAAMqG,kCAAmCf,EAAWxG,IAMjFkB,EAAMqG,mCAEJuS,GAAkBd,IACpB1Y,EAAAA,cAACoZ,EAAAA,EAAc,CACXnZ,UAAW,GAAGT,mBAA4BA,oBAA6BqZ,MAAAA,GAAAA,GAAqB,UAC5FQ,MAAOX,KAIT3P,GAxXqB0Q,EAC3B/Z,EACAF,EACAuX,EACAC,EACAC,EACAhB,IAGIvW,IAAiB+Q,EAAiBsH,MAC9B/X,EAAAA,cAAA,QAAMC,UAAW,GAAGT,oBACfuX,EACAd,EACGjW,EAAAA,cAAA,KAAGC,UAAW,GAAGT,mBAA6BmD,KAAMsT,EAASyD,YAAW,aAAc1C,GACjFf,EAAS0D,gBAGd3Z,EAAAA,cAAAA,EAAAA,SAAA,KAAGiX,IAuWEwC,CAAgB/Z,GAAcF,EAAYuX,EAAeC,EAAmBC,EAAyBhB,GACpH2D,GAAsBjJ,MAAAA,GAAAA,GAAuB,IAAImC,EAAAA,oBAAoB5M,EAAW/E,EAASyB,IACzFd,GACFuP,IAAe+E,GAAuBA,GAAuB,IAAIyD,QAAQ,gBAAiBxI,IAAe,GACvGyI,GAzV+BC,EACrCC,EACAC,EACA/T,EACAiR,EACA3X,EACAmP,EACAuI,KAEA,MAAMgD,EACFF,GACAC,QAC0CxQ,IAA1CvD,EAAUiU,kCAC8B1Q,IAAxCvD,EAAUkU,0BAERlR,EAAqBgR,GACrBG,EAAAA,EAAAA,IAAgBlD,EAA2BjR,EAAUiU,4BAA6BjU,EAAUkU,0BAA2BzL,GACvH,GAEN,OACIuL,GACIla,EAAAA,cAAA,OAAKC,UAAW,GAAGT,2BACfQ,EAAAA,cAAA,OAAKC,UAAW,GAAGT,iCAA2C0X,GAC9DlX,EAAAA,cAAA,OAAKC,UAAW,GAAGT,mCAA6C0J,KAkU7C6Q,CAC3BnZ,EAAMmG,aACNrH,KAAiB2Y,GACjBnS,EACAiR,EACA3X,EACAgG,EAAQ8I,QAAQK,OAChBuI,GAEJ,IAAIoD,IAA0B9R,EAAAA,EAAAA,QAAO,wCAAyChJ,GAC1E2H,KACAmT,IAA0B9R,EAAAA,EAAAA,QAAO,kBAAmB8R,GAAyBA,KAG7EpI,IACAA,EAAcqI,iBAAkB,GAGpC,MAAMC,GAAqB,GAAGhb,gBACxBib,GAAyBrH,GAAAA,CAC3BoH,GACArT,GAAyB,GAAGqT,wBAA0C,GAAGA,yBACzE5Z,EAAMuG,uBACA,GAAGqT,+BACH,GAAGA,gCACTZ,GAAoB5X,mBAAqB,GAAGwY,wBAA0C,GAAGA,2BAG7F,MAAO,CACHvZ,KAAM,CACFiF,UAAAA,EACAtD,WAAAA,GACAlD,aAAAA,GACAyI,YAAAA,GACAhH,QAAAA,EACA8U,SAAAA,EACAyE,UAAWd,GAAoBhJ,YAEnC+J,eAAgB,CAAE1a,UAAWwa,IAC7BvU,UAAW2K,EAAmBjQ,GAC9BnB,QAASyG,EAAU0U,iBACf5a,EAAAA,cAACV,EAAAA,EAAO,CACJE,WAAYA,EACZC,QAASyG,EAAU0U,gBACnBhb,SAAU,CAAEC,YAAAA,EAAaC,WAAAA,EAAYC,WAAAA,EAAYmW,eAAAA,GACjDxW,aAAcA,GACdC,oBAAqBiB,EAAMjB,sBAGnCgK,oBACIzD,EAAU0U,iBAAmBC,EAAuB3U,EAAW1G,EAAY8V,IAC/E5V,aAAcqZ,GACd5Q,YAAaqR,GACbzQ,aAAAA,GACA+R,eACI9a,EAAAA,cAACW,EAAAA,EAAoB,CACjB6E,QAASA,EACTvF,UAAWW,EAAMqG,kCAAoCqT,GAA0B,GAAG9a,iCAClFyB,KAAM,CAAED,SAAU,CAAC4Y,KACnBnY,UAAW,CACPE,4BAA6BwU,EAC7BlU,mCAAAA,EACAH,gCAAAA,GACAgD,0DAAAA,EACAd,mEAAAA,EACAJ,yBAAAA,EACAE,4BAAAA,GACAI,2BAAAA,GACAE,oCAAAA,GACAE,iCAAAA,GACAE,8BAAAA,GACAS,6CAAAA,GACAE,yBAAAA,GACAE,2BAAAA,GACAT,kBAAAA,GACAF,kBAAAA,GACAC,iBAAAA,GACAF,cAAAA,IAEJ2B,GAAIxF,EAAM0Q,qBAAqBlL,GAC/BC,SAAUA,EACV9D,oBAAqBA,KAG7B2G,mBAAoB4Q,GACpBiB,QAASnB,GAAoB5X,oBACzBhC,EAAAA,cAAA,OAAKC,UAAU,oBAAoBW,EAAMa,UAAUQ,sCAKlDsW,EAAkBA,CAC3BF,EACAnS,EACA8U,EACA9C,EACA+C,EACArF,EACArQ,KAEA,IAAI2V,EAE6B,IAADC,EAA5BF,EACAC,EACIF,KAA0BpF,MAAAA,GAAoD,QAAzBuF,EAA3BvF,EAA6BwF,+BAAuB,IAAAD,OAAA,EAApDA,EAAsD3N,MAAK6N,GAAMA,IAAOL,KAEtGE,IACMhD,GAAqD,KAA3BA,GAAiCA,IAA2B8C,EAGhG,OAAOE,EACD7C,EACA9S,GAAmD,KAA1BA,GAAgCA,IAA0BW,EAAUS,aAC7F8J,EAAiBwH,MACjB/R,EAAUS,aACV8J,EAAiBsH,KACjBtH,EAAiBuH,UAGdY,EAAwBA,CACjClZ,EACAmY,EACAoD,KAEA,IAAIA,EAUA,OAAOpD,EAAsBnY,GAT7B,OAAQA,GACJ,KAAK+Q,EAAiBsH,KACtB,KAAKtH,EAAiBuH,SACtB,KAAKvH,EAAiBwH,MAClB,OAAOJ,EAAsBnY,GACjC,QACI,OAAOA,IAOVoZ,EAA2BA,CACpCpZ,EACAmY,EACAoD,KAEA,OAAQvb,GACJ,KAAK+Q,EAAiBsH,KACtB,KAAKtH,EAAiBuH,SACtB,KAAKvH,EAAiBwH,MAClB,OAAOvY,EACX,QACI,OAAO+Q,EAAiBqH,SAI9BwD,EAAgC,SASzBC,EAAoCA,CAC7CC,EACAR,EACA5D,KACQ,IAAAqE,EACR,GAAIra,EAAAA,iBAAiBC,kBAAkBma,KAAqBpZ,EAAAA,gBAAgBC,YAAY+U,GACpF,OAAOkE,EAGX,MAAMI,EAAwBtE,EAAuB5J,MAAKmO,GAC/CA,EAAsBxI,YAAcqI,IAGzCI,EAAsBF,MAAAA,GAAsC,QAAjBD,EAArBC,EAAuBG,uBAAe,IAAAJ,GAAuD,QAAvDA,EAAtCA,EAAwCjO,MAAKsO,GAAUA,EAAOC,OAASf,WAAsB,IAAAS,OAAA,EAA7FA,EAA+F9Q,YAE3H,OAAOiR,MAAAA,EAAAA,EAAuBN,GAGrBhD,EAAoBA,CAC7BnX,EACA6Z,EACA5D,EACA6D,IAEOM,EAAkCpa,MAAAA,OAAO,EAAPA,EAASsM,SAAUuN,EAAuB5D,GAU1EmC,EAAeA,CACxBL,EACAhT,EACAxG,KAC2B,IAAAsc,EAC3B,IAAK9C,EACD,OAAO,KAGX,OAAQxZ,GACJ,KAAK+Q,EAAiBsH,KACtB,KAAKtH,EAAiBwH,MACtB,KAAKxH,EAAiBuH,SAClB,MAAO,GACX,QACI,MAAO,KAA8B,QAA9BgE,EAAK9V,EAAU0U,uBAAe,IAAAoB,OAAA,EAAzBA,EAA2B9b,SAUtC2a,EAAyBA,CAClC3U,EACA1G,EACAyc,SAEgFxS,IAApCvD,EAAUgW,uBAA2E,OAApChW,EAAUgW,uBAI/Flc,EAAAA,cAAA,OAAKC,UAAW,GAAGT,4BACfQ,EAAAA,cAAA,OAAKC,UAAW,GAAGT,kCAA4Cyc,GAC/Djc,EAAAA,cAAA,OAAKC,UAAW,GAAGT,oCAA8C0G,EAAUgW,6EC1vBpF,MAAMC,EAAgB5c,IAsBW,IAtBV,WAC1BC,EAAU,qBACV8R,EAAoB,WACpBzK,EAAU,SACV7F,EAAQ,UACRob,EAAS,UACT3a,EAAS,iBACT4a,EAAgB,UAChB9K,EAAS,oBACT5R,EAAmB,aACnBoH,EAAY,iBACZuV,EAAgB,kCAChBrV,EAAiC,4BACjC2O,EAA2B,uBAC3BwB,EAAsB,uBACtBjQ,EAAsB,qBACtBV,EAAoB,oBACpBlE,EACAga,gBAAiBC,EAAa,wCAC9BC,EAAuC,SACvC/G,EAAQ,cACRrJ,GACkB9M,EAClB,OAAOsH,EAAWoB,KAAI,CAAC/B,EAAWwW,KAC9B,MAAMvb,EAAUH,EAASwM,MAAKlM,GAAiBA,EAAcmM,WAAavH,EAAUiN,YAC9E8C,EACF9U,IACAib,MAAAA,OAAS,EAATA,EAAW5O,MAAKmP,IAAe,IAAAC,EAAA,OACE,QADFA,EAC3BD,EAAgBE,qBAAa,IAAAD,OAAA,EAA7BA,EAA+BpP,MAC3BsP,GACIA,EAAalL,SAAWzQ,EAAQyQ,QAAUkL,EAAaC,yBAA2B7W,EAAU6W,6BAGtGpM,EAAsBxJ,EACtBhG,IAAWsF,MAAAA,OAAoB,EAApBA,EAAsB+G,MAAKwP,GAAkBA,EAAe9W,UAAUiN,YAAchS,EAAQsM,iBACvGhE,EACAwT,EAAeT,MAAAA,OAAa,EAAbA,EAAehP,MAAKpD,IAAK,IAAA8S,EAAA,OAAI9S,EAAM+S,UAAY,GAAmB,QAAnBD,EAAGhX,EAAUkX,cAAM,IAAAF,EAAAA,EAAI,MAAMR,OAEjG,OAAO7G,EAAAA,EAAAA,IAAa,CAChBrW,WAAAA,EACA8R,qBAAAA,EACAnQ,QAAAA,EACA8U,SAAAA,EACA/P,UAAAA,EACAmW,iBAAAA,EACA5a,UAAAA,EACA8P,UAAAA,EACA5R,oBAAAA,EACAoH,aAAAA,EACAuV,iBAAAA,EACArV,kCAAAA,EACA2O,4BAAAA,EACAwB,uBAAAA,EACAjQ,uBAAAA,EACAwJ,oBAAAA,EACApO,oBAAAA,EACA4P,eAAgB8K,EAChBR,wCAAAA,EACA/G,SAAAA,EACArJ,cAAAA,QASCgR,EAAqBA,CAC9Bzc,EACApB,EACA4N,EACApM,EACAoK,EACAzL,EACAoH,EACAuV,EACArV,EACA2O,EACAwB,EACAjQ,EACAV,EACAlE,EACAka,EACA/G,KAEA,IAAKtI,IAAUA,EAAMyB,YAA0C,IAA5BzB,EAAMyB,WAAW9M,OAChD,OAGJ,MAAM,UACFN,EACAqQ,QAAQ,cAAEI,GACV1M,SAAS,cACLC,EACA6I,SAAS,aACL2D,EACA1D,aAAa,UAAEC,MAGvB5N,EAIJ,MAAO,CACHpB,WAAAA,EACA8R,qBAAsB1Q,EACtByb,kBALsBjP,EAAMM,WAAaN,EAAMM,YAAcc,EAM7D3H,WAAYuG,EAAMyB,WAClBxC,cAAee,EAAMgC,aACrBpO,SAAAA,EACAob,UAAWhP,EAAMkQ,UACjBlS,aAAAA,EACA3J,UAAAA,EACAgE,cAAAA,EACAwM,aAAcA,EACdC,cAAAA,EACAvS,oBAAAA,EACAoH,aAAcA,MAAAA,GAAAA,EACduV,iBAAAA,EACArV,kCAAAA,EACA2O,4BAAAA,EACAwB,uBAAAA,EACAjQ,uBAAwBA,MAAAA,GAAAA,EACxBV,qBAAAA,EACAlE,oBAAAA,EACAka,wCAAAA,EACA/G,SAAAA,uDCvKD,MAAM6H,EAA+Bhe,IAAA,IAAC,UAAEU,EAAS,MAAEoZ,GAAO9Z,EAAA,OAAKS,EAAAA,cAAA,QAAMC,UAAWA,GAAYoZ,IAEnG,yHCaO,MAAMmE,EAA6BC,GAC/BA,EAAYC,QAAO,CAACzV,EAAK0V,KACxBA,EAAWC,eACX3V,EAAI0V,EAAWC,cAAgBD,EAAWE,aAEvC5V,IACR,IAGM6G,EAAcjI,GAChBA,EAAW6W,QAAO,CAACtV,EAAOlC,IACtBkC,GAASlC,EAAUC,UAAY,IACvC,GAeMyM,EAAuC,CAChDkL,UAAW,CACPC,GAAI,CAAEC,EAAG,gBAAiBC,EAAG,EAAGC,EAAG,GACnCC,GAAI,CAAEH,EAAG,kBAAmBC,EAAG,EAAGC,EAAG,IAEzCE,UAAU,EACV7D,iBAAiB,GAOR/B,EAAqBA,CAAC9Y,EAAsB2e,EAAsBhG,KAC3E,GAAoB,IAAhBgG,EACA,MAAO,WAGX,GAAqB,WAAjB3e,EACA,OAAQ2e,GACJ,KAAK,EACD,MAAO,iBACX,KAAK,EACD,MAAO,WACX,QACI,MAAO,kBAEZ,GAAqB,SAAjB3e,EACP,OAAQ2e,GACJ,KAAK,EACD,MAAO,aACX,KAAK,EACD,MAAO,UACX,QACI,MAAO,iBAEZ,IAAqB,UAAjB3e,EASJ,IAAqB,aAAjBA,EACP,MAAO,aAEP,QAAmB+J,IAAf4O,EACA,OAAQgG,GACJ,KAAK,EACD,MAAO,iBACX,KAAK,EACD,MAAO,WACX,QACI,MAAO,aAInB,MAAO,UAtBP,OAAQA,GACJ,KAAK,EACD,MAAO,aACX,KAAK,EACD,MAAO,UACX,QACI,MAAO,gBAgCVrW,EAAmBnB,IAC5B,MAMMyX,EAA0B,GAG1BpW,GAT0BqW,EASK1X,EATmB2X,GAAAA,CAAQD,GAAOE,GAAQA,EAAKxd,KAAKvB,gBAAzD6e,IAAAA,EA8ChC,OAlCAzR,OAAO4R,QAAQxW,GAAOyW,SAAQpf,IAAwC,IAAtCG,EAAckf,GAAoBrf,EAE9D2I,EAAMxI,GAbyB6e,CAAAA,GAAwBC,GAAAA,CAAQD,GAAOE,GAAQA,EAAKxd,KAAKkH,cAalE0W,CAA0BD,GAEhD9R,OAAO4R,QAAQxW,EAAMxI,IAAeif,SAAQG,IAA0C,IAAxC3W,EAAa4W,GAAuBD,EAE9EC,EAAuB5W,GAfFoW,CAAAA,GACzBC,GAAAA,CAAQD,GAAOE,GAASA,EAAKxd,KAAKiF,UAAU0U,iBAAmB6D,EAAKxd,KAAKiF,UAAU0U,gBAAgBnN,UAAa,YActEuR,CAAoBD,GAE1DjS,OAAO4R,QAAQK,EAAuB5W,IAAcwW,SAAQM,IAAkC,IAAhCC,EAAWC,GAAiBF,EAEtFE,EAAiBD,GApBCX,CAAAA,GAAwBC,GAAAA,CAAQD,GAAOE,GAAQA,EAAKxd,KAAKiF,UAAUkZ,YAAc,YAoBrEC,CAAqBF,GAGnDrS,OAAO4R,QAAQS,EAAiBD,IAAYP,SAAQW,IAAoC,IAAlCC,EAAYC,GAAkBF,EAChFhB,EAAUmB,KAAK,CAEX/f,aAAAA,EAGAyI,YAAAA,EACA+W,UAAAA,EACAK,WAAAA,EAGAnX,MAAO0G,EAAW0Q,EAAkBvX,KAAIwW,GAAQA,EAAKxd,KAAKiF,aAG1DW,WAAY2Y,gBAOzBlB,GAGEjE,EAAkBA,CAACqF,EAAqBC,EAA6BC,EAA2BjR,KACzG,IAAKgR,IAAcC,EACf,MAAO,GAGX,MAIMC,EADgB,IAAIC,KAAKC,eAAepR,EAHE,CAC5CqR,SAAU,QAGaxX,OAAO,IAAIyG,KAAK0Q,IAQrCM,EAAoB,IAAIH,KAAKC,eAAepR,EANE,CAChDuR,KAAM,UACNC,OAAQ,UACRC,QAAQ,EACRJ,SAAU,QAId,MAAO,GAAGH,MADOrX,EAAAA,EAAAA,QAAOkX,EAAaO,EAAkBzX,OAAO,IAAIyG,KAAK0Q,IAAaM,EAAkBzX,OAAO,IAAIyG,KAAK2Q,wBCnM1H,SAASS,EAAQC,GAAwT,OAAtOD,EAArD,mBAAXE,QAAoD,iBAApBA,OAAOC,SAAmC,SAAiBF,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,mBAAXC,QAAyBD,EAAIG,cAAgBF,QAAUD,IAAQC,OAAOG,UAAY,gBAAkBJ,IAAyBA,GAExV,SAASK,IAA2Q,OAA9PA,EAAW7T,OAAOC,QAAU,SAAU6T,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAU/e,OAAQ8e,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIG,KAAOD,EAAcjU,OAAO4T,UAAUO,eAAeC,KAAKH,EAAQC,KAAQJ,EAAOI,GAAOD,EAAOC,IAAY,OAAOJ,IAA2BO,MAAMC,KAAMN,WAEhT,SAASO,EAAQC,EAAQC,GAAkB,IAAIC,EAAO1U,OAAO0U,KAAKF,GAAS,GAAIxU,OAAO2U,sBAAuB,CAAE,IAAIC,EAAU5U,OAAO2U,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQxgB,QAAO,SAAUygB,GAAO,OAAO7U,OAAO8U,yBAAyBN,EAAQK,GAAKE,eAAgBL,EAAK/B,KAAK0B,MAAMK,EAAME,GAAY,OAAOF,EAE9U,SAASM,EAAclB,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAU/e,OAAQ8e,IAAK,CAAE,IAAIE,EAAyB,MAAhBD,UAAUD,GAAaC,UAAUD,GAAK,GAAQA,EAAI,EAAKQ,EAAQN,GAAQ,GAAMpC,SAAQ,SAAUqC,GAAOe,EAAgBnB,EAAQI,EAAKD,EAAOC,OAAsBlU,OAAOkV,0BAA6BlV,OAAOmV,iBAAiBrB,EAAQ9T,OAAOkV,0BAA0BjB,IAAmBM,EAAQN,GAAQpC,SAAQ,SAAUqC,GAAOlU,OAAOoV,eAAetB,EAAQI,EAAKlU,OAAO8U,yBAAyBb,EAAQC,OAAe,OAAOJ,EAE7f,SAASuB,EAAyBpB,EAAQqB,GAAY,GAAc,MAAVrB,EAAgB,MAAO,GAAI,IAAkEC,EAAKH,EAAnED,EAEzF,SAAuCG,EAAQqB,GAAY,GAAc,MAAVrB,EAAgB,MAAO,GAAI,IAA2DC,EAAKH,EAA5DD,EAAS,GAAQyB,EAAavV,OAAO0U,KAAKT,GAAqB,IAAKF,EAAI,EAAGA,EAAIwB,EAAWtgB,OAAQ8e,IAAOG,EAAMqB,EAAWxB,GAAQuB,EAASE,QAAQtB,IAAQ,IAAaJ,EAAOI,GAAOD,EAAOC,IAAQ,OAAOJ,EAFxM2B,CAA8BxB,EAAQqB,GAAuB,GAAItV,OAAO2U,sBAAuB,CAAE,IAAIe,EAAmB1V,OAAO2U,sBAAsBV,GAAS,IAAKF,EAAI,EAAGA,EAAI2B,EAAiBzgB,OAAQ8e,IAAOG,EAAMwB,EAAiB3B,GAAQuB,EAASE,QAAQtB,IAAQ,GAAkBlU,OAAO4T,UAAU+B,qBAAqBvB,KAAKH,EAAQC,KAAgBJ,EAAOI,GAAOD,EAAOC,IAAU,OAAOJ,EAIne,SAAS8B,EAAgBC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIC,UAAU,qCAEhH,SAASC,EAAkBlC,EAAQhgB,GAAS,IAAK,IAAIigB,EAAI,EAAGA,EAAIjgB,EAAMmB,OAAQ8e,IAAK,CAAE,IAAIkC,EAAaniB,EAAMigB,GAAIkC,EAAWlB,WAAakB,EAAWlB,aAAc,EAAOkB,EAAWC,cAAe,EAAU,UAAWD,IAAYA,EAAWE,UAAW,GAAMnW,OAAOoV,eAAetB,EAAQmC,EAAW/B,IAAK+B,IAE7S,SAASG,EAAaN,EAAaO,EAAYC,GAAmJ,OAAhID,GAAYL,EAAkBF,EAAYlC,UAAWyC,GAAiBC,GAAaN,EAAkBF,EAAaQ,GAAqBR,EAEzM,SAASS,EAA2BC,EAAMpC,GAAQ,OAAIA,GAA2B,WAAlBb,EAAQa,IAAsC,mBAATA,EAA8CqC,EAAuBD,GAAtCpC,EAEnI,SAASsC,EAAgBC,GAAwJ,OAAnJD,EAAkB1W,OAAO4W,eAAiB5W,OAAO6W,eAAiB,SAAyBF,GAAK,OAAOA,EAAEG,WAAa9W,OAAO6W,eAAeF,KAA8BA,GAExM,SAASF,EAAuBD,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIO,eAAe,6DAAgE,OAAOP,EAE/J,SAASQ,EAAUC,EAAUC,GAAc,GAA0B,mBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAInB,UAAU,sDAAyDkB,EAASrD,UAAY5T,OAAOmX,OAAOD,GAAcA,EAAWtD,UAAW,CAAED,YAAa,CAAErW,MAAO2Z,EAAUd,UAAU,EAAMD,cAAc,KAAegB,GAAYE,EAAgBH,EAAUC,GAEnX,SAASE,EAAgBT,EAAGU,GAA+G,OAA1GD,EAAkBpX,OAAO4W,gBAAkB,SAAyBD,EAAGU,GAAsB,OAAjBV,EAAEG,UAAYO,EAAUV,IAA6BA,EAAGU,GAErK,SAASpC,EAAgBzB,EAAKU,EAAK5W,GAAiK,OAApJ4W,KAAOV,EAAOxT,OAAOoV,eAAe5B,EAAKU,EAAK,CAAE5W,MAAOA,EAAOyX,YAAY,EAAMmB,cAAc,EAAMC,UAAU,IAAkB3C,EAAIU,GAAO5W,EAAgBkW,EAE3M,IAAItgB,EAAQ,EAAQ,GAMhBokB,GAJY,EAAQ,KAIP,EAAQ,MAErBC,EAAoB,EAAQ,KAQhC,SAASC,EAAWC,GAGlB,IAFA,IAAIC,EAAM,GAED3D,EAAI,EAAGA,EAAI0D,EAAIxiB,OAAQ8e,IAAK,CACnC,IAAI4D,EAAWF,EAAIG,WAAW7D,GAE1B4D,EAAW,IACbD,GAAOG,OAAOC,aAAaH,GAClBA,EAAW,MACpBD,GAAOG,OAAOC,aAAa,IAAOH,GAAY,GAC9CD,GAAOG,OAAOC,aAAa,IAAkB,GAAXH,IACzBA,EAAW,OAAUA,GAAY,OAC1CD,GAAOG,OAAOC,aAAa,IAAOH,GAAY,IAC9CD,GAAOG,OAAOC,aAAa,IAAOH,GAAY,EAAI,IAClDD,GAAOG,OAAOC,aAAa,IAAkB,GAAXH,KAIlC5D,IACA4D,EAAW,QAAuB,KAAXA,IAAqB,GAAyB,KAApBF,EAAIG,WAAW7D,IAChE2D,GAAOG,OAAOC,aAAa,IAAOH,GAAY,IAC9CD,GAAOG,OAAOC,aAAa,IAAOH,GAAY,GAAK,IACnDD,GAAOG,OAAOC,aAAa,IAAOH,GAAY,EAAI,IAClDD,GAAOG,OAAOC,aAAa,IAAkB,GAAXH,IAItC,OAAOD,EAGT,IAAIK,EAAgB,CAClBxa,KAAM,IACNya,MAAO,IACPC,QAAS,UACTC,QAAS,UACTC,eAAe,GAyBjB,SAASC,EAAaC,GACpB,IAAIC,EAAStE,UAAU/e,OAAS,QAAsB0H,IAAjBqX,UAAU,GAAmBA,UAAU,GAAK,EAC7EuE,EAAM,GAoCV,OAnCAF,EAAQxG,SAAQ,SAAU2G,EAAKC,GAC7B,IAAIC,EAAQ,KACZF,EAAI3G,SAAQ,SAAU8G,EAAMC,GAC1B,IAAKD,GAAkB,OAAVD,EAKX,OAFAH,EAAI5F,KAAK,IAAIkG,OAAOH,EAAQJ,EAAQ,KAAKO,OAAOJ,EAAIH,EAAQ,KAAKO,OAAOD,EAAIF,EAAO,OAAOG,OAAOH,EAAQJ,EAAQ,WACjHI,EAAQ,MAKV,GAAIE,IAAMJ,EAAIvjB,OAAS,EAkBnB0jB,GAAkB,OAAVD,IACVA,EAAQE,OAnBV,CACE,IAAKD,EAGH,OAGY,OAAVD,EAEFH,EAAI5F,KAAK,IAAIkG,OAAOD,EAAIN,EAAQ,KAAKO,OAAOJ,EAAIH,EAAQ,UAAUO,OAAOD,EAAIN,EAAQ,MAGrFC,EAAI5F,KAAK,IAAIkG,OAAOH,EAAQJ,EAAQ,KAAKO,OAAOJ,EAAIH,EAAQ,MAAMO,OAAOD,EAAI,EAAIF,EAAO,OAAOG,OAAOH,EAAQJ,EAAQ,aAWvHC,EAAIO,KAAK,IAKlB,SAASC,EAAgBV,EAASW,GAChC,OAAOX,EAAQY,QAAQ9d,KAAI,SAAUqd,EAAKC,GACxC,OAAIA,EAAIO,EAAWP,GAAKA,GAAKO,EAAWP,EAAIO,EAAW5H,EAC9CoH,EAGFA,EAAIrd,KAAI,SAAUwd,EAAMC,GAC7B,OAAIA,EAAII,EAAWJ,GAAKA,GAAKI,EAAWJ,EAAII,EAAW7H,IAC9CwH,QAQf,SAASO,EAAiBplB,EAAOqlB,GAC/B,IAAI/T,EAAgBtR,EAAMsR,cACtB7H,EAAOzJ,EAAMyJ,KACb4a,EAAgBrkB,EAAMqkB,cAE1B,GAAqB,MAAjB/S,EACF,OAAO,KAGT,IAAIkT,EAASH,EA3EG,EA2E2B,EACvCiB,EAAWD,EAAMlkB,OAAkB,EAATqjB,EAC1Be,EAAcC,KAAKC,MAxED,GAwEOhc,GACzBic,EAAQJ,EAAW7b,EACnB4T,GAAK/L,EAAcqU,OAASJ,GAAeG,EAC3CpI,GAAKhM,EAAcsU,QAAUL,GAAeG,EAC5CZ,EAAuB,MAAnBxT,EAAcwT,EAAYO,EAAMlkB,OAAS,EAAIkc,EAAI,EAAI/L,EAAcwT,EAAIY,EAC3Ef,EAAuB,MAAnBrT,EAAcqT,EAAYU,EAAMlkB,OAAS,EAAImc,EAAI,EAAIhM,EAAcqT,EAAIe,EAC3ER,EAAa,KAEjB,GAAI5T,EAAcuU,SAAU,CAC1B,IAAIC,EAASN,KAAKC,MAAMX,GACpBiB,EAASP,KAAKC,MAAMd,GAGxBO,EAAa,CACXJ,EAAGgB,EACHnB,EAAGoB,EACH1I,EALUmI,KAAKQ,KAAK3I,EAAIyH,EAAIgB,GAM5BxI,EALUkI,KAAKQ,KAAK1I,EAAIqH,EAAIoB,IAShC,MAAO,CACLjB,EAAGA,EACHH,EAAGA,EACHrH,EAAGA,EACHD,EAAGA,EACH6H,WAAYA,GAShB,IAAIe,EAAkB,WACpB,KACE,IAAIC,QAASC,QAAQ,IAAID,QACzB,MAAOE,GACP,OAAO,EAGT,OAAO,EAPa,GAUlBC,EAEJ,SAAUC,GAGR,SAASD,IACP,IAAIE,EAEAC,EAEJ1E,EAAgBtB,KAAM6F,GAEtB,IAAK,IAAII,EAAOvG,UAAU/e,OAAQulB,EAAO,IAAIC,MAAMF,GAAOG,EAAO,EAAGA,EAAOH,EAAMG,IAC/EF,EAAKE,GAAQ1G,UAAU0G,GAmBzB,OAdAzF,EAAgBwB,EAFhB6D,EAAQ/D,EAA2BjC,MAAO+F,EAAmB3D,EAAgByD,IAAe/F,KAAKC,MAAMgG,EAAkB,CAAC/F,MAAMuE,OAAO2B,MAExF,eAAW,GAE1DvF,EAAgBwB,EAAuB6D,GAAQ,cAAU,GAEzDrF,EAAgBwB,EAAuB6D,GAAQ,QAAS,CACtDK,WAAW,IAGb1F,EAAgBwB,EAAuB6D,GAAQ,mBAAmB,WAChEA,EAAMM,SAAS,CACbD,WAAW,OAIRL,EAsJT,OAnLAtD,EAAUmD,EAAcC,GAgCxBhE,EAAa+D,EAAc,CAAC,CAC1BjG,IAAK,oBACL5W,MAAO,WACDgX,KAAKuG,QAAUvG,KAAKuG,OAAOC,UAC7BxG,KAAKyG,kBAGPzG,KAAK0G,WAEN,CACD9G,IAAK,4BACL5W,MAAO,SAAmC2d,GACxC,IAAIC,EAAuBC,GAE6C,QAAtDD,EAAwB5G,KAAKxgB,MAAMsR,qBAAqD,IAA1B8V,OAAmC,EAASA,EAAsBvV,QAC9E,QAArDwV,EAAwBF,EAAU7V,qBAAqD,IAA1B+V,OAAmC,EAASA,EAAsBxV,MAG5I2O,KAAKsG,SAAS,CACZD,WAAW,MAIhB,CACDzG,IAAK,qBACL5W,MAAO,WACLgX,KAAK0G,WAEN,CACD9G,IAAK,SACL5W,MAAO,WACL,IAAI8d,EAAc9G,KAAKxgB,MACnBwJ,EAAQ8d,EAAY9d,MACpBC,EAAO6d,EAAY7d,KACnBya,EAAQoD,EAAYpD,MACpBC,EAAUmD,EAAYnD,QACtBC,EAAUkD,EAAYlD,QACtBC,EAAgBiD,EAAYjD,cAC5B/S,EAAgBgW,EAAYhW,cAE5BiW,EAAS,IAAI/D,GAAY,EAAGC,EAAkBS,IAIlD,GAHAqD,EAAOC,QAAQ9D,EAAWla,IAC1B+d,EAAOE,OAEa,MAAhBjH,KAAKkH,QAAiB,CACxB,IAAIC,EAASnH,KAAKkH,QACdE,EAAMD,EAAOE,WAAW,MAE5B,IAAKD,EACH,OAGF,IAAIvC,EAAQkC,EAAOhD,QAEnB,GAAc,OAAVc,EACF,OAGF,IAAIb,EAASH,EAvNH,EAuNiC,EACvCiB,EAAWD,EAAMlkB,OAAkB,EAATqjB,EAC1BsD,EAA0B1C,EAAiB5E,KAAKxgB,MAAOqlB,GAEtC,MAAjB/T,GAAoD,MAA3BwW,GACe,MAAtCA,EAAwB5C,aAC1BG,EAAQJ,EAAgBI,EAAOyC,EAAwB5C,aAQ3D,IAAI6C,EAAa5U,OAAO6U,kBAAoB,EAC5CL,EAAO/B,OAAS+B,EAAOhC,MAAQlc,EAAOse,EACtC,IAAIrC,EAAQjc,EAAO6b,EAAWyC,EAC9BH,EAAIlC,MAAMA,EAAOA,GAEjBkC,EAAIK,UAAY9D,EAChByD,EAAIM,SAAS,EAAG,EAAG5C,EAAUA,GAC7BsC,EAAIK,UAAY7D,EAEZ6B,EAEF2B,EAAIO,KAAK,IAAIjC,OAAO5B,EAAae,EAAOb,KAExCa,EAAMtH,SAAQ,SAAU2G,EAAK0D,GAC3B1D,EAAI3G,SAAQ,SAAU8G,EAAMwD,GACtBxD,GACF+C,EAAIM,SAASG,EAAM7D,EAAQ4D,EAAM5D,EAAQ,EAAG,SAMhDhE,KAAK8H,MAAMzB,WAAarG,KAAKuG,QAAqC,MAA3Be,GACzCF,EAAIW,UAAU/H,KAAKuG,OAAQe,EAAwBhD,EAAIN,EAAQsD,EAAwBnD,EAAIH,EAAQsD,EAAwBzK,EAAGyK,EAAwBxK,MAI3J,CACD8C,IAAK,SACL5W,MAAO,WACL,IAAIgf,EAAShI,KAETiI,EAAejI,KAAKxgB,MAEpByJ,GADQgf,EAAajf,MACdif,EAAahf,MAIpB7H,GAHQ6mB,EAAavE,MACXuE,EAAatE,QACbsE,EAAarE,QACfqE,EAAa7mB,OAErB0P,GADgBmX,EAAapE,cACboE,EAAanX,eAC7BoX,EAAanH,EAAyBkH,EAAc,CAAC,QAAS,OAAQ,QAAS,UAAW,UAAW,QAAS,gBAAiB,kBAE/HE,EAAczH,EAAc,CAC9B0E,OAAQnc,EACRkc,MAAOlc,GACN7H,GAECgnB,EAAM,KACNC,EAASvX,GAAiBA,EAAcO,IAe5C,OAbqB,MAAjBP,GAAmC,MAAVuX,IAC3BD,EAAMxpB,EAAM0pB,cAAc,MAAO,CAC/BjX,IAAKgX,EACLjnB,MAAO,CACLmnB,QAAS,QAEXC,OAAQxI,KAAKyG,gBACbgC,IAAK,SAAatqB,GAChB,OAAO6pB,EAAOzB,OAASpoB,MAKtBS,EAAM0pB,cAAc1pB,EAAM8pB,SAAU,KAAM9pB,EAAM0pB,cAAc,SAAU/I,EAAS,CACtFne,MAAO+mB,EACP/C,OAAQnc,EACRkc,MAAOlc,EACPwf,IAAK,SAAa/K,GAChB,OAAOsK,EAAOd,QAAUxJ,IAEzBwK,IAAcE,OAIdvC,EApLT,CAqLEjnB,EAAM+pB,eAERhI,EAAgBkF,EAAc,eAAgBpC,GAM9C,IAAImF,EAEJ,SAAUC,GAGR,SAASD,IAGP,OAFAtH,EAAgBtB,KAAM4I,GAEf3G,EAA2BjC,KAAMoC,EAAgBwG,GAAW7I,MAAMC,KAAMN,YAoEjF,OAzEAgD,EAAUkG,EAAWC,GAQrB/G,EAAa8G,EAAW,CAAC,CACvBhJ,IAAK,SACL5W,MAAO,WACL,IAAI8f,EAAe9I,KAAKxgB,MACpBwJ,EAAQ8f,EAAa9f,MACrBC,EAAO6f,EAAa7f,KACpBya,EAAQoF,EAAapF,MACrBC,EAAUmF,EAAanF,QACvBC,EAAUkF,EAAalF,QACvBC,EAAgBiF,EAAajF,cAC7B/S,EAAgBgY,EAAahY,cAC7BoX,EAAanH,EAAyB+H,EAAc,CAAC,QAAS,OAAQ,QAAS,UAAW,UAAW,gBAAiB,kBAGtH/B,EAAS,IAAI/D,GAAY,EAAGC,EAAkBS,IAClDqD,EAAOC,QAAQ9D,EAAWla,IAC1B+d,EAAOE,OACP,IAAIpC,EAAQkC,EAAOhD,QAEnB,GAAc,OAAVc,EACF,OAAO,KAGT,IAAIb,EAASH,EA3VD,EA2V+B,EACvCiB,EAAWD,EAAMlkB,OAAkB,EAATqjB,EAC1BsD,EAA0B1C,EAAiB5E,KAAKxgB,MAAOqlB,GACvDkE,EAAQ,KAES,MAAjBjY,GAAoD,MAA3BwW,IACe,MAAtCA,EAAwB5C,aAC1BG,EAAQJ,EAAgBI,EAAOyC,EAAwB5C,aAGzDqE,EAAQnqB,EAAM0pB,cAAc,QAAS,CACnCU,UAAWlY,EAAcO,IACzB+T,OAAQkC,EAAwBxK,EAChCqI,MAAOmC,EAAwBzK,EAC/ByH,EAAGgD,EAAwBhD,EAAIN,EAC/BG,EAAGmD,EAAwBnD,EAAIH,EAC/BiF,oBAAqB,UAUzB,IAAIC,EAASpF,EAAae,EAAOb,GACjC,OAAOplB,EAAM0pB,cAAc,MAAO/I,EAAS,CACzC4J,eAAgB,aAChB/D,OAAQnc,EACRkc,MAAOlc,EACPmgB,QAAS,OAAO7E,OAAOO,EAAU,KAAKP,OAAOO,IAC5CoD,GAAatpB,EAAM0pB,cAAc,OAAQ,CAC1CX,KAAMhE,EACN0F,EAAG,SAAS9E,OAAOO,EAAU,KAAKP,OAAOO,EAAU,SACjDlmB,EAAM0pB,cAAc,OAAQ,CAC9BX,KAAM/D,EACNyF,EAAGH,IACDH,OAIDH,EA1ET,CA2EEhqB,EAAM+pB,eAERhI,EAAgBiI,EAAW,eAAgBnF,GAM3C,IAAI1a,EAAS,SAAgBvJ,GAC3B,IAAI8pB,EAAW9pB,EAAM8pB,SACjBpB,EAAanH,EAAyBvhB,EAAO,CAAC,aAE9C+pB,EAAyB,QAAbD,EAAqBV,EAAY/C,EACjD,OAAOjnB,EAAM0pB,cAAciB,EAAWrB,IAGxCnf,EAAOygB,aAAe9I,EAAc,CAClC4I,SAAU,UACT7F,GACHgG,EAAOC,QAAU3gB","sources":["webpack://Msdyn365.Commerce.Online/./src/common/address.tsx?e12e","webpack://Msdyn365.Commerce.Online/./src/common/buy-selected-component.tsx?9efa","webpack://Msdyn365.Commerce.Online/./src/common/get-groups.tsx?699f","webpack://Msdyn365.Commerce.Online/./src/common/get-order-information.tsx?c2e1","webpack://Msdyn365.Commerce.Online/./src/common/get-sales-line.tsx?61be","webpack://Msdyn365.Commerce.Online/./src/common/get-sales-lines.tsx?10c6","webpack://Msdyn365.Commerce.Online/./src/common/label.tsx?9c2c","webpack://Msdyn365.Commerce.Online/./src/common/utilities.ts?0172","webpack://Msdyn365.Commerce.Online/./node_modules/@msdyn365-commerce-modules/order-management/node_modules/qrcode.react/lib/index.js?6423"],"sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Address as AddressRetail } from '@msdyn365-commerce/retail-proxy';\nimport * as React from 'react';\n\nexport type addressType = 'store' | 'ship';\n\nexport interface IShippingAddressProps {\n moduleName: string;\n address: AddressRetail;\n deliveryType: string;\n showCompleteAddress?: boolean;\n resource: {\n shipToLabel: string;\n storeLabel: string;\n phoneLabel: string;\n phoneAriaLabel: string;\n };\n}\n\nconst Address: React.SFC = ({\n moduleName,\n address,\n deliveryType,\n showCompleteAddress,\n resource: { shipToLabel, storeLabel, phoneLabel }\n}) => (\n
\n
{deliveryType !== 'ship' ? storeLabel : shipToLabel}
\n {address.Name && {address.Name}}\n {showCompleteAddress ? (\n <>\n {address.Street && (\n \n {address.Street}\n {` `}\n \n )}\n {address.City && {address.City}}\n {address.State && {`, ${address.State}`}}\n {address.County && {`, ${address.County}`}}\n {address.ZipCode && {` ${address.ZipCode}`}}\n {address.ThreeLetterISORegionName && (\n {` ${address.ThreeLetterISORegionName}`}\n )}\n {address.Phone && (\n \n {phoneLabel}\n \n )}\n \n ) : (\n address.FullAddress && {address.FullAddress}\n )}\n
\n);\n\nexport default React.memo(Address);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { AddToCartComponent, IAddToCartResources, OrderDetailsProduct } from '@msdyn365-commerce/components';\nimport { getUrlSync, IComponentProps, ICoreContext } from '@msdyn365-commerce/core';\nimport { ArrayExtensions, ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\n/**\n * The data which the component should operate.\n */\nexport interface IBuySelectedData {\n products: OrderDetailsProduct[];\n}\n\n/**\n * The resources needed to render a buy selected component.\n */\nexport interface IBuySelectedResources {\n orderDetailsUnavailableProductText?: string;\n orderDetailsBuySelectedButtonText?: string;\n orderDetailsBuySelectedButtonAriaLabel?: string;\n orderDetailsBuySelectedAddingToCartErrorNotificationTitle?: string;\n orderDetailsBuySelectedAddingToCartErrorNotificationCloseAriaLabel?: string;\n orderDetailsBuyItAgainLabel?: string;\n orderDetailsBuyItAgainAriaLabel?: string;\n orderDetailsGoToCartText?: string;\n orderDetailsDialogCloseText?: string;\n orderDetailsSingleItemText?: string;\n orderDetailsMultiLineItemFormatText?: string;\n orderDetailsMultiLinesFormatText?: string;\n orderDetailsHeaderMessageText?: string;\n orderDetailsMultiItemsValidationErrorMessage?: string;\n orderDetailsOneErrorText?: string;\n orderDetailsMultiErrorText?: string;\n addedQuantityText?: string;\n originalPriceText?: string;\n currentPriceText?: string;\n freePriceText?: string;\n}\n\n/**\n * Configuration of a buy selected component.\n */\nexport interface IBuySelectedProps extends IComponentProps {\n className: string;\n context: ICoreContext;\n\n resources: IBuySelectedResources;\n\n isIcon?: boolean;\n isReorderingEnabled?: boolean;\n}\n\n/**\n * Get the dialog strings.\n * @param props -- The buy selected props.\n * @returns The add to cart resources.\n */\nexport const getDialogStrings = (props: IBuySelectedProps): IAddToCartResources => {\n return {\n goToCartText: props.resources.orderDetailsGoToCartText ?? '',\n continueShoppingText: props.resources.orderDetailsDialogCloseText ?? '',\n closeNotificationLabel: props.resources.orderDetailsBuySelectedAddingToCartErrorNotificationCloseAriaLabel ?? '',\n headerItemOneText: props.resources.orderDetailsSingleItemText ?? '',\n headerItemFormatText: props.resources.orderDetailsMultiLineItemFormatText ?? '',\n headerLinesFormatText: props.resources.orderDetailsMultiLinesFormatText ?? '',\n headerMessageText: props.resources.orderDetailsHeaderMessageText ?? '',\n freePriceText: props.resources.freePriceText ?? '',\n originalPriceText: props.resources.originalPriceText ?? '',\n currentPriceText: props.resources.currentPriceText ?? '',\n addedQuantityText: props.resources.addedQuantityText ?? '',\n buyAgainNotificationTitle: props.resources.orderDetailsBuySelectedAddingToCartErrorNotificationTitle ?? '',\n buyAgainNotificationCloseAriaLabel: props.resources.orderDetailsBuySelectedAddingToCartErrorNotificationCloseAriaLabel ?? '',\n validationErrorMessage: props.resources.orderDetailsMultiItemsValidationErrorMessage,\n oneErrorText: props.resources.orderDetailsOneErrorText,\n multiErrorsText: props.resources.orderDetailsMultiErrorText\n };\n};\n\n/**\n * Renders a button which adds given products to the cart.\n * @param props - Configuration of the component.\n * @returns A react element or null if no products were given.\n */\nexport const BuySelectedComponent: React.FC = (props: IBuySelectedProps): JSX.Element | null => {\n const products = props.data.products.filter(product => !ObjectExtensions.isNullOrUndefined(product.simpleProduct));\n const buttonLabel = props.isIcon\n ? ''\n : props.resources.orderDetailsBuySelectedButtonText ?? props.resources.orderDetailsBuyItAgainLabel;\n const buttonAriaLabel = props.resources.orderDetailsBuySelectedButtonAriaLabel ?? props.resources.orderDetailsBuyItAgainAriaLabel;\n\n const singleProductCount = 1;\n if (props.data.products.length === singleProductCount && !props.data.products[0].isProductAvailable) {\n // Return disabled button\n return (\n \n {buttonLabel}\n \n );\n }\n\n if (!ArrayExtensions.hasElements(products)) {\n // Return disabled button\n return (\n \n );\n }\n\n const firstProduct: OrderDetailsProduct = products[0];\n\n // Reorder is not enable, buy again button link to product details page.\n if (!props.isReorderingEnabled) {\n const style: React.CSSProperties = {\n opacity: '0.5'\n };\n return (\n \n {buttonLabel}\n \n );\n }\n\n const shouldSkipSiteSettings: boolean = true;\n const dialogStrings: IAddToCartResources = getDialogStrings(props);\n const emailDeliveryModeCode = props.context.actionContext.requestContext.channel?.EmailDeliveryModeCode;\n return (\n \n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { format, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classNames from 'classnames';\nimport * as React from 'react';\n\nimport { ISalesLine } from './get-sales-line';\nimport { groupSalesLines, IDeliveryType, ISalesStatusCode } from './utilities';\n\nexport interface IGroupDelivery {\n deliveryProps: INodeProps;\n pickupProps: INodeProps;\n showTimeslot: boolean;\n heading: React.ReactNode;\n count: React.ReactNode;\n processing: React.ReactNode;\n trackingInfo: React.ReactNode;\n address: React.ReactNode;\n shippingItemsToYou?: React.ReactNode;\n pickupDateTimeslot?: React.ReactNode;\n shippedStatusCheck?: React.ReactNode;\n}\n\nexport interface IGroup {\n groupProps: INodeProps;\n salesLinesProps: INodeProps;\n delivery: IGroupDelivery;\n salesLines: ISalesLine[];\n address: React.ReactNode;\n requestDeliveryDate?: React.ReactNode;\n\n // Row data\n data: {\n count: number;\n deliveryType: IDeliveryType;\n salesStatus: ISalesStatusCode;\n };\n isCashAndCarryTransaction?: boolean;\n}\n\nexport interface IGroupsInput {\n moduleName: string;\n salesLines: ISalesLine[];\n resources: {\n orderItemLabel: string;\n orderItemsLabel: string;\n pickupItemsHeader?: string;\n pickingItemsLabel?: string;\n shippingAddressTitle?: string;\n shippingItemToYouLabel?: string;\n shippingItemToOBOCustomerLabel?: string;\n emailItemsHeader?: string;\n emailingItemsLabel?: string;\n };\n showAddress?: boolean;\n isConfirmationView?: boolean;\n showTimeslot?: boolean;\n retailMultiplePickUpOptionEnabled?: boolean;\n isCashAndCarryTransaction?: boolean;\n isSelectionModeEnabled?: boolean;\n isOboRequest?: boolean;\n customerName?: string;\n}\n\nexport interface IGroups {\n groupsProps: INodeProps;\n groups: IGroup[];\n}\n\n/**\n * Creates sales lines node props object.\n * @param moduleName - Module name to use as a class name prefix.\n * @param isSelectionModeEnabled - Specifies if the selection mode is enabled for the sales lines.\n * @returns Sales lines node props with the class name to use for the sales lines container.\n */\nconst getSalesLinesProps: (moduleName: string, isSelectionModeEnabled?: boolean) => INodeProps = (\n moduleName: string,\n isSelectionModeEnabled?: boolean\n): INodeProps => {\n const className = `${moduleName}__sales-lines`;\n const salesLinesProps: INodeProps = {\n className: classNames(\n className,\n isSelectionModeEnabled ? `${className}__selection-global-enabled` : `${className}__selection-global-disabled`\n )\n };\n return salesLinesProps;\n};\n\nexport const getGroups = ({\n moduleName,\n salesLines,\n showAddress,\n showTimeslot,\n isConfirmationView,\n retailMultiplePickUpOptionEnabled,\n isCashAndCarryTransaction,\n isSelectionModeEnabled,\n customerName,\n isOboRequest,\n resources: {\n orderItemLabel,\n orderItemsLabel,\n pickupItemsHeader,\n pickingItemsLabel,\n shippingAddressTitle,\n shippingItemToYouLabel,\n shippingItemToOBOCustomerLabel,\n emailItemsHeader,\n emailingItemsLabel\n }\n}: IGroupsInput): IGroups => {\n const groups = groupSalesLines(salesLines).map(group => {\n const { deliveryType, salesStatus, count, salesLines: _salesLines } = group;\n const itemLabel = count === 1 ? orderItemLabel : orderItemsLabel;\n const pickingItemsLabelText = pickingItemsLabel && format(pickingItemsLabel, count, itemLabel);\n const shippingItemsToText = isOboRequest\n ? shippingItemToOBOCustomerLabel && format(shippingItemToOBOCustomerLabel, count, itemLabel, customerName)\n : shippingItemToYouLabel && format(shippingItemToYouLabel, count, itemLabel);\n const emailingItemsLabelText = emailingItemsLabel && format(emailingItemsLabel, count, itemLabel);\n const multiplePickup = deliveryType === 'ship' ? 'ship' : deliveryType === 'email' ? 'email' : 'pickup';\n const groupProps = { className: `${moduleName}__group-deliveryType-${multiplePickup} salesStatus-${salesStatus}` };\n\n const salesLinesProps = getSalesLinesProps(moduleName, isSelectionModeEnabled);\n const address = _salesLines[0].address;\n const trackingInfo = _salesLines[0].trackingInfo;\n const isProcessing = _salesLines[0].data.salesStatus === 'processing';\n const pickDateTimeslot = _salesLines[0].pickupDateTimeslot;\n const shippedStatusCheck = _salesLines[0].data.salesStatus;\n const multiplePickUp = retailMultiplePickUpOptionEnabled ? 'multiple-pickUp' : '';\n const delivery: IGroupDelivery = {\n deliveryProps: { className: `${moduleName}__group-delivery ${multiplePickUp}` },\n pickupProps: { className: `${moduleName}__delivery-container` },\n heading: (\n \n {isProcessing\n ? isConfirmationView\n ? deliveryType === 'pickUp'\n ? pickupItemsHeader\n : deliveryType === 'ship'\n ? shippingAddressTitle\n : deliveryType === 'email'\n ? emailItemsHeader\n : deliveryType\n : _salesLines[0].deliveryType\n : _salesLines[0].salesStatus}\n \n ),\n processing: isProcessing ? (\n {_salesLines[0].salesStatus}\n ) : (\n undefined\n ),\n count: !isConfirmationView && {`(${count} ${itemLabel})`},\n shippingItemsToYou:\n isConfirmationView && deliveryType === 'ship' ? (\n {shippingItemsToText}\n ) : deliveryType === 'pickUp' ? (\n {pickingItemsLabelText}\n ) : deliveryType === 'email' ? (\n {emailingItemsLabelText}\n ) : (\n {pickingItemsLabelText}\n ),\n trackingInfo,\n address,\n pickupDateTimeslot: pickDateTimeslot,\n showTimeslot: showTimeslot || false,\n shippedStatusCheck\n };\n return {\n groupProps,\n salesLinesProps,\n delivery,\n salesLines: _salesLines,\n address: showAddress && address,\n requestDeliveryDate: _salesLines[0].requestDeliveryDate,\n data: {\n count,\n deliveryType,\n salesStatus\n },\n isCashAndCarryTransaction\n };\n });\n\n return {\n groupsProps: { className: `${moduleName}__groups` },\n groups\n };\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { PriceComponent } from '@msdyn365-commerce/components';\nimport {\n ChannelIdentity,\n Customer,\n Note,\n OrderOriginator,\n OrderShipments,\n OrgUnitLocation,\n SalesOrder\n} from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport get from 'lodash/get';\nimport QRCode from 'qrcode.react';\nimport * as React from 'react';\n\nimport { countItems, IModuleComponentProps, IPriceContext } from './utilities';\n\n/**\n * Interface for order information input resources.\n */\nexport interface IOrderInformationInputResources {\n receiptEmailMessage?: string;\n orderItemLabel: string;\n orderItemsLabel: string;\n processingLabel: string;\n orderIdLabel: string;\n receiptIdLabel: string;\n confirmationIdLabel: string;\n trackingLabel: string;\n trackingAriaLabel: string;\n trackingComingSoonLabel: string;\n posChannelNameText?: string;\n onlineStoreChannelNameText?: string;\n orderPlacedOnLabel?: string;\n qrCodeSrText?: string;\n callCenterChannelNameText?: string;\n orderPlacedByFullText?: string;\n orderPlacedByYouText?: string;\n orderOnBehalfOfText?: string;\n noteLabel?: string;\n orderDetailsRequestDeliveryDateText?: string;\n}\n\n/**\n * Interface for order information input.\n */\nexport interface IOrderInformationInput {\n moduleName: string;\n channelReferenceId?: string;\n channelName?: string;\n channelAddress?: string;\n showChannelInfo?: boolean;\n receiptEmail?: string;\n createdDate?: string;\n amount?: number;\n priceContext: IPriceContext;\n salesId?: string;\n receiptId?: string;\n hasTrackingInfo?: boolean;\n count?: number;\n resources: IOrderInformationInputResources;\n isSalesInvoice?: boolean;\n shouldShowQrCode?: boolean;\n channelTypeValue?: number;\n originator?: OrderOriginator;\n isYou?: [boolean, boolean]; // deprecated\n isB2bAdmin?: boolean;\n isOnlineStore?: boolean;\n priceCurrency?: string;\n note?: Note;\n customer?: Customer;\n}\n\nconst callCenterChannelTypeValue = 4;\n\n/**\n * Interface for order information.\n */\nexport interface IOrderInformation {\n orderInformationProps: INodeProps;\n channelName: React.ReactNode;\n channelAddress: React.ReactNode;\n placedBy?: React.ReactNode;\n salesId: React.ReactNode;\n receiptId: React.ReactNode;\n receiptEmail: React.ReactNode;\n createdDate: React.ReactNode;\n count: React.ReactNode;\n amount: React.ReactNode;\n channelReferenceId: React.ReactNode;\n note?: React.ReactNode;\n}\n\n/**\n * The order confirmation ID node.\n * @param channelReferenceId - The order confirmation id.\n * @param moduleName - The module name.\n * @param confirmationIdLabel - The confirmation label.\n * @param shouldShowQrCode - Should the view show the QR code.\n * @param qrCodeSrText - The screen reader text of the QR code.\n * @returns The react node for order confirmation ID.\n */\nconst getChannelReference = (\n channelReferenceId: string | undefined,\n moduleName: string,\n confirmationIdLabel: string,\n shouldShowQrCode: boolean | undefined,\n qrCodeSrText?: string\n): React.ReactNode | undefined => {\n const confirmationIdNode: React.ReactNode = (\n \n {`${confirmationIdLabel} `}\n {channelReferenceId}\n \n );\n return (\n channelReferenceId &&\n (shouldShowQrCode !== undefined && shouldShowQrCode ? (\n
\n {confirmationIdNode}\n
\n \n \n {qrCodeSrText}\n \n
\n
\n ) : (\n confirmationIdNode\n ))\n );\n};\n\n/**\n * The order confirmation ID node.\n * @param note - The order confirmation id.\n * @param moduleName - The module name.\n * @param noteLabel - The note label.\n * @returns The react node for order note.\n */\nconst getOrderNote = (moduleName: string, note?: Note, noteLabel?: string): React.ReactNode | undefined => {\n if (note === undefined || StringExtensions.isNullOrWhitespace(note.Description)) {\n return null;\n }\n return (\n
\n
\n
{noteLabel}
\n
\n
{note.Description}
\n
\n );\n};\n\n/**\n * Get Channel name to display on order history.\n * @param channelTypeValue - The channel type.\n * @param moduleName - The module name.\n * @param callCenterChannelNameText - The call center channel name.\n * @param channelAddress - Channel Address.\n * @param posChannelNameText - POS channel name.\n * @param channelName - Channel Name.\n * @param onlineStoreChannelNameText - Online store channel name.\n * @returns The react node for channel name label.\n */\nexport const getChannelName = (\n channelTypeValue: number | undefined,\n moduleName: string,\n callCenterChannelNameText: string | undefined,\n channelAddress: string | undefined,\n posChannelNameText: string | undefined,\n channelName: string | undefined,\n onlineStoreChannelNameText: string | undefined\n): React.ReactNode => {\n let channelNameNode: React.ReactNode;\n if (channelTypeValue === callCenterChannelTypeValue) {\n channelNameNode = {callCenterChannelNameText};\n } else if (channelAddress) {\n const posChannelName = `${posChannelNameText ?? ''} ${channelName ?? ''}`;\n channelNameNode = {posChannelName};\n } else {\n const onlineChannelName = `${onlineStoreChannelNameText ?? ''} ${channelName ?? ''}`;\n channelNameNode = {onlineChannelName};\n }\n return channelNameNode;\n};\n\n/**\n * Get order information.\n * @param {IOrderInformationInput} param0 The input for order information.\n * @returns {IOrderInformation} The order information.\n */\nexport const getOrderInformation = ({\n moduleName,\n channelReferenceId,\n channelName,\n channelAddress,\n channelTypeValue,\n showChannelInfo,\n receiptEmail,\n createdDate,\n amount,\n priceContext,\n isOnlineStore,\n customer,\n originator,\n salesId,\n receiptId,\n count,\n resources: {\n receiptEmailMessage,\n orderItemLabel,\n orderItemsLabel,\n orderIdLabel,\n orderPlacedByFullText,\n orderPlacedByYouText,\n orderOnBehalfOfText,\n receiptIdLabel,\n confirmationIdLabel,\n posChannelNameText,\n onlineStoreChannelNameText,\n orderPlacedOnLabel,\n qrCodeSrText,\n callCenterChannelNameText,\n noteLabel\n },\n isSalesInvoice,\n shouldShowQrCode,\n priceCurrency,\n note\n}: IOrderInformationInput): IOrderInformation => {\n const channelNameNode: React.ReactNode = getChannelName(\n channelTypeValue,\n moduleName,\n callCenterChannelNameText,\n channelAddress,\n posChannelNameText,\n channelName,\n onlineStoreChannelNameText\n );\n\n const orderInformation = {\n orderInformationProps: { className: `${moduleName}__order-information` },\n channelName: showChannelInfo && channelName && channelNameNode,\n channelAddress: showChannelInfo && channelAddress && (\n {channelAddress}\n ),\n placedBy: getPlacedBy(\n moduleName,\n isOnlineStore,\n customer,\n originator,\n orderPlacedByFullText,\n orderPlacedByYouText,\n orderOnBehalfOfText\n ),\n salesId: salesId ? {`${orderIdLabel} ${salesId}`} : '',\n receiptId: receiptId ? (\n {`${receiptIdLabel} ${receiptId}`}\n ) : (\n ''\n ),\n receiptEmail: receiptEmail && (\n \n {receiptEmailMessage}\n {receiptEmail}\n \n ),\n createdDate: !isSalesInvoice && createdDate && (\n \n {orderPlacedOnLabel}\n {` `}\n {createdDate}\n \n ),\n count: !isSalesInvoice && count !== undefined && count > 0 && (\n \n {count === 1 ? `${count} ${orderItemLabel}` : `${count} ${orderItemsLabel}`}\n \n ),\n amount: !isSalesInvoice && (amount || amount === 0) && (\n \n ),\n channelReferenceId: getChannelReference(channelReferenceId, moduleName, confirmationIdLabel, shouldShowQrCode, qrCodeSrText),\n note: getOrderNote(moduleName, note, noteLabel)\n };\n\n return orderInformation;\n};\n\n/**\n * Interface for order information props.\n */\ninterface IProps extends IModuleComponentProps {\n resources: IOrderInformationInputResources;\n customer?: Customer;\n}\n\n/**\n * Retrieves order channel name.\n * @param order - Order info.\n * @param channelIdentities - Channels data.\n * @returns String with the name of the channel or an empty string.\n */\nexport const getOrderChannelName: (order: SalesOrder | OrderShipments, channelIdentities?: ChannelIdentity[]) => string = (\n order: SalesOrder | OrderShipments,\n channelIdentities?: ChannelIdentity[]\n) => {\n const orderChannel = channelIdentities?.find(channel => {\n return channel.RecordId === order.ChannelId;\n });\n\n const channelName = orderChannel?.Name ?? '';\n return channelName;\n};\n\n/**\n * Retrieves order channel type value.\n * @param order - Order info.\n * @param channelIdentities - Channels data.\n * @returns The channel type value of the order.\n */\nexport const getOrderChannelTypeValue: (order: SalesOrder | OrderShipments, channelIdentities?: ChannelIdentity[]) => number | undefined = (\n order: SalesOrder | OrderShipments,\n channelIdentities?: ChannelIdentity[]\n) => {\n const orderChannel = channelIdentities?.find(channel => {\n return channel.RecordId === order.ChannelId;\n });\n\n const channelType = orderChannel?.ChannelType.Value;\n return channelType;\n};\n\n/**\n * Retrieves channel is online store or not.\n * @param channelTypeValue - The channel type.\n * @param channelAddress - Channel Address.\n * @returns {Boolean} that indicates that the channel is in the online store.\n */\nexport const isOnlineStoreChannel = (channelTypeValue: number | undefined, channelAddress: string | undefined): boolean => {\n return channelTypeValue !== callCenterChannelTypeValue && !channelAddress;\n};\n\n/**\n * Retrieves order channel address.\n * @param order - Order info.\n * @param orgUnitLocations - OrgUnitLocation data.\n * @returns String with the address of the channel or an empty string.\n */\nexport const getOrderChannelAddress: (order: SalesOrder | OrderShipments, orgUnitLocations?: OrgUnitLocation[]) => string = (\n order: SalesOrder | OrderShipments,\n orgUnitLocations?: OrgUnitLocation[]\n) => {\n const orderOrgUnitLocation = orgUnitLocations?.find(location => {\n return location.ChannelId === order.ChannelId;\n });\n\n const channelAddress = orderOrgUnitLocation?.Address ?? '';\n return channelAddress;\n};\n\n/**\n * Get order information input.\n * @param {IProps} props The properties.\n * @param {string} moduleName The module name.\n * @param {SalesOrder | OrderShipments} order The sales order or order shipments.\n * @param {IPriceContext} priceContext The price context.\n * @param {ChannelIdentity[]} channelIdentities A list of channel identities.\n * @param {OrgUnitLocation[]} orgUnitLocations A list of organization unit locations.\n * @param {Customer} customer A current customer.\n * @param {OrderOriginator} originator The order originator.\n * @param {boolean} showChannelInfo Should the view show channel information.\n * @param {boolean} isSalesInvoice Is this a sales invoice.\n * @param {boolean} shouldShowQrCode Should the view show QR code.\n * @returns {IOrderInformationInput} The order information input.\n */\nexport const getOrderInformationInput = (\n props: IProps,\n moduleName: string,\n order: SalesOrder | OrderShipments,\n priceContext: IPriceContext,\n channelIdentities?: ChannelIdentity[],\n orgUnitLocations?: OrgUnitLocation[],\n customer?: Customer,\n originator?: OrderOriginator,\n showChannelInfo?: boolean,\n isSalesInvoice?: boolean,\n shouldShowQrCode?: boolean\n): IOrderInformationInput => {\n const {\n resources,\n context: {\n request: {\n apiSettings: { channelId }\n }\n }\n } = props;\n\n // @ts-expect-error OrderShipments doesn't has ChannelId\n const showTrackingInfo = !!order.ChannelId && order.ChannelId === channelId;\n\n // @ts-expect-error OrderShipments doesn't has Notes\n const showNotes = !!order.Notes && order.Notes.length > 0;\n\n const locale = get(props, 'context.request.locale') || 'en-US';\n const count = order.SalesLines && ArrayExtensions.hasElements(order.SalesLines) ? countItems(order.SalesLines) : 0;\n const channelTypeValue = getOrderChannelTypeValue(order, channelIdentities);\n const channelAddress = getOrderChannelAddress(order, orgUnitLocations);\n // @ts-expect-error OrderShipments doesn't has Notes\n const countNote = showNotes && ArrayExtensions.hasElements(order.Notes) ? order.Notes.length : undefined;\n // @ts-expect-error OrderShipments doesn't has Notes\n // eslint-disable-next-line security/detect-object-injection\n const note = countNote !== undefined ? order.Notes[countNote - 1] : undefined;\n\n return {\n moduleName,\n createdDate: (order.CreatedDateTime && new Date(order.CreatedDateTime).toLocaleDateString(locale)) || '',\n salesId: order.SalesId,\n priceCurrency: order.CurrencyCode,\n customer: customer,\n originator: originator,\n isYou: undefined,\n isB2bAdmin: customer?.IsB2bAdmin,\n receiptId: order.ReceiptId,\n showChannelInfo,\n\n // @ts-expect-error OrderShipments doesn't has ReceiptEmail\n receiptEmail: order.ReceiptEmail,\n channelReferenceId: order.ChannelReferenceId,\n channelName: getOrderChannelName(order, channelIdentities),\n channelAddress: channelAddress,\n amount: order.TotalAmount ?? 0,\n priceContext,\n count,\n resources,\n isSalesInvoice,\n shouldShowQrCode,\n channelTypeValue: channelTypeValue,\n isOnlineStore: isOnlineStoreChannel(channelTypeValue, channelAddress),\n note: note\n };\n};\n\nconst getPlacedBy = (\n moduleName: string,\n isOnlineStore: boolean | undefined,\n customer: Customer | undefined,\n originator: OrderOriginator | undefined,\n orderPlacedByFullText: string | undefined,\n orderPlacedByYouText: string | undefined,\n orderOnBehalfOfText: string | undefined\n): React.ReactNode | undefined => {\n let placedByNode: React.ReactNode | undefined;\n\n if (originator) {\n const staffPlacedOrder: boolean = originator.StaffId && originator.StaffName ? true : false;\n const currentCustomerOwnsOrder: boolean =\n originator.CustomerId && originator.CustomerName && customer?.AccountNumber === originator.CustomerId ? true : false;\n\n let placedByName: string | undefined = originator.CustomerName;\n let placedOnBehalfOfName: string | undefined;\n let wasPlacedByCurrentCustomer: boolean = false;\n let wasPlacedOnBehalfOf: boolean = false;\n let wasPlacedOnBehalfOfCurrentCustomer: boolean = false;\n\n if (staffPlacedOrder) {\n // order was placed in on-behalf-of scenario\n if (isOnlineStore) {\n wasPlacedOnBehalfOf = true;\n placedByName = originator.StaffName;\n placedOnBehalfOfName = originator.CustomerName;\n\n if (currentCustomerOwnsOrder) {\n wasPlacedOnBehalfOfCurrentCustomer = true;\n }\n }\n } else {\n // the order was not placed in on-behalf-of scenario.\n // we must check if the current customer created the order or not.\n if (currentCustomerOwnsOrder) {\n wasPlacedByCurrentCustomer = true;\n }\n }\n\n placedByNode = (\n
\n {orderPlacedByFullText} {placedByName || '-'}{' '}\n {placedByName && wasPlacedByCurrentCustomer && ` ${orderPlacedByYouText}`}\n {wasPlacedOnBehalfOf && (\n
\n {orderOnBehalfOfText} {placedOnBehalfOfName || '-'}{' '}\n {placedOnBehalfOfName && wasPlacedOnBehalfOfCurrentCustomer && ` ${orderPlacedByYouText}`}\n
\n )}\n
\n );\n }\n\n return placedByNode;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { CartLineItemComponent, OrderDetailsProduct } from '@msdyn365-commerce/components';\nimport MsDyn365, { IGridSettings, IImageSettings, Image, IRequestContext, isChannelTypeB2B } from '@msdyn365-commerce/core';\nimport {\n ChannelDeliveryOptionConfiguration,\n format,\n ProductCatalog,\n ProductDeliveryOptions,\n SalesLine,\n Shipment,\n SimpleProduct\n} from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, getFallbackImageUrl, getProductPageUrlSync, ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { Observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport Address from './address';\nimport { BuySelectedComponent } from './buy-selected-component';\nimport LabelComponent from './label';\nimport { SalesLineState } from './sales-line-state';\nimport {\n defaultImageSettings,\n getDateTimeslot,\n getSalesStatusCode,\n IDeliveryType,\n IModuleComponentProps,\n ISalesStatusCode\n} from './utilities';\n\nexport type ISalesStatusStringMap = {\n [x in ISalesStatusCode]: string | undefined;\n};\n\nexport type IDeliveryTypeStringMap = {\n [x in IDeliveryType]: string | undefined;\n};\n\nexport interface ISalesLineResources {\n productDimensionTypeSize: string;\n productDimensionTypeColor: string;\n productDimensionTypeStyle: string;\n productDimensionTypeAmount?: string;\n salesLineQuantityText: string;\n configString: string;\n shipToLabel: string;\n storeLabel: string;\n phoneLabel: string;\n phoneAriaLabel: string;\n buyItAgainAriaLabel: string;\n buyItAgainLabel: string;\n orderStatusReadyForPickup: string;\n orderStatusPickedUp: string;\n orderStatusShipped: string;\n orderStatusCanceled: string;\n orderStatusProcessing: string;\n pickedUpSalesLines: string;\n deliveredSalesLines: string;\n carryOutSalesLines: string;\n trackingLabel: string;\n trackingAriaLabel: string;\n trackingComingSoonLabel: string;\n discountStringText: string;\n orderStatusEmailed: string;\n emailSalesLines: string;\n pickupDateTimeslotText: string;\n pickupTimeslotPlaceHolder: string;\n shippingCharges?: string;\n orderDetailsUnavailableProductText?: string;\n orderDetailsBuySelectedButtonText?: string;\n orderDetailsBuySelectedButtonAriaLabel?: string;\n orderDetailsBuySelectedAddingToCartErrorNotificationTitle?: string;\n orderDetailsBuySelectedAddingToCartErrorNotificationCloseAriaLabel?: string;\n orderDetailsGoToCartText?: string;\n orderDetailsDialogCloseText?: string;\n orderDetailsSelectRadioAriaLabelText?: string;\n orderDetailsSingleItemText?: string;\n orderDetailsMultiLineItemFormatText?: string;\n orderDetailsMultiLinesFormatText?: string;\n orderDetailsHeaderMessageText?: string;\n orderDetailsMultiItemsValidationErrorMessage?: string;\n orderDetailsOneErrorText?: string;\n orderDetailsMultiErrorText?: string;\n addedQuantityText?: string;\n originalPriceText?: string;\n currentPriceText?: string;\n freePriceText?: string;\n orderDetailsConfirmedShipDateText?: string;\n orderDetailsRequestDeliveryDateText?: string;\n orderDetailsAddressText?: string;\n}\n\nexport interface IGetSalesLineInput {\n moduleName: string;\n moduleComponentProps: IModuleComponentProps;\n product?: SimpleProduct;\n shipment?: Shipment;\n salesLine: SalesLine;\n isCurrentChannel: boolean;\n resources: ISalesLineResources;\n imageOnly?: boolean;\n salesLineState?: SalesLineState;\n showCompleteAddress?: boolean;\n showTimeslot: boolean;\n telemetryContent?: ITelemetryContent;\n retailMultiplePickUpOptionEnabled?: boolean;\n channelDeliveryOptionConfig?: ChannelDeliveryOptionConfiguration;\n productDeliveryOptions?: ProductDeliveryOptions[];\n isSelectionModeEnabled?: boolean;\n orderDetailsProduct?: OrderDetailsProduct;\n isReorderingEnabled?: boolean;\n isChannelMultipleCatalogsFeatureEnabled?: boolean;\n catalogs?: ProductCatalog[];\n priceCurrency?: string;\n}\n\nexport interface ISalesLine {\n salesLineProps: INodeProps;\n salesLine: React.ReactNode;\n address?: React.ReactNode;\n buyAgainButton?: React.ReactNode;\n salesStatus: React.ReactNode;\n deliveryType: React.ReactNode;\n trackingInfo: React.ReactNode;\n pickupDateTimeslot: React.ReactNode;\n errors?: React.ReactNode;\n requestDeliveryDate?: React.ReactNode;\n\n // Row data\n data: {\n salesLine: SalesLine;\n product?: SimpleProduct;\n shipment?: Shipment;\n deliveryType: string;\n productUrl: string | undefined;\n salesStatus: ISalesStatusCode;\n isChecked?: boolean;\n };\n}\n\nenum deliveryTypeEnum {\n ship = 'ship',\n email = 'email',\n carryOut = 'carryOut',\n pickUp = 'pickUp'\n}\n\n/**\n * The on select line call back.\n * @param orderDetailsProduct -- The current order details product.\n * @returns The call back method.\n */\nconst onSelectLine = (orderDetailsProduct: OrderDetailsProduct) => () => {\n orderDetailsProduct.isSelected = !orderDetailsProduct.isSelected;\n};\n\n/**\n * Get the checkbox element.\n * @param orderDetailsProduct -- The order details product.\n * @param orderDetailsSelectRadioAriaLabelText -- The aria label text.\n * @param moduleName -- The module name.\n * @returns The checkbox element.\n */\nconst getOrderDetailsSalesLineCheckbox = (\n orderDetailsProduct: OrderDetailsProduct,\n orderDetailsSelectRadioAriaLabelText: string | undefined,\n moduleName: string\n): JSX.Element | null => {\n const checkboxRowAriaLabel = format(orderDetailsSelectRadioAriaLabelText ?? '{0}', orderDetailsProduct.salesLine.ProductId);\n\n return (\n
\n \n
\n );\n};\n\n/**\n * Get tracking information.\n * @param deliveryType -- The delivery type.\n * @param moduleName -- Module name.\n * @param trackingLabel -- Tracking label.\n * @param trackingAriaLabel -- Tracking aria label.\n * @param trackingComingSoonLabel -- Tracking coming soon label.\n * @param shipment -- Shipment.\n * @returns The tracking information.\n */\nexport const getTrackingInfo = (\n deliveryType: string,\n moduleName: string,\n trackingLabel: string,\n trackingAriaLabel: string,\n trackingComingSoonLabel: string,\n shipment: Shipment | undefined\n): false | JSX.Element => {\n return (\n deliveryType === deliveryTypeEnum.ship && (\n \n {trackingLabel}\n {shipment ? (\n \n {shipment.TrackingNumber}\n \n ) : (\n <>{trackingComingSoonLabel}\n )}\n \n )\n );\n};\n\n/**\n * Get pick update date time lot information.\n * @param shouldShowTimeslot -- Should show time slot.\n * @param isDeliveryPickupSame -- Is delivery and pickup the same.\n * @param salesLine -- The sales line.\n * @param pickupTimeslotPlaceHolder -- The pickup time slot place holder.\n * @param moduleName -- The module name.\n * @param locale -- The locale.\n * @param pickupDateTimeslotText -- The pickup date time slot text.\n * @returns The pickup date time slot information.\n */\nexport const getPickupDateTimeslotInfo = (\n shouldShowTimeslot: boolean,\n isDeliveryPickupSame: boolean,\n salesLine: SalesLine,\n pickupTimeslotPlaceHolder: string,\n moduleName: string,\n locale: string,\n pickupDateTimeslotText: string\n): false | JSX.Element => {\n const canShowTimeslot: boolean =\n shouldShowTimeslot &&\n isDeliveryPickupSame &&\n salesLine.PickupTimeslotStartDateTime !== undefined &&\n salesLine.PickupTimeslotEndDateTime !== undefined;\n\n const pickupDateTimeslot = canShowTimeslot\n ? getDateTimeslot(pickupTimeslotPlaceHolder, salesLine.PickupTimeslotStartDateTime, salesLine.PickupTimeslotEndDateTime, locale)\n : '';\n\n return (\n canShowTimeslot && (\n
\n
{pickupDateTimeslotText}
\n
{pickupDateTimeslot}
\n
\n )\n );\n};\n\n/**\n * Get sales status.\n * @param orderStatusCanceled -- Order status canceled.\n * @param orderStatusReadyForPickup -- Order status ready for pick up.\n * @param orderStatusPickedUp -- Order status pick up.\n * @param orderStatusProcessing -- Order status processing.\n * @param orderStatusShipped -- Order status shipped.\n * @param orderStatusEmailed -- Order status emailed.\n * @returns The sales status in string.\n */\nexport const getSalesStatusStringMap = (\n orderStatusCanceled: string | undefined,\n orderStatusReadyForPickup: string | undefined,\n orderStatusPickedUp: string | undefined,\n orderStatusProcessing: string | undefined,\n orderStatusShipped: string | undefined,\n orderStatusEmailed: string | undefined\n): ISalesStatusStringMap => {\n return {\n canceled: orderStatusCanceled,\n readyForPickup: orderStatusReadyForPickup,\n pickedUp: orderStatusPickedUp,\n processing: orderStatusProcessing,\n shipped: orderStatusShipped,\n unknown: undefined,\n emailed: orderStatusEmailed\n };\n};\n\n/**\n * Get delivery type.\n * @param deliveryTypeString -- Delivery type string.\n * @param moduleName -- Module name.\n * @param deliveryTypeClass -- Delivery type class.\n * @param storePickUp -- Store pick up.\n * @param isMultiplePickUpOptionEnabled -- Is multiple pick up enabled.\n * @returns The delivery type react node.\n */\nexport const getDeliveryTypeComp = (\n deliveryTypeString: string | undefined,\n moduleName: string,\n deliveryTypeClass: string | undefined,\n storePickUp: string | null | undefined,\n isMultiplePickUpOptionEnabled: boolean | undefined\n): React.ReactNode => {\n const deliveryTypePickup = deliveryTypeString && (\n \n );\n const deliveryTypeNoPickup = deliveryTypeString && (\n \n );\n\n return isMultiplePickUpOptionEnabled ? deliveryTypePickup : deliveryTypeNoPickup;\n};\n\n/**\n * Renders sales line picture.\n * @param moduleName - Module name.\n * @param requestContext - Request context.\n * @param productName - Product name.\n * @param product - Product data.\n * @param fallbackImageUrl - Fallback image.\n * @param gridSettings - Grid settings.\n * @param imageSettings - Image settings.\n * @param salesLineState - Product state.\n * @returns React node.\n */\nconst getSalesLinePicture = (\n moduleName: string,\n requestContext: IRequestContext,\n productName: string | undefined,\n product: SimpleProduct | undefined,\n fallbackImageUrl: string | undefined,\n gridSettings: IGridSettings,\n imageSettings: IImageSettings | undefined,\n salesLineState?: SalesLineState\n) => {\n return (\n \n {() =>\n !salesLineState?.isHidden && (\n
\n \n
\n )\n }\n
\n );\n};\n\n/**\n * Renders sales line.\n * @param props - Sales line props.\n * @returns React node.\n */\nconst SalesLineComponent: React.FC = (props: IGetSalesLineInput) => {\n const productName = props.product?.Name ?? props.salesLine.Description;\n const requestContext = props.moduleComponentProps.context.actionContext.requestContext;\n\n if (props.imageOnly) {\n const fallbackImageUrl = getFallbackImageUrl(\n props.product?.ItemId,\n requestContext.apiSettings,\n props.moduleComponentProps.context.request.app?.config?.OmniChannelMedia\n );\n return getSalesLinePicture(\n props.moduleName,\n requestContext,\n productName,\n props.product,\n fallbackImageUrl,\n requestContext.gridSettings!,\n props.moduleComponentProps.config.imageSettings,\n props.salesLineState\n );\n }\n\n const orderDetailsProducts = props.orderDetailsProduct ?? new OrderDetailsProduct(props.salesLine, props.product);\n\n const isSelectionModeEnabled = props.isSelectionModeEnabled && orderDetailsProducts.isProductAvailable;\n\n const orderDetailCheckbox =\n isSelectionModeEnabled &&\n getOrderDetailsSalesLineCheckbox(orderDetailsProducts, props.resources.orderDetailsSelectRadioAriaLabelText, props.moduleName);\n\n let productUrl: string | undefined;\n if (!ObjectExtensions.isNullOrUndefined(productName) && !ObjectExtensions.isNullOrUndefined(props.salesLine.ProductId)) {\n productUrl = getProductPageUrlSync(productName, props.salesLine.ProductId, props.moduleComponentProps.context.actionContext);\n\n if (MsDyn365.isBrowser && isChannelTypeB2B(requestContext)) {\n const fullUrl = new URL(productUrl, window.location.href);\n fullUrl.searchParams.set('catalogid', `${props.salesLine.CatalogId ?? 0}`);\n productUrl = fullUrl.href;\n }\n }\n\n const className = `${props.moduleName}__sales-line-checkbox-control`;\n\n return (\n \n {orderDetailCheckbox}\n \n \n );\n};\n\nexport const getSalesLine = (props: IGetSalesLineInput): ISalesLine => {\n const {\n moduleName,\n moduleComponentProps: {\n typeName,\n context,\n config: { imageSettings }\n },\n product,\n shipment,\n salesLine,\n resources: {\n shipToLabel,\n storeLabel,\n phoneLabel,\n phoneAriaLabel,\n buyItAgainLabel,\n buyItAgainAriaLabel,\n orderStatusReadyForPickup,\n orderStatusProcessing,\n orderStatusShipped,\n orderStatusPickedUp,\n orderStatusCanceled,\n orderStatusEmailed,\n pickedUpSalesLines,\n deliveredSalesLines,\n carryOutSalesLines,\n emailSalesLines,\n trackingLabel,\n trackingAriaLabel,\n trackingComingSoonLabel,\n pickupDateTimeslotText,\n pickupTimeslotPlaceHolder,\n orderDetailsUnavailableProductText,\n orderDetailsBuySelectedAddingToCartErrorNotificationTitle,\n orderDetailsBuySelectedAddingToCartErrorNotificationCloseAriaLabel,\n orderDetailsGoToCartText,\n orderDetailsDialogCloseText,\n orderDetailsSingleItemText,\n orderDetailsMultiLineItemFormatText,\n orderDetailsMultiLinesFormatText,\n orderDetailsHeaderMessageText,\n orderDetailsMultiItemsValidationErrorMessage,\n orderDetailsOneErrorText,\n orderDetailsMultiErrorText,\n addedQuantityText,\n originalPriceText,\n currentPriceText,\n freePriceText,\n orderDetailsRequestDeliveryDateText\n },\n channelDeliveryOptionConfig,\n productDeliveryOptions,\n isSelectionModeEnabled,\n orderDetailsProduct,\n isReorderingEnabled\n } = props;\n\n const salesStatusStringMap = getSalesStatusStringMap(\n orderStatusCanceled,\n orderStatusReadyForPickup,\n orderStatusPickedUp,\n orderStatusProcessing,\n orderStatusShipped,\n orderStatusEmailed\n );\n\n const deliveryTypeStringMap: IDeliveryTypeStringMap = {\n pickUp: pickedUpSalesLines,\n ship: deliveredSalesLines,\n carryOut: carryOutSalesLines,\n email: emailSalesLines\n };\n\n const pickupDeliveryModeCode = context.request.channel?.PickupDeliveryModeCode;\n const emailDeliveryModeCode = context.request.channel?.EmailDeliveryModeCode;\n const productName = product?.Name ?? salesLine.Description;\n let productUrl = '';\n if (!ObjectExtensions.isNullOrUndefined(productName) && !ObjectExtensions.isNullOrUndefined(salesLine.ProductId)) {\n productUrl = getProductPageUrlSync(productName, salesLine.ProductId, context.actionContext);\n\n if (MsDyn365.isBrowser) {\n const fullUrl = new URL(productUrl, window.location.href);\n fullUrl.searchParams.set('catalogid', `${salesLine.CatalogId ?? 0}`);\n productUrl = fullUrl.href;\n }\n }\n\n const pickupMode = getPickupModeDesc(product, salesLine.DeliveryMode, productDeliveryOptions, props.retailMultiplePickUpOptionEnabled);\n const deliveryType = getDeliveryType(\n pickupMode,\n salesLine,\n salesLine.DeliveryMode,\n pickupDeliveryModeCode,\n props.retailMultiplePickUpOptionEnabled,\n channelDeliveryOptionConfig,\n emailDeliveryModeCode\n );\n const salesStatus = getSalesStatusCode(deliveryType, salesLine.SalesStatusValue, pickupMode);\n const salesStatusString = salesStatusStringMap[salesStatus];\n\n const deliveryTypeString = getDeliveryTypeString(deliveryType, deliveryTypeStringMap, props.retailMultiplePickUpOptionEnabled);\n const deliveryTypeClass = getDeliveryTypeClassName(deliveryType, deliveryTypeStringMap);\n const storePickUp = getStoreName(props.retailMultiplePickUpOptionEnabled, salesLine, deliveryType);\n const deliveryTypeComp = getDeliveryTypeComp(\n deliveryTypeString,\n moduleName,\n deliveryTypeClass,\n storePickUp,\n props.retailMultiplePickUpOptionEnabled\n );\n const salesStatusComp = salesStatusString && (\n \n );\n\n const trackingInfo = getTrackingInfo(deliveryType, moduleName, trackingLabel, trackingAriaLabel, trackingComingSoonLabel, shipment);\n const orderDetailProducts = orderDetailsProduct ?? new OrderDetailsProduct(salesLine, product, productUrl);\n const orderDetailsBuyItAgainAriaLabel =\n productName && buyItAgainAriaLabel ? (buyItAgainAriaLabel || '').replace('{productName}', productName) : '';\n const pickupDateTimeslotInfo = getPickupDateTimeslotInfo(\n props.showTimeslot,\n deliveryType === pickupMode,\n salesLine,\n pickupTimeslotPlaceHolder,\n moduleName,\n context.request.locale,\n pickupDateTimeslotText\n );\n let buyItAgainLinkClassName = format('{0}__sales-line-btn-buy-it-again-link', moduleName);\n if (isSelectionModeEnabled) {\n buyItAgainLinkClassName = format('{0} {1}-padding', buyItAgainLinkClassName, buyItAgainLinkClassName);\n }\n\n if (imageSettings) {\n imageSettings.cropFocalRegion = true;\n }\n\n const salesLineClassName = `${moduleName}__sales-line`;\n const salesLineFullClassName = classnames(\n salesLineClassName,\n isSelectionModeEnabled ? `${salesLineClassName}__selection-enabled` : `${salesLineClassName}__selection-disabled`,\n props.isSelectionModeEnabled\n ? `${salesLineClassName}__selection-global-enabled`\n : `${salesLineClassName}__selection-global-disabled`,\n orderDetailProducts.isProductAvailable ? `${salesLineClassName}__available-product` : `${salesLineClassName}__unavailable-product`\n );\n\n return {\n data: {\n salesLine,\n productUrl,\n deliveryType,\n salesStatus,\n product,\n shipment,\n isChecked: orderDetailProducts.isSelected\n },\n salesLineProps: { className: salesLineFullClassName },\n salesLine: SalesLineComponent(props),\n address: salesLine.ShippingAddress && (\n \n ),\n requestDeliveryDate:\n salesLine.ShippingAddress && getRequestDeliveryDate(salesLine, moduleName, orderDetailsRequestDeliveryDateText),\n deliveryType: deliveryTypeComp,\n salesStatus: salesStatusComp,\n trackingInfo,\n buyAgainButton: (\n \n ),\n pickupDateTimeslot: pickupDateTimeslotInfo,\n errors: !orderDetailProducts.isProductAvailable && (\n
{props.resources.orderDetailsUnavailableProductText}
\n )\n };\n};\n\nexport const getDeliveryType = (\n pickupMode: string,\n salesLine: SalesLine,\n salesLineDeliveryMode?: string,\n pickupDeliveryModeCode?: string,\n retailMultiplePickupOption?: boolean,\n channelDeliveryOptionConfig?: ChannelDeliveryOptionConfiguration,\n emailDeliveryModeCode?: string\n): string => {\n let isPickupDeliveryMode: boolean;\n\n if (retailMultiplePickupOption) {\n isPickupDeliveryMode =\n salesLineDeliveryMode === channelDeliveryOptionConfig?.PickupDeliveryModeCodes?.find(dM => dM === salesLineDeliveryMode);\n } else {\n isPickupDeliveryMode =\n !!pickupDeliveryModeCode && pickupDeliveryModeCode !== '' && pickupDeliveryModeCode === salesLineDeliveryMode;\n }\n\n return isPickupDeliveryMode\n ? pickupMode\n : emailDeliveryModeCode && emailDeliveryModeCode !== '' && emailDeliveryModeCode === salesLine.DeliveryMode\n ? deliveryTypeEnum.email\n : salesLine.DeliveryMode\n ? deliveryTypeEnum.ship\n : deliveryTypeEnum.carryOut;\n};\n\nexport const getDeliveryTypeString = (\n deliveryType: string,\n deliveryTypeStringMap: IDeliveryTypeStringMap,\n retailMultiplePickupOption?: boolean\n): string | undefined => {\n if (retailMultiplePickupOption) {\n switch (deliveryType) {\n case deliveryTypeEnum.ship:\n case deliveryTypeEnum.carryOut:\n case deliveryTypeEnum.email:\n return deliveryTypeStringMap[deliveryType];\n default:\n return deliveryType;\n }\n } else {\n return deliveryTypeStringMap[deliveryType];\n }\n};\n\nexport const getDeliveryTypeClassName = (\n deliveryType: string,\n deliveryTypeStringMap: IDeliveryTypeStringMap,\n retailMultiplePickupOption?: boolean\n): string | undefined => {\n switch (deliveryType) {\n case deliveryTypeEnum.ship:\n case deliveryTypeEnum.carryOut:\n case deliveryTypeEnum.email:\n return deliveryType;\n default:\n return deliveryTypeEnum.pickUp;\n }\n};\n\nconst defaultDeliveryOption: string = 'pickup';\n\n/**\n * Retrieves the delivery description by product id.\n * @param productRecordId - Product record id.\n * @param salesLineDeliveryMode - Delivery mode from the sales line.\n * @param productDeliveryOptions - Possible delivery options.\n * @returns Delivery option description.\n */\nexport const getDeliveryDescriptionByProductId = (\n productRecordId?: number,\n salesLineDeliveryMode?: string,\n productDeliveryOptions?: ProductDeliveryOptions[]\n): string => {\n if (ObjectExtensions.isNullOrUndefined(productRecordId) || !ArrayExtensions.hasElements(productDeliveryOptions)) {\n return defaultDeliveryOption;\n }\n\n const productDeliveryOption = productDeliveryOptions.find(currentDeliveryOption => {\n return currentDeliveryOption.ProductId === productRecordId;\n });\n\n const deliveryDescription = productDeliveryOption?.DeliveryOptions?.find(option => option.Code === salesLineDeliveryMode)?.Description;\n\n return deliveryDescription ?? defaultDeliveryOption;\n};\n\nexport const getPickupModeDesc = (\n product?: SimpleProduct,\n salesLineDeliveryMode?: string,\n productDeliveryOptions?: ProductDeliveryOptions[],\n retailMultiplePickupOption?: boolean\n): string => {\n return getDeliveryDescriptionByProductId(product?.RecordId, salesLineDeliveryMode, productDeliveryOptions);\n};\n\n/**\n * Get the store name.\n * @param isMultiplePickUpOptionEnabled -- Is mutiple pick up option enabled.\n * @param salesLine -- Sales line.\n * @param deliveryType -- Delivery type.\n * @returns The store name.\n */\nexport const getStoreName = (\n isMultiplePickUpOptionEnabled: boolean | undefined,\n salesLine: SalesLine,\n deliveryType?: string\n): string | undefined | null => {\n if (!isMultiplePickUpOptionEnabled) {\n return null;\n }\n\n switch (deliveryType) {\n case deliveryTypeEnum.ship:\n case deliveryTypeEnum.email:\n case deliveryTypeEnum.carryOut:\n return '';\n default:\n return `, ${salesLine.ShippingAddress?.Name}`;\n }\n};\n\n/**\n * Get pick update date time lot information.\n * @param shouldShowTimeslot -- Should show time slot.\n * @param salesLine -- The sales line.\n * @returns The pickup date time slot information.\n */\nexport const getRequestDeliveryDate = (\n salesLine: SalesLine,\n moduleName: string,\n requestDeliveryDateTitle?: string\n): false | JSX.Element => {\n const canShowRequestDeliveryDate: boolean = salesLine.RequestedDeliveryDate !== undefined && salesLine.RequestedDeliveryDate !== null;\n\n return (\n canShowRequestDeliveryDate && (\n
\n
{requestDeliveryDateTitle}
\n
{salesLine.RequestedDeliveryDate}
\n
\n )\n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { OrderDetailsProduct } from '@msdyn365-commerce/components';\nimport { IActionContext, IGridSettings, IImageSettings } from '@msdyn365-commerce/core';\nimport {\n ChannelDeliveryOptionConfiguration,\n OrderShipments,\n ProductCatalog,\n ProductDeliveryOptions,\n SalesLine,\n SalesOrder,\n Shipment,\n SimpleProduct\n} from '@msdyn365-commerce/retail-proxy';\nimport { ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\n\nimport { getSalesLine, ISalesLine, ISalesLineResources } from './get-sales-line';\nimport { SalesLineState } from './sales-line-state';\nimport { IModuleComponentProps, IPriceContext } from './utilities';\n\nexport interface IGetSalesLinesInput {\n moduleName: string;\n moduleComponentProps: IModuleComponentProps;\n isCurrentChannel: boolean;\n\n salesLines: SalesLine[];\n products: SimpleProduct[];\n shipments?: Shipment[];\n priceContext: IPriceContext;\n resources: ISalesLineResources;\n actionContext: IActionContext;\n gridSettings: IGridSettings;\n imageSettings?: IImageSettings;\n imageOnly?: boolean;\n salesLineStates?: SalesLineState[];\n showCompleteAddress?: boolean;\n showTimeslot: boolean;\n telemetryContent?: ITelemetryContent;\n retailMultiplePickUpOptionEnabled?: boolean;\n channelDeliveryOptionConfig?: ChannelDeliveryOptionConfiguration;\n productDeliveryOptions?: ProductDeliveryOptions[];\n isSelectionModeEnabled?: boolean;\n orderDetailsProducts?: OrderDetailsProduct[];\n isReorderingEnabled?: boolean;\n isChannelMultipleCatalogsFeatureEnabled?: boolean;\n catalogs?: ProductCatalog[];\n priceCurrency?: string;\n}\n\nexport const getSalesLines = ({\n moduleName,\n moduleComponentProps,\n salesLines,\n products,\n shipments,\n resources,\n isCurrentChannel,\n imageOnly,\n showCompleteAddress,\n showTimeslot,\n telemetryContent,\n retailMultiplePickUpOptionEnabled,\n channelDeliveryOptionConfig,\n productDeliveryOptions,\n isSelectionModeEnabled,\n orderDetailsProducts,\n isReorderingEnabled,\n salesLineStates: productStates,\n isChannelMultipleCatalogsFeatureEnabled,\n catalogs,\n priceCurrency\n}: IGetSalesLinesInput): ISalesLine[] => {\n return salesLines.map((salesLine, index) => {\n const product = products.find(simpleProduct => simpleProduct.RecordId === salesLine.ProductId);\n const shipment =\n product &&\n shipments?.find(currentShipment =>\n currentShipment.ShipmentLines?.find(\n shipmentLine =>\n shipmentLine.ItemId === product.ItemId && shipmentLine.InventoryTransactionId === salesLine.InventoryTransactionId\n )\n );\n const orderDetailsProduct = isSelectionModeEnabled\n ? product && orderDetailsProducts?.find(currentProduct => currentProduct.salesLine.ProductId === product.RecordId)\n : undefined;\n const productState = productStates?.find(value => value.stateId === `${salesLine.LineId ?? ''}-${index}`);\n\n return getSalesLine({\n moduleName,\n moduleComponentProps,\n product,\n shipment,\n salesLine,\n isCurrentChannel,\n resources,\n imageOnly,\n showCompleteAddress,\n showTimeslot,\n telemetryContent,\n retailMultiplePickUpOptionEnabled,\n channelDeliveryOptionConfig,\n productDeliveryOptions,\n isSelectionModeEnabled,\n orderDetailsProduct,\n isReorderingEnabled,\n salesLineState: productState,\n isChannelMultipleCatalogsFeatureEnabled,\n catalogs,\n priceCurrency\n });\n });\n};\n\ninterface IProps extends IModuleComponentProps {\n resources: ISalesLineResources;\n}\n\nexport const getSalesLinesInput = (\n props: IProps,\n moduleName: string,\n order: SalesOrder | OrderShipments,\n products: SimpleProduct[],\n priceContext: IPriceContext,\n showCompleteAddress?: boolean,\n showTimeslot?: boolean,\n telemetryContent?: ITelemetryContent,\n retailMultiplePickUpOptionEnabled?: boolean,\n channelDeliveryOptionConfig?: ChannelDeliveryOptionConfiguration,\n productDeliveryOptions?: ProductDeliveryOptions[] | undefined,\n isSelectionModeEnabled?: boolean | undefined,\n orderDetailsProducts?: OrderDetailsProduct[] | undefined,\n isReorderingEnabled?: boolean,\n isChannelMultipleCatalogsFeatureEnabled?: boolean,\n catalogs?: ProductCatalog[]\n): IGetSalesLinesInput | undefined => {\n if (!order || !order.SalesLines || order.SalesLines.length === 0) {\n return;\n }\n\n const {\n resources,\n config: { imageSettings },\n context: {\n actionContext,\n request: {\n gridSettings,\n apiSettings: { channelId }\n }\n }\n } = props;\n\n const isCurrentChannel = !order.ChannelId || order.ChannelId === channelId;\n\n return {\n moduleName,\n moduleComponentProps: props,\n isCurrentChannel,\n salesLines: order.SalesLines,\n priceCurrency: order.CurrencyCode,\n products,\n shipments: order.Shipments,\n priceContext,\n resources,\n actionContext,\n gridSettings: gridSettings!,\n imageSettings,\n showCompleteAddress,\n showTimeslot: showTimeslot ?? false,\n telemetryContent,\n retailMultiplePickUpOptionEnabled,\n channelDeliveryOptionConfig,\n productDeliveryOptions,\n isSelectionModeEnabled: isSelectionModeEnabled ?? false,\n orderDetailsProducts,\n isReorderingEnabled,\n isChannelMultipleCatalogsFeatureEnabled,\n catalogs\n };\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\ninterface ILabelProps {\n className: string;\n label: string;\n}\n\nexport const Label: React.FC = ({ className, label }) => {label};\n\nexport default Label;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IAny, ICoreContext, IGeneric, IImageSettings, IModule, ITelemetry } from '@msdyn365-commerce/core';\nimport { SalesLine, TenderType } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { format } from '@msdyn365-commerce-modules/utilities';\nimport groupBy from 'lodash/groupBy';\n\nimport { ISalesLine } from './get-sales-line';\n\nexport interface IModuleComponentProps extends IModule {\n config: {\n imageSettings?: IImageSettings;\n showShippingChargesForLineItems?: boolean;\n };\n}\n\nexport interface IPriceContext {\n id: string;\n typeName: string;\n context: ICoreContext>;\n telemetry: ITelemetry;\n freePriceText: string;\n}\n\nexport const getTenderIdOperationIdMap = (tenderTypes: TenderType[]): object => {\n return tenderTypes.reduce((map, tenderType) => {\n if (tenderType.TenderTypeId) {\n map[tenderType.TenderTypeId] = tenderType.OperationId;\n }\n return map;\n }, {});\n};\n\nexport const countItems = (salesLines: SalesLine[]) => {\n return salesLines.reduce((count, salesLine) => {\n return count + (salesLine.Quantity || 0);\n }, 0);\n};\n\nexport const getSalesLinesByDelivery = (salesLines?: SalesLine[], pickupDeliveryModeCode?: string): SalesLine[] => {\n if (!salesLines || salesLines.length === 0) {\n return [];\n }\n return salesLines.filter(salesLine =>\n // IsPickUp ? getPickUp : getOthers\n pickupDeliveryModeCode && pickupDeliveryModeCode !== ''\n ? salesLine.DeliveryMode === pickupDeliveryModeCode\n : salesLine.DeliveryMode !== pickupDeliveryModeCode\n );\n};\n\nexport const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=80&h=80&m=6', w: 0, h: 0 },\n lg: { q: 'w=147&h=147&m=6', w: 0, h: 0 }\n },\n lazyload: true,\n cropFocalRegion: true\n};\n\nexport type IDeliveryType = 'pickUp' | 'ship' | 'carryOut' | 'email';\n\nexport type ISalesStatusCode = 'canceled' | 'readyForPickup' | 'pickedUp' | 'processing' | 'shipped' | 'unknown' | 'emailed';\n\nexport const getSalesStatusCode = (deliveryType: string, statusValue?: number, pickupMode?: string): ISalesStatusCode => {\n if (statusValue === 7) {\n return 'canceled';\n }\n\n if (deliveryType === 'pickUp') {\n switch (statusValue) {\n case 3:\n return 'readyForPickup';\n case 4:\n return 'pickedUp';\n default:\n return 'processing';\n }\n } else if (deliveryType === 'ship') {\n switch (statusValue) {\n case 3:\n return 'processing';\n case 4:\n return 'shipped';\n default:\n return 'processing';\n }\n } else if (deliveryType === 'email') {\n switch (statusValue) {\n case 3:\n return 'processing';\n case 4:\n return 'emailed';\n default:\n return 'processing';\n }\n } else if (deliveryType === 'carryOut') {\n return 'processing';\n } else {\n if (pickupMode !== undefined) {\n switch (statusValue) {\n case 3:\n return 'readyForPickup';\n case 4:\n return 'pickedUp';\n default:\n return 'processing';\n }\n }\n\n return 'unknown';\n }\n};\n\nexport type ITrackingId = string | 'unknown';\nexport type IAddressId = string | 'unknown';\n\nexport interface IGroupData {\n deliveryType: IDeliveryType;\n salesStatus: ISalesStatusCode;\n addressId: IAddressId | 'unknown';\n trackingId: ITrackingId | 'unknown';\n count: number;\n salesLines: ISalesLine[];\n}\n\nexport const groupSalesLines = (salesLines: ISalesLine[]): IGroupData[] => {\n const getGroupByDeliveryType = (items: ISalesLine[]) => groupBy(items, item => item.data.deliveryType);\n const getGroupBySalesStatusCode = (items: ISalesLine[]) => groupBy(items, item => item.data.salesStatus);\n const getGroupByTrackingId = (items: ISalesLine[]) => groupBy(items, item => item.data.salesLine.TrackingId || 'unknown');\n const getGroupByAddressId = (items: ISalesLine[]) =>\n groupBy(items, item => (item.data.salesLine.ShippingAddress && item.data.salesLine.ShippingAddress.RecordId) || 'unknown');\n\n const flatGroup: IGroupData[] = [];\n\n // 1) Group by delivery type\n const group = getGroupByDeliveryType(salesLines);\n\n // 2) Group by sales status code\n Object.entries(group).forEach(([deliveryType, groupByDeliveryType]) => {\n // @ts-expect-error\n group[deliveryType] = getGroupBySalesStatusCode(groupByDeliveryType);\n\n Object.entries(group[deliveryType]).forEach(([salesStatus, groupBySalesStatusCode]) => {\n // @ts-expect-error 3) Group by address id\n groupBySalesStatusCode[salesStatus] = getGroupByAddressId(groupBySalesStatusCode);\n\n Object.entries(groupBySalesStatusCode[salesStatus]).forEach(([addressId, groupByAddressId]) => {\n // @ts-expect-error 4) Group by address id\n groupByAddressId[addressId] = getGroupByTrackingId(groupByAddressId);\n\n // @ts-expect-error\n Object.entries(groupByAddressId[addressId]).forEach(([trackingId, groupByTrackingId]) => {\n flatGroup.push({\n // @ts-expect-error\n deliveryType,\n\n // @ts-expect-error\n salesStatus,\n addressId,\n trackingId,\n\n // @ts-expect-error\n count: countItems(groupByTrackingId.map(item => item.data.salesLine)),\n\n // @ts-expect-error\n salesLines: groupByTrackingId\n });\n });\n });\n });\n });\n\n return flatGroup;\n};\n\nexport const getDateTimeslot = (placeHolder: string, startDate: Date | undefined, endDate: Date | undefined, locale: string): string => {\n if (!startDate || !endDate) {\n return '';\n }\n\n const dateOptions: Intl.DateTimeFormatOptions = {\n timeZone: 'UTC'\n };\n const dateformatter = new Intl.DateTimeFormat(locale, dateOptions);\n const date = dateformatter.format(new Date(startDate));\n\n const timeslotOptions: Intl.DateTimeFormatOptions = {\n hour: 'numeric',\n minute: 'numeric',\n hour12: true,\n timeZone: 'UTC'\n };\n const timeslotformatter = new Intl.DateTimeFormat(locale, timeslotOptions);\n const timeslot = format(placeHolder, timeslotformatter.format(new Date(startDate)), timeslotformatter.format(new Date(endDate)));\n return `${date} ${timeslot}`;\n};\n","'use strict';\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar React = require('react');\n\nvar PropTypes = require('prop-types'); // qr.js doesn't handle error level of zero (M) so we need to do it right,\n// thus the deep require.\n\n\nvar QRCodeImpl = require('qr.js/lib/QRCode');\n\nvar ErrorCorrectLevel = require('qr.js/lib/ErrorCorrectLevel'); // TODO: pull this off of the QRCode class type so it matches.\n\n\n// Convert from UTF-16, forcing the use of byte-mode encoding in our QR Code.\n// This allows us to encode Hanji, Kanji, emoji, etc. Ideally we'd do more\n// detection and not resort to byte-mode if possible, but we're trading off\n// a smaller library for a smaller amount of data we can potentially encode.\n// Based on http://jonisalonen.com/2012/from-utf-16-to-utf-8-in-javascript/\nfunction convertStr(str) {\n var out = '';\n\n for (var i = 0; i < str.length; i++) {\n var charcode = str.charCodeAt(i);\n\n if (charcode < 0x0080) {\n out += String.fromCharCode(charcode);\n } else if (charcode < 0x0800) {\n out += String.fromCharCode(0xc0 | charcode >> 6);\n out += String.fromCharCode(0x80 | charcode & 0x3f);\n } else if (charcode < 0xd800 || charcode >= 0xe000) {\n out += String.fromCharCode(0xe0 | charcode >> 12);\n out += String.fromCharCode(0x80 | charcode >> 6 & 0x3f);\n out += String.fromCharCode(0x80 | charcode & 0x3f);\n } else {\n // This is a surrogate pair, so we'll reconsitute the pieces and work\n // from that\n i++;\n charcode = 0x10000 + ((charcode & 0x3ff) << 10 | str.charCodeAt(i) & 0x3ff);\n out += String.fromCharCode(0xf0 | charcode >> 18);\n out += String.fromCharCode(0x80 | charcode >> 12 & 0x3f);\n out += String.fromCharCode(0x80 | charcode >> 6 & 0x3f);\n out += String.fromCharCode(0x80 | charcode & 0x3f);\n }\n }\n\n return out;\n}\n\nvar DEFAULT_PROPS = {\n size: 128,\n level: 'L',\n bgColor: '#FFFFFF',\n fgColor: '#000000',\n includeMargin: false\n};\nvar PROP_TYPES = process.env.NODE_ENV !== 'production' ? {\n value: PropTypes.string.isRequired,\n size: PropTypes.number,\n level: PropTypes.oneOf(['L', 'M', 'Q', 'H']),\n bgColor: PropTypes.string,\n fgColor: PropTypes.string,\n includeMargin: PropTypes.bool,\n imageSettings: PropTypes.shape({\n src: PropTypes.string.isRequired,\n height: PropTypes.number.isRequired,\n width: PropTypes.number.isRequired,\n excavate: PropTypes.bool,\n x: PropTypes.number,\n y: PropTypes.number\n })\n} : {};\nvar MARGIN_SIZE = 4; // This is *very* rough estimate of max amount of QRCode allowed to be covered.\n// It is \"wrong\" in a lot of ways (area is a terrible way to estimate, it\n// really should be number of modules covered), but if for some reason we don't\n// get an explicit height or width, I'd rather default to something than throw.\n\nvar DEFAULT_IMG_SCALE = 0.1;\n\nfunction generatePath(modules) {\n var margin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var ops = [];\n modules.forEach(function (row, y) {\n var start = null;\n row.forEach(function (cell, x) {\n if (!cell && start !== null) {\n // M0 0h7v1H0z injects the space with the move and drops the comma,\n // saving a char per operation\n ops.push(\"M\".concat(start + margin, \" \").concat(y + margin, \"h\").concat(x - start, \"v1H\").concat(start + margin, \"z\"));\n start = null;\n return;\n } // end of row, clean up or skip\n\n\n if (x === row.length - 1) {\n if (!cell) {\n // We would have closed the op above already so this can only mean\n // 2+ light modules in a row.\n return;\n }\n\n if (start === null) {\n // Just a single dark module.\n ops.push(\"M\".concat(x + margin, \",\").concat(y + margin, \" h1v1H\").concat(x + margin, \"z\"));\n } else {\n // Otherwise finish the current line.\n ops.push(\"M\".concat(start + margin, \",\").concat(y + margin, \" h\").concat(x + 1 - start, \"v1H\").concat(start + margin, \"z\"));\n }\n\n return;\n }\n\n if (cell && start === null) {\n start = x;\n }\n });\n });\n return ops.join('');\n} // We could just do this in generatePath, except that we want to support\n// non-Path2D canvas, so we need to keep it an explicit step.\n\n\nfunction excavateModules(modules, excavation) {\n return modules.slice().map(function (row, y) {\n if (y < excavation.y || y >= excavation.y + excavation.h) {\n return row;\n }\n\n return row.map(function (cell, x) {\n if (x < excavation.x || x >= excavation.x + excavation.w) {\n return cell;\n }\n\n return false;\n });\n });\n}\n\nfunction getImageSettings(props, cells) {\n var imageSettings = props.imageSettings,\n size = props.size,\n includeMargin = props.includeMargin;\n\n if (imageSettings == null) {\n return null;\n }\n\n var margin = includeMargin ? MARGIN_SIZE : 0;\n var numCells = cells.length + margin * 2;\n var defaultSize = Math.floor(size * DEFAULT_IMG_SCALE);\n var scale = numCells / size;\n var w = (imageSettings.width || defaultSize) * scale;\n var h = (imageSettings.height || defaultSize) * scale;\n var x = imageSettings.x == null ? cells.length / 2 - w / 2 : imageSettings.x * scale;\n var y = imageSettings.y == null ? cells.length / 2 - h / 2 : imageSettings.y * scale;\n var excavation = null;\n\n if (imageSettings.excavate) {\n var floorX = Math.floor(x);\n var floorY = Math.floor(y);\n var ceilW = Math.ceil(w + x - floorX);\n var ceilH = Math.ceil(h + y - floorY);\n excavation = {\n x: floorX,\n y: floorY,\n w: ceilW,\n h: ceilH\n };\n }\n\n return {\n x: x,\n y: y,\n h: h,\n w: w,\n excavation: excavation\n };\n} // For canvas we're going to switch our drawing mode based on whether or not\n// the environment supports Path2D. We only need the constructor to be\n// supported, but Edge doesn't actually support the path (string) type\n// argument. Luckily it also doesn't support the addPath() method. We can\n// treat that as the same thing.\n\n\nvar SUPPORTS_PATH2D = function () {\n try {\n new Path2D().addPath(new Path2D());\n } catch (e) {\n return false;\n }\n\n return true;\n}();\n\nvar QRCodeCanvas =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(QRCodeCanvas, _React$PureComponent);\n\n function QRCodeCanvas() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, QRCodeCanvas);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(QRCodeCanvas)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"_canvas\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_image\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n imgLoaded: false\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleImageLoad\", function () {\n _this.setState({\n imgLoaded: true\n });\n });\n\n return _this;\n }\n\n _createClass(QRCodeCanvas, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this._image && this._image.complete) {\n this.handleImageLoad();\n }\n\n this.update();\n }\n }, {\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(nextProps) {\n var _this$props$imageSett, _nextProps$imageSetti;\n\n var currentSrc = (_this$props$imageSett = this.props.imageSettings) === null || _this$props$imageSett === void 0 ? void 0 : _this$props$imageSett.src;\n var nextSrc = (_nextProps$imageSetti = nextProps.imageSettings) === null || _nextProps$imageSetti === void 0 ? void 0 : _nextProps$imageSetti.src;\n\n if (currentSrc !== nextSrc) {\n this.setState({\n imgLoaded: false\n });\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.update();\n }\n }, {\n key: \"update\",\n value: function update() {\n var _this$props = this.props,\n value = _this$props.value,\n size = _this$props.size,\n level = _this$props.level,\n bgColor = _this$props.bgColor,\n fgColor = _this$props.fgColor,\n includeMargin = _this$props.includeMargin,\n imageSettings = _this$props.imageSettings; // We'll use type===-1 to force QRCode to automatically pick the best type\n\n var qrcode = new QRCodeImpl(-1, ErrorCorrectLevel[level]);\n qrcode.addData(convertStr(value));\n qrcode.make();\n\n if (this._canvas != null) {\n var canvas = this._canvas;\n var ctx = canvas.getContext('2d');\n\n if (!ctx) {\n return;\n }\n\n var cells = qrcode.modules;\n\n if (cells === null) {\n return;\n }\n\n var margin = includeMargin ? MARGIN_SIZE : 0;\n var numCells = cells.length + margin * 2;\n var calculatedImageSettings = getImageSettings(this.props, cells);\n\n if (imageSettings != null && calculatedImageSettings != null) {\n if (calculatedImageSettings.excavation != null) {\n cells = excavateModules(cells, calculatedImageSettings.excavation);\n }\n } // We're going to scale this so that the number of drawable units\n // matches the number of cells. This avoids rounding issues, but does\n // result in some potentially unwanted single pixel issues between\n // blocks, only in environments that don't support Path2D.\n\n\n var pixelRatio = window.devicePixelRatio || 1;\n canvas.height = canvas.width = size * pixelRatio;\n var scale = size / numCells * pixelRatio;\n ctx.scale(scale, scale); // Draw solid background, only paint dark modules.\n\n ctx.fillStyle = bgColor;\n ctx.fillRect(0, 0, numCells, numCells);\n ctx.fillStyle = fgColor;\n\n if (SUPPORTS_PATH2D) {\n // $FlowFixMe: Path2D c'tor doesn't support args yet.\n ctx.fill(new Path2D(generatePath(cells, margin)));\n } else {\n cells.forEach(function (row, rdx) {\n row.forEach(function (cell, cdx) {\n if (cell) {\n ctx.fillRect(cdx + margin, rdx + margin, 1, 1);\n }\n });\n });\n }\n\n if (this.state.imgLoaded && this._image && calculatedImageSettings != null) {\n ctx.drawImage(this._image, calculatedImageSettings.x + margin, calculatedImageSettings.y + margin, calculatedImageSettings.w, calculatedImageSettings.h);\n }\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props2 = this.props,\n value = _this$props2.value,\n size = _this$props2.size,\n level = _this$props2.level,\n bgColor = _this$props2.bgColor,\n fgColor = _this$props2.fgColor,\n style = _this$props2.style,\n includeMargin = _this$props2.includeMargin,\n imageSettings = _this$props2.imageSettings,\n otherProps = _objectWithoutProperties(_this$props2, [\"value\", \"size\", \"level\", \"bgColor\", \"fgColor\", \"style\", \"includeMargin\", \"imageSettings\"]);\n\n var canvasStyle = _objectSpread({\n height: size,\n width: size\n }, style);\n\n var img = null;\n var imgSrc = imageSettings && imageSettings.src;\n\n if (imageSettings != null && imgSrc != null) {\n img = React.createElement(\"img\", {\n src: imgSrc,\n style: {\n display: 'none'\n },\n onLoad: this.handleImageLoad,\n ref: function ref(_ref) {\n return _this2._image = _ref;\n }\n });\n }\n\n return React.createElement(React.Fragment, null, React.createElement(\"canvas\", _extends({\n style: canvasStyle,\n height: size,\n width: size,\n ref: function ref(_ref2) {\n return _this2._canvas = _ref2;\n }\n }, otherProps)), img);\n }\n }]);\n\n return QRCodeCanvas;\n}(React.PureComponent);\n\n_defineProperty(QRCodeCanvas, \"defaultProps\", DEFAULT_PROPS);\n\nif (process.env.NODE_ENV !== 'production') {\n QRCodeCanvas.propTypes = PROP_TYPES;\n}\n\nvar QRCodeSVG =\n/*#__PURE__*/\nfunction (_React$PureComponent2) {\n _inherits(QRCodeSVG, _React$PureComponent2);\n\n function QRCodeSVG() {\n _classCallCheck(this, QRCodeSVG);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(QRCodeSVG).apply(this, arguments));\n }\n\n _createClass(QRCodeSVG, [{\n key: \"render\",\n value: function render() {\n var _this$props3 = this.props,\n value = _this$props3.value,\n size = _this$props3.size,\n level = _this$props3.level,\n bgColor = _this$props3.bgColor,\n fgColor = _this$props3.fgColor,\n includeMargin = _this$props3.includeMargin,\n imageSettings = _this$props3.imageSettings,\n otherProps = _objectWithoutProperties(_this$props3, [\"value\", \"size\", \"level\", \"bgColor\", \"fgColor\", \"includeMargin\", \"imageSettings\"]); // We'll use type===-1 to force QRCode to automatically pick the best type\n\n\n var qrcode = new QRCodeImpl(-1, ErrorCorrectLevel[level]);\n qrcode.addData(convertStr(value));\n qrcode.make();\n var cells = qrcode.modules;\n\n if (cells === null) {\n return null;\n }\n\n var margin = includeMargin ? MARGIN_SIZE : 0;\n var numCells = cells.length + margin * 2;\n var calculatedImageSettings = getImageSettings(this.props, cells);\n var image = null;\n\n if (imageSettings != null && calculatedImageSettings != null) {\n if (calculatedImageSettings.excavation != null) {\n cells = excavateModules(cells, calculatedImageSettings.excavation);\n }\n\n image = React.createElement(\"image\", {\n xlinkHref: imageSettings.src,\n height: calculatedImageSettings.h,\n width: calculatedImageSettings.w,\n x: calculatedImageSettings.x + margin,\n y: calculatedImageSettings.y + margin,\n preserveAspectRatio: \"none\"\n });\n } // Drawing strategy: instead of a rect per module, we're going to create a\n // single path for the dark modules and layer that on top of a light rect,\n // for a total of 2 DOM nodes. We pay a bit more in string concat but that's\n // way faster than DOM ops.\n // For level 1, 441 nodes -> 2\n // For level 40, 31329 -> 2\n\n\n var fgPath = generatePath(cells, margin);\n return React.createElement(\"svg\", _extends({\n shapeRendering: \"crispEdges\",\n height: size,\n width: size,\n viewBox: \"0 0 \".concat(numCells, \" \").concat(numCells)\n }, otherProps), React.createElement(\"path\", {\n fill: bgColor,\n d: \"M0,0 h\".concat(numCells, \"v\").concat(numCells, \"H0z\")\n }), React.createElement(\"path\", {\n fill: fgColor,\n d: fgPath\n }), image);\n }\n }]);\n\n return QRCodeSVG;\n}(React.PureComponent);\n\n_defineProperty(QRCodeSVG, \"defaultProps\", DEFAULT_PROPS);\n\nif (process.env.NODE_ENV !== 'production') {\n QRCodeSVG.propTypes = PROP_TYPES;\n}\n\nvar QRCode = function QRCode(props) {\n var renderAs = props.renderAs,\n otherProps = _objectWithoutProperties(props, [\"renderAs\"]);\n\n var Component = renderAs === 'svg' ? QRCodeSVG : QRCodeCanvas;\n return React.createElement(Component, otherProps);\n};\n\nQRCode.defaultProps = _objectSpread({\n renderAs: 'canvas'\n}, DEFAULT_PROPS);\nmodule.exports = QRCode;"],"names":["Address","_ref","moduleName","address","deliveryType","showCompleteAddress","resource","shipToLabel","storeLabel","phoneLabel","React","className","Name","Street","City","State","County","ZipCode","ThreeLetterISORegionName","Phone","FullAddress","BuySelectedComponent","props","_props$resources$orde10","_props$resources$orde11","_props$context$action","products","data","filter","product","ObjectExtensions","isNullOrUndefined","simpleProduct","buttonLabel","isIcon","resources","orderDetailsBuySelectedButtonText","orderDetailsBuyItAgainLabel","buttonAriaLabel","orderDetailsBuySelectedButtonAriaLabel","orderDetailsBuyItAgainAriaLabel","length","isProductAvailable","orderDetailsUnavailableProductText","title","disabled","ArrayExtensions","hasElements","firstProduct","isReorderingEnabled","style","opacity","Button","href","productUrl","dialogStrings","_props$resources$orde","_props$resources$orde2","_props$resources$orde3","_props$resources$orde4","_props$resources$orde5","_props$resources$orde6","_props$resources$orde7","_props$resources$free","_props$resources$orig","_props$resources$curr","_props$resources$adde","_props$resources$orde8","_props$resources$orde9","goToCartText","orderDetailsGoToCartText","continueShoppingText","orderDetailsDialogCloseText","closeNotificationLabel","orderDetailsBuySelectedAddingToCartErrorNotificationCloseAriaLabel","headerItemOneText","orderDetailsSingleItemText","headerItemFormatText","orderDetailsMultiLineItemFormatText","headerLinesFormatText","orderDetailsMultiLinesFormatText","headerMessageText","orderDetailsHeaderMessageText","freePriceText","originalPriceText","currentPriceText","addedQuantityText","buyAgainNotificationTitle","orderDetailsBuySelectedAddingToCartErrorNotificationTitle","buyAgainNotificationCloseAriaLabel","validationErrorMessage","orderDetailsMultiItemsValidationErrorMessage","oneErrorText","orderDetailsOneErrorText","multiErrorsText","orderDetailsMultiErrorText","getDialogStrings","emailDeliveryModeCode","context","actionContext","requestContext","channel","EmailDeliveryModeCode","AddToCartComponent","addToCartText","outOfStockText","addToCartArialLabel","quantity","salesLine","Quantity","id","typeName","navigationUrl","getUrlSync","shouldSkipSiteSettings","orderDetailsProducts","isAddEmailDeliveryItemToCart","DeliveryMode","getGroups","salesLines","showAddress","showTimeslot","isConfirmationView","retailMultiplePickUpOptionEnabled","isCashAndCarryTransaction","isSelectionModeEnabled","customerName","isOboRequest","orderItemLabel","orderItemsLabel","pickupItemsHeader","pickingItemsLabel","shippingAddressTitle","shippingItemToYouLabel","shippingItemToOBOCustomerLabel","emailItemsHeader","emailingItemsLabel","groups","groupSalesLines","map","group","salesStatus","count","_salesLines","itemLabel","pickingItemsLabelText","format","shippingItemsToText","emailingItemsLabelText","groupProps","salesLinesProps","getSalesLinesProps","classNames","trackingInfo","isProcessing","pickDateTimeslot","pickupDateTimeslot","shippedStatusCheck","delivery","deliveryProps","pickupProps","heading","processing","undefined","shippingItemsToYou","requestDeliveryDate","groupsProps","getChannelReference","channelReferenceId","confirmationIdLabel","shouldShowQrCode","qrCodeSrText","confirmationIdNode","QRCode","value","size","getOrderNote","note","noteLabel","StringExtensions","isNullOrWhitespace","Description","getOrderInformation","channelName","channelAddress","channelTypeValue","showChannelInfo","receiptEmail","createdDate","amount","priceContext","isOnlineStore","customer","originator","salesId","receiptId","receiptEmailMessage","orderIdLabel","orderPlacedByFullText","orderPlacedByYouText","orderOnBehalfOfText","receiptIdLabel","posChannelNameText","onlineStoreChannelNameText","orderPlacedOnLabel","callCenterChannelNameText","isSalesInvoice","priceCurrency","channelNameNode","getChannelName","posChannelName","onlineChannelName","orderInformationProps","placedBy","getPlacedBy","PriceComponent","Object","assign","price","CustomerContextualPrice","currencyCode","getOrderChannelName","order","channelIdentities","_orderChannel$Name","orderChannel","find","RecordId","ChannelId","getOrderChannelTypeValue","ChannelType","Value","isOnlineStoreChannel","getOrderChannelAddress","orgUnitLocations","_orderOrgUnitLocation","orderOrgUnitLocation","location","getOrderInformationInput","_order$TotalAmount","request","apiSettings","channelId","showNotes","Notes","locale","get","SalesLines","countItems","countNote","CreatedDateTime","Date","toLocaleDateString","SalesId","CurrencyCode","isYou","isB2bAdmin","IsB2bAdmin","ReceiptId","ReceiptEmail","ChannelReferenceId","TotalAmount","placedByNode","staffPlacedOrder","StaffId","StaffName","currentCustomerOwnsOrder","CustomerId","CustomerName","AccountNumber","placedOnBehalfOfName","placedByName","wasPlacedByCurrentCustomer","wasPlacedOnBehalfOf","wasPlacedOnBehalfOfCurrentCustomer","deliveryTypeEnum","onSelectLine","orderDetailsProduct","isSelected","SalesLineComponent","_props$product$Name","_props$product","_props$orderDetailsPr","_props$resources$ship","_props$product3","_props$product4","_props$moduleComponen2","productName","moduleComponentProps","imageOnly","_props$product2","_props$moduleComponen","fallbackImageUrl","getFallbackImageUrl","ItemId","app","config","OmniChannelMedia","getSalesLinePicture","gridSettings","imageSettings","salesLineState","Observer","_product$PrimaryImage","isHidden","Image","altText","src","PrimaryImageUrl","fallBackSrc","defaultImageSettings","loadFailureBehavior","OrderDetailsProduct","orderDetailCheckbox","getOrderDetailsSalesLineCheckbox","orderDetailsSelectRadioAriaLabelText","checkboxRowAriaLabel","ProductId","classnames","type","checked","onChange","getProductPageUrlSync","MsDyn365","isBrowser","isChannelTypeB2B","_props$salesLine$Cata","fullUrl","URL","window","searchParams","set","CatalogId","CartLineItemComponent","sizeString","productDimensionTypeSize","colorString","productDimensionTypeColor","styleString","productDimensionTypeStyle","amountString","productDimensionTypeAmount","quantityDisplayString","salesLineQuantityText","configString","discountStringText","inputQuantityAriaLabel","shippingChargesText","shippingCharges","confirmedShipDateLabel","orderDetailsConfirmedShipDateText","requestDeliveryDateLabel","orderDetailsRequestDeliveryDateText","primaryImageUrl","isSalesLine","cartLine","catalogs","showShippingChargesForLineItems","channelDeliveryOptionConfig","getSalesLine","_context$request$chan","_context$request$chan2","_product$Name","shipment","phoneAriaLabel","buyItAgainLabel","buyItAgainAriaLabel","orderStatusReadyForPickup","orderStatusProcessing","orderStatusShipped","orderStatusPickedUp","orderStatusCanceled","orderStatusEmailed","pickedUpSalesLines","deliveredSalesLines","carryOutSalesLines","emailSalesLines","trackingLabel","trackingAriaLabel","trackingComingSoonLabel","pickupDateTimeslotText","pickupTimeslotPlaceHolder","productDeliveryOptions","salesStatusStringMap","getSalesStatusStringMap","canceled","readyForPickup","pickedUp","shipped","unknown","emailed","deliveryTypeStringMap","pickUp","ship","carryOut","email","pickupDeliveryModeCode","PickupDeliveryModeCode","_salesLine$CatalogId","pickupMode","getPickupModeDesc","getDeliveryType","getSalesStatusCode","SalesStatusValue","salesStatusString","deliveryTypeString","getDeliveryTypeString","deliveryTypeClass","getDeliveryTypeClassName","deliveryTypeComp","getDeliveryTypeComp","storePickUp","isMultiplePickUpOptionEnabled","deliveryTypePickup","LabelComponent","label","deliveryTypeNoPickup","getStoreName","salesStatusComp","getTrackingInfo","TrackingUrl","TrackingNumber","orderDetailProducts","replace","pickupDateTimeslotInfo","getPickupDateTimeslotInfo","shouldShowTimeslot","isDeliveryPickupSame","canShowTimeslot","PickupTimeslotStartDateTime","PickupTimeslotEndDateTime","getDateTimeslot","buyItAgainLinkClassName","cropFocalRegion","salesLineClassName","salesLineFullClassName","isChecked","salesLineProps","ShippingAddress","getRequestDeliveryDate","buyAgainButton","errors","salesLineDeliveryMode","retailMultiplePickupOption","isPickupDeliveryMode","_channelDeliveryOptio","PickupDeliveryModeCodes","dM","defaultDeliveryOption","getDeliveryDescriptionByProductId","productRecordId","_productDeliveryOptio","productDeliveryOption","currentDeliveryOption","deliveryDescription","DeliveryOptions","option","Code","_salesLine$ShippingAd","requestDeliveryDateTitle","RequestedDeliveryDate","getSalesLines","shipments","isCurrentChannel","telemetryContent","salesLineStates","productStates","isChannelMultipleCatalogsFeatureEnabled","index","currentShipment","_currentShipment$Ship","ShipmentLines","shipmentLine","InventoryTransactionId","currentProduct","productState","_salesLine$LineId","stateId","LineId","getSalesLinesInput","Shipments","Label","getTenderIdOperationIdMap","tenderTypes","reduce","tenderType","TenderTypeId","OperationId","viewports","xs","q","w","h","lg","lazyload","statusValue","flatGroup","items","groupBy","item","entries","forEach","groupByDeliveryType","getGroupBySalesStatusCode","_ref2","groupBySalesStatusCode","getGroupByAddressId","_ref3","addressId","groupByAddressId","TrackingId","getGroupByTrackingId","_ref4","trackingId","groupByTrackingId","push","placeHolder","startDate","endDate","date","Intl","DateTimeFormat","timeZone","timeslotformatter","hour","minute","hour12","_typeof","obj","Symbol","iterator","constructor","prototype","_extends","target","i","arguments","source","key","hasOwnProperty","call","apply","this","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","enumerable","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_objectWithoutProperties","excluded","sourceKeys","indexOf","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","_classCallCheck","instance","Constructor","TypeError","_defineProperties","descriptor","configurable","writable","_createClass","protoProps","staticProps","_possibleConstructorReturn","self","_assertThisInitialized","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","__proto__","ReferenceError","_inherits","subClass","superClass","create","_setPrototypeOf","p","QRCodeImpl","ErrorCorrectLevel","convertStr","str","out","charcode","charCodeAt","String","fromCharCode","DEFAULT_PROPS","level","bgColor","fgColor","includeMargin","generatePath","modules","margin","ops","row","y","start","cell","x","concat","join","excavateModules","excavation","slice","getImageSettings","cells","numCells","defaultSize","Math","floor","scale","width","height","excavate","floorX","floorY","ceil","SUPPORTS_PATH2D","Path2D","addPath","e","QRCodeCanvas","_React$PureComponent","_getPrototypeOf2","_this","_len","args","Array","_key","imgLoaded","setState","_image","complete","handleImageLoad","update","nextProps","_this$props$imageSett","_nextProps$imageSetti","_this$props","qrcode","addData","make","_canvas","canvas","ctx","getContext","calculatedImageSettings","pixelRatio","devicePixelRatio","fillStyle","fillRect","fill","rdx","cdx","state","drawImage","_this2","_this$props2","otherProps","canvasStyle","img","imgSrc","createElement","display","onLoad","ref","Fragment","PureComponent","QRCodeSVG","_React$PureComponent2","_this$props3","image","xlinkHref","preserveAspectRatio","fgPath","shapeRendering","viewBox","d","renderAs","Component","defaultProps","module","exports"],"sourceRoot":""}