Files
cdnjs/ajax/libs/angular.js/1.2.2/angular-touch.min.js
T
Pete Cooper e429b95643 Updating angular.js to 1.2.9 + back fill
Sources: http://code.angularjs.org/*

Added missing versions, fixed some files reporting as min’d but
weren’t, the sneaky varmints.

Addresses https://github.com/cdnjs/cdnjs/issues/1188 - I think. Can be
closed if it does.
2014-01-23 22:01:44 +00:00

1 line
3.3 KiB
JavaScript
Executable File

(function(c,a,e){var b=a.module("ngTouch",[]);b.factory("$swipe",[function(){var g=10;function f(h){var j=h.touches&&h.touches.length?h.touches:[h];var i=(h.changedTouches&&h.changedTouches[0])||(h.originalEvent&&h.originalEvent.changedTouches&&h.originalEvent.changedTouches[0])||j[0].originalEvent||j[0];return{x:i.clientX,y:i.clientY}}return{bind:function(h,m){var n,l;var j;var i;var k=false;h.on("touchstart mousedown",function(o){j=f(o);k=true;n=0;l=0;i=j;m.start&&m.start(j,o)});h.on("touchcancel",function(o){k=false;m.cancel&&m.cancel(o)});h.on("touchmove mousemove",function(o){if(!k){return}if(!j){return}var p=f(o);n+=Math.abs(p.x-i.x);l+=Math.abs(p.y-i.y);i=p;if(n<g&&l<g){return}if(l>n){k=false;m.cancel&&m.cancel(o);return}else{o.preventDefault();m.move&&m.move(p,o)}});h.on("touchend mouseup",function(o){if(!k){return}k=false;m.end&&m.end(f(o),o)})}}}]);b.config(["$provide",function(f){f.decorator("ngClickDirective",["$delegate",function(g){g.shift();return g}])}]);b.directive("ngClick",["$parse","$timeout","$rootElement",function(l,j,t){var r=750;var q=12;var m=2500;var p=25;var i="ng-click-active";var o;var h;function f(v,x,u,w){return Math.abs(v-u)<p&&Math.abs(x-w)<p}function k(z,u,w){for(var v=0;v<z.length;v+=2){if(f(z[v],z[v+1],u,w)){z.splice(v,v+2);return true}}return false}function s(v){if(Date.now()-o>m){return}var w=v.touches&&v.touches.length?v.touches:[v];var u=w[0].clientX;var z=w[0].clientY;if(u<1&&z<1){return}if(k(h,u,z)){return}v.stopPropagation();v.preventDefault();v.target&&v.target.blur()}function n(v){var w=v.touches&&v.touches.length?v.touches:[v];var u=w[0].clientX;var z=w[0].clientY;h.push(u,z);j(function(){for(var x=0;x<h.length;x+=2){if(h[x]==u&&h[x+1]==z){h.splice(x,x+2);return}}},m,false)}function g(u,v){if(!h){t[0].addEventListener("click",s,true);t[0].addEventListener("touchstart",n,true);h=[]}o=Date.now();k(h,u,v)}return function(D,y,A){var B=l(A.ngClick),C=false,z,w,v,u;function x(){C=false;y.removeClass(i)}y.on("touchstart",function(E){C=true;z=E.target?E.target:E.srcElement;if(z.nodeType==3){z=z.parentNode}y.addClass(i);w=Date.now();var G=E.touches&&E.touches.length?E.touches:[E];var F=G[0].originalEvent||G[0];v=F.clientX;u=F.clientY});y.on("touchmove",function(E){x()});y.on("touchcancel",function(E){x()});y.on("touchend",function(F){var I=Date.now()-w;var H=(F.changedTouches&&F.changedTouches.length)?F.changedTouches:((F.touches&&F.touches.length)?F.touches:[F]);var G=H[0].originalEvent||H[0];var E=G.clientX;var K=G.clientY;var J=Math.sqrt(Math.pow(E-v,2)+Math.pow(K-u,2));if(C&&I<r&&J<q){g(E,K);if(z){z.blur()}if(!a.isDefined(A.disabled)||A.disabled===false){y.triggerHandler("click",[F])}}x()});y.onclick=function(E){};y.on("click",function(E,F){D.$apply(function(){B(D,{$event:(F||E)})})});y.on("mousedown",function(E){y.addClass(i)});y.on("mousemove mouseup",function(E){y.removeClass(i)})}}]);function d(h,g,f){b.directive(h,["$parse","$swipe",function(k,m){var l=75;var j=0.3;var i=30;return function(p,o,n){var s=k(n[h]);var r,q;function t(w){if(!r){return false}var u=Math.abs(w.y-r.y);var v=(w.x-r.x)*g;return q&&u<l&&v>0&&v>i&&u/v<j}m.bind(o,{start:function(v,u){r=v;q=true},cancel:function(u){q=false},end:function(v,u){if(t(v)){p.$apply(function(){o.triggerHandler(f);s(p,{$event:u})})}}})}}])}d("ngSwipeLeft",-1,"swipeleft");d("ngSwipeRight",1,"swiperight")})(window,window.angular);