{"version":3,"file":"0c4051f1bbb75440f9b3d1ba2f5a3e66d3e9900f-a26ac8ab59a73e3c503b.js","mappings":";kIAEA,IAAIA,EAAU,EAAQ,OAMlBC,EAAgB,CAClBC,mBAAmB,EACnBC,aAAa,EACbC,cAAc,EACdC,cAAc,EACdC,aAAa,EACbC,iBAAiB,EACjBC,0BAA0B,EAC1BC,0BAA0B,EAC1BC,QAAQ,EACRC,WAAW,EACXC,MAAM,GAEJC,EAAgB,CAClBC,MAAM,EACNC,QAAQ,EACRC,WAAW,EACXC,QAAQ,EACRC,QAAQ,EACRC,WAAW,EACXC,OAAO,GASLC,EAAe,CACjB,UAAY,EACZC,SAAS,EACTjB,cAAc,EACdC,aAAa,EACbK,WAAW,EACXC,MAAM,GAEJW,EAAe,CAAC,EAGpB,SAASC,EAAWC,GAElB,OAAIzB,EAAQ0B,OAAOD,GACVJ,EAGFE,EAAaE,EAAoB,WAAMxB,CAChD,CATAsB,EAAavB,EAAQ2B,YAhBK,CACxB,UAAY,EACZC,QAAQ,EACRvB,cAAc,EACdC,aAAa,EACbK,WAAW,GAYbY,EAAavB,EAAQ6B,MAAQR,EAS7B,IAAIS,EAAiBC,OAAOD,eACxBE,EAAsBD,OAAOC,oBAC7BC,EAAwBF,OAAOE,sBAC/BC,EAA2BH,OAAOG,yBAClCC,EAAiBJ,OAAOI,eACxBC,EAAkBL,OAAOf,UA6B7BqB,EAAOC,QA5BP,SAASC,EAAqBC,EAAiBC,EAAiBC,GAC9D,GAA+B,iBAApBD,EAA8B,CAEvC,GAAIL,EAAiB,CACnB,IAAIO,EAAqBR,EAAeM,GACpCE,GAAsBA,IAAuBP,GAC/CG,EAAqBC,EAAiBG,EAAoBD,EAE9D,CACA,IAAIE,EAAOZ,EAAoBS,GAC3BR,IACFW,EAAOA,EAAKC,OAAOZ,EAAsBQ,KAI3C,IAFA,IAAIK,EAAgBtB,EAAWgB,GAC3BO,EAAgBvB,EAAWiB,GACtBO,EAAI,EAAGA,EAAIJ,EAAK7B,SAAUiC,EAAG,CACpC,IAAIC,EAAML,EAAKI,GACf,KAAKnC,EAAcoC,IAAUP,GAAaA,EAAUO,IAAWF,GAAiBA,EAAcE,IAAWH,GAAiBA,EAAcG,IAAO,CAC7I,IAAIC,EAAahB,EAAyBO,EAAiBQ,GAC3D,IAEEnB,EAAeU,EAAiBS,EAAKC,EACvC,CAAE,MAAOC,GAAI,CACf,CACF,CACF,CACA,OAAOX,CACT,oCC9EA,IAAIY,EAAI,mBAAsBC,QAAUA,OAAOC,IAC7CC,EAAIH,EAAIC,OAAOC,IAAI,iBAAmB,MACtCE,EAAIJ,EAAIC,OAAOC,IAAI,gBAAkB,MACrCH,EAAIC,EAAIC,OAAOC,IAAI,kBAAoB,MACvCG,EAAIL,EAAIC,OAAOC,IAAI,qBAAuB,MAC1CI,EAAIN,EAAIC,OAAOC,IAAI,kBAAoB,MACvCK,EAAIP,EAAIC,OAAOC,IAAI,kBAAoB,MACvCM,EAAIR,EAAIC,OAAOC,IAAI,iBAAmB,MACtCO,EAAIT,EAAIC,OAAOC,IAAI,oBAAsB,MACzCQ,EAAIV,EAAIC,OAAOC,IAAI,yBAA2B,MAC9CS,EAAIX,EAAIC,OAAOC,IAAI,qBAAuB,MAC1CU,EAAIZ,EAAIC,OAAOC,IAAI,kBAAoB,MACvCW,EAAIb,EAAIC,OAAOC,IAAI,uBAAyB,MAC5CY,EAAId,EAAIC,OAAOC,IAAI,cAAgB,MACnCa,EAAIf,EAAIC,OAAOC,IAAI,cAAgB,MACnCc,EAAIhB,EAAIC,OAAOC,IAAI,eAAiB,MACpCe,EAAIjB,EAAIC,OAAOC,IAAI,qBAAuB,MAC1CgB,EAAIlB,EAAIC,OAAOC,IAAI,mBAAqB,MACxCiB,EAAInB,EAAIC,OAAOC,IAAI,eAAiB,MACtC,SAASkB,EAAEC,GACT,GAAI,iBAAoBA,GAAK,OAASA,EAAG,CACvC,IAAIC,EAAID,EAAEE,SACV,OAAQD,GACN,KAAKnB,EACH,OAAQkB,EAAIA,EAAE7D,MACZ,KAAKiD,EACL,KAAKC,EACL,KAAKX,EACL,KAAKO,EACL,KAAKD,EACL,KAAKO,EACH,OAAOS,EACT,QACE,OAAQA,EAAIA,GAAKA,EAAEE,UACjB,KAAKf,EACL,KAAKG,EACL,KAAKI,EACL,KAAKD,EACL,KAAKP,EACH,OAAOc,EACT,QACE,OAAOC,GAGjB,KAAKlB,EACH,OAAOkB,EAEb,CACF,CACA,SAASE,EAAEH,GACT,OAAOD,EAAEC,KAAOX,CAClB,CACAxB,EAAQuC,UAAYhB,EACpBvB,EAAQwC,eAAiBhB,EACzBxB,EAAQyC,gBAAkBnB,EAC1BtB,EAAQ0C,gBAAkBrB,EAC1BrB,EAAQ2C,QAAU1B,EAClBjB,EAAQX,WAAaoC,EACrBzB,EAAQ4C,SAAW/B,EACnBb,EAAQ6C,KAAOhB,EACf7B,EAAQT,KAAOqC,EACf5B,EAAQ8C,OAAS5B,EACjBlB,EAAQ+C,SAAW3B,EACnBpB,EAAQgD,WAAa7B,EACrBnB,EAAQiD,SAAWvB,EACnB1B,EAAQkD,YAAc,SAAUf,GAC9B,OAAOG,EAAEH,IAAMD,EAAEC,KAAOZ,CAC1B,EACAvB,EAAQmD,iBAAmBb,EAC3BtC,EAAQoD,kBAAoB,SAAUjB,GACpC,OAAOD,EAAEC,KAAOb,CAClB,EACAtB,EAAQqD,kBAAoB,SAAUlB,GACpC,OAAOD,EAAEC,KAAOd,CAClB,EACArB,EAAQsD,UAAY,SAAUnB,GAC5B,MAAO,iBAAoBA,GAAK,OAASA,GAAKA,EAAEE,WAAapB,CAC/D,EACAjB,EAAQuD,aAAe,SAAUpB,GAC/B,OAAOD,EAAEC,KAAOV,CAClB,EACAzB,EAAQwD,WAAa,SAAUrB,GAC7B,OAAOD,EAAEC,KAAOtB,CAClB,EACAb,EAAQyD,OAAS,SAAUtB,GACzB,OAAOD,EAAEC,KAAON,CAClB,EACA7B,EAAQZ,OAAS,SAAU+C,GACzB,OAAOD,EAAEC,KAAOP,CAClB,EACA5B,EAAQ0D,SAAW,SAAUvB,GAC3B,OAAOD,EAAEC,KAAOjB,CAClB,EACAlB,EAAQ2D,WAAa,SAAUxB,GAC7B,OAAOD,EAAEC,KAAOf,CAClB,EACApB,EAAQ4D,aAAe,SAAUzB,GAC/B,OAAOD,EAAEC,KAAOhB,CAClB,EACAnB,EAAQ6D,WAAa,SAAU1B,GAC7B,OAAOD,EAAEC,KAAOT,CAClB,EACA1B,EAAQ8D,mBAAqB,SAAU3B,GACrC,MAAO,iBAAoBA,GAAK,mBAAsBA,GAAKA,IAAMtB,GAAKsB,IAAMX,GAAKW,IAAMf,GAAKe,IAAMhB,GAAKgB,IAAMT,GAAKS,IAAMR,GAAK,iBAAoBQ,GAAK,OAASA,IAAMA,EAAEE,WAAaR,GAAKM,EAAEE,WAAaT,GAAKO,EAAEE,WAAahB,GAAKc,EAAEE,WAAaf,GAAKa,EAAEE,WAAaZ,GAAKU,EAAEE,WAAaN,GAAKI,EAAEE,WAAaL,GAAKG,EAAEE,WAAaJ,GAAKE,EAAEE,WAAaP,EACtV,EACA9B,EAAQ+D,OAAS7B,sCCjHfnC,EAAOC,QAAU,EAAjB,2CCDF,IAAIgE,EAAWC,MAAQA,KAAKD,UAAY,WAQtC,OAPAA,EAAWvE,OAAOyE,QAAU,SAAUrC,GACpC,IAAK,IAAIsC,EAAGzD,EAAI,EAAGe,EAAI5C,UAAUJ,OAAQiC,EAAIe,EAAGf,IAE9C,IAAK,IAAIgB,KADTyC,EAAItF,UAAU6B,GACOjB,OAAOf,UAAU0F,eAAeC,KAAKF,EAAGzC,KAAIG,EAAEH,GAAKyC,EAAEzC,IAE5E,OAAOG,CACT,EACOmC,EAASM,MAAML,KAAMpF,UAC9B,EACAY,OAAOD,eAAeQ,EAAS,aAAc,CAC3CuE,OAAO,IAET,IAAIC,EAAqB,EAAQ,OAC7BC,EAAwB,EAAQ,OAChCC,EAAoB,EAAQ,OAC5BC,EAAqBX,EAASA,EAAS,CAAC,EAAGQ,EAAmBI,iBAAkB,CAClFC,IAAKL,EAAmBI,gBAAgBE,QAE1C,SAASC,EAAmBC,EAAWC,EAAaC,GAClDD,EAAYE,UAAY,EACxB,IACIC,EADAC,EAAeJ,EAAYK,KAAKN,GAEpC,GAAIK,EAAc,CAChBD,EAAgB,GAChB,IAAIG,EAAmB,EACvB,EAAG,CACGA,IAAqBF,EAAaG,QACpCJ,GAAiBJ,EAAUS,UAAUF,EAAkBF,EAAaG,QAEtE,IAAIE,EAAeL,EAAa,GAChCD,GAAiBF,EAAcQ,GAC/BH,EAAmBF,EAAaG,MAAQE,EAAajH,MACvD,OAAS4G,EAAeJ,EAAYK,KAAKN,IACrCO,IAAqBP,EAAUvG,SACjC2G,GAAiBJ,EAAUS,UAAUF,GAEzC,MACEH,EAAgBJ,EAElB,OAAOI,CACT,CACA,IAAIO,EAAgB,CAClBC,aAAc,WACdC,SAAU,6IACVC,kBAAmB,sKACnBC,sBAAuB,iKACvBC,UAAW,sMAETC,EAAuB,CACzBC,KAAM,eACNC,MAAO,MACPC,QAAS,WAyBXpG,EAAQqG,OAvBR,SAAgBC,EAAMC,GACpB,IAAIC,OAAY,IAAPD,EAAgBN,EAAuBM,EAC9CE,EAAKD,EAAGN,KACRA,OAAc,IAAPO,EAAgB,eAAiBA,EACxCC,EAAKF,EAAGJ,QACRA,OAAiB,IAAPM,EAAgB,UAAYA,EACtCC,EAAKH,EAAGL,MAEV,IAAKG,EACH,MAAO,GAET,IAAIM,EAAejB,EAAcO,GAC7BW,EAAalC,OALA,IAAPgC,EAAgB,MAAQA,GAKSG,WACvCC,EAAoB,gBAAZX,EACZ,OAAOrB,EAAmBuB,EAAMM,GAAc,SAAUI,GACtD,IAAIC,EAASJ,EAAWG,GACxB,IAAKC,EAAQ,CACX,IAAIC,EAAOF,EAAMvI,OAAS,EAAIiG,EAAkByC,aAAaH,EAAO,GAAKA,EAAMI,WAAW,GAC1FH,GAAUF,EAAQ,MAAQG,EAAKG,SAAS,IAAM,KAAOH,GAAQ,GAC/D,CACA,OAAOD,CACT,GACF,EAEA,IAAIK,EAAuB,CACzBC,MAAO,OACPpB,MAAO,OAELqB,EAAS,4CACTC,EAAY,gDACZC,EAAoB,CACtBC,IAAK,CACHH,OAAQA,EACRC,UAAWA,EACXG,KAAMpD,EAAmBqD,YAAYF,KAEvCG,MAAO,CACLN,OAAQA,EACRC,UAAWA,EACXG,KAAMpD,EAAmBqD,YAAYC,OAEvChD,MAAO,CACL0C,OAAQA,EACRC,UAAWA,EACXG,KAAMpD,EAAmBqD,YAAY/C,QAGrCiD,EAAgB/D,EAASA,EAAS,CAAC,EAAG0D,GAAoB,CAC5D7C,IAAK6C,EAAkB5C,QAErBkD,EAAeC,OAAOD,aACtBE,EAAkBF,EAAa,OAC/BG,EAA6B,CAC/BhC,MAAO,OAET,SAASiC,EAAiBC,EAAQxB,EAAYyB,EAAaC,GACzD,IAAIC,EAAeH,EACfI,EAAuBJ,EAAOA,EAAO5J,OAAS,GAClD,GAAI6J,GAAwC,MAAzBG,EACjBD,EAAeH,OACV,GAAIE,GAAqC,MAAzBE,EACrBD,EAAeH,MACV,CACL,IAAIK,EAA0B7B,EAAWwB,GACzC,GAAIK,EACFF,EAAeE,OACV,GAAkB,MAAdL,EAAO,IAA4B,MAAdA,EAAO,GAAY,CACjD,IAAIM,EAAmBN,EAAO,GAC1BO,EAAiC,KAApBD,GAA+C,KAApBA,EAA0BE,SAASR,EAAOS,OAAO,GAAI,IAAMD,SAASR,EAAOS,OAAO,IAC9HN,EAAeI,GAAc,QAAUV,EAAkBU,EAAa,MAAQlE,EAAkBqE,cAAcH,GAAcZ,EAAavD,EAAsBuE,kBAAkBJ,IAAeA,EAClM,CACF,CACA,OAAOJ,CACT,CASAxI,EAAQiJ,aARR,SAAsBZ,EAAQ9B,GAC5B,IAAIC,QAAa,IAAPD,EAAgB4B,EAA6B5B,GAAIJ,MAE3D,OAAKkC,EAGED,EAAiBC,EAAQ1D,OAJf,IAAP6B,EAAgB,MAAQA,GAIwB0C,UAAU,GAAO,GAFlE,EAGX,EAmBAlJ,EAAQmJ,OAjBR,SAAgB7C,EAAMC,GACpB,IAAIC,OAAY,IAAPD,EAAgBe,EAAuBf,EAC9CE,EAAKD,EAAGL,MACRA,OAAe,IAAPM,EAAgB,MAAQA,EAChCC,EAAKF,EAAGe,MACRA,OAAe,IAAPb,EAA0B,QAAVP,EAAkB,SAAW,OAASO,EAChE,IAAKJ,EACH,MAAO,GAET,IAAI8C,EAAerB,EAAc5B,GAAOoB,GACpCV,EAAalC,EAAmBwB,GAAO+C,SACvCZ,EAAwB,cAAVf,EACdgB,EAAqB,WAAVhB,EACf,OAAOxC,EAAmBuB,EAAM8C,GAAc,SAAUf,GACtD,OAAOD,EAAiBC,EAAQxB,EAAYyB,EAAaC,EAC3D,GACF,oCCzJA9I,OAAOD,eAAeQ,EAAS,aAAc,CAC3CuE,OAAO,IAETvE,EAAQ6H,YAAc,CACpBF,IAAK,6CACLG,MAAO,uoBACPhD,MAAO,qhCAET9E,EAAQ4E,gBAAkB,CACxB+C,IAAK,CACHuB,SAAU,CACR,OAAQ,IACR,OAAQ,IACR,SAAU,IACV,SAAU,IACV,QAAS,KAEXpC,WAAY,CACV,IAAK,OACL,IAAK,OACL,IAAK,SACL,IAAK,SACL,IAAK,UAGTgB,MAAO,CACLoB,SAAU,CACR,SAAU,IACV,QAAS,IACT,SAAU,IACV,SAAU,IACV,UAAW,IACX,QAAS,IACT,SAAU,IACV,SAAU,IACV,UAAW,IACX,UAAW,IACX,WAAY,IACZ,OAAQ,IACR,QAAS,IACT,UAAW,IACX,WAAY,IACZ,QAAS,IACT,SAAU,IACV,OAAQ,IACR,QAAS,IACT,QAAS,IACT,SAAU,IACV,QAAS,IACT,SAAU,IACV,SAAU,IACV,UAAW,IACX,OAAQ,IACR,QAAS,IACT,OAAQ,IACR,QAAS,IACT,OAAQ,IACR,QAAS,IACT,QAAS,IACT,SAAU,IACV,OAAQ,IACR,QAAS,IACT,UAAW,IACX,WAAY,IACZ,QAAS,IACT,SAAU,IACV,QAAS,IACT,SAAU,IACV,SAAU,IACV,UAAW,IACX,SAAU,IACV,UAAW,IACX,QAAS,IACT,SAAU,IACV,UAAW,IACX,WAAY,IACZ,SAAU,IACV,UAAW,IACX,QAAS,IACT,SAAU,IACV,QAAS,IACT,SAAU,IACV,SAAU,IACV,UAAW,IACX,UAAW,IACX,WAAY,IACZ,UAAW,IACX,WAAY,IACZ,UAAW,IACX,WAAY,IACZ,UAAW,IACX,WAAY,IACZ,UAAW,IACX,WAAY,IACZ,UAAW,IACX,WAAY,IACZ,SAAU,IACV,UAAW,IACX,UAAW,IACX,WAAY,IACZ,QAAS,IACT,SAAU,IACV,SAAU,IACV,UAAW,IACX,SAAU,IACV,UAAW,IACX,UAAW,IACX,WAAY,IACZ,UAAW,IACX,WAAY,IACZ,UAAW,IACX,WAAY,IACZ,SAAU,IACV,UAAW,IACX,QAAS,IACT,SAAU,IACV,UAAW,IACX,WAAY,IACZ,UAAW,IACX,WAAY,IACZ,SAAU,IACV,UAAW,IACX,QAAS,IACT,SAAU,IACV,OAAQ,IACR,QAAS,IACT,UAAW,IACX,WAAY,IACZ,UAAW,IACX,WAAY,IACZ,UAAW,IACX,WAAY,IACZ,SAAU,IACV,UAAW,IACX,UAAW,IACX,WAAY,IACZ,QAAS,IACT,SAAU,IACV,SAAU,IACV,UAAW,IACX,UAAW,IACX,WAAY,IACZ,UAAW,IACX,WAAY,IACZ,UAAW,IACX,WAAY,IACZ,SAAU,IACV,UAAW,IACX,QAAS,IACT,SAAU,IACV,UAAW,IACX,WAAY,IACZ,SAAU,IACV,UAAW,IACX,SAAU,IACV,UAAW,IACX,UAAW,IACX,WAAY,IACZ,UAAW,IACX,WAAY,IACZ,SAAU,IACV,UAAW,IACX,UAAW,IACX,WAAY,IACZ,QAAS,IACT,SAAU,IACV,SAAU,IACV,UAAW,IACX,SAAU,IACV,UAAW,IACX,UAAW,IACX,WAAY,IACZ,UAAW,IACX,WAAY,IACZ,UAAW,IACX,WAAY,IACZ,SAAU,IACV,UAAW,IACX,QAAS,IACT,SAAU,IACV,UAAW,IACX,WAAY,IACZ,UAAW,IACX,WAAY,IACZ,SAAU,IACV,UAAW,IACX,QAAS,IACT,SAAU,IACV,OAAQ,IACR,QAAS,IACT,UAAW,IACX,WAAY,IACZ,UAAW,IACX,WAAY,IACZ,UAAW,IACX,WAAY,IACZ,SAAU,IACV,UAAW,IACX,UAAW,IACX,WAAY,IACZ,QAAS,IACT,SAAU,IACV,UAAW,IACX,WAAY,IACZ,UAAW,IACX,WAAY,IACZ,UAAW,IACX,WAAY,IACZ,UAAW,IACX,WAAY,IACZ,SAAU,IACV,UAAW,IACX,QAAS,IACT,SAAU,IACV,UAAW,IACX,WAAY,IACZ,SAAU,IACV,UAAW,IACX,QAAS,IACT,SAAU,IACV,QAAS,IACT,SAAU,IACV,OAAQ,IACR,QAAS,IACT,MAAO,IACP,OAAQ,IACR,MAAO,IACP,OAAQ,IACR,UAAW,IACX,UAAW,IACX,WAAY,IACZ,WAAY,IACZ,SAAU,IACV,SAAU,IACV,UAAW,IACX,SAAU,IACV,SAAU,IACV,WAAY,IACZ,SAAU,IACV,QAAS,IACT,QAAS,IACT,QAAS,IACT,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,SAAU,IACV,SAAU,IACV,UAAW,IACX,SAAU,IACV,UAAW,IACX,UAAW,IACX,YAAa,IACb,SAAU,IACV,QAAS,IACT,UAAW,IACX,SAAU,IACV,UAAW,IACX,WAAY,IACZ,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,YAAa,IACb,OAAQ,IACR,QAAS,IACT,UAAW,IACX,QAAS,IACT,YAAa,IACb,QAAS,IACT,QAAS,IACT,QAAS,IACT,UAAW,IACX,UAAW,IACX,SAAU,IACV,UAAW,IACX,UAAW,IACX,YAAa,IACb,SAAU,IACV,QAAS,IACT,UAAW,IACX,SAAU,IACV,UAAW,IACX,WAAY,IACZ,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,YAAa,IACb,OAAQ,IACR,QAAS,IACT,WAAY,IACZ,UAAW,IACX,QAAS,IACT,YAAa,IACb,QAAS,IACT,QAAS,IACT,QAAS,IACT,UAAW,IACX,aAAc,IACd,UAAW,IACX,QAAS,IACT,SAAU,IACV,WAAY,IACZ,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,WAAY,IACZ,UAAW,IACX,SAAU,IACV,UAAW,IACX,YAAa,IACb,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,UAAW,IACX,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,WAAY,IACZ,SAAU,IACV,UAAW,IACX,UAAW,IACX,UAAW,IACX,SAAU,IACV,UAAW,IACX,OAAQ,IACR,SAAU,IACV,QAAS,IACT,UAAW,IACX,WAAY,IACZ,UAAW,IACX,SAAU,IACV,UAAW,IACX,QAAS,IACT,QAAS,IACT,OAAQ,IACR,QAAS,IACT,QAAS,IACT,QAAS,IACT,WAAY,IACZ,QAAS,IACT,SAAU,IACV,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,OAAQ,IACR,QAAS,IACT,QAAS,IACT,SAAU,IACV,SAAU,IACV,SAAU,IACV,UAAW,IACX,WAAY,IACZ,SAAU,IACV,SAAU,IACV,UAAW,IACX,UAAW,IACX,WAAY,IACZ,WAAY,IACZ,SAAU,IACV,SAAU,IACV,QAAS,IACT,WAAY,IACZ,UAAW,IACX,WAAY,IACZ,UAAW,KAEbpC,WAAY,CACV,IAAK,SACL,IAAK,SACL,IAAK,UACL,IAAK,SACL,IAAK,UACL,IAAK,WACL,IAAK,QACL,IAAK,WACL,IAAK,SACL,IAAK,QACL,IAAK,SACL,IAAK,SACL,IAAK,UACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,SACL,IAAK,QACL,IAAK,WACL,IAAK,SACL,IAAK,SACL,IAAK,UACL,IAAK,UACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,SACL,IAAK,SACL,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,IAAK,SACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,SACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,SACL,IAAK,QACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,IAAK,SACL,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,IAAK,SACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,SACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,SACL,IAAK,QACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,IAAK,SACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,SACL,IAAK,SACL,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,SACL,IAAK,SACL,IAAK,UACL,IAAK,SACL,IAAK,SACL,IAAK,WACL,IAAK,SACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,SACL,IAAK,SACL,IAAK,UACL,IAAK,SACL,IAAK,UACL,IAAK,UACL,IAAK,YACL,IAAK,SACL,IAAK,QACL,IAAK,UACL,IAAK,SACL,IAAK,UACL,IAAK,WACL,IAAK,OACL,IAAK,OACL,IAAK,OACL,IAAK,YACL,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,QACL,IAAK,YACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,UACL,IAAK,UACL,IAAK,SACL,IAAK,UACL,IAAK,UACL,IAAK,YACL,IAAK,SACL,IAAK,QACL,IAAK,UACL,IAAK,SACL,IAAK,UACL,IAAK,WACL,IAAK,OACL,IAAK,OACL,IAAK,OACL,IAAK,YACL,IAAK,OACL,IAAK,QACL,IAAK,WACL,IAAK,UACL,IAAK,QACL,IAAK,YACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,UACL,IAAK,aACL,IAAK,UACL,IAAK,QACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,UACL,IAAK,SACL,IAAK,UACL,IAAK,YACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,UACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,WACL,IAAK,SACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACL,IAAK,UACL,IAAK,OACL,IAAK,SACL,IAAK,QACL,IAAK,UACL,IAAK,WACL,IAAK,UACL,IAAK,SACL,IAAK,UACL,IAAK,QACL,IAAK,QACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,WACL,IAAK,QACL,IAAK,SACL,IAAK,UACL,IAAK,OACL,IAAK,UACL,IAAK,OACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,UACL,IAAK,WACL,IAAK,SACL,IAAK,SACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,SACL,IAAK,SACL,IAAK,QACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,IAAK,YAGThC,MAAO,CACLoE,SAAU,CACR,SAAU,IACV,UAAW,IACX,OAAQ,IACR,QAAS,IACT,UAAW,IACX,WAAY,IACZ,WAAY,IACZ,SAAU,IACV,UAAW,IACX,QAAS,IACT,QAAS,KACT,U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AK,OACL,KAAM,SACN,IAAK,QACL,IAAK,WACL,IAAK,UACL,IAAK,SACL,IAAK,SACL,IAAK,QACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACL,IAAK,UACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,cACL,IAAK,iBACL,IAAK,UACL,IAAK,cACL,IAAK,wBACL,IAAK,sBACL,IAAK,UACL,IAAK,sBACL,IAAK,uBACL,IAAK,qBACL,IAAK,uBACL,IAAK,QACL,IAAK,eACL,KAAM,SACN,IAAK,WACL,IAAK,QACL,IAAK,QACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,QACL,IAAK,SACL,KAAM,QACN,IAAK,WACL,IAAK,UACL,IAAK,UACL,IAAK,qBACL,IAAK,yBACL,IAAK,UACL,KAAM,SACN,IAAK,YACL,IAAK,UACL,IAAK,SACL,IAAK,UACL,IAAK,gBACL,IAAK,SACL,IAAK,QACL,IAAK,SACL,IAAK,UACL,IAAK,iBACL,IAAK,QACL,KAAM,QACN,IAAK,sBACL,IAAK,SACL,KAAM,SACN,IAAK,WACL,IAAK,SACL,IAAK,SACL,IAAK,OACL,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,QACL,IAAK,SACL,KAAM,QACN,IAAK,QACL,KAAM,SACN,IAAK,QACL,IAAK,cACL,IAAK,SACL,IAAK,mBACL,IAAK,YACL,IAAK,QACL,IAAK,WACL,KAAM,SACN,IAAK,OACL,IAAK,WACL,IAAK,UACL,IAAK,QACL,IAAK,UACL,IAAK,kBACL,IAAK,WACL,IAAK,gBACL,IAAK,SACL,IAAK,WACL,IAAK,WACL,IAAK,SACL,IAAK,UACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,QACL,IAAK,SACL,IAAK,aACL,IAAK,WACL,IAAK,UACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,SACL,IAAK,OACL,IAAK,OACL,IAAK,UACL,KAAM,SACN,IAAK,SACL,IAAK,aACL,IAAK,WACL,IAAK,UACL,IAAK,SACL,IAAK,UACL,IAAK,QACL,KAAM,QACN,KAAM,SACN,KAAM,SACN,IAAK,WACL,IAAK,UACL,IAAK,SACL,IAAK,SACL,IAAK,UACL,IAAK,WACL,IAAK,QACL,KAAM,QACN,KAAM,SACN,KAAM,SACN,IAAK,SACL,IAAK,OACL,IAAK,WACL,IAAK,WACL,IAAK,SACL,IAAK,WACL,IAAK,qBACL,IAAK,WACL,IAAK,WACL,IAAK,QACL,IAAK,WACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,sBACL,IAAK,oBACL,IAAK,sBACL,IAAK,WACL,IAAK,mBACL,IAAK,oBACL,IAAK,UACL,IAAK,eACL,IAAK,kBACL,IAAK,UACL,IAAK,oBACL,IAAK,mBACL,IAAK,qBACL,IAAK,oBACL,IAAK,kBACL,IAAK,oBACL,IAAK,UACL,IAAK,kBACL,IAAK,cACL,IAAK,SACL,IAAK,OACL,IAAK,aACL,IAAK,QACL,IAAK,SACL,KAAM,QACN,IAAK,OACL,IAAK,UACL,IAAK,WACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,KAAM,SACN,IAAK,YACL,IAAK,YACL,IAAK,QACL,IAAK,WACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,gBACL,IAAK,WACL,KAAM,QACN,IAAK,OACL,KAAM,SACN,IAAK,OACL,IAAK,SACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,QACL,IAAK,mBACL,KAAM,YACN,KAAM,QACN,IAAK,YACL,IAAK,SACL,IAAK,aACL,IAAK,QACL,IAAK,WACL,IAAK,cACL,IAAK,UACL,IAAK,YACL,IAAK,OACL,KAAM,UACN,IAAK,YACL,IAAK,SACL,IAAK,SACL,KAAM,UACN,KAAM,SACN,IAAK,SACL,KAAM,SACN,IAAK,UACL,KAAM,UACN,KAAM,WACN,IAAK,kBACL,KAAM,uBACN,IAAK,oBACL,IAAK,QACL,IAAK,SACL,IAAK,SACL,KAAM,SACN,KAAM,SACN,IAAK,UACL,KAAM,4BACN,KAAM,sBACN,IAAK,UACL,KAAM,YACN,IAAK,WACL,IAAK,YACL,IAAK,mBACL,KAAM,wBACN,IAAK,qBACL,KAAM,oBACN,IAAK,YACL,KAAM,sBACN,IAAK,YACL,KAAM,UACN,IAAK,cACL,IAAK,UACL,KAAM,YACN,IAAK,WACL,KAAM,qBACN,KAAM,UACN,IAAK,cACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,YACL,IAAK,UACL,KAAM,SACN,IAAK,WACL,IAAK,OACL,IAAK,UACL,IAAK,WACL,IAAK,UACL,IAAK,QACL,IAAK,WACL,KAAM,QACN,IAAK,WACL,IAAK,UACL,IAAK,QACL,IAAK,YACL,KAAM,SACN,IAAK,UACL,IAAK,UACL,IAAK,OACL,KAAM,SACN,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,SACL,IAAK,UACL,IAAK,cACL,IAAK,SACL,IAAK,oBACL,IAAK,SACL,IAAK,QACL,KAAM,QACN,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,WACL,IAAK,OACL,IAAK,SACL,IAAK,WACL,IAAK,gBACL,IAAK,UACL,IAAK,UACL,IAAK,SACL,IAAK,UACL,KAAM,SACN,IAAK,QACL,IAAK,SACL,KAAM,QACN,IAAK,cACL,KAAM,SACN,IAAK,aACL,IAAK,QACL,IAAK,WACL,IAAK,SACL,IAAK,sBACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,QACL,IAAK,aACL,IAAK,QACL,IAAK,UACL,IAAK,UACL,IAAK,QACL,IAAK,WACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,uBACL,IAAK,qBACL,IAAK,uBACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,IAAK,mBACL,IAAK,UACL,IAAK,qBACL,IAAK,oBACL,IAAK,sBACL,IAAK,qBACL,IAAK,mBACL,IAAK,qBACL,IAAK,mBACL,IAAK,mBACL,IAAK,UACL,IAAK,iBACL,IAAK,UACL,IAAK,YACL,IAAK,QACL,IAAK,gBACL,IAAK,WACL,IAAK,SACL,IAAK,WACL,IAAK,WACL,IAAK,OACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,QACL,KAAM,QACN,IAAK,YACL,IAAK,UACL,IAAK,WACL,KAAM,SACN,IAAK,UACL,IAAK,WACL,IAAK,UACL,IAAK,aACL,IAAK,eACL,IAAK,aACL,IAAK,eACL,IAAK,UACL,KAAM,SACN,IAAK,WACL,IAAK,WACL,IAAK,aACL,IAAK,SACL,IAAK,WACL,IAAK,gBACL,IAAK,YACL,IAAK,QACL,IAAK,WACL,IAAK,WACL,IAAK,aACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACL,KAAM,QACN,IAAK,QACL,IAAK,WACL,IAAK,WACL,IAAK,QACL,KAAM,QACN,IAAK,cACL,IAAK,UACL,KAAM,eACN,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,SACL,IAAK,UACL,KAAM,SACN,IAAK,SACL,KAAM,SACN,IAAK,WACL,IAAK,WACL,IAAK,SACL,IAAK,aACL,IAAK,UACL,IAAK,WACL,IAAK,UACL,IAAK,QACL,IAAK,WACL,KAAM,QACN,IAAK,WACL,IAAK,UACLuC,EAAG,WACH,IAAK,eACL,IAAK,SACL,IAAK,qBACL,IAAK,SACL,IAAK,UACL,IAAK,UACL,KAAM,SACN,IAAK,eACL,IAAK,UACL,IAAK,SACL,IAAK,UACL,IAAK,SACL,IAAK,aACL,IAAK,YACL,IAAK,YACL,IAAK,UACL,IAAK,YACL,IAAK,UACL,KAAM,SACN,IAAK,WACL,IAAK,SACL,IAAK,UACL,IAAK,SACL,IAAK,QACL,IAAK,UACL,IAAK,WACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,sBACL,IAAK,WACL,IAAK,WACL,KAAM,QACN,KAAM,SACN,KAAM,SACN,IAAK,WACL,IAAK,UACL,IAAK,WACL,KAAM,QACN,KAAM,SACN,KAAM,SACN,KAAM,QACN,IAAK,OACL,KAAM,SACN,KAAM,SACN,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,QACL,KAAM,QACN,KAAM,SACN,KAAM,SACN,IAAK,SACL,IAAK,SACL,IAAK,WACL,IAAK,WACL,IAAK,QACL,IAAK,SACL,IAAK,SACL,IAAK,WACL,IAAK,aACL,KAAM,SACN,IAAK,WACL,IAAK,WACL,IAAK,WACL,KAAM,QACN,IAAK,QACL,IAAK,UACL,IAAK,QACL,IAAK,UACL,KAAM,QACN,IAAK,WACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,SACL,IAAK,aACL,IAAK,SACL,IAAK,UACL,IAAK,SACL,IAAK,kBACL,IAAK,aACL,IAAK,aACL,IAAK,aACL,IAAK,aACL,IAAK,aACL,IAAK,aACL,IAAK,aACL,IAAK,aACL,IAAK,UACL,IAAK,YACL,IAAK,aACL,IAAK,WACL,IAAK,YACL,IAAK,UACL,KAAM,SACN,IAAK,QACL,IAAK,WACL,IAAK,aACL,IAAK,SACL,IAAK,SACL,IAAK,UACL,KAAM,SACN,IAAK,WACL,IAAK,WACL,IAAK,SACL,IAAK,UACL,IAAK,SACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,SACL,IAAK,UACL,IAAK,WACL,IAAK,aACL,IAAK,aACL,IAAK,QACL,IAAK,WACL,IAAK,YACL,IAAK,SACL,IAAK,SACL,IAAK,UACL,KAAM,QACN,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,UACL,IAAK,SACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,KAAM,QACN,KAAM,YACN,IAAK,SACL,KAAM,SACN,IAAK,WACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,KAAM,SACN,IAAK,UACL,KAAM,SACN,IAAK,UACL,IAAK,aACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,IAAK,QACL,IAAK,WACL,IAAK,aACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,KAAM,SACN,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,UACL,IAAK,YACL,IAAK,SACL,IAAK,YACL,IAAK,SACL,KAAM,QACN,IAAK,SACL,IAAK,cACL,IAAK,QACL,IAAK,QACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,UACL,IAAK,UACL,IAAK,OACL,IAAK,SACL,IAAK,SACL,IAAK,UACL,IAAK,aACL,IAAK,WACL,IAAK,YACL,IAAK,aACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,eACL,IAAK,YACL,KAAM,SACN,IAAK,WACL,IAAK,UACL,IAAK,UACL,KAAM,SACN,IAAK,SACL,IAAK,UACL,IAAK,SACL,IAAK,UACL,IAAK,UACL,IAAK,YACL,IAAK,YACL,IAAK,gBACL,IAAK,gBACL,IAAK,mBACL,IAAK,YACL,IAAK,QACL,IAAK,aACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,KAAM,SACN,IAAK,oBACL,IAAK,YACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,IAAK,SACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,IAAK,QACL,IAAK,mBACL,IAAK,UACL,IAAK,QACL,IAAK,UACL,IAAK,YACL,IAAK,WACL,KAAM,QACN,IAAK,UACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,SACL,IAAK,aACL,IAAK,WACLC,EAAG,WACH,KAAM,SACN,IAAK,SACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,aACL,IAAK,WACL,KAAM,SACN,IAAK,SACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,iBACL,IAAK,YACL,IAAK,SACL,IAAK,aACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,YACL,IAAK,QACL,IAAK,SACL,IAAK,kBACL,KAAM,QACN,IAAK,OACL,IAAK,WACL,IAAK,eACL,IAAK,WACL,IAAK,OACL,IAAK,aACL,IAAK,QACL,IAAK,gBACL,IAAK,WACL,IAAK,UACL,IAAK,eACL,IAAK,WACL,IAAK,WACL,IAAK,SACL,IAAK,QACL,IAAK,SACL,IAAK,UACL,KAAM,SACN,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,YACL,IAAK,eACL,IAAK,WACL,IAAK,YACL,IAAK,YACL,IAAK,aACL,IAAK,iBACL,IAAK,UACL,IAAK,SACL,IAAK,QACL,IAAK,QACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,QACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,KAAM,QACN,IAAK,UACLC,GAAI,UACJ,IAAK,SACL,IAAK,UACL,IAAK,UACL,IAAK,SACL,KAAM,SACN,IAAK,cACL,IAAK,UACL,IAAK,aACL,IAAK,SACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,KAAM,SACN,IAAK,eACL,IAAK,WACL,IAAK,UACL,IAAK,cACL,IAAK,WACL,IAAK,UACL,IAAK,QACL,IAAK,SACL,IAAK,UACL,IAAK,WACL,IAAK,YACL,IAAK,aACL,KAAM,SACN,IAAK,WACL,KAAM,QACN,IAAK,UACL,IAAK,SACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,UACL,IAAK,aACL,IAAK,SACL,IAAK,UACL,KAAM,SACN,IAAK,SACL,IAAK,UACL,IAAK,UACL,IAAK,SACL,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,YACL,IAAK,WACL,KAAM,SACN,IAAK,WACL,IAAK,YACL,IAAK,wBACL,IAAK,WACL,IAAK,UACL,IAAK,cACL,IAAK,SACL,IAAK,WACL,KAAM,QACN,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,KAAM,SACN,IAAK,WACL,KAAM,SACN,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,QACL,IAAK,SACL,IAAK,UACL,KAAM,QACN,IAAK,WACL,IAAK,SACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,SACL,IAAK,UACL,IAAK,WACL,IAAK,UACL,IAAK,aACL,IAAK,aACL,IAAK,aACL,IAAK,UACL,IAAK,SACL,IAAK,UACL,KAAM,SACN,IAAK,SACL,IAAK,WACL,KAAM,SACN,IAAK,UACL,IAAK,YACL,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,SACL,IAAK,UACL,IAAK,QACL,KAAM,QACN,IAAK,UACL,KAAM,SACN,KAAM,SACN,IAAK,WACL,IAAK,UACL,IAAK,UACL,IAAK,aACL,IAAK,WACL,IAAK,QACL,KAAM,QACN,IAAK,WACL,IAAK,SACL,IAAK,SACL,KAAM,SACN,KAAM,SACN,IAAK,WACL,IAAK,UACL,IAAK,eACL,IAAK,SACL,IAAK,WACL,IAAK,aACL,IAAK,WACL,IAAK,UACL,IAAK,eACL,IAAK,UACL,IAAK,YACL,IAAK,WACL,IAAK,kBACL,IAAK,WACL,IAAK,YACL,IAAK,kBACL,IAAK,QACL,IAAK,WACL,IAAK,SACL,KAAM,UACN,IAAK,UACL,IAAK,UACL,IAAK,SACL,IAAK,SACL,IAAK,UACL,IAAK,YACL,IAAK,YACL,IAAK,WACL,IAAK,WACL,IAAK,QACL,IAAK,SACL,IAAK,YACL,IAAK,aACL,IAAK,SACL,IAAK,QACL,IAAK,UACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,IAAK,YACL,IAAK,aACL,KAAM,SACN,IAAK,WACL,IAAK,UACL,IAAK,WACL,KAAM,QACN,IAAK,QACL,IAAK,WACL,IAAK,UACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,IAAK,eACL,IAAK,UACL,IAAK,aACL,IAAK,SACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,KAAM,SACN,IAAK,WACL,IAAK,YACL,IAAK,WACL,IAAK,YACL,IAAK,SACL,IAAK,WACL,IAAK,WACL,IAAK,QACL,IAAK,UACL,IAAK,WACL,KAAM,SACN,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,SACL,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,YACL,IAAK,WACL,IAAK,iBACL,IAAK,aACL,IAAK,YACL,KAAM,SACN,IAAK,UACL,IAAK,UACL,IAAK,SACL,IAAK,YACL,IAAK,WACL,IAAK,WACL,IAAK,QACL,IAAK,UACL,KAAM,QACN,IAAK,QACL,IAAK,UACL,IAAK,WACL,IAAK,UACL,IAAK,YACL,IAAK,SACL,IAAK,WACL,KAAM,SACN,KAAM,SACN,IAAK,OACL,IAAK,UACL,KAAM,QACN,KAAM,QACN,IAAK,UACL,IAAK,UACL,KAAM,QACN,KAAM,QACN,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,KAAM,SACN,KAAM,SACN,KAAM,UACN,IAAK,UACL,IAAK,YACL,IAAK,SACL,IAAK,WACL,IAAK,WACL,KAAM,aACN,IAAK,SACL,IAAK,QACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,KAAM,UACN,IAAK,SACL,KAAM,QACN,IAAK,oBACL,IAAK,UACL,IAAK,QACL,IAAK,SACL,IAAK,SACL,KAAM,UACN,IAAK,eACL,IAAK,SACL,KAAM,SACN,IAAK,QACL,KAAM,WACN,KAAM,aACN,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,KAAM,WACN,KAAM,UACN,IAAK,YACL,IAAK,gBACL,KAAM,WACN,KAAM,WACN,KAAM,SACN,IAAK,SACL,KAAM,eACN,IAAK,SACL,KAAM,eACN,IAAK,WACL,IAAK,OACL,IAAK,QACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,IAAK,WACL,KAAM,SACN,IAAK,WACL,KAAM,SACN,KAAM,SACN,IAAK,YACL,IAAK,WACL,KAAM,SACN,KAAM,SACN,KAAM,YACN,IAAK,WACL,KAAM,YACN,KAAM,UACN,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,QACL,IAAK,WACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,UACL,KAAM,QACN,IAAK,SACL,IAAK,WACL,IAAK,QACL,IAAK,UACL,IAAK,UACL,IAAK,YACL,IAAK,QACL,IAAK,UACL,IAAK,UACL,IAAK,YACL,IAAK,SACL,KAAM,SACN,IAAK,SACL,IAAK,UACL,IAAK,QACL,IAAK,QACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,WACL,IAAK,SACL,IAAK,YACL,IAAK,QACL,IAAK,WACL,IAAK,SACL,IAAK,WACL,IAAK,aACL,IAAK,SACL,IAAK,UACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,QACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,YACL,KAAM,QACN,IAAK,QACL,IAAK,WACL,IAAK,UACL,IAAK,OACL,IAAK,UACL,IAAK,YACL,IAAK,SACL,IAAK,aACL,IAAK,YACL,IAAK,WACL,IAAK,UACL,IAAK,YACL,IAAK,YACL,IAAK,aACL,KAAM,SACN,IAAK,UACL,IAAK,QACL,IAAK,eACL,IAAK,UACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,aACL,IAAK,aACL,IAAK,aACL,IAAK,WACL,KAAM,SACN,IAAK,QACL,IAAK,WACL,KAAM,QACN,KAAM,SACN,IAAK,WACL,KAAM,SACN,IAAK,YACL,IAAK,UACL,IAAK,WACL,IAAK,SACL,KAAM,SACN,IAAK,WACL,IAAK,aACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,YACL,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,YACL,IAAK,mBACL,IAAK,oBACL,IAAK,WACL,IAAK,UACL,IAAK,UACL,IAAK,SACL,IAAK,SACL,IAAK,UACL,IAAK,YACL,IAAK,YACL,IAAK,WACL,IAAK,WACL,IAAK,QACL,IAAK,SACL,IAAK,YACL,IAAK,SACL,IAAK,SACL,IAAK,WACL,KAAM,QACN,IAAK,WACL,IAAK,QACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,IAAK,SACL,IAAK,QACL,IAAK,eACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,KAAM,SACN,IAAK,WACL,IAAK,YACL,IAAK,SACL,IAAK,WACL,IAAK,aACL,IAAK,WACL,KAAM,SACN,IAAK,WACL,IAAK,kBACL,IAAK,aACL,IAAK,YACL,IAAK,OACL,IAAK,WACL,IAAK,QACL,IAAK,eACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,aACL,IAAK,gBACL,IAAK,aACL,IAAK,aACL,IAAK,QACL,IAAK,SACL,IAAK,UACL,IAAK,UACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,KAAM,QACN,IAAK,UACL,IAAK,WACL,IAAK,SACL,IAAK,QACL,IAAK,UACL,IAAK,aACL,IAAK,WACL,IAAK,SACL,IAAK,UACL,IAAK,SACL,IAAK,UACL,IAAK,UACL,IAAK,YACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,WACL,IAAK,QACL,IAAK,SACL,KAAM,UACN,IAAK,WACL,IAAK,QACL,IAAK,SACL,IAAK,WACL,KAAM,SACN,IAAK,cACL,KAAM,WACN,KAAM,WACN,KAAM,SACN,IAAK,SACL,IAAK,WACL,IAAK,cACL,IAAK,WACL,IAAK,YACL,IAAK,YACL,IAAK,eACL,IAAK,cACL,IAAK,YACL,IAAK,YACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,cACL,IAAK,WACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,eACL,IAAK,cACL,IAAK,YACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,IAAK,QACL,IAAK,WACL,IAAK,WACL,IAAK,QACL,IAAK,WACL,KAAM,QACN,IAAK,UACL,IAAK,aACL,IAAK,UACL,IAAK,UACL,IAAK,aACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,KAAM,SACN,IAAK,YACL,IAAK,WACL,IAAK,SACL,IAAK,SACL,IAAK,WACL,IAAK,aACL,IAAK,YACL,IAAK,UACL,IAAK,YACL,IAAK,aACL,KAAM,SACN,IAAK,SACL,IAAK,UACL,IAAK,WACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,IAAK,UACL,IAAK,QACL,IAAK,WACL,IAAK,WACL,KAAM,QACN,IAAK,WACL,IAAK,UACL,IAAK,aACL,IAAK,WACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,KAAM,SACN,IAAK,YACL,IAAK,UACL,IAAK,aACL,IAAK,WACL,IAAK,UACL,IAAK,UACL,KAAM,SACN,IAAK,UACL,IAAK,WACL,IAAK,SACL,IAAK,YACL,IAAK,SACL,IAAK,UACL,IAAK,WACL,KAAM,WACN,KAAM,WACN,KAAM,WACN,KAAM,WACN,IAAK,QACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,KAAM,QACN,KAAM,SACN,KAAM,SACN,IAAK,YACL,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,OACL,KAAM,QACN,KAAM,SACN,KAAM,SACN,KAAM,QACN,IAAK,OACL,IAAK,SACL,KAAM,SACN,KAAM,SACN,IAAK,WACL,IAAK,SACL,IAAK,UACL,IAAK,QACL,IAAK,QACL,KAAM,QACN,IAAK,SACL,KAAM,SACN,KAAM,SACN,IAAK,SACL,IAAK,SACL,IAAK,WACL,IAAK,WACL,IAAK,QACL,IAAK,SACL,IAAK,SACL,KAAM,QACN,IAAK,SACL,IAAK,YACL,KAAM,SACN,KAAM,SACN,IAAK,QACL,IAAK,8CC9xIX9J,OAAOD,eAAeQ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","sources":["webpack://keolis-web-passenger/./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack://keolis-web-passenger/./node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","webpack://keolis-web-passenger/./node_modules/hoist-non-react-statics/node_modules/react-is/index.js","webpack://keolis-web-passenger/./node_modules/html-entities/lib/index.js","webpack://keolis-web-passenger/./node_modules/html-entities/lib/named-references.js","webpack://keolis-web-passenger/./node_modules/html-entities/lib/numeric-unicode-map.js","webpack://keolis-web-passenger/./node_modules/html-entities/lib/surrogate-pairs.js","webpack://keolis-web-passenger/./node_modules/vhtml/dist/vhtml.js","webpack://keolis-web-passenger/./src/components/all-news/all-news.module.scss","webpack://keolis-web-passenger/./src/components/all-news/all-news.tsx","webpack://keolis-web-passenger/./src/components/layout/form/input.tsx","webpack://keolis-web-passenger/./src/components/rich-datocms-content/rich-datocms-content.module.scss","webpack://keolis-web-passenger/./src/components/schedules-search/results-transport-method/schedules-search-results-transport-method.module.scss","webpack://keolis-web-passenger/./src/components/schedules-search/results-line/schedules-search-results-line.module.scss","webpack://keolis-web-passenger/./src/components/schedules-search/results-line/schedules-search-results-line.tsx","webpack://keolis-web-passenger/./src/components/schedules-search/results-transport-method/schedules-search-results-transport-method.tsx","webpack://keolis-web-passenger/./src/components/schedules-search/results/schedules-search-results.tsx","webpack://keolis-web-passenger/./src/components/schedules-search/results/schedules-search-results.module.scss","webpack://keolis-web-passenger/./src/components/schedules-search/form/schedules-search-form.module.scss","webpack://keolis-web-passenger/./src/components/schedules-search/form/schedules-search-form.tsx","webpack://keolis-web-passenger/./src/components/schedules-search/schedules-search.tsx","webpack://keolis-web-passenger/./src/components/schedules-search/schedules-search.module.scss","webpack://keolis-web-passenger/./src/components/transport-title-search/capsule/capsule.module.scss","webpack://keolis-web-passenger/./src/components/transport-title-search/capsule/capsule.tsx","webpack://keolis-web-passenger/./src/components/transport-title-search/transport-title/transport-title.module.scss","webpack://keolis-web-passenger/./src/components/transport-title-search/rectangular-button/rectangular-button.tsx","webpack://keolis-web-passenger/./src/components/transport-title-search/rectangular-button/rectangular-button.module.scss","webpack://keolis-web-passenger/./src/components/transport-title-search/transport-title/transport-title.tsx","webpack://keolis-web-passenger/./src/components/transport-title-search/transport-title-search.tsx","webpack://keolis-web-passenger/./src/components/transport-title-search/transport-title-search.module.scss","webpack://keolis-web-passenger/./static/images/search.png","webpack://keolis-web-passenger/./src/components/ticket-office-search/result/ticket-office-search-result.module.scss","webpack://keolis-web-passenger/./src/components/ticket-office-search/result/ticket-office-search-result.tsx","webpack://keolis-web-passenger/./static/images/ticket.svg","webpack://keolis-web-passenger/./src/components/ticket-office-search/results/ticket-office-search-results.tsx","webpack://keolis-web-passenger/./src/components/ticket-office-search/results/ticket-office-search-results.module.scss","webpack://keolis-web-passenger/./src/components/ticket-office-search/form/ticket-office-search-form.module.scss","webpack://keolis-web-passenger/./src/components/ticket-office-search/form/ticket-office-search-form.tsx","webpack://keolis-web-passenger/./src/components/ticket-office-search/map/ticket-office-search-map.module.scss","webpack://keolis-web-passenger/./src/components/ticket-office-search/map/ticket-office-search-map.tsx","webpack://keolis-web-passenger/./src/components/ticket-office-search/ticket-office-search.tsx","webpack://keolis-web-passenger/./node_modules/datocms-structured-text-to-html-string/node_modules/datocms-structured-text-utils/dist/esm/definitions.js","webpack://keolis-web-passenger/./src/components/ticket-office-search/ticket-office-search.module.scss","webpack://keolis-web-passenger/./src/components/itinerary-module/itinerary-module.tsx","webpack://keolis-web-passenger/./src/components/itinerary-module/itinerary-module.module.scss","webpack://keolis-web-passenger/./src/components/next-departures-module/next-departures-module.tsx","webpack://keolis-web-passenger/./src/components/next-departures-module/next-departures-module.module.scss","webpack://keolis-web-passenger/./src/components/info-traffic/info-traffic.module.scss","webpack://keolis-web-passenger/./src/components/info-traffic/info-traffic.tsx","webpack://keolis-web-passenger/./src/components/custom-form/custom-form.module.scss","webpack://keolis-web-passenger/./src/components/layout/form/textarea.tsx","webpack://keolis-web-passenger/./src/components/layout/form/radio-button.tsx","webpack://keolis-web-passenger/./src/components/layout/form/checkbox.tsx","webpack://keolis-web-passenger/./src/components/layout/form/select.tsx","webpack://keolis-web-passenger/./src/components/layout/form/file-input.tsx","webpack://keolis-web-passenger/./src/components/layout/form/form-error.tsx","webpack://keolis-web-passenger/./src/api/notifications.ts","webpack://keolis-web-passenger/./node_modules/datocms-structured-text-to-html-string/node_modules/datocms-structured-text-utils/dist/esm/guards.js","webpack://keolis-web-passenger/./node_modules/array-flatten/dist.es2015/index.js","webpack://keolis-web-passenger/./node_modules/datocms-structured-text-to-html-string/node_modules/datocms-structured-text-utils/dist/esm/render.js","webpack://keolis-web-passenger/./node_modules/datocms-structured-text-to-html-string/node_modules/datocms-structured-text-generic-html-renderer/dist/esm/index.js","webpack://keolis-web-passenger/./node_modules/datocms-structured-text-to-html-string/dist/esm/index.js","webpack://keolis-web-passenger/./src/components/custom-form/form-to-text.ts","webpack://keolis-web-passenger/./src/components/custom-form/field-name-checker.ts","webpack://keolis-web-passenger/./node_modules/react-google-recaptcha/lib/esm/recaptcha.js","webpack://keolis-web-passenger/./node_modules/react-async-script/lib/esm/async-script-loader.js","webpack://keolis-web-passenger/./node_modules/react-google-recaptcha/lib/esm/recaptcha-wrapper.js","webpack://keolis-web-passenger/./node_modules/react-google-recaptcha/lib/esm/index.js","webpack://keolis-web-passenger/./src/components/custom-form/custom-form.tsx","webpack://keolis-web-passenger/./src/components/website-map/website-map.module.scss","webpack://keolis-web-passenger/./src/components/website-map/website-map.tsx","webpack://keolis-web-passenger/./src/components/lost-objects/lost-objects-form.module.scss","webpack://keolis-web-passenger/./node_modules/date-fns/getYear.mjs","webpack://keolis-web-passenger/./node_modules/date-fns/getMonth.mjs","webpack://keolis-web-passenger/./src/components/layout/form/date-input.tsx","webpack://keolis-web-passenger/./src/components/layout/form/time-input.tsx","webpack://keolis-web-passenger/./src/components/lost-objects/lost-objects-form-to-text.ts","webpack://keolis-web-passenger/./src/components/lost-objects/lost-objects-form.tsx","webpack://keolis-web-passenger/./src/components/sms-alert/sms-alert-form.module.scss","webpack://keolis-web-passenger/./src/api/mobireport-alert-sms.ts","webpack://keolis-web-passenger/./src/components/sms-alert/subscribe-sms-alert-form.tsx","webpack://keolis-web-passenger/./src/components/sms-alert/sms-alert-forms.tsx","webpack://keolis-web-passenger/./src/components/info-traffic-le-pilote/info-traffic-le-pilote.tsx","webpack://keolis-web-passenger/./src/components/info-traffic-le-pilote/info-traffic-le-pilote.module.scss","webpack://keolis-web-passenger/./src/components/title-page/title-page.module.scss","webpack://keolis-web-passenger/./src/components/title-page/title-page.tsx","webpack://keolis-web-passenger/./src/components/le-pilote-next-trips-search/le-pilote-next-trips-search.module.scss","webpack://keolis-web-passenger/./src/components/le-pilote-next-trips-search/le-pilote-next-trips-search.tsx","webpack://keolis-web-passenger/./src/components/le-pilote-itinerary/le-pilote-itinerary.module.scss","webpack://keolis-web-passenger/./src/components/le-pilote-itinerary/le-pilote-itinerary-form.tsx","webpack://keolis-web-passenger/./src/components/le-pilote-itinerary/le-pilote-itinerary.tsx","webpack://keolis-web-passenger/./src/components/le-pilote-itinerary/draw-itinerary.tsx","webpack://keolis-web-passenger/./src/components/around-me-actigraph/around-me-actigraph.tsx","webpack://keolis-web-passenger/./src/components/oskar-payment-module/oskar-payment.tsx","webpack://keolis-web-passenger/./src/components/oskar-payment-module/oskar-payment.module.scss","webpack://keolis-web-passenger/./src/components/info-traffic/info-traffic-detail-module.tsx","webpack://keolis-web-passenger/./src/components/info-traffic/info-traffic-detail.module.scss","webpack://keolis-web-passenger/./src/components/ter-dakar-itinerary-search-module/ter-dakar-itinerary-search-module.module.scss","webpack://keolis-web-passenger/./src/components/ter-dakar-itinerary-search-module/ter-dakar-itinerary-search-module.tsx","webpack://keolis-web-passenger/./src/components/button/button.module.scss","webpack://keolis-web-passenger/./src/components/button/button.tsx","webpack://keolis-web-passenger/./src/components/vianavigo-itinerary/vianavigo-itinerary-script.js","webpack://keolis-web-passenger/./src/components/vianavigo-itinerary/vianavigo-itinerary.tsx","webpack://keolis-web-passenger/./src/components/vianavigo-itinerary/vianavigo-itinerary.module.scss","webpack://keolis-web-passenger/./src/components/rich-datocms-content/rich-datocms-content.tsx","webpack://keolis-web-passenger/./src/components/type-page/breadcrumb/breadcrumb.module.scss","webpack://keolis-web-passenger/./src/components/type-page/breadcrumb/breadcrumb.tsx","webpack://keolis-web-passenger/./src/components/type-page/news-blocks/news-blocks.tsx","webpack://keolis-web-passenger/./src/components/type-page/news-blocks/news-blocks.module.scss","webpack://keolis-web-passenger/./src/components/type-page/share-buttons/share-buttons.tsx","webpack://keolis-web-passenger/./src/components/type-page/share-buttons/share-buttons.module.scss","webpack://keolis-web-passenger/./src/components/type-page/side-blocks/side-blocks.module.scss","webpack://keolis-web-passenger/./src/components/type-page/side-blocks/side-block/side-block.tsx","webpack://keolis-web-passenger/./src/components/type-page/side-blocks/side-block/side-block.module.scss","webpack://keolis-web-passenger/./src/components/type-page/side-blocks/side-blocks.tsx","webpack://keolis-web-passenger/./src/components/type-page/title-banner/title-banner.tsx","webpack://keolis-web-passenger/./src/components/type-page/title-banner/title-banner.module.scss","webpack://keolis-web-passenger/./src/gtm/page-view-event.ts","webpack://keolis-web-passenger/./src/templates/type-page/type-page.module.scss","webpack://keolis-web-passenger/./node_modules/mapbox-gl/dist/mapbox-gl-csp-worker.js","webpack://keolis-web-passenger/./node_modules/@babel/runtime/helpers/toArray.js","webpack://keolis-web-passenger/./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack://keolis-web-passenger/./node_modules/core-js/internals/engine-is-browser.js","webpack://keolis-web-passenger/./node_modules/core-js/internals/engine-is-deno.js","webpack://keolis-web-passenger/./node_modules/core-js/internals/engine-is-node.js","webpack://keolis-web-passenger/./node_modules/core-js/internals/get-substitution.js","webpack://keolis-web-passenger/./node_modules/core-js/internals/is-regexp.js","webpack://keolis-web-passenger/./node_modules/core-js/internals/perform.js","webpack://keolis-web-passenger/./node_modules/core-js/internals/promise-constructor-detection.js","webpack://keolis-web-passenger/./node_modules/core-js/internals/promise-statics-incorrect-iteration.js","webpack://keolis-web-passenger/./node_modules/core-js/internals/regexp-get-flags.js","webpack://keolis-web-passenger/./node_modules/core-js/modules/es.math.hypot.js","webpack://keolis-web-passenger/./node_modules/core-js/modules/es.promise.all-settled.js","webpack://keolis-web-passenger/./node_modules/core-js/modules/es.string.replace-all.js","webpack://keolis-web-passenger/./node_modules/core-js/modules/esnext.promise.all-settled.js","webpack://keolis-web-passenger/./node_modules/core-js/modules/esnext.string.replace-all.js"],"sourcesContent":["'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n var keys = getOwnPropertyNames(sourceComponent);\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n return targetComponent;\n}\nmodule.exports = hoistNonReactStatics;","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar b = \"function\" === typeof Symbol && Symbol.for,\n c = b ? Symbol.for(\"react.element\") : 60103,\n d = b ? Symbol.for(\"react.portal\") : 60106,\n e = b ? Symbol.for(\"react.fragment\") : 60107,\n f = b ? Symbol.for(\"react.strict_mode\") : 60108,\n g = b ? Symbol.for(\"react.profiler\") : 60114,\n h = b ? Symbol.for(\"react.provider\") : 60109,\n k = b ? Symbol.for(\"react.context\") : 60110,\n l = b ? Symbol.for(\"react.async_mode\") : 60111,\n m = b ? Symbol.for(\"react.concurrent_mode\") : 60111,\n n = b ? Symbol.for(\"react.forward_ref\") : 60112,\n p = b ? Symbol.for(\"react.suspense\") : 60113,\n q = b ? Symbol.for(\"react.suspense_list\") : 60120,\n r = b ? Symbol.for(\"react.memo\") : 60115,\n t = b ? Symbol.for(\"react.lazy\") : 60116,\n v = b ? Symbol.for(\"react.block\") : 60121,\n w = b ? Symbol.for(\"react.fundamental\") : 60117,\n x = b ? Symbol.for(\"react.responder\") : 60118,\n y = b ? Symbol.for(\"react.scope\") : 60119;\nfunction z(a) {\n if (\"object\" === typeof a && null !== a) {\n var u = a.$$typeof;\n switch (u) {\n case c:\n switch (a = a.type, a) {\n case l:\n case m:\n case e:\n case g:\n case f:\n case p:\n return a;\n default:\n switch (a = a && a.$$typeof, a) {\n case k:\n case n:\n case t:\n case r:\n case h:\n return a;\n default:\n return u;\n }\n }\n case d:\n return u;\n }\n }\n}\nfunction A(a) {\n return z(a) === m;\n}\nexports.AsyncMode = l;\nexports.ConcurrentMode = m;\nexports.ContextConsumer = k;\nexports.ContextProvider = h;\nexports.Element = c;\nexports.ForwardRef = n;\nexports.Fragment = e;\nexports.Lazy = t;\nexports.Memo = r;\nexports.Portal = d;\nexports.Profiler = g;\nexports.StrictMode = f;\nexports.Suspense = p;\nexports.isAsyncMode = function (a) {\n return A(a) || z(a) === l;\n};\nexports.isConcurrentMode = A;\nexports.isContextConsumer = function (a) {\n return z(a) === k;\n};\nexports.isContextProvider = function (a) {\n return z(a) === h;\n};\nexports.isElement = function (a) {\n return \"object\" === typeof a && null !== a && a.$$typeof === c;\n};\nexports.isForwardRef = function (a) {\n return z(a) === n;\n};\nexports.isFragment = function (a) {\n return z(a) === e;\n};\nexports.isLazy = function (a) {\n return z(a) === t;\n};\nexports.isMemo = function (a) {\n return z(a) === r;\n};\nexports.isPortal = function (a) {\n return z(a) === d;\n};\nexports.isProfiler = function (a) {\n return z(a) === g;\n};\nexports.isStrictMode = function (a) {\n return z(a) === f;\n};\nexports.isSuspense = function (a) {\n return z(a) === p;\n};\nexports.isValidElementType = function (a) {\n return \"string\" === typeof a || \"function\" === typeof a || a === e || a === m || a === g || a === f || a === p || a === q || \"object\" === typeof a && null !== a && (a.$$typeof === t || a.$$typeof === r || a.$$typeof === h || a.$$typeof === k || a.$$typeof === n || a.$$typeof === w || a.$$typeof === x || a.$$typeof === y || a.$$typeof === v);\n};\nexports.typeOf = z;","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}","\"use strict\";\n\nvar __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar named_references_1 = require(\"./named-references\");\nvar numeric_unicode_map_1 = require(\"./numeric-unicode-map\");\nvar surrogate_pairs_1 = require(\"./surrogate-pairs\");\nvar allNamedReferences = __assign(__assign({}, named_references_1.namedReferences), {\n all: named_references_1.namedReferences.html5\n});\nfunction replaceUsingRegExp(macroText, macroRegExp, macroReplacer) {\n macroRegExp.lastIndex = 0;\n var replaceMatch = macroRegExp.exec(macroText);\n var replaceResult;\n if (replaceMatch) {\n replaceResult = \"\";\n var replaceLastIndex = 0;\n do {\n if (replaceLastIndex !== replaceMatch.index) {\n replaceResult += macroText.substring(replaceLastIndex, replaceMatch.index);\n }\n var replaceInput = replaceMatch[0];\n replaceResult += macroReplacer(replaceInput);\n replaceLastIndex = replaceMatch.index + replaceInput.length;\n } while (replaceMatch = macroRegExp.exec(macroText));\n if (replaceLastIndex !== macroText.length) {\n replaceResult += macroText.substring(replaceLastIndex);\n }\n } else {\n replaceResult = macroText;\n }\n return replaceResult;\n}\nvar encodeRegExps = {\n specialChars: /[<>'\"&]/g,\n nonAscii: /[<>'\"&\\u0080-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/g,\n nonAsciiPrintable: /[<>'\"&\\x01-\\x08\\x11-\\x15\\x17-\\x1F\\x7f-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/g,\n nonAsciiPrintableOnly: /[\\x01-\\x08\\x11-\\x15\\x17-\\x1F\\x7f-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/g,\n extensive: /[\\x01-\\x0c\\x0e-\\x1f\\x21-\\x2c\\x2e-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7d\\x7f-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/g\n};\nvar defaultEncodeOptions = {\n mode: \"specialChars\",\n level: \"all\",\n numeric: \"decimal\"\n};\nfunction encode(text, _a) {\n var _b = _a === void 0 ? defaultEncodeOptions : _a,\n _c = _b.mode,\n mode = _c === void 0 ? \"specialChars\" : _c,\n _d = _b.numeric,\n numeric = _d === void 0 ? \"decimal\" : _d,\n _e = _b.level,\n level = _e === void 0 ? \"all\" : _e;\n if (!text) {\n return \"\";\n }\n var encodeRegExp = encodeRegExps[mode];\n var references = allNamedReferences[level].characters;\n var isHex = numeric === \"hexadecimal\";\n return replaceUsingRegExp(text, encodeRegExp, function (input) {\n var result = references[input];\n if (!result) {\n var code = input.length > 1 ? surrogate_pairs_1.getCodePoint(input, 0) : input.charCodeAt(0);\n result = (isHex ? \"&#x\" + code.toString(16) : \"&#\" + code) + \";\";\n }\n return result;\n });\n}\nexports.encode = encode;\nvar defaultDecodeOptions = {\n scope: \"body\",\n level: \"all\"\n};\nvar strict = /&(?:#\\d+|#[xX][\\da-fA-F]+|[0-9a-zA-Z]+);/g;\nvar attribute = /&(?:#\\d+|#[xX][\\da-fA-F]+|[0-9a-zA-Z]+)[;=]?/g;\nvar baseDecodeRegExps = {\n xml: {\n strict: strict,\n attribute: attribute,\n body: named_references_1.bodyRegExps.xml\n },\n html4: {\n strict: strict,\n attribute: attribute,\n body: named_references_1.bodyRegExps.html4\n },\n html5: {\n strict: strict,\n attribute: attribute,\n body: named_references_1.bodyRegExps.html5\n }\n};\nvar decodeRegExps = __assign(__assign({}, baseDecodeRegExps), {\n all: baseDecodeRegExps.html5\n});\nvar fromCharCode = String.fromCharCode;\nvar outOfBoundsChar = fromCharCode(65533);\nvar defaultDecodeEntityOptions = {\n level: \"all\"\n};\nfunction getDecodedEntity(entity, references, isAttribute, isStrict) {\n var decodeResult = entity;\n var decodeEntityLastChar = entity[entity.length - 1];\n if (isAttribute && decodeEntityLastChar === \"=\") {\n decodeResult = entity;\n } else if (isStrict && decodeEntityLastChar !== \";\") {\n decodeResult = entity;\n } else {\n var decodeResultByReference = references[entity];\n if (decodeResultByReference) {\n decodeResult = decodeResultByReference;\n } else if (entity[0] === \"&\" && entity[1] === \"#\") {\n var decodeSecondChar = entity[2];\n var decodeCode = decodeSecondChar == \"x\" || decodeSecondChar == \"X\" ? parseInt(entity.substr(3), 16) : parseInt(entity.substr(2));\n decodeResult = decodeCode >= 1114111 ? outOfBoundsChar : decodeCode > 65535 ? surrogate_pairs_1.fromCodePoint(decodeCode) : fromCharCode(numeric_unicode_map_1.numericUnicodeMap[decodeCode] || decodeCode);\n }\n }\n return decodeResult;\n}\nfunction decodeEntity(entity, _a) {\n var _b = (_a === void 0 ? defaultDecodeEntityOptions : _a).level,\n level = _b === void 0 ? \"all\" : _b;\n if (!entity) {\n return \"\";\n }\n return getDecodedEntity(entity, allNamedReferences[level].entities, false, false);\n}\nexports.decodeEntity = decodeEntity;\nfunction decode(text, _a) {\n var _b = _a === void 0 ? defaultDecodeOptions : _a,\n _c = _b.level,\n level = _c === void 0 ? \"all\" : _c,\n _d = _b.scope,\n scope = _d === void 0 ? level === \"xml\" ? \"strict\" : \"body\" : _d;\n if (!text) {\n return \"\";\n }\n var decodeRegExp = decodeRegExps[level][scope];\n var references = allNamedReferences[level].entities;\n var isAttribute = scope === \"attribute\";\n var isStrict = scope === \"strict\";\n return replaceUsingRegExp(text, decodeRegExp, function (entity) {\n return getDecodedEntity(entity, references, isAttribute, isStrict);\n });\n}\nexports.decode = decode;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.bodyRegExps = {\n xml: /&(?:#\\d+|#[xX][\\da-fA-F]+|[0-9a-zA-Z]+);?/g,\n html4: /∉|&(?:nbsp|iexcl|cent|pound|curren|yen|brvbar|sect|uml|copy|ordf|laquo|not|shy|reg|macr|deg|plusmn|sup2|sup3|acute|micro|para|middot|cedil|sup1|ordm|raquo|frac14|frac12|frac34|iquest|Agrave|Aacute|Acirc|Atilde|Auml|Aring|AElig|Ccedil|Egrave|Eacute|Ecirc|Euml|Igrave|Iacute|Icirc|Iuml|ETH|Ntilde|Ograve|Oacute|Ocirc|Otilde|Ouml|times|Oslash|Ugrave|Uacute|Ucirc|Uuml|Yacute|THORN|szlig|agrave|aacute|acirc|atilde|auml|aring|aelig|ccedil|egrave|eacute|ecirc|euml|igrave|iacute|icirc|iuml|eth|ntilde|ograve|oacute|ocirc|otilde|ouml|divide|oslash|ugrave|uacute|ucirc|uuml|yacute|thorn|yuml|quot|amp|lt|gt|#\\d+|#[xX][\\da-fA-F]+|[0-9a-zA-Z]+);?/g,\n html5: /·|℗|⋇|⪧|⩺|⋗|⦕|⩼|⪆|⥸|⋗|⋛|⪌|≷|≳|⪦|⩹|⋖|⋋|⋉|⥶|⩻|⦖|◃|⊴|◂|∉|⋹̸|⋵̸|∉|⋷|⋶|∌|∌|⋾|⋽|∥|⊠|⨱|⨰|&(?:AElig|AMP|Aacute|Acirc|Agrave|Aring|Atilde|Auml|COPY|Ccedil|ETH|Eacute|Ecirc|Egrave|Euml|GT|Iacute|Icirc|Igrave|Iuml|LT|Ntilde|Oacute|Ocirc|Ograve|Oslash|Otilde|Ouml|QUOT|REG|THORN|Uacute|Ucirc|Ugrave|Uuml|Yacute|aacute|acirc|acute|aelig|agrave|amp|aring|atilde|auml|brvbar|ccedil|cedil|cent|copy|curren|deg|divide|eacute|ecirc|egrave|eth|euml|frac12|frac14|frac34|gt|iacute|icirc|iexcl|igrave|iquest|iuml|laquo|lt|macr|micro|middot|nbsp|not|ntilde|oacute|ocirc|ograve|ordf|ordm|oslash|otilde|ouml|para|plusmn|pound|quot|raquo|reg|sect|shy|sup1|sup2|sup3|szlig|thorn|times|uacute|ucirc|ugrave|uml|uuml|yacute|yen|yuml|#\\d+|#[xX][\\da-fA-F]+|[0-9a-zA-Z]+);?/g\n};\nexports.namedReferences = {\n xml: {\n entities: {\n \"<\": \"<\",\n \">\": \">\",\n \""\": '\"',\n \"'\": \"'\",\n \"&\": \"&\"\n },\n characters: {\n \"<\": \"<\",\n \">\": \">\",\n '\"': \""\",\n \"'\": \"'\",\n \"&\": \"&\"\n }\n },\n html4: {\n entities: {\n \"'\": \"'\",\n \" \": \" \",\n \" \": \" \",\n \"¡\": \"¡\",\n \"¡\": \"¡\",\n \"¢\": \"¢\",\n \"¢\": \"¢\",\n \"£\": \"£\",\n \"£\": \"£\",\n \"¤\": \"¤\",\n \"¤\": \"¤\",\n \"¥\": \"Â¥\",\n \"¥\": \"Â¥\",\n \"¦\": \"¦\",\n \"¦\": \"¦\",\n \"§\": \"§\",\n \"§\": \"§\",\n \"¨\": \"¨\",\n \"¨\": \"¨\",\n \"©\": \"©\",\n \"©\": \"©\",\n \"ª\": \"ª\",\n \"ª\": \"ª\",\n \"«\": \"«\",\n \"«\": \"«\",\n \"¬\": \"¬\",\n \"¬\": \"¬\",\n \"­\": \"Â\",\n \"­\": \"Â\",\n \"®\": \"®\",\n \"®\": \"®\",\n \"¯\": \"¯\",\n \"¯\": \"¯\",\n \"°\": \"°\",\n \"°\": \"°\",\n \"±\": \"±\",\n \"±\": \"±\",\n \"²\": \"²\",\n \"²\": \"²\",\n \"³\": \"³\",\n \"³\": \"³\",\n \"´\": \"´\",\n \"´\": \"´\",\n \"µ\": \"µ\",\n \"µ\": \"µ\",\n \"¶\": \"¶\",\n \"¶\": \"¶\",\n \"·\": \"·\",\n \"·\": \"·\",\n \"¸\": \"¸\",\n \"¸\": \"¸\",\n \"¹\": \"¹\",\n \"¹\": \"¹\",\n \"º\": \"º\",\n \"º\": \"º\",\n \"»\": \"»\",\n \"»\": \"»\",\n \"¼\": \"¼\",\n \"¼\": \"¼\",\n \"½\": \"½\",\n \"½\": \"½\",\n \"¾\": \"¾\",\n \"¾\": \"¾\",\n \"¿\": \"¿\",\n \"¿\": \"¿\",\n \"À\": \"À\",\n \"À\": \"À\",\n \"Á\": \"Ã\",\n \"Á\": \"Ã\",\n \"Â\": \"Â\",\n \"Â\": \"Â\",\n \"Ã\": \"Ã\",\n \"Ã\": \"Ã\",\n \"Ä\": \"Ä\",\n \"Ä\": \"Ä\",\n \"Å\": \"Ã…\",\n \"Å\": \"Ã…\",\n \"Æ\": \"Æ\",\n \"Æ\": \"Æ\",\n \"Ç\": \"Ç\",\n \"Ç\": \"Ç\",\n \"È\": \"È\",\n \"È\": \"È\",\n \"É\": \"É\",\n \"É\": \"É\",\n \"Ê\": \"Ê\",\n \"Ê\": \"Ê\",\n \"Ë\": \"Ë\",\n \"Ë\": \"Ë\",\n \"Ì\": \"ÃŒ\",\n \"Ì\": \"ÃŒ\",\n \"Í\": \"Ã\",\n \"Í\": \"Ã\",\n \"Î\": \"ÃŽ\",\n \"Î\": \"ÃŽ\",\n \"Ï\": \"Ã\",\n \"Ï\": \"Ã\",\n \"Ð\": \"Ã\",\n \"Ð\": \"Ã\",\n \"Ñ\": \"Ñ\",\n \"Ñ\": \"Ñ\",\n \"Ò\": \"Ã’\",\n \"Ò\": \"Ã’\",\n \"Ó\": \"Ó\",\n \"Ó\": \"Ó\",\n \"Ô\": \"Ô\",\n \"Ô\": \"Ô\",\n \"Õ\": \"Õ\",\n \"Õ\": \"Õ\",\n \"Ö\": \"Ö\",\n \"Ö\": \"Ö\",\n \"×\": \"×\",\n \"×\": \"×\",\n \"Ø\": \"Ø\",\n \"Ø\": \"Ø\",\n \"Ù\": \"Ù\",\n \"Ù\": \"Ù\",\n \"Ú\": \"Ú\",\n \"Ú\": \"Ú\",\n \"Û\": \"Û\",\n \"Û\": \"Û\",\n \"Ü\": \"Ãœ\",\n \"Ü\": \"Ãœ\",\n \"Ý\": \"Ã\",\n \"Ý\": \"Ã\",\n \"Þ\": \"Þ\",\n \"Þ\": \"Þ\",\n \"ß\": \"ß\",\n \"ß\": \"ß\",\n \"à\": \"à \",\n \"à\": \"à \",\n \"á\": \"á\",\n \"á\": \"á\",\n \"â\": \"â\",\n \"â\": \"â\",\n \"ã\": \"ã\",\n \"ã\": \"ã\",\n \"ä\": \"ä\",\n \"ä\": \"ä\",\n \"å\": \"Ã¥\",\n \"å\": \"Ã¥\",\n \"æ\": \"æ\",\n \"æ\": \"æ\",\n \"ç\": \"ç\",\n \"ç\": \"ç\",\n \"è\": \"è\",\n \"è\": \"è\",\n \"é\": \"é\",\n \"é\": \"é\",\n \"ê\": \"ê\",\n \"ê\": \"ê\",\n \"ë\": \"ë\",\n \"ë\": \"ë\",\n \"ì\": \"ì\",\n \"ì\": \"ì\",\n \"í\": \"Ã\",\n \"í\": \"Ã\",\n \"î\": \"î\",\n \"î\": \"î\",\n \"ï\": \"ï\",\n \"ï\": \"ï\",\n \"ð\": \"ð\",\n \"ð\": \"ð\",\n \"ñ\": \"ñ\",\n \"ñ\": \"ñ\",\n \"ò\": \"ò\",\n \"ò\": \"ò\",\n \"ó\": \"ó\",\n \"ó\": \"ó\",\n \"ô\": \"ô\",\n \"ô\": \"ô\",\n \"õ\": \"õ\",\n \"õ\": \"õ\",\n \"ö\": \"ö\",\n \"ö\": \"ö\",\n \"÷\": \"÷\",\n \"÷\": \"÷\",\n \"ø\": \"ø\",\n \"ø\": \"ø\",\n \"ù\": \"ù\",\n \"ù\": \"ù\",\n \"ú\": \"ú\",\n \"ú\": \"ú\",\n \"û\": \"û\",\n \"û\": \"û\",\n \"ü\": \"ü\",\n \"ü\": \"ü\",\n \"ý\": \"ý\",\n \"ý\": \"ý\",\n \"þ\": \"þ\",\n \"þ\": \"þ\",\n \"ÿ\": \"ÿ\",\n \"ÿ\": \"ÿ\",\n \""\": '\"',\n \""\": '\"',\n \"&\": \"&\",\n \"&\": \"&\",\n \"<\": \"<\",\n \"<\": \"<\",\n \">\": \">\",\n \">\": \">\",\n \"Œ\": \"Å’\",\n \"œ\": \"Å“\",\n \"Š\": \"Å \",\n \"š\": \"Å¡\",\n \"Ÿ\": \"Ÿ\",\n \"ˆ\": \"ˆ\",\n \"˜\": \"Ëœ\",\n \" \": \" \",\n \" \": \" \",\n \" \": \" \",\n \"‌\": \"‌\",\n \"‍\": \"â€\",\n \"‎\": \"‎\",\n \"‏\": \"â€\",\n \"–\": \"–\",\n \"—\": \"—\",\n \"‘\": \"‘\",\n \"’\": \"’\",\n \"‚\": \"‚\",\n \"“\": \"“\",\n \"”\": \"â€\",\n \"„\": \"„\",\n \"†\": \"†\",\n \"‡\": \"‡\",\n \"‰\": \"‰\",\n \"‹\": \"‹\",\n \"›\": \"›\",\n \"€\": \"€\",\n \"ƒ\": \"Æ’\",\n \"Α\": \"Α\",\n \"Β\": \"Î’\",\n \"Γ\": \"Γ\",\n \"Δ\": \"Δ\",\n \"Ε\": \"Ε\",\n \"Ζ\": \"Ζ\",\n \"Η\": \"Η\",\n \"Θ\": \"Θ\",\n \"Ι\": \"Ι\",\n \"Κ\": \"Κ\",\n \"Λ\": \"Λ\",\n \"Μ\": \"Îœ\",\n \"Ν\": \"Î\",\n \"Ξ\": \"Ξ\",\n \"Ο\": \"Ο\",\n \"Π\": \"Î \",\n \"Ρ\": \"Ρ\",\n \"Σ\": \"Σ\",\n \"Τ\": \"Τ\",\n \"Υ\": \"Î¥\",\n \"Φ\": \"Φ\",\n \"Χ\": \"Χ\",\n \"Ψ\": \"Ψ\",\n \"Ω\": \"Ω\",\n \"α\": \"α\",\n \"β\": \"β\",\n \"γ\": \"γ\",\n \"δ\": \"δ\",\n \"ε\": \"ε\",\n \"ζ\": \"ζ\",\n \"η\": \"η\",\n \"θ\": \"θ\",\n \"ι\": \"ι\",\n \"κ\": \"κ\",\n \"λ\": \"λ\",\n \"μ\": \"μ\",\n \"ν\": \"ν\",\n \"ξ\": \"ξ\",\n \"ο\": \"ο\",\n \"π\": \"Ï€\",\n \"ρ\": \"Ï\",\n \"ς\": \"Ï‚\",\n \"σ\": \"σ\",\n \"τ\": \"Ï„\",\n \"υ\": \"Ï…\",\n \"φ\": \"φ\",\n \"χ\": \"χ\",\n \"ψ\": \"ψ\",\n \"ω\": \"ω\",\n \"ϑ\": \"Ï‘\",\n \"ϒ\": \"Ï’\",\n \"ϖ\": \"Ï–\",\n \"•\": \"•\",\n \"…\": \"…\",\n \"′\": \"′\",\n \"″\": \"″\",\n \"‾\": \"‾\",\n \"⁄\": \"â„\",\n \"℘\": \"℘\",\n \"ℑ\": \"â„‘\",\n \"ℜ\": \"â„œ\",\n \"™\": \"â„¢\",\n \"ℵ\": \"ℵ\",\n \"←\": \"â†\",\n \"↑\": \"↑\",\n \"→\": \"→\",\n \"↓\": \"↓\",\n \"↔\": \"↔\",\n \"↵\": \"↵\",\n \"⇐\": \"â‡\",\n \"⇑\": \"⇑\",\n \"⇒\": \"⇒\",\n \"⇓\": \"⇓\",\n \"⇔\": \"⇔\",\n \"∀\": \"∀\",\n \"∂\": \"∂\",\n \"∃\": \"∃\",\n \"∅\": \"∅\",\n \"∇\": \"∇\",\n \"∈\": \"∈\",\n \"∉\": \"∉\",\n \"∋\": \"∋\",\n \"∏\": \"âˆ\",\n \"∑\": \"∑\",\n \"−\": \"−\",\n \"∗\": \"∗\",\n \"√\": \"√\",\n \"∝\": \"âˆ\",\n \"∞\": \"∞\",\n \"∠\": \"∠\",\n \"∧\": \"∧\",\n \"∨\": \"∨\",\n \"∩\": \"∩\",\n \"∪\": \"∪\",\n \"∫\": \"∫\",\n \"∴\": \"∴\",\n \"∼\": \"∼\",\n \"≅\": \"≅\",\n \"≈\": \"≈\",\n \"≠\": \"≠\",\n \"≡\": \"≡\",\n \"≤\": \"≤\",\n \"≥\": \"≥\",\n \"⊂\": \"⊂\",\n \"⊃\": \"⊃\",\n \"⊄\": \"⊄\",\n \"⊆\": \"⊆\",\n \"⊇\": \"⊇\",\n \"⊕\": \"⊕\",\n \"⊗\": \"⊗\",\n \"⊥\": \"⊥\",\n \"⋅\": \"â‹…\",\n \"⌈\": \"⌈\",\n \"⌉\": \"⌉\",\n \"⌊\": \"⌊\",\n \"⌋\": \"⌋\",\n \"⟨\": \"〈\",\n \"⟩\": \"〉\",\n \"◊\": \"â—Š\",\n \"♠\": \"â™ \",\n \"♣\": \"♣\",\n \"♥\": \"♥\",\n \"♦\": \"♦\"\n },\n characters: {\n \"'\": \"'\",\n \" \": \" \",\n \"¡\": \"¡\",\n \"¢\": \"¢\",\n \"£\": \"£\",\n \"¤\": \"¤\",\n \"Â¥\": \"¥\",\n \"¦\": \"¦\",\n \"§\": \"§\",\n \"¨\": \"¨\",\n \"©\": \"©\",\n \"ª\": \"ª\",\n \"«\": \"«\",\n \"¬\": \"¬\",\n \"Â\": \"­\",\n \"®\": \"®\",\n \"¯\": \"¯\",\n \"°\": \"°\",\n \"±\": \"±\",\n \"²\": \"²\",\n \"³\": \"³\",\n \"´\": \"´\",\n \"µ\": \"µ\",\n \"¶\": \"¶\",\n \"·\": \"·\",\n \"¸\": \"¸\",\n \"¹\": \"¹\",\n \"º\": \"º\",\n \"»\": \"»\",\n \"¼\": \"¼\",\n \"½\": \"½\",\n \"¾\": \"¾\",\n \"¿\": \"¿\",\n \"À\": \"À\",\n \"Ã\": \"Á\",\n \"Â\": \"Â\",\n \"Ã\": \"Ã\",\n \"Ä\": \"Ä\",\n \"Ã…\": \"Å\",\n \"Æ\": \"Æ\",\n \"Ç\": \"Ç\",\n \"È\": \"È\",\n \"É\": \"É\",\n \"Ê\": \"Ê\",\n \"Ë\": \"Ë\",\n \"ÃŒ\": \"Ì\",\n \"Ã\": \"Í\",\n \"ÃŽ\": \"Î\",\n \"Ã\": \"Ï\",\n \"Ã\": \"Ð\",\n \"Ñ\": \"Ñ\",\n \"Ã’\": \"Ò\",\n \"Ó\": \"Ó\",\n \"Ô\": \"Ô\",\n \"Õ\": \"Õ\",\n \"Ö\": \"Ö\",\n \"×\": \"×\",\n \"Ø\": \"Ø\",\n \"Ù\": \"Ù\",\n \"Ú\": \"Ú\",\n \"Û\": \"Û\",\n \"Ãœ\": \"Ü\",\n \"Ã\": \"Ý\",\n \"Þ\": \"Þ\",\n \"ß\": \"ß\",\n \"à \": \"à\",\n \"á\": \"á\",\n \"â\": \"â\",\n \"ã\": \"ã\",\n \"ä\": \"ä\",\n \"Ã¥\": \"å\",\n \"æ\": \"æ\",\n \"ç\": \"ç\",\n \"è\": \"è\",\n \"é\": \"é\",\n \"ê\": \"ê\",\n \"ë\": \"ë\",\n \"ì\": \"ì\",\n \"Ã\": \"í\",\n \"î\": \"î\",\n \"ï\": \"ï\",\n \"ð\": \"ð\",\n \"ñ\": \"ñ\",\n \"ò\": \"ò\",\n \"ó\": \"ó\",\n \"ô\": \"ô\",\n \"õ\": \"õ\",\n \"ö\": \"ö\",\n \"÷\": \"÷\",\n \"ø\": \"ø\",\n \"ù\": \"ù\",\n \"ú\": \"ú\",\n \"û\": \"û\",\n \"ü\": \"ü\",\n \"ý\": \"ý\",\n \"þ\": \"þ\",\n \"ÿ\": \"ÿ\",\n '\"': \""\",\n \"&\": \"&\",\n \"<\": \"<\",\n \">\": \">\",\n \"Å’\": \"Œ\",\n \"Å“\": \"œ\",\n \"Å \": \"Š\",\n \"Å¡\": \"š\",\n \"Ÿ\": \"Ÿ\",\n \"ˆ\": \"ˆ\",\n \"Ëœ\": \"˜\",\n \" \": \" \",\n \" \": \" \",\n \" \": \" \",\n \"‌\": \"‌\",\n \"â€\": \"‍\",\n \"‎\": \"‎\",\n \"â€\": \"‏\",\n \"–\": \"–\",\n \"—\": \"—\",\n \"‘\": \"‘\",\n \"’\": \"’\",\n \"‚\": \"‚\",\n \"“\": \"“\",\n \"â€\": \"”\",\n \"„\": \"„\",\n \"†\": \"†\",\n \"‡\": \"‡\",\n \"‰\": \"‰\",\n \"‹\": \"‹\",\n \"›\": \"›\",\n \"€\": \"€\",\n \"Æ’\": \"ƒ\",\n \"Α\": \"Α\",\n \"Î’\": \"Β\",\n \"Γ\": \"Γ\",\n \"Δ\": \"Δ\",\n \"Ε\": \"Ε\",\n \"Ζ\": \"Ζ\",\n \"Η\": \"Η\",\n \"Θ\": \"Θ\",\n \"Ι\": \"Ι\",\n \"Κ\": \"Κ\",\n \"Λ\": \"Λ\",\n \"Îœ\": \"Μ\",\n \"Î\": \"Ν\",\n \"Ξ\": \"Ξ\",\n \"Ο\": \"Ο\",\n \"Î \": \"Π\",\n \"Ρ\": \"Ρ\",\n \"Σ\": \"Σ\",\n \"Τ\": \"Τ\",\n \"Î¥\": \"Υ\",\n \"Φ\": \"Φ\",\n \"Χ\": \"Χ\",\n \"Ψ\": \"Ψ\",\n \"Ω\": \"Ω\",\n \"α\": \"α\",\n \"β\": \"β\",\n \"γ\": \"γ\",\n \"δ\": \"δ\",\n \"ε\": \"ε\",\n \"ζ\": \"ζ\",\n \"η\": \"η\",\n \"θ\": \"θ\",\n \"ι\": \"ι\",\n \"κ\": \"κ\",\n \"λ\": \"λ\",\n \"μ\": \"μ\",\n \"ν\": \"ν\",\n \"ξ\": \"ξ\",\n \"ο\": \"ο\",\n \"Ï€\": \"π\",\n \"Ï\": \"ρ\",\n \"Ï‚\": \"ς\",\n \"σ\": \"σ\",\n \"Ï„\": \"τ\",\n \"Ï…\": \"υ\",\n \"φ\": \"φ\",\n \"χ\": \"χ\",\n \"ψ\": \"ψ\",\n \"ω\": \"ω\",\n \"Ï‘\": \"ϑ\",\n \"Ï’\": \"ϒ\",\n \"Ï–\": \"ϖ\",\n \"•\": \"•\",\n \"…\": \"…\",\n \"′\": \"′\",\n \"″\": \"″\",\n \"‾\": \"‾\",\n \"â„\": \"⁄\",\n \"℘\": \"℘\",\n \"â„‘\": \"ℑ\",\n \"â„œ\": \"ℜ\",\n \"â„¢\": \"™\",\n \"ℵ\": \"ℵ\",\n \"â†\": \"←\",\n \"↑\": \"↑\",\n \"→\": \"→\",\n \"↓\": \"↓\",\n \"↔\": \"↔\",\n \"↵\": \"↵\",\n \"â‡\": \"⇐\",\n \"⇑\": \"⇑\",\n \"⇒\": \"⇒\",\n \"⇓\": \"⇓\",\n \"⇔\": \"⇔\",\n \"∀\": \"∀\",\n \"∂\": \"∂\",\n \"∃\": \"∃\",\n \"∅\": \"∅\",\n \"∇\": \"∇\",\n \"∈\": \"∈\",\n \"∉\": \"∉\",\n \"∋\": \"∋\",\n \"âˆ\": \"∏\",\n \"∑\": \"∑\",\n \"−\": \"−\",\n \"∗\": \"∗\",\n \"√\": \"√\",\n \"âˆ\": \"∝\",\n \"∞\": \"∞\",\n \"∠\": \"∠\",\n \"∧\": \"∧\",\n \"∨\": \"∨\",\n \"∩\": \"∩\",\n \"∪\": \"∪\",\n \"∫\": \"∫\",\n \"∴\": \"∴\",\n \"∼\": \"∼\",\n \"≅\": \"≅\",\n \"≈\": \"≈\",\n \"≠\": \"≠\",\n \"≡\": \"≡\",\n \"≤\": \"≤\",\n \"≥\": \"≥\",\n \"⊂\": \"⊂\",\n \"⊃\": \"⊃\",\n \"⊄\": \"⊄\",\n \"⊆\": \"⊆\",\n \"⊇\": \"⊇\",\n \"⊕\": \"⊕\",\n \"⊗\": \"⊗\",\n \"⊥\": \"⊥\",\n \"â‹…\": \"⋅\",\n \"⌈\": \"⌈\",\n \"⌉\": \"⌉\",\n \"⌊\": \"⌊\",\n \"⌋\": \"⌋\",\n \"〈\": \"⟨\",\n \"〉\": \"⟩\",\n \"â—Š\": \"◊\",\n \"â™ \": \"♠\",\n \"♣\": \"♣\",\n \"♥\": \"♥\",\n \"♦\": \"♦\"\n }\n },\n html5: {\n entities: {\n \"Æ\": \"Æ\",\n \"Æ\": \"Æ\",\n \"&\": \"&\",\n \"&\": \"&\",\n \"Á\": \"Ã\",\n \"Á\": \"Ã\",\n \"Ă\": \"Ä‚\",\n \"Â\": \"Â\",\n \"Â\": \"Â\",\n \"А\": \"Ð\",\n \"𝔄\": \"ð”„\",\n \"À\": \"À\",\n \"À\": \"À\",\n \"Α\": \"Α\",\n \"Ā\": \"Ä€\",\n \"⩓\": \"â©“\",\n \"Ą\": \"Ä„\",\n \"𝔸\": \"ð”¸\",\n \"⁡\": \"â¡\",\n \"Å\": \"Ã…\",\n \"Å\": \"Ã…\",\n \"𝒜\": \"ð’œ\",\n \"≔\": \"≔\",\n \"Ã\": \"Ã\",\n \"Ã\": \"Ã\",\n \"Ä\": \"Ä\",\n \"Ä\": \"Ä\",\n \"∖\": \"∖\",\n \"⫧\": \"⫧\",\n \"⌆\": \"⌆\",\n \"Б\": \"Б\",\n \"∵\": \"∵\",\n \"ℬ\": \"ℬ\",\n \"Β\": \"Î’\",\n \"𝔅\": \"ð”…\",\n \"𝔹\": \"ð”¹\",\n \"˘\": \"˘\",\n \"ℬ\": \"ℬ\",\n \"≎\": \"≎\",\n \"Ч\": \"Ч\",\n \"©\": \"©\",\n \"©\": \"©\",\n \"Ć\": \"Ć\",\n \"⋒\": \"â‹’\",\n \"ⅅ\": \"â……\",\n \"ℭ\": \"â„\",\n \"Č\": \"ÄŒ\",\n \"Ç\": \"Ç\",\n \"Ç\": \"Ç\",\n \"Ĉ\": \"Ĉ\",\n \"∰\": \"∰\",\n \"Ċ\": \"ÄŠ\",\n \"¸\": \"¸\",\n \"·\": \"·\",\n \"ℭ\": \"â„\",\n \"Χ\": \"Χ\",\n \"⊙\": \"⊙\",\n \"⊖\": \"⊖\",\n \"⊕\": \"⊕\",\n \"⊗\": \"⊗\",\n \"∲\": \"∲\",\n \"”\": \"â€\",\n \"’\": \"’\",\n \"∷\": \"∷\",\n \"⩴\": \"â©´\",\n \"≡\": \"≡\",\n \"∯\": \"∯\",\n \"∮\": \"∮\",\n \"ℂ\": \"â„‚\",\n \"∐\": \"âˆ\",\n \"∳\": \"∳\",\n \"⨯\": \"⨯\",\n \"𝒞\": \"ð’ž\",\n \"⋓\": \"â‹“\",\n \"≍\": \"â‰\",\n \"ⅅ\": \"â……\",\n \"⤑\": \"⤑\",\n \"Ђ\": \"Ђ\",\n \"Ѕ\": \"Ð…\",\n \"Џ\": \"Ð\",\n \"‡\": \"‡\",\n \"↡\": \"↡\",\n \"⫤\": \"⫤\",\n \"Ď\": \"ÄŽ\",\n \"Д\": \"Д\",\n \"∇\": \"∇\",\n \"Δ\": \"Δ\",\n \"𝔇\": \"ð”‡\",\n \"´\": \"´\",\n \"˙\": \"Ë™\",\n \"˝\": \"Ë\",\n \"`\": \"`\",\n \"˜\": \"Ëœ\",\n \"⋄\": \"â‹„\",\n \"ⅆ\": \"â…†\",\n \"𝔻\": \"ð”»\",\n \"¨\": \"¨\",\n \"⃜\": \"⃜\",\n \"≐\": \"â‰\",\n \"∯\": \"∯\",\n \"¨\": \"¨\",\n \"⇓\": \"⇓\",\n \"⇐\": \"â‡\",\n \"⇔\": \"⇔\",\n \"⫤\": \"⫤\",\n \"⟸\": \"⟸\",\n \"⟺\": \"⟺\",\n \"⟹\": \"⟹\",\n \"⇒\": \"⇒\",\n \"⊨\": \"⊨\",\n \"⇑\": \"⇑\",\n \"⇕\": \"⇕\",\n \"∥\": \"∥\",\n \"↓\": \"↓\",\n \"⤓\": \"⤓\",\n \"⇵\": \"⇵\",\n \"̑\": \"Ì‘\",\n \"⥐\": \"â¥\",\n \"⥞\": \"⥞\",\n \"↽\": \"↽\",\n \"⥖\": \"⥖\",\n \"⥟\": \"⥟\",\n \"⇁\": \"â‡\",\n \"⥗\": \"⥗\",\n \"⊤\": \"⊤\",\n \"↧\": \"↧\",\n \"⇓\": \"⇓\",\n \"𝒟\": \"ð’Ÿ\",\n \"Đ\": \"Ä\",\n \"Ŋ\": \"ÅŠ\",\n \"Ð\": \"Ã\",\n \"Ð\": \"Ã\",\n \"É\": \"É\",\n \"É\": \"É\",\n \"Ě\": \"Äš\",\n \"Ê\": \"Ê\",\n \"Ê\": \"Ê\",\n \"Э\": \"Ð\",\n \"Ė\": \"Ä–\",\n \"𝔈\": \"ð”ˆ\",\n \"È\": \"È\",\n \"È\": \"È\",\n \"∈\": \"∈\",\n \"Ē\": \"Ä’\",\n \"◻\": \"â—»\",\n \"▫\": \"â–«\",\n \"Ę\": \"Ę\",\n \"𝔼\": \"ð”¼\",\n \"Ε\": \"Ε\",\n \"⩵\": \"⩵\",\n \"≂\": \"≂\",\n \"⇌\": \"⇌\",\n \"ℰ\": \"â„°\",\n \"⩳\": \"⩳\",\n \"Η\": \"Η\",\n \"Ë\": \"Ë\",\n \"Ë\": \"Ë\",\n \"∃\": \"∃\",\n \"ⅇ\": \"â…‡\",\n \"Ф\": \"Ф\",\n \"𝔉\": \"ð”‰\",\n \"◼\": \"â—¼\",\n \"▪\": \"â–ª\",\n \"𝔽\": \"ð”½\",\n \"∀\": \"∀\",\n \"ℱ\": \"ℱ\",\n \"ℱ\": \"ℱ\",\n \"Ѓ\": \"Ѓ\",\n \">\": \">\",\n \">\": \">\",\n \"Γ\": \"Γ\",\n \"Ϝ\": \"Ïœ\",\n \"Ğ\": \"Äž\",\n \"Ģ\": \"Ä¢\",\n \"Ĝ\": \"Äœ\",\n \"Г\": \"Г\",\n \"Ġ\": \"Ä \",\n \"𝔊\": \"ð”Š\",\n \"⋙\": \"â‹™\",\n \"𝔾\": \"ð”¾\",\n \"≥\": \"≥\",\n \"⋛\": \"â‹›\",\n \"≧\": \"≧\",\n \"⪢\": \"⪢\",\n \"≷\": \"≷\",\n \"⩾\": \"⩾\",\n \"≳\": \"≳\",\n \"𝒢\": \"ð’¢\",\n \"≫\": \"≫\",\n \"Ъ\": \"Ъ\",\n \"ˇ\": \"ˇ\",\n \"^\": \"^\",\n \"Ĥ\": \"Ĥ\",\n \"ℌ\": \"â„Œ\",\n \"ℋ\": \"â„‹\",\n \"ℍ\": \"â„\",\n \"─\": \"─\",\n \"ℋ\": \"â„‹\",\n \"Ħ\": \"Ħ\",\n \"≎\": \"≎\",\n \"≏\": \"â‰\",\n \"Е\": \"Е\",\n \"IJ\": \"IJ\",\n \"Ё\": \"Ð\",\n \"Í\": \"Ã\",\n \"Í\": \"Ã\",\n \"Î\": \"ÃŽ\",\n \"Î\": \"ÃŽ\",\n \"И\": \"И\",\n \"İ\": \"Ä°\",\n \"ℑ\": \"â„‘\",\n \"Ì\": \"ÃŒ\",\n \"Ì\": \"ÃŒ\",\n \"ℑ\": \"â„‘\",\n \"Ī\": \"Ī\",\n \"ⅈ\": \"â…ˆ\",\n \"⇒\": \"⇒\",\n \"∬\": \"∬\",\n \"∫\": \"∫\",\n \"⋂\": \"â‹‚\",\n \"⁣\": \"â£\",\n \"⁢\": \"â¢\",\n \"Į\": \"Ä®\",\n \"𝕀\": \"ð•€\",\n \"Ι\": \"Ι\",\n \"ℐ\": \"â„\",\n \"Ĩ\": \"Ĩ\",\n \"І\": \"І\",\n \"Ï\": \"Ã\",\n \"Ï\": \"Ã\",\n \"Ĵ\": \"Ä´\",\n \"Й\": \"Й\",\n \"𝔍\": \"ð”\",\n \"𝕁\": \"ð•\",\n \"𝒥\": \"ð’¥\",\n \"Ј\": \"Ј\",\n \"Є\": \"Є\",\n \"Х\": \"Ð¥\",\n \"Ќ\": \"ÐŒ\",\n \"Κ\": \"Κ\",\n \"Ķ\": \"Ķ\",\n \"К\": \"К\",\n \"𝔎\": \"ð”Ž\",\n \"𝕂\": \"ð•‚\",\n \"𝒦\": \"ð’¦\",\n \"Љ\": \"Љ\",\n \"<\": \"<\",\n \"<\": \"<\",\n \"Ĺ\": \"Ĺ\",\n \"Λ\": \"Λ\",\n \"⟪\": \"⟪\",\n \"ℒ\": \"â„’\",\n \"↞\": \"↞\",\n \"Ľ\": \"Ľ\",\n \"Ļ\": \"Ä»\",\n \"Л\": \"Л\",\n \"⟨\": \"⟨\",\n \"←\": \"â†\",\n \"⇤\": \"⇤\",\n \"⇆\": \"⇆\",\n \"⌈\": \"⌈\",\n \"⟦\": \"⟦\",\n \"⥡\": \"⥡\",\n \"⇃\": \"⇃\",\n \"⥙\": \"⥙\",\n \"⌊\": \"⌊\",\n \"↔\": \"↔\",\n \"⥎\": \"⥎\",\n \"⊣\": \"⊣\",\n \"↤\": \"↤\",\n \"⥚\": \"⥚\",\n \"⊲\": \"⊲\",\n \"⧏\": \"â§\",\n \"⊴\": \"⊴\",\n \"⥑\": \"⥑\",\n \"⥠\": \"⥠\",\n \"↿\": \"↿\",\n \"⥘\": \"⥘\",\n \"↼\": \"↼\",\n \"⥒\": \"⥒\",\n \"⇐\": \"â‡\",\n \"⇔\": \"⇔\",\n \"⋚\": \"â‹š\",\n \"≦\": \"≦\",\n \"≶\": \"≶\",\n \"⪡\": \"⪡\",\n \"⩽\": \"⩽\",\n \"≲\": \"≲\",\n \"𝔏\": \"ð”\",\n \"⋘\": \"⋘\",\n \"⇚\": \"⇚\",\n \"Ŀ\": \"Ä¿\",\n \"⟵\": \"⟵\",\n \"⟷\": \"⟷\",\n \"⟶\": \"⟶\",\n \"⟸\": \"⟸\",\n \"⟺\": \"⟺\",\n \"⟹\": \"⟹\",\n \"𝕃\": \"ð•ƒ\",\n \"↙\": \"↙\",\n \"↘\": \"↘\",\n \"ℒ\": \"â„’\",\n \"↰\": \"↰\",\n \"Ł\": \"Å\",\n \"≪\": \"≪\",\n \"⤅\": \"⤅\",\n \"М\": \"Ðœ\",\n \" \": \"âŸ\",\n \"ℳ\": \"ℳ\",\n \"𝔐\": \"ð”\",\n \"∓\": \"∓\",\n \"𝕄\": \"ð•„\",\n \"ℳ\": \"ℳ\",\n \"Μ\": \"Îœ\",\n \"Њ\": \"Њ\",\n \"Ń\": \"Ń\",\n \"Ň\": \"Ň\",\n \"Ņ\": \"Å…\",\n \"Н\": \"Ð\",\n \"​\": \"​\",\n \"​\": \"​\",\n \"​\": \"​\",\n \"​\": \"​\",\n \"≫\": \"≫\",\n \"≪\": \"≪\",\n \"
\": \"\\n\",\n \"𝔑\": \"ð”‘\",\n \"⁠\": \"â \",\n \" \": \" \",\n \"ℕ\": \"â„•\",\n \"⫬\": \"⫬\",\n \"≢\": \"≢\",\n \"≭\": \"â‰\",\n \"∦\": \"∦\",\n \"∉\": \"∉\",\n \"≠\": \"≠\",\n \"≂̸\": \"≂̸\",\n \"∄\": \"∄\",\n \"≯\": \"≯\",\n \"≱\": \"≱\",\n \"≧̸\": \"≧̸\",\n \"≫̸\": \"≫̸\",\n \"≹\": \"≹\",\n \"⩾̸\": \"⩾̸\",\n \"≵\": \"≵\",\n \"≎̸\": \"≎̸\",\n \"≏̸\": \"â‰Ì¸\",\n \"⋪\": \"⋪\",\n \"⧏̸\": \"â§Ì¸\",\n \"⋬\": \"⋬\",\n \"≮\": \"≮\",\n \"≰\": \"≰\",\n \"≸\": \"≸\",\n \"≪̸\": \"≪̸\",\n \"⩽̸\": \"⩽̸\",\n \"≴\": \"≴\",\n \"⪢̸\": \"⪢̸\",\n \"⪡̸\": \"⪡̸\",\n \"⊀\": \"⊀\",\n \"⪯̸\": \"⪯̸\",\n \"⋠\": \"â‹ \",\n \"∌\": \"∌\",\n \"⋫\": \"â‹«\",\n \"⧐̸\": \"â§Ì¸\",\n \"⋭\": \"â‹\",\n \"⊏̸\": \"âŠÌ¸\",\n \"⋢\": \"â‹¢\",\n \"⊐̸\": \"âŠÌ¸\",\n \"⋣\": \"â‹£\",\n \"⊂⃒\": \"⊂⃒\",\n \"⊈\": \"⊈\",\n \"⊁\": \"âŠ\",\n \"⪰̸\": \"⪰̸\",\n \"⋡\": \"â‹¡\",\n \"≿̸\": \"≿̸\",\n \"⊃⃒\": \"⊃⃒\",\n \"⊉\": \"⊉\",\n \"≁\": \"â‰\",\n \"≄\": \"≄\",\n \"≇\": \"≇\",\n \"≉\": \"≉\",\n \"∤\": \"∤\",\n \"𝒩\": \"ð’©\",\n \"Ñ\": \"Ñ\",\n \"Ñ\": \"Ñ\",\n \"Ν\": \"Î\",\n \"Œ\": \"Å’\",\n \"Ó\": \"Ó\",\n \"Ó\": \"Ó\",\n \"Ô\": \"Ô\",\n \"Ô\": \"Ô\",\n \"О\": \"О\",\n \"Ő\": \"Å\",\n \"𝔒\": \"ð”’\",\n \"Ò\": \"Ã’\",\n \"Ò\": \"Ã’\",\n \"Ō\": \"ÅŒ\",\n \"Ω\": \"Ω\",\n \"Ο\": \"Ο\",\n \"𝕆\": \"ð•†\",\n \"“\": \"“\",\n \"‘\": \"‘\",\n \"⩔\": \"â©”\",\n \"𝒪\": \"ð’ª\",\n \"Ø\": \"Ø\",\n \"Ø\": \"Ø\",\n \"Õ\": \"Õ\",\n \"Õ\": \"Õ\",\n \"⨷\": \"⨷\",\n \"Ö\": \"Ö\",\n \"Ö\": \"Ö\",\n \"‾\": \"‾\",\n \"⏞\": \"âž\",\n \"⎴\": \"⎴\",\n \"⏜\": \"âœ\",\n \"∂\": \"∂\",\n \"П\": \"П\",\n \"𝔓\": \"ð”“\",\n \"Φ\": \"Φ\",\n \"Π\": \"Î \",\n \"±\": \"±\",\n \"ℌ\": \"â„Œ\",\n \"ℙ\": \"â„™\",\n \"⪻\": \"⪻\",\n \"≺\": \"≺\",\n \"⪯\": \"⪯\",\n \"≼\": \"≼\",\n \"≾\": \"≾\",\n \"″\": \"″\",\n \"∏\": \"âˆ\",\n \"∷\": \"∷\",\n \"∝\": \"âˆ\",\n \"𝒫\": \"ð’«\",\n \"Ψ\": \"Ψ\",\n \""\": '\"',\n \""\": '\"',\n \"𝔔\": \"ð””\",\n \"ℚ\": \"â„š\",\n \"𝒬\": \"ð’¬\",\n \"⤐\": \"â¤\",\n \"®\": \"®\",\n \"®\": \"®\",\n \"Ŕ\": \"Å”\",\n \"⟫\": \"⟫\",\n \"↠\": \"↠\",\n \"⤖\": \"⤖\",\n \"Ř\": \"Ř\",\n \"Ŗ\": \"Å–\",\n \"Р\": \"Ð \",\n \"ℜ\": \"â„œ\",\n \"∋\": \"∋\",\n \"⇋\": \"⇋\",\n \"⥯\": \"⥯\",\n \"ℜ\": \"â„œ\",\n \"Ρ\": \"Ρ\",\n \"⟩\": \"⟩\",\n \"→\": \"→\",\n \"⇥\": \"⇥\",\n \"⇄\": \"⇄\",\n \"⌉\": \"⌉\",\n \"⟧\": \"⟧\",\n \"⥝\": \"â¥\",\n \"⇂\": \"⇂\",\n \"⥕\": \"⥕\",\n \"⌋\": \"⌋\",\n \"⊢\": \"⊢\",\n \"↦\": \"↦\",\n \"⥛\": \"⥛\",\n \"⊳\": \"⊳\",\n \"⧐\": \"â§\",\n \"⊵\": \"⊵\",\n \"⥏\": \"â¥\",\n \"⥜\": \"⥜\",\n \"↾\": \"↾\",\n \"⥔\": \"⥔\",\n \"⇀\": \"⇀\",\n \"⥓\": \"⥓\",\n \"⇒\": \"⇒\",\n \"ℝ\": \"â„\",\n \"⥰\": \"⥰\",\n \"⇛\": \"⇛\",\n \"ℛ\": \"â„›\",\n \"↱\": \"↱\",\n \"⧴\": \"⧴\",\n \"Щ\": \"Щ\",\n \"Ш\": \"Ш\",\n \"Ь\": \"Ь\",\n \"Ś\": \"Åš\",\n \"⪼\": \"⪼\",\n \"Š\": \"Å \",\n \"Ş\": \"Åž\",\n \"Ŝ\": \"Åœ\",\n \"С\": \"С\",\n \"𝔖\": \"ð”–\",\n \"↓\": \"↓\",\n \"←\": \"â†\",\n \"→\": \"→\",\n \"↑\": \"↑\",\n \"Σ\": \"Σ\",\n \"∘\": \"∘\",\n \"𝕊\": \"ð•Š\",\n \"√\": \"√\",\n \"□\": \"â–¡\",\n \"⊓\": \"⊓\",\n \"⊏\": \"âŠ\",\n \"⊑\": \"⊑\",\n \"⊐\": \"âŠ\",\n \"⊒\": \"⊒\",\n \"⊔\": \"⊔\",\n \"𝒮\": \"ð’®\",\n \"⋆\": \"⋆\",\n \"⋐\": \"â‹\",\n \"⋐\": \"â‹\",\n \"⊆\": \"⊆\",\n \"≻\": \"≻\",\n \"⪰\": \"⪰\",\n \"≽\": \"≽\",\n \"≿\": \"≿\",\n \"∋\": \"∋\",\n \"∑\": \"∑\",\n \"⋑\": \"â‹‘\",\n \"⊃\": \"⊃\",\n \"⊇\": \"⊇\",\n \"⋑\": \"â‹‘\",\n \"Þ\": \"Þ\",\n \"Þ\": \"Þ\",\n \"™\": \"â„¢\",\n \"Ћ\": \"Ћ\",\n \"Ц\": \"Ц\",\n \"	\": \"\\t\",\n \"Τ\": \"Τ\",\n \"Ť\": \"Ť\",\n \"Ţ\": \"Å¢\",\n \"Т\": \"Т\",\n \"𝔗\": \"ð”—\",\n \"∴\": \"∴\",\n \"Θ\": \"Θ\",\n \"  \": \"âŸâ€Š\",\n \" \": \" \",\n \"∼\": \"∼\",\n \"≃\": \"≃\",\n \"≅\": \"≅\",\n \"≈\": \"≈\",\n \"𝕋\": \"ð•‹\",\n \"⃛\": \"⃛\",\n \"𝒯\": \"ð’¯\",\n \"Ŧ\": \"Ŧ\",\n \"Ú\": \"Ú\",\n \"Ú\": \"Ú\",\n \"↟\": \"↟\",\n \"⥉\": \"⥉\",\n \"Ў\": \"ÐŽ\",\n \"Ŭ\": \"Ŭ\",\n \"Û\": \"Û\",\n \"Û\": \"Û\",\n \"У\": \"У\",\n \"Ű\": \"Å°\",\n \"𝔘\": \"ð”˜\",\n \"Ù\": \"Ù\",\n \"Ù\": \"Ù\",\n \"Ū\": \"Ū\",\n \"_\": \"_\",\n \"⏟\": \"âŸ\",\n \"⎵\": \"⎵\",\n \"⏝\": \"â\",\n \"⋃\": \"⋃\",\n \"⊎\": \"⊎\",\n \"Ų\": \"Ų\",\n \"𝕌\": \"ð•Œ\",\n \"↑\": \"↑\",\n \"⤒\": \"⤒\",\n \"⇅\": \"⇅\",\n \"↕\": \"↕\",\n \"⥮\": \"⥮\",\n \"⊥\": \"⊥\",\n \"↥\": \"↥\",\n \"⇑\": \"⇑\",\n \"⇕\": \"⇕\",\n \"↖\": \"↖\",\n \"↗\": \"↗\",\n \"ϒ\": \"Ï’\",\n \"Υ\": \"Î¥\",\n \"Ů\": \"Å®\",\n \"𝒰\": \"ð’°\",\n \"Ũ\": \"Ũ\",\n \"Ü\": \"Ãœ\",\n \"Ü\": \"Ãœ\",\n \"⊫\": \"⊫\",\n \"⫫\": \"â««\",\n \"В\": \"Ð’\",\n \"⊩\": \"⊩\",\n \"⫦\": \"⫦\",\n \"⋁\": \"â‹\",\n \"‖\": \"‖\",\n \"‖\": \"‖\",\n \"∣\": \"∣\",\n \"|\": \"|\",\n \"❘\": \"â˜\",\n \"≀\": \"≀\",\n \" \": \" \",\n \"𝔙\": \"ð”™\",\n \"𝕍\": \"ð•\",\n \"𝒱\": \"ð’±\",\n \"⊪\": \"⊪\",\n \"Ŵ\": \"Å´\",\n \"⋀\": \"â‹€\",\n \"𝔚\": \"ð”š\",\n \"𝕎\": \"ð•Ž\",\n \"𝒲\": \"ð’²\",\n \"𝔛\": \"ð”›\",\n \"Ξ\": \"Ξ\",\n \"𝕏\": \"ð•\",\n \"𝒳\": \"ð’³\",\n \"Я\": \"Я\",\n \"Ї\": \"Ї\",\n \"Ю\": \"Ю\",\n \"Ý\": \"Ã\",\n \"Ý\": \"Ã\",\n \"Ŷ\": \"Ŷ\",\n \"Ы\": \"Ы\",\n \"𝔜\": \"ð”œ\",\n \"𝕐\": \"ð•\",\n \"𝒴\": \"ð’´\",\n \"Ÿ\": \"Ÿ\",\n \"Ж\": \"Ж\",\n \"Ź\": \"Ź\",\n \"Ž\": \"Ž\",\n \"З\": \"З\",\n \"Ż\": \"Å»\",\n \"​\": \"​\",\n \"Ζ\": \"Ζ\",\n \"ℨ\": \"ℨ\",\n \"ℤ\": \"ℤ\",\n \"𝒵\": \"ð’µ\",\n \"á\": \"á\",\n \"á\": \"á\",\n \"ă\": \"ă\",\n \"∾\": \"∾\",\n \"∾̳\": \"∾̳\",\n \"∿\": \"∿\",\n \"â\": \"â\",\n \"â\": \"â\",\n \"´\": \"´\",\n \"´\": \"´\",\n \"а\": \"а\",\n \"æ\": \"æ\",\n \"æ\": \"æ\",\n \"⁡\": \"â¡\",\n \"𝔞\": \"ð”ž\",\n \"à\": \"à \",\n \"à\": \"à \",\n \"ℵ\": \"ℵ\",\n \"ℵ\": \"ℵ\",\n \"α\": \"α\",\n \"ā\": \"Ä\",\n \"⨿\": \"⨿\",\n \"&\": \"&\",\n \"&\": \"&\",\n \"∧\": \"∧\",\n \"⩕\": \"â©•\",\n \"⩜\": \"â©œ\",\n \"⩘\": \"⩘\",\n \"⩚\": \"â©š\",\n \"∠\": \"∠\",\n \"⦤\": \"⦤\",\n \"∠\": \"∠\",\n \"∡\": \"∡\",\n \"⦨\": \"⦨\",\n \"⦩\": \"⦩\",\n \"⦪\": \"⦪\",\n \"⦫\": \"⦫\",\n \"⦬\": \"⦬\",\n \"⦭\": \"â¦\",\n \"⦮\": \"⦮\",\n \"⦯\": \"⦯\",\n \"∟\": \"∟\",\n \"⊾\": \"⊾\",\n \"⦝\": \"â¦\",\n \"∢\": \"∢\",\n \"Å\": \"Ã…\",\n \"⍼\": \"â¼\",\n \"ą\": \"Ä…\",\n \"𝕒\": \"ð•’\",\n \"≈\": \"≈\",\n \"⩰\": \"â©°\",\n \"⩯\": \"⩯\",\n \"≊\": \"≊\",\n \"≋\": \"≋\",\n \"'\": \"'\",\n \"≈\": \"≈\",\n \"≊\": \"≊\",\n \"å\": \"Ã¥\",\n \"å\": \"Ã¥\",\n \"𝒶\": \"ð’¶\",\n \"*\": \"*\",\n \"≈\": \"≈\",\n \"≍\": \"â‰\",\n \"ã\": \"ã\",\n \"ã\": \"ã\",\n \"ä\": \"ä\",\n \"ä\": \"ä\",\n \"∳\": \"∳\",\n \"⨑\": \"⨑\",\n \"⫭\": \"â«\",\n \"≌\": \"≌\",\n \"϶\": \"϶\",\n \"‵\": \"‵\",\n \"∽\": \"∽\",\n \"⋍\": \"â‹\",\n \"⊽\": \"⊽\",\n \"⌅\": \"⌅\",\n \"⌅\": \"⌅\",\n \"⎵\": \"⎵\",\n \"⎶\": \"⎶\",\n \"≌\": \"≌\",\n \"б\": \"б\",\n \"„\": \"„\",\n \"∵\": \"∵\",\n \"∵\": \"∵\",\n \"⦰\": \"⦰\",\n \"϶\": \"϶\",\n \"ℬ\": \"ℬ\",\n \"β\": \"β\",\n \"ℶ\": \"ℶ\",\n \"≬\": \"≬\",\n \"𝔟\": \"ð”Ÿ\",\n \"⋂\": \"â‹‚\",\n \"◯\": \"â—¯\",\n \"⋃\": \"⋃\",\n \"⨀\": \"⨀\",\n \"⨁\": \"â¨\",\n \"⨂\": \"⨂\",\n \"⨆\": \"⨆\",\n \"★\": \"★\",\n \"▽\": \"â–½\",\n \"△\": \"â–³\",\n \"⨄\": \"⨄\",\n \"⋁\": \"â‹\",\n \"⋀\": \"â‹€\",\n \"⤍\": \"â¤\",\n \"⧫\": \"⧫\",\n \"▪\": \"â–ª\",\n \"▴\": \"â–´\",\n \"▾\": \"â–¾\",\n \"◂\": \"â—‚\",\n \"▸\": \"â–¸\",\n \"␣\": \"â£\",\n \"▒\": \"â–’\",\n \"░\": \"â–‘\",\n \"▓\": \"â–“\",\n \"█\": \"â–ˆ\",\n \"=⃥\": \"=⃥\",\n \"≡⃥\": \"≡⃥\",\n \"⌐\": \"âŒ\",\n \"𝕓\": \"ð•“\",\n \"⊥\": \"⊥\",\n \"⊥\": \"⊥\",\n \"⋈\": \"⋈\",\n \"╗\": \"â•—\",\n \"╔\": \"â•”\",\n \"╖\": \"â•–\",\n \"╓\": \"â•“\",\n \"═\": \"â•\",\n \"╦\": \"╦\",\n \"╩\": \"â•©\",\n \"╤\": \"╤\",\n \"╧\": \"╧\",\n \"╝\": \"â•\",\n \"╚\": \"â•š\",\n \"╜\": \"â•œ\",\n \"╙\": \"â•™\",\n \"║\": \"â•‘\",\n \"╬\": \"╬\",\n \"╣\": \"â•£\",\n \"╠\": \"â• \",\n \"╫\": \"â•«\",\n \"╢\": \"â•¢\",\n \"╟\": \"â•Ÿ\",\n \"⧉\": \"⧉\",\n \"╕\": \"â••\",\n \"╒\": \"â•’\",\n \"┐\": \"â”\",\n \"┌\": \"┌\",\n \"─\": \"─\",\n \"╥\": \"â•¥\",\n \"╨\": \"╨\",\n \"┬\": \"┬\",\n \"┴\": \"â”´\",\n \"⊟\": \"⊟\",\n \"⊞\": \"⊞\",\n \"⊠\": \"⊠\",\n \"╛\": \"â•›\",\n \"╘\": \"╘\",\n \"┘\": \"┘\",\n \"└\": \"â””\",\n \"│\": \"│\",\n \"╪\": \"╪\",\n \"╡\": \"â•¡\",\n \"╞\": \"â•ž\",\n \"┼\": \"┼\",\n \"┤\": \"┤\",\n \"├\": \"├\",\n \"‵\": \"‵\",\n \"˘\": \"˘\",\n \"¦\": \"¦\",\n \"¦\": \"¦\",\n \"𝒷\": \"ð’·\",\n \"⁏\": \"â\",\n \"∽\": \"∽\",\n \"⋍\": \"â‹\",\n \"\\": \"\\\\\",\n \"⧅\": \"⧅\",\n \"⟈\": \"⟈\",\n \"•\": \"•\",\n \"•\": \"•\",\n \"≎\": \"≎\",\n \"⪮\": \"⪮\",\n \"≏\": \"â‰\",\n \"≏\": \"â‰\",\n \"ć\": \"ć\",\n \"∩\": \"∩\",\n \"⩄\": \"â©„\",\n \"⩉\": \"⩉\",\n \"⩋\": \"â©‹\",\n \"⩇\": \"⩇\",\n \"⩀\": \"â©€\",\n \"∩︀\": \"∩︀\",\n \"⁁\": \"â\",\n \"ˇ\": \"ˇ\",\n \"⩍\": \"â©\",\n \"č\": \"Ä\",\n \"ç\": \"ç\",\n \"ç\": \"ç\",\n \"ĉ\": \"ĉ\",\n \"⩌\": \"â©Œ\",\n \"⩐\": \"â©\",\n \"ċ\": \"Ä‹\",\n \"¸\": \"¸\",\n \"¸\": \"¸\",\n \"⦲\": \"⦲\",\n \"¢\": \"¢\",\n \"¢\": \"¢\",\n \"·\": \"·\",\n \"𝔠\": \"ð” \",\n \"ч\": \"ч\",\n \"✓\": \"✓\",\n \"✓\": \"✓\",\n \"χ\": \"χ\",\n \"○\": \"â—‹\",\n \"⧃\": \"⧃\",\n \"ˆ\": \"ˆ\",\n \"≗\": \"≗\",\n \"↺\": \"↺\",\n \"↻\": \"↻\",\n \"®\": \"®\",\n \"Ⓢ\": \"Ⓢ\",\n \"⊛\": \"⊛\",\n \"⊚\": \"⊚\",\n \"⊝\": \"âŠ\",\n \"≗\": \"≗\",\n \"⨐\": \"â¨\",\n \"⫯\": \"⫯\",\n \"⧂\": \"⧂\",\n \"♣\": \"♣\",\n \"♣\": \"♣\",\n \":\": \":\",\n \"≔\": \"≔\",\n \"≔\": \"≔\",\n \",\": \",\",\n \"@\": \"@\",\n \"∁\": \"âˆ\",\n \"∘\": \"∘\",\n \"∁\": \"âˆ\",\n \"ℂ\": \"â„‚\",\n \"≅\": \"≅\",\n \"⩭\": \"â©\",\n \"∮\": \"∮\",\n \"𝕔\": \"ð•”\",\n \"∐\": \"âˆ\",\n \"©\": \"©\",\n \"©\": \"©\",\n \"℗\": \"â„—\",\n \"↵\": \"↵\",\n \"✗\": \"✗\",\n \"𝒸\": \"ð’¸\",\n \"⫏\": \"â«\",\n \"⫑\": \"â«‘\",\n \"⫐\": \"â«\",\n \"⫒\": \"â«’\",\n \"⋯\": \"⋯\",\n \"⤸\": \"⤸\",\n \"⤵\": \"⤵\",\n \"⋞\": \"â‹ž\",\n \"⋟\": \"â‹Ÿ\",\n \"↶\": \"↶\",\n \"⤽\": \"⤽\",\n \"∪\": \"∪\",\n \"⩈\": \"⩈\",\n \"⩆\": \"⩆\",\n \"⩊\": \"â©Š\",\n \"⊍\": \"âŠ\",\n \"⩅\": \"â©…\",\n \"∪︀\": \"∪︀\",\n \"↷\": \"↷\",\n \"⤼\": \"⤼\",\n \"⋞\": \"â‹ž\",\n \"⋟\": \"â‹Ÿ\",\n \"⋎\": \"â‹Ž\",\n \"⋏\": \"â‹\",\n \"¤\": \"¤\",\n \"¤\": \"¤\",\n \"↶\": \"↶\",\n \"↷\": \"↷\",\n \"⋎\": \"â‹Ž\",\n \"⋏\": \"â‹\",\n \"∲\": \"∲\",\n \"∱\": \"∱\",\n \"⌭\": \"âŒ\",\n \"⇓\": \"⇓\",\n \"⥥\": \"⥥\",\n \"†\": \"†\",\n \"ℸ\": \"ℸ\",\n \"↓\": \"↓\",\n \"‐\": \"â€\",\n \"⊣\": \"⊣\",\n \"⤏\": \"â¤\",\n \"˝\": \"Ë\",\n \"ď\": \"Ä\",\n \"д\": \"д\",\n \"ⅆ\": \"â…†\",\n \"‡\": \"‡\",\n \"⇊\": \"⇊\",\n \"⩷\": \"â©·\",\n \"°\": \"°\",\n \"°\": \"°\",\n \"δ\": \"δ\",\n \"⦱\": \"⦱\",\n \"⥿\": \"⥿\",\n \"𝔡\": \"ð”¡\",\n \"⇃\": \"⇃\",\n \"⇂\": \"⇂\",\n \"⋄\": \"â‹„\",\n \"⋄\": \"â‹„\",\n \"♦\": \"♦\",\n \"♦\": \"♦\",\n \"¨\": \"¨\",\n \"ϝ\": \"Ï\",\n \"⋲\": \"⋲\",\n \"÷\": \"÷\",\n \"÷\": \"÷\",\n \"÷\": \"÷\",\n \"⋇\": \"⋇\",\n \"⋇\": \"⋇\",\n \"ђ\": \"Ñ’\",\n \"⌞\": \"⌞\",\n \"⌍\": \"âŒ\",\n \"$\": \"$\",\n \"𝕕\": \"ð••\",\n \"˙\": \"Ë™\",\n \"≐\": \"â‰\",\n \"≑\": \"≑\",\n \"∸\": \"∸\",\n \"∔\": \"∔\",\n \"⊡\": \"⊡\",\n \"⌆\": \"⌆\",\n \"↓\": \"↓\",\n \"⇊\": \"⇊\",\n \"⇃\": \"⇃\",\n \"⇂\": \"⇂\",\n \"⤐\": \"â¤\",\n \"⌟\": \"⌟\",\n \"⌌\": \"⌌\",\n \"𝒹\": \"ð’¹\",\n \"ѕ\": \"Ñ•\",\n \"⧶\": \"⧶\",\n \"đ\": \"Ä‘\",\n \"⋱\": \"⋱\",\n \"▿\": \"â–¿\",\n \"▾\": \"â–¾\",\n \"⇵\": \"⇵\",\n \"⥯\": \"⥯\",\n \"⦦\": \"⦦\",\n \"џ\": \"ÑŸ\",\n \"⟿\": \"⟿\",\n \"⩷\": \"â©·\",\n \"≑\": \"≑\",\n \"é\": \"é\",\n \"é\": \"é\",\n \"⩮\": \"â©®\",\n \"ě\": \"Ä›\",\n \"≖\": \"≖\",\n \"ê\": \"ê\",\n \"ê\": \"ê\",\n \"≕\": \"≕\",\n \"э\": \"Ñ\",\n \"ė\": \"Ä—\",\n \"ⅇ\": \"â…‡\",\n \"≒\": \"≒\",\n \"𝔢\": \"ð”¢\",\n \"⪚\": \"⪚\",\n \"è\": \"è\",\n \"è\": \"è\",\n \"⪖\": \"⪖\",\n \"⪘\": \"⪘\",\n \"⪙\": \"⪙\",\n \"⏧\": \"â§\",\n \"ℓ\": \"â„“\",\n \"⪕\": \"⪕\",\n \"⪗\": \"⪗\",\n \"ē\": \"Ä“\",\n \"∅\": \"∅\",\n \"∅\": \"∅\",\n \"∅\": \"∅\",\n \" \": \" \",\n \" \": \" \",\n \" \": \" \",\n \"ŋ\": \"Å‹\",\n \" \": \" \",\n \"ę\": \"Ä™\",\n \"𝕖\": \"ð•–\",\n \"⋕\": \"â‹•\",\n \"⧣\": \"⧣\",\n \"⩱\": \"⩱\",\n \"ε\": \"ε\",\n \"ε\": \"ε\",\n \"ϵ\": \"ϵ\",\n \"≖\": \"≖\",\n \"≕\": \"≕\",\n \"≂\": \"≂\",\n \"⪖\": \"⪖\",\n \"⪕\": \"⪕\",\n \"=\": \"=\",\n \"≟\": \"≟\",\n \"≡\": \"≡\",\n \"⩸\": \"⩸\",\n \"⧥\": \"⧥\",\n \"≓\": \"≓\",\n \"⥱\": \"⥱\",\n \"ℯ\": \"ℯ\",\n \"≐\": \"â‰\",\n \"≂\": \"≂\",\n \"η\": \"η\",\n \"ð\": \"ð\",\n \"ð\": \"ð\",\n \"ë\": \"ë\",\n \"ë\": \"ë\",\n \"€\": \"€\",\n \"!\": \"!\",\n \"∃\": \"∃\",\n \"ℰ\": \"â„°\",\n \"ⅇ\": \"â…‡\",\n \"≒\": \"≒\",\n \"ф\": \"Ñ„\",\n \"♀\": \"♀\",\n \"ffi\": \"ffi\",\n \"ff\": \"ff\",\n \"ffl\": \"ffl\",\n \"𝔣\": \"ð”£\",\n \"fi\": \"ï¬\",\n \"fj\": \"fj\",\n \"♭\": \"â™\",\n \"fl\": \"fl\",\n \"▱\": \"â–±\",\n \"ƒ\": \"Æ’\",\n \"𝕗\": \"ð•—\",\n \"∀\": \"∀\",\n \"⋔\": \"â‹”\",\n \"⫙\": \"â«™\",\n \"⨍\": \"â¨\",\n \"½\": \"½\",\n \"½\": \"½\",\n \"⅓\": \"â…“\",\n \"¼\": \"¼\",\n \"¼\": \"¼\",\n \"⅕\": \"â…•\",\n \"⅙\": \"â…™\",\n \"⅛\": \"â…›\",\n \"⅔\": \"â…”\",\n \"⅖\": \"â…–\",\n \"¾\": \"¾\",\n \"¾\": \"¾\",\n \"⅗\": \"â…—\",\n \"⅜\": \"â…œ\",\n \"⅘\": \"â…˜\",\n \"⅚\": \"â…š\",\n \"⅝\": \"â…\",\n \"⅞\": \"â…ž\",\n \"⁄\": \"â„\",\n \"⌢\": \"⌢\",\n \"𝒻\": \"ð’»\",\n \"≧\": \"≧\",\n \"⪌\": \"⪌\",\n \"ǵ\": \"ǵ\",\n \"γ\": \"γ\",\n \"ϝ\": \"Ï\",\n \"⪆\": \"⪆\",\n \"ğ\": \"ÄŸ\",\n \"ĝ\": \"Ä\",\n \"г\": \"г\",\n \"ġ\": \"Ä¡\",\n \"≥\": \"≥\",\n \"⋛\": \"â‹›\",\n \"≥\": \"≥\",\n \"≧\": \"≧\",\n \"⩾\": \"⩾\",\n \"⩾\": \"⩾\",\n \"⪩\": \"⪩\",\n \"⪀\": \"⪀\",\n \"⪂\": \"⪂\",\n \"⪄\": \"⪄\",\n \"⋛︀\": \"⋛︀\",\n \"⪔\": \"⪔\",\n \"𝔤\": \"ð”¤\",\n \"≫\": \"≫\",\n \"⋙\": \"â‹™\",\n \"ℷ\": \"â„·\",\n \"ѓ\": \"Ñ“\",\n \"≷\": \"≷\",\n \"⪒\": \"⪒\",\n \"⪥\": \"⪥\",\n \"⪤\": \"⪤\",\n \"≩\": \"≩\",\n \"⪊\": \"⪊\",\n \"⪊\": \"⪊\",\n \"⪈\": \"⪈\",\n \"⪈\": \"⪈\",\n \"≩\": \"≩\",\n \"⋧\": \"⋧\",\n \"𝕘\": \"ð•˜\",\n \"`\": \"`\",\n \"ℊ\": \"â„Š\",\n \"≳\": \"≳\",\n \"⪎\": \"⪎\",\n \"⪐\": \"âª\",\n \">\": \">\",\n \">\": \">\",\n \"⪧\": \"⪧\",\n \"⩺\": \"⩺\",\n \"⋗\": \"â‹—\",\n \"⦕\": \"⦕\",\n \"⩼\": \"⩼\",\n \"⪆\": \"⪆\",\n \"⥸\": \"⥸\",\n \"⋗\": \"â‹—\",\n \"⋛\": \"â‹›\",\n \"⪌\": \"⪌\",\n \"≷\": \"≷\",\n \"≳\": \"≳\",\n \"≩︀\": \"≩︀\",\n \"≩︀\": \"≩︀\",\n \"⇔\": \"⇔\",\n \" \": \" \",\n \"½\": \"½\",\n \"ℋ\": \"â„‹\",\n \"ъ\": \"ÑŠ\",\n \"↔\": \"↔\",\n \"⥈\": \"⥈\",\n \"↭\": \"â†\",\n \"ℏ\": \"â„\",\n \"ĥ\": \"Ä¥\",\n \"♥\": \"♥\",\n \"♥\": \"♥\",\n \"…\": \"…\",\n \"⊹\": \"⊹\",\n \"𝔥\": \"ð”¥\",\n \"⤥\": \"⤥\",\n \"⤦\": \"⤦\",\n \"⇿\": \"⇿\",\n \"∻\": \"∻\",\n \"↩\": \"↩\",\n \"↪\": \"↪\",\n \"𝕙\": \"ð•™\",\n \"―\": \"―\",\n \"𝒽\": \"ð’½\",\n \"ℏ\": \"â„\",\n \"ħ\": \"ħ\",\n \"⁃\": \"âƒ\",\n \"‐\": \"â€\",\n \"í\": \"Ã\",\n \"í\": \"Ã\",\n \"⁣\": \"â£\",\n \"î\": \"î\",\n \"î\": \"î\",\n \"и\": \"и\",\n \"е\": \"е\",\n \"¡\": \"¡\",\n \"¡\": \"¡\",\n \"⇔\": \"⇔\",\n \"𝔦\": \"ð”¦\",\n \"ì\": \"ì\",\n \"ì\": \"ì\",\n \"ⅈ\": \"â…ˆ\",\n \"⨌\": \"⨌\",\n \"∭\": \"âˆ\",\n \"⧜\": \"⧜\",\n \"℩\": \"â„©\",\n \"ij\": \"ij\",\n \"ī\": \"Ä«\",\n \"ℑ\": \"â„‘\",\n \"ℐ\": \"â„\",\n \"ℑ\": \"â„‘\",\n \"ı\": \"ı\",\n \"⊷\": \"⊷\",\n \"Ƶ\": \"Ƶ\",\n \"∈\": \"∈\",\n \"℅\": \"â„…\",\n \"∞\": \"∞\",\n \"⧝\": \"â§\",\n \"ı\": \"ı\",\n \"∫\": \"∫\",\n \"⊺\": \"⊺\",\n \"ℤ\": \"ℤ\",\n \"⊺\": \"⊺\",\n \"⨗\": \"⨗\",\n \"⨼\": \"⨼\",\n \"ё\": \"Ñ‘\",\n \"į\": \"į\",\n \"𝕚\": \"ð•š\",\n \"ι\": \"ι\",\n \"⨼\": \"⨼\",\n \"¿\": \"¿\",\n \"¿\": \"¿\",\n \"𝒾\": \"ð’¾\",\n \"∈\": \"∈\",\n \"⋹\": \"⋹\",\n \"⋵\": \"⋵\",\n \"⋴\": \"â‹´\",\n \"⋳\": \"⋳\",\n \"∈\": \"∈\",\n \"⁢\": \"â¢\",\n \"ĩ\": \"Ä©\",\n \"і\": \"Ñ–\",\n \"ï\": \"ï\",\n \"ï\": \"ï\",\n \"ĵ\": \"ĵ\",\n \"й\": \"й\",\n \"𝔧\": \"ð”§\",\n \"ȷ\": \"È·\",\n \"𝕛\": \"ð•›\",\n \"𝒿\": \"ð’¿\",\n \"ј\": \"ј\",\n \"є\": \"Ñ”\",\n \"κ\": \"κ\",\n \"ϰ\": \"Ï°\",\n \"ķ\": \"Ä·\",\n \"к\": \"к\",\n \"𝔨\": \"ð”¨\",\n \"ĸ\": \"ĸ\",\n \"х\": \"Ñ…\",\n \"ќ\": \"Ñœ\",\n \"𝕜\": \"ð•œ\",\n \"𝓀\": \"ð“€\",\n \"⇚\": \"⇚\",\n \"⇐\": \"â‡\",\n \"⤛\": \"⤛\",\n \"⤎\": \"⤎\",\n \"≦\": \"≦\",\n \"⪋\": \"⪋\",\n \"⥢\": \"⥢\",\n \"ĺ\": \"ĺ\",\n \"⦴\": \"⦴\",\n \"ℒ\": \"â„’\",\n \"λ\": \"λ\",\n \"⟨\": \"⟨\",\n \"⦑\": \"⦑\",\n \"⟨\": \"⟨\",\n \"⪅\": \"⪅\",\n \"«\": \"«\",\n \"«\": \"«\",\n \"←\": \"â†\",\n \"⇤\": \"⇤\",\n \"⤟\": \"⤟\",\n \"⤝\": \"â¤\",\n \"↩\": \"↩\",\n \"↫\": \"↫\",\n \"⤹\": \"⤹\",\n \"⥳\": \"⥳\",\n \"↢\": \"↢\",\n \"⪫\": \"⪫\",\n \"⤙\": \"⤙\",\n \"⪭\": \"âª\",\n \"⪭︀\": \"âªï¸€\",\n \"⤌\": \"⤌\",\n \"❲\": \"â²\",\n \"{\": \"{\",\n \"[\": \"[\",\n \"⦋\": \"⦋\",\n \"⦏\": \"â¦\",\n \"⦍\": \"â¦\",\n \"ľ\": \"ľ\",\n \"ļ\": \"ļ\",\n \"⌈\": \"⌈\",\n \"{\": \"{\",\n \"л\": \"л\",\n \"⤶\": \"⤶\",\n \"“\": \"“\",\n \"„\": \"„\",\n \"⥧\": \"⥧\",\n \"⥋\": \"⥋\",\n \"↲\": \"↲\",\n \"≤\": \"≤\",\n \"←\": \"â†\",\n \"↢\": \"↢\",\n \"↽\": \"↽\",\n \"↼\": \"↼\",\n \"⇇\": \"⇇\",\n \"↔\": \"↔\",\n \"⇆\": \"⇆\",\n \"⇋\": \"⇋\",\n \"↭\": \"â†\",\n \"⋋\": \"â‹‹\",\n \"⋚\": \"â‹š\",\n \"≤\": \"≤\",\n \"≦\": \"≦\",\n \"⩽\": \"⩽\",\n \"⩽\": \"⩽\",\n \"⪨\": \"⪨\",\n \"⩿\": \"â©¿\",\n \"⪁\": \"âª\",\n \"⪃\": \"⪃\",\n \"⋚︀\": \"⋚︀\",\n \"⪓\": \"⪓\",\n \"⪅\": \"⪅\",\n \"⋖\": \"â‹–\",\n \"⋚\": \"â‹š\",\n \"⪋\": \"⪋\",\n \"≶\": \"≶\",\n \"≲\": \"≲\",\n \"⥼\": \"⥼\",\n \"⌊\": \"⌊\",\n \"𝔩\": \"ð”©\",\n \"≶\": \"≶\",\n \"⪑\": \"⪑\",\n \"↽\": \"↽\",\n \"↼\": \"↼\",\n \"⥪\": \"⥪\",\n \"▄\": \"â–„\",\n \"љ\": \"Ñ™\",\n \"≪\": \"≪\",\n \"⇇\": \"⇇\",\n \"⌞\": \"⌞\",\n \"⥫\": \"⥫\",\n \"◺\": \"â—º\",\n \"ŀ\": \"Å€\",\n \"⎰\": \"⎰\",\n \"⎰\": \"⎰\",\n \"≨\": \"≨\",\n \"⪉\": \"⪉\",\n \"⪉\": \"⪉\",\n \"⪇\": \"⪇\",\n \"⪇\": \"⪇\",\n \"≨\": \"≨\",\n \"⋦\": \"⋦\",\n \"⟬\": \"⟬\",\n \"⇽\": \"⇽\",\n \"⟦\": \"⟦\",\n \"⟵\": \"⟵\",\n \"⟷\": \"⟷\",\n \"⟼\": \"⟼\",\n \"⟶\": \"⟶\",\n \"↫\": \"↫\",\n \"↬\": \"↬\",\n \"⦅\": \"⦅\",\n \"𝕝\": \"ð•\",\n \"⨭\": \"â¨\",\n \"⨴\": \"⨴\",\n \"∗\": \"∗\",\n \"_\": \"_\",\n \"◊\": \"â—Š\",\n \"◊\": \"â—Š\",\n \"⧫\": \"⧫\",\n \"(\": \"(\",\n \"⦓\": \"⦓\",\n \"⇆\": \"⇆\",\n \"⌟\": \"⌟\",\n \"⇋\": \"⇋\",\n \"⥭\": \"â¥\",\n \"‎\": \"‎\",\n \"⊿\": \"⊿\",\n \"‹\": \"‹\",\n \"𝓁\": \"ð“\",\n \"↰\": \"↰\",\n \"≲\": \"≲\",\n \"⪍\": \"âª\",\n \"⪏\": \"âª\",\n \"[\": \"[\",\n \"‘\": \"‘\",\n \"‚\": \"‚\",\n \"ł\": \"Å‚\",\n \"<\": \"<\",\n \"<\": \"<\",\n \"⪦\": \"⪦\",\n \"⩹\": \"⩹\",\n \"⋖\": \"â‹–\",\n \"⋋\": \"â‹‹\",\n \"⋉\": \"⋉\",\n \"⥶\": \"⥶\",\n \"⩻\": \"â©»\",\n \"⦖\": \"⦖\",\n \"◃\": \"â—ƒ\",\n \"⊴\": \"⊴\",\n \"◂\": \"â—‚\",\n \"⥊\": \"⥊\",\n \"⥦\": \"⥦\",\n \"≨︀\": \"≨︀\",\n \"≨︀\": \"≨︀\",\n \"∺\": \"∺\",\n \"¯\": \"¯\",\n \"¯\": \"¯\",\n \"♂\": \"♂\",\n \"✠\": \"✠\",\n \"✠\": \"✠\",\n \"↦\": \"↦\",\n \"↦\": \"↦\",\n \"↧\": \"↧\",\n \"↤\": \"↤\",\n \"↥\": \"↥\",\n \"▮\": \"â–®\",\n \"⨩\": \"⨩\",\n \"м\": \"м\",\n \"—\": \"—\",\n \"∡\": \"∡\",\n \"𝔪\": \"ð”ª\",\n \"℧\": \"℧\",\n \"µ\": \"µ\",\n \"µ\": \"µ\",\n \"∣\": \"∣\",\n \"*\": \"*\",\n \"⫰\": \"â«°\",\n \"·\": \"·\",\n \"·\": \"·\",\n \"−\": \"−\",\n \"⊟\": \"⊟\",\n \"∸\": \"∸\",\n \"⨪\": \"⨪\",\n \"⫛\": \"â«›\",\n \"…\": \"…\",\n \"∓\": \"∓\",\n \"⊧\": \"⊧\",\n \"𝕞\": \"ð•ž\",\n \"∓\": \"∓\",\n \"𝓂\": \"ð“‚\",\n \"∾\": \"∾\",\n \"μ\": \"μ\",\n \"⊸\": \"⊸\",\n \"⊸\": \"⊸\",\n \"⋙̸\": \"⋙̸\",\n \"≫⃒\": \"≫⃒\",\n \"≫̸\": \"≫̸\",\n \"⇍\": \"â‡\",\n \"⇎\": \"⇎\",\n \"⋘̸\": \"⋘̸\",\n \"≪⃒\": \"≪⃒\",\n \"≪̸\": \"≪̸\",\n \"⇏\": \"â‡\",\n \"⊯\": \"⊯\",\n \"⊮\": \"⊮\",\n \"∇\": \"∇\",\n \"ń\": \"Å„\",\n \"∠⃒\": \"∠⃒\",\n \"≉\": \"≉\",\n \"⩰̸\": \"⩰̸\",\n \"≋̸\": \"≋̸\",\n \"ʼn\": \"ʼn\",\n \"≉\": \"≉\",\n \"♮\": \"â™®\",\n \"♮\": \"â™®\",\n \"ℕ\": \"â„•\",\n \" \": \" \",\n \" \": \" \",\n \"≎̸\": \"≎̸\",\n \"≏̸\": \"â‰Ì¸\",\n \"⩃\": \"⩃\",\n \"ň\": \"ň\",\n \"ņ\": \"ņ\",\n \"≇\": \"≇\",\n \"⩭̸\": \"â©Ì¸\",\n \"⩂\": \"â©‚\",\n \"н\": \"н\",\n \"–\": \"–\",\n \"≠\": \"≠\",\n \"⇗\": \"⇗\",\n \"⤤\": \"⤤\",\n \"↗\": \"↗\",\n \"↗\": \"↗\",\n \"≐̸\": \"â‰Ì¸\",\n \"≢\": \"≢\",\n \"⤨\": \"⤨\",\n \"≂̸\": \"≂̸\",\n \"∄\": \"∄\",\n \"∄\": \"∄\",\n \"𝔫\": \"ð”«\",\n \"≧̸\": \"≧̸\",\n \"≱\": \"≱\",\n \"≱\": \"≱\",\n \"≧̸\": \"≧̸\",\n \"⩾̸\": \"⩾̸\",\n \"⩾̸\": \"⩾̸\",\n \"≵\": \"≵\",\n \"≯\": \"≯\",\n \"≯\": \"≯\",\n \"⇎\": \"⇎\",\n \"↮\": \"↮\",\n \"⫲\": \"⫲\",\n \"∋\": \"∋\",\n \"⋼\": \"⋼\",\n \"⋺\": \"⋺\",\n \"∋\": \"∋\",\n \"њ\": \"Ñš\",\n \"⇍\": \"â‡\",\n \"≦̸\": \"≦̸\",\n \"↚\": \"↚\",\n \"‥\": \"‥\",\n \"≰\": \"≰\",\n \"↚\": \"↚\",\n \"↮\": \"↮\",\n \"≰\": \"≰\",\n \"≦̸\": \"≦̸\",\n \"⩽̸\": \"⩽̸\",\n \"⩽̸\": \"⩽̸\",\n \"≮\": \"≮\",\n \"≴\": \"≴\",\n \"≮\": \"≮\",\n \"⋪\": \"⋪\",\n \"⋬\": \"⋬\",\n \"∤\": \"∤\",\n \"𝕟\": \"ð•Ÿ\",\n \"¬\": \"¬\",\n \"¬\": \"¬\",\n \"∉\": \"∉\",\n \"⋹̸\": \"⋹̸\",\n \"⋵̸\": \"⋵̸\",\n \"∉\": \"∉\",\n \"⋷\": \"â‹·\",\n \"⋶\": \"⋶\",\n \"∌\": \"∌\",\n \"∌\": \"∌\",\n \"⋾\": \"⋾\",\n \"⋽\": \"⋽\",\n \"∦\": \"∦\",\n \"∦\": \"∦\",\n \"⫽⃥\": \"⫽⃥\",\n \"∂̸\": \"∂̸\",\n \"⨔\": \"⨔\",\n \"⊀\": \"⊀\",\n \"⋠\": \"â‹ \",\n \"⪯̸\": \"⪯̸\",\n \"⊀\": \"⊀\",\n \"⪯̸\": \"⪯̸\",\n \"⇏\": \"â‡\",\n \"↛\": \"↛\",\n \"⤳̸\": \"⤳̸\",\n \"↝̸\": \"â†Ì¸\",\n \"↛\": \"↛\",\n \"⋫\": \"â‹«\",\n \"⋭\": \"â‹\",\n \"⊁\": \"âŠ\",\n \"⋡\": \"â‹¡\",\n \"⪰̸\": \"⪰̸\",\n \"𝓃\": \"ð“ƒ\",\n \"∤\": \"∤\",\n \"∦\": \"∦\",\n \"≁\": \"â‰\",\n \"≄\": \"≄\",\n \"≄\": \"≄\",\n \"∤\": \"∤\",\n \"∦\": \"∦\",\n \"⋢\": \"â‹¢\",\n \"⋣\": \"â‹£\",\n \"⊄\": \"⊄\",\n \"⫅̸\": \"⫅̸\",\n \"⊈\": \"⊈\",\n \"⊂⃒\": \"⊂⃒\",\n \"⊈\": \"⊈\",\n \"⫅̸\": \"⫅̸\",\n \"⊁\": \"âŠ\",\n \"⪰̸\": \"⪰̸\",\n \"⊅\": \"⊅\",\n \"⫆̸\": \"⫆̸\",\n \"⊉\": \"⊉\",\n \"⊃⃒\": \"⊃⃒\",\n \"⊉\": \"⊉\",\n \"⫆̸\": \"⫆̸\",\n \"≹\": \"≹\",\n \"ñ\": \"ñ\",\n \"ñ\": \"ñ\",\n \"≸\": \"≸\",\n \"⋪\": \"⋪\",\n \"⋬\": \"⋬\",\n \"⋫\": \"â‹«\",\n \"⋭\": \"â‹\",\n \"ν\": \"ν\",\n \"#\": \"#\",\n \"№\": \"â„–\",\n \" \": \" \",\n \"⊭\": \"âŠ\",\n \"⤄\": \"⤄\",\n \"≍⃒\": \"â‰âƒ’\",\n \"⊬\": \"⊬\",\n \"≥⃒\": \"≥⃒\",\n \">⃒\": \">⃒\",\n \"⧞\": \"⧞\",\n \"⤂\": \"⤂\",\n \"≤⃒\": \"≤⃒\",\n \"<⃒\": \"<⃒\",\n \"⊴⃒\": \"⊴⃒\",\n \"⤃\": \"⤃\",\n \"⊵⃒\": \"⊵⃒\",\n \"∼⃒\": \"∼⃒\",\n \"⇖\": \"⇖\",\n \"⤣\": \"⤣\",\n \"↖\": \"↖\",\n \"↖\": \"↖\",\n \"⤧\": \"⤧\",\n \"Ⓢ\": \"Ⓢ\",\n \"ó\": \"ó\",\n \"ó\": \"ó\",\n \"⊛\": \"⊛\",\n \"⊚\": \"⊚\",\n \"ô\": \"ô\",\n \"ô\": \"ô\",\n \"о\": \"о\",\n \"⊝\": \"âŠ\",\n \"ő\": \"Å‘\",\n \"⨸\": \"⨸\",\n \"⊙\": \"⊙\",\n \"⦼\": \"⦼\",\n \"œ\": \"Å“\",\n \"⦿\": \"⦿\",\n \"𝔬\": \"ð”¬\",\n \"˛\": \"Ë›\",\n \"ò\": \"ò\",\n \"ò\": \"ò\",\n \"⧁\": \"â§\",\n \"⦵\": \"⦵\",\n \"Ω\": \"Ω\",\n \"∮\": \"∮\",\n \"↺\": \"↺\",\n \"⦾\": \"⦾\",\n \"⦻\": \"⦻\",\n \"‾\": \"‾\",\n \"⧀\": \"⧀\",\n \"ō\": \"Å\",\n \"ω\": \"ω\",\n \"ο\": \"ο\",\n \"⦶\": \"⦶\",\n \"⊖\": \"⊖\",\n \"𝕠\": \"ð• \",\n \"⦷\": \"⦷\",\n \"⦹\": \"⦹\",\n \"⊕\": \"⊕\",\n \"∨\": \"∨\",\n \"↻\": \"↻\",\n \"⩝\": \"â©\",\n \"ℴ\": \"â„´\",\n \"ℴ\": \"â„´\",\n \"ª\": \"ª\",\n \"ª\": \"ª\",\n \"º\": \"º\",\n \"º\": \"º\",\n \"⊶\": \"⊶\",\n \"⩖\": \"â©–\",\n \"⩗\": \"â©—\",\n \"⩛\": \"â©›\",\n \"ℴ\": \"â„´\",\n \"ø\": \"ø\",\n \"ø\": \"ø\",\n \"⊘\": \"⊘\",\n \"õ\": \"õ\",\n \"õ\": \"õ\",\n \"⊗\": \"⊗\",\n \"⨶\": \"⨶\",\n \"ö\": \"ö\",\n \"ö\": \"ö\",\n \"⌽\": \"⌽\",\n \"∥\": \"∥\",\n \"¶\": \"¶\",\n \"¶\": \"¶\",\n \"∥\": \"∥\",\n \"⫳\": \"⫳\",\n \"⫽\": \"⫽\",\n \"∂\": \"∂\",\n \"п\": \"п\",\n \"%\": \"%\",\n \".\": \".\",\n \"‰\": \"‰\",\n \"⊥\": \"⊥\",\n \"‱\": \"‱\",\n \"𝔭\": \"ð”\",\n \"φ\": \"φ\",\n \"ϕ\": \"Ï•\",\n \"ℳ\": \"ℳ\",\n \"☎\": \"☎\",\n \"π\": \"Ï€\",\n \"⋔\": \"â‹”\",\n \"ϖ\": \"Ï–\",\n \"ℏ\": \"â„\",\n \"ℎ\": \"â„Ž\",\n \"ℏ\": \"â„\",\n \"+\": \"+\",\n \"⨣\": \"⨣\",\n \"⊞\": \"⊞\",\n \"⨢\": \"⨢\",\n \"∔\": \"∔\",\n \"⨥\": \"⨥\",\n \"⩲\": \"⩲\",\n \"±\": \"±\",\n \"±\": \"±\",\n \"⨦\": \"⨦\",\n \"⨧\": \"⨧\",\n \"±\": \"±\",\n \"⨕\": \"⨕\",\n \"𝕡\": \"ð•¡\",\n \"£\": \"£\",\n \"£\": \"£\",\n \"≺\": \"≺\",\n \"⪳\": \"⪳\",\n \"⪷\": \"⪷\",\n \"≼\": \"≼\",\n \"⪯\": \"⪯\",\n \"≺\": \"≺\",\n \"⪷\": \"⪷\",\n \"≼\": \"≼\",\n \"⪯\": \"⪯\",\n \"⪹\": \"⪹\",\n \"⪵\": \"⪵\",\n \"⋨\": \"⋨\",\n \"≾\": \"≾\",\n \"′\": \"′\",\n \"ℙ\": \"â„™\",\n \"⪵\": \"⪵\",\n \"⪹\": \"⪹\",\n \"⋨\": \"⋨\",\n \"∏\": \"âˆ\",\n \"⌮\": \"⌮\",\n \"⌒\": \"⌒\",\n \"⌓\": \"⌓\",\n \"∝\": \"âˆ\",\n \"∝\": \"âˆ\",\n \"≾\": \"≾\",\n \"⊰\": \"⊰\",\n \"𝓅\": \"ð“…\",\n \"ψ\": \"ψ\",\n \" \": \" \",\n \"𝔮\": \"ð”®\",\n \"⨌\": \"⨌\",\n \"𝕢\": \"ð•¢\",\n \"⁗\": \"â—\",\n \"𝓆\": \"ð“†\",\n \"ℍ\": \"â„\",\n \"⨖\": \"⨖\",\n \"?\": \"?\",\n \"≟\": \"≟\",\n \""\": '\"',\n \""\": '\"',\n \"⇛\": \"⇛\",\n \"⇒\": \"⇒\",\n \"⤜\": \"⤜\",\n \"⤏\": \"â¤\",\n \"⥤\": \"⥤\",\n \"∽̱\": \"∽̱\",\n \"ŕ\": \"Å•\",\n \"√\": \"√\",\n \"⦳\": \"⦳\",\n \"⟩\": \"⟩\",\n \"⦒\": \"⦒\",\n \"⦥\": \"⦥\",\n \"⟩\": \"⟩\",\n \"»\": \"»\",\n \"»\": \"»\",\n \"→\": \"→\",\n \"⥵\": \"⥵\",\n \"⇥\": \"⇥\",\n \"⤠\": \"⤠\",\n \"⤳\": \"⤳\",\n \"⤞\": \"⤞\",\n \"↪\": \"↪\",\n \"↬\": \"↬\",\n \"⥅\": \"⥅\",\n \"⥴\": \"⥴\",\n \"↣\": \"↣\",\n \"↝\": \"â†\",\n \"⤚\": \"⤚\",\n \"∶\": \"∶\",\n \"ℚ\": \"â„š\",\n \"⤍\": \"â¤\",\n \"❳\": \"â³\",\n \"}\": \"}\",\n \"]\": \"]\",\n \"⦌\": \"⦌\",\n \"⦎\": \"⦎\",\n \"⦐\": \"â¦\",\n \"ř\": \"Å™\",\n \"ŗ\": \"Å—\",\n \"⌉\": \"⌉\",\n \"}\": \"}\",\n \"р\": \"Ñ€\",\n \"⤷\": \"⤷\",\n \"⥩\": \"⥩\",\n \"”\": \"â€\",\n \"”\": \"â€\",\n \"↳\": \"↳\",\n \"ℜ\": \"â„œ\",\n \"ℛ\": \"â„›\",\n \"ℜ\": \"â„œ\",\n \"ℝ\": \"â„\",\n \"▭\": \"â–\",\n \"®\": \"®\",\n \"®\": \"®\",\n \"⥽\": \"⥽\",\n \"⌋\": \"⌋\",\n \"𝔯\": \"ð”¯\",\n \"⇁\": \"â‡\",\n \"⇀\": \"⇀\",\n \"⥬\": \"⥬\",\n \"ρ\": \"Ï\",\n \"ϱ\": \"ϱ\",\n \"→\": \"→\",\n \"↣\": \"↣\",\n \"⇁\": \"â‡\",\n \"⇀\": \"⇀\",\n \"⇄\": \"⇄\",\n \"⇌\": \"⇌\",\n \"⇉\": \"⇉\",\n \"↝\": \"â†\",\n \"⋌\": \"â‹Œ\",\n \"˚\": \"Ëš\",\n \"≓\": \"≓\",\n \"⇄\": \"⇄\",\n \"⇌\": \"⇌\",\n \"‏\": \"â€\",\n \"⎱\": \"⎱\",\n \"⎱\": \"⎱\",\n \"⫮\": \"â«®\",\n \"⟭\": \"âŸ\",\n \"⇾\": \"⇾\",\n \"⟧\": \"⟧\",\n \"⦆\": \"⦆\",\n \"𝕣\": \"ð•£\",\n \"⨮\": \"⨮\",\n \"⨵\": \"⨵\",\n \")\": \")\",\n \"⦔\": \"⦔\",\n \"⨒\": \"⨒\",\n \"⇉\": \"⇉\",\n \"›\": \"›\",\n \"𝓇\": \"ð“‡\",\n \"↱\": \"↱\",\n \"]\": \"]\",\n \"’\": \"’\",\n \"’\": \"’\",\n \"⋌\": \"â‹Œ\",\n \"⋊\": \"â‹Š\",\n \"▹\": \"â–¹\",\n \"⊵\": \"⊵\",\n \"▸\": \"â–¸\",\n \"⧎\": \"⧎\",\n \"⥨\": \"⥨\",\n \"℞\": \"â„ž\",\n \"ś\": \"Å›\",\n \"‚\": \"‚\",\n \"≻\": \"≻\",\n \"⪴\": \"⪴\",\n \"⪸\": \"⪸\",\n \"š\": \"Å¡\",\n \"≽\": \"≽\",\n \"⪰\": \"⪰\",\n \"ş\": \"ÅŸ\",\n \"ŝ\": \"Å\",\n \"⪶\": \"⪶\",\n \"⪺\": \"⪺\",\n \"⋩\": \"â‹©\",\n \"⨓\": \"⨓\",\n \"≿\": \"≿\",\n \"с\": \"Ñ\",\n \"⋅\": \"â‹…\",\n \"⊡\": \"⊡\",\n \"⩦\": \"⩦\",\n \"⇘\": \"⇘\",\n \"⤥\": \"⤥\",\n \"↘\": \"↘\",\n \"↘\": \"↘\",\n \"§\": \"§\",\n \"§\": \"§\",\n \";\": \";\",\n \"⤩\": \"⤩\",\n \"∖\": \"∖\",\n \"∖\": \"∖\",\n \"✶\": \"✶\",\n \"𝔰\": \"ð”°\",\n \"⌢\": \"⌢\",\n \"♯\": \"♯\",\n \"щ\": \"щ\",\n \"ш\": \"ш\",\n \"∣\": \"∣\",\n \"∥\": \"∥\",\n \"­\": \"Â\",\n \"­\": \"Â\",\n \"σ\": \"σ\",\n \"ς\": \"Ï‚\",\n \"ς\": \"Ï‚\",\n \"∼\": \"∼\",\n \"⩪\": \"⩪\",\n \"≃\": \"≃\",\n \"≃\": \"≃\",\n \"⪞\": \"⪞\",\n \"⪠\": \"⪠\",\n \"⪝\": \"âª\",\n \"⪟\": \"⪟\",\n \"≆\": \"≆\",\n \"⨤\": \"⨤\",\n \"⥲\": \"⥲\",\n \"←\": \"â†\",\n \"∖\": \"∖\",\n \"⨳\": \"⨳\",\n \"⧤\": \"⧤\",\n \"∣\": \"∣\",\n \"⌣\": \"⌣\",\n \"⪪\": \"⪪\",\n \"⪬\": \"⪬\",\n \"⪬︀\": \"⪬︀\",\n \"ь\": \"ÑŒ\",\n \"/\": \"/\",\n \"⧄\": \"⧄\",\n \"⌿\": \"⌿\",\n \"𝕤\": \"ð•¤\",\n \"♠\": \"â™ \",\n \"♠\": \"â™ \",\n \"∥\": \"∥\",\n \"⊓\": \"⊓\",\n \"⊓︀\": \"⊓︀\",\n \"⊔\": \"⊔\",\n \"⊔︀\": \"⊔︀\",\n \"⊏\": \"âŠ\",\n \"⊑\": \"⊑\",\n \"⊏\": \"âŠ\",\n \"⊑\": \"⊑\",\n \"⊐\": \"âŠ\",\n \"⊒\": \"⊒\",\n \"⊐\": \"âŠ\",\n \"⊒\": \"⊒\",\n \"□\": \"â–¡\",\n \"□\": \"â–¡\",\n \"▪\": \"â–ª\",\n \"▪\": \"â–ª\",\n \"→\": \"→\",\n \"𝓈\": \"ð“ˆ\",\n \"∖\": \"∖\",\n \"⌣\": \"⌣\",\n \"⋆\": \"⋆\",\n \"☆\": \"☆\",\n \"★\": \"★\",\n \"ϵ\": \"ϵ\",\n \"ϕ\": \"Ï•\",\n \"¯\": \"¯\",\n \"⊂\": \"⊂\",\n \"⫅\": \"â«…\",\n \"⪽\": \"⪽\",\n \"⊆\": \"⊆\",\n \"⫃\": \"⫃\",\n \"⫁\": \"â«\",\n \"⫋\": \"â«‹\",\n \"⊊\": \"⊊\",\n \"⪿\": \"⪿\",\n \"⥹\": \"⥹\",\n \"⊂\": \"⊂\",\n \"⊆\": \"⊆\",\n \"⫅\": \"â«…\",\n \"⊊\": \"⊊\",\n \"⫋\": \"â«‹\",\n \"⫇\": \"⫇\",\n \"⫕\": \"â«•\",\n \"⫓\": \"â«“\",\n \"≻\": \"≻\",\n \"⪸\": \"⪸\",\n \"≽\": \"≽\",\n \"⪰\": \"⪰\",\n \"⪺\": \"⪺\",\n \"⪶\": \"⪶\",\n \"⋩\": \"â‹©\",\n \"≿\": \"≿\",\n \"∑\": \"∑\",\n \"♪\": \"♪\",\n \"¹\": \"¹\",\n \"¹\": \"¹\",\n \"²\": \"²\",\n \"²\": \"²\",\n \"³\": \"³\",\n \"³\": \"³\",\n \"⊃\": \"⊃\",\n \"⫆\": \"⫆\",\n \"⪾\": \"⪾\",\n \"⫘\": \"⫘\",\n \"⊇\": \"⊇\",\n \"⫄\": \"â«„\",\n \"⟉\": \"⟉\",\n \"⫗\": \"â«—\",\n \"⥻\": \"⥻\",\n \"⫂\": \"â«‚\",\n \"⫌\": \"â«Œ\",\n \"⊋\": \"⊋\",\n \"⫀\": \"â«€\",\n \"⊃\": \"⊃\",\n \"⊇\": \"⊇\",\n \"⫆\": \"⫆\",\n \"⊋\": \"⊋\",\n \"⫌\": \"â«Œ\",\n \"⫈\": \"⫈\",\n \"⫔\": \"â«”\",\n \"⫖\": \"â«–\",\n \"⇙\": \"⇙\",\n \"⤦\": \"⤦\",\n \"↙\": \"↙\",\n \"↙\": \"↙\",\n \"⤪\": \"⤪\",\n \"ß\": \"ß\",\n \"ß\": \"ß\",\n \"⌖\": \"⌖\",\n \"τ\": \"Ï„\",\n \"⎴\": \"⎴\",\n \"ť\": \"Å¥\",\n \"ţ\": \"Å£\",\n \"т\": \"Ñ‚\",\n \"⃛\": \"⃛\",\n \"⌕\": \"⌕\",\n \"𝔱\": \"ð”±\",\n \"∴\": \"∴\",\n \"∴\": \"∴\",\n \"θ\": \"θ\",\n \"ϑ\": \"Ï‘\",\n \"ϑ\": \"Ï‘\",\n \"≈\": \"≈\",\n \"∼\": \"∼\",\n \" \": \" \",\n \"≈\": \"≈\",\n \"∼\": \"∼\",\n \"þ\": \"þ\",\n \"þ\": \"þ\",\n \"˜\": \"Ëœ\",\n \"×\": \"×\",\n \"×\": \"×\",\n \"⊠\": \"⊠\",\n \"⨱\": \"⨱\",\n \"⨰\": \"⨰\",\n \"∭\": \"âˆ\",\n \"⤨\": \"⤨\",\n \"⊤\": \"⊤\",\n \"⌶\": \"⌶\",\n \"⫱\": \"⫱\",\n \"𝕥\": \"ð•¥\",\n \"⫚\": \"â«š\",\n \"⤩\": \"⤩\",\n \"‴\": \"‴\",\n \"™\": \"â„¢\",\n \"▵\": \"â–µ\",\n \"▿\": \"â–¿\",\n \"◃\": \"â—ƒ\",\n \"⊴\": \"⊴\",\n \"≜\": \"≜\",\n \"▹\": \"â–¹\",\n \"⊵\": \"⊵\",\n \"◬\": \"â—¬\",\n \"≜\": \"≜\",\n \"⨺\": \"⨺\",\n \"⨹\": \"⨹\",\n \"⧍\": \"â§\",\n \"⨻\": \"⨻\",\n \"⏢\": \"â¢\",\n \"𝓉\": \"ð“‰\",\n \"ц\": \"ц\",\n \"ћ\": \"Ñ›\",\n \"ŧ\": \"ŧ\",\n \"≬\": \"≬\",\n \"↞\": \"↞\",\n \"↠\": \"↠\",\n \"⇑\": \"⇑\",\n \"⥣\": \"⥣\",\n \"ú\": \"ú\",\n \"ú\": \"ú\",\n \"↑\": \"↑\",\n \"ў\": \"Ñž\",\n \"ŭ\": \"Å\",\n \"û\": \"û\",\n \"û\": \"û\",\n \"у\": \"у\",\n \"⇅\": \"⇅\",\n \"ű\": \"ű\",\n \"⥮\": \"⥮\",\n \"⥾\": \"⥾\",\n \"𝔲\": \"ð”²\",\n \"ù\": \"ù\",\n \"ù\": \"ù\",\n \"↿\": \"↿\",\n \"↾\": \"↾\",\n \"▀\": \"â–€\",\n \"⌜\": \"⌜\",\n \"⌜\": \"⌜\",\n \"⌏\": \"âŒ\",\n \"◸\": \"â—¸\",\n \"ū\": \"Å«\",\n \"¨\": \"¨\",\n \"¨\": \"¨\",\n \"ų\": \"ų\",\n \"𝕦\": \"ð•¦\",\n \"↑\": \"↑\",\n \"↕\": \"↕\",\n \"↿\": \"↿\",\n \"↾\": \"↾\",\n \"⊎\": \"⊎\",\n \"υ\": \"Ï…\",\n \"ϒ\": \"Ï’\",\n \"υ\": \"Ï…\",\n \"⇈\": \"⇈\",\n \"⌝\": \"âŒ\",\n \"⌝\": \"âŒ\",\n \"⌎\": \"⌎\",\n \"ů\": \"ů\",\n \"◹\": \"â—¹\",\n \"𝓊\": \"ð“Š\",\n \"⋰\": \"â‹°\",\n \"ũ\": \"Å©\",\n \"▵\": \"â–µ\",\n \"▴\": \"â–´\",\n \"⇈\": \"⇈\",\n \"ü\": \"ü\",\n \"ü\": \"ü\",\n \"⦧\": \"⦧\",\n \"⇕\": \"⇕\",\n \"⫨\": \"⫨\",\n \"⫩\": \"â«©\",\n \"⊨\": \"⊨\",\n \"⦜\": \"⦜\",\n \"ϵ\": \"ϵ\",\n \"ϰ\": \"Ï°\",\n \"∅\": \"∅\",\n \"ϕ\": \"Ï•\",\n \"ϖ\": \"Ï–\",\n \"∝\": \"âˆ\",\n \"↕\": \"↕\",\n \"ϱ\": \"ϱ\",\n \"ς\": \"Ï‚\",\n \"⊊︀\": \"⊊︀\",\n \"⫋︀\": \"⫋︀\",\n \"⊋︀\": \"⊋︀\",\n \"⫌︀\": \"⫌︀\",\n \"ϑ\": \"Ï‘\",\n \"⊲\": \"⊲\",\n \"⊳\": \"⊳\",\n \"в\": \"в\",\n \"⊢\": \"⊢\",\n \"∨\": \"∨\",\n \"⊻\": \"⊻\",\n \"≚\": \"≚\",\n \"⋮\": \"â‹®\",\n \"|\": \"|\",\n \"|\": \"|\",\n \"𝔳\": \"ð”³\",\n \"⊲\": \"⊲\",\n \"⊂⃒\": \"⊂⃒\",\n \"⊃⃒\": \"⊃⃒\",\n \"𝕧\": \"ð•§\",\n \"∝\": \"âˆ\",\n \"⊳\": \"⊳\",\n \"𝓋\": \"ð“‹\",\n \"⫋︀\": \"⫋︀\",\n \"⊊︀\": \"⊊︀\",\n \"⫌︀\": \"⫌︀\",\n \"⊋︀\": \"⊋︀\",\n \"⦚\": \"⦚\",\n \"ŵ\": \"ŵ\",\n \"⩟\": \"â©Ÿ\",\n \"∧\": \"∧\",\n \"≙\": \"≙\",\n \"℘\": \"℘\",\n \"𝔴\": \"ð”´\",\n \"𝕨\": \"ð•¨\",\n \"℘\": \"℘\",\n \"≀\": \"≀\",\n \"≀\": \"≀\",\n \"𝓌\": \"ð“Œ\",\n \"⋂\": \"â‹‚\",\n \"◯\": \"â—¯\",\n \"⋃\": \"⋃\",\n \"▽\": \"â–½\",\n \"𝔵\": \"ð”µ\",\n \"⟺\": \"⟺\",\n \"⟷\": \"⟷\",\n \"ξ\": \"ξ\",\n \"⟸\": \"⟸\",\n \"⟵\": \"⟵\",\n \"⟼\": \"⟼\",\n \"⋻\": \"â‹»\",\n \"⨀\": \"⨀\",\n \"𝕩\": \"ð•©\",\n \"⨁\": \"â¨\",\n \"⨂\": \"⨂\",\n \"⟹\": \"⟹\",\n \"⟶\": \"⟶\",\n \"𝓍\": \"ð“\",\n \"⨆\": \"⨆\",\n \"⨄\": \"⨄\",\n \"△\": \"â–³\",\n \"⋁\": \"â‹\",\n \"⋀\": \"â‹€\",\n \"ý\": \"ý\",\n \"ý\": \"ý\",\n \"я\": \"Ñ\",\n \"ŷ\": \"Å·\",\n \"ы\": \"Ñ‹\",\n \"¥\": \"Â¥\",\n \"¥\": \"Â¥\",\n \"𝔶\": \"ð”¶\",\n \"ї\": \"Ñ—\",\n \"𝕪\": \"ð•ª\",\n \"𝓎\": \"ð“Ž\",\n \"ю\": \"ÑŽ\",\n \"ÿ\": \"ÿ\",\n \"ÿ\": \"ÿ\",\n \"ź\": \"ź\",\n \"ž\": \"ž\",\n \"з\": \"з\",\n \"ż\": \"ż\",\n \"ℨ\": \"ℨ\",\n \"ζ\": \"ζ\",\n \"𝔷\": \"ð”·\",\n \"ж\": \"ж\",\n \"⇝\": \"â‡\",\n \"𝕫\": \"ð•«\",\n \"𝓏\": \"ð“\",\n \"‍\": \"â€\",\n \"‌\": \"‌\"\n },\n characters: {\n \"Æ\": \"Æ\",\n \"&\": \"&\",\n \"Ã\": \"Á\",\n \"Ä‚\": \"Ă\",\n \"Â\": \"Â\",\n \"Ð\": \"А\",\n \"ð”„\": \"𝔄\",\n \"À\": \"À\",\n \"Α\": \"Α\",\n \"Ä€\": \"Ā\",\n \"â©“\": \"⩓\",\n \"Ä„\": \"Ą\",\n \"ð”¸\": \"𝔸\",\n \"â¡\": \"⁡\",\n \"Ã…\": \"Å\",\n \"ð’œ\": \"𝒜\",\n \"≔\": \"≔\",\n \"Ã\": \"Ã\",\n \"Ä\": \"Ä\",\n \"∖\": \"∖\",\n \"⫧\": \"⫧\",\n \"⌆\": \"⌆\",\n \"Б\": \"Б\",\n \"∵\": \"∵\",\n \"ℬ\": \"ℬ\",\n \"Î’\": \"Β\",\n \"ð”…\": \"𝔅\",\n \"ð”¹\": \"𝔹\",\n \"˘\": \"˘\",\n \"≎\": \"≎\",\n \"Ч\": \"Ч\",\n \"©\": \"©\",\n \"Ć\": \"Ć\",\n \"â‹’\": \"⋒\",\n \"â……\": \"ⅅ\",\n \"â„\": \"ℭ\",\n \"ÄŒ\": \"Č\",\n \"Ç\": \"Ç\",\n \"Ĉ\": \"Ĉ\",\n \"∰\": \"∰\",\n \"ÄŠ\": \"Ċ\",\n \"¸\": \"¸\",\n \"·\": \"·\",\n \"Χ\": \"Χ\",\n \"⊙\": \"⊙\",\n \"⊖\": \"⊖\",\n \"⊕\": \"⊕\",\n \"⊗\": \"⊗\",\n \"∲\": \"∲\",\n \"â€\": \"”\",\n \"’\": \"’\",\n \"∷\": \"∷\",\n \"â©´\": \"⩴\",\n \"≡\": \"≡\",\n \"∯\": \"∯\",\n \"∮\": \"∮\",\n \"â„‚\": \"ℂ\",\n \"âˆ\": \"∐\",\n \"∳\": \"∳\",\n \"⨯\": \"⨯\",\n \"ð’ž\": \"𝒞\",\n \"â‹“\": \"⋓\",\n \"â‰\": \"≍\",\n \"⤑\": \"⤑\",\n \"Ђ\": \"Ђ\",\n \"Ð…\": \"Ѕ\",\n \"Ð\": \"Џ\",\n \"‡\": \"‡\",\n \"↡\": \"↡\",\n \"⫤\": \"⫤\",\n \"ÄŽ\": \"Ď\",\n \"Д\": \"Д\",\n \"∇\": \"∇\",\n \"Δ\": \"Δ\",\n \"ð”‡\": \"𝔇\",\n \"´\": \"´\",\n \"Ë™\": \"˙\",\n \"Ë\": \"˝\",\n \"`\": \"`\",\n \"Ëœ\": \"˜\",\n \"â‹„\": \"⋄\",\n \"â…†\": \"ⅆ\",\n \"ð”»\": \"𝔻\",\n \"¨\": \"¨\",\n \"⃜\": \"⃜\",\n \"â‰\": \"≐\",\n \"⇓\": \"⇓\",\n \"â‡\": \"⇐\",\n \"⇔\": \"⇔\",\n \"⟸\": \"⟸\",\n \"⟺\": \"⟺\",\n \"⟹\": \"⟹\",\n \"⇒\": \"⇒\",\n \"⊨\": \"⊨\",\n \"⇑\": \"⇑\",\n \"⇕\": \"⇕\",\n \"∥\": \"∥\",\n \"↓\": \"↓\",\n \"⤓\": \"⤓\",\n \"⇵\": \"⇵\",\n \"Ì‘\": \"̑\",\n \"â¥\": \"⥐\",\n \"⥞\": \"⥞\",\n \"↽\": \"↽\",\n \"⥖\": \"⥖\",\n \"⥟\": \"⥟\",\n \"â‡\": \"⇁\",\n \"⥗\": \"⥗\",\n \"⊤\": \"⊤\",\n \"↧\": \"↧\",\n \"ð’Ÿ\": \"𝒟\",\n \"Ä\": \"Đ\",\n \"ÅŠ\": \"Ŋ\",\n \"Ã\": \"Ð\",\n \"É\": \"É\",\n \"Äš\": \"Ě\",\n \"Ê\": \"Ê\",\n \"Ð\": \"Э\",\n \"Ä–\": \"Ė\",\n \"ð”ˆ\": \"𝔈\",\n \"È\": \"È\",\n \"∈\": \"∈\",\n \"Ä’\": \"Ē\",\n \"â—»\": \"◻\",\n \"â–«\": \"▫\",\n \"Ę\": \"Ę\",\n \"ð”¼\": \"𝔼\",\n \"Ε\": \"Ε\",\n \"⩵\": \"⩵\",\n \"≂\": \"≂\",\n \"⇌\": \"⇌\",\n \"â„°\": \"ℰ\",\n \"⩳\": \"⩳\",\n \"Η\": \"Η\",\n \"Ë\": \"Ë\",\n \"∃\": \"∃\",\n \"â…‡\": \"ⅇ\",\n \"Ф\": \"Ф\",\n \"ð”‰\": \"𝔉\",\n \"â—¼\": \"◼\",\n \"â–ª\": \"▪\",\n \"ð”½\": \"𝔽\",\n \"∀\": \"∀\",\n \"ℱ\": \"ℱ\",\n \"Ѓ\": \"Ѓ\",\n \">\": \">\",\n \"Γ\": \"Γ\",\n \"Ïœ\": \"Ϝ\",\n \"Äž\": \"Ğ\",\n \"Ä¢\": \"Ģ\",\n \"Äœ\": \"Ĝ\",\n \"Г\": \"Г\",\n \"Ä \": \"Ġ\",\n \"ð”Š\": \"𝔊\",\n \"â‹™\": \"⋙\",\n \"ð”¾\": \"𝔾\",\n \"≥\": \"≥\",\n \"â‹›\": \"⋛\",\n \"≧\": \"≧\",\n \"⪢\": \"⪢\",\n \"≷\": \"≷\",\n \"⩾\": \"⩾\",\n \"≳\": \"≳\",\n \"ð’¢\": \"𝒢\",\n \"≫\": \"≫\",\n \"Ъ\": \"Ъ\",\n \"ˇ\": \"ˇ\",\n \"^\": \"^\",\n \"Ĥ\": \"Ĥ\",\n \"â„Œ\": \"ℌ\",\n \"â„‹\": \"ℋ\",\n \"â„\": \"ℍ\",\n \"─\": \"─\",\n \"Ħ\": \"Ħ\",\n \"â‰\": \"≏\",\n \"Е\": \"Е\",\n \"IJ\": \"IJ\",\n \"Ð\": \"Ё\",\n \"Ã\": \"Í\",\n \"ÃŽ\": \"Î\",\n \"И\": \"И\",\n \"Ä°\": \"İ\",\n \"â„‘\": \"ℑ\",\n \"ÃŒ\": \"Ì\",\n \"Ī\": \"Ī\",\n \"â…ˆ\": \"ⅈ\",\n \"∬\": \"∬\",\n \"∫\": \"∫\",\n \"â‹‚\": \"⋂\",\n \"â£\": \"⁣\",\n \"â¢\": \"⁢\",\n \"Ä®\": \"Į\",\n \"ð•€\": \"𝕀\",\n \"Ι\": \"Ι\",\n \"â„\": \"ℐ\",\n \"Ĩ\": \"Ĩ\",\n \"І\": \"І\",\n \"Ã\": \"Ï\",\n \"Ä´\": \"Ĵ\",\n \"Й\": \"Й\",\n \"ð”\": \"𝔍\",\n \"ð•\": \"𝕁\",\n \"ð’¥\": \"𝒥\",\n \"Ј\": \"Ј\",\n \"Є\": \"Є\",\n \"Ð¥\": \"Х\",\n \"ÐŒ\": \"Ќ\",\n \"Κ\": \"Κ\",\n \"Ķ\": \"Ķ\",\n \"К\": \"К\",\n \"ð”Ž\": \"𝔎\",\n \"ð•‚\": \"𝕂\",\n \"ð’¦\": \"𝒦\",\n \"Љ\": \"Љ\",\n \"<\": \"<\",\n \"Ĺ\": \"Ĺ\",\n \"Λ\": \"Λ\",\n \"⟪\": \"⟪\",\n \"â„’\": \"ℒ\",\n \"↞\": \"↞\",\n \"Ľ\": \"Ľ\",\n \"Ä»\": \"Ļ\",\n \"Л\": \"Л\",\n \"⟨\": \"⟨\",\n \"â†\": \"←\",\n \"⇤\": \"⇤\",\n \"⇆\": \"⇆\",\n \"⌈\": \"⌈\",\n \"⟦\": \"⟦\",\n \"⥡\": \"⥡\",\n \"⇃\": \"⇃\",\n \"⥙\": \"⥙\",\n \"⌊\": \"⌊\",\n \"↔\": \"↔\",\n \"⥎\": \"⥎\",\n \"⊣\": \"⊣\",\n \"↤\": \"↤\",\n \"⥚\": \"⥚\",\n \"⊲\": \"⊲\",\n \"â§\": \"⧏\",\n \"⊴\": \"⊴\",\n \"⥑\": \"⥑\",\n \"⥠\": \"⥠\",\n \"↿\": \"↿\",\n \"⥘\": \"⥘\",\n \"↼\": \"↼\",\n \"⥒\": \"⥒\",\n \"â‹š\": \"⋚\",\n \"≦\": \"≦\",\n \"≶\": \"≶\",\n \"⪡\": \"⪡\",\n \"⩽\": \"⩽\",\n \"≲\": \"≲\",\n \"ð”\": \"𝔏\",\n \"⋘\": \"⋘\",\n \"⇚\": \"⇚\",\n \"Ä¿\": \"Ŀ\",\n \"⟵\": \"⟵\",\n \"⟷\": \"⟷\",\n \"⟶\": \"⟶\",\n \"ð•ƒ\": \"𝕃\",\n \"↙\": \"↙\",\n \"↘\": \"↘\",\n \"↰\": \"↰\",\n \"Å\": \"Ł\",\n \"≪\": \"≪\",\n \"⤅\": \"⤅\",\n \"Ðœ\": \"М\",\n \"âŸ\": \" \",\n \"ℳ\": \"ℳ\",\n \"ð”\": \"𝔐\",\n \"∓\": \"∓\",\n \"ð•„\": \"𝕄\",\n \"Îœ\": \"Μ\",\n \"Њ\": \"Њ\",\n \"Ń\": \"Ń\",\n \"Ň\": \"Ň\",\n \"Å…\": \"Ņ\",\n \"Ð\": \"Н\",\n \"​\": \"​\",\n \"\\n\": \"
\",\n \"ð”‘\": \"𝔑\",\n \"â \": \"⁠\",\n \" \": \" \",\n \"â„•\": \"ℕ\",\n \"⫬\": \"⫬\",\n \"≢\": \"≢\",\n \"â‰\": \"≭\",\n \"∦\": \"∦\",\n \"∉\": \"∉\",\n \"≠\": \"≠\",\n \"≂̸\": \"≂̸\",\n \"∄\": \"∄\",\n \"≯\": \"≯\",\n \"≱\": \"≱\",\n \"≧̸\": \"≧̸\",\n \"≫̸\": \"≫̸\",\n \"≹\": \"≹\",\n \"⩾̸\": \"⩾̸\",\n \"≵\": \"≵\",\n \"≎̸\": \"≎̸\",\n \"â‰Ì¸\": \"≏̸\",\n \"⋪\": \"⋪\",\n \"â§Ì¸\": \"⧏̸\",\n \"⋬\": \"⋬\",\n \"≮\": \"≮\",\n \"≰\": \"≰\",\n \"≸\": \"≸\",\n \"≪̸\": \"≪̸\",\n \"⩽̸\": \"⩽̸\",\n \"≴\": \"≴\",\n \"⪢̸\": \"⪢̸\",\n \"⪡̸\": \"⪡̸\",\n \"⊀\": \"⊀\",\n \"⪯̸\": \"⪯̸\",\n \"â‹ \": \"⋠\",\n \"∌\": \"∌\",\n \"â‹«\": \"⋫\",\n \"â§Ì¸\": \"⧐̸\",\n \"â‹\": \"⋭\",\n \"âŠÌ¸\": \"⊏̸\",\n \"â‹¢\": \"⋢\",\n \"âŠÌ¸\": \"⊐̸\",\n \"â‹£\": \"⋣\",\n \"⊂⃒\": \"⊂⃒\",\n \"⊈\": \"⊈\",\n \"âŠ\": \"⊁\",\n \"⪰̸\": \"⪰̸\",\n \"â‹¡\": \"⋡\",\n \"≿̸\": \"≿̸\",\n \"⊃⃒\": \"⊃⃒\",\n \"⊉\": \"⊉\",\n \"â‰\": \"≁\",\n \"≄\": \"≄\",\n \"≇\": \"≇\",\n \"≉\": \"≉\",\n \"∤\": \"∤\",\n \"ð’©\": \"𝒩\",\n \"Ñ\": \"Ñ\",\n \"Î\": \"Ν\",\n \"Å’\": \"Œ\",\n \"Ó\": \"Ó\",\n \"Ô\": \"Ô\",\n \"О\": \"О\",\n \"Å\": \"Ő\",\n \"ð”’\": \"𝔒\",\n \"Ã’\": \"Ò\",\n \"ÅŒ\": \"Ō\",\n \"Ω\": \"Ω\",\n \"Ο\": \"Ο\",\n \"ð•†\": \"𝕆\",\n \"“\": \"“\",\n \"‘\": \"‘\",\n \"â©”\": \"⩔\",\n \"ð’ª\": \"𝒪\",\n \"Ø\": \"Ø\",\n \"Õ\": \"Õ\",\n \"⨷\": \"⨷\",\n \"Ö\": \"Ö\",\n \"‾\": \"‾\",\n \"âž\": \"⏞\",\n \"⎴\": \"⎴\",\n \"âœ\": \"⏜\",\n \"∂\": \"∂\",\n \"П\": \"П\",\n \"ð”“\": \"𝔓\",\n \"Φ\": \"Φ\",\n \"Î \": \"Π\",\n \"±\": \"±\",\n \"â„™\": \"ℙ\",\n \"⪻\": \"⪻\",\n \"≺\": \"≺\",\n \"⪯\": \"⪯\",\n \"≼\": \"≼\",\n \"≾\": \"≾\",\n \"″\": \"″\",\n \"âˆ\": \"∏\",\n \"âˆ\": \"∝\",\n \"ð’«\": \"𝒫\",\n \"Ψ\": \"Ψ\",\n '\"': \""\",\n \"ð””\": \"𝔔\",\n \"â„š\": \"ℚ\",\n \"ð’¬\": \"𝒬\",\n \"â¤\": \"⤐\",\n \"®\": \"®\",\n \"Å”\": \"Ŕ\",\n \"⟫\": \"⟫\",\n \"↠\": \"↠\",\n \"⤖\": \"⤖\",\n \"Ř\": \"Ř\",\n \"Å–\": \"Ŗ\",\n \"Ð \": \"Р\",\n \"â„œ\": \"ℜ\",\n \"∋\": \"∋\",\n \"⇋\": \"⇋\",\n \"⥯\": \"⥯\",\n \"Ρ\": \"Ρ\",\n \"⟩\": \"⟩\",\n \"→\": \"→\",\n \"⇥\": \"⇥\",\n \"⇄\": \"⇄\",\n \"⌉\": \"⌉\",\n \"⟧\": \"⟧\",\n \"â¥\": \"⥝\",\n \"⇂\": \"⇂\",\n \"⥕\": \"⥕\",\n \"⌋\": \"⌋\",\n \"⊢\": \"⊢\",\n \"↦\": \"↦\",\n \"⥛\": \"⥛\",\n \"⊳\": \"⊳\",\n \"â§\": \"⧐\",\n \"⊵\": \"⊵\",\n \"â¥\": \"⥏\",\n \"⥜\": \"⥜\",\n \"↾\": \"↾\",\n \"⥔\": \"⥔\",\n \"⇀\": \"⇀\",\n \"⥓\": \"⥓\",\n \"â„\": \"ℝ\",\n \"⥰\": \"⥰\",\n \"⇛\": \"⇛\",\n \"â„›\": \"ℛ\",\n \"↱\": \"↱\",\n \"⧴\": \"⧴\",\n \"Щ\": \"Щ\",\n \"Ш\": \"Ш\",\n \"Ь\": \"Ь\",\n \"Åš\": \"Ś\",\n \"⪼\": \"⪼\",\n \"Å \": \"Š\",\n \"Åž\": \"Ş\",\n \"Åœ\": \"Ŝ\",\n \"С\": \"С\",\n \"ð”–\": \"𝔖\",\n \"↑\": \"↑\",\n \"Σ\": \"Σ\",\n \"∘\": \"∘\",\n \"ð•Š\": \"𝕊\",\n \"√\": \"√\",\n \"â–¡\": \"□\",\n \"⊓\": \"⊓\",\n \"âŠ\": \"⊏\",\n \"⊑\": \"⊑\",\n \"âŠ\": \"⊐\",\n \"⊒\": \"⊒\",\n \"⊔\": \"⊔\",\n \"ð’®\": \"𝒮\",\n \"⋆\": \"⋆\",\n \"â‹\": \"⋐\",\n \"⊆\": \"⊆\",\n \"≻\": \"≻\",\n \"⪰\": \"⪰\",\n \"≽\": \"≽\",\n \"≿\": \"≿\",\n \"∑\": \"∑\",\n \"â‹‘\": \"⋑\",\n \"⊃\": \"⊃\",\n \"⊇\": \"⊇\",\n \"Þ\": \"Þ\",\n \"â„¢\": \"™\",\n \"Ћ\": \"Ћ\",\n \"Ц\": \"Ц\",\n \"\\t\": \"	\",\n \"Τ\": \"Τ\",\n \"Ť\": \"Ť\",\n \"Å¢\": \"Ţ\",\n \"Т\": \"Т\",\n \"ð”—\": \"𝔗\",\n \"∴\": \"∴\",\n \"Θ\": \"Θ\",\n \"âŸâ€Š\": \"  \",\n \" \": \" \",\n \"∼\": \"∼\",\n \"≃\": \"≃\",\n \"≅\": \"≅\",\n \"≈\": \"≈\",\n \"ð•‹\": \"𝕋\",\n \"⃛\": \"⃛\",\n \"ð’¯\": \"𝒯\",\n \"Ŧ\": \"Ŧ\",\n \"Ú\": \"Ú\",\n \"↟\": \"↟\",\n \"⥉\": \"⥉\",\n \"ÐŽ\": \"Ў\",\n \"Ŭ\": \"Ŭ\",\n \"Û\": \"Û\",\n \"У\": \"У\",\n \"Å°\": \"Ű\",\n \"ð”˜\": \"𝔘\",\n \"Ù\": \"Ù\",\n \"Ū\": \"Ū\",\n _: \"_\",\n \"âŸ\": \"⏟\",\n \"⎵\": \"⎵\",\n \"â\": \"⏝\",\n \"⋃\": \"⋃\",\n \"⊎\": \"⊎\",\n \"Ų\": \"Ų\",\n \"ð•Œ\": \"𝕌\",\n \"⤒\": \"⤒\",\n \"⇅\": \"⇅\",\n \"↕\": \"↕\",\n \"⥮\": \"⥮\",\n \"⊥\": \"⊥\",\n \"↥\": \"↥\",\n \"↖\": \"↖\",\n \"↗\": \"↗\",\n \"Ï’\": \"ϒ\",\n \"Î¥\": \"Υ\",\n \"Å®\": \"Ů\",\n \"ð’°\": \"𝒰\",\n \"Ũ\": \"Ũ\",\n \"Ãœ\": \"Ü\",\n \"⊫\": \"⊫\",\n \"â««\": \"⫫\",\n \"Ð’\": \"В\",\n \"⊩\": \"⊩\",\n \"⫦\": \"⫦\",\n \"â‹\": \"⋁\",\n \"‖\": \"‖\",\n \"∣\": \"∣\",\n \"|\": \"|\",\n \"â˜\": \"❘\",\n \"≀\": \"≀\",\n \" \": \" \",\n \"ð”™\": \"𝔙\",\n \"ð•\": \"𝕍\",\n \"ð’±\": \"𝒱\",\n \"⊪\": \"⊪\",\n \"Å´\": \"Ŵ\",\n \"â‹€\": \"⋀\",\n \"ð”š\": \"𝔚\",\n \"ð•Ž\": \"𝕎\",\n \"ð’²\": \"𝒲\",\n \"ð”›\": \"𝔛\",\n \"Ξ\": \"Ξ\",\n \"ð•\": \"𝕏\",\n \"ð’³\": \"𝒳\",\n \"Я\": \"Я\",\n \"Ї\": \"Ї\",\n \"Ю\": \"Ю\",\n \"Ã\": \"Ý\",\n \"Ŷ\": \"Ŷ\",\n \"Ы\": \"Ы\",\n \"ð”œ\": \"𝔜\",\n \"ð•\": \"𝕐\",\n \"ð’´\": \"𝒴\",\n \"Ÿ\": \"Ÿ\",\n \"Ж\": \"Ж\",\n \"Ź\": \"Ź\",\n \"Ž\": \"Ž\",\n \"З\": \"З\",\n \"Å»\": \"Ż\",\n \"Ζ\": \"Ζ\",\n \"ℨ\": \"ℨ\",\n \"ℤ\": \"ℤ\",\n \"ð’µ\": \"𝒵\",\n \"á\": \"á\",\n \"ă\": \"ă\",\n \"∾\": \"∾\",\n \"∾̳\": \"∾̳\",\n \"∿\": \"∿\",\n \"â\": \"â\",\n \"а\": \"а\",\n \"æ\": \"æ\",\n \"ð”ž\": \"𝔞\",\n \"à \": \"à\",\n \"ℵ\": \"ℵ\",\n \"α\": \"α\",\n \"Ä\": \"ā\",\n \"⨿\": \"⨿\",\n \"∧\": \"∧\",\n \"â©•\": \"⩕\",\n \"â©œ\": \"⩜\",\n \"⩘\": \"⩘\",\n \"â©š\": \"⩚\",\n \"∠\": \"∠\",\n \"⦤\": \"⦤\",\n \"∡\": \"∡\",\n \"⦨\": \"⦨\",\n \"⦩\": \"⦩\",\n \"⦪\": \"⦪\",\n \"⦫\": \"⦫\",\n \"⦬\": \"⦬\",\n \"â¦\": \"⦭\",\n \"⦮\": \"⦮\",\n \"⦯\": \"⦯\",\n \"∟\": \"∟\",\n \"⊾\": \"⊾\",\n \"â¦\": \"⦝\",\n \"∢\": \"∢\",\n \"â¼\": \"⍼\",\n \"Ä…\": \"ą\",\n \"ð•’\": \"𝕒\",\n \"â©°\": \"⩰\",\n \"⩯\": \"⩯\",\n \"≊\": \"≊\",\n \"≋\": \"≋\",\n \"'\": \"'\",\n \"Ã¥\": \"å\",\n \"ð’¶\": \"𝒶\",\n \"*\": \"*\",\n \"ã\": \"ã\",\n \"ä\": \"ä\",\n \"⨑\": \"⨑\",\n \"â«\": \"⫭\",\n \"≌\": \"≌\",\n \"϶\": \"϶\",\n \"‵\": \"‵\",\n \"∽\": \"∽\",\n \"â‹\": \"⋍\",\n \"⊽\": \"⊽\",\n \"⌅\": \"⌅\",\n \"⎶\": \"⎶\",\n \"б\": \"б\",\n \"„\": \"„\",\n \"⦰\": \"⦰\",\n \"β\": \"β\",\n \"ℶ\": \"ℶ\",\n \"≬\": \"≬\",\n \"ð”Ÿ\": \"𝔟\",\n \"â—¯\": \"◯\",\n \"⨀\": \"⨀\",\n \"â¨\": \"⨁\",\n \"⨂\": \"⨂\",\n \"⨆\": \"⨆\",\n \"★\": \"★\",\n \"â–½\": \"▽\",\n \"â–³\": \"△\",\n \"⨄\": \"⨄\",\n \"â¤\": \"⤍\",\n \"⧫\": \"⧫\",\n \"â–´\": \"▴\",\n \"â–¾\": \"▾\",\n \"â—‚\": \"◂\",\n \"â–¸\": \"▸\",\n \"â£\": \"␣\",\n \"â–’\": \"▒\",\n \"â–‘\": \"░\",\n \"â–“\": \"▓\",\n \"â–ˆ\": \"█\",\n \"=⃥\": \"=⃥\",\n \"≡⃥\": \"≡⃥\",\n \"âŒ\": \"⌐\",\n \"ð•“\": \"𝕓\",\n \"⋈\": \"⋈\",\n \"â•—\": \"╗\",\n \"â•”\": \"╔\",\n \"â•–\": \"╖\",\n \"â•“\": \"╓\",\n \"â•\": \"═\",\n \"╦\": \"╦\",\n \"â•©\": \"╩\",\n \"╤\": \"╤\",\n \"╧\": \"╧\",\n \"â•\": \"╝\",\n \"â•š\": \"╚\",\n \"â•œ\": \"╜\",\n \"â•™\": \"╙\",\n \"â•‘\": \"║\",\n \"╬\": \"╬\",\n \"â•£\": \"╣\",\n \"â• \": \"╠\",\n \"â•«\": \"╫\",\n \"â•¢\": \"╢\",\n \"â•Ÿ\": \"╟\",\n \"⧉\": \"⧉\",\n \"â••\": \"╕\",\n \"â•’\": \"╒\",\n \"â”\": \"┐\",\n \"┌\": \"┌\",\n \"â•¥\": \"╥\",\n \"╨\": \"╨\",\n \"┬\": \"┬\",\n \"â”´\": \"┴\",\n \"⊟\": \"⊟\",\n \"⊞\": \"⊞\",\n \"⊠\": \"⊠\",\n \"â•›\": \"╛\",\n \"╘\": \"╘\",\n \"┘\": \"┘\",\n \"â””\": \"└\",\n \"│\": \"│\",\n \"╪\": \"╪\",\n \"â•¡\": \"╡\",\n \"â•ž\": \"╞\",\n \"┼\": \"┼\",\n \"┤\": \"┤\",\n \"├\": \"├\",\n \"¦\": \"¦\",\n \"ð’·\": \"𝒷\",\n \"â\": \"⁏\",\n \"\\\\\": \"\\",\n \"⧅\": \"⧅\",\n \"⟈\": \"⟈\",\n \"•\": \"•\",\n \"⪮\": \"⪮\",\n \"ć\": \"ć\",\n \"∩\": \"∩\",\n \"â©„\": \"⩄\",\n \"⩉\": \"⩉\",\n \"â©‹\": \"⩋\",\n \"⩇\": \"⩇\",\n \"â©€\": \"⩀\",\n \"∩︀\": \"∩︀\",\n \"â\": \"⁁\",\n \"â©\": \"⩍\",\n \"Ä\": \"č\",\n \"ç\": \"ç\",\n \"ĉ\": \"ĉ\",\n \"â©Œ\": \"⩌\",\n \"â©\": \"⩐\",\n \"Ä‹\": \"ċ\",\n \"⦲\": \"⦲\",\n \"¢\": \"¢\",\n \"ð” \": \"𝔠\",\n \"ч\": \"ч\",\n \"✓\": \"✓\",\n \"χ\": \"χ\",\n \"â—‹\": \"○\",\n \"⧃\": \"⧃\",\n \"ˆ\": \"ˆ\",\n \"≗\": \"≗\",\n \"↺\": \"↺\",\n \"↻\": \"↻\",\n \"Ⓢ\": \"Ⓢ\",\n \"⊛\": \"⊛\",\n \"⊚\": \"⊚\",\n \"âŠ\": \"⊝\",\n \"â¨\": \"⨐\",\n \"⫯\": \"⫯\",\n \"⧂\": \"⧂\",\n \"♣\": \"♣\",\n \":\": \":\",\n \",\": \",\",\n \"@\": \"@\",\n \"âˆ\": \"∁\",\n \"â©\": \"⩭\",\n \"ð•”\": \"𝕔\",\n \"â„—\": \"℗\",\n \"↵\": \"↵\",\n \"✗\": \"✗\",\n \"ð’¸\": \"𝒸\",\n \"â«\": \"⫏\",\n \"â«‘\": \"⫑\",\n \"â«\": \"⫐\",\n \"â«’\": \"⫒\",\n \"⋯\": \"⋯\",\n \"⤸\": \"⤸\",\n \"⤵\": \"⤵\",\n \"â‹ž\": \"⋞\",\n \"â‹Ÿ\": \"⋟\",\n \"↶\": \"↶\",\n \"⤽\": \"⤽\",\n \"∪\": \"∪\",\n \"⩈\": \"⩈\",\n \"⩆\": \"⩆\",\n \"â©Š\": \"⩊\",\n \"âŠ\": \"⊍\",\n \"â©…\": \"⩅\",\n \"∪︀\": \"∪︀\",\n \"↷\": \"↷\",\n \"⤼\": \"⤼\",\n \"â‹Ž\": \"⋎\",\n \"â‹\": \"⋏\",\n \"¤\": \"¤\",\n \"∱\": \"∱\",\n \"âŒ\": \"⌭\",\n \"⥥\": \"⥥\",\n \"†\": \"†\",\n \"ℸ\": \"ℸ\",\n \"â€\": \"‐\",\n \"â¤\": \"⤏\",\n \"Ä\": \"ď\",\n \"д\": \"д\",\n \"⇊\": \"⇊\",\n \"â©·\": \"⩷\",\n \"°\": \"°\",\n \"δ\": \"δ\",\n \"⦱\": \"⦱\",\n \"⥿\": \"⥿\",\n \"ð”¡\": \"𝔡\",\n \"♦\": \"♦\",\n \"Ï\": \"ϝ\",\n \"⋲\": \"⋲\",\n \"÷\": \"÷\",\n \"⋇\": \"⋇\",\n \"Ñ’\": \"ђ\",\n \"⌞\": \"⌞\",\n \"âŒ\": \"⌍\",\n $: \"$\",\n \"ð••\": \"𝕕\",\n \"≑\": \"≑\",\n \"∸\": \"∸\",\n \"∔\": \"∔\",\n \"⊡\": \"⊡\",\n \"⌟\": \"⌟\",\n \"⌌\": \"⌌\",\n \"ð’¹\": \"𝒹\",\n \"Ñ•\": \"ѕ\",\n \"⧶\": \"⧶\",\n \"Ä‘\": \"đ\",\n \"⋱\": \"⋱\",\n \"â–¿\": \"▿\",\n \"⦦\": \"⦦\",\n \"ÑŸ\": \"џ\",\n \"⟿\": \"⟿\",\n \"é\": \"é\",\n \"â©®\": \"⩮\",\n \"Ä›\": \"ě\",\n \"≖\": \"≖\",\n \"ê\": \"ê\",\n \"≕\": \"≕\",\n \"Ñ\": \"э\",\n \"Ä—\": \"ė\",\n \"≒\": \"≒\",\n \"ð”¢\": \"𝔢\",\n \"⪚\": \"⪚\",\n \"è\": \"è\",\n \"⪖\": \"⪖\",\n \"⪘\": \"⪘\",\n \"⪙\": \"⪙\",\n \"â§\": \"⏧\",\n \"â„“\": \"ℓ\",\n \"⪕\": \"⪕\",\n \"⪗\": \"⪗\",\n \"Ä“\": \"ē\",\n \"∅\": \"∅\",\n \" \": \" \",\n \" \": \" \",\n \" \": \" \",\n \"Å‹\": \"ŋ\",\n \" \": \" \",\n \"Ä™\": \"ę\",\n \"ð•–\": \"𝕖\",\n \"â‹•\": \"⋕\",\n \"⧣\": \"⧣\",\n \"⩱\": \"⩱\",\n \"ε\": \"ε\",\n \"ϵ\": \"ϵ\",\n \"=\": \"=\",\n \"≟\": \"≟\",\n \"⩸\": \"⩸\",\n \"⧥\": \"⧥\",\n \"≓\": \"≓\",\n \"⥱\": \"⥱\",\n \"ℯ\": \"ℯ\",\n \"η\": \"η\",\n \"ð\": \"ð\",\n \"ë\": \"ë\",\n \"€\": \"€\",\n \"!\": \"!\",\n \"Ñ„\": \"ф\",\n \"♀\": \"♀\",\n \"ffi\": \"ffi\",\n \"ff\": \"ff\",\n \"ffl\": \"ffl\",\n \"ð”£\": \"𝔣\",\n \"ï¬\": \"fi\",\n fj: \"fj\",\n \"â™\": \"♭\",\n \"fl\": \"fl\",\n \"â–±\": \"▱\",\n \"Æ’\": \"ƒ\",\n \"ð•—\": \"𝕗\",\n \"â‹”\": \"⋔\",\n \"â«™\": \"⫙\",\n \"â¨\": \"⨍\",\n \"½\": \"½\",\n \"â…“\": \"⅓\",\n \"¼\": \"¼\",\n \"â…•\": \"⅕\",\n \"â…™\": \"⅙\",\n \"â…›\": \"⅛\",\n \"â…”\": \"⅔\",\n \"â…–\": \"⅖\",\n \"¾\": \"¾\",\n \"â…—\": \"⅗\",\n \"â…œ\": \"⅜\",\n \"â…˜\": \"⅘\",\n \"â…š\": \"⅚\",\n \"â…\": \"⅝\",\n \"â…ž\": \"⅞\",\n \"â„\": \"⁄\",\n \"⌢\": \"⌢\",\n \"ð’»\": \"𝒻\",\n \"⪌\": \"⪌\",\n \"ǵ\": \"ǵ\",\n \"γ\": \"γ\",\n \"⪆\": \"⪆\",\n \"ÄŸ\": \"ğ\",\n \"Ä\": \"ĝ\",\n \"г\": \"г\",\n \"Ä¡\": \"ġ\",\n \"⪩\": \"⪩\",\n \"⪀\": \"⪀\",\n \"⪂\": \"⪂\",\n \"⪄\": \"⪄\",\n \"⋛︀\": \"⋛︀\",\n \"⪔\": \"⪔\",\n \"ð”¤\": \"𝔤\",\n \"â„·\": \"ℷ\",\n \"Ñ“\": \"ѓ\",\n \"⪒\": \"⪒\",\n \"⪥\": \"⪥\",\n \"⪤\": \"⪤\",\n \"≩\": \"≩\",\n \"⪊\": \"⪊\",\n \"⪈\": \"⪈\",\n \"⋧\": \"⋧\",\n \"ð•˜\": \"𝕘\",\n \"â„Š\": \"ℊ\",\n \"⪎\": \"⪎\",\n \"âª\": \"⪐\",\n \"⪧\": \"⪧\",\n \"⩺\": \"⩺\",\n \"â‹—\": \"⋗\",\n \"⦕\": \"⦕\",\n \"⩼\": \"⩼\",\n \"⥸\": \"⥸\",\n \"≩︀\": \"≩︀\",\n \"ÑŠ\": \"ъ\",\n \"⥈\": \"⥈\",\n \"â†\": \"↭\",\n \"â„\": \"ℏ\",\n \"Ä¥\": \"ĥ\",\n \"♥\": \"♥\",\n \"…\": \"…\",\n \"⊹\": \"⊹\",\n \"ð”¥\": \"𝔥\",\n \"⤥\": \"⤥\",\n \"⤦\": \"⤦\",\n \"⇿\": \"⇿\",\n \"∻\": \"∻\",\n \"↩\": \"↩\",\n \"↪\": \"↪\",\n \"ð•™\": \"𝕙\",\n \"―\": \"―\",\n \"ð’½\": \"𝒽\",\n \"ħ\": \"ħ\",\n \"âƒ\": \"⁃\",\n \"Ã\": \"í\",\n \"î\": \"î\",\n \"и\": \"и\",\n \"е\": \"е\",\n \"¡\": \"¡\",\n \"ð”¦\": \"𝔦\",\n \"ì\": \"ì\",\n \"⨌\": \"⨌\",\n \"âˆ\": \"∭\",\n \"⧜\": \"⧜\",\n \"â„©\": \"℩\",\n \"ij\": \"ij\",\n \"Ä«\": \"ī\",\n \"ı\": \"ı\",\n \"⊷\": \"⊷\",\n \"Ƶ\": \"Ƶ\",\n \"â„…\": \"℅\",\n \"∞\": \"∞\",\n \"â§\": \"⧝\",\n \"⊺\": \"⊺\",\n \"⨗\": \"⨗\",\n \"⨼\": \"⨼\",\n \"Ñ‘\": \"ё\",\n \"į\": \"į\",\n \"ð•š\": \"𝕚\",\n \"ι\": \"ι\",\n \"¿\": \"¿\",\n \"ð’¾\": \"𝒾\",\n \"⋹\": \"⋹\",\n \"⋵\": \"⋵\",\n \"â‹´\": \"⋴\",\n \"⋳\": \"⋳\",\n \"Ä©\": \"ĩ\",\n \"Ñ–\": \"і\",\n \"ï\": \"ï\",\n \"ĵ\": \"ĵ\",\n \"й\": \"й\",\n \"ð”§\": \"𝔧\",\n \"È·\": \"ȷ\",\n \"ð•›\": \"𝕛\",\n \"ð’¿\": \"𝒿\",\n \"ј\": \"ј\",\n \"Ñ”\": \"є\",\n \"κ\": \"κ\",\n \"Ï°\": \"ϰ\",\n \"Ä·\": \"ķ\",\n \"к\": \"к\",\n \"ð”¨\": \"𝔨\",\n \"ĸ\": \"ĸ\",\n \"Ñ…\": \"х\",\n \"Ñœ\": \"ќ\",\n \"ð•œ\": \"𝕜\",\n \"ð“€\": \"𝓀\",\n \"⤛\": \"⤛\",\n \"⤎\": \"⤎\",\n \"⪋\": \"⪋\",\n \"⥢\": \"⥢\",\n \"ĺ\": \"ĺ\",\n \"⦴\": \"⦴\",\n \"λ\": \"λ\",\n \"⦑\": \"⦑\",\n \"⪅\": \"⪅\",\n \"«\": \"«\",\n \"⤟\": \"⤟\",\n \"â¤\": \"⤝\",\n \"↫\": \"↫\",\n \"⤹\": \"⤹\",\n \"⥳\": \"⥳\",\n \"↢\": \"↢\",\n \"⪫\": \"⪫\",\n \"⤙\": \"⤙\",\n \"âª\": \"⪭\",\n \"âªï¸€\": \"⪭︀\",\n \"⤌\": \"⤌\",\n \"â²\": \"❲\",\n \"{\": \"{\",\n \"[\": \"[\",\n \"⦋\": \"⦋\",\n \"â¦\": \"⦏\",\n \"â¦\": \"⦍\",\n \"ľ\": \"ľ\",\n \"ļ\": \"ļ\",\n \"л\": \"л\",\n \"⤶\": \"⤶\",\n \"⥧\": \"⥧\",\n \"⥋\": \"⥋\",\n \"↲\": \"↲\",\n \"≤\": \"≤\",\n \"⇇\": \"⇇\",\n \"â‹‹\": \"⋋\",\n \"⪨\": \"⪨\",\n \"â©¿\": \"⩿\",\n \"âª\": \"⪁\",\n \"⪃\": \"⪃\",\n \"⋚︀\": \"⋚︀\",\n \"⪓\": \"⪓\",\n \"â‹–\": \"⋖\",\n \"⥼\": \"⥼\",\n \"ð”©\": \"𝔩\",\n \"⪑\": \"⪑\",\n \"⥪\": \"⥪\",\n \"â–„\": \"▄\",\n \"Ñ™\": \"љ\",\n \"⥫\": \"⥫\",\n \"â—º\": \"◺\",\n \"Å€\": \"ŀ\",\n \"⎰\": \"⎰\",\n \"≨\": \"≨\",\n \"⪉\": \"⪉\",\n \"⪇\": \"⪇\",\n \"⋦\": \"⋦\",\n \"⟬\": \"⟬\",\n \"⇽\": \"⇽\",\n \"⟼\": \"⟼\",\n \"↬\": \"↬\",\n \"⦅\": \"⦅\",\n \"ð•\": \"𝕝\",\n \"â¨\": \"⨭\",\n \"⨴\": \"⨴\",\n \"∗\": \"∗\",\n \"â—Š\": \"◊\",\n \"(\": \"(\",\n \"⦓\": \"⦓\",\n \"â¥\": \"⥭\",\n \"‎\": \"‎\",\n \"⊿\": \"⊿\",\n \"‹\": \"‹\",\n \"ð“\": \"𝓁\",\n \"âª\": \"⪍\",\n \"âª\": \"⪏\",\n \"‚\": \"‚\",\n \"Å‚\": \"ł\",\n \"⪦\": \"⪦\",\n \"⩹\": \"⩹\",\n \"⋉\": \"⋉\",\n \"⥶\": \"⥶\",\n \"â©»\": \"⩻\",\n \"⦖\": \"⦖\",\n \"â—ƒ\": \"◃\",\n \"⥊\": \"⥊\",\n \"⥦\": \"⥦\",\n \"≨︀\": \"≨︀\",\n \"∺\": \"∺\",\n \"¯\": \"¯\",\n \"♂\": \"♂\",\n \"✠\": \"✠\",\n \"â–®\": \"▮\",\n \"⨩\": \"⨩\",\n \"м\": \"м\",\n \"—\": \"—\",\n \"ð”ª\": \"𝔪\",\n \"℧\": \"℧\",\n \"µ\": \"µ\",\n \"â«°\": \"⫰\",\n \"−\": \"−\",\n \"⨪\": \"⨪\",\n \"â«›\": \"⫛\",\n \"⊧\": \"⊧\",\n \"ð•ž\": \"𝕞\",\n \"ð“‚\": \"𝓂\",\n \"μ\": \"μ\",\n \"⊸\": \"⊸\",\n \"⋙̸\": \"⋙̸\",\n \"≫⃒\": \"≫⃒\",\n \"â‡\": \"⇍\",\n \"⇎\": \"⇎\",\n \"⋘̸\": \"⋘̸\",\n \"≪⃒\": \"≪⃒\",\n \"â‡\": \"⇏\",\n \"⊯\": \"⊯\",\n \"⊮\": \"⊮\",\n \"Å„\": \"ń\",\n \"∠⃒\": \"∠⃒\",\n \"⩰̸\": \"⩰̸\",\n \"≋̸\": \"≋̸\",\n \"ʼn\": \"ʼn\",\n \"â™®\": \"♮\",\n \"⩃\": \"⩃\",\n \"ň\": \"ň\",\n \"ņ\": \"ņ\",\n \"â©Ì¸\": \"⩭̸\",\n \"â©‚\": \"⩂\",\n \"н\": \"н\",\n \"–\": \"–\",\n \"⇗\": \"⇗\",\n \"⤤\": \"⤤\",\n \"â‰Ì¸\": \"≐̸\",\n \"⤨\": \"⤨\",\n \"ð”«\": \"𝔫\",\n \"↮\": \"↮\",\n \"⫲\": \"⫲\",\n \"⋼\": \"⋼\",\n \"⋺\": \"⋺\",\n \"Ñš\": \"њ\",\n \"≦̸\": \"≦̸\",\n \"↚\": \"↚\",\n \"‥\": \"‥\",\n \"ð•Ÿ\": \"𝕟\",\n \"¬\": \"¬\",\n \"⋹̸\": \"⋹̸\",\n \"⋵̸\": \"⋵̸\",\n \"â‹·\": \"⋷\",\n \"⋶\": \"⋶\",\n \"⋾\": \"⋾\",\n \"⋽\": \"⋽\",\n \"⫽⃥\": \"⫽⃥\",\n \"∂̸\": \"∂̸\",\n \"⨔\": \"⨔\",\n \"↛\": \"↛\",\n \"⤳̸\": \"⤳̸\",\n \"â†Ì¸\": \"↝̸\",\n \"ð“ƒ\": \"𝓃\",\n \"⊄\": \"⊄\",\n \"⫅̸\": \"⫅̸\",\n \"⊅\": \"⊅\",\n \"⫆̸\": \"⫆̸\",\n \"ñ\": \"ñ\",\n \"ν\": \"ν\",\n \"#\": \"#\",\n \"â„–\": \"№\",\n \" \": \" \",\n \"âŠ\": \"⊭\",\n \"⤄\": \"⤄\",\n \"â‰âƒ’\": \"≍⃒\",\n \"⊬\": \"⊬\",\n \"≥⃒\": \"≥⃒\",\n \">⃒\": \">⃒\",\n \"⧞\": \"⧞\",\n \"⤂\": \"⤂\",\n \"≤⃒\": \"≤⃒\",\n \"<⃒\": \"<⃒\",\n \"⊴⃒\": \"⊴⃒\",\n \"⤃\": \"⤃\",\n \"⊵⃒\": \"⊵⃒\",\n \"∼⃒\": \"∼⃒\",\n \"⇖\": \"⇖\",\n \"⤣\": \"⤣\",\n \"⤧\": \"⤧\",\n \"ó\": \"ó\",\n \"ô\": \"ô\",\n \"о\": \"о\",\n \"Å‘\": \"ő\",\n \"⨸\": \"⨸\",\n \"⦼\": \"⦼\",\n \"Å“\": \"œ\",\n \"⦿\": \"⦿\",\n \"ð”¬\": \"𝔬\",\n \"Ë›\": \"˛\",\n \"ò\": \"ò\",\n \"â§\": \"⧁\",\n \"⦵\": \"⦵\",\n \"⦾\": \"⦾\",\n \"⦻\": \"⦻\",\n \"⧀\": \"⧀\",\n \"Å\": \"ō\",\n \"ω\": \"ω\",\n \"ο\": \"ο\",\n \"⦶\": \"⦶\",\n \"ð• \": \"𝕠\",\n \"⦷\": \"⦷\",\n \"⦹\": \"⦹\",\n \"∨\": \"∨\",\n \"â©\": \"⩝\",\n \"â„´\": \"ℴ\",\n \"ª\": \"ª\",\n \"º\": \"º\",\n \"⊶\": \"⊶\",\n \"â©–\": \"⩖\",\n \"â©—\": \"⩗\",\n \"â©›\": \"⩛\",\n \"ø\": \"ø\",\n \"⊘\": \"⊘\",\n \"õ\": \"õ\",\n \"⨶\": \"⨶\",\n \"ö\": \"ö\",\n \"⌽\": \"⌽\",\n \"¶\": \"¶\",\n \"⫳\": \"⫳\",\n \"⫽\": \"⫽\",\n \"п\": \"п\",\n \"%\": \"%\",\n \".\": \".\",\n \"‰\": \"‰\",\n \"‱\": \"‱\",\n \"ð”\": \"𝔭\",\n \"φ\": \"φ\",\n \"Ï•\": \"ϕ\",\n \"☎\": \"☎\",\n \"Ï€\": \"π\",\n \"Ï–\": \"ϖ\",\n \"â„Ž\": \"ℎ\",\n \"+\": \"+\",\n \"⨣\": \"⨣\",\n \"⨢\": \"⨢\",\n \"⨥\": \"⨥\",\n \"⩲\": \"⩲\",\n \"⨦\": \"⨦\",\n \"⨧\": \"⨧\",\n \"⨕\": \"⨕\",\n \"ð•¡\": \"𝕡\",\n \"£\": \"£\",\n \"⪳\": \"⪳\",\n \"⪷\": \"⪷\",\n \"⪹\": \"⪹\",\n \"⪵\": \"⪵\",\n \"⋨\": \"⋨\",\n \"′\": \"′\",\n \"⌮\": \"⌮\",\n \"⌒\": \"⌒\",\n \"⌓\": \"⌓\",\n \"⊰\": \"⊰\",\n \"ð“…\": \"𝓅\",\n \"ψ\": \"ψ\",\n \" \": \" \",\n \"ð”®\": \"𝔮\",\n \"ð•¢\": \"𝕢\",\n \"â—\": \"⁗\",\n \"ð“†\": \"𝓆\",\n \"⨖\": \"⨖\",\n \"?\": \"?\",\n \"⤜\": \"⤜\",\n \"⥤\": \"⥤\",\n \"∽̱\": \"∽̱\",\n \"Å•\": \"ŕ\",\n \"⦳\": \"⦳\",\n \"⦒\": \"⦒\",\n \"⦥\": \"⦥\",\n \"»\": \"»\",\n \"⥵\": \"⥵\",\n \"⤠\": \"⤠\",\n \"⤳\": \"⤳\",\n \"⤞\": \"⤞\",\n \"⥅\": \"⥅\",\n \"⥴\": \"⥴\",\n \"↣\": \"↣\",\n \"â†\": \"↝\",\n \"⤚\": \"⤚\",\n \"∶\": \"∶\",\n \"â³\": \"❳\",\n \"}\": \"}\",\n \"]\": \"]\",\n \"⦌\": \"⦌\",\n \"⦎\": \"⦎\",\n \"â¦\": \"⦐\",\n \"Å™\": \"ř\",\n \"Å—\": \"ŗ\",\n \"Ñ€\": \"р\",\n \"⤷\": \"⤷\",\n \"⥩\": \"⥩\",\n \"↳\": \"↳\",\n \"â–\": \"▭\",\n \"⥽\": \"⥽\",\n \"ð”¯\": \"𝔯\",\n \"⥬\": \"⥬\",\n \"Ï\": \"ρ\",\n \"ϱ\": \"ϱ\",\n \"⇉\": \"⇉\",\n \"â‹Œ\": \"⋌\",\n \"Ëš\": \"˚\",\n \"â€\": \"‏\",\n \"⎱\": \"⎱\",\n \"â«®\": \"⫮\",\n \"âŸ\": \"⟭\",\n \"⇾\": \"⇾\",\n \"⦆\": \"⦆\",\n \"ð•£\": \"𝕣\",\n \"⨮\": \"⨮\",\n \"⨵\": \"⨵\",\n \")\": \")\",\n \"⦔\": \"⦔\",\n \"⨒\": \"⨒\",\n \"›\": \"›\",\n \"ð“‡\": \"𝓇\",\n \"â‹Š\": \"⋊\",\n \"â–¹\": \"▹\",\n \"⧎\": \"⧎\",\n \"⥨\": \"⥨\",\n \"â„ž\": \"℞\",\n \"Å›\": \"ś\",\n \"⪴\": \"⪴\",\n \"⪸\": \"⪸\",\n \"Å¡\": \"š\",\n \"ÅŸ\": \"ş\",\n \"Å\": \"ŝ\",\n \"⪶\": \"⪶\",\n \"⪺\": \"⪺\",\n \"â‹©\": \"⋩\",\n \"⨓\": \"⨓\",\n \"Ñ\": \"с\",\n \"â‹…\": \"⋅\",\n \"⩦\": \"⩦\",\n \"⇘\": \"⇘\",\n \"§\": \"§\",\n \";\": \";\",\n \"⤩\": \"⤩\",\n \"✶\": \"✶\",\n \"ð”°\": \"𝔰\",\n \"♯\": \"♯\",\n \"щ\": \"щ\",\n \"ш\": \"ш\",\n \"Â\": \"­\",\n \"σ\": \"σ\",\n \"Ï‚\": \"ς\",\n \"⩪\": \"⩪\",\n \"⪞\": \"⪞\",\n \"⪠\": \"⪠\",\n \"âª\": \"⪝\",\n \"⪟\": \"⪟\",\n \"≆\": \"≆\",\n \"⨤\": \"⨤\",\n \"⥲\": \"⥲\",\n \"⨳\": \"⨳\",\n \"⧤\": \"⧤\",\n \"⌣\": \"⌣\",\n \"⪪\": \"⪪\",\n \"⪬\": \"⪬\",\n \"⪬︀\": \"⪬︀\",\n \"ÑŒ\": \"ь\",\n \"/\": \"/\",\n \"⧄\": \"⧄\",\n \"⌿\": \"⌿\",\n \"ð•¤\": \"𝕤\",\n \"â™ \": \"♠\",\n \"⊓︀\": \"⊓︀\",\n \"⊔︀\": \"⊔︀\",\n \"ð“ˆ\": \"𝓈\",\n \"☆\": \"☆\",\n \"⊂\": \"⊂\",\n \"â«…\": \"⫅\",\n \"⪽\": \"⪽\",\n \"⫃\": \"⫃\",\n \"â«\": \"⫁\",\n \"â«‹\": \"⫋\",\n \"⊊\": \"⊊\",\n \"⪿\": \"⪿\",\n \"⥹\": \"⥹\",\n \"⫇\": \"⫇\",\n \"â«•\": \"⫕\",\n \"â«“\": \"⫓\",\n \"♪\": \"♪\",\n \"¹\": \"¹\",\n \"²\": \"²\",\n \"³\": \"³\",\n \"⫆\": \"⫆\",\n \"⪾\": \"⪾\",\n \"⫘\": \"⫘\",\n \"â«„\": \"⫄\",\n \"⟉\": \"⟉\",\n \"â«—\": \"⫗\",\n \"⥻\": \"⥻\",\n \"â«‚\": \"⫂\",\n \"â«Œ\": \"⫌\",\n \"⊋\": \"⊋\",\n \"â«€\": \"⫀\",\n \"⫈\": \"⫈\",\n \"â«”\": \"⫔\",\n \"â«–\": \"⫖\",\n \"⇙\": \"⇙\",\n \"⤪\": \"⤪\",\n \"ß\": \"ß\",\n \"⌖\": \"⌖\",\n \"Ï„\": \"τ\",\n \"Å¥\": \"ť\",\n \"Å£\": \"ţ\",\n \"Ñ‚\": \"т\",\n \"⌕\": \"⌕\",\n \"ð”±\": \"𝔱\",\n \"θ\": \"θ\",\n \"Ï‘\": \"ϑ\",\n \"þ\": \"þ\",\n \"×\": \"×\",\n \"⨱\": \"⨱\",\n \"⨰\": \"⨰\",\n \"⌶\": \"⌶\",\n \"⫱\": \"⫱\",\n \"ð•¥\": \"𝕥\",\n \"â«š\": \"⫚\",\n \"‴\": \"‴\",\n \"â–µ\": \"▵\",\n \"≜\": \"≜\",\n \"â—¬\": \"◬\",\n \"⨺\": \"⨺\",\n \"⨹\": \"⨹\",\n \"â§\": \"⧍\",\n \"⨻\": \"⨻\",\n \"â¢\": \"⏢\",\n \"ð“‰\": \"𝓉\",\n \"ц\": \"ц\",\n \"Ñ›\": \"ћ\",\n \"ŧ\": \"ŧ\",\n \"⥣\": \"⥣\",\n \"ú\": \"ú\",\n \"Ñž\": \"ў\",\n \"Å\": \"ŭ\",\n \"û\": \"û\",\n \"у\": \"у\",\n \"ű\": \"ű\",\n \"⥾\": \"⥾\",\n \"ð”²\": \"𝔲\",\n \"ù\": \"ù\",\n \"â–€\": \"▀\",\n \"⌜\": \"⌜\",\n \"âŒ\": \"⌏\",\n \"â—¸\": \"◸\",\n \"Å«\": \"ū\",\n \"ų\": \"ų\",\n \"ð•¦\": \"𝕦\",\n \"Ï…\": \"υ\",\n \"⇈\": \"⇈\",\n \"âŒ\": \"⌝\",\n \"⌎\": \"⌎\",\n \"ů\": \"ů\",\n \"â—¹\": \"◹\",\n \"ð“Š\": \"𝓊\",\n \"â‹°\": \"⋰\",\n \"Å©\": \"ũ\",\n \"ü\": \"ü\",\n \"⦧\": \"⦧\",\n \"⫨\": \"⫨\",\n \"â«©\": \"⫩\",\n \"⦜\": \"⦜\",\n \"⊊︀\": \"⊊︀\",\n \"⫋︀\": \"⫋︀\",\n \"⊋︀\": \"⊋︀\",\n \"⫌︀\": \"⫌︀\",\n \"в\": \"в\",\n \"⊻\": \"⊻\",\n \"≚\": \"≚\",\n \"â‹®\": \"⋮\",\n \"ð”³\": \"𝔳\",\n \"ð•§\": \"𝕧\",\n \"ð“‹\": \"𝓋\",\n \"⦚\": \"⦚\",\n \"ŵ\": \"ŵ\",\n \"â©Ÿ\": \"⩟\",\n \"≙\": \"≙\",\n \"℘\": \"℘\",\n \"ð”´\": \"𝔴\",\n \"ð•¨\": \"𝕨\",\n \"ð“Œ\": \"𝓌\",\n \"ð”µ\": \"𝔵\",\n \"ξ\": \"ξ\",\n \"â‹»\": \"⋻\",\n \"ð•©\": \"𝕩\",\n \"ð“\": \"𝓍\",\n \"ý\": \"ý\",\n \"Ñ\": \"я\",\n \"Å·\": \"ŷ\",\n \"Ñ‹\": \"ы\",\n \"Â¥\": \"¥\",\n \"ð”¶\": \"𝔶\",\n \"Ñ—\": \"ї\",\n \"ð•ª\": \"𝕪\",\n \"ð“Ž\": \"𝓎\",\n \"ÑŽ\": \"ю\",\n \"ÿ\": \"ÿ\",\n \"ź\": \"ź\",\n \"ž\": \"ž\",\n \"з\": \"з\",\n \"ż\": \"ż\",\n \"ζ\": \"ζ\",\n \"ð”·\": \"𝔷\",\n \"ж\": \"ж\",\n \"â‡\": \"⇝\",\n \"ð•«\": \"𝕫\",\n \"ð“\": \"𝓏\",\n \"â€\": \"‍\",\n \"‌\": \"‌\"\n }\n }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.numericUnicodeMap = {\n 0: 65533,\n 128: 8364,\n 130: 8218,\n 131: 402,\n 132: 8222,\n 133: 8230,\n 134: 8224,\n 135: 8225,\n 136: 710,\n 137: 8240,\n 138: 352,\n 139: 8249,\n 140: 338,\n 142: 381,\n 145: 8216,\n 146: 8217,\n 147: 8220,\n 148: 8221,\n 149: 8226,\n 150: 8211,\n 151: 8212,\n 152: 732,\n 153: 8482,\n 154: 353,\n 155: 8250,\n 156: 339,\n 158: 382,\n 159: 376\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.fromCodePoint = String.fromCodePoint || function (astralCodePoint) {\n return String.fromCharCode(Math.floor((astralCodePoint - 65536) / 1024) + 55296, (astralCodePoint - 65536) % 1024 + 56320);\n};\nexports.getCodePoint = String.prototype.codePointAt ? function (input, position) {\n return input.codePointAt(position);\n} : function (input, position) {\n return (input.charCodeAt(position) - 55296) * 1024 + input.charCodeAt(position + 1) - 56320 + 65536;\n};\nexports.highSurrogateFrom = 55296;\nexports.highSurrogateTo = 56319;","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : global.vhtml = factory();\n})(this, function () {\n 'use strict';\n\n var emptyTags = ['area', 'base', 'br', 'col', 'command', 'embed', 'hr', 'img', 'input', 'keygen', 'link', 'meta', 'param', 'source', 'track', 'wbr'];\n var esc = function esc(str) {\n return String(str).replace(/[&<>\"']/g, function (s) {\n return '&' + map[s] + ';';\n });\n };\n var map = {\n '&': 'amp',\n '<': 'lt',\n '>': 'gt',\n '\"': 'quot',\n \"'\": 'apos'\n };\n var setInnerHTMLAttr = 'dangerouslySetInnerHTML';\n var DOMAttributeNames = {\n className: 'class',\n htmlFor: 'for'\n };\n var sanitized = {};\n function h(name, attrs) {\n var stack = [],\n s = '';\n attrs = attrs || {};\n for (var i = arguments.length; i-- > 2;) {\n stack.push(arguments[i]);\n }\n if (typeof name === 'function') {\n attrs.children = stack.reverse();\n return name(attrs);\n }\n if (name) {\n s += '<' + name;\n if (attrs) for (var _i in attrs) {\n if (attrs[_i] !== false && attrs[_i] != null && _i !== setInnerHTMLAttr) {\n s += ' ' + (DOMAttributeNames[_i] ? DOMAttributeNames[_i] : esc(_i)) + '=\"' + esc(attrs[_i]) + '\"';\n }\n }\n s += '>';\n }\n if (emptyTags.indexOf(name) === -1) {\n if (attrs[setInnerHTMLAttr]) {\n s += attrs[setInnerHTMLAttr].__html;\n } else while (stack.length) {\n var child = stack.pop();\n if (child) {\n if (child.pop) {\n for (var _i2 = child.length; _i2--;) {\n stack.push(child[_i2]);\n }\n } else {\n s += sanitized[child] === true ? child : esc(child);\n }\n }\n }\n s += name ? '</' + name + '>' : '';\n }\n sanitized[s] = true;\n return s;\n }\n return h;\n});","// extracted by mini-css-extract-plugin\nexport var categories = \"all-news-module--categories--f9274\";\nexport var images = \"all-news-module--images--bb9cf\";\nexport var link = \"all-news-module--link--b5b1f\";\nexport var newsCard = \"all-news-module--newsCard--79a27\";\nexport var newsCardContent = \"all-news-module--newsCardContent--53cf1\";\nexport var newsCardDescription = \"all-news-module--newsCardDescription--d6b50\";\nexport var newsCardDescriptionContent = \"all-news-module--newsCardDescriptionContent--652a6\";\nexport var newsCardHeader = \"all-news-module--newsCardHeader--195a2\";\nexport var newsCardImageBox = \"all-news-module--newsCardImageBox--ffb22\";\nexport var newsCardList = \"all-news-module--newsCardList--9eae7\";\nexport var newsTitle = \"all-news-module--newsTitle--d6328\";\nexport var publicationDate = \"all-news-module--publicationDate--dbb7e\";\nexport var truncateContent = \"all-news-module--truncate-content--3f141\";\nexport var truncateOverflow = \"all-news-module--truncate-overflow--76760\";","import React from \"react\"\nimport * as styles from \"./all-news.module.scss\"\nimport { AllNewsModuleConfigurationFieldsFragment, NewsListFieldsFragment } from \"../../../graphql-types\"\nimport { ReactSVG } from \"react-svg\"\nimport { graphql } from \"gatsby\"\nimport * as inputsStyles from \"../layout/inputs.module.scss\"\nimport { format } from \"date-fns\"\nimport sanitizeHtml from \"sanitize-html\"\nimport * as globalConfig from \"../../../config\"\n\ntype RenderProps = {\n news: NewsListFieldsFragment[]\n config: AllNewsModuleConfigurationFieldsFragment\n title: string\n}\n\nexport function isNewsPublished(news: NewsListFieldsFragment) {\n const todayDate: number = new Date().getTime()\n const publicationDate: number = new Date(news.publicationDate).getTime()\n const publicationStopDate: number = new Date(news.publicationStopDate).getTime()\n\n if (\n (publicationStopDate && (todayDate < publicationDate || todayDate >= publicationStopDate)) ||\n todayDate < publicationDate\n ) {\n return false\n } else return true\n}\n\nconst AllNews: React.FC<RenderProps> = ({ news, title, config }) => {\n function buildNewsCard(newsData: NewsListFieldsFragment) {\n const TEXT_MAX_LENGTH: number = 340\n const isEllispisNeeded: boolean = newsData.newsIntroduction.length > TEXT_MAX_LENGTH\n const redirectUrl: string = `/news/${newsData.slug}`\n const categories: string = newsData.categories && newsData.categories.map(e => e.title).join(\", \")\n // Error displayed by date-format => RangeError: Use `yyyy` instead of `YYYY` (in `dd/MM/YYYY`) for formatting years to the input\n const dateFormat =\n globalConfig.date_format[globalConfig.locale] === \"dd/MM/YYYY\"\n ? \"dd/MM/yyyy\"\n : globalConfig.date_format[globalConfig.locale]\n const publicationDate = format(new Date(newsData.publicationDate), dateFormat)\n\n return (\n <li key={newsData.id} className={styles.newsCard} aria-labelledby={newsData.title}>\n <div className={styles.newsCardHeader}>\n <div className={styles.publicationDate}>\n {publicationDate} {newsData.categories.length != 0 ? \" –\" : null}\n </div>\n <div className={styles.categories}>{categories}</div>\n </div>\n <div className={styles.newsCardContent}>\n <div className={styles.newsCardImageBox}>\n {newsData.image.format == \"svg\" ? (\n <ReactSVG\n src={newsData.image.url}\n className={styles.images}\n beforeInjection={svg => svg.setAttribute(\"aria-label\", newsData.image.alt || \"\")}\n />\n ) : (\n <img src={newsData.image.url} className={styles.images} alt={newsData.image.alt || \"\"} />\n )}\n </div>\n <div className={styles.newsCardDescription}>\n <h2 className={styles.newsTitle}>{newsData.title}</h2>\n <div className={styles.newsCardDescriptionContent}>\n <div\n className={\n isEllispisNeeded\n ? `${styles.truncateContent} ${styles.truncateOverflow}`\n : `${styles.truncateContent}`\n }\n >\n <p\n dangerouslySetInnerHTML={{\n __html: sanitizeHtml(newsData.newsIntroduction),\n }}\n />\n </div>\n <a href={redirectUrl} className={`${styles.link} ${inputsStyles.primaryButton}`}>\n {config.newsRedirectLabel}\n </a>\n </div>\n </div>\n </div>\n </li>\n )\n }\n\n return (\n <ul className={styles.newsCardList} aria-label={title}>\n {news.filter(isNewsPublished).map(buildNewsCard)}\n </ul>\n )\n}\n\nexport const fragments = graphql`\n fragment AllNewsModuleConfigurationFields on DatoCmsGlobalConfiguration {\n lastNewsLabel\n newsRedirectLabel\n }\n\n fragment NewsListFields on DatoCmsNews {\n id\n __typename\n title\n slug\n publicationDate\n publicationStopDate\n newsIntroduction\n categories {\n title\n }\n image {\n alt\n url\n format\n }\n }\n`\n\nexport default AllNews\n","import * as inputsStyles from \"../inputs.module.scss\"\nimport React from \"react\"\nimport { RegisterOptions, UseFormRegisterReturn } from \"react-hook-form\"\n\ntype RenderProps = {\n id?: string\n type: string\n name: string\n required?: boolean\n className?: string\n placeholder?: string\n validationType?: ValidationType\n hasErrors?: boolean\n onFocus?: (value: any) => void\n autocomplete?: boolean\n} & (\n | {\n value?: string\n onChange?: (value: string) => void\n register: (name: string, options?: RegisterOptions) => UseFormRegisterReturn\n }\n | { value: string; onChange: (value: string) => void; register: undefined }\n)\n\nexport enum ValidationType {\n None,\n Email,\n PhoneNumber,\n PhoneNumberE164,\n}\n\nconst Input: React.FC<RenderProps> = ({\n id,\n type,\n name,\n required,\n className = \"\",\n placeholder = \"\",\n value,\n onChange,\n register,\n validationType,\n hasErrors,\n onFocus,\n autocomplete,\n}) => {\n const validation = {\n required,\n pattern: getValidationPattern(validationType),\n }\n\n return register != undefined ? (\n <input\n id={id}\n type={type}\n name={name}\n aria-describedby={id}\n placeholder={placeholder}\n required={required}\n autoComplete={validationType === ValidationType.PhoneNumber ? \"tel-national\" : autocomplete ? name : null}\n className={\n inputsStyles.input +\n \" \" +\n (isNotBlank(value) ? inputsStyles.notBlank + \" \" : \"\") +\n (hasErrors ? inputsStyles.fieldInError + \" \" : \"\") +\n className\n }\n onChange={event => {\n onChange && onChange(event.target.value)\n }}\n {...register(name, { ...validation })}\n value={value}\n onFocus={event => {\n onFocus && onFocus(event.target.id)\n }}\n />\n ) : (\n <input\n id={id}\n type={type}\n name={name}\n aria-describedby={id}\n autoComplete={validationType === ValidationType.PhoneNumber ? \"tel-national\" : autocomplete ? name : null}\n placeholder={placeholder}\n required={required}\n className={\n inputsStyles.input +\n \" \" +\n (isNotBlank(value) ? inputsStyles.notBlank + \" \" : \"\") +\n (hasErrors ? inputsStyles.fieldInError + \" \" : \"\") +\n className\n }\n onChange={event => {\n onChange && onChange(event.target.value)\n }}\n value={value}\n onFocus={event => {\n onFocus && onFocus(event.target.id)\n }}\n />\n )\n}\n\nfunction getValidationPattern(validationType: ValidationType) {\n switch (validationType) {\n case ValidationType.Email:\n return /.+@.+/\n case ValidationType.PhoneNumber:\n return /([\\s.-]*[0-9][\\s.-]*){10}/\n case ValidationType.PhoneNumberE164:\n return /^\\+[1-9]\\d{1,14}$/\n default:\n return undefined\n }\n}\n\nfunction isNotBlank(value: string) {\n return value && value.trim().length > 0\n}\n\nexport default Input\n","// extracted by mini-css-extract-plugin\nexport var content = \"rich-datocms-content-module--content--a014f\";\nexport var embeddedIframe = \"rich-datocms-content-module--embeddedIframe--d3471\";\nexport var highlight = \"rich-datocms-content-module--highlight--ebf82\";\nexport var image = \"rich-datocms-content-module--image--e13a3\";\nexport var imageOnRight = \"rich-datocms-content-module--imageOnRight--c2c03\";\nexport var richContent = \"rich-datocms-content-module--richContent--02f35\";\nexport var textWithImage = \"rich-datocms-content-module--textWithImage--01227\";\nexport var textWithVideo = \"rich-datocms-content-module--textWithVideo--deb02\";\nexport var video = \"rich-datocms-content-module--video--60a01\";\nexport var videoOnRight = \"rich-datocms-content-module--videoOnRight--e13b9\";\nexport var videoOnly = \"rich-datocms-content-module--videoOnly--0274a\";","// extracted by mini-css-extract-plugin\nexport var line = \"schedules-search-results-transport-method-module--line--609c2\";\nexport var lineTypeList = \"schedules-search-results-transport-method-module--lineTypeList--e680b\";\nexport var lineTypeTitle = \"schedules-search-results-transport-method-module--lineTypeTitle--fc2a1\";\nexport var linesList = \"schedules-search-results-transport-method-module--linesList--7b579\";\nexport var pictogram = \"schedules-search-results-transport-method-module--pictogram--84bf4\";\nexport var transportMethodPanel = \"schedules-search-results-transport-method-module--transportMethodPanel--3faaf\";\nexport var transportMethodTitle = \"schedules-search-results-transport-method-module--transportMethodTitle--3a7b3\";","// extracted by mini-css-extract-plugin\nexport var linePanel = \"schedules-search-results-line-module--linePanel--321fe\";\nexport var linkIcon = \"schedules-search-results-line-module--linkIcon--79a25\";\nexport var pictogram = \"schedules-search-results-line-module--pictogram--585ac\";\nexport var schedule = \"schedules-search-results-line-module--schedule--ef946\";\nexport var schedulesList = \"schedules-search-results-line-module--schedulesList--41fc4\";\nexport var title = \"schedules-search-results-line-module--title--ba9a6\";","import React from \"react\"\nimport {\n LinesListFieldsFragment,\n SchedulesSearchLinkIconFragment,\n SchedulesSearchModuleFieldsFragment,\n SchedulesSearchPictogramFragment,\n} from \"../../../../graphql-types\"\nimport * as styles from \"./schedules-search-results-line.module.scss\"\nimport { ReactSVG } from \"react-svg\"\n\ntype Line = LinesListFieldsFragment\n\ntype RenderProps = {\n line: Line\n moduleConfiguration: SchedulesSearchModuleFieldsFragment\n}\n\nconst SchedulesSearchResultsLine: React.FC<RenderProps> = ({ line, moduleConfiguration }) => {\n return (\n <section className={styles.linePanel}>\n <h5 className={styles.title}>\n {displayImage(line.pictogram, styles.pictogram)} {line.name}\n </h5>\n <ul className={styles.schedulesList}>\n {line.schedules.map(schedule => (\n <li key={schedule.id} className={styles.schedule}>\n {displayImage(moduleConfiguration.scheduleIcon, styles.linkIcon)}\n <a href={(schedule.file && schedule.file.url) || schedule.link} target=\"_blank\">\n {schedule.label}\n </a>\n </li>\n ))}\n {line.lineMap && (\n <li key={line.id} className={styles.schedule}>\n {displayImage(moduleConfiguration.lineMapIcon, styles.linkIcon)}\n <a href={line.lineMap.url} download>\n {moduleConfiguration.lineMapLinkLabel}\n </a>\n </li>\n )}\n </ul>\n </section>\n )\n}\n\nconst displayImage = (image: SchedulesSearchPictogramFragment | SchedulesSearchLinkIconFragment, className: string) => {\n if (image.format === \"svg\") {\n return (\n <ReactSVG\n src={image.url}\n className={className}\n beforeInjection={svg => svg.setAttribute(\"aria-label\", image.alt || \"\")}\n />\n )\n }\n return <img src={image.url} alt={image.alt || \"\"} className={className} aria-hidden=\"true\" />\n}\n\nexport default SchedulesSearchResultsLine\n","import React from \"react\"\nimport {\n LinesListFieldsFragment,\n SchedulesSearchModuleFieldsFragment,\n SchedulesSearchTransportMethodPictogramFragment,\n SchedulesSearchTransportMethodsFieldsFragment,\n} from \"../../../../graphql-types\"\nimport * as styles from \"./schedules-search-results-transport-method.module.scss\"\nimport SchedulesSearchResultsLine from \"../results-line/schedules-search-results-line\"\nimport { ReactSVG } from \"react-svg\"\n\ntype Line = LinesListFieldsFragment\n\ntype RenderProps = {\n transportMethod: SchedulesSearchTransportMethodsFieldsFragment\n lines: Line[]\n moduleConfiguration: SchedulesSearchModuleFieldsFragment\n}\n\nconst SchedulesSearchResultsTransportMethod: React.FC<RenderProps> = ({\n transportMethod,\n lines,\n moduleConfiguration,\n}) => {\n const groupedByType = groupByLineType(lines)\n return (\n <section className={styles.transportMethodPanel}>\n <h3 className={styles.transportMethodTitle}>\n {displayImage(transportMethod.pictogram)}\n <span>{transportMethod.name}</span>\n </h3>\n <ul className={styles.lineTypeList}>\n {Array.from(groupedByType.values()).map(linesGroup => {\n return (\n <li key={linesGroup[0].lineType.id}>\n <h4 className={styles.lineTypeTitle}>{linesGroup[0].lineType.label}</h4>\n <ul className={styles.linesList}>\n {linesGroup.map(line => (\n <li key={line.id} className={styles.line}>\n <SchedulesSearchResultsLine line={line} moduleConfiguration={moduleConfiguration} />\n </li>\n ))}\n </ul>\n </li>\n )\n })}\n </ul>\n </section>\n )\n}\n\nfunction groupByLineType(lines: Line[]) {\n return lines.reduce((linesByType, line) => {\n const existingEntries = linesByType.get(line.lineType.id) || []\n const newEntries = existingEntries.concat(line)\n linesByType.set(line.lineType.id, newEntries)\n return linesByType\n }, new Map<string, Line[]>())\n}\n\nconst displayImage = (image: SchedulesSearchTransportMethodPictogramFragment) => {\n if (image.format === \"svg\") {\n return (\n <ReactSVG\n src={image.url}\n className={styles.pictogram}\n beforeInjection={svg => svg.setAttribute(\"aria-label\", image.alt || \"\")}\n />\n )\n }\n\n return <img src={image.url} alt={image.alt || \"\"} className={styles.pictogram} aria-hidden=\"true\" />\n}\n\nexport default SchedulesSearchResultsTransportMethod\n","import React from \"react\"\nimport { LinesListFieldsFragment, SchedulesSearchModuleFieldsFragment } from \"../../../../graphql-types\"\nimport * as styles from \"./schedules-search-results.module.scss\"\nimport SchedulesSearchResultsTransportMethod from \"../results-transport-method/schedules-search-results-transport-method\"\n\ntype Line = LinesListFieldsFragment\ntype Municipality = LinesListFieldsFragment[\"municipalities\"][0]\ntype PointOfInterest = LinesListFieldsFragment[\"pointsOfInterest\"][0]\n\ntype RenderProps = {\n lines: Line[]\n selectedLine: Line | null\n selectedMunicipality: Municipality | null\n selectedPointOfInterest: PointOfInterest | null\n moduleConfiguration: SchedulesSearchModuleFieldsFragment\n}\n\nconst SchedulesSearchResults: React.FC<RenderProps> = ({\n lines,\n selectedLine,\n selectedMunicipality,\n selectedPointOfInterest,\n moduleConfiguration,\n}) => {\n const filteredLines = lines.filter(filterMatchingLines(selectedLine, selectedMunicipality, selectedPointOfInterest))\n const groupedByMethod = groupByTransportMethod(filteredLines)\n if (filteredLines.length === 0) {\n return <div className={styles.noResult}>{moduleConfiguration.noResultLabel}</div>\n }\n return (\n <>\n <p className={styles.resultsTitle} id=\"js-schedules-search-result-label\" tabIndex={-1}>\n {moduleConfiguration.resultsLabel}\n </p>\n <ul className={styles.results}>\n {Array.from(groupedByMethod.values()).map(groupLines => {\n return (\n <li key={groupLines[0].transportMethod.id} className={styles.result}>\n <SchedulesSearchResultsTransportMethod\n transportMethod={groupLines[0].transportMethod}\n lines={groupLines}\n moduleConfiguration={moduleConfiguration}\n />\n </li>\n )\n })}\n </ul>\n </>\n )\n}\n\nfunction filterMatchingLines(\n selectedLine: Line | null,\n selectedMunicipality: Municipality | null,\n selectedPointOfInterest: PointOfInterest | null\n) {\n return line => {\n const matchLine = !selectedLine || selectedLine.id === line.id\n const matchMunicipality =\n !selectedMunicipality || line.municipalities.some(municipality => municipality.id === selectedMunicipality.id)\n const matchPointOfInterest =\n !selectedPointOfInterest ||\n line.pointsOfInterest.some(pointOfInterest => pointOfInterest.id === selectedPointOfInterest.id)\n\n return matchLine && matchMunicipality && matchPointOfInterest\n }\n}\n\nfunction groupByTransportMethod(lines: Line[]) {\n return lines.reduce((linesByTransportMethod, line) => {\n const existingEntries = linesByTransportMethod.get(line.transportMethod.id) || []\n const newEntries = existingEntries.concat(line)\n linesByTransportMethod.set(line.transportMethod.id, newEntries)\n return linesByTransportMethod\n }, new Map<string, Line[]>())\n}\n\nexport default SchedulesSearchResults\n","// extracted by mini-css-extract-plugin\nexport var noResult = \"schedules-search-results-module--noResult--17533\";\nexport var result = \"schedules-search-results-module--result--89ff0\";\nexport var results = \"schedules-search-results-module--results--d2e5c\";\nexport var resultsTitle = \"schedules-search-results-module--resultsTitle--32111\";","// extracted by mini-css-extract-plugin\nexport var errorMessage = \"schedules-search-form-module--errorMessage--2d9fc\";\nexport var field = \"schedules-search-form-module--field--1e7ba\";\nexport var formPart = \"schedules-search-form-module--formPart--a2583\";\nexport var image = \"schedules-search-form-module--image--7b97e\";\nexport var searchButton = \"schedules-search-form-module--searchButton--d5402\";\nexport var searchFormFields = \"schedules-search-form-module--searchFormFields--947b5\";","import React, { useEffect, useState } from \"react\"\nimport {\n LinesListFieldsFragment,\n SchedulesSearchFormIconFragment,\n SchedulesSearchModuleFieldsFragment,\n} from \"../../../../graphql-types\"\nimport Autocomplete from \"../../autocomplete/autocomplete\"\nimport * as styles from \"./schedules-search-form.module.scss\"\nimport * as inputsStyles from \"../../layout/inputs.module.scss\"\nimport { ReactSVG } from \"react-svg\"\nimport { pushGtmEvent } from \"../../../gtm/interaction-event\"\n\ntype Line = LinesListFieldsFragment\ntype Municipality = LinesListFieldsFragment[\"municipalities\"][0]\ntype PointOfInterest = LinesListFieldsFragment[\"pointsOfInterest\"][0]\n\ntype RenderProps = {\n lines: Line[]\n moduleConfiguration: SchedulesSearchModuleFieldsFragment\n lineValue: Line | null\n municipalityValue: Municipality | null\n onChange: (value: FormResult) => void\n}\n\nexport type FormResult = {\n line: Line | null\n municipality: Municipality | null\n pointOfInterest: PointOfInterest | null\n}\n\nconst SchedulesSearchForm: React.FC<RenderProps> = ({\n lines,\n moduleConfiguration,\n lineValue,\n municipalityValue,\n onChange,\n}) => {\n const [selectedLine, setSelectedLine] = useState(null)\n const [selectedMunicipality, setSelectedMunicipality] = useState(null)\n const [selectedPointOfInterest, setSelectedPointOfInterest] = useState(null)\n const [municipalityError, setMunicipalityError] = useState(false)\n const [lineError, setLineError] = useState(false)\n\n const linesWithSchedulesOrPlan = lines.filter(line => line.schedules.length > 0 || line.lineMap)\n\n useEffect(() => {\n setSelectedLine(lineValue)\n if (selectedLine || lineValue) {\n setLineError(false)\n }\n }, [lineValue])\n useEffect(() => {\n setSelectedMunicipality(municipalityValue)\n if (selectedMunicipality || municipalityValue) {\n setMunicipalityError(false)\n }\n }, [municipalityValue])\n\n useEffect(() => {\n if (selectedLine) {\n setLineError(false)\n }\n }, [selectedLine])\n\n useEffect(() => {\n if (selectedMunicipality) {\n setMunicipalityError(false)\n }\n }, [selectedMunicipality])\n\n function searchLines(query) {\n const filteredLines = filterLines(linesWithSchedulesOrPlan, selectedMunicipality, selectedPointOfInterest)\n if (!selectedLine) {\n setLineError(true)\n }\n return search(query, filteredLines, toLabel)\n }\n\n function searchMunicipalities(query) {\n const filteredMunicipalities = filterMunicipalities(linesWithSchedulesOrPlan, selectedLine, selectedPointOfInterest)\n if (!selectedMunicipality) {\n setMunicipalityError(true)\n }\n return search(query, filteredMunicipalities, toLabel)\n }\n\n function searchPointsOfInterest(query) {\n const filteredPointsOfInterest = filterPointOfInterests(\n linesWithSchedulesOrPlan,\n selectedLine,\n selectedMunicipality\n )\n return search(query, filteredPointsOfInterest, toLabel)\n }\n\n function sendChange(event) {\n pushGtmEvent(\n \"eventga\",\n \"Schedule Search\",\n `${selectedLine ? selectedLine.number : \"\"}_${selectedMunicipality ? selectedMunicipality.name : \"\"}_${\n selectedPointOfInterest ? selectedPointOfInterest.name : \"\"\n }`,\n \"\"\n )\n onChange({\n line: selectedLine,\n municipality: selectedMunicipality,\n pointOfInterest: selectedPointOfInterest,\n })\n event.preventDefault()\n }\n\n return (\n <form onSubmit={sendChange}>\n <div className={styles.searchFormFields}>\n {/* Lines */}\n {filterLines(lines).length > 0 && (\n <div className={styles.formPart}>\n {displayImage(moduleConfiguration.linesFieldIcon)}\n <div className={styles.field}>\n <label htmlFor=\"linesInput\">{moduleConfiguration.linesFieldLabel}</label>\n <Autocomplete\n onChange={setSelectedLine}\n suggestFunction={searchLines}\n toLabel={toLabel}\n id=\"linesInput\"\n value={lineValue}\n placeholder={moduleConfiguration.linesFieldPlaceholder}\n title={moduleConfiguration.linesFieldPlaceholder}\n />\n <div className={styles.errorMessage}>{lineError ? moduleConfiguration.lineErrorMessage : null}</div>\n </div>\n </div>\n )}\n\n {/* Municipalities */}\n {filterMunicipalities(lines).length > 0 && (\n <div className={styles.formPart}>\n {displayImage(moduleConfiguration.municipalitiesFieldIcon)}\n <div className={styles.field}>\n <label htmlFor=\"municipalitiesInput\">{moduleConfiguration.municipalitiesFieldLabel}</label>\n <Autocomplete\n onChange={setSelectedMunicipality}\n suggestFunction={searchMunicipalities}\n toLabel={toLabel}\n id=\"municipalitiesInput\"\n value={municipalityValue}\n placeholder={moduleConfiguration.municipalitiesFieldPlaceholder}\n title={moduleConfiguration.municipalitiesFieldPlaceholder}\n />\n <div className={styles.errorMessage}>\n {municipalityError ? moduleConfiguration.municipalityErrorMessage : null}\n </div>\n </div>\n </div>\n )}\n\n {/* Points of interest */}\n {filterPointOfInterests(lines).length > 0 && (\n <div className={styles.formPart}>\n {displayImage(moduleConfiguration.pointsOfInterestFieldIcon)}\n <div className={styles.field}>\n <label htmlFor=\"pointsOfInterestInput\">{moduleConfiguration.pointsOfInterestFieldLabel}</label>\n <Autocomplete\n onChange={setSelectedPointOfInterest}\n suggestFunction={searchPointsOfInterest}\n toLabel={toLabel}\n id=\"pointsOfInterestInput\"\n placeholder={moduleConfiguration.pointsOfInterestFieldPlaceholder}\n title={moduleConfiguration.pointsOfInterestFieldPlaceholder}\n />\n </div>\n </div>\n )}\n </div>\n <button type=\"submit\" className={inputsStyles.primaryButton + \" \" + styles.searchButton}>\n {moduleConfiguration.submitButtonLabel}\n </button>\n </form>\n )\n}\n\nconst displayImage = (image: SchedulesSearchFormIconFragment) => {\n if (image.format === \"svg\") {\n return (\n <ReactSVG\n src={image.url}\n className={styles.image}\n beforeInjection={svg => svg.setAttribute(\"aria-label\", image.alt || \"\")}\n />\n )\n }\n\n return <img src={image.url} alt={image.alt || \"\"} className={styles.image} aria-hidden=\"true\" />\n}\n\nfunction filterMunicipalities(\n lines: Line[],\n selectedLine?: Line | null,\n selectedPointOfInterest?: PointOfInterest | null\n): Municipality[] {\n if (selectedPointOfInterest) {\n if (!selectedLine) {\n return [selectedPointOfInterest.municipality]\n }\n return selectedLine.municipalities.filter(\n municipality => municipality.id === selectedPointOfInterest.municipality.id\n )\n }\n return Array.from(\n lines\n .reduce((municipalities, line) => {\n if (selectedLine && selectedLine.id !== line.id) {\n return municipalities\n }\n line.municipalities.forEach(municipality => municipalities.set(municipality.id, municipality))\n return municipalities\n }, new Map<string, Municipality>())\n .values()\n ).sort((a, b) => (a.name > b.name ? 1 : b.name > a.name ? -1 : 0))\n}\n\nfunction filterPointOfInterests(\n lines: Line[],\n selectedLine?: Line | null,\n selectedMunicipality?: Municipality | null\n): PointOfInterest[] {\n if (selectedLine) {\n return selectedLine.pointsOfInterest.filter(pointOfInterest => {\n return !selectedMunicipality || selectedMunicipality.id === pointOfInterest.municipality.id\n })\n }\n return Array.from(\n lines\n .reduce((pointsOfInterest, line) => {\n const isNotSelectedLine = selectedLine && selectedLine.id !== line.id\n if (isNotSelectedLine) {\n return pointsOfInterest\n }\n line.pointsOfInterest.forEach(pointOfInterest => {\n const matchesSelectedMunicipality =\n !selectedMunicipality || selectedMunicipality.id === pointOfInterest.municipality.id\n if (matchesSelectedMunicipality) {\n pointsOfInterest.set(pointOfInterest.id, pointOfInterest)\n }\n })\n return pointsOfInterest\n }, new Map<string, PointOfInterest>())\n .values()\n )\n}\n\nfunction filterLines(\n lines: Line[],\n selectedMunicipality?: Municipality | null,\n selectedPointOfInterest?: PointOfInterest | null\n): Line[] {\n return lines.filter(line => {\n const matchesSelectedMunicipality =\n !selectedMunicipality || line.municipalities.some(municipality => municipality.id === selectedMunicipality.id)\n const matchesSelectedPointOfInterest =\n !selectedPointOfInterest ||\n line.pointsOfInterest.some(pointOfInterest => pointOfInterest.id === selectedPointOfInterest.id)\n return matchesSelectedMunicipality && matchesSelectedPointOfInterest\n })\n}\n\nfunction search<T>(query: string, elements: T[], toLabelFn: (element: T) => string): T[] {\n return elements.filter(result => toLabelFn(result).toLowerCase().indexOf(query.toLowerCase()) !== -1)\n}\n\nfunction toLabel(element?: any) {\n return element ? element.name : \"\"\n}\n\nexport default SchedulesSearchForm\n","import React, { useEffect, useState } from \"react\"\nimport { LinesListFieldsFragment, SchedulesSearchModuleFieldsFragment } from \"../../../graphql-types\"\nimport { graphql } from \"gatsby\"\nimport * as styles from \"./schedules-search.module.scss\"\nimport sanitizeHtml from \"sanitize-html\"\nimport SchedulesSearchResults from \"./results/schedules-search-results\"\nimport SchedulesSearchForm, { FormResult } from \"./form/schedules-search-form\"\nimport { StringParam, useQueryParam } from \"use-query-params\"\n\ntype Line = LinesListFieldsFragment\n\ntype RenderProps = {\n lines: Line[]\n label: string\n moduleConfiguration: SchedulesSearchModuleFieldsFragment\n}\n\nconst SchedulesSearch: React.FC<RenderProps> = ({ lines, label, moduleConfiguration }) => {\n const [lineId] = useQueryParam(\"line\", StringParam)\n const [municipalityId] = useQueryParam(\"municipality\", StringParam)\n const [showResults, setShowResults] = useState(false)\n const [searchCriteria, setSearchCriteria] = useState<FormResult>({\n line: null,\n municipality: null,\n pointOfInterest: null,\n })\n const linesWithSchedules = lines.filter(line => line.schedules.length > 0)\n useEffect(() => {\n if (lineId || municipalityId) {\n setShowResults(true)\n }\n const matchingLine = linesWithSchedules.find(line => line.id === lineId)\n const matchingMunicipality = linesWithSchedules.reduce(\n (foundMunicipality, line) =>\n foundMunicipality || line.municipalities.find(municipality => municipality.id === municipalityId),\n null\n )\n setSearchCriteria({\n ...searchCriteria,\n line: matchingLine,\n municipality: matchingMunicipality,\n })\n }, [lineId, municipalityId])\n\n function onCriteriaChange(criteria) {\n setShowResults(true)\n setSearchCriteria(criteria)\n if (typeof window !== \"undefined\") {\n document.getElementById(\"js-schedules-search-result-label\")?.focus()\n }\n }\n\n return (\n <section aria-label={label}>\n <div className={styles.searchForm}>\n <h2 className={styles.title}>{moduleConfiguration.blockTitle}</h2>\n <div\n className={styles.description}\n dangerouslySetInnerHTML={{\n __html: sanitizeHtml(moduleConfiguration.description),\n }}\n />\n <SchedulesSearchForm\n lines={lines}\n moduleConfiguration={moduleConfiguration}\n onChange={onCriteriaChange}\n lineValue={searchCriteria.line}\n municipalityValue={searchCriteria.municipality}\n />\n </div>\n <div className=\"results\" id=\"schedules-search-results\">\n {showResults && (\n <SchedulesSearchResults\n lines={linesWithSchedules}\n selectedLine={searchCriteria.line}\n selectedMunicipality={searchCriteria.municipality}\n selectedPointOfInterest={searchCriteria.pointOfInterest}\n moduleConfiguration={moduleConfiguration}\n />\n )}\n </div>\n </section>\n )\n}\n\nexport const fragments = graphql`\n fragment LinesListFields on DatoCmsLine {\n id\n name\n number\n pictogram {\n ...SchedulesSearchPictogram\n }\n transportMethod {\n ...SchedulesSearchTransportMethodsFields\n }\n lineType {\n id\n label\n }\n schedules {\n id\n label\n link\n file {\n url\n }\n }\n pointsOfInterest {\n id\n name\n municipality {\n id\n name\n }\n }\n municipalities {\n id\n name\n }\n lineMap {\n url\n }\n }\n\n fragment SchedulesSearchTransportMethodsFields on DatoCmsTransportMethod {\n id\n name\n pictogram {\n ...SchedulesSearchTransportMethodPictogram\n }\n }\n\n fragment SchedulesSearchModuleFields on DatoCmsSchedulesSearchModule {\n blockTitle\n description\n linesFieldLabel\n linesFieldPlaceholder\n linesFieldIcon {\n ...SchedulesSearchFormIcon\n }\n municipalitiesFieldLabel\n municipalitiesFieldPlaceholder\n municipalitiesFieldIcon {\n ...SchedulesSearchFormIcon\n }\n pointsOfInterestFieldLabel\n pointsOfInterestFieldPlaceholder\n pointsOfInterestFieldIcon {\n ...SchedulesSearchFormIcon\n }\n submitButtonLabel\n scheduleIcon {\n ...SchedulesSearchLinkIcon\n }\n lineMapIcon {\n ...SchedulesSearchLinkIcon\n }\n lineMapLinkLabel\n resultsLabel\n noResultLabel\n lineErrorMessage\n municipalityErrorMessage\n }\n\n fragment SchedulesSearchPictogram on DatoCmsFileField {\n alt\n format\n url\n }\n\n fragment SchedulesSearchFormIcon on DatoCmsFileField {\n alt\n url\n format\n }\n\n fragment SchedulesSearchLinkIcon on DatoCmsFileField {\n alt\n url\n format\n }\n\n fragment SchedulesSearchTransportMethodPictogram on DatoCmsFileField {\n alt\n format\n url\n }\n`\n\nexport default SchedulesSearch\n","// extracted by mini-css-extract-plugin\nexport var description = \"schedules-search-module--description--1ee48\";\nexport var searchForm = \"schedules-search-module--searchForm--6c2b1\";\nexport var title = \"schedules-search-module--title--f17e1\";","// extracted by mini-css-extract-plugin\nexport var capsule = \"capsule-module--capsule--4b08f\";\nexport var selected = \"capsule-module--selected--1c8ab\";","import React from \"react\"\nimport * as styles from \"./capsule.module.scss\"\n\ntype RenderProps = {\n label: string\n handleClick: (e: React.MouseEvent<HTMLInputElement>) => void\n filters: string[]\n}\n\nconst Capsule: React.FC<RenderProps> = ({ label, handleClick, filters }) => {\n const selected = filters.includes(label)\n\n return (\n <input\n type=\"button\"\n onClick={(e: React.MouseEvent<HTMLInputElement, MouseEvent>) => handleClick(e)}\n aria-pressed={selected}\n className={selected ? `${styles.capsule} ${styles.selected}` : `${styles.capsule}`}\n value={label}\n />\n )\n}\n\nexport default Capsule\n","// extracted by mini-css-extract-plugin\nexport var transportTitle = \"transport-title-module--transportTitle--09127\";\nexport var transportTitleActionButton = \"transport-title-module--transportTitleActionButton--9d7d3\";\nexport var transportTitleContent = \"transport-title-module--transportTitleContent--12b4b\";\nexport var transportTitleDescription = \"transport-title-module--transportTitleDescription--1d942\";\nexport var transportTitleImageBox = \"transport-title-module--transportTitleImageBox--bcd67\";\nexport var transportTitleLabel = \"transport-title-module--transportTitleLabel--c0821\";\nexport var truncateContent = \"transport-title-module--truncate-content--a97e4\";\nexport var truncateOverflow = \"transport-title-module--truncate-overflow--8be3d\";","import React from \"react\"\nimport * as styles from \"./rectangular-button.module.scss\"\n\ntype RenderProps = {\n label: string\n redirectUrl: string\n}\n\nconst RectangularButton: React.FC<RenderProps> = ({ label, redirectUrl }) => {\n return (\n <a href={redirectUrl} className={styles.rectangularButton}>\n {label}\n </a>\n )\n}\n\nexport default RectangularButton\n","// extracted by mini-css-extract-plugin\nexport var rectangularButton = \"rectangular-button-module--rectangularButton--e2e58\";","import React from \"react\"\nimport { ReactSVG } from \"react-svg\"\nimport * as styles from \"./transport-title.module.scss\"\nimport { TransportTitleListFieldsFragment } from \"../../../../graphql-types\"\nimport sanitizeHtml from \"sanitize-html\"\nimport { useIsMobile } from \"../../../hooks\"\nimport RectangularButton from \"../rectangular-button/rectangular-button\"\n\ntype RenderProps = {\n transportTitleData: TransportTitleListFieldsFragment\n}\n\nconst TransportTitle: React.FC<RenderProps> = ({ transportTitleData }) => {\n const isMobile = useIsMobile()\n const TEXT_MAX_LENGTH: number = isMobile ? 335 : 414\n const isEllispisNeeded: boolean =\n transportTitleData.description && transportTitleData.description.length > TEXT_MAX_LENGTH ? true : false\n\n return (\n <div className={styles.transportTitle}>\n <div className={styles.transportTitleLabel}>{transportTitleData.title}</div>\n <div className={styles.transportTitleContent}>\n {transportTitleData.picture && transportTitleData.picture.url ? (\n <div className={styles.transportTitleImageBox}>\n {transportTitleData.picture.format == \"svg\" ? (\n <ReactSVG\n src={transportTitleData.picture.url}\n beforeInjection={svg => svg.setAttribute(\"aria-label\", transportTitleData.picture.alt || \"\")}\n />\n ) : (\n <img src={transportTitleData.picture.url} alt={transportTitleData.picture.alt || \"\"} />\n )}\n </div>\n ) : null}\n <div className={styles.transportTitleDescription}>\n <div\n className={\n isEllispisNeeded ? `${styles.truncateContent} ${styles.truncateOverflow}` : `${styles.truncateContent}`\n }\n title={transportTitleData.description}\n >\n <p\n dangerouslySetInnerHTML={{\n __html: sanitizeHtml(transportTitleData.description),\n }}\n ></p>\n </div>\n <div className={styles.transportTitleActionButton}>\n {transportTitleData.redirectionUrl ? (\n <RectangularButton\n label={transportTitleData.redirectionLabel}\n redirectUrl={transportTitleData.redirectionUrl}\n ></RectangularButton>\n ) : null}\n </div>\n </div>\n </div>\n </div>\n )\n}\n\nexport default TransportTitle\n","import React, { useEffect, useState } from \"react\"\nimport { graphql } from \"gatsby\"\nimport {\n DatoCmsCriterionList,\n DatoCmsSearchCriterion,\n TransportTitleListFieldsFragment,\n TransportTitleSearchModuleConfigFieldsFragment,\n} from \"../../../graphql-types\"\nimport * as styles from \"./transport-title-search.module.scss\"\nimport { useIsMobile } from \"../../hooks\"\nimport Capsule from \"./capsule/capsule\"\nimport TransportTitle from \"./transport-title/transport-title\"\nimport searchIcon from \"../../../static/images/search.png\"\n\ntype RenderProps = {\n label: string\n transportTitleSearchModuleConfig: TransportTitleSearchModuleConfigFieldsFragment\n transportTitleSearchData: TransportTitleListFieldsFragment[]\n}\n\nconst TransportTitleSearch: React.FC<RenderProps> = ({\n label,\n transportTitleSearchData,\n transportTitleSearchModuleConfig,\n}) => {\n const isMobile = useIsMobile()\n const transportTitles: TransportTitleListFieldsFragment[] = transportTitleSearchData\n const [filters, setFilters] = useState<string[]>([])\n const [filteredTransportTitles, setFilteredTransportTitles] = useState(transportTitles)\n\n const buildTransportTitleCards = () => (\n <div className={styles.transportTitles}>\n {filteredTransportTitles.map((transportTitle: TransportTitleListFieldsFragment) => (\n <div key={transportTitle.id} className={styles.transportTitle}>\n <TransportTitle transportTitleData={transportTitle} />\n </div>\n ))}\n </div>\n )\n\n const updateFilters = (criterion: string, criterionGroup: DatoCmsCriterionList) => {\n if (!filters.includes(criterion)) {\n const criterionTitles = criterionGroup.criterion.map(item => item.title)\n const filteredArray = filters.filter(item => !criterionTitles.includes(item))\n setFilters([...filteredArray, criterion])\n } else {\n const removeSelectedFilter = filters.filter(item => item !== criterion)\n setFilters(removeSelectedFilter)\n }\n }\n\n const updateTransportTitles = (searchFilters: string[]) => {\n const newTransportTitles = transportTitles.filter((transportTitle: TransportTitleListFieldsFragment) => {\n const transportTitleCriteria: string[] = transportTitle.searchCriterion.map((item: DatoCmsSearchCriterion) => {\n return item.title\n })\n return searchFilters.every((criterion: string) => transportTitleCriteria.includes(criterion))\n })\n setFilteredTransportTitles(newTransportTitles)\n }\n\n useEffect(() => {\n updateTransportTitles(filters)\n }, [filters])\n\n return (\n <>\n <div className={styles.transportTitleSearch}>\n {!isMobile && (\n <div className={styles.transportTitleSearchBanner}>\n <img className={styles.searchIcon} src={searchIcon} alt=\"Search icon\" />\n {label}\n </div>\n )}\n <div className={styles.transportTitlesCriteria}>\n {transportTitleSearchModuleConfig.searchCriterionList.map((criterionGroup: DatoCmsCriterionList, index) => (\n <div className={styles.searchSection} key={index}>\n <div className={styles.searchSectionLabel}>{criterionGroup.label}</div>\n <div className={styles.searchSectionCapsules}>\n {criterionGroup.criterion.map((criterion: DatoCmsSearchCriterion, idx) => (\n <Capsule\n key={idx}\n label={criterion.title}\n handleClick={(e: React.MouseEvent<HTMLInputElement>) =>\n updateFilters(e.currentTarget.value, criterionGroup)\n }\n filters={filters}\n />\n ))}\n </div>\n </div>\n ))}\n {!isMobile && filteredTransportTitles && buildTransportTitleCards()}\n </div>\n </div>\n {isMobile && filteredTransportTitles && buildTransportTitleCards()}\n </>\n )\n}\n\nexport const fragments = graphql`\n fragment TransportTitleSearchModuleConfigFields on DatoCmsTitleAndPrice {\n searchCriterionList {\n id\n label\n criterion {\n id\n title\n }\n }\n }\n\n fragment TransportTitleListFields on DatoCmsTransportTitle {\n __typename\n id\n title\n description\n redirectionUrl\n redirectionLabel\n picture {\n format\n url\n alt\n }\n searchCriterion {\n title\n id\n }\n position\n }\n`\n\nexport default TransportTitleSearch\n","// extracted by mini-css-extract-plugin\nexport var searchIcon = \"transport-title-search-module--searchIcon--6d9c0\";\nexport var searchSection = \"transport-title-search-module--searchSection--903e1\";\nexport var searchSectionCapsules = \"transport-title-search-module--searchSectionCapsules--acf23\";\nexport var searchSectionLabel = \"transport-title-search-module--searchSectionLabel--b3064\";\nexport var transportTitle = \"transport-title-search-module--transportTitle--108bb\";\nexport var transportTitleSearch = \"transport-title-search-module--transportTitleSearch--c51c8\";\nexport var transportTitleSearchBanner = \"transport-title-search-module--transportTitleSearchBanner--333b5\";\nexport var transportTitles = \"transport-title-search-module--transportTitles--8e722\";\nexport var transportTitlesCriteria = \"transport-title-search-module--transportTitlesCriteria--b7da8\";","export default \"data:image/png;base64,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\"","// extracted by mini-css-extract-plugin\nexport var image = \"ticket-office-search-result-module--image--a9b13\";\nexport var infos = \"ticket-office-search-result-module--infos--b4142\";\nexport var label = \"ticket-office-search-result-module--label--b53bf\";\nexport var name = \"ticket-office-search-result-module--name--802be\";\nexport var wrapper = \"ticket-office-search-result-module--wrapper--2d10f\";","import React from \"react\"\nimport { ReactSVG } from \"react-svg\"\nimport {\n TicketOfficeFormIconFragment,\n TicketOfficeSearchFieldsFragment,\n TicketOfficeSearchModuleConfigurationFieldsFragment,\n} from \"../../../../graphql-types\"\nimport * as styles from \"./ticket-office-search-result.module.scss\"\nimport Ticket from \"../../../../static/images/ticket.svg\"\n\ntype RenderProps = {\n ticketOffice: TicketOfficeSearchFieldsFragment\n moduleConfiguration: TicketOfficeSearchModuleConfigurationFieldsFragment\n}\n\nconst TicketOfficeSearchResult: React.FC<RenderProps> = ({ ticketOffice, moduleConfiguration }) => {\n const displayImage = (image: TicketOfficeFormIconFragment) => {\n if (image.format === \"svg\") {\n return (\n <ReactSVG\n src={image.url}\n className={styles.image}\n beforeInjection={svg => svg.setAttribute(\"aria-label\", image.alt || \"\")}\n />\n )\n }\n\n return <img src={image.url} className={styles.image} alt={image.alt || \"\"} aria-hidden=\"true\" />\n }\n\n return (\n <section>\n <h4 className={styles.name}>\n {ticketOffice.picture && displayImage(ticketOffice.picture)}\n <span>{ticketOffice.name}</span>\n </h4>\n <div className={styles.infos}>\n <div className={styles.wrapper}>\n <h5 className={styles.label}>\n {displayImage(moduleConfiguration.addressIcon)}\n <span>{moduleConfiguration.addressLabel}</span>\n </h5>\n <p>\n {ticketOffice.address}\n <br />\n {ticketOffice.zipcode} {ticketOffice.municipality.name}\n </p>\n </div>\n <div className={styles.wrapper}>\n <h5 className={styles.label}>\n {displayImage(moduleConfiguration.contactIcon)}\n <span>{moduleConfiguration.contactLabel}</span>\n </h5>\n <p>\n {ticketOffice.email}\n {ticketOffice.email && ticketOffice.phoneNumber && <br />}\n {ticketOffice.phoneNumber}\n </p>\n </div>\n {ticketOffice.extraFields.length > 0 && (\n <div className={styles.wrapper}>\n <h5 className={styles.label}>\n <ReactSVG\n src={Ticket}\n className={styles.image}\n beforeInjection={svg => svg.setAttribute(\"aria-label\", \"ticket\")}\n />\n <span>{ticketOffice.extraFields[0].title}</span>\n </h5>\n <p>{ticketOffice.extraFields[0].other}</p>\n </div>\n )}\n </div>\n </section>\n )\n}\n\nexport default TicketOfficeSearchResult\n","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjUiIGhlaWdodD0iMjMiIHZpZXdCb3g9IjAgMCAyNSAyMyIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE5LjkxMzcgMTMuNDU3MUgxOC42NDg2TDE0LjkxNiAxNi45NDg5SDIwLjA0NjhWMTYuOTI3SDIwLjEwNzRWMTIuMjMwOEwxOS45MTM3IDEyLjQyODhWMTMuNDU3MVoiIGZpbGw9IiMwMDVGN0QiLz4KPHBhdGggZD0iTTE5LjIxODUgMEw1LjI3OTkxIDEzLjAzOTRMMTEuMDYxMyAyMC43MjA3TDI1IDcuNjgxM0wxOS4yMTg1IDBaTTkuMDgzNTEgMTcuNjQ1M0w3LjY1MzEyIDE1Ljc0NDhMMjEuMTk2MyAzLjA3NTQ0TDIyLjYyNjcgNC45NzU5TDkuMDgzNTEgMTcuNjQ1M1oiIGZpbGw9IiMwMDVGN0QiLz4KPHBhdGggZD0iTTYuNDg0NDggMTEuMTc3N0gzLjUzOTEzVjguNzA2N0g5LjEyNTkxTDEyLjg1ODQgNS4yMTQ5N0MxMi45NDA3IDUuMzA2NjIgNC43MjYzIDUuMjM5NjggMy41MzkxMyA1LjIyOTUxVjUuMjE5M0gzLjM0NTQ2VjE0LjY0NzZIMy4zOTE4OVYxNC42NDk5SDUuNzYxNjZMNC41MjY3NCAxMy4wMDkyTDYuNDg0NDggMTEuMTc3N1oiIGZpbGw9IiMwMDVGN0QiLz4KPC9zdmc+Cg==\"","import React from \"react\"\nimport {\n TicketOfficeSearchFieldsFragment,\n TicketOfficeSearchModuleConfigurationFieldsFragment,\n} from \"../../../../graphql-types\"\nimport * as styles from \"./ticket-office-search-results.module.scss\"\nimport TicketOfficeSearchResult from \"../result/ticket-office-search-result\"\n\ntype TicketOffice = TicketOfficeSearchFieldsFragment\n\ntype RenderProps = {\n ticketOffices: TicketOffice[]\n moduleConfiguration: TicketOfficeSearchModuleConfigurationFieldsFragment\n}\n\nconst TicketOfficeSearchResults: React.FC<RenderProps> = ({ ticketOffices, moduleConfiguration }) => {\n return (\n <ul className={styles.results}>\n {ticketOffices.map(ticketOffice => {\n return (\n <li key={ticketOffice.id} className={styles.result}>\n <TicketOfficeSearchResult ticketOffice={ticketOffice} moduleConfiguration={moduleConfiguration} />\n </li>\n )\n })}\n </ul>\n )\n}\n\nexport default TicketOfficeSearchResults\n","// extracted by mini-css-extract-plugin\nexport var result = \"ticket-office-search-results-module--result--cd080\";\nexport var results = \"ticket-office-search-results-module--results--aa8f7\";","// extracted by mini-css-extract-plugin\nexport var categories = \"ticket-office-search-form-module--categories--a1552\";\nexport var category = \"ticket-office-search-form-module--category--27462\";\nexport var field = \"ticket-office-search-form-module--field--7ee47\";\nexport var formPart = \"ticket-office-search-form-module--formPart--c3ea7\";\nexport var image = \"ticket-office-search-form-module--image--2ce4c\";\nexport var label = \"ticket-office-search-form-module--label--85d93\";\nexport var searchFormFields = \"ticket-office-search-form-module--searchFormFields--7be7e\";","import React, { useMemo, useState } from \"react\"\nimport {\n TicketOfficeFormIconFragment,\n TicketOfficeSearchFieldsFragment,\n TicketOfficeSearchModuleConfigurationFieldsFragment,\n} from \"../../../../graphql-types\"\nimport Autocomplete from \"../../autocomplete/autocomplete\"\nimport * as styles from \"./ticket-office-search-form.module.scss\"\nimport { ReactSVG } from \"react-svg\"\nimport Capsule from \"../../transport-title-search/capsule/capsule\"\n\ntype TicketOffice = TicketOfficeSearchFieldsFragment\ntype Municipality = TicketOffice[\"municipality\"]\ntype Category = TicketOffice[\"category\"]\n\ntype RenderProps = {\n ticketOffices: TicketOffice[]\n moduleConfiguration: TicketOfficeSearchModuleConfigurationFieldsFragment\n onChange: (value: FormResult) => void\n}\n\nexport type FormResult = {\n municipality: Municipality | null\n categories: Category[]\n}\n\nconst TicketOfficeSearchForm: React.FC<RenderProps> = ({ ticketOffices, moduleConfiguration, onChange }) => {\n const [selectedMunicipality, setSelectedMunicipality] = useState(null)\n\n const municipalities = useMemo(() => extractMunicipalities(ticketOffices), [ticketOffices])\n\n const categories = useMemo(() => extractCategories(ticketOffices), [ticketOffices])\n\n const [selectedCategories, setSelectedCategories] = useState(categories)\n\n function onSelectedMunicipality(municipality) {\n setSelectedMunicipality(municipality)\n onChange({ municipality, categories: selectedCategories })\n }\n\n function onToggleCategory(categoryToToggle) {\n let newCategories\n if (selectedCategories.some(category => category.id === categoryToToggle.id)) {\n newCategories = selectedCategories.filter(category => category.id !== categoryToToggle.id)\n } else {\n newCategories = [...selectedCategories, categoryToToggle]\n }\n setSelectedCategories(newCategories)\n onChange({ municipality: selectedMunicipality, categories: newCategories })\n }\n\n return (\n <form>\n <div className={styles.searchFormFields}>\n {/* Municipalities */}\n <div className={styles.formPart}>\n <div className={styles.field}>\n <label htmlFor=\"municipalityInput\" className={styles.label}>\n {displayImage(moduleConfiguration.municipalityIcon)}\n <span>{moduleConfiguration.municipalityLabel}</span>\n </label>\n <Autocomplete\n onChange={onSelectedMunicipality}\n suggestFunction={query => searchMunicipalities(query, municipalities)}\n toLabel={municipality => (municipality ? municipality.name : \"\")}\n id=\"municipalityInput\"\n placeholder={moduleConfiguration.municipalityPlaceholder}\n title={moduleConfiguration.municipalityPlaceholder}\n />\n </div>\n </div>\n\n {/* Categories */}\n <div className={styles.formPart}>\n <fieldset className={styles.field}>\n <legend className={styles.label}>\n {displayImage(moduleConfiguration.categoryIcon)}\n <span>{moduleConfiguration.categoryLabel}</span>\n </legend>\n <ul className={styles.categories}>\n {categories.map(category => (\n <li key={category.id} className={styles.category}>\n <Capsule\n label={category.name}\n handleClick={() => onToggleCategory(category)}\n filters={selectedCategories.map(item => item.name)}\n />\n </li>\n ))}\n </ul>\n </fieldset>\n </div>\n </div>\n </form>\n )\n}\n\nfunction extractMunicipalities(ticketOffices: TicketOffice[]): Municipality[] {\n return Array.from(\n ticketOffices\n .reduce((municipalitiesMap, ticketOffice) => {\n municipalitiesMap.set(ticketOffice.municipality.id, ticketOffice.municipality)\n return municipalitiesMap\n }, new Map<string, Municipality>())\n .values()\n )\n}\n\nfunction extractCategories(ticketOffices: TicketOffice[]): Category[] {\n return Array.from(\n ticketOffices\n .reduce((categoriesMap, ticketOffice) => {\n categoriesMap.set(ticketOffice.category.id, ticketOffice.category)\n return categoriesMap\n }, new Map<string, Category>())\n .values()\n )\n}\n\nconst displayImage = (image: TicketOfficeFormIconFragment) => {\n if (image.format === \"svg\") {\n return (\n <ReactSVG\n src={image.url}\n className={styles.image}\n beforeInjection={svg => svg.setAttribute(\"aria-label\", image.alt || \"\")}\n />\n )\n }\n\n return <img src={image.url} className={styles.image} alt={image.alt || \"\"} aria-hidden=\"true\" />\n}\n\nfunction searchMunicipalities(query: string, municipalities: Municipality[]): Municipality[] {\n if (!query || query == undefined) {\n query = \"\"\n }\n return municipalities.filter(municipality => municipality.name.toLowerCase().indexOf(query.toLowerCase()) !== -1)\n}\n\nexport default TicketOfficeSearchForm\n","// extracted by mini-css-extract-plugin\nexport var content = \"ticket-office-search-map-module--content--88a2e\";\nexport var map = \"ticket-office-search-map-module--map--3f0f9\";\nexport var ticketOfficePopup = \"ticket-office-search-map-module--ticketOfficePopup--91ac2\";\nexport var title = \"ticket-office-search-map-module--title--23928\";","import React, { useEffect, useLayoutEffect, useRef, useState } from \"react\"\nimport {\n TicketOfficeSearchFieldsFragment,\n TicketOfficeSearchModuleConfigurationFieldsFragment,\n} from \"../../../../graphql-types\"\nimport * as styles from \"./ticket-office-search-map.module.scss\"\nimport config from \"../../../../config\"\n\nimport * as mapboxgl from \"mapbox-gl\"\n// fix issue with loading mapboxgl on production, see https://github.com/mapbox/mapbox-gl-js/issues/10173\n// eslint-disable-next-line import/no-webpack-loader-syntax\nmapboxgl.workerClass = require(\"worker-loader!mapbox-gl/dist/mapbox-gl-csp-worker\").default\n\ntype TicketOffice = TicketOfficeSearchFieldsFragment\ntype Municipality = TicketOffice[\"municipality\"]\n\ntype RenderProps = {\n ticketOffices: TicketOffice[]\n mapboxToken: string\n moduleConfiguration: TicketOfficeSearchModuleConfigurationFieldsFragment\n selectedMunicipality: Municipality | null\n}\n\nconst TicketOfficeSearchMap: React.FC<RenderProps> = ({\n ticketOffices,\n mapboxToken,\n moduleConfiguration,\n selectedMunicipality,\n}) => {\n const [map, setMap] = useState(null)\n const [previousMunicipality, setPreviousMunicipality] = useState(null)\n const [markers, setMarkers] = useState<mapboxgl.Marker[]>([])\n\n const mapRef = useRef()\n\n useLayoutEffect(() => {\n mapboxgl.accessToken = mapboxToken\n const mapInit = new mapboxgl.Map({\n container: mapRef.current,\n style: \"mapbox://styles/mapbox/streets-v11\",\n center: [moduleConfiguration.mapCenter.longitude, moduleConfiguration.mapCenter.latitude],\n zoom: 8,\n })\n setMap(mapInit)\n }, [])\n\n useEffect(() => {\n if (!map) {\n return\n }\n const newMarkers = updateTicketOfficeMarkers(map, markers, ticketOffices)\n setMarkers(newMarkers)\n }, [map, ticketOffices])\n\n useEffect(() => {\n if (map && selectedMunicipality && (!previousMunicipality || selectedMunicipality.id !== previousMunicipality.id)) {\n centerMapToMunicipality(map, selectedMunicipality)\n }\n setPreviousMunicipality(selectedMunicipality)\n }, [selectedMunicipality])\n\n return <div ref={mapRef} className={styles.map} aria-hidden=\"true\" />\n}\n\nfunction centerMapToMunicipality(map: mapboxgl.Map, municipality: Municipality) {\n map.jumpTo({\n center: [municipality.location.longitude, municipality.location.latitude],\n zoom: 10,\n })\n}\n\nfunction updateTicketOfficeMarkers(\n map: mapboxgl.Map,\n previousMarkers: mapboxgl.Marker[],\n ticketOffices: TicketOffice[]\n): mapboxgl.Marker[] {\n const primaryColor = `rgb(${config.primary_color.red}, ${config.primary_color.green}, ${config.primary_color.blue})`\n previousMarkers.forEach(marker => marker.remove())\n return ticketOffices.map(ticketOffice => {\n const markerElement = document.createElement(\"img\")\n markerElement.src = ticketOffice.category.pictogram.url\n markerElement.alt = ticketOffice.name\n markerElement.style.width = \"30px\"\n markerElement.style.height = \"30px\"\n const popupContent = `<aside class=\"${styles.ticketOfficePopup}\">\n <h5 class=\"${styles.title}\">${ticketOffice.name}</h5>\n <p class=\"${styles.content}\">\n ${ticketOffice.address}\n <br>\n ${ticketOffice.municipality.name}\n ${ticketOffice.email ? \"<br>\" + ticketOffice.email : \"\"}\n ${ticketOffice.phoneNumber ? \"<br>\" + ticketOffice.phoneNumber : \"\"}\n </p>\n</aside>\n`\n const popup = new mapboxgl.Popup({ maxWidth: \"none\" }).setHTML(popupContent)\n return new mapboxgl.Marker({ color: primaryColor, element: markerElement })\n .setLngLat([ticketOffice.location.longitude, ticketOffice.location.latitude])\n .setPopup(popup)\n .addTo(map)\n })\n}\n\nexport default TicketOfficeSearchMap\n","import React, { useMemo, useState } from \"react\"\nimport {\n TicketOfficeSearchFieldsFragment,\n TicketOfficeSearchModuleConfigurationFieldsFragment,\n} from \"../../../graphql-types\"\nimport { graphql } from \"gatsby\"\nimport * as styles from \"./ticket-office-search.module.scss\"\nimport \"mapbox-gl/dist/mapbox-gl.css\"\nimport TicketOfficeSearchResults from \"./results/ticket-office-search-results\"\nimport TicketOfficeSearchForm, { FormResult } from \"./form/ticket-office-search-form\"\nimport TicketOfficeSearchMap from \"./map/ticket-office-search-map\"\n\ntype TicketOffice = TicketOfficeSearchFieldsFragment\ntype Municipality = TicketOffice[\"municipality\"]\ntype Category = TicketOffice[\"category\"]\n\ntype RenderProps = {\n ticketOffices: TicketOffice[]\n label: string\n moduleConfiguration: TicketOfficeSearchModuleConfigurationFieldsFragment\n mapboxToken: string\n}\n\nconst TicketOfficeSearch: React.FC<RenderProps> = ({ label, moduleConfiguration, ticketOffices, mapboxToken }) => {\n const [searchCriteria, setSearchCriteria] = useState<FormResult>({\n municipality: null,\n categories: [],\n })\n\n const filteredTicketOffices = useMemo(\n () => ticketOffices.filter(filterMatchingTicketOffice(searchCriteria.municipality, searchCriteria.categories)),\n [searchCriteria, ticketOffices]\n )\n\n return (\n <section aria-label={label} className={styles.ticketOfficeSearch}>\n <div className={styles.searchForm}>\n <h2 className={styles.title}>{moduleConfiguration.title}</h2>\n <TicketOfficeSearchForm\n ticketOffices={ticketOffices}\n moduleConfiguration={moduleConfiguration}\n onChange={setSearchCriteria}\n />\n </div>\n\n <div className={styles.ticketOfficeList} id=\"schedules-search-results\" tabIndex={0}>\n <TicketOfficeSearchResults ticketOffices={filteredTicketOffices} moduleConfiguration={moduleConfiguration} />\n </div>\n\n <div className={styles.map}>\n <TicketOfficeSearchMap\n mapboxToken={mapboxToken}\n ticketOffices={filteredTicketOffices}\n moduleConfiguration={moduleConfiguration}\n selectedMunicipality={searchCriteria.municipality}\n />\n </div>\n </section>\n )\n}\n\nfunction filterMatchingTicketOffice(selectedMunicipality: Municipality | null, selectedCategories: Category[]) {\n return ticketOffice => {\n const matchMunicipality = !selectedMunicipality || ticketOffice.municipality.id === selectedMunicipality.id\n const matchCategories =\n selectedCategories.length === 0 || selectedCategories.some(category => category.id === ticketOffice.category.id)\n\n return matchMunicipality && matchCategories\n }\n}\n\nexport const fragments = graphql`\n fragment TicketOfficeSearchMapConfigurationFields on DatoCmsGlobalConfiguration {\n mapboxToken\n }\n\n fragment TicketOfficeSearchFields on DatoCmsTicketOffice {\n id\n name\n category {\n id\n name\n pictogram {\n url\n }\n }\n email\n location {\n latitude\n longitude\n }\n municipality {\n ...TicketOfficeSearchMunicipalitiesFields\n }\n extraFields {\n ... on DatoCmsExtraFieldsBlock {\n title\n other\n }\n }\n address\n zipcode\n phoneNumber\n picture {\n ...TicketOfficePicture\n }\n }\n\n fragment TicketOfficeSearchMunicipalitiesFields on DatoCmsMunicipality {\n id\n name\n location {\n latitude\n longitude\n }\n }\n\n fragment TicketOfficeSearchModuleConfigurationFields on DatoCmsTicketOfficeModule {\n title\n municipalityLabel\n municipalityPlaceholder\n municipalityIcon {\n ...TicketOfficeFormIcon\n }\n categoryLabel\n categoryIcon {\n ...TicketOfficeFormIcon\n }\n addressLabel\n addressIcon {\n ...TicketOfficeAddressContactIcon\n }\n contactLabel\n contactIcon {\n ...TicketOfficeAddressContactIcon\n }\n mapCenter {\n latitude\n longitude\n }\n }\n\n fragment TicketOfficePicture on DatoCmsFileField {\n alt\n format\n url\n }\n\n fragment TicketOfficeFormIcon on DatoCmsFileField {\n alt\n format\n url\n }\n\n fragment TicketOfficeAddressContactIcon on DatoCmsFileField {\n alt\n format\n url\n }\n`\n\nexport default TicketOfficeSearch\n","var _a, _b;\nexport var blockquoteNodeType = 'blockquote';\nexport var blockNodeType = 'block';\nexport var codeNodeType = 'code';\nexport var headingNodeType = 'heading';\nexport var inlineItemNodeType = 'inlineItem';\nexport var itemLinkNodeType = 'itemLink';\nexport var linkNodeType = 'link';\nexport var listItemNodeType = 'listItem';\nexport var listNodeType = 'list';\nexport var paragraphNodeType = 'paragraph';\nexport var rootNodeType = 'root';\nexport var spanNodeType = 'span';\nexport var thematicBreakNodeType = 'thematicBreak';\nexport var allowedNodeTypes = [blockquoteNodeType, blockNodeType, codeNodeType, headingNodeType, inlineItemNodeType, itemLinkNodeType, linkNodeType, listItemNodeType, listNodeType, paragraphNodeType, rootNodeType, spanNodeType, thematicBreakNodeType];\nexport var allowedChildren = (_a = {}, _a[blockquoteNodeType] = [paragraphNodeType], _a[blockNodeType] = [], _a[codeNodeType] = [], _a[headingNodeType] = 'inlineNodes', _a[inlineItemNodeType] = [], _a[itemLinkNodeType] = 'inlineNodes', _a[linkNodeType] = 'inlineNodes', _a[listItemNodeType] = [paragraphNodeType, listNodeType], _a[listNodeType] = [listItemNodeType], _a[paragraphNodeType] = 'inlineNodes', _a[rootNodeType] = [blockquoteNodeType, codeNodeType, listNodeType, paragraphNodeType, headingNodeType, blockNodeType, thematicBreakNodeType], _a[spanNodeType] = [], _a[thematicBreakNodeType] = [], _a);\nexport var inlineNodeTypes = [spanNodeType, linkNodeType, itemLinkNodeType, inlineItemNodeType];\nexport var allowedAttributes = (_b = {}, _b[blockquoteNodeType] = ['children', 'attribution'], _b[blockNodeType] = ['item'], _b[codeNodeType] = ['language', 'highlight', 'code'], _b[headingNodeType] = ['level', 'children', 'style'], _b[inlineItemNodeType] = ['item'], _b[itemLinkNodeType] = ['item', 'children', 'meta'], _b[linkNodeType] = ['url', 'children', 'meta'], _b[listItemNodeType] = ['children'], _b[listNodeType] = ['style', 'children'], _b[paragraphNodeType] = ['children', 'style'], _b[rootNodeType] = ['children'], _b[spanNodeType] = ['value', 'marks'], _b[thematicBreakNodeType] = [], _b);\nexport var defaultMarks = ['strong', 'code', 'emphasis', 'underline', 'strikethrough', 'highlight'];","// extracted by mini-css-extract-plugin\nexport var description = \"ticket-office-search-module--description--b8ddd\";\nexport var map = \"ticket-office-search-module--map--cdbe0\";\nexport var searchForm = \"ticket-office-search-module--searchForm--26ef3\";\nexport var ticketOfficeList = \"ticket-office-search-module--ticketOfficeList--74d15\";\nexport var ticketOfficeSearch = \"ticket-office-search-module--ticketOfficeSearch--0602e\";\nexport var title = \"ticket-office-search-module--title--10285\";","import React from \"react\"\nimport { ItineraryModuleConfigurationFieldsFragment } from \"../../../graphql-types\"\nimport { graphql } from \"gatsby\"\nimport * as styles from \"./itinerary-module.module.scss\"\n\ntype RenderProps = {\n label: string\n moduleConfiguration: ItineraryModuleConfigurationFieldsFragment\n}\n\nconst ItineraryModule: React.FC<RenderProps> = ({ label, moduleConfiguration }) => {\n return (\n <iframe\n className={styles.iframe}\n title={label}\n src={moduleConfiguration.iframeLink}\n sandbox=\"allow-forms allow-popups allow-pointer-lock allow-same-origin allow-scripts allow-downloads\"\n />\n )\n}\n\nexport const fragments = graphql`\n fragment ItineraryModuleConfigurationFields on DatoCmsItineraryModuleConfiguration {\n iframeLink\n }\n`\n\nexport default ItineraryModule\n","// extracted by mini-css-extract-plugin\nexport var iframe = \"itinerary-module-module--iframe--9a9dd\";","import React from \"react\"\nimport { NextDeparturesModuleConfigurationFieldsFragment } from \"../../../graphql-types\"\nimport { graphql } from \"gatsby\"\nimport * as styles from \"./next-departures-module.module.scss\"\n\ntype RenderProps = {\n label: string\n moduleConfiguration: NextDeparturesModuleConfigurationFieldsFragment\n}\n\nconst NextDeparturesModule: React.FC<RenderProps> = ({ label, moduleConfiguration }) => {\n return (\n <section className={styles.nextDeparturesModule}>\n <iframe\n className={styles.iframe}\n title={label}\n src={moduleConfiguration.iframeLink + (typeof window !== \"undefined\" ? window.location.search : \"\")}\n sandbox=\"allow-forms allow-popups allow-pointer-lock allow-same-origin allow-scripts allow-downloads\"\n />\n </section>\n )\n}\n\nexport const fragments = graphql`\n fragment NextDeparturesModuleConfigurationFields on DatoCmsNextDeparturesModuleConfiguration {\n iframeLink\n }\n`\n\nexport default NextDeparturesModule\n","// extracted by mini-css-extract-plugin\nexport var iframe = \"next-departures-module-module--iframe--a47da\";\nexport var nextDeparturesModule = \"next-departures-module-module--nextDeparturesModule--afb69\";","// extracted by mini-css-extract-plugin\nexport var container = \"info-traffic-module--container--a33dd\";\nexport var image = \"info-traffic-module--image--30352\";\nexport var line = \"info-traffic-module--line--ce5af\";\nexport var lineDivider = \"info-traffic-module--lineDivider--00619\";\nexport var linePicto = \"info-traffic-module--linePicto--6bf3e\";\nexport var linkNoStyle = \"info-traffic-module--linkNoStyle--89c5a\";\nexport var pictoBox = \"info-traffic-module--pictoBox--146ed\";\nexport var pictoBoxTop = \"info-traffic-module--pictoBoxTop--977a1\";\nexport var pictoBoxTraffic = \"info-traffic-module--pictoBoxTraffic--e34e0\";\nexport var svgImage = \"info-traffic-module--svgImage--3ce7c\";\nexport var title = \"info-traffic-module--title--4e2e4\";\nexport var trafficContainer = \"info-traffic-module--trafficContainer--2e1b0\";","import React, { useEffect, useState } from \"react\"\nimport { useQuerySubscription } from \"react-datocms\"\nimport { graphql, useStaticQuery } from \"gatsby\"\nimport { InfoTrafficFieldsFragment } from \"../../../graphql-types\"\nimport * as config from \"../../../config.js\"\nimport * as styles from \"./info-traffic.module.scss\"\nimport sanitizeHtml from \"sanitize-html\"\nimport { useIsToday } from \"../../hooks\"\n\ntype RenderProps = {\n infoTrafficData: InfoTrafficFieldsFragment[]\n}\n\nconst InfoTraffic: React.FC<RenderProps> = ({ infoTrafficData }) => {\n const globalConfig = useStaticQuery(graphql`\n query MyQuery {\n datoCmsGlobalConfiguration {\n id\n infoTrafficContentTitle\n }\n allDatoCmsPage(filter: { isInfoTrafficDetailPage: { eq: true } }) {\n nodes {\n id\n title\n slug\n isInfoTrafficDetailPage\n }\n }\n }\n `)\n\n const [infoTrafficDetailPage, setInfoTrafficDetailPage] = useState(null)\n useEffect(() => {\n if (!infoTrafficDetailPage) {\n if (globalConfig.allDatoCmsPage && globalConfig.allDatoCmsPage.nodes) {\n let infoLocalized = globalConfig.allDatoCmsPage.nodes[0]\n setInfoTrafficDetailPage(infoLocalized)\n }\n }\n }, [infoTrafficDetailPage])\n\n const [info, setInfo] = useState(null)\n const [dataInfo, setData] = useState(null)\n\n useEffect(() => {\n if (dataInfo) {\n const parsedInfo = parseInfoTraffic(dataInfo.allInfoTraffics)\n setInfo(parsedInfo)\n }\n }, [dataInfo])\n\n const { data } = useQuerySubscription({\n enabled: true,\n query: `\n query infoQuery {\n allInfoTraffics(locale: ${config.locale}, orderBy: [start_DESC], first: 100) {\n start\n end\n id\n title\n disruptionType\n displayInHome\n pictogram {\n url\n alt\n format\n }\n lines {\n id\n number\n name\n pictogram {\n url\n alt\n format\n }\n }\n shortDescription\n slug\n }\n }`,\n token: config.readOnlyApi,\n })\n\n if (data) {\n if (data != dataInfo) {\n setData(data)\n }\n }\n\n function parseInfoTraffic(dataToParse) {\n const lines = []\n dataToParse.forEach(infoTraffic => {\n infoTraffic.lines.map(line => {\n lines.push(line)\n })\n })\n\n const uniqueLines = lines.filter((ele, index) => index === lines.findIndex(elem => elem.id === ele.id))\n const myLinesWithTraffic = []\n uniqueLines.forEach(line => {\n const infoTrafficArray = []\n dataToParse.forEach(infoTraffic => {\n infoTraffic.lines.forEach(subline => {\n if (line.name == subline.name && useIsToday(infoTraffic.start, infoTraffic.end)) {\n infoTrafficArray.push(infoTraffic)\n myLinesWithTraffic.push({ line: line, traffic: infoTrafficArray })\n }\n })\n })\n })\n\n return myLinesWithTraffic.filter((ele, index) => {\n return index === myLinesWithTraffic.findIndex(elem => elem.line === ele.line)\n })\n }\n\n return (\n <div className={styles.container}>\n <h3 className={styles.title}>{globalConfig.datoCmsGlobalConfiguration.infoTrafficContentTitle}</h3>\n {info &&\n info.map(line => {\n return (\n <div className={styles.line} key={line.line.id}>\n <h4 className={line.traffic.length > 1 ? styles.pictoBoxTop : styles.pictoBox}>\n <img src={line.line.pictogram.url} alt={line.line.pictogram.alt} className={styles.svgImage} />\n </h4>\n\n <ul className={styles.lineDivider}>\n {line.traffic.map(traffic => {\n return (\n <li className={styles.trafficContainer} key={traffic.id}>\n <a\n href={\n `/${infoTrafficDetailPage.slug}` +\n \"?\" +\n traffic.title.replace(new RegExp(\" \", \"g\"), \"-\") +\n \"#\" +\n traffic.id\n }\n className={styles.linkNoStyle}\n >\n <div className={styles.pictoBoxTraffic}>\n <img\n src={traffic.pictogram.url}\n alt={traffic.pictogram.alt}\n className={styles.svgImage}\n aria-hidden=\"true\"\n />\n </div>\n <div\n dangerouslySetInnerHTML={{\n __html: sanitizeHtml(traffic.shortDescription),\n }}\n />\n </a>\n </li>\n )\n })}\n </ul>\n </div>\n )\n })}\n </div>\n )\n}\n\nexport default InfoTraffic\n","// extracted by mini-css-extract-plugin\nexport var customForm = \"custom-form-module--customForm--efbb2\";\nexport var fileField = \"custom-form-module--fileField--22957\";\nexport var formPart = \"custom-form-module--formPart--7231c\";\nexport var globalError = \"custom-form-module--globalError--2a843\";\nexport var select = \"custom-form-module--select--dab73\";\nexport var submitButton = \"custom-form-module--submitButton--5c78c\";\nexport var successMessage = \"custom-form-module--successMessage--175f5\";\nexport var textField = \"custom-form-module--textField--92552\";\nexport var title = \"custom-form-module--title--487a7\";","import * as inputsStyles from \"../inputs.module.scss\"\nimport React from \"react\"\nimport { RegisterOptions, UseFormRegisterReturn } from \"react-hook-form\"\n\ntype RenderProps = {\n id?: string\n name: string\n required?: boolean\n className?: string\n placeholder?: string\n hasErrors?: boolean\n onFocus?: (value: any) => void\n} & (\n | {\n value?: string\n onChange?: (value: string) => void\n register: (name: string, options?: RegisterOptions) => UseFormRegisterReturn\n }\n | { value: string; onChange: (value: string) => void; register: undefined }\n)\n\nconst Textarea: React.FC<RenderProps> = ({\n id,\n name,\n required,\n className = \"\",\n placeholder = \"\",\n value,\n onChange,\n register,\n hasErrors,\n onFocus,\n}) => {\n return (\n <textarea\n id={id}\n name={name}\n placeholder={placeholder}\n required={required}\n className={inputsStyles.textarea + \" \" + (hasErrors ? inputsStyles.fieldInError + \" \" : \"\") + className}\n onChange={event => onChange && onChange(event.target.value)}\n value={value}\n {...register(name, { required })}\n onFocus={event => {\n onFocus && onFocus(event.target.id)\n }}\n />\n )\n}\n\nexport default Textarea\n","import * as inputsStyles from \"../inputs.module.scss\"\nimport React from \"react\"\nimport { RegisterOptions, UseFormRegisterReturn } from \"react-hook-form\"\n\ntype RenderProps = {\n id?: string\n name: string\n required?: boolean\n className?: string\n value?: string\n onChange?: (value: string) => void\n checked?: boolean\n label: string\n register?: (name: string, options?: RegisterOptions) => UseFormRegisterReturn\n hasErrors?: boolean\n onFocus?: (value: any) => void\n}\n\nconst RadioButton: React.FC<RenderProps> = ({\n id,\n name,\n required,\n className = \"\",\n value,\n label,\n checked,\n onChange,\n register,\n hasErrors,\n onFocus,\n}) => {\n return (\n <label className={inputsStyles.radioButton + (hasErrors ? \" \" + inputsStyles.fieldInError : \"\")}>\n {label}\n <input\n tabIndex={0}\n type=\"radio\"\n id={id}\n name={name}\n required={required}\n className={className}\n onChange={() => onChange(value)}\n value={value}\n checked={checked}\n {...register(name, { required })}\n onFocus={event => {\n onFocus && onFocus(event.target.id)\n }}\n />\n <span tabIndex={0} className={inputsStyles.checkmark} />\n </label>\n )\n}\n\nexport default RadioButton\n","import * as inputsStyles from \"../inputs.module.scss\"\nimport React from \"react\"\nimport { RegisterOptions, UseFormRegisterReturn } from \"react-hook-form\"\n\ntype RenderProps = {\n id?: string\n name: string\n required?: boolean\n className?: string\n onChange?: (value: boolean) => void\n checked?: boolean\n label: string\n register?: (name: string, options?: RegisterOptions) => UseFormRegisterReturn\n hasErrors?: boolean\n onFocus?: (value: any) => void\n}\n\nconst Checkbox: React.FC<RenderProps> = ({\n id,\n name,\n required,\n className = \"\",\n label,\n checked,\n onChange,\n register,\n hasErrors,\n onFocus,\n}) => {\n return (\n <label htmlFor={id} className={`${inputsStyles.checkbox} ${hasErrors ? \" \" + inputsStyles.fieldInError : \"\"}`}>\n {label}\n <input\n type=\"checkbox\"\n id={id}\n name={name}\n required={required}\n className={className}\n onChange={() => onChange(!checked)}\n value={label}\n checked={checked}\n {...register(name, { required })}\n onFocus={event => {\n onFocus && onFocus(event.target.id)\n }}\n />\n <span className={inputsStyles.checkmark} />\n </label>\n )\n}\n\nexport default Checkbox\n","import * as inputsStyles from \"../inputs.module.scss\"\nimport React from \"react\"\nimport arrowDown from \"../../../../static/images/arrow-down.svg\"\nimport { ReactSVG } from \"react-svg\"\nimport { RegisterOptions, UseFormRegisterReturn } from \"react-hook-form\"\n\ntype RenderProps = {\n id?: string\n name: string\n required?: boolean\n className?: string\n options: string[]\n hasErrors: boolean\n onFocus?: (value: any) => void\n autocomplete?: boolean\n} & (\n | {\n value?: string\n onChange?: (value: string) => void\n register: (name: string, options?: RegisterOptions) => UseFormRegisterReturn\n }\n | {\n value: string\n onChange: (value: string) => void\n register: undefined\n }\n)\n\nconst Select: React.FC<RenderProps> = ({\n id,\n name,\n required,\n className = \"\",\n value,\n options,\n onChange,\n register,\n hasErrors,\n onFocus,\n autocomplete,\n}) => {\n return (\n <div className={inputsStyles.select + \" \" + (hasErrors ? inputsStyles.fieldInError + \" \" : \"\") + className}>\n <select\n id={id}\n name={name}\n required={required}\n autoComplete={autocomplete ? name : undefined}\n onChange={event => onChange && onChange(event.target.value)}\n value={value}\n {...register(name, { required })}\n onFocus={event => {\n onFocus && onFocus(event.target.id)\n }}\n >\n {options.map(option => (\n <option value={option} key={option}>\n {option}\n </option>\n ))}\n </select>\n <ReactSVG\n src={arrowDown}\n className={inputsStyles.arrowDown}\n beforeInjection={svg => svg.setAttribute(\"aria-hidden\", \"true\")}\n />\n </div>\n )\n}\n\nexport default Select\n","import React from \"react\"\nimport { RegisterOptions, UseFormRegisterReturn } from \"react-hook-form\"\n\ntype RenderProps = {\n id?: string\n type: string\n name: string\n required?: boolean\n className?: string\n placeholder?: string\n onChange: (value: FileList) => void\n register?: (name: string, options?: RegisterOptions) => UseFormRegisterReturn\n onFocus?: (value: any) => void\n}\n\nconst FileInput: React.FC<RenderProps> = ({\n id,\n type,\n name,\n required,\n className = \"\",\n placeholder = \"\",\n onChange,\n register,\n onFocus,\n}) => {\n return (\n <input\n id={id}\n {...register(name, { required })}\n type=\"file\"\n name={name}\n placeholder={placeholder}\n required={required}\n onChange={event => onChange(event.target.files)}\n className={className}\n onFocus={event => {\n onFocus && onFocus(event.target.id)\n }}\n />\n )\n}\n\nexport default FileInput\n","import * as inputsStyles from \"../inputs.module.scss\"\nimport React from \"react\"\nimport { FieldErrors } from \"react-hook-form/dist/types/errors\"\n\ntype RenderProps = {\n errors: FieldErrors\n name: string\n type: string\n id?: string\n children?: React.ReactNode\n}\n\nconst FormError: React.FC<RenderProps> = ({ errors, name, type, id, children }) => {\n if (errors && errors[name] && errors[name].type === type) {\n return (\n <div className={inputsStyles.formError} id={id || null} aria-describedby={name || null}>\n {children}\n </div>\n )\n }\n return <></>\n}\n\nexport default FormError\n","import * as config from \"../../config\"\nimport { EmailReceiversFieldsFragment } from \"../../graphql-types\"\n\nexport const importFiles = async (file: File): Promise<SavedFile> => {\n const headers = { Accept: \"application/json\", \"Ocp-Apim-Subscription-Key\": config.notifications_service_token }\n const formData = new FormData()\n formData.append(\"file\", file)\n\n const response = await fetch(config.notifications_service_import_file_endpoint, {\n method: \"POST\",\n headers,\n body: formData,\n })\n\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return response.json()\n}\n\nexport const formatReceivers = (receivers: EmailReceiversFieldsFragment[]) => {\n const emailJson = {\n to: \"\",\n cc: \"\",\n bcc: \"\",\n }\n\n receivers.forEach(receiver => {\n switch (receiver.sendType) {\n case \"Principal\":\n emailJson.to += receiver.email + \";\"\n break\n case \"CC\":\n emailJson.cc += receiver.email + \";\"\n break\n case \"CCI\":\n emailJson.bcc += receiver.email + \";\"\n break\n }\n })\n\n emailJson.to = emailJson.to.slice(0, -1)\n emailJson.cc = emailJson.cc.slice(0, -1)\n emailJson.bcc = emailJson.bcc.slice(0, -1)\n\n return emailJson\n}\n\nexport const sendEmail = async (\n from: string,\n receivers: EmailReceiversFieldsFragment[],\n subject: string,\n content: string,\n files: File[],\n replyTo: string\n): Promise<Response> => {\n const formattedContent = content.replace(/\\n/g, \"<br>\")\n const headers = {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n \"Ocp-Apim-Subscription-Key\": config.notifications_service_token,\n }\n const filesPromise = files.length > 0 ? Promise.all(files.map(importFiles)) : Promise.resolve([])\n const importedFiles = await filesPromise\n\n const { to, cc, bcc } = formatReceivers(receivers)\n\n const response = await fetch(config.notifications_service_endpoint, {\n method: \"POST\",\n headers,\n body: JSON.stringify({\n notificationType: \"Email\",\n notificationContent: {\n from,\n to,\n replyTo,\n cc,\n bcc,\n emailType: \"NoTemplateWithLogoAndAttachments\",\n content: {\n subject,\n htmlMessage: formattedContent,\n attachments: importedFiles,\n },\n },\n }),\n })\n\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return response\n}\n\n// We don't want to know the type because we're not supposed to do anything with it.\n// If that assumption changes, see the OAS of the service (on Keolis.Notifications repository on Azure devops)\ntype SavedFile = unknown\n","import { allowedNodeTypes, headingNodeType, spanNodeType, rootNodeType, paragraphNodeType, listNodeType, listItemNodeType, blockquoteNodeType, blockNodeType, codeNodeType, linkNodeType, itemLinkNodeType, inlineItemNodeType, inlineNodeTypes, thematicBreakNodeType } from './definitions';\nexport function hasChildren(node) {\n return 'children' in node;\n}\nexport function isInlineNode(node) {\n return inlineNodeTypes.includes(node.type);\n}\nexport function isHeading(node) {\n return node.type === headingNodeType;\n}\nexport function isSpan(node) {\n return node.type === spanNodeType;\n}\nexport function isRoot(node) {\n return node.type === rootNodeType;\n}\nexport function isParagraph(node) {\n return node.type === paragraphNodeType;\n}\nexport function isList(node) {\n return node.type === listNodeType;\n}\nexport function isListItem(node) {\n return node.type === listItemNodeType;\n}\nexport function isBlockquote(node) {\n return node.type === blockquoteNodeType;\n}\nexport function isBlock(node) {\n return node.type === blockNodeType;\n}\nexport function isCode(node) {\n return node.type === codeNodeType;\n}\nexport function isLink(node) {\n return node.type === linkNodeType;\n}\nexport function isItemLink(node) {\n return node.type === itemLinkNodeType;\n}\nexport function isInlineItem(node) {\n return node.type === inlineItemNodeType;\n}\nexport function isThematicBreak(node) {\n return node.type === thematicBreakNodeType;\n}\nfunction isObject(obj) {\n return Boolean(typeof obj === 'object' && obj);\n}\nexport function isNodeType(value) {\n return allowedNodeTypes.includes(value);\n}\nexport function isNode(obj) {\n return Boolean(isObject(obj) && 'type' in obj && typeof obj.type === 'string' && isNodeType(obj.type));\n}\nexport function isStructuredText(obj) {\n return Boolean(isObject(obj) && 'value' in obj && isDocument(obj.value));\n}\nexport function isDocument(obj) {\n return Boolean(isObject(obj) && 'schema' in obj && 'document' in obj && obj.schema === 'dast');\n}\nexport function isEmptyDocument(obj) {\n if (!obj) {\n return true;\n }\n var document = isStructuredText(obj) && isDocument(obj.value) ? obj.value : isDocument(obj) ? obj : null;\n if (!document) {\n throw new Error('Passed object is neither null, a Structured Text value or a DAST document');\n }\n return document.document.children.length === 1 && document.document.children[0].type === 'paragraph' && document.document.children[0].children.length === 1 && document.document.children[0].children[0].type === 'span' && document.document.children[0].children[0].value === '';\n}","/**\n * Flatten an array indefinitely.\n */\nexport function flatten(array) {\n var result = [];\n $flatten(array, result);\n return result;\n}\n/**\n * Internal flatten function recursively passes `result`.\n */\nfunction $flatten(array, result) {\n for (var i = 0; i < array.length; i++) {\n var value = array[i];\n if (Array.isArray(value)) {\n $flatten(value, result);\n } else {\n result.push(value);\n }\n }\n}","var __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n };\n return _extendStatics(d, b);\n };\n return function (d, b) {\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __spreadArrays = this && this.__spreadArrays || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j];\n return r;\n};\nimport { hasChildren, isDocument, isNode, isStructuredText } from './guards';\nimport { flatten } from 'array-flatten';\nvar RenderError = /** @class */function (_super) {\n __extends(RenderError, _super);\n function RenderError(message, node) {\n var _this = _super.call(this, message) || this;\n _this.node = node;\n Object.setPrototypeOf(_this, RenderError.prototype);\n return _this;\n }\n return RenderError;\n}(Error);\nexport { RenderError };\nexport var renderRule = function renderRule(guard, transform) {\n return {\n appliable: guard,\n apply: function apply(ctx) {\n return transform(ctx);\n }\n };\n};\nexport function transformNode(adapter, node, key, ancestors, renderRules) {\n var children = hasChildren(node) ? flatten(node.children.map(function (innerNode, index) {\n return transformNode(adapter, innerNode, \"t-\" + index, __spreadArrays([node], ancestors), renderRules);\n }).filter(function (x) {\n return !!x;\n })) : undefined;\n var matchingTransform = renderRules.find(function (transform) {\n return transform.appliable(node);\n });\n if (matchingTransform) {\n return matchingTransform.apply({\n adapter: adapter,\n node: node,\n children: children,\n key: key,\n ancestors: ancestors\n });\n }\n throw new RenderError(\"Don't know how to render a node with type \\\"\" + node.type + \"\\\". Please specify a custom renderRule for it!\", node);\n}\nexport function render(adapter, structuredTextOrNode, renderRules) {\n if (!structuredTextOrNode) {\n return null;\n }\n var node = isStructuredText(structuredTextOrNode) && isDocument(structuredTextOrNode.value) ? structuredTextOrNode.value.document : isDocument(structuredTextOrNode) ? structuredTextOrNode.document : isNode(structuredTextOrNode) ? structuredTextOrNode : undefined;\n if (!node) {\n throw new Error('Passed object is neither null, a Structured Text value, a DAST document or a DAST node');\n }\n var result = transformNode(adapter, node, 't-0', [], renderRules);\n return result;\n}","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArrays = this && this.__spreadArrays || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j];\n return r;\n};\nimport { isBlockquote, isCode, isHeading, isLink, isList, isListItem, isParagraph, isRoot, isSpan, render as genericRender, renderRule, RenderError, isThematicBreak } from 'datocms-structured-text-utils';\nexport { renderRule as renderNodeRule, RenderError };\nexport function markToTagName(mark) {\n switch (mark) {\n case 'emphasis':\n return 'em';\n case 'underline':\n return 'u';\n case 'strikethrough':\n return 's';\n case 'highlight':\n return 'mark';\n default:\n return mark;\n }\n}\nexport function renderSpanValue(_a) {\n var node = _a.node,\n key = _a.key,\n _b = _a.adapter,\n renderNode = _b.renderNode,\n renderText = _b.renderText,\n renderFragment = _b.renderFragment;\n var lines = node.value.split(/\\n/);\n if (lines.length === 0) {\n return renderText(node.value, key);\n }\n return renderFragment(lines.slice(1).reduce(function (acc, line, index) {\n return acc.concat([renderNode('br', {\n key: key + \"-br-\" + index\n }), renderText(line, key + \"-line-\" + index)]);\n }, [renderText(lines[0], key + \"-line-first\")]), key);\n}\nexport function renderMarkRule(guard, transform) {\n return {\n appliable: typeof guard === 'string' ? function (mark) {\n return mark === guard;\n } : guard,\n apply: transform\n };\n}\nexport function spanNodeRenderRule(_a) {\n var customMarkRules = _a.customMarkRules;\n return renderRule(isSpan, function (context) {\n var adapter = context.adapter,\n key = context.key,\n node = context.node;\n return (node.marks || []).reduce(function (children, mark) {\n if (!children) {\n return undefined;\n }\n var matchingCustomRule = customMarkRules.find(function (rule) {\n return rule.appliable(mark);\n });\n if (matchingCustomRule) {\n return matchingCustomRule.apply({\n adapter: adapter,\n key: key,\n mark: mark,\n children: children\n });\n }\n return adapter.renderNode(markToTagName(mark), {\n key: key\n }, children);\n }, renderSpanValue(context));\n });\n}\nexport var defaultMetaTransformer = function defaultMetaTransformer(_a) {\n var meta = _a.meta;\n var attributes = {};\n meta.forEach(function (entry) {\n if (['target', 'title', 'rel'].includes(entry.id)) {\n attributes[entry.id] = entry.value;\n }\n });\n return attributes;\n};\nexport function render(structuredTextOrNode, options) {\n var metaTransformer = options.metaTransformer || defaultMetaTransformer;\n return genericRender(options.adapter, structuredTextOrNode, __spreadArrays(options.customNodeRules || [], [renderRule(isRoot, function (_a) {\n var renderFragment = _a.adapter.renderFragment,\n key = _a.key,\n children = _a.children;\n return renderFragment(children, key);\n }), renderRule(isParagraph, function (_a) {\n var renderNode = _a.adapter.renderNode,\n key = _a.key,\n children = _a.children;\n return renderNode('p', {\n key: key\n }, children);\n }), renderRule(isList, function (_a) {\n var renderNode = _a.adapter.renderNode,\n node = _a.node,\n key = _a.key,\n children = _a.children;\n return renderNode(node.style === 'bulleted' ? 'ul' : 'ol', {\n key: key\n }, children);\n }), renderRule(isListItem, function (_a) {\n var renderNode = _a.adapter.renderNode,\n key = _a.key,\n children = _a.children;\n return renderNode('li', {\n key: key\n }, children);\n }), renderRule(isBlockquote, function (_a) {\n var renderNode = _a.adapter.renderNode,\n key = _a.key,\n node = _a.node,\n children = _a.children;\n var childrenWithAttribution = node.attribution ? __spreadArrays(children || [], [renderNode(\"footer\", {\n key: 'footer'\n }, node.attribution)]) : children;\n return renderNode('blockquote', {\n key: key\n }, childrenWithAttribution);\n }), renderRule(isCode, function (_a) {\n var _b = _a.adapter,\n renderNode = _b.renderNode,\n renderText = _b.renderText,\n key = _a.key,\n node = _a.node;\n return renderNode('pre', {\n key: key,\n 'data-language': node.language\n }, renderNode('code', null, renderText(node.code)));\n }), renderRule(isLink, function (_a) {\n var renderNode = _a.adapter.renderNode,\n key = _a.key,\n children = _a.children,\n node = _a.node;\n var meta = node.meta ? metaTransformer({\n node: node,\n meta: node.meta\n }) : {};\n return renderNode('a', __assign(__assign({}, meta || {}), {\n key: key,\n href: node.url\n }), children);\n }), renderRule(isThematicBreak, function (_a) {\n var renderNode = _a.adapter.renderNode,\n key = _a.key;\n return renderNode('hr', {\n key: key\n });\n }), renderRule(isHeading, function (_a) {\n var node = _a.node,\n renderNode = _a.adapter.renderNode,\n children = _a.children,\n key = _a.key;\n return renderNode(\"h\" + node.level, {\n key: key\n }, children);\n }), spanNodeRenderRule({\n customMarkRules: options.customMarkRules || []\n })]));\n}","var __spreadArrays = this && this.__spreadArrays || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j];\n return r;\n};\nimport { defaultMetaTransformer, render as genericHtmlRender, renderNodeRule, renderMarkRule } from 'datocms-structured-text-generic-html-renderer';\nimport { isBlock, isInlineItem, isItemLink, isStructuredText, RenderError } from 'datocms-structured-text-utils';\nimport vhtml from 'vhtml';\nexport { renderNodeRule, renderMarkRule, RenderError };\n// deprecated export\nexport { renderNodeRule as renderRule };\nvar vhtmlAdapter = function vhtmlAdapter(tagName, attrs) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var children = [];\n for (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var _i = 2;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _i < arguments.length;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _i++) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n children[_i - 2] = arguments[_i];\n }\n if (attrs) {\n delete attrs.key;\n }\n return vhtml.apply(void 0, __spreadArrays([tagName, attrs], children));\n};\nexport var defaultAdapter = {\n renderNode: vhtmlAdapter,\n renderFragment: function renderFragment(children) {\n return vhtmlAdapter(null, null, children);\n },\n renderText: function renderText(text) {\n return text;\n }\n};\nexport function render( /** The actual field value you get from DatoCMS **/\nstructuredTextOrNode, /** Additional render settings **/\nsettings) {\n var renderInlineRecord = settings === null || settings === void 0 ? void 0 : settings.renderInlineRecord;\n var renderLinkToRecord = settings === null || settings === void 0 ? void 0 : settings.renderLinkToRecord;\n var renderBlock = settings === null || settings === void 0 ? void 0 : settings.renderBlock;\n var customRules = (settings === null || settings === void 0 ? void 0 : settings.customNodeRules) || (settings === null || settings === void 0 ? void 0 : settings.customRules) || [];\n var result = genericHtmlRender(structuredTextOrNode, {\n adapter: {\n renderText: (settings === null || settings === void 0 ? void 0 : settings.renderText) || defaultAdapter.renderText,\n renderNode: (settings === null || settings === void 0 ? void 0 : settings.renderNode) || defaultAdapter.renderNode,\n renderFragment: (settings === null || settings === void 0 ? void 0 : settings.renderFragment) || defaultAdapter.renderFragment\n },\n customMarkRules: settings === null || settings === void 0 ? void 0 : settings.customMarkRules,\n metaTransformer: settings === null || settings === void 0 ? void 0 : settings.metaTransformer,\n customNodeRules: __spreadArrays(customRules, [renderNodeRule(isInlineItem, function (_a) {\n var node = _a.node,\n adapter = _a.adapter;\n if (!renderInlineRecord) {\n throw new RenderError(\"The Structured Text document contains an 'inlineItem' node, but no 'renderInlineRecord' option is specified!\", node);\n }\n if (!isStructuredText(structuredTextOrNode) || !structuredTextOrNode.links) {\n throw new RenderError(\"The document contains an 'inlineItem' node, but the passed value is not a Structured Text GraphQL response, or .links is not present!\", node);\n }\n var item = structuredTextOrNode.links.find(function (item) {\n return item.id === node.item;\n });\n if (!item) {\n throw new RenderError(\"The Structured Text document contains an 'inlineItem' node, but cannot find a record with ID \" + node.item + \" inside .links!\", node);\n }\n return renderInlineRecord({\n record: item,\n adapter: adapter\n });\n }), renderNodeRule(isItemLink, function (_a) {\n var node = _a.node,\n children = _a.children,\n adapter = _a.adapter;\n if (!renderLinkToRecord) {\n throw new RenderError(\"The Structured Text document contains an 'itemLink' node, but no 'renderLinkToRecord' option is specified!\", node);\n }\n if (!isStructuredText(structuredTextOrNode) || !structuredTextOrNode.links) {\n throw new RenderError(\"The document contains an 'itemLink' node, but the passed value is not a Structured Text GraphQL response, or .links is not present!\", node);\n }\n var item = structuredTextOrNode.links.find(function (item) {\n return item.id === node.item;\n });\n if (!item) {\n throw new RenderError(\"The Structured Text document contains an 'itemLink' node, but cannot find a record with ID \" + node.item + \" inside .links!\", node);\n }\n return renderLinkToRecord({\n record: item,\n adapter: adapter,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n children: children,\n transformedMeta: node.meta ? ((settings === null || settings === void 0 ? void 0 : settings.metaTransformer) || defaultMetaTransformer)({\n node: node,\n meta: node.meta\n }) : null\n });\n }), renderNodeRule(isBlock, function (_a) {\n var node = _a.node,\n adapter = _a.adapter;\n if (!renderBlock) {\n throw new RenderError(\"The Structured Text document contains a 'block' node, but no 'renderBlock' option is specified!\", node);\n }\n if (!isStructuredText(structuredTextOrNode) || !structuredTextOrNode.blocks) {\n throw new RenderError(\"The document contains a 'block' node, but the passed value is not a Structured Text GraphQL response, or .blocks is not present!\", node);\n }\n var item = structuredTextOrNode.blocks.find(function (item) {\n return item.id === node.item;\n });\n if (!item) {\n throw new RenderError(\"The Structured Text document contains a 'block' node, but cannot find a record with ID \" + node.item + \" inside .blocks!\", node);\n }\n return renderBlock({\n record: item,\n adapter: adapter\n });\n })])\n });\n return result || null;\n}","import {\n CustomFormFieldsFragment,\n CustomFormsConfigurationFieldsFragment,\n DatoCmsDatoCmsFormUserEmailContentStructuredText,\n DatoCmsDatoCmsFormSubsidiaryEmailContentStructuredText,\n} from \"../../../graphql-types\"\nimport { render } from \"datocms-structured-text-to-html-string\"\nimport { StructuredText as StructuredTextGraphQlResponse } from \"datocms-structured-text-utils/dist/types/types\"\nimport sanitizeHtml from \"sanitize-html\"\nimport { decode } from \"html-entities\"\n\nexport function formToText(\n configuration: CustomFormsConfigurationFieldsFragment,\n content: DatoCmsDatoCmsFormUserEmailContentStructuredText | DatoCmsDatoCmsFormSubsidiaryEmailContentStructuredText,\n fields: CustomFormFieldsFragment[\"fieldsList\"],\n values: { [key: string]: any }\n) {\n const renderFormContent = (renderNode, renderText) => {\n return fields\n .filter(field => ![\"DatoCmsSimpleText\", \"DatoCmsFileField\"].includes(field.__typename))\n .map(field => {\n switch (field.__typename) {\n case \"DatoCmsSingleLineTextField\":\n case \"DatoCmsRadioButtonsField\":\n case \"DatoCmsSelectField\":\n case \"DatoCmsUserEmailField\":\n case \"DatoCmsMultiLinesTextField\":\n return {\n label: decode(cleanHtmlTags(field.name)),\n value: decode(cleanHtmlTags(values[field.id])),\n }\n case \"DatoCmsCheckboxField\":\n return {\n label: decode(cleanHtmlTags(field.name)),\n value: values[field.id] ? \"✓\" : \"✖︎\",\n }\n default:\n return { label: \"Unhandled field type\", value: field.__typename }\n }\n })\n .map(({ label, value }, index) => {\n // Alternate row background color\n const backgroundColor = index % 2 === 0 ? \"#f4f4f4\" : \"#ffffff\"\n const trStyle = `background-color: ${backgroundColor}; font-family: \"Raleway\", Arial, sans-serif; font-size: 16px; ;`\n const thStyle = \"padding: 8px; text-align: left; font-weight: 400; max-width:400px\"\n const tdStyle = \"padding: 8px; text-align: left; font-weight: 600;\"\n return renderNode(\"tr\", { style: trStyle }, [\n renderNode(\"th\", { style: thStyle }, renderText(label)),\n renderNode(\"td\", { style: tdStyle }, renderText(value)),\n ])\n })\n }\n const tableStyle = `border-spacing: 0; font-family: \"Roboto Slab Medium\", Arial, serif; font-size: 16px`\n const options = {\n renderBlock(block) {\n if (block.fragmentType === \"Email content\") {\n return block.renderNode(\n \"table\",\n { style: tableStyle },\n renderFormContent(block.adapter.renderNode, block.adapter.renderText)\n )\n }\n console.log(\"Unhandled fragment: \" + block.fragmentType)\n },\n renderInlineRecord({ record: block, adapter: { renderNode, renderText } }) {\n if (block.fragmentType === \"Form content\") {\n return renderNode(\"table\", { style: tableStyle }, renderFormContent(renderNode, renderText))\n }\n console.log(\"Unhandled fragment: \" + block.fragmentType)\n },\n }\n const emailBody = render(content as unknown as StructuredTextGraphQlResponse, options)\n // Add the subsidiary logo at the bottom of the email\n if (configuration.logoSubsidiary) {\n const logo = `<img src=\"${configuration.logoSubsidiary.url}\" alt=\"${configuration.logoSubsidiary.alt}\" style=\"max-width: 150px; margin-top: 50px; margin-bottom: 20px;\"/>`\n return emailBody + logo\n }\n return emailBody\n}\n\nfunction cleanHtmlTags(value: string) {\n return sanitizeHtml(value, {\n allowedTags: [],\n allowedAttributes: {},\n })\n}\n","export function getFieldName(fieldName) {\n if (fieldName == undefined || !fieldName) {\n return undefined\n }\n let cleanFieldName = fieldName.toLowerCase().replaceAll(\"é\", \"e\")\n const tel = [\"tel\", \"telephone\", \"phone\", \"tel.\", \"tel-national\", \"numero de telephone\"]\n const email = [\"email\", \"mail\", \"e-mail\", \"courriel\", \"courriel electronique\"]\n const givenName = [\"prenom\", \"firstname\", \"first-name\", \"givenname\", \"given-name\", \"given name\"]\n const familyName = [\"nom de famille\", \"nom\", \"patronyme\", \"name\", \"family name\", \"family-name\"]\n const country = [\"pays\", \"country\", \"pays de residence\"]\n const prefix = [\"civilite\", \"civ.\", \"civi.\"]\n let newRegex = new RegExp(`${cleanFieldName}`)\n let realName = undefined\n\n tel.forEach(element => {\n if (newRegex.test(element)) {\n realName = \"tel-national\"\n }\n })\n email.forEach(element => {\n if (newRegex.test(element)) {\n realName = \"email\"\n }\n })\n givenName.forEach(element => {\n if (newRegex.test(element)) {\n realName = \"given-name\"\n }\n })\n familyName.forEach(element => {\n if (newRegex.test(element)) {\n realName = \"family-name\"\n }\n })\n prefix.forEach(element => {\n if (newRegex.test(element)) {\n realName = \"honorific-prefix\"\n }\n })\n country.forEach(element => {\n if (newRegex.test(element)) {\n realName = \"country-name\"\n }\n })\n return realName\n}\n","var _excluded = [\"sitekey\", \"onChange\", \"theme\", \"type\", \"tabindex\", \"onExpired\", \"onErrored\", \"size\", \"stoken\", \"grecaptcha\", \"badge\", \"hl\", \"isolated\"];\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n _setPrototypeOf(subClass, superClass);\n}\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\nimport * as React from \"react\";\nvar ReCAPTCHA = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(ReCAPTCHA, _React$Component);\n function ReCAPTCHA() {\n var _this;\n _this = _React$Component.call(this) || this;\n _this.handleExpired = _this.handleExpired.bind(_assertThisInitialized(_this));\n _this.handleErrored = _this.handleErrored.bind(_assertThisInitialized(_this));\n _this.handleChange = _this.handleChange.bind(_assertThisInitialized(_this));\n _this.handleRecaptchaRef = _this.handleRecaptchaRef.bind(_assertThisInitialized(_this));\n return _this;\n }\n var _proto = ReCAPTCHA.prototype;\n _proto.getCaptchaFunction = function getCaptchaFunction(fnName) {\n if (this.props.grecaptcha) {\n if (this.props.grecaptcha.enterprise) {\n return this.props.grecaptcha.enterprise[fnName];\n }\n return this.props.grecaptcha[fnName];\n }\n return null;\n };\n _proto.getValue = function getValue() {\n var getResponse = this.getCaptchaFunction(\"getResponse\");\n if (getResponse && this._widgetId !== undefined) {\n return getResponse(this._widgetId);\n }\n return null;\n };\n _proto.getWidgetId = function getWidgetId() {\n if (this.props.grecaptcha && this._widgetId !== undefined) {\n return this._widgetId;\n }\n return null;\n };\n _proto.execute = function execute() {\n var execute = this.getCaptchaFunction(\"execute\");\n if (execute && this._widgetId !== undefined) {\n return execute(this._widgetId);\n } else {\n this._executeRequested = true;\n }\n };\n _proto.executeAsync = function executeAsync() {\n var _this2 = this;\n return new Promise(function (resolve, reject) {\n _this2.executionResolve = resolve;\n _this2.executionReject = reject;\n _this2.execute();\n });\n };\n _proto.reset = function reset() {\n var resetter = this.getCaptchaFunction(\"reset\");\n if (resetter && this._widgetId !== undefined) {\n resetter(this._widgetId);\n }\n };\n _proto.forceReset = function forceReset() {\n var resetter = this.getCaptchaFunction(\"reset\");\n if (resetter) {\n resetter();\n }\n };\n _proto.handleExpired = function handleExpired() {\n if (this.props.onExpired) {\n this.props.onExpired();\n } else {\n this.handleChange(null);\n }\n };\n _proto.handleErrored = function handleErrored() {\n if (this.props.onErrored) {\n this.props.onErrored();\n }\n if (this.executionReject) {\n this.executionReject();\n delete this.executionResolve;\n delete this.executionReject;\n }\n };\n _proto.handleChange = function handleChange(token) {\n if (this.props.onChange) {\n this.props.onChange(token);\n }\n if (this.executionResolve) {\n this.executionResolve(token);\n delete this.executionReject;\n delete this.executionResolve;\n }\n };\n _proto.explicitRender = function explicitRender() {\n var render = this.getCaptchaFunction(\"render\");\n if (render && this._widgetId === undefined) {\n var wrapper = document.createElement(\"div\");\n this._widgetId = render(wrapper, {\n sitekey: this.props.sitekey,\n callback: this.handleChange,\n theme: this.props.theme,\n type: this.props.type,\n tabindex: this.props.tabindex,\n \"expired-callback\": this.handleExpired,\n \"error-callback\": this.handleErrored,\n size: this.props.size,\n stoken: this.props.stoken,\n hl: this.props.hl,\n badge: this.props.badge,\n isolated: this.props.isolated\n });\n this.captcha.appendChild(wrapper);\n }\n if (this._executeRequested && this.props.grecaptcha && this._widgetId !== undefined) {\n this._executeRequested = false;\n this.execute();\n }\n };\n _proto.componentDidMount = function componentDidMount() {\n this.explicitRender();\n };\n _proto.componentDidUpdate = function componentDidUpdate() {\n this.explicitRender();\n };\n _proto.handleRecaptchaRef = function handleRecaptchaRef(elem) {\n this.captcha = elem;\n };\n _proto.render = function render() {\n // consume properties owned by the reCATPCHA, pass the rest to the div so the user can style it.\n /* eslint-disable no-unused-vars */\n var _this$props = this.props,\n sitekey = _this$props.sitekey,\n onChange = _this$props.onChange,\n theme = _this$props.theme,\n type = _this$props.type,\n tabindex = _this$props.tabindex,\n onExpired = _this$props.onExpired,\n onErrored = _this$props.onErrored,\n size = _this$props.size,\n stoken = _this$props.stoken,\n grecaptcha = _this$props.grecaptcha,\n badge = _this$props.badge,\n hl = _this$props.hl,\n isolated = _this$props.isolated,\n childProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\n /* eslint-enable no-unused-vars */\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, childProps, {\n ref: this.handleRecaptchaRef\n }));\n };\n return ReCAPTCHA;\n}(React.Component);\nexport { ReCAPTCHA as default };\nReCAPTCHA.displayName = \"ReCAPTCHA\";\nReCAPTCHA.defaultProps = {\n onChange: function onChange() {},\n theme: \"light\",\n type: \"image\",\n tabindex: 0,\n size: \"normal\",\n badge: \"bottomright\"\n};","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\nimport { Component, createElement, forwardRef } from \"react\";\nimport PropTypes from \"prop-types\";\nimport hoistStatics from \"hoist-non-react-statics\";\nvar SCRIPT_MAP = {}; // A counter used to generate a unique id for each component that uses the function\n\nvar idCount = 0;\nexport default function makeAsyncScript(getScriptURL, options) {\n options = options || {};\n return function wrapWithAsyncScript(WrappedComponent) {\n var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || \"Component\";\n var AsyncScriptLoader = /*#__PURE__*/\n function (_Component) {\n _inheritsLoose(AsyncScriptLoader, _Component);\n function AsyncScriptLoader(props, context) {\n var _this;\n _this = _Component.call(this, props, context) || this;\n _this.state = {};\n _this.__scriptURL = \"\";\n return _this;\n }\n var _proto = AsyncScriptLoader.prototype;\n _proto.asyncScriptLoaderGetScriptLoaderID = function asyncScriptLoaderGetScriptLoaderID() {\n if (!this.__scriptLoaderID) {\n this.__scriptLoaderID = \"async-script-loader-\" + idCount++;\n }\n return this.__scriptLoaderID;\n };\n _proto.setupScriptURL = function setupScriptURL() {\n this.__scriptURL = typeof getScriptURL === \"function\" ? getScriptURL() : getScriptURL;\n return this.__scriptURL;\n };\n _proto.asyncScriptLoaderHandleLoad = function asyncScriptLoaderHandleLoad(state) {\n var _this2 = this;\n\n // use reacts setState callback to fire props.asyncScriptOnLoad with new state/entry\n this.setState(state, function () {\n return _this2.props.asyncScriptOnLoad && _this2.props.asyncScriptOnLoad(_this2.state);\n });\n };\n _proto.asyncScriptLoaderTriggerOnScriptLoaded = function asyncScriptLoaderTriggerOnScriptLoaded() {\n var mapEntry = SCRIPT_MAP[this.__scriptURL];\n if (!mapEntry || !mapEntry.loaded) {\n throw new Error(\"Script is not loaded.\");\n }\n for (var obsKey in mapEntry.observers) {\n mapEntry.observers[obsKey](mapEntry);\n }\n delete window[options.callbackName];\n };\n _proto.componentDidMount = function componentDidMount() {\n var _this3 = this;\n var scriptURL = this.setupScriptURL();\n var key = this.asyncScriptLoaderGetScriptLoaderID();\n var _options = options,\n globalName = _options.globalName,\n callbackName = _options.callbackName,\n scriptId = _options.scriptId; // check if global object already attached to window\n\n if (globalName && typeof window[globalName] !== \"undefined\") {\n SCRIPT_MAP[scriptURL] = {\n loaded: true,\n observers: {}\n };\n } // check if script loading already\n\n if (SCRIPT_MAP[scriptURL]) {\n var entry = SCRIPT_MAP[scriptURL]; // if loaded or errored then \"finish\"\n\n if (entry && (entry.loaded || entry.errored)) {\n this.asyncScriptLoaderHandleLoad(entry);\n return;\n } // if still loading then callback to observer queue\n\n entry.observers[key] = function (entry) {\n return _this3.asyncScriptLoaderHandleLoad(entry);\n };\n return;\n }\n /*\n * hasn't started loading\n * start the \"magic\"\n * setup script to load and observers\n */\n\n var observers = {};\n observers[key] = function (entry) {\n return _this3.asyncScriptLoaderHandleLoad(entry);\n };\n SCRIPT_MAP[scriptURL] = {\n loaded: false,\n observers: observers\n };\n var script = document.createElement(\"script\");\n script.src = scriptURL;\n script.async = true;\n for (var attribute in options.attributes) {\n script.setAttribute(attribute, options.attributes[attribute]);\n }\n if (scriptId) {\n script.id = scriptId;\n }\n var callObserverFuncAndRemoveObserver = function callObserverFuncAndRemoveObserver(func) {\n if (SCRIPT_MAP[scriptURL]) {\n var mapEntry = SCRIPT_MAP[scriptURL];\n var observersMap = mapEntry.observers;\n for (var obsKey in observersMap) {\n if (func(observersMap[obsKey])) {\n delete observersMap[obsKey];\n }\n }\n }\n };\n if (callbackName && typeof window !== \"undefined\") {\n window[callbackName] = function () {\n return _this3.asyncScriptLoaderTriggerOnScriptLoaded();\n };\n }\n script.onload = function () {\n var mapEntry = SCRIPT_MAP[scriptURL];\n if (mapEntry) {\n mapEntry.loaded = true;\n callObserverFuncAndRemoveObserver(function (observer) {\n if (callbackName) {\n return false;\n }\n observer(mapEntry);\n return true;\n });\n }\n };\n script.onerror = function () {\n var mapEntry = SCRIPT_MAP[scriptURL];\n if (mapEntry) {\n mapEntry.errored = true;\n callObserverFuncAndRemoveObserver(function (observer) {\n observer(mapEntry);\n return true;\n });\n }\n };\n document.body.appendChild(script);\n };\n _proto.componentWillUnmount = function componentWillUnmount() {\n // Remove tag script\n var scriptURL = this.__scriptURL;\n if (options.removeOnUnmount === true) {\n var allScripts = document.getElementsByTagName(\"script\");\n for (var i = 0; i < allScripts.length; i += 1) {\n if (allScripts[i].src.indexOf(scriptURL) > -1) {\n if (allScripts[i].parentNode) {\n allScripts[i].parentNode.removeChild(allScripts[i]);\n }\n }\n }\n } // Clean the observer entry\n\n var mapEntry = SCRIPT_MAP[scriptURL];\n if (mapEntry) {\n delete mapEntry.observers[this.asyncScriptLoaderGetScriptLoaderID()];\n if (options.removeOnUnmount === true) {\n delete SCRIPT_MAP[scriptURL];\n }\n }\n };\n _proto.render = function render() {\n var globalName = options.globalName; // remove asyncScriptOnLoad from childProps\n\n var _this$props = this.props,\n asyncScriptOnLoad = _this$props.asyncScriptOnLoad,\n forwardedRef = _this$props.forwardedRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"asyncScriptOnLoad\", \"forwardedRef\"]); // eslint-disable-line no-unused-vars\n\n if (globalName && typeof window !== \"undefined\") {\n childProps[globalName] = typeof window[globalName] !== \"undefined\" ? window[globalName] : undefined;\n }\n childProps.ref = forwardedRef;\n return createElement(WrappedComponent, childProps);\n };\n return AsyncScriptLoader;\n }(Component); // Note the second param \"ref\" provided by React.forwardRef.\n // We can pass it along to AsyncScriptLoader as a regular prop, e.g. \"forwardedRef\"\n // And it can then be attached to the Component.\n\n var ForwardedComponent = forwardRef(function (props, ref) {\n return createElement(AsyncScriptLoader, _extends({}, props, {\n forwardedRef: ref\n }));\n });\n ForwardedComponent.displayName = \"AsyncScriptLoader(\" + wrappedComponentName + \")\";\n ForwardedComponent.propTypes = {\n asyncScriptOnLoad: PropTypes.func\n };\n return hoistStatics(ForwardedComponent, WrappedComponent);\n };\n}","import ReCAPTCHA from \"./recaptcha\";\nimport makeAsyncScriptLoader from \"react-async-script\";\nvar callbackName = \"onloadcallback\";\nvar globalName = \"grecaptcha\";\nfunction getOptions() {\n return typeof window !== \"undefined\" && window.recaptchaOptions || {};\n}\nfunction getURL() {\n var dynamicOptions = getOptions();\n var hostname = dynamicOptions.useRecaptchaNet ? \"recaptcha.net\" : \"www.google.com\";\n if (dynamicOptions.enterprise) {\n return \"https://\" + hostname + \"/recaptcha/enterprise.js?onload=\" + callbackName + \"&render=explicit\";\n }\n return \"https://\" + hostname + \"/recaptcha/api.js?onload=\" + callbackName + \"&render=explicit\";\n}\nexport default makeAsyncScriptLoader(getURL, {\n callbackName: callbackName,\n globalName: globalName,\n attributes: getOptions().nonce ? {\n nonce: getOptions().nonce\n } : {}\n})(ReCAPTCHA);","import RecaptchaWrapper from \"./recaptcha-wrapper\";\nimport ReCAPTCHA from \"./recaptcha\";\nexport default RecaptchaWrapper;\nexport { ReCAPTCHA };","import React, { useEffect, useState } from \"react\"\nimport { CustomFormFieldsFragment, CustomFormsConfigurationFieldsFragment } from \"../../../graphql-types\"\nimport * as styles from \"./custom-form.module.scss\"\nimport * as inputsStyles from \"../layout/inputs.module.scss\"\nimport { graphql } from \"gatsby\"\nimport Input, { ValidationType } from \"../layout/form/input\"\nimport Textarea from \"../layout/form/textarea\"\nimport RadioButton from \"../layout/form/radio-button\"\nimport Checkbox from \"../layout/form/checkbox\"\nimport Select from \"../layout/form/select\"\nimport RichDatoCmsContent from \"../rich-datocms-content/rich-datocms-content\"\nimport FileInput from \"../layout/form/file-input\"\nimport { useForm } from \"react-hook-form\"\nimport FormError from \"../layout/form/form-error\"\nimport { sendEmail } from \"../../api/notifications\"\nimport { formToText } from \"./form-to-text\"\nimport { pushGtmEvent } from \"../../gtm/interaction-event\"\nimport { getFieldName } from \"./field-name-checker\"\nimport ReCAPTCHA from \"react-google-recaptcha\"\n\ntype RenderProps = {\n data: CustomFormFieldsFragment\n configuration: CustomFormsConfigurationFieldsFragment\n formCaptchaKey: string\n}\n\nconst CustomForm: React.FC<RenderProps> = ({ data, configuration, formCaptchaKey }) => {\n const {\n register,\n handleSubmit,\n formState: { errors },\n } = useForm<FormData>()\n const [formValues, setFormValues] = useState<Map<string, string | boolean | FileList>>(new Map())\n const [formState, setFormState] = useState<FormState>(FormState.Pending)\n const [firstClick, setFirstClick] = useState(true)\n const [captchaValue, setCaptchaValue] = useState(\"\")\n\n useEffect(() => {\n const getTextWidth = (text: string, inputElement: HTMLElement) => {\n const span = document.createElement(\"span\")\n span.textContent = text\n span.style.visibility = \"hidden\"\n span.style.font = window.getComputedStyle(inputElement).font\n document.body.appendChild(span)\n const width = span.offsetWidth\n document.body.removeChild(span)\n return width\n }\n\n const textFields = document.querySelectorAll(`.${styles.textField}`) as NodeListOf<HTMLElement>\n textFields.forEach(textField => {\n const placeholderWidth = getTextWidth(textField.getAttribute(\"placeholder\") || \"\", textField)\n const inputWidth = (textField as HTMLElement).offsetWidth\n\n if (placeholderWidth + 20 > inputWidth) {\n textField.style.maxWidth = placeholderWidth + 20 + \"px\"\n }\n })\n }, [])\n\n function onChange(fieldId, value) {\n const newValues = new Map(formValues)\n newValues.set(fieldId, value)\n setFormValues(newValues)\n }\n\n function pushGtmFirstClickEvent() {\n if (firstClick) {\n pushGtmEvent(\"Form\", \"Form\", \"Form 1st click\", data.title)\n setFirstClick(false)\n }\n }\n\n function onSubmit(formData) {\n const submitForm = () => {\n pushGtmEvent(\"eventga\", \"Form\", \"Form Submit\", data.title)\n const userEmailContent = formToText(configuration, data.userEmailContent, data.fieldsList, formData).replace(\n /'/g,\n \"'\"\n )\n const subsidiaryEmailContent = formToText(\n configuration,\n data.subsidiaryEmailContent,\n data.fieldsList,\n formData\n ).replace(/'/g, \"'\")\n\n const notEmptyEmailFieldIds = data.fieldsList\n .filter(field => field.__typename === \"DatoCmsUserEmailField\")\n .map(field => field.id)\n .filter(fieldId => !!formData[fieldId])\n const notEmptyFiles = data.fieldsList\n .filter(field => field.__typename === \"DatoCmsFileField\")\n .map(field => field.id)\n .filter(fieldId => !!formData[fieldId] && !!formData[fieldId][0])\n .map(fieldId => formData[fieldId][0])\n\n setFormState(FormState.Submitting)\n let emailFieldValue = notEmptyEmailFieldIds.filter(emailFieldId => formData[emailFieldId])\n const emailPromise = sendEmail(\n data.from,\n data.receivers,\n data.subsidiaryEmailSubject,\n subsidiaryEmailContent,\n notEmptyFiles,\n formData[emailFieldValue[0]]\n )\n const userEmailPromises = notEmptyEmailFieldIds.map(emailFieldId =>\n sendEmail(\n data.from,\n [{ email: formData[emailFieldId], sendType: \"Principal\" }],\n data.userEmailSubject,\n userEmailContent,\n notEmptyFiles,\n formData[emailFieldId]\n )\n )\n\n return Promise.all([emailPromise, ...userEmailPromises]).then(\n () => setFormState(FormState.Success),\n () => setFormState(FormState.Error)\n )\n }\n\n // if (!formCaptchaKey || (formCaptchaKey && captchaValue)) submitForm()\n\n submitForm()\n }\n\n return (\n <form className={styles.customForm} onSubmit={handleSubmit(onSubmit)} noValidate={true}>\n <h2 className={styles.title}>{data.title}</h2>\n {data.fieldsList.map(field => {\n switch (field.__typename) {\n case \"DatoCmsSingleLineTextField\":\n field.id = getFieldName(field.name) != undefined ? getFieldName(field.name) : field.id\n const validationType = toValidationType(field.format)\n return (\n <div className={inputsStyles.formPart + \" \" + styles.formPart} key={field.id}>\n <label\n htmlFor={field.id}\n className={inputsStyles.label + (field.mandatory ? \" \" + inputsStyles.labelRequired : \"\")}\n >\n {field.name}\n </label>\n <Input\n id={field.id}\n type=\"text\"\n name={field.id}\n autocomplete={getFieldName(field.name) !== undefined}\n placeholder={field.placeholder}\n required={field.mandatory}\n className={styles.textField}\n aria-describedby=\"singleLineErrorDesc\"\n /* value={(formValues.get(field.id) as string) || \"\"}\n onChange={value => onChange(field.id, value)} */\n register={register}\n validationType={validationType}\n hasErrors={!!errors[field.id]}\n onFocus={pushGtmFirstClickEvent}\n />\n <FormError errors={errors} name={field.id} type=\"required\">\n {configuration.requiredFieldError}\n </FormError>\n {validationType === ValidationType.PhoneNumber && (\n <FormError errors={errors} name={field.id} type=\"pattern\" id=\"singleLineErrorDesc\">\n {configuration.phoneNumberFieldError}\n </FormError>\n )}\n {validationType === ValidationType.Email && (\n <FormError errors={errors} name={field.id} type=\"pattern\" id=\"singleLineErrorDesc\">\n {configuration.emailFieldError}\n </FormError>\n )}\n </div>\n )\n\n case \"DatoCmsUserEmailField\":\n field.id = getFieldName(field.name) != undefined ? getFieldName(field.name) : field.id\n return (\n <div className={inputsStyles.formPart + \" \" + styles.formPart} key={field.id}>\n <label\n htmlFor={field.id}\n className={inputsStyles.label + (field.mandatory ? \" \" + inputsStyles.labelRequired : \"\")}\n >\n {field.name}\n </label>\n <Input\n id={field.id}\n type=\"text\"\n name={field.id}\n autocomplete={getFieldName(field.name) !== undefined}\n placeholder={field.placeholder}\n required={field.mandatory}\n className={styles.textField}\n /* value={(formValues.get(field.id) as string) || \"\"}\n onChange={value => onChange(field.id, value)} */\n register={register}\n validationType={ValidationType.Email}\n hasErrors={!!errors[field.id]}\n aria-describedby=\"emailErrorDesc\"\n onFocus={pushGtmFirstClickEvent}\n />\n <FormError errors={errors} name={field.id} type=\"required\">\n {configuration.requiredFieldError}\n </FormError>\n <FormError errors={errors} name={field.id} type=\"pattern\" id=\"emailErrorDesc\">\n {configuration.emailFieldError}\n </FormError>\n </div>\n )\n\n case \"DatoCmsMultiLinesTextField\":\n return (\n <div className={inputsStyles.formPart + \" \" + styles.formPart} key={field.id}>\n <label\n htmlFor={field.id}\n className={inputsStyles.label + (field.mandatory ? \" \" + inputsStyles.labelRequired : \"\")}\n >\n {field.name}\n </label>\n <Textarea\n id={field.id}\n name={field.id}\n placeholder={field.placeholder}\n required={field.mandatory}\n /* value={(formValues.get(field.id) as string) || \"\"}\n onChange={value => onChange(field.id, value)} */\n hasErrors={!!errors[field.id]}\n register={register}\n onFocus={pushGtmFirstClickEvent}\n />\n <FormError errors={errors} name={field.id} type=\"required\">\n {configuration.requiredFieldError}\n </FormError>\n </div>\n )\n\n case \"DatoCmsRadioButtonsField\":\n return (\n <fieldset className={inputsStyles.formPart + \" \" + styles.formPart} key={field.id}>\n <legend className={inputsStyles.label + (field.mandatory ? \" \" + inputsStyles.labelRequired : \"\")}>\n {field.name}\n </legend>\n <div className={inputsStyles.radioButtons}>\n {(JSON.parse(field.options) as string[]).map((option, index) => (\n <RadioButton\n key={index}\n id={field.id + index}\n label={option}\n name={field.id}\n required={field.mandatory}\n value={option}\n //checked={option === formValues.get(field.id)}\n //onChange={value => onChange(field.id, value)}\n hasErrors={!!errors[field.id]}\n register={register}\n onFocus={pushGtmFirstClickEvent}\n />\n ))}\n </div>\n <FormError errors={errors} name={field.id} type=\"required\">\n {configuration.requiredFieldError}\n </FormError>\n </fieldset>\n )\n\n case \"DatoCmsCheckboxField\":\n return (\n <div className={inputsStyles.formPart + \" \" + styles.formPart} key={field.id}>\n <Checkbox\n key={field.id}\n id={field.id}\n label={field.name}\n name={field.id}\n required={field.mandatory}\n //checked={!!formValues.get(field.id)}\n //onChange={value => onChange(field.id, value)}\n hasErrors={!!errors[field.id]}\n register={register}\n onFocus={pushGtmFirstClickEvent}\n />\n <FormError errors={errors} name={field.id} type=\"required\">\n {configuration.requiredFieldError}\n </FormError>\n </div>\n )\n\n case \"DatoCmsFileField\":\n return (\n <div className={inputsStyles.formPart + \" \" + styles.formPart} key={field.id}>\n <label\n htmlFor={field.id}\n className={inputsStyles.label + (field.mandatory ? \" \" + inputsStyles.labelRequired : \"\")}\n >\n {field.name}\n </label>\n <FileInput\n key={field.id}\n id={field.id}\n type=\"file\"\n name={field.id}\n placeholder={field.placeholder}\n required={field.mandatory}\n onChange={value => onChange(field.id, value)}\n className={styles.fileField}\n register={register}\n onFocus={pushGtmFirstClickEvent}\n />\n <FormError errors={errors} name={field.id} type=\"required\">\n {configuration.requiredFieldError}\n </FormError>\n </div>\n )\n\n case \"DatoCmsSelectField\":\n return (\n <div className={inputsStyles.formPart + \" \" + styles.formPart} key={field.id}>\n <label\n htmlFor={field.id}\n className={inputsStyles.label + (field.mandatory ? \" \" + inputsStyles.labelRequired : \"\")}\n >\n {field.name}\n </label>\n <Select\n key={field.id}\n id={field.id}\n name={field.id}\n autocomplete={getFieldName(field.name) !== undefined}\n options={JSON.parse(field.options)}\n required={field.mandatory}\n /* value={(formValues.get(field.id) as string) || \"\"}\n onChange={value => onChange(field.id, value)} */\n className={styles.select}\n hasErrors={!!errors[field.id]}\n register={register}\n onFocus={pushGtmFirstClickEvent}\n />\n <FormError errors={errors} name={field.id} type=\"required\">\n {configuration.requiredFieldError}\n </FormError>\n </div>\n )\n\n case \"DatoCmsSimpleText\":\n return <RichDatoCmsContent key={field.id} data={[field]} />\n }\n })}\n\n {formCaptchaKey && <ReCAPTCHA sitekey={formCaptchaKey} onChange={onChangeCaptcha} />}\n\n <button\n type=\"submit\"\n className={inputsStyles.primaryButton + \" \" + styles.submitButton}\n disabled={formState === FormState.Submitting || formState === FormState.Success}\n >\n {data.submitButtonLabel}\n </button>\n {formState === FormState.Error && (\n <div className={inputsStyles.formError + \" \" + styles.globalError}>{data.formError}</div>\n )}\n {formState === FormState.Success && <div className={styles.successMessage}>{data.successMessage}</div>}\n </form>\n )\n\n function onChangeCaptcha(value) {\n setCaptchaValue(value)\n }\n}\n\nexport default CustomForm\n\nexport const fragments = graphql`\n fragment CustomFormFields on DatoCmsForm {\n title\n submitButtonLabel\n from\n receivers {\n ...EmailReceiversFields\n }\n successMessage\n formError\n subsidiaryEmailSubject\n subsidiaryEmailContent {\n value\n blocks\n links {\n id: originalId\n fragmentType\n }\n }\n userEmailSubject\n userEmailContent {\n value\n blocks\n links {\n id: originalId\n fragmentType\n }\n }\n fieldsList {\n __typename\n ... on DatoCmsSingleLineTextField {\n id\n name\n placeholder\n mandatory\n format\n }\n ... on DatoCmsMultiLinesTextField {\n id\n name\n placeholder\n mandatory\n }\n ... on DatoCmsRadioButtonsField {\n id\n name\n mandatory\n options\n }\n ... on DatoCmsCheckboxField {\n id\n name\n mandatory\n }\n ... on DatoCmsFileField {\n id\n name\n mandatory\n placeholder\n }\n ... on DatoCmsSelectField {\n id\n name\n mandatory\n options\n }\n ... on DatoCmsUserEmailField {\n id\n name\n placeholder\n mandatory\n }\n ... on DatoCmsSimpleText {\n ...SimpleTextFields\n }\n }\n }\n\n fragment EmailReceiversFields on DatoCmsEmailReceiversBlock {\n email\n sendType\n }\n\n fragment CustomFormsConfigurationFields on DatoCmsFormsConfiguration {\n requiredFieldError\n phoneNumberFieldError\n emailFieldError\n logoSubsidiary {\n alt\n url\n }\n }\n`\n\nfunction toValidationType(format: string) {\n switch (format) {\n case \"Email\":\n return ValidationType.Email\n case \"Phone number\":\n return ValidationType.PhoneNumber\n default:\n return ValidationType.None\n }\n}\n\nenum FormState {\n Pending,\n Submitting,\n Success,\n Error,\n}\n","// extracted by mini-css-extract-plugin\nexport var mainMenuLabel = \"website-map-module--mainMenuLabel--ba384\";\nexport var menu = \"website-map-module--menu--9a0e0\";\nexport var submenulabel = \"website-map-module--submenulabel--aeae9\";\nexport var websiteMap = \"website-map-module--websiteMap--67ff8\";","import React from \"react\"\nimport { FooterMenuFieldsFragment, HeaderMenuFieldsFragment } from \"../../../graphql-types\"\nimport * as styles from \"./website-map.module.scss\"\n\ntype RenderProps = {\n menuData: HeaderMenuFieldsFragment & FooterMenuFieldsFragment\n}\n\nconst WebsiteMap: React.FC<RenderProps> = ({ menuData }) => {\n const buildWebsiteMapMenu = (mainMenuLabel: string, mainMenuPage, submenu) => {\n const shouldDisplaySubmenu = (submenuItem): boolean => {\n return submenuItem.page && (submenuItem.headerDisplay || submenuItem.footerDisplay)\n }\n\n return (\n <li className={styles.menu}>\n {mainMenuPage && mainMenuPage.slug ? (\n <a className={styles.mainMenuLabel} href={`/${mainMenuPage.slug}`}>\n {mainMenuLabel}\n </a>\n ) : (\n <a className={styles.mainMenuLabel} href=\"#\">\n {mainMenuLabel}\n </a>\n )}\n {submenu &&\n submenu.filter(shouldDisplaySubmenu).map(submenuItem => (\n <a key={submenuItem.id} className={styles.submenulabel} href={`/${submenuItem.page.slug}`}>\n {submenuItem.label}\n </a>\n ))}\n </li>\n )\n }\n\n return (\n <ul className={styles.websiteMap}>\n {(menuData.headerDisplay1 || menuData.footerDisplay1) &&\n buildWebsiteMapMenu(menuData.label, menuData.page, menuData.column1)}\n {(menuData.headerDisplay2 || menuData.footerDisplay2) &&\n buildWebsiteMapMenu(menuData.label2, menuData.page2, menuData.column2)}\n {(menuData.headerDisplay3 || menuData.footerDisplay3) &&\n buildWebsiteMapMenu(menuData.label3, menuData.page3, menuData.column3)}\n {(menuData.headerDisplay4 || menuData.footerDisplay4) &&\n buildWebsiteMapMenu(menuData.label4, menuData.page4, menuData.column4)}\n {(menuData.headerDisplay5 || menuData.footerDisplay5) &&\n buildWebsiteMapMenu(menuData.label5, menuData.page5, menuData.column5)}\n </ul>\n )\n}\n\nexport default WebsiteMap\n","// extracted by mini-css-extract-plugin\nexport var formPart = \"lost-objects-form-module--formPart--35e5a\";\nexport var globalError = \"lost-objects-form-module--globalError--c19e3\";\nexport var submitButton = \"lost-objects-form-module--submitButton--b4abe\";\nexport var successMessage = \"lost-objects-form-module--successMessage--02d67\";\nexport var title = \"lost-objects-form-module--title--17afa\";","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name getYear\n * @category Year Helpers\n * @summary Get the year of the given date.\n *\n * @description\n * Get the year of the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The year\n *\n * @example\n * // Which year is 2 July 2014?\n * const result = getYear(new Date(2014, 6, 2))\n * //=> 2014\n */\nexport function getYear(date) {\n return toDate(date).getFullYear();\n}\n\n// Fallback for modularized imports:\nexport default getYear;","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name getMonth\n * @category Month Helpers\n * @summary Get the month of the given date.\n *\n * @description\n * Get the month of the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The month index (0-11)\n *\n * @example\n * // Which month is 29 February 2012?\n * const result = getMonth(new Date(2012, 1, 29))\n * //=> 1\n */\nexport function getMonth(date) {\n var _date = toDate(date);\n var month = _date.getMonth();\n return month;\n}\n\n// Fallback for modularized imports:\nexport default getMonth;","import * as inputsStyles from \"../inputs.module.scss\"\nimport React, { ReactElement, useState } from \"react\"\nimport { Control } from \"react-hook-form/dist/types\"\nimport { Controller } from \"react-hook-form\"\nimport DatePicker from \"react-datepicker\"\nimport * as config from \"../../../../config\"\nimport { getYear, getMonth } from \"date-fns\"\n\ntype RenderProps = {\n id?: string\n name: string\n required?: boolean\n className?: string\n hasErrors?: boolean\n minDate?: Date\n maxDate?: Date\n previousMonthAlt?: string\n nextMonthAlt?: string\n isItineraryForm?: boolean\n onFocus?: (value: any) => void\n autocomplete?: boolean\n} & (\n | {\n valueSelected?: string\n onChange?: (value: string) => void\n control: Control\n }\n | { valueSelected: string; onChange: (value: string) => void; control?: Control }\n)\n\nconst DateInput: React.FC<RenderProps> = ({\n id,\n name,\n required,\n className = \"\",\n valueSelected,\n onChange,\n control,\n hasErrors,\n minDate,\n maxDate,\n previousMonthAlt,\n nextMonthAlt,\n onFocus,\n isItineraryForm,\n autocomplete,\n}) => {\n const [startDate, setStartDate] = useState(new Date())\n const years = Array.from(new Array(101), (elemValue, index) => getYear(new Date()) - index)\n\n const months = [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ]\n return wrapWithController(name, control, valueSelected, ({ handleChange, handleBlur, value }) =>\n id != \"birthdateField\" ? (\n <DatePicker\n id={id}\n name={name}\n className={inputsStyles.input + \" \" + (hasErrors ? inputsStyles.fieldInError + \" \" : \"\") + className}\n // condition true == only for Aixenbus subsidiary Le Pilote itinerary search\n selected={!isItineraryForm ? value : value || new Date()}\n onChange={val => {\n handleChange(val)\n onChange && onChange(val)\n }}\n onBlur={handleBlur}\n dateFormat={config.date_format[config.locale]}\n minDate={minDate}\n maxDate={maxDate}\n required={required}\n autoComplete={autocomplete ? name : undefined}\n onFocus={event => {\n onFocus && onFocus(event.target.id)\n }}\n />\n ) : (\n <DatePicker\n className={inputsStyles.input + \" \" + (hasErrors ? inputsStyles.fieldInError + \" \" : \"\") + className}\n onFocus={event => {\n onFocus && onFocus(event.target.id)\n }}\n maxDate={maxDate}\n renderCustomHeader={({\n date,\n changeYear,\n changeMonth,\n decreaseMonth,\n increaseMonth,\n prevMonthButtonDisabled,\n nextMonthButtonDisabled,\n }) => (\n <div\n style={{\n margin: 10,\n display: \"flex\",\n justifyContent: \"center\",\n }}\n >\n <button onClick={decreaseMonth} disabled={prevMonthButtonDisabled} title={previousMonthAlt}>\n {\"<\"}\n </button>\n <select value={getYear(date)} onChange={({ target: { value } }) => changeYear(value)}>\n {years.map(option => (\n <option key={option} value={option}>\n {option}\n </option>\n ))}\n </select>\n\n <select\n value={months[getMonth(date)]}\n onChange={({ target: { value } }) => changeMonth(months.indexOf(value))}\n >\n {months.map(option => (\n <option key={option} value={option}>\n {option}\n </option>\n ))}\n </select>\n\n <button onClick={increaseMonth} disabled={nextMonthButtonDisabled} title={nextMonthAlt}>\n {\">\"}\n </button>\n </div>\n )}\n selected={startDate}\n onChange={date => setStartDate(date)}\n autoComplete={autocomplete ? name : undefined}\n />\n )\n )\n}\n\nfunction wrapWithController<T>(\n name: string,\n control: Control | null,\n value: T | null,\n renderInput: ({ handleChange, handleBlur, value }) => ReactElement\n) {\n if (!control) {\n return renderInput({ handleChange: () => {}, handleBlur: () => {}, value })\n }\n return (\n <Controller\n control={control}\n name={name}\n render={({ field: { onChange, onBlur, value } }) =>\n renderInput({\n handleChange: onChange,\n handleBlur: onBlur,\n value: value,\n })\n }\n />\n )\n}\n\nexport default DateInput\n","import * as inputsStyles from \"../inputs.module.scss\"\nimport React, { ReactElement } from \"react\"\nimport { Control } from \"react-hook-form/dist/types\"\nimport { Controller } from \"react-hook-form\"\nimport DatePicker from \"react-datepicker\"\nimport * as config from \"../../../../config\"\n\ntype RenderProps = {\n id?: string\n name: string\n required?: boolean\n className?: string\n hasErrors?: boolean\n isItineraryForm?: boolean\n timeValue?: Date\n onFocus?: (value: any) => void\n} & (\n | {\n value?: string\n onChange?: (value: string) => void\n control: Control\n }\n | { value: string; onChange: (value: string) => void; control?: Control }\n)\n\nconst TimeInput: React.FC<RenderProps> = ({\n id,\n name,\n required,\n className = \"\",\n value,\n onChange,\n control,\n hasErrors,\n onFocus,\n isItineraryForm,\n timeValue,\n}) => {\n return wrapWithController(name, control, value, ({ handleChange, handleBlur, value }) => (\n <DatePicker\n id={id}\n name={name}\n className={inputsStyles.input + \" \" + (hasErrors ? inputsStyles.fieldInError + \" \" : \"\") + className}\n showTimeSelect\n showTimeSelectOnly\n // condition true == only for Aixenbus subsidiary Le Pilote itinerary search\n selected={!isItineraryForm ? value : value || timeValue}\n onChange={value => {\n handleChange(value)\n onChange && onChange(value)\n }}\n onBlur={handleBlur}\n dateFormat={config.time_format[config.locale]}\n required={required}\n autoComplete=\"off\"\n onFocus={event => {\n onFocus && onFocus(event.target.id)\n }}\n />\n ))\n}\n\nfunction wrapWithController<T>(\n name: string,\n control: Control | null,\n value: T | null,\n renderInput: ({ handleChange, handleBlur, value }) => ReactElement\n) {\n if (!control) {\n return renderInput({ handleChange: () => {}, handleBlur: () => {}, value })\n }\n return (\n <Controller\n control={control}\n name={name}\n render={({ field: { onChange, onBlur, value } }) =>\n renderInput({\n handleChange: onChange,\n handleBlur: onBlur,\n value: value,\n })\n }\n />\n )\n}\n\nexport default TimeInput\n","import {\n DatoCmsDatoCmsLostObjectsFormConfigurationSubsidiaryEmailContentStructuredText,\n DatoCmsDatoCmsLostObjectsFormConfigurationUserEmailContentStructuredText,\n LostObjectsFormConfigurationFieldsFragment,\n} from \"../../../graphql-types\"\nimport { render } from \"datocms-structured-text-to-html-string\"\nimport { StructuredText as StructuredTextGraphQlResponse } from \"datocms-structured-text-utils/dist/types/types\"\nimport { format } from \"date-fns\"\nimport * as config from \"../../../config\"\nimport sanitizeHtml from \"sanitize-html\"\nimport { decode } from \"html-entities\"\n\nexport function lostObjectsFormToText(\n content:\n | DatoCmsDatoCmsLostObjectsFormConfigurationUserEmailContentStructuredText\n | DatoCmsDatoCmsLostObjectsFormConfigurationSubsidiaryEmailContentStructuredText,\n moduleConfiguration: LostObjectsFormConfigurationFieldsFragment,\n values: { [key: string]: any }\n) {\n const renderFormContent = (renderNode, renderText) => {\n return [\n {\n label: moduleConfiguration.nameFieldLabel,\n value: values[\"family-name\"],\n },\n {\n label: moduleConfiguration.firstnameFieldLabel,\n value: values[\"given-name\"],\n },\n { label: moduleConfiguration.addressFieldLabel, value: values.address },\n {\n label: moduleConfiguration.zipCodeFieldLabel,\n value: values[\"postal-code\"],\n },\n { label: moduleConfiguration.cityFieldLabel, value: values.city },\n { label: moduleConfiguration.phoneFieldLabel, value: values.tel },\n { label: moduleConfiguration.emailFieldLabel, value: values.email },\n {\n label: moduleConfiguration.dateFieldLabel,\n value: values.date && format(values.date, config.date_format[config.locale]),\n },\n {\n label: moduleConfiguration.timeFieldLabel,\n value: values.time && format(values.time, config.time_format[config.locale]),\n },\n {\n label: moduleConfiguration.lineFieldLabel,\n value: values.line && values.line.name,\n },\n {\n label: moduleConfiguration.directionFieldLabel,\n value: values.direction,\n },\n { label: moduleConfiguration.stopFieldLabel, value: values.stop },\n { label: moduleConfiguration.messageFieldLabel, value: values.message },\n ].map(({ label, value }) => {\n return renderNode(\"tr\", {}, [\n renderNode(\"th\", {}, renderText(decode(cleanHtmlTags(label)))),\n renderNode(\"td\", {}, renderText(decode(cleanHtmlTags(value)))),\n ])\n })\n }\n const options = {\n renderBlock(block) {\n if (block.fragmentType === \"Email content\") {\n return block.renderNode(\"table\", {}, renderFormContent(block.adapter.renderNode, block.adapter.renderText))\n } else {\n console.log(\"Unhandled fragment: \" + block.fragmentType)\n }\n },\n renderInlineRecord({ record: block, adapter: { renderNode, renderText } }) {\n if (block.fragmentType === \"Form content\") {\n return renderNode(\"table\", {}, renderFormContent(renderNode, renderText))\n } else {\n console.log(\"Unhandled fragment: \" + block.fragmentType)\n }\n },\n }\n return render(content as unknown as StructuredTextGraphQlResponse, options)\n}\n\nfunction cleanHtmlTags(value: string) {\n return sanitizeHtml(value, {\n allowedTags: [],\n allowedAttributes: {},\n })\n}\n","import React, { useState } from \"react\"\nimport {\n LostObjectsFormLineFieldsFragment,\n LostObjectsFormConfigurationFieldsFragment,\n CustomFormsConfigurationFieldsFragment,\n} from \"../../../graphql-types\"\nimport { graphql } from \"gatsby\"\nimport * as styles from \"./lost-objects-form.module.scss\"\nimport { useForm } from \"react-hook-form\"\nimport Input, { ValidationType } from \"../layout/form/input\"\nimport * as inputsStyles from \"../layout/inputs.module.scss\"\nimport FormError from \"../layout/form/form-error\"\nimport Select from \"../layout/form/select\"\nimport Autocomplete from \"../autocomplete/autocomplete\"\nimport Textarea from \"../layout/form/textarea\"\nimport DateInput from \"../layout/form/date-input\"\nimport TimeInput from \"../layout/form/time-input\"\nimport { sendEmail } from \"../../api/notifications\"\nimport { lostObjectsFormToText } from \"./lost-objects-form-to-text\"\nimport { pushGtmEvent } from \"../../gtm/interaction-event\"\nimport FileInput from \"../layout/form/file-input\"\n\ntype Line = LostObjectsFormLineFieldsFragment\n\ntype RenderProps = {\n title: string\n lines: Line[]\n moduleConfiguration: LostObjectsFormConfigurationFieldsFragment\n formsConfiguration: CustomFormsConfigurationFieldsFragment\n}\n\nconst LostObjectsForm: React.FC<RenderProps> = ({ title, lines, moduleConfiguration, formsConfiguration }) => {\n const civilityOptions = JSON.parse(moduleConfiguration.civilityOptions)\n const [formState, setFormState] = useState<FormState>(FormState.Pending)\n const {\n control,\n register,\n handleSubmit,\n formState: { errors },\n } = useForm<FormData>()\n const [firstClick, setFirstClick] = useState(true)\n const [formValues, setFormValues] = useState<Map<string, string | boolean | FileList>>(new Map())\n\n function searchLine(query: string): LostObjectsFormLineFieldsFragment[] {\n return lines.filter(result => result.name.toLowerCase().indexOf(query.toLowerCase()) !== -1)\n }\n\n function onChange(fieldId, value) {\n const newValues = new Map(formValues)\n newValues.set(fieldId, value)\n setFormValues(newValues)\n }\n\n function onSubmit(formData) {\n pushGtmEvent(\"eventga\", \"Form\", \"Form Submit\", title)\n const userEmailContent = lostObjectsFormToText(\n moduleConfiguration.userEmailContent,\n moduleConfiguration,\n formData\n ).replace(/'/g, \"'\")\n const subsidiaryEmailContent = lostObjectsFormToText(\n moduleConfiguration.subsidiaryEmailContent,\n moduleConfiguration,\n formData\n ).replace(/'/g, \"'\")\n\n setFormState(FormState.Submitting)\n let replyTo = formData.email\n const files: File[] = Array.from(formData.attachments)\n const subsidiaryEmailPromise = sendEmail(\n moduleConfiguration.fromEmail,\n [{ email: moduleConfiguration.subsidiaryEmail, sendType: \"Principal\" }],\n moduleConfiguration.subsidiaryEmailSubject,\n subsidiaryEmailContent,\n files,\n replyTo\n )\n const userEmailPromise = sendEmail(\n moduleConfiguration.fromEmail,\n [{ email: formData.email, sendType: \"Principal\" }],\n moduleConfiguration.userEmailSubject,\n userEmailContent,\n files,\n replyTo\n )\n return Promise.all([subsidiaryEmailPromise, userEmailPromise]).then(\n () => setFormState(FormState.Success),\n () => setFormState(FormState.Error)\n )\n }\n\n function pushGtmFirstClickEvent() {\n if (firstClick) {\n pushGtmEvent(\"Form\", \"Form\", \"Form 1st click\", title)\n setFirstClick(false)\n }\n }\n\n return (\n <form onSubmit={handleSubmit(onSubmit)}>\n <h2>{title}</h2>\n\n <div className={inputsStyles.formPart + \" \" + styles.formPart}>\n <label htmlFor=\"civilityField\" className={inputsStyles.label + \" \" + inputsStyles.labelRequired}>\n {moduleConfiguration.civilityFieldLabel}\n </label>\n <Select\n id=\"civilityField\"\n name=\"honorific-prefix\"\n autocomplete={true}\n required={true}\n register={register}\n options={civilityOptions}\n hasErrors={!!errors[\"honorific-prefix\"]}\n onFocus={pushGtmFirstClickEvent}\n />\n <FormError errors={errors} name=\"honorific-prefix\" type=\"required\">\n {formsConfiguration.requiredFieldError}\n </FormError>\n </div>\n\n <div className={inputsStyles.formPart + \" \" + styles.formPart}>\n <label htmlFor=\"nameField\" className={inputsStyles.label + \" \" + inputsStyles.labelRequired}>\n {moduleConfiguration.nameFieldLabel}\n </label>\n <Input\n id=\"nameField\"\n type=\"text\"\n name=\"family-name\"\n autocomplete={true}\n placeholder={moduleConfiguration.nameFieldPlaceholder}\n required={true}\n register={register}\n hasErrors={!!errors[\"name\"]}\n onFocus={pushGtmFirstClickEvent}\n />\n <FormError errors={errors} name=\"name\" type=\"required\">\n {formsConfiguration.requiredFieldError}\n </FormError>\n </div>\n\n <div className={inputsStyles.formPart + \" \" + styles.formPart}>\n <label htmlFor=\"firstnameField\" className={inputsStyles.label + \" \" + inputsStyles.labelRequired}>\n {moduleConfiguration.firstnameFieldLabel}\n </label>\n <Input\n id=\"firstnameField\"\n type=\"text\"\n name=\"given-name\"\n autocomplete={true}\n placeholder={moduleConfiguration.firstnameFieldPlaceholder}\n required={true}\n register={register}\n hasErrors={!!errors[\"given-name\"]}\n onFocus={pushGtmFirstClickEvent}\n />\n <FormError errors={errors} name=\"given-name\" type=\"required\">\n {formsConfiguration.requiredFieldError}\n </FormError>\n </div>\n\n <div className={inputsStyles.formPart + \" \" + styles.formPart}>\n <label htmlFor=\"emailField\" className={inputsStyles.label + \" \" + inputsStyles.labelRequired}>\n {moduleConfiguration.emailFieldLabel}\n </label>\n <Input\n id=\"emailField\"\n type=\"text\"\n name=\"email\"\n autocomplete={true}\n placeholder={moduleConfiguration.emailFieldPlaceholder}\n required={true}\n register={register}\n validationType={ValidationType.Email}\n hasErrors={!!errors[\"email\"]}\n onFocus={pushGtmFirstClickEvent}\n />\n <FormError errors={errors} name=\"email\" type=\"required\">\n {formsConfiguration.requiredFieldError}\n </FormError>\n <FormError errors={errors} name=\"email\" type=\"pattern\">\n {formsConfiguration.emailFieldError}\n </FormError>\n </div>\n\n <div className={inputsStyles.formPart + \" \" + styles.formPart}>\n <label htmlFor=\"addressField\" className={inputsStyles.label + \" \" + inputsStyles.labelRequired}>\n {moduleConfiguration.addressFieldLabel}\n </label>\n <Input\n id=\"addressField\"\n type=\"text\"\n name=\"address\"\n placeholder={moduleConfiguration.addressFieldPlaceholder}\n required={true}\n register={register}\n hasErrors={!!errors[\"address\"]}\n onFocus={pushGtmFirstClickEvent}\n />\n <FormError errors={errors} name=\"address\" type=\"required\">\n {formsConfiguration.requiredFieldError}\n </FormError>\n </div>\n\n <div className={inputsStyles.formPart + \" \" + styles.formPart}>\n <label htmlFor=\"zipCodeField\" className={inputsStyles.label + \" \" + inputsStyles.labelRequired}>\n {moduleConfiguration.zipCodeFieldLabel}\n </label>\n <Input\n id=\"zipCodeField\"\n type=\"text\"\n name=\"postal-code\"\n autocomplete={true}\n placeholder={moduleConfiguration.zipCodeFieldPlaceholder}\n required={true}\n register={register}\n hasErrors={!!errors[\"postal-code\"]}\n onFocus={pushGtmFirstClickEvent}\n />\n <FormError errors={errors} name=\"postal-code\" type=\"required\">\n {formsConfiguration.requiredFieldError}\n </FormError>\n </div>\n\n <div className={inputsStyles.formPart + \" \" + styles.formPart}>\n <label htmlFor=\"cityField\" className={inputsStyles.label + \" \" + inputsStyles.labelRequired}>\n {moduleConfiguration.cityFieldLabel}\n </label>\n <Input\n id=\"cityField\"\n type=\"text\"\n name=\"city\"\n placeholder={moduleConfiguration.cityFieldPlaceholder}\n required={true}\n register={register}\n hasErrors={!!errors[\"city\"]}\n onFocus={pushGtmFirstClickEvent}\n />\n <FormError errors={errors} name=\"city\" type=\"required\">\n {formsConfiguration.requiredFieldError}\n </FormError>\n </div>\n\n <div className={inputsStyles.formPart + \" \" + styles.formPart}>\n <label htmlFor=\"phoneField\" className={inputsStyles.label + \" \" + inputsStyles.labelRequired}>\n {moduleConfiguration.phoneFieldLabel}\n </label>\n <Input\n id=\"phoneField\"\n type=\"text\"\n name=\"tel\"\n autocomplete={true}\n placeholder={moduleConfiguration.phoneFieldPlaceholder}\n required={true}\n register={register}\n hasErrors={!!errors[\"tel\"]}\n onFocus={pushGtmFirstClickEvent}\n />\n <FormError errors={errors} name=\"tel\" type=\"required\">\n {formsConfiguration.requiredFieldError}\n </FormError>\n </div>\n\n <div className={inputsStyles.formPart + \" \" + styles.formPart}>\n <label htmlFor=\"dateField\" className={inputsStyles.label + \" \" + inputsStyles.labelRequired}>\n {moduleConfiguration.dateFieldLabel}\n </label>\n <DateInput\n id=\"date\"\n name=\"date\"\n required={true}\n control={control}\n maxDate={new Date()}\n onFocus={pushGtmFirstClickEvent}\n />\n <FormError errors={errors} name=\"date\" type=\"required\">\n {formsConfiguration.requiredFieldError}\n </FormError>\n </div>\n\n <div className={inputsStyles.formPart + \" \" + styles.formPart}>\n <label htmlFor=\"timeField\" className={inputsStyles.label + \" \" + inputsStyles.labelRequired}>\n {moduleConfiguration.timeFieldLabel}\n </label>\n <TimeInput id=\"time\" name=\"time\" required={true} control={control} onFocus={pushGtmFirstClickEvent} />\n <FormError errors={errors} name=\"time\" type=\"required\">\n {formsConfiguration.requiredFieldError}\n </FormError>\n </div>\n\n <div className={inputsStyles.formPart + \" \" + styles.formPart}>\n <label htmlFor=\"lineField\" className={inputsStyles.label + \" \" + inputsStyles.labelRequired}>\n {moduleConfiguration.lineFieldLabel}\n </label>\n <Autocomplete\n id=\"lineField\"\n name=\"line\"\n toLabel={line => line.name}\n control={control}\n suggestFunction={searchLine}\n onFocus={pushGtmFirstClickEvent}\n />\n <FormError errors={errors} name=\"phone\" type=\"required\">\n {formsConfiguration.requiredFieldError}\n </FormError>\n </div>\n\n <div className={inputsStyles.formPart + \" \" + styles.formPart}>\n <label htmlFor=\"directionField\" className={inputsStyles.label + \" \" + inputsStyles.labelRequired}>\n {moduleConfiguration.directionFieldLabel}\n </label>\n <Input\n id=\"directionField\"\n type=\"text\"\n name=\"direction\"\n placeholder={moduleConfiguration.directionFieldPlaceholder}\n required={true}\n register={register}\n hasErrors={!!errors[\"direction\"]}\n onFocus={pushGtmFirstClickEvent}\n />\n <FormError errors={errors} name=\"direction\" type=\"required\">\n {formsConfiguration.requiredFieldError}\n </FormError>\n </div>\n\n <div className={inputsStyles.formPart + \" \" + styles.formPart}>\n <label htmlFor=\"stopField\" className={inputsStyles.label + \" \" + inputsStyles.labelRequired}>\n {moduleConfiguration.stopFieldLabel}\n </label>\n <Input\n id=\"stopField\"\n type=\"text\"\n name=\"stop\"\n placeholder={moduleConfiguration.stopFieldPlaceholder}\n required={true}\n register={register}\n hasErrors={!!errors[\"stop\"]}\n onFocus={pushGtmFirstClickEvent}\n />\n <FormError errors={errors} name=\"stop\" type=\"required\">\n {formsConfiguration.requiredFieldError}\n </FormError>\n </div>\n\n <div className={inputsStyles.formPart + \" \" + styles.formPart}>\n <label htmlFor=\"messageField\" className={inputsStyles.label + \" \" + inputsStyles.labelRequired}>\n {moduleConfiguration.messageFieldLabel}\n </label>\n <Textarea\n id=\"messageField\"\n name=\"message\"\n placeholder={moduleConfiguration.messageFieldPlaceholder}\n required={true}\n register={register}\n hasErrors={!!errors[\"message\"]}\n onFocus={pushGtmFirstClickEvent}\n />\n <FormError errors={errors} name=\"message\" type=\"required\">\n {formsConfiguration.requiredFieldError}\n </FormError>\n </div>\n\n <div className={inputsStyles.formPart + \" \" + styles.formPart}>\n <label htmlFor=\"attachments\" className={inputsStyles.label}>\n {moduleConfiguration.attachmentsFieldLabel}\n </label>\n <FileInput\n key={\"attachments\"}\n id={\"attachments\"}\n type=\"file\"\n name={\"attachments\"}\n onChange={value => onChange(\"attachments\", value)}\n className={\"\"}\n register={register}\n onFocus={pushGtmFirstClickEvent}\n />\n <FormError errors={errors} name=\"attachments\" type=\"required\">\n {formsConfiguration.requiredFieldError}\n </FormError>\n </div>\n\n <button\n type=\"submit\"\n className={inputsStyles.primaryButton + \" \" + styles.submitButton}\n disabled={formState === FormState.Submitting || formState === FormState.Success}\n >\n {moduleConfiguration.submitButtonLabel}\n </button>\n {formState === FormState.Error && (\n <div className={inputsStyles.formError + \" \" + styles.globalError}>{moduleConfiguration.errorMessage}</div>\n )}\n {formState === FormState.Success && (\n <div className={styles.successMessage}>{moduleConfiguration.successMessage}</div>\n )}\n </form>\n )\n}\n\nexport const fragments = graphql`\n fragment LostObjectsFormConfigurationFields on DatoCmsLostObjectsFormConfiguration {\n id\n addressFieldLabel\n addressFieldPlaceholder\n attachmentsFieldLabel\n cityFieldLabel\n cityFieldPlaceholder\n civilityFieldLabel\n firstnameFieldPlaceholder\n firstnameFieldLabel\n errorMessage\n emailFieldPlaceholder\n emailFieldLabel\n directionFieldLabel\n directionFieldPlaceholder\n dateFieldLabel\n civilityOptions\n zipCodeFieldPlaceholder\n zipCodeFieldLabel\n timeFieldLabel\n successMessage\n submitButtonLabel\n stopFieldPlaceholder\n stopFieldLabel\n phoneFieldPlaceholder\n phoneFieldLabel\n nameFieldPlaceholder\n nameFieldLabel\n messageFieldPlaceholder\n messageFieldLabel\n lineFieldLabel\n fromEmail\n subsidiaryEmail\n userEmailSubject\n userEmailContent {\n value\n blocks\n links {\n id: originalId\n fragmentType\n }\n }\n subsidiaryEmailSubject\n subsidiaryEmailContent {\n value\n blocks\n links {\n id: originalId\n fragmentType\n }\n }\n }\n\n fragment LostObjectsFormLineFields on DatoCmsLine {\n id\n name\n }\n`\n\nenum FormState {\n Pending,\n Submitting,\n Success,\n Error,\n}\n\nexport default LostObjectsForm\n","// extracted by mini-css-extract-plugin\nexport var allNetworkCheckbox = \"sms-alert-form-module--allNetworkCheckbox--91ae6\";\nexport var birthdateInput = \"sms-alert-form-module--birthdateInput--e2454\";\nexport var customForm = \"sms-alert-form-module--customForm--1f512\";\nexport var formCheckbox = \"sms-alert-form-module--formCheckbox--ccfb1\";\nexport var formPart = \"sms-alert-form-module--formPart--3218c\";\nexport var globalError = \"sms-alert-form-module--globalError--37560\";\nexport var hiddenInputLine = \"sms-alert-form-module--hiddenInputLine--5d9ff\";\nexport var loaderContainer = \"sms-alert-form-module--loaderContainer--798f3\";\nexport var loaderImage = \"sms-alert-form-module--loaderImage--653f8\";\nexport var select = \"sms-alert-form-module--select--9b389\";\nexport var submitButton = \"sms-alert-form-module--submitButton--b97de\";\nexport var successMessage = \"sms-alert-form-module--successMessage--c6dfe\";\nexport var textField = \"sms-alert-form-module--textField--81ab0\";\nexport var title = \"sms-alert-form-module--title--78c91\";","import * as config from \"../../config.js\"\n\nconst removeEmpty = obj => {\n Object.keys(obj).forEach(key => (obj[key] == null || obj[key] == undefined || obj[key] === \"\") && delete obj[key])\n}\n\nexport function getSingleLineFromApi(lineReference) {\n const token = config.api_token\n const requestOptions = {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"X-API-KEY\": token,\n },\n }\n //let sortingArr = [\"A\", \"03\", \"04\", \"05\", \"06\", \"07\", \"08\", \"09\", \"10\", \"11\", \"12\", \"13\", \"14\", \"15\", \"16\", \"17\", \"18\", \"21\", \"22\", \"23\", \"24\", \"25\", \"26\", \"M1\", \"M2\", \"M3\", \"03SP\", \"05SP\", \"08SP\", \"09SP\", \"10SP\", \"12SP\", \"15SP\", \"26SP\"];\n return fetch(\n config.api_url + config.api_url_get_lines_endpoint + \"?filters[reference]=\" + lineReference,\n requestOptions\n ).then(async response => {\n const data = await response.json()\n if (!response.ok) {\n const error = (data && data.message) || response.statusText\n return Promise.reject(error)\n }\n return data.data[0]\n })\n}\n\nexport function getLinesFromApi() {\n const token = config.api_token\n const requestOptions = {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"X-API-KEY\": token,\n },\n }\n return fetch(config.api_url + config.api_url_get_lines_endpoint, requestOptions).then(async response => {\n const data = await response.json()\n if (!response.ok) {\n const error = (data && data.message) || response.statusText\n return Promise.reject(error)\n }\n return data.data\n })\n}\n\nexport function registerCustomerToSmsAlertRequest(formData) {\n let bday = \"\"\n if (formData[\"bday\"]) {\n bday = formData[\"bday\"].toISOString().split(\"T\")[0]\n }\n let linesIdsArray = []\n linesIdsArray.push(formData.line0 ? formData.line0.id : null)\n linesIdsArray.push(formData.line1 ? formData.line1.id : null)\n linesIdsArray.push(formData.line2 ? formData.line2.id : null)\n linesIdsArray.push(formData.line3 ? formData.line3.id : null)\n linesIdsArray.push(formData.line4 ? formData.line4.id : null)\n const definedLinesIds = linesIdsArray.filter(v => v !== null)\n const token = config.api_token\n let requestBody = {\n last_name: formData[\"family-name\"],\n first_name: formData[\"given-name\"],\n phone: formData.tel,\n enabled: true,\n email: formData.email,\n birthday: bday,\n address: formData.address,\n zipcode: formData[\"postal-code\"],\n city_name: formData.city,\n lines: definedLinesIds,\n network_subscriber: definedLinesIds.length === 0 || formData.allNetworkCheckbox,\n offers_subscriber: !!formData.otherOffersCheckboxField,\n }\n removeEmpty(requestBody)\n const requestOptions = {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"X-API-KEY\": token,\n },\n body: JSON.stringify(requestBody),\n }\n return fetch(config.api_url + config.api_url_user_registration_endpoint, requestOptions).then(async response => {\n const data = await response.json()\n if (!response.ok) {\n const error = (data && data.messages) || response.statusText\n return Promise.reject(error)\n }\n return data\n })\n}\n","import React, { useState } from \"react\"\nimport {\n SmsAlertInfoTrafficFormConfigurationFieldsFragment,\n CustomFormsConfigurationFieldsFragment,\n SmsAlertFormFieldsFragment,\n} from \"../../../graphql-types\"\nimport { graphql } from \"gatsby\"\nimport * as styles from \"./sms-alert-form.module.scss\"\nimport { useForm } from \"react-hook-form\"\nimport Input, { ValidationType } from \"../layout/form/input\"\nimport * as inputsStyles from \"../layout/inputs.module.scss\"\nimport FormError from \"../layout/form/form-error\"\nimport Autocomplete from \"../autocomplete/autocomplete\"\nimport DateInput from \"../layout/form/date-input\"\nimport Checkbox from \"../layout/form/checkbox\"\nimport { registerCustomerToSmsAlertRequest } from \"../../api/mobireport-alert-sms\"\nimport { pushGtmEvent } from \"../../gtm/interaction-event\"\n\ntype RenderProps = {\n moduleConfiguration: SmsAlertInfoTrafficFormConfigurationFieldsFragment\n formsConfiguration: CustomFormsConfigurationFieldsFragment\n title: SmsAlertFormFieldsFragment[\"title\"]\n lines: any\n singleLineData: any\n secondSingleLineData: any\n}\n\nconst SubscribeSmsAlertInfoTrafficForm: React.FC<RenderProps> = ({\n lines,\n title,\n moduleConfiguration,\n formsConfiguration,\n singleLineData,\n secondSingleLineData,\n}) => {\n const [selectedLines, setSelectedLines] = useState([])\n let sortingArr = [\n \"A\",\n \"3\",\n \"4\",\n \"5\",\n \"6\",\n \"7\",\n \"8\",\n \"9\",\n \"10\",\n \"11\",\n \"12\",\n \"13\",\n \"14\",\n \"15\",\n \"16\",\n \"17\",\n \"18\",\n \"21\",\n \"22\",\n \"23\",\n \"24\",\n \"25\",\n \"26\",\n \"M1\",\n \"M2\",\n \"M3\",\n \"3sp\",\n \"5sp\",\n \"8sp\",\n \"9sp\",\n \"10sp\",\n \"12sp\",\n \"15sp\",\n \"26sp\",\n \"m3sp\",\n ]\n\n function sortLines() {\n lines.push(singleLineData)\n lines.push(secondSingleLineData)\n let sortedLines = lines.filter(\n e =>\n sortingArr.includes(e.reference) ||\n sortingArr.includes(e.reference?.replace(/^0+/, \"\")?.toLowerCase()) ||\n sortingArr.includes(e.reference?.toLowerCase())\n )\n let ordered = sortingArr.map(element =>\n sortedLines.find(x => x.reference?.replace(/^0+/, \"\")?.toLowerCase() == element || x.reference == element)\n )\n return ordered\n }\n\n const orderedLines = sortLines()\n\n const [lineError, setLineError] = useState(false)\n const [firstClick, setFirstClick] = useState(true)\n\n const [formState, setFormState] = useState<FormState>(FormState.Pending)\n const [allNetworkState, setNetworkSelected] = useState(false)\n const [formValues, setFormValues] = useState<Map<string, string | boolean | FileList>>(new Map())\n const {\n control,\n register,\n handleSubmit,\n formState: { errors },\n } = useForm<FormData>()\n\n let pickedLines = []\n function searchLine(query: string) {\n pickedLines.push(orderedLines.filter(result => result.reference.toLowerCase().indexOf(query.toLowerCase()) !== -1))\n setSelectedLines(pickedLines)\n setLineError(false)\n return orderedLines.filter(result => result?.reference.toLowerCase().indexOf(query.toLowerCase()) !== -1)\n }\n\n function pushGtmFirstClickEvent() {\n if (firstClick) {\n pushGtmEvent(\"Form\", \"Form\", \"Form 1st click\", title)\n setFirstClick(false)\n }\n }\n\n function onSubmit(formData) {\n if ((!selectedLines && allNetworkState === false) || (selectedLines.length === 0 && allNetworkState === false)) {\n setLineError(true)\n return\n } else {\n setLineError(false)\n }\n pushGtmEvent(\"eventga\", \"Form\", \"Form Submit\", title)\n let requestReponse = registerCustomerToSmsAlertRequest(formData)\n return Promise.all([requestReponse]).then(\n () => setFormState(FormState.Success),\n () => setFormState(FormState.Error)\n )\n }\n\n let lineSelectionFields = []\n for (var i = 0; i < 5; i++) {\n lineSelectionFields.push(\n <div className={styles.textField}>\n <Autocomplete\n id={\"lineField\"}\n name={\"line\" + i.toString()}\n toLabel={line => line.reference}\n control={control}\n suggestFunction={searchLine}\n />\n <div className={inputsStyles.formError}>{lineError ? formsConfiguration.requiredFieldError : \"\"}</div>\n </div>\n )\n }\n\n function onChange(fieldId, value) {\n const newValues = new Map(formValues)\n newValues.set(fieldId, value)\n setFormValues(newValues)\n if (fieldId == \"allNetworkCheckboxField\") {\n setNetworkSelected(value)\n if (allNetworkState == false && (!selectedLines || selectedLines.length === 0)) {\n setLineError(false)\n } else {\n setLineError(true)\n }\n }\n }\n\n return (\n <div>\n <form onSubmit={handleSubmit(onSubmit)} className={styles.customForm} noValidate={true}>\n <h2>{title}</h2>\n\n <div className={inputsStyles.formPart + \" \" + styles.formPart}>\n <label htmlFor=\"family-name\" className={inputsStyles.label + \" \" + inputsStyles.labelRequired}>\n {moduleConfiguration.nameFieldLabel}\n </label>\n <Input\n id=\"family-name\"\n type=\"text\"\n name=\"family-name\"\n autocomplete={true}\n placeholder={moduleConfiguration.nameFieldPlaceholder}\n required={true}\n register={register}\n hasErrors={!!errors[\"family-name\"]}\n className={styles.textField}\n onFocus={pushGtmFirstClickEvent}\n />\n <FormError errors={errors} name=\"family-name\" type=\"required\">\n {formsConfiguration.requiredFieldError}\n </FormError>\n </div>\n\n <div className={inputsStyles.formPart + \" \" + styles.formPart}>\n <label htmlFor=\"given-name\" className={inputsStyles.label + \" \" + inputsStyles.labelRequired}>\n {moduleConfiguration.firstnameFieldLabel}\n </label>\n <Input\n id=\"given-name\"\n type=\"text\"\n name=\"given-name\"\n autocomplete={true}\n placeholder={moduleConfiguration.firstnameFieldPlaceholder}\n required={true}\n register={register}\n hasErrors={!!errors[\"given-name\"]}\n className={styles.textField}\n onFocus={pushGtmFirstClickEvent}\n />\n <FormError errors={errors} name=\"given-name\" type=\"required\">\n {formsConfiguration.requiredFieldError}\n </FormError>\n </div>\n\n <div className={inputsStyles.formPart + \" \" + styles.formPart}>\n <label htmlFor=\"bday\" className={inputsStyles.label}>\n {moduleConfiguration.birthdateFieldLabel}\n </label>\n <DateInput\n id=\"bday\"\n name=\"bday\"\n autocomplete={true}\n required={false}\n control={control}\n maxDate={new Date()}\n className={styles.birthdateInput}\n minDate={null}\n previousMonthAlt={moduleConfiguration.calendarPreviousMonthButtonAlt}\n nextMonthAlt={moduleConfiguration.calendarNextMonthButtonAlt}\n onFocus={pushGtmFirstClickEvent}\n />\n </div>\n\n <div className={inputsStyles.formPart + \" \" + styles.formPart}>\n <label htmlFor=\"address\" className={inputsStyles.label}>\n {moduleConfiguration.addressFieldLabel}\n </label>\n <Input\n id=\"address\"\n type=\"text\"\n name=\"address\"\n //autocomplete={true}\n placeholder={moduleConfiguration.addressFieldPlaceholder}\n register={register}\n className={styles.textField}\n onFocus={pushGtmFirstClickEvent}\n />\n </div>\n\n <div className={inputsStyles.formPart + \" \" + styles.formPart}>\n <label htmlFor=\"city\" className={inputsStyles.label}>\n {moduleConfiguration.cityFieldLabel}\n </label>\n <Input\n id=\"city\"\n type=\"text\"\n name=\"city\"\n placeholder={moduleConfiguration.cityFieldPlaceholder}\n register={register}\n className={styles.textField}\n onFocus={pushGtmFirstClickEvent}\n />\n </div>\n\n <div className={inputsStyles.formPart + \" \" + styles.formPart}>\n <label htmlFor=\"postal-code\" className={inputsStyles.label}>\n {moduleConfiguration.zipCodeFieldLabel}\n </label>\n <Input\n id=\"postal-code\"\n type=\"text\"\n name=\"postal-code\"\n autocomplete={true}\n placeholder={moduleConfiguration.zipCodeFieldPlaceholder}\n register={register}\n className={styles.textField}\n onFocus={pushGtmFirstClickEvent}\n />\n </div>\n\n <div className={inputsStyles.formPart + \" \" + styles.formPart}>\n <label htmlFor=\"tel\" className={inputsStyles.label + \" \" + inputsStyles.labelRequired}>\n {moduleConfiguration.phoneFieldLabel}\n </label>\n <Input\n id=\"tel\"\n type=\"text\"\n name=\"tel\"\n autocomplete={true}\n placeholder={moduleConfiguration.phoneFieldPlaceholder}\n required={true}\n register={register}\n hasErrors={!!errors[\"tel\"]}\n className={styles.textField}\n validationType={ValidationType.PhoneNumberE164}\n onFocus={pushGtmFirstClickEvent}\n />\n <FormError errors={errors} name=\"tel\" type=\"pattern\">\n {moduleConfiguration.invalidPhoneErrorMessage}\n </FormError>\n <FormError errors={errors} name=\"tel\" type=\"required\">\n {formsConfiguration.requiredFieldError}\n </FormError>\n </div>\n\n <div className={inputsStyles.formPart + \" \" + styles.formPart}>\n <label htmlFor=\"email\" className={inputsStyles.label}>\n {moduleConfiguration.emailFieldLabel}\n </label>\n <Input\n id=\"email\"\n type=\"text\"\n name=\"email\"\n autocomplete={true}\n placeholder={moduleConfiguration.emailFieldPlaceholder}\n register={register}\n validationType={ValidationType.Email}\n hasErrors={!!errors[\"email\"]}\n className={styles.textField}\n onFocus={pushGtmFirstClickEvent}\n />\n <FormError errors={errors} name=\"email\" type=\"pattern\">\n {formsConfiguration.emailFieldError}\n </FormError>\n </div>\n\n <div className={inputsStyles.formPart + \" \" + styles.formPart}>\n <label\n htmlFor=\"lineField\"\n className={\n selectedLines.length === 0 ? inputsStyles.label + \" \" + inputsStyles.labelRequired : inputsStyles.label\n }\n >\n {moduleConfiguration.lineFieldLabel}\n </label>\n <div>{lineSelectionFields}</div>\n </div>\n\n <div className={inputsStyles.formPart + \" \" + styles.formPart + \" \" + styles.allNetworkCheckbox}>\n <Checkbox\n id={\"allNetworkCheckboxField\"}\n label={moduleConfiguration.allNetworkCheckboxFieldLabel}\n name={\"allNetworkCheckbox\"}\n /* checked={!!formValues.get(\"allNetworkCheckboxField\")}\n onChange={value => onChange(\"allNetworkCheckboxField\", value)} */\n className={inputsStyles.label}\n register={register}\n onFocus={pushGtmFirstClickEvent}\n />\n </div>\n\n <div className={inputsStyles.formPart + \" \" + styles.formPart + \" \" + styles.formCheckbox}>\n <Checkbox\n id={\"userAgreementCheckboxField\"}\n label={moduleConfiguration.userAgreementCheckboxFieldLabel}\n name={\"userAgreementCheckboxField\"}\n required={true}\n /* checked={!!formValues.get(\"userAgreementCheckboxField\")}\n onChange={value => onChange(\"userAgreementCheckboxField\", value)} */\n hasErrors={!!errors[\"userAgreementCheckboxField\"]}\n register={register}\n className={inputsStyles.label}\n onFocus={pushGtmFirstClickEvent}\n />\n <a\n href={\n moduleConfiguration.userAgreementLink[0].page\n ? moduleConfiguration.userAgreementLink[0].page.slug\n : moduleConfiguration.userAgreementLink[0].document\n ? moduleConfiguration.userAgreementLink[0].document.url\n : \"\"\n }\n >\n {moduleConfiguration.userAgreementLink[0].label}\n </a>\n\n <FormError errors={errors} name={\"userAgreementCheckboxField\"} type=\"required\">\n {formsConfiguration.requiredFieldError}\n </FormError>\n </div>\n\n <div className={inputsStyles.formPart + \" \" + styles.formPart + \" \" + styles.formCheckbox}>\n <Checkbox\n id={\"otherOffersCheckboxField\"}\n label={moduleConfiguration.otherOffersCheckboxFieldLabel}\n name={\"otherOffersCheckboxField\"}\n /* checked={!!formValues.get(\"otherOffersCheckboxField\")}\n onChange={value => onChange(\"otherOffersCheckboxField\", value)} */\n register={register}\n className={inputsStyles.label}\n onFocus={pushGtmFirstClickEvent}\n />\n </div>\n\n <button\n type=\"submit\"\n className={inputsStyles.primaryButton + \" \" + styles.submitButton}\n disabled={formState === FormState.Submitting || formState === FormState.Success}\n >\n {moduleConfiguration.submitButtonLabel}\n </button>\n {formState === FormState.Error && (\n <div className={inputsStyles.formError + \" \" + styles.globalError} aria-live=\"assertive\" role=\"alert\">\n {moduleConfiguration.errorMessage}\n </div>\n )}\n {formState === FormState.Success && (\n <div className={styles.successMessage} aria-live=\"polite\">\n {moduleConfiguration.successMessage}\n </div>\n )}\n </form>\n </div>\n )\n}\n\nexport const fragments = graphql`\n fragment SmsAlertInfoTrafficFormConfigurationFields on DatoCmsSmsAlertInfoTrafficFormConfiguration {\n id\n nameFieldPlaceholder\n nameFieldLabel\n firstnameFieldPlaceholder\n firstnameFieldLabel\n birthdateFieldLabel\n birthdateFieldPlaceholder\n addressFieldLabel\n addressFieldPlaceholder\n cityFieldLabel\n cityFieldPlaceholder\n errorMessage\n emailFieldPlaceholder\n emailFieldLabel\n zipCodeFieldPlaceholder\n zipCodeFieldLabel\n successMessage\n submitButtonLabel\n phoneFieldPlaceholder\n phoneFieldLabel\n invalidPhoneErrorMessage\n lineFieldLabel\n allNetworkCheckboxFieldLabel\n otherOffersCheckboxFieldLabel\n userAgreementCheckboxFieldLabel\n userAgreementLink {\n label\n page {\n slug\n }\n document {\n url\n }\n }\n loadingErrorMessage\n calendarPreviousMonthButtonAlt\n calendarNextMonthButtonAlt\n }\n\n fragment SmsAlertFormFields on DatoCmsSmsAlertForm {\n __typename\n id\n title\n }\n\n fragment CustomFormsConfigurationFields on DatoCmsFormsConfiguration {\n requiredFieldError\n phoneNumberFieldError\n emailFieldError\n logoSubsidiary {\n alt\n url\n }\n }\n`\n\nenum FormState {\n Pending,\n Submitting,\n Success,\n Error,\n}\n\nexport default SubscribeSmsAlertInfoTrafficForm\n","import React, { useEffect, useState } from \"react\"\nimport {\n SmsAlertInfoTrafficFormConfigurationFieldsFragment,\n CustomFormsConfigurationFieldsFragment,\n SmsAlertFormFieldsFragment,\n} from \"../../../graphql-types\"\nimport { graphql } from \"gatsby\"\nimport SubscribeSmsAlertInfoTrafficForm from \"./subscribe-sms-alert-form\"\nimport { getLinesFromApi, getSingleLineFromApi } from \"../../api/mobireport-alert-sms\"\nimport * as styles from \"./sms-alert-form.module.scss\"\nimport * as config from \"../../../config.js\"\n\ntype RenderProps = {\n moduleConfiguration: SmsAlertInfoTrafficFormConfigurationFieldsFragment\n formsConfiguration: CustomFormsConfigurationFieldsFragment\n title: SmsAlertFormFieldsFragment[\"title\"]\n}\n\nconst SmsAlertInfoTrafficForms: React.FC<RenderProps> = ({ title, moduleConfiguration, formsConfiguration }) => {\n const [linesData, setLinesData] = useState([])\n const [singleLineData, setSingleLineData] = useState([])\n const [secondSingleLineData, setSecondSingleLineData] = useState([])\n\n const [showLoader, setShowLoader] = useState(true)\n useEffect(() => {\n const singleLineResponse = getSingleLineFromApi(\"26SP\").then(items => {\n Promise.all([singleLineResponse]).then(\n () => setSingleLineData(items),\n () => setSingleLineData([])\n )\n })\n const secondSingleLineResponse = getSingleLineFromApi(\"M3SP\").then(items => {\n Promise.all([secondSingleLineResponse]).then(\n () => setSecondSingleLineData(items),\n () => setSecondSingleLineData([])\n )\n })\n const requestResponse = getLinesFromApi().then(items => {\n Promise.all([requestResponse]).then(\n () => setLinesData(items),\n () => setLinesData([])\n )\n })\n setShowLoader(false)\n }, [])\n\n function componentToDisplay() {\n if (linesData.length != 0) {\n return (\n <SubscribeSmsAlertInfoTrafficForm\n lines={linesData}\n title={title}\n moduleConfiguration={moduleConfiguration}\n formsConfiguration={formsConfiguration}\n singleLineData={singleLineData}\n secondSingleLineData={secondSingleLineData}\n />\n )\n } else if (showLoader) {\n return (\n <div className={styles.loaderContainer}>\n <img className={styles.loaderImage} src={config.loader.url} alt={config.loader.alt}></img>\n </div>\n )\n } else {\n return <p>{moduleConfiguration.loadingErrorMessage}</p>\n }\n }\n\n return <div>{componentToDisplay()}</div>\n}\n\nexport const fragments = graphql`\n fragment SmsAlertInfoTrafficFormConfigurationFields on DatoCmsSmsAlertInfoTrafficFormConfiguration {\n id\n nameFieldPlaceholder\n nameFieldLabel\n firstnameFieldPlaceholder\n firstnameFieldLabel\n birthdateFieldLabel\n birthdateFieldPlaceholder\n addressFieldLabel\n addressFieldPlaceholder\n cityFieldLabel\n cityFieldPlaceholder\n errorMessage\n emailFieldPlaceholder\n emailFieldLabel\n zipCodeFieldPlaceholder\n zipCodeFieldLabel\n successMessage\n submitButtonLabel\n phoneFieldPlaceholder\n phoneFieldLabel\n invalidPhoneErrorMessage\n lineFieldLabel\n allNetworkCheckboxFieldLabel\n otherOffersCheckboxFieldLabel\n userAgreementCheckboxFieldLabel\n userAgreementLink {\n label\n page {\n slug\n }\n document {\n url\n }\n }\n loadingErrorMessage\n calendarPreviousMonthButtonAlt\n calendarNextMonthButtonAlt\n }\n\n fragment SmsAlertFormFields on DatoCmsSmsAlertForm {\n __typename\n id\n title\n }\n\n fragment CustomFormsConfigurationFields on DatoCmsFormsConfiguration {\n requiredFieldError\n phoneNumberFieldError\n emailFieldError\n logoSubsidiary {\n alt\n url\n }\n }\n`\n\nexport default SmsAlertInfoTrafficForms\n","import React, { useState, useEffect } from \"react\"\nimport * as styles from \"./info-traffic-le-pilote.module.scss\"\nimport { graphql } from \"gatsby\"\nimport { LePiloteInfoTrafficLinesIconsFieldsFragment } from \"../../../graphql-types\"\nimport sanitizeHtml from \"sanitize-html\"\nimport { getInfoTraffic, getLines } from \"../../api/le-pilote/le-pilote-info-traffic-api\"\nimport config from \"../../../config\"\n\ntype RenderProps = {\n linesIconsData: LePiloteInfoTrafficLinesIconsFieldsFragment[]\n}\n\nconst InfoTrafficLePilote: React.FC<RenderProps> = ({ linesIconsData }) => {\n const [linesWithInfoTraffic, setLinesWithInfoTraffic] = useState([])\n\n useEffect(() => {\n getExternalData(config.locale)\n }, [])\n\n async function getExternalData(lang) {\n const lines = await getLines(lang)\n const traffic = await getInfoTraffic(lang)\n const formattedData = parseTrafficData(lines.Data, traffic.Data)\n setLinesWithInfoTraffic(formattedData)\n }\n\n function getAllAffectedLines(infoTrafficData) {\n const lines = []\n infoTrafficData.map(infoTraffic => {\n infoTraffic.DisruptedLines.map(line => {\n lines.push(line)\n })\n })\n return lines\n }\n\n function getInfoTrafficFormatted(disruptedLines, infoTrafficData, linesDetails) {\n const myLinesWithTraffic = []\n disruptedLines.map(line => {\n const infoTrafficArray = []\n infoTrafficData.map(infoTraffic => {\n infoTraffic.DisruptedLines.map(subline => {\n if (line.LineId == subline.LineId) {\n const completeLineData = linesDetails.find(x => x.Id == line.LineId)\n if (completeLineData) {\n const icone = getLineIcon(completeLineData.Code)\n completeLineData.icone = icone[0]\n infoTrafficArray.push(infoTraffic)\n myLinesWithTraffic.push({\n line: completeLineData,\n traffic: infoTrafficArray,\n })\n }\n }\n })\n })\n })\n return myLinesWithTraffic\n }\n\n function removeDuplicateLinesFromArray(infoTrafficFormatted) {\n return infoTrafficFormatted.filter(\n (ele, index) => index === infoTrafficFormatted.findIndex(elem => elem.line === ele.line)\n )\n }\n\n function removeDuplicateTrafficInfoFromArray(formattedTrafficWithUniqueLines) {\n return formattedTrafficWithUniqueLines.map(item => {\n return {\n line: item.line,\n traffic: item.traffic.filter(\n (element, index) => index === item.traffic.findIndex(elem => elem.Id === element.Id)\n ),\n }\n })\n }\n\n function parseTrafficData(linesDetails: Array<any>, infoTrafficData: Array<any>): Array<object> {\n const disruptedLines = getAllAffectedLines(infoTrafficData)\n const trafficWithLines = getInfoTrafficFormatted(disruptedLines, infoTrafficData, linesDetails)\n const formattedTrafficWithUniqueLines = removeDuplicateLinesFromArray(trafficWithLines)\n return removeDuplicateTrafficInfoFromArray(formattedTrafficWithUniqueLines)\n }\n\n function getLineIcon(lineCode) {\n const lineCodeLowercase = lineCode.toLowerCase()\n return linesIconsData.filter(x => x.basename.endsWith(`${lineCodeLowercase}`))\n }\n\n return (\n <div className={styles.container}>\n <h3 className={styles.title}>{config.locale.info_traffic_content_title}</h3>\n {linesWithInfoTraffic.map(disruption => {\n return (\n <div className={styles.line} key={disruption.line.Id}>\n <div className={styles.pictoBoxTop}>\n {disruption.line.icone ? (\n <img src={disruption.line.icone.url} alt={disruption.line.Code} />\n ) : (\n disruption.line.Code\n )}\n </div>\n <ul className={styles.lineDivider}>\n {disruption.traffic.map(traffic => {\n return (\n <li className={styles.trafficContainer} key={traffic.Id}>\n <div className={styles.descriptionContainer}>\n {traffic.Description ? (\n <div\n dangerouslySetInnerHTML={{\n __html: sanitizeHtml(traffic.Description),\n }}\n />\n ) : (\n <h4>{traffic.Name}</h4>\n )}\n </div>\n </li>\n )\n })}\n </ul>\n </div>\n )\n })}\n </div>\n )\n}\n\nexport default InfoTrafficLePilote\nexport const fragments = graphql`\n fragment LePiloteInfoTrafficLinesIconsFields on DatoCmsAsset {\n id\n url\n basename\n }\n`\n","// extracted by mini-css-extract-plugin\nexport var container = \"info-traffic-le-pilote-module--container--bd619\";\nexport var descriptionContainer = \"info-traffic-le-pilote-module--descriptionContainer--271c0\";\nexport var line = \"info-traffic-le-pilote-module--line--d25ff\";\nexport var lineDivider = \"info-traffic-le-pilote-module--lineDivider--c32c6\";\nexport var pictoBoxTop = \"info-traffic-le-pilote-module--pictoBoxTop--a966e\";\nexport var title = \"info-traffic-le-pilote-module--title--020b0\";\nexport var trafficContainer = \"info-traffic-le-pilote-module--trafficContainer--ebaf1\";","// extracted by mini-css-extract-plugin\nexport var image = \"title-page-module--image--a6cef\";\nexport var svgImage = \"title-page-module--svgImage--cb075\";\nexport var ticketBlockText = \"title-page-module--ticketBlockText--00267\";\nexport var titleBlockItem = \"title-page-module--titleBlockItem--a0019\";\nexport var titleImage = \"title-page-module--titleImage--08734\";\nexport var titleRow = \"title-page-module--titleRow--6f84e\";\nexport var titleText = \"title-page-module--titleText--fa7ef\";","import React from \"react\"\nimport * as styles from \"./title-page.module.scss\"\nimport { TitleBlockFieldsFragment } from \"../../../graphql-types\"\nimport { ReactSVG } from \"react-svg\"\n\ntype RenderProps = {\n titleData: TitleBlockFieldsFragment\n}\n\nconst TitlePage: React.FC<RenderProps> = ({ titleData }) => {\n function getTextOrImageClass(titleBlock) {\n if (!titleBlock.textOrImage) {\n if (titleBlock.linkText) {\n return styles.titleBlockItem + \" \" + styles.titleText\n }\n } else if (titleBlock.textOrImage && titleBlock.linkImage) {\n return styles.titleBlockItem + \" \" + styles.titleImage\n }\n return styles.titleBlockItem + \" \" + styles.titleText\n }\n\n function getTextOrImageLayout(titleBlock) {\n if ((!titleBlock.linkText && !titleBlock.linkImage) || (!titleBlock.textOrImage && !titleBlock.linkText)) {\n return <div className={styles.ticketBlockText}>{titleBlock.title}</div>\n }\n if (!titleBlock.textOrImage && titleBlock.linkText) {\n return <div className={styles.ticketBlockText}>{titleBlock.linkText}</div>\n }\n if (titleBlock.textOrImage && titleBlock.linkImage) {\n return (\n <div>\n {titleBlock.linkImage.format === \"svg\" ? (\n <ReactSVG\n src={titleBlock.linkImage.url}\n className={styles.svgImage}\n beforeInjection={svg => svg.setAttribute(\"aria-label\", titleBlock.linkImage.alt || \"\")}\n />\n ) : (\n <img src={titleBlock.linkImage.url} alt={titleBlock.linkImage.alt || \"\"} className={styles.image} />\n )}\n </div>\n )\n }\n }\n\n return (\n <div className={styles.titleRow}>\n {titleData.titleBlockLink.map(titleBlock => {\n return (\n <a\n href={\n !titleBlock.externalLink && !titleBlock.internalLink\n ? \"#\"\n : titleBlock.externalLink\n ? titleBlock.externalLink\n : titleBlock.internalLink && titleBlock.internalLink.__typename == \"DatoCmsPage\"\n ? \"/\" + titleBlock.internalLink.slug\n : \"/\"\n }\n className={getTextOrImageClass(titleBlock)}\n key={titleBlock.id}\n >\n {getTextOrImageLayout(titleBlock)}\n </a>\n )\n })}\n </div>\n )\n}\n\nexport default TitlePage\n","// extracted by mini-css-extract-plugin\nexport var errorMessage = \"le-pilote-next-trips-search-module--errorMessage--704b6\";\nexport var field = \"le-pilote-next-trips-search-module--field--774d8\";\nexport var form = \"le-pilote-next-trips-search-module--form--eddc3\";\nexport var formPart = \"le-pilote-next-trips-search-module--formPart--67020\";\nexport var moduleContainer = \"le-pilote-next-trips-search-module--moduleContainer--5b826\";\nexport var nextTripEta = \"le-pilote-next-trips-search-module--nextTripEta--cd4fb\";\nexport var nextTripLineIcon = \"le-pilote-next-trips-search-module--nextTripLineIcon--09b8f\";\nexport var nextTripLineIconText = \"le-pilote-next-trips-search-module--nextTripLineIconText--e4229\";\nexport var nextTripLineName = \"le-pilote-next-trips-search-module--nextTripLineName--24968\";\nexport var nextTripResult = \"le-pilote-next-trips-search-module--nextTripResult--e04dc\";\nexport var nextTripsResultsContainer = \"le-pilote-next-trips-search-module--nextTripsResultsContainer--a913a\";\nexport var searchButton = \"le-pilote-next-trips-search-module--searchButton--0d5d4\";\nexport var title = \"le-pilote-next-trips-search-module--title--96d3a\";\nexport var titleModule = \"le-pilote-next-trips-search-module--titleModule--5dc8a\";","import React, { useEffect, useRef, useState } from \"react\"\nimport {\n LePiloteInfoTrafficLinesIconsFieldsFragment,\n LePiloteNextTripsSearchModuleFieldsFragment,\n} from \"../../../graphql-types\"\nimport * as styles from \"./le-pilote-next-trips-search.module.scss\"\nimport * as blockStyles from \"../home/custom-block/custom-block.module.scss\"\nimport * as inputsStyles from \"../layout/inputs.module.scss\"\nimport { graphql } from \"gatsby\"\nimport Autocomplete from \"../autocomplete/autocomplete\"\nimport { getNextTrips, getStopsFromApi } from \"../../api/le-pilote-api\"\n\ntype RenderProps = {\n moduleData: LePiloteNextTripsSearchModuleFieldsFragment\n linesIconsData?: LePiloteInfoTrafficLinesIconsFieldsFragment[]\n}\n\nconst LePiloteNextTripsSearch: React.FC<RenderProps> = ({ moduleData, linesIconsData }) => {\n const component = useRef<HTMLFormElement>()\n\n const [stops, setStops] = useState([])\n const [realStops, setRealStops] = useState(null)\n const [nextTrips, setNextTrips] = useState(null)\n const [noResults, setNoResults] = useState(false)\n\n useEffect(() => {\n if (window.location.search) {\n const query = extractQueryFromUrl(window.location.search)\n if (query) {\n searchNextTrips(query[0])\n }\n }\n }, [])\n\n function extractQueryFromUrl(param) {\n const fullQuery = param.split(\"=\")\n if (fullQuery[1] && fullQuery[1] != \"\") {\n const query = fullQuery[1].split(\"%23\")\n query[1] = query[1].replaceAll(\"+\", \" \")\n return query\n }\n return null\n }\n\n function formatStopsResults(stopsResults) {\n if (stopsResults) {\n const uniqueStops = stopsResults.filter(\n (ele, index) => index === stopsResults.findIndex(elem => elem.LogicalId === ele.LogicalId)\n )\n return uniqueStops\n } else {\n return []\n }\n }\n\n function getLineIcon(lineCode) {\n const lineCodeLowercase = lineCode.toLowerCase()\n return linesIconsData.filter(x => x.basename.endsWith(`${lineCodeLowercase}`))\n }\n\n function formatNextTripArrivalTimeAndLine(nextTrip, hour) {\n let arrivalTime = hour.TheoricArrivalTime\n let lineId = hour.LineId\n if (hour.PredictedArrivalTime) {\n arrivalTime = hour.PredictedArrivalTime\n }\n if (hour.aimedArrivalTime) {\n arrivalTime = hour.AimedArrivalTime\n }\n if (hour.realArrivalTime) {\n arrivalTime = hour.RealArrivalTime\n }\n let date = new Date()\n let minutes = date.getHours() * 60 + date.getMinutes()\n let time\n let timeInMinutes\n let matchingLines = nextTrip.Lines.filter(line => line.Id == lineId)\n if (arrivalTime - minutes <= 0) {\n time = moduleData.arrivingMessage\n timeInMinutes = 0\n } else {\n if (arrivalTime - minutes >= 60) {\n let roundHour = Math.floor((arrivalTime - minutes) / 60)\n let remainder = (arrivalTime - minutes) % 60\n time = roundHour + (roundHour == 1 ? \" h \" : \" hrs \") + remainder + \" min.\"\n } else {\n time = arrivalTime - minutes + \" min.\"\n }\n timeInMinutes = arrivalTime - minutes\n }\n hour.computedNextArrivals = { time, timeInMinutes }\n hour.computedLines = matchingLines\n const destination = nextTrip.VehicleJourneys.find(journey => journey.Id === hour.VehicleJourneyId)\n hour.computedDestination = destination.JourneyDestination\n if (hour.computedLines && hour.computedLines[0]) {\n hour.computedLineIcon = getLineIcon(hour.computedLines[0].Code)\n }\n }\n\n function searchNextTrips(query) {\n setNoResults(false)\n getNextTrips(query).then(nextTripsData => {\n if (!nextTripsData) {\n setNextTrips(null)\n setNoResults(true)\n return null\n }\n nextTripsData.Hours.map(hour => {\n formatNextTripArrivalTimeAndLine(nextTripsData, hour)\n })\n nextTripsData.Hours.sort(function (a, b) {\n return a.computedNextArrivals.timeInMinutes - b.computedNextArrivals.timeInMinutes\n })\n setNextTrips(nextTripsData)\n })\n return nextTrips\n }\n\n function searchAllTypeTripPoints(query) {\n if (query && query != \"\") {\n let cleanQuery = query.trim()\n let tmpStops\n ;(async () => {\n tmpStops = await getStopsFromApi(cleanQuery)\n setStops(tmpStops)\n })()\n const completeResults = formatStopsResults(stops)\n setRealStops(completeResults)\n return search(cleanQuery, completeResults, toLabel)\n }\n return []\n }\n\n const handleClickEvent = () => {\n const form = component.current\n const searchValue = form[\"search\"].value.split(\"#\")\n const tripPoint = searchAllTypeTripPoints(searchValue[1])\n if (tripPoint && tripPoint[0]) {\n searchNextTrips(tripPoint[0].LogicalId ? tripPoint[0].LogicalId : tripPoint[0].Id)\n }\n window.history.replaceState({}, document.title, window.location.href.split(\"?\")[0])\n }\n\n return (\n <div className={styles.moduleContainer}>\n <form className={blockStyles.block} method=\"get\" ref={component}>\n <div className={blockStyles.title + \" \" + styles.titleModule}>{moduleData.title}</div>\n <div className={styles.form}>\n <div className={styles.formPart}>\n <div className={styles.field}>\n <label htmlFor=\"trippoint\">{moduleData.trippointFieldLabel}</label>\n <Autocomplete\n onChange={setRealStops}\n suggestFunction={searchAllTypeTripPoints}\n toLabel={toLabel}\n id=\"trippoint\"\n placeholder={\n (realStops && realStops.Name) ||\n (nextTrips && nextTrips.Stops[0].Name) ||\n moduleData.trippointFieldPlaceholder\n }\n />\n <input\n type=\"hidden\"\n name=\"search\"\n value={\n (realStops && realStops.LogicalId + \"#\" + realStops.Name) ||\n (realStops && realStops.Id + \"#\" + realStops.Name)\n }\n />\n </div>\n </div>\n </div>\n <button\n className={styles.searchButton + \" \" + inputsStyles.primaryButton}\n type=\"button\"\n onClick={handleClickEvent}\n >\n {moduleData.searchButtonLabel}\n </button>\n </form>\n\n <div className={styles.nextTripsResultsContainer}>\n {nextTrips ? (\n nextTrips.Hours.map(x => {\n {\n return x.computedLines.map(line => {\n return (\n <div className={styles.nextTripResult} key={line.Id}>\n {x.computedLineIcon[0] ? (\n <img src={x.computedLineIcon[0].url} className={styles.nextTripLineIcon}></img>\n ) : (\n <div className={styles.nextTripLineIcon + \" \" + styles.nextTripLineIconText}>{line.Code}</div>\n )}\n <div className={styles.nextTripLineName}>\n {x.computedDestination ? x.computedDestination : line.Name}\n </div>\n <div className={styles.nextTripEta}>{x.computedNextArrivals.time}</div>\n </div>\n )\n })\n }\n })\n ) : (\n <div className={styles.errorMessage}>{noResults && !nextTrips ? <p>{moduleData.errorMessage}</p> : null}</div>\n )}\n </div>\n </div>\n )\n}\n\nfunction search<T>(query: string, elements: T[], toLabelFn: (element: T) => string): T[] {\n if (elements) {\n return elements.filter(result => toLabelFn(result).toLowerCase().indexOf(query.toLowerCase()) !== -1)\n }\n}\n\nfunction toLabel(element?: any) {\n return element ? element.Name : \"\"\n}\n\nexport const fragments = graphql`\n fragment LePiloteNextTripsSearchModuleFields on DatoCmsLePiloteNextTripsSearchModule {\n __typename\n id\n title\n trippointFieldLabel\n trippointFieldPlaceholder\n searchButtonLabel\n errorMessage\n arrivingMessage\n }\n\n fragment LePiloteInfoTrafficLinesIconsFields on DatoCmsAsset {\n id\n url\n basename\n }\n`\nexport default LePiloteNextTripsSearch\n","// extracted by mini-css-extract-plugin\nexport var accordion = \"le-pilote-itinerary-module--accordion--09d6c\";\nexport var arrivalMarker = \"le-pilote-itinerary-module--arrivalMarker--ccd69\";\nexport var button = \"le-pilote-itinerary-module--button--b4d22\";\nexport var calendarContent = \"le-pilote-itinerary-module--calendarContent--47569\";\nexport var coordinates = \"le-pilote-itinerary-module--coordinates--cc5c4\";\nexport var duration = \"le-pilote-itinerary-module--duration--dc4bd\";\nexport var errorMessage = \"le-pilote-itinerary-module--errorMessage--9def5\";\nexport var expandArrow = \"le-pilote-itinerary-module--expandArrow--9a2c7\";\nexport var formContainer = \"le-pilote-itinerary-module--formContainer--03071\";\nexport var inputIcon = \"le-pilote-itinerary-module--inputIcon--a51f2\";\nexport var inputWithIcons = \"le-pilote-itinerary-module--inputWithIcons--0e5c1\";\nexport var itineraryCard = \"le-pilote-itinerary-module--itineraryCard--a46fa\";\nexport var itineraryCardDetailsClosed = \"le-pilote-itinerary-module--itineraryCardDetailsClosed--bcf3e\";\nexport var itineraryCardDisplay = \"le-pilote-itinerary-module--itineraryCardDisplay--ba1d5\";\nexport var itineraryCardHeader = \"le-pilote-itinerary-module--itineraryCardHeader--eb0ed\";\nexport var itineraryCardWrapper = \"le-pilote-itinerary-module--itineraryCardWrapper--11123\";\nexport var itineraryContainer = \"le-pilote-itinerary-module--itineraryContainer--d74da\";\nexport var itinerarySearchForm = \"le-pilote-itinerary-module--itinerarySearchForm--fcb90\";\nexport var labelError = \"le-pilote-itinerary-module--labelError--49f95\";\nexport var lineIcon = \"le-pilote-itinerary-module--lineIcon--d9037\";\nexport var lineIconWrapper = \"le-pilote-itinerary-module--lineIconWrapper--84e82\";\nexport var lineIconWrapperDetailsClosed = \"le-pilote-itinerary-module--lineIconWrapperDetailsClosed--acdb5\";\nexport var lineText = \"le-pilote-itinerary-module--lineText--43187\";\nexport var map = \"le-pilote-itinerary-module--map--3c5db\";\nexport var mapboxglMap = \"le-pilote-itinerary-module--mapboxgl-map--059fb\";\nexport var noTripErrorMessage = \"le-pilote-itinerary-module--noTripErrorMessage--bf1be\";\nexport var nudge = \"le-pilote-itinerary-module--nudge--a72ca\";\nexport var panel = \"le-pilote-itinerary-module--panel--7dd9c\";\nexport var panelContent = \"le-pilote-itinerary-module--panelContent--14453\";\nexport var permutation = \"le-pilote-itinerary-module--permutation--dda16\";\nexport var rotatedImage = \"le-pilote-itinerary-module--rotatedImage--f992e\";\nexport var round = \"le-pilote-itinerary-module--round--c37fe\";\nexport var sectionDirection = \"le-pilote-itinerary-module--sectionDirection--3800f\";\nexport var sectionDuration = \"le-pilote-itinerary-module--sectionDuration--891ab\";\nexport var sectionName = \"le-pilote-itinerary-module--sectionName--bd7bc\";\nexport var selectedField = \"le-pilote-itinerary-module--selectedField--f934e\";\nexport var separator = \"le-pilote-itinerary-module--separator--2ccb6\";\nexport var slider = \"le-pilote-itinerary-module--slider--20f81\";\nexport var subtitle = \"le-pilote-itinerary-module--subtitle--cd515\";\nexport var switchButt = \"le-pilote-itinerary-module--switchButt--582a2\";\nexport var switchButton = \"le-pilote-itinerary-module--switchButton--1d358\";\nexport var textLine = \"le-pilote-itinerary-module--textLine--fd2a2\";\nexport var time = \"le-pilote-itinerary-module--time--caf8e\";\nexport var timeAlign = \"le-pilote-itinerary-module--timeAlign--611a8\";\nexport var timeContent = \"le-pilote-itinerary-module--timeContent--00c5d\";\nexport var timeRow = \"le-pilote-itinerary-module--timeRow--016a7\";\nexport var timeRowIcon = \"le-pilote-itinerary-module--timeRowIcon--19422\";\nexport var timeRowNoIndex = \"le-pilote-itinerary-module--timeRowNoIndex--92976\";\nexport var title = \"le-pilote-itinerary-module--title--8d301\";\nexport var toggleButtonContainer = \"le-pilote-itinerary-module--toggleButtonContainer--e7e10\";\nexport var tripSegmentDetails = \"le-pilote-itinerary-module--tripSegmentDetails--0de26\";\nexport var tripSegmentDetailsLeft = \"le-pilote-itinerary-module--tripSegmentDetailsLeft--ad27b\";\nexport var unselectedField = \"le-pilote-itinerary-module--unselectedField--4826a\";\nexport var visiblePanel = \"le-pilote-itinerary-module--visiblePanel--e31e1\";\nexport var walkIcone = \"le-pilote-itinerary-module--walkIcone--f5adf\";\nexport var walkTripSegment = \"le-pilote-itinerary-module--walkTripSegment--6972a\";","import React, { useEffect, useRef, useState } from \"react\"\nimport { ReactSVG } from \"react-svg\"\nimport { useForm } from \"react-hook-form\"\nimport {\n LePiloteItineraryModuleFieldsFragment,\n LePiloteInfoTrafficLinesIconsFieldsFragment,\n} from \"../../../graphql-types\"\nimport * as styles from \"./le-pilote-itinerary.module.scss\"\nimport { useSpeechToText } from \"../../hooks\"\nimport {\n getItineraryLePilote,\n getItineraryLePiloteFormatedResults,\n getTripPointsFromApi,\n} from \"../../api/le-pilote-api\"\nimport Autocomplete from \"../autocomplete/autocomplete\"\nimport DateInput from \"../layout/form/date-input\"\nimport TimeInput from \"../layout/form/time-input\"\n\ninterface TripStop {\n type: string\n value?: string\n latitude?: string\n longitude?: string\n}\n\ntype RenderProps = {\n data: LePiloteItineraryModuleFieldsFragment\n sendDataToParent: (data: any) => void\n linesIconsData: LePiloteInfoTrafficLinesIconsFieldsFragment[]\n}\n\nconst LePiloteItineraryForm: React.FC<RenderProps> = ({ data, sendDataToParent, linesIconsData }) => {\n const component = useRef<HTMLFormElement>()\n const { control } = useForm<FormData>()\n const [listStartStops, setListStartStops] = useState(undefined)\n const [switchedStart, setSwitchedStart] = useState(null)\n const [switchedEnd, setSwitchedEnd] = useState(null)\n const [listEndStops, setListEndStops] = useState(undefined)\n const [departureCoord, setDepartureCoord] = useState(null)\n const [arrivalCoord, setArrivalCoord] = useState(null)\n\n const [resultError, setResultError] = useState(null)\n const [checkboxValue, setCheckboxValue] = useState(false)\n\n const [invalidDeparture, setInvalidDeparture] = useState(\"\")\n const [invalidArrival, setInvalidArrival] = useState(\"\")\n\n function formatStopsResults(stops) {\n return stops || []\n }\n\n function getStartStopList(query) {\n getTripPointsFromApi(query).then(tripPoints => {\n if (tripPoints) {\n let formatedStops = formatStopsResults(tripPoints)\n setListStartStops(formatedStops)\n return formatedStops\n }\n })\n }\n\n function getStartStop(query) {\n if (departureCoord) {\n setDepartureCoord(null)\n return []\n }\n if (!query || query == undefined || query == \"\" || query == \"undefined\") {\n return []\n }\n getStartStopList(query)\n return (Array.isArray(listStartStops) && listStartStops) || []\n }\n\n function getEndStop(query) {\n if (arrivalCoord) {\n setArrivalCoord(null)\n return []\n }\n if (!query || query == undefined || query == \"\" || query == \"undefined\") {\n return []\n }\n getEndStopList(query)\n return (Array.isArray(listEndStops) && listEndStops) || []\n }\n\n function getEndStopList(query) {\n getTripPointsFromApi(query).then(tripPoints => {\n if (tripPoints) {\n let formatedStops = formatStopsResults(tripPoints)\n setListEndStops(formatedStops)\n return formatedStops\n }\n })\n }\n\n function toLabel(element?: any) {\n return element ? element.Name : \"Recherche...\"\n }\n\n function selectStartStop(startStop) {\n setDepartureCoord(null)\n setInvalidDeparture(\"\")\n setListStartStops(startStop || listStartStops)\n setTimeout(() => {\n setIsListeningDeparture(false)\n }, 1500)\n }\n\n function selectEndStop(endStop) {\n setArrivalCoord(null)\n setInvalidArrival(\"\")\n setListEndStops(endStop || listEndStops)\n setTimeout(() => {\n setIsListeningArrival(false)\n }, 1500)\n }\n\n function getTripStopsValueAndType(departure: string[], arrival: string[]) {\n let start: TripStop = { type: \"\", value: null }\n let end: TripStop = { type: \"\", value: null }\n if (departure[0] == \"coords\") {\n start.type = \"COORDINATES\"\n start.latitude = departure[2]\n start.longitude = departure[3]\n } else {\n start.type = \"4\"\n start.value = departure[0]\n }\n if (arrival[0] == \"coords\") {\n end.type = \"COORDINATES\"\n end.latitude = arrival[2]\n end.longitude = arrival[3]\n } else {\n end.type = \"4\"\n end.value = arrival[0]\n }\n return [start, end]\n }\n\n useEffect(() => {\n if (window.location.search) {\n const queryString = window.location.search\n if (queryString) {\n const urlParams = new URLSearchParams(queryString)\n const departure = urlParams.get(\"departure\").split(\"#\")\n const arrival = urlParams.get(\"arrival\").split(\"#\")\n if (departure && departure[0] && departure[1] && departure[2]) {\n setSwitchedStart({\n Id: departure[0],\n Name: departure[1],\n PointType: departure[2],\n })\n }\n if (arrival && arrival[0] && arrival[1] && arrival[2]) {\n setSwitchedEnd({\n Id: arrival[0],\n Name: arrival[1],\n PointType: arrival[2],\n })\n }\n const position = getTripStopsValueAndType(departure, arrival)\n let dateTime = new Date()\n let dd = String(dateTime.getDate()).padStart(2, \"0\")\n let mm = String(dateTime.getMonth() + 1).padStart(2, \"0\")\n let yyyy = dateTime.getFullYear()\n let hour = dateTime.getHours()\n let minutes = dateTime.getMinutes().toString()\n if (minutes.length == 1) {\n minutes = \"0\" + minutes\n }\n let time = hour + \":\" + minutes\n let today = dd + \"/\" + mm + \"/\" + yyyy\n getItinerariesData(position[0], position[1], today, time, position[0].type, position[1].type)\n window.history.replaceState({}, document.title, window.location.href.split(\"?\")[0])\n }\n }\n }, [])\n\n const submitForm = e => {\n e.preventDefault()\n setResultError(null)\n const form = component.current\n let departure: any\n let departurePointType = \"\"\n let arrival: any\n let arrivalPointType = \"\"\n let dateType = form[\"dateType\"].checked\n if (departureCoord) {\n departurePointType = \"COORDINATES\"\n departure = departureCoord\n } else {\n departure = form[\"departureLine\"].value.split(\"#\")[0]\n departurePointType = form[\"departureLine\"].value.split(\"#\")[2]\n }\n if (arrivalCoord) {\n arrivalPointType = \"COORDINATES\"\n arrival = arrivalCoord\n } else {\n arrival = form[\"arrivalLine\"].value.split(\"#\")[0]\n arrivalPointType = form[\"arrivalLine\"].value.split(\"#\")[2]\n }\n let date = form[\"date\"].value\n let time = form[\"time\"].value\n if (!departure || departure == \"\" || departure == undefined || departure == \"undefined\") {\n if (listStartStops && listStartStops.Name) {\n departure = listStartStops.Id\n departurePointType = listStartStops.PointType\n } else if (listStartStops && listStartStops[0] && listStartStops[0].Name) {\n departure = listStartStops[0].Id\n departurePointType = listStartStops[0].PointType\n } else {\n setInvalidDeparture(data.positionErrorMessage)\n return\n }\n }\n if (!arrival || arrival == \"\" || arrival == undefined || arrival == \"undefined\") {\n if (listEndStops && listEndStops.Name) {\n arrival = listEndStops.Id\n arrivalPointType = listEndStops.PointType\n } else if (listEndStops && listEndStops[0] && listEndStops[0].Name) {\n arrival = listEndStops[0].Id\n arrivalPointType = listEndStops[0].PointType\n } else {\n setInvalidArrival(data.positionErrorMessage)\n return\n }\n }\n getItinerariesData(departure, arrival, date, time, departurePointType, arrivalPointType, dateType)\n }\n\n function getItinerariesData(departureId, arrivalId, date, time, departurePointType, arrivalPointType, dateType) {\n getItineraryLePilote(departureId, arrivalId, date, time, departurePointType, arrivalPointType, dateType)\n .then(tripsData => {\n if (tripsData) {\n const tripsResults = getItineraryLePiloteFormatedResults(tripsData, linesIconsData)\n sendDataToParent(tripsResults)\n setResultError(null)\n }\n })\n .catch(responseError => {\n if (responseError[0] == 300) {\n setResultError(data.tripAvailabilityErrorMessage)\n } else if (responseError[0] == 500) {\n if (responseError[2].includes(\"ArrivalId\")) {\n setInvalidArrival(data.positionErrorMessage)\n } else if (responseError[2].includes(\"DepartureId\")) {\n setInvalidDeparture(data.positionErrorMessage)\n }\n }\n })\n }\n\n const handleGeoLoc = param => e => {\n if ((departureCoord && param === \"departure\") || (arrivalCoord && param == \"arrival\")) {\n return\n }\n\n if (param === \"departure\") {\n if (\"geolocation\" in navigator) {\n navigator.geolocation.getCurrentPosition(\n function (position) {\n let departure = document.getElementById(\"linesInputDeparture\") as HTMLInputElement\n departure.value = \"\"\n let coords = position.coords\n coords[\"Name\"] = data.geolocationLabel\n setDepartureCoord(coords)\n if (arrivalCoord) {\n setArrivalCoord(null)\n setListEndStops(null)\n setSwitchedEnd(null)\n }\n setInvalidDeparture(\"\")\n setListStartStops(coords)\n setSwitchedStart(null)\n },\n function (error) {\n if (error.code == error.PERMISSION_DENIED) console.log(\"you denied me :-(\")\n }\n )\n }\n } else if (param === \"arrival\") {\n if (\"geolocation\" in navigator) {\n navigator.geolocation.getCurrentPosition(\n function (position) {\n let arrival = document.getElementById(\"linesInputArrival\") as HTMLInputElement\n arrival.value = \"\"\n let coords = position.coords\n coords[\"Name\"] = data.geolocationLabel\n setArrivalCoord(coords)\n if (departureCoord) {\n setDepartureCoord(null)\n setListStartStops(null)\n setSwitchedStart(null)\n }\n setInvalidArrival(\"\")\n setListEndStops(coords)\n setSwitchedEnd(null)\n },\n function (error) {\n if (error.code == error.PERMISSION_DENIED) console.log(\"you denied me :-(\")\n }\n )\n }\n }\n }\n\n function handleSwitch(e) {\n if (\n listStartStops &&\n listStartStops.Name &&\n listEndStops &&\n listEndStops.Name &&\n !departureCoord &&\n !arrivalCoord\n ) {\n const tmpStart = listStartStops\n const tmpEnd = listEndStops\n setListStartStops(tmpEnd)\n setListEndStops(tmpStart)\n setSwitchedStart(tmpEnd)\n setSwitchedEnd(tmpStart)\n } else if (departureCoord) {\n let departure = departureCoord\n departureCoord.Name = data.geolocationLabel\n setArrivalCoord(departure)\n setListStartStops(listEndStops)\n setDepartureCoord(null)\n setSwitchedStart(listEndStops)\n setSwitchedEnd(departure)\n setListEndStops(departure)\n } else if (arrivalCoord) {\n let arrival = arrivalCoord\n arrival.Name = data.geolocationLabel\n setDepartureCoord(arrival)\n setListEndStops(listStartStops)\n setArrivalCoord(null)\n setSwitchedEnd(listStartStops)\n setSwitchedStart(arrival)\n setListStartStops(arrival)\n }\n }\n\n const [menuIsOpen, setIsOpen] = useState(false)\n useEffect(() => {\n if (window && window.document && document.getElementById(\"sideMenuUlTag\")) {\n let targetNode = document.getElementById(\"sideMenuUlTag\") as Node\n let config = { attributes: true, childList: true }\n let callback = function (mutationsList) {\n for (let mutation of mutationsList) {\n if (mutation.type == \"attributes\") {\n setIsOpen(!menuIsOpen)\n // console.log('The ' + mutation.attributeName + ' attribute was modified.');\n }\n }\n }\n // Create an observer instance linked to the callback function\n let observer = new MutationObserver(callback)\n // Start observing the target node for configured mutations\n observer.observe(targetNode, config)\n }\n })\n\n function focusFn() {\n return\n }\n\n const [timeValue, setTimeValue] = useState(null)\n useEffect(() => {\n let date = new Date()\n date.setHours(date.getHours() + Math.round(date.getMinutes() / 60))\n date.setMinutes(0, 0, 0)\n let time = date.getTime()\n setTimeValue(time)\n }, [timeValue])\n\n const [isListeningDeparture, setIsListeningDeparture] = useState(false)\n const [isListeningArrival, setIsListeningArrival] = useState(false)\n const [departureNote, setDepartureNote] = useState(null)\n const [arrivalNote, setArrivalNote] = useState(null)\n const [microphone, setMicrophone] = useState(null)\n\n useEffect(() => {\n let mic = useSpeechToText()\n if (mic != false) {\n setMicrophone(mic)\n }\n }, [microphone])\n\n useEffect(() => {\n handleListenDeparture()\n }, [isListeningDeparture])\n\n useEffect(() => {\n handleListenArrival()\n }, [isListeningArrival])\n\n const handleListenDeparture = () => {\n if (microphone) {\n if (isListeningDeparture && !isListeningArrival) {\n microphone.start()\n microphone.onend = () => {\n console.log(\"continue..\")\n microphone.start()\n }\n } else if (!isListeningDeparture) {\n microphone.stop()\n microphone.onend = () => {\n console.log(\"Stopped Mic on Click\")\n }\n }\n microphone.onstart = () => {\n console.log(\"Mics on\")\n }\n\n microphone.onresult = event => {\n const transcript = Array.from(event.results)\n .map(result => result[0])\n .map(result => result.transcript)\n .join(\"\")\n if ((transcript && !departureNote) || (transcript && departureNote && transcript != departureNote.Name)) {\n setDepartureNote({ Name: transcript })\n setSwitchedStart({ Name: transcript })\n document.getElementById(\"linesInputDeparture\").focus()\n document.getElementById(\"linesInputDeparture\").blur()\n document.getElementById(\"linesInputDeparture\").focus()\n }\n microphone.onerror = errorEvent => {\n console.log(errorEvent.error)\n }\n }\n }\n }\n\n const handleListenArrival = () => {\n if (microphone) {\n if (isListeningArrival && !isListeningDeparture) {\n microphone.start()\n microphone.onend = () => {\n console.log(\"continue..\")\n microphone.start()\n }\n } else if (!isListeningArrival) {\n microphone.stop()\n microphone.onend = () => {\n console.log(\"Stopped Mic on Click\")\n }\n }\n microphone.onstart = () => {\n console.log(\"Mics on\")\n }\n microphone.onresult = event => {\n const transcript = Array.from(event.results)\n .map(result => result[0])\n .map(result => result.transcript)\n .join(\"\")\n if ((transcript && !arrivalNote) || (transcript && arrivalNote && transcript != arrivalNote.Name)) {\n setArrivalNote({ Name: transcript })\n setSwitchedEnd({ Name: transcript })\n document.getElementById(\"linesInputArrival\").focus()\n document.getElementById(\"linesInputArrival\").blur()\n document.getElementById(\"linesInputArrival\").focus()\n }\n microphone.onerror = errorEvent => {\n console.log(errorEvent.error)\n }\n }\n }\n }\n\n function handleCheckbox(e) {\n setCheckboxValue(!checkboxValue)\n }\n\n return (\n <div>\n <div className={styles.itinerarySearchForm}>\n <form ref={component} method=\"get\" action={\"#\"} onSubmit={submitForm}>\n <h1 className={styles.title}>{data.title}</h1>\n <div className={styles.formContainer}>\n <div className={styles.coordinates}>\n <div className={\"\"}>\n <label htmlFor=\"departureLineInput\">{data.departureLabel}</label>\n <div className={styles.inputWithIcons}>\n <Autocomplete\n onChange={selectStartStop}\n suggestFunction={getStartStop}\n toLabel={toLabel}\n id=\"linesInputDeparture\"\n placeholder={departureCoord ? data.geolocationLabel : data.departurePlaceholder}\n isItineraryForm={true}\n value={switchedStart ? switchedStart : departureCoord ? departureCoord : \"\"}\n onFocus={() => focusFn}\n />\n <button\n className={styles.inputIcon}\n onKeyPress={handleGeoLoc(\"departure\")}\n onClick={handleGeoLoc(\"departure\")}\n type=\"button\"\n >\n <ReactSVG\n src={data.geolocationIcon.url}\n className={styles.inputWithIcons}\n beforeInjection={svg => svg.setAttribute(\"aria-label\", data.geolocationIcon.alt || \"\")}\n />\n </button>\n <button\n className={styles.inputIcon}\n id={\"activateSpeechButtonDeparture\"}\n onKeyPress={() => {\n setIsListeningDeparture(prevState => !prevState)\n }}\n onClick={() => {\n setIsListeningDeparture(prevState => !prevState)\n }}\n type=\"button\"\n >\n <ReactSVG\n src={data.microphonePictogram.url}\n className={styles.inputWithIcons}\n beforeInjection={svg => svg.setAttribute(\"aria-label\", data.micDepartureAltText || \"\")}\n />\n </button>\n </div>\n {invalidDeparture ? <div className={styles.errorMessage}>{invalidDeparture}</div> : null}\n <input\n type=\"hidden\"\n name=\"departureLine\"\n value={\n !departureCoord\n ? listStartStops && listStartStops.Id + \"#\" + listStartStops.Name + \"#\" + listStartStops.PointType\n : data.geolocationLabel\n }\n />\n </div>\n <button className={styles.switchButton} onClick={handleSwitch}>\n <ReactSVG\n src={data.swapDepartureArrivalIcon.url}\n className={styles.inputWithIcons}\n beforeInjection={svg => svg.setAttribute(\"aria-label\", data.swapDepartureArrivalIcon.alt || \"\")}\n />\n </button>\n <div className={\"\"}>\n <label htmlFor=\"arrivalLineInput\">{data.arrivalLabel}</label>\n <div className={styles.inputWithIcons}>\n <Autocomplete\n onChange={selectEndStop}\n suggestFunction={getEndStop}\n toLabel={toLabel}\n id=\"linesInputArrival\"\n placeholder={arrivalCoord ? data.geolocationLabel : data.arrivalPlaceholder}\n isItineraryForm={true}\n value={switchedEnd ? switchedEnd : arrivalCoord ? arrivalCoord : null}\n onFocus={() => focusFn}\n />\n <button\n className={styles.inputIcon}\n onKeyPress={handleGeoLoc(\"arrival\")}\n onClick={handleGeoLoc(\"arrival\")}\n type=\"button\"\n >\n <ReactSVG\n src={data.geolocationIcon.url}\n className={styles.inputWithIcons}\n beforeInjection={svg => svg.setAttribute(\"aria-label\", data.geolocationIcon.alt || \"\")}\n />\n </button>\n <button\n className={styles.inputIcon}\n id={\"activateSpeechButtonArrival\"}\n onKeyPress={() => {\n setIsListeningArrival(prevState => !prevState)\n }}\n onClick={() => {\n setIsListeningArrival(prevState => !prevState)\n }}\n type=\"button\"\n >\n <ReactSVG\n src={data.microphonePictogram.url}\n className={styles.inputWithIcons}\n beforeInjection={svg => svg.setAttribute(\"aria-label\", data.micArrivalAltText || \"\")}\n />\n </button>\n </div>\n {invalidArrival ? <div className={styles.errorMessage}>{invalidArrival}</div> : null}\n <input\n type=\"hidden\"\n name=\"arrivalLine\"\n value={\n !arrivalCoord\n ? listEndStops && listEndStops.Id + \"#\" + listEndStops.Name + \"#\" + listEndStops.PointType\n : data.geolocationLabel\n }\n />\n </div>\n </div>\n <div className={styles.time}>\n <div className={styles.timeAlign}>\n <div className={styles.toggleButtonContainer}>\n <label className={!checkboxValue ? styles.selectedField : styles.unselectedField}>\n {data.dateDepartureTypeLabel}\n </label>\n <label className={styles.switchButt}>\n <input name=\"dateType\" type=\"checkbox\" checked={checkboxValue} onChange={e => handleCheckbox(e)} />\n <span className={styles.slider + \" \" + styles.round}></span>\n </label>\n <label className={checkboxValue ? styles.selectedField : styles.unselectedField}>\n {data.dateArrivalTypeLabel}\n </label>\n </div>\n <div className={!menuIsOpen ? styles.timeRow : styles.timeRowNoIndex}>\n <div className={styles.calendarContent}>\n <ReactSVG\n src={data.calendarIcon.url}\n className={styles.timeRowIcon}\n beforeInjection={svg => svg.setAttribute(\"aria-label\", data.calendarIcon.alt || \"\")}\n />\n <DateInput\n id=\"date\"\n name=\"date\"\n required={true}\n control={control}\n valueSelected={new Date().toLocaleDateString()}\n isItineraryForm={true}\n />\n </div>\n <span className={styles.textLine}>{data.preposition}</span>\n <div className={styles.timeContent}>\n <ReactSVG\n src={data.clockIcon.url}\n className={styles.timeRowIcon}\n beforeInjection={svg => svg.setAttribute(\"aria-label\", data.clockIcon.alt || \"\")}\n />\n <TimeInput\n id=\"time\"\n name=\"time\"\n required={true}\n control={control}\n timeValue={timeValue}\n isItineraryForm={true}\n />\n </div>\n </div>\n </div>\n </div>\n <div className={styles.button}>\n <button type=\"submit\">{data.searchButtonLabel}</button>\n </div>\n </div>\n </form>\n </div>\n {resultError ? (\n <div className={styles.noTripErrorMessage}>\n <p>{data.tripAvailabilityErrorMessage}</p>\n </div>\n ) : null}\n </div>\n )\n}\n\nexport default LePiloteItineraryForm\n","import React, { useEffect, useLayoutEffect, useRef, useState } from \"react\"\nimport { ReactSVG } from \"react-svg\"\nimport {\n LePiloteInfoTrafficLinesIconsFieldsFragment,\n LePiloteItineraryModuleFieldsFragment,\n} from \"../../../graphql-types\"\nimport * as config from \"../../../config\"\nimport * as styles from \"./le-pilote-itinerary.module.scss\"\nimport * as mapboxgl from \"mapbox-gl\"\nimport { useIsMobile } from \"../../hooks\"\nimport { updateMapItinerary, updateMapItineraryWalk } from \"./draw-itinerary\"\nimport LePiloteItineraryForm from \"./le-pilote-itinerary-form\"\n// fix issue with loading mapboxgl on production, see https://github.com/mapbox/mapbox-gl-js/issues/10173\n// eslint-disable-next-line import/no-webpack-loader-syntax\nmapboxgl.workerClass = require(\"worker-loader!mapbox-gl/dist/mapbox-gl-csp-worker\").default\n\ntype RenderProps = {\n mapboxToken: string\n data: LePiloteItineraryModuleFieldsFragment\n linesIconsData: LePiloteInfoTrafficLinesIconsFieldsFragment[]\n}\n\nconst LePiloteItinerary: React.FC<RenderProps> = ({ mapboxToken, data, linesIconsData }) => {\n const [map, setMap] = useState(null)\n\n const [departureMarker, setDepartureMarker] = useState<mapboxgl.Marker>()\n const [arrivalMarker, setArrivalMarker] = useState<mapboxgl.Marker>()\n\n const [selectedTripType, setSelectedTripType] = useState(\"Faster\")\n const [tripsList, setTripsList] = useState(null)\n\n const [hideTrip, setHideTrip] = useState(\"\")\n const mapRef = useRef()\n const isMobile = useIsMobile()\n\n useLayoutEffect(() => {\n mapboxgl.accessToken = mapboxToken\n const mapInit = new mapboxgl.Map({\n container: mapRef.current,\n style: \"mapbox://styles/mapbox/streets-v11\",\n center: [5.447427, 43.529742],\n zoom: 10,\n })\n setMap(mapInit)\n }, [])\n\n useEffect(() => {\n if (!map) {\n return\n }\n }, [map])\n\n function getDataFromForm(trips) {\n setTripsList(trips)\n drawSelectedTrip(map, selectedTripType, trips)\n if (!isMobile) {\n map.flyTo({\n center: [5.447427 - 0.1, 43.529742],\n })\n } else {\n map.flyTo({\n center: [5.447427, 43.529742 - 0.08],\n })\n }\n }\n\n function drawSelectedTrip(mapToUpdate: mapboxgl.Map, selectedTripTypeValue: string, tripsListData: any[]) {\n let selectedTrip = tripsListData.find(\n element =>\n element.tripType == selectedTripTypeValue || (element.TripTitle && element.TripTitle == selectedTripTypeValue)\n )\n let walkIndex = 0\n let rideIndex = 0\n selectedTrip.sections.map((segment, index) => {\n if (\"walkSegmentCoordinates\" in segment[0]) {\n updateMapItineraryWalk(mapToUpdate, segment[0].walkSegmentCoordinates, \"walk-route\" + walkIndex)\n walkIndex++\n } else if (\"rideSegmentCoordinates\" in segment[0]) {\n updateMapItinerary(mapToUpdate, segment[0].rideSegmentCoordinates, \"route\" + rideIndex)\n rideIndex++\n }\n })\n setMap(mapToUpdate)\n const newDepartureMarker = updateMarkers(\n mapToUpdate,\n departureMarker,\n \"departure\",\n data,\n selectedTrip,\n selectedTripTypeValue\n )\n setDepartureMarker(newDepartureMarker)\n const newArrivalMarker = updateMarkers(\n mapToUpdate,\n arrivalMarker,\n \"arrival\",\n data,\n selectedTrip,\n selectedTripTypeValue\n )\n setArrivalMarker(newArrivalMarker)\n setMap(mapToUpdate)\n }\n\n function showItineraryDetails(e, tripType) {\n if (tripType != selectedTripType) {\n setSelectedTripType(tripType)\n drawSelectedTrip(map, tripType, tripsList)\n } else {\n if (hideTrip == selectedTripType) {\n setHideTrip(\"\")\n } else {\n setHideTrip(selectedTripType)\n }\n }\n }\n\n function getTripSubtitle(departureLabel, departureTime, arrivalLabel, arrivalTime) {\n return (\n departureLabel +\n \": \" +\n departureTime.split(\" \")[1].split(\":\", 2).slice(0, 2).join(\":\") +\n \" \" +\n \"> \" +\n arrivalLabel +\n \": \" +\n arrivalTime.split(\" \")[1].split(\":\", 2).slice(0, 2).join(\":\")\n )\n }\n\n function getFormatedDuration(duration) {\n return duration.replace(\"PT\", \"\").replace(\"H\", \":\").replace(\"M\", \":\").replace(\"S\", \"\").split(\":\")[0]\n }\n\n function getTripRideSectionDetails(lineIndicationLabel, lineNumber, durationIndicationLabel, duration, arrival) {\n return (\n lineIndicationLabel +\n \" \" +\n lineNumber +\n \" \" +\n durationIndicationLabel +\n \" \" +\n getFormatedDuration(duration) +\n data.minuteLabel +\n \" \" +\n data.destinationIndicationLabel +\n \" \" +\n arrival\n )\n }\n\n return (\n <div className={styles.itineraryContainer} id=\"itineraryContainer\">\n {map ? (\n <LePiloteItineraryForm\n data={data}\n sendDataToParent={getDataFromForm}\n linesIconsData={linesIconsData}\n ></LePiloteItineraryForm>\n ) : null}\n <div ref={mapRef} className={styles.map} id={\"itineraryMap\"}>\n <div className={tripsList ? styles.itineraryCard + \" \" + styles.itineraryCardDisplay : styles.itineraryCard}>\n {tripsList &&\n tripsList.map((x, index) => {\n return (\n <div className={styles.itineraryCardWrapper} id={\"itineraryCard-\" + index}>\n <div className={styles.itineraryCardHeader}>\n <h3>\n {x.tripType == \"Faster\"\n ? data.fastestItinerary\n : x.tripType == \"LessChange\"\n ? data.shortestItinerary\n : data.mostDirectItinerary}\n </h3>\n <div className={styles.subtitle}>\n {getTripSubtitle(\n data.departureLabel,\n x.fullTripData.DepartureTime,\n data.arrivalLabel,\n x.fullTripData.ArrivalTime\n )}\n </div>\n </div>\n <div className={styles.itineraryCardDetailsClosed}>\n {x.sections.map(section => {\n return section[0].rideSegmentDetails ? (\n <div className={styles.lineIconWrapper + \" \" + styles.lineIconWrapperDetailsClosed}>\n {section[0].lineIcon[0] ? (\n <img className={styles.lineIcon} src={section[0].lineIcon[0].url}></img>\n ) : (\n <div className={styles.lineText}>{section[0].rideSegmentDetails.Line.Number} </div>\n )}\n </div>\n ) : null\n })}\n <div className={styles.duration}>\n {getFormatedDuration(x.fullTripData.Duration) + data.minuteLabel}\n </div>\n </div>\n <div\n className={\n selectedTripType != x.tripType || (selectedTripType == x.tripType && hideTrip == selectedTripType)\n ? styles.panel\n : styles.visiblePanel\n }\n >\n {x.sections.map(section => {\n return (\n <div className={styles.tripSegmentDetails}>\n <div className={styles.tripSegmentDetailsLeft}>\n <div>\n {section[0].rideSegmentDetails\n ? section[0].rideSegmentDetails.Departure.Time.split(\" \")[1]\n .split(\":\", 2)\n .slice(0, 2)\n .join(\":\")\n : section[0].walkSegmentDetails.Departure.Time.split(\" \")[1]\n .split(\":\", 2)\n .slice(0, 2)\n .join(\":\")}\n </div>\n <div className={styles.lineIconWrapper}>\n {section[0].rideSegmentDetails && section[0].lineIcon[0] ? (\n <img className={styles.lineIcon} src={section[0].lineIcon[0].url}></img>\n ) : section[0].walkSegmentDetails ? (\n <img\n src={data.walkSegmentIcon.url}\n alt={data.walkSegmentIcon.alt}\n className={styles.lineIcon + \" \" + styles.walkIcone}\n ></img>\n ) : (\n <div className={styles.lineText}>{section[0].rideSegmentDetails.Line.Number} </div>\n )}\n </div>\n </div>\n <div className={styles.separator}></div>\n <div className={\"\"}>\n <div className={styles.sectionName}>\n {section[0].rideSegmentDetails\n ? section[0].rideSegmentDetails.Departure?.StopPlace?.Name ||\n section[0].rideSegmentDetails.Line.Name\n : section[0].walkSegmentDetails.Departure.Site.Name}\n </div>\n <div className={styles.sectionDirection}>\n {section[0].rideSegmentDetails\n ? data.directionLabel + \" \" + section[0].rideSegmentDetails.Direction.Name\n : data.directionLabel + \" \" + section[0].walkSegmentDetails.Arrival.Site.Name}\n </div>\n\n <div className={styles.sectionDuration}>\n {section[0].rideSegmentDetails\n ? getTripRideSectionDetails(\n data.lineIndicationLabel,\n section[0].rideSegmentDetails.Line.Number,\n data.durationIndicationLabel,\n section[0].rideSegmentDetails.Duration,\n section[0].rideSegmentDetails.Arrival.Site\n ? section[0].rideSegmentDetails.Arrival.Site.Name\n : section[0].rideSegmentDetails.Arrival.StopPlace.Name\n )\n : data.walkIndicationLabel +\n \" \" +\n getFormatedDuration(section[0].walkSegmentDetails.Duration) +\n data.minuteLabel +\n \" \" +\n data.destinationIndicationLabel +\n \" \" +\n section[0].walkSegmentDetails?.Arrival?.Site?.Name}\n </div>\n </div>\n </div>\n )\n })}\n </div>\n <div>\n <button className={styles.accordion} onClick={e => showItineraryDetails(e, x.tripType)}>\n <ReactSVG\n src={data.itineraryDetailsButtonIcon.url}\n alt={data.itineraryDetailsButtonIcon.alt}\n className={\n selectedTripType == x.tripType && hideTrip != selectedTripType\n ? styles.expandArrow + \" \" + styles.rotatedImage\n : styles.expandArrow\n }\n beforeInjection={svg => svg.setAttribute(\"aria-hidden\", \"true\")}\n />\n </button>\n </div>\n </div>\n )\n })}\n </div>\n </div>\n </div>\n )\n}\n\nfunction updateMarkers(\n map: mapboxgl.Map,\n previousMarker: mapboxgl.Marker,\n markerType: string,\n data: any,\n selectedTrip?: any,\n selectedTripType?: string\n): mapboxgl.Marker {\n const primaryColor = `rgb(${config.primary_color.red}, ${config.primary_color.green}, ${config.primary_color.blue})`\n if (previousMarker) {\n previousMarker.remove()\n }\n let departureMarker: any\n let arrivalMarker: any\n if (selectedTrip) {\n selectedTrip.sections.map(x => {\n if (x[0].rideSegmentCoordinates) {\n let ln = x[0].rideSegmentCoordinates.length\n if (!departureMarker) {\n departureMarker = x[0].rideSegmentCoordinates[0]\n }\n arrivalMarker = x[0].rideSegmentCoordinates[ln - 1]\n }\n })\n if (markerType == \"departure\") {\n const markerElement = document.createElement(\"img\")\n markerElement.src = data.mapDepartureMarker.url\n markerElement.alt = data.mapDepartureMarker.alt\n markerElement.style.width = \"28px\"\n markerElement.style.height = \"28px\"\n return new mapboxgl.Marker({\n color: primaryColor,\n element: markerElement,\n })\n .setLngLat([departureMarker[0], departureMarker[1]])\n .addTo(map)\n } else {\n const markerElement = document.createElement(\"img\")\n markerElement.src = data.mapArrivalMarker.url\n markerElement.alt = data.mapArrivalMarker.alt\n markerElement.style.width = \"28px\"\n markerElement.style.height = \"28px\"\n return new mapboxgl.Marker({\n color: primaryColor,\n element: markerElement,\n })\n .setLngLat([arrivalMarker[0], arrivalMarker[1]])\n .addTo(map)\n }\n }\n}\n\nexport default LePiloteItinerary\n","import * as mapboxgl from \"mapbox-gl\"\n\nexport function updateMapItineraryWalk(map: mapboxgl.Map, coordinates, mapId: string) {\n if (map.getSource(mapId)) {\n map.removeLayer(mapId)\n map.removeSource(mapId)\n }\n map.addSource(mapId, {\n type: \"geojson\",\n data: {\n type: \"Feature\",\n properties: {},\n geometry: {\n type: \"LineString\",\n coordinates: coordinates,\n },\n },\n })\n map.addLayer({\n id: mapId,\n type: \"line\",\n source: mapId,\n layout: {\n \"line-join\": \"round\",\n \"line-cap\": \"round\",\n },\n paint: {\n \"line-color\": \"#A9A9A9\",\n \"line-width\": 6,\n \"line-dasharray\": [0, 2],\n },\n })\n}\n\nexport function updateMapItinerary(map: mapboxgl.Map, coordinates, mapId: string) {\n if (map.getSource(mapId)) {\n map.removeLayer(mapId)\n map.removeSource(mapId)\n }\n\n coordinates.map((x, index) => {\n if (x[1] > 44) {\n console.log(x[1])\n console.log(index)\n }\n })\n map.addSource(mapId, {\n type: \"geojson\",\n data: {\n type: \"Feature\",\n properties: {},\n geometry: {\n type: \"LineString\",\n coordinates: coordinates,\n },\n },\n })\n map.addLayer({\n id: mapId,\n type: \"line\",\n source: mapId,\n layout: {\n \"line-join\": \"round\",\n \"line-cap\": \"round\",\n },\n paint: {\n \"line-color\": \"#000\",\n \"line-width\": 4,\n },\n })\n}\n","import React, { useEffect, useRef, useState } from \"react\"\n\nimport { AroundMeActigraphModuleFieldsFragment } from \"../../../graphql-types\"\ndeclare global {\n interface Window {\n KWH: {\n container?: string\n }\n }\n}\n\ntype RenderProps = {\n data: AroundMeActigraphModuleFieldsFragment\n}\n\nconst AroundMeActigraph: React.FC<RenderProps> = ({ data }) => {\n const component = useRef<HTMLDivElement>()\n function useForceUpdate() {\n const [value, setValue] = useState(0)\n return () => setValue(value + 1)\n }\n const forceUpdate = useForceUpdate()\n useEffect(() => {\n const existingScript = document.getElementById(\"actigraphScript\")\n if (!existingScript) {\n return\n }\n const insertedIframe = document.getElementById(\"widgetHoraires\")\n if (!insertedIframe || insertedIframe.innerHTML == \"\") {\n forceUpdate()\n }\n })\n\n return (\n <div id=\"\" className=\" \" ref={component}>\n <script\n type=\"text/javascript\"\n id={\"actigraph-0\"}\n dangerouslySetInnerHTML={{\n __html: \"window.KWH = {}; window.KWH.container='widgetHoraires';\",\n }}\n ></script>\n <script src={data.src} async={true} type=\"text/javascript\" id={\"actigraphScript\"}></script>\n <div id=\"widgetHoraires\"></div>\n </div>\n )\n}\n\nexport default AroundMeActigraph\n","import React, { useEffect } from \"react\"\nimport { OskarPaymentModuleFieldsFragment } from \"../../../graphql-types\"\nimport * as styles from \"./oskar-payment.module.scss\"\n\ntype RenderProps = {\n data: OskarPaymentModuleFieldsFragment\n}\n\nconst OskarPayment: React.FC<RenderProps> = ({ data }) => {\n useEffect(() => {\n if (window) {\n if (document.head.attachShadow) {\n let paymentModuleScript = document.createElement(\"script\")\n paymentModuleScript.type = \"text/javascript\"\n paymentModuleScript.async = true\n paymentModuleScript.src = \"./oskar-payment/oskar-payment.js\"\n document.getElementsByTagName(\"head\")[0].appendChild(paymentModuleScript)\n } else {\n let app = document.getElementsByTagName(\"oskar-payment\")[0]\n app.innerHTML =\n '<p id=\"error-msg\">Votre navigateur n\\'est pas compatible avec le module de paiement en ligne. Veuillez utiliser un autre navigateur comme Google Chrome ou Mozilla Firefox<p>'\n document.getElementById(\"error-msg\").style.color = \"white\"\n document.getElementById(\"error-msg\").style.backgroundColor = \"red\"\n }\n }\n })\n return (\n <div className={styles.oskarContainer}>\n <div dangerouslySetInnerHTML={{ __html: data.moduleTag }}></div>\n </div>\n )\n}\n\nexport default OskarPayment\n","// extracted by mini-css-extract-plugin\nexport var oskarContainer = \"oskar-payment-module--oskarContainer--6aedc\";","import React, { useEffect, useState } from \"react\"\nimport RichDatoCmsContent from \"../rich-datocms-content/rich-datocms-content\"\nimport * as styles from \"./info-traffic-detail.module.scss\"\nimport sanitizeHtml from \"sanitize-html\"\nimport { useQuerySubscription } from \"react-datocms\"\nimport config from \"../../../config.js\"\n\ntype RenderProps = {}\n\nconst InfoTrafficDetailModule: React.FC<RenderProps> = () => {\n const [info, setInfo] = useState(null)\n const [dataInfo, setData] = useState(null)\n const [trafficId, setTrafficId] = useState(null)\n\n useEffect(() => {\n let id\n if (!trafficId) {\n if (window.location.hash) {\n const queryString = window.location.hash\n if (queryString) {\n id = queryString.split(\"#\")[1]\n setTrafficId(id)\n }\n }\n }\n }, [trafficId])\n\n useEffect(() => {\n if (dataInfo) {\n const parsedInfo = dataInfo.infoTraffic\n setInfo(parsedInfo)\n }\n }, [dataInfo])\n\n const { data } = useQuerySubscription({\n enabled: !!trafficId,\n query: `\n query infoQuery {\n infoTraffic(locale: ${config.locale}, filter: {id: {eq: \"${trafficId}\"}}) {\n id\n title\n disruptionType\n pictogram {\n url\n alt\n format\n }\n lines {\n id\n name\n number\n pictogram {\n url\n alt\n format\n } \n }\n shortDescription\n slug\n description {\n ... on SimpleTextRecord {\n __typename\n id\n content\n }\n ... on CustomTextRecord {\n __typename\n id\n customContent {\n blocks\n links {\n __typename\n ... on PageRecord {\n id\n slug\n title\n }\n ... on HomeRecord {\n id\n title\n }\n ... on DocumentRecord {\n id\n title\n document {\n id\n url\n alt\n title\n } \n }\n }\n value\n }\n }\n ... on TextWithImageRecord {\n __typename\n id\n text\n image {\n format\n url\n alt\n }\n }\n }\n }\n }`,\n token: config.readOnlyApi,\n })\n\n if (data) {\n if (data != dataInfo) {\n setData(data)\n }\n }\n\n return (\n info && (\n <div className={styles.container}>\n <ul className={styles.linesPictoContainer}>\n {info &&\n info.lines.map(line => {\n return (\n <li key={line.id} className={styles.listNoStyle}>\n <div className={styles.linePictoBox}>\n <img className={styles.linePicto} src={line.pictogram.url} alt={line.pictogram.alt} />\n </div>\n </li>\n )\n })}\n </ul>\n <div className={styles.titleBox}>\n <div className={styles.pictoBoxTraffic}>\n <img src={info.pictogram.url} alt={info.pictogram.alt} />\n </div>\n <h3 className={styles.title}>{info.title}</h3>\n </div>\n\n <div\n className={styles.shortDescription}\n dangerouslySetInnerHTML={{\n __html: sanitizeHtml(info.shortDescription),\n }}\n />\n <RichDatoCmsContent data={info.description}></RichDatoCmsContent>\n </div>\n )\n )\n}\n\nexport default InfoTrafficDetailModule\n","// extracted by mini-css-extract-plugin\nexport var container = \"info-traffic-detail-module--container--bb7fa\";\nexport var corpus = \"info-traffic-detail-module--corpus--423e7\";\nexport var image = \"info-traffic-detail-module--image--d1156\";\nexport var infoTrafficImage = \"info-traffic-detail-module--infoTrafficImage--89e06\";\nexport var linePicto = \"info-traffic-detail-module--linePicto--e39ca\";\nexport var linePictoBox = \"info-traffic-detail-module--linePictoBox--b3eda\";\nexport var linesPictoContainer = \"info-traffic-detail-module--linesPictoContainer--da1eb\";\nexport var listNoStyle = \"info-traffic-detail-module--listNoStyle--82153\";\nexport var pictoBoxTraffic = \"info-traffic-detail-module--pictoBoxTraffic--45eec\";\nexport var shortDescription = \"info-traffic-detail-module--shortDescription--2e38f\";\nexport var svgImage = \"info-traffic-detail-module--svgImage--3e272\";\nexport var title = \"info-traffic-detail-module--title--d711d\";\nexport var titleBox = \"info-traffic-detail-module--titleBox--746c2\";","// extracted by mini-css-extract-plugin\nexport var title = \"ter-dakar-itinerary-search-module-module--title--f9e0f\";\nexport var widgetWrapper = \"ter-dakar-itinerary-search-module-module--widgetWrapper--0cba6\";","import React, { useEffect } from \"react\"\nimport { TerDakarItinerarySearchModuleFieldsFragment } from \"../../../graphql-types\"\nimport * as styles from \"./ter-dakar-itinerary-search-module.module.scss\"\n\ntype RenderProps = {\n data: TerDakarItinerarySearchModuleFieldsFragment\n}\n\nconst TerDakarItinerarySearchModule: React.FC<RenderProps> = ({ data }) => {\n useEffect(() => {\n if (typeof window === \"undefined\") {\n return\n }\n const script = document.createElement(\"script\")\n document.getElementsByTagName(\"body\")[0].appendChild(script)\n script.async = true\n script.type = \"text/javascript\"\n script.src = `https://56.preprod-sim.instant-system.com/fr/widget/place-journey-map?token=${data.token}`\n }, [])\n\n useEffect(() => {\n if (typeof window === \"undefined\") {\n return\n }\n const dakarWidget = document.getElementById(\"is-WidgetWrapper\")\n dakarWidget.parentElement.style.zIndex = \"2\"\n }, [])\n\n return (\n <div>\n <h3 className={styles.title}>{data.title}</h3>\n <div className={styles.widgetWrapper} id=\"is-WidgetWrapper\" />\n <div className={styles.widgetWrapper} id=\"is-MapWrapper\" />\n </div>\n )\n}\n\nexport default TerDakarItinerarySearchModule\n","// extracted by mini-css-extract-plugin\nexport var arrow = \"button-module--arrow--d6aa9\";\nexport var btnImage = \"button-module--btnImage--c2732\";\nexport var buttonContainer = \"button-module--buttonContainer--7d502\";\nexport var buttonContainerImg = \"button-module--buttonContainerImg--2a0cc\";\nexport var buttonContent = \"button-module--buttonContent--f87bb\";\nexport var buttonContentImg = \"button-module--buttonContentImg--41f96\";\nexport var container = \"button-module--container--72911\";\nexport var content = \"button-module--content--311b5\";\nexport var image = \"button-module--image--1df9e\";\nexport var pictogram = \"button-module--pictogram--4e594\";\nexport var textContent = \"button-module--textContent--348d6\";\nexport var title = \"button-module--title--afc25\";","import React, { useState } from \"react\"\nimport { ButtonFieldsFragment } from \"../../../graphql-types\"\nimport * as styles from \"./button.module.scss\"\nimport { graphql } from \"gatsby\"\nimport { ReactSVG } from \"react-svg\"\n\ntype RenderProps = {\n data: ButtonFieldsFragment\n}\n\nconst Button: React.FC<RenderProps> = ({ data }) => {\n const [hoverButton, setHoverButton] = useState(false)\n\n const renderButton = (\n title,\n pictogram,\n internalLink,\n externalLink,\n color,\n hoverColor,\n isButtonImg,\n imgContent,\n hover,\n setHover\n ) => {\n if (isButtonImg) {\n return (\n <button\n className={styles.buttonContainerImg}\n onMouseOver={() => setHover(true)}\n onMouseLeave={() => setHover(false)}\n >\n <a\n href={\n internalLink && internalLink[0]\n ? internalLink[0].__typename == \"DatoCmsPage\"\n ? `/${internalLink[0].slug}`\n : \"/\"\n : externalLink\n ? externalLink\n : \"#\"\n }\n className={!imgContent ? styles.buttonContent : styles.buttonContentImg}\n target={internalLink && internalLink[0] ? \"_self\" : externalLink ? \"_blank\" : \"_self\"}\n >\n {!imgContent ? (\n <></>\n ) : imgContent.format === \"svg\" ? (\n <ReactSVG\n src={imgContent.url}\n className={styles.btnImage}\n aria-hidden={true}\n beforeInjection={svg => svg.setAttribute(\"alt\", imgContent.alt || \"\")}\n />\n ) : (\n <img src={imgContent.url} alt={imgContent.alt || \"\"} className={styles.btnImage} />\n )}\n </a>\n </button>\n )\n } else {\n return (\n <button\n className={styles.buttonContainer}\n style={\n color?.hex && {\n backgroundColor: hover ? hoverColor.hex : color.hex,\n border: hover && `1px solid ${color.hex}`,\n }\n }\n onMouseOver={() => setHover(true)}\n onMouseLeave={() => setHover(false)}\n >\n <a\n href={\n internalLink && internalLink[0]\n ? internalLink[0].__typename == \"DatoCmsPage\"\n ? `/${internalLink[0].slug}`\n : \"/\"\n : externalLink\n ? externalLink\n : \"#\"\n }\n className={styles.buttonContent}\n target={internalLink && internalLink[0] ? \"_self\" : externalLink ? \"_blank\" : \"_self\"}\n >\n {pictogram && displayPictogram(pictogram, color, hoverColor, hover)}\n <div className={styles.textContent}>\n <div className={styles.title} style={{ color: hover ? color?.hex : hoverColor?.hex }}>\n {title}\n </div>\n </div>\n </a>\n </button>\n )\n }\n }\n\n const displayPictogram = (pictogram, color, color2, hover) => {\n return (\n <div className={styles.content}>\n {pictogram.format === \"svg\" ? (\n <ReactSVG\n className={styles.pictogram}\n src={pictogram.url}\n aria-hidden={true}\n beforeInjection={svg => svg.querySelector(\"path\").setAttribute(\"fill\", hover ? color.hex : color2.hex)}\n />\n ) : (\n <img src={pictogram.url} alt={pictogram.alt || \"\"} className={styles.image} aria-hidden={true} />\n )}\n </div>\n )\n }\n\n return (\n <div className={styles.container}>\n {renderButton(\n data.title,\n data.pictogram,\n data.internalPageLink,\n data.externalPageLink,\n data.color,\n data.hoverColor,\n data.isButtonImg,\n data.imgContent,\n hoverButton,\n setHoverButton\n )}\n </div>\n )\n}\n\nexport const fragments = graphql`\n fragment ButtonFields on DatoCmsButton {\n __typename\n id\n title\n isButtonImg\n imgContent {\n alt\n format\n url\n }\n pictogram {\n alt\n format\n url\n }\n color {\n hex\n }\n hoverColor {\n hex\n }\n internalPageLink {\n ... on DatoCmsHome {\n __typename\n }\n ... on DatoCmsPage {\n __typename\n slug\n }\n }\n externalPageLink\n }\n`\nexport default Button\n","const vianavigoItineraryScript = function (token, configId) {\n window.vianavigo.token = token\n window.vianavigo.itinerary(\"#mon_selecteur\", configId, \"portrait\")\n window.vianavigo.override_base_url = \"https://mb-api-iv.iledefrance-mobilites.fr/\"\n window.vianavigo.override_external_base = \"https://mb-iv.iledefrance-mobilites.fr/\"\n}\n\nexport default vianavigoItineraryScript\n","import React, { useEffect, useState } from \"react\"\nimport { VianavigoItineraryModuleFieldsFragment } from \"../../../graphql-types\"\nimport * as styles from \"./vianavigo-itinerary.module.scss\"\n\nimport vianavigoItineraryScript from \"./vianavigo-itinerary-script\"\n\ntype RenderProps = {\n data: VianavigoItineraryModuleFieldsFragment\n}\n\nconst VianavigoItinerary: React.FC<RenderProps> = ({ data }) => {\n const [scriptLoaded, setScriptLoaded] = useState(false)\n\n useEffect(() => {\n if (window && window.document) {\n if (!scriptLoaded) {\n let itineraryLinkTag = document.createElement(\"link\")\n itineraryLinkTag.href = \"https://mb-iv.iledefrance-mobilites.fr/v2.1/css/vianavigo.itinerary.css\"\n itineraryLinkTag.type = \"text/css\"\n itineraryLinkTag.rel = \"stylesheet\"\n document.getElementsByTagName(\"head\")[0].appendChild(itineraryLinkTag)\n let vendorScript = document.createElement(\"script\")\n vendorScript.type = \"text/javascript\"\n vendorScript.src = \"https://mb-iv.iledefrance-mobilites.fr/v2.1/vianavigo.vendor.js\"\n document.getElementsByTagName(\"head\")[0].appendChild(vendorScript)\n vendorScript.onload = function () {\n let itineraryScript = document.createElement(\"script\")\n itineraryScript.type = \"text/javascript\"\n itineraryScript.src = \"https://mb-iv.iledefrance-mobilites.fr/v2.1/vianavigo.itinerary.js\"\n itineraryScript.id = \"itineraryJsVianavigo\"\n document.getElementsByTagName(\"head\")[0].appendChild(itineraryScript)\n itineraryScript.onload = function () {\n setScriptLoaded(true)\n }\n }\n }\n }\n }, [])\n\n return (\n <div className={styles.scriptContainer} id=\"scriptContainer\">\n <div id=\"mon_selecteur\"></div>\n {scriptLoaded ? <script>{vianavigoItineraryScript(data.token, data.configurationId)}</script> : null}\n </div>\n )\n}\n\nexport default VianavigoItinerary\n","// extracted by mini-css-extract-plugin\nexport var mon_selecteur = \"vianavigo-itinerary-module--mon_selecteur--5de07\";\nexport var scriptContainer = \"vianavigo-itinerary-module--scriptContainer--e9aa2\";","import React, { useEffect } from \"react\"\nimport {\n AllNewsFieldsFragment,\n AllNewsModuleConfigurationFieldsFragment,\n AroundMeActigraphModuleFieldsFragment,\n ButtonFieldsFragment,\n CustomFormModuleFieldsFragment,\n CustomFormsConfigurationFieldsFragment,\n CustomTextFieldsFragment,\n EmbeddedIframeFieldsFragment,\n FooterMenuFieldsFragment,\n HeaderMenuFieldsFragment,\n HighlightFieldsFragment,\n InfoTrafficDetailModuleFieldsFragment,\n InfoTrafficFieldsFragment,\n InfoTrafficModuleFieldsFragment,\n ItineraryModuleConfigurationFieldsFragment,\n ItineraryModuleFieldsFragment,\n LePiloteInfoTrafficLinesIconsFieldsFragment,\n LePiloteInfoTrafficModuleFieldsFragment,\n LePiloteItineraryModuleFieldsFragment,\n LePiloteNextTripsSearchModuleFieldsFragment,\n LinesListFieldsFragment,\n LostObjectsFormConfigurationFieldsFragment,\n LostObjectsFormFieldsFragment,\n LostObjectsFormLineFieldsFragment,\n NewsListFieldsFragment,\n NextDeparturesModuleConfigurationFieldsFragment,\n NextDeparturesModuleFieldsFragment,\n OskarPaymentModuleFieldsFragment,\n SchedulesSearchFieldsFragment,\n SchedulesSearchModuleFieldsFragment,\n SimpleTextFieldsFragment,\n SmsAlertFormFieldsFragment,\n SmsAlertInfoTrafficFormConfigurationFieldsFragment,\n TerDakarItinerarySearchModuleFieldsFragment,\n TextWithImageFieldsFragment,\n TextWithVideoFieldsFragment,\n TicketOfficeSearchFieldsFragment,\n TicketOfficeSearchModuleConfigurationFieldsFragment,\n TicketOfficeSearchModuleFieldsFragment,\n TitleBlockFieldsFragment,\n TransportTitleListFieldsFragment,\n TransportTitleSearchFieldsFragment,\n TransportTitleSearchModuleConfigFieldsFragment,\n VianavigoItineraryModuleFieldsFragment,\n VideoOnlyFieldsFragment,\n WebsiteMapModuleFieldsFragment,\n} from \"../../../graphql-types\"\nimport sanitizeHtml from \"sanitize-html\"\nimport * as styles from \"./rich-datocms-content.module.scss\"\nimport { graphql } from \"gatsby\"\nimport SchedulesSearch from \"../schedules-search/schedules-search\"\nimport TransportTitleSearch from \"../transport-title-search/transport-title-search\"\nimport TicketOfficeSearch from \"../ticket-office-search/ticket-office-search\"\nimport ItineraryModule from \"../itinerary-module/itinerary-module\"\nimport NextDeparturesModule from \"../next-departures-module/next-departures-module\"\nimport AllNews from \"../all-news/all-news\"\nimport InfoTraffic from \"../info-traffic/info-traffic\"\nimport CustomForm from \"../custom-form/custom-form\"\nimport WebsiteMap from \"../website-map/website-map\"\nimport { render } from \"datocms-structured-text-to-html-string\"\nimport LostObjectsForm from \"../lost-objects/lost-objects-form\"\nimport SmsAlertInfoTrafficForms from \"../sms-alert/sms-alert-forms\"\nimport InfoTrafficLePilote from \"../info-traffic-le-pilote/info-traffic-le-pilote\"\nimport TitlePage from \"../title-page/title-page\"\nimport LePiloteNextTripsSearch from \"../le-pilote-next-trips-search/le-pilote-next-trips-search\"\nimport LePiloteItinerary from \"../le-pilote-itinerary/le-pilote-itinerary\"\nimport AroundMeActigraph from \"../around-me-actigraph/around-me-actigraph\"\nimport OskarPayment from \"../oskar-payment-module/oskar-payment\"\nimport InfoTrafficDetailModule from \"../info-traffic/info-traffic-detail-module\"\nimport TerDakarItinerarySearchModule from \"../ter-dakar-itinerary-search-module/ter-dakar-itinerary-search-module\"\nimport { pushGtmEvent } from \"../../gtm/interaction-event\"\nimport Button from \"../button/button\"\nimport VianavigoItinerary from \"../vianavigo-itinerary/vianavigo-itinerary\"\n\ntype RichDatoCmsContentUnion = { __typename: string } & (\n | SimpleTextFieldsFragment\n | CustomTextFieldsFragment\n | TextWithImageFieldsFragment\n | TextWithVideoFieldsFragment\n | HighlightFieldsFragment\n | VideoOnlyFieldsFragment\n | EmbeddedIframeFieldsFragment\n | SchedulesSearchFieldsFragment\n | TicketOfficeSearchFieldsFragment\n | TransportTitleSearchFieldsFragment\n | ItineraryModuleFieldsFragment\n | NextDeparturesModuleFieldsFragment\n | TransportTitleListFieldsFragment\n | NewsListFieldsFragment\n | InfoTrafficFieldsFragment\n | AllNewsModuleConfigurationFieldsFragment\n | CustomFormModuleFieldsFragment\n | WebsiteMapModuleFieldsFragment\n | (HeaderMenuFieldsFragment & FooterMenuFieldsFragment)\n | LostObjectsFormFieldsFragment\n | SmsAlertFormFieldsFragment\n | LePiloteInfoTrafficLinesIconsFieldsFragment\n | LePiloteItineraryModuleFieldsFragment\n | AroundMeActigraphModuleFieldsFragment\n | OskarPaymentModuleFieldsFragment\n | InfoTrafficDetailModuleFieldsFragment\n | TerDakarItinerarySearchModuleFieldsFragment\n | ButtonFieldsFragment\n | VianavigoItineraryModuleFieldsFragment\n)\n\ntype RenderProps = {\n data: RichDatoCmsContentUnion[]\n pageTitle?: string\n schedulesSearchData?: LinesListFieldsFragment[]\n schedulesSearchModuleConfiguration?: SchedulesSearchModuleFieldsFragment\n ticketOfficeSearchData?: TicketOfficeSearchFieldsFragment[]\n ticketOfficeSearchModuleConfiguration?: TicketOfficeSearchModuleConfigurationFieldsFragment\n mapboxToken?: string\n itineraryModuleConfiguration?: ItineraryModuleConfigurationFieldsFragment\n nextDeparturesModuleConfiguration?: NextDeparturesModuleConfigurationFieldsFragment\n transportTitleSearchData?: TransportTitleListFieldsFragment[]\n transportTitleSearchModuleConfiguration?: TransportTitleSearchModuleConfigFieldsFragment\n allNewsData?: NewsListFieldsFragment[]\n allNewsModuleConfiguration?: AllNewsModuleConfigurationFieldsFragment\n infoTrafficData?: InfoTrafficFieldsFragment[]\n customFormsConfiguration?: CustomFormsConfigurationFieldsFragment\n formCaptchaKey?: string\n menuData?: HeaderMenuFieldsFragment & FooterMenuFieldsFragment\n lostObjectsFormLines?: LostObjectsFormLineFieldsFragment[]\n lostObjectsFormConfiguration?: LostObjectsFormConfigurationFieldsFragment\n smsAlertFormConfiguration?: SmsAlertInfoTrafficFormConfigurationFieldsFragment\n lePiloteInfoTrafficLinesIconsData?: LePiloteInfoTrafficLinesIconsFieldsFragment[]\n}\n\nconst sanitizeHtmlWithImages = content =>\n sanitizeHtml(content, {\n allowedTags: sanitizeHtml.defaults.allowedTags.concat([\"img\"]).concat([\"p\"]),\n allowedAttributes: {\n ...sanitizeHtml.defaults.allowedAttributes,\n img: (sanitizeHtml.defaults.allowedAttributes.img || []).concat([\"src\", \"alt\", \"width\", \"height\", \"title\"]),\n p: (sanitizeHtml.defaults.allowedAttributes.p || []).concat([\"style\"]),\n table: (sanitizeHtml.defaults.allowedAttributes.table || []).concat([\"style\", \"border\"]),\n tbody: (sanitizeHtml.defaults.allowedAttributes.tbody || []).concat([\"style\", \"width\", \"height\"]),\n tr: (sanitizeHtml.defaults.allowedAttributes.tr || []).concat([\"style\", \"width\", \"height\"]),\n td: (sanitizeHtml.defaults.allowedAttributes.td || []).concat([\"style\", \"width\", \"height\"]),\n span: (sanitizeHtml.defaults.allowedAttributes.span || []).concat([\"style\", \"width\", \"height\"]),\n li: (sanitizeHtml.defaults.allowedAttributes.li || []).concat([\"style\"]),\n ul: (sanitizeHtml.defaults.allowedAttributes.ul || []).concat([\"style\"]),\n ol: (sanitizeHtml.defaults.allowedAttributes.ol || []).concat([\"style\"]),\n blockquote: (sanitizeHtml.defaults.allowedAttributes.blockquote || []).concat([\"style\"]),\n div: (sanitizeHtml.defaults.allowedAttributes.div || []).concat([\"style\"]),\n a: (sanitizeHtml.defaults.allowedAttributes.a || []).concat([\"href\"]),\n },\n allowedSchemesByTag: {\n ...sanitizeHtml.defaults.allowedSchemesByTag,\n a: [\"http\", \"https\", \"javascript\"],\n },\n exclusiveFilter: frame =>\n frame.tag === \"a\" &&\n frame.attribs.href &&\n frame.attribs.href.startsWith(\"javascript\") &&\n !frame.attribs.href.startsWith(\"javascript:Didomi\"),\n })\n\nconst customTextRenderOptions = {\n renderInlineRecord({ record, adapter: { renderNode } }) {\n switch (record.__typename) {\n case \"DatoCmsDocument\":\n return renderNode(\n \"a\",\n { href: record.document.url },\n sanitizeHtml(record.title, {\n allowedTags: [],\n allowedAttributes: {},\n })\n )\n case \"DatoCmsHome\":\n return renderNode(\n \"a\",\n { href: \"/\" },\n sanitizeHtml(record.title, {\n allowedTags: [],\n allowedAttributes: {},\n })\n )\n default:\n return renderNode(\n \"a\",\n { href: `/${record.slug}` },\n sanitizeHtml(record.title, {\n allowedTags: [],\n allowedAttributes: {},\n })\n )\n }\n },\n renderLinkToRecord({ record, children, adapter: { renderNode } }) {\n switch (record.__typename) {\n case \"DatoCmsHome\":\n return renderNode(\"a\", { href: `/` }, record.title)\n case \"DatoCmsPage\":\n return renderNode(\"a\", { href: `/${record.slug}` }, children)\n case \"DatoCmsDocument\":\n return renderNode(\"a\", { href: record.document.url }, children)\n default:\n return null\n }\n },\n}\n\nconst RichDatoCmsContent: React.FC<RenderProps> = ({\n data,\n pageTitle,\n schedulesSearchData,\n schedulesSearchModuleConfiguration,\n ticketOfficeSearchData,\n ticketOfficeSearchModuleConfiguration,\n mapboxToken,\n itineraryModuleConfiguration,\n nextDeparturesModuleConfiguration,\n transportTitleSearchData,\n transportTitleSearchModuleConfiguration,\n allNewsData,\n allNewsModuleConfiguration,\n infoTrafficData,\n customFormsConfiguration,\n formCaptchaKey,\n menuData,\n lostObjectsFormLines,\n lostObjectsFormConfiguration,\n smsAlertFormConfiguration,\n lePiloteInfoTrafficLinesIconsData,\n}) => {\n useEffect(() => {\n if (window) {\n let elements = document.getElementsByTagName(\"a\")\n let fileExtensionRegexp = new RegExp(\n /^.+\\.((pdf)|(jpg)|(jpeg)|(odt)|(xlsx)|(pptx)|(docx)|(xls)|(ppt)|(txt)|(mov)|(wmv)|(m4v)|(flv)|(mp4))$/ /* /[^\\.]+$/ */,\n \"g\"\n )\n\n for (var i = 0, len = elements.length; i < len; i++) {\n let file = fileExtensionRegexp.test(elements[i].href)\n if (file) {\n elements[i].target = \"_blank\"\n let extension = elements[i].href.split(\".\").pop()\n let titlePath = elements[i].href.split(\".\")\n let title = titlePath[titlePath.length - 2].split(\"/\").pop()\n elements[i].onclick = function () {\n pushGtmEvent(\"eventga\", \"Download\", \"Download-\" + extension.toUpperCase(), title)\n }\n }\n }\n }\n }, [])\n\n return (\n <div className={\"container \" + styles.richContent}>\n {data.map(content => {\n if (isSimpleText(content)) {\n return (\n <div\n key={content.id}\n dangerouslySetInnerHTML={{\n __html: sanitizeHtmlWithImages(content.content).replace(new RegExp(\"<p></p>\", \"g\"), \"<br>\"),\n }}\n />\n )\n } else if (isCustomText(content)) {\n return (\n <div\n key={content.id}\n dangerouslySetInnerHTML={{\n __html: sanitizeHtmlWithImages(render(content.customContent, customTextRenderOptions)),\n }}\n />\n )\n } else if (isTextWithImage(content)) {\n return (\n <div className={styles.textWithImage} key={content.id}>\n <img\n className={styles.image + (content.imagePosition === \"Right\" ? \" \" + styles.imageOnRight : \"\")}\n src={content.image.url}\n alt={content.image.alt}\n />\n <div\n className={styles.content}\n dangerouslySetInnerHTML={{\n __html: sanitizeHtmlWithImages(content.text),\n }}\n />\n </div>\n )\n } else if (isTextWithVideo(content)) {\n return (\n <div\n key={content.id}\n className={styles.textWithVideo + (content.videoPosition === \"Right\" ? \" \" + styles.videoOnRight : \"\")}\n >\n {displayVideo(content.video)}\n <div\n className={styles.content}\n dangerouslySetInnerHTML={{\n __html: sanitizeHtmlWithImages(content.content),\n }}\n />\n </div>\n )\n } else if (isHighlight(content)) {\n return (\n <a\n key={content.id}\n className={styles.highlight}\n href={content.link}\n dangerouslySetInnerHTML={{\n __html: sanitizeHtmlWithImages(content.content),\n }}\n />\n )\n } else if (isVideoOnly(content)) {\n return (\n <div className={styles.videoOnly} key={content.id}>\n {displayVideo(content.video)}\n </div>\n )\n } else if (isEmbeddedIframe(content)) {\n return (\n <iframe\n key={content.id}\n className={styles.embeddedIframe}\n title={content.iframe.name}\n src={content.iframe.url}\n style={parseStyles(content.iframe.style)}\n sandbox=\"allow-forms allow-popups allow-pointer-lock allow-same-origin allow-scripts allow-downloads\"\n />\n )\n } else if (isSchedulesSearch(content)) {\n return (\n <SchedulesSearch\n key={content.id}\n lines={schedulesSearchData}\n moduleConfiguration={schedulesSearchModuleConfiguration}\n label={content.label}\n />\n )\n } else if (isTransportTitleSearchModule(content)) {\n return (\n <TransportTitleSearch\n key={content.id}\n label={content.label}\n transportTitleSearchData={transportTitleSearchData}\n transportTitleSearchModuleConfig={transportTitleSearchModuleConfiguration}\n />\n )\n } else if (isAllNewsModule(content)) {\n return <AllNews key={content.id} title={pageTitle} news={allNewsData} config={allNewsModuleConfiguration} />\n } else if (isTicketOfficeSearch(content)) {\n return (\n <TicketOfficeSearch\n key={content.id}\n ticketOffices={ticketOfficeSearchData}\n moduleConfiguration={ticketOfficeSearchModuleConfiguration}\n mapboxToken={mapboxToken}\n label={content.label}\n />\n )\n } else if (isItineraryModule(content)) {\n return (\n <ItineraryModule\n key={content.id}\n moduleConfiguration={itineraryModuleConfiguration}\n label={content.label}\n />\n )\n } else if (isNextDeparturesModule(content)) {\n return (\n <NextDeparturesModule\n key={content.id}\n moduleConfiguration={nextDeparturesModuleConfiguration}\n label={content.label}\n />\n )\n } else if (isInfoTrafficModule(content)) {\n return <InfoTraffic infoTrafficData={infoTrafficData} key={content.id}></InfoTraffic>\n } else if (isCustomForm(content)) {\n return (\n <CustomForm\n key={content.id}\n data={content.form}\n configuration={customFormsConfiguration}\n formCaptchaKey={formCaptchaKey}\n />\n )\n } else if (isWebsiteMapModule(content)) {\n return <WebsiteMap menuData={menuData} />\n } else if (isLostObjectsFormModule(content)) {\n return (\n <LostObjectsForm\n title={content.title}\n lines={lostObjectsFormLines}\n moduleConfiguration={lostObjectsFormConfiguration}\n formsConfiguration={customFormsConfiguration}\n />\n )\n } else if (isSmsAlertInfoTrafficFormModule(content)) {\n return (\n <SmsAlertInfoTrafficForms\n title={content.title}\n moduleConfiguration={smsAlertFormConfiguration}\n formsConfiguration={customFormsConfiguration}\n />\n )\n } else if (isLePiloteInfoTrafficModule(content)) {\n return (\n <InfoTrafficLePilote\n linesIconsData={lePiloteInfoTrafficLinesIconsData}\n key={content.id}\n ></InfoTrafficLePilote>\n )\n } else if (isTitleBlock(content)) {\n return <TitlePage titleData={content} key={content.id}></TitlePage>\n } else if (isLePiloteNextTripsSearchModule(content)) {\n return (\n <LePiloteNextTripsSearch\n moduleData={content}\n key={content.id}\n linesIconsData={lePiloteInfoTrafficLinesIconsData}\n ></LePiloteNextTripsSearch>\n )\n } else if (isLePiloteItineraryModule(content)) {\n return (\n <LePiloteItinerary\n mapboxToken={mapboxToken}\n data={content}\n linesIconsData={lePiloteInfoTrafficLinesIconsData}\n ></LePiloteItinerary>\n )\n } else if (isAroundMeActigraphModule(content)) {\n return <AroundMeActigraph data={content} key={content.id}></AroundMeActigraph>\n } else if (isOskarPaymentModule(content)) {\n return <OskarPayment data={content} key={content.id}></OskarPayment>\n } else if (isInfoTrafficDetailModule(content)) {\n return <InfoTrafficDetailModule key={content.id}></InfoTrafficDetailModule>\n } else if (isTerDakarItinerarySearchModule(content)) {\n return <TerDakarItinerarySearchModule key={content.id} data={content}></TerDakarItinerarySearchModule>\n } else if (isButton(content)) {\n return <Button key={content.id} data={content}></Button>\n } else if (isVianavigoItineraryModule(content)) {\n return <VianavigoItinerary key={content.id} data={content}></VianavigoItinerary>\n }\n })}\n </div>\n )\n}\n\nexport default RichDatoCmsContent\n\nfunction displayVideo(video) {\n if (video.provider === \"youtube\") {\n return (\n <iframe\n className={styles.video}\n src={\"https://www.youtube.com/embed/\" + video.providerUid}\n frameBorder=\"0\"\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\"\n allowFullScreen\n />\n )\n } else if (video.provider === \"vimeo\") {\n return (\n <iframe\n src={\"https://player.vimeo.com/video/\" + video.providerUid}\n className={styles.video}\n frameBorder=\"0\"\n allow=\"autoplay; fullscreen; picture-in-picture\"\n allowFullScreen\n />\n )\n }\n}\n\nfunction parseStyles(stylesToParse: string): { [property: string]: string } {\n return stylesToParse.split(\";\").reduce((parsedStyles, style) => {\n const splitted = style.split(\":\")\n if (splitted[0] && splitted[1]) {\n return { ...parsedStyles, [splitted[0].trim()]: splitted[1].trim() }\n } else {\n return parsedStyles\n }\n }, {})\n}\n\nfunction isSimpleText(content: RichDatoCmsContentUnion): content is SimpleTextFieldsFragment {\n return content.__typename === \"DatoCmsSimpleText\" || content.__typename === \"SimpleTextRecord\"\n}\n\nfunction isCustomText(content: RichDatoCmsContentUnion): content is CustomTextFieldsFragment {\n return content.__typename === \"DatoCmsCustomText\" || content.__typename === \"CustomTextRecord\"\n}\n\nfunction isTextWithImage(content: RichDatoCmsContentUnion): content is TextWithImageFieldsFragment {\n return content.__typename === \"DatoCmsTextWithImage\" || content.__typename === \"TextWithImageRecord\"\n}\n\nfunction isTextWithVideo(content: RichDatoCmsContentUnion): content is TextWithVideoFieldsFragment {\n return content.__typename === \"DatoCmsTextWithVideo\" || content.__typename === \"TextWithVideoRecord\"\n}\n\nfunction isHighlight(content: RichDatoCmsContentUnion): content is HighlightFieldsFragment {\n return content.__typename === \"DatoCmsHighlight\"\n}\n\nfunction isVideoOnly(content: RichDatoCmsContentUnion): content is VideoOnlyFieldsFragment {\n return content.__typename === \"DatoCmsVideoOnly\"\n}\n\nfunction isEmbeddedIframe(content: RichDatoCmsContentUnion): content is EmbeddedIframeFieldsFragment {\n return content.__typename === \"DatoCmsEmbeddedIframe\"\n}\n\nfunction isTransportTitleSearchModule(content: RichDatoCmsContentUnion): content is TransportTitleSearchFieldsFragment {\n return content.__typename === \"DatoCmsTransportTitleSearchModule\"\n}\n\nfunction isSchedulesSearch(content: RichDatoCmsContentUnion): content is SchedulesSearchFieldsFragment {\n return content.__typename === \"DatoCmsSchedulesSearch\"\n}\n\nfunction isTicketOfficeSearch(content: RichDatoCmsContentUnion): content is TicketOfficeSearchModuleFieldsFragment {\n return content.__typename === \"DatoCmsTicketOfficeSearchModule\"\n}\n\nfunction isItineraryModule(content: RichDatoCmsContentUnion): content is ItineraryModuleFieldsFragment {\n return content.__typename === \"DatoCmsItineraryModule\"\n}\n\nfunction isNextDeparturesModule(content: RichDatoCmsContentUnion): content is NextDeparturesModuleFieldsFragment {\n return content.__typename === \"DatoCmsNextDeparturesModule\"\n}\n\nfunction isAllNewsModule(content: RichDatoCmsContentUnion): content is AllNewsFieldsFragment {\n return content.__typename === \"DatoCmsAllNews\"\n}\n\nfunction isInfoTrafficModule(content: RichDatoCmsContentUnion): content is InfoTrafficModuleFieldsFragment {\n return content.__typename === \"DatoCmsInfoTrafficModule\"\n}\n\nfunction isCustomForm(content: RichDatoCmsContentUnion): content is CustomFormModuleFieldsFragment {\n return content.__typename === \"DatoCmsCustomFormModule\"\n}\n\nfunction isWebsiteMapModule(content: RichDatoCmsContentUnion): content is WebsiteMapModuleFieldsFragment {\n return content.__typename === \"DatoCmsWebsiteMapModule\"\n}\n\nfunction isLostObjectsFormModule(content: RichDatoCmsContentUnion): content is LostObjectsFormFieldsFragment {\n return content.__typename === \"DatoCmsLostObjectsForm\"\n}\n\nfunction isSmsAlertInfoTrafficFormModule(content: RichDatoCmsContentUnion): content is SmsAlertFormFieldsFragment {\n return content.__typename === \"DatoCmsSmsAlertForm\"\n}\n\nfunction isLePiloteInfoTrafficModule(\n content: RichDatoCmsContentUnion\n): content is LePiloteInfoTrafficModuleFieldsFragment {\n return content.__typename === \"DatoCmsLePiloteInfoTrafficModule\"\n}\n\nfunction isTitleBlock(content: RichDatoCmsContentUnion): content is TitleBlockFieldsFragment {\n return content.__typename === \"DatoCmsTitleBlock\"\n}\n\nfunction isLePiloteNextTripsSearchModule(\n content: RichDatoCmsContentUnion\n): content is LePiloteNextTripsSearchModuleFieldsFragment {\n return content.__typename === \"DatoCmsLePiloteNextTripsSearchModule\"\n}\n\nfunction isLePiloteItineraryModule(content: RichDatoCmsContentUnion): content is LePiloteItineraryModuleFieldsFragment {\n return content.__typename === \"DatoCmsLePiloteItineraryModule\"\n}\n\nfunction isAroundMeActigraphModule(content: RichDatoCmsContentUnion): content is AroundMeActigraphModuleFieldsFragment {\n return content.__typename === \"DatoCmsAroundMeActigraphModule\"\n}\n\nfunction isOskarPaymentModule(content: RichDatoCmsContentUnion): content is OskarPaymentModuleFieldsFragment {\n return content.__typename === \"DatoCmsOskarPaymentModule\"\n}\n\nfunction isInfoTrafficDetailModule(content: RichDatoCmsContentUnion): content is InfoTrafficDetailModuleFieldsFragment {\n return content.__typename === \"DatoCmsInfoTrafficDetailModule\"\n}\n\nfunction isTerDakarItinerarySearchModule(\n content: RichDatoCmsContentUnion\n): content is TerDakarItinerarySearchModuleFieldsFragment {\n return content.__typename === \"DatoCmsTerDakarItinerarySearchModule\"\n}\n\nfunction isButton(content: RichDatoCmsContentUnion): content is ButtonFieldsFragment {\n return content.__typename === \"DatoCmsButton\"\n}\n\nfunction isVianavigoItineraryModule(\n content: RichDatoCmsContentUnion\n): content is VianavigoItineraryModuleFieldsFragment {\n return content.__typename === \"DatoCmsVianavigoItineraryModule\"\n}\n\nexport const fragments = graphql`\n fragment SimpleTextFields on DatoCmsSimpleText {\n __typename\n id\n content\n }\n\n fragment CustomTextFields on DatoCmsCustomText {\n __typename\n id\n customContent {\n blocks\n links {\n __typename\n ... on DatoCmsPage {\n id: originalId\n slug\n title\n }\n ... on DatoCmsHome {\n id: originalId\n title\n }\n ... on DatoCmsDocument {\n id: originalId\n title\n document {\n id\n url\n alt\n title\n }\n }\n }\n value\n }\n }\n\n fragment TextWithImageFields on DatoCmsTextWithImage {\n __typename\n id\n text\n imagePosition\n image {\n alt\n format\n url\n }\n }\n\n fragment TextWithVideoFields on DatoCmsTextWithVideo {\n __typename\n id\n content\n videoPosition\n video {\n provider\n providerUid\n }\n }\n\n fragment HighlightFields on DatoCmsHighlight {\n __typename\n id\n link\n content\n }\n\n fragment VideoOnlyFields on DatoCmsVideoOnly {\n __typename\n id\n video {\n providerUid\n provider\n width\n height\n }\n }\n\n fragment EmbeddedIframeFields on DatoCmsEmbeddedIframe {\n __typename\n id\n iframe {\n name\n url\n style\n }\n }\n\n fragment SchedulesSearchFields on DatoCmsSchedulesSearch {\n __typename\n id\n label\n }\n\n fragment TicketOfficeSearchModuleFields on DatoCmsTicketOfficeSearchModule {\n __typename\n id\n label\n }\n\n fragment ItineraryModuleFields on DatoCmsItineraryModule {\n __typename\n id\n label\n }\n\n fragment NextDeparturesModuleFields on DatoCmsNextDeparturesModule {\n __typename\n id\n label\n }\n\n fragment InfoTrafficModuleFields on DatoCmsInfoTrafficModule {\n __typename\n id\n label\n }\n\n fragment TransportTitleSearchFields on DatoCmsTransportTitleSearchModule {\n __typename\n id\n label\n }\n\n fragment AllNewsFields on DatoCmsAllNews {\n __typename\n id\n }\n\n fragment CustomFormModuleFields on DatoCmsCustomFormModule {\n __typename\n id\n form {\n ...CustomFormFields\n }\n }\n\n fragment WebsiteMapModuleFields on DatoCmsWebsiteMapModule {\n __typename\n id\n }\n\n fragment LostObjectsFormFields on DatoCmsLostObjectsForm {\n __typename\n id\n title\n }\n\n fragment SmsAlertFormFields on DatoCmsSmsAlertForm {\n __typename\n id\n title\n }\n\n fragment LePiloteInfoTrafficModuleFields on DatoCmsLePiloteInfoTrafficModule {\n __typename\n id\n label\n }\n\n fragment TitleBlockFields on DatoCmsTitleBlock {\n __typename\n id\n titleBlockLink {\n title\n id\n externalLink\n internalLink {\n ... on DatoCmsHome {\n __typename\n id\n model {\n apiKey\n }\n }\n ... on DatoCmsPage {\n __typename\n id\n slug\n }\n }\n textOrImage\n linkText\n linkImage {\n alt\n format\n url\n }\n }\n }\n\n fragment LePiloteNextTripsSearchModuleFields on DatoCmsLePiloteNextTripsSearchModule {\n __typename\n id\n title\n trippointFieldLabel\n trippointFieldPlaceholder\n searchButtonLabel\n errorMessage\n arrivingMessage\n }\n\n fragment AroundMeActigraphModuleFields on DatoCmsAroundMeActigraphModule {\n __typename\n id\n src\n }\n\n fragment LePiloteItineraryModuleFields on DatoCmsLePiloteItineraryModule {\n __typename\n id\n title\n departureLabel\n departurePlaceholder\n arrivalLabel\n arrivalPlaceholder\n micDepartureAltText\n micArrivalAltText\n microphonePictogram {\n url\n }\n geolocationIcon {\n url\n alt\n }\n geolocationLabel\n swapDepartureArrivalIcon {\n url\n alt\n }\n dateLabel\n dateDepartureTypeLabel\n dateArrivalTypeLabel\n calendarIcon {\n url\n alt\n }\n clockIcon {\n url\n alt\n }\n walkIndicationLabel\n preposition\n searchButtonLabel\n fastestItinerary\n shortestItinerary\n mostDirectItinerary\n directionLabel\n lineIndicationLabel\n durationIndicationLabel\n minuteLabel\n destinationIndicationLabel\n positionErrorMessage\n tripAvailabilityErrorMessage\n walkSegmentIcon {\n url\n alt\n }\n itineraryDetailsButtonIcon {\n url\n alt\n }\n mapDepartureMarker {\n url\n alt\n }\n mapArrivalMarker {\n url\n alt\n }\n }\n\n fragment OskarPaymentModuleFields on DatoCmsOskarPaymentModule {\n __typename\n id\n moduleTag\n }\n\n fragment InfoTrafficDetailModuleFields on DatoCmsInfoTrafficDetailModule {\n __typename\n id\n }\n\n fragment TerDakarItinerarySearchModuleFields on DatoCmsTerDakarItinerarySearchModule {\n __typename\n id\n title\n token\n }\n\n fragment ButtonFields on DatoCmsButton {\n __typename\n id\n title\n isButtonImg\n imgContent {\n alt\n format\n url\n }\n pictogram {\n alt\n format\n url\n }\n color {\n hex\n }\n hoverColor {\n hex\n }\n internalPageLink {\n ... on DatoCmsHome {\n __typename\n }\n ... on DatoCmsPage {\n __typename\n slug\n }\n }\n externalPageLink\n }\n\n fragment VianavigoItineraryModuleFields on DatoCmsVianavigoItineraryModule {\n __typename\n id\n token\n configurationId\n }\n`\n","// extracted by mini-css-extract-plugin\nexport var accessNav = \"breadcrumb-module--accessNav--41505\";\nexport var breadcrumb = \"breadcrumb-module--breadcrumb--7adcb\";\nexport var breadcrumbList = \"breadcrumb-module--breadcrumbList--521ca\";\nexport var chevron = \"breadcrumb-module--chevron--7e84b\";\nexport var chevronBox = \"breadcrumb-module--chevronBox--e7a3f\";\nexport var label = \"breadcrumb-module--label--1d4cb\";\nexport var labelNoLink = \"breadcrumb-module--labelNoLink--3fd70\";\nexport var pageChildPath = \"breadcrumb-module--pageChildPath--3c1d5\";\nexport var selectedLabel = \"breadcrumb-module--selectedLabel--990b3\";","import React, { useEffect } from \"react\"\nimport * as styles from \"./breadcrumb.module.scss\"\nimport { HeaderMenuFieldsFragment } from \"../../../../graphql-types\"\nimport sanitizeHtml from \"sanitize-html\"\nimport Chevron from \"../../layout/header/side-menu/accordion/chevron\"\n\ntype RenderProps = {\n menuData: HeaderMenuFieldsFragment\n pageTitle: string\n pageSlug?: string\n locale: string\n defaultLocale: string\n}\n\nexport let pageInfo: {\n parent: string\n selected: string\n parentSlug: string\n} = { parent: null, selected: null, parentSlug: null }\n\nconst Breadcrumb: React.FC<RenderProps> = ({ menuData, pageTitle, pageSlug, locale, defaultLocale }) => {\n const sanitizedTitle = sanitizeHtml(pageTitle)\n const homeLabel = \"Accueil\"\n\n const pages: {\n parent: string\n selected: string\n parentSlug: string\n } = { parent: null, selected: null, parentSlug: null }\n\n const searchInSubMenu = () => {\n menuData.column1.forEach(subMenu => {\n if (subMenu.page && pageSlug === subMenu.page.slug) {\n pages.parent = menuData.label\n pages.parentSlug = menuData.page ? menuData.page.slug : menuData.externalPage\n pages.selected = subMenu.label\n }\n })\n menuData.column2.forEach(subMenu => {\n if (subMenu.page && pageSlug === subMenu.page.slug) {\n pages.parent = menuData.label2\n pages.parentSlug = menuData.page2 ? menuData.page2.slug : menuData.externalPage2\n pages.selected = subMenu.label\n }\n })\n menuData.column3.forEach(subMenu => {\n if (subMenu.page && pageSlug === subMenu.page.slug) {\n pages.parent = menuData.label3\n pages.parentSlug = menuData.page3 ? menuData.page3.slug : menuData.externalPage3\n pages.selected = subMenu.label\n }\n })\n menuData.column4.forEach(subMenu => {\n if (subMenu.page && pageSlug === subMenu.page.slug) {\n pages.parent = menuData.label4\n pages.parentSlug = menuData.page4 ? menuData.page4.slug : menuData.externalPage4\n pages.selected = subMenu.label\n }\n })\n menuData.column5.forEach(subMenu => {\n if (subMenu.page && pageSlug === subMenu.page.slug) {\n pages.parent = menuData.label5\n pages.parentSlug = menuData.page5 ? menuData.page5.slug : menuData.externalPage5\n pages.selected = subMenu.label\n }\n })\n }\n\n switch (pageSlug) {\n case menuData.page && menuData.page.slug:\n pages.selected = menuData.label\n break\n case menuData.page2 && menuData.page2.slug:\n pages.selected = menuData.label2\n break\n case menuData.page3 && menuData.page3.slug:\n pages.selected = menuData.label3\n break\n case menuData.page4 && menuData.page4.slug:\n pages.selected = menuData.label4\n break\n case menuData.page5 && menuData.page5.slug:\n pages.selected = menuData.label5\n break\n }\n\n if (!pages.selected) {\n searchInSubMenu()\n }\n\n useEffect(() => {\n pageInfo = pages\n }, [])\n\n return (\n <nav role=\"navigation\" aria-label=\"Position dans le site\" className={styles.accessNav}>\n <ul className={styles.breadcrumb}>\n <li className={styles.breadcrumbList}>\n <a href={locale === defaultLocale ? \"/\" : `/${locale}`} className={styles.label}>\n {homeLabel}\n </a>\n <div className={styles.chevronBox}>\n <Chevron aria-hidden={true} className={styles.chevron} />\n </div>\n </li>\n\n {(pages.parent || pages.selected) && (\n <li className={styles.breadcrumbList}>\n {pages.parent ? (\n <a\n href={locale === defaultLocale ? `/${pages.parentSlug}` : `/${locale}/${pages.parentSlug}`}\n className={styles.label}\n >\n {pages.parent}\n </a>\n ) : (\n <span className={styles.selectedLabel}>{pages.selected}</span>\n )}\n {pages.parent && (\n <div className={styles.chevronBox}>\n <Chevron aria-hidden={true} className={styles.chevron} />\n </div>\n )}\n </li>\n )}\n\n {pages.parent && (\n <li>\n <span className={styles.selectedLabel}>{pages.selected}</span>\n </li>\n )}\n\n {!pages.parent && !pages.selected && (\n <li>\n <div className={styles.selectedLabel} dangerouslySetInnerHTML={{ __html: sanitizedTitle }} />\n </li>\n )}\n </ul>\n </nav>\n )\n}\n\nexport default Breadcrumb\n","import React from \"react\"\nimport { TypePageQuery } from \"../../../../graphql-types\"\nimport * as styles from \"./news-blocks.module.scss\"\nimport { format } from \"date-fns\"\nimport * as config from \"../../../../config\"\n\ntype RenderProps = {\n label: string\n news: TypePageQuery[\"allDatoCmsNews\"][\"nodes\"]\n locale: string\n defaultLocale: string\n}\n\nconst NewsBlocks: React.FC<RenderProps> = ({ news, label, locale, defaultLocale }) => {\n function _createNewsBlock(id: string, title: string, slug: string, publicationDate: string) {\n return (\n <li className={styles.newsBlock} key={id}>\n <a href={slug}>\n <div className={styles.newsDate}>{publicationDate}</div>\n <div className={styles.newsTitle}>{title}</div>\n </a>\n </li>\n )\n }\n\n return (\n <>\n <h2 className={styles.newsBlocksTitle}>{label}</h2>\n <ul className={styles.newsBlocks}>\n {news.map(newsItem => {\n // Error displayed by date-format => RangeError: Use `yyyy` instead of `YYYY` (in `dd/MM/YYYY`) for formatting years to the input\n const dateFormat =\n config.date_format[config.locale] === \"dd/MM/YYYY\" ? \"dd/MM/yyyy\" : config.date_format[config.locale]\n const publicationDate = format(new Date(newsItem.publicationDate), dateFormat)\n const slug = locale === defaultLocale ? `/news/${newsItem.slug}` : `/${locale}/news/${newsItem.slug}`\n\n return newsItem.title ? _createNewsBlock(newsItem.id, newsItem.title, slug, publicationDate) : null\n })}\n </ul>\n </>\n )\n}\n\nexport default NewsBlocks\n","// extracted by mini-css-extract-plugin\nexport var newsBlock = \"news-blocks-module--newsBlock--be6ae\";\nexport var newsBlocks = \"news-blocks-module--newsBlocks--b4468\";\nexport var newsBlocksTitle = \"news-blocks-module--newsBlocksTitle--73138\";\nexport var newsDate = \"news-blocks-module--newsDate--00714\";\nexport var newsTitle = \"news-blocks-module--newsTitle--eaa63\";","import React, { useEffect, useState } from \"react\"\nimport * as styles from \"./share-buttons.module.scss\"\nimport facebookLogo from \"../../../../static/images/facebook_logo.png\"\nimport twitterLogo from \"../../../../static/images/twitter_logo.png\"\n\ntype RenderProps = {\n facebookDisplay: boolean\n twitterDisplay: boolean\n}\n\nconst ShareButtons: React.FC<RenderProps> = ({ facebookDisplay, twitterDisplay }) => {\n const [facebookUrl, setFacebookUrl] = useState(\"\")\n const [twitterUrl, setTwitterUrl] = useState(\"\")\n\n useEffect(() => {\n setFacebookUrl(`https://www.facebook.com/sharer/sharer.php?u=${window.location.href}`)\n setTwitterUrl(`https://twitter.com/intent/tweet?url=${window.location.href}`)\n }, [])\n\n return facebookDisplay || twitterDisplay ? (\n <div className={styles.shareButtons}>\n {facebookDisplay && (\n <a href={facebookUrl} target=\"_blank\" className={styles.facebook}>\n <img src={facebookLogo} alt=\"Facebook logo\" />\n Partager\n </a>\n )}\n {twitterDisplay && (\n <a href={twitterUrl} target=\"_blank\" className={styles.twitter}>\n <img src={twitterLogo} alt=\"Twitter logo\" />\n Tweet\n </a>\n )}\n </div>\n ) : null\n}\n\nexport default ShareButtons\n","// extracted by mini-css-extract-plugin\nexport var facebook = \"share-buttons-module--facebook--925a4\";\nexport var shareButtons = \"share-buttons-module--shareButtons--36e22\";\nexport var twitter = \"share-buttons-module--twitter--27f2f\";","// extracted by mini-css-extract-plugin\nexport var sideBlock = \"side-blocks-module--sideBlock--5ca19\";\nexport var sideBlocks = \"side-blocks-module--sideBlocks--ac68a\";","import React from \"react\"\nimport * as styles from \"./side-block.module.scss\"\nimport { ReactSVG } from \"react-svg\"\n\ntype RenderProps = {\n image: string\n title: string\n link: string\n isInternal: boolean\n}\n\nconst SideBlock: React.FC<RenderProps> = ({ image, title, link, isInternal }) => {\n return (\n <a className={styles.secondaryBlock} href={link} target={isInternal ? \"_self\" : \"_blank\"}>\n <ReactSVG\n src={image}\n className={styles.svgImage}\n beforeInjection={svg => svg.setAttribute(\"aria-hidden\", \"true\")}\n />\n <span className={styles.link}>{title}</span>\n </a>\n )\n}\n\nexport default SideBlock\n","// extracted by mini-css-extract-plugin\nexport var focus = \"side-block-module--focus--0530b\";\nexport var hover = \"side-block-module--hover--ef96f\";\nexport var image = \"side-block-module--image--ec727\";\nexport var important = \"side-block-module--important--361ec\";\nexport var link = \"side-block-module--link--89e88\";\nexport var secondaryBlock = \"side-block-module--secondaryBlock--cc188\";\nexport var svgImage = \"side-block-module--svgImage--13e4f\";","import React, { Fragment } from \"react\"\nimport { graphql } from \"gatsby\"\nimport { SideBlockFieldsFragment } from \"../../../../graphql-types\"\nimport * as styles from \"./side-blocks.module.scss\"\nimport SideBlock from \"./side-block/side-block\"\nimport { useInternalExternalLink } from \"../../../hooks\"\n\ntype RenderProps = {\n blocks: SideBlockFieldsFragment[]\n locale: string\n defaultLocale: string\n}\n\nconst SideBlocks: React.FC<RenderProps> = ({ blocks, locale, defaultLocale }) => {\n return (\n <ul className={styles.sideBlocks} aria-label={\"sideBlocks\"}>\n {blocks.map((b, index) => {\n const sideLink = b.sideBlockInternalExternalLink[0]\n const sideLinkBis = b.sideBlockInternalExternalLinkBis[0]\n const link = useInternalExternalLink(sideLink, locale, defaultLocale)\n const linkBis = useInternalExternalLink(sideLinkBis, locale, defaultLocale)\n\n return (\n <Fragment key={index}>\n <li className={styles.sideBlock}>\n <SideBlock\n image={b.sideBlockImage.url}\n title={b.sideBlockTitle}\n link={link}\n isInternal={sideLink.isInternalPage}\n />\n </li>\n <li className={styles.sideBlock}>\n <SideBlock\n image={b.sideBlockImageBis.url}\n title={b.sideBlockTitleBis}\n link={linkBis}\n isInternal={sideLinkBis.isInternalPage}\n />\n </li>\n </Fragment>\n )\n })}\n </ul>\n )\n}\n\nexport const fragment = graphql`\n fragment SideBlockFields on DatoCmsSideBlock {\n sideBlockTitle\n sideBlockImage {\n url\n }\n sideBlockInternalExternalLink {\n ...InternalExternalLinkFields\n }\n sideBlockTitleBis\n sideBlockImageBis {\n url\n }\n sideBlockInternalExternalLinkBis {\n ...InternalExternalLinkFields\n }\n }\n`\n\nexport default SideBlocks\n","import React from \"react\"\nimport * as styles from \"./title-banner.module.scss\"\nimport sanitizeHtml from \"sanitize-html\"\n\ntype RenderProps = {\n title: string\n}\n\nconst TitleBanner: React.FC<RenderProps> = ({ title }) => {\n title = title.replace(\"<p>\", \"<span>\").replace(\"</p>\", \"</span>\")\n const sanitizedTitle = sanitizeHtml(title)\n\n return (\n <div className={styles.titleBannerBox}>\n <h1 className={styles.titleBanner} dangerouslySetInnerHTML={{ __html: sanitizedTitle }}></h1>\n </div>\n )\n}\n\nexport default TitleBanner\n","// extracted by mini-css-extract-plugin\nexport var titleBanner = \"title-banner-module--titleBanner--bc752\";\nexport var titleBannerBox = \"title-banner-module--titleBannerBox--25311\";","import { useEffect, useState } from \"react\"\nimport { pushGtmPageEvent } from \"../gtm/interaction-event\"\n\nconst pageViewEvent = (locale: string, urlOriginal: string, menuData: any, title: string) => {\n const [pageView, setPageView] = useState(false)\n\n useEffect(() => {\n if (pageView || !window) {\n return\n }\n let host = \"\"\n if (window.location) {\n host = window.location.host\n }\n let pages = menuData?.pageInfo\n const isMobile = window.matchMedia(\"only screen and (max-width: 760px)\").matches\n const searchPattern = new RegExp(\"^\" + \"qksa\")\n const isQualificationStage = searchPattern.test(host)\n let validPath = pages.parent && pages.parentSlug && pages.selected\n pushGtmPageEvent(\n \"pageview\",\n locale,\n urlOriginal,\n isMobile ? \"mobile\" : \"desktop\",\n isQualificationStage ? \"qualifcation\" : \"production\",\n title,\n window.location.hostname,\n null,\n validPath ? pages.parent : pages?.selected || window.location.pathname.split(\"/\")[1],\n validPath ? pages.parentSlug + \"/\" + pages.selected.split(\" \").join(\"-\").toLowerCase() + \"/\" : \"\"\n )\n setPageView(true)\n })\n}\n\nexport default pageViewEvent\n","// extracted by mini-css-extract-plugin\nexport var content = \"type-page-module--content--1262c\";\nexport var rightSidebar = \"type-page-module--rightSidebar--3d19b\";\nexport var typePage = \"type-page-module--typePage--118b4\";\nexport var typePageContent = \"type-page-module--typePageContent--bcab9\";","export default function Worker_fn() {\n return new Worker(__webpack_public_path__ + \"mapbox-gl-csp-worker-07965b0409f2c4264bd5.worker.js\");\n}\n","var arrayWithHoles = require(\"./arrayWithHoles.js\");\nvar iterableToArray = require(\"./iterableToArray.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableRest = require(\"./nonIterableRest.js\");\nfunction _toArray(r) {\n return arrayWithHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableRest();\n}\nmodule.exports = _toArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n try {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n } catch (error) { return false; } // workaround of old WebKit + `eval` bug\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","'use strict';\nvar IS_DENO = require('../internals/engine-is-deno');\nvar IS_NODE = require('../internals/engine-is-node');\n\nmodule.exports = !IS_DENO && !IS_NODE\n && typeof window == 'object'\n && typeof document == 'object';\n","'use strict';\n/* global Deno -- Deno case */\nmodule.exports = typeof Deno == 'object' && Deno && typeof Deno.version == 'object';\n","'use strict';\nvar global = require('../internals/global');\nvar classof = require('../internals/classof-raw');\n\nmodule.exports = classof(global.process) === 'process';\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n// eslint-disable-next-line redos/no-vulnerable -- safe\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace(replacement, symbols, function (match, ch) {\n var capture;\n switch (charAt(ch, 0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return stringSlice(str, 0, position);\n case \"'\": return stringSlice(str, tailPos);\n case '<':\n capture = namedCaptures[stringSlice(ch, 1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) === 'RegExp');\n};\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","'use strict';\nvar global = require('../internals/global');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar isCallable = require('../internals/is-callable');\nvar isForced = require('../internals/is-forced');\nvar inspectSource = require('../internals/inspect-source');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_DENO = require('../internals/engine-is-deno');\nvar IS_PURE = require('../internals/is-pure');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar SPECIES = wellKnownSymbol('species');\nvar SUBCLASSING = false;\nvar NATIVE_PROMISE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent);\n\nvar FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () {\n var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor);\n var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor);\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution\n if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['finally'])) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (!V8_VERSION || V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) {\n // Detect correctness of subclassing with @@species support\n var promise = new NativePromiseConstructor(function (resolve) { resolve(1); });\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n if (!SUBCLASSING) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n } return !GLOBAL_CORE_JS_PROMISE && (IS_BROWSER || IS_DENO) && !NATIVE_PROMISE_REJECTION_EVENT;\n});\n\nmodule.exports = {\n CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR,\n REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT,\n SUBCLASSING: SUBCLASSING\n};\n","'use strict';\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\nmodule.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) {\n NativePromiseConstructor.all(iterable).then(undefined, function () { /* empty */ });\n});\n","'use strict';\nvar call = require('../internals/function-call');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar regExpFlags = require('../internals/regexp-flags');\n\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (R) {\n var flags = R.flags;\n return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R)\n ? call(regExpFlags, R) : flags;\n};\n","'use strict';\nvar $ = require('../internals/export');\n\n// eslint-disable-next-line es/no-math-hypot -- required for testing\nvar $hypot = Math.hypot;\nvar abs = Math.abs;\nvar sqrt = Math.sqrt;\n\n// Chrome 77 bug\n// https://bugs.chromium.org/p/v8/issues/detail?id=9546\nvar FORCED = !!$hypot && $hypot(Infinity, NaN) !== Infinity;\n\n// `Math.hypot` method\n// https://tc39.es/ecma262/#sec-math.hypot\n$({ target: 'Math', stat: true, arity: 2, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n hypot: function hypot(value1, value2) {\n var sum = 0;\n var i = 0;\n var aLen = arguments.length;\n var larg = 0;\n var arg, div;\n while (i < aLen) {\n arg = abs(arguments[i++]);\n if (larg < arg) {\n div = larg / arg;\n sum = sum * div * div + 1;\n larg = arg;\n } else if (arg > 0) {\n div = arg / larg;\n sum += div * div;\n } else sum += arg;\n }\n return larg === Infinity ? Infinity : larg * sqrt(sum);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.allSettled` method\n// https://tc39.es/ecma262/#sec-promise.allsettled\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n allSettled: function allSettled(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call(promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'fulfilled', value: value };\n --remaining || resolve(values);\n }, function (error) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'rejected', reason: error };\n --remaining || resolve(values);\n });\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isRegExp = require('../internals/is-regexp');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\nvar getSubstitution = require('../internals/get-substitution');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar $TypeError = TypeError;\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\nvar max = Math.max;\n\nvar stringIndexOf = function (string, searchValue, fromIndex) {\n if (fromIndex > string.length) return -1;\n if (searchValue === '') return fromIndex;\n return indexOf(string, searchValue, fromIndex);\n};\n\n// `String.prototype.replaceAll` method\n// https://tc39.es/ecma262/#sec-string.prototype.replaceall\n$({ target: 'String', proto: true }, {\n replaceAll: function replaceAll(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var IS_REG_EXP, flags, replacer, string, searchString, functionalReplace, searchLength, advanceBy, replacement;\n var position = 0;\n var endOfLastMatch = 0;\n var result = '';\n if (!isNullOrUndefined(searchValue)) {\n IS_REG_EXP = isRegExp(searchValue);\n if (IS_REG_EXP) {\n flags = toString(requireObjectCoercible(getRegExpFlags(searchValue)));\n if (!~indexOf(flags, 'g')) throw new $TypeError('`.replaceAll` does not allow non-global regexes');\n }\n replacer = getMethod(searchValue, REPLACE);\n if (replacer) {\n return call(replacer, searchValue, O, replaceValue);\n } else if (IS_PURE && IS_REG_EXP) {\n return replace(toString(O), searchValue, replaceValue);\n }\n }\n string = toString(O);\n searchString = toString(searchValue);\n functionalReplace = isCallable(replaceValue);\n if (!functionalReplace) replaceValue = toString(replaceValue);\n searchLength = searchString.length;\n advanceBy = max(1, searchLength);\n position = stringIndexOf(string, searchString, 0);\n while (position !== -1) {\n replacement = functionalReplace\n ? toString(replaceValue(searchString, position, string))\n : getSubstitution(searchString, string, position, [], undefined, replaceValue);\n result += stringSlice(string, endOfLastMatch, position) + replacement;\n endOfLastMatch = position + searchLength;\n position = stringIndexOf(string, searchString, position + advanceBy);\n }\n if (endOfLastMatch < string.length) {\n result += stringSlice(string, endOfLastMatch);\n }\n return result;\n }\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.promise.all-settled.js');\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.string.replace-all');\n"],"names":["reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","defaultProps","displayName","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","type","KNOWN_STATICS","name","length","prototype","caller","callee","arguments","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","component","isMemo","ForwardRef","render","Memo","defineProperty","Object","getOwnPropertyNames","getOwnPropertySymbols","getOwnPropertyDescriptor","getPrototypeOf","objectPrototype","module","exports","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","keys","concat","targetStatics","sourceStatics","i","key","descriptor","e","b","Symbol","for","c","d","f","g","h","k","l","m","n","p","q","r","t","v","w","x","y","z","a","u","$$typeof","A","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","Fragment","Lazy","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","__assign","this","assign","s","hasOwnProperty","call","apply","value","named_references_1","numeric_unicode_map_1","surrogate_pairs_1","allNamedReferences","namedReferences","all","html5","replaceUsingRegExp","macroText","macroRegExp","macroReplacer","lastIndex","replaceResult","replaceMatch","exec","replaceLastIndex","index","substring","replaceInput","encodeRegExps","specialChars","nonAscii","nonAsciiPrintable","nonAsciiPrintableOnly","extensive","defaultEncodeOptions","mode","level","numeric","encode","text","_a","_b","_c","_d","_e","encodeRegExp","references","characters","isHex","input","result","code","getCodePoint","charCodeAt","toString","defaultDecodeOptions","scope","strict","attribute","baseDecodeRegExps","xml","body","bodyRegExps","html4","decodeRegExps","fromCharCode","String","outOfBoundsChar","defaultDecodeEntityOptions","getDecodedEntity","entity","isAttribute","isStrict","decodeResult","decodeEntityLastChar","decodeResultByReference","decodeSecondChar","decodeCode","parseInt","substr","fromCodePoint","numericUnicodeMap","decodeEntity","entities","decode","decodeRegExp","_","$","fj","astralCodePoint","Math","floor","codePointAt","position","highSurrogateFrom","highSurrogateTo","emptyTags","esc","str","replace","map","setInnerHTMLAttr","DOMAttributeNames","className","htmlFor","sanitized","attrs","stack","push","children","reverse","_i","indexOf","__html","child","pop","_i2","factory","truncateContent","isNewsPublished","news","todayDate","Date","getTime","publicationDate","publicationStopDate","_ref","title","config","React","filter","newsData","isEllispisNeeded","newsIntroduction","redirectUrl","slug","categories","join","dateFormat","globalConfig","format","id","image","ReactSVG","src","url","styles","beforeInjection","svg","setAttribute","alt","dangerouslySetInnerHTML","sanitizeHtml","href","inputsStyles","newsRedirectLabel","ValidationType","getValidationPattern","validationType","Email","PhoneNumber","PhoneNumberE164","isNotBlank","trim","required","_ref$className","_ref$placeholder","placeholder","_onChange","onChange","register","hasErrors","_onFocus","onFocus","autocomplete","validation","pattern","undefined","autoComplete","event","target","pictogram","linkIcon","displayImage","line","moduleConfiguration","schedules","schedule","scheduleIcon","file","link","label","lineMap","lineMapIcon","download","lineMapLinkLabel","transportMethod","lines","groupedByType","reduce","linesByType","newEntries","get","lineType","set","Map","groupByLineType","Array","from","values","linesGroup","SchedulesSearchResultsLine","selectedLine","selectedMunicipality","selectedPointOfInterest","filteredLines","matchLine","matchMunicipality","municipalities","some","municipality","matchPointOfInterest","pointsOfInterest","pointOfInterest","filterMatchingLines","groupedByMethod","linesByTransportMethod","groupByTransportMethod","noResultLabel","tabIndex","resultsLabel","groupLines","SchedulesSearchResultsTransportMethod","errorMessage","field","formPart","filterMunicipalities","forEach","sort","filterPointOfInterests","filterLines","matchesSelectedMunicipality","matchesSelectedPointOfInterest","search","query","elements","toLabelFn","toLowerCase","toLabel","element","lineValue","municipalityValue","_useState","useState","setSelectedLine","_useState2","setSelectedMunicipality","_useState3","setSelectedPointOfInterest","_useState4","municipalityError","setMunicipalityError","_useState5","lineError","setLineError","linesWithSchedulesOrPlan","useEffect","onSubmit","pushGtmEvent","number","preventDefault","linesFieldIcon","linesFieldLabel","Autocomplete","suggestFunction","linesFieldPlaceholder","lineErrorMessage","municipalitiesFieldIcon","municipalitiesFieldLabel","filteredMunicipalities","municipalitiesFieldPlaceholder","municipalityErrorMessage","pointsOfInterestFieldIcon","pointsOfInterestFieldLabel","pointsOfInterestFieldPlaceholder","submitButtonLabel","lineId","useQueryParam","StringParam","municipalityId","showResults","setShowResults","searchCriteria","setSearchCriteria","linesWithSchedules","matchingLine","find","matchingMunicipality","foundMunicipality","blockTitle","description","SchedulesSearchForm","criteria","_document$getElementB","window","document","getElementById","focus","SchedulesSearchResults","capsule","handleClick","selected","filters","includes","onClick","transportTitleData","TEXT_MAX_LENGTH","useIsMobile","picture","redirectionUrl","RectangularButton","redirectionLabel","transportTitleSearchData","transportTitleSearchModuleConfig","isMobile","transportTitles","setFilters","filteredTransportTitles","setFilteredTransportTitles","buildTransportTitleCards","transportTitle","TransportTitle","searchFilters","newTransportTitles","transportTitleCriteria","searchCriterion","item","every","criterion","searchCriterionList","criterionGroup","idx","Capsule","removeSelectedFilter","criterionTitles","filteredArray","_toConsumableArray","updateFilters","currentTarget","wrapper","ticketOffice","addressIcon","addressLabel","address","zipcode","contactIcon","contactLabel","email","phoneNumber","extraFields","other","ticketOffices","TicketOfficeSearchResult","useMemo","municipalitiesMap","extractMunicipalities","categoriesMap","category","extractCategories","selectedCategories","setSelectedCategories","municipalityIcon","municipalityLabel","searchMunicipalities","municipalityPlaceholder","categoryIcon","categoryLabel","categoryToToggle","newCategories","content","ticketOfficePopup","mapboxgl","require","mapboxToken","setMap","previousMunicipality","setPreviousMunicipality","markers","setMarkers","mapRef","useRef","useLayoutEffect","mapInit","container","current","style","center","mapCenter","longitude","latitude","zoom","newMarkers","previousMarkers","primaryColor","red","green","blue","marker","remove","markerElement","createElement","width","height","popupContent","popup","maxWidth","setHTML","color","setLngLat","location","setPopup","addTo","updateTicketOfficeMarkers","jumpTo","centerMapToMunicipality","ref","filteredTicketOffices","matchCategories","TicketOfficeSearchForm","TicketOfficeSearchResults","TicketOfficeSearchMap","iframeLink","sandbox","svgImage","infoTrafficData","useStaticQuery","infoTrafficDetailPage","setInfoTrafficDetailPage","allDatoCmsPage","nodes","infoLocalized","info","setInfo","dataInfo","setData","parsedInfo","dataToParse","infoTraffic","uniqueLines","ele","findIndex","elem","myLinesWithTraffic","infoTrafficArray","subline","useIsToday","start","end","traffic","parseInfoTraffic","allInfoTraffics","data","useQuerySubscription","enabled","locale","token","readOnlyApi","datoCmsGlobalConfiguration","infoTrafficContentTitle","RegExp","shortDescription","textField","checked","options","option","arrowDown","files","errors","importFiles","_asyncToGenerator","_regeneratorRuntime","_callee","headers","formData","response","_context","prev","next","Accept","notifications_service_token","FormData","append","fetch","notifications_service_import_file_endpoint","method","sent","ok","Error","statusText","abrupt","json","stop","_x","formatReceivers","receivers","emailJson","to","cc","bcc","receiver","sendType","slice","sendEmail","_ref2","_callee2","subject","replyTo","formattedContent","filesPromise","importedFiles","_formatReceivers","_context2","Promise","resolve","notifications_service_endpoint","JSON","stringify","notificationType","notificationContent","emailType","htmlMessage","attachments","_x2","_x3","_x4","_x5","_x6","_x7","blockquoteNodeType","blockNodeType","codeNodeType","headingNodeType","inlineItemNodeType","itemLinkNodeType","linkNodeType","listItemNodeType","listNodeType","paragraphNodeType","rootNodeType","spanNodeType","thematicBreakNodeType","allowedNodeTypes","isHeading","node","isSpan","isRoot","isParagraph","isList","isListItem","isBlockquote","isBlock","isCode","isLink","isItemLink","isInlineItem","isThematicBreak","isObject","obj","Boolean","isNode","isStructuredText","isDocument","schema","flatten","array","$flatten","isArray","_extendStatics","__extends","setPrototypeOf","__proto__","__","constructor","create","__spreadArrays","il","j","jl","RenderError","_super","message","_this","renderRule","guard","transform","appliable","ctx","transformNode","adapter","ancestors","renderRules","hasChildren","innerNode","matchingTransform","structuredTextOrNode","spanNodeRenderRule","customMarkRules","context","marks","mark","matchingCustomRule","rule","renderNode","markToTagName","renderText","renderFragment","split","acc","renderSpanValue","defaultMetaTransformer","meta","attributes","entry","vhtmlAdapter","tagName","defaultAdapter","settings","renderInlineRecord","renderLinkToRecord","renderBlock","customRules","customNodeRules","metaTransformer","childrenWithAttribution","attribution","language","links","record","transformedMeta","blocks","formToText","configuration","fields","renderFormContent","__typename","cleanHtmlTags","tableStyle","emailBody","block","fragmentType","console","log","_ref2$adapter","logoSubsidiary","allowedTags","allowedAttributes","getFieldName","fieldName","cleanFieldName","replaceAll","newRegex","realName","test","_excluded","_extends","bind","source","_assertThisInitialized","self","ReferenceError","_setPrototypeOf","o","ReCAPTCHA","_React$Component","subClass","superClass","handleExpired","handleErrored","handleChange","handleRecaptchaRef","_proto","getCaptchaFunction","fnName","props","grecaptcha","enterprise","getValue","getResponse","_widgetId","getWidgetId","execute","_executeRequested","executeAsync","_this2","reject","executionResolve","executionReject","reset","resetter","forceReset","onExpired","onErrored","explicitRender","sitekey","callback","theme","tabindex","size","stoken","hl","badge","isolated","captcha","appendChild","componentDidMount","componentDidUpdate","_this$props","childProps","excluded","sourceKeys","_objectWithoutPropertiesLoose","SCRIPT_MAP","idCount","callbackName","getOptions","recaptchaOptions","getScriptURL","dynamicOptions","hostname","useRecaptchaNet","globalName","nonce","WrappedComponent","wrappedComponentName","AsyncScriptLoader","_Component","state","__scriptURL","asyncScriptLoaderGetScriptLoaderID","__scriptLoaderID","setupScriptURL","asyncScriptLoaderHandleLoad","setState","asyncScriptOnLoad","asyncScriptLoaderTriggerOnScriptLoaded","mapEntry","loaded","obsKey","observers","_this3","scriptURL","_options","scriptId","errored","script","async","callObserverFuncAndRemoveObserver","func","observersMap","onload","observer","onerror","componentWillUnmount","removeOnUnmount","allScripts","getElementsByTagName","parentNode","removeChild","forwardedRef","Component","ForwardedComponent","forwardRef","formCaptchaKey","_useForm","useForm","handleSubmit","formState","formValues","setFormValues","FormState","Pending","setFormState","firstClick","setFirstClick","setCaptchaValue","pushGtmFirstClickEvent","querySelectorAll","placeholderWidth","inputElement","span","textContent","visibility","font","getComputedStyle","offsetWidth","getTextWidth","getAttribute","userEmailContent","fieldsList","subsidiaryEmailContent","notEmptyEmailFieldIds","fieldId","notEmptyFiles","Submitting","emailFieldValue","emailFieldId","emailPromise","subsidiaryEmailSubject","userEmailPromises","userEmailSubject","then","Success","submitForm","noValidate","None","toValidationType","mandatory","Input","FormError","requiredFieldError","phoneNumberFieldError","emailFieldError","Textarea","parse","RadioButton","Checkbox","FileInput","newValues","Select","RichDatoCmsContent","disabled","formError","successMessage","menuData","buildWebsiteMapMenu","mainMenuLabel","mainMenuPage","submenu","submenuItem","page","headerDisplay","footerDisplay","headerDisplay1","footerDisplay1","column1","headerDisplay2","footerDisplay2","label2","page2","column2","headerDisplay3","footerDisplay3","label3","page3","column3","headerDisplay4","footerDisplay4","label4","page4","column4","headerDisplay5","footerDisplay5","label5","page5","column5","getYear","date","toDate","getFullYear","getMonth","valueSelected","control","minDate","maxDate","previousMonthAlt","nextMonthAlt","isItineraryForm","startDate","setStartDate","years","elemValue","months","renderInput","handleBlur","Controller","_ref6","_ref6$field","onBlur","wrapWithController","DatePicker","val","date_format","renderCustomHeader","_ref3","changeYear","changeMonth","decreaseMonth","increaseMonth","prevMonthButtonDisabled","nextMonthButtonDisabled","margin","display","justifyContent","_ref4","_ref5","timeValue","_ref3$field","showTimeSelect","showTimeSelectOnly","time_format","lostObjectsFormToText","nameFieldLabel","firstnameFieldLabel","addressFieldLabel","zipCodeFieldLabel","cityFieldLabel","city","phoneFieldLabel","tel","emailFieldLabel","dateFieldLabel","timeFieldLabel","time","lineFieldLabel","directionFieldLabel","direction","stopFieldLabel","messageFieldLabel","formsConfiguration","civilityOptions","subsidiaryEmailPromise","fromEmail","subsidiaryEmail","userEmailPromise","civilityFieldLabel","nameFieldPlaceholder","firstnameFieldPlaceholder","emailFieldPlaceholder","addressFieldPlaceholder","zipCodeFieldPlaceholder","cityFieldPlaceholder","phoneFieldPlaceholder","DateInput","TimeInput","directionFieldPlaceholder","stopFieldPlaceholder","messageFieldPlaceholder","attachmentsFieldLabel","formCheckbox","getSingleLineFromApi","lineReference","requestOptions","api_token","api_url","api_url_get_lines_endpoint","error","registerCustomerToSmsAlertRequest","bday","toISOString","linesIdsArray","line0","line1","line2","line3","line4","definedLinesIds","requestBody","last_name","first_name","phone","birthday","city_name","network_subscriber","allNetworkCheckbox","offers_subscriber","otherOffersCheckboxField","api_url_user_registration_endpoint","_callee3","_context3","messages","singleLineData","secondSingleLineData","selectedLines","setSelectedLines","sortingArr","orderedLines","sortedLines","_e$reference","_e$reference$replace","_e$reference2","reference","_x$reference","_x$reference$replace","sortLines","allNetworkState","_useState6","pickedLines","searchLine","lineSelectionFields","requestReponse","birthdateFieldLabel","calendarPreviousMonthButtonAlt","calendarNextMonthButtonAlt","invalidPhoneErrorMessage","allNetworkCheckboxFieldLabel","userAgreementCheckboxFieldLabel","userAgreementLink","otherOffersCheckboxFieldLabel","role","linesData","setLinesData","setSingleLineData","setSecondSingleLineData","showLoader","setShowLoader","singleLineResponse","items","secondSingleLineResponse","requestResponse","SubscribeSmsAlertInfoTrafficForm","loader","loadingErrorMessage","linesIconsData","linesWithInfoTraffic","setLinesWithInfoTraffic","_getExternalData","lang","formattedData","getLines","getInfoTraffic","linesDetails","Data","disruptedLines","trafficWithLines","formattedTrafficWithUniqueLines","DisruptedLines","getAllAffectedLines","LineId","completeLineData","Id","icone","lineCode","Code","lineCodeLowercase","basename","endsWith","getInfoTrafficFormatted","infoTrafficFormatted","removeDuplicateLinesFromArray","removeDuplicateTrafficInfoFromArray","getExternalData","info_traffic_content_title","disruption","Description","Name","ticketBlockText","titleBlockItem","titleText","titleData","getTextOrImageClass","titleBlock","textOrImage","linkImage","linkText","titleBlockLink","externalLink","internalLink","getTextOrImageLayout","nextTripLineIcon","moduleData","stops","setStops","realStops","setRealStops","nextTrips","setNextTrips","noResults","setNoResults","formatNextTripArrivalTimeAndLine","nextTrip","hour","arrivalTime","TheoricArrivalTime","PredictedArrivalTime","aimedArrivalTime","AimedArrivalTime","realArrivalTime","RealArrivalTime","timeInMinutes","minutes","getHours","getMinutes","matchingLines","Lines","arrivingMessage","roundHour","computedNextArrivals","computedLines","destination","VehicleJourneys","journey","VehicleJourneyId","computedDestination","JourneyDestination","computedLineIcon","searchNextTrips","getNextTrips","nextTripsData","Hours","searchAllTypeTripPoints","tmpStops","cleanQuery","getStopsFromApi","completeResults","stopsResults","LogicalId","param","fullQuery","extractQueryFromUrl","blockStyles","trippointFieldLabel","Stops","trippointFieldPlaceholder","tripPoint","history","replaceState","searchButtonLabel","expandArrow","inputIcon","inputWithIcons","itineraryCard","lineIcon","lineIconWrapper","lineText","selectedField","timeRowIcon","unselectedField","sendDataToParent","listStartStops","setListStartStops","switchedStart","setSwitchedStart","switchedEnd","setSwitchedEnd","listEndStops","setListEndStops","departureCoord","setDepartureCoord","arrivalCoord","setArrivalCoord","_useState7","resultError","setResultError","_useState8","checkboxValue","setCheckboxValue","_useState9","invalidDeparture","setInvalidDeparture","_useState10","invalidArrival","setInvalidArrival","formatStopsResults","queryString","urlParams","URLSearchParams","departure","arrival","PointType","getTripStopsValueAndType","dateTime","dd","getDate","padStart","mm","yyyy","today","getItinerariesData","departureId","arrivalId","departurePointType","arrivalPointType","dateType","getItineraryLePilote","tripsData","tripsResults","getItineraryLePiloteFormatedResults","catch","responseError","tripAvailabilityErrorMessage","positionErrorMessage","handleGeoLoc","navigator","geolocation","getCurrentPosition","coords","geolocationLabel","PERMISSION_DENIED","_useState11","menuIsOpen","setIsOpen","focusFn","targetNode","MutationObserver","mutationsList","_step","_iterator","_createForOfIteratorHelperLoose","done","observe","childList","_useState12","setTimeValue","setHours","round","setMinutes","_useState13","isListeningDeparture","setIsListeningDeparture","_useState14","isListeningArrival","setIsListeningArrival","_useState15","departureNote","setDepartureNote","_useState16","arrivalNote","setArrivalNote","_useState17","microphone","setMicrophone","mic","useSpeechToText","handleListenDeparture","handleListenArrival","onend","onstart","onresult","transcript","results","blur","errorEvent","action","form","departureLabel","startStop","setTimeout","getTripPointsFromApi","tripPoints","formatedStops","getStartStopList","departurePlaceholder","onKeyPress","geolocationIcon","prevState","microphonePictogram","micDepartureAltText","tmpStart","tmpEnd","swapDepartureArrivalIcon","arrivalLabel","endStop","getEndStopList","arrivalPlaceholder","micArrivalAltText","dateDepartureTypeLabel","dateArrivalTypeLabel","calendarIcon","toLocaleDateString","preposition","clockIcon","updateMarkers","previousMarker","markerType","selectedTrip","selectedTripType","departureMarker","arrivalMarker","primary_color","sections","rideSegmentCoordinates","ln","mapDepartureMarker","_markerElement","mapArrivalMarker","setDepartureMarker","setArrivalMarker","setSelectedTripType","tripsList","setTripsList","hideTrip","setHideTrip","drawSelectedTrip","mapToUpdate","selectedTripTypeValue","tripsListData","tripType","TripTitle","walkIndex","rideIndex","segment","coordinates","mapId","getSource","removeLayer","removeSource","addSource","properties","geometry","addLayer","layout","paint","updateMapItineraryWalk","walkSegmentCoordinates","updateMapItinerary","newDepartureMarker","newArrivalMarker","getFormatedDuration","duration","LePiloteItineraryForm","trips","flyTo","fastestItinerary","shortestItinerary","mostDirectItinerary","departureTime","fullTripData","DepartureTime","ArrivalTime","section","rideSegmentDetails","Line","Number","Duration","minuteLabel","_section$0$rideSegmen","_section$0$rideSegmen2","_section$0$walkSegmen","_section$0$walkSegmen2","_section$0$walkSegmen3","Departure","Time","walkSegmentDetails","walkSegmentIcon","StopPlace","Site","directionLabel","Direction","Arrival","lineIndicationLabel","lineNumber","durationIndicationLabel","destinationIndicationLabel","getTripRideSectionDetails","walkIndicationLabel","itineraryDetailsButtonIcon","setValue","forceUpdate","insertedIframe","innerHTML","head","attachShadow","paymentModuleScript","backgroundColor","moduleTag","trafficId","setTrafficId","hash","widgetWrapper","parentElement","zIndex","btnImage","buttonContent","hoverButton","setHoverButton","displayPictogram","color2","hover","querySelector","hex","hoverColor","isButtonImg","imgContent","setHover","onMouseOver","onMouseLeave","border","renderButton","internalPageLink","externalPageLink","configId","vianavigo","itinerary","override_base_url","override_external_base","scriptLoaded","setScriptLoaded","itineraryLinkTag","rel","vendorScript","itineraryScript","vianavigoItineraryScript","configurationId","sanitizeHtmlWithImages","img","table","tbody","tr","td","li","ul","ol","blockquote","div","allowedSchemesByTag","exclusiveFilter","frame","tag","attribs","startsWith","customTextRenderOptions","pageTitle","schedulesSearchData","schedulesSearchModuleConfiguration","ticketOfficeSearchData","ticketOfficeSearchModuleConfiguration","itineraryModuleConfiguration","nextDeparturesModuleConfiguration","transportTitleSearchModuleConfiguration","allNewsData","allNewsModuleConfiguration","customFormsConfiguration","lostObjectsFormLines","lostObjectsFormConfiguration","smsAlertFormConfiguration","lePiloteInfoTrafficLinesIconsData","fileExtensionRegexp","_loop","extension","titlePath","onclick","toUpperCase","len","isSimpleText","isCustomText","customContent","isTextWithImage","imagePosition","isTextWithVideo","videoPosition","displayVideo","video","isHighlight","isVideoOnly","isEmbeddedIframe","iframe","stylesToParse","parsedStyles","_Object$assign","splitted","isSchedulesSearch","SchedulesSearch","isTransportTitleSearchModule","TransportTitleSearch","isAllNewsModule","AllNews","isTicketOfficeSearch","TicketOfficeSearch","isItineraryModule","ItineraryModule","isNextDeparturesModule","NextDeparturesModule","isInfoTrafficModule","InfoTraffic","isCustomForm","CustomForm","isWebsiteMapModule","WebsiteMap","isLostObjectsFormModule","LostObjectsForm","isSmsAlertInfoTrafficFormModule","SmsAlertInfoTrafficForms","isLePiloteInfoTrafficModule","InfoTrafficLePilote","isTitleBlock","TitlePage","isLePiloteNextTripsSearchModule","LePiloteNextTripsSearch","isLePiloteItineraryModule","LePiloteItinerary","isAroundMeActigraphModule","AroundMeActigraph","isOskarPaymentModule","OskarPayment","isInfoTrafficDetailModule","InfoTrafficDetailModule","isTerDakarItinerarySearchModule","TerDakarItinerarySearchModule","isButton","Button","isVianavigoItineraryModule","VianavigoItinerary","provider","providerUid","frameBorder","allow","allowFullScreen","breadcrumbList","chevron","chevronBox","selectedLabel","pageInfo","parent","parentSlug","pageSlug","defaultLocale","sanitizedTitle","pages","subMenu","externalPage","externalPage2","externalPage3","externalPage4","externalPage5","Chevron","newsItem","_createNewsBlock","facebookDisplay","twitterDisplay","facebookUrl","setFacebookUrl","twitterUrl","setTwitterUrl","facebookLogo","twitterLogo","sideBlock","isInternal","sideLink","sideBlockInternalExternalLink","sideLinkBis","sideBlockInternalExternalLinkBis","useInternalExternalLink","linkBis","SideBlock","sideBlockImage","sideBlockTitle","isInternalPage","sideBlockImageBis","sideBlockTitleBis","urlOriginal","pageView","setPageView","host","matchMedia","matches","isQualificationStage","validPath","pushGtmPageEvent","pathname","rightSidebar","typePage","typePageContent","Worker_fn","Worker","arrayWithHoles","iterableToArray","unsupportedIterableToArray","nonIterableRest","__esModule","ITERATOR","wellKnownSymbol","SAFE_CLOSING","called","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","object","IS_DENO","IS_NODE","Deno","version","global","classof","process","uncurryThis","toObject","charAt","stringSlice","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","matched","captures","namedCaptures","replacement","tailPos","symbols","match","ch","capture","MATCH","it","isRegExp","NativePromiseConstructor","isCallable","isForced","inspectSource","IS_BROWSER","IS_PURE","V8_VERSION","NativePromisePrototype","SPECIES","SUBCLASSING","NATIVE_PROMISE_REJECTION_EVENT","PromiseRejectionEvent","FORCED_PROMISE_CONSTRUCTOR","PROMISE_CONSTRUCTOR_SOURCE","GLOBAL_CORE_JS_PROMISE","promise","FakePromise","CONSTRUCTOR","REJECTION_EVENT","checkCorrectnessOfIteration","iterable","hasOwn","isPrototypeOf","regExpFlags","RegExpPrototype","R","flags","$hypot","hypot","abs","sqrt","stat","forced","Infinity","NaN","value1","value2","arg","sum","aLen","larg","aCallable","newPromiseCapabilityModule","perform","iterate","allSettled","C","capability","promiseResolve","counter","remaining","alreadyCalled","status","reason","requireObjectCoercible","isNullOrUndefined","getMethod","getRegExpFlags","getSubstitution","REPLACE","$TypeError","TypeError","max","stringIndexOf","string","searchValue","fromIndex","proto","replaceValue","IS_REG_EXP","replacer","searchString","functionalReplace","searchLength","advanceBy","O","endOfLastMatch"],"sourceRoot":""}