{"version":3,"file":"733-1177901f1721e0773322.js","mappings":"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","sources":["webpack://royal-geographical-society/./src/helpers/ssr.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/Controls/Controls.styles.ts","webpack://royal-geographical-society/./src/stories/Components/Carousels/Carousel/Controls/Controls.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/Carousels/FullWidthCarousel/FullWidthCarousel.styles.ts","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/RelatedCards/RelatedCards.styles.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/react-use/esm/misc/util.js","webpack://royal-geographical-society/./node_modules/react-use/esm/useMedia.js","webpack://royal-geographical-society/./node_modules/split-on-first/index.js","webpack://royal-geographical-society/./node_modules/strict-uri-encode/index.js"],"sourcesContent":["export const isSSR = () => {\r\n const returnValue = !(typeof window != 'undefined' && window.document);\r\n return returnValue;\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 styled from 'styled-components';\r\nconst Container = styled.nav ``;\r\nconst ControlsStyles = {\r\n Container,\r\n};\r\nexport default ControlsStyles;\r\n","import * as React from 'react';\r\nimport { useCarouselContext } from '../CarouselProvider/CarouselProvider';\r\nimport S from './Controls.styles';\r\nconst Controls = React.forwardRef((props, ref) => {\r\n const carousel = useCarouselContext();\r\n return (React.createElement(S.Container, { ref: ref, className: props.className },\r\n props.renderPrev({\r\n disabled: !props.wrap && carousel.activeIndex === 0,\r\n type: 'button',\r\n onClick: (event) => {\r\n event.preventDefault();\r\n carousel.goToPrev(props.wrap);\r\n },\r\n }),\r\n props.renderNext({\r\n disabled: !props.wrap && carousel.activeIndex === carousel.maxIndex,\r\n type: 'button',\r\n onClick: (event) => {\r\n event.preventDefault();\r\n carousel.goToNext(props.wrap);\r\n },\r\n })));\r\n});\r\nControls.displayName = 'Controls';\r\nexport default Controls;\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 brand from '@helpers/brand';\r\nimport { Device, from } from '@helpers/media';\r\nimport { h3, paragraph } from '@helpers/typography';\r\nimport MotionTrack from '@stories/Components/Carousels/Carousel/MotionTrack/MotionTrack';\r\nimport SectionWrapper from '@stories/Components/Global/SectionWrapper/SectionWrapper';\r\nimport styled from 'styled-components';\r\nimport Controls from '../Carousel/Controls/Controls';\r\nimport { transition } from '@helpers/animate';\r\nconst Container = styled(SectionWrapper) `\r\n --bgColor: ${brand.white};\r\n --fgColor: ${brand.black};\r\n --itemGutter: 24px;\r\n --visibleItems: 1;\r\n\r\n color: var(--fgColor);\r\n margin-top: 5rem;\r\n margin-bottom: 5rem;\r\n overflow-x: hidden;\r\n\r\n @media ${from(Device.Tablet)} {\r\n --visibleItems: 2;\r\n }\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n --itemGutter: 40px;\r\n --visibleItems: 3;\r\n }\r\n`;\r\nconst Track = styled(MotionTrack) `\r\n margin-top: 3rem;\r\n`;\r\nconst Title = styled.h2 `\r\n ${h3};\r\n margin-bottom: 0;\r\n`;\r\nconst Content = styled.div `\r\n ${paragraph};\r\n margin-top: 1rem;\r\n margin-bottom: 0;\r\n max-width: 65ch;\r\n`;\r\nconst Item = styled.li `\r\n display: block;\r\n flex: 0 0 calc(100% / var(--visibleItems));\r\n padding-right: var(--itemGutter);\r\n`;\r\nconst PaginationWrapper = styled.div `\r\n margin: 2rem 0 0;\r\n display: grid;\r\n grid-template-columns: repeat(12, 1fr);\r\n gap: 0.5rem;\r\n align-items: center;\r\n`;\r\nconst Pagination = styled.div `\r\n grid-column: span 9;\r\n\r\n @media ${from(Device.Tablet)} {\r\n grid-column: 3 / span 8;\r\n }\r\n`;\r\nconst TestButtonContainer = styled.div `\r\n text-align: center;\r\n padding-bottom: 12px;\r\n`;\r\nconst StyledControls = styled(Controls) `\r\n grid-column: 10 / span 3;\r\n justify-self: end;\r\n display: flex;\r\n gap: 0.5rem;\r\n\r\n @media ${from(Device.Tablet)} {\r\n grid-column: 11 / span 2;\r\n }\r\n`;\r\nconst Button = styled.button `\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 50px;\r\n height: 50px;\r\n border: none;\r\n border-radius: 5000000px;\r\n color: ${brand.black};\r\n background-color: transparent;\r\n\r\n &:disabled {\r\n opacity: 0.5;\r\n\r\n &:hover {\r\n opacity: 0.5;\r\n }\r\n }\r\n\r\n &:hover,\r\n &:focus {\r\n svg {\r\n path {\r\n ${transition('stroke-width')}\r\n stroke-width: 5;\r\n }\r\n }\r\n }\r\n\r\n &:first-child {\r\n svg {\r\n transform: scaleX(-1);\r\n }\r\n }\r\n\r\n svg {\r\n height: 36px;\r\n }\r\n`;\r\nconst FullWidthCarouselStyles = {\r\n Button,\r\n Container,\r\n Content,\r\n Controls: StyledControls,\r\n Item,\r\n Pagination,\r\n PaginationWrapper,\r\n Title,\r\n Track,\r\n TestButtonContainer,\r\n};\r\nexport default FullWidthCarouselStyles;\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 { baseGrid } from '@helpers/grid';\r\nimport { Device, from, until } from '@helpers/media';\r\nimport { contentStyles } from '@helpers/typography';\r\nimport { CtaCardStyles } from '@stories/Components/Cards/CtaCard/CtaCard.styles';\r\nimport Controls from '@stories/Components/Carousels/Carousel/Controls/Controls';\r\nimport MotionTrack from '@stories/Components/Carousels/Carousel/MotionTrack/MotionTrack';\r\nimport FullWidthCarouselStyles from '@stories/Components/Carousels/FullWidthCarousel/FullWidthCarousel.styles';\r\nimport SectionWrapper from '@stories/Components/Global/SectionWrapper/SectionWrapper';\r\nimport SectionWrapperStyles from '@stories/Components/Global/SectionWrapper/SectionWrapper.styles';\r\nimport styled from 'styled-components';\r\nconst CardsContainer = styled(FullWidthCarouselStyles.Container) `\r\n margin-top: 0;\r\n margin-bottom: 0;\r\n`;\r\nconst ContentContainer = styled(SectionWrapper) `\r\n ${SectionWrapperStyles.Inner} {\r\n padding-bottom: 0;\r\n }\r\n\r\n + ${CardsContainer} {\r\n @media ${from(Device.Tablet)} {\r\n --sectionSpacingTop: 60px;\r\n }\r\n }\r\n`;\r\nconst Content = styled.div `\r\n ${contentStyles};\r\n`;\r\nconst Track = styled(MotionTrack) `\r\n &[data-mobile-only='true'] {\r\n @media ${from(Device.TabletSmall)} {\r\n ${baseGrid};\r\n grid-template-columns: repeat(2, 1fr);\r\n gap: 16px;\r\n }\r\n\r\n @media ${from(Device.Tablet)} {\r\n grid-template-columns: repeat(3, 1fr);\r\n }\r\n\r\n ${CardsContainer}[data-page-type='content'] & {\r\n gap: 36px;\r\n\r\n ${CtaCardStyles.Container} {\r\n img {\r\n max-width: none;\r\n width: 100%;\r\n height: auto;\r\n }\r\n }\r\n }\r\n }\r\n`;\r\nconst Item = styled.li `\r\n flex: 0 0 100%;\r\n padding-right: 20px;\r\n\r\n /* Required to ensure that item stays visible while carousel animates */\r\n transition: visibility 0.5s ease;\r\n @media ${until(Device.TabletSmall)} {\r\n &[data-active-item='false'] {\r\n visibility: hidden;\r\n }\r\n }\r\n\r\n @media ${from(Device.TabletSmall)} {\r\n padding: 0;\r\n }\r\n`;\r\nconst PaginationWrapper = styled.div `\r\n margin: 2rem 0 0;\r\n display: grid;\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.TabletSmall)} {\r\n display: none;\r\n }\r\n`;\r\nconst Pagination = styled.div `\r\n grid-column: 3 / span 8;\r\n`;\r\nconst StyledControls = styled(Controls) `\r\n grid-column: 10 / span 3;\r\n justify-self: end;\r\n display: flex;\r\n gap: 0.5rem;\r\n\r\n @media ${from(Device.Tablet)} {\r\n grid-column: 11 / span 2;\r\n }\r\n`;\r\nconst Button = styled.button `\r\n ${FullWidthCarouselStyles.Button};\r\n`;\r\nexport const RelatedCardsStyles = {\r\n Button,\r\n CardsContainer,\r\n Content,\r\n ContentContainer,\r\n Item,\r\n Pagination,\r\n PaginationWrapper,\r\n StyledControls,\r\n Track,\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","export var noop = function () { };\nexport function on(obj) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (obj && obj.addEventListener) {\n obj.addEventListener.apply(obj, args);\n }\n}\nexport function off(obj) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (obj && obj.removeEventListener) {\n obj.removeEventListener.apply(obj, args);\n }\n}\nexport var isBrowser = typeof window !== 'undefined';\nexport var isNavigator = typeof navigator !== 'undefined';\n","import { useEffect, useState } from 'react';\nimport { isBrowser } from './misc/util';\nvar getInitialState = function (query, defaultState) {\n // Prevent a React hydration mismatch when a default value is provided by not defaulting to window.matchMedia(query).matches.\n if (defaultState !== undefined) {\n return defaultState;\n }\n if (isBrowser) {\n return window.matchMedia(query).matches;\n }\n // A default value has not been provided, and you are rendering on the server, warn of a possible hydration mismatch when defaulting to false.\n if (process.env.NODE_ENV !== 'production') {\n console.warn('`useMedia` When server side rendering, defaultState should be defined to prevent a hydration mismatches.');\n }\n return false;\n};\nvar useMedia = function (query, defaultState) {\n var _a = useState(getInitialState(query, defaultState)), state = _a[0], setState = _a[1];\n useEffect(function () {\n var mounted = true;\n var mql = window.matchMedia(query);\n var onChange = function () {\n if (!mounted) {\n return;\n }\n setState(!!mql.matches);\n };\n mql.addListener(onChange);\n setState(mql.matches);\n return function () {\n mounted = false;\n mql.removeListener(onChange);\n };\n }, [query]);\n return state;\n};\nexport default useMedia;\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":["isSSR","window","document","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","params","carouselState","dispatch","state","action","type","payload","clamp","wrap","value","Math","max","min","refWindowHeight","refWindowWidth","onResize","debounce","prevHeight","current","prevWidth","newHeight","innerHeight","newWidth","innerWidth","on","callback","immediate","addEventListener","removeEventListener","useResize","initCarousel","index","Array","from","forEach","_","push","slice","map","el","getBoundingClientRect","width","reduce","p","c","calculateOffset","containerWidth","trackWidth","length","useCarousel","Provider","Container","styled","Controls","ref","S","className","renderPrev","disabled","onClick","event","preventDefault","renderNext","Device","Track","m","enableCarousel","mobileOnly","trackMutations","onSwipeChange","animation","useAnimation","dragging","xTransform","maxOffset","observer","MutationObserver","childElementCount","observe","childList","subtree","disconnect","stop","start","x","animate","drag","dragConstraints","left","right","onClickCapture","stopPropagation","onDragStart","onDragEnd","info","absX","abs","targetIndex","findIndex","onUpdate","latest","parseFloat","SectionWrapper","brand","MotionTrack","Title","h3","Content","paragraph","Item","PaginationWrapper","Pagination","TestButtonContainer","StyledControls","Button","transition","PlayPaths","css","PausePaths","PlayPauseButton","cubicEaseOut","autoplay","ariaLabel","paused","onAutoUpdate","onChange","onPlayClick","showPlayControls","animateActive","FocusRing","focusRingClass","key","CardsContainer","FullWidthCarouselStyles","ContentContainer","SectionWrapperStyles","contentStyles","baseGrid","CtaCardStyles","until","RelatedCardsStyles","token","singleMatcher","RegExp","multiMatcher","decodeComponents","components","split","decodeURIComponent","join","err","prototype","concat","call","decode","input","tokens","match","i","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","undefined","includes","isEncodedArray","newValue","item","test","arrayValue","parserForArrayFormat","create","param","k","Boolean","stringify","object","shouldFilter","skipNull","skipEmptyString","keyValueSep","encoderForArrayFormat","objectCopy","filter","parseUrl","url","url_","hash","parseFragmentIdentifier","fragmentIdentifier","stringifyUrl","queryFromUrl","parsedQueryFromUrl","queryString","getHash","pick","exclude","exclusionFilter","isBrowser","defaultState","_a","useState","matchMedia","matches","getInitialState","setState","useEffect","mounted","mql","addListener","removeListener","string","separator","separatorIndex","str","charCodeAt","toString","toUpperCase"],"sourceRoot":""}