{"version":3,"file":"src_exported_account-sidebar_AccountSidebar_tsx.477c92be5585621ea89d.bundle.js","mappings":"g/BAEO,MAAMA,EAAmB,mBAChBC,EAAA,sCACSA,EAAA,gB,oDCUzB,MAAMC,EAAiB,WAAc;MAC/BF;;eAESC,EAAA;;iBAEE;EAaXE,GAAe,OAAQ,2BAEhBC,GAAU,IAAAC,WAAS,UAAiB,YAAEC,IAC/C,OACI,gBAACJ,EAAD,CAAgBK,UAAWJ,EAAc,eALV,2BAM3B,gBAACK,EAAA,EAAD,CACIC,KAAM,KACNC,OAAQ,CAAEJ,YAAAA,GACVK,YAAW,U,0PCzBpB,MAAMC,EAA+B,CACxCC,eAAgB,CACZC,KAAMC,EAAA,EACNC,SAAU,eACVT,UAAW,eACXU,YAAa,MAEjBC,cAAe,CACXJ,KAAMC,EAAA,EACNC,SAAU,kBACVT,UAAW,cACXU,YAAa,MAEjBE,gBAAiB,CACbL,KAAMC,EAAA,EACNC,SAAU,YACVT,UAAW,cACXU,YAAa,MAEjBG,0BAA2B,CACvBN,KAAMC,EAAA,EACNC,SAAU,UACVT,UAAW,mBACXU,YAAa,MAEjBI,qBAAsB,CAClBP,KAAMC,EAAA,EACNC,SAAU,UACVT,UAAW,qBACXU,YAAa,MAEjBK,qBAAsB,CAClBR,KAAMC,EAAA,EACNC,SAAU,aACVT,UAAW,qBACXU,YAAa,MAEjBM,gBAAiB,CACbT,KAAMC,EAAA,EACNC,SAAU,SACVT,UAAW,gBACXU,YAAa,MAEjBO,eAAgB,CACZV,KAAMC,EAAA,EACNC,SAAU,WACVT,UAAW,eACXU,YAAa,MAEjBQ,oBAAqB,CACjBX,KAAMC,EAAA,EACNC,SAAU,gBACVT,UAAW,oBACXU,YAAa,MAEjBS,gBAAiB,CACbZ,KAAMC,EAAA,EACNC,SAAU,SACVT,UAAW,gBACXU,YAAa,EAAAU,OAAA,6BAEjBC,eAAgB,CACZd,KAAMC,EAAA,EACNC,SAAU,SACVT,UAAW,eACXU,YAAa,EAAAU,OAAA,aC3CfE,EAAU,IAAOC,EAAA,EAAS;;;eAGjB7B,EAAA,aAA0BA,EAAA;;;iBALvB;;;oBAWEA,EAAA;;EAId8B,EAAY,OAAU;;;WAGjB9B,EAAA;;eAEIA,EAAA;;iBAEE;EAGX+B,GAAwB,OAAQ,sBAChCC,GAAmB,IAAA5B,WAAS,UAC9B6B,MAAM,QAAEC,EAAO,MAAEC,EAAK,YAAEC,KAExB,MAAQvB,KAAMwB,EAAO,KAAI,SAAEtB,EAAW,KAAI,UAAET,EAAY,IAAOK,EAAiBuB,IAAY,GAE5F,OACI,gCACKG,GAAQ,gBAACA,EAAD,CAAM7B,KAAMO,EAAUT,UAAAA,EAAsB8B,YAAAA,IACpDD,GAAS,gBAAC,OAAD,CAAM7B,UAAWyB,GAAwBI,OAKzDG,GAAW,IAAAlC,WAAS,UAAkB,KAAE6B,EAAI,QAAEM,IAChD,MACMC,GAAuB,OAAQ,oBAAqBP,EAAKC,SAE/D,OACI,gBAACN,EAAD,CAAStB,UAAWkC,EAAsBC,KAAMR,EAAKS,IAAKH,QAJ1C,IAAMA,EAAQN,IAK1B,gBAACD,EAAD,CAAkBC,KAAAA,QAOxBU,GAAmB,OAAQ,gBAEpBC,GAAO,IAAAxC,WAAS,UAAc,KAAEyC,EAAO,GAAE,QAAEN,IACpD,OACI,gBAACT,EAAD,CAAWxB,UAAWqC,EAAkB,eANZ,gBAOvBE,EAAKC,OAAS,GACXD,EAAKE,KAAKd,GACN,gBAACK,EAAD,CAAUU,IAAKf,EAAKC,QAASD,KAAAA,EAAYM,QAAAA,U,iFCrF7D,MAEaU,EAAkB,WAAc;;WAElCjD,EAAA;;;oBAGSA,EAAA;eACLA,EAAA;yBACUA,EAAA;iBACR;;MAEX,EAAGkD,cAAAA,KAAoBA,GAAiB;EAEjCC,EAAyB,IAAOtB,EAAA,EAAS;;;;;;;;;EAUzCuB,EAAgB,IAAOvB,EAAA,EAAS;;kBAE3B7B,EAAA;;EAGLqD,EAAqB,IAAOxB,EAAA,EAAS;;;;;;;EAQrCyB,EAAe,IAAOC,EAAA,EAAW;;;;yCApCZ;;;;;;;;;;;;iDAAA;;;;;;;;;;;6CADL;;;;;;iDAAA;;;;;;;;;qCA+EQvD,EAAA;;;;;;;;;;;;;;;;2BAgBVA,EAAA;;;;;;;;;;;6CA9FO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ECRrBwD,EAAuC,CAChDC,MAAM,EACNC,QAAQ,EACRC,aAAc,KACdC,eAAgB,EAChBC,UAAU,EACVC,WAAY,CACR,CACIC,WAAY,IACZC,SAAU,CACNL,aAAc,KACdC,eAAgB,EAChBF,QAAQ,KAIpBO,UAAU,GAEDC,EAAsC,CAC/CT,MAAM,EACNC,QAAQ,EACRC,aAAc,EACdC,eAAgB,EAChBC,UAAU,EACVI,UAAU,EACVH,WAAY,CACR,CACIC,WAAY,IACZC,SAAU,CACNL,aAAc,EACdC,eAAgB,EAChBF,QAAQ,M,gMCjBxB,MAAMS,GAAkB,OAAQ,0BAC1BC,GAAiB,OAAQ,yBACzBC,GAAkB,OAAQ,0BAC1BC,GAAmB,OAAQ,2BAE3BC,GAAmB,OAAQ,iCAC3BC,GAAkB,OAAQ,gCAQ1BC,GAAiB,IAAArE,WAAS,UAAwB,MAAEsE,EAAK,OAAEC,IAC7D,OACI,gCACKD,GAAS,gBAAC,KAAD,CAAIpE,UAAW+D,GAAkBK,GAC1CC,GAAU,gBAAC,OAAD,CAAMrE,UAAWgE,GAAmBK,OAKrDC,GAAoB,IAAAxE,WAAS,UAAsB,KACrDyE,EAAI,QACJtC,IAEA,MAAM,IAAEuC,EAAG,IAAEpC,EAAM,IAAOmC,EAEpBE,EAAYD,EAAIC,UAAYD,EAAIC,UAAYD,EAAIE,IAEtD,OACI,gCACI,gBAAC7B,EAAD,CAAwBV,KAAMC,EAAKH,QALrB,IAAMA,EAAQsC,IAMxB,gBAAC,MAAD,CACIvE,UAAW6D,EACXc,IAAKH,EAAIG,IACTC,OAAQ,GAAGH,WAAmBD,EAAIE,WAClCG,MAAM,kCACNH,IAAKD,SAOnBK,IAAmB,IAAAhF,WAAS,UAAsB,KAAEyE,EAAI,QAAEtC,IAC5D,MAAM,MAAEJ,EAAQ,OAAIO,EAAM,cAAI2C,GAAa,GAASR,EAGpD,OACI,gCACKQ,GAAc,gBAACZ,EAAD,CAAgBC,MAAO,MAAAG,OAAA,EAAAA,EAAMH,MAAOC,OAAQ,MAAAE,OAAA,EAAAA,EAAMF,SACjE,gBAACvB,EAAD,CAAe9C,UAAW8D,EAAgB3B,KAAMC,EAAKH,QALvC,IAAMA,EAAQsC,IAMvB1C,OAOV,qBAA8B,YAA9B,kCAMK,KAAAmD,SAA4C,cAC5C,KAAAC,QAA2C,cAUnD,KAAAC,qBAAuB,KACnBC,SAASC,oBAAoB,UAAWC,KAAKC,yBATjDC,oBAtFJ,QAuFQF,KAAKG,SAAW,SAAAH,KAAKL,eAAL,IAAeS,QAC/BJ,KAAKK,QAAU,SAAAL,KAAKJ,cAAL,IAAcQ,QAE7BJ,KAAKC,yBACLH,SAASQ,iBAAiB,UAAWN,KAAKC,wBAO9CA,yBACIM,MAAMC,KAAKV,SAASW,iBA3EN,uCA2EuCC,SAASC,IAnGtE,MAoGY,MACMC,EADgBD,EAAME,UAAUC,SA3EtB,iBA4EiB,IAAM,KAGvC,SAFaH,EAAMI,qBAAqB,KAEnC,KAAL,EAASC,aAAa,WAAYJ,MAI1CK,SACI,MAAM,KAAEC,EAAI,QAAEtE,GAAYoD,KAAKmB,MACzBC,EAAmB,MAAAF,OAAA,EAAAA,EAAM9D,KAAK8B,GAChC,gBAACD,EAAD,CAAmB5B,IAAK,GAAG6B,EAAKmC,oBAAqBnC,KAAAA,EAAYtC,QAAAA,MAG/D0E,EAAkB,MAAAJ,OAAA,EAAAA,EAAM9D,KAAK8B,GAC/B,gBAACO,GAAD,CAAkBpC,IAAK,GAAG6B,EAAKmC,mBAAoBnC,KAAAA,EAAYtC,QAAAA,MAGnE,OACI,gCACI,gBAACe,EAAD,CACIhD,UAAWiE,EACX2C,WA/FyB,gCAgGzBC,eAAgB3D,EAChB4D,MAAOL,EACPM,SAAU1B,KAAKL,SACfgC,SAAU3B,KAAKK,UAEnB,gBAAC1C,EAAD,CACIhD,UAAWkE,EACX0C,WAtGwB,+BAuGxBC,eAAgBjD,EAChBkD,MAAOH,EACPI,SAAU1B,KAAKJ,QACf+B,SAAU3B,KAAKG,cAtDX,GAAnB,EAAAyB,YAAmB,2BACA,GAAnB,EAAAA,YAAmB,0BAJjB,MADN,EAAAnH,UACM,ICjEP,MAAMoH,IAAsB,OAAQ,2BAC9BC,IAA0B,OAAQ,gCAClCC,IAAiB,IAAAtH,WAAS,UAAwB,OAAEuH,EAAM,SAAEC,IAC9D,OACI,gCACI,gBAAC,OAAD,CAAMtH,UAAWkH,IAAsBG,IACtC,MAAAC,OAAA,EAAAA,EAAUlF,MACP,gBAACW,EAAD,CAAoB/C,UAAWmH,GAAyBhF,KAAMmF,EAASlF,KAClEkF,EAASzF,WAQxB0F,IAAgB,OAAQ,oBAEjBC,IAAW,IAAA1H,WAAS,SAAkB0G,GAC/C,MACIiB,eAAe,OAAEJ,EAAM,SAAEC,EAAQ,KAAEf,EAAO,IAAI,QAC9CtE,GACAuE,EAEE5D,EAAgB,OAAuB,aAE7C,OACI,gBAACD,EAAD,CACI3C,UAAWuH,GACX,eAdoB,mBAepB3E,cAAAA,GAEA,gBAACwE,GAAD,CAAgBC,OAAAA,EAAgBC,SAAAA,IAC/Bf,EAAK/D,OAAS,GAAK,gBAACkF,GAAD,CAAiBzF,QAAAA,EAAkBsE,KAAAA,QC3B7DoB,GAAiB,OAAU;MAC3BlI;;;mBAGaC,EAAA;;iBAEF;EAIXkI,IAAe,OAAQ,2BAEhBC,IAAU,IAAA/H,WAAS,UAAiB,YAAEgI,IAC/C,OACI,gBAACH,GAAD,CAAgB3H,UAAW4H,GAAc,eALV,2BAM3B,gBAAC3H,EAAA,EAAD,CACIC,KAAM,KACNE,YAAW,IACXD,OAAQ,CAAE2H,YAAAA,SCvBbC,GAA0BC,IAbvC,oBAcI,MAAM,gBAAEC,EAAkB,GAAE,WAAEC,GAAeF,EAE7C,MAAO,EACF,cAAc,EAAAG,EAAA,IAAa,EAAkB,CAC1CpI,YAAa,wBAAAkI,OAAA,EAAAA,EAAkB,mBAAlB,IAAgCG,aAAhC,IAAyC,eAAI,CAE7D,WAAW,EAAAD,EAAA,IAAa,EAAe,CACpC5F,MAAM,wBAAA0F,OAAA,EAAAA,EAAkB,gBAAlB,IAA6BG,aAA7B,IAAsC,YAAa,GACzDnG,QAASiG,EAAWG,wBAAA,CAEvB,eAAe,EAAAF,EAAA,IAAa,GAAmB,CAC5CV,cAAe,wBAAAQ,OAAA,EAAAA,EAAkB,oBAAlB,IAAiCG,aAAjC,IAA0C,cACzDnG,QAASiG,EAAWI,wBAAA,CAEvB,cAAc,EAAAH,EAAA,IAAa,GAAkB,CAC1CI,YAAaL,EAAWK,YACxBT,YAAa,wBAAAG,OAAA,EAAAA,EAAkB,mBAAlB,IAAgCG,aAAhC,IAAyC,aACtDI,iBAAkBN,EAAWO,KAAKD,qB,qECpBvC,MAODE,GAAmB,UAAa;;;;;;;;;;EAYhCC,GAAc,IAAOD,GAAiB;;;aAG/BhJ,EAAA;WACFA,EAAA;EAGLkJ,GAAY,IAAOC,GAAA,EAAW;;;EAI9BC,IAAoB,OAAQ,yBAErBC,IAAkB,IAAAjJ,WAAS,UAAyB,YAC7DyI,EAAW,YACXS,IAEA,OACI,gBAACL,GAAD,CACI,aAAW,gBACX3I,UAAW8I,GACX,eAxCyB,+BAyCzB7G,QAASsG,EACTU,IAAKD,GAEL,gBAACJ,GAAD,U,+HCpBZ,MAAMM,GAAwB,OAAU;;;2BAGb,EAAGC,OAAAA,KAAaA;iCACV,EAAGC,cAAAA,KAAoBA,EAAgB;;eAEzD1J,EAAA;;;EAKT2J,GAAiB,OAAU;;;;EAMpBC,GAA0B,kBAC1BC,GAAoC,oCAEpCC,GAAsC,CAAC,wBAC9CC,IAAsB,OAAQ,mBAIpC,qBAA6B,YAMzBC,YAAYlD,GACRmD,MAAMnD,GALF,KAAAoD,kBAAqD,cACrD,KAAAZ,YAAkD,cAWnD,KAAAzD,kBAAoB,KAAY,O,EAAA,K,EAAA,K,EAAA,kBAC7BF,KAAKmB,MAAMqD,eAAeC,U,2MAG7B,KAAAC,mBAAqB,KACxB1E,KAAKmB,MAAMqD,eAAeG,WAG9B,KAAAC,uBAA0BC,IAlF9B,QAmFQ,MAAMC,EAAUD,EAAEE,OAClBF,EAAEG,kBAEEF,EAAQjE,UAAUC,SAAS,yBAC3B,kBAAAd,KAAK2D,kBAAL,IAAkBvD,UAAlB,EAA2B6E,UAlB/B,MAAMC,EAAgB/D,EAAMrG,OAAOqK,sBAAwB,GAC3DhE,EAAMqD,eAAeY,mBAAmBF,GACxClF,KAAK8D,QAAS,QAAoBoB,GAmB/BjE,SACH,MAAM,YACFiC,EAAW,qBACXiC,EAAuB,GACvB/B,MAAM,iBAAED,EAAgB,UAAEkC,GAAW,cACrCtB,GACA/D,KAAKmB,MAAMqD,eAET7B,EAAiC,CACnCC,gBAAiBuC,EACjBtC,WAAY7C,KAAKmB,MAAMqD,gBAG3B,OAAOa,IAAc,eACjB,gBAAC,KAAD,CAAexK,KAAM,KAAiBE,YAAW,KAC7C,gBAACiJ,GAAD,KACI,gBAACsB,EAAA,EAAD,CACIpC,YAAAA,EACAC,iBAAAA,EACA,eAAcc,GACdsB,oBAAqBvF,KAAK4E,wBAE1B,gBAAClB,GAAD,CAAiBR,YAAAA,EAA0BS,YAAa3D,KAAK2D,cAC5DR,GACG,gBAACU,GAAD,CACID,IAAK5D,KAAKuE,kBACV5J,UAAWyJ,GACXL,cAAAA,EACAD,OAAQ9D,KAAK8D,QAEb,gBAAC0B,EAAA,EAAD,CACI,eAActB,GACduB,YAAaN,EACbpK,YAAW,IACX2K,aAAchD,GAAuBC,SAO7D,OAvEZ,G,mIAAA,GAFC,OAAOwB,IACP,EAAA1J,UACD,IA2EAkL,GAAeC,YAAc,iBAE7B,a,gGCrIKC,EAAA,E,kbAAA,EAAAA,IAAAA,EAAA,KACD,KAAO,OACP,UAAU,UACV,QAAQ,QACR,SAAS,SAMN,MAAMC,EAA+C,CACxDC,SAAU,WACVC,UAAW,YACXC,WAAY,cAGT,MAAMC,EAAN,cAEiB,KAAAC,OAAiBN,EAAOO,KACzB,KAAAf,UAA2BS,EAAWE,UACtC,KAAAK,iBAA2B,EAE/BC,aAKX,OAJItG,KAAKuG,gBACLvG,KAAKwG,eAAiBxG,KAAKyG,YAGxBzG,KAAKwG,eAGMC,WAAW,gCAC7B,IACIzG,KAAKmG,OAASN,EAAOa,QAEjB1G,KAAKqF,YAAcS,EAAWC,iBACxB/F,KAAK2G,YACX3G,KAAKmG,OAASN,EAAOe,QAAA,MAEpBC,GACL7G,KAAKmG,OAASN,EAAOiB,UAIRH,YAAY,oCAEZI,qBAAqB,gCACtC,IAAK/G,KAAKqG,gBACN,IACIrG,KAAKqF,gBAAmB,IAAA2B,OAAM,EAAAC,eAAA,qBAC9BjH,KAAKqG,iBAAkB,QAClBQ,GACL,MAAM,IAAIK,MAAML,OAKPN,oBACjB,MAAO,CAACV,EAAOO,KAAMP,EAAOiB,OAAOK,SAASnH,KAAKmG,SAvCjC,GAAnB,EAAAvE,YAAmB,wBACD,GAAlB,EAAAA,YAAkB,2BACA,GAAlB,EAAAA,YAAkB,iCAEJ,GAAd,EAAAwF,QAAc,4BAQO,GAArB,EAAAA,QAAqB,0BAaD,GAApB,EAAAA,QAAoB,2BAEA,GAApB,EAAAA,QAAoB,oCAWA,GAApB,EAAAC,UAAoB,gC,qEC1DzB,MAAMC,EAAa,EAAQ,sCAEdC,EAAU,CAACC,KAAsBC,IAC1CH,EAAW,OAAOE,IAAa,MAAMA,IAAaC,GAEzCC,EAAgBC,IACzB,MAAAA,OAAA,EAAAA,EAAUC,QAAS,YAAc,I,+GCF9B,MAAM9E,EAAe,CAAC+E,EAAwBC,EAA4B,KAAO,IACpF,gBAAoBD,EAAqBC,GAEvCC,EAAOlN,GAAiB,CAAC,IAAKA,EAAM,KAAKmN,KAAK,IAS9CC,EAAqBC,GACvBA,EAAW9K,KAAI,EAAE+K,KAAiB,MAAMJ,EAAII,UAA6BH,KAAK,IAE5EI,EAAqB,EAAE,CAAEC,IAAuB,CAAEC,MArBxD,QAsBI,MAAMC,EAAY,eAAAF,OAAA,EAAAA,EAAGtF,aAAH,IAAW4E,SACvBa,EAAY,eAAAF,OAAA,EAAAA,EAAGvF,aAAH,IAAW4E,SAE7B,OAAO,MAAAY,OAAA,EAAAA,EAAWE,MAAM,MAAAD,OAAA,EAAAA,EAAWC,OAAO,MAAAF,OAAA,EAAAA,EAAWG,QAAQ,MAAAF,OAAA,EAAAA,EAAWE,QAW/DC,EAAwB,CAAC/F,EAAgC,MAClE,MAAMgG,EAASC,OAAOC,QAAQlG,GAAiBmG,KAAKX,GAoBpD,MAAO,CAAEY,YAnBWf,EAAkBW,GAmBhBK,YAjBFL,EAAOM,QAAO,CAACC,EAAM3B,KACrC,MAAO,CAAE4B,GAAW5B,EAKd6B,EApCc,CAACC,GACzBA,EACKlM,KACG,EAAEvC,EAAMuO,MAbpB,QAcgB,SAAGrB,EAAIlN,GAAM0O,OAAO,wBAAAH,OAAA,EAAAA,EAASrG,aAAT,IAAiB4E,eAAjB,IAA2B6B,aAEtDxB,KAAK,KA8BmByB,CAJTb,EAAOc,QACnB,EAAE,CAAExK,MA3ChB,YA2C0B,+BAAAA,OAAA,EAAAA,EAAM6D,aAAN,IAAc4E,eAAd,IAAwBc,QAAQ,wBAAAW,OAAA,EAAAA,EAASrG,aAAT,IAAiB4E,eAAjB,IAA2Bc,SAW7E,OAPmBU,EAAKhC,SAASkC,KAI7BF,GAAQ,MAAME,QAGXF,IACR,MAKA,IAAIQ,EAEJ,MAAMC,EAAuBhH,IA9DpC,MA+DI,MAAMgG,EAASC,OAAOC,QAAQlG,GAAiBmG,KAAKX,GAIpD,OAFAuB,EAAqB,SAAAf,EAAOA,EAAOzL,OAAS,SAAvB,IAA4B,GAE1CyL,EAAOM,QAAO,CAACC,EAAM3B,KACxB,MAAOW,GAAeX,EAEtB,MAAO,GAAG2B,KAAQhB,OACnB,M,uGCrDP,MAWA,E,MAXiB,IAAQ;;;;;;;;;yEClBlB,MAAM0B,EAAkB,CAC3BC,QAAS,cACT5M,KAAM,eACN6M,SAAU,WACVC,QAAS","sources":["webpack://elc-service-account/./src/internal/views/components/CommonStyles.ts","webpack://elc-service-account/./src/internal/views/sidebar/loyalty/Loyalty.tsx","webpack://elc-service-account/./src/internal/views/sidebar/menu/menuLinkMappings.ts","webpack://elc-service-account/./src/internal/views/sidebar/menu/Menu.tsx","webpack://elc-service-account/./src/internal/views/sidebar/showcase/ShowcaseWrapper.ts","webpack://elc-service-account/./src/internal/views/sidebar/showcase/sliderSettings.ts","webpack://elc-service-account/./src/internal/views/sidebar/showcase/ShowcaseSliders.tsx","webpack://elc-service-account/./src/internal/views/sidebar/showcase/Showcase.tsx","webpack://elc-service-account/./src/internal/views/sidebar/welcome/Welcome.tsx","webpack://elc-service-account/./src/internal/views/sidebar/registry.ts","webpack://elc-service-account/./src/exported/account-sidebar/SidebarControls.tsx","webpack://elc-service-account/./src/exported/account-sidebar/AccountSidebar.tsx","webpack://elc-service-account/./src/internal/repositories/AuthenticatedRepository.ts","webpack://elc-service-account/./src/internal/utils/Classes.ts","webpack://elc-service-account/./src/internal/utils/loadOnDemand.ts","webpack://elc-service-account/./src/internal/views/components/BaseLink.tsx","webpack://elc-service-account/./src/internal/views/sidebar/sections.ts"],"sourcesContent":["import { ContentSpacing } from '@estee/elc-base-theme';\n\nexport const widthMarginSetup = `\n margin: 0 ${ContentSpacing.space16};\n width: calc(100% - ${ContentSpacing.space32});\n`;\n","import * as React from 'react';\n\nimport { observer } from 'mobx-react';\nimport styled from 'styled-components';\n\nimport { ContentSpacing } from '@estee/elc-base-theme';\nimport { ServiceView } from '@estee/elc-service';\nimport { ACCOUNT_SIDEBAR_LOYALTY } from '@estee/elc-service-view-names';\n\nimport { widthMarginSetup } from '~components/CommonStyles';\nimport { serviceName } from '~setup/packageInfo';\nimport { classes } from '~utils/Classes';\nimport { sidebarSections as sdb } from '~views/sidebar/sections';\n\nconst LoyaltyWrapper = styled.section`\n ${widthMarginSetup}\n display: grid;\n padding: ${ContentSpacing.space16} 0;\n height: max-content;\n grid-area: ${sdb.loyalty};\n`;\n\ninterface IRewardsLink {\n label: string;\n url: string;\n}\n\nexport interface ILoyaltyProps {\n rewardsLink: IRewardsLink;\n}\n\nexport const TEST_ID_SIDEBAR_LOYALTY = 'account-sidebar-loyalty';\nconst loyaltyClass = classes('account-sidebar-loyalty');\n\nexport const Loyalty = observer(function Loyalty({ rewardsLink }: ILoyaltyProps) {\n return (\n \n \n \n );\n});\n","import { AccountIconSet, accountIconNames } from '@estee/elc-icons';\nimport { events } from '@estee/elc-service-bus';\n\ninterface IMenuIcon {\n className: string;\n eventToEmit: string | null;\n icon: React.ElementType | null;\n iconName?: string;\n translation?: string;\n}\n\ninterface IMenuIcons {\n [key: string]: IMenuIcon;\n}\n\nexport const menuLinkMappings: IMenuIcons = {\n sidebarAccount: {\n icon: AccountIconSet,\n iconName: accountIconNames.userCircle,\n className: 'icon-account',\n eventToEmit: null\n },\n sidebarOrders: {\n icon: AccountIconSet,\n iconName: accountIconNames.packageClosed,\n className: 'icon-orders',\n eventToEmit: null\n },\n sidebarReorders: {\n icon: AccountIconSet,\n iconName: accountIconNames.handbag,\n className: 'icon-orders',\n eventToEmit: null\n },\n sidebarShippingAndBilling: {\n icon: AccountIconSet,\n iconName: accountIconNames.truck,\n className: 'icon-addressbook',\n eventToEmit: null\n },\n sidebarSubscriptions: {\n icon: AccountIconSet,\n iconName: accountIconNames.clock,\n className: 'icon-subscriptions',\n eventToEmit: null\n },\n sidebarConsultations: {\n icon: AccountIconSet,\n iconName: accountIconNames.cardlist,\n className: 'icon-consultations',\n eventToEmit: null\n },\n sidebarLiveChat: {\n icon: AccountIconSet,\n iconName: accountIconNames.chat,\n className: 'icon-livechat',\n eventToEmit: null\n },\n sidebarRewards: {\n icon: AccountIconSet,\n iconName: accountIconNames.trophy,\n className: 'icon-rewards',\n eventToEmit: null\n },\n sidebarReferAFriend: {\n icon: AccountIconSet,\n iconName: accountIconNames.referFriend,\n className: 'icon-refer-friend',\n eventToEmit: null\n },\n sidebarSettings: {\n icon: AccountIconSet,\n iconName: accountIconNames.gear,\n className: 'icon-settings',\n eventToEmit: events.ACCOUNT_SETTINGS_LINK_CLICK\n },\n sidebarSignOut: {\n icon: AccountIconSet,\n iconName: accountIconNames.exit,\n className: 'icon-signout',\n eventToEmit: events.SIGNED_OUT\n }\n};\n","import * as React from 'react';\n\nimport { observer } from 'mobx-react';\nimport styled from 'styled-components';\n\nimport { ContentSpacing } from '@estee/elc-base-theme';\nimport { IBaseIconSet } from '@estee/elc-icons';\n\nimport BaseLink from '~components/BaseLink';\nimport { classes } from '~utils/Classes';\nimport { sidebarSections as sdb } from '~views/sidebar/sections';\n\nimport { menuLinkMappings } from './menuLinkMappings';\n\nexport interface IMenuLink {\n label: string;\n menuKey: string;\n url: string;\n iconSetName: IBaseIconSet['iconSetName'];\n}\n\ninterface IMenuProps {\n menu: IMenuLink[];\n onClick(link: IMenuLink): void;\n}\n\ninterface IMenuLinkProps {\n link: IMenuLink;\n onClick: IMenuProps['onClick'];\n}\n\ninterface ILinkIconAndLabel {\n link: IMenuLink;\n}\n\nconst ICON_SIZE = 18;\n\nconst LinkUrl = styled(BaseLink)`\n align-items: center;\n display: flex;\n padding: ${ContentSpacing.space10} ${ContentSpacing.space20};\n\n svg {\n width: ${ICON_SIZE}px;\n }\n svg + span {\n margin: 0 ${ContentSpacing.space16};\n }\n`;\n\nconst MenuLinks = styled.nav`\n align-content: flex-start;\n display: grid;\n gap: ${ContentSpacing.space4};\n width: 100%;\n padding: ${ContentSpacing.space8} 0 0;\n height: fit-content;\n grid-area: ${sdb.menu};\n`;\n\nconst accountMenuLabelClass = classes('account-menu-label');\nconst LinkIconAndLabel = observer(function LinkIconAndLabel({\n link: { menuKey, label, iconSetName }\n}: ILinkIconAndLabel) {\n const { icon: Icon = null, iconName = null, className = '' } = menuLinkMappings[menuKey] || {};\n\n return (\n <>\n {Icon && }\n {label && {label}}\n \n );\n});\n\nconst MenuLink = observer(function MenuLink({ link, onClick }: IMenuLinkProps) {\n const onMenuClick = () => onClick(link);\n const accountMenuLinkClass = classes('account-menu-link', link.menuKey);\n\n return (\n \n \n \n );\n});\n\nexport const TEST_ID_ACCOUNT_MENU = 'account-menu';\n\nconst accountMenuClass = classes('account-menu');\n\nexport const Menu = observer(function Menu({ menu = [], onClick }: IMenuProps) {\n return (\n \n {menu.length > 0 &&\n menu.map((link: IMenuLink) => (\n \n ))}\n \n );\n});\n","import styled from 'styled-components';\n\nimport { ContentSpacing } from '@estee/elc-base-theme';\nimport { SliderView } from '@estee/elc-slider';\n\nimport BaseLink from '~components/BaseLink';\n\nimport { sidebarSections as sdb } from '~views/sidebar/sections';\n\nconst smartphoneBreakpoint = 480;\nconst smallSmartphoneBreakpoint = 380;\nexport const ShowcaseWrapper = styled.section<{ isLastSection: boolean }>`\n display: grid;\n gap: ${ContentSpacing.space4} 0;\n grid-template-columns: 1fr 0.5fr;\n grid-template-rows: 30px 1fr;\n margin: 0 0 0 ${ContentSpacing.space16};\n padding: ${ContentSpacing.space10} 0 0;\n width: calc(100% - ${ContentSpacing.space16});\n grid-area: ${sdb.showcase};\n\n ${({ isLastSection }) => isLastSection && 'align-self: end;'}\n`;\nexport const ClickableShowcaseImage = styled(BaseLink)`\n align-items: center;\n display: flex;\n justify-content: left;\n margin: 0;\n overflow: hidden;\n padding: 0;\n text-decoration: none;\n transition: none;\n`;\nexport const EditorialLink = styled(BaseLink)`\n display: inline-block;\n margin-top: ${ContentSpacing.space10};\n padding: 0;\n`;\nexport const ShowcaseHeaderLink = styled(BaseLink)`\n display: block;\n height: fit-content;\n margin-left: auto;\n margin-right: 16px;\n padding: 0 0 3px 1px;\n width: fit-content;\n`;\nexport const StyledSlider = styled(SliderView)`\n grid-column: 1 / span 2;\n padding: 0;\n width: 360px;\n @media only screen and (min-width: ${smallSmartphoneBreakpoint}px) {\n width: 400px;\n }\n\n .slick-slider {\n margin-bottom: 0;\n }\n\n .slick-list {\n padding-left: 0;\n .slick-track {\n margin-left: 143px;\n @media only screen and (min-width: ${smallSmartphoneBreakpoint}px) {\n margin-left: 100px;\n }\n & > * {\n margin-bottom: 0;\n }\n }\n }\n\n &.elc-account-showcase-copy-slider {\n width: auto;\n @media only screen and (min-width: ${smartphoneBreakpoint}px) {\n width: 400px;\n }\n .slick-slider {\n padding-right: 16px;\n width: auto;\n @media only screen and (min-width: ${smartphoneBreakpoint}px) {\n width: 400px;\n }\n }\n .slick-list {\n .slick-track {\n margin-left: 0;\n\n & > * {\n margin-bottom: ${ContentSpacing.space32};\n }\n }\n }\n }\n\n .slick-slide {\n h3 {\n display: block;\n margin: 5px 0 0;\n }\n span {\n display: inline;\n }\n .elc-account-showcase-link {\n display: inline;\n margin-left: ${ContentSpacing.space6};\n }\n }\n\n .slick-next {\n height: 138px;\n margin-top: 0;\n right: -2px;\n top: 0;\n width: 145px;\n\n @media only screen and (min-width: ${smallSmartphoneBreakpoint}px) {\n height: 183px;\n width: 100px;\n }\n\n &::before {\n content: '';\n }\n .elc-icon {\n display: none;\n }\n &.slick-disabled {\n display: none;\n }\n }\n\n .slick-prev {\n display: none;\n }\n\n .elc-slider-dots-list {\n margin: 0;\n\n .elc-slider-dot-button {\n border-radius: 50%;\n }\n\n & .elc-slider-dot-button-active {\n background-color: unset;\n &::before {\n opacity: 1;\n }\n }\n\n .elc-slider-dot {\n float: left;\n margin-left: 0;\n }\n }\n\n .slick-slider a:focus,\n .slick-slider button:focus,\n .slick-next:focus,\n .slick-slide.slick-current a:focus {\n outline: rgb(0, 0, 0) thin dotted;\n transition: none;\n }\n`;\n","import { ISliderSettings } from '@estee/elc-slider';\n\nexport const sliderImageSettings: ISliderSettings = {\n dots: false,\n arrows: true,\n slidesToShow: 1.33,\n slidesToScroll: 1,\n infinite: true,\n responsive: [\n {\n breakpoint: 380,\n settings: {\n slidesToShow: 1.66,\n slidesToScroll: 1,\n arrows: true\n }\n }\n ],\n lazyload: true\n};\nexport const sliderTextSettings: ISliderSettings = {\n dots: true,\n arrows: false,\n slidesToShow: 1,\n slidesToScroll: 1,\n infinite: true,\n lazyload: true,\n responsive: [\n {\n breakpoint: 319,\n settings: {\n slidesToShow: 1,\n slidesToScroll: 1,\n arrows: false\n }\n }\n ]\n};\n","import * as React from 'react';\n\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\n\nimport { classes } from '~utils/Classes';\n\nimport {\n IShowcaseClickableItem,\n IShowcaseItem,\n IShowcaseSlidersProps,\n IShowcaseTeaser\n} from './IShowcase';\nimport { ClickableShowcaseImage, EditorialLink, StyledSlider } from './ShowcaseWrapper';\nimport { sliderImageSettings, sliderTextSettings } from './sliderSettings';\n\nconst slideImageClass = classes('account-showcase-image');\nconst slideLinkClass = classes('account-showcase-link');\nconst slideTitleClass = classes('account-showcase-title');\nconst slideTeaserClass = classes('account-showcase-teaser');\n\nconst sliderImageClass = classes('account-showcase-image-slider');\nconst sliderCopyClass = classes('account-showcase-copy-slider');\n\nconst slideSelector = '.elc-account-showcase .slick-slide';\nconst activeSlideSelector = 'slick-current';\n\nexport const TEST_ID_SHOWCASE_IMAGE_SLIDER = 'account-showcase-image-slider';\nexport const TEST_ID_SHOWCASE_COPY_SLIDER = 'account-showcase-copy-slider';\n\nconst ShowcaseTeaser = observer(function ShowcaseTeaser({ title, teaser }: IShowcaseTeaser) {\n return (\n <>\n {title &&

{title}

}\n {teaser && {teaser}}\n \n );\n});\n\nconst ShowcaseImageItem = observer(function ShowcaseItem({\n item,\n onClick\n}: IShowcaseClickableItem) {\n const { img, url = '' } = item;\n const handleOnClick = () => onClick(item);\n const srcMobile = img.srcMobile ? img.srcMobile : img.src;\n\n return (\n <>\n \n \n \n \n );\n});\n\nconst ShowcaseCopyItem = observer(function ShowcaseItem({ item, onClick }: IShowcaseClickableItem) {\n const { label = '', url = '', showTeaser = true } = item;\n const handleOnClick = () => onClick(item);\n\n return (\n <>\n {showTeaser && }\n \n {label}\n \n \n );\n});\n\n@observer\nexport class ShowcaseSliders extends React.Component {\n public static displayName: string;\n\n @observable private imageNav: HTMLDivElement | null;\n @observable private copyNav: HTMLDivElement | null;\n\n private imageRef: React.RefObject = React.createRef();\n private copyRef: React.RefObject = React.createRef();\n\n componentDidMount() {\n this.imageNav = this.imageRef?.current;\n this.copyNav = this.copyRef?.current;\n\n this.setTabIndexSlickSlides();\n document.addEventListener('keydown', this.setTabIndexSlickSlides);\n }\n\n componentWillUnmount = () => {\n document.removeEventListener('keydown', this.setTabIndexSlickSlides);\n };\n\n setTabIndexSlickSlides() {\n Array.from(document.querySelectorAll(slideSelector)).forEach((slide: HTMLElement) => {\n const isActiveSlide = slide.classList.contains(activeSlideSelector);\n const tabIndex = isActiveSlide ? '0' : '-1';\n const link = slide.getElementsByTagName('a');\n\n link[0]?.setAttribute('tabindex', tabIndex);\n });\n }\n\n render() {\n const { list, onClick } = this.props;\n const sliderImageItems = list?.map((item: IShowcaseItem) => (\n \n ));\n\n const sliderCopyItems = list?.map((item: IShowcaseItem) => (\n \n ));\n\n return (\n <>\n \n \n \n );\n }\n}\n","import * as React from 'react';\n\nimport { observer } from 'mobx-react';\n\nimport { classes } from '~utils/Classes';\nimport { sidebarLastSection } from '~utils/loadOnDemand';\n\nimport { sidebarSections } from '../sections';\nimport { IShowcaseHeader, IShowcaseProps } from './IShowcase';\nimport { ShowcaseSliders } from './ShowcaseSliders';\nimport { ShowcaseHeaderLink, ShowcaseWrapper } from './ShowcaseWrapper';\n\nconst showcaseHeaderClass = classes('account-showcase-header');\nconst showcaseHeaderLinkClass = classes('account-showcase-header-link');\nconst ShowcaseHeader = observer(function ShowcaseHeader({ header, infoLink }: IShowcaseHeader) {\n return (\n <>\n {header}\n {infoLink?.url && (\n \n {infoLink.label}\n \n )}\n \n );\n});\n\nexport const TEST_ID_SHOWCASE = 'account-showcase';\nconst showcaseClass = classes('account-showcase');\n\nexport const Showcase = observer(function Showcase(props: IShowcaseProps) {\n const {\n brandServices: { header, infoLink, list = [] },\n onClick\n } = props;\n\n const isLastSection = sidebarLastSection === sidebarSections.showcase;\n\n return (\n \n \n {list.length > 0 && }\n \n );\n});\n","import * as React from 'react';\n\nimport { observer } from 'mobx-react';\nimport styled from 'styled-components';\n\nimport { ContentSpacing } from '@estee/elc-base-theme';\nimport { ServiceView } from '@estee/elc-service';\nimport { USER_PROFILE_WELCOME } from '@estee/elc-service-view-names';\n\nimport { widthMarginSetup } from '~components/CommonStyles';\nimport { serviceName } from '~setup/packageInfo';\nimport { classes } from '~utils/Classes';\nimport { sidebarSections as sdb } from '~views/sidebar/sections';\n\ninterface IWelcome {\n welcomeBack: string;\n}\n\nconst WelcomeWrapper = styled.div`\n ${widthMarginSetup}\n display: grid;\n grid-template-columns: 1fr 0.25fr;\n padding: 0 0 ${ContentSpacing.space20};\n height: fit-content;\n grid-area: ${sdb.welcome};\n`;\n\nexport const TEST_ID_SIDEBAR_WELCOME = 'account-sidebar-welcome';\nconst welcomeClass = classes('account-sidebar-welcome');\n\nexport const Welcome = observer(function Welcome({ welcomeBack }: IWelcome) {\n return (\n \n \n \n );\n});\n","import { IAccountSideBar } from '~exported/account-sidebar/AccountSidebar';\nimport AccountSidebarController from '~exported/account-sidebar/AccountSidebarController';\nimport { loadOnDemand } from '~utils/loadOnDemand';\n\nimport * as features from './features';\nimport { sidebarSections as sdb } from './sections';\n\nexport interface ISidebarFeature {\n controller: AccountSidebarController;\n componentConfig?: IAccountSideBar['config']['accountSidebarConfig'];\n children?: JSX.Element | JSX.Element[];\n}\n\nexport const getSidebarViewRegistry = (featureConfig: ISidebarFeature) => {\n const { componentConfig = {}, controller } = featureConfig;\n\n return {\n [sdb.loyalty]: loadOnDemand(features.Loyalty, {\n rewardsLink: componentConfig?.[sdb.loyalty]?.params?.[sdb.loyalty]\n }),\n [sdb.menu]: loadOnDemand(features.Menu, {\n menu: componentConfig?.[sdb.menu]?.params?.[sdb.menu] || [],\n onClick: controller.handleMenuLinkOnClick\n }),\n [sdb.showcase]: loadOnDemand(features.Showcase, {\n brandServices: componentConfig?.[sdb.showcase]?.params?.[sdb.showcase],\n onClick: controller.handleShowcaseOnClick\n }),\n [sdb.welcome]: loadOnDemand(features.Welcome, {\n hideOverlay: controller.hideOverlay,\n welcomeBack: componentConfig?.[sdb.welcome]?.params?.[sdb.welcome],\n isOverlayVisible: controller.data.isOverlayVisible\n })\n };\n};\n","import * as React from 'react';\n\nimport { observer } from 'mobx-react';\nimport styled from 'styled-components';\n\nimport { ContentSpacing } from '@estee/elc-base-theme';\nimport { RemoveIcon } from '@estee/elc-icons';\n\nimport { IAccountSideBar } from '~exported/account-sidebar/AccountSidebar';\nimport { classes } from '~utils/Classes';\n\nexport const TEST_ID_SIDEBAR_CLOSE = 'account-sidebar-close-button';\n\nexport interface ISidebarControls {\n hideOverlay: IAccountSideBar['viewController']['hideOverlay'];\n closeBtnRef: React.RefObject;\n}\n\nconst ResetButtonStyle = styled.button`\n background: none;\n border: none;\n &:hover {\n background: none;\n border: none;\n }\n &:focus {\n outline: rgb(0, 0, 0) thin dotted;\n }\n`;\n\nconst CloseButton = styled(ResetButtonStyle)`\n opacity: 0.7;\n position: absolute;\n right: ${ContentSpacing.space16};\n top: ${ContentSpacing.space16};\n`;\n\nconst CloseIcon = styled(RemoveIcon)`\n width: 16px;\n height: 16px;\n`;\nconst sidebarCloseClass = classes('account-sidebar-close');\n\nexport const SidebarControls = observer(function SidebarControls({\n hideOverlay,\n closeBtnRef\n}: ISidebarControls) {\n return (\n \n \n \n );\n});\n","import * as React from 'react';\n\nimport { observer } from 'mobx-react';\nimport styled from 'styled-components';\n\nimport { ContentSpacing } from '@estee/elc-base-theme';\nimport { IOrderConfig, OrderRender } from '@estee/elc-layouts';\nimport { Overlay } from '@estee/elc-overlay';\nimport { config } from '@estee/elc-service';\nimport { ArrayMinOne } from '@estee/elc-universal-utils';\nimport { ErrorBoundary } from '@estee/elc-telemetry';\nimport { ACCOUNT_SIDEBAR } from '@estee/elc-service-view-names';\n\nimport { serviceName } from '~setup/packageInfo';\nimport { classes } from '~utils/Classes';\nimport { createSidebarLayout } from '~utils/loadOnDemand';\nimport { getSidebarViewRegistry, ISidebarFeature } from '~views/sidebar/registry';\n\nimport AccountSidebarController from './AccountSidebarController';\nimport { SidebarControls } from './SidebarControls';\n\nimport { authStates } from '~repositories/AuthenticatedRepository';\n\nexport interface IAccountSideBar {\n viewController: AccountSidebarController;\n config: {\n accountSidebarConfig?: IOrderConfig;\n };\n}\n\ninterface IAccountSidebarWrapperProps {\n totalSections: number;\n layout: string;\n}\n\nconst AccountSidebarWrapper = styled.div`\n display: grid;\n grid-auto-flow: dense;\n grid-template-areas: ${({ layout }) => layout};\n grid-template-rows: repeat(${({ totalSections }) => totalSections - 1}, min-content) auto;\n height: 100%;\n padding: ${ContentSpacing.space10} 0;\n overflow: hidden auto;\n overscroll-behavior-y: contain;\n`;\n\nconst OverlayWrapper = styled.div`\n .elc-overlay-sidebar {\n visibility: visible;\n }\n`;\n\nexport const TEST_ID_ACCOUNT_SIDEBAR = 'account-sidebar';\nexport const TEST_ID_ACCOUNT_SIDEBAR_ORDERABLE = 'account-sidebar-orderable-content';\n\nexport const accountConfigs: ArrayMinOne = ['accountSidebarConfig'];\nconst accountSidebarClass = classes('account-sidebar');\n\n@config(accountConfigs)\n@observer\nclass AccountSidebar extends React.Component {\n public static displayName: string;\n private accountSidebarRef: React.RefObject = React.createRef();\n private closeBtnRef: React.RefObject = React.createRef();\n private layout: string;\n\n constructor(props: IAccountSideBar) {\n super(props);\n\n const sidebarConfig = props.config.accountSidebarConfig || {};\n props.viewController.setOrderableConfig(sidebarConfig);\n this.layout = createSidebarLayout(sidebarConfig);\n }\n\n public componentDidMount = async () => {\n await this.props.viewController.loaded();\n };\n\n public componentDidUpdate = () => {\n this.props.viewController.updated();\n };\n\n onOverlayTransitionEnd = (e: React.TransitionEvent) => {\n const overlay = e.target as HTMLDivElement;\n e.stopPropagation();\n\n if (overlay.classList.contains('elc-overlay-sidebar')) {\n this.closeBtnRef?.current?.focus();\n }\n };\n public render() {\n const {\n hideOverlay,\n accountSidebarConfig = {},\n data: { isOverlayVisible, authState },\n totalSections\n } = this.props.viewController;\n\n const featureConfig: ISidebarFeature = {\n componentConfig: accountSidebarConfig,\n controller: this.props.viewController\n };\n\n return authState !== authStates.ANONYMOUS ? (\n \n \n \n \n {isOverlayVisible && (\n \n \n \n )}\n \n \n \n ) : null;\n }\n}\n\nAccountSidebar.displayName = 'AccountSidebar';\n\nexport default AccountSidebar;\n","import { action, computed, observable } from 'mobx';\n\nimport { query, serviceQueries, ServiceQueriesResponseType } from '@estee/elc-service-bus';\n\nenum Status {\n IDLE = 'IDLE',\n LOADING = 'LOADING',\n ERROR = 'ERROR',\n LOADED = 'LOADED'\n}\n\ntype AuthState = typeof serviceQueries.GET_USER_AUTH_STATE;\ntype UserAuthState = Pick[AuthState];\n\nexport const authStates: { [key: string]: UserAuthState } = {\n SIGNEDIN: 'SIGNEDIN',\n ANONYMOUS: 'ANONYMOUS',\n RECOGNIZED: 'RECOGNIZED'\n};\n\nexport class AuthenticatedRepository {\n private initialPromise: Promise;\n @observable private status: Status = Status.IDLE;\n @observable public authState: UserAuthState = authStates.ANONYMOUS;\n @observable public fetchedUserAuth: Boolean = false;\n\n @action public ensureData() {\n if (this.isUnfulfilled) {\n this.initialPromise = this.loadData();\n }\n\n return this.initialPromise;\n }\n\n @action private async loadData() {\n try {\n this.status = Status.LOADING;\n\n if (this.authState === authStates.SIGNEDIN) {\n await this.fetchData();\n this.status = Status.LOADED;\n }\n } catch (err) {\n this.status = Status.ERROR;\n }\n }\n\n @action public async fetchData() {}\n\n @action public async fetchUserAuthState() {\n if (!this.fetchedUserAuth) {\n try {\n this.authState = (await query(serviceQueries.GET_USER_AUTH_STATE)) as UserAuthState;\n this.fetchedUserAuth = true;\n } catch (err) {\n throw new Error(err);\n }\n }\n }\n\n @computed public get isUnfulfilled() {\n return [Status.IDLE, Status.ERROR].includes(this.status);\n }\n}\n","import { IPosition } from '~components/interfaces';\n\nconst classNames = require('classnames');\n\nexport const classes = (component: string, ...otherClassNames: (string | undefined)[]) =>\n classNames(`elc-${component}`, `js-${component}`, otherClassNames);\n\nexport const addFullBleed = (position: IPosition['position']) =>\n position?.extend ? 'fullbleed' : '';\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport * as React from 'react';\nimport { IOrderConfig } from '@estee/elc-layouts';\nimport { IAccountLayouts, IFeature, OrderConfigTuple } from '~components/interfaces';\n\nexport const loadOnDemand = (viewFunction: Function, viewParams: IFeature | {} = {}) => () =>\n React.createElement(viewFunction as any, viewParams as any);\n\nconst pad = (name: string) => [' ', name, ' '].join('');\nconst getMultipleSections = (sameRow: OrderConfigTuple[]) =>\n sameRow\n .map(\n ([name, section]: OrderConfigTuple) =>\n `${pad(name).repeat(section?.params?.position?.spaces)}`\n )\n .join(' ');\n\nconst getSingleSections = (components: OrderConfigTuple[]) =>\n components.map(([sectionName]) => `'. ${pad(sectionName as string)} .'`).join('');\n\nconst sortByRowThenOrder = ([, a]: OrderConfigTuple, [, b]: OrderConfigTuple) => {\n const positionA = a?.params?.position;\n const positionB = b?.params?.position;\n\n return positionA?.row - positionB?.row || positionA?.order - positionB?.order;\n};\n\nexport const createSingleGridLayout = (\n componentConfig: IOrderConfig = {}\n): IAccountLayouts['smallLayout'] => {\n const sorted = Object.entries(componentConfig).sort(sortByRowThenOrder);\n\n return getSingleSections(sorted);\n};\n\nexport const createMultiGridLayout = (componentConfig: IOrderConfig = {}): IAccountLayouts => {\n const sorted = Object.entries(componentConfig).sort(sortByRowThenOrder);\n const smallLayout = getSingleSections(sorted);\n\n const largeLayout = sorted.reduce((grid, component) => {\n const [, section] = component;\n const sameRow = sorted.filter(\n ([, item]) => item?.params?.position?.row === section?.params?.position?.row\n );\n\n const multipleSections = getMultipleSections(sameRow);\n const hasSection = grid.includes(multipleSections);\n\n if (!hasSection) {\n // eslint-disable-next-line no-param-reassign\n grid += `'. ${multipleSections} .'`;\n }\n\n return grid;\n }, '');\n\n return { smallLayout, largeLayout };\n};\n\nexport let sidebarLastSection: string;\n\nexport const createSidebarLayout = (componentConfig: IOrderConfig): string => {\n const sorted = Object.entries(componentConfig).sort(sortByRowThenOrder);\n\n sidebarLastSection = sorted[sorted.length - 1]?.[0];\n\n return sorted.reduce((grid, component) => {\n const [sectionName] = component;\n\n return `${grid}'${sectionName}'`;\n }, '');\n};\n","import styled from 'styled-components';\n\nimport { IBaseIconSet } from '@estee/elc-icons';\n\nexport interface ILink {\n label: string;\n url: string;\n}\n\nexport interface ILogoImage {\n src: string;\n alt: string;\n}\n\nexport interface IIconLink extends ILink {\n iconSetName: IBaseIconSet['iconSetName'];\n}\n\nconst BaseLink = styled.a`\n cursor: pointer;\n display: block;\n text-decoration: none;\n transition: all 0.2s linear;\n &:focus {\n outline: rgb(0, 0, 0) thin dotted;\n transition: none;\n }\n`;\n\nexport default BaseLink;\n","export const sidebarSections = {\n loyalty: 'loyaltyTier',\n menu: 'accountLinks',\n showcase: 'showcase',\n welcome: 'profileWelcome'\n};\n"],"names":["widthMarginSetup","ContentSpacing","LoyaltyWrapper","loyaltyClass","Loyalty","observer","rewardsLink","className","ServiceView","name","config","serviceName","menuLinkMappings","sidebarAccount","icon","AccountIconSet","iconName","eventToEmit","sidebarOrders","sidebarReorders","sidebarShippingAndBilling","sidebarSubscriptions","sidebarConsultations","sidebarLiveChat","sidebarRewards","sidebarReferAFriend","sidebarSettings","events","sidebarSignOut","LinkUrl","BaseLink","MenuLinks","accountMenuLabelClass","LinkIconAndLabel","link","menuKey","label","iconSetName","Icon","MenuLink","onClick","accountMenuLinkClass","href","url","accountMenuClass","Menu","menu","length","map","key","ShowcaseWrapper","isLastSection","ClickableShowcaseImage","EditorialLink","ShowcaseHeaderLink","StyledSlider","SliderView","sliderImageSettings","dots","arrows","slidesToShow","slidesToScroll","infinite","responsive","breakpoint","settings","lazyload","sliderTextSettings","slideImageClass","slideLinkClass","slideTitleClass","slideTeaserClass","sliderImageClass","sliderCopyClass","ShowcaseTeaser","title","teaser","ShowcaseImageItem","item","img","srcMobile","src","alt","srcSet","sizes","ShowcaseCopyItem","showTeaser","imageRef","copyRef","componentWillUnmount","document","removeEventListener","this","setTabIndexSlickSlides","componentDidMount","imageNav","current","copyNav","addEventListener","Array","from","querySelectorAll","forEach","slide","tabIndex","classList","contains","getElementsByTagName","setAttribute","render","list","props","sliderImageItems","showCaseKey","sliderCopyItems","dataTestId","sliderSettings","items","innerRef","asNavFor","observable","showcaseHeaderClass","showcaseHeaderLinkClass","ShowcaseHeader","header","infoLink","showcaseClass","Showcase","brandServices","ShowcaseSliders","WelcomeWrapper","welcomeClass","Welcome","welcomeBack","getSidebarViewRegistry","featureConfig","componentConfig","controller","loadOnDemand","params","handleMenuLinkOnClick","handleShowcaseOnClick","hideOverlay","isOverlayVisible","data","ResetButtonStyle","CloseButton","CloseIcon","RemoveIcon","sidebarCloseClass","SidebarControls","closeBtnRef","ref","AccountSidebarWrapper","layout","totalSections","OverlayWrapper","TEST_ID_ACCOUNT_SIDEBAR","TEST_ID_ACCOUNT_SIDEBAR_ORDERABLE","accountConfigs","accountSidebarClass","constructor","super","accountSidebarRef","viewController","loaded","componentDidUpdate","updated","onOverlayTransitionEnd","e","overlay","target","stopPropagation","focus","sidebarConfig","accountSidebarConfig","setOrderableConfig","authState","Overlay","handleTransitionEnd","OrderRender","orderConfig","viewRegistry","AccountSidebar","displayName","Status","authStates","SIGNEDIN","ANONYMOUS","RECOGNIZED","AuthenticatedRepository","status","IDLE","fetchedUserAuth","ensureData","isUnfulfilled","initialPromise","loadData","LOADING","fetchData","LOADED","err","ERROR","fetchUserAuthState","query","serviceQueries","Error","includes","action","computed","classNames","classes","component","otherClassNames","addFullBleed","position","extend","viewFunction","viewParams","pad","join","getSingleSections","components","sectionName","sortByRowThenOrder","a","b","positionA","positionB","row","order","createMultiGridLayout","sorted","Object","entries","sort","smallLayout","largeLayout","reduce","grid","section","multipleSections","sameRow","repeat","spaces","getMultipleSections","filter","sidebarLastSection","createSidebarLayout","sidebarSections","loyalty","showcase","welcome"],"sourceRoot":""}