{"version":3,"file":"ProductListing-Chunk-42ca0f5936d18a968d2d.js","mappings":"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","sources":["webpack://nikon-client/./components/atoms/CloseButton/CloseButton.tsx","webpack://nikon-client/./components/atoms/LoadingSpinner/LoadingSpinner.tsx","webpack://nikon-client/./components/atoms/Modal/Modal.tsx","webpack://nikon-client/./components/atoms/Portal/Portal.tsx","webpack://nikon-client/./utility/hooks/useVerticalGrabScroll.ts","webpack://nikon-client/./utility/hooks/useVerticalScrollShadows.ts","webpack://nikon-client/./components/atoms/ShadowContainerVertical/ShadowContainerVertical.tsx","webpack://nikon-client/./components/molecules/KitCard/KitCard.tsx","webpack://nikon-client/./components/molecules/KitDropdown/KitDropdown.tsx","webpack://nikon-client/./components/molecules/PromoCard/PromoCard.tsx","webpack://nikon-client/./components/organisms/ProductListing/ProductListingCardRow.tsx","webpack://nikon-client/./components/organisms/ProductListing/ProductListingCardBlock.tsx","webpack://nikon-client/./components/organisms/ProductListing/ProductListing.tsx","webpack://nikon-client/./models/enums/ErrorBannerNotificationEnum.ts","webpack://nikon-client/./models/enums/IconSizeEnum.ts","webpack://nikon-client/./models/enums/ListingCardTypeEnum.ts","webpack://nikon-client/./models/enums/ScrollProgressEnum.ts","webpack://nikon-client/./state-management/AriaLabelsStore.ts","webpack://nikon-client/./state-management/ErrorBannerNotificationDisplayStore.ts","webpack://nikon-client/./utility/helpers/bodyScrollLock.ts","webpack://nikon-client/./utility/helpers/chunkArray.ts","webpack://nikon-client/./utility/hooks/useAriaLabels.ts","webpack://nikon-client/./utility/hooks/useResizeObserver.ts","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 IconSizeEnum from '@models/enums/IconSizeEnum';\nimport useAriaLabels from '@utils/hooks/useAriaLabels';\nimport classNames from 'classnames';\nimport { MouseEventHandler } from 'react';\n\ninterface Props {\n readonly ariaLabel?: string;\n readonly className?: string;\n readonly color?: 'black' | 'white' | 'red';\n readonly onClick: MouseEventHandler;\n readonly size?: IconSizeEnum | string;\n readonly dataTestId?: string;\n}\n\nconst CloseButton = ({\n ariaLabel,\n className,\n color = 'black',\n onClick,\n size = IconSizeEnum.lg,\n dataTestId,\n}: Props) => {\n const { closeModalAriaLabel } = useAriaLabels();\n\n const closeColours = {\n black: 'before:bg-black-100 after:bg-black-100',\n white: 'before:bg-white after:bg-white',\n red: 'before:bg-red-100 after:bg-red-100',\n };\n\n return (\n \n );\n};\n\nexport default CloseButton;\n","import classNames from 'classnames';\n\ninterface Props {\n readonly extraClasses?: string;\n readonly svgClasses?: string;\n readonly trackColor?: string;\n readonly animationStyle?: 'pulse' | 'spin';\n readonly pulseContainerClasses?: string;\n readonly pulseItemClasses?: string;\n}\n\nconst LoadingSpinner = ({\n extraClasses,\n svgClasses = 'text-yellow h-9 w-9',\n pulseContainerClasses,\n pulseItemClasses = 'bg-yellow h-7.5 w-7.5',\n trackColor = '#E5E7EB',\n animationStyle = 'pulse',\n}: Props) => (\n
\n {animationStyle === 'pulse' && (\n
\n \n \n \n
\n )}\n {animationStyle === 'spin' && (\n \n \n \n \n )}\n
\n);\n\nexport default LoadingSpinner;\n","import CloseButton from '@atoms/CloseButton/CloseButton';\nimport Portal from '@atoms/Portal/Portal';\nimport IconSizeEnum from '@models/enums/IconSizeEnum';\nimport bodyScrollLock from '@utils/helpers/bodyScrollLock';\nimport classNames from 'classnames';\nimport FocusTrap from 'focus-trap-react';\nimport { motion } from 'framer-motion';\nimport { PropsWithChildren, useCallback, useEffect, useRef } from 'react';\n\ninterface Props {\n readonly onCloseCallback?: () => void;\n readonly contentClasses?: string;\n readonly crossMarginsClassName?: string;\n readonly crossClasses?: string;\n readonly crossColor?: 'black' | 'white';\n readonly isOpen: boolean;\n readonly modalClasses?: string;\n readonly setIsOpen?: (param: boolean) => void;\n readonly showCloseButton?: boolean;\n readonly transparent?: boolean;\n readonly isCloseButtonFixed?: boolean;\n readonly closeButtonIconSize?: IconSizeEnum | string;\n readonly shouldCloseOnClickOutsideContent?: boolean;\n readonly shouldLockBody?: boolean;\n}\n\nconst Modal = ({\n onCloseCallback,\n children,\n contentClasses,\n crossColor = 'white',\n crossMarginsClassName = 'mr-8 mt-8',\n crossClasses,\n isOpen,\n modalClasses,\n setIsOpen,\n showCloseButton = true,\n transparent = false,\n isCloseButtonFixed = true,\n closeButtonIconSize = IconSizeEnum.md,\n shouldCloseOnClickOutsideContent = false,\n shouldLockBody = true,\n}: PropsWithChildren) => {\n const contentRef = useRef(null);\n\n useEffect(() => {\n if (isOpen && shouldLockBody) {\n bodyScrollLock(true);\n }\n\n return () => {\n if (shouldLockBody) bodyScrollLock(false);\n };\n }, [isOpen, shouldLockBody]);\n\n const close = useCallback(() => {\n setIsOpen?.(false);\n onCloseCallback?.();\n }, [onCloseCallback, setIsOpen]);\n\n useEffect(() => {\n const keyboardClose = (ev: KeyboardEvent) => {\n if (ev.key === 'Escape' && isOpen === true) {\n setIsOpen?.(false);\n }\n };\n window.addEventListener('keydown', keyboardClose);\n\n return () => {\n window.removeEventListener('keydown', keyboardClose);\n };\n }, [isOpen, setIsOpen]);\n\n useEffect(() => {\n const handleClickOutsideContent = (ev: Event) => {\n if (\n isOpen &&\n shouldCloseOnClickOutsideContent &&\n !contentRef.current?.contains(ev.target as HTMLElement)\n ) {\n close();\n }\n };\n\n window.addEventListener('click', handleClickOutsideContent, true);\n\n return () => {\n window.removeEventListener('click', handleClickOutsideContent, true);\n };\n }, [close, isOpen, shouldCloseOnClickOutsideContent]);\n\n if (!isOpen) {\n return null;\n }\n\n return (\n \n \n \n \n
\n \n \n {showCloseButton && (\n <>\n {/* A hidden button that steals the inital focus of the modal preventing the close icon from animating on modal open */}\n {/* eslint-disable-next-line jsx-a11y/control-has-associated-label */}\n
\n \n \n \n \n \n
\n );\n};\n\nexport default Modal;\n","import { PropsWithChildren, useEffect, useMemo } from 'react';\nimport { createPortal } from 'react-dom';\n\ninterface Props {\n readonly mountId: string;\n}\n\nconst Portal = ({ mountId, children }: PropsWithChildren) => {\n const containerElement = useMemo(() => document.createElement('div'), []);\n\n useEffect(() => {\n document.getElementById(mountId)?.appendChild(containerElement);\n\n return () => {\n document.getElementById(mountId)?.removeChild(containerElement);\n };\n }, [mountId, containerElement]);\n\n return createPortal(children, containerElement);\n};\n\nexport default Portal;\n","import { RefObject, useEffect, useRef, useState } from 'react';\n\nconst useVerticalGrabScroll = (\n containerRef: RefObject,\n containerHeight: number,\n contentHeight: number,\n disabled = false\n) => {\n const [isMouseDown, setIsMouseDown] = useState(false);\n const mouseScrollPosition = useRef<{ top: number; y: number }>({\n top: 0,\n y: 0,\n });\n\n useEffect(() => {\n const container = containerRef.current;\n if (!container?.clientWidth) return;\n\n if (containerHeight >= contentHeight || 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 }, [containerHeight, contentHeight, isMouseDown, disabled]);\n\n useEffect(() => {\n mouseScrollPosition.current = { top: 0, y: 0 };\n const container = containerRef.current;\n\n if (!container) return () => ({});\n if (disabled) {\n container.scrollTop = 0;\n\n return () => ({});\n }\n\n const mouseMoveHandler = (e: MouseEvent) => {\n const dy = e.clientY - mouseScrollPosition.current.y;\n\n container.scrollTop = mouseScrollPosition.current.top - dy;\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 y: e.clientY,\n };\n setIsMouseDown(true);\n\n document.addEventListener('mousemove', mouseMoveHandler);\n document.addEventListener('mouseup', mouseUpHandler);\n };\n\n container.addEventListener('mousedown', mouseDownHandler);\n\n return () => {\n container.removeEventListener('mousedown', mouseDownHandler);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [disabled]);\n};\n\nexport default useVerticalGrabScroll;\n","import ScrollProgressEnum from '@models/enums/ScrollProgressEnum';\nimport { useMotionValueEvent, useScroll } from 'framer-motion';\nimport { RefObject, useEffect, useState } from 'react';\n\nconst useVerticalScrollShadows = (\n containerRef: RefObject,\n containerHeight: number,\n contentHeight: number,\n disabled = false\n) => {\n const { scrollYProgress } = useScroll({\n container: containerRef,\n });\n const [isStart, setIsStart] = useState(true);\n const [isEnd, setIsEnd] = useState(false);\n const [scrollProgress, setScrollProgress] = useState(\n ScrollProgressEnum.Start\n );\n const threshold = 0.05;\n\n useMotionValueEvent(scrollYProgress, '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 if (!containerHeight || disabled) return;\n\n if (containerHeight >= contentHeight) {\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 }, [disabled, scrollProgress, containerHeight, contentHeight]);\n\n return { isStart, isEnd };\n};\n\nexport default useVerticalScrollShadows;\n","import useResizeObserver from '@utils/hooks/useResizeObserver';\nimport useVerticalGrabScroll from '@utils/hooks/useVerticalGrabScroll';\nimport useVerticalScrollShadows from '@utils/hooks/useVerticalScrollShadows';\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 IShadowContainerVerticalRef {\n readonly scrollTo: (offset: number, behavior?: ScrollBehavior) => void;\n}\n\ninterface Props {\n readonly className?: string;\n readonly customScrollbarTheme?: 'light' | 'dark';\n readonly hideScrollbar?: boolean;\n readonly shadowColour?: string;\n readonly disableScroll?: boolean;\n readonly shadowHeight?: string;\n}\n\nconst ShadowContainerVertical = forwardRef<\n IShadowContainerVerticalRef,\n PropsWithChildren\n>(\n (\n {\n children,\n className,\n customScrollbarTheme,\n disableScroll = false,\n shadowColour = 'from-white dark:from-black-100',\n hideScrollbar = true,\n shadowHeight = 'h-10',\n },\n ref\n ) => {\n const containerRef = useRef(null);\n const [containerRefCallback, { height: containerHeight }] =\n useResizeObserver();\n const [contentRefCallback, { height: contentHeight }] = useResizeObserver();\n const { isStart, isEnd } = useVerticalScrollShadows(\n containerRef,\n containerHeight,\n contentHeight,\n disableScroll\n );\n useVerticalGrabScroll(\n containerRef,\n containerHeight,\n contentHeight,\n disableScroll\n );\n\n useImperativeHandle(ref, () => ({\n scrollTo: (topOffset: number, behavior: ScrollBehavior = 'smooth') => {\n containerRef.current?.scrollTo({ top: topOffset, behavior });\n },\n }));\n\n return (\n
\n \n {!isStart && !disableScroll && (\n \n )}\n \n\n {\n containerRef.current = node;\n containerRefCallback(node);\n }}\n // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex\n tabIndex={0}\n className={classNames(\n {\n 'scrollbar-hide': hideScrollbar,\n 'overflow-y-hidden': disableScroll,\n 'overflow-y-auto': !disableScroll,\n 'custom-scrollbar': !disableScroll && customScrollbarTheme,\n 'custom-scrollbar--light': customScrollbarTheme === 'light',\n 'custom-scrollbar--dark': customScrollbarTheme === 'dark',\n },\n 'relative h-full select-none'\n )}\n >\n
{children}
\n
\n\n \n {!isEnd && !disableScroll && (\n \n )}\n \n \n );\n }\n);\n\nexport default ShadowContainerVertical;\n","import Button from '@atoms/Button/Button';\nimport Image from '@atoms/Image/Image';\nimport PriceDisplayText from '@atoms/PriceDisplayText/PriceDisplayText';\nimport { easeInOut } from '@config/animations.config';\nimport { IProductListingStatusLabels } from '@models/IProductListingStatusLabels';\nimport { IProductVariant } from '@models/IProductVariant';\nimport Tags from '@molecules/Tags/Tags';\nimport updateDataLayer from '@utils/helpers/gtm';\nimport mapToNewTrackingData from '@utils/helpers/mapToNewTrackingData';\nimport useMediaQuery from '@utils/hooks/useMediaQuery';\nimport classNames from 'classnames';\nimport { motion } from 'framer-motion';\nimport { useEffect, useRef, useState } from 'react';\n\ninterface Props extends IProductVariant {\n readonly productListingName?: string;\n readonly statusLabels: IProductListingStatusLabels;\n readonly isLightMode?: boolean;\n}\n\nconst KitCard = ({\n buyNowLink,\n fromPriceLabel,\n kitNewLabel,\n kitOnlyPriceLabel,\n newProductLabel,\n productListingName,\n pricingData,\n savePriceLabel,\n shippingLabel,\n statusLabels,\n thumbnail,\n title,\n trackingData,\n vatLabel,\n isLightMode,\n}: Props) => {\n const [isHovered, setHover] = useState(false);\n const isXLarge = useMediaQuery(1440);\n const [ctaBoxHeight, setCtaBoxHeight] = useState(0);\n const ctaBox = useRef(null);\n const trackingDataJson = JSON.stringify(trackingData ?? '');\n\n useEffect(() => {\n setCtaBoxHeight(ctaBox.current?.clientHeight || 0);\n }, []);\n\n const contVariants = {\n hover: { y: -ctaBoxHeight },\n initial: { y: 0 },\n };\n\n const titleVariants = {\n hover: { y: -49 },\n initial: { y: 0 },\n };\n\n const ctaVariants = {\n hover: { opacity: 1 },\n initial: { opacity: isXLarge ? 1 : 0 },\n };\n\n const imgVariants = {\n hover: { y: -15, scale: 0.9 },\n inActive: { y: 0, scale: 1 },\n };\n\n const handleSelectItemEvent = () => {\n if (!trackingData) return;\n\n updateDataLayer({\n event: 'selectItem',\n ecommerce: {\n currency: trackingData.currency,\n items: [mapToNewTrackingData(trackingData, productListingName)],\n },\n });\n };\n\n return (\n setHover(true)}\n onBlur={() => setHover(false)}\n onMouseEnter={() => setHover(true)}\n onMouseLeave={() => setHover(false)}\n className={classNames(\n 'pointer-events-auto z-0 h-full w-full gap-5 overflow-hidden rounded-[10px] p-5',\n isLightMode ? 'bg-white text-black-100' : 'bg-black-100 text-white'\n )}\n >\n
\n
\n \n
\n\n \n {thumbnail && (\n {\n if (buyNowLink?.url) handleSelectItemEvent();\n }}\n aria-label={title}\n className=\"flex h-full w-full\"\n >\n \n \n )}\n \n\n \n {title &&

{title}

}\n \n\n
\n \n {pricingData?.formattedCalculatedPrice && (\n \n )}\n\n \n {buyNowLink?.url && buyNowLink.name && (\n \n )}\n \n \n
\n
\n \n );\n};\n\nexport default KitCard;\n","import { IKitDropdownRef } from '@models/IKitDropdownRef';\nimport { IProductListingStatusLabels } from '@models/IProductListingStatusLabels';\nimport { IProductVariant } from '@models/IProductVariant';\nimport KitCard from '@molecules/KitCard/KitCard';\nimport classNames from 'classnames';\nimport { forwardRef, useImperativeHandle, useRef } from 'react';\n\ninterface Props {\n readonly kitTitleLabel: string;\n readonly kitsTitleLabel: string;\n readonly productListingName?: string;\n readonly statusLabels: IProductListingStatusLabels;\n readonly variations: IProductVariant[];\n readonly isLightMode?: boolean;\n}\n\nconst KitDropdown = forwardRef(\n (\n {\n kitTitleLabel,\n kitsTitleLabel,\n productListingName,\n statusLabels,\n variations = [],\n isLightMode,\n }: Props,\n ref\n ) => {\n const sectionRef = useRef(null);\n const kits =\n variations?.filter((variation) => variation.type === 'kit') ?? [];\n\n useImperativeHandle(ref, () => ({\n scrollIntoView: () => {\n sectionRef.current?.scrollIntoView({ behavior: 'smooth' });\n },\n }));\n\n return (\n \n
\n {kitsTitleLabel && kitTitleLabel && (\n

\n {`${kits.length} ${\n kits.length > 1 ? kitsTitleLabel : kitTitleLabel\n }`}\n

\n )}\n
\n {!!kits.length &&\n kits.map((kit) => (\n \n \n
\n ))}\n
\n \n \n );\n }\n);\n\nexport default KitDropdown;\n","import Button from '@atoms/Button/Button';\nimport Image from '@atoms/Image/Image';\nimport { IPromoCard } from '@models/IPromoCard';\nimport useMediaQuery from '@utils/hooks/useMediaQuery';\nimport classNames from 'classnames';\n\nconst PromoCard = ({\n title,\n text,\n cta,\n image,\n isLargeCard,\n dataTestId = 'Promo-Card',\n}: IPromoCard) => {\n const isMobile = useMediaQuery(1440);\n\n return (\n \n {image && (\n \n )}\n \n \n \n {title}\n

\n {text && (\n \n {text}\n

\n )}\n \n {cta?.url && cta.name && (\n