{"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":""}