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