index-14ec4a94.js 2.0 KB

1
  1. import{c as L,m as M,n as R,k as x,C as O,D as _,E as z,p as A,s as F,w as V}from"./index-e9453d64.js";import{u as X}from"./index-c1d3cef3.js";import{u as $}from"./use-scope-id-7611483c.js";import{d as j,r as v,n as q,a as y,c as p}from"./index-ddf66cb5.js";import{c as G}from"./on-popup-reopen-8ab517b6.js";const[J,C]=L("swipe-cell"),K={name:M(""),disabled:Boolean,leftWidth:R,rightWidth:R,beforeClose:Function,stopPropagation:Boolean};var Q=j({name:J,props:K,emits:["open","close","click"],setup(o,{emit:i,slots:f}){let n,l,u,c;const d=v(),k=v(),w=v(),s=q({offset:0,dragging:!1}),r=X(),T=e=>e.value?z(e).width:0,g=y(()=>x(o.leftWidth)?+o.leftWidth:T(k)),h=y(()=>x(o.rightWidth)?+o.rightWidth:T(w)),W=e=>{s.offset=e==="left"?g.value:-h.value,n||(n=!0,i("open",{name:o.name,position:e}))},m=e=>{s.offset=0,n&&(n=!1,i("close",{name:o.name,position:e}))},B=e=>{const t=Math.abs(s.offset),a=.15,I=n?1-a:a,D=e==="left"?g.value:h.value;D&&t>D*I?W(e):m(e)},H=e=>{o.disabled||(u=s.offset,r.start(e))},N=e=>{if(o.disabled)return;const{deltaX:t}=r;r.move(e),r.isHorizontal()&&(l=!0,s.dragging=!0,(!n||t.value*u<0)&&A(e,o.stopPropagation),s.offset=F(t.value+u,-h.value,g.value))},b=()=>{s.dragging&&(s.dragging=!1,B(s.offset>0?"left":"right"),setTimeout(()=>{l=!1},0))},E=(e="outside",t)=>{c||(i("click",e),n&&!l&&(c=!0,G(o.beforeClose,{args:[{event:t,name:o.name,position:e}],done:()=>{c=!1,m(e)},canceled:()=>c=!1,error:()=>c=!1})))},P=(e,t)=>a=>{t&&a.stopPropagation(),!l&&E(e,a)},S=(e,t)=>{const a=f[e];if(a)return p("div",{ref:t,class:C(e),onClick:P(e,!0)},[a()])};return $({open:W,close:m}),O(d,e=>E("outside",e),{eventName:"touchstart"}),_("touchmove",N,{target:d}),()=>{var e;const t={transform:`translate3d(${s.offset}px, 0, 0)`,transitionDuration:s.dragging?"0s":".6s"};return p("div",{ref:d,class:C(),onClick:P("cell",l),onTouchstartPassive:H,onTouchend:b,onTouchcancel:b},[p("div",{class:C("wrapper"),style:t},[S("left",k),(e=f.default)==null?void 0:e.call(f),S("right",w)])])}}});const oe=V(Q);export{oe as S};