{"version":3,"file":"976-1b0197df35ebebb2560f.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/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/images/linkedin_gray.svg","webpack://keolis.com/./static/images/twitter_gray.svg","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/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/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"],"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 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,PHN2ZyB3aWR0aD0iMjIiIGhlaWdodD0iMjMiIHZpZXdCb3g9IjAgMCAyMiAyMyIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0wLjAwMDI3OTAxOCAyMi4yODU3SDUuMTQzMTRWNy43MTQzMkgwLjAwMDI3OTAxOFYyMi4yODU3Wk0yLjU4Njk4IDBDMS4wMjE0MiAwIDAgMS4xMTAxNCAwIDIuNTcxNDNDMCAzLjk5Nzk3IDAuOTkxODgxIDUuMTQyODYgMi41MjYzNCA1LjE0Mjg2SDIuNTU1ODhDNC4xNTA5OCA1LjE0Mjg2IDUuMTQyODYgMy45OTc5NyA1LjE0Mjg2IDIuNTcxNDNDNS4xMTQ4NyAxLjExMDE0IDQuMTUwOTggMCAyLjU4Njk4IDBaTTIxLjQyODkgMTQuMTIzNEMyMS40Mjg5IDkuNzQ5MjEgMTkuMDcyOCA3LjcxNDMyIDE1LjkzMjkgNy43MTQzMkMxMy4zOTgzIDcuNzE0MzIgMTIuMjY1NyA5LjA5NDgzIDExLjYzMTMgMTAuMDY1OVY4LjA0ODUxSDYuODU3NDJDNi45MjA3MSA5LjM4NTI4IDYuODU3NDIgMjIuMjg1NyA2Ljg1NzQyIDIyLjI4NTdIMTEuNjMxM1YxNC4zMzUyQzExLjYzMTMgMTMuOTExNyAxMS42NjIxIDEzLjQ4NDggMTEuNzg4NyAxMy4xODIxQzEyLjEzMjcgMTIuMzMxOCAxMi45MTk3IDExLjQ1MTcgMTQuMjM3MyAxMS40NTE3QzE1Ljk2NTQgMTEuNDUxNyAxNi42NTUgMTIuNzU2OSAxNi42NTUgMTQuNjcxMVYyMi4yODU3SDIxLjQyODlWMTQuMTIzNFpNMTIuMDAwMyA5LjQ3NDg5QzEyLjAxMDYgOS40NTk0NiAxMi4wMjQzIDkuNDQ0MDMgMTIuMDM0NiA5LjQyODYxVjkuNDc0ODlIMTIuMDAwM1oiIGZpbGw9ImJsYWNrIiBmaWxsLW9wYWNpdHk9IjAuNSIvPgo8L3N2Zz4K\"","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjUiIGhlaWdodD0iMTgiIHZpZXdCb3g9IjAgMCAyNSAxOCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yNC44Mzc0IDIuODc2MjhWMi44OTVDMjQuNzUgMy4xMjA5NSAyNC41NTk3IDMuMjkwNzMgMjQuMzk4MiAzLjQ3MjE0QzI0LjA4NzkgMy44Mzk0NiAyMy43MDg4IDQuMTcxMjkgMjMuMzIyMiA0LjQ4Njk3QzIzLjA4MjIgNC42NzYxMiAyMi44MTU2IDQuODY2NTcgMjIuNTU0MiA1LjAzNTcxQzIyLjQ3NzEgNS4wODM0OCAyMi40MzY0IDUuMTQ3MzkgMjIuNDM2NCA1LjIzMDY3VjUuODM4MTVDMjIuNDM2NCA2LjM5Mzk4IDIyLjM3NzkgNi45MzQzMyAyMi4yODA5IDcuNDgzMDZDMjIuMTU4NyA4LjE4NjA4IDIxLjk2NDcgOC44NjEzNSAyMS43MTE0IDkuNTIxNzdDMjEuNDQ3NyAxMC4yMjQ4IDIxLjA5NjcgMTAuOTE2OCAyMC42OTkgMTEuNTc3M0MyMC4yNjM1IDEyLjI2NDggMTkuNzU2MiAxMi45MTE3IDE5LjE5MzQgMTMuNTM5OEMxOC45NjYgMTMuNzkxNiAxOC43MDQ2IDE0LjAzODIgMTguNDQ0NiAxNC4yNjM1QzE3LjkzODggMTQuNzQ4MyAxNy4zOTA4IDE1LjE1NjkgMTYuNzkzMSAxNS41NTA3QzE2LjM2MjEgMTUuODQ1OCAxNS44OTQ4IDE2LjExMzcgMTUuNDA4OSAxNi4zNDU0QzE0LjYzMTMgMTYuNzM0MSAxMy44MTMgMTcuMDQ4NSAxMi45NTMxIDE3LjI5MzhDMTIuMTQ5NiAxNy41MjQ5IDExLjMyMzggMTcuNjgxOCAxMC40NzU5IDE3Ljc4NTdDMTAuMTE4MSAxNy44Mjk2IDkuNzUzMDMgMTcuODQ0NCA5LjM5NjgxIDE3Ljg1NjdIOS4wODQyOEg4Ljk1NzYzSDguNzkzOTZIOC4wMTQxMkg3Ljg0MDA4SDcuNzMyN0M2LjYyNTUxIDE3Ljg2MzggNS41NDk0MyAxNy42OTY2IDQuNDk0ODMgMTcuNDI4N0MzLjU1NjUgMTcuMTk2MyAyLjY1MjIzIDE2Ljg4MDYgMS43OTI0IDE2LjQ3NjVDMS41MDY1NCAxNi4zNDU0IDEuMjI4ODEgMTYuMjA1MyAwLjk0NjY0OCAxNi4wNDkxQzAuODQ5NjMxIDE2LjAwMTMgMC44NDAwMDMgMTUuOTY1OCAwLjg4NTkyIDE1LjkwODRDMC45OTQwNDYgMTUuODk0OCAxLjEwMzY1IDE1LjkwODQgMS4yMTE3OCAxNS45MDg0QzEuNjMxNyAxNS45NTEgMi4wNTk3NiAxNS45NjU4IDIuNDc3NDUgMTUuOTM3NEMyLjg0NzAxIDE1LjkwODQgMy4yMDg0MiAxNS44OTQ4IDMuNTY1MzggMTUuODQ1OEM0LjQ1MTEzIDE1LjcxODYgNS4zMDg3NCAxNS40ODc1IDYuMTE1MjQgMTUuMTY5OUM2Ljc2NDc0IDE0LjkxMDMgNy4zNTI3NyAxNC41ODY5IDcuOTI1MjUgMTQuMjM1MUM3LjkzNDg4IDE0LjIyMjIgNy45NDAwNiAxNC4yMjIyIDcuOTU4NTggMTQuMjA2N0M3Ljc3NjM5IDE0LjE2OTkgNy42MDM4MyAxNC4xNjk5IDcuNDI2MDkgMTQuMTQyOEM2LjgzNTEgMTQuMDU4OCA2LjI4MjYyIDEzLjg5MSA1Ljc1ODI4IDEzLjY0MjRDNS4yOTk4NSAxMy40MTA3IDQuODc2MjMgMTMuMTIyOCA0LjUyMDc1IDEyLjc2MzhDNC4xNjgyMiAxMi40Mzk3IDMuODk5MzkgMTIuMDc1IDMuNjgyNCAxMS42NTk5QzMuNjIxNjcgMTEuNTQ4MiAzLjU2NTM4IDExLjQyNzUgMy41MTIwNiAxMS4yOTY0QzMuNDY1NCAxMS4xODM1IDMuNTE5NDcgMTEuMTIwMiAzLjY2MjQgMTEuMTQ4QzMuODk5MzkgMTEuMTgzNSA0LjEzODYgMTEuMjExMiA0LjM3NTU5IDExLjIxMTJDNC43NDg4NSAxMS4yMjQxIDUuMTI5NTEgMTEuMTY4IDUuNTE3NTggMTEuMDk1N0M1LjI5OTg1IDExLjA2NCA1LjA4OTUyIDExLjAwMDEgNC44ODU4NiAxMC45Mjg1QzQuNjY1MTYgMTAuODU5NCA0LjQ2MzcyIDEwLjc1MjIgNC4yNjA4IDEwLjY2ODNDNC4wNzYzOSAxMC41NzczIDMuODg0NTggMTAuNDY0OSAzLjcwNTM1IDEwLjM0NDlDMy4xMzUxIDkuOTUzMDEgMi42Njc3OCA5LjQ4NzU1IDIuMzI0MTUgOC45MjM5N0MyLjAzOTAyIDguNDUzMzUgMS44NTQ2MSA3Ljk0NTkzIDEuNzc1MzcgNy40MjY4OUMxLjc2MTMgNy4yNTc3NiAxLjc0NDI3IDcuMDk0NDMgMS43NTI0MSA2LjkzNDMzQzEuNzYxMyA2LjgyOTc0IDEuODIyNzcgNi43OTM1OSAxLjkzMzg2IDYuODQ5NzZDMi40NjU2IDcuMDgyODEgMy4wMTU4NiA3LjI0MjkxIDMuNjIxNjcgNy4zMDYxN0MzLjY4MjQgNy4zMDYxNyAzLjc0NzU3IDcuMzI2ODMgMy44MzIgNy4zMTM5MkMzLjYxMjA0IDcuMTczMTkgMy40MTg3NSA3LjAxMTE1IDMuMjI2MTkgNi44NDk3NkMyLjg0ODQ5IDYuNTM5MjQgMi41NTAwMyA2LjE1OTY0IDIuMzE0NTIgNS43NTkzOUMyLjAzOTAyIDUuMjgyMzEgMS44Njk0MyA0Ljc4MiAxLjgxNzU4IDQuMjM5MDdDMS43NTI0MSAzLjYwODM1IDEuODA3OTYgMi45ODg2IDIuMDUwODcgMi4zOTE0NUMyLjE0NDE5IDIuMTUxMyAyLjI1ODI0IDEuOTMzMSAyLjM3NDUxIDEuNzI5MUMyLjQ2NTYgMS41OTY3NiAyLjUyNzgxIDEuNTk2NzYgMi42NDQ4MyAxLjcyMkMyLjg1NTE1IDEuOTMzMSAzLjA2ODQ1IDIuMTQzNTUgMy4yOTA2MiAyLjM0MTFDMy43MTQ5OCAyLjc0MTM1IDQuMTY4MjIgMy4wOTI1NCA0LjY1MDM1IDMuNDIzNzJDNS4yNDM1NyAzLjgzOTQ2IDUuODY2NCA0LjIwNDg2IDYuNTI0MDUgNC41MjdDNy4zNDMxNCA0LjkzNjI5IDguMTk0ODMgNS4yNjY4MiA5LjA4NDI4IDUuNTE0MDdDOS44OTM3NCA1LjczMDk4IDEwLjcyOTkgNS44OTk0OCAxMS41NzI3IDUuOTk4MjVDMTEuODY4MiA2LjAyNjAxIDEyLjE2MjIgNi4wNTM3NyAxMi40NjM2IDYuMDY5OTFDMTIuNTY2NSA2LjA4MzQ2IDEyLjU4MDYgNi4wNjk5MSAxMi41NjY1IDUuOTcxMTRDMTIuNTMxIDUuODE1NTUgMTIuNTEzMiA1LjY2NjQzIDEyLjQ5NjIgNS41MTQwN0MxMi40NzMyIDUuMjY2ODIgMTIuNDczMiA1LjAyNzMxIDEyLjQ5NjIgNC43ODJDMTIuNTE5MSA0LjUyNyAxMi41NjY1IDQuMjY4MTIgMTIuNjQyOCA0LjAyMjgxQzEyLjgyNjUgMy40MzkyMSAxMy4xMzYxIDIuODk1IDEzLjU5IDIuNDEyNzZDMTQuMDQ5OSAxLjkxMjQ0IDE0LjYxOTUgMS41MTggMTUuMjg0NSAxLjI0NDkyQzE1LjY0OTYgMS4wODA5NSAxNi4wMzQ3IDAuOTYwODcgMTYuNDM4NCAwLjg5OTU0MUMxNi42MTYxIDAuODcyNDI3IDE2Ljc4NTcgMC44NzI0MjcgMTYuOTcwOCAwLjg2NDY4QzE2Ljk4NzEgMC44NjQ2OCAxNy4wMDI3IDAuODY0NjggMTcuMDIwNSAwLjg1NjkzNEgxNy4xMjI3QzE3LjE1NjcgMC44NjQ2OCAxNy4xOTIzIDAuODY0NjggMTcuMjI4NiAwLjg1NjkzNEgxNy44ODYyQzE4LjAzMjEgMC44NzI0MjcgMTguMTgxIDAuODcyNDI3IDE4LjMyNzYgMC44ODUzMzlDMTguNjgwOSAwLjkyMTQ5MSAxOS4wMjA4IDEuMDE3NjggMTkuMzQ3NCAxLjEzMjU5QzE5Ljg1OTIgMS4zMTI3MSAyMC4zMTYxIDEuNTU5OTYgMjAuNzM0NSAxLjg3NjI5QzIwLjgxOSAxLjkzMzEgMjAuODk0NSAyLjAxMTg2IDIwLjk3NjcgMi4wOTUxNEMyMS4wMzMgMi4xNDM1NSAyMS4wOTY3IDIuMTUxMyAyMS4xNzU5IDIuMTQzNTVDMjEuNzg3NyAyLjAxNzAyIDIyLjM4MzggMS44NjkxOSAyMi45NTYzIDEuNjUyOTJDMjMuMzI3MyAxLjUwMzc5IDIzLjY5MSAxLjM1NjYgMjQuMDM2MSAxLjE5NDU3QzI0LjA4MDUgMS4xNjU1MiAyNC4xMjA1IDEuMTUyNiAyNC4xNjcyIDEuMTgwMzZDMjQuMjEwOSAxLjIwODc3IDI0LjE5NjEgMS4yNTI2NyAyNC4xNzk4IDEuMjg0OTVDMjQuMDgwNSAxLjU3Mjg3IDIzLjkzOTggMS44MjkxNiAyMy43NjEzIDIuMDczMTlDMjMuNTIyMSAyLjQzOTg3IDIzLjIyOTYgMi43NTU1NSAyMi44NzE5IDMuMDMxMjFDMjIuNjc5MyAzLjIwODEgMjIuNDYzMSAzLjM1NTI5IDIyLjIyMzEgMy40NzIxNEMyMi42MDM4IDMuNDIzNzIgMjIuOTY2NyAzLjM2ODIgMjMuMzI3MyAzLjI3NTg4QzIzLjc5MzIgMy4xNzkwNSAyNC4yNDEyIDMuMDQ0MTIgMjQuNjcyMyAyLjg3NjI4QzI0LjcyOTMgMi44NjkxNyAyNC43ODQxIDIuODI3MjEgMjQuODM3NCAyLjg3NjI4WiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC41Ii8+Cjwvc3ZnPgo=\"","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\";","// 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","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"],"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","photo","_data$members","refContainer","displayIcon","icon","members","member","function","linkedinProfile","twitterProfile","itemWidth","current","children","clientWidth","scrollBy","left","top","behavior","btnImage","buttonContent","hoverButton1","setHoverButton1","_useState2","hoverButton2","setHoverButton2","renderButton","pictogram","color","color2","isImgButton","imgContent","hover","setHover","border","onMouseOver","onMouseLeave","page","slug","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","blockTitle","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","_useLocale","defaultLocale","internalPage","chapo","_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","_ref$isParentPage","isParentPage","presentation","block","indexSelected","setIndex","shouldHovered","v3BlockColor","blockImage","linkToPage","onMouseEnter","actionButtonText","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":""}