forked from taye/interact.js
-
Notifications
You must be signed in to change notification settings - Fork 0
/
interact.min.js
3 lines (3 loc) · 57.2 KB
/
interact.min.js
1
2
3
/* interact.js v1.2.2 | https://raw.github.com/taye/interact.js/master/LICENSE */
!function(){"use strict";function t(){}function e(t){if(!t||"object"!=typeof t)return!1;var e=w(t)||window;return/object|function/.test(typeof e.Element)?t instanceof e.Element:1===t.nodeType&&"string"==typeof t.nodeName}function i(t){return!(!t||!t.Window)&&t instanceof t.Window}function r(t){return n(t)&&void 0!==typeof t.length&&s(t.splice)}function n(t){return!!t&&"object"==typeof t}function s(t){return"function"==typeof t}function o(t){return"number"==typeof t}function a(t){return"boolean"==typeof t}function h(t){return"string"==typeof t}function p(t){return h(t)?(ae.querySelector(t),!0):!1}function l(t,e){for(var i in e)t[i]=e[i];return t}function c(t,e){t.page=t.page||{},t.page.x=e.page.x,t.page.y=e.page.y,t.client=t.client||{},t.client.x=e.client.x,t.client.y=e.client.y,t.timeStamp=e.timeStamp}function d(t,e,i){e||(e=i.pointerIds.length>1?D(i.pointers):i.pointers[0]),v(e,ge,i),t.page.x=ge.x,t.page.y=ge.y,m(e,ge,i),t.client.x=ge.x,t.client.y=ge.y,t.timeStamp=(new Date).getTime()}function u(t,e,i){t.page.x=i.page.x-e.page.x,t.page.y=i.page.y-e.page.y,t.client.x=i.client.x-e.client.x,t.client.y=i.client.y-e.client.y,t.timeStamp=(new Date).getTime()-e.timeStamp;var r=Math.max(t.timeStamp/1e3,.001);t.page.speed=ue(t.page.x,t.page.y)/r,t.page.vx=t.page.x/r,t.page.vy=t.page.y/r,t.client.speed=ue(t.client.x,t.page.y)/r,t.client.vx=t.client.x/r,t.client.vy=t.client.y/r}function g(t,e,i){return i=i||{},t=t||"page",i.x=e[t+"X"],i.y=e[t+"Y"],i}function v(t,e,i){return e=e||{},t instanceof $?/inertiastart/.test(t.type)?(i=i||t.interaction,l(e,i.inertiaStatus.upCoords.page),e.x+=i.inertiaStatus.sx,e.y+=i.inertiaStatus.sy):(e.x=t.pageX,e.y=t.pageY):Ye?(g("screen",t,e),e.x+=window.scrollX,e.y+=window.scrollY):g("page",t,e),e}function m(t,e,i){return e=e||{},t instanceof $?/inertiastart/.test(t.type)?(l(e,i.inertiaStatus.upCoords.client),e.x+=i.inertiaStatus.sx,e.y+=i.inertiaStatus.sy):(e.x=t.clientX,e.y=t.clientY):g(Ye?"screen":"client",t,e),e}function f(t){return t=t||window,{x:t.scrollX||t.document.documentElement.scrollLeft,y:t.scrollY||t.document.documentElement.scrollTop}}function y(t){return o(t.pointerId)?t.pointerId:t.identifier}function x(t){return t instanceof le?t.correspondingUseElement:t}function w(t){if(i(t))return t;var e=t.ownerDocument||t;return e.defaultView||e.parentWindow}function E(t){var e=_e?{x:0,y:0}:f(w(t)),i=t instanceof he?t.getBoundingClientRect():t.getClientRects()[0];return i&&{left:i.left+e.x,right:i.right+e.x,top:i.top+e.y,bottom:i.bottom+e.y,width:i.width||i.right-i.left,height:i.heigh||i.bottom-i.top}}function S(t){var e=[];return r(t)?(e[0]=t[0],e[1]=t[1]):"touchend"===t.type?1===t.touches.length?(e[0]=t.touches[0],e[1]=t.changedTouches[0]):0===t.touches.length&&(e[0]=t.changedTouches[0],e[1]=t.changedTouches[1]):(e[0]=t.touches[0],e[1]=t.touches[1]),e}function D(t){var e=S(t);return{pageX:(e[0].pageX+e[1].pageX)/2,pageY:(e[0].pageY+e[1].pageY)/2,clientX:(e[0].clientX+e[1].clientX)/2,clientY:(e[0].clientY+e[1].clientY)/2}}function b(t){if(t.length||t.touches&&t.touches.length>1){var e=S(t),i=Math.min(e[0].pageX,e[1].pageX),r=Math.min(e[0].pageY,e[1].pageY),n=Math.max(e[0].pageX,e[1].pageX),s=Math.max(e[0].pageY,e[1].pageY);return{x:i,y:r,left:i,top:r,width:n-i,height:s-r}}}function T(t,e){e=e||we.deltaSource;var i=e+"X",r=e+"Y",n=S(t),s=n[0][i]-n[1][i],o=n[0][r]-n[1][r];return ue(s,o)}function z(t,e,i){i=i||we.deltaSource;var r=i+"X",n=i+"Y",s=S(t),a=s[0][r]-s[1][r],h=s[0][n]-s[1][n],p=180*Math.atan(h/a)/Math.PI;if(o(e)){var l=p-e,c=l%360;c>315?p-=360+p/360|0:c>135?p-=180+p/360|0:-315>c?p+=360+p/360|0:-135>c&&(p+=180+p/360|0)}return p}function C(t,i){var r=t?t.options.origin:we.origin;return"parent"===r?r=i.parentNode:"self"===r?r=t.getRect(i):p(r)&&(r=X(i,r)||{x:0,y:0}),s(r)&&(r=r(t&&i)),e(r)&&(r=E(r)),r.x="x"in r?r.x:r.left,r.y="y"in r?r.y:r.top,r}function M(t,e,i,r){var n=1-t;return n*n*e+2*n*t*i+t*t*r}function P(t,e,i,r,n,s,o){return{x:M(o,t,i,n),y:M(o,e,r,s)}}function O(t,e,i,r){return t/=r,-i*t*(t-2)+e}function A(t,e){for(;e=e.parentNode;)if(e===t)return!0;return!1}function X(t,i){for(var r=t.parentNode;e(r);){if(ne(r,i))return r;r=r.parentNode}return null}function Y(t,e){return t._context===e.ownerDocument||A(t._context,e)}function _(t,i,r){var n=t.options.ignoreFrom;return n&&e(r)&&r!==i.parentNode?h(n)?ne(r,n)||_(t,r.parentNode):e(n)?r===n||A(n,r):!1:!1}function k(t,i,r){var n=t.options.allowFrom;return n?e(r)&&r!==i.parentNode?h(n)?ne(r,n)||k(t,r.parentNode):e(n)?r===n||A(n,r):!1:!1:!0}function I(t,e){if(!e)return!1;var i=e.options.drag.axis;return"xy"===t||"xy"===i||i===t}function R(t,e){var i=t.options;return/^resize/.test(e)&&(e="resize"),i[e].snap&&i[e].snap.enabled}function F(t,e){var i=t.options;return/^resize/.test(e)&&(e="resize"),i[e].restrict&&i[e].restrict.enabled}function N(t,e){var i=t.options;return/^resize/.test(e)&&(e="resize"),i[e].autoScroll&&i[e].autoScroll.enabled}function q(t,e,i){for(var r=t.options,n=r[i.name+"Max"],s=r[i.name+"MaxPerElement"],o=0,a=0,h=0,p=0,l=fe.length;l>p;p++){var c=fe[p],d=c.prepared.name,u=c.interacting();if(u){if(o++,o>=Ce)return!1;if(c.target===t){if(a+=d===i.name|0,a>=n)return!1;if(c.element===e&&(h++,d!==i.name||h>=s))return!1}}}return Ce>0}function H(t){var e,i,r,n,s,o=t[0],a=o?0:-1,h=[],p=[];for(n=1;n<t.length;n++)if(e=t[n],e&&e!==o)if(o){if(e.parentNode!==e.ownerDocument)if(o.parentNode!==e.ownerDocument){if(!h.length)for(i=o;i.parentNode&&i.parentNode!==i.ownerDocument;)h.unshift(i),i=i.parentNode;if(o instanceof ce&&e instanceof he&&!(e instanceof pe)){if(e===o.parentNode)continue;i=e.ownerSVGElement}else i=e;for(p=[];i.parentNode!==i.ownerDocument;)p.unshift(i),i=i.parentNode;for(s=0;p[s]&&p[s]===h[s];)s++;var l=[p[s-1],p[s],h[s]];for(r=l[0].lastChild;r;){if(r===l[1]){o=e,a=n,h=[];break}if(r===l[2])break;r=r.previousSibling}}else o=e,a=n}else o=e,a=n;return a}function W(){if(this.target=null,this.element=null,this.dropTarget=null,this.dropElement=null,this.prevDropTarget=null,this.prevDropElement=null,this.prepared={name:null,axis:null},this.matches=[],this.matchElements=[],this.inertiaStatus={active:!1,smoothEnd:!1,startEvent:null,upCoords:{},xe:0,ye:0,sx:0,sy:0,t0:0,vx0:0,vys:0,duration:0,resumeDx:0,resumeDy:0,lambda_v0:0,one_ve_v0:0,i:null},s(Function.prototype.bind))this.boundInertiaFrame=this.inertiaFrame.bind(this),this.boundSmoothEndFrame=this.smoothEndFrame.bind(this);else{var t=this;this.boundInertiaFrame=function(){return t.inertiaFrame()},this.boundSmoothEndFrame=function(){return t.smoothEndFrame()}}this.activeDrops={dropzones:[],elements:[],rects:[]},this.pointers=[],this.pointerIds=[],this.downTargets=[],this.downTimes=[],this.holdTimers=[],this.prevCoords={page:{x:0,y:0},client:{x:0,y:0},timeStamp:0},this.curCoords={page:{x:0,y:0},client:{x:0,y:0},timeStamp:0},this.startCoords={page:{x:0,y:0},client:{x:0,y:0},timeStamp:0},this.pointerDelta={page:{x:0,y:0,vx:0,vy:0,speed:0},client:{x:0,y:0,vx:0,vy:0,speed:0},timeStamp:0},this.downEvent=null,this.downPointer={},this.prevEvent=null,this.tapTime=0,this.prevTap=null,this.startOffset={left:0,right:0,top:0,bottom:0},this.restrictOffset={left:0,right:0,top:0,bottom:0},this.snapOffsets=[],this.gesture={start:{x:0,y:0},startDistance:0,prevDistance:0,distance:0,scale:1,startAngle:0,prevAngle:0},this.snapStatus={x:0,y:0,dx:0,dy:0,realX:0,realY:0,snappedX:0,snappedY:0,targets:[],locked:!1,changed:!1},this.restrictStatus={dx:0,dy:0,restrictedX:0,restrictedY:0,snap:null,restricted:!1,changed:!1},this.restrictStatus.snap=this.snapStatus,this.pointerIsDown=!1,this.pointerWasMoved=!1,this.gesturing=!1,this.dragging=!1,this.resizing=!1,this.resizeAxes="xy",this.mouse=!1,fe.push(this)}function U(t,e,i){var r,n=0,s=fe.length,o=/mouse/i.test(t.pointerType||e)||4===t.pointerType,a=y(t);if(/down|start/i.test(e))for(n=0;s>n;n++){r=fe[n];var h=i;if(r.inertiaStatus.active&&r.target.options[r.prepared.name].inertia.allowResume&&r.mouse===o)for(;h;){if(h===r.element)return r.pointers[0]&&r.removePointer(r.pointers[0]),r.addPointer(t),r;h=h.parentNode}}if(o||!Se&&!De){for(n=0;s>n;n++)if(fe[n].mouse&&!fe[n].inertiaStatus.active)return fe[n];for(n=0;s>n;n++)if(fe[n].mouse&&(!/down/.test(e)||!fe[n].inertiaStatus.active))return r;return r=new W,r.mouse=!0,r}for(n=0;s>n;n++)if(re(fe[n].pointerIds,a))return fe[n];if(/up|end|out/i.test(e))return null;for(n=0;s>n;n++)if(r=fe[n],!(r.prepared.name&&!r.target.options.gesture.enabled||r.interacting()||!o&&r.mouse))return r.addPointer(t),r;return new W}function V(t){return function(e){var i,r,n=x(e.target),s=x(e.currentTarget);if(Se&&/touch/.test(e.type))for(ze=(new Date).getTime(),r=0;r<e.changedTouches.length;r++){var o=e.changedTouches[r];i=U(o,e.type,n),i&&i[t](o,e,n,s)}else{if(!De&&/mouse/.test(e.type)){for(r=0;r<fe.length;r++)if(!fe[r].mouse&&fe[r].pointerIsDown)return;if((new Date).getTime()-ze<500)return}if(i=U(e,e.type,n),!i)return;i[t](e,e,n,s)}}}function $(t,e,i,r,n,s){var o,a,h=t.target,p=t.snapStatus,c=t.restrictStatus,d=t.pointers,u=(h&&h.options||we).deltaSource,g=u+"X",v=u+"Y",m=h?h.options:we,f=C(h,n),y="start"===r,x="end"===r,w=y?t.startCoords:t.curCoords;n=n||t.element,a=l({},w.page),o=l({},w.client),a.x-=f.x,a.y-=f.y,o.x-=f.x,o.y-=f.y,!R(h,i)||y&&t.snapOffsets.length||(this.snap={range:p.range,locked:p.locked,x:p.snappedX,y:p.snappedY,realX:p.realX,realY:p.realY,dx:p.dx,dy:p.dy},p.locked&&(a.x+=p.dx,a.y+=p.dy,o.x+=p.dx,o.y+=p.dy)),!F(h,i)||y&&m[i].restrict.elementRect||!c.restricted||(a.x+=c.dx,a.y+=c.dy,o.x+=c.dx,o.y+=c.dy,this.restrict={dx:c.dx,dy:c.dy}),this.pageX=a.x,this.pageY=a.y,this.clientX=o.x,this.clientY=o.y,this.x0=t.startCoords.page.x,this.y0=t.startCoords.page.y,this.clientX0=t.startCoords.client.x,this.clientY0=t.startCoords.client.y,this.ctrlKey=e.ctrlKey,this.altKey=e.altKey,this.shiftKey=e.shiftKey,this.metaKey=e.metaKey,this.button=e.button,this.target=n,this.t0=t.downTimes[0],this.type=i+(r||""),this.interaction=t,this.interactable=h;var E=t.inertiaStatus;if(E.active&&(this.detail="inertia"),s&&(this.relatedTarget=s),x||"drop"===i?"client"===u?(this.dx=o.x-t.startCoords.client.x,this.dy=o.y-t.startCoords.client.y):(this.dx=a.x-t.startCoords.page.x,this.dy=a.y-t.startCoords.page.y):y?(this.dx=0,this.dy=0):"inertiastart"===r?(this.dx=t.prevEvent.dx,this.dy=t.prevEvent.dy):"client"===u?(this.dx=o.x-t.prevEvent.clientX,this.dy=o.y-t.prevEvent.clientY):(this.dx=a.x-t.prevEvent.pageX,this.dy=a.y-t.prevEvent.pageY),t.prevEvent&&"inertia"===t.prevEvent.detail&&!E.active&&m[i].inertia&&m[i].inertia.zeroResumeDelta&&(E.resumeDx+=this.dx,E.resumeDy+=this.dy,this.dx=this.dy=0),"resize"===i?m.resize.square?("y"===t.resizeAxes?this.dx=this.dy:this.dy=this.dx,this.axes="xy"):(this.axes=t.resizeAxes,"x"===t.resizeAxes?this.dy=0:"y"===t.resizeAxes&&(this.dx=0)):"gesture"===i&&(this.touches=[d[0],d[1]],y?(this.distance=T(d,u),this.box=b(d),this.scale=1,this.ds=0,this.angle=z(d,void 0,u),this.da=0):x||e instanceof $?(this.distance=t.prevEvent.distance,this.box=t.prevEvent.box,this.scale=t.prevEvent.scale,this.ds=this.scale-1,this.angle=t.prevEvent.angle,this.da=this.angle-t.gesture.startAngle):(this.distance=T(d,u),this.box=b(d),this.scale=this.distance/t.gesture.startDistance,this.angle=z(d,t.gesture.prevAngle,u),this.ds=this.scale-t.gesture.prevScale,this.da=this.angle-t.gesture.prevAngle)),y)this.timeStamp=t.downTimes[0],this.dt=0,this.duration=0,this.speed=0,this.velocityX=0,this.velocityY=0;else if("inertiastart"===r)this.timeStamp=t.prevEvent.timeStamp,this.dt=t.prevEvent.dt,this.duration=t.prevEvent.duration,this.speed=t.prevEvent.speed,this.velocityX=t.prevEvent.velocityX,this.velocityY=t.prevEvent.velocityY;else if(this.timeStamp=(new Date).getTime(),this.dt=this.timeStamp-t.prevEvent.timeStamp,this.duration=this.timeStamp-t.downTimes[0],e instanceof $){var S=this[g]-t.prevEvent[g],D=this[v]-t.prevEvent[v],M=this.dt/1e3;this.speed=ue(S,D)/M,this.velocityX=S/M,this.velocityY=D/M}else this.speed=t.pointerDelta[u].speed,this.velocityX=t.pointerDelta[u].vx,this.velocityY=t.pointerDelta[u].vy;if((x||"inertiastart"===r)&&t.prevEvent.speed>600&&this.timeStamp-t.prevEvent.timeStamp<150){var P=180*Math.atan2(t.prevEvent.velocityY,t.prevEvent.velocityX)/Math.PI,O=22.5;0>P&&(P+=360);var A=P>=135-O&&225+O>P,X=P>=225-O&&315+O>P,Y=!A&&(P>=315-O||45+O>P),_=!X&&P>=45-O&&135+O>P;this.swipe={up:X,down:_,left:A,right:Y,angle:P,speed:t.prevEvent.speed,velocity:{x:t.prevEvent.velocityX,y:t.prevEvent.velocityY}}}}function G(){this.originalEvent.preventDefault()}function L(t,e,i){var r,n,s=this.getRect(i),o=null,a=null,h=l({},e.curCoords.page),p=this.options;return s?(Pe.resize&&p.resize.enabled&&(r="y"!==p.resize.axis&&h.x>s.right-be,n="x"!==p.resize.axis&&h.y>s.bottom-be),a=(r?"x":"")+(n?"y":""),o=a?"resize":Pe.drag&&p.drag.enabled?"drag":null,Pe.gesture&&e.pointerIds.length>=2&&!e.dragging&&!e.resizing&&(o="gesture"),o?{name:o,axis:a}:null):null}function B(t,e){if(!n(t))return null;var i=t.name,r=e.options;return("resize"===i&&r.resize.enabled||"drag"===i&&r.drag.enabled||"gesture"===i&&r.gesture.enabled)&&Pe[i]?(("resize"===i||"resizeyx"===i)&&(i="resizexy"),t):null}function K(t,e){var i={},r=xe[t.type],n=t.target;e=e?!0:!1;for(var s in t)i[s]=t[s];for(i.originalEvent=t,i.preventDefault=G;n&&n.ownerDocument&&n!==n.ownerDocument;){for(var o=0;o<r.selectors.length;o++){var a=r.selectors[o],h=r.contexts[o];if(ne(n,a)&&A(h,t.target)&&A(h,n)){var p=r.listeners[o];i.currentTarget=n;for(var l=0;l<p.length;l++)p[l][1]===e&&p[l][0](i)}}n=n.parentNode}}function j(t){return K.call(this,t,!0)}function J(t,e){return me.get(t,e)||new Q(t,e)}function Q(t,i){this._element=t,this._iEvents=this._iEvents||{};var r;if(p(t)){this.selector=t;var n=i&&i.context;r=n?w(n):window,n&&(r.Node?n instanceof r.Node:e(n)||n===r.document)&&(this._context=n)}else r=w(t),e(t,r)&&(de?(Fe.add(this._element,se.down,Ne.pointerDown),Fe.add(this._element,se.move,Ne.pointerHover)):(Fe.add(this._element,"mousedown",Ne.pointerDown),Fe.add(this._element,"mousemove",Ne.pointerHover),Fe.add(this._element,"touchstart",Ne.pointerDown),Fe.add(this._element,"touchmove",Ne.pointerHover)));this._doc=r.document,re(ve,this._doc)||ee(this._doc),me.push(this),this.set(i)}function Z(t,e){var i=!1;return function(){return i||(window.console.warn(e),i=!0),t.apply(this,arguments)}}function te(t){for(var e=0;e<fe.length;e++)fe[e].pointerEnd(t,t)}function ee(t){if(!re(ve,t)){var e=t.defaultView||t.parentWindow;for(var i in xe)Fe.add(t,i,K),Fe.add(t,i,j,!0);de?(se=de===e.MSPointerEvent?{up:"MSPointerUp",down:"MSPointerDown",over:"mouseover",out:"mouseout",move:"MSPointerMove",cancel:"MSPointerCancel"}:{up:"pointerup",down:"pointerdown",over:"pointerover",out:"pointerout",move:"pointermove",cancel:"pointercancel"},Fe.add(t,se.down,Ne.selectorDown),Fe.add(t,se.move,Ne.pointerMove),Fe.add(t,se.over,Ne.pointerOver),Fe.add(t,se.out,Ne.pointerOut),Fe.add(t,se.up,Ne.pointerUp),Fe.add(t,se.cancel,Ne.pointerCancel),Fe.add(t,se.move,Ee.edgeMove)):(Fe.add(t,"mousedown",Ne.selectorDown),Fe.add(t,"mousemove",Ne.pointerMove),Fe.add(t,"mouseup",Ne.pointerUp),Fe.add(t,"mouseover",Ne.pointerOver),Fe.add(t,"mouseout",Ne.pointerOut),Fe.add(t,"touchstart",Ne.selectorDown),Fe.add(t,"touchmove",Ne.pointerMove),Fe.add(t,"touchend",Ne.pointerUp),Fe.add(t,"touchcancel",Ne.pointerCancel),Fe.add(t,"mousemove",Ee.edgeMove),Fe.add(t,"touchmove",Ee.edgeMove)),Fe.add(e,"blur",te);try{if(e.frameElement){var r=e.frameElement.ownerDocument,n=r.defaultView;Fe.add(r,"mouseup",Ne.pointerEnd),Fe.add(r,"touchend",Ne.pointerEnd),Fe.add(r,"touchcancel",Ne.pointerEnd),Fe.add(r,"pointerup",Ne.pointerEnd),Fe.add(r,"MSPointerUp",Ne.pointerEnd),Fe.add(n,"blur",te)}}catch(s){J.windowParentError=s}Fe.useAttachEvent&&(Fe.add(t,"selectstart",function(t){var e=fe[0];e.currentAction()&&e.checkAndPreventDefault(t)}),Fe.add(t,"dblclick",V("ie8Dblclick"))),ve.push(t)}}function ie(t,e){for(var i=0,r=t.length;r>i;i++)if(t[i]===e)return i;return-1}function re(t,e){return-1!==ie(t,e)}function ne(t,e,i){return oe?oe(t,e,i):t[ke](e)}var se,oe,ae=window.document,he=window.SVGElement||t,pe=window.SVGSVGElement||t,le=window.SVGElementInstance||t,ce=window.HTMLElement||window.Element,de=window.PointerEvent||window.MSPointerEvent,ue=Math.hypot||function(t,e){return Math.sqrt(t*t+e*e)},ge={},ve=[],me=[],fe=[],ye=!1,xe={},we={base:{accept:null,actionChecker:null,styleCursor:!0,preventDefault:"auto",origin:{x:0,y:0},deltaSource:"page",allowFrom:null,ignoreFrom:null,_context:ae,rectChecker:null},drag:{enabled:!1,manualStart:!0,max:1/0,maxPerElement:1,snap:null,restrict:null,inertia:null,autoScroll:null,axis:"xy"},drop:{enabled:!1,accept:null,overlap:"pointer"},resize:{enabled:!1,manualStart:!1,max:1/0,maxPerElement:1,snap:null,restrict:null,inertia:null,autoScroll:null,square:!1,axis:"xy"},gesture:{manualStart:!1,enabled:!1,max:1/0,maxPerElement:1,restrict:null},perAction:{manualStart:!1,max:1/0,maxPerElement:1,snap:{enabled:!1,endOnly:!1,range:1/0,targets:null,offsets:null,relativePoints:null},restrict:{enabled:!1,endOnly:!1},autoScroll:{enabled:!1,container:null,margin:60,speed:300},inertia:{enabled:!1,resistance:10,minSpeed:100,endSpeed:10,allowResume:!0,zeroResumeDelta:!0,smoothEndDuration:300}}},Ee={interaction:null,i:null,x:0,y:0,scroll:function(){var t=Ee.interaction.target.options[Ee.interaction.prepared.name].autoScroll,e=t.container||w(Ee.interaction.element),r=(new Date).getTime(),n=(r-Ee.prevTime)/1e3,s=t.speed*n;s>=1&&(i(e)?e.scrollBy(Ee.x*s,Ee.y*s):e&&(e.scrollLeft+=Ee.x*s,e.scrollTop+=Ee.y*s),Ee.prevTime=r),Ee.isScrolling&&(Re(Ee.i),Ee.i=Ie(Ee.scroll))},edgeMove:function(t){for(var e,r,n=!1,s=0;s<fe.length;s++)if(e=fe[s],e.interacting()&&N(e.target,e.prepared.name)){r=e.target,n=!0;break}if(n){var o,a,h,p,l=r.options[e.prepared.name].autoScroll,c=l.container||w(e.element);if(i(c))p=t.clientX<Ee.margin,o=t.clientY<Ee.margin,a=t.clientX>c.innerWidth-Ee.margin,h=t.clientY>c.innerHeight-Ee.margin;else{var d=E(c);p=t.clientX<d.left+Ee.margin,o=t.clientY<d.top+Ee.margin,a=t.clientX>d.right-Ee.margin,h=t.clientY>d.bottom-Ee.margin}Ee.x=a?1:p?-1:0,Ee.y=h?1:o?-1:0,Ee.isScrolling||(Ee.margin=l.margin,Ee.speed=l.speed,Ee.start(e))}},isScrolling:!1,prevTime:0,start:function(t){Ee.isScrolling=!0,Re(Ee.i),Ee.interaction=t,Ee.prevTime=(new Date).getTime(),Ee.i=Ie(Ee.scroll)},stop:function(){Ee.isScrolling=!1,Re(Ee.i)}},Se="ontouchstart"in window||window.DocumentTouch&&ae instanceof window.DocumentTouch,De=!!de,be=Se||De?20:10,Te=1,ze=0,Ce=1/0,Me=ae.all&&!window.atob?{drag:"move",resizex:"e-resize",resizey:"s-resize",resizexy:"se-resize",gesture:""}:{drag:"move",resizex:"ew-resize",resizey:"ns-resize",resizexy:"nwse-resize",gesture:""},Pe={drag:!0,resize:!0,gesture:!0},Oe="onmousewheel"in ae?"mousewheel":"wheel",Ae=["dragstart","dragmove","draginertiastart","dragend","dragenter","dragleave","dropactivate","dropdeactivate","dropmove","drop","resizestart","resizemove","resizeinertiastart","resizeend","gesturestart","gesturemove","gestureinertiastart","gestureend","down","move","up","cancel","tap","doubletap","hold"],Xe={},Ye="Opera"==navigator.appName&&Se&&navigator.userAgent.match("Presto"),_e=/iP(hone|od|ad)/.test(navigator.platform)&&/OS [1-7][^\d]/.test(navigator.appVersion),ke="matchesSelector"in Element.prototype?"matchesSelector":"webkitMatchesSelector"in Element.prototype?"webkitMatchesSelector":"mozMatchesSelector"in Element.prototype?"mozMatchesSelector":"oMatchesSelector"in Element.prototype?"oMatchesSelector":"msMatchesSelector",Ie=window.requestAnimationFrame,Re=window.cancelAnimationFrame,Fe=function(){function t(t,e,a,d){var u=ie(p,t),g=l[u];if(g||(g={events:{},typeCount:0},u=p.push(t)-1,l.push(g),c.push(s?{supplied:[],wrapped:[],useCount:[]}:null)),g.events[e]||(g.events[e]=[],g.typeCount++),!re(g.events[e],a)){var v;if(s){var m=c[u],f=ie(m.supplied,a),y=m.wrapped[f]||function(e){e.immediatePropagationStopped||(e.target=e.srcElement,e.currentTarget=t,e.preventDefault=e.preventDefault||i,e.stopPropagation=e.stopPropagation||r,e.stopImmediatePropagation=e.stopImmediatePropagation||n,/mouse|click/.test(e.type)&&(e.pageX=e.clientX+w(t).document.documentElement.scrollLeft,e.pageY=e.clientY+w(t).document.documentElement.scrollTop),a(e))};v=t[o](h+e,y,Boolean(d)),-1===f?(m.supplied.push(a),m.wrapped.push(y),m.useCount.push(1)):m.useCount[f]++}else v=t[o](e,a,d||!1);return g.events[e].push(a),v}}function e(t,i,r,n){var o,d,u,g=ie(p,t),v=l[g],m=r;if(v&&v.events)if(s&&(d=c[g],u=ie(d.supplied,r),m=d.wrapped[u]),"all"!==i){if(v.events[i]){var f=v.events[i].length;if("all"===r)for(o=0;f>o;o++)e(t,i,v.events[i][o],Boolean(n));else for(o=0;f>o;o++)if(v.events[i][o]===r){t[a](h+i,m,n||!1),v.events[i].splice(o,1),s&&d&&(d.useCount[u]--,0===d.useCount[u]&&(d.supplied.splice(u,1),d.wrapped.splice(u,1),d.useCount.splice(u,1)));break}v.events[i]&&0===v.events[i].length&&(v.events[i]=null,v.typeCount--)}v.typeCount||(l.splice(g),p.splice(g),c.splice(g))}else for(i in v.events)v.events.hasOwnProperty(i)&&e(t,i,"all")}function i(){this.returnValue=!1}function r(){this.cancelBubble=!0}function n(){this.cancelBubble=!0,this.immediatePropagationStopped=!0}var s="attachEvent"in window&&!("addEventListener"in window),o=s?"attachEvent":"addEventListener",a=s?"detachEvent":"removeEventListener",h=s?"on":"",p=[],l=[],c=[];return{add:t,remove:e,useAttachEvent:s,_elements:p,_targets:l,_attachedListeners:c}}();W.prototype={getPageXY:function(t,e){return v(t,e,this)},getClientXY:function(t,e){return m(t,e,this)},setEventXY:function(t,e){return d(t,e,this)},pointerOver:function(t,e,i){function r(t,e){t&&Y(t,i)&&!_(t,i,i)&&k(t,i,i)&&ne(i,e)&&(n.push(t),s.push(i))}if(!this.prepared.name&&this.mouse){var n=[],s=[],o=this.element;this.addPointer(t),!this.target||!_(this.target,this.element,i)&&k(this.target,this.element,i)||(this.target=null,this.element=null,this.matches=[],this.matchElements=[]);var a=me.get(i),h=a&&!_(a,i,i)&&k(a,i,i)&&B(a.getAction(t,this,i),a);h&&!q(a,i,h)&&(h=null),h?(this.target=a,this.element=i,this.matches=[],this.matchElements=[]):(me.forEachSelector(r),this.validateSelector(t,n,s)?(this.matches=n,this.matchElements=s,this.pointerHover(t,e,this.matches,this.matchElements),Fe.add(i,de?se.move:"mousemove",Ne.pointerHover)):this.target&&(A(o,i)?(this.pointerHover(t,e,this.matches,this.matchElements),Fe.add(this.element,de?se.move:"mousemove",Ne.pointerHover)):(this.target=null,this.element=null,this.matches=[],this.matchElements=[])))}},pointerHover:function(t,e,i,r,n,s){var o=this.target;if(!this.prepared.name&&this.mouse){var a;this.setEventXY(this.curCoords,t),n?a=this.validateSelector(t,n,s):o&&(a=B(o.getAction(this.pointers[0],this,this.element),this.target)),o&&o.options.styleCursor&&(o._doc.documentElement.style.cursor=a?Me[a.name+(a.axis||"")]:"")}else this.prepared.name&&this.checkAndPreventDefault(e,o,this.element)},pointerOut:function(t,e,i){this.prepared.name||(me.get(i)||Fe.remove(i,de?se.move:"mousemove",Ne.pointerHover),this.target&&this.target.options.styleCursor&&!this.interacting()&&(this.target._doc.documentElement.style.cursor=""))},selectorDown:function(t,e,i,r){function n(t,e,r){var n=oe?r.querySelectorAll(e):void 0;Y(t,h)&&!_(t,h,i)&&k(t,h,i)&&ne(h,e,n)&&(o.matches.push(t),o.matchElements.push(h))}var s,o=this,a=Fe.useAttachEvent?l({},e):e,h=i,p=this.addPointer(t);if(this.holdTimers[p]=window.setTimeout(function(){o.pointerHold(Fe.useAttachEvent?a:t,a,i,r)},600),this.pointerIsDown=!0,this.inertiaStatus.active&&this.target.selector)for(;h&&h!==h.ownerDocument;){if(h===this.element&&B(this.target.getAction(t,this,this.element),this.target).name===this.prepared.name)return Re(this.inertiaStatus.i),this.inertiaStatus.active=!1,void this.collectEventTargets(t,e,i,"down");h=h.parentNode}if(this.interacting())return void this.collectEventTargets(t,e,i,"down");if(this.setEventXY(this.curCoords,t),this.matches.length&&this.mouse)s=this.validateSelector(t,this.matches,this.matchElements);else for(;h&&h!==h.ownerDocument&&!s;)this.matches=[],this.matchElements=[],me.forEachSelector(n),s=this.validateSelector(t,this.matches,this.matchElements),h=h.parentNode;return s?(this.prepared.name=s.name,this.prepared.axis=s.axis,this.collectEventTargets(t,e,i,"down"),this.pointerDown(t,e,i,r,s)):(this.downTimes[p]=(new Date).getTime(),this.downTargets[p]=i,this.downEvent=e,l(this.downPointer,t),c(this.prevCoords,this.curCoords),this.pointerWasMoved=!1,void this.collectEventTargets(t,e,i,"down"))},pointerDown:function(t,e,i,r,n){if(!n&&!this.inertiaStatus.active&&this.pointerWasMoved&&this.prepared.name)return void this.checkAndPreventDefault(e,this.target,this.element);this.pointerIsDown=!0;var s,o=this.addPointer(t);if(this.pointerIds.length<2&&!this.target||!this.prepared.name){var a=me.get(r);a&&!_(a,r,i)&&k(a,r,i)&&(s=B(n||a.getAction(t,this),a,i))&&q(a,r,s)&&(this.target=a,this.element=r)}var h=this.target,p=h&&h.options;if(h&&!this.interacting()){if(s=s||B(n||h.getAction(t,this),h,this.element),this.setEventXY(this.startCoords),!s)return;p.styleCursor&&(h._doc.documentElement.style.cursor=Me[s]),this.resizeAxes="resize"===s.name?s.axis:null,"gesture"===s&&this.pointerIds.length<2&&(s=null),this.prepared.name=s.name,this.prepared.axis=s.axis,this.snapStatus.snappedX=this.snapStatus.snappedY=this.restrictStatus.restrictedX=this.restrictStatus.restrictedY=0/0,this.downTimes[o]=(new Date).getTime(),this.downTargets[o]=i,this.downEvent=e,l(this.downPointer,t),this.setEventXY(this.prevCoords),this.pointerWasMoved=!1,this.checkAndPreventDefault(e,h,this.element)}else this.inertiaStatus.active&&r===this.element&&B(h.getAction(t,this,this.element),h).name===this.prepared.name&&(Re(this.inertiaStatus.i),this.inertiaStatus.active=!1,this.checkAndPreventDefault(e,h,this.element))},setModifications:function(t,e){var i=this.target,r=!0,n=R(i,this.prepared.name)&&(!i.options[this.prepared.name].snap.endOnly||e),s=F(i,this.prepared.name)&&(!i.options[this.prepared.name].restrict.endOnly||e);return n?this.setSnapping(t):this.snapStatus.locked=!1,s?this.setRestriction(t):this.restrictStatus.restricted=!1,n&&this.snapStatus.locked&&!this.snapStatus.changed?r=s&&this.restrictStatus.restricted&&this.restrictStatus.changed:s&&this.restrictStatus.restricted&&!this.restrictStatus.changed&&(r=!1),r},setStartOffsets:function(t,e,i){var r,n,s=e.getRect(i),o=C(e,i),a=e.options[this.prepared.name].snap,h=e.options[this.prepared.name].restrict;s?(this.startOffset.left=this.startCoords.page.x-s.left,this.startOffset.top=this.startCoords.page.y-s.top,this.startOffset.right=s.right-this.startCoords.page.x,this.startOffset.bottom=s.bottom-this.startCoords.page.y,r="width"in s?s.width:s.right-s.left,n="height"in s?s.height:s.bottom-s.top):this.startOffset.left=this.startOffset.top=this.startOffset.right=this.startOffset.bottom=0,this.snapOffsets.splice(0);var p=a&&"startCoords"===a.offset?{x:this.startCoords.page.x-o.x,y:this.startCoords.page.y-o.y}:a&&a.offset||{x:0,y:0};if(s&&a&&a.relativePoints&&a.relativePoints.length)for(var l=0;l<a.relativePoints.length;l++)this.snapOffsets.push({x:this.startOffset.left-r*a.relativePoints[l].x+p.x,y:this.startOffset.top-n*a.relativePoints[l].y+p.y});else this.snapOffsets.push(p);s&&h.elementRect?(this.restrictOffset.left=this.startOffset.left-r*h.elementRect.left,this.restrictOffset.top=this.startOffset.top-n*h.elementRect.top,this.restrictOffset.right=this.startOffset.right-r*(1-h.elementRect.right),this.restrictOffset.bottom=this.startOffset.bottom-n*(1-h.elementRect.bottom)):this.restrictOffset.left=this.restrictOffset.top=this.restrictOffset.right=this.restrictOffset.bottom=0},start:function(t,e,i){this.interacting()||!this.pointerIsDown||this.pointerIds.length<("gesture"===t.name?2:1)||(this.prepared.name=t.name,this.prepared.axis=t.axis,this.target=e,this.element=i,this.setStartOffsets(t.name,e,i),this.setModifications(this.startCoords.page),this.prevEvent=this[this.prepared.name+"Start"](this.downEvent))},pointerMove:function(t,e,i,r,n){this.recordPointer(t),this.setEventXY(this.curCoords,t instanceof $?this.inertiaStatus.startEvent:void 0);var s,o,a=this.curCoords.page.x===this.prevCoords.page.x&&this.curCoords.page.y===this.prevCoords.page.y&&this.curCoords.client.x===this.prevCoords.client.x&&this.curCoords.client.y===this.prevCoords.client.y,h=this.mouse?0:ie(this.pointerIds,y(t));if(this.pointerIsDown&&!this.pointerWasMoved&&(s=this.curCoords.client.x-this.startCoords.client.x,o=this.curCoords.client.y-this.startCoords.client.y,this.pointerWasMoved=ue(s,o)>Te),a||this.pointerIsDown&&!this.pointerWasMoved||(this.pointerIsDown&&window.clearTimeout(this.holdTimers[h]),this.collectEventTargets(t,e,i,"move")),this.pointerIsDown){if(a&&this.pointerWasMoved&&!n)return void this.checkAndPreventDefault(e,this.target,this.element);if(u(this.pointerDelta,this.prevCoords,this.curCoords),this.prepared.name){if(this.pointerWasMoved&&(!this.inertiaStatus.active||t instanceof $&&/inertiastart/.test(t.type))){if(!this.interacting()&&(u(this.pointerDelta,this.prevCoords,this.curCoords),"drag"===this.prepared.name)){var p=Math.abs(s),l=Math.abs(o),d=this.target.options.drag.axis,g=p>l?"x":l>p?"y":"xy";if("xy"!==g&&"xy"!==d&&d!==g){this.prepared.name=null;for(var v=i;v&&v!==v.ownerDocument;){var m=me.get(v);if(m&&m!==this.target&&!m.options.drag.manualStart&&"drag"===m.getAction(this.downPointer,this,v).name&&I(g,m)){this.prepared.name="drag",this.target=m,this.element=v;break}v=v.parentNode}if(!this.prepared.name){var f=function(t,e,r){var n=oe?r.querySelectorAll(e):void 0;if(t!==this.target)return Y(t,i)&&!t.options.drag.manualStart&&!_(t,v,i)&&k(t,v,i)&&ne(v,e,n)&&"drag"===t.getAction(this.downPointer,this,v).name&&I(g,t)&&q(t,v,"drag")?t:void 0};for(v=i;v&&v!==v.ownerDocument;){var x=me.forEachSelector(f);if(x){this.prepared.name="drag",this.target=x,this.element=v;break}v=v.parentNode}}}}var w=!!this.prepared.name&&!this.interacting();if(w&&(this.target.options[this.prepared.name].manualStart||!q(this.target,this.element,this.prepared.name)))return void this.stop();if(this.prepared.name&&this.target){w&&this.start(this.prepared,this.target,this.element);var E=this.setModifications(this.curCoords.page,n);(E||w)&&(this.prevEvent=this[this.prepared.name+"Move"](e)),this.checkAndPreventDefault(e,this.target,this.element)}}c(this.prevCoords,this.curCoords),(this.dragging||this.resizing)&&Ee.edgeMove(e)}}},dragStart:function(t){var e=new $(this,t,"drag","start",this.element);this.dragging=!0,this.target.fire(e),this.activeDrops.dropzones=[],this.activeDrops.elements=[],this.activeDrops.rects=[],this.dynamicDrop||this.setActiveDrops(this.element);var i=this.getDropEvents(t,e);return i.activate&&this.fireActiveDrops(i.activate),e},dragMove:function(t){var e=this.target,i=new $(this,t,"drag","move",this.element),r=this.element,n=this.getDrop(i,r);this.dropTarget=n.dropzone,this.dropElement=n.element;var s=this.getDropEvents(t,i);return e.fire(i),s.leave&&this.prevDropTarget.fire(s.leave),s.enter&&this.dropTarget.fire(s.enter),s.move&&this.dropTarget.fire(s.move),this.prevDropTarget=this.dropTarget,this.prevDropElement=this.dropElement,i},resizeStart:function(t){var e=new $(this,t,"resize","start",this.element);return this.target.fire(e),this.resizing=!0,e},resizeMove:function(t){var e=new $(this,t,"resize","move",this.element);return this.target.fire(e),e},gestureStart:function(t){var e=new $(this,t,"gesture","start",this.element);return e.ds=0,this.gesture.startDistance=this.gesture.prevDistance=e.distance,this.gesture.startAngle=this.gesture.prevAngle=e.angle,this.gesture.scale=1,this.gesturing=!0,this.target.fire(e),e},gestureMove:function(t){if(!this.pointerIds.length)return this.prevEvent;var e;return e=new $(this,t,"gesture","move",this.element),e.ds=e.scale-this.gesture.scale,this.target.fire(e),this.gesture.prevAngle=e.angle,this.gesture.prevDistance=e.distance,1/0===e.scale||null===e.scale||void 0===e.scale||isNaN(e.scale)||(this.gesture.scale=e.scale),e},pointerHold:function(t,e,i){this.collectEventTargets(t,e,i,"hold")},pointerUp:function(t,e,i,r){var n=this.mouse?0:ie(this.pointerIds,y(t));
window.clearTimeout(this.holdTimers[n]),this.collectEventTargets(t,e,i,"up"),this.collectEventTargets(t,e,i,"tap"),this.pointerEnd(t,e,i,r),this.removePointer(t)},pointerCancel:function(t,e,i,r){var n=this.mouse?0:ie(this.pointerIds,y(t));window.clearTimeout(this.holdTimers[n]),this.collectEventTargets(t,e,i,"cancel"),this.pointerEnd(t,e,i,r)},ie8Dblclick:function(t,e,i){this.prevTap&&e.clientX===this.prevTap.clientX&&e.clientY===this.prevTap.clientY&&i===this.prevTap.target&&(this.downTargets[0]=i,this.downTimes[0]=(new Date).getTime(),this.collectEventTargets(t,e,i,"tap"))},pointerEnd:function(t,e,i,r){var n,s=this.target,o=s&&s.options,a=o&&this.prepared.name&&o[this.prepared.name].inertia,h=this.inertiaStatus;if(this.interacting()){if(h.active)return;var p,d,u=(new Date).getTime(),g=!1,v=!1,m=!1,f=R(s,this.prepared.name)&&o[this.prepared.name].snap.endOnly,y=F(s,this.prepared.name)&&o[this.prepared.name].restrict.endOnly,x=0,w=0;if(p=this.dragging?"x"===o.drag.axis?Math.abs(this.pointerDelta.client.vx):"y"===o.drag.axis?Math.abs(this.pointerDelta.client.vy):this.pointerDelta.client.speed:this.pointerDelta.client.speed,g=a&&a.enabled&&"gesture"!==this.prepared.name&&e!==h.startEvent,v=g&&u-this.curCoords.timeStamp<50&&p>a.minSpeed&&p>a.endSpeed,g&&!v&&(f||y)){var E={};E.snap=E.restrict=E,f&&(this.setSnapping(this.curCoords.page,E),E.locked&&(x+=E.dx,w+=E.dy)),y&&(this.setRestriction(this.curCoords.page,E),E.restricted&&(x+=E.dx,w+=E.dy)),(x||w)&&(m=!0)}if(v||m){if(c(h.upCoords,this.curCoords),this.pointers[0]=h.startEvent=d=new $(this,e,this.prepared.name,"inertiastart",this.element),h.t0=u,s.fire(h.startEvent),v){h.vx0=this.pointerDelta.client.vx,h.vy0=this.pointerDelta.client.vy,h.v0=p,this.calcInertia(h);var S,D=l({},this.curCoords.page),b=C(s,this.element);if(D.x=D.x+h.xe-b.x,D.y=D.y+h.ye-b.y,S={useStatusXY:!0,x:D.x,y:D.y,dx:0,dy:0,snap:null},S.snap=S,x=w=0,f){var T=this.setSnapping(this.curCoords.page,S);T.locked&&(x+=T.dx,w+=T.dy)}if(y){var z=this.setRestriction(this.curCoords.page,S);z.restricted&&(x+=z.dx,w+=z.dy)}h.modifiedXe+=x,h.modifiedYe+=w,h.i=Ie(this.boundInertiaFrame)}else h.smoothEnd=!0,h.xe=x,h.ye=w,h.sx=h.sy=0,h.i=Ie(this.boundSmoothEndFrame);return void(h.active=!0)}(f||y)&&this.pointerMove(t,e,i,r,!0)}if(this.dragging){n=new $(this,e,"drag","end",this.element);var M=this.element,P=this.getDrop(n,M);this.dropTarget=P.dropzone,this.dropElement=P.element;var O=this.getDropEvents(e,n);O.leave&&this.prevDropTarget.fire(O.leave),O.enter&&this.dropTarget.fire(O.enter),O.drop&&this.dropTarget.fire(O.drop),O.deactivate&&this.fireActiveDrops(O.deactivate),s.fire(n)}else this.resizing?(n=new $(this,e,"resize","end",this.element),s.fire(n)):this.gesturing&&(n=new $(this,e,"gesture","end",this.element),s.fire(n));this.stop(e)},collectDrops:function(t){var i,r=[],n=[];for(t=t||this.element,i=0;i<me.length;i++)if(me[i].options.drop.enabled){var s=me[i],o=s.options.drop.accept;if(!(e(o)&&o!==t||h(o)&&!ne(t,o)))for(var a=s.selector?s._context.querySelectorAll(s.selector):[s._element],p=0,l=a.length;l>p;p++){var c=a[p];c!==t&&(r.push(s),n.push(c))}}return{dropzones:r,elements:n}},fireActiveDrops:function(t){var e,i,r,n;for(e=0;e<this.activeDrops.dropzones.length;e++)i=this.activeDrops.dropzones[e],r=this.activeDrops.elements[e],r!==n&&(t.target=r,i.fire(t)),n=r},setActiveDrops:function(t){var e=this.collectDrops(t,!0);this.activeDrops.dropzones=e.dropzones,this.activeDrops.elements=e.elements,this.activeDrops.rects=[];for(var i=0;i<this.activeDrops.dropzones.length;i++)this.activeDrops.rects[i]=this.activeDrops.dropzones[i].getRect(this.activeDrops.elements[i])},getDrop:function(t,e){var i=[];ye&&this.setActiveDrops(e);for(var r=0;r<this.activeDrops.dropzones.length;r++){var n=this.activeDrops.dropzones[r],s=this.activeDrops.elements[r],o=this.activeDrops.rects[r];i.push(n.dropCheck(this.pointers[0],this.target,e,s,o)?s:null)}var a=H(i),h=this.activeDrops.dropzones[a]||null,p=this.activeDrops.elements[a]||null;return{dropzone:h,element:p}},getDropEvents:function(t,e){var i={enter:null,leave:null,activate:null,deactivate:null,move:null,drop:null};return this.dropElement!==this.prevDropElement&&(this.prevDropTarget&&(i.leave={target:this.prevDropElement,dropzone:this.prevDropTarget,relatedTarget:e.target,draggable:e.interactable,dragEvent:e,interaction:this,timeStamp:e.timeStamp,type:"dragleave"},e.dragLeave=this.prevDropElement,e.prevDropzone=this.prevDropTarget),this.dropTarget&&(i.enter={target:this.dropElement,dropzone:this.dropTarget,relatedTarget:e.target,draggable:e.interactable,dragEvent:e,interaction:this,timeStamp:e.timeStamp,type:"dragenter"},e.dragEnter=this.dropElement,e.dropzone=this.dropTarget)),"dragend"===e.type&&this.dropTarget&&(i.drop={target:this.dropElement,dropzone:this.dropTarget,relatedTarget:e.target,draggable:e.interactable,dragEvent:e,interaction:this,timeStamp:e.timeStamp,type:"drop"}),"dragstart"===e.type&&(i.activate={target:null,dropzone:null,relatedTarget:e.target,draggable:e.interactable,dragEvent:e,interaction:this,timeStamp:e.timeStamp,type:"dropactivate"}),"dragend"===e.type&&(i.deactivate={target:null,dropzone:null,relatedTarget:e.target,draggable:e.interactable,dragEvent:e,interaction:this,timeStamp:e.timeStamp,type:"dropdeactivate"}),"dragmove"===e.type&&this.dropTarget&&(i.move={target:this.dropElement,dropzone:this.dropTarget,relatedTarget:e.target,draggable:e.interactable,dragEvent:e,interaction:this,dragmove:e,timeStamp:e.timeStamp,type:"dropmove"},e.dropzone=this.dropTarget),i},currentAction:function(){return this.dragging&&"drag"||this.resizing&&"resize"||this.gesturing&&"gesture"||null},interacting:function(){return this.dragging||this.resizing||this.gesturing},clearTargets:function(){this.target&&!this.target.selector&&(this.target=this.element=null),this.dropTarget=this.dropElement=this.prevDropTarget=this.prevDropElement=null},stop:function(t){if(this.interacting()){Ee.stop(),this.matches=[],this.matchElements=[];var e=this.target;e.options.styleCursor&&(e._doc.documentElement.style.cursor=""),t&&s(t.preventDefault)&&this.checkAndPreventDefault(t,e,this.element),this.dragging&&(this.activeDrops.dropzones=this.activeDrops.elements=this.activeDrops.rects=null),this.clearTargets()}this.pointerIsDown=this.snapStatus.locked=this.dragging=this.resizing=this.gesturing=!1,this.prepared.name=this.prevEvent=null,this.inertiaStatus.resumeDx=this.inertiaStatus.resumeDy=0,this.pointerIds.splice(0),this.pointers.splice(0),this.downTargets.splice(0),this.downTimes.splice(0),this.holdTimers.splice(0),fe.length>1&&fe.splice(ie(fe,this),1)},inertiaFrame:function(){var t=this.inertiaStatus,e=this.target.options[this.prepared.name].inertia,i=e.resistance,r=(new Date).getTime()/1e3-t.t0;if(r<t.te){var n=1-(Math.exp(-i*r)-t.lambda_v0)/t.one_ve_v0;if(t.modifiedXe===t.xe&&t.modifiedYe===t.ye)t.sx=t.xe*n,t.sy=t.ye*n;else{var s=P(0,0,t.xe,t.ye,t.modifiedXe,t.modifiedYe,n);t.sx=s.x,t.sy=s.y}this.pointerMove(t.startEvent,t.startEvent),t.i=Ie(this.boundInertiaFrame)}else t.sx=t.modifiedXe,t.sy=t.modifiedYe,this.pointerMove(t.startEvent,t.startEvent),t.active=!1,this.pointerEnd(t.startEvent,t.startEvent)},smoothEndFrame:function(){var t=this.inertiaStatus,e=(new Date).getTime()-t.t0,i=this.target.options[this.prepared.name].inertia.smoothEndDuration;i>e?(t.sx=O(e,0,t.xe,i),t.sy=O(e,0,t.ye,i),this.pointerMove(t.startEvent,t.startEvent),t.i=Ie(this.boundSmoothEndFrame)):(t.sx=t.xe,t.sy=t.ye,this.pointerMove(t.startEvent,t.startEvent),t.active=!1,t.smoothEnd=!1,this.pointerEnd(t.startEvent,t.startEvent))},addPointer:function(t){var e=y(t),i=this.mouse?0:ie(this.pointerIds,e);return-1===i&&(i=this.pointerIds.length),this.pointerIds[i]=e,this.pointers[i]=t,i},removePointer:function(t){var e=y(t),i=this.mouse?0:ie(this.pointerIds,e);-1!==i&&(this.interacting()||this.pointers.splice(i,1),this.pointerIds.splice(i,1),this.downTargets.splice(i,1),this.downTimes.splice(i,1),this.holdTimers.splice(i,1))},recordPointer:function(t){if(!this.inertiaStatus.active){var e=this.mouse?0:ie(this.pointerIds,y(t));-1!==e&&(this.pointers[e]=t)}},collectEventTargets:function(t,i,r,n){function s(t,i,s){var o=oe?s.querySelectorAll(i):void 0;t._iEvents[n]&&e(p)&&Y(t,p)&&!_(t,p,r)&&k(t,p,r)&&ne(p,i,o)&&(a.push(t),h.push(p))}var o=this.mouse?0:ie(this.pointerIds,y(t));if("tap"!==n||!this.pointerWasMoved&&this.downTargets[o]&&this.downTargets[o]===r){for(var a=[],h=[],p=r;p;)J.isSet(p)&&J(p)._iEvents[n]&&(a.push(J(p)),h.push(p)),me.forEachSelector(s),p=p.parentNode;(a.length||"tap"===n)&&this.firePointers(t,i,r,a,h,n)}},firePointers:function(t,e,i,r,n,s){var o,a,p,c=this.mouse?0:ie(y(t)),d={};for("doubletap"===s?d=t:(l(d,e),e!==t&&l(d,t),d.preventDefault=G,d.stopPropagation=$.prototype.stopPropagation,d.stopImmediatePropagation=$.prototype.stopImmediatePropagation,d.interaction=this,d.timeStamp=(new Date).getTime(),d.originalEvent=e,d.type=s,d.pointerId=y(t),d.pointerType=this.mouse?"mouse":De?h(t.pointerType)?t.pointerType:[,,"touch","pen","mouse"][t.pointerType]:"touch"),"tap"===s&&(d.dt=d.timeStamp-this.downTimes[c],a=d.timeStamp-this.tapTime,p=this.prevTap&&"doubletap"!==this.prevTap.type&&this.prevTap.target===d.target&&500>a,this.tapTime=d.timeStamp),o=0;o<r.length&&(d.currentTarget=n[o],d.interactable=r[o],r[o].fire(d),!(d.immediatePropagationStopped||d.propagationStopped&&n[o+1]!==d.currentTarget));o++);if(p){var u={};l(u,d),u.dt=a,u.type="doubletap",this.collectEventTargets(u,e,i,"doubletap"),this.prevTap=u}else"tap"===s&&(this.prevTap=d)},validateSelector:function(t,e,i){for(var r=0,n=e.length;n>r;r++){var s=e[r],o=i[r],a=B(s.getAction(t,this,o),s);if(a&&q(s,o,a))return this.target=s,this.element=o,a}},setSnapping:function(t,e){var i,r,n,a=this.target.options[this.prepared.name].snap,h=[];if(e=e||this.snapStatus,e.useStatusXY)r={x:e.x,y:e.y};else{var p=C(this.target,this.element);r=l({},t),r.x-=p.x,r.y-=p.y}e.realX=r.x,e.realY=r.y,r.x=r.x-this.inertiaStatus.resumeDx,r.y=r.y-this.inertiaStatus.resumeDy;for(var c=a.targets?a.targets.length:0,d=0;d<this.snapOffsets.length;d++){var u={x:r.x-this.snapOffsets[d].x,y:r.y-this.snapOffsets[d].y};for(n=0;c>n;n++)i=s(a.targets[n])?a.targets[n](u.x,u.y,this):a.targets[n],i&&h.push({x:o(i.x)?i.x+this.snapOffsets[d].x:u.x,y:o(i.y)?i.y+this.snapOffsets[d].y:u.y,range:o(i.range)?i.range:a.range})}var g={target:null,inRange:!1,distance:0,range:0,dx:0,dy:0};for(n=0,c=h.length;c>n;n++){i=h[n];var v=i.range,m=i.x-r.x,f=i.y-r.y,y=ue(m,f),x=v>=y;1/0===v&&g.inRange&&1/0!==g.range&&(x=!1),(!g.target||(x?g.inRange&&1/0!==v?y/v<g.distance/g.range:1/0===v&&1/0!==g.range||y<g.distance:!g.inRange&&y<g.distance))&&(1/0===v&&(x=!0),g.target=i,g.distance=y,g.range=v,g.inRange=x,g.dx=m,g.dy=f,e.range=v)}var w;return g.target?(w=e.snappedX!==g.target.x||e.snappedY!==g.target.y,e.snappedX=g.target.x,e.snappedY=g.target.y):(w=!0,e.snappedX=0/0,e.snappedY=0/0),e.dx=g.dx,e.dy=g.dy,e.changed=w||g.inRange&&!e.locked,e.locked=g.inRange,e},setRestriction:function(t,i){var r,n=this.target,o=n&&n.options[this.prepared.name].restrict,a=o&&o.restriction;if(!a)return i;i=i||this.restrictStatus,r=r=i.useStatusXY?{x:i.x,y:i.y}:l({},t),i.snap&&i.snap.locked&&(r.x+=i.snap.dx||0,r.y+=i.snap.dy||0),r.x-=this.inertiaStatus.resumeDx,r.y-=this.inertiaStatus.resumeDy,i.dx=0,i.dy=0,i.restricted=!1;var p,c,d;return h(a)&&(a="parent"===a?this.element.parentNode:"self"===a?n.getRect(this.element):X(this.element,a),!a)?i:(s(a)&&(a=a(r.x,r.y,this.element)),e(a)&&(a=E(a)),p=a,a?"x"in a&&"y"in a?(c=Math.max(Math.min(p.x+p.width-this.restrictOffset.right,r.x),p.x+this.restrictOffset.left),d=Math.max(Math.min(p.y+p.height-this.restrictOffset.bottom,r.y),p.y+this.restrictOffset.top)):(c=Math.max(Math.min(p.right-this.restrictOffset.right,r.x),p.left+this.restrictOffset.left),d=Math.max(Math.min(p.bottom-this.restrictOffset.bottom,r.y),p.top+this.restrictOffset.top)):(c=r.x,d=r.y),i.dx=c-r.x,i.dy=d-r.y,i.changed=i.restrictedX!==c||i.restrictedY!==d,i.restricted=!(!i.dx&&!i.dy),i.restrictedX=c,i.restrictedY=d,i)},checkAndPreventDefault:function(t,e,i){if(e=e||this.target){var r=e.options,n=r.preventDefault;if("auto"===n&&i&&!/^input$|^textarea$/i.test(i.nodeName)){if(/down|start/i.test(t.type)&&"drag"===this.prepared.name&&"xy"!==r.drag.axis)return;return void t.preventDefault()}return"always"===n?void t.preventDefault():void 0}},calcInertia:function(t){var e=this.target.options[this.prepared.name].inertia,i=e.resistance,r=-Math.log(e.endSpeed/t.v0)/i;t.x0=this.prevEvent.pageX,t.y0=this.prevEvent.pageY,t.t0=t.startEvent.timeStamp/1e3,t.sx=t.sy=0,t.modifiedXe=t.xe=(t.vx0-r)/i,t.modifiedYe=t.ye=(t.vy0-r)/i,t.te=r,t.lambda_v0=i/t.v0,t.one_ve_v0=1-e.endSpeed/t.v0}},$.prototype={preventDefault:t,stopImmediatePropagation:function(){this.immediatePropagationStopped=this.propagationStopped=!0},stopPropagation:function(){this.propagationStopped=!0}};for(var Ne={},qe=["dragStart","dragMove","resizeStart","resizeMove","gestureStart","gestureMove","pointerOver","pointerOut","pointerHover","selectorDown","pointerDown","pointerMove","pointerUp","pointerCancel","pointerEnd","addPointer","removePointer","recordPointer"],He=0,We=qe.length;We>He;He++){var Ue=qe[He];Ne[Ue]=V(Ue)}me.indexOfElement=function(t,e){e=e||ae;for(var i=0;i<this.length;i++){var r=this[i];if(r.selector===t&&r._context===e||!r.selector&&r._element===t)return i}return-1},me.get=function(t,e){return this[this.indexOfElement(t,e&&e.context)]},me.forEachSelector=function(t){for(var e=0;e<this.length;e++){var i=this[e];if(i.selector){var r=t(i,i.selector,i._context,e,this);if(void 0!==r)return r}}},Q.prototype={setOnEvents:function(t,e){return"drop"===t?(s(e.ondrop)&&(this.ondrop=e.ondrop),s(e.ondropactivate)&&(this.ondropactivate=e.ondropactivate),s(e.ondropdeactivate)&&(this.ondropdeactivate=e.ondropdeactivate),s(e.ondragenter)&&(this.ondragenter=e.ondragenter),s(e.ondragleave)&&(this.ondragleave=e.ondragleave),s(e.ondropmove)&&(this.ondropmove=e.ondropmove)):(t="on"+t,s(e.onstart)&&(this[t+"start"]=e.onstart),s(e.onmove)&&(this[t+"move"]=e.onmove),s(e.onend)&&(this[t+"end"]=e.onend),s(e.oninertiastart)&&(this[t+"inertiastart"]=e.oninertiastart)),this},draggable:function(t){return n(t)?(this.options.drag.enabled=t.enabled===!1?!1:!0,this.setPerAction("drag",t),this.setOnEvents("drag",t),/^x$|^y$|^xy$/.test(t.axis)?this.options.drag.axis=t.axis:null===t.axis&&delete this.options.drag.axis,this):a(t)?(this.options.drag.enabled=t,this):this.options.drag},setPerAction:function(t,e){for(var i in e)i in we[t]&&(n(e[i])?(this.options[t][i]=l(this.options[t][i]||{},e[i]),n(we.perAction[i])&&"enabled"in we.perAction[i]&&(this.options[t][i].enabled=e[i].enabled===!1?!1:!0)):a(e[i])&&n(we.perAction[i])?this.options[t][i].enabled=e[i]:void 0!==e[i]&&(this.options[t][i]=e[i]))},dropzone:function(t){return n(t)?(this.options.drop.enabled=t.enabled===!1?!1:!0,this.setOnEvents("drop",t),this.accept(t.accept),/^(pointer|center)$/.test(t.overlap)?this.options.drop.overlap=t.overlap:o(t.overlap)&&(this.options.drop.overlap=Math.max(Math.min(1,t.overlap),0)),this):a(t)?(this.options.drop.enabled=t,this):this.options.drop},dropCheck:function(t,e,i,r,n){if(!(n=n||this.getRect(r)))return!1;var s=this.options.drop.overlap;if("pointer"===s){var a,h,p=v(t),l=C(e,i);return p.x+=l.x,p.y+=l.y,a=p.x>n.left&&p.x<n.right,h=p.y>n.top&&p.y<n.bottom,a&&h}var c=e.getRect(i);if("center"===s){var d=c.left+c.width/2,u=c.top+c.height/2;return d>=n.left&&d<=n.right&&u>=n.top&&u<=n.bottom}if(o(s)){var g=Math.max(0,Math.min(n.right,c.right)-Math.max(n.left,c.left))*Math.max(0,Math.min(n.bottom,c.bottom)-Math.max(n.top,c.top)),m=g/(c.width*c.height);return m>=s}},dropChecker:function(t){return s(t)?(this.dropCheck=t,this):this.dropCheck},accept:function(t){return e(t)?(this.options.drop.accept=t,this):p(t)?(this.options.drop.accept=t,this):null===t?(delete this.options.drop.accept,this):this.options.drop.accept},resizable:function(t){return n(t)?(this.options.resize.enabled=t.enabled===!1?!1:!0,this.setPerAction("resize",t),this.setOnEvents("resize",t),/^x$|^y$|^xy$/.test(t.axis)?this.options.resize.axis=t.axis:null===t.axis&&(this.options.resize.axis=we.resize.axis),a(t.square)&&(this.options.resize.square=t.square),this):a(t)?(this.options.resize.enabled=t,this):this.options.resize},squareResize:function(t){return a(t)?(this.options.resize.square=t,this):null===t?(delete this.options.resize.square,this):this.options.resize.square},gesturable:function(t){return n(t)?(this.options.gesture.enabled=t.enabled===!1?!1:!0,this.setPerAction("gesture",t),this.setOnEvents("gesture",t),this):a(t)?(this.options.gesture.enabled=t,this):this.options.gesture},autoScroll:function(t){return n(t)?t=l({actions:["drag","resize"]},t):a(t)&&(t={actions:["drag","resize"],enabled:t}),this.setOptions("autoScroll",t)},snap:function(t){var e=this.setOptions("snap",t);return e===this?this:e.drag},setOptions:function(t,e){var i,s=e&&r(e.actions)?e.actions:["drag"];if(n(e)||a(e)){for(i=0;i<s.length;i++){var o=/resize/.test(s[i])?"resize":s[i];if(n(this.options[o])){var h=this.options[o][t];n(e)?(l(h,e),h.enabled=e.enabled===!1?!1:!0,"snap"===t&&("grid"===h.mode?h.targets=[J.createSnapGrid(l({offset:h.gridOffset||{x:0,y:0}},h.grid||{}))]:"anchor"===h.mode?h.targets=h.anchors:"path"===h.mode&&(h.targets=h.paths),"elementOrigin"in e&&(h.relativePoints=[e.elementOrigin]))):a(e)&&(h.enabled=e)}}return this}var p={},c=["drag","resize","gesture"];for(i=0;i<c.length;i++)t in we[c[i]]&&(p[c[i]]=this.options[c[i]][t]);return p},inertia:function(t){var e=this.setOptions("inertia",t);return e===this?this:e.drag},getAction:function(t,e,i){var r=this.defaultActionChecker(t,e,i);return this.options.actionChecker?this.options.actionChecker(t,r,this,i,e):r},defaultActionChecker:L,actionChecker:function(t){return s(t)?(this.options.actionChecker=t,this):null===t?(delete this.options.actionChecker,this):this.options.actionChecker},getRect:function(t){return t=t||this._element,this.selector&&!e(t)&&(t=this._context.querySelector(this.selector)),E(t)},rectChecker:function(t){return s(t)?(this.getRect=t,this):null===t?(delete this.options.getRect,this):this.getRect},styleCursor:function(t){return a(t)?(this.options.styleCursor=t,this):null===t?(delete this.options.styleCursor,this):this.options.styleCursor},preventDefault:function(t){return/^(always|never|auto)$/.test(t)?(this.options.preventDefault=t,this):a(t)?(this.options.preventDefault=t?"always":"never",this):this.options.preventDefault},origin:function(t){return p(t)?(this.options.origin=t,this):n(t)?(this.options.origin=t,this):this.options.origin},deltaSource:function(t){return"page"===t||"client"===t?(this.options.deltaSource=t,this):this.options.deltaSource},restrict:function(t){if(!n(t))return this.setOptions("restrict",t);for(var e,i=["drag","resize","gesture"],r=0;r<i.length;r++){var s=i[r];if(s in t){var o=l({actions:[s],restriction:t[s]},t);e=this.setOptions("restrict",o)}}return e},context:function(){return this._context},_context:ae,ignoreFrom:function(t){return p(t)?(this.options.ignoreFrom=t,this):e(t)?(this.options.ignoreFrom=t,this):this.options.ignoreFrom},allowFrom:function(t){return p(t)?(this.options.allowFrom=t,this):e(t)?(this.options.allowFrom=t,this):this.options.allowFrom},element:function(){return this._element},fire:function(t){if(!t||!t.type||!re(Ae,t.type))return this;var e,i,r,n="on"+t.type,o="";if(t.type in this._iEvents)for(e=this._iEvents[t.type],i=0,r=e.length;r>i&&!t.immediatePropagationStopped;i++)o=e[i].name,e[i](t);if(s(this[n])&&(o=this[n].name,this[n](t)),t.type in Xe&&(e=Xe[t.type]))for(i=0,r=e.length;r>i&&!t.immediatePropagationStopped;i++)o=e[i].name,e[i](t);return this},on:function(t,e,i){var s;if(h(t)&&-1!==t.search(" ")&&(t=t.trim().split(/ +/)),r(t)){for(s=0;s<t.length;s++)this.on(t[s],e,i);return this}if(n(t)){for(var o in t)J.on(o,t[o],e);return this}if("wheel"===t&&(t=Oe),i=i?!0:!1,re(Ae,t))t in this._iEvents?this._iEvents[t].push(e):this._iEvents[t]=[e];else if(this.selector){if(!xe[t])for(xe[t]={selectors:[],contexts:[],listeners:[]},s=0;s<ve.length;s++)Fe.add(ve[s],t,K),Fe.add(ve[s],t,j,!0);var a,p=xe[t];for(a=p.selectors.length-1;a>=0&&(p.selectors[a]!==this.selector||p.contexts[a]!==this._context);a--);-1===a&&(a=p.selectors.length,p.selectors.push(this.selector),p.contexts.push(this._context),p.listeners.push([])),p.listeners[a].push([e,i])}else Fe.add(this._element,t,e,i);return this},off:function(t,e,i){var s;if(h(t)&&-1!==t.search(" ")&&(t=t.trim().split(/ +/)),r(t)){for(s=0;s<t.length;s++)this.off(t[s],e,i);return this}if(n(t)){for(var o in t)J.off(o,t[o],e);return this}var a,p=-1;if(i=i?!0:!1,"wheel"===t&&(t=Oe),re(Ae,t))a=this._iEvents[t],a&&-1!==(p=ie(a,e))&&this._iEvents[t].splice(p,1);else if(this.selector){var l=xe[t],c=!1;if(!l)return this;for(p=l.selectors.length-1;p>=0;p--)if(l.selectors[p]===this.selector&&l.contexts[p]===this._context){var d=l.listeners[p];for(s=d.length-1;s>=0;s--){var u=d[s][0],g=d[s][1];if(u===e&&g===i){d.splice(s,1),d.length||(l.selectors.splice(p,1),l.contexts.splice(p,1),l.listeners.splice(p,1),Fe.remove(this._context,t,K),Fe.remove(this._context,t,j,!0),l.selectors.length||(xe[t]=null)),c=!0;break}}if(c)break}}else Fe.remove(this._element,t,e,i);return this},set:function(t){n(t)||(t={}),this.options=l({},we.base);var e,i=["drag","drop","resize","gesture"],r=["draggable","dropzone","resizable","gesturable"],s=l(l({},we.perAction),t[o]||{});for(e=0;e<i.length;e++){var o=i[e];this.options[o]=l({},we[o]),this.setPerAction(o,s),this[r[e]](t[o])}var a=["accept","actionChecker","allowFrom","deltaSource","dropChecker","ignoreFrom","origin","preventDefault","rectChecker"];for(e=0,We=a.length;We>e;e++){var h=a[e];this.options[h]=we.base[h],h in t&&this[h](t[h])}return this},unset:function(){if(Fe.remove(this,"all"),h(this.selector))for(var t in xe)for(var e=xe[t],i=0;i<e.selectors.length;i++){e.selectors[i]===this.selector&&e.contexts[i]===this._context&&(e.selectors.splice(i,1),e.contexts.splice(i,1),e.listeners.splice(i,1),e.selectors.length||(xe[t]=null)),Fe.remove(this._context,t,K),Fe.remove(this._context,t,j,!0);break}else Fe.remove(this,"all"),this.options.styleCursor&&(this._element.style.cursor="");return this.dropzone(!1),me.splice(ie(me,this),1),J}},Q.prototype.snap=Z(Q.prototype.snap,"Interactable#snap is deprecated. See the new documentation for snapping at http://interactjs.io/docs/#snap"),Q.prototype.restrict=Z(Q.prototype.restrict,"Interactable#restrict is deprecated. See the new documentation for resticting at http://interactjs.io/docs/#restrict"),Q.prototype.inertia=Z(Q.prototype.inertia,"Interactable#inertia is deprecated. See the new documentation for inertia at http://interactjs.io/docs/#inertia"),Q.prototype.autoScroll=Z(Q.prototype.autoScroll,"Interactable#autoScroll is deprecated. See the new documentation for autoScroll at http://interactjs.io/docs/#autoscroll"),J.isSet=function(t,e){return-1!==me.indexOfElement(t,e&&e.context)},J.on=function(t,e,i){if(h(t)&&-1!==t.search(" ")&&(t=t.trim().split(/ +/)),r(t)){for(var s=0;s<t.length;s++)J.on(t[s],e,i);return J}if(n(t)){for(var o in t)J.on(o,t[o],e);return J}return re(Ae,t)?Xe[t]?Xe[t].push(e):Xe[t]=[e]:Fe.add(ae,t,e,i),J},J.off=function(t,e,i){if(h(t)&&-1!==t.search(" ")&&(t=t.trim().split(/ +/)),r(t)){for(var s=0;s<t.length;s++)J.off(t[s],e,i);return J}if(n(t)){for(var o in t)J.off(o,t[o],e);return J}if(re(Ae,t)){var a;t in Xe&&-1!==(a=ie(Xe[t],e))&&Xe[t].splice(a,1)}else Fe.remove(ae,t,e,i);return J},J.enableDragging=Z(function(t){return null!==t&&void 0!==t?(Pe.drag=t,J):Pe.drag},"interact.enableDragging is deprecated and will soon be removed."),J.enableResizing=Z(function(t){return null!==t&&void 0!==t?(Pe.resize=t,J):Pe.resize},"interact.enableResizing is deprecated and will soon be removed."),J.enableGesturing=Z(function(t){return null!==t&&void 0!==t?(Pe.gesture=t,J):Pe.gesture},"interact.enableGesturing is deprecated and will soon be removed."),J.eventTypes=Ae,J.debug=function(){var t=fe[0]||new W;return{interactions:fe,target:t.target,dragging:t.dragging,resizing:t.resizing,gesturing:t.gesturing,prepared:t.prepared,matches:t.matches,matchElements:t.matchElements,prevCoords:t.prevCoords,startCoords:t.startCoords,pointerIds:t.pointerIds,pointers:t.pointers,addPointer:Ne.addPointer,removePointer:Ne.removePointer,recordPointer:Ne.recordPointer,snap:t.snapStatus,restrict:t.restrictStatus,inertia:t.inertiaStatus,downTime:t.downTimes[0],downEvent:t.downEvent,downPointer:t.downPointer,prevEvent:t.prevEvent,Interactable:Q,interactables:me,pointerIsDown:t.pointerIsDown,defaultOptions:we,defaultActionChecker:L,actionCursors:Me,dragMove:Ne.dragMove,resizeMove:Ne.resizeMove,gestureMove:Ne.gestureMove,pointerUp:Ne.pointerUp,pointerDown:Ne.pointerDown,pointerMove:Ne.pointerMove,pointerHover:Ne.pointerHover,events:Fe,globalEvents:Xe,delegatedEvents:xe}},J.getTouchAverage=D,J.getTouchBBox=b,J.getTouchDistance=T,J.getTouchAngle=z,J.getElementRect=E,J.matchesSelector=ne,J.closest=X,J.margin=function(t){return o(t)?(be=t,J):be},J.supportsTouch=function(){return Se},J.supportsPointerEvent=function(){return De},J.stop=function(t){for(var e=fe.length-1;e>0;e--)fe[e].stop(t);return J},J.dynamicDrop=function(t){return a(t)?(ye=t,J):ye},J.pointerMoveTolerance=function(t){return o(t)?(Te=t,this):Te},J.maxInteractions=function(t){return o(t)?(Ce=t,this):Ce},J.createSnapGrid=function(t){return function(e,i){var r=0,s=0;n(t.offset)&&(r=t.offset.x,s=t.offset.y);var o=Math.round((e-r)/t.x),a=Math.round((i-s)/t.y),h=o*t.x+r,p=a*t.y+s;return{x:h,y:p,range:t.range}}},ee(ae),ke in Element.prototype&&s(Element.prototype[ke])||(oe=function(t,e,i){i=i||t.parentNode.querySelectorAll(e);for(var r=0,n=i.length;n>r;r++)if(i[r]===t)return!0;return!1}),function(){for(var t=0,e=["ms","moz","webkit","o"],i=0;i<e.length&&!window.requestAnimationFrame;++i)Ie=window[e[i]+"RequestAnimationFrame"],Re=window[e[i]+"CancelAnimationFrame"]||window[e[i]+"CancelRequestAnimationFrame"];Ie||(Ie=function(e){var i=(new Date).getTime(),r=Math.max(0,16-(i-t)),n=window.setTimeout(function(){e(i+r)},r);return t=i+r,n}),Re||(Re=function(t){clearTimeout(t)})}(),"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=J),exports.interact=J):"function"==typeof define&&define.amd?define("interact",function(){return J}):window.interact=J}();