{"version":3,"file":"js/63322-57240fbc363e1a5cdc22.js","mappings":"uPAEA,MAAMA,EAA0CC,EAAAA,YAC9C,CAAC,EAA2CC,KAAG,IAA9C,MAAEC,EAAF,KAASC,EAAT,MAAeC,EAAf,QAAsBC,KAAYC,GAAOC,EAAA,OACxCP,EAAAA,cAAAA,OAAAA,EAAAA,EAAAA,GAAAA,CACEQ,MAAM,6BACNC,QAAQ,YACRR,IAAKA,EACLS,KAAMR,EACNS,MAAOR,EACPS,OAAQT,EACR,kBAAiBE,GACbC,GAEHF,EAAQJ,EAAAA,cAAAA,QAAAA,CAAOa,GAAIR,GAAUD,GAAiB,KAC/CJ,EAAAA,cAAAA,OAAAA,CACEc,SAAS,UACTC,EAAE,+PAKVhB,EAAwCiB,aAAe,CACrDd,MAAO,eACPC,KAAM,GACNC,WAAOa,EACPZ,aAASY,GAEXlB,EAAwCmB,UAAY,CAClDhB,MAAOiB,IAAAA,OACPhB,KAAMgB,IAAAA,OACNf,MAAOe,IAAAA,OACPd,QAASc,IAAAA,QAEX,QChCA,MAAMC,EAAgCpB,EAAAA,YACpC,CAAC,EAA2CC,KAAG,IAA9C,MAAEC,EAAF,KAASC,EAAT,MAAeC,EAAf,QAAsBC,KAAYC,GAAOC,EAAA,OACxCP,EAAAA,cAAAA,OAAAA,EAAAA,EAAAA,GAAAA,CACEU,KAAMR,EACNM,MAAM,6BACNC,QAAQ,YACRR,IAAKA,EACLU,MAAOR,EACPS,OAAQT,EACR,kBAAiBE,GACbC,GAEHF,EAAQJ,EAAAA,cAAAA,QAAAA,CAAOa,GAAIR,GAAUD,GAAiB,KAC/CJ,EAAAA,cAAAA,OAAAA,CACEe,EAAE,0HACFL,KAAK,SAKbU,EAA8BJ,aAAe,CAC3Cd,MAAO,eACPC,KAAM,GACNC,WAAOa,EACPZ,aAASY,GAEXG,EAA8BF,UAAY,CACxChB,MAAOiB,IAAAA,OACPhB,KAAMgB,IAAAA,OACNf,MAAOe,IAAAA,OACPd,QAASc,IAAAA,QAEX,QChCA,MAAME,EAAwCrB,EAAAA,YAC5C,CAAC,EAA2CC,KAAG,IAA9C,MAAEC,EAAF,KAASC,EAAT,MAAeC,EAAf,QAAsBC,KAAYC,GAAOC,EAAA,OACxCP,EAAAA,cAAAA,OAAAA,EAAAA,EAAAA,GAAAA,CACEU,KAAMR,EACNM,MAAM,6BACNC,QAAQ,YACRR,IAAKA,EACLU,MAAOR,EACPS,OAAQT,EACR,kBAAiBE,GACbC,GAEHF,EAAQJ,EAAAA,cAAAA,QAAAA,CAAOa,GAAIR,GAAUD,GAAiB,KAC/CJ,EAAAA,cAAAA,OAAAA,CACEe,EAAE,qEACFL,KAAK,SAKbW,EAAsCL,aAAe,CACnDd,MAAO,eACPC,KAAM,GACNC,WAAOa,EACPZ,aAASY,GAEXI,EAAsCH,UAAY,CAChDhB,MAAOiB,IAAAA,OACPhB,KAAMgB,IAAAA,OACNf,MAAOe,IAAAA,OACPd,QAASc,IAAAA,QAEX,QChCA,MAAMG,EAAuCtB,EAAAA,YAC3C,CAAC,EAA2CC,KAAG,IAA9C,MAAEC,EAAF,KAASC,EAAT,MAAeC,EAAf,QAAsBC,KAAYC,GAAOC,EAAA,OACxCP,EAAAA,cAAAA,OAAAA,EAAAA,EAAAA,GAAAA,CACEU,KAAMR,EACNM,MAAM,6BACNC,QAAQ,YACRR,IAAKA,EACLU,MAAOR,EACPS,OAAQT,EACR,kBAAiBE,GACbC,GAEHF,EAAQJ,EAAAA,cAAAA,QAAAA,CAAOa,GAAIR,GAAUD,GAAiB,KAC/CJ,EAAAA,cAAAA,OAAAA,CACEe,EAAE,gIACFL,KAAK,KAEPV,EAAAA,cAAAA,OAAAA,CAAMe,EAAE,mDAAmDL,KAAK,SAItEY,EAAqCN,aAAe,CAClDd,MAAO,eACPC,KAAM,GACNC,WAAOa,EACPZ,aAASY,GAEXK,EAAqCJ,UAAY,CAC/ChB,MAAOiB,IAAAA,OACPhB,KAAMgB,IAAAA,OACNf,MAAOe,IAAAA,OACPd,QAASc,IAAAA,QAEX,QCjCA,MAAMI,EAA8BvB,EAAAA,YAClC,CAAC,EAA2CC,KAAG,IAA9C,MAAEC,EAAF,KAASC,EAAT,MAAeC,EAAf,QAAsBC,KAAYC,GAAOC,EAAA,OACxCP,EAAAA,cAAAA,OAAAA,EAAAA,EAAAA,GAAAA,CACEU,KAAMR,EACNM,MAAM,6BACNC,QAAQ,YACRR,IAAKA,EACLU,MAAOR,EACPS,OAAQT,EACR,kBAAiBE,GACbC,GAEHF,EAAQJ,EAAAA,cAAAA,QAAAA,CAAOa,GAAIR,GAAUD,GAAiB,KAC/CJ,EAAAA,cAAAA,OAAAA,CACEe,EAAE,+IACFL,KAAK,SAKba,EAA4BP,aAAe,CACzCd,MAAO,eACPC,KAAM,GACNC,WAAOa,EACPZ,aAASY,GAEXM,EAA4BL,UAAY,CACtChB,MAAOiB,IAAAA,OACPhB,KAAMgB,IAAAA,OACNf,MAAOe,IAAAA,OACPd,QAASc,IAAAA,QAEX,QCtBO,MAAMK,EAAcA,CAACC,EAAUC,KACpC,MAAMC,GAAgBC,EAAAA,EAAAA,WAGtBC,EAAAA,EAAAA,YAAU,KACRF,EAAcG,QAAUL,IACvB,CAACA,KAGJI,EAAAA,EAAAA,YAAU,KAGR,IAAMH,GAAmB,IAAVA,GAAgBA,EAAQ,EACrC,OAGF,MAAMb,EAAKkB,aAAY,IAAMJ,EAAcG,WAAWJ,GAEtD,MAAO,IAAMM,cAAcnB,KAC1B,CAACa,KAGN,I,sBCRA,OArBuBO,EAAAA,EAAAA,aACrB,CAAC,EAAqBhC,KAAS,IAA9B,MAAEiC,KAAU5B,GAAOC,EAClB,OACEP,EAAAA,cAAAA,QAAAA,EAAAA,EAAAA,GAAAA,CACEC,IAAKA,EACLiC,MAAO,CACLC,KAAM,gBACNC,SAAU,aACVxB,OAAQ,MACRyB,SAAU,SACVC,SAAU,WACVC,WAAY,SACZ5B,MAAO,SACJuB,IAED5B,OCnBZ,GAAgB,MAAQ,sBAAsB,WAAa,2BAA2B,SAAW,yBAAyB,YAAc,4BAA4B,WAAa,2BAA2B,cAAgB,8BAA8B,WAAa,2BAA2B,cAAgB,8BAA8B,QAAU,wBAAwB,WAAa,2BAA2B,aAAe,6BAA6B,UAAY,0BAA0B,YAAc,4BAA4B,WAAa,2BAA2B,cAAgB,8BAA8B,qBAAuB,qCAAqC,OAAS,uBAAuB,eAAiB,+BAA+B,UAAY,0BAA0B,OAAS,uBAAuB,QAAU,wBAAwB,aAAe,6BAA6B,QAAU,yBCc/4B,MAAMkC,EAAc,CACzBC,MAAO,QACPC,QAAS,UACTC,QAAS,UACTC,KAAM,QAgBFC,EAAc,IA6DdC,EAAa,CACjBC,OAAOC,EAAAA,EAAAA,MAAW,GAAK,SACvBC,MAAMD,EAAAA,EAAAA,MAAW,GAAK,WAgBXE,EAAQC,IAYF,IAZG,SACpBC,EADoB,UAEpBC,EAFoB,UAGpBC,EAAYd,EAAYC,MAHJ,YAIpBc,GAAc,EAJM,iBAKpBC,EAAmBX,EALC,gBAMpBY,EAAkB,OANE,gBAOpBC,GAAkB,EAPE,SAQpBC,GAAW,EARS,SASpBC,EAAW,GATS,QAUpBC,EAAUA,YACPC,GACQX,EACX,MAAM,cAAEY,EAAF,YAAiBC,EAAjB,WAA8BC,EAA9B,YAA0CC,GA1F1B3D,CAAAA,IAAAA,IAAC,KACvB4D,EADuB,SAEvBP,GAIDrD,EAAA,MAME,CACC,CAACiC,EAAYC,OAAQ,CACnBsB,cACE/D,EAAAA,cAACoE,EAAS,CACR,eAAa,EACb,cAAY,aACZjE,KAAMyD,IAGVI,YAAaxB,EAAYC,MACzBwB,WAAY,WACZC,YAAa,eAEf,CAAC1B,EAAYE,SAAU,CACrBqB,cACE/D,EAAAA,cAACqE,EAAW,CACV,eAAa,EACb,cAAY,eACZlE,KAAMyD,IAGVI,YAAaxB,EAAYE,QACzBuB,WAAY,aACZC,YAAa,iBAEf,CAAC1B,EAAYG,SAAU,CACrBoB,cACE/D,EAAAA,cAACsE,EAAW,CACV,eAAa,EACb,cAAY,eACZnE,KAAMyD,IAGVI,YAAaxB,EAAYG,QACzBsB,WAAY,aACZC,YAAa,iBAEf,CAAC1B,EAAYI,MAAO,CAClBmB,cACE/D,EAAAA,cAACuE,EAAQ,CAAC,eAAa,EAAM,cAAY,YAAYpE,KAAMyD,IAE7DI,YAAaxB,EAAYI,KACzBqB,WAAY,UACZC,YAAa,eAEfC,IAkCAK,CAAgB,CAAEL,KAAMb,EAAWM,SAAAA,KAC9Ba,EAAWC,IAAgBC,EAAAA,EAAAA,UAAS7B,EAAWC,OAEhD6B,EAAgBC,UACpBH,EAAa5B,EAAWG,QAEvBD,EAAAA,EAAAA,aAAmB,IAAI8B,SAASC,GAAYC,WAAWD,EAAS,KACjElB,KAUF,OAPArC,GACE,KACEoD,MAEFrB,EAAcC,EAAmB,MAIjCxD,EAAAA,cAAAA,OAAAA,EAAAA,EAAAA,GAAAA,CACEqD,WAAW4B,EAAAA,EAAAA,GACT,eACAC,EAAAA,MACAA,EAAOjB,GACPZ,EACA,CACE,CAAC6B,EAAAA,QAAgBT,IAAc3B,EAAWC,MAC1C,CAACmC,EAAAA,SAAiBT,IAAc3B,EAAWG,OAG/C,cAAc,SAAQa,EAAQjD,KAC9BsE,KAAK,QACL,YAAU,UACNrB,GAEJ9D,EAAAA,cAAAA,MAAAA,CAAKqD,UAAW6B,EAAAA,aAEZvB,GACA3D,EAAAA,cAAAA,MAAAA,CAAKqD,UAAW6B,EAAAA,eAAuBnB,GAIzC/D,EAAAA,cAAAA,MAAAA,CACEqD,WAAW4B,EAAAA,EAAAA,GAAKC,EAAAA,aAAqB,CACnC,CAACA,EAAAA,WAAuC,SAApBzB,EACpB,CAACyB,EAAAA,aAAyC,WAApBzB,EACtB,CAACyB,EAAAA,YAAwC,UAApBzB,KAGvBzD,EAAAA,cAACoF,EAAc,KAAEpB,EAAY,MAC7BhE,EAAAA,cAAAA,MAAAA,KAAMoD,KAINM,GACA1D,EAAAA,cAAAA,MAAAA,CAAKqD,UAAW6B,EAAAA,sBACdlF,EAAAA,cAAAA,SAAAA,CACEqF,QAAST,EACT,aAAW,cACXvB,WAAW4B,EAAAA,EAAAA,GAAKC,EAAAA,OAAeA,EAAOhB,KAEtClE,EAAAA,cAACsF,EAAU,CAAC,eAAa,OAOhC/B,GACCvD,EAAAA,cAAAA,MAAAA,CACEqD,UAAW6B,EAAAA,eACX,aAAW,SAEXhD,MAAO,CAAE,aAAcsB,GACvB,cAAY,sBAEZxD,EAAAA,cAAAA,MAAAA,CAAKqD,UAAW6B,EAAOjB,QC1KjC,MAAMsB,GAAeC,EAAAA,EAAAA,oBAAsCvE,GAC3DsE,EAAaE,YAAc,eC4C3B,I,WC1DA,MAXA,SAAkBC,EAAOC,GAKvB,IAJA,IAAIC,GAAS,EACTC,EAAkB,MAATH,EAAgB,EAAIA,EAAMG,OACnCC,EAASC,MAAMF,KAEVD,EAAQC,GACfC,EAAOF,GAASD,EAASD,EAAME,GAAQA,EAAOF,GAEhD,OAAOI,G,iCCWT,MALA,SAAkBE,GAChB,MAAuB,iBAATA,IACXC,EAAAA,EAAAA,GAAaD,IArBF,oBAqBYE,EAAAA,EAAAA,GAAWF,IChBnCG,EAAcC,EAAAA,EAASA,EAAAA,EAAAA,eAAmBnF,EAC1CoF,EAAiBF,EAAcA,EAAYG,cAAWrF,EA0B1D,MAhBA,SAASsF,EAAaP,GAEpB,GAAoB,iBAATA,EACT,OAAOA,EAET,IAAIQ,EAAAA,EAAAA,GAAQR,GAEV,OAAOS,EAAST,EAAOO,GAAgB,GAEzC,GAAIG,EAASV,GACX,OAAOK,EAAiBA,EAAeM,KAAKX,GAAS,GAEvD,IAAIF,EAAUE,EAAQ,GACtB,MAAkB,KAAVF,GAAkB,EAAIE,IA3BjB,SA2BwC,KAAOF,GCN9D,MAJA,SAAkBE,GAChB,OAAgB,MAATA,EAAgB,GAAKO,EAAaP,ICI3C,MAPA,WACE,IAAIY,EAAOC,UACPC,EAASR,EAASM,EAAK,IAE3B,OAAOA,EAAKf,OAAS,EAAIiB,EAASA,EAAOC,QAAQH,EAAK,GAAIA,EAAK,KCSjE,MAAMI,EAAqBzG,IAQpB,IARqB,OAC1B0G,EAD0B,KAE1BC,EAF0B,SAG1BC,GAKD5G,EACC,GAAI6G,SAASC,cAAc,QACzBD,SAASC,cAAc,SAASC,YAAYL,OACvC,CAELE,EADU,IAAII,MAAO,oBAAmBL,eCvC/BM,EAAWA,CAACC,EAAeN,MACtCtF,EAAAA,EAAAA,YAAU,KD+DqB6F,CAAAA,IAM1B,IAN2B,SAChCP,EADgC,OAEhCQ,EAAS,SAIVD,EACC,IAAKE,OAAOC,QAAS,CACnB,MAAMZ,EAASW,OAAOR,SAASU,cAAc,UACvCC,EAAkBhB,EAAQY,EAAQ,IAAK,KAC7CV,EAAOe,IAAO,kEAAiED,oBAC/Ed,EAAOpC,OAAQ,EACfmC,EAAmB,CAAEC,OAAAA,EAAQC,KAAM,QAASC,SAAAA,MC1E5Cc,CAAkB,CAAEd,SAAAA,MACnB,CAACA,IAeJ,MAAO,CAAEe,OAbMA,KACRN,OAAOC,QAAQM,aAClBP,OAAOC,QAAQO,KAAKC,KAAK,CACvBC,SAAU,yBACVC,MAAO,aACPC,YAAa,sCACbf,MAAAA,IAEFG,OAAOC,QAAQM,YAAa,GAE9BP,OAAOC,QAAQO,KAAKK,YAMxB,IC3BA,EAAiC,6BCmB1B,IAAKC,GAKX,SALWA,GAAAA,EAAY,cAAZA,EAAY,cAAZA,EAAY,oBAAZA,EAAY,gBAKvB,CALWA,IAAAA,EAAY,KAmBxB,MAAMC,EAAc,sBAEdC,EAAQ,QAkId,MAhI6BrI,IAQK,IARJ,kBAC5BsI,EAD4B,OAE5BC,EAF4B,aAG5BC,EAH4B,iBAI5BC,EAJ4B,SAK5BC,EAL4B,UAM5BC,EAN4B,cAO5BC,GAC0B5I,EAC1B,MAAO6I,EAAOC,IAAY1E,EAAAA,EAAAA,UACxBoE,EAAe,CAAEO,SAAU9G,EAAYC,MAAO8G,QAASR,GAAiB,OAGpE,SAAE5B,IAAaqC,EAAAA,EAAAA,0BAEbC,EAAGC,IAAOC,EAAAA,EAAAA,0BACVC,MAAOC,IAAWC,EAAAA,EAAAA,uBAClB5B,OAAQ6B,GAAgBvC,EAASsB,EAAOkB,WAAY7C,GAEtDsC,GAAIQ,EAAAA,EAAAA,UACR,IAAM,CAACC,EAAaC,IAClBT,EAAI,GAAEf,KAAeuB,IAAO,IAAKC,KACnC,CAACT,IAGGE,GAAQQ,EAAAA,EAAAA,cACXC,IACCR,EAAO,CACLS,SAAU,aACVC,KAAM,UACHF,EACHG,WAAY,IACPH,EAAOG,gBAIhB,CAACX,IAGGY,EAAmB,CACvB,CAAC/B,EAAagC,UAAW,CACvBC,QAAS,WACTC,SAAS,EACTC,QAAShC,EAAkBH,EAAagC,WAE1C,CAAChC,EAAaoC,QAAS,CACrBH,QAAS,SACTC,SAAS,EACTC,QAAShC,EAAkBH,EAAaoC,SAE1C,CAACpC,EAAaqC,OAAQ,CACpBJ,QAAS,QACTC,QAAS9B,EAAOkC,aAChBH,QAAS,KAkBb,OACE7K,EAAAA,cAAAA,EAAAA,SAAAA,KACGoJ,GACCpJ,EAAAA,cAACkD,EAAK,CACJ,UAAQ,QACRQ,iBAAiB,EACjBJ,UAAW8F,EAAME,UAEhBF,EAAMG,SAIV0B,OAAOC,QAAQT,GAAkBU,KAChChI,IAAAA,IAAE+G,GAAK,QAAEU,EAAF,QAAWD,EAAX,QAAoBE,IAAU1H,EAAA,OACnCyH,GACE5K,EAAAA,cAACoL,EAAAA,EAAiB,CAChBlB,IAAKA,EACLS,QAASA,EACTtF,QAASA,IAhCQgG,EAACC,EAAsBT,KAClDjB,EAAM,CACJ2B,OAAQ,QACRC,QAAU,GAAEF,aAGVA,IAAW5C,EAAaqC,MAE1BhB,IAEAnC,OAAO6D,SAASC,OAAOb,IAsBAQ,CAAqBnB,EAAqBW,GACzD,cAAc,GAAEX,cAEfT,EAAG,gBAAeS,gBAK3BlK,EAAAA,cAAC2L,EAAAA,EAAS,CAAC/C,MAAOA,EAAOgD,KAAMnC,EAAE,WAEjCzJ,EAAAA,cAAC6L,EAAAA,EAAqB,CACpBC,iBAAiB,QACjB9C,iBAAkBA,EAClBC,SAAUA,EACVC,UAAWA,EACXG,SAAUA,EACVO,MAAOA,EACPhB,MAAOA,EACPmD,KAAK,OACL5C,cAAeA,EACf6C,SAAS,QAGXhM,EAAAA,cAACiM,EAAAA,EAAc,CAACC,WAAYvD,IAC5B3I,EAAAA,cAAAA,IAAAA,CAAGqD,UAAW6B,GACXuE,EAAG,oBAAoB,IACxBzJ,EAAAA,cAAAA,IAAAA,CACEmM,KAAK,SACL9G,QAASA,KACPuE,EAAM,CAAE2B,OAAQ,QAASC,QAAS,2BAGnC/B,EAAG,e,sECnJd,MAAM2C,EAASpM,EAAAA,YACb,CAAC,EAAwDC,KAAG,IAA3D,SAAEmD,EAAF,UAAYC,EAAZ,QAAuBsH,EAAU,aAAcrK,GAAOC,EAAA,OACrDP,EAAAA,cAAAA,UAAAA,EAAAA,EAAAA,GAAAA,CACEqD,WAAW4B,EAAAA,EAAAA,GAAKC,EAAAA,EAAAA,IAAYA,EAAAA,EAAOyF,GAAUtH,GAC7CpD,IAAKA,GACDK,GAEH8C,MAKP,O,0ICNA,OAfmBnB,EAAAA,EAAAA,aACjB,CAAC,EAAmEhC,KAAS,IAA5E,KAAEkM,EAAF,SAAQ/I,EAAR,UAAkBC,EAAlB,QAA6BsH,EAAU,aAAc0B,GAAY9L,EAChE,OACEP,EAAAA,cAAAA,KAAAA,EAAAA,EAAAA,GAAAA,CACEC,IAAKA,EACLkM,KAAMA,EACN9I,WAAW4B,EAAAA,EAAAA,GAAKC,EAAAA,EAAAA,IAAYA,EAAAA,EAAOyF,GAAUtH,IACzCgJ,GAEHjJ,O,sGC0BT,MA9BA,SAAmB7C,GAQE,IARD,UAClB8C,EADkB,IAElBiJ,EAAM,SAFY,MAGlB3L,EAAQ,OAHU,OAIlBC,EAAS,OAJS,KAKlBF,EAAOR,EAAAA,GALW,MAMlBgC,KACG5B,GACaC,EAChB,OACEP,EAAAA,cAAAA,OAAAA,EAAAA,EAAAA,GAAAA,CACEmF,KAAK,MACL1E,QAAQ,aACR,kBAAgB,aAChB4C,WAAW4B,EAAAA,EAAAA,GAAK5B,GAChB7C,MAAM,6BACN0B,MAAO,CAAEqK,QAAS,QAAS5L,MAAAA,EAAOC,OAAAA,KAAWsB,IACzC5B,GAEJN,EAAAA,cAAAA,QAAAA,CAAOa,GAAG,cAAcyL,GACxBtM,EAAAA,cAAAA,OAAAA,CACEc,SAAS,UACT0L,SAAS,UACTzL,EAAE,i6CACFL,KAAMA,O,sBC9Bd,SAAS+L,EAAMC,GACb,IAAIC,EACFC,EACAC,EAAM,GAER,GAAmB,kBAARH,GAAmC,kBAARA,EACpCG,GAAOH,OACF,GAAmB,kBAARA,EAChB,GAAI3G,MAAMS,QAAQkG,GAChB,IAAKC,EAAI,EAAGA,EAAID,EAAI7G,OAAQ8G,IACtBD,EAAIC,KACDC,EAAIH,EAAMC,EAAIC,OACjBE,IAAQA,GAAO,KACfA,GAAOD,QAKb,IAAKD,KAAKD,EACHA,IAAOA,EAAIC,KACdE,IAAQA,GAAO,KACfA,GAAOF,GAMf,OAAOE,EAoBT,IAjBO,WAAwC,IAAD,uBAAtBC,EAAK,aAAAC,EAAAA,EAAAA,EAAAA,EAAAA,IAALD,EAAK,GAAAjG,UAAAA,GAC3B,IACEmG,EACAC,EAFEC,EAAI,EAGNL,EAAM,GAER,KAAOK,EAAIrG,UAAUhB,SACdmH,EAAMnG,UAAUqG,QACdD,EAAIR,EAAMO,MACbH,IAAQA,GAAO,KACfA,GAAOI,GAIb,OAAOJ,I,yBChDLzG,E,SAAS,SAEb,O,oECFI+G,EAAclC,OAAOmC,UAGrB,EAAiBD,EAAYE,eAO7BC,EAAuBH,EAAY7G,SAGnCiH,EAAiB,IAAS,qBAAqBtM,EA6BnD,MApBA,SAAmB+E,GACjB,IAAIwH,EAAQ,EAAe7G,KAAKX,EAAOuH,GACnCE,EAAMzH,EAAMuH,GAEhB,IACEvH,EAAMuH,QAAkBtM,EACxB,IAAIyM,GAAW,EACf,MAAOC,IAET,IAAI7H,EAASwH,EAAqB3G,KAAKX,GAQvC,OAPI0H,IACEF,EACFxH,EAAMuH,GAAkBE,SAEjBzH,EAAMuH,IAGVzH,GClCL,EAPcmF,OAAOmC,UAOc9G,SAavC,MAJA,SAAwBN,GACtB,OAAO,EAAqBW,KAAKX,ICT/B,EAAiB,IAAS,qBAAqB/E,EAkBnD,MATA,SAAoB+E,GAClB,OAAa,MAATA,OACe/E,IAAV+E,EAdQ,qBADL,gBAiBJ,GAAkB,KAAkBiF,OAAOjF,GAC/C,EAAUA,GACV,EAAeA,K,oBCMrB,IArBA,SAAmBN,EAAOkI,EAAOC,GAC/B,IAAIjI,GAAS,EACTC,EAASH,EAAMG,OAEf+H,EAAQ,IACVA,GAASA,EAAQ/H,EAAS,EAAKA,EAAS+H,IAE1CC,EAAMA,EAAMhI,EAASA,EAASgI,GACpB,IACRA,GAAOhI,GAETA,EAAS+H,EAAQC,EAAM,EAAMA,EAAMD,IAAW,EAC9CA,KAAW,EAGX,IADA,IAAI9H,EAASC,MAAMF,KACVD,EAAQC,GACfC,EAAOF,GAASF,EAAME,EAAQgI,GAEhC,OAAO9H,I,mECPT,MAXA,SAAkBJ,EAAOC,GAKvB,IAJA,IAAIC,GAAS,EACTC,EAAkB,MAATH,EAAgB,EAAIA,EAAMG,OACnCC,EAASC,MAAMF,KAEVD,EAAQC,GACfC,EAAOF,GAASD,EAASD,EAAME,GAAQA,EAAOF,GAEhD,OAAOI,G,sBCRLK,EAAc,IAAS,mBAAmBlF,EAC1CoF,EAAiBF,EAAcA,EAAYG,cAAWrF,EA0B1D,MAhBA,SAASsF,EAAaP,GAEpB,GAAoB,iBAATA,EACT,OAAOA,EAET,IAAI,EAAAQ,EAAA,GAAQR,GAEV,OAAO,EAASA,EAAOO,GAAgB,GAEzC,IAAI,EAAAG,EAAA,GAASV,GACX,OAAOK,EAAiBA,EAAeM,KAAKX,GAAS,GAEvD,IAAIF,EAAUE,EAAQ,GACtB,MAAkB,KAAVF,GAAkB,EAAIE,IA3BjB,SA2BwC,KAAOF,I,qCChB9D,IANA,SAAmBJ,EAAOkI,EAAOC,GAC/B,IAAIhI,EAASH,EAAMG,OAEnB,OADAgI,OAAc5M,IAAR4M,EAAoBhI,EAASgI,GAC1BD,GAASC,GAAOhI,EAAUH,GAAQ,OAAUA,EAAOkI,EAAOC,K,sBCbrE,IAAIC,EAA8B,iBAAV,EAAAC,GAAsB,EAAAA,GAAU,EAAAA,EAAO9C,SAAWA,QAAU,EAAA8C,EAEpF,O,oBCFA,IAWIC,EAAeC,OAAO,uFAa1B,IAJA,SAAoBnH,GAClB,OAAOkH,EAAaE,KAAKpH,K,qCCnBvBqH,EAA0B,iBAARC,MAAoBA,MAAQA,KAAKnD,SAAWA,QAAUmD,KAGxEC,EAAO,KAAcF,GAAYG,SAAS,cAATA,GAErC,O,sDCGA,MAJA,SAAsBxH,GACpB,OAAOA,EAAOyH,MAAM,K,WCClBC,EAAW,oBACXC,EAAU,kDACVC,EAAS,2BAETC,EAAc,qBACdC,EAAa,kCACbC,EAAa,qCAIbC,EAPa,MAAQL,EAAU,IAAMC,EAAS,IAOtB,IACxBK,EAAW,oBAEXC,EAAQD,EAAWD,GADP,gBAAwB,CAACH,EAAaC,EAAYC,GAAYI,KAAK,KAAO,IAAMF,EAAWD,EAAW,MAElHI,EAAW,MAAQ,CAACP,EAAcF,EAAU,IAAKA,EAASG,EAAYC,EAAYL,GAAUS,KAAK,KAAO,IAGxGE,EAAYlB,OAAOS,EAAS,MAAQA,EAAS,KAAOQ,EAAWF,EAAO,KAa1E,MAJA,SAAwBlI,GACtB,OAAOA,EAAOsI,MAAMD,IAAc,ICnBpC,MANA,SAAuBrI,GACrB,OAAO,OAAWA,GACd,EAAeA,GACf,EAAaA,K,oCCSfuI,GAAY,E,SAAA,IAAiB,SAASvJ,EAAQwJ,EAAM1J,GAEtD,OADA0J,EAAOA,EAAKC,cACLzJ,GAAUF,GAAQ,OAAW0J,GAAQA,MAG9C,O,+CCNA,IAJA,SAAoBxI,GAClB,OAAO,QAAW,OAASA,GAAQyI,iB,oBCIrC,IAAI/I,EAAUT,MAAMS,QAEpB,O,oBCGA,IAJA,SAAsBR,GACpB,OAAgB,MAATA,GAAiC,iBAATA,I,gDCGjC,IALA,SAAkBA,GAChB,MAAuB,iBAATA,IACX,OAAaA,IArBF,oBAqBY,OAAWA,K,oCCEvC,IAJA,SAAkBA,GAChB,OAAgB,MAATA,EAAgB,IAAK,OAAaA,K,sGCQ3C,ICXA,EDTA,SAAyBwJ,GACvB,OAAO,SAAS1I,GACdA,GAAS,OAASA,GAElB,IAAI2I,GAAa,OAAW3I,IACxB,OAAcA,QACd7F,EAEAyO,EAAMD,EACNA,EAAW,GACX3I,EAAO6I,OAAO,GAEdC,EAAWH,GACX,OAAUA,EAAY,GAAGR,KAAK,IAC9BnI,EAAO+I,MAAM,GAEjB,OAAOH,EAAIF,KAAgBI,GCTd,CAAgB,gB,oBClBjC,KAAgB,IAAM,qBAAqB,QAAU,yBAAyB,QAAU,yBAAyB,eAAiB,gCAAgC,UAAY,2BAA2B,KAAO,sBAAsB,KAAO","sources":["webpack://StravaModern/./node_modules/@strava/ui/node_modules/@strava/icons/dist/ActionsCancelCircleHighlightedMedium.js","webpack://StravaModern/./node_modules/@strava/ui/node_modules/@strava/icons/dist/ActionsCheckCircleOnMedium.js","webpack://StravaModern/./node_modules/@strava/ui/node_modules/@strava/icons/dist/NavigationWarningHighlightedMedium.js","webpack://StravaModern/./node_modules/@strava/ui/node_modules/@strava/icons/dist/NavigationInformationNormalMedium.js","webpack://StravaModern/./node_modules/@strava/ui/node_modules/@strava/icons/dist/ActionsCancelNormalSmall.js","webpack://StravaModern/./node_modules/@strava/ui/node_modules/@strava/react-hooks/src/use-interval/useInterval.hook.js","webpack://StravaModern/./node_modules/@strava/ui/VisuallyHidden/VisuallyHidden.tsx","webpack://StravaModern/./node_modules/@strava/ui/Alert/Alert.module.scss?7e0f","webpack://StravaModern/./node_modules/@strava/ui/Alert/Alert.tsx","webpack://StravaModern/./node_modules/@strava/ui/Alert/AlertProvider/AlertContext.tsx","webpack://StravaModern/./node_modules/@strava/ui/Alert/AlertProvider/AlertContainer.tsx","webpack://StravaModern/./node_modules/@strava/utils/node_modules/lodash-es/_arrayMap.js","webpack://StravaModern/./node_modules/@strava/utils/node_modules/lodash-es/isSymbol.js","webpack://StravaModern/./node_modules/@strava/utils/node_modules/lodash-es/_baseToString.js","webpack://StravaModern/./node_modules/@strava/utils/node_modules/lodash-es/toString.js","webpack://StravaModern/./node_modules/@strava/utils/node_modules/lodash-es/replace.js","webpack://StravaModern/./node_modules/@strava/utils/src/externalSocialPartners/externalSocialPartners.ts","webpack://StravaModern/./node_modules/@strava/utils/src/externalSocialPartners/useApple.ts","webpack://StravaModern/./node_modules/@strava/loh-registration-panel-ui/src/LohRegistrationPanel.module.scss?4fc4","webpack://StravaModern/./node_modules/@strava/loh-registration-panel-ui/src/LohRegistrationPanel.tsx","webpack://StravaModern/./node_modules/@strava/ui/Button/Button.tsx","webpack://StravaModern/./node_modules/@strava/ui/Button/LinkButton.tsx","webpack://StravaModern/./node_modules/@strava/ui/StravaLogo/StravaLogo.tsx","webpack://StravaModern/./node_modules/@strava/ui/clsx/clsx.ts","webpack://StravaModern/./node_modules/lodash-es/_Symbol.js","webpack://StravaModern/./node_modules/lodash-es/_getRawTag.js","webpack://StravaModern/./node_modules/lodash-es/_objectToString.js","webpack://StravaModern/./node_modules/lodash-es/_baseGetTag.js","webpack://StravaModern/./node_modules/lodash-es/_baseSlice.js","webpack://StravaModern/./node_modules/lodash-es/_arrayMap.js","webpack://StravaModern/./node_modules/lodash-es/_baseToString.js","webpack://StravaModern/./node_modules/lodash-es/_castSlice.js","webpack://StravaModern/./node_modules/lodash-es/_freeGlobal.js","webpack://StravaModern/./node_modules/lodash-es/_hasUnicode.js","webpack://StravaModern/./node_modules/lodash-es/_root.js","webpack://StravaModern/./node_modules/lodash-es/_asciiToArray.js","webpack://StravaModern/./node_modules/lodash-es/_unicodeToArray.js","webpack://StravaModern/./node_modules/lodash-es/_stringToArray.js","webpack://StravaModern/./node_modules/lodash-es/camelCase.js","webpack://StravaModern/./node_modules/lodash-es/capitalize.js","webpack://StravaModern/./node_modules/lodash-es/isArray.js","webpack://StravaModern/./node_modules/lodash-es/isObjectLike.js","webpack://StravaModern/./node_modules/lodash-es/isSymbol.js","webpack://StravaModern/./node_modules/lodash-es/toString.js","webpack://StravaModern/./node_modules/lodash-es/_createCaseFirst.js","webpack://StravaModern/./node_modules/lodash-es/upperFirst.js","webpack://StravaModern/./node_modules/@strava/ui/Button/styles.module.scss?9bcd"],"sourcesContent":["import * as React from \"react\";\nimport PropTypes from \"prop-types\";\nconst SvgActionsCancelCircleHighlightedMedium = React.forwardRef(\n ({ color, size, title, titleId, ...props }, ref) => (\n \n {title ? {title} : null}\n \n \n )\n);\nSvgActionsCancelCircleHighlightedMedium.defaultProps = {\n color: \"currentColor\",\n size: 32,\n title: undefined,\n titleId: undefined,\n};\nSvgActionsCancelCircleHighlightedMedium.propTypes = {\n color: PropTypes.string,\n size: PropTypes.number,\n title: PropTypes.string,\n titleId: PropTypes.string,\n};\nexport default SvgActionsCancelCircleHighlightedMedium;\n","import * as React from \"react\";\nimport PropTypes from \"prop-types\";\nconst SvgActionsCheckCircleOnMedium = React.forwardRef(\n ({ color, size, title, titleId, ...props }, ref) => (\n \n {title ? {title} : null}\n \n \n )\n);\nSvgActionsCheckCircleOnMedium.defaultProps = {\n color: \"currentColor\",\n size: 32,\n title: undefined,\n titleId: undefined,\n};\nSvgActionsCheckCircleOnMedium.propTypes = {\n color: PropTypes.string,\n size: PropTypes.number,\n title: PropTypes.string,\n titleId: PropTypes.string,\n};\nexport default SvgActionsCheckCircleOnMedium;\n","import * as React from \"react\";\nimport PropTypes from \"prop-types\";\nconst SvgNavigationWarningHighlightedMedium = React.forwardRef(\n ({ color, size, title, titleId, ...props }, ref) => (\n \n {title ? {title} : null}\n \n \n )\n);\nSvgNavigationWarningHighlightedMedium.defaultProps = {\n color: \"currentColor\",\n size: 32,\n title: undefined,\n titleId: undefined,\n};\nSvgNavigationWarningHighlightedMedium.propTypes = {\n color: PropTypes.string,\n size: PropTypes.number,\n title: PropTypes.string,\n titleId: PropTypes.string,\n};\nexport default SvgNavigationWarningHighlightedMedium;\n","import * as React from \"react\";\nimport PropTypes from \"prop-types\";\nconst SvgNavigationInformationNormalMedium = React.forwardRef(\n ({ color, size, title, titleId, ...props }, ref) => (\n \n {title ? {title} : null}\n \n \n \n )\n);\nSvgNavigationInformationNormalMedium.defaultProps = {\n color: \"currentColor\",\n size: 32,\n title: undefined,\n titleId: undefined,\n};\nSvgNavigationInformationNormalMedium.propTypes = {\n color: PropTypes.string,\n size: PropTypes.number,\n title: PropTypes.string,\n titleId: PropTypes.string,\n};\nexport default SvgNavigationInformationNormalMedium;\n","import * as React from \"react\";\nimport PropTypes from \"prop-types\";\nconst SvgActionsCancelNormalSmall = React.forwardRef(\n ({ color, size, title, titleId, ...props }, ref) => (\n \n {title ? {title} : null}\n \n \n )\n);\nSvgActionsCancelNormalSmall.defaultProps = {\n color: \"currentColor\",\n size: 24,\n title: undefined,\n titleId: undefined,\n};\nSvgActionsCancelNormalSmall.propTypes = {\n color: PropTypes.string,\n size: PropTypes.number,\n title: PropTypes.string,\n titleId: PropTypes.string,\n};\nexport default SvgActionsCancelNormalSmall;\n","import { useRef, useEffect } from 'react';\n\n/**\n * Declarative setInterval React hook.\n *\n * `useInterval` uses the same API as setInterval, but the arguments of this hook is \"dynamic\".\n * Set your `callback` function as the first argument and the `delay` as the second argument.\n * When passing `null` or `undefined` to the `delay` arg then it will stop/pause the interval.\n *\n * For implementation details explanation, why to use useInterval hook, and an example see Dan Abramov's blog post\n * 👀: https://overreacted.io/making-setinterval-declarative-with-react-hooks/\n * */\nexport const useInterval = (callback, delay) => {\n const savedCallback = useRef();\n\n // Remember the latest callback.\n useEffect(() => {\n savedCallback.current = callback;\n }, [callback]);\n\n // Set up the interval.\n useEffect(() => {\n // If no delay then pause/stop the interval.\n // Delay of 0 is valid delay.\n if ((!delay && delay !== 0) || delay < 0) {\n return;\n }\n\n const id = setInterval(() => savedCallback.current(), delay);\n // eslint-disable-next-line consistent-return\n return () => clearInterval(id);\n }, [delay]);\n};\n\nexport default useInterval;\n","import React, { forwardRef } from 'react';\n\ntype VisuallyHiddenProps = React.ComponentPropsWithoutRef<'span'>;\n\n// visually hidden styling comes from https://www.a11yproject.com/posts/how-to-hide-content/\nconst VisuallyHidden = forwardRef(\n ({ style, ...props }, ref) => {\n return (\n \n );\n }\n);\n\nexport default VisuallyHidden;\n","// extracted by mini-css-extract-plugin\nexport default {\"alert\":\"Alert--alert--mHJG0\",\"alertInner\":\"Alert--alertInner--Cohht\",\"hasError\":\"Alert--hasError--6H8nL\",\"buttonError\":\"Alert--buttonError--JNCju\",\"hasWarning\":\"Alert--hasWarning--XMcB+\",\"buttonWarning\":\"Alert--buttonWarning--B8+01\",\"hasSuccess\":\"Alert--hasSuccess--HEVyx\",\"buttonSuccess\":\"Alert--buttonSuccess--8cDF1\",\"hasInfo\":\"Alert--hasInfo--cIXeI\",\"buttonInfo\":\"Alert--buttonInfo--3W2YL\",\"alertContent\":\"Alert--alertContent--Ady-v\",\"alignLeft\":\"Alert--alignLeft--TWc3-\",\"alignCenter\":\"Alert--alignCenter--Wjvd+\",\"alignRight\":\"Alert--alignRight--GltzN\",\"indicatorIcon\":\"Alert--indicatorIcon--mcHuS\",\"closeButtonContainer\":\"Alert--closeButtonContainer--0bGld\",\"button\":\"Alert--button--j9wSm\",\"autoDismissBar\":\"Alert--autoDismissBar--mBh+B\",\"countdown\":\"Alert--countdown--4hdDW\",\"fadeIn\":\"Alert--fadeIn--m0c6K\",\"fadeOut\":\"Alert--fadeOut--V2zHS\",\"enterFadeOut\":\"Alert--enterFadeOut--ZHCGw\",\"newKudo\":\"Alert--newKudo--xwJ9a\"};","import React, { ComponentPropsWithoutRef, ReactNode, useState } from 'react';\n// import ReachAlert from '@reach/alert';\nimport {\n ActionsCancelCircleHighlightedMedium as ErrorIcon,\n ActionsCheckCircleOnMedium as SuccessIcon,\n NavigationWarningHighlightedMedium as WarningIcon,\n NavigationInformationNormalMedium as InfoIcon,\n ActionsCancelNormalSmall as CancelIcon\n} from '@strava/icons';\nimport { useInterval } from '@strava/react-hooks';\nimport { isTest } from '@strava/utils';\nimport clsx from '../clsx';\nimport VisuallyHidden from '../VisuallyHidden';\nimport styles from './Alert.module.scss';\n\nexport const AlertStatus = {\n ERROR: 'error',\n SUCCESS: 'success',\n WARNING: 'warning',\n INFO: 'info'\n} as const;\n\nexport type AlertStatusType = (typeof AlertStatus)[keyof typeof AlertStatus];\n\nexport type AlertStyleType =\n | 'hasError'\n | 'hasSuccess'\n | 'hasWarning'\n | 'hasInfo';\nexport type AlertButtonStyleType =\n | 'buttonError'\n | 'buttonSuccess'\n | 'buttonWarning'\n | 'buttonInfo';\n\nconst ALERT_DELAY = 8000;\n\nconst getAlertDetails = ({\n type,\n iconSize\n}: {\n type: AlertStatusType;\n iconSize: number;\n}): {\n indicatorIcon: ReactNode;\n messageType: AlertStatusType;\n alertStyle: AlertStyleType;\n buttonStyle: AlertButtonStyleType;\n} =>\n ({\n [AlertStatus.ERROR]: {\n indicatorIcon: (\n \n ),\n messageType: AlertStatus.ERROR,\n alertStyle: 'hasError' as const,\n buttonStyle: 'buttonError' as const\n },\n [AlertStatus.SUCCESS]: {\n indicatorIcon: (\n \n ),\n messageType: AlertStatus.SUCCESS,\n alertStyle: 'hasSuccess' as const,\n buttonStyle: 'buttonSuccess' as const\n },\n [AlertStatus.WARNING]: {\n indicatorIcon: (\n \n ),\n messageType: AlertStatus.WARNING,\n alertStyle: 'hasWarning' as const,\n buttonStyle: 'buttonWarning' as const\n },\n [AlertStatus.INFO]: {\n indicatorIcon: (\n \n ),\n messageType: AlertStatus.INFO,\n alertStyle: 'hasInfo' as const,\n buttonStyle: 'buttonInfo' as const\n }\n }[type]);\n\nconst fadeStyles = {\n enter: isTest() ? '' : 'fadeIn',\n exit: isTest() ? '' : 'fadeOut'\n};\n\nexport interface AlertProps extends ComponentPropsWithoutRef<'div'> {\n children: ReactNode;\n alertType?: AlertStatusType;\n autoDismiss?: boolean;\n autoDismissDelay?: number;\n className?: string;\n contentPosition?: 'left' | 'center' | 'right';\n hideCloseButton?: boolean;\n hideIcon?: boolean;\n iconSize?: number;\n onClose?: () => void;\n}\n\nexport const Alert = ({\n children,\n className,\n alertType = AlertStatus.ERROR,\n autoDismiss = false,\n autoDismissDelay = ALERT_DELAY,\n contentPosition = 'left',\n hideCloseButton = false,\n hideIcon = true,\n iconSize = 32,\n onClose = () => {},\n ...options\n}: AlertProps) => {\n const { indicatorIcon, messageType, alertStyle, buttonStyle } =\n getAlertDetails({ type: alertType, iconSize });\n const [fadeStyle, setFadeStyle] = useState(fadeStyles.enter);\n\n const handleOnClose = async () => {\n setFadeStyle(fadeStyles.exit);\n // eslint-disable-next-line no-unused-expressions\n !isTest() && (await new Promise((resolve) => setTimeout(resolve, 0)));\n onClose();\n };\n\n useInterval(\n () => {\n handleOnClose();\n },\n autoDismiss ? autoDismissDelay : null\n );\n\n return (\n \n
\n {/* Icon */}\n {!hideIcon && (\n
{indicatorIcon}
\n )}\n\n {/* Content */}\n \n {messageType}: \n
{children}
\n
\n\n {/* Close Button */}\n {!hideCloseButton && (\n
\n \n \n \n
\n )}\n \n\n {/* Auto Dismiss Progress */}\n {autoDismiss && (\n \n
\n
\n )}\n \n );\n};\n\nexport default Alert;\n","import React, {\n createContext,\n ReactNode,\n useCallback,\n useContext,\n useMemo\n} from 'react';\nimport { useQueue } from '@strava/react-hooks';\nimport { generateRandomId } from '@strava/utils';\nimport { AlertStatusType } from '../Alert';\n\nexport interface AlertConfig {\n alertType: AlertStatusType;\n content: ReactNode;\n containerId?: string;\n id?: string;\n className?: string;\n autoDismiss?: boolean;\n autoDismissDelay?: number;\n contentPosition?: 'left' | 'center' | 'right';\n hideCloseButton?: boolean;\n hideIcon?: boolean;\n iconSize?: number;\n onClose?: () => void;\n}\n\nexport interface AlertState {\n alerts: AlertConfig[];\n showAlert: (config: AlertConfig) => string;\n hideAlert: (id: string) => void;\n clearAlerts: (containerId?: string) => void;\n}\n\nconst AlertContext = createContext(undefined);\nAlertContext.displayName = 'AlertContext';\n\nexport const useAlertContext = () => {\n const context = useContext(AlertContext);\n\n // Fail fast if useAlertContext hook is used outside the Provider.\n if (!context) {\n throw new Error(`useAlertContext must be used within the AlertProvider`);\n }\n\n return context;\n};\n\ninterface AlertProviderProps {\n children: ReactNode;\n}\n\nexport const AlertProvider = ({ children }: AlertProviderProps) => {\n const { queue, updateQueue, clearQueue } = useQueue({\n initialValues: []\n });\n\n /**\n * @description Display an alert.\n *\n * @param {Object} alertConfig\n * @param {'error' | 'warning' | 'info' | 'success'} alertConfig.alertType\n * @param {ReactNode} alertConfig.content - Message to display in the the content of the Alert Component.\n * @param {string} [alertConfig.containerId=\"base\"] - It's used to identify which `AlertContainer` the alert is associated to.\n * @param {string | number} [alertConfig.id] - Optional; by default id is randomly generated. Used to update or close alert.\n * @param {string} [alertConfig.className] - The className passed to Alert component.\n * @param {boolean} [alertConfig.autoDismiss=false] - Determine if alert will auto dismiss/close.\n * @param {number} [alertConfig.autoDismissDelay=8000] - Delay in ms that alert will auto dismiss.\n * @param {'left' | 'center' | 'right'} [alertConfig.contentPosition=\"left\"] - Position to align content inside of alert container.\n * @param {boolean} [alertConfig.hideCloseButton=false] - Hides the close button, alert can only be closed programmatically.\n * @param {boolean} [alertConfig.hideIcon=false] - Display or hide alert icon.\n * @param {number} [alertConfig.iconSize=32] - The Alert's SVG icon's width and height.\n * @param {Function} [alertConfig.onClose] - Callback fn; called when alert closes.\n *\n * @return {string} - Alert ID\n */\n const showAlert = useCallback(\n (alertConfig: AlertConfig) => {\n const id = alertConfig.id ?? generateRandomId();\n const containerId = alertConfig.containerId ?? 'base';\n\n updateQueue((alerts) => {\n const hasAlert =\n alertConfig?.id &&\n alerts.some((alert) => alert.id === alertConfig.id);\n // Check if alert exist in queue.\n // If true then return hasAlerts\n // Else add/append alert to queue.\n if (hasAlert) {\n return alerts;\n }\n\n return [...alerts, { ...alertConfig, id, containerId }];\n });\n\n return `${id}`;\n },\n [updateQueue]\n );\n\n /**\n * @description Hide an alert by id.\n *\n * @param {string} id - Unique id to hide/remove alert.\n *\n * @return {boolean}\n * */\n const hideAlert = useCallback(\n (id) =>\n updateQueue((alerts) =>\n alerts.filter((alert) => {\n if (alert.id === id) {\n // eslint-disable-next-line no-unused-expressions\n alert?.onClose?.();\n return false;\n }\n\n return true;\n })\n ),\n [updateQueue]\n );\n\n /**\n * @description Clears/remove all alerts.\n * If no `containerId` provided then removes ALL alerts. Else if `containerId`\n * provided then clears alerts for specific container when working with multiple containers.\n *\n * @param {string} [containerId] - Optional; Clear alerts for specific container when working with multiple containers.\n *\n * @return {boolean}\n * */\n const clearAlerts = useCallback(\n (containerId) => {\n // If containerId is passed then remove all alerts for specific container\n if (containerId) {\n return updateQueue((alerts) =>\n alerts.filter((alert) => {\n if (alert.containerId === containerId) {\n // eslint-disable-next-line no-unused-expressions\n alert?.onClose?.();\n return false;\n }\n\n return true;\n })\n );\n }\n // Else clear entire queue\n return clearQueue();\n },\n [updateQueue, clearQueue]\n );\n\n const providerState = useMemo(\n () => ({\n alerts: queue,\n showAlert,\n hideAlert,\n clearAlerts\n }),\n [queue, showAlert, hideAlert, clearAlerts]\n );\n\n return (\n \n {children}\n \n );\n};\n","import React from 'react';\nimport { AlertConfig, useAlertContext } from './AlertContext';\nimport Alert from '../Alert';\nimport styles from './AlertContainer.module.scss';\n\nconst defaultTranslateAlertInfoText = (\n totalAlertsShown: number,\n totalAlerts: number\n) => `Showing ${totalAlertsShown} of ${totalAlerts} alerts`;\n\ninterface AlertContainerProps {\n containerId?: string;\n limit?: number;\n shouldShowAlertInfoText?: boolean;\n translateAlertInfoText?: typeof defaultTranslateAlertInfoText;\n}\n\nexport const AlertContainer = ({\n containerId = 'base',\n limit,\n shouldShowAlertInfoText = true,\n translateAlertInfoText = defaultTranslateAlertInfoText\n}: AlertContainerProps) => {\n const { alerts, hideAlert } = useAlertContext();\n\n const handleOnClose = (id?: string) => {\n if (id) {\n hideAlert(id);\n }\n };\n\n const filterLimit = (_: unknown, index: number) => !limit || index < limit;\n const filterContainer = (alert: AlertConfig) =>\n alert?.containerId === containerId;\n\n const totalAlerts = alerts.filter(filterContainer).length;\n const totalAlertsShown = alerts\n .filter(filterContainer)\n .filter(filterLimit).length;\n\n return (\n <>\n {alerts\n .filter(filterContainer)\n .filter(filterLimit)\n .map(\n ({\n alertType,\n id,\n content,\n containerId: containerIdProp,\n ...rest\n }) => (\n handleOnClose(id)}\n >\n {content}\n \n )\n )}\n {shouldShowAlertInfoText && totalAlerts > totalAlertsShown && (\n \n
\n {translateAlertInfoText(totalAlertsShown, totalAlerts)}\n
\n \n )}\n \n );\n};\n\nexport default AlertContainer;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nexport default arrayMap;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","import Symbol from './_Symbol.js';\nimport arrayMap from './_arrayMap.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default baseToString;\n","import baseToString from './_baseToString.js';\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nexport default toString;\n","import toString from './toString.js';\n\n/**\n * Replaces matches for `pattern` in `string` with `replacement`.\n *\n * **Note:** This method is based on\n * [`String#replace`](https://mdn.io/String/replace).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to modify.\n * @param {RegExp|string} pattern The pattern to replace.\n * @param {Function|string} replacement The match replacement.\n * @returns {string} Returns the modified string.\n * @example\n *\n * _.replace('Hi Fred', 'Fred', 'Barney');\n * // => 'Hi Barney'\n */\nfunction replace() {\n var args = arguments,\n string = toString(args[0]);\n\n return args.length < 3 ? string : string.replace(args[1], args[2]);\n}\n\nexport default replace;\n","import { replace } from 'lodash-es';\n\nexport type LogError = (e: Error | string) => void;\n\ndeclare global {\n interface Window {\n AppleID: {\n stravaInit: boolean;\n auth: {\n init: (params: {\n clientId: string;\n scope: string;\n redirectURI: string;\n state: string;\n }) => void;\n signIn: () => void;\n };\n };\n fbAsyncInit: () => void;\n FB: {\n init: (params: {\n appId: string;\n xfbml: boolean;\n version: string;\n status: boolean;\n cookie: boolean;\n }) => void;\n };\n Strava: {\n fbInitialized: boolean;\n };\n }\n}\n\nconst appendScriptToBody = ({\n script,\n name,\n logError\n}: {\n script: Node;\n name: string;\n logError: LogError;\n}) => {\n if (document.querySelector('body')) {\n document.querySelector('body')?.appendChild(script);\n } else {\n const e = new Error(`Failed to inject ${name} script`);\n logError(e);\n }\n};\n\n// this injects window.google and not the legacy window.gapi JS api\nexport const injectGoogleScript = ({\n callback,\n logError\n}: {\n callback: () => void;\n logError: LogError;\n}) => {\n if (!window.google) {\n const script = document.createElement('script');\n script.src = 'https://accounts.google.com/gsi/client';\n script.async = true;\n script.onload = callback;\n script.id = 'google-client-script';\n appendScriptToBody({ script, name: 'google gsi', logError });\n } else {\n callback();\n }\n};\n\nexport const injectAppleScript = ({\n logError,\n locale = 'en_US'\n}: {\n logError: LogError;\n locale?: string;\n}) => {\n if (!window.AppleID) {\n const script = window.document.createElement('script');\n const formattedLocale = replace(locale, '-', '_');\n script.src = `https://appleid.cdn-apple.com/appleauth/static/jsapi/appleid/1/${formattedLocale}/appleid.auth.js`;\n script.async = true;\n appendScriptToBody({ script, name: 'apple', logError });\n }\n};\n\nexport const injectFacebookScript = ({\n logError,\n appId,\n version,\n callback,\n locale = 'en_US'\n}: {\n logError: LogError;\n appId: string;\n version: string;\n callback: () => void;\n locale?: string;\n}) => {\n // make sure haml FB injection has not already injected script and also make sure nothing else\n // has injected FB script\n if (!window.Strava?.fbInitialized && !window.FB) {\n window.fbAsyncInit = () => {\n // ref - https://developers.facebook.com/docs/javascript/reference/FB.init/v13.0\n window.FB.init({\n appId,\n xfbml: true,\n version,\n status: true,\n cookie: true\n });\n callback();\n };\n\n // facebook uses format ll_CC - see https://developers.facebook.com/docs/javascript/internationalization\n const formattedLocale = replace(locale, '-', '_');\n\n const script = window.document.createElement('script');\n script.src = `https://connect.facebook.net/${formattedLocale}/sdk.js`;\n script.async = true;\n appendScriptToBody({ script, name: 'facebook-jssdk', logError });\n } else {\n callback();\n }\n};\n","import { useEffect } from 'react';\nimport { injectAppleScript, LogError } from './externalSocialPartners';\n\n/**\n *\n * @param {String} state https://developer.apple.com/documentation/sign_in_with_apple/clientconfigi/3230956-state\n */\nexport const useApple = (state: string, logError: LogError) => {\n useEffect(() => {\n injectAppleScript({ logError });\n }, [logError]);\n\n const signin = () => {\n if (!window.AppleID.stravaInit) {\n window.AppleID.auth.init({\n clientId: 'com.strava.app.sign.in',\n scope: 'name email',\n redirectURI: 'https://www.strava.com/o_auth/apple',\n state\n });\n window.AppleID.stravaInit = true;\n }\n window.AppleID.auth.signIn();\n };\n\n return { signin };\n};\n\nexport default useApple;\n","// extracted by mini-css-extract-plugin\nexport default {\"alreadyAMember\":\"src--alreadyAMember--QUWuY\"};","import React, { useMemo, useState, useCallback } from 'react';\nimport {\n AccountAuthButton,\n AlertTypes,\n AuthButtonVariantTypes,\n DisclaimerText,\n EmailRegistrationForm,\n EmailRegistrationFormProps,\n OrDivider\n} from '@strava/authentication-ui';\n\nimport {\n useStravaTranslations,\n useStravaAnalytics,\n useStravaErrorLogging\n} from '@strava/container-context';\nimport { Alert, AlertStatus } from '@strava/ui/Alert';\nimport { useApple } from '@strava/utils';\nimport styles from './LohRegistrationPanel.module.scss';\n\nexport enum SignupOption {\n apple = 'apple',\n email = 'email',\n facebook = 'facebook',\n google = 'google'\n}\n\nexport interface LohRegistrationPanelProps extends EmailRegistrationFormProps {\n authorizationUrls: {\n [SignupOption.google]: string;\n [SignupOption.facebook]: string;\n };\n config: {\n appleEnabled: boolean;\n appleState: string;\n };\n flashMessage?: string;\n}\n\nconst I18N_PREFIX = 'strava.landing_page';\n\nconst theme = 'light';\n\nconst LohRegistrationPanel = ({\n authorizationUrls,\n config,\n flashMessage,\n reCaptchaSiteKey,\n honeyPot,\n isPremium,\n formAuthToken\n}: LohRegistrationPanelProps) => {\n const [alert, setAlert] = useState(\n flashMessage ? { severity: AlertStatus.ERROR, message: flashMessage } : null\n );\n\n const { logError } = useStravaErrorLogging();\n\n const { t: _t } = useStravaTranslations();\n const { track: _track } = useStravaAnalytics();\n const { signin: appleSignin } = useApple(config.appleState, logError);\n\n const t = useMemo(\n () => (key: string, params?: object) =>\n _t(`${I18N_PREFIX}.${key}`, { ...params }),\n [_t]\n );\n\n const track = useCallback(\n (fields) => {\n _track({\n category: 'onboarding',\n page: 'home',\n ...fields,\n properties: {\n ...fields.properties\n }\n });\n },\n [_track]\n );\n\n const socialAuthConfig = {\n [SignupOption.facebook]: {\n variant: 'facebook',\n enabled: true,\n authUrl: authorizationUrls[SignupOption.facebook]\n },\n [SignupOption.google]: {\n variant: 'google',\n enabled: true,\n authUrl: authorizationUrls[SignupOption.google]\n },\n [SignupOption.apple]: {\n variant: 'apple',\n enabled: config.appleEnabled,\n authUrl: '' // apple uses SDK (useApple hook) to redirect to apple auth screen\n }\n };\n\n const handleSocialBtnClick = (option: SignupOption, authUrl: string) => {\n track({\n action: 'click',\n element: `${option}_signup`\n });\n\n if (option === SignupOption.apple) {\n // apple uses SDK (useApple hook) to redirect to apple auth screen\n appleSignin();\n } else {\n window.location.assign(authUrl);\n }\n };\n\n return (\n <>\n {alert && (\n \n {alert.message}\n \n )}\n\n {Object.entries(socialAuthConfig).map(\n ([key, { enabled, variant, authUrl }]) =>\n enabled && (\n handleSocialBtnClick(key as SignupOption, authUrl)}\n data-testid={`${key}_auth_btn`}\n >\n {t(`here_to_join.${key}_cta_v2`)}\n \n )\n )}\n\n \n\n \n\n \n

\n {t(`already_a_member`)}{' '}\n {\n track({ action: 'click', element: 'already_member_login' });\n }}\n >\n {t(`log_in`)}\n \n

\n \n );\n};\n\nexport default LohRegistrationPanel;\n","import React from 'react';\nimport clsx from 'clsx';\n\nimport styles from './styles.module.scss';\n\nexport interface ButtonProps extends React.ComponentPropsWithoutRef<'button'> {\n children: React.ReactNode;\n variant?:\n | 'default'\n | 'primary'\n | 'primaryOutline'\n | 'secondary'\n | 'icon'\n | 'text';\n className?: string;\n}\n\nconst Button = React.forwardRef(\n ({ children, className, variant = 'default', ...props }, ref) => (\n \n {children}\n \n )\n);\n\nexport default Button;\n","import clsx from 'clsx';\nimport React, { ComponentPropsWithoutRef, forwardRef } from 'react';\n\nimport styles from './styles.module.scss';\nimport { ButtonProps } from './Button';\n\nexport type LinkButtonProps = ButtonProps & ComponentPropsWithoutRef<'a'>;\n\nconst LinkButton = forwardRef(\n ({ href, children, className, variant = 'default', ...otherProps }, ref) => {\n return (\n \n {children}\n \n );\n }\n);\n\nexport default LinkButton;\n","import React from 'react';\nimport { color } from '@strava/ui-tokens/js';\nimport clsx from '../clsx';\n\nexport interface StravaLogoProps {\n alt?: string;\n className?: string;\n width: string | number;\n height: string | number;\n fill: string;\n style: React.CSSProperties;\n}\n\nfunction StravaLogo({\n className,\n alt = 'Strava',\n width = 'auto',\n height = 'auto',\n fill = color.colorCoreO3,\n style,\n ...props\n}: StravaLogoProps) {\n return (\n \n {alt}\n \n \n );\n}\n\nexport default StravaLogo;\n","type Value = string | number | boolean | undefined | null;\ntype MixObject = {\n [key: string]: boolean | Mix | undefined | null;\n};\ntype MixArray = Array;\ntype Mix = Value | MixObject | MixArray;\n\nfunction toVal(mix: Mix): string {\n let k,\n y,\n str = '';\n\n if (typeof mix === 'string' || typeof mix === 'number') {\n str += mix;\n } else if (typeof mix === 'object') {\n if (Array.isArray(mix)) {\n for (k = 0; k < mix.length; k++) {\n if (mix[k]) {\n if ((y = toVal(mix[k]))) {\n str && (str += ' ');\n str += y;\n }\n }\n }\n } else {\n for (k in mix) {\n if (!mix || mix[k]) {\n str && (str += ' ');\n str += k;\n }\n }\n }\n }\n\n return str;\n}\n\nexport function clsx(..._args: Mix[]): string {\n let i = 0,\n tmp,\n x,\n str = '';\n\n while (i < arguments.length) {\n if ((tmp = arguments[i++])) {\n if ((x = toVal(tmp))) {\n str && (str += ' ');\n str += x;\n }\n }\n }\n return str;\n}\n\nexport default clsx;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nexport default baseSlice;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nexport default arrayMap;\n","import Symbol from './_Symbol.js';\nimport arrayMap from './_arrayMap.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default baseToString;\n","import baseSlice from './_baseSlice.js';\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\nexport default castSlice;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\nexport default hasUnicode;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\nexport default asciiToArray;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\nexport default unicodeToArray;\n","import asciiToArray from './_asciiToArray.js';\nimport hasUnicode from './_hasUnicode.js';\nimport unicodeToArray from './_unicodeToArray.js';\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\nexport default stringToArray;\n","import capitalize from './capitalize.js';\nimport createCompounder from './_createCompounder.js';\n\n/**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\nvar camelCase = createCompounder(function(result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n});\n\nexport default camelCase;\n","import toString from './toString.js';\nimport upperFirst from './upperFirst.js';\n\n/**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\nfunction capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n}\n\nexport default capitalize;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nexport default isArray;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","import baseToString from './_baseToString.js';\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nexport default toString;\n","import castSlice from './_castSlice.js';\nimport hasUnicode from './_hasUnicode.js';\nimport stringToArray from './_stringToArray.js';\nimport toString from './toString.js';\n\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\nfunction createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n}\n\nexport default createCaseFirst;\n","import createCaseFirst from './_createCaseFirst.js';\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\nexport default upperFirst;\n","// extracted by mini-css-extract-plugin\nexport default {\"btn\":\"Button--btn--E4CP9\",\"default\":\"Button--default--w36Gj\",\"primary\":\"Button--primary--cUgAV\",\"primaryOutline\":\"Button--primaryOutline--ebi0I\",\"secondary\":\"Button--secondary--N9XcZ\",\"icon\":\"Button--icon--BMuQQ\",\"text\":\"Button--text--kl-AI\"};"],"names":["SvgActionsCancelCircleHighlightedMedium","React","ref","color","size","title","titleId","props","_ref","xmlns","viewBox","fill","width","height","id","fillRule","d","defaultProps","undefined","propTypes","PropTypes","SvgActionsCheckCircleOnMedium","SvgNavigationWarningHighlightedMedium","SvgNavigationInformationNormalMedium","SvgActionsCancelNormalSmall","useInterval","callback","delay","savedCallback","useRef","useEffect","current","setInterval","clearInterval","forwardRef","style","clip","clipPath","overflow","position","whiteSpace","AlertStatus","ERROR","SUCCESS","WARNING","INFO","ALERT_DELAY","fadeStyles","enter","isTest","exit","Alert","_ref2","children","className","alertType","autoDismiss","autoDismissDelay","contentPosition","hideCloseButton","hideIcon","iconSize","onClose","options","indicatorIcon","messageType","alertStyle","buttonStyle","type","ErrorIcon","SuccessIcon","WarningIcon","InfoIcon","getAlertDetails","fadeStyle","setFadeStyle","useState","handleOnClose","async","Promise","resolve","setTimeout","clsx","styles","role","VisuallyHidden","onClick","CancelIcon","AlertContext","createContext","displayName","array","iteratee","index","length","result","Array","value","isObjectLike","baseGetTag","symbolProto","Symbol","symbolToString","toString","baseToString","isArray","arrayMap","isSymbol","call","args","arguments","string","replace","appendScriptToBody","script","name","logError","document","querySelector","appendChild","Error","useApple","state","_ref3","locale","window","AppleID","createElement","formattedLocale","src","injectAppleScript","signin","stravaInit","auth","init","clientId","scope","redirectURI","signIn","SignupOption","I18N_PREFIX","theme","authorizationUrls","config","flashMessage","reCaptchaSiteKey","honeyPot","isPremium","formAuthToken","alert","setAlert","severity","message","useStravaErrorLogging","t","_t","useStravaTranslations","track","_track","useStravaAnalytics","appleSignin","appleState","useMemo","key","params","useCallback","fields","category","page","properties","socialAuthConfig","facebook","variant","enabled","authUrl","google","apple","appleEnabled","Object","entries","map","AccountAuthButton","handleSocialBtnClick","option","action","element","location","assign","OrDivider","text","EmailRegistrationForm","authorizationUrl","plan","idPrefix","DisclaimerText","i18nPrefix","href","Button","otherProps","alt","display","clipRule","toVal","mix","k","y","str","_args","_key","tmp","x","i","objectProto","prototype","hasOwnProperty","nativeObjectToString","symToStringTag","isOwn","tag","unmasked","e","start","end","freeGlobal","g","reHasUnicode","RegExp","test","freeSelf","self","root","Function","split","rsAstral","rsCombo","rsFitz","rsNonAstral","rsRegional","rsSurrPair","reOptMod","rsOptVar","rsSeq","join","rsSymbol","reUnicode","match","camelCase","word","toLowerCase","methodName","strSymbols","chr","charAt","trailing","slice"],"sourceRoot":""}