{"version":3,"file":"589-5b675f4c6beb4eac6b72.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/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/pagination/pagination.module.scss","webpack://keolis.com/./src/v3/components/pagination/pagination.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/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/hooks/use-sort-articles-by-month.ts","webpack://keolis.com/./src/v3/utils/get-associated-color.ts","webpack://keolis.com/./src/v3/utils/get-is-date-in-range.ts","webpack://keolis.com/./src/v3/templates/newsroom/all-page.module.scss"],"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 * 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\";","// extracted by mini-css-extract-plugin\nexport var inputSelect = \"pagination-module--inputSelect--8dc3b\";\nexport var option = \"pagination-module--option--0d5aa\";\nexport var options = \"pagination-module--options--dd295\";\nexport var pagination = \"pagination-module--pagination--1a99a\";\nexport var resetButton = \"pagination-module--resetButton--2ef73\";\nexport var selectContainer = \"pagination-module--selectContainer--73477\";\nexport var selectWrapper = \"pagination-module--selectWrapper--6f393\";\nexport var selected = \"pagination-module--selected--7ea56\";","import React, { useEffect, useState } from \"react\"\nimport * as styles from \"./pagination.module.scss\"\nimport { useLocale } from \"../../context/locale-context\"\n\ntype ArticleSection = { publicationDate: string; articles: any[] }\n\ntype RenderProps = {\n  articles: ArticleSection[]\n  filteredArticles: ArticleSection[]\n  onSelect: (articles: ArticleSection[]) => void\n}\n\nconst Pagination: React.FC<RenderProps> = ({ articles, filteredArticles, onSelect }) => {\n  const { locale } = useLocale()\n\n  const translations = {\n    fr: { year: \"Année\", month: \"Mois\" },\n    en: { year: \"Year\", month: \"Month\" },\n  }\n\n  const { year, month } = translations[locale] || translations.en\n\n  const monthsList = filteredArticles\n    .map(article => article.publicationDate.split(\" \")[0])\n    .filter((value, index, self) => self.indexOf(value) === index)\n\n  const orderedMonth = monthsList.sort((a, b) => {\n    const monthNames =\n      locale === \"fr\"\n        ? [\n            \"Janvier\",\n            \"Février\",\n            \"Mars\",\n            \"Avril\",\n            \"Mai\",\n            \"Juin\",\n            \"Juillet\",\n            \"Août\",\n            \"Septembre\",\n            \"Octobre\",\n            \"Novembre\",\n            \"Décembre\",\n          ]\n        : [\n            \"January\",\n            \"February\",\n            \"March\",\n            \"April\",\n            \"May\",\n            \"June\",\n            \"July\",\n            \"August\",\n            \"September\",\n            \"October\",\n            \"November\",\n            \"December\",\n          ]\n    return monthNames.indexOf(a) - monthNames.indexOf(b)\n  })\n\n  const yearsList = filteredArticles\n    .map(article => article.publicationDate.split(\" \")[1])\n    .filter((value, index, self) => self.indexOf(value) === index)\n\n  const [selectedMonth, setSelectedMonth] = useState(\"\")\n  const [selectedYear, setSelectedYear] = useState(yearsList?.[0] || \"\")\n  const [showMonthOptions, setShowMonthOptions] = useState(false)\n  const [showYearOptions, setShowYearOptions] = useState(false)\n\n  useEffect(() => {\n    if (yearsList.length > 0) {\n      onSelect(filteredArticles.filter(article => article.publicationDate.includes(yearsList[0])))\n    }\n  }, [])\n\n  const handleYearSelect = (year: string) => {\n    setSelectedYear(year)\n    setShowYearOptions(false)\n    onSelect(\n      year\n        ? filteredArticles.filter(article => article.publicationDate.includes(year))\n        : articles.filter(article => article.publicationDate.includes(selectedMonth))\n    )\n  }\n\n  const handleMonthSelect = (month: string) => {\n    setSelectedMonth(month)\n    setShowMonthOptions(false)\n    onSelect(\n      month\n        ? filteredArticles.filter(article => article.publicationDate.includes(month))\n        : articles.filter(article => article.publicationDate.includes(selectedYear))\n    )\n  }\n\n  const resetYear = () => {\n    setSelectedYear(\"\")\n    setShowYearOptions(false)\n    onSelect(articles.filter(article => article.publicationDate.includes(selectedMonth)))\n  }\n\n  const resetMonth = () => {\n    setSelectedMonth(\"\")\n    setShowMonthOptions(false)\n    onSelect(articles.filter(article => article.publicationDate.includes(selectedYear)))\n  }\n\n  return (\n    <div className={styles.pagination}>\n      <div className={styles.selectWrapper}>\n        <div\n          className={`${styles.selectContainer} ${selectedYear ? styles.selected : \"\"}`}\n          onClick={() => setShowYearOptions(!showYearOptions)}\n        >\n          <div className={`${styles.inputSelect} ${selectedYear ? styles.selected : \"\"}`}>{selectedYear || year}</div>\n          {showYearOptions && (\n            <div className={styles.options}>\n              <div className={styles.option} onClick={() => handleYearSelect(\"\")}>\n                {year}\n              </div>\n              {yearsList.map(year => (\n                <div\n                  key={year}\n                  className={`${styles.option} ${selectedYear === year ? styles.selected : \"\"}`}\n                  onClick={() => handleYearSelect(year)}\n                >\n                  {year}\n                </div>\n              ))}\n            </div>\n          )}\n          {selectedYear && (\n            <span\n              onClick={e => {\n                e.stopPropagation()\n                resetYear()\n              }}\n              className={styles.resetButton}\n            ></span>\n          )}\n        </div>\n      </div>\n      <div className={styles.selectWrapper}>\n        <div\n          className={`${styles.selectContainer} ${selectedMonth ? styles.selected : \"\"}`}\n          onClick={() => setShowMonthOptions(!showMonthOptions)}\n        >\n          <div className={`${styles.inputSelect} ${selectedMonth ? styles.selected : \"\"}`}>\n            {selectedMonth || month}\n          </div>\n          {showMonthOptions && (\n            <div className={styles.options}>\n              <div className={styles.option} onClick={() => handleMonthSelect(\"\")}>\n                {month}\n              </div>\n              {orderedMonth.map(month => (\n                <div\n                  key={month}\n                  className={`${styles.option} ${selectedMonth === month ? styles.selected : \"\"}`}\n                  onClick={() => handleMonthSelect(month)}\n                >\n                  {month}\n                </div>\n              ))}\n            </div>\n          )}\n          {selectedMonth && (\n            <span\n              onClick={e => {\n                e.stopPropagation()\n                resetMonth()\n              }}\n              className={styles.resetButton}\n            ></span>\n          )}\n        </div>\n      </div>\n    </div>\n  )\n}\n\nexport default Pagination\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, { 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 { format } from \"date-fns\"\nimport { enGB, fr } from \"date-fns/locale\"\nimport {\n  NewsMediaFieldsFragment,\n  PressReleaseMediaFieldsFragment,\n  PublicationMediaFieldsFragment,\n} from \"../../../graphql-types\"\nimport { isDateInRange } from \"../utils/get-is-date-in-range\"\n\nexport const useSortArticlesByMonth = <\n  T extends NewsMediaFieldsFragment | PressReleaseMediaFieldsFragment | PublicationMediaFieldsFragment,\n>(\n  articles: T[],\n  locale: string\n) => {\n  type ArticleSection = { publicationDate: string; articles: T[] }\n  let articlesSections: ArticleSection[] = []\n  let articlesByDate: T[] = []\n  let lastFormattedDate: string = \"\"\n\n  if (articles) {\n    for (const currentArticle of articles) {\n      if (currentArticle && isDateInRange(currentArticle.publicationDate, currentArticle.publicationEndDate)) {\n        let date = format(new Date(currentArticle.publicationDate), \"MMMM yyyy\", {\n          locale: locale === \"fr\" ? fr : enGB,\n        })\n        date = date.charAt(0).toUpperCase() + date.slice(1)\n\n        if (lastFormattedDate === \"\" || date === lastFormattedDate) {\n          articlesByDate.push(currentArticle)\n        } else if (date != lastFormattedDate) {\n          articlesSections.push({ publicationDate: lastFormattedDate, articles: articlesByDate })\n          articlesByDate = [currentArticle]\n        }\n        lastFormattedDate = date\n      }\n    }\n    if (articlesByDate.length > 0) {\n      articlesSections.push({ publicationDate: lastFormattedDate, articles: articlesByDate })\n    }\n  }\n  return articlesSections\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 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","// extracted by mini-css-extract-plugin\nexport var container = \"all-page-module--container--d98dd\";\nexport var filterBar = \"all-page-module--filterBar--51ab6\";\nexport var title = \"all-page-module--title--1878e\";\nexport var titleBar = \"all-page-module--titleBar--2de33\";"],"names":["breadcrumbContainer","home","pElement","_ref","title","homeLabel","middlePages","locale","useLocale","_useSlugs","useSlugs","homeLink","getInternalExternalLink","React","className","styles","href","map","middlePage","key","lang","date","backgroundImage","src","url","alt","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","image","_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","inputSelect","options","resetButton","selectContainer","selectWrapper","selected","articles","filteredArticles","onSelect","translations","fr","year","month","en","_ref2","orderedMonth","article","split","value","self","indexOf","monthNames","yearsList","selectedMonth","setSelectedMonth","selectedYear","setSelectedYear","_useState3","showMonthOptions","setShowMonthOptions","_useState4","showYearOptions","setShowYearOptions","includes","handleYearSelect","handleMonthSelect","e","stopPropagation","_ref$special","_ref$className","link","capsuleClassName","target","isInternal","capsule","disabled","arrowPath","shortFormat","optionLocale","enGB","dateFormat","formattedDate","format","formattedDateWithOptions","Intl","DateTimeFormat","day","startsWith","useSortArticlesByMonth","articlesSections","articlesByDate","lastFormattedDate","_step","_iterator","_createForOfIteratorHelperLoose","done","currentArticle","charAt","toUpperCase","push","colorPairs","inputColor","_i","_colorPairs","_colorPairs$_i","color1","color2","toLowerCase","findAssociatedColor","start","end","startDate","endDate","todayDate","container","filterBar","titleBar"],"sourceRoot":""}