{"version":3,"file":"component---src-v-3-templates-home-home-tsx-b21757d870b34f7668f9.js","mappings":"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","sources":["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/filter-bar.tsx","webpack://keolis.com/./src/v3/components/tools/filter-bar/filter-bar.module.scss","webpack://keolis.com/./src/v3/templates/home/home.module.scss","webpack://keolis.com/./src/v3/components/home/hero-banner/hero-banner.module.scss","webpack://keolis.com/./src/v3/components/home/hero-banner/card/card.tsx","webpack://keolis.com/./src/v3/components/home/hero-banner/card/card.module.scss","webpack://keolis.com/./src/v3/components/home/hero-banner/hero-banner.tsx","webpack://keolis.com/./src/v3/components/home/map-module/carousel/carousel.tsx","webpack://keolis.com/./src/v3/components/home/map-module/carousel/carousel.module.scss","webpack://keolis.com/./src/v3/components/home/map-module/map-module.tsx","webpack://keolis.com/./src/v3/components/home/map-module/map-module.module.scss","webpack://keolis.com/./src/v3/templates/home/home.tsx","webpack://keolis.com/./src/v3/utils/get-is-date-in-range.ts"],"sourcesContent":["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, { 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\";","// extracted by mini-css-extract-plugin\nexport var container = \"home-module--container--d765e\";\nexport var mediaCardsContainer = \"home-module--mediaCardsContainer--1fb63\";","// extracted by mini-css-extract-plugin\nexport var arrowsContainer = \"hero-banner-module--arrowsContainer--42f2d\";\nexport var card = \"hero-banner-module--card--50776\";\nexport var heroBanner = \"hero-banner-module--heroBanner--a09a4\";\nexport var image = \"hero-banner-module--image--cce44\";\nexport var leftContainer = \"hero-banner-module--leftContainer--aa076\";","import React from \"react\"\nimport { ReactSVG } from \"react-svg\"\nimport { InternalExternalLinkBlockFieldsFragment } from \"../../../../../../graphql-types\"\nimport * as styles from \"./card.module.scss\"\nimport sanitizeHtml from \"sanitize-html\"\nimport { useFormatDate, useIsMobile } from \"../../../../hooks\"\nimport { useLocale } from \"../../../../context/locale-context\"\nimport { useSlugs } from \"../../../../context/slugs-context\"\n\ntype RenderProps = {\n  title: string\n  text: string\n  backgroundSvg: string\n  backgroundColor: string\n  backgroundColorBis: string\n  textColor: string\n  redirectLink: InternalExternalLinkBlockFieldsFragment\n}\n\nconst Card: React.FC<RenderProps> = ({\n  title,\n  text,\n  backgroundSvg,\n  backgroundColor,\n  backgroundColorBis,\n  textColor,\n  redirectLink,\n}) => {\n  const style = {\n    \"--text-color\": textColor,\n    \"--background-color\": backgroundColor,\n    \"--background-color-bis\": backgroundColorBis,\n  } as React.CSSProperties\n\n  const isMobile = useIsMobile()\n  const { getInternalExternalLink } = useSlugs()\n  const { locale } = useLocale()\n\n  const hasPublicationDate = (link: any): link is { publicationDate: string } =>\n    typeof link.publicationDate === \"string\"\n\n  const cardContent = (\n    <div className={styles.card} style={style}>\n      <ReactSVG\n        src={backgroundSvg}\n        beforeInjection={svg => {\n          if (!isMobile) svg.setAttribute(\"preserveAspectRatio\", \"xMidYMid meet\")\n        }}\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.title}>{title}</div>\n        <div className={styles.chapo} dangerouslySetInnerHTML={{ __html: sanitizeHtml(text) }} />\n        {redirectLink.isInternalPage &&\n          hasPublicationDate(redirectLink.internalLink) &&\n          redirectLink.internalLink.publicationDate !== \"\" && (\n            <div className={styles.date}>{useFormatDate(redirectLink.internalLink.publicationDate, locale)}</div>\n          )}\n      </div>\n    </div>\n  )\n\n  return (\n    <>\n      {getInternalExternalLink(redirectLink) !== \"/\" ? (\n        <a href={getInternalExternalLink(redirectLink)} target={redirectLink?.isInternalPage ? \"_self\" : \"_blank\"}>\n          {cardContent}\n        </a>\n      ) : (\n        <>{cardContent}</>\n      )}\n    </>\n  )\n}\n\nexport default Card\n","// extracted by mini-css-extract-plugin\nexport var card = \"card-module--card--7758c\";\nexport var cardContent = \"card-module--cardContent--5d61c\";\nexport var chapo = \"card-module--chapo--58581\";\nexport var date = \"card-module--date--f9ccd\";\nexport var title = \"card-module--title--dc63e\";","import React, { useState } from \"react\"\nimport { graphql } from \"gatsby\"\nimport { HeroBannerFieldsFragment } from \"../../../../../graphql-types\"\nimport * as styles from \"./hero-banner.module.scss\"\nimport { useIsMobile } from \"../../../hooks\"\nimport Card from \"./card/card\"\nimport ScrollArrow from \"../../tools/scroll-arrow/scroll-arrow\"\nimport { getAssociatedColor } from \"../../../utils\"\n\ntype RenderProps = {\n  data: HeroBannerFieldsFragment\n}\n\nconst HeroBanner: React.FC<RenderProps> = ({ data }) => {\n  const isMobile = useIsMobile()\n  const arrowStyleMobile = {\n    border: \"none\",\n    boxShadow: \"0px 0px 16px 0px #394A641C\",\n  } as React.CSSProperties\n\n  const [slideIndex, setSlideIndex] = useState(1)\n  const handleArrowClick = (direction: \"left\" | \"right\") => {\n    if (direction === \"left\") {\n      if (slideIndex === 0) {\n        setSlideIndex(data.carousel.length - 1)\n      } else {\n        setSlideIndex(slideIndex - 1)\n      }\n    } else if (slideIndex === data.carousel.length - 1) {\n      setSlideIndex(0)\n    } else {\n      setSlideIndex(slideIndex + 1)\n    }\n  }\n\n  return (\n    <div className={styles.heroBanner}>\n      <div className={styles.leftContainer}>\n        <div className={styles.image} style={{ backgroundImage: `url(${data.carousel[slideIndex].image?.url})` }} />\n        {!isMobile && (\n          <div className={styles.arrowsContainer}>\n            <ScrollArrow direction=\"left\" onClick={() => handleArrowClick(\"left\")} />\n            <ScrollArrow direction=\"right\" onClick={() => handleArrowClick(\"right\")} />\n          </div>\n        )}\n      </div>\n      <div className={styles.card}>\n        <Card\n          title={data.carousel[slideIndex].redirectLink[0]?.title || data.carousel[slideIndex].title}\n          text={data.carousel[slideIndex].chapo}\n          backgroundSvg=\"/vectors/v3/hero-banner.svg\"\n          backgroundColor={data.carousel[slideIndex].cardBackgroundColor.hex}\n          backgroundColorBis={getAssociatedColor(data.carousel[slideIndex].cardBackgroundColor.hex)}\n          textColor={data.carousel[slideIndex].cardTextColor.hex}\n          redirectLink={data.carousel[slideIndex].redirectLink[0]}\n        />\n      </div>\n      {isMobile && (\n        <div className={styles.arrowsContainer}>\n          <ScrollArrow direction=\"left\" style={arrowStyleMobile} onClick={() => handleArrowClick(\"left\")} />\n          <ScrollArrow direction=\"right\" style={arrowStyleMobile} onClick={() => handleArrowClick(\"right\")} />\n        </div>\n      )}\n    </div>\n  )\n}\n\nexport const fragments = graphql`\n  fragment HeroBannerFields on DatoCmsHomePageHeroBanner {\n    id\n    isEnabled\n    carousel {\n      title\n      chapo\n      redirectLink {\n        ...InternalExternalLinkBlockFields\n      }\n      cardBackgroundColor {\n        hex\n      }\n      cardTextColor {\n        hex\n      }\n      image {\n        alt\n        url\n        urlMobile: url(imgixParams: { fit: \"crop\", w: \"351\", h: \"372\" })\n      }\n    }\n  }\n`\n\nexport default HeroBanner\n","import React, { useRef } from \"react\"\nimport { graphql } from \"gatsby\"\nimport { CarouselFieldsFragment } from \"../../../../../../graphql-types\"\nimport * as styles from \"./carousel.module.scss\"\nimport { useSlugs } from \"../../../../context/slugs-context\"\nimport { useIsMobile } from \"../../../../hooks\"\nimport ScrollArrow from \"../../../tools/scroll-arrow/scroll-arrow\"\n\ntype RenderProps = {\n  links: CarouselFieldsFragment[]\n}\n\nconst Carousel: React.FC<RenderProps> = ({ links }) => {\n  const isMobile = useIsMobile()\n  const { buildInternalLink } = useSlugs()\n  const cards = useRef(null)\n\n  const scrollToCard = (scrollDirection: number) => {\n    const itemWidth = cards.current.children[0].clientWidth + 20\n    cards.current.scrollBy({\n      left: itemWidth * scrollDirection,\n      top: 0,\n      behavior: \"smooth\",\n    })\n  }\n\n  return (\n    <>\n      <ul className={styles.cardsContainer} ref={cards}>\n        {links\n          .filter(link => link.image)\n          .map((link, index) => {\n            const textColor =\n              link.__typename !== \"DatoCmsPublication\"\n                ? link.miniatureCardMapModule?.cardTextColor?.hex || \"#fff\"\n                : \"#fff\"\n            const filterColor =\n              link.__typename !== \"DatoCmsPublication\"\n                ? (link.miniatureCardMapModule?.filterColor?.hex ?? \"#fff\")\n                : \"#fff\"\n            const filterOpacity =\n              link.__typename !== \"DatoCmsPublication\" ? (link.miniatureCardMapModule?.filterOpacity ?? 0) : 0\n            const internalLink =\n              link.__typename !== \"DatoCmsPublication\"\n                ? buildInternalLink(link)\n                : link.isPdf\n                  ? link.pdf?.url\n                  : link.externalLink\n\n            return (\n              <li className={styles.card} key={link.title + link.image.url}>\n                <a href={internalLink}>\n                  <img className={styles.image} src={link.image.url} alt={link.image.alt || \"\"} />\n                  <div\n                    className={styles.filter}\n                    style={\n                      {\n                        \"--filter-color\": filterColor ?? \"white\",\n                        \"--filter-opacity\": filterOpacity / 100,\n                      } as React.CSSProperties\n                    }\n                  />\n                  <div className={styles.cardContent}>\n                    <span className={styles.title} style={{ \"--color\": textColor } as React.CSSProperties}>\n                      {link.title}\n                    </span>\n                  </div>\n                </a>\n              </li>\n            )\n          })}\n      </ul>\n      {links.length > 1 && !isMobile && (\n        <div className={styles.arrowsContainer}>\n          <ScrollArrow direction=\"left\" onClick={() => scrollToCard(-1)} />\n          <ScrollArrow direction=\"right\" onClick={() => scrollToCard(1)} />\n        </div>\n      )}\n    </>\n  )\n}\n\nexport const fragment = graphql`\n  fragment CarouselFields on DatoCmsUnionForDatoCmsHomePageMapModuleCarouselLinks {\n    __typename\n    ... on DatoCmsPage {\n      title\n      image {\n        alt\n        url\n      }\n      slug\n      miniatureCardMapModule {\n        cardTextColor {\n          hex\n        }\n        filterColor {\n          hex\n        }\n        filterOpacity\n      }\n    }\n    ... on DatoCmsNews {\n      title\n      image {\n        alt\n        url\n      }\n      slug\n      miniatureCardMapModule {\n        cardTextColor {\n          hex\n        }\n        filterColor {\n          hex\n        }\n        filterOpacity\n      }\n    }\n    ... on DatoCmsPressRelease {\n      title\n      image {\n        alt\n        url\n      }\n      slug\n      miniatureCardMapModule {\n        cardTextColor {\n          hex\n        }\n        filterColor {\n          hex\n        }\n        filterOpacity\n      }\n    }\n    ... on DatoCmsPublication {\n      title\n      image {\n        alt\n        url\n      }\n      isPdf\n      pdf {\n        url\n      }\n      externalLink\n    }\n  }\n`\n\nexport default Carousel\n","// extracted by mini-css-extract-plugin\nexport var arrowsContainer = \"carousel-module--arrowsContainer--ffa32\";\nexport var card = \"carousel-module--card--3452d\";\nexport var cardContent = \"carousel-module--cardContent--4d70a\";\nexport var cardsContainer = \"carousel-module--cardsContainer--30678\";\nexport var filter = \"carousel-module--filter--1eb6e\";\nexport var image = \"carousel-module--image--821d1\";\nexport var title = \"carousel-module--title--da85f\";","import React from \"react\"\nimport { graphql } from \"gatsby\"\nimport { MapModuleFieldsFragment } from \"../../../../../graphql-types\"\nimport * as styles from \"./map-module.module.scss\"\nimport { useSlugs } from \"../../../context/slugs-context\"\nimport FilterBar from \"../../tools/filter-bar/filter-bar\"\nimport Capsule from \"../../tools/filter-bar/capsule/capsule\"\nimport Carousel from \"./carousel/carousel\"\n\ntype RenderProps = {\n  data: MapModuleFieldsFragment\n}\n\nconst MapModule: React.FC<RenderProps> = ({ data }) => {\n  const { mapPageSlug } = useSlugs()\n\n  return (\n    <div className={data.isBackgroundDisplayed ? styles.background : \"\"}>\n      <div className={styles.header}>\n        <h2 className={styles.title}>{data.title}</h2>\n        <div className={styles.content}>\n          {(data.filters || data.text) && (\n            <div className={styles.filtersColumn}>\n              {data.filters.length > 0 && (\n                <FilterBar capsules={[...data.filters.map(filter => ({ label: filter.label }))]} />\n              )}\n              {data.text && <p className={styles.text}>{data.text}</p>}\n            </div>\n          )}\n          {data.buttonLabel && (\n            <a href={mapPageSlug}>\n              <Capsule title={data.buttonLabel} isSelected={false} special={true} />\n            </a>\n          )}\n        </div>\n      </div>\n      <div className={styles.imagesContainer}>\n        <div className={styles.carouselContainer}>\n          <Carousel links={data.carouselLinks} />\n        </div>\n        <div className={styles.mainImage}>\n          <img src={data.image?.url} alt={data.image?.alt || \"\"} />\n        </div>\n      </div>\n    </div>\n  )\n}\n\nexport const fragment = graphql`\n  fragment MapModuleFields on DatoCmsHomePageMapModule {\n    id\n    isEnabled\n    title\n    text\n    image {\n      alt\n      url\n    }\n    buttonLabel\n    isBackgroundDisplayed\n    filters {\n      label\n    }\n    carouselLinks {\n      ...CarouselFields\n    }\n  }\n`\n\nexport default MapModule\n","// extracted by mini-css-extract-plugin\nexport var background = \"map-module-module--background--abae5\";\nexport var carouselContainer = \"map-module-module--carouselContainer--02a87\";\nexport var content = \"map-module-module--content--9602d\";\nexport var filtersColumn = \"map-module-module--filtersColumn--1f4dd\";\nexport var header = \"map-module-module--header--3d756\";\nexport var imagesContainer = \"map-module-module--imagesContainer--096bf\";\nexport var mainImage = \"map-module-module--mainImage--2fee4\";\nexport var text = \"map-module-module--text--85cb3\";\nexport var title = \"map-module-module--title--d6953\";","import React from \"react\"\nimport { graphql } from \"gatsby\"\nimport { DatoCmsSlugsConfiguration, HomeQuery } from \"../../../../graphql-types\"\nimport * as styles from \"./home.module.scss\"\nimport { useFormatLocale } from \"../../hooks\"\nimport Layout from \"../../components/layout/layout\"\nimport HeroBanner from \"../../components/home/hero-banner/hero-banner\"\nimport KeyFigures from \"../../components/key-figures/key-figures\"\nimport MediaCards from \"../../components/media-cards/media-cards\"\nimport Highlight from \"../../components/highlight/highlight\"\nimport MapModule from \"../../components/home/map-module/map-module\"\nimport Thematic from \"../../components/home/thematic/thematic\"\nimport Recruitment from \"../../components/home/recruitment/recruitment\"\nimport SEO from \"../../components/seo/seo\"\nimport { HrefLangLinks } from \"../../components/hrefLangLinks/hrefLangLinks\"\n\ntype RenderProps = {\n  data: HomeQuery\n  location: Location\n  pageContext: {\n    locale: string\n    defaultLocale: string\n    slugs: DatoCmsSlugsConfiguration\n  }\n}\n\nconst Home: React.FC<RenderProps> = ({ data, location, pageContext }) => {\n  const renderContent = (content, index: number) => {\n    if (!content.isEnabled) return\n\n    switch (content?.__typename) {\n      case \"DatoCmsHomePageHeroBanner\":\n        return (\n          <section id=\"KeolisHeroBanner\" className={styles.container} key={content.id}>\n            <HeroBanner data={content} />\n          </section>\n        )\n      case \"DatoCmsHomePageKeyFigure\":\n        return (\n          <section id=\"KeolisKeyFigures\" className={styles.container} key={content.id}>\n            <KeyFigures data={content} />\n          </section>\n        )\n      case \"DatoCmsHomePageMediaNews\":\n        const newsroomPageSlug =\n          pageContext.slugs._allNewsroomPageSlugLocales?.find(slug => slug.locale === pageContext.locale)?.value || \"\"\n        return (\n          <section id=\"KeolisMedia\" className={`${styles.container} ${styles.mediaCardsContainer}`} key={content.id}>\n            <MediaCards\n              title={content.title}\n              text={content.text}\n              buttonLink={`${newsroomPageSlug}`}\n              buttonLabel={content.buttonLabel}\n              news={data.allDatoCmsNews.nodes}\n              pressReleases={data.allDatoCmsPressRelease.nodes}\n              publications={data.allDatoCmsPublication.nodes}\n              filters={data.datoCmsNewsroom}\n              limit={15}\n            />\n          </section>\n        )\n      case \"DatoCmsHomePageHighlight\":\n        return (\n          <section id=\"KeolisHighlight\" className={styles.container} key={content.id}>\n            <Highlight data={content} />\n          </section>\n        )\n      case \"DatoCmsHomePageMapModule\":\n        return (\n          <section id=\"KeolisMapModule\" className={styles.container} key={content.id}>\n            <MapModule data={content} />\n          </section>\n        )\n      case \"DatoCmsHomePageThematic\":\n        return (\n          <section id=\"KeolisThematic\" className={styles.container} key={content.id}>\n            <Thematic data={content} />\n          </section>\n        )\n      case \"DatoCmsV3HomePageRecruitment\":\n        return (\n          <section id=\"KeolisRecruitment\" className={styles.container} key={content.id}>\n            <Recruitment data={content} />\n          </section>\n        )\n    }\n  }\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=\"/\"\n      pageTemplate=\"homepage\"\n    >\n      {data.datoCmsHomePage.content.map((content, index) => renderContent(content, index))}\n    </Layout>\n  )\n}\n\nexport const Head: React.FC<RenderProps> = ({ data, pageContext }) => (\n  <>\n    {data.datoCmsGlobalConfiguration.tokenGoogleSiteVerification && (\n      <meta name=\"google-site-verification\" content={data.datoCmsGlobalConfiguration.tokenGoogleSiteVerification} />\n    )}\n    <SEO description={data.datoCmsGlobalConfiguration.metaDescription} locale={useFormatLocale(pageContext.locale)} />\n    {typeof window !== \"undefined\" && (\n      <>\n        <link rel=\"canonical\" href={window.location.href} />\n        <HrefLangLinks defaultDomain={window.location.origin} defaultLocale={pageContext.defaultLocale} />\n      </>\n    )}\n  </>\n)\n\nexport const pageQuery = graphql`\n  query Home($locale: String!) {\n    datoCmsGlobalConfiguration(locale: $locale) {\n      metaDescription\n      tokenGoogleSiteVerification\n      subsidiaryLogo {\n        alt\n        format\n        originalId\n        url\n      }\n    }\n    datoCmsHomePage(locale: $locale) {\n      content {\n        __typename\n        ...MediaNewsFields\n        ...KeyFiguresFields\n        ...HighlightFields\n        ...HeroBannerFields\n        ...MapModuleFields\n        ...ThematicFields\n        ...V3HomePageRecruitmentFields\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    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    datoCmsNewsroom(locale: $locale) {\n      ...NewsroomFilterTitlesFields\n    }\n\n    datoCmsV3Header(locale: $locale) {\n      ...V3HeaderFields\n    }\n\n    datoCmsFooter(locale: $locale) {\n      ...FooterFields\n    }\n\n    datoCmsV3ContactButton(locale: $locale) {\n      ...V3ContactButtonFields\n    }\n  }\n`\n\nexport default Home\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","date","backgroundImage","locale","useLocale","React","className","src","url","alt","useFormatDate","backgroundSvg","backgroundColor","backgroundColorBis","isMobile","useIsMobile","styles","ReactSVG","afterInjection","svg","querySelector","style","fill","querySelectorAll","forEach","path","cardDiv","closest","_cardDiv$getBoundingC","getBoundingClientRect","width","height","setAttribute","rect","cardType","textColor","color","href","CardImage","CardSvg","CardSplit","text","buttonLink","buttonLabel","news","pressReleases","publications","filters","categories","limit","multiRow","buildInternalLink","useSlugs","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","map","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","key","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","capsule","link","isInternal","container","arrowsContainer","redirectLink","getInternalExternalLink","cardContent","beforeInjection","isInternalPage","internalLink","target","_data$carousel$slideI","_data$carousel$slideI2","data","arrowStyleMobile","border","boxShadow","slideIndex","setSlideIndex","handleArrowClick","carousel","chapo","links","_link$miniatureCardMa","_link$miniatureCardMa2","_link$miniatureCardMa3","_link$miniatureCardMa4","_link$miniatureCardMa5","_link$miniatureCardMa6","_link$miniatureCardMa7","_link$pdf","miniatureCardMapModule","filterColor","filterOpacity","_data$image","_data$image2","mapPageSlug","isBackgroundDisplayed","Carousel","carouselLinks","Head","_ref2","pageContext","datoCmsGlobalConfiguration","tokenGoogleSiteVerification","name","content","SEO","description","metaDescription","useFormatLocale","window","rel","location","HrefLangLinks","defaultDomain","origin","defaultLocale","Layout","header","datoCmsV3Header","footer","datoCmsFooter","subsidiaryLogo","contactButton","datoCmsV3ContactButton","currentRoute","pageTemplate","datoCmsHomePage","_pageContext$slugs$_a","_pageContext$slugs$_a2","isEnabled","HeroBanner","KeyFigures","newsroomPageSlug","slugs","_allNewsroomPageSlugLocales","find","value","MediaCards","allDatoCmsNews","nodes","allDatoCmsPressRelease","allDatoCmsPublication","datoCmsNewsroom","Highlight","MapModule","Thematic","Recruitment","renderContent","start","end","startDate","endDate","todayDate"],"sourceRoot":""}