!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("react-dom"),require("react")):"function"==typeof define&&define.amd?define(["react-dom","react"],e):t.ReactDraggable=e(t.ReactDOM,t.React)}(this,function(t,e){"use strict";function n(t,e){return t(e={exports:{}},e.exports),e.exports}function r(t){return function(){return t}}t=t&&t.hasOwnProperty("default")?t.default:t,e=e&&e.hasOwnProperty("default")?e.default:e;var o=function(){};o.thatReturns=r,o.thatReturnsFalse=r(!1),o.thatReturnsTrue=r(!0),o.thatReturnsNull=r(null),o.thatReturnsThis=function(){return this},o.thatReturnsArgument=function(t){return t};var a=o;var i=function(t,e,n,r,o,a,i,s){if(!t){var u;if(void 0===e)u=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[n,r,o,a,i,s],c=0;(u=new Error(e.replace(/%s/g,function(){return l[c++]}))).name="Invariant Violation"}throw u.framesToPop=1,u}},s=Object.getOwnPropertySymbols,u=Object.prototype.hasOwnProperty,l=Object.prototype.propertyIsEnumerable;(function(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},n=0;n<10;n++)e["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(e).map(function(t){return e[t]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(t){r[t]=t}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(t){return!1}})()&&Object.assign;var c="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",p=n(function(t){t.exports=function(){function t(t,e,n,r,o,a){a!==c&&i(!1,"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types")}function e(){return t}t.isRequired=t;var n={array:t,bool:t,func:t,number:t,object:t,string:t,symbol:t,any:t,arrayOf:e,element:t,instanceOf:e,node:t,objectOf:e,oneOf:e,oneOfType:e,shape:e,exact:e};return n.checkPropTypes=a,n.PropTypes=n,n}()}),f=n(function(t){!function(){var e={}.hasOwnProperty;function n(){for(var t=[],r=0;r0&&void 0!==arguments[0]?arguments[0]:"transform";if("undefined"==typeof window||void 0===window.document)return"";var e=window.document.documentElement.style;if(t in e)return"";for(var n=0;n: Unmounted during event!");return n}var V={touch:{start:"touchstart",move:"touchmove",stop:"touchend"},mouse:{start:"mousedown",move:"mousemove",stop:"mouseup"}},B=V.mouse,H=function(n){function r(){var e,n,o;S(this,r);for(var a=arguments.length,i=Array(a),s=0;s not mounted on DragStart!");var r=n.ownerDocument;if(!(o.props.disabled||!(e.target instanceof r.defaultView.Node)||o.props.handle&&!M(e.target,o.props.handle,n)||o.props.cancel&&M(e.target,o.props.cancel,n))){var a=function(t){return t.targetTouches&&t.targetTouches[0]?t.targetTouches[0].identifier:t.changedTouches&&t.changedTouches[0]?t.changedTouches[0].identifier:void 0}(e);o.setState({touchIdentifier:a});var i=L(e,a,o);if(null!=i){var s=i.x,u=i.y,l=A(o,s,u);o.props.onStart,!1!==o.props.onStart(e,l)&&(o.props.enableUserSelectHack&&X(r),o.setState({dragging:!0,lastX:s,lastY:u}),C(r,B.move,o.handleDrag),C(r,B.stop,o.handleDragStop))}}},o.handleDrag=function(t){"touchmove"===t.type&&t.preventDefault();var e=L(t,o.state.touchIdentifier,o);if(null!=e){var n,r,a,i=e.x,s=e.y;if(Array.isArray(o.props.grid)){var u=i-o.state.lastX,l=s-o.state.lastY,c=(n=o.props.grid,r=u,a=l,[Math.round(r/n[0])*n[0],Math.round(a/n[1])*n[1]]),p=N(c,2);if(u=p[0],l=p[1],!u&&!l)return;i=o.state.lastX+u,s=o.state.lastY+l}var f=A(o,i,s);if(!1!==o.props.onDrag(t,f))o.setState({lastX:i,lastY:s});else try{o.handleDragStop(new MouseEvent("mouseup"))}catch(t){var d=document.createEvent("MouseEvents");d.initMouseEvent("mouseup",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),o.handleDragStop(d)}}},o.handleDragStop=function(e){if(o.state.dragging){var n=L(e,o.state.touchIdentifier,o);if(null!=n){var r=n.x,a=n.y,i=A(o,r,a),s=t.findDOMNode(o);s&&o.props.enableUserSelectHack&&Y(s.ownerDocument),o.setState({dragging:!1,lastX:NaN,lastY:NaN}),o.props.onStop(e,i),s&&(j(s.ownerDocument,B.move,o.handleDrag),j(s.ownerDocument,B.stop,o.handleDragStop))}}},o.onMouseDown=function(t){return B=V.mouse,o.handleDragStart(t)},o.onMouseUp=function(t){return B=V.mouse,o.handleDragStop(t)},o.onTouchStart=function(t){return B=V.touch,o.handleDragStart(t)},o.onTouchEnd=function(t){return B=V.touch,o.handleDragStop(t)},E(o,n)}return T(r,n),D(r,[{key:"componentWillUnmount",value:function(){var e=t.findDOMNode(this);if(e){var n=e.ownerDocument;j(n,V.mouse.move,this.handleDrag),j(n,V.touch.move,this.handleDrag),j(n,V.mouse.stop,this.handleDragStop),j(n,V.touch.stop,this.handleDragStop),this.props.enableUserSelectHack&&Y(n)}}},{key:"render",value:function(){return e.cloneElement(e.Children.only(this.props.children),{style:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return O({touchAction:"none"},t)}(this.props.children.props.style),onMouseDown:this.onMouseDown,onTouchStart:this.onTouchStart,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}}]),r}(e.Component);H.displayName="DraggableCore",H.propTypes={allowAnyClick:p.bool,disabled:p.bool,enableUserSelectHack:p.bool,offsetParent:function(t,e){if(t[e]&&1!==t[e].nodeType)throw new Error("Draggable's offsetParent must be a DOM Node.")},grid:p.arrayOf(p.number),scale:p.number,handle:p.string,cancel:p.string,onStart:p.func,onDrag:p.func,onStop:p.func,onMouseDown:p.func,className:y,style:y,transform:y},H.defaultProps={allowAnyClick:!1,cancel:null,disabled:!1,enableUserSelectHack:!0,offsetParent:null,handle:null,grid:null,transform:null,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){}};var W=function(n){function r(t){S(this,r);var e=E(this,(r.__proto__||Object.getPrototypeOf(r)).call(this,t));return e.onDragStart=function(t,n){if(!1===e.props.onStart(t,U(e,n)))return!1;e.setState({dragging:!0,dragged:!0})},e.onDrag=function(t,n){if(!e.state.dragging)return!1;var r=U(e,n),o={x:r.x,y:r.y};if(e.props.bounds){var a=o.x,i=o.y;o.x+=e.state.slackX,o.y+=e.state.slackY;var s=_(e,o.x,o.y),u=N(s,2),l=u[0],c=u[1];o.x=l,o.y=c,o.slackX=e.state.slackX+(a-o.x),o.slackY=e.state.slackY+(i-o.y),r.x=o.x,r.y=o.y,r.deltaX=o.x-e.state.x,r.deltaY=o.y-e.state.y}if(!1===e.props.onDrag(t,r))return!1;e.setState(o)},e.onDragStop=function(t,n){if(!e.state.dragging)return!1;if(!1===e.props.onStop(t,U(e,n)))return!1;var r={dragging:!1,slackX:0,slackY:0};if(Boolean(e.props.position)){var o=e.props.position,a=o.x,i=o.y;r.x=a,r.y=i}e.setState(r)},e.state={dragging:!1,dragged:!1,x:t.position?t.position.x:t.defaultPosition.x,y:t.position?t.position.y:t.defaultPosition.y,slackX:0,slackY:0,isElementSVG:!1},!t.position||t.onDrag||t.onStop||console.warn("A `position` was applied to this , without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element."),e}return T(r,n),D(r,[{key:"componentDidMount",value:function(){void 0!==window.SVGElement&&t.findDOMNode(this)instanceof window.SVGElement&&this.setState({isElementSVG:!0})}},{key:"componentWillReceiveProps",value:function(t){!t.position||this.props.position&&t.position.x===this.props.position.x&&t.position.y===this.props.position.y||this.setState({x:t.position.x,y:t.position.y})}},{key:"componentWillUnmount",value:function(){this.setState({dragging:!1})}},{key:"render",value:function(){var t,n,r,o={},a=null,i=!Boolean(this.props.position)||this.state.dragging,s=this.props.position||this.props.defaultPosition,u={x:function(t){return"both"===t.props.axis||"x"===t.props.axis}(this)&&i?this.state.x:s.x,y:function(t){return"both"===t.props.axis||"y"===t.props.axis}(this)&&i?this.state.y:s.y};this.state.isElementSVG?(n=u,r=this.props.positionOffset,a=R(n,r,"")):o=function(t,e){var n=R(t,e,"px");return x({},v("transform",w),n)}(u,this.props.positionOffset);var l=this.props,c=l.defaultClassName,p=l.defaultClassNameDragging,d=l.defaultClassNameDragged,g=e.Children.only(this.props.children),h=f(g.props.className||"",c,(x(t={},p,this.state.dragging),x(t,d,this.state.dragged),t));return e.createElement(H,O({},this.props,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),e.cloneElement(g,{className:h,style:O({},g.props.style,o),transform:a}))}}]),r}(e.Component);return W.displayName="Draggable",W.propTypes=O({},H.propTypes,{axis:p.oneOf(["both","x","y","none"]),bounds:p.oneOfType([p.shape({left:p.number,right:p.number,top:p.number,bottom:p.number}),p.string,p.oneOf([!1])]),defaultClassName:p.string,defaultClassNameDragging:p.string,defaultClassNameDragged:p.string,defaultPosition:p.shape({x:p.number,y:p.number}),positionOffset:p.shape({x:p.oneOfType([p.number,p.string]),y:p.oneOfType([p.number,p.string])}),position:p.shape({x:p.number,y:p.number}),className:y,style:y,transform:y}),W.defaultProps=O({},H.defaultProps,{axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},position:null,scale:1}),W.default=W,W.DraggableCore=H,W}); //# sourceMappingURL=react-draggable.min.js.map