u-swipe-action-item.4643a6ca.js 6.7 KB

1
  1. import{_ as t}from"./u-icon.086befcc.js";import{x as e,y as s,z as a,h as o,i,a as n,c as r,w as u,b as h,C as l,S as c,U as d,T as f,n as p,g as m,p as g,D as y,E as b,j as _}from"./index-65a0752a.js";import{_ as w}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":"")}}},S={props:{show:{type:Boolean,default:e.swipeActionItem.show},name:{type:[String,Number],default:e.swipeActionItem.name},disabled:{type:Boolean,default:e.swipeActionItem.disabled},autoClose:{type:Boolean,default:e.swipeActionItem.autoClose},threshold:{type:Number,default:e.swipeActionItem.threshold},options:{type:Array,default:()=>uni.$u.props.swipeActionItem.rightOptions},duration:{type:[String,Number],default:e.swipeActionItem.duration}}};function v(t){return t.toString().indexOf("s")>=0?t:t>30?t+"ms":t+"s"}function X(t,e,s){e.getState(),s.selectAllComponents(".u-swipe-action-item__right__button"),e.requestAnimationFrame((function(){e.setStyle({transition:"none",transform:"translateX("+t+"px)","-webkit-transform":"translateX("+t+"px)"})}))}function C(t,e){var s=t.getState();e.selectAllComponents(".u-swipe-action-item__right__button");var a=v(s.duration),o=-s.buttonsWidth;t.requestAnimationFrame((function(){t.setStyle({transition:"transform "+a,transform:"translateX("+o+"px)","-webkit-transform":"translateX("+o+"px)"})})),z("open",t,e)}function z(t,e,s){e.getState().status=t,s.callMethod("setState",t)}function T(t,e){var s=t.getState(),a=e.selectAllComponents(".u-swipe-action-item__right__button"),o=a.length,i=v(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)"})})),z("close",t,e)}const k={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,h=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>h&&(r=h),X(-h+r,s,e)):(r>0&&(r=0),Math.abs(r)>h&&(r=-h),X(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 T(s,e);Math.abs(n)<a.threshold?C(s,e):T(s,e)}else{if(n>0)return;Math.abs(n)<a.threshold?T(s,e):C(s,e)}}},sizeChange:function(t,e,s,a){var o=a.getState();if(o&&t){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?T(a,s):"open"===t&&"close"===o.status&&C(a,s))}},Y=t=>{t.$wxs||(t.$wxs=[]),t.$wxs.push("wxs"),t.mixins||(t.mixins=[]),t.mixins.push({beforeCreate(){this.wxs=k}})},A={name:"u-swipe-action-item",emits:["click"],mixins:[s,a,S,x],mixins:[s,a,S,x,{methods:{closeHandler(){this.status="close"},setState(t){this.status=t},closeOther(){this.parent&&this.parent.closeOther(this)}}}],data:()=>({size:{},parentData:{autoClose:!0},status:"close"}),watch:{wxsInit(t,e){this.queryRect()}},computed:{wxsInit(){return[this.disabled,this.autoClose,this.threshold,this.options,this.duration]}},mounted(){this.init()},methods:{init(){this.updateParentData(),uni.$u.sleep().then((()=>{this.queryRect()}))},updateParentData(){this.getParentData("u-swipe-action")},queryRect(){this.$uGetRect(".u-swipe-action-item__right__button",!0).then((t=>{this.size={buttons:t,show:this.show,disabled:this.disabled,threshold:this.threshold,duration:this.duration}}))},buttonClickHandler(t,e){this.$emit("click",{index:e,name:this.name})}}};Y(A);const M=w(A,[["render",function(e,s,a,w,x,S){const v=o(i("u-icon"),t),X=b,C=_;return n(),r(C,{class:"u-swipe-action-item",ref:"u-swipe-action-item"},{default:u((()=>[h(C,{class:"u-swipe-action-item__right"},{default:u((()=>[l(e.$slots,"button",{},(()=>[(n(!0),c(d,null,f(e.options,((t,s)=>(n(),r(C,{key:s,class:"u-swipe-action-item__right__button",ref_for:!0,ref:`u-swipe-action-item__right__button-${s}`,style:p([{alignItems:t.style&&t.style.borderRadius?"center":"stretch"}]),onClick:e=>S.buttonClickHandler(t,s)},{default:u((()=>[h(C,{class:"u-swipe-action-item__right__button__wrapper",style:p([{backgroundColor:t.style&&t.style.backgroundColor?t.style.backgroundColor:"#C7C6CD",borderRadius:t.style&&t.style.borderRadius?t.style.borderRadius:"0",padding:t.style&&t.style.borderRadius?"0":"0 15px"},t.style])},{default:u((()=>[t.icon?(n(),r(v,{key:0,name:t.icon,color:t.style&&t.style.color?t.style.color:"#ffffff",size:t.iconSize?e.$u.addUnit(t.iconSize):t.style&&t.style.fontSize?1.2*e.$u.getPx(t.style.fontSize):17,customStyle:{marginRight:t.text?"2px":0}},null,8,["name","color","size","customStyle"])):m("v-if",!0),t.text?(n(),r(X,{key:1,class:"u-swipe-action-item__right__button__wrapper__text u-line-1",style:p([{color:t.style&&t.style.color?t.style.color:"#ffffff",fontSize:t.style&&t.style.fontSize?t.style.fontSize:"16px",lineHeight:t.style&&t.style.fontSize?t.style.fontSize:"16px"}])},{default:u((()=>[g(y(t.text),1)])),_:2},1032,["style"])):m("v-if",!0)])),_:2},1032,["style"])])),_:2},1032,["style","onClick"])))),128))]),!0)])),_:3}),h(C,{class:"u-swipe-action-item__content",onTouchstart:e.wxs.touchstart,onTouchmove:e.wxs.touchmove,onTouchend:e.wxs.touchend,status:x.status,"change:status":e.wxs.statusChange,size:x.size,"change:size":e.wxs.sizeChange},{default:u((()=>[l(e.$slots,"default",{},void 0,!0)])),_:3},8,["onTouchstart","onTouchmove","onTouchend","status","change:status","size","change:size"])])),_:3},512)}],["__scopeId","data-v-19c3dfd5"]]);export{M as _};