section.questions).flat(1)} />\n \n {faqList.title && {faqList.title}}\n {map(faqList.sections, (section, index) => (\n \n {section.title && {section.title}}\n {map(section.questions, (item, yindex) => (\n \n this.showInfoHandler(item.id)}\n questionFontSize={questionFontSize}\n id={`question${item.id}`}\n >\n {item.question}\n \n {includes(visibleInfos, item.id) && (\n \n )}\n \n ))}\n \n ))}\n \n >\n );\n }\n}\n\nFAQAccordion.propTypes = {\n faqList: PropTypes.shape({\n title: PropTypes.string,\n sections: PropTypes.arrayOf(\n PropTypes.shape({\n title: PropTypes.string,\n questions: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n question: PropTypes.string,\n answer: PropTypes.string,\n }),\n ),\n }),\n ),\n }).isRequired,\n answerBg: PropTypes.string,\n questionFontSize: PropTypes.string,\n};\n\nFAQAccordion.defaultProps = {\n answerBg: '#fff',\n questionFontSize: '16px',\n};\n\nexport { FAQAccordion };\n","export const FONT_FAMILY_MAIN = \"'Muli', 'Trebuchet MS', Tahoma, helvetica, arial, sans-serif;\";\nexport const TEXT_COLOR = '#354354';\nexport const LINKS_COLOR = '#4a90e2';\nexport const PALE_GREY = '#eef1f6';\nexport const LIGHT_PALE_GREY = '#fafafb';\nexport const BLUE_GREY = '#9aa1a9';\nexport const ERROR_COLOR = '#f74656';\nexport const SUCCESS_COLOR = '#51e3ae';\nexport const NOTES_COLOR = '#68727f';\nexport const LIGHT_BLUE_GREY = '#ccd0d4';\nexport const MAIN_BLUE = '#4a90e2';\nexport const LIGHT_BLUE = '#a6c8f0';\nexport const DARK_BLUE = '#124483';\nexport const PALE_CORNFLOWER_BLUE = '#c8ddf6';\nexport const ALICE_BLUE = '#f3f8ff';\nexport const SOLITUDE = '#e5eaf2';\nexport const GRAY_CHATEAU = '#979ea7';\nexport const COBALT = '#0153b4';\nexport const SILVER = '#ccd0d4';\nexport const TABLES_LIGHT_STYLE_HOVER = '#f4f7f9';\n\nexport const INPUT_BORDERS_COLOR = 'rgba(0, 0, 0, 0.07)';\n\nexport const BIG_SCREEN_CONTENT_WIDTH = '1160px';\nexport const MEDIUM_SCREEN_CONTENT_WIDTH = '960px';\n","import { css } from 'styled-components';\nimport reduce from 'lodash/reduce';\n\nexport const MOBILE = 'mobile';\n\nconst sizes = {\n [MOBILE]: 998,\n};\n\nconst mediaQueries = reduce(\n sizes,\n (accumulator, value, label) => {\n const emSize = value / 16;\n return {\n ...accumulator,\n [label]: (...args) => css`\n @media (max-width: ${emSize}em) {\n ${css(...args)}\n }\n `,\n };\n },\n {},\n);\n\nexport default mediaQueries;\nexport { sizes };\n","export const getFaqTheoryAccess = (schoolName, theoryProvider, city, street, zipcode, phone) => ({\n title: 'Questions fréquentes',\n sections: [\n {\n questions: [\n {\n id: 'faq-theory-access-1',\n question: `Sur quel site apprendre le code de la route à ${city}?`,\n answer:\n `En vous inscrivant au code de la route avec ${schoolName}, vous aurez accès à la plateforme de révision ${theoryProvider}. ENPC-Ediser est le premier fournisseur des auto-écoles en France. En révisant sur cette plateforme de révision, vous verrez des questions similaires à celles que vous pourrez avoir lors du passage de l’examen officiel du code de la route. Tous les thèmes de la sécurité routière sont abordés dans les cours et les tests : signalisation, circulation routière, limitation de vitesse, équipements de sécurité, etc... `,\n },\n {\n id: 'faq-theory-access-2',\n question: `Pourquoi réviser le code en ligne avec ${schoolName}?`,\n answer:\n `La formation au code sur internet à l’avantage d’être plus pratique et moins chère. Vous pouvez réviser le code, depuis chez vous, dans les transports, au moment qui vous arrange le plus !
\n En vous inscrivant au code en ligne avec ${schoolName}, vous bénéficiez d’un suivi complet par des diplômés d’État. Ces professionnels de l’enseignement de la conduite et de la sécurité routière sont compétents pour répondre à vos questions. En cas de difficultés, ils pourront vous proposer une formation complémentaire en salle de code.
\n `,\n },\n {\n id: 'faq-theory-access-3',\n question: `Comment réviser le code de la route efficacement à ${city}?`,\n answer:\n `Chacun apprend le code de la route à son rythme et à sa façon. Il est cependant conseillé de lire les cours (sur livre de code papier ou support numérique) avant de commencer à répondre aux questions. Commencez par travailler les thèmes avant de passer aux tests (séries de 40 questions comme à l’examen).
\n Il est également conseillé d’alterner révision du code en ligne et avec des séances en salle de code avec un enseignant. La salle de code de ${schoolName} se trouve au ${street} ${zipcode} ${city}. Appelez l’auto-école pour connaître les horaires et les modalités d’accès.
\n `,\n },\n {\n id: 'faq-theory-access-4',\n question: `Comment réussir le code de la route avec ${schoolName}?`,\n answer:\n `Vous avez échoué à l’examen du code de la route à ${city} et vous souhaitez le repasser en mettant toutes les chances de votre côté ? Pour réussir l’examen, vous devrez répondre à 40 questions pendant 30 minutes et faire 5 fautes ou moins. Pour chaque question, vous aurez 20 secondes pour répondre. Les questions pourront être illustrées d'une photo ou d'une vidéo visionnable qu'une seule fois.
\n Une fois inscrit auprès de ${schoolName}, l’auto-école suivra votre progression. En fonction de vos résultats, elle vous conseillera de travailler certains thèmes que vous avez mal assimilés. Suivez leurs conseils et vous allez réussir l’examen !
\n `,\n },\n {\n id: 'faq-theory-access-5',\n question: 'Est-il intéressant de passer le code de la route en candidat libre?',\n answer:\n `Il vous est possible de passer le code en candidat libre... mais c’est déconseillé ! Certaines auto-écoles en ligne proposent dans leurs publicités de passer « le code de la route 10 fois moins cher », mais la réalité est moins attrayante. Les auto-écoles traditionnelles proposent souvent une formation de meilleure qualité, plus rapides, pour un tarif équivalent. Elles ont également de meilleurs taux de réussite.
\n En vous inscrivant à ${schoolName} vous mettez toutes les chances de votre côté pour réussir l’examen du code!
\n `,\n },\n {\n id: 'faq-theory-access-6',\n question: `Comment passer le code gratuitement à ${city}?`,\n answer:\n `Passer le code de la route gratuitement n’est malheureusement pas possible ! Aussi bien l’apprentissage des questions de code de la route que le passage de l’examen ont un prix. Cette somme sert à payer la plateforme de révision mise à votre disposition, ainsi que le suivi qui sera effectué par ${schoolName}.
\n Chercher à faire des économies avec une formation au code de la route pas chère est une mauvaise idée. Si vous connaissez mal votre code de la route, vous devrez effectuer davantage de leçons de conduite avant de passer l’examen du permis de conduire.
\n `,\n },\n {\n id: 'faq-theory-access-7',\n question: `Comment passer son code de la route rapidement à ${city}?`,\n answer:\n `Vous êtes pressé et souhaitez passez le code rapidement ? Contactez ${schoolName} par téléphone au ${phone} afin de savoir si elle organise des stages de code en accélérés. Ces stages sont plus chers qu’un simple accès code en ligne mais ils vous permettent de vous préparer à l’examen du code de la route en quelques jours.
\n L’auto-école vous fournira une méthode et des conseils qui vous permettront de gagner un temps précieux !
\n `,\n },\n ],\n },\n ],\n});\n","import React from 'react';\nimport { createRoot } from 'react-dom/client';\n\nimport { FAQAccordion } from '@shared/FAQAccordion';\nimport { getFaqTheoryAccess } from '../main-app/data/faq-theory-access';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n const node = document.getElementById('react-faq-accordion');\n\n if (!node) return;\n\n const schoolName = node.getAttribute('data-school-name');\n const theoryProvider = node.getAttribute('data-theory-provider-name');\n const city = node.getAttribute('data-city');\n const street = node.getAttribute('data-street');\n const zipcode = node.getAttribute('data-zipcode');\n const phone = node.getAttribute('data-school-phone');\n\n const root = createRoot(node);\n root.render();\n});\n","export default __webpack_public_path__ + \"701e4aa88df01b6fec67a3d9aa4520b5.svg\";","export default __webpack_public_path__ + \"0e3c0441a02700842fd9a14311f60360.svg\";","\"use strict\";\n/**\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.jsonLdScriptProps = exports.JsonLd = exports.helmetJsonLdProp = void 0;\nvar json_ld_1 = require(\"./json-ld\");\nObject.defineProperty(exports, \"helmetJsonLdProp\", { enumerable: true, get: function () { return json_ld_1.helmetJsonLdProp; } });\nObject.defineProperty(exports, \"JsonLd\", { enumerable: true, get: function () { return json_ld_1.JsonLd; } });\nObject.defineProperty(exports, \"jsonLdScriptProps\", { enumerable: true, get: function () { return json_ld_1.jsonLdScriptProps; } });\n","\"use strict\";\n/**\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.helmetJsonLdProp = exports.jsonLdScriptProps = exports.JsonLd = void 0;\nconst React = require(\"react\");\nfunction JsonLd(props) {\n return React.createElement(\"script\", Object.assign({}, jsonLdScriptProps(props.item, props)));\n}\nexports.JsonLd = JsonLd;\nfunction jsonLdScriptProps(item, options = {}) {\n return {\n type: \"application/ld+json\",\n dangerouslySetInnerHTML: {\n __html: JSON.stringify(item, safeJsonLdReplacer, options.space),\n },\n };\n}\nexports.jsonLdScriptProps = jsonLdScriptProps;\nfunction helmetJsonLdProp(item, options = {}) {\n return {\n type: \"application/ld+json\",\n innerHTML: JSON.stringify(item, safeJsonLdReplacer, options.space),\n };\n}\nexports.helmetJsonLdProp = helmetJsonLdProp;\nconst ESCAPE_ENTITIES = Object.freeze({\n \"&\": \"&\",\n \"<\": \"<\",\n \">\": \">\",\n '\"': \""\",\n \"'\": \"'\",\n});\nconst ESCAPE_REGEX = new RegExp(`[${Object.keys(ESCAPE_ENTITIES).join(\"\")}]`, \"g\");\nconst ESCAPE_REPLACER = (t) => ESCAPE_ENTITIES[t];\n/**\n * A replacer for JSON.stringify to strip JSON-LD of illegal HTML entities\n * per https://www.w3.org/TR/json-ld11/#restrictions-for-contents-of-json-ld-script-elements\n */\nconst safeJsonLdReplacer = (() => {\n // Replace per https://www.w3.org/TR/json-ld11/#restrictions-for-contents-of-json-ld-script-elements\n // Solution from https://stackoverflow.com/a/5499821/864313\n return (_, value) => {\n switch (typeof value) {\n case \"object\":\n // Omit null values.\n if (value === null) {\n return undefined;\n }\n return value; // JSON.stringify will recursively call replacer.\n case \"number\":\n case \"boolean\":\n case \"bigint\":\n return value; // These values are not risky.\n case \"string\":\n return value.replace(ESCAPE_REGEX, ESCAPE_REPLACER);\n default: {\n // We shouldn't expect other types.\n isNever(value);\n // JSON.stringify will remove this element.\n return undefined;\n }\n }\n };\n})();\n// Utility: Assert never\nfunction isNever(_) { }\n"],"names":["generateFAQEntity","faqEntities","map","faq","name","question","acceptedAnswer","text","answer","item","mainEntity","Container","styled","div","media","mobile","Title","h2","Block","BlockTitle","h3","props","questionFontSize","BlockItem","h4","isOpened","NOTES_COLOR","TEXT_COLOR","arrow_up","arrow_down","BlockInfo","answerBg","FAQAccordion","Component","constructor","super","id","visibleInfos","this","state","index","indexOf","splice","push","setState","render","faqList","sections","section","questions","flat","title","key","yindex","Fragment","includes","onClick","showInfoHandler","dangerouslySetInnerHTML","__html","defaultProps","FONT_FAMILY_MAIN","LINKS_COLOR","PALE_GREY","LIGHT_PALE_GREY","BLUE_GREY","ERROR_COLOR","SUCCESS_COLOR","LIGHT_BLUE_GREY","MAIN_BLUE","LIGHT_BLUE","DARK_BLUE","PALE_CORNFLOWER_BLUE","ALICE_BLUE","SOLITUDE","GRAY_CHATEAU","COBALT","TABLES_LIGHT_STYLE_HOVER","INPUT_BORDERS_COLOR","BIG_SCREEN_CONTENT_WIDTH","MEDIUM_SCREEN_CONTENT_WIDTH","MOBILE","sizes","reduce","accumulator","value","label","emSize","args","css","getFaqTheoryAccess","schoolName","theoryProvider","city","street","zipcode","phone","document","addEventListener","node","getElementById","getAttribute","createRoot","exports","json_ld_1","Object","defineProperty","enumerable","get","JsonLd","helmetJsonLdProp","jsonLdScriptProps","React","options","type","JSON","stringify","safeJsonLdReplacer","space","createElement","assign","innerHTML","ESCAPE_ENTITIES","freeze","ESCAPE_REGEX","RegExp","keys","join","ESCAPE_REPLACER","t","_","replace"],"sourceRoot":""}