@progress/kendo-ui
Version:
This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.
3 lines (2 loc) • 2.17 kB
JavaScript
!function(e){"function"==typeof define&&define.amd?define(["kendo.core.min","kendo.userevents.min"],e):e()}((function(){var e,t,n,i;window.kendo.jQuery,e=window.kendo,t=e.ui.Widget,n=Math.abs,i=t.extend({init:function(n,i){var a=this;function r(e){return function(t){a._triggerTouch(e,t)}}function o(e){return function(t){a.trigger(e,{touches:t.touches,distance:t.distance,center:t.center,event:t.event})}}t.fn.init.call(a,n,i),i=a.options,n=a.element,a.wrapper=n,a.events=new e.UserEvents(n,{filter:i.filter,surface:i.surface,minHold:i.minHold,multiTouch:i.multiTouch,allowSelection:!0,fastTap:i.fastTap,press:r("touchstart"),hold:r("hold"),tap:a._tap.bind(a),gesturestart:o("gesturestart"),gesturechange:o("gesturechange"),gestureend:o("gestureend")}),i.enableSwipe?(a.events.bind("start",a._swipestart.bind(a)),a.events.bind("move",a._swipemove.bind(a))):(a.events.bind("start",a._dragstart.bind(a)),a.events.bind("move",r("drag")),a.events.bind("end",r("dragend"))),e.notify(a)},events:["touchstart","dragstart","drag","dragend","tap","doubletap","hold","swipe","gesturestart","gesturechange","gestureend"],options:{name:"Touch",surface:null,global:!1,fastTap:!1,filter:null,multiTouch:!1,enableSwipe:!1,minXDelta:30,maxYDelta:20,maxDuration:1e3,minHold:800,doubleTapTimeout:800},cancel:function(){this.events.cancel()},destroy:function(){t.fn.destroy.call(this),this.events.destroy()},_triggerTouch:function(e,t){this.trigger(e,{touch:t.touch,event:t.event})&&t.preventDefault()},_tap:function(t){var n=this,i=n.lastTap,a=t.touch;i&&a.endTime-i.endTime<n.options.doubleTapTimeout&&e.touchDelta(a,i).distance<20?(n._triggerTouch("doubletap",t),n.lastTap=null):(n._triggerTouch("tap",t),n.lastTap=a)},_dragstart:function(e){this._triggerTouch("dragstart",e)},_swipestart:function(e){2*n(e.x.velocity)>=n(e.y.velocity)&&e.sender.capture()},_swipemove:function(e){var t=this.options,i=e.touch,a=e.event.timeStamp-i.startTime,r=i.x.initialDelta>0?"right":"left";n(i.x.initialDelta)>=t.minXDelta&&n(i.y.initialDelta)<t.maxYDelta&&a<t.maxDuration&&(this.trigger("swipe",{direction:r,touch:e.touch}),i.cancel())}}),e.ui.plugin(i)}));
//# sourceMappingURL=kendo.touch.min.js.map