{"version":3,"file":"cdd94a41.js","sources":["../../../node_modules/swiper/modules/scrollbar/scrollbar.js","../../../node_modules/swiper/modules/a11y/a11y.js","../../../src/components/base/rec-swiper/RecSwiper.client.tsx"],"sourcesContent":["import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { nextTick } from '../../shared/utils.js';\nimport createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nexport default function Scrollbar(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const document = getDocument();\n let isTouched = false;\n let timeout = null;\n let dragTimeout = null;\n let dragStartPos;\n let dragSize;\n let trackSize;\n let divider;\n extendParams({\n scrollbar: {\n el: null,\n dragSize: 'auto',\n hide: false,\n draggable: false,\n snapOnRelease: true,\n lockClass: 'swiper-scrollbar-lock',\n dragClass: 'swiper-scrollbar-drag',\n scrollbarDisabledClass: 'swiper-scrollbar-disabled',\n horizontalClass: `swiper-scrollbar-horizontal`,\n verticalClass: `swiper-scrollbar-vertical`\n }\n });\n swiper.scrollbar = {\n el: null,\n dragEl: null,\n $el: null,\n $dragEl: null\n };\n\n function setTranslate() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const {\n scrollbar,\n rtlTranslate: rtl,\n progress\n } = swiper;\n const {\n $dragEl,\n $el\n } = scrollbar;\n const params = swiper.params.scrollbar;\n let newSize = dragSize;\n let newPos = (trackSize - dragSize) * progress;\n\n if (rtl) {\n newPos = -newPos;\n\n if (newPos > 0) {\n newSize = dragSize - newPos;\n newPos = 0;\n } else if (-newPos + dragSize > trackSize) {\n newSize = trackSize + newPos;\n }\n } else if (newPos < 0) {\n newSize = dragSize + newPos;\n newPos = 0;\n } else if (newPos + dragSize > trackSize) {\n newSize = trackSize - newPos;\n }\n\n if (swiper.isHorizontal()) {\n $dragEl.transform(`translate3d(${newPos}px, 0, 0)`);\n $dragEl[0].style.width = `${newSize}px`;\n } else {\n $dragEl.transform(`translate3d(0px, ${newPos}px, 0)`);\n $dragEl[0].style.height = `${newSize}px`;\n }\n\n if (params.hide) {\n clearTimeout(timeout);\n $el[0].style.opacity = 1;\n timeout = setTimeout(() => {\n $el[0].style.opacity = 0;\n $el.transition(400);\n }, 1000);\n }\n }\n\n function setTransition(duration) {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n swiper.scrollbar.$dragEl.transition(duration);\n }\n\n function updateSize() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const {\n scrollbar\n } = swiper;\n const {\n $dragEl,\n $el\n } = scrollbar;\n $dragEl[0].style.width = '';\n $dragEl[0].style.height = '';\n trackSize = swiper.isHorizontal() ? $el[0].offsetWidth : $el[0].offsetHeight;\n divider = swiper.size / (swiper.virtualSize + swiper.params.slidesOffsetBefore - (swiper.params.centeredSlides ? swiper.snapGrid[0] : 0));\n\n if (swiper.params.scrollbar.dragSize === 'auto') {\n dragSize = trackSize * divider;\n } else {\n dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\n }\n\n if (swiper.isHorizontal()) {\n $dragEl[0].style.width = `${dragSize}px`;\n } else {\n $dragEl[0].style.height = `${dragSize}px`;\n }\n\n if (divider >= 1) {\n $el[0].style.display = 'none';\n } else {\n $el[0].style.display = '';\n }\n\n if (swiper.params.scrollbar.hide) {\n $el[0].style.opacity = 0;\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n scrollbar.$el[swiper.isLocked ? 'addClass' : 'removeClass'](swiper.params.scrollbar.lockClass);\n }\n }\n\n function getPointerPosition(e) {\n if (swiper.isHorizontal()) {\n return e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].clientX : e.clientX;\n }\n\n return e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].clientY : e.clientY;\n }\n\n function setDragPosition(e) {\n const {\n scrollbar,\n rtlTranslate: rtl\n } = swiper;\n const {\n $el\n } = scrollbar;\n let positionRatio;\n positionRatio = (getPointerPosition(e) - $el.offset()[swiper.isHorizontal() ? 'left' : 'top'] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);\n positionRatio = Math.max(Math.min(positionRatio, 1), 0);\n\n if (rtl) {\n positionRatio = 1 - positionRatio;\n }\n\n const position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio;\n swiper.updateProgress(position);\n swiper.setTranslate(position);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n function onDragStart(e) {\n const params = swiper.params.scrollbar;\n const {\n scrollbar,\n $wrapperEl\n } = swiper;\n const {\n $el,\n $dragEl\n } = scrollbar;\n isTouched = true;\n dragStartPos = e.target === $dragEl[0] || e.target === $dragEl ? getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null;\n e.preventDefault();\n e.stopPropagation();\n $wrapperEl.transition(100);\n $dragEl.transition(100);\n setDragPosition(e);\n clearTimeout(dragTimeout);\n $el.transition(0);\n\n if (params.hide) {\n $el.css('opacity', 1);\n }\n\n if (swiper.params.cssMode) {\n swiper.$wrapperEl.css('scroll-snap-type', 'none');\n }\n\n emit('scrollbarDragStart', e);\n }\n\n function onDragMove(e) {\n const {\n scrollbar,\n $wrapperEl\n } = swiper;\n const {\n $el,\n $dragEl\n } = scrollbar;\n if (!isTouched) return;\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n setDragPosition(e);\n $wrapperEl.transition(0);\n $el.transition(0);\n $dragEl.transition(0);\n emit('scrollbarDragMove', e);\n }\n\n function onDragEnd(e) {\n const params = swiper.params.scrollbar;\n const {\n scrollbar,\n $wrapperEl\n } = swiper;\n const {\n $el\n } = scrollbar;\n if (!isTouched) return;\n isTouched = false;\n\n if (swiper.params.cssMode) {\n swiper.$wrapperEl.css('scroll-snap-type', '');\n $wrapperEl.transition('');\n }\n\n if (params.hide) {\n clearTimeout(dragTimeout);\n dragTimeout = nextTick(() => {\n $el.css('opacity', 0);\n $el.transition(400);\n }, 1000);\n }\n\n emit('scrollbarDragEnd', e);\n\n if (params.snapOnRelease) {\n swiper.slideToClosest();\n }\n }\n\n function events(method) {\n const {\n scrollbar,\n touchEventsTouch,\n touchEventsDesktop,\n params,\n support\n } = swiper;\n const $el = scrollbar.$el;\n if (!$el) return;\n const target = $el[0];\n const activeListener = support.passiveListener && params.passiveListeners ? {\n passive: false,\n capture: false\n } : false;\n const passiveListener = support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n if (!target) return;\n const eventMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n\n if (!support.touch) {\n target[eventMethod](touchEventsDesktop.start, onDragStart, activeListener);\n document[eventMethod](touchEventsDesktop.move, onDragMove, activeListener);\n document[eventMethod](touchEventsDesktop.end, onDragEnd, passiveListener);\n } else {\n target[eventMethod](touchEventsTouch.start, onDragStart, activeListener);\n target[eventMethod](touchEventsTouch.move, onDragMove, activeListener);\n target[eventMethod](touchEventsTouch.end, onDragEnd, passiveListener);\n }\n }\n\n function enableDraggable() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n events('on');\n }\n\n function disableDraggable() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n events('off');\n }\n\n function init() {\n const {\n scrollbar,\n $el: $swiperEl\n } = swiper;\n swiper.params.scrollbar = createElementIfNotDefined(swiper, swiper.originalParams.scrollbar, swiper.params.scrollbar, {\n el: 'swiper-scrollbar'\n });\n const params = swiper.params.scrollbar;\n if (!params.el) return;\n let $el = $(params.el);\n\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1 && $swiperEl.find(params.el).length === 1) {\n $el = $swiperEl.find(params.el);\n }\n\n $el.addClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n let $dragEl = $el.find(`.${swiper.params.scrollbar.dragClass}`);\n\n if ($dragEl.length === 0) {\n $dragEl = $(`
`);\n $el.append($dragEl);\n }\n\n Object.assign(scrollbar, {\n $el,\n el: $el[0],\n $dragEl,\n dragEl: $dragEl[0]\n });\n\n if (params.draggable) {\n enableDraggable();\n }\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.scrollbar.lockClass);\n }\n }\n\n function destroy() {\n const params = swiper.params.scrollbar;\n const $el = swiper.scrollbar.$el;\n\n if ($el) {\n $el.removeClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n }\n\n disableDraggable();\n }\n\n on('init', () => {\n if (swiper.params.scrollbar.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n updateSize();\n setTranslate();\n }\n });\n on('update resize observerUpdate lock unlock', () => {\n updateSize();\n });\n on('setTranslate', () => {\n setTranslate();\n });\n on('setTransition', (_s, duration) => {\n setTransition(duration);\n });\n on('enable disable', () => {\n const {\n $el\n } = swiper.scrollbar;\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.scrollbar.lockClass);\n }\n });\n on('destroy', () => {\n destroy();\n });\n\n const enable = () => {\n swiper.$el.removeClass(swiper.params.scrollbar.scrollbarDisabledClass);\n\n if (swiper.scrollbar.$el) {\n swiper.scrollbar.$el.removeClass(swiper.params.scrollbar.scrollbarDisabledClass);\n }\n\n init();\n updateSize();\n setTranslate();\n };\n\n const disable = () => {\n swiper.$el.addClass(swiper.params.scrollbar.scrollbarDisabledClass);\n\n if (swiper.scrollbar.$el) {\n swiper.scrollbar.$el.addClass(swiper.params.scrollbar.scrollbarDisabledClass);\n }\n\n destroy();\n };\n\n Object.assign(swiper.scrollbar, {\n enable,\n disable,\n updateSize,\n setTranslate,\n init,\n destroy\n });\n}","import classesToSelector from '../../shared/classes-to-selector.js';\nimport $ from '../../shared/dom.js';\nexport default function A11y(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n a11y: {\n enabled: true,\n notificationClass: 'swiper-notification',\n prevSlideMessage: 'Previous slide',\n nextSlideMessage: 'Next slide',\n firstSlideMessage: 'This is the first slide',\n lastSlideMessage: 'This is the last slide',\n paginationBulletMessage: 'Go to slide {{index}}',\n slideLabelMessage: '{{index}} / {{slidesLength}}',\n containerMessage: null,\n containerRoleDescriptionMessage: null,\n itemRoleDescriptionMessage: null,\n slideRole: 'group',\n id: null\n }\n });\n let liveRegion = null;\n\n function notify(message) {\n const notification = liveRegion;\n if (notification.length === 0) return;\n notification.html('');\n notification.html(message);\n }\n\n function getRandomNumber(size) {\n if (size === void 0) {\n size = 16;\n }\n\n const randomChar = () => Math.round(16 * Math.random()).toString(16);\n\n return 'x'.repeat(size).replace(/x/g, randomChar);\n }\n\n function makeElFocusable($el) {\n $el.attr('tabIndex', '0');\n }\n\n function makeElNotFocusable($el) {\n $el.attr('tabIndex', '-1');\n }\n\n function addElRole($el, role) {\n $el.attr('role', role);\n }\n\n function addElRoleDescription($el, description) {\n $el.attr('aria-roledescription', description);\n }\n\n function addElControls($el, controls) {\n $el.attr('aria-controls', controls);\n }\n\n function addElLabel($el, label) {\n $el.attr('aria-label', label);\n }\n\n function addElId($el, id) {\n $el.attr('id', id);\n }\n\n function addElLive($el, live) {\n $el.attr('aria-live', live);\n }\n\n function disableEl($el) {\n $el.attr('aria-disabled', true);\n }\n\n function enableEl($el) {\n $el.attr('aria-disabled', false);\n }\n\n function onEnterOrSpaceKey(e) {\n if (e.keyCode !== 13 && e.keyCode !== 32) return;\n const params = swiper.params.a11y;\n const $targetEl = $(e.target);\n\n if (swiper.navigation && swiper.navigation.$nextEl && $targetEl.is(swiper.navigation.$nextEl)) {\n if (!(swiper.isEnd && !swiper.params.loop)) {\n swiper.slideNext();\n }\n\n if (swiper.isEnd) {\n notify(params.lastSlideMessage);\n } else {\n notify(params.nextSlideMessage);\n }\n }\n\n if (swiper.navigation && swiper.navigation.$prevEl && $targetEl.is(swiper.navigation.$prevEl)) {\n if (!(swiper.isBeginning && !swiper.params.loop)) {\n swiper.slidePrev();\n }\n\n if (swiper.isBeginning) {\n notify(params.firstSlideMessage);\n } else {\n notify(params.prevSlideMessage);\n }\n }\n\n if (swiper.pagination && $targetEl.is(classesToSelector(swiper.params.pagination.bulletClass))) {\n $targetEl[0].click();\n }\n }\n\n function updateNavigation() {\n if (swiper.params.loop || swiper.params.rewind || !swiper.navigation) return;\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n disableEl($prevEl);\n makeElNotFocusable($prevEl);\n } else {\n enableEl($prevEl);\n makeElFocusable($prevEl);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n disableEl($nextEl);\n makeElNotFocusable($nextEl);\n } else {\n enableEl($nextEl);\n makeElFocusable($nextEl);\n }\n }\n }\n\n function hasPagination() {\n return swiper.pagination && swiper.pagination.bullets && swiper.pagination.bullets.length;\n }\n\n function hasClickablePagination() {\n return hasPagination() && swiper.params.pagination.clickable;\n }\n\n function updatePagination() {\n const params = swiper.params.a11y;\n if (!hasPagination()) return;\n swiper.pagination.bullets.each(bulletEl => {\n const $bulletEl = $(bulletEl);\n\n if (swiper.params.pagination.clickable) {\n makeElFocusable($bulletEl);\n\n if (!swiper.params.pagination.renderBullet) {\n addElRole($bulletEl, 'button');\n addElLabel($bulletEl, params.paginationBulletMessage.replace(/\\{\\{index\\}\\}/, $bulletEl.index() + 1));\n }\n }\n\n if ($bulletEl.is(`.${swiper.params.pagination.bulletActiveClass}`)) {\n $bulletEl.attr('aria-current', 'true');\n } else {\n $bulletEl.removeAttr('aria-current');\n }\n });\n }\n\n const initNavEl = ($el, wrapperId, message) => {\n makeElFocusable($el);\n\n if ($el[0].tagName !== 'BUTTON') {\n addElRole($el, 'button');\n $el.on('keydown', onEnterOrSpaceKey);\n }\n\n addElLabel($el, message);\n addElControls($el, wrapperId);\n };\n\n const handleFocus = e => {\n const slideEl = e.target.closest(`.${swiper.params.slideClass}`);\n if (!slideEl || !swiper.slides.includes(slideEl)) return;\n const isActive = swiper.slides.indexOf(slideEl) === swiper.activeIndex;\n const isVisible = swiper.params.watchSlidesProgress && swiper.visibleSlides && swiper.visibleSlides.includes(slideEl);\n if (isActive || isVisible) return;\n\n if (swiper.isHorizontal()) {\n swiper.el.scrollLeft = 0;\n } else {\n swiper.el.scrollTop = 0;\n }\n\n swiper.slideTo(swiper.slides.indexOf(slideEl), 0);\n };\n\n const initSlides = () => {\n const params = swiper.params.a11y;\n\n if (params.itemRoleDescriptionMessage) {\n addElRoleDescription($(swiper.slides), params.itemRoleDescriptionMessage);\n }\n\n if (params.slideRole) {\n addElRole($(swiper.slides), params.slideRole);\n }\n\n const slidesLength = swiper.params.loop ? swiper.slides.filter(el => !el.classList.contains(swiper.params.slideDuplicateClass)).length : swiper.slides.length;\n\n if (params.slideLabelMessage) {\n swiper.slides.each((slideEl, index) => {\n const $slideEl = $(slideEl);\n const slideIndex = swiper.params.loop ? parseInt($slideEl.attr('data-swiper-slide-index'), 10) : index;\n const ariaLabelMessage = params.slideLabelMessage.replace(/\\{\\{index\\}\\}/, slideIndex + 1).replace(/\\{\\{slidesLength\\}\\}/, slidesLength);\n addElLabel($slideEl, ariaLabelMessage);\n });\n }\n };\n\n const init = () => {\n const params = swiper.params.a11y;\n swiper.$el.append(liveRegion); // Container\n\n const $containerEl = swiper.$el;\n\n if (params.containerRoleDescriptionMessage) {\n addElRoleDescription($containerEl, params.containerRoleDescriptionMessage);\n }\n\n if (params.containerMessage) {\n addElLabel($containerEl, params.containerMessage);\n } // Wrapper\n\n\n const $wrapperEl = swiper.$wrapperEl;\n const wrapperId = params.id || $wrapperEl.attr('id') || `swiper-wrapper-${getRandomNumber(16)}`;\n const live = swiper.params.autoplay && swiper.params.autoplay.enabled ? 'off' : 'polite';\n addElId($wrapperEl, wrapperId);\n addElLive($wrapperEl, live); // Slide\n\n initSlides(); // Navigation\n\n let $nextEl;\n let $prevEl;\n\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n\n if ($nextEl && $nextEl.length) {\n initNavEl($nextEl, wrapperId, params.nextSlideMessage);\n }\n\n if ($prevEl && $prevEl.length) {\n initNavEl($prevEl, wrapperId, params.prevSlideMessage);\n } // Pagination\n\n\n if (hasClickablePagination()) {\n swiper.pagination.$el.on('keydown', classesToSelector(swiper.params.pagination.bulletClass), onEnterOrSpaceKey);\n } // Tab focus\n\n\n swiper.$el.on('focus', handleFocus, true);\n };\n\n function destroy() {\n if (liveRegion && liveRegion.length > 0) liveRegion.remove();\n let $nextEl;\n let $prevEl;\n\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n\n if ($nextEl) {\n $nextEl.off('keydown', onEnterOrSpaceKey);\n }\n\n if ($prevEl) {\n $prevEl.off('keydown', onEnterOrSpaceKey);\n } // Pagination\n\n\n if (hasClickablePagination()) {\n swiper.pagination.$el.off('keydown', classesToSelector(swiper.params.pagination.bulletClass), onEnterOrSpaceKey);\n } // Tab focus\n\n\n swiper.$el.off('focus', handleFocus, true);\n }\n\n on('beforeInit', () => {\n liveRegion = $(``);\n });\n on('afterInit', () => {\n if (!swiper.params.a11y.enabled) return;\n init();\n });\n on('slidesLengthChange snapGridLengthChange slidesGridLengthChange', () => {\n if (!swiper.params.a11y.enabled) return;\n initSlides();\n });\n on('fromEdge toEdge afterInit lock unlock', () => {\n if (!swiper.params.a11y.enabled) return;\n updateNavigation();\n });\n on('paginationUpdate', () => {\n if (!swiper.params.a11y.enabled) return;\n updatePagination();\n });\n on('destroy', () => {\n if (!swiper.params.a11y.enabled) return;\n destroy();\n });\n}","import {useEffect, useState, Suspense} from 'react';\nimport {Swiper, SwiperSlide} from 'swiper/react';\nimport {Navigation, Pagination, Scrollbar, A11y} from 'swiper';\nimport {\n reportDySlotClick,\n reportDyVariationEvent,\n getCurrencyCode,\n fetchIntlRecsPrices,\n getProductIdsFromRecs,\n // getFixedCurrencies,\n // getCurrencyMappings,\n} from '../../../util/dy-utils.js';\nimport {Image, useNavigate, useLocalization} from '@shopify/hydrogen';\nimport clsx from 'clsx';\nimport './RecSwiper.scss';\n\nexport default function RecSwiper({\n recs, // rec slots from DY\n custom, // custom options from DY\n tabs, // used for tabbed recs (true/false)\n modules, // pagiantion, scrollbar, arrows (object)\n params, // custom swiper js parameters (object of objects)\n intlTabbedPrices, // only passed in from tabbed recs\n}: {\n recs: any;\n custom: any;\n tabs: boolean;\n modules: any;\n params: any;\n intlTabbedPrices: Array<[]>;\n}): JSX.Element {\n const {country} = useLocalization();\n const cc = getCurrencyCode();\n const [intlPrices, setIntlPrices] = useState([]);\n // const currencyMappings: any = getCurrencyMappings();\n // const fixedCurrencies = getFixedCurrencies();\n\n useEffect(() => {\n // if applicable, fetch intl prices from Shopify\n if (!tabs) {\n // if (!fixedCurrencies.includes(cc) && country.isoCode !== 'US') {\n const getIntlPrices = async (recs: any) => {\n const productIds = getProductIdsFromRecs([...recs]);\n const fetchedIntlPrices: any = await fetchIntlRecsPrices(\n country.isoCode,\n productIds,\n );\n // if (!intlPrices.length) {\n setIntlPrices(fetchedIntlPrices);\n // }\n };\n getIntlPrices(recs).catch(console.error);\n // }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [recs]);\n\n const setBadge = (rec: any) => {\n let badge = '';\n const tags = rec.productData.badges.trim().toLowerCase();\n if (tags.includes('sold-out')) {\n badge = 'sold out';\n } else if (tags.includes('waitlist')) {\n badge = 'waitlist';\n } else if (tags.includes('coming-soon')) {\n // hide the 'coming soon' badge on homepage tray 1\n if (!params.hp_tray_1_hide_coming_soon) badge = 'coming soon';\n } else if (tags.includes('low-stock')) {\n badge = 'low stock';\n } else if (tags.includes('badge:') && cc === 'USD') {\n badge = tags.split('badge: ')[1];\n }\n return badge;\n };\n\n const defaultBreakpoints = {\n 240: {\n slidesPerView: 2,\n },\n 769: {\n slidesPerView: 3,\n },\n 1024: {\n slidesPerView: 4,\n },\n };\n\n const navigate = useNavigate();\n const slotClicked = async (index: any) => {\n await reportDySlotClick(recs[index]);\n if (tabs) {\n await reportDyVariationEvent();\n }\n\n if (recs[index]?.productData?.url) {\n const url = new URL(recs[index].productData.url);\n navigate(url.pathname);\n }\n };\n\n const displayPrice = (price: any, fixedPrices: any, shopifyPrice: any) => {\n // shopifyPrice[0] = price\n // shopifyPrice[1] = compareArePrice\n if (country.isoCode !== 'US' && shopifyPrice) {\n return cc + ' ' + addCommas(shopifyPrice);\n } else if (country.isoCode == 'US' && shopifyPrice) {\n // if (shopifyPrice[1] > shopifyPrice[0]) return 'SALEEEE';\n return '$' + shopifyPrice;\n }\n return '';\n };\n\n // const displayPrice = (price: any, fixedPrices: any, intlPrice: any) => {\n // if (fixedCurrencies.includes(cc) && fixedPrices) {\n // const fp = JSON.parse(fixedPrices.replace(/'/g, '\"'));\n // if (currencyMappings[cc] && fp[currencyMappings[cc]]) {\n // return cc + ' ' + addCommas(fp[currencyMappings[cc]]);\n // }\n // if (currencyMappings[cc] && fp.defaults[currencyMappings[cc]]) {\n // return cc + ' ' + addCommas(fp.defaults[currencyMappings[cc]]);\n // }\n // } else if (country.isoCode !== 'US' && intlPrice) {\n // return cc + ' ' + addCommas(intlPrice);\n // } else if (country.isoCode == 'US' && price) {\n // // return '$' + price;\n // }\n // return '';\n // };\n\n const addCommas = (price: any) => {\n // This regex uses 2 lookahead assertions\n // a positive one to look for any point in the string that has a multiple of 3 digits in a row after it\n // a negative assertion to make sure that point only has exactly a multiple of 3 digits. The replacement expression puts a comma there\n return price.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n };\n\n const getPaginationOptions = () => {\n if (modules.pagination == true) {\n return {\n clickable: true,\n };\n } else {\n return false;\n }\n };\n\n const getScrollbarOptions = () => {\n if (modules.scrollbar == true) {\n return {\n draggable: true,\n hide: true,\n };\n } else {\n return false;\n }\n };\n\n const getArrowOptions = () => {\n if (modules.arrows == true) {\n return true;\n } else {\n return false;\n }\n };\n\n return (\n console.log('click', e.clickedIndex)}\n onClick={(e: any) => slotClicked(e.clickedIndex)}\n // onSlideChange={() => console.log('slide change')}\n // onSwiper={(swiper: any) => console.log(swiper)}\n breakpoints={params.breakpoints ? params.breakpoints : defaultBreakpoints}\n >\n {recs.length > 0 &&\n recs.map((rec: any, index: number) => (\n \n
\n
\n {/* */}\n \n {/*
3 for $36
*/}\n \n {setBadge(rec)}\n
\n \n
\n
\n {rec.productData.name_without_color}\n
\n {intlPrices[index] && (\n
\n {/* =\n // parseFloat(rec.productData.compare_at_price)\n // ? 'hidden'\n // : '',\n // ])}\n className={clsx([\n 'rec-swiper__slide__text-price--compare',\n // parseFloat(rec.productData.price) >\n // parseFloat(rec.productData.compare_at_price)\n intlPrices[index][1] > intlPrices[index][0] ? '' : '',\n ])}\n data-price={rec.productData.compare_at_price}\n data-fp={rec.productData.price_intl_cafp}\n >\n \n {displayPrice(\n rec.productData.compare_at_price,\n rec.productData.price_intl_cafp,\n // tabs ? intlTabbedPrices[index] : intlPrices[index],\n intlPrices[index][0],\n )}\n \n SALE\n
*/}\n \n // parseFloat(rec.productData.compare_at_price)\n intlPrices[index][1] > intlPrices[index][0]\n ? ''\n : 'hidden',\n ])}\n >\n {displayPrice(\n rec.productData.price,\n rec.productData.price_intl_fp,\n // tabs ? intlTabbedPrices[index] : intlPrices[index],\n intlPrices[index][1],\n )}\n \n \n // parseFloat(rec.productData.compare_at_price)\n intlPrices[index][1] > intlPrices[index][0]\n ? 'rec-swiper__slide__text-price--onsale'\n : '',\n ])}\n // data-price={rec.productData.price}\n // data-fp={rec.productData.price_intl_fp}\n >\n {displayPrice(\n rec.productData.price,\n rec.productData.price_intl_fp,\n // tabs ? intlTabbedPrices[index] : intlPrices[index],\n intlPrices[index][0],\n )}\n \n
\n )}\n \n
\n
\n ))}\n \n );\n}\n"],"names":["Scrollbar","_ref","swiper","extendParams","on","emit","document","getDocument","isTouched","timeout","dragTimeout","dragStartPos","dragSize","trackSize","divider","setTranslate","scrollbar","rtl","progress","$dragEl","$el","params","newSize","newPos","setTransition","duration","updateSize","getPointerPosition","e","setDragPosition","positionRatio","position","onDragStart","$wrapperEl","onDragMove","onDragEnd","nextTick","events","method","touchEventsTouch","touchEventsDesktop","support","target","activeListener","passiveListener","eventMethod","enableDraggable","disableDraggable","init","$swiperEl","createElementIfNotDefined","$","destroy","disable","_s","enable","A11y","liveRegion","notify","message","notification","getRandomNumber","size","randomChar","makeElFocusable","makeElNotFocusable","addElRole","role","addElRoleDescription","description","addElControls","controls","addElLabel","label","addElId","id","addElLive","live","disableEl","enableEl","onEnterOrSpaceKey","$targetEl","classesToSelector","updateNavigation","$nextEl","$prevEl","hasPagination","hasClickablePagination","updatePagination","bulletEl","$bulletEl","initNavEl","wrapperId","handleFocus","slideEl","isActive","isVisible","initSlides","slidesLength","el","index","$slideEl","slideIndex","ariaLabelMessage","$containerEl","RecSwiper","recs","custom","tabs","modules","intlTabbedPrices","country","useLocalization","cc","getCurrencyCode","intlPrices","setIntlPrices","useState","useEffect","productIds","getProductIdsFromRecs","fetchedIntlPrices","fetchIntlRecsPrices","isoCode","catch","console","error","setBadge","rec","badge","tags","productData","badges","trim","toLowerCase","includes","hp_tray_1_hide_coming_soon","split","defaultBreakpoints","slidesPerView","navigate","useNavigate","slotClicked","reportDySlotClick","reportDyVariationEvent","url","URL","pathname","displayPrice","price","fixedPrices","shopifyPrice","addCommas","toString","replace","getPaginationOptions","pagination","clickable","getScrollbarOptions","draggable","hide","Swiper","Navigation","Pagination","arrows","clickedIndex","breakpoints","length","map","_jsx","SwiperSlide","slotId","_jsxs","Image","image_url","name_without_color","clsx","price_intl_fp"],"mappings":"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"}