1 |
- import{t as K,u as z,E as V,z as D,d as U,R as L,r as Z,ap as ue,C as re,D as f,W as j,Z as x,aR as ve,au as fe,b0 as de,$ as q,aS as he,aT as ge,b1 as me,ab as we,a0 as be,c as C,aA as G,_ as F,a4 as pe,aX as I,aY as O,x as J,G as ye}from"./index.f2940478.js";const[Q,E]=K("swipe"),Se={loop:z,width:V,height:V,vertical:Boolean,autoplay:D(0),duration:D(500),touchable:z,lazyRender:Boolean,initialSwipe:D(0),indicatorColor:String,showIndicators:z,stopPropagation:z},ee=Symbol(Q);var Te=U({name:Q,props:Se,emits:["change"],setup(a,{emit:P,slots:h}){const u=L(),d=L(),e=Z({rect:null,width:0,height:0,offset:0,active:0,swiping:!1}),r=ue(),{children:g,linkChildren:M}=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),_=f(()=>l.value?Math.ceil(Math.abs(m.value)/l.value):i.value),p=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]=`${p.value}px`,t[n]=a[n]?`${a[n]}px`:""}return t}),ae=t=>{const{active:o}=e;return t?a.loop?O(o+t,-1,i.value):O(o+t,0,_.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=O(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),T=Y(c,o);if(a.loop){if(g[0]&&T!==m.value){const k=T<m.value;g[0].setOffset(k?p.value:0)}if(g[i.value-1]&&T!==0){const k=T>0;g[i.value-1].setOffset(k?-p.value:0)}}e.active=c,e.offset=T,n&&c!==v&&P("change",$.value)},A=()=>{e.swiping=!0,e.active<=-1?w({pace:i.value}):e.active>=i.value&&w({pace:-i.value})},ie=()=>{A(),r.reset(),I(()=>{e.swiping=!1,w({pace:-1,emitChange:!0})})},B=()=>{A(),r.reset(),I(()=>{e.swiping=!1,w({pace:1,emitChange:!0})})};let X;const y=()=>clearTimeout(X),S=()=>{y(),a.autoplay>0&&i.value>1&&(X=setTimeout(()=>{B(),S()},+a.autoplay))},b=(t=+a.initialSwipe)=>{if(!u.value)return;const o=()=>{var n,v;if(!G(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)}),S()};G(u)?F().then(o):o()},W=()=>b(e.active);let H;const ne=t=>{!a.touchable||(r.start(t),H=Date.now(),y(),A())},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)||(pe(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,S()},se=(t,o={})=>{A(),r.reset(),I(()=>{let n;a.loop&&t===i.value?n=e.active===0?0:t:n=t%i.value,o.immediate?I(()=>{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:E("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:E("indicators",{vertical:a.vertical})},[Array(i.value).fill("").map(le)])};return j({prev:ie,next:B,state:e,resize:W,swipeTo:se}),M({size:l,props:a,count:i,activeIndicator:$}),x(()=>a.initialSwipe,t=>b(+t)),x(i,()=>b(e.active)),x(()=>a.autoplay,S),x([ve,fe],W),x(de(),t=>{t==="visible"?S():y()}),q(b),he(()=>b(e.active)),ge(()=>b(e.active)),me(y),we(y),be("touchmove",oe,{target:d}),()=>{var t;return C("div",{ref:u,class:E()},[C("div",{ref:d,style:te.value,class:E("track",{vertical:a.vertical}),onTouchstartPassive:ne,onTouchend:N,onTouchcancel:N},[(t=h.default)==null?void 0:t.call(h)]),ce()])}}});const Ae=J(Te),[xe,Ce]=K("swipe-item");var Pe=U({name:xe,setup(a,{slots:P}){let h;const u=Z({offset:0,inited:!1,mounted:!1}),{parent:d,index:e}=ye(ee);if(!d){console.error("[Vant] <SwipeItem> must be a child component of <Swipe>.");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,_=s===0&&i?m:s-1,p=s===m&&i?0:s+1;return h=e.value===s||e.value===_||e.value===p,h}),M=i=>{u.offset=i};return q(()=>{F(()=>{u.mounted=!0})}),j({setOffset:M}),()=>{var i;return C("div",{class:Ce(),style:r.value},[g.value?(i=P.default)==null?void 0:i.call(P):null])}}});const ze=J(Pe);export{Ae as S,ze as a};
|