{"version":3,"file":"102-62c8813ee57a24cca688.js","mappings":"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","sources":["webpack://keolis.com/./config.js","webpack://keolis.com/./src/v3/components/hrefLangLinks/hrefLangLinks.tsx","webpack://keolis.com/./src/v3/components/layout/header/header.module.scss","webpack://keolis.com/./src/v3/components/layout/header/menu/submenus/submenus.module.scss","webpack://keolis.com/./static/vectors/v3/right-arrow.svg","webpack://keolis.com/./src/v3/components/layout/header/menu/submenus/submenus.tsx","webpack://keolis.com/./src/v3/components/layout/header/menu/details/details.tsx","webpack://keolis.com/./src/v3/components/layout/header/menu/details/details.module.scss","webpack://keolis.com/./src/v3/components/layout/header/menu/menu.tsx","webpack://keolis.com/./src/v3/components/layout/header/menu/menu.module.scss","webpack://keolis.com/./src/v3/components/layout/header/capsule/capsule.tsx","webpack://keolis.com/./src/v3/components/layout/header/capsule/capsule.module.scss","webpack://keolis.com/./src/v3/components/layout/header/language-selector/language-selector.module.scss","webpack://keolis.com/./src/v3/components/layout/header/language-selector/language-selector.tsx","webpack://keolis.com/./src/v3/hooks/use-change-language.ts","webpack://keolis.com/./src/v3/components/layout/header/burger-menu/accordion/accordion.module.scss","webpack://keolis.com/./static/vectors/v3/accordion-arrow.svg","webpack://keolis.com/./src/v3/components/layout/header/burger-menu/accordion/accordion.tsx","webpack://keolis.com/./src/v3/components/layout/header/burger-menu/burger-menu.tsx","webpack://keolis.com/./src/v3/components/layout/header/burger-menu/burger-menu.module.scss","webpack://keolis.com/./src/v3/components/layout/header/header.tsx","webpack://keolis.com/./static/vectors/v3/globe.svg","webpack://keolis.com/./static/vectors/v3/search.svg","webpack://keolis.com/./src/v3/components/layout/footer/footer.module.scss","webpack://keolis.com/./src/v3/components/layout/footer/site-map-columns/site-map-columns.tsx","webpack://keolis.com/./src/v3/components/layout/footer/site-map-columns/site-map-columns.module.scss","webpack://keolis.com/./src/v3/components/layout/footer/social-networks-column/social-networks-column.tsx","webpack://keolis.com/./src/v3/components/layout/footer/social-networks-column/social-networks-column.module.scss","webpack://keolis.com/./src/v3/components/layout/footer/legal-documents-column/legal-documents-column.module.scss","webpack://keolis.com/./src/v3/components/layout/footer/legal-documents-column/legal-documents-column.tsx","webpack://keolis.com/./src/v3/components/layout/footer/footer.tsx","webpack://keolis.com/./src/v3/components/layout/button-sticky/button-sticky.tsx","webpack://keolis.com/./src/v3/components/layout/button-sticky/button-sticky.module.scss","webpack://keolis.com/./src/v3/components/layout/layout.tsx","webpack://keolis.com/./src/v3/context/locale-context.tsx","webpack://keolis.com/./src/v3/context/slugs-context.tsx","webpack://keolis.com/./src/v3/hooks/use-format-locale.ts","webpack://keolis.com/./src/v3/hooks/use-is-mobile.ts","webpack://keolis.com/./src/v3/hooks/use-slug-value.ts","webpack://keolis.com/./src/v3/components/seo/seo.js","webpack://keolis.com/./static/vectors/v3/keolis-logo-mobile.svg"],"sourcesContent":["const {fr} = require(\"date-fns/locale\");\nmodule.exports = Object.assign({dateFnsLocale: fr}, {\n \"chapo_length_number\": 559,\n \"date_format\": {\n \"en\": \"MMMM d yyyy\"\n },\n \"didomi_api_key\": \"2127e597-3d3f-4aa2-9727-c8126f86298c\",\n \"notifications_service_endpoint\": \"https://apim.keolis.com/SIK/000/notification\",\n \"search_token\": \"5344199e9f486a07dcff12ff83b8e9\",\n \"v3_share_label\": {\n \"en\": \"I share\"\n },\n \"hour_format\": {\n \"en\": \"HH:mm\"\n },\n \"notifications_service_import_file_endpoint\": \"https://apim.keolis.com/SIK/000/file/import HTTP/1.1\",\n \"piano_site_id\": \"639189\",\n \"serverless_sendmail_endpoint\": \"https://apim.keolis.com/dato/send/form/instit/\",\n \"site_name\": \"Keolis MHI\",\n \"v3_social_networks\": [\n \"NMVuzrX7Rju7X-6XxxBb_Q\",\n \"HdkYQhjiRTiQZ_EUqsa9Sw\",\n \"UjmbM7TISyWkKI0ohh_aXg\",\n \"WHuXStP_SJuGOcof92-vyw\"\n ],\n \"facebook_link\": \"https://www.facebook.com/sharer/sharer.php?u=\",\n \"google_tag_manager_id\": \"GTM-MR9X2CJM\",\n \"meta_description\": {\n \"en\": \"Keolis MHI\"\n },\n \"notifications_service_token\": \"2d5392f4a9404b2690515b92a3eadc93\",\n \"serverless_sendmail_token\": \"1142321004f3407b98a95856f9820607\",\n \"google_analytics_key\": \"UA-15538359-5\",\n \"subsidiary_logo\": {\n \"en\": {\n \"path\": \"/80791/1665408468-km-logo_eng.jpg\",\n \"format\": \"jpg\",\n \"size\": 68926,\n \"alt\": \"Keolis MHI - back to homepage\",\n \"title\": \"Keolis MHI\",\n \"width\": 1953,\n \"height\": 249\n }\n },\n \"twitter_link\": \"https://twitter.com/intent/tweet?url=\",\n \"linkedin_link\": \"https://www.linkedin.com/sharing/share-offsite/?url=\",\n \"subsidiary_reduced_logo\": {\n \"en\": {\n \"path\": \"/80791/1724158932-logo_k_bleu-size5.svg\",\n \"format\": \"svg\",\n \"size\": 754,\n \"alt\": \"Logo Keolis\",\n \"title\": \"Keolis\",\n \"width\": 256,\n \"height\": 256\n }\n },\n \"home_page_title\": {\n \"en\": \"Home\"\n },\n \"mailto_addresse\": \"mailto:someone@example.com\",\n \"share_buttons_title\": {\n \"en\": \"share\"\n },\n \"transport_mode_title\": {\n \"en\": \"\"\n },\n \"facebook_label\": {\n \"en\": \"facebook label\"\n },\n \"token_google_site_verification\": \"\",\n \"twitter_label\": {\n \"en\": \"twitter label\"\n },\n \"linkedin_label\": {\n \"en\": \"linkedIn label\"\n },\n \"mailto_label\": {\n \"en\": \"mailTo label\"\n },\n \"download_label\": {\n \"en\": \"Télécharger\"\n },\n \"updated_at\": \"2024-12-04T18:12:06.339+01:00\",\n \"created_at\": \"2021-04-20T17:40:04.593+02:00\",\n \"locale\": \"fr\",\n \"locales\": [\n \"en\"\n ],\n \"siteUrl\": \"https://www.keolis-mhi.com/\"\n})","import React, { Fragment } from \"react\"\nimport * as config from \"../../../../config\"\nimport { useSlugValue } from \"../../hooks\"\n\ntype HrefLangLinksProps = {\n defaultDomain: string\n defaultLocale: string\n locales?: string[]\n slugs?: object[]\n manualSlugs?: string\n}\n\n/**\n * This component generates <link> tags for international SEO using \"hreflang\" attributes.\n *\n * @param {string} defaultDomain - The site's default domain.\n * @param {string} defaultLocale - The site's default locale.\n * @param {string[]} locales - An optional list of locales supported by the site. If not provided, the component will use config.locales.\n * @param {object[]} [slugs] - An optional list of an object's slugs for each locale.\n * @param {string} [manualSlugs] - An optional string of slugs to use instead of the slugs generated from the slugs prop.\n *\n * @example\n * Suppose we have a site supporting the \"fr\" and \"en\" locales, with \"fr\" being the default.\n *\n * ```jsx\n * <HrefLangLinks\n * defaultDomain=\"https://keolis.com/\"\n * locales={data.datoCmsGlobalConfiguration.locales}\n * defaultLocale={pageContext.defaultLocale}\n * slugs={[\n * pageContext.slugs._allNewsroomPageSlugLocales,\n * pageContext.slugs._allNewsPageSlugLocales,\n * pageContext.allSlugLocales,\n * ]}\n * />\n * ```\n *\n * The component would generate the following tags:\n *\n * ```html\n * <link rel=\"alternate\" hreflang=\"en\" href=\"https://keolis.com/en/newsroom-en/news/keolis-contracts-renewed-in-chauny-and-dole-france\" data-gatsby-head=\"true\">\n * <link rel=\"alternate\" hreflang=\"fr\" href=\"https://keolis.com/newsroom/actualites/keolis-renouvele-a-chauny-et-a-dole-france\" data-gatsby-head=\"true\">\n * <link rel=\"alternate\" hreflang=\"x-default\" href=\"https://keolis.com/newsroom/actualites/keolis-renouvele-a-chauny-et-a-dole-france\" data-gatsby-head=\"true\">\n * ```\n */\n\nexport const HrefLangLinks: React.FC<HrefLangLinksProps> = ({\n defaultDomain,\n locales,\n defaultLocale,\n slugs,\n manualSlugs,\n}) => {\n const generatePath = (locale: string) => {\n defaultDomain = defaultDomain.endsWith(\"/\") ? defaultDomain : defaultDomain + \"/\"\n const basePath = defaultLocale === locale ? defaultDomain : `${defaultDomain}${locale}/`\n if (!slugs && !manualSlugs) {\n return basePath\n }\n if (manualSlugs) {\n manualSlugs = manualSlugs.startsWith(\"/\") ? manualSlugs.substring(1) : manualSlugs\n manualSlugs = manualSlugs.endsWith(\"/\") ? manualSlugs : manualSlugs + \"/\"\n return `${basePath}${manualSlugs}`\n }\n const pathSlugs = slugs?.map(slug => {\n return useSlugValue(slug, locale)\n })\n return `${basePath}${pathSlugs.join(\"/\")}/`\n }\n\n locales = locales || config.locales\n\n return (\n <>\n {locales.map(locale => {\n const path = generatePath(locale)\n return (\n <Fragment key={path}>\n <link rel=\"alternate\" hrefLang={locale} href={path} />\n {defaultLocale === locale && <link rel=\"alternate\" hrefLang=\"x-default\" href={path} />}\n </Fragment>\n )\n })}\n </>\n )\n}\n","// extracted by mini-css-extract-plugin\nexport var buttons = \"header-module--buttons--dc50a\";\nexport var capsules = \"header-module--capsules--c9d01\";\nexport var globeIcon = \"header-module--globeIcon--9526d\";\nexport var header = \"header-module--header--39aed\";\nexport var icon = \"header-module--icon--56a26\";\nexport var logo = \"header-module--logo--7dfe7\";\nexport var menus = \"header-module--menus--eef91\";\nexport var navMenu = \"header-module--navMenu--a486a\";\nexport var searchIcon = \"header-module--searchIcon--5748e\";","// extracted by mini-css-extract-plugin\nexport var multipleLinks = \"submenus-module--multipleLinks--25e2e\";\nexport var spanAnimated = \"submenus-module--spanAnimated--9194e\";\nexport var submenuTitle = \"submenus-module--submenuTitle--ba01e\";\nexport var submenus = \"submenus-module--submenus--bc126\";","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHZpZXdCb3g9IjAgMCAxOCAxOCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgaWQ9IkFycm93Ij4KPHBhdGggaWQ9IlZlY3RvciAxIiBkPSJNNy41IDE0LjVMMTIuNSA5LjVMNy41IDQuNSIgc3Ryb2tlPSIjMjA0MDVGIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+CjwvZz4KPC9zdmc+Cg==\"","import React from \"react\"\nimport { ReactSVG } from \"react-svg\"\nimport { graphql } from \"gatsby\"\nimport { V3SubmenuHeaderFieldsFragment } from \"../../../../../../../graphql-types\"\nimport * as styles from \"./submenus.module.scss\"\nimport { useSlugs } from \"../../../../../context/slugs-context\"\nimport RightArrow from \"../../../../../../../static/vectors/v3/right-arrow.svg\"\n\ntype RenderProps = {\n submenus: V3SubmenuHeaderFieldsFragment[]\n onClick: (index: number) => void\n}\n\nconst Submenus: React.FC<RenderProps> = ({ submenus, onClick }) => {\n const { buildInternalLink } = useSlugs()\n\n return (\n <div className={styles.submenus}>\n {submenus.map((submenu, index) =>\n submenu.containsMultipleLinks ? (\n <div key={submenu.id} className={styles.multipleLinks}>\n <button className={styles.submenuTitle} onClick={() => onClick(index)} key={submenu.title}>\n <span className={styles.spanAnimated}>{submenu.title}</span>\n </button>\n <div>\n <ReactSVG src={RightArrow} />\n </div>\n </div>\n ) : (\n <a href={buildInternalLink(submenu.uniqueLink)} className={styles.submenuTitle} key={submenu.title}>\n <span className={styles.spanAnimated}>{submenu.title}</span>\n </a>\n )\n )}\n </div>\n )\n}\n\nexport const fragment = graphql`\n fragment V3SubmenuHeaderFields on DatoCmsV3SubmenuHeader {\n id\n title\n containsMultipleLinks\n multipleLinks {\n ...InternalExternalLinkBlockFields\n }\n uniqueLink {\n __typename\n ... on DatoCmsParentPage {\n image {\n alt\n url\n }\n slug\n }\n ... on DatoCmsGeneratedPage {\n slug\n }\n ... on DatoCmsPage {\n slug\n }\n }\n }\n`\n\nexport default Submenus\n","import React from \"react\"\nimport * as styles from \"./details.module.scss\"\nimport { InternalExternalLinkBlockFieldsFragment } from \"../../../../../../../graphql-types\"\nimport { useSlugs } from \"../../../../../context/slugs-context\"\n\ntype RenderProps = {\n links: InternalExternalLinkBlockFieldsFragment[]\n}\n\nconst Details: React.FC<RenderProps> = ({ links }) => {\n const { buildInternalLink } = useSlugs()\n\n return (\n <div className={styles.details}>\n {links?.map(link => (\n <a\n href={link.isInternalPage ? buildInternalLink(link.internalLink) : link.externalLink}\n className={styles.linkTitle}\n key={link.id}\n >\n <span className={styles.spanAnimated}>{link.title}</span>\n </a>\n ))}\n </div>\n )\n}\n\nexport default Details\n","// extracted by mini-css-extract-plugin\nexport var details = \"details-module--details--5ae39\";\nexport var linkTitle = \"details-module--linkTitle--4638d\";\nexport var spanAnimated = \"details-module--spanAnimated--e1b9c\";","import React from \"react\"\nimport { ReactSVG } from \"react-svg\"\nimport { graphql } from \"gatsby\"\nimport { V3MenuHeaderFieldsFragment } from \"../../../../../../graphql-types\"\nimport * as styles from \"./menu.module.scss\"\nimport Submenus from \"./submenus/submenus\"\nimport Details from \"./details/details\"\nimport RightArrow from \"../../../../../../static/vectors/v3/right-arrow.svg\"\n\ntype RenderProps = {\n menu: V3MenuHeaderFieldsFragment\n onClick: (e: React.MouseEvent<HTMLAnchorElement>, menuId: string) => void\n isMenuOpened: boolean\n}\n\nconst Menu: React.FC<RenderProps> = ({ menu, onClick, isMenuOpened }) => {\n const [indexSubmenu, setIndexSubmenu] = React.useState(-1)\n\n const handleSubmenuClick = (index: number) => {\n setIndexSubmenu(indexSubmenu === index ? -1 : index)\n }\n\n return (\n <li>\n <a href=\"#\" className={styles.mainTitle} onClick={e => onClick(e, menu.id)}>\n {menu.title}\n <div className={styles.arrow}>\n <ReactSVG src={RightArrow} />\n </div>\n </a>\n <div className={`${styles.menu} ${isMenuOpened ? styles.menuOpened : \"\"}`}>\n <div className={styles.menuTitle}>{menu.title}</div>\n <div className={styles.container}>\n <Submenus submenus={menu.submenus} onClick={handleSubmenuClick} />\n {indexSubmenu >= 0 && <Details links={menu.submenus[indexSubmenu].multipleLinks} />}\n </div>\n </div>\n </li>\n )\n}\n\nexport const fragment = graphql`\n fragment V3MenuHeaderFields on DatoCmsV3MenuHeader {\n id\n title\n submenus {\n ...V3SubmenuHeaderFields\n }\n }\n`\n\nexport default Menu\n","// extracted by mini-css-extract-plugin\nexport var arrow = \"menu-module--arrow--33761\";\nexport var container = \"menu-module--container--1309e\";\nexport var mainTitle = \"menu-module--mainTitle--6bbbf\";\nexport var menu = \"menu-module--menu--f058b\";\nexport var menuOpened = \"menu-module--menuOpened--319c7\";\nexport var menuTitle = \"menu-module--menuTitle--2ce99\";","import React from \"react\"\nimport { graphql } from \"gatsby\"\nimport { V3CapsuleHeaderFieldsFragment } from \"../../../../../../graphql-types\"\nimport * as styles from \"./capsule.module.scss\"\nimport { useSlugs } from \"../../../../context/slugs-context\"\n\ntype RenderProps = {\n capsule: V3CapsuleHeaderFieldsFragment\n}\n\nconst Capsule: React.FC<RenderProps> = ({ capsule }) => {\n const { getInternalExternalLink } = useSlugs()\n\n return (\n <div className={styles.capsule} style={{ \"--color\": capsule.color.hex } as React.CSSProperties}>\n <a href={getInternalExternalLink(capsule.redirectLink)} className={styles.title}>\n {capsule.title}\n </a>\n </div>\n )\n}\n\nexport const fragment = graphql`\n fragment V3CapsuleHeaderFields on DatoCmsV3CapsuleHeader {\n id\n title\n color {\n hex\n }\n redirectLink {\n ...InternalExternalLinkBlockFields\n }\n }\n`\n\nexport default Capsule\n","// extracted by mini-css-extract-plugin\nexport var capsule = \"capsule-module--capsule--da280\";\nexport var title = \"capsule-module--title--bda47\";","// extracted by mini-css-extract-plugin\nexport var arrow = \"language-selector-module--arrow--1de2b\";\nexport var countryLabel = \"language-selector-module--countryLabel--d3fa5\";\nexport var displayOnTop = \"language-selector-module--displayOnTop--faf50\";\nexport var dropdownContent = \"language-selector-module--dropdownContent--d98d8\";\nexport var languageSelector = \"language-selector-module--languageSelector--0967c\";\nexport var menuButton = \"language-selector-module--menuButton--974ec\";\nexport var submenuButton = \"language-selector-module--submenuButton--64828\";","import React from \"react\"\nimport { ReactSVG } from \"react-svg\"\nimport * as config from \"../../../../../../config\"\nimport * as styles from \"./language-selector.module.scss\"\nimport { useLocale } from \"../../../../context/locale-context\"\nimport { useSlugs } from \"../../../../context/slugs-context\"\nimport { useChangeLanguage, useFormatLocale } from \"../../../../hooks\"\nimport RightArrow from \"../../../../../../static/vectors/v3/right-arrow.svg\"\n\ntype RenderProps = {\n currentRoute: string\n allSlugLocales: { locale: string; value: string }[]\n displayOnTop?: boolean\n}\n\nconst LanguageSelector: React.FC<RenderProps> = ({ currentRoute, allSlugLocales, displayOnTop = false }) => {\n const { locale, defaultLocale } = useLocale()\n const { slugs } = useSlugs()\n\n const otherLocales: string[] = config.locales\n .map((otherLocale: string) => useFormatLocale(otherLocale))\n .filter((otherLocale: string) => otherLocale !== locale)\n\n return (\n <div className={`${styles.languageSelector} ${displayOnTop ? styles.displayOnTop : \"\"}`}>\n <button className={styles.menuButton}>\n <span className={styles.countryLabel}>{locale}</span>\n <div className={styles.arrow}>\n <ReactSVG src={RightArrow} />\n </div>\n </button>\n <div className={styles.dropdownContent}>\n {otherLocales.map((otherLocale: string) => {\n const localeLink = useChangeLanguage(slugs, currentRoute, allSlugLocales, otherLocale, defaultLocale)\n return (\n <a href={localeLink} key={otherLocale} className={styles.submenuButton}>\n <span className={styles.countryLabel}>{otherLocale}</span>\n </a>\n )\n })}\n </div>\n </div>\n )\n}\n\nexport default LanguageSelector\n","import { DatoCmsSlugsConfiguration } from \"../../../graphql-types\"\nimport { useFormatLocale } from \"./use-format-locale\"\n\n/**\n * Change page language\n *\n * @param slugs all the slugs of the website all languages included\n * @param currentRoute the current route (ex: /newsroom/press-release)\n * @param allSlugLocales the current end of slug translated in all languages\n * @param otherLocale the new language locale\n * @param defaultLocale the default locale of the page\n */\nexport const useChangeLanguage = (\n slugs: DatoCmsSlugsConfiguration,\n currentRoute: string,\n allSlugLocales: { locale: string; value: string }[],\n otherLocale: string,\n defaultLocale: string\n) => {\n const routeArray = currentRoute.split(\"/\")\n let relatedSlug = \"\"\n\n routeArray.forEach(route => {\n for (const key in slugs) {\n if (Array.isArray(slugs[key])) {\n const isRelatedSlug = slugs[key].filter(slug => slug.value === route)\n if (isRelatedSlug.length > 0) {\n const slugByLocale = slugs[key].filter(slug => useFormatLocale(slug.locale) === otherLocale)\n if (slugByLocale.length > 0) {\n if (relatedSlug.length > 0) relatedSlug += \"/\"\n relatedSlug += slugByLocale[0].value\n }\n }\n }\n }\n })\n\n relatedSlug = otherLocale === defaultLocale ? `/${relatedSlug}` : `/${otherLocale}/${relatedSlug}`\n\n if (allSlugLocales) {\n if (relatedSlug.length > 1 && relatedSlug[relatedSlug.length - 1] === \"/\") {\n relatedSlug = relatedSlug.slice(0, -1)\n }\n\n const articleSlug = allSlugLocales.filter(slug => useFormatLocale(slug.locale) === otherLocale)\n if (articleSlug && articleSlug[0]) {\n if (relatedSlug.slice(-1) !== \"/\") {\n relatedSlug += \"/\"\n }\n relatedSlug += articleSlug[0].value\n }\n }\n\n return relatedSlug\n}\n","// extracted by mini-css-extract-plugin\nexport var accordion = \"accordion-module--accordion--a54fd\";\nexport var accordionContent = \"accordion-module--accordionContent--5928a\";\nexport var arrow = \"accordion-module--arrow--23f38\";\nexport var link = \"accordion-module--link--073d6\";\nexport var rotated = \"accordion-module--rotated--ae5bc\";\nexport var submenuLink = \"accordion-module--submenuLink--7283f\";\nexport var submenuTitle = \"accordion-module--submenuTitle--efa61\";\nexport var title = \"accordion-module--title--28b6f\";","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTUiIGhlaWdodD0iMTUiIHZpZXdCb3g9IjAgMCAxNSAxNSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggaWQ9IiYjMjM5OyYjMTMwOyYjMTY5OyIgZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik03LjI2NTYxIDE0LjUzMTJDMTEuMjc5MyAxNC41MzEyIDE0LjUzMTIgMTEuMjc5MyAxNC41MzEyIDcuMjY1NjFDMTQuNTMxMiAzLjI1MTk1IDExLjI3OTMgMCA3LjI2NTYxIDBDMy4yNTE5NSAwIDAgMy4yNTE5NSAwIDcuMjY1NjFDMCAxMS4yNzkzIDMuMjUxOTUgMTQuNTMxMiA3LjI2NTYxIDE0LjUzMTJaTTcuMjY1NjEgMTMuMTI1QzQuMDI4MzEgMTMuMTI1IDEuNDA2MjUgMTAuNTAyOSAxLjQwNjI1IDcuMjY1NjFDMS40MDYyNSA0LjAyODMxIDQuMDI4MzEgMS40MDYyNSA3LjI2NTYxIDEuNDA2MjVDMTAuNTAyOSAxLjQwNjI1IDEzLjEyNSA0LjAyODMxIDEzLjEyNSA3LjI2NTYxQzEzLjEyNSAxMC41MDI5IDEwLjUwMjkgMTMuMTI1IDcuMjY1NjEgMTMuMTI1Wk0xMS4xNDE2IDcuNTE0NjNMNy41ODQ5NSAxMS4wNzEzQzcuNDQ3MjUgMTEuMjA4OSA3LjIyNDU4IDExLjIwODkgNy4wODY5MSAxMS4wNzEzTDYuNTEyNjcgMTAuNDk3QzYuMzcyMDYgMTAuMzU2NCA2LjM3NDk3IDEwLjEzMDggNi41MTg1NCA5Ljk5MzEzTDguNTc4MSA4LjAyNzMySDMuODY3MThDMy42NzM4MyA4LjAyNzMyIDMuNTE1NjIgNy44NjkxMSAzLjUxNTYyIDcuNjc1NzZWNi44NTU0NUMzLjUxNTYyIDYuNjYyMSAzLjY3MzgzIDYuNTAzODkgMy44NjcxOCA2LjUwMzg5SDguNTc4MUw2LjUxODU0IDQuNTM4MDlDNi4zNzQ5NyA0LjQwMDM5IDYuMzcyMDYgNC4xNzQ3OSA2LjUxMjY3IDQuMDM0MThMNy4wODY5MSAzLjQ1OTk0QzcuMjI0NTggMy4zMjIyNyA3LjQ0NzI1IDMuMzIyMjcgNy41ODQ5NSAzLjQ1OTk0TDExLjE0MTYgNy4wMTY1OEMxMS4yNzkzIDcuMTU0MjkgMTEuMjc5MyA3LjM3NjkzIDExLjE0MTYgNy41MTQ2M1oiIGZpbGw9IiMxQjFCMUIiLz4KPC9zdmc+Cg==\"","import React, { Fragment, useRef, useState } from \"react\"\nimport { ReactSVG } from \"react-svg\"\nimport { V3MenuHeaderFieldsFragment } from \"../../../../../../../graphql-types\"\nimport * as styles from \"./accordion.module.scss\"\nimport { useSlugs } from \"../../../../../context/slugs-context\"\nimport RightArrow from \"../../../../../../../static/vectors/v3/right-arrow.svg\"\nimport AccordionArrow from \"../../../../../../../static/vectors/v3/accordion-arrow.svg\"\n\ntype RenderProps = {\n menu: V3MenuHeaderFieldsFragment\n}\n\nconst Accordion: React.FC<RenderProps> = ({ menu }) => {\n const { buildInternalLink } = useSlugs()\n const [active, setActive] = useState(false)\n const [height, setHeight] = useState(\"0px\")\n const accordionContent = useRef(null)\n\n const toggleAccordion = () => {\n setActive(!active)\n setHeight(active === true ? \"0px\" : `${accordionContent.current.scrollHeight}px`)\n }\n\n return (\n <li className={styles.accordion} tabIndex={-1}>\n <button className={styles.link} onClick={toggleAccordion}>\n <h2 className={styles.title}>{menu.title}</h2>\n <div className={`${styles.arrow} ${active && styles.rotated}`}>\n <ReactSVG src={RightArrow} />\n </div>\n </button>\n <div ref={accordionContent} style={{ maxHeight: `${height}` }} className={styles.accordionContent}>\n {menu.submenus.map(submenu => {\n if (submenu.containsMultipleLinks) {\n return (\n <Fragment key={submenu.id}>\n <h3 className={styles.submenuTitle}>{submenu.title}</h3>\n {submenu.multipleLinks?.map(link => (\n <a\n href={link.isInternalPage ? buildInternalLink(link.internalLink) : link.externalLink}\n className={styles.submenuLink}\n key={link.id}\n >\n <ReactSVG src={AccordionArrow} className={styles.arrow} />\n <h4>{link.title}</h4>\n </a>\n ))}\n </Fragment>\n )\n }\n return (\n <a href={buildInternalLink(submenu.uniqueLink)} className={styles.submenuLink} key={submenu.id}>\n <ReactSVG src={AccordionArrow} className={styles.arrow} />\n <h4>{submenu.title}</h4>\n </a>\n )\n })}\n </div>\n </li>\n )\n}\n\nexport default Accordion\n","import React, { useState } from \"react\"\nimport { Turn as Hamburger } from \"hamburger-react\"\nimport * as config from \"../../../../../../config\"\nimport * as styles from \"./burger-menu.module.scss\"\nimport { V3MenuHeaderFieldsFragment } from \"../../../../../../graphql-types\"\nimport Accordion from \"./accordion/accordion\"\nimport LanguageSelector from \"../language-selector/language-selector\"\n\ntype RenderProps = {\n menus: V3MenuHeaderFieldsFragment[]\n currentRoute: string\n allSlugLocales: { locale: string; value: string }[]\n}\n\nconst BurgerMenu: React.FC<RenderProps> = ({ menus, currentRoute, allSlugLocales }) => {\n const [isMenuOpened, setIsMenuOpened] = useState(false)\n const hasSeveralLanguages = config.locales.length > 1\n\n return (\n <nav className={styles.burgerMenuIcon} role=\"navigation\">\n <div>\n <Hamburger\n label=\"Burger Menu\"\n hideOutline={false}\n color=\"#20405f\"\n size={18}\n toggled={isMenuOpened}\n toggle={setIsMenuOpened}\n distance=\"md\"\n rounded\n />\n </div>\n <div className={`${styles.menus} ${isMenuOpened ? styles.opened : styles.closed}`}>\n <ul>\n {menus.map(menu => (\n <Accordion menu={menu} key={menu.id} />\n ))}\n </ul>\n {hasSeveralLanguages && (\n <div className={styles.languageSelector}>\n <LanguageSelector currentRoute={currentRoute} allSlugLocales={allSlugLocales} displayOnTop={true} />\n </div>\n )}\n </div>\n </nav>\n )\n}\n\nexport default BurgerMenu\n","// extracted by mini-css-extract-plugin\nexport var accordionButtons = \"burger-menu-module--accordionButtons--66ad1\";\nexport var burgerMenuIcon = \"burger-menu-module--burgerMenuIcon--06710\";\nexport var closed = \"burger-menu-module--closed--ac502\";\nexport var languageSelector = \"burger-menu-module--languageSelector--02522\";\nexport var menus = \"burger-menu-module--menus--4c6b4\";\nexport var opened = \"burger-menu-module--opened--65b1a\";","import React, { useState, useEffect, useRef } from \"react\"\nimport { ReactSVG } from \"react-svg\"\nimport { graphql } from \"gatsby\"\nimport { DatoCmsFileField, V3HeaderFieldsFragment } from \"../../../../../graphql-types\"\nimport * as config from \"../../../../../config\"\nimport * as styles from \"./header.module.scss\"\nimport { useLocale } from \"../../../context/locale-context\"\nimport { useSlugs } from \"../../../context/slugs-context\"\nimport { useIsMobile } from \"../../../hooks\"\nimport Menu from \"./menu/menu\"\nimport Capsule from \"./capsule/capsule\"\nimport LanguageSelector from \"./language-selector/language-selector\"\nimport BurgerMenu from \"./burger-menu/burger-menu\"\nimport LogoMobile from \"../../../../../static/vectors/v3/keolis-logo-mobile.svg\"\nimport Globe from \"../../../../../static/vectors/v3/globe.svg\"\nimport Search from \"../../../../../static/vectors/v3/search.svg\"\n\ntype RenderProps = {\n data: V3HeaderFieldsFragment\n subsidiaryLogo: DatoCmsFileField\n currentRoute: string\n allSlugLocales: { locale: string; value: string }[]\n}\n\nconst Header: React.FC<RenderProps> = ({ data, subsidiaryLogo, currentRoute, allSlugLocales }) => {\n const { baseSlug } = useLocale()\n const { mapPageSlug, searchPageSlug } = useSlugs()\n const hasSeveralLanguages = config.locales.length > 1\n const isMedium = useIsMobile(1200)\n const [openedMenu, setOpenedMenu] = useState(\"\")\n const menuRef = useRef<HTMLDivElement>(null)\n\n const handleSubmenuClick = (e: React.MouseEvent<HTMLAnchorElement>, menuId: string) => {\n if (openedMenu === menuId) {\n setOpenedMenu(\"\")\n } else {\n setOpenedMenu(menuId)\n }\n e.preventDefault()\n }\n\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (menuRef.current && !menuRef.current.contains(event.target as Node)) {\n setOpenedMenu(\"\")\n }\n }\n\n document.addEventListener(\"click\", handleClickOutside)\n return () => {\n document.removeEventListener(\"click\", handleClickOutside)\n }\n }, [])\n\n return (\n <header className={styles.header} data-datocms-noindex={true} role=\"banner\">\n <div className={styles.logo}>\n <a href=\"/\">\n {!isMedium ? (\n <img src={subsidiaryLogo.url} alt={subsidiaryLogo.alt} />\n ) : (\n <ReactSVG src={LogoMobile} aria-hidden={true} />\n )}\n </a>\n </div>\n {!isMedium && (\n <nav className={styles.navMenu} role=\"navigation\" ref={menuRef}>\n <ul className={styles.menus}>\n {data.menus.map(menu => (\n <Menu menu={menu} onClick={handleSubmenuClick} isMenuOpened={openedMenu === menu.id} key={menu.id} />\n ))}\n </ul>\n </nav>\n )}\n <div className={styles.buttons}>\n {!isMedium && data.capsules.length > 0 && (\n <div className={styles.capsules}>\n {data.capsules.map(capsule => (\n <Capsule capsule={capsule} key={capsule.id} />\n ))}\n </div>\n )}\n {data.isMapIconDisplayed && (\n <a href={`${baseSlug}${mapPageSlug}`} className={styles.icon}>\n <ReactSVG src={Globe} className={styles.globeIcon} />\n </a>\n )}\n <a href={`${baseSlug}${searchPageSlug}`} className={styles.icon}>\n <ReactSVG src={Search} className={styles.searchIcon} />\n </a>\n {!isMedium ? (\n hasSeveralLanguages && <LanguageSelector currentRoute={currentRoute} allSlugLocales={allSlugLocales} />\n ) : (\n <BurgerMenu menus={data.menus} currentRoute={currentRoute} allSlugLocales={allSlugLocales} />\n )}\n </div>\n </header>\n )\n}\n\nexport const enableDidomi = () => {\n const head = document.getElementsByTagName(\"head\")\n const script = document.createElement(\"script\")\n\n script.type = \"text/javascript\"\n script.text =\n `window.gdprAppliesGlobally=true;(function(){function a(e){if(!window.frames[e]){if(document.body&&document.body.firstChild){var t=document.body;var n=document.createElement(\"iframe\");n.style.display=\"none\";n.name=e;n.title=e;t.insertBefore(n,t.firstChild)}\\n` +\n `else{setTimeout(function(){a(e)},5)}}}function e(n,r,o,c,s){function e(e,t,n,a){if(typeof n!==\"function\"){return}if(!window[r]){window[r]=[]}var i=false;if(s){i=s(e,t,n)}if(!i){window[r].push({command:e,parameter:t,callback:n,version:a})}}e.stub=true;function t(a){if(!window[n]||window[n].stub!==true){return}if(!a.data){return}\\n` +\n `var i=typeof a.data===\"string\";var e;try{e=i?JSON.parse(a.data):a.data}catch(t){return}if(e[o]){var r=e[o];window[n](r.command,r.parameter,function(e,t){var n={};n[c]={returnValue:e,success:t,callId:r.callId};a.source.postMessage(i?JSON.stringify(n):n,\"*\")},r.version)}}\\n` +\n `if(typeof window[n]!==\"function\"){window[n]=e;if(window.addEventListener){window.addEventListener(\"message\",t,false)}else{window.attachEvent(\"onmessage\",t)}}}e(\"__tcfapi\",\"__tcfapiBuffer\",\"__tcfapiCall\",\"__tcfapiReturn\");a(\"__tcfapiLocator\");(function(e){\\n` +\n `var t=document.createElement(\"script\");t.id=\"spcloader\";t.type=\"text/javascript\";t.async=true;t.src=\"https://sdk.privacy-center.org/\"+e+\"/loader.js?target=\"+document.location.hostname;t.charset=\"utf-8\";var n=document.getElementsByTagName(\"script\")[0];n.parentNode.insertBefore(t,n)})(\"${config.didomi_api_key}\")})();`\n\n head[0].prepend(script)\n}\n\nexport const enableGoogleAnalytics = () => (\n <script\n type=\"didomi/javascript\"\n data-vendor=\"c:googleana-4TXnJigR\"\n dangerouslySetInnerHTML={{\n __html: `(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){\n (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),\n m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)\n })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');\n ga('create', '${config.google_analytics_key}', 'auto');\n ga('send', 'pageview');`,\n }}\n />\n)\n\nexport const enableGoogleTagManagerHead = () => (\n <script\n dangerouslySetInnerHTML={{\n __html: `(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':\n new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],\n j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=\n 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);\n })(window,document,'script','dataLayer','${config.google_tag_manager_id}');`,\n }}\n />\n)\n\nexport const enableGoogleTagManagerBody = () => {\n const body = document.getElementsByTagName(\"body\")\n const noscript = document.createElement(\"noscript\")\n const iframe = document.createElement(\"iframe\")\n\n iframe.src = `https://www.googletagmanager.com/ns.html?id=${config.google_tag_manager_id}`\n iframe.height = \"0\"\n iframe.width = \"0\"\n iframe.setAttribute(\"style\", \"display:none;visibility:hidden\")\n\n noscript.appendChild(iframe)\n\n body[0].prepend(noscript)\n}\n\nexport const fragment = graphql`\n fragment V3HeaderFields on DatoCmsV3Header {\n id\n menus {\n ...V3MenuHeaderFields\n }\n capsules {\n ...V3CapsuleHeaderFields\n }\n isMapIconDisplayed\n searchLabel\n }\n`\n\nexport default Header\n","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHZpZXdCb3g9IjAgMCAxOCAxOCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3QgeD0iMiIgeT0iMiIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiByeD0iNyIgZmlsbD0iIzIwNDA1RiIvPgo8cGF0aCBkPSJNOS4wNDA5OSAxNS4zMDQxQzkuMjc1ODYgMTUuMzA0MSA5LjUwMDk0IDE1LjI5MDkgOS43MTYyNCAxNS4yNjQ0QzkuOTMxNTMgMTUuMjM3OSAxMC4xNTAxIDE1LjE5ODEgMTAuMzcxOSAxNS4xNDUxTDkuNDMyNDQgMTMuNzEzNUg2LjY5MjMxVjEyLjkxODJDNi42OTIzMSAxMi40ODA4IDYuODQ1NjIgMTIuMTA2MyA3LjE1MjI2IDExLjc5NDhDNy40NTg4OSAxMS40ODMzIDcuODI3NSAxMS4zMjc1IDguMjU4MSAxMS4zMjc1SDkuODIzODhWOC45NDE1N0g4LjI1ODFDOC4wMzYyNyA4Ljk0MTU3IDcuODUwMzQgOC44NjUzNiA3LjcwMDI4IDguNzEyOTJDNy41NTAyMyA4LjU2MDQ4IDcuNDc1MiA4LjM3MTU5IDcuNDc1MiA4LjE0NjI1VjYuNTU1NjFINy4xMjI5QzYuNzgzNjQgNi41NTU2MSA2LjQ5NjU4IDYuNDM5NjMgNi4yNjE3MSA2LjIwNzY2QzYuMDI2ODUgNS45NzU2OSA1LjkwOTQxIDUuNjg3MzggNS45MDk0MSA1LjM0Mjc0QzUuOTA5NDEgNS4yMjM0NSA1LjkyNTcyIDUuMTA0MTUgNS45NTgzNCA0Ljk4NDg1QzUuOTkwOTYgNC44NjU1NSA2LjAzOTg5IDQuNzUyODggNi4xMDUxMyA0LjY0Njg0TDcuMzE4NjIgMi44Mzc0OEM2LjAwMDc1IDMuMjIxODkgNC45MTQ0OCAzLjk3MDgxIDQuMDU5ODIgNS4wODQyNkMzLjIwNTE2IDYuMTk3NzIgMi43Nzc4MyA3LjQ4MzQ5IDIuNzc3ODMgOC45NDE1N0gzLjU2MDczVjguMTQ2MjVDMy41NjA3MyA3LjkyMDkxIDMuNjM1NzUgNy43MzIwMiAzLjc4NTgxIDcuNTc5NTlDMy45MzU4NiA3LjQyNzE1IDQuMTIxOCA3LjM1MDkzIDQuMzQzNjIgNy4zNTA5M0g1LjkwOTQxQzYuMTMxMjMgNy4zNTA5MyA2LjMxNzE3IDcuNDI3MTUgNi40NjcyMiA3LjU3OTU5QzYuNjE3MjggNy43MzIwMiA2LjY5MjMxIDcuOTIwOTEgNi42OTIzMSA4LjE0NjI1VjguOTQxNTdDNi42OTIzMSA5LjE2NjkyIDYuNjE3MjggOS4zNTU4MSA2LjQ2NzIyIDkuNTA4MjRDNi4zMTcxNyA5LjY2MDY4IDYuMTMxMjMgOS43MzY5IDUuOTA5NDEgOS43MzY5VjEwLjUzMjJDNS45MDk0MSAxMC45Njk2IDUuNzU2MDkgMTEuMzQ0MSA1LjQ0OTQ2IDExLjY1NTZDNS4xNDI4MyAxMS45NjcxIDQuNzc0MjEgMTIuMTIyOSA0LjM0MzYyIDEyLjEyMjlIMy42MTk0NEM0LjE2NzQ3IDEzLjA3NzIgNC45MTc3NCAxMy44NDYxIDUuODcwMjcgMTQuNDI5M0M2LjgyMjc5IDE1LjAxMjUgNy44Nzk3IDE1LjMwNDEgOS4wNDA5OSAxNS4zMDQxWk0xNC45OTEgMTAuODkwMUMxNS4wOTU0IDEwLjU4NTIgMTUuMTczNyAxMC4yNzA0IDE1LjIyNTkgOS45NDU2N0MxNS4yNzgxIDkuNjIwOTEgMTUuMzA0MSA5LjI4NjIxIDE1LjMwNDEgOC45NDE1N0MxNS4zMDQxIDcuNDU2OTcgMTQuODYwNSA2LjE0ODAxIDEzLjk3MzIgNS4wMTQ2N0MxMy4wODU5IDMuODgxMzQgMTEuOTYzOCAzLjEzNTczIDEwLjYwNjggMi43Nzc4M1Y0Ljk2NDk3QzExLjAzNzQgNC45NjQ5NyAxMS40MDYgNS4xMjA3MiAxMS43MTI2IDUuNDMyMjJDMTIuMDE5MyA1Ljc0MzcyIDEyLjE3MjYgNi4xMTgxOCAxMi4xNzI2IDYuNTU1NjFWOC4xNDYyNUMxMi40MjA1IDguMTQ2MjUgMTIuNjQyMyA4LjE3NjA4IDEyLjgzOCA4LjIzNTczQzEzLjAzMzggOC4yOTUzOCAxMy4yMjMgOC40MTc5OSAxMy40MDU2IDguNjAzNTZMMTQuOTkxIDEwLjg5MDFaIiBmaWxsPSJ3aGl0ZSIvPgo8Y2lyY2xlIGN4PSI5IiBjeT0iOSIgcj0iNi40MTY2NyIgc3Ryb2tlPSIjMjA0MDVGIiBzdHJva2Utd2lkdGg9IjEuMTY2NjciLz4KPC9zdmc+Cg==\"","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHZpZXdCb3g9IjAgMCAxOCAxOCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE1IDE1TDEyLjE2NjcgMTIuMTYxN00xMy43MzY4IDguMzY4NDJDMTMuNzM2OCA5Ljc5MjIxIDEzLjE3MTIgMTEuMTU3NyAxMi4xNjQ1IDEyLjE2NDVDMTEuMTU3NyAxMy4xNzEyIDkuNzkyMjEgMTMuNzM2OCA4LjM2ODQyIDEzLjczNjhDNi45NDQ2MyAxMy43MzY4IDUuNTc5MTUgMTMuMTcxMiA0LjU3MjM3IDEyLjE2NDVDMy41NjU2IDExLjE1NzcgMyA5Ljc5MjIxIDMgOC4zNjg0MkMzIDYuOTQ0NjMgMy41NjU2IDUuNTc5MTUgNC41NzIzNyA0LjU3MjM3QzUuNTc5MTUgMy41NjU2IDYuOTQ0NjMgMyA4LjM2ODQyIDNDOS43OTIyMSAzIDExLjE1NzcgMy41NjU2IDEyLjE2NDUgNC41NzIzN0MxMy4xNzEyIDUuNTc5MTUgMTMuNzM2OCA2Ljk0NDYzIDEzLjczNjggOC4zNjg0MlY4LjM2ODQyWiIgc3Ryb2tlPSIjMjA0MDVGIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+Cjwvc3ZnPgo=\"","// extracted by mini-css-extract-plugin\nexport var columns = \"footer-module--columns--c96e5\";\nexport var container = \"footer-module--container--23490\";\nexport var flexLogos = \"footer-module--flexLogos--fbf58\";\nexport var logoImg = \"footer-module--logoImg--574b1\";\nexport var logoLink = \"footer-module--logoLink--21dd8\";\nexport var separator = \"footer-module--separator--ce965\";","import React from \"react\"\nimport { graphql } from \"gatsby\"\nimport { SiteMapColumnsFieldsFragment } from \"../../../../../../graphql-types\"\nimport * as styles from \"./site-map-columns.module.scss\"\nimport { useSlugs } from \"../../../../context/slugs-context\"\n\ntype RenderProps = {\n columns: SiteMapColumnsFieldsFragment[]\n}\n\nconst SiteMapColumns: React.FC<RenderProps> = ({ columns }) => {\n const { getInternalExternalLink } = useSlugs()\n\n return columns.map((column, index) => (\n <div className={styles.column} key={column.title || index}>\n <span className={styles.title}>{column.title}</span>\n <ul>\n {column.redirectLinks.map(redirectLink => (\n <li key={redirectLink.id}>\n <a\n href={getInternalExternalLink(redirectLink)}\n target={redirectLink.isInternalPage ? \"_self\" : \"_blank\"}\n className={styles.redirectLink}\n >\n {redirectLink.title}\n </a>\n </li>\n ))}\n </ul>\n </div>\n ))\n}\n\nexport const fragment = graphql`\n fragment SiteMapColumnsFields on DatoCmsV3FooterSiteMapColumn {\n id\n title\n redirectLinks {\n ...InternalExternalLinkBlockFields\n }\n }\n`\n\nexport default SiteMapColumns\n","// extracted by mini-css-extract-plugin\nexport var column = \"site-map-columns-module--column--43614\";\nexport var redirectLink = \"site-map-columns-module--redirectLink--a2bab\";\nexport var title = \"site-map-columns-module--title--68157\";","import React from \"react\"\nimport { ReactSVG } from \"react-svg\"\nimport { graphql } from \"gatsby\"\nimport { SocialNetworksColumnFieldsFragment } from \"../../../../../../graphql-types\"\nimport * as styles from \"./social-networks-column.module.scss\"\n\ntype RenderProps = {\n title?: string\n column: SocialNetworksColumnFieldsFragment[]\n}\n\nconst SocialNetworksColumn: React.FC<RenderProps> = ({ title, column }) => (\n <div className={styles.column}>\n {title && <span className={styles.title}>{title}</span>}\n <ul className={styles.iconsContainer}>\n {column.map((item, index) => (\n <li key={item.socialMediaLink || index}>\n <a href={item.socialMediaLink} target=\"_blank\">\n <ReactSVG\n src={item.socialMediaLogo.url}\n className={styles.pictogram}\n beforeInjection={svg => svg.setAttribute(\"alt\", item.socialMediaLogo.alt || \"\")}\n />\n </a>\n </li>\n ))}\n </ul>\n </div>\n)\n\nexport const fragment = graphql`\n fragment SocialNetworksColumnFields on DatoCmsV3FooterSocialNetworkColumn {\n id\n socialMediaLink\n socialMediaLogo {\n alt\n url\n }\n }\n`\n\nexport default SocialNetworksColumn\n","// extracted by mini-css-extract-plugin\nexport var column = \"social-networks-column-module--column--85870\";\nexport var iconsContainer = \"social-networks-column-module--iconsContainer--566b7\";\nexport var pictogram = \"social-networks-column-module--pictogram--064e3\";\nexport var title = \"social-networks-column-module--title--357cf\";","// extracted by mini-css-extract-plugin\nexport var column = \"legal-documents-column-module--column--0b706\";\nexport var didomiButton = \"legal-documents-column-module--didomiButton--6b017\";\nexport var link = \"legal-documents-column-module--link--312f9\";","import React from \"react\"\nimport { graphql } from \"gatsby\"\nimport { LegalDocumentsColumnFieldsFragment } from \"../../../../../../graphql-types\"\nimport * as styles from \"./legal-documents-column.module.scss\"\nimport { useSlugs } from \"../../../../context/slugs-context\"\n\ndeclare global {\n interface Window {\n Didomi?: {\n preferences?: {\n show?: () => void\n }\n }\n }\n}\n\ntype RenderProps = {\n column: LegalDocumentsColumnFieldsFragment[]\n}\n\nconst triggerDidomiPreferences = () => {\n if (window.Didomi?.preferences?.show) {\n window.Didomi.preferences.show()\n } else {\n console.warn(\"Didomi n'est pas disponible dans le contexte global.\")\n }\n}\n\nconst LegalDocumentsColumn: React.FC<RenderProps> = ({ column }) => {\n const { getInternalExternalLink } = useSlugs()\n\n return (\n <ul className={styles.column}>\n {column.map((item, index) => (\n <li key={item.__typename + \" \" + index}>\n {item.__typename === \"DatoCmsInternalExternalLinkBlock\" ? (\n <a href={getInternalExternalLink(item)} className={styles.link}>\n {item.title}\n </a>\n ) : (\n <button\n onClick={e => {\n e.preventDefault()\n triggerDidomiPreferences()\n }}\n className={styles.link + \" \" + styles.didomiButton}\n >\n {item.footerLabel}\n </button>\n )}\n </li>\n ))}\n </ul>\n )\n}\n\nexport const fragment = graphql`\n fragment LegalDocumentsColumnFields on DatoCmsUnionForDatoCmsFooterLegalDocumentsColumn {\n __typename\n ... on DatoCmsV3BannerDidomi {\n footerLabel\n }\n ... on DatoCmsInternalExternalLinkBlock {\n ...InternalExternalLinkBlockFields\n }\n }\n`\n\nexport default LegalDocumentsColumn\n","import React from \"react\"\nimport { ReactSVG } from \"react-svg\"\nimport { graphql } from \"gatsby\"\nimport { FooterFieldsFragment } from \"../../../../../graphql-types\"\nimport * as styles from \"./footer.module.scss\"\nimport { useSlugs } from \"../../../context/slugs-context\"\nimport { useIsMobile } from \"../../../hooks\"\nimport SiteMapColumns from \"./site-map-columns/site-map-columns\"\nimport SocialNetworksColumn from \"./social-networks-column/social-networks-column\"\nimport LegalDocumentsColumn from \"./legal-documents-column/legal-documents-column\"\nimport LogoMobile from \"../../../../../static/vectors/v3/keolis-logo-mobile.svg\"\n\ntype RenderProps = {\n data: FooterFieldsFragment\n}\n\nconst Footer: React.FC<RenderProps> = ({ data }) => {\n const { homeLink } = useSlugs()\n const isMobile = useIsMobile()\n\n return !isMobile ? (\n <footer data-datocms-noindex={true} role=\"contentinfo\">\n <div className={styles.container}>\n <a href={homeLink} className={styles.logoLink}>\n <img src={data.logo.url} alt={data.logo.alt} className={styles.logoImg} />\n </a>\n <div className={styles.columns}>\n <SiteMapColumns columns={data.siteMapColumns} />\n <SocialNetworksColumn title={data.socialNetworksColumnTitle} column={data.socialNetworksColumn} />\n </div>\n </div>\n <div className={styles.separator}></div>\n <LegalDocumentsColumn column={data.legalDocumentsColumn} />\n </footer>\n ) : (\n <footer data-datocms-noindex={true} role=\"contentinfo\">\n <div className={styles.container}>\n <div className={styles.flexLogos}>\n <a href={homeLink} className={styles.logoLink}>\n {data.logoMobile ? (\n <img src={data.logoMobile.url} alt={data.logoMobile.alt} className={styles.logoImg} />\n ) : (\n <ReactSVG src={LogoMobile} className={styles.logoImg} aria-hidden={true} />\n )}\n </a>\n <SocialNetworksColumn column={data.socialNetworksColumn} />\n </div>\n </div>\n <LegalDocumentsColumn column={data.legalDocumentsColumn} />\n </footer>\n )\n}\n\nexport const fragment = graphql`\n fragment FooterFields on DatoCmsFooter {\n id\n logo {\n alt\n url\n }\n logoMobile {\n alt\n url\n }\n siteMapColumns {\n ...SiteMapColumnsFields\n }\n socialNetworksColumnTitle\n socialNetworksColumn {\n ...SocialNetworksColumnFields\n }\n legalDocumentsColumn {\n ...LegalDocumentsColumnFields\n }\n }\n`\n\nexport default Footer\n","import React, { useEffect, useState } from \"react\"\nimport { ReactSVG } from \"react-svg\"\nimport { graphql } from \"gatsby\"\nimport { V3ContactButtonFieldsFragment } from \"../../../../../graphql-types\"\nimport * as styles from \"./button-sticky.module.scss\"\nimport { useSlugs } from \"../../../context/slugs-context\"\n\ntype RenderProps = {\n data: V3ContactButtonFieldsFragment\n}\n\nconst ButtonSticky: React.FC<RenderProps> = ({ data }) => {\n const { getInternalExternalLink } = useSlugs()\n const [isOpened, setIsOpened] = useState(false)\n\n useEffect(() => {\n const handleKeyDown = e => {}\n\n window.addEventListener(\"keydown\", handleKeyDown)\n\n return () => {\n window.removeEventListener(\"keydown\", handleKeyDown)\n }\n }, [])\n\n return (\n <a\n href={getInternalExternalLink(data.redirectLink)}\n target={data.redirectLink.isInternalPage ? \"_self\" : \"_blank\"}\n className={isOpened ? styles.opened : styles.closed}\n style={{ \"--button-color\": data.buttonColor.hex, \"--label-color\": data.labelColor.hex } as React.CSSProperties}\n onMouseEnter={() => setIsOpened(true)}\n onMouseLeave={() => setIsOpened(false)}\n >\n <span className={styles.title}>{data.redirectLink.title}</span>\n <ReactSVG src={data.icon.url} className={styles.icon} />\n </a>\n )\n}\n\nexport const fragment = graphql`\n fragment V3ContactButtonFields on DatoCmsV3ContactButton {\n id\n isEnabled\n redirectLink {\n ...InternalExternalLinkBlockFields\n }\n buttonColor {\n hex\n }\n labelColor {\n hex\n }\n icon {\n alt\n format\n url\n }\n }\n`\n\nexport default ButtonSticky\n","// extracted by mini-css-extract-plugin\nexport var closed = \"button-sticky-module--closed--36375\";\nexport var icon = \"button-sticky-module--icon--7389f\";\nexport var opened = \"button-sticky-module--opened--a8ede\";\nexport var title = \"button-sticky-module--title--f348a\";","import React, { useEffect } from \"react\"\nimport TagManager from \"react-gtm-module\"\nimport {\n DatoCmsFileField,\n DatoCmsSlugsConfiguration,\n FooterFieldsFragment,\n V3ContactButtonFieldsFragment,\n V3HeaderFieldsFragment,\n} from \"../../../../graphql-types\"\nimport * as config from \"../../../../config\"\nimport { LocaleProvider } from \"../../context/locale-context\"\nimport { SlugsProvider } from \"../../context/slugs-context\"\nimport Header, { enableDidomi, enableGoogleTagManagerBody } from \"./header/header\"\nimport Footer from \"./footer/footer\"\nimport ButtonSticky from \"./button-sticky/button-sticky\"\n\ntype RenderProps = {\n children?: React.ReactNode\n pageContext: {\n locale: string\n defaultLocale: string\n slugs: DatoCmsSlugsConfiguration\n }\n location: Location\n header: V3HeaderFieldsFragment\n footer: FooterFieldsFragment\n subsidiaryLogo: DatoCmsFileField\n contactButton: V3ContactButtonFieldsFragment\n currentRoute: string\n pageTemplate: string\n allSlugLocales?: { locale: string; value: string }[]\n}\n\nconst Layout: React.FC<RenderProps> = ({\n children,\n location,\n pageContext,\n header,\n footer,\n subsidiaryLogo,\n contactButton,\n currentRoute,\n pageTemplate,\n allSlugLocales,\n}) => {\n useEffect(() => {\n enableDidomi()\n if (config.google_tag_manager_id) {\n enableGoogleTagManagerBody()\n TagManager.initialize({ gtmId: config.google_tag_manager_id })\n TagManager.dataLayer({\n dataLayer: { environment: process.env.NODE_ENV, language: pageContext.locale, pageTemplate },\n })\n }\n }, [])\n\n return (\n <LocaleProvider locale={pageContext.locale} defaultLocale={pageContext.defaultLocale}>\n <SlugsProvider slugs={pageContext.slugs}>\n <Header\n data={header}\n subsidiaryLogo={subsidiaryLogo}\n currentRoute={currentRoute}\n allSlugLocales={allSlugLocales}\n />\n <main id=\"main\" role=\"main\" tabIndex={-1}>\n {children}\n {contactButton?.isEnabled && <ButtonSticky data={contactButton} />}\n </main>\n <Footer data={footer} />\n </SlugsProvider>\n </LocaleProvider>\n )\n}\n\nexport default Layout\n","import React, { createContext, useContext } from \"react\"\nimport { useFormatLocale } from \"../hooks\"\n\ntype LocaleProviderProps = {\n children: React.ReactNode\n locale: string\n defaultLocale: string\n}\n\ntype LocaleContextData = {\n locale: string\n defaultLocale: string\n baseSlug: string\n}\n\nconst LocaleContext = createContext<LocaleContextData | undefined>(undefined)\n\nexport const useLocale = () => {\n const context = useContext(LocaleContext)\n\n if (!context) {\n throw new Error(\"useLocale must be used inside LocaleProvider\")\n }\n\n return context\n}\n\nexport const LocaleProvider: React.FC<LocaleProviderProps> = ({ children, locale, defaultLocale }) => {\n const localeFormatted = useFormatLocale(locale)\n const defaultLocaleFormatted = useFormatLocale(defaultLocale)\n const baseSlug = locale === defaultLocale ? \"/\" : `/${locale}/`\n\n return (\n <LocaleContext.Provider value={{ locale: localeFormatted, defaultLocale: defaultLocaleFormatted, baseSlug }}>\n {children}\n </LocaleContext.Provider>\n )\n}\n","import React, { createContext, useContext } from \"react\"\nimport { graphql } from \"gatsby\"\nimport { DatoCmsSlugsConfiguration, InternalExternalLinkBlockFieldsFragment } from \"../../../graphql-types\"\nimport { useLocale } from \"./locale-context\"\n\ntype SlugsProviderProps = {\n children: React.ReactNode\n slugs: DatoCmsSlugsConfiguration\n}\n\ntype SlugsContextData = {\n slugs: DatoCmsSlugsConfiguration\n homeLink: string\n pulsePageSlug: string\n newsroomPageSlug: string\n pressReleasesPageSlug: string\n newsPageSlug: string\n publicationsPageSlug: string\n contactPageSlug: string\n governanceMembersPageSlug: string\n parentPageSlug: string\n detailNetworkPageSlug: string\n mapPageSlug: string\n searchPageSlug: string\n buildInternalLink: (internalLink: InternalLink) => string\n getInternalExternalLink: (link: InternalExternalLinkBlockFieldsFragment) => string\n}\n\ntype InternalLink = {\n __typename: string\n slug?: string\n}\n\nconst SlugsContext = createContext<SlugsContextData | undefined>(undefined)\n\nexport const useSlugs = () => {\n const context = useContext(SlugsContext)\n\n if (!context) {\n throw new Error(\"useSlugs must be used inside SlugsProvider\")\n }\n\n return context\n}\n\nexport const SlugsProvider: React.FC<SlugsProviderProps> = ({ children, slugs }) => {\n const { locale, defaultLocale } = useLocale()\n\n const homeLink = locale === defaultLocale ? `/` : `/${locale}`\n const pulsePageSlug = slugs._allPulseHomePageSlugLocales?.find(slug => slug.locale === locale)?.value || \"\"\n const newsroomPageSlug = slugs._allNewsroomPageSlugLocales?.find(slug => slug.locale === locale)?.value || \"\"\n const pressReleasesPageSlug =\n slugs._allPressReleasesPageSlugLocales?.find(slug => slug.locale === locale)?.value || \"\"\n const newsPageSlug = slugs._allNewsPageSlugLocales?.find(slug => slug.locale === locale)?.value || \"\"\n const publicationsPageSlug = slugs._allPublicationsPageSlugLocales?.find(slug => slug.locale === locale)?.value || \"\"\n const contactPageSlug = slugs._allContactPageSlugLocales?.find(slug => slug.locale === locale)?.value || \"\"\n const governanceMembersPageSlug =\n slugs._allGovernanceMembersPageSlugLocales?.find(slug => slug.locale === locale)?.value || \"\"\n const parentPageSlug = slugs._allPageParentSlugLocales?.find(slug => slug.locale === locale)?.value || \"\"\n const detailNetworkPageSlug = slugs._allDetailNetworkSlugLocales?.find(slug => slug.locale === locale)?.value || \"\"\n const mapPageSlug = slugs._allMapPageSlugLocales?.find(slug => slug.locale === locale)?.value || \"\"\n const searchPageSlug = slugs._allSearchPageSlugLocales?.find(slug => slug.locale === locale)?.value || \"\"\n\n const buildInternalLink = (internalLink: InternalLink) => {\n if (!internalLink) return null\n\n switch (internalLink.__typename) {\n case \"DatoCmsHomePage\":\n return homeLink\n case \"DatoCmsPage\":\n case \"DatoCmsGeneratedPage\":\n return locale === defaultLocale ? `/${internalLink.slug}` : `/${locale}/${internalLink.slug}`\n case \"DatoCmsNews\":\n return locale === defaultLocale\n ? `/${newsroomPageSlug}/${newsPageSlug}/${internalLink.slug}`\n : `/${locale}/${newsroomPageSlug}/${newsPageSlug}/${internalLink.slug}`\n case \"DatoCmsPressRelease\":\n return locale === defaultLocale\n ? `/${newsroomPageSlug}/${pressReleasesPageSlug}/${internalLink.slug}`\n : `/${locale}/${newsroomPageSlug}/${pressReleasesPageSlug}/${internalLink.slug}`\n case \"DatoCmsParentPage\":\n return locale === defaultLocale\n ? `/${parentPageSlug}/${internalLink.slug}`\n : `/${locale}/${parentPageSlug}/${internalLink.slug}`\n case \"DatoCmsThematicPulse\":\n return locale === defaultLocale\n ? `/${pulsePageSlug}/${internalLink.slug}`\n : `/${locale}/${pulsePageSlug}/${internalLink.slug}`\n case \"DatoCmsGovernanceMember\":\n return locale === defaultLocale\n ? `/${governanceMembersPageSlug}/${internalLink.slug}`\n : `/${locale}/${governanceMembersPageSlug}/${internalLink.slug}`\n }\n }\n\n const getInternalExternalLink = (link: InternalExternalLinkBlockFieldsFragment) => {\n if (link.isInternalPage) {\n return buildInternalLink(link.internalLink as InternalLink)\n } else if (link.externalLink) {\n return link.externalLink\n }\n return \"/\"\n }\n\n return (\n <SlugsContext.Provider\n value={{\n slugs,\n homeLink,\n pulsePageSlug,\n newsroomPageSlug,\n pressReleasesPageSlug,\n newsPageSlug,\n publicationsPageSlug,\n contactPageSlug,\n governanceMembersPageSlug,\n parentPageSlug,\n detailNetworkPageSlug,\n mapPageSlug,\n searchPageSlug,\n buildInternalLink,\n getInternalExternalLink,\n }}\n >\n {children}\n </SlugsContext.Provider>\n )\n}\n//\nexport const fragment = graphql`\n fragment InternalExternalLinkBlockFields on DatoCmsInternalExternalLinkBlock {\n id\n title\n isInternalPage\n externalLink\n internalLink {\n __typename\n ... on DatoCmsPage {\n slug\n }\n ... on DatoCmsNews {\n slug\n }\n ... on DatoCmsPressRelease {\n slug\n }\n ... on DatoCmsParentPage {\n slug\n }\n ... on DatoCmsThematicPulse {\n slug\n }\n ... on DatoCmsGeneratedPage {\n slug\n }\n }\n }\n`\n","// format locale from DatoCMS like \"ar-AE\" to an expected format \"ae-ar\"\n\nexport const useFormatLocale = (locale: string) => locale.toLowerCase().split(\"-\").reverse().join(\"-\")\n","import { useWindowSize } from \"usehooks-ts\"\n\nexport const useIsMobile = (windowWidth = 660) => {\n const { width } = useWindowSize()\n\n return width <= windowWidth\n}\n","export const useSlugValue = (allSlugs, locale) => {\n const filteredSlug = allSlugs.filter(slug => slug.locale === locale)\n\n if (filteredSlug.length > 0) {\n return filteredSlug[0].value\n }\n return \"\"\n}\n","/**\n * SEO component that queries for data with\n * Gatsby's useStaticQuery React hook\n *\n * See: https://www.gatsbyjs.com/docs/use-static-query/\n */\n\nimport React from \"react\"\nimport { graphql, useStaticQuery } from \"gatsby\"\nimport * as config from \"../../../../config\"\nimport PropTypes from \"prop-types\"\nimport { enableGoogleAnalytics, enableGoogleTagManagerHead } from \"../layout/header/header\"\n\nconst SEO = ({ title, description, locale, noindex }) => {\n const { datoCmsSite } = useStaticQuery(graphql`\n query {\n datoCmsSite {\n faviconMetaTags {\n tags\n }\n globalSeo {\n fallbackSeo {\n description\n title\n }\n siteName\n }\n }\n }\n `)\n const metaDescription = description || datoCmsSite.globalSeo.fallbackSeo.description\n const defaultTitle = datoCmsSite.globalSeo.siteName || datoCmsSite.globalSeo.fallbackSeo.title\n const formattedTitle = defaultTitle ? `${config.site_name} | ${defaultTitle}` : config.site_name\n const titleDisplayed = title || formattedTitle\n const isRtl = locale.endsWith(\"-ar\")\n\n return (\n <>\n {isRtl ? <html lang={locale} dir={\"rtl\"} /> : <html lang={locale} />}\n <title>{titleDisplayed}</title>\n <meta name=\"description\" content={metaDescription} />\n <meta property=\"og:title\" content={titleDisplayed} />\n <meta property=\"og:description\" content={metaDescription} />\n <meta property=\"og:type\" content=\"website\" />\n <meta name=\"twitter:card\" content=\"summary\" />\n <meta name=\"twitter:creator\" content=\"twitter\" />\n <meta name=\"twitter:title\" content={titleDisplayed} />\n <meta name=\"twitter:description\" content={metaDescription} />\n <meta name=\"robots\" content={noindex ? \"noindex\" : \"index\"} />\n\n {datoCmsSite?.faviconMetaTags?.tags?.map((tags, index) => {\n return tags.tagName === \"link\" ? (\n <link\n key={`${tags.attributes.href} ${tags.attributes.rel} ${index} `}\n rel={tags.attributes.rel || \"\"}\n sizes={tags.attributes.sizes || \"\"}\n type={tags.attributes.type || \"\"}\n href={tags.attributes.href || \"\"}\n />\n ) : (\n <meta\n key={`${tags.attributes.href} ${tags.attributes.rel} ${index} `}\n name={tags.attributes.name || \"\"}\n content={tags.attributes.content || \"\"}\n />\n )\n })}\n\n {config.google_analytics_key && enableGoogleAnalytics()}\n {config.google_tag_manager_id && enableGoogleTagManagerHead()}\n </>\n )\n}\nSEO.propTypes = {\n title: PropTypes.string,\n description: PropTypes.string,\n locale: PropTypes.string.isRequired,\n noindex: PropTypes.bool,\n}\n\nexport default SEO\n","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzYiIGhlaWdodD0iMjkiIHZpZXdCb3g9IjAgMCAzNiAyOSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTUuMDUyNjMgMS4xNDkwNUgwVjI3LjU2NTVINS4wNTI2M1YxLjE0OTA1WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTEyLjIzOSAxMy4wODYyTDM1LjQ4MTEgNS4xMjgxMkwzMy43OTY5IDAuMzc1MzY2TDEwLjU1NDggOC42NjUwNkM4LjE5NjkxIDkuNjU5ODIgNi41MTI3IDExLjc1OTkgNi41MTI3IDE0LjMwMjFDNi41MTI3IDE2Ljg0NDIgOC4xOTY5MSAxOS4wNTQ4IDEwLjU1NDggMTkuOTM5TDMzLjc5NjkgMjguMjI4N0wzNS40ODExIDIzLjQ3NkwxMi4yMzkgMTUuNDA3M0MxMS43ODk5IDE1LjE4NjMgMTEuNTY1MyAxNC43NDQyIDExLjU2NTMgMTQuMTkxNUMxMS41NjUzIDEzLjYzODkgMTEuNzg5OSAxMy4zMDczIDEyLjIzOSAxMy4wODYyWiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==\""],"names":["fr","require","module","exports","Object","assign","dateFnsLocale","HrefLangLinks","_ref","defaultDomain","locales","defaultLocale","slugs","manualSlugs","config","React","map","locale","path","endsWith","basePath","startsWith","substring","slug","useSlugValue","join","generatePath","Fragment","key","rel","hrefLang","href","icon","spanAnimated","submenuTitle","submenus","_onClick","onClick","buildInternalLink","useSlugs","className","submenu","index","containsMultipleLinks","id","styles","title","ReactSVG","src","RightArrow","uniqueLink","links","link","isInternalPage","internalLink","externalLink","menu","isMenuOpened","_React$useState","indexSubmenu","setIndexSubmenu","e","Submenus","Details","multipleLinks","capsule","getInternalExternalLink","style","color","hex","redirectLink","countryLabel","currentRoute","allSlugLocales","_ref$displayOnTop","displayOnTop","_useLocale","useLocale","otherLocales","otherLocale","useFormatLocale","filter","localeLink","routeArray","split","relatedSlug","forEach","route","Array","isArray","value","length","slugByLocale","slice","articleSlug","useChangeLanguage","submenuLink","_useState","useState","active","setActive","_useState2","height","setHeight","accordionContent","useRef","tabIndex","current","scrollHeight","ref","maxHeight","_submenu$multipleLink","AccordionArrow","menus","setIsMenuOpened","hasSeveralLanguages","role","Hamburger","label","hideOutline","size","toggled","toggle","distance","rounded","Accordion","LanguageSelector","enableDidomi","head","document","getElementsByTagName","script","createElement","type","text","didomi_api_key","prepend","enableGoogleAnalytics","dangerouslySetInnerHTML","__html","google_analytics_key","enableGoogleTagManagerHead","google_tag_manager_id","enableGoogleTagManagerBody","body","noscript","iframe","width","setAttribute","appendChild","data","subsidiaryLogo","baseSlug","_useSlugs","mapPageSlug","searchPageSlug","isMedium","useIsMobile","openedMenu","setOpenedMenu","menuRef","handleSubmenuClick","menuId","preventDefault","useEffect","handleClickOutside","event","contains","target","addEventListener","removeEventListener","LogoMobile","url","alt","Menu","capsules","Capsule","isMapIconDisplayed","BurgerMenu","container","logoImg","logoLink","columns","column","redirectLinks","item","socialMediaLink","socialMediaLogo","beforeInjection","svg","__typename","_window$Didomi","_window$Didomi$prefer","window","Didomi","preferences","show","console","warn","footerLabel","homeLink","logoMobile","SocialNetworksColumn","socialNetworksColumn","LegalDocumentsColumn","legalDocumentsColumn","logo","SiteMapColumns","siteMapColumns","socialNetworksColumnTitle","isOpened","setIsOpened","handleKeyDown","buttonColor","labelColor","onMouseEnter","onMouseLeave","children","pageContext","location","header","footer","contactButton","pageTemplate","TagManager","gtmId","dataLayer","environment","process","language","LocaleProvider","SlugsProvider","Header","isEnabled","ButtonSticky","Footer","LocaleContext","createContext","undefined","context","useContext","Error","localeFormatted","defaultLocaleFormatted","Provider","SlugsContext","_slugs$_allPulseHomeP","_slugs$_allPulseHomeP2","_slugs$_allNewsroomPa","_slugs$_allNewsroomPa2","_slugs$_allPressRelea","_slugs$_allPressRelea2","_slugs$_allNewsPageSl","_slugs$_allNewsPageSl2","_slugs$_allPublicatio","_slugs$_allPublicatio2","_slugs$_allContactPag","_slugs$_allContactPag2","_slugs$_allGovernance","_slugs$_allGovernance2","_slugs$_allPageParent","_slugs$_allPageParent2","_slugs$_allDetailNetw","_slugs$_allDetailNetw2","_slugs$_allMapPageSlu","_slugs$_allMapPageSlu2","_slugs$_allSearchPage","_slugs$_allSearchPage2","pulsePageSlug","_allPulseHomePageSlugLocales","find","newsroomPageSlug","_allNewsroomPageSlugLocales","pressReleasesPageSlug","_allPressReleasesPageSlugLocales","newsPageSlug","_allNewsPageSlugLocales","publicationsPageSlug","_allPublicationsPageSlugLocales","contactPageSlug","_allContactPageSlugLocales","governanceMembersPageSlug","_allGovernanceMembersPageSlugLocales","parentPageSlug","_allPageParentSlugLocales","detailNetworkPageSlug","_allDetailNetworkSlugLocales","_allMapPageSlugLocales","_allSearchPageSlugLocales","toLowerCase","reverse","windowWidth","useWindowSize","allSlugs","filteredSlug","_datoCmsSite$faviconM","_datoCmsSite$faviconM2","description","noindex","datoCmsSite","useStaticQuery","metaDescription","globalSeo","fallbackSeo","defaultTitle","siteName","formattedTitle","titleDisplayed","isRtl","lang","dir","name","content","property","faviconMetaTags","tags","tagName","attributes","sizes"],"sourceRoot":""}