{"version":3,"file":"ExternalVideoPlaylist-Chunk-fb098c759917c6f6d8b0.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/LoadMoreButton/LoadMoreButton.tsx","webpack://nikon-client/./components/atoms/Video/Video.tsx","webpack://nikon-client/./config/video.config.ts","webpack://nikon-client/./models/enums/VideoProviderEnum.ts","webpack://nikon-client/./components/molecules/ExternalVideo/ExternalVideo.tsx","webpack://nikon-client/./components/organisms/ExternalVideoPlaylist/videoLists/DesktopVideoList.tsx","webpack://nikon-client/./components/organisms/ExternalVideoPlaylist/videoLists/MobileVideoList.tsx","webpack://nikon-client/./components/organisms/ExternalVideoPlaylist/ExternalVideoPlaylist.tsx","webpack://nikon-client/./models/enums/BreakpointEnum.ts","webpack://nikon-client/./state-management/AriaLabelsStore.ts","webpack://nikon-client/./state-management/CookieStatusStore.ts","webpack://nikon-client/./utility/helpers/chunkArray.ts","webpack://nikon-client/./utility/helpers/gtm.ts","webpack://nikon-client/./utility/hooks/useAriaLabels.ts","webpack://nikon-client/./utility/hooks/useBreakpoint.ts","webpack://nikon-client/./utility/hooks/useMediaQuery.ts"],"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 classNames from 'classnames';\nimport { motion } from 'framer-motion';\nimport { ButtonHTMLAttributes, DetailedHTMLProps } from 'react';\n\ninterface Props\n extends DetailedHTMLProps<\n ButtonHTMLAttributes,\n HTMLButtonElement\n > {\n readonly open?: boolean;\n readonly loadMoreLabel: string;\n readonly loadLessLabel?: string;\n readonly _type?: 'BASIC' | 'YELLOW-HIGHLIGHT';\n readonly isLightMode?: boolean;\n readonly dataTestId?: string;\n}\n\nconst LoadMoreButton = ({\n open = false,\n loadMoreLabel,\n loadLessLabel,\n _type = 'BASIC',\n isLightMode,\n dataTestId,\n ...props\n}: Props) => (\n \n {(!open || loadLessLabel) && (\n

{open ? loadLessLabel : loadMoreLabel}

\n )}\n\n \n \n \n \n);\n\nexport default LoadMoreButton;\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","export const autoPlayYoutubePlayerAttributes = {\n playsinline: true,\n muted: true,\n playing: true,\n};\n\nexport const autoPlayYoutubePlayerConfig = {\n youtube: {\n playerVars: {\n autoplay: 1,\n mute: 1,\n enablejsapi: 1,\n showinfo: 0,\n },\n },\n};\n\nexport const standardYoutubePlayerAttributes = {\n playsinline: true,\n muted: true,\n playing: false,\n};\n\nexport const standardYoutubePlayerConfig = {\n youtube: {\n playerVars: {\n autoplay: 0,\n mute: 0,\n enablejsapi: 1,\n showinfo: 0,\n },\n },\n};\n\nexport const autoPlayVimeoPlayerAttributes = {\n playsinline: true,\n muted: true,\n playing: true,\n};\n\nexport const autoPlayVimeoPlayerConfig = {\n vimeo: {\n playerOptions: {\n autoplay: true,\n muted: true,\n },\n },\n};\n\nexport const standardVimeoPlayerAttributes = {\n playsinline: true,\n muted: false,\n playing: false,\n loop: true,\n};\n\nexport const standardViemoPlayerConfig = {\n vimeo: {\n playerOptions: {\n autoplay: false,\n muted: false,\n },\n },\n};\n","enum VideoProviderEnum {\n Youtube = 'youtube',\n Vimeo = 'vimeo',\n}\n\nexport default VideoProviderEnum;\n","import Video from '@atoms/Video/Video';\nimport {\n autoPlayVimeoPlayerAttributes,\n autoPlayVimeoPlayerConfig,\n autoPlayYoutubePlayerAttributes,\n autoPlayYoutubePlayerConfig,\n standardViemoPlayerConfig,\n standardVimeoPlayerAttributes,\n standardYoutubePlayerAttributes,\n standardYoutubePlayerConfig,\n} from '@config/video.config';\nimport VideoProviderEnum from '@models/enums/VideoProviderEnum';\nimport IExternalVideo from '@models/IExternalVideo';\nimport { IVideoAttributes } from '@models/IVideoAttributes';\nimport classNames from 'classnames';\nimport { forwardRef, PropsWithChildren } from 'react';\n\ninterface Props extends IExternalVideo {\n readonly autoPlay: boolean;\n readonly onEndedVideo?: () => void;\n readonly onVideoReady?: () => void;\n readonly onVideoStart?: () => void;\n readonly classes?: string;\n readonly customVideoAttributes?: IVideoAttributes;\n readonly isInvisible?: boolean;\n readonly dataTestId?: string;\n}\n\nconst ExternalVideo = forwardRef(\n (\n {\n videoProvider = VideoProviderEnum.Youtube,\n videoId,\n autoPlay,\n onEndedVideo,\n onVideoReady,\n onVideoStart,\n classes,\n children,\n title,\n customVideoAttributes,\n isInvisible = false,\n dataTestId = 'External-Video',\n }: PropsWithChildren,\n ref\n ) => {\n const options = {\n youtube: {\n autoPlay: {\n videoAttributes: autoPlayYoutubePlayerAttributes,\n videoConfig: autoPlayYoutubePlayerConfig,\n },\n standard: {\n videoAttributes: standardYoutubePlayerAttributes,\n videoConfig: standardYoutubePlayerConfig,\n },\n },\n vimeo: {\n autoPlay: {\n videoAttributes: autoPlayVimeoPlayerAttributes,\n videoConfig: autoPlayVimeoPlayerConfig,\n },\n standard: {\n videoAttributes: standardVimeoPlayerAttributes,\n videoConfig: standardViemoPlayerConfig,\n },\n },\n };\n\n return (\n \n \n {children}\n \n );\n }\n);\n\nexport default ExternalVideo;\n","import Icon from '@atoms/Icon/Icon';\nimport Image from '@atoms/Image/Image';\nimport IExternalVideo from '@models/IExternalVideo';\nimport classNames from 'classnames';\nimport { Dispatch, SetStateAction, useState } from 'react';\nimport SwiperType from 'swiper';\nimport { Mousewheel, Navigation } from 'swiper/modules';\nimport { Swiper, SwiperSlide } from 'swiper/react';\n\ninterface Props {\n readonly playlistId: string;\n readonly setActiveSource?: Dispatch>;\n readonly setActiveSourceIndex?: Dispatch>;\n readonly setPlaying?: Dispatch>;\n readonly videoPlaylist: IExternalVideo[];\n}\n\nconst DesktopVideoList = ({\n videoPlaylist = [],\n setActiveSource,\n setActiveSourceIndex,\n setPlaying,\n playlistId,\n}: Props) => {\n const [isBeginning, setIsBeginning] = useState(true);\n const [isEnd, setIsEnd] = useState(false);\n\n const playVideo = (videoId: string, index: number) => {\n setActiveSource?.(videoId);\n setActiveSourceIndex?.(index);\n setPlaying?.(true);\n };\n\n const handleSlideChange = (swiper: SwiperType) => {\n setIsBeginning(swiper?.isBeginning);\n setIsEnd(swiper?.isEnd);\n };\n\n const swiperId = `video-playlist-${playlistId}`;\n\n return (\n \n
\n
\n handleSlideChange(swiper)}\n onToEdge={(swiper) => handleSlideChange(swiper)}\n direction=\"vertical\"\n slidesPerView=\"auto\"\n spaceBetween={20}\n modules={[Navigation, Mousewheel]}\n mousewheel={{\n forceToAxis: true,\n }}\n navigation={{\n prevEl: `#prevBtn-${swiperId}`,\n nextEl: `#nextBtn-${swiperId}`,\n }}\n >\n {videoPlaylist?.map(\n ({ coverImage, videoId, title, subTitle }, index) => (\n \n
\n playVideo(`${videoId}`, index)}\n data-testid={`CT-10-B-Video-Embed-Playlist-External-Video-Desktop-Video-List-Item-${index}-Play-Button`}\n >\n \n \n \n \n \n
\n {title && (\n \n \n {title}{' '}\n \n {subTitle}\n

\n )}\n
\n
\n \n )\n )}\n \n
\n
\n \n \n \n \n \n \n \n );\n};\n\nexport default DesktopVideoList;\n","import Icon from '@atoms/Icon/Icon';\nimport Image from '@atoms/Image/Image';\nimport LoadMoreButton from '@atoms/LoadMoreButton/LoadMoreButton';\nimport IExternalVideo from '@models/IExternalVideo';\nimport chunkArray from '@utils/helpers/chunkArray';\nimport { motion } from 'framer-motion';\nimport { Dispatch, SetStateAction, useEffect, useState } from 'react';\n\ninterface Props {\n readonly activeSourceIndex: number;\n readonly loadMoreText: string;\n readonly setActiveSource?: Dispatch>;\n readonly setActiveSourceIndex?: Dispatch>;\n readonly setPlaying?: Dispatch>;\n readonly videoPlaylist: IExternalVideo[];\n}\n\nconst MobileVideoList = ({\n videoPlaylist = [],\n setActiveSource,\n setActiveSourceIndex,\n activeSourceIndex = 0,\n setPlaying,\n loadMoreText = '',\n}: Props) => {\n const [activeGroupIndex, setActiveGroupIndex] = useState(0);\n const [chunkedArray, setChunkedArray] = useState([]);\n const [visibleVideos, setVisibleVideos] = useState([]);\n\n useEffect(() => {\n if (videoPlaylist?.length > 0) {\n const chunkedIntoThree = chunkArray(videoPlaylist, 4);\n setVisibleVideos(chunkedIntoThree[0]!);\n setChunkedArray(chunkedIntoThree);\n }\n }, [videoPlaylist]);\n\n return (\n
\n \n {videoPlaylist[activeSourceIndex]?.title && (\n \n {videoPlaylist[activeSourceIndex]!.title}\n \n )}\n
\n {visibleVideos.length > 0 &&\n visibleVideos?.map(\n ({ coverImage, videoId, title, subTitle }, index) => (\n \n {\n setActiveSource?.(videoId!);\n setActiveSourceIndex?.(index);\n setPlaying?.(true);\n }}\n data-testid={`CT-10-B-Video-Embed-Playlist-External-Video-Mobile-Video-List-Item-${index}-Play-Button`}\n >\n \n \n \n \n \n
\n {title && (\n \n \n {title}{' '}\n \n {subTitle}\n

\n )}\n
\n
\n )\n )}\n
\n \n\n {chunkedArray && chunkedArray[activeGroupIndex + 1] && (\n
\n {\n if (chunkedArray && chunkedArray[activeGroupIndex + 1]) {\n const nextChunk = chunkedArray.filter(\n (_, index) => index === activeGroupIndex + 1\n );\n\n setVisibleVideos((oldState) => [...oldState, ...nextChunk[0]!]);\n setActiveGroupIndex((oldState) => oldState + 1);\n }\n }}\n dataTestId=\"CT-10-B-Video-Embed-Playlist-External-Video-Desktop-Video-List-Item-Load-More\"\n />\n
\n )}\n \n );\n};\n\nexport default MobileVideoList;\n","import Button from '@atoms/Button/Button';\nimport Icon from '@atoms/Icon/Icon';\nimport Image from '@atoms/Image/Image';\nimport IExternalVideo from '@models/IExternalVideo';\nimport { ILink } from '@models/ILink';\nimport { IMeta } from '@models/IMeta';\nimport ExternalVideo from '@molecules/ExternalVideo/ExternalVideo';\nimport useCookieStatusStore from '@state/CookieStatusStore';\nimport updateDataLayer from '@utils/helpers/gtm';\nimport useAriaLabels from '@utils/hooks/useAriaLabels';\nimport useMediaQuery from '@utils/hooks/useMediaQuery';\nimport classNames from 'classnames';\nimport { AnimatePresence, motion } from 'framer-motion';\nimport { useState } from 'react';\nimport DesktopVideoList from './videoLists/DesktopVideoList';\nimport MobileVideoList from './videoLists/MobileVideoList';\n\ninterface Props {\n readonly title: string;\n readonly link?: ILink;\n readonly videoPlaylist: IExternalVideo[];\n readonly loadMoreText: string;\n readonly anchorId: string;\n readonly meta?: IMeta;\n}\n\nconst ExternalVideoPlaylist = ({\n title,\n link,\n videoPlaylist,\n loadMoreText,\n anchorId = '',\n meta,\n}: Props) => {\n const isMobileView = useMediaQuery(1440);\n const [activeSource, setActiveSource] = useState(\n `${videoPlaylist[0]?.videoId ?? ''}`\n );\n const [activeSourceIndex, setActiveSourceIndex] = useState(0);\n const [playing, setPlaying] = useState(false);\n const { cookieStatus } = useCookieStatusStore((state) => ({\n cookieStatus: state.cookieStatus,\n }));\n const { playVideoAriaLabel } = useAriaLabels();\n\n return videoPlaylist.length > 0 ? (\n \n
\n
\n {(title || (link?.url && link?.name)) && (\n \n {title && (\n \n {title}\n \n )}\n {link?.name && link?.url && (\n {\n updateDataLayer({\n event: 'ctaClicks',\n content_type: link.name,\n });\n }}\n dataTestId=\"CT-10-B-Video-Embed-Playlist-Link-Button\"\n />\n )}\n
\n )}\n \n
\n {cookieStatus && (\n {\n const nextVideoIndex = activeSourceIndex + 1;\n if (videoPlaylist[nextVideoIndex]) {\n const { videoId } = videoPlaylist[nextVideoIndex]!;\n setActiveSource(`${videoId}`);\n setActiveSourceIndex(nextVideoIndex);\n setPlaying(true);\n } else {\n const { videoId } = videoPlaylist[0]!;\n setActiveSource(`${videoId}`);\n setActiveSourceIndex(0);\n setPlaying(false);\n }\n }}\n dataTestId=\"CT-10-B-Video-Embed-Playlist-External-Video\"\n />\n )}\n\n \n {!playing && (\n {\n if (cookieStatus && videoPlaylist[activeSourceIndex]) {\n const { videoId } = videoPlaylist[activeSourceIndex]!;\n setActiveSource(`${videoId}`);\n setPlaying(true);\n }\n }}\n className=\"absolute -bottom-[0.1rem] left-0 top-0 flex w-full items-center justify-center\"\n >\n {!playing &&\n videoPlaylist[activeSourceIndex]?.coverImage && (\n <>\n \n \n {isMobileView ? (\n \n ) : (\n \n )}\n
\n
\n \n \n ) : null;\n};\n\nexport default ExternalVideoPlaylist;\n","const enum BreakpointEnum {\n Small = 'sm',\n Medium = 'md',\n Large = 'lg',\n XLarge = 'xl',\n}\n\nexport default BreakpointEnum;\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","import create from 'zustand';\n\ninterface ICookieStatusState {\n readonly cookieStatus: boolean;\n readonly setCookieStatus: (cookieStatus: boolean) => void;\n}\n\nconst useCookieStatusStore = create((set) => ({\n cookieStatus: false,\n setCookieStatus: (cookieStatus: boolean) => set({ cookieStatus }),\n}));\n\nexport default useCookieStatusStore;\n","const chunkArray = (array: T[], chunkSize: number) =>\n array.reduce((acc, item, index) => {\n const chunk = Math.floor(index / chunkSize);\n acc[chunk] = [...(acc[chunk] || []), item];\n\n return acc;\n }, []);\n\nexport default chunkArray;\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","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"],"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","open","loadMoreLabel","loadLessLabel","_type","props","motion","span","animate","rotate","Icon","size","colorClassName","ReactPlayer","loadable","forwardRef","config","controls","isPlaying","title","videoAttributes","videoRatio","videoSource","videoWrapperOpacityProgress","onEndedVideo","onVideoReady","onVideoStart","onVolumeChange","setIsPlaying","prevProgress","setPrevProgress","isBrowser","setIsBrowser","useEffect","window","handleProgressUpdate","progress","updateDataLayer","event","video_interaction","video_progress","video_title","handleVideoAction","action","div","style","opacity","playing","onProgress","_ref2","played","onStart","onEnded","onPause","onPlay","onReady","autoPlayYoutubePlayerAttributes","playsinline","muted","autoPlayYoutubePlayerConfig","youtube","playerVars","autoplay","mute","enablejsapi","showinfo","standardYoutubePlayerAttributes","standardYoutubePlayerConfig","autoPlayVimeoPlayerAttributes","autoPlayVimeoPlayerConfig","vimeo","playerOptions","standardVimeoPlayerAttributes","loop","standardViemoPlayerConfig","VideoProviderEnum","videoProvider","Youtube","videoId","autoPlay","customVideoAttributes","isInvisible","options","videoConfig","standard","invisible","Video","videoPlaylist","setActiveSource","setActiveSourceIndex","setPlaying","playlistId","isBeginning","setIsBeginning","isEnd","setIsEnd","handleSlideChange","swiper","swiperId","Swiper","onSlideChange","onToEdge","direction","slidesPerView","spaceBetween","modules","Navigation","Mousewheel","mousewheel","forceToAxis","navigation","prevEl","nextEl","map","index","coverImage","subTitle","SwiperSlide","key","playVideo","Image","id","activeSourceIndex","loadMoreText","activeGroupIndex","setActiveGroupIndex","chunkedArray","setChunkedArray","visibleVideos","setVisibleVideos","chunkedIntoThree","chunkArray","LoadMoreButton","nextChunk","filter","_","oldState","anchorId","meta","isMobileView","useMediaQuery","activeSource","cookieStatus","useCookieStatusStore","state","playVideoAriaLabel","useAriaLabels","contentLink","editHints","text","Button","content_type","ExternalVideo","nextVideoIndex","AnimatePresence","initial","exit","Fragment","label","MobileVideoList","DesktopVideoList","initialAriaLabels","backToFirstLevelNavigationAriaLabel","breadcrumbAriaLabel","breadcrumbFooterAriaLabel","clearFiltersAriaLabel","closeMenuAriaLabel","closeAddressListAriaLabel","closeMobileNavigationAriaLabel","closeModalAriaLabel","closeSignUpFormAriaLabel","closeSiteNotificationAriaLabel","copyToClipboardAriaLabel","editOrDeleteAriaLabel","mainNavigationAriaLabel","moreInformationAriaLabel","nextAriaLabel","openAddressListAriaLabel","openImageInFullScreenAriaLabel","openMenuAriaLabel","overlayToCloseDesktopNavigationAriaLabel","pauseVideoAriaLabel","previousAriaLabel","searchAriaLabel","shareToFacebookAriaLabel","shareToWhatsappAriaLabel","shareToXAriaLabel","siteNotificationsAriaLabel","uspStripAriaLabel","zoomInAriaLabel","zoomOutAriaLabel","create","set","ariaLabels","setAriaLabels","setCookieStatus","array","chunkSize","reduce","acc","item","chunk","Math","floor","eventPayload","dataLayer","push","ariaLabelsFromStore","useAriaLabelsStore","getCurrentBreakpoint","breakpoints","innerWidth","screen","setScreen","resizeHandler","useCallback","addEventListener","removeEventListener","minWidth","isSmallerThan","setIsSmallerThan","handler","isDesiredWidth"],"sourceRoot":""}