forked from taye/interact.js
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinteract.min.js
3 lines (3 loc) · 45.6 KB
/
interact.min.js
1
2
3
/* interact.js v1.0.20 | https://raw.github.com/taye/interact.js/master/LICENSE */
!function(e){"use strict";function t(){}function n(e){return!!e&&"object"==typeof e&&(/object|function/.test(typeof Element)?e instanceof Element:1===e.nodeType&&"string"==typeof e.nodeName)}function i(e,t){s(t,Dt),e.pageX=Dt.x,e.pageY=Dt.y,a(t,Dt),e.clientX=Dt.x,e.clientY=Dt.y,e.timeStamp=(new Date).getTime()}function r(e,t,n){e.pageX=n.pageX-t.pageX,e.pageY=n.pageY-t.pageY,e.clientX=n.clientX-t.clientX,e.clientY=n.clientY-t.clientY,e.timeStamp=(new Date).getTime()-t.timeStamp;var i=Math.max(e.timeStamp/1e3,.001);e.pageSpeed=yt(e.pageX,e.pageY)/i,e.pageVX=e.pageX/i,e.pageVY=e.pageY/i,e.clientSpeed=yt(e.clientX,e.pageY)/i,e.clientVX=e.clientX/i,e.clientVY=e.clientY/i}function o(e,t,n){var i,r,o;return n=n||{},e=e||"page",/touch/.test(t.type)&&t.touches?(i=t.touches.length?t.touches[0]:t.changedTouches[0],r=i[e+"X"],o=i[e+"Y"]):(r=t[e+"X"],o=t[e+"Y"]),n.x=r,n.y=o,n}function s(t,n){return n=n||{},t instanceof T?/inertiastart/.test(t.type)?(s(At.pointerUp,n),n.x+=At.sx,n.y+=At.sy):(n.x=t.pageX,n.y=t.pageY):dn?(o("screen",t,n),n.x+=e.scrollX,n.y+=e.scrollY):/gesture|inertia/i.test(t.type)?(o("client",t,n),n.x+=ct.documentElement.scrollLeft,n.y+=ct.documentElement.scrollTop):o("page",t,n),n}function a(e,t){return t=t||{},e instanceof T?/inertiastart/.test(e.type)?(a(At.pointerUp,t),t.x+=At.sx,t.y+=At.sy):(t.x=e.clientX,t.y=e.clientY):o(dn?"screen":"client",e,t),t}function l(){return{x:e.scrollX||ct.documentElement.scrollLeft,y:e.scrollY||ct.documentElement.scrollTop}}function c(e){var t=/ipad|iphone|ipod/i.test(navigator.userAgent)?{x:0,y:0}:l(),n=e instanceof dt?e.getBoundingClientRect():e.getClientRects()[0];return n&&{left:n.left+t.x,right:n.right+t.x,top:n.top+t.y,bottom:n.bottom+t.y,width:n.width||n.right-n.left,height:n.heigh||n.bottom-n.top}}function p(e){var t=[];return e instanceof Array?(t[0]=e[0],t[1]=e[1]):"touchend"===e.type?1===e.touches.length?(t[0]=e.touches[0],t[1]=e.changedTouches[0]):0===e.touches.length&&(t[0]=e.changedTouches[0],t[1]=e.changedTouches[1]):(t[0]=e.touches[0],t[1]=e.touches[1]),t}function d(e){var t=p(e);return{pageX:(t[0].pageX+t[1].pageX)/2,pageY:(t[0].pageY+t[1].pageY)/2,clientX:(t[0].clientX+t[1].clientX)/2,clientY:(t[0].clientY+t[1].clientY)/2}}function u(e){if(e.touches&&e.touches.length||mt&&_t.length){var t=p(e),n=Math.min(t[0].pageX,t[1].pageX),i=Math.min(t[0].pageY,t[1].pageY),r=Math.max(t[0].pageX,t[1].pageX),o=Math.max(t[0].pageY,t[1].pageY);return{x:n,y:i,left:n,top:i,width:r-n,height:o-i}}}function h(e){var t=(Nt&&Nt.options||Gt).deltaSource,n=t+"X",i=t+"Y",r=p(e),o=r[0][n]-r[1][n],s=r[0][i]-r[1][i];return yt(o,s)}function g(e,t){var n=(Nt&&Nt.options||Gt).deltaSource,i=n+"X",r=n+"Y",o=p(e),s=o[0][i]-o[1][i],a=o[0][r]-o[1][r],l=180*Math.atan(a/s)/Math.PI;if("number"==typeof t){var c=l-t,d=c%360;d>315?l-=360+l/360|0:d>135?l-=180+l/360|0:-315>d?l+=360+l/360|0:-135>d&&(l+=180+l/360|0)}return l}function f(e,t){e=e||Nt;var i=e?e.options.origin:Gt.origin;return t=t||e._element,"parent"===i?i=t.parentNode:"self"===i&&(i=t),n(i)?(i=c(i),i.x=i.left,i.y=i.top):"function"==typeof i&&(i=i(e&&t)),i}function m(){var e=At.target.options.inertia,t=e.resistance,n=(new Date).getTime()/1e3-At.t0;if(n<At.te){var i=1-(Math.exp(-t*n)-At.lambda_v0)/At.one_ve_v0;if(At.modifiedXe===At.xe&&At.modifiedYe===At.ye)At.sx=At.xe*i,At.sy=At.ye*i;else{var r=y(0,0,At.xe,At.ye,At.modifiedXe,At.modifiedYe,i);At.sx=r.x,At.sy=r.y}N(At.startEvent),At.i=hn(m)}else At.sx=At.modifiedXe,At.sy=At.modifiedYe,At.active=!1,N(At.startEvent),J(At.startEvent)}function v(e,t,n,i){var r=1-e;return r*r*t+2*r*e*n+e*e*i}function y(e,t,n,i,r,o,s){return{x:v(s,e,n,r),y:v(s,t,i,o)}}function x(e,t){for(;t=t.parentNode;)if(t===e)return!0;return!1}function b(e,t){return e._context===ct||x(e._context,t)}function S(e,t){var i=e.options.ignoreFrom;return t&&n(t)?"string"==typeof i?ot(t,i)||S(e,t.parentNode):n(i)?t===i||x(i,t):!1:!1}function E(e,t){if(t){var n=t.options,i=n.preventDefault;if("auto"===i&&!/^input$|^textarea$/i.test(Nt._element.nodeName)){if(/down|start/i.test(e.type)&&"drag"===sn&&"xy"!==n.dragAxis)return;return void e.preventDefault()}return i===!0?void e.preventDefault():void 0}}function z(e,t){if(!t)return!1;var n=t.options.dragAxis;return"xy"===e||"xy"===n||n===e}function _(e,t){var i,r=[],o=[];for(t=t||Nt._element,i=0;i<kt.length;i++){var s=kt[i];if(!(n(s.options.accept)&&s.options.accept!==t||"string"==typeof s.options.accept&&!ot(t,s.options.accept))){s.selector&&(s._dropElements=s._context.querySelectorAll(s.selector));for(var a=0,l=s._dropElements.length;l>a;a++){var c=s._dropElements[a];c!==t&&(r.push(s),o.push(c))}}}return{dropzones:r,elements:o}}function X(e){var t,n,i,r;for(t=0;t<Rt.dropzones.length;t++)n=Rt.dropzones[t],i=Rt.elements[t],i!==r&&(e.target=i,n.fire(e)),r=i}function Y(e){var t,n,i,r,o,s=e[0],a=s?0:-1,l=[],c=[];for(r=1;r<e.length;r++)if(t=e[r],t&&t!==s)if(s){if(t.parentNode!==ct)if(s.parentNode!==ct){if(!l.length)for(n=s;n.parentNode&&n.parentNode!==ct;)l.unshift(n),n=n.parentNode;if(s instanceof gt&&t instanceof dt&&!(t instanceof ut)){if(t===s.parentNode)continue;n=t.ownerSVGElement}else n=t;for(c=[];n.parentNode!==ct;)c.unshift(n),n=n.parentNode;for(o=0;c[o]&&c[o]===l[o];)o++;var p=[c[o-1],c[o],l[o]];for(i=p[0].lastChild;i;){if(i===p[1]){s=t,a=r,l=[];break}if(i===p[2])break;i=i.previousSibling}}else s=t,a=r}else s=t,a=r;return a}function w(e,t,n){var i=[];if(n=n||en){var r=_(e,t,n);Rt.dropzones=r.dropzones,Rt.elements=r.elements,Rt.rects=[];for(var o=0;o<Rt.dropzones.length;o++)Rt.rects[o]=Rt.dropzones[o].getRect(Rt.elements[o])}for(var s=0;s<Rt.dropzones.length;s++){var a=Rt.dropzones[s],l=Rt.elements[s],c=Rt.rects[s];i.push(a.dropCheck(e,Nt,t,c)?l:null)}var p=Y(i),d=Rt.dropzones[p]||null,u=Rt.elements[p]||null;return d&&d.selector&&(d._element=u),{dropzone:d,element:u}}function O(e,t,n){var i=null,r=null,o=null,s=null,a=null;return Ft!==It&&(Lt&&(i=new T(e,"drag","leave",It,t.target),t.dragLeave=It),qt&&(r=new T(e,"drag","enter",Ft,t.target),t.dragEnter=Ft)),"dragend"===t.type&&qt&&(a=new T(e,"drop",null,Ft,t.target)),"dragmove"===t.type&&n&&(o=new T(e,"drop","activate",null,t.target)),"dragend"!==t.type||n||(s=new T(e,"drop","deactivate",null,t.target)),{leave:i,enter:r,activate:o,deactivate:s,drop:a}}function T(e,t,n,r,o){var l,c,p=(Nt&&Nt.options||Gt).deltaSource,m=p+"X",v=p+"Y",y=Nt?Nt.options:Gt,x=f(Nt,r);if(r=r||Nt._element,"gesture"===t){var b=d(_t);c={x:b.pageX-x.x,y:b.pageY-x.y},l={x:b.clientX-x.x,y:b.clientY-x.y}}else c=s(e),l=a(e),c.x-=x.x,c.y-=x.y,l.x-=x.x,l.y-=x.y,y.snapEnabled&&-1!==rt(y.snap.actions,t)&&(this.snap={range:Vt.range,locked:Vt.locked,x:Vt.x,y:Vt.y,realX:Vt.realX,realY:Vt.realY,dx:Vt.dx,dy:Vt.dy},Vt.locked&&(c.x+=Vt.dx,c.y+=Vt.dy,l.x+=Vt.dx,l.y+=Vt.dy));if(Nt.options.restrict[t]&&Bt.restricted&&(c.x+=Bt.dx,c.y+=Bt.dy,l.x+=Bt.dx,l.y+=Bt.dy,this.restrict={dx:Bt.dx,dy:Bt.dy}),this.pageX=c.x,this.pageY=c.y,this.clientX=l.x,this.clientY=l.y,"start"!==n||e instanceof T||i(St,this),this.x0=St.pageX,this.y0=St.pageY,this.clientX0=St.clientX,this.clientY0=St.clientY,this.ctrlKey=e.ctrlKey,this.altKey=e.altKey,this.shiftKey=e.shiftKey,this.metaKey=e.metaKey,this.button=e.button,this.target=r,this.t0=Xt,this.type=t+(n||""),this.interactbale=Nt,At.active&&(this.detail="inertia"),o&&(this.relatedTarget=o),wt&&"inertia"===wt.detail&&!At.active&&y.inertia.zeroResumeDelta?this.dx=this.dy=0:"end"===n||"drop"===t?"client"===p?(this.dx=l.x-St.clientX,this.dy=l.y-St.clientY):(this.dx=c.x-St.pageX,this.dy=c.y-St.pageY):"inertiastart"===n?(this.dx=wt.dx,this.dy=wt.dy):"client"===p?(this.dx=l.x-wt.clientX,this.dy=l.y-wt.clientY):(this.dx=c.x-wt.pageX,this.dy=c.y-wt.pageY),"resize"===t?y.squareResize||e.shiftKey?("y"===nn?this.dx=this.dy:this.dy=this.dx,this.axes="xy"):(this.axes=nn,"x"===nn?this.dy=0:"y"===nn&&(this.dx=0)):"gesture"===t&&(this.touches=mt?[_t[0],_t[1]]:e.touches,"start"===n?(this.distance=h(_t),this.box=u(_t),this.scale=1,this.ds=0,this.angle=g(_t),this.da=0):"end"===n||e instanceof T?(this.distance=wt.distance,this.box=wt.box,this.scale=wt.scale,this.ds=this.scale-1,this.angle=wt.angle,this.da=this.angle-Mt.startAngle):(this.distance=h(_t),this.box=u(_t),this.scale=this.distance/Mt.startDistance,this.angle=g(_t,Mt.prevAngle),this.ds=this.scale-Mt.prevScale,this.da=this.angle-Mt.prevAngle)),"start"===n)this.timeStamp=Xt,this.dt=0,this.duration=0,this.speed=0,this.velocityX=0,this.velocityY=0;else if("inertiastart"===n)this.timeStamp=(new Date).getTime(),this.dt=wt.dt,this.duration=wt.duration,this.speed=wt.speed,this.velocityX=wt.velocityX,this.velocityY=wt.velocityY;else{this.timeStamp=(new Date).getTime(),this.dt=this.timeStamp-wt.timeStamp,this.duration=this.timeStamp-Xt;var S,E,z;"end"===n||e instanceof T?(z=Math.max(("end"===n?this.duration:this.dt)/1e3,.001),S=this[m]-wt[m],E=this[v]-wt[v],this.snap&&this.snap.locked&&(S-=this.snap.dx,E-=this.snap.dy),this.restrict&&(S-=this.restrict.dx,E-=this.restrict.dy),wt.snap&&wt.snap.locked&&(S-=wt[m]-wt.snap.dx,E-=wt[v]-wt.snap.dy),wt.restrict&&(S+=wt.restrict.dx,E+=wt.restrict.dy),this.speed=yt(S,E)/z,this.velocityX=S/z,this.velocityY=E/z):(this.speed=Et[p+"Speed"],this.velocityX=Et[p+"VX"],this.velocityY=Et[p+"VY"])}if(("end"===n||"inertiastart"===n)&&wt.speed>600&&this.timeStamp-wt.timeStamp<150){var _=180*Math.atan2(wt.velocityY,wt.velocityX)/Math.PI,X=22.5;0>_&&(_+=360);var Y=_>=135-X&&225+X>_,w=_>=225-X&&315+X>_,O=!Y&&(_>=315-X||45+X>_),D=!w&&_>=45-X&&135+X>_;this.swipe={up:w,down:D,left:Y,right:O,angle:_,speed:wt.speed,velocity:{x:wt.velocityX,y:wt.velocityY}}}}function D(){this.originalEvent.preventDefault()}function A(e,t,n){var i,r,o={};for(i in e)o[i]=e[i];o.preventDefault=D,o.stopPropagation=T.prototype.stopPropagation,o.stopImmediatePropagation=T.prototype.stopImmediatePropagation,o.timeStamp=(new Date).getTime(),o.originalEvent=e,o.dt=o.timeStamp-Xt,o.type="tap";var s=o.timeStamp-Ot,a=Tt&&"doubletap"!==Tt.type&&Tt.target===o.target&&500>s;for(Ot=o.timeStamp,r=0;r<t.length;r++){var l=f(t[r],n[r]);if(o.pageX-=l.x,o.pageY-=l.y,o.clientX-=l.x,o.clientY-=l.y,o.currentTarget=n[r],t[r].fire(o),o.immediatePropagationStopped||o.propagationStopped&&t[r+1]!==o.currentTarget)break}if(a){var c={};for(i in o)c[i]=o[i];for(c.dt=s,c.type="doubletap",r=0;r<t.length&&(c.currentTarget=n[r],t[r].fire(c),!(c.immediatePropagationStopped||c.propagationStopped&&t[r+1]!==c.currentTarget));r++);Tt=c}else Tt=o}function M(e){function t(e,t,s){var a=lt?s.querySelectorAll(t):void 0;o!==ct&&b(e,o)&&!S(e,r)&&ot(o,t,a)&&(n.push(e),i.push(o))}if(!Yt||!Jt&&e instanceof Yt.constructor&&Yt.target===e.target){for(var n=[],i=[],r=e.target instanceof ht?e.target.correspondingUseElement:e.target,o=r;o;)tt.isSet(o)&&(n.push(tt(o)),i.push(o)),Ct.forEachSelector(t),o=o.parentNode;n.length&&A(e,n,i)}}function C(e){var t,n,i=this.getRect(),r=null,o=s(e),a=this.options;return i?(on.resize&&a.resizable&&(t="y"!==a.resizeAxis&&o.x>i.right-Wt,n="x"!==a.resizeAxis&&o.y>i.bottom-Wt),nn=(t?"x":"")+(n?"y":""),r=nn?"resize"+nn:on.drag&&a.draggable?"drag":null,on.gesture&&(e.touches&&e.touches.length>=2||mt&&zt.length>=2)&&!Zt&&!tn&&(r="gesture"),r):null}function k(e,t){if("string"!=typeof e)return null;t=t||Nt;var n=-1!==e.search("resize")?"resize":e,i=(t||Nt).options;return("resize"===n&&i.resizable||"drag"===e&&i.draggable||"gesture"===e&&i.gesturable)&&on[n]?(("resize"===e||"resizeyx"===e)&&(e="resizexy"),e):null}function R(e){function t(e,t,n){var i=lt?n.querySelectorAll(t):void 0;b(e,o)&&!S(e,r)&&ot(o,t,i)&&(e._element=o,Pt.push(e))}if(sn&&Yt&&e.type!==Yt.type)return void E(e,Nt);if(!(Yt&&"mousedown"===e.type&&"touchstart"===Yt.type&&e.timeStamp-Yt.timeStamp<300)){Ht=!0;var n,r=e.target instanceof ht?e.target.correspondingUseElement:e.target,o=r;if(q(e),At.active&&Nt.selector)for(;o&&o!==ct;){if(o===At.targetElement&&k(Nt.getAction(e))===sn)return gn(At.i),At.active=!1,void q(e,$t);o=o.parentNode}if(!(Zt||tn||Qt)){if(Pt.length&&/mousedown|pointerdown/i.test(e.type))n=U(e,Pt);else for(;o&&o!==ct&&!n;)Pt=[],Ct.forEachSelector(t),n=U(e,Pt),o=o.parentNode;return n?(sn=n,P(e,n)):(Xt=(new Date).getTime(),Yt=e,i(xt,e),Jt=!1,void 0)}}}function P(e,t){if(!t&&Ht&&Yt&&e.type!==Yt.type)return void E(e,Nt);if(Ht=!0,q(e),(e.touches&&e.touches.length<2||zt&&zt.length<2)&&!Nt||!sn){var n=Ct.get(e.currentTarget);S(n,e.target)||(Nt=n)}var r=Nt&&Nt.options;if(Nt&&!(Zt||tn||Qt)){var o=k(t||Nt.getAction(e));if(i(St,e),mt&&e instanceof mt&&(Nt._gesture.target||(Nt._gesture.target=Nt._element),q(e,Nt._gesture)),!o)return e;r.styleCursor&&(ct.documentElement.style.cursor=rn[o].cursor),nn="resizexy"===o?"xy":"resizex"===o?"x":"resizey"===o?"y":"","gesture"===o&&(e.touches&&e.touches.length<2||mt&&zt.length<2)&&(o=null),sn=o,Vt.x=null,Vt.y=null,Xt=(new Date).getTime(),Yt=e,i(xt,e),Jt=!1,E(e,Nt)}else At.active&&e.currentTarget===At.targetElement&&Nt===At.target&&k(Nt.getAction(e))===sn&&(gn(At.i),At.active=!1,mt&&(Nt._gesture.target||(Nt._gesture.target=Nt._element),q(e,Nt._gesture)))}function $(e,t){var n,i,r,o,a,l,c,p,d,u,h=Nt.options.snap,g=h.anchors;if(t=t||Vt,t.useStatusXY)n={x:t.x,y:t.y};else{var m=f(Nt);n=s(e),n.x-=m.x,n.y-=m.y}if(t.realX=n.x,t.realY=n.y,h.range<0&&(h.range=1/0),"path"===h.mode)for(g=[],d=0,u=h.paths.length;u>d;d++){var v=h.paths[d];"function"==typeof v&&(v=v(n.x,n.y)),g.push({x:"number"==typeof v.x?v.x:n.x,y:"number"==typeof v.y?v.y:n.y,range:"number"==typeof v.range?v.range:h.range})}if("anchor"!==h.mode&&"path"!==h.mode||!g.length){if("grid"===h.mode){var y=Math.round((n.x-h.gridOffset.x)/h.grid.x),x=Math.round((n.y-h.gridOffset.y)/h.grid.y),b=y*h.grid.x+h.gridOffset.x,S=x*h.grid.y+h.gridOffset.y;l=b-n.x,c=S-n.y,p=yt(l,c),o=p<h.range,a=b!==t.x||S!==t.y,t.x=b,t.y=S,t.dx=l,t.dy=c,t.range=h.range}}else{for(i={anchor:null,distance:0,range:0,dx:0,dy:0},d=0,u=g.length;u>d;d++){var E=g[d];r="number"==typeof E.range?E.range:h.range,l=E.x-n.x,c=E.y-n.y,p=yt(l,c),o=r>p,1/0===r&&i.inRange&&1/0!==i.range&&(o=!1),(!i.anchor||(o?i.inRange&&1/0!==r?p/r<i.distance/i.range:p<i.distance:!i.inRange&&p<i.distance))&&(1/0===r&&(o=!0),i.anchor=E,i.distance=p,i.range=r,i.inRange=o,i.dx=l,i.dy=c,t.range=r)}o=i.inRange,a=i.anchor.x!==t.x||i.anchor.y!==t.y,t.x=i.anchor.x,t.y=i.anchor.y,t.dx=i.dx,t.dy=i.dy}return t.changed=a||o&&!t.locked,t.locked=o,t}function j(e,t){var i,r=tt.currentAction()||sn,o=Nt&&Nt.options.restrict[r];if(t=t||Bt,i=i=t.useStatusXY?{x:t.x,y:t.y}:s(e),t.snap&&t.snap.locked&&(i.x+=t.snap.dx||0,i.y+=t.snap.dy||0),t.dx=0,t.dy=0,t.restricted=!1,!r||!o)return t;var a;return"parent"===o?o=Nt._element.parentNode:"self"===o&&(o=Nt._element),n(o)?a=c(o):("function"==typeof o&&(o=o(i.x,i.y,Nt._element)),a=o,"x"in o&&"y"in o&&(a={left:o.x,top:o.y,right:o.x+o.width,bottom:o.y+o.height})),t.dx=Math.max(Math.min(a.right,i.x),a.left)-i.x,t.dy=Math.max(Math.min(a.bottom,i.y),a.top)-i.y,t.restricted=!0,t}function N(e,t){if(Ht){e instanceof T||i(bt,e);var n,o;if(Jt||(n=bt.clientX-St.clientX,o=bt.clientY-St.clientY,Jt=yt(n,o)>1),sn&&("mousemove"!==e.type||"touchstart"!==Yt.type)){if(Jt&&(!At.active||e instanceof T&&/inertiastart/.test(e.type))){if(!(Zt||tn||Qt)&&(r(Et,xt,bt),"drag"===sn)){var s=Math.abs(n),a=Math.abs(o),l=Nt.options.dragAxis,c=s>a?"x":a>s?"y":"xy";if("xy"!==c&&"xy"!==l&&l!==c){sn=null;for(var p=e.target instanceof ht?e.target.correspondingUseElement:e.target,d=p;d&&d!==ct;){var u=Ct.get(d);if(u&&u!==Nt&&"drag"===u.getAction(Yt)&&z(c,u)){sn="drag",Nt=u;break}d=d.parentNode}if(!sn){var h=function(e,t,n){var i=lt?n.querySelectorAll(t):void 0;if(e!==Nt)return e._element=d,b(e,p)&&!S(e,p)&&ot(d,t,i)&&"drag"===e.getAction(Yt)&&z(c,e)?e:void 0};for(d=p;d&&d!==ct;){var g=Ct.forEachSelector(h);if(g){sn="drag",Nt=g;break}d=d.parentNode}}}}if(sn&&Nt){var f=Nt.options.restrictEnabled&&(!Nt.options.restrict.endOnly||t),m=!(Zt||tn||Qt),v=m?Yt:e;m&&(wt=Yt),f||(Bt.restricted=!1),!Nt.options.snapEnabled||-1===rt(Nt.options.snap.actions,sn)||Nt.options.snap.endOnly&&!t?(f&&j(e),rn[sn].moveListener(e)):($(v),(Vt.changed||!Vt.locked||f)&&(f&&j(e),rn[sn].moveListener(e)))}}e instanceof T||(r(Et,xt,bt),i(xt,e)),(Zt||tn)&&Ut.edgeMove(e)}}}function q(e,t,n){if(n=n||e.type,/touch/.test(e.type))for(var i=/cancel|touchend/.test(n)?e.changedTouches:e.touches,r=0;r<i.length;r++)q(i[r],t,n);else if(!zt.length||_t[0].pointerType===e.pointerType){var o=e.pointerId||e.identifier||0;t&&t.addPointer(o);var s=rt(zt,o);-1===s?(zt.push(o),_t[zt.length-1]=e):_t[s]=e}}function F(e){var t=rt(zt,e.pointerId||e.identifier||0);-1!==t&&zt.splice(t,1)}function L(e,t){var n=rt(zt,e.pointerId||e.identifier||0);-1!==n&&(t=t||e.type,/move/i.test(t)?_t[n]=e:/up|end|cancel/i.test(t)&&(F(e),Qt&&Nt._gesture&&zt.length<2&&Nt._gesture.stop()))}function I(e){for(var t=/cancel|touchend/.test(e.type)?e.changedTouches:e.touches,n=0;n<t.length;n++)L(t[n],e.type)}function G(e){E(e,Nt);var t,n=!Zt;n&&(t=new T(Yt,"drag","start"),Zt=!0,Nt.fire(t),Rt.dropzones=[],Rt.elements=[],Rt.rects=[],wt=t,Nt.options.snapEnabled&&!Nt.options.snap.endOnly&&$(e)),t=new T(e,"drag","move");var i=Nt._element,r=w(t,i,n);qt=r.dropzone,Ft=r.element,Nt._element=i;var o=O(e,t,n);Nt.fire(t),o.leave&&Lt.fire(o.leave),o.enter&&qt.fire(o.enter),o.activate&&X(o.activate),Lt=qt,It=Ft,wt=t}function V(e){E(e,Nt);var t;tn||(t=new T(Yt,"resize","start"),Nt.fire(t),Nt.fire(t),tn=!0,wt=t,Nt.options.snapEnabled&&!Nt.options.snap.endOnly&&$(e)),t=new T(e,"resize","move"),Nt.fire(t),wt=t}function B(e){if(e.touches&&!(e.touches.length<2)||mt){E(e,Nt);var t;Qt||(t=new T(Yt,"gesture","start"),t.ds=0,Mt.startDistance=Mt.prevDistance=t.distance,Mt.startAngle=Mt.prevAngle=t.angle,Mt.scale=1,Qt=!0,Nt.fire(t),wt=t,Nt.options.snapEnabled&&!Nt.options.snap.endOnly&&$(e)),t=new T(e,"gesture","move"),t.ds=t.scale-Mt.scale,Nt.fire(t),wt=t,Mt.prevAngle=t.angle,Mt.prevDistance=t.distance,1/0===t.scale||null===t.scale||void 0===t.scale||isNaN(t.scale)||(Mt.scale=t.scale)}}function U(e,t){for(var n=0,i=t.length;i>n;n++){var r=t[n],o=k(r.getAction(e,r),r);if(o)return Nt=r,o}}function K(e){function t(e,t){e&&b(e,r)&&!S(e,r)&&ot(r,t)&&(e._element=r,n.push(e))}if(!sn){var n=[],i=Nt&&Nt._element,r=e.target instanceof ht?e.target.correspondingUseElement:e.target;Nt&&S(Nt,r)&&(Nt=null,Pt=[]);var o=Ct.get(r),s=o&&!S(o,r)&&k(o.getAction(e),o);if(s)Nt=o,Pt=[];else if(Ct.forEachSelector(t),U(e,n))Pt=n,H(e,Pt),xn.addToElement(r,"mousemove",H);else if(Nt){var a=i.querySelectorAll("*");if(-1!==rt(a,r)){for(var l=0;l<Pt.length;l++)Pt[l]._element=i;H(e,Pt),xn.addToElement(Nt._element,"mousemove",H)}else Nt=null,Pt=[]}}}function W(e){if(!sn){var t=e.target instanceof ht?e.target.correspondingUseElement:e.target;Ct.get(t)||xn.removeFromElement(t,H),Nt&&Nt.options.styleCursor&&!(Zt||tn||Qt)&&(ct.documentElement.style.cursor="")}}function H(e,t){if(sn)sn&&E(e,Nt);else{var n;t?n=U(e,t):Nt&&(n=k(Nt.getAction(e))),Nt&&Nt.options.styleCursor&&(ct.documentElement.style.cursor=n?rn[n].cursor:"")}}function J(e){if((e instanceof T||mt||!Ht||!Yt||e instanceof Yt.constructor)&&!(e.touches&&e.touches.length>=2)){if(vt&&e instanceof vt&&/inertiastart/i.test(e.type))return void e.gestureObject.stop();var t,n,i=Nt&&Nt.options.inertia;if(Zt||tn||Qt){if(At.active)return;var r=Nt.options.deltaSource,o=Et[r+"Speed"];if(Nt.options.inertiaEnabled&&"gesture"!==sn&&-1!==rt(i.actions,sn)&&e!==At.startEvent&&(new Date).getTime()-bt.timeStamp<50&&o>i.minSpeed&&o>i.endSpeed){var s,a=i.resistance,l=-Math.log(i.endSpeed/o)/a;if(At.active=!0,At.target=Nt,At.targetElement=Nt._element,xn.useAttachEvent)for(n in e)At.pointerUp[n]=e[n];else At.pointerUp=e;At.startEvent=s=new T(e,sn,"inertiastart"),Nt.fire(At.startEvent),At.vx0=Et[r+"VX"],At.vy0=Et[r+"VY"],At.v0=o,At.x0=wt.pageX,At.y0=wt.pageY,At.t0=At.startEvent.timeStamp/1e3,At.sx=At.sy=0,At.modifiedXe=At.xe=(At.vx0-l)/a,At.modifiedYe=At.ye=(At.vy0-l)/a,At.te=l,At.lambda_v0=a/At.v0,At.one_ve_v0=1-i.endSpeed/At.v0;var c,p=s.pageX,d=s.pageY;if(s.snap&&s.snap.locked&&(p-=s.snap.dx,d-=s.snap.dy),s.restrict&&(p-=s.restrict.dx,d-=s.restrict.dy),c={useStatusXY:!0,x:p+At.xe,y:d+At.ye,dx:0,dy:0,snap:null},c.snap=c,Nt.options.snapEnabled&&Nt.options.snap.endOnly){var u=$(e,c);u.locked&&(At.modifiedXe+=u.dx,At.modifiedYe+=u.dy)}if(Nt.options.restrictEnabled&&Nt.options.restrict.endOnly){var h=j(e,c);At.modifiedXe+=h.dx,At.modifiedYe+=h.dy}return gn(At.i),void(At.i=hn(m))}(Nt.options.snapEnabled&&Nt.options.snap.endOnly||Nt.options.restrictEnabled&&Nt.options.restrict.endOnly)&&N(e,!0)}if(Zt){t=new T(e,"drag","end");var g,f=Nt._element,v=w(t,f);if(qt=v.dropzone,Ft=v.element,Nt._element=f,qt)g=new T(e,"drop",null,Ft,f),t.dropzone=Ft;else if(Lt){var y=new T(e,"drag","leave",Ft,f);Lt.fire(y,f),t.dragLeave=It}var x=O(e,t);Nt.fire(t),x.leave&&Lt.fire(x.leave),x.enter&&qt.fire(x.enter),x.drop&&qt.fire(x.drop),x.deactivate&&X(x.deactivate)}else tn?(t=new T(e,"resize","end"),Nt.fire(t)):Qt&&(t=new T(e,"gesture","end"),Nt.fire(t));tt.stop()}}function Q(e,t){var n={},i=jt[e.type],r=e.target;t=t?!0:!1;for(var o in e)n[o]=e[o];for(n.originalEvent=e,n.preventDefault=D;r&&r!==ct;){for(var s=0;s<i.selectors.length;s++){var a=i.selectors[s],l=i.contexts[s];if(ot(r,a)&&l===e.currentTarget&&x(l,r)){var c=i.listeners[s];n.currentTarget=r;for(var p=0;p<c.length;p++)if(c[p][1]===t)try{c[p][0](n)}catch(d){pt.error('Error thrown from delegated listener: "'+a+'" '+e.type+" "+(c[p][0].name?c[p][0].name:"")),pt.log(d)}}}r=r.parentNode}}function Z(e){return Q.call(this,e,!0)}function et(){Nt&&!Nt.selector&&(Nt=null),qt=Ft=Lt=It=null}function tt(e,t){return Ct.get(e,t)||new it(e,t)}function nt(e){for(var t in Gt)e.hasOwnProperty(t)&&typeof e[t]==typeof Gt[t]&&(this[t]=e[t])}function it(t,i){this._element=t,this._iEvents=this._iEvents||{},"string"==typeof t?(ct.querySelector(t),this.selector=t,this._gesture=$t,i&&i.context&&(e.Node?i.context instanceof e.Node:n(i.context)||i.context===ct)&&(this._context=i.context)):n(t)&&(mt?(xn.add(this,st.down,P),xn.add(this,st.move,H),this._gesture=new ft,this._gesture.target=t):(xn.add(this,"mousedown",P),xn.add(this,"mousemove",H),xn.add(this,"touchstart",P),xn.add(this,"touchmove",H))),Ct.push(this),this.set(i)}function rt(e,t){for(var n=0,i=e.length;i>n;n++)if(e[n]===t)return n;return-1}function ot(e,t,n){return lt?lt(e,t,n):e[un](t)}var st,at,lt,ct=e.document,pt=e.console,dt=e.SVGElement||t,ut=e.SVGSVGElement||t,ht=e.SVGElementInstance||t,gt=e.HTMLElement||e.Element,ft=e.Gesture||e.MSGesture,mt=ft&&(e.PointerEvent||e.MSPointerEvent),vt=ft&&(e.GestureEvent||e.MSGestureEvent),yt=Math.hypot||function(e,t){return Math.sqrt(e*e+t*t)},xt={pageX:0,pageY:0,clientX:0,clientY:0,timeStamp:0},bt={pageX:0,pageY:0,clientX:0,clientY:0,timeStamp:0},St={pageX:0,pageY:0,clientX:0,clientY:0,timeStamp:0},Et={pageX:0,pageY:0,clientX:0,clientY:0,timeStamp:0,pageSpeed:0,clientSpeed:0},zt=[],_t=[],Xt=0,Yt=null,wt=null,Ot=0,Tt=null,Dt={},At={active:!1,target:null,targetElement:null,startEvent:null,pointerUp:{},xe:0,ye:0,duration:0,t0:0,vx0:0,vys:0,lambda_v0:0,one_ve_v0:0,i:null},Mt={start:{x:0,y:0},startDistance:0,prevDistance:0,distance:0,scale:1,startAngle:0,prevAngle:0},Ct=[],kt=[],Rt={dropzones:[],elements:[],rects:[]},Pt=[],$t=null,jt={},Nt=null,qt=null,Ft=null,Lt=null,It=null,Gt={draggable:!1,dragAxis:"xy",dropzone:!1,accept:null,resizable:!1,squareResize:!1,resizeAxis:"xy",gesturable:!1,actionChecker:null,styleCursor:!0,preventDefault:"auto",snap:{mode:"grid",endOnly:!1,actions:["drag"],range:1/0,grid:{x:100,y:100},gridOffset:{x:0,y:0},anchors:[],paths:[],arrayTypes:/^anchors$|^paths$|^actions$/,objectTypes:/^grid$|^gridOffset$/,stringTypes:/^mode$/,numberTypes:/^range$/,boolTypes:/^endOnly$/},snapEnabled:!1,restrict:{drag:null,resize:null,gesture:null,endOnly:!1},restrictEnabled:!0,autoScroll:{container:e,margin:60,speed:300,numberTypes:/^margin$|^speed$/},autoScrollEnabled:!1,inertia:{resistance:10,minSpeed:100,endSpeed:10,actions:["drag","resize"],zeroResumeDelta:!1,numberTypes:/^resistance$|^minSpeed$|^endSpeed$/,arrayTypes:/^actions$/,boolTypes:/^zeroResumeDelta$/},inertiaEnabled:!1,origin:{x:0,y:0},deltaSource:"page",context:ct},Vt={locked:!1,x:0,y:0,dx:0,dy:0,realX:0,realY:0,anchors:[],paths:[]},Bt={dx:0,dy:0,snap:Vt,restricted:!1},Ut={target:null,i:null,x:0,y:0,scroll:function(){var t=Ut.target.options.autoScroll,n=t.container,i=(new Date).getTime(),r=(i-Ut.prevTime)/1e3,o=t.speed*r;o>=1&&(n instanceof e.Window?n.scrollBy(Ut.x*o,Ut.y*o):n&&(n.scrollLeft+=Ut.x*o,n.scrollTop+=Ut.y*o),Ut.prevTime=i),Ut.isScrolling&&(gn(Ut.i),Ut.i=hn(Ut.scroll))},edgeMove:function(t){if(Nt&&Nt.options.autoScrollEnabled&&(Zt||tn)){var n,i,r,o,s=Nt.options.autoScroll;if(s.container instanceof e.Window)o=t.clientX<Ut.margin,n=t.clientY<Ut.margin,i=t.clientX>s.container.innerWidth-Ut.margin,r=t.clientY>s.container.innerHeight-Ut.margin;else{var a=c(s.container);o=t.clientX<a.left+Ut.margin,n=t.clientY<a.top+Ut.margin,i=t.clientX>a.right-Ut.margin,r=t.clientY>a.bottom-Ut.margin}Ut.x=i?1:o?-1:0,Ut.y=r?1:n?-1:0,Ut.isScrolling||(Ut.margin=s.margin,Ut.speed=s.speed,Ut.start(Nt))}},isScrolling:!1,prevTime:0,start:function(e){Ut.isScrolling=!0,gn(Ut.i),Ut.target=e,Ut.prevTime=(new Date).getTime(),Ut.i=hn(Ut.scroll)},stop:function(){Ut.isScrolling=!1,gn(Ut.i)}},Kt="ontouchstart"in e||e.DocumentTouch&&ct instanceof e.DocumentTouch,Wt=Kt?20:10,Ht=!1,Jt=!1,Qt=!1,Zt=!1,en=!1,tn=!1,nn="xy",rn={drag:{cursor:"move",moveListener:G},resizex:{cursor:"e-resize",moveListener:V},resizey:{cursor:"s-resize",moveListener:V},resizexy:{cursor:"se-resize",moveListener:V},gesture:{cursor:"",moveListener:B}},on={drag:!0,resize:!0,gesture:!0},sn=null,an="onmousewheel"in ct?"mousewheel":"wheel",ln=["dragstart","dragmove","draginertiastart","dragend","dragenter","dragleave","dropactivate","dropdeactivate","drop","resizestart","resizemove","resizeinertiastart","resizeend","gesturestart","gesturemove","gestureinertiastart","gestureend","tap","doubletap"],cn={},pn={directBind:0,onevent:1,globalBind:2},dn="Opera"==navigator.appName&&Kt&&navigator.userAgent.match("Presto"),un="matchesSelector"in Element.prototype?"matchesSelector":"webkitMatchesSelector"in Element.prototype?"webkitMatchesSelector":"mozMatchesSelector"in Element.prototype?"mozMatchesSelector":"oMatchesSelector"in Element.prototype?"oMatchesSelector":"msMatchesSelector",hn=e.requestAnimationFrame,gn=e.cancelAnimationFrame,fn={_element:e,events:{}},mn={_element:ct,events:{}},vn={_element:e.parent,events:{}},yn={_element:null,events:{}},xn=function(){function t(e,t,n,c){var g=i(d,e),f=u[g];if(f||(f={events:{},typeCount:0},g=d.push(e)-1,u.push(f),h.push(a?{supplied:[],wrapped:[],useCount:[]}:null)),f.events[t]||(f.events[t]=[],f.typeCount++),-1===i(f.events[t],n)){var m;if(a){var v=h[g],y=i(v.supplied,n),x=v.wrapped[y]||function(t){t.immediatePropagationStopped||(t.target=t.srcElement,t.currentTarget=e,t.preventDefault=t.preventDefault||r,t.stopPropagation=t.stopPropagation||o,t.stopImmediatePropagation=t.stopImmediatePropagation||s,/mouse|click/.test(t.type)&&(t.pageX=t.clientX+ct.documentElement.scrollLeft,t.pageY=t.clientY+ct.documentElement.scrollTop),n(t))};m=e[l](p+t,x,Boolean(c)),-1===y?(v.supplied.push(n),v.wrapped.push(x),v.useCount.push(1)):v.useCount[y]++}else m=e[l](t,n,c||!1);return f.events[t].push(n),m}}function n(e,t,r,o){var s,l,g,f=i(d,e),m=u[f],v=r;if(m&&m.events)if(a&&(l=h[f],g=i(l.supplied,r),v=l.wrapped[g]),"all"!==t){if(m.events[t]){var y=m.events[t].length;if("all"===r)for(s=0;y>s;s++)n(e,t,m.events[t][s],Boolean(o));else for(s=0;y>s;s++)if(m.events[t][s]===r){e[c](p+t,v,o||!1),m.events[t].splice(s,1),a&&l&&(l.useCount[g]--,0===l.useCount[g]&&(l.supplied.splice(g,1),l.wrapped.splice(g,1),l.useCount.splice(g,1)));break}m.events[t]&&0===m.events[t].length&&(m.events[t]=null,m.typeCount--)}m.typeCount||(u.splice(f),d.splice(f),h.splice(f))}else for(t in m.events)m.events.hasOwnProperty(t)&&n(e,t,"all")}function i(e,t){for(var n=0,i=e.length;i>n;n++)if(e[n]===t)return n;return-1}function r(){this.returnValue=!1}function o(){this.cancelBubble=!0}function s(){this.cancelBubble=!0,this.immediatePropagationStopped=!0}var a="attachEvent"in e&&!("addEventListener"in e),l=a?"attachEvent":"addEventListener",c=a?"detachEvent":"removeEventListener",p=a?"on":"",d=[],u=[],h=[];return{add:function(e,n,i,r){t(e._element,n,i,r)},remove:function(e,t,i,r){n(e._element,t,i,r)},addToElement:t,removeFromElement:n,useAttachEvent:a,indexOf:i}}();T.prototype={preventDefault:t,stopImmediatePropagation:function(){this.immediatePropagationStopped=this.propagationStopped=!0},stopPropagation:function(){this.propagationStopped=!0}},Ct.indexOfElement=kt.indexOfElement=function(e,t){for(var n=0;n<this.length;n++){var i=this[n];if(i.selector===e&&i._context===(t||ct)||!i.selector&&i._element===e)return n}return-1},Ct.get=kt.get=function(e,t){return this[this.indexOfElement(e,t&&t.context)]},Ct.forEachSelector=function(e){for(var t=0;t<this.length;t++){var n=this[t];if(n.selector){var i=e(n,n.selector,n._context,t,this);if(void 0!==i)return i}}},nt.prototype=Gt,it.prototype={setOnEvents:function(e,t){if("drop"===e){var n=t.ondrop||t.onDrop||t.drop,i=t.ondropactivate||t.onDropActivate||t.dropactivate,r=t.ondropdeactivate||t.onDropDeactivate||t.dropdeactivate,o=t.ondragenter||t.onDropEnter||t.dragenter,s=t.ondragleave||t.onDropLeave||t.dragleave;"function"==typeof n&&(this.ondrop=n),"function"==typeof i&&(this.ondropactivate=i),"function"==typeof r&&(this.ondropdeactivate=r),"function"==typeof o&&(this.ondragenter=o),"function"==typeof s&&(this.ondragleave=s)}else{var a=t.onstart||t.onStart||t.start,l=t.onmove||t.onMove||t.move,c=t.onend||t.onEnd||t.end,p=t.oninertiastart||t.onInertiaStart||t.inertiastart;e="on"+e,"function"==typeof a&&(this[e+"start"]=a),"function"==typeof l&&(this[e+"move"]=l),"function"==typeof c&&(this[e+"end"]=c),"function"==typeof p&&(this[e+"inertiastart"]=p)}return this},draggable:function(e){return e instanceof Object?(this.options.draggable=!0,this.setOnEvents("drag",e),/^x$|^y$|^xy$/.test(e.axis)?this.options.dragAxis=e.axis:null===e.axis&&delete this.options.dragAxis,this):"boolean"==typeof e?(this.options.draggable=e,this):null===e?(delete this.options.draggable,this):this.options.draggable},dropzone:function(e){if(e instanceof Object)return this.options.dropzone=!0,this.setOnEvents("drop",e),this.accept(e.accept),this._dropElements=this.selector?null:[this._element],kt.push(this),this;if("boolean"==typeof e){if(e)this._dropElements=this.selector?null:[this._element],kt.push(this);else{var t=rt(kt,this);-1!==t&&kt.splice(t,1)}return this.options.dropzone=e,this}return null===e?(delete this.options.dropzone,this):this.options.dropzone},dropCheck:function(e,t,n,i){if(!(i=i||this.getRect()))return!1;var r,o,a=s(e),l=f(t,n);return a.x+=l.x,a.y+=l.y,r=a.x>i.left&&a.x<i.right,o=a.y>i.top&&a.y<i.bottom,r&&o},dropChecker:function(e){return"function"==typeof e?(this.dropCheck=e,this):this.dropCheck},accept:function(e){return n(e)?(this.options.accept=e,this):"string"==typeof e?(ct.querySelector(e),this.options.accept=e,this):null===e?(delete this.options.accept,this):this.options.accept},resizable:function(e){return e instanceof Object?(this.options.resizable=!0,this.setOnEvents("resize",e),/^x$|^y$|^xy$/.test(e.axis)?this.options.resizeAxis=e.axis:null===e.axis&&(this.options.resizeAxis=Gt.resizeAxis),this):"boolean"==typeof e?(this.options.resizable=e,this):this.options.resizable},resizeable:t,squareResize:function(e){return"boolean"==typeof e?(this.options.squareResize=e,this):null===e?(delete this.options.squareResize,this):this.options.squareResize},gesturable:function(e){return e instanceof Object?(this.options.gesturable=!0,this.setOnEvents("gesture",e),this):"boolean"==typeof e?(this.options.gesturable=e,this):null===e?(delete this.options.gesturable,this):this.options.gesturable},gestureable:t,autoScroll:function(t){var i=Gt.autoScroll;if(t instanceof Object){var r=this.options.autoScroll;return r===i&&(r=this.options.autoScroll={margin:i.margin,distance:i.distance,interval:i.interval,container:i.container}),r.margin=this.validateSetting("autoScroll","margin",t.margin),r.speed=this.validateSetting("autoScroll","speed",t.speed),r.container=n(t.container)||t.container instanceof e.Window?t.container:i.container,this.options.autoScrollEnabled=!0,this.options.autoScroll=r,this
}return"boolean"==typeof t?(this.options.autoScrollEnabled=t,this):null===t?(delete this.options.autoScrollEnabled,delete this.options.autoScroll,this):this.options.autoScrollEnabled?this.options.autoScroll:!1},snap:function(e){var t=Gt.snap;if(e instanceof Object){var n=this.options.snap;return n===t&&(n={}),n.mode=this.validateSetting("snap","mode",e.mode),n.endOnly=this.validateSetting("snap","endOnly",e.endOnly),n.actions=this.validateSetting("snap","actions",e.actions),n.range=this.validateSetting("snap","range",e.range),n.paths=this.validateSetting("snap","paths",e.paths),n.grid=this.validateSetting("snap","grid",e.grid),n.gridOffset=this.validateSetting("snap","gridOffset",e.gridOffset),n.anchors=this.validateSetting("snap","anchors",e.anchors),this.options.snapEnabled=!0,this.options.snap=n,this}return"boolean"==typeof e?(this.options.snapEnabled=e,this):null===e?(delete this.options.snapEnabled,delete this.options.snap,this):this.options.snapEnabled?this.options.snap:!1},inertia:function(e){var t=Gt.inertia;if(e instanceof Object){var n=this.options.inertia;return n===t&&(n=this.options.inertia={resistance:t.resistance,minSpeed:t.minSpeed,endSpeed:t.endSpeed,actions:t.actions,zeroResumeDelta:t.zeroResumeDelta}),n.resistance=this.validateSetting("inertia","resistance",e.resistance),n.minSpeed=this.validateSetting("inertia","minSpeed",e.minSpeed),n.endSpeed=this.validateSetting("inertia","endSpeed",e.endSpeed),n.actions=this.validateSetting("inertia","actions",e.actions),n.zeroResumeDelta=this.validateSetting("inertia","zeroResumeDelta",e.zeroResumeDelta),this.options.inertiaEnabled=!0,this.options.inertia=n,this}return"boolean"==typeof e?(this.options.inertiaEnabled=e,this):null===e?(delete this.options.inertiaEnabled,delete this.options.inertia,this):this.options.inertiaEnabled?this.options.inertia:!1},getAction:function(e){var t=this.defaultActionChecker(e);return this.options.actionChecker&&(t=this.options.actionChecker(e,t,this)),t},defaultActionChecker:C,actionChecker:function(e){return"function"==typeof e?(this.options.actionChecker=e,this):null===e?(delete this.options.actionChecker,this):this.options.actionChecker},getRect:function(e){return e=e||this._element,this.selector&&!n(e)&&(e=this._context.querySelector(this.selector)),c(e)},rectChecker:function(e){return"function"==typeof e?(this.getRect=e,this):null===e?(delete this.options.getRect,this):this.getRect},styleCursor:function(e){return"boolean"==typeof e?(this.options.styleCursor=e,this):null===e?(delete this.options.styleCursor,this):this.options.styleCursor},preventDefault:function(e){return"boolean"==typeof e||"auto"===e?(this.options.preventDefault=e,this):null===e?(delete this.options.preventDefault,this):this.options.preventDefault},origin:function(e){return e instanceof Object||/^parent$|^self$/.test(e)?(this.options.origin=e,this):null===e?(delete this.options.origin,this):this.options.origin},deltaSource:function(e){return"page"===e||"client"===e?(this.options.deltaSource=e,this):null===e?(delete this.options.deltaSource,this):this.options.deltaSource},restrict:function(e){if(void 0===e)return this.options.restrict;if(e instanceof Object){var t={};(e.drag instanceof Object||/^parent$|^self$/.test(e.drag))&&(t.drag=e.drag),(e.resize instanceof Object||/^parent$|^self$/.test(e.resize))&&(t.resize=e.resize),(e.gesture instanceof Object||/^parent$|^self$/.test(e.gesture))&&(t.gesture=e.gesture),"boolean"==typeof e.endOnly&&(t.endOnly=e.endOnly),this.options.restrictEnabled=!0,this.options.restrict=t}else null===e&&(delete this.options.restrict,delete this.options.restrictEnabled);return this},context:function(){return this._context},_context:ct,ignoreFrom:function(e){return"string"==typeof e||n(e)?(this.options.ignoreFrom=e,this):null===e?(delete this.options.ignoreFrom,this):this.options.ignoreFrom},validateSetting:function(e,t,i){var r=Gt[e],o=this.options[e];if(void 0!==r&&void 0!==r[t]){if("objectTypes"in r&&r.objectTypes.test(t))return i instanceof Object?i:t in o&&o[t]instanceof Object?o[t]:r[t];if("arrayTypes"in r&&r.arrayTypes.test(t))return i instanceof Array?i:t in o&&o[t]instanceof Array?o[t]:r[t];if("stringTypes"in r&&r.stringTypes.test(t))return"string"==typeof i?i:t in o&&"string"==typeof o[t]?o[t]:r[t];if("numberTypes"in r&&r.numberTypes.test(t))return"number"==typeof i?i:t in o&&"number"==typeof o[t]?o[t]:r[t];if("boolTypes"in r&&r.boolTypes.test(t))return"boolean"==typeof i?i:t in o&&"boolean"==typeof o[t]?o[t]:r[t];if("elementTypes"in r&&r.elementTypes.test(t))return n(i)?i:t in o&&n(o[t])?o[t]:r[t]}return null},element:function(){return this._element},fire:function(e){if(!e||!e.type||-1===rt(ln,e.type))return this;for(var t,n,i=0,r=0,o="on"+e.type;3>i;)try{switch(i){case pn.directBind:if(e.type in this._iEvents){for(t=this._iEvents[e.type],n=t.length;n>r&&!e.immediatePropagationStopped;r++)t[r](e);break}break;case pn.onevent:"function"==typeof this[o]&&this[o](e);break;case pn.globalBind:if(e.type in cn&&(t=cn[e.type]))for(n=t.length;n>r&&!e.immediatePropagationStopped;r++)t[r](e)}if(e.propagationStopped)break;r=0,i++}catch(s){pt.error("Error thrown from "+e.type+" listener"),pt.error(s),r++,i===pn.onevent&&i++}return this},on:function(e,t,n){if("wheel"===e&&(e=an),n=n?!0:!1,-1!==rt(ln,e))e in this._iEvents?-1===rt(this._iEvents[e],t)&&this._iEvents[e].push(t):this._iEvents[e]=[t];else if(this.selector){jt[e]||(jt[e]={selectors:[],contexts:[],listeners:[]},xn.addToElement(this._context,e,Q),xn.addToElement(this._context,e,Z,!0));var i,r=jt[e];for(i=r.selectors.length-1;i>=0&&(r.selectors[i]!==this.selector||r.contexts[i]!==this._context);i--);-1===i&&(i=r.selectors.length,r.selectors.push(this.selector),r.contexts.push(this._context),r.listeners.push([])),r.listeners[i].push([t,n])}else xn.add(this,e,t,n);return this},off:function(e,t,n){var i,r=-1;if(n=n?!0:!1,"wheel"===e&&(e=an),-1!==rt(ln,e))i=this._iEvents[e],i&&-1!==(r=rt(i,t))&&this._iEvents[e].splice(r,1);else if(this.selector){var o=jt[e],s=!1;if(!o)return this;for(r=o.selectors.length-1;r>=0;r--)if(o.selectors[r]===this.selector&&o.contexts[r]===this._context){for(var a=o.listeners[r],l=a.length-1;l>=0;l--){var c=a[l][0],p=a[l][1];if(c===t&&p===n){a.splice(l,1),a.length||(o.selectors.splice(r,1),o.contexts.splice(r,1),o.listeners.splice(r,1),xn.removeFromElement(this._context,e,Q),xn.removeFromElement(this._context,e,Z,!0),o.selectors.length||(jt[e]=null)),s=!0;break}}if(s)break}}else xn.remove(this,t,n);return this},set:function(e){e&&"object"==typeof e||(e={}),this.options=new nt(e),this.draggable("draggable"in e?e.draggable:this.options.draggable),this.dropzone("dropzone"in e?e.dropzone:this.options.dropzone),this.resizable("resizable"in e?e.resizable:this.options.resizable),this.gesturable("gesturable"in e?e.gesturable:this.options.gesturable);for(var t=["accept","actionChecker","autoScroll","dropChecker","ignoreFrom","inertia","origin","rectChecker","restrict","snap"],n=0,i=t.length;i>n;n++){var r=t[n];r in e&&this[r](e[r])}return this},unset:function(){if(xn.remove(this,"all"),"string"!=typeof this.selector)xn.remove(this,"all"),this.options.styleCursor&&(this._element.style.cursor=""),this._gesture&&(this._gesture.target=null);else for(var e in jt)for(var t=jt[e],n=0;n<t.selectors.length;n++){t.selectors[n]===this.selector&&t.contexts[n]===this._context&&(t.selectors.splice(n,1),t.contexts.splice(n,1),t.listeners.splice(n,1),t.selectors.length||(jt[e]=null)),xn.removeFromElement(this._context,e,Q),xn.removeFromElement(this._context,e,Z,!0);break}return this.dropzone(!1),Ct.splice(rt(Ct,this),1),tt}},it.prototype.gestureable=it.prototype.gesturable,it.prototype.resizeable=it.prototype.resizable,tt.isSet=function(e,t){return-1!==Ct.indexOfElement(e,t&&t.context)},tt.on=function(e,t,n){return-1!==rt(ln,e)?cn[e]?-1===rt(cn[e],t)&&cn[e].push(t):cn[e]=[t]:xn.add(mn,e,t,n),tt},tt.off=function(e,t,n){if(-1===rt(ln,e))xn.remove(mn,e,t,n);else{var i;e in cn&&-1!==(i=rt(cn[e],t))&&cn[e].splice(i,1)}return tt},tt.simulate=function(e,n,i){var r,o,s={};if("resize"===e&&(e="resizexy"),!(e in rn))return tt;if(i)for(r in i)s[r]=i[r];else o=Nt._element instanceof dt?n.getBoundingClientRect():o=n.getClientRects()[0],"drag"===e?(s.pageX=o.left+o.width/2,s.pageY=o.top+o.height/2):(s.pageX=o.right,s.pageY=o.bottom);return s.target=s.currentTarget=n,s.preventDefault=s.stopPropagation=t,P(s,e),tt},tt.enableDragging=function(e){return null!==e&&void 0!==e?(on.drag=e,tt):on.drag},tt.enableResizing=function(e){return null!==e&&void 0!==e?(on.resize=e,tt):on.resize},tt.enableGesturing=function(e){return null!==e&&void 0!==e?(on.gesture=e,tt):on.gesture},tt.eventTypes=ln,tt.debug=function(){return{target:Nt,dragging:Zt,resizing:tn,gesturing:Qt,prepared:sn,matches:Pt,prevCoords:xt,downCoords:St,pointerIds:zt,pointerMoves:_t,addPointer:q,removePointer:F,recordPointers:L,recordTouches:I,inertia:At,downTime:Xt,downEvent:Yt,prevEvent:wt,Interactable:it,IOptions:nt,interactables:Ct,dropzones:kt,pointerIsDown:Ht,defaultOptions:Gt,defaultActionChecker:C,actions:rn,dragMove:G,resizeMove:V,gestureMove:B,pointerUp:J,pointerDown:P,pointerMove:N,pointerHover:H,events:xn,globalEvents:cn,delegatedEvents:jt}},tt.getTouchAverage=d,tt.getTouchBBox=u,tt.getTouchDistance=h,tt.getTouchAngle=g,tt.getElementRect=c,tt.margin=function(e){return"number"==typeof e?(Wt=e,tt):Wt},tt.styleCursor=function(e){return"boolean"==typeof e?(Gt.styleCursor=e,tt):Gt.styleCursor},tt.autoScroll=function(t){var i=Gt.autoScroll;return t instanceof Object?(Gt.autoScrollEnabled=!0,"number"==typeof t.margin&&(i.margin=t.margin),"number"==typeof t.speed&&(i.speed=t.speed),i.container=n(t.container)||t.container instanceof e.Window?t.container:i.container,tt):"boolean"==typeof t?(Gt.autoScrollEnabled=t,tt):Gt.autoScrollEnabled?i:!1},tt.snap=function(e){var t=Gt.snap;return e instanceof Object?(Gt.snapEnabled=!0,"string"==typeof e.mode&&(t.mode=e.mode),"boolean"==typeof e.endOnly&&(t.endOnly=e.endOnly),"number"==typeof e.range&&(t.range=e.range),e.actions instanceof Array&&(t.actions=e.actions),e.anchors instanceof Array&&(t.anchors=e.anchors),e.grid instanceof Object&&(t.grid=e.grid),e.gridOffset instanceof Object&&(t.gridOffset=e.gridOffset),tt):"boolean"==typeof e?(Gt.snapEnabled=e,tt):{enabled:Gt.snapEnabled,mode:t.mode,actions:t.actions,grid:t.grid,gridOffset:t.gridOffset,anchors:t.anchors,paths:t.paths,range:t.range,locked:Vt.locked,x:Vt.x,y:Vt.y,realX:Vt.realX,realY:Vt.realY,dx:Vt.dx,dy:Vt.dy}},tt.inertia=function(e){var t=Gt.inertia;return e instanceof Object?(Gt.inertiaEnabled=!0,"number"==typeof e.resistance&&(t.resistance=e.resistance),"number"==typeof e.minSpeed&&(t.minSpeed=e.minSpeed),"number"==typeof e.endSpeed&&(t.endSpeed=e.endSpeed),"boolean"==typeof e.zeroResumeDelta&&(t.zeroResumeDelta=e.zeroResumeDelta),e.actions instanceof Array&&(t.actions=e.actions),tt):"boolean"==typeof e?(Gt.inertiaEnabled=e,tt):{enabled:Gt.inertiaEnabled,resistance:t.resistance,minSpeed:t.minSpeed,endSpeed:t.endSpeed,actions:t.actions,zeroResumeDelta:t.zeroResumeDelta}},tt.supportsTouch=function(){return Kt},tt.currentAction=function(){return Zt&&"drag"||tn&&"resize"||Qt&&"gesture"||null},tt.stop=function(e){if(Zt||tn||Qt){if(Ut.stop(),Pt=[],Nt.options.styleCursor&&(ct.documentElement.style.cursor=""),Nt._gesture&&Nt._gesture.stop(),e&&"function"==typeof e.preventDefault&&E(e,Nt),Zt){Rt.dropzones=Rt.elements=Rt.rects=null;for(var t=0;t<kt.length;t++)kt[t].selector&&(kt[t]._dropElements=null)}et()}return zt.splice(0),_t.splice(0),Ht=Vt.locked=Zt=tn=Qt=!1,sn=wt=null,tt},tt.dynamicDrop=function(e){return"boolean"==typeof e?(en=e,tt):en},tt.deltaSource=function(e){return"page"===e||"client"===e?(Gt.deltaSource=e,this):Gt.deltaSource},tt.restrict=function(e){var t=Gt.restrict;return void 0===e?Gt.restrict:(e instanceof Object?((e.drag instanceof Object||/^parent$|^self$/.test(e.drag))&&(t.drag=e.drag),(e.resize instanceof Object||/^parent$|^self$/.test(e.resize))&&(t.resize=e.resize),(e.gesture instanceof Object||/^parent$|^self$/.test(e.gesture))&&(t.gesture=e.gesture),"boolean"==typeof e.endOnly&&(t.endOnly=e.endOnly)):null===e&&(t.drag=t.resize=t.gesture=null,t.endOnly=!1),this)},mt?(st=mt===e.MSPointerEvent?{up:"MSPointerUp",down:"MSPointerDown",over:"MSPointerOver",out:"MSPointerOut",move:"MSPointerMove",cancel:"MSPointerCancel"}:{up:"pointerup",down:"pointerdown",over:"pointerover",out:"pointerout",move:"pointermove",cancel:"pointercancel"},at=vt===e.MSGestureEvent?{start:"MSGestureStart",change:"MSGestureChange",inertia:"MSInertiaStart",end:"MSGestureEnd"}:{start:"gesturestart",change:"gesturechange",inertia:"inertiastart",end:"gestureend"},xn.add(mn,st.up,M),xn.add(mn,st.down,R),xn.add(mn,at.change,N),xn.add(mn,at.end,J),xn.add(mn,at.inertia,J),xn.add(mn,st.over,K),xn.add(mn,st.out,W),xn.add(mn,st.move,L),xn.add(mn,st.up,L),xn.add(mn,st.cancel,L),xn.add(mn,st.up,function(){Zt||tn||Qt||(Ht=!1)}),$t=new ft,$t.target=ct.documentElement):(xn.add(mn,"mouseup",M),xn.add(mn,"touchend",M),xn.add(mn,"mousedown",R),xn.add(mn,"mousemove",N),xn.add(mn,"mouseup",J),xn.add(mn,"mouseover",K),xn.add(mn,"mouseout",W),xn.add(mn,"touchmove",I),xn.add(mn,"touchend",I),xn.add(mn,"touchcancel",I),xn.add(mn,"touchstart",R),xn.add(mn,"touchmove",N),xn.add(mn,"touchend",J),xn.add(mn,"touchcancel",J)),xn.add(fn,"blur",J);try{e.frameElement&&(yn._element=e.frameElement.ownerDocument,xn.add(yn,"mouseup",J),xn.add(yn,"touchend",J),xn.add(yn,"touchcancel",J),xn.add(yn,"pointerup",J),xn.add(yn,"MSPointerUp",J),xn.add(vn,"blur",J))}catch(bn){tt.windowParentError=bn}xn.add(mn,"selectstart",function(e){(Zt||tn||Qt)&&E(e,Nt)}),un in Element.prototype&&"function"==typeof Element.prototype[un]||(lt=function(e,t,n){n=n||e.parentNode.querySelectorAll(t);for(var i=0,r=n.length;r>i;i++)if(n[i]===e)return!0;return!1}),function(){for(var t=0,n=["ms","moz","webkit","o"],i=0;i<n.length&&!e.requestAnimationFrame;++i)hn=e[n[i]+"RequestAnimationFrame"],gn=e[n[i]+"CancelAnimationFrame"]||e[n[i]+"CancelRequestAnimationFrame"];hn||(hn=function(n){var i=(new Date).getTime(),r=Math.max(0,16-(i-t)),o=e.setTimeout(function(){n(i+r)},r);return t=i+r,o}),gn||(gn=function(e){clearTimeout(e)})}(),"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=tt),exports.interact=tt):"function"==typeof define&&define.amd?define("interact",function(){return tt}):e.interact=tt}(this);