{"version":3,"file":"free-mode.min-8a0544d1.js","sources":["../../../../node_modules/swiper/modules/free-mode/free-mode.js","../../../../src/scripts/react-components/product-masthead/icon-item.tsx"],"sourcesContent":["import { elementTransitionEnd, now } from '../../shared/utils.js';\nexport default function freeMode({\n swiper,\n extendParams,\n emit,\n once\n}) {\n extendParams({\n freeMode: {\n enabled: false,\n momentum: true,\n momentumRatio: 1,\n momentumBounce: true,\n momentumBounceRatio: 1,\n momentumVelocityRatio: 1,\n sticky: false,\n minimumVelocity: 0.02\n }\n });\n function onTouchStart() {\n const translate = swiper.getTranslate();\n swiper.setTranslate(translate);\n swiper.setTransition(0);\n swiper.touchEventsData.velocities.length = 0;\n swiper.freeMode.onTouchEnd({\n currentPos: swiper.rtl ? swiper.translate : -swiper.translate\n });\n }\n function onTouchMove() {\n const {\n touchEventsData: data,\n touches\n } = swiper;\n // Velocity\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime\n });\n }\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: now()\n });\n }\n function onTouchEnd({\n currentPos\n }) {\n const {\n params,\n wrapperEl,\n rtlTranslate: rtl,\n snapGrid,\n touchEventsData: data\n } = swiper;\n // Time diff\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime;\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n return;\n }\n if (params.freeMode.momentum) {\n if (data.velocities.length > 1) {\n const lastMoveEvent = data.velocities.pop();\n const velocityEvent = data.velocities.pop();\n const distance = lastMoveEvent.position - velocityEvent.position;\n const time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n if (Math.abs(swiper.velocity) < params.freeMode.minimumVelocity) {\n swiper.velocity = 0;\n }\n // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n if (time > 150 || now() - lastMoveEvent.time > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n swiper.velocity *= params.freeMode.momentumVelocityRatio;\n data.velocities.length = 0;\n let momentumDuration = 1000 * params.freeMode.momentumRatio;\n const momentumDistance = swiper.velocity * momentumDuration;\n let newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n let doBounce = false;\n let afterBouncePosition;\n const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeMode.momentumBounceRatio;\n let needsLoopFix;\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeMode.momentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeMode.momentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeMode.sticky) {\n let nextSlide;\n for (let j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n newPosition = -newPosition;\n }\n if (needsLoopFix) {\n once('transitionEnd', () => {\n swiper.loopFix();\n });\n }\n // Fix duration\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n if (params.freeMode.sticky) {\n // If freeMode.sticky is active and the user ends a swipe with a slow-velocity\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n // It's easy to see this when simulating touch with mouse events. To fix this,\n // limit single-slide swipes to the default slide duration. This also has the\n // nice side effect of matching slide speed if the user stopped moving before\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n // For faster swipes, also apply limits (albeit higher ones).\n const moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n const currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n if (moveDistance < currentSlideSize) {\n momentumDuration = params.speed;\n } else if (moveDistance < 2 * currentSlideSize) {\n momentumDuration = params.speed * 1.5;\n } else {\n momentumDuration = params.speed * 2.5;\n }\n }\n } else if (params.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n }\n if (params.freeMode.momentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n elementTransitionEnd(wrapperEl, () => {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(() => {\n swiper.setTranslate(afterBouncePosition);\n elementTransitionEnd(wrapperEl, () => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n emit('_freeModeNoMomentumRelease');\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n if (!swiper.animating) {\n swiper.animating = true;\n elementTransitionEnd(wrapperEl, () => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.updateProgress(newPosition);\n }\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n } else if (params.freeMode) {\n emit('_freeModeNoMomentumRelease');\n }\n if (!params.freeMode.momentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n }\n Object.assign(swiper, {\n freeMode: {\n onTouchStart,\n onTouchMove,\n onTouchEnd\n }\n });\n}","import React from 'react';\n\ntype IconItemProps = {\n src: string;\n label: string;\n};\n\nexport const IconItem = ({ src, label }: IconItemProps) => {\n return (\n
\n \n

{label}

\n
\n );\n};\n\nexport default IconItem;\n"],"names":["freeMode","swiper","extendParams","emit","once","onTouchStart","translate","onTouchMove","data","touches","now","onTouchEnd","currentPos","params","wrapperEl","rtl","snapGrid","timeDiff","lastMoveEvent","velocityEvent","distance","time","momentumDuration","momentumDistance","newPosition","doBounce","afterBouncePosition","bounceAmount","needsLoopFix","nextSlide","j","moveDistance","currentSlideSize","elementTransitionEnd","IconItem","src","label","React"],"mappings":"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","x_google_ignoreList":[0]}