{"version":3,"file":"component---src-v-3-templates-newsroom-newsroom-tsx-cbd84e21127642ce05a6.js","mappings":"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","sources":["webpack://keolis.com/./src/v3/components/banner/banner.tsx","webpack://keolis.com/./src/v3/components/banner/banner.module.scss","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/media-cards/card/card-image/card-image.tsx","webpack://keolis.com/./src/v3/components/media-cards/card/card-image/card-image.module.scss","webpack://keolis.com/./src/v3/components/media-cards/card/card-svg/card-svg.module.scss","webpack://keolis.com/./src/v3/components/media-cards/card/card-svg/card-svg.tsx","webpack://keolis.com/./src/v3/components/media-cards/card/card-split/card-split.tsx","webpack://keolis.com/./src/v3/components/media-cards/card/card-split/card-split.module.scss","webpack://keolis.com/./src/v3/components/media-cards/card/card.tsx","webpack://keolis.com/./src/v3/components/media-cards/card/card.module.scss","webpack://keolis.com/./src/v3/components/media-cards/media-cards.tsx","webpack://keolis.com/./src/v3/components/media-cards/media-cards.module.scss","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/filter-bar/filter-bar.tsx","webpack://keolis.com/./src/v3/components/tools/filter-bar/filter-bar.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/templates/newsroom/newsroom.tsx","webpack://keolis.com/./src/v3/templates/newsroom/newsroom.module.scss","webpack://keolis.com/./src/v3/utils/get-associated-color.ts","webpack://keolis.com/./src/v3/utils/get-is-date-in-range.ts"],"sourcesContent":["import React from \"react\"\nimport * as styles from \"./banner.module.scss\"\n\ntype RenderProps = {\n  title: string\n  image?: {\n    alt?: string\n    url?: string\n  }\n  isFullscreenImage?: boolean\n}\n\nconst Banner: React.FC<RenderProps> = ({ title, image, isFullscreenImage }) => {\n  return (\n    <div className={styles.banner}>\n      <div className={`${styles.container} ${isFullscreenImage ? styles.fullscreenBanner : \"\"}`}>\n        <h1 className={`${styles.title} ${isFullscreenImage ? styles.overlayTitle : \"\"}`}>{title}</h1>\n        {image?.url && (\n          <img\n            src={image.url}\n            alt={image.alt || \"\"}\n            className={`${styles.image} ${isFullscreenImage ? styles.fullscreenImage : \"\"}`}\n          />\n        )}\n      </div>\n    </div>\n  )\n}\n\nexport default Banner\n","// extracted by mini-css-extract-plugin\nexport var banner = \"banner-module--banner--229be\";\nexport var container = \"banner-module--container--4e0c9\";\nexport var fullscreenBanner = \"banner-module--fullscreenBanner--c6525\";\nexport var fullscreenImage = \"banner-module--fullscreenImage--b2b8e\";\nexport var image = \"banner-module--image--75459\";\nexport var overlayTitle = \"banner-module--overlayTitle--30faf\";\nexport var title = \"banner-module--title--b50c6\";","// 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 * as styles from \"./card-image.module.scss\"\nimport { useFormatDate } from \"../../../../hooks\"\nimport { useLocale } from \"../../../../context/locale-context\"\n\ntype RenderProps = {\n  title: string\n  date: string\n  backgroundImage: {\n    url: string\n    alt: string\n  }\n}\n\nconst CardImage: React.FC<RenderProps> = ({ title, date, backgroundImage }) => {\n  const { locale } = useLocale()\n\n  return (\n    <div className={styles.card}>\n      <img className={styles.image} src={backgroundImage?.url} alt={backgroundImage?.alt || \"\"} />\n      <div className={styles.cardContent}>\n        <div className={styles.date}>{useFormatDate(date, locale)} </div>\n        <div className={styles.title}>{title} </div>\n        <div />\n      </div>\n    </div>\n  )\n}\n\nexport default CardImage\n","// extracted by mini-css-extract-plugin\nexport var card = \"card-image-module--card--e581f\";\nexport var cardContent = \"card-image-module--cardContent--5bf2e\";\nexport var date = \"card-image-module--date--92890\";\nexport var image = \"card-image-module--image--1ff47\";\nexport var title = \"card-image-module--title--81a65\";","// extracted by mini-css-extract-plugin\nexport var card = \"card-svg-module--card--0b4d3\";\nexport var cardContent = \"card-svg-module--cardContent--ad7bc\";\nexport var date = \"card-svg-module--date--d8bef\";\nexport var title = \"card-svg-module--title--76c03\";","import React, { useEffect, useRef } from \"react\"\nimport { ReactSVG } from \"react-svg\"\nimport * as styles from \"./card-svg.module.scss\"\nimport { useFormatDate, useIsMobile } from \"../../../../hooks\"\nimport { useLocale } from \"../../../../context/locale-context\"\n\ntype RenderProps = {\n  title: string\n  date: string\n  backgroundSvg: string\n  backgroundColor?: string\n  backgroundColorBis?: string\n}\n\nconst CardSvg: React.FC<RenderProps> = ({ title, date, backgroundSvg, backgroundColor, backgroundColorBis }) => {\n  const { locale } = useLocale()\n  const isMobile = useIsMobile()\n\n  return (\n    <div className={styles.card}>\n      <ReactSVG\n        src={backgroundSvg}\n        afterInjection={svg => {\n          svg.querySelector(\"rect\").style.fill = backgroundColor\n          const paths = svg.querySelectorAll(\"path\")\n          paths.forEach(path => (path.style.fill = backgroundColorBis))\n\n          if (isMobile) {\n            const cardDiv = svg.closest(`.${styles.card}`)\n            if (cardDiv) {\n              const { width, height } = cardDiv.getBoundingClientRect()\n              svg.setAttribute(\"viewBox\", `0 0 ${width} ${height}`)\n              svg.setAttribute(\"width\", `${width}px`)\n              svg.setAttribute(\"height\", `${height}px`)\n              const rects = svg.querySelectorAll(\"rect\")\n              rects.forEach(rect => {\n                rect.setAttribute(\"width\", `${width}px`)\n                rect.setAttribute(\"height\", `${height}px`)\n              })\n            }\n          }\n        }}\n      />\n\n      <div className={styles.cardContent}>\n        <div className={styles.date}>{useFormatDate(date, locale)} </div>\n        <div className={styles.title}>\n          <span>{title}</span>\n        </div>\n        <div />\n      </div>\n    </div>\n  )\n}\n\nexport default CardSvg\n","import React from \"react\"\nimport { ReactSVG } from \"react-svg\"\nimport * as styles from \"./card-split.module.scss\"\nimport { useFormatDate } from \"../../../../hooks\"\nimport { useLocale } from \"../../../../context/locale-context\"\n\ntype RenderProps = {\n  title: string\n  date: string\n  backgroundSvg: string\n  backgroundImage: {\n    url: string\n    alt: string\n  }\n  backgroundColor?: string\n  backgroundColorBis?: string\n}\n\nconst CardSplit: React.FC<RenderProps> = ({\n  title,\n  date,\n  backgroundSvg,\n  backgroundImage,\n  backgroundColor,\n  backgroundColorBis,\n}) => {\n  const { locale } = useLocale()\n\n  return (\n    <div className={styles.card}>\n      <div className={styles.imagesContainer}>\n        <img className={styles.image} src={backgroundImage.url} alt={backgroundImage.alt} />\n        <div className={styles.svgContainer}>\n          <ReactSVG\n            className={styles.svg}\n            src={backgroundSvg}\n            afterInjection={svg => {\n              svg.querySelector(\"rect\").style.fill = backgroundColor\n              const paths = svg.querySelectorAll(\"path\")\n              paths.forEach(path => (path.style.fill = backgroundColorBis))\n            }}\n          />\n          <div className={styles.cardContent}>\n            <div className={styles.date}>{useFormatDate(date, locale)} </div>\n            <div className={styles.title}>\n              <span>{title}</span>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n  )\n}\n\nexport default CardSplit\n","// extracted by mini-css-extract-plugin\nexport var card = \"card-split-module--card--f05ca\";\nexport var cardContent = \"card-split-module--cardContent--04e45\";\nexport var date = \"card-split-module--date--45b9d\";\nexport var image = \"card-split-module--image--721a0\";\nexport var imagesContainer = \"card-split-module--imagesContainer--39e01\";\nexport var svg = \"card-split-module--svg--efb2e\";\nexport var svgContainer = \"card-split-module--svgContainer--eaf73\";\nexport var title = \"card-split-module--title--5bb59\";","import React from \"react\"\nimport * as styles from \"./card.module.scss\"\nimport CardImage from \"./card-image/card-image\"\nimport CardSvg from \"./card-svg/card-svg\"\nimport CardSplit from \"./card-split/card-split\"\n\ntype RenderProps = {\n  title: string\n  url: string\n  date: string\n  cardType: string\n  backgroundSvg: string\n  backgroundImage: {\n    url: string\n    alt: string\n  }\n  backgroundColor?: string\n  backgroundColorBis?: string\n  textColor: string\n}\n\nconst Card: React.FC<RenderProps> = ({\n  title,\n  url,\n  date,\n  cardType,\n  backgroundSvg,\n  backgroundImage,\n  backgroundColor,\n  backgroundColorBis,\n  textColor,\n}) => {\n  return (\n    <li className={styles.card} style={{ color: textColor }}>\n      <a href={url}>\n        {cardType === \"image\" ? (\n          <CardImage title={title} date={date} backgroundImage={backgroundImage} />\n        ) : cardType === \"svg\" ? (\n          <CardSvg\n            title={title}\n            date={date}\n            backgroundSvg={backgroundSvg}\n            backgroundColor={backgroundColor}\n            backgroundColorBis={backgroundColorBis}\n          />\n        ) : (\n          cardType === \"split\" && (\n            <CardSplit\n              title={title}\n              date={date}\n              backgroundSvg={backgroundSvg}\n              backgroundImage={backgroundImage}\n              backgroundColor={backgroundColor}\n              backgroundColorBis={backgroundColorBis}\n            />\n          )\n        )}\n      </a>\n    </li>\n  )\n}\n\nexport default Card\n","// extracted by mini-css-extract-plugin\nexport var card = \"card-module--card--910d3\";","import React, { useEffect, useRef, useState } from \"react\"\nimport { graphql } from \"gatsby\"\nimport {\n  NewsMediaFieldsFragment,\n  NewsroomFilterTitlesFieldsFragment,\n  PressReleaseMediaFieldsFragment,\n  PublicationMediaFieldsFragment,\n} from \"../../../../graphql-types\"\nimport * as styles from \"./media-cards.module.scss\"\nimport sanitizeHtml from \"sanitize-html\"\nimport { useSlugs } from \"../../context/slugs-context\"\n\nimport ScrollArrow from \"../tools/scroll-arrow/scroll-arrow\"\nimport Card from \"./card/card\"\nimport Capsule from \"../tools/filter-bar/capsule/capsule\"\nimport FilterBar from \"../tools/filter-bar/filter-bar\"\nimport { getAssociatedColor, isDateInRange } from \"../../utils\"\n\ntype RenderProps = {\n  title: string\n  text?: string\n  buttonLink?: string\n  buttonLabel?: string\n  news?: NewsMediaFieldsFragment[]\n  pressReleases?: PressReleaseMediaFieldsFragment[]\n  publications?: PublicationMediaFieldsFragment[]\n  filters?: NewsroomFilterTitlesFieldsFragment\n  categories?: string[]\n  limit?: number\n  multiRow?: boolean\n}\n\nconst MediaCards: React.FC<RenderProps> = ({\n  title,\n  text,\n  buttonLink,\n  buttonLabel,\n  news,\n  pressReleases,\n  publications,\n  filters,\n  categories,\n  limit,\n  multiRow,\n}) => {\n  const { buildInternalLink } = useSlugs()\n  const mediaCardsRef = useRef(null)\n  const cards = [...(pressReleases ?? []), ...(publications ?? []), ...(news ?? [])]\n    .filter(card => isDateInRange(card.publicationDate, card.publicationEndDate))\n    .sort((a, b) => new Date(b.publicationDate).getTime() - new Date(a.publicationDate).getTime())\n  const [filteredCards, setFilteredCards] = useState<any[]>(cards)\n  const [activeCapsule, setActiveCapsule] = useState<string>(\"\")\n\n  const scrollToCard = (scrollDirection: number) => {\n    const rtlRatio = document?.dir === \"rtl\" ? -1 : 1\n    const itemWidth = mediaCardsRef.current.children[1].clientWidth + 32\n    mediaCardsRef.current.scrollBy({\n      left: itemWidth * scrollDirection * rtlRatio,\n      top: 0,\n      behavior: \"smooth\",\n    })\n  }\n\n  useEffect(() => {\n    if (mediaCardsRef.current) {\n      mediaCardsRef.current.scrollLeft = 0\n    }\n  }, [cards])\n\n  const sanitizedText = sanitizeHtml(text)\n\n  const filtersArray: { title: string; typename: string; filterPublications?: boolean }[] = !filters\n    ? !categories\n      ? []\n      : categories.map(category => ({ title: category, typename: \"DatoCmsPublication\", filterPublications: true }))\n    : [\n        { title: filters.newsroomInTheSpotlightIsEnabled && filters.newsroomInTheSpotlightTitle, typename: \"\" },\n        { title: filters.newsroomNewsIsEnabled && filters.newsroomNewsTitle, typename: \"DatoCmsNews\" },\n        {\n          title: filters.newsroomPressReleaseIsEnabled && filters.newsroomPressReleaseTitle,\n          typename: \"DatoCmsPressRelease\",\n        },\n        {\n          title: filters.newsroomPublicationsIsEnabled && filters.newsroomPublicationsTitle,\n          typename: \"DatoCmsPublication\",\n        },\n      ].filter(filter => filter.title)\n\n  return (\n    <div className={styles.mediaContainer}>\n      <div className={styles.header}>\n        <h2 className={styles.title} dangerouslySetInnerHTML={{ __html: title }} />\n        <div className={styles.content}>\n          {(filtersArray || sanitizedText) && (\n            <div className={styles.filtersColumn}>\n              {filtersArray.length > 0 && (\n                <FilterBar\n                  capsules={filtersArray.map(filter => ({\n                    label: filter.title,\n                    onClick: () => {\n                      if (activeCapsule !== filter.title) {\n                        if (filter.filterPublications) {\n                          setFilteredCards(\n                            cards.filter(\n                              card =>\n                                card.__typename === \"DatoCmsPublication\" && card.category?.category === filter.title\n                            )\n                          )\n                        } else {\n                          setFilteredCards(\n                            filter.typename ? cards.filter(card => card.__typename === filter.typename) : cards\n                          )\n                        }\n                        setActiveCapsule(filter.title)\n                      } else {\n                        setFilteredCards(cards)\n                        setActiveCapsule(\"\")\n                      }\n                    },\n                    isActive: activeCapsule === filter.title,\n                  }))}\n                />\n              )}\n              {sanitizedText && <p className={styles.textIntro} dangerouslySetInnerHTML={{ __html: sanitizedText }} />}\n            </div>\n          )}\n          {buttonLabel && (\n            <a href={buttonLink} className={styles.capsule}>\n              <Capsule title={buttonLabel} isSelected={false} special={true} />\n            </a>\n          )}\n        </div>\n      </div>\n      <ul className={styles.cardsContainer} ref={mediaCardsRef} style={{ flexWrap: multiRow ? \"wrap\" : \"nowrap\" }}>\n        {filteredCards?.slice(0, limit).map((card, index) => {\n          if (card.__typename === \"DatoCmsPublication\") {\n            return (\n              <Card\n                key={card.id}\n                title=\"\"\n                url={card.isPdf ? card.pdf?.url : card.externalLink}\n                cardType=\"image\"\n                date=\"\"\n                backgroundSvg=\"\"\n                backgroundImage={card.image}\n                backgroundColor=\"\"\n                backgroundColorBis=\"\"\n                textColor=\"\"\n              />\n            )\n          }\n\n          let backgroundImage = { url: \"\", alt: \"\" }\n          let backgroundSvg = \"\"\n          let cardType = \"svg\"\n          const title = card.miniatureCard[0]?.isTitle === false ? \"\" : card.title\n\n          if (card.miniatureCard[0]?.isImage && card.miniatureCard[0]?.miniatureImage?.url) {\n            backgroundImage = {\n              url: card.miniatureCard[0]?.miniatureImage?.url || \"\",\n              alt: card.miniatureCard[0]?.miniatureImage?.alt || \"\",\n            }\n            card.miniatureCard[0]?.isMinatureImageBig ? (cardType = \"image\") : (cardType = \"split\")\n          }\n          if (!card.miniatureCard[0]?.isImage || !card.miniatureCard[0]?.isMinatureImageBig) {\n            backgroundSvg = `/vectors/v3/mediaCards/card${(index % 4) + 1}.svg`\n          }\n          const getCardUrl = card => {\n            if (card.__typename === \"DatoCmsNews\") {\n              return buildInternalLink({ __typename: \"DatoCmsNews\", slug: card.slug })\n            } else if (card.__typename === \"DatoCmsPressRelease\") {\n              return buildInternalLink({ __typename: \"DatoCmsPressRelease\", slug: card.slug })\n            }\n          }\n\n          return (\n            <Card\n              key={card.id}\n              title={title}\n              url={getCardUrl(card)}\n              cardType={cardType}\n              date={card.publicationDate}\n              backgroundSvg={backgroundSvg}\n              backgroundImage={backgroundImage}\n              backgroundColor={card.miniatureCard[0]?.cardBackgroundColor.hex}\n              backgroundColorBis={getAssociatedColor(card.miniatureCard[0]?.cardBackgroundColor.hex)}\n              textColor={card.miniatureCard[0]?.cardTextColor.hex}\n            />\n          )\n        })}\n      </ul>\n\n      {limit > 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 MediaNewsFields on DatoCmsHomePageMediaNews {\n    id\n    isEnabled\n    title\n    text\n    gradientBackground\n    buttonLabel\n  }\n\n  fragment MediaMiniatureCardFields on DatoCmsMediaMiniatureCard {\n    id\n    isTitle\n    cardBackgroundColor {\n      hex\n    }\n    cardTextColor {\n      hex\n    }\n    isImage\n    miniatureImage {\n      alt\n      url\n    }\n    isMinatureImageBig\n  }\n\n  fragment NewsMediaFields on DatoCmsNews {\n    id\n    __typename\n    title\n    slug\n    publicationDate\n    publicationEndDate\n    miniatureCard {\n      ...MediaMiniatureCardFields\n    }\n  }\n\n  fragment PressReleaseMediaFields on DatoCmsPressRelease {\n    id\n    __typename\n    title\n    slug\n    publicationDate\n    publicationEndDate\n    miniatureCard {\n      ...MediaMiniatureCardFields\n    }\n  }\n\n  fragment PublicationMediaFields on DatoCmsPublication {\n    id\n    __typename\n    title\n    image {\n      alt\n      url\n    }\n    category {\n      category\n    }\n    isPdf\n    pdf {\n      url\n    }\n    externalLink\n    publicationDate\n    publicationEndDate\n  }\n\n  fragment NewsroomFilterTitlesFields on DatoCmsNewsroom {\n    id\n    newsroomInTheSpotlightIsEnabled\n    newsroomInTheSpotlightTitle\n    newsroomNewsIsEnabled\n    newsroomNewsTitle\n    newsroomPressReleaseIsEnabled\n    newsroomPressReleaseTitle\n    newsroomPublicationsIsEnabled\n    newsroomPublicationsTitle\n  }\n`\n\nexport default MediaCards\n","// extracted by mini-css-extract-plugin\nexport var arrowsContainer = \"media-cards-module--arrowsContainer--0f699\";\nexport var capsule = \"media-cards-module--capsule--be892\";\nexport var cardsContainer = \"media-cards-module--cardsContainer--eaa6e\";\nexport var content = \"media-cards-module--content--769c2\";\nexport var filtersColumn = \"media-cards-module--filtersColumn--77f7c\";\nexport var header = \"media-cards-module--header--d8efc\";\nexport var mediaContainer = \"media-cards-module--mediaContainer--0eb23\";\nexport var textIntro = \"media-cards-module--textIntro--e1347\";\nexport var title = \"media-cards-module--title--9961c\";","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, { useState } from \"react\"\nimport Capsule from \"./capsule/capsule\"\nimport * as styles from \"./filter-bar.module.scss\"\nimport { ca } from \"date-fns/locale\"\n\ntype RenderProps = {\n  capsules: {\n    label: string\n    onClick?: () => void\n    url?: string\n    isActive?: boolean\n    special?: boolean\n  }[]\n}\n\nconst FilterBar: React.FC<RenderProps> = ({ capsules }) => {\n  return (\n    <div className={styles.filterBar}>\n      <div className={styles.capsules}>\n        {capsules?.map((capsule, index) => (\n          <Capsule\n            title={capsule.label}\n            isSelected={capsule.isActive}\n            className={capsule.special ? styles.specialCapsule : \"\"}\n            special={capsule.special}\n            onClick={capsule.onClick}\n            link={capsule.url && { url: capsule.url, isInternal: true }}\n            key={capsule.label}\n          />\n        ))}\n      </div>\n    </div>\n  )\n}\n\nexport default FilterBar\n","// extracted by mini-css-extract-plugin\nexport var capsules = \"filter-bar-module--capsules--27ec4\";\nexport var filterBar = \"filter-bar-module--filterBar--9f9ec\";\nexport var specialCapsule = \"filter-bar-module--specialCapsule--90bc8\";","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","import React from \"react\"\nimport { graphql } from \"gatsby\"\nimport { DatoCmsSlugsConfiguration, NewsroomPageQuery } from \"../../../../graphql-types\"\nimport * as styles from \"./newsroom.module.scss\"\nimport { useFormatLocale, useIsMobile, useSlugValue } from \"../../hooks\"\nimport Layout from \"../../components/layout/layout\"\nimport Banner from \"../../components/banner/banner\"\nimport Breadcrumb from \"../../components/breadcrumb/breadcrumb\"\nimport MediaCards from \"../../components/media-cards/media-cards\"\nimport SEO from \"../../components/seo/seo\"\nimport { HrefLangLinks } from \"../../components/hrefLangLinks/hrefLangLinks\"\n\ntype RenderProps = {\n  data: NewsroomPageQuery\n  location: Location\n  pageContext: {\n    locale: string\n    defaultLocale: string\n    slugs: DatoCmsSlugsConfiguration\n  }\n}\n\nconst Newsroom: React.FC<RenderProps> = ({ data, location, pageContext }) => {\n  const isMobile = useIsMobile()\n  const newsLink = useSlugValue(pageContext.slugs._allNewsPageSlugLocales, pageContext.locale)\n  const pressReleasesLink = useSlugValue(pageContext.slugs._allPressReleasesPageSlugLocales, pageContext.locale)\n  const publicationsLink = useSlugValue(pageContext.slugs._allPublicationsPageSlugLocales, pageContext.locale)\n\n  return (\n    <Layout\n      pageContext={pageContext}\n      location={location}\n      header={data.datoCmsV3Header}\n      footer={data.datoCmsFooter}\n      subsidiaryLogo={data.datoCmsGlobalConfiguration.subsidiaryLogo}\n      contactButton={data.datoCmsV3ContactButton}\n      currentRoute={useSlugValue(pageContext.slugs._allNewsroomPageSlugLocales, pageContext.locale)}\n      pageTemplate=\"newsroom\"\n    >\n      <section className={styles.container}>\n        <Banner title={data.datoCmsNewsroom.newsroomPageTitle} image={data.datoCmsNewsroom.newsroomPageImage} />\n\n        <div className={styles.content}>\n          {!isMobile && <Breadcrumb title=\"Newsroom\" homeLabel={data.datoCmsGlobalConfiguration.homePageTitle} />}\n          {data.datoCmsNewsroom.newsroomInTheSpotlightIsEnabled && (\n            <MediaCards\n              title={data.datoCmsNewsroom.newsroomInTheSpotlightTitle}\n              text={data.datoCmsNewsroom.newsroomInTheSpotlightText}\n              news={data.allDatoCmsNews.nodes}\n              pressReleases={data.allDatoCmsPressRelease.nodes}\n              publications={data.allDatoCmsPublication.nodes}\n              limit={15}\n            />\n          )}\n          {data.datoCmsNewsroom.newsroomNewsIsEnabled && (\n            <MediaCards\n              title={data.datoCmsNewsroom.newsroomNewsTitle}\n              text={data.datoCmsNewsroom.newsroomNewsText}\n              buttonLink={newsLink}\n              buttonLabel={data.datoCmsNewsroom.newsroomNewsRedirectionButtonLabel}\n              news={data.allDatoCmsNews.nodes}\n              limit={4}\n            />\n          )}\n          {data.datoCmsNewsroom.newsroomPressReleaseIsEnabled && (\n            <MediaCards\n              title={data.datoCmsNewsroom.newsroomPressReleaseTitle}\n              text={data.datoCmsNewsroom.newsroomPressReleaseText}\n              buttonLink={pressReleasesLink}\n              buttonLabel={data.datoCmsNewsroom.newsroomPressReleaseButtonLabel}\n              pressReleases={data.allDatoCmsPressRelease.nodes}\n              limit={4}\n            />\n          )}\n          {data.datoCmsNewsroom.newsroomPublicationsIsEnabled && (\n            <MediaCards\n              title={data.datoCmsNewsroom.newsroomPublicationsTitle}\n              text={data.datoCmsNewsroom.newsroomPublicationsText}\n              buttonLink={publicationsLink}\n              buttonLabel={data.datoCmsNewsroom.newsroomPublicationsButtonLabel}\n              publications={data.allDatoCmsPublication.nodes}\n              categories={data.datoCmsPublicationCategoryList.categories.map(category => category.category)}\n              limit={4}\n            />\n          )}\n        </div>\n      </section>\n    </Layout>\n  )\n}\n\nexport const Head: React.FC<RenderProps> = ({ data, pageContext }) => (\n  <>\n    <SEO\n      title={data.datoCmsNewsroom.newsroomPageTitle}\n      description={data.datoCmsGlobalConfiguration.metaDescription}\n      locale={useFormatLocale(pageContext.locale)}\n    />\n    {typeof window !== \"undefined\" && (\n      <HrefLangLinks\n        defaultDomain={window.location.origin}\n        defaultLocale={pageContext.defaultLocale}\n        slugs={[pageContext.slugs._allNewsroomPageSlugLocales]}\n      />\n    )}\n  </>\n)\nexport const fragment = graphql`\n  fragment NewsFields on DatoCmsNews {\n    id\n    __typename\n    titleTag\n    metaDescription\n    noindex\n    isCanonical\n    urlCanonical\n    title\n    slug\n    category {\n      category\n    }\n    chapo\n    description\n    publicationDate\n    publicationEndDate\n    image {\n      alt\n      format\n      url\n      format\n    }\n    imageDisplayedOnCards {\n      alt\n      url\n    }\n    richContent {\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 DatoCmsSimpleText {\n        ...SimpleTextFields\n      }\n      # ... on DatoCmsQuote {\n      #   ...QuoteFields\n      # }\n    }\n    # ...ReadMoreNewsFields\n    # pdfFile {\n    #   url\n    # }\n  }\n\n  fragment PressReleaseFields on DatoCmsPressRelease {\n    id\n    __typename\n    titleTag\n    metaDescription\n    noindex\n    isCanonical\n    urlCanonical\n    title\n    slug\n    category {\n      category\n    }\n    subtitle\n    chapo\n    image {\n      alt\n      url\n      format\n    }\n    imageDisplayedOnCards {\n      alt\n      url\n    }\n    publicationDate\n    publicationEndDate\n    richContent {\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 DatoCmsSimpleText {\n        ...SimpleTextFields\n      }\n      # ... on DatoCmsQuote {\n      #   ...QuoteFields\n      # }\n    }\n    # ...ReadMorePressReleaseFields\n    # pdfFile {\n    #   url\n    # }\n  }\n\n  fragment PublicationFields on DatoCmsPublication {\n    id\n    __typename\n    title\n    highlightedTitle\n    publicationDate\n    publicationEndDate\n    image {\n      alt\n      url\n    }\n    description\n    category {\n      ...PublicationCategoryFields\n    }\n    isPdf\n    pdf {\n      url\n    }\n    externalLink\n  }\n  fragment NewsroomNewsFields on DatoCmsNewsroom {\n    id\n    newsroomNewsIsEnabled\n    newsroomNewsTitle\n    newsroomNewsText\n    newsroomNewsRedirectionButtonLabel\n    displayNewsManually\n    news {\n      ...NewsFields\n    }\n  }\n  fragment NewsroomInTheSpotlightFields on DatoCmsNewsroom {\n    id\n    newsroomInTheSpotlightIsEnabled\n    newsroomInTheSpotlightTitle\n    newsroomInTheSpotlightText\n  }\n`\nexport const pageQuery = graphql`\n  query NewsroomPage($locale: String!) {\n    datoCmsGlobalConfiguration(locale: $locale) {\n      metaDescription\n      homePageTitle\n      subsidiaryLogo {\n        alt\n        format\n        originalId\n        url\n      }\n    }\n\n    datoCmsV3Header(locale: $locale) {\n      ...V3HeaderFields\n    }\n    datoCmsFooter(locale: $locale) {\n      ...FooterFields\n    }\n    datoCmsV3ContactButton(locale: $locale) {\n      ...V3ContactButtonFields\n    }\n\n    datoCmsNewsroom(locale: $locale) {\n      newsroomPageTitle\n      newsroomPageImage {\n        alt\n        url\n      }\n      ...NewsroomInTheSpotlightFields\n      ...NewsroomNewsFields\n      ...NewsroomPressReleasesFields\n      ...NewsroomPublicationsFields\n    }\n\n    allDatoCmsNews(\n      locale: $locale\n      sort: { publicationDate: DESC }\n      filter: { locales: { eq: $locale }, title: { ne: null } }\n    ) {\n      nodes {\n        ... on DatoCmsNews {\n          ...NewsMediaFields\n        }\n      }\n    }\n    allDatoCmsPressRelease(\n      locale: $locale\n      sort: { publicationDate: DESC }\n      filter: { locales: { eq: $locale }, title: { ne: null } }\n    ) {\n      nodes {\n        ... on DatoCmsPressRelease {\n          ...PressReleaseMediaFields\n        }\n      }\n    }\n    allDatoCmsPublication(\n      locale: $locale\n      sort: { publicationDate: DESC }\n      filter: { locales: { eq: $locale }, title: { ne: null } }\n    ) {\n      nodes {\n        ... on DatoCmsPublication {\n          ...PublicationMediaFields\n        }\n      }\n    }\n\n    datoCmsPublicationCategoryList(locale: $locale) {\n      categories {\n        category\n      }\n    }\n  }\n`\n\nexport default Newsroom\n","// extracted by mini-css-extract-plugin\nexport var container = \"newsroom-module--container--9a517\";\nexport var content = \"newsroom-module--content--596c2\";","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 const isDateInRange = (start: string, end: string) => {\n  const startDate = new Date(start)\n  const endDate = end ? new Date(end) : null\n  const todayDate = new Date()\n\n  // IF end date is not provided, only check if start date is in range\n  if (!startDate || todayDate < startDate || (endDate && todayDate > endDate)) {\n    return false\n  } else if (startDate <= todayDate && (!endDate || todayDate < endDate)) {\n    return true\n  }\n}\n"],"names":["_ref","title","image","isFullscreenImage","React","className","styles","url","src","alt","breadcrumbContainer","home","pElement","homeLabel","middlePages","locale","useLocale","_useSlugs","useSlugs","homeLink","getInternalExternalLink","href","map","middlePage","key","lang","date","backgroundImage","useFormatDate","backgroundSvg","backgroundColor","backgroundColorBis","isMobile","useIsMobile","ReactSVG","afterInjection","svg","querySelector","style","fill","querySelectorAll","forEach","path","cardDiv","closest","_cardDiv$getBoundingC","getBoundingClientRect","width","height","setAttribute","rect","cardType","textColor","color","CardImage","CardSvg","CardSplit","text","buttonLink","buttonLabel","news","pressReleases","publications","filters","categories","limit","multiRow","buildInternalLink","mediaCardsRef","useRef","cards","concat","_toConsumableArray","filter","card","isDateInRange","publicationDate","publicationEndDate","sort","a","b","Date","getTime","_useState","useState","filteredCards","setFilteredCards","_useState2","activeCapsule","setActiveCapsule","scrollToCard","scrollDirection","_document","rtlRatio","document","dir","itemWidth","current","children","clientWidth","scrollBy","left","top","behavior","useEffect","scrollLeft","sanitizedText","sanitizeHtml","filtersArray","newsroomInTheSpotlightIsEnabled","newsroomInTheSpotlightTitle","typename","newsroomNewsIsEnabled","newsroomNewsTitle","newsroomPressReleaseIsEnabled","newsroomPressReleaseTitle","newsroomPublicationsIsEnabled","newsroomPublicationsTitle","category","filterPublications","dangerouslySetInnerHTML","__html","length","FilterBar","capsules","label","onClick","_card$category","__typename","isActive","Capsule","isSelected","special","ref","flexWrap","slice","index","_card$miniatureCard$","_card$miniatureCard$2","_card$miniatureCard$3","_card$miniatureCard$4","_card$miniatureCard$10","_card$miniatureCard$11","_card$miniatureCard$12","_card$miniatureCard$13","_card$miniatureCard$14","_card$pdf","Card","id","isPdf","pdf","externalLink","_card$miniatureCard$5","_card$miniatureCard$6","_card$miniatureCard$7","_card$miniatureCard$8","_card$miniatureCard$9","miniatureCard","isTitle","isImage","miniatureImage","isMinatureImageBig","slug","getCardUrl","cardBackgroundColor","hex","getAssociatedColor","cardTextColor","ScrollArrow","direction","_ref$special","_ref$className","link","capsuleClassName","target","isInternal","capsule","disabled","arrowPath","shortFormat","optionLocale","fr","enGB","dateFormat","formattedDate","format","formattedDateWithOptions","Intl","DateTimeFormat","month","day","startsWith","Head","_ref2","data","pageContext","SEO","datoCmsNewsroom","newsroomPageTitle","description","datoCmsGlobalConfiguration","metaDescription","useFormatLocale","window","HrefLangLinks","defaultDomain","location","origin","defaultLocale","slugs","_allNewsroomPageSlugLocales","newsLink","useSlugValue","_allNewsPageSlugLocales","pressReleasesLink","_allPressReleasesPageSlugLocales","publicationsLink","_allPublicationsPageSlugLocales","Layout","header","datoCmsV3Header","footer","datoCmsFooter","subsidiaryLogo","contactButton","datoCmsV3ContactButton","currentRoute","pageTemplate","Banner","newsroomPageImage","Breadcrumb","homePageTitle","MediaCards","newsroomInTheSpotlightText","allDatoCmsNews","nodes","allDatoCmsPressRelease","allDatoCmsPublication","newsroomNewsText","newsroomNewsRedirectionButtonLabel","newsroomPressReleaseText","newsroomPressReleaseButtonLabel","newsroomPublicationsText","newsroomPublicationsButtonLabel","datoCmsPublicationCategoryList","colorPairs","inputColor","_i","_colorPairs","_colorPairs$_i","color1","color2","toLowerCase","findAssociatedColor","start","end","startDate","endDate","todayDate"],"sourceRoot":""}