{"version":3,"file":"assets/js/chunks/3913.34b327b99d7d48d4e1c9.js","mappings":"sGACA,KAAgB,YAAc,Q,2JCyC9B,IA/BYA,IAA0E,IAAzE,UAAEC,EAAY,CAAC,EAAC,kBAAEC,EAAiB,aAAEC,EAAY,QAAEC,GAAU,GAAOJ,EAC/E,MAAMK,GAAkBC,EAAAA,EAAAA,IAAYC,EAAAA,KAC9B,MAAEC,EAAK,KAAEC,EAAI,GAAEC,IAAOJ,EAAAA,EAAAA,IAAYK,EAAAA,IAElCC,GAAkBC,EAAAA,EAAAA,IAAyBJ,IAAQK,EAAAA,EAAAA,IAAoBL,EAAMR,IAAY,CAACA,IAEhG,OAAKS,EAGHK,EAAAA,cAACC,EAAAA,EAAY,CAACd,kBAAmBA,GAC9BM,IAAUJ,GAAWW,EAAAA,cAAA,MAAIE,UAAWC,EAAAA,EAAEV,OAAQI,EAAgBJ,IAC9DC,GAAQM,EAAAA,cAAA,OAAKE,UAAWC,EAAAA,EAAET,MAAOG,EAAgBH,IACjDC,EAAGS,KAAI,CAAAC,EAAuBC,KAAU,IAAhC,SAAEC,EAAQ,OAAEC,GAAQH,EAC3B,MAAMI,GAAiBC,EAAAA,EAAAA,IAAiB,CACtCC,IAAKd,EAAgBW,GACrBlB,oBAGF,OACEU,EAAAA,cAACY,EAAAA,EAAO,CACNC,IAAKP,EACLC,SAAUV,EAAgBU,GAC1BC,OAAQC,EACRrB,aAAcA,GACd,KAlBMY,EAAAA,cAAAA,EAAAA,SAAA,KAqBC,C,iECpCJ,MAAMc,UAA+BC,MAClDC,WAAAA,GAA2D,IAA/CC,EAAGC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,IAAKG,EAAIH,UAAAC,OAAA,EAAAD,UAAA,QAAAE,EACzBE,MAD4BJ,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,0BAE/BK,KAAKC,KAAO,oBACZD,KAAKE,KANiC,IAOtCF,KAAKN,IAAMA,EACXM,KAAKF,KAAOA,CACd,E,wBCRe,SAAS,IACtB,OAAO,IACT,C,0HCEK,MAQMK,EAAwBC,GAAOC,QAAQC,OAAyBF,E,0LCoD7E,EArDiC1C,IAAiC,IAAhC,WAAE6C,EAAU,YAAEC,GAAa9C,EAC3D,MAAM+C,GAAWzC,EAAAA,EAAAA,IAAY0C,EAAAA,IACvBC,GAAc3C,EAAAA,EAAAA,IAAY4C,EAAAA,KACzBC,EAAOC,IAAYC,EAAAA,EAAAA,UAASJ,IAC5BK,EAASC,IAAcF,EAAAA,EAAAA,WAAS,GACjCG,GAAoBC,EAAAA,EAAAA,IAAUC,EAAAA,IAC9BC,GAAiBC,EAAAA,EAAAA,UACjBC,GAAcC,EAAAA,EAAAA,IAAK,6BAyBzB,OAvBAC,EAAAA,EAAAA,YAAU,KAERX,EAASH,EAAY,GACpB,CAACA,IAqBFlC,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAAA,WACEA,EAAAA,cAACiD,EAAAA,EAAU,CAACC,OAAQpB,EAAYC,YAAaA,KAE/C/B,EAAAA,cAAA,QAAMmD,SAnBOC,IAEf,GADAA,EAAEC,iBACGjB,EAIL,OAFAI,GAAW,GAEJI,EAAeU,QACnBH,WACAI,MAAK,IAAMd,EAAkB,CAAEe,MAAOpB,MACtCqB,SAAQ,KACPjB,GAAW,EAAM,GACjB,EAQwBtC,UChDI,SDiD5BF,EAAAA,cAAC0D,EAAAA,EAAW,CACVC,IAAKf,EACLR,MAAOA,EACPG,QAASA,EACTqB,kBAAmB5B,EAAW6B,EAAAA,EAAkBC,OAAOC,IAAMF,EAAAA,EAAkBC,OAAOE,OACtFC,qBAAqB,EACrBnB,YAAaA,EACboB,SA/BS7D,IAAoB,IAAjB+B,MAAO+B,GAAK9D,EAC9BgC,EAAS8B,EAAI,EA+BPpC,YAAaA,KAGhB,C,wGEzCP,KAAeqC,EAAAA,EAAAA,KAA+BC,EAAAA,EAAAA,KAXtBpF,IAAyB,IAAxB,gBAAEqF,GAAiBrF,EAC1C,MAAMsF,GAAkBhF,EAAAA,EAAAA,IAAYiF,EAAAA,IACpC,OAAKD,EAGHvE,EAAAA,cAAA,OAAKE,UAAWC,EAAAA,EAAEsE,aAChBzE,EAAAA,cAAC0E,EAAAA,EAAa,CAAChF,KAAM6E,KAJIvE,EAAAA,cAAAA,EAAAA,SAAA,KAKrB,I,sBCfV,KAAgB,KAAO,Q,mFCoCvB,IA/B6Bf,IAAe,IAAd,MAAE0F,GAAO1F,EACrC,MAAM,MAAE2F,EAAK,aAAEC,IAAiBtF,EAAAA,EAAAA,IAAYuF,EAAAA,IAE5C,OAAQH,GACN,KAAKI,EAAAA,GAAUC,QAAS,CACtB,MAAMvF,EAAQ,eAAemF,2CACvBH,EAAc,yGAAyGG,IAC7H,OAAO5E,EAAAA,cAACiF,EAAAA,EAAQ,CAACxF,MAAOA,EAAOgF,YAAaA,GAC9C,CACA,KAAKM,EAAAA,GAAUG,QAAS,CACtB,MAAMzF,EAAQ,yBAAyBmF,YACjCH,EAAc,oDAClBI,EAAe,iBAAmB,kBAChCD,eACJ,OAAO5E,EAAAA,cAACiF,EAAAA,EAAQ,CAACxF,MAAOA,EAAOgF,YAAaA,GAC9C,CACA,KAAKM,EAAAA,GAAUI,IAAK,CAClB,MAAM1F,EAAQ,OAAOmF,iDACfH,EAAc,6BAClBI,EAAe,iBAAmB,eAChCD,mDACJ,OAAO5E,EAAAA,cAACiF,EAAAA,EAAQ,CAACxF,MAAOA,EAAOgF,YAAaA,GAC9C,CACA,KAAKW,EAAAA,GAAsB,CACzB,MAAM3F,EAAQ,+BAA+BmF,2CACvCH,EAAc,wJAAwJG,IAC5K,OAAO5E,EAAAA,cAACiF,EAAAA,EAAQ,CAACxF,MAAOA,EAAOgF,YAAaA,GAC9C,EACF,C,sECnBF,IAXqBxF,IAAA,IAAC,SAAEoG,EAAQ,UAAEnF,EAAS,kBAAEf,GAAmBF,EAAA,OAC9De,EAAAA,cAAA,OACEsF,WAAS,EACTC,SAAS,6BACTrF,UAAWsF,IAAWrF,EAAAA,EAAEsF,KAAMvF,EAAWf,GAAqB,wBAC9D,WAAUA,GAETkG,EACG,C,sBCXR,KAAgB,KAAO,QAAQ,MAAQ,QAAQ,KAAO,Q,qICiCtD,IAvB8BK,KAC5B,MAAMC,GAAWC,EAAAA,EAAAA,MACXnD,GAAoBC,EAAAA,EAAAA,IAAUC,EAAAA,IAC9BkD,GAAsBC,EAAAA,EAAAA,KAiB5B,OAAO9F,EAAAA,cAAC+F,EAAAA,EAAc,CAACC,QAfPC,IACd,MAAM,OAAEC,EAAM,QAAEC,EAAO,KAAE1E,EAAI,QAAE2E,EAAO,KAAEC,GAASJ,EAC3CrB,GAAQ0B,EAAAA,EAAAA,IAAiBH,GAAWD,EAAOK,KAAK,MACtDZ,GAASa,EAAAA,EAAAA,IAAe5B,IAEpByB,IAASI,EAAAA,EAAoBC,WAC/Bb,EAAoB,CAClBpE,KAAMkF,EAAAA,GACNC,QAAS,CAAEnF,OAAM2E,UAASC,UAI9B5D,EAAkB,CAAEe,MAAOoB,GAAQ,GAGM,C,mGC7BtC,MAuBMlE,EAAmBmG,IAA8B,IAA7B,IAAElG,EAAG,gBAAErB,GAAiBuH,EAEvD,OAAOlG,EAAImG,MAAM,iBAAiB1G,KAAI,CAAC2G,EAAMzG,IACpCyG,EAAKC,SAAS,MACnBhH,EAAAA,cAAA,KAAGiH,KAAM3H,EAAiBuB,IAAKP,GAC5ByG,EAAKG,UAAU,IAGlBH,GAEF,C,wECrBJ,IAT2CI,KACzC,MAAMhB,GAAU5G,EAAAA,EAAAA,IAAY6H,EAAAA,IAC5B,GAAIjB,EAAQkB,gBAAkBC,EAAAA,GAAiBC,aAAaC,KAAM,CAChE,MAAMC,GAA2BC,EAAAA,EAAAA,IAAoBvB,EAAQqB,MAC7D,GAAIC,EAA0B,MAAO,IAAKtB,EAASwB,SAAUF,EAC/D,CACA,OAAOtB,CAAO,C,6HCVhB,EAAqH,QAArH,EAAqJ,QAArJ,EAAqK,Q,WCiErK,EAzD2ByB,KACzB,MAAMjC,GAAWC,EAAAA,EAAAA,OAEViC,EAAWC,IAAgBxF,EAAAA,EAAAA,WAASyF,EAAAA,EAAAA,QACpCC,EAAWC,IAAgB3F,EAAAA,EAAAA,WAAS4F,EAAAA,EAAAA,OAErCC,GAAY5I,EAAAA,EAAAA,IAAY6I,EAAAA,KACxB,MAAExD,IAAUrF,EAAAA,EAAAA,IAAYuF,EAAAA,KACxB,KAAE0C,EAAI,SAAEG,IAAaR,EAAAA,EAAAA,KAO3B,IALAnE,EAAAA,EAAAA,YAAU,KACR2C,GAAS0C,EAAAA,EAAAA,IAAiBR,IAC1BlC,GAAS2C,EAAAA,EAAAA,IAAiBN,GAAW,GACpC,IAEsB,IAArBG,EAAUhH,OAAc,OAAOnB,EAAAA,cAAAA,EAAAA,SAAA,MAEnC,MAgBMuI,EAAe,+BALff,GAAQG,EAAiB,GAAGH,MAASG,IAChC/C,GACF,KAKT,OACE5E,EAAAA,cAAA,OAAKE,UD5Cc,SC6CjBF,EAAAA,cAAA,MAAIE,UD7C6B,SC6CRqI,GACzBvI,EAAAA,cAAA,QAAME,UD9CsD,SC8CvB,sCACrCF,EAAAA,cAAA,OAAKE,UD/CiF,SCgDpFF,EAAAA,cAAA,OAAKE,UAAWC,GACdH,EAAAA,cAAA,OAAKE,UAAWC,GACdH,EAAAA,cAAA,QAAME,UAAWC,GAAS,WAC1BH,EAAAA,cAAA,SAAOyB,KAAK,OAAOW,MAAOyF,EAAW3D,SA1B1Bd,IACnBuC,GAAS0C,EAAAA,EAAAA,IAAiBjF,EAAEoF,OAAOpG,QACnC0F,EAAa1E,EAAEoF,OAAOpG,MAAM,MA2BxBpC,EAAAA,cAAA,OAAKE,UAAWC,GACdH,EAAAA,cAAA,OAAKE,UAAWC,GACdH,EAAAA,cAAA,QAAME,UAAWC,GAAS,YAC1BH,EAAAA,cAAA,SAAOyB,KAAK,OAAOW,MAAO4F,EAAW9D,SA3B1Bd,IACnBuC,GAAS2C,EAAAA,EAAAA,IAAiBlF,EAAEoF,OAAOpG,QACnC6F,EAAa7E,EAAEoF,OAAOpG,MAAM,OA6BtB,C,kKClDH,MAoBMqG,EAA8BA,IAAM,CAAC9C,EAAU+C,KAC1D,MAAMvC,GAAUiB,EAAAA,EAAAA,IAAmBsB,MAC7B,YAAEC,EAAW,eAAEC,GAAmBzC,EACxC,OAAO0C,EAAAA,EAAAA,IAA2B,CAAEF,cAAaG,SAAUF,IACxDrF,MAAKtE,IAAqB,IAApB,YAAEwF,GAAaxF,EAChBwF,GACFkB,GAASoD,EAAAA,EAAAA,IAAgBtE,GAC3B,IAEDuE,OAAM5F,GAAK6F,QAAQC,KAAK,wDAAwDP,KAAeC,MAAkB,EAGzGO,EAA0BA,IAAM,CAACxD,EAAU+C,KACtD,MAAMvC,GAAUiB,EAAAA,EAAAA,IAAmBsB,MAC7B,YAAEC,EAAW,WAAES,GAAejD,EACpC,OAAOkD,EAAAA,EAAAA,IAAuB,CAAEV,cAAaG,SAAUM,IACpD7F,MAAKlD,IAAqB,IAApB,YAAEoE,GAAapE,EAChBoE,GACFkB,GAASoD,EAAAA,EAAAA,IAAgBtE,GAC3B,IAEDuE,OAAM5F,GAAK6F,QAAQC,KAAK,oDAAoDP,KAAeS,MAAc,EAGjGE,EAA6B3E,GAAS,CAACgB,EAAU+C,KAC5D,MAAM,YAAEC,EAAW,KAAEY,EAAI,aAAE1E,IAAiBC,EAAAA,EAAAA,IAAW4D,KAEvD,OADoB7D,EAAe2E,EAAAA,GAAkCC,EAAAA,IAClD,CAAEd,cAAaG,SAAUS,EAAM5E,UAASpB,MAAKmG,IAAqB,IAApB,YAAEjF,GAAaiF,EAC1EjF,GACFkB,GAASoD,EAAAA,EAAAA,IAAgBtE,GAC3B,GACA,C,2FClDJ,EAR6BxF,IAAyC,IAAxC,SAAE0K,EAAQ,UAAEzJ,EAAS,GAAE0J,EAAK,OAAO3K,EAC/D,IAAK0K,EAAU,OAAO3J,EAAAA,cAAAA,EAAAA,SAAA,MAEtB,MAAM6J,EAAKD,EAEX,OAAO5J,EAAAA,cAAC6J,EAAE,CAAC3J,UAAWsF,ICTD,QDSoBtF,GAAY4J,wBAAyB,CAAEC,OAAQJ,EAASK,SAAY,C,2HEH/G,MAAMC,EAAmB,IACnBC,EAA8B,iBAE9BxF,EAAgBzF,IAA2F,IAA1F,KAAES,EAAI,kBAAEyK,EAAoBD,EAA2B,QAAEE,EAAUH,GAAkBhL,EAC1G,MAAOoL,EAAOC,IAAYhI,EAAAA,EAAAA,WAASiI,GAInC,GAFAC,EAAwBF,IAEnB5K,EAAM,OAAOM,EAAAA,cAAAA,EAAAA,SAAA,MAElB,MAAMyK,EAAiB/K,EAAKyB,OAASiJ,EAErC,OACEpK,EAAAA,cAAA,OAAKgG,QAASA,IAAMyE,GAAkBH,GAAS,IAC7CtK,EAAAA,cAAA,YAAOqK,GAAQK,EAAAA,EAAAA,IAASN,EAATM,CAAkBhL,GAAQA,GACxC2K,GAASI,GAAkBzK,EAAAA,cAAA,QAAME,UCrBjB,SDqBqCiK,GAClD,EAIJK,EAA0BF,IAC9B,MAAMK,GAAYpL,EAAAA,EAAAA,IAAYC,EAAAA,KAE9BwD,EAAAA,EAAAA,YAAU,IAAMsH,GAAS,IAAO,CAACK,EAAWL,GAAU,EAGxD5F,EAAckG,UAAY,CACxBlL,KAAMmL,IAAAA,OACNV,kBAAmBU,IAAAA,OACnBT,QAASS,IAAAA,QAGX,O,8JE7BA,EALgBC,KACd,MAAM,MAAElG,IAAUrF,EAAAA,EAAAA,IAAYuF,EAAAA,IAC9B,OAAO9E,EAAAA,cAAC+K,EAAAA,EAAG,CAAC7L,UAAW,CAAE0F,UAAW,E,uDCuDtC,EA9CuBoG,KACrB,MAAM,KAAEzB,EAAI,MAAE3E,EAAK,aAAEC,IAAiBtF,EAAAA,EAAAA,IAAYuF,EAAAA,IAC5CmG,GAAe1L,EAAAA,EAAAA,IAAY2L,EAAAA,IAEjC,IAAK3B,IAAS3E,EAAO,OAAO5E,EAAAA,cAAAA,EAAAA,SAAA,MAE5B,MAAMmL,EAActG,EAChB,CACE+D,eAAgBW,EAChB6B,YAAYC,EAAAA,EAAAA,IAAQzG,IAEtB,CACEwE,WAAYG,EACZ+B,QAAQD,EAAAA,EAAAA,IAAQzG,IAGhB2G,EAAe1G,EAAe2G,EAAAA,GAA2BC,EAAAA,GACzDC,EAAcT,IAAiBM,GAAgB,CACnD3G,QACA3D,KAAK0K,EAAAA,EAAAA,IAAkBJ,EAAcJ,IAGjCS,EAAe/G,EAAegH,EAAAA,GAA2BC,EAAAA,GACzDC,EAAcd,IAAiBW,GAAgB,CACnDhH,QACA3D,KAAK0K,EAAAA,EAAAA,IAAkBC,EAAcT,IAGjCa,EAAWnH,EAAeoH,EAAAA,GAAuBC,EAAAA,GACjDC,EAAUlB,IAAiBe,GAAY,CAC3CpH,QACA3D,KAAK0K,EAAAA,EAAAA,IAAkBK,EAAUb,IAGnC,OAAKO,SAAAA,EAAazK,KAAQ8K,SAAAA,EAAa9K,KAAQkL,SAAAA,EAASlL,IAGtDjB,EAAAA,cAAA,OAAKE,UAAWC,EAAAA,EAAEsF,MAChBzF,EAAAA,cAAA,YAAM,8CACL0L,GAAe1L,EAAAA,cAAA,KAAGiH,KAAMyE,EAAYzK,KAAK,eAAayK,EAAY9G,OAClEmH,GAAe/L,EAAAA,cAAA,KAAGiH,KAAM8E,EAAY9K,KAAK,oBAAkB8K,EAAYnH,OACvEuH,GAAWnM,EAAAA,cAAA,KAAGiH,KAAMkF,EAAQlL,KAAK,WAASkL,EAAQvH,QAPa5E,EAAAA,cAAAA,EAAAA,SAAA,KAQ5D,E,WClDV,MAAMoM,EAAgBvH,GAAiBA,EAAe,sBAAwB,YAExEwH,EAA0BA,KAC9B,MAAM,MAAEzH,EAAK,aAAEC,IAAiBtF,EAAAA,EAAAA,IAAYuF,EAAAA,IAE5C,OACE9E,EAAAA,cAAA,OAAKE,UAAWC,EAAAA,EAAEsF,MAChBzF,EAAAA,cAAA,MAAIE,UAAWC,EAAAA,EAAEV,OAAO,+BAA6BmF,GACrD5E,EAAAA,cAAA,KAAGE,UAAWC,EAAAA,EAAET,MACb,sEACE0M,EAAcvH,MAAiBD,kDACGwH,EAAcvH,MAAiBD,8EAGlE,EAIJ0H,EAA0BA,KAC9B,MAAM,MAAE1H,EAAK,aAAEC,IAAiBtF,EAAAA,EAAAA,IAAYuF,EAAAA,IAE5C,OACE9E,EAAAA,cAAA,OAAKE,UAAWC,EAAAA,EAAEsF,MAChBzF,EAAAA,cAAA,MAAIE,UAAWC,EAAAA,EAAEV,OAAO,uBAAqBmF,GAC7C5E,EAAAA,cAAA,KAAGE,UAAWC,EAAAA,EAAET,MAAM,6CAEnB,IAAI0M,EAAcvH,MAAiBD,KACpC5E,EAAAA,cAAA,WAAM,qJAIJ,EAIJuM,EAAmB1H,GAAiBA,EAAe,iBAAmB,YAEtE2H,EAAsBA,KAC1B,MAAM,MAAE5H,EAAK,aAAEC,IAAiBtF,EAAAA,EAAAA,IAAYuF,EAAAA,IAE5C,OACE9E,EAAAA,cAAA,OAAKE,UAAWC,EAAAA,EAAEsF,MAChBzF,EAAAA,cAAA,MAAIE,UAAWC,EAAAA,EAAEV,OAAO,UAAQmF,GAChC5E,EAAAA,cAAA,KAAGE,UAAWC,EAAAA,EAAET,MAAM,2BAEnB,IAAI6M,EAAiB1H,MAAiBD,IAAQ,wFAE/C5E,EAAAA,cAAA,WAAM,oDAEL,IAAIuM,EAAiB1H,MAAiBD,IAAQ,+EAE/C5E,EAAAA,cAAA,WAAM,wJAEmC,IACzCA,EAAAA,cAAA,KAAGiH,KAAK,yEAAwE,8CAE3E,IAAI,mBAGP,EAIJwF,EAA8BA,KAClC,MAAM,MAAE7H,EAAK,aAAEC,IAAiBtF,EAAAA,EAAAA,IAAYuF,EAAAA,IAE5C,OACE9E,EAAAA,cAAA,OAAKE,UAAWC,EAAAA,EAAEsF,MAChBzF,EAAAA,cAAA,KAAGE,UAAWC,EAAAA,EAAET,MAAM,oDAC8B,IACjDmF,EAAe,0BAA0BD,IAAU,aAAaA,IAAQ,iLAE1CC,EAAe,WAAWD,IAAU,MAAMA,IAAQ,IACjF5E,EAAAA,cAAA,WAAM,mDAC2C,IACjDA,EAAAA,cAAA,KAAGiH,MAAM0E,EAAAA,EAAAA,IAAkBe,EAAAA,KAAqB,wBAAwB,UAAQ,IAChF1M,EAAAA,cAAA,KAAGiH,MAAM0E,EAAAA,EAAAA,IAAkBgB,EAAAA,KAAiB,yBAAyB,qCACrE3M,EAAAA,cAAA,WAAM,4DACoD,IAC1DA,EAAAA,cAAA,KAAGiH,MAAM0E,EAAAA,EAAAA,IAAkBiB,EAAAA,KAAuB,eAEhD,EAmBV,MAf8B3N,IAAe,IAAd,MAAE0F,GAAO1F,EACtC,OAAQ0F,GACN,KAAKI,EAAAA,GAAUC,QACb,OAAOhF,EAAAA,cAACqM,EAAuB,MACjC,KAAKtH,EAAAA,GAAUG,QACb,OAAOlF,EAAAA,cAACsM,EAAuB,MACjC,KAAKvH,EAAAA,GAAUI,IACb,OAAOnF,EAAAA,cAACwM,EAAmB,MAC7B,KAAKpH,EAAAA,GACH,OAAOpF,EAAAA,cAACyM,EAA2B,MACrC,QACE,OAAOzM,EAAAA,cAAAA,EAAAA,SAAA,MACX,EClFF,EAb6Bf,IAAA,IAAC,MAAE0F,GAAO1F,EAAA,OACrCe,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAAA,OAAKE,UAAWC,EAAAA,EAAE0M,oBACflI,IAAUS,EAAAA,IAAwBpF,EAAAA,cAAC4H,EAAAA,EAAkB,MACtD5H,EAAAA,cAAC8M,EAAqB,CAACnI,MAAOA,IAC9B3E,EAAAA,cAACsE,EAAAA,EAAe,MAChBtE,EAAAA,cAAC8K,EAAO,MACR9K,EAAAA,cAACgL,EAAc,OAEjBhL,EAAAA,cAAC+M,EAAAA,EAAM,MACN,C,uICYL,EAxBgB9N,IAAyD,IAAxD,SAAEsB,EAAQ,OAAEC,EAAM,aAAEpB,EAAY,gBAAE4N,GAAiB/N,EAClE,MAAOgO,EAAMjH,IAAWkH,EAAAA,EAAAA,KAExB,OACElN,EAAAA,cAAA,WACEE,UAAWsF,ICZS,QDYapG,GAAgB,mBACjD6N,KAAMA,EACN3H,WAAS,EACT6H,SAAS,aACT5H,SAAS,8BACT,WAAUnG,GAEVY,EAAAA,cAAA,WAASE,UCnB+C,QDmBzB8F,QAASA,GACtChG,EAAAA,cAAA,MAAImN,SAAS,QAAQ5M,GACrBP,EAAAA,cAAA,QAAME,UCrB8B,SDsBlCF,EAAAA,cAACoN,EAAAA,EAAO,CAACnM,IAAKoM,MAGlBrN,EAAAA,cAAA,OAAKE,UCzBoE,QDyB/CoF,WAAS,EAAC6H,SAAS,iBAAiB5H,SAAS,6BACrEvF,EAAAA,cAAA,OAAKmN,SAAS,QAAQH,EAAkBhN,EAAAA,cAACsN,EAAAA,EAAoB,CAAC3D,SAAUnJ,IAAaA,IAE/E,C,wBE5BG,SAAS,IACtB,OAAO,IACT,C,qDCFF,KAAgB,KAAO,QAAQ,MAAQ,QAAQ,KAAO,Q,iECCvC,MAAM+M,UAA0BxM,MAC7CC,WAAAA,GAAoC,IAAxBoC,EAAClC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,mBACdI,MAAM8B,GACN7B,KAAKiM,cAAgBpK,EACrB7B,KAAKC,KAAO,oBACZD,KAAKE,KAP4B,GAQnC,E,sBCPF,KAAgB,mBAAqB,Q","sources":["webpack://web-pwa/./src/domain/address/CityDescription.less?7988","webpack://web-pwa/./src/domain/seo/FAQ/Faq.jsx","webpack://web-pwa/./src/domain/error/PermanentRedirectError.js","webpack://web-pwa/./src/domain/seo/zones/RegionMapImage.jsx","webpack://web-pwa/./src/routes/routeErrors.utils.js","webpack://web-pwa/./src/domain/address/AddressHeaderForm.jsx","webpack://web-pwa/./src/domain/address/AddressHeaderForm.less?9671","webpack://web-pwa/./src/domain/address/ZoneDescription.jsx","webpack://web-pwa/./src/domain/seo/CityLayerLinks.less?0ccd","webpack://web-pwa/./src/domain/seo/zones/LayerZoneMetaManager.jsx","webpack://web-pwa/./src/domain/seo/FAQ/FaqContainer.jsx","webpack://web-pwa/./src/domain/seo/LayerCityIntroduction.less?88e1","webpack://web-pwa/./src/domain/suggest/AddressSuggestContent.jsx","webpack://web-pwa/./src/domain/seo/FAQ/faq.helpers.jsx","webpack://web-pwa/./src/domain/seo/useFirstAddressWithTownSeoPostcode.js","webpack://web-pwa/./src/domain/map/common/MapEventDatePicker.less?bdf8","webpack://web-pwa/./src/domain/map/common/MapEventDatePicker.jsx","webpack://web-pwa/./src/store/seo/seo-zone.actions.js","webpack://web-pwa/./src/domain/ui/HTMLTextFromMarkdown.jsx","webpack://web-pwa/./src/domain/ui/HTMLTextFromMarkdown.less?88ed","webpack://web-pwa/./src/domain/genericComponents/TextShortener.jsx","webpack://web-pwa/./src/domain/genericComponents/TextShortener.less?828c","webpack://web-pwa/./src/domain/seo/FAQ/ZoneFaq.jsx","webpack://web-pwa/./src/domain/seo/ZoneLayerLinks.jsx","webpack://web-pwa/./src/domain/seo/zones/LayerZoneIntroduction.jsx","webpack://web-pwa/./src/domain/seo/zones/LayerZoneMainContent.jsx","webpack://web-pwa/./src/domain/seo/FAQ/FaqItem.jsx","webpack://web-pwa/./src/domain/seo/FAQ/FaqItem.less?f19d","webpack://web-pwa/./src/domain/seo/zones/DepartmentMapImage.jsx","webpack://web-pwa/./src/domain/seo/FAQ/Faq.less?4d59","webpack://web-pwa/./src/domain/error/PageNotFoundError.js","webpack://web-pwa/./src/domain/address/AddressMainContent.less?df95"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"description\":\"oqui8\"};","import FaqContainer from './FaqContainer'\nimport s from './Faq.less'\nimport FaqItem from './FaqItem'\nimport React from 'react'\nimport { insertLinkInText } from './faq.helpers'\nimport { replaceKeysInString } from '../../../utils/string'\nimport { useSelector } from 'react-redux'\nimport { selectCurrentHistoryFullRoute } from '../../../store/history/history.selectors'\nimport { selectSeoFaqData } from '../../../store/seo/seo.selectors'\nimport useErrorBoundaryCallback from '../../utils/useErrorBoundaryCallback'\n\nconst Faq = ({ faqParams = {}, impressionDataTag, clickDataTag, noTitle = false }) => {\n const currentRouteURL = useSelector(selectCurrentHistoryFullRoute)\n const { title, text, qa } = useSelector(selectSeoFaqData)\n\n const insertFaqParams = useErrorBoundaryCallback(text => replaceKeysInString(text, faqParams), [faqParams])\n\n if (!qa) return <>\n\n return (\n \n {title && !noTitle &&

{insertFaqParams(title)}

}\n {text &&
{insertFaqParams(text)}
}\n {qa.map(({ question, answer }, index) => {\n const computedAnswer = insertLinkInText({\n txt: insertFaqParams(answer),\n currentRouteURL\n })\n\n return (\n \n )\n })}\n
\n )\n}\n\nexport default Faq\n","export const PermanentRedirectErrorCode = 301\n\nexport default class PermanentRedirectError extends Error {\n constructor(url = '/', host, e = 'Redirection permanente') {\n super(e)\n this.name = 'Moved Permamently'\n this.type = PermanentRedirectErrorCode\n this.url = url\n this.host = host\n }\n}\n","\n export default function () {\n return null\n }\n ","import AddressNotFoundError from '../domain/error/AddressNotFoundError'\nimport PageNotFoundError from '../domain/error/PageNotFoundError'\nimport PermanentRedirectError from '../domain/error/PermanentRedirectError'\nimport ServerError from '../domain/error/ServerError'\n\nexport const getTechnicalError = err => {\n if (__BROWSER__) return err\n if (err instanceof AddressNotFoundError) return new PageNotFoundError(err)\n if (err instanceof PermanentRedirectError) return err\n if (err instanceof ServerError) return err\n return new ServerError(err)\n}\n\nexport const technicalErrorCatcher = err => Promise.reject(getTechnicalError(err))\n","import React, { useEffect, useRef, useState } from 'react'\nimport { useSelector } from 'react-redux'\nimport { searchAddress } from '../../store/address/address.actions'\nimport { selectIsFrenchSite } from '../../store/navigation/navigation.selectors'\nimport { selectSearchTerms } from '../../store/search/search.selectors'\nimport { suggestServiceCtx } from '../../store/suggest/suggest.service.constants'\nimport BackButton from '../header/BackButton'\nimport SearchInput from '../header/SearchInput'\nimport { useT } from '../i18n/T'\nimport { useAction } from '../utils/react-redux'\nimport s from './AddressHeaderForm.less'\n\nexport const AddressHeaderForm = ({ hasBackTag, transparent }) => {\n const isFrench = useSelector(selectIsFrenchSite)\n const searchTerms = useSelector(selectSearchTerms)\n const [value, setValue] = useState(searchTerms)\n const [loading, setLoading] = useState(false)\n const execSearchAddress = useAction(searchAddress)\n const SearchInputRef = useRef()\n const placeholder = useT('header.search.placeholder')\n\n useEffect(() => {\n // if searchTerms has been reset, we empty search field\n setValue(searchTerms)\n }, [searchTerms])\n\n const onChange = ({ value: val }) => {\n setValue(val)\n }\n\n const onSubmit = e => {\n e.preventDefault()\n if (!value) return\n\n setLoading(true)\n\n return SearchInputRef.current\n .onSubmit()\n .then(() => execSearchAddress({ terms: value }))\n .finally(() => {\n setLoading(false)\n })\n }\n\n return (\n <>\n \n
\n \n \n \n )\n}\n\nexport default AddressHeaderForm\n","// extracted by mini-css-extract-plugin\nexport default {\"AddressHeaderForm\":\"lx8xP\"};","import React from 'react'\nimport s from './CityDescription.less'\n\nimport { useSelector } from 'react-redux'\nimport { selectDescription } from '../../store/address/address.selectors'\nimport { withEmptyFallbackErrorBoundary } from '../error/EmptyFallbackErrorBoundary'\nimport TextShortener from '../genericComponents/TextShortener'\nimport { withFrenchLanguage } from '../i18n/i18nSite'\n\nconst ZoneDescription = ({ ZoneDescription }) => {\n const zoneDescription = useSelector(selectDescription)\n if (!zoneDescription) return <>\n\n return (\n
\n \n
\n )\n}\n\nexport default withEmptyFallbackErrorBoundary(withFrenchLanguage(ZoneDescription))\n","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"Lvy87\"};","import React from 'react'\nimport { useSelector } from 'react-redux'\nimport { selectZone } from '../../../store/address/address.selectors'\nimport MetaTags from '../../seo/MetaTags'\nimport { MAP_EVENT_LAYER_NAME, MAP_MODES } from '../../../store/map/map.constants'\n\nconst LayerZoneMetaManager = ({ layer }) => {\n const { label, isDepartment } = useSelector(selectZone)\n\n switch (layer) {\n case MAP_MODES.traffic: {\n const title = `Info trafic ${label} : la circulation en temps réel - Mappy`\n const description = `Des bouchons ? Le trafic est-il fluide ? Avec Mappy, affichez l'info-trafic en direct sur la carte de ${label}`\n return \n }\n case MAP_MODES.bicycle: {\n const title = `Plan Pistes cyclables ${label} - Mappy`\n const description = `Affichez les aménagements cyclables sur la carte ${\n isDepartment ? 'du département' : 'de la région'\n } ${label} avec Mappy`\n return \n }\n case MAP_MODES.zfe: {\n const title = `ZFE ${label} : les zones de restrictions Crit’Air - Mappy`\n const description = `Affichez sur la carte, si ${\n isDepartment ? 'le département' : 'la région'\n } ${label} possède des zones à faible émission avec Mappy`\n return \n }\n case MAP_EVENT_LAYER_NAME: {\n const title = `Restrictions de Circulation ${label} - Anticiper les routes fermées - Mappy`\n const description = `Avec Mappy, vérifiez les routes coupées, les périmètres de sécurité avec accès interdits ou réglementés pour les véhicules motorisés sur la carte de ${label}`\n return \n }\n }\n}\n\nexport default LayerZoneMetaManager\n","import React from 'react'\nimport classNames from 'classnames'\nimport s from './Faq.less'\n\nconst FaqContainer = ({ children, className, impressionDataTag }) => (\n \n {children}\n \n)\n\nexport default FaqContainer\n","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"vOn9c\",\"title\":\"tEtvX\",\"text\":\"ehAGp\"};","import React from 'react'\nimport { searchAddress } from '../../store/address/address.actions'\nimport { TAG_SUGGEST } from '../analytics/analytics.tagids.constants'\nimport { setSearchTerms } from '../../store/search/searchSlice'\nimport { removeHtmlEmTags } from '../../utils/string'\nimport useConfigureAndSendTag from '../analytics/useConfigureAndSendTag'\nimport { useAction } from '../utils/react-redux'\nimport SuggestContent from './SuggestContent'\nimport { SUGGEST_FROM_VALUES } from './suggest.constants'\nimport { useDispatch } from 'react-redux'\n\nconst AddressSuggestContent = () => {\n const dispatch = useDispatch()\n const execSearchAddress = useAction(searchAddress)\n const configureAndSendTag = useConfigureAndSendTag()\n\n const onClick = suggest => {\n const { labels, address, type, subtype, from } = suggest\n const label = removeHtmlEmTags(address || labels.join(' '))\n dispatch(setSearchTerms(label))\n\n if (from === SUGGEST_FROM_VALUES.favorites) {\n configureAndSendTag({\n type: TAG_SUGGEST,\n tagInfo: { type, subtype, from }\n })\n }\n\n execSearchAddress({ terms: label })\n }\n\n return \n}\n\nexport default AddressSuggestContent\n","import React from 'react'\n\nexport const replaceCityActivityPlaceHoldersInFaq = ({ txt, city, zip }) => {\n return txt\n .split('[ville]')\n .join(city)\n .split('[code-postal]')\n .join(zip)\n}\nexport const replaceItineraryPlaceHoldersInFaq = ({ txt, cityA, cityB }) => {\n return txt\n .split('[villeA]')\n .join(cityA)\n .split('[villeB]')\n .join(cityB)\n}\n\nexport const replaceCityActivityPlaceHoldersAndLinksInFaq = ({ txt, city, zip, currentRouteURL }) => {\n return insertLinkInText({ txt: replaceCityActivityPlaceHoldersInFaq({ txt, city, zip }), currentRouteURL })\n}\n\nexport const replaceItineraryPlaceHoldersAndLinksInFaq = ({ txt, cityA, cityB, currentRouteURL }) => {\n return insertLinkInText({ txt: replaceItineraryPlaceHoldersInFaq({ txt, cityA, cityB }), currentRouteURL })\n}\n\nexport const insertLinkInText = ({ txt, currentRouteURL }) => {\n // we use the ##link to build the links\n return txt.split(/(.*?)<\\/a>/).map((part, index) => {\n return part.includes('##') ? (\n \n {part.substring(2)}\n \n ) : (\n part\n )\n })\n}\n","import { useSelector } from 'react-redux'\nimport { selectFirstAddress } from '../../store/address/address.selectors'\nimport { searchServiceCtx } from '../../store/search/search.service.constants'\nimport { getPostCodeFromTown } from './seo'\n\nconst useFirstAddressWithTownSeoPostcode = () => {\n const address = useSelector(selectFirstAddress)\n if (address.geocode_level === searchServiceCtx.geocodeLevel.town) {\n const cityWithDistrictPostcode = getPostCodeFromTown(address.town)\n if (cityWithDistrictPostcode) return { ...address, postcode: cityWithDistrictPostcode }\n }\n return address\n}\n\nexport default useFirstAddressWithTownSeoPostcode\n","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"bBS8c\",\"title\":\"peUVV\",\"inputDescription\":\"OpDCn\",\"inputContainers\":\"lCQM2\",\"inputContainer\":\"WE0DU\",\"inputContentContainer\":\"dVdd9\",\"label\":\"XOgI9\"};","import React, { useEffect, useState } from 'react'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { selectZone } from '../../../store/address/address.selectors'\nimport { setMapEventsDate, setMapEventsTime } from '../../../store/map/mapSlice'\nimport useFirstAddressWithTownSeoPostcode from '../../seo/useFirstAddressWithTownSeoPostcode'\nimport { getCurrentDateISO, getCurrentTime } from '../../utils/date'\nimport s from './MapEventDatePicker.less'\nimport { selectAllMapEvents } from '../../../store/map/map.selectors'\n\nconst MapEventDatePicker = () => {\n const dispatch = useDispatch()\n\n const [dateValue, setDateValue] = useState(getCurrentDateISO())\n const [timeValue, setTimeValue] = useState(getCurrentTime())\n\n const mapEvents = useSelector(selectAllMapEvents)\n const { label } = useSelector(selectZone)\n const { town, postcode } = useFirstAddressWithTownSeoPostcode()\n\n useEffect(() => {\n dispatch(setMapEventsDate(dateValue))\n dispatch(setMapEventsTime(timeValue))\n }, [])\n\n if (mapEvents.length === 0) return <>\n\n const onDateChange = e => {\n dispatch(setMapEventsDate(e.target.value))\n setDateValue(e.target.value)\n }\n\n const onTimeChange = e => {\n dispatch(setMapEventsTime(e.target.value))\n setTimeValue(e.target.value)\n }\n\n const getTitleAdditionalLabel = () => {\n if (town && postcode) return `${town}, ${postcode}`\n else if (label) return label\n return ''\n }\n\n const dynamicTitle = `Restrictions de circulation ${getTitleAdditionalLabel()}`\n\n return (\n
\n

{dynamicTitle}

\n Sélectionnez une date et une heure\n
\n
\n
\n Date : \n \n
\n
\n
\n
\n Heure : \n \n
\n
\n
\n
\n )\n}\n\nexport default MapEventDatePicker\n","import {\n fetchDepartmentDescription,\n fetchLayerDepartmentDescription,\n fetchLayerRegionDescription,\n fetchRegionDescription\n} from '../../dataSource/seo/seo.request'\nimport { selectFirstAddress, selectZone } from '../address/address.selectors'\n\nimport PermanentRedirectError from '../../domain/error/PermanentRedirectError'\nimport { generateFullRoute } from '../../domain/router/routeUtils'\nimport { loadDescription } from '../address/addressSlice'\n\nexport const redirectLayerRegionRouteIfTownUpperCased = (regionCode, region, routeName) => {\n if (region.toLowerCase() !== region)\n throw new PermanentRedirectError(\n generateFullRoute(routeName, {\n regionCode,\n region: region.toLowerCase()\n })\n )\n}\n\nexport const redirectLayerDepartmentRouteIfTownUpperCased = (departmentCode, department, routeName) => {\n if (department.toLowerCase() !== department)\n throw new PermanentRedirectError(\n generateFullRoute(routeName, {\n departmentCode,\n department: department.toLowerCase()\n })\n )\n}\n\nexport const searchDepartmentDescription = () => (dispatch, getState) => {\n const address = selectFirstAddress(getState())\n const { countryCode, departmentCode } = address\n return fetchDepartmentDescription({ countryCode, zoneCode: departmentCode })\n .then(({ description }) => {\n if (description) {\n dispatch(loadDescription(description))\n }\n })\n .catch(e => console.warn(`searchDepartmentDescription: no zone description for ${countryCode}-${departmentCode}`))\n}\n\nexport const searchRegionDescription = () => (dispatch, getState) => {\n const address = selectFirstAddress(getState())\n const { countryCode, regionCode } = address\n return fetchRegionDescription({ countryCode, zoneCode: regionCode })\n .then(({ description }) => {\n if (description) {\n dispatch(loadDescription(description))\n }\n })\n .catch(e => console.warn(`searchRegionDescription: no zone description for ${countryCode}-${regionCode}`))\n}\n\nexport const searchLayerZoneDescription = layer => (dispatch, getState) => {\n const { countryCode, code, isDepartment } = selectZone(getState())\n const fetchMethod = isDepartment ? fetchLayerDepartmentDescription : fetchLayerRegionDescription\n return fetchMethod({ countryCode, zoneCode: code, layer }).then(({ description }) => {\n if (description) {\n dispatch(loadDescription(description))\n }\n })\n}\n","import React from 'react'\nimport classNames from 'classnames'\n\nimport s from './HTMLTextFromMarkdown.less'\n\nconst HTMLTextFromMarkdown = ({ htmlText, className, as = 'div' }) => {\n if (!htmlText) return <>\n\n const As = as\n\n return \n}\n\nexport default HTMLTextFromMarkdown\n","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"ynZ0M\"};","import React, { useState, useEffect } from 'react'\nimport PropTypes from 'prop-types'\nimport { useSelector } from 'react-redux'\nimport s from './TextShortener.less'\nimport { truncate } from '../../utils/string'\nimport { selectCurrentHistoryFullRoute } from '../../store/history/history.selectors'\n\nconst DEFAULT_MAX_CHAR = 150\nconst DEFAULT_EXPAND_BUTTON_LABEL = 'En savoir plus'\n\nconst TextShortener = ({ text, expandButtonLabel = DEFAULT_EXPAND_BUTTON_LABEL, maxChar = DEFAULT_MAX_CHAR }) => {\n const [short, setShort] = useState(__BROWSER__)\n\n useShortenOnRouteChange(setShort)\n\n if (!text) return <>\n\n const needShortening = text.length > maxChar\n\n return (\n
needShortening && setShort(false)}>\n {short ? truncate(maxChar)(text) : text}\n {short && needShortening && {expandButtonLabel}}\n
\n )\n}\n\nconst useShortenOnRouteChange = setShort => {\n const fullRoute = useSelector(selectCurrentHistoryFullRoute)\n\n useEffect(() => setShort(true), [fullRoute, setShort])\n}\n\nTextShortener.propTypes = {\n text: PropTypes.string,\n expandButtonLabel: PropTypes.string,\n maxChar: PropTypes.number\n}\n\nexport default TextShortener\n","// extracted by mini-css-extract-plugin\nexport default {\"more\":\"cqwF5\"};","import React from 'react'\nimport { useSelector } from 'react-redux'\nimport Faq from './Faq'\nimport { selectZone } from '../../../store/address/address.selectors'\n\nconst ZoneFaq = () => {\n const { label } = useSelector(selectZone)\n return \n}\n\nexport default ZoneFaq\n","import React from 'react'\nimport { useSelector } from 'react-redux'\nimport { selectZone } from '../../store/address/address.selectors'\nimport s from './CityLayerLinks.less'\nimport {\n ROUTE_BICYCLE_DEPARTMENT,\n ROUTE_BICYCLE_REGION,\n ROUTE_TRAFFIC_DEPARTMENT,\n ROUTE_TRAFFIC_REGION,\n ROUTE_ZFE_DEPARTMENT,\n ROUTE_ZFE_REGION\n} from '../../routes'\nimport { selectCurrentHistoryRoute } from '../../store/history/history.selectors'\nimport { generateFullRoute } from '../router/routeUtils'\nimport { slugify } from '../../utils/string'\n\nconst ZoneLayerLinks = () => {\n const { code, label, isDepartment } = useSelector(selectZone)\n const currentRoute = useSelector(selectCurrentHistoryRoute)\n\n if (!code || !label) return <>\n\n const routeParams = isDepartment\n ? {\n departmentCode: code,\n department: slugify(label)\n }\n : {\n regionCode: code,\n region: slugify(label)\n }\n\n const trafficRoute = isDepartment ? ROUTE_TRAFFIC_DEPARTMENT : ROUTE_TRAFFIC_REGION\n const trafficLink = currentRoute !== trafficRoute && {\n label,\n url: generateFullRoute(trafficRoute, routeParams)\n }\n\n const bicycleRoute = isDepartment ? ROUTE_BICYCLE_DEPARTMENT : ROUTE_BICYCLE_REGION\n const bicycleLink = currentRoute !== bicycleRoute && {\n label,\n url: generateFullRoute(bicycleRoute, routeParams)\n }\n\n const zfeRoute = isDepartment ? ROUTE_ZFE_DEPARTMENT : ROUTE_ZFE_REGION\n const zfeLink = currentRoute !== zfeRoute && {\n label,\n url: generateFullRoute(zfeRoute, routeParams)\n }\n\n if (!trafficLink?.url && !bicycleLink?.url && !zfeLink?.url) return <>\n\n return (\n
\n Sur la carte vous pouvez aussi afficher : \n {trafficLink && Info trafic {trafficLink.label}}\n {bicycleLink && Pistes cyclables {bicycleLink.label}}\n {zfeLink && les ZFE {zfeLink.label}}\n
\n )\n}\n\nexport default ZoneLayerLinks\n","import React from 'react'\nimport { useSelector } from 'react-redux'\nimport { selectZone } from '../../../store/address/address.selectors'\nimport s from '../LayerCityIntroduction.less'\nimport { MAP_EVENT_LAYER_NAME, MAP_MODES } from '../../../store/map/map.constants'\nimport { generateFullRoute } from '../../router/routeUtils'\nimport { ROUTE_ITINERARY_HOME, ROUTE_TRAFFIC_HOME, ROUTE_ZFE_HOME } from '../../../routes'\n\nconst getInZoneText = isDepartment => (isDepartment ? `dans le département` : `en région`)\n\nconst TrafficZoneIntroduction = () => {\n const { label, isDepartment } = useSelector(selectZone)\n\n return (\n
\n

Info trafic temps réel dans {label}

\n

\n {`Affichez sur la carte l'état du trafic routier en direct\n ${getInZoneText(isDepartment)} ${label}.\n Consultez l'état de la circulation ${getInZoneText(isDepartment)} ${label} : ralentissements, accidents,\n bouchons, travaux, voies fermées.`}\n

\n
\n )\n}\n\nconst BicycleZoneIntroduction = () => {\n const { label, isDepartment } = useSelector(selectZone)\n\n return (\n
\n

Pistes cyclables en {label}

\n

\n Affichez sur la carte les pistes cyclables\n {` ${getInZoneText(isDepartment)} ${label}.`}\n
\n Les différents aménagements cyclables, comme les voies vertes, les véloroutes et les voies partagées sont pris\n en compte sur les tracés de carte.\n

\n
\n )\n}\n\nconst getInZoneZfeText = isDepartment => (isDepartment ? `le département` : `la région`)\n\nconst ZfeZoneIntroduction = () => {\n const { label, isDepartment } = useSelector(selectZone)\n\n return (\n
\n

ZFE en {label}

\n

\n Affichez sur la carte si\n {` ${getInZoneZfeText(isDepartment)} ${label}`} possède des zones de restriction Crit’Air (Elles s’affichent en\n rouge sur la carte).\n
\n En cas de restriction Crit’Air, cela signifie que\n {` ${getInZoneZfeText(isDepartment)} ${label}`} met en place une zone à faible émission pour réduire la\n pollution de l’air.\n
\n Cette carte vous permet de visualiser les zones concernées par les restrictions de circulation dans toute la\n France. Vous pouvez retrouver toutes les{' '}\n \n villes concernées par la vignette Crit’Air\n {' '}\n sur notre blog.\n

\n
\n )\n}\n\nconst RestrictionZoneIntroduction = () => {\n const { label, isDepartment } = useSelector(selectZone)\n\n return (\n
\n

\n Affichez sur la carte s'il y a des routes fermées{' '}\n {isDepartment ? `dans le département du ${label}` : `en région ${label}`}. Vous pourrez ainsi anticiper votre\n trajet en visualisant en direct les zones dans lesquelles les accès sont interdits ou réglementés pour les\n véhicules motorisés en direct {isDepartment ? `dans le ${label}` : `en ${label}`}.\n
\n Nous vous conseillons également de visualiser le{' '}\n trafic en temps réel ou les{' '}\n restrictions crit’air pour mieux préparer votre trajet.\n
\n Tous ces éléments sont pris en compte si vous réalisez un{' '}\n itinéraire\n

\n
\n )\n}\n\nconst LayerZoneIntroduction = ({ layer }) => {\n switch (layer) {\n case MAP_MODES.traffic:\n return \n case MAP_MODES.bicycle:\n return \n case MAP_MODES.zfe:\n return \n case MAP_EVENT_LAYER_NAME:\n return \n default:\n return <>\n }\n}\n\nexport default LayerZoneIntroduction\n","import React from 'react'\nimport { MAP_EVENT_LAYER_NAME } from '../../../store/map/map.constants'\nimport s from '../../address/AddressMainContent.less'\nimport ZoneDescription from '../../address/ZoneDescription'\nimport Footer from '../../footer/Footer'\nimport MapEventDatePicker from '../../map/common/MapEventDatePicker'\nimport ZoneFaq from '../FAQ/ZoneFaq'\nimport ZoneLayerLinks from '../ZoneLayerLinks'\nimport LayerZoneIntroduction from './LayerZoneIntroduction'\n\nconst LayerZoneMainContent = ({ layer }) => (\n <>\n
\n {layer === MAP_EVENT_LAYER_NAME && }\n \n \n \n \n
\n