@progress/kendo-ui
Version:
This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.
1 lines • 2.91 kB
JavaScript
module.exports=function(n){var i={};function r(e){if(i[e])return i[e].exports;var t=i[e]={exports:{},id:e,loaded:!1};return n[e].call(t.exports,t,t.exports,r),t.loaded=!0,t.exports}return r.m=n,r.c=i,r.p="",r(0)}({0:function(e,t,n){e.exports=n(1501)},3:function(e,t){e.exports=function(){throw Error("define cannot be used indirect")}},1051:function(e,t){e.exports=require("./kendo.core")},1113:function(e,t){e.exports=require("./kendo.userevents")},1501:function(e,t,n){var i;n(3),n=[n(1051),n(1113)],void 0===(t="function"==typeof(i=function(){var e={id:"touch",name:"Touch",category:"mobile",description:"The kendo Touch widget provides a cross-platform compatible API for handling user-initiated touch events, multi-touch gestures and event sequences (drag, swipe, etc.). ",depends:["core","userevents"]},t=window.kendo.jQuery,n=void 0,o=window.kendo,a=o.ui.Widget,s=Math.abs,r=20,i=a.extend({init:function(e,t){var n=this;a.fn.init.call(n,e,t);t=n.options;e=n.element;n.wrapper=e;function i(t){return function(e){n._triggerTouch(t,e)}}function r(t){return function(e){n.trigger(t,{touches:e.touches,distance:e.distance,center:e.center,event:e.event})}}n.events=new o.UserEvents(e,{filter:t.filter,surface:t.surface,minHold:t.minHold,multiTouch:t.multiTouch,allowSelection:true,fastTap:t.fastTap,press:i("touchstart"),hold:i("hold"),tap:n._tap.bind(n),gesturestart:r("gesturestart"),gesturechange:r("gesturechange"),gestureend:r("gestureend")});if(t.enableSwipe){n.events.bind("start",n._swipestart.bind(n));n.events.bind("move",n._swipemove.bind(n))}else{n.events.bind("start",n._dragstart.bind(n));n.events.bind("move",i("drag"));n.events.bind("end",i("dragend"))}o.notify(n)},events:["touchstart","dragstart","drag","dragend","tap","doubletap","hold","swipe","gesturestart","gesturechange","gestureend"],options:{name:"Touch",surface:null,global:false,fastTap:false,filter:null,multiTouch:false,enableSwipe:false,minXDelta:30,maxYDelta:20,maxDuration:1e3,minHold:800,doubleTapTimeout:800},cancel:function(){this.events.cancel()},destroy:function(){a.fn.destroy.call(this);this.events.destroy()},_triggerTouch:function(e,t){if(this.trigger(e,{touch:t.touch,event:t.event}))t.preventDefault()},_tap:function(e){var t=this,n=t.lastTap,i=e.touch;if(n&&i.endTime-n.endTime<t.options.doubleTapTimeout&&o.touchDelta(i,n).distance<r){t._triggerTouch("doubletap",e);t.lastTap=null}else{t._triggerTouch("tap",e);t.lastTap=i}},_dragstart:function(e){this._triggerTouch("dragstart",e)},_swipestart:function(e){if(s(e.x.velocity)*2>=s(e.y.velocity))e.sender.capture()},_swipemove:function(e){var t=this,n=t.options,i=e.touch,r=e.event.timeStamp-i.startTime,o=i.x.initialDelta>0?"right":"left";if(s(i.x.initialDelta)>=n.minXDelta&&s(i.y.initialDelta)<n.maxYDelta&&r<n.maxDuration){t.trigger("swipe",{direction:o,touch:e.touch});i.cancel()}}});return o.ui.plugin(i),window.kendo})?i.apply(t,n):i)||(e.exports=t)}});