| 1 |
- import{$ as P,c as _,m as z,n as X,A as N,U as A,K as F,V as M,D as x,F as y,w as B}from"./index-c1f44820.js";import{r as n,d as L,n as V,a as R,c as k}from"./index-ebd06049.js";import{u as K}from"./use-expose-cd5a8a20.js";import{c as $}from"./interceptor-77f719a0.js";function U(t,l){return t>l?"horizontal":l>t?"vertical":""}function j(){const t=n(0),l=n(0),u=n(0),o=n(0),s=n(0),c=n(0),i=n(""),d=n(!0),p=()=>i.value==="vertical",a=()=>i.value==="horizontal",h=()=>{u.value=0,o.value=0,s.value=0,c.value=0,i.value="",d.value=!0};return{move:f=>{const g=f.touches[0];u.value=(g.clientX<0?0:g.clientX)-t.value,o.value=g.clientY-l.value,s.value=Math.abs(u.value),c.value=Math.abs(o.value);const m=10;(!i.value||s.value<m&&c.value<m)&&(i.value=U(s.value,c.value)),d.value&&(s.value>P||c.value>P)&&(d.value=!1)},start:f=>{h(),t.value=f.touches[0].clientX,l.value=f.touches[0].clientY},reset:h,startX:t,startY:l,deltaX:u,deltaY:o,offsetX:s,offsetY:c,direction:i,isVertical:p,isHorizontal:a,isTap:d}}const[q,w]=_("swipe-cell"),G={name:z(""),disabled:Boolean,leftWidth:X,rightWidth:X,beforeClose:Function,stopPropagation:Boolean};var J=L({name:q,props:G,emits:["open","close","click"],setup(t,{emit:l,slots:u}){let o,s,c;const i=n(),d=n(),p=n(),a=V({offset:0,dragging:!1}),h=j(),T=e=>e.value?M(e).width:0,C=R(()=>N(t.leftWidth)?+t.leftWidth:T(d)),f=R(()=>N(t.rightWidth)?+t.rightWidth:T(p)),g=e=>{a.offset=e==="left"?C.value:-f.value,o||(o=!0,l("open",{name:t.name,position:e}))},m=e=>{a.offset=0,o&&(o=!1,l("close",{name:t.name,position:e}))},H=e=>{const r=Math.abs(a.offset),v=.15,Y=o?1-v:v,D=e==="left"?C.value:f.value;D&&r>D*Y?g(e):m(e)},I=e=>{t.disabled||(c=a.offset,h.start(e))},O=e=>{if(t.disabled)return;const{deltaX:r}=h;h.move(e),h.isHorizontal()&&(s=!0,a.dragging=!0,(!o||r.value*c<0)&&x(e,t.stopPropagation),a.offset=y(r.value+c,-f.value,C.value))},b=()=>{a.dragging&&(a.dragging=!1,H(a.offset>0?"left":"right"),setTimeout(()=>{s=!1},0))},E=(e="outside")=>{l("click",e),o&&!s&&$(t.beforeClose,{args:[{name:t.name,position:e}],done:()=>m(e)})},S=(e,r)=>v=>{r&&v.stopPropagation(),E(e)},W=(e,r)=>{const v=u[e];if(v)return k("div",{ref:r,class:w(e),onClick:S(e,!0)},[v()])};return K({open:g,close:m}),A(i,()=>E("outside"),{eventName:"touchstart"}),F("touchmove",O,{target:i}),()=>{var e;const r={transform:`translate3d(${a.offset}px, 0, 0)`,transitionDuration:a.dragging?"0s":".6s"};return k("div",{ref:i,class:w(),onClick:S("cell",s),onTouchstartPassive:I,onTouchend:b,onTouchcancel:b},[k("div",{class:w("wrapper"),style:r},[W("left",d),(e=u.default)==null?void 0:e.call(u),W("right",p)])])}}});const ae=B(J);export{ae as S,j as u};
|