{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/helpers/to-base-64.ts","webpack:///./src/hooks/useMedia.ts","webpack:///./src/hooks/useIntersectionObserver.ts","webpack:///./src/hooks/useInView.ts","webpack:///./src/stories/Components/Buttons/Button/Button.tsx","webpack:///./src/stories/Components/Global/SiteWide/SiteWide.styles.ts","webpack:///./src/stories/Components/Global/SiteWide/SiteWide.tsx","webpack:///./src/stories/Components/Media/Image/Image.styles.ts","webpack:///./src/helpers/cloudinary.ts","webpack:///./src/stories/Components/Media/Image/Image.tsx","webpack:///./node_modules/react-swipeable/es/index.js","webpack:///./src/stories/Widgets/Media/HomepageCarousel/HomepageCarousel.styles.ts","webpack:///./src/stories/Widgets/Media/HomepageCarousel/HomepageCarouselItem/HomepageCarouselItem.styles.tsx","webpack:///./src/stories/Widgets/Media/HomepageCarousel/HomepageCarouselItem/HomepageCarouselItem.tsx","webpack:///./src/stories/Widgets/Media/HomepageCarousel/HomepageCarousel.widget.tsx","webpack:///./src/hooks/useAutoplay.ts","webpack:///./src/img/line-pattern.svg","webpack:///./src/stories/Components/Buttons/Button/Button.styles.tsx"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","52","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","this","oldJsonpFunction","slice","toBase64","str","window","Buffer","from","toString","btoa","useMedia","queries","values","defaultValue","isSSR","mediaQueryLists","map","query","matchMedia","getValue","index","findIndex","mql","matches","useState","setValue","useEffect","handler","forEach","addListener","removeListener","useIntersectionObserver","callback","options","observerRef","useRef","rootRef","elementRef","current","IntersectionObserver","root","observe","disconnect","useInView","reverse","isEditMode","inView","setInView","entries","isIntersecting","Button","addon","addonPosition","branding","className","disabled","title","type","onClick","hoverColour","hideTextMobile","rest","undefined","React","createElement","ButtonStyles","iconPosition","HoverEffect","Inner","Icon","position","Text","LinkButton","href","target","download","as","Container","styled","div","Device","Desktop","isThin","css","DesktopSmall","SiteWide","forwardRef","props","ref","children","displayName","Image","img","objectFit","objectPosition","Intrinsic","Responsive","width","height","fullPaddingTop","quotient","isNaN","ImageStyles","Fixed","Fill","cl","Cloudinary","cloud","cloudName","url","secure","imageUrl","publicId","rawTransformation","transformation","image","addTransformation","FormatRegEx","test","toURL","delivery","format","fAuto","quality","qAuto","hasErrored","setHasErrored","deviceWidths","MobileSmall","MobileMedium","Mobile","MobileLarge","Tablet","TabletLarge","ActualDesktop","filter","x","sort","a","b","srcSetUrls","src","join","sizes","handleError","e","currentTarget","fallbackSrc","components","layout","role","alt","decoding","preload","loading","draggable","srcSet","onError","fetchPriority","sizerSvg","Fragment","defaultProps","delta","preventScrollOnSwipe","rotationAngle","trackMouse","trackTouch","swipeDuration","Infinity","touchEventOptions","passive","initialState","first","initial","start","swiping","xy","rotateXYByAngle","pos","angle","angleInRadians","Math","PI","cos","sin","getHandlers","set","handlerProps","onStart","event","isTouch","touches","state","document","addEventListener","onMove","onUp","clientX","clientY","onTouchStartOrOnMouseDown","assign","timeStamp","y","deltaX","deltaY","absX","abs","absY","time","velocity","sqrt","vxvy","dir","getDirection","toLowerCase","eventData","onSwipeStart","onSwiping","cancelablePageSwipe","onSwiped","cancelable","preventDefault","onEnd","onSwipedDir","onTap","onTouchEndOrOnMouseUp","removeEventListener","attachTouch","el","cleanup","baseOptions","tls","h","output","addState","cleanUpTouch","onMouseDown","useSwipeable","transientState","transientProps","previousProps","defaultKey","handlers","stateSetter","updateTransientState","section","HomepageCarouselStyles","BreadcrumbWrapper","BreadcrumbsStyles","brand","white","ItemList","ul","Item","li","PaginationWrapper","DotPaginationStyles","until","SiteWideStyles","ImageWrapper","ContentWrapper","between","Overlay","ContentWrapperInner","Title","h1","fonts","DaxPro","Bold","Description","ParagraphStyles","RegularStyles","HomepageCarouselItemStyles","CtaWrapper","HomepageCarouselItem","active","cta","description","S","animate","variants","hidden","opacity","visible","style","transformOrigin","h2","withWidget","withMotionMax","items","breadcrumb","autoplay","isMobile","refContainer","params","refInterval","activeIndex","setActiveIndex","duration","paused","setPaused","activeItemDuration","enabled","setTimeout","newIndex","clearInterval","useAutoplay","swipeHandlers","onSwipedLeft","min","onSwipedRight","max","Breadcrumbs","item","id","DotPagination","count","onChange","onHover","hover","hydrate","HydrateOption","Always","_g","_extends","arguments","source","xmlns","viewBox","fill","stroke","strokeWidth","primary","base","accent","orange","black","PrimaryStyles","PrimaryAltStyles","SecondaryStyles","grey","grey55","WhiteStyles","BlackStyles","grey20","grey44","GreyStyles","grey89","grey76","TextOnlyStyles","TextOnlyPrimaryStyles","IconLeft","IconRight","hideText","button","ButtonReset"],"mappings":"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","file":"HomepageCarousel-517e4771997a330d0300.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t52: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/sitefiles/next-gen/dist/\";\n\n \tvar jsonpArray = this[\"nextGenJsonpFunction\"] = this[\"nextGenJsonpFunction\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([575,0,1,2,4,5,8,14,25]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","/**\r\n * Isomorphic base64 that works on the server and client\r\n */\r\nexport function toBase64(str) {\r\n if (typeof window === 'undefined') {\r\n return Buffer.from(str).toString('base64');\r\n }\r\n else {\r\n return window.btoa(str);\r\n }\r\n}\r\n","import { isSSR } from '@helpers/ssr';\r\nimport { useEffect, useState } from 'react';\r\n/**\r\n * Store a value in state based on the specified media queries.\r\n * @param {Array} queries\r\n * @param {Array} values\r\n * @param {T} defaultValue\r\n */\r\nfunction useMedia(queries, values, defaultValue) {\r\n // Avoid error with SSR.\r\n if (isSSR()) {\r\n return defaultValue;\r\n }\r\n // Array containing a media query list for each query\r\n const mediaQueryLists = queries.map((query) => window.matchMedia(query));\r\n // Function that gets value based on matching media query\r\n const getValue = () => {\r\n // Get index of first media query that matches\r\n const index = mediaQueryLists.findIndex((mql) => mql.matches);\r\n // Return related value or defaultValue if none\r\n return typeof values[index] !== 'undefined' ? values[index] : defaultValue;\r\n };\r\n // State and setter for matched value\r\n const [value, setValue] = useState(getValue);\r\n useEffect(() => {\r\n // Event listener callback\r\n // Note: By defining getValue outside of useEffect we ensure that it has ...\r\n // ... current values of hook args (as this hook callback is created once on mount).\r\n const handler = () => setValue(getValue);\r\n // Set a listener for each media query with above handler as callback.\r\n mediaQueryLists.forEach((mql) => mql.addListener(handler));\r\n // Remove listeners on cleanup\r\n return () => mediaQueryLists.forEach((mql) => mql.removeListener(handler));\r\n }, []); // Empty array ensures effect is only run on mount and unmount\r\n return value;\r\n}\r\nexport default useMedia;\r\n","import { useEffect, useRef } from 'react';\r\n/**\r\n * Use the IntersectionObserver to track visibility of an element in the viewport.\r\n * @param {IntersectionObserverCallback} callback\r\n * @param {IntersectionObserverInit} options\r\n * @returns {UseIntersectionObserverReturn}\r\n */\r\nfunction useIntersectionObserver(callback, options = {}) {\r\n const observerRef = useRef(null);\r\n const rootRef = useRef(null);\r\n const elementRef = useRef(null);\r\n useEffect(() => {\r\n if (!elementRef.current) {\r\n return undefined;\r\n }\r\n observerRef.current = new IntersectionObserver(callback, {\r\n root: rootRef.current,\r\n ...options,\r\n });\r\n observerRef.current.observe(elementRef.current);\r\n return () => {\r\n if (observerRef.current === null) {\r\n return;\r\n }\r\n observerRef.current.disconnect();\r\n };\r\n }, [callback, options]);\r\n return { elementRef, observerRef, rootRef };\r\n}\r\nexport default useIntersectionObserver;\r\n","import { useState } from 'react';\r\nimport useIntersectionObserver from './useIntersectionObserver';\r\nexport function useInView(options, reverse = false, isEditMode = false) {\r\n const [inView, setInView] = useState(false);\r\n const { elementRef } = useIntersectionObserver((entries) => {\r\n if (entries[0].isIntersecting) {\r\n setInView(true);\r\n }\r\n else if (reverse === true) {\r\n setInView(false);\r\n }\r\n }, options);\r\n return [elementRef, isEditMode ? true : inView];\r\n}\r\n","import React from 'react';\r\nimport { ButtonStyles } from './Button.styles';\r\nconst Button = ({ addon, addonPosition, branding, className, disabled, title, type = 'button', onClick, hoverColour, hideTextMobile, ...rest }) => {\r\n if (hideTextMobile == undefined && addonPosition == 'right') {\r\n hideTextMobile = true;\r\n }\r\n return (React.createElement(ButtonStyles.Button, { \"data-theme\": branding, className: className, disabled: disabled, iconPosition: addonPosition, type: type, onClick: onClick, hoverColour: hoverColour, hideTextMobile: hideTextMobile, ...rest },\r\n React.createElement(ButtonStyles.HoverEffect, null),\r\n React.createElement(ButtonStyles.Inner, null,\r\n addon && addonPosition === 'left' && (React.createElement(ButtonStyles.Icon, { position: addonPosition }, addon)),\r\n React.createElement(ButtonStyles.Text, null, title),\r\n addon && addonPosition === 'right' && (React.createElement(ButtonStyles.Icon, { position: addonPosition }, addon)))));\r\n};\r\nconst LinkButton = ({ addon, addonPosition, branding, className, onClick, href, target = '_self', title, download, hoverColour, }) => {\r\n return (React.createElement(ButtonStyles.Button, { \"data-theme\": branding, className: className, as: \"a\", href: href, target: target, download: download, hoverColour: hoverColour, onClick: onClick },\r\n React.createElement(ButtonStyles.HoverEffect, null),\r\n React.createElement(ButtonStyles.Inner, null,\r\n addon && addonPosition === 'left' && (React.createElement(ButtonStyles.Icon, { position: addonPosition }, addon)),\r\n React.createElement(ButtonStyles.Text, null, title),\r\n addon && addonPosition === 'right' && (React.createElement(ButtonStyles.Icon, { position: addonPosition }, addon)))));\r\n};\r\nexport { LinkButton, Button as default };\r\n","import { Device, from } from '@helpers/media';\r\nimport styled, { css } from 'styled-components';\r\nexport const SiteWideDesktop = 1757;\r\nexport const SitePaddingMobile = 18;\r\nexport const SitePaddingDesktop = 24;\r\nconst Container = styled.div `\r\n --site-wide: 100%;\r\n --site-padding: ${SitePaddingMobile}px;\r\n\r\n margin-left: auto;\r\n margin-right: auto;\r\n overflow: visible;\r\n padding-left: var(--site-padding);\r\n padding-right: var(--site-padding);\r\n width: 100%;\r\n\r\n @media ${from(Device.Desktop)} {\r\n --site-padding: ${SitePaddingDesktop}px;\r\n --site-wide: ${SiteWideDesktop}px;\r\n max-width: calc(var(--site-wide) + (var(--site-padding) * 2));\r\n }\r\n\r\n ${({ isThin }) => isThin &&\r\n css `\r\n @media ${from(Device.DesktopSmall)} {\r\n --site-wide: 863px;\r\n max-width: calc(var(--site-wide) + (var(--site-padding) * 2));\r\n }\r\n `}\r\n`;\r\nexport default {\r\n Container,\r\n};\r\n","import React from 'react';\r\nimport s from './SiteWide.styles';\r\nconst SiteWide = React.forwardRef((props, ref) => {\r\n const { children, className, isThin } = props;\r\n return (React.createElement(s.Container, { ref: ref, className: className, isThin: isThin }, children));\r\n});\r\nSiteWide.displayName = 'SiteWide';\r\nexport default SiteWide;\r\n","import { Device, from } from '@helpers/media';\r\nimport styled from 'styled-components';\r\nconst Image = styled.img `\r\n position: absolute;\r\n height: 100%;\r\n inset: 0px;\r\n box-sizing: border-box;\r\n padding: 0px;\r\n margin-left: auto;\r\n margin-right: auto;\r\n border: none;\r\n display: block;\r\n text-indent: -999px;\r\n object-fit: ${({ objectFit }) => (objectFit !== undefined ? objectFit : 'initial')};\r\n object-position: ${({ objectPosition }) => objectPosition !== undefined ? objectPosition : undefined};\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n width: 100%;\r\n height: auto;\r\n }\r\n`;\r\nconst Intrinsic = styled.div `\r\n height: 100%;\r\n display: inline-block;\r\n max-width: 100%;\r\n overflow: hidden;\r\n position: relative;\r\n box-sizing: border-box;\r\n margin: 0;\r\n\r\n > div {\r\n box-sizing: border-box;\r\n display: block;\r\n max-width: 100%;\r\n }\r\n`;\r\nconst Responsive = styled.div `\r\n display: block;\r\n overflow: hidden;\r\n position: relative;\r\n box-sizing: border-box;\r\n margin: 0;\r\n\r\n > div {\r\n display: block;\r\n box-sizing: border-box;\r\n \r\n padding-top: ${({ width, height, fullPaddingTop }) => {\r\n if (fullPaddingTop || !height || !width) {\r\n return '100%';\r\n }\r\n const quotient = height / width;\r\n return isNaN(quotient) ? '100%' : `${quotient * 100}%`;\r\n}};\r\n\r\n }\r\n`;\r\nconst Fixed = styled.div `\r\n overflow: hidden;\r\n box-sizing: border-box;\r\n display: inline-block;\r\n position: relative;\r\n width: ${({ width }) => width}px;\r\n height: ${({ height }) => height}px;\r\n`;\r\nconst Fill = styled.div `\r\n display: block;\r\n overflow: hidden;\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n bottom: 0;\r\n right: 0;\r\n box-sizing: border-box;\r\n margin: 0;\r\n`;\r\nexport const ImageStyles = {\r\n Image,\r\n Intrinsic,\r\n Fixed,\r\n Responsive,\r\n Fill,\r\n};\r\n","import { Cloudinary } from '@cloudinary/base';\r\nimport { format, quality } from '@cloudinary/base/actions/delivery';\r\nimport { fit } from '@cloudinary/base/actions/resize';\r\nimport { audioCodec } from '@cloudinary/base/actions/transcode';\r\nimport { auto as fAuto } from '@cloudinary/base/qualifiers/format';\r\nimport { auto as qAuto } from '@cloudinary/base/qualifiers/quality';\r\nconst cl = new Cloudinary({\r\n cloud: {\r\n cloudName: 'vp-groundforce',\r\n },\r\n url: {\r\n secure: true,\r\n },\r\n});\r\nexport function imageUrl(publicId, rawTransformation) {\r\n if (!publicId) {\r\n return '';\r\n }\r\n const image = cl.image(publicId);\r\n // Apply raw transformation.\r\n if (rawTransformation) {\r\n image.addTransformation(rawTransformation);\r\n }\r\n // Ensure we're specifying a format...\r\n if (containsFormatTransformation(rawTransformation)) {\r\n return image.toURL();\r\n }\r\n // ...otherwise serve with \"f_auto\" for WebP support.\r\n return image.delivery(format(fAuto())).delivery(quality(qAuto())).toURL();\r\n}\r\nexport function videoUrl(publicId, options = {}) {\r\n if (!publicId) {\r\n return '';\r\n }\r\n let video = cl.video(publicId);\r\n // Apply resize.\r\n if (options.aspectRatio || options.width) {\r\n let resize = fit();\r\n if (options.aspectRatio) {\r\n resize = resize.aspectRatio(options.aspectRatio);\r\n }\r\n if (options.width) {\r\n resize = resize.width(options.width);\r\n }\r\n video = video.resize(resize);\r\n }\r\n // Apply transcale (remove audio).\r\n if (options.audioCodec) {\r\n video = video.transcode(audioCodec(options.audioCodec));\r\n }\r\n // Apply format.\r\n if (options.format) {\r\n video = video.delivery(format(options.format));\r\n }\r\n return video.toURL();\r\n}\r\n// eslint-disable-next-line no-useless-escape\r\nconst FormatRegEx = /(\\/|\\,)(f_.*?)(\\/|\\,)/;\r\nfunction containsFormatTransformation(transformation) {\r\n return !!transformation && FormatRegEx.test(transformation);\r\n}\r\n","import { imageUrl } from '@helpers/cloudinary';\r\nimport { Device } from '@helpers/media';\r\nimport { toBase64 } from '@helpers/to-base-64';\r\nimport React, { useState } from 'react';\r\nimport { ImageStyles } from './Image.styles';\r\nconst Image = (props) => {\r\n const [hasErrored, setHasErrored] = useState(false);\r\n const deviceWidths = [\r\n props.width ? props.width : -1,\r\n Device.MobileSmall,\r\n Device.MobileSmall * 2,\r\n Device.MobileSmall * 3,\r\n Device.MobileMedium,\r\n Device.MobileMedium * 2,\r\n Device.MobileMedium * 3,\r\n Device.Mobile,\r\n Device.Mobile * 2,\r\n Device.Mobile * 3,\r\n Device.MobileLarge,\r\n Device.MobileLarge * 2,\r\n Device.MobileLarge * 3,\r\n Device.Tablet,\r\n Device.Tablet * 2,\r\n Device.Tablet * 3,\r\n Device.TabletLarge,\r\n Device.TabletLarge * 2,\r\n Device.TabletLarge * 3,\r\n Device.DesktopSmall,\r\n Device.DesktopSmall * 2,\r\n Device.DesktopSmall * 3,\r\n Device.Desktop,\r\n Device.Desktop * 2,\r\n Device.Desktop * 3,\r\n Device.ActualDesktop,\r\n Device.ActualDesktop * 2,\r\n Device.ActualDesktop * 3,\r\n ]\r\n .filter((x) => x > 0)\r\n .sort((a, b) => (a < b ? -1 : 1));\r\n const srcSetUrls = deviceWidths\r\n .map((x) => `${imageUrl(props.src, `c_fill,w_${x}`)} ${x}w`)\r\n .join(', ');\r\n const src = imageUrl(props.src, `c_fill,w_${deviceWidths[deviceWidths.length - 1]}`);\r\n const sizes = props.sizes ? props.sizes : '100vw';\r\n const handleError = (e) => {\r\n if (hasErrored) {\r\n return;\r\n }\r\n setHasErrored(true);\r\n e.currentTarget.src = props.fallbackSrc ? props.fallbackSrc : '';\r\n };\r\n let components = null;\r\n switch (props.layout) {\r\n default:\r\n case 'responsive': {\r\n components = (React.createElement(ImageStyles.Responsive, { width: props.width, height: props.height, fullPaddingTop: props.fullPaddingTop },\r\n React.createElement(\"div\", null),\r\n React.createElement(ImageStyles.Image, { role: props.role, alt: props.alt, decoding: props.preload ? 'sync' : 'async', loading: props.loading ? props.loading : 'lazy', objectFit: props.objectFit, objectPosition: props.objectPosition, draggable: props.draggable, sizes: sizes, srcSet: srcSetUrls, src: src, onError: handleError, \r\n /*// @ts-ignore */\r\n fetchPriority: props.preload ? 'high' : 'auto' })));\r\n break;\r\n }\r\n case 'intrinsic': {\r\n const sizerSvg = ``;\r\n components = (React.createElement(ImageStyles.Intrinsic, null,\r\n React.createElement(\"div\", null,\r\n React.createElement(\"img\", { \"aria-hidden\": true, role: \"presentation\", src: `data:image/svg+xml;base64,${toBase64(sizerSvg)}` })),\r\n React.createElement(ImageStyles.Image, { role: props.role, alt: props.alt, decoding: props.preload ? 'sync' : 'async', loading: props.loading ? props.loading : 'lazy', objectFit: props.objectFit, objectPosition: props.objectPosition, draggable: props.draggable, sizes: sizes, srcSet: srcSetUrls, src: src, onError: handleError, \r\n /*// @ts-ignore */\r\n fetchPriority: props.preload ? 'high' : 'auto' })));\r\n break;\r\n }\r\n case 'fixed': {\r\n components = (React.createElement(ImageStyles.Fixed, { width: props.width, height: props.height },\r\n React.createElement(ImageStyles.Image, { role: props.role, alt: props.alt, decoding: props.preload ? 'sync' : 'async', loading: props.loading ? props.loading : 'lazy', objectFit: props.objectFit, objectPosition: props.objectPosition, draggable: props.draggable, sizes: sizes, srcSet: srcSetUrls, src: src, onError: handleError, \r\n /*// @ts-ignore */\r\n fetchPriority: props.preload ? 'high' : 'auto' })));\r\n break;\r\n }\r\n case 'fill': {\r\n components = (React.createElement(ImageStyles.Fill, null,\r\n React.createElement(ImageStyles.Image, { role: props.role, alt: props.alt, decoding: props.preload ? 'sync' : 'async', loading: props.loading ? props.loading : 'lazy', draggable: props.draggable, objectFit: props.objectFit, objectPosition: props.objectPosition, sizes: sizes, srcSet: srcSetUrls, src: src, onError: handleError, \r\n /*// @ts-ignore */\r\n fetchPriority: props.preload ? 'high' : 'auto' })));\r\n break;\r\n }\r\n }\r\n return React.createElement(React.Fragment, null, components);\r\n};\r\nexport default Image;\r\n","import * as React from 'react';\n\nconst LEFT = \"Left\";\nconst RIGHT = \"Right\";\nconst UP = \"Up\";\nconst DOWN = \"Down\";\n\n/* global document */\nconst defaultProps = {\n delta: 10,\n preventScrollOnSwipe: false,\n rotationAngle: 0,\n trackMouse: false,\n trackTouch: true,\n swipeDuration: Infinity,\n touchEventOptions: { passive: true },\n};\nconst initialState = {\n first: true,\n initial: [0, 0],\n start: 0,\n swiping: false,\n xy: [0, 0],\n};\nconst mouseMove = \"mousemove\";\nconst mouseUp = \"mouseup\";\nconst touchEnd = \"touchend\";\nconst touchMove = \"touchmove\";\nconst touchStart = \"touchstart\";\nfunction getDirection(absX, absY, deltaX, deltaY) {\n if (absX > absY) {\n if (deltaX > 0) {\n return RIGHT;\n }\n return LEFT;\n }\n else if (deltaY > 0) {\n return DOWN;\n }\n return UP;\n}\nfunction rotateXYByAngle(pos, angle) {\n if (angle === 0)\n return pos;\n const angleInRadians = (Math.PI / 180) * angle;\n const x = pos[0] * Math.cos(angleInRadians) + pos[1] * Math.sin(angleInRadians);\n const y = pos[1] * Math.cos(angleInRadians) - pos[0] * Math.sin(angleInRadians);\n return [x, y];\n}\nfunction getHandlers(set, handlerProps) {\n const onStart = (event) => {\n const isTouch = \"touches\" in event;\n // if more than a single touch don't track, for now...\n if (isTouch && event.touches.length > 1)\n return;\n set((state, props) => {\n // setup mouse listeners on document to track swipe since swipe can leave container\n if (props.trackMouse && !isTouch) {\n document.addEventListener(mouseMove, onMove);\n document.addEventListener(mouseUp, onUp);\n }\n const { clientX, clientY } = isTouch ? event.touches[0] : event;\n const xy = rotateXYByAngle([clientX, clientY], props.rotationAngle);\n props.onTouchStartOrOnMouseDown &&\n props.onTouchStartOrOnMouseDown({ event });\n return Object.assign(Object.assign(Object.assign({}, state), initialState), { initial: xy.slice(), xy, start: event.timeStamp || 0 });\n });\n };\n const onMove = (event) => {\n set((state, props) => {\n const isTouch = \"touches\" in event;\n // Discount a swipe if additional touches are present after\n // a swipe has started.\n if (isTouch && event.touches.length > 1) {\n return state;\n }\n // if swipe has exceeded duration stop tracking\n if (event.timeStamp - state.start > props.swipeDuration) {\n return state.swiping ? Object.assign(Object.assign({}, state), { swiping: false }) : state;\n }\n const { clientX, clientY } = isTouch ? event.touches[0] : event;\n const [x, y] = rotateXYByAngle([clientX, clientY], props.rotationAngle);\n const deltaX = x - state.xy[0];\n const deltaY = y - state.xy[1];\n const absX = Math.abs(deltaX);\n const absY = Math.abs(deltaY);\n const time = (event.timeStamp || 0) - state.start;\n const velocity = Math.sqrt(absX * absX + absY * absY) / (time || 1);\n const vxvy = [deltaX / (time || 1), deltaY / (time || 1)];\n const dir = getDirection(absX, absY, deltaX, deltaY);\n // if swipe is under delta and we have not started to track a swipe: skip update\n const delta = typeof props.delta === \"number\"\n ? props.delta\n : props.delta[dir.toLowerCase()] ||\n defaultProps.delta;\n if (absX < delta && absY < delta && !state.swiping)\n return state;\n const eventData = {\n absX,\n absY,\n deltaX,\n deltaY,\n dir,\n event,\n first: state.first,\n initial: state.initial,\n velocity,\n vxvy,\n };\n // call onSwipeStart if present and is first swipe event\n eventData.first && props.onSwipeStart && props.onSwipeStart(eventData);\n // call onSwiping if present\n props.onSwiping && props.onSwiping(eventData);\n // track if a swipe is cancelable (handler for swiping or swiped(dir) exists)\n // so we can call preventDefault if needed\n let cancelablePageSwipe = false;\n if (props.onSwiping ||\n props.onSwiped ||\n props[`onSwiped${dir}`]) {\n cancelablePageSwipe = true;\n }\n if (cancelablePageSwipe &&\n props.preventScrollOnSwipe &&\n props.trackTouch &&\n event.cancelable) {\n event.preventDefault();\n }\n return Object.assign(Object.assign({}, state), { \n // first is now always false\n first: false, eventData, swiping: true });\n });\n };\n const onEnd = (event) => {\n set((state, props) => {\n let eventData;\n if (state.swiping && state.eventData) {\n // if swipe is less than duration fire swiped callbacks\n if (event.timeStamp - state.start < props.swipeDuration) {\n eventData = Object.assign(Object.assign({}, state.eventData), { event });\n props.onSwiped && props.onSwiped(eventData);\n const onSwipedDir = props[`onSwiped${eventData.dir}`];\n onSwipedDir && onSwipedDir(eventData);\n }\n }\n else {\n props.onTap && props.onTap({ event });\n }\n props.onTouchEndOrOnMouseUp && props.onTouchEndOrOnMouseUp({ event });\n return Object.assign(Object.assign(Object.assign({}, state), initialState), { eventData });\n });\n };\n const cleanUpMouse = () => {\n // safe to just call removeEventListener\n document.removeEventListener(mouseMove, onMove);\n document.removeEventListener(mouseUp, onUp);\n };\n const onUp = (e) => {\n cleanUpMouse();\n onEnd(e);\n };\n /**\n * The value of passive on touchMove depends on `preventScrollOnSwipe`:\n * - true => { passive: false }\n * - false => { passive: true } // Default\n *\n * NOTE: When preventScrollOnSwipe is true, we attempt to call preventDefault to prevent scroll.\n *\n * props.touchEventOptions can also be set for all touch event listeners,\n * but for `touchmove` specifically when `preventScrollOnSwipe` it will\n * supersede and force passive to false.\n *\n */\n const attachTouch = (el, props) => {\n let cleanup = () => { };\n if (el && el.addEventListener) {\n const baseOptions = Object.assign(Object.assign({}, defaultProps.touchEventOptions), props.touchEventOptions);\n // attach touch event listeners and handlers\n const tls = [\n [touchStart, onStart, baseOptions],\n // preventScrollOnSwipe option supersedes touchEventOptions.passive\n [\n touchMove,\n onMove,\n Object.assign(Object.assign({}, baseOptions), (props.preventScrollOnSwipe ? { passive: false } : {})),\n ],\n [touchEnd, onEnd, baseOptions],\n ];\n tls.forEach(([e, h, o]) => el.addEventListener(e, h, o));\n // return properly scoped cleanup method for removing listeners, options not required\n cleanup = () => tls.forEach(([e, h]) => el.removeEventListener(e, h));\n }\n return cleanup;\n };\n const onRef = (el) => {\n // \"inline\" ref functions are called twice on render, once with null then again with DOM element\n // ignore null here\n if (el === null)\n return;\n set((state, props) => {\n // if the same DOM el as previous just return state\n if (state.el === el)\n return state;\n const addState = {};\n // if new DOM el clean up old DOM and reset cleanUpTouch\n if (state.el && state.el !== el && state.cleanUpTouch) {\n state.cleanUpTouch();\n addState.cleanUpTouch = void 0;\n }\n // only attach if we want to track touch\n if (props.trackTouch && el) {\n addState.cleanUpTouch = attachTouch(el, props);\n }\n // store event attached DOM el for comparison, clean up, and re-attachment\n return Object.assign(Object.assign(Object.assign({}, state), { el }), addState);\n });\n };\n // set ref callback to attach touch event listeners\n const output = {\n ref: onRef,\n };\n // if track mouse attach mouse down listener\n if (handlerProps.trackMouse) {\n output.onMouseDown = onStart;\n }\n return [output, attachTouch];\n}\nfunction updateTransientState(state, props, previousProps, attachTouch) {\n // if trackTouch is off or there is no el, then remove handlers if necessary and exit\n if (!props.trackTouch || !state.el) {\n if (state.cleanUpTouch) {\n state.cleanUpTouch();\n }\n return Object.assign(Object.assign({}, state), { cleanUpTouch: undefined });\n }\n // trackTouch is on, so if there are no handlers attached, attach them and exit\n if (!state.cleanUpTouch) {\n return Object.assign(Object.assign({}, state), { cleanUpTouch: attachTouch(state.el, props) });\n }\n // trackTouch is on and handlers are already attached, so if preventScrollOnSwipe changes value,\n // remove and reattach handlers (this is required to update the passive option when attaching\n // the handlers)\n if (props.preventScrollOnSwipe !== previousProps.preventScrollOnSwipe ||\n props.touchEventOptions.passive !== previousProps.touchEventOptions.passive) {\n state.cleanUpTouch();\n return Object.assign(Object.assign({}, state), { cleanUpTouch: attachTouch(state.el, props) });\n }\n return state;\n}\nfunction useSwipeable(options) {\n const { trackMouse } = options;\n const transientState = React.useRef(Object.assign({}, initialState));\n const transientProps = React.useRef(Object.assign({}, defaultProps));\n // track previous rendered props\n const previousProps = React.useRef(Object.assign({}, transientProps.current));\n previousProps.current = Object.assign({}, transientProps.current);\n // update current render props & defaults\n transientProps.current = Object.assign(Object.assign({}, defaultProps), options);\n // Force defaults for config properties\n let defaultKey;\n for (defaultKey in defaultProps) {\n if (transientProps.current[defaultKey] === void 0) {\n transientProps.current[defaultKey] = defaultProps[defaultKey];\n }\n }\n const [handlers, attachTouch] = React.useMemo(() => getHandlers((stateSetter) => (transientState.current = stateSetter(transientState.current, transientProps.current)), { trackMouse }), [trackMouse]);\n transientState.current = updateTransientState(transientState.current, transientProps.current, previousProps.current, attachTouch);\n return handlers;\n}\n\nexport { DOWN, LEFT, RIGHT, UP, useSwipeable };\n//# sourceMappingURL=index.js.map\n","import brand from '@helpers/brand';\r\nimport { Device, from, until } from '@helpers/media';\r\nimport SiteWideStyles from '@stories/Components/Global/SiteWide/SiteWide.styles';\r\nimport DotPaginationStyles from '@stories/Components/Misc/DotPagination/DotPagination.styles';\r\nimport { BreadcrumbsStyles } from '@stories/Widgets/Meta/Breadcrumbs/Breadcrumbs.styles';\r\nimport { m } from 'framer-motion';\r\nimport styled from 'styled-components';\r\nconst Container = styled(m.section) `\r\n position: relative;\r\n`;\r\nconst BreadcrumbWrapper = styled.div `\r\n position: absolute;\r\n width: 100%;\r\n z-index: 2;\r\n\r\n ${BreadcrumbsStyles.Inner} li a, ${BreadcrumbsStyles.Inner} li:after {\r\n color: ${brand.white};\r\n }\r\n`;\r\nconst ItemList = styled.ul `\r\n position: relative;\r\n display: grid;\r\n z-index: 0;\r\n`;\r\nconst Item = styled.li `\r\n grid-area: 1 / 1;\r\n pointer-events: none;\r\n\r\n &[aria-current='true'] {\r\n pointer-events: all;\r\n }\r\n`;\r\nconst PaginationWrapper = styled.div `\r\n pointer-events: none;\r\n z-index: 1;\r\n\r\n ${DotPaginationStyles.Container} {\r\n pointer-events: all;\r\n --direction: column;\r\n }\r\n\r\n @media ${until(Device.TabletLarge)} {\r\n position: absolute;\r\n bottom: 10px;\r\n left: 0;\r\n width: 100%;\r\n\r\n ${SiteWideStyles.Container} {\r\n display: flex;\r\n justify-content: center;\r\n }\r\n\r\n ${DotPaginationStyles.Container} {\r\n flex-direction: row;\r\n }\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n position: absolute;\r\n top: 50%;\r\n left: 0;\r\n transform: translateY(-50%);\r\n width: 100%;\r\n\r\n ${SiteWideStyles.Container} {\r\n display: flex;\r\n justify-content: flex-start;\r\n }\r\n\r\n ${DotPaginationStyles.Container} {\r\n flex-direction: column;\r\n }\r\n }\r\n`;\r\nexport const HomepageCarouselStyles = {\r\n BreadcrumbWrapper,\r\n Container,\r\n ItemList,\r\n Item,\r\n PaginationWrapper,\r\n};\r\n","import brand from '@helpers/brand';\r\nimport { fonts } from '@helpers/fonts';\r\nimport { between, Device, from, until } from '@helpers/media';\r\nimport SiteWideStyles from '@stories/Components/Global/SiteWide/SiteWide.styles';\r\nimport ParagraphStyles from '@stories/Components/Global/Typography/Paragraph.styles';\r\nimport { m } from 'framer-motion';\r\nimport styled from 'styled-components';\r\nconst Container = styled(m.section) `\r\n position: relative;\r\n display: grid;\r\n height: 100%;\r\n min-height: 296px;\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n height: 90vh;\r\n max-height: min(100vh - 185px, 786px);\r\n }\r\n`;\r\nconst ImageWrapper = styled.div `\r\n position: relative;\r\n grid-area: 1 / 1;\r\n`;\r\nconst ContentWrapper = styled.div `\r\n position: relative;\r\n display: flex;\r\n flex-direction: column;\r\n grid-area: 1 / 1;\r\n height: 100%;\r\n justify-content: flex-start;\r\n\r\n ${SiteWideStyles.Container} {\r\n display: flex;\r\n align-items: center;\r\n height: 100%;\r\n\r\n @media ${between(Device.TabletLarge, Device.DesktopSmall)} {\r\n padding-top: 40px;\r\n padding-bottom: 40px;\r\n }\r\n\r\n @media ${until(Device.TabletLarge)} {\r\n padding-top: 75px;\r\n padding-bottom: 75px;\r\n }\r\n }\r\n`;\r\nconst Overlay = styled.div `\r\n content: '';\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n background: rgba(0, 0, 0, 0.43);\r\n height: 100%;\r\n width: 100%;\r\n z-index: 1;\r\n`;\r\nconst ContentWrapperInner = styled.div `\r\n position: relative;\r\n z-index: 2;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n padding-left: max(10vw, 64px);\r\n }\r\n`;\r\nconst Title = styled(m.h1) `\r\n display: block;\r\n color: ${brand.white};\r\n ${fonts.DaxPro.Bold};\r\n font-size: clamp(30px, 20px + 2.5vw, 50px);\r\n line-height: 1.2;\r\n max-width: clamp(350px, 70vw, 526px);\r\n margin-bottom: 20px;\r\n`;\r\nconst Description = styled(m.p) `\r\n ${ParagraphStyles.RegularStyles};\r\n color: ${brand.white};\r\n max-width: clamp(350px, 70vw, 800px);\r\n`;\r\nconst CtaWrapper = styled.div `\r\n margin-top: 25px;\r\n`;\r\nexport const HomepageCarouselItemStyles = {\r\n Container,\r\n ContentWrapper,\r\n ContentWrapperInner,\r\n CtaWrapper,\r\n ImageWrapper,\r\n Overlay,\r\n Title,\r\n Description,\r\n};\r\n","import { LinkButton } from '@stories/Components/Buttons/Button/Button';\r\nimport SiteWide from '@stories/Components/Global/SiteWide/SiteWide';\r\nimport Image from '@stories/Components/Media/Image/Image';\r\nimport { m } from 'framer-motion';\r\nimport React from 'react';\r\nimport { HomepageCarouselItemStyles as S } from './HomepageCarouselItem.styles';\r\nconst HomepageCarouselItem = ({ active, cta, image, index, title, description, }) => {\r\n return (React.createElement(S.Container, { initial: active ? 'visible' : 'hidden', animate: active ? 'visible' : 'hidden', variants: { hidden: { opacity: 0 }, visible: { opacity: 1 } } },\r\n React.createElement(S.ImageWrapper, null,\r\n React.createElement(Image, { ...image, alt: title || description || '', objectFit: \"cover\", loading: index === 0 ? 'eager' : 'lazy', preload: index === 0 })),\r\n React.createElement(S.Overlay, { style: { transformOrigin: 'top center' } }),\r\n React.createElement(S.ContentWrapper, null,\r\n React.createElement(SiteWide, null,\r\n React.createElement(S.ContentWrapperInner, null,\r\n React.createElement(S.Title, { as: index === 0 ? m.h1 : m.h2 }, title),\r\n description && React.createElement(S.Description, null, description),\r\n cta && (React.createElement(S.CtaWrapper, null,\r\n React.createElement(LinkButton, { branding: \"white\", href: cta.url, target: cta.target, title: cta.title }))))))));\r\n};\r\nexport default HomepageCarouselItem;\r\n","import { HydrateOption } from '@core/enums';\r\nimport { Device, until } from '@helpers/media';\r\nimport { isSSR } from '@helpers/ssr';\r\nimport withWidget from '@hoc/withWidget';\r\nimport useMedia from '@hooks/useMedia';\r\nimport SiteWide from '@stories/Components/Global/SiteWide/SiteWide';\r\nimport Breadcrumbs from '@stories/Widgets/Meta/Breadcrumbs/Breadcrumbs.widget';\r\nimport React from 'react';\r\nimport { useSwipeable } from 'react-swipeable';\r\nimport { HomepageCarouselStyles as S } from './HomepageCarousel.styles';\r\nimport HomepageCarouselItem from './HomepageCarouselItem/HomepageCarouselItem';\r\nimport { useAutoplay } from '@hooks/useAutoplay';\r\nimport { useInView } from '@hooks/useInView';\r\nimport { withMotionMax } from '@hoc/withMotionMax';\r\nimport DotPagination from '@stories/Components/Misc/DotPagination/DotPagination';\r\nconst HomepageCarousel = ({ items, breadcrumb, autoplay = 0, }) => {\r\n const isMobile = useMedia([until(Device.Tablet)], [true], false);\r\n const [refContainer, inView] = useInView({}, true);\r\n const { activeIndex, duration, paused, setActiveIndex, setPaused } = useAutoplay({\r\n enabled: autoplay > 0,\r\n duration: autoplay,\r\n items,\r\n });\r\n React.useEffect(() => {\r\n setPaused(!inView);\r\n }, [inView]);\r\n const swipeHandlers = useSwipeable({\r\n onSwipedLeft: () => {\r\n setActiveIndex(Math.min(activeIndex + 1, items.length - 1));\r\n },\r\n onSwipedRight: () => {\r\n setActiveIndex(Math.max(activeIndex - 1, 0));\r\n },\r\n });\r\n return (React.createElement(React.Fragment, null,\r\n React.createElement(\"div\", { ...swipeHandlers, ref: (r) => {\r\n refContainer.current = r;\r\n swipeHandlers.ref(r);\r\n } },\r\n React.createElement(S.Container, null,\r\n breadcrumb && (React.createElement(S.BreadcrumbWrapper, null,\r\n React.createElement(Breadcrumbs, { items: breadcrumb }))),\r\n React.createElement(S.ItemList, null,\r\n !isMobile &&\r\n !isSSR() &&\r\n items.map((item, index) => (React.createElement(S.Item, { key: item.id, \"aria-current\": activeIndex === index },\r\n React.createElement(HomepageCarouselItem, { ...item, active: activeIndex === index, index: index })))),\r\n isMobile || (isSSR() && items.length > 0) ? (React.createElement(S.Item, { key: items[0].id, \"aria-current\": true },\r\n React.createElement(HomepageCarouselItem, { ...items[0], active: true, index: 0 }))) : null),\r\n items.length > 1 && !isMobile && !isSSR() && (React.createElement(S.PaginationWrapper, null,\r\n React.createElement(SiteWide, null,\r\n React.createElement(DotPagination, { autoplay: duration, count: items.length, paused: paused, value: activeIndex, onChange: (index) => {\r\n setActiveIndex(index);\r\n setPaused(true);\r\n }, onHover: (hover) => setPaused(hover) }))))))));\r\n};\r\nexport default withWidget(withMotionMax(HomepageCarousel), 'HomepageCarousel', {\r\n hydrate: HydrateOption.Always,\r\n});\r\n","import * as React from 'react';\r\nexport function useAutoplay(params) {\r\n const refInterval = React.useRef();\r\n const [activeIndex, setActiveIndex] = React.useState(0);\r\n const [paused, setPaused] = React.useState(params.duration === 0);\r\n const activeItem = params.items[activeIndex];\r\n const activeItemDuration = activeItem.duration ?? params.duration;\r\n React.useEffect(() => {\r\n if (params.enabled && !paused) {\r\n refInterval.current = window.setTimeout(update, activeItemDuration);\r\n }\r\n return cleanup;\r\n function update() {\r\n if (paused) {\r\n return;\r\n }\r\n let newIndex = activeIndex + 1;\r\n if (newIndex === params.items.length) {\r\n newIndex = 0;\r\n }\r\n setActiveIndex(newIndex);\r\n }\r\n function cleanup() {\r\n if (refInterval.current) {\r\n window.clearInterval(refInterval.current);\r\n }\r\n }\r\n }, [activeIndex, activeItemDuration, paused, params.enabled]);\r\n return {\r\n activeIndex,\r\n duration: activeItemDuration,\r\n setActiveIndex,\r\n paused,\r\n setPaused,\r\n };\r\n}\r\n","var _g;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from \"react\";\n\nfunction SvgLinePattern(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 119 45\"\n }, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n \"data-name\": \"Line pattern\",\n fill: \"none\",\n stroke: \"currentColor\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n \"data-name\": \"Line 16\",\n d: \"M198.312-368.656l-423.66 764.334M202.674-366.238l-423.66 764.334M207.036-363.82l-423.66 764.334M211.398-361.402l-423.66 764.334M215.761-358.984l-423.66 764.334M220.123-356.566l-423.66 764.334M224.485-354.148l-423.66 764.334M228.847-351.73l-423.66 764.334M233.209-349.312l-423.66 764.334M237.572-346.894l-423.66 764.334M241.934-344.476l-423.66 764.334M246.296-342.058l-423.66 764.334M250.658-339.64l-423.66 764.334M255.02-337.222l-423.66 764.334M259.382-334.804l-423.66 764.334M263.744-332.386l-423.66 764.334M268.107-329.968l-423.66 764.334M272.469-327.55l-423.66 764.334M276.831-325.132l-423.66 764.334M281.193-322.714l-423.66 764.334M285.555-320.296l-423.66 764.334M289.917-317.878l-423.66 764.334M294.28-315.46l-423.66 764.334M298.642-313.042l-423.66 764.334M303.004-310.624l-423.66 764.334M307.366-308.206l-423.66 764.334M311.728-305.788l-423.66 764.334M316.091-303.37l-423.66 764.334M320.453-300.952l-423.66 764.334M324.815-298.534L-98.845 465.8M329.177-296.116l-423.66 764.334M333.539-293.698l-423.66 764.334M337.901-291.28l-423.66 764.334M342.264-288.862l-423.66 764.334M346.625-286.444L-77.035 477.89M350.988-284.026l-423.66 764.334M355.35-281.608L-68.31 482.726M359.712-279.19l-423.66 764.334M364.074-276.772l-423.66 764.334M368.436-274.354L-55.224 489.98M372.799-271.936l-423.66 764.334M377.161-269.518l-423.66 764.334M381.523-267.1l-423.66 764.334M385.885-264.682l-423.66 764.334M390.247-262.264L-33.413 502.07M394.609-259.847l-423.66 764.334M398.972-257.428l-423.66 764.334M403.334-255.011l-423.66 764.334M407.696-252.592l-423.66 764.334M412.058-250.175l-423.66 764.334M416.42-247.756L-7.24 516.578M420.783-245.339L-2.877 518.995M425.145-242.92L1.485 521.414M429.507-240.503L5.847 523.831M433.869-238.084L10.209 526.25M438.231-235.667L14.571 528.667M442.593-233.248L18.933 531.086M446.955-230.831L23.295 533.503M451.318-228.413L27.658 535.921M455.68-225.995L32.02 538.339M460.042-223.577L36.382 540.757M464.404-221.159L40.744 543.175M468.766-218.741L45.106 545.593M473.128-216.323L49.468 548.011M477.491-213.905L53.831 550.429M481.853-211.487L58.193 552.847M486.215-209.069L62.555 555.265M490.577-206.651L66.917 557.683M494.939-204.233L71.279 560.101M499.302-201.815L75.642 562.519M503.664-199.397L80.004 564.937M508.026-196.979L84.366 567.355M512.388-194.561L88.728 569.773M516.75-192.143L93.09 572.191M521.112-189.725L97.452 574.609M525.474-187.307l-423.66 764.334M529.836-184.889l-423.66 764.334M534.199-182.471l-423.66 764.334M538.561-180.053l-423.66 764.334M542.923-177.635l-423.66 764.334M547.285-175.217l-423.66 764.334M551.647-172.799l-423.66 764.334M556.01-170.381L132.35 593.953M560.372-167.963l-423.66 764.334M564.734-165.545l-423.66 764.334M569.096-163.127l-423.66 764.334M573.458-160.709l-423.66 764.334M577.821-158.291l-423.66 764.334M582.183-155.873l-423.66 764.334M586.545-153.455l-423.66 764.334M590.907-151.037l-423.66 764.334M595.269-148.619l-423.66 764.334M599.631-146.201l-423.66 764.334M603.993-143.783l-423.66 764.334M608.355-141.365l-423.66 764.334M612.718-138.947l-423.66 764.334M617.08-136.529L193.42 627.805M621.442-134.111l-423.66 764.334M625.804-131.693l-423.66 764.334M630.166-129.275l-423.66 764.334M634.529-126.857l-423.66 764.334M638.891-124.439l-423.66 764.334M643.253-122.021l-423.66 764.334M647.615-119.603l-423.66 764.334M651.977-117.185l-423.66 764.334M656.339-114.767l-423.66 764.334M660.702-112.349l-423.66 764.334M665.064-109.931l-423.66 764.334M669.426-107.513l-423.66 764.334M673.788-105.095l-423.66 764.334M678.15-102.677L254.49 661.657M682.513-100.259l-423.66 764.334M686.874-97.841l-423.66 764.334M691.237-95.423l-423.66 764.334M695.599-93.005l-423.66 764.334M699.961-90.587l-423.66 764.334M704.323-88.169l-423.66 764.334M708.685-85.751l-423.66 764.334M713.047-83.333l-423.66 764.334M717.41-80.915L293.75 683.419M721.772-78.497l-423.66 764.334M726.134-76.079l-423.66 764.334M730.496-73.661l-423.66 764.334M734.858-71.243l-423.66 764.334M739.221-68.825l-423.66 764.334M743.583-66.407l-423.66 764.334M747.945-63.99l-423.66 764.334M752.307-61.571l-423.66 764.334M756.669-59.153l-423.66 764.334M761.032-56.735l-423.66 764.334M765.394-54.318l-423.66 764.334M769.756-51.899l-423.66 764.334M774.118-49.481l-423.66 764.334M778.48-47.064L354.82 717.27M782.842-44.646l-423.66 764.334M787.204-42.227l-423.66 764.334M791.566-39.809l-423.66 764.334M795.929-37.392l-423.66 764.334M800.291-34.974L376.631 729.36M804.653-32.556l-423.66 764.334M809.015-30.137l-423.66 764.334M813.377-27.72l-423.66 764.334M817.74-25.302L394.08 739.032\",\n strokeWidth: 1.00042\n }))));\n}\n\nexport default __webpack_public_path__ + \"32774766b3243253aabbc97bbe71ff0a.svg\";\nexport { SvgLinePattern as ReactComponent };","import brand from '@helpers/brand';\r\nimport { fonts } from '@helpers/fonts';\r\nimport { ButtonReset } from '@helpers/global';\r\nimport { Device, until } from '@helpers/media';\r\nimport { ReactComponent as SvgHoverLines } from '@img/line-pattern.svg';\r\nimport styled, { css } from 'styled-components';\r\nconst Text = styled.div ``;\r\nconst HoverEffect = styled(SvgHoverLines) `\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n transform: translate(0, 0);\r\n transition: transform 0.3s;\r\n\r\n [data-theme='textOnly'] & {\r\n display: none;\r\n }\r\n [data-theme='textOnlyPrimary'] & {\r\n display: none;\r\n }\r\n [data-theme='primary'] &,\r\n &[data-theme='primary'] {\r\n color: ${brand.primary.base};\r\n }\r\n [data-theme='primaryAlt'] &,\r\n &[data-theme='primaryAlt'] {\r\n color: ${brand.primary.alt};\r\n }\r\n [data-theme='secondary'] &,\r\n &[data-theme='secondary'] {\r\n color: ${brand.accent.orange};\r\n }\r\n [data-theme='white'] &,\r\n &[data-theme='white'] {\r\n color: ${brand.white};\r\n }\r\n [data-theme='black'] &,\r\n &[data-theme='black'] {\r\n color: ${brand.black};\r\n }\r\n [data-theme='grey'] &,\r\n &[data-theme='grey'] {\r\n color: ${brand.black};\r\n }\r\n`;\r\nconst PrimaryStyles = css `\r\n color: ${brand.white};\r\n background-color: ${brand.primary.base};\r\n\r\n &:hover {\r\n background-color: #a2b952;\r\n color: ${brand.white};\r\n }\r\n\r\n &:active,\r\n &:focus {\r\n color: ${brand.white};\r\n }\r\n`;\r\nconst PrimaryAltStyles = css `\r\n color: ${brand.white};\r\n background-color: ${brand.primary.alt};\r\n\r\n &:hover {\r\n background-color: #a2b952;\r\n color: ${brand.white};\r\n }\r\n\r\n &:active,\r\n &:focus {\r\n color: ${brand.white};\r\n }\r\n`;\r\nconst SecondaryStyles = css `\r\n background-color: ${brand.accent.orange};\r\n color: ${brand.white};\r\n\r\n &:focus {\r\n background-color: ${brand.accent.orange};\r\n color: ${brand.white};\r\n }\r\n\r\n &:hover {\r\n border-color: ${brand.black};\r\n background-color: ${brand.black};\r\n color: ${brand.white};\r\n }\r\n\r\n &:active,\r\n &:focus {\r\n color: ${brand.grey.grey55};\r\n }\r\n`;\r\nconst WhiteStyles = css `\r\n background-color: ${brand.white};\r\n color: ${brand.black};\r\n border: 1px solid ${brand.white};\r\n\r\n &:hover {\r\n border-color: ${brand.white};\r\n background-color: ${brand.white};\r\n color: ${brand.black};\r\n }\r\n\r\n &:active,\r\n &:focus {\r\n color: ${brand.black};\r\n }\r\n`;\r\nconst BlackStyles = css `\r\n background-color: ${brand.grey.grey20};\r\n color: ${brand.white};\r\n\r\n &:hover {\r\n border-color: ${brand.grey.grey44};\r\n background-color: ${brand.grey.grey44};\r\n color: ${brand.white};\r\n }\r\n\r\n &:active,\r\n &:focus {\r\n color: ${brand.white};\r\n }\r\n`;\r\nconst GreyStyles = css `\r\n background-color: ${brand.grey.grey89};\r\n color: ${brand.black};\r\n\r\n &:hover {\r\n border-color: ${brand.grey.grey76};\r\n background-color: ${brand.grey.grey76};\r\n color: ${brand.black};\r\n }\r\n\r\n &:active,\r\n &:focus {\r\n color: ${brand.black};\r\n }\r\n`;\r\nconst TextOnlyStyles = css `\r\n border: 1px solid transparent;\r\n background: none;\r\n color: ${brand.black};\r\n\r\n &:hover {\r\n border-color: ${brand.black};\r\n background-color: ${brand.black};\r\n color: ${brand.white};\r\n }\r\n\r\n &:active,\r\n &:focus {\r\n color: ${brand.white};\r\n }\r\n`;\r\nconst TextOnlyPrimaryStyles = css `\r\n ${TextOnlyStyles};\r\n color: ${brand.primary.alt};\r\n\r\n &:hover {\r\n border-color: transparent;\r\n background-color: transparent;\r\n color: ${brand.primary.base};\r\n }\r\n\r\n &:active,\r\n &:focus {\r\n color: ${brand.primary.base};\r\n }\r\n`;\r\nconst IconLeft = css `\r\n padding-right: 12px;\r\n\r\n @media ${until(Device.DesktopSmall)} {\r\n padding-right: 6px;\r\n }\r\n`;\r\nconst IconRight = css `\r\n padding-left: 15px;\r\n\r\n @media ${until(Device.DesktopSmall)} {\r\n padding-left: 6px;\r\n }\r\n`;\r\nconst hideText = css `\r\n ${Text} {\r\n @media ${until(Device.DesktopSmall)} {\r\n display: none;\r\n }\r\n }\r\n`;\r\nconst Icon = styled.div `\r\n display: inline-block;\r\n vertical-align: middle;\r\n\r\n ${({ position }) => {\r\n switch (position) {\r\n case 'left':\r\n return IconLeft;\r\n case 'right':\r\n return IconRight;\r\n default:\r\n break;\r\n }\r\n}}\r\n\r\n svg {\r\n vertical-align: middle;\r\n max-height: 24px;\r\n width: 22px;\r\n }\r\n`;\r\nconst Inner = styled.div `\r\n position: relative;\r\n padding: 11px 14px;\r\n\r\n [data-theme='textOnly'] & {\r\n ${TextOnlyStyles}\r\n }\r\n [data-theme='textOnlyPrimary'] & {\r\n ${TextOnlyPrimaryStyles}\r\n }\r\n [data-theme='primary'] & {\r\n ${PrimaryStyles}\r\n }\r\n [data-theme='primaryAlt'] & {\r\n ${PrimaryAltStyles}\r\n }\r\n [data-theme='secondary'] & {\r\n ${SecondaryStyles}\r\n }\r\n [data-theme='white'] & {\r\n ${WhiteStyles}\r\n }\r\n [data-theme='black'] & {\r\n ${BlackStyles}\r\n }\r\n [data-theme='grey'] & {\r\n ${GreyStyles}\r\n }\r\n`;\r\nconst Button = styled.button `\r\n ${ButtonReset};\r\n display: inline-block;\r\n padding: 0;\r\n position: relative;\r\n transition: background-color 0.3s, border-color 0.3s, opacity 100ms;\r\n user-select: none;\r\n background-color: transparent;\r\n border: none;\r\n\r\n &:hover,\r\n &:focus {\r\n ${HoverEffect} {\r\n transform: translate(10px, 10px);\r\n }\r\n }\r\n\r\n &:disabled {\r\n user-select: none;\r\n cursor: not-allowed;\r\n opacity: 0.5;\r\n }\r\n\r\n ${Text} {\r\n ${fonts.DaxPro.Bold};\r\n font-size: 18px;\r\n line-height: 24px;\r\n display: inline-block;\r\n vertical-align: middle;\r\n }\r\n\r\n ${({ branding }) => {\r\n switch (branding) {\r\n case 'textOnly':\r\n return TextOnlyStyles;\r\n case 'textOnlyPrimary':\r\n return TextOnlyPrimaryStyles;\r\n case 'primary':\r\n return PrimaryStyles;\r\n case 'secondary':\r\n return SecondaryStyles;\r\n case 'white':\r\n return WhiteStyles;\r\n case 'black':\r\n return BlackStyles;\r\n default:\r\n break;\r\n }\r\n}}\r\n\r\n ${({ hoverColour }) => {\r\n switch (hoverColour) {\r\n case 'primary':\r\n return css `\r\n ${HoverEffect} {\r\n color: ${brand.primary.alt} !important;\r\n }\r\n\r\n ${Inner} {\r\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out;\r\n }\r\n\r\n &:hover {\r\n ${Inner} {\r\n background-color: ${brand.primary.alt} !important;\r\n border-color: ${brand.primary.alt} !important;\r\n }\r\n }\r\n `;\r\n default:\r\n break;\r\n }\r\n}}\r\n\r\n ${({ hideTextMobile }) => {\r\n if (hideTextMobile) {\r\n return hideText;\r\n }\r\n}}\r\n`;\r\nexport const ButtonStyles = {\r\n Button,\r\n HoverEffect,\r\n Icon,\r\n Inner,\r\n Text,\r\n};\r\n"],"sourceRoot":""}