import{b as v}from"./swiper.min-BjDUzMMs.js";function P({swiper:t,extendParams:y,emit:d,once:g}){y({freeMode:{enabled:!1,momentum:!0,momentumRatio:1,momentumBounce:!0,momentumBounceRatio:1,momentumVelocityRatio:1,sticky:!1,minimumVelocity:.02}});function E(){const l=t.getTranslate();t.setTranslate(l),t.setTransition(0),t.touchEventsData.velocities.length=0,t.freeMode.onTouchEnd({currentPos:t.rtl?t.translate:-t.translate})}function x(){const{touchEventsData:l,touches:e}=t;l.velocities.length===0&&l.velocities.push({position:e[t.isHorizontal()?"startX":"startY"],time:l.touchStartTime}),l.velocities.push({position:e[t.isHorizontal()?"currentX":"currentY"],time:v()})}function S({currentPos:l}){const{params:e,$wrapperEl:f,rtlTranslate:r,snapGrid:i,touchEventsData:m}=t,b=v()-m.touchStartTime;if(l<-t.minTranslate()){t.slideTo(t.activeIndex);return}if(l>-t.maxTranslate()){t.slides.length1){const n=m.velocities.pop(),a=m.velocities.pop(),D=n.position-a.position,h=n.time-a.time;t.velocity=D/h,t.velocity/=2,Math.abs(t.velocity)150||v()-n.time>300)&&(t.velocity=0)}else t.velocity=0;t.velocity*=e.freeMode.momentumVelocityRatio,m.velocities.length=0;let s=1e3*e.freeMode.momentumRatio;const B=t.velocity*s;let o=t.translate+B;r&&(o=-o);let T=!1,c;const u=Math.abs(t.velocity)*20*e.freeMode.momentumBounceRatio;let M;if(ot.minTranslate())e.freeMode.momentumBounce?(o-t.minTranslate()>u&&(o=t.minTranslate()+u),c=t.minTranslate(),T=!0,m.allowMomentumBounce=!0):o=t.minTranslate(),e.loop&&e.centeredSlides&&(M=!0);else if(e.freeMode.sticky){let n;for(let a=0;a-o){n=a;break}Math.abs(i[n]-o){t.loopFix()}),t.velocity!==0){if(r?s=Math.abs((-o-t.translate)/t.velocity):s=Math.abs((o-t.translate)/t.velocity),e.freeMode.sticky){const n=Math.abs((r?-o:o)-t.translate),a=t.slidesSizesGrid[t.activeIndex];n{!t||t.destroyed||!m.allowMomentumBounce||(d("momentumBounce"),t.setTransition(e.speed),setTimeout(()=>{t.setTranslate(c),f.transitionEnd(()=>{!t||t.destroyed||t.transitionEnd()})},0))})):t.velocity?(d("_freeModeNoMomentumRelease"),t.updateProgress(o),t.setTransition(s),t.setTranslate(o),t.transitionStart(!0,t.swipeDirection),t.animating||(t.animating=!0,f.transitionEnd(()=>{!t||t.destroyed||t.transitionEnd()}))):t.updateProgress(o),t.updateActiveIndex(),t.updateSlidesClasses()}else if(e.freeMode.sticky){t.slideToClosest();return}else e.freeMode&&d("_freeModeNoMomentumRelease");(!e.freeMode.momentum||b>=e.longSwipesMs)&&(t.updateProgress(),t.updateActiveIndex(),t.updateSlidesClasses())}Object.assign(t,{freeMode:{onTouchStart:E,onTouchMove:x,onTouchEnd:S}})}export{P as f};