{"version":3,"file":"TabbedMediaCarousel-Chunk-3aa6663bb2f73cf87ff1.js","mappings":"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","sources":["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/TabbedMediaCarousel/TabbedMediaCarousel.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/./utility/hooks/useMediaQuery.ts","webpack://nikon-client/./utility/hooks/useResizeObserver.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 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 Image from '@atoms/Image/Image';\nimport NavButton from '@atoms/NavButton/NavButton';\nimport ShadowContainerHorizontal from '@atoms/ShadowContainerHorizontal/ShadowContainerHorizontal';\nimport Tag from '@atoms/Tag/Tag';\nimport HorizontalDirectionEnum from '@models/enums/HorizontalDirectionEnum';\nimport TagTypesEnum from '@models/enums/TagTypesEnum';\nimport {\n ImageCard,\n ITabbedMediaCarousel,\n VideoCard,\n} from '@models/ITabbedMediaCarousel';\nimport Carousel from '@molecules/Carousel/Carousel';\nimport InViewVideo from '@molecules/InViewVideo/InViewVideo';\nimport duplicateArrayItems from '@utils/helpers/duplicateArrayItems';\nimport updateDataLayer from '@utils/helpers/gtm';\nimport slugify from '@utils/helpers/slugify';\nimport useBreakpoint from '@utils/hooks/useBreakpoint';\nimport useMediaQuery from '@utils/hooks/useMediaQuery';\nimport useResizeObserver from '@utils/hooks/useResizeObserver';\nimport classNames from 'classnames';\nimport { motion } from 'framer-motion';\nimport { useCallback, useMemo, useRef, useState } from 'react';\nimport { SwiperSlide } from 'swiper/react';\n\nconst TabbedMediaCarousel = ({\n anchorId = '',\n tabs = [],\n}: ITabbedMediaCarousel) => {\n const carouselWrapperRef = useRef(null);\n const breakPoint = useBreakpoint();\n const [tabsContainerRef, { width: tabsContainerWidth }] = useResizeObserver();\n const [activeTabIndex, setActiveTabIndex] = useState(0);\n const [slideIndex, setSlideIndex] = useState(0);\n const [mediaHeight, setMediaHeight] = useState(0);\n const [mediaLeftOffset, setMediaLeftOffset] = useState(0);\n const [isSwiperInitialized, setIsSwiperInitialized] = useState(false);\n const tabTitles = tabs.map((tab) => tab.title);\n const navButtonId = `tabbed-media-carousel`;\n const imageSlideTestId = 'CT-135-Tabbed-Media-Carousel-Card-Image';\n const videoSlideTestId = 'CT-135-Tabbed-Media-Carousel-Card-Video';\n const activeCarousel = useMemo(\n () => [...tabs[activeTabIndex]!.cards],\n [tabs, activeTabIndex]\n );\n const isMobile = useMediaQuery(768);\n const shouldLoop =\n !!breakPoint && breakPoint !== 'sm' && activeCarousel.length > 1;\n const duplicatedItems = duplicateArrayItems(\n activeCarousel,\n activeCarousel.length <= 2 ? 6 : activeCarousel.length + 1\n );\n const itemsToDisplay = shouldLoop ? duplicatedItems : activeCarousel;\n\n const onResize = useCallback(() => {\n const activeImage = document.querySelector(\n `.swiper-slide-active [data-testid^=\"${imageSlideTestId}\"]`\n );\n const activeVideo = document.querySelector(\n `.swiper-slide-active [data-testid^=\"${videoSlideTestId}\"]`\n );\n const activeMedia = activeImage || activeVideo;\n\n if (!activeMedia) return;\n\n const { height, width } = activeMedia.getBoundingClientRect();\n const leftOffset = (document.body.clientWidth - width) / 2;\n\n setMediaHeight(height);\n setMediaLeftOffset(leftOffset);\n }, []);\n\n return (\n \n {!!itemsToDisplay?.length && (\n
\n 0)}\n showEnd={\n breakPoint !== 'xl' &&\n (shouldLoop || slideIndex < itemsToDisplay.length - 1)\n }\n disableScroll\n >\n setSlideIndex(swiper.realIndex)}\n analyticsEnabled\n onResize={onResize}\n onInit={() => {\n setIsSwiperInitialized(true);\n }}\n spaceBetween={20}\n slidesPerView={1.2}\n navId={navButtonId}\n loop={shouldLoop}\n centeredSlides\n className=\"whitespace-normal\"\n breakpoints={{\n 768: {\n slidesPerView: 1.4,\n spaceBetween: 20,\n },\n 1439: {\n slidesPerView: 1.4,\n spaceBetween: 150,\n },\n 1750: {\n slidesPerView: 1.6,\n spaceBetween: 150,\n },\n }}\n >\n 1,\n })}\n >\n \n \n\n 1,\n })}\n >\n \n \n\n {itemsToDisplay &&\n itemsToDisplay.map((card, index) => {\n const videoCard = card as VideoCard;\n const imageCard = card as ImageCard;\n\n return (\n \n \n {'video' in card.media && card.media.video ? (\n \n ) : (\n
\n \n {imageCard.pillText && (\n \n {imageCard.pillText}\n
\n )}\n
\n )}\n\n
\n {card.title && (\n 0 && breakPoint !== 'sm'\n ? tabsContainerWidth + 10\n : 0,\n }}\n data-testid={`CT-135-Tabbed-Media-Carousel-Card-Title-${index}`}\n >\n {card.title}\n

\n )}\n {card.description && (\n \n )}\n
\n \n \n );\n })}\n \n \n \n )}\n\n {tabTitles.length > 1 && (\n \n
\n \n
\n {tabTitles.map((tabTitle, index) => {\n const isActive = index === activeTabIndex;\n\n if (!tabTitle) return null;\n\n return (\n {\n setActiveTabIndex(index);\n updateDataLayer({\n event: 'carouselSelect',\n link_text: tabTitle,\n });\n }}\n />\n );\n })}\n
\n
\n
\n \n )}\n \n );\n};\nexport default TabbedMediaCarousel;\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","import { useCallback, useEffect, useState } from 'react';\n\nconst useMediaQuery = (minWidth: number) => {\n // Set the default value to undefined in order to properly distinguish the falsey values\n // where undefined is the value before computing whether the screen size is smaller than the minWidth\n // i.e. a state where we don't really know whether we're below the threshold or not\n // and false is the value where the computation returns false\n const [isSmallerThan, setIsSmallerThan] = useState();\n\n const handler = useCallback(() => {\n const isDesiredWidth = window.innerWidth < minWidth;\n setIsSmallerThan(isDesiredWidth);\n }, [minWidth]);\n\n useEffect(() => {\n window.addEventListener('resize', handler);\n handler();\n\n return () => {\n window.removeEventListener('resize', handler);\n };\n }, [handler]);\n\n return isSmallerThan;\n};\n\nexport default useMediaQuery;\n","import { useCallback, useRef, useState } from 'react';\n\nconst useResizeObserver = () => {\n const observerRef = useRef();\n const [resizeParameters, setResizeParameters] = useState({\n width: 0,\n height: 0,\n clientWidth: 0,\n clientHeight: 0,\n scrollWidth: 0,\n scrollHeight: 0,\n });\n\n const handleResize = useCallback((entries: ResizeObserverEntry[]) => {\n if (!Array.isArray(entries)) return;\n\n const entry = entries[0];\n\n setResizeParameters({\n width: entry?.contentRect.width ?? 0,\n height: entry?.contentRect.height ?? 0,\n clientWidth: entry?.target.clientWidth ?? 0,\n clientHeight: entry?.target.clientHeight ?? 0,\n scrollWidth: entry?.target.scrollWidth ?? 0,\n scrollHeight: entry?.target.scrollHeight ?? 0,\n });\n }, []);\n\n const ref = useCallback(\n (node: HTMLElement | null) => {\n if (observerRef.current && !node) {\n observerRef.current.disconnect();\n observerRef.current = undefined;\n }\n\n if (!observerRef.current && node) {\n observerRef.current = new ResizeObserver(handleResize);\n observerRef.current.observe(node);\n }\n },\n [handleResize]\n );\n\n return [ref, resizeParameters] as const;\n};\n\nexport default useResizeObserver;\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","classes","dataTestId","epiEdit","image","imageClasses","imageRef","lazyLoad","progressiveLoad","sizes","mobileSource","mobile","tabletSource","tablet","desktopSource","desktop","largeDesktopSource","largeDesktop","breakpoint","useBreakpoint","isLoaded","setIsLoaded","useState","url","currentSrc","BreakpointEnum","Small","Medium","Large","XLarge","React","createElement","className","classNames","type","srcSet","_extends","ref","alt","altText","length","draggable","loading","onLoad","src","height","width","originalUrl","forwardRef","additionalDataLayerProperties","direction","id","disabled","hasBackgroundColor","sizeClassName","iconSize","enabledArrowColor","isLightMode","onClick","nextAriaLabel","previousAriaLabel","useAriaLabels","buttonRef","useRef","useImperativeHandle","focus","current","HorizontalDirectionEnum","Left","Right","tabIndex","onKeyDown","e","key","updateDataLayer","event","content_type","link_text","Icon","name","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","editHint","link","linkCallback","pointerStates","SizeEnum","tagType","text","buttonProps","tagClasses","TagTypesEnum","Primary","Secondary","Square","Three","Four","href","target","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","anchorId","tabs","carouselWrapperRef","breakPoint","tabsContainerRef","tabsContainerWidth","useResizeObserver","activeTabIndex","setActiveTabIndex","slideIndex","setSlideIndex","mediaHeight","setMediaHeight","mediaLeftOffset","setMediaLeftOffset","isSwiperInitialized","setIsSwiperInitialized","tabTitles","map","tab","navButtonId","imageSlideTestId","videoSlideTestId","activeCarousel","useMemo","cards","isMobile","useMediaQuery","shouldLoop","duplicatedItems","duplicateArrayItems","itemsToDisplay","onResize","useCallback","activeImage","querySelector","activeVideo","activeMedia","getBoundingClientRect","body","ShadowContainerHorizontal","Carousel","onSlideChange","onInit","spaceBetween","slidesPerView","centeredSlides","breakpoints","slot","translateX","translateY","NavButton","right","card","index","videoCard","imageCard","SwiperSlide","slugify","description","media","InViewVideo","pillText","marginRight","dangerouslySetInnerHTML","__html","hidden","tabTitle","isActive","Tag","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","minWidth","isSmallerThan","setIsSmallerThan","handler","isDesiredWidth","observerRef","resizeParameters","setResizeParameters","clientHeight","scrollHeight","handleResize","entries","isArray","entry","contentRect","node","disconnect","undefined","ResizeObserver","observe","__assign","this","Object","assign","t","s","i","n","arguments","p","prototype","hasOwnProperty","call","apply","__rest","indexOf","getOwnPropertySymbols","propertyIsEnumerable","defineProperty","exports","iconList","react_1","iconSet","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","elementOrSelector","rootMargin","elements","activeIntersections","WeakMap","observer","IntersectionObserver","onEnd","get","isIntersecting","Boolean","newOnEnd","unobserve","element"],"sourceRoot":""}