2 lines
7.2 KiB
JavaScript
2 lines
7.2 KiB
JavaScript
![]() |
var t,e,s,a;import{_ as o}from"./uv-icon.c815b875.js";import{Y as i,Z as n,G as r,H as u,o as l,j as h,w as c,h as d,a0 as p,e as f,F as m,k as g,y,z as v,I as _,l as b,A as w,B as x}from"./index-90c12cc1.js";import{_ as S}from"./_plugin-vue_export-helper.1b428a4d.js";const X={methods:{getTouchPoint:t=>t?t.touches&&t.touches[0]?{x:t.touches[0].pageX,y:t.touches[0].pageY}:t.changedTouches&&t.changedTouches[0]?{x:t.changedTouches[0].pageX,y:t.changedTouches[0].pageY}:{x:t.clientX||0,y:t.clientY||0}:{x:0,y:0},resetTouchStatus(){this.direction="",this.deltaX=0,this.deltaY=0,this.offsetX=0,this.offsetY=0},touchStart(t){this.resetTouchStatus();const e=this.getTouchPoint(t);this.startX=e.x,this.startY=e.y},touchMove(t){const e=this.getTouchPoint(t);var s,a;this.deltaX=e.x-this.startX,this.deltaY=e.y-this.startY,this.offsetX=Math.abs(this.deltaX),this.offsetY=Math.abs(this.deltaY),this.direction=this.direction||(s=this.offsetX,a=this.offsetY,s>a&&s>10?"horizontal":a>s&&a>10?"vertical":"")}}},C={props:{show:{type:Boolean,default:!1},name:{type:[String,Number],default:""},disabled:{type:Boolean,default:!1},autoClose:{type:Boolean,default:!0},threshold:{type:Number,default:20},options:{type:Array,default:()=>[]},duration:{type:[String,Number],default:300},...null==(e=null==(t=uni.$uv)?void 0:t.props)?void 0:e.swipeActionItem}};function z(t){return t.toString().indexOf("s")>=0?t:t>30?t+"ms":t+"s"}function k(t,e,s){e.getState(),s.selectAllComponents(".uv-swipe-action-item__right__button"),e.requestAnimationFrame((function(){e.setStyle({transition:"none",transform:"translateX("+t+"px)","-webkit-transform":"translateX("+t+"px)"})}))}function T(t,e){var s=t.getState();e.selectAllComponents(".uv-swipe-action-item__right__button");var a=z(s.duration),o=-s.buttonsWidth;t.requestAnimationFrame((function(){t.setStyle({transition:"transform "+a,transform:"translateX("+o+"px)","-webkit-transform":"translateX("+o+"px)"})})),Y("open",t,e)}function Y(t,e,s){e.getState().status=t,s.callMethod("setState",t)}function $(t,e){var s=t.getState(),a=e.selectAllComponents(".uv-swipe-action-item__right__button"),o=a.length,i=z(s.duration);t.requestAnimationFrame((function(){t.setStyle({transition:"transform "+i,transform:"translateX(0px)","-webkit-transform":"translateX(0px)"});for(var e=o-1;e>=0;e--)a[e].setStyle({transition:"transform "+i,transform:"translateX(0px)","-webkit-transform":"translateX(0px)"})})),Y("close",t,e)}const M={touchstart:function(t,e){var s=t.instance.getState();if(!s.disabled){var a=t.touches;a&&a.length>1||(s.moving=!0,s.startX=a[0].pageX,s.startY=a[0].pageY,e.callMethod("closeOther"))}},touchmove:function(t,e){var s=t.instance,a=s.getState();if(!a.disabled&&a.moving){var o=t.touches,i=o[0].pageX,n=o[0].pageY,r=i-a.startX,u=n-a.startY,l=a.buttonsWidth;(Math.abs(r)>Math.abs(u)||Math.abs(r)>a.threshold)&&(t.preventDefault&&t.preventDefault(),t.stopPropagation&&t.stopPropagation()),Math.abs(r)<Math.abs(u)||("open"===a.status?(r<0&&(r=0),r>l&&(r=l),k(-l+r,s,e)):(r>0&&(r=0),Math.abs(r)>l&&(r=-l),k(r,s,e)))}},touchend:function(t,e){var s=t.instance,a=s.getState();if(a.moving&&!a.disabled){var o=t.changedTouches?t.changedTouches[0]:{},i=o.pageX;o.pageY;var n=i-a.startX;if("open"===a.status){if(n<0)return;if(0===n)return $(s,e);Math.abs(n)<a.threshold?T(s,e):$(s,e)}else{if(n>0)return;Math.abs(n)<a.threshold?$(s,e):T(s,e)}}},sizeChange:function(t,e,s,a){var o=a.getState();if(o.disabled=t.disabled,o.duration=t.duration,o.show=t.show,o.threshold=t.threshold,o.buttons=t.buttons,o.buttons)for(var i=o.buttons.length,n=0,r=t.buttons,u=0;u<i;u++)n+=r[u].width;o.buttonsWidth=n},statusChange:function(t,e,s,a){var o=a.getState();o.disabled||("close"===t&&"open"===o.status?$(a,s):"open"===t&&"close"===o.status&&T(a,s))}},A=t=>{t.$wxs||(t.$wxs=[]),t.$wxs.push("wxs"),t.mixins||(t.mixins=[]),t.mixins.push({beforeCreate(){this.wxs=M}})},D={name:"uv-swipe-action-item",emits:["click"],mixins:[i,n,C,X],mixins:[i,n,C,X,{methods:{closeHandler(){this.status="close"},setState(t){this.status=t},closeOther(){this.parent&&this.parent.closeOther(this)}}}],data:()=
|