forked from angular/code.angularjs.org
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathangular-mobile.min.js
9 lines (9 loc) · 1.74 KB
/
angular-mobile.min.js
1
2
3
4
5
6
7
8
9
/*
AngularJS v1.1.4
(c) 2010-2012 Google, Inc. http://angularjs.org
License: MIT
*/
(function(r,h){'use strict';var d=h.module("ngMobile",[]);d.config(["$provide",function(j){j.decorator("ngClickDirective",["$delegate",function(g){g.shift();return g}])}]);d.directive("ngClick",["$parse","$timeout","$rootElement",function(j,g,d){function k(a,b,c){for(var f=0;f<a.length;f+=2)if(Math.abs(a[f]-b)<m&&Math.abs(a[f+1]-c)<m)return a.splice(f,f+2),!0;return!1}function h(a){if(!(Date.now()-n>o)){var b=a.touches&&a.touches.length?a.touches:[a],e=b[0].clientX,b=b[0].clientY;!(e<1&&b<1)&&!k(c,
e,b)&&(a.stopPropagation(),a.preventDefault())}}function p(a){var a=a.touches&&a.touches.length?a.touches:[a],b=a[0].clientX,e=a[0].clientY;c.push(b,e);g(function(){for(var a=0;a<c.length;a+=2)if(c[a]==b&&c[a+1]==e){c.splice(a,a+2);break}},o,!1)}function q(a,b){c||(d[0].addEventListener("click",h,!0),d[0].addEventListener("touchstart",p,!0),c=[]);n=Date.now();k(c,a,b)}var o=2500,m=25,n,c;return function(a,b,c){var f=j(c.ngClick),d=!1,i,g,h,k;b.bind("touchstart",function(a){d=!0;i=a.target?a.target:
a.srcElement;if(i.nodeType==3)i=i.parentNode;g=Date.now();a=a.touches&&a.touches.length?a.touches:[a];a=a[0].originalEvent||a[0];h=a.clientX;k=a.clientY});b.bind("touchmove",function(){d=!1});b.bind("touchcancel",function(){d=!1});b.bind("touchend",function(b){var c=Date.now()-g,e=b.changedTouches&&b.changedTouches.length?b.changedTouches:b.touches&&b.touches.length?b.touches:[b],l=e[0].originalEvent||e[0],e=l.clientX,l=l.clientY,j=Math.sqrt(Math.pow(e-h,2)+Math.pow(l-k,2));d&&c<750&&j<12&&(q(e,l),
i&&i.blur(),a.$apply(function(){f(a,{$event:b})}));d=!1});b.onclick=function(){};b.bind("click",function(b){a.$apply(function(){f(a,{$event:b})})})}}])})(window,window.angular);