{"version":3,"file":"AccessoriesCarousel-Chunk-cae307258ff75585048c.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/organisms/AccessoriesCarousel/AccessoriesCarouselCard.tsx","webpack://nikon-client/./components/organisms/AccessoriesCarousel/AccessoriesCarousel.tsx","webpack://nikon-client/./config/animations.config.ts","webpack://nikon-client/./utility/helpers/mapToNewTrackingData.ts","webpack://nikon-client/./utility/helpers/slugify.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"],"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 Button from '@atoms/Button/Button';\nimport Image from '@atoms/Image/Image';\nimport { easeInOut } from '@config/animations.config';\nimport { IAccessoriesCarouselCard } from '@models/IAccessoriesCarouselCard';\nimport updateDataLayer from '@utils/helpers/gtm';\nimport mapToNewTrackingData from '@utils/helpers/mapToNewTrackingData';\nimport useMediaQuery from '@utils/hooks/useMediaQuery';\nimport { motion } from 'framer-motion';\nimport { useCallback, useState } from 'react';\n\nconst AccessoriesCarouselCard = ({\n name,\n thumbnail,\n buyNowLink,\n trackingData,\n}: IAccessoriesCarouselCard) => {\n const [isHovered, setHover] = useState(false);\n const [ctaBoxHeight, setCtaBoxHeight] = useState(0);\n\n const ctaBoxRef = useCallback((node: HTMLDivElement | null) => {\n if (node) {\n setCtaBoxHeight(node.clientHeight ?? 0);\n }\n }, []);\n\n const handleContainerClick = () => {\n // Have to attach onClick handler to div to avoid nested anchors.\n if (buyNowLink?.url && typeof window !== 'undefined')\n window.location.href = buyNowLink.url;\n };\n\n const isBelowLargeDesktop = useMediaQuery(1440);\n\n const ctaVariants = {\n hover: { opacity: 1 },\n initial: { opacity: isBelowLargeDesktop ? 1 : 0 },\n };\n\n const nameVariants = {\n hover: { y: -ctaBoxHeight },\n initial: { y: 0 },\n };\n\n const imgVariants = {\n hover: { y: -13, scale: 1.1 },\n initial: { y: 0, scale: 1 },\n };\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={JSON.stringify(trackingData ?? '')}\n className=\"pointer-events-auto relative flex h-full w-full flex-col justify-between gap-5 overflow-hidden rounded-[10px] bg-grey-100 px-7 py-8 dark:bg-grey-600 lg:py-10\"\n onKeyDown={(e) => {\n if (e.key === 'Enter') handleContainerClick();\n }}\n >\n \n {thumbnail && (\n \n )}\n \n \n {name && (\n

\n {name}\n

\n )}\n
\n \n {buyNowLink?.url && buyNowLink?.name && (\n {\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 )}\n \n
\n \n \n );\n};\n\nexport default AccessoriesCarouselCard;\n","import { IAccessoriesCarouselCard } from '@models/IAccessoriesCarouselCard';\nimport NavigationCarousel from '@molecules/NavigationCarousel/NavigationCarousel';\nimport slugify from '@utils/helpers/slugify';\nimport { SwiperSlide } from 'swiper/react';\nimport AccessoriesCarouselCard from './AccessoriesCarouselCard';\n\ninterface Props {\n readonly title?: string;\n readonly items?: IAccessoriesCarouselCard[];\n readonly anchorId?: string;\n}\n\nconst AccessoriesCarousel = ({\n title = '',\n items = [],\n anchorId = '',\n}: Props) =>\n items.length > 0 ? (\n \n \n {(itemsToDisplay) =>\n itemsToDisplay\n .filter((item) => !!item.name)\n .map((item, index) => (\n \n \n \n ))\n }\n \n \n ) : null;\n\nexport default AccessoriesCarousel;\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","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","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","\"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"],"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","thumbnail","buyNowLink","trackingData","isHovered","setHover","ctaBoxHeight","setCtaBoxHeight","ctaBoxRef","useCallback","node","clientHeight","handleContainerClick","window","location","isBelowLargeDesktop","useMediaQuery","ctaVariants","hover","opacity","initial","nameVariants","y","role","tabIndex","onFocus","onBlur","onMouseEnter","onMouseLeave","JSON","stringify","onKeyDown","e","key","motion","div","animate","variants","scale","transition","easeInOut","Image","duration","Button","updateDataLayer","event","ecommerce","currency","items","mapToNewTrackingData","title","anchorId","id","NavigationCarousel","shadows","slidesToShowDesktop","slidesToShowTablet","itemsToDisplay","filter","item","map","index","SwiperSlide","slugify","AccessoriesCarouselCard","fadeUp","hidden","ease","visible","listingName","price","discount","brand","category","variant","position","item_name","item_id","item_brand","item_category","item_variant","item_list_name","value","toLowerCase","trim","replace","__assign","this","Object","assign","t","s","i","n","arguments","p","prototype","hasOwnProperty","call","apply","__rest","indexOf","getOwnPropertySymbols","propertyIsEnumerable","defineProperty","exports","iconList","react_1","iconSet","Array","isArray","icons","icon","properties","_a","size","disableFill","removeInlineStyle","native","SvgComponent","PathComponent","props","currentIcon","find","initialStyle","display","stroke","fill","flexDirection","flexWrap","comptuedStyle","style","_b","viewBox","concat","paths","path","attrs","pathProps","d","push","createStore","createState","state","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","useEffect","useLayoutEffect","create","useStore","forceUpdate","useReducer","c","stateRef","useRef","selectorRef","equalityFnRef","erroredRef","currentSliceRef","newStateSlice","current","hasNewStateSlice","stateBeforeSubscriptionRef","nextStateSlice","error","unsubscribe","sliceToReturn","useDebugValue","Symbol","iterator","next","done","shift"],"sourceRoot":""}