@progress/kendo-ui
Version:
This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.
1 lines • 8.02 kB
JavaScript
module.exports=function(i){var n={};function o(e){if(n[e])return n[e].exports;var t=n[e]={exports:{},id:e,loaded:!1};return i[e].call(t.exports,t,t.exports,o),t.loaded=!0,t.exports}return o.m=i,o.c=n,o.p="",o(0)}({0:function(e,t,i){e.exports=i(1517)},3:function(e,t){e.exports=function(){throw Error("define cannot be used indirect")}},1051:function(e,t){e.exports=require("./kendo.core")},1517:function(e,t,i){var n;i(3),i=[i(1051)],void 0===(t="function"==typeof(n=function(){var e={id:"userevents",name:"User Events",category:"framework",depends:["core"],hidden:true},u=window.kendo.jQuery,t=void 0,c=window.kendo,l=c.support,i=c.Class,_=c.Observable,r=Date.now,h=u.extend,n=l.mobileOS,s=n&&n.android,m=800,o=300,T=l.browser.msie?5:0,y="press",x="hold",k="select",E="start",p="move",d="end",w="cancel",f="tap",D="doubleTap",M="release",b="gesturestart",A="gesturechange",C="gestureend",I="gesturetap",a={api:0,touch:0,mouse:9,pointer:9},S=!l.touch||l.mouseAndTouchPresent;function P(e,t){var i=e.x.location,n=e.y.location,o=t.x.location,r=t.y.location,s=i-o,a=n-r;return{center:{x:(i+o)/2,y:(n+r)/2},distance:Math.sqrt(s*s+a*a)}}function v(e){var t=[],i=e.originalEvent,n=e.currentTarget,o=0,r,s,a;if(e.api)t.push({id:2,event:e,target:e.target,currentTarget:e.target,location:e,type:"api"});else if(e.type.match(/touch/)){s=i?i.changedTouches:[];for(r=s.length;o<r;o++){a=s[o];t.push({location:a,event:e,target:a.target,currentTarget:n,id:a.identifier,type:"touch"})}}else if(l.pointers||l.msPointers)t.push({location:i,event:e,target:e.target,currentTarget:n,id:i.pointerId,type:"pointer"});else t.push({id:1,event:e,target:e.target,currentTarget:n,location:e,type:"mouse"});return t}var L=i.extend({init:function(e,t){var i=this;i.axis=e;i._updateLocationData(t);i.startLocation=i.location;i.velocity=i.delta=0;i.timeStamp=r()},move:function(e){var t=this,i=e["page"+t.axis],n=r(),o=n-t.timeStamp||1;if(!i&&s)return;t.delta=i-t.location;t._updateLocationData(e);t.initialDelta=i-t.startLocation;t.velocity=t.delta/o;t.timeStamp=n},_updateLocationData:function(e){var t=this,i=t.axis;t.location=e["page"+i];t.client=e["client"+i];t.screen=e["screen"+i]}}),U=i.extend({init:function(e,t,i){h(this,{x:new L("X",i.location),y:new L("Y",i.location),type:i.type,useClickAsTap:e.useClickAsTap,threshold:e.threshold||a[i.type],userEvents:e,target:t,currentTarget:i.currentTarget,initialTouch:i.target,id:i.id,pressEvent:i,_clicks:e._clicks,supportDoubleTap:e.supportDoubleTap,_moved:false,_finished:false})},press:function(){this._holdTimeout=setTimeout(this._hold.bind(this),this.userEvents.minHold);this._trigger(y,this.pressEvent)},_tap:function(e){var t=this;t.userEvents._clicks++;if(t.userEvents._clicks==1)t._clickTimeout=setTimeout(function(){if(t.userEvents._clicks==1)t._trigger(f,e);else t._trigger(D,e);t.userEvents._clicks=0},o)},_hold:function(){this._trigger(x,this.pressEvent)},move:function(e){var t=this;var i=e.type!=="api"&&t.userEvents._shouldNotMove;if(t._finished||i)return;t.x.move(e.location);t.y.move(e.location);if(!t._moved){if(t._withinIgnoreThreshold())return;if(!g.current||g.current===t.userEvents)t._start(e);else return t.dispose()}if(!t._finished)t._trigger(p,e)},end:function(e){this.endTime=r();if(this._finished)return;this._finished=true;this._trigger(M,e);if(this._moved)this._trigger(d,e);else if(!this.useClickAsTap)if(this.supportDoubleTap)this._tap(e);else this._trigger(f,e);clearTimeout(this._holdTimeout);this.dispose()},dispose:function(){var e=this.userEvents,t=e.touches;this._finished=true;this.pressEvent=null;clearTimeout(this._holdTimeout);t.splice(u.inArray(this,t),1)},skip:function(){this.dispose()},cancel:function(){this.dispose()},isMoved:function(){return this._moved},_start:function(e){clearTimeout(this._holdTimeout);this.startTime=r();this._moved=true;this._trigger(E,e)},_trigger:function(e,t){var i=this,n=t.event,o={touch:i,x:i.x,y:i.y,target:i.target,event:n};if(i.userEvents.notify(e,o))n.preventDefault()},_withinIgnoreThreshold:function(){var e=this.x.initialDelta,t=this.y.initialDelta;return Math.sqrt(e*e+t*t)<=this.threshold}});function X(e){var t=c.eventMap.up.split(" "),i=0,n=t.length;for(;i<n;i++)e(t[i])}var g=_.extend({init:function(e,t){var i=this,n,o=c.guid();t=t||{};n=i.filter=t.filter;i.threshold=t.threshold||T;i.minHold=t.minHold||m;i.touches=[];i._maxTouches=t.multiTouch?2:1;i.allowSelection=t.allowSelection;i.captureUpIfMoved=t.captureUpIfMoved;i.useClickAsTap=!t.fastTap&&!l.delayedClick();i.eventNS=o;i._clicks=0;i.supportDoubleTap=t.supportDoubleTap;e=u(e).handler(i);_.fn.init.call(i);h(i,{element:e,surface:t.global&&S?u(e[0].ownerDocument.documentElement):u(t.surface||e),stopPropagation:t.stopPropagation,pressed:false});i.surface.handler(i).on(c.applyEventMap("move",o),"_move").on(c.applyEventMap("up cancel",o),"_end");e.on(c.applyEventMap("down",o),n,"_start");if(i.useClickAsTap)e.on(c.applyEventMap("click",o),n,"_click");if(l.pointers||l.msPointers)if(l.browser.version<11){var r="pinch-zoom double-tap-zoom";e.css("-ms-touch-action",t.touchAction&&t.touchAction!="none"?r+" "+t.touchAction:r)}else e.css("touch-action",t.touchAction||"none");if(t.preventDragEvent)e.on(c.applyEventMap("dragstart",o),c.preventDefault);e.on(c.applyEventMap("mousedown",o),n,{root:e},"_select");if(i.captureUpIfMoved&&l.eventCapture){var s=i.surface[0],a=i.preventIfMoving.bind(i);X(function(e){s.addEventListener(e,a,true)})}i.bind([y,x,f,D,E,p,d,M,w,b,A,C,I,k],t)},preventIfMoving:function(e){if(this._isMoved())e.preventDefault()},destroy:function(){var t=this;if(t._destroyed)return;t._destroyed=true;if(t.captureUpIfMoved&&l.eventCapture){var i=t.surface[0];X(function(e){i.removeEventListener(e,t.preventIfMoving)})}t.element.kendoDestroy(t.eventNS);t.surface.kendoDestroy(t.eventNS);t.element.removeData("handler");t.surface.removeData("handler");t._disposeAll();t.unbind();delete t.surface;delete t.element;delete t.currentTarget},capture:function(){g.current=this},cancel:function(){this._disposeAll();this.trigger(w)},notify:function(e,t){var i=this,n=i.touches;if(this._isMultiTouch()){switch(e){case p:e=A;break;case d:e=C;break;case f:e=I;break}h(t,{touches:n},P(n[0],n[1]))}return this.trigger(e,h(t,{type:e}))},press:function(e,t,i){this._apiCall("_start",e,t,i)},move:function(e,t){this._apiCall("_move",e,t)},end:function(e,t){this._apiCall("_end",e,t)},_isMultiTouch:function(){return this.touches.length>1},_maxTouchesReached:function(){return this.touches.length>=this._maxTouches},_disposeAll:function(){var e=this.touches;while(e.length>0)e.pop().dispose()},_isMoved:function(){return u.grep(this.touches,function(e){return e.isMoved()}).length},_select:function(e){if(!this.allowSelection||this.trigger(k,{event:e}))e.preventDefault()},_start:function(e){var t=this,i=0,n=t.filter,o,r=v(e),s=r.length,a,c=e.which;if(c&&c>1||t._maxTouchesReached())return;g.current=null;t.currentTarget=e.currentTarget;if(t.stopPropagation)e.stopPropagation();for(;i<s;i++){if(t._maxTouchesReached())break;a=r[i];if(n)o=u(a.currentTarget);else o=t.element;if(!o.length)continue;a=new U(t,o,a);t.touches.push(a);a.press();if(t._isMultiTouch())t.notify("gesturestart",{})}},_move:function(e){this._eachTouch("move",e)},_end:function(e){this._eachTouch("end",e)},_click:function(e){var t={touch:{initialTouch:e.target,target:u(e.currentTarget),endTime:r(),x:{location:e.pageX,client:e.clientX},y:{location:e.pageY,client:e.clientY}},x:e.pageX,y:e.pageY,target:u(e.currentTarget),event:e,type:"tap"};if(this.trigger("tap",t))e.preventDefault()},_eachTouch:function(e,t){var i=this,n={},o=v(t),r=i.touches,s,a,c,u;for(s=0;s<r.length;s++){a=r[s];n[a.id]=a}for(s=0;s<o.length;s++){c=o[s];u=n[c.id];if(u)u[e](c)}},_apiCall:function(e,t,i,n){this[e]({api:true,pageX:t,pageY:i,clientX:t,clientY:i,target:u(n||this.element)[0],stopPropagation:u.noop,preventDefault:u.noop})}});return g.defaultThreshold=function(e){T=e},g.minHold=function(e){m=e},c.getTouches=v,c.touchDelta=P,c.UserEvents=g,window.kendo})?n.apply(t,i):n)||(e.exports=t)}});