index-cebe9fb2.js 2.0 KB

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