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