1 |
- import{m as F,d as K,S as L,R as U,aC as ue,u as re,v as f,D as j,C as S,ar as ve,aD as fe,aE as de,W as G,as as he,at as ge,ai as me,a7 as we,Y as ye,k as C,t as A,w as V,q as O,az as k,an as q,X as J,a0 as be,aF as _,y as Q,x as pe}from"./index.520b75b9.js";const[Z,D]=F("swipe"),Te={loop:A,width:V,height:V,vertical:Boolean,autoplay:O(0),duration:O(500),touchable:A,lazyRender:Boolean,initialSwipe:O(0),indicatorColor:String,showIndicators:A,stopPropagation:A},ee=Symbol(Z);var xe=K({name:Z,props:Te,emits:["change"],setup(a,{emit:P,slots:h}){const u=L(),d=L(),e=U({rect:null,width:0,height:0,offset:0,active:0,swiping:!1}),r=ue(),{children:g,linkChildren:E}=re(ee),i=f(()=>g.length),l=f(()=>e[a.vertical?"height":"width"]),s=f(()=>a.vertical?r.deltaY.value:r.deltaX.value),m=f(()=>e.rect?(a.vertical?e.rect.height:e.rect.width)-l.value*i.value:0),I=f(()=>l.value?Math.ceil(Math.abs(m.value)/l.value):i.value),b=f(()=>i.value*l.value),$=f(()=>(e.active+i.value)%i.value),R=f(()=>{const t=a.vertical?"vertical":"horizontal";return r.direction.value===t}),te=f(()=>{const t={transitionDuration:`${e.swiping?0:a.duration}ms`,transform:`translate${a.vertical?"Y":"X"}(${e.offset}px)`};if(l.value){const o=a.vertical?"height":"width",n=a.vertical?"width":"height";t[o]=`${b.value}px`,t[n]=a[n]?`${a[n]}px`:""}return t}),ae=t=>{const{active:o}=e;return t?a.loop?_(o+t,-1,i.value):_(o+t,0,I.value):o},Y=(t,o=0)=>{let n=t*l.value;a.loop||(n=Math.min(n,-m.value));let v=o-n;return a.loop||(v=_(v,m.value,0)),v},w=({pace:t=0,offset:o=0,emitChange:n})=>{if(i.value<=1)return;const{active:v}=e,c=ae(t),x=Y(c,o);if(a.loop){if(g[0]&&x!==m.value){const M=x<m.value;g[0].setOffset(M?b.value:0)}if(g[i.value-1]&&x!==0){const M=x>0;g[i.value-1].setOffset(M?-b.value:0)}}e.active=c,e.offset=x,n&&c!==v&&P("change",$.value)},z=()=>{e.swiping=!0,e.active<=-1?w({pace:i.value}):e.active>=i.value&&w({pace:-i.value})},ie=()=>{z(),r.reset(),k(()=>{e.swiping=!1,w({pace:-1,emitChange:!0})})},B=()=>{z(),r.reset(),k(()=>{e.swiping=!1,w({pace:1,emitChange:!0})})};let X;const p=()=>clearTimeout(X),T=()=>{p(),a.autoplay>0&&i.value>1&&(X=setTimeout(()=>{B(),T()},+a.autoplay))},y=(t=+a.initialSwipe)=>{if(!u.value)return;const o=()=>{var n,v;if(!q(u)){const c={width:u.value.offsetWidth,height:u.value.offsetHeight};e.rect=c,e.width=+((n=a.width)!=null?n:c.width),e.height=+((v=a.height)!=null?v:c.height)}i.value&&(t=Math.min(i.value-1,t)),e.active=t,e.swiping=!0,e.offset=Y(t),g.forEach(c=>{c.setOffset(0)}),T()};q(u)?J().then(o):o()},W=()=>y(e.active);let H;const ne=t=>{!a.touchable||(r.start(t),H=Date.now(),p(),z())},oe=t=>{a.touchable&&e.swiping&&(r.move(t),R.value&&(!a.loop&&(e.active===0&&s.value>0||e.active===i.value-1&&s.value<0)||(be(t,a.stopPropagation),w({offset:s.value}))))},N=()=>{if(!a.touchable||!e.swiping)return;const t=Date.now()-H,o=s.value/t;if((Math.abs(o)>.25||Math.abs(s.value)>l.value/2)&&R.value){const v=a.vertical?r.offsetY.value:r.offsetX.value;let c=0;a.loop?c=v>0?s.value>0?-1:1:0:c=-Math[s.value>0?"ceil":"floor"](s.value/l.value),w({pace:c,emitChange:!0})}else s.value&&w({pace:0});e.swiping=!1,T()},se=(t,o={})=>{z(),r.reset(),k(()=>{let n;a.loop&&t===i.value?n=e.active===0?0:t:n=t%i.value,o.immediate?k(()=>{e.swiping=!1}):e.swiping=!1,w({pace:n-e.active,emitChange:!0})})},le=(t,o)=>{const n=o===$.value,v=n?{backgroundColor:a.indicatorColor}:void 0;return C("i",{style:v,class:D("indicator",{active:n})},null)},ce=()=>{if(h.indicator)return h.indicator({active:$.value,total:i.value});if(a.showIndicators&&i.value>1)return C("div",{class:D("indicators",{vertical:a.vertical})},[Array(i.value).fill("").map(le)])};return j({prev:ie,next:B,state:e,resize:W,swipeTo:se}),E({size:l,props:a,count:i,activeIndicator:$}),S(()=>a.initialSwipe,t=>y(+t)),S(i,()=>y(e.active)),S(()=>a.autoplay,T),S([ve,fe],W),S(de(),t=>{t==="visible"?T():p()}),G(y),he(()=>y(e.active)),ge(()=>y(e.active)),me(p),we(p),ye("touchmove",oe,{target:d}),()=>{var t;return C("div",{ref:u,class:D()},[C("div",{ref:d,style:te.value,class:D("track",{vertical:a.vertical}),onTouchstartPassive:ne,onTouchend:N,onTouchcancel:N},[(t=h.default)==null?void 0:t.call(h)]),ce()])}}});const ze=Q(xe),[Se,Ce]=F("swipe-item");var Pe=K({name:Se,setup(a,{slots:P}){let h;const u=U({offset:0,inited:!1,mounted:!1}),{parent:d,index:e}=pe(ee);if(!d)return;const r=f(()=>{const i={},{vertical:l}=d.props;return d.size.value&&(i[l?"height":"width"]=`${d.size.value}px`),u.offset&&(i.transform=`translate${l?"Y":"X"}(${u.offset}px)`),i}),g=f(()=>{const{loop:i,lazyRender:l}=d.props;if(!l||h)return!0;if(!u.mounted)return!1;const s=d.activeIndicator.value,m=d.count.value-1,I=s===0&&i?m:s-1,b=s===m&&i?0:s+1;return h=e.value===s||e.value===I||e.value===b,h}),E=i=>{u.offset=i};return G(()=>{J(()=>{u.mounted=!0})}),j({setOffset:E}),()=>{var i;return C("div",{class:Ce(),style:r.value},[g.value?(i=P.default)==null?void 0:i.call(P):null])}}});const Ae=Q(Pe);export{ze as S,Ae as a};
|