Comparing version 1.0.0 to 1.0.1
@@ -1,1 +0,1 @@ | ||
import{forwardRef as t,useRef as e,useImperativeHandle as i,useLayoutEffect as s,isValidElement as n,cloneElement as h}from"react";function o(t,e){if(null==t)return{};var i,s,n=function(t,e){if(null==t)return{};var i,s,n={},h=Object.keys(t);for(s=0;h.length>s;s++)0>e.indexOf(i=h[s])&&(n[i]=t[i]);return n}(t,e);if(Object.getOwnPropertySymbols){var h=Object.getOwnPropertySymbols(t);for(s=0;h.length>s;s++)0>e.indexOf(i=h[s])&&Object.prototype.propertyIsEnumerable.call(t,i)&&(n[i]=t[i])}return n}var l="undefined"!=typeof window&&void 0!==window.ontouchstart,a=function(){},u=function(t){return Math.sqrt(t.x*t.x+t.y*t.y)};function r(t,e){var i=function(t,e){var i=u(t)*u(e);if(0===i)return 0;var s=function(t,e){return t.x*e.x+t.y*e.y}(t,e)/i;return s>1&&(s=1),Math.acos(s)}(t,e);return function(t,e){return t.x*e.y-e.x*t.y}(t,e)>0&&(i*=-1),180*i}var c=function(t){this.handlers=[],this.el=t};function p(t,e){var i=new c(t);return i.add(e),i}c.prototype.add=function(t){this.handlers.push(t)},c.prototype.del=function(t){t||(this.handlers=[]);for(var e=this.handlers.length;e>=0;e--)this.handlers[e]===t&&this.handlers.splice(e,1)},c.prototype.dispatch=function(){for(var t=arguments.length,e=Array(t),i=0;t>i;i++)e[i]=arguments[i];for(var s=0,n=this.handlers.length;n>s;s++){var h,o=this.handlers[s];null===(h=o.apply)||void 0===h||h.call(o,this.el,e)}};var d=function(t,e){this.element=t,this.start=this.start.bind(this),this.move=this.move.bind(this),this.end=this.end.bind(this),this.cancel=this.cancel.bind(this),this.element.addEventListener(l?"touchstart":"mousedown",this.start),l?(this.element.addEventListener("touchmove",this.move),this.element.addEventListener("touchend",this.end),this.element.addEventListener("touchcancel",this.cancel)):(document.addEventListener("mousemove",this.move),document.addEventListener("mouseup",this.end)),this.preV={x:null,y:null},this.pinchStartLen=null,this.scale=1,this.isDoubleTap=!1,this.rotate=p(this.element,e.onRotate||a),this.touchStart=p(this.element,e.onTouchStart||a),this.touchMove=p(this.element,e.onTouchMove||a),this.touchEnd=p(this.element,e.onTouchEnd||a),this.touchCancel=p(this.element,e.onTouchCancel||a),this.isMoving=!1,this.multipointStart=p(this.element,e.onMultipointStart||a),this.multipointEnd=p(this.element,e.onMultipointEnd||a),this.pinch=p(this.element,e.onPinch||a),this.swipe=p(this.element,e.onSwipe||a),this.doubleTap=p(this.element,e.onDoubleTap||a),this.longTap=p(this.element,e.onLongTap||a),this.singleTap=p(this.element,e.onSingleTap||a),this.pressMove=p(this.element,e.onPressMove||a),this.twoFingerPressMove=p(this.element,e.onTwoFingerPressMove||a),this._cancelAllHandler=this.cancelAll.bind(this),window.addEventListener("scroll",this._cancelAllHandler),this.delta=null,this.last=null,this.now=null,this.tapTimeout=null,this.singleTapTimeout=null,this.longTapTimeout=null,this.swipeTimeout=null,this.x1=this.x2=this.y1=this.y2=null,this.preTapPosition={x:null,y:null}};d.prototype={start:function(t){t.touches||(t.touches=t.touches||[],t.touches[0]={pageX:t.pageX,pageY:t.pageY}),this.isMoving||(this.isMoving=!0),this.now=Date.now(),this.x1=t.touches[0].pageX,this.y1=t.touches[0].pageY,this.delta=this.now-(this.last||this.now),this.touchStart.dispatch(t,this.element),null!==this.preTapPosition.x&&(this.isDoubleTap=this.delta>0&&250>=this.delta&&30>Math.abs(this.preTapPosition.x-this.x1)&&30>Math.abs(this.preTapPosition.y-this.y1),this.isDoubleTap&&clearTimeout(this.singleTapTimeout)),this.preTapPosition.x=this.x1,this.preTapPosition.y=this.y1,this.last=this.now;var e=this.preV;if(t.touches.length>1){this._cancelLongTap(),this._cancelSingleTap();var i={x:t.touches[1].pageX-this.x1,y:t.touches[1].pageY-this.y1};e.x=i.x,e.y=i.y,this.pinchStartLen=u(e),this.multipointStart.dispatch(t,this.element)}this._preventTap=!1,this.longTapTimeout=setTimeout(function(){this.longTap.dispatch(t,this.element),this._preventTap=!0}.bind(this),750)},move:function(t){var e;if(this.isMoving){t.touches||(t.touches=t.touches||[],t.touches[0]={pageX:t.pageX,pageY:t.pageY});var i=this.preV,s=t.touches.length,n=t.touches[0].pageX,h=t.touches[0].pageY;if(this.isDoubleTap=!1,s>1){var o=t.touches[1].pageX,l=t.touches[1].pageY,a={x:t.touches[1].pageX-n,y:t.touches[1].pageY-h};null!==i.x&&(this.pinchStartLen>0&&(t.scale=u(a)/this.pinchStartLen,this.pinch.dispatch(t,this.element)),t.angle=r(a,i),this.rotate.dispatch(t,this.element)),i.x=a.x,i.y=a.y,null!==this.x2&&null!==this.sx2?(t.deltaX=(n-this.x2+o-this.sx2)/2,t.deltaY=(h-this.y2+l-this.sy2)/2):(t.deltaX=0,t.deltaY=0),this.twoFingerPressMove.dispatch(t,this.element),this.sx2=o,this.sy2=l}else{if(null!==this.x2)t.deltaX=n-this.x2,t.deltaY=h-this.y2,(Math.abs(this.x1-this.x2)>10||Math.abs(this.y1-this.y2)>10)&&(this._preventTap=!0);else t.deltaX=0,t.deltaY=0;this.pressMove.dispatch(t,this.element)}null===(e=this.touchMove)||void 0===e||e.dispatch(t,this.element),this._cancelLongTap(),this.x2=n,this.y2=h,s>1&&t.preventDefault()}},end:function(t){var e;if(this.isMoving&&(this.isMoving=!1),!l||t.changedTouches){t.touches||(t.touches=t.touches||[],t.touches[0]={pageX:t.pageX,pageY:t.pageY}),this._cancelLongTap();var i=this;l&&2>t.touches.length&&(this.multipointEnd.dispatch(t,this.element),this.sx2=this.sy2=null),this.x2&&Math.abs(this.x1-this.x2)>30||this.y2&&Math.abs(this.y1-this.y2)>30?(t.direction=this._swipeDirection(this.x1,this.x2,this.y1,this.y2),this.swipeTimeout=setTimeout((function(){i.swipe.dispatch(t,i.element)}),0)):(this.tapTimeout=setTimeout((function(){var e;i.isDoubleTap&&(null===(e=i.doubleTap)||void 0===e||e.dispatch(t,i.element),i.isDoubleTap=!1)}),0),i.isDoubleTap||(i.singleTapTimeout=setTimeout((function(){var e;i._preventTap||(null===(e=i.singleTap)||void 0===e||e.dispatch(t,i.element))}),250))),null===(e=this.touchEnd)||void 0===e||e.dispatch(t,this.element),this.preV.x=0,this.preV.y=0,this.scale=1,this.pinchStartLen=null,this.x1=this.x2=this.y1=this.y2=null}},cancelAll:function(){this._preventTap=!0,clearTimeout(this.singleTapTimeout),clearTimeout(this.longTapTimeout),clearTimeout(this.swipeTimeout)},cancel:function(t){this.cancelAll(),this.touchCancel.dispatch(t,this.element)},_cancelLongTap:function(){clearTimeout(this.longTapTimeout)},_cancelSingleTap:function(){clearTimeout(this.singleTapTimeout)},_swipeDirection:function(t,e,i,s){return Math.abs(i-s)>Math.abs(t-e)?i-s>0?"up":"down":t-e>0?"left":"right"},on:function(t,e){this[t]&&this[t].add(e)},off:function(t,e){this[t]&&this[t].del(e)},destroy:function(){return this.singleTapTimeout&&clearTimeout(this.singleTapTimeout),this.longTapTimeout&&clearTimeout(this.longTapTimeout),this.swipeTimeout&&clearTimeout(this.swipeTimeout),this.element.removeEventListener(l?"touchstart":"mousedown",this.start),l?(this.element.removeEventListener("touchmove",this.move),this.element.removeEventListener("touchend",this.end),this.element.removeEventListener("touchcancel",this.cancel)):(document.removeEventListener("mousemove",this.move),document.removeEventListener("mouseup",this.end)),this.rotate.del(),this.touchStart.del(),this.multipointStart.del(),this.multipointEnd.del(),this.pinch.del(),this.swipe.del(),this.doubleTap.del(),this.longTap.del(),this.singleTap.del(),this.pressMove.del(),this.twoFingerPressMove.del(),this.touchMove.del(),this.touchEnd.del(),this.touchCancel.del(),this.preV={x:null,y:null},this.isMoving=this.pinchStartLen=this.scale=this.isDoubleTap=this.delta=this.last=this.now=this.singleTapTimeout=this.longTapTimeout=this.swipeTimeout=this.x1=this.x2=this.y1=this.y2=this.preTapPosition=this.rotate=this.touchStart=this.multipointStart=this.multipointEnd=this.pinch=this.swipe=this.doubleTap=this.longTap=this.singleTap=this.pressMove=this.touchMove=this.touchEnd=this.touchCancel=this.twoFingerPressMove=null,window.removeEventListener("scroll",this._cancelAllHandler),null}};var m=["children"],T=function(){throw Error("XTouchElement: 子元素必须是dom/forwardRef到dom的组件")},v=t((function(t,l){var a=t.children,u=o(t,m),r=e();return i(l,(function(){return r.current})),s((function(){var t=r.current;t instanceof HTMLElement||T();var e=new d(t,u);return function(){var t;null===(t=e.destroy)||void 0===t||t.call(e)}}),[]),n(a)||T(),h(a,{ref:r})}));v.displayName="XTouchElement";export default d;export{v as XTouchElement}; | ||
import{forwardRef as t,useRef as e,useImperativeHandle as i,useLayoutEffect as s,isValidElement as n,cloneElement as h}from"react";function o(t,e){if(null==t)return{};var i,s,n=function(t,e){if(null==t)return{};var i,s,n={},h=Object.keys(t);for(s=0;h.length>s;s++)0>e.indexOf(i=h[s])&&(n[i]=t[i]);return n}(t,e);if(Object.getOwnPropertySymbols){var h=Object.getOwnPropertySymbols(t);for(s=0;h.length>s;s++)0>e.indexOf(i=h[s])&&Object.prototype.propertyIsEnumerable.call(t,i)&&(n[i]=t[i])}return n}var l="undefined"!=typeof window&&void 0!==window.ontouchstart,a=function(){},u=function(t){return Math.sqrt(t.x*t.x+t.y*t.y)};function r(t,e){var i=function(t,e){var i=u(t)*u(e);if(0===i)return 0;var s=function(t,e){return t.x*e.x+t.y*e.y}(t,e)/i;return s>1&&(s=1),Math.acos(s)}(t,e);return function(t,e){return t.x*e.y-e.x*t.y}(t,e)>0&&(i*=-1),180*i}var c=function(t){this.handlers=[],this.el=t};function p(t,e){var i=new c(t);return i.add(e),i}c.prototype.add=function(t){this.handlers.push(t)},c.prototype.del=function(t){t||(this.handlers=[]);for(var e=this.handlers.length;e>=0;e--)this.handlers[e]===t&&this.handlers.splice(e,1)},c.prototype.dispatch=function(){for(var t=arguments.length,e=Array(t),i=0;t>i;i++)e[i]=arguments[i];for(var s=0,n=this.handlers.length;n>s;s++){var h,o=this.handlers[s];null===(h=o.apply)||void 0===h||h.call(o,this.el,e)}};var d=function(t,e){this.element=t,this.start=this.start.bind(this),this.move=this.move.bind(this),this.end=this.end.bind(this),this.cancel=this.cancel.bind(this),this.element.addEventListener(l?"touchstart":"mousedown",this.start),l?(this.element.addEventListener("touchmove",this.move),this.element.addEventListener("touchend",this.end),this.element.addEventListener("touchcancel",this.cancel)):(document.addEventListener("mousemove",this.move),document.addEventListener("mouseup",this.end)),this.preV={x:null,y:null},this.pinchStartLen=null,this.scale=1,this.isDoubleTap=!1,this.rotate=p(this.element,e.onRotate||a),this.touchStart=p(this.element,e.onTouchStart||a),this.touchMove=p(this.element,e.onTouchMove||a),this.touchEnd=p(this.element,e.onTouchEnd||a),this.touchCancel=p(this.element,e.onTouchCancel||a),this.isMoving=!1,this.multipointStart=p(this.element,e.onMultipointStart||a),this.multipointEnd=p(this.element,e.onMultipointEnd||a),this.pinch=p(this.element,e.onPinch||a),this.swipe=p(this.element,e.onSwipe||a),this.doubleTap=p(this.element,e.onDoubleTap||a),this.longTap=p(this.element,e.onLongTap||a),this.singleTap=p(this.element,e.onSingleTap||a),this.pressMove=p(this.element,e.onPressMove||a),this.twoFingerPressMove=p(this.element,e.onTwoFingerPressMove||a),this._cancelAllHandler=this.cancelAll.bind(this),window.addEventListener("scroll",this._cancelAllHandler),this.delta=null,this.last=null,this.now=null,this.tapTimeout=null,this.singleTapTimeout=null,this.longTapTimeout=null,this.swipeTimeout=null,this.x1=this.x2=this.y1=this.y2=null,this.preTapPosition={x:null,y:null}};d.prototype={start:function(t){t.touches||(t.touches=t.touches||[],t.touches[0]={pageX:t.pageX,pageY:t.pageY}),this.isMoving||(this.isMoving=!0),this.now=Date.now(),this.x1=t.touches[0].pageX,this.y1=t.touches[0].pageY,this.delta=this.now-(this.last||this.now),this.touchStart.dispatch(t,this.element),null!==this.preTapPosition.x&&(this.isDoubleTap=this.delta>0&&250>=this.delta&&30>Math.abs(this.preTapPosition.x-this.x1)&&30>Math.abs(this.preTapPosition.y-this.y1),this.isDoubleTap&&clearTimeout(this.singleTapTimeout)),this.preTapPosition.x=this.x1,this.preTapPosition.y=this.y1,this.last=this.now;var e=this.preV;if(t.touches.length>1){this._cancelLongTap(),this._cancelSingleTap();var i={x:t.touches[1].pageX-this.x1,y:t.touches[1].pageY-this.y1};e.x=i.x,e.y=i.y,this.pinchStartLen=u(e),this.multipointStart.dispatch(t,this.element)}this._preventTap=!1,this.longTapTimeout=setTimeout(function(){this.longTap.dispatch(t,this.element),this._preventTap=!0}.bind(this),750)},move:function(t){var e;if(this.isMoving){t.touches||(t.touches=t.touches||[],t.touches[0]={pageX:t.pageX,pageY:t.pageY});var i=this.preV,s=t.touches.length,n=t.touches[0].pageX,h=t.touches[0].pageY;if(this.isDoubleTap=!1,s>1){var o=t.touches[1].pageX,l=t.touches[1].pageY,a={x:t.touches[1].pageX-n,y:t.touches[1].pageY-h};null!==i.x&&(this.pinchStartLen>0&&(t.scale=u(a)/this.pinchStartLen,this.pinch.dispatch(t,this.element)),t.angle=r(a,i),this.rotate.dispatch(t,this.element)),i.x=a.x,i.y=a.y,null!==this.x2&&null!==this.sx2?(t.deltaX=(n-this.x2+o-this.sx2)/2,t.deltaY=(h-this.y2+l-this.sy2)/2):(t.deltaX=0,t.deltaY=0),this.twoFingerPressMove.dispatch(t,this.element),this.sx2=o,this.sy2=l}else{if(null!==this.x2)t.deltaX=n-this.x2,t.deltaY=h-this.y2,(Math.abs(this.x1-this.x2)>10||Math.abs(this.y1-this.y2)>10)&&(this._preventTap=!0);else t.deltaX=0,t.deltaY=0;this.pressMove.dispatch(t,this.element)}null===(e=this.touchMove)||void 0===e||e.dispatch(t,this.element),this._cancelLongTap(),this.x2=n,this.y2=h,s>1&&t.preventDefault()}},end:function(t){var e;if(this.isMoving&&(this.isMoving=!1),!l||t.changedTouches){t.touches||(t.touches=t.touches||[],t.touches[0]={pageX:t.pageX,pageY:t.pageY}),this._cancelLongTap();var i=this;l&&2>t.touches.length&&(this.multipointEnd.dispatch(t,this.element),this.sx2=this.sy2=null),this.x2&&Math.abs(this.x1-this.x2)>30||this.y2&&Math.abs(this.y1-this.y2)>30?(t.direction=this._swipeDirection(this.x1,this.x2,this.y1,this.y2),this.swipeTimeout=setTimeout((function(){i.swipe.dispatch(t,i.element)}),0)):(this.tapTimeout=setTimeout((function(){var e;i.isDoubleTap&&(null===(e=i.doubleTap)||void 0===e||e.dispatch(t,i.element),i.isDoubleTap=!1)}),0),i.isDoubleTap||(i.singleTapTimeout=setTimeout((function(){var e;i._preventTap||(null===(e=i.singleTap)||void 0===e||e.dispatch(t,i.element))}),250))),null===(e=this.touchEnd)||void 0===e||e.dispatch(t,this.element),this.preV.x=0,this.preV.y=0,this.scale=1,this.pinchStartLen=null,this.x1=this.x2=this.y1=this.y2=null}},cancelAll:function(){this._preventTap=!0,clearTimeout(this.singleTapTimeout),clearTimeout(this.longTapTimeout),clearTimeout(this.swipeTimeout)},cancel:function(t){this.cancelAll(),this.touchCancel.dispatch(t,this.element)},_cancelLongTap:function(){clearTimeout(this.longTapTimeout)},_cancelSingleTap:function(){clearTimeout(this.singleTapTimeout)},_swipeDirection:function(t,e,i,s){return Math.abs(i-s)>Math.abs(t-e)?i-s>0?"up":"down":t-e>0?"left":"right"},on:function(t,e){this[t]&&this[t].add(e)},off:function(t,e){this[t]&&this[t].del(e)},destroy:function(){return this.singleTapTimeout&&clearTimeout(this.singleTapTimeout),this.longTapTimeout&&clearTimeout(this.longTapTimeout),this.swipeTimeout&&clearTimeout(this.swipeTimeout),this.element.removeEventListener(l?"touchstart":"mousedown",this.start),l?(this.element.removeEventListener("touchmove",this.move),this.element.removeEventListener("touchend",this.end),this.element.removeEventListener("touchcancel",this.cancel)):(document.removeEventListener("mousemove",this.move),document.removeEventListener("mouseup",this.end)),this.rotate.del(),this.touchStart.del(),this.multipointStart.del(),this.multipointEnd.del(),this.pinch.del(),this.swipe.del(),this.doubleTap.del(),this.longTap.del(),this.singleTap.del(),this.pressMove.del(),this.twoFingerPressMove.del(),this.touchMove.del(),this.touchEnd.del(),this.touchCancel.del(),this.preV={x:null,y:null},this.isMoving=this.pinchStartLen=this.scale=this.isDoubleTap=this.delta=this.last=this.now=this.singleTapTimeout=this.longTapTimeout=this.swipeTimeout=this.x1=this.x2=this.y1=this.y2=this.preTapPosition=this.rotate=this.touchStart=this.multipointStart=this.multipointEnd=this.pinch=this.swipe=this.doubleTap=this.longTap=this.singleTap=this.pressMove=this.touchMove=this.touchEnd=this.touchCancel=this.twoFingerPressMove=null,window.removeEventListener("scroll",this._cancelAllHandler),null}};var m=["children"],T=function(){throw Error("TouchElement: 子元素必须是dom/forwardRef到dom的组件")},v=t((function(t,l){var a=t.children,u=o(t,m),r=e();return i(l,(function(){return r.current})),s((function(){var t=r.current;t instanceof HTMLElement||T();var e=new d(t,u);return function(){var t;null===(t=e.destroy)||void 0===t||t.call(e)}}),[]),n(a)||T(),h(a,{ref:r})}));v.displayName="TouchElement";export default d;export{v as TouchElement}; |
@@ -1,1 +0,1 @@ | ||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("react");function e(t,e){if(null==t)return{};var i,s,n=function(t,e){if(null==t)return{};var i,s,n={},h=Object.keys(t);for(s=0;h.length>s;s++)0>e.indexOf(i=h[s])&&(n[i]=t[i]);return n}(t,e);if(Object.getOwnPropertySymbols){var h=Object.getOwnPropertySymbols(t);for(s=0;h.length>s;s++)0>e.indexOf(i=h[s])&&Object.prototype.propertyIsEnumerable.call(t,i)&&(n[i]=t[i])}return n}var i="undefined"!=typeof window&&void 0!==window.ontouchstart,s=function(){},n=function(t){return Math.sqrt(t.x*t.x+t.y*t.y)};function h(t,e){var i=function(t,e){var i=n(t)*n(e);if(0===i)return 0;var s=function(t,e){return t.x*e.x+t.y*e.y}(t,e)/i;return s>1&&(s=1),Math.acos(s)}(t,e);return function(t,e){return t.x*e.y-e.x*t.y}(t,e)>0&&(i*=-1),180*i}var o=function(t){this.handlers=[],this.el=t};function l(t,e){var i=new o(t);return i.add(e),i}o.prototype.add=function(t){this.handlers.push(t)},o.prototype.del=function(t){t||(this.handlers=[]);for(var e=this.handlers.length;e>=0;e--)this.handlers[e]===t&&this.handlers.splice(e,1)},o.prototype.dispatch=function(){for(var t=arguments.length,e=Array(t),i=0;t>i;i++)e[i]=arguments[i];for(var s=0,n=this.handlers.length;n>s;s++){var h,o=this.handlers[s];null===(h=o.apply)||void 0===h||h.call(o,this.el,e)}};var a=function(t,e){this.element=t,this.start=this.start.bind(this),this.move=this.move.bind(this),this.end=this.end.bind(this),this.cancel=this.cancel.bind(this),this.element.addEventListener(i?"touchstart":"mousedown",this.start),i?(this.element.addEventListener("touchmove",this.move),this.element.addEventListener("touchend",this.end),this.element.addEventListener("touchcancel",this.cancel)):(document.addEventListener("mousemove",this.move),document.addEventListener("mouseup",this.end)),this.preV={x:null,y:null},this.pinchStartLen=null,this.scale=1,this.isDoubleTap=!1,this.rotate=l(this.element,e.onRotate||s),this.touchStart=l(this.element,e.onTouchStart||s),this.touchMove=l(this.element,e.onTouchMove||s),this.touchEnd=l(this.element,e.onTouchEnd||s),this.touchCancel=l(this.element,e.onTouchCancel||s),this.isMoving=!1,this.multipointStart=l(this.element,e.onMultipointStart||s),this.multipointEnd=l(this.element,e.onMultipointEnd||s),this.pinch=l(this.element,e.onPinch||s),this.swipe=l(this.element,e.onSwipe||s),this.doubleTap=l(this.element,e.onDoubleTap||s),this.longTap=l(this.element,e.onLongTap||s),this.singleTap=l(this.element,e.onSingleTap||s),this.pressMove=l(this.element,e.onPressMove||s),this.twoFingerPressMove=l(this.element,e.onTwoFingerPressMove||s),this._cancelAllHandler=this.cancelAll.bind(this),window.addEventListener("scroll",this._cancelAllHandler),this.delta=null,this.last=null,this.now=null,this.tapTimeout=null,this.singleTapTimeout=null,this.longTapTimeout=null,this.swipeTimeout=null,this.x1=this.x2=this.y1=this.y2=null,this.preTapPosition={x:null,y:null}};a.prototype={start:function(t){t.touches||(t.touches=t.touches||[],t.touches[0]={pageX:t.pageX,pageY:t.pageY}),this.isMoving||(this.isMoving=!0),this.now=Date.now(),this.x1=t.touches[0].pageX,this.y1=t.touches[0].pageY,this.delta=this.now-(this.last||this.now),this.touchStart.dispatch(t,this.element),null!==this.preTapPosition.x&&(this.isDoubleTap=this.delta>0&&250>=this.delta&&30>Math.abs(this.preTapPosition.x-this.x1)&&30>Math.abs(this.preTapPosition.y-this.y1),this.isDoubleTap&&clearTimeout(this.singleTapTimeout)),this.preTapPosition.x=this.x1,this.preTapPosition.y=this.y1,this.last=this.now;var e=this.preV;if(t.touches.length>1){this._cancelLongTap(),this._cancelSingleTap();var i={x:t.touches[1].pageX-this.x1,y:t.touches[1].pageY-this.y1};e.x=i.x,e.y=i.y,this.pinchStartLen=n(e),this.multipointStart.dispatch(t,this.element)}this._preventTap=!1,this.longTapTimeout=setTimeout(function(){this.longTap.dispatch(t,this.element),this._preventTap=!0}.bind(this),750)},move:function(t){var e;if(this.isMoving){t.touches||(t.touches=t.touches||[],t.touches[0]={pageX:t.pageX,pageY:t.pageY});var i=this.preV,s=t.touches.length,o=t.touches[0].pageX,l=t.touches[0].pageY;if(this.isDoubleTap=!1,s>1){var a=t.touches[1].pageX,u=t.touches[1].pageY,r={x:t.touches[1].pageX-o,y:t.touches[1].pageY-l};null!==i.x&&(this.pinchStartLen>0&&(t.scale=n(r)/this.pinchStartLen,this.pinch.dispatch(t,this.element)),t.angle=h(r,i),this.rotate.dispatch(t,this.element)),i.x=r.x,i.y=r.y,null!==this.x2&&null!==this.sx2?(t.deltaX=(o-this.x2+a-this.sx2)/2,t.deltaY=(l-this.y2+u-this.sy2)/2):(t.deltaX=0,t.deltaY=0),this.twoFingerPressMove.dispatch(t,this.element),this.sx2=a,this.sy2=u}else{if(null!==this.x2)t.deltaX=o-this.x2,t.deltaY=l-this.y2,(Math.abs(this.x1-this.x2)>10||Math.abs(this.y1-this.y2)>10)&&(this._preventTap=!0);else t.deltaX=0,t.deltaY=0;this.pressMove.dispatch(t,this.element)}null===(e=this.touchMove)||void 0===e||e.dispatch(t,this.element),this._cancelLongTap(),this.x2=o,this.y2=l,s>1&&t.preventDefault()}},end:function(t){var e;if(this.isMoving&&(this.isMoving=!1),!i||t.changedTouches){t.touches||(t.touches=t.touches||[],t.touches[0]={pageX:t.pageX,pageY:t.pageY}),this._cancelLongTap();var s=this;i&&2>t.touches.length&&(this.multipointEnd.dispatch(t,this.element),this.sx2=this.sy2=null),this.x2&&Math.abs(this.x1-this.x2)>30||this.y2&&Math.abs(this.y1-this.y2)>30?(t.direction=this._swipeDirection(this.x1,this.x2,this.y1,this.y2),this.swipeTimeout=setTimeout((function(){s.swipe.dispatch(t,s.element)}),0)):(this.tapTimeout=setTimeout((function(){var e;s.isDoubleTap&&(null===(e=s.doubleTap)||void 0===e||e.dispatch(t,s.element),s.isDoubleTap=!1)}),0),s.isDoubleTap||(s.singleTapTimeout=setTimeout((function(){var e;s._preventTap||(null===(e=s.singleTap)||void 0===e||e.dispatch(t,s.element))}),250))),null===(e=this.touchEnd)||void 0===e||e.dispatch(t,this.element),this.preV.x=0,this.preV.y=0,this.scale=1,this.pinchStartLen=null,this.x1=this.x2=this.y1=this.y2=null}},cancelAll:function(){this._preventTap=!0,clearTimeout(this.singleTapTimeout),clearTimeout(this.longTapTimeout),clearTimeout(this.swipeTimeout)},cancel:function(t){this.cancelAll(),this.touchCancel.dispatch(t,this.element)},_cancelLongTap:function(){clearTimeout(this.longTapTimeout)},_cancelSingleTap:function(){clearTimeout(this.singleTapTimeout)},_swipeDirection:function(t,e,i,s){return Math.abs(i-s)>Math.abs(t-e)?i-s>0?"up":"down":t-e>0?"left":"right"},on:function(t,e){this[t]&&this[t].add(e)},off:function(t,e){this[t]&&this[t].del(e)},destroy:function(){return this.singleTapTimeout&&clearTimeout(this.singleTapTimeout),this.longTapTimeout&&clearTimeout(this.longTapTimeout),this.swipeTimeout&&clearTimeout(this.swipeTimeout),this.element.removeEventListener(i?"touchstart":"mousedown",this.start),i?(this.element.removeEventListener("touchmove",this.move),this.element.removeEventListener("touchend",this.end),this.element.removeEventListener("touchcancel",this.cancel)):(document.removeEventListener("mousemove",this.move),document.removeEventListener("mouseup",this.end)),this.rotate.del(),this.touchStart.del(),this.multipointStart.del(),this.multipointEnd.del(),this.pinch.del(),this.swipe.del(),this.doubleTap.del(),this.longTap.del(),this.singleTap.del(),this.pressMove.del(),this.twoFingerPressMove.del(),this.touchMove.del(),this.touchEnd.del(),this.touchCancel.del(),this.preV={x:null,y:null},this.isMoving=this.pinchStartLen=this.scale=this.isDoubleTap=this.delta=this.last=this.now=this.singleTapTimeout=this.longTapTimeout=this.swipeTimeout=this.x1=this.x2=this.y1=this.y2=this.preTapPosition=this.rotate=this.touchStart=this.multipointStart=this.multipointEnd=this.pinch=this.swipe=this.doubleTap=this.longTap=this.singleTap=this.pressMove=this.touchMove=this.touchEnd=this.touchCancel=this.twoFingerPressMove=null,window.removeEventListener("scroll",this._cancelAllHandler),null}};var u=["children"],r=function(){throw Error("XTouchElement: 子元素必须是dom/forwardRef到dom的组件")},c=t.forwardRef((function(i,s){var n=i.children,h=e(i,u),o=t.useRef();return t.useImperativeHandle(s,(function(){return o.current})),t.useLayoutEffect((function(){var t=o.current;t instanceof HTMLElement||r();var e=new a(t,h);return function(){var t;null===(t=e.destroy)||void 0===t||t.call(e)}}),[]),t.isValidElement(n)||r(),t.cloneElement(n,{ref:o})}));c.displayName="XTouchElement",exports.XTouchElement=c,exports.default=a; | ||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("react");function e(t,e){if(null==t)return{};var i,s,n=function(t,e){if(null==t)return{};var i,s,n={},h=Object.keys(t);for(s=0;h.length>s;s++)0>e.indexOf(i=h[s])&&(n[i]=t[i]);return n}(t,e);if(Object.getOwnPropertySymbols){var h=Object.getOwnPropertySymbols(t);for(s=0;h.length>s;s++)0>e.indexOf(i=h[s])&&Object.prototype.propertyIsEnumerable.call(t,i)&&(n[i]=t[i])}return n}var i="undefined"!=typeof window&&void 0!==window.ontouchstart,s=function(){},n=function(t){return Math.sqrt(t.x*t.x+t.y*t.y)};function h(t,e){var i=function(t,e){var i=n(t)*n(e);if(0===i)return 0;var s=function(t,e){return t.x*e.x+t.y*e.y}(t,e)/i;return s>1&&(s=1),Math.acos(s)}(t,e);return function(t,e){return t.x*e.y-e.x*t.y}(t,e)>0&&(i*=-1),180*i}var o=function(t){this.handlers=[],this.el=t};function l(t,e){var i=new o(t);return i.add(e),i}o.prototype.add=function(t){this.handlers.push(t)},o.prototype.del=function(t){t||(this.handlers=[]);for(var e=this.handlers.length;e>=0;e--)this.handlers[e]===t&&this.handlers.splice(e,1)},o.prototype.dispatch=function(){for(var t=arguments.length,e=Array(t),i=0;t>i;i++)e[i]=arguments[i];for(var s=0,n=this.handlers.length;n>s;s++){var h,o=this.handlers[s];null===(h=o.apply)||void 0===h||h.call(o,this.el,e)}};var a=function(t,e){this.element=t,this.start=this.start.bind(this),this.move=this.move.bind(this),this.end=this.end.bind(this),this.cancel=this.cancel.bind(this),this.element.addEventListener(i?"touchstart":"mousedown",this.start),i?(this.element.addEventListener("touchmove",this.move),this.element.addEventListener("touchend",this.end),this.element.addEventListener("touchcancel",this.cancel)):(document.addEventListener("mousemove",this.move),document.addEventListener("mouseup",this.end)),this.preV={x:null,y:null},this.pinchStartLen=null,this.scale=1,this.isDoubleTap=!1,this.rotate=l(this.element,e.onRotate||s),this.touchStart=l(this.element,e.onTouchStart||s),this.touchMove=l(this.element,e.onTouchMove||s),this.touchEnd=l(this.element,e.onTouchEnd||s),this.touchCancel=l(this.element,e.onTouchCancel||s),this.isMoving=!1,this.multipointStart=l(this.element,e.onMultipointStart||s),this.multipointEnd=l(this.element,e.onMultipointEnd||s),this.pinch=l(this.element,e.onPinch||s),this.swipe=l(this.element,e.onSwipe||s),this.doubleTap=l(this.element,e.onDoubleTap||s),this.longTap=l(this.element,e.onLongTap||s),this.singleTap=l(this.element,e.onSingleTap||s),this.pressMove=l(this.element,e.onPressMove||s),this.twoFingerPressMove=l(this.element,e.onTwoFingerPressMove||s),this._cancelAllHandler=this.cancelAll.bind(this),window.addEventListener("scroll",this._cancelAllHandler),this.delta=null,this.last=null,this.now=null,this.tapTimeout=null,this.singleTapTimeout=null,this.longTapTimeout=null,this.swipeTimeout=null,this.x1=this.x2=this.y1=this.y2=null,this.preTapPosition={x:null,y:null}};a.prototype={start:function(t){t.touches||(t.touches=t.touches||[],t.touches[0]={pageX:t.pageX,pageY:t.pageY}),this.isMoving||(this.isMoving=!0),this.now=Date.now(),this.x1=t.touches[0].pageX,this.y1=t.touches[0].pageY,this.delta=this.now-(this.last||this.now),this.touchStart.dispatch(t,this.element),null!==this.preTapPosition.x&&(this.isDoubleTap=this.delta>0&&250>=this.delta&&30>Math.abs(this.preTapPosition.x-this.x1)&&30>Math.abs(this.preTapPosition.y-this.y1),this.isDoubleTap&&clearTimeout(this.singleTapTimeout)),this.preTapPosition.x=this.x1,this.preTapPosition.y=this.y1,this.last=this.now;var e=this.preV;if(t.touches.length>1){this._cancelLongTap(),this._cancelSingleTap();var i={x:t.touches[1].pageX-this.x1,y:t.touches[1].pageY-this.y1};e.x=i.x,e.y=i.y,this.pinchStartLen=n(e),this.multipointStart.dispatch(t,this.element)}this._preventTap=!1,this.longTapTimeout=setTimeout(function(){this.longTap.dispatch(t,this.element),this._preventTap=!0}.bind(this),750)},move:function(t){var e;if(this.isMoving){t.touches||(t.touches=t.touches||[],t.touches[0]={pageX:t.pageX,pageY:t.pageY});var i=this.preV,s=t.touches.length,o=t.touches[0].pageX,l=t.touches[0].pageY;if(this.isDoubleTap=!1,s>1){var a=t.touches[1].pageX,u=t.touches[1].pageY,r={x:t.touches[1].pageX-o,y:t.touches[1].pageY-l};null!==i.x&&(this.pinchStartLen>0&&(t.scale=n(r)/this.pinchStartLen,this.pinch.dispatch(t,this.element)),t.angle=h(r,i),this.rotate.dispatch(t,this.element)),i.x=r.x,i.y=r.y,null!==this.x2&&null!==this.sx2?(t.deltaX=(o-this.x2+a-this.sx2)/2,t.deltaY=(l-this.y2+u-this.sy2)/2):(t.deltaX=0,t.deltaY=0),this.twoFingerPressMove.dispatch(t,this.element),this.sx2=a,this.sy2=u}else{if(null!==this.x2)t.deltaX=o-this.x2,t.deltaY=l-this.y2,(Math.abs(this.x1-this.x2)>10||Math.abs(this.y1-this.y2)>10)&&(this._preventTap=!0);else t.deltaX=0,t.deltaY=0;this.pressMove.dispatch(t,this.element)}null===(e=this.touchMove)||void 0===e||e.dispatch(t,this.element),this._cancelLongTap(),this.x2=o,this.y2=l,s>1&&t.preventDefault()}},end:function(t){var e;if(this.isMoving&&(this.isMoving=!1),!i||t.changedTouches){t.touches||(t.touches=t.touches||[],t.touches[0]={pageX:t.pageX,pageY:t.pageY}),this._cancelLongTap();var s=this;i&&2>t.touches.length&&(this.multipointEnd.dispatch(t,this.element),this.sx2=this.sy2=null),this.x2&&Math.abs(this.x1-this.x2)>30||this.y2&&Math.abs(this.y1-this.y2)>30?(t.direction=this._swipeDirection(this.x1,this.x2,this.y1,this.y2),this.swipeTimeout=setTimeout((function(){s.swipe.dispatch(t,s.element)}),0)):(this.tapTimeout=setTimeout((function(){var e;s.isDoubleTap&&(null===(e=s.doubleTap)||void 0===e||e.dispatch(t,s.element),s.isDoubleTap=!1)}),0),s.isDoubleTap||(s.singleTapTimeout=setTimeout((function(){var e;s._preventTap||(null===(e=s.singleTap)||void 0===e||e.dispatch(t,s.element))}),250))),null===(e=this.touchEnd)||void 0===e||e.dispatch(t,this.element),this.preV.x=0,this.preV.y=0,this.scale=1,this.pinchStartLen=null,this.x1=this.x2=this.y1=this.y2=null}},cancelAll:function(){this._preventTap=!0,clearTimeout(this.singleTapTimeout),clearTimeout(this.longTapTimeout),clearTimeout(this.swipeTimeout)},cancel:function(t){this.cancelAll(),this.touchCancel.dispatch(t,this.element)},_cancelLongTap:function(){clearTimeout(this.longTapTimeout)},_cancelSingleTap:function(){clearTimeout(this.singleTapTimeout)},_swipeDirection:function(t,e,i,s){return Math.abs(i-s)>Math.abs(t-e)?i-s>0?"up":"down":t-e>0?"left":"right"},on:function(t,e){this[t]&&this[t].add(e)},off:function(t,e){this[t]&&this[t].del(e)},destroy:function(){return this.singleTapTimeout&&clearTimeout(this.singleTapTimeout),this.longTapTimeout&&clearTimeout(this.longTapTimeout),this.swipeTimeout&&clearTimeout(this.swipeTimeout),this.element.removeEventListener(i?"touchstart":"mousedown",this.start),i?(this.element.removeEventListener("touchmove",this.move),this.element.removeEventListener("touchend",this.end),this.element.removeEventListener("touchcancel",this.cancel)):(document.removeEventListener("mousemove",this.move),document.removeEventListener("mouseup",this.end)),this.rotate.del(),this.touchStart.del(),this.multipointStart.del(),this.multipointEnd.del(),this.pinch.del(),this.swipe.del(),this.doubleTap.del(),this.longTap.del(),this.singleTap.del(),this.pressMove.del(),this.twoFingerPressMove.del(),this.touchMove.del(),this.touchEnd.del(),this.touchCancel.del(),this.preV={x:null,y:null},this.isMoving=this.pinchStartLen=this.scale=this.isDoubleTap=this.delta=this.last=this.now=this.singleTapTimeout=this.longTapTimeout=this.swipeTimeout=this.x1=this.x2=this.y1=this.y2=this.preTapPosition=this.rotate=this.touchStart=this.multipointStart=this.multipointEnd=this.pinch=this.swipe=this.doubleTap=this.longTap=this.singleTap=this.pressMove=this.touchMove=this.touchEnd=this.touchCancel=this.twoFingerPressMove=null,window.removeEventListener("scroll",this._cancelAllHandler),null}};var u=["children"],r=function(){throw Error("TouchElement: 子元素必须是dom/forwardRef到dom的组件")},c=t.forwardRef((function(i,s){var n=i.children,h=e(i,u),o=t.useRef();return t.useImperativeHandle(s,(function(){return o.current})),t.useLayoutEffect((function(){var t=o.current;t instanceof HTMLElement||r();var e=new a(t,h);return function(){var t;null===(t=e.destroy)||void 0===t||t.call(e)}}),[]),t.isValidElement(n)||r(),t.cloneElement(n,{ref:o})}));c.displayName="TouchElement",exports.TouchElement=c,exports.default=a; |
{ | ||
"name": "w-touch", | ||
"version": "1.0.0", | ||
"version": "1.0.1", | ||
"description": "鼠标手势操作", | ||
@@ -5,0 +5,0 @@ "keywords": [ |
@@ -1,20 +0,18 @@ | ||
# xtouch | ||
鼠标手势操作 | ||
默认导出: XTouch | ||
默认导出: Touch | ||
```js | ||
import XTouch from 'w-touch'; | ||
import Touch from 'w-touch'; | ||
// 构造对象 | ||
const fg = new XTouch(el,options); | ||
const t = new Touch(el,options); | ||
// 销毁对象 | ||
fg.destroy.(); | ||
t.destroy.(); | ||
``` | ||
React binding (XTouchElement) | ||
React 绑定 (TouchElement) | ||
@@ -25,3 +23,3 @@ ```js | ||
import DemoBlock from './common/DemoBlock'; | ||
import { XTouchElement } from 'w-touch'; | ||
import { TouchElement } from 'w-touch'; | ||
@@ -60,3 +58,3 @@ type Position = { | ||
<AutoCenter> | ||
<XTouchElement | ||
<TouchElement | ||
onSingleTap={() => { | ||
@@ -112,3 +110,3 @@ Toast.show('tap'); | ||
/> | ||
</XTouchElement> | ||
</TouchElement> | ||
</AutoCenter> | ||
@@ -115,0 +113,0 @@ </DemoBlock> |
@@ -1,3 +0,3 @@ | ||
export { default as XTouchElement } from './XTouchElement'; | ||
export { default } from './XTouch'; | ||
export type { Options } from './XTouch'; | ||
export { default as TouchElement } from './TouchElement'; | ||
export { default } from './Touch'; | ||
export type { Options } from './Touch'; |
@@ -52,3 +52,3 @@ /** 鼠标/触屏事件 */ | ||
/** 手势操作 */ | ||
declare const XTouch: (el: Element, option: Options) => void; | ||
export default XTouch; | ||
declare const Touch: (el: Element, option: Options) => void; | ||
export default Touch; |
@@ -6,36 +6,46 @@ /** 鼠标/触屏事件 */ | ||
export declare type Options = Partial<{ | ||
onTouchStart: (evt: TouchEvent | MouseEvent) => void; | ||
onTouchMove: (evt: XTouchEvent) => void; | ||
onTouchEnd: (evt: XTouchEvent) => void; | ||
onTouchCancel: (evt: XTouchEvent) => void; | ||
onMultipointStart: (evt: XTouchEvent) => void; | ||
onMultipointEnd: (evt: XTouchEvent) => void; | ||
/** 点两次 */ | ||
onDoubleTap: () => void; | ||
/** 长按 */ | ||
onLongTap: () => void; | ||
/** 按一次 */ | ||
onSingleTap: () => void; | ||
/** 旋转, 单位:deg */ | ||
onRotate: (evt: XTouchEvent & { | ||
angle: number; | ||
}) => void; | ||
/** 缩放 */ | ||
onPinch: (evt: XTouchEvent & { | ||
scale: number; | ||
}) => void; | ||
/** 单指滑动 */ | ||
onPressMove: (evt: XTouchEvent & { | ||
deltaX: number; | ||
deltaY: number; | ||
}) => void; | ||
/** 左右滑动 */ | ||
onSwipe: (evt: XTouchEvent & { | ||
direction: 'left' | 'right' | 'up' | 'down'; | ||
}) => void; | ||
/** 双指滑动 */ | ||
onTwoFingerPressMove: (evt: XTouchEvent & { | ||
deltaX: number; | ||
deltaY: number; | ||
}) => void; | ||
onTouchStart: (evt: TouchEvent | MouseEvent) => void; | ||
onTouchMove: (evt: XTouchEvent) => void; | ||
onTouchEnd: (evt: XTouchEvent) => void; | ||
onTouchCancel: (evt: XTouchEvent) => void; | ||
onMultipointStart: (evt: XTouchEvent) => void; | ||
onMultipointEnd: (evt: XTouchEvent) => void; | ||
/** 点两次 */ | ||
onDoubleTap: () => void; | ||
/** 长按 */ | ||
onLongTap: () => void; | ||
/** 按一次 */ | ||
onSingleTap: () => void; | ||
/** 旋转, 单位:deg */ | ||
onRotate: ( | ||
evt: XTouchEvent & { | ||
angle: number; | ||
} | ||
) => void; | ||
/** 缩放 */ | ||
onPinch: ( | ||
evt: XTouchEvent & { | ||
scale: number; | ||
} | ||
) => void; | ||
/** 单指滑动 */ | ||
onPressMove: ( | ||
evt: XTouchEvent & { | ||
deltaX: number; | ||
deltaY: number; | ||
} | ||
) => void; | ||
/** 左右滑动 */ | ||
onSwipe: ( | ||
evt: XTouchEvent & { | ||
direction: 'left' | 'right' | 'up' | 'down'; | ||
} | ||
) => void; | ||
/** 双指滑动 */ | ||
onTwoFingerPressMove: ( | ||
evt: XTouchEvent & { | ||
deltaX: number; | ||
deltaY: number; | ||
} | ||
) => void; | ||
}>; | ||
@@ -42,0 +52,0 @@ /** 手势操作 */ |
import * as React from 'react'; | ||
/** 给子元素添加手势操作 */ | ||
declare const XTouchElement: React.ForwardRefExoticComponent<{ | ||
declare const XTouchElement: React.ForwardRefExoticComponent< | ||
{ | ||
/** 手势操作元素,如果是组件,需要forwardRef到dom */ | ||
children: React.ReactElement; | ||
} & Partial<{ | ||
} & Partial<{ | ||
onTouchStart: (evt: TouchEvent | MouseEvent) => void; | ||
onTouchMove: (evt: import("./XTouch").XTouchEvent) => void; | ||
onTouchEnd: (evt: import("./XTouch").XTouchEvent) => void; | ||
onTouchCancel: (evt: import("./XTouch").XTouchEvent) => void; | ||
onMultipointStart: (evt: import("./XTouch").XTouchEvent) => void; | ||
onMultipointEnd: (evt: import("./XTouch").XTouchEvent) => void; | ||
onTouchMove: (evt: import('./XTouch').XTouchEvent) => void; | ||
onTouchEnd: (evt: import('./XTouch').XTouchEvent) => void; | ||
onTouchCancel: (evt: import('./XTouch').XTouchEvent) => void; | ||
onMultipointStart: (evt: import('./XTouch').XTouchEvent) => void; | ||
onMultipointEnd: (evt: import('./XTouch').XTouchEvent) => void; | ||
onDoubleTap: () => void; | ||
onLongTap: () => void; | ||
onSingleTap: () => void; | ||
onRotate: (evt: import("./XTouch").XTouchEvent & { | ||
onRotate: ( | ||
evt: import('./XTouch').XTouchEvent & { | ||
angle: number; | ||
}) => void; | ||
onPinch: (evt: import("./XTouch").XTouchEvent & { | ||
} | ||
) => void; | ||
onPinch: ( | ||
evt: import('./XTouch').XTouchEvent & { | ||
scale: number; | ||
}) => void; | ||
onPressMove: (evt: import("./XTouch").XTouchEvent & { | ||
} | ||
) => void; | ||
onPressMove: ( | ||
evt: import('./XTouch').XTouchEvent & { | ||
deltaX: number; | ||
deltaY: number; | ||
}) => void; | ||
onSwipe: (evt: import("./XTouch").XTouchEvent & { | ||
direction: "left" | "right" | "up" | "down"; | ||
}) => void; | ||
onTwoFingerPressMove: (evt: import("./XTouch").XTouchEvent & { | ||
} | ||
) => void; | ||
onSwipe: ( | ||
evt: import('./XTouch').XTouchEvent & { | ||
direction: 'left' | 'right' | 'up' | 'down'; | ||
} | ||
) => void; | ||
onTwoFingerPressMove: ( | ||
evt: import('./XTouch').XTouchEvent & { | ||
deltaX: number; | ||
deltaY: number; | ||
}) => void; | ||
}> & React.RefAttributes<HTMLElement>>; | ||
} | ||
) => void; | ||
}> & | ||
React.RefAttributes<HTMLElement> | ||
>; | ||
export default XTouchElement; |
27235
269
116