{"version":3,"file":"TabbedFeatureCarousel-Chunk-5cc1cd63528fa3964ce8.js","mappings":"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","sources":["webpack://nikon-client/./components/atoms/Button/Button.tsx","webpack://nikon-client/./components/atoms/Image/Image.tsx","webpack://nikon-client/./components/atoms/NavButton/NavButton.tsx","webpack://nikon-client/./utility/hooks/useHorizontalGrabScroll.ts","webpack://nikon-client/./utility/hooks/useHorizontalScrollShadows.ts","webpack://nikon-client/./components/atoms/ShadowContainerHorizontal/ShadowContainerHorizontal.tsx","webpack://nikon-client/./components/atoms/Tag/Tag.tsx","webpack://nikon-client/./components/atoms/Video/Video.tsx","webpack://nikon-client/./components/molecules/Carousel/Carousel.tsx","webpack://nikon-client/./components/molecules/InViewVideo/InViewVideo.tsx","webpack://nikon-client/./components/organisms/TabbedFeatureCarousel/TabbedFeatureSlide.tsx","webpack://nikon-client/./components/organisms/TabbedFeatureCarousel/TabbedFeatureCarousel.tsx","webpack://nikon-client/./models/enums/BreakpointEnum.ts","webpack://nikon-client/./models/enums/HorizontalDirectionEnum.ts","webpack://nikon-client/./models/enums/ScrollProgressEnum.ts","webpack://nikon-client/./models/enums/SizeEnum.ts","webpack://nikon-client/./models/enums/TagTypesEnum.ts","webpack://nikon-client/./state-management/AriaLabelsStore.ts","webpack://nikon-client/./utility/helpers/duplicateArrayItems.ts","webpack://nikon-client/./utility/helpers/gtm.ts","webpack://nikon-client/./utility/helpers/slugify.ts","webpack://nikon-client/./utility/hooks/useAriaLabels.ts","webpack://nikon-client/./utility/hooks/useBreakpoint.ts","webpack://nikon-client/./node_modules/.pnpm/react-icomoon@2.6.0_react@18.3.1/node_modules/react-icomoon/dist/index.js","webpack://nikon-client/./node_modules/.pnpm/zustand@3.7.2_react@18.3.1/node_modules/zustand/esm/index.js","webpack://nikon-client/./node_modules/.pnpm/framer-motion@10.18.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/framer-motion/dist/es/render/dom/viewport/index.mjs","webpack://nikon-client/./node_modules/.pnpm/framer-motion@10.18.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/framer-motion/dist/es/utils/use-in-view.mjs"],"sourcesContent":["import { ILink } from '@models/ILink';\nimport classNames from 'classnames';\nimport {\n ButtonHTMLAttributes,\n DetailedHTMLProps,\n PropsWithChildren,\n} from 'react';\n\ninterface Props {\n readonly className?: string;\n readonly dataTestId?: string;\n readonly disabled?: boolean;\n readonly editHint?: string;\n readonly link?: ILink;\n readonly linkCallback?: () => void;\n readonly secondary?: boolean;\n readonly secondaryBackgroundClassName?: string;\n readonly isLightMode?: boolean;\n readonly inverted?: boolean;\n}\n\ntype ButtonProps = Props &\n DetailedHTMLProps, HTMLButtonElement>;\n\nconst Button = ({\n children,\n className,\n dataTestId,\n disabled = false,\n editHint,\n link,\n linkCallback,\n secondary = false,\n secondaryBackgroundClassName = 'bg-transparent',\n isLightMode,\n inverted = false,\n ...buttonProps\n}: PropsWithChildren) => {\n const buttonClasses = classNames(\n {\n 'bg-yellow py-1 px-4 text-black-100 hover:bg-yellow-100 focus:bg-yellow-500 active:bg-yellow-500':\n !disabled && !secondary && !inverted,\n //\n [`${secondaryBackgroundClassName} border border-yellow py-[3px] px-[15px] text-black-100 hover:border-yellow-100 hover:bg-yellow-100 hover:text-black-100 focus:border-yellow-500 focus:bg-yellow-500 active:border-yellow-500 active:bg-yellow-500 ${\n isLightMode\n ? ''\n : 'dark:text-white dark:hover:text-black-100 dark:focus:text-black-100 dark:active:text-black-100'\n }`]: !disabled && secondary && !inverted,\n //\n 'bg-grey text-grey-500 py-1 px-4': disabled,\n //\n 'bg-black text-white py-1 px-4 active:bg-grey-600 hover:bg-grey-600 focus:bg-grey-600':\n !disabled && !secondary && inverted,\n },\n 'cta rounded-full inline-block min-h-min select-none',\n className\n );\n\n return link?.url && (link?.name || children) && !disabled ? (\n \n {children || link.name}\n \n ) : (\n \n {children}\n \n );\n};\n\nexport default Button;\n","import BreakpointEnum from '@models/enums/BreakpointEnum';\nimport { IImage } from '@models/IImage';\nimport useBreakpoint from '@utils/hooks/useBreakpoint';\nimport classNames from 'classnames';\nimport { PropsWithChildren, RefObject, useState } from 'react';\n\ninterface Props {\n readonly classes?: string;\n readonly dataTestId?: string;\n readonly epiEdit?: string;\n readonly image?: IImage;\n readonly imageClasses?: string;\n readonly imageRef?:\n | RefObject\n | ((node: HTMLElement | null) => void);\n readonly lazyLoad?: boolean;\n readonly progressiveLoad?: boolean;\n readonly sizes?: string;\n}\n\nconst Image = ({\n children,\n classes,\n dataTestId,\n epiEdit,\n image,\n imageClasses,\n imageRef,\n lazyLoad = true,\n progressiveLoad = true,\n sizes = '',\n}: PropsWithChildren) => {\n const mobileSource = image?.mobile;\n const tabletSource = image?.tablet;\n const desktopSource = image?.desktop;\n const largeDesktopSource = image?.largeDesktop;\n const breakpoint = useBreakpoint() as BreakpointEnum;\n const [isLoaded, setIsLoaded] = useState(false);\n\n if (!desktopSource?.url) return null;\n\n const currentSrc = {\n [BreakpointEnum.Small]: mobileSource,\n [BreakpointEnum.Medium]: tabletSource,\n [BreakpointEnum.Large]: desktopSource,\n [BreakpointEnum.XLarge]: largeDesktopSource,\n };\n\n return (\n \n \n setIsLoaded(true)}\n sizes={sizes}\n src={\n isLoaded && progressiveLoad\n ? currentSrc[breakpoint]?.url\n : mobileSource?.url\n }\n height={currentSrc[breakpoint]?.height}\n width={currentSrc[breakpoint]?.width}\n srcSet={`${mobileSource?.originalUrl} 376w, ${tabletSource?.originalUrl} 768w, ${desktopSource?.originalUrl} 1024w, ${largeDesktopSource?.originalUrl} 1440w`}\n {...(dataTestId && { 'data-testid': dataTestId })}\n />\n {isLoaded && children}\n \n );\n};\n\nexport default Image;\n","import Icon from '@atoms/Icon/Icon';\nimport HorizontalDirectionEnum from '@models/enums/HorizontalDirectionEnum';\nimport updateDataLayer from '@utils/helpers/gtm';\nimport useAriaLabels from '@utils/hooks/useAriaLabels';\nimport classNames from 'classnames';\nimport { forwardRef, KeyboardEvent, useImperativeHandle, useRef } from 'react';\n\ninterface Props {\n readonly direction:\n | HorizontalDirectionEnum.Left\n | HorizontalDirectionEnum.Right;\n readonly id?: string;\n readonly disabled?: boolean;\n readonly hasBackgroundColor?: boolean;\n readonly sizeClassName?: string;\n readonly iconSize?: string;\n readonly enabledArrowColor?: string;\n readonly onClick?: (e?: KeyboardEvent) => void;\n readonly additionalDataLayerProperties?: Record;\n readonly isLightMode?: boolean;\n}\n\nexport interface NavButtonRef {\n focus: () => void;\n disabled: boolean;\n}\n\nconst NavButton = forwardRef(\n (\n {\n additionalDataLayerProperties,\n direction,\n id,\n disabled = false,\n hasBackgroundColor = true,\n sizeClassName = 'h-10 w-10',\n iconSize,\n enabledArrowColor = 'text-black-100',\n isLightMode,\n onClick,\n },\n ref\n ) => {\n const { nextAriaLabel, previousAriaLabel } = useAriaLabels();\n const buttonRef = useRef(null);\n\n useImperativeHandle(ref, () => ({\n focus: () => buttonRef.current?.focus(),\n disabled: !!buttonRef.current?.disabled,\n }));\n\n return (\n {\n if (e.key === 'Enter') onClick?.(e);\n }}\n onClick={() => {\n onClick?.();\n updateDataLayer({\n event: 'carousel',\n content_type: 'tab_change',\n link_text:\n direction === HorizontalDirectionEnum.Left ? 'Previous' : 'Next',\n ...additionalDataLayerProperties,\n });\n }}\n >\n \n \n );\n }\n);\n\nexport default NavButton;\n","import { RefObject, useEffect, useRef, useState } from 'react';\n\nconst useHorizontalGrabScroll = (\n containerRef: RefObject,\n disabled: boolean\n) => {\n const [isMouseDown, setIsMouseDown] = useState(false);\n const mouseScrollPosition = useRef<{\n top: number;\n left: number;\n x: number;\n y: number;\n }>({\n top: 0,\n left: 0,\n x: 0,\n y: 0,\n });\n\n useEffect(() => {\n const container = containerRef.current;\n if (!container?.clientWidth) return;\n\n if (container.clientWidth >= container.scrollWidth || disabled) {\n container.style.cursor = 'inherit';\n return;\n }\n\n if (isMouseDown) {\n container.style.cursor = 'grabbing';\n return;\n }\n\n container.style.cursor = 'grab';\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isMouseDown, disabled]);\n\n useEffect(() => {\n mouseScrollPosition.current = { top: 0, left: 0, x: 0, y: 0 };\n const container = containerRef.current;\n\n if (!container) return () => ({});\n if (disabled) {\n container.scrollTop = 0;\n container.scrollLeft = 0;\n\n return () => ({});\n }\n\n const mouseMoveHandler = (e: MouseEvent) => {\n const dx = e.clientX - mouseScrollPosition.current.x;\n const dy = e.clientY - mouseScrollPosition.current.y;\n\n container.scrollTop = mouseScrollPosition.current.top - dy;\n container.scrollLeft = mouseScrollPosition.current.left - dx;\n };\n\n const mouseUpHandler = () => {\n document.removeEventListener('mousemove', mouseMoveHandler);\n document.removeEventListener('mouseup', mouseUpHandler);\n setIsMouseDown(false);\n };\n\n const mouseDownHandler = (e: MouseEvent) => {\n mouseScrollPosition.current = {\n top: container.scrollTop,\n left: container.scrollLeft,\n x: e.clientX,\n y: e.clientY,\n };\n setIsMouseDown(true);\n\n document.addEventListener('mousemove', mouseMoveHandler);\n document.addEventListener('mouseup', mouseUpHandler);\n };\n\n const onWheel = (e: WheelEvent) => {\n if (e.deltaY === 0) return;\n\n container.scrollTo({\n left: container.scrollLeft + e.deltaY,\n behavior: 'smooth',\n });\n };\n\n container.addEventListener('mousedown', mouseDownHandler);\n container.addEventListener('wheel', onWheel, { passive: true });\n\n return () => {\n container.removeEventListener('mousedown', mouseDownHandler);\n container.removeEventListener('wheel', onWheel);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [disabled]);\n};\n\nexport default useHorizontalGrabScroll;\n","import ScrollProgressEnum from '@models/enums/ScrollProgressEnum';\nimport { useMotionValueEvent, useScroll } from 'framer-motion';\nimport { RefObject, useEffect, useState } from 'react';\n\nconst useHorizontalScrollShadows = (\n containerRef: RefObject,\n threshold: number,\n disabled: boolean\n) => {\n const { scrollXProgress } = useScroll({ container: containerRef });\n const [isStart, setIsStart] = useState(true);\n const [isEnd, setIsEnd] = useState(false);\n const [scrollProgress, setScrollProgress] = useState(\n ScrollProgressEnum.Start\n );\n\n useMotionValueEvent(scrollXProgress, 'change', (value: number) => {\n if (value < threshold) {\n setScrollProgress(ScrollProgressEnum.Start);\n }\n\n if (value >= threshold && value <= 1 - threshold) {\n setScrollProgress(ScrollProgressEnum.Middle);\n }\n\n if (value > 1 - threshold) {\n setScrollProgress(ScrollProgressEnum.End);\n }\n });\n\n useEffect(() => {\n const container = containerRef.current;\n if (!container?.clientWidth || disabled) return;\n\n const { clientWidth, scrollWidth } = container;\n if (clientWidth >= scrollWidth) {\n setIsStart(true);\n setIsEnd(true);\n\n return;\n }\n\n if (scrollProgress === ScrollProgressEnum.Start) {\n setIsStart(true);\n setIsEnd(false);\n }\n\n if (scrollProgress === ScrollProgressEnum.Middle) {\n setIsStart(false);\n setIsEnd(false);\n }\n\n if (scrollProgress === ScrollProgressEnum.End) {\n setIsEnd(true);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [disabled, scrollProgress]);\n\n return { isStart, isEnd };\n};\n\nexport default useHorizontalScrollShadows;\n","import useHorizontalGrabScroll from '@utils/hooks/useHorizontalGrabScroll';\nimport useHorizontalScrollShadows from '@utils/hooks/useHorizontalScrollShadows';\nimport classNames from 'classnames';\nimport { AnimatePresence, motion } from 'framer-motion';\nimport {\n PropsWithChildren,\n forwardRef,\n useImperativeHandle,\n useRef,\n} from 'react';\n\nexport interface IShadowContainerHorizontalRef {\n readonly scrollTo: (offset: number) => void;\n readonly getOffsetWidth: () => number;\n}\n\ninterface Props {\n readonly className?: string;\n readonly shadowColour?: string;\n readonly threshold?: number;\n readonly showStart?: boolean; // Manually override shadows from a parent component\n readonly showEnd?: boolean;\n readonly disableScroll?: boolean; // Used together with showStart/showEnd to disable scrolling within the container (e.g. when we want to wrap a carousel within some left/right shadows, we want to use the carousel's scrolling/swiping, not the container's one)\n readonly shadowWidth?: string;\n readonly isNoWrapEnabled?: boolean;\n}\n\nconst ShadowContainerHorizontal = forwardRef<\n IShadowContainerHorizontalRef,\n PropsWithChildren\n>(\n (\n {\n children,\n className,\n disableScroll = false,\n shadowColour = 'from-white dark:from-black-100',\n threshold = 0.05,\n showStart = false,\n showEnd = true,\n shadowWidth = 'w-10',\n isNoWrapEnabled = true,\n },\n ref\n ) => {\n const containerRef = useRef(null);\n const { isStart, isEnd } = useHorizontalScrollShadows(\n containerRef,\n threshold,\n disableScroll\n );\n useHorizontalGrabScroll(containerRef, disableScroll);\n\n useImperativeHandle(ref, () => ({\n scrollTo: (leftOffset: number) => {\n containerRef.current?.scrollTo({\n left: leftOffset,\n behavior: 'smooth',\n });\n },\n getOffsetWidth: () => containerRef.current?.offsetWidth ?? 0,\n }));\n\n return (\n
\n \n {(!isStart || showStart) && (\n \n )}\n \n\n \n {children}\n
\n\n {/* isEnd is always false when using showEnd override so !isEnd is always true */}\n \n {!isEnd && showEnd && (\n \n )}\n \n \n );\n }\n);\n\nexport default ShadowContainerHorizontal;\n","import SizeEnum from '@models/enums/SizeEnum';\nimport TagTypesEnum from '@models/enums/TagTypesEnum';\nimport { ILink } from '@models/ILink';\nimport classNames from 'classnames';\nimport {\n ButtonHTMLAttributes,\n DetailedHTMLProps,\n PropsWithChildren,\n} from 'react';\n\ninterface Props {\n readonly className?: string;\n readonly disabled?: boolean;\n readonly editHint?: string;\n readonly link?: ILink;\n readonly linkCallback?: () => void;\n readonly pointerStates?: boolean;\n readonly size?: Exclude;\n readonly tagType?: TagTypesEnum;\n readonly text?: string;\n readonly span?: boolean;\n readonly isLightMode?: boolean;\n readonly dataTestId?: string;\n}\n\ntype TagProps = Props &\n DetailedHTMLProps, HTMLButtonElement>;\n\nconst Tag = ({\n children,\n className,\n disabled = false,\n editHint,\n link,\n linkCallback,\n pointerStates = true,\n size = SizeEnum.Small,\n span = false,\n tagType,\n text,\n isLightMode,\n dataTestId,\n ...buttonProps\n}: PropsWithChildren) => {\n const tagClasses = classNames(\n {\n [`text-black-100 bg-grey-200 ${\n isLightMode ? '' : 'dark:bg-grey-600 dark:text-white'\n }`]: tagType === TagTypesEnum.Primary,\n //\n [`hover:bg-grey active:text-white active:bg-black-100 ${\n isLightMode\n ? ''\n : 'dark:hover:text-white dark:hover:bg-grey-500 dark:active:text-black-100 dark:active:bg-white'\n }`]: tagType === TagTypesEnum.Primary && pointerStates,\n //\n [`text-white bg-black-100 ${\n isLightMode ? '' : 'dark:bg-white dark:text-black-100'\n }`]:\n tagType === TagTypesEnum.Secondary || tagType === TagTypesEnum.Square,\n //\n [`hover:bg-grey hover:text-black-100 active:text-black-100 active:bg-grey-200 ${\n isLightMode\n ? ''\n : 'dark:hover:text-white dark:hover:bg-grey-500 dark:active:text-white dark:active:bg-grey-600'\n }`]: tagType === TagTypesEnum.Secondary && pointerStates,\n //\n [`text-black-100 bg-white ${\n isLightMode ? '' : 'dark:bg-black-100 dark:text-white'\n }`]: tagType === TagTypesEnum.Three,\n //\n [`hover:bg-grey active:bg-grey-400 ${\n isLightMode\n ? ''\n : 'dark:hover:text-white dark:hover:bg-grey-500 dark:active:text-black-100 dark:active:bg-white'\n }`]: tagType === TagTypesEnum.Three && pointerStates,\n //\n 'text-yellow bg-black-100': tagType === TagTypesEnum.Four,\n //\n 'hover:bg-grey hover:text-black-100 active:text-black-100 active:bg-grey-100':\n tagType === TagTypesEnum.Four && pointerStates,\n //\n 'py-2.5 px-5': size === SizeEnum.Large && tagType !== TagTypesEnum.Square,\n //\n 'px-4 py-1': size === SizeEnum.Small && tagType !== TagTypesEnum.Square,\n //\n 'pointer-events-none': !pointerStates,\n },\n tagType === TagTypesEnum.Square ? 'rounded-[3px]' : 'rounded-full body-two',\n 'select-none',\n className\n );\n\n if (span) {\n return (\n \n {text}\n \n );\n }\n\n return link?.url && (link?.name || children) && !disabled ? (\n \n {children || link.name}\n \n ) : (\n \n {children || text}\n \n );\n};\n\nexport default Tag;\n","import loadable from '@loadable/component';\nimport { AspectRatioType } from '@models/IAspectRatio';\nimport { IVideoAttributes } from '@models/IVideoAttributes';\nimport updateDataLayer from '@utils/helpers/gtm';\nimport classNames from 'classnames';\nimport { motion, MotionValue } from 'framer-motion';\nimport {\n ChangeEvent,\n ForwardedRef,\n forwardRef,\n useEffect,\n useState,\n} from 'react';\nimport { Config } from 'react-player';\n\nconst ReactPlayer = loadable(\n () => import(/* webpackChunkName: \"react-player\" */ 'react-player')\n);\n\ninterface Props {\n readonly classes?: string;\n readonly config?: Config;\n readonly controls?: boolean;\n readonly epiEdit?: string;\n readonly isPlaying?: boolean;\n readonly title?: string;\n readonly url?: string;\n readonly videoAttributes?: IVideoAttributes;\n readonly videoRatio?: AspectRatioType;\n readonly videoSource?: string;\n readonly videoWrapperOpacityProgress?: MotionValue;\n readonly onEndedVideo?: () => void;\n readonly onVideoReady?: () => void;\n readonly onVideoStart?: () => void;\n readonly onVolumeChange?: (videoElement: HTMLVideoElement) => void;\n readonly setIsPlaying?: (playing: boolean) => void;\n}\n\nconst Video = forwardRef(\n (\n {\n classes,\n config,\n controls = true,\n epiEdit,\n isPlaying,\n title,\n videoAttributes,\n videoRatio = 'aspect-video',\n videoSource,\n videoWrapperOpacityProgress,\n onEndedVideo,\n onVideoReady,\n onVideoStart,\n onVolumeChange,\n setIsPlaying,\n }: Props,\n ref\n ) => {\n const [prevProgress, setPrevProgress] = useState(0);\n const [isBrowser, setIsBrowser] = useState(false);\n\n useEffect(() => {\n setIsBrowser(typeof window !== 'undefined');\n }, []);\n\n useEffect(() => {\n setPrevProgress(0);\n }, [title]);\n\n const handleProgressUpdate = (progress: string) => {\n updateDataLayer({\n event: 'videoInteraction',\n video_interaction: 'video_progress',\n video_progress: progress,\n video_title: title,\n });\n };\n\n const handleVideoAction = (action: string) => {\n updateDataLayer({\n event: 'videoInteraction',\n video_interaction:\n action === 'START' ? 'video_start' : 'video_complete',\n video_progress: action === 'START' ? 'video_start' : 'video_complete',\n video_title: title,\n });\n };\n\n const updateVideoProgressData = (progress: number) => {\n if (prevProgress < 0.25 && progress > 0.25) {\n handleProgressUpdate('25%');\n }\n if (prevProgress < 0.5 && progress > 0.5) {\n handleProgressUpdate('50%');\n }\n if (prevProgress < 0.75 && progress > 0.75) {\n handleProgressUpdate('75%');\n }\n if (prevProgress > 0.9 && progress < 0.1) {\n handleVideoAction('COMPLETE');\n }\n setPrevProgress(progress);\n };\n\n if (!videoSource) return null;\n\n return (\n }\n className={classNames(classes, videoRatio, 'w-full')}\n data-epi-property-name={epiEdit}\n data-testid={isPlaying ? 'video-playing' : 'video-paused'}\n style={{\n opacity: videoWrapperOpacityProgress ?? 1,\n }}\n >\n {isBrowser && (\n updateVideoProgressData(played)}\n onStart={() => {\n onVideoStart?.();\n handleVideoAction('START');\n }}\n onEnded={() => {\n onEndedVideo?.();\n handleVideoAction('COMPLETE');\n }}\n onPause={() => setIsPlaying?.(false)}\n onPlay={() => setIsPlaying?.(true)}\n onReady={onVideoReady}\n config={config}\n onVolumeChange={(event: ChangeEvent) => {\n onVolumeChange?.(event.target);\n }}\n {...videoAttributes}\n />\n )}\n \n );\n }\n);\n\nexport default Video;\n","import updateDataLayer from '@utils/helpers/gtm';\nimport { PropsWithChildren } from 'react';\nimport { A11y, Keyboard, Navigation } from 'swiper/modules';\nimport { Swiper, SwiperProps } from 'swiper/react';\nimport 'swiper/scss';\nimport 'swiper/scss/a11y';\nimport 'swiper/scss/autoplay';\nimport 'swiper/scss/effect-fade';\nimport 'swiper/scss/keyboard';\nimport { SwiperModule } from 'swiper/types';\n\ninterface Props extends SwiperProps {\n readonly additionalModules?: SwiperModule[];\n readonly className?: string;\n readonly id?: string;\n readonly navId?: string;\n readonly analyticsEnabled?: boolean;\n}\n\nconst Carousel = ({\n additionalModules = [],\n children,\n className,\n id = 'carousel',\n navId = '',\n analyticsEnabled = false,\n ...props\n}: PropsWithChildren) => {\n if (!children) {\n return null;\n }\n\n return (\n {\n if (analyticsEnabled && swiper.realIndex !== 0) {\n updateDataLayer({\n event: 'carousel',\n content_type: `tab_change`,\n link_text:\n swiper.previousIndex < swiper.activeIndex ? 'Next' : 'Previous',\n });\n }\n }}\n a11y={{ enabled: true }}\n className={className}\n navigation={{\n enabled: !!navId,\n prevEl: `#prevBtn-${navId}`,\n nextEl: `#nextBtn-${navId}`,\n }}\n keyboard={{\n enabled: true,\n onlyInViewport: true,\n }}\n modules={[...[A11y, Keyboard, Navigation], ...additionalModules]}\n {...props}\n >\n {children}\n \n );\n};\n\nexport default Carousel;\n","import Icon from '@atoms/Icon/Icon';\nimport Image from '@atoms/Image/Image';\nimport Video from '@atoms/Video/Video';\nimport { AspectRatioType } from '@models/IAspectRatio';\nimport { IImage } from '@models/IImage';\nimport { IMeta } from '@models/IMeta';\nimport { IVideo } from '@models/IVideo';\nimport useAriaLabels from '@utils/hooks/useAriaLabels';\nimport classNames from 'classnames';\nimport { AnimatePresence, motion, MotionValue, useInView } from 'framer-motion';\nimport { RefObject, useEffect, useRef, useState } from 'react';\n\ninterface Props {\n readonly autoPlay?: boolean;\n readonly controls?: boolean;\n readonly coverImage?: IImage;\n readonly dataTestId?: string;\n readonly hasInVideoPlayButton?: boolean;\n readonly inVideoPlayButtonClassName?: string;\n readonly inVideoPlayButtonPositionClassName?: string;\n readonly inVideoPlayButtonTabIndex?: number;\n readonly inViewThreshold?: number;\n readonly meta?: IMeta;\n readonly playOnCoverClick?: boolean;\n readonly video: IVideo;\n readonly videoClasses?: string;\n readonly videoRatio?: AspectRatioType;\n readonly videoWrapperOpacityProgress?: MotionValue;\n readonly wrapperClasses?: string;\n readonly onFocusCallback?: (e: React.FocusEvent) => void;\n}\n\nconst InViewVideo = ({\n autoPlay = false,\n controls,\n coverImage,\n dataTestId = 'In-View-Video',\n hasInVideoPlayButton,\n inVideoPlayButtonClassName,\n inVideoPlayButtonPositionClassName = 'bottom-5 left-5',\n inVideoPlayButtonTabIndex = 0,\n inViewThreshold = 0.5,\n meta,\n onFocusCallback,\n playOnCoverClick = true,\n video,\n videoClasses,\n videoRatio,\n videoWrapperOpacityProgress,\n wrapperClasses,\n}: Props) => {\n const [isPlaying, setIsPlaying] = useState(false);\n const [isVideoManuallyPaused, setIsVideoManuallyPaused] = useState(false);\n const [isMuted, setIsMuted] = useState(false);\n const [videoReady, setVideoReady] = useState(false);\n const videoRef = useRef(null);\n const inView = useInView(videoRef, { amount: inViewThreshold });\n const isAutoPlaying = !hasInVideoPlayButton\n ? autoPlay\n : autoPlay && !isVideoManuallyPaused;\n const { playVideoAriaLabel, pauseVideoAriaLabel } = useAriaLabels();\n\n useEffect(() => {\n setIsPlaying(isAutoPlaying && inView);\n setIsMuted(!controls || !inView || isAutoPlaying);\n }, [isAutoPlaying, inView, controls]);\n\n return (\n \n }\n videoAttributes={{\n playsinline: true,\n muted: isMuted,\n playing: isPlaying,\n loop: true,\n }}\n onVideoReady={() => setVideoReady(true)}\n epiEdit={meta?.editHints?.video as string | undefined}\n controls={controls}\n videoRatio={videoRatio}\n isPlaying={isPlaying}\n setIsPlaying={setIsPlaying}\n videoWrapperOpacityProgress={videoWrapperOpacityProgress}\n onVolumeChange={(videoElement) => {\n setIsMuted(videoElement.volume === 0 || videoElement.muted);\n }}\n />\n\n {hasInVideoPlayButton && videoReady && (\n {\n setIsPlaying(!isPlaying);\n setIsVideoManuallyPaused(isPlaying);\n }}\n onFocus={onFocusCallback}\n data-testid={`${dataTestId}-${isPlaying ? 'Pause' : 'Play'}-Button`}\n data-video-control=\"toggle\"\n tabIndex={inVideoPlayButtonTabIndex}\n >\n \n \n )}\n\n {(coverImage || !isAutoPlaying) && (\n \n {!isPlaying && (\n playOnCoverClick && setIsPlaying(true)}\n className=\"group absolute inset-0 flex items-center justify-center hover:cursor-pointer\"\n >\n {coverImage && (\n \n )}\n\n {!isAutoPlaying && coverImage && (\n setIsPlaying(true)}\n data-testid={`${dataTestId}-Play-Button`}\n >\n
\n \n
\n \n )}\n \n )}\n
\n )}\n \n );\n};\n\nexport default InViewVideo;\n","import Button from '@atoms/Button/Button';\nimport Image from '@atoms/Image/Image';\nimport { IImage } from '@models/IImage';\nimport { ILink } from '@models/ILink';\nimport { IVideo } from '@models/IVideo';\nimport InViewVideo from '@molecules/InViewVideo/InViewVideo';\nimport updateDataLayer from '@utils/helpers/gtm';\n\ninterface Props {\n readonly title?: string;\n readonly text?: string;\n readonly primaryCTA?: ILink;\n readonly dataTestId?: string;\n readonly media: IVideo | IImage;\n}\n\nconst TabbedFeatureSlide = ({\n title,\n text,\n primaryCTA,\n dataTestId,\n media,\n}: Props) => (\n
\n {'url' in media && media.url ? (\n
\n div>video]:object-cover h-full pointer-events-none\"\n wrapperClasses=\"w-full\"\n autoPlay\n hasInVideoPlayButton\n controls={false}\n />\n
\n ) : (\n
\n \n
\n )}\n\n
\n {title && (\n

\n {title}\n

\n )}\n {text && (\n \n )}\n {primaryCTA?.url && primaryCTA?.name && (\n {\n updateDataLayer({\n event: 'selectContent',\n content_type: 'tabbed_feature_carousel_content',\n link_text: primaryCTA.name,\n });\n }}\n dataTestId={`${dataTestId}-CTA`}\n />\n )}\n
\n
\n);\n\nexport default TabbedFeatureSlide;\n","import NavButton from '@atoms/NavButton/NavButton';\nimport ShadowContainerHorizontal from '@atoms/ShadowContainerHorizontal/ShadowContainerHorizontal';\nimport Tag from '@atoms/Tag/Tag';\nimport { IImage } from '@models/IImage';\nimport { ILink } from '@models/ILink';\nimport { IVideo } from '@models/IVideo';\nimport HorizontalDirectionEnum from '@models/enums/HorizontalDirectionEnum';\nimport TagTypesEnum from '@models/enums/TagTypesEnum';\nimport Carousel from '@molecules/Carousel/Carousel';\nimport duplicateArrayItems from '@utils/helpers/duplicateArrayItems';\nimport slugify from '@utils/helpers/slugify';\nimport useBreakpoint from '@utils/hooks/useBreakpoint';\nimport { AnimatePresence, motion } from 'framer-motion';\nimport { useMemo, useState } from 'react';\nimport { SwiperSlide } from 'swiper/react';\nimport TabbedFeatureSlide from './TabbedFeatureSlide';\n\ninterface TabFeature {\n readonly media: IImage | IVideo;\n readonly title?: string;\n readonly text?: string;\n readonly primaryCTA?: ILink;\n}\n\ninterface Tab {\n readonly title?: string;\n readonly features?: TabFeature[];\n}\n\ninterface Props {\n readonly tabs?: Tab[];\n readonly anchorId?: string;\n}\n\nconst TabbedFeatureCarousel = ({ tabs = [], anchorId = '' }: Props) => {\n const [slideIndex, setSlideIndex] = useState(0);\n const [activeTabIndex, setActiveTabIndex] = useState(0);\n const breakPoint = useBreakpoint();\n const displayedTabs = useMemo(\n () =>\n tabs.filter(\n (tab) =>\n tab.title &&\n !!(tab.features ?? []).filter((feature) => feature.media).length\n ),\n [tabs]\n );\n\n const navButtonId = `tabbed-feature-carousel-${anchorId}`;\n const tabTitles = displayedTabs.map((tab) => tab.title) as string[];\n const activeCarousel = useMemo(\n () =>\n (displayedTabs[activeTabIndex]?.features ?? []).filter(\n (feature) => feature.media\n ),\n [displayedTabs, activeTabIndex]\n );\n const shouldLoop = breakPoint !== 'sm' && activeCarousel.length > 1;\n const duplicatedItems = duplicateArrayItems(activeCarousel, 4);\n const itemsToDisplay = shouldLoop ? duplicatedItems : activeCarousel;\n\n if (displayedTabs.length === 0) return null;\n\n return (\n \n
\n \n
\n {tabTitles.map((tabTitle, index) => {\n const isActive = index === activeTabIndex;\n\n return (\n {\n setActiveTabIndex(index);\n setSlideIndex(0);\n }}\n dataTestId={`Tabbed-Feature-Carousel-Tab-${index}`}\n />\n );\n })}\n
\n
\n\n
\n \n \n
\n
\n\n
\n \n 0)}\n showEnd={\n breakPoint !== 'xl' &&\n (shouldLoop || slideIndex < activeCarousel.length - 1)\n }\n disableScroll\n shadowColour=\"from-black-100\"\n >\n \n setSlideIndex(swiper.activeIndex)}\n navId={navButtonId}\n >\n {itemsToDisplay.map((feature, index) => (\n \n \n \n ))}\n \n \n \n \n
\n \n );\n};\n\nexport default TabbedFeatureCarousel;\n","const enum BreakpointEnum {\n Small = 'sm',\n Medium = 'md',\n Large = 'lg',\n XLarge = 'xl',\n}\n\nexport default BreakpointEnum;\n","enum HorizontalDirectionEnum {\n Left = 'LEFT',\n Right = 'RIGHT',\n}\n\nexport default HorizontalDirectionEnum;\n","enum ScrollProgressEnum {\n Start = 'Start',\n Middle = 'Middle',\n End = 'End',\n}\n\nexport default ScrollProgressEnum;\n","enum SizeEnum {\n Small = 'SMALL',\n Medium = 'MEDIUM',\n Large = 'LARGE',\n XLarge = 'XLARGE',\n}\n\nexport default SizeEnum;\n","enum TagTypesEnum {\n Primary = 'PRIMARY',\n Secondary = 'SECONDARY',\n Three = 'THREE',\n Four = 'FOUR',\n Square = 'SQUARE',\n}\n\nexport default TagTypesEnum;\n","import { IAriaLabels } from '@models/IAriaLabels';\nimport create from 'zustand';\n\ninterface IAriaLabelsState {\n ariaLabels: IAriaLabels;\n setAriaLabels: (ariaLabels: IAriaLabels) => void;\n}\n\nexport const initialAriaLabels: IAriaLabels = {\n backToFirstLevelNavigationAriaLabel: 'Back to first level of navigation',\n breadcrumbAriaLabel: 'Breadcrumb navigation',\n breadcrumbFooterAriaLabel: 'Breadcrumb footer navigation',\n clearFiltersAriaLabel: 'Clear filters',\n closeMenuAriaLabel: 'Close menu',\n closeAddressListAriaLabel: 'Close address list',\n closeMobileNavigationAriaLabel: 'Close navigation',\n closeModalAriaLabel: 'Close Modal',\n closeSignUpFormAriaLabel: 'Close signup form',\n closeSiteNotificationAriaLabel: 'Close site notification',\n copyToClipboardAriaLabel: 'Copy to clipboard',\n editOrDeleteAriaLabel: 'Edit or delete',\n mainNavigationAriaLabel: 'Main navigation',\n moreInformationAriaLabel: 'More information',\n nextAriaLabel: 'Go to next slide',\n openAddressListAriaLabel: 'Open address list',\n openImageInFullScreenAriaLabel: 'Open image in full screen',\n openMenuAriaLabel: 'Open menu',\n overlayToCloseDesktopNavigationAriaLabel: 'Close overlay',\n pauseVideoAriaLabel: 'Pause video',\n playVideoAriaLabel: 'Play video',\n previousAriaLabel: 'Go to previous slide',\n searchAriaLabel: 'Search',\n shareToFacebookAriaLabel: 'Share to Facebook',\n shareToWhatsappAriaLabel: 'Share to Whatsapp',\n shareToXAriaLabel: 'Share to X',\n siteNotificationsAriaLabel: 'Site notifications banner',\n uspStripAriaLabel: 'Unique Selling Point Strip',\n zoomInAriaLabel: 'Zoom in',\n zoomOutAriaLabel: 'Zoom out',\n};\n\nconst useAriaLabelsStore = create((set) => ({\n ariaLabels: initialAriaLabels,\n setAriaLabels: (ariaLabels: IAriaLabels) => set({ ariaLabels }),\n}));\n\nexport default useAriaLabelsStore;\n","const duplicateArrayItems = (initialArray: T[], minTargetCount: number) => {\n if (!initialArray?.length) return [];\n\n const multiplier = Math.ceil(minTargetCount / initialArray.length);\n const newArray = Array(multiplier).fill(initialArray).flat();\n\n return newArray;\n};\n\nexport default duplicateArrayItems;\n","const updateDataLayer = (eventPayload: Record) => {\n if (typeof window !== 'undefined') {\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push(eventPayload);\n }\n};\n\nexport default updateDataLayer;\n","const slugify = (value: string) =>\n value\n .toLowerCase()\n .trim()\n .replace(/[^\\w\\s-]/g, '')\n .replace(/[\\s_-]+/g, '-')\n .replace(/^-+|-+$/g, '');\n\nexport default slugify;\n","import { IAriaLabels } from '@models/IAriaLabels';\nimport useAriaLabelsStore, { initialAriaLabels } from '@state/AriaLabelsStore';\nimport { useEffect, useState } from 'react';\n\nconst useAriaLabels = () => {\n const [ariaLabels, setAriaLabels] = useState(initialAriaLabels);\n const ariaLabelsFromStore = useAriaLabelsStore((state) => state.ariaLabels);\n\n useEffect(() => {\n setAriaLabels(ariaLabelsFromStore);\n }, [ariaLabelsFromStore]);\n\n return ariaLabels;\n};\n\nexport default useAriaLabels;\n","import BreakpointEnum from '@models/enums/BreakpointEnum';\nimport { useCallback, useEffect, useState } from 'react';\n\nconst getCurrentBreakpoint = () => {\n const breakpoints = { tablet: 768, desktop: 1024, lgDesktop: 1440 };\n const width = window.innerWidth;\n\n if (width < breakpoints.tablet) {\n return BreakpointEnum.Small;\n }\n if (width >= breakpoints.tablet && width < breakpoints.desktop) {\n return BreakpointEnum.Medium;\n }\n if (width >= breakpoints.desktop && width < breakpoints.lgDesktop) {\n return BreakpointEnum.Large;\n }\n return BreakpointEnum.XLarge;\n};\n\nconst useBreakpoint = () => {\n const [screen, setScreen] = useState();\n\n const resizeHandler = useCallback(\n () => setScreen(getCurrentBreakpoint()),\n []\n );\n\n useEffect(() => {\n window.addEventListener('resize', resizeHandler);\n setScreen(getCurrentBreakpoint());\n\n return () => {\n window.removeEventListener('resize', resizeHandler);\n };\n }, [resizeHandler]);\n\n return screen;\n};\n\nexport default useBreakpoint;\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.iconList = void 0;\nvar react_1 = require(\"react\");\nvar IcoMoon = function (_a) {\n var iconSet = _a.iconSet, icon = _a.icon, size = _a.size, title = _a.title, disableFill = _a.disableFill, removeInlineStyle = _a.removeInlineStyle, native = _a.native, SvgComponent = _a.SvgComponent, PathComponent = _a.PathComponent, props = __rest(_a, [\"iconSet\", \"icon\", \"size\", \"title\", \"disableFill\", \"removeInlineStyle\", \"native\", \"SvgComponent\", \"PathComponent\"]);\n if (!iconSet || !icon)\n return null;\n var currentIcon = iconSet.icons.find(function (item) { return item.properties.name === icon; });\n if (!currentIcon)\n return null;\n var initialStyle = {\n display: \"inline-block\",\n stroke: \"currentColor\",\n fill: \"currentColor\",\n };\n if (native) {\n initialStyle.display = \"flex\";\n initialStyle.flexDirection = \"row\";\n initialStyle.flexWrap = \"wrap\";\n }\n var comptuedStyle = __assign(__assign(__assign({}, (removeInlineStyle ? {} : initialStyle)), (size ? { width: size, height: size } : {})), (props.style || {}));\n var _b = currentIcon.icon.width, width = _b === void 0 ? \"1024\" : _b;\n var viewBox = \"0 0 \".concat(width, \" 1024\");\n var children = currentIcon.icon.paths.map(function (path, index) {\n var _a;\n var attrs = (_a = currentIcon.icon.attrs) === null || _a === void 0 ? void 0 : _a[index];\n var pathProps = __assign({ d: path, key: icon + index }, (!disableFill && attrs ? attrs : {}));\n return (0, react_1.createElement)(PathComponent || \"path\", pathProps);\n });\n if (title && !native) {\n children.push((0, react_1.createElement)(\"title\", { key: title }, title));\n }\n return (0, react_1.createElement)(SvgComponent || \"svg\", __assign(__assign({}, props), { viewBox: viewBox, style: comptuedStyle }), children);\n};\nvar iconList = function (iconSet) {\n if (!iconSet || !Array.isArray(iconSet.icons))\n return null;\n return iconSet.icons.map(function (icon) { return icon.properties.name; });\n};\nexports.iconList = iconList;\nexports.default = IcoMoon;\n//# sourceMappingURL=index.js.map","import { useReducer, useRef, useDebugValue, useEffect, useLayoutEffect } from 'react';\n\nfunction createStore(createState) {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (nextState !== state) {\n const previousState = state;\n state = replace ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const subscribeWithSelector = (listener, selector = getState, equalityFn = Object.is) => {\n console.warn(\"[DEPRECATED] Please use `subscribeWithSelector` middleware\");\n let currentSlice = selector(state);\n function listenerToAdd() {\n const nextSlice = selector(state);\n if (!equalityFn(currentSlice, nextSlice)) {\n const previousSlice = currentSlice;\n listener(currentSlice = nextSlice, previousSlice);\n }\n }\n listeners.add(listenerToAdd);\n return () => listeners.delete(listenerToAdd);\n };\n const subscribe = (listener, selector, equalityFn) => {\n if (selector || equalityFn) {\n return subscribeWithSelector(listener, selector, equalityFn);\n }\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const destroy = () => listeners.clear();\n const api = { setState, getState, subscribe, destroy };\n state = createState(setState, getState, api);\n return api;\n}\n\nconst isSSR = typeof window === \"undefined\" || !window.navigator || /ServerSideRendering|^Deno\\//.test(window.navigator.userAgent);\nconst useIsomorphicLayoutEffect = isSSR ? useEffect : useLayoutEffect;\nfunction create(createState) {\n const api = typeof createState === \"function\" ? createStore(createState) : createState;\n const useStore = (selector = api.getState, equalityFn = Object.is) => {\n const [, forceUpdate] = useReducer((c) => c + 1, 0);\n const state = api.getState();\n const stateRef = useRef(state);\n const selectorRef = useRef(selector);\n const equalityFnRef = useRef(equalityFn);\n const erroredRef = useRef(false);\n const currentSliceRef = useRef();\n if (currentSliceRef.current === void 0) {\n currentSliceRef.current = selector(state);\n }\n let newStateSlice;\n let hasNewStateSlice = false;\n if (stateRef.current !== state || selectorRef.current !== selector || equalityFnRef.current !== equalityFn || erroredRef.current) {\n newStateSlice = selector(state);\n hasNewStateSlice = !equalityFn(currentSliceRef.current, newStateSlice);\n }\n useIsomorphicLayoutEffect(() => {\n if (hasNewStateSlice) {\n currentSliceRef.current = newStateSlice;\n }\n stateRef.current = state;\n selectorRef.current = selector;\n equalityFnRef.current = equalityFn;\n erroredRef.current = false;\n });\n const stateBeforeSubscriptionRef = useRef(state);\n useIsomorphicLayoutEffect(() => {\n const listener = () => {\n try {\n const nextState = api.getState();\n const nextStateSlice = selectorRef.current(nextState);\n if (!equalityFnRef.current(currentSliceRef.current, nextStateSlice)) {\n stateRef.current = nextState;\n currentSliceRef.current = nextStateSlice;\n forceUpdate();\n }\n } catch (error) {\n erroredRef.current = true;\n forceUpdate();\n }\n };\n const unsubscribe = api.subscribe(listener);\n if (api.getState() !== stateBeforeSubscriptionRef.current) {\n listener();\n }\n return unsubscribe;\n }, []);\n const sliceToReturn = hasNewStateSlice ? newStateSlice : currentSliceRef.current;\n useDebugValue(sliceToReturn);\n return sliceToReturn;\n };\n Object.assign(useStore, api);\n useStore[Symbol.iterator] = function() {\n console.warn(\"[useStore, api] = create() is deprecated and will be removed in v4\");\n const items = [useStore, api];\n return {\n next() {\n const done = items.length <= 0;\n return { value: items.shift(), done };\n }\n };\n };\n return useStore;\n}\n\nexport { create as default };\n","import { resolveElements } from '../utils/resolve-element.mjs';\n\nconst thresholds = {\n some: 0,\n all: 1,\n};\nfunction inView(elementOrSelector, onStart, { root, margin: rootMargin, amount = \"some\" } = {}) {\n const elements = resolveElements(elementOrSelector);\n const activeIntersections = new WeakMap();\n const onIntersectionChange = (entries) => {\n entries.forEach((entry) => {\n const onEnd = activeIntersections.get(entry.target);\n /**\n * If there's no change to the intersection, we don't need to\n * do anything here.\n */\n if (entry.isIntersecting === Boolean(onEnd))\n return;\n if (entry.isIntersecting) {\n const newOnEnd = onStart(entry);\n if (typeof newOnEnd === \"function\") {\n activeIntersections.set(entry.target, newOnEnd);\n }\n else {\n observer.unobserve(entry.target);\n }\n }\n else if (onEnd) {\n onEnd(entry);\n activeIntersections.delete(entry.target);\n }\n });\n };\n const observer = new IntersectionObserver(onIntersectionChange, {\n root,\n rootMargin,\n threshold: typeof amount === \"number\" ? amount : thresholds[amount],\n });\n elements.forEach((element) => observer.observe(element));\n return () => observer.disconnect();\n}\n\nexport { inView };\n","import { useState, useEffect } from 'react';\nimport { inView } from '../render/dom/viewport/index.mjs';\n\nfunction useInView(ref, { root, margin, amount, once = false } = {}) {\n const [isInView, setInView] = useState(false);\n useEffect(() => {\n if (!ref.current || (once && isInView))\n return;\n const onEnter = () => {\n setInView(true);\n return once ? undefined : () => setInView(false);\n };\n const options = {\n root: (root && root.current) || undefined,\n margin,\n amount,\n };\n return inView(ref.current, onEnter, options);\n }, [root, ref, margin, once, amount]);\n return isInView;\n}\n\nexport { useInView };\n"],"names":["_ref","children","className","dataTestId","disabled","editHint","link","linkCallback","secondary","secondaryBackgroundClassName","isLightMode","inverted","buttonProps","buttonClasses","classNames","url","name","React","createElement","href","target","onClick","_extends","classes","epiEdit","image","imageClasses","imageRef","lazyLoad","progressiveLoad","sizes","mobileSource","mobile","tabletSource","tablet","desktopSource","desktop","largeDesktopSource","largeDesktop","breakpoint","useBreakpoint","isLoaded","setIsLoaded","useState","currentSrc","BreakpointEnum","Small","Medium","Large","XLarge","type","srcSet","ref","alt","altText","length","draggable","loading","onLoad","src","height","width","originalUrl","forwardRef","additionalDataLayerProperties","direction","id","hasBackgroundColor","sizeClassName","iconSize","enabledArrowColor","nextAriaLabel","previousAriaLabel","useAriaLabels","buttonRef","useRef","useImperativeHandle","focus","current","HorizontalDirectionEnum","Left","Right","tabIndex","onKeyDown","e","key","updateDataLayer","event","content_type","link_text","Icon","colorClassName","size","useHorizontalGrabScroll","containerRef","isMouseDown","setIsMouseDown","mouseScrollPosition","top","left","x","y","useEffect","container","clientWidth","scrollWidth","style","cursor","scrollTop","scrollLeft","mouseMoveHandler","dx","clientX","dy","clientY","mouseUpHandler","document","removeEventListener","mouseDownHandler","addEventListener","onWheel","deltaY","scrollTo","behavior","passive","useHorizontalScrollShadows","threshold","scrollXProgress","useScroll","isStart","setIsStart","isEnd","setIsEnd","scrollProgress","setScrollProgress","ScrollProgressEnum","Start","useMotionValueEvent","value","Middle","End","disableScroll","shadowColour","showStart","showEnd","shadowWidth","isNoWrapEnabled","leftOffset","getOffsetWidth","offsetWidth","AnimatePresence","motion","span","animate","opacity","exit","initial","transition","duration","pointerStates","SizeEnum","tagType","text","tagClasses","TagTypesEnum","Primary","Secondary","Square","Three","Four","ReactPlayer","loadable","config","controls","isPlaying","title","videoAttributes","videoRatio","videoSource","videoWrapperOpacityProgress","onEndedVideo","onVideoReady","onVideoStart","onVolumeChange","setIsPlaying","prevProgress","setPrevProgress","isBrowser","setIsBrowser","window","handleProgressUpdate","progress","video_interaction","video_progress","video_title","handleVideoAction","action","div","playing","onProgress","_ref2","played","onStart","onEnded","onPause","onPlay","onReady","additionalModules","navId","analyticsEnabled","props","Swiper","onSlideChangeTransitionEnd","swiper","realIndex","previousIndex","activeIndex","a11y","enabled","navigation","prevEl","nextEl","keyboard","onlyInViewport","modules","A11y","Keyboard","Navigation","autoPlay","coverImage","hasInVideoPlayButton","inVideoPlayButtonClassName","inVideoPlayButtonPositionClassName","inVideoPlayButtonTabIndex","inViewThreshold","meta","onFocusCallback","playOnCoverClick","video","videoClasses","wrapperClasses","isVideoManuallyPaused","setIsVideoManuallyPaused","isMuted","setIsMuted","videoReady","setVideoReady","videoRef","inView","useInView","amount","isAutoPlaying","playVideoAriaLabel","pauseVideoAriaLabel","Video","playsinline","muted","loop","editHints","videoElement","volume","onFocus","Image","primaryCTA","media","InViewVideo","dangerouslySetInnerHTML","__html","Button","tabs","anchorId","slideIndex","setSlideIndex","activeTabIndex","setActiveTabIndex","breakPoint","displayedTabs","useMemo","filter","tab","features","feature","navButtonId","tabTitles","map","activeCarousel","shouldLoop","duplicatedItems","duplicateArrayItems","itemsToDisplay","ShadowContainerHorizontal","tabTitle","index","isActive","Tag","NavButton","Carousel","breakpoints","slidesPerView","spaceBetween","centeredSlides","onSlideChange","SwiperSlide","slugify","TabbedFeatureSlide","initialAriaLabels","backToFirstLevelNavigationAriaLabel","breadcrumbAriaLabel","breadcrumbFooterAriaLabel","clearFiltersAriaLabel","closeMenuAriaLabel","closeAddressListAriaLabel","closeMobileNavigationAriaLabel","closeModalAriaLabel","closeSignUpFormAriaLabel","closeSiteNotificationAriaLabel","copyToClipboardAriaLabel","editOrDeleteAriaLabel","mainNavigationAriaLabel","moreInformationAriaLabel","openAddressListAriaLabel","openImageInFullScreenAriaLabel","openMenuAriaLabel","overlayToCloseDesktopNavigationAriaLabel","searchAriaLabel","shareToFacebookAriaLabel","shareToWhatsappAriaLabel","shareToXAriaLabel","siteNotificationsAriaLabel","uspStripAriaLabel","zoomInAriaLabel","zoomOutAriaLabel","create","set","ariaLabels","setAriaLabels","initialArray","minTargetCount","multiplier","Math","ceil","Array","fill","flat","eventPayload","dataLayer","push","toLowerCase","trim","replace","ariaLabelsFromStore","useAriaLabelsStore","state","getCurrentBreakpoint","innerWidth","screen","setScreen","resizeHandler","useCallback","__assign","this","Object","assign","t","s","i","n","arguments","p","prototype","hasOwnProperty","call","apply","__rest","indexOf","getOwnPropertySymbols","propertyIsEnumerable","defineProperty","exports","iconList","react_1","iconSet","isArray","icons","icon","properties","_a","disableFill","removeInlineStyle","native","SvgComponent","PathComponent","currentIcon","find","item","initialStyle","display","stroke","flexDirection","flexWrap","comptuedStyle","_b","viewBox","concat","paths","path","attrs","pathProps","d","createStore","createState","listeners","Set","setState","partial","nextState","previousState","forEach","listener","getState","api","subscribe","selector","equalityFn","is","console","warn","currentSlice","listenerToAdd","nextSlice","previousSlice","add","delete","subscribeWithSelector","destroy","clear","useIsomorphicLayoutEffect","navigator","test","userAgent","useLayoutEffect","useStore","forceUpdate","useReducer","c","stateRef","selectorRef","equalityFnRef","erroredRef","currentSliceRef","newStateSlice","hasNewStateSlice","stateBeforeSubscriptionRef","nextStateSlice","error","unsubscribe","sliceToReturn","useDebugValue","Symbol","iterator","items","next","done","shift","thresholds","some","all","root","margin","once","isInView","setInView","options","undefined","elementOrSelector","rootMargin","elements","activeIntersections","WeakMap","observer","IntersectionObserver","entries","entry","onEnd","get","isIntersecting","Boolean","newOnEnd","unobserve","element","observe","disconnect"],"sourceRoot":""}