{"version":3,"file":"js/64810-b00ac3692883eb746258.js","mappings":"wTACA,EAAyB,wBCoCzB,EA/Be,SAAC,GAAoD,IAAD,IAAjDA,OAASC,EAAwC,KAAnCC,EAAmC,KAA7BC,EAA6B,EAA7BA,OAAQC,EAAqB,EAArBA,eAC5C,OACE,kCACEC,KAAK,SACLC,KAAK,SACL,gBAAeL,EACf,gBAAeC,EACf,gBAAeC,EAAOI,MACtBC,UAAWC,EACXC,MAAO,CACLC,KAASR,EAAOS,QAAZ,MAEFR,EAAeD,EAAOU,KAE1B,2BACE,gBAACC,EAAA,QAAD,SCpBR,EAAwB,sBAAxB,EAAyD,yBC0BzD,EAtBc,SAAC,GAAD,IAAGC,EAAH,EAAGA,OAAQC,EAAX,EAAWA,OAAQC,EAAnB,EAAmBA,SAAnB,OACZ,uBACET,UAAcC,EAAL,KAAqBQ,EAAWR,EAAkB,IAC3DC,MAAO,CACLC,KAASI,EAAOH,QAAZ,IACJM,MAAUF,EAAOJ,QAAUG,EAAOH,QAA7B,QCTX,GAAgB,UAAY,sCAAsC,SAAW,qCAAqC,uBAAuB,iDAAiD,kBAAoB,iDAAiD,SAAW,qCAAqC,qBAAqB,+CAA+C,kBAAoB,+CAA+C,kBAAkB,4CAA4C,eAAiB,4CAA4C,OAAS,mCAAmC,eAAe,yCAAyC,YAAc,yCAAyC,KAAO,iCAAiC,eAAe,yCAAyC,YAAc,yCAAyC,MAAQ,mCCar2BO,EAAoB,SAAC,GAQpB,IAPLC,EAOI,EAPJA,WACAd,EAMI,EANJA,KACAN,EAKI,EALJA,OACAqB,EAII,EAJJA,YACAC,EAGI,EAHJA,eACAL,EAEI,EAFJA,SACAM,EACI,EADJA,SAEMC,EAAa,yCACbC,EAAmB,UAATnB,EACVoB,EAAuC,WAA5BC,EAAAA,EAAAA,mBAEXC,EAAa,SAACC,EAAQC,EAAgBC,QAAsB,IAAtCD,IAAAA,EAAU,WAA4B,IAAtBC,IAAAA,EAAa,OACvDC,EAAAA,EAAAA,IAAQ,QACNC,SAAU,mBACVC,KAAM,sCACNL,OAAAA,GACIC,GAAW,CAAEA,QAAAA,GACbC,GAAc,CAAEA,WAAAA,MAKlBI,EAAuB,SAACC,GAC5B,OAAIX,EACKW,EAEFd,EAAee,OAAS,EAAID,GAG/BE,EAAoB,SAACF,GACzB,IAAMG,EAAUjB,EAAee,OAAS,EAClCG,EAAef,EACjBH,EAAea,EAAqBC,IACpCd,EAAeiB,GACfjB,EAAea,EAAqBC,IACxC,OAAIV,EACKe,KAAKC,MAAMF,GAEbb,EAAAA,EAAAA,oBACJgB,QAAQH,GACRI,QAAQ,IAGb,GAA4CC,EAAAA,EAAAA,UAC1CP,EAAkBjB,IADbyB,EAAP,KAAuBC,EAAvB,KAIMC,GAAWC,EAAAA,EAAAA,UAAQ,WACvB,IAAMC,EAAWZ,EAAkBtC,EAAO,IAE1C,OAAI0B,EACK,CAAEyB,MAAU3B,EAAL,eAA+BjB,MAAO,CAAE2C,SAAAA,IAEjD,CACLC,MAAU3B,EAAL,aACLjB,MAAO,CAAE6C,MAAOF,MAEjB,IAEGG,EAAiB,WAiBrB,OAfIpC,EACS,CAAEkC,MAAU3B,EAAL,2BACTH,IAAgBrB,EAAO,GACrB,CAAEmD,MAAU3B,EAAL,wBACTE,EACE,CACTyB,MAAU3B,EAAL,0BACLjB,MAAO,CAAE2C,SAAUJ,IAGV,CACTK,MAAU3B,EAAL,wBACLjB,MAAO,CAAE6C,MAAON,KAUtB,OAJAQ,EAAAA,EAAAA,YAAU,WACRP,EAAkBT,EAAkBjB,MACnC,CAACA,IAGF,uBAAKb,UAAWC,EAAAA,WACd,uBAAKD,UAAWC,EAAAA,UACd,uBACED,UAAcC,EAAAA,kBAAL,KACPQ,EAAWR,EAAAA,SAAkB,KAG9BgB,EACGE,EAAAA,EAAAA,EAAUH,EAAV,cACAG,EAAAA,EAAAA,EAAUH,EAAV,aAEN,uBAAKhB,UAAWC,EAAAA,mBACd,gBAAC8C,EAAA,EAAD,CACEjD,KAAK,SACLkD,QAAQ,OACRC,QAAS,WACP7B,EACE,QACAH,EAAU,0BAA4B,wBACtC,CAAEiC,YAAatC,IAEZH,GAAUM,EAASF,EAAc,IAExC,cAAY,kBAEZ,gBAACsC,EAAA,QAAD,OAEF,uBACE,cAAY,kBACZnD,UAAcC,EAAAA,eAAL,KACPQ,EAAWR,EAAAA,SAAkB,KAG9BkB,EAAAA,EAAAA,EAAO0B,IAAiBF,MAAOE,IAAiB9C,QAEnD,gBAACgD,EAAA,EAAD,CACEjD,KAAK,SACLkD,QAAQ,OACRC,QAAS,WACP7B,EACE,QACAH,EAAU,2BAA6B,yBACvC,CAAEiC,YAAatC,IAEZH,GAAUM,EAASF,EAAc,IAExC,cAAY,kBAEZ,gBAACuC,EAAA,QAAD,SAKN,uBAAKpD,UAAWC,EAAAA,SACd,gBAAC,KAAD,CACEoD,KAAM,EACNC,KAAM,EACN9D,OAAQA,EACRuB,SAAU,SAACwC,GAAD,OAAYxC,EAASwC,EAAO,KACtCC,WAAY,kBACVpC,EAAW,WAAYH,EAAU,eAAiB,aAAc,CAC9DiC,YAAatC,KAGjB6C,OAAQ,CAAC5C,GACTb,UAAWC,EAAAA,OACXQ,SAAUA,GAEV,uBAAKT,UAAWC,EAAAA,aACd,uBACED,UAAcC,EAAAA,KAAL,KAAoBQ,EAAWR,EAAAA,SAAkB,OAI9D,gBAAC,KAAD,CAAQE,MAAM,EAAMuD,OAAO,IACxB,gBAAGC,EAAH,EAAGA,OAAQC,EAAX,EAAWA,cAAX,OACC,uBAAK5D,UAAWC,EAAAA,aACb0D,EAAOE,KAAI,gBAAGxD,EAAH,EAAGA,GAAIE,EAAP,EAAOA,OAAQC,EAAf,EAAeA,OAAf,OACV,gBAAC,EAAD,CACEsD,IAAKzD,EACLE,OAAQA,EACRC,OAAQA,EACRoD,cAAeA,EACfnD,SAAUA,WAWpB,gBAAC,KAAD,MACG,gBAAGsD,EAAH,EAAGA,aAAH,OACC,uBAAK/D,UAAWC,EAAAA,aACd,+BAAKD,UAAWC,EAAAA,aAAwB8D,UAK9C,gBAAC,KAAD,MACG,gBAAGC,EAAH,EAAGA,QAASpE,EAAZ,EAAYA,eAAZ,OACC,uBAAKI,UAAWC,EAAAA,aACd,gBAAC,EAAD,CACE6D,IAAKE,EAAQ,GAAG3D,GAChBV,OAAQqE,EAAQ,GAChBxE,OAAQA,EACRI,eAAgBA,UAQ5B,uBAAKI,UAAWC,EAAAA,OACd,wBAAM,cAAY,aAAakB,EAAAA,EAAAA,EAAUH,EAAV,cAC/B,wBAAM,cAAY,aACfG,EAAAA,EAAAA,EAAOqB,EAASG,MAAOH,EAASzC,WAO3CY,EAAkBsD,aAAe,CAC/BlD,SAAU,cAaZ,Q,wFChPA,EAAsB,8BAAtB,EAA8H,yCCiB9H,SAASmD,EAAT,GAAuC,IAAftD,EAAc,EAAdA,WAChBiD,GAAMM,EAAAA,EAAAA,MAyBZ,OAvBArB,EAAAA,EAAAA,YAAU,WACRe,EAAIO,GAAG,aAAa,SAACC,GACF,cAAbA,EAAE9D,SACJiB,EAAAA,EAAAA,GAAQ,CACNC,SAAU,kBACVC,KAAM,sCACNL,OAAQ,QACRC,QAAS,WACTC,WAAY,CAAE2B,YAAatC,QAIjCiD,EAAIO,GAAG,aAAa,YAClB5C,EAAAA,EAAAA,GAAQ,CACNC,SAAU,kBACVC,KAAM,sCACNL,OAAQ,MACRC,QAAS,MACTC,WAAY,CAAE2B,YAAatC,UAG9B,IAEI,KAuFT,MApFA,YAMI,IALFA,EAKC,EALDA,WACA0D,EAIC,EAJDA,eACAC,EAGC,EAHDA,cACAC,EAEC,EAFDA,SACAC,EACC,EADDA,OAEMzD,EAAa,yCAEnB,OACE,gBAAC0D,EAAA,GAAD,CACEC,OAAQL,EACRtE,UAAWC,EACX2E,QAAS,CACPC,QAAS,EACTC,QAAS,KAGX,gBAACC,EAAA,EAAD,MAEA,gBAACC,EAAA,EAAD,CACEC,OAAQX,EACRY,MAAOZ,EAAe,GACtBa,IAAKb,EAAec,OAAO,GAAG,KAGhC,gBAACC,EAAA,EAAD,CACEV,OAAQL,EACRjE,GAAG,4BACHH,MAAO,CACLoF,UAAWf,EACPgB,EAAAA,EAAAA,WACAA,EAAAA,EAAAA,qBAIR,gBAACC,EAAA,EAAD,CAAQb,OAAQL,EAAe,IAC7B,uBACEmB,IAAKC,EACLC,IAAKxE,EAAAA,EAAAA,EAAUH,EAAV,SACLhB,UAAWC,KAGf,gBAACuF,EAAA,EAAD,CAAQb,OAAQL,EAAec,OAAO,GAAG,IACvC,uBACEK,IAAKG,EACLD,IAAKxE,EAAAA,EAAAA,EAAUH,EAAV,OACLhB,UAAWC,MAIbsE,GACA,gCACE,gBAACc,EAAA,EAAD,CACEV,OAAQL,EAAec,MAAM,EAAGZ,EAAW,GAC3CnE,GAAG,wBACHH,MAAO,CACLoF,UAAWC,EAAAA,EAAAA,WACXM,aAAc,KAGlB,gBAACR,EAAA,EAAD,CACEV,OAAQL,EAAec,MAAMX,EAAQH,EAAezC,QACpDxB,GAAG,sBACHH,MAAO,CACLoF,UAAWC,EAAAA,EAAAA,WACXM,aAAc,KAGlB,gBAAC3B,EAAD,CAActD,WAAYA,OCnHpC,EAA4B,yCAA5B,EAAqI,yCAArI,EAAuL,sCAAvL,EAA4S,8CAA5S,EAAoW,uCAApW,EAAkZ,oCAAlZ,EAA4f,2CAA5f,EAAmnB,6CAAnnB,EAAwqB,qCAAxqB,EAAgxB,0CAAhxB,EAAk5B,iDAAl5B,EAAwhC,gDAAxhC,EAA0qC,qDAA1qC,EAAwuC,sCAAxuC,EAAsxC,qCC2StxC,MA9RA,YAAoD,IAApBkF,EAAmB,EAAnBA,SAAUC,EAAS,EAATA,MAClC/E,EAAa,yCACnB,GAA0BqB,EAAAA,EAAAA,WAAS,GAA5B2D,EAAP,KAAcC,EAAd,KAGA,GAAoC5D,EAAAA,EAAAA,UAAS,MAAtC6D,EAAP,KAAmBC,EAAnB,KACA,GAAgC9D,EAAAA,EAAAA,UAAS,MAAlC+D,EAAP,KAAiBC,EAAjB,KACA,GAAkChE,EAAAA,EAAAA,UAAS,MAApCiE,EAAP,KAAkBC,EAAlB,KAEA,GAA8BlE,EAAAA,EAAAA,UAAS,CACrCK,SAAU,GACV8D,QAAS,GACTvB,OAAQ,KAHHwB,EAAP,KAAgBC,EAAhB,KAMMtF,EAAa,SAACC,EAAQC,EAAgBC,QAAsB,IAAtCD,IAAAA,EAAU,WAA4B,IAAtBC,IAAAA,EAAa,OACvDC,EAAAA,EAAAA,IAAQ,QACNC,SAAU,mBACVC,KAAM,sCACNL,OAAAA,GACIC,GAAW,CAAEA,QAAAA,GACbC,GAAc,CAAEA,WAAAA,OAIxBuB,EAAAA,EAAAA,YAAU,WAAM,wCAEd,qGACyB6D,EAAAA,EAAAA,KAAyBC,IAAIb,EAAMc,YAAa,CACrEC,OAAQ,CACNC,aAAc,CAAC,WAAY,UAAW,aAH5C,OACQC,EADR,OAMEN,EAAWM,EAASC,MANtB,4CAFc,sBACd7F,EAAW,eAAgB,KAAM,CAAE8B,YAAa4C,EAASzF,KAD3C,mCAUd6G,KACC,IAGH,IAAMC,GAAgB1E,EAAAA,EAAAA,UAAQ,WAC5B,IAAIyC,EACAC,EACEiC,EAAmBX,EAAQ/D,SAAS+D,EAAQ/D,SAASb,OAAS,GAEpE,GAAIuF,GAAoB,KACtBlC,EAAQ,CAAC,EAAGuB,EAAQ/D,SAASb,OAAS,GACtCsD,EAAM,CAAC,EAAGsB,EAAQ/D,SAASb,OAAS,OAC/B,CAGL,IAAMwF,EAAkBZ,EAAQ/D,SAAS4E,WAAU,SAACC,GAAD,OAASA,EAAM,QAC5DC,EAAgBf,EAAQ/D,SAC3B0C,QACAqC,UACAH,WAAU,SAACC,GAAD,OAASH,EAAmBG,EAAM,QACzCG,EAAiBjB,EAAQD,QAAQc,WAAU,SAACC,GAAD,OAAiB,IAARA,KACpDI,EAAelB,EAAQD,QAC1BpB,QACAqC,UACAH,WAAU,SAACC,GAAD,OAAiB,IAARA,KACtBrC,EACEwC,EAAiBL,EACb,CAAC,EAAGK,GACJ,CAAC,EAAGL,GACVlC,EACEwC,EAAeH,EAAgB,CAAC,EAAGG,GAAgB,CAAC,EAAGH,GAE3D,MAAO,CAAEtC,MAAAA,EAAOC,IAAAA,KACf,CAACsB,KAGJ3D,EAAAA,EAAAA,YAAU,WACH2D,EAAQD,QAAQ3E,UACkC,IAAnD4E,EAAQD,QAAQc,WAAU,SAACC,GAAD,OAAiB,IAARA,MACrCpB,EAAcM,EAAQD,QAAQc,WAAU,SAACC,GAAD,OAAiB,IAARA,MACjDlB,EACEI,EAAQD,QACLpB,QACAqC,UACAH,WAAU,SAACC,GAAD,OAAiB,IAARA,MAExBhB,GAAa,KAEbJ,EAAcgB,EAAcjC,MAAM,IAClCmB,EAAYc,EAAchC,IAAI,IAC9BoB,GAAa,OAEd,CAACE,EAASU,IAEb,IAAMS,EAAoB,SAACC,GAAD,OACxBpB,EAAQ/D,SAASb,OAAS,EAAIgG,GAsEhC,OACE,uBAAK7H,UAAWC,GACd,uBAAKD,UAAWC,GACd,uBAAKD,UAAWC,GAAgBkB,EAAAA,EAAAA,EAAUH,EAAV,WAChC,uBAAKhB,UAAWC,GAAuB6F,EAASgC,MAChD,uBAAK9H,UAAWC,GACbkB,EAAAA,EAAAA,EAAUH,EAAV,eAEH,uBAAKhB,UAAWC,GACbkB,EAAAA,EAAAA,EAAUH,EAAV,gBAEH,wBAAMhB,UAAWC,EAAa8H,SA7Df,SAAC1D,GAEpB,IAAI2D,EADJ3D,EAAE4D,iBAEF,IAAMC,EAAc,CAAC,EAAGhC,GAClBiC,EAAY,CAChBP,EAAkBxB,GAClBK,EAAQ/D,SAASb,OAAS,GAG5BT,EAAW,QAAS,QAAV,QACR8B,YAAa4C,EAASzF,KACjBiG,GAAa,CAChB8B,YAAa3B,EAAQ/D,SAASwD,GAC9BmC,UACE5B,EAAQ/D,SAAS+D,EAAQ/D,SAASb,OAAS,GAC3C4E,EAAQ/D,SAASkF,EAAkBxB,KAEnCE,GAAa,CAAEgC,eAAgB,cAQnCN,EADEE,EAAY,KAAOC,EAAU,IAAM7B,EACxB,CAAC,CAAC4B,EAAY,GAAIC,EAAU,KAEtB,IAAnBD,EAAY,IACZC,EAAU,KAAO1B,EAAQ/D,SAASb,OAAS,EAE9B,GACe,IAAnBqG,EAAY,GACR,CAACC,GACLA,EAAU,KAAO1B,EAAQ/D,SAASb,OAAS,EACvC,CAACqG,GAED,CAACA,EAAaC,IAG7BxB,EAAAA,EAAAA,KACG4B,IAAIxC,EAAMyC,kBAAmB,CAC5BC,YAAaT,EACbnG,OAAQ4E,EAAQ/D,SAASb,SAE1B6G,MAAK,WACJC,OAAOC,SAASC,KAAO9C,EAAM+C,gBAE9BC,OAAM,kBAAM9C,GAAS,QAelB,gBAAClD,EAAA,EAAD,CACEjD,KAAK,SACLkD,QAAQ,kBACRhD,UAAWC,GAEVkB,EAAAA,EAAAA,EAAUH,EAAV,SAEH,gBAAC+B,EAAA,EAAD,CACEjD,KAAK,SACLkD,QAAQ,OACRhD,UAAWC,EACXgD,QAAS,WACP7B,EAAW,QAAS,SAAU,CAAE8B,YAAa4C,EAASzF,KACtDsI,OAAOC,SAASC,KAAO9C,EAAM+C,eAG9B3H,EAAAA,EAAAA,EAAUH,EAAV,YAGJgF,EACC,uBAAKhG,UAAWC,GAAekB,EAAAA,EAAAA,EAAUH,EAAV,UAC7B,KACJ,qBACE6H,KAAK,4DACL7I,UAAWC,EACXgD,QAAS,kBACP7B,EAAW,QAAS,aAAc,CAChC8B,YAAa4C,EAASzF,GACtB2I,WAAY,iBAIf7H,EAAAA,EAAAA,EAAUH,EAAV,eAEH,2BACA,qBACE6H,KAAM9C,EAAMkD,oBACZjJ,UAAWC,EACXgD,QAAS,kBACP7B,EAAW,QAAS,mBAAoB,CACtC8B,YAAa4C,EAASzF,OAIzBc,EAAAA,EAAAA,EAAUH,EAAV,qBAGW,OAAfkF,GAAoC,OAAbE,EACtB,uBAAKpG,UAAWC,GACd,gBAACiJ,EAAA,EAAD,CAASC,KAAM,MAGjB,uBAAKnJ,UAAWC,GACd,gBAAC,EAAD,CACEW,WAAYkF,EAASzF,GACrBP,KAAK,QACLN,OAAQ2H,EAAcjC,MACtBrE,YAAaqF,EACbpF,eAAgB2F,EAAQ/D,SACxB3B,SA3IgB,SAAChB,GACzBoG,EAAcpG,GACd,IAAMqJ,EAAUrJ,EAAQ6H,EAAkBxB,GACtCgD,GAAW,GAEb/C,EADoBD,EAAWgD,IAwIzB3I,SAAU6F,IAEZ,gBAAC,EAAD,CACE1F,WAAYkF,EAASzF,GACrBP,KAAK,MACLN,OAAQ2H,EAAchC,IACtBtE,YAAauF,EACbtF,eAAgB2F,EAAQ/D,SACxB3B,SA3Ic,SAAChB,GACvBsG,EAAYtG,GACZ,IAAMqJ,EAAUlD,EAAa0B,EAAkB7H,GAC3CqJ,GAAW,GAEbjD,EADsBD,EAAakD,IAwI7B3I,SAAU6F,IAEZ,uBAAKtG,UAAWC,GACd,uBAAKD,UAAWC,GACbkB,EAAAA,EAAAA,EAAUH,EAAV,oBAEH,gBAACqI,EAAA,EAAD,CACEvB,KAAK,yBACL9H,UAAWC,EACXqJ,QAAShD,EACTrD,QAAS,WACP7B,EAAW,QAAS,kBAAmB,CACrC8B,YAAa4C,EAASzF,GACtBiI,eAAiBhC,EAAyB,WAAb,aAE/BC,GAAcD,OAIpB,gBAAC,EAAD,CACE1F,WAAYkF,EAASzF,GACrBiE,eAAgBmC,EAAQxB,OACxBV,cAAe+B,EACf9B,SAAU0B,EACVzB,OAAQmD,EAAkBxB,S,uFCjRhCmD,EAAsB,SAAC5E,GAC3B,IACM6E,GADSC,EAAAA,EAAAA,IAAe9E,GACR+E,QAAO,SAACC,EAAGC,GAC/B,OAAOD,EAAEE,OAAOD,KACf,IAAIE,IAAAA,eAEP,MAAO,CAACN,EAAOO,eAAgBP,EAAOQ,iBAGxC,SAAShF,EAAT,GAAuE,IAAlDnB,EAAiD,EAAjDA,IAAKoB,EAA4C,EAA5CA,OAAQC,EAAoC,EAApCA,MAAOC,EAA6B,EAA7BA,IAAK8E,EAAwB,EAAxBA,qBA+B5C,OA9BAnH,EAAAA,EAAAA,YAAU,WACRe,EAAIqG,UACFX,EAAoBtE,GACpB,CAAEkF,QAAS,IACX,CAAE5J,OAAQ,gBAEX,KAEHuC,EAAAA,EAAAA,YAAU,YACHsH,EAAAA,EAAAA,IAAS,CAAEC,IAAKnF,EAAM,GAAIoF,IAAKpF,EAAM,IAAMrB,EAAI0G,cAClD1G,EAAI2G,MAAM,CAAEC,QAAQhB,EAAAA,EAAAA,IAAevE,GAAQwF,MAAO,MAEnD,CAACxF,KAEJpC,EAAAA,EAAAA,YAAU,YACHsH,EAAAA,EAAAA,IAAS,CAAEC,IAAKlF,EAAI,GAAImF,IAAKnF,EAAI,IAAMtB,EAAI0G,cAC9C1G,EAAI2G,MAAM,CAAEC,QAAQhB,EAAAA,EAAAA,IAAetE,GAAMuF,MAAO,MAEjD,CAACvF,KAEJrC,EAAAA,EAAAA,YAAU,WACJmH,GACFpG,EAAIqG,UACFX,EAAoBtE,GACpB,CAAEkF,QAAS,IACX,CAAE5J,OAAQ,gBAGb,CAAC0E,IAEG,KAGTD,EAAUf,aAAe,CACvBgG,sBAAsB,GAGxBjF,EAAU2F,UAAY,CACpBV,qBAAsBW,IAAAA,KACtB3F,OAAQ2F,IAAAA,QAAkBA,IAAAA,QAAkBA,IAAAA,SAAmBC,WAC/DhH,IAAK+G,IAAAA,QAAkBC,WACvB3F,MAAO0F,IAAAA,QAAkBA,IAAAA,QAAkBC,WAC3C1F,IAAKyF,IAAAA,QAAkBA,IAAAA,QAAkBC,YAG3C,KAAeC,EAAAA,EAAAA,IAAQ9F,I,qGC5DvB,EAAsB,kBAAtB,EAA8C,kBCSxC+F,EAAAA,WACJ,cAAuB,IAATC,EAAQ,EAARA,KACZC,KAAKC,MAAQF,EACd,kBAcA,OAdA,EAEDG,MAAA,SAAMtH,GAMJ,OALAoH,KAAKG,KAAOvH,EACZoH,KAAKI,WAAaC,SAASC,cAAc,OACzCN,KAAKI,WAAWrL,UAAY,oCAC5BiL,KAAKI,WAAWG,YAAYP,KAAKC,OAE1BD,KAAKI,YACb,EAEDI,SAAA,WACER,KAAKI,WAAWK,WAAWC,YAAYV,KAAKI,mBACrCJ,KAAKG,MACb,EAjBGL,GA4DN,GAAeD,EAAAA,EAAAA,KAxCE,SAAC,GAAa,IAAXjH,EAAU,EAAVA,IACZ+H,GAAWC,EAAAA,EAAAA,UACjB,GAAgCxJ,EAAAA,EAAAA,UAASyJ,EAAAA,GAAAA,UAAlCC,EAAP,KAAiBC,EAAjB,KAOA,SAASC,EAAY/L,GACnB8L,EAAY9L,GACZ2D,EAAIqI,SAAShM,GAGf,OAVA4C,EAAAA,EAAAA,YAAU,WACR,IAAMqJ,EAAc,IAAIpB,EAAY,CAAEC,KAAMY,EAASQ,UACrDvI,EAAIwI,WAAWF,EAAa,eAC3B,IAQD,uBAAKnM,UAAWC,EAAYqM,IAAKV,GAC/B,gBAAC7I,EAAA,EAAD,CACEjD,KAAK,SACLE,UAAS,UAAYC,EACrBgD,QAAS,kBAAMgJ,EAAYH,EAAAA,GAAAA,WAC3BrL,SAAUsL,IAAaD,EAAAA,GAAAA,UAEtB3K,EAAAA,EAAAA,EAAO,wCAEV,gBAAC4B,EAAA,EAAD,CACEjD,KAAK,SACLE,UAAS,UAAYC,EACrBgD,QAAS,kBAAMgJ,EAAYH,EAAAA,GAAAA,YAC3BrL,SAAUsL,IAAaD,EAAAA,GAAAA,WAEtB3K,EAAAA,EAAAA,EAAO","sources":["webpack://StravaModern/./app/javascript/apps/activities/EditMapVisibilityApp/components/StartAndEndSlider/Handle/styles.scss?d861","webpack://StravaModern/./app/javascript/apps/activities/EditMapVisibilityApp/components/StartAndEndSlider/Handle/Handle.js","webpack://StravaModern/./app/javascript/apps/activities/EditMapVisibilityApp/components/StartAndEndSlider/Track/styles.scss?a41f","webpack://StravaModern/./app/javascript/apps/activities/EditMapVisibilityApp/components/StartAndEndSlider/Track/Track.js","webpack://StravaModern/./app/javascript/apps/activities/EditMapVisibilityApp/components/StartAndEndSlider/styles.scss?56e1","webpack://StravaModern/./app/javascript/apps/activities/EditMapVisibilityApp/components/StartAndEndSlider/StartAndEndSlider.js","webpack://StravaModern/./app/javascript/apps/activities/EditMapVisibilityApp/components/SelectHiddenMap/styles.scss?fca0","webpack://StravaModern/./app/javascript/apps/activities/EditMapVisibilityApp/components/SelectHiddenMap/SelectHiddenMap.js","webpack://StravaModern/./app/javascript/apps/activities/EditMapVisibilityApp/styles.scss?8b86","webpack://StravaModern/./app/javascript/apps/activities/EditMapVisibilityApp/EditMapVisibilityApp.js","webpack://StravaModern/./app/javascript/components/map/FitBounds.js","webpack://StravaModern/./app/javascript/components/map/StyleNav.scss?1157","webpack://StravaModern/./app/javascript/components/map/StyleNav.js"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"handle\":\"Handle--handle--uh2wk\"};","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport ActionsVisibleDisabledNormalXsmall from '@strava/icons/ActionsVisibleDisabledNormalXsmall';\nimport styles from './styles.scss';\n\nconst Handle = ({ domain: [min, max], handle, getHandleProps }) => {\n return (\n \n
\n \n
\n \n );\n};\n\nHandle.propTypes = {\n domain: PropTypes.arrayOf(PropTypes.number).isRequired,\n handle: PropTypes.shape({\n id: PropTypes.string.isRequired,\n value: PropTypes.number.isRequired,\n percent: PropTypes.number.isRequired\n }).isRequired,\n getHandleProps: PropTypes.func.isRequired\n};\n\nexport default Handle;\n","// extracted by mini-css-extract-plugin\nexport default {\"track\":\"Track--track--NP2+F\",\"disabled\":\"Track--disabled--xPXYJ\"};","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport styles from './styles.scss';\n\nconst Track = ({ source, target, disabled }) => (\n \n);\n\nTrack.propTypes = {\n source: PropTypes.shape({\n value: PropTypes.number.isRequired,\n percent: PropTypes.number.isRequired\n }).isRequired,\n target: PropTypes.shape({\n value: PropTypes.number.isRequired,\n percent: PropTypes.number.isRequired\n }).isRequired,\n disabled: PropTypes.bool.isRequired\n};\n\nexport default Track;\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"StartAndEndSlider--container--sGgDb\",\"controls\":\"StartAndEndSlider--controls--c4rAv\",\"hide-start-end-label\":\"StartAndEndSlider--hide-start-end-label--WembK\",\"hideStartEndLabel\":\"StartAndEndSlider--hide-start-end-label--WembK\",\"disabled\":\"StartAndEndSlider--disabled--9NzPe\",\"selection-controls\":\"StartAndEndSlider--selection-controls--LRM9G\",\"selectionControls\":\"StartAndEndSlider--selection-controls--LRM9G\",\"selection-label\":\"StartAndEndSlider--selection-label--1sgb3\",\"selectionLabel\":\"StartAndEndSlider--selection-label--1sgb3\",\"slider\":\"StartAndEndSlider--slider--VkmZ1\",\"graphic-wrap\":\"StartAndEndSlider--graphic-wrap--vwfbW\",\"graphicWrap\":\"StartAndEndSlider--graphic-wrap--vwfbW\",\"rail\":\"StartAndEndSlider--rail--xJaao\",\"rail-hitarea\":\"StartAndEndSlider--rail-hitarea--GXU+P\",\"railHitarea\":\"StartAndEndSlider--rail-hitarea--GXU+P\",\"scale\":\"StartAndEndSlider--scale--R1vgP\"};","import React, { useState, useEffect, useMemo } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Slider, Rail, Handles, Tracks } from 'react-compound-slider';\nimport Button from '@strava/ui/Button';\nimport ActionsArrowLeftNormalXsmall from '@strava/icons/ActionsArrowLeftNormalXsmall';\nimport ActionsArrowRightNormalXsmall from '@strava/icons/ActionsArrowRightNormalXsmall';\nimport I18n from 'utils/I18n';\nimport { trackV2 } from 'utils/analytics';\n\nimport Handle from './Handle';\nimport Track from './Track';\nimport styles from './styles.scss';\n\nconst StartAndEndSlider = ({\n activityId,\n type,\n domain,\n sliderValue,\n distanceStream,\n disabled,\n onUpdate\n}) => {\n const i18nPrefix = 'strava.activities.edit_map_visibility.';\n const isStart = type === 'start';\n const isMetric = I18n.measurementUnits() === 'metric';\n\n const trackEvent = (action, element = null, properties = null) => {\n trackV2({\n category: 'privacy_settings',\n page: 'activity_detail_edit_map_visibility',\n action,\n ...(element && { element }),\n ...(properties && { properties })\n });\n };\n\n // Selected distance stream index\n const getDistanceStreamIdx = (sliderIdx) => {\n if (isStart) {\n return sliderIdx;\n }\n return distanceStream.length - 1 - sliderIdx;\n };\n\n const getDistanceHidden = (sliderIdx) => {\n const lastIdx = distanceStream.length - 1;\n const metersHidden = isStart\n ? distanceStream[getDistanceStreamIdx(sliderIdx)]\n : distanceStream[lastIdx] -\n distanceStream[getDistanceStreamIdx(sliderIdx)];\n if (isMetric) {\n return Math.round(metersHidden);\n }\n return I18n.distanceFormatter()\n .convert(metersHidden)\n .toFixed(2);\n };\n\n const [distanceHidden, setDistanceHidden] = useState(\n getDistanceHidden(sliderValue)\n );\n\n const maxLabel = useMemo(() => {\n const distance = getDistanceHidden(domain[1]);\n\n if (isMetric) {\n return { label: `${i18nPrefix}scale_meters`, value: { distance } };\n }\n return {\n label: `${i18nPrefix}scale_mile`,\n value: { count: distance }\n };\n }, []);\n\n const selectionLabel = () => {\n let selected;\n if (disabled) {\n selected = { label: `${i18nPrefix}selection_not_available` };\n } else if (sliderValue === domain[0]) {\n selected = { label: `${i18nPrefix}selection_not_hidden` };\n } else if (isMetric) {\n selected = {\n label: `${i18nPrefix}selection_meters_hidden`,\n value: { distance: distanceHidden }\n };\n } else {\n selected = {\n label: `${i18nPrefix}selection_mile_hidden`,\n value: { count: distanceHidden }\n };\n }\n return selected;\n };\n\n useEffect(() => {\n setDistanceHidden(getDistanceHidden(sliderValue));\n }, [sliderValue]);\n\n return (\n
\n
\n \n {isStart\n ? I18n.t(`${i18nPrefix}hide_start`)\n : I18n.t(`${i18nPrefix}hide_end`)}\n
\n
\n {\n trackEvent(\n 'click',\n isStart ? 'start_slider_left_arrow' : 'end_slider_left_arrow',\n { activity_id: activityId }\n );\n if (!disabled) onUpdate(sliderValue - 1);\n }}\n data-testid=\"control-button\"\n >\n \n \n \n {I18n.t(selectionLabel().label, selectionLabel().value)}\n
\n {\n trackEvent(\n 'click',\n isStart ? 'start_slider_right_arrow' : 'end_slider_right_arrow',\n { activity_id: activityId }\n );\n if (!disabled) onUpdate(sliderValue + 1);\n }}\n data-testid=\"control-button\"\n >\n \n \n
\n \n\n
\n onUpdate(newVal[0])}\n onSlideEnd={() =>\n trackEvent('interact', isStart ? 'start_slider' : 'end_slider', {\n activity_id: activityId\n })\n }\n values={[sliderValue]}\n className={styles.slider}\n disabled={disabled}\n >\n
\n \n
\n\n \n {({ tracks, getTrackProps }) => (\n
\n {tracks.map(({ id, source, target }) => (\n \n ))}\n
\n )}\n
\n\n {/*\n whe need to use Rail component here so that we can add getRailProps\n which will add mouse interactions\n */}\n \n {({ getRailProps }) => (\n
\n
\n
\n )}\n \n\n \n {({ handles, getHandleProps }) => (\n
\n \n
\n )}\n
\n \n
\n\n
\n {I18n.t(`${i18nPrefix}scale_off`)}\n \n {I18n.t(maxLabel.label, maxLabel.value)}\n \n
\n
\n );\n};\n\nStartAndEndSlider.defaultProps = {\n onUpdate: () => {}\n};\n\nStartAndEndSlider.propTypes = {\n activityId: PropTypes.number.isRequired,\n type: PropTypes.string.isRequired,\n domain: PropTypes.arrayOf(PropTypes.number).isRequired,\n sliderValue: PropTypes.number.isRequired,\n distanceStream: PropTypes.arrayOf(PropTypes.number).isRequired,\n disabled: PropTypes.bool.isRequired,\n onUpdate: PropTypes.func\n};\n\nexport default StartAndEndSlider;\n","// extracted by mini-css-extract-plugin\nexport default {\"map\":\"SelectHiddenMap--map--V0JE1\",\"primary-marker\":\"SelectHiddenMap--primary-marker--kJhOQ\",\"primaryMarker\":\"SelectHiddenMap--primary-marker--kJhOQ\"};","import React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Colors from '@strava/ui/colors';\nimport Map, { useMap } from '@strava/ui/Map';\nimport Polyline from '@strava/ui/Map/Polyline';\nimport Marker from '@strava/ui/Map/Marker';\n\nimport primaryStartMarker from '@strava/ui/Map/images/map-marker-start.png';\nimport primaryEndMarker from '@strava/ui/Map/images/map-marker-end.png';\n\nimport FitBounds from 'components/map/FitBounds';\nimport StyleNav from 'components/map/StyleNav';\n\nimport { trackV2 } from 'utils/analytics';\nimport I18n from 'utils/I18n';\nimport styles from './styles.scss';\n\nfunction MapAnalytics({ activityId }) {\n const map = useMap();\n\n useEffect(() => {\n map.on('zoomstart', (e) => {\n if (e.source !== 'fitBounds') {\n trackV2({\n category: 'activity_detail',\n page: 'activity_detail_edit_map_visibility',\n action: 'click',\n element: 'map_zoom',\n properties: { activity_id: activityId }\n });\n }\n });\n map.on('dragstart', () => {\n trackV2({\n category: 'activity_detail',\n page: 'activity_detail_edit_map_visibility',\n action: 'pan',\n element: 'map',\n properties: { activity_id: activityId }\n });\n });\n }, []);\n\n return null;\n}\n\nfunction SelectHiddenMap({\n activityId,\n activityLatLng,\n hideEntireMap,\n startIdx,\n endIdx\n}) {\n const i18nPrefix = 'strava.activities.edit_map_visibility.';\n\n return (\n \n \n\n \n\n \n\n \n \n \n \n \n \n\n {!hideEntireMap && (\n <>\n \n \n \n \n )}\n \n );\n}\n\nSelectHiddenMap.propTypes = {\n activityId: PropTypes.number.isRequired,\n activityLatLng: PropTypes.arrayOf(PropTypes.array).isRequired,\n hideEntireMap: PropTypes.bool.isRequired,\n startIdx: PropTypes.number.isRequired,\n endIdx: PropTypes.number.isRequired\n};\n\nexport default SelectHiddenMap;\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"EditMapVisibilityApp--container--amTLM\",\"left-side\":\"EditMapVisibilityApp--left-side--K0U-S\",\"leftSide\":\"EditMapVisibilityApp--left-side--K0U-S\",\"header\":\"EditMapVisibilityApp--header--MHT-z\",\"activity-title\":\"EditMapVisibilityApp--activity-title--I5klE\",\"activityTitle\":\"EditMapVisibilityApp--activity-title--I5klE\",\"details\":\"EditMapVisibilityApp--details--hv3xb\",\"form\":\"EditMapVisibilityApp--form--E2onY\",\"save-button\":\"EditMapVisibilityApp--save-button--js6CY\",\"saveButton\":\"EditMapVisibilityApp--save-button--js6CY\",\"cancel-button\":\"EditMapVisibilityApp--cancel-button--x1w0z\",\"cancelButton\":\"EditMapVisibilityApp--cancel-button--x1w0z\",\"links\":\"EditMapVisibilityApp--links--7q44A\",\"right-side\":\"EditMapVisibilityApp--right-side--nP3NF\",\"rightSide\":\"EditMapVisibilityApp--right-side--nP3NF\",\"spinner-container\":\"EditMapVisibilityApp--spinner-container--4Mnt1\",\"spinnerContainer\":\"EditMapVisibilityApp--spinner-container--4Mnt1\",\"switch-container\":\"EditMapVisibilityApp--switch-container--xqOdo\",\"switchContainer\":\"EditMapVisibilityApp--switch-container--xqOdo\",\"hide-entire-map-label\":\"EditMapVisibilityApp--hide-entire-map-label--YEDTt\",\"hideEntireMapLabel\":\"EditMapVisibilityApp--hide-entire-map-label--YEDTt\",\"switch\":\"EditMapVisibilityApp--switch--vW0m5\",\"error\":\"EditMapVisibilityApp--error--A-h8X\"};","import React, { useState, useEffect, useMemo } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Button from '@strava/ui/Button';\nimport Spinner from '@strava/ui/Spinner';\nimport Switch from '@strava/ui/Switch';\nimport createNetworkingClient from 'utils/networking-client';\nimport I18n from 'utils/I18n';\nimport { trackV2 } from 'utils/analytics';\n\nimport StartAndEndSlider from './components/StartAndEndSlider';\nimport SelectHiddenMap from './components/SelectHiddenMap';\nimport styles from './styles.scss';\n\nfunction EditMapVisibilityApp({ activity, paths }) {\n const i18nPrefix = 'strava.activities.edit_map_visibility.';\n const [error, setError] = useState(false);\n\n // Selected slider values\n const [startValue, setStartValue] = useState(null);\n const [endValue, setEndValue] = useState(null);\n const [mapHidden, setMapHidden] = useState(null);\n\n const [streams, setStreams] = useState({\n distance: [],\n privacy: [],\n latlng: []\n });\n\n const trackEvent = (action, element = null, properties = null) => {\n trackV2({\n category: 'privacy_settings',\n page: 'activity_detail_edit_map_visibility',\n action,\n ...(element && { element }),\n ...(properties && { properties })\n });\n };\n\n useEffect(() => {\n trackEvent('screen_enter', null, { activity_id: activity.id });\n async function loadStreams() {\n const response = await createNetworkingClient().get(paths.streamsPath, {\n params: {\n stream_types: ['distance', 'privacy', 'latlng']\n }\n });\n setStreams(response.data);\n }\n loadStreams();\n }, []);\n\n // Range of indices for each slider\n const sliderDomains = useMemo(() => {\n let start;\n let end;\n const activityDistance = streams.distance[streams.distance.length - 1];\n // If the activity is under 1600m then the slider domain should be the length of the entire activity\n if (activityDistance <= 1600) {\n start = [0, streams.distance.length - 1];\n end = [0, streams.distance.length - 1];\n } else {\n // If the activity's hidden area (start or end) is larger than one mile due to an existing privacy zone,\n // domain should be that length. Otherwise, the domain should end where the activity > 1600m.\n const startOneMileIdx = streams.distance.findIndex((ele) => ele > 1600);\n const endOneMileIdx = streams.distance\n .slice()\n .reverse()\n .findIndex((ele) => activityDistance - ele > 1600);\n const startHiddenIdx = streams.privacy.findIndex((ele) => ele === 0);\n const endHiddenIdx = streams.privacy\n .slice()\n .reverse()\n .findIndex((ele) => ele === 0);\n start =\n startHiddenIdx > startOneMileIdx\n ? [0, startHiddenIdx]\n : [0, startOneMileIdx];\n end =\n endHiddenIdx > endOneMileIdx ? [0, endHiddenIdx] : [0, endOneMileIdx];\n }\n return { start, end };\n }, [streams]);\n\n // Initial slider indices that are selected\n useEffect(() => {\n if (!streams.privacy.length) return;\n if (streams.privacy.findIndex((ele) => ele === 0) !== -1) {\n setStartValue(streams.privacy.findIndex((ele) => ele === 0));\n setEndValue(\n streams.privacy\n .slice()\n .reverse()\n .findIndex((ele) => ele === 0)\n );\n setMapHidden(false);\n } else {\n setStartValue(sliderDomains.start[0]);\n setEndValue(sliderDomains.end[0]);\n setMapHidden(true);\n }\n }, [streams, sliderDomains]);\n\n const getEndDistanceIdx = (sliderEndValue) =>\n streams.distance.length - 1 - sliderEndValue;\n\n const updateStreamStart = (value) => {\n setStartValue(value);\n const overlap = value - getEndDistanceIdx(endValue);\n if (overlap >= 0) {\n const newEndValue = endValue - overlap;\n setEndValue(newEndValue);\n }\n };\n\n const updateStreamEnd = (value) => {\n setEndValue(value);\n const overlap = startValue - getEndDistanceIdx(value);\n if (overlap >= 0) {\n const newStartValue = startValue - overlap;\n setStartValue(newStartValue);\n }\n };\n\n const handleSubmit = (e) => {\n e.preventDefault();\n let subStreams;\n const streamStart = [0, startValue];\n const streamEnd = [\n getEndDistanceIdx(endValue),\n streams.distance.length - 1\n ];\n\n trackEvent('click', 'save', {\n activity_id: activity.id,\n ...(!mapHidden && {\n start_point: streams.distance[startValue],\n end_point:\n streams.distance[streams.distance.length - 1] -\n streams.distance[getEndDistanceIdx(endValue)]\n }),\n ...(mapHidden && { map_visibility: 'only_you' })\n });\n\n // Currently, the way this is set up means that users can't hide a single start/end point on Web.\n // The smallest possible section to hide at the start or end is two points, sending back [0, 1] or\n // [endIdx-1, endIdx] as the subStream.\n // CF todo: reevaluate this behavior.\n if (streamStart[1] === streamEnd[0] || mapHidden) {\n subStreams = [[streamStart[0], streamEnd[1]]];\n } else if (\n streamStart[1] === 0 &&\n streamEnd[0] === streams.distance.length - 1\n ) {\n subStreams = [];\n } else if (streamStart[1] === 0) {\n subStreams = [streamEnd];\n } else if (streamEnd[0] === streams.distance.length - 1) {\n subStreams = [streamStart];\n } else {\n subStreams = [streamStart, streamEnd];\n }\n\n createNetworkingClient()\n .put(paths.streamPrivacyPath, {\n sub_streams: subStreams,\n length: streams.distance.length\n })\n .then(() => {\n window.location.href = paths.activityPath;\n })\n .catch(() => setError(true));\n };\n\n return (\n
\n
\n
{I18n.t(`${i18nPrefix}header`)}
\n
{activity.name}
\n
\n {I18n.t(`${i18nPrefix}use_slider`)}\n
\n
\n {I18n.t(`${i18nPrefix}hidden_gray`)}\n
\n
\n \n {I18n.t(`${i18nPrefix}save`)}\n \n {\n trackEvent('click', 'cancel', { activity_id: activity.id });\n window.location.href = paths.activityPath;\n }}\n >\n {I18n.t(`${i18nPrefix}cancel`)}\n \n \n {error ? (\n
{I18n.t(`${i18nPrefix}error`)}
\n ) : null}\n \n trackEvent('click', 'learn_more', {\n activity_id: activity.id,\n article_id: 115000173384\n })\n }\n >\n {I18n.t(`${i18nPrefix}learn_more`)}\n \n
\n \n trackEvent('click', 'privacy_settings', {\n activity_id: activity.id\n })\n }\n >\n {I18n.t(`${i18nPrefix}update_settings`)}\n \n
\n {startValue === null || endValue === null ? (\n
\n \n
\n ) : (\n
\n \n \n
\n
\n {I18n.t(`${i18nPrefix}hide_entire_map`)}\n
\n {\n trackEvent('click', 'hide_entire_map', {\n activity_id: activity.id,\n map_visibility: !mapHidden ? 'only_you' : 'everyone'\n });\n setMapHidden(!mapHidden);\n }}\n />\n
\n \n
\n )}\n
\n );\n}\n\nEditMapVisibilityApp.propTypes = {\n activity: PropTypes.shape({\n id: PropTypes.number,\n name: PropTypes.string\n }).isRequired,\n paths: PropTypes.shape({\n activityPath: PropTypes.string,\n privacySettingsPath: PropTypes.string,\n streamsPath: PropTypes.string,\n streamPrivacyPath: PropTypes.string\n }).isRequired\n};\n\nexport default EditMapVisibilityApp;\n","import { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport mapboxgl from 'mapbox-gl';\n\nimport { withMap, latLngToLngLat, inBounds } from '@strava/ui/Map';\n\nconst getBoundsFromLatLng = (latLng) => {\n const lngLat = latLngToLngLat(latLng);\n const bounds = lngLat.reduce((b, coord) => {\n return b.extend(coord);\n }, new mapboxgl.LngLatBounds());\n\n return [bounds.getSouthWest(), bounds.getNorthEast()];\n};\n\nfunction FitBounds({ map, latlng, start, end, updateOnLatlngChange }) {\n useEffect(() => {\n map.fitBounds(\n getBoundsFromLatLng(latlng),\n { padding: 48 },\n { source: 'fitBounds' }\n );\n }, []);\n\n useEffect(() => {\n if (!inBounds({ lng: start[1], lat: start[0] }, map.getBounds())) {\n map.flyTo({ center: latLngToLngLat(start), speed: 2 });\n }\n }, [start]);\n\n useEffect(() => {\n if (!inBounds({ lng: end[1], lat: end[0] }, map.getBounds())) {\n map.flyTo({ center: latLngToLngLat(end), speed: 2 });\n }\n }, [end]);\n\n useEffect(() => {\n if (updateOnLatlngChange) {\n map.fitBounds(\n getBoundsFromLatLng(latlng),\n { padding: 48 },\n { source: 'fitBounds' }\n );\n }\n }, [latlng]);\n\n return null;\n}\n\nFitBounds.defaultProps = {\n updateOnLatlngChange: false\n};\n\nFitBounds.propTypes = {\n updateOnLatlngChange: PropTypes.bool,\n latlng: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.number)).isRequired,\n map: PropTypes.shape().isRequired,\n start: PropTypes.arrayOf(PropTypes.number).isRequired,\n end: PropTypes.arrayOf(PropTypes.number).isRequired\n};\n\nexport default withMap(FitBounds);\n","// extracted by mini-css-extract-plugin\nexport default {\"nav\":\"map--nav--ppnIf\",\"btn\":\"map--btn--kjUNg\"};","/* eslint-disable no-underscore-dangle */\nimport React, { useRef, useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { withMap, mapStyles } from '@strava/ui/Map';\nimport Button from '@strava/ui/Button';\nimport I18n from 'utils/I18n';\n\nimport styles from './StyleNav.scss';\n\nclass MenuControl {\n constructor({ node }) {\n this._node = node;\n }\n\n onAdd(map) {\n this._map = map;\n this._container = document.createElement('div');\n this._container.className = 'mapboxgl-ctrl mapboxgl-ctrl-group';\n this._container.appendChild(this._node);\n\n return this._container;\n }\n\n onRemove() {\n this._container.parentNode.removeChild(this._container);\n delete this._map;\n }\n}\n\nconst StyleNav = ({ map }) => {\n const menuNode = useRef();\n const [mapStyle, setMapStyle] = useState(mapStyles.standard);\n\n useEffect(() => {\n const ctrlPolygon = new MenuControl({ node: menuNode.current });\n map.addControl(ctrlPolygon, 'top-right');\n }, []);\n\n function handleClick(style) {\n setMapStyle(style);\n map.setStyle(style);\n }\n\n return (\n
\n handleClick(mapStyles.standard)}\n disabled={mapStyle === mapStyles.standard}\n >\n {I18n.t('strava.maps.custom_control.standard')}\n \n handleClick(mapStyles.satellite)}\n disabled={mapStyle === mapStyles.satellite}\n >\n {I18n.t('strava.maps.custom_control.satellite')}\n \n
\n );\n};\n\nStyleNav.propTypes = {\n map: PropTypes.shape().isRequired\n};\n\nexport default withMap(StyleNav);\n"],"names":["domain","min","max","handle","getHandleProps","role","type","value","className","styles","style","left","percent","id","ActionsVisibleDisabledNormalXsmall","source","target","disabled","width","StartAndEndSlider","activityId","sliderValue","distanceStream","onUpdate","i18nPrefix","isStart","isMetric","I18n","trackEvent","action","element","properties","trackV2","category","page","getDistanceStreamIdx","sliderIdx","length","getDistanceHidden","lastIdx","metersHidden","Math","round","convert","toFixed","useState","distanceHidden","setDistanceHidden","maxLabel","useMemo","distance","label","count","selectionLabel","useEffect","Button","variant","onClick","activity_id","ActionsArrowLeftNormalXsmall","ActionsArrowRightNormalXsmall","mode","step","newVal","onSlideEnd","values","right","tracks","getTrackProps","map","key","getRailProps","handles","defaultProps","MapAnalytics","useMap","on","e","activityLatLng","hideEntireMap","startIdx","endIdx","Map","latLng","options","minZoom","maxZoom","StyleNav","FitBounds","latlng","start","end","slice","Polyline","lineColor","Colors","Marker","src","primaryStartMarker","alt","primaryEndMarker","outlineWidth","activity","paths","error","setError","startValue","setStartValue","endValue","setEndValue","mapHidden","setMapHidden","privacy","streams","setStreams","createNetworkingClient","get","streamsPath","params","stream_types","response","data","loadStreams","sliderDomains","activityDistance","startOneMileIdx","findIndex","ele","endOneMileIdx","reverse","startHiddenIdx","endHiddenIdx","getEndDistanceIdx","sliderEndValue","name","onSubmit","subStreams","preventDefault","streamStart","streamEnd","start_point","end_point","map_visibility","put","streamPrivacyPath","sub_streams","then","window","location","href","activityPath","catch","article_id","privacySettingsPath","Spinner","size","overlap","Switch","checked","getBoundsFromLatLng","bounds","latLngToLngLat","reduce","b","coord","extend","mapboxgl","getSouthWest","getNorthEast","updateOnLatlngChange","fitBounds","padding","inBounds","lng","lat","getBounds","flyTo","center","speed","propTypes","PropTypes","isRequired","withMap","MenuControl","node","this","_node","onAdd","_map","_container","document","createElement","appendChild","onRemove","parentNode","removeChild","menuNode","useRef","mapStyles","mapStyle","setMapStyle","handleClick","setStyle","ctrlPolygon","current","addControl","ref"],"sourceRoot":""}