Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
libjs-angularjs / usr / share / javascript / angular.js / angular-touch.min.js
Size: Mime:
(function(window,angular){"use strict";var ngTouch=angular.module("ngTouch",[]);ngTouch.info({angularVersion:"1.8.2"});function nodeName_(element){return angular.$$lowercase(element.nodeName||element[0]&&element[0].nodeName)}ngTouch.factory("$swipe",[function(){var MOVE_BUFFER_RADIUS=10;var POINTER_EVENTS={mouse:{start:"mousedown",move:"mousemove",end:"mouseup"},touch:{start:"touchstart",move:"touchmove",end:"touchend",cancel:"touchcancel"},pointer:{start:"pointerdown",move:"pointermove",end:"pointerup",cancel:"pointercancel"}};function getCoordinates(event){var originalEvent=event.originalEvent||event;var touches=originalEvent.touches&&originalEvent.touches.length?originalEvent.touches:[originalEvent];var e=originalEvent.changedTouches&&originalEvent.changedTouches[0]||touches[0];return{x:e.clientX,y:e.clientY}}function getEvents(pointerTypes,eventType){var res=[];angular.forEach(pointerTypes,function(pointerType){var eventName=POINTER_EVENTS[pointerType][eventType];if(eventName){res.push(eventName)}});return res.join(" ")}return{bind:function(element,eventHandlers,pointerTypes){var totalX,totalY;var startCoords;var lastPos;var active=false;pointerTypes=pointerTypes||["mouse","touch","pointer"];element.on(getEvents(pointerTypes,"start"),function(event){startCoords=getCoordinates(event);active=true;totalX=0;totalY=0;lastPos=startCoords;if(eventHandlers["start"]){eventHandlers["start"](startCoords,event)}});var events=getEvents(pointerTypes,"cancel");if(events){element.on(events,function(event){active=false;if(eventHandlers["cancel"]){eventHandlers["cancel"](event)}})}element.on(getEvents(pointerTypes,"move"),function(event){if(!active)return;if(!startCoords)return;var coords=getCoordinates(event);totalX+=Math.abs(coords.x-lastPos.x);totalY+=Math.abs(coords.y-lastPos.y);lastPos=coords;if(totalX<MOVE_BUFFER_RADIUS&&totalY<MOVE_BUFFER_RADIUS){return}if(totalY>totalX){active=false;if(eventHandlers["cancel"]){eventHandlers["cancel"](event)}return}else{event.preventDefault();if(eventHandlers["move"]){eventHandlers["move"](coords,event)}}});element.on(getEvents(pointerTypes,"end"),function(event){if(!active)return;active=false;if(eventHandlers["end"]){eventHandlers["end"](getCoordinates(event),event)}})}}}]);function makeSwipeDirective(directiveName,direction,eventName){ngTouch.directive(directiveName,["$parse","$swipe",function($parse,$swipe){var MAX_VERTICAL_DISTANCE=75;var MAX_VERTICAL_RATIO=.3;var MIN_HORIZONTAL_DISTANCE=30;return function(scope,element,attr){var swipeHandler=$parse(attr[directiveName]);var startCoords,valid;function validSwipe(coords){if(!startCoords)return false;var deltaY=Math.abs(coords.y-startCoords.y);var deltaX=(coords.x-startCoords.x)*direction;return valid&&deltaY<MAX_VERTICAL_DISTANCE&&deltaX>0&&deltaX>MIN_HORIZONTAL_DISTANCE&&deltaY/deltaX<MAX_VERTICAL_RATIO}var pointerTypes=["touch"];if(!angular.isDefined(attr["ngSwipeDisableMouse"])){pointerTypes.push("mouse")}$swipe.bind(element,{start:function(coords,event){startCoords=coords;valid=true},cancel:function(event){valid=false},end:function(coords,event){if(validSwipe(coords)){scope.$apply(function(){element.triggerHandler(eventName);swipeHandler(scope,{$event:event})})}}},pointerTypes)}}])}makeSwipeDirective("ngSwipeLeft",-1,"swipeleft");makeSwipeDirective("ngSwipeRight",1,"swiperight")})(window,window.angular);