{"version":3,"file":"9539-0a5155fdb79ee2962b25.js","mappings":"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","sources":["webpack://nikon-client/./components/atoms/Image/Image.tsx","webpack://nikon-client/./components/atoms/PriceDisplayText/PriceDisplayText.tsx","webpack://nikon-client/./components/atoms/Tag/Tag.tsx","webpack://nikon-client/./components/molecules/ProductCard/ProductCard.tsx","webpack://nikon-client/./components/molecules/Tags/Tags.tsx","webpack://nikon-client/./config/animations.config.ts","webpack://nikon-client/./models/enums/ProductStockStatusEnum.ts","webpack://nikon-client/./models/enums/TagTypesEnum.ts","webpack://nikon-client/./utility/helpers/mapToNewTrackingData.ts","webpack://nikon-client/./assets/hue.svg"],"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 { IPricingData } from '@models/IPricingData';\nimport classNames from 'classnames';\n\ninterface Props {\n readonly centerText?: boolean;\n readonly fromPriceLabel?: string;\n readonly pricingData: IPricingData;\n readonly vatLabel?: string;\n readonly shippingLabel?: string;\n readonly rrpLabel?: string;\n readonly smallText?: boolean;\n readonly containerClassName?: string;\n readonly taxesTopMarginClassName?: string;\n readonly taxesClassName?: string;\n readonly priceClassName?: string;\n readonly dataTestId?: string;\n readonly isLightMode?: boolean;\n}\n\nconst PriceDisplayText = ({\n fromPriceLabel,\n pricingData,\n vatLabel,\n shippingLabel,\n rrpLabel,\n centerText = false,\n smallText = false,\n containerClassName,\n taxesTopMarginClassName = 'mt-2',\n taxesClassName,\n priceClassName,\n dataTestId,\n isLightMode,\n}: Props) => {\n const {\n amountSaved,\n formattedPrice,\n formattedCalculatedPrice,\n shippingCost,\n price,\n } = pricingData;\n\n if (typeof price !== 'number') {\n return null;\n }\n\n return (\n \n {(centerText ||\n (amountSaved > 0 && formattedPrice) ||\n formattedCalculatedPrice) && (\n \n {fromPriceLabel && {fromPriceLabel}}\n\n {amountSaved > 0 && formattedPrice && (\n <>\n {rrpLabel && {rrpLabel}}\n \n {formattedPrice}\n \n \n )}\n\n {formattedCalculatedPrice && (\n 0,\n 'dark:text-yellow': amountSaved > 0 && !isLightMode,\n },\n priceClassName\n )}\n data-testid=\"Price-Display-Text-Price\"\n >\n {formattedCalculatedPrice}\n \n )}\n \n )}\n\n {(vatLabel || (!shippingCost && shippingLabel)) && (\n \n {vatLabel && vatLabel}\n {vatLabel && !shippingCost && shippingLabel && ' + '}\n {!shippingCost && shippingLabel && shippingLabel}\n

\n )}\n \n );\n};\n\nexport default PriceDisplayText;\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 }`]:\n (tagType === TagTypesEnum.Three || tagType === TagTypesEnum.Five) &&\n 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 [`text-black-100 bg-grey-100 ${\n isLightMode ? '' : 'dark:bg-grey-600 dark:text-white'\n }`]: tagType === TagTypesEnum.Five,\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 Hue from '@assets/hue.svg';\nimport Button from '@atoms/Button/Button';\nimport Image from '@atoms/Image/Image';\nimport PriceDisplayText from '@atoms/PriceDisplayText/PriceDisplayText';\nimport { easeInOut } from '@config/animations.config';\nimport { IProductCard } from '@models/IProductCard';\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 IProductCard {\n readonly classes?: string;\n readonly dataTestId?: string;\n}\n\nconst ProductCard = ({\n buyNowLink,\n category,\n classes,\n fromPriceLabel,\n hidePriceFromSavePill,\n image,\n isLargeCard = false,\n isSmallCard = false,\n learnMoreLink,\n name,\n newProductLabel,\n pricingData,\n savePriceLabel,\n shippingLabel,\n statusLabels,\n thumbnail,\n trackingData,\n vatLabel,\n dataTestId,\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 const handleIntentToBuyEvent = (contentType: string) => {\n if (!trackingData) return;\n\n updateDataLayer({\n event: 'intentToBuy',\n content_type: contentType,\n items: [mapToNewTrackingData(trackingData)],\n });\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)],\n },\n });\n };\n\n useEffect(() => {\n setCtaBoxHeight(ctaBox.current?.clientHeight || 0);\n }, []);\n\n const contVariants = {\n hover: {\n y: -ctaBoxHeight,\n },\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: {\n y: -15,\n scale: 1.1,\n },\n initial: { y: 0, scale: 1 },\n };\n\n const hueVariants = {\n hover: { opacity: 0.2 },\n initial: { opacity: 0 },\n };\n\n const titleSize =\n (isLargeCard && !isXLarge && 'h3') ||\n (isSmallCard && !isXLarge && 'h6') ||\n 'h5';\n\n return (\n setHover(true)}\n onBlur={() => setHover(false)}\n onMouseEnter={() => setHover(true)}\n onMouseLeave={() => setHover(false)}\n // eslint-disable-next-line react/no-unknown-property\n track-product-impression=\"true\"\n data-product={trackingDataJson}\n className={classNames(\n 'pointer-events-auto relative flex h-full w-full flex-col justify-end gap-5 overflow-hidden rounded-[10px] bg-grey-200 dark:bg-grey-600',\n isSmallCard ? 'p-5' : 'px-5 py-8 xl:px-7 xl:py-15',\n classes\n )}\n data-testid={dataTestId}\n >\n {image && (\n \n )}\n {(savePriceLabel || newProductLabel || statusLabels) && (\n
\n \n
\n )}\n \n \n {thumbnail && (\n {\n if (learnMoreLink?.url)\n handleIntentToBuyEvent('product picture');\n else if (buyNowLink?.url) handleSelectItemEvent();\n }}\n aria-label={name}\n className=\"flex h-full w-full\"\n >\n \n\n {!isLargeCard && (\n \n \n \n )}\n \n )}\n \n\n \n {category && (\n \n {category}\n

\n )}\n {name && (\n \n {name}\n

\n )}\n\n {pricingData?.formattedCalculatedPrice && (\n \n )}\n\n \n {learnMoreLink?.name && learnMoreLink?.url && (\n \n handleIntentToBuyEvent(learnMoreLink.name || 'Learn more')\n }\n dataTestId=\"Product-Card-Learn More\"\n />\n )}\n\n {buyNowLink?.url && buyNowLink?.name && (\n \n {buyNowLink.name}\n \n )}\n \n \n \n \n );\n};\n\nexport default ProductCard;\n","import Tag from '@atoms/Tag/Tag';\nimport ProductStockStatusEnum from '@models/enums/ProductStockStatusEnum';\nimport TagTypesEnum from '@models/enums/TagTypesEnum';\nimport { ITags } from '@models/ITags';\n\nconst Tags = ({\n hidePriceFromSavePill,\n pricingData,\n newProductLabel,\n savePriceLabel,\n statusLabels,\n dataTestId,\n}: ITags) => (\n <>\n {newProductLabel && (\n \n )}\n\n {pricingData?.status === ProductStockStatusEnum.OutOfStock &&\n statusLabels?.outOfStockLabel && (\n \n )}\n\n {pricingData?.status === ProductStockStatusEnum.SoldOut &&\n statusLabels?.soldOutLabel && (\n \n )}\n\n {pricingData?.status === ProductStockStatusEnum.PreOrder &&\n statusLabels?.preOrderLabel && (\n \n )}\n\n {pricingData?.isCommerceEnabled &&\n pricingData.status === ProductStockStatusEnum.BackOrder &&\n statusLabels?.backOrderLabel && (\n \n )}\n\n {!!(\n pricingData?.formattedAmountSaved &&\n pricingData.amountSaved > 0 &&\n savePriceLabel\n ) && (\n \n )}\n \n);\n\nexport default Tags;\n","export const fadeUp = {\n hidden: {\n y: 30,\n opacity: 0,\n transition: {\n ease: [0.42, 0.46, 0.45, 0.99],\n duration: 0.5,\n },\n },\n visible: {\n y: 0,\n opacity: 1,\n transition: {\n ease: [0.42, 0.46, 0.45, 0.99],\n duration: 0.5,\n },\n },\n};\n\nexport const easeInOut = {\n transition: { type: 'easeinout', duration: 0.25 },\n};\n","// We get these values from the external stores, so they can't be changed unless they change also on the stores\n\nconst enum ProductStockStatusEnum {\n InStock = 'IN_STOCK',\n OutOfStock = 'OUT_OF_STOCK',\n ComingSoon = 'COMING_SOON',\n PreOrder = 'PRE_ORDER',\n BackOrder = 'BACKORDER',\n SoldOut = 'SOLD_OUT',\n DoNotShow = 'DO_NOT_SHOW',\n BtoBOnly = 'B2B_ONLY',\n}\n\nexport default ProductStockStatusEnum;\n","enum TagTypesEnum {\n Primary = 'PRIMARY',\n Secondary = 'SECONDARY',\n Three = 'THREE',\n Four = 'FOUR',\n Five = 'FIVE',\n Square = 'SQUARE',\n}\n\nexport default TagTypesEnum;\n","import {\n INewProductTrackingData,\n IProductTrackingData,\n} from '@models/IProductTrackingData';\n\nconst mapToNewTrackingData = (\n trackingData: IProductTrackingData,\n listingName?: string\n): INewProductTrackingData => {\n const { name, id, price, discount, brand, category, variant, position } =\n trackingData;\n\n return {\n item_name: name,\n item_id: id,\n price,\n discount,\n item_brand: brand,\n item_category: category,\n item_variant: variant,\n index: position,\n ...(listingName && { item_list_name: listingName }),\n };\n};\n\nexport default mapToNewTrackingData;\n","module.exports = \"data:image/svg+xml,%3csvg width='906' height='906' viewBox='0 0 906 906' fill='none' xmlns='http://www.w3.org/2000/svg'%3e %3cg opacity='0.5' filter='url(%23filter0_df_5839_100698)'%3e %3ccircle cx='453' cy='453' r='263' fill='%23FFDD00'/%3e %3c/g%3e %3cdefs%3e %3cfilter id='filter0_df_5839_100698' x='0' y='0' width='906' height='906' filterUnits='userSpaceOnUse' color-interpolation-filters='sRGB'%3e %3cfeFlood flood-opacity='0' result='BackgroundImageFix'/%3e %3cfeColorMatrix in='SourceAlpha' type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0' result='hardAlpha'/%3e %3cfeOffset dy='1.66516'/%3e %3cfeGaussianBlur stdDeviation='0.832579'/%3e %3cfeComposite in2='hardAlpha' operator='out'/%3e %3cfeColorMatrix type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0'/%3e %3cfeBlend mode='normal' in2='BackgroundImageFix' result='effect1_dropShadow_5839_100698'/%3e %3cfeBlend mode='normal' in='SourceGraphic' in2='effect1_dropShadow_5839_100698' result='shape'/%3e %3cfeGaussianBlur stdDeviation='95' result='effect2_foregroundBlur_5839_100698'/%3e %3c/filter%3e %3c/defs%3e %3c/svg%3e\""],"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","fromPriceLabel","pricingData","vatLabel","shippingLabel","rrpLabel","centerText","smallText","containerClassName","taxesTopMarginClassName","taxesClassName","priceClassName","isLightMode","amountSaved","formattedPrice","formattedCalculatedPrice","shippingCost","price","Fragment","disabled","editHint","link","linkCallback","pointerStates","size","SizeEnum","span","tagType","text","buttonProps","tagClasses","TagTypesEnum","Primary","Secondary","Square","Three","Five","Four","name","href","target","onClick","buyNowLink","category","hidePriceFromSavePill","isLargeCard","isSmallCard","learnMoreLink","newProductLabel","savePriceLabel","statusLabels","thumbnail","trackingData","isHovered","setHover","isXLarge","useMediaQuery","ctaBoxHeight","setCtaBoxHeight","ctaBox","useRef","trackingDataJson","JSON","stringify","handleIntentToBuyEvent","contentType","updateDataLayer","event","content_type","items","mapToNewTrackingData","handleSelectItemEvent","ecommerce","currency","useEffect","current","clientHeight","contVariants","hover","y","initial","ctaVariants","opacity","titleSize","onFocus","onBlur","onMouseEnter","onMouseLeave","Image","Tags","motion","div","animate","variants","scale","transition","easeInOut","Hue","PriceDisplayText","duration","Button","secondary","Tag","status","ProductStockStatusEnum","OutOfStock","outOfStockLabel","SoldOut","soldOutLabel","PreOrder","preOrderLabel","isCommerceEnabled","BackOrder","backOrderLabel","formattedAmountSaved","fadeUp","hidden","ease","visible","listingName","id","discount","brand","variant","position","item_name","item_id","item_brand","item_category","item_variant","index","item_list_name","module","exports"],"sourceRoot":""}