import{_ as p,o as a,e as n,f as c,W as r,D as u,ab as f,p as d}from"./index.9ed4dad3.js";const S={name:"vue-seamless-scroll",data(){return{xPos:0,yPos:0,delay:0,copyHtml:"",height:0,width:0,realBoxWidth:0,isMousewheel:!1}},props:{data:{type:Array,default:()=>[]},limitMoveNum:{type:Number,default:5},classOption:{type:Object,default:()=>({step:.2,hoverStop:!0,direction:1,openWatch:!0,singleHeight:0,singleWidth:0,waitTime:1e3})}},computed:{leftSwitchState(){return this.xPos<0},rightSwitchState(){return Math.abs(this.xPos)=this.options.limitMoveNum},hoverStopSwitch(){return this.options.hoverStop&&this.autoPlay&&this.scrollSwitch},canTouchScroll(){return this.options.openTouch},isHorizontal(){return this.options.direction>1},baseFontSize(){return this.options.isSingleRemUnit?parseInt(window.getComputedStyle(document.documentElement,null).fontSize):1},realSingleStopWidth(){return this.options.singleWidth*this.baseFontSize},realSingleStopHeight(){return this.options.singleHeight*this.baseFontSize},step(){let i,t=this.options.step;return this.isHorizontal?i=this.realSingleStopWidth:i=this.realSingleStopHeight,i>0&&i%t>0&&console.error("\u5982\u679C\u8BBE\u7F6E\u4E86\u5355\u6B65\u6EDA\u52A8,step\u9700\u662F\u5355\u6B65\u5927\u5C0F\u7684\u7EA6\u6570,\u5426\u5219\u65E0\u6CD5\u4FDD\u8BC1\u5355\u6B65\u6EDA\u52A8\u7ED3\u675F\u7684\u4F4D\u7F6E\u662F\u5426\u51C6\u786E\u3002~~~~~"),t}},mounted(){this._initMove()},methods:{handleScrolls(i){this.yPos=-i.target.scrollTop},wrapboxWheel(i){this.$refs.wrapbox.scrollTop<1&&i.wheelDeltaY>0&&(this.$refs.wrapbox.scrollTop=Math.abs(this.yPos))},arrayEqual(i,t){if(i===t)return!0;if(i.length!==t.length)return!1;for(let s=0;s{this._cancle()},o+20)):this._cancle()},touchMove(i){if(!this.canTouchScroll||i.targetTouches.length>1||i.scale&&i.scale!==1)return;const t=i.targetTouches[0],{direction:s}=this.options;this.endPos={x:t.pageX-this.startPos.x,y:t.pageY-this.startPos.y},event.preventDefault();const o=Math.abs(this.endPos.x)1&&(this.xPos=this.startPosX+this.endPos.x)},touchEnd(){if(!this.canTouchScroll)return;let i;const t=this.options.direction;if(this.delay=50,t===1)this.yPos>0&&(this.yPos=0);else if(t===0){let s=this.realBoxHeight/2*-1;this.yPos0&&(this.xPos=0);else if(t===3){let s=this.realBoxWidth*-1;this.xPos{this.delay=0,this._move()},this.delay)},enter(){this.hoverStopSwitch&&this._stopMove()},leave(){this.isMousewheel=!1,this.hoverStopSwitch&&this._startMove()},wheel(i){if(this.data.length0)this.yPos+=120,this.yPos+120>20?this.yPos=20:this.yPos+=120;else{const s=this.yPos-120;Math.abs(s)=i&&(this.$emit("ScrollEnd"),this.$refs.wrapbox&&(this.$refs.wrapbox.scrollTop=0),this.yPos=0),this.yPos-=l):s===0?(this.yPos>=0&&(this.$emit("ScrollEnd"),this.yPos=i*-1),this.yPos+=l):s===2?(Math.abs(this.xPos)>=t&&(this.$emit("ScrollEnd"),this.xPos=0),this.xPos-=l):s===3&&(this.xPos>=0&&(this.$emit("ScrollEnd"),this.xPos=t*-1),this.xPos+=l),this.singleWaitTime&&clearTimeout(this.singleWaitTime),this.realSingleStopHeight?Math.abs(this.yPos)%this.realSingleStopHeight{this._move()},o):this._move():this.realSingleStopWidth?Math.abs(this.xPos)%this.realSingleStopWidth{this._move()},o):this._move():this._move()}.bind(this))}},_initMove(){this.$nextTick(()=>{const{switchDelay:i}=this.options,{autoPlay:t,isHorizontal:s}=this;if(this._dataWarm(this.data),this.copyHtml="",s){this.height=this.$refs.wrap.offsetHeight,this.width=this.$refs.wrap.offsetWidth;let o=this.$refs.slotList.offsetWidth;t&&(o=o*2+1),this.$refs.realBox.style.width=o+"px",this.realBoxWidth=o}if(t)this.ease="ease-in",this.delay=0;else{this.ease="linear",this.delay=i;return}this.scrollSwitch?(this.copyHtml=this.$refs.slotList.innerHTML,setTimeout(()=>{this.realBoxHeight=this.$refs.realBox.offsetHeight,this._move()},0)):(this._cancle(),this.yPos=this.xPos=0)})},_dataWarm(i){i.length>100&&console.warn(`\u6570\u636E\u8FBE\u5230\u4E86${i.length}\u6761\u6709\u70B9\u591A\u54E6~,\u53EF\u80FD\u4F1A\u9020\u6210\u90E8\u5206\u8001\u65E7\u6D4F\u89C8\u5668\u5361\u987F\u3002`)},_startMove(){this.isHover=!1,this._move()},_stopMove(){this.isHover=!0,this.singleWaitTime&&clearTimeout(this.singleWaitTime),this._cancle()}},watch:{data(i,t){this._dataWarm(i),this.arrayEqual(i,t)||this.reset()},autoPlay(i){i?this.reset():this._stopMove()}},beforeCreate(){this.reqFrame=null,this.singleWaitTime=null,this.isHover=!1,this.ease="ease-in"},beforeDestroy(){this._cancle(),clearTimeout(this.singleWaitTime)}},m={ref:"wrap",class:"wrapinner"};function g(i,t,s,o,l,e){return a(),n("div",{ref:"wrapbox",class:"wrapbox",onScrollPassive:t[7]||(t[7]=(...h)=>e.handleScrolls&&e.handleScrolls(...h)),onMousewheel:t[8]||(t[8]=(...h)=>e.wrapboxWheel&&e.wrapboxWheel(...h))},[c("div",m,[e.navigation?(a(),n("div",{key:0,style:r(e.leftSwitch),class:u(e.leftSwitchClass),onClick:t[0]||(t[0]=(...h)=>e.leftSwitchClick&&e.leftSwitchClick(...h))},[f(i.$slots,"left-switch",{},void 0,!0)],6)):d("",!0),e.navigation?(a(),n("div",{key:1,style:r(e.rightSwitch),class:u(e.rightSwitchClass),onClick:t[1]||(t[1]=(...h)=>e.rightSwitchClick&&e.rightSwitchClick(...h))},[f(i.$slots,"right-switch",{},void 0,!0)],6)):d("",!0),c("div",{ref:"realBox",style:r(e.pos),onMouseenter:t[2]||(t[2]=(...h)=>e.enter&&e.enter(...h)),onMouseleave:t[3]||(t[3]=(...h)=>e.leave&&e.leave(...h)),onTouchstart:t[4]||(t[4]=(...h)=>e.touchStart&&e.touchStart(...h)),onTouchmove:t[5]||(t[5]=(...h)=>e.touchMove&&e.touchMove(...h)),onTouchend:t[6]||(t[6]=(...h)=>e.touchEnd&&e.touchEnd(...h))},[c("div",{ref:"slotList",style:r(e.float)},[f(i.$slots,"default",{},void 0,!0)],4)],36)],512)],544)}var y=p(S,[["render",g],["__scopeId","data-v-2fd28f96"]]);export{y as v};