forked from soyjavi/bower-quojs
-
Notifications
You must be signed in to change notification settings - Fork 0
/
quo.gestures.js
4 lines (4 loc) · 5.33 KB
/
quo.gestures.js
1
2
3
4
/* QuoJS v3.0.1 - 2014/1/24
http://quojs.tapquo.com
Copyright (c) 2014 Javi Jimenez Villar (@soyjavi) - Licensed MIT */
(function(){"use strict";Quo.Gestures=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;return n=!1,j={},f=null,l=null,a(document).ready(function(){var b;return b=a(document.body),b.bind("touchstart",m),b.bind("touchmove",k),b.bind("touchend",g),b.bind("touchcancel",e)}),b=function(a){return j[a.name]=a.handler,d(a.events)},c=function(b,c,d){return a(b).trigger(c,d,l)},m=function(a){return n=!0,l=a||event,f=h(a),i("start",a.target,f)},k=function(a){return n?(l=a||event,f=h(a),i("move",a.target,f)):void 0},g=function(a){return n?(l=a||event,i("end",a.target,f),n=!1):void 0},e=function(){return n=!1,i("cancel")},d=function(b){return b.forEach(function(b){return a.fn[b]=function(c){return a(document.body).delegate(this.selector,b,c)}}),this},i=function(a,b,c){var d,e,f;f=[];for(e in j)d=j[e],d[a]&&f.push(d[a].call(d,b,c));return f},h=function(b){var c,d;return d=a.isMobile()?b.touches:[b],function(){var a,b,e;for(e=[],a=0,b=d.length;b>a;a++)c=d[a],e.push({x:c.pageX,y:c.pageY});return e}()},{add:b,trigger:c}}(Quo)}).call(this),function(){"use strict";Quo.Gestures.add({name:"basic",events:["tap","hold","singleTap","doubleTap","touch"],handler:function(a){var b,c,d,e,f,g,h,i,j,k,l,m;return c=15,b={TAP:250,DOUBLE_TAP:400,HOLD:400},h=null,j=null,m=!0,l=null,k=null,i=null,g=function(c,e){return 1===e.length?(k={time:new Date,x:e[0].x,y:e[0].y},l=c,h=setTimeout(function(){return a.trigger(c,"hold",e[0])},b.HOLD)):d()},f=function(a,b){var e,f;return null!==k&&(e=b[0].x-k.x,f=b[0].y-k.y,e>c||f>c||b.length>1)?d():void 0},e=function(c,d){var e;return a.trigger(c,"touch",d[0]),k?(clearTimeout(h),e=new Date,e-k.time<b.TAP?e-i<b.DOUBLE_TAP?(clearTimeout(j),a.trigger(c,"doubleTap",d[0]),i=null):(i=e,a.trigger(c,"tap",d[0]),j=setTimeout(function(){return a.trigger(c,"singleTap",d[0])},b.DOUBLE_TAP+5)):void 0):void 0},d=function(){return k=null,m=!1,clearTimeout(h),clearTimeout(j)},{start:g,move:f,end:e,cancel:d}}(Quo.Gestures)})}.call(this),function(){"use strict";Quo.Gestures.add({name:"drag",events:["drag","dragging"],handler:function(a){var b,c,d,e,f,g,h,i,j,k,l;return b=20,l=null,j=null,k=null,i=null,e=function(a,b){return b.length>=2?(l=a,j=b.length,k=f(b)):void 0},d=function(a,b){var c;return b.length===j?(c=g(b),i={touches:b,delta:c},h(!0)):void 0},c=function(){return k&&i?(h(!1),j=null,k=null,i=null):void 0},g=function(a){var b;return b=f(a),{x:b.x-k.x,y:b.y-k.y}},f=function(a){var b,c,d,e,f;for(c=0,d=0,e=0,f=a.length;f>e;e++)b=a[e],c+=parseInt(b.x),d+=parseInt(b.y);return{x:c/a.length,y:d/a.length}},h=function(c){return c?a.trigger(l,"dragging",i):Math.abs(i.delta.x)>b||Math.abs(i.delta.y)>b?a.trigger(l,"drag",i):void 0},{start:e,move:d,end:c}}(Quo.Gestures)})}.call(this),function(){"use strict";Quo.Gestures.add({name:"pinch",events:["pinch","pinching","pinchIn","pinchOut"],handler:function(a){var b,c,d,e,f,g,h,i,j;return b=20,j=null,i=null,h=null,e=function(a,b){return 2===b.length?(j=a,i=g(b[0],b[1])):void 0},d=function(a,b){var c;return i&&2===b.length?(c=g(b[0],b[1]),h={touches:b,delta:c-i},f(!0)):void 0},c=function(){return i&&h?(f(!1),i=null,h=null):void 0},g=function(a,b){return Math.sqrt((b.x-a.x)*(b.x-a.x)+(b.y-a.y)*(b.y-a.y))},f=function(c){var d;return c?a.trigger(j,"pinching",h):Math.abs(h.delta)>b?(a.trigger(j,"pinch",h),d=h.delta>0?"pinchOut":"pinchIn",a.trigger(j,d,h)):void 0},{start:e,move:d,end:c}}(Quo.Gestures)})}.call(this),function(){"use strict";Quo.Gestures.add({name:"rotation",events:["rotate","rotating","rotateLeft","rotateRight"],handler:function(a){var b,c,d,e,f,g,h,i,j,k,l,m;return b=5,c=20,m=null,i=0,l=null,h=null,f=function(a,b){return 2===b.length?(m=a,i=0,l=j(b[0],b[1])):void 0},e=function(a,b){var d;return l&&2===b.length?(d=j(b[0],b[1])-l,h&&Math.abs(h.delta-d)>c&&(d+=360*k(h.delta)),Math.abs(d)>360&&(i++,d-=360*k(h.delta)),h={touches:b,delta:d,rotationsCount:i},g(!0)):void 0},d=function(){return l&&h?(g(!1),m=null,i=0,l=null,h=null,l=null):void 0},k=function(a){return 0>a?-1:1},j=function(a,b){var c;return c=Math.atan2(a.y-b.y,a.x-b.x),180*(0>c?c+2*Math.PI:c)/Math.PI},g=function(c){var d;return c?a.trigger(m,"rotating",h):Math.abs(h.delta)>b?(a.trigger(m,"rotate",h),d=h.delta>0?"rotateRight":"rotateLeft",a.trigger(m,d,h)):void 0},{start:f,move:e,end:d}}(Quo.Gestures)})}.call(this),function(){"use strict";Quo.Gestures.add({name:"swipe",events:["swipe","swipeLeft","swipeRight","swipeUp","swipeDown","swiping","swipingHorizontal","swipingVertical"],handler:function(a){var b,c,d,e,f,g,h,i,j,k;return b=20,k=null,i=null,j=null,h=null,e=function(a,b){return 1===b.length?(k=a,i=b[0],h=null):void 0},d=function(a,b){var c,d;return 1===b.length?(c={x:b[0].x-i.x,y:b[0].y-i.y},d=null===h,h={x:b[0].x,y:b[0].y,delta:c},f(!0,d)):h=null},c=function(){return h?(f(!1),h=null):void 0},f=function(c,d){var e,f,i,l,m;if(null==d&&(d=!1),c)return d&&(j=g(h.delta.x,h.delta.y)),null!==j&&a.trigger(k,"swiping"+j,h),a.trigger(k,"swiping",h);if(f=[],Math.abs(h.delta.y)>b&&f.push(h.delta.y<0?"Up":"Down"),Math.abs(h.delta.x)>b&&f.push(h.delta.x<0?"Left":"Right"),f.length){for(a.trigger(k,"swipe",h),m=[],i=0,l=f.length;l>i;i++)e=f[i],m.push(a.trigger(k,"swipe"+e,h));return m}},g=function(a,b){var c;return c=null,Math.round(Math.abs(a/b))>=2?c="Horizontal":Math.round(Math.abs(b/a))>=2&&(c="Vertical"),c},{start:e,move:d,end:c}}(Quo.Gestures)})}.call(this);