{"version":3,"file":"53-fea6fece9b91ffe13643.js","mappings":"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","sources":["webpack://royal-geographical-society/./src/helpers/aspectRatio.ts","webpack://royal-geographical-society/./src/helpers/image.ts","webpack://royal-geographical-society/./src/helpers/srOnly.ts","webpack://royal-geographical-society/./src/helpers/ssr.ts","webpack://royal-geographical-society/./src/helpers/trackingClasses.ts","webpack://royal-geographical-society/./src/hoc/withMotionMax.tsx","webpack://royal-geographical-society/./src/stories/Components/Carousels/Carousel/CarouselProvider/CarouselProvider.tsx","webpack://royal-geographical-society/./src/hooks/useCarousel.ts","webpack://royal-geographical-society/./src/hooks/useResize.ts","webpack://royal-geographical-society/./src/stories/Components/Carousels/Carousel/Connected/Connected.tsx","webpack://royal-geographical-society/./src/stories/Components/Carousels/Carousel/MotionTrack/MotionTrack.styles.ts","webpack://royal-geographical-society/./src/stories/Components/Carousels/Carousel/MotionTrack/MotionTrack.tsx","webpack://royal-geographical-society/./src/stories/Components/Global/DotPagination/DotPagination.styles.ts","webpack://royal-geographical-society/./src/stories/Components/Global/DotPagination/DotPagination.tsx","webpack://royal-geographical-society/./src/stories/Widgets/HeroBannerCarousel/HeroBannerCarousel.styles.ts","webpack://royal-geographical-society/./src/stories/Widgets/HeroBannerCarousel/CarouselSlide/CarouselSlide.tsx","webpack://royal-geographical-society/./src/stories/Components/Carousels/Carousel/LiveRegion/LiveRegion.styles.ts","webpack://royal-geographical-society/./src/stories/Components/Carousels/Carousel/LiveRegion/LiveRegion.tsx","webpack://royal-geographical-society/./src/stories/Widgets/HeroBannerCarousel/HeroBannerCarousel.tsx","webpack://royal-geographical-society/./src/hooks/useAutoplay.ts","webpack://royal-geographical-society/./node_modules/decode-uri-component/index.js","webpack://royal-geographical-society/./node_modules/filter-obj/index.js","webpack://royal-geographical-society/./node_modules/query-string/index.js","webpack://royal-geographical-society/./node_modules/split-on-first/index.js","webpack://royal-geographical-society/./node_modules/strict-uri-encode/index.js"],"sourcesContent":["import { css } from \"styled-components\";\r\nimport { fluidUnit } from \"./fluid\";\r\n/**\r\n * Returns the aspect ratio of the given width and height as a percentage.\r\n */\r\nexport function aspectRatio(width, height) {\r\n return (height / width) * 100;\r\n}\r\nexport function imageWrapperPreserveRatio(width, height, \r\n/**\r\n * Additonal values to use if the ratio increases over time\r\n */\r\nmaxWidth, maxHeight) {\r\n if (!width && !height) {\r\n return null;\r\n }\r\n let padding;\r\n if (maxWidth && maxHeight) {\r\n padding = `${fluidUnit(aspectRatio(width, height), aspectRatio(maxWidth, maxHeight), '%')}`;\r\n }\r\n else {\r\n padding = `${aspectRatio(width, height)}%`;\r\n }\r\n return css `\r\n position: relative;\r\n height: 0;\r\n width: 100%;\r\n overflow: hidden;\r\n overflow: clip;\r\n padding-bottom: ${padding};\r\n `;\r\n}\r\n/**\r\n * Re-usable styles for an image placed within\r\n * a container maintaining aspect ratio\r\n */\r\nexport const imageCoverContainer = (relative) => css `\r\n display: block;\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n object-position: center;\r\n ${!relative && 'position: absolute; top: 0;left: 0;'}\r\n`;\r\n","import queryString from 'query-string';\r\n/**\r\n * Create an image URL for ImageProcessor\r\n * @param image The image model\r\n * @param imageParams The image parameters\r\n * @returns The image URL\r\n */\r\nexport function imageUrl(image, imageParams) {\r\n if (!image || !image.src) {\r\n return '';\r\n }\r\n /**\r\n * Remove any query param string to ensure paramsString is applied correctly and\r\n * there are no double definitions (setting a param twice prevents any tranformations)\r\n */\r\n const imageSource = image.src.split('?')[0];\r\n const params = {\r\n rxy: image.focalPoint ? `${image.focalPoint.left},${image.focalPoint.top}` : undefined,\r\n ...imageParams,\r\n };\r\n const paramsString = queryString.stringify(params);\r\n return `${imageSource}${paramsString ? `?${queryString.stringify(params)}` : ''}`;\r\n}\r\nexport function getSrcs(image, upper, lower, steps, ratio, params) {\r\n const sizes = getRange(upper, lower, steps);\r\n return sizes.map((size) => `${imageUrl(image, {\r\n width: size,\r\n height: ratio ? size * ratio : undefined,\r\n ...params,\r\n })} ${size}w`);\r\n}\r\nfunction getRange(upper, lower, steps) {\r\n const difference = upper - lower;\r\n const increment = difference / (steps - 1);\r\n return [\r\n lower,\r\n ...Array(steps - 2)\r\n .fill('')\r\n .map((_, index) => Math.ceil(lower + increment * (index + 1))),\r\n upper,\r\n ];\r\n}\r\n","import { css } from 'styled-components';\r\n/**\r\n * Show only for screen readers.\r\n * @description Sourced from https://gist.github.com/ffoodd/000b59f431e3e64e4ce1a24d5bb36034\r\n */\r\nconst srOnly = css `\r\n border: 0 !important;\r\n clip: rect(1px, 1px, 1px, 1px) !important;\r\n -webkit-clip-path: inset(50%) !important;\r\n clip-path: inset(50%) !important;\r\n height: 1px !important;\r\n margin: -1px !important;\r\n overflow: hidden !important;\r\n padding: 0 !important;\r\n position: absolute !important;\r\n width: 1px !important;\r\n white-space: nowrap !important;\r\n`;\r\nexport default srOnly;\r\n","export const isSSR = () => {\r\n const returnValue = !(typeof window != 'undefined' && window.document);\r\n return returnValue;\r\n};\r\n","export const ctaClasses = {\r\n buttons: 'cta-buttons-all',\r\n cards: 'cta-cards-all',\r\n homepageBanner: 'cta-hp-banner',\r\n};\r\n","import { domMax, LazyMotion } from 'framer-motion';\r\nimport React from 'react';\r\nexport function withMotionMax(WrappedComponent) {\r\n const displayName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\r\n const ComponentWithMotionMax = (props) => {\r\n return (React.createElement(LazyMotion, { features: domMax, strict: true },\r\n React.createElement(WrappedComponent, { ...props })));\r\n };\r\n ComponentWithMotionMax.displayName = `withMotionMax(${displayName})`;\r\n return ComponentWithMotionMax;\r\n}\r\n","import { useCarousel } from '@hooks/useCarousel';\r\nimport noop from 'lodash/noop';\r\nimport * as React from 'react';\r\nconst CarouselContext = React.createContext({\r\n activeIndex: 0,\r\n goToIndex: noop,\r\n goToNext: noop,\r\n goToPrev: noop,\r\n reinitialise: noop,\r\n maxIndex: 0,\r\n offset: 0,\r\n offsets: [],\r\n recalculate: noop,\r\n refContainer: null,\r\n refTrack: null,\r\n count: 0,\r\n});\r\nexport const useCarouselContext = () => React.useContext(CarouselContext);\r\nconst CarouselProvider = ({ children, ...otherProps }) => {\r\n const carousel = useCarousel(otherProps);\r\n return React.createElement(CarouselContext.Provider, { value: carousel }, children);\r\n};\r\nexport default CarouselProvider;\r\n","import * as React from 'react';\r\nimport { useResize } from './useResize';\r\nexport function useCarousel(params) {\r\n const refContainer = React.useRef(null);\r\n const refTrack = React.useRef(null);\r\n const [carouselState, dispatch] = React.useReducer(carouselReducer, {\r\n activeIndex: 0,\r\n maxIndex: 0,\r\n offsets: [],\r\n count: 0,\r\n });\r\n useResize({\r\n callback: initCarousel,\r\n debounce: 100,\r\n immediate: true,\r\n on: 'x',\r\n });\r\n React.useEffect(() => {\r\n initCarousel();\r\n }, [carouselState.count]);\r\n return {\r\n ...carouselState,\r\n goToIndex,\r\n goToNext,\r\n goToPrev,\r\n reinitialise,\r\n recalculate: initCarousel,\r\n offset: carouselState.offsets[carouselState.activeIndex],\r\n refContainer,\r\n refTrack,\r\n count: carouselState.count,\r\n };\r\n /**\r\n * Calculate the px offset for the track for the target item index.\r\n * @param index\r\n * @returns\r\n */\r\n function calculateOffset(index) {\r\n if (!refTrack.current) {\r\n return 0;\r\n }\r\n const items = Array.from(refTrack.current.children);\r\n const itemsUntilIndex = items.slice(0, index);\r\n const sum = itemsUntilIndex\r\n .map((el) => el.getBoundingClientRect().width)\r\n .reduce((p, c) => p + c, 0);\r\n return sum;\r\n }\r\n /**\r\n * Initialise the reducer state.\r\n */\r\n function initCarousel() {\r\n const offsets = [];\r\n // Pre-calculate the px offset for each item in the carousel.\r\n Array.from(Array(params.count)).forEach((_, index) => {\r\n offsets.push(calculateOffset(index));\r\n });\r\n // Determine what the max index value needs to be in order for the last item to be within view.\r\n const containerWidth = refContainer.current?.getBoundingClientRect().width ?? 0;\r\n const trackWidth = offsets[offsets.length - 1];\r\n let maxIndex = 0;\r\n for (let index = 0; index < offsets.length; index++) {\r\n const offset = offsets[index];\r\n const remainder = trackWidth - offset;\r\n if (remainder <= containerWidth) {\r\n maxIndex = index + 1;\r\n break;\r\n }\r\n }\r\n // Initialise the carousel state.\r\n dispatch({ type: 'init', payload: { offsets, maxIndex, count: params.count } });\r\n }\r\n /**\r\n * Go to the next item.\r\n */\r\n function goToNext(wrap) {\r\n dispatch({ type: 'next', payload: { wrap: wrap ?? false } });\r\n }\r\n /**\r\n * Go to the previous item.\r\n */\r\n function goToPrev(wrap) {\r\n dispatch({ type: 'prev', payload: { wrap: wrap ?? false } });\r\n }\r\n /**\r\n * Go to the target index.\r\n */\r\n function goToIndex(index) {\r\n dispatch({ type: 'goto', payload: index });\r\n }\r\n /**\r\n * Go to the target index.\r\n */\r\n function reinitialise(count) {\r\n dispatch({ type: 'reinitialise', payload: count });\r\n }\r\n function carouselReducer(state, action) {\r\n switch (action.type) {\r\n case 'init':\r\n return {\r\n activeIndex: 0,\r\n maxIndex: action.payload.maxIndex,\r\n offsets: action.payload.offsets,\r\n count: action.payload.count,\r\n };\r\n case 'reinitialise':\r\n return {\r\n ...state,\r\n count: action.payload,\r\n };\r\n case 'goto':\r\n return { ...state, activeIndex: clamp(action.payload) };\r\n case 'next':\r\n if (action.payload.wrap && state.activeIndex === state.maxIndex) {\r\n return { ...state, activeIndex: 0 };\r\n }\r\n return { ...state, activeIndex: clamp(state.activeIndex + 1) };\r\n case 'prev':\r\n if (action.payload.wrap && state.activeIndex === 0) {\r\n return { ...state, activeIndex: state.maxIndex };\r\n }\r\n return { ...state, activeIndex: clamp(state.activeIndex - 1) };\r\n }\r\n /** Clamp index to be within the min/max index range. */\r\n function clamp(value) {\r\n return Math.max(Math.min(value, state.maxIndex), 0);\r\n }\r\n }\r\n}\r\n","import debounce from 'lodash/debounce';\r\nimport * as React from 'react';\r\nexport function useResize(params) {\r\n const refWindowHeight = React.useRef();\r\n const refWindowWidth = React.useRef();\r\n const onResize = React.useCallback(debounce(() => {\r\n const prevHeight = refWindowHeight.current;\r\n const prevWidth = refWindowWidth.current;\r\n const newHeight = window.innerHeight;\r\n const newWidth = window.innerWidth;\r\n const shouldTrigger = params.on === 'both' ||\r\n (params.on === 'y' && prevHeight !== newHeight) ||\r\n (params.on === 'x' && prevWidth !== newWidth);\r\n if (shouldTrigger) {\r\n params.callback();\r\n }\r\n refWindowHeight.current = newHeight;\r\n refWindowWidth.current = newWidth;\r\n }, params.debounce), [params.debounce, params.on]);\r\n React.useEffect(() => {\r\n if (!params.callback) {\r\n return;\r\n }\r\n if (params.immediate) {\r\n onResize();\r\n }\r\n window.addEventListener('resize', onResize);\r\n return () => {\r\n window.removeEventListener('resize', onResize);\r\n };\r\n }, [params.on]);\r\n}\r\n","import { useCarouselContext } from '../CarouselProvider/CarouselProvider';\r\nconst Connected = ({ children }) => {\r\n const carousel = useCarouselContext();\r\n return children(carousel);\r\n};\r\nexport default Connected;\r\n","import { Device, from } from '@helpers/media';\r\nimport { m } from 'framer-motion';\r\nimport styled from 'styled-components';\r\nconst Container = styled.div `\r\n @media ${from(Device.TabletSmall)} {\r\n &[data-mobile-only='true'] {\r\n display: contents;\r\n }\r\n }\r\n`;\r\nconst Track = styled(m.ul) `\r\n display: flex;\r\n\r\n @media ${from(Device.TabletSmall)} {\r\n [data-mobile-only='true'] & {\r\n display: contents;\r\n }\r\n }\r\n`;\r\nconst SimpleTrackStyles = {\r\n Container,\r\n Track,\r\n};\r\nexport default SimpleTrackStyles;\r\n","import { isSSR } from '@helpers/ssr';\r\nimport { useAnimation } from 'framer-motion';\r\nimport * as React from 'react';\r\nimport { useCarouselContext } from '../CarouselProvider/CarouselProvider';\r\nimport S from './MotionTrack.styles';\r\nconst MotionTrack = ({ children, enableCarousel = true, mobileOnly = false, trackMutations = false, onSwipeChange, ...otherProps }) => {\r\n const animation = useAnimation();\r\n const carousel = useCarouselContext();\r\n const dragging = React.useRef(false);\r\n const xTransform = React.useRef(0);\r\n const maxOffset = carousel.offsets[carousel.maxIndex];\r\n const observer = !isSSR()\r\n ? new MutationObserver(() => {\r\n carousel.reinitialise(carousel.refTrack?.current?.childElementCount ?? 0);\r\n })\r\n : null;\r\n React.useEffect(() => {\r\n if (!trackMutations || !observer || !carousel.refTrack?.current)\r\n return;\r\n observer.observe(carousel.refTrack?.current, { childList: true, subtree: true });\r\n return () => {\r\n if (observer) {\r\n observer.disconnect();\r\n }\r\n };\r\n }, [observer, trackMutations]);\r\n // Stop the drag momentum animation, and start a new animation to the correct offset.\r\n React.useEffect(() => {\r\n if (typeof carousel.offset !== 'undefined') {\r\n animation.stop();\r\n animation.start({ x: -carousel.offset });\r\n }\r\n }, [carousel.activeIndex]);\r\n return (React.createElement(S.Container, { ...otherProps, ref: carousel.refContainer, \"data-mobile-only\": mobileOnly },\r\n React.createElement(S.Track, { ref: carousel.refTrack, animate: animation, drag: enableCarousel ? 'x' : false, dragConstraints: { left: -maxOffset, right: 0 }, onClickCapture: (event) => {\r\n // Ignore click events after dragging, this prevents links being clicked when drag ends.\r\n if (dragging.current) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n dragging.current = false;\r\n }\r\n }, onDragStart: () => {\r\n dragging.current = true;\r\n }, onDragEnd: (_, info) => {\r\n // Get the absolute x value, avoiding overflow when dragging left.\r\n const absX = Math.abs(Math.min(xTransform.current, 0));\r\n // Determine the next target index.\r\n let targetIndex = carousel.offsets.findIndex((offset) => offset > absX) ?? 0;\r\n // If it is -1 then we scrolled past the max offset value.\r\n if (targetIndex === -1) {\r\n targetIndex = carousel.maxIndex;\r\n }\r\n // Ensure we take into account the drag direction.\r\n if (info.offset.x > 0) {\r\n targetIndex = Math.max(0, targetIndex - 1);\r\n }\r\n // Update the carousel state.\r\n carousel.goToIndex(targetIndex);\r\n onSwipeChange && onSwipeChange(targetIndex);\r\n }, onUpdate: (latest) => {\r\n // Store the current x position as the carousel is dragged.\r\n xTransform.current = typeof latest.x === 'number' ? latest.x : parseFloat(latest.x);\r\n } }, children)));\r\n};\r\nexport default MotionTrack;\r\n","import { cubicEaseOut, transition } from '@helpers/animate';\r\nimport brand from '@helpers/brand';\r\nimport { Device, from } from '@helpers/media';\r\nimport styled, { css } from 'styled-components';\r\nconst Container = styled.nav `\r\n --colorInactive: ${brand.black};\r\n --colorActive: ${brand.black};\r\n --clickPadding: 10px;\r\n --gap: 15px;\r\n --height: 10px;\r\n --width: 100%;\r\n\r\n display: flex;\r\n flex-direction: row;\r\n gap: var(--gap);\r\n place-content: center;\r\n place-items: center;\r\n user-select: none;\r\n\r\n @media ${from(Device.Tablet)} {\r\n --clickPadding: 10px;\r\n --gap: 15px;\r\n }\r\n`;\r\nconst Item = styled.button `\r\n ${transition('color, transform')}\r\n position: relative;\r\n display: flex;\r\n background: none;\r\n border: 0;\r\n color: var(--colorInactive);\r\n margin: 0;\r\n padding: var(--clickPadding) 0;\r\n place-content: center;\r\n place-items: center;\r\n transition: color 0.3s ease-out;\r\n height: var(--height);\r\n width: var(--width);\r\n flex: 1 1 20%;\r\n max-width: 100px;\r\n\r\n @media ${from(Device.Tablet)} {\r\n flex: 0 1 20%;\r\n max-width: 75px;\r\n }\r\n \r\n\r\n &::before {\r\n ${transition('transform')}\r\n content: '';\r\n display: block;\r\n border: none;\r\n color: currentColor;\r\n background-color: currentColor;\r\n height: var(--height);\r\n width: var(--width);\r\n transform: scaleY(30%);\r\n }\r\n\r\n /* Enable focus styles for Safari */\r\n &:focus {\r\n outline: auto;\r\n outline-color: currentColor;\r\n outline-offset: 5px;\r\n outline-width: thin;\r\n\r\n }\r\n\r\n /* Enable hover styles for Safari */\r\n &:hover {\r\n color: var(--colorActive);\r\n }\r\n\r\n /* Disable focus styles if focus visible is supported */\r\n &:not(:focus-visible):focus {\r\n outline: none;\r\n\r\n &::before {\r\n outline: none;\r\n }\r\n }\r\n\r\n /* Reapply focus styles for focus-visible browsers */\r\n &:focus-visible {\r\n outline: auto;\r\n outline-color: currentColor;\r\n outline-offset: 5px;\r\n outline-width: thin;\r\n\r\n }\r\n\r\n /* Apply hover styles for focus-visible browsers */\r\n &[aria-current='false']:not(:focus-visible):hover {\r\n color: var(--colorActive);\r\n\r\n &::before {\r\n transform: scaleY(60%);\r\n }\r\n }\r\n\r\n /* Apply active styles */\r\n &[aria-current='true'] {\r\n\r\n &::before {\r\n transform: scaleY(100%);\r\n }\r\n }\r\n\r\n`;\r\nconst PlayPaths = css `\r\n &::before {\r\n clip-path: polygon(0 0, 50% 25%, 50% 75%, 0% 100%);\r\n left: 0;\r\n }\r\n\r\n &::after {\r\n clip-path: polygon(50% 25%, 100% 50%, 100% 50%, 50% 75%);\r\n right: 0;\r\n }\r\n`;\r\nconst PausePaths = css `\r\n &::before {\r\n clip-path: polygon(0 0, 30% 0, 30% 100%, 0% 100%);\r\n left: 0;\r\n }\r\n\r\n &::after {\r\n clip-path: polygon(70% 0, 100% 0, 100% 100%, 70% 100%);\r\n right: 0;\r\n }\r\n`;\r\nconst PlayPauseButton = styled.button `\r\n transition: opacity 0.2s ${cubicEaseOut};\r\n will-change: opacity;\r\n position: relative;\r\n border: 0;\r\n background: none;\r\n width: 24px;\r\n height: 24px;\r\n margin: var(--clickPadding) 0;\r\n opacity: 1;\r\n\r\n &::before,\r\n &::after {\r\n display: block;\r\n content: '';\r\n width: 24px;\r\n height: 24px;\r\n background: var(--colorInactive);\r\n position: absolute;\r\n top: 0;\r\n transition: clip-path 0.3s ease;\r\n will-change: clip-path;\r\n }\r\n\r\n /* Enable styles for Safari */\r\n &.focus-ring {\r\n outline: auto;\r\n outline-color: currentColor;\r\n outline-offset: 5px;\r\n outline-width: thin;\r\n }\r\n\r\n &.focus-ring,\r\n &:hover {\r\n opacity: 0.7;\r\n }\r\n\r\n &[data-paused='false'] {\r\n ${PausePaths};\r\n }\r\n\r\n &[data-paused='true'] {\r\n ${PlayPaths};\r\n }\r\n`;\r\nconst DotPaginationStyles = {\r\n Container,\r\n Item,\r\n PlayPauseButton,\r\n};\r\nexport default DotPaginationStyles;\r\n","import { FocusRing } from '@react-aria/focus';\r\nimport * as React from 'react';\r\nimport S from './DotPagination.styles';\r\nconst DotPagination = ({ autoplay = 0, ariaLabel, count, paused = false, value, onAutoUpdate, onChange, onPlayClick = () => {\r\n return;\r\n}, showPlayControls, }) => {\r\n const useAutoplay = autoplay > 0;\r\n const animateActive = useAutoplay && !paused;\r\n React.useEffect(() => {\r\n onAutoUpdate && onAutoUpdate(value);\r\n }, [value]);\r\n return (React.createElement(S.Container, { \"aria-label\": ariaLabel },\r\n showPlayControls && (React.createElement(FocusRing, { focusRingClass: \"focus-ring\" },\r\n React.createElement(S.PlayPauseButton, { \"data-paused\": paused, onClick: onPlayClick, \"aria-label\": `${paused ? 'Resume' : 'Pause'} banner scrolling` }))),\r\n Array.from(Array(count)).map((_, index) => {\r\n return (React.createElement(S.Item, { key: `DotPaginationItem_${index}`, \"data-animate\": animateActive, \"aria-current\": index === value, \"aria-label\": `Go to ${index + 1}`, onClick: (event) => {\r\n event.preventDefault();\r\n onChange(index);\r\n } }));\r\n })));\r\n};\r\nexport default DotPagination;\r\n","import { transition } from '@helpers/animate';\r\nimport { imageCoverContainer } from '@helpers/aspectRatio';\r\nimport brand, { ThemeOption } from '@helpers/brand';\r\nimport { fluid } from '@helpers/fluid';\r\nimport fonts from '@helpers/fonts';\r\nimport { baseGrid, siteWide } from '@helpers/grid';\r\nimport { Device, from, until } from '@helpers/media';\r\nimport { contentStyles, h1, h2 } from '@helpers/typography';\r\nimport MotionTrack from '@stories/Components/Carousels/Carousel/MotionTrack/MotionTrack';\r\nimport SectionWrapper from '@stories/Components/Global/SectionWrapper/SectionWrapper';\r\nimport SectionWrapperStyles from '@stories/Components/Global/SectionWrapper/SectionWrapper.styles';\r\nimport { rgba } from 'polished';\r\nimport styled from 'styled-components';\r\nconst Container = styled.section `\r\n overflow: hidden;\r\n padding-bottom: 40px;\r\n\r\n @media ${from(Device.Tablet)} {\r\n padding-bottom: 80px;\r\n }\r\n`;\r\nconst Track = styled(MotionTrack) ``;\r\nconst Item = styled.li `\r\n display: block;\r\n flex: 0 0 calc(100% / 1);\r\n padding-right: var(--itemGutter);\r\n`;\r\nconst PaginationWrapper = styled.div `\r\n ${siteWide};\r\n display: grid;\r\n margin-top: ${fluid(20, 24)};\r\n grid-template-columns: repeat(12, 1fr);\r\n gap: 0.5rem;\r\n align-items: center;\r\n\r\n @media ${from(Device.Tablet)} {\r\n margin-top: ${fluid(80, 80)};\r\n }\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n margin-top: ${fluid(20, 24)};\r\n }\r\n`;\r\nconst Pagination = styled.div `\r\n grid-column: span 12;\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n grid-column: 2 / span 4;\r\n }\r\n`;\r\nconst Slide = styled(SectionWrapper) `\r\n position: relative;\r\n\r\n ${SectionWrapperStyles.SiteWide} {\r\n @media ${until(Device.Tablet)} {\r\n padding-left: 0;\r\n padding-right: 0;\r\n }\r\n }\r\n`;\r\nconst Inner = styled.div `\r\n @media ${from(Device.Tablet)} {\r\n ${baseGrid};\r\n height: 550px;\r\n border: none;\r\n }\r\n`;\r\nconst ContentArea = styled.div `\r\n @media ${from(Device.Tablet)} {\r\n position: relative;\r\n z-index: 1;\r\n grid-column: span 12;\r\n height: 100%;\r\n border-left: 3px solid ${brand.white};\r\n }\r\n\r\n &[data-element-theme=${ThemeOption.Orange}] {\r\n --themeColor: ${brand.orange};\r\n --buttonFgColor: ${brand.orange};\r\n }\r\n\r\n &[data-element-theme=${ThemeOption.Blue}] {\r\n --themeColor: ${brand.blue};\r\n --buttonFgColor: ${brand.blue};\r\n }\r\n\r\n &[data-element-theme=${ThemeOption.Purple}] {\r\n --themeColor: ${brand.purple};\r\n --buttonFgColor: ${brand.purple};\r\n }\r\n\r\n &[data-element-theme=${ThemeOption.Red}] {\r\n --themeColor: ${brand.red};\r\n --buttonFgColor: ${brand.red};\r\n }\r\n\r\n &[data-element-theme=${ThemeOption.Green}] {\r\n --themeColor: ${brand.green.default};\r\n --buttonFgColor: ${brand.green.default};\r\n }\r\n\r\n &[data-element-theme=${ThemeOption.DarkGreen}] {\r\n --themeColor: ${brand.green.dark};\r\n --buttonFgColor: ${brand.green.dark};\r\n }\r\n\r\n &[data-element-theme=${ThemeOption.Teal}] {\r\n --themeColor: ${brand.teal};\r\n --buttonFgColor: ${brand.teal};\r\n }\r\n`;\r\nconst ContentAreaInner = styled.a `\r\n position: relative;\r\n display: block;\r\n background-color: ${brand.grey.grey91};\r\n padding: 30px ${fluid(35, 40)} 80px ${fluid(35, 60)};\r\n min-height: 280px;\r\n width: 100%;\r\n border-top: ${fluid(10, 20)} solid var(--themeColor);\r\n color: inherit;\r\n text-decoration: none;\r\n\r\n @media ${from(Device.Tablet)} {\r\n position: absolute;\r\n right: 100px;\r\n bottom: -60px;\r\n z-index: 1;\r\n border-top: none;\r\n border-left: ${fluid(10, 20)} solid var(--themeColor);\r\n max-width: 624px;\r\n }\r\n`;\r\nconst BannerTitle = styled.h2 `\r\n ${h1};\r\n margin-bottom: 20px;\r\n`;\r\nconst SubTitle = styled.h3 `\r\n ${h2};\r\n margin-bottom: 15px;\r\n\r\n ${ContentAreaInner}[href]:hover & {\r\n text-decoration: underline;\r\n }\r\n`;\r\nconst Content = styled.div `\r\n ${contentStyles};\r\n`;\r\nconst CtaArea = styled.div `\r\n position: absolute;\r\n bottom: ${fluid(25, 30)};\r\n right: ${fluid(35, 40)};\r\n`;\r\nconst LinkBtn = styled.span `\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: ${fluid(40, 40)};\r\n height: ${fluid(40, 40)};\r\n border-radius: 100%;\r\n background-color: var(--buttonFgColor);\r\n\r\n &:hover,\r\n &:focus,\r\n ${ContentAreaInner}[href]:hover & {\r\n svg {\r\n path {\r\n stroke-width: 5;\r\n }\r\n }\r\n }\r\n\r\n svg {\r\n width: ${fluid(26, 26)};\r\n height: ${fluid(26, 26)};\r\n color: ${brand.white};\r\n\r\n path {\r\n ${transition('stroke-width')}\r\n }\r\n }\r\n`;\r\nconst MediaArea = styled.div `\r\n position: relative;\r\n height: 200px;\r\n width: 100%;\r\n\r\n &::before {\r\n content: '';\r\n width: ${fluid(2, 3)};\r\n height: 100%;\r\n background-color: ${brand.white};\r\n position: absolute;\r\n top: 0;\r\n left: ${fluid(35, 35)};\r\n z-index: 1;\r\n\r\n @media ${from(Device.Tablet)} {\r\n content: none;\r\n }\r\n }\r\n\r\n &:after {\r\n content: '';\r\n width: 100%;\r\n height: ${fluid(2, 3)};\r\n background-color: ${brand.white};\r\n position: absolute;\r\n bottom: ${fluid(35, 100)};\r\n left: 0;\r\n }\r\n\r\n @media ${from(Device.Tablet)} {\r\n position: absolute;\r\n width: 100%;\r\n height: 550px;\r\n right: 0;\r\n }\r\n`;\r\nconst CitationBtn = styled.button `\r\n ${transition('background-color')};\r\n position: absolute;\r\n right: 0;\r\n bottom: 0;\r\n border: none;\r\n border-radius: 0;\r\n background-color: transparent;\r\n height: 40px;\r\n padding: 0 40px;\r\n z-index: 2;\r\n\r\n @media ${until(Device.Tablet)} {\r\n width: 100%;\r\n height: 35px;\r\n }\r\n\r\n &[data-citation-open='true'] {\r\n background-color: ${rgba(brand.white, 0.9)};\r\n }\r\n`;\r\nconst CitationIcon = styled.div `\r\n ${transition('background-color')};\r\n ${fonts.agBook.bold};\r\n color: ${brand.white};\r\n width: 30px;\r\n height: 30px;\r\n background-color: ${rgba(brand.grey.grey41, 0.9)};\r\n border-radius: 100%;\r\n font-size: 22px;\r\n line-height: 30px;\r\n margin-right: 40px;\r\n margin-top: -20px;\r\n\r\n @media ${until(Device.Tablet)} {\r\n position: absolute;\r\n top: -35px;\r\n right: 20px;\r\n margin-right: 0;\r\n margin-top: 0;\r\n }\r\n\r\n ${CitationBtn}:hover &,\r\n ${CitationBtn}:focus {\r\n background-color: ${brand.orange};\r\n }\r\n\r\n [data-citation-open='true'] & {\r\n @media ${from(Device.Tablet)} {\r\n display: none;\r\n }\r\n }\r\n`;\r\nconst CitationContent = styled.span `\r\n ${fonts.agBook.light};\r\n font-style: italic;\r\n font-size: 12px;\r\n line-height: 14px;\r\n display: none;\r\n\r\n [data-citation-open='true'] & {\r\n display: block;\r\n }\r\n`;\r\nconst PromoMedia = styled.div `\r\n ${imageCoverContainer()};\r\n`;\r\nconst PromoImage = styled.img `\r\n ${imageCoverContainer()};\r\n`;\r\nexport const HeroBannerCarouselStyles = {\r\n BannerTitle,\r\n CitationBtn,\r\n CitationContent,\r\n CitationIcon,\r\n Container,\r\n Content,\r\n ContentArea,\r\n ContentAreaInner,\r\n CtaArea,\r\n Inner,\r\n Item,\r\n LinkBtn,\r\n MediaArea,\r\n Pagination,\r\n PaginationWrapper,\r\n PromoImage,\r\n PromoMedia,\r\n Slide,\r\n SubTitle,\r\n Track,\r\n};\r\n","import { ThemeOption } from '@helpers/brand';\r\nimport { getSrcs } from '@helpers/image';\r\nimport { SystemIcon, getSvgFromSystem } from '@helpers/systemIcons';\r\nimport React from 'react';\r\nimport { HeroBannerCarouselStyles as S } from '../HeroBannerCarousel.styles';\r\nimport { ctaClasses } from '@helpers/trackingClasses';\r\nconst CarouselSlide = ({ content, image, link, subTitle, title, slideIndex, theme, }) => {\r\n const [citationOpen, setCitationOpen] = React.useState(false);\r\n const useTheme = theme || ThemeOption.Orange;\r\n const srcs = getSrcs(image, 2100, 602, 8, 602 / 2100);\r\n return (React.createElement(S.Slide, { flush: \"both\" },\r\n React.createElement(S.Inner, null,\r\n React.createElement(S.MediaArea, null,\r\n srcs && (React.createElement(S.PromoMedia, null,\r\n React.createElement(S.PromoImage, { alt: image.altText ?? '', loading: \"eager\", role: image.altText ? undefined : 'presentation', src: srcs[0].split(' ')[0], srcSet: srcs.join(','), width: \"1920\", height: \"550\" }))),\r\n image.citation && (React.createElement(S.CitationBtn, { type: \"button\", \"data-citation-open\": citationOpen, onClick: () => setCitationOpen(!citationOpen) },\r\n React.createElement(S.CitationIcon, null, \"i\"),\r\n React.createElement(S.CitationContent, null, image.citation)))),\r\n React.createElement(S.ContentArea, { \"data-element-theme\": useTheme },\r\n React.createElement(S.ContentAreaInner, { href: link?.url, target: link?.target ?? '_self', id: link?.id, className: ctaClasses.homepageBanner },\r\n React.createElement(S.BannerTitle, { as: slideIndex === 0 ? 'h1' : 'h2', className: ctaClasses.homepageBanner }, title),\r\n subTitle && React.createElement(S.SubTitle, { as: slideIndex === 0 ? 'h2' : 'h3', className: ctaClasses.homepageBanner }, subTitle),\r\n content && React.createElement(S.Content, { dangerouslySetInnerHTML: { __html: content }, className: ctaClasses.homepageBanner }),\r\n React.createElement(S.CtaArea, null,\r\n React.createElement(S.LinkBtn, { className: ctaClasses.homepageBanner }, getSvgFromSystem(SystemIcon.HoverArrowRight))))))));\r\n};\r\nexport default CarouselSlide;\r\n","import srOnly from '@helpers/srOnly';\r\nimport styled from 'styled-components';\r\nconst Container = styled.section `\r\n ${srOnly}\r\n`;\r\nconst LiveRegionStyles = {\r\n Container,\r\n};\r\nexport default LiveRegionStyles;\r\n","import * as React from 'react';\r\nimport { useCarouselContext } from '../CarouselProvider/CarouselProvider';\r\nimport S from './LiveRegion.styles';\r\nconst LiveRegion = React.forwardRef((props, ref) => {\r\n const carousel = useCarouselContext();\r\n return (React.createElement(S.Container, { ...props, ref: ref, \"aria-live\": \"polite\", \"aria-atomic\": \"true\" },\r\n carousel.activeIndex + 1,\r\n \" of \",\r\n carousel.maxIndex + 1));\r\n});\r\nLiveRegion.displayName = 'LiveRegion';\r\nexport default LiveRegion;\r\n","import React from 'react';\r\nimport { HeroBannerCarouselStyles as S } from './HeroBannerCarousel.styles';\r\nimport { MotionConfig } from 'framer-motion';\r\nimport CarouselProvider from '@stories/Components/Carousels/Carousel/CarouselProvider/CarouselProvider';\r\nimport CarouselSlide from './CarouselSlide/CarouselSlide';\r\nimport LiveRegion from '@stories/Components/Carousels/Carousel/LiveRegion/LiveRegion';\r\nimport Connected from '@stories/Components/Carousels/Carousel/Connected/Connected';\r\nimport { withMotionMax } from '@hoc/withMotionMax';\r\nimport DotPagination from '@stories/Components/Global/DotPagination/DotPagination';\r\nimport { useAutoplay } from '@hooks/useAutoplay';\r\nconst HeroBannerCarousel = ({ items, autoplay = 0, paginationAriaLabel }) => {\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(false);\r\n }, []);\r\n return (React.createElement(MotionConfig, { transition: { duration: 0.45, ease: 'easeOut' } },\r\n React.createElement(CarouselProvider, { count: items.length },\r\n React.createElement(S.Container, null,\r\n React.createElement(LiveRegion, null),\r\n React.createElement(S.Track, { trackMutations: true, onSwipeChange: (index) => setActiveIndex(index) }, items.map((item, i) => (React.createElement(S.Item, { key: `${item.title} - ${i}` },\r\n React.createElement(CarouselSlide, { ...item, slideIndex: i }))))),\r\n React.createElement(Connected, null, (carousel) => (React.createElement(S.PaginationWrapper, null, items.length > 1 &&\r\n React.createElement(S.Pagination, null,\r\n React.createElement(DotPagination, { ariaLabel: paginationAriaLabel, count: carousel.maxIndex + 1, value: activeIndex, paused: paused, onAutoUpdate: (index) => {\r\n carousel.goToIndex(index);\r\n setActiveIndex(index);\r\n }, onChange: (index) => {\r\n carousel.goToIndex(index);\r\n setActiveIndex(index);\r\n setPaused(true);\r\n }, autoplay: duration, showPlayControls: false })))))))));\r\n};\r\nexport default withMotionMax(HeroBannerCarousel);\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","'use strict';\nvar token = '%[a-f0-9]{2}';\nvar singleMatcher = new RegExp(token, 'gi');\nvar multiMatcher = new RegExp('(' + token + ')+', 'gi');\n\nfunction decodeComponents(components, split) {\n\ttry {\n\t\t// Try to decode the entire string first\n\t\treturn decodeURIComponent(components.join(''));\n\t} catch (err) {\n\t\t// Do nothing\n\t}\n\n\tif (components.length === 1) {\n\t\treturn components;\n\t}\n\n\tsplit = split || 1;\n\n\t// Split the array in 2 parts\n\tvar left = components.slice(0, split);\n\tvar right = components.slice(split);\n\n\treturn Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\n\nfunction decode(input) {\n\ttry {\n\t\treturn decodeURIComponent(input);\n\t} catch (err) {\n\t\tvar tokens = input.match(singleMatcher);\n\n\t\tfor (var i = 1; i < tokens.length; i++) {\n\t\t\tinput = decodeComponents(tokens, i).join('');\n\n\t\t\ttokens = input.match(singleMatcher);\n\t\t}\n\n\t\treturn input;\n\t}\n}\n\nfunction customDecodeURIComponent(input) {\n\t// Keep track of all the replacements and prefill the map with the `BOM`\n\tvar replaceMap = {\n\t\t'%FE%FF': '\\uFFFD\\uFFFD',\n\t\t'%FF%FE': '\\uFFFD\\uFFFD'\n\t};\n\n\tvar match = multiMatcher.exec(input);\n\twhile (match) {\n\t\ttry {\n\t\t\t// Decode as big chunks as possible\n\t\t\treplaceMap[match[0]] = decodeURIComponent(match[0]);\n\t\t} catch (err) {\n\t\t\tvar result = decode(match[0]);\n\n\t\t\tif (result !== match[0]) {\n\t\t\t\treplaceMap[match[0]] = result;\n\t\t\t}\n\t\t}\n\n\t\tmatch = multiMatcher.exec(input);\n\t}\n\n\t// Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\treplaceMap['%C2'] = '\\uFFFD';\n\n\tvar entries = Object.keys(replaceMap);\n\n\tfor (var i = 0; i < entries.length; i++) {\n\t\t// Replace all decoded components\n\t\tvar key = entries[i];\n\t\tinput = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n\t}\n\n\treturn input;\n}\n\nmodule.exports = function (encodedURI) {\n\tif (typeof encodedURI !== 'string') {\n\t\tthrow new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');\n\t}\n\n\ttry {\n\t\tencodedURI = encodedURI.replace(/\\+/g, ' ');\n\n\t\t// Try the built in decoder first\n\t\treturn decodeURIComponent(encodedURI);\n\t} catch (err) {\n\t\t// Fallback to a more advanced decoder\n\t\treturn customDecodeURIComponent(encodedURI);\n\t}\n};\n","'use strict';\nmodule.exports = function (obj, predicate) {\n\tvar ret = {};\n\tvar keys = Object.keys(obj);\n\tvar isArr = Array.isArray(predicate);\n\n\tfor (var i = 0; i < keys.length; i++) {\n\t\tvar key = keys[i];\n\t\tvar val = obj[key];\n\n\t\tif (isArr ? predicate.indexOf(key) !== -1 : predicate(key, val, obj)) {\n\t\t\tret[key] = val;\n\t\t}\n\t}\n\n\treturn ret;\n};\n","'use strict';\nconst strictUriEncode = require('strict-uri-encode');\nconst decodeComponent = require('decode-uri-component');\nconst splitOnFirst = require('split-on-first');\nconst filterObject = require('filter-obj');\n\nconst isNullOrUndefined = value => value === null || value === undefined;\n\nconst encodeFragmentIdentifier = Symbol('encodeFragmentIdentifier');\n\nfunction encoderForArrayFormat(options) {\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tconst index = result.length;\n\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[', index, ']'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join('')\n\t\t\t\t];\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[]'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '[]=', encode(value, options)].join('')];\n\t\t\t};\n\n\t\tcase 'colon-list-separator':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), ':list='].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), ':list=', encode(value, options)].join('')];\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\tcase 'bracket-separator': {\n\t\t\tconst keyValueSep = options.arrayFormat === 'bracket-separator' ?\n\t\t\t\t'[]=' :\n\t\t\t\t'=';\n\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\t// Translate null to an empty string so that it doesn't serialize as 'null'\n\t\t\t\tvalue = value === null ? '' : value;\n\n\t\t\t\tif (result.length === 0) {\n\t\t\t\t\treturn [[encode(key, options), keyValueSep, encode(value, options)].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [[result, encode(value, options)].join(options.arrayFormatSeparator)];\n\t\t\t};\n\t\t}\n\n\t\tdefault:\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, encode(key, options)];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '=', encode(value, options)].join('')];\n\t\t\t};\n\t}\n}\n\nfunction parserForArrayFormat(options) {\n\tlet result;\n\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /\\[(\\d*)\\]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(\\[\\])$/.exec(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tcase 'colon-list-separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(:list)$/.exec(key);\n\t\t\t\tkey = key.replace(/:list$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = typeof value === 'string' && value.includes(options.arrayFormatSeparator);\n\t\t\t\tconst isEncodedArray = (typeof value === 'string' && !isArray && decode(value, options).includes(options.arrayFormatSeparator));\n\t\t\t\tvalue = isEncodedArray ? decode(value, options) : value;\n\t\t\t\tconst newValue = isArray || isEncodedArray ? value.split(options.arrayFormatSeparator).map(item => decode(item, options)) : value === null ? value : decode(value, options);\n\t\t\t\taccumulator[key] = newValue;\n\t\t\t};\n\n\t\tcase 'bracket-separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = /(\\[\\])$/.test(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!isArray) {\n\t\t\t\t\taccumulator[key] = value ? decode(value, options) : value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst arrayValue = value === null ?\n\t\t\t\t\t[] :\n\t\t\t\t\tvalue.split(options.arrayFormatSeparator).map(item => decode(item, options));\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = arrayValue;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], arrayValue);\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\t}\n}\n\nfunction validateArrayFormatSeparator(value) {\n\tif (typeof value !== 'string' || value.length !== 1) {\n\t\tthrow new TypeError('arrayFormatSeparator must be single character string');\n\t}\n}\n\nfunction encode(value, options) {\n\tif (options.encode) {\n\t\treturn options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction decode(value, options) {\n\tif (options.decode) {\n\t\treturn decodeComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t}\n\n\tif (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input))\n\t\t\t.sort((a, b) => Number(a) - Number(b))\n\t\t\t.map(key => input[key]);\n\t}\n\n\treturn input;\n}\n\nfunction removeHash(input) {\n\tconst hashStart = input.indexOf('#');\n\tif (hashStart !== -1) {\n\t\tinput = input.slice(0, hashStart);\n\t}\n\n\treturn input;\n}\n\nfunction getHash(url) {\n\tlet hash = '';\n\tconst hashStart = url.indexOf('#');\n\tif (hashStart !== -1) {\n\t\thash = url.slice(hashStart);\n\t}\n\n\treturn hash;\n}\n\nfunction extract(input) {\n\tinput = removeHash(input);\n\tconst queryStart = input.indexOf('?');\n\tif (queryStart === -1) {\n\t\treturn '';\n\t}\n\n\treturn input.slice(queryStart + 1);\n}\n\nfunction parseValue(value, options) {\n\tif (options.parseNumbers && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {\n\t\tvalue = Number(value);\n\t} else if (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {\n\t\tvalue = value.toLowerCase() === 'true';\n\t}\n\n\treturn value;\n}\n\nfunction parse(query, options) {\n\toptions = Object.assign({\n\t\tdecode: true,\n\t\tsort: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ',',\n\t\tparseNumbers: false,\n\t\tparseBooleans: false\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst formatter = parserForArrayFormat(options);\n\n\t// Create an object with no prototype\n\tconst ret = Object.create(null);\n\n\tif (typeof query !== 'string') {\n\t\treturn ret;\n\t}\n\n\tquery = query.trim().replace(/^[?#&]/, '');\n\n\tif (!query) {\n\t\treturn ret;\n\t}\n\n\tfor (const param of query.split('&')) {\n\t\tif (param === '') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tlet [key, value] = splitOnFirst(options.decode ? param.replace(/\\+/g, ' ') : param, '=');\n\n\t\t// Missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tvalue = value === undefined ? null : ['comma', 'separator', 'bracket-separator'].includes(options.arrayFormat) ? value : decode(value, options);\n\t\tformatter(decode(key, options), value, ret);\n\t}\n\n\tfor (const key of Object.keys(ret)) {\n\t\tconst value = ret[key];\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\tfor (const k of Object.keys(value)) {\n\t\t\t\tvalue[k] = parseValue(value[k], options);\n\t\t\t}\n\t\t} else {\n\t\t\tret[key] = parseValue(value, options);\n\t\t}\n\t}\n\n\tif (options.sort === false) {\n\t\treturn ret;\n\t}\n\n\treturn (options.sort === true ? Object.keys(ret).sort() : Object.keys(ret).sort(options.sort)).reduce((result, key) => {\n\t\tconst value = ret[key];\n\t\tif (Boolean(value) && typeof value === 'object' && !Array.isArray(value)) {\n\t\t\t// Sort object keys, not values\n\t\t\tresult[key] = keysSorter(value);\n\t\t} else {\n\t\t\tresult[key] = value;\n\t\t}\n\n\t\treturn result;\n\t}, Object.create(null));\n}\n\nexports.extract = extract;\nexports.parse = parse;\n\nexports.stringify = (object, options) => {\n\tif (!object) {\n\t\treturn '';\n\t}\n\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ','\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst shouldFilter = key => (\n\t\t(options.skipNull && isNullOrUndefined(object[key])) ||\n\t\t(options.skipEmptyString && object[key] === '')\n\t);\n\n\tconst formatter = encoderForArrayFormat(options);\n\n\tconst objectCopy = {};\n\n\tfor (const key of Object.keys(object)) {\n\t\tif (!shouldFilter(key)) {\n\t\t\tobjectCopy[key] = object[key];\n\t\t}\n\t}\n\n\tconst keys = Object.keys(objectCopy);\n\n\tif (options.sort !== false) {\n\t\tkeys.sort(options.sort);\n\t}\n\n\treturn keys.map(key => {\n\t\tconst value = object[key];\n\n\t\tif (value === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (value === null) {\n\t\t\treturn encode(key, options);\n\t\t}\n\n\t\tif (Array.isArray(value)) {\n\t\t\tif (value.length === 0 && options.arrayFormat === 'bracket-separator') {\n\t\t\t\treturn encode(key, options) + '[]';\n\t\t\t}\n\n\t\t\treturn value\n\t\t\t\t.reduce(formatter(key), [])\n\t\t\t\t.join('&');\n\t\t}\n\n\t\treturn encode(key, options) + '=' + encode(value, options);\n\t}).filter(x => x.length > 0).join('&');\n};\n\nexports.parseUrl = (url, options) => {\n\toptions = Object.assign({\n\t\tdecode: true\n\t}, options);\n\n\tconst [url_, hash] = splitOnFirst(url, '#');\n\n\treturn Object.assign(\n\t\t{\n\t\t\turl: url_.split('?')[0] || '',\n\t\t\tquery: parse(extract(url), options)\n\t\t},\n\t\toptions && options.parseFragmentIdentifier && hash ? {fragmentIdentifier: decode(hash, options)} : {}\n\t);\n};\n\nexports.stringifyUrl = (object, options) => {\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\t[encodeFragmentIdentifier]: true\n\t}, options);\n\n\tconst url = removeHash(object.url).split('?')[0] || '';\n\tconst queryFromUrl = exports.extract(object.url);\n\tconst parsedQueryFromUrl = exports.parse(queryFromUrl, {sort: false});\n\n\tconst query = Object.assign(parsedQueryFromUrl, object.query);\n\tlet queryString = exports.stringify(query, options);\n\tif (queryString) {\n\t\tqueryString = `?${queryString}`;\n\t}\n\n\tlet hash = getHash(object.url);\n\tif (object.fragmentIdentifier) {\n\t\thash = `#${options[encodeFragmentIdentifier] ? encode(object.fragmentIdentifier, options) : object.fragmentIdentifier}`;\n\t}\n\n\treturn `${url}${queryString}${hash}`;\n};\n\nexports.pick = (input, filter, options) => {\n\toptions = Object.assign({\n\t\tparseFragmentIdentifier: true,\n\t\t[encodeFragmentIdentifier]: false\n\t}, options);\n\n\tconst {url, query, fragmentIdentifier} = exports.parseUrl(input, options);\n\treturn exports.stringifyUrl({\n\t\turl,\n\t\tquery: filterObject(query, filter),\n\t\tfragmentIdentifier\n\t}, options);\n};\n\nexports.exclude = (input, filter, options) => {\n\tconst exclusionFilter = Array.isArray(filter) ? key => !filter.includes(key) : (key, value) => !filter(key, value);\n\n\treturn exports.pick(input, exclusionFilter, options);\n};\n","'use strict';\n\nmodule.exports = (string, separator) => {\n\tif (!(typeof string === 'string' && typeof separator === 'string')) {\n\t\tthrow new TypeError('Expected the arguments to be of type `string`');\n\t}\n\n\tif (separator === '') {\n\t\treturn [string];\n\t}\n\n\tconst separatorIndex = string.indexOf(separator);\n\n\tif (separatorIndex === -1) {\n\t\treturn [string];\n\t}\n\n\treturn [\n\t\tstring.slice(0, separatorIndex),\n\t\tstring.slice(separatorIndex + separator.length)\n\t];\n};\n","'use strict';\nmodule.exports = str => encodeURIComponent(str).replace(/[!'()*]/g, x => `%${x.charCodeAt(0).toString(16).toUpperCase()}`);\n"],"names":["aspectRatio","width","height","imageWrapperPreserveRatio","maxWidth","maxHeight","padding","fluidUnit","css","imageCoverContainer","relative","imageUrl","image","imageParams","src","imageSource","split","params","rxy","focalPoint","left","top","undefined","queryString","getSrcs","upper","lower","steps","ratio","sizes","increment","Array","fill","map","_","index","Math","ceil","getRange","size","isSSR","window","document","ctaClasses","buttons","cards","homepageBanner","withMotionMax","WrappedComponent","displayName","name","ComponentWithMotionMax","props","React","LazyMotion","features","domMax","strict","CarouselContext","activeIndex","goToIndex","noop","goToNext","goToPrev","reinitialise","maxIndex","offset","offsets","recalculate","refContainer","refTrack","count","useCarouselContext","children","otherProps","carousel","carouselState","dispatch","state","action","type","payload","clamp","wrap","value","max","min","refWindowHeight","refWindowWidth","onResize","debounce","prevHeight","current","prevWidth","newHeight","innerHeight","newWidth","innerWidth","on","callback","immediate","addEventListener","removeEventListener","useResize","initCarousel","from","forEach","push","slice","el","getBoundingClientRect","reduce","p","c","calculateOffset","containerWidth","trackWidth","length","useCarousel","Provider","Container","styled","Device","Track","m","enableCarousel","mobileOnly","trackMutations","onSwipeChange","animation","useAnimation","dragging","xTransform","maxOffset","observer","MutationObserver","childElementCount","observe","childList","subtree","disconnect","stop","start","x","S","ref","animate","drag","dragConstraints","right","onClickCapture","event","preventDefault","stopPropagation","onDragStart","onDragEnd","info","absX","abs","targetIndex","findIndex","onUpdate","latest","parseFloat","brand","Item","transition","PlayPaths","PausePaths","PlayPauseButton","cubicEaseOut","autoplay","ariaLabel","paused","onAutoUpdate","onChange","onPlayClick","showPlayControls","animateActive","FocusRing","focusRingClass","onClick","key","MotionTrack","PaginationWrapper","siteWide","fluid","Pagination","Slide","SectionWrapper","SectionWrapperStyles","until","Inner","baseGrid","ContentArea","ThemeOption","ContentAreaInner","BannerTitle","h1","SubTitle","h2","Content","contentStyles","CtaArea","LinkBtn","MediaArea","CitationBtn","rgba","CitationIcon","fonts","CitationContent","PromoMedia","HeroBannerCarouselStyles","PromoImage","content","link","subTitle","title","slideIndex","theme","citationOpen","setCitationOpen","useTheme","srcs","flush","alt","altText","loading","role","srcSet","join","citation","href","url","target","id","className","as","dangerouslySetInnerHTML","__html","getSvgFromSystem","SystemIcon","srOnly","LiveRegion","items","paginationAriaLabel","duration","setActiveIndex","setPaused","refInterval","activeItemDuration","enabled","setTimeout","newIndex","clearInterval","useAutoplay","MotionConfig","ease","CarouselProvider","item","i","CarouselSlide","Connected","DotPagination","token","singleMatcher","RegExp","multiMatcher","decodeComponents","components","decodeURIComponent","err","prototype","concat","call","decode","input","tokens","match","module","exports","encodedURI","TypeError","replace","replaceMap","exec","result","entries","Object","keys","customDecodeURIComponent","obj","predicate","ret","isArr","isArray","val","indexOf","strictUriEncode","decodeComponent","splitOnFirst","filterObject","encodeFragmentIdentifier","Symbol","validateArrayFormatSeparator","encode","options","encodeURIComponent","keysSorter","sort","a","b","Number","removeHash","hashStart","extract","queryStart","parseValue","parseNumbers","isNaN","trim","parseBooleans","toLowerCase","parse","query","assign","arrayFormat","arrayFormatSeparator","formatter","accumulator","includes","isEncodedArray","newValue","test","arrayValue","parserForArrayFormat","create","param","k","Boolean","stringify","object","shouldFilter","skipNull","skipEmptyString","keyValueSep","encoderForArrayFormat","objectCopy","filter","parseUrl","url_","hash","parseFragmentIdentifier","fragmentIdentifier","stringifyUrl","queryFromUrl","parsedQueryFromUrl","getHash","pick","exclude","exclusionFilter","string","separator","separatorIndex","str","charCodeAt","toString","toUpperCase"],"sourceRoot":""}