{"version":3,"file":"675-03a6a0edf765573dc6b3.js","mappings":"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","sources":["webpack://keolis.com/./src/v3/components/breadcrumb/breadcrumb.module.scss","webpack://keolis.com/./src/v3/components/breadcrumb/breadcrumb.tsx","webpack://keolis.com/./src/v3/components/display-image/display-image.tsx","webpack://keolis.com/./src/v3/components/highlight/card/card.tsx","webpack://keolis.com/./src/v3/components/highlight/card/card.module.scss","webpack://keolis.com/./src/v3/components/highlight/highlight.tsx","webpack://keolis.com/./src/v3/components/highlight/highlight.module.scss","webpack://keolis.com/./src/v3/components/home/recruitment/carousel/carousel.tsx","webpack://keolis.com/./src/v3/components/home/recruitment/carousel/carousel.module.scss","webpack://keolis.com/./src/v3/components/home/recruitment/recruitment.tsx","webpack://keolis.com/./src/v3/components/home/recruitment/recruitment.module.scss","webpack://keolis.com/./src/v3/components/home/thematic/thematic.tsx","webpack://keolis.com/./src/v3/components/home/thematic/thematic.module.scss","webpack://keolis.com/./src/v3/components/key-figures/key-figures.module.scss","webpack://keolis.com/./src/v3/components/key-figures/key-figures.tsx","webpack://keolis.com/./src/v3/components/rich-dato-cms-content/iframe/iframe.tsx","webpack://keolis.com/./src/v3/components/rich-dato-cms-content/iframe/iframe.module.scss","webpack://keolis.com/./src/v3/components/rich-dato-cms-content/presentation/presentation.module.scss","webpack://keolis.com/./src/v3/components/rich-dato-cms-content/presentation/presentation.tsx","webpack://keolis.com/./src/v3/components/rich-dato-cms-content/biographic-card/horizontal/biographic-card-horizontal.module.scss","webpack://keolis.com/./src/v3/components/rich-dato-cms-content/biographic-card/horizontal/biographic-card-horizontal.tsx","webpack://keolis.com/./static/vectors/carousel_right_arrow.svg","webpack://keolis.com/./src/v3/components/rich-dato-cms-content/button/button.module.scss","webpack://keolis.com/./static/vectors/map_right_arrow.svg","webpack://keolis.com/./src/v3/components/rich-dato-cms-content/button/button.tsx","webpack://keolis.com/./static/vectors/external_link.svg","webpack://keolis.com/./src/v3/components/image/image.module.scss","webpack://keolis.com/./src/v3/components/image/image.tsx","webpack://keolis.com/./src/v3/components/rich-dato-cms-content/key-numbers/key-numbers.module.scss","webpack://keolis.com/./src/v3/components/rich-dato-cms-content/key-numbers/key-numbers.tsx","webpack://keolis.com/./src/v3/components/rich-dato-cms-content/network-contact/network-contact.module.scss","webpack://keolis.com/./src/v3/components/rich-dato-cms-content/network-contact/network-contact.tsx","webpack://keolis.com/./static/vectors/facebook_hovered.svg","webpack://keolis.com/./static/vectors/twitter_hovered.svg","webpack://keolis.com/./static/vectors/linkedin_hovered.svg","webpack://keolis.com/./static/vectors/instagram_hovered.svg","webpack://keolis.com/./src/v3/components/rich-dato-cms-content/outlined-text-block/outlined-text-block.module.scss","webpack://keolis.com/./src/v3/components/rich-dato-cms-content/outlined-text-block/outlined-text-block.tsx","webpack://keolis.com/./static/images/icon-linkedin.svg","webpack://keolis.com/./static/images/icon-twitter.svg","webpack://keolis.com/./static/vectors/user_journey_button_arrow.svg","webpack://keolis.com/./src/v3/components/rich-dato-cms-content/related-content/external-block/external-block.tsx","webpack://keolis.com/./src/v3/components/rich-dato-cms-content/related-content/external-block/external-block.module.scss","webpack://keolis.com/./src/v3/components/rich-dato-cms-content/related-content/internal-block/internal-block.tsx","webpack://keolis.com/./src/v3/components/rich-dato-cms-content/related-content/internal-block/internal-block.module.scss","webpack://keolis.com/./src/v3/components/rich-dato-cms-content/related-content/related-content.tsx","webpack://keolis.com/./src/v3/components/rich-dato-cms-content/related-content/related-content.module.scss","webpack://keolis.com/./src/v3/components/rich-dato-cms-content/slider/slider.module.scss","webpack://keolis.com/./src/v3/components/rich-dato-cms-content/slider/slider.tsx","webpack://keolis.com/./static/vectors/map_left_arrow.svg","webpack://keolis.com/./src/v3/components/rich-dato-cms-content/structured-text-content/structured-text-content.tsx","webpack://keolis.com/./src/v3/components/rich-dato-cms-content/structured-text-content/structured-text-content.module.scss","webpack://keolis.com/./src/v3/components/rich-dato-cms-content/transport-mode/transport-mode.module.scss","webpack://keolis.com/./src/v3/components/rich-dato-cms-content/transport-mode/transport-mode.tsx","webpack://keolis.com/./src/v3/components/rich-dato-cms-content/video/video.tsx","webpack://keolis.com/./src/v3/components/rich-dato-cms-content/video/video.module.scss","webpack://keolis.com/./src/v3/components/rich-dato-cms-content/quote/quote.tsx","webpack://keolis.com/./src/v3/components/rich-dato-cms-content/quote/quote.module.scss","webpack://keolis.com/./src/v3/components/rich-dato-cms-content/partners/partners.tsx","webpack://keolis.com/./src/v3/components/rich-dato-cms-content/partners/partners.module.scss","webpack://keolis.com/./src/v3/components/rich-dato-cms-content/partners/large-partners.module.scss","webpack://keolis.com/./src/v3/components/rich-dato-cms-content/partners/large-partners.tsx","webpack://keolis.com/./src/v3/components/rich-dato-cms-content/structured-text-content/v3-structured-text-content.tsx","webpack://keolis.com/./src/v3/components/rich-dato-cms-content/structured-text-content/v3-structured-text-content.module.scss","webpack://keolis.com/./src/v3/components/rich-dato-cms-content/v3-video/v3-video.tsx","webpack://keolis.com/./src/v3/components/rich-dato-cms-content/v3-video/v3-video.module.scss","webpack://keolis.com/./src/v3/components/rich-dato-cms-content/v3-image/v3-image.tsx","webpack://keolis.com/./src/v3/components/rich-dato-cms-content/v3-image/v3-image.module.scss","webpack://keolis.com/./src/v3/components/rich-dato-cms-content/v3-diaporama/v3-diaporama.tsx","webpack://keolis.com/./src/v3/components/rich-dato-cms-content/v3-diaporama/v3-diaporama.module.scss","webpack://keolis.com/./src/v3/components/rich-dato-cms-content/biographic-card/vertical/v3-biographic-card-vertical.tsx","webpack://keolis.com/./src/v3/components/rich-dato-cms-content/biographic-card/vertical/v3-biographic-card-vertical.module.scss","webpack://keolis.com/./src/v3/components/rich-dato-cms-content/v3-block-to-pdf/v3-block-to-pdf.tsx","webpack://keolis.com/./src/v3/components/rich-dato-cms-content/v3-block-to-pdf/v3-block-to-pdf.module.scss","webpack://keolis.com/./src/v3/components/rich-dato-cms-content/v3-text-carousel/v3-text-carousel.tsx","webpack://keolis.com/./src/v3/components/rich-dato-cms-content/v3-text-carousel/v3-text-carousel.module.scss","webpack://keolis.com/./src/v3/components/rich-dato-cms-content/v3-useful-infos/v3-useful-infos.tsx","webpack://keolis.com/./src/v3/components/rich-dato-cms-content/v3-useful-infos/v3-useful-infos.module.scss","webpack://keolis.com/./src/v3/components/rich-dato-cms-content/rich_dato_cms_content.tsx","webpack://keolis.com/./src/v3/components/rich-dato-cms-content/rich_dato_cms_content.module.scss","webpack://keolis.com/./src/v3/components/rich-dato-cms-content/simple-text/simple-text.module.scss","webpack://keolis.com/./src/v3/components/rich-dato-cms-content/simple-text/simple-text.tsx","webpack://keolis.com/./src/v3/components/tools/filter-bar/capsule/capsule.tsx","webpack://keolis.com/./src/v3/components/tools/filter-bar/capsule/capsule.module.scss","webpack://keolis.com/./src/v3/components/tools/scroll-arrow/scroll-arrow.tsx","webpack://keolis.com/./src/v3/components/tools/scroll-arrow/scroll-arrow.module.scss","webpack://keolis.com/./src/v3/hooks/use-format-date.ts","webpack://keolis.com/./src/v3/utils/get-associated-color.ts","webpack://keolis.com/./static/images/linkedin_gray.svg","webpack://keolis.com/./static/images/twitter_gray.svg"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport var breadcrumb = \"breadcrumb-module--breadcrumb--a05f8\";\nexport var breadcrumbContainer = \"breadcrumb-module--breadcrumbContainer--19e9a\";\nexport var home = \"breadcrumb-module--home--2f79d\";\nexport var lastPage = \"breadcrumb-module--lastPage--dd27b\";\nexport var pElement = \"breadcrumb-module--pElement--155b5\";","import React from \"react\"\nimport { InternalExternalLinkBlockFieldsFragment } from \"../../../../graphql-types\"\nimport * as styles from \"./breadcrumb.module.scss\"\nimport { useLocale } from \"../../context/locale-context\"\nimport { useSlugs } from \"../../context/slugs-context\"\n\ntype RenderProps = {\n title: string\n homeLabel: string\n middlePages?: InternalExternalLinkBlockFieldsFragment[]\n}\n\nconst Breadcrumb: React.FC<RenderProps> = ({ title, homeLabel, middlePages }) => {\n const { locale } = useLocale()\n const { homeLink, getInternalExternalLink } = useSlugs()\n\n return (\n <ul className={styles.breadcrumb} data-datocms-noindex={true}>\n <li>\n <a className={styles.home} href={homeLink}>\n {homeLabel}\n </a>\n </li>\n {middlePages?.map(\n middlePage =>\n middlePage?.title && (\n <li className={styles.breadcrumbContainer} key={middlePage.title}>\n <p className={styles.pElement}>{\">\"}</p>\n <a\n href={getInternalExternalLink(middlePage)}\n className={styles.home}\n lang={locale !== \"en\" && middlePage.title === \"Newsroom\" ? \"en\" : null}\n >\n {middlePage.title}\n </a>\n </li>\n )\n )}\n {title && (\n <li className={styles.breadcrumbContainer}>\n <p className={styles.pElement}>{\">\"}</p>\n <p className={styles.lastPage} lang={locale !== \"en\" && title === \"Newsroom\" ? \"en\" : null}>\n {title}\n </p>\n </li>\n )}\n </ul>\n )\n}\n\nexport default Breadcrumb\n","import React from \"react\"\nimport { ReactSVG } from \"react-svg\"\n\ntype RenderProps = {\n image: FileField\n svgStyle?: string\n imgStyle?: string\n pictogramColor?: string\n fillPictogramColor?: string\n isLogo?: boolean\n heightSize?: number\n}\n\nexport const DisplayImage: React.FC<RenderProps> = ({\n image,\n svgStyle,\n imgStyle,\n pictogramColor,\n fillPictogramColor,\n isLogo,\n heightSize,\n}) => {\n return image.format === \"svg\" ? (\n <ReactSVG\n src={image.url}\n height={heightSize || \"none\"}\n className={svgStyle}\n aria-hidden={true}\n fill={fillPictogramColor || \"none\"}\n beforeInjection={svg => {\n svg.setAttribute(\"alt\", image.alt || \"\")\n if (pictogramColor) {\n svg.querySelector(\"path\").setAttribute(\"fill\", pictogramColor)\n }\n if (isLogo) {\n svg.setAttribute(\"objectFit\", \"contain\")\n }\n }}\n />\n ) : (\n <img src={image.url} alt={image.alt || \"\"} className={imgStyle} aria-hidden={true} />\n )\n}\n","import React from \"react\"\nimport { ReactSVG } from \"react-svg\"\nimport { InternalExternalLinkBlockFieldsFragment } from \"../../../../../graphql-types\"\nimport * as styles from \"./card.module.scss\"\nimport { useSlugs } from \"../../../context/slugs-context\"\nimport Capsule from \"../../tools/filter-bar/capsule/capsule\"\n\ntype RenderProps = {\n title: string\n backgroundSvg: string\n backgroundColor?: string\n backgroundColorBis?: string\n textColor: string\n buttonText: string\n redirectLink: InternalExternalLinkBlockFieldsFragment\n}\n\nconst Card: React.FC<RenderProps> = ({\n title,\n backgroundSvg,\n backgroundColor,\n backgroundColorBis,\n textColor,\n buttonText,\n redirectLink,\n}) => {\n const { getInternalExternalLink } = useSlugs()\n const style = {\n \"--text-color\": textColor,\n \"--background-color\": backgroundColor,\n \"--background-color-bis\": backgroundColorBis,\n } as React.CSSProperties\n\n return (\n <div className={styles.card} style={style}>\n <ReactSVG\n src={backgroundSvg}\n beforeInjection={svg => svg.setAttribute(\"preserveAspectRatio\", \"none\")}\n afterInjection={svg => {\n svg.querySelector(\"rect\").style.fill = backgroundColor\n const paths = svg.querySelectorAll(\"path\")\n paths.forEach(path => {\n path.style.fill = backgroundColorBis\n })\n }}\n />\n\n <div className={styles.cardContent}>\n <div></div> {/*The tag will be here in v3.1*/}\n <div className={styles.title}>\n <span>{title}</span>\n </div>\n <div className={styles.buttonContainer}>\n <a href={getInternalExternalLink(redirectLink)} target={redirectLink.isInternalPage ? \"_self\" : \"_blank\"}>\n <Capsule title={buttonText} isSelected={false} special={false} className={styles.button} />\n </a>\n </div>\n </div>\n </div>\n )\n}\n\nexport default Card\n","// extracted by mini-css-extract-plugin\nexport var button = \"card-module--button--f7d9c\";\nexport var buttonContainer = \"card-module--buttonContainer--b4875\";\nexport var card = \"card-module--card--8fc10\";\nexport var cardContent = \"card-module--cardContent--7b91a\";\nexport var date = \"card-module--date--d7cf5\";\nexport var title = \"card-module--title--c9092\";","import React from \"react\"\nimport * as styles from \"./highlight.module.scss\"\nimport { graphql } from \"gatsby\"\nimport { HighlightFieldsFragment, V3BlockSameTopicFieldsFragment } from \"../../../../graphql-types\"\nimport Card from \"./card/card\"\nimport { useIsMobile } from \"../../hooks\"\nimport { getAssociatedColor } from \"../../utils\"\n\ntype RenderProps = {\n data: HighlightFieldsFragment | V3BlockSameTopicFieldsFragment\n}\n\nconst HighLight: React.FC<RenderProps> = ({ data }) => {\n const isMobile = useIsMobile()\n const redirectLink = data.__typename === \"DatoCmsHomePageHighlight\" ? data.redirectLink : data.redirectLink[0]\n return (\n <div\n className={styles.highlight}\n style={!isMobile ? { backgroundImage: `url(${data.backgroundImage?.url})` } : null}\n >\n {isMobile && <img src={data.backgroundImage?.urlMobile} alt=\"Background\" className={styles.mobileImage} />}\n <div className={styles.highlightContent}>\n <Card\n // title={data.redirectLink?.title || data.redirectLink?.[0].title}\n title={redirectLink.title}\n backgroundSvg=\"/vectors/v3/mediaCards/card1.svg\"\n backgroundColor={data.cardBackgroundColor.hex}\n backgroundColorBis={getAssociatedColor(data.cardBackgroundColor.hex)}\n textColor={data.cardTextColor.hex}\n buttonText={data.buttonText}\n redirectLink={redirectLink}\n />\n </div>\n </div>\n )\n}\n\nexport const fragment = graphql`\n fragment V3BlockSameTopicFields on DatoCmsV3BlockSameTopic {\n id\n __typename\n redirectLink {\n ...InternalExternalLinkBlockFields\n }\n cardBackgroundColor {\n hex\n }\n cardTextColor {\n hex\n }\n backgroundImage {\n alt\n url\n urlMobile: url(imgixParams: { fit: \"crop\", w: \"351\", h: \"372\" })\n }\n buttonText\n }\n fragment HighlightFields on DatoCmsHomePageHighlight {\n id\n __typename\n isEnabled\n redirectLink {\n ...InternalExternalLinkBlockFields\n }\n cardBackgroundColor {\n hex\n }\n cardTextColor {\n hex\n }\n backgroundImage {\n alt\n url\n urlMobile: url(imgixParams: { fit: \"crop\", w: \"351\", h: \"372\" })\n }\n buttonText\n }\n`\n\nexport default HighLight\n","// extracted by mini-css-extract-plugin\nexport var highlight = \"highlight-module--highlight--a3876\";\nexport var highlightContent = \"highlight-module--highlightContent--d9358\";\nexport var mobileImage = \"highlight-module--mobileImage--9c85e\";","import React, { useRef } from \"react\"\nimport { graphql } from \"gatsby\"\nimport { V3RecruitmentFieldsFragment } from \"../../../../../../graphql-types\"\nimport * as styles from \"./carousel.module.scss\"\nimport { useLocale } from \"../../../../context/locale-context\"\nimport { useFormatDate } from \"../../../../hooks\"\nimport ScrollArrow from \"../../../tools/scroll-arrow/scroll-arrow\"\nimport { useSlugs } from \"../../../../context/slugs-context\"\n\ntype RenderProps = {\n article: V3RecruitmentFieldsFragment\n arrows: boolean\n onScroll: (scrollDirection: number) => void\n}\n\nconst Carousel: React.FC<RenderProps> = ({ article, arrows, onScroll }) => {\n const { locale } = useLocale()\n const { getInternalExternalLink } = useSlugs()\n\n const cards = useRef(null)\n const publicationDate = (article as any).redirectLink.internalLink?.publicationDate\n const title = article.redirectLink.title || (article as any).redirectLink.internalLink?.title\n\n return (\n <>\n <div className={styles.cardsContainer} ref={cards}>\n <div className={styles.card} key={article.id}>\n {article.redirectLink.isInternalPage && publicationDate && (\n <span className={styles.date}>{useFormatDate(publicationDate, locale)}</span>\n )}\n <a\n href={getInternalExternalLink(article.redirectLink)}\n target={article.redirectLink.isInternalPage ? \"_self\" : \"_blank\"}\n className={styles.linkTitle}\n >\n <span className={styles.spanAnimated}>{title}</span>\n </a>\n </div>\n </div>\n {arrows && (\n <div className={styles.arrowsContainer}>\n <ScrollArrow direction=\"left\" onClick={() => onScroll(-1)} />\n <ScrollArrow direction=\"right\" onClick={() => onScroll(1)} />\n </div>\n )}\n </>\n )\n}\n\nexport const fragment = graphql`\n fragment V3RecruitmentFields on DatoCmsV3Recruitment {\n id\n imageOrVideo\n image {\n alt\n url\n }\n urlVideo\n redirectLink {\n ...InternalExternalLinkBlockFields\n }\n }\n`\n\nexport default Carousel\n","// extracted by mini-css-extract-plugin\nexport var arrowsContainer = \"carousel-module--arrowsContainer--77183\";\nexport var card = \"carousel-module--card--ee8a4\";\nexport var cardsContainer = \"carousel-module--cardsContainer--d3e73\";\nexport var date = \"carousel-module--date--b267d\";\nexport var linkTitle = \"carousel-module--linkTitle--d7a2c\";\nexport var spanAnimated = \"carousel-module--spanAnimated--c21f1\";","import React, { useState } from \"react\"\nimport { graphql } from \"gatsby\"\nimport { V3HomePageRecruitmentFieldsFragment, V3BlockRecruitmentFieldsFragment } from \"../../../../../graphql-types\"\nimport * as styles from \"./recruitment.module.scss\"\nimport sanitizeHtml from \"sanitize-html\"\nimport { useSlugs } from \"../../../context/slugs-context\"\nimport Capsule from \"../../tools/filter-bar/capsule/capsule\"\nimport Carousel from \"./carousel/carousel\"\n\ntype RenderProps = {\n data: V3HomePageRecruitmentFieldsFragment | V3BlockRecruitmentFieldsFragment\n}\n\nconst Recruitment: React.FC<RenderProps> = ({ data }) => {\n const { getInternalExternalLink } = useSlugs()\n const sanitizedText = sanitizeHtml(data.text)\n const [currentLink, setCurrentLink] = useState(0)\n const article = data.recruitment[currentLink]\n\n const redirectLink =\n data.__typename === \"DatoCmsV3HomePageRecruitment\" ? data.redirectLink : data.redirectLinkContentPage\n\n const handleScroll = (scrollDirection: number) => {\n if (scrollDirection === 1 && currentLink < data.recruitment.length - 1) {\n setCurrentLink(currentLink + 1)\n } else if (scrollDirection === -1 && currentLink > 0) {\n setCurrentLink(currentLink - 1)\n }\n }\n\n return (\n <div className={data.isBackgroundDisplayed ? styles.background : \"\"}>\n <div className={styles.mainInformations}>\n <div className={styles.titleContainer}>\n <h2 className={styles.title}>{data.title}</h2>\n </div>\n <div className={styles.rightContainer}>\n <p className={styles.text} dangerouslySetInnerHTML={{ __html: sanitizedText }} />\n <Capsule\n className={styles.capsule}\n title={data.buttonLabel}\n isSelected={false}\n special={true}\n link={\n redirectLink\n ? {\n url: redirectLink && getInternalExternalLink(redirectLink),\n isInternal: redirectLink.isInternalPage,\n }\n : null\n }\n />\n </div>\n </div>\n {data.recruitment.length > 0 && (\n <div className={styles.imagesContainer}>\n <div className={styles.carouselContainer}>\n <Carousel article={article} arrows={data.recruitment.length > 1} onScroll={handleScroll} />\n </div>\n <div className={styles.mainImage}>\n {article.imageOrVideo\n ? article.urlVideo && (\n <iframe\n src={article.urlVideo}\n title=\"Video player\"\n tabIndex={-1}\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\"\n sandbox=\"allow-same-origin allow-scripts allow-popups allow-forms allow-presentation allow-modals allow-top-navigation\"\n loading=\"lazy\"\n allowFullScreen\n />\n )\n : article.image && <img src={article.image.url} alt={article.image.alt || \"\"} />}\n </div>\n </div>\n )}\n </div>\n )\n}\n\nexport const fragment = graphql`\n fragment V3HomePageRecruitmentFields on DatoCmsV3HomePageRecruitment {\n id\n __typename\n isEnabled\n title\n text\n buttonLabel\n redirectLink {\n ...InternalExternalLinkBlockFields\n }\n isBackgroundDisplayed\n recruitment {\n ...V3RecruitmentFields\n }\n }\n fragment V3BlockRecruitmentFields on DatoCmsV3BlockRecruitment {\n id\n __typename\n title\n text\n buttonLabel\n redirectLinkContentPage: redirectLink {\n ...InternalExternalLinkBlockFields\n }\n isBackgroundDisplayed\n recruitment {\n ...V3RecruitmentFields\n }\n }\n`\n\nexport default Recruitment\n","// extracted by mini-css-extract-plugin\nexport var background = \"recruitment-module--background--77471\";\nexport var capsule = \"recruitment-module--capsule--88aab\";\nexport var carouselContainer = \"recruitment-module--carouselContainer--67ccd\";\nexport var imagesContainer = \"recruitment-module--imagesContainer--5de7c\";\nexport var mainImage = \"recruitment-module--mainImage--5831e\";\nexport var mainInformations = \"recruitment-module--mainInformations--5aa1d\";\nexport var rightContainer = \"recruitment-module--rightContainer--2e65b\";\nexport var text = \"recruitment-module--text--0c93d\";\nexport var title = \"recruitment-module--title--d00f9\";\nexport var titleContainer = \"recruitment-module--titleContainer--0e29d\";","import React, { useRef } from \"react\"\nimport * as styles from \"./thematic.module.scss\"\nimport { graphql } from \"gatsby\"\nimport { ThematicFieldsFragment, V3BlockThematicHighlightFieldsFragment } from \"../../../../../graphql-types\"\nimport sanitizeHtml from \"sanitize-html\"\nimport { ReactSVG } from \"react-svg\"\nimport { getAssociatedColor } from \"../../../utils\"\nimport Capsule from \"../../tools/filter-bar/capsule/capsule\"\nimport { useSlugs } from \"../../../context/slugs-context\"\n\ntype RenderProps = {\n data: ThematicFieldsFragment | V3BlockThematicHighlightFieldsFragment\n}\n\nconst Thematic: React.FC<RenderProps> = ({ data }) => {\n const { getInternalExternalLink } = useSlugs()\n const cardsList = useRef(null)\n const sanitizedText = sanitizeHtml(data.introductionText)\n const redirectLink = data.__typename === \"DatoCmsHomePageThematic\" ? data.redirectLink : data.redirectLinkHighlight\n\n return (\n <div className={`${styles.thematicContainer} ${data.gradientBackground ? styles.background : \"\"}`}>\n <div className={styles.sectionHeader}>\n <h2 className={styles.title}>{data.title}</h2>\n <div className={styles.rightContainer}>\n <p className={styles.textIntro} dangerouslySetInnerHTML={{ __html: sanitizedText }} />\n {redirectLink && (\n <a href={getInternalExternalLink(redirectLink)} target={redirectLink.isInternalPage ? \"_self\" : \"_blank\"}>\n <Capsule\n title={redirectLink.title || \"Voir tout\"}\n className={styles.button}\n isSelected={false}\n special={true}\n />\n </a>\n )}\n </div>\n </div>\n <ul className={styles.cardsContainer} ref={cardsList}>\n {data.thematicCard.map((card, index) => {\n const sanitizedDescription = sanitizeHtml(data.thematicCard[index].description)\n return (\n <li\n key={card.id}\n className={styles.card}\n style={\n {\n \"--cardBgColor\": card.cardBackgroundColor?.hex.substring(0, 7),\n \"--cardBgColorBis\": getAssociatedColor(card.cardBackgroundColor?.hex.substring(0, 7)),\n \"--cardBgColorHover\": card.cardBackgroundColorHover?.hex.substring(0, 7),\n \"--cardBgColorBisHover\": getAssociatedColor(card.cardBackgroundColorHover?.hex.substring(0, 7)),\n \"--cardTextColor\": card.cardTextColor?.hex.substring(0, 7),\n \"--cardTextColorHover\": card.cardTextColorHover?.hex.substring(0, 7),\n } as React.CSSProperties\n }\n >\n <ReactSVG\n src={`/vectors/v3/mediaCards/card${(index % 4) + 1}.svg`}\n beforeInjection={svg => {\n svg.setAttribute(\"preserveAspectRatio\", \"none\")\n }}\n />\n <div\n className={styles.cardContent}\n style={{ justifyContent: sanitizedDescription.length === 0 ? \"center\" : \"space-evenly\" }}\n >\n <span className={styles.cardTitle}>{card.title}</span>\n <div className={styles.showOnHover}>\n <p dangerouslySetInnerHTML={{ __html: sanitizedDescription }} />\n {data.thematicCard[index].redirectLink && (\n <a\n href={getInternalExternalLink(data.thematicCard[index].redirectLink)}\n target={data.thematicCard[index].redirectLink.isInternalPage ? \"_self\" : \"_blank\"}\n >\n <Capsule\n title={data.thematicCard[index].redirectLink.title}\n isSelected={false}\n special={false}\n className={styles.capsule}\n />\n </a>\n )}\n </div>\n </div>\n </li>\n )\n })}\n </ul>\n </div>\n )\n}\n\nexport default Thematic\n\nexport const fragment = graphql`\n fragment ThematicFields on DatoCmsHomePageThematic {\n id\n __typename\n isEnabled\n title\n introductionText\n gradientBackground\n redirectLink {\n ...InternalExternalLinkBlockFields\n }\n thematicCard {\n ...ThematicCardFields\n }\n }\n fragment V3BlockThematicHighlightFields on DatoCmsV3BlockThematicHighlight {\n id\n __typename\n title\n introductionText\n gradientBackground\n redirectLinkHighlight: redirectLink {\n ...InternalExternalLinkBlockFields\n }\n thematicCard {\n ...ThematicCardFields\n }\n }\n fragment ThematicCardFields on DatoCmsThematicCard {\n id\n title\n description\n cardBackgroundColor {\n hex\n }\n cardBackgroundColorHover {\n hex\n }\n cardTextColor {\n hex\n }\n cardTextColorHover {\n hex\n }\n redirectLink {\n ...InternalExternalLinkBlockFields\n }\n }\n`\n","// extracted by mini-css-extract-plugin\nexport var background = \"thematic-module--background--c82c6\";\nexport var button = \"thematic-module--button--47ed1\";\nexport var capsule = \"thematic-module--capsule--03977\";\nexport var card = \"thematic-module--card--5b307\";\nexport var cardContent = \"thematic-module--cardContent--e3100\";\nexport var cardTitle = \"thematic-module--cardTitle--a3640\";\nexport var cardsContainer = \"thematic-module--cardsContainer--d5385\";\nexport var rightContainer = \"thematic-module--rightContainer--e9c21\";\nexport var sectionHeader = \"thematic-module--sectionHeader--1d971\";\nexport var showOnHover = \"thematic-module--showOnHover--be714\";\nexport var textIntro = \"thematic-module--textIntro--3f201\";\nexport var thematicContainer = \"thematic-module--thematicContainer--05170\";\nexport var title = \"thematic-module--title--7a1ef\";","// extracted by mini-css-extract-plugin\nexport var background = \"key-figures-module--background--e2363\";\nexport var container = \"key-figures-module--container--a8aa5\";\nexport var keyFigure = \"key-figures-module--keyFigure--f3a38\";\nexport var keyFigureDescription = \"key-figures-module--keyFigureDescription--9f811\";\nexport var keyFigureTitle = \"key-figures-module--keyFigureTitle--cc513\";\nexport var keyFiguresContainer = \"key-figures-module--keyFiguresContainer--6e26f\";\nexport var redirectLink = \"key-figures-module--redirectLink--e299b\";\nexport var title = \"key-figures-module--title--5a59f\";\nexport var titleContainer = \"key-figures-module--titleContainer--ba5ed\";","import React from \"react\"\nimport { graphql } from \"gatsby\"\nimport { KeyFiguresFieldsFragment, V3KeyFiguresBlockFieldsFragment } from \"../../../../graphql-types\"\nimport * as styles from \"./key-figures.module.scss\"\nimport { useSlugs } from \"../../context/slugs-context\"\n\ntype RenderProps = {\n data: V3KeyFiguresBlockFieldsFragment | KeyFiguresFieldsFragment\n}\n\nconst KeyFigures: React.FC<RenderProps> = ({ data }) => {\n const { getInternalExternalLink } = useSlugs()\n\n return (\n <div className={`${styles.container} ${data.isBackgroundDisplayed ? styles.background : \"\"}`}>\n <div className={styles.titleContainer}>\n <h2 className={styles.title}>{data.title}</h2>\n </div>\n <ul className={styles.keyFiguresContainer}>\n {data.keyFigures?.map((kf, index) => (\n <li className={styles.keyFigure} key={kf.value + kf.description}>\n {kf.redirectLink?.[0] ? (\n <a\n href={getInternalExternalLink(kf.redirectLink?.[0])}\n target={kf.redirectLink?.[0].isInternalPage ? \"_self\" : \"_blank\"}\n className={styles.redirectLink}\n >\n <span className={styles.keyFigureTitle}>{kf.value}</span>\n </a>\n ) : (\n <span className={styles.keyFigureTitle}>{kf.value}</span>\n )}\n {kf.description && <span className={styles.keyFigureDescription}>{kf.description}</span>}\n </li>\n ))}\n </ul>\n </div>\n )\n}\n\nexport const fragment = graphql`\n fragment KeyFiguresFields on DatoCmsHomePageKeyFigure {\n id\n isEnabled\n title\n isBackgroundDisplayed\n keyFigures {\n value\n description\n redirectLink {\n ...InternalExternalLinkBlockFields\n }\n }\n }\n\n fragment V3KeyFiguresBlockFields on DatoCmsV3KeyFiguresBlock {\n id\n title\n isBackgroundDisplayed\n keyFigures {\n value\n description\n redirectLink {\n ...InternalExternalLinkBlockFields\n }\n }\n }\n`\n\nexport default KeyFigures\n","import React from \"react\"\nimport { graphql } from \"gatsby\"\nimport { IframeFieldsFragment } from \"../../../../../graphql-types\"\nimport * as styles from \"./iframe.module.scss\"\n\ntype RenderProps = {\n data: IframeFieldsFragment\n}\n\nconst IFrame: React.FC<RenderProps> = ({ data }) => {\n const 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\n return (\n <div className={styles.container}>\n <iframe\n title={data.iframe.name}\n src={data.iframe.url}\n style={parseStyles(data.iframe.style)}\n tabIndex={-1}\n sandbox=\"allow-same-origin allow-scripts allow-popups allow-forms allow-presentation allow-modals allow-top-navigation\"\n loading=\"lazy\"\n />\n </div>\n )\n}\n\nexport const fragment = graphql`\n fragment IframeFields on DatoCmsIframe {\n id\n iframe {\n name\n url\n style\n }\n }\n`\n\nexport default IFrame\n","// extracted by mini-css-extract-plugin\nexport var container = \"iframe-module--container--135d0\";","// extracted by mini-css-extract-plugin\nexport var chapo = \"presentation-module--chapo--10519\";\nexport var content = \"presentation-module--content--05a2c\";\nexport var contentReversed = \"presentation-module--contentReversed--722b0\";\nexport var image = \"presentation-module--image--5b346\";\nexport var imageWrapper = \"presentation-module--imageWrapper--ff33d\";\nexport var information = \"presentation-module--information--b76ff\";\nexport var link = \"presentation-module--link--07b31\";\nexport var linkContent = \"presentation-module--linkContent--6356b\";\nexport var linkContentText = \"presentation-module--linkContentText--cdf70\";\nexport var parentPagePadding = \"presentation-module--parentPagePadding--a0f02\";\nexport var presentation = \"presentation-module--presentation--3113b\";\nexport var selectedPageContent = \"presentation-module--selectedPageContent--cdc6f\";\nexport var selectedPageContentReversed = \"presentation-module--selectedPageContentReversed--89dd2\";\nexport var title = \"presentation-module--title--70edc\";","import React, { useState } from \"react\"\nimport { graphql } from \"gatsby\"\nimport { V3PresentationTypePageFieldsFragment } from \"../../../../../graphql-types\"\nimport * as styles from \"./presentation.module.scss\"\nimport sanitizeHtml from \"sanitize-html\"\nimport { DisplayImage } from \"../../display-image/display-image\"\nimport { useLocale } from \"../../../context/locale-context\"\n\ntype RenderProps = {\n data: V3PresentationTypePageFieldsFragment\n isParentPage?: boolean\n}\n\nconst Presentation: React.FC<RenderProps> = ({ data, isParentPage = false }) => {\n const { locale, defaultLocale } = useLocale()\n\n return (\n <div className={`${styles.presentation} ${isParentPage && styles.parentPagePadding}`}>\n {data.presentation.map((block, index) => {\n const [indexSelected, setIndex] = useState(null)\n const mouseEnterListener = (idx: number) => setIndex(idx)\n const mouseLeaveListener = () => setIndex(null)\n const shouldHovered = indexSelected === index\n\n return (\n <div\n className={index % 2 === 0 ? styles.content : styles.contentReversed}\n key={block.id}\n style={{ \"--block-color\": block.v3BlockColor.hex } as React.CSSProperties}\n >\n {block.blockImage && (\n <div className={styles.imageWrapper}>\n <DisplayImage image={block.blockImage} svgStyle={styles.image} imgStyle={styles.image} />\n </div>\n )}\n <div className={styles.information}>\n {block.blockTitle && <h3 className={styles.title}>{block.blockTitle}</h3>}\n {block.chapo && (\n <div dangerouslySetInnerHTML={{ __html: sanitizeHtml(block.chapo) }} className={styles.chapo} />\n )}\n <a\n className={styles.link}\n href={\n locale === defaultLocale ? `/${block.linkToPage[0].slug}` : `/${locale}/${block.linkToPage[0].slug}`\n }\n target=\"_self\"\n style={{ color: shouldHovered ? `${block.v3BlockColor.hex}` : `#ffffff` }}\n >\n <div\n className={styles.linkContent}\n onMouseEnter={() => mouseEnterListener(index)}\n onMouseLeave={mouseLeaveListener}\n tabIndex={0}\n style={{\n backgroundColor: shouldHovered ? `#ffffff` : `${block.v3BlockColor.hex}`,\n color: shouldHovered ? `${block.v3BlockColor.hex}` : `#ffffff`,\n border: shouldHovered && `0.5px solid ${block.v3BlockColor.hex}`,\n }}\n >\n <p className={styles.linkContentText}>{block.actionButtonText}</p>\n </div>\n </a>\n </div>\n </div>\n )\n })}\n </div>\n )\n}\n\nexport const fragment = graphql`\n fragment V3PresentationTypePageFields on DatoCmsPresentation {\n id\n presentation {\n ...V3PresentationBlockFields\n }\n }\n\n fragment V3PresentationParentPageFields on DatoCmsParentPage {\n id\n presentation {\n ...V3PresentationBlockFields\n }\n }\n\n fragment V3PresentationBlockFields on DatoCmsPresentationBlock {\n id\n v3BlockColor {\n hex\n }\n actionButtonText\n blockTitle\n blockImage {\n alt\n format\n title\n url\n }\n chapo\n linkToPage {\n ... on DatoCmsParentPage {\n id\n title\n subtitle\n chapo\n slug\n image {\n alt\n format\n title\n url\n }\n }\n ... on DatoCmsPage {\n id\n title\n subtitle\n chapo\n slug\n image {\n alt\n format\n title\n url\n }\n }\n ... on DatoCmsPressRelease {\n id\n title\n subtitle\n chapo\n slug\n image {\n alt\n format\n title\n url\n }\n }\n ... on DatoCmsNews {\n id\n title\n chapo\n slug\n image {\n alt\n format\n title\n url\n }\n }\n }\n }\n`\n\nexport default Presentation\n","// extracted by mini-css-extract-plugin\nexport var bioContainer = \"biographic-card-horizontal-module--bioContainer--a6ae7\";\nexport var biographicBlock = \"biographic-card-horizontal-module--biographicBlock--2e51b\";\nexport var cardsContainer = \"biographic-card-horizontal-module--cardsContainer--cb6d9\";\nexport var container = \"biographic-card-horizontal-module--container--2ec61\";\nexport var content = \"biographic-card-horizontal-module--content--4018b\";\nexport var emptyLeftPart = \"biographic-card-horizontal-module--emptyLeftPart--bedc1\";\nexport var job = \"biographic-card-horizontal-module--job--65ad3\";\nexport var linkLinkedin = \"biographic-card-horizontal-module--linkLinkedin--11d64\";\nexport var linkTwitter = \"biographic-card-horizontal-module--linkTwitter--ca855\";\nexport var linksContainer = \"biographic-card-horizontal-module--linksContainer--7aa07\";\nexport var name = \"biographic-card-horizontal-module--name--5a510\";\nexport var photo = \"biographic-card-horizontal-module--photo--b56fe\";\nexport var photoContainer = \"biographic-card-horizontal-module--photoContainer--914ff\";\nexport var sliderButton = \"biographic-card-horizontal-module--sliderButton--e5970\";","import React, { useRef } from \"react\"\nimport { ReactSVG } from \"react-svg\"\nimport { graphql } from \"gatsby\"\nimport { BiographicCardHorizontalFieldsFragment } from \"../../../../../../graphql-types\"\nimport * as styles from \"./biographic-card-horizontal.module.scss\"\nimport LinkedinGray from \"../../../../../../static/images/linkedin_gray.svg\"\nimport TwitterGray from \"../../../../../../static/images/twitter_gray.svg\"\nimport CarouselRightArrow from \"../../../../../../static/vectors/carousel_right_arrow.svg\"\nimport { DisplayImage } from \"../../../display-image/display-image\"\n\ntype RenderProps = {\n data: BiographicCardHorizontalFieldsFragment\n}\n\nconst BiographicCardHorizontal: React.FC<RenderProps> = ({ data }) => {\n const refContainer = useRef(null)\n\n /**\n * Description: Slide each card to the right\n */\n const slideRight = () => {\n const itemWidth = refContainer.current.children[0].clientWidth\n // the 32 is the same pixels as the right margin of the container\n refContainer.current.scrollBy({\n left: itemWidth + 32,\n top: 0,\n behavior: \"smooth\",\n })\n }\n\n const displayIcon = (link: string, icon: string, style: string) => {\n return (\n <a href={link} className={style}>\n <ReactSVG src={icon} aria-hidden={true} />\n </a>\n )\n }\n\n return (\n <div className={styles.biographicBlock}>\n <div className={styles.emptyLeftPart} />\n <div className={styles.cardsContainer} ref={refContainer}>\n {data.members?.map(member => (\n <div key={member.id} className={styles.container}>\n <div className={styles.content}>\n <div className={styles.photoContainer}>\n <DisplayImage image={member.photo} svgStyle={styles.photo} imgStyle={styles.photo} />\n </div>\n <div className={styles.bioContainer}>\n <div className={styles.name}>{member.name}</div>\n <div className={styles.job}>{member.function}</div>\n <div className={styles.linksContainer}>\n {member.linkedinProfile && displayIcon(member.linkedinProfile, LinkedinGray, styles.linkLinkedin)}\n {member.twitterProfile && displayIcon(member.twitterProfile, TwitterGray, styles.linkTwitter)}\n </div>\n </div>\n </div>\n </div>\n ))}\n <button className={styles.sliderButton} onClick={slideRight} aria-label=\"Élément suivant\">\n <ReactSVG src={CarouselRightArrow} />\n </button>\n </div>\n </div>\n )\n}\n\nexport const fragment = graphql`\n fragment BiographicCardHorizontalFields on DatoCmsBiographicCardHorizontal {\n id\n members {\n id\n name\n function\n twitterProfile\n linkedinProfile\n photo {\n alt\n format\n title\n url\n }\n dedicatedPage\n }\n }\n`\n\nexport default BiographicCardHorizontal\n","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAxMiAyMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4gCiAgPHBhdGggZD0iTTIuOTE1OCAxOC44Mjk5TDExLjI2NjUgMTAuNDc5M0MxMS42NjkyIDEwLjA3NjUgMTEuNjY5MiA5LjQyMzU5IDExLjI2NjQgOS4wMjA4OEwyLjkxNTggMC42NzAxOTNDMi41MTMwOSAwLjI2NzQ4OCAxLjg2MDE3IDAuMjY3NDg4IDEuNDU3NDIgMC42NzAxOTNMMC40ODM0NTIgMS42NDQxNkMwLjA4MTM3NjYgMi4wNDYyNCAwLjA4MDYyMTIgMi42OTc4NiAwLjQ4MTczMiAzLjEwMDg2TDcuMDk5NzggOS43NTAwNUwwLjQ4MTczMiAxNi4zOTkzQzAuMDgwNjIxMiAxNi44MDIzIDAuMDgxMzc2NiAxNy40NTM5IDAuNDgzNDUyIDE3Ljg1NkwxLjQ1NzQyIDE4LjgyOTlDMS44NjAxMyAxOS4yMzI2IDIuNTEzMDUgMTkuMjMyNiAyLjkxNTggMTguODI5OVoiLz4KPC9zdmc+\"","// extracted by mini-css-extract-plugin\nexport var arrow = \"button-module--arrow--2d796\";\nexport var btnImage = \"button-module--btnImage--2816f\";\nexport var buttonContainer = \"button-module--buttonContainer--1f875\";\nexport var buttonContainerImg = \"button-module--buttonContainerImg--7102e\";\nexport var buttonContent = \"button-module--buttonContent--c6320\";\nexport var buttonContentImg = \"button-module--buttonContentImg--e66a5\";\nexport var container = \"button-module--container--5b961\";\nexport var content = \"button-module--content--6a9e7\";\nexport var image = \"button-module--image--490b3\";\nexport var pictogram = \"button-module--pictogram--73978\";\nexport var textContent = \"button-module--textContent--7a643\";\nexport var title = \"button-module--title--acc86\";","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTkiIHZpZXdCb3g9IjAgMCAxMiAxOSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8cGF0aCBkPSJNMi44Mzc2NyAxOC40NzQ3TDExLjE4ODQgMTAuMTI0QzExLjU5MTEgOS43MjEyMiAxMS41OTExIDkuMDY4MyAxMS4xODgzIDguNjY1NkwyLjgzNzY3IDAuMzE0OTA3QzIuNDM0OTcgLTAuMDg3Nzk3OSAxLjc4MjA0IC0wLjA4Nzc5NzkgMS4zNzkzIDAuMzE0OTA3TDAuNDA1MzI3IDEuMjg4ODhDMC4wMDMyNTE1NSAxLjY5MDk1IDAuMDAyNDk2MjQgMi4zNDI1NyAwLjQwMzYwNyAyLjc0NTU3TDcuMDIxNjYgOS4zOTQ3NkwwLjQwMzYwNyAxNi4wNDRDMC4wMDI0OTYyNCAxNi40NDcgMC4wMDMyNTE1NSAxNy4wOTg2IDAuNDA1MzI3IDE3LjUwMDdMMS4zNzkzIDE4LjQ3NDdDMS43ODIgMTguODc3NCAyLjQzNDkyIDE4Ljg3NzQgMi44Mzc2NyAxOC40NzQ3WiIgZmlsbD0iIzQwNDA0MCIgLz4KPC9zdmc+\"","import React, { useState } from \"react\"\nimport { ReactSVG } from \"react-svg\"\nimport { graphql } from \"gatsby\"\nimport { ButtonFieldsFragment } from \"../../../../../graphql-types\"\nimport * as styles from \"./button.module.scss\"\nimport MapRightArrow from \"../../../../../static/vectors/map_right_arrow.svg\"\nimport ExternalLink from \"../../../../../static/vectors/external_link.svg\"\nimport { DisplayImage } from \"../../display-image/display-image\"\n\ntype RenderProps = {\n data: ButtonFieldsFragment\n}\n\nconst Button: React.FC<RenderProps> = ({ data }) => {\n const [hoverButton1, setHoverButton1] = useState(false)\n const [hoverButton2, setHoverButton2] = useState(false)\n\n const renderButton = (title, pictogram, link, color, color2, isImgButton, imgContent, hover, setHover) => {\n if (isImgButton) {\n return (\n <button\n className={styles.buttonContainerImg}\n style={\n color?.hex && {\n backgroundColor: hover ? color2.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={link?.isInternalPage && link?.page ? `/${link.page.slug}` : link?.url}\n className={!imgContent ? styles.buttonContent : styles.buttonContentImg}\n target={link?.isInternalPage ? \"_self\" : \"_blank\"}\n >\n {imgContent && <DisplayImage image={imgContent} svgStyle={styles.btnImage} imgStyle={styles.btnImage} />}\n </a>\n </button>\n )\n } else {\n return (\n <button\n className={styles.buttonContainer}\n style={\n color?.hex && {\n backgroundColor: hover ? color2.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={link?.isInternalPage && link?.page ? `/${link.page.slug}` : link?.url}\n className={styles.buttonContent}\n target={link?.isInternalPage ? \"_self\" : \"_blank\"}\n >\n {pictogram && (\n <DisplayImage\n image={pictogram}\n svgStyle={styles.pictogram}\n imgStyle={styles.image}\n pictogramColor={hover ? color.hex : color2.hex}\n />\n )}\n <div className={styles.textContent}>\n <div className={styles.title} style={{ color: hover ? color?.hex : color2?.hex }}>\n {title}\n </div>\n </div>\n <div className={styles.content}>\n <ReactSVG\n src={link?.isInternalPage ? MapRightArrow : ExternalLink}\n className={styles.arrow}\n aria-hidden={true}\n beforeInjection={svg =>\n svg.querySelector(\"path\").setAttribute(\"fill\", hover ? color?.hex : color2?.hex)\n }\n />\n </div>\n </a>\n </button>\n )\n }\n }\n\n return (\n <div className={styles.container}>\n {renderButton(\n data.title,\n data.pictogram,\n data.link,\n data.color,\n data.hoverColor,\n data.isImgButton,\n data.imgContent,\n hoverButton1,\n setHoverButton1\n )}\n {data.button2 &&\n renderButton(\n data.title2,\n data.pictogram2,\n data.link2,\n data.color2,\n data.hoverColor2,\n data.isImgButton2,\n data.imgContent2,\n hoverButton2,\n setHoverButton2\n )}\n </div>\n )\n}\n\nexport const fragments = graphql`\n fragment ButtonFields on DatoCmsButton {\n __typename\n id\n isImgButton\n imgContent {\n alt\n format\n url\n }\n title\n pictogram {\n alt\n format\n url\n }\n link {\n isInternalPage\n url\n page {\n slug\n }\n }\n color {\n hex\n }\n hoverColor {\n hex\n }\n button2\n isImgButton2\n imgContent2 {\n alt\n format\n url\n }\n title2\n pictogram2 {\n alt\n format\n url\n }\n link2 {\n url\n page {\n slug\n }\n isInternalPage\n }\n color2 {\n hex\n }\n hoverColor2 {\n hex\n }\n }\n`\n\nexport default Button\n","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik03LjQ4NzA5IDE0LjcyNTZDNy4zMTczIDE0Ljg5NTkgNy4wODIyIDE1LjAwMTQgNi44MjI5MSAxNS4wMDE0QzYuNTYzNjMgMTUuMDAxNCA2LjMyODc2IDE0Ljg5NTkgNi4xNTg5NyAxNC43MjU2TDUuMjczNDMgMTMuODQxNkM1LjEwMzA2IDEzLjY3MTggNC45OTc1NSAxMy40MzY3IDQuOTk3NTUgMTMuMTc3NEM0Ljk5NzU1IDEyLjkxODEgNS4xMDMwNiAxMi42ODMyIDUuMjczNDMgMTIuNTEzNUwxNC43OTQxIDIuOTk2M0wxMy4zOTg0IDEuNjAwNThDMTIuODEwNSAxLjAxMTE0IDEzLjIyNzcgLTAuMDAwOTc2NTYyIDE0LjA2MjUgLTAuMDAwOTc2NTYySDE5LjA2MjVDMTkuNTc5OSAtMC4wMDA5NzY1NjIgMjAgMC40MTkwOTcgMjAgMC45MzY1MjFWNS45MzY1MUMyMCA2Ljc3NjM1IDE4Ljk4NDMgNy4xODY1MSAxOC4zOTg0IDYuNjAwNTdMMTcuMDAzMSA1LjIwNjg0TDcuNDg3MDkgMTQuNzI1NlpNMTcuNSAxOC4xMjRDMTcuNSAxOS4xNTg4IDE2LjY1OTggMTkuOTk5IDE1LjYyNSAxOS45OTlIMS44NzVDMC44NDAxNDcgMTkuOTk5IDAgMTkuMTU4OCAwIDE4LjEyNFY0LjM3NDAxQzAgMy4zMzkxNiAwLjg0MDE0NyAyLjQ5OTAyIDEuODc1IDIuNDk5MDJIOC4xMjQ5OEM4LjQ2OTk0IDIuNDk5MDIgOC43NDk5OCAyLjc3OTA1IDguNzQ5OTggMy4xMjQwMlY0LjM3NDAxQzguNzQ5OTggNC43MTg5OCA4LjQ2OTk0IDQuOTk5MDEgOC4xMjQ5OCA0Ljk5OTAxSDIuNDk5OTlWMTcuNDk5SDE1VjEzLjEyNEMxNSAxMi43NzkgMTUuMjggMTIuNDk5IDE1LjYyNSAxMi40OTlIMTYuODc1QzE3LjIxOTkgMTIuNDk5IDE3LjUgMTIuNzc5IDE3LjUgMTMuMTI0VjE4LjEyNFoiIGZpbGw9IiM3ODZFNjQiLz4KPC9zdmc+Cg==\"","// extracted by mini-css-extract-plugin\nexport var container = \"image-module--container--d00d9\";\nexport var h1 = \"image-module--h1--bd7bc\";\nexport var h2 = \"image-module--h2--acb3d\";\nexport var h3 = \"image-module--h3--b6a11\";\nexport var h4 = \"image-module--h4--98184\";\nexport var h5 = \"image-module--h5--62991\";\nexport var heading = \"image-module--heading--a7ef4\";\nexport var image = \"image-module--image--e17aa\";\nexport var paragraph = \"image-module--paragraph--ca675\";","import React from \"react\"\nimport { graphql } from \"gatsby\"\nimport { ImageFieldsFragment } from \"../../../../graphql-types\"\nimport * as styles from \"./image.module.scss\"\n\ntype RenderProps = {\n data: ImageFieldsFragment\n}\n\nconst Image: React.FC<RenderProps> = ({ data }) => {\n const caption = data.caption && data.caption.value.document.children\n\n let captionAriaLabel = \"\"\n caption.map((c, index) => {\n captionAriaLabel += c.children[0].value\n if (index + 1 < caption.length) {\n captionAriaLabel += \" \"\n }\n })\n\n const buildRichText = (content: [{ type: string; value: string; marks?: string[] }], index: number) => {\n return (\n <p className={styles.paragraph}>\n {content.map(text => {\n return `${text.value} `\n })}\n </p>\n )\n }\n\n const buildHeadingText = (level: number, content: [{ type: string; value: string; marks?: string[] }]) => {\n switch (level) {\n case 1:\n return (\n <h1 className={`${styles.heading} ${styles.h1}`} key={level}>\n {content[0].value}\n </h1>\n )\n case 2:\n return (\n <h2 className={`${styles.heading} ${styles.h2}`} key={level}>\n {content[0].value}\n </h2>\n )\n case 3:\n return (\n <h3 className={`${styles.heading} ${styles.h3}`} key={level}>\n {content[0].value}\n </h3>\n )\n case 4:\n return (\n <h4 className={`${styles.heading} ${styles.h4}`} key={level}>\n {content[0].value}\n </h4>\n )\n case 5:\n return (\n <h5 className={`${styles.heading} ${styles.h5}`} key={level}>\n {content[0].value}\n </h5>\n )\n }\n }\n\n const buildStructuredContent = (\n type: string,\n level: number,\n content: [{ type: string; value: string; marks?: string[] }],\n index: number\n ) => {\n switch (type) {\n case \"heading\":\n return buildHeadingText(level, content)\n case \"paragraph\":\n return buildRichText(content, index)\n }\n }\n\n return (\n <figure className={styles.container} role=\"group\" aria-label={captionAriaLabel}>\n <img className={styles.image} src={data.image.url} alt={data.image.alt || \"\"} loading=\"eager\" />\n <figcaption>\n {caption &&\n caption.map((content, index) => buildStructuredContent(content.type, content.level, content.children, index))}\n </figcaption>\n </figure>\n )\n}\n\nexport const fragment = graphql`\n fragment ImageFields on DatoCmsImage {\n __typename\n id\n image {\n alt\n url\n }\n caption {\n value\n }\n }\n`\n\nexport default Image\n","// extracted by mini-css-extract-plugin\nexport var coloredBackgroundFormat = \"key-numbers-module--coloredBackgroundFormat--b3864\";\nexport var coloredNumbersFormat = \"key-numbers-module--coloredNumbersFormat--e689e\";\nexport var description = \"key-numbers-module--description--5e2f6\";\nexport var keyNumber = \"key-numbers-module--keyNumber--9bf86\";\nexport var keyNumberList = \"key-numbers-module--keyNumberList--f1aa4\";\nexport var keyNumbers = \"key-numbers-module--keyNumbers--8f6c2\";\nexport var label = \"key-numbers-module--label--0368b\";\nexport var simpleFormat = \"key-numbers-module--simpleFormat--60287\";\nexport var title = \"key-numbers-module--title--1039f\";\nexport var value = \"key-numbers-module--value--8cce6\";","import React from \"react\"\nimport { graphql } from \"gatsby\"\nimport {\n KeyNumberColoredBackgroundFieldsFragment,\n KeyNumberColoredFieldsFragment,\n KeyNumberSimpleFieldsFragment,\n} from \"../../../../../graphql-types\"\nimport * as styles from \"./key-numbers.module.scss\"\n\ntype RenderProps = {\n data: KeyNumberSimpleFieldsFragment | KeyNumberColoredFieldsFragment | KeyNumberColoredBackgroundFieldsFragment\n}\n\nconst KeyNumbers: React.FC<RenderProps> = ({ data }) => {\n const getKeyNumbersStyle = () => {\n switch (data.__typename) {\n case \"DatoCmsKeyNumberSimple\":\n return `${styles.keyNumbers} ${styles.simpleFormat}`\n case \"DatoCmsKeyNumberColored\":\n return `${styles.keyNumbers} ${styles.coloredNumbersFormat}`\n case \"DatoCmsKeyNumberColoredBackground\":\n return `${styles.keyNumbers} ${styles.coloredBackgroundFormat}`\n }\n }\n\n const buildKeyNumbers = () => {\n return data.keyNumberList.map(keyNumber => {\n return (\n <li key={keyNumber.id} className={styles.keyNumber}>\n <div className={styles.value} style={{ backgroundColor: keyNumber.color?.hex }}>\n {keyNumber.value}\n </div>\n <div className={styles.label}>{keyNumber.label}</div>\n <div className={styles.description}>{keyNumber.description}</div>\n </li>\n )\n })\n }\n\n return (\n <div\n className={getKeyNumbersStyle()}\n style={\n data.__typename === \"DatoCmsKeyNumberColoredBackground\" ? { backgroundColor: data.backgroundColor?.hex } : null\n }\n >\n <h3 className={styles.title}>{data.title}</h3>\n <ul className={styles.keyNumberList}>{buildKeyNumbers()}</ul>\n </div>\n )\n}\n\nexport const fragments = graphql`\n fragment KeyNumberSimpleFields on DatoCmsKeyNumberSimple {\n __typename\n id\n title\n keyNumberList {\n id\n value\n label\n description\n }\n }\n\n fragment KeyNumberColoredFields on DatoCmsKeyNumberColored {\n __typename\n id\n title\n keyNumberList {\n id\n color {\n hex\n }\n value\n label\n description\n }\n }\n\n fragment KeyNumberColoredBackgroundFields on DatoCmsKeyNumberColoredBackground {\n __typename\n id\n title\n backgroundColor {\n hex\n }\n keyNumberList {\n id\n value\n label\n description\n }\n }\n`\n\nexport default KeyNumbers\n","// extracted by mini-css-extract-plugin\nexport var blockTitle = \"network-contact-module--blockTitle--2a46b\";\nexport var buttonWrapper = \"network-contact-module--buttonWrapper--e6559\";\nexport var leftContent = \"network-contact-module--leftContent--75397\";\nexport var lineLink = \"network-contact-module--lineLink--3f32d\";\nexport var networkContactWrapper = \"network-contact-module--networkContactWrapper--59524\";\nexport var pictogram = \"network-contact-module--pictogram--0348c\";\nexport var rightContent = \"network-contact-module--rightContent--b8868\";\nexport var socialMedia = \"network-contact-module--socialMedia--3ae9f\";\nexport var socialNetworkLink = \"network-contact-module--socialNetworkLink--204f8\";\nexport var subtitle = \"network-contact-module--subtitle--a07c9\";","import React from \"react\"\nimport { ReactSVG } from \"react-svg\"\nimport { graphql } from \"gatsby\"\nimport { NetworkContactFieldsFragment } from \"../../../../../graphql-types\"\nimport * as styles from \"./network-contact.module.scss\"\nimport TwitterHovered from \"../../../../../static/vectors/twitter_hovered.svg\"\nimport FacebookHovered from \"../../../../../static/vectors/facebook_hovered.svg\"\nimport LinkedInHovered from \"../../../../../static/vectors/linkedin_hovered.svg\"\nimport InstagramHovered from \"../../../../../static/vectors/instagram_hovered.svg\"\n\ntype RenderProps = {\n data: NetworkContactFieldsFragment\n}\n\nconst NetworkContact: React.FC<RenderProps> = ({ data }) => {\n return (\n <div className={styles.networkContactWrapper}>\n <div className={styles.leftContent}></div>\n <div className={styles.rightContent}>\n <h2 className={styles.blockTitle}>{data.blockTitle}</h2>\n {data.urlWebSite && (\n <div className={styles.buttonWrapper}>\n <a href={data.urlWebSite} className={styles.lineLink} target=\"_blank\">\n {data.buttonText}\n </a>\n </div>\n )}\n {data.subtitle && <h3 className={styles.subtitle}>{data.subtitle}</h3>}\n <div className={styles.socialMedia}>\n <>\n {data.facebook && (\n <a\n href={data && data.urlToFacebook && data.urlToFacebook.url}\n target=\"_blank\"\n className={styles.socialNetworkLink}\n >\n <ReactSVG src={FacebookHovered} className={styles.pictogram} aria-hidden={true} />\n </a>\n )}\n </>\n <>\n {data.twitter && (\n <a\n href={data && data.urlToTwitter && data.urlToTwitter.url}\n target=\"_blank\"\n className={styles.socialNetworkLink}\n >\n <ReactSVG src={TwitterHovered} className={styles.pictogram} aria-hidden={true} />\n </a>\n )}\n </>\n <>\n {data.linkedin && (\n <a\n href={data && data.urlToLinkedin && data.urlToLinkedin.url}\n target=\"_blank\"\n className={styles.socialNetworkLink}\n >\n <ReactSVG src={LinkedInHovered} className={styles.pictogram} aria-hidden={true} />\n </a>\n )}\n </>\n <>\n {data.instagram && (\n <a\n href={data && data.urlToInstagram && data.urlToInstagram.url}\n target=\"_blank\"\n className={styles.socialNetworkLink}\n >\n <ReactSVG src={InstagramHovered} className={styles.pictogram} aria-hidden={true} />\n </a>\n )}\n </>\n </div>\n </div>\n </div>\n )\n}\n\nexport const fragments = graphql`\n fragment NetworkContactFields on DatoCmsContactNetwork {\n __typename\n id\n blockTitle\n urlWebSite\n buttonText\n subtitle\n instagram\n twitter\n facebook\n linkedin\n urlToInstagram {\n url\n }\n urlToTwitter {\n url\n }\n urlToFacebook {\n url\n }\n urlToLinkedin {\n url\n }\n }\n`\n\nexport default NetworkContact\n","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTEiIGhlaWdodD0iMjIiIHZpZXdCb3g9IjAgMCAxMSAyMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwKSI+CjxwYXRoIGQ9Ik0xMC40MTg1IDEyLjU3NjRINy4xNzE4MVYyM0gyLjMyNTk5VjEyLjU3NjRIMFY4LjQ5MzQ1SDIuMzI1OTlWNS44NTE1M0MyLjMyNTk5IDMuOTc4MTcgMy4xOTgyNCAxIDcuMTcxODEgMUgxMC43NTc3VjQuOTM4ODZIOC4xNDA5N0M3LjcwNDg0IDQuOTM4ODYgNy4xMjMzNSA1LjEzMSA3LjEyMzM1IDYuMDQzNjdWOC40NDU0MkgxMC44MDYyTDEwLjQxODUgMTIuNTc2NFoiIGZpbGw9IiMwMDVGN0QiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMCI+CjxyZWN0IHdpZHRoPSIxMSIgaGVpZ2h0PSIyMiIgZmlsbD0id2hpdGUiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8L3N2Zz4K\"","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjkiIGhlaWdodD0iMjMiIHZpZXdCb3g9IjAgMCAyOSAyMyIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yOC44NTcxIDMuMzQzMjhDMjcuODI0MSAzLjc3ODk2IDI2LjcxMzYgNC4wNjk4NiAyNS41NDk3IDQuMjAyNDVDMjYuNzM5IDMuNTI1OTQgMjcuNjUxNyAyLjQ1NDM0IDI4LjA4MiAxLjE3OTc5QzI2Ljk2NzUgMS44MDQ4OSAyNS43MzU0IDIuMjU5NTEgMjQuNDIzMiAyLjUwNTc2QzIzLjM3NDIgMS40NDIyOCAyMS44NzYyIDAuNzc5Mjk3IDIwLjIyMDUgMC43NzkyOTdDMTcuMDQgMC43NzkyOTcgMTQuNDU5NiAzLjIyNjkyIDE0LjQ1OTYgNi4yNDQxN0MxNC40NTk2IDYuNjczMDggMTQuNTEwNCA3LjA5MTE2IDE0LjYwOTIgNy40OTAzMUM5LjgyMjU1IDcuMjYxNjQgNS41Nzg0IDUuMDg1OTggMi43MzczOSAxLjc4MDU0QzIuMjQxNjIgMi41ODgyOSAxLjk1ODMyIDMuNTI1OTQgMS45NTgzMiA0LjUyODUzQzEuOTU4MzIgNi40MjI3NyAyLjk3NTI1IDguMDk3ODEgNC41MjAwNCA5LjA3NzRDMy41NzY2IDkuMDQ3NjQgMi42ODkyOCA4LjgwMjc0IDEuOTExNTQgOC4zOTI3N0MxLjkxMTU0IDguNDE3MTMgMS45MTE1NCA4LjQzNzQyIDEuOTExNTQgOC40NjMxM0MxLjkxMTU0IDExLjExMSAzLjg5NTk4IDEzLjMxOTEgNi41MzEyIDEzLjgyMTFDNi4wNDg3OSAxMy45NDU2IDUuNTM4MzEgMTQuMDEwNSA1LjAxNDQ4IDE0LjAxMDVDNC42NDI5OCAxNC4wMTA1IDQuMjgyMTggMTMuOTc4MSAzLjkzMDcyIDEzLjkxNThDNC42NjMwMyAxNi4wODQ3IDYuNzkwNDUgMTcuNjY2NCA5LjMxMDc0IDE3LjcxMTFDNy4zMzk2NyAxOS4xNzY0IDQuODU2NzkgMjAuMDQ5MSAyLjE1NzQzIDIwLjA0OTFDMS42OTIzOSAyMC4wNDkxIDEuMjM0MDMgMjAuMDIzNCAwLjc4MzY5MSAxOS45NzMzQzMuMzMyMDUgMjEuNTIyNSA2LjM2MDE1IDIyLjQyOTEgOS42MTI3NSAyMi40MjkxQzIwLjIwNzEgMjIuNDI5MSAyNiAxNC4wOTk4IDI2IDYuODc4NzRDMjYgNi42NDA2MSAyNS45OTM0IDYuNDA2NTMgMjUuOTgyNyA2LjE3MTExQzI3LjEwNzggNS4zOTk4OCAyOC4wODQ3IDQuNDM3ODggMjguODU3MSAzLjM0MzI4WiIgZmlsbD0iIzAwNUY3RCIvPgo8L3N2Zz4K\"","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjIiIGhlaWdodD0iMjMiIHZpZXdCb3g9IjAgMCAyMiAyMyIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0wLjE0Mjg1NyAyMi40MjkzSDUuMjg1NzFWNy44NTc4OEgwLjE0Mjg1N1YyMi40MjkzWk0yLjcyOTU1IDAuMTQzNTU1QzEuMTY0IDAuMTQzNTU1IDAuMTQyNTc4IDEuMjUzNyAwLjE0MjU3OCAyLjcxNDk4QzAuMTQyNTc4IDQuMTQxNTIgMS4xMzQ0NiA1LjI4NjQxIDIuNjY4OTIgNS4yODY0MUgyLjY5ODQ2QzQuMjkzNTUgNS4yODY0MSA1LjI4NTQ0IDQuMTQxNTIgNS4yODU0NCAyLjcxNDk4QzUuMjU3NDUgMS4yNTM3IDQuMjkzNTUgMC4xNDM1NTUgMi43Mjk1NSAwLjE0MzU1NVpNMjEuNTcxNCAxNC4yNjdDMjEuNTcxNCA5Ljg5Mjc3IDE5LjIxNTMgNy44NTc4OCAxNi4wNzU1IDcuODU3ODhDMTMuNTQwOSA3Ljg1Nzg4IDEyLjQwODMgOS4yMzgzOCAxMS43NzM4IDEwLjIwOTVWOC4xOTIwN0g3QzcuMDYzMjggOS41Mjg4MyA3IDIyLjQyOTMgNyAyMi40MjkzSDExLjc3MzhWMTQuNDc4N0MxMS43NzM4IDE0LjA1NTMgMTEuODA0NyAxMy42Mjg0IDExLjkzMTIgMTMuMzI1N0MxMi4yNzUyIDEyLjQ3NTMgMTMuMDYyMiAxMS41OTUyIDE0LjM3OTggMTEuNTk1MkMxNi4xMDggMTEuNTk1MiAxNi43OTc2IDEyLjkwMDUgMTYuNzk3NiAxNC44MTQ2VjIyLjQyOTNIMjEuNTcxNFYxNC4yNjdaTTEyLjE0MjkgOS42MTg0NUMxMi4xNTMxIDkuNjAzMDIgMTIuMTY2OSA5LjU4NzU5IDEyLjE3NzEgOS41NzIxNlY5LjYxODQ1SDEyLjE0MjlaIiBmaWxsPSIjMDA1RjdEIi8+Cjwvc3ZnPgo=\"","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPG1hc2sgaWQ9Im1hc2swIiBzdHlsZT0ibWFzay10eXBlOmFscGhhIiBtYXNrVW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4PSIwIiB5PSIwIiB3aWR0aD0iMzIiIGhlaWdodD0iMzIiPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTAuODU2NDQ1IDAuMTQyNTc4SDMxLjg1NjRWMzEuMTQyNkgwLjg1NjQ0NVYwLjE0MjU3OFoiIGZpbGw9IndoaXRlIi8+CjwvbWFzaz4KPGcgbWFzaz0idXJsKCNtYXNrMCkiPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTI5LjAyODIgMTcuNjI5QzI5LjAyODIgMTkuMjY4NCAyOS4wNDE3IDIwLjkwNjcgMjguOTA2MiAyMi41NDZDMjguNzYwMyAyNC4xNTIyIDI4LjI5ODkgMjUuNjUxOCAyNy4wMjg3IDI2Ljc5MzNDMjYuMDk0NiAyNy41NzU3IDI1LjAxNTcgMjcuOTU5NyAyMy44MjUxIDI4LjExNDlDMjIuNjExNyAyOC4zMTE2IDIxLjM4NTkgMjguMzExNiAyMC4xNjAxIDI4LjMxMTZDMTcuNjIwNiAyOC4zMzQzIDE1LjA3OCAyOC4zMzQzIDEyLjUxNDggMjguMzExNkMxMS4xODk3IDI4LjI4NDcgOS44NjQ1OCAyOC4zMTE2IDguNTQ3NzYgMjguMDY1M0M1Ljg2MTM4IDI3LjU4NCA0LjE5NyAyNS44MzI5IDMuODYwODEgMjMuMDk5N0MzLjcwMTUxIDIxLjg5NCAzLjcwMTUxIDIwLjY0NjkgMy42Nzg3NSAxOS40MTUzQzMuNjU4MDcgMTYuOTEyOSAzLjY1ODA3IDE0LjM1MTQgMy42Nzg3NSAxMS44MTY5QzMuNzAxNTEgMTAuNDg5MSAzLjY3ODc1IDkuMTM1MzkgMy45MjQ5NSA3Ljc5NjE5QzQuMzk5NzQgNS4xNTYwOSA2LjE3NzkxIDMuNDg0NjggOC44NzI1NyAzLjE1MDRDMTAuMDg3IDMuMDA1NTEgMTEuMzI2MiAzLjAwNTUxIDEyLjU0MDYgMi45NTU4NEMxMy44MDY3IDIuOTI5OTYgMTUuMDkxNSAyLjk1NTg0IDE2LjM2MDcgMi45NTU4NEMxOC42NTcxIDIuOTU1ODQgMjAuOTU2NiAyLjkwNjE2IDIzLjIzODYgMy4wNzY5MkMyNC44OTI2IDMuMjI1OTUgMjYuNDEzMiAzLjY5Nzg4IDI3LjUzMzUgNS4wMjU2OUMyOC40MzM0IDYuMDY5OTMgMjguNzkxMyA3LjM0MDgyIDI4Ljg4NDQgOC42Nzc5NUMyOS4wODUxIDExLjY1NDQgMjkuMDQxNyAxNC42NDY0IDI5LjAyODIgMTcuNjI5Wk0zMS43MDQyIDguNTQ4MTRDMzEuNTgyMiA2Ljc3ODQxIDMxLjExMTUgNS4xMTYzMiAzMC4wNjM3IDMuNjczNjNDMjguNDAyNCAxLjQzNzE1IDI2LjA4NjMgMC40OTIyNTcgMjMuMzk2OCAwLjI2MzUzOEMyMC45NTA0IDAuMDkzODEwMSAxOC40OTU4IDAuMTY1MjIgMTYuMDQ4MyAwLjE0MzQ4N0gxNS4xMjM2QzEyLjk0NCAwLjE0MzQ4NyAxMC43NzI4IDAuMTE2NTc4IDguNjAyNTggMC4zNTU2NDdDNC45MDM1IDAuNzY5NjE4IDIuMjI2NDMgMy4wNTM3IDEuMzE3MTcgNi42MTQ4OUMwLjkwNTQ3MyA4LjE3MjQ2IDAuOTA1NDczIDkuNzcxNDIgMC44NjkyNjggMTEuMzZDMC44NDY1MTEgMTMuODU1MiAwLjg1ODkyNCAxNi4zNTc3IDAuODY5MjY4IDE4Ljg1MjlDMC44NjkyNjggMjAuMzg1NiAwLjg4OTk1NiAyMS44OTM1IDEuMDgzMzkgMjMuNDI2M0MxLjQ5ODE5IDI3LjA4NzggMy43ODAxMiAyOS43NjMxIDcuMzEwNTkgMzAuNzA3QzguODcyNTYgMzEuMDgxNiAxMC40Njk3IDMxLjA4MTYgMTIuMDU1NSAzMS4xMjNDMTQuNTYxOSAzMS4xNDc5IDE3LjA3OTYgMzEuMTQ3OSAxOS41NzQ3IDMxLjEzMTNDMjEuMDg0OSAzMS4xMzEzIDIyLjU3OTYgMzEuMTIzIDI0LjA3NDQgMzAuOTI1M0MyOC4xMiAzMC40NTI0IDMwLjkwNjcgMjcuODI3OCAzMS41NTg0IDIzLjc4NTRDMzEuODMwNCAyMi4yOTQgMzEuODMwNCAyMC43MzU0IDMxLjgzMDQgMTkuMTk0NEMzMS44MzA0IDE1LjYzOTUgMzEuOTQyMiAxMi4xMDkzIDMxLjcwNDIgOC41NDgxNFoiIGZpbGw9IiMwMDVGN0QiLz4KPC9nPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTI0LjY5NjggOS4yMTU1M0MyMy42MzczIDkuMjM5NjggMjIuNzgzMiA4LjM5NzU4IDIyLjc4MzIgNy4zMTE4OUMyMi43ODMyIDYuMjc5NzQgMjMuNjI0NyA1LjQzNTU1IDI0LjY3MjcgNS40MzU1NUMyNS43MDcgNS40MzU1NSAyNi41NjMyIDYuMjYyOTQgMjYuNTYzMiA3LjI5NTA5QzI2LjU4NzMgOC4zNzEzMyAyNS43NDI2IDkuMjE1NTMgMjQuNjk2OCA5LjIxNTUzWiIgZmlsbD0iIzAwNUY3RCIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTE2LjY5OTUgMjAuMDMxNUMxNC4wMDcyIDIwLjAxNCAxMS44NTU5IDE3LjcyMzYgMTEuODU1OSAxNC44NzkyQzExLjg1NTkgMTIuMDE4MiAxNC4wNDI1IDkuNzU4NzkgMTYuNzg0OSA5Ljc1ODc5QzE5LjQ1MzcgOS43NTg3OSAyMS42MTg3IDEyLjA2NjcgMjEuNjE4NyAxNC44OTM2QzIxLjYxODcgMTcuNzQ2MyAxOS40MjkxIDIwLjAzMTUgMTYuNjk5NSAyMC4wMzE1Wk0xNi43NzIxIDYuOTQ3MjdDMTIuNTc5NSA2Ljk0NzI3IDkuMTg2MTEgMTAuNDgxOSA5LjE3MzM1IDE0Ljg0NzFDOS4xNjY0OCAxOS4yNjggMTIuNTM4MyAyMi44MjUzIDE2Ljc0MTcgMjIuODI1M0MyMC45MDI5IDIyLjgyNTMgMjQuMjk1MyAxOS4yNjggMjQuMjk1MyAxNC44OTM1QzI0LjI5NTMgMTAuNTIzMiAyMC45MjM1IDYuOTQ3MjcgMTYuNzcyMSA2Ljk0NzI3WiIgZmlsbD0iIzAwNUY3RCIvPgo8L3N2Zz4K\"","// extracted by mini-css-extract-plugin\nexport var content = \"outlined-text-block-module--content--e7bc8\";\nexport var contentText = \"outlined-text-block-module--contentText--ce5d5\";\nexport var leftContainer = \"outlined-text-block-module--leftContainer--f7cc6\";\nexport var outlinedContainer = \"outlined-text-block-module--outlinedContainer--bfd16\";\nexport var picture = \"outlined-text-block-module--picture--fc70d\";\nexport var pictureWrapper = \"outlined-text-block-module--pictureWrapper--40537\";\nexport var rightContainer = \"outlined-text-block-module--rightContainer--c2f60\";\nexport var socialNetworkLink = \"outlined-text-block-module--socialNetworkLink--a3c65\";\nexport var socialNetworkLinkWrapper = \"outlined-text-block-module--socialNetworkLinkWrapper--62bcc\";\nexport var socialNetworkLogo = \"outlined-text-block-module--socialNetworkLogo--e8916\";\nexport var socialNetworks = \"outlined-text-block-module--socialNetworks--c103d\";\nexport var title = \"outlined-text-block-module--title--f1441\";","import React from \"react\"\nimport { ReactSVG } from \"react-svg\"\nimport { graphql } from \"gatsby\"\nimport { OutlinedTextBlockFieldsFragment } from \"../../../../../graphql-types\"\nimport * as styles from \"./outlined-text-block.module.scss\"\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 { useIsMobile } from \"../../../hooks\"\nimport linkedinLogo from \"../../../../../static/images/icon-linkedin.svg\"\nimport twitterLogo from \"../../../../../static/images/icon-twitter.svg\"\nimport { DisplayImage } from \"../../display-image/display-image\"\n\ntype RenderProps = {\n data: OutlinedTextBlockFieldsFragment\n}\n\nconst OutlinedTextBlock: React.FC<RenderProps> = ({ data }) => {\n const getColors = bgColor => {\n if (bgColor.hex.toLowerCase() === \"#ffffff\") {\n return { titleColor: \"#0075BE\", borderColor: \"#0075BE\", backgroundColor: \"white\" }\n }\n return {\n titleColor: bgColor.hex,\n borderColor: bgColor.hex,\n backgroundColor: bgColor.hex,\n }\n }\n\n const isMobile = useIsMobile()\n const { titleColor, backgroundColor, borderColor } = getColors(data.backgroundColor)\n const shouldDisplayTitle = data.isTitleDisplayed && data.title && data.title.trim()\n const shouldDisplaySocialNetworks = data.areSocialNetworksDisplayed && (data.linkedinLink || data.twitterLink)\n\n const getSocialNetworkLink = (text, link, logoPath) => (\n <li className={styles.socialNetworkLinkWrapper}>\n <a href={link} className={styles.socialNetworkLink}>\n <ReactSVG src={logoPath} className={styles.socialNetworkLogo} aria-hidden={true} role=\"presentation\" />\n {text}\n </a>\n </li>\n )\n\n const renderContent = content => {\n const options = {\n renderInlineRecord({ record, adapter: { renderNode } }) {\n return renderNode(\n \"a\",\n { href: `/${record.slug}` },\n sanitizeHtml(record.title, {\n allowedTags: [],\n allowedAttributes: {},\n })\n )\n },\n renderLinkToRecord({ record, children, adapter: { renderNode } }) {\n return renderNode(\"a\", { href: `/${record.slug}` }, children)\n },\n }\n return render(content as unknown as StructuredTextGraphQlResponse, options)\n }\n\n return (\n <div\n className={styles.outlinedContainer}\n style={\n {\n \"--title-color\": titleColor,\n \"--background-color\": backgroundColor,\n \"--border-color\": borderColor,\n \"--text-color\": data.textColor.hex,\n } as React.CSSProperties\n }\n >\n <div className={styles.leftContainer}>\n {shouldDisplayTitle && (\n <h2\n style={\n {\n \"--margin-bottom\": data.picture ? \"5rem\" : \"2.5rem\",\n } as React.CSSProperties\n }\n className={styles.title}\n >\n {data.title}\n </h2>\n )}\n </div>\n <div className={styles.rightContainer}>\n <div\n className={styles.content}\n style={{ marginTop: shouldDisplayTitle || !data.picture ? \"\" : isMobile ? \"45px\" : \"55px\" }}\n >\n {data.picture && (\n <div className={styles.pictureWrapper}>\n <DisplayImage image={data.picture} svgStyle={styles.picture} imgStyle={styles.picture} />\n </div>\n )}\n <div className={styles.contentText} dangerouslySetInnerHTML={{ __html: renderContent(data.content) }} />\n {shouldDisplaySocialNetworks && (\n <ul className={styles.socialNetworks}>\n {data.linkedinLink && getSocialNetworkLink(\"LinkedIn\", data.linkedinLink, linkedinLogo)}\n {data.twitterLink && getSocialNetworkLink(\"Twitter\", data.twitterLink, twitterLogo)}\n </ul>\n )}\n </div>\n </div>\n </div>\n )\n}\n\nexport const fragments = graphql`\n fragment OutlinedTextBlockFields on DatoCmsOutlinedTextBlock {\n id\n isTitleDisplayed\n title\n textColor {\n hex\n }\n backgroundColor {\n hex\n }\n picture {\n alt\n url\n }\n content {\n value\n blocks\n links {\n __typename\n ... on DatoCmsPage {\n id: originalId\n slug\n }\n ... on DatoCmsHomePage {\n id: originalId\n }\n ... on DatoCmsNews {\n id: originalId\n slug\n }\n ... on DatoCmsPressRelease {\n id: originalId\n slug\n }\n ... on DatoCmsParentPage {\n id: originalId\n slug\n }\n }\n }\n areSocialNetworksDisplayed\n linkedinLink\n twitterLink\n }\n`\n\nexport default OutlinedTextBlock\n","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjIiIGhlaWdodD0iMjMiIHZpZXdCb3g9IjAgMCAyMiAyMyIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0wLjE0Mjg1NyAyMi4yODU3SDUuMjg1NzFWNy43MTQzMkgwLjE0Mjg1N1YyMi4yODU3Wk0yLjcyOTU1IDBDMS4xNjQgMCAwLjE0MjU3OCAxLjExMDE0IDAuMTQyNTc4IDIuNTcxNDNDMC4xNDI1NzggMy45OTc5NyAxLjEzNDQ2IDUuMTQyODYgMi42Njg5MiA1LjE0Mjg2SDIuNjk4NDZDNC4yOTM1NSA1LjE0Mjg2IDUuMjg1NDQgMy45OTc5NyA1LjI4NTQ0IDIuNTcxNDNDNS4yNTc0NSAxLjExMDE0IDQuMjkzNTUgMCAyLjcyOTU1IDBaTTIxLjU3MTQgMTQuMTIzNEMyMS41NzE0IDkuNzQ5MjEgMTkuMjE1MyA3LjcxNDMyIDE2LjA3NTUgNy43MTQzMkMxMy41NDA5IDcuNzE0MzIgMTIuNDA4MyA5LjA5NDgzIDExLjc3MzggMTAuMDY1OVY4LjA0ODUxSDdDNy4wNjMyOCA5LjM4NTI4IDcgMjIuMjg1NyA3IDIyLjI4NTdIMTEuNzczOFYxNC4zMzUyQzExLjc3MzggMTMuOTExNyAxMS44MDQ3IDEzLjQ4NDggMTEuOTMxMiAxMy4xODIxQzEyLjI3NTIgMTIuMzMxOCAxMy4wNjIyIDExLjQ1MTcgMTQuMzc5OCAxMS40NTE3QzE2LjEwOCAxMS40NTE3IDE2Ljc5NzYgMTIuNzU2OSAxNi43OTc2IDE0LjY3MTFWMjIuMjg1N0gyMS41NzE0VjE0LjEyMzRaTTEyLjE0MjkgOS40NzQ4OUMxMi4xNTMxIDkuNDU5NDYgMTIuMTY2OSA5LjQ0NDAzIDEyLjE3NzEgOS40Mjg2MVY5LjQ3NDg5SDEyLjE0MjlaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K\"","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMTciIHZpZXdCb3g9IjAgMCAyNCAxNyIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yMy45NzggMi4wMTk0NlYyLjAzODE5QzIzLjg5MDcgMi4yNjQxMyAyMy43MDAzIDIuNDMzOTIgMjMuNTM4OSAyLjYxNTMyQzIzLjIyODYgMi45ODI2NSAyMi44NDk0IDMuMzE0NDggMjIuNDYyOCAzLjYzMDE2QzIyLjIyMjggMy44MTkzMSAyMS45NTYyIDQuMDA5NzUgMjEuNjk0OCA0LjE3ODg5QzIxLjYxNzggNC4yMjY2NyAyMS41NzcgNC4yOTA1OCAyMS41NzcgNC4zNzM4NlY0Ljk4MTM0QzIxLjU3NyA1LjUzNzE3IDIxLjUxODUgNi4wNzc1MSAyMS40MjE1IDYuNjI2MjVDMjEuMjk5MyA3LjMyOTI3IDIxLjEwNTMgOC4wMDQ1NCAyMC44NTIgOC42NjQ5NkMyMC41ODg0IDkuMzY3OTggMjAuMjM3MyAxMC4wNiAxOS44Mzk2IDEwLjcyMDRDMTkuNDA0MSAxMS40MDggMTguODk2OCAxMi4wNTQ4IDE4LjMzNCAxMi42ODNDMTguMTA2NiAxMi45MzQ4IDE3Ljg0NTIgMTMuMTgxNCAxNy41ODUyIDEzLjQwNjdDMTcuMDc5NCAxMy44OTE1IDE2LjUzMTQgMTQuMzAwMSAxNS45MzM3IDE0LjY5MzlDMTUuNTAyNyAxNC45ODkgMTUuMDM1NCAxNS4yNTY5IDE0LjU0OTYgMTUuNDg4NkMxMy43NzE5IDE1Ljg3NzMgMTIuOTUzNiAxNi4xOTE3IDEyLjA5MzggMTYuNDM3QzExLjI5MDIgMTYuNjY4MSAxMC40NjQ1IDE2LjgyNSA5LjYxNjQ4IDE2LjkyODlDOS4yNTg3NyAxNi45NzI4IDguODkzNjYgMTYuOTg3NiA4LjUzNzQzIDE2Ljk5OTlIOC4yMjQ5SDguMDk4MjZINy45MzQ1OUg3LjE1NDc1SDYuOTgwNzFINi44NzMzMkM1Ljc2NjE0IDE3LjAwNyA0LjY5MDA1IDE2LjgzOTggMy42MzU0NSAxNi41NzE5QzIuNjk3MTIgMTYuMzM5NSAxLjc5Mjg2IDE2LjAyMzggMC45MzMwMyAxNS42MTk3QzAuNjQ3MTYxIDE1LjQ4ODYgMC4zNjk0MzkgMTUuMzQ4NSAwLjA4NzI3MzMgMTUuMTkyM0MtMC4wMDk3NDQzMyAxNS4xNDQ1IC0wLjAxOTM3MiAxNS4xMDkgMC4wMjY1NDQ3IDE1LjA1MTZDMC4xMzQ2NzEgMTUuMDM4IDAuMjQ0Mjc5IDE1LjA1MTYgMC4zNTI0MDUgMTUuMDUxNkMwLjc3MjMyMSAxNS4wOTQyIDEuMjAwMzggMTUuMTA5IDEuNjE4MDggMTUuMDgwNkMxLjk4NzYzIDE1LjA1MTYgMi4zNDkwNCAxNS4wMzggMi43MDYwMSAxNC45ODlDMy41OTE3NiAxNC44NjE4IDQuNDQ5MzYgMTQuNjMwNyA1LjI1NTg3IDE0LjMxM0M1LjkwNTM3IDE0LjA1MzUgNi40OTM0IDEzLjczMDEgNy4wNjU4OCAxMy4zNzgzQzcuMDc1NSAxMy4zNjUzIDcuMDgwNjkgMTMuMzY1MyA3LjA5OTIgMTMuMzQ5OUM2LjkxNzAyIDEzLjMxMzEgNi43NDQ0NiAxMy4zMTMxIDYuNTY2NzIgMTMuMjg1OUM1Ljk3NTcyIDEzLjIwMiA1LjQyMzI0IDEzLjAzNDIgNC44OTg5IDEyLjc4NTZDNC40NDA0NyAxMi41NTM5IDQuMDE2ODYgMTIuMjY1OSAzLjY2MTM3IDExLjkwN0MzLjMwODg1IDExLjU4MjkgMy4wNDAwMSAxMS4yMTgyIDIuODIzMDIgMTAuODAzMUMyLjc2MjI5IDEwLjY5MTQgMi43MDYwMSAxMC41NzA3IDIuNjUyNjkgMTAuNDM5NkMyLjYwNjAzIDEwLjMyNjcgMi42NjAwOSAxMC4yNjM0IDIuODAzMDMgMTAuMjkxMUMzLjA0MDAxIDEwLjMyNjcgMy4yNzkyMyAxMC4zNTQ0IDMuNTE2MjIgMTAuMzU0NEMzLjg4OTQ3IDEwLjM2NzMgNC4yNzAxNCAxMC4zMTEyIDQuNjU4MjEgMTAuMjM4OUM0LjQ0MDQ3IDEwLjIwNzIgNC4yMzAxNSAxMC4xNDMzIDQuMDI2NDggMTAuMDcxN0MzLjgwNTc5IDEwLjAwMjYgMy42MDQzNSA5Ljg5NTQxIDMuNDAxNDIgOS44MTE0OUMzLjIxNzAyIDkuNzIwNDYgMy4wMjUyIDkuNjA4MTMgMi44NDU5OCA5LjQ4ODA2QzIuMjc1NzIgOS4wOTYyIDEuODA4NDEgOC42MzA3NCAxLjQ2NDc3IDguMDY3MTZDMS4xNzk2NSA3LjU5NjU0IDAuOTk1MjM5IDcuMDg5MTIgMC45MTU5OTYgNi41NzAwOEMwLjkwMTkyNSA2LjQwMDk0IDAuODg0ODkxIDYuMjM3NjIgMC44OTMwMzggNi4wNzc1MUMwLjkwMTkyNSA1Ljk3MjkzIDAuOTYzMzk0IDUuOTM2NzggMS4wNzQ0OCA1Ljk5Mjk0QzEuNjA2MjMgNi4yMjYgMi4xNTY0OSA2LjM4NjEgMi43NjIyOSA2LjQ0OTM2QzIuODIzMDIgNi40NDkzNiAyLjg4ODE5IDYuNDcwMDIgMi45NzI2MiA2LjQ1NzExQzIuNzUyNjcgNi4zMTYzNyAyLjU1OTM3IDYuMTU0MzQgMi4zNjY4MiA1Ljk5Mjk0QzEuOTg5MTEgNS42ODI0MyAxLjY5MDY2IDUuMzAyODMgMS40NTUxNSA0LjkwMjU4QzEuMTc5NjUgNC40MjU1IDEuMDEwMDUgMy45MjUxOCAwLjk1ODIxIDMuMzgyMjZDMC44OTMwMzggMi43NTE1NCAwLjk0ODU4MiAyLjEzMTc5IDEuMTkxNSAxLjUzNDY0QzEuMjg0ODEgMS4yOTQ0OSAxLjM5ODg2IDEuMDc2MjkgMS41MTUxNCAwLjg3MjI4NkMxLjYwNjIzIDAuNzM5OTQ1IDEuNjY4NDQgMC43Mzk5NDUgMS43ODU0NSAwLjg2NTE4NUMxLjk5NTc4IDEuMDc2MjkgMi4yMDkwNyAxLjI4Njc0IDIuNDMxMjUgMS40ODQyOUMyLjg1NTYxIDEuODg0NTQgMy4zMDg4NSAyLjIzNTczIDMuNzkwOTggMi41NjY5MUM0LjM4NDE5IDIuOTgyNjUgNS4wMDcwMyAzLjM0ODA1IDUuNjY0NjcgMy42NzAxOEM2LjQ4Mzc3IDQuMDc5NDggNy4zMzU0NSA0LjQxMDAxIDguMjI0OSA0LjY1NzI2QzkuMDM0MzcgNC44NzQxNyA5Ljg3MDUgNS4wNDI2NyAxMC43MTMzIDUuMTQxNDRDMTEuMDA4OCA1LjE2OTIgMTEuMzAyOCA1LjE5Njk2IDExLjYwNDIgNS4yMTMxQzExLjcwNzIgNS4yMjY2NSAxMS43MjEyIDUuMjEzMSAxMS43MDcyIDUuMTE0MzJDMTEuNjcxNiA0Ljk1ODc0IDExLjY1MzggNC44MDk2MSAxMS42MzY4IDQuNjU3MjZDMTEuNjEzOSA0LjQxMDAxIDExLjYxMzkgNC4xNzA1IDExLjYzNjggMy45MjUxOEMxMS42NTk4IDMuNjcwMTggMTEuNzA3MiAzLjQxMTMxIDExLjc4MzQgMy4xNjZDMTEuOTY3MSAyLjU4MjQgMTIuMjc2NyAyLjAzODE5IDEyLjczMDcgMS41NTU5NEMxMy4xOTA2IDEuMDU1NjMgMTMuNzYwMSAwLjY2MTE4NSAxNC40MjUxIDAuMzg4MTA5QzE0Ljc5MDMgMC4yMjQxMzUgMTUuMTc1NCAwLjEwNDA1OSAxNS41NzkgMC4wNDI3Mjk3QzE1Ljc1NjcgMC4wMTU2MTU3IDE1LjkyNjMgMC4wMTU2MTU3IDE2LjExMTUgMC4wMDc4Njg5QzE2LjEyNzggMC4wMDc4Njg5IDE2LjE0MzMgMC4wMDc4Njg5IDE2LjE2MTEgMC4wMDAxMjIwN0gxNi4yNjMzQzE2LjI5NzQgMC4wMDc4Njg5IDE2LjMzMjkgMC4wMDc4Njg5IDE2LjM2OTIgMC4wMDAxMjIwN0gxNy4wMjY4QzE3LjE3MjcgMC4wMTU2MTU3IDE3LjMyMTYgMC4wMTU2MTU3IDE3LjQ2ODIgMC4wMjg1MjcxQzE3LjgyMTUgMC4wNjQ2NzkgMTguMTYxNCAwLjE2MDg2OSAxOC40ODggMC4yNzU3OEMxOC45OTk4IDAuNDU1ODk0IDE5LjQ1NjcgMC43MDMxNDcgMTkuODc1MiAxLjAxOTQ4QzE5Ljk1OTYgMS4wNzYyOSAyMC4wMzUxIDEuMTU1MDUgMjAuMTE3MyAxLjIzODMyQzIwLjE3MzYgMS4yODY3NCAyMC4yMzczIDEuMjk0NDkgMjAuMzE2NiAxLjI4Njc0QzIwLjkyODMgMS4xNjAyMSAyMS41MjQ1IDEuMDEyMzggMjIuMDk2OSAwLjc5NjEwOUMyMi40NjggMC42NDY5ODMgMjIuODMxNiAwLjQ5OTc5MyAyMy4xNzY3IDAuMzM3NzU1QzIzLjIyMTIgMC4zMDg3MDQgMjMuMjYxMSAwLjI5NTc5MyAyMy4zMDc4IDAuMzIzNTUyQzIzLjM1MTUgMC4zNTE5NTcgMjMuMzM2NyAwLjM5NTg1NiAyMy4zMjA0IDAuNDI4MTM1QzIzLjIyMTIgMC43MTYwNTkgMjMuMDgwNCAwLjk3MjM1IDIyLjkwMiAxLjIxNjM4QzIyLjY2MjggMS41ODMwNiAyMi4zNzAyIDEuODk4NzQgMjIuMDEyNSAyLjE3NDRDMjEuODIgMi4zNTEyOSAyMS42MDM3IDIuNDk4NDggMjEuMzYzOCAyLjYxNTMyQzIxLjc0NDQgMi41NjY5MSAyMi4xMDczIDIuNTExMzkgMjIuNDY4IDIuNDE5MDdDMjIuOTMzOCAyLjMyMjI0IDIzLjM4MTkgMi4xODczMSAyMy44MTI5IDIuMDE5NDZDMjMuODY5OSAyLjAxMjM2IDIzLjkyNDcgMS45NzA0IDIzLjk3OCAyLjAxOTQ2WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==\"","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTkiIHZpZXdCb3g9IjAgMCAxMiAxOSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTIuNzM0MjUgMTguNDYyMkMyLjMzMTI1IDE4Ljg2NDMgMS42NzgyNSAxOC44NjQzIDEuMjc2MjUgMTguNDYyMkwwLjMwMTI1IDE3LjQ4ODNDLTAuMDk5NzQ5NSAxNy4wODYzIC0wLjEwMDc1IDE2LjQzNDIgMC4zMDAyNSAxNi4wMzEyTDYuOTE4MjUgOS4zODIyNUwwLjMwMDI1IDIuNzMzMjVDLTAuMTAwNzUgMi4zMzAyNSAtMC4wOTk3NDk1IDEuNjc4MjUgMC4zMDEyNSAxLjI3NjI1TDEuMjc2MjUgMC4zMDIyNUMxLjY3ODI1IC0wLjEwMDc1IDIuMzMxMjUgLTAuMTAwNzUgMi43MzQyNSAwLjMwMjI1TDExLjA4NTMgOC42NTIyNUMxMS40ODczIDkuMDU1MjUgMTEuNDg3MyA5LjcwODI1IDExLjA4NTMgMTAuMTExMkwyLjczNDI1IDE4LjQ2MjJaIiBmaWxsPSIjMTI0MTYyIi8+Cjwvc3ZnPg==\"","import React from \"react\"\nimport { ReactSVG } from \"react-svg\"\nimport { graphql } from \"gatsby\"\nimport { RelatedContentExternalFieldsFragment, RelatedContentPdfFieldsFragment } from \"../../../../../../graphql-types\"\nimport * as styles from \"./external-block.module.scss\"\nimport UserJourneyButtonArrow from \"../../../../../../static/vectors/user_journey_button_arrow.svg\"\nimport { DisplayImage } from \"../../../display-image/display-image\"\n\ntype RenderProps = {\n data: RelatedContentExternalFieldsFragment | RelatedContentPdfFieldsFragment\n}\n\nconst ExternalBlock: React.FC<RenderProps> = ({ data }) => {\n const url = (data as RelatedContentPdfFieldsFragment).pdf\n ? (data as RelatedContentPdfFieldsFragment).pdf.url\n : (data as RelatedContentExternalFieldsFragment).url\n const description = data.description.length < 200 ? data.description : `${data.description.substring(0, 200)}...`\n\n return (\n <a href={url} target=\"_blank\" className={styles.link}>\n <div className={styles.card}>\n <DisplayImage image={data.image} svgStyle={styles.pictogram} imgStyle={styles.picture} />\n <div className={styles.cardContent}>\n {data.tag && <div className={styles.tag}>{data.tag}</div>}\n <div className={styles.title}>{data.title}</div>\n <div className={styles.description}>{description}</div>\n <div className={styles.cardFooter}>\n <ReactSVG src={UserJourneyButtonArrow} className={styles.arrow} aria-hidden={true} />\n </div>\n </div>\n </div>\n </a>\n )\n}\n\nexport const fragments = graphql`\n fragment RelatedContentExternalFields on DatoCmsRelatedContentExternal {\n id\n url\n image {\n alt\n format\n url\n }\n title\n description\n tag\n }\n\n fragment RelatedContentPdfFields on DatoCmsRelatedContentPdf {\n id\n pdf {\n url\n }\n image {\n alt\n format\n url\n }\n title\n description\n tag\n }\n`\n\nexport default ExternalBlock\n","// extracted by mini-css-extract-plugin\nexport var arrow = \"external-block-module--arrow--9cf56\";\nexport var card = \"external-block-module--card--75e0b\";\nexport var cardContent = \"external-block-module--cardContent--99f7d\";\nexport var cardFooter = \"external-block-module--cardFooter--1cda7\";\nexport var description = \"external-block-module--description--be306\";\nexport var link = \"external-block-module--link--ba855\";\nexport var pictogram = \"external-block-module--pictogram--c010f\";\nexport var picture = \"external-block-module--picture--f2533\";\nexport var tag = \"external-block-module--tag--dcde5\";\nexport var title = \"external-block-module--title--6b86b\";","import React from \"react\"\nimport { ReactSVG } from \"react-svg\"\nimport { graphql } from \"gatsby\"\nimport { RelatedContentInternalFieldsFragment } from \"../../../../../../graphql-types\"\nimport * as styles from \"./internal-block.module.scss\"\nimport sanitizeHtml from \"sanitize-html\"\nimport UserJourneyButtonArrow from \"../../../../../../static/vectors/user_journey_button_arrow.svg\"\nimport { useLocale } from \"../../../../context/locale-context\"\nimport { DisplayImage } from \"../../../display-image/display-image\"\n\ntype RenderProps = {\n data: RelatedContentInternalFieldsFragment\n}\n\nconst InternalBlock: React.FC<RenderProps> = ({ data }) => {\n const { locale, defaultLocale } = useLocale()\n const url = locale === defaultLocale ? `/${data.internalPage.slug}` : `/${locale}/${data.internalPage.slug}`\n const chapo =\n data.internalPage.chapo.length < 200 ? data.internalPage.chapo : `${data.internalPage.chapo.substring(0, 200)}...`\n\n return (\n <a href={url} target=\"_blank\" className={styles.link}>\n <div className={styles.card}>\n <DisplayImage image={data.internalPage.image} svgStyle={styles.pictogram} imgStyle={styles.picture} />\n <div className={styles.cardContent}>\n {data.tag && <div className={styles.tag}>{data.tag}</div>}\n <div className={styles.title}>{data.internalPage.title}</div>\n <div dangerouslySetInnerHTML={{ __html: sanitizeHtml(chapo) }} className={styles.description} />\n <div className={styles.cardFooter}>\n <ReactSVG src={UserJourneyButtonArrow} className={styles.arrow} aria-hidden={true} />\n </div>\n </div>\n </div>\n </a>\n )\n}\n\nexport const fragments = graphql`\n fragment RelatedContentInternalFields on DatoCmsRelatedContentInternal {\n id\n tag\n internalPage {\n ... on DatoCmsPage {\n title\n slug\n chapo\n image {\n alt\n format\n url\n }\n }\n ... on DatoCmsParentPage {\n title\n slug\n chapo\n image {\n alt\n format\n url\n }\n }\n ... on DatoCmsNews {\n title\n slug\n chapo\n image {\n alt\n format\n url\n }\n }\n ... on DatoCmsPressRelease {\n title\n slug\n chapo\n image {\n alt\n format\n url\n }\n }\n }\n }\n`\n\nexport default InternalBlock\n","// extracted by mini-css-extract-plugin\nexport var arrow = \"internal-block-module--arrow--c64e4\";\nexport var card = \"internal-block-module--card--3f797\";\nexport var cardContent = \"internal-block-module--cardContent--49ef2\";\nexport var cardFooter = \"internal-block-module--cardFooter--a4b30\";\nexport var description = \"internal-block-module--description--46053\";\nexport var link = \"internal-block-module--link--5215a\";\nexport var pictogram = \"internal-block-module--pictogram--a24d2\";\nexport var picture = \"internal-block-module--picture--54688\";\nexport var tag = \"internal-block-module--tag--2d689\";\nexport var title = \"internal-block-module--title--a5866\";","import React from \"react\"\nimport { graphql } from \"gatsby\"\nimport { RelatedContentFieldsFragment } from \"../../../../../graphql-types\"\nimport * as styles from \"./related-content.module.scss\"\nimport ExternalBlock from \"./external-block/external-block\"\nimport InternalBlock from \"./internal-block/internal-block\"\n\ntype RenderProps = {\n data: RelatedContentFieldsFragment\n}\n\nconst RelatedContent: React.FC<RenderProps> = ({ data }) => {\n return (\n <div style={{ \"--main-color\": data.sameSubjectBlockLink.colorBlock.hex } as React.CSSProperties}>\n <h3 className={styles.blockTitle}>{data?.sameSubjectBlockLink?.blockTitle || \"Sur le même sujet\"}</h3>\n {data.sameSubjectBlockLink.pages.map(page => {\n if (page.__typename === \"DatoCmsRelatedContentInternal\") {\n return <InternalBlock data={page} key={page.id} />\n } else {\n return <ExternalBlock data={page} key={page.id} />\n }\n })}\n </div>\n )\n}\n\nexport const fragments = graphql`\n fragment RelatedContentFields on DatoCmsRelatedContent {\n __typename\n id\n sameSubjectBlockLink {\n blockTitle\n pages {\n __typename\n ... on DatoCmsRelatedContentInternal {\n ...RelatedContentInternalFields\n }\n ... on DatoCmsRelatedContentExternal {\n ...RelatedContentExternalFields\n }\n ... on DatoCmsRelatedContentPdf {\n ...RelatedContentPdfFields\n }\n }\n colorBlock {\n hex\n }\n }\n }\n`\n\nexport default RelatedContent\n","// extracted by mini-css-extract-plugin\nexport var blockTitle = \"related-content-module--blockTitle--b33fa\";","// extracted by mini-css-extract-plugin\nexport var bottomNavigator = \"slider-module--bottomNavigator--9c4ae\";\nexport var container = \"slider-module--container--f2ae3\";\nexport var content = \"slider-module--content--73198\";\nexport var img = \"slider-module--img--60c39\";\nexport var leftChevron = \"slider-module--leftChevron--91cb3\";\nexport var overImageLayer = \"slider-module--overImageLayer--81c9c\";\nexport var radioButton = \"slider-module--radioButton--28c71\";\nexport var radioButtonActive = \"slider-module--radioButtonActive--f8533\";\nexport var rightChevron = \"slider-module--rightChevron--e1897\";\nexport var svgContainer = \"slider-module--svgContainer--bc32e\";","import React, { useState } from \"react\"\nimport { ReactSVG } from \"react-svg\"\nimport { graphql } from \"gatsby\"\nimport { SliderFieldsFragment } from \"../../../../../graphql-types\"\nimport * as styles from \"./slider.module.scss\"\nimport leftArrow from \"../../../../../static/vectors/map_left_arrow.svg\"\nimport rightArrow from \"../../../../../static/vectors/map_right_arrow.svg\"\n\ntype RenderProps = {\n data: SliderFieldsFragment\n}\n\nconst Slider: React.FC<RenderProps> = ({ data }) => {\n const images = data?.images ? data.images : []\n\n const [slideIndex, setSlideIndex] = useState(1)\n const [translationX, setTranslationX] = useState(0)\n\n /**\n * Move the slider to the previous picture\n */\n const previousSlide = () => {\n if (slideIndex !== 1) {\n setSlideIndex(slideIndex - 1)\n setTranslationX(translationX + 100)\n } else if (slideIndex === 1) {\n setSlideIndex(images.length)\n setTranslationX(-(images.length - 1) * 100)\n }\n }\n\n /**\n * Move the slider to the next picture\n */\n const nextSlide = () => {\n if (slideIndex !== images.length) {\n setSlideIndex(slideIndex + 1)\n setTranslationX(translationX - 100)\n } else {\n setSlideIndex(1)\n setTranslationX(0)\n }\n }\n\n /**\n * Move the slider to the selected picture\n */\n const moveSlide = (position: number) => {\n setTranslationX(position * -100)\n setSlideIndex(position + 1)\n }\n\n return (\n <div className={styles.container} aria-hidden={true}>\n {images.map((img, index) => {\n return (\n <img\n className={styles.img}\n style={{\n transform: \"translateX(\" + translationX + \"%)\",\n }}\n src={img.url}\n alt={img.title || \"\"}\n loading=\"eager\"\n key={img.title + img.url}\n />\n )\n })}\n <div className={styles.overImageLayer}>\n <div className={styles.leftChevron} aria-label=\"Précédent\">\n <ReactSVG src={leftArrow} className={styles.svgContainer} onClick={previousSlide} aria-hidden={true} />\n </div>\n <div className={styles.rightChevron} aria-label=\"Suivant\">\n <ReactSVG src={rightArrow} className={styles.svgContainer} onClick={nextSlide} aria-hidden={true} />\n </div>\n <div className={styles.bottomNavigator}>\n {images.map((img, index) => {\n return (\n <button\n className={slideIndex === index + 1 ? styles.radioButtonActive : styles.radioButton}\n onClick={() => moveSlide(index)}\n aria-label={`Image ${index + 1}`}\n key={img.title + img.url}\n />\n )\n })}\n </div>\n </div>\n </div>\n )\n}\n\nexport const fragment = graphql`\n fragment SliderFields on DatoCmsSlider {\n __typename\n id\n images {\n title\n url\n height\n width\n }\n }\n`\n\nexport default Slider\n","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTkiIHZpZXdCb3g9IjAgMCAxMiAxOSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8cGF0aCBkPSJNMTAuMjE0IDE4LjQ3NUwxMS4xODgxIDE3LjUwMDlDMTEuNTkwMyAxNy4wOTg3IDExLjU5MTEgMTYuNDQ3MyAxMS4xODk4IDE2LjA0NDJMNC41NzE3NyA5LjM5NDg0TDExLjE5MDIgMi43NDU4NkMxMS41OTExIDIuMzQyODIgMTEuNTkwNyAxLjY5MTQxIDExLjE4ODUgMS4yODkyNUwxMC4yMTQ0IDAuMzE1MTVDOS44MTE4IC0wLjA4NzQ3MTcgOS4xNTg2NyAtMC4wODc0NzE3IDguNzU2MDUgMC4zMTUxNUwwLjQwNTA2OSA4LjY2NTY3QzAuMDAyNDg5MzMgOS4wNjgyOSAwLjAwMjQ4OTMzIDkuNzIxMzggMC40MDUwNjkgMTAuMTI0TDguNzU1NjMgMTguNDc1QzkuMTU4MjUgMTguODc3NiA5LjgxMTM0IDE4Ljg3NzYgMTAuMjE0IDE4LjQ3NVoiIGZpbGw9IiM0MDQwNDAiLz4KPC9zdmc+\"","import React from \"react\"\nimport ReactHtmlParser from \"react-html-parser\"\nimport { graphql } from \"gatsby\"\nimport { StructuredTextFieldsFragment } from \"../../../../../graphql-types\"\nimport * as styles from \"./structured-text-content.module.scss\"\nimport { render } from \"datocms-structured-text-to-html-string\"\nimport sanitizeHtml from \"sanitize-html\"\n\ntype RenderProps = {\n data: StructuredTextFieldsFragment\n}\n\nconst StructuredTextContent: React.FC<RenderProps> = ({ data }) => {\n const options = {\n renderBlock({ record, adapter: { renderNode } }) {\n return renderNode(\"figure\", {}, renderNode(\"img\", { src: record.url }))\n },\n renderInlineRecord({ record, adapter: { renderNode } }) {\n return renderNode(\"a\", { href: `/${record.slug}` }, record.title)\n },\n renderLinkToRecord({ record, children, adapter: { renderNode } }) {\n return renderNode(\"a\", { href: `/${record.slug}` }, children)\n },\n }\n\n return (\n <div className={styles.structuredText}>\n {data &&\n data.structuredText &&\n ReactHtmlParser(\n sanitizeHtml(render(data.structuredText.value, options), {\n allowedAttributes: {\n ...sanitizeHtml.defaults.allowedAttributes,\n a: (sanitizeHtml.defaults.allowedAttributes.a || []).concat([\"href\"]),\n },\n allowedSchemesByTag: {\n ...sanitizeHtml.defaults.allowedSchemesByTag,\n a: [\"http\", \"https\", \"javascript\", \"mailto\"],\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 )}\n </div>\n )\n}\n\nexport const fragments = graphql`\n fragment StructuredTextFields on DatoCmsStructuredText {\n __typename\n id\n structuredText {\n value\n }\n }\n`\n\nexport default StructuredTextContent\n","// extracted by mini-css-extract-plugin\nexport var a = \"structured-text-content-module--a--95a8e\";\nexport var structuredText = \"structured-text-content-module--structuredText--3ce36\";","// extracted by mini-css-extract-plugin\nexport var container = \"transport-mode-module--container--40e4c\";\nexport var emptyLeftPart = \"transport-mode-module--emptyLeftPart--e7ac5\";\nexport var pictogram = \"transport-mode-module--pictogram--5e8ee\";\nexport var transportMethodName = \"transport-mode-module--transportMethodName--da007\";\nexport var transportModeElement = \"transport-mode-module--transportModeElement--21200\";\nexport var transportModes = \"transport-mode-module--transportModes--f1d4b\";\nexport var transportModesContainer = \"transport-mode-module--transportModesContainer--6ef31\";\nexport var transportModesTitle = \"transport-mode-module--transportModesTitle--a80e2\";\nexport var transportModesWrapper = \"transport-mode-module--transportModesWrapper--c0d87\";","import React from \"react\"\nimport { graphql } from \"gatsby\"\nimport { TransportModeFieldsFragment } from \"../../../../../graphql-types\"\nimport * as styles from \"./transport-mode.module.scss\"\nimport { DisplayImage } from \"../../display-image/display-image\"\n\ntype RenderProps = {\n data: TransportModeFieldsFragment\n}\n\nconst TransportMode: React.FC<RenderProps> = ({ data }) => {\n return (\n <div className={styles.container}>\n <div className={styles.emptyLeftPart} />\n <div className={styles.transportModesWrapper}>\n <h2 className={styles.transportModesTitle}>{data.title}</h2>\n <div className={styles.transportModesContainer}>\n <ul className={styles.transportModes}>\n {data?.transportMethodContent?.transportModeKeolis.map((methodTransport, index) => (\n <a\n className={styles.transportModeElement}\n key={methodTransport.transportModeName}\n href={methodTransport?.transportModePage?.slug}\n >\n {methodTransport && (\n <DisplayImage\n image={methodTransport.transportModeIcon}\n svgStyle={styles.pictogram}\n imgStyle={styles.pictogram}\n pictogramColor=\"#FFFFFF\"\n />\n )}\n <span className={styles.transportMethodName}>{methodTransport.transportModeName}</span>\n </a>\n ))}\n </ul>\n </div>\n </div>\n </div>\n )\n}\n\nexport const fragments = graphql`\n fragment TransportModeFields on DatoCmsTransportMethodContent {\n __typename\n id\n title\n transportMethodContent {\n transportModeKeolis {\n transportModeName\n transportModeIcon {\n alt\n url\n format\n }\n transportModePage {\n slug\n }\n }\n }\n }\n`\n\nexport default TransportMode\n","import React from \"react\"\nimport { graphql } from \"gatsby\"\nimport { VideoFieldsFragment } from \"../../../../../graphql-types\"\nimport * as styles from \"./video.module.scss\"\n\ntype RenderProps = {\n data: VideoFieldsFragment\n}\n\nconst Video: React.FC<RenderProps> = ({ data }) => {\n return (\n <div className={styles.iframeContainer}>\n <iframe\n className={styles.iframe}\n src={data.url}\n title={data.title?.length > 0 ? data.title : \"Video player\"}\n tabIndex={-1}\n allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\"\n sandbox=\"allow-same-origin allow-scripts allow-popups allow-forms allow-presentation allow-modals allow-top-navigation\"\n loading=\"lazy\"\n allowFullScreen\n />\n </div>\n )\n}\n\nexport const fragments = graphql`\n fragment VideoFields on DatoCmsVideo {\n __typename\n id\n title\n url\n }\n`\n\nexport default Video\n","// extracted by mini-css-extract-plugin\nexport var iframe = \"video-module--iframe--09221\";\nexport var iframeContainer = \"video-module--iframeContainer--59e35\";","import React from \"react\"\nimport { graphql } from \"gatsby\"\nimport { V3QuoteFieldsFragment } from \"../../../../../graphql-types\"\nimport * as styles from \"./quote.module.scss\"\nimport sanitizeHtml from \"sanitize-html\"\nimport { useFormatDate } from \"../../../hooks\"\nimport { useLocale } from \"../../../context/locale-context\"\n\ntype RenderProps = {\n data: V3QuoteFieldsFragment\n}\n\nconst Quote: React.FC<RenderProps> = ({ data }) => {\n const { locale } = useLocale()\n return (\n <div className={styles.quoteBlock}>\n <p\n key={data.id}\n className={styles.quoteContent}\n dangerouslySetInnerHTML={{\n __html: sanitizeHtml(data.quote),\n }}\n />\n\n <div className={styles.quoteAuthor}>\n <span className={styles.quoteDate}>{useFormatDate(data.date, locale)}</span> par {data.name}\n </div>\n </div>\n )\n}\n\nexport const fragments = graphql`\n fragment V3QuoteFields on DatoCmsQuote {\n id\n name\n quote\n date\n }\n`\n\nexport default Quote\n","// extracted by mini-css-extract-plugin\nexport var quoteAuthor = \"quote-module--quoteAuthor--ce302\";\nexport var quoteBlock = \"quote-module--quoteBlock--0d021\";\nexport var quoteContent = \"quote-module--quoteContent--51f7f\";\nexport var quoteDate = \"quote-module--quoteDate--70e66\";","import React, { useRef } from \"react\"\nimport { graphql } from \"gatsby\"\nimport { PartnersContentFieldsFragment } from \"../../../../../graphql-types\"\nimport * as styles from \"./partners.module.scss\"\nimport { useIsMobile } from \"../../../hooks\"\nimport { DisplayImage } from \"../../display-image/display-image\"\nimport ScrollArrow from \"../../tools/scroll-arrow/scroll-arrow\"\n\ntype RenderProps = {\n data: PartnersContentFieldsFragment\n}\n\nconst Partners: React.FC<RenderProps> = ({ data }) => {\n const isMobile = useIsMobile()\n const cards = useRef(null)\n const scrollToCard = (scrollDirection: number) => {\n const itemWidth = cards.current.children[0].clientWidth + 4\n cards.current.scrollBy({\n left: itemWidth * scrollDirection,\n top: 0,\n behavior: \"smooth\",\n })\n }\n\n return (\n <div className={styles.container}>\n <h2 className={styles.title} style={{ \"--color-block\": data.color.hex } as React.CSSProperties}>\n {data.title}\n </h2>\n <div className={styles.alignRight}>\n <div className={styles.imageContainer} ref={cards}>\n {data.partners.map((partner, index) => (\n <a key={partner.url} href={partner.url} target=\"_blank\" className={styles.imageContent}>\n <DisplayImage image={partner.logo} />\n </a>\n ))}\n </div>\n {!isMobile && data.partners.length > 4 && (\n <div className={styles.arrowsContainer}>\n <ScrollArrow direction=\"left\" onClick={() => scrollToCard(-1)} />\n <ScrollArrow direction=\"right\" onClick={() => scrollToCard(1)} />\n </div>\n )}\n </div>\n </div>\n )\n}\n\nexport const fragment = graphql`\n fragment PartnersContentFields on DatoCmsPartnersContent {\n id\n __typename\n title\n color {\n hex\n }\n partners {\n logo {\n ...PartnerImageFields\n }\n url\n }\n }\n\n fragment PartnerImageFields on DatoCmsFileField {\n alt\n format\n url\n }\n`\n\nexport default Partners\n","// extracted by mini-css-extract-plugin\nexport var alignRight = \"partners-module--alignRight--594e5\";\nexport var arrowsContainer = \"partners-module--arrowsContainer--574b6\";\nexport var container = \"partners-module--container--afa64\";\nexport var imageContainer = \"partners-module--imageContainer--a472b\";\nexport var imageContent = \"partners-module--imageContent--8fd10\";\nexport var title = \"partners-module--title--ce0db\";","// extracted by mini-css-extract-plugin\nexport var backgroundImage = \"large-partners-module--backgroundImage--978d7\";\nexport var container = \"large-partners-module--container--08d4d\";\nexport var partner = \"large-partners-module--partner--ba3eb\";\nexport var partners = \"large-partners-module--partners--f1ccf\";\nexport var redirectLink = \"large-partners-module--redirectLink--4e867\";","import React, { useRef } from \"react\"\nimport { graphql } from \"gatsby\"\nimport { PartnersLargeFieldsFragment } from \"../../../../../graphql-types\"\nimport * as styles from \"./large-partners.module.scss\"\nimport { useIsMobile } from \"../../../hooks/use-is-mobile\"\n\ntype RenderProps = {\n data: PartnersLargeFieldsFragment\n}\n\nconst PartnersLarge: React.FC<RenderProps> = ({ data }) => {\n const isMobile = useIsMobile()\n return (\n <div className={styles.container}>\n <div\n className={styles.backgroundImage}\n style={\n {\n \"--background-image\": data.backgroundImage.url ? `url(${data.backgroundImage.url})` : \"\",\n } as React.CSSProperties\n }\n >\n <div className={styles.partners}>\n {data.partners.map((partner, index) => {\n if (isMobile && index > 3) {\n return\n }\n const url = partner.url && (partner.url.startsWith(\"http\") ? partner.url : `https://${partner.url}`)\n\n return url ? (\n <a\n className={styles.redirectLink}\n key={partner.url + index}\n href={url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <img className={styles.partner} src={partner.logo.url} alt={partner.logo.alt} />\n </a>\n ) : (\n <img\n key={partner.logo.url + index}\n className={styles.partner}\n src={partner.logo.url}\n alt={partner.logo.alt}\n />\n )\n })}\n </div>\n </div>\n </div>\n )\n}\n\nexport const fragment = graphql`\n fragment PartnersLargeFields on DatoCmsPartnersLarge {\n id\n __typename\n backgroundImage {\n alt\n format\n title\n url\n }\n partners {\n logo {\n ...PartnerImageFields\n }\n url\n }\n }\n\n fragment PartnerImageFields on DatoCmsFileField {\n alt\n format\n url\n }\n`\n\nexport default PartnersLarge\n","import React from \"react\"\nimport ReactHtmlParser from \"react-html-parser\"\nimport { graphql } from \"gatsby\"\nimport { V3StructuredTextFieldsFragment } from \"../../../../../graphql-types\"\nimport * as styles from \"./v3-structured-text-content.module.scss\"\nimport { render } from \"datocms-structured-text-to-html-string\"\nimport sanitizeHtml from \"sanitize-html\"\n\ntype RenderProps = {\n data: V3StructuredTextFieldsFragment\n}\n\nconst StructuredTextContent: React.FC<RenderProps> = ({ data }) => {\n const options = {\n renderBlock({ record, adapter: { renderNode } }) {\n return renderNode(\"figure\", {}, renderNode(\"img\", { src: record.url }))\n },\n renderInlineRecord({ record, adapter: { renderNode } }) {\n return renderNode(\"a\", { href: `/${record.slug}` }, record.title)\n },\n renderLinkToRecord({ record, children, adapter: { renderNode } }) {\n return renderNode(\"a\", { href: `/${record.slug}` }, children)\n },\n }\n\n return (\n <div className={styles.textBlock}>\n <div className={styles.heading}>\n {data.headingH2 !== null && data.headingH2 !== \"\" && <h2>{data.headingH2}</h2>}\n </div>\n <div className={styles.structuredText}>\n {data &&\n data.structuredText &&\n ReactHtmlParser(\n sanitizeHtml(render(data.structuredText.value, options), {\n allowedAttributes: {\n ...sanitizeHtml.defaults.allowedAttributes,\n a: (sanitizeHtml.defaults.allowedAttributes.a || []).concat([\"href\"]),\n },\n allowedSchemesByTag: {\n ...sanitizeHtml.defaults.allowedSchemesByTag,\n a: [\"http\", \"https\", \"javascript\", \"mailto\"],\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 )}\n </div>\n </div>\n )\n}\n\nexport const fragments = graphql`\n fragment V3StructuredTextFields on DatoCmsV3StructuredText {\n __typename\n id\n headingH2\n structuredText {\n value\n }\n }\n`\n\nexport default StructuredTextContent\n","// extracted by mini-css-extract-plugin\nexport var heading = \"v3-structured-text-content-module--heading--c32b8\";\nexport var structuredText = \"v3-structured-text-content-module--structuredText--54784\";\nexport var textBlock = \"v3-structured-text-content-module--textBlock--46e6c\";","import React from \"react\"\nimport { graphql } from \"gatsby\"\nimport { V3VideoFieldsFragment } from \"../../../../../graphql-types\"\nimport sanitizeHtml from \"sanitize-html\"\nimport * as styles from \"./v3-video.module.scss\"\n\ntype RenderProps = {\n data: V3VideoFieldsFragment\n}\n\nconst V3Video: React.FC<RenderProps> = ({ data }) => {\n const sanitizedText = sanitizeHtml(data.heading)\n\n return (\n <div className={styles.videoContainer}>\n <div className={styles.heading}>\n <p className={styles.text} dangerouslySetInnerHTML={{ __html: sanitizedText }} />\n </div>\n <iframe\n className={styles.iframe}\n src={data.url}\n title=\"Video player\"\n tabIndex={-1}\n allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\"\n sandbox=\"allow-same-origin allow-scripts allow-popups allow-forms allow-presentation allow-modals allow-top-navigation\"\n loading=\"lazy\"\n allowFullScreen\n />\n </div>\n )\n}\n\nexport const fragment = graphql`\n fragment V3VideoFields on DatoCmsV3Video {\n id\n __typename\n url\n heading\n }\n`\n\nexport default V3Video\n","// extracted by mini-css-extract-plugin\nexport var heading = \"v3-video-module--heading--dc8ad\";\nexport var iframe = \"v3-video-module--iframe--27032\";\nexport var text = \"v3-video-module--text--a8697\";\nexport var videoContainer = \"v3-video-module--videoContainer--3e176\";","import React from \"react\"\nimport { graphql } from \"gatsby\"\nimport { V3ImageFieldsFragment } from \"../../../../../graphql-types\"\nimport sanitizeHtml from \"sanitize-html\"\nimport * as styles from \"./v3-image.module.scss\"\n\ntype RenderProps = {\n data: V3ImageFieldsFragment\n}\n\nconst V3Image: React.FC<RenderProps> = ({ data }) => {\n const sanitizedText = sanitizeHtml(data.heading)\n\n return (\n <div className={styles.imageContainer}>\n <div className={styles.heading}>\n <p className={styles.text} dangerouslySetInnerHTML={{ __html: sanitizedText }} />\n </div>\n <div className={styles.image}>\n <img src={data.image.url} alt={data.image.alt} />\n </div>\n </div>\n )\n}\n\nexport const fragments = graphql`\n fragment V3ImageFields on DatoCmsV3Image {\n id\n __typename\n image {\n alt\n url\n }\n heading\n }\n`\n\nexport default V3Image\n","// extracted by mini-css-extract-plugin\nexport var heading = \"v3-image-module--heading--3e67c\";\nexport var image = \"v3-image-module--image--077fa\";\nexport var imageContainer = \"v3-image-module--imageContainer--49e1e\";\nexport var text = \"v3-image-module--text--7c3a5\";","import React, { useState } from \"react\"\nimport { graphql } from \"gatsby\"\nimport { V3DiaporamaFieldsFragment } from \"../../../../../graphql-types\"\nimport sanitizeHtml from \"sanitize-html\"\nimport * as styles from \"./v3-diaporama.module.scss\"\nimport ScrollArrow from \"../../tools/scroll-arrow/scroll-arrow\"\n\ntype RenderProps = {\n data: V3DiaporamaFieldsFragment\n}\n// cssClass optional\nconst ImageOrVideo = ({ element, cssClass }: { element: any; cssClass?: string }) => {\n return (\n <div className={cssClass}>\n {element.__typename === \"DatoCmsV3Image\" ? (\n <img src={element.image.url} alt={element.image.alt} loading=\"lazy\" />\n ) : (\n <iframe\n src={element.url}\n title=\"Video player\"\n tabIndex={-1}\n allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\"\n sandbox=\"allow-same-origin allow-scripts allow-popups allow-forms allow-presentation allow-modals allow-top-navigation\"\n loading=\"lazy\"\n allowFullScreen\n />\n )}\n </div>\n )\n}\n// main component\nconst V3Diaporama: React.FC<RenderProps> = ({ data }) => {\n const [index, setIndex] = useState(0)\n const previousElement = data.diaporama[index - 1 < 0 ? data.diaporama.length - 1 : index - 1]\n const element = data.diaporama[index]\n const sanitizedText = sanitizeHtml(element.heading)\n\n const handleScroll = (scrollDirection: number) => {\n // scroll right\n if (scrollDirection === 1 && index < data.diaporama.length - 1) {\n setIndex(index + 1)\n // scroll left\n } else if (scrollDirection === -1 && index > 0) {\n setIndex(index - 1)\n // handle infinite scroll\n } else if (scrollDirection === 1 && index === data.diaporama.length - 1) {\n setIndex(0)\n } else if (scrollDirection === -1 && index === 0) {\n setIndex(data.diaporama.length - 1)\n }\n }\n\n return (\n <div className={styles.diaporamaContainer}>\n <div className={styles.heading}>\n <ImageOrVideo element={previousElement} cssClass={styles.smallMedia} />\n {data.diaporama.length > 1 && (\n <div className={styles.arrowsContainer}>\n <ScrollArrow direction=\"left\" onClick={() => handleScroll(-1)} />\n <ScrollArrow direction=\"right\" onClick={() => handleScroll(1)} />\n </div>\n )}\n </div>\n <div className={styles.mainContent}>\n <ImageOrVideo element={element} cssClass={styles.media} />\n {sanitizedText.length > 0 && <p className={styles.text} dangerouslySetInnerHTML={{ __html: sanitizedText }} />}\n </div>\n </div>\n )\n}\n\nexport const fragment = graphql`\n fragment V3DiaporamaFields on DatoCmsV3Diaporama {\n id\n __typename\n diaporama {\n ... on DatoCmsV3Image {\n ...V3ImageFields\n }\n ... on DatoCmsV3Video {\n ...V3VideoFields\n }\n }\n }\n`\nexport default V3Diaporama\n","// extracted by mini-css-extract-plugin\nexport var arrowsContainer = \"v3-diaporama-module--arrowsContainer--d8c8f\";\nexport var diaporamaContainer = \"v3-diaporama-module--diaporamaContainer--171f7\";\nexport var heading = \"v3-diaporama-module--heading--c2944\";\nexport var mainContent = \"v3-diaporama-module--mainContent--ac8b5\";\nexport var media = \"v3-diaporama-module--media--20dd0\";\nexport var smallMedia = \"v3-diaporama-module--smallMedia--9bf36\";\nexport var text = \"v3-diaporama-module--text--f56ef\";","import React, { useRef } from \"react\"\nimport { ReactSVG } from \"react-svg\"\nimport { graphql } from \"gatsby\"\nimport { BiographicCardVerticalFieldsFragment, V3SocialNetworkFieldsFragment } from \"../../../../../../graphql-types\"\nimport * as styles from \"./v3-biographic-card-vertical.module.scss\"\nimport { useLocale } from \"../../../../context/locale-context\"\nimport { useSlugs } from \"../../../../context/slugs-context\"\n\ntype RenderProps = {\n data: BiographicCardVerticalFieldsFragment\n governancePageSlug?: string\n socialNetworks: V3SocialNetworkFieldsFragment[]\n}\nconst displayIcon = (link: string, icon: string, style: string) => {\n return (\n <a href={link} className={style}>\n <ReactSVG src={icon} aria-hidden={true} />\n </a>\n )\n}\nconst BiographicCardVertical: React.FC<RenderProps> = ({ data, socialNetworks }) => {\n const { governanceMembersPageSlug } = useSlugs()\n const { locale, defaultLocale } = useLocale()\n const refContainer = useRef(null)\n\n const getSlugByLocale = (slug: string) =>\n locale === defaultLocale\n ? `/${governanceMembersPageSlug}/${slug}`\n : `/${locale}/${governanceMembersPageSlug}/${slug}`\n\n return (\n <nav className={styles.navigation} ref={refContainer} role=\"navigation\">\n <ul className={styles.cardsContainer}>\n {data.members?.map(member => {\n return (\n <li key={member.id} className={styles.card}>\n {member.dedicatedPage && <a href={getSlugByLocale(member.slug)} className={styles.allCardLink} />}\n <img className={styles.memberPhoto} src={member.photo.url} alt={member.photo.alt} />\n <div\n className={styles.filter}\n style={\n {\n \"--filter-color\": member.opacifyingFilter?.at(0)?.filterColor?.hex ?? \"white\",\n \"--filter-opacity\": (member.opacifyingFilter.at(0)?.filterOpacity ?? 10) / 100,\n } as React.CSSProperties\n }\n />\n <div className={styles.name}>{member.name}</div>\n\n <div className={styles.bioContainer}>\n <span>{member.function}</span>\n <div className={styles.socialNetworkContainer}>\n {member.linkedinProfile &&\n displayIcon(\n member.linkedinProfile,\n socialNetworks.find(network => network.link.includes(\"linkedin\"))?.image.url,\n styles.linkLinkedin\n )}\n {member.twitterProfile &&\n displayIcon(\n member.twitterProfile,\n socialNetworks.find(network => network.link.includes(\"twitter\"))?.image.url,\n styles.linkTwitter\n )}\n </div>\n </div>\n </li>\n )\n })}\n </ul>\n </nav>\n )\n}\n\nexport const fragment = graphql`\n fragment BiographicCardVerticalFields on DatoCmsBiographicCardVertical {\n id\n members {\n id\n name\n function\n linkedinProfile\n twitterProfile\n photo {\n alt\n format\n title\n url\n }\n opacifyingFilter {\n filterColor {\n hex\n }\n filterOpacity\n }\n dedicatedPage\n slug\n }\n }\n`\n\nexport default BiographicCardVertical\n","// extracted by mini-css-extract-plugin\nexport var allCardLink = \"v3-biographic-card-vertical-module--allCardLink--f8a8b\";\nexport var bioContainer = \"v3-biographic-card-vertical-module--bioContainer--516c7\";\nexport var card = \"v3-biographic-card-vertical-module--card--70636\";\nexport var cardsContainer = \"v3-biographic-card-vertical-module--cardsContainer--b74bf\";\nexport var filter = \"v3-biographic-card-vertical-module--filter--da0da\";\nexport var linkLinkedin = \"v3-biographic-card-vertical-module--linkLinkedin--20882\";\nexport var linkTwitter = \"v3-biographic-card-vertical-module--linkTwitter--001eb\";\nexport var memberPhoto = \"v3-biographic-card-vertical-module--memberPhoto--56353\";\nexport var name = \"v3-biographic-card-vertical-module--name--97bd9\";\nexport var navigation = \"v3-biographic-card-vertical-module--navigation--7b46c\";\nexport var socialNetworkContainer = \"v3-biographic-card-vertical-module--socialNetworkContainer--db6c9\";","import React, { useRef } from \"react\"\nimport { ReactSVG } from \"react-svg\"\nimport { graphql } from \"gatsby\"\nimport { V3BlockToPdfFieldsFragment } from \"../../../../../graphql-types\"\nimport * as styles from \"./v3-block-to-pdf.module.scss\"\nimport { useIsMobile } from \"../../../hooks\"\nimport ScrollArrow from \"../../tools/scroll-arrow/scroll-arrow\"\nimport { getAssociatedColor } from \"../../../utils\"\n\ntype RenderProps = {\n data: V3BlockToPdfFieldsFragment\n}\n\nconst V3BlockToPdf: React.FC<RenderProps> = ({ data }) => {\n const isMobile = useIsMobile()\n const cards = useRef(null)\n const scrollToCard = (scrollDirection: number) => {\n const itemWidth = cards.current.children[0].clientWidth + 4\n cards.current.scrollBy({\n left: itemWidth * scrollDirection,\n top: 0,\n behavior: \"smooth\",\n })\n }\n\n return (\n <div className={styles.container}>\n <div className={styles.emptyLeftPart} />\n <div className={styles.alignRight}>\n <div className={styles.cardContainer} ref={cards}>\n {data.listOfPdf.map((pdf, index) => (\n <a href={pdf.pdf.url} target=\"_blank\" className={styles.card} key={pdf.title}>\n <ReactSVG\n src={`/vectors/v3/block-to-pdf/card${(index % 4) + 1}.svg`}\n className={styles.backgroundSvg}\n afterInjection={svg => {\n svg\n .querySelectorAll(\"#Groupe_1640 rect, #Groupe_1640 path\")\n .forEach(group => group.setAttribute(\"style\", `fill: ${pdf.backgroundColor.hex}`))\n svg\n .querySelector(\"#BK-DARK\")\n .setAttribute(\"style\", `fill: ${getAssociatedColor(pdf.backgroundColor.hex)}`)\n }}\n />\n\n <ReactSVG src={\"/vectors/v3/block-to-pdf/open-link.svg\"} className={styles.openLink} />\n <div className={styles.title} style={{ color: pdf.titleColor.hex }}>\n {pdf.title}\n </div>\n </a>\n ))}\n </div>\n {!isMobile && data.listOfPdf.length > 4 && (\n <div className={styles.arrowsContainer}>\n <ScrollArrow direction=\"left\" onClick={() => scrollToCard(-1)} />\n <ScrollArrow direction=\"right\" onClick={() => scrollToCard(1)} />\n </div>\n )}\n </div>\n </div>\n )\n}\n\nexport const fragment = graphql`\n fragment V3BlockToPdfFields on DatoCmsV3BlockToPdf {\n id\n __typename\n listOfPdf {\n title\n titleColor {\n hex\n }\n backgroundColor {\n hex\n }\n pdf {\n url\n }\n }\n }\n`\n\nexport default V3BlockToPdf\n","// extracted by mini-css-extract-plugin\nexport var alignRight = \"v3-block-to-pdf-module--alignRight--bcb2c\";\nexport var arrowsContainer = \"v3-block-to-pdf-module--arrowsContainer--e6f12\";\nexport var backgroundSvg = \"v3-block-to-pdf-module--backgroundSvg--50466\";\nexport var card = \"v3-block-to-pdf-module--card--f5296\";\nexport var cardContainer = \"v3-block-to-pdf-module--cardContainer--f57cb\";\nexport var container = \"v3-block-to-pdf-module--container--ffc57\";\nexport var emptyLeftPart = \"v3-block-to-pdf-module--emptyLeftPart--2ea39\";\nexport var openLink = \"v3-block-to-pdf-module--openLink--83191\";\nexport var title = \"v3-block-to-pdf-module--title--27492\";","import React, { useRef } from \"react\"\nimport { ReactSVG } from \"react-svg\"\nimport { graphql } from \"gatsby\"\nimport { V3TextCarouselFieldsFragment } from \"../../../../../graphql-types\"\n\nimport * as styles from \"./v3-text-carousel.module.scss\"\nimport { useIsMobile } from \"../../../hooks\"\nimport ScrollArrow from \"../../tools/scroll-arrow/scroll-arrow\"\nimport { getAssociatedColor } from \"../../../utils\"\n\ntype RenderProps = {\n data: V3TextCarouselFieldsFragment\n}\n\nconst V3TextCarousel: React.FC<RenderProps> = ({ data }) => {\n const isMobile = useIsMobile()\n const carousel = useRef(null)\n const scrollToCard = (scrollDirection: number) => {\n const itemWidth = carousel.current.children[0].clientWidth + 4\n carousel.current.scrollBy({\n left: itemWidth * scrollDirection,\n top: 0,\n behavior: \"smooth\",\n })\n }\n return (\n <div className={styles.container}>\n <div className={styles.carousel} ref={carousel}>\n {data.listOfTexts.map((elt, index) => (\n <div key={Object.values(elt).join(\"\")} className={styles.carouselElt}>\n <ReactSVG\n src={\"/vectors/v3/text-to-carousel/card1.svg\"}\n className={styles.backgroundSvg}\n afterInjection={svg => {\n svg\n .querySelectorAll(\"#colors rect\")\n .forEach(group => group.setAttribute(\"style\", `fill: ${elt.backgroundColor.hex}`))\n svg\n .querySelectorAll(\"#colors path\")\n .forEach(group => group.setAttribute(\"style\", `fill: ${getAssociatedColor(elt.backgroundColor.hex)}`))\n }}\n />\n\n <div className={styles.content} style={{ color: elt.textColor.hex }}>\n <span className={styles.title}>{elt.title}</span>\n <span className={styles.text}>{elt.text}</span>\n </div>\n </div>\n ))}\n </div>\n {!isMobile && data.listOfTexts.length > 4 && (\n <div className={styles.arrowsContainer}>\n <ScrollArrow direction=\"left\" onClick={() => scrollToCard(-1)} />\n <ScrollArrow direction=\"right\" onClick={() => scrollToCard(1)} />\n </div>\n )}\n </div>\n )\n}\n\nexport const fragment = graphql`\n fragment V3TextCarouselFields on DatoCmsV3TextsCarousel {\n id\n __typename\n listOfTexts {\n title\n text\n textColor {\n hex\n }\n backgroundColor {\n hex\n }\n }\n }\n`\n\nexport default V3TextCarousel\n","// extracted by mini-css-extract-plugin\nexport var arrowsContainer = \"v3-text-carousel-module--arrowsContainer--bd623\";\nexport var backgroundSvg = \"v3-text-carousel-module--backgroundSvg--c368d\";\nexport var carousel = \"v3-text-carousel-module--carousel--acb40\";\nexport var carouselElt = \"v3-text-carousel-module--carouselElt--f8160\";\nexport var container = \"v3-text-carousel-module--container--aa390\";\nexport var content = \"v3-text-carousel-module--content--d76c4\";\nexport var text = \"v3-text-carousel-module--text--36dfd\";\nexport var title = \"v3-text-carousel-module--title--2ac23\";","import React from \"react\"\nimport { graphql } from \"gatsby\"\nimport { V3UsefulInfoFieldsFragment } from \"../../../../../graphql-types\"\n\nimport * as styles from \"./v3-useful-infos.module.scss\"\nimport SimpleText from \"../simple-text/simple-text\"\n\ntype RenderProps = {\n data: V3UsefulInfoFieldsFragment\n}\n\nconst V3TextCarousel: React.FC<RenderProps> = ({ data }) => (\n <div className={styles.container}>\n <div className={styles.emptyLeftPart} />\n <div className={styles.usefulInfosWrapper}>\n <h2 className={styles.title}>{data.title}</h2>\n <div className={styles.paragraphs}>\n {data.usefulInfoContent.map(item => (\n <SimpleText data={item} key={item.id} />\n ))}\n </div>\n </div>\n </div>\n)\n\nexport const fragment = graphql`\n fragment V3UsefulInfoFields on DatoCmsV3UsefulInfo {\n id\n __typename\n title\n usefulInfoContent: content {\n ...SimpleTextFields\n }\n }\n`\n\nexport default V3TextCarousel\n","// extracted by mini-css-extract-plugin\nexport var container = \"v3-useful-infos-module--container--df263\";\nexport var emptyLeftPart = \"v3-useful-infos-module--emptyLeftPart--ce771\";\nexport var paragraphs = \"v3-useful-infos-module--paragraphs--991c1\";\nexport var title = \"v3-useful-infos-module--title--9928d\";\nexport var usefulInfosWrapper = \"v3-useful-infos-module--usefulInfosWrapper--e0b92\";","import React from \"react\"\nimport { graphql } from \"gatsby\"\nimport {\n BiographicCardHorizontalFieldsFragment,\n BiographicCardVerticalFieldsFragment,\n ButtonFieldsFragment,\n IframeFieldsFragment,\n ImageFieldsFragment,\n KeyNumberColoredBackgroundFieldsFragment,\n KeyNumberColoredFieldsFragment,\n KeyNumberSimpleFieldsFragment,\n NetworkContactFieldsFragment,\n OutlinedTextBlockFieldsFragment,\n PartnersContentFieldsFragment,\n PartnersLargeFieldsFragment,\n RelatedContentFieldsFragment,\n SimpleTextFieldsFragment,\n SliderFieldsFragment,\n StructuredTextFieldsFragment,\n TransportModeFieldsFragment,\n V3BlockSameTopicFieldsFragment,\n V3BlockToPdfFieldsFragment,\n V3DiaporamaFieldsFragment,\n V3ImageFieldsFragment,\n V3KeyFiguresBlockFieldsFragment,\n V3PresentationTypePageFieldsFragment,\n V3QuoteFieldsFragment,\n V3SocialNetworkFieldsFragment,\n V3StructuredTextFieldsFragment,\n V3TextCarouselFieldsFragment,\n V3UsefulInfoFieldsFragment,\n V3VideoFieldsFragment,\n VideoFieldsFragment,\n V3BlockThematicHighlightFieldsFragment,\n V3BlockRecruitmentFieldsFragment,\n} from \"../../../../graphql-types\"\nimport * as styles from \"./rich_dato_cms_content.module.scss\"\nimport BiographicCardHorizontal from \"./biographic-card/horizontal/biographic-card-horizontal\"\nimport Button from \"./button/button\"\nimport HighLight from \"../highlight/highlight\"\nimport Image from \"../image/image\"\nimport IFrame from \"./iframe/iframe\"\nimport KeyNumbers from \"./key-numbers/key-numbers\"\nimport NetworkContact from \"./network-contact/network-contact\"\nimport OutlinedTextBlock from \"./outlined-text-block/outlined-text-block\"\nimport RelatedContent from \"./related-content/related-content\"\nimport SimpleText from \"./simple-text/simple-text\"\nimport Slider from \"./slider/slider\"\nimport StructuredTextContent from \"./structured-text-content/structured-text-content\"\nimport TransportMode from \"./transport-mode/transport-mode\"\nimport Video from \"./video/video\"\nimport Quote from \"./quote/quote\"\nimport Presentation from \"./presentation/presentation\"\nimport Partners from \"./partners/partners\"\nimport PartnersLarge from \"./partners/large-partners\"\nimport KeyFigures from \"../key-figures/key-figures\"\nimport V3StructuredTextContent from \"./structured-text-content/v3-structured-text-content\"\nimport V3Video from \"./v3-video/v3-video\"\nimport V3Image from \"./v3-image/v3-image\"\nimport V3Diaporama from \"./v3-diaporama/v3-diaporama\"\nimport V3BiographicCardVertical from \"./biographic-card/vertical/v3-biographic-card-vertical\"\nimport V3BlockToPdf from \"./v3-block-to-pdf/v3-block-to-pdf\"\nimport V3TextCarousel from \"./v3-text-carousel/v3-text-carousel\"\nimport V3UsefulInfos from \"./v3-useful-infos/v3-useful-infos\"\nimport Thematic from \"../home/thematic/thematic\"\nimport Recruitment from \"../home/recruitment/recruitment\"\n\ntype RichDatoCmsContentUnion = { __typename?: string } & (\n | BiographicCardHorizontalFieldsFragment\n | BiographicCardVerticalFieldsFragment\n | ButtonFieldsFragment\n | IframeFieldsFragment\n | ImageFieldsFragment\n | KeyNumberColoredBackgroundFieldsFragment\n | KeyNumberColoredFieldsFragment\n | KeyNumberSimpleFieldsFragment\n | NetworkContactFieldsFragment\n | OutlinedTextBlockFieldsFragment\n | RelatedContentFieldsFragment\n | SimpleTextFieldsFragment\n | SliderFieldsFragment\n | StructuredTextFieldsFragment\n | TransportModeFieldsFragment\n | VideoFieldsFragment\n | V3PresentationTypePageFieldsFragment\n | PartnersContentFieldsFragment\n | PartnersLargeFieldsFragment\n | V3QuoteFieldsFragment\n | V3KeyFiguresBlockFieldsFragment\n | V3StructuredTextFieldsFragment\n | V3DiaporamaFieldsFragment\n | V3ImageFieldsFragment\n | V3VideoFieldsFragment\n | V3TextCarouselFieldsFragment\n | V3BlockSameTopicFieldsFragment\n | V3UsefulInfoFieldsFragment\n | V3BlockThematicHighlightFieldsFragment\n | V3BlockRecruitmentFieldsFragment\n)\n\ntype RenderProps = {\n data: RichDatoCmsContentUnion[]\n socialNetworks?: V3SocialNetworkFieldsFragment[]\n}\n\nconst RichDatoCmsContent: React.FC<RenderProps> = ({ data, socialNetworks }) => {\n const fetchRichDatoCmsContent = (richContent: RichDatoCmsContentUnion, index: number) => {\n switch (richContent.__typename) {\n case \"DatoCmsBiographicCardHorizontal\":\n return (\n <BiographicCardHorizontal data={richContent as BiographicCardHorizontalFieldsFragment} key={richContent.id} />\n )\n case \"DatoCmsBiographicCardVertical\":\n return (\n <V3BiographicCardVertical\n data={richContent as BiographicCardVerticalFieldsFragment}\n socialNetworks={socialNetworks}\n key={richContent.id}\n />\n )\n case \"DatoCmsButton\":\n return <Button data={richContent as ButtonFieldsFragment} key={richContent.id} />\n case \"DatoCmsIframe\":\n return <IFrame data={richContent as IframeFieldsFragment} key={richContent.id} />\n case \"DatoCmsImage\":\n return <Image data={richContent as ImageFieldsFragment} key={richContent.id} />\n case \"DatoCmsKeyNumberColoredBackground\":\n return <KeyNumbers data={richContent as KeyNumberColoredBackgroundFieldsFragment} key={richContent.id} />\n case \"DatoCmsKeyNumberColored\":\n return <KeyNumbers data={richContent as KeyNumberColoredFieldsFragment} key={richContent.id} />\n case \"DatoCmsKeyNumberSimple\":\n return <KeyNumbers data={richContent as KeyNumberSimpleFieldsFragment} key={richContent.id} />\n case \"DatoCmsContactNetwork\":\n return <NetworkContact data={richContent as NetworkContactFieldsFragment} key={richContent.id} />\n case \"DatoCmsOutlinedTextBlock\":\n return <OutlinedTextBlock data={richContent as OutlinedTextBlockFieldsFragment} key={richContent.id} />\n case \"DatoCmsRelatedContent\":\n return <RelatedContent data={richContent as RelatedContentFieldsFragment} key={richContent.id} />\n case \"DatoCmsSimpleText\":\n return <SimpleText data={richContent as SimpleTextFieldsFragment} key={richContent.id} />\n case \"DatoCmsSlider\":\n return <Slider data={richContent as SliderFieldsFragment} key={richContent.id} />\n case \"DatoCmsStructuredText\":\n return <StructuredTextContent data={richContent as StructuredTextFieldsFragment} key={richContent.id} />\n case \"DatoCmsTransportMethodContent\":\n return <TransportMode data={richContent as TransportModeFieldsFragment} key={richContent.id} />\n case \"DatoCmsVideo\":\n return <Video data={richContent as VideoFieldsFragment} key={richContent.id} />\n case \"DatoCmsQuote\":\n return <Quote data={richContent as V3QuoteFieldsFragment} key={richContent.id} />\n case \"DatoCmsPresentation\":\n return <Presentation data={richContent as V3PresentationTypePageFieldsFragment} key={richContent.id} />\n case \"DatoCmsPartnersContent\":\n return <Partners data={richContent as PartnersContentFieldsFragment} key={richContent.id} />\n case \"DatoCmsPartnersLarge\":\n return <PartnersLarge data={richContent as PartnersLargeFieldsFragment} key={richContent.id} />\n case \"DatoCmsV3KeyFiguresBlock\":\n return <KeyFigures data={richContent as V3KeyFiguresBlockFieldsFragment} key={richContent.id} />\n case \"DatoCmsV3StructuredText\":\n return <V3StructuredTextContent data={richContent as V3StructuredTextFieldsFragment} key={richContent.id} />\n case \"DatoCmsV3Diaporama\":\n return <V3Diaporama data={richContent as V3DiaporamaFieldsFragment} key={richContent.id} />\n case \"DatoCmsV3Image\":\n return <V3Image data={richContent as V3ImageFieldsFragment} key={richContent.id} />\n case \"DatoCmsV3Video\":\n return <V3Video data={richContent as V3VideoFieldsFragment} key={richContent.id} />\n case \"DatoCmsV3BlockToPdf\":\n return <V3BlockToPdf data={richContent as V3BlockToPdfFieldsFragment} key={richContent.id} />\n case \"DatoCmsV3TextsCarousel\":\n return <V3TextCarousel data={richContent as V3TextCarouselFieldsFragment} key={richContent.id} />\n case \"DatoCmsV3BlockSameTopic\":\n return <HighLight data={richContent as V3BlockSameTopicFieldsFragment} key={richContent.id} />\n case \"DatoCmsV3UsefulInfo\":\n return <V3UsefulInfos data={richContent as V3UsefulInfoFieldsFragment} key={richContent.id} />\n case \"DatoCmsV3BlockThematicHighlight\":\n return <Thematic data={richContent as V3BlockThematicHighlightFieldsFragment} key={richContent.id} />\n case \"DatoCmsV3BlockRecruitment\":\n return <Recruitment data={richContent as V3BlockRecruitmentFieldsFragment} key={richContent.id} />\n }\n }\n\n return <section className={styles.richContent}>{data?.map(fetchRichDatoCmsContent)}</section>\n}\n\nexport const fragment = graphql`\n fragment RichContentFields on DatoCmsUnionForDatoCmsPressReleaseRichContent {\n __typename\n ... on DatoCmsStructuredText {\n ...StructuredTextFields\n }\n ... on DatoCmsVideo {\n ...VideoFields\n }\n ... on DatoCmsTransportMethodContent {\n ...TransportModeFields\n }\n ... on DatoCmsButton {\n ...ButtonFields\n }\n ... on DatoCmsContactNetwork {\n ...NetworkContactFields\n }\n ... on DatoCmsRelatedContent {\n ...RelatedContentFields\n }\n ... on DatoCmsImage {\n ...ImageFields\n }\n ... on DatoCmsOutlinedTextBlock {\n ...OutlinedTextBlockFields\n }\n ... on DatoCmsSlider {\n ...SliderFields\n }\n ... on DatoCmsKeyNumberSimple {\n ...KeyNumberSimpleFields\n }\n ... on DatoCmsKeyNumberColored {\n ...KeyNumberColoredFields\n }\n ... on DatoCmsKeyNumberColoredBackground {\n ...KeyNumberColoredBackgroundFields\n }\n ... on DatoCmsIframe {\n ...IframeFields\n }\n ... on DatoCmsBiographicCardHorizontal {\n ...BiographicCardHorizontalFields\n }\n ... on DatoCmsBiographicCardVertical {\n ...BiographicCardVerticalFields\n }\n ... on DatoCmsSimpleText {\n ...SimpleTextFields\n }\n ... on DatoCmsPresentation {\n ...V3PresentationTypePageFields\n }\n ... on DatoCmsPartnersContent {\n ...PartnersContentFields\n }\n ... on DatoCmsPartnersLarge {\n ...PartnersLargeFields\n }\n ... on DatoCmsQuote {\n ...V3QuoteFields\n }\n ... on DatoCmsV3KeyFiguresBlock {\n ...V3KeyFiguresBlockFields\n }\n ... on DatoCmsV3StructuredText {\n ...V3StructuredTextFields\n }\n ... on DatoCmsV3Diaporama {\n ...V3DiaporamaFields\n }\n ... on DatoCmsV3Image {\n ...V3ImageFields\n }\n ... on DatoCmsV3Video {\n ...V3VideoFields\n }\n ... on DatoCmsV3BlockToPdf {\n ...V3BlockToPdfFields\n }\n ... on DatoCmsV3TextsCarousel {\n ...V3TextCarouselFields\n }\n ... on DatoCmsV3BlockSameTopic {\n ...V3BlockSameTopicFields\n }\n ... on DatoCmsV3UsefulInfo {\n ...V3UsefulInfoFields\n }\n ... on DatoCmsV3BlockThematicHighlight {\n ...V3BlockThematicHighlightFields\n }\n ... on DatoCmsV3BlockRecruitment {\n ...V3BlockRecruitmentFields\n }\n }\n`\n\nexport default RichDatoCmsContent\n","// extracted by mini-css-extract-plugin\nexport var richContent = \"rich_dato_cms_content-module--richContent--70517\";","// extracted by mini-css-extract-plugin\nexport var leftContent = \"simple-text-module--leftContent--03bfc\";\nexport var simpleText = \"simple-text-module--simpleText--f2b88\";\nexport var simpleTextBlock = \"simple-text-module--simpleTextBlock--2ffa7\";","import React from \"react\"\nimport { graphql } from \"gatsby\"\nimport { SimpleTextFieldsFragment } from \"../../../../../graphql-types\"\nimport * as styles from \"./simple-text.module.scss\"\nimport sanitizeHtml from \"sanitize-html\"\n\ntype RenderProps = {\n data: SimpleTextFieldsFragment\n className?: string\n}\n\nconst SimpleText: React.FC<RenderProps> = ({ data, className }) => {\n const downgradeHeadings = (content: string) => {\n /* Downgrade headings to avoid having more than one h1\n Can't restrict it directly in datoCMS when using TinyMCE */\n const result = content\n .replace(/<h5([^>]*)>/g, \"<h6$1>\")\n .replace(/<\\/h5>/g, \"</h6>\")\n .replace(/<h4([^>]*)>/g, \"<h5$1>\")\n .replace(/<\\/h4>/g, \"</h5>\")\n .replace(/<h3([^>]*)>/g, \"<h4$1>\")\n .replace(/<\\/h3>/g, \"</h4>\")\n .replace(/<h2([^>]*)>/g, \"<h3$1>\")\n .replace(/<\\/h2>/g, \"</h3>\")\n .replace(/<h1([^>]*)>/g, \"<h2$1>\")\n .replace(/<\\/h1>/g, \"</h2>\")\n return result\n }\n const sanitizeHtmlWithImages = content =>\n sanitizeHtml(downgradeHeadings(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\", \"mailto\"],\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\n return (\n <div className={styles.simpleTextBlock}>\n <div className={styles.leftContent}></div>\n <p\n key={data.id}\n dangerouslySetInnerHTML={{\n __html: sanitizeHtmlWithImages(data.simpleContent).replace(new RegExp(\"<p></p>\", \"g\"), \"<br>\"),\n }}\n className={className ? `${className} ${styles.simpleText}` : styles.simpleText}\n />\n </div>\n )\n}\n\nexport const fragments = graphql`\n fragment SimpleTextFields on DatoCmsSimpleText {\n id\n simpleContent\n }\n`\n\nexport default SimpleText\n","import React from \"react\"\nimport * as styles from \"./capsule.module.scss\"\n\ntype RenderProps = {\n title: string\n isSelected: boolean\n special?: boolean\n className?: string\n onClick?: () => void\n link?: {\n url: string\n isInternal: boolean\n }\n}\n\nconst Capsule: React.FC<RenderProps> = ({ title, isSelected, special = false, className = \"\", onClick, link }) => {\n const capsuleClassName = `${styles.capsule} ${isSelected ? styles.selected : \"\"} ${\n special ? styles.special : \"\"\n } ${className}`\n\n if (link?.url) {\n return (\n <a href={link.url} target={link.isInternal ? \"_self\" : \"_blank\"} className={capsuleClassName} onClick={onClick}>\n {title}\n </a>\n )\n }\n\n return (\n <button className={capsuleClassName} onClick={onClick}>\n {title}\n </button>\n )\n}\n\nexport default Capsule\n","// extracted by mini-css-extract-plugin\nexport var capsule = \"capsule-module--capsule--1cc8a\";\nexport var selected = \"capsule-module--selected--f8460\";\nexport var special = \"capsule-module--special--e590a\";","import React from \"react\"\nimport * as styles from \"./scroll-arrow.module.scss\"\n\nconst arrowPath = \"/vectors/v3/\"\ntype RenderProps = {\n direction: \"left\" | \"right\"\n style?: React.CSSProperties\n disabled?: boolean\n onClick?: () => void\n}\nconst ScrollArrow: React.FC<RenderProps> = ({ direction, style, disabled, onClick }) => {\n return (\n <button className={styles.arrows} style={style} onClick={onClick} disabled={disabled}>\n <img\n src={`${arrowPath}left-arrow.svg`}\n className={direction === \"right\" ? styles.rightArrow : \"\"}\n alt={direction === \"left\" ? \"left arrow\" : \"right arrow\"}\n />\n </button>\n )\n}\nexport default ScrollArrow\n","// extracted by mini-css-extract-plugin\nexport var arrows = \"scroll-arrow-module--arrows--c204b\";\nexport var rightArrow = \"scroll-arrow-module--rightArrow--864cd\";","import { format } from \"date-fns\"\nimport { enGB, fr } from \"date-fns/locale\"\n\nexport const useFormatDate = (date: string, locale: string, shortFormat?: boolean) => {\n if (date === \"\") return \"\"\n\n const optionLocale = locale === \"fr\" ? fr : enGB\n const dateFormat = locale === \"fr\" ? \"d MMMM yyyy\" : \"do MMMM yyyy\"\n\n const formattedDate = format(new Date(date), dateFormat, { locale: optionLocale })\n const formattedDateWithOptions = new Intl.DateTimeFormat(locale, {\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(date))\n\n if (locale === \"fr\" && formattedDate.startsWith(\"1 \")) {\n return \"1er \" + formattedDate.slice(2)\n }\n\n return shortFormat ? formattedDateWithOptions : formattedDate\n}\n","export const getAssociatedColor = (color: string) => {\n const colorPairs = [\n [\"#008296\", \"#00aac3\"], // keolis blue\n [\"#bbe2f0\", \"#ecfaff\"], // sky blue\n [\"#183149\", \"#61809d\"], // deep blue\n [\"#554c43\", \"#928b83\"], // warm grey\n [\"#5f006e\", \"#9233a1\"], // purple\n [\"#484f0a\", \"#96b442\"], // green\n [\"#af3100\", \"#e16433\"], // orange\n [\"#ad915c\", \"#dac59d\"], // sand\n ]\n\n const findAssociatedColor = (inputColor: string) => {\n for (const [color1, color2] of colorPairs) {\n if (inputColor.toLowerCase() === color1) return color2\n if (inputColor.toLowerCase() === color2) return color1\n }\n return \"\"\n }\n if (!color) return \"\"\n return findAssociatedColor(color)\n}\n","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjIiIGhlaWdodD0iMjMiIHZpZXdCb3g9IjAgMCAyMiAyMyIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0wLjAwMDI3OTAxOCAyMi4yODU3SDUuMTQzMTRWNy43MTQzMkgwLjAwMDI3OTAxOFYyMi4yODU3Wk0yLjU4Njk4IDBDMS4wMjE0MiAwIDAgMS4xMTAxNCAwIDIuNTcxNDNDMCAzLjk5Nzk3IDAuOTkxODgxIDUuMTQyODYgMi41MjYzNCA1LjE0Mjg2SDIuNTU1ODhDNC4xNTA5OCA1LjE0Mjg2IDUuMTQyODYgMy45OTc5NyA1LjE0Mjg2IDIuNTcxNDNDNS4xMTQ4NyAxLjExMDE0IDQuMTUwOTggMCAyLjU4Njk4IDBaTTIxLjQyODkgMTQuMTIzNEMyMS40Mjg5IDkuNzQ5MjEgMTkuMDcyOCA3LjcxNDMyIDE1LjkzMjkgNy43MTQzMkMxMy4zOTgzIDcuNzE0MzIgMTIuMjY1NyA5LjA5NDgzIDExLjYzMTMgMTAuMDY1OVY4LjA0ODUxSDYuODU3NDJDNi45MjA3MSA5LjM4NTI4IDYuODU3NDIgMjIuMjg1NyA2Ljg1NzQyIDIyLjI4NTdIMTEuNjMxM1YxNC4zMzUyQzExLjYzMTMgMTMuOTExNyAxMS42NjIxIDEzLjQ4NDggMTEuNzg4NyAxMy4xODIxQzEyLjEzMjcgMTIuMzMxOCAxMi45MTk3IDExLjQ1MTcgMTQuMjM3MyAxMS40NTE3QzE1Ljk2NTQgMTEuNDUxNyAxNi42NTUgMTIuNzU2OSAxNi42NTUgMTQuNjcxMVYyMi4yODU3SDIxLjQyODlWMTQuMTIzNFpNMTIuMDAwMyA5LjQ3NDg5QzEyLjAxMDYgOS40NTk0NiAxMi4wMjQzIDkuNDQ0MDMgMTIuMDM0NiA5LjQyODYxVjkuNDc0ODlIMTIuMDAwM1oiIGZpbGw9ImJsYWNrIiBmaWxsLW9wYWNpdHk9IjAuNSIvPgo8L3N2Zz4K\"","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjUiIGhlaWdodD0iMTgiIHZpZXdCb3g9IjAgMCAyNSAxOCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yNC44Mzc0IDIuODc2MjhWMi44OTVDMjQuNzUgMy4xMjA5NSAyNC41NTk3IDMuMjkwNzMgMjQuMzk4MiAzLjQ3MjE0QzI0LjA4NzkgMy44Mzk0NiAyMy43MDg4IDQuMTcxMjkgMjMuMzIyMiA0LjQ4Njk3QzIzLjA4MjIgNC42NzYxMiAyMi44MTU2IDQuODY2NTcgMjIuNTU0MiA1LjAzNTcxQzIyLjQ3NzEgNS4wODM0OCAyMi40MzY0IDUuMTQ3MzkgMjIuNDM2NCA1LjIzMDY3VjUuODM4MTVDMjIuNDM2NCA2LjM5Mzk4IDIyLjM3NzkgNi45MzQzMyAyMi4yODA5IDcuNDgzMDZDMjIuMTU4NyA4LjE4NjA4IDIxLjk2NDcgOC44NjEzNSAyMS43MTE0IDkuNTIxNzdDMjEuNDQ3NyAxMC4yMjQ4IDIxLjA5NjcgMTAuOTE2OCAyMC42OTkgMTEuNTc3M0MyMC4yNjM1IDEyLjI2NDggMTkuNzU2MiAxMi45MTE3IDE5LjE5MzQgMTMuNTM5OEMxOC45NjYgMTMuNzkxNiAxOC43MDQ2IDE0LjAzODIgMTguNDQ0NiAxNC4yNjM1QzE3LjkzODggMTQuNzQ4MyAxNy4zOTA4IDE1LjE1NjkgMTYuNzkzMSAxNS41NTA3QzE2LjM2MjEgMTUuODQ1OCAxNS44OTQ4IDE2LjExMzcgMTUuNDA4OSAxNi4zNDU0QzE0LjYzMTMgMTYuNzM0MSAxMy44MTMgMTcuMDQ4NSAxMi45NTMxIDE3LjI5MzhDMTIuMTQ5NiAxNy41MjQ5IDExLjMyMzggMTcuNjgxOCAxMC40NzU5IDE3Ljc4NTdDMTAuMTE4MSAxNy44Mjk2IDkuNzUzMDMgMTcuODQ0NCA5LjM5NjgxIDE3Ljg1NjdIOS4wODQyOEg4Ljk1NzYzSDguNzkzOTZIOC4wMTQxMkg3Ljg0MDA4SDcuNzMyN0M2LjYyNTUxIDE3Ljg2MzggNS41NDk0MyAxNy42OTY2IDQuNDk0ODMgMTcuNDI4N0MzLjU1NjUgMTcuMTk2MyAyLjY1MjIzIDE2Ljg4MDYgMS43OTI0IDE2LjQ3NjVDMS41MDY1NCAxNi4zNDU0IDEuMjI4ODEgMTYuMjA1MyAwLjk0NjY0OCAxNi4wNDkxQzAuODQ5NjMxIDE2LjAwMTMgMC44NDAwMDMgMTUuOTY1OCAwLjg4NTkyIDE1LjkwODRDMC45OTQwNDYgMTUuODk0OCAxLjEwMzY1IDE1LjkwODQgMS4yMTE3OCAxNS45MDg0QzEuNjMxNyAxNS45NTEgMi4wNTk3NiAxNS45NjU4IDIuNDc3NDUgMTUuOTM3NEMyLjg0NzAxIDE1LjkwODQgMy4yMDg0MiAxNS44OTQ4IDMuNTY1MzggMTUuODQ1OEM0LjQ1MTEzIDE1LjcxODYgNS4zMDg3NCAxNS40ODc1IDYuMTE1MjQgMTUuMTY5OUM2Ljc2NDc0IDE0LjkxMDMgNy4zNTI3NyAxNC41ODY5IDcuOTI1MjUgMTQuMjM1MUM3LjkzNDg4IDE0LjIyMjIgNy45NDAwNiAxNC4yMjIyIDcuOTU4NTggMTQuMjA2N0M3Ljc3NjM5IDE0LjE2OTkgNy42MDM4MyAxNC4xNjk5IDcuNDI2MDkgMTQuMTQyOEM2LjgzNTEgMTQuMDU4OCA2LjI4MjYyIDEzLjg5MSA1Ljc1ODI4IDEzLjY0MjRDNS4yOTk4NSAxMy40MTA3IDQuODc2MjMgMTMuMTIyOCA0LjUyMDc1IDEyLjc2MzhDNC4xNjgyMiAxMi40Mzk3IDMuODk5MzkgMTIuMDc1IDMuNjgyNCAxMS42NTk5QzMuNjIxNjcgMTEuNTQ4MiAzLjU2NTM4IDExLjQyNzUgMy41MTIwNiAxMS4yOTY0QzMuNDY1NCAxMS4xODM1IDMuNTE5NDcgMTEuMTIwMiAzLjY2MjQgMTEuMTQ4QzMuODk5MzkgMTEuMTgzNSA0LjEzODYgMTEuMjExMiA0LjM3NTU5IDExLjIxMTJDNC43NDg4NSAxMS4yMjQxIDUuMTI5NTEgMTEuMTY4IDUuNTE3NTggMTEuMDk1N0M1LjI5OTg1IDExLjA2NCA1LjA4OTUyIDExLjAwMDEgNC44ODU4NiAxMC45Mjg1QzQuNjY1MTYgMTAuODU5NCA0LjQ2MzcyIDEwLjc1MjIgNC4yNjA4IDEwLjY2ODNDNC4wNzYzOSAxMC41NzczIDMuODg0NTggMTAuNDY0OSAzLjcwNTM1IDEwLjM0NDlDMy4xMzUxIDkuOTUzMDEgMi42Njc3OCA5LjQ4NzU1IDIuMzI0MTUgOC45MjM5N0MyLjAzOTAyIDguNDUzMzUgMS44NTQ2MSA3Ljk0NTkzIDEuNzc1MzcgNy40MjY4OUMxLjc2MTMgNy4yNTc3NiAxLjc0NDI3IDcuMDk0NDMgMS43NTI0MSA2LjkzNDMzQzEuNzYxMyA2LjgyOTc0IDEuODIyNzcgNi43OTM1OSAxLjkzMzg2IDYuODQ5NzZDMi40NjU2IDcuMDgyODEgMy4wMTU4NiA3LjI0MjkxIDMuNjIxNjcgNy4zMDYxN0MzLjY4MjQgNy4zMDYxNyAzLjc0NzU3IDcuMzI2ODMgMy44MzIgNy4zMTM5MkMzLjYxMjA0IDcuMTczMTkgMy40MTg3NSA3LjAxMTE1IDMuMjI2MTkgNi44NDk3NkMyLjg0ODQ5IDYuNTM5MjQgMi41NTAwMyA2LjE1OTY0IDIuMzE0NTIgNS43NTkzOUMyLjAzOTAyIDUuMjgyMzEgMS44Njk0MyA0Ljc4MiAxLjgxNzU4IDQuMjM5MDdDMS43NTI0MSAzLjYwODM1IDEuODA3OTYgMi45ODg2IDIuMDUwODcgMi4zOTE0NUMyLjE0NDE5IDIuMTUxMyAyLjI1ODI0IDEuOTMzMSAyLjM3NDUxIDEuNzI5MUMyLjQ2NTYgMS41OTY3NiAyLjUyNzgxIDEuNTk2NzYgMi42NDQ4MyAxLjcyMkMyLjg1NTE1IDEuOTMzMSAzLjA2ODQ1IDIuMTQzNTUgMy4yOTA2MiAyLjM0MTFDMy43MTQ5OCAyLjc0MTM1IDQuMTY4MjIgMy4wOTI1NCA0LjY1MDM1IDMuNDIzNzJDNS4yNDM1NyAzLjgzOTQ2IDUuODY2NCA0LjIwNDg2IDYuNTI0MDUgNC41MjdDNy4zNDMxNCA0LjkzNjI5IDguMTk0ODMgNS4yNjY4MiA5LjA4NDI4IDUuNTE0MDdDOS44OTM3NCA1LjczMDk4IDEwLjcyOTkgNS44OTk0OCAxMS41NzI3IDUuOTk4MjVDMTEuODY4MiA2LjAyNjAxIDEyLjE2MjIgNi4wNTM3NyAxMi40NjM2IDYuMDY5OTFDMTIuNTY2NSA2LjA4MzQ2IDEyLjU4MDYgNi4wNjk5MSAxMi41NjY1IDUuOTcxMTRDMTIuNTMxIDUuODE1NTUgMTIuNTEzMiA1LjY2NjQzIDEyLjQ5NjIgNS41MTQwN0MxMi40NzMyIDUuMjY2ODIgMTIuNDczMiA1LjAyNzMxIDEyLjQ5NjIgNC43ODJDMTIuNTE5MSA0LjUyNyAxMi41NjY1IDQuMjY4MTIgMTIuNjQyOCA0LjAyMjgxQzEyLjgyNjUgMy40MzkyMSAxMy4xMzYxIDIuODk1IDEzLjU5IDIuNDEyNzZDMTQuMDQ5OSAxLjkxMjQ0IDE0LjYxOTUgMS41MTggMTUuMjg0NSAxLjI0NDkyQzE1LjY0OTYgMS4wODA5NSAxNi4wMzQ3IDAuOTYwODcgMTYuNDM4NCAwLjg5OTU0MUMxNi42MTYxIDAuODcyNDI3IDE2Ljc4NTcgMC44NzI0MjcgMTYuOTcwOCAwLjg2NDY4QzE2Ljk4NzEgMC44NjQ2OCAxNy4wMDI3IDAuODY0NjggMTcuMDIwNSAwLjg1NjkzNEgxNy4xMjI3QzE3LjE1NjcgMC44NjQ2OCAxNy4xOTIzIDAuODY0NjggMTcuMjI4NiAwLjg1NjkzNEgxNy44ODYyQzE4LjAzMjEgMC44NzI0MjcgMTguMTgxIDAuODcyNDI3IDE4LjMyNzYgMC44ODUzMzlDMTguNjgwOSAwLjkyMTQ5MSAxOS4wMjA4IDEuMDE3NjggMTkuMzQ3NCAxLjEzMjU5QzE5Ljg1OTIgMS4zMTI3MSAyMC4zMTYxIDEuNTU5OTYgMjAuNzM0NSAxLjg3NjI5QzIwLjgxOSAxLjkzMzEgMjAuODk0NSAyLjAxMTg2IDIwLjk3NjcgMi4wOTUxNEMyMS4wMzMgMi4xNDM1NSAyMS4wOTY3IDIuMTUxMyAyMS4xNzU5IDIuMTQzNTVDMjEuNzg3NyAyLjAxNzAyIDIyLjM4MzggMS44NjkxOSAyMi45NTYzIDEuNjUyOTJDMjMuMzI3MyAxLjUwMzc5IDIzLjY5MSAxLjM1NjYgMjQuMDM2MSAxLjE5NDU3QzI0LjA4MDUgMS4xNjU1MiAyNC4xMjA1IDEuMTUyNiAyNC4xNjcyIDEuMTgwMzZDMjQuMjEwOSAxLjIwODc3IDI0LjE5NjEgMS4yNTI2NyAyNC4xNzk4IDEuMjg0OTVDMjQuMDgwNSAxLjU3Mjg3IDIzLjkzOTggMS44MjkxNiAyMy43NjEzIDIuMDczMTlDMjMuNTIyMSAyLjQzOTg3IDIzLjIyOTYgMi43NTU1NSAyMi44NzE5IDMuMDMxMjFDMjIuNjc5MyAzLjIwODEgMjIuNDYzMSAzLjM1NTI5IDIyLjIyMzEgMy40NzIxNEMyMi42MDM4IDMuNDIzNzIgMjIuOTY2NyAzLjM2ODIgMjMuMzI3MyAzLjI3NTg4QzIzLjc5MzIgMy4xNzkwNSAyNC4yNDEyIDMuMDQ0MTIgMjQuNjcyMyAyLjg3NjI4QzI0LjcyOTMgMi44NjkxNyAyNC43ODQxIDIuODI3MjEgMjQuODM3NCAyLjg3NjI4WiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC41Ii8+Cjwvc3ZnPgo=\""],"names":["breadcrumbContainer","home","pElement","_ref","title","homeLabel","middlePages","locale","useLocale","_useSlugs","useSlugs","homeLink","getInternalExternalLink","React","className","styles","href","map","middlePage","key","lang","DisplayImage","image","svgStyle","imgStyle","pictogramColor","fillPictogramColor","isLogo","heightSize","format","ReactSVG","src","url","height","fill","beforeInjection","svg","setAttribute","alt","querySelector","backgroundSvg","backgroundColor","backgroundColorBis","textColor","buttonText","redirectLink","style","afterInjection","querySelectorAll","forEach","path","target","isInternalPage","Capsule","isSelected","special","_data$backgroundImage","_data$backgroundImage2","data","isMobile","useIsMobile","__typename","backgroundImage","urlMobile","Card","cardBackgroundColor","hex","getAssociatedColor","cardTextColor","_redirectLink$interna","_redirectLink$interna2","article","arrows","onScroll","cards","useRef","publicationDate","internalLink","ref","id","useFormatDate","ScrollArrow","direction","onClick","sanitizedText","sanitizeHtml","text","_useState","useState","currentLink","setCurrentLink","recruitment","redirectLinkContentPage","isBackgroundDisplayed","dangerouslySetInnerHTML","__html","buttonLabel","link","isInternal","length","Carousel","scrollDirection","imageOrVideo","urlVideo","tabIndex","allow","sandbox","loading","allowFullScreen","cardsList","introductionText","redirectLinkHighlight","gradientBackground","thematicCard","card","index","_card$cardBackgroundC","_card$cardBackgroundC2","_card$cardBackgroundC3","_card$cardBackgroundC4","_card$cardTextColor","_card$cardTextColorHo","sanitizedDescription","description","substring","cardBackgroundColorHover","cardTextColorHover","justifyContent","keyFigureTitle","_data$keyFigures","keyFigures","kf","_kf$redirectLink","_kf$redirectLink2","_kf$redirectLink3","value","stylesToParse","iframe","name","split","reduce","parsedStyles","_Object$assign","splitted","Object","assign","trim","_ref$isParentPage","isParentPage","_useLocale","defaultLocale","presentation","block","indexSelected","setIndex","shouldHovered","v3BlockColor","blockImage","blockTitle","chapo","linkToPage","slug","color","onMouseEnter","onMouseLeave","border","actionButtonText","photo","_data$members","refContainer","displayIcon","icon","members","member","function","linkedinProfile","LinkedinGray","twitterProfile","TwitterGray","itemWidth","current","children","clientWidth","scrollBy","left","top","behavior","btnImage","buttonContent","hoverButton1","setHoverButton1","_useState2","hoverButton2","setHoverButton2","renderButton","pictogram","color2","isImgButton","imgContent","hover","setHover","onMouseOver","page","MapRightArrow","hoverColor","button2","title2","pictogram2","link2","hoverColor2","isImgButton2","imgContent2","heading","caption","document","captionAriaLabel","c","buildStructuredContent","type","level","content","buildHeadingText","buildRichText","role","keyNumbers","_data$backgroundColor","getKeyNumbersStyle","keyNumberList","keyNumber","_keyNumber$color","label","socialNetworkLink","urlWebSite","subtitle","facebook","urlToFacebook","twitter","urlToTwitter","linkedin","urlToLinkedin","instagram","urlToInstagram","picture","bgColor","_getColors","toLowerCase","titleColor","borderColor","shouldDisplayTitle","isTitleDisplayed","shouldDisplaySocialNetworks","areSocialNetworksDisplayed","linkedinLink","twitterLink","getSocialNetworkLink","logoPath","marginTop","options","renderInlineRecord","_ref2","record","renderNode","adapter","allowedTags","allowedAttributes","renderLinkToRecord","_ref3","render","renderContent","pdf","tag","UserJourneyButtonArrow","internalPage","_data$sameSubjectBloc","sameSubjectBlockLink","colorBlock","pages","InternalBlock","ExternalBlock","svgContainer","images","slideIndex","setSlideIndex","translationX","setTranslationX","img","transform","rightArrow","position","structuredText","ReactHtmlParser","renderBlock","_ref4","a","concat","allowedSchemesByTag","exclusiveFilter","frame","attribs","startsWith","_data$transportMethod","transportMethodContent","transportModeKeolis","methodTransport","_methodTransport$tran","transportModeName","transportModePage","transportModeIcon","_data$title","quote","date","scrollToCard","partners","partner","logo","rel","headingH2","ImageOrVideo","element","cssClass","previousElement","diaporama","handleScroll","socialNetworks","governanceMembersPageSlug","_member$opacifyingFil","_member$opacifyingFil2","_member$opacifyingFil3","_member$opacifyingFil4","_member$opacifyingFil5","_member$opacifyingFil6","_socialNetworks$find","_socialNetworks$find2","dedicatedPage","opacifyingFilter","at","filterColor","filterOpacity","find","network","includes","listOfPdf","group","carousel","listOfTexts","elt","values","join","usefulInfoContent","item","SimpleText","richContent","BiographicCardHorizontal","V3BiographicCardVertical","Button","IFrame","Image","KeyNumbers","NetworkContact","OutlinedTextBlock","RelatedContent","Slider","StructuredTextContent","TransportMode","Video","Quote","Presentation","Partners","PartnersLarge","KeyFigures","V3StructuredTextContent","V3Diaporama","V3Image","V3Video","V3BlockToPdf","V3TextCarousel","HighLight","V3UsefulInfos","Thematic","Recruitment","simpleText","simpleContent","replace","downgradeHeadings","p","table","tbody","tr","td","span","li","ul","ol","blockquote","div","RegExp","_ref$special","_ref$className","capsuleClassName","disabled","arrowPath","shortFormat","optionLocale","fr","enGB","dateFormat","formattedDate","Date","formattedDateWithOptions","Intl","DateTimeFormat","month","day","slice","colorPairs","inputColor","_i","_colorPairs","_colorPairs$_i","color1","findAssociatedColor"],"sourceRoot":""}