{"version":3,"file":"1863.chunk.bdc9c5d3274d2381de77.js","mappings":"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","sources":["webpack:///./node_modules/swiper/modules/mousewheel.mjs","webpack:///./node_modules/swiper/modules/navigation.mjs","webpack:///./node_modules/swiper/modules/pagination.mjs","webpack:///./node_modules/swiper/modules/parallax.mjs","webpack:///./node_modules/swiper/modules/free-mode.mjs"],"sourcesContent":["import { a as getWindow } from '../shared/ssr-window.esm.mjs';\nimport { n as nextTick, d as now } from '../shared/utils.mjs';\n\n/* eslint-disable consistent-return */\nfunction Mousewheel(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const window = getWindow();\n extendParams({\n mousewheel: {\n enabled: false,\n releaseOnEdges: false,\n invert: false,\n forceToAxis: false,\n sensitivity: 1,\n eventsTarget: 'container',\n thresholdDelta: null,\n thresholdTime: null,\n noMousewheelClass: 'swiper-no-mousewheel'\n }\n });\n swiper.mousewheel = {\n enabled: false\n };\n let timeout;\n let lastScrollTime = now();\n let lastEventBeforeSnap;\n const recentWheelEvents = [];\n function normalize(e) {\n // Reasonable defaults\n const PIXEL_STEP = 10;\n const LINE_HEIGHT = 40;\n const PAGE_HEIGHT = 800;\n let sX = 0;\n let sY = 0; // spinX, spinY\n let pX = 0;\n let pY = 0; // pixelX, pixelY\n\n // Legacy\n if ('detail' in e) {\n sY = e.detail;\n }\n if ('wheelDelta' in e) {\n sY = -e.wheelDelta / 120;\n }\n if ('wheelDeltaY' in e) {\n sY = -e.wheelDeltaY / 120;\n }\n if ('wheelDeltaX' in e) {\n sX = -e.wheelDeltaX / 120;\n }\n\n // side scrolling on FF with DOMMouseScroll\n if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n if ('deltaY' in e) {\n pY = e.deltaY;\n }\n if ('deltaX' in e) {\n pX = e.deltaX;\n }\n if (e.shiftKey && !pX) {\n // if user scrolls with shift he wants horizontal scroll\n pX = pY;\n pY = 0;\n }\n if ((pX || pY) && e.deltaMode) {\n if (e.deltaMode === 1) {\n // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else {\n // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n }\n\n // Fall-back if spin cannot be determined\n if (pX && !sX) {\n sX = pX < 1 ? -1 : 1;\n }\n if (pY && !sY) {\n sY = pY < 1 ? -1 : 1;\n }\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY\n };\n }\n function handleMouseEnter() {\n if (!swiper.enabled) return;\n swiper.mouseEntered = true;\n }\n function handleMouseLeave() {\n if (!swiper.enabled) return;\n swiper.mouseEntered = false;\n }\n function animateSlider(newEvent) {\n if (swiper.params.mousewheel.thresholdDelta && newEvent.delta < swiper.params.mousewheel.thresholdDelta) {\n // Prevent if delta of wheel scroll delta is below configured threshold\n return false;\n }\n if (swiper.params.mousewheel.thresholdTime && now() - lastScrollTime < swiper.params.mousewheel.thresholdTime) {\n // Prevent if time between scrolls is below configured threshold\n return false;\n }\n\n // If the movement is NOT big enough and\n // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):\n // Don't go any further (avoid insignificant scroll movement).\n if (newEvent.delta >= 6 && now() - lastScrollTime < 60) {\n // Return false as a default\n return true;\n }\n // If user is scrolling towards the end:\n // If the slider hasn't hit the latest slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to next slide and\n // emit a scroll event.\n // Else (the user is scrolling towards the beginning) and\n // if the slider hasn't hit the first slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to prev slide and\n // emit a scroll event.\n if (newEvent.direction < 0) {\n if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\n swiper.slideNext();\n emit('scroll', newEvent.raw);\n }\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n swiper.slidePrev();\n emit('scroll', newEvent.raw);\n }\n // If you got here is because an animation has been triggered so store the current time\n lastScrollTime = new window.Date().getTime();\n // Return false as a default\n return false;\n }\n function releaseScroll(newEvent) {\n const params = swiper.params.mousewheel;\n if (newEvent.direction < 0) {\n if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n return false;\n }\n function handle(event) {\n let e = event;\n let disableParentSwiper = true;\n if (!swiper.enabled) return;\n\n // Ignore event if the target or its parents have the swiper-no-mousewheel class\n if (event.target.closest(`.${swiper.params.mousewheel.noMousewheelClass}`)) return;\n const params = swiper.params.mousewheel;\n if (swiper.params.cssMode) {\n e.preventDefault();\n }\n let targetEl = swiper.el;\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget);\n }\n const targetElContainsTarget = targetEl && targetEl.contains(e.target);\n if (!swiper.mouseEntered && !targetElContainsTarget && !params.releaseOnEdges) return true;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n let delta = 0;\n const rtlFactor = swiper.rtlTranslate ? -1 : 1;\n const data = normalize(e);\n if (params.forceToAxis) {\n if (swiper.isHorizontal()) {\n if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;else return true;\n } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;else return true;\n } else {\n delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\n }\n if (delta === 0) return true;\n if (params.invert) delta = -delta;\n\n // Get the scroll positions\n let positions = swiper.getTranslate() + delta * params.sensitivity;\n if (positions >= swiper.minTranslate()) positions = swiper.minTranslate();\n if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate();\n\n // When loop is true:\n // the disableParentSwiper will be true.\n // When loop is false:\n // if the scroll positions is not on edge,\n // then the disableParentSwiper will be true.\n // if the scroll on edge positions,\n // then the disableParentSwiper will be false.\n disableParentSwiper = swiper.params.loop ? true : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate());\n if (disableParentSwiper && swiper.params.nested) e.stopPropagation();\n if (!swiper.params.freeMode || !swiper.params.freeMode.enabled) {\n // Register the new event in a variable which stores the relevant data\n const newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta),\n raw: event\n };\n\n // Keep the most recent events\n if (recentWheelEvents.length >= 2) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n recentWheelEvents.push(newEvent);\n\n // If there is at least one previous recorded event:\n // If direction has changed or\n // if the scroll is quicker than the previous one:\n // Animate the slider.\n // Else (this is the first time the wheel is moved):\n // Animate the slider.\n if (prevEvent) {\n if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) {\n animateSlider(newEvent);\n }\n } else {\n animateSlider(newEvent);\n }\n\n // If it's time to release the scroll:\n // Return now so you don't hit the preventDefault.\n if (releaseScroll(newEvent)) {\n return true;\n }\n } else {\n // Freemode or scrollContainer:\n\n // If we recently snapped after a momentum scroll, then ignore wheel events\n // to give time for the deceleration to finish. Stop ignoring after 500 msecs\n // or if it's a new scroll (larger delta or inverse sign as last event before\n // an end-of-momentum snap).\n const newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta)\n };\n const ignoreWheelEvents = lastEventBeforeSnap && newEvent.time < lastEventBeforeSnap.time + 500 && newEvent.delta <= lastEventBeforeSnap.delta && newEvent.direction === lastEventBeforeSnap.direction;\n if (!ignoreWheelEvents) {\n lastEventBeforeSnap = undefined;\n let position = swiper.getTranslate() + delta * params.sensitivity;\n const wasBeginning = swiper.isBeginning;\n const wasEnd = swiper.isEnd;\n if (position >= swiper.minTranslate()) position = swiper.minTranslate();\n if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();\n swiper.setTransition(0);\n swiper.setTranslate(position);\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) {\n swiper.updateSlidesClasses();\n }\n if (swiper.params.loop) {\n swiper.loopFix({\n direction: newEvent.direction < 0 ? 'next' : 'prev',\n byMousewheel: true\n });\n }\n if (swiper.params.freeMode.sticky) {\n // When wheel scrolling starts with sticky (aka snap) enabled, then detect\n // the end of a momentum scroll by storing recent (N=15?) wheel events.\n // 1. do all N events have decreasing or same (absolute value) delta?\n // 2. did all N events arrive in the last M (M=500?) msecs?\n // 3. does the earliest event have an (absolute value) delta that's\n // at least P (P=1?) larger than the most recent event's delta?\n // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?\n // If 1-4 are \"yes\" then we're near the end of a momentum scroll deceleration.\n // Snap immediately and ignore remaining wheel events in this scroll.\n // See comment above for \"remaining wheel events in this scroll\" determination.\n // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.\n clearTimeout(timeout);\n timeout = undefined;\n if (recentWheelEvents.length >= 15) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n const firstEvent = recentWheelEvents[0];\n recentWheelEvents.push(newEvent);\n if (prevEvent && (newEvent.delta > prevEvent.delta || newEvent.direction !== prevEvent.direction)) {\n // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.\n recentWheelEvents.splice(0);\n } else if (recentWheelEvents.length >= 15 && newEvent.time - firstEvent.time < 500 && firstEvent.delta - newEvent.delta >= 1 && newEvent.delta <= 6) {\n // We're at the end of the deceleration of a momentum scroll, so there's no need\n // to wait for more events. Snap ASAP on the next tick.\n // Also, because there's some remaining momentum we'll bias the snap in the\n // direction of the ongoing scroll because it's better UX for the scroll to snap\n // in the same direction as the scroll instead of reversing to snap. Therefore,\n // if it's already scrolled more than 20% in the current direction, keep going.\n const snapToThreshold = delta > 0 ? 0.8 : 0.2;\n lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n timeout = nextTick(() => {\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 0); // no delay; move on next tick\n }\n\n if (!timeout) {\n // if we get here, then we haven't detected the end of a momentum scroll, so\n // we'll consider a scroll \"complete\" when there haven't been any wheel events\n // for 500ms.\n timeout = nextTick(() => {\n const snapToThreshold = 0.5;\n lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 500);\n }\n }\n\n // Emit event\n if (!ignoreWheelEvents) emit('scroll', e);\n\n // Stop autoplay\n if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop();\n // Return page scroll on edge positions\n if (params.releaseOnEdges && (position === swiper.minTranslate() || position === swiper.maxTranslate())) {\n return true;\n }\n }\n }\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n return false;\n }\n function events(method) {\n let targetEl = swiper.el;\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget);\n }\n targetEl[method]('mouseenter', handleMouseEnter);\n targetEl[method]('mouseleave', handleMouseLeave);\n targetEl[method]('wheel', handle);\n }\n function enable() {\n if (swiper.params.cssMode) {\n swiper.wrapperEl.removeEventListener('wheel', handle);\n return true;\n }\n if (swiper.mousewheel.enabled) return false;\n events('addEventListener');\n swiper.mousewheel.enabled = true;\n return true;\n }\n function disable() {\n if (swiper.params.cssMode) {\n swiper.wrapperEl.addEventListener(event, handle);\n return true;\n }\n if (!swiper.mousewheel.enabled) return false;\n events('removeEventListener');\n swiper.mousewheel.enabled = false;\n return true;\n }\n on('init', () => {\n if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {\n disable();\n }\n if (swiper.params.mousewheel.enabled) enable();\n });\n on('destroy', () => {\n if (swiper.params.cssMode) {\n enable();\n }\n if (swiper.mousewheel.enabled) disable();\n });\n Object.assign(swiper.mousewheel, {\n enable,\n disable\n });\n}\n\nexport { Mousewheel as default };\n","import { c as createElementIfNotDefined } from '../shared/create-element-if-not-defined.mjs';\n\nfunction Navigation(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n extendParams({\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock',\n navigationDisabledClass: 'swiper-navigation-disabled'\n }\n });\n swiper.navigation = {\n nextEl: null,\n prevEl: null\n };\n const makeElementsArray = el => (Array.isArray(el) ? el : [el]).filter(e => !!e);\n function getEl(el) {\n let res;\n if (el && typeof el === 'string' && swiper.isElement) {\n res = swiper.el.querySelector(el);\n if (res) return res;\n }\n if (el) {\n if (typeof el === 'string') res = [...document.querySelectorAll(el)];\n if (swiper.params.uniqueNavElements && typeof el === 'string' && res.length > 1 && swiper.el.querySelectorAll(el).length === 1) {\n res = swiper.el.querySelector(el);\n }\n }\n if (el && !res) return el;\n // if (Array.isArray(res) && res.length === 1) res = res[0];\n return res;\n }\n function toggleEl(el, disabled) {\n const params = swiper.params.navigation;\n el = makeElementsArray(el);\n el.forEach(subEl => {\n if (subEl) {\n subEl.classList[disabled ? 'add' : 'remove'](...params.disabledClass.split(' '));\n if (subEl.tagName === 'BUTTON') subEl.disabled = disabled;\n if (swiper.params.watchOverflow && swiper.enabled) {\n subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);\n }\n }\n });\n }\n function update() {\n // Update Navigation Buttons\n const {\n nextEl,\n prevEl\n } = swiper.navigation;\n if (swiper.params.loop) {\n toggleEl(prevEl, false);\n toggleEl(nextEl, false);\n return;\n }\n toggleEl(prevEl, swiper.isBeginning && !swiper.params.rewind);\n toggleEl(nextEl, swiper.isEnd && !swiper.params.rewind);\n }\n function onPrevClick(e) {\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slidePrev();\n emit('navigationPrev');\n }\n function onNextClick(e) {\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slideNext();\n emit('navigationNext');\n }\n function init() {\n const params = swiper.params.navigation;\n swiper.params.navigation = createElementIfNotDefined(swiper, swiper.originalParams.navigation, swiper.params.navigation, {\n nextEl: 'swiper-button-next',\n prevEl: 'swiper-button-prev'\n });\n if (!(params.nextEl || params.prevEl)) return;\n let nextEl = getEl(params.nextEl);\n let prevEl = getEl(params.prevEl);\n Object.assign(swiper.navigation, {\n nextEl,\n prevEl\n });\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const initButton = (el, dir) => {\n if (el) {\n el.addEventListener('click', dir === 'next' ? onNextClick : onPrevClick);\n }\n if (!swiper.enabled && el) {\n el.classList.add(...params.lockClass.split(' '));\n }\n };\n nextEl.forEach(el => initButton(el, 'next'));\n prevEl.forEach(el => initButton(el, 'prev'));\n }\n function destroy() {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const destroyButton = (el, dir) => {\n el.removeEventListener('click', dir === 'next' ? onNextClick : onPrevClick);\n el.classList.remove(...swiper.params.navigation.disabledClass.split(' '));\n };\n nextEl.forEach(el => destroyButton(el, 'next'));\n prevEl.forEach(el => destroyButton(el, 'prev'));\n }\n on('init', () => {\n if (swiper.params.navigation.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n update();\n }\n });\n on('toEdge fromEdge lock unlock', () => {\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n if (swiper.enabled) {\n update();\n return;\n }\n [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.add(swiper.params.navigation.lockClass));\n });\n on('click', (_s, e) => {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const targetEl = e.target;\n if (swiper.params.navigation.hideOnClick && !prevEl.includes(targetEl) && !nextEl.includes(targetEl)) {\n if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n let isHidden;\n if (nextEl.length) {\n isHidden = nextEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n } else if (prevEl.length) {\n isHidden = prevEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n }\n if (isHidden === true) {\n emit('navigationShow');\n } else {\n emit('navigationHide');\n }\n [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.toggle(swiper.params.navigation.hiddenClass));\n }\n });\n const enable = () => {\n swiper.el.classList.remove(...swiper.params.navigation.navigationDisabledClass.split(' '));\n init();\n update();\n };\n const disable = () => {\n swiper.el.classList.add(...swiper.params.navigation.navigationDisabledClass.split(' '));\n destroy();\n };\n Object.assign(swiper.navigation, {\n enable,\n disable,\n update,\n init,\n destroy\n });\n}\n\nexport { Navigation as default };\n","import { c as classesToSelector } from '../shared/classes-to-selector.mjs';\nimport { c as createElementIfNotDefined } from '../shared/create-element-if-not-defined.mjs';\nimport { f as elementOuterSize, g as elementIndex, a as elementParents } from '../shared/utils.mjs';\n\nfunction Pagination(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const pfx = 'swiper-pagination';\n extendParams({\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: number => number,\n formatFractionTotal: number => number,\n bulletClass: `${pfx}-bullet`,\n bulletActiveClass: `${pfx}-bullet-active`,\n modifierClass: `${pfx}-`,\n currentClass: `${pfx}-current`,\n totalClass: `${pfx}-total`,\n hiddenClass: `${pfx}-hidden`,\n progressbarFillClass: `${pfx}-progressbar-fill`,\n progressbarOppositeClass: `${pfx}-progressbar-opposite`,\n clickableClass: `${pfx}-clickable`,\n lockClass: `${pfx}-lock`,\n horizontalClass: `${pfx}-horizontal`,\n verticalClass: `${pfx}-vertical`,\n paginationDisabledClass: `${pfx}-disabled`\n }\n });\n swiper.pagination = {\n el: null,\n bullets: []\n };\n let bulletSize;\n let dynamicBulletIndex = 0;\n const makeElementsArray = el => (Array.isArray(el) ? el : [el]).filter(e => !!e);\n function isPaginationDisabled() {\n return !swiper.params.pagination.el || !swiper.pagination.el || Array.isArray(swiper.pagination.el) && swiper.pagination.el.length === 0;\n }\n function setSideBullets(bulletEl, position) {\n const {\n bulletActiveClass\n } = swiper.params.pagination;\n if (!bulletEl) return;\n bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];\n if (bulletEl) {\n bulletEl.classList.add(`${bulletActiveClass}-${position}`);\n bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];\n if (bulletEl) {\n bulletEl.classList.add(`${bulletActiveClass}-${position}-${position}`);\n }\n }\n }\n function onBulletClick(e) {\n const bulletEl = e.target.closest(classesToSelector(swiper.params.pagination.bulletClass));\n if (!bulletEl) {\n return;\n }\n e.preventDefault();\n const index = elementIndex(bulletEl) * swiper.params.slidesPerGroup;\n if (swiper.params.loop) {\n if (swiper.realIndex === index) return;\n swiper.slideToLoop(index);\n } else {\n swiper.slideTo(index);\n }\n }\n function update() {\n // Render || Update Pagination bullets/items\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n let el = swiper.pagination.el;\n el = makeElementsArray(el);\n // Current/Total\n let current;\n let previousIndex;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const total = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.loop) {\n previousIndex = swiper.previousRealIndex || 0;\n current = swiper.params.slidesPerGroup > 1 ? Math.floor(swiper.realIndex / swiper.params.slidesPerGroup) : swiper.realIndex;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n previousIndex = swiper.previousSnapIndex;\n } else {\n previousIndex = swiper.previousIndex || 0;\n current = swiper.activeIndex || 0;\n }\n // Types\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n const bullets = swiper.pagination.bullets;\n let firstIndex;\n let lastIndex;\n let midIndex;\n if (params.dynamicBullets) {\n bulletSize = elementOuterSize(bullets[0], swiper.isHorizontal() ? 'width' : 'height', true);\n el.forEach(subEl => {\n subEl.style[swiper.isHorizontal() ? 'width' : 'height'] = `${bulletSize * (params.dynamicMainBullets + 4)}px`;\n });\n if (params.dynamicMainBullets > 1 && previousIndex !== undefined) {\n dynamicBulletIndex += current - (previousIndex || 0);\n if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\n dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (dynamicBulletIndex < 0) {\n dynamicBulletIndex = 0;\n }\n }\n firstIndex = Math.max(current - dynamicBulletIndex, 0);\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n bullets.forEach(bulletEl => {\n const classesToRemove = [...['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`)].map(s => typeof s === 'string' && s.includes(' ') ? s.split(' ') : s).flat();\n bulletEl.classList.remove(...classesToRemove);\n });\n if (el.length > 1) {\n bullets.forEach(bullet => {\n const bulletIndex = elementIndex(bullet);\n if (bulletIndex === current) {\n bullet.classList.add(...params.bulletActiveClass.split(' '));\n } else if (swiper.isElement) {\n bullet.setAttribute('part', 'bullet');\n }\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n bullet.classList.add(...`${params.bulletActiveClass}-main`.split(' '));\n }\n if (bulletIndex === firstIndex) {\n setSideBullets(bullet, 'prev');\n }\n if (bulletIndex === lastIndex) {\n setSideBullets(bullet, 'next');\n }\n }\n });\n } else {\n const bullet = bullets[current];\n if (bullet) {\n bullet.classList.add(...params.bulletActiveClass.split(' '));\n }\n if (swiper.isElement) {\n bullets.forEach((bulletEl, bulletIndex) => {\n bulletEl.setAttribute('part', bulletIndex === current ? 'bullet-active' : 'bullet');\n });\n }\n if (params.dynamicBullets) {\n const firstDisplayedBullet = bullets[firstIndex];\n const lastDisplayedBullet = bullets[lastIndex];\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n if (bullets[i]) {\n bullets[i].classList.add(...`${params.bulletActiveClass}-main`.split(' '));\n }\n }\n setSideBullets(firstDisplayedBullet, 'prev');\n setSideBullets(lastDisplayedBullet, 'next');\n }\n }\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;\n const offsetProp = rtl ? 'right' : 'left';\n bullets.forEach(bullet => {\n bullet.style[swiper.isHorizontal() ? offsetProp : 'top'] = `${bulletsOffset}px`;\n });\n }\n }\n el.forEach((subEl, subElIndex) => {\n if (params.type === 'fraction') {\n subEl.querySelectorAll(classesToSelector(params.currentClass)).forEach(fractionEl => {\n fractionEl.textContent = params.formatFractionCurrent(current + 1);\n });\n subEl.querySelectorAll(classesToSelector(params.totalClass)).forEach(totalEl => {\n totalEl.textContent = params.formatFractionTotal(total);\n });\n }\n if (params.type === 'progressbar') {\n let progressbarDirection;\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n subEl.querySelectorAll(classesToSelector(params.progressbarFillClass)).forEach(progressEl => {\n progressEl.style.transform = `translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`;\n progressEl.style.transitionDuration = `${swiper.params.speed}ms`;\n });\n }\n if (params.type === 'custom' && params.renderCustom) {\n subEl.innerHTML = params.renderCustom(swiper, current + 1, total);\n if (subElIndex === 0) emit('paginationRender', subEl);\n } else {\n if (subElIndex === 0) emit('paginationRender', subEl);\n emit('paginationUpdate', subEl);\n }\n if (swiper.params.watchOverflow && swiper.enabled) {\n subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);\n }\n });\n }\n function render() {\n // Render Container\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.grid && swiper.params.grid.rows > 1 ? swiper.slides.length / Math.ceil(swiper.params.grid.rows) : swiper.slides.length;\n let el = swiper.pagination.el;\n el = makeElementsArray(el);\n let paginationHTML = '';\n if (params.type === 'bullets') {\n let numberOfBullets = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n for (let i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n // prettier-ignore\n paginationHTML += `<${params.bulletElement} ${swiper.isElement ? 'part=\"bullet\"' : ''} class=\"${params.bulletClass}\">`;\n }\n }\n }\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = `` + ' / ' + ``;\n }\n }\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = ``;\n }\n }\n swiper.pagination.bullets = [];\n el.forEach(subEl => {\n if (params.type !== 'custom') {\n subEl.innerHTML = paginationHTML || '';\n }\n if (params.type === 'bullets') {\n swiper.pagination.bullets.push(...subEl.querySelectorAll(classesToSelector(params.bulletClass)));\n }\n });\n if (params.type !== 'custom') {\n emit('paginationRender', el[0]);\n }\n }\n function init() {\n swiper.params.pagination = createElementIfNotDefined(swiper, swiper.originalParams.pagination, swiper.params.pagination, {\n el: 'swiper-pagination'\n });\n const params = swiper.params.pagination;\n if (!params.el) return;\n let el;\n if (typeof params.el === 'string' && swiper.isElement) {\n el = swiper.el.querySelector(params.el);\n }\n if (!el && typeof params.el === 'string') {\n el = [...document.querySelectorAll(params.el)];\n }\n if (!el) {\n el = params.el;\n }\n if (!el || el.length === 0) return;\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && Array.isArray(el) && el.length > 1) {\n el = [...swiper.el.querySelectorAll(params.el)];\n // check if it belongs to another nested Swiper\n if (el.length > 1) {\n el = el.filter(subEl => {\n if (elementParents(subEl, '.swiper')[0] !== swiper.el) return false;\n return true;\n })[0];\n }\n }\n if (Array.isArray(el) && el.length === 1) el = el[0];\n Object.assign(swiper.pagination, {\n el\n });\n el = makeElementsArray(el);\n el.forEach(subEl => {\n if (params.type === 'bullets' && params.clickable) {\n subEl.classList.add(...(params.clickableClass || '').split(' '));\n }\n subEl.classList.add(params.modifierClass + params.type);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (params.type === 'bullets' && params.dynamicBullets) {\n subEl.classList.add(`${params.modifierClass}${params.type}-dynamic`);\n dynamicBulletIndex = 0;\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n subEl.classList.add(params.progressbarOppositeClass);\n }\n if (params.clickable) {\n subEl.addEventListener('click', onBulletClick);\n }\n if (!swiper.enabled) {\n subEl.classList.add(params.lockClass);\n }\n });\n }\n function destroy() {\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n let el = swiper.pagination.el;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.classList.remove(params.hiddenClass);\n subEl.classList.remove(params.modifierClass + params.type);\n subEl.classList.remove(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (params.clickable) {\n subEl.classList.remove(...(params.clickableClass || '').split(' '));\n subEl.removeEventListener('click', onBulletClick);\n }\n });\n }\n if (swiper.pagination.bullets) swiper.pagination.bullets.forEach(subEl => subEl.classList.remove(...params.bulletActiveClass.split(' ')));\n }\n on('changeDirection', () => {\n if (!swiper.pagination || !swiper.pagination.el) return;\n const params = swiper.params.pagination;\n let {\n el\n } = swiper.pagination;\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.classList.remove(params.horizontalClass, params.verticalClass);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n });\n });\n on('init', () => {\n if (swiper.params.pagination.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n render();\n update();\n }\n });\n on('activeIndexChange', () => {\n if (typeof swiper.snapIndex === 'undefined') {\n update();\n }\n });\n on('snapIndexChange', () => {\n update();\n });\n on('snapGridLengthChange', () => {\n render();\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.pagination.lockClass));\n }\n });\n on('lock unlock', () => {\n update();\n });\n on('click', (_s, e) => {\n const targetEl = e.target;\n const el = makeElementsArray(swiper.pagination.el);\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && el && el.length > 0 && !targetEl.classList.contains(swiper.params.pagination.bulletClass)) {\n if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n const isHidden = el[0].classList.contains(swiper.params.pagination.hiddenClass);\n if (isHidden === true) {\n emit('paginationShow');\n } else {\n emit('paginationHide');\n }\n el.forEach(subEl => subEl.classList.toggle(swiper.params.pagination.hiddenClass));\n }\n });\n const enable = () => {\n swiper.el.classList.remove(swiper.params.pagination.paginationDisabledClass);\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList.remove(swiper.params.pagination.paginationDisabledClass));\n }\n init();\n render();\n update();\n };\n const disable = () => {\n swiper.el.classList.add(swiper.params.pagination.paginationDisabledClass);\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList.add(swiper.params.pagination.paginationDisabledClass));\n }\n destroy();\n };\n Object.assign(swiper.pagination, {\n enable,\n disable,\n render,\n update,\n init,\n destroy\n });\n}\n\nexport { Pagination as default };\n","import { e as elementChildren } from '../shared/utils.mjs';\n\nfunction Parallax(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n parallax: {\n enabled: false\n }\n });\n const elementsSelector = '[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]';\n const setTransform = (el, progress) => {\n const {\n rtl\n } = swiper;\n const rtlFactor = rtl ? -1 : 1;\n const p = el.getAttribute('data-swiper-parallax') || '0';\n let x = el.getAttribute('data-swiper-parallax-x');\n let y = el.getAttribute('data-swiper-parallax-y');\n const scale = el.getAttribute('data-swiper-parallax-scale');\n const opacity = el.getAttribute('data-swiper-parallax-opacity');\n const rotate = el.getAttribute('data-swiper-parallax-rotate');\n if (x || y) {\n x = x || '0';\n y = y || '0';\n } else if (swiper.isHorizontal()) {\n x = p;\n y = '0';\n } else {\n y = p;\n x = '0';\n }\n if (x.indexOf('%') >= 0) {\n x = `${parseInt(x, 10) * progress * rtlFactor}%`;\n } else {\n x = `${x * progress * rtlFactor}px`;\n }\n if (y.indexOf('%') >= 0) {\n y = `${parseInt(y, 10) * progress}%`;\n } else {\n y = `${y * progress}px`;\n }\n if (typeof opacity !== 'undefined' && opacity !== null) {\n const currentOpacity = opacity - (opacity - 1) * (1 - Math.abs(progress));\n el.style.opacity = currentOpacity;\n }\n let transform = `translate3d(${x}, ${y}, 0px)`;\n if (typeof scale !== 'undefined' && scale !== null) {\n const currentScale = scale - (scale - 1) * (1 - Math.abs(progress));\n transform += ` scale(${currentScale})`;\n }\n if (rotate && typeof rotate !== 'undefined' && rotate !== null) {\n const currentRotate = rotate * progress * -1;\n transform += ` rotate(${currentRotate}deg)`;\n }\n el.style.transform = transform;\n };\n const setTranslate = () => {\n const {\n el,\n slides,\n progress,\n snapGrid,\n isElement\n } = swiper;\n const elements = elementChildren(el, elementsSelector);\n if (swiper.isElement) {\n elements.push(...elementChildren(swiper.hostEl, elementsSelector));\n }\n elements.forEach(subEl => {\n setTransform(subEl, progress);\n });\n slides.forEach((slideEl, slideIndex) => {\n let slideProgress = slideEl.progress;\n if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {\n slideProgress += Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1);\n }\n slideProgress = Math.min(Math.max(slideProgress, -1), 1);\n slideEl.querySelectorAll(`${elementsSelector}, [data-swiper-parallax-rotate]`).forEach(subEl => {\n setTransform(subEl, slideProgress);\n });\n });\n };\n const setTransition = function (duration) {\n if (duration === void 0) {\n duration = swiper.params.speed;\n }\n const {\n el,\n hostEl\n } = swiper;\n const elements = [...el.querySelectorAll(elementsSelector)];\n if (swiper.isElement) {\n elements.push(...hostEl.querySelectorAll(elementsSelector));\n }\n elements.forEach(parallaxEl => {\n let parallaxDuration = parseInt(parallaxEl.getAttribute('data-swiper-parallax-duration'), 10) || duration;\n if (duration === 0) parallaxDuration = 0;\n parallaxEl.style.transitionDuration = `${parallaxDuration}ms`;\n });\n };\n on('beforeInit', () => {\n if (!swiper.params.parallax.enabled) return;\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n });\n on('init', () => {\n if (!swiper.params.parallax.enabled) return;\n setTranslate();\n });\n on('setTranslate', () => {\n if (!swiper.params.parallax.enabled) return;\n setTranslate();\n });\n on('setTransition', (_swiper, duration) => {\n if (!swiper.params.parallax.enabled) return;\n setTransition(duration);\n });\n}\n\nexport { Parallax as default };\n","import { d as now, j as elementTransitionEnd } from '../shared/utils.mjs';\n\nfunction freeMode(_ref) {\n let {\n swiper,\n extendParams,\n emit,\n once\n } = _ref;\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 if (swiper.params.cssMode) return;\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 if (swiper.params.cssMode) return;\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(_ref2) {\n let {\n currentPos\n } = _ref2;\n if (swiper.params.cssMode) return;\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 emit('_freeModeStaticRelease');\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}\n\nexport { freeMode as default };\n"],"names":["Mousewheel","_ref","swiper","extendParams","on","emit","window","timeout","mousewheel","enabled","releaseOnEdges","invert","forceToAxis","sensitivity","eventsTarget","thresholdDelta","thresholdTime","noMousewheelClass","lastEventBeforeSnap","lastScrollTime","recentWheelEvents","handleMouseEnter","mouseEntered","handleMouseLeave","animateSlider","newEvent","params","delta","direction","isEnd","loop","animating","slideNext","raw","isBeginning","slidePrev","Date","getTime","handle","event","e","disableParentSwiper","target","closest","cssMode","preventDefault","targetEl","el","document","querySelector","targetElContainsTarget","contains","originalEvent","rtlFactor","rtlTranslate","data","sX","sY","pX","pY","detail","wheelDelta","wheelDeltaY","wheelDeltaX","axis","HORIZONTAL_AXIS","deltaY","deltaX","shiftKey","deltaMode","spinX","spinY","pixelX","pixelY","normalize","isHorizontal","Math","abs","positions","getTranslate","minTranslate","maxTranslate","nested","stopPropagation","freeMode","time","sign","ignoreWheelEvents","undefined","position","wasBeginning","wasEnd","setTransition","setTranslate","updateProgress","updateActiveIndex","updateSlidesClasses","loopFix","byMousewheel","sticky","clearTimeout","length","shift","prevEvent","firstEvent","push","splice","snapToThreshold","n","slideToClosest","speed","autoplay","autoplayDisableOnInteraction","stop","releaseScroll","returnValue","events","method","enable","wrapperEl","removeEventListener","disable","addEventListener","Object","assign","Navigation","navigation","nextEl","prevEl","hideOnClick","disabledClass","hiddenClass","lockClass","navigationDisabledClass","makeElementsArray","Array","isArray","filter","getEl","res","isElement","querySelectorAll","uniqueNavElements","toggleEl","disabled","forEach","subEl","classList","split","tagName","watchOverflow","isLocked","update","rewind","onPrevClick","onNextClick","init","c","originalParams","initButton","dir","add","destroy","destroyButton","remove","_s","includes","pagination","clickable","isHidden","toggle","Pagination","pfx","bulletSize","bulletElement","renderBullet","renderProgressbar","renderFraction","renderCustom","progressbarOpposite","type","dynamicBullets","dynamicMainBullets","formatFractionCurrent","number","formatFractionTotal","bulletClass","bulletActiveClass","modifierClass","currentClass","totalClass","progressbarFillClass","progressbarOppositeClass","clickableClass","horizontalClass","verticalClass","paginationDisabledClass","bullets","dynamicBulletIndex","isPaginationDisabled","setSideBullets","bulletEl","onBulletClick","index","slidesPerGroup","realIndex","slideToLoop","slideTo","rtl","current","previousIndex","slidesLength","virtual","slides","total","ceil","snapGrid","previousRealIndex","floor","snapIndex","previousSnapIndex","activeIndex","firstIndex","lastIndex","midIndex","style","max","min","classesToRemove","map","suffix","s","flat","bullet","bulletIndex","setAttribute","firstDisplayedBullet","lastDisplayedBullet","i","dynamicBulletsLength","bulletsOffset","offsetProp","subElIndex","fractionEl","textContent","totalEl","progressbarDirection","scale","scaleX","scaleY","progressEl","transform","transitionDuration","innerHTML","render","grid","rows","paginationHTML","numberOfBullets","call","Parallax","parallax","elementsSelector","setTransform","progress","p","getAttribute","x","y","opacity","rotate","indexOf","parseInt","currentOpacity","elements","hostEl","slideEl","slideIndex","slideProgress","slidesPerView","watchSlidesProgress","_swiper","duration","parallaxEl","parallaxDuration","once","momentum","momentumRatio","momentumBounce","momentumBounceRatio","momentumVelocityRatio","minimumVelocity","onTouchStart","translate","touchEventsData","velocities","onTouchEnd","currentPos","onTouchMove","touches","touchStartTime","_ref2","timeDiff","lastMoveEvent","pop","velocityEvent","distance","velocity","momentumDuration","momentumDistance","newPosition","afterBouncePosition","doBounce","bounceAmount","needsLoopFix","allowMomentumBounce","centeredSlides","nextSlide","j","swipeDirection","moveDistance","currentSlideSize","slidesSizesGrid","transitionStart","destroyed","setTimeout","transitionEnd","longSwipesMs"],"sourceRoot":""}