{"version":3,"file":"static/js/c9ebeb388c96e00b1b6f.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,gFChFlF,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,EACxBwB,KAAM,CACFmH,MAAAA,EACA1I,aAAAA,EACAyI,YAAAA,GAEJjB,0BAAAA,MAIR,MAAO,CACHyC,YAAa,CAAE1J,UAAW,GAAGT,aAC7BuI,OAAAA,oKCzHR,MA4BM6B,EAAsBA,CACxBC,EACArK,EACAsK,EACAC,EACAC,KAEA,MAAMC,EACFjK,EAAAA,cAAA,QAAMC,UAAW,GAAGT,6CACf,GAAGsK,KACJ9J,EAAAA,cAAA,YAAO6J,IAGf,OACIA,SACsBJ,IAArBM,GAAkCA,EAC/B/J,EAAAA,cAAA,WACKiK,EACDjK,EAAAA,cAAA,OAAKC,UAAW,GAAGT,+BAAuC,kBAAkB,gBACxEQ,EAAAA,cAACkK,IAAM,CAACC,MAAON,EAAoBO,KAAM,KACzCpK,EAAAA,cAAA,QAAMoG,GAAG,eAAenG,UAAU,4BAC7B+J,KAKbC,IAsCNI,EAAcA,CAChB7K,EACA8K,EACAC,EACAC,EACAC,EACAC,KAEA,IAAIC,EAEJ,GAAIL,EAAY,CACZ,MAAMM,EACFN,EAAWO,SAAWP,EAAWQ,UAC3BR,EAAWQ,UACXR,EAAWS,YAAcT,EAAWU,aACpCV,EAAWU,aACX,IACJC,EAAiBX,EAAWO,SAAWP,EAAWQ,WAAaR,EAAWS,YAAcT,EAAWU,aACzGL,EACI3K,EAAAA,cAAA,OAAKC,UAAW,GAAGT,4BACdgL,EAAqB,IAAExK,EAAAA,cAAA,QAAMC,UAAU,UAAU2K,GAAoB,IAAEL,GAASA,EAAM,IAAM,IAAIE,IAChGQ,GACGjL,EAAAA,cAAA,WACK0K,EAAmB,IAAE1K,EAAAA,cAAA,QAAMC,UAAU,UAAU,GAAGqK,EAAWU,gBAC7DT,GAASA,EAAM,IAAM,IAAIE,MAO9C,OAAOE,GAQEO,EAAsB3L,IAmCa,IAnCZ,WAChCC,EAAU,mBACVqK,EAAkB,YAClBsB,EAAW,eACXC,EAAc,iBACdC,EAAgB,gBAChBC,EAAe,aACfC,EAAY,YACZC,EAAW,OACXC,EAAM,aACNC,EAAY,WACZpB,EAAU,MACVC,EAAK,QACLoB,EAAO,UACPC,EAAS,MACTxD,EACA3G,WAAW,oBACPoK,EAAmB,eACnBvE,EAAc,gBACdC,EAAe,aACfuE,EAAY,sBACZtB,EAAqB,qBACrBC,EAAoB,oBACpBC,EAAmB,eACnBqB,EAAc,oBACdjC,EAAmB,mBACnBkC,EAAkB,2BAClBC,EAA0B,mBAC1BC,EAAkB,aAClBlC,EAAY,0BACZmC,GACH,eACDC,EAAc,iBACdrC,EAAgB,cAChBsC,GACqB9M,EACrB,MAAM+M,EAjGoBC,EAC1BlB,EACA7L,EACA2M,EACAf,EACAY,EACAb,EACAc,KAEA,IAAIK,EACJ,GAhF+B,IAgF3BjB,EACAiB,EAAkBtM,EAAAA,cAAA,QAAMC,UAAW,GAAGT,qCAA+C2M,QAClF,GAAIf,EAAgB,CACvB,MAAMoB,EAAiB,GAAGR,MAAAA,EAAAA,EAAsB,MAAMb,MAAAA,EAAAA,EAAe,KACrEmB,EAAkBtM,EAAAA,cAAA,QAAMC,UAAW,GAAGT,oDAA8DgN,OACjG,CACH,MAAMC,EAAoB,GAAGR,MAAAA,EAAAA,EAA8B,MAAMd,MAAAA,EAAAA,EAAe,KAChFmB,EAAkBtM,EAAAA,cAAA,QAAMC,UAAW,GAAGT,qCAA+CiN,GAEzF,OAAOH,GA8EkCC,CACrClB,EACA7L,EACA2M,EACAf,EACAY,EACAb,EACAc,GA6CJ,MA1CyB,CACrBS,sBAAuB,CAAEzM,UAAW,GAAGT,wBACvC2L,YAAaG,GAAmBH,GAAemB,EAC/ClB,eAAgBE,GAAmBF,GAC/BpL,EAAAA,cAAA,QAAMC,UAAW,GAAGT,wCAAkD4L,GAE1EuB,SAAUtC,EAAY7K,EAAY8K,EAAYC,EAAOC,EAAuBC,EAAsBC,GAClGiB,QAASA,EAAU3L,EAAAA,cAAA,QAAMC,UAAW,GAAGT,iCAA2C,GAAGsM,KAAgBH,KAAoB,GACzHC,UAAWA,EACP5L,EAAAA,cAAA,QAAMC,UAAW,GAAGT,mCAA6C,GAAGuM,KAAkBH,KAEtF,GAEJL,aAAcA,GACVvL,EAAAA,cAAA,QAAMC,UAAW,GAAGT,sCACfqM,EACD7L,EAAAA,cAAA,YAAOuL,IAGfC,aAAcY,GAAkBZ,GAC5BxL,EAAAA,cAAA,QAAMC,UAAW,GAAGT,qCACf0M,EACA,IACAV,GAGTpD,OAAQgE,QAA4B3C,IAAVrB,GAAuBA,EAAQ,GACrDpI,EAAAA,cAAA,QAAMC,UAAW,GAAGT,8BACL,IAAV4I,EAAc,GAAGA,KAASd,IAAmB,GAAGc,KAASb,KAGlEkE,QAASW,IAAmBX,GAAqB,IAAXA,IAClCzL,EAAAA,cAAC4M,EAAAA,eAAcC,OAAAC,OAAA,GACPpB,EAAY,CAChBzL,UAAW,GAAGT,8BACdyB,KAAM,CAAE8L,MAAO,CAAEC,wBAAyBvB,IAC1CwB,aAAcZ,KAGtBxC,mBAAoBD,EAAoBC,EAAoBrK,EAAYsK,EAAqBC,EAAkBC,KAoB1GkD,EAA6GA,CACtHC,EACAC,KACA,IAAAC,EACA,MAAMC,EAAeF,MAAAA,OAAiB,EAAjBA,EAAmBG,MAAK5H,GAClCA,EAAQ6H,WAAaL,EAAMM,YAItC,OADsC,QAArBJ,EAAGC,MAAAA,OAAY,EAAZA,EAAcpN,YAAI,IAAAmN,EAAAA,EAAI,IAUjCK,EAA8HA,CACvIP,EACAC,KAEA,MAAME,EAAeF,MAAAA,OAAiB,EAAjBA,EAAmBG,MAAK5H,GAClCA,EAAQ6H,WAAaL,EAAMM,YAItC,OADoBH,MAAAA,OAAY,EAAZA,EAAcK,YAAYC,OAUrCC,EAAuBA,CAACxC,EAAsCD,IAhRxC,IAiRxBC,IAAoDD,EASlD0C,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,EAAsB3O,eAAO,IAAA0O,EAAAA,EAAI,IAmB/CG,EAA2BA,CACpCvN,EACApB,EACA2N,EACAzB,EACA0B,EACAW,EACAK,EACA9D,EACAgB,EACAc,EACArC,KACwB,IAAAsE,EACxB,MAAM,UACF5M,EACA+D,SACI8I,SACIC,aAAa,UAAEC,MAGvB5N,EAKE6N,KAFqBtB,EAAMM,WAAaN,EAAMM,UAErCiB,GAAAA,CAAI9N,EAAO,2BAA6B,SACjDwH,EAAQ+E,EAAMwB,YAAcvM,EAAAA,gBAAgBC,YAAY8K,EAAMwB,aAAcC,EAAAA,EAAAA,IAAWzB,EAAMwB,YAAc,EAC3GtD,EAAmBqC,EAAyBP,EAAOC,GACnDhC,EAAiB0C,EAAuBX,EAAOY,GAC/CxD,KACDlD,EAAAA,EAAAA,IAAazG,EAAM4E,QAAQ8I,UAA5B,MACAhE,IAAAA,EAAYS,YADZ,MAEAT,IAAAA,EAAYU,cACXV,MAAAA,GAAAA,EAAYO,SACZP,MAAAA,GAAAA,EAAYQ,YACbsD,MAAAA,OAAQ,EAARA,EAAUS,kBAAkBvE,MAAAA,OAAU,EAAVA,EAAYS,aAGtC+D,GAAYvE,KAAUlD,EAAAA,EAAAA,IAAazG,EAAM4E,QAAQ8I,SAEvD,MAAO,CACH9O,WAAAA,EACAgM,YAAc2B,EAAM4B,iBAAmB,IAAIC,KAAK7B,EAAM4B,iBAAiBE,mBAAmBR,IAAY,GACtG9C,QAASwB,EAAM+B,QACf7C,cAAec,EAAMgC,aACrB7E,WAAYA,EACZC,MAAO,CAACA,EAAOuE,GACfM,WAAYhB,MAAAA,OAAQ,EAARA,EAAUiB,WACtBzD,UAAWuB,EAAMmC,UACjBhE,gBAAAA,EAGAC,aAAc4B,EAAMoC,aACpB1F,mBAAoBsD,EAAMqC,mBAC1BrE,YAAa+B,EAAoBC,EAAOC,GACxChC,eAAgBA,EAChBK,OAAyB,QAAnB4C,EAAElB,EAAMsC,mBAAW,IAAApB,EAAAA,EAAI,EAC7B3C,aAAAA,EACAtD,MAAAA,EACA3G,UAAAA,EACA2K,eAAAA,EACArC,iBAAAA,EACAsB,iBAAkBA,EAClBqE,cAAe7B,EAAqBxC,EAAkBD,kGC1SzDuE,qGAAL,SAAKA,GACDA,EAAA,YACAA,EAAA,cACAA,EAAA,oBACAA,EAAA,gBAJJ,CAAKA,IAAAA,EAAgB,KAYrB,MAAMC,EAAgBC,GAA6C,KAC/DA,EAAoBC,YAAcD,EAAoBC,YAuNpDC,EAAoDnP,IAA6B,IAAAoP,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACnF,MAAMC,EAAiC,QAAtBP,EAAgB,QAAhBC,EAAGrP,EAAMO,eAAO,IAAA8O,OAAA,EAAbA,EAAe/P,YAAI,IAAA8P,EAAAA,EAAIpP,EAAMsF,UAAUsK,YACrD9K,EAAiB9E,EAAM6P,qBAAqBjL,QAAQC,cAAcC,eAExE,GAAI9E,EAAM8P,UAAW,CAAC,IAADC,EAAAC,EACjB,MAAMC,GAAmBC,EAAAA,EAAAA,qBACR,QAD2BH,EACxC/P,EAAMO,eAAO,IAAAwP,OAAA,EAAbA,EAAeI,OACfrL,EAAe6I,YAC+B,QADpBqC,EAC1BhQ,EAAM6P,qBAAqBjL,QAAQ8I,QAAQ0C,WAAG,IAAAJ,GAAQ,QAARA,EAA9CA,EAAgDK,cAAM,IAAAL,OAAA,EAAtDA,EAAwDM,kBAE5D,MA/CoBC,EACxB3R,EACAkG,EACA6K,EACApP,EACA0P,EACAO,EACAC,EACAC,IAGItR,EAAAA,cAACuR,EAAAA,GAAQ,MACJ,SAAAC,EAAA,QACIF,MAAAA,GAAAA,EAAgBG,WACbzR,EAAAA,cAAA,OAAKC,UAAW,GAAGT,yBACfQ,EAAAA,cAAC0R,EAAAA,GAAK,CACFhM,eAAgBA,EAChBzF,UAAW,GAAGT,sBACdmS,QAASpB,EACTqB,IAA6B,QAA1BJ,EAAErQ,MAAAA,OAAO,EAAPA,EAAS0Q,uBAAe,IAAAL,EAAAA,EAAI,GACjCM,YAAajB,EACbO,aAAcA,EACdC,cAAeA,MAAAA,EAAAA,EAAiBU,EAAAA,GAChCC,oBAAoB,cAwBjCb,CACHvQ,EAAMpB,WACNkG,EACA6K,EACA3P,EAAMO,QACN0P,EACAnL,EAAe0L,aACfxQ,EAAM6P,qBAAqBQ,OAAOI,cAClCzQ,EAAM0Q,gBAId,MAAM7K,EAAgD,QAA5ByJ,EAAGtP,EAAMiP,2BAAmB,IAAAK,EAAAA,EAAI,IAAI+B,EAAAA,oBAAoBrR,EAAMsF,UAAWtF,EAAMO,SAEnGgG,EAAyBvG,EAAMuG,wBAA0BV,EAAqBzE,mBAE9EkQ,EACF/K,GAxOiCgL,EACrCtC,EACAuC,EACA5S,KAEA,MAAM6S,GAAuB7J,EAAAA,EAAAA,QAAO4J,MAAAA,EAAAA,EAAwC,MAAOvC,EAAoB3J,UAAUoM,WAEjH,OACItS,EAAAA,cAAA,OAAKC,UAAW,GAAGT,0BACfQ,EAAAA,cAAA,SAAOC,UAAWsS,GAAAA,CAAW,GAAG/S,wBAAkC,uBAC9DQ,EAAAA,cAAA,SACIC,UAAWsS,GAAAA,CAAW,GAAG/S,oBAA8B,kBACvDgT,KAAK,WACLC,QAAS5C,EAAoBC,WAAU,aAC3BuC,EAAoB,eAClBxC,EAAoBC,WAClC4C,SAAU9C,EAAaC,KAE3B7P,EAAAA,cAAA,QAAMC,UAAWsS,GAAAA,CAAW,GAAG/S,eAAyB,kBAuNhE2S,CAAiC1L,EAAsB7F,EAAMa,UAAU2Q,qCAAsCxR,EAAMpB,YAEvH,IAAIoD,EACJ,IAAKxB,EAAAA,iBAAiBC,kBAAkBkP,KAAiBnP,EAAAA,iBAAiBC,kBAAkBT,EAAMsF,UAAUoM,aACxG1P,GAAa+P,EAAAA,EAAAA,uBAAsBpC,EAAa3P,EAAMsF,UAAUoM,UAAW1R,EAAM6P,qBAAqBjL,QAAQC,eAE1GmN,EAAAA,GAASC,YAAaC,EAAAA,EAAAA,IAAiBpN,IAAiB,CAAC,IAADqN,EACxD,MAAMC,EAAU,IAAIC,IAAIrQ,EAAYsQ,OAAOhF,SAASvL,MACpDqQ,EAAQG,aAAaC,IAAI,YAAa,GAA4B,QAA5BL,EAAGnS,EAAMsF,UAAUmN,iBAAS,IAAAN,EAAAA,EAAI,KACtEnQ,EAAaoQ,EAAQrQ,KAI7B,MAAM1C,EAAY,GAAGW,EAAMpB,0CAE3B,OACIQ,EAAAA,cAAA,OACIC,UAAWsS,GAAAA,CACPtS,EACAkH,EAAyB,GAAGlH,uBAAiC,GAAGA,wBAChEW,EAAMuG,uBAAyB,GAAGlH,8BAAwC,GAAGA,+BAC7EwG,EAAqBzE,mBAAqB,GAAG/B,uBAAiC,GAAGA,yBACjFwG,EAAqBqJ,WAAa,GAAG7P,cAAwB,GAAGA,kBAGnEiS,EACDlS,EAAAA,cAACsT,EAAAA,sBAAqB,CAClBlN,GAAIxF,EAAM6P,qBAAqBrK,GAC/BC,SAAUzF,EAAM6P,qBAAqBpK,SACrCb,QAAS5E,EAAM6P,qBAAqBjL,QACpC/D,UAAW,CACP8R,WAAY3S,EAAMa,UAAU+R,yBAC5BC,YAAa7S,EAAMa,UAAUiS,0BAC7BC,YAAa/S,EAAMa,UAAUmS,0BAC7BC,aAAcjT,EAAMa,UAAUqS,2BAC9BC,sBAAuBnT,EAAMa,UAAUuS,sBACvCC,aAAcrT,EAAMa,UAAUwS,aAC9BC,mBAAoBtT,EAAMa,UAAUyS,mBACpCC,uBAAwB,GACxBzP,kBAAmB,GACnBC,iBAAkB,GAClByP,oBAAoD,QAAjCjE,EAAEvP,EAAMa,UAAU4S,uBAAe,IAAAlE,EAAAA,EAAI,GACxDmE,uBAAwB1T,EAAMa,UAAU8S,mCAE5CC,gBAA8B,QAAfpE,EAAExP,EAAMO,eAAO,IAAAiP,OAAA,EAAbA,EAAeyB,gBAChCjP,WAA0B,QAAdyN,EAACzP,EAAMO,eAAO,IAAAkP,GAAbA,EAAenQ,KAAmB0C,OAAZ6G,EACnC4H,cAA8D,QAAjDf,EAAE1P,EAAM6P,qBAAqBQ,OAAOI,qBAAa,IAAAf,EAAAA,EAAIyB,EAAAA,GAClEX,aAAc1L,EAAe0L,aAC7BqD,aAAW,EACXxT,KAAM,CAAEyT,SAAU9T,EAAMsF,UAAW/E,QAASP,EAAMO,QAASwT,SAAU/T,EAAM+T,UAC3EC,gCAAiChU,EAAM6P,qBAAqBQ,OAAO2D,gCACnEC,4BAA6BjU,EAAMqG,kCAAoCrG,EAAMiU,iCAA8BpL,EAC3G4C,cAAezL,EAAMyL,kBAMxByI,EAAgBlU,IAAyC,IAAAmU,EAAAC,EAAAC,EAClE,MAAM,WACFzV,EACAiR,sBAAsB,SAClBpK,EAAQ,QACRb,EACAyL,QAAQ,cAAEI,IACb,QACDlQ,EAAO,SACP+T,EAAQ,UACRhP,EACAzE,WAAW,YACP5B,EAAW,WACXC,EAAU,WACVC,EAAU,eACVoV,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,mCACzBnU,EAAkC,0DAClC6C,EAAyD,mEACzDd,EAAkE,yBAClEJ,EAAwB,4BACxBE,EAA2B,2BAC3BI,GAA0B,oCAC1BE,GAAmC,iCACnCE,GAAgC,8BAChCE,GAA6B,6CAC7BS,GAA4C,yBAC5CE,GAAwB,2BACxBE,GAA0B,kBAC1BT,GAAiB,kBACjBF,GAAiB,iBACjBC,GAAgB,cAChBF,IACH,4BACDoQ,GAA2B,uBAC3BwB,GAAsB,uBACtBlP,GAAsB,oBACtB0I,GAAmB,oBACnBtN,IACA3B,EAEE0V,GAhP6BC,EACnCb,EACAJ,EACAG,EACAF,EACAC,EACAG,KAEO,CACHa,SAAUd,EACVe,eAAgBnB,EAChBoB,SAAUjB,EACVjM,WAAY+L,EACZoB,QAASnB,EACToB,aAASnN,EACToN,QAASlB,IAiOgBY,CACzBb,EACAJ,EACAG,EACAF,EACAC,EACAG,GAGEmB,GAAgD,CAClDC,OAAQnB,EACRoB,KAAMnB,EACNoB,SAAUnB,EACVoB,MAAOnB,GAGLoB,GAAgD,QAA1BpC,EAAGvP,EAAQ8I,QAAQ3I,eAAO,IAAAoP,OAAA,EAAvBA,EAAyBqC,uBAClD7R,GAA+C,QAA1ByP,EAAGxP,EAAQ8I,QAAQ3I,eAAO,IAAAqP,OAAA,EAAvBA,EAAyBpP,sBACjD2K,GAA2B,QAAhB0E,EAAG9T,MAAAA,OAAO,EAAPA,EAASjB,YAAI,IAAA+U,EAAAA,EAAI/O,EAAUsK,YAC/C,IAAI5N,GAAa,GACjB,IAAKxB,EAAAA,iBAAiBC,kBAAkBkP,MAAiBnP,EAAAA,iBAAiBC,kBAAkB6E,EAAUoM,aAClG1P,IAAa+P,EAAAA,EAAAA,uBAAsBpC,GAAarK,EAAUoM,UAAW9M,EAAQC,eAEzEmN,EAAAA,GAASC,WAAW,CAAC,IAADwE,GACpB,MAAMrE,EAAU,IAAIC,IAAIrQ,GAAYsQ,OAAOhF,SAASvL,MACpDqQ,EAAQG,aAAaC,IAAI,YAAa,GAAsB,QAAtBiE,GAAGnR,EAAUmN,iBAAS,IAAAgE,GAAAA,GAAI,KAChEzU,GAAaoQ,EAAQrQ,KAI7B,MAAM2U,GAAaC,EAAkBpW,EAAS+E,EAAUS,aAAc0P,GAAwBzV,EAAMqG,mCAC9FvH,GAAe8X,EACjBF,GACApR,EACAA,EAAUS,aACVwQ,GACAvW,EAAMqG,kCACN4N,GACAtP,IAEE4C,IAAcsP,EAAAA,EAAAA,IAAmB/X,GAAcwG,EAAUwR,iBAAkBJ,IAC3EK,GAAoBrB,GAAqBnO,IAEzCyP,GAAqBC,EAAsBnY,GAAcoX,GAAuBlW,EAAMqG,mCACtF6Q,GAAoBC,EAAyBrY,GAAcoX,IAE3DkB,GAlQyBC,EAC/BL,EACApY,EACAsY,EACAI,EACAC,KAEA,MAAMC,EAAqBR,GACvB5X,EAAAA,cAACqY,EAAAA,EAAc,CACXpY,UAAW,GAAGT,oBAA6BsY,MAAAA,EAAAA,EAAqB,UAChEQ,MAAO,GAAGV,KAAsBM,MAAAA,EAAAA,EAAe,OAGjDK,EAAuBX,GACzB5X,EAAAA,cAACqY,EAAAA,EAAc,CAACpY,UAAW,GAAGT,mBAA6B8Y,MAAOV,IAGtE,OAAOO,EAAgCC,EAAqBG,GAiPnCN,CACrBL,GACApY,EACAsY,GAJgBU,EAAa5X,EAAMqG,kCAAmCf,EAAWxG,IAMjFkB,EAAMqG,mCAEJwR,GAAkBd,IACpB3X,EAAAA,cAACqY,EAAAA,EAAc,CACXpY,UAAW,GAAGT,mBAA4BA,oBAA6BsY,MAAAA,GAAAA,GAAqB,UAC5FQ,MAAOX,KAIT5O,GAtXqB2P,EAC3BhZ,EACAF,EACAwW,EACAC,EACAC,EACAhB,IAGIxV,IAAiBiQ,EAAiBqH,MAC9BhX,EAAAA,cAAA,QAAMC,UAAW,GAAGT,oBACfwW,EACAd,EACGlV,EAAAA,cAAA,KAAGC,UAAW,GAAGT,mBAA6BmD,KAAMuS,EAASyD,YAAW,aAAc1C,GACjFf,EAAS0D,gBAGd5Y,EAAAA,cAAAA,EAAAA,SAAA,KAAGkW,IAqWEwC,CAAgBhZ,GAAcF,EAAYwW,EAAeC,EAAmBC,EAAyBhB,GACpH2D,GAAsBhJ,MAAAA,GAAAA,GAAuB,IAAIoC,EAAAA,oBAAoB/L,EAAW/E,EAASyB,IACzFd,GACFyO,IAAe8E,GAAuBA,GAAuB,IAAIyD,QAAQ,gBAAiBvI,IAAe,GACvGwI,GAvV+BC,EACrCC,EACAC,EACAhT,EACAkQ,EACA5W,EACAiP,EACA0H,KAEA,MAAMgD,EACFF,GACAC,QAC0CzP,IAA1CvD,EAAUkT,kCAC8B3P,IAAxCvD,EAAUmT,0BAERnQ,EAAqBiQ,GACrBG,EAAAA,EAAAA,IAAgBlD,EAA2BlQ,EAAUkT,4BAA6BlT,EAAUmT,0BAA2B5K,GACvH,GAEN,OACI0K,GACInZ,EAAAA,cAAA,OAAKC,UAAW,GAAGT,2BACfQ,EAAAA,cAAA,OAAKC,UAAW,GAAGT,iCAA2C2W,GAC9DnW,EAAAA,cAAA,OAAKC,UAAW,GAAGT,mCAA6C0J,KAgU7C8P,CAC3BpY,EAAMmG,aACNrH,KAAiB4X,GACjBpR,EACAkQ,EACA5W,EACAgG,EAAQ8I,QAAQG,OAChB0H,GAEJ,IAAIoD,IAA0B/Q,EAAAA,EAAAA,QAAO,wCAAyChJ,GAC1E2H,KACAoS,IAA0B/Q,EAAAA,EAAAA,QAAO,kBAAmB+Q,GAAyBA,KAG7ElI,IACAA,EAAcmI,iBAAkB,GAGpC,MAAMC,GAAqB,GAAGja,gBACxBka,GAAyBnH,GAAAA,CAC3BkH,GACAtS,GAAyB,GAAGsS,wBAA0C,GAAGA,yBACzE7Y,EAAMuG,uBACA,GAAGsS,+BACH,GAAGA,gCACTZ,GAAoB7W,mBAAqB,GAAGyX,wBAA0C,GAAGA,2BAG7F,MAAO,CACHxY,KAAM,CACFiF,UAAAA,EACAtD,WAAAA,GACAlD,aAAAA,GACAyI,YAAAA,GACAhH,QAAAA,EACA+T,SAAAA,EACAyE,UAAWd,GAAoB/I,YAEnC8J,eAAgB,CAAE3Z,UAAWyZ,IAC7BxT,UAAW6J,EAAmBnP,GAC9BnB,QAASyG,EAAU2T,iBACf7Z,EAAAA,cAACV,EAAAA,EAAO,CACJE,WAAYA,EACZC,QAASyG,EAAU2T,gBACnBja,SAAU,CAAEC,YAAAA,EAAaC,WAAAA,EAAYC,WAAAA,EAAYoV,eAAAA,GACjDzV,aAAcA,GACdC,oBAAqBiB,EAAMjB,sBAGnCD,aAAcsY,GACd7P,YAAasQ,GACb1P,aAAAA,GACA+Q,eACI9Z,EAAAA,cAACW,EAAAA,EAAoB,CACjB6E,QAASA,EACTvF,UAAWW,EAAMqG,kCAAoCsS,GAA0B,GAAG/Z,iCAClFyB,KAAM,CAAED,SAAU,CAAC6X,KACnBpX,UAAW,CACPE,4BAA6ByT,EAC7BnT,mCAAAA,EACAH,gCAAAA,GACAgD,0DAAAA,EACAd,mEAAAA,EACAJ,yBAAAA,EACAE,4BAAAA,EACAI,2BAAAA,GACAE,oCAAAA,GACAE,iCAAAA,GACAE,8BAAAA,GACAS,6CAAAA,GACAE,yBAAAA,GACAE,2BAAAA,GACAT,kBAAAA,GACAF,kBAAAA,GACAC,iBAAAA,GACAF,cAAAA,IAEJ2B,GAAIxF,EAAM6P,qBAAqBrK,GAC/BC,SAAUA,EACV9D,oBAAqBA,KAG7B2G,mBAAoB6P,GACpBgB,QAASlB,GAAoB7W,oBACzBhC,EAAAA,cAAA,OAAKC,UAAU,oBAAoBW,EAAMa,UAAUQ,sCAKlDuV,EAAkBA,CAC3BF,EACApR,EACA8T,EACA7C,EACA8C,EACApF,EACAtP,KAEA,IAAI2U,EAE6B,IAADC,EAA5BF,EACAC,EACIF,KAA0BnF,MAAAA,GAAoD,QAAzBsF,EAA3BtF,EAA6BuF,+BAAuB,IAAAD,OAAA,EAApDA,EAAsD5M,MAAK8M,GAAMA,IAAOL,KAEtGE,IACM/C,GAAqD,KAA3BA,GAAiCA,IAA2B6C,EAGhG,OAAOE,EACD5C,EACA/R,GAAmD,KAA1BA,GAAgCA,IAA0BW,EAAUS,aAC7FgJ,EAAiBuH,MACjBhR,EAAUS,aACVgJ,EAAiBqH,KACjBrH,EAAiBsH,UAGdY,EAAwBA,CACjCnY,EACAoX,EACAmD,KAEA,IAAIA,EAUA,OAAOnD,EAAsBpX,GAT7B,OAAQA,GACJ,KAAKiQ,EAAiBqH,KACtB,KAAKrH,EAAiBsH,SACtB,KAAKtH,EAAiBuH,MAClB,OAAOJ,EAAsBpX,GACjC,QACI,OAAOA,IAOVqY,EAA2BA,CACpCrY,EACAoX,EACAmD,KAEA,OAAQva,GACJ,KAAKiQ,EAAiBqH,KACtB,KAAKrH,EAAiBsH,SACtB,KAAKtH,EAAiBuH,MAClB,OAAOxX,EACX,QACI,OAAOiQ,EAAiBoH,SAI9BuD,EAAgC,SASzBC,EAAoCA,CAC7CC,EACAR,EACA3D,KACQ,IAAAoE,EACR,GAAIrZ,EAAAA,iBAAiBC,kBAAkBmZ,KAAqBpY,EAAAA,gBAAgBC,YAAYgU,GACpF,OAAOiE,EAGX,MAAMI,EAAwBrE,EAAuB9I,MAAKoN,GAC/CA,EAAsBrI,YAAckI,IAGzCI,EAAsBF,MAAAA,GAAsC,QAAjBD,EAArBC,EAAuBG,uBAAe,IAAAJ,GAAuD,QAAvDA,EAAtCA,EAAwClN,MAAKuN,GAAUA,EAAOC,OAASf,WAAsB,IAAAS,OAAA,EAA7FA,EAA+FjK,YAE3H,OAAOoK,MAAAA,EAAAA,EAAuBN,GAGrB/C,EAAoBA,CAC7BpW,EACA6Y,EACA3D,EACA4D,IAEOM,EAAkCpZ,MAAAA,OAAO,EAAPA,EAASqM,SAAUwM,EAAuB3D,GAU1EmC,EAAeA,CACxBL,EACAjS,EACAxG,KAC2B,IAAAsb,EAC3B,IAAK7C,EACD,OAAO,KAGX,OAAQzY,GACJ,KAAKiQ,EAAiBqH,KACtB,KAAKrH,EAAiBuH,MACtB,KAAKvH,EAAiBsH,SAClB,MAAO,GACX,QACI,MAAO,KAA8B,QAA9B+D,EAAK9U,EAAU2T,uBAAe,IAAAmB,OAAA,EAAzBA,EAA2B9a,8DC9tB5C,MAAM+a,EAAgB1b,IAsBW,IAtBV,WAC1BC,EAAU,qBACViR,EAAoB,WACpB5J,EAAU,SACV7F,EAAQ,UACRka,EAAS,UACTzZ,EAAS,iBACT0Z,EAAgB,UAChBzK,EAAS,oBACT/Q,EAAmB,aACnBoH,EAAY,iBACZqU,EAAgB,kCAChBnU,EAAiC,4BACjC4N,EAA2B,uBAC3BwB,EAAsB,uBACtBlP,EAAsB,qBACtBV,EAAoB,oBACpBlE,EACA8Y,gBAAiBC,EAAa,wCAC9BC,EAAuC,SACvC5G,EAAQ,cACRtI,GACkB9M,EAClB,OAAOsH,EAAWoB,KAAI,CAAC/B,EAAWsV,KAC9B,MAAMra,EAAUH,EAASuM,MAAKjM,GAAiBA,EAAckM,WAAatH,EAAUoM,YAC9E4C,EACF/T,IACA+Z,MAAAA,OAAS,EAATA,EAAW3N,MAAKkO,IAAe,IAAAC,EAAA,OACE,QADFA,EAC3BD,EAAgBE,qBAAa,IAAAD,OAAA,EAA7BA,EAA+BnO,MAC3BqO,GACIA,EAAa7K,SAAW5P,EAAQ4P,QAAU6K,EAAaC,yBAA2B3V,EAAU2V,6BAGtGhM,EAAsB1I,EACtBhG,IAAWsF,MAAAA,OAAoB,EAApBA,EAAsB8G,MAAKuO,GAAkBA,EAAe5V,UAAUoM,YAAcnR,EAAQqM,iBACvG/D,EACAsS,EAAeT,MAAAA,OAAa,EAAbA,EAAe/N,MAAKpD,IAAK,IAAA6R,EAAA,OAAI7R,EAAM8R,UAAY,GAAmB,QAAnBD,EAAG9V,EAAUgW,cAAM,IAAAF,EAAAA,EAAI,MAAMR,OAEjG,OAAO1G,EAAAA,EAAAA,IAAa,CAChBtV,WAAAA,EACAiR,qBAAAA,EACAtP,QAAAA,EACA+T,SAAAA,EACAhP,UAAAA,EACAiV,iBAAAA,EACA1Z,UAAAA,EACAiP,UAAAA,EACA/Q,oBAAAA,EACAoH,aAAAA,EACAqU,iBAAAA,EACAnU,kCAAAA,EACA4N,4BAAAA,EACAwB,uBAAAA,EACAlP,uBAAAA,EACA0I,oBAAAA,EACAtN,oBAAAA,EACA+O,eAAgByK,EAChBR,wCAAAA,EACA5G,SAAAA,EACAtI,cAAAA,QASC8P,EAAqBA,CAC9Bvb,EACApB,EACA2N,EACAnM,EACA0K,EACA/L,EACAoH,EACAqU,EACAnU,EACA4N,EACAwB,EACAlP,EACAV,EACAlE,EACAgZ,EACA5G,KAEA,IAAKxH,IAAUA,EAAMwB,YAA0C,IAA5BxB,EAAMwB,WAAW5M,OAChD,OAGJ,MAAM,UACFN,EACAwP,QAAQ,cAAEI,GACV7L,SAAS,cACLC,EACA6I,SAAS,aACL8C,EACA7C,aAAa,UAAEC,MAGvB5N,EAIJ,MAAO,CACHpB,WAAAA,EACAiR,qBAAsB7P,EACtBua,kBALsBhO,EAAMM,WAAaN,EAAMM,YAAce,EAM7D3H,WAAYsG,EAAMwB,WAClBtC,cAAec,EAAMgC,aACrBnO,SAAAA,EACAka,UAAW/N,EAAMiP,UACjB1Q,aAAAA,EACAjK,UAAAA,EACAgE,cAAAA,EACA2L,aAAcA,EACdC,cAAAA,EACA1R,oBAAAA,EACAoH,aAAcA,MAAAA,GAAAA,EACdqU,iBAAAA,EACAnU,kCAAAA,EACA4N,4BAAAA,EACAwB,uBAAAA,EACAlP,uBAAwBA,MAAAA,GAAAA,EACxBV,qBAAAA,EACAlE,oBAAAA,EACAgZ,wCAAAA,EACA5G,SAAAA,sSCzKD,MAAM0H,EAGTC,YAAmBC,GACfC,KAAKD,mBAAqBA,IAHlBE,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,0FCDR,MAAMC,EAKTL,YAAmBL,EAAiBxK,GAChC+K,KAAKP,QAAUA,EACfO,KAAK/K,SAAWA,IANRgL,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,+FCCR,MAAME,EAA+Brd,IAAA,IAAC,UAAEU,EAAS,MAAEqY,GAAO/Y,EAAA,OAAKS,EAAAA,cAAA,QAAMC,UAAWA,GAAYqY,IAEnG,yHCaO,MAAMuE,EAA6BC,GAC/BA,EAAYC,QAAO,CAAC9U,EAAK+U,KACxBA,EAAWC,eACXhV,EAAI+U,EAAWC,cAAgBD,EAAWE,aAEvCjV,IACR,IAGM2G,EAAc/H,GAChBA,EAAWkW,QAAO,CAAC3U,EAAOlC,IACtBkC,GAASlC,EAAUC,UAAY,IACvC,GAeM4L,EAAuC,CAChDoL,UAAW,CACPC,GAAI,CAAEC,EAAG,gBAAiBC,EAAG,EAAGC,EAAG,GACnCC,GAAI,CAAEH,EAAG,kBAAmBC,EAAG,EAAGC,EAAG,IAEzCE,UAAU,EACVjE,iBAAiB,GAOR/B,EAAqBA,CAAC/X,EAAsBge,EAAsBpG,KAC3E,GAAoB,IAAhBoG,EACA,MAAO,WAGX,GAAqB,WAAjBhe,EACA,OAAQge,GACJ,KAAK,EACD,MAAO,iBACX,KAAK,EACD,MAAO,WACX,QACI,MAAO,kBAEZ,GAAqB,SAAjBhe,EACP,OAAQge,GACJ,KAAK,EACD,MAAO,aACX,KAAK,EACD,MAAO,UACX,QACI,MAAO,iBAEZ,IAAqB,UAAjBhe,EASJ,IAAqB,aAAjBA,EACP,MAAO,aAEP,QAAmB+J,IAAf6N,EACA,OAAQoG,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,gBAgCV1V,EAAmBnB,IAC5B,MAMM8W,EAA0B,GAG1BzV,GAT0B0V,EASK/W,EATmBgX,GAAAA,CAAQD,GAAOE,GAAQA,EAAK7c,KAAKvB,gBAAzDke,IAAAA,EA8ChC,OAlCA/Q,OAAOkR,QAAQ7V,GAAO8V,SAAQze,IAAwC,IAAtCG,EAAcue,GAAoB1e,EAE9D2I,EAAMxI,GAbyBke,CAAAA,GAAwBC,GAAAA,CAAQD,GAAOE,GAAQA,EAAK7c,KAAKkH,cAalE+V,CAA0BD,GAEhDpR,OAAOkR,QAAQ7V,EAAMxI,IAAese,SAAQG,IAA0C,IAAxChW,EAAaiW,GAAuBD,EAE9EC,EAAuBjW,GAfFyV,CAAAA,GACzBC,GAAAA,CAAQD,GAAOE,GAASA,EAAK7c,KAAKiF,UAAU2T,iBAAmBiE,EAAK7c,KAAKiF,UAAU2T,gBAAgBrM,UAAa,YActE6Q,CAAoBD,GAE1DvR,OAAOkR,QAAQK,EAAuBjW,IAAc6V,SAAQM,IAAkC,IAAhCC,EAAWC,GAAiBF,EAEtFE,EAAiBD,GApBCX,CAAAA,GAAwBC,GAAAA,CAAQD,GAAOE,GAAQA,EAAK7c,KAAKiF,UAAUuY,YAAc,YAoBrEC,CAAqBF,GAGnD3R,OAAOkR,QAAQS,EAAiBD,IAAYP,SAAQW,IAAoC,IAAlCC,EAAYC,GAAkBF,EAChFhB,EAAUmB,KAAK,CAEXpf,aAAAA,EAGAyI,YAAAA,EACAoW,UAAAA,EACAK,WAAAA,EAGAxW,MAAOwG,EAAWiQ,EAAkB5W,KAAI6V,GAAQA,EAAK7c,KAAKiF,aAG1DW,WAAYgY,gBAOzBlB,GAGErE,EAAkBA,CAACyF,EAAqBC,EAA6BC,EAA2BxQ,KACzG,IAAKuQ,IAAcC,EACf,MAAO,GAGX,MAIMC,EADgB,IAAIC,KAAKC,eAAe3Q,EAHE,CAC5C4Q,SAAU,QAGa7W,OAAO,IAAIwG,KAAKgQ,IAQrCM,EAAoB,IAAIH,KAAKC,eAAe3Q,EANE,CAChD8Q,KAAM,UACNC,OAAQ,UACRC,QAAQ,EACRJ,SAAU,QAId,MAAO,GAAGH,MADO1W,EAAAA,EAAAA,QAAOuW,EAAaO,EAAkB9W,OAAO,IAAIwG,KAAKgQ,IAAaM,EAAkB9W,OAAO,IAAIwG,KAAKiQ,iFC5KnH,MAAMS,EAAyBA,CAACja,EAA+Bka,KAClE,MAAMC,GAAkBrZ,EAAAA,EAAAA,IAAW,eAAgBd,IAAkB,GAC/Doa,EAAYD,EAAgBE,SAAS,KAAO,IAAM,IACxD,OAAKC,EAAAA,iBAAiBC,mBAAmBL,EAAWzQ,SAM7C,GAAG0Q,IAAkBC,kBAA0BF,EAAWM,KAJtD,GAAGL,IAAkBC,YAAoBF,EAAWzQ,WAatDgR,EAAsBA,CAC/BC,EACA1e,KAEA,OAAQ0e,GACJ,KAAKC,EAAAA,YAAYC,QACb,OAAO5e,EAAU6e,mBACrB,KAAKF,EAAAA,YAAYG,UACb,OAAO9e,EAAU+e,qBACrB,KAAKJ,EAAAA,YAAYK,SACb,OAAOhf,EAAUif,oBACrB,KAAKN,EAAAA,YAAYO,SACb,OAAOlf,EAAUiU,oBACrB,QACI,MAAO,iJCzCnB,MAAMkL,EAAqB,kDACrBC,EAAmB,GAAGD,aACtBE,EAAsB,GAAGF,iBAoElBG,EAAyHC,EAAAA,GAA0BC,gBAG9J,kDAAmD,CAAEC,UAnCnDtgB,IAEA,MAAM,UACFa,EACAR,MAAM,YAAEkgB,GAAa,UACrBC,EAAS,eACTC,EAAc,aACdC,GACA1gB,EAEE2gB,EAAaJ,MAAAA,OAAW,EAAXA,EAAapf,OAC1Byf,EAAiB,IAAID,KAA6B,IAAfA,EAAmB9f,MAAAA,OAAS,EAATA,EAAWggB,gBAAkBhgB,MAAAA,OAAS,EAATA,EAAWigB,oBAEpG,OACI1hB,IAAAA,cAAC2hB,EAAAA,KAAI,CAAC1hB,UAAWsS,GAAAA,CAAW3R,EAAMX,UAAW2gB,KACxCQ,MAAAA,OAAS,EAATA,EAAWQ,OACR5hB,IAAAA,cAACghB,EAAAA,GAAanU,OAAAC,OAAA,GACNsU,EAAS,CACbnhB,UAAW4gB,EACXgB,IAAKT,EAAUS,KAAO,KACtBC,UAAW,CAAEC,OAAQnhB,EAAM8R,SAAUhN,eAAgB9E,EAAM4E,QAAQ8I,YAG1E+S,GAAkBrhB,IAAAA,cAAA,QAAMC,UAAW6gB,GAAsBU,GACzDF,qzBCjCb,MAAMV,EAAqB,sDACrBoB,EAAyB,GAAGpB,iBAC5BqB,EAAkC,GAAGrB,yBACrCsB,EAAgC,GAAGtB,yCACnCuB,EAAuC,GAAGvB,iDAC1CwB,EAA6B,GAAGxB,uBAChCphB,EAAaohB,EA6CbyB,EAAwD9iB,IAAA,IAAC,sBAC3DmN,EAAqB,SACrBC,EAAQ,QACRhB,EAAO,UACPC,EAAS,YACTT,EAAW,YACXK,EAAW,MACXpD,EAAK,OACLqD,EAAM,mBACN5B,GACHtK,EAAA,OACGS,IAAAA,cAAC2hB,EAAAA,KAAI9U,OAAAC,OAAA,GAAKJ,GACLC,EACD3M,IAAAA,cAAA,OAAKC,UAAWgiB,GACX9W,EACA/C,GAEJuD,EACAC,EACAJ,EACAC,EACA5B,IASHyY,EAAmDnE,IAAA,IAAC,cAAE9U,EAAa,QAAEE,EAAO,MAAEnB,EAAK,WAAEoB,EAAU,QAAE/J,EAAO,aAAEsJ,GAAcoV,EAAA,OAC1Hne,IAAAA,cAAC2hB,EAAAA,KAAI9U,OAAAC,OAAA,GAAKzD,GACLE,EACAnB,EACAoB,EACA/J,EACAsJ,IASHwZ,EAAmCjE,IAAA,IAAC,WAAE3V,EAAU,SAAES,EAAQ,gBAAER,EAAe,WAAE/B,GAAYyX,EAAA,OAC3Fte,IAAAA,cAAC2hB,EAAAA,KAAI9U,OAAAC,OAAA,GAAKnE,GACLS,GAAYpJ,IAAAA,cAACsiB,EAAsBzV,OAAAC,OAAA,GAAK1D,IACxCvC,GACG7G,IAAAA,cAAC2hB,EAAAA,KAAI9U,OAAAC,OAAA,GAAKlE,GACL/B,EAAWoB,KAAK/B,GACblG,IAAAA,cAACA,IAAAA,SAAc,CAACwiB,IAAKtc,EAAUjF,KAAKiF,UAAUgW,QAAShW,EAAUA,gBAY/Euc,EAAqC9D,IAAA,IAAC,YAAEhV,EAAW,OAAE5B,GAAQ4W,EAAA,OAC/D3e,IAAAA,cAAC2hB,EAAAA,KAAI9U,OAAAC,OAAA,GAAKnD,GACL5B,EAAOE,KAAI,CAACC,EAAesT,IACxBxb,IAAAA,cAACuiB,EAAc1V,OAAAC,OAAA,CAAC0V,IAAKhH,GAAWtT,QAWtCwa,EAA2BA,CAACC,EAAsCrH,IAAoC,KACxG,IAAK,MAAMS,KAAgBT,EACvBS,EAAatK,UAAW,EAE5BkR,EAAkBpG,mBAAqB,GA2L9BqG,EAA+HC,EAAAA,GAAiB5B,gBAG3J,qDAAsD,CAAEC,UA9BtDtgB,GAGIZ,IAAAA,cAAC2hB,EAAAA,KAAI,CAAC1hB,UAAWsS,GAAAA,CAAW3R,EAAMX,UAAW2gB,IACxCxe,EAAAA,gBAAgBC,YAAYzB,EAAMK,KAAKkgB,cACpCvgB,EAAMK,KAAKkgB,YAAYlZ,KAAI,CAAC0X,EAAwBnE,KAChD,MAAMsH,EA5JmCC,EACzDpD,EACAnE,EACA5a,KAEA,MAAM,GACFwF,EAAE,SACFC,EAAQ,QACRb,EACAwd,aAAa,UAAEC,GACfhiB,MAAM,SAAED,EAAQ,kBAAEoM,EAAiB,iBAAEW,EAAgB,SAAEK,EAAQ,YAAE8U,GAAa,gBAC9E5X,EAAe,iBACf8P,EACA3Z,WAAW,cAAEgD,EAAa,iBAAE0e,EAAgB,aAAEC,EAAY,eAAE9b,EAAc,gBAAEC,GAC5E/B,SAAS,cAAEC,GAAe,kCAC1BwB,EAAiC,4BACjC4N,GACAjU,EAEE8K,EAAe,CACjBtF,GAAAA,EACAC,SAAAA,EACAb,QAAAA,EACAyd,UAAAA,EACAxe,cAAAA,GAGE6F,EAA0C4Y,MAAAA,OAAW,EAAXA,EAAa3V,MACzDjD,GACKqV,EAAWzQ,SAAW5E,EAAW4E,UAAYyQ,EAAWzQ,SACxDyQ,EAAWM,IAAM3V,EAAW+Y,gBAAkB1D,EAAWM,KAG5DqD,EACFtiB,IACAmb,EAAAA,EAAAA,GACIvb,EAAMoiB,YACNxjB,EACAmgB,EACA3e,EACA0K,OACAjC,OACAA,OACAA,EACAxC,EACA4N,GAGR,IAAIhO,EACA0c,EACJ,GAAID,EAAiB,CACjB,MAAME,EAAuBC,EAAAA,EAAA,GAA6BH,GAAe,IAAE5S,WAAW,IACtF,IAAKtP,EAAAA,iBAAiBC,kBAAkBT,EAAM8iB,iBAAkB,CAC5D,MAAMnH,EAAqBiH,EAAwB3c,WAAW9E,OAASnB,EAAM8iB,gBAI7E,GAHAF,EAAwBnI,gBAAkBmI,EAAwB3c,WAAWoB,KACzE,CAAC/B,EAAWsV,KAAK,IAAAQ,EAAA,OAAK,IAAIW,EAAAA,GAAe,GAAmB,QAAnBX,EAAG9V,EAAUgW,cAAM,IAAAF,EAAAA,EAAI,MAAMR,IAASA,GAAS5a,EAAM8iB,oBAE9FnH,EAAqB,EAAG,CACxB,MAAMoG,EAAoB,IAAItG,EAAAA,GAAkBE,GAChDgH,EACIvjB,IAAAA,cAAAA,IAAAA,SAAA,KACIA,IAAAA,cAACuR,EAAAA,GAAQ,MACJ,KACG,MAAMqQ,GAAOpZ,EAAAA,EAAAA,QACT5H,EAAMa,UAAUkiB,qCAChBhB,EAAkBpG,oBAEtB,OACIoG,EAAkBpG,mBAAqB,GACnCvc,IAAAA,cAAC0C,EAAAA,OAAM,CACHzC,UAAWiiB,EACXhgB,MAAO0f,EACPgC,KAAK,SACLC,QAASnB,EAAyBC,EAAmBa,EAAwBnI,iBAAiB,aAClFuG,GAEXA,QAUrC/a,GAAaoU,EAAAA,EAAAA,GAAcuI,GAG/BD,EACIvjB,IAAAA,cAAAA,IAAAA,SAAA,KACKujB,EACDvjB,IAAAA,cAAA,OAAKC,UAAWkiB,KAIxB,MAAMpa,EACFlB,IACAD,EAAAA,EAAAA,GAAU,CACNpH,WAAAA,EACAqH,WAAAA,EACApF,UAAW,CAAE6F,eAAAA,EAAgBC,gBAAAA,GAC7BN,kCAAAA,IAGF6c,GAAuB3V,EAAAA,EAAAA,IACzBvN,EAAMoiB,YACNxjB,EACAmgB,EACAjU,EACA0B,EACAW,EACAK,EACA9D,EACAgB,GAGEyY,GAAUC,EAAAA,EAAAA,kBAAiB,QAAS5I,EAAmB6I,EAAAA,kBAAkBC,cACzEC,GAAyBC,EAAAA,EAAAA,wBAAuBhJ,EAAmB2I,GAEnEM,EACFrkB,IAAAA,cAAC0C,EAAAA,OAAMmK,OAAAC,OAAA,CACHnK,MAAM+c,EAAAA,EAAAA,GAAuBja,EAAeka,GAC5CiE,KAAK,SAAQ,aAETjE,EAAWnQ,oBAAsB2T,EAC3BA,EAAiBrK,QAAQ,YAAa6G,EAAWnQ,oBACjD,GAEVvP,UAAWmiB,GACP+B,GAEHf,GAIT,MAAO,CACHkB,iBAAiBpZ,EAAAA,EAAAA,IAAoB4Y,GACrC/b,OAAQA,EACRsc,iBAAkBA,EAClBd,qBAAsBA,IAgByDR,CAC/DpD,EACAnE,EACA5a,GAEJ,OACIZ,IAAAA,cAAC2hB,EAAAA,KAAI,CAAC1hB,UAAW+hB,EAAwBQ,IAAK7C,EAAWzQ,SAAWyQ,EAAWM,IAC1E6C,EAAUwB,iBAAmBtkB,IAAAA,cAACqiB,EAAwBxV,OAAAC,OAAA,GAAKgW,EAAUwB,kBACrExB,EAAU/a,QAAU/H,IAAAA,cAACyiB,EAAe5V,OAAAC,OAAA,GAAKgW,EAAU/a,SACnD+a,EAAUS,qBACVT,EAAUuB,yMC5TvC,MAAMzD,EAAqB,uDACrB2D,EAAoB,GAAG3D,oBACvB4D,EAAuB,GAAG5D,uBAC1B6D,EAAwB,GAAG7D,sBAC3B8D,EAAmB,GAAG9D,kBACtB+D,EAA+B,GAAG/D,8BAkFlCgE,EAAaA,CAACpf,EAAuB0Z,KACvC,QAAazV,IAATyV,EACA,MAAO,GAIX,OAAO1Z,EAAQqf,iBAAiBD,WAAW1F,EADH,CAAE4F,KAAM,UAAWC,MAAO,QAASC,IAAK,aAI9EC,EAAuBA,CAACC,EAAsBC,KAAyB,IAAAC,EACzE,MAAMC,EAA6D,SAA1B,QAA3BD,EAAAE,SAASC,KAAKC,qBAAa,IAAAJ,OAAA,EAA3BA,EAA6BK,aAAa,QACxD,OAAOP,EAAanjB,OAASojB,EACvBE,EACI,IAAIH,EAAaQ,UAAU,EAAGP,EAAgB,KAC9C,GAAGD,EAAaQ,UAAU,EAAGP,EAAgB,MACjDD,GAuDJS,EAA+B/kB,IACjC,MAAMglB,EAAqB1S,OAAO2S,WAAa,IAAM,GAAK,GAC1D,OACI7lB,IAAAA,cAAA,QAAMC,UAAWskB,EAAiB,aAAc,GAAG3jB,EAAMgK,gBAAgBhK,EAAMklB,kBAAoBllB,EAAMqK,eAAiB,MACrHrK,EAAMgK,aACNhK,EAAMklB,mBACH9lB,IAAAA,cAAAA,IAAAA,SAAA,KACIA,IAAAA,cAAA,WAAM,IAAEilB,EAAqBrkB,EAAMqK,eAAgB2a,MAOjEG,EAA4BA,CAACC,EAA6CC,KAC5E,MAAML,EAAqB1S,OAAO2S,WAAa,IAAM,GAAK,IACpD,WACFlG,EAAU,kBACVmG,EAAiB,aACjBI,EAAY,kBACZC,EACA1kB,WAAW,sCAAE2kB,IACbJ,EAEJ,IAAIK,EAAsB1G,EAAWzQ,QAKrC,OAJI6Q,EAAAA,iBAAiBC,mBAAmBqG,KACpCA,EAAsBD,GAItBpmB,IAAAA,cAAAA,IAAAA,SAAA,KACIA,IAAAA,cAAC0C,EAAAA,OAAM,CAACzC,UAAWukB,EAAsB7hB,KAAMsjB,MAAAA,EAAAA,EAAsB,IAChEI,GAEJP,IAAsBK,GACnBnmB,IAAAA,cAAA,QAAMC,UAAWskB,EAAiB,aAAc2B,GAC3CjB,EAAqBiB,EAAcN,MAOlDU,EAA+BA,CACjC1lB,EACA4a,EACAmE,KACsB,IAAA7c,EAAAC,EACtB,MAAMwjB,EAA2BnkB,EAAAA,gBAAgBC,YAAYsd,EAAWhR,aAAcC,EAAAA,EAAAA,IAAW+Q,EAAWhR,YAAc,EACpH6X,GApIYhhB,EAoI+B5E,EAAM4E,QApIdiG,EAoIuBkU,EAAWlQ,YApINxC,EAoImB0S,EAAWxQ,kBAnIpF1F,IAAXgC,EACO,GAEJjG,EAAQqf,iBAAiB4B,eAAehb,EAAQwB,IAJtCyZ,IAAClhB,EAAuBiG,EAA4BwB,EAsIrE,MAAM0Z,GAA8BzG,EAAAA,EAAAA,GAAoBP,EAAWiH,YAAahmB,EAAMa,WAEhF0J,GAAsB+B,EAAAA,EAAAA,IAAoByS,EAAY/e,EAAMK,KAAKmM,mBACjEhC,GAAyB0C,EAAAA,EAAAA,IAAuB6R,EAAY/e,EAAMK,KAAK8M,kBACvE8Y,EACF1b,IACCC,EAAiB,GAAGxK,EAAMa,UAAUuK,sBAAsBb,IAAgBvK,EAAMa,UAAUwK,4BAEzF+Z,EA/GsBc,EAC5BlmB,EACA+e,KAEA,MACI1e,MAAM,kBAAEmM,EAAiB,iBAAEW,EAAgB,SAAEK,EAAQ,YAAE8U,GACvDzhB,WAAW,sBAAE+I,EAAqB,qBAAEC,EAAoB,oBAAEC,EAAmB,sCAAE0b,IAC/ExlB,EAEEwK,GAAiB0C,EAAAA,EAAAA,IAAuB6R,EAAY5R,GACpD1C,GAAmBqC,EAAAA,EAAAA,IAAyBiS,EAAYvS,GACxDsC,GAAgB7B,EAAAA,EAAAA,IAAqBxC,EAAkBD,GAEvDd,EAA0C4Y,MAAAA,OAAW,EAAXA,EAAa3V,MACzDjD,GACKqV,EAAWzQ,SAAW5E,EAAW4E,UAAYyQ,EAAWzQ,SACxDyQ,EAAWM,IAAM3V,EAAW+Y,gBAAkB1D,EAAWM,KAG5D1V,KACDlD,EAAAA,EAAAA,IAAazG,EAAM4E,QAAQ8I,UAA5B,MACAhE,IAAAA,EAAYS,YADZ,MAEAT,IAAAA,EAAYU,cACXV,MAAAA,GAAAA,EAAYO,SACZP,MAAAA,GAAAA,EAAYQ,YACbsD,MAAAA,OAAQ,EAARA,EAAUS,kBAAkBvE,MAAAA,OAAU,EAAVA,EAAYS,aAGtC+D,GAAYvE,KAAUlD,EAAAA,EAAAA,IAAazG,EAAM4E,QAAQ8I,SACvD,IAAI1D,EACAN,MAAAA,GAAAA,EAAYO,SAAWP,EAAWQ,UAC5BR,EAAWQ,UACXR,MAAAA,GAAAA,EAAYS,YAAcT,EAAWU,aACrCV,EAAWU,aACX,IACVJ,EAAe,GAAGA,KAAgBL,EAAQE,EAAuB,KACjE,MAAMqb,EAAoBpW,IAAiBpF,MAAAA,OAAU,EAAVA,EAAYQ,aAAasD,MAAAA,OAAQ,EAARA,EAAUlO,MACxEgmB,EAAe,GAAG1b,KAAyBI,IAC3CK,EAAiB,GAAGP,KAAuB0D,MAAAA,OAAQ,EAARA,EAAUlO,QAAQ4O,EAAWrE,EAAuB,KAErG,MAAO,CACHhJ,UAAW,CAAE2kB,sCAAuCA,GACpDzG,WAAYA,EACZmG,oBAAqBA,EACrBxb,WAAYA,EACZM,aAAcA,EACdsb,aAAcA,EACdjb,eAAgBA,EAChBkb,kBAAmBvlB,EAAMulB,oBA+DuBW,CAAwBlmB,EAAO+e,GAE7EsG,GAAqBvG,EAAAA,EAAAA,GAAuB9e,EAAM4E,QAAQC,cAAeka,GAEzEoE,GAAUC,EAAAA,EAAAA,kBAAiB,QAASpjB,EAAMwa,iBAAmB6I,EAAAA,kBAAkBC,cAC/EC,GAAyBC,EAAAA,EAAAA,wBAAuBxjB,EAAMwa,iBAAmB2I,GAE/E,MAAO,CACH/jB,IAAAA,cAAC+mB,EAAAA,mBAAkB,CACfvhB,QAAS5E,EAAM4E,QACfY,GAAIxF,EAAMwF,GACVC,SAAUzF,EAAMyF,SAChBpF,KAAM,GACNuhB,IAAK,OAAOhH,MACZwL,YAAaC,EAAAA,qBAAqBC,KAClCC,YAAavmB,EAAMulB,oBAAsBvlB,EAAMwmB,cAE9CzB,EAA4BK,IAEjChmB,IAAAA,cAAC+mB,EAAAA,mBAAkB,CACfvhB,QAAS5E,EAAM4E,QACfY,GAAIxF,EAAMwF,GACVC,SAAUzF,EAAMyF,SAChBpF,KAAM,GACNuhB,IAAK,OAAOhH,MACZwL,YAAaC,EAAAA,qBAAqBC,KAClCC,WAAW,GAEVpB,EAA0BC,EAAsBC,IAErDjmB,IAAAA,cAAC+mB,EAAAA,mBAAkB,CACfvhB,QAAS5E,EAAM4E,QACfY,GAAIxF,EAAMwF,GACVC,SAAUzF,EAAMyF,SAChBpF,KAAM,GACNuhB,IAAK,OAAOhH,MACZwL,YAAaC,EAAAA,qBAAqBC,KAClCC,YAAavmB,EAAM0K,kBAAoB1K,EAAMwmB,cAE5CP,GAEL7mB,IAAAA,cAAC+mB,EAAAA,mBAAkB,CACfvhB,QAAS5E,EAAM4E,QACfY,GAAIxF,EAAMwF,GACVC,SAAUzF,EAAMyF,SAChBpF,KAAM,GACNuhB,IAAK,OAAOhH,MACZwL,YAAaC,EAAAA,qBAAqBI,OAClCF,WAAYvmB,EAAMwmB,cAEjBb,GAELvmB,IAAAA,cAAC+mB,EAAAA,mBAAkB,CACfvhB,QAAS5E,EAAM4E,QACfY,GAAIxF,EAAMwF,GACVC,SAAUzF,EAAMyF,SAChBpF,KAAM,GACNuhB,IAAK,OAAOhH,MACZwL,YAAaC,EAAAA,qBAAqBK,OAClCH,WAAYvmB,EAAMwmB,cAEjBZ,GAELxmB,IAAAA,cAAC+mB,EAAAA,mBAAkB,CACfvhB,QAAS5E,EAAM4E,QACfY,GAAIxF,EAAMwF,GACVC,SAAUzF,EAAMyF,SAChBpF,KAAM,GACNuhB,IAAK,OAAOhH,MACZwL,YAAaC,EAAAA,qBAAqBjY,KAClCmY,WAAYvmB,EAAMwmB,cAEjBxC,EAAWhkB,EAAM4E,QAASma,EAAW5Q,kBAE1C/O,IAAAA,cAAC+mB,EAAAA,mBAAkB,CACfvhB,QAAS5E,EAAM4E,QACfY,GAAIxF,EAAMwF,GACVC,SAAUzF,EAAMyF,SAChBpF,KAAM,GACNuhB,IAAK,OAAOhH,MACZwL,YAAaC,EAAAA,qBAAqBC,KAClCC,WAAW,GAEVR,GAEL3mB,IAAAA,cAAC+mB,EAAAA,mBAAkB,CACfvhB,QAAS5E,EAAM4E,QACfY,GAAIxF,EAAMwF,GACVC,SAAUzF,EAAMyF,SAChBpF,KAAM,GACNuhB,IAAK,OAAOhH,MACZvb,UAAWsS,GAAAA,CAAWmS,GACtBsC,YAAaC,EAAAA,qBAAqBC,KAClCC,WAAW,GAEXnnB,IAAAA,cAACunB,EAAAA,oBAAmB,CAChB/hB,QAAS5E,EAAM4E,QACfY,GAAIxF,EAAMwF,GACVC,SAAUzF,EAAMyF,SAChBpF,KAAM,GACNumB,UAAW5mB,EAAMa,UAAUgmB,uCAE3BznB,IAAAA,cAAC0C,EAAAA,OAAMmK,OAAAC,OAAA,CACH7M,UAAW0kB,EACXhiB,KAAMsjB,MAAAA,EAAAA,EAAsB,GAC5B/jB,MAAwD,QAAnDY,EAAElC,EAAMa,UAAUimB,yCAAiC,IAAA5kB,EAAAA,EAAI,GAAE,aACI,QADJC,EAClDnC,EAAMa,UAAUkmB,8CAAsC,IAAA5kB,EAAAA,EAAInC,EAAMa,UAAUimB,mCAClFvD,GAEHvjB,EAAMa,UAAUimB,uCAsHxBE,EAAiI/E,EAAAA,GAAiB5B,gBAG7J,sDAAuD,CAAEC,UA5GvDtgB,IACA,IAAAoC,EAAA6kB,EACA,OACI7nB,IAAAA,cAAC8nB,EAAAA,eAAc,CACXtiB,QAAS5E,EAAM4E,QACfY,GAAIxF,EAAMwF,GACVC,SAAUzF,EAAMyF,SAChBpF,KAAM,GACNhB,UAAWsS,GAAAA,CAAW3R,EAAMX,UAAW2gB,IAEvC5gB,IAAAA,cAAC+nB,EAAAA,qBAAoB,CAACviB,QAAS5E,EAAM4E,QAASY,GAAIxF,EAAMwF,GAAIC,SAAUzF,EAAMyF,SAAUpF,KAAM,IACxFjB,IAAAA,cAAC+mB,EAAAA,mBAAkB,CACfvhB,QAAS5E,EAAM4E,QACfY,GAAIxF,EAAMwF,GACVC,SAAUzF,EAAMyF,SAChBpF,KAAM,GACN+lB,YAAaC,EAAAA,qBAAqBC,KAClCC,YAAavmB,EAAMulB,oBAAsBvlB,EAAMwmB,cAET,QAFqBpkB,EAE1DpC,EAAMa,UAAU+I,6BAAqB,IAAAxH,EAAAA,EAAI,IAE9ChD,IAAAA,cAAC+mB,EAAAA,mBAAkB,CACfvhB,QAAS5E,EAAM4E,QACfY,GAAIxF,EAAMwF,GACVC,SAAUzF,EAAMyF,SAChBpF,KAAM,GACNhB,UAAWsS,GAAAA,CAAW3R,EAAMwmB,aAAe3C,EAAwB,IACnEuC,YAAaC,EAAAA,qBAAqBC,KAClCC,WAAW,GAEVvmB,EAAMa,UAAUumB,6BAErBhoB,IAAAA,cAAC+mB,EAAAA,mBAAkB,CACfvhB,QAAS5E,EAAM4E,QACfY,GAAIxF,EAAMwF,GACVC,SAAUzF,EAAMyF,SAChBpF,KAAM,GACN+lB,YAAaC,EAAAA,qBAAqBC,KAClCC,YAAavmB,EAAM0K,kBAAoB1K,EAAMwmB,cAE5CxmB,EAAMa,UAAUwmB,wBAErBjoB,IAAAA,cAAC+mB,EAAAA,mBAAkB,CACfvhB,QAAS5E,EAAM4E,QACfY,GAAIxF,EAAMwF,GACVC,SAAUzF,EAAMyF,SAChBpF,KAAM,GACN+lB,YAAaC,EAAAA,qBAAqBI,OAClCF,WAAYvmB,EAAMwmB,cAEjBxmB,EAAMa,UAAUymB,uBAErBloB,IAAAA,cAAC+mB,EAAAA,mBAAkB,CACfvhB,QAAS5E,EAAM4E,QACfY,GAAIxF,EAAMwF,GACVC,SAAUzF,EAAMyF,SAChBpF,KAAM,GACN+lB,YAAaC,EAAAA,qBAAqBK,OAClCH,WAAYvmB,EAAMwmB,cAEjBxmB,EAAMa,UAAU0mB,uBAErBnoB,IAAAA,cAAC+mB,EAAAA,mBAAkB,CACfvhB,QAAS5E,EAAM4E,QACfY,GAAIxF,EAAMwF,GACVC,SAAUzF,EAAMyF,SAChBpF,KAAM,GACN+lB,YAAaC,EAAAA,qBAAqBjY,KAClCmY,WAAYvmB,EAAMwmB,cAEjBxmB,EAAMa,UAAU2mB,6BAErBpoB,IAAAA,cAAC+mB,EAAAA,mBAAkB,CACfvhB,QAAS5E,EAAM4E,QACfY,GAAIxF,EAAMwF,GACVC,SAAUzF,EAAMyF,SAChBpF,KAAM,GACN+lB,YAAaC,EAAAA,qBAAqBC,KAClCC,WAAW,GAEVvmB,EAAMa,UAAU4mB,6BAErBroB,IAAAA,cAAC+mB,EAAAA,mBAAkB,CACfvhB,QAAS5E,EAAM4E,QACfY,GAAIxF,EAAMwF,GACVC,SAAUzF,EAAMyF,SAChBpF,KAAM,GACN+lB,YAAaC,EAAAA,qBAAqBC,KAClCC,WAAW,KAGI,QADAU,EACtBjnB,EAAMK,KAAKkgB,mBAAW,IAAA0G,OAAA,EAAtBA,EAAwB5f,KAAI,CAAC0X,EAAwBnE,IAE9Cxb,IAAAA,cAACsoB,EAAAA,kBAAiB,CAAC9iB,QAAS5E,EAAM4E,QAASY,GAAIxF,EAAMwF,GAAIC,SAAUzF,EAAMyF,SAAUpF,KAAM,GAAIuhB,IAAK,OAAOhH,KACpG8K,EAA6B1lB,EAAO4a,EAAOmE,iPCtcpE,MAAMiB,EAAqB,sEACrB2H,EAAkB,GAAG3H,YACrB4H,EAAwB,GAAG5H,mBAC3B6H,EAA0B,GAAG7H,qBAe5B,IAAK8H,GAAZ,SAAYA,GACRA,EAAAA,EAAA,6BACAA,EAAAA,EAAA,uCAFJ,CAAYA,IAAAA,EAA6D,KA6BzE,MA8DaC,EAA6J9F,EAAAA,GAAiB5B,gBAGzL,oEAAqE,CACnEC,UAjEAtgB,IACA,IAAA2C,EAAAqlB,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAEA,IAAKhpB,EAAMK,KAAKmN,SAASiB,WACrB,OAAOrP,IAAAA,cAAA,OAAKC,UAAWsS,GAAAA,CAAW3R,EAAMX,UAAW2gB,KAGvD,MAAOiJ,EAAeC,GAAoB9pB,IAAAA,SAAeY,EAAMmpB,sBAEzDC,EAAkBC,IACpBH,EAAiBG,GACjBrpB,EAAM8R,SAASuX,IAIbC,GAAoC9F,EAAAA,EAAAA,wBACtCxjB,EAAMwa,kBACN4I,EAAAA,EAAAA,kBAAiB,QAASpjB,EAAMwa,iBAA0D,QAAzC7X,EAAiB,QAAjBqlB,EAAEhoB,EAAMa,iBAAS,IAAAmnB,OAAA,EAAfA,EAAiBuB,8BAAsB,IAAA5mB,EAAAA,EAAI,+BAE5F6mB,GAAgChG,EAAAA,EAAAA,wBAClCxjB,EAAMwa,kBACN4I,EAAAA,EAAAA,kBAAiB,QAASpjB,EAAMwa,iBAA0D,QAAzCyN,EAAiB,QAAjBC,EAAEloB,EAAMa,iBAAS,IAAAqnB,OAAA,EAAfA,EAAiBqB,8BAAsB,IAAAtB,EAAAA,EAAI,2BAGlG,OACI7oB,IAAAA,cAAA,OAAKC,UAAWsS,GAAAA,CAAW3R,EAAMX,UAAW2gB,IACxC5gB,IAAAA,cAAC0C,EAAAA,OAAMmK,OAAAC,OAAA,CACH7M,UAAWsS,GAAAA,CACPgW,EACAsB,IAAkBnB,EAA8D2B,YAC1E7B,EACAC,GACT,aACsD,QADtDM,EAC0B,QAD1BC,EACWpoB,EAAMa,iBAAS,IAAAunB,OAAA,EAAfA,EAAiBsB,kCAA0B,IAAAvB,EAAAA,EAAmB,QAAnBE,EAAIroB,EAAMa,iBAAS,IAAAwnB,OAAA,EAAfA,EAAiBkB,uBAC5EjoB,MAAkD,QAA7CgnB,EAAiB,QAAjBC,EAAEvoB,EAAMa,iBAAS,IAAA0nB,OAAA,EAAfA,EAAiBmB,kCAA0B,IAAApB,EAAAA,EAAmB,QAAnBE,EAAIxoB,EAAMa,iBAAS,IAAA2nB,OAAA,EAAfA,EAAiBe,uBACvEtG,QAASA,IAAMmG,EAAetB,EAA8D2B,cACxFH,GAEY,QAFqBb,EAEpCzoB,EAAMa,iBAAS,IAAA4nB,OAAA,EAAfA,EAAiBc,wBAEtBnqB,IAAAA,cAAC0C,EAAAA,OAAMmK,OAAAC,OAAA,CACH7M,UAAWsS,GAAAA,CACPgW,EACAsB,IAAkBnB,EAA8D6B,iBAC1E/B,EACAC,GACT,aAC2D,QAD3Da,EAC0B,QAD1BC,EACW3oB,EAAMa,iBAAS,IAAA8nB,OAAA,EAAfA,EAAiBiB,uCAA+B,IAAAlB,EAAAA,EAAmB,QAAnBE,EAAI5oB,EAAMa,iBAAS,IAAA+nB,OAAA,EAAfA,EAAiBiB,4BACjFvoB,MAAuD,QAAlDunB,EAAiB,QAAjBC,EAAE9oB,EAAMa,iBAAS,IAAAioB,OAAA,EAAfA,EAAiBc,uCAA+B,IAAAf,EAAAA,EAAmB,QAAnBE,EAAI/oB,EAAMa,iBAAS,IAAAkoB,OAAA,EAAfA,EAAiBc,4BAC5E5G,QAASA,IAAMmG,EAAetB,EAA8D6B,mBACxFH,GAEY,QAFiBR,EAEhChpB,EAAMa,iBAAS,IAAAmoB,OAAA,EAAfA,EAAiBa,wOC/FlC,MAAM7J,EAAqB,8DACrB8J,EAAuB,GAAG9J,mBAC1B+J,EAAoB,GAAG/J,eACvBgK,EAAwB,GAAGhK,cAa1B,IAAKiK,GAAZ,SAAYA,GACRA,EAAAA,EAAA,+BACAA,EAAAA,EAAA,uBAFJ,CAAYA,IAAAA,EAA6C,KAqBzD,MAmDaC,EAA6HjI,EAAAA,GAAiB5B,gBAGzJ,oDAAqD,CAAEC,UArDrDtgB,IACA,IAAAmqB,EAAAnC,EAAAoC,EAAAlC,EAAAmC,EAAAjC,EAAAkC,EAAAjC,EACA,MAAOkC,EAAeC,GAAoBprB,IAAAA,SAAeY,EAAMyqB,sBAEzDrB,EAAkBsB,IACpBF,EAAiBE,GACjB1qB,EAAMijB,QAAQyH,IAIZC,GAAiCnH,EAAAA,EAAAA,wBACnCxjB,EAAMwa,kBACN4I,EAAAA,EAAAA,kBAAiB,QAASpjB,EAAMwa,iBAAmB,GAAG6I,EAAAA,kBAAkBuH,6BAEtEC,GAA6BrH,EAAAA,EAAAA,wBAC/BxjB,EAAMwa,kBACN4I,EAAAA,EAAAA,kBAAiB,QAASpjB,EAAMwa,iBAAmB,GAAG6I,EAAAA,kBAAkBuH,yBAG5E,OACIxrB,IAAAA,cAAA,OAAKC,UAAWsS,GAAAA,CAAW3R,EAAMX,UAAW2gB,IACxC5gB,IAAAA,cAAC0C,EAAAA,OAAMmK,OAAAC,OAAA,CACH7M,UAAWsS,GAAAA,CACPmY,EACAS,IAAkBN,EAA8Ca,aAAed,EAAwB,IAC1G,aACuD,QADvDG,EAC0B,QAD1BnC,EACWhoB,EAAMa,iBAAS,IAAAmnB,OAAA,EAAfA,EAAiB+C,mCAA2B,IAAAZ,EAAAA,EAAI,GAC5D7oB,MAAmD,QAA9C8oB,EAAiB,QAAjBlC,EAAEloB,EAAMa,iBAAS,IAAAqnB,OAAA,EAAfA,EAAiB6C,mCAA2B,IAAAX,EAAAA,EAAI,GACvDpH,KAAK,SACLC,QAASA,IAAMmG,EAAea,EAA8Ca,eACxEH,IAERvrB,IAAAA,cAAC0C,EAAAA,OAAMmK,OAAAC,OAAA,CACH7M,UAAWsS,GAAAA,CACPoY,EACAQ,IAAkBN,EAA8Ce,SAAWhB,EAAwB,IACtG,aACmD,QADnDK,EAC0B,QAD1BjC,EACWpoB,EAAMa,iBAAS,IAAAunB,OAAA,EAAfA,EAAiB6C,+BAAuB,IAAAZ,EAAAA,EAAI,GACxD/oB,MAA+C,QAA1CgpB,EAAiB,QAAjBjC,EAAEroB,EAAMa,iBAAS,IAAAwnB,OAAA,EAAfA,EAAiB4C,+BAAuB,IAAAX,EAAAA,EAAI,GACnDtH,KAAK,SACLC,QAASA,IAAMmG,EAAea,EAA8Ce,WACxEH","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/expand-button-state.ts?0e6f","webpack://Msdyn365.Commerce.Online/./src/common/sales-line-state.ts?3828","webpack://Msdyn365.Commerce.Online/./src/common/label.tsx?9c2c","webpack://Msdyn365.Commerce.Online/./src/common/utilities.ts?0172","webpack://Msdyn365.Commerce.Online/./src/modules/order-history-with-search-and-filters/common/get-sales-order.ts?e014","webpack://Msdyn365.Commerce.Online/./src/modules/order-history-with-search-and-filters/components/order-history-with-search-and-filters-header.component.tsx?3609","webpack://Msdyn365.Commerce.Online/./src/modules/order-history-with-search-and-filters/components/order-history-with-search-and-filters-order-list.component.tsx?9f7d","webpack://Msdyn365.Commerce.Online/./src/modules/order-history-with-search-and-filters/components/order-history-with-search-and-filters-order-table.component.tsx?c86f","webpack://Msdyn365.Commerce.Online/./src/modules/order-history-with-search-and-filters/components/order-history-with-search-and-filters-organization-wide-selector.component.tsx?b9a7","webpack://Msdyn365.Commerce.Online/./src/modules/order-history-with-search-and-filters/components/order-history-with-search-and-filters-view-mode-selector.component.tsx?6452"],"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\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 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 { ChannelIdentity, Customer, OrderOriginator, OrderShipments, OrgUnitLocation, SalesOrder } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions } 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 { isOboRequest } from '@msdyn365-commerce/core';\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}\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];\n isB2bAdmin?: boolean;\n isOnlineStore?: boolean;\n priceCurrency?: string;\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}\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 * 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\nconst getPlacedBy = (\n moduleName: string,\n originator: OrderOriginator | undefined,\n isYou: [boolean, boolean] | 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 placedByName =\n originator.StaffId && originator.StaffName\n ? originator.StaffName\n : originator.CustomerId && originator.CustomerName\n ? originator.CustomerName\n : '-';\n const onBehalfOfText = originator.StaffId && originator.StaffName && originator.CustomerId && originator.CustomerName;\n placedByNode = (\n
\n {orderPlacedByFullText} {placedByName} {isYou && isYou[0] && ` ${orderPlacedByYouText}`}\n {onBehalfOfText && (\n
\n {orderOnBehalfOfText} {`${originator.CustomerName}`}\n {isYou && isYou[1] && ` ${orderPlacedByYouText}`}\n
\n )}\n
\n );\n }\n\n return placedByNode;\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 originator,\n isYou,\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 },\n isSalesInvoice,\n shouldShowQrCode,\n priceCurrency\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(moduleName, originator, isYou, orderPlacedByFullText, orderPlacedByYouText, orderOnBehalfOfText),\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 };\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 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 const isYou =\n !isOboRequest(props.context.request) &&\n originator?.CustomerId &&\n originator?.CustomerName &&\n !originator?.StaffId &&\n !originator?.StaffName &&\n customer?.AccountNumber === originator?.CustomerId\n ? true\n : false;\n const isYouObo = !isYou && !isOboRequest(props.context.request);\n\n return {\n moduleName,\n createdDate: (order.CreatedDateTime && new Date(order.CreatedDateTime).toLocaleDateString(locale)) || '',\n salesId: order.SalesId,\n priceCurrency: order.CurrencyCode,\n originator: originator,\n isYou: [isYou, isYouObo],\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 };\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}\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\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 },\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 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 * 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 { observable } from 'mobx';\n\n/**\n * Represents state of the expand button.\n */\nexport class ExpandButtonState {\n @observable public extraProductsCount: number;\n\n public constructor(extraProductsCount: number) {\n this.extraProductsCount = extraProductsCount;\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { observable } from 'mobx';\n\n/**\n * Represents state of the sales line product.\n */\nexport class SalesLineState {\n @observable public isHidden?: boolean;\n\n public stateId: string;\n\n public constructor(stateId: string, isHidden?: boolean) {\n this.stateId = stateId;\n this.isHidden = isHidden;\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","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IActionContext, getUrlSync } from '@msdyn365-commerce/core-internal';\nimport { SalesOrder, SalesStatus } from '@msdyn365-commerce/retail-proxy';\nimport { StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\n\n/**\n * Resources for order status.\n */\nexport interface IOrderHistoryWithSearchAndFiltersOrderStatusResources {\n orderStatusCreated: string;\n orderStatusDelivered: string;\n orderStatusInvoiced: string;\n orderStatusCanceled: string;\n}\n\n/**\n * Retrieves the url for order details page.\n * @param actionContext - Core action context.\n * @param salesOrder - Order information.\n * @returns Url to order details.\n */\nexport const getOrderDetailsPageUrl = (actionContext: IActionContext, salesOrder: SalesOrder): string => {\n const orderDetailsUrl = getUrlSync('orderDetails', actionContext) || '';\n const separator = orderDetailsUrl.includes('?') ? '&' : '?';\n if (!StringExtensions.isNullOrWhitespace(salesOrder.SalesId)) {\n // Redirect with sales order sales id\n return `${orderDetailsUrl}${separator}salesId=${salesOrder.SalesId}`;\n }\n\n // Redirect with sales order transaction id\n return `${orderDetailsUrl}${separator}transactionId=${salesOrder.Id}`;\n};\n\n/**\n * Retrieves the text for order status.\n * @param status - The sales order.\n * @param resources - Resources where we can find the text.\n * @returns The text for the order status.\n */\nexport const getOrderStatusLabel = (\n status: SalesStatus | undefined,\n resources: IOrderHistoryWithSearchAndFiltersOrderStatusResources\n): string => {\n switch (status) {\n case SalesStatus.Created:\n return resources.orderStatusCreated;\n case SalesStatus.Delivered:\n return resources.orderStatusDelivered;\n case SalesStatus.Invoiced:\n return resources.orderStatusInvoiced;\n case SalesStatus.Canceled:\n return resources.orderStatusCanceled;\n default:\n return '';\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 Msdyn365 from '@msdyn365-commerce/core';\nimport { Node } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport classnames from 'classnames';\n\nimport { SalesOrder } from '@msdyn365-commerce/retail-proxy';\n\n/**\n * Class names used in component.\n */\nconst componentClassName = 'ms-order-history-with-search-and-filters-header';\nconst headingClassName = `${componentClassName}__heading`;\nconst orderCountClassName = `${componentClassName}__order-count`;\n\n/**\n * IOrderHistoryWithSearchAndFiltersHeaderResources interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersHeaderResources {\n orderCountLabel: string;\n ordersCountLabel: string;\n}\n\n/**\n * IOrderHistoryWithSearchAndFiltersHeaderData interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersHeaderData {\n salesOrders: SalesOrder[];\n}\n\n/**\n * IOrderHistoryWithSearchAndFiltersHeaderProps interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersHeaderProps\n extends Msdyn365.IComponentProps {\n className?: string;\n resources: IOrderHistoryWithSearchAndFiltersHeaderResources;\n textProps: Msdyn365.ITextProps;\n showOrderCount: boolean;\n extraActions?: React.ReactNode;\n onChange(event: Msdyn365.ContentEditableEvent): void;\n}\n\n/**\n * OrderHistoryWithSearchAndFiltersHeader component.\n * @param props - Configuration of the component.\n * @returns React node.\n */\nconst OrderHistoryWithSearchAndFiltersHeaderFunctionalComponent: React.FC = (\n props: IOrderHistoryWithSearchAndFiltersHeaderProps\n) => {\n const {\n resources,\n data: { salesOrders },\n textProps,\n showOrderCount,\n extraActions\n } = props;\n\n const orderCount = salesOrders?.length;\n const orderCountText = `(${orderCount} ${orderCount === 1 ? resources?.orderCountLabel : resources?.ordersCountLabel})`;\n\n return (\n \n {textProps?.text && (\n \n )}\n {showOrderCount && {orderCountText}}\n {extraActions}\n \n );\n};\n\n/**\n * OrderHistoryWithSearchAndFiltersHeader component.\n */\nexport const OrderHistoryWithSearchAndFiltersHeaderComponent: React.FunctionComponent = Msdyn365.msdyn365Commerce.createComponent<\n // @ts-expect-error\n IOrderHistoryWithSearchAndFiltersHeaderProps\n>('OrderHistoryWithSearchAndFiltersHeaderComponent', { component: OrderHistoryWithSearchAndFiltersHeaderFunctionalComponent });\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport {\n Button,\n format,\n getPayloadObject,\n getTelemetryAttributes,\n ITelemetryContent,\n Node,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport {\n ChannelDeliveryOptionConfiguration,\n ChannelIdentity,\n Customer,\n OrderOriginator,\n OrgUnitLocation,\n SalesOrder,\n SimpleProduct\n} from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Observer } from 'mobx-react';\nimport React from 'react';\n\nimport classnames from 'classnames';\n\nimport { getGroups, IGroup, IGroupDelivery, IGroups } from '../../../common/get-groups';\nimport { getOrderInformation, getOrderInformationInput, IOrderInformation } from '../../../common/get-order-information';\nimport { ISalesLine } from '../../../common/get-sales-line';\nimport { getSalesLines, getSalesLinesInput, IGetSalesLinesInput } from '../../../common/get-sales-lines';\nimport { ExpandButtonState, IPriceContext, SalesLineState } from '../../../common';\nimport {\n IOrderHistoryWithSearchAndFiltersProps,\n IOrderHistoryWithSearchAndFiltersResources\n} from '../order-history-with-search-and-filters.props.autogenerated';\nimport { IOrderHistoryWithSearchAndFiltersData } from '../order-history-with-search-and-filters.data';\nimport { getOrderDetailsPageUrl } from '../common/get-sales-order';\n\n/**\n * Class names used in component.\n */\nconst componentClassName = 'ms-order-history-with-search-and-filters-order-list';\nconst orderListItemClassName = `${componentClassName}__sales-order`;\nconst orderInformationHeaderClassName = `${componentClassName}__sales-order__header`;\nconst expandProductsButtonClassName = `${componentClassName}__sales-order__expand-products-button`;\nconst expandProductsButtonWrapperClassName = `${componentClassName}__sales-order__expand-products-button-wrapper`;\nconst orderDetailButtonClassName = `${componentClassName}__btn-order-details`;\nconst moduleName = componentClassName;\n\n/**\n * IOrderHistoryWithSearchAndFiltersOrderListData interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersOrderListData {\n salesOrders: SalesOrder[];\n products: SimpleProduct[];\n channelIdentities?: ChannelIdentity[];\n orgUnitLocations?: OrgUnitLocation[];\n customer?: Customer;\n originators?: OrderOriginator[];\n}\n\n/**\n * IOrderHistoryWithSearchAndFiltersOrderListProps interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersOrderListProps extends IComponentProps {\n moduleProps: IOrderHistoryWithSearchAndFiltersProps;\n className?: string;\n resources: IOrderHistoryWithSearchAndFiltersResources;\n isMobileView?: boolean;\n showChannelInfo: boolean;\n showOrderPlacedBy?: boolean;\n salesLinesLimit?: number;\n telemetryContent?: ITelemetryContent;\n retailMultiplePickUpOptionEnabled?: boolean;\n channelDeliveryOptionConfig?: ChannelDeliveryOptionConfiguration;\n}\n\n/**\n * IOrderHistoryWithSearchAndFiltersOrderItemProps interface.\n */\ninterface IOrderHistoryWithSearchAndFiltersOrderItemProps {\n orderInfomation: IOrderInformation;\n groups?: IGroups;\n orderDetailsLink: React.ReactNode;\n expandProductsButton?: React.ReactNode;\n}\n\n/**\n * OrderInfomation component.\n * @param props - Configuration of the component.\n * @returns React node.\n */\nconst OrderInfomationComponent: React.FC = ({\n orderInformationProps,\n placedBy,\n salesId,\n receiptId,\n channelName,\n createdDate,\n count,\n amount,\n channelReferenceId\n}) => (\n \n {placedBy}\n
\n {channelName}\n {count}\n
\n {salesId}\n {receiptId}\n {createdDate}\n {amount}\n {channelReferenceId}\n
\n);\n\n/**\n * GroupDelivery component.\n * @param props - Configuration of the component.\n * @returns React node.\n */\nconst GroupDeliveryComponent: React.FC = ({ deliveryProps, heading, count, processing, address, trackingInfo }) => (\n \n {heading}\n {count}\n {processing}\n {address}\n {trackingInfo}\n \n);\n\n/**\n * Group component.\n * @param props - Configuration of the component.\n * @returns React node.\n */\nconst GroupComponent: React.FC = ({ groupProps, delivery, salesLinesProps, salesLines }) => (\n \n {delivery && }\n {salesLines && (\n \n {salesLines.map((salesLine: ISalesLine) => (\n {salesLine.salesLine}\n ))}\n \n )}\n \n);\n\n/**\n * Groups component.\n * @param props - Configuration of the component.\n * @returns React node.\n */\nconst GroupsComponent: React.FC = ({ groupsProps, groups }) => (\n \n {groups.map((group: IGroup, index: number) => (\n \n ))}\n \n);\n\n/**\n * Updates product states to show all products.\n * @param expandButtonState - Expand button state.\n * @param productStates - Product states.\n * @returns Callback method.\n */\nconst onExpandProductsCallback = (expandButtonState: ExpandButtonState, productStates: SalesLineState[]) => () => {\n for (const productState of productStates) {\n productState.isHidden = false;\n }\n expandButtonState.extraProductsCount = 0;\n};\n\n/**\n * Gets the IOrderHistoryWithSearchAndFiltersOrderItem configuration.\n * @param salesOrder The sales order\n * @param index The sales order index\n * @param props The component props\n * @returns The IOrderHistoryWithSearchAndFiltersOrderItem configuration.\n */\nconst createOrderHistoryWithSearchAndFiltersOrderItemProps = (\n salesOrder: SalesOrder,\n index: number,\n props: IOrderHistoryWithSearchAndFiltersOrderListProps\n): IOrderHistoryWithSearchAndFiltersOrderItemProps => {\n const {\n id,\n typeName,\n context,\n moduleProps: { telemetry },\n data: { products, channelIdentities, orgUnitLocations, customer, originators },\n showChannelInfo,\n telemetryContent,\n resources: { freePriceText, detailsAriaLabel, detailsLabel, orderItemLabel, orderItemsLabel },\n context: { actionContext },\n retailMultiplePickUpOptionEnabled,\n channelDeliveryOptionConfig\n } = props;\n\n const priceContext = {\n id,\n typeName,\n context,\n telemetry,\n freePriceText\n } as IPriceContext;\n\n const originator: OrderOriginator | undefined = originators?.find(\n originator =>\n (salesOrder.SalesId && originator.SalesId === salesOrder.SalesId) ||\n (salesOrder.Id && originator.TransactionId === salesOrder.Id)\n );\n\n const salesLinesInput =\n products &&\n getSalesLinesInput(\n props.moduleProps,\n moduleName,\n salesOrder,\n products,\n priceContext,\n undefined,\n undefined,\n undefined,\n retailMultiplePickUpOptionEnabled,\n channelDeliveryOptionConfig\n );\n\n let salesLines: ISalesLine[] | undefined;\n let expandProductsButton: React.ReactNode;\n if (salesLinesInput) {\n const getSalesLinesInputProps: IGetSalesLinesInput = { ...salesLinesInput, imageOnly: true };\n if (!ObjectExtensions.isNullOrUndefined(props.salesLinesLimit)) {\n const extraProductsCount = getSalesLinesInputProps.salesLines.length - props.salesLinesLimit;\n getSalesLinesInputProps.salesLineStates = getSalesLinesInputProps.salesLines.map(\n (salesLine, index) => new SalesLineState(`${salesLine.LineId ?? ''}-${index}`, index >= props.salesLinesLimit!)\n );\n if (extraProductsCount > 0) {\n const expandButtonState = new ExpandButtonState(extraProductsCount);\n expandProductsButton = (\n <>\n \n {() => {\n const text = format(\n props.resources.orderHistoryExpandProductsButtonText,\n expandButtonState.extraProductsCount\n );\n return (\n expandButtonState.extraProductsCount > 0 && (\n \n {text}\n \n )\n );\n }}\n \n \n );\n }\n }\n salesLines = getSalesLines(getSalesLinesInputProps);\n }\n\n expandProductsButton = (\n <>\n {expandProductsButton}\n
\n \n );\n\n const groups =\n salesLines &&\n getGroups({\n moduleName,\n salesLines,\n resources: { orderItemLabel, orderItemsLabel },\n retailMultiplePickUpOptionEnabled\n });\n\n const orderInfomationInput = getOrderInformationInput(\n props.moduleProps,\n moduleName,\n salesOrder,\n priceContext,\n channelIdentities,\n orgUnitLocations,\n customer,\n originator,\n showChannelInfo\n );\n\n const payLoad = getPayloadObject('click', telemetryContent!, TelemetryConstant.OrderDetails);\n const orderDetailsAttributes = getTelemetryAttributes(telemetryContent!, payLoad);\n\n const orderDetailsLink = (\n \n {detailsLabel}\n \n );\n\n return {\n orderInfomation: getOrderInformation(orderInfomationInput),\n groups: groups,\n orderDetailsLink: orderDetailsLink,\n expandProductsButton: expandProductsButton\n };\n};\n\n/**\n * OrderHistoryWithSearchAndFiltersOrderList component.\n * @param props - Configuration of the component.\n * @returns React node.\n */\nconst OrderHistoryWithSearchAndFiltersOrderListFunctionalComponent: React.FC = (\n props: IOrderHistoryWithSearchAndFiltersOrderListProps\n) => {\n return (\n \n {ArrayExtensions.hasElements(props.data.salesOrders) &&\n props.data.salesOrders.map((salesOrder: SalesOrder, index: number) => {\n const itemProps: IOrderHistoryWithSearchAndFiltersOrderItemProps = createOrderHistoryWithSearchAndFiltersOrderItemProps(\n salesOrder,\n index,\n props\n );\n return (\n \n {itemProps.orderInfomation && }\n {itemProps.groups && }\n {itemProps.expandProductsButton}\n {itemProps.orderDetailsLink}\n \n );\n })}\n \n );\n};\n\n/**\n * OrderHistoryWithSearchAndFiltersOrderList component.\n */\nexport const OrderHistoryWithSearchAndFiltersOrderListComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IOrderHistoryWithSearchAndFiltersOrderListProps\n>('OrderHistoryWithSearchAndFiltersOrderListComponent', { component: OrderHistoryWithSearchAndFiltersOrderListFunctionalComponent });\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponentProps, ICoreContext, IDateFormatOptions, msdyn365Commerce, isOboRequest } from '@msdyn365-commerce/core';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { ChannelIdentity, Customer, OrderOriginator, OrgUnitLocation, SalesOrder } from '@msdyn365-commerce/retail-proxy';\nimport {\n ActionMenuComponent,\n TableCellComponent,\n TableComponent,\n TableCellContentType,\n TableHeaderComponent,\n TableRowComponent\n} from '@msdyn365-commerce/components';\nimport React from 'react';\n\nimport classnames from 'classnames';\n\nimport {\n Button,\n ITelemetryContent,\n TelemetryConstant,\n getPayloadObject,\n getTelemetryAttributes\n} from '@msdyn365-commerce-modules/utilities';\nimport { countItems, getOrderChannelAddress, getOrderChannelName, getOrderChannelTypeValue, isOnlineStoreChannel } from '../../../common';\nimport {\n IOrderHistoryWithSearchAndFiltersOrderStatusResources,\n getOrderDetailsPageUrl,\n getOrderStatusLabel\n} from '../common/get-sales-order';\n\n/**\n * Class names used in component.\n */\nconst componentClassName = 'ms-order-history-with-search-and-filters-order-table';\nconst placedByClassName = `${componentClassName}__row__placed-by`;\nconst orderNumberClassName = `${componentClassName}__row__order-number`;\nconst columnMobileClassName = `${componentClassName}__row__mobile-cell`;\nconst actionsClassName = `${componentClassName}__row__actions`;\nconst viewDetailsMenuItemClassName = `${componentClassName}__row__view-details-action`;\n\n/**\n * IOrderHistoryWithSearchAndFiltersOrderTableResources interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersOrderTableResources extends IOrderHistoryWithSearchAndFiltersOrderStatusResources {\n orderHistoryOrderNumberText: string;\n orderHistoryCreatedDateText: string;\n orderHistoryItemsText: string;\n orderHistoryTotalText: string;\n orderHistoryOriginText: string;\n orderHistoryOrderStatusText: string;\n orderHistoryActionMenuButtonAriaLabel: string;\n orderHistoryViewDetailsButtonText: string;\n orderHistoryViewDetailsButtonAriaLabel: string;\n orderHistoryCreatedDateMobileDescriptionText: string;\n orderHistoryOrderNumberIsNotAvailable: string;\n onlineStoreChannelNameText: string;\n posChannelNameText: string;\n orderPlacedByFullText?: string;\n orderPlacedByYouText?: string;\n orderOnBehalfOfText?: string;\n}\n\n/**\n * IOrderHistoryWithSearchAndFiltersOrderTableData interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersOrderTableData {\n salesOrders: SalesOrder[];\n channelIdentities?: ChannelIdentity[];\n orgUnitLocations?: OrgUnitLocation[];\n customer?: Customer;\n originators?: OrderOriginator[];\n}\n\n/**\n * IOrderHistoryWithSearchAndFiltersOrderTableProps interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersOrderTableProps extends IComponentProps {\n className?: string;\n resources: IOrderHistoryWithSearchAndFiltersOrderTableResources;\n isMobileView?: boolean;\n showChannelInfo: boolean;\n showOrderPlacedBy?: boolean;\n telemetryContent?: ITelemetryContent;\n}\n\ninterface IOnBehalfOfOrderResources {\n orderHistoryOrderNumberIsNotAvailable?: string;\n}\n\ninterface IOnBehalfOfOrderProps {\n salesOrder: SalesOrder;\n isOnBehalfOfOrder: boolean;\n originator?: OrderOriginator;\n placedByName: string;\n placedByText: string;\n onBehalfOfText: string;\n showOrderPlacedBy?: boolean;\n resources: IOnBehalfOfOrderResources;\n}\n\n/**\n * Formats amount.\n * @param context - Core context.\n * @param amount - Amount to display.\n * @param currencyCode - Currency for the amount.\n * @returns String value.\n */\nconst formatAmount = (context: ICoreContext, amount: number | undefined, currencyCode: string | undefined) => {\n if (amount === undefined) {\n return '';\n }\n return context.cultureFormatter.formatCurrency(amount, currencyCode);\n};\n\n/**\n * Formats date.\n * @param context - Core context.\n * @param date - Date to display.\n * @returns String value.\n */\nconst formatDate = (context: ICoreContext, date: Date | undefined) => {\n if (date === undefined) {\n return '';\n }\n\n const dateOptions: IDateFormatOptions = { year: 'numeric', month: 'short', day: 'numeric' };\n return context.cultureFormatter.formatDate(date, dateOptions);\n};\n\nconst getShortEllipsisText = (originalText: string, maxTextLength: number) => {\n const isRtl = document.body.parentElement?.getAttribute('dir') === 'rtl';\n return originalText.length > maxTextLength\n ? isRtl\n ? `…${originalText.substring(0, maxTextLength - 1)}`\n : `${originalText.substring(0, maxTextLength - 1)}…`\n : originalText;\n};\n\nconst getOnBehalfOfOrderProps = (\n props: IOrderHistoryWithSearchAndFiltersOrderTableProps,\n salesOrder: SalesOrder\n): IOnBehalfOfOrderProps => {\n const {\n data: { channelIdentities, orgUnitLocations, customer, originators },\n resources: { orderPlacedByFullText, orderPlacedByYouText, orderOnBehalfOfText, orderHistoryOrderNumberIsNotAvailable }\n } = props;\n\n const channelAddress = getOrderChannelAddress(salesOrder, orgUnitLocations);\n const channelTypeValue = getOrderChannelTypeValue(salesOrder, channelIdentities);\n const isOnlineStore = isOnlineStoreChannel(channelTypeValue, channelAddress);\n\n const originator: OrderOriginator | undefined = originators?.find(\n originator =>\n (salesOrder.SalesId && originator.SalesId === salesOrder.SalesId) ||\n (salesOrder.Id && originator.TransactionId === salesOrder.Id)\n );\n\n const isYou =\n !isOboRequest(props.context.request) &&\n originator?.CustomerId &&\n originator?.CustomerName &&\n !originator?.StaffId &&\n !originator?.StaffName &&\n customer?.AccountNumber === originator?.CustomerId\n ? true\n : false;\n const isYouObo = !isYou && !isOboRequest(props.context.request);\n let placedByName =\n originator?.StaffId && originator.StaffName\n ? originator.StaffName\n : originator?.CustomerId && originator.CustomerName\n ? originator.CustomerName\n : '-';\n placedByName = `${placedByName} ${isYou ? orderPlacedByYouText : ''}`;\n const isOnBehalfOfOrder = isOnlineStore && originator?.StaffName && customer?.Name;\n const placedByText = `${orderPlacedByFullText} ${placedByName}`;\n const onBehalfOfText = `${orderOnBehalfOfText} ${customer?.Name} ${isYouObo ? orderPlacedByYouText : ''}`;\n\n return {\n resources: { orderHistoryOrderNumberIsNotAvailable: orderHistoryOrderNumberIsNotAvailable },\n salesOrder: salesOrder,\n isOnBehalfOfOrder: !!isOnBehalfOfOrder,\n originator: originator,\n placedByName: placedByName,\n placedByText: placedByText,\n onBehalfOfText: onBehalfOfText,\n showOrderPlacedBy: props.showOrderPlacedBy\n };\n};\n\nconst getOrderPlacedByCellContent = (props: IOnBehalfOfOrderProps): JSX.Element | null => {\n const maxOrderTextLength = window.innerWidth > 700 ? 20 : 12;\n return (\n \n {props.placedByName}\n {props.isOnBehalfOfOrder && (\n <>\n
{getShortEllipsisText(props.onBehalfOfText, maxOrderTextLength)}\n \n )}\n
\n );\n};\n\nconst getOrderNumberCellContent = (onBehalfOfOrderProps: IOnBehalfOfOrderProps, linkToOrderDetails: string): JSX.Element | null => {\n const maxOrderTextLength = window.innerWidth > 700 ? 20 : 12;\n const {\n salesOrder,\n isOnBehalfOfOrder,\n placedByText,\n showOrderPlacedBy,\n resources: { orderHistoryOrderNumberIsNotAvailable }\n } = onBehalfOfOrderProps;\n\n let orderNumberCellText = salesOrder.SalesId;\n if (StringExtensions.isNullOrWhitespace(orderNumberCellText)) {\n orderNumberCellText = orderHistoryOrderNumberIsNotAvailable;\n }\n\n return (\n <>\n \n {isOnBehalfOfOrder && !showOrderPlacedBy && (\n \n {getShortEllipsisText(placedByText, maxOrderTextLength)}\n \n )}\n \n );\n};\n\nconst getTableRowComponentChildren = (\n props: IOrderHistoryWithSearchAndFiltersOrderTableProps,\n index: number,\n salesOrder: SalesOrder\n): React.ReactElement[] => {\n const numItemsCellText: number = ArrayExtensions.hasElements(salesOrder.SalesLines) ? countItems(salesOrder.SalesLines) : 0;\n const totalAmountCellText: string = formatAmount(props.context, salesOrder.TotalAmount, salesOrder.CurrencyCode);\n\n const orderStatusCellText: string = getOrderStatusLabel(salesOrder.StatusValue, props.resources);\n\n const channelName: string = getOrderChannelName(salesOrder, props.data.channelIdentities);\n const channelAddress: string = getOrderChannelAddress(salesOrder, props.data.orgUnitLocations);\n const channelNameCellText: string =\n channelName &&\n (channelAddress ? `${props.resources.posChannelNameText} ${channelName}` : props.resources.onlineStoreChannelNameText);\n\n const onBehalfOfOrderProps: IOnBehalfOfOrderProps = getOnBehalfOfOrderProps(props, salesOrder);\n\n const linkToOrderDetails = getOrderDetailsPageUrl(props.context.actionContext, salesOrder);\n\n const payLoad = getPayloadObject('click', props.telemetryContent!, TelemetryConstant.OrderDetails);\n const orderDetailsAttributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\n\n return [\n \n {getOrderPlacedByCellContent(onBehalfOfOrderProps)}\n ,\n \n {getOrderNumberCellContent(onBehalfOfOrderProps, linkToOrderDetails)}\n ,\n \n {channelNameCellText}\n ,\n \n {numItemsCellText}\n ,\n \n {totalAmountCellText}\n ,\n \n {formatDate(props.context, salesOrder.CreatedDateTime)}\n ,\n \n {orderStatusCellText}\n ,\n \n \n \n {props.resources.orderHistoryViewDetailsButtonText}\n \n \n \n ];\n};\n\n/**\n * OrderHistoryWithSearchAndFiltersOrderTable component.\n * @param props - Configuration of the component.\n * @returns React node.\n */\nconst OrderHistoryWithSearchAndFiltersOrderTableFunctionalComponent: React.FC = (\n props: IOrderHistoryWithSearchAndFiltersOrderTableProps\n) => {\n return (\n \n \n \n {props.resources.orderPlacedByFullText ?? ''}\n \n \n {props.resources.orderHistoryOrderNumberText}\n \n \n {props.resources.orderHistoryOriginText}\n \n \n {props.resources.orderHistoryItemsText}\n \n \n {props.resources.orderHistoryTotalText}\n \n \n {props.resources.orderHistoryCreatedDateText}\n \n \n {props.resources.orderHistoryOrderStatusText}\n \n \n \n {props.data.salesOrders?.map((salesOrder: SalesOrder, index: number) => {\n return (\n \n {getTableRowComponentChildren(props, index, salesOrder)}\n \n );\n })}\n \n );\n};\n\n/**\n * OrderHistoryWithSearchAndFiltersOrderTable component.\n */\nexport const OrderHistoryWithSearchAndFiltersOrderTableComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IOrderHistoryWithSearchAndFiltersOrderTableProps\n>('OrderHistoryWithSearchAndFiltersOrderTableComponent', { component: OrderHistoryWithSearchAndFiltersOrderTableFunctionalComponent });\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { Customer } from '@msdyn365-commerce/retail-proxy';\nimport { Button, ITelemetryContent, getPayloadObject, getTelemetryAttributes } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport classnames from 'classnames';\n\n/**\n * Class names used in component.\n */\nconst componentClassName = 'ms-order-history-with-search-and-filters-organization-wide-selector';\nconst buttonClassName = `${componentClassName}__button`;\nconst buttonActiveClassName = `${componentClassName}__active-button`;\nconst buttonInactiveClassName = `${componentClassName}__inactive-button`;\n\n/**\n * IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorResources interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorResources {\n currentUserOptionLabel: string;\n currentUserOptionAriaLabel?: string;\n organizationWideOptionLabel: string;\n organizationWideOptionAriaLabel?: string;\n}\n\n/**\n * OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState interface.\n */\nexport enum OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState {\n CurrentUser,\n OrganizationWide\n}\n\n/**\n * IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorData interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorData {\n customer: Customer;\n}\n\n/**\n * IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorProps interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorProps\n extends IComponentProps {\n className?: string;\n resources: IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorResources;\n currentSelectorState: OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState;\n telemetryContent?: ITelemetryContent;\n onChange(state: OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState): void;\n}\n\n/**\n * OrderHistoryWithSearchAndFiltersOrganizationWideSelector component.\n * @param props - Configuration of the component.\n * @returns React node.\n */\nconst OrderHistoryWithSearchAndFiltersOrganizationWideSelectorFunctionalComponent: React.FC = (\n props: IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorProps\n) => {\n // Current version doesn't include functionality for non b2b users or non-admin b2b users.\n if (!props.data.customer.IsB2bAdmin) {\n return
;\n }\n\n const [selectorState, setSelectorState] = React.useState(props.currentSelectorState);\n\n const onClickHandler = (newSelectorState: OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState) => {\n setSelectorState(newSelectorState);\n props.onChange(newSelectorState);\n };\n\n // define telemetry attributes\n const currentUserOrderHistoryAttributes = getTelemetryAttributes(\n props.telemetryContent!,\n getPayloadObject('click', props.telemetryContent!, props.resources?.currentUserOptionLabel ?? 'Current user order history')\n );\n const orgWideOrderHistoryAttributes = getTelemetryAttributes(\n props.telemetryContent!,\n getPayloadObject('click', props.telemetryContent!, props.resources?.currentUserOptionLabel ?? 'Org wide order history')\n );\n\n return (\n
\n onClickHandler(OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState.CurrentUser)}\n {...currentUserOrderHistoryAttributes}\n >\n {props.resources?.currentUserOptionLabel}\n \n onClickHandler(OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState.OrganizationWide)}\n {...orgWideOrderHistoryAttributes}\n >\n {props.resources?.organizationWideOptionLabel}\n \n
\n );\n};\n\n/**\n * OrderHistoryWithSearchAndFiltersOrganizationWideSelector component.\n */\nexport const OrderHistoryWithSearchAndFiltersOrganizationWideSelectorComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorProps\n>('OrderHistoryWithSearchAndFiltersOrganizationWideSelectorComponent', {\n component: OrderHistoryWithSearchAndFiltersOrganizationWideSelectorFunctionalComponent\n});\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport {\n Button,\n ITelemetryContent,\n TelemetryConstant,\n getPayloadObject,\n getTelemetryAttributes\n} from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport classnames from 'classnames';\n\n/**\n * Class names used in component.\n */\nconst componentClassName = 'ms-order-history-with-search-and-filters-view-mode-selector';\nconst detailsViewClassName = `${componentClassName}__detailed-view`;\nconst listViewClassName = `${componentClassName}__list-view`;\nconst viewSelectedClassName = `${componentClassName}__selected`;\n\n/**\n * IOrderHistoryWithSearchAndFiltersViewModeResources interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersViewModeResources {\n listViewOptionAriaLabel?: string;\n detailedViewOptionAriaLabel?: string;\n}\n\n/**\n * OrderHistoryWithSearchAndFiltersViewModeState interface.\n */\nexport enum OrderHistoryWithSearchAndFiltersViewModeState {\n DetailedView,\n ListView\n}\n\n/**\n * IOrderHistoryWithSearchAndFiltersViewModeProps interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersViewModeProps extends IComponentProps<{}> {\n className?: string;\n resources?: IOrderHistoryWithSearchAndFiltersViewModeResources;\n currentViewModeState: OrderHistoryWithSearchAndFiltersViewModeState;\n telemetryContent?: ITelemetryContent;\n onClick(state: OrderHistoryWithSearchAndFiltersViewModeState): void;\n}\n\n/**\n * OrderHistoryWithSearchAndFiltersViewMode component.\n * @param props - Configuration of the component.\n * @returns React node.\n */\nconst OrderHistoryWithSearchAndFiltersViewModeFunctionalComponent: React.FC = (\n props: IOrderHistoryWithSearchAndFiltersViewModeProps\n) => {\n const [viewModeState, setViewModeState] = React.useState(props.currentViewModeState);\n\n const onClickHandler = (newViewModeState: OrderHistoryWithSearchAndFiltersViewModeState) => {\n setViewModeState(newViewModeState);\n props.onClick(newViewModeState);\n };\n\n // define telemetry attributes\n const viewModeDetailedViewAttributes = getTelemetryAttributes(\n props.telemetryContent!,\n getPayloadObject('click', props.telemetryContent!, `${TelemetryConstant.ViewMode} - Detailed view`)\n );\n const viewModeListViewAttributes = getTelemetryAttributes(\n props.telemetryContent!,\n getPayloadObject('click', props.telemetryContent!, `${TelemetryConstant.ViewMode} - List view`)\n );\n\n return (\n
\n onClickHandler(OrderHistoryWithSearchAndFiltersViewModeState.DetailedView)}\n {...viewModeDetailedViewAttributes}\n />\n onClickHandler(OrderHistoryWithSearchAndFiltersViewModeState.ListView)}\n {...viewModeListViewAttributes}\n />\n
\n );\n};\n\n/**\n * OrderHistoryWithSearchAndFiltersViewMode component.\n */\nexport const OrderHistoryWithSearchAndFiltersViewModeComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IOrderHistoryWithSearchAndFiltersViewModeProps\n>('OrderHistoryWithSearchAndFiltersViewModeComponent', { component: OrderHistoryWithSearchAndFiltersViewModeFunctionalComponent });\n"],"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","groupsProps","getChannelReference","channelReferenceId","confirmationIdLabel","shouldShowQrCode","qrCodeSrText","confirmationIdNode","QRCode","value","size","getPlacedBy","originator","isYou","orderPlacedByFullText","orderPlacedByYouText","orderOnBehalfOfText","placedByNode","placedByName","StaffId","StaffName","CustomerId","CustomerName","onBehalfOfText","getOrderInformation","channelName","channelAddress","channelTypeValue","showChannelInfo","receiptEmail","createdDate","amount","priceContext","salesId","receiptId","receiptEmailMessage","orderIdLabel","receiptIdLabel","posChannelNameText","onlineStoreChannelNameText","orderPlacedOnLabel","callCenterChannelNameText","isSalesInvoice","priceCurrency","channelNameNode","getChannelName","posChannelName","onlineChannelName","orderInformationProps","placedBy","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","customer","_order$TotalAmount","request","apiSettings","channelId","locale","get","SalesLines","countItems","AccountNumber","isYouObo","CreatedDateTime","Date","toLocaleDateString","SalesId","CurrencyCode","isB2bAdmin","IsB2bAdmin","ReceiptId","ReceiptEmail","ChannelReferenceId","TotalAmount","isOnlineStore","deliveryTypeEnum","onSelectLine","orderDetailsProduct","isSelected","SalesLineComponent","_props$product$Name","_props$product","_props$orderDetailsPr","_props$resources$ship","_props$product3","_props$product4","_props$moduleComponen2","productName","Description","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","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","buyAgainButton","errors","salesLineDeliveryMode","retailMultiplePickupOption","isPickupDeliveryMode","_channelDeliveryOptio","PickupDeliveryModeCodes","dM","defaultDeliveryOption","getDeliveryDescriptionByProductId","productRecordId","_productDeliveryOptio","productDeliveryOption","currentDeliveryOption","deliveryDescription","DeliveryOptions","option","Code","_salesLine$ShippingAd","getSalesLines","shipments","isCurrentChannel","telemetryContent","salesLineStates","productStates","isChannelMultipleCatalogsFeatureEnabled","index","currentShipment","_currentShipment$Ship","ShipmentLines","shipmentLine","InventoryTransactionId","currentProduct","productState","_salesLine$LineId","stateId","LineId","getSalesLinesInput","Shipments","ExpandButtonState","constructor","extraProductsCount","this","__decorate","observable","SalesLineState","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","getOrderDetailsPageUrl","salesOrder","orderDetailsUrl","separator","includes","StringExtensions","isNullOrWhitespace","Id","getOrderStatusLabel","status","SalesStatus","Created","orderStatusCreated","Delivered","orderStatusDelivered","Invoiced","orderStatusInvoiced","Canceled","componentClassName","headingClassName","orderCountClassName","OrderHistoryWithSearchAndFiltersHeaderComponent","Msdyn365","createComponent","component","salesOrders","textProps","showOrderCount","extraActions","orderCount","orderCountText","orderCountLabel","ordersCountLabel","Node","text","tag","editProps","onEdit","orderListItemClassName","orderInformationHeaderClassName","expandProductsButtonClassName","expandProductsButtonWrapperClassName","orderDetailButtonClassName","OrderInfomationComponent","GroupDeliveryComponent","GroupComponent","key","GroupsComponent","onExpandProductsCallback","expandButtonState","OrderHistoryWithSearchAndFiltersOrderListComponent","msdyn365Commerce","itemProps","createOrderHistoryWithSearchAndFiltersOrderItemProps","moduleProps","telemetry","originators","detailsAriaLabel","detailsLabel","TransactionId","salesLinesInput","expandProductsButton","getSalesLinesInputProps","_objectSpread","salesLinesLimit","orderHistoryExpandProductsButtonText","role","onClick","orderInfomationInput","payLoad","getPayloadObject","TelemetryConstant","OrderDetails","orderDetailsAttributes","getTelemetryAttributes","orderDetailsLink","orderInfomation","placedByClassName","orderNumberClassName","columnMobileClassName","actionsClassName","viewDetailsMenuItemClassName","formatDate","cultureFormatter","year","month","day","getShortEllipsisText","originalText","maxTextLength","_document$body$parent","isRtl","document","body","parentElement","getAttribute","substring","getOrderPlacedByCellContent","maxOrderTextLength","innerWidth","isOnBehalfOfOrder","getOrderNumberCellContent","onBehalfOfOrderProps","linkToOrderDetails","placedByText","showOrderPlacedBy","orderHistoryOrderNumberIsNotAvailable","orderNumberCellText","getTableRowComponentChildren","numItemsCellText","totalAmountCellText","formatCurrency","formatAmount","orderStatusCellText","StatusValue","channelNameCellText","getOnBehalfOfOrderProps","TableCellComponent","contentType","TableCellContentType","Text","isVisible","isMobileView","Number","Amount","ActionMenuComponent","ariaLabel","orderHistoryActionMenuButtonAriaLabel","orderHistoryViewDetailsButtonText","orderHistoryViewDetailsButtonAriaLabel","OrderHistoryWithSearchAndFiltersOrderTableComponent","_props$data$salesOrde","TableComponent","TableHeaderComponent","orderHistoryOrderNumberText","orderHistoryOriginText","orderHistoryItemsText","orderHistoryTotalText","orderHistoryCreatedDateText","orderHistoryOrderStatusText","TableRowComponent","buttonClassName","buttonActiveClassName","buttonInactiveClassName","OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState","OrderHistoryWithSearchAndFiltersOrganizationWideSelectorComponent","_props$resources","_props$resources$curr2","_props$resources2","_props$resources$curr3","_props$resources3","_props$resources4","_props$resources$curr4","_props$resources5","_props$resources6","_props$resources7","_props$resources$orga","_props$resources8","_props$resources9","_props$resources$orga2","_props$resources10","_props$resources11","_props$resources12","selectorState","setSelectorState","currentSelectorState","onClickHandler","newSelectorState","currentUserOrderHistoryAttributes","currentUserOptionLabel","orgWideOrderHistoryAttributes","CurrentUser","currentUserOptionAriaLabel","OrganizationWide","organizationWideOptionAriaLabel","organizationWideOptionLabel","detailsViewClassName","listViewClassName","viewSelectedClassName","OrderHistoryWithSearchAndFiltersViewModeState","OrderHistoryWithSearchAndFiltersViewModeComponent","_props$resources$deta","_props$resources$deta2","_props$resources$list","_props$resources$list2","viewModeState","setViewModeState","currentViewModeState","newViewModeState","viewModeDetailedViewAttributes","ViewMode","viewModeListViewAttributes","DetailedView","detailedViewOptionAriaLabel","ListView","listViewOptionAriaLabel"],"sourceRoot":""}