{"version":3,"file":"component---src-templates-index-index-tsx-dadeb4c0bce9f8c19484.js","mappings":"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","sources":["webpack://keolis-web-passenger/./src/components/home/alert-banner/alert-banner.module.scss","webpack://keolis-web-passenger/./static/images/alert.svg","webpack://keolis-web-passenger/./static/images/vector_white.png","webpack://keolis-web-passenger/./src/components/home/alert-banner/alert-banner.tsx","webpack://keolis-web-passenger/./node_modules/pure-react-carousel/dist/index.es.js","webpack://keolis-web-passenger/./src/components/home/carousel/carousel.tsx","webpack://keolis-web-passenger/./src/components/home/carousel/carousel.module.scss","webpack://keolis-web-passenger/./src/components/home/information-banner/information-banner.module.scss","webpack://keolis-web-passenger/./src/components/home/information-banner/information-banner.tsx","webpack://keolis-web-passenger/./src/components/home/main-blocks/main-blocks.module.scss","webpack://keolis-web-passenger/./src/components/home/custom-block/custom-block.tsx","webpack://keolis-web-passenger/./src/components/home/le-pilote-itinerary-block/le-pilote-itinerary-block.module.scss","webpack://keolis-web-passenger/./src/components/home/le-pilote-itinerary-block/le-pilote-itinerary-block.tsx","webpack://keolis-web-passenger/./src/components/home/le-pilote-next-trips-search-block/le-pilote-next-trips-search-block.module.scss","webpack://keolis-web-passenger/./src/components/home/le-pilote-next-trips-search-block/le-pilote-next-trips-search-block.tsx","webpack://keolis-web-passenger/./src/components/home/traffic-block/traffic-parent-block.module.scss","webpack://keolis-web-passenger/./src/components/home/traffic-block/traffic-blocks.module.scss","webpack://keolis-web-passenger/./static/images/vector.png","webpack://keolis-web-passenger/./src/components/layout/icons.tsx","webpack://keolis-web-passenger/./src/components/home/traffic-block/traffic-block.module.scss","webpack://keolis-web-passenger/./src/components/home/le-pilote-traffic-block/le-pilote-traffic-block.tsx","webpack://keolis-web-passenger/./src/components/home/le-pilote-traffic-block/le-pilote-traffic-blocks.tsx","webpack://keolis-web-passenger/./src/components/home/le-pilote-traffic-block/le-pilote-traffic-parent-block.tsx","webpack://keolis-web-passenger/./static/images/timesheet.svg","webpack://keolis-web-passenger/./src/components/home/schedules-search-block/schedules-search-block.module.scss","webpack://keolis-web-passenger/./src/components/home/schedules-search-block/schedules-search-block.tsx","webpack://keolis-web-passenger/./src/components/home/ter-dakar-itinerary-search-block/ter-dakar-itinerary-search-block.tsx","webpack://keolis-web-passenger/./src/components/home/ter-dakar-itinerary-search-block/ter-dakar-itinerary-search-block.module.scss","webpack://keolis-web-passenger/./static/images/info_traffic_block_picto.svg","webpack://keolis-web-passenger/./src/components/home/traffic-block/traffic-block.tsx","webpack://keolis-web-passenger/./src/components/home/traffic-block/traffic-blocks.tsx","webpack://keolis-web-passenger/./src/components/home/traffic-block/traffic-parent-block.tsx","webpack://keolis-web-passenger/./src/components/home/main-blocks/main-blocks-mobile-tabs.tsx","webpack://keolis-web-passenger/./src/components/home/main-blocks/main-blocks-mobile-tabs.module.scss","webpack://keolis-web-passenger/./static/images/triangle.svg","webpack://keolis-web-passenger/./src/components/home/instant-system-widget-block/instant-system-widget-block.tsx","webpack://keolis-web-passenger/./src/components/home/instant-system-widget-block/instant-system-widget-block.module.scss","webpack://keolis-web-passenger/./src/components/home/main-blocks/main-blocks.tsx","webpack://keolis-web-passenger/./src/components/home/news/news.tsx","webpack://keolis-web-passenger/./src/components/home/news/news.module.scss","webpack://keolis-web-passenger/./src/components/home/news/news-list.tsx","webpack://keolis-web-passenger/./src/components/home/news/news-list.module.scss","webpack://keolis-web-passenger/./src/components/home/secondary-blocks/secondary-blocks.module.scss","webpack://keolis-web-passenger/./src/components/home/secondary-blocks/secondary-block.tsx","webpack://keolis-web-passenger/./src/components/home/secondary-blocks/secondary-block.module.scss","webpack://keolis-web-passenger/./src/components/home/secondary-blocks/secondary-blocks.tsx","webpack://keolis-web-passenger/./src/templates/index/index.module.scss","webpack://keolis-web-passenger/./src/templates/index/index.tsx"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport var alertBanner = \"alert-banner-module--alertBanner--1d58d\";\nexport var alertBannerBody = \"alert-banner-module--alertBannerBody--0fcd2\";\nexport var alertBannerButton = \"alert-banner-module--alertBannerButton--a25dc\";\nexport var alertBannerClosed = \"alert-banner-module--alertBannerClosed--1fdf9\";\nexport var alertBannerContentWrapper = \"alert-banner-module--alertBannerContentWrapper--cb855\";\nexport var alertBannerDataContent = \"alert-banner-module--alertBannerDataContent--c3aaa\";\nexport var alertBannerLink = \"alert-banner-module--alertBannerLink--3b676\";\nexport var closeButton = \"alert-banner-module--closeButton--d0b2a\";\nexport var closeButtonWrapper = \"alert-banner-module--closeButtonWrapper--eab83\";\nexport var images = \"alert-banner-module--images--5b8d5\";\nexport var infoTrafficDate = \"alert-banner-module--infoTrafficDate--18979\";\nexport var shortDescription = \"alert-banner-module--shortDescription--d9ddc\";\nexport var title = \"alert-banner-module--title--dc8a5\";","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTA2IiBoZWlnaHQ9Ijg3IiB2aWV3Qm94PSIwIDAgMTA2IDg3IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBkPSJNNTIuOTIwNCA2Ni4zNTgzQzQ5LjkxODggNjYuMzU4MyA0Ny42NTU3IDY4LjcxMzcgNDcuNjU1NyA3MS44Mzc5QzQ3LjY1NTcgNzUuMDY2NiA0OS44MjEgNzcuMzE5MyA1Mi45MjA0IDc3LjMxOTNDNTYuMDYzMiA3Ny4zMTkzIDU4LjM0NDYgNzUuMDEyMSA1OC4zNDQ2IDcxLjgzNzlDNTguMzQ0NiA2OC43MTM3IDU2LjAxNDMgNjYuMzU4MyA1Mi45MjA0IDY2LjM1ODNaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNDguMDM4NyAyNy43NTM1QzQ3Ljk2NzQgMjYuOTUxNyA0Ny44OTU2IDI2LjE0MDEgNDcuODk1NiAyNS41OTQ1QzQ3Ljg5NTYgMjMuNjUxNiA0OS42NTIgMjIuNTgzNyA1Mi44NDE0IDIyLjU4MzdDNTYuOTA0OCAyMi41ODM3IDU3LjgxNTUgMjQuMjU3OSA1Ny44NjY2IDI1LjY2MTVDNTcuODY2NiAyNi41Mzc0IDU3Ljc3NjkgMjcuNjg2NiA1Ny42MjIzIDI4LjgzMTJDNTcuNDc5MiAzMC40MDU0IDU3LjI2MjYgMzIuNTQzOSA1Ny4wMTMzIDM1LjAwOTFMNTYuODM3MSAzNi43NTExQzU2LjEzMDQgNDMuNzE3NCA1NS4yNjE5IDUyLjI4MiA1NC44MjY5IDU4LjczMTNMNTQuODAwOSA1OS4wOTI5SDUwLjk2NEw1MC45MzU4IDU4LjczNEM1MC4zMzQ5IDUwLjgzNzMgNDkuMjQzMSAzOS45MzI1IDQ4LjUxNTMgMzIuNjYzNUw0OC4xMzczIDI4Ljg5NzNDNDguMTIwNyAyOC42NjUyIDQ4LjA5ODMgMjguNDE5NiA0OC4wNzU0IDI4LjE2NzhMNDguMDQ5OSAyNy44ODEyTDQ4LjAzODcgMjcuNzUzNVoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTA1LjE5NCA3OS45NjQxTDU3LjQ0NzQgMi42MTQzN0M1Ni40MjM3IDAuOTUyNzA4IDU0LjgwMzYgMCA1My4wMDA2IDBDNTEuMjAwMyAwIDQ5LjU4MDMgMC45NTUzODcgNDguNTUzOSAyLjYxNDM3TDAuODA0NTI4IDc5Ljk2NDFDLTAuMjE2NDcyIDgxLjYxODYgLTAuMjY4MDM4IDgzLjM4MiAwLjY2MzI4MyA4NC43OTgxQzEuNTgxMTUgODYuMTk5MSAzLjI5NDAzIDg3IDUuMzY2OTcgODdIMTAwLjYzNEMxMDIuNzA1IDg3IDEwNC40MiA4Ni4xOTY0IDEwNS4zMzggODQuNzk4MUMxMDYuMjY5IDgzLjM4MDIgMTA2LjIxNSA4MS42MTg2IDEwNS4xOTQgNzkuOTY0MVpNNi44MDAwNCA4MS40OTU0TDUzLjAwMTEgNi42NDkzMUw5OS4yMDIxIDgxLjQ5NTRINi44MDAwNFoiIGZpbGw9IndoaXRlIi8+Cjwvc3ZnPgo=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAUOSURBVHgBpVfLThxHFO0eep4wEDCIMMYJHmPAmSiJBMkikRKS2JG8QIkU8QMsQOyQkBBCiJdY8Ql8Ahs+AZZZwIIVLEA4CUZCSDwEzLunfE5ThWt6ugfGtFSqmp6655y6t+reasPQHiGE6rvQNtgbj3hgb+pYxFcc9xkcitvnUBk+gtyNxfem12RzYWEhUCqVNkX5c2dYC3kmk3mukTsPsclRhqWT9/f3B/f29nox8Z1bhAQ07xNShfzd7u5uz+DgoIVpgTssCchmdXV1RVpaWhrX1ta+KxaL/7lFXFxcJP3CId8TtIKcWMRsbW2Nk4NckvOjaq6+vb29Ph6PP8GrpysrKz8VCoX/fTzx4JUTg1ixWCxBbHLQC9IDhlLtCGhra2vApFa8+yIcDr+cnZ39rYoI0xXGCvJcLne0uLj4K7EikciXmNpGjlQqFXKH05RuqZcCnsGoB30KIl67RTCe+p7wWjnJp6enXwPjK7SeaDT6zO2BMvcNDw/XYRj5DA/c1QHFz0Oh0Cu0r71EqD0B8qQfOWxTwHwFrGR9ff3nzc3NTeQgl3BtZuUOK5FIxCgC4wQNKQJjRwSB3Z5wnxidnLbw5AvGv6mpqbmzszPKUMvFeh9F/AxyInpHBFpVEfetnBg6uTqCnrtYiWCM6AkaynAk7wmHHvOUFPxCkROLG8/L9dZdDExTaOe5tLm5WYChcXNzY1xeXhoQYWSz2TDONLOlZzKybTsA8hKw8hCeSafTGcQ+d3x8XBgdHbXn5+eF4rnvIUFAuiza2NjYgl38dHl5+edqIYDA90tLS7+43S5Da4ga0rkhtPTMo7O+vl6RHXECjtn0dyrr0e2ACVbk/loeaRg4ODh4Cff+6yYfGRn5m80tgnNpA9vy3f4pAmT+P3S7emxs7E/Lsn5kGx8f/4vv9Dk8ntL2kwX4ZriJiYm3wWBwAO0H2QYmJyffeuyPB1fRipULn9yOo/YHdvo3IP1W9Wo8MzPzplrteJAIUSW3T01NvWEuQGN+70WW62bD7z6ZfPyS1cNE+MWcgFjd7yq9Ymo3iwv6DiYqjplypbAU51YT4UlsyLPvvpJ55XbMS8h7Q5wXGPQthqwd6Jkx/aropt+xvKsDW1tbferIkZxAem5nYcHYSa/d3d1hjENeaZvhoHAlgpg7Ozu95DA86gF/8MyGWTJXV1e/v76+/mdubk65vY8rZzZUuV1VNZWsZOKhiIRWO5xwEIuYxKZoVRPYlOsNKSAE18aQzWJwVxQTrHw+X8L7PFoW5Gn8n0VmLCaTyRIyHv9jbjcHBgask5MT6+rqKoJVR2iPRg+ZwCjSHra0T7M2ALvIuhCQAAZWYQLYEYPNwp5FpYA+x1ckR1HKYQUFjZxFzFE/NDRkUxiLD1aeCQQCGRDn8L8N7zkiIc6EOHpM2ZlOLOBGE8pEXV2dwCROLrCiASSLcRrkTlWjJ3CnEyC3qV5VNvbAENvb23ZHR0cBYchTBGzSFIKWQ/johRLGjg05ncWL288ldSWjy+Jyh7fxfsi46ZcJ7dRUnCShFTDuCdoSo6GhgVhP5ImJaHdC05KucFZwenpqHx0d5ff39+lOkx7Bamx4oES344SI2wVX1nTXfcLGfYJ4xfPz8wLdjrHAN4F9dnZmb2xs2Iq3bAVyhXXyqAS5EqqtpaQqj9KGXpVfQmxBfff7GTtuUYQacW3FxLgLiaERmqLWomQ8ppYbZRnW9zb0Afk+EA8Jp/SOAAAAAElFTkSuQmCC\"","import React, { useEffect, useState } from \"react\"\nimport { ReactSVG } from \"react-svg\"\nimport { graphql, useStaticQuery } from \"gatsby\"\nimport { AlertBannerFieldsFragment, DatoCmsInfoTraffic, HomeQuery } from \"../../../../graphql-types\"\nimport * as config from \"../../../../config\"\nimport * as styles from \"./alert-banner.module.scss\"\nimport { format } from \"date-fns\"\nimport sanitizeHtml from \"sanitize-html\"\nimport { pushGtmEvent } from \"../../../gtm/interaction-event\"\nimport alertImage from \"../../../../static/images/alert.svg\"\nimport cross from \"../../../../static/images/vector_white.png\"\nimport { useInternalExternalLink } from \"../../../hooks\"\n\ntype RenderProps = {\n  infoTrafficData: DatoCmsInfoTraffic\n  buttonText: HomeQuery[\"datoCmsGlobalConfiguration\"][\"redirectionButtonText\"]\n  alertBannerConfig: AlertBannerFieldsFragment\n  defaultLocale: string\n}\n\nconst AlertBanner: React.FC<RenderProps> = ({\n  infoTrafficData,\n  buttonText,\n  alertBannerConfig: {\n    alertBannerIsActive,\n    alertBannerTitle,\n    alertBannerDate,\n    alertBannerInternalExternalLink,\n    alertBannerShortDescription,\n    alertBannerMoreInfoButtonLabel,\n    alertBannerClosingButtonAlt,\n  },\n  defaultLocale,\n}) => {\n  const globalConfig = useStaticQuery(graphql`\n    query infoTrafficDetailPageQuery {\n      allDatoCmsPage(filter: { isInfoTrafficDetailPage: { eq: true } }) {\n        nodes {\n          id\n          title\n          slug\n          isInfoTrafficDetailPage\n        }\n      }\n    }\n  `)\n\n  const [isBannerOpened, setBannerState] = useState(false)\n\n  const closeBanner = () => {\n    pushGtmEvent(\"eventga\", \"Homepage\", \"Info Banner\", alertBannerClosingButtonAlt)\n    setBannerState(false)\n    setTimeout(function () {\n      if (typeof window !== \"undefined\") {\n        sessionStorage.setItem(\"id\", alertBannerIsActive ? \"generalBanner\" : infoTrafficData.id)\n      }\n    }, 1000)\n  }\n\n  let infoTrafficId: string\n  let generalBanner: string\n\n  useEffect(() => {\n    if (typeof window !== \"undefined\") {\n      infoTrafficId = sessionStorage.getItem(\"id\")\n      generalBanner = sessionStorage.getItem(\"id\")\n    }\n    if (\n      (!infoTrafficId || infoTrafficId == \"undefined\" || infoTrafficId == \"\" || infoTrafficId == undefined) &&\n      (!generalBanner || generalBanner != \"generalBanner\")\n    ) {\n      setBannerState(true)\n    }\n  }, [])\n\n  // Error displayed by date-format => RangeError: Use `yyyy` instead of `YYYY` (in `dd/MM/YYYY`) for formatting years to the input\n  const dateFormat =\n    config.date_format[config.locale] === \"dd/MM/YYYY\" ? \"dd/MM/yyyy\" : config.date_format[config.locale]\n\n  const link = alertBannerInternalExternalLink[0]\n    ? useInternalExternalLink(alertBannerInternalExternalLink[0], config.locale, defaultLocale)\n    : null\n\n  return alertBannerIsActive && !generalBanner ? (\n    <div className={`${styles.alertBanner} ${!isBannerOpened && styles.alertBannerClosed}`}>\n      <div className={styles.alertBannerContentWrapper}>\n        <ReactSVG\n          src={alertImage}\n          className={styles.images}\n          beforeInjection={svg => svg.setAttribute(\"aria-hidden\", \"true\")}\n        />\n        <div className={styles.alertBannerBody}>\n          <div className={styles.infoTrafficDate}>{format(new Date(alertBannerDate), dateFormat)}</div>\n          <h3 className={styles.title}>{alertBannerTitle}</h3>\n          <div\n            className={styles.shortDescription}\n            dangerouslySetInnerHTML={{\n              __html: sanitizeHtml(alertBannerShortDescription, {\n                allowedTags: [\"p\"],\n              }),\n            }}\n          />\n        </div>\n        {link && (\n          <div className={styles.alertBannerButton}>\n            <a\n              href={link}\n              className={styles.alertBannerLink}\n              target={alertBannerInternalExternalLink[0]?.externalLink ? \"_blank\" : \"_self\"}\n              onClick={() =>\n                pushGtmEvent(\"eventga\", \"Homepage\", \"Info Banner\", link ? alertBannerMoreInfoButtonLabel : buttonText)\n              }\n            >\n              {alertBannerMoreInfoButtonLabel || buttonText}\n            </a>\n          </div>\n        )}\n        <div className={styles.closeButtonWrapper}>\n          <button className={styles.closeButton} onClick={closeBanner}>\n            <img src={cross} alt={alertBannerClosingButtonAlt} />\n          </button>\n        </div>\n      </div>\n    </div>\n  ) : (\n    infoTrafficId !== infoTrafficData?.id && (\n      <div className={isBannerOpened ? styles.alertBanner : `${styles.alertBanner} ${styles.alertBannerClosed}`}>\n        <div className={styles.alertBannerContentWrapper}>\n          <ReactSVG\n            src={alertImage}\n            className={styles.images}\n            beforeInjection={svg => svg.setAttribute(\"aria-hidden\", \"true\")}\n          />\n          <div className={styles.alertBannerBody}>\n            <div className={styles.infoTrafficDate}>{format(new Date(infoTrafficData.start), dateFormat)}</div>\n            <h3 className={styles.title}>{infoTrafficData.title}</h3>\n            <div\n              className={styles.shortDescription}\n              dangerouslySetInnerHTML={{\n                __html: sanitizeHtml(infoTrafficData.shortDescription, {\n                  allowedTags: [\"p\"],\n                }),\n              }}\n            />\n          </div>\n          <div className={styles.alertBannerButton}>\n            <a\n              href={\n                !globalConfig?.allDatoCmsPage?.nodes[0]?.slug\n                  ? `/traffic-info/${infoTrafficData.slug}`\n                  : `/${\n                      globalConfig?.allDatoCmsPage?.nodes[0]?.slug ? globalConfig.allDatoCmsPage.nodes[0].slug : \"\"\n                    }` +\n                    \"?\" +\n                    infoTrafficData.title.replace(new RegExp(\" \", \"g\"), \"-\") +\n                    \"#\" +\n                    infoTrafficData.id\n              }\n              className={styles.alertBannerLink}\n              onClick={() => pushGtmEvent(\"eventga\", \"Homepage\", \"Info Banner\", buttonText)}\n            >\n              {buttonText}\n            </a>\n          </div>\n          <div className={styles.closeButtonWrapper}>\n            <button className={styles.closeButton} onClick={closeBanner}>\n              <img alt={alertBannerClosingButtonAlt} src={cross} />\n            </button>\n          </div>\n        </div>\n      </div>\n    )\n  )\n}\n\nexport const fragment = graphql`\n  fragment AlertBannerFields on DatoCmsHome {\n    alertBannerIsActive\n    alertBannerTitle\n    alertBannerDate\n    alertBannerInternalExternalLink {\n      ...InternalExternalLinkFields\n    }\n    alertBannerShortDescription\n    alertBannerMoreInfoButtonLabel\n    alertBannerClosingButtonAlt\n  }\n`\n\nexport default AlertBanner\n","import \"core-js/modules/es.array.sort.js\";\nfunction ownKeys(e, t) {\n  var r = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var i = Object.getOwnPropertySymbols(e);\n    t && (i = i.filter(function (t) {\n      return Object.getOwnPropertyDescriptor(e, t).enumerable;\n    })), r.push.apply(r, i);\n  }\n  return r;\n}\nfunction _objectSpread2(e) {\n  for (var t = 1; t < arguments.length; t++) {\n    var r = null != arguments[t] ? arguments[t] : {};\n    t % 2 ? ownKeys(Object(r), !0).forEach(function (t) {\n      _defineProperty(e, t, r[t]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(r)) : ownKeys(Object(r)).forEach(function (t) {\n      Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(r, t));\n    });\n  }\n  return e;\n}\nfunction _classCallCheck(e, t) {\n  if (!(e instanceof t)) throw new TypeError(\"Cannot call a class as a function\");\n}\nfunction _defineProperties(e, t) {\n  for (var r = 0; r < t.length; r++) {\n    var i = t[r];\n    i.enumerable = i.enumerable || !1, i.configurable = !0, \"value\" in i && (i.writable = !0), Object.defineProperty(e, i.key, i);\n  }\n}\nfunction _createClass(e, t, r) {\n  return t && _defineProperties(e.prototype, t), r && _defineProperties(e, r), Object.defineProperty(e, \"prototype\", {\n    writable: !1\n  }), e;\n}\nfunction _defineProperty(e, t, r) {\n  return t in e ? Object.defineProperty(e, t, {\n    value: r,\n    enumerable: !0,\n    configurable: !0,\n    writable: !0\n  }) : e[t] = r, e;\n}\nfunction _extends() {\n  return (_extends = Object.assign ? Object.assign.bind() : function (e) {\n    for (var t = 1; t < arguments.length; t++) {\n      var r = arguments[t];\n      for (var i in r) Object.prototype.hasOwnProperty.call(r, i) && (e[i] = r[i]);\n    }\n    return e;\n  }).apply(this, arguments);\n}\nfunction _inherits(e, t) {\n  if (\"function\" != typeof t && null !== t) throw new TypeError(\"Super expression must either be null or a function\");\n  e.prototype = Object.create(t && t.prototype, {\n    constructor: {\n      value: e,\n      writable: !0,\n      configurable: !0\n    }\n  }), Object.defineProperty(e, \"prototype\", {\n    writable: !1\n  }), t && _setPrototypeOf(e, t);\n}\nfunction _getPrototypeOf(e) {\n  return (_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (e) {\n    return e.__proto__ || Object.getPrototypeOf(e);\n  })(e);\n}\nfunction _setPrototypeOf(e, t) {\n  return (_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (e, t) {\n    return e.__proto__ = t, e;\n  })(e, t);\n}\nfunction _isNativeReflectConstruct() {\n  if (\"undefined\" == typeof Reflect || !Reflect.construct) return !1;\n  if (Reflect.construct.sham) return !1;\n  if (\"function\" == typeof Proxy) return !0;\n  try {\n    return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})), !0;\n  } catch (e) {\n    return !1;\n  }\n}\nfunction _objectWithoutPropertiesLoose(e, t) {\n  if (null == e) return {};\n  var r,\n    i,\n    n = {},\n    s = Object.keys(e);\n  for (i = 0; i < s.length; i++) r = s[i], t.indexOf(r) >= 0 || (n[r] = e[r]);\n  return n;\n}\nfunction _objectWithoutProperties(e, t) {\n  if (null == e) return {};\n  var r,\n    i,\n    n = _objectWithoutPropertiesLoose(e, t);\n  if (Object.getOwnPropertySymbols) {\n    var s = Object.getOwnPropertySymbols(e);\n    for (i = 0; i < s.length; i++) r = s[i], t.indexOf(r) >= 0 || Object.prototype.propertyIsEnumerable.call(e, r) && (n[r] = e[r]);\n  }\n  return n;\n}\nfunction _assertThisInitialized(e) {\n  if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  return e;\n}\nfunction _possibleConstructorReturn(e, t) {\n  if (t && (\"object\" == typeof t || \"function\" == typeof t)) return t;\n  if (void 0 !== t) throw new TypeError(\"Derived constructors may only return object or undefined\");\n  return _assertThisInitialized(e);\n}\nfunction _createSuper(e) {\n  var t = _isNativeReflectConstruct();\n  return function () {\n    var r,\n      i = _getPrototypeOf(e);\n    if (t) {\n      var n = _getPrototypeOf(this).constructor;\n      r = Reflect.construct(i, arguments, n);\n    } else r = i.apply(this, arguments);\n    return _possibleConstructorReturn(this, r);\n  };\n}\nfunction _toConsumableArray(e) {\n  return _arrayWithoutHoles(e) || _iterableToArray(e) || _unsupportedIterableToArray(e) || _nonIterableSpread();\n}\nfunction _arrayWithoutHoles(e) {\n  if (Array.isArray(e)) return _arrayLikeToArray(e);\n}\nfunction _iterableToArray(e) {\n  if (\"undefined\" != typeof Symbol && null != e[Symbol.iterator] || null != e[\"@@iterator\"]) return Array.from(e);\n}\nfunction _unsupportedIterableToArray(e, t) {\n  if (e) {\n    if (\"string\" == typeof e) return _arrayLikeToArray(e, t);\n    var r = Object.prototype.toString.call(e).slice(8, -1);\n    return \"Object\" === r && e.constructor && (r = e.constructor.name), \"Map\" === r || \"Set\" === r ? Array.from(e) : \"Arguments\" === r || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r) ? _arrayLikeToArray(e, t) : void 0;\n  }\n}\nfunction _arrayLikeToArray(e, t) {\n  (null == t || t > e.length) && (t = e.length);\n  for (var r = 0, i = new Array(t); r < t; r++) i[r] = e[r];\n  return i;\n}\nfunction _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction createCommonjsModule(e, t) {\n  return t = {\n    exports: {}\n  }, e(t, t.exports), t.exports;\n}\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nfunction cn(e) {\n  return e.map(function (e) {\n    return !1 === e ? null : e;\n  }).join(\" \").replace(/\\s+/g, \" \").trim();\n}\nfunction slideSize(e, t) {\n  return 100 / e * t / t;\n}\nfunction slideTraySize(e, t) {\n  return 100 * e / t;\n}\nfunction pct(e) {\n  return \"\".concat(e, \"%\");\n}\nfunction equal(e, t, r) {\n  if (e === t) return !0;\n  var i = types[jkrosoType(e)],\n    n = types[jkrosoType(t)];\n  return !(!i || i !== n) && i(e, t, r);\n}\nfunction memoGaurd(e) {\n  return function (t, r, i) {\n    if (!i) return e(t, r, []);\n    for (var n, s = i.length; n = i[--s];) if (n[0] === t && n[1] === r) return !0;\n    return e(t, r, i);\n  };\n}\nfunction arrayEqual(e, t, r) {\n  var i = e.length;\n  if (i !== t.length) return !1;\n  for (r.push([e, t]); i--;) if (!equal(e[i], t[i], r)) return !1;\n  return !0;\n}\nfunction objectEqual(e, t, r) {\n  if (\"function\" == typeof e.equal) return r.push([e, t]), e.equal(t, r);\n  var i = getEnumerableProperties(e),\n    n = getEnumerableProperties(t),\n    s = i.length;\n  if (s !== n.length) return !1;\n  for (i.sort(), n.sort(); s--;) if (i[s] !== n[s]) return !1;\n  for (r.push([e, t]), s = i.length; s--;) {\n    var o = i[s];\n    if (!equal(e[o], t[o], r)) return !1;\n  }\n  return !0;\n}\nfunction getEnumerableProperties(e) {\n  var t = [];\n  for (var r in e) \"constructor\" !== r && t.push(r);\n  return t;\n}\nfunction isNonNullObject(e) {\n  return !!e && \"object\" == typeof e;\n}\nfunction isSpecial(e) {\n  var t = Object.prototype.toString.call(e);\n  return \"[object RegExp]\" === t || \"[object Date]\" === t || isReactElement(e);\n}\nfunction isReactElement(e) {\n  return e.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction emptyTarget(e) {\n  return Array.isArray(e) ? [] : {};\n}\nfunction cloneUnlessOtherwiseSpecified(e, t) {\n  return !1 !== t.clone && t.isMergeableObject(e) ? deepmerge(emptyTarget(e), e, t) : e;\n}\nfunction defaultArrayMerge(e, t, r) {\n  return e.concat(t).map(function (e) {\n    return cloneUnlessOtherwiseSpecified(e, r);\n  });\n}\nfunction mergeObject(e, t, r) {\n  var i = {};\n  return r.isMergeableObject(e) && Object.keys(e).forEach(function (t) {\n    i[t] = cloneUnlessOtherwiseSpecified(e[t], r);\n  }), Object.keys(t).forEach(function (n) {\n    r.isMergeableObject(t[n]) && e[n] ? i[n] = deepmerge(e[n], t[n], r) : i[n] = cloneUnlessOtherwiseSpecified(t[n], r);\n  }), i;\n}\nfunction deepmerge(e, t, r) {\n  (r = r || {}).arrayMerge = r.arrayMerge || defaultArrayMerge, r.isMergeableObject = r.isMergeableObject || isMergeableObject;\n  var i = Array.isArray(t);\n  return i === Array.isArray(e) ? i ? r.arrayMerge(e, t, r) : mergeObject(e, t, r) : cloneUnlessOtherwiseSpecified(t, r);\n}\nfunction WithStore(e) {\n  var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : function () {\n      return {};\n    },\n    r = function (r) {\n      function i(e, r) {\n        var s;\n        return _classCallCheck(this, i), s = n.call(this, e, r), s.state = t(_objectSpread2({}, r.state)), s.updateStateProps = s.updateStateProps.bind(_assertThisInitialized(s)), s;\n      }\n      _inherits(i, r);\n      var n = _createSuper(i);\n      return _createClass(i, [{\n        key: \"componentDidMount\",\n        value: function value() {\n          this.context.subscribe(this.updateStateProps);\n        }\n      }, {\n        key: \"shouldComponentUpdate\",\n        value: function value(e, t) {\n          return !equals(t, this.state) || !equals(e, this.props);\n        }\n      }, {\n        key: \"componentWillUnmount\",\n        value: function value() {\n          this.context.unsubscribe(this.updateStateProps);\n        }\n      }, {\n        key: \"updateStateProps\",\n        value: function value() {\n          this.setState(t(_objectSpread2({}, this.context.state)));\n        }\n      }, {\n        key: \"render\",\n        value: function value() {\n          var t = this,\n            r = deepmerge_1(this.state, this.props);\n          return React.createElement(e, _extends({\n            ref: function ref(e) {\n              t.instance = e;\n            }\n          }, r, {\n            carouselStore: {\n              getStoreState: this.context.getStoreState,\n              masterSpinnerError: this.context.masterSpinnerError,\n              masterSpinnerSuccess: this.context.masterSpinnerSuccess,\n              setStoreState: this.context.setStoreState,\n              subscribeMasterSpinner: this.context.subscribeMasterSpinner,\n              unsubscribeAllMasterSpinner: this.context.unsubscribeAllMasterSpinner,\n              unsubscribeMasterSpinner: this.context.unsubscribeMasterSpinner\n            }\n          }), this.props.children);\n        }\n      }]), i;\n    }(React.Component);\n  return _defineProperty(r, \"contextType\", Context), _defineProperty(r, \"propTypes\", {\n    children: CarouselPropTypes.children\n  }), _defineProperty(r, \"defaultProps\", {\n    children: null\n  }), r;\n}\nimport React from \"react\";\nvar ReactPropTypesSecret = \"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\",\n  ReactPropTypesSecret_1 = ReactPropTypesSecret;\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\nvar factoryWithThrowingShims = function factoryWithThrowingShims() {\n    function e(e, t, r, i, n, s) {\n      if (s !== ReactPropTypesSecret_1) {\n        var o = new Error(\"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types\");\n        throw o.name = \"Invariant Violation\", o;\n      }\n    }\n    function t() {\n      return e;\n    }\n    e.isRequired = e;\n    var r = {\n      array: e,\n      bigint: e,\n      bool: e,\n      func: e,\n      number: e,\n      object: e,\n      string: e,\n      symbol: e,\n      any: e,\n      arrayOf: t,\n      element: e,\n      elementType: e,\n      instanceOf: t,\n      node: e,\n      objectOf: t,\n      oneOf: t,\n      oneOfType: t,\n      shape: t,\n      exact: t,\n      checkPropTypes: emptyFunctionWithReset,\n      resetWarningCache: emptyFunction\n    };\n    return r.PropTypes = r, r;\n  },\n  propTypes = createCommonjsModule(function (e) {\n    e.exports = factoryWithThrowingShims();\n  }),\n  LOADING = \"loading\",\n  SUCCESS = \"success\",\n  ERROR = \"error\",\n  CarouselPropTypes = {\n    children: propTypes.oneOfType([propTypes.arrayOf(propTypes.node), propTypes.node]),\n    direction: propTypes.oneOf([\"forward\", \"backward\"]),\n    height: function height(e, t) {\n      var r = e[t];\n      return \"vertical\" !== e.orientation || null !== r && \"number\" == typeof r ? null : new Error(\"Missing required property '\".concat(t, \"' when orientation is vertical.  You must supply a number representing the height in pixels\"));\n    },\n    orientation: propTypes.oneOf([\"horizontal\", \"vertical\"]),\n    isBgImage: function isBgImage(e, t) {\n      return !0 === e[t] && \"img\" === e.tag ? new Error(\"HTML img elements should not have a backgroundImage.  Please use \".concat(t, \" for other block-level HTML tags, like div, a, section, etc...\")) : null;\n    }\n  },\n  boundedRange = function boundedRange(e) {\n    var t = e.min,\n      r = e.max,\n      i = e.x;\n    return Math.min(r, Math.max(t, i));\n  },\n  s = {\n    buttonBack: \"buttonBack___1mlaL\"\n  },\n  _excluded = [\"carouselStore\", \"className\", \"currentSlide\", \"disabled\", \"onClick\", \"step\", \"totalSlides\", \"visibleSlides\", \"infinite\"],\n  ButtonBack = function (e) {\n    function t(e) {\n      var i;\n      return _classCallCheck(this, t), i = r.call(this, e), i.handleOnClick = i.handleOnClick.bind(_assertThisInitialized(i)), i;\n    }\n    _inherits(t, e);\n    var r = _createSuper(t);\n    return _createClass(t, [{\n      key: \"handleOnClick\",\n      value: function value(e) {\n        var t = this.props,\n          r = t.carouselStore,\n          i = t.currentSlide,\n          n = t.onClick,\n          s = t.step,\n          o = t.infinite,\n          a = t.visibleSlides,\n          l = t.totalSlides - a,\n          c = Math.max(i - s, 0);\n        o && (c = 0 === i ? l : c), r.setStoreState({\n          currentSlide: c,\n          isPlaying: !1\n        }, null !== n && n.call(this, e));\n      }\n    }, {\n      key: \"render\",\n      value: function value() {\n        var e = this.props,\n          r = (e.carouselStore, e.className),\n          i = (e.currentSlide, e.disabled, e.onClick, e.step, e.totalSlides, e.visibleSlides, e.infinite),\n          n = _objectWithoutProperties(e, _excluded),\n          o = cn([s.buttonBack, \"carousel__back-button\", r]),\n          a = t.setDisabled(this.props.disabled, this.props.currentSlide, i);\n        return React.createElement(\"button\", _extends({\n          type: \"button\",\n          \"aria-label\": \"previous\",\n          className: o,\n          onClick: this.handleOnClick,\n          disabled: a\n        }, n), this.props.children);\n      }\n    }], [{\n      key: \"setDisabled\",\n      value: function value(e, t, r) {\n        return null !== e ? e : 0 === t && !r;\n      }\n    }]), t;\n  }(React.Component);\n_defineProperty(ButtonBack, \"propTypes\", {\n  carouselStore: propTypes.object.isRequired,\n  children: CarouselPropTypes.children.isRequired,\n  className: propTypes.string,\n  currentSlide: propTypes.number.isRequired,\n  disabled: propTypes.bool,\n  onClick: propTypes.func,\n  step: propTypes.number.isRequired,\n  totalSlides: propTypes.number.isRequired,\n  visibleSlides: propTypes.number.isRequired,\n  infinite: propTypes.bool\n}), _defineProperty(ButtonBack, \"defaultProps\", {\n  className: null,\n  disabled: null,\n  onClick: null,\n  infinite: !1\n});\nvar jkrosoType = createCommonjsModule(function (e, t) {\n    var r = {}.toString,\n      i = \"undefined\" != typeof window ? window.Node : Function;\n    e.exports = t = function t(e) {\n      var t = typeof e;\n      if (\"object\" != t) return t;\n      if (t = n[r.call(e)], \"object\" == t) return e instanceof Map ? \"map\" : e instanceof Set ? \"set\" : \"object\";\n      if (t) return t;\n      if (e instanceof i) switch (e.nodeType) {\n        case 1:\n          return \"element\";\n        case 3:\n          return \"text-node\";\n        case 9:\n          return \"document\";\n        case 11:\n          return \"document-fragment\";\n        default:\n          return \"dom-node\";\n      }\n    };\n    var n = t.types = {\n      \"[object Function]\": \"function\",\n      \"[object Date]\": \"date\",\n      \"[object RegExp]\": \"regexp\",\n      \"[object Arguments]\": \"arguments\",\n      \"[object Array]\": \"array\",\n      \"[object Set]\": \"set\",\n      \"[object String]\": \"string\",\n      \"[object Null]\": \"null\",\n      \"[object Undefined]\": \"undefined\",\n      \"[object Number]\": \"number\",\n      \"[object Boolean]\": \"boolean\",\n      \"[object Object]\": \"object\",\n      \"[object Map]\": \"map\",\n      \"[object Text]\": \"text-node\",\n      \"[object Uint8Array]\": \"bit-array\",\n      \"[object Uint16Array]\": \"bit-array\",\n      \"[object Uint32Array]\": \"bit-array\",\n      \"[object Uint8ClampedArray]\": \"bit-array\",\n      \"[object Error]\": \"error\",\n      \"[object FormData]\": \"form-data\",\n      \"[object File]\": \"file\",\n      \"[object Blob]\": \"blob\"\n    };\n  }),\n  jkrosoType_1 = jkrosoType.types,\n  types = {};\ntypes.number = function (e, t) {\n  return e !== e && t !== t;\n}, types.function = function (e, t, r) {\n  return e.toString() === t.toString() && types.object(e, t, r) && equal(e.prototype, t.prototype);\n}, types.date = function (e, t) {\n  return +e == +t;\n}, types.regexp = function (e, t) {\n  return e.toString() === t.toString();\n}, types.element = function (e, t) {\n  return e.outerHTML === t.outerHTML;\n}, types.textnode = function (e, t) {\n  return e.textContent === t.textContent;\n}, types.arguments = types[\"bit-array\"] = types.array = memoGaurd(arrayEqual), types.object = memoGaurd(objectEqual);\nvar equals = equal,\n  isMergeableObject = function isMergeableObject(e) {\n    return isNonNullObject(e) && !isSpecial(e);\n  },\n  canUseSymbol = \"function\" == typeof Symbol && Symbol.for,\n  REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for(\"react.element\") : 60103;\ndeepmerge.all = function (e, t) {\n  if (!Array.isArray(e)) throw new Error(\"first argument should be an array\");\n  return e.reduce(function (e, r) {\n    return deepmerge(e, r, t);\n  }, {});\n};\nvar deepmerge_1 = deepmerge,\n  Context = React.createContext(),\n  deepFreeze = function e(t) {\n    return Object.freeze(t), Object.getOwnPropertyNames(t).forEach(function (r) {\n      !t.hasOwnProperty(r) || null === t[r] || \"object\" != typeof t[r] && \"function\" != typeof t[r] || Object.isFrozen(t[r]) || e(t[r]);\n    }), t;\n  },\n  DEFAULT_STATE = {\n    masterSpinnerFinished: !1\n  },\n  Store = function () {\n    function e(t) {\n      _classCallCheck(this, e), this.state = deepFreeze(deepmerge_1(DEFAULT_STATE, t)), this.subscriptions = [], this.masterSpinnerSubscriptions = {}, this.setStoreState = this.setStoreState.bind(this), this.getStoreState = this.getStoreState.bind(this), this.subscribe = this.subscribe.bind(this), this.unsubscribe = this.unsubscribe.bind(this), this.updateSubscribers = this.updateSubscribers.bind(this), this.subscribeMasterSpinner = this.subscribeMasterSpinner.bind(this), this.unsubscribeMasterSpinner = this.unsubscribeMasterSpinner.bind(this), this.unsubscribeAllMasterSpinner = this.unsubscribeAllMasterSpinner.bind(this), this.masterSpinnerSuccess = this.masterSpinnerSuccess.bind(this), this.masterSpinnerError = this.masterSpinnerError.bind(this);\n    }\n    return _createClass(e, [{\n      key: \"setStoreState\",\n      value: function value(e, t) {\n        this.state = deepFreeze(deepmerge_1(this.state, e)), this.updateSubscribers(t);\n      }\n    }, {\n      key: \"getStoreState\",\n      value: function value() {\n        return deepmerge_1({}, this.state);\n      }\n    }, {\n      key: \"subscribe\",\n      value: function value(e) {\n        this.subscriptions.push(e);\n      }\n    }, {\n      key: \"unsubscribe\",\n      value: function value(e) {\n        var t = this.subscriptions.indexOf(e);\n        -1 !== t && this.subscriptions.splice(t, 1);\n      }\n    }, {\n      key: \"updateSubscribers\",\n      value: function value(e) {\n        this.subscriptions.forEach(function (e) {\n          return e();\n        }), \"function\" == typeof e && e(this.getStoreState());\n      }\n    }, {\n      key: \"subscribeMasterSpinner\",\n      value: function value(e) {\n        -1 === Object.keys(this.masterSpinnerSubscriptions).indexOf(e) && (this.masterSpinnerSubscriptions[e] = {\n          success: !1,\n          error: !1,\n          complete: !1\n        });\n      }\n    }, {\n      key: \"unsubscribeMasterSpinner\",\n      value: function value(e) {\n        return -1 !== Object.keys(this.masterSpinnerSubscriptions).indexOf(e) && (this.setMasterSpinnerFinished(), delete this.masterSpinnerSubscriptions[e]);\n      }\n    }, {\n      key: \"unsubscribeAllMasterSpinner\",\n      value: function value() {\n        this.masterSpinnerSubscriptions = {}, this.setMasterSpinnerFinished();\n      }\n    }, {\n      key: \"masterSpinnerSuccess\",\n      value: function value(e) {\n        this.masterSpinnerSubscriptions[e].success = !0, this.masterSpinnerSubscriptions[e].complete = !0, this.setMasterSpinnerFinished();\n      }\n    }, {\n      key: \"masterSpinnerError\",\n      value: function value(e) {\n        this.masterSpinnerSubscriptions[e].error = !0, this.masterSpinnerSubscriptions[e].complete = !0, this.setMasterSpinnerFinished();\n      }\n    }, {\n      key: \"setMasterSpinnerFinished\",\n      value: function value() {\n        this.setStoreState({\n          masterSpinnerFinished: this.isMasterSpinnerFinished()\n        });\n      }\n    }, {\n      key: \"isMasterSpinnerFinished\",\n      value: function value() {\n        var e = this;\n        return 0 === Object.keys(this.masterSpinnerSubscriptions).filter(function (t) {\n          return !0 !== e.masterSpinnerSubscriptions[t].complete;\n        }).length;\n      }\n    }]), e;\n  }(),\n  _excluded$1 = [\"children\", \"className\", \"currentSlide\", \"disableAnimation\", \"disableKeyboard\", \"hasMasterSpinner\", \"interval\", \"isPageScrollLocked\", \"isPlaying\", \"lockOnWindowScroll\", \"naturalSlideHeight\", \"naturalSlideWidth\", \"orientation\", \"playDirection\", \"step\", \"dragStep\", \"tag\", \"totalSlides\", \"touchEnabled\", \"dragEnabled\", \"visibleSlides\", \"infinite\", \"isIntrinsicHeight\"],\n  _class,\n  CarouselProvider = (_class = function (e) {\n    function t(e) {\n      var i;\n      if (_classCallCheck(this, t), i = r.call(this, e), e.isIntrinsicHeight && \"horizontal\" !== e.orientation) throw Error('isIntrinsicHeight can only be used in \"horizontal\" orientation. See Readme for more information.');\n      var n = {\n        currentSlide: e.currentSlide,\n        disableAnimation: e.disableAnimation,\n        disableKeyboard: e.disableKeyboard,\n        hasMasterSpinner: e.hasMasterSpinner,\n        imageErrorCount: 0,\n        imageSuccessCount: 0,\n        interval: e.interval,\n        isPageScrollLocked: e.isPageScrollLocked,\n        isPlaying: e.isPlaying,\n        lockOnWindowScroll: e.lockOnWindowScroll,\n        masterSpinnerThreshold: 0,\n        naturalSlideHeight: e.naturalSlideHeight,\n        naturalSlideWidth: e.naturalSlideWidth,\n        orientation: e.orientation,\n        playDirection: e.playDirection,\n        privateUnDisableAnimation: !1,\n        slideSize: slideSize(e.totalSlides, e.visibleSlides),\n        slideTraySize: slideTraySize(e.totalSlides, e.visibleSlides),\n        step: e.step,\n        dragStep: e.dragStep,\n        totalSlides: e.totalSlides,\n        touchEnabled: e.touchEnabled,\n        dragEnabled: e.dragEnabled,\n        visibleSlides: e.visibleSlides,\n        infinite: e.infinite,\n        isIntrinsicHeight: e.isIntrinsicHeight\n      };\n      return i.carouselStore = new Store(n), i;\n    }\n    _inherits(t, e);\n    var r = _createSuper(t);\n    return _createClass(t, [{\n      key: \"componentDidUpdate\",\n      value: function value(e) {\n        var t = this,\n          r = {};\n        [\"currentSlide\", \"disableAnimation\", \"disableKeyboard\", \"hasMasterSpinner\", \"interval\", \"isPlaying\", \"naturalSlideHeight\", \"naturalSlideWidth\", \"lockOnWindowScroll\", \"orientation\", \"playDirection\", \"step\", \"dragStep\", \"totalSlides\", \"touchEnabled\", \"dragEnabled\", \"visibleSlides\"].forEach(function (i) {\n          e[i] !== t.props[i] && (r[i] = t.props[i]);\n        }), this.props.currentSlide !== e.currentSlide && !this.props.disableAnimation && (r.disableAnimation = !0, r.privateUnDisableAnimation = !0), this.props.totalSlides === e.totalSlides && this.props.visibleSlides === e.visibleSlides || (r.slideSize = slideSize(this.props.totalSlides, this.props.visibleSlides), r.slideTraySize = slideTraySize(this.props.totalSlides, this.props.visibleSlides)), this.carouselStore.state.currentSlide >= this.props.totalSlides && (r.currentSlide = Math.max(this.props.totalSlides - 1, 0)), Object.keys(r).length > 0 && this.carouselStore.setStoreState(r);\n      }\n    }, {\n      key: \"componentWillUnmount\",\n      value: function value() {\n        this.carouselStore.unsubscribeAllMasterSpinner();\n      }\n    }, {\n      key: \"getStore\",\n      value: function value() {\n        return this.carouselStore;\n      }\n    }, {\n      key: \"render\",\n      value: function value() {\n        var e = this.props,\n          t = (e.children, e.className, e.currentSlide, e.disableAnimation, e.disableKeyboard, e.hasMasterSpinner, e.interval, e.isPageScrollLocked, e.isPlaying, e.lockOnWindowScroll, e.naturalSlideHeight, e.naturalSlideWidth, e.orientation, e.playDirection, e.step, e.dragStep, e.tag),\n          r = (e.totalSlides, e.touchEnabled, e.dragEnabled, e.visibleSlides, e.infinite, e.isIntrinsicHeight, _objectWithoutProperties(e, _excluded$1)),\n          i = cn([\"carousel\", this.props.className]);\n        return React.createElement(t, _extends({\n          className: i\n        }, r), React.createElement(Context.Provider, {\n          value: this.carouselStore\n        }, this.props.children));\n      }\n    }]), t;\n  }(React.Component), _defineProperty(_class, \"propTypes\", {\n    children: CarouselPropTypes.children.isRequired,\n    className: propTypes.string,\n    currentSlide: propTypes.number,\n    disableAnimation: propTypes.bool,\n    disableKeyboard: propTypes.bool,\n    hasMasterSpinner: propTypes.bool,\n    interval: propTypes.number,\n    isPageScrollLocked: propTypes.bool,\n    isPlaying: propTypes.bool,\n    lockOnWindowScroll: propTypes.bool,\n    naturalSlideHeight: propTypes.number.isRequired,\n    naturalSlideWidth: propTypes.number.isRequired,\n    orientation: CarouselPropTypes.orientation,\n    playDirection: CarouselPropTypes.direction,\n    step: propTypes.number,\n    dragStep: propTypes.number,\n    tag: propTypes.string,\n    totalSlides: propTypes.number.isRequired,\n    touchEnabled: propTypes.bool,\n    dragEnabled: propTypes.bool,\n    visibleSlides: propTypes.number,\n    infinite: propTypes.bool,\n    isIntrinsicHeight: propTypes.bool\n  }), _defineProperty(_class, \"defaultProps\", {\n    className: null,\n    currentSlide: 0,\n    disableAnimation: !1,\n    disableKeyboard: !1,\n    hasMasterSpinner: !1,\n    interval: 5e3,\n    isPageScrollLocked: !1,\n    isPlaying: !1,\n    lockOnWindowScroll: !1,\n    orientation: \"horizontal\",\n    playDirection: \"forward\",\n    step: 1,\n    dragStep: 1,\n    tag: \"div\",\n    touchEnabled: !0,\n    dragEnabled: !0,\n    visibleSlides: 1,\n    infinite: !1,\n    isIntrinsicHeight: !1\n  }), _class);\nContext.Consumer;\nvar index = WithStore(ButtonBack, function (e) {\n    return {\n      currentSlide: e.currentSlide,\n      step: e.step,\n      totalSlides: e.totalSlides,\n      visibleSlides: e.visibleSlides,\n      infinite: e.infinite\n    };\n  }),\n  s$1 = {\n    buttonFirst: \"buttonFirst___2rhFr\"\n  },\n  _excluded$2 = [\"carouselStore\", \"className\", \"currentSlide\", \"disabled\", \"onClick\", \"totalSlides\"],\n  _class$1,\n  ButtonFirst = (_class$1 = function (e) {\n    function t() {\n      var e;\n      return _classCallCheck(this, t), e = r.call(this), e.handleOnClick = e.handleOnClick.bind(_assertThisInitialized(e)), e;\n    }\n    _inherits(t, e);\n    var r = _createSuper(t);\n    return _createClass(t, [{\n      key: \"handleOnClick\",\n      value: function value(e) {\n        var t = this.props,\n          r = t.carouselStore,\n          i = t.onClick;\n        r.setStoreState({\n          currentSlide: 0,\n          isPlaying: !1\n        }, null !== i && i.call(this, e));\n      }\n    }, {\n      key: \"render\",\n      value: function value() {\n        var e = this.props,\n          t = (e.carouselStore, e.className),\n          r = e.currentSlide,\n          i = e.disabled,\n          n = (e.onClick, e.totalSlides, _objectWithoutProperties(e, _excluded$2)),\n          s = cn([s$1.buttonFirst, \"carousel__first-button\", t]),\n          o = null !== i ? i : 0 === r;\n        return React.createElement(\"button\", _extends({\n          type: \"button\",\n          \"aria-label\": \"first\",\n          className: s,\n          onClick: this.handleOnClick,\n          disabled: o\n        }, n), this.props.children);\n      }\n    }]), t;\n  }(React.Component), _defineProperty(_class$1, \"propTypes\", {\n    carouselStore: propTypes.object.isRequired,\n    children: CarouselPropTypes.children.isRequired,\n    className: propTypes.string,\n    currentSlide: propTypes.number.isRequired,\n    disabled: propTypes.bool,\n    onClick: propTypes.func,\n    totalSlides: propTypes.number.isRequired\n  }), _defineProperty(_class$1, \"defaultProps\", {\n    className: null,\n    disabled: null,\n    onClick: null\n  }), _class$1),\n  index$1 = WithStore(ButtonFirst, function (e) {\n    return {\n      currentSlide: e.currentSlide,\n      totalSlides: e.totalSlides\n    };\n  }),\n  s$2 = {\n    buttonNext: \"buttonNext___2mOCa\"\n  },\n  _excluded$3 = [\"carouselStore\", \"className\", \"currentSlide\", \"disabled\", \"onClick\", \"step\", \"totalSlides\", \"visibleSlides\", \"infinite\"],\n  _class$2,\n  ButtonNext = (_class$2 = function (e) {\n    function t(e) {\n      var i;\n      return _classCallCheck(this, t), i = r.call(this, e), i.handleOnClick = i.handleOnClick.bind(_assertThisInitialized(i)), i;\n    }\n    _inherits(t, e);\n    var r = _createSuper(t);\n    return _createClass(t, [{\n      key: \"handleOnClick\",\n      value: function value(e) {\n        var t = this.props,\n          r = t.currentSlide,\n          i = t.onClick,\n          n = t.step,\n          s = t.carouselStore,\n          o = t.infinite,\n          a = t.totalSlides - t.visibleSlides,\n          l = n + r,\n          c = Math.min(l, a);\n        o && (c = a === r ? 0 : c), s.setStoreState({\n          currentSlide: c,\n          isPlaying: !1\n        }, null !== i && i.call(this, e));\n      }\n    }, {\n      key: \"render\",\n      value: function value() {\n        var e = this.props,\n          r = (e.carouselStore, e.className),\n          i = e.currentSlide,\n          n = e.disabled,\n          s = (e.onClick, e.step, e.totalSlides),\n          o = e.visibleSlides,\n          a = e.infinite,\n          l = _objectWithoutProperties(e, _excluded$3),\n          c = cn([s$2.buttonNext, \"carousel__next-button\", r]),\n          u = t.setDisabled(n, i, o, s, a);\n        return React.createElement(\"button\", _extends({\n          type: \"button\",\n          \"aria-label\": \"next\",\n          className: c,\n          onClick: this.handleOnClick,\n          disabled: u\n        }, l), this.props.children);\n      }\n    }], [{\n      key: \"setDisabled\",\n      value: function value(e, t, r, i, n) {\n        return null !== e ? e : t >= i - r && !n;\n      }\n    }]), t;\n  }(React.PureComponent), _defineProperty(_class$2, \"propTypes\", {\n    carouselStore: propTypes.object.isRequired,\n    children: CarouselPropTypes.children.isRequired,\n    className: propTypes.string,\n    currentSlide: propTypes.number.isRequired,\n    disabled: propTypes.bool,\n    onClick: propTypes.func,\n    step: propTypes.number.isRequired,\n    totalSlides: propTypes.number.isRequired,\n    visibleSlides: propTypes.number.isRequired,\n    infinite: propTypes.bool\n  }), _defineProperty(_class$2, \"defaultProps\", {\n    className: null,\n    disabled: null,\n    onClick: null,\n    infinite: !1\n  }), _class$2),\n  index$2 = WithStore(ButtonNext, function (e) {\n    return {\n      currentSlide: e.currentSlide,\n      step: e.step,\n      totalSlides: e.totalSlides,\n      visibleSlides: e.visibleSlides,\n      infinite: e.infinite\n    };\n  }),\n  s$3 = {\n    buttonLast: \"buttonLast___2yuh0\"\n  },\n  _excluded$4 = [\"carouselStore\", \"className\", \"currentSlide\", \"disabled\", \"onClick\", \"totalSlides\", \"visibleSlides\"],\n  _class$3,\n  ButtonLast = (_class$3 = function (e) {\n    function t() {\n      var e;\n      return _classCallCheck(this, t), e = r.call(this), e.handleOnClick = e.handleOnClick.bind(_assertThisInitialized(e)), e;\n    }\n    _inherits(t, e);\n    var r = _createSuper(t);\n    return _createClass(t, [{\n      key: \"handleOnClick\",\n      value: function value(e) {\n        var t = this.props,\n          r = t.carouselStore,\n          i = t.onClick,\n          n = t.totalSlides,\n          s = t.visibleSlides;\n        r.setStoreState({\n          currentSlide: n - s,\n          isPlaying: !1\n        }, null !== i && i.call(this, e));\n      }\n    }, {\n      key: \"render\",\n      value: function value() {\n        var e = this.props,\n          t = (e.carouselStore, e.className),\n          r = e.currentSlide,\n          i = e.disabled,\n          n = (e.onClick, e.totalSlides),\n          s = e.visibleSlides,\n          o = _objectWithoutProperties(e, _excluded$4),\n          a = cn([s$3.buttonLast, \"carousel__last-button\", t]),\n          l = null !== i ? i : r >= n - s;\n        return React.createElement(\"button\", _extends({\n          type: \"button\",\n          \"aria-label\": \"last\",\n          className: a,\n          onClick: this.handleOnClick,\n          disabled: l\n        }, o), this.props.children);\n      }\n    }]), t;\n  }(React.Component), _defineProperty(_class$3, \"propTypes\", {\n    carouselStore: propTypes.object.isRequired,\n    children: CarouselPropTypes.children.isRequired,\n    className: propTypes.string,\n    currentSlide: propTypes.number.isRequired,\n    disabled: propTypes.bool,\n    onClick: propTypes.func,\n    totalSlides: propTypes.number.isRequired,\n    visibleSlides: propTypes.number.isRequired\n  }), _defineProperty(_class$3, \"defaultProps\", {\n    className: null,\n    disabled: null,\n    onClick: null\n  }), _class$3),\n  index$3 = WithStore(ButtonLast, function (e) {\n    return {\n      currentSlide: e.currentSlide,\n      totalSlides: e.totalSlides,\n      visibleSlides: e.visibleSlides\n    };\n  }),\n  s$4 = {\n    buttonNext: \"buttonNext___3Lm3s\"\n  },\n  _excluded$5 = [\"carouselStore\", \"children\", \"childrenPaused\", \"childrenPlaying\", \"className\", \"isPlaying\", \"onClick\"],\n  _class$4,\n  ButtonPlay = (_class$4 = function (e) {\n    function t(e) {\n      var i;\n      return _classCallCheck(this, t), i = r.call(this, e), i.handleOnClick = i.handleOnClick.bind(_assertThisInitialized(i)), i;\n    }\n    _inherits(t, e);\n    var r = _createSuper(t);\n    return _createClass(t, [{\n      key: \"handleOnClick\",\n      value: function value(e) {\n        var t = this.props.onClick;\n        this.props.carouselStore.setStoreState({\n          isPlaying: !this.props.isPlaying\n        }, null !== t && t.call(this, e));\n      }\n    }, {\n      key: \"render\",\n      value: function value() {\n        var e = this.props,\n          t = (e.carouselStore, e.children, e.childrenPaused),\n          r = e.childrenPlaying,\n          i = e.className,\n          n = e.isPlaying,\n          s = (e.onClick, _objectWithoutProperties(e, _excluded$5)),\n          o = cn([s$4.buttonNext, \"carousel__play-button\", i]);\n        return React.createElement(\"button\", _extends({\n          type: \"button\",\n          \"aria-label\": \"play\",\n          className: o,\n          onClick: this.handleOnClick\n        }, s), n && r, !n && t, this.props.children);\n      }\n    }]), t;\n  }(React.PureComponent), _defineProperty(_class$4, \"propTypes\", {\n    carouselStore: propTypes.object.isRequired,\n    children: propTypes.node,\n    childrenPaused: propTypes.node,\n    childrenPlaying: propTypes.node,\n    className: propTypes.string,\n    isPlaying: propTypes.bool.isRequired,\n    onClick: propTypes.func\n  }), _defineProperty(_class$4, \"defaultProps\", {\n    children: null,\n    childrenPaused: null,\n    childrenPlaying: null,\n    className: null,\n    onClick: null\n  }), _class$4),\n  index$4 = WithStore(ButtonPlay, function (e) {\n    return {\n      isPlaying: e.isPlaying\n    };\n  }),\n  s$5 = {\n    dot: \"dot___3c3SI\"\n  },\n  _excluded$6 = [\"carouselStore\", \"children\", \"className\", \"currentSlide\", \"disabled\", \"onClick\", \"selected\", \"slide\", \"totalSlides\", \"visibleSlides\"],\n  _class$5,\n  Dot = (_class$5 = function (e) {\n    function t(e) {\n      var i;\n      return _classCallCheck(this, t), i = r.call(this, e), i.handleOnClick = i.handleOnClick.bind(_assertThisInitialized(i)), i;\n    }\n    _inherits(t, e);\n    var r = _createSuper(t);\n    return _createClass(t, [{\n      key: \"handleOnClick\",\n      value: function value(e) {\n        var t = this.props,\n          r = t.carouselStore,\n          i = t.onClick,\n          n = t.slide,\n          s = t.totalSlides,\n          o = t.visibleSlides,\n          a = n >= s - o ? s - o : n;\n        r.setStoreState({\n          currentSlide: a,\n          isPlaying: !1\n        }, null !== i && i.call(this, e));\n      }\n    }, {\n      key: \"render\",\n      value: function value() {\n        var e = this.props,\n          t = (e.carouselStore, e.children, e.className),\n          r = e.currentSlide,\n          i = e.disabled,\n          n = (e.onClick, e.selected),\n          s = e.slide,\n          o = (e.totalSlides, e.visibleSlides),\n          a = _objectWithoutProperties(e, _excluded$6),\n          l = s >= r && s < r + o,\n          c = \"boolean\" == typeof n ? n : l,\n          u = !0 === l,\n          p = \"boolean\" == typeof i ? i : u,\n          d = cn([s$5.dot, c && s$5.dotSelected, \"carousel__dot\", \"carousel__dot--\".concat(s), c && \"carousel__dot--selected\", t]);\n        return React.createElement(\"button\", _extends({\n          \"aria-label\": \"slide dot\",\n          type: \"button\",\n          onClick: this.handleOnClick,\n          className: d,\n          disabled: p\n        }, a), this.props.children);\n      }\n    }]), t;\n  }(React.Component), _defineProperty(_class$5, \"propTypes\", {\n    carouselStore: propTypes.object.isRequired,\n    children: CarouselPropTypes.children,\n    className: propTypes.string,\n    currentSlide: propTypes.number.isRequired,\n    disabled: propTypes.bool,\n    onClick: propTypes.func,\n    selected: propTypes.bool,\n    slide: propTypes.number.isRequired,\n    totalSlides: propTypes.number.isRequired,\n    visibleSlides: propTypes.number.isRequired\n  }), _defineProperty(_class$5, \"defaultProps\", {\n    children: null,\n    className: null,\n    disabled: null,\n    onClick: null,\n    selected: null\n  }), _class$5),\n  Dot$1 = WithStore(Dot, function (e) {\n    return {\n      currentSlide: e.currentSlide,\n      totalSlides: e.totalSlides,\n      visibleSlides: e.visibleSlides\n    };\n  }),\n  s$6 = {},\n  _excluded$7 = [\"renderDots\"],\n  _excluded2 = [\"carouselStore\", \"children\", \"className\", \"currentSlide\", \"dotNumbers\", \"totalSlides\", \"visibleSlides\", \"disableActiveDots\", \"showAsSelectedForCurrentSlideOnly\", \"renderDots\"],\n  _class$6,\n  DotGroup = (_class$6 = function (e) {\n    function t() {\n      return _classCallCheck(this, t), r.apply(this, arguments);\n    }\n    _inherits(t, e);\n    var r = _createSuper(t);\n    return _createClass(t, [{\n      key: \"renderDots\",\n      value: function value() {\n        var e = this.props,\n          t = e.currentSlide,\n          r = e.totalSlides,\n          i = e.visibleSlides,\n          n = e.disableActiveDots,\n          s = e.showAsSelectedForCurrentSlideOnly,\n          o = e.renderDots;\n        if (o) {\n          var a = this.props;\n          a.renderDots;\n          return o(_objectWithoutProperties(a, _excluded$7));\n        }\n        for (var l = [], c = 0; c < r; c += 1) {\n          var u = c >= t && c < t + i,\n            p = c === t,\n            d = s ? p : u,\n            h = c >= r - i ? r - i : c;\n          l.push(React.createElement(Dot$1, {\n            key: c,\n            slide: h,\n            selected: d,\n            disabled: !!n && d\n          }, React.createElement(\"span\", {\n            className: cn[\"carousel__dot-group-dot\"]\n          }, this.props.dotNumbers && c + 1)));\n        }\n        return l;\n      }\n    }, {\n      key: \"render\",\n      value: function value() {\n        var e = this.props,\n          t = (e.carouselStore, e.children),\n          r = e.className,\n          i = (e.currentSlide, e.dotNumbers, e.totalSlides, e.visibleSlides, e.disableActiveDots, e.showAsSelectedForCurrentSlideOnly, e.renderDots, _objectWithoutProperties(e, _excluded2)),\n          n = cn([s$6.DotGroup, \"carousel__dot-group\", r]);\n        return React.createElement(\"div\", _extends({\n          className: n\n        }, i), this.renderDots(), t);\n      }\n    }]), t;\n  }(React.Component), _defineProperty(_class$6, \"propTypes\", {\n    children: CarouselPropTypes.children,\n    className: propTypes.string,\n    currentSlide: propTypes.number.isRequired,\n    carouselStore: propTypes.object.isRequired,\n    totalSlides: propTypes.number.isRequired,\n    visibleSlides: propTypes.number.isRequired,\n    dotNumbers: propTypes.bool,\n    disableActiveDots: propTypes.bool,\n    showAsSelectedForCurrentSlideOnly: propTypes.bool,\n    renderDots: propTypes.func\n  }), _defineProperty(_class$6, \"defaultProps\", {\n    children: null,\n    className: null,\n    dotNumbers: !1,\n    disableActiveDots: !0,\n    showAsSelectedForCurrentSlideOnly: !1,\n    renderDots: null\n  }), _class$6),\n  index$5 = WithStore(DotGroup, function (e) {\n    return {\n      currentSlide: e.currentSlide,\n      totalSlides: e.totalSlides,\n      visibleSlides: e.visibleSlides\n    };\n  }),\n  s$7 = {\n    image: \"image___xtQGH\"\n  },\n  _excluded$8 = [\"src\", \"alt\"],\n  _excluded2$1 = [\"carouselStore\", \"children\", \"className\", \"hasMasterSpinner\", \"isBgImage\", \"onError\", \"onLoad\", \"renderError\", \"renderLoading\", \"style\", \"tag\"],\n  Image = function (e) {\n    function t(e) {\n      var i;\n      return _classCallCheck(this, t), i = r.call(this, e), i.state = {\n        imageStatus: LOADING\n      }, i.handleImageLoad = i.handleImageLoad.bind(_assertThisInitialized(i)), i.handleImageError = i.handleImageError.bind(_assertThisInitialized(i)), i.image = null, i;\n    }\n    _inherits(t, e);\n    var r = _createSuper(t);\n    return _createClass(t, [{\n      key: \"componentDidMount\",\n      value: function value() {\n        t.subscribeMasterSpinner(this.props), this.initImage();\n      }\n    }, {\n      key: \"componentDidUpdate\",\n      value: function value(e) {\n        e.src !== this.props.src && (t.unsubscribeMasterSpinner(e), t.subscribeMasterSpinner(this.props), this.initImage());\n      }\n    }, {\n      key: \"componentWillUnmount\",\n      value: function value() {\n        t.unsubscribeMasterSpinner(this.props), this.image.removeEventListener(\"load\", this.handleImageLoad), this.image.removeEventListener(\"error\", this.handleImageError), this.image = null;\n      }\n    }, {\n      key: \"initImage\",\n      value: function value() {\n        if (this.setState({\n          imageStatus: LOADING\n        }), this.image = document.createElement(\"img\"), this.image.addEventListener(\"load\", this.handleImageLoad, !1), this.image.addEventListener(\"error\", this.handleImageError, !1), this.image.src = this.props.src, this.image.readyState || this.image.complete) {\n          var e = this.image.src;\n          this.image.src = \"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==\", this.image.src = e;\n        }\n      }\n    }, {\n      key: \"handleImageLoad\",\n      value: function value(e) {\n        this.setState({\n          imageStatus: SUCCESS\n        }), this.props.hasMasterSpinner && this.props.carouselStore.masterSpinnerSuccess(this.props.src), this.props.onLoad && this.props.onLoad(e);\n      }\n    }, {\n      key: \"handleImageError\",\n      value: function value(e) {\n        this.setState({\n          imageStatus: ERROR\n        }), this.props.hasMasterSpinner && this.props.carouselStore.masterSpinnerError(this.props.src), this.props.onError && this.props.onError(e);\n      }\n    }, {\n      key: \"tempTag\",\n      value: function value() {\n        return \"img\" === this.props.tag ? \"div\" : this.props.tag;\n      }\n    }, {\n      key: \"customRender\",\n      value: function value(e) {\n        return \"function\" == typeof this.props[e] ? this.props[e]() : this.props.children;\n      }\n    }, {\n      key: \"renderLoading\",\n      value: function value(e) {\n        var t = this.tempTag(),\n          r = cn([s$7.image, s$7.imageLoading, \"carousel__image\", this.props.isBgImage && \"carousel__image--with-background\", \"carousel__image--loading\", this.props.className]);\n        return React.createElement(t, _extends({\n          className: r\n        }, e), this.customRender(\"renderLoading\"));\n      }\n    }, {\n      key: \"renderError\",\n      value: function value(e) {\n        var t = this.tempTag(),\n          r = cn([s$7.image, s$7.imageError, \"carousel__image\", this.props.isBgImage && \"carousel__image--with-background\", \"carousel__image--error\", this.props.className]);\n        return React.createElement(t, _extends({\n          className: r\n        }, e), this.customRender(\"renderError\"));\n      }\n    }, {\n      key: \"renderSuccess\",\n      value: function value(e) {\n        var t = this.props,\n          r = t.style,\n          i = t.tag,\n          n = cn([s$7.image, \"carousel__image\", this.props.isBgImage && \"carousel__image--with-background\", \"carousel__image--success\", this.props.className]),\n          s = _extends({}, r),\n          o = e;\n        if (\"img\" !== i) {\n          var a = e.src;\n          e.alt;\n          o = _objectWithoutProperties(e, _excluded$8), s = _extends({}, r, {\n            backgroundImage: 'url(\"'.concat(a, '\")'),\n            backgroundSize: \"cover\"\n          });\n        }\n        return React.createElement(i, _extends({\n          className: n,\n          style: s\n        }, o), this.props.children);\n      }\n    }, {\n      key: \"render\",\n      value: function value() {\n        var e = this.props,\n          t = (e.carouselStore, e.children, e.className, e.hasMasterSpinner, e.isBgImage, e.onError, e.onLoad, e.renderError, e.renderLoading, e.style, e.tag, _objectWithoutProperties(e, _excluded2$1));\n        switch (this.state.imageStatus) {\n          case LOADING:\n            return this.renderLoading(t);\n          case SUCCESS:\n            return this.renderSuccess(t);\n          case ERROR:\n            return this.renderError(t);\n          default:\n            throw new Error(\"unknown value for this.state.imageStatus\");\n        }\n      }\n    }], [{\n      key: \"subscribeMasterSpinner\",\n      value: function value(e) {\n        e.hasMasterSpinner && e.carouselStore.subscribeMasterSpinner(e.src);\n      }\n    }, {\n      key: \"unsubscribeMasterSpinner\",\n      value: function value(e) {\n        e.hasMasterSpinner && e.carouselStore.unsubscribeMasterSpinner(e.src);\n      }\n    }]), t;\n  }(React.Component);\n_defineProperty(Image, \"propTypes\", {\n  alt: propTypes.string,\n  carouselStore: propTypes.object.isRequired,\n  children: CarouselPropTypes.children,\n  className: propTypes.string,\n  hasMasterSpinner: propTypes.bool.isRequired,\n  isBgImage: CarouselPropTypes.isBgImage,\n  onError: propTypes.func,\n  onLoad: propTypes.func,\n  renderError: propTypes.func,\n  renderLoading: propTypes.func,\n  src: propTypes.string.isRequired,\n  style: propTypes.object,\n  tag: propTypes.string\n}), _defineProperty(Image, \"defaultProps\", {\n  alt: \"\",\n  children: null,\n  className: null,\n  isBgImage: !1,\n  onError: null,\n  onLoad: null,\n  renderError: null,\n  renderLoading: null,\n  style: null,\n  tag: \"img\"\n});\nvar Image$1 = WithStore(Image, function (e) {\n    return {\n      hasMasterSpinner: e.hasMasterSpinner,\n      orientation: e.orientation\n    };\n  }),\n  s$8 = {\n    spinner: \"spinner___27VUp\",\n    spin: \"spin___S3UuE\"\n  },\n  _excluded$9 = [\"className\"],\n  _class$7,\n  Spinner = (_class$7 = function (e) {\n    function t() {\n      return _classCallCheck(this, t), r.apply(this, arguments);\n    }\n    _inherits(t, e);\n    var r = _createSuper(t);\n    return _createClass(t, [{\n      key: \"render\",\n      value: function value() {\n        var e = this.props,\n          t = e.className,\n          r = _objectWithoutProperties(e, _excluded$9),\n          i = cn([s$8.spinner, \"carousel__spinner\", t]);\n        return React.createElement(\"div\", _extends({\n          className: i\n        }, r));\n      }\n    }]), t;\n  }(React.PureComponent), _defineProperty(_class$7, \"propTypes\", {\n    className: propTypes.string\n  }), _defineProperty(_class$7, \"defaultProps\", {\n    className: null\n  }), _class$7),\n  s$9 = {\n    container: \"container___2O72F\",\n    overlay: \"overlay___IV4qY\",\n    hover: \"hover___MYy31\",\n    zoom: \"zoom___3kqYk\",\n    loading: \"loading___1pvNI\",\n    imageLoadingSpinnerContainer: \"imageLoadingSpinnerContainer___3UIPD\"\n  },\n  _excluded$a = [\"alt\", \"bgImageProps\", \"bgImageTag\", \"carouselStore\", \"className\", \"imageClassName\", \"overlayClassName\", \"isPinchZoomEnabled\", \"spinner\", \"src\", \"srcZoomed\", \"tag\"],\n  _class$8,\n  MOUSE_SCALE = 2,\n  MAX_TOUCH_SCALE = 3,\n  ImageWithZoom = (_class$8 = function (e) {\n    function t(e) {\n      var i;\n      return _classCallCheck(this, t), i = r.call(this, e), i.state = {\n        isImageLoading: !0,\n        isHovering: !1,\n        isZooming: !1,\n        x: null,\n        y: null,\n        scale: 1\n      }, i.tpCache = {}, i.handleImageComplete = i.handleImageComplete.bind(_assertThisInitialized(i)), i.handleOnMouseMove = i.handleOnMouseMove.bind(_assertThisInitialized(i)), i.handleOnMouseOut = i.handleOnMouseOut.bind(_assertThisInitialized(i)), i.handleOnMouseOver = i.handleOnMouseOver.bind(_assertThisInitialized(i)), i.handleOnTouchEnd = i.handleOnTouchEnd.bind(_assertThisInitialized(i)), i.handleOnTouchMove = i.handleOnTouchMove.bind(_assertThisInitialized(i)), i.handleOnTouchStart = i.handleOnTouchStart.bind(_assertThisInitialized(i)), i;\n    }\n    _inherits(t, e);\n    var r = _createSuper(t);\n    return _createClass(t, [{\n      key: \"componentDidUpdate\",\n      value: function value(e, t) {\n        !1 === t.isZooming && !0 === this.state.isZooming && this.props.carouselStore.setStoreState({\n          isPageScrollLocked: !0\n        }), !0 === t.isZooming && !1 === this.state.isZooming && this.props.carouselStore.setStoreState({\n          isPageScrollLocked: !1\n        });\n      }\n    }, {\n      key: \"handleImageComplete\",\n      value: function value() {\n        this.setState({\n          isImageLoading: !1\n        });\n      }\n    }, {\n      key: \"handleOnMouseOver\",\n      value: function value() {\n        this.state.isZooming || this.setState({\n          isHovering: !0,\n          scale: MOUSE_SCALE\n        });\n      }\n    }, {\n      key: \"handleOnMouseOut\",\n      value: function value() {\n        this.state.isZooming || this.setState({\n          isHovering: !1,\n          scale: 1\n        });\n      }\n    }, {\n      key: \"handleOnMouseMove\",\n      value: function value(e) {\n        if (!this.state.isZooming) {\n          var t = pct(e.nativeEvent.offsetX / e.target.offsetWidth * 100),\n            r = pct(e.nativeEvent.offsetY / e.target.offsetHeight * 100);\n          this.setState({\n            x: t,\n            y: r\n          });\n        }\n      }\n    }, {\n      key: \"handleOnTouchStart\",\n      value: function value(e) {\n        var t = this;\n        this.props.isPinchZoomEnabled && (_toConsumableArray(e.targetTouches).forEach(function (e) {\n          t.tpCache[e.identifier] = {\n            clientX: e.clientX,\n            clientY: e.clientY\n          };\n        }), this.setState(function (e) {\n          return {\n            isZooming: e.isZooming || Object.keys(t.tpCache).length > 1\n          };\n        }));\n      }\n    }, {\n      key: \"handleOnTouchMove\",\n      value: function value(e) {\n        var r = this;\n        if (this.state.isZooming) {\n          e.persist();\n          var i = _toConsumableArray(e.targetTouches).filter(function (e) {\n            return r.tpCache[e.identifier];\n          }).slice(0, 2);\n          if (2 === i.length) {\n            e.stopPropagation();\n            var n = e.target.getBoundingClientRect(),\n              s = i[0].identifier,\n              o = i[1].identifier,\n              a = {\n                x1: this.tpCache[s].clientX,\n                y1: this.tpCache[s].clientY,\n                x2: this.tpCache[o].clientX,\n                y2: this.tpCache[o].clientY\n              };\n            a.distance = t.distanceBetweenTwoTouches(_objectSpread2({}, a));\n            var l = t.midpointBetweenTwoTouches(_objectSpread2({}, a));\n            a.cx = l.x, a.cy = l.y;\n            var c = {\n              x1: i[0].clientX,\n              y1: i[0].clientY,\n              x2: i[1].clientX,\n              y2: i[1].clientY\n            };\n            c.distance = t.distanceBetweenTwoTouches(_objectSpread2({}, c));\n            var u = t.midpointBetweenTwoTouches(_objectSpread2({}, c));\n            c.cx = u.x, c.cy = u.y;\n            var p = pct(boundedRange({\n                min: 0,\n                max: 100,\n                x: (c.cx - n.left) / n.width * 100\n              })),\n              d = pct(boundedRange({\n                min: 0,\n                max: 100,\n                x: (c.cy - n.top) / n.height * 100\n              })),\n              h = function h(e) {\n                return boundedRange({\n                  min: 1,\n                  max: MAX_TOUCH_SCALE,\n                  x: e.scale + (c.distance - a.distance) / 100\n                });\n              };\n            this.setState(function (e) {\n              return {\n                isZooming: 1 !== h(e),\n                scale: h(e),\n                x: p,\n                y: d\n              };\n            });\n          }\n        }\n      }\n    }, {\n      key: \"handleOnTouchEnd\",\n      value: function value(e) {\n        var t = this;\n        this.props.isPinchZoomEnabled && (_toConsumableArray(e.changedTouches).forEach(function (e) {\n          delete t.tpCache[e.identifier];\n        }), 0 === Object.keys(this.tpCache).length && this.setState({\n          isZooming: !1\n        }));\n      }\n    }, {\n      key: \"renderLoading\",\n      value: function value() {\n        if (this.state.isImageLoading) {\n          var e = this.props.spinner;\n          return React.createElement(\"div\", {\n            className: cn([s$9.imageLoadingSpinnerContainer, \"carousel__image-loading-spinner-container\"])\n          }, e && e(), !e && React.createElement(Spinner, null));\n        }\n        return null;\n      }\n    }, {\n      key: \"render\",\n      value: function value() {\n        var e = this.props,\n          t = e.alt,\n          r = e.bgImageProps,\n          i = e.bgImageTag,\n          n = (e.carouselStore, e.className),\n          s = e.imageClassName,\n          o = e.overlayClassName,\n          a = (e.isPinchZoomEnabled, e.spinner, e.src),\n          l = e.srcZoomed,\n          c = e.tag,\n          u = _objectWithoutProperties(e, _excluded$a),\n          p = cn([s$9.container, n]),\n          d = cn([s$9.image, \"carousel__zoom-image\", s]),\n          h = cn([s$9.overlay, \"carousel__zoom-image-overlay\", this.state.isHovering && s$9.hover, this.state.isZooming && s$9.zoom, this.state.isHovering && \"carousel__zoom-image-overlay--hovering\", this.state.isZooming && \"carousel__zoom-image-overlay--zooming\", o]),\n          S = {};\n        return (this.state.isHovering || this.state.isZooming) && (S.transformOrigin = \"\".concat(this.state.x, \" \").concat(this.state.y), S.transform = \"scale(\".concat(this.state.scale, \")\")), React.createElement(c, _extends({\n          className: p\n        }, u), React.createElement(Image$1, _extends({\n          alt: t,\n          className: d,\n          tag: i,\n          src: a,\n          onLoad: this.handleImageComplete,\n          onError: this.handleImageComplete\n        }, r)), React.createElement(Image$1, {\n          className: h,\n          tag: \"div\",\n          src: l || a,\n          style: S,\n          isBgImage: !0,\n          onFocus: this.handleOnMouseOver,\n          onMouseOver: this.handleOnMouseOver,\n          onBlur: this.handleOnMouseOut,\n          onMouseOut: this.handleOnMouseOut,\n          onMouseMove: this.handleOnMouseMove,\n          onTouchStart: this.handleOnTouchStart,\n          onTouchEnd: this.handleOnTouchEnd,\n          onTouchMove: this.handleOnTouchMove\n        }), this.renderLoading());\n      }\n    }], [{\n      key: \"midpointBetweenTwoTouches\",\n      value: function value(e) {\n        var t = e.x1,\n          r = e.y1;\n        return {\n          x: (t + e.x2) / 2,\n          y: (r + e.y2) / 2\n        };\n      }\n    }, {\n      key: \"distanceBetweenTwoTouches\",\n      value: function value(e) {\n        var t = e.x1,\n          r = e.y1,\n          i = e.x2,\n          n = e.y2;\n        return Math.sqrt(Math.pow(i - t, 2) + Math.pow(n - r, 2));\n      }\n    }]), t;\n  }(React.Component), _defineProperty(_class$8, \"propTypes\", {\n    alt: propTypes.string,\n    bgImageProps: propTypes.object,\n    bgImageTag: propTypes.string,\n    carouselStore: propTypes.object.isRequired,\n    className: propTypes.string,\n    imageClassName: propTypes.string,\n    overlayClassName: propTypes.string,\n    spinner: propTypes.func,\n    src: propTypes.string.isRequired,\n    srcZoomed: propTypes.string,\n    tag: propTypes.string,\n    isPinchZoomEnabled: propTypes.bool\n  }), _defineProperty(_class$8, \"defaultProps\", {\n    alt: void 0,\n    bgImageProps: {},\n    bgImageTag: \"div\",\n    className: null,\n    imageClassName: null,\n    overlayClassName: null,\n    isPinchZoomEnabled: !0,\n    spinner: null,\n    srcZoomed: null,\n    tag: \"div\"\n  }), _class$8),\n  index$6 = WithStore(ImageWithZoom, function () {\n    return {};\n  }),\n  s$a = {\n    slide: \"slide___3-Nqo\",\n    slideHorizontal: \"slideHorizontal___1NzNV\",\n    slideInner: \"slideInner___2mfX9\",\n    focusRing: \"focusRing___1airF\"\n  },\n  _excluded$b = [\"ariaLabel\", \"carouselStore\", \"children\", \"className\", \"classNameHidden\", \"classNameVisible\", \"currentSlide\", \"index\", \"innerClassName\", \"innerTag\", \"naturalSlideHeight\", \"naturalSlideWidth\", \"onBlur\", \"onFocus\", \"orientation\", \"slideSize\", \"style\", \"tabIndex\", \"tag\", \"totalSlides\", \"visibleSlides\", \"isIntrinsicHeight\"],\n  _class$9,\n  Slide = (_class$9 = function (e) {\n    function t(e) {\n      var i;\n      return _classCallCheck(this, t), i = r.call(this, e), i.handleOnFocus = i.handleOnFocus.bind(_assertThisInitialized(i)), i.handleOnBlur = i.handleOnBlur.bind(_assertThisInitialized(i)), i.state = {\n        focused: !1\n      }, i;\n    }\n    _inherits(t, e);\n    var r = _createSuper(t);\n    return _createClass(t, [{\n      key: \"isVisible\",\n      value: function value() {\n        var e = this.props,\n          t = e.currentSlide,\n          r = e.index,\n          i = e.visibleSlides;\n        return r >= t && r < t + i;\n      }\n    }, {\n      key: \"handleOnFocus\",\n      value: function value(e) {\n        var t = this,\n          r = this.props.onFocus;\n        this.setState({\n          focused: !0\n        }, function () {\n          null !== r && r.call(t, e);\n        });\n      }\n    }, {\n      key: \"handleOnBlur\",\n      value: function value(e) {\n        var t = this,\n          r = this.props.onBlur;\n        this.setState({\n          focused: !1\n        }, function () {\n          null !== r && r.call(t, e);\n        });\n      }\n    }, {\n      key: \"renderFocusRing\",\n      value: function value() {\n        return this.state.focused ? React.createElement(\"div\", {\n          className: [s$a.focusRing, \"carousel__slide-focus-ring\"].join(\" \")\n        }) : null;\n      }\n    }, {\n      key: \"render\",\n      value: function value() {\n        var e = this,\n          t = this.props,\n          r = t.ariaLabel,\n          i = (t.carouselStore, t.children, t.className),\n          n = t.classNameHidden,\n          s = t.classNameVisible,\n          o = (t.currentSlide, t.index, t.innerClassName),\n          a = t.innerTag,\n          l = t.naturalSlideHeight,\n          c = t.naturalSlideWidth,\n          u = (t.onBlur, t.onFocus, t.orientation),\n          p = t.slideSize,\n          d = t.style,\n          h = t.tabIndex,\n          S = t.tag,\n          y = t.totalSlides,\n          b = (t.visibleSlides, t.isIntrinsicHeight),\n          m = _objectWithoutProperties(t, _excluded$b),\n          f = {};\n        \"horizontal\" === u ? (f.width = pct(p), f.paddingBottom = pct(100 * l / (c * y))) : (f.width = pct(100), f.paddingBottom = pct(100 * l / c));\n        var g = {};\n        b && (\"horizontal\" === u ? f.height = \"unset\" : f.width = \"unset\", f.paddingBottom = \"unset\", g.position = \"unset\");\n        var v = _extends({}, f, d),\n          _ = this.isVisible(),\n          T = cn([s$a.slide, \"horizontal\" === u && s$a.slideHorizontal, \"carousel__slide\", this.state.focused && \"carousel__slide--focused\", _ && s, _ && \"carousel__slide--visible\", !_ && n, !_ && \"carousel__slide--hidden\", i]),\n          k = cn([s$a.slideInner, \"carousel__inner-slide\", o]),\n          C = this.isVisible() ? 0 : -1,\n          O = \"number\" == typeof h ? h : C;\n        return React.createElement(S, _extends({\n          ref: function ref(t) {\n            e.tagRef = t;\n          },\n          tabIndex: O,\n          \"aria-selected\": this.isVisible(),\n          \"aria-label\": r,\n          role: \"option\",\n          onFocus: this.handleOnFocus,\n          onBlur: this.handleOnBlur,\n          className: T,\n          style: v\n        }, m), React.createElement(a, {\n          ref: function ref(t) {\n            e.innerTagRef = t;\n          },\n          className: k,\n          style: g\n        }, this.props.children, this.renderFocusRing()));\n      }\n    }]), t;\n  }(React.PureComponent), _defineProperty(_class$9, \"propTypes\", {\n    ariaLabel: propTypes.string,\n    carouselStore: propTypes.object,\n    children: CarouselPropTypes.children,\n    className: propTypes.string,\n    classNameHidden: propTypes.string,\n    classNameVisible: propTypes.string,\n    currentSlide: propTypes.number.isRequired,\n    index: propTypes.number.isRequired,\n    innerClassName: propTypes.string,\n    innerTag: propTypes.string,\n    naturalSlideHeight: propTypes.number.isRequired,\n    naturalSlideWidth: propTypes.number.isRequired,\n    onBlur: propTypes.func,\n    onFocus: propTypes.func,\n    orientation: CarouselPropTypes.orientation.isRequired,\n    slideSize: propTypes.number.isRequired,\n    style: propTypes.object,\n    tabIndex: propTypes.number,\n    tag: propTypes.string,\n    totalSlides: propTypes.number.isRequired,\n    visibleSlides: propTypes.number.isRequired,\n    isIntrinsicHeight: propTypes.bool\n  }), _defineProperty(_class$9, \"defaultProps\", {\n    ariaLabel: \"slide\",\n    carouselStore: null,\n    children: null,\n    className: null,\n    classNameHidden: null,\n    classNameVisible: null,\n    innerClassName: null,\n    innerTag: \"div\",\n    onBlur: null,\n    onFocus: null,\n    style: {},\n    tabIndex: null,\n    tag: \"div\",\n    isIntrinsicHeight: !1\n  }), _class$9),\n  index$7 = WithStore(Slide, function (e) {\n    return {\n      currentSlide: e.currentSlide,\n      naturalSlideHeight: e.naturalSlideHeight,\n      naturalSlideWidth: e.naturalSlideWidth,\n      orientation: e.orientation,\n      slideSize: e.slideSize,\n      totalSlides: e.totalSlides,\n      visibleSlides: e.visibleSlides,\n      isIntrinsicHeight: e.isIntrinsicHeight\n    };\n  }),\n  GetScrollParent = function () {\n    function e() {\n      _classCallCheck(this, e);\n    }\n    return _createClass(e, [{\n      key: \"parents\",\n      value: function value(e, t) {\n        return null === e.parentNode ? t : this.parents(e.parentNode, t.concat([e]));\n      }\n    }, {\n      key: \"scrollParent\",\n      value: function value(t) {\n        for (var r = this.parents(t.parentNode, []), i = 0; i < r.length; i += 1) if (e.scroll(r[i])) return r[i];\n        return document.scrollingElement || document.documentElement;\n      }\n    }, {\n      key: \"getScrollParent\",\n      value: function value(t) {\n        return e.isNodeValid(t) ? this.scrollParent(t) : null;\n      }\n    }], [{\n      key: \"style\",\n      value: function value(e, t) {\n        return getComputedStyle(e, null).getPropertyValue(t);\n      }\n    }, {\n      key: \"overflow\",\n      value: function value(t) {\n        return e.style(t, \"overflow\") + e.style(t, \"overflow-y\") + e.style(t, \"overflow-x\");\n      }\n    }, {\n      key: \"scroll\",\n      value: function value(t) {\n        return /(auto|scroll)/.test(e.overflow(t));\n      }\n    }, {\n      key: \"isNodeValid\",\n      value: function value(e) {\n        return e instanceof HTMLElement || e instanceof SVGElement;\n      }\n    }]), e;\n  }(),\n  s$b = {\n    horizontalSlider: \"horizontalSlider___281Ls\",\n    horizontalSliderTray: \"horizontalSliderTray___1L-0W\",\n    verticalSlider: \"verticalSlider___34ZFD\",\n    verticalSliderTray: \"verticalSliderTray___267D8\",\n    verticalTray: \"verticalTray___12Key\",\n    verticalSlideTrayWrap: \"verticalSlideTrayWrap___2nO7o\",\n    sliderTray: \"sliderTray___-vHFQ\",\n    sliderAnimation: \"sliderAnimation___300FY\",\n    masterSpinnerContainer: \"masterSpinnerContainer___1Z6hB\"\n  },\n  _excluded$c = [\"ariaLabel\", \"carouselStore\", \"children\", \"className\", \"classNameAnimation\", \"classNameTray\", \"classNameTrayWrap\", \"currentSlide\", \"disableAnimation\", \"disableKeyboard\", \"dragEnabled\", \"hasMasterSpinner\", \"interval\", \"isPageScrollLocked\", \"isPlaying\", \"lockOnWindowScroll\", \"masterSpinnerFinished\", \"moveThreshold\", \"naturalSlideHeight\", \"naturalSlideWidth\", \"onMasterSpinner\", \"orientation\", \"playDirection\", \"privateUnDisableAnimation\", \"slideSize\", \"slideTraySize\", \"spinner\", \"style\", \"tabIndex\", \"totalSlides\", \"touchEnabled\", \"trayProps\", \"trayTag\", \"visibleSlides\", \"isIntrinsicHeight\"],\n  _excluded2$2 = [\"dragStep\", \"step\", \"infinite\", \"preventVerticalScrollOnTouch\", \"preventingVerticalScroll\", \"horizontalPixelThreshold\", \"verticalPixelThreshold\"],\n  _excluded3 = [\"className\", \"onClickCapture\", \"onMouseDown\", \"onTouchCancel\", \"onTouchEnd\", \"onTouchMove\", \"onTouchStart\", \"ref\", \"style\"],\n  _class$a,\n  Slider = (_class$a = function (e) {\n    function t(e) {\n      var i;\n      return _classCallCheck(this, t), i = r.call(this, e), i.getSliderRef = i.getSliderRef.bind(_assertThisInitialized(i)), i.handleDocumentScroll = i.handleDocumentScroll.bind(_assertThisInitialized(i)), i.handleOnClickCapture = i.handleOnClickCapture.bind(_assertThisInitialized(i)), i.handleOnKeyDown = i.handleOnKeyDown.bind(_assertThisInitialized(i)), i.handleOnMouseDown = i.handleOnMouseDown.bind(_assertThisInitialized(i)), i.handleOnMouseMove = i.handleOnMouseMove.bind(_assertThisInitialized(i)), i.handleOnMouseUp = i.handleOnMouseUp.bind(_assertThisInitialized(i)), i.handleOnTouchCancel = i.handleOnTouchCancel.bind(_assertThisInitialized(i)), i.handleOnTouchEnd = i.handleOnTouchEnd.bind(_assertThisInitialized(i)), i.handleOnTouchMove = i.handleOnTouchMove.bind(_assertThisInitialized(i)), i.handleOnTouchStart = i.handleOnTouchStart.bind(_assertThisInitialized(i)), i.playBackward = i.playBackward.bind(_assertThisInitialized(i)), i.playForward = i.playForward.bind(_assertThisInitialized(i)), i.callCallback = i.callCallback.bind(_assertThisInitialized(i)), i.blockWindowScroll = i.blockWindowScroll.bind(_assertThisInitialized(i)), i.state = {\n        cancelNextClick: !1,\n        deltaX: 0,\n        deltaY: 0,\n        isBeingMouseDragged: !1,\n        isBeingTouchDragged: !1,\n        preventingVerticalScroll: !1,\n        startX: 0,\n        startY: 0\n      }, i.interval = null, i.isDocumentScrolling = null, i.moveTimer = null, i.originalOverflow = null, i.scrollParent = null, i.scrollStopTimer = null, i;\n    }\n    _inherits(t, e);\n    var r = _createSuper(t);\n    return _createClass(t, [{\n      key: \"componentDidMount\",\n      value: function value() {\n        this.props.lockOnWindowScroll && window.addEventListener(\"scroll\", this.handleDocumentScroll, !1), (this.props.touchEnabled || this.props.preventVerticalScrollOnTouch) && window.addEventListener(\"touchmove\", this.blockWindowScroll, !1), document.documentElement.addEventListener(\"mouseleave\", this.handleOnMouseUp, !1), document.documentElement.addEventListener(\"mousemove\", this.handleOnMouseMove, !1), document.documentElement.addEventListener(\"mouseup\", this.handleOnMouseUp, !1), this.props.isPlaying && this.play();\n      }\n    }, {\n      key: \"componentDidUpdate\",\n      value: function value(e) {\n        !e.isPlaying && this.props.isPlaying && this.play(), e.isPlaying && !this.props.isPlaying && this.stop(), !e.isPageScrollLocked && this.props.isPageScrollLocked && this.lockScroll(), e.isPageScrollLocked && !this.props.isPageScrollLocked && this.unlockScroll(), !1 === e.privateUnDisableAnimation && !0 === this.props.privateUnDisableAnimation && this.props.carouselStore.setStoreState({\n          privateUnDisableAnimation: !1,\n          disableAnimation: !1\n        });\n      }\n    }, {\n      key: \"componentWillUnmount\",\n      value: function value() {\n        document.documentElement.removeEventListener(\"mouseleave\", this.handleOnMouseUp, !1), document.documentElement.removeEventListener(\"mousemove\", this.handleOnMouseMove, !1), document.documentElement.removeEventListener(\"mouseup\", this.handleOnMouseUp, !1), window.removeEventListener(\"scroll\", this.handleDocumentScroll, !1), window.removeEventListener(\"touchmove\", this.blockWindowScroll, !1), this.stop(), window.cancelAnimationFrame.call(window, this.moveTimer), window.clearTimeout(this.scrollStopTimer), this.isDocumentScrolling = null, this.moveTimer = null, this.scrollStopTimer = null;\n      }\n    }, {\n      key: \"getSliderRef\",\n      value: function value(e) {\n        this.sliderTrayElement = e;\n      }\n    }, {\n      key: \"fakeOnDragStart\",\n      value: function value(e) {\n        var t = e.screenX,\n          r = e.screenY,\n          i = e.touchDrag,\n          n = void 0 !== i && i,\n          s = e.mouseDrag,\n          o = void 0 !== s && s;\n        this.props.carouselStore.setStoreState({\n          isPlaying: !1\n        }), window.cancelAnimationFrame.call(window, this.moveTimer), \"vertical\" === this.props.orientation && this.props.carouselStore.setStoreState({\n          isPageScrollLocked: !0\n        }), this.setState({\n          isBeingTouchDragged: n,\n          isBeingMouseDragged: o,\n          startX: t,\n          startY: r\n        });\n      }\n    }, {\n      key: \"fakeOnDragMove\",\n      value: function value(e, t) {\n        var r = this;\n        this.moveTimer = window.requestAnimationFrame.call(window, function () {\n          r.setState(function (i) {\n            return {\n              deltaX: e - i.startX,\n              deltaY: t - i.startY,\n              preventingVerticalScroll: Math.abs(t - i.startY) <= r.props.verticalPixelThreshold && Math.abs(e - i.startX) >= r.props.horizontalPixelThreshold\n            };\n          });\n        });\n      }\n    }, {\n      key: \"fakeOnDragEnd\",\n      value: function value() {\n        window.cancelAnimationFrame.call(window, this.moveTimer), this.computeCurrentSlide(), \"vertical\" === this.props.orientation && this.props.carouselStore.setStoreState({\n          isPageScrollLocked: !1\n        }), this.setState({\n          deltaX: 0,\n          deltaY: 0,\n          isBeingTouchDragged: !1,\n          isBeingMouseDragged: !1\n        }), this.isDocumentScrolling = !this.props.lockOnWindowScroll && null;\n      }\n    }, {\n      key: \"callCallback\",\n      value: function value(e, t) {\n        var r = this.props.trayProps;\n        r && \"function\" == typeof r[e] && (t.persist(), r[e](t));\n      }\n    }, {\n      key: \"handleOnMouseDown\",\n      value: function value(e) {\n        if (!this.props.dragEnabled) return void this.callCallback(\"onMouseDown\", e);\n        e.preventDefault(), this.fakeOnDragStart({\n          screenX: e.screenX,\n          screenY: e.screenY,\n          mouseDrag: !0\n        }), this.callCallback(\"onMouseDown\", e);\n      }\n    }, {\n      key: \"handleOnMouseMove\",\n      value: function value(e) {\n        this.state.isBeingMouseDragged && (this.setState({\n          cancelNextClick: !0\n        }), e.preventDefault(), this.fakeOnDragMove(e.screenX, e.screenY));\n      }\n    }, {\n      key: \"handleOnMouseUp\",\n      value: function value(e) {\n        this.state.isBeingMouseDragged && (e.preventDefault(), this.fakeOnDragEnd());\n      }\n    }, {\n      key: \"handleOnClickCapture\",\n      value: function value(e) {\n        if (!this.state.cancelNextClick) return void this.callCallback(\"onClickCapture\", e);\n        e.preventDefault(), this.setState({\n          cancelNextClick: !1\n        }), this.callCallback(\"onClickCapture\", e);\n      }\n    }, {\n      key: \"handleOnTouchStart\",\n      value: function value(e) {\n        if (!this.props.touchEnabled) return void this.callCallback(\"onTouchStart\", e);\n        \"vertical\" === this.props.orientation && e.preventDefault();\n        var t = e.targetTouches[0];\n        this.fakeOnDragStart({\n          screenX: t.screenX,\n          screenY: t.screenY,\n          touchDrag: !0\n        }), this.callCallback(\"onTouchStart\", e);\n      }\n    }, {\n      key: \"handleDocumentScroll\",\n      value: function value() {\n        var e = this;\n        this.props.touchEnabled && (this.isDocumentScrolling = !0, window.clearTimeout(this.scrollStopTimer), this.scrollStopTimer = window.setTimeout(function () {\n          e.isDocumentScrolling = !1;\n        }, 66));\n      }\n    }, {\n      key: \"handleOnTouchMove\",\n      value: function value(e) {\n        if (!this.props.touchEnabled || this.props.lockOnWindowScroll && this.isDocumentScrolling) return void this.callCallback(\"onTouchMove\", e);\n        window.cancelAnimationFrame.call(window, this.moveTimer);\n        var t = e.targetTouches[0];\n        t && (this.fakeOnDragMove(t.screenX, t.screenY), this.callCallback(\"onTouchMove\", e));\n      }\n    }, {\n      key: \"forward\",\n      value: function value() {\n        var e = this.props,\n          t = e.currentSlide,\n          r = e.step,\n          i = e.totalSlides,\n          n = e.visibleSlides;\n        return Math.min(t + r, i - n);\n      }\n    }, {\n      key: \"backward\",\n      value: function value() {\n        var e = this.props,\n          t = e.currentSlide,\n          r = e.step;\n        return Math.max(t - r, 0);\n      }\n    }, {\n      key: \"handleOnKeyDown\",\n      value: function value(e) {\n        var t = e.keyCode,\n          r = this.props,\n          i = r.carouselStore,\n          n = r.currentSlide,\n          s = r.disableKeyboard,\n          o = r.totalSlides,\n          a = r.visibleSlides,\n          l = {};\n        !0 === s || o <= a || (37 === t && (e.preventDefault(), this.focus(), l.currentSlide = Math.max(0, n - 1), l.isPlaying = !1), 39 === t && (e.preventDefault(), this.focus(), l.currentSlide = Math.min(o - a, n + 1), l.isPlaying = !1), i.setStoreState(l));\n      }\n    }, {\n      key: \"playForward\",\n      value: function value() {\n        var e = this.props,\n          t = e.carouselStore,\n          r = e.currentSlide;\n        t.setStoreState({\n          currentSlide: this.forward() === r ? 0 : this.forward()\n        });\n      }\n    }, {\n      key: \"playBackward\",\n      value: function value() {\n        var e = this.props,\n          t = e.carouselStore,\n          r = e.currentSlide,\n          i = e.totalSlides,\n          n = e.visibleSlides;\n        t.setStoreState({\n          currentSlide: this.backward() === r ? i - n : this.backward()\n        });\n      }\n    }, {\n      key: \"play\",\n      value: function value() {\n        var e = this.props.playDirection;\n        this.interval = setInterval(\"forward\" === e ? this.playForward : this.playBackward, this.props.interval);\n      }\n    }, {\n      key: \"stop\",\n      value: function value() {\n        window.clearInterval(this.interval), this.interval = null;\n      }\n    }, {\n      key: \"lockScroll\",\n      value: function value() {\n        var e = new GetScrollParent();\n        this.scrollParent = e.getScrollParent(this.sliderTrayElement), this.scrollParent && (this.originalOverflow = this.originalOverflow || this.scrollParent.style.overflow, this.scrollParent.style.overflow = \"hidden\");\n      }\n    }, {\n      key: \"unlockScroll\",\n      value: function value() {\n        this.scrollParent && (this.scrollParent.style.overflow = this.originalOverflow, this.originalOverflow = null, this.scrollParent = null);\n      }\n    }, {\n      key: \"blockWindowScroll\",\n      value: function value(e) {\n        this.state.preventingVerticalScroll && (e.preventDefault(), e.stopImmediatePropagation());\n      }\n    }, {\n      key: \"computeCurrentSlide\",\n      value: function value() {\n        var e = t.slideSizeInPx(this.props.orientation, this.sliderTrayElement.clientWidth, this.sliderTrayElement.clientHeight, this.props.totalSlides),\n          r = t.slidesMoved(this.props.moveThreshold, this.props.orientation, this.state.deltaX, this.state.deltaY, e, this.props.dragStep),\n          i = this.props.totalSlides - Math.min(this.props.totalSlides, this.props.visibleSlides),\n          n = boundedRange({\n            min: 0,\n            max: i,\n            x: this.props.currentSlide + r\n          });\n        this.props.infinite && (this.props.currentSlide >= i && r > 0 && (n = 0), 0 === this.props.currentSlide && r < 0 && (n = i)), this.props.carouselStore.setStoreState({\n          currentSlide: n\n        });\n      }\n    }, {\n      key: \"focus\",\n      value: function value() {\n        this.sliderElement.focus();\n      }\n    }, {\n      key: \"handleOnTouchEnd\",\n      value: function value(e) {\n        this.endTouchMove(), this.callCallback(\"onTouchEnd\", e);\n      }\n    }, {\n      key: \"handleOnTouchCancel\",\n      value: function value(e) {\n        this.endTouchMove(), this.callCallback(\"onTouchCancel\", e);\n      }\n    }, {\n      key: \"endTouchMove\",\n      value: function value() {\n        this.props.touchEnabled && this.fakeOnDragEnd();\n      }\n    }, {\n      key: \"renderMasterSpinner\",\n      value: function value() {\n        var e = this.props,\n          t = e.hasMasterSpinner,\n          r = e.masterSpinnerFinished,\n          i = e.spinner;\n        return t && !r ? (\"function\" == typeof this.props.onMasterSpinner && this.props.onMasterSpinner(), React.createElement(\"div\", {\n          className: cn([s$b.masterSpinnerContainer, \"carousel__master-spinner-container\"])\n        }, i && i(), !i && React.createElement(Spinner, null))) : null;\n      }\n    }, {\n      key: \"render\",\n      value: function value() {\n        var e = this,\n          t = this.props,\n          r = t.ariaLabel,\n          i = (t.carouselStore, t.children),\n          n = t.className,\n          s = t.classNameAnimation,\n          o = t.classNameTray,\n          a = t.classNameTrayWrap,\n          l = t.currentSlide,\n          c = t.disableAnimation,\n          u = (t.disableKeyboard, t.dragEnabled, t.hasMasterSpinner, t.interval, t.isPageScrollLocked, t.isPlaying, t.lockOnWindowScroll, t.masterSpinnerFinished, t.moveThreshold, t.naturalSlideHeight),\n          p = t.naturalSlideWidth,\n          d = (t.onMasterSpinner, t.orientation),\n          h = (t.playDirection, t.privateUnDisableAnimation, t.slideSize),\n          S = t.slideTraySize,\n          y = (t.spinner, t.style),\n          b = t.tabIndex,\n          m = (t.totalSlides, t.touchEnabled, t.trayProps),\n          f = t.trayTag,\n          g = t.visibleSlides,\n          v = t.isIntrinsicHeight,\n          _ = _objectWithoutProperties(t, _excluded$c),\n          T = _extends({}, y),\n          k = {};\n        \"vertical\" === d && (k.height = 0, k.paddingBottom = pct(100 * u * g / p), k.width = pct(100));\n        var C = {},\n          O = pct(h * l * -1);\n        (this.state.isBeingTouchDragged || this.state.isBeingMouseDragged || c) && (C.transition = \"none\"), v && (C.display = \"flex\", C.alignItems = \"stretch\"), \"vertical\" === d ? (C.transform = \"translateY(\".concat(O, \") translateY(\").concat(this.state.deltaY, \"px)\"), C.width = pct(100), C.flexDirection = \"column\") : (C.width = pct(S), C.transform = \"translateX(\".concat(O, \") translateX(\").concat(this.state.deltaX, \"px)\"), C.flexDirection = \"row\");\n        var P = cn([\"vertical\" === d ? s$b.verticalSlider : s$b.horizontalSlider, \"carousel__slider\", \"vertical\" === d ? \"carousel__slider--vertical\" : \"carousel__slider--horizontal\", n]),\n          E = cn([s$b.sliderTrayWrap, \"carousel__slider-tray-wrapper\", \"vertical\" === d ? s$b.verticalSlideTrayWrap : s$b.horizontalTrayWrap, \"vertical\" === d ? \"carousel__slider-tray-wrap--vertical\" : \"carousel__slider-tray-wrap--horizontal\", a]),\n          w = cn([s$b.sliderTray, s || s$b.sliderAnimation, \"carousel__slider-tray\", \"vertical\" === d ? s$b.verticalTray : s$b.horizontalTray, \"vertical\" === d ? \"carousel__slider-tray--vertical\" : \"carousel__slider-tray--horizontal\", o]),\n          M = null !== b ? b : 0,\n          x = (_.dragStep, _.step, _.infinite, _.preventVerticalScrollOnTouch, _.preventingVerticalScroll, _.horizontalPixelThreshold, _.verticalPixelThreshold, _objectWithoutProperties(_, _excluded2$2)),\n          R = (m.className, m.onClickCapture, m.onMouseDown, m.onTouchCancel, m.onTouchEnd, m.onTouchMove, m.onTouchStart, m.ref, m.style, _objectWithoutProperties(m, _excluded3));\n        return React.createElement(\"div\", _extends({\n          ref: function ref(t) {\n            e.sliderElement = t;\n          },\n          className: P,\n          \"aria-live\": \"polite\",\n          \"aria-label\": r,\n          style: T,\n          tabIndex: M,\n          onKeyDown: this.handleOnKeyDown,\n          role: \"listbox\"\n        }, x), React.createElement(\"div\", {\n          className: E,\n          style: k\n        }, React.createElement(f, _extends({\n          ref: this.getSliderRef,\n          className: w,\n          style: C,\n          onTouchStart: this.handleOnTouchStart,\n          onTouchMove: this.handleOnTouchMove,\n          onTouchEnd: this.handleOnTouchEnd,\n          onTouchCancel: this.handleOnTouchCancel,\n          onMouseDown: this.handleOnMouseDown,\n          onClickCapture: this.handleOnClickCapture\n        }, R), i), this.renderMasterSpinner()));\n      }\n    }], [{\n      key: \"slideSizeInPx\",\n      value: function value(e, t, r, i) {\n        return (\"horizontal\" === e ? t : r) / i;\n      }\n    }, {\n      key: \"slidesMoved\",\n      value: function value(e, t, r, i, n, s) {\n        var o = \"horizontal\" === t ? r : i,\n          a = Math.abs(Math.round(o / n)),\n          l = Math.abs(o) >= n * e ? s : 0,\n          c = Math.max(l, a);\n        if (o < 0) return c;\n        var u = -c;\n        return 0 === u ? 0 : u;\n      }\n    }]), t;\n  }(React.Component), _defineProperty(_class$a, \"propTypes\", {\n    ariaLabel: propTypes.string,\n    carouselStore: propTypes.object.isRequired,\n    children: propTypes.node.isRequired,\n    className: propTypes.string,\n    classNameAnimation: propTypes.string,\n    classNameTray: propTypes.string,\n    classNameTrayWrap: propTypes.string,\n    currentSlide: propTypes.number.isRequired,\n    disableAnimation: propTypes.bool,\n    disableKeyboard: propTypes.bool,\n    dragEnabled: propTypes.bool.isRequired,\n    dragStep: propTypes.number,\n    hasMasterSpinner: propTypes.bool.isRequired,\n    infinite: propTypes.bool,\n    interval: propTypes.number.isRequired,\n    isPageScrollLocked: propTypes.bool.isRequired,\n    isPlaying: propTypes.bool.isRequired,\n    lockOnWindowScroll: propTypes.bool.isRequired,\n    preventVerticalScrollOnTouch: propTypes.bool,\n    horizontalPixelThreshold: propTypes.number,\n    verticalPixelThreshold: propTypes.number,\n    masterSpinnerFinished: propTypes.bool.isRequired,\n    moveThreshold: propTypes.number,\n    naturalSlideHeight: propTypes.number.isRequired,\n    naturalSlideWidth: propTypes.number.isRequired,\n    onMasterSpinner: propTypes.func,\n    orientation: CarouselPropTypes.orientation.isRequired,\n    playDirection: CarouselPropTypes.direction.isRequired,\n    privateUnDisableAnimation: propTypes.bool,\n    slideSize: propTypes.number.isRequired,\n    slideTraySize: propTypes.number.isRequired,\n    spinner: propTypes.func,\n    step: propTypes.number.isRequired,\n    style: propTypes.object,\n    tabIndex: propTypes.number,\n    totalSlides: propTypes.number.isRequired,\n    touchEnabled: propTypes.bool.isRequired,\n    trayProps: propTypes.shape({\n      className: propTypes.string,\n      onClickCapture: propTypes.func,\n      onMouseDown: propTypes.func,\n      onTouchCancel: propTypes.func,\n      onTouchEnd: propTypes.func,\n      onTouchMove: propTypes.func,\n      onTouchStart: propTypes.func,\n      ref: propTypes.shape({}),\n      style: propTypes.string\n    }),\n    trayTag: propTypes.string,\n    visibleSlides: propTypes.number,\n    isIntrinsicHeight: propTypes.bool\n  }), _defineProperty(_class$a, \"defaultProps\", {\n    ariaLabel: \"slider\",\n    className: null,\n    classNameAnimation: null,\n    classNameTray: null,\n    classNameTrayWrap: null,\n    disableAnimation: !1,\n    disableKeyboard: !1,\n    dragStep: 1,\n    infinite: !1,\n    preventVerticalScrollOnTouch: !0,\n    horizontalPixelThreshold: 15,\n    verticalPixelThreshold: 10,\n    moveThreshold: .1,\n    onMasterSpinner: null,\n    privateUnDisableAnimation: !1,\n    spinner: null,\n    style: {},\n    tabIndex: null,\n    trayProps: {},\n    trayTag: \"div\",\n    visibleSlides: 1,\n    isIntrinsicHeight: !1\n  }), _class$a),\n  index$8 = WithStore(Slider, function (e) {\n    return {\n      currentSlide: e.currentSlide,\n      disableAnimation: e.disableAnimation,\n      privateUnDisableAnimation: e.privateUnDisableAnimation,\n      disableKeyboard: e.disableKeyboard,\n      dragEnabled: e.dragEnabled,\n      hasMasterSpinner: e.hasMasterSpinner,\n      infinite: e.infinite,\n      interval: e.interval,\n      isPageScrollLocked: e.isPageScrollLocked,\n      isPlaying: e.isPlaying,\n      lockOnWindowScroll: e.lockOnWindowScroll,\n      preventingVerticalScroll: e.preventingVerticalScroll,\n      masterSpinnerFinished: e.masterSpinnerFinished,\n      naturalSlideHeight: e.naturalSlideHeight,\n      naturalSlideWidth: e.naturalSlideWidth,\n      orientation: e.orientation,\n      playDirection: e.playDirection,\n      slideSize: e.slideSize,\n      slideTraySize: e.slideTraySize,\n      step: e.step,\n      dragStep: e.dragStep,\n      totalSlides: e.totalSlides,\n      touchEnabled: e.touchEnabled,\n      visibleSlides: e.visibleSlides,\n      isIntrinsicHeight: e.isIntrinsicHeight\n    };\n  });\nexport { index as ButtonBack, index$1 as ButtonFirst, index$3 as ButtonLast, index$2 as ButtonNext, index$4 as ButtonPlay, Context as CarouselContext, CarouselProvider, Dot$1 as Dot, index$5 as DotGroup, Image$1 as Image, index$6 as ImageWithZoom, index$7 as Slide, index$8 as Slider, Spinner, Store, WithStore };","import { graphql } from \"gatsby\"\nimport { CarouselProvider, Dot, Slide, Slider } from \"pure-react-carousel\"\nimport \"pure-react-carousel/dist/react-carousel.es.css\"\nimport React from \"react\"\nimport { CarouselSlideFieldsFragment } from \"../../../../graphql-types\"\nimport { pushGtmEvent } from \"../../../gtm/interaction-event\"\nimport { useInternalExternalLink } from \"../../../hooks\"\nimport * as styles from \"./carousel.module.scss\"\n\ntype RenderProps = {\n  slides: CarouselSlideFieldsFragment[]\n  label: string\n  previousLabel: string\n  nextLabel: string\n  pauseLabel: string\n  playLabel: string\n  locale: string\n  defaultLocale: string\n}\n\nconst Carousel: React.FC<RenderProps> = ({ slides, label, locale, defaultLocale }) => {\n  return (\n    <CarouselProvider\n      className={styles.carousel}\n      naturalSlideWidth={800}\n      naturalSlideHeight={300}\n      totalSlides={slides.length}\n      isPlaying={true}\n      infinite={true}\n      interval={5000}\n    >\n      <div className={styles.controls}>\n        {slides.map((_, index) => (\n          <Dot\n            key={index}\n            slide={index}\n            onClick={() => pushGtmEvent(\"eventga\", \"Homepage\", \"Carousel\", \"Scroll Button Click\")}\n          />\n        ))}\n      </div>\n\n      <Slider className={styles.sliderTray} aria-roledescription=\"carousel\" aria-live={null} aria-label={label}>\n        {slides.map((slide, index) => {\n          const link = useInternalExternalLink(slide.internalExternalLink[0], locale, defaultLocale)\n          return (\n            <Slide\n              className={styles.slide}\n              key={index}\n              index={index}\n              role=\"option\"\n              aria-roledescription=\"slide\"\n              aria-label={`${index + 1} sur ${slides.length}`}\n              aria-selected={null}\n            >\n              <a href={link} onClick={() => pushGtmEvent(\"eventga\", \"Homepage\", \"Carousel\", link)}>\n                <img src={slide.image.url} alt={slide.image.alt || \"\"} />\n              </a>\n            </Slide>\n          )\n        })}\n      </Slider>\n    </CarouselProvider>\n  )\n}\n\nexport const fragment = graphql`\n  fragment CarouselSlideFields on DatoCmsSlide {\n    image {\n      alt\n      url\n    }\n    internalExternalLink {\n      ...InternalExternalLinkFields\n    }\n  }\n`\n\nexport default Carousel\n","// extracted by mini-css-extract-plugin\nexport var carousel = \"carousel-module--carousel--1ca05\";\nexport var controls = \"carousel-module--controls--f194b\";\nexport var slide = \"carousel-module--slide--25b38\";\nexport var sliderTray = \"carousel-module--sliderTray--c0bb4\";","// extracted by mini-css-extract-plugin\nexport var content = \"information-banner-module--content--b06ad\";\nexport var image = \"information-banner-module--image--8d4c8\";\nexport var imageSvg = \"information-banner-module--imageSvg--1893b\";\nexport var informationBanner = \"information-banner-module--informationBanner--23332\";\nexport var picto = \"information-banner-module--picto--e3e55\";\nexport var text = \"information-banner-module--text--f24d2\";\nexport var title = \"information-banner-module--title--3e92d\";","import React from \"react\"\nimport { ReactSVG } from \"react-svg\"\nimport { graphql } from \"gatsby\"\nimport { InformationBannerFieldsFragment } from \"../../../../graphql-types\"\nimport * as styles from \"./information-banner.module.scss\"\nimport sanitizeHtml from \"sanitize-html\"\nimport { useInternalExternalLink } from \"../../../hooks\"\n\ntype RenderProps = {\n  informationBanner: InformationBannerFieldsFragment\n  locale: string\n  defaultLocale: string\n}\n\nconst InformationBanner: React.FC<RenderProps> = ({ informationBanner, locale, defaultLocale }) => {\n  const sanitizedContent = sanitizeHtml(informationBanner.content)\n\n  const bannerContent = (\n    <>\n      <div className={styles.picto}>\n        {informationBanner.image.format === \"svg\" ? (\n          <ReactSVG\n            src={informationBanner.image.url}\n            className={styles.imageSvg}\n            beforeInjection={svg => svg.setAttribute(\"aria-label\", informationBanner.image.alt || \"\")}\n          />\n        ) : (\n          <img src={informationBanner.image.url} alt={informationBanner.image.alt || \"\"} className={styles.image} />\n        )}\n      </div>\n      <div className={styles.text}>\n        <h3 className={styles.title}>{informationBanner.title}</h3>\n        <div className={styles.content} dangerouslySetInnerHTML={{ __html: sanitizedContent }} />\n      </div>\n    </>\n  )\n\n  if (informationBanner.internalExternalLink.length > 0) {\n    return (\n      <a\n        href={useInternalExternalLink(informationBanner.internalExternalLink[0], locale, defaultLocale)}\n        className={styles.informationBanner}\n      >\n        {bannerContent}\n      </a>\n    )\n  } else {\n    return <section className={styles.informationBanner}>{bannerContent}</section>\n  }\n}\n\nexport const fragment = graphql`\n  fragment InformationBannerFields on DatoCmsInformationBanner {\n    id\n    isActive\n    image {\n      alt\n      format\n      url\n    }\n    title\n    internalExternalLink {\n      ...InternalExternalLinkFields\n    }\n    content\n    location\n  }\n`\n\nexport default InformationBanner\n","// extracted by mini-css-extract-plugin\nexport var mainBlocks = \"main-blocks-module--mainBlocks--b9d3e\";\nexport var mainBlocksCard = \"main-blocks-module--mainBlocksCard--a4ad8\";\nexport var mainBlocksHeader = \"main-blocks-module--mainBlocksHeader--45346\";","import { graphql } from \"gatsby\"\nimport React, { useEffect, useRef } from \"react\"\nimport { ReactSVG } from \"react-svg\"\nimport { CustomBlockExternalPageFieldsFragment, CustomBlockInternalPageFieldsFragment } from \"../../../../graphql-types\"\nimport { pushGtmEvent } from \"../../../gtm/interaction-event\"\nimport * as inputsStyles from \"../../layout/inputs.module.scss\"\nimport * as globalBlockStyles from \"../main-blocks/main-blocks.module.scss\"\nimport * as styles from \"./custom-block.module.scss\"\n\ntype RenderProps = {\n  block: CustomBlockExternalPageFieldsFragment | CustomBlockInternalPageFieldsFragment\n  isHighlighted: boolean\n  intersectionRatioCallback: (ratio: number) => void\n}\n\nconst CustomBlock: React.FC<RenderProps> = ({ block, isHighlighted, intersectionRatioCallback }) => {\n  const component = useRef<HTMLElement>()\n  const observer = useRef<IntersectionObserver>()\n  useEffect(() => {\n    if (!(\"IntersectionObserver\" in window)) {\n      return\n    }\n    const options = { threshold: [0.2, 0.4, 0.6, 0.8, 1.0] }\n    observer.current = new IntersectionObserver(entries => {\n      intersectionRatioCallback(entries[entries.length - 1].intersectionRatio)\n    }, options)\n    observer.current.observe(component.current)\n    return () => observer.current.disconnect()\n  }, []) // do this only once, on mount\n\n  return (\n    <section\n      className={`${styles.block} ${styles.customBlock}\n       ${globalBlockStyles.mainBlocksCard}`}\n      ref={component}\n    >\n      <h3 className={styles.title}>{block.title}</h3>\n      {block.image.format === \"svg\" ? (\n        <ReactSVG\n          src={block.image.url}\n          className={styles.svgImage}\n          beforeInjection={svg => svg.setAttribute(\"aria-label\", block.image.alt || \"\")}\n        />\n      ) : (\n        <img src={block.image.url} className={styles.image} alt={block.image.alt || \"\"} />\n      )}\n\n      <a\n        className={`${styles.link} ${inputsStyles.primaryButton}`}\n        href={block.__typename === \"DatoCmsCustomBlockExternalPage\" ? block.link : block.contentPageLink.slug}\n        onClick={() => pushGtmEvent(\"eventga\", \"Homepage\", \"Bloc Principal\", block.linkLabel)}\n      >\n        {block.linkLabel}\n      </a>\n    </section>\n  )\n}\n\nexport const fragment = graphql`\n  fragment CustomBlockExternalPageFields on DatoCmsCustomBlockExternalPage {\n    __typename\n    id\n    title\n    image {\n      alt\n      format\n      url\n    }\n    linkLabel\n    link\n  }\n\n  fragment CustomBlockInternalPageFields on DatoCmsCustomBlockInternalPage {\n    __typename\n    id\n    title\n    image {\n      alt\n      format\n      url\n    }\n    linkLabel\n    contentPageLink {\n      slug\n    }\n  }\n`\n\nexport default CustomBlock\n","// extracted by mini-css-extract-plugin\nexport var blockHeader = \"le-pilote-itinerary-block-module--blockHeader--0a48d\";\nexport var blockHeaderPicto = \"le-pilote-itinerary-block-module--blockHeaderPicto--d5525\";\nexport var errorMessage = \"le-pilote-itinerary-block-module--errorMessage--07dbc\";\nexport var field = \"le-pilote-itinerary-block-module--field--25b8a\";\nexport var form = \"le-pilote-itinerary-block-module--form--39b36\";\nexport var formPart = \"le-pilote-itinerary-block-module--formPart--ec885\";\nexport var inputIcon = \"le-pilote-itinerary-block-module--inputIcon--759b8\";\nexport var inputIconSelected = \"le-pilote-itinerary-block-module--inputIconSelected--92039\";\nexport var inputWithIcons = \"le-pilote-itinerary-block-module--inputWithIcons--6b622\";\nexport var searchButton = \"le-pilote-itinerary-block-module--searchButton--600c3\";\nexport var switchButton = \"le-pilote-itinerary-block-module--switchButton--cecd7\";","import React, { useEffect, useRef, useState } from \"react\"\nimport { ReactSVG } from \"react-svg\"\nimport { graphql } from \"gatsby\"\nimport { LePiloteItineraryBlockFieldsFragment } from \"../../../../graphql-types\"\nimport * as styles from \"./le-pilote-itinerary-block.module.scss\"\nimport * as globalBlockStyles from \"../main-blocks/main-blocks.module.scss\"\nimport * as blockStyles from \"../custom-block/custom-block.module.scss\"\nimport * as inputsStyles from \"../../layout/inputs.module.scss\"\nimport Autocomplete from \"../../autocomplete/autocomplete\"\nimport { getTripPointsFromApi } from \"../../../api/le-pilote-api\"\nimport { pushGtmEvent } from \"../../../gtm/interaction-event\"\nimport { useSpeechToText } from \"../../../hooks\"\n\ntype RenderProps = {\n  block: LePiloteItineraryBlockFieldsFragment\n  intersectionRatioCallback: (ratio: number) => void\n}\n\nconst LePiloteItineraryBlock: React.FC<RenderProps> = ({ block, intersectionRatioCallback }) => {\n  const component = useRef<HTMLFormElement>()\n  const observer = useRef<IntersectionObserver>()\n  const [listStartStops, setListStartStops] = useState(null)\n  const [switchedStart, setSwitchedStart] = useState(null)\n  const [switchedEnd, setSwitchedEnd] = useState(null)\n  const [listEndStops, setListEndStops] = useState(null)\n  const [departureCoord, setDepartureCoord] = useState(null)\n  const [arrivalCoord, setArrivalCoord] = useState(null)\n  const [invalidDeparture, setInvalidDeparture] = useState(\"\")\n  const [invalidArrival, setInvalidArrival] = useState(\"\")\n\n  useEffect(() => {\n    if (!(\"IntersectionObserver\" in window)) {\n      return\n    }\n    const options = { threshold: [0.2, 0.4, 0.6, 0.8, 1.0] }\n    observer.current = new IntersectionObserver(entries => {\n      intersectionRatioCallback(entries[entries.length - 1].intersectionRatio)\n    }, options)\n    observer.current.observe(component.current)\n    return () => observer.current.disconnect()\n  }, [])\n\n  const toLabel = element => (element ? element.Name : \"Recherche...\")\n\n  const getStartStopList = query => {\n    getTripPointsFromApi(query).then(allStops => setListStartStops(allStops || []))\n  }\n  const getEndStopList = query => {\n    getTripPointsFromApi(query).then(allStops => setListEndStops(allStops || []))\n  }\n\n  const getStartStop = query => {\n    if (departureCoord) {\n      setDepartureCoord(null)\n      return []\n    }\n    getStartStopList(query)\n    return (Array.isArray(listStartStops) && listStartStops) || []\n  }\n  const getEndStop = query => {\n    if (arrivalCoord) {\n      setArrivalCoord(null)\n      return []\n    }\n    getEndStopList(query)\n    return (Array.isArray(listEndStops) && listEndStops) || []\n  }\n\n  const selectStartStop = startStop => {\n    setDepartureCoord(null)\n    setInvalidDeparture(\"\")\n    setListStartStops(startStop || listStartStops)\n    setTimeout(() => {\n      setIsListeningDeparture(false)\n    }, 1500)\n  }\n  const selectEndStop = endStop => {\n    setArrivalCoord(null)\n    setInvalidArrival(\"\")\n    setListEndStops(endStop || listEndStops)\n    setTimeout(() => {\n      setIsListeningArrival(false)\n    }, 1500)\n  }\n\n  const handleGeoLoc = (param: string) => () => {\n    if ((departureCoord && param === \"departure\") || (arrivalCoord && param === \"arrival\")) {\n      return\n    }\n    if (param === \"departure\") {\n      if (\"geolocation\" in navigator) {\n        navigator.geolocation.getCurrentPosition(\n          position => {\n            let departure = document.getElementById(\"departureInput\") as HTMLInputElement\n            departure.value = \"\"\n            let coords = position.coords\n            coords[\"Name\"] = block.geolocationLabel\n            setDepartureCoord(coords)\n            if (arrivalCoord) {\n              setArrivalCoord(null)\n              setListEndStops(null)\n              setSwitchedEnd(null)\n            }\n            setInvalidDeparture(\"\")\n            setListStartStops(coords)\n            setSwitchedStart(null)\n          },\n          error => {\n            if (error.code == error.PERMISSION_DENIED) console.log(\"you denied me :-(\")\n          }\n        )\n      }\n    } else if (param === \"arrival\") {\n      if (\"geolocation\" in navigator) {\n        navigator.geolocation.getCurrentPosition(\n          position => {\n            let arrival = document.getElementById(\"arrivalInput\") as HTMLInputElement\n            arrival.value = \"\"\n            let coords = position.coords\n            coords[\"Name\"] = block.geolocationLabel\n            setArrivalCoord(coords)\n            if (departureCoord) {\n              setDepartureCoord(null)\n              setListStartStops(null)\n              setSwitchedStart(null)\n            }\n            setInvalidArrival(\"\")\n            setListEndStops(coords)\n            setSwitchedEnd(null)\n          },\n          error => {\n            if (error.code == error.PERMISSION_DENIED) console.log(\"you denied me :-(\")\n          }\n        )\n      }\n    }\n  }\n\n  const handleSwitch = () => {\n    if (listStartStops?.Name && listEndStops?.Name && !departureCoord && !arrivalCoord) {\n      const tmpStart = listStartStops\n      const tmpEnd = listEndStops\n      setListStartStops(tmpEnd)\n      setListEndStops(tmpStart)\n      setSwitchedStart(tmpEnd)\n      setSwitchedEnd(tmpStart)\n    } else if (departureCoord) {\n      let departure = departureCoord\n      departureCoord.Name = block.geolocationLabel\n      setArrivalCoord(departure)\n      setListStartStops(listEndStops)\n      setDepartureCoord(null)\n      setSwitchedStart(listEndStops)\n      setSwitchedEnd(departure)\n      setListEndStops(departure)\n    } else if (arrivalCoord) {\n      let arrival = arrivalCoord\n      arrival.Name = block.geolocationLabel\n      setDepartureCoord(arrival)\n      setListEndStops(listStartStops)\n      setArrivalCoord(null)\n      setSwitchedEnd(listStartStops)\n      setSwitchedStart(arrival)\n      setListStartStops(arrival)\n    }\n  }\n\n  const [isListeningDeparture, setIsListeningDeparture] = useState(false)\n  const [isListeningArrival, setIsListeningArrival] = useState(false)\n  const [departureNote, setDepartureNote] = useState(null)\n  const [arrivalNote, setArrivalNote] = useState(null)\n  const [microphone, setMicrophone] = useState(null)\n\n  useEffect(() => {\n    let mic = useSpeechToText()\n    if (mic != false) {\n      setMicrophone(mic)\n    }\n  }, [microphone])\n\n  useEffect(() => {\n    handleListenDeparture()\n  }, [isListeningDeparture])\n\n  useEffect(() => {\n    handleListenArrival()\n  }, [isListeningArrival])\n\n  const handleListenDeparture = () => {\n    if (microphone) {\n      if (isListeningDeparture && !isListeningArrival) {\n        microphone.start()\n        microphone.onend = () => {\n          console.log(\"continue..\")\n          microphone.start()\n        }\n      } else if (!isListeningDeparture) {\n        microphone.stop()\n        microphone.onend = () => {\n          console.log(\"Stopped Mic on Click\")\n        }\n      }\n      microphone.onstart = () => {\n        console.log(\"Mics on\")\n      }\n\n      microphone.onresult = event => {\n        const transcript = Array.from(event.results)\n          .map(result => result[0])\n          .map(result => result.transcript)\n          .join(\"\")\n        if ((transcript && !departureNote) || (transcript && departureNote && transcript != departureNote.Name)) {\n          setDepartureNote({ Name: transcript })\n          setSwitchedStart({ Name: transcript })\n          document.getElementById(\"departureInput\").focus()\n          document.getElementById(\"departureInput\").blur()\n          document.getElementById(\"departureInput\").focus()\n        }\n        microphone.onerror = errorEvent => {\n          console.log(errorEvent.error)\n        }\n      }\n    }\n  }\n\n  const handleListenArrival = () => {\n    if (microphone) {\n      if (isListeningArrival && !isListeningDeparture) {\n        microphone.start()\n        microphone.onend = () => {\n          console.log(\"continue..\")\n          microphone.start()\n        }\n      } else if (!isListeningArrival) {\n        microphone.stop()\n        microphone.onend = () => {\n          console.log(\"Stopped Mic on Click\")\n        }\n      }\n      microphone.onstart = () => {\n        console.log(\"Mics on\")\n      }\n      microphone.onresult = event => {\n        const transcript = Array.from(event.results)\n          .map(result => result[0])\n          .map(result => result.transcript)\n          .join(\"\")\n        if ((transcript && !arrivalNote) || (transcript && arrivalNote && transcript != arrivalNote.Name)) {\n          setArrivalNote({ Name: transcript })\n          setSwitchedEnd({ Name: transcript })\n          document.getElementById(\"arrivalInput\").focus()\n          document.getElementById(\"arrivalInput\").blur()\n          document.getElementById(\"arrivalInput\").focus()\n        }\n        microphone.onerror = errorEvent => {\n          console.log(errorEvent.error)\n        }\n      }\n    }\n  }\n\n  return (\n    <form\n      ref={component}\n      className={`${blockStyles.block} ${globalBlockStyles.mainBlocksCard}`}\n      method=\"get\"\n      action={`/${block.resultsPage.slug}`}\n    >\n      <div className={styles.blockHeader}>\n        <ReactSVG\n          src={block.blockPictogram.url}\n          className={styles.blockHeaderPicto}\n          beforeInjection={svg => svg.setAttribute(\"aria-label\", block.blockPictogram.alt || \"\")}\n        />\n        <h3 className={blockStyles.title}>{block.title}</h3>\n      </div>\n      <div className={styles.form}>\n        <div className={styles.formPart}>\n          <div className={styles.field}>\n            <label htmlFor=\"departureInput\">{block.departureLabel}</label>\n            <div className={styles.inputWithIcons}>\n              <Autocomplete\n                onChange={selectStartStop}\n                suggestFunction={getStartStop}\n                toLabel={toLabel}\n                id=\"departureInput\"\n                placeholder={departureCoord ? block.geolocationLabel : block.departurePlaceholder}\n                isItineraryForm={true}\n                value={switchedStart ? switchedStart : departureCoord ? departureCoord : \"\"}\n              />\n              <button\n                className={styles.inputIcon}\n                onKeyPress={handleGeoLoc(\"departure\")}\n                onClick={handleGeoLoc(\"departure\")}\n                type=\"button\"\n              >\n                <ReactSVG\n                  src={block.geolocationIcon.url}\n                  className={styles.inputWithIcons}\n                  beforeInjection={svg => svg.setAttribute(\"aria-label\", block.geolocationIcon.alt || \"\")}\n                />\n              </button>\n              <button\n                className={styles.inputIcon}\n                id=\"activateSpeechButtonDeparture\"\n                onKeyPress={() => setIsListeningDeparture(prevState => !prevState)}\n                onClick={() => setIsListeningDeparture(prevState => !prevState)}\n                type=\"button\"\n              >\n                <ReactSVG\n                  src={block.microphonePictogram.url}\n                  className={styles.inputWithIcons}\n                  beforeInjection={svg => svg.setAttribute(\"aria-label\", block.micArrivalAltText || \"\")}\n                />\n              </button>\n            </div>\n            {invalidDeparture && <div className={styles.errorMessage}>{invalidDeparture}</div>}\n            <input\n              type=\"hidden\"\n              name=\"departure\"\n              value={\n                !departureCoord\n                  ? listStartStops && listStartStops.Id\n                    ? listStartStops.Id + \"#\" + listStartStops.Name + \"#\" + listStartStops.PointType\n                    : listStartStops && listStartStops[0] && listStartStops[0].Id\n                      ? listStartStops[0].Id + \"#\" + listStartStops[0].Name + \"#\" + listStartStops[0].PointType\n                      : null\n                  : `coords#${block.geolocationLabel}#${departureCoord.latitude}#${departureCoord.longitude}`\n              }\n            />\n          </div>\n        </div>\n        <button className={styles.switchButton} onClick={handleSwitch}>\n          <ReactSVG\n            src={block.swapDepartureArrivalIcon.url}\n            className={styles.inputWithIcons}\n            beforeInjection={svg => svg.setAttribute(\"aria-label\", block.swapDepartureArrivalIcon.alt || \"\")}\n          />\n        </button>\n        <div className={styles.formPart}>\n          <div className={styles.field}>\n            <label htmlFor=\"arrivalInput\">{block.arrivalLabel}</label>\n            <div className={styles.inputWithIcons}>\n              <Autocomplete\n                onChange={selectEndStop}\n                suggestFunction={getEndStop}\n                toLabel={toLabel}\n                id=\"arrivalInput\"\n                placeholder={arrivalCoord ? block.geolocationLabel : block.arrivalPlaceholder}\n                title=\"placeholder\"\n                isItineraryForm={true}\n                value={switchedEnd ? switchedEnd : arrivalCoord ? arrivalCoord : \"\"}\n              />\n              <button\n                className={styles.inputIcon}\n                onKeyPress={handleGeoLoc(\"arrival\")}\n                onClick={handleGeoLoc(\"arrival\")}\n                type=\"button\"\n              >\n                <ReactSVG\n                  src={block.geolocationIcon.url}\n                  className={styles.inputWithIcons}\n                  beforeInjection={svg => svg.setAttribute(\"aria-label\", block.geolocationIcon.alt || \"\")}\n                />\n              </button>\n              <button\n                className={styles.inputIcon}\n                id=\"activateSpeechButtonArrival\"\n                onKeyPress={() => setIsListeningArrival(prevState => !prevState)}\n                onClick={() => setIsListeningArrival(prevState => !prevState)}\n                type=\"button\"\n              >\n                <ReactSVG\n                  src={block.microphonePictogram.url}\n                  className={styles.inputWithIcons}\n                  beforeInjection={svg => svg.setAttribute(\"aria-label\", block.micArrivalAltText || \"\")}\n                />\n              </button>\n            </div>\n            {invalidArrival && <div className={styles.errorMessage}>{invalidArrival}</div>}\n            <input\n              type=\"hidden\"\n              name=\"arrival\"\n              value={\n                !arrivalCoord\n                  ? listEndStops && listEndStops.Id\n                    ? listEndStops.Id + \"#\" + listEndStops.Name + \"#\" + listEndStops.PointType\n                    : listEndStops && listEndStops[0] && listEndStops[0].Id\n                      ? listEndStops[0].Id + \"#\" + listEndStops[0].Name + \"#\" + listEndStops[0].PointType\n                      : null\n                  : `coords#${block.geolocationLabel}#${arrivalCoord.latitude}#${arrivalCoord.longitude}`\n              }\n            />\n          </div>\n        </div>\n      </div>\n\n      <button\n        className={`${styles.searchButton} ${inputsStyles.primaryButton}`}\n        type=\"submit\"\n        onClick={() =>\n          pushGtmEvent(\n            \"eventga\",\n            \"Homepage - Itinerary Search\",\n            listStartStops && listStartStops.Name ? listStartStops.Name : \"\",\n            listEndStops && listEndStops.Name ? listEndStops.Name : \"\"\n          )\n        }\n      >\n        {block.searchButtonLabel}\n      </button>\n    </form>\n  )\n}\n\nexport const fragments = graphql`\n  fragment LePiloteItineraryBlockFields on DatoCmsLePiloteItineraryBlock {\n    __typename\n    id\n    title\n    blockPictogram {\n      alt\n      url\n    }\n    departureLabel\n    departurePlaceholder\n    arrivalLabel\n    arrivalPlaceholder\n    micDepartureAltText\n    micArrivalAltText\n    microphonePictogram {\n      url\n    }\n    geolocationIcon {\n      alt\n      url\n    }\n    geolocationLabel\n    swapDepartureArrivalIcon {\n      alt\n      url\n    }\n    positionErrorMessage\n    searchButtonLabel\n    resultsPage {\n      slug\n    }\n  }\n`\n\nexport default LePiloteItineraryBlock\n","// extracted by mini-css-extract-plugin\nexport var blockHeader = \"le-pilote-next-trips-search-block-module--blockHeader--1bc6b\";\nexport var blockPicto = \"le-pilote-next-trips-search-block-module--blockPicto--b4711\";\nexport var field = \"le-pilote-next-trips-search-block-module--field--09d50\";\nexport var form = \"le-pilote-next-trips-search-block-module--form--f7c51\";\nexport var formPart = \"le-pilote-next-trips-search-block-module--formPart--c341b\";\nexport var searchButton = \"le-pilote-next-trips-search-block-module--searchButton--1f6f6\";\nexport var title = \"le-pilote-next-trips-search-block-module--title--9a454\";","import React, { useEffect, useRef, useState } from \"react\"\nimport { ReactSVG } from \"react-svg\"\nimport { graphql } from \"gatsby\"\nimport { LePiloteNextTripsSearchBlockFieldsFragment } from \"../../../../graphql-types\"\nimport * as styles from \"./le-pilote-next-trips-search-block.module.scss\"\nimport * as globalBlockStyles from \"../main-blocks/main-blocks.module.scss\"\nimport * as blockStyles from \"../custom-block/custom-block.module.scss\"\nimport * as inputsStyles from \"../../layout/inputs.module.scss\"\nimport Autocomplete from \"../../autocomplete/autocomplete\"\nimport { getStopsFromApi } from \"../../../api/le-pilote-api\"\n\ntype RenderProps = {\n  block: LePiloteNextTripsSearchBlockFieldsFragment\n  intersectionRatioCallback: (ratio: number) => void\n}\n\nconst LePiloteNextTripsSearchBlock: React.FC<RenderProps> = ({ block, intersectionRatioCallback }) => {\n  const component = useRef<HTMLFormElement>()\n  const observer = useRef<IntersectionObserver>()\n  const [stops, setStops] = useState([])\n  const [realStops, setRealStops] = useState(null)\n\n  useEffect(() => {\n    if (intersectionRatioCallback) {\n      if (!(\"IntersectionObserver\" in window)) {\n        return\n      }\n      const options = { threshold: [0.2, 0.4, 0.6, 0.8, 1.0] }\n      observer.current = new IntersectionObserver(entries => {\n        intersectionRatioCallback(entries[entries.length - 1].intersectionRatio)\n      }, options)\n      observer.current.observe(component.current)\n      return () => observer.current.disconnect()\n    }\n  }, [])\n\n  const search = <T,>(query: string, elements: T[], toLabelFn: (element: T) => string): T[] => {\n    if (elements) {\n      return elements.filter(result => toLabelFn(result).toLowerCase().indexOf(query.toLowerCase()) !== -1)\n    }\n  }\n  const toLabel = element => (element ? element.Name : \"\")\n\n  const formatStopsResults = stopsResults => {\n    if (stopsResults) {\n      return stopsResults.filter(\n        (ele, index) => index === stopsResults.findIndex(elem => elem.LogicalId === ele.LogicalId)\n      )\n    } else {\n      return []\n    }\n  }\n\n  const searchAllTypeTripPoints = query => {\n    if (query) {\n      let cleanQuery = query.trim()\n      let tmpStops\n      ;(async () => {\n        tmpStops = await getStopsFromApi(cleanQuery)\n        setStops(tmpStops)\n      })()\n      const completeResults = formatStopsResults(stops)\n      setRealStops(completeResults)\n      return search(cleanQuery, completeResults, toLabel)\n    }\n    return []\n  }\n\n  return (\n    <form\n      className={`${blockStyles.block} ${globalBlockStyles.mainBlocksCard}`}\n      ref={component}\n      method=\"get\"\n      action={`/${block.resultsPage.slug}`}\n    >\n      <div className={styles.blockHeader}>\n        {block.pictogram.format === \"svg\" ? (\n          <ReactSVG\n            src={block.pictogram.url}\n            className={styles.blockPicto}\n            beforeInjection={svg => svg.setAttribute(\"aria-label\", block.pictogram.alt || \"\")}\n          />\n        ) : (\n          <img src={block.pictogram.url} className={styles.blockPicto} alt={block.pictogram.alt || \"\"} />\n        )}\n        <div className={styles.title}>{block.title}</div>\n      </div>\n      <div className={styles.form}>\n        <div className={styles.formPart}>\n          <div className={styles.field}>\n            <label htmlFor=\"trippoint\">{block.trippointFieldLabel}</label>\n            <Autocomplete\n              onChange={setRealStops}\n              suggestFunction={searchAllTypeTripPoints}\n              toLabel={toLabel}\n              id=\"trippoint\"\n              placeholder={block.trippointFieldPlaceholder}\n            />\n            <input\n              type=\"hidden\"\n              name=\"search\"\n              value={\n                (realStops && realStops.LogicalId + \"#\" + realStops.Name) ||\n                (realStops && realStops.Id + \"#\" + realStops.Name)\n              }\n            />\n          </div>\n        </div>\n      </div>\n      <button className={`${styles.searchButton} ${inputsStyles.primaryButton}`} type=\"submit\">\n        {block.searchButtonLabel}\n      </button>\n    </form>\n  )\n}\n\nexport const fragments = graphql`\n  fragment LePiloteNextTripsSearchBlockFields on DatoCmsLePiloteNextTripsSearchBlock {\n    __typename\n    id\n    title\n    pictogram {\n      alt\n      format\n      url\n    }\n    trippointFieldLabel\n    trippointFieldPlaceholder\n    searchButtonLabel\n    resultsPage {\n      slug\n    }\n  }\n`\nexport default LePiloteNextTripsSearchBlock\n","// extracted by mini-css-extract-plugin\nexport var block = \"traffic-parent-block-module--block--73d61\";\nexport var blockHeader = \"traffic-parent-block-module--blockHeader--c846c\";\nexport var blockPicto = \"traffic-parent-block-module--blockPicto--6c766\";\nexport var customBlock = \"traffic-parent-block-module--customBlock--756fe\";\nexport var image = \"traffic-parent-block-module--image--c4cda\";\nexport var infoTrafficBlock = \"traffic-parent-block-module--infoTrafficBlock--e87c5\";\nexport var link = \"traffic-parent-block-module--link--ce4fb\";\nexport var linkTraffic = \"traffic-parent-block-module--linkTraffic--6cea2\";\nexport var myContainer = \"traffic-parent-block-module--myContainer--e272c\";\nexport var selectedButton = \"traffic-parent-block-module--selectedButton--ba244\";\nexport var svgImage = \"traffic-parent-block-module--svgImage--c30b2\";\nexport var tabButtonsContainer = \"traffic-parent-block-module--tabButtonsContainer--1141f\";\nexport var title = \"traffic-parent-block-module--title--c202d\";\nexport var trafficStatusLabel = \"traffic-parent-block-module--trafficStatusLabel--d98b2\";\nexport var unselectedButton = \"traffic-parent-block-module--unselectedButton--96f45\";","// extracted by mini-css-extract-plugin\nexport var buttonNoStyle = \"traffic-blocks-module--buttonNoStyle--15468\";\nexport var controls = \"traffic-blocks-module--controls--d29aa\";\nexport var customBlockArrows = \"traffic-blocks-module--customBlockArrows--b5b84\";\nexport var detailsCard = \"traffic-blocks-module--detailsCard--e16f4\";\nexport var detailsCardBody = \"traffic-blocks-module--detailsCardBody--b22f3\";\nexport var detailsCardBodyLePilote = \"traffic-blocks-module--detailsCardBodyLePilote--38dbe\";\nexport var detailsCardBodyWrapper = \"traffic-blocks-module--detailsCardBodyWrapper--cb57c\";\nexport var detailsCardHeader = \"traffic-blocks-module--detailsCardHeader--0d26c\";\nexport var detailsCardHeaderContent = \"traffic-blocks-module--detailsCardHeaderContent--ee3f0\";\nexport var detailsCardHeaderTitle = \"traffic-blocks-module--detailsCardHeaderTitle--af88f\";\nexport var exitButton = \"traffic-blocks-module--exitButton--3f922\";\nexport var exitIcon = \"traffic-blocks-module--exitIcon--ad0e0\";\nexport var exitIconContainer = \"traffic-blocks-module--exitIconContainer--f8195\";\nexport var gridBlocks = \"traffic-blocks-module--gridBlocks--c98a1\";\nexport var image = \"traffic-blocks-module--image--fbbda\";\nexport var infoTrafficTitle = \"traffic-blocks-module--infoTrafficTitle--52841\";\nexport var lePiloteImage = \"traffic-blocks-module--lePiloteImage--2ea25\";\nexport var oneGridBlock = \"traffic-blocks-module--oneGridBlock--9b56e\";\nexport var only4 = \"traffic-blocks-module--only4--f660d\";\nexport var secondaryBlock = \"traffic-blocks-module--secondaryBlock--2fc79\";\nexport var secondaryBlocks = \"traffic-blocks-module--secondaryBlocks--3593c\";\nexport var shortDescription = \"traffic-blocks-module--shortDescription--ad0a2\";\nexport var slides = \"traffic-blocks-module--slides--de013\";\nexport var svgImage = \"traffic-blocks-module--svgImage--85e5c\";\nexport var textInPlaceOfImage = \"traffic-blocks-module--textInPlaceOfImage--b9d87\";","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAOCAYAAADwikbvAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAADlSURBVHgBpZIxDoJAEEX/rCRacgSO4BHkCN5AOkvsLK2MJaWJhd6AI8AROAJHoNCoCTgyiyQI7MbEKQjZnfd2ZmdpG649cHkGOcEhOuawxC4M3QdfY0W02UenTGkQWICrRIss4J1vieQyszBQciJAOcCeSdCCBJ5LLpOzlHWST1N6lWiBiGjity30we4etfYxwQyzwgR+wWMCBgoTOICHAp0yCjYX9kcoW9l1WZltCsoESqlTKn2b4IdRrdwnO0l9ecNR2cA2TILP8zSDGo4uRbcF5jJuepbnSUhNYF9Q/6YvokDW3j2vwCcw+RPiAAAAAElFTkSuQmCC\"","import React from \"react\"\n\nexport const ArrowLeft = () => (\n  <svg width=\"23\" height=\"23\" viewBox=\"0 0 23 23\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden={true}>\n    <path\n      d=\"M8.40007 10.9138L16.1973 8.13716L15.6323 6.47888L7.83505 9.37124C7.04402 9.71832 6.479 10.451 6.479 11.338C6.479 12.225 7.04402 12.9963 7.83505 13.3048L15.6323 16.1972L16.1973 14.5389L8.40007 11.7237C8.24939 11.6466 8.17406 11.4923 8.17406 11.2995C8.17406 11.1066 8.24939 10.991 8.40007 10.9138Z\"\n      fill=\"white\"\n    />\n  </svg>\n)\n\nexport const ArrowRight = () => (\n  <svg width=\"23\" height=\"23\" viewBox=\"0 0 23 23\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden={true}>\n    <path\n      d=\"M14.5999 12.0862L6.80269 14.8628L7.3677 16.5211L15.165 13.6288C15.956 13.2817 16.521 12.549 16.521 11.662C16.521 10.775 15.956 10.0037 15.165 9.69516L7.3677 6.80281L6.80269 8.46109L14.5999 11.2763C14.7506 11.3534 14.8259 11.5077 14.8259 11.7005C14.8259 11.8934 14.7506 12.009 14.5999 12.0862Z\"\n      fill=\"white\"\n    />\n  </svg>\n)\n\nexport const Pause = () => (\n  <svg width=\"23\" height=\"30\" viewBox=\"0 0 23 30\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden={true}>\n    <line x1=\"3\" x2=\"3\" y2=\"30\" stroke=\"white\" strokeWidth=\"6\" />\n    <line x1=\"20\" x2=\"20\" y2=\"30\" stroke=\"white\" strokeWidth=\"6\" />\n  </svg>\n)\n","// extracted by mini-css-extract-plugin\nexport var blockContent = \"traffic-block-module--blockContent--f94ff\";\nexport var buttonNoStyle = \"traffic-block-module--buttonNoStyle--8b186\";\nexport var linePicto = \"traffic-block-module--linePicto--5deba\";\nexport var perturbationPictogram = \"traffic-block-module--perturbationPictogram--05c50\";\nexport var pictoChild = \"traffic-block-module--pictoChild--08909\";\nexport var pictoChildSvg = \"traffic-block-module--pictoChildSvg--da07d\";\nexport var trafficBlock = \"traffic-block-module--trafficBlock--03e79\";","import React from \"react\"\nimport * as styles from \"../traffic-block/traffic-block.module.scss\"\n\ntype RenderProps = {\n  block: any\n  onPerturbationClicked: (event) => void\n}\n\nconst LePiloteTrafficBlock: React.FC<RenderProps> = ({ block, onPerturbationClicked }) => {\n  const linesWithUniqueDisruptions = block.map(lineWithTrafficInfos => {\n    const disruptions = lineWithTrafficInfos.traffic.reduce((trafficInfos, traffic) => {\n      trafficInfos.set(traffic.DisruptionType.Code, traffic)\n      return trafficInfos\n    }, new Map<string, Object>())\n    return {\n      line: lineWithTrafficInfos,\n      disruptions: Array.from(disruptions.values()),\n    }\n  })\n\n  return (\n    <ul className={styles.trafficBlock}>\n      {linesWithUniqueDisruptions.map(item => (\n        <li className={styles.blockContent} key={item.line.line.Name}>\n          <button\n            id={`le-pilote-traffic-block-button-${item.line.line.Id}`}\n            className={styles.buttonNoStyle}\n            onClick={() => onPerturbationClicked(item.line.line.Id)}\n            key={item.line.line.Id}\n          >\n            {item.line.line.icone ? (\n              <img src={item.line.line.icone.url} alt={item.line.line.Code || \"\"} />\n            ) : (\n              item.line.line.Code\n            )}\n          </button>\n        </li>\n      ))}\n    </ul>\n  )\n}\n\nexport default LePiloteTrafficBlock\n","import React, { useRef, useEffect, useState } from \"react\"\nimport * as styles from \"../traffic-block/traffic-blocks.module.scss\"\nimport sanitizeHtml from \"sanitize-html\"\nimport cross from \"../../../../static/images/vector.png\"\nimport { ArrowLeft, ArrowRight } from \"../../layout/icons\"\nimport TrafficBlock from \"./le-pilote-traffic-block\"\n\ntype RenderProps = {\n  blocks: any\n  previousLabel: string\n  nextLabel: string\n  closeButtonLabel: string\n}\n\nconst LePiloteTrafficBlocks: React.FC<RenderProps> = ({ blocks, previousLabel, nextLabel, closeButtonLabel }) => {\n  const container = useRef<HTMLUListElement>(null)\n  const openTrafficIdRef = useRef<HTMLDivElement>()\n  const scrollToNextItem = () => {\n    //myTrafficData\n    const itemWidth = container.current.children[0].clientWidth\n    container.current.scrollBy({ left: itemWidth, top: 0, behavior: \"smooth\" })\n  }\n\n  const scrollToPreviousItem = () => {\n    const itemWidth = container.current.children[0].clientWidth\n    container.current.scrollBy({ left: -itemWidth, top: 0, behavior: \"smooth\" })\n  }\n\n  const [tab, setTab] = useState(true)\n  const [trafficId, setId] = useState(\"\")\n  //const [myTrafficData, setTrafficData] = useState([])\n\n  useEffect(() => {}, [tab, trafficId])\n\n  const handleChildClick = event => {\n    setTab(false)\n    setId(event)\n    setTimeout(focusEventTitle)\n  }\n\n  const focusEventTitle = () => {\n    if (typeof window === \"undefined\" || !openTrafficIdRef.current) {\n      return\n    }\n    openTrafficIdRef.current.focus()\n  }\n\n  const exitTrafficDetails = () => {\n    setTab(true)\n    setTimeout(() => focusPreviouslyOpenInfoTraffic(trafficId))\n  }\n\n  const focusPreviouslyOpenInfoTraffic = id => {\n    if (typeof window === \"undefined\" || !id) {\n      return\n    }\n    document.getElementById(`le-pilote-traffic-block-button-${id}`).focus()\n  }\n\n  const splitArrayIntoChunksOfLen = (arr: [], len: number) => {\n    let chunks = [],\n      i = 0,\n      n = arr.length\n    while (i < n) {\n      chunks.push(arr.slice(i, (i += len)))\n    }\n    return chunks\n  }\n\n  const perturbationGrids = splitArrayIntoChunksOfLen(blocks, 12)\n\n  let trafficData: any\n  perturbationGrids.forEach(element => {\n    element.map(item => {\n      if (item.line.Id == trafficId) {\n        trafficData = item\n      }\n    })\n  })\n\n  return tab ? (\n    <div className={blocks.length > 12 ? styles.gridBlocks : styles.oneGridBlock}>\n      {blocks.length > 12 && (\n        <div className={styles.controls}>\n          <button\n            aria-label={previousLabel}\n            title={previousLabel}\n            onClick={scrollToPreviousItem}\n            className={styles.customBlockArrows}\n          >\n            <ArrowLeft />\n          </button>\n        </div>\n      )}\n\n      <ul className={styles.secondaryBlocks} ref={container}>\n        {perturbationGrids.map((block, index) => (\n          <li className={styles.secondaryBlock} key={index}>\n            <TrafficBlock block={block} onPerturbationClicked={handleChildClick} />\n          </li>\n        ))}\n      </ul>\n      {blocks.length > 12 && (\n        <div className={styles.controls}>\n          <button\n            aria-label={nextLabel}\n            title={nextLabel}\n            onClick={scrollToNextItem}\n            className={styles.customBlockArrows}\n          >\n            <ArrowRight />\n          </button>\n        </div>\n      )}\n    </div>\n  ) : (\n    <div className={styles.detailsCard}>\n      <div className={styles.detailsCardHeader}>\n        <div className={styles.detailsCardHeaderContent}>\n          {trafficData.line.icone ? (\n            <img\n              src={trafficData.line.icone.url}\n              className={`${styles.image} ${styles.lePiloteImage}`}\n              alt={trafficData.line.Code || \"\"}\n            />\n          ) : (\n            <div className={styles.textInPlaceOfImage}>{trafficData.line.Code}</div>\n          )}\n          <h4 className={styles.detailsCardHeaderTitle}>{trafficData.line.Name}</h4>\n          <div className={styles.exitIconContainer}>\n            <button className={styles.exitButton} onClick={exitTrafficDetails}>\n              <img src={cross} className={styles.exitIcon} alt={closeButtonLabel} />\n            </button>\n          </div>\n        </div>\n        <div className={styles.detailsCardBodyWrapper} tabIndex={0}>\n          {trafficData.traffic.map((item, index) => (\n            <div key={index}>\n              <div className={`${styles.detailsCardBody} ${styles.detailsCardBodyLePilote}`}>\n                <p className={styles.infoTrafficTitle}>{item.Name}</p>\n              </div>\n              <div\n                className={styles.shortDescription}\n                dangerouslySetInnerHTML={{ __html: sanitizeHtml(item.Description) }}\n              />\n            </div>\n          ))}\n        </div>\n      </div>\n    </div>\n  )\n}\n\nexport default LePiloteTrafficBlocks\n","import { graphql } from \"gatsby\"\nimport React, { useEffect, useRef, useState } from \"react\"\nimport { ReactSVG } from \"react-svg\"\nimport * as config from \"../../../../config\"\nimport {\n  LePiloteInfoTrafficLinesIconsFieldsFragment,\n  LePiloteTrafficInfoBlockFieldsFragment,\n  SecondaryBlocksLabelFieldsFragment,\n} from \"../../../../graphql-types\"\nimport { getInfoTraffic, getLines } from \"../../../api/le-pilote/le-pilote-info-traffic-api\"\nimport { pushGtmEvent } from \"../../../gtm/interaction-event\"\nimport { useIsToday } from \"../../../hooks\"\nimport * as inputsStyles from \"../../layout/inputs.module.scss\"\nimport * as globalBlockStyles from \"../main-blocks/main-blocks.module.scss\"\nimport * as styles from \"../traffic-block/traffic-parent-block.module.scss\"\nimport LePiloteTrafficBlocks from \"./le-pilote-traffic-blocks\"\n\nexport enum SelectedTab {\n  NOW = \"now\",\n  TOMORROW = \"tomorrow\",\n}\n\ntype RenderProps = {\n  block: LePiloteTrafficInfoBlockFieldsFragment\n  isHighlighted: boolean\n  intersectionRatioCallback: (ratio: number) => void\n  linesIconsData: LePiloteInfoTrafficLinesIconsFieldsFragment[]\n  labels: SecondaryBlocksLabelFieldsFragment\n}\n\nconst LePiloteInfoTrafficBlock: React.FC<RenderProps> = ({\n  block,\n  intersectionRatioCallback,\n  linesIconsData,\n  labels,\n}) => {\n  const component = useRef<HTMLElement>()\n  const observer = useRef<IntersectionObserver>()\n  const [tabState, setSelectedTab] = useState<SelectedTab>(SelectedTab.NOW)\n  const nowBlockRef = useRef<HTMLDivElement>()\n  const tomorrowBlockRef = useRef<HTMLDivElement>()\n\n  const [linesWithInfoTraffic, setLinesWithInfoTraffic] = useState(null)\n\n  useEffect(() => {\n    getExternalData(config.locale)\n  }, [])\n\n  useEffect(() => {\n    if (!(\"IntersectionObserver\" in window)) {\n      return\n    }\n    const options = { threshold: [0.2, 0.4, 0.6, 0.8, 1.0] }\n    observer.current = new IntersectionObserver(entries => {\n      intersectionRatioCallback(entries[entries.length - 1].intersectionRatio)\n    }, options)\n    observer.current.observe(component.current)\n\n    return () => observer.current.disconnect()\n  }, [])\n\n  async function getExternalData(lang: string) {\n    const lines = await getLines(lang)\n    const traffic = await getInfoTraffic(lang)\n    const formattedData = parseTrafficData(lines.Data, traffic.Data)\n    if (formattedData) {\n      formattedData[\"today\"].map(x => {\n        if (x.traffic && x.traffic.length && x.traffic.length > 1) {\n          x.traffic = [...Array.from(new Set(x.traffic))]\n        }\n      })\n      formattedData[\"tomorrow\"].map(x => {\n        if (x.traffic && x.traffic.length && x.traffic.length > 1) {\n          x.traffic = [...Array.from(new Set(x.traffic))]\n        }\n      })\n    }\n    setLinesWithInfoTraffic(formattedData)\n    return formattedData\n  }\n\n  const getAllAffectedLines = infoTrafficData => {\n    const lines = []\n    infoTrafficData.map(infoTraffic => {\n      infoTraffic.DisruptedLines.map(line => lines.push(line))\n    })\n    return lines\n  }\n\n  const getInfoTrafficFormatted = (disruptedLines, infoTrafficData, linesDetails) => {\n    const myLinesWithTrafficToday = []\n    const myLinesWithTrafficTomorrow = []\n\n    disruptedLines.map(line => {\n      const infoTrafficArrayToday = []\n      const infoTrafficArrayTomorrow = []\n      infoTrafficData.map(infoTraffic => {\n        infoTraffic.DisruptedLines.map(subline => {\n          if (line.LineId === subline.LineId) {\n            if (useIsToday(infoTraffic.BeginValidityDate, infoTraffic.EndValidityDate)) {\n              const completeLineData = linesDetails.find(x => x.Id === line.LineId)\n              if (completeLineData) {\n                const icone = getLineIcon(completeLineData.Code)\n                completeLineData.icone = icone[0]\n                infoTrafficArrayToday.push(infoTraffic)\n                myLinesWithTrafficToday.push({\n                  line: completeLineData,\n                  traffic: infoTrafficArrayToday,\n                })\n              }\n            }\n            if (isTomorrow(infoTraffic.BeginValidityDate, infoTraffic.EndValidityDate)) {\n              const completeLineData = linesDetails.find(x => x.Id === line.LineId)\n              if (completeLineData) {\n                const icone = getLineIcon(completeLineData.Code)\n                completeLineData.icone = icone[0]\n                infoTrafficArrayTomorrow.push(infoTraffic)\n                myLinesWithTrafficTomorrow.push({\n                  line: completeLineData,\n                  traffic: infoTrafficArrayTomorrow,\n                })\n              }\n            }\n          }\n        })\n      })\n    })\n    const uniqueTrafficEntriesToday = deleteDuplicates(myLinesWithTrafficToday)\n    const uniqueTrafficEntriesTomorrow = deleteDuplicates(myLinesWithTrafficTomorrow)\n    return {\n      today: uniqueTrafficEntriesToday,\n      tomorrow: uniqueTrafficEntriesTomorrow,\n    }\n  }\n\n  const deleteDuplicates = (linesArray: any[]) =>\n    linesArray.filter((ele, index) => index === linesArray.findIndex(elem => elem.line === ele.line))\n\n  const parseTrafficData = (linesDetails: Array<any>, infoTrafficData: Array<any>): object => {\n    const disruptedLines = getAllAffectedLines(infoTrafficData)\n    return getInfoTrafficFormatted(disruptedLines, infoTrafficData, linesDetails)\n  }\n\n  const getLineIcon = lineCode => {\n    const lineCodeLowercase = lineCode.toLowerCase()\n    return linesIconsData.filter(\n      x => x.basename.endsWith(`${lineCodeLowercase}`) || x.basename.endsWith(`${lineCodeLowercase}-ineo`)\n    )\n  }\n\n  const getDate = (date: string) => parseInt(date.substring(date.lastIndexOf(\"(\") + 1, date.lastIndexOf(\")\")))\n\n  const isTomorrow = (min, max) => {\n    let date = new Date()\n    let tomorrow = new Date(date.getTime() + 24 * 60 * 60 * 1000)\n    tomorrow.setHours(0, 0, 0, 0)\n    const start = new Date(getDate(min))\n    const end = new Date(getDate(max))\n    return tomorrow.getTime() >= start.getTime() && tomorrow.getTime() <= end.getTime()\n  }\n\n  const handleTabChange = tabValue => {\n    if (tabValue == \"now\") {\n      setSelectedTab(SelectedTab.NOW)\n      if (typeof window !== \"undefined\") {\n        setTimeout(() => {\n          nowBlockRef.current && nowBlockRef.current.focus()\n        })\n      }\n    } else {\n      setSelectedTab(SelectedTab.TOMORROW)\n      if (typeof window !== \"undefined\") {\n        setTimeout(() => {\n          tomorrowBlockRef.current && tomorrowBlockRef.current.focus()\n        })\n      }\n    }\n  }\n\n  return linesWithInfoTraffic !== null ? (\n    <section className={`${styles.block} ${styles.customBlock} ${globalBlockStyles.mainBlocksCard}`} ref={component}>\n      <div className={styles.blockHeader}>\n        <ReactSVG\n          src={block.blockPictogram.url}\n          className={styles.blockPicto}\n          beforeInjection={svg => svg.setAttribute(\"aria-label\", block.blockPictogram.alt || \"\")}\n        />\n        <h3 className={styles.title}>{block.title}</h3>\n      </div>\n      <div className={styles.tabButtonsContainer}>\n        <button\n          className={tabState === SelectedTab.NOW ? styles.selectedButton : styles.unselectedButton}\n          aria-pressed={tabState === SelectedTab.NOW}\n          onClick={() => handleTabChange(SelectedTab.NOW)}\n        >\n          {block.firstTab}\n        </button>\n        <button\n          className={tabState === SelectedTab.TOMORROW ? styles.selectedButton : styles.unselectedButton}\n          aria-pressed={tabState === SelectedTab.TOMORROW}\n          onClick={() => handleTabChange(SelectedTab.TOMORROW)}\n        >\n          {block.secondTab}\n        </button>\n      </div>\n      {tabState === SelectedTab.NOW && (\n        <div className={styles.infoTrafficBlock} ref={nowBlockRef} tabIndex={-1}>\n          <div className={styles.myContainer}>\n            <LePiloteTrafficBlocks\n              blocks={linesWithInfoTraffic[\"today\"]}\n              previousLabel={labels.secondaryBlocksPreviousLabel}\n              nextLabel={labels.secondaryBlocksNextLabel}\n              closeButtonLabel={block.closeButtonLabel}\n            />\n          </div>\n        </div>\n      )}\n      {tabState === SelectedTab.TOMORROW && (\n        <div className={styles.infoTrafficBlock} ref={tomorrowBlockRef} tabIndex={-1}>\n          <div className={styles.myContainer}>\n            <LePiloteTrafficBlocks\n              blocks={linesWithInfoTraffic[\"tomorrow\"]}\n              previousLabel={labels.secondaryBlocksPreviousLabel}\n              nextLabel={labels.secondaryBlocksNextLabel}\n              closeButtonLabel={block.closeButtonLabel}\n            />\n          </div>\n        </div>\n      )}\n      <div className={styles.trafficStatusLabel}>{block.disruptedTrafficLabel}</div>\n      <a\n        className={`${styles.link} ${styles.linkTraffic} ${inputsStyles.primaryButton}`}\n        href={block.internalLink.slug}\n      >\n        {block.linkLabel}\n      </a>\n    </section>\n  ) : (\n    <section className={`${styles.block} ${styles.customBlock}`} ref={component}>\n      <h3 className={styles.title}>{block.title}</h3>\n      {block.image.format === \"svg\" ? (\n        <ReactSVG\n          src={block.image.url}\n          className={styles.svgImage}\n          beforeInjection={svg => svg.setAttribute(\"aria-label\", block.image.alt || \"\")}\n        />\n      ) : (\n        <img src={block.image.url} className={styles.image} alt={block.image.alt || \"\"} />\n      )}\n      <div className={styles.trafficStatusLabel}>{block.normalTrafficLabel}</div>\n      <a\n        className={`${styles.link} ${inputsStyles.primaryButton}`}\n        href={block.internalLink.slug}\n        onClick={() => pushGtmEvent(\"eventga\", \"Homepage\", \"Bloc Principal\", block.linkLabel)}\n      >\n        {block.linkLabel}\n      </a>\n    </section>\n  )\n}\n\nexport const fragments = graphql`\n  fragment LePiloteTrafficInfoBlockFields on DatoCmsLePiloteTrafficInfoBlock {\n    __typename\n    id\n    title\n    linkLabel\n    internalLink {\n      slug\n    }\n    firstTab\n    secondTab\n    disruptedTrafficLabel\n    normalTrafficLabel\n    closeButtonLabel\n    blockPictogram {\n      alt\n      url\n    }\n    image {\n      alt\n      format\n      url\n    }\n  }\n\n  fragment LePiloteInfoTrafficLinesIconsFields on DatoCmsAsset {\n    id\n    url\n    basename\n  }\n`\n\nexport default LePiloteInfoTrafficBlock\n","export default __webpack_public_path__ + \"static/timesheet-a46ac4895e1d7674de8d22c638250576.svg\";","// extracted by mini-css-extract-plugin\nexport var blockHeader = \"schedules-search-block-module--blockHeader--06415\";\nexport var blockHeaderPicto = \"schedules-search-block-module--blockHeaderPicto--3a212\";\nexport var errorMessage = \"schedules-search-block-module--errorMessage--9ef3d\";\nexport var field = \"schedules-search-block-module--field--1a221\";\nexport var form = \"schedules-search-block-module--form--9f29f\";\nexport var formPart = \"schedules-search-block-module--formPart--b7225\";\nexport var searchButton = \"schedules-search-block-module--searchButton--bf83d\";","import { graphql } from \"gatsby\"\nimport React, { useEffect, useRef, useState } from \"react\"\nimport { ReactSVG } from \"react-svg\"\nimport {\n  SchedulesSearchBlockFieldsFragment,\n  SchedulesSearchBlockLineFieldsFragment,\n  SchedulesSearchBlockMunicipalityFieldsFragment,\n} from \"../../../../graphql-types\"\nimport timesheet from \"../../../../static/images/timesheet.svg\"\nimport { pushGtmEvent } from \"../../../gtm/interaction-event\"\nimport Autocomplete from \"../../autocomplete/autocomplete\"\nimport * as inputsStyles from \"../../layout/inputs.module.scss\"\nimport * as blockStyles from \"../custom-block/custom-block.module.scss\"\nimport * as globalBlockStyles from \"../main-blocks/main-blocks.module.scss\"\nimport * as styles from \"./schedules-search-block.module.scss\"\n\ntype RenderProps = {\n  block: SchedulesSearchBlockFieldsFragment\n  lines: SchedulesSearchBlockLineFieldsFragment[]\n  intersectionRatioCallback: (ratio: number) => void\n  locale: string\n  defaultLocale: string\n}\n\ntype Line = SchedulesSearchBlockLineFieldsFragment\ntype Municipality = SchedulesSearchBlockMunicipalityFieldsFragment\n\nconst SchedulesSearchBlock: React.FC<RenderProps> = ({\n  block,\n  lines,\n  intersectionRatioCallback,\n  locale,\n  defaultLocale,\n}) => {\n  const component = useRef<HTMLFormElement>()\n  const observer = useRef<IntersectionObserver>()\n  useEffect(() => {\n    if (!(\"IntersectionObserver\" in window)) {\n      return\n    }\n    const options = { threshold: [0.2, 0.4, 0.6, 0.8, 1.0] }\n    observer.current = new IntersectionObserver(entries => {\n      intersectionRatioCallback(entries[entries.length - 1].intersectionRatio)\n    }, options)\n    observer.current.observe(component.current)\n    return () => observer.current.disconnect()\n  }, [])\n\n  const search = <T,>(query: string, elements: T[], toLabelFn: (element: T) => string): T[] => {\n    if (elements) {\n      return elements.filter(result => toLabelFn(result).toLowerCase().indexOf(query.toLowerCase()) !== -1)\n    }\n  }\n  const toLabel = element => (element ? element.name : \"\")\n\n  const [selectedLine, setSelectedLine] = useState(null)\n  const [selectedMunicipality, setSelectedMunicipality] = useState(null)\n  const [municipalityError, setMunicipalityError] = useState(false)\n  const [lineError, setLineError] = useState(false)\n\n  const linesWithSchedulesOrPlan = lines.filter(line => line.schedules.length > 0 || line.lineMap)\n\n  const searchLines = query => {\n    const filteredLines = filterLines(linesWithSchedulesOrPlan, selectedMunicipality)\n    if (!selectedLine) {\n      setLineError(true)\n    }\n    return search(query, filteredLines, toLabel)\n  }\n\n  const searchMunicipalities = query => {\n    const filteredMunicipalities = filterMunicipalities(linesWithSchedulesOrPlan, selectedLine)\n    if (!selectedMunicipality) {\n      setMunicipalityError(true)\n    }\n    return search(query, filteredMunicipalities, toLabel)\n  }\n\n  useEffect(() => {\n    if (selectedLine) {\n      setLineError(false)\n    }\n  }, [selectedLine])\n\n  useEffect(() => {\n    if (selectedMunicipality) {\n      setMunicipalityError(false)\n    }\n  }, [selectedMunicipality])\n\n  const slugLanguagePrefix = locale === defaultLocale ? \"\" : `/${locale}`\n  return (\n    <form\n      className={`${blockStyles.block} ${globalBlockStyles.mainBlocksCard}`}\n      ref={component}\n      method=\"get\"\n      action={`${slugLanguagePrefix}/${block.resultsPage.slug}#schedules-search-results`}\n    >\n      <div className={styles.blockHeader}>\n        <ReactSVG\n          src={timesheet}\n          className={styles.blockHeaderPicto}\n          beforeInjection={svg => svg.setAttribute(\"aria-hidden\", \"true\")}\n        />\n        <h3 className={blockStyles.title}>{block.title}</h3>\n      </div>\n      <div className={styles.form}>\n        {/* Lines */}\n        {block.searchType !== \"Par municipalité\" && (\n          <div className={styles.formPart}>\n            <div className={styles.field}>\n              <label htmlFor=\"linesInput\">{block.lineFieldLabel}</label>\n              <Autocomplete\n                onChange={setSelectedLine}\n                suggestFunction={searchLines}\n                toLabel={toLabel}\n                id=\"linesInput\"\n                placeholder={block.lineFieldPlaceholder}\n                title={block.lineFieldPlaceholder}\n              />\n              <input type=\"hidden\" name=\"line\" value={selectedLine?.id || \"\"} />\n              <div className={styles.errorMessage}>{lineError ? block.lineErrorMessage : null}</div>\n            </div>\n          </div>\n        )}\n\n        {/* Municipalities */}\n        {block.searchType !== \"Par ligne\" && (\n          <div className={styles.formPart}>\n            <div className={styles.field}>\n              <label htmlFor=\"municipalitiesInput\">{block.municipalityFieldLabel}</label>\n              <Autocomplete\n                onChange={setSelectedMunicipality}\n                suggestFunction={searchMunicipalities}\n                toLabel={toLabel}\n                id=\"municipalitiesInput\"\n                placeholder={block.municipalityFieldPlaceholder}\n                title={block.municipalityFieldPlaceholder}\n              />\n              <input type=\"hidden\" name=\"municipality\" value={selectedMunicipality?.id || \"\"} />\n              <div className={styles.errorMessage}>{municipalityError ? block.municipalityErrorMessage : null}</div>\n            </div>\n          </div>\n        )}\n      </div>\n\n      <button\n        className={`${styles.searchButton} ${inputsStyles.primaryButton}`}\n        type=\"submit\"\n        onClick={() =>\n          pushGtmEvent(\n            \"eventga\",\n            \"Homepage - Schedule Search\",\n            selectedLine?.name || \"\",\n            selectedMunicipality?.name || \"\"\n          )\n        }\n      >\n        {block.searchButtonLabel}\n      </button>\n    </form>\n  )\n}\n\nconst filterMunicipalities = (lines: Line[], selectedLine: Line | null): Municipality[] => {\n  return Array.from(\n    lines\n      .reduce((municipalities, line) => {\n        if (selectedLine && selectedLine.id !== line.id) {\n          return municipalities\n        }\n        line.municipalities.forEach(municipality => municipalities.set(municipality.id, municipality))\n        return municipalities\n      }, new Map<string, Municipality>())\n      .values()\n  ).sort((a, b) => (a.name > b.name ? 1 : b.name > a.name ? -1 : 0))\n}\n\nconst filterLines = (lines: Line[], selectedMunicipality: Municipality | null): Line[] => {\n  return lines.filter(line =>\n    line.municipalities.some(municipality => !selectedMunicipality || municipality.id === selectedMunicipality.id)\n  )\n}\n\nexport const fragments = graphql`\n  fragment SchedulesSearchBlockFields on DatoCmsSchedulesSearchBlock {\n    __typename\n    id\n    searchType\n    title\n    municipalityFieldLabel\n    municipalityFieldPlaceholder\n    lineFieldLabel\n    lineFieldPlaceholder\n    searchButtonLabel\n    resultsPage {\n      slug\n    }\n    lineErrorMessage\n    municipalityErrorMessage\n  }\n\n  fragment SchedulesSearchBlockLineFields on DatoCmsLine {\n    id\n    name\n    municipalities {\n      ...SchedulesSearchBlockMunicipalityFields\n    }\n    schedules {\n      id\n    }\n    lineMap {\n      url\n    }\n  }\n\n  fragment SchedulesSearchBlockMunicipalityFields on DatoCmsMunicipality {\n    id\n    name\n  }\n`\n\nexport default SchedulesSearchBlock\n","import { graphql } from \"gatsby\"\nimport React, { useEffect, useRef, useState } from \"react\"\nimport { TerDakarItinerarySearchBlockFieldsFragment } from \"../../../../graphql-types\"\nimport { useIsMobile } from \"../../../hooks\"\nimport * as blockStyles from \"../custom-block/custom-block.module.scss\"\nimport * as globalBlockStyles from \"../main-blocks/main-blocks.module.scss\"\nimport * as styles from \"./ter-dakar-itinerary-search-block.module.scss\"\n\ntype RenderProps = {\n  block: TerDakarItinerarySearchBlockFieldsFragment\n  isHighlighted: boolean\n  intersectionRatioCallback?: (ratio: number) => void\n}\n\nconst TerDakarItinerarySearchBlock: React.FC<RenderProps> = ({ block, isHighlighted, intersectionRatioCallback }) => {\n  const component = useRef<HTMLFormElement>()\n  const observer = useRef<IntersectionObserver>()\n  const isSmallMobile: boolean = useIsMobile(360)\n  const [dakarLoaded, setDakarLoaded] = useState(null)\n  const [dakarStyleChanged, setDakarStyleChanged] = useState(null)\n\n  useEffect(() => {\n    if (intersectionRatioCallback) {\n      if (!(\"IntersectionObserver\" in window)) {\n        return\n      }\n      const options = { threshold: [0.2, 0.4, 0.6, 0.8, 1.0] }\n      observer.current = new IntersectionObserver(entries => {\n        intersectionRatioCallback(entries[entries.length - 1].intersectionRatio)\n      }, options)\n      observer.current.observe(component.current)\n      return () => observer.current.disconnect()\n    }\n  }, [])\n\n  useEffect(() => {\n    if (typeof window === \"undefined\") {\n      return\n    }\n    const script = document.createElement(\"script\")\n    document.getElementsByTagName(\"body\")[0].appendChild(script)\n    script.async = true\n    script.type = \"text/javascript\"\n    script.src = `https://56.preprod-sim.instant-system.com/fr/widget/place-journey?token=${block.token}`\n  }, [])\n\n  useEffect(() => {\n    if (typeof window === \"undefined\" || dakarLoaded) {\n      return\n    }\n    const dakarWidget = document.getElementById(\"is-WidgetWrapper\")\n    dakarWidget.parentElement.style.zIndex = \"2\"\n    if (dakarWidget && dakarWidget.innerHTML) {\n      setDakarLoaded(true)\n    }\n  })\n\n  useEffect(() => {\n    if (dakarLoaded && !dakarStyleChanged) {\n      const widget = document.getElementsByClassName(\"is-Widget\")[0] as HTMLElement\n      const journey = document.getElementById(\"is-Journey\")\n      if (isSmallMobile) {\n        const journeyActionsArea = document.getElementById(\"is-Journey-MoreActionsArea\")\n        const journeyActionsAreaDatePreference = document.getElementById(\"is-Journey-MoreActionsArea-DatePreference\")\n        const journeyActionsAreaAdvancedSearch = document.getElementById(\"is-Journey-MoreActionsArea-AdvancedSearch\")\n        const journeySwapGroup = document.getElementById(\"is-Journey-SwapGroup\")\n        widget.style.minWidth = \"0px\"\n        widget.style.padding = \"0px\"\n        journey.style.paddingBottom = \"0px\"\n        journeyActionsArea.style.transform = \"translateX(10px)\"\n        journeyActionsAreaDatePreference.style.paddingRight = \"0px\"\n        journeyActionsAreaAdvancedSearch.style.paddingLeft = \"0px\"\n        journeyActionsAreaAdvancedSearch.style.transform = \"translateX(-10px)\"\n        journeySwapGroup.style.margin = \"0px\"\n      } else {\n        widget.style.minWidth = \"0px\"\n        journey.style.paddingBottom = \"0px\"\n      }\n      setDakarStyleChanged(true)\n    }\n  })\n\n  return (\n    <section\n      className={`${blockStyles.block} ${blockStyles.customBlock}${globalBlockStyles.mainBlocksCard}`}\n      ref={component}\n    >\n      <style>\n        {`\n          #is-Journey-MoreActionsArea {\n            margin: 0 -1.3rem;\n          }\n          #is-PlaceSubmitButton {\n            padding-top: 0 !important;\n          }\n        `}\n      </style>\n      <h3 className={styles.title}>{block.title}</h3>\n      <div className={styles.widgetWrapper} id=\"is-WidgetWrapper\" />\n    </section>\n  )\n}\n\nexport const fragments = graphql`\n  fragment TerDakarItinerarySearchBlockFields on DatoCmsTerDakarItinerarySearchBlock {\n    __typename\n    id\n    title\n    token\n  }\n`\nexport default TerDakarItinerarySearchBlock\n","// extracted by mini-css-extract-plugin\nexport var blockHeader = \"ter-dakar-itinerary-search-block-module--blockHeader--d37dd\";\nexport var title = \"ter-dakar-itinerary-search-block-module--title--90306\";\nexport var widgetWrapper = \"ter-dakar-itinerary-search-block-module--widgetWrapper--f7c81\";","export default __webpack_public_path__ + \"static/info_traffic_block_picto-e55d505eb85c545e5ec83a197d7c1a89.svg\";","import React from \"react\"\nimport * as styles from \"./traffic-block.module.scss\"\nimport { ReactSVG } from \"react-svg\"\n\ntype RenderProps = {\n  block: any\n  onPerturbationClicked: (lineId: string) => void\n}\n\nconst TrafficBlock: React.FC<RenderProps> = ({ block, onPerturbationClicked }) => {\n  const linesWithUniqueDisruptions = block.map(lineWithTrafficInfos => {\n    const disruptions = lineWithTrafficInfos.traffic.reduce((trafficInfos, traffic) => {\n      trafficInfos.set(traffic.disruptionType, traffic)\n      return trafficInfos\n    }, new Map<string, Traffic>())\n    return {\n      line: lineWithTrafficInfos,\n      disruptions: Array.from(disruptions.values()),\n    }\n  })\n\n  return (\n    <ul className={styles.trafficBlock}>\n      {linesWithUniqueDisruptions.map((item, index) => {\n        return (\n          <li className={styles.blockContent} key={item.line.line.name}>\n            <button\n              className={styles.buttonNoStyle}\n              key={item.line.line.id}\n              id={\"traffic-block-button-\" + item.line.line.id}\n              onClick={() => onPerturbationClicked(item.line.line.id)}\n            >\n              <img\n                className={styles.linePicto}\n                src={item.line.line.pictogram.url}\n                alt={item.line.line.pictogram.alt}\n                key={index}\n              />\n              <span className={styles.perturbationPictogram}>\n                {item.disruptions.map((element, idx) => {\n                  return (\n                    element.pictogram.format === \"svg\" && (\n                      <ReactSVG\n                        src={element.pictogram.url}\n                        className={styles.pictoChildSvg}\n                        beforeInjection={svg => svg.setAttribute(\"aria-label\", element.pictogram.alt || \"\")}\n                        wrapper={\"span\"}\n                        key={idx}\n                      />\n                    )\n                  )\n                })}\n              </span>\n            </button>\n          </li>\n        )\n      })}\n    </ul>\n  )\n}\n\nexport default TrafficBlock\n","import React, { useRef, useState } from \"react\"\nimport { ReactSVG } from \"react-svg\"\nimport sanitizeHtml from \"sanitize-html\"\nimport cross from \"../../../../static/images/vector.png\"\nimport { ArrowLeft, ArrowRight } from \"../../layout/icons\"\nimport TrafficBlock from \"./traffic-block\"\nimport * as styles from \"./traffic-blocks.module.scss\"\nimport { LineRelatedToTraffic } from \"./traffic-parent-block\"\n\ntype RenderProps = {\n  blocks: LineRelatedToTraffic[]\n  label: string\n  previousLabel: string\n  nextLabel: string\n  closeButtonLabel: string\n}\n\nconst TrafficBlocks: React.FC<RenderProps> = ({ blocks, label, previousLabel, nextLabel, closeButtonLabel }) => {\n  const container = useRef<HTMLUListElement>(null)\n  const scrollToNextItem = () => {\n    const itemWidth = container.current.children[0].clientWidth\n    container.current.scrollBy({ left: itemWidth, top: 0, behavior: \"smooth\" })\n  }\n  const scrollToPreviousItem = () => {\n    const itemWidth = container.current.children[0].clientWidth\n    container.current.scrollBy({ left: -itemWidth, top: 0, behavior: \"smooth\" })\n  }\n\n  const [tab, setTab] = useState(true)\n  const [trafficId, setTrafficId] = useState(\"\")\n  const openTrafficIdRef = useRef<HTMLDivElement>()\n\n  const handleChildClick = (lineId: string) => {\n    setTab(false)\n    setTrafficId(lineId)\n    setTimeout(focusEventTitle)\n  }\n\n  const focusEventTitle = () => {\n    if (typeof window === \"undefined\" || !openTrafficIdRef.current) {\n      return\n    }\n    openTrafficIdRef.current.focus()\n  }\n\n  const exitTrafficDetails = () => {\n    setTab(true)\n    setTimeout(() => focusPreviouslyOpenInfoTraffic(trafficId))\n  }\n\n  const focusPreviouslyOpenInfoTraffic = (id: string) => {\n    if (typeof window === \"undefined\" || !id) {\n      return\n    }\n    document.getElementById(`traffic-block-button-${id}`).focus()\n  }\n\n  const splitArrayIntoChunksOfLen = (arr: LineRelatedToTraffic[], len: number) => {\n    let chunks = [],\n      i = 0,\n      n = arr.length\n    while (i < n) {\n      chunks.push(arr.slice(i, (i += len)))\n    }\n    return chunks\n  }\n\n  const perturbationGrids = splitArrayIntoChunksOfLen(blocks, 8)\n\n  let trafficData: any\n\n  perturbationGrids.forEach(element => {\n    element.map(item => {\n      if (item.line.id === trafficId) {\n        trafficData = item\n      }\n    })\n  })\n\n  return tab ? (\n    <div className={blocks.length > 8 ? styles.gridBlocks : styles.oneGridBlock}>\n      {blocks.length > 8 && (\n        <div className={styles.controls}>\n          <button\n            aria-label={previousLabel}\n            title={previousLabel}\n            onClick={scrollToPreviousItem}\n            className={styles.customBlockArrows}\n          >\n            <ArrowLeft />\n          </button>\n        </div>\n      )}\n\n      <ul aria-labelledby={label} className={styles.secondaryBlocks} ref={container}>\n        {perturbationGrids.map((block, index) => {\n          return (\n            <li className={styles.secondaryBlock} key={index}>\n              <TrafficBlock block={block} onPerturbationClicked={handleChildClick} />\n            </li>\n          )\n        })}\n      </ul>\n      {blocks.length > 8 && (\n        <div className={styles.controls}>\n          <button\n            aria-label={nextLabel}\n            title={nextLabel}\n            onClick={scrollToNextItem}\n            className={styles.customBlockArrows}\n          >\n            <ArrowRight />\n          </button>\n        </div>\n      )}\n    </div>\n  ) : (\n    <div className={styles.detailsCard}>\n      <div className={styles.detailsCardHeader}>\n        <div className={styles.detailsCardHeaderContent}>\n          <img\n            src={trafficData.line.pictogram.url}\n            alt={trafficData.line.pictogram.alt || \"\"}\n            className={styles.svgImage}\n          />\n          <h4 className={styles.detailsCardHeaderTitle} tabIndex={-1} ref={openTrafficIdRef}>\n            {trafficData.line.name}\n          </h4>\n          <div className={styles.exitIconContainer}>\n            <button className={styles.exitButton} onClick={exitTrafficDetails}>\n              <img src={cross} alt={closeButtonLabel} className={styles.exitIcon} />\n            </button>\n          </div>\n        </div>\n        <div className={styles.detailsCardBodyWrapper} tabIndex={0}>\n          {trafficData.traffic.map((item, index) => {\n            return (\n              <div key={index}>\n                <div className={styles.detailsCardBody}>\n                  {item.pictogram.format === \"svg\" && (\n                    <ReactSVG\n                      src={item.pictogram.url}\n                      className={styles.svgImage}\n                      beforeInjection={svg => svg.setAttribute(\"aria-label\", item.pictogram.alt)}\n                      width={item.pictogram.width}\n                      height={item.pictogram.height}\n                    />\n                  )}\n                  <p className={styles.infoTrafficTitle}>{item.title}</p>\n                </div>\n                <div\n                  className={styles.shortDescription}\n                  dangerouslySetInnerHTML={{ __html: sanitizeHtml(item.shortDescription) }}\n                />\n              </div>\n            )\n          })}\n        </div>\n      </div>\n    </div>\n  )\n}\n\nexport default TrafficBlocks\n","import { graphql } from \"gatsby\"\nimport React, { useEffect, useRef, useState } from \"react\"\nimport { useQuerySubscription } from \"react-datocms\"\nimport { ReactSVG } from \"react-svg\"\nimport * as config from \"../../../../config.js\"\nimport {\n  DatoCmsInfoTraffic,\n  DatoCmsLine,\n  SecondaryBlocksLabelFieldsFragment,\n  TrafficInfoBlockFieldsFragment,\n} from \"../../../../graphql-types\"\nimport infoTrafficBlockPicto from \"../../../../static/images/info_traffic_block_picto.svg\"\nimport { pushGtmEvent } from \"../../../gtm/interaction-event\"\nimport { useIsToday } from \"../../../hooks\"\nimport * as inputsStyles from \"../../layout/inputs.module.scss\"\nimport * as globalBlockStyles from \"../main-blocks/main-blocks.module.scss\"\nimport TrafficBlocks from \"./traffic-blocks\"\nimport * as styles from \"./traffic-parent-block.module.scss\"\n\nexport enum SelectedTab {\n  NOW = \"now\",\n  TOMORROW = \"tomorrow\",\n}\n\nexport type LineRelatedToTraffic = {\n  line: DatoCmsLine\n  traffic: DatoCmsInfoTraffic[]\n}\n\ntype LinesParsedByDate = {\n  today: LineRelatedToTraffic[]\n  tomorrow: LineRelatedToTraffic[]\n}\n\ntype RenderProps = {\n  block: TrafficInfoBlockFieldsFragment\n  isHighlighted: boolean\n  intersectionRatioCallback: (ratio: number) => void\n  labels: SecondaryBlocksLabelFieldsFragment\n}\n\nconst TrafficParentBlock: React.FC<RenderProps> = ({ block, isHighlighted, intersectionRatioCallback, labels }) => {\n  const component = useRef<HTMLElement>()\n  const observer = useRef<IntersectionObserver>()\n  const [selectedTab, setSelectedTab] = useState<SelectedTab>(SelectedTab.NOW)\n  const nowBlockRef = useRef<HTMLDivElement>()\n  const tomorrowBlockRef = useRef<HTMLDivElement>()\n\n  useEffect(() => {\n    if (!(\"IntersectionObserver\" in window)) {\n      return\n    }\n    const options = { threshold: [0.2, 0.4, 0.6, 0.8, 1.0] }\n    observer.current = new IntersectionObserver(entries => {\n      intersectionRatioCallback(entries[entries.length - 1].intersectionRatio)\n    }, options)\n    observer.current.observe(component.current)\n    return () => observer.current.disconnect()\n  }, []) // do this only once, on mount\n\n  const [info, setInfo] = useState<LinesParsedByDate>(null)\n  const [dataInfo, setDataInfo] = useState(null)\n  const [infoBlockToday, setInfoBlockToday] = useState<JSX.Element>(null)\n  const [infoBlockTomorrow, setInfoBlockTomorrow] = useState<JSX.Element>(null)\n\n  useEffect(() => {\n    if (dataInfo) {\n      const parsedInfo = parseInfoTraffic(dataInfo.allInfoTraffics)\n      setInfo(parsedInfo)\n      const infoTrafficBlockToday = (\n        <div className={styles.myContainer} ref={nowBlockRef} tabIndex={-1}>\n          <TrafficBlocks\n            blocks={parsedInfo[\"today\"]}\n            label={labels.secondaryBlocksLabel}\n            previousLabel={labels.secondaryBlocksPreviousLabel}\n            nextLabel={labels.secondaryBlocksNextLabel}\n            closeButtonLabel={block.closeButtonLabel}\n          />\n        </div>\n      )\n      setInfoBlockToday(infoTrafficBlockToday)\n      const infoTrafficBlocks = (\n        <div className={styles.myContainer} ref={tomorrowBlockRef} tabIndex={-1}>\n          <TrafficBlocks\n            blocks={parsedInfo[\"tomorrow\"]}\n            label={labels.secondaryBlocksLabel}\n            previousLabel={labels.secondaryBlocksPreviousLabel}\n            nextLabel={labels.secondaryBlocksNextLabel}\n            closeButtonLabel={block.closeButtonLabel}\n          />\n        </div>\n      )\n      setInfoBlockTomorrow(infoTrafficBlocks)\n    }\n  }, [dataInfo])\n\n  const { data } = useQuerySubscription({\n    enabled: true,\n    query: `\n      query infoQuery {\n        allInfoTraffics(locale: ${config.locale}, orderBy: [end_DESC]) {\n          start\n          end\n          id\n          title\n          disruptionType\n          displayInHome\n          pictogram {\n            alt\n            format\n            width\n            height\n            url\n          }\n          lines {\n            id\n            number\n            name\n            pictogram {\n              alt\n              format\n              width\n              height\n              url\n            }\n          }\n          shortDescription\n          slug\n        }\n      }`,\n    token: config.readOnlyApi,\n  })\n\n  if (data) {\n    if (data !== dataInfo) {\n      setDataInfo(data)\n    }\n  }\n\n  const handleTabChange = tabValue => {\n    if (tabValue == \"now\") {\n      setSelectedTab(SelectedTab.NOW)\n      if (typeof window !== \"undefined\") {\n        setTimeout(() => {\n          nowBlockRef.current && nowBlockRef.current.focus()\n        })\n      }\n    } else {\n      setSelectedTab(SelectedTab.TOMORROW)\n      if (typeof window !== \"undefined\") {\n        setTimeout(() => {\n          tomorrowBlockRef.current && tomorrowBlockRef.current.focus()\n        })\n      }\n    }\n  }\n\n  const parseInfoTraffic = (dataToParse: DatoCmsInfoTraffic[]): LinesParsedByDate => {\n    const lines: DatoCmsLine[] = []\n    dataToParse.forEach(infoTraffic => {\n      infoTraffic.lines.forEach(line => {\n        lines.push(line)\n      })\n    })\n\n    const uniqueLines = lines.filter((ele, index) => index === lines.findIndex(elem => elem.id === ele.id))\n    const myLinesWithTrafficToday: LineRelatedToTraffic[] = []\n    const myLinesWithTrafficTomorrow: LineRelatedToTraffic[] = []\n\n    uniqueLines.forEach(line => {\n      const infoTrafficArrayToday: DatoCmsInfoTraffic[] = []\n      const infoTrafficArrayTomorrow: DatoCmsInfoTraffic[] = []\n      dataToParse.forEach(infoTraffic => {\n        infoTraffic.lines.forEach(subline => {\n          if (line.name === subline.name) {\n            if (useIsToday(infoTraffic.start, infoTraffic.end)) {\n              infoTrafficArrayToday.push(infoTraffic)\n              myLinesWithTrafficToday.push({\n                line: line,\n                traffic: infoTrafficArrayToday,\n              })\n            }\n            if (isTomorrow(infoTraffic.start, infoTraffic.end)) {\n              infoTrafficArrayTomorrow.push(infoTraffic)\n              myLinesWithTrafficTomorrow.push({\n                line: line,\n                traffic: infoTrafficArrayTomorrow,\n              })\n            }\n          }\n        })\n      })\n    })\n\n    const uniqueTrafficEntriesToday = deleteDuplicates(myLinesWithTrafficToday)\n    const uniqueTrafficEntriesTomorrow = deleteDuplicates(myLinesWithTrafficTomorrow)\n    return {\n      today: uniqueTrafficEntriesToday,\n      tomorrow: uniqueTrafficEntriesTomorrow,\n    }\n  }\n\n  const deleteDuplicates = (linesArray: LineRelatedToTraffic[]) =>\n    linesArray.filter((ele, index) => index === linesArray.findIndex(elem => elem.line === ele.line))\n\n  const isTomorrow = (min, max?) => {\n    if (max) {\n      const date = new Date()\n      const tomorrowEnd = new Date(date.getTime() + 24 * 60 * 60 * 1000)\n      tomorrowEnd.setHours(23, 59, 59, 999)\n      const tomorrowStart = new Date(date.getTime() + 24 * 60 * 60 * 1000)\n      tomorrowStart.setHours(0, 0, 0, 0)\n      const start = new Date(min)\n      const end = new Date(max)\n      return start.getTime() < tomorrowEnd.getTime() && end.getTime() > tomorrowStart.getTime()\n    } else {\n      const date = new Date()\n      const tomorrow = new Date(date.getTime() + 24 * 60 * 60 * 1000)\n      tomorrow.setHours(23, 59, 59, 999)\n      const start = new Date(min)\n      return tomorrow.getTime() >= start.getTime()\n    }\n  }\n\n  return (info && info.today.length > 0) || (info && info.tomorrow.length > 0) ? (\n    <section className={`${styles.block} ${styles.customBlock} ${globalBlockStyles.mainBlocksCard}`} ref={component}>\n      <div className={styles.blockHeader}>\n        <ReactSVG\n          src={infoTrafficBlockPicto}\n          className={styles.blockPicto}\n          beforeInjection={svg => svg.setAttribute(\"aria-hidden\", \"true\")}\n        />\n        <h3 className={styles.title}>{block.title}</h3>\n      </div>\n      <div className={styles.tabButtonsContainer}>\n        <button\n          aria-pressed={selectedTab === SelectedTab.NOW}\n          className={selectedTab === SelectedTab.NOW ? styles.selectedButton : styles.unselectedButton}\n          onClick={() => handleTabChange(SelectedTab.NOW)}\n        >\n          {block.firstTab}\n        </button>\n        <button\n          aria-pressed={selectedTab === SelectedTab.TOMORROW}\n          className={selectedTab === SelectedTab.TOMORROW ? styles.selectedButton : styles.unselectedButton}\n          onClick={() => handleTabChange(SelectedTab.TOMORROW)}\n        >\n          {block.secondTab}\n        </button>\n      </div>\n      {selectedTab === SelectedTab.NOW && <div className={styles.infoTrafficBlock}>{infoBlockToday}</div>}\n      {selectedTab === SelectedTab.TOMORROW && <div className={styles.infoTrafficBlock}>{infoBlockTomorrow}</div>}\n      <p className={styles.trafficStatusLabel}>{block.disruptedTrafficLabel}</p>\n      <a\n        className={`${styles.link} ${styles.linkTraffic} ${inputsStyles.primaryButton}`}\n        href={block.internalLink.slug}\n        onClick={() =>\n          pushGtmEvent(\n            \"eventga\",\n            \"Homepage\",\n            \"Infos Trafic - Plus d'Infos\",\n            (selectedTab === SelectedTab.NOW && block.firstTab) ||\n              (selectedTab === SelectedTab.TOMORROW && block.secondTab)\n          )\n        }\n      >\n        {block.linkLabel}\n      </a>\n    </section>\n  ) : (\n    <section className={`${styles.block} ${styles.customBlock}`} ref={component}>\n      <h3 className={styles.title}>{block.title}</h3>\n      {block.image.format === \"svg\" ? (\n        <ReactSVG\n          src={block.image.url}\n          className={styles.svgImage}\n          beforeInjection={svg => svg.setAttribute(\"aria-label\", block.image.alt || \"\")}\n        />\n      ) : (\n        <img src={block.image.url} className={styles.image} alt={block.image.alt || \"\"} />\n      )}\n      <div className={styles.trafficStatusLabel}>{block.normalTrafficLabel}</div>\n      <a\n        className={`${styles.link} ${inputsStyles.primaryButton}`}\n        href={block.internalLink.slug}\n        onClick={() =>\n          pushGtmEvent(\n            \"eventga\",\n            \"Homepage\",\n            \"Infos Trafic - Plus d'Infos\",\n            (selectedTab == SelectedTab.NOW && block.firstTab) ||\n              (selectedTab == SelectedTab.TOMORROW && block.secondTab)\n          )\n        }\n      >\n        {block.linkLabel}\n      </a>\n    </section>\n  )\n}\n\nexport const fragments = graphql`\n  fragment TrafficInfoBlockFields on DatoCmsTrafficInfoBlock {\n    __typename\n    id\n    title\n    linkLabel\n    internalLink {\n      slug\n    }\n    firstTab\n    secondTab\n    disruptedTrafficLabel\n    normalTrafficLabel\n    closeButtonLabel\n    image {\n      alt\n      format\n      url\n    }\n  }\n`\n\nexport default TrafficParentBlock\n","import React, { useState } from \"react\"\nimport { ReactSVG } from \"react-svg\"\nimport { MainBlocksFieldsFragment } from \"../../../../graphql-types\"\n\nimport infoTrafficBlockPicto from \"../../../../static/images/info_traffic_block_picto.svg\"\nimport timesheet from \"../../../../static/images/timesheet.svg\"\n\nimport triangle from \"../../../../static/images/triangle.svg\"\n\nimport * as styles from \"./main-blocks-mobile-tabs.module.scss\"\n\ntype RenderProps = {\n  mainBlocks: MainBlocksFieldsFragment[]\n  onActiveTabChange: (activeBlockId: string) => void\n}\nconst MainBlocksMobileTabs: React.FC<RenderProps> = ({ mainBlocks, onActiveTabChange }) => {\n  const blockTypeImages = {\n    DatoCmsSchedulesSearchBlock: timesheet,\n    DatoCmsTrafficInfoBlock: infoTrafficBlockPicto,\n    DatoCmsInstantSystemWidgetBlock: infoTrafficBlockPicto,\n  }\n  const [activeTab, setActiveTab] = useState(mainBlocks[1]?.id)\n  const handleTabClick = (blockId: string) => {\n    setActiveTab(blockId)\n    onActiveTabChange(blockId)\n  }\n  return (\n    <div className={styles.mainBlocksTabs}>\n      {mainBlocks.map((block, index) => (\n        <div\n          key={block.id}\n          className={`${styles.mainBlockHeader} ${block.id === activeTab && styles.active}`}\n          onClick={() => {\n            handleTabClick(block.id)\n          }}\n        >\n          {(blockTypeImages[block.__typename] || block.__typename === \"DatoCmsCustomBlockExternalPage\") && (\n            <ReactSVG\n              src={blockTypeImages[block.__typename] ? blockTypeImages[block.__typename] : block.image?.url}\n              className={styles.blockHeaderPicto}\n              beforeInjection={svg => svg.setAttribute(\"aria-hidden\", \"true\")}\n            />\n          )}\n          <h3 className={styles.tabTitle}>{block.title || block.widgetType}</h3>\n\n          <ReactSVG\n            src={triangle}\n            className={styles.triangle}\n            beforeInjection={svg => {\n              svg.setAttribute(\"aria-hidden\", \"true\")\n            }}\n          />\n        </div>\n      ))}\n    </div>\n  )\n}\nexport default MainBlocksMobileTabs\n","// extracted by mini-css-extract-plugin\nexport var active = \"main-blocks-mobile-tabs-module--active--00eb6\";\nexport var blockHeaderPicto = \"main-blocks-mobile-tabs-module--blockHeaderPicto--ff5d2\";\nexport var mainBlockHeader = \"main-blocks-mobile-tabs-module--mainBlockHeader--0209e\";\nexport var mainBlocksTabs = \"main-blocks-mobile-tabs-module--mainBlocksTabs--c6468\";\nexport var tabTitle = \"main-blocks-mobile-tabs-module--tabTitle--9e31a\";\nexport var triangle = \"main-blocks-mobile-tabs-module--triangle--4baec\";","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTE0IiBoZWlnaHQ9IjM1IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiPgogIDxwYXRoIGlkPSJzdmdfMSIgZmlsbD0iI2ZmZmZmZiIgZD0ibTU4LjEwODgsMzIuMTM2NGMtMC41NzA5LDAuMjkxMiAtMS4yNDY3LDAuMjkxMiAtMS44MTc2LDBsLTU0Ljg5OCwtMjguMDA0OGMtMS44NzIyLC0wLjk1NTEgLTEuMTkyOSwtMy43ODE2IDAuOTA4OCwtMy43ODE2bDEwOS43OTYsMGMyLjEwMiwwIDIuNzgxLDIuODI2NSAwLjkwOSwzLjc4MTZsLTU0Ljg5ODIsMjguMDA0OHoiLz4KPC9zdmc+\"","import React, { useEffect, useRef } from \"react\"\nimport { graphql, useStaticQuery } from \"gatsby\"\nimport { InstantSystemWidgetBlockFieldsFragment, InstantSystemQuery } from \"../../../../graphql-types\"\nimport * as globalBlockStyles from \"../main-blocks/main-blocks.module.scss\"\nimport * as blockStyles from \"./instant-system-widget-block.module.scss\"\nimport \"./custom-itinerary.scss\"\nimport \"./itinerary-widget.scss\"\nimport { ReactSVG } from \"react-svg\"\nimport infoTrafficBlockPicto from \"../../../../static/images/info_traffic_block_picto.svg\"\n\ntype RenderProps = {\n  block: InstantSystemWidgetBlockFieldsFragment\n  intersectionRatioCallback: (ratio: number) => void\n}\n\nconst InstantSystemWidgetBlock: React.FC<RenderProps> = ({ block }) => {\n  const data: InstantSystemQuery = useStaticQuery(graphql`\n    query InstantSystem {\n      datoCmsInstantSystemConfig {\n        ...InstantSystemConfiguration\n      }\n    }\n  `)\n  const component = useRef<HTMLElement>()\n  const widgetIs = useRef<HTMLDivElement>()\n\n  useEffect(() => {\n    if (typeof window === \"undefined\") {\n      return\n    }\n    const scriptId = \"installer-script\"\n    if (document.getElementById(scriptId) && block.widgetType === \"Itinéraire\") {\n      // initializeWidget is a function provided by the Instant System Widget script\n      // it is automatically called the first time but we need to call it again when the widget is re-rendered\n      //@ts-ignore\n      window.initializeWidget(widgetIs.current) // mount widget\n      return\n    }\n    const script = document.createElement(\"script\")\n    script.id = scriptId\n\n    document.getElementsByTagName(\"body\")[0].appendChild(script)\n    script.async = true\n    script.type = \"text/javascript\"\n\n    switch (block.widgetType) {\n      case \"Info trafic\":\n        script.src = data.datoCmsInstantSystemConfig?.infoTrafficWidget\n        break\n      case \"Itinéraire\":\n        script.src = data.datoCmsInstantSystemConfig?.itineraryWidget\n        break\n      case \"Horaires\":\n        script.src = \"\"\n        break\n    }\n  }, [])\n  return (\n    <section\n      className={`${blockStyles.block} ${globalBlockStyles.mainBlocksCard} ${block.widgetType === \"Itinéraire\" ? blockStyles.blockIti : \"\"}`}\n      ref={component}\n    >\n      <div className={blockStyles.blockHeader}>\n        <ReactSVG\n          src={infoTrafficBlockPicto}\n          className={blockStyles.blockPicto}\n          beforeInjection={svg => svg.setAttribute(\"aria-label\", \"info trafic\")}\n        />\n        <h3 className={blockStyles.title}>{block.widgetType}</h3>\n      </div>\n\n      {block.widgetType === \"Info trafic\" && <div id=\"is-WidgetWrapper_Traffic\"></div>}\n      {block.widgetType === \"Itinéraire\" && (\n        // <div data-is-widget data-domain=\"services.fluo.grandest.fr\" data-widget-type=\"trip-planner\"></div>\n        <div\n          ref={widgetIs}\n          data-is-widget\n          data-domain={data.datoCmsInstantSystemConfig?.itineraryWidget\n            ?.replace(\"//\", \"\")\n            .replace(\"/widget/v1/installer.js\", \"\")}\n          data-widget-type=\"trip-planner\"\n        ></div>\n      )}\n      {block.widgetType === \"Horaires\" && (\n        <>\n          <div id=\"is-WidgetWrapper_Schedule\"></div>\n          <div id=\"is-MapWrapper\"></div>\n        </>\n      )}\n    </section>\n  )\n}\nexport const fragments = graphql`\n  fragment InstantSystemWidgetBlockFields on DatoCmsInstantSystemWidgetBlock {\n    __typename\n    id\n    widgetType\n  }\n  fragment InstantSystemConfiguration on DatoCmsInstantSystemConfig {\n    infoTrafficWidget\n    itineraryWidget\n  }\n`\nexport default InstantSystemWidgetBlock\n","// extracted by mini-css-extract-plugin\nexport var block = \"instant-system-widget-block-module--block--3e345\";\nexport var blockHeader = \"instant-system-widget-block-module--blockHeader--8ebae\";\nexport var blockIti = \"instant-system-widget-block-module--blockIti--aa541\";\nexport var blockPicto = \"instant-system-widget-block-module--blockPicto--804d0\";\nexport var title = \"instant-system-widget-block-module--title--8537e\";","import { graphql } from \"gatsby\"\nimport React, { useEffect, useState } from \"react\"\nimport {\n  LePiloteInfoTrafficLinesIconsFieldsFragment,\n  MainBlocksCardColorsFieldsFragment,\n  MainBlocksFieldsFragment,\n  SchedulesSearchBlockLineFieldsFragment,\n  SecondaryBlocksLabelFieldsFragment,\n} from \"../../../../graphql-types\"\n\nimport { useIsMobile } from \"../../../hooks\"\n\nimport CustomBlock from \"../../home/custom-block/custom-block\"\nimport LePiloteItineraryBlock from \"../le-pilote-itinerary-block/le-pilote-itinerary-block\"\nimport LePiloteNextTripsSearchBlock from \"../le-pilote-next-trips-search-block/le-pilote-next-trips-search-block\"\nimport LePiloteTrafficParentBlock from \"../le-pilote-traffic-block/le-pilote-traffic-parent-block\"\nimport SchedulesSearchBlock from \"../schedules-search-block/schedules-search-block\"\nimport TerDakarItinerarySearchBlock from \"../ter-dakar-itinerary-search-block/ter-dakar-itinerary-search-block\"\nimport TrafficParentBlock from \"../traffic-block/traffic-parent-block\"\nimport MainBlocksMobileTabs from \"./main-blocks-mobile-tabs\"\nimport InstantSystemWidgetBlock from \"../instant-system-widget-block/instant-system-widget-block\"\nimport * as styles from \"./main-blocks.module.scss\"\n\ntype RenderProps = {\n  mainBlocks: MainBlocksFieldsFragment[]\n  secondaryBlocksLabels: SecondaryBlocksLabelFieldsFragment\n  colors: MainBlocksCardColorsFieldsFragment\n  lines: SchedulesSearchBlockLineFieldsFragment[]\n  assets: LePiloteInfoTrafficLinesIconsFieldsFragment[]\n  locale: string\n  defaultLocale: string\n}\n\nconst MainBlocks: React.FC<RenderProps> = ({\n  mainBlocks,\n  secondaryBlocksLabels,\n  colors: { mainBlockGradientColor, mainBlockShadowColor, mainBlockMobileTabsBackgroundColor },\n  lines,\n  assets,\n  locale,\n  defaultLocale,\n}) => {\n  const getHighlightedIndex = (intersection: { [p: number]: number }): number => {\n    if (typeof window === \"undefined\" || !(\"IntersectionObserver\" in window)) {\n      return -1\n    }\n    const biggestRatio = Object.entries(intersection).reduce(\n      (previousValue, [index, ratio]) => {\n        if (ratio > previousValue.ratio) {\n          return { ratio, index }\n        }\n        return previousValue\n      },\n      { index: 0, ratio: 0 }\n    )\n    return Number(biggestRatio.index)\n  }\n\n  const [intersectionRatios, setIntersectionRatios] = useState<{\n    [key: number]: number\n  }>({})\n  const highlightedIndex = getHighlightedIndex(intersectionRatios)\n  const intersectionRatioChanged = (index: number, ratio: number) => {\n    setIntersectionRatios(previousIntersectionRatios => ({\n      ...previousIntersectionRatios,\n      [index]: ratio,\n    }))\n  }\n\n  useEffect(() => {\n    const root = document.documentElement\n    root.style.setProperty(\"--main-block-gradient-color\", mainBlockGradientColor.hex)\n    root.style.setProperty(\"--main-block-shadow-color\", `${mainBlockShadowColor.hex}66`)\n    root.style.setProperty(\"--main-block-shadow-color-arrow\", `${mainBlockShadowColor.hex}40`)\n    root.style.setProperty(\"--main-block-mobile-tabs-background-color\", mainBlockMobileTabsBackgroundColor.hex)\n  }, [mainBlockGradientColor, mainBlockShadowColor, mainBlockMobileTabsBackgroundColor])\n\n  const [activeBlock, setActiveBlock] = useState(mainBlocks[1].id)\n  const isMobile: boolean = useIsMobile(920)\n\n  return (\n    <div className=\"container\">\n      <div className={styles.mainBlocks}>\n        <MainBlocksMobileTabs mainBlocks={mainBlocks} onActiveTabChange={setActiveBlock} />\n\n        {mainBlocks.map((block, index) => {\n          if (isMobile && block.id !== activeBlock) {\n            // On mobile, only display the active block\n            return null\n          }\n          switch (block.__typename) {\n            case \"DatoCmsCustomBlockExternalPage\":\n            case \"DatoCmsCustomBlockInternalPage\":\n              return (\n                <CustomBlock\n                  block={block}\n                  isHighlighted={highlightedIndex === index}\n                  intersectionRatioCallback={ratio => intersectionRatioChanged(index, ratio)}\n                  key={block.id}\n                />\n              )\n            case \"DatoCmsSchedulesSearchBlock\":\n              return (\n                <SchedulesSearchBlock\n                  block={block}\n                  lines={lines}\n                  intersectionRatioCallback={ratio => intersectionRatioChanged(index, ratio)}\n                  locale={locale}\n                  defaultLocale={defaultLocale}\n                  key={block.id}\n                />\n              )\n            case \"DatoCmsTrafficInfoBlock\":\n              return (\n                <TrafficParentBlock\n                  block={block}\n                  isHighlighted={highlightedIndex === index}\n                  intersectionRatioCallback={ratio => intersectionRatioChanged(index, ratio)}\n                  labels={secondaryBlocksLabels}\n                  key={block.id}\n                />\n              )\n            case \"DatoCmsLePiloteTrafficInfoBlock\":\n              return (\n                <LePiloteTrafficParentBlock\n                  block={block}\n                  isHighlighted={highlightedIndex === index}\n                  intersectionRatioCallback={ratio => intersectionRatioChanged(index, ratio)}\n                  linesIconsData={assets}\n                  labels={secondaryBlocksLabels}\n                  key={block.id}\n                />\n              )\n            case \"DatoCmsTerDakarItinerarySearchBlock\":\n              return (\n                <TerDakarItinerarySearchBlock\n                  block={block}\n                  isHighlighted={highlightedIndex === index}\n                  intersectionRatioCallback={ratio => intersectionRatioChanged(index, ratio)}\n                  key={block.id}\n                />\n              )\n            case \"DatoCmsLePiloteNextTripsSearchBlock\":\n              return (\n                <LePiloteNextTripsSearchBlock\n                  block={block}\n                  intersectionRatioCallback={ratio => intersectionRatioChanged(index, ratio)}\n                  key={block.id}\n                />\n              )\n            case \"DatoCmsLePiloteItineraryBlock\":\n              return (\n                <LePiloteItineraryBlock\n                  block={block}\n                  intersectionRatioCallback={ratio => intersectionRatioChanged(index, ratio)}\n                  key={block.id}\n                />\n              )\n            case \"DatoCmsInstantSystemWidgetBlock\":\n              return (\n                <InstantSystemWidgetBlock\n                  block={block}\n                  intersectionRatioCallback={ratio => intersectionRatioChanged(index, ratio)}\n                  key={block.id}\n                />\n              )\n          }\n        })}\n      </div>\n    </div>\n  )\n}\n\nexport const fragments = graphql`\n  fragment MainBlocksFields on DatoCmsUnionForDatoCmsHomeMainBlocks {\n    __typename\n    ... on DatoCmsCustomBlockExternalPage {\n      ...CustomBlockExternalPageFields\n    }\n    ... on DatoCmsCustomBlockInternalPage {\n      ...CustomBlockInternalPageFields\n    }\n    ... on DatoCmsSchedulesSearchBlock {\n      ...SchedulesSearchBlockFields\n    }\n    ... on DatoCmsTrafficInfoBlock {\n      ...TrafficInfoBlockFields\n    }\n    ... on DatoCmsLePiloteTrafficInfoBlock {\n      ...LePiloteTrafficInfoBlockFields\n    }\n    ... on DatoCmsLePiloteNextTripsSearchBlock {\n      ...LePiloteNextTripsSearchBlockFields\n    }\n    ... on DatoCmsLePiloteItineraryBlock {\n      ...LePiloteItineraryBlockFields\n    }\n    ... on DatoCmsTerDakarItinerarySearchBlock {\n      ...TerDakarItinerarySearchBlockFields\n    }\n    ... on DatoCmsInstantSystemWidgetBlock {\n      ...InstantSystemWidgetBlockFields\n    }\n  }\n\n  fragment MainBlocksCardColorsFields on DatoCmsHome {\n    mainBlockGradientColor {\n      hex\n    }\n    mainBlockShadowColor {\n      hex\n    }\n    mainBlockMobileTabsBackgroundColor {\n      hex\n    }\n  }\n`\n\nexport default MainBlocks\n","import React from \"react\"\nimport { graphql } from \"gatsby\"\nimport { HomeNewsFieldsFragment } from \"../../../../graphql-types\"\nimport * as config from \"../../../../config\"\nimport * as styles from \"./news.module.scss\"\nimport { format, parse } from \"date-fns\"\n\ntype RenderProps = {\n  news: HomeNewsFieldsFragment\n  locale: string\n  defaultLocale: string\n}\n\nconst News: React.FC<RenderProps> = ({ news, locale, defaultLocale }) => {\n  const categories = news.categories.map(category => category.title).join(\", \")\n  // Error displayed by date-format => RangeError: Use `yyyy` instead of `YYYY` (in `dd/MM/YYYY`) for formatting years to the input\n  const dateFormat =\n    config.date_format[config.locale] === \"dd/MM/YYYY\" ? \"dd/MM/yyyy\" : config.date_format[config.locale]\n  const formattedDate = format(parse(news.publicationDate, \"yyyy-MM-dd\", new Date()), dateFormat)\n\n  const slugLanguagePrefix = locale === defaultLocale ? \"\" : `/${locale}`\n  return (\n    <a href={`${slugLanguagePrefix}/news/${news.slug}`} className={styles.news}>\n      <img src={news.image.url} alt={news.image.alt || \"\"} className={styles.image} />\n      <div className={styles.content}>\n        <h3 className={styles.title}>{news.title}</h3>\n        {categories && <span>{categories}</span>}\n        <time dateTime={news.publicationDate} className={styles.publicationDate}>\n          {formattedDate}\n        </time>\n      </div>\n    </a>\n  )\n}\n\nexport const homeNewsFragment = graphql`\n  fragment HomeNewsFields on DatoCmsNews {\n    __typename\n    id\n    title\n    slug\n    publicationDate\n    publicationStopDate\n    categories {\n      title\n    }\n    image {\n      alt\n      url\n    }\n  }\n`\n\nexport default News\n","// extracted by mini-css-extract-plugin\nexport var content = \"news-module--content--36af5\";\nexport var image = \"news-module--image--3d8a6\";\nexport var news = \"news-module--news--eef6c\";\nexport var publicationDate = \"news-module--publicationDate--d3308\";\nexport var title = \"news-module--title--23822\";","import React from \"react\"\nimport { HomeNewsFieldsFragment } from \"../../../../graphql-types\"\nimport * as styles from \"./news-list.module.scss\"\nimport News from \"./news\"\n\ntype RenderProps = {\n  data: HomeNewsFieldsFragment[]\n  label: string\n  locale: string\n  defaultLocale: string\n}\n\nconst NewsList: React.FC<RenderProps> = ({ data, label, locale, defaultLocale }) => {\n  const isNewsPublished = (news: HomeNewsFieldsFragment) => {\n    const todayDate: number = new Date().getTime()\n    const publicationDate: number = new Date(news.publicationDate).getTime()\n    const publicationStopDate: number = new Date(news.publicationStopDate).getTime()\n\n    return !(\n      (publicationStopDate && (todayDate < publicationDate || todayDate >= publicationStopDate)) ||\n      todayDate < publicationDate\n    )\n  }\n\n  return (\n    <ul aria-labelledby={label} className={styles.newsList}>\n      {data.map(\n        news =>\n          isNewsPublished(news) && (\n            <li className={styles.news} key={news.id}>\n              <News news={news} locale={locale} defaultLocale={defaultLocale} key={news.id} />\n            </li>\n          )\n      )}\n    </ul>\n  )\n}\n\nexport default NewsList\n","// extracted by mini-css-extract-plugin\nexport var news = \"news-list-module--news--f54c4\";\nexport var newsList = \"news-list-module--newsList--54d8e\";","// extracted by mini-css-extract-plugin\nexport var secondaryBlock = \"secondary-blocks-module--secondaryBlock--93917\";\nexport var secondaryBlocks = \"secondary-blocks-module--secondaryBlocks--5c763\";\nexport var secondaryBlocksWrapper = \"secondary-blocks-module--secondaryBlocksWrapper--4f37e\";\nexport var spacer = \"secondary-blocks-module--spacer--f865e\";","import React from \"react\"\nimport { ReactSVG } from \"react-svg\"\nimport { graphql } from \"gatsby\"\nimport { SecondaryBlockFieldsFragment } from \"../../../../graphql-types\"\nimport * as styles from \"./secondary-block.module.scss\"\nimport { pushGtmEvent } from \"../../../gtm/interaction-event\"\nimport { useInternalExternalLink } from \"../../../hooks\"\n\ntype RenderProps = {\n  block: SecondaryBlockFieldsFragment\n  isActive: boolean\n  locale: string\n  defaultLocale: string\n}\n\nconst SecondaryBlock: React.FC<RenderProps> = ({ block, isActive, locale, defaultLocale }) => {\n  return (\n    <a\n      href={useInternalExternalLink(block.internalExternalLink[0], locale, defaultLocale)}\n      className={`${styles.secondaryBlock} ${isActive && styles.isActive}`}\n      onClick={() => pushGtmEvent(\"eventga\", \"Homepage\", \"Bloc secondaire\", block.label)}\n    >\n      {block.image.format === \"svg\" ? (\n        <ReactSVG\n          src={block.image.url}\n          className={styles.svgImage}\n          beforeInjection={svg => svg.setAttribute(\"aria-label\", block.image.alt || \"\")}\n        />\n      ) : (\n        <img src={block.image.url} className={styles.image} alt={block.image.alt || \"\"} />\n      )}\n      <span className={styles.link}>{block.label}</span>\n    </a>\n  )\n}\n\nexport const fragment = graphql`\n  fragment SecondaryBlockFields on DatoCmsSecondaryBlock {\n    id\n    label\n    image {\n      alt\n      format\n      url\n    }\n    internalExternalLink {\n      ...InternalExternalLinkFields\n    }\n  }\n\n  fragment SecondaryBlocksLabelFields on DatoCmsHome {\n    secondaryBlocksLabel\n    secondaryBlocksPreviousLabel\n    secondaryBlocksNextLabel\n  }\n`\n\nexport default SecondaryBlock\n","// extracted by mini-css-extract-plugin\nexport var image = \"secondary-block-module--image--f40e7\";\nexport var isActive = \"secondary-block-module--isActive--7ed71\";\nexport var link = \"secondary-block-module--link--e10ab\";\nexport var secondaryBlock = \"secondary-block-module--secondaryBlock--42e0d\";\nexport var svgImage = \"secondary-block-module--svgImage--284e0\";","import React, { useEffect, useState } from \"react\"\nimport { SecondaryBlockFieldsFragment } from \"../../../../graphql-types\"\nimport * as styles from \"./secondary-blocks.module.scss\"\nimport { useIsMobile } from \"../../../hooks\"\nimport SecondaryBlock from \"./secondary-block\"\n\ntype RenderProps = {\n  blocks: SecondaryBlockFieldsFragment[]\n  label: string\n  locale: string\n  defaultLocale: string\n}\n\nconst SecondaryBlocks: React.FC<RenderProps> = ({ blocks, label, locale, defaultLocale }) => {\n  const isMobile = useIsMobile()\n  const [isActive, setIsActive] = useState(0)\n\n  useEffect(() => handleScrollAnimation, [isMobile])\n\n  const handleScrollAnimation = () => {\n    if (!isMobile) return\n\n    const container = document.getElementsByClassName(styles.secondaryBlocks)[0]\n    container.addEventListener(\"scroll\", () => {\n      const allBlocks = Array.from(document.getElementsByClassName(styles.secondaryBlock))\n      allBlocks.forEach((block, i) => {\n        if (block.getBoundingClientRect().left === 0) {\n          setIsActive(i)\n        }\n      })\n    })\n  }\n\n  return (\n    <div className={styles.secondaryBlocksWrapper}>\n      <ul className={styles.secondaryBlocks} aria-labelledby={label} onScroll={handleScrollAnimation}>\n        {isMobile && <div className={styles.secondaryBlock} />}\n        {blocks.map((block, i) => (\n          <li className={styles.secondaryBlock} key={block.id}>\n            <SecondaryBlock\n              block={block}\n              isActive={isMobile && isActive === i}\n              locale={locale}\n              defaultLocale={defaultLocale}\n            />\n          </li>\n        ))}\n        {isMobile && <div className={styles.secondaryBlock} />}\n      </ul>\n    </div>\n  )\n}\n\nexport default SecondaryBlocks\n","// extracted by mini-css-extract-plugin\nexport var allNewsButton = \"index-module--allNewsButton--3666f\";\nexport var carousel = \"index-module--carousel--25820\";\nexport var informationBanner = \"index-module--informationBanner--3c6da\";\nexport var mainBlocks = \"index-module--mainBlocks--2722f\";","import { graphql } from \"gatsby\"\nimport React, { useEffect, useState } from \"react\"\nimport { useQuerySubscription } from \"react-datocms\"\nimport * as config from \"../../../config\"\nimport { DatoCmsInfoTraffic, HomeQuery, InformationBannerFieldsFragment } from \"../../../graphql-types\"\nimport AlertBanner from \"../../components/home/alert-banner/alert-banner\"\nimport Carousel from \"../../components/home/carousel/carousel\"\nimport InformationBanner from \"../../components/home/information-banner/information-banner\"\nimport MainBlocks from \"../../components/home/main-blocks/main-blocks\"\nimport NewsList from \"../../components/home/news/news-list\"\nimport SecondaryBlocks from \"../../components/home/secondary-blocks/secondary-blocks\"\nimport * as inputsStyles from \"../../components/layout/inputs.module.scss\"\nimport Layout from \"../../components/layout/layout\"\nimport LoadScripts from \"../../components/load-scripts\"\nimport SEO from \"../../components/seo\"\nimport { pushGtmPageEvent } from \"../../gtm/interaction-event\"\nimport { useDetectScroll, useFormatLocale, useIsToday } from \"../../hooks\"\nimport * as styles from \"./index.module.scss\"\n\ntype RenderProps = {\n  data: HomeQuery\n  location: Location\n  pageContext: {\n    locale: string\n    defaultLocale: string\n  }\n}\n\nenum BannerPosition {\n  BelowMainBlocks,\n  BelowSecondaryBlocks,\n  BelowCarrousel,\n}\n\nenum CarouselPosition {\n  BelowMainBlocks,\n  BelowSecondaryBlocks,\n}\n\nconst isBannerForPosition = (position: BannerPosition) => {\n  const getBannerPosition = (informationBanner: InformationBannerFieldsFragment) => {\n    switch (informationBanner.location) {\n      case \"Below main blocks\":\n        return BannerPosition.BelowMainBlocks\n      case \"Below secondary blocks\":\n        return BannerPosition.BelowSecondaryBlocks\n      case \"Below carrousel\":\n        return BannerPosition.BelowCarrousel\n      default:\n        return BannerPosition.BelowMainBlocks\n    }\n  }\n\n  return (informationBanner: InformationBannerFieldsFragment) => getBannerPosition(informationBanner) == position\n}\n\nconst isCarouselForPosition = (carouselPositionString: string) => {\n  const getCarouselPosition = (position: string) => {\n    switch (position) {\n      case \"Below main blocks\":\n        return CarouselPosition.BelowMainBlocks\n      case \"Below secondary blocks\":\n        return CarouselPosition.BelowSecondaryBlocks\n      default:\n        return CarouselPosition.BelowMainBlocks\n    }\n  }\n\n  const carouselPosition = getCarouselPosition(carouselPositionString)\n  return (position: CarouselPosition) => carouselPosition === position\n}\n\nconst Index: React.FC<RenderProps> = ({ data, location, pageContext }) => {\n  const locale = useFormatLocale(pageContext.locale)\n  const defaultLocale = useFormatLocale(pageContext.defaultLocale)\n\n  const displayBanner = (informationBanner: InformationBannerFieldsFragment) => {\n    return (\n      <div className={styles.informationBanner} key={informationBanner.id}>\n        <InformationBanner informationBanner={informationBanner} locale={locale} defaultLocale={defaultLocale} />\n      </div>\n    )\n  }\n\n  const displayedBanners = data.datoCmsHome.informationBanners.filter(banner => banner.isActive)\n  const belowMainBlockBanners = displayedBanners.filter(isBannerForPosition(BannerPosition.BelowMainBlocks))\n  const belowSecondaryBlockBanners = displayedBanners.filter(isBannerForPosition(BannerPosition.BelowSecondaryBlocks))\n  const belowMainCarrouselBanners = displayedBanners.filter(isBannerForPosition(BannerPosition.BelowCarrousel))\n  const displayCarouselIfDisplayed = data.datoCmsHome.carouselActive\n    ? isCarouselForPosition(data.datoCmsHome.carouselPosition)\n    : () => false\n  const carousel = (\n    <Carousel\n      slides={data.datoCmsHome.carouselSlides}\n      label={data.datoCmsHome.carouselLabel}\n      nextLabel={data.datoCmsHome.carouselNextLabel}\n      previousLabel={data.datoCmsHome.carouselPreviousLabel}\n      pauseLabel={data.datoCmsHome.carouselPauseLabel}\n      playLabel={data.datoCmsHome.carouselPlayLabel}\n      locale={locale}\n      defaultLocale={defaultLocale}\n    />\n  )\n\n  const [dataInfo, setData] = useState(null)\n  const { data: realTimeData } = useQuerySubscription({\n    enabled: true,\n    query: `\n      query infoQuery {\n        allInfoTraffics(locale: ${config.locale}, orderBy: [end_DESC]) {\n          start\n          end\n          id\n          title\n          disruptionType\n          displayInHome\n          pictogram {\n            url\n            alt\n            format\n          }\n          lines {\n            id\n            number\n            name\n            pictogram {\n              url\n              alt\n              format\n            }\n          }\n          shortDescription\n          slug\n        }\n      }`,\n    token: config.readOnlyApi,\n  })\n\n  if (realTimeData) {\n    if (realTimeData !== dataInfo) {\n      setData(realTimeData)\n    }\n  }\n\n  let infoTrafficDisplayInHome: DatoCmsInfoTraffic\n  if (dataInfo) {\n    infoTrafficDisplayInHome = dataInfo.allInfoTraffics.find(\n      element => element.displayInHome && element.disruptionType == \"major\" && useIsToday(element.start, element.end)\n    ) as DatoCmsInfoTraffic\n  }\n\n  useDetectScroll()\n\n  const [pageView, setPageView] = useState(false)\n\n  useEffect(() => {\n    if (pageView || !window) {\n      return\n    }\n    let host = \"\"\n    if (window.location) {\n      host = window.location.host\n    }\n    const isMobile = window.matchMedia(\"only screen and (max-width: 760px)\").matches\n    const searchPattern = new RegExp(\"^\" + \"qksa\")\n    const isQualificationStage = searchPattern.test(host)\n    pushGtmPageEvent(\n      \"pageview\",\n      config.locale,\n      data.site.siteMetadata.siteUrl,\n      isMobile ? \"mobile\" : \"desktop\",\n      isQualificationStage ? \"qualification\" : \"production\",\n      data.datoCmsHome.title,\n      window.location.hostname,\n      null,\n      \"Homepage\",\n      \"\"\n    )\n    setPageView(true)\n  }, [])\n\n  return (\n    <Layout\n      location={location}\n      menuData={data.datoCmsMenu}\n      footerData={data.datoCmsFooter}\n      toolbarData={data.datoCmsGlobalConfiguration}\n      scriptsData={data.datoCmsGlobalConfiguration}\n      locale={locale}\n      defaultLocale={defaultLocale}\n    >\n      {(infoTrafficDisplayInHome || data.datoCmsHome.alertBannerIsActive) && (\n        <AlertBanner\n          infoTrafficData={infoTrafficDisplayInHome}\n          buttonText={data.datoCmsGlobalConfiguration.redirectionButtonText}\n          alertBannerConfig={data.datoCmsHome}\n          defaultLocale={defaultLocale}\n        />\n      )}\n      {!data.datoCmsHome.areMainBlocksHidden && (\n        <div className={styles.mainBlocks}>\n          <MainBlocks\n            mainBlocks={data.datoCmsHome.mainBlocks}\n            secondaryBlocksLabels={data.datoCmsHome}\n            colors={data.datoCmsHome}\n            lines={data.allDatoCmsLine.nodes}\n            assets={data.allDatoCmsAsset.nodes}\n            locale={locale}\n            defaultLocale={defaultLocale}\n          />\n        </div>\n      )}\n      {belowMainBlockBanners.length > 0 && <div className=\"container\">{belowMainBlockBanners.map(displayBanner)}</div>}\n      <SecondaryBlocks\n        blocks={data.datoCmsHome.secondaryBlocks}\n        label={data.datoCmsHome.secondaryBlocksLabel}\n        locale={locale}\n        defaultLocale={defaultLocale}\n      />\n      {displayCarouselIfDisplayed(CarouselPosition.BelowMainBlocks) && (\n        <div className={`container ${styles.carousel}`}>{carousel}</div>\n      )}\n      <div className=\"container\">{belowSecondaryBlockBanners.map(displayBanner)}</div>\n      {displayCarouselIfDisplayed(CarouselPosition.BelowSecondaryBlocks) && (\n        <div className={`container ${styles.carousel}`}>{carousel}</div>\n      )}\n      {data.datoCmsHome.displayNews && data.allDatoCmsNews.nodes.length > 0 && (\n        <div className=\"container\">\n          <NewsList\n            data={data.allDatoCmsNews.nodes}\n            label={data.datoCmsHome.newsLabel}\n            locale={locale}\n            defaultLocale={defaultLocale}\n          />\n        </div>\n      )}\n      {data.datoCmsHome.allNewsDisplay && data.datoCmsHome.allNewsButtonLabel.length > 0 && (\n        <div className=\"container\">\n          <a\n            className={`${inputsStyles.primaryButton} ${styles.allNewsButton}`}\n            href={data.datoCmsHome.allNewsPage.slug}\n          >\n            {data.datoCmsHome.allNewsButtonLabel}\n          </a>\n        </div>\n      )}\n      <div className=\"container\">{belowMainCarrouselBanners.map(displayBanner)}</div>\n    </Layout>\n  )\n}\n\nexport const Head: React.FC<RenderProps> = ({ data }) => {\n  return (\n    <>\n      <SEO />\n      <meta name=\"viewport\" content=\"width=device-width\" />\n      <link rel=\"canonical\" href={data.site.siteMetadata.siteUrl} />\n      <LoadScripts scriptData={data.datoCmsGlobalConfiguration} />\n    </>\n  )\n}\n\nexport const pageQuery = graphql`\n  query Home($locale: String!) {\n    site {\n      siteMetadata {\n        siteUrl\n        title\n        websiteConfig {\n          primary_color {\n            red\n            green\n            blue\n          }\n        }\n      }\n    }\n    datoCmsHome(locale: $locale) {\n      title\n      areMainBlocksHidden\n      ...MainBlocksCardColorsFields\n      mainBlocks {\n        ...MainBlocksFields\n      }\n\n      informationBanners {\n        ...InformationBannerFields\n      }\n\n      ...SecondaryBlocksLabelFields\n      secondaryBlocks {\n        ...SecondaryBlockFields\n      }\n\n      carouselActive\n      carouselSlides {\n        ...CarouselSlideFields\n      }\n      carouselPosition\n      carouselLabel\n      carouselPreviousLabel\n      carouselNextLabel\n      carouselPauseLabel\n      carouselPlayLabel\n\n      allNewsDisplay\n      allNewsButtonLabel\n      allNewsPage {\n        slug\n      }\n      displayNews\n      newsLabel\n      ...AlertBannerFields\n    }\n\n    allDatoCmsNews(locale: $locale, sort: { publicationDate: DESC }, limit: 3) {\n      nodes {\n        ...HomeNewsFields\n      }\n    }\n\n    datoCmsMenu(locale: $locale) {\n      ...HeaderMenuFields\n      ...FooterMenuFields\n    }\n\n    datoCmsGlobalConfiguration(locale: $locale) {\n      ...HeaderToolBarFields\n      ...ScriptsFields\n      redirectionButtonText\n    }\n\n    datoCmsFooter(locale: $locale) {\n      ...FooterFields\n    }\n\n    allDatoCmsLine(locale: $locale, sort: { position: ASC }) {\n      nodes {\n        ...SchedulesSearchBlockLineFields\n      }\n    }\n\n    allDatoCmsAsset(filter: { isImage: { eq: true }, basename: { regex: \"/^picto-/\" } }) {\n      nodes {\n        ...LePiloteInfoTrafficLinesIconsFields\n      }\n    }\n  }\n`\n\nexport default Index\n"],"names":["alertBanner","alertBannerBody","alertBannerButton","alertBannerClosed","alertBannerContentWrapper","alertBannerLink","closeButton","closeButtonWrapper","infoTrafficDate","shortDescription","title","_ref","_alertBannerInternalE","_globalConfig$allDato","_globalConfig$allDato2","_globalConfig$allDato3","_globalConfig$allDato4","infoTrafficId","generalBanner","infoTrafficData","buttonText","_ref$alertBannerConfi","alertBannerConfig","alertBannerIsActive","alertBannerTitle","alertBannerDate","alertBannerInternalExternalLink","alertBannerShortDescription","alertBannerMoreInfoButtonLabel","alertBannerClosingButtonAlt","defaultLocale","globalConfig","useStaticQuery","_useState","useState","isBannerOpened","setBannerState","closeBanner","pushGtmEvent","setTimeout","window","sessionStorage","setItem","id","useEffect","getItem","undefined","dateFormat","config","date_format","locale","link","useInternalExternalLink","React","className","styles","ReactSVG","src","alertImage","beforeInjection","svg","setAttribute","format","Date","dangerouslySetInnerHTML","__html","sanitizeHtml","allowedTags","href","target","externalLink","onClick","cross","alt","start","allDatoCmsPage","nodes","slug","replace","RegExp","ownKeys","e","t","r","Object","keys","getOwnPropertySymbols","i","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread2","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_classCallCheck","TypeError","_defineProperties","configurable","writable","key","_createClass","prototype","value","_extends","assign","bind","hasOwnProperty","call","this","_inherits","create","constructor","_setPrototypeOf","_getPrototypeOf","setPrototypeOf","getPrototypeOf","__proto__","_objectWithoutProperties","n","s","indexOf","_objectWithoutPropertiesLoose","propertyIsEnumerable","_assertThisInitialized","ReferenceError","_createSuper","Reflect","construct","sham","Proxy","Boolean","valueOf","_isNativeReflectConstruct","_possibleConstructorReturn","_toConsumableArray","Array","isArray","_arrayLikeToArray","_arrayWithoutHoles","Symbol","iterator","from","_iterableToArray","toString","slice","name","test","_unsupportedIterableToArray","_nonIterableSpread","createCommonjsModule","exports","emptyFunction","emptyFunctionWithReset","cn","map","join","trim","slideSize","slideTraySize","pct","concat","equal","types","jkrosoType","memoGaurd","getEnumerableProperties","isSpecial","$$typeof","REACT_ELEMENT_TYPE","isReactElement","cloneUnlessOtherwiseSpecified","clone","isMergeableObject","deepmerge","emptyTarget","defaultArrayMerge","arrayMerge","mergeObject","WithStore","state","updateStateProps","context","subscribe","equals","props","unsubscribe","setState","deepmerge_1","ref","instance","carouselStore","getStoreState","masterSpinnerError","masterSpinnerSuccess","setStoreState","subscribeMasterSpinner","unsubscribeAllMasterSpinner","unsubscribeMasterSpinner","children","Context","CarouselPropTypes","resetWarningCache","propTypes","o","Error","isRequired","array","bigint","bool","func","number","object","string","symbol","any","arrayOf","element","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","factoryWithThrowingShims","LOADING","SUCCESS","ERROR","direction","height","orientation","isBgImage","tag","boundedRange","min","max","x","Math","_excluded","ButtonBack","handleOnClick","currentSlide","step","infinite","a","visibleSlides","l","totalSlides","c","isPlaying","disabled","setDisabled","type","Node","Function","Map","Set","nodeType","outerHTML","textContent","sort","isNonNullObject","for","all","reduce","_class","deepFreeze","freeze","getOwnPropertyNames","isFrozen","DEFAULT_STATE","masterSpinnerFinished","Store","subscriptions","masterSpinnerSubscriptions","updateSubscribers","splice","success","error","complete","setMasterSpinnerFinished","isMasterSpinnerFinished","_excluded$1","CarouselProvider","isIntrinsicHeight","disableAnimation","disableKeyboard","hasMasterSpinner","imageErrorCount","imageSuccessCount","interval","isPageScrollLocked","lockOnWindowScroll","masterSpinnerThreshold","naturalSlideHeight","naturalSlideWidth","playDirection","privateUnDisableAnimation","dragStep","touchEnabled","dragEnabled","Provider","Consumer","_class$1","_class$2","_class$3","_class$4","_class$5","_class$6","s$1","_excluded$2","ButtonFirst","s$2","_excluded$3","ButtonNext","u","s$3","_excluded$4","ButtonLast","s$4","_excluded$5","ButtonPlay","childrenPaused","childrenPlaying","s$5","dot","_excluded$6","Dot","slide","selected","p","d","dotSelected","Dot$1","s$6","_excluded$7","_excluded2","DotGroup","disableActiveDots","showAsSelectedForCurrentSlideOnly","renderDots","h","dotNumbers","s$7","image","_excluded$8","_excluded2$1","Image","imageStatus","handleImageLoad","handleImageError","initImage","removeEventListener","document","createElement","addEventListener","readyState","onLoad","onError","tempTag","imageLoading","customRender","imageError","style","backgroundImage","backgroundSize","renderError","renderLoading","renderSuccess","_class$7","_class$8","_class$9","_class$a","Image$1","s$8","_excluded$9","Spinner","s$9","container","overlay","hover","zoom","loading","imageLoadingSpinnerContainer","_excluded$a","ImageWithZoom","isImageLoading","isHovering","isZooming","y","scale","tpCache","handleImageComplete","handleOnMouseMove","handleOnMouseOut","handleOnMouseOver","handleOnTouchEnd","handleOnTouchMove","handleOnTouchStart","nativeEvent","offsetX","offsetWidth","offsetY","offsetHeight","isPinchZoomEnabled","targetTouches","identifier","clientX","clientY","persist","stopPropagation","getBoundingClientRect","x1","y1","x2","y2","distance","distanceBetweenTwoTouches","midpointBetweenTwoTouches","cx","cy","left","width","top","changedTouches","spinner","bgImageProps","bgImageTag","imageClassName","overlayClassName","srcZoomed","S","transformOrigin","transform","onFocus","onMouseOver","onBlur","onMouseOut","onMouseMove","onTouchStart","onTouchEnd","onTouchMove","sqrt","pow","s$a","slideHorizontal","slideInner","focusRing","_excluded$b","Slide","handleOnFocus","handleOnBlur","focused","index","ariaLabel","classNameHidden","classNameVisible","innerClassName","innerTag","tabIndex","b","m","f","paddingBottom","g","position","v","_","isVisible","T","k","C","O","tagRef","role","innerTagRef","renderFocusRing","index$7","GetScrollParent","parentNode","parents","scroll","scrollingElement","documentElement","isNodeValid","scrollParent","getComputedStyle","getPropertyValue","overflow","HTMLElement","SVGElement","s$b","horizontalSlider","horizontalSliderTray","verticalSlider","verticalSliderTray","verticalTray","verticalSlideTrayWrap","sliderTray","sliderAnimation","masterSpinnerContainer","_excluded$c","_excluded2$2","_excluded3","Slider","getSliderRef","handleDocumentScroll","handleOnClickCapture","handleOnKeyDown","handleOnMouseDown","handleOnMouseUp","handleOnTouchCancel","playBackward","playForward","callCallback","blockWindowScroll","cancelNextClick","deltaX","deltaY","isBeingMouseDragged","isBeingTouchDragged","preventingVerticalScroll","startX","startY","isDocumentScrolling","moveTimer","originalOverflow","scrollStopTimer","preventVerticalScrollOnTouch","play","stop","lockScroll","unlockScroll","cancelAnimationFrame","clearTimeout","sliderTrayElement","screenX","screenY","touchDrag","mouseDrag","requestAnimationFrame","abs","verticalPixelThreshold","horizontalPixelThreshold","computeCurrentSlide","trayProps","preventDefault","fakeOnDragStart","fakeOnDragMove","fakeOnDragEnd","keyCode","focus","forward","backward","setInterval","clearInterval","getScrollParent","stopImmediatePropagation","slideSizeInPx","clientWidth","clientHeight","slidesMoved","moveThreshold","sliderElement","endTouchMove","onMasterSpinner","classNameAnimation","classNameTray","classNameTrayWrap","trayTag","transition","display","alignItems","flexDirection","P","E","sliderTrayWrap","horizontalTrayWrap","w","horizontalTray","M","R","onClickCapture","onMouseDown","onTouchCancel","onKeyDown","renderMasterSpinner","round","index$8","slides","label","internalExternalLink","url","informationBanner","sanitizedContent","content","bannerContent","mainBlocksCard","block","intersectionRatioCallback","isHighlighted","component","useRef","observer","current","IntersectionObserver","entries","intersectionRatio","threshold","observe","disconnect","globalBlockStyles","inputsStyles","__typename","contentPageLink","linkLabel","errorMessage","field","formPart","inputIcon","inputWithIcons","listStartStops","setListStartStops","_useState2","switchedStart","setSwitchedStart","_useState3","switchedEnd","setSwitchedEnd","_useState4","listEndStops","setListEndStops","_useState5","departureCoord","setDepartureCoord","_useState6","arrivalCoord","setArrivalCoord","_useState7","invalidDeparture","setInvalidDeparture","_useState8","invalidArrival","setInvalidArrival","toLabel","Name","handleGeoLoc","param","navigator","geolocation","getCurrentPosition","getElementById","coords","geolocationLabel","code","PERMISSION_DENIED","console","log","_useState9","isListeningDeparture","setIsListeningDeparture","_useState10","isListeningArrival","setIsListeningArrival","_useState11","departureNote","setDepartureNote","_useState12","arrivalNote","setArrivalNote","_useState13","microphone","setMicrophone","mic","useSpeechToText","handleListenDeparture","handleListenArrival","onend","onstart","onresult","event","transcript","results","result","blur","onerror","errorEvent","blockStyles","method","action","resultsPage","blockPictogram","htmlFor","departureLabel","Autocomplete","onChange","startStop","suggestFunction","query","getTripPointsFromApi","then","allStops","getStartStopList","placeholder","departurePlaceholder","isItineraryForm","onKeyPress","geolocationIcon","prevState","microphonePictogram","micArrivalAltText","latitude","longitude","Id","PointType","tmpStart","tmpEnd","departure","arrival","swapDepartureArrivalIcon","arrivalLabel","endStop","getEndStopList","arrivalPlaceholder","searchButtonLabel","blockPicto","stops","setStops","realStops","setRealStops","pictogram","trippointFieldLabel","tmpStops","cleanQuery","_asyncToGenerator","_regeneratorRuntime","_callee","_context","prev","next","getStopsFromApi","sent","completeResults","stopsResults","ele","findIndex","elem","LogicalId","elements","toLabelFn","toLowerCase","search","trippointFieldPlaceholder","customBlock","infoTrafficBlock","linkTraffic","myContainer","selectedButton","svgImage","tabButtonsContainer","trafficStatusLabel","unselectedButton","customBlockArrows","detailsCard","detailsCardBody","detailsCardBodyWrapper","detailsCardHeader","detailsCardHeaderContent","detailsCardHeaderTitle","exitButton","exitIcon","exitIconContainer","gridBlocks","infoTrafficTitle","oneGridBlock","secondaryBlock","secondaryBlocks","ArrowLeft","viewBox","fill","xmlns","ArrowRight","blockContent","trafficBlock","onPerturbationClicked","linesWithUniqueDisruptions","lineWithTrafficInfos","disruptions","traffic","trafficInfos","set","DisruptionType","Code","line","values","item","icone","blocks","previousLabel","nextLabel","closeButtonLabel","openTrafficIdRef","tab","setTab","trafficId","setId","trafficData","handleChildClick","focusEventTitle","focusPreviouslyOpenInfoTraffic","perturbationGrids","arr","len","chunks","splitArrayIntoChunksOfLen","itemWidth","scrollBy","behavior","TrafficBlock","Description","SelectedTab","linesIconsData","labels","NOW","tabState","setSelectedTab","nowBlockRef","tomorrowBlockRef","linesWithInfoTraffic","setLinesWithInfoTraffic","_getExternalData","lang","lines","formattedData","getLines","getInfoTraffic","parseTrafficData","Data","abrupt","_x","getExternalData","deleteDuplicates","linesArray","linesDetails","disruptedLines","infoTraffic","DisruptedLines","getAllAffectedLines","myLinesWithTrafficToday","myLinesWithTrafficTomorrow","infoTrafficArrayToday","infoTrafficArrayTomorrow","subline","LineId","useIsToday","BeginValidityDate","EndValidityDate","completeLineData","find","getLineIcon","isTomorrow","_completeLineData","_icone","today","tomorrow","getInfoTrafficFormatted","lineCode","lineCodeLowercase","basename","endsWith","getDate","date","parseInt","substring","lastIndexOf","getTime","setHours","end","handleTabChange","tabValue","TOMORROW","firstTab","secondTab","LePiloteTrafficBlocks","secondaryBlocksPreviousLabel","secondaryBlocksNextLabel","disruptedTrafficLabel","internalLink","normalTrafficLabel","filterMunicipalities","selectedLine","municipalities","municipality","filterLines","selectedMunicipality","some","setSelectedLine","setSelectedMunicipality","municipalityError","setMunicipalityError","lineError","setLineError","linesWithSchedulesOrPlan","schedules","lineMap","slugLanguagePrefix","timesheet","searchType","lineFieldLabel","filteredLines","lineFieldPlaceholder","lineErrorMessage","municipalityFieldLabel","filteredMunicipalities","municipalityFieldPlaceholder","municipalityErrorMessage","isSmallMobile","useIsMobile","dakarLoaded","setDakarLoaded","dakarStyleChanged","setDakarStyleChanged","script","getElementsByTagName","appendChild","async","token","dakarWidget","parentElement","zIndex","innerHTML","widget","getElementsByClassName","journey","journeyActionsArea","journeyActionsAreaDatePreference","journeyActionsAreaAdvancedSearch","journeySwapGroup","minWidth","padding","paddingRight","paddingLeft","margin","disruptionType","idx","wrapper","setTrafficId","lineId","selectedTab","info","setInfo","dataInfo","setDataInfo","infoBlockToday","setInfoBlockToday","infoBlockTomorrow","setInfoBlockTomorrow","parsedInfo","parseInfoTraffic","allInfoTraffics","infoTrafficBlockToday","TrafficBlocks","secondaryBlocksLabel","infoTrafficBlocks","data","useQuerySubscription","enabled","readOnlyApi","dataToParse","uniqueLines","tomorrowEnd","tomorrowStart","_date","_start","infoTrafficBlockPicto","_mainBlocks$","mainBlocks","onActiveTabChange","blockTypeImages","DatoCmsSchedulesSearchBlock","DatoCmsTrafficInfoBlock","DatoCmsInstantSystemWidgetBlock","activeTab","setActiveTab","_block$image","blockId","widgetType","_data$datoCmsInstantS3","_data$datoCmsInstantS4","widgetIs","_data$datoCmsInstantS","_data$datoCmsInstantS2","scriptId","initializeWidget","datoCmsInstantSystemConfig","infoTrafficWidget","itineraryWidget","secondaryBlocksLabels","_ref$colors","colors","mainBlockGradientColor","mainBlockShadowColor","mainBlockMobileTabsBackgroundColor","assets","intersectionRatios","setIntersectionRatios","highlightedIndex","intersection","biggestRatio","previousValue","_ref2","ratio","Number","getHighlightedIndex","intersectionRatioChanged","previousIntersectionRatios","_Object$assign","root","setProperty","hex","activeBlock","setActiveBlock","isMobile","MainBlocksMobileTabs","CustomBlock","SchedulesSearchBlock","TrafficParentBlock","LePiloteTrafficParentBlock","TerDakarItinerarySearchBlock","LePiloteNextTripsSearchBlock","LePiloteItineraryBlock","InstantSystemWidgetBlock","news","categories","category","formattedDate","parse","publicationDate","dateTime","todayDate","publicationStopDate","isNewsPublished","News","isActive","setIsActive","handleScrollAnimation","onScroll","SecondaryBlock","BannerPosition","CarouselPosition","isBannerForPosition","location","BelowMainBlocks","BelowSecondaryBlocks","BelowCarrousel","getBannerPosition","Head","SEO","rel","site","siteMetadata","siteUrl","LoadScripts","scriptData","datoCmsGlobalConfiguration","carouselPositionString","carouselPosition","infoTrafficDisplayInHome","pageContext","useFormatLocale","displayBanner","InformationBanner","displayedBanners","datoCmsHome","informationBanners","banner","belowMainBlockBanners","belowSecondaryBlockBanners","belowMainCarrouselBanners","displayCarouselIfDisplayed","carouselActive","getCarouselPosition","carousel","Carousel","carouselSlides","carouselLabel","carouselNextLabel","carouselPreviousLabel","pauseLabel","carouselPauseLabel","playLabel","carouselPlayLabel","setData","realTimeData","displayInHome","useDetectScroll","pageView","setPageView","host","matchMedia","matches","isQualificationStage","pushGtmPageEvent","hostname","Layout","menuData","datoCmsMenu","footerData","datoCmsFooter","toolbarData","scriptsData","AlertBanner","redirectionButtonText","areMainBlocksHidden","MainBlocks","allDatoCmsLine","allDatoCmsAsset","SecondaryBlocks","displayNews","allDatoCmsNews","NewsList","newsLabel","allNewsDisplay","allNewsButtonLabel","allNewsPage"],"sourceRoot":""}