kendo.userevents.min.js
10.9 KB
/**
* Kendo UI v2016.1.112 (http://www.telerik.com/kendo-ui)
* Copyright 2016 Telerik AD. All rights reserved.
*
* Kendo UI commercial licenses may be obtained at
* http://www.telerik.com/purchase/license-agreement/kendo-ui-complete
* If you do not own a commercial license, this file shall be governed by the trial license terms.
*/
!function(e,define){define("kendo.userevents.min",["kendo.core.min"],e)}(function(){return function(e,t){function n(e,t){var n=e.x.location,i=e.y.location,o=t.x.location,r=t.y.location,s=n-o,a=i-r;return{center:{x:(n+o)/2,y:(i+r)/2},distance:Math.sqrt(s*s+a*a)}}function i(e){var t,n,i,o=[],r=e.originalEvent,a=e.currentTarget,c=0;if(e.api)o.push({id:2,event:e,target:e.target,currentTarget:e.target,location:e,type:"api"});else if(e.type.match(/touch/))for(n=r?r.changedTouches:[],t=n.length;t>c;c++)i=n[c],o.push({location:i,event:e,target:i.target,currentTarget:a,id:i.identifier,type:"touch"});else o.push(s.pointers||s.msPointers?{location:r,event:e,target:e.target,currentTarget:a,id:r.pointerId,type:"pointer"}:{id:1,event:e,target:e.target,currentTarget:a,location:e,type:"mouse"});return o}function o(e){for(var t=r.eventMap.up.split(" "),n=0,i=t.length;i>n;n++)e(t[n])}var r=window.kendo,s=r.support,a=window.document,c=r.Class,u=r.Observable,h=e.now,l=e.extend,p=s.mobileOS,d=p&&p.android,f=800,v=s.browser.msie?5:0,g="press",m="hold",_="select",T="start",y="move",x="end",w="cancel",M="tap",E="release",k="gesturestart",D="gesturechange",C="gestureend",b="gesturetap",A={api:0,touch:0,mouse:9,pointer:9},I=!s.touch||s.mouseAndTouchPresent,S=c.extend({init:function(e,t){var n=this;n.axis=e,n._updateLocationData(t),n.startLocation=n.location,n.velocity=n.delta=0,n.timeStamp=h()},move:function(e){var t=this,n=e["page"+t.axis],i=h(),o=i-t.timeStamp||1;(n||!d)&&(t.delta=n-t.location,t._updateLocationData(e),t.initialDelta=n-t.startLocation,t.velocity=t.delta/o,t.timeStamp=i)},_updateLocationData:function(e){var t=this,n=t.axis;t.location=e["page"+n],t.client=e["client"+n],t.screen=e["screen"+n]}}),P=c.extend({init:function(e,t,n){l(this,{x:new S("X",n.location),y:new S("Y",n.location),type:n.type,useClickAsTap:e.useClickAsTap,threshold:e.threshold||A[n.type],userEvents:e,target:t,currentTarget:n.currentTarget,initialTouch:n.target,id:n.id,pressEvent:n,_moved:!1,_finished:!1})},press:function(){this._holdTimeout=setTimeout(e.proxy(this,"_hold"),this.userEvents.minHold),this._trigger(g,this.pressEvent)},_hold:function(){this._trigger(m,this.pressEvent)},move:function(e){var t=this;if(!t._finished){if(t.x.move(e.location),t.y.move(e.location),!t._moved){if(t._withinIgnoreThreshold())return;if(L.current&&L.current!==t.userEvents)return t.dispose();t._start(e)}t._finished||t._trigger(y,e)}},end:function(e){this.endTime=h(),this._finished||(this._finished=!0,this._trigger(E,e),this._moved?this._trigger(x,e):this.useClickAsTap||this._trigger(M,e),clearTimeout(this._holdTimeout),this.dispose())},dispose:function(){var t=this.userEvents,n=t.touches;this._finished=!0,this.pressEvent=null,clearTimeout(this._holdTimeout),n.splice(e.inArray(this,n),1)},skip:function(){this.dispose()},cancel:function(){this.dispose()},isMoved:function(){return this._moved},_start:function(e){clearTimeout(this._holdTimeout),this.startTime=h(),this._moved=!0,this._trigger(T,e)},_trigger:function(e,t){var n=this,i=t.event,o={touch:n,x:n.x,y:n.y,target:n.target,event:i};n.userEvents.notify(e,o)&&i.preventDefault()},_withinIgnoreThreshold:function(){var e=this.x.initialDelta,t=this.y.initialDelta;return Math.sqrt(e*e+t*t)<=this.threshold}}),L=u.extend({init:function(t,n){var i,c,h,p=this,d=r.guid();n=n||{},i=p.filter=n.filter,p.threshold=n.threshold||v,p.minHold=n.minHold||f,p.touches=[],p._maxTouches=n.multiTouch?2:1,p.allowSelection=n.allowSelection,p.captureUpIfMoved=n.captureUpIfMoved,p.useClickAsTap=!n.fastTap&&!s.delayedClick(),p.eventNS=d,t=e(t).handler(p),u.fn.init.call(p),l(p,{element:t,surface:e(n.global&&I?a.documentElement:n.surface||t),stopPropagation:n.stopPropagation,pressed:!1}),p.surface.handler(p).on(r.applyEventMap("move",d),"_move").on(r.applyEventMap("up cancel",d),"_end"),t.on(r.applyEventMap("down",d),i,"_start"),p.useClickAsTap&&t.on(r.applyEventMap("click",d),i,"_click"),(s.pointers||s.msPointers)&&(11>s.browser.version?t.css("-ms-touch-action","pinch-zoom double-tap-zoom"):t.css("touch-action","pan-y")),n.preventDragEvent&&t.on(r.applyEventMap("dragstart",d),r.preventDefault),t.on(r.applyEventMap("mousedown",d),i,{root:t},"_select"),p.captureUpIfMoved&&s.eventCapture&&(c=p.surface[0],h=e.proxy(p.preventIfMoving,p),o(function(e){c.addEventListener(e,h,!0)})),p.bind([g,m,M,T,y,x,E,w,k,D,C,b,_],n)},preventIfMoving:function(e){this._isMoved()&&e.preventDefault()},destroy:function(){var e,t=this;t._destroyed||(t._destroyed=!0,t.captureUpIfMoved&&s.eventCapture&&(e=t.surface[0],o(function(n){e.removeEventListener(n,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(){L.current=this},cancel:function(){this._disposeAll(),this.trigger(w)},notify:function(e,t){var i=this,o=i.touches;if(this._isMultiTouch()){switch(e){case y:e=D;break;case x:e=C;break;case M:e=b}l(t,{touches:o},n(o[0],o[1]))}return this.trigger(e,l(t,{type:e}))},press:function(e,t,n){this._apiCall("_start",e,t,n)},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(){for(var e=this.touches;e.length>0;)e.pop().dispose()},_isMoved:function(){return e.grep(this.touches,function(e){return e.isMoved()}).length},_select:function(e){(!this.allowSelection||this.trigger(_,{event:e}))&&e.preventDefault()},_start:function(t){var n,o,r=this,s=0,a=r.filter,c=i(t),u=c.length,h=t.which;if(!(h&&h>1||r._maxTouchesReached()))for(L.current=null,r.currentTarget=t.currentTarget,r.stopPropagation&&t.stopPropagation();u>s&&!r._maxTouchesReached();s++)o=c[s],n=a?e(o.currentTarget):r.element,n.length&&(o=new P(r,n,o),r.touches.push(o),o.press(),r._isMultiTouch()&&r.notify("gesturestart",{}))},_move:function(e){this._eachTouch("move",e)},_end:function(e){this._eachTouch("end",e)},_click:function(t){var n={touch:{initialTouch:t.target,target:e(t.currentTarget),endTime:h(),x:{location:t.pageX,client:t.clientX},y:{location:t.pageY,client:t.clientY}},x:t.pageX,y:t.pageY,target:e(t.currentTarget),event:t,type:"tap"};this.trigger("tap",n)&&t.preventDefault()},_eachTouch:function(e,t){var n,o,r,s,a=this,c={},u=i(t),h=a.touches;for(n=0;h.length>n;n++)o=h[n],c[o.id]=o;for(n=0;u.length>n;n++)r=u[n],s=c[r.id],s&&s[e](r)},_apiCall:function(t,n,i,o){this[t]({api:!0,pageX:n,pageY:i,clientX:n,clientY:i,target:e(o||this.element)[0],stopPropagation:e.noop,preventDefault:e.noop})}});L.defaultThreshold=function(e){v=e},L.minHold=function(e){f=e},r.getTouches=i,r.touchDelta=n,r.UserEvents=L}(window.kendo.jQuery),window.kendo},"function"==typeof define&&define.amd?define:function(e,t,n){(n||t)()});
//# sourceMappingURL=kendo.userevents.min.js.map